From 27446b06b2e1fac0a86928fe1d57c9b20887144e Mon Sep 17 00:00:00 2001 From: Alexander Diana Date: Wed, 28 Feb 2024 04:47:05 +0000 Subject: [PATCH 01/34] partial clinic client handling for summaries --- clinics/mock.go | 15 +++++++++++ clinics/service.go | 22 +++++++++++++++ data/service/api/v1/summary.go | 28 ++++++++++++++++++++ data/store/mongo/mongo_data.go | 11 +------- data/store/mongo/mongo_datum.go | 4 +-- data/summary/store/store.go | 47 +++++++++++++++++++++++++++++++++ data/summary/summary.go | 27 +++++++++++++++++-- 7 files changed, 140 insertions(+), 14 deletions(-) diff --git a/clinics/mock.go b/clinics/mock.go index 92d808b92..c352522e4 100644 --- a/clinics/mock.go +++ b/clinics/mock.go @@ -50,6 +50,21 @@ func (mr *MockClientMockRecorder) GetClinician(ctx, clinicID, clinicianID interf return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetClinician", reflect.TypeOf((*MockClient)(nil).GetClinician), ctx, clinicID, clinicianID) } +// GetPatientUserIds mocks base method. +func (m *MockClient) GetPatientUserIds(ctx context.Context, clinicId string) ([]string, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetPatientUserIds", ctx, clinicId) + ret0, _ := ret[0].([]string) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetPatientUserIds indicates an expected call of GetPatientUserIds. +func (mr *MockClientMockRecorder) GetPatientUserIds(ctx, clinicId interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetPatientUserIds", reflect.TypeOf((*MockClient)(nil).GetPatientUserIds), ctx, clinicId) +} + // ListEHREnabledClinics mocks base method. func (m *MockClient) ListEHREnabledClinics(ctx context.Context) ([]api.Clinic, error) { m.ctrl.T.Helper() diff --git a/clinics/service.go b/clinics/service.go index e53279dca..dd960bc03 100644 --- a/clinics/service.go +++ b/clinics/service.go @@ -26,6 +26,7 @@ type Client interface { SharePatientAccount(ctx context.Context, clinicID, patientID string) (*clinic.Patient, error) ListEHREnabledClinics(ctx context.Context) ([]clinic.Clinic, error) SyncEHRData(ctx context.Context, clinicID string) error + GetPatientUserIds(ctx context.Context, clinicId string) ([]string, error) } type config struct { @@ -155,3 +156,24 @@ func (d *defaultClient) getPatient(ctx context.Context, clinicID, patientID stri } return response.JSON200, nil } + +func (d *defaultClient) GetPatientUserIds(ctx context.Context, clinicId string) ([]string, error) { + params := &clinic.ListPatientsParams{ + Limit: pointer.FromAny(1000), + } + + response, err := d.httpClient.ListPatientsWithResponse(ctx, clinicId, params) + if err != nil { + return nil, err + } + if response.StatusCode() != http.StatusOK { + return nil, fmt.Errorf("unexpected response status code %v from %v", response.StatusCode(), response.HTTPResponse.Request.URL) + } + + result := make([]string, len(*response.JSON200.Data)) + for i, patient := range *response.JSON200.Data { + result[i] = *patient.Id + } + + return result, nil +} diff --git a/data/service/api/v1/summary.go b/data/service/api/v1/summary.go index 8e49ba55f..b369f065b 100644 --- a/data/service/api/v1/summary.go +++ b/data/service/api/v1/summary.go @@ -3,6 +3,7 @@ package v1 import ( "context" "net/http" + "time" dataService "github.com/tidepool-org/platform/data/service" "github.com/tidepool-org/platform/data/summary" @@ -31,6 +32,8 @@ func SummaryRoutes() []dataService.Route { dataService.Get("/v1/summaries/migratable/cgm", GetMigratableUserIDs[types.CGMStats, *types.CGMStats], api.RequireAuth), dataService.Get("/v1/summaries/migratable/bgm", GetMigratableUserIDs[types.BGMStats, *types.BGMStats], api.RequireAuth), + + dataService.Get("/v1/summaries/realtime/:clinicId", GetRealtimePatients, api.RequireAuth), } } @@ -79,6 +82,31 @@ func GetSummary[T types.Stats, A types.StatsPt[T]](dataServiceContext dataServic } } +func GetRealtimePatients(dataServiceContext dataService.Context) { + ctx := dataServiceContext.Request().Context() + res := dataServiceContext.Response() + req := dataServiceContext.Request() + + responder := request.MustNewResponder(res, req) + + id := req.PathParam("clinicId") + + startTime := time.Now().UTC().AddDate(0, 0, -60) + endTime := time.Now().UTC() + + if !CheckPermissions(ctx, dataServiceContext, id) { + return + } + + summaryManager := dataServiceContext.SummarizerRegistry().Manager + err := summaryManager.GetRealtimePatients(ctx, id, startTime, endTime) + if err != nil { + responder.Error(http.StatusInternalServerError, err) + } else { + responder.Data(http.StatusOK, nil) + } +} + func UpdateSummary[T types.Stats, A types.StatsPt[T]](dataServiceContext dataService.Context) { ctx := dataServiceContext.Request().Context() res := dataServiceContext.Response() diff --git a/data/store/mongo/mongo_data.go b/data/store/mongo/mongo_data.go index 2b1cb5989..99ae964f7 100644 --- a/data/store/mongo/mongo_data.go +++ b/data/store/mongo/mongo_data.go @@ -40,16 +40,7 @@ func (d *DataRepository) ListUserDataSets(ctx context.Context, userID string, fi } func (d *DataRepository) GetDataSet(ctx context.Context, id string) (*data.DataSet, error) { - // Try reading from both new and old collections that hold dataSets, starting with the new one. - // Can read only from the new deviceDataSets collection via DataSetRepository when migration completed. - dataSet, err := d.DataSetRepository.GetDataSet(ctx, id) - if err != nil { - return nil, err - } - if dataSet != nil { - return dataSet, nil - } - return d.DatumRepository.GetDataSet(ctx, id) + return d.DataSetRepository.GetDataSet(ctx, id) } func (d *DataRepository) GetDataSetByID(ctx context.Context, dataSetID string) (*upload.Upload, error) { diff --git a/data/store/mongo/mongo_datum.go b/data/store/mongo/mongo_datum.go index 156daa344..2898efc98 100644 --- a/data/store/mongo/mongo_datum.go +++ b/data/store/mongo/mongo_datum.go @@ -702,7 +702,7 @@ func (d *DatumRepository) populateLastUpload(ctx context.Context, userId string, // get latest modified record selector := bson.M{ "_userId": userId, - "_active": bson.M{"$ne": -1111}, + "_active": bson.M{"$in": bson.A{true, false}}, "type": typ, "time": bson.M{ "$gte": status.FirstData, @@ -742,8 +742,8 @@ func (d *DatumRepository) populateLastUpload(ctx context.Context, userId string, func (d *DatumRepository) populateEarliestModified(ctx context.Context, userId string, typ string, status *types.UserLastUpdated) (err error) { // get earliest modified record which is newer than LastUpdated selector := bson.M{ - "_active": bson.M{"$ne": -1111}, "_userId": userId, + "_active": bson.M{"$in": bson.A{true, false}}, "type": typ, "time": bson.M{ "$gte": status.FirstData, diff --git a/data/summary/store/store.go b/data/summary/store/store.go index 3bb539ee0..dd17515f0 100644 --- a/data/summary/store/store.go +++ b/data/summary/store/store.go @@ -80,6 +80,53 @@ func (r *TypelessRepo) DeleteSummary(ctx context.Context, userId string) error { return nil } +func (r *TypelessRepo) GetRealtimePatients(ctx context.Context, userIds []string, startTime time.Time, endTime time.Time) error { + if ctx == nil { + return errors.New("context is missing") + } + if userIds == nil { + return errors.New("userIds is missing") + } + if len(userIds) == 0 { + return errors.New("no userIds provided") + } + if startTime.IsZero() { + return errors.New("startTime is missing") + } + if endTime.IsZero() { + return errors.New("startTime is missing") + } + + if startTime.After(endTime) { + return errors.New("startTime is after endTime") + } + + if startTime.Before(time.Now().AddDate(0, 0, -60)) { + return errors.New("startTime is too old ( >60d ago ) ") + } + + // todo const? + threshold := 16 + + if int(endTime.Sub(startTime).Hours()/24) < threshold { + return errors.New("time range smaller than threshold, impossible") + } + + typs := []string{types.SummaryTypeBGM, types.SummaryTypeCGM} + oldestPossibleLastData := startTime.AddDate(0, 0, threshold) + + for _, userId := range userIds { + selector := bson.M{ + "userId": userId, + "type": bson.M{"$in": typs}, + "dates.lastData": bson.M{"$gt": oldestPossibleLastData}, + } + r.Find(ctx, selector) + } + + return nil +} + func (r *Repo[T, A]) DeleteSummary(ctx context.Context, userId string) error { if ctx == nil { return errors.New("context is missing") diff --git a/data/summary/summary.go b/data/summary/summary.go index 992f5f7d9..3efe5a606 100644 --- a/data/summary/summary.go +++ b/data/summary/summary.go @@ -21,12 +21,15 @@ const ( type SummarizerRegistry struct { summarizers map[string]any + Manager *Manager } func New(summaryRepository *storeStructuredMongo.Repository, dataRepository dataStore.DataRepository) *SummarizerRegistry { registry := &SummarizerRegistry{summarizers: make(map[string]any)} addSummarizer(registry, NewBGMSummarizer(summaryRepository, dataRepository)) addSummarizer(registry, NewCGMSummarizer(summaryRepository, dataRepository)) + + registry.Manager = NewManager(summaryRepository) return registry } @@ -59,9 +62,13 @@ type GlucoseSummarizer[T types.Stats, A types.StatsPt[T]] struct { summaries *store.Repo[T, A] } -func NewBGMSummarizer(collection *storeStructuredMongo.Repository, deviceData dataStore.DataRepository) Summarizer[types.BGMStats, *types.BGMStats] { +type Manager struct { + summaries *store.TypelessRepo +} + +func NewBGMSummarizer(collection *storeStructuredMongo.Repository, dataRepo dataStore.DataRepository) Summarizer[types.BGMStats, *types.BGMStats] { return &GlucoseSummarizer[types.BGMStats, *types.BGMStats]{ - deviceData: deviceData, + deviceData: dataRepo, summaries: store.New[types.BGMStats, *types.BGMStats](collection), } } @@ -73,6 +80,12 @@ func NewCGMSummarizer(collection *storeStructuredMongo.Repository, deviceData da } } +func NewManager(collection *storeStructuredMongo.Repository) *Manager { + return &Manager{ + summaries: store.NewTypeless(collection), + } +} + func (c *GlucoseSummarizer[T, A]) GetSummary(ctx context.Context, userId string) (*types.Summary[T, A], error) { return c.summaries.GetSummary(ctx, userId) } @@ -89,6 +102,16 @@ func (c *GlucoseSummarizer[T, A]) GetMigratableUserIDs(ctx context.Context, pagi return c.summaries.GetMigratableUserIDs(ctx, pagination) } +func (c *Manager) GetRealtimePatients(ctx context.Context, clinicId string, startTime time.Time, endTime time.Time) error { + var patientIds []string + // TODO get patient ids of clinicId + return c.summaries.GetRealtimePatients(ctx, patientIds, startTime, endTime) +} + +func (c *Manager) DeleteSummaries(ctx context.Context, userId string) error { + return c.summaries.DeleteSummary(ctx, userId) +} + func (c *GlucoseSummarizer[T, A]) BackfillSummaries(ctx context.Context) (int, error) { var empty struct{} From 466992377ceb19f4921bc9e9aac3135237c00e62 Mon Sep 17 00:00:00 2001 From: Alexander Diana Date: Wed, 28 Feb 2024 05:25:34 +0000 Subject: [PATCH 02/34] add clinic client to data service --- data/service/api/v1/summary.go | 9 ++++++--- .../api/v1/users_datasets_create_test.go | 5 +++++ data/service/context.go | 3 +++ data/service/context/standard.go | 6 ++++++ data/service/service/standard.go | 17 +++++++++++++++++ data/summary/summary.go | 6 ++---- 6 files changed, 39 insertions(+), 7 deletions(-) diff --git a/data/service/api/v1/summary.go b/data/service/api/v1/summary.go index b369f065b..39d836317 100644 --- a/data/service/api/v1/summary.go +++ b/data/service/api/v1/summary.go @@ -89,17 +89,20 @@ func GetRealtimePatients(dataServiceContext dataService.Context) { responder := request.MustNewResponder(res, req) - id := req.PathParam("clinicId") + clinicId := req.PathParam("clinicId") startTime := time.Now().UTC().AddDate(0, 0, -60) endTime := time.Now().UTC() - if !CheckPermissions(ctx, dataServiceContext, id) { + if details := request.GetAuthDetails(ctx); !details.IsService() { + dataServiceContext.RespondWithError(service.ErrorUnauthorized()) return } + userIds, err := dataServiceContext.ClinicsClient().GetPatientUserIds(ctx, clinicId) + summaryManager := dataServiceContext.SummarizerRegistry().Manager - err := summaryManager.GetRealtimePatients(ctx, id, startTime, endTime) + err = summaryManager.GetRealtimePatients(ctx, userIds, startTime, endTime) if err != nil { responder.Error(http.StatusInternalServerError, err) } else { diff --git a/data/service/api/v1/users_datasets_create_test.go b/data/service/api/v1/users_datasets_create_test.go index 839bf5eef..b2ff2709a 100644 --- a/data/service/api/v1/users_datasets_create_test.go +++ b/data/service/api/v1/users_datasets_create_test.go @@ -1,6 +1,7 @@ package v1_test import ( + "github.com/tidepool-org/platform/clinics" "io" "net/http" "strings" @@ -209,6 +210,10 @@ func (c *mockDataServiceContext) DataClient() dataClient.Client { panic("not implemented") // TODO: Implement } +func (c *mockDataServiceContext) ClinicsClient() clinics.Client { + panic("not implemented") // TODO: Implement +} + func (c *mockDataServiceContext) DataSourceClient() dataSource.Client { panic("not implemented") // TODO: Implement } diff --git a/data/service/context.go b/data/service/context.go index 5e354309f..524452713 100644 --- a/data/service/context.go +++ b/data/service/context.go @@ -3,6 +3,7 @@ package service import ( "github.com/tidepool-org/platform/alerts" "github.com/tidepool-org/platform/auth" + "github.com/tidepool-org/platform/clinics" dataClient "github.com/tidepool-org/platform/data/client" "github.com/tidepool-org/platform/data/deduplicator" dataSource "github.com/tidepool-org/platform/data/source" @@ -30,6 +31,8 @@ type Context interface { SummarizerRegistry() *summary.SummarizerRegistry DataClient() dataClient.Client + + ClinicsClient() clinics.Client DataSourceClient() dataSource.Client } diff --git a/data/service/context/standard.go b/data/service/context/standard.go index 17babd3e4..ad6ec84da 100644 --- a/data/service/context/standard.go +++ b/data/service/context/standard.go @@ -1,6 +1,7 @@ package context import ( + "github.com/tidepool-org/platform/clinics" "net/http" "github.com/ant0ine/go-json-rest/rest" @@ -33,6 +34,7 @@ type Standard struct { syncTaskStore syncTaskStore.Store syncTasksRepository syncTaskStore.SyncTaskRepository dataClient dataClient.Client + clinicsClient clinics.Client dataSourceClient dataSource.Client alertsRepository alerts.Repository } @@ -173,6 +175,10 @@ func (s *Standard) DataClient() dataClient.Client { return s.dataClient } +func (s *Standard) ClinicsClient() clinics.Client { + return s.clinicsClient +} + func (s *Standard) DataSourceClient() dataSource.Client { return s.dataSourceClient } diff --git a/data/service/service/standard.go b/data/service/service/standard.go index 4d7968336..635f5b7b8 100644 --- a/data/service/service/standard.go +++ b/data/service/service/standard.go @@ -2,6 +2,7 @@ package service import ( "context" + "github.com/tidepool-org/platform/clinics" "log" "os" @@ -40,6 +41,7 @@ type Standard struct { dataSourceStructuredStore *dataSourceStoreStructuredMongo.Store syncTaskStore *syncTaskMongo.Store dataClient *Client + clinicsClient *clinics.Client dataSourceClient *dataSourceServiceClient.Client userEventsHandler events.Runner api *api.Standard @@ -78,6 +80,9 @@ func (s *Standard) Initialize(provider application.Provider) error { if err := s.initializeDataClient(); err != nil { return err } + if err := s.initializeClinicsClient(); err != nil { + return err + } if err := s.initializeDataSourceClient(); err != nil { return err } @@ -341,6 +346,18 @@ func (s *Standard) initializeDataSourceClient() error { return nil } +func (s *Standard) initializeClinicsClient() error { + s.Logger().Debug("Creating clinics client") + + clnt, err := clinics.NewClient(s.AuthClient()) + if err != nil { + return errors.Wrap(err, "unable to create clinics client") + } + s.clinicsClient = &clnt + + return nil +} + func (s *Standard) initializeAPI() error { s.Logger().Debug("Creating api") diff --git a/data/summary/summary.go b/data/summary/summary.go index 3efe5a606..4563355b9 100644 --- a/data/summary/summary.go +++ b/data/summary/summary.go @@ -102,10 +102,8 @@ func (c *GlucoseSummarizer[T, A]) GetMigratableUserIDs(ctx context.Context, pagi return c.summaries.GetMigratableUserIDs(ctx, pagination) } -func (c *Manager) GetRealtimePatients(ctx context.Context, clinicId string, startTime time.Time, endTime time.Time) error { - var patientIds []string - // TODO get patient ids of clinicId - return c.summaries.GetRealtimePatients(ctx, patientIds, startTime, endTime) +func (c *Manager) GetRealtimePatients(ctx context.Context, userIds []string, startTime time.Time, endTime time.Time) error { + return c.summaries.GetRealtimePatients(ctx, userIds, startTime, endTime) } func (c *Manager) DeleteSummaries(ctx context.Context, userId string) error { From 25a77b98ebd09092f318abe0088f9fabd61949e7 Mon Sep 17 00:00:00 2001 From: Alexander Diana Date: Wed, 6 Mar 2024 00:34:13 +0000 Subject: [PATCH 03/34] initial attempt of realtime user api --- clinics/mock.go | 14 +- clinics/service.go | 13 +- data/service/api/v1/summary.go | 86 +++++++++++- .../api/v1/users_datasets_create_test.go | 3 +- data/service/context/standard.go | 3 +- data/service/service/standard.go | 3 +- data/store/mongo/mongo_data.go | 13 ++ data/store/store.go | 1 + data/store/test/data_repository.go | 25 ++++ data/summary/store/store.go | 131 +++++++++++++++--- data/summary/summary.go | 2 +- data/summary/types/bgm.go | 12 +- data/summary/types/cgm.go | 12 +- data/summary/types/summary.go | 11 +- data/summary/types/summary_bgm_test.go | 1 + data/summary/types/summary_cgm_test.go | 1 + 16 files changed, 284 insertions(+), 47 deletions(-) diff --git a/clinics/mock.go b/clinics/mock.go index c352522e4..fa1956de8 100644 --- a/clinics/mock.go +++ b/clinics/mock.go @@ -50,19 +50,19 @@ func (mr *MockClientMockRecorder) GetClinician(ctx, clinicID, clinicianID interf return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetClinician", reflect.TypeOf((*MockClient)(nil).GetClinician), ctx, clinicID, clinicianID) } -// GetPatientUserIds mocks base method. -func (m *MockClient) GetPatientUserIds(ctx context.Context, clinicId string) ([]string, error) { +// GetPatients mocks base method. +func (m *MockClient) GetPatients(ctx context.Context, clinicId string) ([]api.Patient, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetPatientUserIds", ctx, clinicId) - ret0, _ := ret[0].([]string) + ret := m.ctrl.Call(m, "GetPatients", ctx, clinicId) + ret0, _ := ret[0].([]api.Patient) ret1, _ := ret[1].(error) return ret0, ret1 } -// GetPatientUserIds indicates an expected call of GetPatientUserIds. -func (mr *MockClientMockRecorder) GetPatientUserIds(ctx, clinicId interface{}) *gomock.Call { +// GetPatients indicates an expected call of GetPatients. +func (mr *MockClientMockRecorder) GetPatients(ctx, clinicId interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetPatientUserIds", reflect.TypeOf((*MockClient)(nil).GetPatientUserIds), ctx, clinicId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetPatients", reflect.TypeOf((*MockClient)(nil).GetPatients), ctx, clinicId) } // ListEHREnabledClinics mocks base method. diff --git a/clinics/service.go b/clinics/service.go index dd960bc03..cd48b524b 100644 --- a/clinics/service.go +++ b/clinics/service.go @@ -26,7 +26,7 @@ type Client interface { SharePatientAccount(ctx context.Context, clinicID, patientID string) (*clinic.Patient, error) ListEHREnabledClinics(ctx context.Context) ([]clinic.Clinic, error) SyncEHRData(ctx context.Context, clinicID string) error - GetPatientUserIds(ctx context.Context, clinicId string) ([]string, error) + GetPatients(ctx context.Context, clinicId string) ([]clinic.Patient, error) } type config struct { @@ -157,9 +157,9 @@ func (d *defaultClient) getPatient(ctx context.Context, clinicID, patientID stri return response.JSON200, nil } -func (d *defaultClient) GetPatientUserIds(ctx context.Context, clinicId string) ([]string, error) { +func (d *defaultClient) GetPatients(ctx context.Context, clinicId string) ([]clinic.Patient, error) { params := &clinic.ListPatientsParams{ - Limit: pointer.FromAny(1000), + Limit: pointer.FromAny(1001), } response, err := d.httpClient.ListPatientsWithResponse(ctx, clinicId, params) @@ -170,10 +170,5 @@ func (d *defaultClient) GetPatientUserIds(ctx context.Context, clinicId string) return nil, fmt.Errorf("unexpected response status code %v from %v", response.StatusCode(), response.HTTPResponse.Request.URL) } - result := make([]string, len(*response.JSON200.Data)) - for i, patient := range *response.JSON200.Data { - result[i] = *patient.Id - } - - return result, nil + return *response.JSON200.Data, nil } diff --git a/data/service/api/v1/summary.go b/data/service/api/v1/summary.go index 39d836317..989a27952 100644 --- a/data/service/api/v1/summary.go +++ b/data/service/api/v1/summary.go @@ -5,6 +5,9 @@ import ( "net/http" "time" + "github.com/tidepool-org/platform/data/summary/store" + "github.com/tidepool-org/platform/structure" + dataService "github.com/tidepool-org/platform/data/service" "github.com/tidepool-org/platform/data/summary" "github.com/tidepool-org/platform/data/summary/types" @@ -82,6 +85,47 @@ func GetSummary[T types.Stats, A types.StatsPt[T]](dataServiceContext dataServic } } +type RealtimePatientsResponse struct { + Config RealtimePatientConfigResponse `json:"config"` + Results []RealtimePatientResponse `json:"results"` +} + +type RealtimePatientConfigResponse struct { + SchemaVersion int `json:"schemaVersion"` + Code string `json:"code"` + ClinicId string `json:"clinicId"` + StartDate time.Time `json:"startDate"` + EndDate time.Time `json:"endDate"` +} + +type RealtimePatientResponse struct { + Id string `json:"id"` + FullName string `json:"fullName"` + BirthDate time.Time `json:"birthDate"` + MRN *string `json:"mrn"` + RealtimeDays int `json:"realtimeDays"` + IsSufficientData bool `json:"isSufficientData"` +} + +type RealtimePatientsFilter struct { + StartTime *time.Time + EndTime *time.Time +} + +func NewRealtimePatientsFilter() *RealtimePatientsFilter { + return &RealtimePatientsFilter{} +} + +func (d *RealtimePatientsFilter) Parse(parser structure.ObjectParser) { + d.StartTime = parser.Time("startDate", time.RFC3339) + d.EndTime = parser.Time("endDate", time.RFC3339) +} + +func (d *RealtimePatientsFilter) Validate(validator structure.Validator) { + validator.Time("startDate", d.StartTime).NotZero() + validator.Time("endDate", d.EndTime).NotZero() +} + func GetRealtimePatients(dataServiceContext dataService.Context) { ctx := dataServiceContext.Request().Context() res := dataServiceContext.Response() @@ -91,6 +135,12 @@ func GetRealtimePatients(dataServiceContext dataService.Context) { clinicId := req.PathParam("clinicId") + filter := NewRealtimePatientsFilter() + if err := request.DecodeRequestQuery(req.Request, filter); err != nil { + responder.Error(http.StatusBadRequest, err) + return + } + startTime := time.Now().UTC().AddDate(0, 0, -60) endTime := time.Now().UTC() @@ -99,15 +149,43 @@ func GetRealtimePatients(dataServiceContext dataService.Context) { return } - userIds, err := dataServiceContext.ClinicsClient().GetPatientUserIds(ctx, clinicId) + patients, err := dataServiceContext.ClinicsClient().GetPatients(ctx, clinicId) + userIds := make([]string, len(patients)) + for i := 0; i < len(patients); i++ { + userIds[i] = *patients[0].Id + } summaryManager := dataServiceContext.SummarizerRegistry().Manager - err = summaryManager.GetRealtimePatients(ctx, userIds, startTime, endTime) + userIdsRealtimeDays, err := summaryManager.GetRealtimePatients(ctx, userIds, startTime, endTime) if err != nil { responder.Error(http.StatusInternalServerError, err) - } else { - responder.Data(http.StatusOK, nil) + return } + + patientsResponse := make([]RealtimePatientResponse, len(patients)) + for i := 0; i < len(patients); i++ { + patientsResponse[i] = RealtimePatientResponse{ + Id: *patients[i].Id, + FullName: patients[i].FullName, + BirthDate: patients[i].BirthDate.Time, + MRN: patients[i].Mrn, + RealtimeDays: userIdsRealtimeDays[*patients[i].Id], + IsSufficientData: userIdsRealtimeDays[*patients[i].Id] >= store.RealtimeUserThreshold, + } + } + + response := RealtimePatientsResponse{ + Config: RealtimePatientConfigResponse{ + SchemaVersion: 1, + Code: "CPT-99454", + ClinicId: clinicId, + StartDate: startTime, + EndDate: endTime, + }, + Results: patientsResponse, + } + + responder.Data(http.StatusOK, response) } func UpdateSummary[T types.Stats, A types.StatsPt[T]](dataServiceContext dataService.Context) { diff --git a/data/service/api/v1/users_datasets_create_test.go b/data/service/api/v1/users_datasets_create_test.go index b2ff2709a..abe455b21 100644 --- a/data/service/api/v1/users_datasets_create_test.go +++ b/data/service/api/v1/users_datasets_create_test.go @@ -1,11 +1,12 @@ package v1_test import ( - "github.com/tidepool-org/platform/clinics" "io" "net/http" "strings" + "github.com/tidepool-org/platform/clinics" + . "github.com/onsi/ginkgo/v2" . "github.com/onsi/gomega" diff --git a/data/service/context/standard.go b/data/service/context/standard.go index ad6ec84da..1b237a3c3 100644 --- a/data/service/context/standard.go +++ b/data/service/context/standard.go @@ -1,9 +1,10 @@ package context import ( - "github.com/tidepool-org/platform/clinics" "net/http" + "github.com/tidepool-org/platform/clinics" + "github.com/ant0ine/go-json-rest/rest" "github.com/tidepool-org/platform/alerts" diff --git a/data/service/service/standard.go b/data/service/service/standard.go index 635f5b7b8..874f25b2e 100644 --- a/data/service/service/standard.go +++ b/data/service/service/standard.go @@ -2,10 +2,11 @@ package service import ( "context" - "github.com/tidepool-org/platform/clinics" "log" "os" + "github.com/tidepool-org/platform/clinics" + "github.com/Shopify/sarama" eventsCommon "github.com/tidepool-org/go-common/events" diff --git a/data/store/mongo/mongo_data.go b/data/store/mongo/mongo_data.go index 99ae964f7..640b545a5 100644 --- a/data/store/mongo/mongo_data.go +++ b/data/store/mongo/mongo_data.go @@ -47,6 +47,19 @@ func (d *DataRepository) GetDataSetByID(ctx context.Context, dataSetID string) ( return d.DataSetRepository.GetDataSetByID(ctx, dataSetID) } +func (d *DataRepository) IsDataSetAutomated(ctx context.Context, dataSetID string) (bool, error) { + dataSet, err := d.DataSetRepository.GetDataSetByID(ctx, dataSetID) + if err != nil { + return false, err + } + + if dataSet != nil { + return dataSet.Type == data.DataSetTypeContinuous, nil + } + + return false, nil +} + func (d *DataRepository) CreateDataSet(ctx context.Context, dataSet *upload.Upload) error { return d.DataSetRepository.createDataSet(ctx, dataSet, time.Now().UTC()) } diff --git a/data/store/store.go b/data/store/store.go index a8be72fcb..b29093b14 100644 --- a/data/store/store.go +++ b/data/store/store.go @@ -32,6 +32,7 @@ type DataSetRepository interface { GetDataSetsForUserByID(ctx context.Context, userID string, filter *Filter, pagination *page.Pagination) ([]*upload.Upload, error) GetDataSetByID(ctx context.Context, dataSetID string) (*upload.Upload, error) + IsDataSetAutomated(ctx context.Context, dataSetID string) (bool, error) CreateDataSet(ctx context.Context, dataSet *upload.Upload) error UpdateDataSet(ctx context.Context, id string, update *data.DataSetUpdate) (*upload.Upload, error) DeleteDataSet(ctx context.Context, dataSet *upload.Upload) error diff --git a/data/store/test/data_repository.go b/data/store/test/data_repository.go index 292fca229..bb35b06df 100644 --- a/data/store/test/data_repository.go +++ b/data/store/test/data_repository.go @@ -126,6 +126,16 @@ type GetDataSetOutput struct { Error error } +type IsDataSetAutomatedInput struct { + Context context.Context + ID string +} + +type IsDataSetAutomatedOutput struct { + Automated bool + Error error +} + type ListUserDataSetsInput struct { Context context.Context UserID string @@ -248,6 +258,9 @@ type DataRepository struct { GetDataSetInvocations int GetDataSetInputs []GetDataSetInput GetDataSetOutputs []GetDataSetOutput + IsDataSetAutomatedInvocations int + IsDataSetAutomatedInputs []IsDataSetAutomatedInput + IsDataSetAutomatedOutputs []IsDataSetAutomatedOutput GetDataRangeInvocations int GetDataRangeInputs []GetDataRangeInput @@ -305,6 +318,18 @@ func (d *DataRepository) GetDataSetByID(ctx context.Context, dataSetID string) ( return output.DataSet, output.Error } +func (d *DataRepository) IsDataSetAutomated(ctx context.Context, dataSetID string) (bool, error) { + d.IsDataSetAutomatedInvocations++ + + d.IsDataSetAutomatedInputs = append(d.IsDataSetAutomatedInputs, IsDataSetAutomatedInput{Context: ctx, ID: dataSetID}) + + gomega.Expect(d.IsDataSetAutomatedOutputs).ToNot(gomega.BeEmpty()) + + output := d.IsDataSetAutomatedOutputs[0] + d.IsDataSetAutomatedOutputs = d.IsDataSetAutomatedOutputs[1:] + return output.Automated, output.Error +} + func (d *DataRepository) CreateDataSet(ctx context.Context, dataSet *upload.Upload) error { d.CreateDataSetInvocations++ diff --git a/data/summary/store/store.go b/data/summary/store/store.go index dd17515f0..f709082d4 100644 --- a/data/summary/store/store.go +++ b/data/summary/store/store.go @@ -16,6 +16,8 @@ import ( storeStructuredMongo "github.com/tidepool-org/platform/store/structured/mongo" ) +const RealtimeUserThreshold = 16 + type Repo[T types.Stats, A types.StatsPt[T]] struct { *storeStructuredMongo.Repository } @@ -80,51 +82,142 @@ func (r *TypelessRepo) DeleteSummary(ctx context.Context, userId string) error { return nil } -func (r *TypelessRepo) GetRealtimePatients(ctx context.Context, userIds []string, startTime time.Time, endTime time.Time) error { +// isRealtimeUser processes two slices of Item and returns an int count of days with realtime records. +// this currently doesn't handle N slices, only 1-2, might need adjustment for more types. +func isRealtimeUser(a, b []*types.Bucket[*types.CGMBucketData, types.CGMBucketData]) int { + var count int + + // Calculate the offset in hours between the first items of each list + offset := 0 + startA, startB := 0, 0 + combinedLength := len(a) + startA + + if b != nil { + offset = int(b[0].Date.Sub(a[0].Date).Hours()) + + if offset >= 0 { + startB = offset + } else { + startA = -offset + } + + if temp := len(b) + startB; temp > combinedLength { + combinedLength = temp + } + } + + for i := 0; i < combinedLength; i++ { + indexA := i - startA + indexB := i - startB + + // If the A list has a flagged item at this time, count it and advance to the next day. + if indexA >= 0 && indexA < len(a) && a[indexA].Data.RealtimeRecords > 0 { + count += 1 + i += 23 - a[indexA].Date.Hour() + continue + } + + if b != nil { + // Likewise with the B list + if indexB >= 0 && indexB < len(b) && b[indexB].Data.RealtimeRecords > 0 { + count += 1 + i += 23 - b[indexB].Date.Hour() + continue + } + } + + if b != nil { + // If neither list has an item at this index, we've exhausted one list, and they don't overlap. + // We need to jump to the start of the later list. + if (indexA < 0 || indexA >= len(a)) && (indexB < 0 || indexB >= len(b)) { + if indexA > 0 { + i -= indexB + 1 + } else { + i -= indexA + 1 + } + } + } + } + + return count +} + +func (r *TypelessRepo) GetRealtimePatients(ctx context.Context, userIds []string, startTime time.Time, endTime time.Time) (map[string]int, error) { if ctx == nil { - return errors.New("context is missing") + return nil, errors.New("context is missing") } if userIds == nil { - return errors.New("userIds is missing") + return nil, errors.New("userIds is missing") } if len(userIds) == 0 { - return errors.New("no userIds provided") + return nil, errors.New("no userIds provided") } if startTime.IsZero() { - return errors.New("startTime is missing") + return nil, errors.New("startTime is missing") } if endTime.IsZero() { - return errors.New("startTime is missing") + return nil, errors.New("startTime is missing") } if startTime.After(endTime) { - return errors.New("startTime is after endTime") + return nil, errors.New("startTime is after endTime") } if startTime.Before(time.Now().AddDate(0, 0, -60)) { - return errors.New("startTime is too old ( >60d ago ) ") + return nil, errors.New("startTime is too old ( >60d ago ) ") } - // todo const? - threshold := 16 - - if int(endTime.Sub(startTime).Hours()/24) < threshold { - return errors.New("time range smaller than threshold, impossible") + if int(endTime.Sub(startTime).Hours()/24) < RealtimeUserThreshold { + return nil, errors.New("time range smaller than threshold, impossible") } typs := []string{types.SummaryTypeBGM, types.SummaryTypeCGM} - oldestPossibleLastData := startTime.AddDate(0, 0, threshold) + oldestPossibleLastData := startTime.AddDate(0, 0, RealtimeUserThreshold/len(typs)) + newestPossibleFirstData := endTime.AddDate(0, 0, RealtimeUserThreshold/len(typs)) + opts := options.Find() + opts.SetProjection(bson.M{"stats.buckets": 1}) + + var realtimeUsers map[string]int for _, userId := range userIds { selector := bson.M{ - "userId": userId, - "type": bson.M{"$in": typs}, - "dates.lastData": bson.M{"$gt": oldestPossibleLastData}, + "userId": userId, + "type": bson.M{"$in": typs}, + "dates.lastData": bson.M{"$gte": oldestPossibleLastData}, + "dates.firstData": bson.M{"$lte": newestPossibleFirstData}, + // maybe filter period too? we don't care if offset and regular 30d aren't over 16d of realtime records } - r.Find(ctx, selector) + cursor, err := r.Find(ctx, selector) + if err != nil { + return nil, fmt.Errorf("unable to get realtime summaries for %s: %w", userId, err) + } + + var userSummaries []types.Summary[types.CGMStats, *types.CGMStats] + if err = cursor.All(ctx, &userSummaries); err != nil { + return nil, fmt.Errorf("unable to decode summaries for user %s: %w", userId, err) + } + + var buckets [][]*types.Bucket[*types.CGMBucketData, types.CGMBucketData] + for i := 0; i < len(userSummaries); i++ { + if len(userSummaries[i].Stats.Buckets) > 0 { + startOffset := int(startTime.Sub(userSummaries[i].Stats.Buckets[0].Date).Hours()) + endOffset := int(endTime.Sub(userSummaries[i].Stats.Buckets[0].Date).Hours()) + buckets = append(buckets, userSummaries[i].Stats.Buckets[startOffset:endOffset]) + } + } + + realtimeDays := 0 + if len(buckets) > 1 { + realtimeDays = isRealtimeUser(buckets[0], buckets[1]) + } else if len(buckets) > 0 { + realtimeDays = isRealtimeUser(buckets[0], nil) + } + + realtimeUsers[userId] = realtimeDays + } - return nil + return realtimeUsers, nil } func (r *Repo[T, A]) DeleteSummary(ctx context.Context, userId string) error { diff --git a/data/summary/summary.go b/data/summary/summary.go index 4563355b9..de1cd3709 100644 --- a/data/summary/summary.go +++ b/data/summary/summary.go @@ -102,7 +102,7 @@ func (c *GlucoseSummarizer[T, A]) GetMigratableUserIDs(ctx context.Context, pagi return c.summaries.GetMigratableUserIDs(ctx, pagination) } -func (c *Manager) GetRealtimePatients(ctx context.Context, userIds []string, startTime time.Time, endTime time.Time) error { +func (c *Manager) GetRealtimePatients(ctx context.Context, userIds []string, startTime time.Time, endTime time.Time) (map[string]int, error) { return c.summaries.GetRealtimePatients(ctx, userIds, startTime, endTime) } diff --git a/data/summary/types/bgm.go b/data/summary/types/bgm.go index 4f66f5beb..3291b6aa5 100644 --- a/data/summary/types/bgm.go +++ b/data/summary/types/bgm.go @@ -22,6 +22,9 @@ type BGMBucketData struct { HighRecords int `json:"highRecords" bson:"highRecords"` VeryHighRecords int `json:"veryHighRecords" bson:"veryHighRecords"` + RealtimeRecords int `json:"realtimeRecords" bson:"realtimeRecords"` + DeferredRecords int `json:"deferredRecords" bson:"deferredRecords"` + TotalGlucose float64 `json:"totalGlucose" bson:"totalGlucose"` TotalRecords int `json:"totalRecords" bson:"totalRecords"` } @@ -191,7 +194,7 @@ func (s *BGMStats) Update(ctx context.Context, cursor DeviceDataCursor) error { return nil } -func (B *BGMBucketData) CalculateStats(r any, _ *time.Time) (bool, error) { +func (B *BGMBucketData) CalculateStats(r any, _ *time.Time, continuous bool) (bool, error) { dataRecord, ok := r.(*glucoseDatum.Glucose) if !ok { return false, errors.New("BGM record for calculation is not compatible with Glucose type") @@ -214,6 +217,13 @@ func (B *BGMBucketData) CalculateStats(r any, _ *time.Time) (bool, error) { B.TotalRecords++ B.TotalGlucose += normalizedValue + if continuous { + B.DeferredRecords++ + if dataRecord.CreatedTime.Sub(*dataRecord.Time).Hours() < 24 { + B.RealtimeRecords++ + } + } + return false, nil } diff --git a/data/summary/types/cgm.go b/data/summary/types/cgm.go index e5b47e5c3..b8e6c6852 100644 --- a/data/summary/types/cgm.go +++ b/data/summary/types/cgm.go @@ -35,6 +35,9 @@ type CGMBucketData struct { TotalGlucose float64 `json:"totalGlucose" bson:"totalGlucose"` TotalMinutes int `json:"totalMinutes" bson:"totalMinutes"` TotalRecords int `json:"totalRecords" bson:"totalRecords"` + + RealtimeRecords int `json:"realtimeRecords" bson:"realtimeRecords"` + DeferredRecords int `json:"deferredRecords" bson:"deferredRecords"` } type CGMPeriod struct { @@ -246,7 +249,7 @@ func (s *CGMStats) Update(ctx context.Context, cursor DeviceDataCursor) error { return nil } -func (B *CGMBucketData) CalculateStats(r any, lastRecordTime *time.Time) (bool, error) { +func (B *CGMBucketData) CalculateStats(r any, lastRecordTime *time.Time, continuous bool) (bool, error) { dataRecord, ok := r.(*glucoseDatum.Glucose) if !ok { return false, errors.New("CGM record for calculation is not compatible with Glucose type") @@ -287,6 +290,13 @@ func (B *CGMBucketData) CalculateStats(r any, lastRecordTime *time.Time) (bool, B.TotalGlucose += normalizedValue * float64(duration) B.LastRecordDuration = duration + if continuous { + B.DeferredRecords++ + if dataRecord.CreatedTime.Sub(*dataRecord.Time).Hours() < 24 { + B.RealtimeRecords++ + } + } + return false, nil } diff --git a/data/summary/types/summary.go b/data/summary/types/summary.go index 3a1ed545b..9000d589c 100644 --- a/data/summary/types/summary.go +++ b/data/summary/types/summary.go @@ -85,6 +85,13 @@ type UserLastUpdated struct { NextLastUpdated time.Time } +type DeviceDataManager interface { + IsDataSetAutomated(ctx context.Context, dataSetID string) (bool, error) + GetLastUpdatedForUser(ctx context.Context, userId string, typ string, lastUpdated time.Time) (*data.UserLastUpdated, error) + GetDataRange(ctx context.Context, userId string, typ string, status *data.UserLastUpdated) (*mongo.Cursor, error) + DistinctUserIDs(ctx context.Context, typ string) ([]string, error) +} + type Config struct { SchemaVersion int `json:"schemaVersion" bson:"schemaVersion"` @@ -140,7 +147,7 @@ type Bucket[S BucketDataPt[T], T BucketData] struct { type BucketDataPt[T BucketData] interface { *T - CalculateStats(interface{}, *time.Time) (bool, error) + CalculateStats(interface{}, *time.Time, bool) (bool, error) } func CreateBucket[A BucketDataPt[T], T BucketData](t time.Time) *Bucket[A, T] { @@ -346,7 +353,7 @@ func removeExcessBuckets[A BucketDataPt[T], T BucketData](buckets *[]*Bucket[A, *buckets = (*buckets)[excess:] } -func AddData[A BucketDataPt[T], T BucketData, R RecordTypes, D RecordTypesPt[R]](buckets *[]*Bucket[A, T], userData []D) error { +func AddData[A BucketDataPt[T], T BucketData, R RecordTypes, D RecordTypesPt[R]](buckets *[]*Bucket[A, T], userData []D, realtimeUpload map[string]bool) error { previousPeriod := time.Time{} var newBucket *Bucket[A, T] diff --git a/data/summary/types/summary_bgm_test.go b/data/summary/types/summary_bgm_test.go index 92d6ce21e..0f148db03 100644 --- a/data/summary/types/summary_bgm_test.go +++ b/data/summary/types/summary_bgm_test.go @@ -110,6 +110,7 @@ var _ = Describe("BGM Summary", func() { var userBGMSummary *types.Summary[types.BGMStats, *types.BGMStats] var periodKeys = []string{"1d", "7d", "14d", "30d"} var periodInts = []int{1, 7, 14, 30} + var realtimeUploads = map[string]bool{} Context("AddData Bucket Testing", func() { It("Returns correct hour count when given 2 weeks", func() { diff --git a/data/summary/types/summary_cgm_test.go b/data/summary/types/summary_cgm_test.go index dbf46b15e..ac9aa9d83 100644 --- a/data/summary/types/summary_cgm_test.go +++ b/data/summary/types/summary_cgm_test.go @@ -114,6 +114,7 @@ var _ = Describe("CGM Summary", func() { var userCGMSummary *types.Summary[types.CGMStats, *types.CGMStats] var periodKeys = []string{"1d", "7d", "14d", "30d"} var periodInts = []int{1, 7, 14, 30} + var realtimeUploads = map[string]bool{} Context("AddData Bucket Testing", func() { It("Returns correct hour count when given 2 weeks", func() { From 10589a4f02698a4e2fdfb0123d7941148830b014 Mon Sep 17 00:00:00 2001 From: Alexander Diana Date: Fri, 8 Mar 2024 05:04:18 +0000 Subject: [PATCH 04/34] use user token for clinic patient listing, cleanup from review --- clinics/mock.go | 8 +- clinics/service.go | 10 ++- data/data.go | 13 +++ data/service/api/v1/summary.go | 57 +++++++------ data/store/mongo/mongo_data.go | 13 --- data/store/store.go | 2 - data/summary/store/store.go | 10 +-- data/summary/summary.go | 90 ++++++++++---------- data/summary/types/bgm.go | 33 ++++++-- data/summary/types/cgm.go | 24 +++++- data/summary/types/summary.go | 31 +++++-- data/summary/types/summary_bgm_test.go | 89 +++++++++++-------- data/summary/types/summary_cgm_test.go | 113 +++++++++++++++---------- data/types/base.go | 8 ++ data/types/upload/upload.go | 4 + 15 files changed, 306 insertions(+), 199 deletions(-) diff --git a/clinics/mock.go b/clinics/mock.go index fa1956de8..5a64bb6b4 100644 --- a/clinics/mock.go +++ b/clinics/mock.go @@ -51,18 +51,18 @@ func (mr *MockClientMockRecorder) GetClinician(ctx, clinicID, clinicianID interf } // GetPatients mocks base method. -func (m *MockClient) GetPatients(ctx context.Context, clinicId string) ([]api.Patient, error) { +func (m *MockClient) GetPatients(ctx context.Context, clinicId, userToken string) ([]api.Patient, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetPatients", ctx, clinicId) + ret := m.ctrl.Call(m, "GetPatients", ctx, clinicId, userToken) ret0, _ := ret[0].([]api.Patient) ret1, _ := ret[1].(error) return ret0, ret1 } // GetPatients indicates an expected call of GetPatients. -func (mr *MockClientMockRecorder) GetPatients(ctx, clinicId interface{}) *gomock.Call { +func (mr *MockClientMockRecorder) GetPatients(ctx, clinicId, userToken interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetPatients", reflect.TypeOf((*MockClient)(nil).GetPatients), ctx, clinicId) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetPatients", reflect.TypeOf((*MockClient)(nil).GetPatients), ctx, clinicId, userToken) } // ListEHREnabledClinics mocks base method. diff --git a/clinics/service.go b/clinics/service.go index cd48b524b..ef44a4688 100644 --- a/clinics/service.go +++ b/clinics/service.go @@ -26,7 +26,7 @@ type Client interface { SharePatientAccount(ctx context.Context, clinicID, patientID string) (*clinic.Patient, error) ListEHREnabledClinics(ctx context.Context) ([]clinic.Clinic, error) SyncEHRData(ctx context.Context, clinicID string) error - GetPatients(ctx context.Context, clinicId string) ([]clinic.Patient, error) + GetPatients(ctx context.Context, clinicId string, userToken string) ([]clinic.Patient, error) } type config struct { @@ -157,12 +157,16 @@ func (d *defaultClient) getPatient(ctx context.Context, clinicID, patientID stri return response.JSON200, nil } -func (d *defaultClient) GetPatients(ctx context.Context, clinicId string) ([]clinic.Patient, error) { +func (d *defaultClient) GetPatients(ctx context.Context, clinicId string, userToken string) ([]clinic.Patient, error) { params := &clinic.ListPatientsParams{ Limit: pointer.FromAny(1001), } - response, err := d.httpClient.ListPatientsWithResponse(ctx, clinicId, params) + response, err := d.httpClient.ListPatientsWithResponse(ctx, clinicId, params, func(ctx context.Context, req *http.Request) error { + req.Header.Add(auth.TidepoolSessionTokenHeaderKey, userToken) + return nil + }) + if err != nil { return nil, err } diff --git a/data/data.go b/data/data.go index c02cee6f2..dd32ddf0c 100644 --- a/data/data.go +++ b/data/data.go @@ -3,6 +3,7 @@ package data import ( "regexp" "strconv" + "time" "github.com/tidepool-org/platform/errors" "github.com/tidepool-org/platform/id" @@ -132,3 +133,15 @@ func ErrorValueStringAsIDNotValid(value string) error { } var idExpression = regexp.MustCompile("^[0-9a-z]{32}$") // TODO: Want just "[0-9a-f]{32}" (Jellyfish uses [0-9a-z]) + +type UserLastUpdated struct { + FirstData time.Time + LastData time.Time + + EarliestModified time.Time + + LastUpload time.Time + + LastUpdated time.Time + NextLastUpdated time.Time +} diff --git a/data/service/api/v1/summary.go b/data/service/api/v1/summary.go index 989a27952..973cdb7a2 100644 --- a/data/service/api/v1/summary.go +++ b/data/service/api/v1/summary.go @@ -19,6 +19,8 @@ import ( "github.com/tidepool-org/platform/service" ) +const realtimePatientsInsuranceCode = "CPT-99454" + func SummaryRoutes() []dataService.Route { return []dataService.Route{ dataService.Get("/v1/summaries/cgm/:userId", GetSummary[types.CGMStats, *types.CGMStats], api.RequireAuth), @@ -36,7 +38,7 @@ func SummaryRoutes() []dataService.Route { dataService.Get("/v1/summaries/migratable/cgm", GetMigratableUserIDs[types.CGMStats, *types.CGMStats], api.RequireAuth), dataService.Get("/v1/summaries/migratable/bgm", GetMigratableUserIDs[types.BGMStats, *types.BGMStats], api.RequireAuth), - dataService.Get("/v1/summaries/realtime/:clinicId", GetRealtimePatients, api.RequireAuth), + dataService.Get("/v1/summaries/realtime/:clinicId", GetPatientsWithRealtimeData, api.RequireAuth), } } @@ -91,20 +93,19 @@ type RealtimePatientsResponse struct { } type RealtimePatientConfigResponse struct { - SchemaVersion int `json:"schemaVersion"` - Code string `json:"code"` - ClinicId string `json:"clinicId"` - StartDate time.Time `json:"startDate"` - EndDate time.Time `json:"endDate"` + Code string `json:"code"` + ClinicId string `json:"clinicId"` + StartDate time.Time `json:"startDate"` + EndDate time.Time `json:"endDate"` } type RealtimePatientResponse struct { - Id string `json:"id"` - FullName string `json:"fullName"` - BirthDate time.Time `json:"birthDate"` - MRN *string `json:"mrn"` - RealtimeDays int `json:"realtimeDays"` - IsSufficientData bool `json:"isSufficientData"` + Id string `json:"id"` + FullName string `json:"fullName"` + BirthDate time.Time `json:"birthDate"` + MRN *string `json:"mrn"` + RealtimeDays int `json:"realtimeDays"` + HasSufficientData bool `json:"hasSufficientData"` } type RealtimePatientsFilter struct { @@ -126,7 +127,7 @@ func (d *RealtimePatientsFilter) Validate(validator structure.Validator) { validator.Time("endDate", d.EndTime).NotZero() } -func GetRealtimePatients(dataServiceContext dataService.Context) { +func GetPatientsWithRealtimeData(dataServiceContext dataService.Context) { ctx := dataServiceContext.Request().Context() res := dataServiceContext.Response() req := dataServiceContext.Request() @@ -144,19 +145,20 @@ func GetRealtimePatients(dataServiceContext dataService.Context) { startTime := time.Now().UTC().AddDate(0, 0, -60) endTime := time.Now().UTC() - if details := request.GetAuthDetails(ctx); !details.IsService() { + details := request.GetAuthDetails(ctx) + if !details.IsService() { dataServiceContext.RespondWithError(service.ErrorUnauthorized()) return } - patients, err := dataServiceContext.ClinicsClient().GetPatients(ctx, clinicId) + patients, err := dataServiceContext.ClinicsClient().GetPatients(ctx, clinicId, details.Token()) userIds := make([]string, len(patients)) for i := 0; i < len(patients); i++ { userIds[i] = *patients[0].Id } - summaryManager := dataServiceContext.SummarizerRegistry().Manager - userIdsRealtimeDays, err := summaryManager.GetRealtimePatients(ctx, userIds, startTime, endTime) + summaryManager := dataServiceContext.SummarizerRegistry().TypelessSummarizer + userIdsRealtimeDays, err := summaryManager.GetPatientsWithRealtimeData(ctx, userIds, startTime, endTime) if err != nil { responder.Error(http.StatusInternalServerError, err) return @@ -165,22 +167,21 @@ func GetRealtimePatients(dataServiceContext dataService.Context) { patientsResponse := make([]RealtimePatientResponse, len(patients)) for i := 0; i < len(patients); i++ { patientsResponse[i] = RealtimePatientResponse{ - Id: *patients[i].Id, - FullName: patients[i].FullName, - BirthDate: patients[i].BirthDate.Time, - MRN: patients[i].Mrn, - RealtimeDays: userIdsRealtimeDays[*patients[i].Id], - IsSufficientData: userIdsRealtimeDays[*patients[i].Id] >= store.RealtimeUserThreshold, + Id: *patients[i].Id, + FullName: patients[i].FullName, + BirthDate: patients[i].BirthDate.Time, + MRN: patients[i].Mrn, + RealtimeDays: userIdsRealtimeDays[*patients[i].Id], + HasSufficientData: userIdsRealtimeDays[*patients[i].Id] >= store.RealtimeUserThreshold, } } response := RealtimePatientsResponse{ Config: RealtimePatientConfigResponse{ - SchemaVersion: 1, - Code: "CPT-99454", - ClinicId: clinicId, - StartDate: startTime, - EndDate: endTime, + Code: realtimePatientsInsuranceCode, + ClinicId: clinicId, + StartDate: startTime, + EndDate: endTime, }, Results: patientsResponse, } diff --git a/data/store/mongo/mongo_data.go b/data/store/mongo/mongo_data.go index 640b545a5..99ae964f7 100644 --- a/data/store/mongo/mongo_data.go +++ b/data/store/mongo/mongo_data.go @@ -47,19 +47,6 @@ func (d *DataRepository) GetDataSetByID(ctx context.Context, dataSetID string) ( return d.DataSetRepository.GetDataSetByID(ctx, dataSetID) } -func (d *DataRepository) IsDataSetAutomated(ctx context.Context, dataSetID string) (bool, error) { - dataSet, err := d.DataSetRepository.GetDataSetByID(ctx, dataSetID) - if err != nil { - return false, err - } - - if dataSet != nil { - return dataSet.Type == data.DataSetTypeContinuous, nil - } - - return false, nil -} - func (d *DataRepository) CreateDataSet(ctx context.Context, dataSet *upload.Upload) error { return d.DataSetRepository.createDataSet(ctx, dataSet, time.Now().UTC()) } diff --git a/data/store/store.go b/data/store/store.go index b29093b14..bea745d97 100644 --- a/data/store/store.go +++ b/data/store/store.go @@ -32,12 +32,10 @@ type DataSetRepository interface { GetDataSetsForUserByID(ctx context.Context, userID string, filter *Filter, pagination *page.Pagination) ([]*upload.Upload, error) GetDataSetByID(ctx context.Context, dataSetID string) (*upload.Upload, error) - IsDataSetAutomated(ctx context.Context, dataSetID string) (bool, error) CreateDataSet(ctx context.Context, dataSet *upload.Upload) error UpdateDataSet(ctx context.Context, id string, update *data.DataSetUpdate) (*upload.Upload, error) DeleteDataSet(ctx context.Context, dataSet *upload.Upload) error DestroyDataForUserByID(ctx context.Context, userID string) error - ListUserDataSets(ctx context.Context, userID string, filter *data.DataSetFilter, pagination *page.Pagination) (data.DataSets, error) GetDataSet(ctx context.Context, id string) (*data.DataSet, error) } diff --git a/data/summary/store/store.go b/data/summary/store/store.go index f709082d4..beeb0d383 100644 --- a/data/summary/store/store.go +++ b/data/summary/store/store.go @@ -82,9 +82,9 @@ func (r *TypelessRepo) DeleteSummary(ctx context.Context, userId string) error { return nil } -// isRealtimeUser processes two slices of Item and returns an int count of days with realtime records. +// GetNumberOfDaysWithRealtimeData processes two slices of Item and returns an int count of days with realtime records. // this currently doesn't handle N slices, only 1-2, might need adjustment for more types. -func isRealtimeUser(a, b []*types.Bucket[*types.CGMBucketData, types.CGMBucketData]) int { +func GetNumberOfDaysWithRealtimeData(a, b []*types.Bucket[*types.CGMBucketData, types.CGMBucketData]) int { var count int // Calculate the offset in hours between the first items of each list @@ -142,7 +142,7 @@ func isRealtimeUser(a, b []*types.Bucket[*types.CGMBucketData, types.CGMBucketDa return count } -func (r *TypelessRepo) GetRealtimePatients(ctx context.Context, userIds []string, startTime time.Time, endTime time.Time) (map[string]int, error) { +func (r *TypelessRepo) GetPatientsWithRealtimeData(ctx context.Context, userIds []string, startTime time.Time, endTime time.Time) (map[string]int, error) { if ctx == nil { return nil, errors.New("context is missing") } @@ -208,9 +208,9 @@ func (r *TypelessRepo) GetRealtimePatients(ctx context.Context, userIds []string realtimeDays := 0 if len(buckets) > 1 { - realtimeDays = isRealtimeUser(buckets[0], buckets[1]) + realtimeDays = GetNumberOfDaysWithRealtimeData(buckets[0], buckets[1]) } else if len(buckets) > 0 { - realtimeDays = isRealtimeUser(buckets[0], nil) + realtimeDays = GetNumberOfDaysWithRealtimeData(buckets[0], nil) } realtimeUsers[userId] = realtimeDays diff --git a/data/summary/summary.go b/data/summary/summary.go index de1cd3709..eb38cad7e 100644 --- a/data/summary/summary.go +++ b/data/summary/summary.go @@ -20,16 +20,16 @@ const ( ) type SummarizerRegistry struct { - summarizers map[string]any - Manager *Manager + summarizers map[string]any + TypelessSummarizer *TypelessSummarizer } -func New(summaryRepository *storeStructuredMongo.Repository, dataRepository dataStore.DataRepository) *SummarizerRegistry { +func New(summaryRepository *storeStructuredMongo.Repository, dataRepository types.DeviceDataFetcher) *SummarizerRegistry { registry := &SummarizerRegistry{summarizers: make(map[string]any)} addSummarizer(registry, NewBGMSummarizer(summaryRepository, dataRepository)) addSummarizer(registry, NewCGMSummarizer(summaryRepository, dataRepository)) - registry.Manager = NewManager(summaryRepository) + registry.TypelessSummarizer = NewTypelessSummarizer(summaryRepository) return registry } @@ -58,67 +58,67 @@ var _ Summarizer[types.CGMStats, *types.CGMStats] = &GlucoseSummarizer[types.CGM var _ Summarizer[types.BGMStats, *types.BGMStats] = &GlucoseSummarizer[types.BGMStats, *types.BGMStats]{} type GlucoseSummarizer[T types.Stats, A types.StatsPt[T]] struct { - deviceData dataStore.DataRepository - summaries *store.Repo[T, A] + userData types.DeviceDataFetcher + summaries *store.Repo[T, A] } -type Manager struct { - summaries *store.TypelessRepo -} - -func NewBGMSummarizer(collection *storeStructuredMongo.Repository, dataRepo dataStore.DataRepository) Summarizer[types.BGMStats, *types.BGMStats] { +func NewBGMSummarizer(collection *storeStructuredMongo.Repository, dataRepo types.DeviceDataFetcher) Summarizer[types.BGMStats, *types.BGMStats] { return &GlucoseSummarizer[types.BGMStats, *types.BGMStats]{ - deviceData: dataRepo, - summaries: store.New[types.BGMStats, *types.BGMStats](collection), + userData: dataRepo, + summaries: store.New[types.BGMStats, *types.BGMStats](collection), } } -func NewCGMSummarizer(collection *storeStructuredMongo.Repository, deviceData dataStore.DataRepository) Summarizer[types.CGMStats, *types.CGMStats] { +func NewCGMSummarizer(collection *storeStructuredMongo.Repository, dataRepo types.DeviceDataFetcher) Summarizer[types.CGMStats, *types.CGMStats] { return &GlucoseSummarizer[types.CGMStats, *types.CGMStats]{ - deviceData: deviceData, - summaries: store.New[types.CGMStats, *types.CGMStats](collection), + userData: dataRepo, + summaries: store.New[types.CGMStats, *types.CGMStats](collection), } } -func NewManager(collection *storeStructuredMongo.Repository) *Manager { - return &Manager{ +type TypelessSummarizer struct { + summaries *store.TypelessRepo +} + +func NewTypelessSummarizer(collection *storeStructuredMongo.Repository) *TypelessSummarizer { + return &TypelessSummarizer{ summaries: store.NewTypeless(collection), } } -func (c *GlucoseSummarizer[T, A]) GetSummary(ctx context.Context, userId string) (*types.Summary[T, A], error) { - return c.summaries.GetSummary(ctx, userId) +func (ts *TypelessSummarizer) GetPatientsWithRealtimeData(ctx context.Context, userIds []string, startTime time.Time, endTime time.Time) (map[string]int, error) { + return ts.summaries.GetPatientsWithRealtimeData(ctx, userIds, startTime, endTime) } -func (c *GlucoseSummarizer[T, A]) SetOutdated(ctx context.Context, userId, reason string) (*time.Time, error) { - return c.summaries.SetOutdated(ctx, userId, reason) +func (ts *TypelessSummarizer) DeleteSummaries(ctx context.Context, userId string) error { + return ts.summaries.DeleteSummary(ctx, userId) } -func (c *GlucoseSummarizer[T, A]) GetOutdatedUserIDs(ctx context.Context, pagination *page.Pagination) (*types.OutdatedSummariesResponse, error) { - return c.summaries.GetOutdatedUserIDs(ctx, pagination) +func (gs *GlucoseSummarizer[T, A]) GetSummary(ctx context.Context, userId string) (*types.Summary[T, A], error) { + return gs.summaries.GetSummary(ctx, userId) } -func (c *GlucoseSummarizer[T, A]) GetMigratableUserIDs(ctx context.Context, pagination *page.Pagination) ([]string, error) { - return c.summaries.GetMigratableUserIDs(ctx, pagination) +func (gs *GlucoseSummarizer[T, A]) SetOutdated(ctx context.Context, userId, reason string) (*time.Time, error) { + return gs.summaries.SetOutdated(ctx, userId, reason) } -func (c *Manager) GetRealtimePatients(ctx context.Context, userIds []string, startTime time.Time, endTime time.Time) (map[string]int, error) { - return c.summaries.GetRealtimePatients(ctx, userIds, startTime, endTime) +func (gs *GlucoseSummarizer[T, A]) GetOutdatedUserIDs(ctx context.Context, pagination *page.Pagination) (*types.OutdatedSummariesResponse, error) { + return gs.summaries.GetOutdatedUserIDs(ctx, pagination) } -func (c *Manager) DeleteSummaries(ctx context.Context, userId string) error { - return c.summaries.DeleteSummary(ctx, userId) +func (gs *GlucoseSummarizer[T, A]) GetMigratableUserIDs(ctx context.Context, pagination *page.Pagination) ([]string, error) { + return gs.summaries.GetMigratableUserIDs(ctx, pagination) } -func (c *GlucoseSummarizer[T, A]) BackfillSummaries(ctx context.Context) (int, error) { +func (gs *GlucoseSummarizer[T, A]) BackfillSummaries(ctx context.Context) (int, error) { var empty struct{} - distinctDataUserIDs, err := c.deviceData.DistinctUserIDs(ctx, types.GetDeviceDataTypeString[T, A]()) + distinctDataUserIDs, err := gs.userData.DistinctUserIDs(ctx, types.GetDeviceDataTypeString[T, A]()) if err != nil { return 0, err } - distinctSummaryIDs, err := c.summaries.DistinctSummaryIDs(ctx) + distinctSummaryIDs, err := gs.summaries.DistinctSummaryIDs(ctx) if err != nil { return 0, err } @@ -146,7 +146,7 @@ func (c *GlucoseSummarizer[T, A]) BackfillSummaries(ctx context.Context) (int, e summaries = append(summaries, s) if len(summaries) >= backfillInsertBatch { - count, err := c.summaries.CreateSummaries(ctx, summaries) + count, err := gs.summaries.CreateSummaries(ctx, summaries) if err != nil { return count, err } @@ -155,15 +155,16 @@ func (c *GlucoseSummarizer[T, A]) BackfillSummaries(ctx context.Context) (int, e } if len(summaries) > 0 { - return c.summaries.CreateSummaries(ctx, summaries) + return gs.summaries.CreateSummaries(ctx, summaries) } return 0, nil } -func (c *GlucoseSummarizer[T, A]) UpdateSummary(ctx context.Context, userId string) (*types.Summary[T, A], error) { +func (gs *GlucoseSummarizer[T, A]) UpdateSummary(ctx context.Context, userId string) (*types.Summary[T, A], error) { logger := log.LoggerFromContext(ctx) - userSummary, err := c.GetSummary(ctx, userId) + userSummary, err := gs.GetSummary(ctx, userId) + summaryType := types.GetDeviceDataTypeString[T, A]() if err != nil { return nil, err } @@ -180,8 +181,8 @@ func (c *GlucoseSummarizer[T, A]) UpdateSummary(ctx context.Context, userId stri userSummary.Dates.Reset() } - var status *types.UserLastUpdated - status, err = c.deviceData.GetLastUpdatedForUser(ctx, userId, types.GetDeviceDataTypeString[T, A](), userSummary.Dates.LastUpdatedDate) + var status *data.UserLastUpdated + status, err = gs.userData.GetLastUpdatedForUser(ctx, userId, summaryType, userSummary.Dates.LastUpdatedDate) if err != nil { return nil, err } @@ -190,14 +191,14 @@ func (c *GlucoseSummarizer[T, A]) UpdateSummary(ctx context.Context, userId stri if status.LastData.IsZero() { // user's data is inactive/ancient/deleted, or this summary shouldn't have been created logger.Warnf("User %s has a summary, but no data within range, deleting summary", userId) - return nil, c.summaries.DeleteSummary(ctx, userId) + return nil, gs.summaries.DeleteSummary(ctx, userId) } // this filters out users which cannot be updated, as they somehow got called for update, but have no new data if status.EarliestModified.IsZero() { logger.Warnf("User %s was called for a %s summary update, but has no new data, skipping", userId, types.GetTypeString[T, A]()) userSummary.Dates.Update(status, userSummary.Stats.GetBucketDate(0)) - return userSummary, c.summaries.ReplaceSummary(ctx, userSummary) + return userSummary, gs.summaries.ReplaceSummary(ctx, userSummary) } if first := userSummary.Stats.ClearInvalidatedBuckets(status.EarliestModified); !first.IsZero() { @@ -205,20 +206,21 @@ func (c *GlucoseSummarizer[T, A]) UpdateSummary(ctx context.Context, userId stri } var cursor types.DeviceDataCursor - cursor, err = c.deviceData.GetDataRange(ctx, userId, types.GetDeviceDataTypeString[T, A](), status) + cursor, err = gs.userData.GetDataRange(ctx, userId, summaryType, status) if err != nil { return nil, err } defer cursor.Close(ctx) - err = userSummary.Stats.Update(ctx, cursor) + err = userSummary.Stats.Update(ctx, cursor, gs.userData) + if err != nil { return nil, err } userSummary.Dates.Update(status, userSummary.Stats.GetBucketDate(0)) - err = c.summaries.ReplaceSummary(ctx, userSummary) + err = gs.summaries.ReplaceSummary(ctx, userSummary) return userSummary, err } diff --git a/data/summary/types/bgm.go b/data/summary/types/bgm.go index 3291b6aa5..20db115dc 100644 --- a/data/summary/types/bgm.go +++ b/data/summary/types/bgm.go @@ -7,6 +7,8 @@ import ( "strconv" "time" + "github.com/tidepool-org/platform/data/types/upload" + "github.com/tidepool-org/platform/data/types/blood/glucose/selfmonitored" "github.com/tidepool-org/platform/data/blood/glucose" @@ -22,11 +24,15 @@ type BGMBucketData struct { HighRecords int `json:"highRecords" bson:"highRecords"` VeryHighRecords int `json:"veryHighRecords" bson:"veryHighRecords"` - RealtimeRecords int `json:"realtimeRecords" bson:"realtimeRecords"` - DeferredRecords int `json:"deferredRecords" bson:"deferredRecords"` - TotalGlucose float64 `json:"totalGlucose" bson:"totalGlucose"` TotalRecords int `json:"totalRecords" bson:"totalRecords"` + + // RealtimeRecords is the total count of records which were both uploaded within 24h of the record creation + // and from a continuous dataset + RealtimeRecords int `json:"realtimeRecords" bson:"realtimeRecords"` + + // DeferredRecords is the total count of records which are in continuous datasets, but not uploaded within 24h + DeferredRecords int `json:"deferredRecords" bson:"deferredRecords"` } type BGMPeriod struct { @@ -155,9 +161,11 @@ func (s *BGMStats) ClearInvalidatedBuckets(earliestModified time.Time) (firstDat return } -func (s *BGMStats) Update(ctx context.Context, cursor DeviceDataCursor) error { - var userData []*glucoseDatum.Glucose = nil +func (s *BGMStats) Update(ctx context.Context, cursor DeviceDataCursor, dataRepo DeviceDataFetcher) error { var err error + var userData []*glucoseDatum.Glucose = nil + var uploadRecord *upload.Upload + uploadIds := map[string]bool{} for cursor.Next(ctx) { if userData == nil { @@ -170,9 +178,20 @@ func (s *BGMStats) Update(ctx context.Context, cursor DeviceDataCursor) error { } userData = append(userData, r) + if _, ok := uploadIds[*r.UploadID]; !ok { + uploadRecord, err = dataRepo.GetDataSetByID(ctx, *r.UploadID) + if err != nil { + return err + } + uploadIds[*r.UploadID] = uploadRecord.IsContinuous() + if err != nil { + return err + } + } + // we call AddData before each network call to the db to reduce thrashing if cursor.RemainingBatchLength() != 0 { - err = AddData(&s.Buckets, userData) + err = AddData(&s.Buckets, userData, uploadIds) if err != nil { return err } @@ -182,7 +201,7 @@ func (s *BGMStats) Update(ctx context.Context, cursor DeviceDataCursor) error { // add the final partial batch if userData != nil { - err = AddData(&s.Buckets, userData) + err = AddData(&s.Buckets, userData, uploadIds) if err != nil { return err } diff --git a/data/summary/types/cgm.go b/data/summary/types/cgm.go index b8e6c6852..1e8c972b1 100644 --- a/data/summary/types/cgm.go +++ b/data/summary/types/cgm.go @@ -7,6 +7,8 @@ import ( "strconv" "time" + "github.com/tidepool-org/platform/data/types/upload" + "github.com/tidepool-org/platform/data/types/blood/glucose/continuous" "github.com/tidepool-org/platform/data/blood/glucose" @@ -36,7 +38,11 @@ type CGMBucketData struct { TotalMinutes int `json:"totalMinutes" bson:"totalMinutes"` TotalRecords int `json:"totalRecords" bson:"totalRecords"` + // RealtimeRecords is the total count of records which were both uploaded within 24h of the record creation + // and from a continuous dataset RealtimeRecords int `json:"realtimeRecords" bson:"realtimeRecords"` + + // DeferredRecords is the total count of records which are in continuous datasets, but not uploaded within 24h DeferredRecords int `json:"deferredRecords" bson:"deferredRecords"` } @@ -210,9 +216,11 @@ func (s *CGMStats) ClearInvalidatedBuckets(earliestModified time.Time) (firstDat return } -func (s *CGMStats) Update(ctx context.Context, cursor DeviceDataCursor) error { - var userData []*glucoseDatum.Glucose = nil +func (s *CGMStats) Update(ctx context.Context, cursor DeviceDataCursor, dataRepo DeviceDataFetcher) error { var err error + var uploadRecord *upload.Upload + var userData []*glucoseDatum.Glucose = nil + uploadIds := map[string]bool{} for cursor.Next(ctx) { if userData == nil { @@ -225,9 +233,17 @@ func (s *CGMStats) Update(ctx context.Context, cursor DeviceDataCursor) error { } userData = append(userData, r) + if _, ok := uploadIds[*r.UploadID]; !ok { + uploadRecord, err = dataRepo.GetDataSetByID(ctx, *r.UploadID) + if err != nil { + return err + } + uploadIds[*r.UploadID] = uploadRecord.IsContinuous() + } + // we call AddData before each network call to the db to reduce thrashing if cursor.RemainingBatchLength() != 0 { - err = AddData(&s.Buckets, userData) + err = AddData(&s.Buckets, userData, uploadIds) if err != nil { return err } @@ -237,7 +253,7 @@ func (s *CGMStats) Update(ctx context.Context, cursor DeviceDataCursor) error { // add the final partial batch if userData != nil { - err = AddData(&s.Buckets, userData) + err = AddData(&s.Buckets, userData, uploadIds) if err != nil { return err } diff --git a/data/summary/types/summary.go b/data/summary/types/summary.go index 9000d589c..19cc50bf0 100644 --- a/data/summary/types/summary.go +++ b/data/summary/types/summary.go @@ -3,6 +3,14 @@ package types import ( "context" "fmt" + "github.com/tidepool-org/platform/data/types/blood/glucose/selfmonitored" + + "github.com/tidepool-org/platform/data/types/upload" + + "go.mongodb.org/mongo-driver/mongo" + + "github.com/tidepool-org/platform/data" + "time" "github.com/tidepool-org/platform/pointer" @@ -10,7 +18,6 @@ import ( "github.com/tidepool-org/platform/errors" "github.com/tidepool-org/platform/data/types/blood/glucose/continuous" - "github.com/tidepool-org/platform/data/types/blood/glucose/selfmonitored" "go.mongodb.org/mongo-driver/bson/primitive" @@ -64,6 +71,8 @@ type RecordTypes interface { type RecordTypesPt[T RecordTypes] interface { *T GetTime() *time.Time + GetCreatedTime() *time.Time + GetUploadID() *string } type DeviceDataCursor interface { @@ -85,8 +94,8 @@ type UserLastUpdated struct { NextLastUpdated time.Time } -type DeviceDataManager interface { - IsDataSetAutomated(ctx context.Context, dataSetID string) (bool, error) +type DeviceDataFetcher interface { + GetDataSetByID(ctx context.Context, dataSetID string) (*upload.Upload, error) GetLastUpdatedForUser(ctx context.Context, userId string, typ string, lastUpdated time.Time) (*data.UserLastUpdated, error) GetDataRange(ctx context.Context, userId string, typ string, status *data.UserLastUpdated) (*mongo.Cursor, error) DistinctUserIDs(ctx context.Context, typ string) ([]string, error) @@ -120,7 +129,7 @@ type Dates struct { OutdatedReason []string `json:"outdatedReason" bson:"outdatedReason"` } -func (d *Dates) Update(status *UserLastUpdated, firstBucketDate time.Time) { +func (d *Dates) Update(status *data.UserLastUpdated, firstBucketDate time.Time) { d.LastUpdatedDate = status.NextLastUpdated d.LastUpdatedReason = d.OutdatedReason @@ -168,7 +177,7 @@ type StatsPt[T Stats] interface { Init() GetBucketsLen() int GetBucketDate(int) time.Time - Update(context.Context, DeviceDataCursor) error + Update(context.Context, DeviceDataCursor, DeviceDataFetcher) error ClearInvalidatedBuckets(earliestModified time.Time) time.Time } @@ -353,7 +362,14 @@ func removeExcessBuckets[A BucketDataPt[T], T BucketData](buckets *[]*Bucket[A, *buckets = (*buckets)[excess:] } -func AddData[A BucketDataPt[T], T BucketData, R RecordTypes, D RecordTypesPt[R]](buckets *[]*Bucket[A, T], userData []D, realtimeUpload map[string]bool) error { +type RealtimeUploads map[string]bool + +func (r *RealtimeUploads) IsRealtime(uploadId string) bool { + val, _ := (*r)[uploadId] + return val +} + +func AddData[A BucketDataPt[T], T BucketData, R RecordTypes, D RecordTypesPt[R]](buckets *[]*Bucket[A, T], userData []D, uploads RealtimeUploads) error { previousPeriod := time.Time{} var newBucket *Bucket[A, T] @@ -414,7 +430,8 @@ func AddData[A BucketDataPt[T], T BucketData, R RecordTypes, D RecordTypesPt[R]] previousPeriod = currentPeriod - skipped, err := newBucket.Data.CalculateStats(r, &newBucket.LastRecordTime) + skipped, err := newBucket.Data.CalculateStats(r, &newBucket.LastRecordTime, uploads.IsRealtime(*r.GetUploadID())) + if err != nil { return err } diff --git a/data/summary/types/summary_bgm_test.go b/data/summary/types/summary_bgm_test.go index 0f148db03..ab2de29ea 100644 --- a/data/summary/types/summary_bgm_test.go +++ b/data/summary/types/summary_bgm_test.go @@ -3,6 +3,8 @@ package types_test import ( "context" "fmt" + dataStoreMongo "github.com/tidepool-org/platform/data/store/mongo" + storeStructuredMongoTest "github.com/tidepool-org/platform/store/structured/mongo/test" "math/rand" "strconv" "time" @@ -116,7 +118,7 @@ var _ = Describe("BGM Summary", func() { It("Returns correct hour count when given 2 weeks", func() { userBGMSummary = types.Create[*types.BGMStats](userId) dataSetBGMData = NewDataSetBGMDataAvg(deviceId, datumTime, 336, inTargetBloodGlucose) - err = types.AddData(&userBGMSummary.Stats.Buckets, dataSetBGMData) + err = types.AddData(&userBGMSummary.Stats.Buckets, dataSetBGMData, realtimeUploads) Expect(err).ToNot(HaveOccurred()) Expect(len(userBGMSummary.Stats.Buckets)).To(Equal(336)) @@ -125,7 +127,7 @@ var _ = Describe("BGM Summary", func() { It("Returns correct hour count when given 1 week", func() { userBGMSummary = types.Create[*types.BGMStats](userId) dataSetBGMData = NewDataSetBGMDataAvg(deviceId, datumTime, 168, inTargetBloodGlucose) - err = types.AddData(&userBGMSummary.Stats.Buckets, dataSetBGMData) + err = types.AddData(&userBGMSummary.Stats.Buckets, dataSetBGMData, realtimeUploads) Expect(err).ToNot(HaveOccurred()) Expect(len(userBGMSummary.Stats.Buckets)).To(Equal(168)) @@ -134,7 +136,7 @@ var _ = Describe("BGM Summary", func() { It("Returns correct hour count when given 3 weeks", func() { userBGMSummary = types.Create[*types.BGMStats](userId) dataSetBGMData = NewDataSetBGMDataAvg(deviceId, datumTime, 504, inTargetBloodGlucose) - err = types.AddData(&userBGMSummary.Stats.Buckets, dataSetBGMData) + err = types.AddData(&userBGMSummary.Stats.Buckets, dataSetBGMData, realtimeUploads) Expect(err).ToNot(HaveOccurred()) Expect(len(userBGMSummary.Stats.Buckets)).To(Equal(504)) @@ -153,7 +155,7 @@ var _ = Describe("BGM Summary", func() { doubledBGMData[i*2] = dataSetBGMData[i] doubledBGMData[i*2+1] = dataSetBGMDataTwo[i] } - err = types.AddData(&userBGMSummary.Stats.Buckets, dataSetBGMData) + err = types.AddData(&userBGMSummary.Stats.Buckets, dataSetBGMData, realtimeUploads) Expect(err).ToNot(HaveOccurred()) Expect(len(userBGMSummary.Stats.Buckets)).To(Equal(24)) @@ -165,11 +167,11 @@ var _ = Describe("BGM Summary", func() { userBGMSummary = types.Create[*types.BGMStats](userId) dataSetBGMData = NewDataSetBGMDataAvg(deviceId, datumTime, 24, inTargetBloodGlucose) - err = types.AddData(&userBGMSummary.Stats.Buckets, dataSetBGMData) + err = types.AddData(&userBGMSummary.Stats.Buckets, dataSetBGMData, realtimeUploads) Expect(err).ToNot(HaveOccurred()) dataSetBGMData = NewDataSetBGMDataAvg(deviceId, datumTime.Add(15*time.Second), 24, inTargetBloodGlucose) - err = types.AddData(&userBGMSummary.Stats.Buckets, dataSetBGMData) + err = types.AddData(&userBGMSummary.Stats.Buckets, dataSetBGMData, realtimeUploads) Expect(err).ToNot(HaveOccurred()) Expect(len(userBGMSummary.Stats.Buckets)).To(Equal(24)) @@ -185,7 +187,7 @@ var _ = Describe("BGM Summary", func() { userBGMSummary = types.Create[*types.BGMStats](userId) dataSetBGMData = NewDataSetBGMDataAvg(deviceId, datumTime, 168, inTargetBloodGlucose) - err = types.AddData(&userBGMSummary.Stats.Buckets, dataSetBGMData) + err = types.AddData(&userBGMSummary.Stats.Buckets, dataSetBGMData, realtimeUploads) Expect(err).ToNot(HaveOccurred()) Expect(len(userBGMSummary.Stats.Buckets)).To(Equal(168)) @@ -200,7 +202,7 @@ var _ = Describe("BGM Summary", func() { } dataSetBGMData = NewDataSetBGMDataAvg(deviceId, secondDatumTime, 168, secondRequestedAvgGlucose) - err = types.AddData(&userBGMSummary.Stats.Buckets, dataSetBGMData) + err = types.AddData(&userBGMSummary.Stats.Buckets, dataSetBGMData, realtimeUploads) Expect(err).ToNot(HaveOccurred()) Expect(len(userBGMSummary.Stats.Buckets)).To(Equal(528)) // 22 days @@ -228,7 +230,7 @@ var _ = Describe("BGM Summary", func() { userBGMSummary = types.Create[*types.BGMStats](userId) dataSetBGMData = NewDataSetBGMDataAvg(deviceId, datumTime, 144, inTargetBloodGlucose) - err = types.AddData(&userBGMSummary.Stats.Buckets, dataSetBGMData) + err = types.AddData(&userBGMSummary.Stats.Buckets, dataSetBGMData, realtimeUploads) Expect(err).ToNot(HaveOccurred()) Expect(len(userBGMSummary.Stats.Buckets)).To(Equal(144)) @@ -237,7 +239,7 @@ var _ = Describe("BGM Summary", func() { incrementalDatumTime = datumTime.Add(time.Duration(i) * time.Hour) dataSetBGMData = NewDataSetBGMDataAvg(deviceId, incrementalDatumTime, 1, float64(i)) - err = types.AddData(&userBGMSummary.Stats.Buckets, dataSetBGMData) + err = types.AddData(&userBGMSummary.Stats.Buckets, dataSetBGMData, realtimeUploads) Expect(err).ToNot(HaveOccurred()) Expect(len(userBGMSummary.Stats.Buckets)).To(Equal(144 + i)) @@ -270,7 +272,7 @@ var _ = Describe("BGM Summary", func() { dataSetBGMData = append(dataSetBGMDataOne, dataSetBGMDataTwo...) dataSetBGMData = append(dataSetBGMData, dataSetBGMDataThree...) - err = types.AddData(&userBGMSummary.Stats.Buckets, dataSetBGMData) + err = types.AddData(&userBGMSummary.Stats.Buckets, dataSetBGMData, realtimeUploads) Expect(err).ToNot(HaveOccurred()) Expect(len(userBGMSummary.Stats.Buckets)).To(Equal(72)) @@ -304,15 +306,15 @@ var _ = Describe("BGM Summary", func() { dataSetBGMDataFive := NewDataSetBGMDataRanges(deviceId, datumTime, 1, veryHighRange) // we do this a different way (multiple calls) than the last unit test for extra pattern coverage - err = types.AddData(&userBGMSummary.Stats.Buckets, dataSetBGMDataOne) + err = types.AddData(&userBGMSummary.Stats.Buckets, dataSetBGMDataOne, realtimeUploads) Expect(err).ToNot(HaveOccurred()) - err = types.AddData(&userBGMSummary.Stats.Buckets, dataSetBGMDataTwo) + err = types.AddData(&userBGMSummary.Stats.Buckets, dataSetBGMDataTwo, realtimeUploads) Expect(err).ToNot(HaveOccurred()) - err = types.AddData(&userBGMSummary.Stats.Buckets, dataSetBGMDataThree) + err = types.AddData(&userBGMSummary.Stats.Buckets, dataSetBGMDataThree, realtimeUploads) Expect(err).ToNot(HaveOccurred()) - err = types.AddData(&userBGMSummary.Stats.Buckets, dataSetBGMDataFour) + err = types.AddData(&userBGMSummary.Stats.Buckets, dataSetBGMDataFour, realtimeUploads) Expect(err).ToNot(HaveOccurred()) - err = types.AddData(&userBGMSummary.Stats.Buckets, dataSetBGMDataFive) + err = types.AddData(&userBGMSummary.Stats.Buckets, dataSetBGMDataFive, realtimeUploads) Expect(err).ToNot(HaveOccurred()) Expect(len(userBGMSummary.Stats.Buckets)).To(Equal(5)) @@ -605,6 +607,14 @@ var _ = Describe("BGM Summary", func() { Context("CalculateSummary/Update", func() { var newDatumTime time.Time var dataSetBGMDataCursor types.DeviceDataCursor + var dataStore types.DeviceDataFetcher + + BeforeEach(func() { + config := storeStructuredMongoTest.NewConfig() + store, err := dataStoreMongo.NewStore(config) + Expect(err).ToNot(HaveOccurred()) + dataStore = store.NewDataRepository() + }) It("Returns correct time in range for stats", func() { userBGMSummary = types.Create[*types.BGMStats](userId) @@ -612,7 +622,7 @@ var _ = Describe("BGM Summary", func() { dataSetBGMData = NewDataSetBGMDataRanges(deviceId, datumTime, 720, ranges) dataSetBGMDataCursor, err = mongo.NewCursorFromDocuments(ConvertToIntArray(dataSetBGMData), nil, nil) - err = userBGMSummary.Stats.Update(ctx, dataSetBGMDataCursor) + err = userBGMSummary.Stats.Update(ctx, dataSetBGMDataCursor, dataStore) Expect(err).ToNot(HaveOccurred()) Expect(len(userBGMSummary.Stats.Buckets)).To(Equal(720)) Expect(userBGMSummary.Stats.TotalHours).To(Equal(720)) @@ -680,7 +690,7 @@ var _ = Describe("BGM Summary", func() { dataSetBGMData = NewDataSetBGMDataAvg(deviceId, datumTime, 720, inTargetBloodGlucose) dataSetBGMDataCursor, err = mongo.NewCursorFromDocuments(ConvertToIntArray(dataSetBGMData), nil, nil) - err = userBGMSummary.Stats.Update(ctx, dataSetBGMDataCursor) + err = userBGMSummary.Stats.Update(ctx, dataSetBGMDataCursor, dataStore) Expect(err).ToNot(HaveOccurred()) Expect(len(userBGMSummary.Stats.Buckets)).To(Equal(720)) Expect(userBGMSummary.Stats.TotalHours).To(Equal(720)) @@ -697,7 +707,7 @@ var _ = Describe("BGM Summary", func() { dataSetBGMData = NewDataSetBGMDataAvg(deviceId, datumTime, 720, inTargetBloodGlucose) dataSetBGMDataCursor, err = mongo.NewCursorFromDocuments(ConvertToIntArray(dataSetBGMData), nil, nil) - err = userBGMSummary.Stats.Update(ctx, dataSetBGMDataCursor) + err = userBGMSummary.Stats.Update(ctx, dataSetBGMDataCursor, dataStore) Expect(err).ToNot(HaveOccurred()) Expect(len(userBGMSummary.Stats.Buckets)).To(Equal(720)) Expect(userBGMSummary.Stats.TotalHours).To(Equal(720)) @@ -715,7 +725,7 @@ var _ = Describe("BGM Summary", func() { dataSetBGMData = NewDataSetBGMDataAvg(deviceId, datumTime, 1, lowBloodGlucose) dataSetBGMDataCursor, err = mongo.NewCursorFromDocuments(ConvertToIntArray(dataSetBGMData), nil, nil) - err = userBGMSummary.Stats.Update(ctx, dataSetBGMDataCursor) + err = userBGMSummary.Stats.Update(ctx, dataSetBGMDataCursor, dataStore) Expect(err).ToNot(HaveOccurred()) Expect(len(userBGMSummary.Stats.Buckets)).To(Equal(1)) Expect(userBGMSummary.Stats.TotalHours).To(Equal(1)) @@ -729,7 +739,7 @@ var _ = Describe("BGM Summary", func() { dataSetBGMData = NewDataSetBGMDataAvg(deviceId, newDatumTime, 720, highBloodGlucose) dataSetBGMDataCursor, err = mongo.NewCursorFromDocuments(ConvertToIntArray(dataSetBGMData), nil, nil) - err = userBGMSummary.Stats.Update(ctx, dataSetBGMDataCursor) + err = userBGMSummary.Stats.Update(ctx, dataSetBGMDataCursor, dataStore) Expect(err).ToNot(HaveOccurred()) Expect(len(userBGMSummary.Stats.Buckets)).To(Equal(721)) @@ -749,7 +759,7 @@ var _ = Describe("BGM Summary", func() { dataSetBGMData = NewDataSetBGMDataAvg(deviceId, datumTime, 720, lowBloodGlucose) dataSetBGMDataCursor, err = mongo.NewCursorFromDocuments(ConvertToIntArray(dataSetBGMData), nil, nil) - err = userBGMSummary.Stats.Update(ctx, dataSetBGMDataCursor) + err = userBGMSummary.Stats.Update(ctx, dataSetBGMDataCursor, dataStore) Expect(err).ToNot(HaveOccurred()) Expect(len(userBGMSummary.Stats.Buckets)).To(Equal(720)) Expect(userBGMSummary.Stats.TotalHours).To(Equal(720)) @@ -763,7 +773,7 @@ var _ = Describe("BGM Summary", func() { dataSetBGMData = NewDataSetBGMDataAvg(deviceId, newDatumTime, 23, highBloodGlucose) dataSetBGMDataCursor, err = mongo.NewCursorFromDocuments(ConvertToIntArray(dataSetBGMData), nil, nil) - err = userBGMSummary.Stats.Update(ctx, dataSetBGMDataCursor) + err = userBGMSummary.Stats.Update(ctx, dataSetBGMDataCursor, dataStore) Expect(err).ToNot(HaveOccurred()) Expect(len(userBGMSummary.Stats.Buckets)).To(Equal(743)) Expect(userBGMSummary.Stats.TotalHours).To(Equal(743)) @@ -782,7 +792,7 @@ var _ = Describe("BGM Summary", func() { dataSetBGMData = NewDataSetBGMDataAvg(deviceId, datumTime, 24, lowBloodGlucose) dataSetBGMDataCursor, err = mongo.NewCursorFromDocuments(ConvertToIntArray(dataSetBGMData), nil, nil) - err = userBGMSummary.Stats.Update(ctx, dataSetBGMDataCursor) + err = userBGMSummary.Stats.Update(ctx, dataSetBGMDataCursor, dataStore) Expect(err).ToNot(HaveOccurred()) Expect(len(userBGMSummary.Stats.Buckets)).To(Equal(24)) Expect(userBGMSummary.Stats.TotalHours).To(Equal(24)) @@ -796,7 +806,7 @@ var _ = Describe("BGM Summary", func() { dataSetBGMData = NewDataSetBGMDataAvg(deviceId, newDatumTime, 168, highBloodGlucose) dataSetBGMDataCursor, err = mongo.NewCursorFromDocuments(ConvertToIntArray(dataSetBGMData), nil, nil) - err = userBGMSummary.Stats.Update(ctx, dataSetBGMDataCursor) + err = userBGMSummary.Stats.Update(ctx, dataSetBGMDataCursor, dataStore) Expect(err).ToNot(HaveOccurred()) Expect(len(userBGMSummary.Stats.Buckets)).To(Equal(1440)) Expect(userBGMSummary.Stats.TotalHours).To(Equal(1440)) // 60 days @@ -846,7 +856,7 @@ var _ = Describe("BGM Summary", func() { dataSetBGMDataFive := NewDataSetBGMDataAvg(deviceId, newDatumTimeFive, 24, lowBloodGlucose) dataSetBGMDataFiveCursor, err := mongo.NewCursorFromDocuments(ConvertToIntArray(dataSetBGMDataFive), nil, nil) - err = userBGMSummary.Stats.Update(ctx, dataSetBGMDataOneCursor) + err = userBGMSummary.Stats.Update(ctx, dataSetBGMDataOneCursor, dataStore) Expect(err).ToNot(HaveOccurred()) // first day, should have 24 buckets @@ -857,7 +867,7 @@ var _ = Describe("BGM Summary", func() { Expect(*userBGMSummary.Stats.Periods["7d"].TotalRecords).To(Equal(24 * 6)) Expect(*userBGMSummary.Stats.OffsetPeriods["7d"].TotalRecords).To(Equal(0)) - err = userBGMSummary.Stats.Update(ctx, dataSetBGMDataTwoCursor) + err = userBGMSummary.Stats.Update(ctx, dataSetBGMDataTwoCursor, dataStore) Expect(err).ToNot(HaveOccurred()) // 33 days elapsed, should have 33*24 (792) buckets @@ -868,7 +878,7 @@ var _ = Describe("BGM Summary", func() { Expect(*userBGMSummary.Stats.Periods["30d"].TotalRecords).To(Equal(24 * 6)) Expect(*userBGMSummary.Stats.OffsetPeriods["30d"].TotalRecords).To(Equal(24 * 6)) - err = userBGMSummary.Stats.Update(ctx, dataSetBGMDataThreeCursor) + err = userBGMSummary.Stats.Update(ctx, dataSetBGMDataThreeCursor, dataStore) Expect(err).ToNot(HaveOccurred()) // 47 days elapsed, should have 47*24 (1128) buckets @@ -877,7 +887,7 @@ var _ = Describe("BGM Summary", func() { Expect(*userBGMSummary.Stats.Periods["30d"].TotalRecords).To(Equal(24 * 2 * 6)) Expect(*userBGMSummary.Stats.OffsetPeriods["30d"].TotalRecords).To(Equal(24 * 6)) - err = userBGMSummary.Stats.Update(ctx, dataSetBGMDataFourCursor) + err = userBGMSummary.Stats.Update(ctx, dataSetBGMDataFourCursor, dataStore) Expect(err).ToNot(HaveOccurred()) // 59 days elapsed, should have 59*24 (1416) buckets @@ -886,7 +896,7 @@ var _ = Describe("BGM Summary", func() { Expect(*userBGMSummary.Stats.Periods["30d"].TotalRecords).To(Equal(24 * 3 * 6)) Expect(*userBGMSummary.Stats.OffsetPeriods["30d"].TotalRecords).To(Equal(24 * 1 * 6)) - err = userBGMSummary.Stats.Update(ctx, dataSetBGMDataFiveCursor) + err = userBGMSummary.Stats.Update(ctx, dataSetBGMDataFiveCursor, dataStore) Expect(err).ToNot(HaveOccurred()) // 60 days elapsed, should have 60*24 (1440) buckets @@ -923,13 +933,22 @@ var _ = Describe("BGM Summary", func() { }) Context("ClearInvalidatedBuckets", func() { + var dataStore types.DeviceDataFetcher + + BeforeEach(func() { + config := storeStructuredMongoTest.NewConfig() + store, err := dataStoreMongo.NewStore(config) + Expect(err).ToNot(HaveOccurred()) + dataStore = store.NewDataRepository() + }) + It("trims the correct buckets", func() { var dataSetBGMDataCursor types.DeviceDataCursor userBGMSummary = types.Create[*types.BGMStats](userId) dataSetBGMData = NewDataSetBGMDataAvg(deviceId, datumTime, 10, inTargetBloodGlucose) dataSetBGMDataCursor, err = mongo.NewCursorFromDocuments(ConvertToIntArray(dataSetBGMData), nil, nil) - err = userBGMSummary.Stats.Update(ctx, dataSetBGMDataCursor) + err = userBGMSummary.Stats.Update(ctx, dataSetBGMDataCursor, dataStore) Expect(err).ToNot(HaveOccurred()) Expect(len(userBGMSummary.Stats.Buckets)).To(Equal(10)) Expect(userBGMSummary.Stats.TotalHours).To(Equal(10)) @@ -951,7 +970,7 @@ var _ = Describe("BGM Summary", func() { dataSetBGMData = NewDataSetCGMDataAvg(deviceId, datumTime, 10, inTargetBloodGlucose) dataSetCGMDataCursor, err = mongo.NewCursorFromDocuments(ConvertToIntArray(dataSetBGMData), nil, nil) - err = userBGMSummary.Stats.Update(ctx, dataSetCGMDataCursor) + err = userBGMSummary.Stats.Update(ctx, dataSetCGMDataCursor, dataStore) Expect(err).ToNot(HaveOccurred()) Expect(len(userBGMSummary.Stats.Buckets)).To(Equal(10)) Expect(userBGMSummary.Stats.TotalHours).To(Equal(10)) @@ -970,7 +989,7 @@ var _ = Describe("BGM Summary", func() { dataSetBGMData = NewDataSetBGMDataAvg(deviceId, datumTime, 10, inTargetBloodGlucose) dataSetBGMDataCursor, err = mongo.NewCursorFromDocuments(ConvertToIntArray(dataSetBGMData), nil, nil) - err = userBGMSummary.Stats.Update(ctx, dataSetBGMDataCursor) + err = userBGMSummary.Stats.Update(ctx, dataSetBGMDataCursor, dataStore) Expect(err).ToNot(HaveOccurred()) Expect(len(userBGMSummary.Stats.Buckets)).To(Equal(10)) Expect(userBGMSummary.Stats.TotalHours).To(Equal(10)) @@ -993,7 +1012,7 @@ var _ = Describe("BGM Summary", func() { dataSetBGMData = NewDataSetBGMDataAvg(deviceId, midDatumTime, 9, inTargetBloodGlucose) dataSetBGMDataCursor, err = mongo.NewCursorFromDocuments(ConvertToIntArray(dataSetBGMData), nil, nil) - err = userBGMSummary.Stats.Update(ctx, dataSetBGMDataCursor) + err = userBGMSummary.Stats.Update(ctx, dataSetBGMDataCursor, dataStore) Expect(err).ToNot(HaveOccurred()) Expect(len(userBGMSummary.Stats.Buckets)).To(Equal(10)) Expect(userBGMSummary.Stats.TotalHours).To(Equal(10)) @@ -1016,7 +1035,7 @@ var _ = Describe("BGM Summary", func() { dataSetBGMData = NewDataSetBGMDataAvg(deviceId, midDatumTime, 9, inTargetBloodGlucose) dataSetBGMDataCursor, err = mongo.NewCursorFromDocuments(ConvertToIntArray(dataSetBGMData), nil, nil) - err = userBGMSummary.Stats.Update(ctx, dataSetBGMDataCursor) + err = userBGMSummary.Stats.Update(ctx, dataSetBGMDataCursor, dataStore) Expect(err).ToNot(HaveOccurred()) Expect(len(userBGMSummary.Stats.Buckets)).To(Equal(10)) Expect(userBGMSummary.Stats.TotalHours).To(Equal(10)) diff --git a/data/summary/types/summary_cgm_test.go b/data/summary/types/summary_cgm_test.go index ac9aa9d83..efad65821 100644 --- a/data/summary/types/summary_cgm_test.go +++ b/data/summary/types/summary_cgm_test.go @@ -3,6 +3,8 @@ package types_test import ( "context" "fmt" + dataStoreMongo "github.com/tidepool-org/platform/data/store/mongo" + storeStructuredMongoTest "github.com/tidepool-org/platform/store/structured/mongo/test" "math/rand" "strconv" "time" @@ -120,7 +122,7 @@ var _ = Describe("CGM Summary", func() { It("Returns correct hour count when given 2 weeks", func() { userCGMSummary = types.Create[*types.CGMStats](userId) dataSetCGMData = NewDataSetCGMDataAvg(deviceId, datumTime, 336, inTargetBloodGlucose) - err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMData) + err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMData, realtimeUploads) Expect(err).ToNot(HaveOccurred()) Expect(len(userCGMSummary.Stats.Buckets)).To(Equal(336)) @@ -129,7 +131,7 @@ var _ = Describe("CGM Summary", func() { It("Returns correct hour count when given 1 week", func() { userCGMSummary = types.Create[*types.CGMStats](userId) dataSetCGMData = NewDataSetCGMDataAvg(deviceId, datumTime, 168, inTargetBloodGlucose) - err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMData) + err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMData, realtimeUploads) Expect(err).ToNot(HaveOccurred()) Expect(len(userCGMSummary.Stats.Buckets)).To(Equal(168)) @@ -138,7 +140,7 @@ var _ = Describe("CGM Summary", func() { It("Returns correct hour count when given 3 weeks", func() { userCGMSummary = types.Create[*types.CGMStats](userId) dataSetCGMData = NewDataSetCGMDataAvg(deviceId, datumTime, 504, inTargetBloodGlucose) - err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMData) + err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMData, realtimeUploads) Expect(err).ToNot(HaveOccurred()) Expect(len(userCGMSummary.Stats.Buckets)).To(Equal(504)) @@ -156,7 +158,7 @@ var _ = Describe("CGM Summary", func() { doubledCGMData[i*2] = dataSetCGMData[i] doubledCGMData[i*2+1] = dataSetCGMDataTwo[i] } - err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMData) + err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMData, realtimeUploads) Expect(err).ToNot(HaveOccurred()) Expect(len(userCGMSummary.Stats.Buckets)).To(Equal(24)) @@ -167,11 +169,11 @@ var _ = Describe("CGM Summary", func() { userCGMSummary = types.Create[*types.CGMStats](userId) dataSetCGMData = NewDataSetCGMDataAvg(deviceId, datumTime, 24, inTargetBloodGlucose) - err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMData) + err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMData, realtimeUploads) Expect(err).ToNot(HaveOccurred()) dataSetCGMData = NewDataSetCGMDataAvg(deviceId, datumTime.Add(15*time.Second), 24, inTargetBloodGlucose) - err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMData) + err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMData, realtimeUploads) Expect(err).ToNot(HaveOccurred()) Expect(len(userCGMSummary.Stats.Buckets)).To(Equal(24)) @@ -182,17 +184,17 @@ var _ = Describe("CGM Summary", func() { userCGMSummary = types.Create[*types.CGMStats](userId) dataSetCGMData = NewDataSetCGMDataRanges(deviceId, datumTime, 5, NewDataRangesSingle(lowBloodGlucose-0.5)) - err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMData) + err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMData, realtimeUploads) Expect(err).ToNot(HaveOccurred()) Expect(userCGMSummary.Stats.Buckets[0].Data.LowRecords).To(Equal(10)) dataSetCGMData = NewDataSetCGMDataRanges(deviceId, datumTime.Add(1*time.Hour), 1, NewDataRangesSingle(highBloodGlucose+0.5)) - err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMData) + err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMData, realtimeUploads) Expect(err).ToNot(HaveOccurred()) Expect(userCGMSummary.Stats.Buckets[0].Data.LowRecords).To(Equal(10)) dataSetCGMData = NewDataSetCGMDataRanges(deviceId, datumTime.Add(24*60*time.Hour), 1, NewDataRangesSingle(inTargetBloodGlucose-0.5)) - err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMData) + err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMData, realtimeUploads) Expect(err).ToNot(HaveOccurred()) Expect(userCGMSummary.Stats.Buckets[0].Data.HighRecords).To(Equal(10)) @@ -206,11 +208,11 @@ var _ = Describe("CGM Summary", func() { userCGMSummary = types.Create[*types.CGMStats](userId) dataSetCGMData = NewDataSetCGMDataRanges(deviceId, datumTime, 1, NewDataRangesSingle(lowBloodGlucose-0.5)) - err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMData) + err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMData, realtimeUploads) Expect(err).ToNot(HaveOccurred()) dataSetCGMData = NewDataSetCGMDataRanges(deviceId, datumTime.Add(24*62*time.Hour), 1, NewDataRangesSingle(inTargetBloodGlucose-0.5)) - err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMData) + err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMData, realtimeUploads) Expect(err).ToNot(HaveOccurred()) for i := 0; i < len(userCGMSummary.Stats.Buckets); i++ { @@ -228,7 +230,7 @@ var _ = Describe("CGM Summary", func() { userCGMSummary = types.Create[*types.CGMStats](userId) dataSetCGMData = NewDataSetCGMDataAvg(deviceId, datumTime, 168, inTargetBloodGlucose) - err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMData) + err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMData, realtimeUploads) Expect(err).ToNot(HaveOccurred()) Expect(len(userCGMSummary.Stats.Buckets)).To(Equal(168)) @@ -243,7 +245,7 @@ var _ = Describe("CGM Summary", func() { } dataSetCGMData = NewDataSetCGMDataAvg(deviceId, secondDatumTime, 168, secondRequestedAvgGlucose) - err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMData) + err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMData, realtimeUploads) Expect(err).ToNot(HaveOccurred()) Expect(len(userCGMSummary.Stats.Buckets)).To(Equal(528)) // 22 days @@ -271,7 +273,7 @@ var _ = Describe("CGM Summary", func() { userCGMSummary = types.Create[*types.CGMStats](userId) dataSetCGMData = NewDataSetCGMDataAvg(deviceId, datumTime, 144, inTargetBloodGlucose) - err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMData) + err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMData, realtimeUploads) Expect(err).ToNot(HaveOccurred()) Expect(len(userCGMSummary.Stats.Buckets)).To(Equal(144)) @@ -280,7 +282,7 @@ var _ = Describe("CGM Summary", func() { incrementalDatumTime = datumTime.Add(time.Duration(i) * time.Hour) dataSetCGMData = NewDataSetCGMDataAvg(deviceId, incrementalDatumTime, 1, float64(i)) - err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMData) + err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMData, realtimeUploads) Expect(err).ToNot(HaveOccurred()) Expect(len(userCGMSummary.Stats.Buckets)).To(Equal(144 + i)) @@ -314,7 +316,7 @@ var _ = Describe("CGM Summary", func() { dataSetCGMData = append(dataSetCGMDataOne, dataSetCGMDataTwo...) dataSetCGMData = append(dataSetCGMData, dataSetCGMDataThree...) - err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMData) + err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMData, realtimeUploads) Expect(err).ToNot(HaveOccurred()) Expect(len(userCGMSummary.Stats.Buckets)).To(Equal(72)) @@ -349,15 +351,15 @@ var _ = Describe("CGM Summary", func() { dataSetCGMDataFive := NewDataSetCGMDataRanges(deviceId, datumTime, 1, veryHighRange) // we do this a different way (multiple calls) than the last unit test for extra pattern coverage - err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMDataOne) + err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMDataOne, realtimeUploads) Expect(err).ToNot(HaveOccurred()) - err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMDataTwo) + err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMDataTwo, realtimeUploads) Expect(err).ToNot(HaveOccurred()) - err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMDataThree) + err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMDataThree, realtimeUploads) Expect(err).ToNot(HaveOccurred()) - err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMDataFour) + err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMDataFour, realtimeUploads) Expect(err).ToNot(HaveOccurred()) - err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMDataFive) + err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMDataFive, realtimeUploads) Expect(err).ToNot(HaveOccurred()) Expect(len(userCGMSummary.Stats.Buckets)).To(Equal(5)) @@ -454,13 +456,13 @@ var _ = Describe("CGM Summary", func() { dataSetCGMDataTwo := NewDataSetCGMDataAvg(deviceId, datumTime.AddDate(0, 0, -1), 24, inTargetBloodGlucose+1) dataSetCGMDataThree := NewDataSetCGMDataAvg(deviceId, datumTime, 24, inTargetBloodGlucose+2) - err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMDataThree) + err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMDataThree, realtimeUploads) Expect(err).ToNot(HaveOccurred()) - err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMDataTwo) + err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMDataTwo, realtimeUploads) Expect(err).ToNot(HaveOccurred()) - err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMDataOne) + err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMDataOne, realtimeUploads) Expect(err).ToNot(HaveOccurred()) Expect(len(userCGMSummary.Stats.Buckets)).To(Equal(72)) @@ -834,6 +836,14 @@ var _ = Describe("CGM Summary", func() { Context("CalculateSummary/Update", func() { var newDatumTime time.Time var dataSetCGMDataCursor types.DeviceDataCursor + var dataStore types.DeviceDataFetcher + + BeforeEach(func() { + config := storeStructuredMongoTest.NewConfig() + store, err := dataStoreMongo.NewStore(config) + Expect(err).ToNot(HaveOccurred()) + dataStore = store.NewDataRepository() + }) It("Returns correct time in range for stats", func() { userCGMSummary = types.Create[*types.CGMStats](userId) @@ -841,7 +851,7 @@ var _ = Describe("CGM Summary", func() { dataSetCGMData = NewDataSetCGMDataRanges(deviceId, datumTime, 720, ranges) dataSetCGMDataCursor, err = mongo.NewCursorFromDocuments(ConvertToIntArray(dataSetCGMData), nil, nil) - err = userCGMSummary.Stats.Update(ctx, dataSetCGMDataCursor) + err = userCGMSummary.Stats.Update(ctx, dataSetCGMDataCursor, dataStore) Expect(err).ToNot(HaveOccurred()) Expect(len(userCGMSummary.Stats.Buckets)).To(Equal(720)) Expect(userCGMSummary.Stats.TotalHours).To(Equal(720)) @@ -941,7 +951,7 @@ var _ = Describe("CGM Summary", func() { dataSetCGMData = NewDataSetCGMDataAvg(deviceId, datumTime, 720, inTargetBloodGlucose) dataSetCGMDataCursor, err = mongo.NewCursorFromDocuments(ConvertToIntArray(dataSetCGMData), nil, nil) - err = userCGMSummary.Stats.Update(ctx, dataSetCGMDataCursor) + err = userCGMSummary.Stats.Update(ctx, dataSetCGMDataCursor, dataStore) Expect(err).ToNot(HaveOccurred()) Expect(len(userCGMSummary.Stats.Buckets)).To(Equal(720)) Expect(userCGMSummary.Stats.TotalHours).To(Equal(720)) @@ -971,7 +981,7 @@ var _ = Describe("CGM Summary", func() { dataSetCGMData = NewDataSetCGMDataAvg(deviceId, datumTime, 720, inTargetBloodGlucose) dataSetCGMDataCursor, err = mongo.NewCursorFromDocuments(ConvertToIntArray(dataSetCGMData), nil, nil) - err = userCGMSummary.Stats.Update(ctx, dataSetCGMDataCursor) + err = userCGMSummary.Stats.Update(ctx, dataSetCGMDataCursor, dataStore) Expect(err).ToNot(HaveOccurred()) Expect(len(userCGMSummary.Stats.Buckets)).To(Equal(720)) Expect(userCGMSummary.Stats.TotalHours).To(Equal(720)) @@ -997,7 +1007,7 @@ var _ = Describe("CGM Summary", func() { dataSetCGMData = NewDataSetCGMDataAvg(deviceId, datumTime.AddDate(0, 0, 31), 16, inTargetBloodGlucose) dataSetCGMDataCursor, err = mongo.NewCursorFromDocuments(ConvertToIntArray(dataSetCGMData), nil, nil) - err = userCGMSummary.Stats.Update(ctx, dataSetCGMDataCursor) + err = userCGMSummary.Stats.Update(ctx, dataSetCGMDataCursor, dataStore) Expect(err).ToNot(HaveOccurred()) Expect(len(userCGMSummary.Stats.Buckets)).To(Equal(1440)) Expect(userCGMSummary.Stats.TotalHours).To(Equal(60 * 24)) // 60 days currently capped @@ -1028,7 +1038,7 @@ var _ = Describe("CGM Summary", func() { dataSetCGMData = NewDataSetCGMDataAvg(deviceId, datumTime, 720, inTargetBloodGlucose) dataSetCGMDataCursor, err = mongo.NewCursorFromDocuments(ConvertToIntArray(dataSetCGMData), nil, nil) - err = userCGMSummary.Stats.Update(ctx, dataSetCGMDataCursor) + err = userCGMSummary.Stats.Update(ctx, dataSetCGMDataCursor, dataStore) Expect(err).ToNot(HaveOccurred()) Expect(len(userCGMSummary.Stats.Buckets)).To(Equal(720)) Expect(userCGMSummary.Stats.TotalHours).To(Equal(720)) @@ -1059,7 +1069,7 @@ var _ = Describe("CGM Summary", func() { dataSetCGMData = NewDataSetCGMDataAvg(deviceId, datumTime, 1, lowBloodGlucose) dataSetCGMDataCursor, err = mongo.NewCursorFromDocuments(ConvertToIntArray(dataSetCGMData), nil, nil) - err = userCGMSummary.Stats.Update(ctx, dataSetCGMDataCursor) + err = userCGMSummary.Stats.Update(ctx, dataSetCGMDataCursor, dataStore) Expect(err).ToNot(HaveOccurred()) Expect(len(userCGMSummary.Stats.Buckets)).To(Equal(1)) Expect(userCGMSummary.Stats.TotalHours).To(Equal(1)) @@ -1086,7 +1096,7 @@ var _ = Describe("CGM Summary", func() { dataSetCGMData = NewDataSetCGMDataAvg(deviceId, newDatumTime, 720, highBloodGlucose) dataSetCGMDataCursor, err = mongo.NewCursorFromDocuments(ConvertToIntArray(dataSetCGMData), nil, nil) - err = userCGMSummary.Stats.Update(ctx, dataSetCGMDataCursor) + err = userCGMSummary.Stats.Update(ctx, dataSetCGMDataCursor, dataStore) Expect(err).ToNot(HaveOccurred()) Expect(len(userCGMSummary.Stats.Buckets)).To(Equal(721)) Expect(userCGMSummary.Stats.TotalHours).To(Equal(721)) @@ -1117,7 +1127,7 @@ var _ = Describe("CGM Summary", func() { dataSetCGMData = NewDataSetCGMDataAvg(deviceId, datumTime, 720, lowBloodGlucose) dataSetCGMDataCursor, err = mongo.NewCursorFromDocuments(ConvertToIntArray(dataSetCGMData), nil, nil) - err = userCGMSummary.Stats.Update(ctx, dataSetCGMDataCursor) + err = userCGMSummary.Stats.Update(ctx, dataSetCGMDataCursor, dataStore) Expect(err).ToNot(HaveOccurred()) Expect(len(userCGMSummary.Stats.Buckets)).To(Equal(720)) Expect(userCGMSummary.Stats.TotalHours).To(Equal(720)) @@ -1143,7 +1153,7 @@ var _ = Describe("CGM Summary", func() { dataSetCGMData = NewDataSetCGMDataAvg(deviceId, newDatumTime, 23, highBloodGlucose) dataSetCGMDataCursor, err = mongo.NewCursorFromDocuments(ConvertToIntArray(dataSetCGMData), nil, nil) - err = userCGMSummary.Stats.Update(ctx, dataSetCGMDataCursor) + err = userCGMSummary.Stats.Update(ctx, dataSetCGMDataCursor, dataStore) Expect(err).ToNot(HaveOccurred()) Expect(len(userCGMSummary.Stats.Buckets)).To(Equal(743)) Expect(userCGMSummary.Stats.TotalHours).To(Equal(743)) @@ -1176,7 +1186,7 @@ var _ = Describe("CGM Summary", func() { dataSetCGMData = NewDataSetCGMDataAvg(deviceId, datumTime, 24, highBloodGlucose) dataSetCGMDataCursor, err = mongo.NewCursorFromDocuments(ConvertToIntArray(dataSetCGMData), nil, nil) - err = userCGMSummary.Stats.Update(ctx, dataSetCGMDataCursor) + err = userCGMSummary.Stats.Update(ctx, dataSetCGMDataCursor, dataStore) Expect(err).ToNot(HaveOccurred()) Expect(len(userCGMSummary.Stats.Buckets)).To(Equal(24)) Expect(userCGMSummary.Stats.TotalHours).To(Equal(24)) @@ -1206,7 +1216,7 @@ var _ = Describe("CGM Summary", func() { dataSetCGMData = NewDataSetCGMDataAvg(deviceId, newDatumTime, 168, highBloodGlucose) dataSetCGMDataCursor, err = mongo.NewCursorFromDocuments(ConvertToIntArray(dataSetCGMData), nil, nil) - err = userCGMSummary.Stats.Update(ctx, dataSetCGMDataCursor) + err = userCGMSummary.Stats.Update(ctx, dataSetCGMDataCursor, dataStore) Expect(err).ToNot(HaveOccurred()) Expect(len(userCGMSummary.Stats.Buckets)).To(Equal(768)) Expect(userCGMSummary.Stats.TotalHours).To(Equal(768)) // 30 days @@ -1247,7 +1257,7 @@ var _ = Describe("CGM Summary", func() { dataSetCGMData = NewDataSetCGMDataAvg(deviceId, datumTime, 720, lowBloodGlucose) dataSetCGMDataCursor, err = mongo.NewCursorFromDocuments(ConvertToIntArray(dataSetCGMData), nil, nil) - err = userCGMSummary.Stats.Update(ctx, dataSetCGMDataCursor) + err = userCGMSummary.Stats.Update(ctx, dataSetCGMDataCursor, dataStore) Expect(err).ToNot(HaveOccurred()) Expect(len(userCGMSummary.Stats.Buckets)).To(Equal(720)) Expect(userCGMSummary.Stats.TotalHours).To(Equal(720)) @@ -1273,7 +1283,7 @@ var _ = Describe("CGM Summary", func() { dataSetCGMData = NewDataSetCGMDataAvg(deviceId, newDatumTime, 1, highBloodGlucose) dataSetCGMDataCursor, err = mongo.NewCursorFromDocuments(ConvertToIntArray(dataSetCGMData), nil, nil) - err = userCGMSummary.Stats.Update(ctx, dataSetCGMDataCursor) + err = userCGMSummary.Stats.Update(ctx, dataSetCGMDataCursor, dataStore) Expect(err).ToNot(HaveOccurred()) Expect(userCGMSummary.Stats.TotalHours).To(Equal(1440)) // 60 days @@ -1364,7 +1374,7 @@ var _ = Describe("CGM Summary", func() { dataSetCGMDataFive := NewDataSetCGMDataAvg(deviceId, newDatumTimeFive, 24, lowBloodGlucose) dataSetCGMDataFiveCursor, err := mongo.NewCursorFromDocuments(ConvertToIntArray(dataSetCGMDataFive), nil, nil) - err = userCGMSummary.Stats.Update(ctx, dataSetCGMDataOneCursor) + err = userCGMSummary.Stats.Update(ctx, dataSetCGMDataOneCursor, dataStore) Expect(err).ToNot(HaveOccurred()) // first day, should have 24 buckets @@ -1375,7 +1385,7 @@ var _ = Describe("CGM Summary", func() { Expect(*userCGMSummary.Stats.Periods["7d"].TotalRecords).To(Equal(24 * 12)) Expect(*userCGMSummary.Stats.OffsetPeriods["7d"].TotalRecords).To(Equal(0)) - err = userCGMSummary.Stats.Update(ctx, dataSetCGMDataTwoCursor) + err = userCGMSummary.Stats.Update(ctx, dataSetCGMDataTwoCursor, dataStore) Expect(err).ToNot(HaveOccurred()) // 33 days elapsed, should have 33*24 (792) buckets @@ -1386,7 +1396,7 @@ var _ = Describe("CGM Summary", func() { Expect(*userCGMSummary.Stats.Periods["30d"].TotalRecords).To(Equal(24 * 12)) Expect(*userCGMSummary.Stats.OffsetPeriods["30d"].TotalRecords).To(Equal(24 * 12)) - err = userCGMSummary.Stats.Update(ctx, dataSetCGMDataThreeCursor) + err = userCGMSummary.Stats.Update(ctx, dataSetCGMDataThreeCursor, dataStore) Expect(err).ToNot(HaveOccurred()) // 47 days elapsed, should have 47*24 (1128) buckets @@ -1395,7 +1405,7 @@ var _ = Describe("CGM Summary", func() { Expect(*userCGMSummary.Stats.Periods["30d"].TotalRecords).To(Equal(24 * 2 * 12)) Expect(*userCGMSummary.Stats.OffsetPeriods["30d"].TotalRecords).To(Equal(24 * 12)) - err = userCGMSummary.Stats.Update(ctx, dataSetCGMDataFourCursor) + err = userCGMSummary.Stats.Update(ctx, dataSetCGMDataFourCursor, dataStore) Expect(err).ToNot(HaveOccurred()) // 59 days elapsed, should have 59*24 (1416) buckets @@ -1404,7 +1414,7 @@ var _ = Describe("CGM Summary", func() { Expect(*userCGMSummary.Stats.Periods["30d"].TotalRecords).To(Equal(24 * 3 * 12)) Expect(*userCGMSummary.Stats.OffsetPeriods["30d"].TotalRecords).To(Equal(24 * 1 * 12)) - err = userCGMSummary.Stats.Update(ctx, dataSetCGMDataFiveCursor) + err = userCGMSummary.Stats.Update(ctx, dataSetCGMDataFiveCursor, dataStore) Expect(err).ToNot(HaveOccurred()) // 60 days elapsed, should have 60*24 (1440) buckets @@ -1441,13 +1451,22 @@ var _ = Describe("CGM Summary", func() { }) Context("ClearInvalidatedBuckets", func() { + var dataStore types.DeviceDataFetcher + + BeforeEach(func() { + config := storeStructuredMongoTest.NewConfig() + store, err := dataStoreMongo.NewStore(config) + Expect(err).ToNot(HaveOccurred()) + dataStore = store.NewDataRepository() + }) + It("trims the correct buckets", func() { var dataSetCGMDataCursor types.DeviceDataCursor userCGMSummary = types.Create[*types.CGMStats](userId) dataSetCGMData = NewDataSetCGMDataAvg(deviceId, datumTime, 10, inTargetBloodGlucose) dataSetCGMDataCursor, err = mongo.NewCursorFromDocuments(ConvertToIntArray(dataSetCGMData), nil, nil) - err = userCGMSummary.Stats.Update(ctx, dataSetCGMDataCursor) + err = userCGMSummary.Stats.Update(ctx, dataSetCGMDataCursor, dataStore) Expect(err).ToNot(HaveOccurred()) Expect(len(userCGMSummary.Stats.Buckets)).To(Equal(10)) Expect(userCGMSummary.Stats.TotalHours).To(Equal(10)) @@ -1469,7 +1488,7 @@ var _ = Describe("CGM Summary", func() { dataSetCGMData = NewDataSetCGMDataAvg(deviceId, datumTime, 10, inTargetBloodGlucose) dataSetCGMDataCursor, err = mongo.NewCursorFromDocuments(ConvertToIntArray(dataSetCGMData), nil, nil) - err = userCGMSummary.Stats.Update(ctx, dataSetCGMDataCursor) + err = userCGMSummary.Stats.Update(ctx, dataSetCGMDataCursor, dataStore) Expect(err).ToNot(HaveOccurred()) Expect(len(userCGMSummary.Stats.Buckets)).To(Equal(10)) Expect(userCGMSummary.Stats.TotalHours).To(Equal(10)) @@ -1488,7 +1507,7 @@ var _ = Describe("CGM Summary", func() { dataSetCGMData = NewDataSetCGMDataAvg(deviceId, datumTime, 10, inTargetBloodGlucose) dataSetCGMDataCursor, err = mongo.NewCursorFromDocuments(ConvertToIntArray(dataSetCGMData), nil, nil) - err = userCGMSummary.Stats.Update(ctx, dataSetCGMDataCursor) + err = userCGMSummary.Stats.Update(ctx, dataSetCGMDataCursor, dataStore) Expect(err).ToNot(HaveOccurred()) Expect(len(userCGMSummary.Stats.Buckets)).To(Equal(10)) Expect(userCGMSummary.Stats.TotalHours).To(Equal(10)) @@ -1511,7 +1530,7 @@ var _ = Describe("CGM Summary", func() { dataSetCGMData = NewDataSetCGMDataAvg(deviceId, midDatumTime, 9, inTargetBloodGlucose) dataSetCGMDataCursor, err = mongo.NewCursorFromDocuments(ConvertToIntArray(dataSetCGMData), nil, nil) - err = userCGMSummary.Stats.Update(ctx, dataSetCGMDataCursor) + err = userCGMSummary.Stats.Update(ctx, dataSetCGMDataCursor, dataStore) Expect(err).ToNot(HaveOccurred()) Expect(len(userCGMSummary.Stats.Buckets)).To(Equal(10)) Expect(userCGMSummary.Stats.TotalHours).To(Equal(10)) @@ -1534,7 +1553,7 @@ var _ = Describe("CGM Summary", func() { dataSetCGMData = NewDataSetCGMDataAvg(deviceId, midDatumTime, 9, inTargetBloodGlucose) dataSetCGMDataCursor, err = mongo.NewCursorFromDocuments(ConvertToIntArray(dataSetCGMData), nil, nil) - err = userCGMSummary.Stats.Update(ctx, dataSetCGMDataCursor) + err = userCGMSummary.Stats.Update(ctx, dataSetCGMDataCursor, dataStore) Expect(err).ToNot(HaveOccurred()) Expect(len(userCGMSummary.Stats.Buckets)).To(Equal(10)) Expect(userCGMSummary.Stats.TotalHours).To(Equal(10)) diff --git a/data/types/base.go b/data/types/base.go index 731159e54..b44f3c273 100644 --- a/data/types/base.go +++ b/data/types/base.go @@ -274,6 +274,10 @@ func (b *Base) GetTime() *time.Time { return b.Time } +func (b *Base) GetUploadID() *string { + return b.UploadID +} + func (b *Base) GetType() string { return b.Type } @@ -302,6 +306,10 @@ func (b *Base) SetDeviceID(deviceID *string) { b.DeviceID = deviceID } +func (b *Base) GetCreatedTime() *time.Time { + return b.CreatedTime +} + func (b *Base) SetCreatedTime(createdTime *time.Time) { b.CreatedTime = createdTime } diff --git a/data/types/upload/upload.go b/data/types/upload/upload.go index 04a3be05f..0ca68ac88 100644 --- a/data/types/upload/upload.go +++ b/data/types/upload/upload.go @@ -215,3 +215,7 @@ func (u *Upload) HasDeduplicatorName() bool { func (u *Upload) HasDeduplicatorNameMatch(name string) bool { return u.Deduplicator != nil && u.Deduplicator.HasNameMatch(name) } + +func (u *Upload) IsContinuous() bool { + return u != nil && u.Type == data.DataSetTypeContinuous +} From 513f1ab029cbe1e7d9f32ceeaba6a9c76f6bee2a Mon Sep 17 00:00:00 2001 From: Alexander Diana Date: Mon, 11 Mar 2024 16:14:21 +0000 Subject: [PATCH 05/34] initial unit test modifications --- data/summary/summary_test.go | 20 ++ data/summary/types/summary.go | 8 +- data/summary/types/summary_cgm_test.go | 244 ++++++++++++++++--------- 3 files changed, 183 insertions(+), 89 deletions(-) diff --git a/data/summary/summary_test.go b/data/summary/summary_test.go index 7d7264547..ce1e32b7e 100644 --- a/data/summary/summary_test.go +++ b/data/summary/summary_test.go @@ -2,6 +2,8 @@ package summary_test import ( "context" + "github.com/tidepool-org/platform/data/types/upload" + dataTypesUploadTest "github.com/tidepool-org/platform/data/types/upload/test" "time" "go.mongodb.org/mongo-driver/mongo" @@ -36,6 +38,24 @@ import ( const units = "mmol/L" +func NewDataSet(userID string, deviceID string) *upload.Upload { + dataSet := dataTypesUploadTest.RandomUpload() + dataSet.Active = true + dataSet.ArchivedDataSetID = nil + dataSet.ArchivedTime = nil + dataSet.CreatedTime = nil + dataSet.CreatedUserID = nil + dataSet.DeletedTime = nil + dataSet.DeletedUserID = nil + dataSet.DeviceID = pointer.FromAny(deviceID) + dataSet.Location.GPS.Origin.Time = nil + dataSet.ModifiedTime = nil + dataSet.ModifiedUserID = nil + dataSet.Origin.Time = nil + dataSet.UserID = pointer.FromAny(userID) + return dataSet +} + func NewDataSetData(typ string, deviceId string, userId string, startTime time.Time, hours float64, glucoseValue float64) []mongo.WriteModel { requiredRecords := int(hours * 1) var dataSetData = make([]mongo.WriteModel, requiredRecords) diff --git a/data/summary/types/summary.go b/data/summary/types/summary.go index 19cc50bf0..62eb32a00 100644 --- a/data/summary/types/summary.go +++ b/data/summary/types/summary.go @@ -362,14 +362,14 @@ func removeExcessBuckets[A BucketDataPt[T], T BucketData](buckets *[]*Bucket[A, *buckets = (*buckets)[excess:] } -type RealtimeUploads map[string]bool +type ContinuousUploads map[string]bool -func (r *RealtimeUploads) IsRealtime(uploadId string) bool { +func (r *ContinuousUploads) IsContinuous(uploadId string) bool { val, _ := (*r)[uploadId] return val } -func AddData[A BucketDataPt[T], T BucketData, R RecordTypes, D RecordTypesPt[R]](buckets *[]*Bucket[A, T], userData []D, uploads RealtimeUploads) error { +func AddData[A BucketDataPt[T], T BucketData, R RecordTypes, D RecordTypesPt[R]](buckets *[]*Bucket[A, T], userData []D, uploads ContinuousUploads) error { previousPeriod := time.Time{} var newBucket *Bucket[A, T] @@ -430,7 +430,7 @@ func AddData[A BucketDataPt[T], T BucketData, R RecordTypes, D RecordTypesPt[R]] previousPeriod = currentPeriod - skipped, err := newBucket.Data.CalculateStats(r, &newBucket.LastRecordTime, uploads.IsRealtime(*r.GetUploadID())) + skipped, err := newBucket.Data.CalculateStats(r, &newBucket.LastRecordTime, uploads.IsContinuous(*r.GetUploadID())) if err != nil { return err diff --git a/data/summary/types/summary_cgm_test.go b/data/summary/types/summary_cgm_test.go index efad65821..9a8e2cdf6 100644 --- a/data/summary/types/summary_cgm_test.go +++ b/data/summary/types/summary_cgm_test.go @@ -4,6 +4,7 @@ import ( "context" "fmt" dataStoreMongo "github.com/tidepool-org/platform/data/store/mongo" + "github.com/tidepool-org/platform/data/types/blood/glucose/continuous" storeStructuredMongoTest "github.com/tidepool-org/platform/store/structured/mongo/test" "math/rand" "strconv" @@ -26,11 +27,12 @@ import ( "github.com/tidepool-org/platform/pointer" ) -func NewDataSetCGMDataAvg(deviceId string, startTime time.Time, hours float64, reqAvg float64) []*glucose.Glucose { +func NewDataSetCGMDataAvg(startTime time.Time, hours float64, reqAvg float64) []*glucose.Glucose { requiredRecords := int(hours * 12) typ := pointer.FromString("cbg") var dataSetData = make([]*glucose.Glucose, requiredRecords) + var deviceId = "SummaryTestDevice" // generate X hours of data for count := 0; count < requiredRecords; count += 2 { @@ -51,14 +53,41 @@ func NewDataSetCGMDataAvg(deviceId string, startTime time.Time, hours float64, r return dataSetData } +func NewDataSetDataRealtime(t string, startTime time.Time, hours float64, realtime bool) []*glucose.Glucose { + requiredRecords := int(hours * 2) + typ := pointer.FromAny(t) + + var dataSetData = make([]*glucose.Glucose, requiredRecords) + var glucoseValue = inTargetBloodGlucose + var deviceId = "SummaryTestDevice" + + // generate X hours of data + for count := 0; count < requiredRecords; count += 1 { + datumTime := startTime.Add(time.Duration(count-requiredRecords) * time.Minute * 30) + + datum := NewGlucose(typ, pointer.FromString(units), &datumTime, &deviceId) + datum.Value = pointer.FromFloat64(glucoseValue) + + if realtime { + datum.CreatedTime = pointer.FromAny(datumTime.Add(5 * time.Minute)) + datum.ModifiedTime = pointer.FromAny(datumTime.Add(10 * time.Minute)) + } + + dataSetData[count] = datum + } + + return dataSetData +} + // creates a dataset with random values evenly divided between ranges // NOTE: only generates 98.9% CGMUse, due to needing to be divisible by 5 -func NewDataSetCGMDataRanges(deviceId string, startTime time.Time, hours float64, ranges DataRanges) []*glucose.Glucose { +func NewDataSetCGMDataRanges(startTime time.Time, hours float64, ranges DataRanges) []*glucose.Glucose { requiredRecords := int(hours * 10) typ := pointer.FromString("cbg") var gapCompensation time.Duration var dataSetData = make([]*glucose.Glucose, requiredRecords) + var deviceId = "SummaryTestDevice" glucoseBrackets := [5][2]float64{ {ranges.Min, ranges.VeryLow - ranges.Padding}, @@ -87,7 +116,6 @@ func NewDataSetCGMDataRanges(deviceId string, startTime time.Time, hours float64 var _ = Describe("CGM Summary", func() { var userId string var datumTime time.Time - var deviceId string var logger log.Logger var ctx context.Context var err error @@ -97,7 +125,6 @@ var _ = Describe("CGM Summary", func() { logger = logTest.NewLogger() ctx = log.NewContextWithLogger(context.Background(), logger) userId = userTest.RandomID() - deviceId = "SummaryTestDevice" datumTime = time.Date(2016, time.Month(1), 1, 0, 0, 0, 0, time.UTC) }) @@ -116,13 +143,13 @@ var _ = Describe("CGM Summary", func() { var userCGMSummary *types.Summary[types.CGMStats, *types.CGMStats] var periodKeys = []string{"1d", "7d", "14d", "30d"} var periodInts = []int{1, 7, 14, 30} - var realtimeUploads = map[string]bool{} + var continuousUploads = map[string]bool{} Context("AddData Bucket Testing", func() { It("Returns correct hour count when given 2 weeks", func() { userCGMSummary = types.Create[*types.CGMStats](userId) - dataSetCGMData = NewDataSetCGMDataAvg(deviceId, datumTime, 336, inTargetBloodGlucose) - err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMData, realtimeUploads) + dataSetCGMData = NewDataSetCGMDataAvg(datumTime, 336, inTargetBloodGlucose) + err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMData, continuousUploads) Expect(err).ToNot(HaveOccurred()) Expect(len(userCGMSummary.Stats.Buckets)).To(Equal(336)) @@ -130,8 +157,8 @@ var _ = Describe("CGM Summary", func() { It("Returns correct hour count when given 1 week", func() { userCGMSummary = types.Create[*types.CGMStats](userId) - dataSetCGMData = NewDataSetCGMDataAvg(deviceId, datumTime, 168, inTargetBloodGlucose) - err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMData, realtimeUploads) + dataSetCGMData = NewDataSetCGMDataAvg(datumTime, 168, inTargetBloodGlucose) + err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMData, continuousUploads) Expect(err).ToNot(HaveOccurred()) Expect(len(userCGMSummary.Stats.Buckets)).To(Equal(168)) @@ -139,8 +166,8 @@ var _ = Describe("CGM Summary", func() { It("Returns correct hour count when given 3 weeks", func() { userCGMSummary = types.Create[*types.CGMStats](userId) - dataSetCGMData = NewDataSetCGMDataAvg(deviceId, datumTime, 504, inTargetBloodGlucose) - err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMData, realtimeUploads) + dataSetCGMData = NewDataSetCGMDataAvg(datumTime, 504, inTargetBloodGlucose) + err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMData, continuousUploads) Expect(err).ToNot(HaveOccurred()) Expect(len(userCGMSummary.Stats.Buckets)).To(Equal(504)) @@ -150,15 +177,15 @@ var _ = Describe("CGM Summary", func() { var doubledCGMData = make([]*glucose.Glucose, 288*2) userCGMSummary = types.Create[*types.CGMStats](userId) - dataSetCGMData = NewDataSetCGMDataAvg(deviceId, datumTime, 24, inTargetBloodGlucose) - dataSetCGMDataTwo := NewDataSetCGMDataAvg(deviceId, datumTime.Add(15*time.Second), 24, inTargetBloodGlucose) + dataSetCGMData = NewDataSetCGMDataAvg(datumTime, 24, inTargetBloodGlucose) + dataSetCGMDataTwo := NewDataSetCGMDataAvg(datumTime.Add(15*time.Second), 24, inTargetBloodGlucose) // interlace the lists for i := 0; i < len(dataSetCGMData); i += 1 { doubledCGMData[i*2] = dataSetCGMData[i] doubledCGMData[i*2+1] = dataSetCGMDataTwo[i] } - err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMData, realtimeUploads) + err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMData, continuousUploads) Expect(err).ToNot(HaveOccurred()) Expect(len(userCGMSummary.Stats.Buckets)).To(Equal(24)) @@ -168,12 +195,13 @@ var _ = Describe("CGM Summary", func() { It("Returns correct record count when given overlapping records across multiple calculations", func() { userCGMSummary = types.Create[*types.CGMStats](userId) - dataSetCGMData = NewDataSetCGMDataAvg(deviceId, datumTime, 24, inTargetBloodGlucose) - err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMData, realtimeUploads) + dataSetCGMData = NewDataSetCGMDataAvg(datumTime, 24, inTargetBloodGlucose) + err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMData, continuousUploads) Expect(err).ToNot(HaveOccurred()) - dataSetCGMData = NewDataSetCGMDataAvg(deviceId, datumTime.Add(15*time.Second), 24, inTargetBloodGlucose) - err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMData, realtimeUploads) + dataSetCGMData = NewDataSetCGMDataAvg(datumTime.Add(15*time.Second), 24, inTargetBloodGlucose) + err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMData, continuousUploads) + Expect(err).ToNot(HaveOccurred()) Expect(len(userCGMSummary.Stats.Buckets)).To(Equal(24)) @@ -183,18 +211,20 @@ var _ = Describe("CGM Summary", func() { It("Returns correct records when given >60d of data", func() { userCGMSummary = types.Create[*types.CGMStats](userId) - dataSetCGMData = NewDataSetCGMDataRanges(deviceId, datumTime, 5, NewDataRangesSingle(lowBloodGlucose-0.5)) - err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMData, realtimeUploads) + dataSetCGMData = NewDataSetCGMDataRanges(datumTime, 5, NewDataRangesSingle(lowBloodGlucose-0.5)) + err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMData, continuousUploads) + Expect(err).ToNot(HaveOccurred()) Expect(userCGMSummary.Stats.Buckets[0].Data.LowRecords).To(Equal(10)) - dataSetCGMData = NewDataSetCGMDataRanges(deviceId, datumTime.Add(1*time.Hour), 1, NewDataRangesSingle(highBloodGlucose+0.5)) - err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMData, realtimeUploads) + dataSetCGMData = NewDataSetCGMDataRanges(datumTime.Add(1*time.Hour), 1, NewDataRangesSingle(highBloodGlucose+0.5)) + err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMData, continuousUploads) + Expect(err).ToNot(HaveOccurred()) Expect(userCGMSummary.Stats.Buckets[0].Data.LowRecords).To(Equal(10)) - dataSetCGMData = NewDataSetCGMDataRanges(deviceId, datumTime.Add(24*60*time.Hour), 1, NewDataRangesSingle(inTargetBloodGlucose-0.5)) - err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMData, realtimeUploads) + dataSetCGMData = NewDataSetCGMDataRanges(datumTime.Add(24*60*time.Hour), 1, NewDataRangesSingle(inTargetBloodGlucose-0.5)) + err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMData, continuousUploads) Expect(err).ToNot(HaveOccurred()) Expect(userCGMSummary.Stats.Buckets[0].Data.HighRecords).To(Equal(10)) @@ -207,12 +237,12 @@ var _ = Describe("CGM Summary", func() { It("Returns correct records when given data a full 60d ahead of previous data", func() { userCGMSummary = types.Create[*types.CGMStats](userId) - dataSetCGMData = NewDataSetCGMDataRanges(deviceId, datumTime, 1, NewDataRangesSingle(lowBloodGlucose-0.5)) - err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMData, realtimeUploads) + dataSetCGMData = NewDataSetCGMDataRanges(datumTime, 1, NewDataRangesSingle(lowBloodGlucose-0.5)) + err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMData, continuousUploads) Expect(err).ToNot(HaveOccurred()) - dataSetCGMData = NewDataSetCGMDataRanges(deviceId, datumTime.Add(24*62*time.Hour), 1, NewDataRangesSingle(inTargetBloodGlucose-0.5)) - err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMData, realtimeUploads) + dataSetCGMData = NewDataSetCGMDataRanges(datumTime.Add(24*62*time.Hour), 1, NewDataRangesSingle(inTargetBloodGlucose-0.5)) + err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMData, continuousUploads) Expect(err).ToNot(HaveOccurred()) for i := 0; i < len(userCGMSummary.Stats.Buckets); i++ { @@ -229,8 +259,8 @@ var _ = Describe("CGM Summary", func() { secondRequestedAvgGlucose := lowBloodGlucose userCGMSummary = types.Create[*types.CGMStats](userId) - dataSetCGMData = NewDataSetCGMDataAvg(deviceId, datumTime, 168, inTargetBloodGlucose) - err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMData, realtimeUploads) + dataSetCGMData = NewDataSetCGMDataAvg(datumTime, 168, inTargetBloodGlucose) + err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMData, continuousUploads) Expect(err).ToNot(HaveOccurred()) Expect(len(userCGMSummary.Stats.Buckets)).To(Equal(168)) @@ -244,8 +274,8 @@ var _ = Describe("CGM Summary", func() { Expect(userCGMSummary.Stats.Buckets[i].LastRecordTime).To(Equal(lastRecordTime)) } - dataSetCGMData = NewDataSetCGMDataAvg(deviceId, secondDatumTime, 168, secondRequestedAvgGlucose) - err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMData, realtimeUploads) + dataSetCGMData = NewDataSetCGMDataAvg(secondDatumTime, 168, secondRequestedAvgGlucose) + err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMData, continuousUploads) Expect(err).ToNot(HaveOccurred()) Expect(len(userCGMSummary.Stats.Buckets)).To(Equal(528)) // 22 days @@ -272,17 +302,17 @@ var _ = Describe("CGM Summary", func() { var lastRecordTime time.Time userCGMSummary = types.Create[*types.CGMStats](userId) - dataSetCGMData = NewDataSetCGMDataAvg(deviceId, datumTime, 144, inTargetBloodGlucose) - err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMData, realtimeUploads) + dataSetCGMData = NewDataSetCGMDataAvg(datumTime, 144, inTargetBloodGlucose) + err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMData, continuousUploads) Expect(err).ToNot(HaveOccurred()) Expect(len(userCGMSummary.Stats.Buckets)).To(Equal(144)) for i := 1; i <= 24; i++ { incrementalDatumTime = datumTime.Add(time.Duration(i) * time.Hour) - dataSetCGMData = NewDataSetCGMDataAvg(deviceId, incrementalDatumTime, 1, float64(i)) + dataSetCGMData = NewDataSetCGMDataAvg(incrementalDatumTime, 1, float64(i)) - err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMData, realtimeUploads) + err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMData, continuousUploads) Expect(err).ToNot(HaveOccurred()) Expect(len(userCGMSummary.Stats.Buckets)).To(Equal(144 + i)) @@ -310,13 +340,13 @@ var _ = Describe("CGM Summary", func() { userCGMSummary = types.Create[*types.CGMStats](userId) // Datasets use +1 and +2 offset to allow for checking via iteration - dataSetCGMDataOne := NewDataSetCGMDataAvg(deviceId, datumTime.AddDate(0, 0, -2), 24, inTargetBloodGlucose) - dataSetCGMDataTwo := NewDataSetCGMDataAvg(deviceId, datumTime.AddDate(0, 0, -1), 24, inTargetBloodGlucose+1) - dataSetCGMDataThree := NewDataSetCGMDataAvg(deviceId, datumTime, 24, inTargetBloodGlucose+2) + dataSetCGMDataOne := NewDataSetCGMDataAvg(datumTime.AddDate(0, 0, -2), 24, inTargetBloodGlucose) + dataSetCGMDataTwo := NewDataSetCGMDataAvg(datumTime.AddDate(0, 0, -1), 24, inTargetBloodGlucose+1) + dataSetCGMDataThree := NewDataSetCGMDataAvg(datumTime, 24, inTargetBloodGlucose+2) dataSetCGMData = append(dataSetCGMDataOne, dataSetCGMDataTwo...) dataSetCGMData = append(dataSetCGMData, dataSetCGMDataThree...) - err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMData, realtimeUploads) + err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMData, continuousUploads) Expect(err).ToNot(HaveOccurred()) Expect(len(userCGMSummary.Stats.Buckets)).To(Equal(72)) @@ -344,22 +374,22 @@ var _ = Describe("CGM Summary", func() { highRange := NewDataRangesSingle(highBloodGlucose + 0.5) veryHighRange := NewDataRangesSingle(veryHighBloodGlucose + 0.5) - dataSetCGMDataOne := NewDataSetCGMDataRanges(deviceId, datumTime.Add(-4*time.Hour), 1, veryLowRange) - dataSetCGMDataTwo := NewDataSetCGMDataRanges(deviceId, datumTime.Add(-3*time.Hour), 1, lowRange) - dataSetCGMDataThree := NewDataSetCGMDataRanges(deviceId, datumTime.Add(-2*time.Hour), 1, inRange) - dataSetCGMDataFour := NewDataSetCGMDataRanges(deviceId, datumTime.Add(-1*time.Hour), 1, highRange) - dataSetCGMDataFive := NewDataSetCGMDataRanges(deviceId, datumTime, 1, veryHighRange) + dataSetCGMDataOne := NewDataSetCGMDataRanges(datumTime.Add(-4*time.Hour), 1, veryLowRange) + dataSetCGMDataTwo := NewDataSetCGMDataRanges(datumTime.Add(-3*time.Hour), 1, lowRange) + dataSetCGMDataThree := NewDataSetCGMDataRanges(datumTime.Add(-2*time.Hour), 1, inRange) + dataSetCGMDataFour := NewDataSetCGMDataRanges(datumTime.Add(-1*time.Hour), 1, highRange) + dataSetCGMDataFive := NewDataSetCGMDataRanges(datumTime, 1, veryHighRange) // we do this a different way (multiple calls) than the last unit test for extra pattern coverage - err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMDataOne, realtimeUploads) + err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMDataOne, continuousUploads) Expect(err).ToNot(HaveOccurred()) - err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMDataTwo, realtimeUploads) + err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMDataTwo, continuousUploads) Expect(err).ToNot(HaveOccurred()) - err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMDataThree, realtimeUploads) + err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMDataThree, continuousUploads) Expect(err).ToNot(HaveOccurred()) - err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMDataFour, realtimeUploads) + err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMDataFour, continuousUploads) Expect(err).ToNot(HaveOccurred()) - err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMDataFive, realtimeUploads) + err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMDataFive, continuousUploads) Expect(err).ToNot(HaveOccurred()) Expect(len(userCGMSummary.Stats.Buckets)).To(Equal(5)) @@ -452,17 +482,17 @@ var _ = Describe("CGM Summary", func() { userCGMSummary = types.Create[*types.CGMStats](userId) // Datasets use +1 and +2 offset to allow for checking via iteration - dataSetCGMDataOne := NewDataSetCGMDataAvg(deviceId, datumTime.AddDate(0, 0, -2), 24, inTargetBloodGlucose) - dataSetCGMDataTwo := NewDataSetCGMDataAvg(deviceId, datumTime.AddDate(0, 0, -1), 24, inTargetBloodGlucose+1) - dataSetCGMDataThree := NewDataSetCGMDataAvg(deviceId, datumTime, 24, inTargetBloodGlucose+2) + dataSetCGMDataOne := NewDataSetCGMDataAvg(datumTime.AddDate(0, 0, -2), 24, inTargetBloodGlucose) + dataSetCGMDataTwo := NewDataSetCGMDataAvg(datumTime.AddDate(0, 0, -1), 24, inTargetBloodGlucose+1) + dataSetCGMDataThree := NewDataSetCGMDataAvg(datumTime, 24, inTargetBloodGlucose+2) - err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMDataThree, realtimeUploads) + err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMDataThree, continuousUploads) Expect(err).ToNot(HaveOccurred()) - err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMDataTwo, realtimeUploads) + err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMDataTwo, continuousUploads) Expect(err).ToNot(HaveOccurred()) - err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMDataOne, realtimeUploads) + err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMDataOne, continuousUploads) Expect(err).ToNot(HaveOccurred()) Expect(len(userCGMSummary.Stats.Buckets)).To(Equal(72)) @@ -479,6 +509,50 @@ var _ = Describe("CGM Summary", func() { Expect(userCGMSummary.Stats.Buckets[i].Data.TotalGlucose).To(BeNumerically("~", expectedTotalGlucose, 0.001)) } }) + + It("Returns correct Realtime and Deferred record stats with realtime data", func() { + userCGMSummary = types.Create[*types.CGMStats](userId) + realtimeDatumTime := time.Now().UTC() + dataSetCGMData = NewDataSetDataRealtime(continuous.Type, realtimeDatumTime, 10, true) + + // flag upload as continuous + continuousUploads[*dataSetCGMData[0].UploadID] = true + + err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMData, continuousUploads) + + Expect(err).ToNot(HaveOccurred()) + Expect(len(userCGMSummary.Stats.Buckets)).To(Equal(10)) + + for i := 0; i < len(userCGMSummary.Stats.Buckets); i++ { + Expect(userCGMSummary.Stats.Buckets[i].Data.RealtimeRecords).To(Equal(2)) + Expect(userCGMSummary.Stats.Buckets[i].Data.DeferredRecords).To(Equal(0)) + } + }) + + It("Returns correct Realtime and Deferred record stats with deferred data", func() { + userCGMSummary = types.Create[*types.CGMStats](userId) + + // by default non-realtime datums will be made with time.now createdTime, so we generate 2 day old data + deferredDatumTime := time.Now().UTC().AddDate(0, 0, -2) + dataSetCGMData = NewDataSetDataRealtime(continuous.Type, deferredDatumTime, 10, false) + + // flag upload as continuous + continuousUploads[*dataSetCGMData[0].UploadID] = true + + err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMData, continuousUploads) + + Expect(err).ToNot(HaveOccurred()) + Expect(len(userCGMSummary.Stats.Buckets)).To(Equal(10)) + + for i := 0; i < len(userCGMSummary.Stats.Buckets); i++ { + Expect(userCGMSummary.Stats.Buckets[i].Data.RealtimeRecords).To(Equal(0)) + Expect(userCGMSummary.Stats.Buckets[i].Data.DeferredRecords).To(Equal(2)) + } + }) + + // todo test false continuousUploads + // todo missing continuousUploads + }) Context("CalculateDelta", func() { @@ -848,7 +922,7 @@ var _ = Describe("CGM Summary", func() { It("Returns correct time in range for stats", func() { userCGMSummary = types.Create[*types.CGMStats](userId) ranges := NewDataRanges() - dataSetCGMData = NewDataSetCGMDataRanges(deviceId, datumTime, 720, ranges) + dataSetCGMData = NewDataSetCGMDataRanges(datumTime, 720, ranges) dataSetCGMDataCursor, err = mongo.NewCursorFromDocuments(ConvertToIntArray(dataSetCGMData), nil, nil) err = userCGMSummary.Stats.Update(ctx, dataSetCGMDataCursor, dataStore) @@ -948,7 +1022,7 @@ var _ = Describe("CGM Summary", func() { userCGMSummary = types.Create[*types.CGMStats](userId) expectedGMI := types.CalculateGMI(inTargetBloodGlucose) - dataSetCGMData = NewDataSetCGMDataAvg(deviceId, datumTime, 720, inTargetBloodGlucose) + dataSetCGMData = NewDataSetCGMDataAvg(datumTime, 720, inTargetBloodGlucose) dataSetCGMDataCursor, err = mongo.NewCursorFromDocuments(ConvertToIntArray(dataSetCGMData), nil, nil) err = userCGMSummary.Stats.Update(ctx, dataSetCGMDataCursor, dataStore) @@ -978,7 +1052,7 @@ var _ = Describe("CGM Summary", func() { userCGMSummary = types.Create[*types.CGMStats](userId) expectedGMI := types.CalculateGMI(inTargetBloodGlucose) - dataSetCGMData = NewDataSetCGMDataAvg(deviceId, datumTime, 720, inTargetBloodGlucose) + dataSetCGMData = NewDataSetCGMDataAvg(datumTime, 720, inTargetBloodGlucose) dataSetCGMDataCursor, err = mongo.NewCursorFromDocuments(ConvertToIntArray(dataSetCGMData), nil, nil) err = userCGMSummary.Stats.Update(ctx, dataSetCGMDataCursor, dataStore) @@ -1004,7 +1078,7 @@ var _ = Describe("CGM Summary", func() { } // start the real test - dataSetCGMData = NewDataSetCGMDataAvg(deviceId, datumTime.AddDate(0, 0, 31), 16, inTargetBloodGlucose) + dataSetCGMData = NewDataSetCGMDataAvg(datumTime.AddDate(0, 0, 31), 16, inTargetBloodGlucose) dataSetCGMDataCursor, err = mongo.NewCursorFromDocuments(ConvertToIntArray(dataSetCGMData), nil, nil) err = userCGMSummary.Stats.Update(ctx, dataSetCGMDataCursor, dataStore) @@ -1035,7 +1109,7 @@ var _ = Describe("CGM Summary", func() { userCGMSummary = types.Create[*types.CGMStats](userId) expectedGMI := types.CalculateGMI(inTargetBloodGlucose) - dataSetCGMData = NewDataSetCGMDataAvg(deviceId, datumTime, 720, inTargetBloodGlucose) + dataSetCGMData = NewDataSetCGMDataAvg(datumTime, 720, inTargetBloodGlucose) dataSetCGMDataCursor, err = mongo.NewCursorFromDocuments(ConvertToIntArray(dataSetCGMData), nil, nil) err = userCGMSummary.Stats.Update(ctx, dataSetCGMDataCursor, dataStore) @@ -1066,7 +1140,7 @@ var _ = Describe("CGM Summary", func() { newDatumTime = datumTime.AddDate(0, 0, 30) expectedGMI := types.CalculateGMI(highBloodGlucose) - dataSetCGMData = NewDataSetCGMDataAvg(deviceId, datumTime, 1, lowBloodGlucose) + dataSetCGMData = NewDataSetCGMDataAvg(datumTime, 1, lowBloodGlucose) dataSetCGMDataCursor, err = mongo.NewCursorFromDocuments(ConvertToIntArray(dataSetCGMData), nil, nil) err = userCGMSummary.Stats.Update(ctx, dataSetCGMDataCursor, dataStore) @@ -1093,7 +1167,7 @@ var _ = Describe("CGM Summary", func() { } // start the actual test - dataSetCGMData = NewDataSetCGMDataAvg(deviceId, newDatumTime, 720, highBloodGlucose) + dataSetCGMData = NewDataSetCGMDataAvg(newDatumTime, 720, highBloodGlucose) dataSetCGMDataCursor, err = mongo.NewCursorFromDocuments(ConvertToIntArray(dataSetCGMData), nil, nil) err = userCGMSummary.Stats.Update(ctx, dataSetCGMDataCursor, dataStore) @@ -1124,7 +1198,7 @@ var _ = Describe("CGM Summary", func() { newDatumTime = datumTime.Add(time.Duration(23) * time.Hour) expectedGMIFirst := types.CalculateGMI(lowBloodGlucose) - dataSetCGMData = NewDataSetCGMDataAvg(deviceId, datumTime, 720, lowBloodGlucose) + dataSetCGMData = NewDataSetCGMDataAvg(datumTime, 720, lowBloodGlucose) dataSetCGMDataCursor, err = mongo.NewCursorFromDocuments(ConvertToIntArray(dataSetCGMData), nil, nil) err = userCGMSummary.Stats.Update(ctx, dataSetCGMDataCursor, dataStore) @@ -1150,7 +1224,7 @@ var _ = Describe("CGM Summary", func() { } // start the actual test - dataSetCGMData = NewDataSetCGMDataAvg(deviceId, newDatumTime, 23, highBloodGlucose) + dataSetCGMData = NewDataSetCGMDataAvg(newDatumTime, 23, highBloodGlucose) dataSetCGMDataCursor, err = mongo.NewCursorFromDocuments(ConvertToIntArray(dataSetCGMData), nil, nil) err = userCGMSummary.Stats.Update(ctx, dataSetCGMDataCursor, dataStore) @@ -1183,7 +1257,7 @@ var _ = Describe("CGM Summary", func() { newDatumTime = datumTime.AddDate(0, 0, 31) expectedGMISecond := types.CalculateGMI(highBloodGlucose) - dataSetCGMData = NewDataSetCGMDataAvg(deviceId, datumTime, 24, highBloodGlucose) + dataSetCGMData = NewDataSetCGMDataAvg(datumTime, 24, highBloodGlucose) dataSetCGMDataCursor, err = mongo.NewCursorFromDocuments(ConvertToIntArray(dataSetCGMData), nil, nil) err = userCGMSummary.Stats.Update(ctx, dataSetCGMDataCursor, dataStore) @@ -1213,7 +1287,7 @@ var _ = Describe("CGM Summary", func() { } // start the actual test - dataSetCGMData = NewDataSetCGMDataAvg(deviceId, newDatumTime, 168, highBloodGlucose) + dataSetCGMData = NewDataSetCGMDataAvg(newDatumTime, 168, highBloodGlucose) dataSetCGMDataCursor, err = mongo.NewCursorFromDocuments(ConvertToIntArray(dataSetCGMData), nil, nil) err = userCGMSummary.Stats.Update(ctx, dataSetCGMDataCursor, dataStore) @@ -1254,7 +1328,7 @@ var _ = Describe("CGM Summary", func() { newDatumTime = datumTime.AddDate(0, 0, 30) expectedGMI := types.CalculateGMI(lowBloodGlucose) - dataSetCGMData = NewDataSetCGMDataAvg(deviceId, datumTime, 720, lowBloodGlucose) + dataSetCGMData = NewDataSetCGMDataAvg(datumTime, 720, lowBloodGlucose) dataSetCGMDataCursor, err = mongo.NewCursorFromDocuments(ConvertToIntArray(dataSetCGMData), nil, nil) err = userCGMSummary.Stats.Update(ctx, dataSetCGMDataCursor, dataStore) @@ -1280,7 +1354,7 @@ var _ = Describe("CGM Summary", func() { } // start the actual test - dataSetCGMData = NewDataSetCGMDataAvg(deviceId, newDatumTime, 1, highBloodGlucose) + dataSetCGMData = NewDataSetCGMDataAvg(newDatumTime, 1, highBloodGlucose) dataSetCGMDataCursor, err = mongo.NewCursorFromDocuments(ConvertToIntArray(dataSetCGMData), nil, nil) err = userCGMSummary.Stats.Update(ctx, dataSetCGMDataCursor, dataStore) @@ -1310,22 +1384,22 @@ var _ = Describe("CGM Summary", func() { // userCGMSummary = types.Create[*types.CGMStats](userId) // // // initial single bucket - // dataSetCGMDataOne := NewDataSetCGMDataAvg(deviceId, datumTime, 1, inTargetBloodGlucose) + // dataSetCGMDataOne := NewDataSetCGMDataAvg(datumTime, 1, inTargetBloodGlucose) // // // add another single bucket forward to check off-by-one - // dataSetCGMDataTwo := NewDataSetCGMDataAvg(deviceId, datumTime.Add(1*time.Hour), 1, inTargetBloodGlucose) + // dataSetCGMDataTwo := NewDataSetCGMDataAvg(datumTime.Add(1*time.Hour), 1, inTargetBloodGlucose) // // // 1 bucket gap - // dataSetCGMDataThree := NewDataSetCGMDataAvg(deviceId, datumTime.Add(3*time.Hour), 1, inTargetBloodGlucose) + // dataSetCGMDataThree := NewDataSetCGMDataAvg(datumTime.Add(3*time.Hour), 1, inTargetBloodGlucose) // // // 0 bucket gap, with overlap with previous - // dataSetCGMDataFour := NewDataSetCGMDataAvg(deviceId, datumTime.Add(3.5*60*time.Minute), 1, inTargetBloodGlucose) + // dataSetCGMDataFour := NewDataSetCGMDataAvg(datumTime.Add(3.5*60*time.Minute), 1, inTargetBloodGlucose) // // // same bucket as before - // dataSetCGMDataFive := NewDataSetCGMDataAvg(deviceId, datumTime.Add(4*60*time.Minute), 1, inTargetBloodGlucose) + // dataSetCGMDataFive := NewDataSetCGMDataAvg(datumTime.Add(4*60*time.Minute), 1, inTargetBloodGlucose) // // // lots of buckets ahead - // dataSetCGMDataSix := NewDataSetCGMDataAvg(deviceId, datumTime.Add(14*24*time.Hour), 1, inTargetBloodGlucose) + // dataSetCGMDataSix := NewDataSetCGMDataAvg(datumTime.Add(14*24*time.Hour), 1, inTargetBloodGlucose) // // allDataSet := make([]*glucose.Glucose, 0, len(dataSetCGMDataOne)+len(dataSetCGMDataTwo)+len(dataSetCGMDataThree)+len(dataSetCGMDataFour)+len(dataSetCGMDataFive)+len(dataSetCGMDataSix)) // @@ -1359,19 +1433,19 @@ var _ = Describe("CGM Summary", func() { newDatumTimeFour := datumTime.AddDate(0, 0, -1) newDatumTimeFive := datumTime - dataSetCGMDataOne := NewDataSetCGMDataAvg(deviceId, newDatumTimeOne, 24, inTargetBloodGlucose) + dataSetCGMDataOne := NewDataSetCGMDataAvg(newDatumTimeOne, 24, inTargetBloodGlucose) dataSetCGMDataOneCursor, err := mongo.NewCursorFromDocuments(ConvertToIntArray(dataSetCGMDataOne), nil, nil) - dataSetCGMDataTwo := NewDataSetCGMDataAvg(deviceId, newDatumTimeTwo, 24, veryHighBloodGlucose) + dataSetCGMDataTwo := NewDataSetCGMDataAvg(newDatumTimeTwo, 24, veryHighBloodGlucose) dataSetCGMDataTwoCursor, err := mongo.NewCursorFromDocuments(ConvertToIntArray(dataSetCGMDataTwo), nil, nil) - dataSetCGMDataThree := NewDataSetCGMDataAvg(deviceId, newDatumTimeThree, 24, veryLowBloodGlucose) + dataSetCGMDataThree := NewDataSetCGMDataAvg(newDatumTimeThree, 24, veryLowBloodGlucose) dataSetCGMDataThreeCursor, err := mongo.NewCursorFromDocuments(ConvertToIntArray(dataSetCGMDataThree), nil, nil) - dataSetCGMDataFour := NewDataSetCGMDataAvg(deviceId, newDatumTimeFour, 24, highBloodGlucose) + dataSetCGMDataFour := NewDataSetCGMDataAvg(newDatumTimeFour, 24, highBloodGlucose) dataSetCGMDataFourCursor, err := mongo.NewCursorFromDocuments(ConvertToIntArray(dataSetCGMDataFour), nil, nil) - dataSetCGMDataFive := NewDataSetCGMDataAvg(deviceId, newDatumTimeFive, 24, lowBloodGlucose) + dataSetCGMDataFive := NewDataSetCGMDataAvg(newDatumTimeFive, 24, lowBloodGlucose) dataSetCGMDataFiveCursor, err := mongo.NewCursorFromDocuments(ConvertToIntArray(dataSetCGMDataFive), nil, nil) err = userCGMSummary.Stats.Update(ctx, dataSetCGMDataOneCursor, dataStore) @@ -1463,7 +1537,7 @@ var _ = Describe("CGM Summary", func() { It("trims the correct buckets", func() { var dataSetCGMDataCursor types.DeviceDataCursor userCGMSummary = types.Create[*types.CGMStats](userId) - dataSetCGMData = NewDataSetCGMDataAvg(deviceId, datumTime, 10, inTargetBloodGlucose) + dataSetCGMData = NewDataSetCGMDataAvg(datumTime, 10, inTargetBloodGlucose) dataSetCGMDataCursor, err = mongo.NewCursorFromDocuments(ConvertToIntArray(dataSetCGMData), nil, nil) err = userCGMSummary.Stats.Update(ctx, dataSetCGMDataCursor, dataStore) @@ -1485,7 +1559,7 @@ var _ = Describe("CGM Summary", func() { It("trims the all buckets with data beyond the beginning of the buckets", func() { var dataSetCGMDataCursor types.DeviceDataCursor userCGMSummary = types.Create[*types.CGMStats](userId) - dataSetCGMData = NewDataSetCGMDataAvg(deviceId, datumTime, 10, inTargetBloodGlucose) + dataSetCGMData = NewDataSetCGMDataAvg(datumTime, 10, inTargetBloodGlucose) dataSetCGMDataCursor, err = mongo.NewCursorFromDocuments(ConvertToIntArray(dataSetCGMData), nil, nil) err = userCGMSummary.Stats.Update(ctx, dataSetCGMDataCursor, dataStore) @@ -1504,7 +1578,7 @@ var _ = Describe("CGM Summary", func() { It("doesnt trim if only modified in the future", func() { var dataSetCGMDataCursor types.DeviceDataCursor userCGMSummary = types.Create[*types.CGMStats](userId) - dataSetCGMData = NewDataSetCGMDataAvg(deviceId, datumTime, 10, inTargetBloodGlucose) + dataSetCGMData = NewDataSetCGMDataAvg(datumTime, 10, inTargetBloodGlucose) dataSetCGMDataCursor, err = mongo.NewCursorFromDocuments(ConvertToIntArray(dataSetCGMData), nil, nil) err = userCGMSummary.Stats.Update(ctx, dataSetCGMDataCursor, dataStore) @@ -1527,7 +1601,7 @@ var _ = Describe("CGM Summary", func() { var dataSetCGMDataCursor types.DeviceDataCursor userCGMSummary = types.Create[*types.CGMStats](userId) midDatumTime := datumTime.Add(30 * time.Minute) - dataSetCGMData = NewDataSetCGMDataAvg(deviceId, midDatumTime, 9, inTargetBloodGlucose) + dataSetCGMData = NewDataSetCGMDataAvg(midDatumTime, 9, inTargetBloodGlucose) dataSetCGMDataCursor, err = mongo.NewCursorFromDocuments(ConvertToIntArray(dataSetCGMData), nil, nil) err = userCGMSummary.Stats.Update(ctx, dataSetCGMDataCursor, dataStore) @@ -1550,7 +1624,7 @@ var _ = Describe("CGM Summary", func() { var dataSetCGMDataCursor types.DeviceDataCursor userCGMSummary = types.Create[*types.CGMStats](userId) midDatumTime := datumTime.Add(30 * time.Minute) - dataSetCGMData = NewDataSetCGMDataAvg(deviceId, midDatumTime, 9, inTargetBloodGlucose) + dataSetCGMData = NewDataSetCGMDataAvg(midDatumTime, 9, inTargetBloodGlucose) dataSetCGMDataCursor, err = mongo.NewCursorFromDocuments(ConvertToIntArray(dataSetCGMData), nil, nil) err = userCGMSummary.Stats.Update(ctx, dataSetCGMDataCursor, dataStore) From 95ec7c733e4c6221dae892af1358f6ffcf11c6ed Mon Sep 17 00:00:00 2001 From: Alexander Diana Date: Tue, 12 Mar 2024 03:53:48 +0000 Subject: [PATCH 06/34] add realtime and deferred record unit tests, fix related bugs, more generics arg consistency, remove conditional summary create during dataset close --- data/client/client.go | 24 +-- data/service/api/v1/datasets_update.go | 6 +- data/service/api/v1/summary.go | 10 +- data/service/service/client.go | 8 +- data/store/mongo/mongo_datum.go | 6 +- data/store/mongo/mongo_test.go | 65 ------ data/store/store.go | 2 - data/store/test/data_repository.go | 29 --- data/summary/store/store.go | 20 +- data/summary/store/store_test.go | 102 ++++----- data/summary/summary.go | 81 +++----- data/summary/summary_test.go | 275 +++++++++++++++++++------ data/summary/types/bgm.go | 3 +- data/summary/types/cgm.go | 3 +- data/summary/types/summary.go | 24 ++- data/summary/types/summary_bgm_test.go | 120 +++++++++-- data/summary/types/summary_cgm_test.go | 41 +++- data/summary/types/test/summary.go | 8 +- data/summary/types/util.go | 19 -- data/types/upload/upload.go | 2 +- 20 files changed, 497 insertions(+), 351 deletions(-) diff --git a/data/client/client.go b/data/client/client.go index a2c73d8d8..4dd6ca5b2 100644 --- a/data/client/client.go +++ b/data/client/client.go @@ -32,10 +32,10 @@ type Client interface { DestroyDataForUserByID(ctx context.Context, userID string) error - GetCGMSummary(ctx context.Context, id string) (*types.Summary[types.CGMStats, *types.CGMStats], error) - GetBGMSummary(ctx context.Context, id string) (*types.Summary[types.BGMStats, *types.BGMStats], error) - UpdateCGMSummary(ctx context.Context, id string) (*types.Summary[types.CGMStats, *types.CGMStats], error) - UpdateBGMSummary(ctx context.Context, id string) (*types.Summary[types.BGMStats, *types.BGMStats], error) + GetCGMSummary(ctx context.Context, id string) (*types.Summary[*types.CGMStats, types.CGMStats], error) + GetBGMSummary(ctx context.Context, id string) (*types.Summary[*types.BGMStats, types.BGMStats], error) + UpdateCGMSummary(ctx context.Context, id string) (*types.Summary[*types.CGMStats, types.CGMStats], error) + UpdateBGMSummary(ctx context.Context, id string) (*types.Summary[*types.BGMStats, types.BGMStats], error) GetOutdatedUserIDs(ctx context.Context, t string, pagination *page.Pagination) (*types.OutdatedSummariesResponse, error) GetMigratableUserIDs(ctx context.Context, t string, pagination *page.Pagination) ([]string, error) BackfillSummaries(ctx context.Context, t string) (int, error) @@ -129,7 +129,7 @@ func (c *ClientImpl) GetDataSet(ctx context.Context, id string) (*data.DataSet, return dataSet, nil } -func (c *ClientImpl) GetCGMSummary(ctx context.Context, userId string) (*types.Summary[types.CGMStats, *types.CGMStats], error) { +func (c *ClientImpl) GetCGMSummary(ctx context.Context, userId string) (*types.Summary[*types.CGMStats, types.CGMStats], error) { if ctx == nil { return nil, errors.New("context is missing") } @@ -138,7 +138,7 @@ func (c *ClientImpl) GetCGMSummary(ctx context.Context, userId string) (*types.S } url := c.client.ConstructURL("v1", "summaries", "cgm", userId) - summary := &types.Summary[types.CGMStats, *types.CGMStats]{} + summary := &types.Summary[*types.CGMStats, types.CGMStats]{} if err := c.client.RequestData(ctx, http.MethodGet, url, nil, nil, summary); err != nil { if request.IsErrorResourceNotFound(err) { return nil, nil @@ -149,7 +149,7 @@ func (c *ClientImpl) GetCGMSummary(ctx context.Context, userId string) (*types.S return summary, nil } -func (c *ClientImpl) GetBGMSummary(ctx context.Context, userId string) (*types.Summary[types.BGMStats, *types.BGMStats], error) { +func (c *ClientImpl) GetBGMSummary(ctx context.Context, userId string) (*types.Summary[*types.BGMStats, types.BGMStats], error) { if ctx == nil { return nil, errors.New("context is missing") } @@ -158,7 +158,7 @@ func (c *ClientImpl) GetBGMSummary(ctx context.Context, userId string) (*types.S } url := c.client.ConstructURL("v1", "summaries", "bgm", userId) - summary := &types.Summary[types.BGMStats, *types.BGMStats]{} + summary := &types.Summary[*types.BGMStats, types.BGMStats]{} if err := c.client.RequestData(ctx, http.MethodGet, url, nil, nil, summary); err != nil { if request.IsErrorResourceNotFound(err) { return nil, nil @@ -169,7 +169,7 @@ func (c *ClientImpl) GetBGMSummary(ctx context.Context, userId string) (*types.S return summary, nil } -func (c *ClientImpl) UpdateCGMSummary(ctx context.Context, userId string) (*types.Summary[types.CGMStats, *types.CGMStats], error) { +func (c *ClientImpl) UpdateCGMSummary(ctx context.Context, userId string) (*types.Summary[*types.CGMStats, types.CGMStats], error) { if ctx == nil { return nil, errors.New("context is missing") } @@ -178,7 +178,7 @@ func (c *ClientImpl) UpdateCGMSummary(ctx context.Context, userId string) (*type } url := c.client.ConstructURL("v1", "summaries", "cgm", userId) - summary := &types.Summary[types.CGMStats, *types.CGMStats]{} + summary := &types.Summary[*types.CGMStats, types.CGMStats]{} if err := c.client.RequestData(ctx, http.MethodPost, url, nil, nil, summary); err != nil { if request.IsErrorResourceNotFound(err) { return nil, nil @@ -189,7 +189,7 @@ func (c *ClientImpl) UpdateCGMSummary(ctx context.Context, userId string) (*type return summary, nil } -func (c *ClientImpl) UpdateBGMSummary(ctx context.Context, userId string) (*types.Summary[types.BGMStats, *types.BGMStats], error) { +func (c *ClientImpl) UpdateBGMSummary(ctx context.Context, userId string) (*types.Summary[*types.BGMStats, types.BGMStats], error) { if ctx == nil { return nil, errors.New("context is missing") } @@ -198,7 +198,7 @@ func (c *ClientImpl) UpdateBGMSummary(ctx context.Context, userId string) (*type } url := c.client.ConstructURL("v1", "summaries", "bgm", userId) - summary := &types.Summary[types.BGMStats, *types.BGMStats]{} + summary := &types.Summary[*types.BGMStats, types.BGMStats]{} if err := c.client.RequestData(ctx, http.MethodPost, url, nil, nil, summary); err != nil { if request.IsErrorResourceNotFound(err) { return nil, nil diff --git a/data/service/api/v1/datasets_update.go b/data/service/api/v1/datasets_update.go index 4925e1730..52e78c3d9 100644 --- a/data/service/api/v1/datasets_update.go +++ b/data/service/api/v1/datasets_update.go @@ -94,8 +94,12 @@ func DataSetsUpdate(dataServiceContext dataService.Context) { return } + // create map of all types, this will create redundant summaries, but will be cleaned up upon processing updatesSummary := make(map[string]struct{}) - summary.CheckDataSetUpdatesSummary(ctx, dataServiceContext.DataRepository(), updatesSummary, dataSetID) + for _, typ := range types.DeviceDataTypes { + updatesSummary[types.DeviceDataToSummaryTypes[typ]] = struct{}{} + } + summary.MaybeUpdateSummary(ctx, dataServiceContext.SummarizerRegistry(), updatesSummary, *dataSet.UserID, types.OutdatedReasonUploadCompleted) } diff --git a/data/service/api/v1/summary.go b/data/service/api/v1/summary.go index 973cdb7a2..9cd387c5d 100644 --- a/data/service/api/v1/summary.go +++ b/data/service/api/v1/summary.go @@ -76,7 +76,7 @@ func GetSummary[T types.Stats, A types.StatsPt[T]](dataServiceContext dataServic return } - summarizer := summary.GetSummarizer[T, A](dataServiceContext.SummarizerRegistry()) + summarizer := summary.GetSummarizer[A](dataServiceContext.SummarizerRegistry()) userSummary, err := summarizer.GetSummary(ctx, id) if err != nil { responder.Error(http.StatusInternalServerError, err) @@ -202,7 +202,7 @@ func UpdateSummary[T types.Stats, A types.StatsPt[T]](dataServiceContext dataSer return } - summarizer := summary.GetSummarizer[T, A](dataServiceContext.SummarizerRegistry()) + summarizer := summary.GetSummarizer[A](dataServiceContext.SummarizerRegistry()) userSummary, err := summarizer.UpdateSummary(ctx, id) if err != nil { responder.Error(http.StatusInternalServerError, err) @@ -225,7 +225,7 @@ func BackfillSummaries[T types.Stats, A types.StatsPt[T]](dataServiceContext dat return } - summarizer := summary.GetSummarizer[T, A](dataServiceContext.SummarizerRegistry()) + summarizer := summary.GetSummarizer[A](dataServiceContext.SummarizerRegistry()) status, err := summarizer.BackfillSummaries(ctx) if err != nil { responder.Error(http.StatusInternalServerError, err) @@ -253,7 +253,7 @@ func GetOutdatedUserIDs[T types.Stats, A types.StatsPt[T]](dataServiceContext da return } - summarizer := summary.GetSummarizer[T, A](dataServiceContext.SummarizerRegistry()) + summarizer := summary.GetSummarizer[A](dataServiceContext.SummarizerRegistry()) response, err := summarizer.GetOutdatedUserIDs(ctx, pagination) if err != nil { responder.Error(http.StatusInternalServerError, err) @@ -281,7 +281,7 @@ func GetMigratableUserIDs[T types.Stats, A types.StatsPt[T]](dataServiceContext return } - summarizer := summary.GetSummarizer[T, A](dataServiceContext.SummarizerRegistry()) + summarizer := summary.GetSummarizer[A](dataServiceContext.SummarizerRegistry()) userIDs, err := summarizer.GetMigratableUserIDs(ctx, pagination) if err != nil { responder.Error(http.StatusInternalServerError, err) diff --git a/data/service/service/client.go b/data/service/service/client.go index b8ecdab24..75cb8b13d 100644 --- a/data/service/service/client.go +++ b/data/service/service/client.go @@ -54,19 +54,19 @@ func (c *Client) DestroyDataForUserByID(ctx context.Context, userID string) erro panic("Not Implemented!") } -func (c *Client) GetCGMSummary(ctx context.Context, id string) (*types.Summary[types.CGMStats, *types.CGMStats], error) { +func (c *Client) GetCGMSummary(ctx context.Context, id string) (*types.Summary[*types.CGMStats, types.CGMStats], error) { panic("Not Implemented!") } -func (c *Client) GetBGMSummary(ctx context.Context, id string) (*types.Summary[types.BGMStats, *types.BGMStats], error) { +func (c *Client) GetBGMSummary(ctx context.Context, id string) (*types.Summary[*types.BGMStats, types.BGMStats], error) { panic("Not Implemented!") } -func (c *Client) UpdateCGMSummary(ctx context.Context, id string) (*types.Summary[types.CGMStats, *types.CGMStats], error) { +func (c *Client) UpdateCGMSummary(ctx context.Context, id string) (*types.Summary[*types.CGMStats, types.CGMStats], error) { panic("Not Implemented!") } -func (c *Client) UpdateBGMSummary(ctx context.Context, id string) (*types.Summary[types.BGMStats, *types.BGMStats], error) { +func (c *Client) UpdateBGMSummary(ctx context.Context, id string) (*types.Summary[*types.BGMStats, types.BGMStats], error) { panic("Not Implemented!") } diff --git a/data/store/mongo/mongo_datum.go b/data/store/mongo/mongo_datum.go index 2898efc98..677f55e64 100644 --- a/data/store/mongo/mongo_datum.go +++ b/data/store/mongo/mongo_datum.go @@ -548,6 +548,7 @@ func validateAndTranslateSelectors(selectors *data.Selectors) (bson.M, error) { return selector, nil } +<<<<<<< HEAD func (d *DatumRepository) CheckDataSetContainsTypeInRange(ctx context.Context, dataSetId string, typ string, startTime time.Time, endTime time.Time) (bool, error) { if ctx == nil { return false, errors.New("context is missing") @@ -593,6 +594,9 @@ func (d *DatumRepository) CheckDataSetContainsTypeInRange(ctx context.Context, d } func (d *DatumRepository) GetDataRange(ctx context.Context, userId string, typ string, status *types.UserLastUpdated) (*mongo.Cursor, error) { +======= +func (d *DatumRepository) GetDataRange(ctx context.Context, userId string, typ string, status *data.UserLastUpdated) (*mongo.Cursor, error) { +>>>>>>> 7f6039c3 (add realtime and deferred record unit tests, fix related bugs, more generics arg consistency, remove conditional summary create during dataset close) if ctx == nil { return nil, errors.New("context is missing") } @@ -806,7 +810,7 @@ func (d *DatumRepository) GetLastUpdatedForUser(ctx context.Context, userId stri status := &types.UserLastUpdated{ LastUpdated: lastUpdated, - NextLastUpdated: time.Now().UTC(), + NextLastUpdated: time.Now().UTC().Truncate(time.Millisecond), } err = d.getTimeRange(ctx, userId, typ, status) diff --git a/data/store/mongo/mongo_test.go b/data/store/mongo/mongo_test.go index 8c275cff1..74a6d1a80 100644 --- a/data/store/mongo/mongo_test.go +++ b/data/store/mongo/mongo_test.go @@ -1341,71 +1341,6 @@ var _ = Describe("Mongo", func() { }) }) - Context("CheckDataSetContainsType", func() { - twoYearsPast := time.Now().UTC().AddDate(0, -24, 0) - oneDayFuture := time.Now().UTC().AddDate(0, 0, 1) - - It("returns an error if context is missing", func() { - status, err := repository.CheckDataSetContainsTypeInRange(nil, *dataSet.UploadID, "1234", twoYearsPast, oneDayFuture) - Expect(err).To(HaveOccurred()) - Expect(status).To(BeFalse()) - Expect(err).To(MatchError("context is missing")) - }) - - It("returns an error if dataSetId is empty", func() { - status, err := repository.CheckDataSetContainsTypeInRange(ctx, "", "1234", twoYearsPast, oneDayFuture) - Expect(err).To(HaveOccurred()) - Expect(status).To(BeFalse()) - Expect(err).To(MatchError("dataSetId is empty")) - }) - - It("returns an error if context is missing", func() { - status, err := repository.CheckDataSetContainsTypeInRange(ctx, *dataSet.UploadID, "", twoYearsPast, oneDayFuture) - Expect(err).To(HaveOccurred()) - Expect(status).To(BeFalse()) - Expect(err).To(MatchError("typ is empty")) - }) - - It("returns error if the times are inverted", func() { - status, err := repository.CheckDataSetContainsTypeInRange(ctx, *dataSet.UploadID, "1234", oneDayFuture, twoYearsPast) - Expect(err).To(HaveOccurred()) - Expect(status).To(BeFalse()) - Expect(err).To(MatchError(MatchRegexp("^startTime.*after endTime"))) - }) - - Context("with database access", func() { - BeforeEach(func() { - dataSetData[0].SetType(selfmonitored.Type) - dataSetData[0].SetActive(false) - - for i := 1; i < len(dataSetData); i++ { - dataSetData[i].SetType(continuous.Type) - dataSetData[i].SetActive(true) - } - Expect(repository.CreateDataSetData(ctx, dataSet, dataSetData)).To(Succeed()) - }) - - It("correctly finds type in dataset", func() { - status, err := repository.CheckDataSetContainsTypeInRange(ctx, *dataSet.UploadID, continuous.Type, twoYearsPast, oneDayFuture) - Expect(err).ToNot(HaveOccurred()) - Expect(status).To(BeTrue()) - }) - - It("correctly does not find type in dataset", func() { - status, err := repository.CheckDataSetContainsTypeInRange(ctx, *dataSet.UploadID, bolus.Type, twoYearsPast, oneDayFuture) - Expect(err).ToNot(HaveOccurred()) - Expect(status).To(BeFalse()) - }) - - It("correctly does not find inactive type in dataset", func() { - status, err := repository.CheckDataSetContainsTypeInRange(ctx, *dataSet.UploadID, selfmonitored.Type, twoYearsPast, oneDayFuture) - Expect(err).ToNot(HaveOccurred()) - Expect(status).To(BeFalse()) - }) - - }) - }) - Context("GetLastUpdatedForUser", func() { It("returns an error if context is missing", func() { _, err := repository.GetLastUpdatedForUser(nil, *dataSet.UserID, dataSetData[2].GetType(), time.Time{}) diff --git a/data/store/store.go b/data/store/store.go index bea745d97..fccaba7d0 100644 --- a/data/store/store.go +++ b/data/store/store.go @@ -65,8 +65,6 @@ type DatumRepository interface { GetDataRange(ctx context.Context, userId string, typ string, status *types.UserLastUpdated) (*mongo.Cursor, error) GetLastUpdatedForUser(ctx context.Context, userId string, typ string, lastUpdated time.Time) (*types.UserLastUpdated, error) DistinctUserIDs(ctx context.Context, typ string) ([]string, error) - - CheckDataSetContainsTypeInRange(ctx context.Context, dataSetId string, typ string, startTime time.Time, endTime time.Time) (bool, error) } // DataRepository is the combined interface of DataSetRepository and diff --git a/data/store/test/data_repository.go b/data/store/test/data_repository.go index bb35b06df..993d8a4ee 100644 --- a/data/store/test/data_repository.go +++ b/data/store/test/data_repository.go @@ -192,19 +192,6 @@ type DistinctUserIDsOutput struct { Error error } -type CheckDataSetContainsTypeInRangeInput struct { - Context context.Context - DataSetID string - Typ string - StartTime time.Time - EndTime time.Time -} - -type CheckDataSetContainsTypeInRangeOutput struct { - Status bool - Error error -} - type DataRepository struct { *test.Closer GetDataSetsForUserByIDInvocations int @@ -277,10 +264,6 @@ type DataRepository struct { DistinctUserIDsInvocations int DistinctUserIDsInputs []DistinctUserIDsInput DistinctUserIDsOutputs []DistinctUserIDsOutput - - CheckDataSetContainsTypeInRangeInvocations int - CheckDataSetContainsTypeInRangeInputs []CheckDataSetContainsTypeInRangeInput - CheckDataSetContainsTypeInRangeOutputs []CheckDataSetContainsTypeInRangeOutput } func NewDataRepository() *DataRepository { @@ -558,18 +541,6 @@ func (d *DataRepository) DistinctUserIDs(ctx context.Context, typ string) ([]str return output.UserIDs, output.Error } -func (d *DataRepository) CheckDataSetContainsTypeInRange(ctx context.Context, dataSetId string, typ string, startTime time.Time, endTime time.Time) (bool, error) { - d.CheckDataSetContainsTypeInRangeInvocations++ - - d.CheckDataSetContainsTypeInRangeInputs = append(d.CheckDataSetContainsTypeInRangeInputs, CheckDataSetContainsTypeInRangeInput{Context: ctx, Typ: typ, DataSetID: dataSetId, StartTime: startTime, EndTime: endTime}) - - gomega.Expect(d.CheckDataSetContainsTypeInRangeOutputs).ToNot(gomega.BeEmpty()) - - output := d.CheckDataSetContainsTypeInRangeOutputs[0] - d.CheckDataSetContainsTypeInRangeOutputs = d.CheckDataSetContainsTypeInRangeOutputs[1:] - return output.Status, output.Error -} - func (d *DataRepository) Expectations() { d.Closer.AssertOutputsEmpty() gomega.Expect(d.GetDataSetsForUserByIDOutputs).To(gomega.BeEmpty()) diff --git a/data/summary/store/store.go b/data/summary/store/store.go index beeb0d383..bcefc7b9a 100644 --- a/data/summary/store/store.go +++ b/data/summary/store/store.go @@ -18,7 +18,7 @@ import ( const RealtimeUserThreshold = 16 -type Repo[T types.Stats, A types.StatsPt[T]] struct { +type Repo[A types.StatsPt[T], T types.Stats] struct { *storeStructuredMongo.Repository } @@ -26,8 +26,8 @@ type TypelessRepo struct { *storeStructuredMongo.Repository } -func New[T types.Stats, A types.StatsPt[T]](delegate *storeStructuredMongo.Repository) *Repo[T, A] { - return &Repo[T, A]{ +func New[A types.StatsPt[T], T types.Stats](delegate *storeStructuredMongo.Repository) *Repo[A, T] { + return &Repo[A, T]{ delegate, } } @@ -38,7 +38,7 @@ func NewTypeless(delegate *storeStructuredMongo.Repository) *TypelessRepo { } } -func (r *Repo[T, A]) GetSummary(ctx context.Context, userId string) (*types.Summary[T, A], error) { +func (r *Repo[A, T]) GetSummary(ctx context.Context, userId string) (*types.Summary[A, T], error) { if ctx == nil { return nil, errors.New("context is missing") } @@ -192,7 +192,7 @@ func (r *TypelessRepo) GetPatientsWithRealtimeData(ctx context.Context, userIds return nil, fmt.Errorf("unable to get realtime summaries for %s: %w", userId, err) } - var userSummaries []types.Summary[types.CGMStats, *types.CGMStats] + var userSummaries []types.Summary[*types.CGMStats, types.CGMStats] if err = cursor.All(ctx, &userSummaries); err != nil { return nil, fmt.Errorf("unable to decode summaries for user %s: %w", userId, err) } @@ -220,7 +220,7 @@ func (r *TypelessRepo) GetPatientsWithRealtimeData(ctx context.Context, userIds return realtimeUsers, nil } -func (r *Repo[T, A]) DeleteSummary(ctx context.Context, userId string) error { +func (r *Repo[A, T]) DeleteSummary(ctx context.Context, userId string) error { if ctx == nil { return errors.New("context is missing") } @@ -230,7 +230,7 @@ func (r *Repo[T, A]) DeleteSummary(ctx context.Context, userId string) error { selector := bson.M{ "userId": userId, - "type": types.GetTypeString[T, A](), + "type": types.GetTypeString[A](), } _, err := r.DeleteMany(ctx, selector) @@ -241,7 +241,7 @@ func (r *Repo[T, A]) DeleteSummary(ctx context.Context, userId string) error { return nil } -func (r *Repo[T, A]) ReplaceSummary(ctx context.Context, userSummary *types.Summary[T, A]) error { +func (r *Repo[A, T]) ReplaceSummary(ctx context.Context, userSummary *types.Summary[A, T]) error { if ctx == nil { return errors.New("context is missing") } @@ -249,7 +249,7 @@ func (r *Repo[T, A]) ReplaceSummary(ctx context.Context, userSummary *types.Summ return errors.New("summary object is missing") } - var expectedType = types.GetTypeString[T, A]() + var expectedType = types.GetTypeString[A]() if userSummary.Type != expectedType { return fmt.Errorf("invalid summary type '%v', expected '%v'", userSummary.Type, expectedType) } @@ -326,7 +326,7 @@ func (r *Repo[T, A]) CreateSummaries(ctx context.Context, summaries []*types.Sum return count, nil } -func (r *Repo[T, A]) SetOutdated(ctx context.Context, userId, reason string) (*time.Time, error) { +func (r *Repo[A, T]) SetOutdated(ctx context.Context, userId, reason string) (*time.Time, error) { if ctx == nil { return nil, errors.New("context is missing") } diff --git a/data/summary/store/store_test.go b/data/summary/store/store_test.go index 0d3e2536a..36f6797a3 100644 --- a/data/summary/store/store_test.go +++ b/data/summary/store/store_test.go @@ -51,7 +51,7 @@ var _ = Describe("Summary Stats Mongo", func() { summaryRepository = store.NewSummaryRepository().GetStore() Expect(summaryRepository).ToNot(BeNil()) - cgmStore := dataStoreSummary.New[types.CGMStats, *types.CGMStats](summaryRepository) + cgmStore := dataStoreSummary.New[*types.CGMStats](summaryRepository) Expect(cgmStore).ToNot(BeNil()) }) @@ -63,7 +63,7 @@ var _ = Describe("Summary Stats Mongo", func() { summaryRepository = store.NewSummaryRepository().GetStore() Expect(summaryRepository).ToNot(BeNil()) - bgmStore := dataStoreSummary.New[types.BGMStats, *types.BGMStats](summaryRepository) + bgmStore := dataStoreSummary.New[*types.BGMStats](summaryRepository) Expect(bgmStore).ToNot(BeNil()) }) @@ -112,20 +112,20 @@ var _ = Describe("Summary Stats Mongo", func() { Context("With typed Stores", func() { var userId string var userIdOther string - var cgmStore *dataStoreSummary.Repo[types.CGMStats, *types.CGMStats] - var bgmStore *dataStoreSummary.Repo[types.BGMStats, *types.BGMStats] + var cgmStore *dataStoreSummary.Repo[*types.CGMStats, types.CGMStats] + var bgmStore *dataStoreSummary.Repo[*types.BGMStats, types.BGMStats] var typelessStore *dataStoreSummary.TypelessRepo - var userCGMSummary *types.Summary[types.CGMStats, *types.CGMStats] - var userBGMSummary *types.Summary[types.BGMStats, *types.BGMStats] + var userCGMSummary *types.Summary[*types.CGMStats, types.CGMStats] + var userBGMSummary *types.Summary[*types.BGMStats, types.BGMStats] BeforeEach(func() { ctx = log.NewContextWithLogger(context.Background(), logger) userId = userTest.RandomID() userIdOther = userTest.RandomID() - cgmStore = dataStoreSummary.New[types.CGMStats, *types.CGMStats](summaryRepository) - bgmStore = dataStoreSummary.New[types.BGMStats, *types.BGMStats](summaryRepository) + cgmStore = dataStoreSummary.New[*types.CGMStats](summaryRepository) + bgmStore = dataStoreSummary.New[*types.BGMStats](summaryRepository) typelessStore = dataStoreSummary.NewTypeless(summaryRepository) }) @@ -222,9 +222,9 @@ var _ = Describe("Summary Stats Mongo", func() { }) It("Update CGM Summary", func() { - var userCGMSummaryTwo *types.Summary[types.CGMStats, *types.CGMStats] - var userCGMSummaryWritten *types.Summary[types.CGMStats, *types.CGMStats] - var userCGMSummaryWrittenTwo *types.Summary[types.CGMStats, *types.CGMStats] + var userCGMSummaryTwo *types.Summary[*types.CGMStats, types.CGMStats] + var userCGMSummaryWritten *types.Summary[*types.CGMStats, types.CGMStats] + var userCGMSummaryWrittenTwo *types.Summary[*types.CGMStats, types.CGMStats] // generate and insert first summary userCGMSummary = test.RandomCGMSummary(userId) @@ -258,9 +258,9 @@ var _ = Describe("Summary Stats Mongo", func() { }) It("Update BGM Summary", func() { - var userBGMSummaryTwo *types.Summary[types.BGMStats, *types.BGMStats] - var userBGMSummaryWritten *types.Summary[types.BGMStats, *types.BGMStats] - var userBGMSummaryWrittenTwo *types.Summary[types.BGMStats, *types.BGMStats] + var userBGMSummaryTwo *types.Summary[*types.BGMStats, types.BGMStats] + var userBGMSummaryWritten *types.Summary[*types.BGMStats, types.BGMStats] + var userBGMSummaryWrittenTwo *types.Summary[*types.BGMStats, types.BGMStats] // generate and insert first summary userBGMSummary = test.RandomBGMSummary(userId) @@ -309,7 +309,7 @@ var _ = Describe("Summary Stats Mongo", func() { }) It("Delete CGM Summary", func() { - var userCGMSummaryWritten *types.Summary[types.CGMStats, *types.CGMStats] + var userCGMSummaryWritten *types.Summary[*types.CGMStats, types.CGMStats] userCGMSummary = test.RandomCGMSummary(userId) Expect(userCGMSummary.Type).To(Equal("cgm")) @@ -333,7 +333,7 @@ var _ = Describe("Summary Stats Mongo", func() { }) It("Delete BGM Summary", func() { - var userBGMSummaryWritten *types.Summary[types.BGMStats, *types.BGMStats] + var userBGMSummaryWritten *types.Summary[*types.BGMStats, types.BGMStats] userBGMSummary = test.RandomBGMSummary(userId) Expect(userBGMSummary.Type).To(Equal("bgm")) @@ -357,8 +357,8 @@ var _ = Describe("Summary Stats Mongo", func() { }) It("Delete All Summaries for User", func() { - var userCGMSummaryWritten *types.Summary[types.CGMStats, *types.CGMStats] - var userBGMSummaryWritten *types.Summary[types.BGMStats, *types.BGMStats] + var userCGMSummaryWritten *types.Summary[*types.CGMStats, types.CGMStats] + var userBGMSummaryWritten *types.Summary[*types.BGMStats, types.BGMStats] userCGMSummary = test.RandomCGMSummary(userId) Expect(userCGMSummary.Type).To(Equal("cgm")) @@ -400,7 +400,7 @@ var _ = Describe("Summary Stats Mongo", func() { Context("CreateSummaries", func() { It("Create summaries with missing context", func() { - var summaries = []*types.Summary[types.CGMStats, *types.CGMStats]{ + var summaries = []*types.Summary[*types.CGMStats, types.CGMStats]{ test.RandomCGMSummary(userId), test.RandomCGMSummary(userIdOther), } @@ -417,7 +417,7 @@ var _ = Describe("Summary Stats Mongo", func() { }) It("Create CGM summaries with an invalid type", func() { - var summaries = []*types.Summary[types.CGMStats, *types.CGMStats]{ + var summaries = []*types.Summary[*types.CGMStats, types.CGMStats]{ test.RandomCGMSummary(userId), test.RandomCGMSummary(userIdOther), } @@ -430,7 +430,7 @@ var _ = Describe("Summary Stats Mongo", func() { }) It("Create BGM summaries with an invalid type", func() { - var summaries = []*types.Summary[types.BGMStats, *types.BGMStats]{ + var summaries = []*types.Summary[*types.BGMStats, types.BGMStats]{ test.RandomBGMSummary(userId), test.RandomBGMSummary(userIdOther), } @@ -443,7 +443,7 @@ var _ = Describe("Summary Stats Mongo", func() { }) It("Create summaries with an empty userId", func() { - var summaries = []*types.Summary[types.CGMStats, *types.CGMStats]{ + var summaries = []*types.Summary[*types.CGMStats, types.CGMStats]{ test.RandomCGMSummary(userId), test.RandomCGMSummary(userIdOther), } @@ -457,7 +457,7 @@ var _ = Describe("Summary Stats Mongo", func() { It("Create CGM summaries", func() { var count int - var summaries = []*types.Summary[types.CGMStats, *types.CGMStats]{ + var summaries = []*types.Summary[*types.CGMStats, types.CGMStats]{ test.RandomCGMSummary(userId), test.RandomCGMSummary(userIdOther), } @@ -477,7 +477,7 @@ var _ = Describe("Summary Stats Mongo", func() { It("Create BGM summaries", func() { var count int - var summaries = []*types.Summary[types.BGMStats, *types.BGMStats]{ + var summaries = []*types.Summary[*types.BGMStats, types.BGMStats]{ test.RandomBGMSummary(userId), test.RandomBGMSummary(userIdOther), } @@ -558,7 +558,7 @@ var _ = Describe("Summary Stats Mongo", func() { }) It("With an existing non-outdated CGM summary", func() { - var userCGMSummaryWritten *types.Summary[types.CGMStats, *types.CGMStats] + var userCGMSummaryWritten *types.Summary[*types.CGMStats, types.CGMStats] userCGMSummary = test.RandomCGMSummary(userId) userCGMSummary.Dates.OutdatedSince = nil @@ -577,7 +577,7 @@ var _ = Describe("Summary Stats Mongo", func() { }) It("With an existing outdated CGM summary", func() { - var userCGMSummaryWritten *types.Summary[types.CGMStats, *types.CGMStats] + var userCGMSummaryWritten *types.Summary[*types.CGMStats, types.CGMStats] var fiveMinutesAgo = time.Now().Add(time.Duration(-5) * time.Minute).UTC().Truncate(time.Millisecond) userCGMSummary = test.RandomCGMSummary(userId) @@ -596,7 +596,7 @@ var _ = Describe("Summary Stats Mongo", func() { }) It("With an existing outdated CGM summary beyond the outdatedSinceLimit", func() { - var userCGMSummaryWritten *types.Summary[types.CGMStats, *types.CGMStats] + var userCGMSummaryWritten *types.Summary[*types.CGMStats, types.CGMStats] now := time.Now().UTC().Truncate(time.Millisecond) userCGMSummary = test.RandomCGMSummary(userId) @@ -614,7 +614,7 @@ var _ = Describe("Summary Stats Mongo", func() { }) It("With an existing outdated CGM summary with schema migration reason", func() { - var userCGMSummaryWritten *types.Summary[types.CGMStats, *types.CGMStats] + var userCGMSummaryWritten *types.Summary[*types.CGMStats, types.CGMStats] now := time.Now().UTC().Truncate(time.Millisecond) fiveMinutesAgo := now.Add(time.Duration(-5) * time.Minute) @@ -656,7 +656,7 @@ var _ = Describe("Summary Stats Mongo", func() { }) It("With an existing non-outdated BGM summary", func() { - var userBGMSummaryWritten *types.Summary[types.BGMStats, *types.BGMStats] + var userBGMSummaryWritten *types.Summary[*types.BGMStats, types.BGMStats] userBGMSummary = test.RandomBGMSummary(userId) userBGMSummary.Dates.OutdatedSince = nil @@ -675,7 +675,7 @@ var _ = Describe("Summary Stats Mongo", func() { }) It("With an existing outdated BGM summary", func() { - var userBGMSummaryWritten *types.Summary[types.BGMStats, *types.BGMStats] + var userBGMSummaryWritten *types.Summary[*types.BGMStats, types.BGMStats] var fiveMinutesAgo = time.Now().Add(time.Duration(-5) * time.Minute).UTC().Truncate(time.Millisecond) userBGMSummary = test.RandomBGMSummary(userId) @@ -695,7 +695,7 @@ var _ = Describe("Summary Stats Mongo", func() { }) It("With an existing outdated BGM summary with schema migration reason", func() { - var userBGMSummaryWritten *types.Summary[types.BGMStats, *types.BGMStats] + var userBGMSummaryWritten *types.Summary[*types.BGMStats, types.BGMStats] now := time.Now().UTC().Truncate(time.Millisecond) fiveMinutesAgo := now.Add(time.Duration(-5) * time.Minute) @@ -750,7 +750,7 @@ var _ = Describe("Summary Stats Mongo", func() { }) It("With multiple CGM summaries", func() { - var summaries = []*types.Summary[types.CGMStats, *types.CGMStats]{ + var summaries = []*types.Summary[*types.CGMStats, types.CGMStats]{ test.RandomCGMSummary(userId), test.RandomCGMSummary(userIdOther), } @@ -767,7 +767,7 @@ var _ = Describe("Summary Stats Mongo", func() { }) It("With multiple BGM summaries", func() { - var summaries = []*types.Summary[types.BGMStats, *types.BGMStats]{ + var summaries = []*types.Summary[*types.BGMStats, types.BGMStats]{ test.RandomBGMSummary(userId), test.RandomBGMSummary(userIdOther), } @@ -784,12 +784,12 @@ var _ = Describe("Summary Stats Mongo", func() { }) It("Get CGM with multiple summaries of different type", func() { - var cgmSummaries = []*types.Summary[types.CGMStats, *types.CGMStats]{ + var cgmSummaries = []*types.Summary[*types.CGMStats, types.CGMStats]{ test.RandomCGMSummary(userId), test.RandomCGMSummary(userIdOther), } - var bgmSummaries = []*types.Summary[types.BGMStats, *types.BGMStats]{ + var bgmSummaries = []*types.Summary[*types.BGMStats, types.BGMStats]{ test.RandomBGMSummary(userId), test.RandomBGMSummary(userIdOther), } @@ -809,12 +809,12 @@ var _ = Describe("Summary Stats Mongo", func() { }) It("Get BGM with multiple summaries of different type", func() { - var cgmSummaries = []*types.Summary[types.CGMStats, *types.CGMStats]{ + var cgmSummaries = []*types.Summary[*types.CGMStats, types.CGMStats]{ test.RandomCGMSummary(userId), test.RandomCGMSummary(userIdOther), } - var bgmSummaries = []*types.Summary[types.BGMStats, *types.BGMStats]{ + var bgmSummaries = []*types.Summary[*types.BGMStats, types.BGMStats]{ test.RandomBGMSummary(userId), test.RandomBGMSummary(userIdOther), } @@ -852,7 +852,7 @@ var _ = Describe("Summary Stats Mongo", func() { }) It("With CGM summaries", func() { - var cgmSummaries = []*types.Summary[types.CGMStats, *types.CGMStats]{ + var cgmSummaries = []*types.Summary[*types.CGMStats, types.CGMStats]{ test.RandomCGMSummary(userId), test.RandomCGMSummary(userIdOther), } @@ -867,7 +867,7 @@ var _ = Describe("Summary Stats Mongo", func() { }) It("With BGM summaries", func() { - var bgmSummaries = []*types.Summary[types.BGMStats, *types.BGMStats]{ + var bgmSummaries = []*types.Summary[*types.BGMStats, types.BGMStats]{ test.RandomBGMSummary(userId), test.RandomBGMSummary(userIdOther), } @@ -884,12 +884,12 @@ var _ = Describe("Summary Stats Mongo", func() { It("Get CGM with summaries of both types", func() { userIdTwo := userTest.RandomID() userIdThree := userTest.RandomID() - var cgmSummaries = []*types.Summary[types.CGMStats, *types.CGMStats]{ + var cgmSummaries = []*types.Summary[*types.CGMStats, types.CGMStats]{ test.RandomCGMSummary(userId), test.RandomCGMSummary(userIdOther), } - var bgmSummaries = []*types.Summary[types.BGMStats, *types.BGMStats]{ + var bgmSummaries = []*types.Summary[*types.BGMStats, types.BGMStats]{ test.RandomBGMSummary(userIdTwo), test.RandomBGMSummary(userIdThree), } @@ -908,12 +908,12 @@ var _ = Describe("Summary Stats Mongo", func() { It("Get BGM with summaries of both types", func() { userIdTwo := userTest.RandomID() userIdThree := userTest.RandomID() - var cgmSummaries = []*types.Summary[types.CGMStats, *types.CGMStats]{ + var cgmSummaries = []*types.Summary[*types.CGMStats, types.CGMStats]{ test.RandomCGMSummary(userId), test.RandomCGMSummary(userIdOther), } - var bgmSummaries = []*types.Summary[types.BGMStats, *types.BGMStats]{ + var bgmSummaries = []*types.Summary[*types.BGMStats, types.BGMStats]{ test.RandomBGMSummary(userIdTwo), test.RandomBGMSummary(userIdThree), } @@ -957,7 +957,7 @@ var _ = Describe("Summary Stats Mongo", func() { It("With outdated CGM summaries", func() { var outdatedTime = time.Now().UTC().Truncate(time.Millisecond) - var cgmSummaries = []*types.Summary[types.CGMStats, *types.CGMStats]{ + var cgmSummaries = []*types.Summary[*types.CGMStats, types.CGMStats]{ test.RandomCGMSummary(userId), test.RandomCGMSummary(userIdOther), test.RandomCGMSummary(userIdTwo), @@ -977,7 +977,7 @@ var _ = Describe("Summary Stats Mongo", func() { It("With outdated BGM summaries", func() { var outdatedTime = time.Now().UTC().Truncate(time.Millisecond) - var bgmSummaries = []*types.Summary[types.BGMStats, *types.BGMStats]{ + var bgmSummaries = []*types.Summary[*types.BGMStats, types.BGMStats]{ test.RandomBGMSummary(userId), test.RandomBGMSummary(userIdOther), test.RandomBGMSummary(userIdTwo), @@ -997,12 +997,12 @@ var _ = Describe("Summary Stats Mongo", func() { It("Get outdated CGM summaries with both types present", func() { var outdatedTime = time.Now().UTC().Truncate(time.Millisecond) - var cgmSummaries = []*types.Summary[types.CGMStats, *types.CGMStats]{ + var cgmSummaries = []*types.Summary[*types.CGMStats, types.CGMStats]{ test.RandomCGMSummary(userId), test.RandomCGMSummary(userIdOther), } - var bgmSummaries = []*types.Summary[types.BGMStats, *types.BGMStats]{ + var bgmSummaries = []*types.Summary[*types.BGMStats, types.BGMStats]{ test.RandomBGMSummary(userIdTwo), test.RandomBGMSummary(userIdThree), } @@ -1025,12 +1025,12 @@ var _ = Describe("Summary Stats Mongo", func() { It("Get outdated BGM summaries with both types present", func() { var outdatedTime = time.Now().UTC().Truncate(time.Millisecond) - var cgmSummaries = []*types.Summary[types.CGMStats, *types.CGMStats]{ + var cgmSummaries = []*types.Summary[*types.CGMStats, types.CGMStats]{ test.RandomCGMSummary(userId), test.RandomCGMSummary(userIdOther), } - var bgmSummaries = []*types.Summary[types.BGMStats, *types.BGMStats]{ + var bgmSummaries = []*types.Summary[*types.BGMStats, types.BGMStats]{ test.RandomBGMSummary(userIdTwo), test.RandomBGMSummary(userIdThree), } @@ -1054,7 +1054,7 @@ var _ = Describe("Summary Stats Mongo", func() { It("With a specific pagination size", func() { var pagination = page.NewPagination() var outdatedTime = time.Now().UTC().Truncate(time.Millisecond) - var cgmSummaries = []*types.Summary[types.CGMStats, *types.CGMStats]{ + var cgmSummaries = []*types.Summary[*types.CGMStats, types.CGMStats]{ test.RandomCGMSummary(userId), test.RandomCGMSummary(userIdOther), test.RandomCGMSummary(userIdTwo), @@ -1077,7 +1077,7 @@ var _ = Describe("Summary Stats Mongo", func() { It("Check sort order", func() { var outdatedTime = time.Now().UTC().Truncate(time.Millisecond) - var cgmSummaries = []*types.Summary[types.CGMStats, *types.CGMStats]{ + var cgmSummaries = []*types.Summary[*types.CGMStats, types.CGMStats]{ test.RandomCGMSummary(userId), test.RandomCGMSummary(userIdOther), test.RandomCGMSummary(userIdTwo), diff --git a/data/summary/summary.go b/data/summary/summary.go index eb38cad7e..29c13d9f6 100644 --- a/data/summary/summary.go +++ b/data/summary/summary.go @@ -6,7 +6,6 @@ import ( "github.com/tidepool-org/platform/data" - dataStore "github.com/tidepool-org/platform/data/store" "github.com/tidepool-org/platform/data/summary/store" "github.com/tidepool-org/platform/data/summary/types" "github.com/tidepool-org/platform/log" @@ -33,46 +32,46 @@ func New(summaryRepository *storeStructuredMongo.Repository, dataRepository type return registry } -func addSummarizer[T types.Stats, A types.StatsPt[T]](reg *SummarizerRegistry, summarizer Summarizer[T, A]) { - typ := types.GetTypeString[T, A]() +func addSummarizer[A types.StatsPt[T], T types.Stats](reg *SummarizerRegistry, summarizer Summarizer[A, T]) { + typ := types.GetTypeString[A, T]() reg.summarizers[typ] = summarizer } -func GetSummarizer[T types.Stats, A types.StatsPt[T]](reg *SummarizerRegistry) Summarizer[T, A] { - typ := types.GetTypeString[T, A]() +func GetSummarizer[A types.StatsPt[T], T types.Stats](reg *SummarizerRegistry) Summarizer[A, T] { + typ := types.GetTypeString[A, T]() summarizer := reg.summarizers[typ] - return summarizer.(Summarizer[T, A]) + return summarizer.(Summarizer[A, T]) } -type Summarizer[T types.Stats, A types.StatsPt[T]] interface { - GetSummary(ctx context.Context, userId string) (*types.Summary[T, A], error) +type Summarizer[A types.StatsPt[T], T types.Stats] interface { + GetSummary(ctx context.Context, userId string) (*types.Summary[A, T], error) SetOutdated(ctx context.Context, userId, reason string) (*time.Time, error) - UpdateSummary(ctx context.Context, userId string) (*types.Summary[T, A], error) + UpdateSummary(ctx context.Context, userId string) (*types.Summary[A, T], error) GetOutdatedUserIDs(ctx context.Context, pagination *page.Pagination) (*types.OutdatedSummariesResponse, error) GetMigratableUserIDs(ctx context.Context, pagination *page.Pagination) ([]string, error) BackfillSummaries(ctx context.Context) (int, error) } // Compile time interface check -var _ Summarizer[types.CGMStats, *types.CGMStats] = &GlucoseSummarizer[types.CGMStats, *types.CGMStats]{} -var _ Summarizer[types.BGMStats, *types.BGMStats] = &GlucoseSummarizer[types.BGMStats, *types.BGMStats]{} +var _ Summarizer[*types.CGMStats, types.CGMStats] = &GlucoseSummarizer[*types.CGMStats, types.CGMStats]{} +var _ Summarizer[*types.BGMStats, types.BGMStats] = &GlucoseSummarizer[*types.BGMStats, types.BGMStats]{} -type GlucoseSummarizer[T types.Stats, A types.StatsPt[T]] struct { +type GlucoseSummarizer[A types.StatsPt[T], T types.Stats] struct { userData types.DeviceDataFetcher - summaries *store.Repo[T, A] + summaries *store.Repo[A, T] } -func NewBGMSummarizer(collection *storeStructuredMongo.Repository, dataRepo types.DeviceDataFetcher) Summarizer[types.BGMStats, *types.BGMStats] { - return &GlucoseSummarizer[types.BGMStats, *types.BGMStats]{ +func NewBGMSummarizer(collection *storeStructuredMongo.Repository, dataRepo types.DeviceDataFetcher) Summarizer[*types.BGMStats, types.BGMStats] { + return &GlucoseSummarizer[*types.BGMStats, types.BGMStats]{ userData: dataRepo, - summaries: store.New[types.BGMStats, *types.BGMStats](collection), + summaries: store.New[*types.BGMStats](collection), } } -func NewCGMSummarizer(collection *storeStructuredMongo.Repository, dataRepo types.DeviceDataFetcher) Summarizer[types.CGMStats, *types.CGMStats] { - return &GlucoseSummarizer[types.CGMStats, *types.CGMStats]{ +func NewCGMSummarizer(collection *storeStructuredMongo.Repository, dataRepo types.DeviceDataFetcher) Summarizer[*types.CGMStats, types.CGMStats] { + return &GlucoseSummarizer[*types.CGMStats, types.CGMStats]{ userData: dataRepo, - summaries: store.New[types.CGMStats, *types.CGMStats](collection), + summaries: store.New[*types.CGMStats](collection), } } @@ -94,26 +93,26 @@ func (ts *TypelessSummarizer) DeleteSummaries(ctx context.Context, userId string return ts.summaries.DeleteSummary(ctx, userId) } -func (gs *GlucoseSummarizer[T, A]) GetSummary(ctx context.Context, userId string) (*types.Summary[T, A], error) { +func (gs *GlucoseSummarizer[A, T]) GetSummary(ctx context.Context, userId string) (*types.Summary[A, T], error) { return gs.summaries.GetSummary(ctx, userId) } -func (gs *GlucoseSummarizer[T, A]) SetOutdated(ctx context.Context, userId, reason string) (*time.Time, error) { +func (gs *GlucoseSummarizer[A, T]) SetOutdated(ctx context.Context, userId, reason string) (*time.Time, error) { return gs.summaries.SetOutdated(ctx, userId, reason) } -func (gs *GlucoseSummarizer[T, A]) GetOutdatedUserIDs(ctx context.Context, pagination *page.Pagination) (*types.OutdatedSummariesResponse, error) { +func (gs *GlucoseSummarizer[A, T]) GetOutdatedUserIDs(ctx context.Context, pagination *page.Pagination) (*types.OutdatedSummariesResponse, error) { return gs.summaries.GetOutdatedUserIDs(ctx, pagination) } -func (gs *GlucoseSummarizer[T, A]) GetMigratableUserIDs(ctx context.Context, pagination *page.Pagination) ([]string, error) { +func (gs *GlucoseSummarizer[A, T]) GetMigratableUserIDs(ctx context.Context, pagination *page.Pagination) ([]string, error) { return gs.summaries.GetMigratableUserIDs(ctx, pagination) } -func (gs *GlucoseSummarizer[T, A]) BackfillSummaries(ctx context.Context) (int, error) { +func (gs *GlucoseSummarizer[A, T]) BackfillSummaries(ctx context.Context) (int, error) { var empty struct{} - distinctDataUserIDs, err := gs.userData.DistinctUserIDs(ctx, types.GetDeviceDataTypeString[T, A]()) + distinctDataUserIDs, err := gs.userData.DistinctUserIDs(ctx, types.GetDeviceDataTypeString[A]()) if err != nil { return 0, err } @@ -139,7 +138,7 @@ func (gs *GlucoseSummarizer[T, A]) BackfillSummaries(ctx context.Context) (int, } } - summaries := make([]*types.Summary[T, A], 0, len(userIDsReqBackfill)) + summaries := make([]*types.Summary[A, T], 0, len(userIDsReqBackfill)) for _, userID := range userIDsReqBackfill { s := types.Create[A](userID) s.SetOutdated(types.OutdatedReasonBackfill) @@ -161,15 +160,15 @@ func (gs *GlucoseSummarizer[T, A]) BackfillSummaries(ctx context.Context) (int, return 0, nil } -func (gs *GlucoseSummarizer[T, A]) UpdateSummary(ctx context.Context, userId string) (*types.Summary[T, A], error) { +func (gs *GlucoseSummarizer[A, T]) UpdateSummary(ctx context.Context, userId string) (*types.Summary[A, T], error) { logger := log.LoggerFromContext(ctx) userSummary, err := gs.GetSummary(ctx, userId) - summaryType := types.GetDeviceDataTypeString[T, A]() + summaryType := types.GetDeviceDataTypeString[A]() if err != nil { return nil, err } - logger.Debugf("Starting %s summary calculation for %s", types.GetTypeString[T, A](), userId) + logger.Debugf("Starting %s summary calculation for %s", types.GetTypeString[A](), userId) // user has no usable summary for incremental update if userSummary == nil { @@ -196,8 +195,9 @@ func (gs *GlucoseSummarizer[T, A]) UpdateSummary(ctx context.Context, userId str // this filters out users which cannot be updated, as they somehow got called for update, but have no new data if status.EarliestModified.IsZero() { - logger.Warnf("User %s was called for a %s summary update, but has no new data, skipping", userId, types.GetTypeString[T, A]()) - userSummary.Dates.Update(status, userSummary.Stats.GetBucketDate(0)) + logger.Warnf("User %s was called for a %s summary update, but has no new data, skipping", userId, summaryType) + + userSummary.SetNotOutdated() return userSummary, gs.summaries.ReplaceSummary(ctx, userSummary) } @@ -230,7 +230,7 @@ func MaybeUpdateSummary(ctx context.Context, registry *SummarizerRegistry, updat lgr := log.LoggerFromContext(ctx) if _, ok := updatesSummary[types.SummaryTypeCGM]; ok { - summarizer := GetSummarizer[types.CGMStats, *types.CGMStats](registry) + summarizer := GetSummarizer[*types.CGMStats, types.CGMStats](registry) outdatedSince, err := summarizer.SetOutdated(ctx, userId, reason) if err != nil { lgr.WithError(err).Error("Unable to set cgm summary outdated") @@ -239,7 +239,7 @@ func MaybeUpdateSummary(ctx context.Context, registry *SummarizerRegistry, updat } if _, ok := updatesSummary[types.SummaryTypeBGM]; ok { - summarizer := GetSummarizer[types.BGMStats, *types.BGMStats](registry) + summarizer := GetSummarizer[*types.BGMStats, types.BGMStats](registry) outdatedSince, err := summarizer.SetOutdated(ctx, userId, reason) if err != nil { lgr.WithError(err).Error("Unable to set bgm summary outdated") @@ -263,18 +263,3 @@ func CheckDatumUpdatesSummary(updatesSummary map[string]struct{}, datum data.Dat } } } - -func CheckDataSetUpdatesSummary(ctx context.Context, repository dataStore.DataRepository, updatesSummary map[string]struct{}, dataSetId string) { - twoYearsPast := time.Now().UTC().AddDate(0, -24, 0) - oneDayFuture := time.Now().UTC().AddDate(0, 0, 1) - - for _, typ := range types.DeviceDataTypes { - status, err := repository.CheckDataSetContainsTypeInRange(ctx, dataSetId, typ, twoYearsPast, oneDayFuture) - if err != nil { - return - } - if status { - updatesSummary[types.DeviceDataToSummaryTypes[typ]] = struct{}{} - } - } -} diff --git a/data/summary/summary_test.go b/data/summary/summary_test.go index ce1e32b7e..0cd134918 100644 --- a/data/summary/summary_test.go +++ b/data/summary/summary_test.go @@ -2,9 +2,11 @@ package summary_test import ( "context" + "time" + + "github.com/tidepool-org/platform/data" "github.com/tidepool-org/platform/data/types/upload" dataTypesUploadTest "github.com/tidepool-org/platform/data/types/upload/test" - "time" "go.mongodb.org/mongo-driver/mongo" "go.mongodb.org/mongo-driver/mongo/options" @@ -38,27 +40,32 @@ import ( const units = "mmol/L" -func NewDataSet(userID string, deviceID string) *upload.Upload { +func NewDataSet(userID string, typ string) *upload.Upload { + var deviceId = "SummaryTestDevice" + var timestamp = time.Now().UTC().Truncate(time.Millisecond) + dataSet := dataTypesUploadTest.RandomUpload() + dataSet.DataSetType = &typ dataSet.Active = true dataSet.ArchivedDataSetID = nil dataSet.ArchivedTime = nil - dataSet.CreatedTime = nil + dataSet.CreatedTime = ×tamp dataSet.CreatedUserID = nil dataSet.DeletedTime = nil dataSet.DeletedUserID = nil - dataSet.DeviceID = pointer.FromAny(deviceID) + dataSet.DeviceID = &deviceId dataSet.Location.GPS.Origin.Time = nil - dataSet.ModifiedTime = nil + dataSet.ModifiedTime = ×tamp dataSet.ModifiedUserID = nil dataSet.Origin.Time = nil - dataSet.UserID = pointer.FromAny(userID) + dataSet.UserID = &userID return dataSet } -func NewDataSetData(typ string, deviceId string, userId string, startTime time.Time, hours float64, glucoseValue float64) []mongo.WriteModel { +func NewDataSetData(typ string, userId string, startTime time.Time, hours float64, glucoseValue float64) []mongo.WriteModel { requiredRecords := int(hours * 1) var dataSetData = make([]mongo.WriteModel, requiredRecords) + var deviceId = "SummaryTestDevice" for count := 0; count < requiredRecords; count++ { datumTime := startTime.Add(time.Duration(-(count + 1)) * time.Minute * 60) @@ -68,6 +75,31 @@ func NewDataSetData(typ string, deviceId string, userId string, startTime time.T return dataSetData } +func NewDataSetDataRealtime(typ string, userId string, uploadId string, startTime time.Time, hours float64, realtime bool) []mongo.WriteModel { + requiredRecords := int(hours * 2) + + var dataSetData = make([]mongo.WriteModel, requiredRecords) + var glucoseValue = 5.0 + var deviceId = "SummaryTestDevice" + + // generate X hours of data + for count := 0; count < requiredRecords; count += 1 { + datumTime := startTime.Add(time.Duration(count-requiredRecords) * time.Minute * 30) + + datum := NewGlucose(typ, units, &datumTime, deviceId, userId, glucoseValue) + datum.Value = pointer.FromFloat64(glucoseValue) + + if realtime { + datum.CreatedTime = pointer.FromAny(datumTime.Add(5 * time.Minute)) + datum.ModifiedTime = pointer.FromAny(datumTime.Add(10 * time.Minute)) + } + + dataSetData[count] = mongo.NewInsertOneModel().SetDocument(datum) + } + + return dataSetData +} + func NewDatum(typ string) *baseDatum.Base { datum := baseDatum.New(typ) datum.Time = pointer.FromAny(time.Now().UTC()) @@ -125,8 +157,8 @@ var _ = Describe("Summary", func() { var summaryRepository *storeStructuredMongo.Repository var dataStore dataStore.DataRepository var userId string - var cgmStore *dataStoreSummary.Repo[types.CGMStats, *types.CGMStats] - var bgmStore *dataStoreSummary.Repo[types.BGMStats, *types.BGMStats] + var cgmStore *dataStoreSummary.Repo[*types.CGMStats, types.CGMStats] + var bgmStore *dataStoreSummary.Repo[*types.BGMStats, types.BGMStats] BeforeEach(func() { logger = logTest.NewLogger() @@ -142,8 +174,8 @@ var _ = Describe("Summary", func() { registry = summary.New(summaryRepository, dataStore) userId = userTest.RandomID() - cgmStore = dataStoreSummary.New[types.CGMStats, *types.CGMStats](summaryRepository) - bgmStore = dataStoreSummary.New[types.BGMStats, *types.BGMStats](summaryRepository) + cgmStore = dataStoreSummary.New[*types.CGMStats](summaryRepository) + bgmStore = dataStoreSummary.New[*types.BGMStats](summaryRepository) }) AfterEach(func() { @@ -290,11 +322,10 @@ var _ = Describe("Summary", func() { var dataStore dataStore.DataRepository var userId string //var cgmStore *dataStoreSummary.Repo[types.CGMStats, *types.CGMStats] - var bgmStore *dataStoreSummary.Repo[types.BGMStats, *types.BGMStats] - var cgmSummarizer summary.Summarizer[types.CGMStats, *types.CGMStats] - var bgmSummarizer summary.Summarizer[types.BGMStats, *types.BGMStats] + var bgmStore *dataStoreSummary.Repo[*types.BGMStats, types.BGMStats] + var cgmSummarizer summary.Summarizer[*types.CGMStats, types.CGMStats] + var bgmSummarizer summary.Summarizer[*types.BGMStats, types.BGMStats] var dataCollection *mongo.Collection - var deviceId string var datumTime time.Time BeforeEach(func() { @@ -311,23 +342,22 @@ var _ = Describe("Summary", func() { dataStore = store.NewDataRepository() registry = summary.New(summaryRepository, dataStore) userId = userTest.RandomID() - deviceId = "SummaryTestDevice" //cgmStore = dataStoreSummary.New[types.CGMStats, *types.CGMStats](summaryRepository) - bgmStore = dataStoreSummary.New[types.BGMStats, *types.BGMStats](summaryRepository) + bgmStore = dataStoreSummary.New[*types.BGMStats](summaryRepository) - cgmSummarizer = summary.GetSummarizer[types.CGMStats, *types.CGMStats](registry) - bgmSummarizer = summary.GetSummarizer[types.BGMStats, *types.BGMStats](registry) + cgmSummarizer = summary.GetSummarizer[*types.CGMStats](registry) + bgmSummarizer = summary.GetSummarizer[*types.BGMStats](registry) datumTime = time.Now().UTC().Truncate(time.Hour) }) It("repeat out of order cgm summary calc", func() { - var userSummary *types.Summary[types.CGMStats, *types.CGMStats] + var userSummary *types.Summary[*types.CGMStats, types.CGMStats] var deviceData []mongo.WriteModel opts := options.BulkWrite().SetOrdered(false) - deviceData = NewDataSetData("cbg", deviceId, userId, datumTime, 5, 5) + deviceData = NewDataSetData("cbg", userId, datumTime, 5, 5) _, err := dataCollection.BulkWrite(ctx, deviceData, opts) Expect(err).ToNot(HaveOccurred()) @@ -337,7 +367,7 @@ var _ = Describe("Summary", func() { Expect(len(userSummary.Stats.Buckets)).To(Equal(5)) Expect(*userSummary.Stats.Periods["7d"].TotalRecords).To(Equal(5)) - deviceData = NewDataSetData("cbg", deviceId, userId, datumTime.Add(5*time.Hour), 5, 10) + deviceData = NewDataSetData("cbg", userId, datumTime.Add(5*time.Hour), 5, 10) _, err = dataCollection.BulkWrite(ctx, deviceData, opts) Expect(err).ToNot(HaveOccurred()) @@ -347,7 +377,7 @@ var _ = Describe("Summary", func() { Expect(len(userSummary.Stats.Buckets)).To(Equal(10)) Expect(*userSummary.Stats.Periods["7d"].TotalRecords).To(Equal(10)) - deviceData = NewDataSetData("cbg", deviceId, userId, datumTime.Add(15*time.Hour), 5, 2) + deviceData = NewDataSetData("cbg", userId, datumTime.Add(15*time.Hour), 5, 2) _, err = dataCollection.BulkWrite(ctx, deviceData, opts) Expect(err).ToNot(HaveOccurred()) @@ -357,11 +387,11 @@ var _ = Describe("Summary", func() { Expect(len(userSummary.Stats.Buckets)).To(Equal(20)) Expect(*userSummary.Stats.Periods["7d"].TotalRecords).To(Equal(15)) - deviceData = NewDataSetData("cbg", deviceId, userId, datumTime.Add(20*time.Hour), 5, 7) + deviceData = NewDataSetData("cbg", userId, datumTime.Add(20*time.Hour), 5, 7) _, err = dataCollection.BulkWrite(ctx, deviceData, opts) Expect(err).ToNot(HaveOccurred()) - deviceData = NewDataSetData("cbg", deviceId, userId, datumTime.Add(23*time.Hour), 2, 7) + deviceData = NewDataSetData("cbg", userId, datumTime.Add(23*time.Hour), 2, 7) _, err = dataCollection.BulkWrite(ctx, deviceData, opts) Expect(err).ToNot(HaveOccurred()) @@ -373,11 +403,11 @@ var _ = Describe("Summary", func() { }) It("repeat out of order bgm summary calc", func() { - var userSummary *types.Summary[types.BGMStats, *types.BGMStats] + var userSummary *types.Summary[*types.BGMStats, types.BGMStats] var deviceData []mongo.WriteModel opts := options.BulkWrite().SetOrdered(false) - deviceData = NewDataSetData("smbg", deviceId, userId, datumTime, 5, 5) + deviceData = NewDataSetData("smbg", userId, datumTime, 5, 5) _, err := dataCollection.BulkWrite(ctx, deviceData, opts) Expect(err).ToNot(HaveOccurred()) @@ -387,7 +417,7 @@ var _ = Describe("Summary", func() { Expect(len(userSummary.Stats.Buckets)).To(Equal(5)) Expect(*userSummary.Stats.Periods["7d"].TotalRecords).To(Equal(5)) - deviceData = NewDataSetData("smbg", deviceId, userId, datumTime.Add(5*time.Hour), 5, 10) + deviceData = NewDataSetData("smbg", userId, datumTime.Add(5*time.Hour), 5, 10) _, err = dataCollection.BulkWrite(ctx, deviceData, opts) Expect(err).ToNot(HaveOccurred()) @@ -397,7 +427,7 @@ var _ = Describe("Summary", func() { Expect(len(userSummary.Stats.Buckets)).To(Equal(10)) Expect(*userSummary.Stats.Periods["7d"].TotalRecords).To(Equal(10)) - deviceData = NewDataSetData("smbg", deviceId, userId, datumTime.Add(15*time.Hour), 5, 2) + deviceData = NewDataSetData("smbg", userId, datumTime.Add(15*time.Hour), 5, 2) _, err = dataCollection.BulkWrite(ctx, deviceData, opts) Expect(err).ToNot(HaveOccurred()) @@ -407,11 +437,11 @@ var _ = Describe("Summary", func() { Expect(len(userSummary.Stats.Buckets)).To(Equal(20)) Expect(*userSummary.Stats.Periods["7d"].TotalRecords).To(Equal(15)) - deviceData = NewDataSetData("smbg", deviceId, userId, datumTime.Add(20*time.Hour), 5, 7) + deviceData = NewDataSetData("smbg", userId, datumTime.Add(20*time.Hour), 5, 7) _, err = dataCollection.BulkWrite(ctx, deviceData, opts) Expect(err).ToNot(HaveOccurred()) - deviceData = NewDataSetData("smbg", deviceId, userId, datumTime.Add(23*time.Hour), 2, 7) + deviceData = NewDataSetData("smbg", userId, datumTime.Add(23*time.Hour), 2, 7) _, err = dataCollection.BulkWrite(ctx, deviceData, opts) Expect(err).ToNot(HaveOccurred()) @@ -422,77 +452,200 @@ var _ = Describe("Summary", func() { Expect(*userSummary.Stats.Periods["7d"].TotalRecords).To(Equal(22)) }) - It("repeat summary calc without new data", func() { - var userSummary *types.Summary[types.BGMStats, *types.BGMStats] + It("summary calc with very old data", func() { + var userSummary *types.Summary[*types.BGMStats, types.BGMStats] var deviceData []mongo.WriteModel opts := options.BulkWrite().SetOrdered(false) - deviceData = NewDataSetData("smbg", deviceId, userId, datumTime, 5, 5) + deviceData = NewDataSetData("smbg", userId, datumTime.AddDate(-3, 0, 0), 5, 5) _, err := dataCollection.BulkWrite(ctx, deviceData, opts) Expect(err).ToNot(HaveOccurred()) userSummary, err = bgmSummarizer.UpdateSummary(ctx, userId) Expect(err).ToNot(HaveOccurred()) - Expect(userSummary).ToNot(BeNil()) - Expect(len(userSummary.Stats.Buckets)).To(Equal(5)) - Expect(*userSummary.Stats.Periods["7d"].TotalRecords).To(Equal(5)) + Expect(userSummary).To(BeNil()) + }) - _, err = bgmSummarizer.SetOutdated(ctx, userId, types.OutdatedReasonDataAdded) + It("summary calc with jellyfish created summary", func() { + var userSummary *types.Summary[*types.BGMStats, types.BGMStats] + var deviceData []mongo.WriteModel + opts := options.BulkWrite().SetOrdered(false) + + deviceData = NewDataSetData("smbg", userId, datumTime, 5, 5) + _, err := dataCollection.BulkWrite(ctx, deviceData, opts) Expect(err).ToNot(HaveOccurred()) + summaries := make([]*types.Summary[*types.BGMStats, types.BGMStats], 1) + + // we don't use types.Create as we want to create a sparse jellyfish style upsert + summaries[0] = &types.Summary[*types.BGMStats, types.BGMStats]{ + Type: types.SummaryTypeBGM, + UserID: userId, + Dates: types.Dates{ + OutdatedSince: &time.Time{}, + HasOutdatedSince: true, + OutdatedReason: []string{"LEGACY_DATA_ADDED"}, + }, + } + + count, err := bgmStore.CreateSummaries(ctx, summaries) + Expect(err).ToNot(HaveOccurred()) + Expect(count).To(Equal(1)) + userSummary, err = bgmSummarizer.UpdateSummary(ctx, userId) Expect(err).ToNot(HaveOccurred()) Expect(userSummary).ToNot(BeNil()) Expect(len(userSummary.Stats.Buckets)).To(Equal(5)) Expect(*userSummary.Stats.Periods["7d"].TotalRecords).To(Equal(5)) + Expect(userSummary.Dates.LastUpdatedReason).To(ConsistOf("LEGACY_DATA_ADDED", types.OutdatedReasonSchemaMigration)) }) - It("summary calc with very old data", func() { - var userSummary *types.Summary[types.BGMStats, *types.BGMStats] + It("summary calc with no data correctly deletes summaries", func() { + var cgmSummary *types.Summary[*types.CGMStats, types.CGMStats] + var bgmSummary *types.Summary[*types.BGMStats, types.BGMStats] + var t *time.Time + + // create bgm summary + t, err = bgmSummarizer.SetOutdated(ctx, userId, types.OutdatedReasonUploadCompleted) + Expect(err).ToNot(HaveOccurred()) + + // check that it exists in the db + bgmSummary, err = bgmSummarizer.GetSummary(ctx, userId) + Expect(err).ToNot(HaveOccurred()) + Expect(bgmSummary).ToNot(BeNil()) + Expect(bgmSummary.Dates.OutdatedSince).To(Equal(t)) + + // create cgm summary + t, err = cgmSummarizer.SetOutdated(ctx, userId, types.OutdatedReasonUploadCompleted) + Expect(err).ToNot(HaveOccurred()) + // check that it exists in the db + cgmSummary, err = cgmSummarizer.GetSummary(ctx, userId) + Expect(err).ToNot(HaveOccurred()) + Expect(cgmSummary).ToNot(BeNil()) + Expect(cgmSummary.Dates.OutdatedSince).To(Equal(t)) + + // update bgm summary, which should delete it + bgmSummary, err = bgmSummarizer.UpdateSummary(ctx, userId) + Expect(err).ToNot(HaveOccurred()) + Expect(bgmSummary).To(BeNil()) + + // confirm its truly gone + bgmSummary, err = bgmSummarizer.GetSummary(ctx, userId) + Expect(err).ToNot(HaveOccurred()) + Expect(bgmSummary).To(BeNil()) + + // update cgm summary, which should delete it + cgmSummary, err = cgmSummarizer.UpdateSummary(ctx, userId) + Expect(err).ToNot(HaveOccurred()) + Expect(cgmSummary).To(BeNil()) + + // confirm its truly gone + cgmSummary, err = cgmSummarizer.GetSummary(ctx, userId) + Expect(err).ToNot(HaveOccurred()) + Expect(cgmSummary).To(BeNil()) + }) + + It("summary calc with no new data correctly leaves summary unchanged", func() { + var userSummary *types.Summary[*types.CGMStats, types.CGMStats] + var userSummaryNew *types.Summary[*types.CGMStats, types.CGMStats] var deviceData []mongo.WriteModel + opts := options.BulkWrite().SetOrdered(false) + deviceData = NewDataSetData("cbg", userId, datumTime, 5, 5) + _, err := dataCollection.BulkWrite(ctx, deviceData, opts) + Expect(err).ToNot(HaveOccurred()) - deviceData = NewDataSetData("smbg", deviceId, userId, datumTime.AddDate(-3, 0, 0), 5, 5) + // update once for real + userSummary, err = cgmSummarizer.UpdateSummary(ctx, userId) + Expect(err).ToNot(HaveOccurred()) + Expect(userSummary).ToNot(BeNil()) + Expect(userSummary.Stats.TotalHours).To(Equal(5)) + + _, err = cgmSummarizer.SetOutdated(ctx, userId, types.OutdatedReasonUploadCompleted) + Expect(err).ToNot(HaveOccurred()) + + userSummaryNew, err = cgmSummarizer.UpdateSummary(ctx, userId) + Expect(err).ToNot(HaveOccurred()) + Expect(userSummaryNew).ToNot(BeNil()) + + // ensure unchanged + userSummaryNew.ID = userSummary.ID + Expect(userSummaryNew).To(BeComparableTo(userSummary)) + }) + + It("summary calc with realtime data", func() { + var userSummary *types.Summary[*types.BGMStats, types.BGMStats] + var deviceData []mongo.WriteModel + realtimeDatumTime := time.Now().UTC().Truncate(time.Hour) + + uploadRecord := NewDataSet(userId, data.DataSetTypeContinuous) + err = dataStore.CreateDataSet(ctx, uploadRecord) + Expect(err).ToNot(HaveOccurred()) + + opts := options.BulkWrite().SetOrdered(false) + deviceData = NewDataSetDataRealtime("smbg", userId, *uploadRecord.UploadID, realtimeDatumTime, 10, true) _, err := dataCollection.BulkWrite(ctx, deviceData, opts) Expect(err).ToNot(HaveOccurred()) userSummary, err = bgmSummarizer.UpdateSummary(ctx, userId) Expect(err).ToNot(HaveOccurred()) - Expect(userSummary).To(BeNil()) + Expect(userSummary).ToNot(BeNil()) + Expect(len(userSummary.Stats.Buckets)).To(Equal(10)) + + for i := 0; i < len(userSummary.Stats.Buckets); i++ { + Expect(userSummary.Stats.Buckets[i].Data.RealtimeRecords).To(Equal(2)) + Expect(userSummary.Stats.Buckets[i].Data.DeferredRecords).To(Equal(0)) + } }) - It("summary calc with jellyfish created summary", func() { - var userSummary *types.Summary[types.BGMStats, *types.BGMStats] + It("summary calc with deferred data", func() { + var userSummary *types.Summary[*types.BGMStats, types.BGMStats] var deviceData []mongo.WriteModel - opts := options.BulkWrite().SetOrdered(false) + deferredDatumTime := time.Now().UTC().Truncate(time.Hour).AddDate(0, 0, -2) + + uploadRecord := NewDataSet(userId, data.DataSetTypeContinuous) + err = dataStore.CreateDataSet(ctx, uploadRecord) + Expect(err).ToNot(HaveOccurred()) - deviceData = NewDataSetData("smbg", deviceId, userId, datumTime, 5, 5) + opts := options.BulkWrite().SetOrdered(false) + deviceData = NewDataSetDataRealtime("smbg", userId, *uploadRecord.UploadID, deferredDatumTime, 10, false) _, err := dataCollection.BulkWrite(ctx, deviceData, opts) Expect(err).ToNot(HaveOccurred()) - summaries := make([]*types.Summary[types.BGMStats, *types.BGMStats], 1) + userSummary, err = bgmSummarizer.UpdateSummary(ctx, userId) + Expect(err).ToNot(HaveOccurred()) + Expect(userSummary).ToNot(BeNil()) + Expect(len(userSummary.Stats.Buckets)).To(Equal(10)) - // we don't use types.Create as we want to create a sparse jellyfish style upsert - summaries[0] = &types.Summary[types.BGMStats, *types.BGMStats]{ - Type: types.SummaryTypeBGM, - UserID: userId, - Dates: types.Dates{ - OutdatedSince: &time.Time{}, - HasOutdatedSince: true, - OutdatedReason: []string{"LEGACY_DATA_ADDED"}, - }, + for i := 0; i < len(userSummary.Stats.Buckets); i++ { + Expect(userSummary.Stats.Buckets[i].Data.RealtimeRecords).To(Equal(0)) + Expect(userSummary.Stats.Buckets[i].Data.DeferredRecords).To(Equal(2)) } + }) - count, err := bgmStore.CreateSummaries(ctx, summaries) + It("summary calc with non-continuous data", func() { + var userSummary *types.Summary[*types.BGMStats, types.BGMStats] + var deviceData []mongo.WriteModel + deferredDatumTime := time.Now().UTC().Truncate(time.Hour).AddDate(0, 0, -2) + + uploadRecord := NewDataSet(userId, data.DataSetTypeNormal) + err = dataStore.CreateDataSet(ctx, uploadRecord) + Expect(err).ToNot(HaveOccurred()) + + opts := options.BulkWrite().SetOrdered(false) + deviceData = NewDataSetDataRealtime("smbg", userId, *uploadRecord.UploadID, deferredDatumTime, 10, true) + _, err := dataCollection.BulkWrite(ctx, deviceData, opts) Expect(err).ToNot(HaveOccurred()) - Expect(count).To(Equal(1)) userSummary, err = bgmSummarizer.UpdateSummary(ctx, userId) Expect(err).ToNot(HaveOccurred()) Expect(userSummary).ToNot(BeNil()) - Expect(len(userSummary.Stats.Buckets)).To(Equal(5)) - Expect(*userSummary.Stats.Periods["7d"].TotalRecords).To(Equal(5)) - Expect(userSummary.Dates.LastUpdatedReason).To(ConsistOf("LEGACY_DATA_ADDED", types.OutdatedReasonSchemaMigration)) + Expect(len(userSummary.Stats.Buckets)).To(Equal(10)) + + for i := 0; i < len(userSummary.Stats.Buckets); i++ { + Expect(userSummary.Stats.Buckets[i].Data.RealtimeRecords).To(Equal(0)) + Expect(userSummary.Stats.Buckets[i].Data.DeferredRecords).To(Equal(0)) + } }) }) }) diff --git a/data/summary/types/bgm.go b/data/summary/types/bgm.go index 20db115dc..f97dcce3f 100644 --- a/data/summary/types/bgm.go +++ b/data/summary/types/bgm.go @@ -237,9 +237,10 @@ func (B *BGMBucketData) CalculateStats(r any, _ *time.Time, continuous bool) (bo B.TotalGlucose += normalizedValue if continuous { - B.DeferredRecords++ if dataRecord.CreatedTime.Sub(*dataRecord.Time).Hours() < 24 { B.RealtimeRecords++ + } else { + B.DeferredRecords++ } } diff --git a/data/summary/types/cgm.go b/data/summary/types/cgm.go index 1e8c972b1..538b566fd 100644 --- a/data/summary/types/cgm.go +++ b/data/summary/types/cgm.go @@ -307,9 +307,10 @@ func (B *CGMBucketData) CalculateStats(r any, lastRecordTime *time.Time, continu B.LastRecordDuration = duration if continuous { - B.DeferredRecords++ if dataRecord.CreatedTime.Sub(*dataRecord.Time).Hours() < 24 { B.RealtimeRecords++ + } else { + B.DeferredRecords++ } } diff --git a/data/summary/types/summary.go b/data/summary/types/summary.go index 62eb32a00..c1079226f 100644 --- a/data/summary/types/summary.go +++ b/data/summary/types/summary.go @@ -181,7 +181,7 @@ type StatsPt[T Stats] interface { ClearInvalidatedBuckets(earliestModified time.Time) time.Time } -type Summary[T Stats, A StatsPt[T]] struct { +type Summary[A StatsPt[T], T Stats] struct { ID primitive.ObjectID `json:"-" bson:"_id,omitempty"` Type string `json:"type" bson:"type"` UserID string `json:"userId" bson:"userId"` @@ -202,7 +202,7 @@ func NewConfig() Config { } } -func (s *Summary[T, A]) SetOutdated(reason string) { +func (s *Summary[A, T]) SetOutdated(reason string) { set := mapset.NewSet[string](reason) if len(s.Dates.OutdatedReason) > 0 { set.Append(s.Dates.OutdatedReason...) @@ -220,6 +220,12 @@ func (s *Summary[T, A]) SetOutdated(reason string) { } } +func (s *Summary[A, T]) SetNotOutdated() { + s.Dates.OutdatedReason = nil + s.Dates.OutdatedSince = nil + s.Dates.HasOutdatedSince = false +} + func NewDates() Dates { return Dates{ LastUpdatedDate: time.Time{}, @@ -240,8 +246,8 @@ func NewDates() Dates { } } -func Create[A StatsPt[T], T Stats](userId string) *Summary[T, A] { - s := new(Summary[T, A]) +func Create[A StatsPt[T], T Stats](userId string) *Summary[A, T] { + s := new(Summary[A, T]) s.UserID = userId s.Stats = new(T) s.Stats.Init() @@ -252,13 +258,13 @@ func Create[A StatsPt[T], T Stats](userId string) *Summary[T, A] { return s } -func GetTypeString[T Stats, A StatsPt[T]]() string { - s := new(Summary[T, A]) +func GetTypeString[A StatsPt[T], T Stats]() string { + s := new(Summary[A, T]) return s.Stats.GetType() } -func GetDeviceDataTypeString[T Stats, A StatsPt[T]]() string { - s := new(Summary[T, A]) +func GetDeviceDataTypeString[A StatsPt[T], T Stats]() string { + s := new(Summary[A, T]) return s.Stats.GetDeviceDataType() } @@ -266,7 +272,7 @@ type Period interface { BGMPeriod | CGMPeriod } -func AddBin[T BucketData, A BucketDataPt[T]](buckets *[]*Bucket[A, T], newBucket *Bucket[A, T]) error { +func AddBin[A BucketDataPt[T], T BucketData](buckets *[]*Bucket[A, T], newBucket *Bucket[A, T]) error { if len(*buckets) == 0 { *buckets = append(*buckets, newBucket) return nil diff --git a/data/summary/types/summary_bgm_test.go b/data/summary/types/summary_bgm_test.go index ab2de29ea..3f4a3371f 100644 --- a/data/summary/types/summary_bgm_test.go +++ b/data/summary/types/summary_bgm_test.go @@ -4,11 +4,14 @@ import ( "context" "fmt" dataStoreMongo "github.com/tidepool-org/platform/data/store/mongo" - storeStructuredMongoTest "github.com/tidepool-org/platform/store/structured/mongo/test" + + "github.com/tidepool-org/platform/data/types/blood/glucose/selfmonitored" "math/rand" "strconv" "time" + storeStructuredMongoTest "github.com/tidepool-org/platform/store/structured/mongo/test" + "go.mongodb.org/mongo-driver/mongo" "github.com/tidepool-org/platform/log" @@ -109,16 +112,16 @@ var _ = Describe("BGM Summary", func() { }) Context("Summary calculations requiring datasets", func() { - var userBGMSummary *types.Summary[types.BGMStats, *types.BGMStats] + var userBGMSummary *types.Summary[*types.BGMStats, types.BGMStats] var periodKeys = []string{"1d", "7d", "14d", "30d"} var periodInts = []int{1, 7, 14, 30} - var realtimeUploads = map[string]bool{} + var continuousUploads = map[string]bool{} Context("AddData Bucket Testing", func() { It("Returns correct hour count when given 2 weeks", func() { userBGMSummary = types.Create[*types.BGMStats](userId) dataSetBGMData = NewDataSetBGMDataAvg(deviceId, datumTime, 336, inTargetBloodGlucose) - err = types.AddData(&userBGMSummary.Stats.Buckets, dataSetBGMData, realtimeUploads) + err = types.AddData(&userBGMSummary.Stats.Buckets, dataSetBGMData, continuousUploads) Expect(err).ToNot(HaveOccurred()) Expect(len(userBGMSummary.Stats.Buckets)).To(Equal(336)) @@ -127,7 +130,7 @@ var _ = Describe("BGM Summary", func() { It("Returns correct hour count when given 1 week", func() { userBGMSummary = types.Create[*types.BGMStats](userId) dataSetBGMData = NewDataSetBGMDataAvg(deviceId, datumTime, 168, inTargetBloodGlucose) - err = types.AddData(&userBGMSummary.Stats.Buckets, dataSetBGMData, realtimeUploads) + err = types.AddData(&userBGMSummary.Stats.Buckets, dataSetBGMData, continuousUploads) Expect(err).ToNot(HaveOccurred()) Expect(len(userBGMSummary.Stats.Buckets)).To(Equal(168)) @@ -136,7 +139,7 @@ var _ = Describe("BGM Summary", func() { It("Returns correct hour count when given 3 weeks", func() { userBGMSummary = types.Create[*types.BGMStats](userId) dataSetBGMData = NewDataSetBGMDataAvg(deviceId, datumTime, 504, inTargetBloodGlucose) - err = types.AddData(&userBGMSummary.Stats.Buckets, dataSetBGMData, realtimeUploads) + err = types.AddData(&userBGMSummary.Stats.Buckets, dataSetBGMData, continuousUploads) Expect(err).ToNot(HaveOccurred()) Expect(len(userBGMSummary.Stats.Buckets)).To(Equal(504)) @@ -155,7 +158,7 @@ var _ = Describe("BGM Summary", func() { doubledBGMData[i*2] = dataSetBGMData[i] doubledBGMData[i*2+1] = dataSetBGMDataTwo[i] } - err = types.AddData(&userBGMSummary.Stats.Buckets, dataSetBGMData, realtimeUploads) + err = types.AddData(&userBGMSummary.Stats.Buckets, dataSetBGMData, continuousUploads) Expect(err).ToNot(HaveOccurred()) Expect(len(userBGMSummary.Stats.Buckets)).To(Equal(24)) @@ -167,11 +170,11 @@ var _ = Describe("BGM Summary", func() { userBGMSummary = types.Create[*types.BGMStats](userId) dataSetBGMData = NewDataSetBGMDataAvg(deviceId, datumTime, 24, inTargetBloodGlucose) - err = types.AddData(&userBGMSummary.Stats.Buckets, dataSetBGMData, realtimeUploads) + err = types.AddData(&userBGMSummary.Stats.Buckets, dataSetBGMData, continuousUploads) Expect(err).ToNot(HaveOccurred()) dataSetBGMData = NewDataSetBGMDataAvg(deviceId, datumTime.Add(15*time.Second), 24, inTargetBloodGlucose) - err = types.AddData(&userBGMSummary.Stats.Buckets, dataSetBGMData, realtimeUploads) + err = types.AddData(&userBGMSummary.Stats.Buckets, dataSetBGMData, continuousUploads) Expect(err).ToNot(HaveOccurred()) Expect(len(userBGMSummary.Stats.Buckets)).To(Equal(24)) @@ -187,7 +190,7 @@ var _ = Describe("BGM Summary", func() { userBGMSummary = types.Create[*types.BGMStats](userId) dataSetBGMData = NewDataSetBGMDataAvg(deviceId, datumTime, 168, inTargetBloodGlucose) - err = types.AddData(&userBGMSummary.Stats.Buckets, dataSetBGMData, realtimeUploads) + err = types.AddData(&userBGMSummary.Stats.Buckets, dataSetBGMData, continuousUploads) Expect(err).ToNot(HaveOccurred()) Expect(len(userBGMSummary.Stats.Buckets)).To(Equal(168)) @@ -202,7 +205,7 @@ var _ = Describe("BGM Summary", func() { } dataSetBGMData = NewDataSetBGMDataAvg(deviceId, secondDatumTime, 168, secondRequestedAvgGlucose) - err = types.AddData(&userBGMSummary.Stats.Buckets, dataSetBGMData, realtimeUploads) + err = types.AddData(&userBGMSummary.Stats.Buckets, dataSetBGMData, continuousUploads) Expect(err).ToNot(HaveOccurred()) Expect(len(userBGMSummary.Stats.Buckets)).To(Equal(528)) // 22 days @@ -230,7 +233,7 @@ var _ = Describe("BGM Summary", func() { userBGMSummary = types.Create[*types.BGMStats](userId) dataSetBGMData = NewDataSetBGMDataAvg(deviceId, datumTime, 144, inTargetBloodGlucose) - err = types.AddData(&userBGMSummary.Stats.Buckets, dataSetBGMData, realtimeUploads) + err = types.AddData(&userBGMSummary.Stats.Buckets, dataSetBGMData, continuousUploads) Expect(err).ToNot(HaveOccurred()) Expect(len(userBGMSummary.Stats.Buckets)).To(Equal(144)) @@ -239,8 +242,7 @@ var _ = Describe("BGM Summary", func() { incrementalDatumTime = datumTime.Add(time.Duration(i) * time.Hour) dataSetBGMData = NewDataSetBGMDataAvg(deviceId, incrementalDatumTime, 1, float64(i)) - err = types.AddData(&userBGMSummary.Stats.Buckets, dataSetBGMData, realtimeUploads) - + err = types.AddData(&userBGMSummary.Stats.Buckets, dataSetBGMData, continuousUploads) Expect(err).ToNot(HaveOccurred()) Expect(len(userBGMSummary.Stats.Buckets)).To(Equal(144 + i)) Expect(userBGMSummary.Stats.Buckets[i].Data.TotalRecords).To(Equal(6)) @@ -272,8 +274,7 @@ var _ = Describe("BGM Summary", func() { dataSetBGMData = append(dataSetBGMDataOne, dataSetBGMDataTwo...) dataSetBGMData = append(dataSetBGMData, dataSetBGMDataThree...) - err = types.AddData(&userBGMSummary.Stats.Buckets, dataSetBGMData, realtimeUploads) - + err = types.AddData(&userBGMSummary.Stats.Buckets, dataSetBGMData, continuousUploads) Expect(err).ToNot(HaveOccurred()) Expect(len(userBGMSummary.Stats.Buckets)).To(Equal(72)) @@ -306,15 +307,15 @@ var _ = Describe("BGM Summary", func() { dataSetBGMDataFive := NewDataSetBGMDataRanges(deviceId, datumTime, 1, veryHighRange) // we do this a different way (multiple calls) than the last unit test for extra pattern coverage - err = types.AddData(&userBGMSummary.Stats.Buckets, dataSetBGMDataOne, realtimeUploads) + err = types.AddData(&userBGMSummary.Stats.Buckets, dataSetBGMDataOne, continuousUploads) Expect(err).ToNot(HaveOccurred()) - err = types.AddData(&userBGMSummary.Stats.Buckets, dataSetBGMDataTwo, realtimeUploads) + err = types.AddData(&userBGMSummary.Stats.Buckets, dataSetBGMDataTwo, continuousUploads) Expect(err).ToNot(HaveOccurred()) - err = types.AddData(&userBGMSummary.Stats.Buckets, dataSetBGMDataThree, realtimeUploads) + err = types.AddData(&userBGMSummary.Stats.Buckets, dataSetBGMDataThree, continuousUploads) Expect(err).ToNot(HaveOccurred()) - err = types.AddData(&userBGMSummary.Stats.Buckets, dataSetBGMDataFour, realtimeUploads) + err = types.AddData(&userBGMSummary.Stats.Buckets, dataSetBGMDataFour, continuousUploads) Expect(err).ToNot(HaveOccurred()) - err = types.AddData(&userBGMSummary.Stats.Buckets, dataSetBGMDataFive, realtimeUploads) + err = types.AddData(&userBGMSummary.Stats.Buckets, dataSetBGMDataFive, continuousUploads) Expect(err).ToNot(HaveOccurred()) Expect(len(userBGMSummary.Stats.Buckets)).To(Equal(5)) @@ -364,6 +365,81 @@ var _ = Describe("BGM Summary", func() { Expect(userBGMSummary.Stats.Buckets[4].Data.HighRecords).To(Equal(0)) Expect(userBGMSummary.Stats.Buckets[4].Data.VeryHighRecords).To(Equal(5)) }) + + It("Returns correct Realtime and Deferred record stats with realtime data", func() { + userBGMSummary = types.Create[*types.BGMStats](userId) + realtimeDatumTime := time.Now().UTC().Truncate(time.Hour) + dataSetBGMData = NewDataSetDataRealtime(selfmonitored.Type, realtimeDatumTime, 10, true) + + // flag upload as continuous + continuousUploads[*dataSetBGMData[0].UploadID] = true + + err = types.AddData(&userBGMSummary.Stats.Buckets, dataSetBGMData, continuousUploads) + + Expect(err).ToNot(HaveOccurred()) + Expect(len(userBGMSummary.Stats.Buckets)).To(Equal(10)) + + for i := 0; i < len(userBGMSummary.Stats.Buckets); i++ { + Expect(userBGMSummary.Stats.Buckets[i].Data.RealtimeRecords).To(Equal(2)) + Expect(userBGMSummary.Stats.Buckets[i].Data.DeferredRecords).To(Equal(0)) + } + }) + + It("Returns correct Realtime and Deferred record stats with deferred data", func() { + userBGMSummary = types.Create[*types.BGMStats](userId) + + // by default non-realtime datums will be made with time.now createdTime, so we generate 2 day old data + deferredDatumTime := time.Now().UTC().Truncate(time.Hour).AddDate(0, 0, -2) + dataSetBGMData = NewDataSetDataRealtime(selfmonitored.Type, deferredDatumTime, 10, false) + + // flag upload as continuous + continuousUploads[*dataSetBGMData[0].UploadID] = true + + err = types.AddData(&userBGMSummary.Stats.Buckets, dataSetBGMData, continuousUploads) + + Expect(err).ToNot(HaveOccurred()) + Expect(len(userBGMSummary.Stats.Buckets)).To(Equal(10)) + + for i := 0; i < len(userBGMSummary.Stats.Buckets); i++ { + Expect(userBGMSummary.Stats.Buckets[i].Data.RealtimeRecords).To(Equal(0)) + Expect(userBGMSummary.Stats.Buckets[i].Data.DeferredRecords).To(Equal(2)) + } + }) + + It("Returns correct Realtime and Deferred record stats with false continuous flagged data", func() { + userBGMSummary = types.Create[*types.BGMStats](userId) + realtimeDatumTime := time.Now().UTC().Truncate(time.Hour) + dataSetBGMData = NewDataSetDataRealtime(selfmonitored.Type, realtimeDatumTime, 10, true) + + // flag upload as not continuous + continuousUploads[*dataSetBGMData[0].UploadID] = false + + err = types.AddData(&userBGMSummary.Stats.Buckets, dataSetBGMData, continuousUploads) + + Expect(err).ToNot(HaveOccurred()) + Expect(len(userBGMSummary.Stats.Buckets)).To(Equal(10)) + + for i := 0; i < len(userBGMSummary.Stats.Buckets); i++ { + Expect(userBGMSummary.Stats.Buckets[i].Data.RealtimeRecords).To(Equal(0)) + Expect(userBGMSummary.Stats.Buckets[i].Data.DeferredRecords).To(Equal(0)) + } + }) + + It("Returns correct Realtime and Deferred record stats with non flagged data", func() { + userBGMSummary = types.Create[*types.BGMStats](userId) + realtimeDatumTime := time.Now().UTC().Truncate(time.Hour) + dataSetBGMData = NewDataSetDataRealtime(selfmonitored.Type, realtimeDatumTime, 10, true) + + err = types.AddData(&userBGMSummary.Stats.Buckets, dataSetBGMData, continuousUploads) + + Expect(err).ToNot(HaveOccurred()) + Expect(len(userBGMSummary.Stats.Buckets)).To(Equal(10)) + + for i := 0; i < len(userBGMSummary.Stats.Buckets); i++ { + Expect(userBGMSummary.Stats.Buckets[i].Data.RealtimeRecords).To(Equal(0)) + Expect(userBGMSummary.Stats.Buckets[i].Data.DeferredRecords).To(Equal(0)) + } + }) }) Context("CalculateDelta", func() { @@ -967,7 +1043,7 @@ var _ = Describe("BGM Summary", func() { It("trims the all buckets with data beyond the beginning of the buckets", func() { var dataSetCGMDataCursor types.DeviceDataCursor userBGMSummary = types.Create[*types.BGMStats](userId) - dataSetBGMData = NewDataSetCGMDataAvg(deviceId, datumTime, 10, inTargetBloodGlucose) + dataSetBGMData = NewDataSetCGMDataAvg(datumTime, 10, inTargetBloodGlucose) dataSetCGMDataCursor, err = mongo.NewCursorFromDocuments(ConvertToIntArray(dataSetBGMData), nil, nil) err = userBGMSummary.Stats.Update(ctx, dataSetCGMDataCursor, dataStore) diff --git a/data/summary/types/summary_cgm_test.go b/data/summary/types/summary_cgm_test.go index 9a8e2cdf6..4a0f5b011 100644 --- a/data/summary/types/summary_cgm_test.go +++ b/data/summary/types/summary_cgm_test.go @@ -140,7 +140,7 @@ var _ = Describe("CGM Summary", func() { }) Context("Summary calculations requiring datasets", func() { - var userCGMSummary *types.Summary[types.CGMStats, *types.CGMStats] + var userCGMSummary *types.Summary[*types.CGMStats, types.CGMStats] var periodKeys = []string{"1d", "7d", "14d", "30d"} var periodInts = []int{1, 7, 14, 30} var continuousUploads = map[string]bool{} @@ -512,7 +512,7 @@ var _ = Describe("CGM Summary", func() { It("Returns correct Realtime and Deferred record stats with realtime data", func() { userCGMSummary = types.Create[*types.CGMStats](userId) - realtimeDatumTime := time.Now().UTC() + realtimeDatumTime := time.Now().UTC().Truncate(time.Hour) dataSetCGMData = NewDataSetDataRealtime(continuous.Type, realtimeDatumTime, 10, true) // flag upload as continuous @@ -533,7 +533,7 @@ var _ = Describe("CGM Summary", func() { userCGMSummary = types.Create[*types.CGMStats](userId) // by default non-realtime datums will be made with time.now createdTime, so we generate 2 day old data - deferredDatumTime := time.Now().UTC().AddDate(0, 0, -2) + deferredDatumTime := time.Now().UTC().Truncate(time.Hour).AddDate(0, 0, -2) dataSetCGMData = NewDataSetDataRealtime(continuous.Type, deferredDatumTime, 10, false) // flag upload as continuous @@ -550,9 +550,40 @@ var _ = Describe("CGM Summary", func() { } }) - // todo test false continuousUploads - // todo missing continuousUploads + It("Returns correct Realtime and Deferred record stats with false continuous flagged data", func() { + userCGMSummary = types.Create[*types.CGMStats](userId) + realtimeDatumTime := time.Now().UTC().Truncate(time.Hour) + dataSetCGMData = NewDataSetDataRealtime(continuous.Type, realtimeDatumTime, 10, true) + + // flag upload as not continuous + continuousUploads[*dataSetCGMData[0].UploadID] = false + + err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMData, continuousUploads) + + Expect(err).ToNot(HaveOccurred()) + Expect(len(userCGMSummary.Stats.Buckets)).To(Equal(10)) + + for i := 0; i < len(userCGMSummary.Stats.Buckets); i++ { + Expect(userCGMSummary.Stats.Buckets[i].Data.RealtimeRecords).To(Equal(0)) + Expect(userCGMSummary.Stats.Buckets[i].Data.DeferredRecords).To(Equal(0)) + } + }) + It("Returns correct Realtime and Deferred record stats with non flagged data", func() { + userCGMSummary = types.Create[*types.CGMStats](userId) + realtimeDatumTime := time.Now().UTC().Truncate(time.Hour) + dataSetCGMData = NewDataSetDataRealtime(continuous.Type, realtimeDatumTime, 10, true) + + err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMData, continuousUploads) + + Expect(err).ToNot(HaveOccurred()) + Expect(len(userCGMSummary.Stats.Buckets)).To(Equal(10)) + + for i := 0; i < len(userCGMSummary.Stats.Buckets); i++ { + Expect(userCGMSummary.Stats.Buckets[i].Data.RealtimeRecords).To(Equal(0)) + Expect(userCGMSummary.Stats.Buckets[i].Data.DeferredRecords).To(Equal(0)) + } + }) }) Context("CalculateDelta", func() { diff --git a/data/summary/types/test/summary.go b/data/summary/types/test/summary.go index 64c09eab6..1426af9f6 100644 --- a/data/summary/types/test/summary.go +++ b/data/summary/types/test/summary.go @@ -6,8 +6,8 @@ import ( "github.com/tidepool-org/platform/test" ) -func RandomCGMSummary(userId string) *types.Summary[types.CGMStats, *types.CGMStats] { - datum := types.Summary[types.CGMStats, *types.CGMStats]{ +func RandomCGMSummary(userId string) *types.Summary[*types.CGMStats, types.CGMStats] { + datum := types.Summary[*types.CGMStats, types.CGMStats]{ UserID: userId, Type: "cgm", Config: types.Config{ @@ -246,8 +246,8 @@ func RandomCGMSummary(userId string) *types.Summary[types.CGMStats, *types.CGMSt return &datum } -func RandomBGMSummary(userId string) *types.Summary[types.BGMStats, *types.BGMStats] { - datum := types.Summary[types.BGMStats, *types.BGMStats]{ +func RandomBGMSummary(userId string) *types.Summary[*types.BGMStats, types.BGMStats] { + datum := types.Summary[*types.BGMStats, types.BGMStats]{ UserID: userId, Type: "bgm", Config: types.Config{ diff --git a/data/summary/types/util.go b/data/summary/types/util.go index b06f42c39..549a765bb 100644 --- a/data/summary/types/util.go +++ b/data/summary/types/util.go @@ -10,25 +10,6 @@ import ( glucoseDatum "github.com/tidepool-org/platform/data/types/blood/glucose" ) -func SkipUntil[T RecordTypes, A RecordTypesPt[T]](date time.Time, userData []A) ([]A, error) { - var skip int - for i := 0; i < len(userData); i++ { - recordTime := userData[i].GetTime() - - if recordTime.Before(date) { - skip = i + 1 - } else { - break - } - } - - if skip > 0 { - userData = userData[skip:] - } - - return userData, nil -} - // GetDuration assumes all except freestyle is 5 minutes func GetDuration(dataSet *glucoseDatum.Glucose) int { if dataSet.DeviceID != nil { diff --git a/data/types/upload/upload.go b/data/types/upload/upload.go index 0ca68ac88..9fb9bd2ab 100644 --- a/data/types/upload/upload.go +++ b/data/types/upload/upload.go @@ -217,5 +217,5 @@ func (u *Upload) HasDeduplicatorNameMatch(name string) bool { } func (u *Upload) IsContinuous() bool { - return u != nil && u.Type == data.DataSetTypeContinuous + return u != nil && *u.DataSetType == data.DataSetTypeContinuous } From dec7a4c0d34f8c763a1a26319cb6f2a3d2885a75 Mon Sep 17 00:00:00 2001 From: Alexander Diana Date: Thu, 14 Mar 2024 01:51:42 +0000 Subject: [PATCH 07/34] add unit tests for realtime users report, fix misc bugs --- data/service/api/v1/summary.go | 2 +- data/summary/store/store.go | 16 ++- data/summary/store/store_test.go | 196 +++++++++++++++++++++++++++++ data/summary/summary.go | 4 +- data/summary/types/bgm.go | 14 +++ data/summary/types/cgm.go | 12 ++ data/summary/types/test/summary.go | 101 +++++++++++++++ data/types/upload/upload.go | 2 +- 8 files changed, 341 insertions(+), 6 deletions(-) diff --git a/data/service/api/v1/summary.go b/data/service/api/v1/summary.go index 9cd387c5d..40076a0cf 100644 --- a/data/service/api/v1/summary.go +++ b/data/service/api/v1/summary.go @@ -158,7 +158,7 @@ func GetPatientsWithRealtimeData(dataServiceContext dataService.Context) { } summaryManager := dataServiceContext.SummarizerRegistry().TypelessSummarizer - userIdsRealtimeDays, err := summaryManager.GetPatientsWithRealtimeData(ctx, userIds, startTime, endTime) + userIdsRealtimeDays, err := summaryManager.GetRealtimeDaysForUsers(ctx, userIds, startTime, endTime) if err != nil { responder.Error(http.StatusInternalServerError, err) return diff --git a/data/summary/store/store.go b/data/summary/store/store.go index bcefc7b9a..d422f5b1c 100644 --- a/data/summary/store/store.go +++ b/data/summary/store/store.go @@ -109,6 +109,7 @@ func GetNumberOfDaysWithRealtimeData(a, b []*types.Bucket[*types.CGMBucketData, for i := 0; i < combinedLength; i++ { indexA := i - startA indexB := i - startB + //fmt.Println("index A", indexA, "realtime records", a[indexA].Data.RealtimeRecords) // If the A list has a flagged item at this time, count it and advance to the next day. if indexA >= 0 && indexA < len(a) && a[indexA].Data.RealtimeRecords > 0 { @@ -142,7 +143,7 @@ func GetNumberOfDaysWithRealtimeData(a, b []*types.Bucket[*types.CGMBucketData, return count } -func (r *TypelessRepo) GetPatientsWithRealtimeData(ctx context.Context, userIds []string, startTime time.Time, endTime time.Time) (map[string]int, error) { +func (r *TypelessRepo) GetRealtimeDaysForUsers(ctx context.Context, userIds []string, startTime time.Time, endTime time.Time) (map[string]int, error) { if ctx == nil { return nil, errors.New("context is missing") } @@ -177,7 +178,7 @@ func (r *TypelessRepo) GetPatientsWithRealtimeData(ctx context.Context, userIds opts := options.Find() opts.SetProjection(bson.M{"stats.buckets": 1}) - var realtimeUsers map[string]int + realtimeUsers := make(map[string]int) for _, userId := range userIds { selector := bson.M{ @@ -200,8 +201,19 @@ func (r *TypelessRepo) GetPatientsWithRealtimeData(ctx context.Context, userIds var buckets [][]*types.Bucket[*types.CGMBucketData, types.CGMBucketData] for i := 0; i < len(userSummaries); i++ { if len(userSummaries[i].Stats.Buckets) > 0 { + startOffset := int(startTime.Sub(userSummaries[i].Stats.Buckets[0].Date).Hours()) + // cap to start of list + if startOffset < 0 { + startOffset = 0 + } + endOffset := int(endTime.Sub(userSummaries[i].Stats.Buckets[0].Date).Hours()) + // cap to end of list + if endOffset > len(userSummaries[i].Stats.Buckets) { + endOffset = len(userSummaries[i].Stats.Buckets) + } + buckets = append(buckets, userSummaries[i].Stats.Buckets[startOffset:endOffset]) } } diff --git a/data/summary/store/store_test.go b/data/summary/store/store_test.go index 36f6797a3..9d92a7ef7 100644 --- a/data/summary/store/store_test.go +++ b/data/summary/store/store_test.go @@ -1110,6 +1110,202 @@ var _ = Describe("Summary Stats Mongo", func() { }) }) + + Context("With untyped store", func() { + var typelessStore *dataStoreSummary.TypelessRepo + + var cgmStore *dataStoreSummary.Repo[*types.CGMStats, types.CGMStats] + var bgmStore *dataStoreSummary.Repo[*types.BGMStats, types.BGMStats] + + BeforeEach(func() { + ctx = log.NewContextWithLogger(context.Background(), logger) + typelessStore = dataStoreSummary.NewTypeless(summaryRepository) + + // we aren't testing these, but we need them for easy setup + cgmStore = dataStoreSummary.New[*types.CGMStats](summaryRepository) + bgmStore = dataStoreSummary.New[*types.BGMStats](summaryRepository) + }) + + Context("GetPatientsWithRealtimeData", func() { + + It("with some realtime users", func() { + endTime := time.Now().UTC().Truncate(time.Hour * 24) + startTime := endTime.AddDate(0, 0, -30) + userIds := make([]string, 5) + userSummaries := make([]*types.Summary[*types.CGMStats, types.CGMStats], 5) + + startingDays := 14 + + for i := 0; i < 5; i++ { + userIds[i] = userTest.RandomID() + userSummaries[i] = test.NewRealtimeCGMSummary(userIds[i], startTime, endTime, startingDays+i) + } + + var count int + count, err = cgmStore.CreateSummaries(ctx, userSummaries) + Expect(err).ToNot(HaveOccurred()) + Expect(count).To(Equal(len(userIds))) + + // remove one userId to ensure we aren't accidentally grabbing everyone + trimmedUserIds := userIds[:len(userIds)-1] + + var list map[string]int + list, err = typelessStore.GetRealtimeDaysForUsers(ctx, trimmedUserIds, startTime, endTime) + Expect(err).ToNot(HaveOccurred()) + Expect(list).To(HaveLen(len(trimmedUserIds))) + + // make sure days match input + for i := 0; i < 4; i++ { + Expect(list[userIds[i]]).To(Equal(startingDays + i)) + } + }) + + It("with realtime user with both bgm and cgm", func() { + endTime := time.Now().UTC().Truncate(time.Hour * 24) + startTime := endTime.AddDate(0, 0, -30) + userIds := make([]string, 5) + userCgmSummaries := make([]*types.Summary[*types.CGMStats, types.CGMStats], 5) + userBgmSummaries := make([]*types.Summary[*types.BGMStats, types.BGMStats], 5) + + startingDays := 14 + + for i := 0; i < 5; i++ { + userIds[i] = userTest.RandomID() + userCgmSummaries[i] = test.NewRealtimeCGMSummary(userIds[i], startTime, endTime, startingDays+i) + userBgmSummaries[i] = test.NewRealtimeBGMSummary(userIds[i], startTime, endTime, startingDays+i) + } + + var count int + count, err = cgmStore.CreateSummaries(ctx, userCgmSummaries) + Expect(err).ToNot(HaveOccurred()) + Expect(count).To(Equal(len(userIds))) + + count, err = bgmStore.CreateSummaries(ctx, userBgmSummaries) + Expect(err).ToNot(HaveOccurred()) + Expect(count).To(Equal(len(userIds))) + + // remove one userId to ensure we aren't accidentally grabbing everyone + trimmedUserIds := userIds[:len(userIds)-1] + + var list map[string]int + list, err = typelessStore.GetRealtimeDaysForUsers(ctx, trimmedUserIds, startTime, endTime) + Expect(err).ToNot(HaveOccurred()) + Expect(list).To(HaveLen(len(trimmedUserIds))) + + // make sure days match input + for i := 0; i < 4; i++ { + Expect(list[userIds[i]]).To(Equal(startingDays + i)) + } + }) + + It("with realtime user combined from bgm and cgm", func() { + endTime := time.Now().UTC().Truncate(time.Hour * 24) + startTime := endTime.AddDate(0, 0, -30) + userIds := make([]string, 5) + userCgmSummaries := make([]*types.Summary[*types.CGMStats, types.CGMStats], 5) + userBgmSummaries := make([]*types.Summary[*types.BGMStats, types.BGMStats], 5) + + startingDays := 7 + + for i := 0; i < 5; i++ { + userIds[i] = userTest.RandomID() + userCgmSummaries[i] = test.NewRealtimeCGMSummary(userIds[i], startTime, endTime, startingDays+i) + userBgmSummaries[i] = test.NewRealtimeBGMSummary(userIds[i], startTime.AddDate(0, 0, 10), endTime.AddDate(0, 0, 10), startingDays+i) + } + + var count int + count, err = cgmStore.CreateSummaries(ctx, userCgmSummaries) + Expect(err).ToNot(HaveOccurred()) + Expect(count).To(Equal(len(userIds))) + + count, err = bgmStore.CreateSummaries(ctx, userBgmSummaries) + Expect(err).ToNot(HaveOccurred()) + Expect(count).To(Equal(len(userIds))) + + // remove one userId to ensure we aren't accidentally grabbing everyone + trimmedUserIds := userIds[:len(userIds)-1] + + var list map[string]int + list, err = typelessStore.GetRealtimeDaysForUsers(ctx, trimmedUserIds, startTime, endTime) + Expect(err).ToNot(HaveOccurred()) + Expect(list).To(HaveLen(len(trimmedUserIds))) + + // make sure days match input + for i := 0; i < 4; i++ { + Expect(list[userIds[i]]).To(Equal((startingDays + i) * 2)) + } + }) + + It("with no realtime user", func() { + endTime := time.Now().UTC().Truncate(time.Hour * 24) + startTime := endTime.AddDate(0, 0, -30) + userIds := make([]string, 5) + userCgmSummaries := make([]*types.Summary[*types.CGMStats, types.CGMStats], 5) + userBgmSummaries := make([]*types.Summary[*types.BGMStats, types.BGMStats], 5) + + for i := 0; i < 5; i++ { + userIds[i] = userTest.RandomID() + userCgmSummaries[i] = test.NewRealtimeCGMSummary(userIds[i], startTime, endTime, 0) + userBgmSummaries[i] = test.NewRealtimeBGMSummary(userIds[i], startTime.AddDate(0, 0, 10), endTime.AddDate(0, 0, 10), 0) + } + + var count int + count, err = cgmStore.CreateSummaries(ctx, userCgmSummaries) + Expect(err).ToNot(HaveOccurred()) + Expect(count).To(Equal(len(userIds))) + + count, err = bgmStore.CreateSummaries(ctx, userBgmSummaries) + Expect(err).ToNot(HaveOccurred()) + Expect(count).To(Equal(len(userIds))) + + // remove one userId to ensure we aren't accidentally grabbing everyone + trimmedUserIds := userIds[:len(userIds)-1] + + var list map[string]int + list, err = typelessStore.GetRealtimeDaysForUsers(ctx, trimmedUserIds, startTime, endTime) + Expect(err).ToNot(HaveOccurred()) + Expect(list).To(HaveLen(len(trimmedUserIds))) + + // make sure days match input + for i := 0; i < 4; i++ { + Expect(list[userIds[i]]).To(Equal(0)) + } + }) + + It("with 60 days of buckets", func() { + endTime := time.Now().UTC().Truncate(time.Hour * 24) + startTime := endTime.AddDate(0, 0, -60) + userIds := make([]string, 5) + userCgmSummaries := make([]*types.Summary[*types.CGMStats, types.CGMStats], 5) + + startingDays := 30 + 14 + + for i := 0; i < 5; i++ { + userIds[i] = userTest.RandomID() + userCgmSummaries[i] = test.NewRealtimeCGMSummary(userIds[i], startTime, endTime, startingDays+i) + } + + var count int + count, err = cgmStore.CreateSummaries(ctx, userCgmSummaries) + Expect(err).ToNot(HaveOccurred()) + Expect(count).To(Equal(len(userIds))) + + // remove one userId to ensure we aren't accidentally grabbing everyone + trimmedUserIds := userIds[:len(userIds)-1] + + var list map[string]int + list, err = typelessStore.GetRealtimeDaysForUsers(ctx, trimmedUserIds, startTime.AddDate(0, 0, 30), endTime) + Expect(err).ToNot(HaveOccurred()) + Expect(list).To(HaveLen(len(trimmedUserIds))) + + // make sure days match input + for i := 0; i < 4; i++ { + Expect(list[userIds[i]]).To(Equal(startingDays + i - 30)) + } + }) + + }) + }) }) }) }) diff --git a/data/summary/summary.go b/data/summary/summary.go index 29c13d9f6..3bc16f59c 100644 --- a/data/summary/summary.go +++ b/data/summary/summary.go @@ -85,8 +85,8 @@ func NewTypelessSummarizer(collection *storeStructuredMongo.Repository) *Typeles } } -func (ts *TypelessSummarizer) GetPatientsWithRealtimeData(ctx context.Context, userIds []string, startTime time.Time, endTime time.Time) (map[string]int, error) { - return ts.summaries.GetPatientsWithRealtimeData(ctx, userIds, startTime, endTime) +func (ts *TypelessSummarizer) GetRealtimeDaysForUsers(ctx context.Context, userIds []string, startTime time.Time, endTime time.Time) (map[string]int, error) { + return ts.summaries.GetRealtimeDaysForUsers(ctx, userIds, startTime, endTime) } func (ts *TypelessSummarizer) DeleteSummaries(ctx context.Context, userId string) error { diff --git a/data/summary/types/bgm.go b/data/summary/types/bgm.go index f97dcce3f..bb44caa20 100644 --- a/data/summary/types/bgm.go +++ b/data/summary/types/bgm.go @@ -103,6 +103,18 @@ type BGMPeriod struct { HasTimeInAnyHighRecords bool `json:"hasTimeInAnyHighRecords" bson:"hasTimeInAnyHighRecords"` TimeInAnyHighRecords *int `json:"timeInAnyHighRecords" bson:"timeInAnyHighRecords"` TimeInAnyHighRecordsDelta *int `json:"timeInAnyHighRecordsDelta" bson:"timeInAnyHighRecordsDelta"` + + RealtimeRecords *int `json:"realtimeRecords" bson:"realtimeRecords"` + RealtimeRecordsDelta *int `json:"realtimeRecordsDelta" bson:"realtimeRecordsDelta"` + + RealtimePercent *float64 `json:"realtimeRecordsPercent" bson:"realtimeRecordsPercent"` + RealtimePercentDelta *float64 `json:"realtimeRecordsPercentDelta" bson:"realtimeRecordsPercentDelta"` + + DeferredRecords *int `json:"deferredRecords" bson:"deferredRecords"` + DeferredRecordsDelta *int `json:"deferredRecordsDelta" bson:"deferredRecordsDelta"` + + DeferredPercent *int `json:"deferredPercent" bson:"deferredPercent"` + DeferredPercentDelta *int `json:"deferredPercentDelta" bson:"deferredPercentDelta"` } type BGMPeriods map[string]*BGMPeriod @@ -265,6 +277,8 @@ func (s *BGMStats) CalculateSummary() { nextStopPoint++ } + // TODO add realtime/deferred + totalStats.TargetRecords += s.Buckets[currentIndex].Data.TargetRecords totalStats.LowRecords += s.Buckets[currentIndex].Data.LowRecords totalStats.VeryLowRecords += s.Buckets[currentIndex].Data.VeryLowRecords diff --git a/data/summary/types/cgm.go b/data/summary/types/cgm.go index 538b566fd..30a507e58 100644 --- a/data/summary/types/cgm.go +++ b/data/summary/types/cgm.go @@ -158,6 +158,18 @@ type CGMPeriod struct { HasTimeInAnyHighRecords bool `json:"hasTimeInAnyHighRecords" bson:"hasTimeInAnyHighRecords"` TimeInAnyHighRecords *int `json:"timeInAnyHighRecords" bson:"timeInAnyHighRecords"` TimeInAnyHighRecordsDelta *int `json:"timeInAnyHighRecordsDelta" bson:"timeInAnyHighRecordsDelta"` + + RealtimeRecords *int `json:"realtimeRecords" bson:"realtimeRecords"` + RealtimeRecordsDelta *int `json:"realtimeRecordsDelta" bson:"realtimeRecordsDelta"` + + RealtimePercent *float64 `json:"realtimeRecordsPercent" bson:"realtimeRecordsPercent"` + RealtimePercentDelta *float64 `json:"realtimeRecordsPercentDelta" bson:"realtimeRecordsPercentDelta"` + + DeferredRecords *int `json:"deferredRecords" bson:"deferredRecords"` + DeferredRecordsDelta *int `json:"deferredRecordsDelta" bson:"deferredRecordsDelta"` + + DeferredPercent *int `json:"deferredPercent" bson:"deferredPercent"` + DeferredPercentDelta *int `json:"deferredPercentDelta" bson:"deferredPercentDelta"` } type CGMPeriods map[string]*CGMPeriod diff --git a/data/summary/types/test/summary.go b/data/summary/types/test/summary.go index 1426af9f6..a9dcc72aa 100644 --- a/data/summary/types/test/summary.go +++ b/data/summary/types/test/summary.go @@ -4,6 +4,7 @@ import ( "github.com/tidepool-org/platform/data/summary/types" "github.com/tidepool-org/platform/pointer" "github.com/tidepool-org/platform/test" + "time" ) func RandomCGMSummary(userId string) *types.Summary[*types.CGMStats, types.CGMStats] { @@ -406,3 +407,103 @@ func RandomBGMSummary(userId string) *types.Summary[*types.BGMStats, types.BGMSt return &datum } + +func NewRealtimeCGMSummary(userId string, startTime time.Time, endTime time.Time, realtimeDays int) *types.Summary[*types.CGMStats, types.CGMStats] { + totalHours := int(endTime.Sub(startTime).Hours()) + lastData := endTime.Add(59 * time.Minute) + + datum := types.Summary[*types.CGMStats, types.CGMStats]{ + UserID: userId, + Type: types.SummaryTypeCGM, + Dates: types.Dates{ + FirstData: &startTime, + LastData: &lastData, + }, + Stats: &types.CGMStats{ + Buckets: make([]*types.Bucket[*types.CGMBucketData, types.CGMBucketData], totalHours), + }, + } + + var yesterday time.Time + var today time.Time + var bucketDate time.Time + var flaggedDays int + var recordCount int + + for i := 0; i < len(datum.Stats.Buckets); i++ { + bucketDate = startTime.Add(time.Duration(i) * time.Hour) + today = bucketDate.Truncate(time.Hour * 24) + + if flaggedDays < realtimeDays { + recordCount = test.RandomIntFromRange(1, 12) + + if today.After(yesterday) { + flaggedDays++ + yesterday = today + } + + } else { + recordCount = 0 + } + + datum.Stats.Buckets[i] = &types.Bucket[*types.CGMBucketData, types.CGMBucketData]{ + Date: bucketDate, + Data: &types.CGMBucketData{ + RealtimeRecords: recordCount, + DeferredRecords: recordCount, + }, + } + } + + return &datum +} + +func NewRealtimeBGMSummary(userId string, startTime time.Time, endTime time.Time, realtimeDays int) *types.Summary[*types.BGMStats, types.BGMStats] { + totalHours := int(endTime.Sub(startTime).Hours()) + lastData := endTime.Add(59 * time.Minute) + + datum := types.Summary[*types.BGMStats, types.BGMStats]{ + UserID: userId, + Type: types.SummaryTypeBGM, + Dates: types.Dates{ + FirstData: &startTime, + LastData: &lastData, + }, + Stats: &types.BGMStats{ + Buckets: make([]*types.Bucket[*types.BGMBucketData, types.BGMBucketData], totalHours), + }, + } + + var yesterday time.Time + var today time.Time + var bucketDate time.Time + var flaggedDays int + var recordCount int + + for i := 0; i < len(datum.Stats.Buckets); i++ { + bucketDate = startTime.Add(time.Duration(i) * time.Hour) + today = bucketDate.Truncate(time.Hour * 24) + + if flaggedDays < realtimeDays { + recordCount = test.RandomIntFromRange(1, 12) + + if today.After(yesterday) { + flaggedDays++ + yesterday = today + } + + } else { + recordCount = 0 + } + + datum.Stats.Buckets[i] = &types.Bucket[*types.BGMBucketData, types.BGMBucketData]{ + Date: bucketDate, + Data: &types.BGMBucketData{ + RealtimeRecords: recordCount, + DeferredRecords: recordCount, + }, + } + } + + return &datum +} diff --git a/data/types/upload/upload.go b/data/types/upload/upload.go index 9fb9bd2ab..49f91efad 100644 --- a/data/types/upload/upload.go +++ b/data/types/upload/upload.go @@ -217,5 +217,5 @@ func (u *Upload) HasDeduplicatorNameMatch(name string) bool { } func (u *Upload) IsContinuous() bool { - return u != nil && *u.DataSetType == data.DataSetTypeContinuous + return u != nil && u.DataSetType != nil && *u.DataSetType == data.DataSetTypeContinuous } From b4c2f1238d820b29dec1711a4bed113b17b77b0a Mon Sep 17 00:00:00 2001 From: Alexander Diana Date: Thu, 14 Mar 2024 02:03:13 +0000 Subject: [PATCH 08/34] add deferred/realtime records to periods --- data/summary/types/bgm.go | 48 +++++++++++++++++++++++++++--- data/summary/types/cgm.go | 45 ++++++++++++++++++++++++++-- data/summary/types/test/summary.go | 3 +- 3 files changed, 89 insertions(+), 7 deletions(-) diff --git a/data/summary/types/bgm.go b/data/summary/types/bgm.go index bb44caa20..16f060837 100644 --- a/data/summary/types/bgm.go +++ b/data/summary/types/bgm.go @@ -113,8 +113,8 @@ type BGMPeriod struct { DeferredRecords *int `json:"deferredRecords" bson:"deferredRecords"` DeferredRecordsDelta *int `json:"deferredRecordsDelta" bson:"deferredRecordsDelta"` - DeferredPercent *int `json:"deferredPercent" bson:"deferredPercent"` - DeferredPercentDelta *int `json:"deferredPercentDelta" bson:"deferredPercentDelta"` + DeferredPercent *float64 `json:"deferredPercent" bson:"deferredPercent"` + DeferredPercentDelta *float64 `json:"deferredPercentDelta" bson:"deferredPercentDelta"` } type BGMPeriods map[string]*BGMPeriod @@ -277,8 +277,6 @@ func (s *BGMStats) CalculateSummary() { nextStopPoint++ } - // TODO add realtime/deferred - totalStats.TargetRecords += s.Buckets[currentIndex].Data.TargetRecords totalStats.LowRecords += s.Buckets[currentIndex].Data.LowRecords totalStats.VeryLowRecords += s.Buckets[currentIndex].Data.VeryLowRecords @@ -287,6 +285,9 @@ func (s *BGMStats) CalculateSummary() { totalStats.TotalGlucose += s.Buckets[currentIndex].Data.TotalGlucose totalStats.TotalRecords += s.Buckets[currentIndex].Data.TotalRecords + + totalStats.DeferredRecords += s.Buckets[currentIndex].Data.DeferredRecords + totalStats.RealtimeRecords += s.Buckets[currentIndex].Data.RealtimeRecords } // only add to offset stats when primary stop point is ahead of offset @@ -305,6 +306,9 @@ func (s *BGMStats) CalculateSummary() { totalOffsetStats.TotalGlucose += s.Buckets[currentIndex].Data.TotalGlucose totalOffsetStats.TotalRecords += s.Buckets[currentIndex].Data.TotalRecords + + totalOffsetStats.DeferredRecords += s.Buckets[currentIndex].Data.DeferredRecords + totalOffsetStats.RealtimeRecords += s.Buckets[currentIndex].Data.RealtimeRecords } } @@ -446,6 +450,34 @@ func (s *BGMStats) CalculateDelta() { s.Periods[k].TimeInAnyHighRecordsDelta = pointer.FromAny(delta) s.OffsetPeriods[k].TimeInAnyHighRecordsDelta = pointer.FromAny(-delta) } + + if s.Periods[k].RealtimePercent != nil && s.OffsetPeriods[k].RealtimePercent != nil { + delta := *s.Periods[k].RealtimePercent - *s.OffsetPeriods[k].RealtimePercent + + s.Periods[k].RealtimePercentDelta = pointer.FromAny(delta) + s.OffsetPeriods[k].RealtimePercentDelta = pointer.FromAny(-delta) + } + + if s.Periods[k].RealtimeRecords != nil && s.OffsetPeriods[k].RealtimeRecords != nil { + delta := *s.Periods[k].RealtimeRecords - *s.OffsetPeriods[k].RealtimeRecords + + s.Periods[k].RealtimeRecordsDelta = pointer.FromAny(delta) + s.OffsetPeriods[k].RealtimeRecordsDelta = pointer.FromAny(-delta) + } + + if s.Periods[k].DeferredPercent != nil && s.OffsetPeriods[k].DeferredPercent != nil { + delta := *s.Periods[k].DeferredPercent - *s.OffsetPeriods[k].DeferredPercent + + s.Periods[k].DeferredPercentDelta = pointer.FromAny(delta) + s.OffsetPeriods[k].DeferredPercentDelta = pointer.FromAny(-delta) + } + + if s.Periods[k].DeferredRecords != nil && s.OffsetPeriods[k].DeferredRecords != nil { + delta := *s.Periods[k].DeferredRecords - *s.OffsetPeriods[k].DeferredRecords + + s.Periods[k].DeferredRecordsDelta = pointer.FromAny(delta) + s.OffsetPeriods[k].DeferredRecordsDelta = pointer.FromAny(-delta) + } } } @@ -477,6 +509,10 @@ func (s *BGMStats) CalculatePeriod(i int, offset bool, totalStats *BGMBucketData HasTimeInAnyHighRecords: true, TimeInAnyHighRecords: pointer.FromAny(totalStats.VeryHighRecords + totalStats.HighRecords), + + RealtimeRecords: pointer.FromAny(totalStats.RealtimeRecords + totalStats.RealtimeRecords), + + DeferredRecords: pointer.FromAny(totalStats.DeferredRecords + totalStats.DeferredRecords), } if totalStats.TotalRecords != 0 { @@ -503,6 +539,10 @@ func (s *BGMStats) CalculatePeriod(i int, offset bool, totalStats *BGMBucketData newPeriod.HasAverageGlucoseMmol = true newPeriod.AverageGlucoseMmol = pointer.FromAny(totalStats.TotalGlucose / float64(totalStats.TotalRecords)) + + newPeriod.RealtimePercent = pointer.FromAny(float64(totalStats.RealtimeRecords) / float64(totalStats.TotalRecords)) + + newPeriod.DeferredPercent = pointer.FromAny(float64(totalStats.DeferredRecords) / float64(totalStats.TotalRecords)) } if offset { diff --git a/data/summary/types/cgm.go b/data/summary/types/cgm.go index 30a507e58..0a0ced445 100644 --- a/data/summary/types/cgm.go +++ b/data/summary/types/cgm.go @@ -168,8 +168,8 @@ type CGMPeriod struct { DeferredRecords *int `json:"deferredRecords" bson:"deferredRecords"` DeferredRecordsDelta *int `json:"deferredRecordsDelta" bson:"deferredRecordsDelta"` - DeferredPercent *int `json:"deferredPercent" bson:"deferredPercent"` - DeferredPercentDelta *int `json:"deferredPercentDelta" bson:"deferredPercentDelta"` + DeferredPercent *float64 `json:"deferredPercent" bson:"deferredPercent"` + DeferredPercentDelta *float64 `json:"deferredPercentDelta" bson:"deferredPercentDelta"` } type CGMPeriods map[string]*CGMPeriod @@ -368,6 +368,9 @@ func (s *CGMStats) CalculateSummary() { totalStats.TotalGlucose += s.Buckets[currentIndex].Data.TotalGlucose totalStats.TotalMinutes += s.Buckets[currentIndex].Data.TotalMinutes totalStats.TotalRecords += s.Buckets[currentIndex].Data.TotalRecords + + totalStats.DeferredRecords += s.Buckets[currentIndex].Data.DeferredRecords + totalStats.RealtimeRecords += s.Buckets[currentIndex].Data.RealtimeRecords } // only add to offset stats when primary stop point is ahead of offset @@ -395,6 +398,9 @@ func (s *CGMStats) CalculateSummary() { totalOffsetStats.TotalGlucose += s.Buckets[currentIndex].Data.TotalGlucose totalOffsetStats.TotalMinutes += s.Buckets[currentIndex].Data.TotalMinutes totalOffsetStats.TotalRecords += s.Buckets[currentIndex].Data.TotalRecords + + totalOffsetStats.DeferredRecords += s.Buckets[currentIndex].Data.DeferredRecords + totalOffsetStats.RealtimeRecords += s.Buckets[currentIndex].Data.RealtimeRecords } } @@ -613,6 +619,34 @@ func (s *CGMStats) CalculateDelta() { s.Periods[k].TimeInAnyHighMinutesDelta = pointer.FromAny(delta) s.OffsetPeriods[k].TimeInAnyHighMinutesDelta = pointer.FromAny(-delta) } + + if s.Periods[k].RealtimePercent != nil && s.OffsetPeriods[k].RealtimePercent != nil { + delta := *s.Periods[k].RealtimePercent - *s.OffsetPeriods[k].RealtimePercent + + s.Periods[k].RealtimePercentDelta = pointer.FromAny(delta) + s.OffsetPeriods[k].RealtimePercentDelta = pointer.FromAny(-delta) + } + + if s.Periods[k].RealtimeRecords != nil && s.OffsetPeriods[k].RealtimeRecords != nil { + delta := *s.Periods[k].RealtimeRecords - *s.OffsetPeriods[k].RealtimeRecords + + s.Periods[k].RealtimeRecordsDelta = pointer.FromAny(delta) + s.OffsetPeriods[k].RealtimeRecordsDelta = pointer.FromAny(-delta) + } + + if s.Periods[k].DeferredPercent != nil && s.OffsetPeriods[k].DeferredPercent != nil { + delta := *s.Periods[k].DeferredPercent - *s.OffsetPeriods[k].DeferredPercent + + s.Periods[k].DeferredPercentDelta = pointer.FromAny(delta) + s.OffsetPeriods[k].DeferredPercentDelta = pointer.FromAny(-delta) + } + + if s.Periods[k].DeferredRecords != nil && s.OffsetPeriods[k].DeferredRecords != nil { + delta := *s.Periods[k].DeferredRecords - *s.OffsetPeriods[k].DeferredRecords + + s.Periods[k].DeferredRecordsDelta = pointer.FromAny(delta) + s.OffsetPeriods[k].DeferredRecordsDelta = pointer.FromAny(-delta) + } } } @@ -671,6 +705,10 @@ func (s *CGMStats) CalculatePeriod(i int, offset bool, totalStats *CGMBucketData HasTimeInAnyHighRecords: true, TimeInAnyHighRecords: pointer.FromAny(totalStats.HighRecords + totalStats.VeryHighRecords), + + RealtimeRecords: pointer.FromAny(totalStats.RealtimeRecords + totalStats.RealtimeRecords), + + DeferredRecords: pointer.FromAny(totalStats.DeferredRecords + totalStats.DeferredRecords), } if totalStats.TotalRecords != 0 { @@ -702,6 +740,9 @@ func (s *CGMStats) CalculatePeriod(i int, offset bool, totalStats *CGMBucketData newPeriod.HasTimeInAnyHighPercent = true newPeriod.TimeInAnyHighPercent = pointer.FromAny(float64(totalStats.VeryHighRecords+totalStats.HighRecords) / float64(totalStats.TotalRecords)) + newPeriod.RealtimePercent = pointer.FromAny(float64(totalStats.RealtimeRecords) / float64(totalStats.TotalRecords)) + + newPeriod.DeferredPercent = pointer.FromAny(float64(totalStats.DeferredRecords) / float64(totalStats.TotalRecords)) } newPeriod.HasAverageGlucoseMmol = true diff --git a/data/summary/types/test/summary.go b/data/summary/types/test/summary.go index a9dcc72aa..94e957dc8 100644 --- a/data/summary/types/test/summary.go +++ b/data/summary/types/test/summary.go @@ -1,10 +1,11 @@ package test import ( + "time" + "github.com/tidepool-org/platform/data/summary/types" "github.com/tidepool-org/platform/pointer" "github.com/tidepool-org/platform/test" - "time" ) func RandomCGMSummary(userId string) *types.Summary[*types.CGMStats, types.CGMStats] { From 9f9611f492492a2c475ffd5dbd4b493bebe2b493 Mon Sep 17 00:00:00 2001 From: Alexander Diana Date: Thu, 14 Mar 2024 14:50:53 +0000 Subject: [PATCH 09/34] make continuous upload map sparse --- data/summary/types/bgm.go | 6 +++--- data/summary/types/cgm.go | 5 ++++- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/data/summary/types/bgm.go b/data/summary/types/bgm.go index 16f060837..72851ea45 100644 --- a/data/summary/types/bgm.go +++ b/data/summary/types/bgm.go @@ -195,9 +195,9 @@ func (s *BGMStats) Update(ctx context.Context, cursor DeviceDataCursor, dataRepo if err != nil { return err } - uploadIds[*r.UploadID] = uploadRecord.IsContinuous() - if err != nil { - return err + + if uploadRecord.IsContinuous() { + uploadIds[*r.UploadID] = true } } diff --git a/data/summary/types/cgm.go b/data/summary/types/cgm.go index 0a0ced445..38ec06305 100644 --- a/data/summary/types/cgm.go +++ b/data/summary/types/cgm.go @@ -250,7 +250,10 @@ func (s *CGMStats) Update(ctx context.Context, cursor DeviceDataCursor, dataRepo if err != nil { return err } - uploadIds[*r.UploadID] = uploadRecord.IsContinuous() + + if uploadRecord.IsContinuous() { + uploadIds[*r.UploadID] = true + } } // we call AddData before each network call to the db to reduce thrashing From 276db043e0bb668a2db11accae0af48fcbe0709b Mon Sep 17 00:00:00 2001 From: Alexander Diana Date: Thu, 14 Mar 2024 16:34:42 +0000 Subject: [PATCH 10/34] clean up some rebase errors and other missing code --- data/store/mongo/mongo_datum.go | 58 +++----------------------- data/store/mongo/mongo_test.go | 17 ++++---- data/store/store.go | 6 +-- data/store/test/data_repository.go | 10 ++--- data/summary/summary_test.go | 12 ++++-- data/summary/types/summary.go | 13 +----- data/summary/types/summary_bgm_test.go | 11 +++-- data/summary/types/summary_cgm_test.go | 17 +++++--- data/summary/types/summary_test.go | 16 ++++--- 9 files changed, 58 insertions(+), 102 deletions(-) diff --git a/data/store/mongo/mongo_datum.go b/data/store/mongo/mongo_datum.go index 677f55e64..bbae3c36e 100644 --- a/data/store/mongo/mongo_datum.go +++ b/data/store/mongo/mongo_datum.go @@ -548,55 +548,7 @@ func validateAndTranslateSelectors(selectors *data.Selectors) (bson.M, error) { return selector, nil } -<<<<<<< HEAD -func (d *DatumRepository) CheckDataSetContainsTypeInRange(ctx context.Context, dataSetId string, typ string, startTime time.Time, endTime time.Time) (bool, error) { - if ctx == nil { - return false, errors.New("context is missing") - } - - if dataSetId == "" { - return false, errors.New("dataSetId is empty") - } - - if typ == "" { - return false, errors.New("typ is empty") - } - - // quit early if range is 0 - if startTime.Equal(endTime) { - return false, nil - } - - // return error if ranges are inverted, as this can produce unexpected results - if startTime.After(endTime) { - return false, fmt.Errorf("startTime (%s) after endTime (%s)", startTime, endTime) - } - - selector := bson.M{ - "_active": true, - "uploadId": dataSetId, - "type": typ, - "time": bson.M{ - "$gt": startTime, - "$lte": endTime, - }, - } - - result := bson.M{} - if err := d.FindOne(ctx, selector).Decode(result); err != nil { - if errors.Is(err, mongo.ErrNoDocuments) { - return false, nil - } - return false, fmt.Errorf("unable to check for type %s in dataset %s: %w", typ, dataSetId, err) - } - - return true, nil -} - -func (d *DatumRepository) GetDataRange(ctx context.Context, userId string, typ string, status *types.UserLastUpdated) (*mongo.Cursor, error) { -======= func (d *DatumRepository) GetDataRange(ctx context.Context, userId string, typ string, status *data.UserLastUpdated) (*mongo.Cursor, error) { ->>>>>>> 7f6039c3 (add realtime and deferred record unit tests, fix related bugs, more generics arg consistency, remove conditional summary create during dataset close) if ctx == nil { return nil, errors.New("context is missing") } @@ -662,7 +614,7 @@ func (d *DatumRepository) GetDataRange(ctx context.Context, userId string, typ s return cursor, nil } -func (d *DatumRepository) getTimeRange(ctx context.Context, userId string, typ string, status *types.UserLastUpdated) (err error) { +func (d *DatumRepository) getTimeRange(ctx context.Context, userId string, typ string, status *data.UserLastUpdated) (err error) { timestamp := time.Now().UTC() futureCutoff := timestamp.AddDate(0, 0, 1) pastCutoff := timestamp.AddDate(-2, 0, 0) @@ -702,7 +654,7 @@ func (d *DatumRepository) getTimeRange(ctx context.Context, userId string, typ s return nil } -func (d *DatumRepository) populateLastUpload(ctx context.Context, userId string, typ string, status *types.UserLastUpdated) (err error) { +func (d *DatumRepository) populateLastUpload(ctx context.Context, userId string, typ string, status *data.UserLastUpdated) (err error) { // get latest modified record selector := bson.M{ "_userId": userId, @@ -743,7 +695,7 @@ func (d *DatumRepository) populateLastUpload(ctx context.Context, userId string, return nil } -func (d *DatumRepository) populateEarliestModified(ctx context.Context, userId string, typ string, status *types.UserLastUpdated) (err error) { +func (d *DatumRepository) populateEarliestModified(ctx context.Context, userId string, typ string, status *data.UserLastUpdated) (err error) { // get earliest modified record which is newer than LastUpdated selector := bson.M{ "_userId": userId, @@ -788,7 +740,7 @@ func (d *DatumRepository) populateEarliestModified(ctx context.Context, userId s return nil } -func (d *DatumRepository) GetLastUpdatedForUser(ctx context.Context, userId string, typ string, lastUpdated time.Time) (*types.UserLastUpdated, error) { +func (d *DatumRepository) GetLastUpdatedForUser(ctx context.Context, userId string, typ string, lastUpdated time.Time) (*data.UserLastUpdated, error) { var err error if ctx == nil { @@ -808,7 +760,7 @@ func (d *DatumRepository) GetLastUpdatedForUser(ctx context.Context, userId stri return nil, fmt.Errorf("unexpected type: %v", upload.Type) } - status := &types.UserLastUpdated{ + status := &data.UserLastUpdated{ LastUpdated: lastUpdated, NextLastUpdated: time.Now().UTC().Truncate(time.Millisecond), } diff --git a/data/store/mongo/mongo_test.go b/data/store/mongo/mongo_test.go index 74a6d1a80..634602953 100644 --- a/data/store/mongo/mongo_test.go +++ b/data/store/mongo/mongo_test.go @@ -26,7 +26,6 @@ import ( "github.com/tidepool-org/platform/data" dataStore "github.com/tidepool-org/platform/data/store" dataStoreMongo "github.com/tidepool-org/platform/data/store/mongo" - summaryTypes "github.com/tidepool-org/platform/data/summary/types" dataTest "github.com/tidepool-org/platform/data/test" "github.com/tidepool-org/platform/data/types" dataTypesTest "github.com/tidepool-org/platform/data/types/test" @@ -1184,7 +1183,7 @@ var _ = Describe("Mongo", func() { Context("GetDataRange", func() { It("returns an error if context is missing", func() { - status := &summaryTypes.UserLastUpdated{ + status := &data.UserLastUpdated{ FirstData: *dataSetData[0].GetTime(), LastData: *dataSetData[len(dataSetData)-1].GetTime(), LastUpdated: time.Time{}, @@ -1199,7 +1198,7 @@ var _ = Describe("Mongo", func() { }) It("returns an error if the userId is empty", func() { - status := &summaryTypes.UserLastUpdated{ + status := &data.UserLastUpdated{ FirstData: *dataSetData[0].GetTime(), LastData: *dataSetData[len(dataSetData)-1].GetTime(), LastUpdated: time.Time{}, @@ -1214,7 +1213,7 @@ var _ = Describe("Mongo", func() { }) It("returns an error if the typ is empty", func() { - status := &summaryTypes.UserLastUpdated{ + status := &data.UserLastUpdated{ FirstData: *dataSetData[0].GetTime(), LastData: *dataSetData[len(dataSetData)-1].GetTime(), LastUpdated: time.Time{}, @@ -1229,7 +1228,7 @@ var _ = Describe("Mongo", func() { }) It("returns error if the data times are inverted", func() { - status := &summaryTypes.UserLastUpdated{ + status := &data.UserLastUpdated{ FirstData: *dataSetData[len(dataSetData)-1].GetTime(), LastData: *dataSetData[0].GetTime(), LastUpdated: time.Time{}, @@ -1244,7 +1243,7 @@ var _ = Describe("Mongo", func() { }) It("returns error if the LastUpdated times are inverted", func() { - status := &summaryTypes.UserLastUpdated{ + status := &data.UserLastUpdated{ FirstData: *dataSetData[0].GetTime(), LastData: *dataSetData[len(dataSetData)-1].GetTime(), LastUpdated: time.Now(), @@ -1269,7 +1268,7 @@ var _ = Describe("Mongo", func() { It("correctly returns data within range", func() { var userData []*glucoseDatum.Glucose - status := &summaryTypes.UserLastUpdated{ + status := &data.UserLastUpdated{ FirstData: *dataSetData[0].GetTime(), LastData: *dataSetData[len(dataSetData)-1].GetTime(), LastUpdated: time.Time{}, @@ -1297,7 +1296,7 @@ var _ = Describe("Mongo", func() { It("correctly misses data outside range", func() { var userData []*glucoseDatum.Glucose - status := &summaryTypes.UserLastUpdated{ + status := &data.UserLastUpdated{ FirstData: dataSetData[0].GetTime().AddDate(-1, 0, 0), LastData: dataSetData[len(dataSetData)-1].GetTime().AddDate(-1, 0, 0), LastUpdated: time.Time{}, @@ -1319,7 +1318,7 @@ var _ = Describe("Mongo", func() { It("correctly misses data of wrong type", func() { var userData []*glucoseDatum.Glucose - status := &summaryTypes.UserLastUpdated{ + status := &data.UserLastUpdated{ FirstData: *dataSetData[0].GetTime(), LastData: *dataSetData[len(dataSetData)-1].GetTime(), LastUpdated: time.Time{}, diff --git a/data/store/store.go b/data/store/store.go index fccaba7d0..e7e48ab33 100644 --- a/data/store/store.go +++ b/data/store/store.go @@ -7,8 +7,6 @@ import ( "go.mongodb.org/mongo-driver/mongo" "github.com/tidepool-org/platform/alerts" - "github.com/tidepool-org/platform/data/summary/types" - "github.com/tidepool-org/platform/data" "github.com/tidepool-org/platform/data/types/upload" "github.com/tidepool-org/platform/page" @@ -62,8 +60,8 @@ type DatumRepository interface { ListUserDataSets(ctx context.Context, userID string, filter *data.DataSetFilter, pagination *page.Pagination) (data.DataSets, error) GetDataSet(ctx context.Context, id string) (*data.DataSet, error) - GetDataRange(ctx context.Context, userId string, typ string, status *types.UserLastUpdated) (*mongo.Cursor, error) - GetLastUpdatedForUser(ctx context.Context, userId string, typ string, lastUpdated time.Time) (*types.UserLastUpdated, error) + GetDataRange(ctx context.Context, userId string, typ string, status *data.UserLastUpdated) (*mongo.Cursor, error) + GetLastUpdatedForUser(ctx context.Context, userId string, typ string, lastUpdated time.Time) (*data.UserLastUpdated, error) DistinctUserIDs(ctx context.Context, typ string) ([]string, error) } diff --git a/data/store/test/data_repository.go b/data/store/test/data_repository.go index 993d8a4ee..e5605867d 100644 --- a/data/store/test/data_repository.go +++ b/data/store/test/data_repository.go @@ -6,8 +6,6 @@ import ( "go.mongodb.org/mongo-driver/mongo" - "github.com/tidepool-org/platform/data/summary/types" - "github.com/onsi/gomega" "github.com/tidepool-org/platform/data" @@ -156,7 +154,7 @@ type GetLastUpdatedForUserInput struct { } type GetLastUpdatedForUserOutput struct { - UserLastUpdated *types.UserLastUpdated + UserLastUpdated *data.UserLastUpdated Error error } @@ -164,7 +162,7 @@ type GetDataRangeInput struct { Context context.Context UserId string Typ string - Status *types.UserLastUpdated + Status *data.UserLastUpdated } type GetDataRangeOutput struct { @@ -493,7 +491,7 @@ func (d *DataRepository) GetDataSet(ctx context.Context, id string) (*data.DataS return output.DataSet, output.Error } -func (d *DataRepository) GetLastUpdatedForUser(ctx context.Context, userId string, typ string, lastUpdated time.Time) (*types.UserLastUpdated, error) { +func (d *DataRepository) GetLastUpdatedForUser(ctx context.Context, userId string, typ string, lastUpdated time.Time) (*data.UserLastUpdated, error) { d.GetLastUpdatedForUserInvocations++ d.GetLastUpdatedForUserInputs = append(d.GetLastUpdatedForUserInputs, GetLastUpdatedForUserInput{Context: ctx, UserID: userId, Typ: typ, LastUpdated: lastUpdated}) @@ -505,7 +503,7 @@ func (d *DataRepository) GetLastUpdatedForUser(ctx context.Context, userId strin return output.UserLastUpdated, output.Error } -func (d *DataRepository) GetDataRange(ctx context.Context, userId string, typ string, status *types.UserLastUpdated) (*mongo.Cursor, error) { +func (d *DataRepository) GetDataRange(ctx context.Context, userId string, typ string, status *data.UserLastUpdated) (*mongo.Cursor, error) { d.GetDataRangeInvocations++ d.GetDataRangeInputs = append(d.GetDataRangeInputs, GetDataRangeInput{Context: ctx, UserId: userId, Typ: typ, Status: status}) diff --git a/data/summary/summary_test.go b/data/summary/summary_test.go index 0cd134918..bfdac7f62 100644 --- a/data/summary/summary_test.go +++ b/data/summary/summary_test.go @@ -4,6 +4,8 @@ import ( "context" "time" + "github.com/tidepool-org/platform/data/test" + "github.com/tidepool-org/platform/data" "github.com/tidepool-org/platform/data/types/upload" dataTypesUploadTest "github.com/tidepool-org/platform/data/types/upload/test" @@ -65,11 +67,12 @@ func NewDataSet(userID string, typ string) *upload.Upload { func NewDataSetData(typ string, userId string, startTime time.Time, hours float64, glucoseValue float64) []mongo.WriteModel { requiredRecords := int(hours * 1) var dataSetData = make([]mongo.WriteModel, requiredRecords) + var uploadId = test.RandomSetID() var deviceId = "SummaryTestDevice" for count := 0; count < requiredRecords; count++ { datumTime := startTime.Add(time.Duration(-(count + 1)) * time.Minute * 60) - datum := NewGlucose(typ, units, &datumTime, deviceId, userId, glucoseValue) + datum := NewGlucose(typ, units, &datumTime, deviceId, userId, uploadId, glucoseValue) dataSetData[count] = mongo.NewInsertOneModel().SetDocument(datum) } return dataSetData @@ -86,7 +89,7 @@ func NewDataSetDataRealtime(typ string, userId string, uploadId string, startTim for count := 0; count < requiredRecords; count += 1 { datumTime := startTime.Add(time.Duration(count-requiredRecords) * time.Minute * 30) - datum := NewGlucose(typ, units, &datumTime, deviceId, userId, glucoseValue) + datum := NewGlucose(typ, units, &datumTime, deviceId, userId, uploadId, glucoseValue) datum.Value = pointer.FromFloat64(glucoseValue) if realtime { @@ -122,8 +125,8 @@ func NewNewDatum(typ string) *baseDatum.Base { return datum } -func NewGlucose(typ string, units string, datumTime *time.Time, deviceID string, userID string, value float64) *glucose.Glucose { - timestamp := time.Now() +func NewGlucose(typ string, units string, datumTime *time.Time, deviceID string, userID string, uploadId string, value float64) *glucose.Glucose { + timestamp := time.Now().UTC().Truncate(time.Millisecond) datum := glucose.New(typ) datum.Units = &units @@ -141,6 +144,7 @@ func NewGlucose(typ string, units string, datumTime *time.Time, deviceID string, datum.Time = datumTime datum.UserID = &userID datum.Value = &value + datum.UploadID = &uploadId return &datum } diff --git a/data/summary/types/summary.go b/data/summary/types/summary.go index c1079226f..3dc89bd5e 100644 --- a/data/summary/types/summary.go +++ b/data/summary/types/summary.go @@ -3,6 +3,7 @@ package types import ( "context" "fmt" + "github.com/tidepool-org/platform/data/types/blood/glucose/selfmonitored" "github.com/tidepool-org/platform/data/types/upload" @@ -82,18 +83,6 @@ type DeviceDataCursor interface { Close(ctx context.Context) error } -type UserLastUpdated struct { - FirstData time.Time - LastData time.Time - - EarliestModified time.Time - - LastUpload time.Time - - LastUpdated time.Time - NextLastUpdated time.Time -} - type DeviceDataFetcher interface { GetDataSetByID(ctx context.Context, dataSetID string) (*upload.Upload, error) GetLastUpdatedForUser(ctx context.Context, userId string, typ string, lastUpdated time.Time) (*data.UserLastUpdated, error) diff --git a/data/summary/types/summary_bgm_test.go b/data/summary/types/summary_bgm_test.go index 3f4a3371f..b51c33c52 100644 --- a/data/summary/types/summary_bgm_test.go +++ b/data/summary/types/summary_bgm_test.go @@ -3,13 +3,16 @@ package types_test import ( "context" "fmt" + dataStoreMongo "github.com/tidepool-org/platform/data/store/mongo" + "github.com/tidepool-org/platform/data/test" - "github.com/tidepool-org/platform/data/types/blood/glucose/selfmonitored" "math/rand" "strconv" "time" + "github.com/tidepool-org/platform/data/types/blood/glucose/selfmonitored" + storeStructuredMongoTest "github.com/tidepool-org/platform/store/structured/mongo/test" "go.mongodb.org/mongo-driver/mongo" @@ -34,6 +37,7 @@ func NewDataSetBGMDataAvg(deviceId string, startTime time.Time, hours float64, r typ := pointer.FromString("smbg") var dataSetData = make([]*glucose.Glucose, requiredRecords) + var uploadId = test.RandomSetID() // generate X hours of data for count := 0; count < requiredRecords; count += 2 { @@ -44,7 +48,7 @@ func NewDataSetBGMDataAvg(deviceId string, startTime time.Time, hours float64, r for i, glucoseValue := range glucoseValues { datumTime := startTime.Add(time.Duration(-(count + i + 1)) * time.Minute * 10) - datum := NewGlucose(typ, pointer.FromString(units), &datumTime, &deviceId) + datum := NewGlucose(typ, pointer.FromString(units), &datumTime, &deviceId, &uploadId) datum.Value = pointer.FromFloat64(glucoseValue) dataSetData[requiredRecords-count-i-1] = datum @@ -59,6 +63,7 @@ func NewDataSetBGMDataRanges(deviceId string, startTime time.Time, hours float64 typ := pointer.FromString("smbg") var dataSetData = make([]*glucose.Glucose, requiredRecords) + var uploadId = test.RandomSetID() glucoseBrackets := [5][2]float64{ {ranges.Min, ranges.VeryLow - ranges.Padding}, @@ -73,7 +78,7 @@ func NewDataSetBGMDataRanges(deviceId string, startTime time.Time, hours float64 for i, bracket := range glucoseBrackets { datumTime := startTime.Add(-time.Duration(count+i+1) * time.Minute * 12) - datum := NewGlucose(typ, pointer.FromString(units), &datumTime, &deviceId) + datum := NewGlucose(typ, pointer.FromString(units), &datumTime, &deviceId, &uploadId) datum.Value = pointer.FromFloat64(bracket[0] + (bracket[1]-bracket[0])*rand.Float64()) dataSetData[requiredRecords-count-i-1] = datum diff --git a/data/summary/types/summary_cgm_test.go b/data/summary/types/summary_cgm_test.go index 4a0f5b011..bea3b3811 100644 --- a/data/summary/types/summary_cgm_test.go +++ b/data/summary/types/summary_cgm_test.go @@ -3,13 +3,15 @@ package types_test import ( "context" "fmt" - dataStoreMongo "github.com/tidepool-org/platform/data/store/mongo" - "github.com/tidepool-org/platform/data/types/blood/glucose/continuous" - storeStructuredMongoTest "github.com/tidepool-org/platform/store/structured/mongo/test" "math/rand" "strconv" "time" + dataStoreMongo "github.com/tidepool-org/platform/data/store/mongo" + "github.com/tidepool-org/platform/data/test" + "github.com/tidepool-org/platform/data/types/blood/glucose/continuous" + storeStructuredMongoTest "github.com/tidepool-org/platform/store/structured/mongo/test" + "go.mongodb.org/mongo-driver/mongo" "github.com/tidepool-org/platform/log" @@ -33,6 +35,7 @@ func NewDataSetCGMDataAvg(startTime time.Time, hours float64, reqAvg float64) [] var dataSetData = make([]*glucose.Glucose, requiredRecords) var deviceId = "SummaryTestDevice" + var uploadId = test.RandomSetID() // generate X hours of data for count := 0; count < requiredRecords; count += 2 { @@ -43,7 +46,7 @@ func NewDataSetCGMDataAvg(startTime time.Time, hours float64, reqAvg float64) [] for i, glucoseValue := range glucoseValues { datumTime := startTime.Add(time.Duration(-(count + i + 1)) * time.Minute * 5) - datum := NewGlucose(typ, pointer.FromString(units), &datumTime, &deviceId) + datum := NewGlucose(typ, pointer.FromString(units), &datumTime, &deviceId, &uploadId) datum.Value = pointer.FromFloat64(glucoseValue) dataSetData[requiredRecords-count-i-1] = datum @@ -60,12 +63,13 @@ func NewDataSetDataRealtime(t string, startTime time.Time, hours float64, realti var dataSetData = make([]*glucose.Glucose, requiredRecords) var glucoseValue = inTargetBloodGlucose var deviceId = "SummaryTestDevice" + var uploadId = test.RandomSetID() // generate X hours of data for count := 0; count < requiredRecords; count += 1 { datumTime := startTime.Add(time.Duration(count-requiredRecords) * time.Minute * 30) - datum := NewGlucose(typ, pointer.FromString(units), &datumTime, &deviceId) + datum := NewGlucose(typ, pointer.FromString(units), &datumTime, &deviceId, &uploadId) datum.Value = pointer.FromFloat64(glucoseValue) if realtime { @@ -87,6 +91,7 @@ func NewDataSetCGMDataRanges(startTime time.Time, hours float64, ranges DataRang var gapCompensation time.Duration var dataSetData = make([]*glucose.Glucose, requiredRecords) + var uploadId = test.RandomSetID() var deviceId = "SummaryTestDevice" glucoseBrackets := [5][2]float64{ @@ -103,7 +108,7 @@ func NewDataSetCGMDataRanges(startTime time.Time, hours float64, ranges DataRang for i, bracket := range glucoseBrackets { datumTime := startTime.Add(time.Duration(-(count+i+1))*time.Minute*5 - gapCompensation) - datum := NewGlucose(typ, pointer.FromString(units), &datumTime, &deviceId) + datum := NewGlucose(typ, pointer.FromString(units), &datumTime, &deviceId, &uploadId) datum.Value = pointer.FromFloat64(bracket[0] + (bracket[1]-bracket[0])*rand.Float64()) dataSetData[requiredRecords-count-i-1] = datum diff --git a/data/summary/types/summary_test.go b/data/summary/types/summary_test.go index 3daccb379..d481f5a63 100644 --- a/data/summary/types/summary_test.go +++ b/data/summary/types/summary_test.go @@ -4,6 +4,8 @@ import ( "math" "time" + "github.com/tidepool-org/platform/data/test" + . "github.com/onsi/ginkgo/v2" . "github.com/onsi/gomega" @@ -55,21 +57,23 @@ func NewDataRangesSingle(value float64) DataRanges { } } -func NewGlucose(typ *string, units *string, datumTime *time.Time, deviceID *string) *glucose.Glucose { +func NewGlucose(typ *string, units *string, datumTime *time.Time, deviceID *string, uploadId *string) *glucose.Glucose { + timestamp := time.Now().UTC().Truncate(time.Millisecond) datum := glucose.New(*typ) datum.Units = units datum.Active = true datum.ArchivedDataSetID = nil datum.ArchivedTime = nil - datum.CreatedTime = nil + datum.CreatedTime = ×tamp datum.CreatedUserID = nil datum.DeletedTime = nil datum.DeletedUserID = nil datum.DeviceID = deviceID - datum.ModifiedTime = nil + datum.ModifiedTime = ×tamp datum.ModifiedUserID = nil datum.Time = datumTime + datum.UploadID = uploadId return &datum } @@ -94,9 +98,11 @@ func ConvertToIntArray[T types.RecordTypes](arr []*T) []interface{} { var _ = Describe("Summary", func() { var datumTime time.Time var deviceID string + var uploadId string BeforeEach(func() { deviceID = "SummaryTestDevice" + uploadId = test.RandomSetID() datumTime = time.Date(2016, time.Month(1), 1, 0, 0, 0, 0, time.UTC) }) @@ -106,7 +112,7 @@ var _ = Describe("Summary", func() { typ := pointer.FromString("cbg") It("Returns correct 15 minute duration for AbbottFreeStyleLibre", func() { - libreDatum = NewGlucose(typ, pointer.FromString(units), &datumTime, &deviceID) + libreDatum = NewGlucose(typ, pointer.FromString(units), &datumTime, &deviceID, &uploadId) libreDatum.DeviceID = pointer.FromString("a-AbbottFreeStyleLibre-a") duration := types.GetDuration(libreDatum) @@ -114,7 +120,7 @@ var _ = Describe("Summary", func() { }) It("Returns correct duration for other devices", func() { - otherDatum = NewGlucose(typ, pointer.FromString(units), &datumTime, &deviceID) + otherDatum = NewGlucose(typ, pointer.FromString(units), &datumTime, &deviceID, &uploadId) duration := types.GetDuration(otherDatum) Expect(duration).To(Equal(5)) From 298ab09cfc2e1967e780c8ac06518e0dfffe7038 Mon Sep 17 00:00:00 2001 From: Alexander Diana Date: Thu, 14 Mar 2024 17:33:44 +0000 Subject: [PATCH 11/34] remove redundant IsContinuous function on uploads --- data/summary/types/bgm.go | 2 +- data/summary/types/cgm.go | 2 +- data/types/upload/upload.go | 4 ---- 3 files changed, 2 insertions(+), 6 deletions(-) diff --git a/data/summary/types/bgm.go b/data/summary/types/bgm.go index 72851ea45..68269b7aa 100644 --- a/data/summary/types/bgm.go +++ b/data/summary/types/bgm.go @@ -196,7 +196,7 @@ func (s *BGMStats) Update(ctx context.Context, cursor DeviceDataCursor, dataRepo return err } - if uploadRecord.IsContinuous() { + if uploadRecord != nil && uploadRecord.HasDataSetTypeContinuous() { uploadIds[*r.UploadID] = true } } diff --git a/data/summary/types/cgm.go b/data/summary/types/cgm.go index 38ec06305..35b201656 100644 --- a/data/summary/types/cgm.go +++ b/data/summary/types/cgm.go @@ -251,7 +251,7 @@ func (s *CGMStats) Update(ctx context.Context, cursor DeviceDataCursor, dataRepo return err } - if uploadRecord.IsContinuous() { + if uploadRecord != nil && uploadRecord.HasDataSetTypeNormal() { uploadIds[*r.UploadID] = true } } diff --git a/data/types/upload/upload.go b/data/types/upload/upload.go index 49f91efad..04a3be05f 100644 --- a/data/types/upload/upload.go +++ b/data/types/upload/upload.go @@ -215,7 +215,3 @@ func (u *Upload) HasDeduplicatorName() bool { func (u *Upload) HasDeduplicatorNameMatch(name string) bool { return u.Deduplicator != nil && u.Deduplicator.HasNameMatch(name) } - -func (u *Upload) IsContinuous() bool { - return u != nil && u.DataSetType != nil && *u.DataSetType == data.DataSetTypeContinuous -} From 69d6249acbb480c93c65ab98b31418ba1021197f Mon Sep 17 00:00:00 2001 From: Alexander Diana Date: Thu, 14 Mar 2024 20:57:18 +0000 Subject: [PATCH 12/34] raise summary schema version --- data/summary/types/summary.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/summary/types/summary.go b/data/summary/types/summary.go index 3dc89bd5e..d27c4d267 100644 --- a/data/summary/types/summary.go +++ b/data/summary/types/summary.go @@ -31,7 +31,7 @@ import ( const ( SummaryTypeCGM = "cgm" SummaryTypeBGM = "bgm" - SchemaVersion = 3 + SchemaVersion = 4 lowBloodGlucose = 3.9 veryLowBloodGlucose = 3.0 From 3af18eebbf7592014c5b5fb9dfd031ace1145100 Mon Sep 17 00:00:00 2001 From: Alexander Diana Date: Mon, 25 Mar 2024 22:32:00 +0000 Subject: [PATCH 13/34] handle user being schema migrated with no summarizable data --- data/store/mongo/mongo_datum.go | 5 +++++ data/store/mongo/mongo_test.go | 6 ++---- data/summary/summary.go | 2 +- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/data/store/mongo/mongo_datum.go b/data/store/mongo/mongo_datum.go index bbae3c36e..799f6d60d 100644 --- a/data/store/mongo/mongo_datum.go +++ b/data/store/mongo/mongo_datum.go @@ -770,6 +770,11 @@ func (d *DatumRepository) GetLastUpdatedForUser(ctx context.Context, userId stri return nil, err } + // the user has no eligible data, quit out early + if status.LastData.IsZero() { + return nil, nil + } + err = d.populateLastUpload(ctx, userId, typ, status) if err != nil { return nil, err diff --git a/data/store/mongo/mongo_test.go b/data/store/mongo/mongo_test.go index 634602953..5139b8fc3 100644 --- a/data/store/mongo/mongo_test.go +++ b/data/store/mongo/mongo_test.go @@ -1393,15 +1393,13 @@ var _ = Describe("Mongo", func() { It("correctly does not find the LastUpload and LastData for an inactive type", func() { status, err := repository.GetLastUpdatedForUser(ctx, *dataSet.UserID, selfmonitored.Type, time.Time{}) Expect(err).ToNot(HaveOccurred()) - Expect(status.LastData.IsZero()).To(BeTrue()) - Expect(status.LastUpload.IsZero()).To(BeTrue()) + Expect(status).To(BeNil()) }) It("correctly does not find the LastUpload and LastData for an unused type", func() { status, err := repository.GetLastUpdatedForUser(ctx, *dataSet.UserID, bolus.Type, time.Time{}) Expect(err).ToNot(HaveOccurred()) - Expect(status.LastData.IsZero()).To(BeTrue()) - Expect(status.LastUpload.IsZero()).To(BeTrue()) + Expect(status).To(BeNil()) }) }) diff --git a/data/summary/summary.go b/data/summary/summary.go index 3bc16f59c..71946efc5 100644 --- a/data/summary/summary.go +++ b/data/summary/summary.go @@ -187,7 +187,7 @@ func (gs *GlucoseSummarizer[A, T]) UpdateSummary(ctx context.Context, userId str } // this filters out users which cannot be updated, as they have no data of type T, but were called for update - if status.LastData.IsZero() { + if status == nil { // user's data is inactive/ancient/deleted, or this summary shouldn't have been created logger.Warnf("User %s has a summary, but no data within range, deleting summary", userId) return nil, gs.summaries.DeleteSummary(ctx, userId) From 994f1784441301db66606b79843db56d306afcd5 Mon Sep 17 00:00:00 2001 From: Alexander Diana Date: Wed, 27 Mar 2024 04:18:58 +0000 Subject: [PATCH 14/34] initial split of continuous summaries into own type, incomplete unit testing --- data/store/mongo/mongo_data.go | 5 +- data/store/mongo/mongo_datum.go | 54 +- data/store/store.go | 6 +- data/store/test/data_repository.go | 8 +- data/summary/store/store.go | 8 +- data/summary/store/store_test.go | 1807 +++++++++++++++------------- data/summary/summary.go | 38 +- data/summary/summary_test.go | 56 +- data/summary/types/bgm.go | 94 +- data/summary/types/cgm.go | 94 +- data/summary/types/continuous.go | 213 ++++ data/summary/types/summary.go | 36 +- data/summary/types/test/summary.go | 91 +- 13 files changed, 1411 insertions(+), 1099 deletions(-) create mode 100644 data/summary/types/continuous.go diff --git a/data/store/mongo/mongo_data.go b/data/store/mongo/mongo_data.go index 99ae964f7..f8c8cfc3f 100644 --- a/data/store/mongo/mongo_data.go +++ b/data/store/mongo/mongo_data.go @@ -2,6 +2,7 @@ package mongo import ( "context" + "slices" "strings" "time" @@ -258,6 +259,6 @@ func MergeSortedDataSets(newDataSets, prevDataSets data.DataSets) data.DataSets return combined } -func isTypeUpload(typ string) bool { - return strings.ToLower(typ) == strings.ToLower(upload.Type) +func isTypeUpload(typ []string) bool { + return slices.Contains(typ, strings.ToLower(upload.Type)) } diff --git a/data/store/mongo/mongo_datum.go b/data/store/mongo/mongo_datum.go index 799f6d60d..c78f1225b 100644 --- a/data/store/mongo/mongo_datum.go +++ b/data/store/mongo/mongo_datum.go @@ -548,7 +548,7 @@ func validateAndTranslateSelectors(selectors *data.Selectors) (bson.M, error) { return selector, nil } -func (d *DatumRepository) GetDataRange(ctx context.Context, userId string, typ string, status *data.UserLastUpdated) (*mongo.Cursor, error) { +func (d *DatumRepository) GetDataRange(ctx context.Context, userId string, typ []string, status *data.UserLastUpdated) (*mongo.Cursor, error) { if ctx == nil { return nil, errors.New("context is missing") } @@ -557,7 +557,7 @@ func (d *DatumRepository) GetDataRange(ctx context.Context, userId string, typ s return nil, errors.New("userId is empty") } - if typ == "" { + if len(typ) < 1 { return nil, errors.New("typ is empty") } @@ -589,13 +589,18 @@ func (d *DatumRepository) GetDataRange(ctx context.Context, userId string, typ s selector := bson.M{ "_active": true, "_userId": userId, - "type": typ, "time": bson.M{ "$gt": status.FirstData, "$lte": status.LastData, }, } + if len(typ) > 1 { + selector["type"] = bson.M{"$in": typ} + } else { + selector["type"] = typ[0] + } + // we have everything we need to pull only modified records, but other areas are not ready for this yet //selector["modifiedTime"]= bson.M{ // "$gt": status.LastUpdated, @@ -614,7 +619,7 @@ func (d *DatumRepository) GetDataRange(ctx context.Context, userId string, typ s return cursor, nil } -func (d *DatumRepository) getTimeRange(ctx context.Context, userId string, typ string, status *data.UserLastUpdated) (err error) { +func (d *DatumRepository) getTimeRange(ctx context.Context, userId string, typ []string, status *data.UserLastUpdated) (err error) { timestamp := time.Now().UTC() futureCutoff := timestamp.AddDate(0, 0, 1) pastCutoff := timestamp.AddDate(-2, 0, 0) @@ -623,13 +628,18 @@ func (d *DatumRepository) getTimeRange(ctx context.Context, userId string, typ s selector := bson.M{ "_active": true, "_userId": userId, - "type": typ, "time": bson.M{ "$gte": pastCutoff, "$lte": futureCutoff, }, } + if len(typ) > 1 { + selector["type"] = bson.M{"$in": typ} + } else { + selector["type"] = typ[0] + } + findOptions := options.Find() findOptions.SetSort(bson.D{{Key: "time", Value: -1}}) findOptions.SetLimit(1) @@ -654,17 +664,23 @@ func (d *DatumRepository) getTimeRange(ctx context.Context, userId string, typ s return nil } -func (d *DatumRepository) populateLastUpload(ctx context.Context, userId string, typ string, status *data.UserLastUpdated) (err error) { +func (d *DatumRepository) populateLastUpload(ctx context.Context, userId string, typ []string, status *data.UserLastUpdated) (err error) { // get latest modified record selector := bson.M{ "_userId": userId, "_active": bson.M{"$in": bson.A{true, false}}, - "type": typ, "time": bson.M{ "$gte": status.FirstData, "$lte": status.LastData, }, } + + if len(typ) > 1 { + selector["type"] = bson.M{"$in": typ} + } else { + selector["type"] = typ[0] + } + findOptions := options.Find() findOptions.SetHint("UserIdActiveTypeTimeModifiedTime") findOptions.SetLimit(1) @@ -695,18 +711,23 @@ func (d *DatumRepository) populateLastUpload(ctx context.Context, userId string, return nil } -func (d *DatumRepository) populateEarliestModified(ctx context.Context, userId string, typ string, status *data.UserLastUpdated) (err error) { +func (d *DatumRepository) populateEarliestModified(ctx context.Context, userId string, typ []string, status *data.UserLastUpdated) (err error) { // get earliest modified record which is newer than LastUpdated selector := bson.M{ "_userId": userId, "_active": bson.M{"$in": bson.A{true, false}}, - "type": typ, "time": bson.M{ "$gte": status.FirstData, "$lte": status.LastData, }, } + if len(typ) > 1 { + selector["type"] = bson.M{"$in": typ} + } else { + selector["type"] = typ[0] + } + findOptions := options.Find() findOptions.SetLimit(1) findOptions.SetSort(bson.D{{Key: "time", Value: 1}}) @@ -740,7 +761,7 @@ func (d *DatumRepository) populateEarliestModified(ctx context.Context, userId s return nil } -func (d *DatumRepository) GetLastUpdatedForUser(ctx context.Context, userId string, typ string, lastUpdated time.Time) (*data.UserLastUpdated, error) { +func (d *DatumRepository) GetLastUpdatedForUser(ctx context.Context, userId string, typ []string, lastUpdated time.Time) (*data.UserLastUpdated, error) { var err error if ctx == nil { @@ -751,7 +772,7 @@ func (d *DatumRepository) GetLastUpdatedForUser(ctx context.Context, userId stri return nil, errors.New("userId is empty") } - if typ == "" { + if len(typ) < 1 { return nil, errors.New("typ is empty") } @@ -788,7 +809,7 @@ func (d *DatumRepository) GetLastUpdatedForUser(ctx context.Context, userId stri return status, nil } -func (d *DatumRepository) DistinctUserIDs(ctx context.Context, typ string) ([]string, error) { +func (d *DatumRepository) DistinctUserIDs(ctx context.Context, typ []string) ([]string, error) { var distinctUserIDMap = make(map[string]struct{}) var empty struct{} @@ -796,7 +817,7 @@ func (d *DatumRepository) DistinctUserIDs(ctx context.Context, typ string) ([]st return nil, errors.New("context is missing") } - if typ == "" { + if len(typ) < 1 { return nil, errors.New("typ is empty") } @@ -812,10 +833,15 @@ func (d *DatumRepository) DistinctUserIDs(ctx context.Context, typ string) ([]st selector := bson.M{ "_userId": bson.M{"$ne": -1111}, "_active": true, - "type": typ, "time": bson.M{"$gte": pastCutoff, "$lte": futureCutoff}, } + if len(typ) > 1 { + selector["type"] = bson.M{"$in": typ} + } else { + selector["type"] = typ[0] + } + result, err := d.Distinct(ctx, "_userId", selector) if err != nil { return nil, fmt.Errorf("error fetching distinct userIDs: %w", err) diff --git a/data/store/store.go b/data/store/store.go index e7e48ab33..db90daf6a 100644 --- a/data/store/store.go +++ b/data/store/store.go @@ -60,9 +60,9 @@ type DatumRepository interface { ListUserDataSets(ctx context.Context, userID string, filter *data.DataSetFilter, pagination *page.Pagination) (data.DataSets, error) GetDataSet(ctx context.Context, id string) (*data.DataSet, error) - GetDataRange(ctx context.Context, userId string, typ string, status *data.UserLastUpdated) (*mongo.Cursor, error) - GetLastUpdatedForUser(ctx context.Context, userId string, typ string, lastUpdated time.Time) (*data.UserLastUpdated, error) - DistinctUserIDs(ctx context.Context, typ string) ([]string, error) + GetDataRange(ctx context.Context, userId string, typ []string, status *data.UserLastUpdated) (*mongo.Cursor, error) + GetLastUpdatedForUser(ctx context.Context, userId string, typ []string, lastUpdated time.Time) (*data.UserLastUpdated, error) + DistinctUserIDs(ctx context.Context, typ []string) ([]string, error) } // DataRepository is the combined interface of DataSetRepository and diff --git a/data/store/test/data_repository.go b/data/store/test/data_repository.go index e5605867d..97c678252 100644 --- a/data/store/test/data_repository.go +++ b/data/store/test/data_repository.go @@ -161,7 +161,7 @@ type GetLastUpdatedForUserOutput struct { type GetDataRangeInput struct { Context context.Context UserId string - Typ string + Typ []string Status *data.UserLastUpdated } @@ -182,7 +182,7 @@ type GetUsersWithBGDataSinceOutput struct { type DistinctUserIDsInput struct { Context context.Context - Typ string + Typ []string } type DistinctUserIDsOutput struct { @@ -503,7 +503,7 @@ func (d *DataRepository) GetLastUpdatedForUser(ctx context.Context, userId strin return output.UserLastUpdated, output.Error } -func (d *DataRepository) GetDataRange(ctx context.Context, userId string, typ string, status *data.UserLastUpdated) (*mongo.Cursor, error) { +func (d *DataRepository) GetDataRange(ctx context.Context, userId string, typ []string, status *data.UserLastUpdated) (*mongo.Cursor, error) { d.GetDataRangeInvocations++ d.GetDataRangeInputs = append(d.GetDataRangeInputs, GetDataRangeInput{Context: ctx, UserId: userId, Typ: typ, Status: status}) @@ -527,7 +527,7 @@ func (d *DataRepository) GetUsersWithBGDataSince(ctx context.Context, lastUpdate return output.UserIDs, output.Error } -func (d *DataRepository) DistinctUserIDs(ctx context.Context, typ string) ([]string, error) { +func (d *DataRepository) DistinctUserIDs(ctx context.Context, typ []string) ([]string, error) { d.DistinctUserIDsInvocations++ d.DistinctUserIDsInputs = append(d.DistinctUserIDsInputs, DistinctUserIDsInput{Context: ctx, Typ: typ}) diff --git a/data/summary/store/store.go b/data/summary/store/store.go index d422f5b1c..a40b3d2a1 100644 --- a/data/summary/store/store.go +++ b/data/summary/store/store.go @@ -84,7 +84,7 @@ func (r *TypelessRepo) DeleteSummary(ctx context.Context, userId string) error { // GetNumberOfDaysWithRealtimeData processes two slices of Item and returns an int count of days with realtime records. // this currently doesn't handle N slices, only 1-2, might need adjustment for more types. -func GetNumberOfDaysWithRealtimeData(a, b []*types.Bucket[*types.CGMBucketData, types.CGMBucketData]) int { +func GetNumberOfDaysWithRealtimeData(a, b []*types.Bucket[*types.ContinuousBucketData, types.ContinuousBucketData]) int { var count int // Calculate the offset in hours between the first items of each list @@ -143,7 +143,7 @@ func GetNumberOfDaysWithRealtimeData(a, b []*types.Bucket[*types.CGMBucketData, return count } -func (r *TypelessRepo) GetRealtimeDaysForUsers(ctx context.Context, userIds []string, startTime time.Time, endTime time.Time) (map[string]int, error) { +func (r *Repo[A, T]) GetRealtimeDaysForUsers(ctx context.Context, userIds []string, startTime time.Time, endTime time.Time) (map[string]int, error) { if ctx == nil { return nil, errors.New("context is missing") } @@ -193,12 +193,12 @@ func (r *TypelessRepo) GetRealtimeDaysForUsers(ctx context.Context, userIds []st return nil, fmt.Errorf("unable to get realtime summaries for %s: %w", userId, err) } - var userSummaries []types.Summary[*types.CGMStats, types.CGMStats] + var userSummaries []types.Summary[*types.ContinuousStats, types.ContinuousStats] if err = cursor.All(ctx, &userSummaries); err != nil { return nil, fmt.Errorf("unable to decode summaries for user %s: %w", userId, err) } - var buckets [][]*types.Bucket[*types.CGMBucketData, types.CGMBucketData] + var buckets [][]*types.Bucket[*types.ContinuousBucketData, types.ContinuousBucketData] for i := 0; i < len(userSummaries); i++ { if len(userSummaries[i].Stats.Buckets) > 0 { diff --git a/data/summary/store/store_test.go b/data/summary/store/store_test.go index 9d92a7ef7..11fcd0783 100644 --- a/data/summary/store/store_test.go +++ b/data/summary/store/store_test.go @@ -33,6 +33,7 @@ var _ = Describe("Summary Stats Mongo", func() { BeforeEach(func() { logger = logTest.NewLogger() + ctx = log.NewContextWithLogger(context.Background(), logger) config = storeStructuredMongoTest.NewConfig() }) @@ -67,7 +68,7 @@ var _ = Describe("Summary Stats Mongo", func() { Expect(bgmStore).ToNot(BeNil()) }) - It("Typeless Repo", func() { + It("Continuous Repo", func() { store, err = dataStoreMongo.NewStore(config) Expect(err).ToNot(HaveOccurred()) Expect(store).ToNot(BeNil()) @@ -75,8 +76,8 @@ var _ = Describe("Summary Stats Mongo", func() { summaryRepository = store.NewSummaryRepository().GetStore() Expect(summaryRepository).ToNot(BeNil()) - typelessStore := dataStoreSummary.NewTypeless(summaryRepository) - Expect(typelessStore).ToNot(BeNil()) + continuousStore := dataStoreSummary.New[*types.ContinuousStats](summaryRepository) + Expect(continuousStore).ToNot(BeNil()) }) }) @@ -99,9 +100,17 @@ var _ = Describe("Summary Stats Mongo", func() { }) Context("With a repository", func() { + var userId string + var userIdOther string + var typelessStore *dataStoreSummary.TypelessRepo + BeforeEach(func() { summaryRepository = store.NewSummaryRepository().GetStore() Expect(summaryRepository).ToNot(BeNil()) + + userId = userTest.RandomID() + userIdOther = userTest.RandomID() + typelessStore = dataStoreSummary.NewTypeless(summaryRepository) }) AfterEach(func() { @@ -109,28 +118,200 @@ var _ = Describe("Summary Stats Mongo", func() { Expect(err).ToNot(HaveOccurred()) }) - Context("With typed Stores", func() { - var userId string - var userIdOther string - var cgmStore *dataStoreSummary.Repo[*types.CGMStats, types.CGMStats] - var bgmStore *dataStoreSummary.Repo[*types.BGMStats, types.BGMStats] - var typelessStore *dataStoreSummary.TypelessRepo + Context("Continuous", func() { + var continuousStore *dataStoreSummary.Repo[*types.ContinuousStats, types.ContinuousStats] + var userContinuousSummary *types.Summary[*types.ContinuousStats, types.ContinuousStats] + + BeforeEach(func() { + continuousStore = dataStoreSummary.New[*types.ContinuousStats](summaryRepository) + }) + + Context("ReplaceSummary", func() { + It("Insert Summary with missing Type", func() { + userContinuousSummary = test.RandomContinousSummary(userId) + userContinuousSummary.Type = "" + + err = continuousStore.ReplaceSummary(ctx, userContinuousSummary) + Expect(err).To(HaveOccurred()) + Expect(err).To(MatchError("invalid summary type '', expected 'continuous'")) + }) + + It("Insert Summary with invalid Type", func() { + userContinuousSummary = test.RandomContinousSummary(userId) + userContinuousSummary.Type = "asdf" + + err = continuousStore.ReplaceSummary(ctx, userContinuousSummary) + Expect(err).To(HaveOccurred()) + Expect(err).To(MatchError("invalid summary type 'asdf', expected 'bgm'")) + }) + + It("Insert Summary", func() { + userContinuousSummary = test.RandomContinousSummary(userId) + Expect(userContinuousSummary.Type).To(Equal("bgm")) + + err = continuousStore.ReplaceSummary(ctx, userContinuousSummary) + Expect(err).ToNot(HaveOccurred()) + + userContinuousSummaryWritten, err := continuousStore.GetSummary(ctx, userId) + Expect(err).ToNot(HaveOccurred()) + + // copy id, as that was mongo generated + userContinuousSummary.ID = userContinuousSummaryWritten.ID + Expect(userContinuousSummaryWritten).To(Equal(userContinuousSummary)) + }) + + It("Update Summary", func() { + var userContinuousSummaryTwo *types.Summary[*types.ContinuousStats, types.ContinuousStats] + var userContinuousSummaryWritten *types.Summary[*types.ContinuousStats, types.ContinuousStats] + var userContinuousSummaryWrittenTwo *types.Summary[*types.ContinuousStats, types.ContinuousStats] + + // generate and insert first summary + userContinuousSummary = test.RandomContinousSummary(userId) + Expect(userContinuousSummary.Type).To(Equal("bgm")) + + err = continuousStore.ReplaceSummary(ctx, userContinuousSummary) + Expect(err).ToNot(HaveOccurred()) + + // confirm first summary was written, get ID + userContinuousSummaryWritten, err = continuousStore.GetSummary(ctx, userId) + Expect(err).ToNot(HaveOccurred()) + + // copy id, as that was mongo generated + userContinuousSummary.ID = userContinuousSummaryWritten.ID + Expect(userContinuousSummaryWritten).To(Equal(userContinuousSummary)) + + // generate a new summary with same type and user, and upsert + userContinuousSummaryTwo = test.RandomContinousSummary(userId) + err = continuousStore.ReplaceSummary(ctx, userContinuousSummaryTwo) + Expect(err).ToNot(HaveOccurred()) + + userContinuousSummaryWrittenTwo, err = continuousStore.GetSummary(ctx, userId) + Expect(err).ToNot(HaveOccurred()) + + // confirm the ID was unchanged + Expect(userContinuousSummaryWrittenTwo.ID).To(Equal(userContinuousSummaryWritten.ID)) + + // confirm the written summary matches the new summary + userContinuousSummaryWrittenTwo.ID = userContinuousSummaryWritten.ID + Expect(userContinuousSummaryWrittenTwo).To(Equal(userContinuousSummaryTwo)) + }) + }) + + Context("DeleteSummary", func() { + It("Delete Summary with empty context", func() { + err = continuousStore.DeleteSummary(nil, userId) + Expect(err).To(HaveOccurred()) + Expect(err).To(MatchError("context is missing")) + }) + + It("Delete Summary with empty userId", func() { + err = continuousStore.DeleteSummary(ctx, "") + Expect(err).To(HaveOccurred()) + Expect(err).To(MatchError("userId is missing")) + }) + + It("Delete Summary", func() { + var userContinuousSummaryWritten *types.Summary[*types.ContinuousStats, types.ContinuousStats] + + userContinuousSummary = test.RandomContinousSummary(userId) + Expect(userContinuousSummary.Type).To(Equal("cgm")) + + err = continuousStore.ReplaceSummary(ctx, userContinuousSummary) + Expect(err).ToNot(HaveOccurred()) + + // confirm writes + userContinuousSummaryWritten, err = continuousStore.GetSummary(ctx, userId) + Expect(err).ToNot(HaveOccurred()) + Expect(userContinuousSummaryWritten).ToNot(BeNil()) + // delete + err = continuousStore.DeleteSummary(ctx, userId) + Expect(err).ToNot(HaveOccurred()) + + // confirm delete + userContinuousSummaryWritten, err = continuousStore.GetSummary(ctx, userId) + Expect(err).ToNot(HaveOccurred()) + Expect(userContinuousSummaryWritten).To(BeNil()) + }) + }) + + Context("CreateSummaries", func() { + It("Create summaries with missing context", func() { + var summaries = []*types.Summary[*types.ContinuousStats, types.ContinuousStats]{ + test.RandomContinousSummary(userId), + test.RandomContinousSummary(userIdOther), + } + + _, err = continuousStore.CreateSummaries(nil, summaries) + Expect(err).To(HaveOccurred()) + Expect(err).To(MatchError("context is missing")) + }) + + It("Create summaries with missing summaries", func() { + _, err = continuousStore.CreateSummaries(ctx, nil) + Expect(err).To(HaveOccurred()) + Expect(err).To(MatchError("summaries for create missing")) + }) + + It("Create summaries with an invalid type", func() { + var summaries = []*types.Summary[*types.ContinuousStats, types.ContinuousStats]{ + test.RandomContinousSummary(userId), + test.RandomContinousSummary(userIdOther), + } + + summaries[0].Type = "bgm" + + _, err = continuousStore.CreateSummaries(ctx, summaries) + Expect(err).To(HaveOccurred()) + Expect(err).To(MatchError("invalid summary type 'bgm', expected 'continuous' at index 0")) + }) + + It("Create summaries with an empty userId", func() { + var summaries = []*types.Summary[*types.ContinuousStats, types.ContinuousStats]{ + test.RandomContinousSummary(userId), + test.RandomContinousSummary(userIdOther), + } + + summaries[0].UserID = "" + + _, err = continuousStore.CreateSummaries(ctx, summaries) + Expect(err).To(HaveOccurred()) + Expect(err).To(MatchError("userId is missing at index 0")) + }) + + It("Create summaries", func() { + var count int + var summaries = []*types.Summary[*types.ContinuousStats, types.ContinuousStats]{ + test.RandomContinousSummary(userId), + test.RandomContinousSummary(userIdOther), + } + + count, err = continuousStore.CreateSummaries(ctx, summaries) + Expect(err).ToNot(HaveOccurred()) + Expect(count).To(Equal(2)) + + for i := 0; i < 2; i++ { + userContinuousSummary, err = continuousStore.GetSummary(ctx, summaries[0].UserID) + Expect(err).ToNot(HaveOccurred()) + Expect(userContinuousSummary).ToNot(BeNil()) + summaries[i].ID = userContinuousSummary.ID + Expect(userContinuousSummary).To(Equal(summaries[0])) + } + }) + }) + + Context("SetOutdated", func() {}) + }) + + Context("CGM", func() { var userCGMSummary *types.Summary[*types.CGMStats, types.CGMStats] - var userBGMSummary *types.Summary[*types.BGMStats, types.BGMStats] + var cgmStore *dataStoreSummary.Repo[*types.CGMStats, types.CGMStats] BeforeEach(func() { - ctx = log.NewContextWithLogger(context.Background(), logger) - userId = userTest.RandomID() - userIdOther = userTest.RandomID() - cgmStore = dataStoreSummary.New[*types.CGMStats](summaryRepository) - bgmStore = dataStoreSummary.New[*types.BGMStats](summaryRepository) - typelessStore = dataStoreSummary.NewTypeless(summaryRepository) }) Context("ReplaceSummary", func() { - It("Insert Summary with missing context", func() { userCGMSummary = test.RandomCGMSummary(userId) err = cgmStore.ReplaceSummary(nil, userCGMSummary) @@ -155,7 +336,7 @@ var _ = Describe("Summary Stats Mongo", func() { Expect(err).To(MatchError("summary is missing UserID")) }) - It("Insert CGM Summary with missing Type", func() { + It("Insert Summary with missing Type", func() { userCGMSummary = test.RandomCGMSummary(userId) userCGMSummary.Type = "" @@ -164,7 +345,7 @@ var _ = Describe("Summary Stats Mongo", func() { Expect(err).To(MatchError("invalid summary type '', expected 'cgm'")) }) - It("Insert CGM Summary with invalid Type", func() { + It("Insert Summary with invalid Type", func() { userCGMSummary = test.RandomCGMSummary(userId) userCGMSummary.Type = "bgm" @@ -173,25 +354,7 @@ var _ = Describe("Summary Stats Mongo", func() { Expect(err).To(MatchError("invalid summary type 'bgm', expected 'cgm'")) }) - It("Insert BGM Summary with missing Type", func() { - userBGMSummary = test.RandomBGMSummary(userId) - userBGMSummary.Type = "" - - err = bgmStore.ReplaceSummary(ctx, userBGMSummary) - Expect(err).To(HaveOccurred()) - Expect(err).To(MatchError("invalid summary type '', expected 'bgm'")) - }) - - It("Insert BGM Summary with invalid Type", func() { - userBGMSummary = test.RandomBGMSummary(userId) - userBGMSummary.Type = "asdf" - - err = bgmStore.ReplaceSummary(ctx, userBGMSummary) - Expect(err).To(HaveOccurred()) - Expect(err).To(MatchError("invalid summary type 'asdf', expected 'bgm'")) - }) - - It("Insert CGM Summary", func() { + It("Insert Summary", func() { userCGMSummary = test.RandomCGMSummary(userId) Expect(userCGMSummary.Type).To(Equal("cgm")) @@ -206,22 +369,7 @@ var _ = Describe("Summary Stats Mongo", func() { Expect(userCGMSummaryWritten).To(Equal(userCGMSummary)) }) - It("Insert BGM Summary", func() { - userBGMSummary = test.RandomBGMSummary(userId) - Expect(userBGMSummary.Type).To(Equal("bgm")) - - err = bgmStore.ReplaceSummary(ctx, userBGMSummary) - Expect(err).ToNot(HaveOccurred()) - - userBGMSummaryWritten, err := bgmStore.GetSummary(ctx, userId) - Expect(err).ToNot(HaveOccurred()) - - // copy id, as that was mongo generated - userBGMSummary.ID = userBGMSummaryWritten.ID - Expect(userBGMSummaryWritten).To(Equal(userBGMSummary)) - }) - - It("Update CGM Summary", func() { + It("Update Summary", func() { var userCGMSummaryTwo *types.Summary[*types.CGMStats, types.CGMStats] var userCGMSummaryWritten *types.Summary[*types.CGMStats, types.CGMStats] var userCGMSummaryWrittenTwo *types.Summary[*types.CGMStats, types.CGMStats] @@ -256,46 +404,9 @@ var _ = Describe("Summary Stats Mongo", func() { userCGMSummaryTwo.ID = userCGMSummaryWritten.ID Expect(userCGMSummaryWrittenTwo).To(Equal(userCGMSummaryTwo)) }) - - It("Update BGM Summary", func() { - var userBGMSummaryTwo *types.Summary[*types.BGMStats, types.BGMStats] - var userBGMSummaryWritten *types.Summary[*types.BGMStats, types.BGMStats] - var userBGMSummaryWrittenTwo *types.Summary[*types.BGMStats, types.BGMStats] - - // generate and insert first summary - userBGMSummary = test.RandomBGMSummary(userId) - Expect(userBGMSummary.Type).To(Equal("bgm")) - - err = bgmStore.ReplaceSummary(ctx, userBGMSummary) - Expect(err).ToNot(HaveOccurred()) - - // confirm first summary was written, get ID - userBGMSummaryWritten, err = bgmStore.GetSummary(ctx, userId) - Expect(err).ToNot(HaveOccurred()) - - // copy id, as that was mongo generated - userBGMSummary.ID = userBGMSummaryWritten.ID - Expect(userBGMSummaryWritten).To(Equal(userBGMSummary)) - - // generate a new summary with same type and user, and upsert - userBGMSummaryTwo = test.RandomBGMSummary(userId) - err = bgmStore.ReplaceSummary(ctx, userBGMSummaryTwo) - Expect(err).ToNot(HaveOccurred()) - - userBGMSummaryWrittenTwo, err = bgmStore.GetSummary(ctx, userId) - Expect(err).ToNot(HaveOccurred()) - - // confirm the ID was unchanged - Expect(userBGMSummaryWrittenTwo.ID).To(Equal(userBGMSummaryWritten.ID)) - - // confirm the written summary matches the new summary - userBGMSummaryTwo.ID = userBGMSummaryWritten.ID - Expect(userBGMSummaryWrittenTwo).To(Equal(userBGMSummaryTwo)) - }) }) Context("DeleteSummary", func() { - It("Delete Summary with empty context", func() { err = cgmStore.DeleteSummary(nil, userId) Expect(err).To(HaveOccurred()) @@ -308,7 +419,7 @@ var _ = Describe("Summary Stats Mongo", func() { Expect(err).To(MatchError("userId is missing")) }) - It("Delete CGM Summary", func() { + It("Delete Summary", func() { var userCGMSummaryWritten *types.Summary[*types.CGMStats, types.CGMStats] userCGMSummary = test.RandomCGMSummary(userId) @@ -331,74 +442,9 @@ var _ = Describe("Summary Stats Mongo", func() { Expect(err).ToNot(HaveOccurred()) Expect(userCGMSummaryWritten).To(BeNil()) }) - - It("Delete BGM Summary", func() { - var userBGMSummaryWritten *types.Summary[*types.BGMStats, types.BGMStats] - - userBGMSummary = test.RandomBGMSummary(userId) - Expect(userBGMSummary.Type).To(Equal("bgm")) - - err = bgmStore.ReplaceSummary(ctx, userBGMSummary) - Expect(err).ToNot(HaveOccurred()) - - // confirm writes - userBGMSummaryWritten, err = bgmStore.GetSummary(ctx, userId) - Expect(err).ToNot(HaveOccurred()) - Expect(userBGMSummaryWritten).ToNot(BeNil()) - - // delete - err = bgmStore.DeleteSummary(ctx, userId) - Expect(err).ToNot(HaveOccurred()) - - // confirm delete - userBGMSummaryWritten, err = bgmStore.GetSummary(ctx, userId) - Expect(err).ToNot(HaveOccurred()) - Expect(userBGMSummaryWritten).To(BeNil()) - }) - - It("Delete All Summaries for User", func() { - var userCGMSummaryWritten *types.Summary[*types.CGMStats, types.CGMStats] - var userBGMSummaryWritten *types.Summary[*types.BGMStats, types.BGMStats] - - userCGMSummary = test.RandomCGMSummary(userId) - Expect(userCGMSummary.Type).To(Equal("cgm")) - - err = cgmStore.ReplaceSummary(ctx, userCGMSummary) - Expect(err).ToNot(HaveOccurred()) - - userBGMSummary = test.RandomBGMSummary(userId) - Expect(userBGMSummary.Type).To(Equal("bgm")) - - err = bgmStore.ReplaceSummary(ctx, userBGMSummary) - Expect(err).ToNot(HaveOccurred()) - - // confirm writes - userCGMSummaryWritten, err = cgmStore.GetSummary(ctx, userId) - Expect(err).ToNot(HaveOccurred()) - Expect(userCGMSummaryWritten).ToNot(BeNil()) - - userBGMSummaryWritten, err = bgmStore.GetSummary(ctx, userId) - Expect(err).ToNot(HaveOccurred()) - Expect(userBGMSummaryWritten).ToNot(BeNil()) - - // delete - err = typelessStore.DeleteSummary(ctx, userId) - Expect(err).ToNot(HaveOccurred()) - - // confirm delete - userCGMSummaryWritten, err = cgmStore.GetSummary(ctx, userId) - Expect(err).ToNot(HaveOccurred()) - Expect(userCGMSummaryWritten).To(BeNil()) - - userBGMSummaryWritten, err = bgmStore.GetSummary(ctx, userId) - Expect(err).ToNot(HaveOccurred()) - Expect(userBGMSummaryWritten).To(BeNil()) - }) - }) Context("CreateSummaries", func() { - It("Create summaries with missing context", func() { var summaries = []*types.Summary[*types.CGMStats, types.CGMStats]{ test.RandomCGMSummary(userId), @@ -416,7 +462,7 @@ var _ = Describe("Summary Stats Mongo", func() { Expect(err).To(MatchError("summaries for create missing")) }) - It("Create CGM summaries with an invalid type", func() { + It("Create summaries with an invalid type", func() { var summaries = []*types.Summary[*types.CGMStats, types.CGMStats]{ test.RandomCGMSummary(userId), test.RandomCGMSummary(userIdOther), @@ -429,19 +475,6 @@ var _ = Describe("Summary Stats Mongo", func() { Expect(err).To(MatchError("invalid summary type 'bgm', expected 'cgm' at index 0")) }) - It("Create BGM summaries with an invalid type", func() { - var summaries = []*types.Summary[*types.BGMStats, types.BGMStats]{ - test.RandomBGMSummary(userId), - test.RandomBGMSummary(userIdOther), - } - - summaries[0].Type = "cgm" - - _, err = bgmStore.CreateSummaries(ctx, summaries) - Expect(err).To(HaveOccurred()) - Expect(err).To(MatchError("invalid summary type 'cgm', expected 'bgm' at index 0")) - }) - It("Create summaries with an empty userId", func() { var summaries = []*types.Summary[*types.CGMStats, types.CGMStats]{ test.RandomCGMSummary(userId), @@ -455,7 +488,7 @@ var _ = Describe("Summary Stats Mongo", func() { Expect(err).To(MatchError("userId is missing at index 0")) }) - It("Create CGM summaries", func() { + It("Create summaries", func() { var count int var summaries = []*types.Summary[*types.CGMStats, types.CGMStats]{ test.RandomCGMSummary(userId), @@ -474,837 +507,999 @@ var _ = Describe("Summary Stats Mongo", func() { Expect(userCGMSummary).To(Equal(summaries[0])) } }) + }) - It("Create BGM summaries", func() { - var count int - var summaries = []*types.Summary[*types.BGMStats, types.BGMStats]{ - test.RandomBGMSummary(userId), - test.RandomBGMSummary(userIdOther), - } - - count, err = bgmStore.CreateSummaries(ctx, summaries) - Expect(err).ToNot(HaveOccurred()) - Expect(count).To(Equal(2)) + Context("SetOutdated", func() {}) + }) - for i := 0; i < 2; i++ { - userBGMSummary, err = bgmStore.GetSummary(ctx, summaries[0].UserID) - Expect(err).ToNot(HaveOccurred()) - Expect(userBGMSummary).ToNot(BeNil()) - summaries[i].ID = userBGMSummary.ID - Expect(userBGMSummary).To(Equal(summaries[0])) - } - }) + Context("BGM", func() { + var bgmStore *dataStoreSummary.Repo[*types.BGMStats, types.BGMStats] + var userBGMSummary *types.Summary[*types.BGMStats, types.BGMStats] + BeforeEach(func() { + bgmStore = dataStoreSummary.New[*types.BGMStats](summaryRepository) }) - Context("SetOutdated", func() { - var outdatedSince *time.Time + Context("ReplaceSummary", func() { + It("Insert Summary with missing Type", func() { + userBGMSummary = test.RandomBGMSummary(userId) + userBGMSummary.Type = "" - It("With missing context", func() { - outdatedSince, err = cgmStore.SetOutdated(nil, userId, types.OutdatedReasonDataAdded) + err = bgmStore.ReplaceSummary(ctx, userBGMSummary) Expect(err).To(HaveOccurred()) - Expect(err).To(MatchError("context is missing")) - Expect(outdatedSince).To(BeNil()) + Expect(err).To(MatchError("invalid summary type '', expected 'bgm'")) }) - It("With missing userId", func() { - outdatedSince, err = cgmStore.SetOutdated(ctx, "", types.OutdatedReasonDataAdded) + It("Insert Summary with invalid Type", func() { + userBGMSummary = test.RandomBGMSummary(userId) + userBGMSummary.Type = "asdf" + + err = bgmStore.ReplaceSummary(ctx, userBGMSummary) Expect(err).To(HaveOccurred()) - Expect(err).To(MatchError("userId is missing")) - Expect(outdatedSince).To(BeNil()) + Expect(err).To(MatchError("invalid summary type 'asdf', expected 'bgm'")) }) - It("With multiple reasons", func() { - outdatedSinceOriginal, err := cgmStore.SetOutdated(ctx, userId, types.OutdatedReasonDataAdded) - Expect(err).ToNot(HaveOccurred()) - Expect(outdatedSinceOriginal).ToNot(BeNil()) - - userCGMSummary, err = cgmStore.GetSummary(ctx, userId) - Expect(err).ToNot(HaveOccurred()) - Expect(userCGMSummary.Dates.OutdatedSince).ToNot(BeNil()) - Expect(userCGMSummary.Dates.OutdatedSince).To(Equal(outdatedSinceOriginal)) - Expect(userCGMSummary.Dates.OutdatedReason).To(ConsistOf([]string{types.OutdatedReasonDataAdded})) - - outdatedSince, err = cgmStore.SetOutdated(ctx, userId, types.OutdatedReasonBackfill) - Expect(err).ToNot(HaveOccurred()) - Expect(outdatedSince).ToNot(BeNil()) - - userCGMSummary, err = cgmStore.GetSummary(ctx, userId) - Expect(err).ToNot(HaveOccurred()) - Expect(userCGMSummary.Dates.OutdatedSince).ToNot(BeNil()) - Expect(userCGMSummary.Dates.OutdatedSince).To(Equal(outdatedSince)) - Expect(userCGMSummary.Dates.OutdatedReason).To(ConsistOf([]string{types.OutdatedReasonDataAdded, types.OutdatedReasonBackfill})) - - outdatedSince, err = cgmStore.SetOutdated(ctx, userId, types.OutdatedReasonDataAdded) - Expect(err).ToNot(HaveOccurred()) - Expect(outdatedSince).ToNot(BeNil()) + It("Insert Summary", func() { + userBGMSummary = test.RandomBGMSummary(userId) + Expect(userBGMSummary.Type).To(Equal("bgm")) - userCGMSummary, err = cgmStore.GetSummary(ctx, userId) + err = bgmStore.ReplaceSummary(ctx, userBGMSummary) Expect(err).ToNot(HaveOccurred()) - Expect(userCGMSummary.Dates.OutdatedSince).ToNot(BeNil()) - Expect(userCGMSummary.Dates.OutdatedSince).To(Equal(outdatedSince)) - Expect(userCGMSummary.Dates.OutdatedReason).To(ConsistOf([]string{types.OutdatedReasonDataAdded, types.OutdatedReasonBackfill})) - }) - It("With no existing CGM summary", func() { - outdatedSince, err = cgmStore.SetOutdated(ctx, userId, types.OutdatedReasonDataAdded) + userBGMSummaryWritten, err := bgmStore.GetSummary(ctx, userId) Expect(err).ToNot(HaveOccurred()) - Expect(outdatedSince).ToNot(BeNil()) - userCGMSummary, err = cgmStore.GetSummary(ctx, userId) - Expect(err).ToNot(HaveOccurred()) - Expect(userCGMSummary.Dates.OutdatedSince).ToNot(BeNil()) - Expect(userCGMSummary.Dates.OutdatedSince).To(Equal(outdatedSince)) + // copy id, as that was mongo generated + userBGMSummary.ID = userBGMSummaryWritten.ID + Expect(userBGMSummaryWritten).To(Equal(userBGMSummary)) }) - It("With an existing non-outdated CGM summary", func() { - var userCGMSummaryWritten *types.Summary[*types.CGMStats, types.CGMStats] - - userCGMSummary = test.RandomCGMSummary(userId) - userCGMSummary.Dates.OutdatedSince = nil - err = cgmStore.ReplaceSummary(ctx, userCGMSummary) - Expect(err).ToNot(HaveOccurred()) + It("Update Summary", func() { + var userBGMSummaryTwo *types.Summary[*types.BGMStats, types.BGMStats] + var userBGMSummaryWritten *types.Summary[*types.BGMStats, types.BGMStats] + var userBGMSummaryWrittenTwo *types.Summary[*types.BGMStats, types.BGMStats] - outdatedSince, err = cgmStore.SetOutdated(ctx, userId, types.OutdatedReasonDataAdded) - Expect(err).ToNot(HaveOccurred()) - Expect(outdatedSince).ToNot(BeNil()) + // generate and insert first summary + userBGMSummary = test.RandomBGMSummary(userId) + Expect(userBGMSummary.Type).To(Equal("bgm")) - userCGMSummaryWritten, err = cgmStore.GetSummary(ctx, userId) + err = bgmStore.ReplaceSummary(ctx, userBGMSummary) Expect(err).ToNot(HaveOccurred()) - Expect(userCGMSummaryWritten.Dates.OutdatedSince).ToNot(BeNil()) - Expect(userCGMSummaryWritten.Dates.OutdatedSince).To(Equal(outdatedSince)) - - }) - - It("With an existing outdated CGM summary", func() { - var userCGMSummaryWritten *types.Summary[*types.CGMStats, types.CGMStats] - var fiveMinutesAgo = time.Now().Add(time.Duration(-5) * time.Minute).UTC().Truncate(time.Millisecond) - userCGMSummary = test.RandomCGMSummary(userId) - userCGMSummary.Dates.OutdatedSince = &fiveMinutesAgo - err = cgmStore.ReplaceSummary(ctx, userCGMSummary) + // confirm first summary was written, get ID + userBGMSummaryWritten, err = bgmStore.GetSummary(ctx, userId) Expect(err).ToNot(HaveOccurred()) - outdatedSince, err = cgmStore.SetOutdated(ctx, userId, types.OutdatedReasonDataAdded) - Expect(err).ToNot(HaveOccurred()) - Expect(outdatedSince).ToNot(BeNil()) + // copy id, as that was mongo generated + userBGMSummary.ID = userBGMSummaryWritten.ID + Expect(userBGMSummaryWritten).To(Equal(userBGMSummary)) - userCGMSummaryWritten, err = cgmStore.GetSummary(ctx, userId) + // generate a new summary with same type and user, and upsert + userBGMSummaryTwo = test.RandomBGMSummary(userId) + err = bgmStore.ReplaceSummary(ctx, userBGMSummaryTwo) Expect(err).ToNot(HaveOccurred()) - Expect(userCGMSummaryWritten.Dates.OutdatedSince).ToNot(BeNil()) - Expect(userCGMSummaryWritten.Dates.OutdatedSince).To(Equal(outdatedSince)) - }) - - It("With an existing outdated CGM summary beyond the outdatedSinceLimit", func() { - var userCGMSummaryWritten *types.Summary[*types.CGMStats, types.CGMStats] - now := time.Now().UTC().Truncate(time.Millisecond) - userCGMSummary = test.RandomCGMSummary(userId) - userCGMSummary.Dates.OutdatedSince = &now - err = cgmStore.ReplaceSummary(ctx, userCGMSummary) + userBGMSummaryWrittenTwo, err = bgmStore.GetSummary(ctx, userId) Expect(err).ToNot(HaveOccurred()) - outdatedSince, err = cgmStore.SetOutdated(ctx, userId, types.OutdatedReasonDataAdded) - Expect(err).ToNot(HaveOccurred()) - Expect(outdatedSince).ToNot(BeNil()) + // confirm the ID was unchanged + Expect(userBGMSummaryWrittenTwo.ID).To(Equal(userBGMSummaryWritten.ID)) - userCGMSummaryWritten, err = cgmStore.GetSummary(ctx, userId) - Expect(err).ToNot(HaveOccurred()) - Expect(userCGMSummaryWritten.Dates.OutdatedSince).ToNot(BeNil()) + // confirm the written summary matches the new summary + userBGMSummaryTwo.ID = userBGMSummaryWritten.ID + Expect(userBGMSummaryWrittenTwo).To(Equal(userBGMSummaryTwo)) }) + }) - It("With an existing outdated CGM summary with schema migration reason", func() { - var userCGMSummaryWritten *types.Summary[*types.CGMStats, types.CGMStats] - now := time.Now().UTC().Truncate(time.Millisecond) - fiveMinutesAgo := now.Add(time.Duration(-5) * time.Minute) - - userCGMSummary = test.RandomCGMSummary(userId) - userCGMSummary.Dates.OutdatedSince = &fiveMinutesAgo - userCGMSummary.Dates.OutdatedReason = []string{types.OutdatedReasonUploadCompleted} - Expect(userCGMSummary.Stats.Buckets).ToNot(HaveLen(0)) - Expect(userCGMSummary.Stats.Periods).ToNot(HaveLen(0)) - - err = cgmStore.ReplaceSummary(ctx, userCGMSummary) - Expect(err).ToNot(HaveOccurred()) - - outdatedSince, err = cgmStore.SetOutdated(ctx, userId, types.OutdatedReasonSchemaMigration) - Expect(err).ToNot(HaveOccurred()) - Expect(outdatedSince).ToNot(BeNil()) - - userCGMSummaryWritten, err = cgmStore.GetSummary(ctx, userId) - Expect(err).ToNot(HaveOccurred()) - Expect(userCGMSummaryWritten.Dates.OutdatedSince).ToNot(BeNil()) - Expect(userCGMSummaryWritten.Dates.OutdatedSince).To(Equal(outdatedSince)) - Expect(userCGMSummaryWritten.Stats.Buckets).To(HaveLen(0)) - Expect(userCGMSummaryWritten.Stats.Periods).To(HaveLen(0)) - Expect(userCGMSummaryWritten.Dates.LastData).To(BeNil()) - Expect(userCGMSummaryWritten.Dates.FirstData).To(BeNil()) - Expect(userCGMSummaryWritten.Dates.LastUpdatedDate.IsZero()).To(BeTrue()) - Expect(userCGMSummaryWritten.Dates.LastUploadDate).To(BeNil()) - Expect(userCGMSummaryWritten.Dates.OutdatedReason).To(ConsistOf(types.OutdatedReasonSchemaMigration, types.OutdatedReasonUploadCompleted)) + Context("DeleteSummary", func() { + It("Delete Summary with empty context", func() { + err = bgmStore.DeleteSummary(nil, userId) + Expect(err).To(HaveOccurred()) + Expect(err).To(MatchError("context is missing")) }) - It("With no existing BGM summary", func() { - outdatedSince, err = bgmStore.SetOutdated(ctx, userId, types.OutdatedReasonDataAdded) - Expect(err).ToNot(HaveOccurred()) - Expect(outdatedSince).ToNot(BeNil()) - - userBGMSummary, err = bgmStore.GetSummary(ctx, userId) - Expect(err).ToNot(HaveOccurred()) - Expect(userBGMSummary.Dates.OutdatedSince).ToNot(BeNil()) - Expect(userBGMSummary.Dates.OutdatedSince).To(Equal(outdatedSince)) + It("Delete Summary with empty userId", func() { + err = bgmStore.DeleteSummary(ctx, "") + Expect(err).To(HaveOccurred()) + Expect(err).To(MatchError("userId is missing")) }) - It("With an existing non-outdated BGM summary", func() { + It("Delete Summary", func() { var userBGMSummaryWritten *types.Summary[*types.BGMStats, types.BGMStats] userBGMSummary = test.RandomBGMSummary(userId) - userBGMSummary.Dates.OutdatedSince = nil - err = bgmStore.ReplaceSummary(ctx, userBGMSummary) - Expect(err).ToNot(HaveOccurred()) - - outdatedSince, err = bgmStore.SetOutdated(ctx, userId, types.OutdatedReasonDataAdded) - Expect(err).ToNot(HaveOccurred()) - Expect(outdatedSince).ToNot(BeNil()) - - userBGMSummaryWritten, err = bgmStore.GetSummary(ctx, userId) - Expect(err).ToNot(HaveOccurred()) - Expect(userBGMSummaryWritten.Dates.OutdatedSince).ToNot(BeNil()) - Expect(userBGMSummaryWritten.Dates.OutdatedSince).To(Equal(outdatedSince)) - - }) - - It("With an existing outdated BGM summary", func() { - var userBGMSummaryWritten *types.Summary[*types.BGMStats, types.BGMStats] - var fiveMinutesAgo = time.Now().Add(time.Duration(-5) * time.Minute).UTC().Truncate(time.Millisecond) + Expect(userBGMSummary.Type).To(Equal("bgm")) - userBGMSummary = test.RandomBGMSummary(userId) - userBGMSummary.Dates.OutdatedSince = &fiveMinutesAgo err = bgmStore.ReplaceSummary(ctx, userBGMSummary) Expect(err).ToNot(HaveOccurred()) - outdatedSince, err = bgmStore.SetOutdated(ctx, userId, types.OutdatedReasonDataAdded) - Expect(err).ToNot(HaveOccurred()) - Expect(outdatedSince).ToNot(BeNil()) - + // confirm writes userBGMSummaryWritten, err = bgmStore.GetSummary(ctx, userId) Expect(err).ToNot(HaveOccurred()) - Expect(userBGMSummaryWritten.Dates.OutdatedSince).ToNot(BeNil()) - Expect(userBGMSummaryWritten.Dates.OutdatedSince).To(Equal(outdatedSince)) - - }) - - It("With an existing outdated BGM summary with schema migration reason", func() { - var userBGMSummaryWritten *types.Summary[*types.BGMStats, types.BGMStats] - now := time.Now().UTC().Truncate(time.Millisecond) - fiveMinutesAgo := now.Add(time.Duration(-5) * time.Minute) - - userBGMSummary = test.RandomBGMSummary(userId) - userBGMSummary.Dates.OutdatedSince = &fiveMinutesAgo - userBGMSummary.Dates.OutdatedReason = []string{types.OutdatedReasonUploadCompleted} - Expect(userBGMSummary.Stats.Buckets).ToNot(HaveLen(0)) - Expect(userBGMSummary.Stats.Periods).ToNot(HaveLen(0)) - - err = bgmStore.ReplaceSummary(ctx, userBGMSummary) - Expect(err).ToNot(HaveOccurred()) + Expect(userBGMSummaryWritten).ToNot(BeNil()) - outdatedSince, err = bgmStore.SetOutdated(ctx, userId, types.OutdatedReasonSchemaMigration) + // delete + err = bgmStore.DeleteSummary(ctx, userId) Expect(err).ToNot(HaveOccurred()) - Expect(outdatedSince).ToNot(BeNil()) + // confirm delete userBGMSummaryWritten, err = bgmStore.GetSummary(ctx, userId) Expect(err).ToNot(HaveOccurred()) - Expect(userBGMSummaryWritten.Dates.OutdatedSince).ToNot(BeNil()) - Expect(userBGMSummaryWritten.Dates.OutdatedSince).To(Equal(outdatedSince)) - Expect(userBGMSummaryWritten.Stats.Buckets).To(HaveLen(0)) - Expect(userBGMSummaryWritten.Stats.Periods).To(HaveLen(0)) - Expect(userBGMSummaryWritten.Dates.LastData).To(BeNil()) - Expect(userBGMSummaryWritten.Dates.FirstData).To(BeNil()) - Expect(userBGMSummaryWritten.Dates.LastUpdatedDate.IsZero()).To(BeTrue()) - Expect(userBGMSummaryWritten.Dates.LastUploadDate).To(BeNil()) - Expect(userBGMSummaryWritten.Dates.OutdatedReason).To(ConsistOf(types.OutdatedReasonSchemaMigration, types.OutdatedReasonUploadCompleted)) - + Expect(userBGMSummaryWritten).To(BeNil()) }) }) - Context("GetSummary", func() { + Context("CreateSummaries", func() { + It("Create summaries with missing context", func() { + var summaries = []*types.Summary[*types.BGMStats, types.BGMStats]{ + test.RandomBGMSummary(userId), + test.RandomBGMSummary(userIdOther), + } - It("With missing context", func() { - userCGMSummary, err = cgmStore.GetSummary(nil, userId) + _, err = bgmStore.CreateSummaries(nil, summaries) Expect(err).To(HaveOccurred()) Expect(err).To(MatchError("context is missing")) - Expect(userCGMSummary).To(BeNil()) }) - It("With missing userId", func() { - userCGMSummary, err = cgmStore.GetSummary(ctx, "") + It("Create summaries with missing summaries", func() { + _, err = bgmStore.CreateSummaries(ctx, nil) Expect(err).To(HaveOccurred()) - Expect(err).To(MatchError("userId is missing")) - Expect(userCGMSummary).To(BeNil()) - }) - - It("With no summary", func() { - userCGMSummary, err = cgmStore.GetSummary(ctx, userId) - Expect(err).ToNot(HaveOccurred()) - Expect(userCGMSummary).To(BeNil()) + Expect(err).To(MatchError("summaries for create missing")) }) - It("With multiple CGM summaries", func() { - var summaries = []*types.Summary[*types.CGMStats, types.CGMStats]{ - test.RandomCGMSummary(userId), - test.RandomCGMSummary(userIdOther), + It("Create summaries with an invalid type", func() { + var summaries = []*types.Summary[*types.BGMStats, types.BGMStats]{ + test.RandomBGMSummary(userId), + test.RandomBGMSummary(userIdOther), } - _, err = cgmStore.CreateSummaries(ctx, summaries) - Expect(err).ToNot(HaveOccurred()) - - userCGMSummary, err = cgmStore.GetSummary(ctx, userId) - Expect(err).ToNot(HaveOccurred()) - Expect(userCGMSummary).ToNot(BeNil()) + summaries[0].Type = "cgm" - summaries[0].ID = userCGMSummary.ID - Expect(userCGMSummary).To(Equal(summaries[0])) + _, err = bgmStore.CreateSummaries(ctx, summaries) + Expect(err).To(HaveOccurred()) + Expect(err).To(MatchError("invalid summary type 'cgm', expected 'bgm' at index 0")) }) - It("With multiple BGM summaries", func() { + It("Create summaries with an invalid type", func() { var summaries = []*types.Summary[*types.BGMStats, types.BGMStats]{ test.RandomBGMSummary(userId), test.RandomBGMSummary(userIdOther), } - _, err = bgmStore.CreateSummaries(ctx, summaries) - Expect(err).ToNot(HaveOccurred()) - - userBGMSummary, err = bgmStore.GetSummary(ctx, userId) - Expect(err).ToNot(HaveOccurred()) - Expect(userBGMSummary).ToNot(BeNil()) + summaries[0].Type = "cgm" - summaries[0].ID = userBGMSummary.ID - Expect(userBGMSummary).To(Equal(summaries[0])) + _, err = bgmStore.CreateSummaries(ctx, summaries) + Expect(err).To(HaveOccurred()) + Expect(err).To(MatchError("invalid summary type 'cgm', expected 'bgm' at index 0")) }) - It("Get CGM with multiple summaries of different type", func() { - var cgmSummaries = []*types.Summary[*types.CGMStats, types.CGMStats]{ - test.RandomCGMSummary(userId), - test.RandomCGMSummary(userIdOther), - } - - var bgmSummaries = []*types.Summary[*types.BGMStats, types.BGMStats]{ + It("Create summaries with an empty userId", func() { + var summaries = []*types.Summary[*types.BGMStats, types.BGMStats]{ test.RandomBGMSummary(userId), test.RandomBGMSummary(userIdOther), } - _, err = cgmStore.CreateSummaries(ctx, cgmSummaries) - Expect(err).ToNot(HaveOccurred()) - - _, err = bgmStore.CreateSummaries(ctx, bgmSummaries) - Expect(err).ToNot(HaveOccurred()) - - userCGMSummary, err = cgmStore.GetSummary(ctx, userId) - Expect(err).ToNot(HaveOccurred()) - Expect(userCGMSummary).ToNot(BeNil()) + summaries[0].UserID = "" - cgmSummaries[0].ID = userCGMSummary.ID - Expect(userCGMSummary).To(Equal(cgmSummaries[0])) + _, err = bgmStore.CreateSummaries(ctx, summaries) + Expect(err).To(HaveOccurred()) + Expect(err).To(MatchError("userId is missing at index 0")) }) - It("Get BGM with multiple summaries of different type", func() { - var cgmSummaries = []*types.Summary[*types.CGMStats, types.CGMStats]{ - test.RandomCGMSummary(userId), - test.RandomCGMSummary(userIdOther), - } - - var bgmSummaries = []*types.Summary[*types.BGMStats, types.BGMStats]{ + It("Create summaries", func() { + var count int + var summaries = []*types.Summary[*types.BGMStats, types.BGMStats]{ test.RandomBGMSummary(userId), test.RandomBGMSummary(userIdOther), } - _, err = cgmStore.CreateSummaries(ctx, cgmSummaries) + count, err = bgmStore.CreateSummaries(ctx, summaries) Expect(err).ToNot(HaveOccurred()) + Expect(count).To(Equal(2)) - _, err = bgmStore.CreateSummaries(ctx, bgmSummaries) - Expect(err).ToNot(HaveOccurred()) + for i := 0; i < 2; i++ { + userBGMSummary, err = bgmStore.GetSummary(ctx, summaries[0].UserID) + Expect(err).ToNot(HaveOccurred()) + Expect(userBGMSummary).ToNot(BeNil()) + summaries[i].ID = userBGMSummary.ID + Expect(userBGMSummary).To(Equal(summaries[0])) + } + }) + }) - userBGMSummary, err = bgmStore.GetSummary(ctx, userIdOther) - Expect(err).ToNot(HaveOccurred()) - Expect(userBGMSummary).ToNot(BeNil()) + Context("SetOutdated", func() {}) + }) - bgmSummaries[1].ID = userBGMSummary.ID - Expect(userBGMSummary).To(Equal(bgmSummaries[1])) - }) + Context("Typeless", func() { + var userBGMSummary *types.Summary[*types.BGMStats, types.BGMStats] + var userCGMSummary *types.Summary[*types.CGMStats, types.CGMStats] + var userContinuousSummary *types.Summary[*types.ContinuousStats, types.ContinuousStats] + var bgmStore *dataStoreSummary.Repo[*types.BGMStats, types.BGMStats] + var cgmStore *dataStoreSummary.Repo[*types.CGMStats, types.CGMStats] + var continuousStore *dataStoreSummary.Repo[*types.ContinuousStats, types.ContinuousStats] + BeforeEach(func() { + bgmStore = dataStoreSummary.New[*types.BGMStats](summaryRepository) + cgmStore = dataStoreSummary.New[*types.CGMStats](summaryRepository) + continuousStore = dataStoreSummary.New[*types.ContinuousStats](summaryRepository) }) - Context("DistinctSummaryIDs", func() { - var userIds []string + Context("DeleteSummary", func() { + It("Delete All Summaries for User", func() { + var userCGMSummaryWritten *types.Summary[*types.CGMStats, types.CGMStats] + var userBGMSummaryWritten *types.Summary[*types.BGMStats, types.BGMStats] + var userContinuousSummaryWritten *types.Summary[*types.ContinuousStats, types.ContinuousStats] - It("With missing context", func() { - userIds, err = cgmStore.DistinctSummaryIDs(nil) - Expect(err).To(HaveOccurred()) - Expect(err).To(MatchError("context is missing")) - Expect(len(userIds)).To(Equal(0)) - }) + userCGMSummary = test.RandomCGMSummary(userId) + Expect(userCGMSummary.Type).To(Equal("cgm")) - It("With no summaries", func() { - userIds, err = cgmStore.DistinctSummaryIDs(ctx) + err = cgmStore.ReplaceSummary(ctx, userCGMSummary) Expect(err).ToNot(HaveOccurred()) - Expect(len(userIds)).To(Equal(0)) - }) - It("With CGM summaries", func() { - var cgmSummaries = []*types.Summary[*types.CGMStats, types.CGMStats]{ - test.RandomCGMSummary(userId), - test.RandomCGMSummary(userIdOther), - } + userBGMSummary = test.RandomBGMSummary(userId) + Expect(userBGMSummary.Type).To(Equal("bgm")) - _, err = cgmStore.CreateSummaries(ctx, cgmSummaries) + err = bgmStore.ReplaceSummary(ctx, userBGMSummary) Expect(err).ToNot(HaveOccurred()) - userIds, err = cgmStore.DistinctSummaryIDs(ctx) - Expect(err).ToNot(HaveOccurred()) - Expect(len(userIds)).To(Equal(2)) - Expect(userIds).To(ConsistOf([]string{userId, userIdOther})) - }) + userContinuousSummary = test.RandomContinousSummary(userId) + Expect(userContinuousSummary.Type).To(Equal("continuous")) - It("With BGM summaries", func() { - var bgmSummaries = []*types.Summary[*types.BGMStats, types.BGMStats]{ - test.RandomBGMSummary(userId), - test.RandomBGMSummary(userIdOther), - } + err = continuousStore.ReplaceSummary(ctx, userContinuousSummary) + Expect(err).ToNot(HaveOccurred()) - _, err = bgmStore.CreateSummaries(ctx, bgmSummaries) + // confirm writes + userCGMSummaryWritten, err = cgmStore.GetSummary(ctx, userId) Expect(err).ToNot(HaveOccurred()) + Expect(userCGMSummaryWritten).ToNot(BeNil()) - userIds, err = bgmStore.DistinctSummaryIDs(ctx) + userBGMSummaryWritten, err = bgmStore.GetSummary(ctx, userId) Expect(err).ToNot(HaveOccurred()) - Expect(len(userIds)).To(Equal(2)) - Expect(userIds).To(ConsistOf([]string{userId, userIdOther})) - }) + Expect(userBGMSummaryWritten).ToNot(BeNil()) - It("Get CGM with summaries of both types", func() { - userIdTwo := userTest.RandomID() - userIdThree := userTest.RandomID() - var cgmSummaries = []*types.Summary[*types.CGMStats, types.CGMStats]{ - test.RandomCGMSummary(userId), - test.RandomCGMSummary(userIdOther), - } + userContinuousSummaryWritten, err = continuousStore.GetSummary(ctx, userId) + Expect(err).ToNot(HaveOccurred()) + Expect(userContinuousSummaryWritten).ToNot(BeNil()) - var bgmSummaries = []*types.Summary[*types.BGMStats, types.BGMStats]{ - test.RandomBGMSummary(userIdTwo), - test.RandomBGMSummary(userIdThree), - } + // delete + err = typelessStore.DeleteSummary(ctx, userId) + Expect(err).ToNot(HaveOccurred()) - _, err = cgmStore.CreateSummaries(ctx, cgmSummaries) + // confirm delete + userCGMSummaryWritten, err = cgmStore.GetSummary(ctx, userId) Expect(err).ToNot(HaveOccurred()) - _, err = bgmStore.CreateSummaries(ctx, bgmSummaries) + Expect(userCGMSummaryWritten).To(BeNil()) + + userBGMSummaryWritten, err = bgmStore.GetSummary(ctx, userId) Expect(err).ToNot(HaveOccurred()) + Expect(userBGMSummaryWritten).To(BeNil()) - userIds, err = cgmStore.DistinctSummaryIDs(ctx) + userContinuousSummaryWritten, err = continuousStore.GetSummary(ctx, userId) Expect(err).ToNot(HaveOccurred()) - Expect(len(userIds)).To(Equal(2)) - Expect(userIds).To(ConsistOf([]string{userId, userIdOther})) + Expect(userContinuousSummaryWritten).To(BeNil()) }) + }) + }) - It("Get BGM with summaries of both types", func() { - userIdTwo := userTest.RandomID() - userIdThree := userTest.RandomID() - var cgmSummaries = []*types.Summary[*types.CGMStats, types.CGMStats]{ - test.RandomCGMSummary(userId), - test.RandomCGMSummary(userIdOther), - } + Context("SetOutdated", func() { + var outdatedSince *time.Time - var bgmSummaries = []*types.Summary[*types.BGMStats, types.BGMStats]{ - test.RandomBGMSummary(userIdTwo), - test.RandomBGMSummary(userIdThree), - } + It("With missing context", func() { + outdatedSince, err = cgmStore.SetOutdated(nil, userId, types.OutdatedReasonDataAdded) + Expect(err).To(HaveOccurred()) + Expect(err).To(MatchError("context is missing")) + Expect(outdatedSince).To(BeNil()) + }) - _, err = cgmStore.CreateSummaries(ctx, cgmSummaries) - Expect(err).ToNot(HaveOccurred()) - _, err = bgmStore.CreateSummaries(ctx, bgmSummaries) - Expect(err).ToNot(HaveOccurred()) + It("With missing userId", func() { + outdatedSince, err = cgmStore.SetOutdated(ctx, "", types.OutdatedReasonDataAdded) + Expect(err).To(HaveOccurred()) + Expect(err).To(MatchError("userId is missing")) + Expect(outdatedSince).To(BeNil()) + }) - userIds, err = bgmStore.DistinctSummaryIDs(ctx) - Expect(err).ToNot(HaveOccurred()) - Expect(len(userIds)).To(Equal(2)) - Expect(userIds).To(ConsistOf([]string{userIdTwo, userIdThree})) - }) + It("With multiple reasons", func() { + outdatedSinceOriginal, err := cgmStore.SetOutdated(ctx, userId, types.OutdatedReasonDataAdded) + Expect(err).ToNot(HaveOccurred()) + Expect(outdatedSinceOriginal).ToNot(BeNil()) + + userCGMSummary, err = cgmStore.GetSummary(ctx, userId) + Expect(err).ToNot(HaveOccurred()) + Expect(userCGMSummary.Dates.OutdatedSince).ToNot(BeNil()) + Expect(userCGMSummary.Dates.OutdatedSince).To(Equal(outdatedSinceOriginal)) + Expect(userCGMSummary.Dates.OutdatedReason).To(ConsistOf([]string{types.OutdatedReasonDataAdded})) + + outdatedSince, err = cgmStore.SetOutdated(ctx, userId, types.OutdatedReasonBackfill) + Expect(err).ToNot(HaveOccurred()) + Expect(outdatedSince).ToNot(BeNil()) + + userCGMSummary, err = cgmStore.GetSummary(ctx, userId) + Expect(err).ToNot(HaveOccurred()) + Expect(userCGMSummary.Dates.OutdatedSince).ToNot(BeNil()) + Expect(userCGMSummary.Dates.OutdatedSince).To(Equal(outdatedSince)) + Expect(userCGMSummary.Dates.OutdatedReason).To(ConsistOf([]string{types.OutdatedReasonDataAdded, types.OutdatedReasonBackfill})) + + outdatedSince, err = cgmStore.SetOutdated(ctx, userId, types.OutdatedReasonDataAdded) + Expect(err).ToNot(HaveOccurred()) + Expect(outdatedSince).ToNot(BeNil()) + + userCGMSummary, err = cgmStore.GetSummary(ctx, userId) + Expect(err).ToNot(HaveOccurred()) + Expect(userCGMSummary.Dates.OutdatedSince).ToNot(BeNil()) + Expect(userCGMSummary.Dates.OutdatedSince).To(Equal(outdatedSince)) + Expect(userCGMSummary.Dates.OutdatedReason).To(ConsistOf([]string{types.OutdatedReasonDataAdded, types.OutdatedReasonBackfill})) + }) + + It("With no existing CGM summary", func() { + outdatedSince, err = cgmStore.SetOutdated(ctx, userId, types.OutdatedReasonDataAdded) + Expect(err).ToNot(HaveOccurred()) + Expect(outdatedSince).ToNot(BeNil()) + userCGMSummary, err = cgmStore.GetSummary(ctx, userId) + Expect(err).ToNot(HaveOccurred()) + Expect(userCGMSummary.Dates.OutdatedSince).ToNot(BeNil()) + Expect(userCGMSummary.Dates.OutdatedSince).To(Equal(outdatedSince)) }) - Context("GetOutdatedUserIDs", func() { - var userIds *types.OutdatedSummariesResponse - var userIdTwo string - var userIdThree string + It("With an existing non-outdated CGM summary", func() { + var userCGMSummaryWritten *types.Summary[*types.CGMStats, types.CGMStats] - BeforeEach(func() { - userIdTwo = userTest.RandomID() - userIdThree = userTest.RandomID() - }) + userCGMSummary = test.RandomCGMSummary(userId) + userCGMSummary.Dates.OutdatedSince = nil + err = cgmStore.ReplaceSummary(ctx, userCGMSummary) + Expect(err).ToNot(HaveOccurred()) - It("With missing context", func() { - userIds, err = cgmStore.GetOutdatedUserIDs(nil, page.NewPagination()) - Expect(err).To(HaveOccurred()) - Expect(err).To(MatchError("context is missing")) - Expect(userIds).To(BeNil()) - }) + outdatedSince, err = cgmStore.SetOutdated(ctx, userId, types.OutdatedReasonDataAdded) + Expect(err).ToNot(HaveOccurred()) + Expect(outdatedSince).ToNot(BeNil()) - It("With missing pagination", func() { - userIds, err = cgmStore.GetOutdatedUserIDs(ctx, nil) - Expect(err).To(HaveOccurred()) - Expect(err).To(MatchError("pagination is missing")) - Expect(userIds).To(BeNil()) - }) + userCGMSummaryWritten, err = cgmStore.GetSummary(ctx, userId) + Expect(err).ToNot(HaveOccurred()) + Expect(userCGMSummaryWritten.Dates.OutdatedSince).ToNot(BeNil()) + Expect(userCGMSummaryWritten.Dates.OutdatedSince).To(Equal(outdatedSince)) - It("With outdated CGM summaries", func() { - var outdatedTime = time.Now().UTC().Truncate(time.Millisecond) - var cgmSummaries = []*types.Summary[*types.CGMStats, types.CGMStats]{ - test.RandomCGMSummary(userId), - test.RandomCGMSummary(userIdOther), - test.RandomCGMSummary(userIdTwo), - } + }) - // mark 2/3 summaries outdated - cgmSummaries[0].Dates.OutdatedSince = &outdatedTime - cgmSummaries[1].Dates.OutdatedSince = nil - cgmSummaries[2].Dates.OutdatedSince = &outdatedTime - _, err = cgmStore.CreateSummaries(ctx, cgmSummaries) - Expect(err).ToNot(HaveOccurred()) + It("With an existing outdated CGM summary", func() { + var userCGMSummaryWritten *types.Summary[*types.CGMStats, types.CGMStats] + var fiveMinutesAgo = time.Now().Add(time.Duration(-5) * time.Minute).UTC().Truncate(time.Millisecond) - userIds, err = cgmStore.GetOutdatedUserIDs(ctx, page.NewPagination()) - Expect(err).ToNot(HaveOccurred()) - Expect(userIds.UserIds).To(ConsistOf([]string{userId, userIdTwo})) - }) + userCGMSummary = test.RandomCGMSummary(userId) + userCGMSummary.Dates.OutdatedSince = &fiveMinutesAgo + err = cgmStore.ReplaceSummary(ctx, userCGMSummary) + Expect(err).ToNot(HaveOccurred()) - It("With outdated BGM summaries", func() { - var outdatedTime = time.Now().UTC().Truncate(time.Millisecond) - var bgmSummaries = []*types.Summary[*types.BGMStats, types.BGMStats]{ - test.RandomBGMSummary(userId), - test.RandomBGMSummary(userIdOther), - test.RandomBGMSummary(userIdTwo), - } + outdatedSince, err = cgmStore.SetOutdated(ctx, userId, types.OutdatedReasonDataAdded) + Expect(err).ToNot(HaveOccurred()) + Expect(outdatedSince).ToNot(BeNil()) - // mark 2/3 summaries outdated - bgmSummaries[0].Dates.OutdatedSince = nil - bgmSummaries[1].Dates.OutdatedSince = &outdatedTime - bgmSummaries[2].Dates.OutdatedSince = &outdatedTime - _, err = bgmStore.CreateSummaries(ctx, bgmSummaries) - Expect(err).ToNot(HaveOccurred()) + userCGMSummaryWritten, err = cgmStore.GetSummary(ctx, userId) + Expect(err).ToNot(HaveOccurred()) + Expect(userCGMSummaryWritten.Dates.OutdatedSince).ToNot(BeNil()) + Expect(userCGMSummaryWritten.Dates.OutdatedSince).To(Equal(outdatedSince)) + }) - userIds, err = bgmStore.GetOutdatedUserIDs(ctx, page.NewPagination()) - Expect(err).ToNot(HaveOccurred()) - Expect(userIds.UserIds).To(ConsistOf([]string{userIdOther, userIdTwo})) - }) + It("With an existing outdated CGM summary beyond the outdatedSinceLimit", func() { + var userCGMSummaryWritten *types.Summary[*types.CGMStats, types.CGMStats] + now := time.Now().UTC().Truncate(time.Millisecond) - It("Get outdated CGM summaries with both types present", func() { - var outdatedTime = time.Now().UTC().Truncate(time.Millisecond) - var cgmSummaries = []*types.Summary[*types.CGMStats, types.CGMStats]{ - test.RandomCGMSummary(userId), - test.RandomCGMSummary(userIdOther), - } + userCGMSummary = test.RandomCGMSummary(userId) + userCGMSummary.Dates.OutdatedSince = &now + err = cgmStore.ReplaceSummary(ctx, userCGMSummary) + Expect(err).ToNot(HaveOccurred()) - var bgmSummaries = []*types.Summary[*types.BGMStats, types.BGMStats]{ - test.RandomBGMSummary(userIdTwo), - test.RandomBGMSummary(userIdThree), - } + outdatedSince, err = cgmStore.SetOutdated(ctx, userId, types.OutdatedReasonDataAdded) + Expect(err).ToNot(HaveOccurred()) + Expect(outdatedSince).ToNot(BeNil()) - // mark 1 outdated per type - cgmSummaries[0].Dates.OutdatedSince = &outdatedTime - cgmSummaries[1].Dates.OutdatedSince = nil - _, err = cgmStore.CreateSummaries(ctx, cgmSummaries) - Expect(err).ToNot(HaveOccurred()) + userCGMSummaryWritten, err = cgmStore.GetSummary(ctx, userId) + Expect(err).ToNot(HaveOccurred()) + Expect(userCGMSummaryWritten.Dates.OutdatedSince).ToNot(BeNil()) + }) - bgmSummaries[0].Dates.OutdatedSince = nil - bgmSummaries[1].Dates.OutdatedSince = &outdatedTime - _, err = bgmStore.CreateSummaries(ctx, bgmSummaries) - Expect(err).ToNot(HaveOccurred()) + It("With an existing outdated CGM summary with schema migration reason", func() { + var userCGMSummaryWritten *types.Summary[*types.CGMStats, types.CGMStats] + now := time.Now().UTC().Truncate(time.Millisecond) + fiveMinutesAgo := now.Add(time.Duration(-5) * time.Minute) + + userCGMSummary = test.RandomCGMSummary(userId) + userCGMSummary.Dates.OutdatedSince = &fiveMinutesAgo + userCGMSummary.Dates.OutdatedReason = []string{types.OutdatedReasonUploadCompleted} + Expect(userCGMSummary.Stats.Buckets).ToNot(HaveLen(0)) + Expect(userCGMSummary.Stats.Periods).ToNot(HaveLen(0)) + + err = cgmStore.ReplaceSummary(ctx, userCGMSummary) + Expect(err).ToNot(HaveOccurred()) + + outdatedSince, err = cgmStore.SetOutdated(ctx, userId, types.OutdatedReasonSchemaMigration) + Expect(err).ToNot(HaveOccurred()) + Expect(outdatedSince).ToNot(BeNil()) + + userCGMSummaryWritten, err = cgmStore.GetSummary(ctx, userId) + Expect(err).ToNot(HaveOccurred()) + Expect(userCGMSummaryWritten.Dates.OutdatedSince).ToNot(BeNil()) + Expect(userCGMSummaryWritten.Dates.OutdatedSince).To(Equal(outdatedSince)) + Expect(userCGMSummaryWritten.Stats.Buckets).To(HaveLen(0)) + Expect(userCGMSummaryWritten.Stats.Periods).To(HaveLen(0)) + Expect(userCGMSummaryWritten.Dates.LastData).To(BeNil()) + Expect(userCGMSummaryWritten.Dates.FirstData).To(BeNil()) + Expect(userCGMSummaryWritten.Dates.LastUpdatedDate.IsZero()).To(BeTrue()) + Expect(userCGMSummaryWritten.Dates.LastUploadDate).To(BeNil()) + Expect(userCGMSummaryWritten.Dates.OutdatedReason).To(ConsistOf(types.OutdatedReasonSchemaMigration, types.OutdatedReasonUploadCompleted)) + }) - userIds, err = cgmStore.GetOutdatedUserIDs(ctx, page.NewPagination()) - Expect(err).ToNot(HaveOccurred()) - Expect(userIds.UserIds).To(ConsistOf([]string{userId})) - }) + It("With no existing BGM summary", func() { + outdatedSince, err = bgmStore.SetOutdated(ctx, userId, types.OutdatedReasonDataAdded) + Expect(err).ToNot(HaveOccurred()) + Expect(outdatedSince).ToNot(BeNil()) - It("Get outdated BGM summaries with both types present", func() { - var outdatedTime = time.Now().UTC().Truncate(time.Millisecond) - var cgmSummaries = []*types.Summary[*types.CGMStats, types.CGMStats]{ - test.RandomCGMSummary(userId), - test.RandomCGMSummary(userIdOther), - } + userBGMSummary, err = bgmStore.GetSummary(ctx, userId) + Expect(err).ToNot(HaveOccurred()) + Expect(userBGMSummary.Dates.OutdatedSince).ToNot(BeNil()) + Expect(userBGMSummary.Dates.OutdatedSince).To(Equal(outdatedSince)) + }) - var bgmSummaries = []*types.Summary[*types.BGMStats, types.BGMStats]{ - test.RandomBGMSummary(userIdTwo), - test.RandomBGMSummary(userIdThree), - } + It("With an existing non-outdated BGM summary", func() { + var userBGMSummaryWritten *types.Summary[*types.BGMStats, types.BGMStats] - // mark 1 outdated per type - cgmSummaries[0].Dates.OutdatedSince = &outdatedTime - cgmSummaries[1].Dates.OutdatedSince = nil - _, err = cgmStore.CreateSummaries(ctx, cgmSummaries) - Expect(err).ToNot(HaveOccurred()) + userBGMSummary = test.RandomBGMSummary(userId) + userBGMSummary.Dates.OutdatedSince = nil + err = bgmStore.ReplaceSummary(ctx, userBGMSummary) + Expect(err).ToNot(HaveOccurred()) - bgmSummaries[0].Dates.OutdatedSince = nil - bgmSummaries[1].Dates.OutdatedSince = &outdatedTime - _, err = bgmStore.CreateSummaries(ctx, bgmSummaries) - Expect(err).ToNot(HaveOccurred()) + outdatedSince, err = bgmStore.SetOutdated(ctx, userId, types.OutdatedReasonDataAdded) + Expect(err).ToNot(HaveOccurred()) + Expect(outdatedSince).ToNot(BeNil()) - userIds, err = bgmStore.GetOutdatedUserIDs(ctx, page.NewPagination()) - Expect(err).ToNot(HaveOccurred()) - Expect(userIds.UserIds).To(ConsistOf([]string{userIdThree})) - }) + userBGMSummaryWritten, err = bgmStore.GetSummary(ctx, userId) + Expect(err).ToNot(HaveOccurred()) + Expect(userBGMSummaryWritten.Dates.OutdatedSince).ToNot(BeNil()) + Expect(userBGMSummaryWritten.Dates.OutdatedSince).To(Equal(outdatedSince)) - It("With a specific pagination size", func() { - var pagination = page.NewPagination() - var outdatedTime = time.Now().UTC().Truncate(time.Millisecond) - var cgmSummaries = []*types.Summary[*types.CGMStats, types.CGMStats]{ - test.RandomCGMSummary(userId), - test.RandomCGMSummary(userIdOther), - test.RandomCGMSummary(userIdTwo), - test.RandomCGMSummary(userIdThree), - } + }) - pagination.Size = 3 + It("With an existing outdated BGM summary", func() { + var userBGMSummaryWritten *types.Summary[*types.BGMStats, types.BGMStats] + var fiveMinutesAgo = time.Now().Add(time.Duration(-5) * time.Minute).UTC().Truncate(time.Millisecond) - for i := len(cgmSummaries) - 1; i >= 0; i-- { - cgmSummaries[i].Dates.OutdatedSince = pointer.FromAny(outdatedTime.Add(-time.Duration(i) * time.Second)) - } - _, err = cgmStore.CreateSummaries(ctx, cgmSummaries) - Expect(err).ToNot(HaveOccurred()) + userBGMSummary = test.RandomBGMSummary(userId) + userBGMSummary.Dates.OutdatedSince = &fiveMinutesAgo + err = bgmStore.ReplaceSummary(ctx, userBGMSummary) + Expect(err).ToNot(HaveOccurred()) - userIds, err = cgmStore.GetOutdatedUserIDs(ctx, pagination) - Expect(err).ToNot(HaveOccurred()) - Expect(len(userIds.UserIds)).To(Equal(3)) - Expect(userIds.UserIds).To(ConsistOf([]string{userIdThree, userIdTwo, userIdOther})) - }) + outdatedSince, err = bgmStore.SetOutdated(ctx, userId, types.OutdatedReasonDataAdded) + Expect(err).ToNot(HaveOccurred()) + Expect(outdatedSince).ToNot(BeNil()) - It("Check sort order", func() { - var outdatedTime = time.Now().UTC().Truncate(time.Millisecond) - var cgmSummaries = []*types.Summary[*types.CGMStats, types.CGMStats]{ - test.RandomCGMSummary(userId), - test.RandomCGMSummary(userIdOther), - test.RandomCGMSummary(userIdTwo), - } + userBGMSummaryWritten, err = bgmStore.GetSummary(ctx, userId) + Expect(err).ToNot(HaveOccurred()) + Expect(userBGMSummaryWritten.Dates.OutdatedSince).ToNot(BeNil()) + Expect(userBGMSummaryWritten.Dates.OutdatedSince).To(Equal(outdatedSince)) - for i := 0; i < len(cgmSummaries); i++ { - cgmSummaries[i].Dates.OutdatedSince = pointer.FromAny(outdatedTime.Add(time.Duration(-i) * time.Minute)) - } - _, err = cgmStore.CreateSummaries(ctx, cgmSummaries) - Expect(err).ToNot(HaveOccurred()) + }) - userIds, err = cgmStore.GetOutdatedUserIDs(ctx, page.NewPagination()) - Expect(err).ToNot(HaveOccurred()) - Expect(len(userIds.UserIds)).To(Equal(3)) + It("With an existing outdated BGM summary with schema migration reason", func() { + var userBGMSummaryWritten *types.Summary[*types.BGMStats, types.BGMStats] + now := time.Now().UTC().Truncate(time.Millisecond) + fiveMinutesAgo := now.Add(time.Duration(-5) * time.Minute) + + userBGMSummary = test.RandomBGMSummary(userId) + userBGMSummary.Dates.OutdatedSince = &fiveMinutesAgo + userBGMSummary.Dates.OutdatedReason = []string{types.OutdatedReasonUploadCompleted} + Expect(userBGMSummary.Stats.Buckets).ToNot(HaveLen(0)) + Expect(userBGMSummary.Stats.Periods).ToNot(HaveLen(0)) + + err = bgmStore.ReplaceSummary(ctx, userBGMSummary) + Expect(err).ToNot(HaveOccurred()) + + outdatedSince, err = bgmStore.SetOutdated(ctx, userId, types.OutdatedReasonSchemaMigration) + Expect(err).ToNot(HaveOccurred()) + Expect(outdatedSince).ToNot(BeNil()) + + userBGMSummaryWritten, err = bgmStore.GetSummary(ctx, userId) + Expect(err).ToNot(HaveOccurred()) + Expect(userBGMSummaryWritten.Dates.OutdatedSince).ToNot(BeNil()) + Expect(userBGMSummaryWritten.Dates.OutdatedSince).To(Equal(outdatedSince)) + Expect(userBGMSummaryWritten.Stats.Buckets).To(HaveLen(0)) + Expect(userBGMSummaryWritten.Stats.Periods).To(HaveLen(0)) + Expect(userBGMSummaryWritten.Dates.LastData).To(BeNil()) + Expect(userBGMSummaryWritten.Dates.FirstData).To(BeNil()) + Expect(userBGMSummaryWritten.Dates.LastUpdatedDate.IsZero()).To(BeTrue()) + Expect(userBGMSummaryWritten.Dates.LastUploadDate).To(BeNil()) + Expect(userBGMSummaryWritten.Dates.OutdatedReason).To(ConsistOf(types.OutdatedReasonSchemaMigration, types.OutdatedReasonUploadCompleted)) - // we expect these to come back in reverse order than inserted - for i := 0; i < len(userIds.UserIds); i++ { - Expect(userIds.UserIds[i]).To(Equal(cgmSummaries[len(cgmSummaries)-i-1].UserID)) - } - }) + }) + }) - It("With no outdated summaries", func() { - var pagination = page.NewPagination() + Context("GetSummary", func() { - userIds, err = cgmStore.GetOutdatedUserIDs(ctx, pagination) - Expect(err).ToNot(HaveOccurred()) - Expect(len(userIds.UserIds)).To(Equal(0)) - }) + It("With missing context", func() { + userCGMSummary, err = cgmStore.GetSummary(nil, userId) + Expect(err).To(HaveOccurred()) + Expect(err).To(MatchError("context is missing")) + Expect(userCGMSummary).To(BeNil()) + }) + + It("With missing userId", func() { + userCGMSummary, err = cgmStore.GetSummary(ctx, "") + Expect(err).To(HaveOccurred()) + Expect(err).To(MatchError("userId is missing")) + Expect(userCGMSummary).To(BeNil()) + }) + It("With no summary", func() { + userCGMSummary, err = cgmStore.GetSummary(ctx, userId) + Expect(err).ToNot(HaveOccurred()) + Expect(userCGMSummary).To(BeNil()) + }) + + It("With multiple CGM summaries", func() { + var summaries = []*types.Summary[*types.CGMStats, types.CGMStats]{ + test.RandomCGMSummary(userId), + test.RandomCGMSummary(userIdOther), + } + + _, err = cgmStore.CreateSummaries(ctx, summaries) + Expect(err).ToNot(HaveOccurred()) + + userCGMSummary, err = cgmStore.GetSummary(ctx, userId) + Expect(err).ToNot(HaveOccurred()) + Expect(userCGMSummary).ToNot(BeNil()) + + summaries[0].ID = userCGMSummary.ID + Expect(userCGMSummary).To(Equal(summaries[0])) + }) + + It("With multiple BGM summaries", func() { + var summaries = []*types.Summary[*types.BGMStats, types.BGMStats]{ + test.RandomBGMSummary(userId), + test.RandomBGMSummary(userIdOther), + } + + _, err = bgmStore.CreateSummaries(ctx, summaries) + Expect(err).ToNot(HaveOccurred()) + + userBGMSummary, err = bgmStore.GetSummary(ctx, userId) + Expect(err).ToNot(HaveOccurred()) + Expect(userBGMSummary).ToNot(BeNil()) + + summaries[0].ID = userBGMSummary.ID + Expect(userBGMSummary).To(Equal(summaries[0])) + }) + + It("Get CGM with multiple summaries of different type", func() { + var cgmSummaries = []*types.Summary[*types.CGMStats, types.CGMStats]{ + test.RandomCGMSummary(userId), + test.RandomCGMSummary(userIdOther), + } + + var bgmSummaries = []*types.Summary[*types.BGMStats, types.BGMStats]{ + test.RandomBGMSummary(userId), + test.RandomBGMSummary(userIdOther), + } + + _, err = cgmStore.CreateSummaries(ctx, cgmSummaries) + Expect(err).ToNot(HaveOccurred()) + + _, err = bgmStore.CreateSummaries(ctx, bgmSummaries) + Expect(err).ToNot(HaveOccurred()) + + userCGMSummary, err = cgmStore.GetSummary(ctx, userId) + Expect(err).ToNot(HaveOccurred()) + Expect(userCGMSummary).ToNot(BeNil()) + + cgmSummaries[0].ID = userCGMSummary.ID + Expect(userCGMSummary).To(Equal(cgmSummaries[0])) + }) + + It("Get BGM with multiple summaries of different type", func() { + var cgmSummaries = []*types.Summary[*types.CGMStats, types.CGMStats]{ + test.RandomCGMSummary(userId), + test.RandomCGMSummary(userIdOther), + } + + var bgmSummaries = []*types.Summary[*types.BGMStats, types.BGMStats]{ + test.RandomBGMSummary(userId), + test.RandomBGMSummary(userIdOther), + } + + _, err = cgmStore.CreateSummaries(ctx, cgmSummaries) + Expect(err).ToNot(HaveOccurred()) + + _, err = bgmStore.CreateSummaries(ctx, bgmSummaries) + Expect(err).ToNot(HaveOccurred()) + + userBGMSummary, err = bgmStore.GetSummary(ctx, userIdOther) + Expect(err).ToNot(HaveOccurred()) + Expect(userBGMSummary).ToNot(BeNil()) + + bgmSummaries[1].ID = userBGMSummary.ID + Expect(userBGMSummary).To(Equal(bgmSummaries[1])) }) }) - Context("With untyped store", func() { - var typelessStore *dataStoreSummary.TypelessRepo + Context("DistinctSummaryIDs", func() { + var userIds []string - var cgmStore *dataStoreSummary.Repo[*types.CGMStats, types.CGMStats] - var bgmStore *dataStoreSummary.Repo[*types.BGMStats, types.BGMStats] + It("With missing context", func() { + userIds, err = cgmStore.DistinctSummaryIDs(nil) + Expect(err).To(HaveOccurred()) + Expect(err).To(MatchError("context is missing")) + Expect(len(userIds)).To(Equal(0)) + }) - BeforeEach(func() { - ctx = log.NewContextWithLogger(context.Background(), logger) - typelessStore = dataStoreSummary.NewTypeless(summaryRepository) + It("With no summaries", func() { + userIds, err = cgmStore.DistinctSummaryIDs(ctx) + Expect(err).ToNot(HaveOccurred()) + Expect(len(userIds)).To(Equal(0)) + }) - // we aren't testing these, but we need them for easy setup - cgmStore = dataStoreSummary.New[*types.CGMStats](summaryRepository) - bgmStore = dataStoreSummary.New[*types.BGMStats](summaryRepository) + It("With CGM summaries", func() { + var cgmSummaries = []*types.Summary[*types.CGMStats, types.CGMStats]{ + test.RandomCGMSummary(userId), + test.RandomCGMSummary(userIdOther), + } + + _, err = cgmStore.CreateSummaries(ctx, cgmSummaries) + Expect(err).ToNot(HaveOccurred()) + + userIds, err = cgmStore.DistinctSummaryIDs(ctx) + Expect(err).ToNot(HaveOccurred()) + Expect(len(userIds)).To(Equal(2)) + Expect(userIds).To(ConsistOf([]string{userId, userIdOther})) }) - Context("GetPatientsWithRealtimeData", func() { + It("With BGM summaries", func() { + var bgmSummaries = []*types.Summary[*types.BGMStats, types.BGMStats]{ + test.RandomBGMSummary(userId), + test.RandomBGMSummary(userIdOther), + } + + _, err = bgmStore.CreateSummaries(ctx, bgmSummaries) + Expect(err).ToNot(HaveOccurred()) - It("with some realtime users", func() { - endTime := time.Now().UTC().Truncate(time.Hour * 24) - startTime := endTime.AddDate(0, 0, -30) - userIds := make([]string, 5) - userSummaries := make([]*types.Summary[*types.CGMStats, types.CGMStats], 5) + userIds, err = bgmStore.DistinctSummaryIDs(ctx) + Expect(err).ToNot(HaveOccurred()) + Expect(len(userIds)).To(Equal(2)) + Expect(userIds).To(ConsistOf([]string{userId, userIdOther})) + }) - startingDays := 14 + It("Get CGM with summaries of both types", func() { + userIdTwo := userTest.RandomID() + userIdThree := userTest.RandomID() + var cgmSummaries = []*types.Summary[*types.CGMStats, types.CGMStats]{ + test.RandomCGMSummary(userId), + test.RandomCGMSummary(userIdOther), + } + + var bgmSummaries = []*types.Summary[*types.BGMStats, types.BGMStats]{ + test.RandomBGMSummary(userIdTwo), + test.RandomBGMSummary(userIdThree), + } + + _, err = cgmStore.CreateSummaries(ctx, cgmSummaries) + Expect(err).ToNot(HaveOccurred()) + _, err = bgmStore.CreateSummaries(ctx, bgmSummaries) + Expect(err).ToNot(HaveOccurred()) + + userIds, err = cgmStore.DistinctSummaryIDs(ctx) + Expect(err).ToNot(HaveOccurred()) + Expect(len(userIds)).To(Equal(2)) + Expect(userIds).To(ConsistOf([]string{userId, userIdOther})) + }) - for i := 0; i < 5; i++ { - userIds[i] = userTest.RandomID() - userSummaries[i] = test.NewRealtimeCGMSummary(userIds[i], startTime, endTime, startingDays+i) - } + It("Get BGM with summaries of both types", func() { + userIdTwo := userTest.RandomID() + userIdThree := userTest.RandomID() + var cgmSummaries = []*types.Summary[*types.CGMStats, types.CGMStats]{ + test.RandomCGMSummary(userId), + test.RandomCGMSummary(userIdOther), + } + + var bgmSummaries = []*types.Summary[*types.BGMStats, types.BGMStats]{ + test.RandomBGMSummary(userIdTwo), + test.RandomBGMSummary(userIdThree), + } + + _, err = cgmStore.CreateSummaries(ctx, cgmSummaries) + Expect(err).ToNot(HaveOccurred()) + _, err = bgmStore.CreateSummaries(ctx, bgmSummaries) + Expect(err).ToNot(HaveOccurred()) + + userIds, err = bgmStore.DistinctSummaryIDs(ctx) + Expect(err).ToNot(HaveOccurred()) + Expect(len(userIds)).To(Equal(2)) + Expect(userIds).To(ConsistOf([]string{userIdTwo, userIdThree})) + }) - var count int - count, err = cgmStore.CreateSummaries(ctx, userSummaries) - Expect(err).ToNot(HaveOccurred()) - Expect(count).To(Equal(len(userIds))) + }) - // remove one userId to ensure we aren't accidentally grabbing everyone - trimmedUserIds := userIds[:len(userIds)-1] + Context("GetOutdatedUserIDs", func() { + var userIds *types.OutdatedSummariesResponse + var userIdTwo string + var userIdThree string - var list map[string]int - list, err = typelessStore.GetRealtimeDaysForUsers(ctx, trimmedUserIds, startTime, endTime) - Expect(err).ToNot(HaveOccurred()) - Expect(list).To(HaveLen(len(trimmedUserIds))) + BeforeEach(func() { + userIdTwo = userTest.RandomID() + userIdThree = userTest.RandomID() + }) - // make sure days match input - for i := 0; i < 4; i++ { - Expect(list[userIds[i]]).To(Equal(startingDays + i)) - } - }) + It("With missing context", func() { + userIds, err = cgmStore.GetOutdatedUserIDs(nil, page.NewPagination()) + Expect(err).To(HaveOccurred()) + Expect(err).To(MatchError("context is missing")) + Expect(userIds).To(BeNil()) + }) - It("with realtime user with both bgm and cgm", func() { - endTime := time.Now().UTC().Truncate(time.Hour * 24) - startTime := endTime.AddDate(0, 0, -30) - userIds := make([]string, 5) - userCgmSummaries := make([]*types.Summary[*types.CGMStats, types.CGMStats], 5) - userBgmSummaries := make([]*types.Summary[*types.BGMStats, types.BGMStats], 5) + It("With missing pagination", func() { + userIds, err = cgmStore.GetOutdatedUserIDs(ctx, nil) + Expect(err).To(HaveOccurred()) + Expect(err).To(MatchError("pagination is missing")) + Expect(userIds).To(BeNil()) + }) - startingDays := 14 + It("With outdated CGM summaries", func() { + var outdatedTime = time.Now().UTC().Truncate(time.Millisecond) + var cgmSummaries = []*types.Summary[*types.CGMStats, types.CGMStats]{ + test.RandomCGMSummary(userId), + test.RandomCGMSummary(userIdOther), + test.RandomCGMSummary(userIdTwo), + } + + // mark 2/3 summaries outdated + cgmSummaries[0].Dates.OutdatedSince = &outdatedTime + cgmSummaries[1].Dates.OutdatedSince = nil + cgmSummaries[2].Dates.OutdatedSince = &outdatedTime + _, err = cgmStore.CreateSummaries(ctx, cgmSummaries) + Expect(err).ToNot(HaveOccurred()) + + userIds, err = cgmStore.GetOutdatedUserIDs(ctx, page.NewPagination()) + Expect(err).ToNot(HaveOccurred()) + Expect(userIds.UserIds).To(ConsistOf([]string{userId, userIdTwo})) + }) - for i := 0; i < 5; i++ { - userIds[i] = userTest.RandomID() - userCgmSummaries[i] = test.NewRealtimeCGMSummary(userIds[i], startTime, endTime, startingDays+i) - userBgmSummaries[i] = test.NewRealtimeBGMSummary(userIds[i], startTime, endTime, startingDays+i) - } + It("With outdated BGM summaries", func() { + var outdatedTime = time.Now().UTC().Truncate(time.Millisecond) + var bgmSummaries = []*types.Summary[*types.BGMStats, types.BGMStats]{ + test.RandomBGMSummary(userId), + test.RandomBGMSummary(userIdOther), + test.RandomBGMSummary(userIdTwo), + } + + // mark 2/3 summaries outdated + bgmSummaries[0].Dates.OutdatedSince = nil + bgmSummaries[1].Dates.OutdatedSince = &outdatedTime + bgmSummaries[2].Dates.OutdatedSince = &outdatedTime + _, err = bgmStore.CreateSummaries(ctx, bgmSummaries) + Expect(err).ToNot(HaveOccurred()) + + userIds, err = bgmStore.GetOutdatedUserIDs(ctx, page.NewPagination()) + Expect(err).ToNot(HaveOccurred()) + Expect(userIds.UserIds).To(ConsistOf([]string{userIdOther, userIdTwo})) + }) - var count int - count, err = cgmStore.CreateSummaries(ctx, userCgmSummaries) - Expect(err).ToNot(HaveOccurred()) - Expect(count).To(Equal(len(userIds))) + It("Get outdated CGM summaries with both types present", func() { + var outdatedTime = time.Now().UTC().Truncate(time.Millisecond) + var cgmSummaries = []*types.Summary[*types.CGMStats, types.CGMStats]{ + test.RandomCGMSummary(userId), + test.RandomCGMSummary(userIdOther), + } + + var bgmSummaries = []*types.Summary[*types.BGMStats, types.BGMStats]{ + test.RandomBGMSummary(userIdTwo), + test.RandomBGMSummary(userIdThree), + } + + // mark 1 outdated per type + cgmSummaries[0].Dates.OutdatedSince = &outdatedTime + cgmSummaries[1].Dates.OutdatedSince = nil + _, err = cgmStore.CreateSummaries(ctx, cgmSummaries) + Expect(err).ToNot(HaveOccurred()) + + bgmSummaries[0].Dates.OutdatedSince = nil + bgmSummaries[1].Dates.OutdatedSince = &outdatedTime + _, err = bgmStore.CreateSummaries(ctx, bgmSummaries) + Expect(err).ToNot(HaveOccurred()) + + userIds, err = cgmStore.GetOutdatedUserIDs(ctx, page.NewPagination()) + Expect(err).ToNot(HaveOccurred()) + Expect(userIds.UserIds).To(ConsistOf([]string{userId})) + }) - count, err = bgmStore.CreateSummaries(ctx, userBgmSummaries) - Expect(err).ToNot(HaveOccurred()) - Expect(count).To(Equal(len(userIds))) + It("Get outdated BGM summaries with both types present", func() { + var outdatedTime = time.Now().UTC().Truncate(time.Millisecond) + var cgmSummaries = []*types.Summary[*types.CGMStats, types.CGMStats]{ + test.RandomCGMSummary(userId), + test.RandomCGMSummary(userIdOther), + } + + var bgmSummaries = []*types.Summary[*types.BGMStats, types.BGMStats]{ + test.RandomBGMSummary(userIdTwo), + test.RandomBGMSummary(userIdThree), + } + + // mark 1 outdated per type + cgmSummaries[0].Dates.OutdatedSince = &outdatedTime + cgmSummaries[1].Dates.OutdatedSince = nil + _, err = cgmStore.CreateSummaries(ctx, cgmSummaries) + Expect(err).ToNot(HaveOccurred()) + + bgmSummaries[0].Dates.OutdatedSince = nil + bgmSummaries[1].Dates.OutdatedSince = &outdatedTime + _, err = bgmStore.CreateSummaries(ctx, bgmSummaries) + Expect(err).ToNot(HaveOccurred()) + + userIds, err = bgmStore.GetOutdatedUserIDs(ctx, page.NewPagination()) + Expect(err).ToNot(HaveOccurred()) + Expect(userIds.UserIds).To(ConsistOf([]string{userIdThree})) + }) - // remove one userId to ensure we aren't accidentally grabbing everyone - trimmedUserIds := userIds[:len(userIds)-1] + It("With a specific pagination size", func() { + var pagination = page.NewPagination() + var outdatedTime = time.Now().UTC().Truncate(time.Millisecond) + var cgmSummaries = []*types.Summary[*types.CGMStats, types.CGMStats]{ + test.RandomCGMSummary(userId), + test.RandomCGMSummary(userIdOther), + test.RandomCGMSummary(userIdTwo), + test.RandomCGMSummary(userIdThree), + } + + pagination.Size = 3 + + for i := len(cgmSummaries) - 1; i >= 0; i-- { + cgmSummaries[i].Dates.OutdatedSince = pointer.FromAny(outdatedTime.Add(-time.Duration(i) * time.Second)) + } + _, err = cgmStore.CreateSummaries(ctx, cgmSummaries) + Expect(err).ToNot(HaveOccurred()) + + userIds, err = cgmStore.GetOutdatedUserIDs(ctx, pagination) + Expect(err).ToNot(HaveOccurred()) + Expect(len(userIds.UserIds)).To(Equal(3)) + Expect(userIds.UserIds).To(ConsistOf([]string{userIdThree, userIdTwo, userIdOther})) + }) - var list map[string]int - list, err = typelessStore.GetRealtimeDaysForUsers(ctx, trimmedUserIds, startTime, endTime) - Expect(err).ToNot(HaveOccurred()) - Expect(list).To(HaveLen(len(trimmedUserIds))) + It("Check sort order", func() { + var outdatedTime = time.Now().UTC().Truncate(time.Millisecond) + var cgmSummaries = []*types.Summary[*types.CGMStats, types.CGMStats]{ + test.RandomCGMSummary(userId), + test.RandomCGMSummary(userIdOther), + test.RandomCGMSummary(userIdTwo), + } + + for i := 0; i < len(cgmSummaries); i++ { + cgmSummaries[i].Dates.OutdatedSince = pointer.FromAny(outdatedTime.Add(time.Duration(-i) * time.Minute)) + } + _, err = cgmStore.CreateSummaries(ctx, cgmSummaries) + Expect(err).ToNot(HaveOccurred()) + + userIds, err = cgmStore.GetOutdatedUserIDs(ctx, page.NewPagination()) + Expect(err).ToNot(HaveOccurred()) + Expect(len(userIds.UserIds)).To(Equal(3)) + + // we expect these to come back in reverse order than inserted + for i := 0; i < len(userIds.UserIds); i++ { + Expect(userIds.UserIds[i]).To(Equal(cgmSummaries[len(cgmSummaries)-i-1].UserID)) + } + }) - // make sure days match input - for i := 0; i < 4; i++ { - Expect(list[userIds[i]]).To(Equal(startingDays + i)) - } - }) + It("With no outdated summaries", func() { + var pagination = page.NewPagination() - It("with realtime user combined from bgm and cgm", func() { - endTime := time.Now().UTC().Truncate(time.Hour * 24) - startTime := endTime.AddDate(0, 0, -30) - userIds := make([]string, 5) - userCgmSummaries := make([]*types.Summary[*types.CGMStats, types.CGMStats], 5) - userBgmSummaries := make([]*types.Summary[*types.BGMStats, types.BGMStats], 5) + userIds, err = cgmStore.GetOutdatedUserIDs(ctx, pagination) + Expect(err).ToNot(HaveOccurred()) + Expect(len(userIds.UserIds)).To(Equal(0)) + }) - startingDays := 7 + }) - for i := 0; i < 5; i++ { - userIds[i] = userTest.RandomID() - userCgmSummaries[i] = test.NewRealtimeCGMSummary(userIds[i], startTime, endTime, startingDays+i) - userBgmSummaries[i] = test.NewRealtimeBGMSummary(userIds[i], startTime.AddDate(0, 0, 10), endTime.AddDate(0, 0, 10), startingDays+i) - } + }) - var count int - count, err = cgmStore.CreateSummaries(ctx, userCgmSummaries) - Expect(err).ToNot(HaveOccurred()) - Expect(count).To(Equal(len(userIds))) + Context("With continuous store", func() { + var continuousStore *dataStoreSummary.Repo[*types.ContinuousStats, types.ContinuousStats] - count, err = bgmStore.CreateSummaries(ctx, userBgmSummaries) - Expect(err).ToNot(HaveOccurred()) - Expect(count).To(Equal(len(userIds))) + BeforeEach(func() { - // remove one userId to ensure we aren't accidentally grabbing everyone - trimmedUserIds := userIds[:len(userIds)-1] + // we aren't testing these, but we need them for easy setup + continuousStore = dataStoreSummary.New[*types.ContinuousStats](summaryRepository) + }) - var list map[string]int - list, err = typelessStore.GetRealtimeDaysForUsers(ctx, trimmedUserIds, startTime, endTime) - Expect(err).ToNot(HaveOccurred()) - Expect(list).To(HaveLen(len(trimmedUserIds))) + Context("GetPatientsWithRealtimeData", func() { - // make sure days match input - for i := 0; i < 4; i++ { - Expect(list[userIds[i]]).To(Equal((startingDays + i) * 2)) - } - }) + It("with some realtime users", func() { + endTime := time.Now().UTC().Truncate(time.Hour * 24) + startTime := endTime.AddDate(0, 0, -30) + userIds := make([]string, 5) + userSummaries := make([]*types.Summary[*types.ContinuousStats, types.ContinuousStats], 5) - It("with no realtime user", func() { - endTime := time.Now().UTC().Truncate(time.Hour * 24) - startTime := endTime.AddDate(0, 0, -30) - userIds := make([]string, 5) - userCgmSummaries := make([]*types.Summary[*types.CGMStats, types.CGMStats], 5) - userBgmSummaries := make([]*types.Summary[*types.BGMStats, types.BGMStats], 5) - - for i := 0; i < 5; i++ { - userIds[i] = userTest.RandomID() - userCgmSummaries[i] = test.NewRealtimeCGMSummary(userIds[i], startTime, endTime, 0) - userBgmSummaries[i] = test.NewRealtimeBGMSummary(userIds[i], startTime.AddDate(0, 0, 10), endTime.AddDate(0, 0, 10), 0) - } + startingDays := 14 - var count int - count, err = cgmStore.CreateSummaries(ctx, userCgmSummaries) - Expect(err).ToNot(HaveOccurred()) - Expect(count).To(Equal(len(userIds))) + for i := 0; i < 5; i++ { + userIds[i] = userTest.RandomID() + userSummaries[i] = test.NewRealtimeSummary(userIds[i], startTime, endTime, startingDays+i) + } - count, err = bgmStore.CreateSummaries(ctx, userBgmSummaries) - Expect(err).ToNot(HaveOccurred()) - Expect(count).To(Equal(len(userIds))) + var count int + count, err = continuousStore.CreateSummaries(ctx, userSummaries) + Expect(err).ToNot(HaveOccurred()) + Expect(count).To(Equal(len(userIds))) - // remove one userId to ensure we aren't accidentally grabbing everyone - trimmedUserIds := userIds[:len(userIds)-1] + // remove one userId to ensure we aren't accidentally grabbing everyone + trimmedUserIds := userIds[:len(userIds)-1] - var list map[string]int - list, err = typelessStore.GetRealtimeDaysForUsers(ctx, trimmedUserIds, startTime, endTime) - Expect(err).ToNot(HaveOccurred()) - Expect(list).To(HaveLen(len(trimmedUserIds))) + var list map[string]int + list, err = continuousStore.GetRealtimeDaysForUsers(ctx, trimmedUserIds, startTime, endTime) + Expect(err).ToNot(HaveOccurred()) + Expect(list).To(HaveLen(len(trimmedUserIds))) - // make sure days match input - for i := 0; i < 4; i++ { - Expect(list[userIds[i]]).To(Equal(0)) - } - }) + // make sure days match input + for i := 0; i < 4; i++ { + Expect(list[userIds[i]]).To(Equal(startingDays + i)) + } + }) - It("with 60 days of buckets", func() { - endTime := time.Now().UTC().Truncate(time.Hour * 24) - startTime := endTime.AddDate(0, 0, -60) - userIds := make([]string, 5) - userCgmSummaries := make([]*types.Summary[*types.CGMStats, types.CGMStats], 5) + It("with no realtime user", func() { + endTime := time.Now().UTC().Truncate(time.Hour * 24) + startTime := endTime.AddDate(0, 0, -30) + userIds := make([]string, 5) + userContinuousSummaries := make([]*types.Summary[*types.ContinuousStats, types.ContinuousStats], 5) + + for i := 0; i < 5; i++ { + userIds[i] = userTest.RandomID() + userContinuousSummaries[i] = test.NewRealtimeSummary(userIds[i], startTime, endTime, 0) + } + + var count int + count, err = continuousStore.CreateSummaries(ctx, userContinuousSummaries) + Expect(err).ToNot(HaveOccurred()) + Expect(count).To(Equal(len(userIds))) + + // remove one userId to ensure we aren't accidentally grabbing everyone + trimmedUserIds := userIds[:len(userIds)-1] + + var list map[string]int + list, err = continuousStore.GetRealtimeDaysForUsers(ctx, trimmedUserIds, startTime, endTime) + Expect(err).ToNot(HaveOccurred()) + Expect(list).To(HaveLen(len(trimmedUserIds))) + + // make sure days match input + for i := 0; i < 4; i++ { + Expect(list[userIds[i]]).To(Equal(0)) + } + }) - startingDays := 30 + 14 + It("with 60 days of buckets", func() { + endTime := time.Now().UTC().Truncate(time.Hour * 24) + startTime := endTime.AddDate(0, 0, -60) + userIds := make([]string, 5) + userContinuousSummaries := make([]*types.Summary[*types.ContinuousStats, types.ContinuousStats], 5) - for i := 0; i < 5; i++ { - userIds[i] = userTest.RandomID() - userCgmSummaries[i] = test.NewRealtimeCGMSummary(userIds[i], startTime, endTime, startingDays+i) - } + startingDays := 30 + 14 - var count int - count, err = cgmStore.CreateSummaries(ctx, userCgmSummaries) - Expect(err).ToNot(HaveOccurred()) - Expect(count).To(Equal(len(userIds))) + for i := 0; i < 5; i++ { + userIds[i] = userTest.RandomID() + userContinuousSummaries[i] = test.NewRealtimeSummary(userIds[i], startTime, endTime, startingDays+i) + } - // remove one userId to ensure we aren't accidentally grabbing everyone - trimmedUserIds := userIds[:len(userIds)-1] + var count int + count, err = continuousStore.CreateSummaries(ctx, userContinuousSummaries) + Expect(err).ToNot(HaveOccurred()) + Expect(count).To(Equal(len(userIds))) - var list map[string]int - list, err = typelessStore.GetRealtimeDaysForUsers(ctx, trimmedUserIds, startTime.AddDate(0, 0, 30), endTime) - Expect(err).ToNot(HaveOccurred()) - Expect(list).To(HaveLen(len(trimmedUserIds))) + // remove one userId to ensure we aren't accidentally grabbing everyone + trimmedUserIds := userIds[:len(userIds)-1] - // make sure days match input - for i := 0; i < 4; i++ { - Expect(list[userIds[i]]).To(Equal(startingDays + i - 30)) - } - }) + var list map[string]int + list, err = continuousStore.GetRealtimeDaysForUsers(ctx, trimmedUserIds, startTime.AddDate(0, 0, 30), endTime) + Expect(err).ToNot(HaveOccurred()) + Expect(list).To(HaveLen(len(trimmedUserIds))) + // make sure days match input + for i := 0; i < 4; i++ { + Expect(list[userIds[i]]).To(Equal(startingDays + i - 30)) + } }) + }) }) }) diff --git a/data/summary/summary.go b/data/summary/summary.go index 71946efc5..9d6cfe1c4 100644 --- a/data/summary/summary.go +++ b/data/summary/summary.go @@ -19,16 +19,14 @@ const ( ) type SummarizerRegistry struct { - summarizers map[string]any - TypelessSummarizer *TypelessSummarizer + summarizers map[string]any } func New(summaryRepository *storeStructuredMongo.Repository, dataRepository types.DeviceDataFetcher) *SummarizerRegistry { registry := &SummarizerRegistry{summarizers: make(map[string]any)} addSummarizer(registry, NewBGMSummarizer(summaryRepository, dataRepository)) addSummarizer(registry, NewCGMSummarizer(summaryRepository, dataRepository)) - - registry.TypelessSummarizer = NewTypelessSummarizer(summaryRepository) + addSummarizer(registry, NewContinuousSummarizer(summaryRepository, dataRepository)) return registry } @@ -75,22 +73,19 @@ func NewCGMSummarizer(collection *storeStructuredMongo.Repository, dataRepo type } } -type TypelessSummarizer struct { - summaries *store.TypelessRepo -} - -func NewTypelessSummarizer(collection *storeStructuredMongo.Repository) *TypelessSummarizer { - return &TypelessSummarizer{ - summaries: store.NewTypeless(collection), +func NewContinuousSummarizer(collection *storeStructuredMongo.Repository, dataRepo types.DeviceDataFetcher) Summarizer[*types.ContinuousStats, types.ContinuousStats] { + return &GlucoseSummarizer[*types.ContinuousStats, types.ContinuousStats]{ + userData: dataRepo, + summaries: store.New[*types.ContinuousStats](collection), } } -func (ts *TypelessSummarizer) GetRealtimeDaysForUsers(ctx context.Context, userIds []string, startTime time.Time, endTime time.Time) (map[string]int, error) { - return ts.summaries.GetRealtimeDaysForUsers(ctx, userIds, startTime, endTime) +func (gs *GlucoseSummarizer[A, T]) GetRealtimeDaysForUsers(ctx context.Context, userIds []string, startTime time.Time, endTime time.Time) (map[string]int, error) { + return gs.summaries.GetRealtimeDaysForUsers(ctx, userIds, startTime, endTime) } -func (ts *TypelessSummarizer) DeleteSummaries(ctx context.Context, userId string) error { - return ts.summaries.DeleteSummary(ctx, userId) +func (gs *GlucoseSummarizer[A, T]) DeleteSummaries(ctx context.Context, userId string) error { + return gs.summaries.DeleteSummary(ctx, userId) } func (gs *GlucoseSummarizer[A, T]) GetSummary(ctx context.Context, userId string) (*types.Summary[A, T], error) { @@ -112,7 +107,7 @@ func (gs *GlucoseSummarizer[A, T]) GetMigratableUserIDs(ctx context.Context, pag func (gs *GlucoseSummarizer[A, T]) BackfillSummaries(ctx context.Context) (int, error) { var empty struct{} - distinctDataUserIDs, err := gs.userData.DistinctUserIDs(ctx, types.GetDeviceDataTypeString[A]()) + distinctDataUserIDs, err := gs.userData.DistinctUserIDs(ctx, types.GetDeviceDataTypeStrings[A]()) if err != nil { return 0, err } @@ -163,7 +158,7 @@ func (gs *GlucoseSummarizer[A, T]) BackfillSummaries(ctx context.Context) (int, func (gs *GlucoseSummarizer[A, T]) UpdateSummary(ctx context.Context, userId string) (*types.Summary[A, T], error) { logger := log.LoggerFromContext(ctx) userSummary, err := gs.GetSummary(ctx, userId) - summaryType := types.GetDeviceDataTypeString[A]() + summaryType := types.GetDeviceDataTypeStrings[A]() if err != nil { return nil, err } @@ -247,6 +242,15 @@ func MaybeUpdateSummary(ctx context.Context, registry *SummarizerRegistry, updat outdatedSinceMap[types.SummaryTypeBGM] = outdatedSince } + if _, ok := updatesSummary[types.SummaryTypeContinuous]; ok { + summarizer := GetSummarizer[*types.ContinuousStats, types.ContinuousStats](registry) + outdatedSince, err := summarizer.SetOutdated(ctx, userId, reason) + if err != nil { + lgr.WithError(err).Error("Unable to set bgm summary outdated") + } + outdatedSinceMap[types.SummaryTypeContinuous] = outdatedSince + } + return outdatedSinceMap } diff --git a/data/summary/summary_test.go b/data/summary/summary_test.go index bfdac7f62..7db3a614a 100644 --- a/data/summary/summary_test.go +++ b/data/summary/summary_test.go @@ -163,6 +163,7 @@ var _ = Describe("Summary", func() { var userId string var cgmStore *dataStoreSummary.Repo[*types.CGMStats, types.CGMStats] var bgmStore *dataStoreSummary.Repo[*types.BGMStats, types.BGMStats] + var continuousStore *dataStoreSummary.Repo[*types.ContinuousStats, types.ContinuousStats] BeforeEach(func() { logger = logTest.NewLogger() @@ -180,6 +181,7 @@ var _ = Describe("Summary", func() { cgmStore = dataStoreSummary.New[*types.CGMStats](summaryRepository) bgmStore = dataStoreSummary.New[*types.BGMStats](summaryRepository) + continuousStore = dataStoreSummary.New[*types.ContinuousStats](summaryRepository) }) AfterEach(func() { @@ -189,14 +191,16 @@ var _ = Describe("Summary", func() { It("with all summary types outdated", func() { updatesSummary := map[string]struct{}{ - "cgm": empty, - "bgm": empty, + "cgm": empty, + "bgm": empty, + "continuous": empty, } outdatedSinceMap := summary.MaybeUpdateSummary(ctx, registry, updatesSummary, userId, types.OutdatedReasonDataAdded) Expect(outdatedSinceMap).To(HaveLen(2)) Expect(outdatedSinceMap).To(HaveKey(types.SummaryTypeCGM)) Expect(outdatedSinceMap).To(HaveKey(types.SummaryTypeBGM)) + Expect(outdatedSinceMap).To(HaveKey(types.SummaryTypeContinuous)) userCgmSummary, err := cgmStore.GetSummary(ctx, userId) Expect(err).ToNot(HaveOccurred()) @@ -205,6 +209,10 @@ var _ = Describe("Summary", func() { userBgmSummary, err := bgmStore.GetSummary(ctx, userId) Expect(err).ToNot(HaveOccurred()) Expect(*userBgmSummary.Dates.OutdatedSince).To(Equal(*outdatedSinceMap[types.SummaryTypeBGM])) + + userContinuousSummary, err := continuousStore.GetSummary(ctx, userId) + Expect(err).ToNot(HaveOccurred()) + Expect(*userContinuousSummary.Dates.OutdatedSince).To(Equal(*outdatedSinceMap[types.SummaryTypeContinuous])) }) It("with cgm summary type outdated", func() { @@ -223,6 +231,10 @@ var _ = Describe("Summary", func() { userBgmSummary, err := bgmStore.GetSummary(ctx, userId) Expect(err).ToNot(HaveOccurred()) Expect(userBgmSummary).To(BeNil()) + + userContinuousSummary, err := continuousStore.GetSummary(ctx, userId) + Expect(err).ToNot(HaveOccurred()) + Expect(userContinuousSummary).To(BeNil()) }) It("with bgm summary type outdated", func() { @@ -241,6 +253,32 @@ var _ = Describe("Summary", func() { userBgmSummary, err := bgmStore.GetSummary(ctx, userId) Expect(err).ToNot(HaveOccurred()) Expect(*userBgmSummary.Dates.OutdatedSince).To(Equal(*outdatedSinceMap[types.SummaryTypeBGM])) + + userContinuousSummary, err := continuousStore.GetSummary(ctx, userId) + Expect(err).ToNot(HaveOccurred()) + Expect(userContinuousSummary).To(BeNil()) + }) + + It("with continuous summary type outdated", func() { + updatesSummary := map[string]struct{}{ + "continuous": empty, + } + + outdatedSinceMap := summary.MaybeUpdateSummary(ctx, registry, updatesSummary, userId, types.OutdatedReasonDataAdded) + Expect(outdatedSinceMap).To(HaveLen(1)) + Expect(outdatedSinceMap).To(HaveKey(types.SummaryTypeBGM)) + + userCgmSummary, err := cgmStore.GetSummary(ctx, userId) + Expect(err).ToNot(HaveOccurred()) + Expect(userCgmSummary).To(BeNil()) + + userBgmSummary, err := bgmStore.GetSummary(ctx, userId) + Expect(err).ToNot(HaveOccurred()) + Expect(*userBgmSummary).To(BeNil()) + + userContinuousSummary, err := continuousStore.GetSummary(ctx, userId) + Expect(err).ToNot(HaveOccurred()) + Expect(userContinuousSummary.Dates.OutdatedSince).To(Equal(*outdatedSinceMap[types.SummaryTypeContinuous])) }) It("with unknown summary type outdated", func() { @@ -329,6 +367,7 @@ var _ = Describe("Summary", func() { var bgmStore *dataStoreSummary.Repo[*types.BGMStats, types.BGMStats] var cgmSummarizer summary.Summarizer[*types.CGMStats, types.CGMStats] var bgmSummarizer summary.Summarizer[*types.BGMStats, types.BGMStats] + var continuousSummarizer summary.Summarizer[*types.ContinuousStats, types.ContinuousStats] var dataCollection *mongo.Collection var datumTime time.Time @@ -352,6 +391,7 @@ var _ = Describe("Summary", func() { cgmSummarizer = summary.GetSummarizer[*types.CGMStats](registry) bgmSummarizer = summary.GetSummarizer[*types.BGMStats](registry) + continuousSummarizer = summary.GetSummarizer[*types.ContinuousStats](registry) datumTime = time.Now().UTC().Truncate(time.Hour) }) @@ -578,7 +618,7 @@ var _ = Describe("Summary", func() { }) It("summary calc with realtime data", func() { - var userSummary *types.Summary[*types.BGMStats, types.BGMStats] + var userSummary *types.Summary[*types.ContinuousStats, types.ContinuousStats] var deviceData []mongo.WriteModel realtimeDatumTime := time.Now().UTC().Truncate(time.Hour) @@ -591,7 +631,7 @@ var _ = Describe("Summary", func() { _, err := dataCollection.BulkWrite(ctx, deviceData, opts) Expect(err).ToNot(HaveOccurred()) - userSummary, err = bgmSummarizer.UpdateSummary(ctx, userId) + userSummary, err = continuousSummarizer.UpdateSummary(ctx, userId) Expect(err).ToNot(HaveOccurred()) Expect(userSummary).ToNot(BeNil()) Expect(len(userSummary.Stats.Buckets)).To(Equal(10)) @@ -603,7 +643,7 @@ var _ = Describe("Summary", func() { }) It("summary calc with deferred data", func() { - var userSummary *types.Summary[*types.BGMStats, types.BGMStats] + var userSummary *types.Summary[*types.ContinuousStats, types.ContinuousStats] var deviceData []mongo.WriteModel deferredDatumTime := time.Now().UTC().Truncate(time.Hour).AddDate(0, 0, -2) @@ -616,7 +656,7 @@ var _ = Describe("Summary", func() { _, err := dataCollection.BulkWrite(ctx, deviceData, opts) Expect(err).ToNot(HaveOccurred()) - userSummary, err = bgmSummarizer.UpdateSummary(ctx, userId) + userSummary, err = continuousSummarizer.UpdateSummary(ctx, userId) Expect(err).ToNot(HaveOccurred()) Expect(userSummary).ToNot(BeNil()) Expect(len(userSummary.Stats.Buckets)).To(Equal(10)) @@ -628,7 +668,7 @@ var _ = Describe("Summary", func() { }) It("summary calc with non-continuous data", func() { - var userSummary *types.Summary[*types.BGMStats, types.BGMStats] + var userSummary *types.Summary[*types.ContinuousStats, types.ContinuousStats] var deviceData []mongo.WriteModel deferredDatumTime := time.Now().UTC().Truncate(time.Hour).AddDate(0, 0, -2) @@ -641,7 +681,7 @@ var _ = Describe("Summary", func() { _, err := dataCollection.BulkWrite(ctx, deviceData, opts) Expect(err).ToNot(HaveOccurred()) - userSummary, err = bgmSummarizer.UpdateSummary(ctx, userId) + userSummary, err = continuousSummarizer.UpdateSummary(ctx, userId) Expect(err).ToNot(HaveOccurred()) Expect(userSummary).ToNot(BeNil()) Expect(len(userSummary.Stats.Buckets)).To(Equal(10)) diff --git a/data/summary/types/bgm.go b/data/summary/types/bgm.go index 68269b7aa..68ad2aa24 100644 --- a/data/summary/types/bgm.go +++ b/data/summary/types/bgm.go @@ -7,8 +7,6 @@ import ( "strconv" "time" - "github.com/tidepool-org/platform/data/types/upload" - "github.com/tidepool-org/platform/data/types/blood/glucose/selfmonitored" "github.com/tidepool-org/platform/data/blood/glucose" @@ -26,13 +24,6 @@ type BGMBucketData struct { TotalGlucose float64 `json:"totalGlucose" bson:"totalGlucose"` TotalRecords int `json:"totalRecords" bson:"totalRecords"` - - // RealtimeRecords is the total count of records which were both uploaded within 24h of the record creation - // and from a continuous dataset - RealtimeRecords int `json:"realtimeRecords" bson:"realtimeRecords"` - - // DeferredRecords is the total count of records which are in continuous datasets, but not uploaded within 24h - DeferredRecords int `json:"deferredRecords" bson:"deferredRecords"` } type BGMPeriod struct { @@ -103,18 +94,6 @@ type BGMPeriod struct { HasTimeInAnyHighRecords bool `json:"hasTimeInAnyHighRecords" bson:"hasTimeInAnyHighRecords"` TimeInAnyHighRecords *int `json:"timeInAnyHighRecords" bson:"timeInAnyHighRecords"` TimeInAnyHighRecordsDelta *int `json:"timeInAnyHighRecordsDelta" bson:"timeInAnyHighRecordsDelta"` - - RealtimeRecords *int `json:"realtimeRecords" bson:"realtimeRecords"` - RealtimeRecordsDelta *int `json:"realtimeRecordsDelta" bson:"realtimeRecordsDelta"` - - RealtimePercent *float64 `json:"realtimeRecordsPercent" bson:"realtimeRecordsPercent"` - RealtimePercentDelta *float64 `json:"realtimeRecordsPercentDelta" bson:"realtimeRecordsPercentDelta"` - - DeferredRecords *int `json:"deferredRecords" bson:"deferredRecords"` - DeferredRecordsDelta *int `json:"deferredRecordsDelta" bson:"deferredRecordsDelta"` - - DeferredPercent *float64 `json:"deferredPercent" bson:"deferredPercent"` - DeferredPercentDelta *float64 `json:"deferredPercentDelta" bson:"deferredPercentDelta"` } type BGMPeriods map[string]*BGMPeriod @@ -130,8 +109,8 @@ func (*BGMStats) GetType() string { return SummaryTypeBGM } -func (*BGMStats) GetDeviceDataType() string { - return selfmonitored.Type +func (*BGMStats) GetDeviceDataTypes() []string { + return []string{selfmonitored.Type} } func (s *BGMStats) Init() { @@ -176,8 +155,6 @@ func (s *BGMStats) ClearInvalidatedBuckets(earliestModified time.Time) (firstDat func (s *BGMStats) Update(ctx context.Context, cursor DeviceDataCursor, dataRepo DeviceDataFetcher) error { var err error var userData []*glucoseDatum.Glucose = nil - var uploadRecord *upload.Upload - uploadIds := map[string]bool{} for cursor.Next(ctx) { if userData == nil { @@ -190,20 +167,9 @@ func (s *BGMStats) Update(ctx context.Context, cursor DeviceDataCursor, dataRepo } userData = append(userData, r) - if _, ok := uploadIds[*r.UploadID]; !ok { - uploadRecord, err = dataRepo.GetDataSetByID(ctx, *r.UploadID) - if err != nil { - return err - } - - if uploadRecord != nil && uploadRecord.HasDataSetTypeContinuous() { - uploadIds[*r.UploadID] = true - } - } - // we call AddData before each network call to the db to reduce thrashing if cursor.RemainingBatchLength() != 0 { - err = AddData(&s.Buckets, userData, uploadIds) + err = AddData(&s.Buckets, userData) if err != nil { return err } @@ -213,7 +179,7 @@ func (s *BGMStats) Update(ctx context.Context, cursor DeviceDataCursor, dataRepo // add the final partial batch if userData != nil { - err = AddData(&s.Buckets, userData, uploadIds) + err = AddData(&s.Buckets, userData) if err != nil { return err } @@ -225,7 +191,7 @@ func (s *BGMStats) Update(ctx context.Context, cursor DeviceDataCursor, dataRepo return nil } -func (B *BGMBucketData) CalculateStats(r any, _ *time.Time, continuous bool) (bool, error) { +func (B *BGMBucketData) CalculateStats(r any, _ *time.Time) (bool, error) { dataRecord, ok := r.(*glucoseDatum.Glucose) if !ok { return false, errors.New("BGM record for calculation is not compatible with Glucose type") @@ -248,14 +214,6 @@ func (B *BGMBucketData) CalculateStats(r any, _ *time.Time, continuous bool) (bo B.TotalRecords++ B.TotalGlucose += normalizedValue - if continuous { - if dataRecord.CreatedTime.Sub(*dataRecord.Time).Hours() < 24 { - B.RealtimeRecords++ - } else { - B.DeferredRecords++ - } - } - return false, nil } @@ -285,9 +243,6 @@ func (s *BGMStats) CalculateSummary() { totalStats.TotalGlucose += s.Buckets[currentIndex].Data.TotalGlucose totalStats.TotalRecords += s.Buckets[currentIndex].Data.TotalRecords - - totalStats.DeferredRecords += s.Buckets[currentIndex].Data.DeferredRecords - totalStats.RealtimeRecords += s.Buckets[currentIndex].Data.RealtimeRecords } // only add to offset stats when primary stop point is ahead of offset @@ -306,9 +261,6 @@ func (s *BGMStats) CalculateSummary() { totalOffsetStats.TotalGlucose += s.Buckets[currentIndex].Data.TotalGlucose totalOffsetStats.TotalRecords += s.Buckets[currentIndex].Data.TotalRecords - - totalOffsetStats.DeferredRecords += s.Buckets[currentIndex].Data.DeferredRecords - totalOffsetStats.RealtimeRecords += s.Buckets[currentIndex].Data.RealtimeRecords } } @@ -450,34 +402,6 @@ func (s *BGMStats) CalculateDelta() { s.Periods[k].TimeInAnyHighRecordsDelta = pointer.FromAny(delta) s.OffsetPeriods[k].TimeInAnyHighRecordsDelta = pointer.FromAny(-delta) } - - if s.Periods[k].RealtimePercent != nil && s.OffsetPeriods[k].RealtimePercent != nil { - delta := *s.Periods[k].RealtimePercent - *s.OffsetPeriods[k].RealtimePercent - - s.Periods[k].RealtimePercentDelta = pointer.FromAny(delta) - s.OffsetPeriods[k].RealtimePercentDelta = pointer.FromAny(-delta) - } - - if s.Periods[k].RealtimeRecords != nil && s.OffsetPeriods[k].RealtimeRecords != nil { - delta := *s.Periods[k].RealtimeRecords - *s.OffsetPeriods[k].RealtimeRecords - - s.Periods[k].RealtimeRecordsDelta = pointer.FromAny(delta) - s.OffsetPeriods[k].RealtimeRecordsDelta = pointer.FromAny(-delta) - } - - if s.Periods[k].DeferredPercent != nil && s.OffsetPeriods[k].DeferredPercent != nil { - delta := *s.Periods[k].DeferredPercent - *s.OffsetPeriods[k].DeferredPercent - - s.Periods[k].DeferredPercentDelta = pointer.FromAny(delta) - s.OffsetPeriods[k].DeferredPercentDelta = pointer.FromAny(-delta) - } - - if s.Periods[k].DeferredRecords != nil && s.OffsetPeriods[k].DeferredRecords != nil { - delta := *s.Periods[k].DeferredRecords - *s.OffsetPeriods[k].DeferredRecords - - s.Periods[k].DeferredRecordsDelta = pointer.FromAny(delta) - s.OffsetPeriods[k].DeferredRecordsDelta = pointer.FromAny(-delta) - } } } @@ -509,10 +433,6 @@ func (s *BGMStats) CalculatePeriod(i int, offset bool, totalStats *BGMBucketData HasTimeInAnyHighRecords: true, TimeInAnyHighRecords: pointer.FromAny(totalStats.VeryHighRecords + totalStats.HighRecords), - - RealtimeRecords: pointer.FromAny(totalStats.RealtimeRecords + totalStats.RealtimeRecords), - - DeferredRecords: pointer.FromAny(totalStats.DeferredRecords + totalStats.DeferredRecords), } if totalStats.TotalRecords != 0 { @@ -539,10 +459,6 @@ func (s *BGMStats) CalculatePeriod(i int, offset bool, totalStats *BGMBucketData newPeriod.HasAverageGlucoseMmol = true newPeriod.AverageGlucoseMmol = pointer.FromAny(totalStats.TotalGlucose / float64(totalStats.TotalRecords)) - - newPeriod.RealtimePercent = pointer.FromAny(float64(totalStats.RealtimeRecords) / float64(totalStats.TotalRecords)) - - newPeriod.DeferredPercent = pointer.FromAny(float64(totalStats.DeferredRecords) / float64(totalStats.TotalRecords)) } if offset { diff --git a/data/summary/types/cgm.go b/data/summary/types/cgm.go index 35b201656..d0dc073aa 100644 --- a/data/summary/types/cgm.go +++ b/data/summary/types/cgm.go @@ -7,8 +7,6 @@ import ( "strconv" "time" - "github.com/tidepool-org/platform/data/types/upload" - "github.com/tidepool-org/platform/data/types/blood/glucose/continuous" "github.com/tidepool-org/platform/data/blood/glucose" @@ -37,13 +35,6 @@ type CGMBucketData struct { TotalGlucose float64 `json:"totalGlucose" bson:"totalGlucose"` TotalMinutes int `json:"totalMinutes" bson:"totalMinutes"` TotalRecords int `json:"totalRecords" bson:"totalRecords"` - - // RealtimeRecords is the total count of records which were both uploaded within 24h of the record creation - // and from a continuous dataset - RealtimeRecords int `json:"realtimeRecords" bson:"realtimeRecords"` - - // DeferredRecords is the total count of records which are in continuous datasets, but not uploaded within 24h - DeferredRecords int `json:"deferredRecords" bson:"deferredRecords"` } type CGMPeriod struct { @@ -158,18 +149,6 @@ type CGMPeriod struct { HasTimeInAnyHighRecords bool `json:"hasTimeInAnyHighRecords" bson:"hasTimeInAnyHighRecords"` TimeInAnyHighRecords *int `json:"timeInAnyHighRecords" bson:"timeInAnyHighRecords"` TimeInAnyHighRecordsDelta *int `json:"timeInAnyHighRecordsDelta" bson:"timeInAnyHighRecordsDelta"` - - RealtimeRecords *int `json:"realtimeRecords" bson:"realtimeRecords"` - RealtimeRecordsDelta *int `json:"realtimeRecordsDelta" bson:"realtimeRecordsDelta"` - - RealtimePercent *float64 `json:"realtimeRecordsPercent" bson:"realtimeRecordsPercent"` - RealtimePercentDelta *float64 `json:"realtimeRecordsPercentDelta" bson:"realtimeRecordsPercentDelta"` - - DeferredRecords *int `json:"deferredRecords" bson:"deferredRecords"` - DeferredRecordsDelta *int `json:"deferredRecordsDelta" bson:"deferredRecordsDelta"` - - DeferredPercent *float64 `json:"deferredPercent" bson:"deferredPercent"` - DeferredPercentDelta *float64 `json:"deferredPercentDelta" bson:"deferredPercentDelta"` } type CGMPeriods map[string]*CGMPeriod @@ -185,8 +164,8 @@ func (*CGMStats) GetType() string { return SummaryTypeCGM } -func (*CGMStats) GetDeviceDataType() string { - return continuous.Type +func (*CGMStats) GetDeviceDataTypes() []string { + return []string{continuous.Type} } func (s *CGMStats) Init() { @@ -230,9 +209,7 @@ func (s *CGMStats) ClearInvalidatedBuckets(earliestModified time.Time) (firstDat func (s *CGMStats) Update(ctx context.Context, cursor DeviceDataCursor, dataRepo DeviceDataFetcher) error { var err error - var uploadRecord *upload.Upload var userData []*glucoseDatum.Glucose = nil - uploadIds := map[string]bool{} for cursor.Next(ctx) { if userData == nil { @@ -245,20 +222,9 @@ func (s *CGMStats) Update(ctx context.Context, cursor DeviceDataCursor, dataRepo } userData = append(userData, r) - if _, ok := uploadIds[*r.UploadID]; !ok { - uploadRecord, err = dataRepo.GetDataSetByID(ctx, *r.UploadID) - if err != nil { - return err - } - - if uploadRecord != nil && uploadRecord.HasDataSetTypeNormal() { - uploadIds[*r.UploadID] = true - } - } - // we call AddData before each network call to the db to reduce thrashing if cursor.RemainingBatchLength() != 0 { - err = AddData(&s.Buckets, userData, uploadIds) + err = AddData(&s.Buckets, userData) if err != nil { return err } @@ -268,7 +234,7 @@ func (s *CGMStats) Update(ctx context.Context, cursor DeviceDataCursor, dataRepo // add the final partial batch if userData != nil { - err = AddData(&s.Buckets, userData, uploadIds) + err = AddData(&s.Buckets, userData) if err != nil { return err } @@ -280,7 +246,7 @@ func (s *CGMStats) Update(ctx context.Context, cursor DeviceDataCursor, dataRepo return nil } -func (B *CGMBucketData) CalculateStats(r any, lastRecordTime *time.Time, continuous bool) (bool, error) { +func (B *CGMBucketData) CalculateStats(r any, lastRecordTime *time.Time) (bool, error) { dataRecord, ok := r.(*glucoseDatum.Glucose) if !ok { return false, errors.New("CGM record for calculation is not compatible with Glucose type") @@ -321,14 +287,6 @@ func (B *CGMBucketData) CalculateStats(r any, lastRecordTime *time.Time, continu B.TotalGlucose += normalizedValue * float64(duration) B.LastRecordDuration = duration - if continuous { - if dataRecord.CreatedTime.Sub(*dataRecord.Time).Hours() < 24 { - B.RealtimeRecords++ - } else { - B.DeferredRecords++ - } - } - return false, nil } @@ -371,9 +329,6 @@ func (s *CGMStats) CalculateSummary() { totalStats.TotalGlucose += s.Buckets[currentIndex].Data.TotalGlucose totalStats.TotalMinutes += s.Buckets[currentIndex].Data.TotalMinutes totalStats.TotalRecords += s.Buckets[currentIndex].Data.TotalRecords - - totalStats.DeferredRecords += s.Buckets[currentIndex].Data.DeferredRecords - totalStats.RealtimeRecords += s.Buckets[currentIndex].Data.RealtimeRecords } // only add to offset stats when primary stop point is ahead of offset @@ -401,9 +356,6 @@ func (s *CGMStats) CalculateSummary() { totalOffsetStats.TotalGlucose += s.Buckets[currentIndex].Data.TotalGlucose totalOffsetStats.TotalMinutes += s.Buckets[currentIndex].Data.TotalMinutes totalOffsetStats.TotalRecords += s.Buckets[currentIndex].Data.TotalRecords - - totalOffsetStats.DeferredRecords += s.Buckets[currentIndex].Data.DeferredRecords - totalOffsetStats.RealtimeRecords += s.Buckets[currentIndex].Data.RealtimeRecords } } @@ -622,34 +574,6 @@ func (s *CGMStats) CalculateDelta() { s.Periods[k].TimeInAnyHighMinutesDelta = pointer.FromAny(delta) s.OffsetPeriods[k].TimeInAnyHighMinutesDelta = pointer.FromAny(-delta) } - - if s.Periods[k].RealtimePercent != nil && s.OffsetPeriods[k].RealtimePercent != nil { - delta := *s.Periods[k].RealtimePercent - *s.OffsetPeriods[k].RealtimePercent - - s.Periods[k].RealtimePercentDelta = pointer.FromAny(delta) - s.OffsetPeriods[k].RealtimePercentDelta = pointer.FromAny(-delta) - } - - if s.Periods[k].RealtimeRecords != nil && s.OffsetPeriods[k].RealtimeRecords != nil { - delta := *s.Periods[k].RealtimeRecords - *s.OffsetPeriods[k].RealtimeRecords - - s.Periods[k].RealtimeRecordsDelta = pointer.FromAny(delta) - s.OffsetPeriods[k].RealtimeRecordsDelta = pointer.FromAny(-delta) - } - - if s.Periods[k].DeferredPercent != nil && s.OffsetPeriods[k].DeferredPercent != nil { - delta := *s.Periods[k].DeferredPercent - *s.OffsetPeriods[k].DeferredPercent - - s.Periods[k].DeferredPercentDelta = pointer.FromAny(delta) - s.OffsetPeriods[k].DeferredPercentDelta = pointer.FromAny(-delta) - } - - if s.Periods[k].DeferredRecords != nil && s.OffsetPeriods[k].DeferredRecords != nil { - delta := *s.Periods[k].DeferredRecords - *s.OffsetPeriods[k].DeferredRecords - - s.Periods[k].DeferredRecordsDelta = pointer.FromAny(delta) - s.OffsetPeriods[k].DeferredRecordsDelta = pointer.FromAny(-delta) - } } } @@ -708,10 +632,6 @@ func (s *CGMStats) CalculatePeriod(i int, offset bool, totalStats *CGMBucketData HasTimeInAnyHighRecords: true, TimeInAnyHighRecords: pointer.FromAny(totalStats.HighRecords + totalStats.VeryHighRecords), - - RealtimeRecords: pointer.FromAny(totalStats.RealtimeRecords + totalStats.RealtimeRecords), - - DeferredRecords: pointer.FromAny(totalStats.DeferredRecords + totalStats.DeferredRecords), } if totalStats.TotalRecords != 0 { @@ -742,10 +662,6 @@ func (s *CGMStats) CalculatePeriod(i int, offset bool, totalStats *CGMBucketData newPeriod.HasTimeInAnyHighPercent = true newPeriod.TimeInAnyHighPercent = pointer.FromAny(float64(totalStats.VeryHighRecords+totalStats.HighRecords) / float64(totalStats.TotalRecords)) - - newPeriod.RealtimePercent = pointer.FromAny(float64(totalStats.RealtimeRecords) / float64(totalStats.TotalRecords)) - - newPeriod.DeferredPercent = pointer.FromAny(float64(totalStats.DeferredRecords) / float64(totalStats.TotalRecords)) } newPeriod.HasAverageGlucoseMmol = true diff --git a/data/summary/types/continuous.go b/data/summary/types/continuous.go new file mode 100644 index 000000000..cab01cb4c --- /dev/null +++ b/data/summary/types/continuous.go @@ -0,0 +1,213 @@ +package types + +import ( + "context" + "errors" + "fmt" + glucoseDatum "github.com/tidepool-org/platform/data/types/blood/glucose" + "github.com/tidepool-org/platform/data/types/upload" + "github.com/tidepool-org/platform/pointer" + "strconv" + "time" +) + +type ContinuousBucketData struct { + TotalRecords int `json:"totalRecords" bson:"totalRecords"` + + // RealtimeRecords is the total count of records which were both uploaded within 24h of the record creation + // and from a continuous dataset + RealtimeRecords int `json:"realtimeRecords" bson:"realtimeRecords"` + + // DeferredRecords is the total count of records which are in continuous datasets, but not uploaded within 24h + DeferredRecords int `json:"deferredRecords" bson:"deferredRecords"` +} + +type ContinuousPeriod struct { + TotalRecords *int `json:"totalRecords" bson:"totalRecords"` + + AverageDailyRecords *float64 `json:"averageDailyRecords" bson:"averageDailyRecords"` + + RealtimeRecords *int `json:"realtimeRecords" bson:"realtimeRecords"` + RealtimePercent *float64 `json:"realtimeRecordsPercent" bson:"realtimeRecordsPercent"` + DeferredRecords *int `json:"deferredRecords" bson:"deferredRecords"` + DeferredPercent *float64 `json:"deferredPercent" bson:"deferredPercent"` +} + +type ContinuousPeriods map[string]*ContinuousPeriod + +type ContinuousStats struct { + Periods ContinuousPeriods `json:"periods" bson:"periods"` + Buckets []*Bucket[*ContinuousBucketData, ContinuousBucketData] `json:"buckets" bson:"buckets"` + TotalHours int `json:"totalHours" bson:"totalHours"` +} + +func (*ContinuousStats) GetType() string { + return SummaryTypeContinuous +} + +func (*ContinuousStats) GetDeviceDataTypes() []string { + return DeviceDataTypes +} + +func (s *ContinuousStats) Init() { + s.Buckets = make([]*Bucket[*ContinuousBucketData, ContinuousBucketData], 0) + s.Periods = make(map[string]*ContinuousPeriod) + s.TotalHours = 0 +} + +func (s *ContinuousStats) GetBucketsLen() int { + return len(s.Buckets) +} + +func (s *ContinuousStats) GetBucketDate(i int) time.Time { + return s.Buckets[i].Date +} + +func (s *ContinuousStats) ClearInvalidatedBuckets(earliestModified time.Time) (firstData time.Time) { + if len(s.Buckets) == 0 { + return + } else if earliestModified.After(s.Buckets[len(s.Buckets)-1].LastRecordTime) { + return s.Buckets[len(s.Buckets)-1].LastRecordTime + } else if earliestModified.Before(s.Buckets[0].Date) || earliestModified.Equal(s.Buckets[0].Date) { + // we are before all existing buckets, remake for GC + s.Buckets = make([]*Bucket[*ContinuousBucketData, ContinuousBucketData], 0) + return + } + + offset := len(s.Buckets) - (int(s.Buckets[len(s.Buckets)-1].Date.Sub(earliestModified.UTC().Truncate(time.Hour)).Hours()) + 1) + + for i := offset; i < len(s.Buckets); i++ { + s.Buckets[i] = nil + } + s.Buckets = s.Buckets[:offset] + + if len(s.Buckets) > 0 { + return s.Buckets[len(s.Buckets)-1].LastRecordTime + } + return +} + +func (s *ContinuousStats) Update(ctx context.Context, cursor DeviceDataCursor, dataRepo DeviceDataFetcher) error { + var err error + var uploadRecord *upload.Upload + var userData []*glucoseDatum.Glucose = nil + uploadIds := map[string]bool{} + + for cursor.Next(ctx) { + if userData == nil { + userData = make([]*glucoseDatum.Glucose, 0, cursor.RemainingBatchLength()) + } + + r := &glucoseDatum.Glucose{} + if err = cursor.Decode(r); err != nil { + return fmt.Errorf("unable to decode userData: %w", err) + } + + // check if we already cached if the uploadId is continuous or not, query if unknown + if _, ok := uploadIds[*r.UploadID]; !ok { + uploadRecord, err = dataRepo.GetDataSetByID(ctx, *r.UploadID) + if err != nil { + return err + } + + if uploadRecord != nil && uploadRecord.HasDataSetTypeContinuous() { + uploadIds[*r.UploadID] = true + } else { + uploadIds[*r.UploadID] = false + } + } + + if uploadIds[*r.UploadID] { + userData = append(userData, r) + } + + // we call AddData before each network call to the db to reduce thrashing + if cursor.RemainingBatchLength() != 0 { + err = AddData(&s.Buckets, userData) + if err != nil { + return err + } + userData = nil + } + } + + // add the final partial batch + if userData != nil { + err = AddData(&s.Buckets, userData) + if err != nil { + return err + } + userData = nil + } + + s.CalculateSummary() + + return nil +} + +func (B *ContinuousBucketData) CalculateStats(r any, _ *time.Time) (bool, error) { + dataRecord, ok := r.(*glucoseDatum.Glucose) + if !ok { + return false, errors.New("continuous record for calculation is not compatible with Glucose type") + } + + if dataRecord.CreatedTime.Sub(*dataRecord.Time).Hours() < 24 { + B.RealtimeRecords++ + } else { + B.DeferredRecords++ + } + + B.TotalRecords++ + + return false, nil +} + +func (s *ContinuousStats) CalculateSummary() { + // count backwards (newest first) through hourly stats, stopping at 24, 24*7, 24*14, 24*30 + // currently only supports day precision + nextStopPoint := 0 + totalStats := &ContinuousBucketData{} + + for i := 0; i < len(s.Buckets); i++ { + currentIndex := len(s.Buckets) - 1 - i + + // only count primary stats when the next stop point is a real period + if len(stopPoints) > nextStopPoint { + if i == stopPoints[nextStopPoint]*24 { + s.CalculatePeriod(stopPoints[nextStopPoint], totalStats) + nextStopPoint++ + } + + totalStats.TotalRecords += s.Buckets[currentIndex].Data.TotalRecords + + totalStats.DeferredRecords += s.Buckets[currentIndex].Data.DeferredRecords + totalStats.RealtimeRecords += s.Buckets[currentIndex].Data.RealtimeRecords + } + } + + // fill in periods we never reached + for i := nextStopPoint; i < len(stopPoints); i++ { + s.CalculatePeriod(stopPoints[i], totalStats) + } + + s.TotalHours = len(s.Buckets) +} + +func (s *ContinuousStats) CalculatePeriod(i int, totalStats *ContinuousBucketData) { + newPeriod := &ContinuousPeriod{ + TotalRecords: pointer.FromAny(totalStats.TotalRecords), + + AverageDailyRecords: pointer.FromAny(float64(totalStats.TotalRecords) / float64(i)), + + RealtimeRecords: pointer.FromAny(totalStats.RealtimeRecords + totalStats.RealtimeRecords), + + DeferredRecords: pointer.FromAny(totalStats.DeferredRecords + totalStats.DeferredRecords), + } + + if totalStats.TotalRecords != 0 { + newPeriod.RealtimePercent = pointer.FromAny(float64(totalStats.RealtimeRecords) / float64(totalStats.TotalRecords)) + newPeriod.DeferredPercent = pointer.FromAny(float64(totalStats.DeferredRecords) / float64(totalStats.TotalRecords)) + } + + s.Periods[strconv.Itoa(i)+"d"] = newPeriod +} diff --git a/data/summary/types/summary.go b/data/summary/types/summary.go index d27c4d267..dc8355acd 100644 --- a/data/summary/types/summary.go +++ b/data/summary/types/summary.go @@ -29,9 +29,10 @@ import ( ) const ( - SummaryTypeCGM = "cgm" - SummaryTypeBGM = "bgm" - SchemaVersion = 4 + SummaryTypeCGM = "cgm" + SummaryTypeBGM = "bgm" + SummaryTypeContinuous = "continuous" + SchemaVersion = 4 lowBloodGlucose = 3.9 veryLowBloodGlucose = 3.0 @@ -62,7 +63,7 @@ type OutdatedSummariesResponse struct { } type BucketData interface { - CGMBucketData | BGMBucketData + CGMBucketData | BGMBucketData | ContinuousBucketData } type RecordTypes interface { @@ -85,9 +86,9 @@ type DeviceDataCursor interface { type DeviceDataFetcher interface { GetDataSetByID(ctx context.Context, dataSetID string) (*upload.Upload, error) - GetLastUpdatedForUser(ctx context.Context, userId string, typ string, lastUpdated time.Time) (*data.UserLastUpdated, error) - GetDataRange(ctx context.Context, userId string, typ string, status *data.UserLastUpdated) (*mongo.Cursor, error) - DistinctUserIDs(ctx context.Context, typ string) ([]string, error) + GetLastUpdatedForUser(ctx context.Context, userId string, typ []string, lastUpdated time.Time) (*data.UserLastUpdated, error) + GetDataRange(ctx context.Context, userId string, typ []string, status *data.UserLastUpdated) (*mongo.Cursor, error) + DistinctUserIDs(ctx context.Context, typ []string) ([]string, error) } type Config struct { @@ -145,7 +146,7 @@ type Bucket[S BucketDataPt[T], T BucketData] struct { type BucketDataPt[T BucketData] interface { *T - CalculateStats(interface{}, *time.Time, bool) (bool, error) + CalculateStats(interface{}, *time.Time) (bool, error) } func CreateBucket[A BucketDataPt[T], T BucketData](t time.Time) *Bucket[A, T] { @@ -156,13 +157,13 @@ func CreateBucket[A BucketDataPt[T], T BucketData](t time.Time) *Bucket[A, T] { } type Stats interface { - CGMStats | BGMStats + CGMStats | BGMStats | ContinuousStats } type StatsPt[T Stats] interface { *T GetType() string - GetDeviceDataType() string + GetDeviceDataTypes() []string Init() GetBucketsLen() int GetBucketDate(int) time.Time @@ -252,9 +253,9 @@ func GetTypeString[A StatsPt[T], T Stats]() string { return s.Stats.GetType() } -func GetDeviceDataTypeString[A StatsPt[T], T Stats]() string { +func GetDeviceDataTypeStrings[A StatsPt[T], T Stats]() []string { s := new(Summary[A, T]) - return s.Stats.GetDeviceDataType() + return s.Stats.GetDeviceDataTypes() } type Period interface { @@ -357,14 +358,7 @@ func removeExcessBuckets[A BucketDataPt[T], T BucketData](buckets *[]*Bucket[A, *buckets = (*buckets)[excess:] } -type ContinuousUploads map[string]bool - -func (r *ContinuousUploads) IsContinuous(uploadId string) bool { - val, _ := (*r)[uploadId] - return val -} - -func AddData[A BucketDataPt[T], T BucketData, R RecordTypes, D RecordTypesPt[R]](buckets *[]*Bucket[A, T], userData []D, uploads ContinuousUploads) error { +func AddData[A BucketDataPt[T], T BucketData, R RecordTypes, D RecordTypesPt[R]](buckets *[]*Bucket[A, T], userData []D) error { previousPeriod := time.Time{} var newBucket *Bucket[A, T] @@ -425,7 +419,7 @@ func AddData[A BucketDataPt[T], T BucketData, R RecordTypes, D RecordTypesPt[R]] previousPeriod = currentPeriod - skipped, err := newBucket.Data.CalculateStats(r, &newBucket.LastRecordTime, uploads.IsContinuous(*r.GetUploadID())) + skipped, err := newBucket.Data.CalculateStats(r, &newBucket.LastRecordTime) if err != nil { return err diff --git a/data/summary/types/test/summary.go b/data/summary/types/test/summary.go index 94e957dc8..317dcbc51 100644 --- a/data/summary/types/test/summary.go +++ b/data/summary/types/test/summary.go @@ -409,69 +409,76 @@ func RandomBGMSummary(userId string) *types.Summary[*types.BGMStats, types.BGMSt return &datum } -func NewRealtimeCGMSummary(userId string, startTime time.Time, endTime time.Time, realtimeDays int) *types.Summary[*types.CGMStats, types.CGMStats] { - totalHours := int(endTime.Sub(startTime).Hours()) - lastData := endTime.Add(59 * time.Minute) - - datum := types.Summary[*types.CGMStats, types.CGMStats]{ +func RandomContinousSummary(userId string) *types.Summary[*types.ContinuousStats, types.ContinuousStats] { + datum := types.Summary[*types.ContinuousStats, types.ContinuousStats]{ UserID: userId, - Type: types.SummaryTypeCGM, + Type: "continuous", + Config: types.Config{ + SchemaVersion: test.RandomIntFromRange(1, 5), + HighGlucoseThreshold: test.RandomFloat64FromRange(5, 10), + VeryHighGlucoseThreshold: test.RandomFloat64FromRange(10, 20), + LowGlucoseThreshold: test.RandomFloat64FromRange(3, 5), + VeryLowGlucoseThreshold: test.RandomFloat64FromRange(0, 3), + }, Dates: types.Dates{ - FirstData: &startTime, - LastData: &lastData, + LastUpdatedDate: test.RandomTime(), + HasLastUploadDate: test.RandomBool(), + LastUploadDate: pointer.FromAny(test.RandomTime()), + HasFirstData: test.RandomBool(), + FirstData: pointer.FromAny(test.RandomTime()), + HasLastData: test.RandomBool(), + LastData: pointer.FromAny(test.RandomTime()), + HasOutdatedSince: test.RandomBool(), + OutdatedSince: pointer.FromAny(test.RandomTime()), }, - Stats: &types.CGMStats{ - Buckets: make([]*types.Bucket[*types.CGMBucketData, types.CGMBucketData], totalHours), + Stats: &types.ContinuousStats{ + TotalHours: test.RandomIntFromRange(1, 720), + Periods: make(map[string]*types.ContinuousPeriod), + + // we only make 2, as its lighter and 2 vs 14 vs 90 isn't very different here. + Buckets: make([]*types.Bucket[*types.ContinuousBucketData, types.ContinuousBucketData], 2), }, } - var yesterday time.Time - var today time.Time - var bucketDate time.Time - var flaggedDays int - var recordCount int - for i := 0; i < len(datum.Stats.Buckets); i++ { - bucketDate = startTime.Add(time.Duration(i) * time.Hour) - today = bucketDate.Truncate(time.Hour * 24) - - if flaggedDays < realtimeDays { - recordCount = test.RandomIntFromRange(1, 12) - - if today.After(yesterday) { - flaggedDays++ - yesterday = today - } - - } else { - recordCount = 0 + datum.Stats.Buckets[i] = &types.Bucket[*types.ContinuousBucketData, types.ContinuousBucketData]{ + Date: test.RandomTime(), + LastRecordTime: test.RandomTime(), + Data: &types.ContinuousBucketData{ + TotalRecords: test.RandomIntFromRange(1, 1000), + RealtimeRecords: test.RandomIntFromRange(1, 1000), + DeferredRecords: test.RandomIntFromRange(1, 1000), + }, } + } - datum.Stats.Buckets[i] = &types.Bucket[*types.CGMBucketData, types.CGMBucketData]{ - Date: bucketDate, - Data: &types.CGMBucketData{ - RealtimeRecords: recordCount, - DeferredRecords: recordCount, - }, + for _, period := range []string{"30d"} { + datum.Stats.Periods[period] = &types.ContinuousPeriod{ + TotalRecords: pointer.FromAny(test.RandomIntFromRange(1, 1000)), + AverageDailyRecords: pointer.FromAny(test.RandomFloat64FromRange(0, 1)), + RealtimeRecords: pointer.FromAny(test.RandomIntFromRange(1, 1000)), + RealtimePercent: pointer.FromAny(test.RandomFloat64FromRange(0, 1)), + DeferredRecords: pointer.FromAny(test.RandomIntFromRange(1, 1000)), + DeferredPercent: pointer.FromAny(test.RandomFloat64FromRange(0, 1)), } } return &datum } -func NewRealtimeBGMSummary(userId string, startTime time.Time, endTime time.Time, realtimeDays int) *types.Summary[*types.BGMStats, types.BGMStats] { +func NewRealtimeSummary(userId string, startTime time.Time, endTime time.Time, realtimeDays int) *types.Summary[*types.ContinuousStats, types.ContinuousStats] { totalHours := int(endTime.Sub(startTime).Hours()) lastData := endTime.Add(59 * time.Minute) - datum := types.Summary[*types.BGMStats, types.BGMStats]{ + datum := types.Summary[*types.ContinuousStats, types.ContinuousStats]{ UserID: userId, - Type: types.SummaryTypeBGM, + Type: types.SummaryTypeCGM, Dates: types.Dates{ FirstData: &startTime, LastData: &lastData, }, - Stats: &types.BGMStats{ - Buckets: make([]*types.Bucket[*types.BGMBucketData, types.BGMBucketData], totalHours), + Stats: &types.ContinuousStats{ + Buckets: make([]*types.Bucket[*types.ContinuousBucketData, types.ContinuousBucketData], totalHours), }, } @@ -497,9 +504,9 @@ func NewRealtimeBGMSummary(userId string, startTime time.Time, endTime time.Time recordCount = 0 } - datum.Stats.Buckets[i] = &types.Bucket[*types.BGMBucketData, types.BGMBucketData]{ + datum.Stats.Buckets[i] = &types.Bucket[*types.ContinuousBucketData, types.ContinuousBucketData]{ Date: bucketDate, - Data: &types.BGMBucketData{ + Data: &types.ContinuousBucketData{ RealtimeRecords: recordCount, DeferredRecords: recordCount, }, From 04f1d3240ccb171547642f6e93850687ea072876 Mon Sep 17 00:00:00 2001 From: Alexander Diana Date: Thu, 28 Mar 2024 03:42:03 +0000 Subject: [PATCH 15/34] more unit tests, reorg summary store unit tests to separate types --- data/summary/store/store.go | 112 +- data/summary/store/store_test.go | 2571 +++++++++++------ data/summary/types/bgm.go | 4 + .../{summary_bgm_test.go => bgm_test.go} | 0 data/summary/types/cgm.go | 4 + .../{summary_cgm_test.go => cgm_test.go} | 152 +- data/summary/types/continuous.go | 25 + data/summary/types/continuous_test.go | 403 +++ data/summary/types/summary.go | 1 + 9 files changed, 2083 insertions(+), 1189 deletions(-) rename data/summary/types/{summary_bgm_test.go => bgm_test.go} (100%) rename data/summary/types/{summary_cgm_test.go => cgm_test.go} (94%) create mode 100644 data/summary/types/continuous_test.go diff --git a/data/summary/store/store.go b/data/summary/store/store.go index a40b3d2a1..19a92de64 100644 --- a/data/summary/store/store.go +++ b/data/summary/store/store.go @@ -82,67 +82,6 @@ func (r *TypelessRepo) DeleteSummary(ctx context.Context, userId string) error { return nil } -// GetNumberOfDaysWithRealtimeData processes two slices of Item and returns an int count of days with realtime records. -// this currently doesn't handle N slices, only 1-2, might need adjustment for more types. -func GetNumberOfDaysWithRealtimeData(a, b []*types.Bucket[*types.ContinuousBucketData, types.ContinuousBucketData]) int { - var count int - - // Calculate the offset in hours between the first items of each list - offset := 0 - startA, startB := 0, 0 - combinedLength := len(a) + startA - - if b != nil { - offset = int(b[0].Date.Sub(a[0].Date).Hours()) - - if offset >= 0 { - startB = offset - } else { - startA = -offset - } - - if temp := len(b) + startB; temp > combinedLength { - combinedLength = temp - } - } - - for i := 0; i < combinedLength; i++ { - indexA := i - startA - indexB := i - startB - //fmt.Println("index A", indexA, "realtime records", a[indexA].Data.RealtimeRecords) - - // If the A list has a flagged item at this time, count it and advance to the next day. - if indexA >= 0 && indexA < len(a) && a[indexA].Data.RealtimeRecords > 0 { - count += 1 - i += 23 - a[indexA].Date.Hour() - continue - } - - if b != nil { - // Likewise with the B list - if indexB >= 0 && indexB < len(b) && b[indexB].Data.RealtimeRecords > 0 { - count += 1 - i += 23 - b[indexB].Date.Hour() - continue - } - } - - if b != nil { - // If neither list has an item at this index, we've exhausted one list, and they don't overlap. - // We need to jump to the start of the later list. - if (indexA < 0 || indexA >= len(a)) && (indexB < 0 || indexB >= len(b)) { - if indexA > 0 { - i -= indexB + 1 - } else { - i -= indexA + 1 - } - } - } - } - - return count -} - func (r *Repo[A, T]) GetRealtimeDaysForUsers(ctx context.Context, userIds []string, startTime time.Time, endTime time.Time) (map[string]int, error) { if ctx == nil { return nil, errors.New("context is missing") @@ -172,60 +111,15 @@ func (r *Repo[A, T]) GetRealtimeDaysForUsers(ctx context.Context, userIds []stri return nil, errors.New("time range smaller than threshold, impossible") } - typs := []string{types.SummaryTypeBGM, types.SummaryTypeCGM} - oldestPossibleLastData := startTime.AddDate(0, 0, RealtimeUserThreshold/len(typs)) - newestPossibleFirstData := endTime.AddDate(0, 0, RealtimeUserThreshold/len(typs)) - opts := options.Find() - opts.SetProjection(bson.M{"stats.buckets": 1}) - realtimeUsers := make(map[string]int) for _, userId := range userIds { - selector := bson.M{ - "userId": userId, - "type": bson.M{"$in": typs}, - "dates.lastData": bson.M{"$gte": oldestPossibleLastData}, - "dates.firstData": bson.M{"$lte": newestPossibleFirstData}, - // maybe filter period too? we don't care if offset and regular 30d aren't over 16d of realtime records - } - cursor, err := r.Find(ctx, selector) + userSummary, err := r.GetSummary(ctx, userId) if err != nil { - return nil, fmt.Errorf("unable to get realtime summaries for %s: %w", userId, err) - } - - var userSummaries []types.Summary[*types.ContinuousStats, types.ContinuousStats] - if err = cursor.All(ctx, &userSummaries); err != nil { - return nil, fmt.Errorf("unable to decode summaries for user %s: %w", userId, err) - } - - var buckets [][]*types.Bucket[*types.ContinuousBucketData, types.ContinuousBucketData] - for i := 0; i < len(userSummaries); i++ { - if len(userSummaries[i].Stats.Buckets) > 0 { - - startOffset := int(startTime.Sub(userSummaries[i].Stats.Buckets[0].Date).Hours()) - // cap to start of list - if startOffset < 0 { - startOffset = 0 - } - - endOffset := int(endTime.Sub(userSummaries[i].Stats.Buckets[0].Date).Hours()) - // cap to end of list - if endOffset > len(userSummaries[i].Stats.Buckets) { - endOffset = len(userSummaries[i].Stats.Buckets) - } - - buckets = append(buckets, userSummaries[i].Stats.Buckets[startOffset:endOffset]) - } - } - - realtimeDays := 0 - if len(buckets) > 1 { - realtimeDays = GetNumberOfDaysWithRealtimeData(buckets[0], buckets[1]) - } else if len(buckets) > 0 { - realtimeDays = GetNumberOfDaysWithRealtimeData(buckets[0], nil) + return nil, err } - realtimeUsers[userId] = realtimeDays + realtimeUsers[userId] = userSummary.Stats.GetNumberOfDaysWithRealtimeData(startTime, endTime) } diff --git a/data/summary/store/store_test.go b/data/summary/store/store_test.go index 11fcd0783..19dbc578c 100644 --- a/data/summary/store/store_test.go +++ b/data/summary/store/store_test.go @@ -2,10 +2,9 @@ package store_test import ( "context" - "time" - "github.com/tidepool-org/platform/page" "github.com/tidepool-org/platform/pointer" + "time" . "github.com/onsi/ginkgo/v2" . "github.com/onsi/gomega" @@ -300,281 +299,1239 @@ var _ = Describe("Summary Stats Mongo", func() { }) }) - Context("SetOutdated", func() {}) - }) - - Context("CGM", func() { - var userCGMSummary *types.Summary[*types.CGMStats, types.CGMStats] - var cgmStore *dataStoreSummary.Repo[*types.CGMStats, types.CGMStats] - - BeforeEach(func() { - cgmStore = dataStoreSummary.New[*types.CGMStats](summaryRepository) - }) + Context("SetOutdated", func() { + var outdatedSince *time.Time + var userContinuousSummaryWritten *types.Summary[*types.ContinuousStats, types.ContinuousStats] - Context("ReplaceSummary", func() { - It("Insert Summary with missing context", func() { - userCGMSummary = test.RandomCGMSummary(userId) - err = cgmStore.ReplaceSummary(nil, userCGMSummary) + It("With missing context", func() { + outdatedSince, err = continuousStore.SetOutdated(nil, userId, types.OutdatedReasonDataAdded) Expect(err).To(HaveOccurred()) Expect(err).To(MatchError("context is missing")) + Expect(outdatedSince).To(BeNil()) }) - It("Insert Summary with missing Summary", func() { - err = cgmStore.ReplaceSummary(ctx, nil) + It("With missing userId", func() { + outdatedSince, err = continuousStore.SetOutdated(ctx, "", types.OutdatedReasonDataAdded) Expect(err).To(HaveOccurred()) - Expect(err).To(MatchError("summary object is missing")) + Expect(err).To(MatchError("userId is missing")) + Expect(outdatedSince).To(BeNil()) }) - It("Insert Summary with missing UserId", func() { - userCGMSummary = test.RandomCGMSummary(userId) - Expect(userCGMSummary.Type).To(Equal("cgm")) + It("With multiple reasons", func() { + outdatedSinceOriginal, err := continuousStore.SetOutdated(ctx, userId, types.OutdatedReasonDataAdded) + Expect(err).ToNot(HaveOccurred()) + Expect(outdatedSinceOriginal).ToNot(BeNil()) - userCGMSummary.UserID = "" + userContinuousSummary, err = continuousStore.GetSummary(ctx, userId) + Expect(err).ToNot(HaveOccurred()) + Expect(userContinuousSummary.Dates.OutdatedSince).ToNot(BeNil()) + Expect(userContinuousSummary.Dates.OutdatedSince).To(Equal(outdatedSinceOriginal)) + Expect(userContinuousSummary.Dates.OutdatedReason).To(ConsistOf([]string{types.OutdatedReasonDataAdded})) - err = cgmStore.ReplaceSummary(ctx, userCGMSummary) - Expect(err).To(HaveOccurred()) - Expect(err).To(MatchError("summary is missing UserID")) - }) + outdatedSince, err = continuousStore.SetOutdated(ctx, userId, types.OutdatedReasonBackfill) + Expect(err).ToNot(HaveOccurred()) + Expect(outdatedSince).ToNot(BeNil()) - It("Insert Summary with missing Type", func() { - userCGMSummary = test.RandomCGMSummary(userId) - userCGMSummary.Type = "" + userContinuousSummary, err = continuousStore.GetSummary(ctx, userId) + Expect(err).ToNot(HaveOccurred()) + Expect(userContinuousSummary.Dates.OutdatedSince).ToNot(BeNil()) + Expect(userContinuousSummary.Dates.OutdatedSince).To(Equal(outdatedSince)) + Expect(userContinuousSummary.Dates.OutdatedReason).To(ConsistOf([]string{types.OutdatedReasonDataAdded, types.OutdatedReasonBackfill})) - err = cgmStore.ReplaceSummary(ctx, userCGMSummary) - Expect(err).To(HaveOccurred()) - Expect(err).To(MatchError("invalid summary type '', expected 'cgm'")) + outdatedSince, err = continuousStore.SetOutdated(ctx, userId, types.OutdatedReasonDataAdded) + Expect(err).ToNot(HaveOccurred()) + Expect(outdatedSince).ToNot(BeNil()) + + userContinuousSummary, err = continuousStore.GetSummary(ctx, userId) + Expect(err).ToNot(HaveOccurred()) + Expect(userContinuousSummary.Dates.OutdatedSince).ToNot(BeNil()) + Expect(userContinuousSummary.Dates.OutdatedSince).To(Equal(outdatedSince)) + Expect(userContinuousSummary.Dates.OutdatedReason).To(ConsistOf([]string{types.OutdatedReasonDataAdded, types.OutdatedReasonBackfill})) }) - It("Insert Summary with invalid Type", func() { - userCGMSummary = test.RandomCGMSummary(userId) - userCGMSummary.Type = "bgm" + It("With no existing summary", func() { + outdatedSince, err = continuousStore.SetOutdated(ctx, userId, types.OutdatedReasonDataAdded) + Expect(err).ToNot(HaveOccurred()) + Expect(outdatedSince).ToNot(BeNil()) - err = cgmStore.ReplaceSummary(ctx, userCGMSummary) - Expect(err).To(HaveOccurred()) - Expect(err).To(MatchError("invalid summary type 'bgm', expected 'cgm'")) + userContinuousSummary, err = continuousStore.GetSummary(ctx, userId) + Expect(err).ToNot(HaveOccurred()) + Expect(userContinuousSummary.Dates.OutdatedSince).ToNot(BeNil()) + Expect(userContinuousSummary.Dates.OutdatedSince).To(Equal(outdatedSince)) }) - It("Insert Summary", func() { - userCGMSummary = test.RandomCGMSummary(userId) - Expect(userCGMSummary.Type).To(Equal("cgm")) + It("With an existing non-outdated summary", func() { + userContinuousSummary = test.RandomContinousSummary(userId) + userContinuousSummary.Dates.OutdatedSince = nil + err = continuousStore.ReplaceSummary(ctx, userContinuousSummary) + Expect(err).ToNot(HaveOccurred()) - err = cgmStore.ReplaceSummary(ctx, userCGMSummary) + outdatedSince, err = continuousStore.SetOutdated(ctx, userId, types.OutdatedReasonDataAdded) Expect(err).ToNot(HaveOccurred()) + Expect(outdatedSince).ToNot(BeNil()) - userCGMSummaryWritten, err := cgmStore.GetSummary(ctx, userId) + userContinuousSummaryWritten, err = continuousStore.GetSummary(ctx, userId) Expect(err).ToNot(HaveOccurred()) + Expect(userContinuousSummaryWritten.Dates.OutdatedSince).ToNot(BeNil()) + Expect(userContinuousSummaryWritten.Dates.OutdatedSince).To(Equal(outdatedSince)) - // copy id, as that was mongo generated - userCGMSummary.ID = userCGMSummaryWritten.ID - Expect(userCGMSummaryWritten).To(Equal(userCGMSummary)) }) - It("Update Summary", func() { - var userCGMSummaryTwo *types.Summary[*types.CGMStats, types.CGMStats] - var userCGMSummaryWritten *types.Summary[*types.CGMStats, types.CGMStats] - var userCGMSummaryWrittenTwo *types.Summary[*types.CGMStats, types.CGMStats] + It("With an existing outdated summary", func() { + var fiveMinutesAgo = time.Now().Add(time.Duration(-5) * time.Minute).UTC().Truncate(time.Millisecond) - // generate and insert first summary - userCGMSummary = test.RandomCGMSummary(userId) - Expect(userCGMSummary.Type).To(Equal("cgm")) + userContinuousSummary = test.RandomContinousSummary(userId) + userContinuousSummary.Dates.OutdatedSince = &fiveMinutesAgo + err = continuousStore.ReplaceSummary(ctx, userContinuousSummary) + Expect(err).ToNot(HaveOccurred()) - err = cgmStore.ReplaceSummary(ctx, userCGMSummary) + outdatedSince, err = continuousStore.SetOutdated(ctx, userId, types.OutdatedReasonDataAdded) Expect(err).ToNot(HaveOccurred()) + Expect(outdatedSince).ToNot(BeNil()) - // confirm first summary was written, get ID - userCGMSummaryWritten, err = cgmStore.GetSummary(ctx, userId) + userContinuousSummaryWritten, err = continuousStore.GetSummary(ctx, userId) Expect(err).ToNot(HaveOccurred()) + Expect(userContinuousSummaryWritten.Dates.OutdatedSince).ToNot(BeNil()) + Expect(userContinuousSummaryWritten.Dates.OutdatedSince).To(Equal(outdatedSince)) + }) - // copy id, as that was mongo generated - userCGMSummary.ID = userCGMSummaryWritten.ID - Expect(userCGMSummaryWritten).To(Equal(userCGMSummary)) + It("With an existing outdated summary beyond the outdatedSinceLimit", func() { + now := time.Now().UTC().Truncate(time.Millisecond) - // generate a new summary with same type and user, and upsert - userCGMSummaryTwo = test.RandomCGMSummary(userId) - err = cgmStore.ReplaceSummary(ctx, userCGMSummaryTwo) + userContinuousSummary = test.RandomContinousSummary(userId) + userContinuousSummary.Dates.OutdatedSince = &now + err = continuousStore.ReplaceSummary(ctx, userContinuousSummary) Expect(err).ToNot(HaveOccurred()) - userCGMSummaryWrittenTwo, err = cgmStore.GetSummary(ctx, userId) + outdatedSince, err = continuousStore.SetOutdated(ctx, userId, types.OutdatedReasonDataAdded) Expect(err).ToNot(HaveOccurred()) + Expect(outdatedSince).ToNot(BeNil()) - // confirm the ID was unchanged - Expect(userCGMSummaryWrittenTwo.ID).To(Equal(userCGMSummaryWritten.ID)) + userContinuousSummaryWritten, err = continuousStore.GetSummary(ctx, userId) + Expect(err).ToNot(HaveOccurred()) + Expect(userContinuousSummaryWritten.Dates.OutdatedSince).ToNot(BeNil()) + }) - // confirm the written summary matches the new summary - userCGMSummaryTwo.ID = userCGMSummaryWritten.ID - Expect(userCGMSummaryWrittenTwo).To(Equal(userCGMSummaryTwo)) + It("With an existing outdated summary with schema migration reason", func() { + now := time.Now().UTC().Truncate(time.Millisecond) + fiveMinutesAgo := now.Add(time.Duration(-5) * time.Minute) + + userContinuousSummary = test.RandomContinousSummary(userId) + userContinuousSummary.Dates.OutdatedSince = &fiveMinutesAgo + userContinuousSummary.Dates.OutdatedReason = []string{types.OutdatedReasonUploadCompleted} + Expect(userContinuousSummary.Stats.Buckets).ToNot(HaveLen(0)) + Expect(userContinuousSummary.Stats.Periods).ToNot(HaveLen(0)) + + err = continuousStore.ReplaceSummary(ctx, userContinuousSummary) + Expect(err).ToNot(HaveOccurred()) + + outdatedSince, err = continuousStore.SetOutdated(ctx, userId, types.OutdatedReasonSchemaMigration) + Expect(err).ToNot(HaveOccurred()) + Expect(outdatedSince).ToNot(BeNil()) + + userContinuousSummaryWritten, err = continuousStore.GetSummary(ctx, userId) + Expect(err).ToNot(HaveOccurred()) + Expect(userContinuousSummaryWritten.Dates.OutdatedSince).ToNot(BeNil()) + Expect(userContinuousSummaryWritten.Dates.OutdatedSince).To(Equal(outdatedSince)) + Expect(userContinuousSummaryWritten.Stats.Buckets).To(HaveLen(0)) + Expect(userContinuousSummaryWritten.Stats.Periods).To(HaveLen(0)) + Expect(userContinuousSummaryWritten.Dates.LastData).To(BeNil()) + Expect(userContinuousSummaryWritten.Dates.FirstData).To(BeNil()) + Expect(userContinuousSummaryWritten.Dates.LastUpdatedDate.IsZero()).To(BeTrue()) + Expect(userContinuousSummaryWritten.Dates.LastUploadDate).To(BeNil()) + Expect(userContinuousSummaryWritten.Dates.OutdatedReason).To(ConsistOf(types.OutdatedReasonSchemaMigration, types.OutdatedReasonUploadCompleted)) }) }) - Context("DeleteSummary", func() { - It("Delete Summary with empty context", func() { - err = cgmStore.DeleteSummary(nil, userId) + Context("GetSummary", func() { + It("With missing context", func() { + userContinuousSummary, err = continuousStore.GetSummary(nil, userId) Expect(err).To(HaveOccurred()) Expect(err).To(MatchError("context is missing")) + Expect(userContinuousSummary).To(BeNil()) }) - It("Delete Summary with empty userId", func() { - err = cgmStore.DeleteSummary(ctx, "") + It("With missing userId", func() { + userContinuousSummary, err = continuousStore.GetSummary(ctx, "") Expect(err).To(HaveOccurred()) Expect(err).To(MatchError("userId is missing")) + Expect(userContinuousSummary).To(BeNil()) }) - It("Delete Summary", func() { - var userCGMSummaryWritten *types.Summary[*types.CGMStats, types.CGMStats] + It("With no summary", func() { + userContinuousSummary, err = continuousStore.GetSummary(ctx, userId) + Expect(err).ToNot(HaveOccurred()) + Expect(userContinuousSummary).To(BeNil()) + }) - userCGMSummary = test.RandomCGMSummary(userId) - Expect(userCGMSummary.Type).To(Equal("cgm")) + It("With multiple summaries", func() { + var summaries = []*types.Summary[*types.ContinuousStats, types.ContinuousStats]{ + test.RandomContinousSummary(userId), + test.RandomContinousSummary(userIdOther), + } - err = cgmStore.ReplaceSummary(ctx, userCGMSummary) + _, err = continuousStore.CreateSummaries(ctx, summaries) Expect(err).ToNot(HaveOccurred()) - // confirm writes - userCGMSummaryWritten, err = cgmStore.GetSummary(ctx, userId) + userContinuousSummary, err = continuousStore.GetSummary(ctx, userId) Expect(err).ToNot(HaveOccurred()) - Expect(userCGMSummaryWritten).ToNot(BeNil()) + Expect(userContinuousSummary).ToNot(BeNil()) - // delete - err = cgmStore.DeleteSummary(ctx, userId) + summaries[0].ID = userContinuousSummary.ID + Expect(userContinuousSummary).To(Equal(summaries[0])) + }) + + It("Get with multiple summaries of different type", func() { + cgmStore := dataStoreSummary.New[*types.CGMStats](summaryRepository) + bgmStore := dataStoreSummary.New[*types.BGMStats](summaryRepository) + + var cgmSummaries = []*types.Summary[*types.CGMStats, types.CGMStats]{ + test.RandomCGMSummary(userId), + test.RandomCGMSummary(userIdOther), + } + + var bgmSummaries = []*types.Summary[*types.BGMStats, types.BGMStats]{ + test.RandomBGMSummary(userId), + test.RandomBGMSummary(userIdOther), + } + + var continuousSummaries = []*types.Summary[*types.ContinuousStats, types.ContinuousStats]{ + test.RandomContinousSummary(userId), + test.RandomContinousSummary(userIdOther), + } + + _, err = cgmStore.CreateSummaries(ctx, cgmSummaries) Expect(err).ToNot(HaveOccurred()) - // confirm delete - userCGMSummaryWritten, err = cgmStore.GetSummary(ctx, userId) + _, err = bgmStore.CreateSummaries(ctx, bgmSummaries) Expect(err).ToNot(HaveOccurred()) - Expect(userCGMSummaryWritten).To(BeNil()) + + _, err = continuousStore.CreateSummaries(ctx, continuousSummaries) + Expect(err).ToNot(HaveOccurred()) + + userContinuousSummary, err = continuousStore.GetSummary(ctx, userId) + Expect(err).ToNot(HaveOccurred()) + Expect(userContinuousSummary).ToNot(BeNil()) + + cgmSummaries[0].ID = userContinuousSummary.ID + Expect(userContinuousSummary).To(Equal(continuousSummaries[0])) }) }) - Context("CreateSummaries", func() { - It("Create summaries with missing context", func() { - var summaries = []*types.Summary[*types.CGMStats, types.CGMStats]{ - test.RandomCGMSummary(userId), - test.RandomCGMSummary(userIdOther), - } + Context("DistinctSummaryIDs", func() { + var userIds []string - _, err = cgmStore.CreateSummaries(nil, summaries) + It("With missing context", func() { + userIds, err = continuousStore.DistinctSummaryIDs(nil) Expect(err).To(HaveOccurred()) Expect(err).To(MatchError("context is missing")) + Expect(len(userIds)).To(Equal(0)) }) - It("Create summaries with missing summaries", func() { - _, err = cgmStore.CreateSummaries(ctx, nil) - Expect(err).To(HaveOccurred()) - Expect(err).To(MatchError("summaries for create missing")) + It("With no summaries", func() { + userIds, err = continuousStore.DistinctSummaryIDs(ctx) + Expect(err).ToNot(HaveOccurred()) + Expect(len(userIds)).To(Equal(0)) }) - It("Create summaries with an invalid type", func() { - var summaries = []*types.Summary[*types.CGMStats, types.CGMStats]{ - test.RandomCGMSummary(userId), - test.RandomCGMSummary(userIdOther), + It("With summaries", func() { + var continuousSummaries = []*types.Summary[*types.ContinuousStats, types.ContinuousStats]{ + test.RandomContinousSummary(userId), + test.RandomContinousSummary(userIdOther), } - summaries[0].Type = "bgm" + _, err = continuousStore.CreateSummaries(ctx, continuousSummaries) + Expect(err).ToNot(HaveOccurred()) - _, err = cgmStore.CreateSummaries(ctx, summaries) - Expect(err).To(HaveOccurred()) - Expect(err).To(MatchError("invalid summary type 'bgm', expected 'cgm' at index 0")) + userIds, err = continuousStore.DistinctSummaryIDs(ctx) + Expect(err).ToNot(HaveOccurred()) + Expect(len(userIds)).To(Equal(2)) + Expect(userIds).To(ConsistOf([]string{userId, userIdOther})) }) - It("Create summaries with an empty userId", func() { - var summaries = []*types.Summary[*types.CGMStats, types.CGMStats]{ + It("With summaries of all types", func() { + userIdTwo := userTest.RandomID() + userIdThree := userTest.RandomID() + userIdFour := userTest.RandomID() + userIdFive := userTest.RandomID() + cgmStore := dataStoreSummary.New[*types.CGMStats](summaryRepository) + bgmStore := dataStoreSummary.New[*types.BGMStats](summaryRepository) + + var cgmSummaries = []*types.Summary[*types.CGMStats, types.CGMStats]{ test.RandomCGMSummary(userId), test.RandomCGMSummary(userIdOther), } - summaries[0].UserID = "" - - _, err = cgmStore.CreateSummaries(ctx, summaries) - Expect(err).To(HaveOccurred()) - Expect(err).To(MatchError("userId is missing at index 0")) - }) + var bgmSummaries = []*types.Summary[*types.BGMStats, types.BGMStats]{ + test.RandomBGMSummary(userIdTwo), + test.RandomBGMSummary(userIdThree), + } - It("Create summaries", func() { - var count int - var summaries = []*types.Summary[*types.CGMStats, types.CGMStats]{ - test.RandomCGMSummary(userId), - test.RandomCGMSummary(userIdOther), + var continuousSummaries = []*types.Summary[*types.ContinuousStats, types.ContinuousStats]{ + test.RandomContinousSummary(userIdFour), + test.RandomContinousSummary(userIdFive), } - count, err = cgmStore.CreateSummaries(ctx, summaries) + _, err = cgmStore.CreateSummaries(ctx, cgmSummaries) + Expect(err).ToNot(HaveOccurred()) + _, err = bgmStore.CreateSummaries(ctx, bgmSummaries) + Expect(err).ToNot(HaveOccurred()) + _, err = continuousStore.CreateSummaries(ctx, continuousSummaries) Expect(err).ToNot(HaveOccurred()) - Expect(count).To(Equal(2)) - for i := 0; i < 2; i++ { - userCGMSummary, err = cgmStore.GetSummary(ctx, summaries[0].UserID) - Expect(err).ToNot(HaveOccurred()) - Expect(userCGMSummary).ToNot(BeNil()) - summaries[i].ID = userCGMSummary.ID - Expect(userCGMSummary).To(Equal(summaries[0])) - } + userIds, err = continuousStore.DistinctSummaryIDs(ctx) + Expect(err).ToNot(HaveOccurred()) + Expect(len(userIds)).To(Equal(2)) + Expect(userIds).To(ConsistOf([]string{userIdFour, userIdFive})) }) }) - Context("SetOutdated", func() {}) - }) - - Context("BGM", func() { - var bgmStore *dataStoreSummary.Repo[*types.BGMStats, types.BGMStats] - var userBGMSummary *types.Summary[*types.BGMStats, types.BGMStats] - - BeforeEach(func() { - bgmStore = dataStoreSummary.New[*types.BGMStats](summaryRepository) - }) + Context("GetOutdatedUserIDs", func() { + var userIds *types.OutdatedSummariesResponse + var userIdTwo string + var userIdThree string - Context("ReplaceSummary", func() { - It("Insert Summary with missing Type", func() { - userBGMSummary = test.RandomBGMSummary(userId) - userBGMSummary.Type = "" + BeforeEach(func() { + userIdTwo = userTest.RandomID() + userIdThree = userTest.RandomID() + }) - err = bgmStore.ReplaceSummary(ctx, userBGMSummary) + It("With missing context", func() { + userIds, err = continuousStore.GetOutdatedUserIDs(nil, page.NewPagination()) Expect(err).To(HaveOccurred()) - Expect(err).To(MatchError("invalid summary type '', expected 'bgm'")) + Expect(err).To(MatchError("context is missing")) + Expect(userIds).To(BeNil()) }) - It("Insert Summary with invalid Type", func() { - userBGMSummary = test.RandomBGMSummary(userId) - userBGMSummary.Type = "asdf" - - err = bgmStore.ReplaceSummary(ctx, userBGMSummary) + It("With missing pagination", func() { + userIds, err = continuousStore.GetOutdatedUserIDs(ctx, nil) Expect(err).To(HaveOccurred()) - Expect(err).To(MatchError("invalid summary type 'asdf', expected 'bgm'")) + Expect(err).To(MatchError("pagination is missing")) + Expect(userIds).To(BeNil()) }) - It("Insert Summary", func() { - userBGMSummary = test.RandomBGMSummary(userId) - Expect(userBGMSummary.Type).To(Equal("bgm")) + It("With no outdated summaries", func() { + var pagination = page.NewPagination() - err = bgmStore.ReplaceSummary(ctx, userBGMSummary) + userIds, err = continuousStore.GetOutdatedUserIDs(ctx, pagination) Expect(err).ToNot(HaveOccurred()) + Expect(len(userIds.UserIds)).To(Equal(0)) + }) - userBGMSummaryWritten, err := bgmStore.GetSummary(ctx, userId) + It("With outdated CGM summaries", func() { + var outdatedTime = time.Now().UTC().Truncate(time.Millisecond) + var continuousSummaries = []*types.Summary[*types.ContinuousStats, types.ContinuousStats]{ + test.RandomContinousSummary(userId), + test.RandomContinousSummary(userIdOther), + test.RandomContinousSummary(userIdTwo), + } + + // mark 2/3 summaries outdated + continuousSummaries[0].Dates.OutdatedSince = &outdatedTime + continuousSummaries[1].Dates.OutdatedSince = nil + continuousSummaries[2].Dates.OutdatedSince = &outdatedTime + _, err = continuousStore.CreateSummaries(ctx, continuousSummaries) Expect(err).ToNot(HaveOccurred()) - // copy id, as that was mongo generated - userBGMSummary.ID = userBGMSummaryWritten.ID - Expect(userBGMSummaryWritten).To(Equal(userBGMSummary)) + userIds, err = continuousStore.GetOutdatedUserIDs(ctx, page.NewPagination()) + Expect(err).ToNot(HaveOccurred()) + Expect(userIds.UserIds).To(ConsistOf([]string{userId, userIdTwo})) }) - It("Update Summary", func() { - var userBGMSummaryTwo *types.Summary[*types.BGMStats, types.BGMStats] - var userBGMSummaryWritten *types.Summary[*types.BGMStats, types.BGMStats] - var userBGMSummaryWrittenTwo *types.Summary[*types.BGMStats, types.BGMStats] + It("With a specific pagination size", func() { + var pagination = page.NewPagination() + var outdatedTime = time.Now().UTC().Truncate(time.Millisecond) + var continuousSummaries = []*types.Summary[*types.ContinuousStats, types.ContinuousStats]{ + test.RandomContinousSummary(userId), + test.RandomContinousSummary(userIdOther), + test.RandomContinousSummary(userIdTwo), + test.RandomContinousSummary(userIdThree), + } - // generate and insert first summary - userBGMSummary = test.RandomBGMSummary(userId) - Expect(userBGMSummary.Type).To(Equal("bgm")) + pagination.Size = 3 - err = bgmStore.ReplaceSummary(ctx, userBGMSummary) + for i := len(continuousSummaries) - 1; i >= 0; i-- { + continuousSummaries[i].Dates.OutdatedSince = pointer.FromAny(outdatedTime.Add(-time.Duration(i) * time.Second)) + } + _, err = continuousStore.CreateSummaries(ctx, continuousSummaries) Expect(err).ToNot(HaveOccurred()) - // confirm first summary was written, get ID - userBGMSummaryWritten, err = bgmStore.GetSummary(ctx, userId) + userIds, err = continuousStore.GetOutdatedUserIDs(ctx, pagination) Expect(err).ToNot(HaveOccurred()) + Expect(len(userIds.UserIds)).To(Equal(3)) + Expect(userIds.UserIds).To(ConsistOf([]string{userIdThree, userIdTwo, userIdOther})) + }) - // copy id, as that was mongo generated - userBGMSummary.ID = userBGMSummaryWritten.ID - Expect(userBGMSummaryWritten).To(Equal(userBGMSummary)) - - // generate a new summary with same type and user, and upsert + It("Check sort order", func() { + var outdatedTime = time.Now().UTC().Truncate(time.Millisecond) + var continuousSummaries = []*types.Summary[*types.ContinuousStats, types.ContinuousStats]{ + test.RandomContinousSummary(userId), + test.RandomContinousSummary(userIdOther), + test.RandomContinousSummary(userIdTwo), + } + + for i := 0; i < len(continuousSummaries); i++ { + continuousSummaries[i].Dates.OutdatedSince = pointer.FromAny(outdatedTime.Add(time.Duration(-i) * time.Minute)) + } + _, err = continuousStore.CreateSummaries(ctx, continuousSummaries) + Expect(err).ToNot(HaveOccurred()) + + userIds, err = continuousStore.GetOutdatedUserIDs(ctx, page.NewPagination()) + Expect(err).ToNot(HaveOccurred()) + Expect(len(userIds.UserIds)).To(Equal(3)) + + // we expect these to come back in reverse order than inserted + for i := 0; i < len(userIds.UserIds); i++ { + Expect(userIds.UserIds[i]).To(Equal(continuousSummaries[len(continuousSummaries)-i-1].UserID)) + } + }) + + It("Get outdated summaries with all types present", func() { + userIdFour := userTest.RandomID() + userIdFive := userTest.RandomID() + cgmStore := dataStoreSummary.New[*types.CGMStats](summaryRepository) + bgmStore := dataStoreSummary.New[*types.BGMStats](summaryRepository) + + var outdatedTime = time.Now().UTC().Truncate(time.Millisecond) + + var cgmSummaries = []*types.Summary[*types.CGMStats, types.CGMStats]{ + test.RandomCGMSummary(userId), + test.RandomCGMSummary(userIdOther), + } + + var bgmSummaries = []*types.Summary[*types.BGMStats, types.BGMStats]{ + test.RandomBGMSummary(userIdTwo), + test.RandomBGMSummary(userIdThree), + } + + var continuousSummaries = []*types.Summary[*types.ContinuousStats, types.ContinuousStats]{ + test.RandomContinousSummary(userIdFour), + test.RandomContinousSummary(userIdFive), + } + + // mark 1 outdated per type + cgmSummaries[0].Dates.OutdatedSince = &outdatedTime + cgmSummaries[1].Dates.OutdatedSince = nil + _, err = cgmStore.CreateSummaries(ctx, cgmSummaries) + Expect(err).ToNot(HaveOccurred()) + + bgmSummaries[0].Dates.OutdatedSince = nil + bgmSummaries[1].Dates.OutdatedSince = &outdatedTime + _, err = bgmStore.CreateSummaries(ctx, bgmSummaries) + Expect(err).ToNot(HaveOccurred()) + + continuousSummaries[0].Dates.OutdatedSince = nil + continuousSummaries[1].Dates.OutdatedSince = &outdatedTime + _, err = continuousStore.CreateSummaries(ctx, continuousSummaries) + Expect(err).ToNot(HaveOccurred()) + + userIds, err = continuousStore.GetOutdatedUserIDs(ctx, page.NewPagination()) + Expect(err).ToNot(HaveOccurred()) + Expect(userIds.UserIds).To(ConsistOf([]string{userIdFive})) + }) + }) + + Context("GetPatientsWithRealtimeData", func() { + + It("with some realtime users", func() { + endTime := time.Now().UTC().Truncate(time.Hour * 24) + startTime := endTime.AddDate(0, 0, -30) + userIds := make([]string, 5) + userSummaries := make([]*types.Summary[*types.ContinuousStats, types.ContinuousStats], 5) + + startingDays := 14 + + for i := 0; i < 5; i++ { + userIds[i] = userTest.RandomID() + userSummaries[i] = test.NewRealtimeSummary(userIds[i], startTime, endTime, startingDays+i) + } + + var count int + count, err = continuousStore.CreateSummaries(ctx, userSummaries) + Expect(err).ToNot(HaveOccurred()) + Expect(count).To(Equal(len(userIds))) + + // remove one userId to ensure we aren't accidentally grabbing everyone + trimmedUserIds := userIds[:len(userIds)-1] + + var list map[string]int + list, err = continuousStore.GetRealtimeDaysForUsers(ctx, trimmedUserIds, startTime, endTime) + Expect(err).ToNot(HaveOccurred()) + Expect(list).To(HaveLen(len(trimmedUserIds))) + + // make sure days match input + for i := 0; i < 4; i++ { + Expect(list[userIds[i]]).To(Equal(startingDays + i)) + } + }) + + It("with no realtime user", func() { + endTime := time.Now().UTC().Truncate(time.Hour * 24) + startTime := endTime.AddDate(0, 0, -30) + userIds := make([]string, 5) + userContinuousSummaries := make([]*types.Summary[*types.ContinuousStats, types.ContinuousStats], 5) + + for i := 0; i < 5; i++ { + userIds[i] = userTest.RandomID() + userContinuousSummaries[i] = test.NewRealtimeSummary(userIds[i], startTime, endTime, 0) + } + + var count int + count, err = continuousStore.CreateSummaries(ctx, userContinuousSummaries) + Expect(err).ToNot(HaveOccurred()) + Expect(count).To(Equal(len(userIds))) + + // remove one userId to ensure we aren't accidentally grabbing everyone + trimmedUserIds := userIds[:len(userIds)-1] + + var list map[string]int + list, err = continuousStore.GetRealtimeDaysForUsers(ctx, trimmedUserIds, startTime, endTime) + Expect(err).ToNot(HaveOccurred()) + Expect(list).To(HaveLen(len(trimmedUserIds))) + + // make sure days match input + for i := 0; i < 4; i++ { + Expect(list[userIds[i]]).To(Equal(0)) + } + }) + + It("with 60 days of buckets", func() { + endTime := time.Now().UTC().Truncate(time.Hour * 24) + startTime := endTime.AddDate(0, 0, -60) + userIds := make([]string, 5) + userContinuousSummaries := make([]*types.Summary[*types.ContinuousStats, types.ContinuousStats], 5) + + startingDays := 30 + 14 + + for i := 0; i < 5; i++ { + userIds[i] = userTest.RandomID() + userContinuousSummaries[i] = test.NewRealtimeSummary(userIds[i], startTime, endTime, startingDays+i) + } + + var count int + count, err = continuousStore.CreateSummaries(ctx, userContinuousSummaries) + Expect(err).ToNot(HaveOccurred()) + Expect(count).To(Equal(len(userIds))) + + // remove one userId to ensure we aren't accidentally grabbing everyone + trimmedUserIds := userIds[:len(userIds)-1] + + var list map[string]int + list, err = continuousStore.GetRealtimeDaysForUsers(ctx, trimmedUserIds, startTime.AddDate(0, 0, 30), endTime) + Expect(err).ToNot(HaveOccurred()) + Expect(list).To(HaveLen(len(trimmedUserIds))) + + // make sure days match input + for i := 0; i < 4; i++ { + Expect(list[userIds[i]]).To(Equal(startingDays + i - 30)) + } + }) + + }) + }) + + Context("CGM", func() { + var userCGMSummary *types.Summary[*types.CGMStats, types.CGMStats] + var cgmStore *dataStoreSummary.Repo[*types.CGMStats, types.CGMStats] + + BeforeEach(func() { + cgmStore = dataStoreSummary.New[*types.CGMStats](summaryRepository) + }) + + Context("ReplaceSummary", func() { + It("Insert Summary with missing context", func() { + userCGMSummary = test.RandomCGMSummary(userId) + err = cgmStore.ReplaceSummary(nil, userCGMSummary) + Expect(err).To(HaveOccurred()) + Expect(err).To(MatchError("context is missing")) + }) + + It("Insert Summary with missing Summary", func() { + err = cgmStore.ReplaceSummary(ctx, nil) + Expect(err).To(HaveOccurred()) + Expect(err).To(MatchError("summary object is missing")) + }) + + It("Insert Summary with missing UserId", func() { + userCGMSummary = test.RandomCGMSummary(userId) + Expect(userCGMSummary.Type).To(Equal("cgm")) + + userCGMSummary.UserID = "" + + err = cgmStore.ReplaceSummary(ctx, userCGMSummary) + Expect(err).To(HaveOccurred()) + Expect(err).To(MatchError("summary is missing UserID")) + }) + + It("Insert Summary with missing Type", func() { + userCGMSummary = test.RandomCGMSummary(userId) + userCGMSummary.Type = "" + + err = cgmStore.ReplaceSummary(ctx, userCGMSummary) + Expect(err).To(HaveOccurred()) + Expect(err).To(MatchError("invalid summary type '', expected 'cgm'")) + }) + + It("Insert Summary with invalid Type", func() { + userCGMSummary = test.RandomCGMSummary(userId) + userCGMSummary.Type = "bgm" + + err = cgmStore.ReplaceSummary(ctx, userCGMSummary) + Expect(err).To(HaveOccurred()) + Expect(err).To(MatchError("invalid summary type 'bgm', expected 'cgm'")) + }) + + It("Insert Summary", func() { + userCGMSummary = test.RandomCGMSummary(userId) + Expect(userCGMSummary.Type).To(Equal("cgm")) + + err = cgmStore.ReplaceSummary(ctx, userCGMSummary) + Expect(err).ToNot(HaveOccurred()) + + userCGMSummaryWritten, err := cgmStore.GetSummary(ctx, userId) + Expect(err).ToNot(HaveOccurred()) + + // copy id, as that was mongo generated + userCGMSummary.ID = userCGMSummaryWritten.ID + Expect(userCGMSummaryWritten).To(Equal(userCGMSummary)) + }) + + It("Update Summary", func() { + var userCGMSummaryTwo *types.Summary[*types.CGMStats, types.CGMStats] + var userCGMSummaryWritten *types.Summary[*types.CGMStats, types.CGMStats] + var userCGMSummaryWrittenTwo *types.Summary[*types.CGMStats, types.CGMStats] + + // generate and insert first summary + userCGMSummary = test.RandomCGMSummary(userId) + Expect(userCGMSummary.Type).To(Equal("cgm")) + + err = cgmStore.ReplaceSummary(ctx, userCGMSummary) + Expect(err).ToNot(HaveOccurred()) + + // confirm first summary was written, get ID + userCGMSummaryWritten, err = cgmStore.GetSummary(ctx, userId) + Expect(err).ToNot(HaveOccurred()) + + // copy id, as that was mongo generated + userCGMSummary.ID = userCGMSummaryWritten.ID + Expect(userCGMSummaryWritten).To(Equal(userCGMSummary)) + + // generate a new summary with same type and user, and upsert + userCGMSummaryTwo = test.RandomCGMSummary(userId) + err = cgmStore.ReplaceSummary(ctx, userCGMSummaryTwo) + Expect(err).ToNot(HaveOccurred()) + + userCGMSummaryWrittenTwo, err = cgmStore.GetSummary(ctx, userId) + Expect(err).ToNot(HaveOccurred()) + + // confirm the ID was unchanged + Expect(userCGMSummaryWrittenTwo.ID).To(Equal(userCGMSummaryWritten.ID)) + + // confirm the written summary matches the new summary + userCGMSummaryTwo.ID = userCGMSummaryWritten.ID + Expect(userCGMSummaryWrittenTwo).To(Equal(userCGMSummaryTwo)) + }) + }) + + Context("DeleteSummary", func() { + It("Delete Summary with empty context", func() { + err = cgmStore.DeleteSummary(nil, userId) + Expect(err).To(HaveOccurred()) + Expect(err).To(MatchError("context is missing")) + }) + + It("Delete Summary with empty userId", func() { + err = cgmStore.DeleteSummary(ctx, "") + Expect(err).To(HaveOccurred()) + Expect(err).To(MatchError("userId is missing")) + }) + + It("Delete Summary", func() { + var userCGMSummaryWritten *types.Summary[*types.CGMStats, types.CGMStats] + + userCGMSummary = test.RandomCGMSummary(userId) + Expect(userCGMSummary.Type).To(Equal("cgm")) + + err = cgmStore.ReplaceSummary(ctx, userCGMSummary) + Expect(err).ToNot(HaveOccurred()) + + // confirm writes + userCGMSummaryWritten, err = cgmStore.GetSummary(ctx, userId) + Expect(err).ToNot(HaveOccurred()) + Expect(userCGMSummaryWritten).ToNot(BeNil()) + + // delete + err = cgmStore.DeleteSummary(ctx, userId) + Expect(err).ToNot(HaveOccurred()) + + // confirm delete + userCGMSummaryWritten, err = cgmStore.GetSummary(ctx, userId) + Expect(err).ToNot(HaveOccurred()) + Expect(userCGMSummaryWritten).To(BeNil()) + }) + }) + + Context("CreateSummaries", func() { + It("Create summaries with missing context", func() { + var summaries = []*types.Summary[*types.CGMStats, types.CGMStats]{ + test.RandomCGMSummary(userId), + test.RandomCGMSummary(userIdOther), + } + + _, err = cgmStore.CreateSummaries(nil, summaries) + Expect(err).To(HaveOccurred()) + Expect(err).To(MatchError("context is missing")) + }) + + It("Create summaries with missing summaries", func() { + _, err = cgmStore.CreateSummaries(ctx, nil) + Expect(err).To(HaveOccurred()) + Expect(err).To(MatchError("summaries for create missing")) + }) + + It("Create summaries with an invalid type", func() { + var summaries = []*types.Summary[*types.CGMStats, types.CGMStats]{ + test.RandomCGMSummary(userId), + test.RandomCGMSummary(userIdOther), + } + + summaries[0].Type = "bgm" + + _, err = cgmStore.CreateSummaries(ctx, summaries) + Expect(err).To(HaveOccurred()) + Expect(err).To(MatchError("invalid summary type 'bgm', expected 'cgm' at index 0")) + }) + + It("Create summaries with an empty userId", func() { + var summaries = []*types.Summary[*types.CGMStats, types.CGMStats]{ + test.RandomCGMSummary(userId), + test.RandomCGMSummary(userIdOther), + } + + summaries[0].UserID = "" + + _, err = cgmStore.CreateSummaries(ctx, summaries) + Expect(err).To(HaveOccurred()) + Expect(err).To(MatchError("userId is missing at index 0")) + }) + + It("Create summaries", func() { + var count int + var summaries = []*types.Summary[*types.CGMStats, types.CGMStats]{ + test.RandomCGMSummary(userId), + test.RandomCGMSummary(userIdOther), + } + + count, err = cgmStore.CreateSummaries(ctx, summaries) + Expect(err).ToNot(HaveOccurred()) + Expect(count).To(Equal(2)) + + for i := 0; i < 2; i++ { + userCGMSummary, err = cgmStore.GetSummary(ctx, summaries[0].UserID) + Expect(err).ToNot(HaveOccurred()) + Expect(userCGMSummary).ToNot(BeNil()) + summaries[i].ID = userCGMSummary.ID + Expect(userCGMSummary).To(Equal(summaries[0])) + } + }) + }) + + Context("SetOutdated", func() { + var outdatedSince *time.Time + var userCGMSummaryWritten *types.Summary[*types.CGMStats, types.CGMStats] + + It("With missing context", func() { + outdatedSince, err = cgmStore.SetOutdated(nil, userId, types.OutdatedReasonDataAdded) + Expect(err).To(HaveOccurred()) + Expect(err).To(MatchError("context is missing")) + Expect(outdatedSince).To(BeNil()) + }) + + It("With missing userId", func() { + outdatedSince, err = cgmStore.SetOutdated(ctx, "", types.OutdatedReasonDataAdded) + Expect(err).To(HaveOccurred()) + Expect(err).To(MatchError("userId is missing")) + Expect(outdatedSince).To(BeNil()) + }) + + It("With multiple reasons", func() { + outdatedSinceOriginal, err := cgmStore.SetOutdated(ctx, userId, types.OutdatedReasonDataAdded) + Expect(err).ToNot(HaveOccurred()) + Expect(outdatedSinceOriginal).ToNot(BeNil()) + + userCGMSummary, err = cgmStore.GetSummary(ctx, userId) + Expect(err).ToNot(HaveOccurred()) + Expect(userCGMSummary.Dates.OutdatedSince).ToNot(BeNil()) + Expect(userCGMSummary.Dates.OutdatedSince).To(Equal(outdatedSinceOriginal)) + Expect(userCGMSummary.Dates.OutdatedReason).To(ConsistOf([]string{types.OutdatedReasonDataAdded})) + + outdatedSince, err = cgmStore.SetOutdated(ctx, userId, types.OutdatedReasonBackfill) + Expect(err).ToNot(HaveOccurred()) + Expect(outdatedSince).ToNot(BeNil()) + + userCGMSummary, err = cgmStore.GetSummary(ctx, userId) + Expect(err).ToNot(HaveOccurred()) + Expect(userCGMSummary.Dates.OutdatedSince).ToNot(BeNil()) + Expect(userCGMSummary.Dates.OutdatedSince).To(Equal(outdatedSince)) + Expect(userCGMSummary.Dates.OutdatedReason).To(ConsistOf([]string{types.OutdatedReasonDataAdded, types.OutdatedReasonBackfill})) + + outdatedSince, err = cgmStore.SetOutdated(ctx, userId, types.OutdatedReasonDataAdded) + Expect(err).ToNot(HaveOccurred()) + Expect(outdatedSince).ToNot(BeNil()) + + userCGMSummary, err = cgmStore.GetSummary(ctx, userId) + Expect(err).ToNot(HaveOccurred()) + Expect(userCGMSummary.Dates.OutdatedSince).ToNot(BeNil()) + Expect(userCGMSummary.Dates.OutdatedSince).To(Equal(outdatedSince)) + Expect(userCGMSummary.Dates.OutdatedReason).To(ConsistOf([]string{types.OutdatedReasonDataAdded, types.OutdatedReasonBackfill})) + }) + + It("With no existing summary", func() { + outdatedSince, err = cgmStore.SetOutdated(ctx, userId, types.OutdatedReasonDataAdded) + Expect(err).ToNot(HaveOccurred()) + Expect(outdatedSince).ToNot(BeNil()) + + userCGMSummary, err = cgmStore.GetSummary(ctx, userId) + Expect(err).ToNot(HaveOccurred()) + Expect(userCGMSummary.Dates.OutdatedSince).ToNot(BeNil()) + Expect(userCGMSummary.Dates.OutdatedSince).To(Equal(outdatedSince)) + }) + + It("With an existing non-outdated summary", func() { + userCGMSummary = test.RandomCGMSummary(userId) + userCGMSummary.Dates.OutdatedSince = nil + err = cgmStore.ReplaceSummary(ctx, userCGMSummary) + Expect(err).ToNot(HaveOccurred()) + + outdatedSince, err = cgmStore.SetOutdated(ctx, userId, types.OutdatedReasonDataAdded) + Expect(err).ToNot(HaveOccurred()) + Expect(outdatedSince).ToNot(BeNil()) + + userCGMSummaryWritten, err = cgmStore.GetSummary(ctx, userId) + Expect(err).ToNot(HaveOccurred()) + Expect(userCGMSummaryWritten.Dates.OutdatedSince).ToNot(BeNil()) + Expect(userCGMSummaryWritten.Dates.OutdatedSince).To(Equal(outdatedSince)) + + }) + + It("With an existing outdated summary", func() { + var fiveMinutesAgo = time.Now().Add(time.Duration(-5) * time.Minute).UTC().Truncate(time.Millisecond) + + userCGMSummary = test.RandomCGMSummary(userId) + userCGMSummary.Dates.OutdatedSince = &fiveMinutesAgo + err = cgmStore.ReplaceSummary(ctx, userCGMSummary) + Expect(err).ToNot(HaveOccurred()) + + outdatedSince, err = cgmStore.SetOutdated(ctx, userId, types.OutdatedReasonDataAdded) + Expect(err).ToNot(HaveOccurred()) + Expect(outdatedSince).ToNot(BeNil()) + + userCGMSummaryWritten, err = cgmStore.GetSummary(ctx, userId) + Expect(err).ToNot(HaveOccurred()) + Expect(userCGMSummaryWritten.Dates.OutdatedSince).ToNot(BeNil()) + Expect(userCGMSummaryWritten.Dates.OutdatedSince).To(Equal(outdatedSince)) + }) + + It("With an existing outdated summary beyond the outdatedSinceLimit", func() { + now := time.Now().UTC().Truncate(time.Millisecond) + + userCGMSummary = test.RandomCGMSummary(userId) + userCGMSummary.Dates.OutdatedSince = &now + err = cgmStore.ReplaceSummary(ctx, userCGMSummary) + Expect(err).ToNot(HaveOccurred()) + + outdatedSince, err = cgmStore.SetOutdated(ctx, userId, types.OutdatedReasonDataAdded) + Expect(err).ToNot(HaveOccurred()) + Expect(outdatedSince).ToNot(BeNil()) + + userCGMSummaryWritten, err = cgmStore.GetSummary(ctx, userId) + Expect(err).ToNot(HaveOccurred()) + Expect(userCGMSummaryWritten.Dates.OutdatedSince).ToNot(BeNil()) + }) + + It("With an existing outdated summary with schema migration reason", func() { + now := time.Now().UTC().Truncate(time.Millisecond) + fiveMinutesAgo := now.Add(time.Duration(-5) * time.Minute) + + userCGMSummary = test.RandomCGMSummary(userId) + userCGMSummary.Dates.OutdatedSince = &fiveMinutesAgo + userCGMSummary.Dates.OutdatedReason = []string{types.OutdatedReasonUploadCompleted} + Expect(userCGMSummary.Stats.Buckets).ToNot(HaveLen(0)) + Expect(userCGMSummary.Stats.Periods).ToNot(HaveLen(0)) + + err = cgmStore.ReplaceSummary(ctx, userCGMSummary) + Expect(err).ToNot(HaveOccurred()) + + outdatedSince, err = cgmStore.SetOutdated(ctx, userId, types.OutdatedReasonSchemaMigration) + Expect(err).ToNot(HaveOccurred()) + Expect(outdatedSince).ToNot(BeNil()) + + userCGMSummaryWritten, err = cgmStore.GetSummary(ctx, userId) + Expect(err).ToNot(HaveOccurred()) + Expect(userCGMSummaryWritten.Dates.OutdatedSince).ToNot(BeNil()) + Expect(userCGMSummaryWritten.Dates.OutdatedSince).To(Equal(outdatedSince)) + Expect(userCGMSummaryWritten.Stats.Buckets).To(HaveLen(0)) + Expect(userCGMSummaryWritten.Stats.Periods).To(HaveLen(0)) + Expect(userCGMSummaryWritten.Dates.LastData).To(BeNil()) + Expect(userCGMSummaryWritten.Dates.FirstData).To(BeNil()) + Expect(userCGMSummaryWritten.Dates.LastUpdatedDate.IsZero()).To(BeTrue()) + Expect(userCGMSummaryWritten.Dates.LastUploadDate).To(BeNil()) + Expect(userCGMSummaryWritten.Dates.OutdatedReason).To(ConsistOf(types.OutdatedReasonSchemaMigration, types.OutdatedReasonUploadCompleted)) + }) + }) + + Context("GetSummary", func() { + It("With missing context", func() { + userCGMSummary, err = cgmStore.GetSummary(nil, userId) + Expect(err).To(HaveOccurred()) + Expect(err).To(MatchError("context is missing")) + Expect(userCGMSummary).To(BeNil()) + }) + + It("With missing userId", func() { + userCGMSummary, err = cgmStore.GetSummary(ctx, "") + Expect(err).To(HaveOccurred()) + Expect(err).To(MatchError("userId is missing")) + Expect(userCGMSummary).To(BeNil()) + }) + + It("With no summary", func() { + userCGMSummary, err = cgmStore.GetSummary(ctx, userId) + Expect(err).ToNot(HaveOccurred()) + Expect(userCGMSummary).To(BeNil()) + }) + + It("With multiple summaries", func() { + var summaries = []*types.Summary[*types.CGMStats, types.CGMStats]{ + test.RandomCGMSummary(userId), + test.RandomCGMSummary(userIdOther), + } + + _, err = cgmStore.CreateSummaries(ctx, summaries) + Expect(err).ToNot(HaveOccurred()) + + userCGMSummary, err = cgmStore.GetSummary(ctx, userId) + Expect(err).ToNot(HaveOccurred()) + Expect(userCGMSummary).ToNot(BeNil()) + + summaries[0].ID = userCGMSummary.ID + Expect(userCGMSummary).To(Equal(summaries[0])) + }) + + It("Get with multiple summaries of different type", func() { + bgmStore := dataStoreSummary.New[*types.BGMStats](summaryRepository) + continuousStore := dataStoreSummary.New[*types.ContinuousStats](summaryRepository) + + var cgmSummaries = []*types.Summary[*types.CGMStats, types.CGMStats]{ + test.RandomCGMSummary(userId), + test.RandomCGMSummary(userIdOther), + } + + var bgmSummaries = []*types.Summary[*types.BGMStats, types.BGMStats]{ + test.RandomBGMSummary(userId), + test.RandomBGMSummary(userIdOther), + } + + var continuousSummaries = []*types.Summary[*types.ContinuousStats, types.ContinuousStats]{ + test.RandomContinousSummary(userId), + test.RandomContinousSummary(userIdOther), + } + + _, err = cgmStore.CreateSummaries(ctx, cgmSummaries) + Expect(err).ToNot(HaveOccurred()) + + _, err = bgmStore.CreateSummaries(ctx, bgmSummaries) + Expect(err).ToNot(HaveOccurred()) + + _, err = continuousStore.CreateSummaries(ctx, continuousSummaries) + Expect(err).ToNot(HaveOccurred()) + + userCGMSummary, err = cgmStore.GetSummary(ctx, userId) + Expect(err).ToNot(HaveOccurred()) + Expect(userCGMSummary).ToNot(BeNil()) + + cgmSummaries[0].ID = userCGMSummary.ID + Expect(userCGMSummary).To(Equal(cgmSummaries[0])) + }) + }) + + Context("DistinctSummaryIDs", func() { + var userIds []string + + It("With missing context", func() { + userIds, err = cgmStore.DistinctSummaryIDs(nil) + Expect(err).To(HaveOccurred()) + Expect(err).To(MatchError("context is missing")) + Expect(len(userIds)).To(Equal(0)) + }) + + It("With no summaries", func() { + userIds, err = cgmStore.DistinctSummaryIDs(ctx) + Expect(err).ToNot(HaveOccurred()) + Expect(len(userIds)).To(Equal(0)) + }) + + It("With summaries", func() { + var cgmSummaries = []*types.Summary[*types.CGMStats, types.CGMStats]{ + test.RandomCGMSummary(userId), + test.RandomCGMSummary(userIdOther), + } + + _, err = cgmStore.CreateSummaries(ctx, cgmSummaries) + Expect(err).ToNot(HaveOccurred()) + + userIds, err = cgmStore.DistinctSummaryIDs(ctx) + Expect(err).ToNot(HaveOccurred()) + Expect(len(userIds)).To(Equal(2)) + Expect(userIds).To(ConsistOf([]string{userId, userIdOther})) + }) + + It("With summaries of all types", func() { + userIdTwo := userTest.RandomID() + userIdThree := userTest.RandomID() + userIdFour := userTest.RandomID() + userIdFive := userTest.RandomID() + continuousStore := dataStoreSummary.New[*types.ContinuousStats](summaryRepository) + bgmStore := dataStoreSummary.New[*types.BGMStats](summaryRepository) + + var cgmSummaries = []*types.Summary[*types.CGMStats, types.CGMStats]{ + test.RandomCGMSummary(userId), + test.RandomCGMSummary(userIdOther), + } + + var bgmSummaries = []*types.Summary[*types.BGMStats, types.BGMStats]{ + test.RandomBGMSummary(userIdTwo), + test.RandomBGMSummary(userIdThree), + } + + var continuousSummaries = []*types.Summary[*types.ContinuousStats, types.ContinuousStats]{ + test.RandomContinousSummary(userIdFour), + test.RandomContinousSummary(userIdFive), + } + + _, err = cgmStore.CreateSummaries(ctx, cgmSummaries) + Expect(err).ToNot(HaveOccurred()) + _, err = bgmStore.CreateSummaries(ctx, bgmSummaries) + Expect(err).ToNot(HaveOccurred()) + _, err = continuousStore.CreateSummaries(ctx, continuousSummaries) + Expect(err).ToNot(HaveOccurred()) + + userIds, err = cgmStore.DistinctSummaryIDs(ctx) + Expect(err).ToNot(HaveOccurred()) + Expect(len(userIds)).To(Equal(2)) + Expect(userIds).To(ConsistOf([]string{userId, userIdOther})) + }) + }) + + Context("GetOutdatedUserIDs", func() { + var userIds *types.OutdatedSummariesResponse + var userIdTwo string + var userIdThree string + + BeforeEach(func() { + userIdTwo = userTest.RandomID() + userIdThree = userTest.RandomID() + }) + + It("With missing context", func() { + userIds, err = cgmStore.GetOutdatedUserIDs(nil, page.NewPagination()) + Expect(err).To(HaveOccurred()) + Expect(err).To(MatchError("context is missing")) + Expect(userIds).To(BeNil()) + }) + + It("With missing pagination", func() { + userIds, err = cgmStore.GetOutdatedUserIDs(ctx, nil) + Expect(err).To(HaveOccurred()) + Expect(err).To(MatchError("pagination is missing")) + Expect(userIds).To(BeNil()) + }) + + It("With no outdated summaries", func() { + var pagination = page.NewPagination() + + userIds, err = cgmStore.GetOutdatedUserIDs(ctx, pagination) + Expect(err).ToNot(HaveOccurred()) + Expect(len(userIds.UserIds)).To(Equal(0)) + }) + + It("With outdated CGM summaries", func() { + var outdatedTime = time.Now().UTC().Truncate(time.Millisecond) + var cgmSummaries = []*types.Summary[*types.CGMStats, types.CGMStats]{ + test.RandomCGMSummary(userId), + test.RandomCGMSummary(userIdOther), + test.RandomCGMSummary(userIdTwo), + } + + // mark 2/3 summaries outdated + cgmSummaries[0].Dates.OutdatedSince = &outdatedTime + cgmSummaries[1].Dates.OutdatedSince = nil + cgmSummaries[2].Dates.OutdatedSince = &outdatedTime + _, err = cgmStore.CreateSummaries(ctx, cgmSummaries) + Expect(err).ToNot(HaveOccurred()) + + userIds, err = cgmStore.GetOutdatedUserIDs(ctx, page.NewPagination()) + Expect(err).ToNot(HaveOccurred()) + Expect(userIds.UserIds).To(ConsistOf([]string{userId, userIdTwo})) + }) + + It("With a specific pagination size", func() { + var pagination = page.NewPagination() + var outdatedTime = time.Now().UTC().Truncate(time.Millisecond) + var cgmSummaries = []*types.Summary[*types.CGMStats, types.CGMStats]{ + test.RandomCGMSummary(userId), + test.RandomCGMSummary(userIdOther), + test.RandomCGMSummary(userIdTwo), + test.RandomCGMSummary(userIdThree), + } + + pagination.Size = 3 + + for i := len(cgmSummaries) - 1; i >= 0; i-- { + cgmSummaries[i].Dates.OutdatedSince = pointer.FromAny(outdatedTime.Add(-time.Duration(i) * time.Second)) + } + _, err = cgmStore.CreateSummaries(ctx, cgmSummaries) + Expect(err).ToNot(HaveOccurred()) + + userIds, err = cgmStore.GetOutdatedUserIDs(ctx, pagination) + Expect(err).ToNot(HaveOccurred()) + Expect(len(userIds.UserIds)).To(Equal(3)) + Expect(userIds.UserIds).To(ConsistOf([]string{userIdThree, userIdTwo, userIdOther})) + }) + + It("Check sort order", func() { + var outdatedTime = time.Now().UTC().Truncate(time.Millisecond) + var cgmSummaries = []*types.Summary[*types.CGMStats, types.CGMStats]{ + test.RandomCGMSummary(userId), + test.RandomCGMSummary(userIdOther), + test.RandomCGMSummary(userIdTwo), + } + + for i := 0; i < len(cgmSummaries); i++ { + cgmSummaries[i].Dates.OutdatedSince = pointer.FromAny(outdatedTime.Add(time.Duration(-i) * time.Minute)) + } + _, err = cgmStore.CreateSummaries(ctx, cgmSummaries) + Expect(err).ToNot(HaveOccurred()) + + userIds, err = cgmStore.GetOutdatedUserIDs(ctx, page.NewPagination()) + Expect(err).ToNot(HaveOccurred()) + Expect(len(userIds.UserIds)).To(Equal(3)) + + // we expect these to come back in reverse order than inserted + for i := 0; i < len(userIds.UserIds); i++ { + Expect(userIds.UserIds[i]).To(Equal(cgmSummaries[len(cgmSummaries)-i-1].UserID)) + } + }) + + It("Get outdated summaries with all types present", func() { + userIdFour := userTest.RandomID() + userIdFive := userTest.RandomID() + continuousStore := dataStoreSummary.New[*types.ContinuousStats](summaryRepository) + bgmStore := dataStoreSummary.New[*types.BGMStats](summaryRepository) + + var outdatedTime = time.Now().UTC().Truncate(time.Millisecond) + + var cgmSummaries = []*types.Summary[*types.CGMStats, types.CGMStats]{ + test.RandomCGMSummary(userId), + test.RandomCGMSummary(userIdOther), + } + + var bgmSummaries = []*types.Summary[*types.BGMStats, types.BGMStats]{ + test.RandomBGMSummary(userIdTwo), + test.RandomBGMSummary(userIdThree), + } + + var continuousSummaries = []*types.Summary[*types.ContinuousStats, types.ContinuousStats]{ + test.RandomContinousSummary(userIdFour), + test.RandomContinousSummary(userIdFive), + } + + // mark 1 outdated per type + cgmSummaries[0].Dates.OutdatedSince = &outdatedTime + cgmSummaries[1].Dates.OutdatedSince = nil + _, err = cgmStore.CreateSummaries(ctx, cgmSummaries) + Expect(err).ToNot(HaveOccurred()) + + bgmSummaries[0].Dates.OutdatedSince = nil + bgmSummaries[1].Dates.OutdatedSince = &outdatedTime + _, err = bgmStore.CreateSummaries(ctx, bgmSummaries) + Expect(err).ToNot(HaveOccurred()) + + continuousSummaries[0].Dates.OutdatedSince = nil + continuousSummaries[1].Dates.OutdatedSince = &outdatedTime + _, err = continuousStore.CreateSummaries(ctx, continuousSummaries) + Expect(err).ToNot(HaveOccurred()) + + userIds, err = cgmStore.GetOutdatedUserIDs(ctx, page.NewPagination()) + Expect(err).ToNot(HaveOccurred()) + Expect(userIds.UserIds).To(ConsistOf([]string{userId})) + }) + }) + }) + + Context("BGM", func() { + var bgmStore *dataStoreSummary.Repo[*types.BGMStats, types.BGMStats] + var userBGMSummary *types.Summary[*types.BGMStats, types.BGMStats] + + BeforeEach(func() { + bgmStore = dataStoreSummary.New[*types.BGMStats](summaryRepository) + }) + + Context("ReplaceSummary", func() { + It("Insert Summary with missing Type", func() { + userBGMSummary = test.RandomBGMSummary(userId) + userBGMSummary.Type = "" + + err = bgmStore.ReplaceSummary(ctx, userBGMSummary) + Expect(err).To(HaveOccurred()) + Expect(err).To(MatchError("invalid summary type '', expected 'bgm'")) + }) + + It("Insert Summary with invalid Type", func() { + userBGMSummary = test.RandomBGMSummary(userId) + userBGMSummary.Type = "asdf" + + err = bgmStore.ReplaceSummary(ctx, userBGMSummary) + Expect(err).To(HaveOccurred()) + Expect(err).To(MatchError("invalid summary type 'asdf', expected 'bgm'")) + }) + + It("Insert Summary", func() { + userBGMSummary = test.RandomBGMSummary(userId) + Expect(userBGMSummary.Type).To(Equal("bgm")) + + err = bgmStore.ReplaceSummary(ctx, userBGMSummary) + Expect(err).ToNot(HaveOccurred()) + + userBGMSummaryWritten, err := bgmStore.GetSummary(ctx, userId) + Expect(err).ToNot(HaveOccurred()) + + // copy id, as that was mongo generated + userBGMSummary.ID = userBGMSummaryWritten.ID + Expect(userBGMSummaryWritten).To(Equal(userBGMSummary)) + }) + + It("Update Summary", func() { + var userBGMSummaryTwo *types.Summary[*types.BGMStats, types.BGMStats] + var userBGMSummaryWritten *types.Summary[*types.BGMStats, types.BGMStats] + var userBGMSummaryWrittenTwo *types.Summary[*types.BGMStats, types.BGMStats] + + // generate and insert first summary + userBGMSummary = test.RandomBGMSummary(userId) + Expect(userBGMSummary.Type).To(Equal("bgm")) + + err = bgmStore.ReplaceSummary(ctx, userBGMSummary) + Expect(err).ToNot(HaveOccurred()) + + // confirm first summary was written, get ID + userBGMSummaryWritten, err = bgmStore.GetSummary(ctx, userId) + Expect(err).ToNot(HaveOccurred()) + + // copy id, as that was mongo generated + userBGMSummary.ID = userBGMSummaryWritten.ID + Expect(userBGMSummaryWritten).To(Equal(userBGMSummary)) + + // generate a new summary with same type and user, and upsert userBGMSummaryTwo = test.RandomBGMSummary(userId) err = bgmStore.ReplaceSummary(ctx, userBGMSummaryTwo) Expect(err).ToNot(HaveOccurred()) @@ -604,110 +1561,540 @@ var _ = Describe("Summary Stats Mongo", func() { Expect(err).To(MatchError("userId is missing")) }) - It("Delete Summary", func() { - var userBGMSummaryWritten *types.Summary[*types.BGMStats, types.BGMStats] + It("Delete Summary", func() { + var userBGMSummaryWritten *types.Summary[*types.BGMStats, types.BGMStats] + + userBGMSummary = test.RandomBGMSummary(userId) + Expect(userBGMSummary.Type).To(Equal("bgm")) + + err = bgmStore.ReplaceSummary(ctx, userBGMSummary) + Expect(err).ToNot(HaveOccurred()) + + // confirm writes + userBGMSummaryWritten, err = bgmStore.GetSummary(ctx, userId) + Expect(err).ToNot(HaveOccurred()) + Expect(userBGMSummaryWritten).ToNot(BeNil()) + + // delete + err = bgmStore.DeleteSummary(ctx, userId) + Expect(err).ToNot(HaveOccurred()) + + // confirm delete + userBGMSummaryWritten, err = bgmStore.GetSummary(ctx, userId) + Expect(err).ToNot(HaveOccurred()) + Expect(userBGMSummaryWritten).To(BeNil()) + }) + }) + + Context("CreateSummaries", func() { + It("Create summaries with missing context", func() { + var summaries = []*types.Summary[*types.BGMStats, types.BGMStats]{ + test.RandomBGMSummary(userId), + test.RandomBGMSummary(userIdOther), + } + + _, err = bgmStore.CreateSummaries(nil, summaries) + Expect(err).To(HaveOccurred()) + Expect(err).To(MatchError("context is missing")) + }) + + It("Create summaries with missing summaries", func() { + _, err = bgmStore.CreateSummaries(ctx, nil) + Expect(err).To(HaveOccurred()) + Expect(err).To(MatchError("summaries for create missing")) + }) + + It("Create summaries with an invalid type", func() { + var summaries = []*types.Summary[*types.BGMStats, types.BGMStats]{ + test.RandomBGMSummary(userId), + test.RandomBGMSummary(userIdOther), + } + + summaries[0].Type = "cgm" + + _, err = bgmStore.CreateSummaries(ctx, summaries) + Expect(err).To(HaveOccurred()) + Expect(err).To(MatchError("invalid summary type 'cgm', expected 'bgm' at index 0")) + }) + + It("Create summaries with an invalid type", func() { + var summaries = []*types.Summary[*types.BGMStats, types.BGMStats]{ + test.RandomBGMSummary(userId), + test.RandomBGMSummary(userIdOther), + } + + summaries[0].Type = "cgm" + + _, err = bgmStore.CreateSummaries(ctx, summaries) + Expect(err).To(HaveOccurred()) + Expect(err).To(MatchError("invalid summary type 'cgm', expected 'bgm' at index 0")) + }) + + It("Create summaries with an empty userId", func() { + var summaries = []*types.Summary[*types.BGMStats, types.BGMStats]{ + test.RandomBGMSummary(userId), + test.RandomBGMSummary(userIdOther), + } + + summaries[0].UserID = "" + + _, err = bgmStore.CreateSummaries(ctx, summaries) + Expect(err).To(HaveOccurred()) + Expect(err).To(MatchError("userId is missing at index 0")) + }) + + It("Create summaries", func() { + var count int + var summaries = []*types.Summary[*types.BGMStats, types.BGMStats]{ + test.RandomBGMSummary(userId), + test.RandomBGMSummary(userIdOther), + } + + count, err = bgmStore.CreateSummaries(ctx, summaries) + Expect(err).ToNot(HaveOccurred()) + Expect(count).To(Equal(2)) + + for i := 0; i < 2; i++ { + userBGMSummary, err = bgmStore.GetSummary(ctx, summaries[0].UserID) + Expect(err).ToNot(HaveOccurred()) + Expect(userBGMSummary).ToNot(BeNil()) + summaries[i].ID = userBGMSummary.ID + Expect(userBGMSummary).To(Equal(summaries[0])) + } + }) + }) + + Context("SetOutdated", func() { + var outdatedSince *time.Time + var userBGMSummaryWritten *types.Summary[*types.BGMStats, types.BGMStats] + + It("With missing context", func() { + outdatedSince, err = bgmStore.SetOutdated(nil, userId, types.OutdatedReasonDataAdded) + Expect(err).To(HaveOccurred()) + Expect(err).To(MatchError("context is missing")) + Expect(outdatedSince).To(BeNil()) + }) + + It("With missing userId", func() { + outdatedSince, err = bgmStore.SetOutdated(ctx, "", types.OutdatedReasonDataAdded) + Expect(err).To(HaveOccurred()) + Expect(err).To(MatchError("userId is missing")) + Expect(outdatedSince).To(BeNil()) + }) + + It("With multiple reasons", func() { + outdatedSinceOriginal, err := bgmStore.SetOutdated(ctx, userId, types.OutdatedReasonDataAdded) + Expect(err).ToNot(HaveOccurred()) + Expect(outdatedSinceOriginal).ToNot(BeNil()) + + userBGMSummary, err = bgmStore.GetSummary(ctx, userId) + Expect(err).ToNot(HaveOccurred()) + Expect(userBGMSummary.Dates.OutdatedSince).ToNot(BeNil()) + Expect(userBGMSummary.Dates.OutdatedSince).To(Equal(outdatedSinceOriginal)) + Expect(userBGMSummary.Dates.OutdatedReason).To(ConsistOf([]string{types.OutdatedReasonDataAdded})) + + outdatedSince, err = bgmStore.SetOutdated(ctx, userId, types.OutdatedReasonBackfill) + Expect(err).ToNot(HaveOccurred()) + Expect(outdatedSince).ToNot(BeNil()) + + userBGMSummary, err = bgmStore.GetSummary(ctx, userId) + Expect(err).ToNot(HaveOccurred()) + Expect(userBGMSummary.Dates.OutdatedSince).ToNot(BeNil()) + Expect(userBGMSummary.Dates.OutdatedSince).To(Equal(outdatedSince)) + Expect(userBGMSummary.Dates.OutdatedReason).To(ConsistOf([]string{types.OutdatedReasonDataAdded, types.OutdatedReasonBackfill})) + + outdatedSince, err = bgmStore.SetOutdated(ctx, userId, types.OutdatedReasonDataAdded) + Expect(err).ToNot(HaveOccurred()) + Expect(outdatedSince).ToNot(BeNil()) + + userBGMSummary, err = bgmStore.GetSummary(ctx, userId) + Expect(err).ToNot(HaveOccurred()) + Expect(userBGMSummary.Dates.OutdatedSince).ToNot(BeNil()) + Expect(userBGMSummary.Dates.OutdatedSince).To(Equal(outdatedSince)) + Expect(userBGMSummary.Dates.OutdatedReason).To(ConsistOf([]string{types.OutdatedReasonDataAdded, types.OutdatedReasonBackfill})) + }) + + It("With no existing summary", func() { + outdatedSince, err = bgmStore.SetOutdated(ctx, userId, types.OutdatedReasonDataAdded) + Expect(err).ToNot(HaveOccurred()) + Expect(outdatedSince).ToNot(BeNil()) + + userBGMSummary, err = bgmStore.GetSummary(ctx, userId) + Expect(err).ToNot(HaveOccurred()) + Expect(userBGMSummary.Dates.OutdatedSince).ToNot(BeNil()) + Expect(userBGMSummary.Dates.OutdatedSince).To(Equal(outdatedSince)) + }) + + It("With an existing non-outdated summary", func() { + userBGMSummary = test.RandomBGMSummary(userId) + userBGMSummary.Dates.OutdatedSince = nil + err = bgmStore.ReplaceSummary(ctx, userBGMSummary) + Expect(err).ToNot(HaveOccurred()) + + outdatedSince, err = bgmStore.SetOutdated(ctx, userId, types.OutdatedReasonDataAdded) + Expect(err).ToNot(HaveOccurred()) + Expect(outdatedSince).ToNot(BeNil()) + + userBGMSummaryWritten, err = bgmStore.GetSummary(ctx, userId) + Expect(err).ToNot(HaveOccurred()) + Expect(userBGMSummaryWritten.Dates.OutdatedSince).ToNot(BeNil()) + Expect(userBGMSummaryWritten.Dates.OutdatedSince).To(Equal(outdatedSince)) + + }) + + It("With an existing outdated summary", func() { + var fiveMinutesAgo = time.Now().Add(time.Duration(-5) * time.Minute).UTC().Truncate(time.Millisecond) + + userBGMSummary = test.RandomBGMSummary(userId) + userBGMSummary.Dates.OutdatedSince = &fiveMinutesAgo + err = bgmStore.ReplaceSummary(ctx, userBGMSummary) + Expect(err).ToNot(HaveOccurred()) + + outdatedSince, err = bgmStore.SetOutdated(ctx, userId, types.OutdatedReasonDataAdded) + Expect(err).ToNot(HaveOccurred()) + Expect(outdatedSince).ToNot(BeNil()) + + userBGMSummaryWritten, err = bgmStore.GetSummary(ctx, userId) + Expect(err).ToNot(HaveOccurred()) + Expect(userBGMSummaryWritten.Dates.OutdatedSince).ToNot(BeNil()) + Expect(userBGMSummaryWritten.Dates.OutdatedSince).To(Equal(outdatedSince)) + }) + + It("With an existing outdated summary beyond the outdatedSinceLimit", func() { + now := time.Now().UTC().Truncate(time.Millisecond) + + userBGMSummary = test.RandomBGMSummary(userId) + userBGMSummary.Dates.OutdatedSince = &now + err = bgmStore.ReplaceSummary(ctx, userBGMSummary) + Expect(err).ToNot(HaveOccurred()) + + outdatedSince, err = bgmStore.SetOutdated(ctx, userId, types.OutdatedReasonDataAdded) + Expect(err).ToNot(HaveOccurred()) + Expect(outdatedSince).ToNot(BeNil()) + + userBGMSummaryWritten, err = bgmStore.GetSummary(ctx, userId) + Expect(err).ToNot(HaveOccurred()) + Expect(userBGMSummaryWritten.Dates.OutdatedSince).ToNot(BeNil()) + }) + + It("With an existing outdated summary with schema migration reason", func() { + now := time.Now().UTC().Truncate(time.Millisecond) + fiveMinutesAgo := now.Add(time.Duration(-5) * time.Minute) + + userBGMSummary = test.RandomBGMSummary(userId) + userBGMSummary.Dates.OutdatedSince = &fiveMinutesAgo + userBGMSummary.Dates.OutdatedReason = []string{types.OutdatedReasonUploadCompleted} + Expect(userBGMSummary.Stats.Buckets).ToNot(HaveLen(0)) + Expect(userBGMSummary.Stats.Periods).ToNot(HaveLen(0)) + + err = bgmStore.ReplaceSummary(ctx, userBGMSummary) + Expect(err).ToNot(HaveOccurred()) + + outdatedSince, err = bgmStore.SetOutdated(ctx, userId, types.OutdatedReasonSchemaMigration) + Expect(err).ToNot(HaveOccurred()) + Expect(outdatedSince).ToNot(BeNil()) + + userBGMSummaryWritten, err = bgmStore.GetSummary(ctx, userId) + Expect(err).ToNot(HaveOccurred()) + Expect(userBGMSummaryWritten.Dates.OutdatedSince).ToNot(BeNil()) + Expect(userBGMSummaryWritten.Dates.OutdatedSince).To(Equal(outdatedSince)) + Expect(userBGMSummaryWritten.Stats.Buckets).To(HaveLen(0)) + Expect(userBGMSummaryWritten.Stats.Periods).To(HaveLen(0)) + Expect(userBGMSummaryWritten.Dates.LastData).To(BeNil()) + Expect(userBGMSummaryWritten.Dates.FirstData).To(BeNil()) + Expect(userBGMSummaryWritten.Dates.LastUpdatedDate.IsZero()).To(BeTrue()) + Expect(userBGMSummaryWritten.Dates.LastUploadDate).To(BeNil()) + Expect(userBGMSummaryWritten.Dates.OutdatedReason).To(ConsistOf(types.OutdatedReasonSchemaMigration, types.OutdatedReasonUploadCompleted)) + }) + }) + + Context("GetSummary", func() { + It("With missing context", func() { + userBGMSummary, err = bgmStore.GetSummary(nil, userId) + Expect(err).To(HaveOccurred()) + Expect(err).To(MatchError("context is missing")) + Expect(userBGMSummary).To(BeNil()) + }) + + It("With missing userId", func() { + userBGMSummary, err = bgmStore.GetSummary(ctx, "") + Expect(err).To(HaveOccurred()) + Expect(err).To(MatchError("userId is missing")) + Expect(userBGMSummary).To(BeNil()) + }) + + It("With no summary", func() { + userBGMSummary, err = bgmStore.GetSummary(ctx, userId) + Expect(err).ToNot(HaveOccurred()) + Expect(userBGMSummary).To(BeNil()) + }) + + It("With multiple summaries", func() { + var summaries = []*types.Summary[*types.BGMStats, types.BGMStats]{ + test.RandomBGMSummary(userId), + test.RandomBGMSummary(userIdOther), + } + + _, err = bgmStore.CreateSummaries(ctx, summaries) + Expect(err).ToNot(HaveOccurred()) + + userBGMSummary, err = bgmStore.GetSummary(ctx, userId) + Expect(err).ToNot(HaveOccurred()) + Expect(userBGMSummary).ToNot(BeNil()) + + summaries[0].ID = userBGMSummary.ID + Expect(userBGMSummary).To(Equal(summaries[0])) + }) + + It("Get with multiple summaries of different type", func() { + cgmStore := dataStoreSummary.New[*types.CGMStats](summaryRepository) + continuousStore := dataStoreSummary.New[*types.ContinuousStats](summaryRepository) + + var cgmSummaries = []*types.Summary[*types.CGMStats, types.CGMStats]{ + test.RandomCGMSummary(userId), + test.RandomCGMSummary(userIdOther), + } + + var bgmSummaries = []*types.Summary[*types.BGMStats, types.BGMStats]{ + test.RandomBGMSummary(userId), + test.RandomBGMSummary(userIdOther), + } + + var continuousSummaries = []*types.Summary[*types.ContinuousStats, types.ContinuousStats]{ + test.RandomContinousSummary(userId), + test.RandomContinousSummary(userIdOther), + } + + _, err = cgmStore.CreateSummaries(ctx, cgmSummaries) + Expect(err).ToNot(HaveOccurred()) + + _, err = bgmStore.CreateSummaries(ctx, bgmSummaries) + Expect(err).ToNot(HaveOccurred()) + + _, err = continuousStore.CreateSummaries(ctx, continuousSummaries) + Expect(err).ToNot(HaveOccurred()) + + userBGMSummary, err = bgmStore.GetSummary(ctx, userId) + Expect(err).ToNot(HaveOccurred()) + Expect(userBGMSummary).ToNot(BeNil()) + + bgmSummaries[0].ID = userBGMSummary.ID + Expect(userBGMSummary).To(Equal(bgmSummaries[0])) + }) + }) + + Context("DistinctSummaryIDs", func() { + var userIds []string + + It("With missing context", func() { + userIds, err = bgmStore.DistinctSummaryIDs(nil) + Expect(err).To(HaveOccurred()) + Expect(err).To(MatchError("context is missing")) + Expect(len(userIds)).To(Equal(0)) + }) + + It("With no summaries", func() { + userIds, err = bgmStore.DistinctSummaryIDs(ctx) + Expect(err).ToNot(HaveOccurred()) + Expect(len(userIds)).To(Equal(0)) + }) + + It("With summaries", func() { + var cgmSummaries = []*types.Summary[*types.BGMStats, types.BGMStats]{ + test.RandomBGMSummary(userId), + test.RandomBGMSummary(userIdOther), + } + + _, err = bgmStore.CreateSummaries(ctx, cgmSummaries) + Expect(err).ToNot(HaveOccurred()) + + userIds, err = bgmStore.DistinctSummaryIDs(ctx) + Expect(err).ToNot(HaveOccurred()) + Expect(len(userIds)).To(Equal(2)) + Expect(userIds).To(ConsistOf([]string{userId, userIdOther})) + }) + + It("With summaries of all types", func() { + userIdTwo := userTest.RandomID() + userIdThree := userTest.RandomID() + userIdFour := userTest.RandomID() + userIdFive := userTest.RandomID() + continuousStore := dataStoreSummary.New[*types.ContinuousStats](summaryRepository) + cgmStore := dataStoreSummary.New[*types.CGMStats](summaryRepository) - userBGMSummary = test.RandomBGMSummary(userId) - Expect(userBGMSummary.Type).To(Equal("bgm")) + var cgmSummaries = []*types.Summary[*types.CGMStats, types.CGMStats]{ + test.RandomCGMSummary(userId), + test.RandomCGMSummary(userIdOther), + } - err = bgmStore.ReplaceSummary(ctx, userBGMSummary) - Expect(err).ToNot(HaveOccurred()) + var bgmSummaries = []*types.Summary[*types.BGMStats, types.BGMStats]{ + test.RandomBGMSummary(userIdTwo), + test.RandomBGMSummary(userIdThree), + } - // confirm writes - userBGMSummaryWritten, err = bgmStore.GetSummary(ctx, userId) - Expect(err).ToNot(HaveOccurred()) - Expect(userBGMSummaryWritten).ToNot(BeNil()) + var continuousSummaries = []*types.Summary[*types.ContinuousStats, types.ContinuousStats]{ + test.RandomContinousSummary(userIdFour), + test.RandomContinousSummary(userIdFive), + } - // delete - err = bgmStore.DeleteSummary(ctx, userId) + _, err = cgmStore.CreateSummaries(ctx, cgmSummaries) + Expect(err).ToNot(HaveOccurred()) + _, err = bgmStore.CreateSummaries(ctx, bgmSummaries) + Expect(err).ToNot(HaveOccurred()) + _, err = continuousStore.CreateSummaries(ctx, continuousSummaries) Expect(err).ToNot(HaveOccurred()) - // confirm delete - userBGMSummaryWritten, err = bgmStore.GetSummary(ctx, userId) + userIds, err = bgmStore.DistinctSummaryIDs(ctx) Expect(err).ToNot(HaveOccurred()) - Expect(userBGMSummaryWritten).To(BeNil()) + Expect(len(userIds)).To(Equal(2)) + Expect(userIds).To(ConsistOf([]string{userIdTwo, userIdThree})) }) }) - Context("CreateSummaries", func() { - It("Create summaries with missing context", func() { - var summaries = []*types.Summary[*types.BGMStats, types.BGMStats]{ - test.RandomBGMSummary(userId), - test.RandomBGMSummary(userIdOther), - } + Context("GetOutdatedUserIDs", func() { + var userIds *types.OutdatedSummariesResponse + var userIdTwo string + var userIdThree string - _, err = bgmStore.CreateSummaries(nil, summaries) + BeforeEach(func() { + userIdTwo = userTest.RandomID() + userIdThree = userTest.RandomID() + }) + + It("With missing context", func() { + userIds, err = bgmStore.GetOutdatedUserIDs(nil, page.NewPagination()) Expect(err).To(HaveOccurred()) Expect(err).To(MatchError("context is missing")) + Expect(userIds).To(BeNil()) }) - It("Create summaries with missing summaries", func() { - _, err = bgmStore.CreateSummaries(ctx, nil) + It("With missing pagination", func() { + userIds, err = bgmStore.GetOutdatedUserIDs(ctx, nil) Expect(err).To(HaveOccurred()) - Expect(err).To(MatchError("summaries for create missing")) + Expect(err).To(MatchError("pagination is missing")) + Expect(userIds).To(BeNil()) }) - It("Create summaries with an invalid type", func() { - var summaries = []*types.Summary[*types.BGMStats, types.BGMStats]{ + It("With no outdated summaries", func() { + var pagination = page.NewPagination() + + userIds, err = bgmStore.GetOutdatedUserIDs(ctx, pagination) + Expect(err).ToNot(HaveOccurred()) + Expect(len(userIds.UserIds)).To(Equal(0)) + }) + + It("With outdated CGM summaries", func() { + var outdatedTime = time.Now().UTC().Truncate(time.Millisecond) + var bgmSummaries = []*types.Summary[*types.BGMStats, types.BGMStats]{ test.RandomBGMSummary(userId), test.RandomBGMSummary(userIdOther), + test.RandomBGMSummary(userIdTwo), } - summaries[0].Type = "cgm" + // mark 2/3 summaries outdated + bgmSummaries[0].Dates.OutdatedSince = &outdatedTime + bgmSummaries[1].Dates.OutdatedSince = nil + bgmSummaries[2].Dates.OutdatedSince = &outdatedTime + _, err = bgmStore.CreateSummaries(ctx, bgmSummaries) + Expect(err).ToNot(HaveOccurred()) - _, err = bgmStore.CreateSummaries(ctx, summaries) - Expect(err).To(HaveOccurred()) - Expect(err).To(MatchError("invalid summary type 'cgm', expected 'bgm' at index 0")) + userIds, err = bgmStore.GetOutdatedUserIDs(ctx, page.NewPagination()) + Expect(err).ToNot(HaveOccurred()) + Expect(userIds.UserIds).To(ConsistOf([]string{userId, userIdTwo})) }) - It("Create summaries with an invalid type", func() { - var summaries = []*types.Summary[*types.BGMStats, types.BGMStats]{ + It("With a specific pagination size", func() { + var pagination = page.NewPagination() + var outdatedTime = time.Now().UTC().Truncate(time.Millisecond) + var bgmSummaries = []*types.Summary[*types.BGMStats, types.BGMStats]{ test.RandomBGMSummary(userId), test.RandomBGMSummary(userIdOther), + test.RandomBGMSummary(userIdTwo), + test.RandomBGMSummary(userIdThree), } - summaries[0].Type = "cgm" + pagination.Size = 3 - _, err = bgmStore.CreateSummaries(ctx, summaries) - Expect(err).To(HaveOccurred()) - Expect(err).To(MatchError("invalid summary type 'cgm', expected 'bgm' at index 0")) + for i := len(bgmSummaries) - 1; i >= 0; i-- { + bgmSummaries[i].Dates.OutdatedSince = pointer.FromAny(outdatedTime.Add(-time.Duration(i) * time.Second)) + } + _, err = bgmStore.CreateSummaries(ctx, bgmSummaries) + Expect(err).ToNot(HaveOccurred()) + + userIds, err = bgmStore.GetOutdatedUserIDs(ctx, pagination) + Expect(err).ToNot(HaveOccurred()) + Expect(len(userIds.UserIds)).To(Equal(3)) + Expect(userIds.UserIds).To(ConsistOf([]string{userIdThree, userIdTwo, userIdOther})) }) - It("Create summaries with an empty userId", func() { - var summaries = []*types.Summary[*types.BGMStats, types.BGMStats]{ + It("Check sort order", func() { + var outdatedTime = time.Now().UTC().Truncate(time.Millisecond) + var bgmSummaries = []*types.Summary[*types.BGMStats, types.BGMStats]{ test.RandomBGMSummary(userId), test.RandomBGMSummary(userIdOther), + test.RandomBGMSummary(userIdTwo), } - summaries[0].UserID = "" + for i := 0; i < len(bgmSummaries); i++ { + bgmSummaries[i].Dates.OutdatedSince = pointer.FromAny(outdatedTime.Add(time.Duration(-i) * time.Minute)) + } + _, err = bgmStore.CreateSummaries(ctx, bgmSummaries) + Expect(err).ToNot(HaveOccurred()) - _, err = bgmStore.CreateSummaries(ctx, summaries) - Expect(err).To(HaveOccurred()) - Expect(err).To(MatchError("userId is missing at index 0")) + userIds, err = bgmStore.GetOutdatedUserIDs(ctx, page.NewPagination()) + Expect(err).ToNot(HaveOccurred()) + Expect(len(userIds.UserIds)).To(Equal(3)) + + // we expect these to come back in reverse order than inserted + for i := 0; i < len(userIds.UserIds); i++ { + Expect(userIds.UserIds[i]).To(Equal(bgmSummaries[len(bgmSummaries)-i-1].UserID)) + } }) - It("Create summaries", func() { - var count int - var summaries = []*types.Summary[*types.BGMStats, types.BGMStats]{ - test.RandomBGMSummary(userId), - test.RandomBGMSummary(userIdOther), + It("Get outdated summaries with all types present", func() { + userIdFour := userTest.RandomID() + userIdFive := userTest.RandomID() + continuousStore := dataStoreSummary.New[*types.ContinuousStats](summaryRepository) + cgmStore := dataStoreSummary.New[*types.CGMStats](summaryRepository) + + var outdatedTime = time.Now().UTC().Truncate(time.Millisecond) + + var cgmSummaries = []*types.Summary[*types.CGMStats, types.CGMStats]{ + test.RandomCGMSummary(userId), + test.RandomCGMSummary(userIdOther), } - count, err = bgmStore.CreateSummaries(ctx, summaries) - Expect(err).ToNot(HaveOccurred()) - Expect(count).To(Equal(2)) + var bgmSummaries = []*types.Summary[*types.BGMStats, types.BGMStats]{ + test.RandomBGMSummary(userIdTwo), + test.RandomBGMSummary(userIdThree), + } - for i := 0; i < 2; i++ { - userBGMSummary, err = bgmStore.GetSummary(ctx, summaries[0].UserID) - Expect(err).ToNot(HaveOccurred()) - Expect(userBGMSummary).ToNot(BeNil()) - summaries[i].ID = userBGMSummary.ID - Expect(userBGMSummary).To(Equal(summaries[0])) + var continuousSummaries = []*types.Summary[*types.ContinuousStats, types.ContinuousStats]{ + test.RandomContinousSummary(userIdFour), + test.RandomContinousSummary(userIdFive), } + + // mark 1 outdated per type + cgmSummaries[0].Dates.OutdatedSince = &outdatedTime + cgmSummaries[1].Dates.OutdatedSince = nil + _, err = cgmStore.CreateSummaries(ctx, cgmSummaries) + Expect(err).ToNot(HaveOccurred()) + + bgmSummaries[0].Dates.OutdatedSince = nil + bgmSummaries[1].Dates.OutdatedSince = &outdatedTime + _, err = bgmStore.CreateSummaries(ctx, bgmSummaries) + Expect(err).ToNot(HaveOccurred()) + + continuousSummaries[0].Dates.OutdatedSince = nil + continuousSummaries[1].Dates.OutdatedSince = &outdatedTime + _, err = continuousStore.CreateSummaries(ctx, continuousSummaries) + Expect(err).ToNot(HaveOccurred()) + + userIds, err = bgmStore.GetOutdatedUserIDs(ctx, page.NewPagination()) + Expect(err).ToNot(HaveOccurred()) + Expect(userIds.UserIds).To(ConsistOf([]string{userIdThree})) }) }) - - Context("SetOutdated", func() {}) }) Context("Typeless", func() { @@ -781,726 +2168,6 @@ var _ = Describe("Summary Stats Mongo", func() { }) }) - Context("SetOutdated", func() { - var outdatedSince *time.Time - - It("With missing context", func() { - outdatedSince, err = cgmStore.SetOutdated(nil, userId, types.OutdatedReasonDataAdded) - Expect(err).To(HaveOccurred()) - Expect(err).To(MatchError("context is missing")) - Expect(outdatedSince).To(BeNil()) - }) - - It("With missing userId", func() { - outdatedSince, err = cgmStore.SetOutdated(ctx, "", types.OutdatedReasonDataAdded) - Expect(err).To(HaveOccurred()) - Expect(err).To(MatchError("userId is missing")) - Expect(outdatedSince).To(BeNil()) - }) - - It("With multiple reasons", func() { - outdatedSinceOriginal, err := cgmStore.SetOutdated(ctx, userId, types.OutdatedReasonDataAdded) - Expect(err).ToNot(HaveOccurred()) - Expect(outdatedSinceOriginal).ToNot(BeNil()) - - userCGMSummary, err = cgmStore.GetSummary(ctx, userId) - Expect(err).ToNot(HaveOccurred()) - Expect(userCGMSummary.Dates.OutdatedSince).ToNot(BeNil()) - Expect(userCGMSummary.Dates.OutdatedSince).To(Equal(outdatedSinceOriginal)) - Expect(userCGMSummary.Dates.OutdatedReason).To(ConsistOf([]string{types.OutdatedReasonDataAdded})) - - outdatedSince, err = cgmStore.SetOutdated(ctx, userId, types.OutdatedReasonBackfill) - Expect(err).ToNot(HaveOccurred()) - Expect(outdatedSince).ToNot(BeNil()) - - userCGMSummary, err = cgmStore.GetSummary(ctx, userId) - Expect(err).ToNot(HaveOccurred()) - Expect(userCGMSummary.Dates.OutdatedSince).ToNot(BeNil()) - Expect(userCGMSummary.Dates.OutdatedSince).To(Equal(outdatedSince)) - Expect(userCGMSummary.Dates.OutdatedReason).To(ConsistOf([]string{types.OutdatedReasonDataAdded, types.OutdatedReasonBackfill})) - - outdatedSince, err = cgmStore.SetOutdated(ctx, userId, types.OutdatedReasonDataAdded) - Expect(err).ToNot(HaveOccurred()) - Expect(outdatedSince).ToNot(BeNil()) - - userCGMSummary, err = cgmStore.GetSummary(ctx, userId) - Expect(err).ToNot(HaveOccurred()) - Expect(userCGMSummary.Dates.OutdatedSince).ToNot(BeNil()) - Expect(userCGMSummary.Dates.OutdatedSince).To(Equal(outdatedSince)) - Expect(userCGMSummary.Dates.OutdatedReason).To(ConsistOf([]string{types.OutdatedReasonDataAdded, types.OutdatedReasonBackfill})) - }) - - It("With no existing CGM summary", func() { - outdatedSince, err = cgmStore.SetOutdated(ctx, userId, types.OutdatedReasonDataAdded) - Expect(err).ToNot(HaveOccurred()) - Expect(outdatedSince).ToNot(BeNil()) - - userCGMSummary, err = cgmStore.GetSummary(ctx, userId) - Expect(err).ToNot(HaveOccurred()) - Expect(userCGMSummary.Dates.OutdatedSince).ToNot(BeNil()) - Expect(userCGMSummary.Dates.OutdatedSince).To(Equal(outdatedSince)) - }) - - It("With an existing non-outdated CGM summary", func() { - var userCGMSummaryWritten *types.Summary[*types.CGMStats, types.CGMStats] - - userCGMSummary = test.RandomCGMSummary(userId) - userCGMSummary.Dates.OutdatedSince = nil - err = cgmStore.ReplaceSummary(ctx, userCGMSummary) - Expect(err).ToNot(HaveOccurred()) - - outdatedSince, err = cgmStore.SetOutdated(ctx, userId, types.OutdatedReasonDataAdded) - Expect(err).ToNot(HaveOccurred()) - Expect(outdatedSince).ToNot(BeNil()) - - userCGMSummaryWritten, err = cgmStore.GetSummary(ctx, userId) - Expect(err).ToNot(HaveOccurred()) - Expect(userCGMSummaryWritten.Dates.OutdatedSince).ToNot(BeNil()) - Expect(userCGMSummaryWritten.Dates.OutdatedSince).To(Equal(outdatedSince)) - - }) - - It("With an existing outdated CGM summary", func() { - var userCGMSummaryWritten *types.Summary[*types.CGMStats, types.CGMStats] - var fiveMinutesAgo = time.Now().Add(time.Duration(-5) * time.Minute).UTC().Truncate(time.Millisecond) - - userCGMSummary = test.RandomCGMSummary(userId) - userCGMSummary.Dates.OutdatedSince = &fiveMinutesAgo - err = cgmStore.ReplaceSummary(ctx, userCGMSummary) - Expect(err).ToNot(HaveOccurred()) - - outdatedSince, err = cgmStore.SetOutdated(ctx, userId, types.OutdatedReasonDataAdded) - Expect(err).ToNot(HaveOccurred()) - Expect(outdatedSince).ToNot(BeNil()) - - userCGMSummaryWritten, err = cgmStore.GetSummary(ctx, userId) - Expect(err).ToNot(HaveOccurred()) - Expect(userCGMSummaryWritten.Dates.OutdatedSince).ToNot(BeNil()) - Expect(userCGMSummaryWritten.Dates.OutdatedSince).To(Equal(outdatedSince)) - }) - - It("With an existing outdated CGM summary beyond the outdatedSinceLimit", func() { - var userCGMSummaryWritten *types.Summary[*types.CGMStats, types.CGMStats] - now := time.Now().UTC().Truncate(time.Millisecond) - - userCGMSummary = test.RandomCGMSummary(userId) - userCGMSummary.Dates.OutdatedSince = &now - err = cgmStore.ReplaceSummary(ctx, userCGMSummary) - Expect(err).ToNot(HaveOccurred()) - - outdatedSince, err = cgmStore.SetOutdated(ctx, userId, types.OutdatedReasonDataAdded) - Expect(err).ToNot(HaveOccurred()) - Expect(outdatedSince).ToNot(BeNil()) - - userCGMSummaryWritten, err = cgmStore.GetSummary(ctx, userId) - Expect(err).ToNot(HaveOccurred()) - Expect(userCGMSummaryWritten.Dates.OutdatedSince).ToNot(BeNil()) - }) - - It("With an existing outdated CGM summary with schema migration reason", func() { - var userCGMSummaryWritten *types.Summary[*types.CGMStats, types.CGMStats] - now := time.Now().UTC().Truncate(time.Millisecond) - fiveMinutesAgo := now.Add(time.Duration(-5) * time.Minute) - - userCGMSummary = test.RandomCGMSummary(userId) - userCGMSummary.Dates.OutdatedSince = &fiveMinutesAgo - userCGMSummary.Dates.OutdatedReason = []string{types.OutdatedReasonUploadCompleted} - Expect(userCGMSummary.Stats.Buckets).ToNot(HaveLen(0)) - Expect(userCGMSummary.Stats.Periods).ToNot(HaveLen(0)) - - err = cgmStore.ReplaceSummary(ctx, userCGMSummary) - Expect(err).ToNot(HaveOccurred()) - - outdatedSince, err = cgmStore.SetOutdated(ctx, userId, types.OutdatedReasonSchemaMigration) - Expect(err).ToNot(HaveOccurred()) - Expect(outdatedSince).ToNot(BeNil()) - - userCGMSummaryWritten, err = cgmStore.GetSummary(ctx, userId) - Expect(err).ToNot(HaveOccurred()) - Expect(userCGMSummaryWritten.Dates.OutdatedSince).ToNot(BeNil()) - Expect(userCGMSummaryWritten.Dates.OutdatedSince).To(Equal(outdatedSince)) - Expect(userCGMSummaryWritten.Stats.Buckets).To(HaveLen(0)) - Expect(userCGMSummaryWritten.Stats.Periods).To(HaveLen(0)) - Expect(userCGMSummaryWritten.Dates.LastData).To(BeNil()) - Expect(userCGMSummaryWritten.Dates.FirstData).To(BeNil()) - Expect(userCGMSummaryWritten.Dates.LastUpdatedDate.IsZero()).To(BeTrue()) - Expect(userCGMSummaryWritten.Dates.LastUploadDate).To(BeNil()) - Expect(userCGMSummaryWritten.Dates.OutdatedReason).To(ConsistOf(types.OutdatedReasonSchemaMigration, types.OutdatedReasonUploadCompleted)) - }) - - It("With no existing BGM summary", func() { - outdatedSince, err = bgmStore.SetOutdated(ctx, userId, types.OutdatedReasonDataAdded) - Expect(err).ToNot(HaveOccurred()) - Expect(outdatedSince).ToNot(BeNil()) - - userBGMSummary, err = bgmStore.GetSummary(ctx, userId) - Expect(err).ToNot(HaveOccurred()) - Expect(userBGMSummary.Dates.OutdatedSince).ToNot(BeNil()) - Expect(userBGMSummary.Dates.OutdatedSince).To(Equal(outdatedSince)) - }) - - It("With an existing non-outdated BGM summary", func() { - var userBGMSummaryWritten *types.Summary[*types.BGMStats, types.BGMStats] - - userBGMSummary = test.RandomBGMSummary(userId) - userBGMSummary.Dates.OutdatedSince = nil - err = bgmStore.ReplaceSummary(ctx, userBGMSummary) - Expect(err).ToNot(HaveOccurred()) - - outdatedSince, err = bgmStore.SetOutdated(ctx, userId, types.OutdatedReasonDataAdded) - Expect(err).ToNot(HaveOccurred()) - Expect(outdatedSince).ToNot(BeNil()) - - userBGMSummaryWritten, err = bgmStore.GetSummary(ctx, userId) - Expect(err).ToNot(HaveOccurred()) - Expect(userBGMSummaryWritten.Dates.OutdatedSince).ToNot(BeNil()) - Expect(userBGMSummaryWritten.Dates.OutdatedSince).To(Equal(outdatedSince)) - - }) - - It("With an existing outdated BGM summary", func() { - var userBGMSummaryWritten *types.Summary[*types.BGMStats, types.BGMStats] - var fiveMinutesAgo = time.Now().Add(time.Duration(-5) * time.Minute).UTC().Truncate(time.Millisecond) - - userBGMSummary = test.RandomBGMSummary(userId) - userBGMSummary.Dates.OutdatedSince = &fiveMinutesAgo - err = bgmStore.ReplaceSummary(ctx, userBGMSummary) - Expect(err).ToNot(HaveOccurred()) - - outdatedSince, err = bgmStore.SetOutdated(ctx, userId, types.OutdatedReasonDataAdded) - Expect(err).ToNot(HaveOccurred()) - Expect(outdatedSince).ToNot(BeNil()) - - userBGMSummaryWritten, err = bgmStore.GetSummary(ctx, userId) - Expect(err).ToNot(HaveOccurred()) - Expect(userBGMSummaryWritten.Dates.OutdatedSince).ToNot(BeNil()) - Expect(userBGMSummaryWritten.Dates.OutdatedSince).To(Equal(outdatedSince)) - - }) - - It("With an existing outdated BGM summary with schema migration reason", func() { - var userBGMSummaryWritten *types.Summary[*types.BGMStats, types.BGMStats] - now := time.Now().UTC().Truncate(time.Millisecond) - fiveMinutesAgo := now.Add(time.Duration(-5) * time.Minute) - - userBGMSummary = test.RandomBGMSummary(userId) - userBGMSummary.Dates.OutdatedSince = &fiveMinutesAgo - userBGMSummary.Dates.OutdatedReason = []string{types.OutdatedReasonUploadCompleted} - Expect(userBGMSummary.Stats.Buckets).ToNot(HaveLen(0)) - Expect(userBGMSummary.Stats.Periods).ToNot(HaveLen(0)) - - err = bgmStore.ReplaceSummary(ctx, userBGMSummary) - Expect(err).ToNot(HaveOccurred()) - - outdatedSince, err = bgmStore.SetOutdated(ctx, userId, types.OutdatedReasonSchemaMigration) - Expect(err).ToNot(HaveOccurred()) - Expect(outdatedSince).ToNot(BeNil()) - - userBGMSummaryWritten, err = bgmStore.GetSummary(ctx, userId) - Expect(err).ToNot(HaveOccurred()) - Expect(userBGMSummaryWritten.Dates.OutdatedSince).ToNot(BeNil()) - Expect(userBGMSummaryWritten.Dates.OutdatedSince).To(Equal(outdatedSince)) - Expect(userBGMSummaryWritten.Stats.Buckets).To(HaveLen(0)) - Expect(userBGMSummaryWritten.Stats.Periods).To(HaveLen(0)) - Expect(userBGMSummaryWritten.Dates.LastData).To(BeNil()) - Expect(userBGMSummaryWritten.Dates.FirstData).To(BeNil()) - Expect(userBGMSummaryWritten.Dates.LastUpdatedDate.IsZero()).To(BeTrue()) - Expect(userBGMSummaryWritten.Dates.LastUploadDate).To(BeNil()) - Expect(userBGMSummaryWritten.Dates.OutdatedReason).To(ConsistOf(types.OutdatedReasonSchemaMigration, types.OutdatedReasonUploadCompleted)) - - }) - }) - - Context("GetSummary", func() { - - It("With missing context", func() { - userCGMSummary, err = cgmStore.GetSummary(nil, userId) - Expect(err).To(HaveOccurred()) - Expect(err).To(MatchError("context is missing")) - Expect(userCGMSummary).To(BeNil()) - }) - - It("With missing userId", func() { - userCGMSummary, err = cgmStore.GetSummary(ctx, "") - Expect(err).To(HaveOccurred()) - Expect(err).To(MatchError("userId is missing")) - Expect(userCGMSummary).To(BeNil()) - }) - - It("With no summary", func() { - userCGMSummary, err = cgmStore.GetSummary(ctx, userId) - Expect(err).ToNot(HaveOccurred()) - Expect(userCGMSummary).To(BeNil()) - }) - - It("With multiple CGM summaries", func() { - var summaries = []*types.Summary[*types.CGMStats, types.CGMStats]{ - test.RandomCGMSummary(userId), - test.RandomCGMSummary(userIdOther), - } - - _, err = cgmStore.CreateSummaries(ctx, summaries) - Expect(err).ToNot(HaveOccurred()) - - userCGMSummary, err = cgmStore.GetSummary(ctx, userId) - Expect(err).ToNot(HaveOccurred()) - Expect(userCGMSummary).ToNot(BeNil()) - - summaries[0].ID = userCGMSummary.ID - Expect(userCGMSummary).To(Equal(summaries[0])) - }) - - It("With multiple BGM summaries", func() { - var summaries = []*types.Summary[*types.BGMStats, types.BGMStats]{ - test.RandomBGMSummary(userId), - test.RandomBGMSummary(userIdOther), - } - - _, err = bgmStore.CreateSummaries(ctx, summaries) - Expect(err).ToNot(HaveOccurred()) - - userBGMSummary, err = bgmStore.GetSummary(ctx, userId) - Expect(err).ToNot(HaveOccurred()) - Expect(userBGMSummary).ToNot(BeNil()) - - summaries[0].ID = userBGMSummary.ID - Expect(userBGMSummary).To(Equal(summaries[0])) - }) - - It("Get CGM with multiple summaries of different type", func() { - var cgmSummaries = []*types.Summary[*types.CGMStats, types.CGMStats]{ - test.RandomCGMSummary(userId), - test.RandomCGMSummary(userIdOther), - } - - var bgmSummaries = []*types.Summary[*types.BGMStats, types.BGMStats]{ - test.RandomBGMSummary(userId), - test.RandomBGMSummary(userIdOther), - } - - _, err = cgmStore.CreateSummaries(ctx, cgmSummaries) - Expect(err).ToNot(HaveOccurred()) - - _, err = bgmStore.CreateSummaries(ctx, bgmSummaries) - Expect(err).ToNot(HaveOccurred()) - - userCGMSummary, err = cgmStore.GetSummary(ctx, userId) - Expect(err).ToNot(HaveOccurred()) - Expect(userCGMSummary).ToNot(BeNil()) - - cgmSummaries[0].ID = userCGMSummary.ID - Expect(userCGMSummary).To(Equal(cgmSummaries[0])) - }) - - It("Get BGM with multiple summaries of different type", func() { - var cgmSummaries = []*types.Summary[*types.CGMStats, types.CGMStats]{ - test.RandomCGMSummary(userId), - test.RandomCGMSummary(userIdOther), - } - - var bgmSummaries = []*types.Summary[*types.BGMStats, types.BGMStats]{ - test.RandomBGMSummary(userId), - test.RandomBGMSummary(userIdOther), - } - - _, err = cgmStore.CreateSummaries(ctx, cgmSummaries) - Expect(err).ToNot(HaveOccurred()) - - _, err = bgmStore.CreateSummaries(ctx, bgmSummaries) - Expect(err).ToNot(HaveOccurred()) - - userBGMSummary, err = bgmStore.GetSummary(ctx, userIdOther) - Expect(err).ToNot(HaveOccurred()) - Expect(userBGMSummary).ToNot(BeNil()) - - bgmSummaries[1].ID = userBGMSummary.ID - Expect(userBGMSummary).To(Equal(bgmSummaries[1])) - }) - - }) - - Context("DistinctSummaryIDs", func() { - var userIds []string - - It("With missing context", func() { - userIds, err = cgmStore.DistinctSummaryIDs(nil) - Expect(err).To(HaveOccurred()) - Expect(err).To(MatchError("context is missing")) - Expect(len(userIds)).To(Equal(0)) - }) - - It("With no summaries", func() { - userIds, err = cgmStore.DistinctSummaryIDs(ctx) - Expect(err).ToNot(HaveOccurred()) - Expect(len(userIds)).To(Equal(0)) - }) - - It("With CGM summaries", func() { - var cgmSummaries = []*types.Summary[*types.CGMStats, types.CGMStats]{ - test.RandomCGMSummary(userId), - test.RandomCGMSummary(userIdOther), - } - - _, err = cgmStore.CreateSummaries(ctx, cgmSummaries) - Expect(err).ToNot(HaveOccurred()) - - userIds, err = cgmStore.DistinctSummaryIDs(ctx) - Expect(err).ToNot(HaveOccurred()) - Expect(len(userIds)).To(Equal(2)) - Expect(userIds).To(ConsistOf([]string{userId, userIdOther})) - }) - - It("With BGM summaries", func() { - var bgmSummaries = []*types.Summary[*types.BGMStats, types.BGMStats]{ - test.RandomBGMSummary(userId), - test.RandomBGMSummary(userIdOther), - } - - _, err = bgmStore.CreateSummaries(ctx, bgmSummaries) - Expect(err).ToNot(HaveOccurred()) - - userIds, err = bgmStore.DistinctSummaryIDs(ctx) - Expect(err).ToNot(HaveOccurred()) - Expect(len(userIds)).To(Equal(2)) - Expect(userIds).To(ConsistOf([]string{userId, userIdOther})) - }) - - It("Get CGM with summaries of both types", func() { - userIdTwo := userTest.RandomID() - userIdThree := userTest.RandomID() - var cgmSummaries = []*types.Summary[*types.CGMStats, types.CGMStats]{ - test.RandomCGMSummary(userId), - test.RandomCGMSummary(userIdOther), - } - - var bgmSummaries = []*types.Summary[*types.BGMStats, types.BGMStats]{ - test.RandomBGMSummary(userIdTwo), - test.RandomBGMSummary(userIdThree), - } - - _, err = cgmStore.CreateSummaries(ctx, cgmSummaries) - Expect(err).ToNot(HaveOccurred()) - _, err = bgmStore.CreateSummaries(ctx, bgmSummaries) - Expect(err).ToNot(HaveOccurred()) - - userIds, err = cgmStore.DistinctSummaryIDs(ctx) - Expect(err).ToNot(HaveOccurred()) - Expect(len(userIds)).To(Equal(2)) - Expect(userIds).To(ConsistOf([]string{userId, userIdOther})) - }) - - It("Get BGM with summaries of both types", func() { - userIdTwo := userTest.RandomID() - userIdThree := userTest.RandomID() - var cgmSummaries = []*types.Summary[*types.CGMStats, types.CGMStats]{ - test.RandomCGMSummary(userId), - test.RandomCGMSummary(userIdOther), - } - - var bgmSummaries = []*types.Summary[*types.BGMStats, types.BGMStats]{ - test.RandomBGMSummary(userIdTwo), - test.RandomBGMSummary(userIdThree), - } - - _, err = cgmStore.CreateSummaries(ctx, cgmSummaries) - Expect(err).ToNot(HaveOccurred()) - _, err = bgmStore.CreateSummaries(ctx, bgmSummaries) - Expect(err).ToNot(HaveOccurred()) - - userIds, err = bgmStore.DistinctSummaryIDs(ctx) - Expect(err).ToNot(HaveOccurred()) - Expect(len(userIds)).To(Equal(2)) - Expect(userIds).To(ConsistOf([]string{userIdTwo, userIdThree})) - }) - - }) - - Context("GetOutdatedUserIDs", func() { - var userIds *types.OutdatedSummariesResponse - var userIdTwo string - var userIdThree string - - BeforeEach(func() { - userIdTwo = userTest.RandomID() - userIdThree = userTest.RandomID() - }) - - It("With missing context", func() { - userIds, err = cgmStore.GetOutdatedUserIDs(nil, page.NewPagination()) - Expect(err).To(HaveOccurred()) - Expect(err).To(MatchError("context is missing")) - Expect(userIds).To(BeNil()) - }) - - It("With missing pagination", func() { - userIds, err = cgmStore.GetOutdatedUserIDs(ctx, nil) - Expect(err).To(HaveOccurred()) - Expect(err).To(MatchError("pagination is missing")) - Expect(userIds).To(BeNil()) - }) - - It("With outdated CGM summaries", func() { - var outdatedTime = time.Now().UTC().Truncate(time.Millisecond) - var cgmSummaries = []*types.Summary[*types.CGMStats, types.CGMStats]{ - test.RandomCGMSummary(userId), - test.RandomCGMSummary(userIdOther), - test.RandomCGMSummary(userIdTwo), - } - - // mark 2/3 summaries outdated - cgmSummaries[0].Dates.OutdatedSince = &outdatedTime - cgmSummaries[1].Dates.OutdatedSince = nil - cgmSummaries[2].Dates.OutdatedSince = &outdatedTime - _, err = cgmStore.CreateSummaries(ctx, cgmSummaries) - Expect(err).ToNot(HaveOccurred()) - - userIds, err = cgmStore.GetOutdatedUserIDs(ctx, page.NewPagination()) - Expect(err).ToNot(HaveOccurred()) - Expect(userIds.UserIds).To(ConsistOf([]string{userId, userIdTwo})) - }) - - It("With outdated BGM summaries", func() { - var outdatedTime = time.Now().UTC().Truncate(time.Millisecond) - var bgmSummaries = []*types.Summary[*types.BGMStats, types.BGMStats]{ - test.RandomBGMSummary(userId), - test.RandomBGMSummary(userIdOther), - test.RandomBGMSummary(userIdTwo), - } - - // mark 2/3 summaries outdated - bgmSummaries[0].Dates.OutdatedSince = nil - bgmSummaries[1].Dates.OutdatedSince = &outdatedTime - bgmSummaries[2].Dates.OutdatedSince = &outdatedTime - _, err = bgmStore.CreateSummaries(ctx, bgmSummaries) - Expect(err).ToNot(HaveOccurred()) - - userIds, err = bgmStore.GetOutdatedUserIDs(ctx, page.NewPagination()) - Expect(err).ToNot(HaveOccurred()) - Expect(userIds.UserIds).To(ConsistOf([]string{userIdOther, userIdTwo})) - }) - - It("Get outdated CGM summaries with both types present", func() { - var outdatedTime = time.Now().UTC().Truncate(time.Millisecond) - var cgmSummaries = []*types.Summary[*types.CGMStats, types.CGMStats]{ - test.RandomCGMSummary(userId), - test.RandomCGMSummary(userIdOther), - } - - var bgmSummaries = []*types.Summary[*types.BGMStats, types.BGMStats]{ - test.RandomBGMSummary(userIdTwo), - test.RandomBGMSummary(userIdThree), - } - - // mark 1 outdated per type - cgmSummaries[0].Dates.OutdatedSince = &outdatedTime - cgmSummaries[1].Dates.OutdatedSince = nil - _, err = cgmStore.CreateSummaries(ctx, cgmSummaries) - Expect(err).ToNot(HaveOccurred()) - - bgmSummaries[0].Dates.OutdatedSince = nil - bgmSummaries[1].Dates.OutdatedSince = &outdatedTime - _, err = bgmStore.CreateSummaries(ctx, bgmSummaries) - Expect(err).ToNot(HaveOccurred()) - - userIds, err = cgmStore.GetOutdatedUserIDs(ctx, page.NewPagination()) - Expect(err).ToNot(HaveOccurred()) - Expect(userIds.UserIds).To(ConsistOf([]string{userId})) - }) - - It("Get outdated BGM summaries with both types present", func() { - var outdatedTime = time.Now().UTC().Truncate(time.Millisecond) - var cgmSummaries = []*types.Summary[*types.CGMStats, types.CGMStats]{ - test.RandomCGMSummary(userId), - test.RandomCGMSummary(userIdOther), - } - - var bgmSummaries = []*types.Summary[*types.BGMStats, types.BGMStats]{ - test.RandomBGMSummary(userIdTwo), - test.RandomBGMSummary(userIdThree), - } - - // mark 1 outdated per type - cgmSummaries[0].Dates.OutdatedSince = &outdatedTime - cgmSummaries[1].Dates.OutdatedSince = nil - _, err = cgmStore.CreateSummaries(ctx, cgmSummaries) - Expect(err).ToNot(HaveOccurred()) - - bgmSummaries[0].Dates.OutdatedSince = nil - bgmSummaries[1].Dates.OutdatedSince = &outdatedTime - _, err = bgmStore.CreateSummaries(ctx, bgmSummaries) - Expect(err).ToNot(HaveOccurred()) - - userIds, err = bgmStore.GetOutdatedUserIDs(ctx, page.NewPagination()) - Expect(err).ToNot(HaveOccurred()) - Expect(userIds.UserIds).To(ConsistOf([]string{userIdThree})) - }) - - It("With a specific pagination size", func() { - var pagination = page.NewPagination() - var outdatedTime = time.Now().UTC().Truncate(time.Millisecond) - var cgmSummaries = []*types.Summary[*types.CGMStats, types.CGMStats]{ - test.RandomCGMSummary(userId), - test.RandomCGMSummary(userIdOther), - test.RandomCGMSummary(userIdTwo), - test.RandomCGMSummary(userIdThree), - } - - pagination.Size = 3 - - for i := len(cgmSummaries) - 1; i >= 0; i-- { - cgmSummaries[i].Dates.OutdatedSince = pointer.FromAny(outdatedTime.Add(-time.Duration(i) * time.Second)) - } - _, err = cgmStore.CreateSummaries(ctx, cgmSummaries) - Expect(err).ToNot(HaveOccurred()) - - userIds, err = cgmStore.GetOutdatedUserIDs(ctx, pagination) - Expect(err).ToNot(HaveOccurred()) - Expect(len(userIds.UserIds)).To(Equal(3)) - Expect(userIds.UserIds).To(ConsistOf([]string{userIdThree, userIdTwo, userIdOther})) - }) - - It("Check sort order", func() { - var outdatedTime = time.Now().UTC().Truncate(time.Millisecond) - var cgmSummaries = []*types.Summary[*types.CGMStats, types.CGMStats]{ - test.RandomCGMSummary(userId), - test.RandomCGMSummary(userIdOther), - test.RandomCGMSummary(userIdTwo), - } - - for i := 0; i < len(cgmSummaries); i++ { - cgmSummaries[i].Dates.OutdatedSince = pointer.FromAny(outdatedTime.Add(time.Duration(-i) * time.Minute)) - } - _, err = cgmStore.CreateSummaries(ctx, cgmSummaries) - Expect(err).ToNot(HaveOccurred()) - - userIds, err = cgmStore.GetOutdatedUserIDs(ctx, page.NewPagination()) - Expect(err).ToNot(HaveOccurred()) - Expect(len(userIds.UserIds)).To(Equal(3)) - - // we expect these to come back in reverse order than inserted - for i := 0; i < len(userIds.UserIds); i++ { - Expect(userIds.UserIds[i]).To(Equal(cgmSummaries[len(cgmSummaries)-i-1].UserID)) - } - }) - - It("With no outdated summaries", func() { - var pagination = page.NewPagination() - - userIds, err = cgmStore.GetOutdatedUserIDs(ctx, pagination) - Expect(err).ToNot(HaveOccurred()) - Expect(len(userIds.UserIds)).To(Equal(0)) - }) - - }) - - }) - - Context("With continuous store", func() { - var continuousStore *dataStoreSummary.Repo[*types.ContinuousStats, types.ContinuousStats] - - BeforeEach(func() { - - // we aren't testing these, but we need them for easy setup - continuousStore = dataStoreSummary.New[*types.ContinuousStats](summaryRepository) - }) - - Context("GetPatientsWithRealtimeData", func() { - - It("with some realtime users", func() { - endTime := time.Now().UTC().Truncate(time.Hour * 24) - startTime := endTime.AddDate(0, 0, -30) - userIds := make([]string, 5) - userSummaries := make([]*types.Summary[*types.ContinuousStats, types.ContinuousStats], 5) - - startingDays := 14 - - for i := 0; i < 5; i++ { - userIds[i] = userTest.RandomID() - userSummaries[i] = test.NewRealtimeSummary(userIds[i], startTime, endTime, startingDays+i) - } - - var count int - count, err = continuousStore.CreateSummaries(ctx, userSummaries) - Expect(err).ToNot(HaveOccurred()) - Expect(count).To(Equal(len(userIds))) - - // remove one userId to ensure we aren't accidentally grabbing everyone - trimmedUserIds := userIds[:len(userIds)-1] - - var list map[string]int - list, err = continuousStore.GetRealtimeDaysForUsers(ctx, trimmedUserIds, startTime, endTime) - Expect(err).ToNot(HaveOccurred()) - Expect(list).To(HaveLen(len(trimmedUserIds))) - - // make sure days match input - for i := 0; i < 4; i++ { - Expect(list[userIds[i]]).To(Equal(startingDays + i)) - } - }) - - It("with no realtime user", func() { - endTime := time.Now().UTC().Truncate(time.Hour * 24) - startTime := endTime.AddDate(0, 0, -30) - userIds := make([]string, 5) - userContinuousSummaries := make([]*types.Summary[*types.ContinuousStats, types.ContinuousStats], 5) - - for i := 0; i < 5; i++ { - userIds[i] = userTest.RandomID() - userContinuousSummaries[i] = test.NewRealtimeSummary(userIds[i], startTime, endTime, 0) - } - - var count int - count, err = continuousStore.CreateSummaries(ctx, userContinuousSummaries) - Expect(err).ToNot(HaveOccurred()) - Expect(count).To(Equal(len(userIds))) - - // remove one userId to ensure we aren't accidentally grabbing everyone - trimmedUserIds := userIds[:len(userIds)-1] - - var list map[string]int - list, err = continuousStore.GetRealtimeDaysForUsers(ctx, trimmedUserIds, startTime, endTime) - Expect(err).ToNot(HaveOccurred()) - Expect(list).To(HaveLen(len(trimmedUserIds))) - - // make sure days match input - for i := 0; i < 4; i++ { - Expect(list[userIds[i]]).To(Equal(0)) - } - }) - - It("with 60 days of buckets", func() { - endTime := time.Now().UTC().Truncate(time.Hour * 24) - startTime := endTime.AddDate(0, 0, -60) - userIds := make([]string, 5) - userContinuousSummaries := make([]*types.Summary[*types.ContinuousStats, types.ContinuousStats], 5) - - startingDays := 30 + 14 - - for i := 0; i < 5; i++ { - userIds[i] = userTest.RandomID() - userContinuousSummaries[i] = test.NewRealtimeSummary(userIds[i], startTime, endTime, startingDays+i) - } - - var count int - count, err = continuousStore.CreateSummaries(ctx, userContinuousSummaries) - Expect(err).ToNot(HaveOccurred()) - Expect(count).To(Equal(len(userIds))) - - // remove one userId to ensure we aren't accidentally grabbing everyone - trimmedUserIds := userIds[:len(userIds)-1] - - var list map[string]int - list, err = continuousStore.GetRealtimeDaysForUsers(ctx, trimmedUserIds, startTime.AddDate(0, 0, 30), endTime) - Expect(err).ToNot(HaveOccurred()) - Expect(list).To(HaveLen(len(trimmedUserIds))) - - // make sure days match input - for i := 0; i < 4; i++ { - Expect(list[userIds[i]]).To(Equal(startingDays + i - 30)) - } - }) - - }) }) }) }) diff --git a/data/summary/types/bgm.go b/data/summary/types/bgm.go index 68ad2aa24..6873413a9 100644 --- a/data/summary/types/bgm.go +++ b/data/summary/types/bgm.go @@ -467,3 +467,7 @@ func (s *BGMStats) CalculatePeriod(i int, offset bool, totalStats *BGMBucketData s.Periods[strconv.Itoa(i)+"d"] = newPeriod } } + +func (s *BGMStats) GetNumberOfDaysWithRealtimeData(_ time.Time, _ time.Time) (count int) { + return -1 +} diff --git a/data/summary/types/summary_bgm_test.go b/data/summary/types/bgm_test.go similarity index 100% rename from data/summary/types/summary_bgm_test.go rename to data/summary/types/bgm_test.go diff --git a/data/summary/types/cgm.go b/data/summary/types/cgm.go index d0dc073aa..ed62a3558 100644 --- a/data/summary/types/cgm.go +++ b/data/summary/types/cgm.go @@ -681,3 +681,7 @@ func (s *CGMStats) CalculatePeriod(i int, offset bool, totalStats *CGMBucketData } } + +func (s *CGMStats) GetNumberOfDaysWithRealtimeData(_ time.Time, _ time.Time) (count int) { + return -1 +} diff --git a/data/summary/types/summary_cgm_test.go b/data/summary/types/cgm_test.go similarity index 94% rename from data/summary/types/summary_cgm_test.go rename to data/summary/types/cgm_test.go index bea3b3811..16693918c 100644 --- a/data/summary/types/summary_cgm_test.go +++ b/data/summary/types/cgm_test.go @@ -9,7 +9,6 @@ import ( dataStoreMongo "github.com/tidepool-org/platform/data/store/mongo" "github.com/tidepool-org/platform/data/test" - "github.com/tidepool-org/platform/data/types/blood/glucose/continuous" storeStructuredMongoTest "github.com/tidepool-org/platform/store/structured/mongo/test" "go.mongodb.org/mongo-driver/mongo" @@ -56,33 +55,6 @@ func NewDataSetCGMDataAvg(startTime time.Time, hours float64, reqAvg float64) [] return dataSetData } -func NewDataSetDataRealtime(t string, startTime time.Time, hours float64, realtime bool) []*glucose.Glucose { - requiredRecords := int(hours * 2) - typ := pointer.FromAny(t) - - var dataSetData = make([]*glucose.Glucose, requiredRecords) - var glucoseValue = inTargetBloodGlucose - var deviceId = "SummaryTestDevice" - var uploadId = test.RandomSetID() - - // generate X hours of data - for count := 0; count < requiredRecords; count += 1 { - datumTime := startTime.Add(time.Duration(count-requiredRecords) * time.Minute * 30) - - datum := NewGlucose(typ, pointer.FromString(units), &datumTime, &deviceId, &uploadId) - datum.Value = pointer.FromFloat64(glucoseValue) - - if realtime { - datum.CreatedTime = pointer.FromAny(datumTime.Add(5 * time.Minute)) - datum.ModifiedTime = pointer.FromAny(datumTime.Add(10 * time.Minute)) - } - - dataSetData[count] = datum - } - - return dataSetData -} - // creates a dataset with random values evenly divided between ranges // NOTE: only generates 98.9% CGMUse, due to needing to be divisible by 5 func NewDataSetCGMDataRanges(startTime time.Time, hours float64, ranges DataRanges) []*glucose.Glucose { @@ -148,13 +120,12 @@ var _ = Describe("CGM Summary", func() { var userCGMSummary *types.Summary[*types.CGMStats, types.CGMStats] var periodKeys = []string{"1d", "7d", "14d", "30d"} var periodInts = []int{1, 7, 14, 30} - var continuousUploads = map[string]bool{} Context("AddData Bucket Testing", func() { It("Returns correct hour count when given 2 weeks", func() { userCGMSummary = types.Create[*types.CGMStats](userId) dataSetCGMData = NewDataSetCGMDataAvg(datumTime, 336, inTargetBloodGlucose) - err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMData, continuousUploads) + err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMData) Expect(err).ToNot(HaveOccurred()) Expect(len(userCGMSummary.Stats.Buckets)).To(Equal(336)) @@ -163,7 +134,7 @@ var _ = Describe("CGM Summary", func() { It("Returns correct hour count when given 1 week", func() { userCGMSummary = types.Create[*types.CGMStats](userId) dataSetCGMData = NewDataSetCGMDataAvg(datumTime, 168, inTargetBloodGlucose) - err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMData, continuousUploads) + err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMData) Expect(err).ToNot(HaveOccurred()) Expect(len(userCGMSummary.Stats.Buckets)).To(Equal(168)) @@ -172,7 +143,7 @@ var _ = Describe("CGM Summary", func() { It("Returns correct hour count when given 3 weeks", func() { userCGMSummary = types.Create[*types.CGMStats](userId) dataSetCGMData = NewDataSetCGMDataAvg(datumTime, 504, inTargetBloodGlucose) - err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMData, continuousUploads) + err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMData) Expect(err).ToNot(HaveOccurred()) Expect(len(userCGMSummary.Stats.Buckets)).To(Equal(504)) @@ -190,7 +161,7 @@ var _ = Describe("CGM Summary", func() { doubledCGMData[i*2] = dataSetCGMData[i] doubledCGMData[i*2+1] = dataSetCGMDataTwo[i] } - err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMData, continuousUploads) + err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMData) Expect(err).ToNot(HaveOccurred()) Expect(len(userCGMSummary.Stats.Buckets)).To(Equal(24)) @@ -201,11 +172,11 @@ var _ = Describe("CGM Summary", func() { userCGMSummary = types.Create[*types.CGMStats](userId) dataSetCGMData = NewDataSetCGMDataAvg(datumTime, 24, inTargetBloodGlucose) - err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMData, continuousUploads) + err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMData) Expect(err).ToNot(HaveOccurred()) dataSetCGMData = NewDataSetCGMDataAvg(datumTime.Add(15*time.Second), 24, inTargetBloodGlucose) - err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMData, continuousUploads) + err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMData) Expect(err).ToNot(HaveOccurred()) @@ -217,19 +188,19 @@ var _ = Describe("CGM Summary", func() { userCGMSummary = types.Create[*types.CGMStats](userId) dataSetCGMData = NewDataSetCGMDataRanges(datumTime, 5, NewDataRangesSingle(lowBloodGlucose-0.5)) - err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMData, continuousUploads) + err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMData) Expect(err).ToNot(HaveOccurred()) Expect(userCGMSummary.Stats.Buckets[0].Data.LowRecords).To(Equal(10)) dataSetCGMData = NewDataSetCGMDataRanges(datumTime.Add(1*time.Hour), 1, NewDataRangesSingle(highBloodGlucose+0.5)) - err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMData, continuousUploads) + err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMData) Expect(err).ToNot(HaveOccurred()) Expect(userCGMSummary.Stats.Buckets[0].Data.LowRecords).To(Equal(10)) dataSetCGMData = NewDataSetCGMDataRanges(datumTime.Add(24*60*time.Hour), 1, NewDataRangesSingle(inTargetBloodGlucose-0.5)) - err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMData, continuousUploads) + err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMData) Expect(err).ToNot(HaveOccurred()) Expect(userCGMSummary.Stats.Buckets[0].Data.HighRecords).To(Equal(10)) @@ -243,11 +214,11 @@ var _ = Describe("CGM Summary", func() { userCGMSummary = types.Create[*types.CGMStats](userId) dataSetCGMData = NewDataSetCGMDataRanges(datumTime, 1, NewDataRangesSingle(lowBloodGlucose-0.5)) - err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMData, continuousUploads) + err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMData) Expect(err).ToNot(HaveOccurred()) dataSetCGMData = NewDataSetCGMDataRanges(datumTime.Add(24*62*time.Hour), 1, NewDataRangesSingle(inTargetBloodGlucose-0.5)) - err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMData, continuousUploads) + err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMData) Expect(err).ToNot(HaveOccurred()) for i := 0; i < len(userCGMSummary.Stats.Buckets); i++ { @@ -265,7 +236,7 @@ var _ = Describe("CGM Summary", func() { userCGMSummary = types.Create[*types.CGMStats](userId) dataSetCGMData = NewDataSetCGMDataAvg(datumTime, 168, inTargetBloodGlucose) - err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMData, continuousUploads) + err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMData) Expect(err).ToNot(HaveOccurred()) Expect(len(userCGMSummary.Stats.Buckets)).To(Equal(168)) @@ -280,7 +251,7 @@ var _ = Describe("CGM Summary", func() { } dataSetCGMData = NewDataSetCGMDataAvg(secondDatumTime, 168, secondRequestedAvgGlucose) - err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMData, continuousUploads) + err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMData) Expect(err).ToNot(HaveOccurred()) Expect(len(userCGMSummary.Stats.Buckets)).To(Equal(528)) // 22 days @@ -308,7 +279,7 @@ var _ = Describe("CGM Summary", func() { userCGMSummary = types.Create[*types.CGMStats](userId) dataSetCGMData = NewDataSetCGMDataAvg(datumTime, 144, inTargetBloodGlucose) - err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMData, continuousUploads) + err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMData) Expect(err).ToNot(HaveOccurred()) Expect(len(userCGMSummary.Stats.Buckets)).To(Equal(144)) @@ -317,7 +288,7 @@ var _ = Describe("CGM Summary", func() { incrementalDatumTime = datumTime.Add(time.Duration(i) * time.Hour) dataSetCGMData = NewDataSetCGMDataAvg(incrementalDatumTime, 1, float64(i)) - err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMData, continuousUploads) + err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMData) Expect(err).ToNot(HaveOccurred()) Expect(len(userCGMSummary.Stats.Buckets)).To(Equal(144 + i)) @@ -351,7 +322,7 @@ var _ = Describe("CGM Summary", func() { dataSetCGMData = append(dataSetCGMDataOne, dataSetCGMDataTwo...) dataSetCGMData = append(dataSetCGMData, dataSetCGMDataThree...) - err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMData, continuousUploads) + err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMData) Expect(err).ToNot(HaveOccurred()) Expect(len(userCGMSummary.Stats.Buckets)).To(Equal(72)) @@ -386,15 +357,15 @@ var _ = Describe("CGM Summary", func() { dataSetCGMDataFive := NewDataSetCGMDataRanges(datumTime, 1, veryHighRange) // we do this a different way (multiple calls) than the last unit test for extra pattern coverage - err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMDataOne, continuousUploads) + err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMDataOne) Expect(err).ToNot(HaveOccurred()) - err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMDataTwo, continuousUploads) + err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMDataTwo) Expect(err).ToNot(HaveOccurred()) - err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMDataThree, continuousUploads) + err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMDataThree) Expect(err).ToNot(HaveOccurred()) - err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMDataFour, continuousUploads) + err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMDataFour) Expect(err).ToNot(HaveOccurred()) - err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMDataFive, continuousUploads) + err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMDataFive) Expect(err).ToNot(HaveOccurred()) Expect(len(userCGMSummary.Stats.Buckets)).To(Equal(5)) @@ -491,13 +462,13 @@ var _ = Describe("CGM Summary", func() { dataSetCGMDataTwo := NewDataSetCGMDataAvg(datumTime.AddDate(0, 0, -1), 24, inTargetBloodGlucose+1) dataSetCGMDataThree := NewDataSetCGMDataAvg(datumTime, 24, inTargetBloodGlucose+2) - err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMDataThree, continuousUploads) + err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMDataThree) Expect(err).ToNot(HaveOccurred()) - err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMDataTwo, continuousUploads) + err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMDataTwo) Expect(err).ToNot(HaveOccurred()) - err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMDataOne, continuousUploads) + err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMDataOne) Expect(err).ToNot(HaveOccurred()) Expect(len(userCGMSummary.Stats.Buckets)).To(Equal(72)) @@ -514,81 +485,6 @@ var _ = Describe("CGM Summary", func() { Expect(userCGMSummary.Stats.Buckets[i].Data.TotalGlucose).To(BeNumerically("~", expectedTotalGlucose, 0.001)) } }) - - It("Returns correct Realtime and Deferred record stats with realtime data", func() { - userCGMSummary = types.Create[*types.CGMStats](userId) - realtimeDatumTime := time.Now().UTC().Truncate(time.Hour) - dataSetCGMData = NewDataSetDataRealtime(continuous.Type, realtimeDatumTime, 10, true) - - // flag upload as continuous - continuousUploads[*dataSetCGMData[0].UploadID] = true - - err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMData, continuousUploads) - - Expect(err).ToNot(HaveOccurred()) - Expect(len(userCGMSummary.Stats.Buckets)).To(Equal(10)) - - for i := 0; i < len(userCGMSummary.Stats.Buckets); i++ { - Expect(userCGMSummary.Stats.Buckets[i].Data.RealtimeRecords).To(Equal(2)) - Expect(userCGMSummary.Stats.Buckets[i].Data.DeferredRecords).To(Equal(0)) - } - }) - - It("Returns correct Realtime and Deferred record stats with deferred data", func() { - userCGMSummary = types.Create[*types.CGMStats](userId) - - // by default non-realtime datums will be made with time.now createdTime, so we generate 2 day old data - deferredDatumTime := time.Now().UTC().Truncate(time.Hour).AddDate(0, 0, -2) - dataSetCGMData = NewDataSetDataRealtime(continuous.Type, deferredDatumTime, 10, false) - - // flag upload as continuous - continuousUploads[*dataSetCGMData[0].UploadID] = true - - err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMData, continuousUploads) - - Expect(err).ToNot(HaveOccurred()) - Expect(len(userCGMSummary.Stats.Buckets)).To(Equal(10)) - - for i := 0; i < len(userCGMSummary.Stats.Buckets); i++ { - Expect(userCGMSummary.Stats.Buckets[i].Data.RealtimeRecords).To(Equal(0)) - Expect(userCGMSummary.Stats.Buckets[i].Data.DeferredRecords).To(Equal(2)) - } - }) - - It("Returns correct Realtime and Deferred record stats with false continuous flagged data", func() { - userCGMSummary = types.Create[*types.CGMStats](userId) - realtimeDatumTime := time.Now().UTC().Truncate(time.Hour) - dataSetCGMData = NewDataSetDataRealtime(continuous.Type, realtimeDatumTime, 10, true) - - // flag upload as not continuous - continuousUploads[*dataSetCGMData[0].UploadID] = false - - err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMData, continuousUploads) - - Expect(err).ToNot(HaveOccurred()) - Expect(len(userCGMSummary.Stats.Buckets)).To(Equal(10)) - - for i := 0; i < len(userCGMSummary.Stats.Buckets); i++ { - Expect(userCGMSummary.Stats.Buckets[i].Data.RealtimeRecords).To(Equal(0)) - Expect(userCGMSummary.Stats.Buckets[i].Data.DeferredRecords).To(Equal(0)) - } - }) - - It("Returns correct Realtime and Deferred record stats with non flagged data", func() { - userCGMSummary = types.Create[*types.CGMStats](userId) - realtimeDatumTime := time.Now().UTC().Truncate(time.Hour) - dataSetCGMData = NewDataSetDataRealtime(continuous.Type, realtimeDatumTime, 10, true) - - err = types.AddData(&userCGMSummary.Stats.Buckets, dataSetCGMData, continuousUploads) - - Expect(err).ToNot(HaveOccurred()) - Expect(len(userCGMSummary.Stats.Buckets)).To(Equal(10)) - - for i := 0; i < len(userCGMSummary.Stats.Buckets); i++ { - Expect(userCGMSummary.Stats.Buckets[i].Data.RealtimeRecords).To(Equal(0)) - Expect(userCGMSummary.Stats.Buckets[i].Data.DeferredRecords).To(Equal(0)) - } - }) }) Context("CalculateDelta", func() { diff --git a/data/summary/types/continuous.go b/data/summary/types/continuous.go index cab01cb4c..37c818710 100644 --- a/data/summary/types/continuous.go +++ b/data/summary/types/continuous.go @@ -211,3 +211,28 @@ func (s *ContinuousStats) CalculatePeriod(i int, totalStats *ContinuousBucketDat s.Periods[strconv.Itoa(i)+"d"] = newPeriod } + +func (s *ContinuousStats) GetNumberOfDaysWithRealtimeData(startTime time.Time, endTime time.Time) (count int) { + + startOffset := int(startTime.Sub(s.Buckets[0].Date).Hours()) + // cap to start of list + if startOffset < 0 { + startOffset = 0 + } + + endOffset := int(endTime.Sub(s.Buckets[0].Date).Hours()) + // cap to end of list + if endOffset > len(s.Buckets) { + endOffset = len(s.Buckets) + } + + for i := startOffset; i < endOffset; i++ { + if s.Buckets[i].Data.RealtimeRecords > 0 { + count += 1 + i += 23 - s.Buckets[i].Date.Hour() + continue + } + } + + return count +} diff --git a/data/summary/types/continuous_test.go b/data/summary/types/continuous_test.go new file mode 100644 index 000000000..8de49ec3e --- /dev/null +++ b/data/summary/types/continuous_test.go @@ -0,0 +1,403 @@ +package types_test + +import ( + "context" + "fmt" + "time" + + dataStoreMongo "github.com/tidepool-org/platform/data/store/mongo" + "github.com/tidepool-org/platform/data/test" + storeStructuredMongoTest "github.com/tidepool-org/platform/store/structured/mongo/test" + + "go.mongodb.org/mongo-driver/mongo" + + "github.com/tidepool-org/platform/log" + logTest "github.com/tidepool-org/platform/log/test" + + userTest "github.com/tidepool-org/platform/user/test" + + . "github.com/onsi/ginkgo/v2" + . "github.com/onsi/gomega" + + "github.com/tidepool-org/platform/data/summary/types" + + "github.com/tidepool-org/platform/data/types/blood/glucose" + + "github.com/tidepool-org/platform/pointer" +) + +func NewDataSetDataRealtime(t string, startTime time.Time, hours float64, realtime bool) []*glucose.Glucose { + requiredRecords := int(hours * 2) + typ := pointer.FromAny(t) + + var dataSetData = make([]*glucose.Glucose, requiredRecords) + var glucoseValue = inTargetBloodGlucose + var deviceId = "SummaryTestDevice" + var uploadId = test.RandomSetID() + + // generate X hours of data + for count := 0; count < requiredRecords; count += 1 { + datumTime := startTime.Add(time.Duration(count-requiredRecords) * time.Minute * 30) + + datum := NewGlucose(typ, pointer.FromString(units), &datumTime, &deviceId, &uploadId) + datum.Value = pointer.FromFloat64(glucoseValue) + + if realtime { + datum.CreatedTime = pointer.FromAny(datumTime.Add(5 * time.Minute)) + datum.ModifiedTime = pointer.FromAny(datumTime.Add(10 * time.Minute)) + } + + dataSetData[count] = datum + } + + return dataSetData +} + +var _ = Describe("Continuous Summary", func() { + var userId string + var datumTime time.Time + var logger log.Logger + var ctx context.Context + var err error + var dataSetCGMData []*glucose.Glucose + + BeforeEach(func() { + logger = logTest.NewLogger() + ctx = log.NewContextWithLogger(context.Background(), logger) + userId = userTest.RandomID() + datumTime = time.Date(2016, time.Month(1), 1, 0, 0, 0, 0, time.UTC) + }) + + Context("Create Summary", func() { + It("Correctly initializes a summary", func() { + summary := types.Create[*types.ContinuousStats](userId) + Expect(summary).ToNot(BeNil()) + Expect(summary.Type).To(Equal("continuous")) + + Expect(summary.UserID).To(Equal(userId)) + Expect(summary.Dates.LastUpdatedDate.IsZero()).To(BeTrue()) + }) + }) + + Context("Summary calculations requiring datasets", func() { + var userContinuousSummary *types.Summary[*types.ContinuousStats, types.ContinuousStats] + + Context("AddData Bucket Testing", func() { + It("Returns correct hour count when given 2 weeks", func() { + userContinuousSummary = types.Create[*types.ContinuousStats](userId) + dataSetCGMData = NewDataSetCGMDataAvg(datumTime, 336, inTargetBloodGlucose) + err = types.AddData(&userContinuousSummary.Stats.Buckets, dataSetCGMData) + + Expect(err).ToNot(HaveOccurred()) + Expect(len(userContinuousSummary.Stats.Buckets)).To(Equal(336)) + }) + + It("Returns correct hour count when given 1 week", func() { + userContinuousSummary = types.Create[*types.ContinuousStats](userId) + dataSetCGMData = NewDataSetCGMDataAvg(datumTime, 168, inTargetBloodGlucose) + err = types.AddData(&userContinuousSummary.Stats.Buckets, dataSetCGMData) + + Expect(err).ToNot(HaveOccurred()) + Expect(len(userContinuousSummary.Stats.Buckets)).To(Equal(168)) + }) + + It("Returns correct hour count when given 3 weeks", func() { + userContinuousSummary = types.Create[*types.ContinuousStats](userId) + dataSetCGMData = NewDataSetCGMDataAvg(datumTime, 504, inTargetBloodGlucose) + err = types.AddData(&userContinuousSummary.Stats.Buckets, dataSetCGMData) + + Expect(err).ToNot(HaveOccurred()) + Expect(len(userContinuousSummary.Stats.Buckets)).To(Equal(504)) + }) + + It("Returns correct records when given >60d of data", func() { + userContinuousSummary = types.Create[*types.ContinuousStats](userId) + + dataSetCGMData = NewDataSetCGMDataRanges(datumTime, 5, NewDataRangesSingle(lowBloodGlucose-0.5)) + err = types.AddData(&userContinuousSummary.Stats.Buckets, dataSetCGMData) + + Expect(err).ToNot(HaveOccurred()) + Expect(userContinuousSummary.Stats.Buckets[0].Data.LowRecords).To(Equal(10)) + + dataSetCGMData = NewDataSetCGMDataRanges(datumTime.Add(1*time.Hour), 1, NewDataRangesSingle(highBloodGlucose+0.5)) + err = types.AddData(&userContinuousSummary.Stats.Buckets, dataSetCGMData) + + Expect(err).ToNot(HaveOccurred()) + Expect(userContinuousSummary.Stats.Buckets[0].Data.LowRecords).To(Equal(10)) + + dataSetCGMData = NewDataSetCGMDataRanges(datumTime.Add(24*60*time.Hour), 1, NewDataRangesSingle(inTargetBloodGlucose-0.5)) + err = types.AddData(&userContinuousSummary.Stats.Buckets, dataSetCGMData) + Expect(err).ToNot(HaveOccurred()) + Expect(userContinuousSummary.Stats.Buckets[0].Data.HighRecords).To(Equal(10)) + + for i := 0; i < len(userContinuousSummary.Stats.Buckets); i++ { + Expect(userContinuousSummary.Stats.Buckets[i]).ToNot(BeNil()) + } + Expect(len(userContinuousSummary.Stats.Buckets)).To(Equal(1440)) + }) + + It("Returns correct records when given data a full 60d ahead of previous data", func() { + userContinuousSummary = types.Create[*types.ContinuousStats](userId) + + dataSetCGMData = NewDataSetCGMDataRanges(datumTime, 1, NewDataRangesSingle(lowBloodGlucose-0.5)) + err = types.AddData(&userContinuousSummary.Stats.Buckets, dataSetCGMData) + Expect(err).ToNot(HaveOccurred()) + + dataSetCGMData = NewDataSetCGMDataRanges(datumTime.Add(24*62*time.Hour), 1, NewDataRangesSingle(inTargetBloodGlucose-0.5)) + err = types.AddData(&userContinuousSummary.Stats.Buckets, dataSetCGMData) + Expect(err).ToNot(HaveOccurred()) + + for i := 0; i < len(userContinuousSummary.Stats.Buckets); i++ { + Expect(userContinuousSummary.Stats.Buckets[i]).ToNot(BeNil()) + } + Expect(len(userContinuousSummary.Stats.Buckets)).To(Equal(1)) + }) + + It("Returns correct stats when given 1 week, then 1 week more than 2 weeks ahead", func() { + var lastRecordTime time.Time + var hourlyStatsLen int + var newHourlyStatsLen int + secondDatumTime := datumTime.AddDate(0, 0, 15) + secondRequestedAvgGlucose := lowBloodGlucose + userContinuousSummary = types.Create[*types.ContinuousStats](userId) + + dataSetCGMData = NewDataSetCGMDataAvg(datumTime, 168, inTargetBloodGlucose) + err = types.AddData(&userContinuousSummary.Stats.Buckets, dataSetCGMData) + + Expect(err).ToNot(HaveOccurred()) + Expect(len(userContinuousSummary.Stats.Buckets)).To(Equal(168)) + + By("check total glucose and dates for first batch") + hourlyStatsLen = len(userContinuousSummary.Stats.Buckets) + for i := hourlyStatsLen - 1; i >= 0; i-- { + Expect(userContinuousSummary.Stats.Buckets[i].Data.TotalGlucose).To(BeNumerically("~", inTargetBloodGlucose*12*5, 0.001)) + + lastRecordTime = datumTime.Add(-time.Hour*time.Duration(hourlyStatsLen-i-1) - 5*time.Minute) + Expect(userContinuousSummary.Stats.Buckets[i].LastRecordTime).To(Equal(lastRecordTime)) + } + + dataSetCGMData = NewDataSetCGMDataAvg(secondDatumTime, 168, secondRequestedAvgGlucose) + err = types.AddData(&userContinuousSummary.Stats.Buckets, dataSetCGMData) + + Expect(err).ToNot(HaveOccurred()) + Expect(len(userContinuousSummary.Stats.Buckets)).To(Equal(528)) // 22 days + + By("check total glucose and dates for second batch") + newHourlyStatsLen = len(userContinuousSummary.Stats.Buckets) + expectedNewHourlyStatsLenStart := newHourlyStatsLen - len(dataSetCGMData)/12 // 12 per day, need length without the gap + for i := newHourlyStatsLen - 1; i >= expectedNewHourlyStatsLenStart; i-- { + Expect(userContinuousSummary.Stats.Buckets[i].Data.TotalGlucose).To(BeNumerically("~", secondRequestedAvgGlucose*12*5)) + + lastRecordTime = secondDatumTime.Add(-time.Hour*time.Duration(newHourlyStatsLen-i-1) - 5*time.Minute) + Expect(userContinuousSummary.Stats.Buckets[i].LastRecordTime).To(Equal(lastRecordTime)) + } + + By("check total glucose and dates for gap") + expectedGapEnd := newHourlyStatsLen - expectedNewHourlyStatsLenStart + for i := hourlyStatsLen; i <= expectedGapEnd; i++ { + Expect(userContinuousSummary.Stats.Buckets[i].Data.TotalGlucose).To(Equal(float64(0))) + } + }) + + It("Returns correct stats when given multiple batches in a day", func() { + var incrementalDatumTime time.Time + var lastRecordTime time.Time + userContinuousSummary = types.Create[*types.ContinuousStats](userId) + + dataSetCGMData = NewDataSetCGMDataAvg(datumTime, 144, inTargetBloodGlucose) + err = types.AddData(&userContinuousSummary.Stats.Buckets, dataSetCGMData) + + Expect(err).ToNot(HaveOccurred()) + Expect(len(userContinuousSummary.Stats.Buckets)).To(Equal(144)) + + for i := 1; i <= 24; i++ { + incrementalDatumTime = datumTime.Add(time.Duration(i) * time.Hour) + dataSetCGMData = NewDataSetCGMDataAvg(incrementalDatumTime, 1, float64(i)) + + err = types.AddData(&userContinuousSummary.Stats.Buckets, dataSetCGMData) + + Expect(err).ToNot(HaveOccurred()) + Expect(len(userContinuousSummary.Stats.Buckets)).To(Equal(144 + i)) + Expect(userContinuousSummary.Stats.Buckets[i].Data.TotalRecords).To(Equal(12)) + } + + for i := 144; i < len(userContinuousSummary.Stats.Buckets); i++ { + f := fmt.Sprintf("hour %d", i) + By(f) + Expect(userContinuousSummary.Stats.Buckets[i].Data.TotalRecords).To(Equal(12)) + Expect(userContinuousSummary.Stats.Buckets[i].Data.TotalMinutes).To(Equal(60)) + + lastRecordTime = datumTime.Add(time.Hour*time.Duration(i-143) - time.Minute*5) + Expect(userContinuousSummary.Stats.Buckets[i].LastRecordTime).To(Equal(lastRecordTime)) + Expect(userContinuousSummary.Stats.Buckets[i].Data.TotalGlucose).To(BeNumerically("~", float64((i-143)*12*5), 0.001)) + + averageGlucoseMmol := userContinuousSummary.Stats.Buckets[i].Data.TotalGlucose / float64(userContinuousSummary.Stats.Buckets[i].Data.TotalMinutes) + Expect(averageGlucoseMmol).To(BeNumerically("~", i-143)) + } + }) + + It("Returns correct hourly stats for days uploaded in reverse", func() { + var lastRecordTime time.Time + userContinuousSummary = types.Create[*types.ContinuousStats](userId) + + // Datasets use +1 and +2 offset to allow for checking via iteration + dataSetCGMDataOne := NewDataSetCGMDataAvg(datumTime.AddDate(0, 0, -2), 24, inTargetBloodGlucose) + dataSetCGMDataTwo := NewDataSetCGMDataAvg(datumTime.AddDate(0, 0, -1), 24, inTargetBloodGlucose+1) + dataSetCGMDataThree := NewDataSetCGMDataAvg(datumTime, 24, inTargetBloodGlucose+2) + + err = types.AddData(&userContinuousSummary.Stats.Buckets, dataSetCGMDataThree) + Expect(err).ToNot(HaveOccurred()) + + err = types.AddData(&userContinuousSummary.Stats.Buckets, dataSetCGMDataTwo) + Expect(err).ToNot(HaveOccurred()) + + err = types.AddData(&userContinuousSummary.Stats.Buckets, dataSetCGMDataOne) + Expect(err).ToNot(HaveOccurred()) + + Expect(len(userContinuousSummary.Stats.Buckets)).To(Equal(72)) + + for i := len(userContinuousSummary.Stats.Buckets) - 1; i >= 0; i-- { + By(fmt.Sprintf("hour %d", i+1)) + Expect(userContinuousSummary.Stats.Buckets[i].Data.TotalRecords).To(Equal(12)) + Expect(userContinuousSummary.Stats.Buckets[i].Data.TotalMinutes).To(Equal(60)) + + lastRecordTime = datumTime.Add(-time.Hour*time.Duration(len(userContinuousSummary.Stats.Buckets)-i-1) - 5*time.Minute) + Expect(userContinuousSummary.Stats.Buckets[i].LastRecordTime).To(Equal(lastRecordTime)) + } + }) + }) + + Context("ClearInvalidatedBuckets", func() { + var dataStore types.DeviceDataFetcher + + BeforeEach(func() { + config := storeStructuredMongoTest.NewConfig() + store, err := dataStoreMongo.NewStore(config) + Expect(err).ToNot(HaveOccurred()) + dataStore = store.NewDataRepository() + }) + + It("trims the correct buckets", func() { + var dataSetCGMDataCursor types.DeviceDataCursor + userContinuousSummary = types.Create[*types.ContinuousStats](userId) + dataSetCGMData = NewDataSetCGMDataAvg(datumTime, 10, inTargetBloodGlucose) + dataSetCGMDataCursor, err = mongo.NewCursorFromDocuments(ConvertToIntArray(dataSetCGMData), nil, nil) + + err = userContinuousSummary.Stats.Update(ctx, dataSetCGMDataCursor, dataStore) + Expect(err).ToNot(HaveOccurred()) + Expect(len(userContinuousSummary.Stats.Buckets)).To(Equal(10)) + Expect(userContinuousSummary.Stats.TotalHours).To(Equal(10)) + + firstData := userContinuousSummary.Stats.ClearInvalidatedBuckets(datumTime.Add(-5 * time.Hour)) + + // we have the right length + Expect(len(userContinuousSummary.Stats.Buckets)).To(Equal(5)) + + // we didn't overshoot and nil something we shouldn't have + Expect(userContinuousSummary.Stats.Buckets[len(userContinuousSummary.Stats.Buckets)-1]).ToNot(BeNil()) + + Expect(firstData).To(Equal(userContinuousSummary.Stats.Buckets[len(userContinuousSummary.Stats.Buckets)-1].LastRecordTime)) + }) + + It("trims the all buckets with data beyond the beginning of the buckets", func() { + var dataSetCGMDataCursor types.DeviceDataCursor + userContinuousSummary = types.Create[*types.ContinuousStats](userId) + dataSetCGMData = NewDataSetCGMDataAvg(datumTime, 10, inTargetBloodGlucose) + dataSetCGMDataCursor, err = mongo.NewCursorFromDocuments(ConvertToIntArray(dataSetCGMData), nil, nil) + + err = userContinuousSummary.Stats.Update(ctx, dataSetCGMDataCursor, dataStore) + Expect(err).ToNot(HaveOccurred()) + Expect(len(userContinuousSummary.Stats.Buckets)).To(Equal(10)) + Expect(userContinuousSummary.Stats.TotalHours).To(Equal(10)) + + firstData := userContinuousSummary.Stats.ClearInvalidatedBuckets(datumTime.Add(-15 * time.Hour)) + + // we have the right length + Expect(len(userContinuousSummary.Stats.Buckets)).To(Equal(0)) + + Expect(firstData.IsZero()).To(BeTrue()) + }) + + It("doesnt trim if only modified in the future", func() { + var dataSetCGMDataCursor types.DeviceDataCursor + userContinuousSummary = types.Create[*types.ContinuousStats](userId) + dataSetCGMData = NewDataSetCGMDataAvg(datumTime, 10, inTargetBloodGlucose) + dataSetCGMDataCursor, err = mongo.NewCursorFromDocuments(ConvertToIntArray(dataSetCGMData), nil, nil) + + err = userContinuousSummary.Stats.Update(ctx, dataSetCGMDataCursor, dataStore) + Expect(err).ToNot(HaveOccurred()) + Expect(len(userContinuousSummary.Stats.Buckets)).To(Equal(10)) + Expect(userContinuousSummary.Stats.TotalHours).To(Equal(10)) + + firstData := userContinuousSummary.Stats.ClearInvalidatedBuckets(datumTime.Add(time.Hour)) + + // we have the right length + Expect(len(userContinuousSummary.Stats.Buckets)).To(Equal(10)) + + // we didn't overshoot and nil something we shouldn't have + Expect(userContinuousSummary.Stats.Buckets[len(userContinuousSummary.Stats.Buckets)-1]).ToNot(BeNil()) + + Expect(firstData).To(Equal(userContinuousSummary.Stats.Buckets[len(userContinuousSummary.Stats.Buckets)-1].LastRecordTime)) + }) + + It("doesnt trim if only modified on the same hour, but after the bucket time", func() { + var dataSetCGMDataCursor types.DeviceDataCursor + userContinuousSummary = types.Create[*types.ContinuousStats](userId) + midDatumTime := datumTime.Add(30 * time.Minute) + dataSetCGMData = NewDataSetCGMDataAvg(midDatumTime, 9, inTargetBloodGlucose) + dataSetCGMDataCursor, err = mongo.NewCursorFromDocuments(ConvertToIntArray(dataSetCGMData), nil, nil) + + err = userContinuousSummary.Stats.Update(ctx, dataSetCGMDataCursor, dataStore) + Expect(err).ToNot(HaveOccurred()) + Expect(len(userContinuousSummary.Stats.Buckets)).To(Equal(10)) + Expect(userContinuousSummary.Stats.TotalHours).To(Equal(10)) + + firstData := userContinuousSummary.Stats.ClearInvalidatedBuckets(midDatumTime.Add(10 * time.Minute)) + + // we have the right length + Expect(len(userContinuousSummary.Stats.Buckets)).To(Equal(10)) + + // we didn't overshoot and nil something we shouldn't have + Expect(userContinuousSummary.Stats.Buckets[len(userContinuousSummary.Stats.Buckets)-1]).ToNot(BeNil()) + + Expect(firstData).To(Equal(userContinuousSummary.Stats.Buckets[len(userContinuousSummary.Stats.Buckets)-1].LastRecordTime)) + }) + + It("trims if modified on the same hour, and before the bucket time", func() { + var dataSetCGMDataCursor types.DeviceDataCursor + userContinuousSummary = types.Create[*types.ContinuousStats](userId) + midDatumTime := datumTime.Add(30 * time.Minute) + dataSetCGMData = NewDataSetCGMDataAvg(midDatumTime, 9, inTargetBloodGlucose) + dataSetCGMDataCursor, err = mongo.NewCursorFromDocuments(ConvertToIntArray(dataSetCGMData), nil, nil) + + err = userContinuousSummary.Stats.Update(ctx, dataSetCGMDataCursor, dataStore) + Expect(err).ToNot(HaveOccurred()) + Expect(len(userContinuousSummary.Stats.Buckets)).To(Equal(10)) + Expect(userContinuousSummary.Stats.TotalHours).To(Equal(10)) + + firstData := userContinuousSummary.Stats.ClearInvalidatedBuckets(midDatumTime.Add(-10 * time.Minute)) + + // we have the right length + Expect(len(userContinuousSummary.Stats.Buckets)).To(Equal(9)) + + // we didn't overshoot and nil something we shouldn't have + Expect(userContinuousSummary.Stats.Buckets[len(userContinuousSummary.Stats.Buckets)-1]).ToNot(BeNil()) + + Expect(firstData).To(Equal(userContinuousSummary.Stats.Buckets[len(userContinuousSummary.Stats.Buckets)-1].LastRecordTime)) + }) + + It("successfully does nothing if there are no buckets", func() { + userContinuousSummary = types.Create[*types.ContinuousStats](userId) + Expect(len(userContinuousSummary.Stats.Buckets)).To(Equal(0)) + Expect(userContinuousSummary.Stats.TotalHours).To(Equal(0)) + + firstData := userContinuousSummary.Stats.ClearInvalidatedBuckets(datumTime) + + // we have the right length + Expect(len(userContinuousSummary.Stats.Buckets)).To(Equal(0)) + + Expect(firstData.IsZero()).To(BeTrue()) + }) + }) + }) +}) diff --git a/data/summary/types/summary.go b/data/summary/types/summary.go index dc8355acd..02e178193 100644 --- a/data/summary/types/summary.go +++ b/data/summary/types/summary.go @@ -169,6 +169,7 @@ type StatsPt[T Stats] interface { GetBucketDate(int) time.Time Update(context.Context, DeviceDataCursor, DeviceDataFetcher) error ClearInvalidatedBuckets(earliestModified time.Time) time.Time + GetNumberOfDaysWithRealtimeData(startTime time.Time, endTime time.Time) (count int) } type Summary[A StatsPt[T], T Stats] struct { From 9063d9e21ef75bbb40696884a81956ebcb7a3fb2 Mon Sep 17 00:00:00 2001 From: Alexander Diana Date: Tue, 2 Apr 2024 03:30:08 +0000 Subject: [PATCH 16/34] finish continuous type split, add more unit tests, move API code --- clinics/mock.go | 8 +- clinics/service.go | 16 +- data/data.go | 3 +- data/service/api/v1/summary.go | 80 +----- .../api/v1/users_datasets_create_test.go | 2 + data/service/context.go | 1 + data/service/context/standard.go | 11 + data/store/mongo/mongo_datum.go | 12 +- data/store/mongo/mongo_test.go | 58 ++-- data/store/store.go | 4 +- data/store/test/data_repository.go | 10 +- data/summary/api.go | 46 ++++ data/summary/store/store.go | 46 ---- data/summary/store/store_test.go | 114 +------- data/summary/summary.go | 128 ++++++++- data/summary/summary_test.go | 16 +- data/summary/types/bgm.go | 4 - data/summary/types/bgm_test.go | 110 ++------ data/summary/types/cgm.go | 4 - data/summary/types/continuous_test.go | 250 +++++------------- data/summary/types/summary.go | 7 +- 21 files changed, 338 insertions(+), 592 deletions(-) create mode 100644 data/summary/api.go diff --git a/clinics/mock.go b/clinics/mock.go index 5a64bb6b4..080f4d76e 100644 --- a/clinics/mock.go +++ b/clinics/mock.go @@ -51,18 +51,18 @@ func (mr *MockClientMockRecorder) GetClinician(ctx, clinicID, clinicianID interf } // GetPatients mocks base method. -func (m *MockClient) GetPatients(ctx context.Context, clinicId, userToken string) ([]api.Patient, error) { +func (m *MockClient) GetPatients(ctx context.Context, clinicId, userToken string, params *api.ListPatientsParams) ([]api.Patient, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetPatients", ctx, clinicId, userToken) + ret := m.ctrl.Call(m, "GetPatients", ctx, clinicId, userToken, params) ret0, _ := ret[0].([]api.Patient) ret1, _ := ret[1].(error) return ret0, ret1 } // GetPatients indicates an expected call of GetPatients. -func (mr *MockClientMockRecorder) GetPatients(ctx, clinicId, userToken interface{}) *gomock.Call { +func (mr *MockClientMockRecorder) GetPatients(ctx, clinicId, userToken, params interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetPatients", reflect.TypeOf((*MockClient)(nil).GetPatients), ctx, clinicId, userToken) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetPatients", reflect.TypeOf((*MockClient)(nil).GetPatients), ctx, clinicId, userToken, params) } // ListEHREnabledClinics mocks base method. diff --git a/clinics/service.go b/clinics/service.go index ef44a4688..1592dbb80 100644 --- a/clinics/service.go +++ b/clinics/service.go @@ -26,7 +26,7 @@ type Client interface { SharePatientAccount(ctx context.Context, clinicID, patientID string) (*clinic.Patient, error) ListEHREnabledClinics(ctx context.Context) ([]clinic.Clinic, error) SyncEHRData(ctx context.Context, clinicID string) error - GetPatients(ctx context.Context, clinicId string, userToken string) ([]clinic.Patient, error) + GetPatients(ctx context.Context, clinicId string, userToken string, params *clinic.ListPatientsParams) ([]clinic.Patient, error) } type config struct { @@ -53,7 +53,11 @@ func NewClient(authClient auth.ExternalAccessor) (Client, error) { return err } - req.Header.Add(auth.TidepoolSessionTokenHeaderKey, token) + // conditionally set token only if not already present + if req.Header.Get(auth.TidepoolSessionTokenHeaderKey) == "" { + req.Header.Add(auth.TidepoolSessionTokenHeaderKey, token) + } + return nil }) httpClient, err := clinic.NewClientWithResponses(cfg.ServiceAddress, opts) @@ -157,13 +161,9 @@ func (d *defaultClient) getPatient(ctx context.Context, clinicID, patientID stri return response.JSON200, nil } -func (d *defaultClient) GetPatients(ctx context.Context, clinicId string, userToken string) ([]clinic.Patient, error) { - params := &clinic.ListPatientsParams{ - Limit: pointer.FromAny(1001), - } - +func (d *defaultClient) GetPatients(ctx context.Context, clinicId string, userToken string, params *clinic.ListPatientsParams) ([]clinic.Patient, error) { response, err := d.httpClient.ListPatientsWithResponse(ctx, clinicId, params, func(ctx context.Context, req *http.Request) error { - req.Header.Add(auth.TidepoolSessionTokenHeaderKey, userToken) + req.Header.Set(auth.TidepoolSessionTokenHeaderKey, userToken) return nil }) diff --git a/data/data.go b/data/data.go index dd32ddf0c..476a3cf27 100644 --- a/data/data.go +++ b/data/data.go @@ -134,7 +134,8 @@ func ErrorValueStringAsIDNotValid(value string) error { var idExpression = regexp.MustCompile("^[0-9a-z]{32}$") // TODO: Want just "[0-9a-f]{32}" (Jellyfish uses [0-9a-z]) -type UserLastUpdated struct { +// UserDataStatus is used to track the state of the user's data at the start of a summary calculation +type UserDataStatus struct { FirstData time.Time LastData time.Time diff --git a/data/service/api/v1/summary.go b/data/service/api/v1/summary.go index 40076a0cf..4432ecd7d 100644 --- a/data/service/api/v1/summary.go +++ b/data/service/api/v1/summary.go @@ -5,9 +5,6 @@ import ( "net/http" "time" - "github.com/tidepool-org/platform/data/summary/store" - "github.com/tidepool-org/platform/structure" - dataService "github.com/tidepool-org/platform/data/service" "github.com/tidepool-org/platform/data/summary" "github.com/tidepool-org/platform/data/summary/types" @@ -19,8 +16,6 @@ import ( "github.com/tidepool-org/platform/service" ) -const realtimePatientsInsuranceCode = "CPT-99454" - func SummaryRoutes() []dataService.Route { return []dataService.Route{ dataService.Get("/v1/summaries/cgm/:userId", GetSummary[types.CGMStats, *types.CGMStats], api.RequireAuth), @@ -38,7 +33,7 @@ func SummaryRoutes() []dataService.Route { dataService.Get("/v1/summaries/migratable/cgm", GetMigratableUserIDs[types.CGMStats, *types.CGMStats], api.RequireAuth), dataService.Get("/v1/summaries/migratable/bgm", GetMigratableUserIDs[types.BGMStats, *types.BGMStats], api.RequireAuth), - dataService.Get("/v1/summaries/realtime/:clinicId", GetPatientsWithRealtimeData, api.RequireAuth), + dataService.Get("/v1/clinics/:clinicId/reports/realtime", GetPatientsWithRealtimeData, api.RequireAuth), } } @@ -87,46 +82,6 @@ func GetSummary[T types.Stats, A types.StatsPt[T]](dataServiceContext dataServic } } -type RealtimePatientsResponse struct { - Config RealtimePatientConfigResponse `json:"config"` - Results []RealtimePatientResponse `json:"results"` -} - -type RealtimePatientConfigResponse struct { - Code string `json:"code"` - ClinicId string `json:"clinicId"` - StartDate time.Time `json:"startDate"` - EndDate time.Time `json:"endDate"` -} - -type RealtimePatientResponse struct { - Id string `json:"id"` - FullName string `json:"fullName"` - BirthDate time.Time `json:"birthDate"` - MRN *string `json:"mrn"` - RealtimeDays int `json:"realtimeDays"` - HasSufficientData bool `json:"hasSufficientData"` -} - -type RealtimePatientsFilter struct { - StartTime *time.Time - EndTime *time.Time -} - -func NewRealtimePatientsFilter() *RealtimePatientsFilter { - return &RealtimePatientsFilter{} -} - -func (d *RealtimePatientsFilter) Parse(parser structure.ObjectParser) { - d.StartTime = parser.Time("startDate", time.RFC3339) - d.EndTime = parser.Time("endDate", time.RFC3339) -} - -func (d *RealtimePatientsFilter) Validate(validator structure.Validator) { - validator.Time("startDate", d.StartTime).NotZero() - validator.Time("endDate", d.EndTime).NotZero() -} - func GetPatientsWithRealtimeData(dataServiceContext dataService.Context) { ctx := dataServiceContext.Request().Context() res := dataServiceContext.Response() @@ -136,7 +91,7 @@ func GetPatientsWithRealtimeData(dataServiceContext dataService.Context) { clinicId := req.PathParam("clinicId") - filter := NewRealtimePatientsFilter() + filter := summary.NewRealtimePatientsFilter() if err := request.DecodeRequestQuery(req.Request, filter); err != nil { responder.Error(http.StatusBadRequest, err) return @@ -151,41 +106,12 @@ func GetPatientsWithRealtimeData(dataServiceContext dataService.Context) { return } - patients, err := dataServiceContext.ClinicsClient().GetPatients(ctx, clinicId, details.Token()) - userIds := make([]string, len(patients)) - for i := 0; i < len(patients); i++ { - userIds[i] = *patients[0].Id - } - - summaryManager := dataServiceContext.SummarizerRegistry().TypelessSummarizer - userIdsRealtimeDays, err := summaryManager.GetRealtimeDaysForUsers(ctx, userIds, startTime, endTime) + response, err := dataServiceContext.SummaryReporter().GetRealtimeDaysForPatients(ctx, dataServiceContext.ClinicsClient(), clinicId, details.Token(), startTime, endTime) if err != nil { responder.Error(http.StatusInternalServerError, err) return } - patientsResponse := make([]RealtimePatientResponse, len(patients)) - for i := 0; i < len(patients); i++ { - patientsResponse[i] = RealtimePatientResponse{ - Id: *patients[i].Id, - FullName: patients[i].FullName, - BirthDate: patients[i].BirthDate.Time, - MRN: patients[i].Mrn, - RealtimeDays: userIdsRealtimeDays[*patients[i].Id], - HasSufficientData: userIdsRealtimeDays[*patients[i].Id] >= store.RealtimeUserThreshold, - } - } - - response := RealtimePatientsResponse{ - Config: RealtimePatientConfigResponse{ - Code: realtimePatientsInsuranceCode, - ClinicId: clinicId, - StartDate: startTime, - EndDate: endTime, - }, - Results: patientsResponse, - } - responder.Data(http.StatusOK, response) } diff --git a/data/service/api/v1/users_datasets_create_test.go b/data/service/api/v1/users_datasets_create_test.go index abe455b21..f32bdef27 100644 --- a/data/service/api/v1/users_datasets_create_test.go +++ b/data/service/api/v1/users_datasets_create_test.go @@ -218,3 +218,5 @@ func (c *mockDataServiceContext) ClinicsClient() clinics.Client { func (c *mockDataServiceContext) DataSourceClient() dataSource.Client { panic("not implemented") // TODO: Implement } + +func (c *mockDataServiceContext) SummaryReporter() *summary.Reporter { panic("not implemented") } diff --git a/data/service/context.go b/data/service/context.go index 524452713..3ee8b83f5 100644 --- a/data/service/context.go +++ b/data/service/context.go @@ -30,6 +30,7 @@ type Context interface { AlertsRepository() alerts.Repository SummarizerRegistry() *summary.SummarizerRegistry + SummaryReporter() *summary.Reporter DataClient() dataClient.Client ClinicsClient() clinics.Client diff --git a/data/service/context/standard.go b/data/service/context/standard.go index 1b237a3c3..40fe24cd4 100644 --- a/data/service/context/standard.go +++ b/data/service/context/standard.go @@ -32,6 +32,7 @@ type Standard struct { dataRepository dataStore.DataRepository summaryRepository dataStore.SummaryRepository summarizerRegistry *summary.SummarizerRegistry + summaryReporter *summary.Reporter syncTaskStore syncTaskStore.Store syncTasksRepository syncTaskStore.SyncTaskRepository dataClient dataClient.Client @@ -120,6 +121,9 @@ func (s *Standard) Close() { if s.summarizerRegistry != nil { s.summarizerRegistry = nil } + if s.summaryReporter != nil { + s.summaryReporter = nil + } if s.alertsRepository != nil { s.alertsRepository = nil } @@ -165,6 +169,13 @@ func (s *Standard) SummarizerRegistry() *summary.SummarizerRegistry { return s.summarizerRegistry } +func (s *Standard) SummaryReporter() *summary.Reporter { + if s.summaryReporter == nil { + s.summaryReporter = summary.NewReporter(s.summarizerRegistry) + } + return s.summaryReporter +} + func (s *Standard) SyncTaskRepository() syncTaskStore.SyncTaskRepository { if s.syncTasksRepository == nil { s.syncTasksRepository = s.syncTaskStore.NewSyncTaskRepository() diff --git a/data/store/mongo/mongo_datum.go b/data/store/mongo/mongo_datum.go index c78f1225b..8623c4f0a 100644 --- a/data/store/mongo/mongo_datum.go +++ b/data/store/mongo/mongo_datum.go @@ -548,7 +548,7 @@ func validateAndTranslateSelectors(selectors *data.Selectors) (bson.M, error) { return selector, nil } -func (d *DatumRepository) GetDataRange(ctx context.Context, userId string, typ []string, status *data.UserLastUpdated) (*mongo.Cursor, error) { +func (d *DatumRepository) GetDataRange(ctx context.Context, userId string, typ []string, status *data.UserDataStatus) (*mongo.Cursor, error) { if ctx == nil { return nil, errors.New("context is missing") } @@ -619,7 +619,7 @@ func (d *DatumRepository) GetDataRange(ctx context.Context, userId string, typ [ return cursor, nil } -func (d *DatumRepository) getTimeRange(ctx context.Context, userId string, typ []string, status *data.UserLastUpdated) (err error) { +func (d *DatumRepository) getTimeRange(ctx context.Context, userId string, typ []string, status *data.UserDataStatus) (err error) { timestamp := time.Now().UTC() futureCutoff := timestamp.AddDate(0, 0, 1) pastCutoff := timestamp.AddDate(-2, 0, 0) @@ -664,7 +664,7 @@ func (d *DatumRepository) getTimeRange(ctx context.Context, userId string, typ [ return nil } -func (d *DatumRepository) populateLastUpload(ctx context.Context, userId string, typ []string, status *data.UserLastUpdated) (err error) { +func (d *DatumRepository) populateLastUpload(ctx context.Context, userId string, typ []string, status *data.UserDataStatus) (err error) { // get latest modified record selector := bson.M{ "_userId": userId, @@ -711,7 +711,7 @@ func (d *DatumRepository) populateLastUpload(ctx context.Context, userId string, return nil } -func (d *DatumRepository) populateEarliestModified(ctx context.Context, userId string, typ []string, status *data.UserLastUpdated) (err error) { +func (d *DatumRepository) populateEarliestModified(ctx context.Context, userId string, typ []string, status *data.UserDataStatus) (err error) { // get earliest modified record which is newer than LastUpdated selector := bson.M{ "_userId": userId, @@ -761,7 +761,7 @@ func (d *DatumRepository) populateEarliestModified(ctx context.Context, userId s return nil } -func (d *DatumRepository) GetLastUpdatedForUser(ctx context.Context, userId string, typ []string, lastUpdated time.Time) (*data.UserLastUpdated, error) { +func (d *DatumRepository) GetLastUpdatedForUser(ctx context.Context, userId string, typ []string, lastUpdated time.Time) (*data.UserDataStatus, error) { var err error if ctx == nil { @@ -781,7 +781,7 @@ func (d *DatumRepository) GetLastUpdatedForUser(ctx context.Context, userId stri return nil, fmt.Errorf("unexpected type: %v", upload.Type) } - status := &data.UserLastUpdated{ + status := &data.UserDataStatus{ LastUpdated: lastUpdated, NextLastUpdated: time.Now().UTC().Truncate(time.Millisecond), } diff --git a/data/store/mongo/mongo_test.go b/data/store/mongo/mongo_test.go index 5139b8fc3..6836015cb 100644 --- a/data/store/mongo/mongo_test.go +++ b/data/store/mongo/mongo_test.go @@ -1183,7 +1183,7 @@ var _ = Describe("Mongo", func() { Context("GetDataRange", func() { It("returns an error if context is missing", func() { - status := &data.UserLastUpdated{ + status := &data.UserDataStatus{ FirstData: *dataSetData[0].GetTime(), LastData: *dataSetData[len(dataSetData)-1].GetTime(), LastUpdated: time.Time{}, @@ -1191,14 +1191,14 @@ var _ = Describe("Mongo", func() { } _, err := repository.GetDataRange(nil, *dataSet.UserID, - dataSetData[0].GetType(), + []string{dataSetData[0].GetType()}, status) Expect(err).To(HaveOccurred()) Expect(err).To(MatchError("context is missing")) }) It("returns an error if the userId is empty", func() { - status := &data.UserLastUpdated{ + status := &data.UserDataStatus{ FirstData: *dataSetData[0].GetTime(), LastData: *dataSetData[len(dataSetData)-1].GetTime(), LastUpdated: time.Time{}, @@ -1206,14 +1206,14 @@ var _ = Describe("Mongo", func() { } _, err := repository.GetDataRange(ctx, "", - dataSetData[0].GetType(), + []string{dataSetData[0].GetType()}, status) Expect(err).To(HaveOccurred()) Expect(err).To(MatchError("userId is empty")) }) It("returns an error if the typ is empty", func() { - status := &data.UserLastUpdated{ + status := &data.UserDataStatus{ FirstData: *dataSetData[0].GetTime(), LastData: *dataSetData[len(dataSetData)-1].GetTime(), LastUpdated: time.Time{}, @@ -1221,14 +1221,14 @@ var _ = Describe("Mongo", func() { } _, err := repository.GetDataRange(ctx, *dataSet.UserID, - "", + []string{}, status) Expect(err).To(HaveOccurred()) Expect(err).To(MatchError("typ is empty")) }) It("returns error if the data times are inverted", func() { - status := &data.UserLastUpdated{ + status := &data.UserDataStatus{ FirstData: *dataSetData[len(dataSetData)-1].GetTime(), LastData: *dataSetData[0].GetTime(), LastUpdated: time.Time{}, @@ -1236,14 +1236,14 @@ var _ = Describe("Mongo", func() { } _, err := repository.GetDataRange(ctx, *dataSet.UserID, - continuous.Type, + []string{continuous.Type}, status) Expect(err).To(HaveOccurred()) Expect(err).To(MatchError(MatchRegexp("^FirstData.*after LastData"))) }) It("returns error if the LastUpdated times are inverted", func() { - status := &data.UserLastUpdated{ + status := &data.UserDataStatus{ FirstData: *dataSetData[0].GetTime(), LastData: *dataSetData[len(dataSetData)-1].GetTime(), LastUpdated: time.Now(), @@ -1251,7 +1251,7 @@ var _ = Describe("Mongo", func() { } _, err := repository.GetDataRange(ctx, *dataSet.UserID, - continuous.Type, + []string{continuous.Type}, status) Expect(err).To(HaveOccurred()) Expect(err).To(MatchError(MatchRegexp("^LastUpdated.*after NextLastUpdated"))) @@ -1268,7 +1268,7 @@ var _ = Describe("Mongo", func() { It("correctly returns data within range", func() { var userData []*glucoseDatum.Glucose - status := &data.UserLastUpdated{ + status := &data.UserDataStatus{ FirstData: *dataSetData[0].GetTime(), LastData: *dataSetData[len(dataSetData)-1].GetTime(), LastUpdated: time.Time{}, @@ -1276,7 +1276,7 @@ var _ = Describe("Mongo", func() { } cursor, err := repository.GetDataRange(ctx, *dataSet.UserID, - dataSetData[0].GetType(), + []string{dataSetData[0].GetType()}, status, ) Expect(err).ToNot(HaveOccurred()) @@ -1296,7 +1296,7 @@ var _ = Describe("Mongo", func() { It("correctly misses data outside range", func() { var userData []*glucoseDatum.Glucose - status := &data.UserLastUpdated{ + status := &data.UserDataStatus{ FirstData: dataSetData[0].GetTime().AddDate(-1, 0, 0), LastData: dataSetData[len(dataSetData)-1].GetTime().AddDate(-1, 0, 0), LastUpdated: time.Time{}, @@ -1304,7 +1304,7 @@ var _ = Describe("Mongo", func() { } cursor, err := repository.GetDataRange(ctx, *dataSet.UserID, - dataSetData[0].GetType(), + []string{dataSetData[0].GetType()}, status, ) Expect(err).ToNot(HaveOccurred()) @@ -1318,7 +1318,7 @@ var _ = Describe("Mongo", func() { It("correctly misses data of wrong type", func() { var userData []*glucoseDatum.Glucose - status := &data.UserLastUpdated{ + status := &data.UserDataStatus{ FirstData: *dataSetData[0].GetTime(), LastData: *dataSetData[len(dataSetData)-1].GetTime(), LastUpdated: time.Time{}, @@ -1326,7 +1326,7 @@ var _ = Describe("Mongo", func() { } cursor, err := repository.GetDataRange(ctx, *dataSet.UserID, - selfmonitored.Type, + []string{selfmonitored.Type}, status, ) Expect(err).ToNot(HaveOccurred()) @@ -1342,25 +1342,25 @@ var _ = Describe("Mongo", func() { Context("GetLastUpdatedForUser", func() { It("returns an error if context is missing", func() { - _, err := repository.GetLastUpdatedForUser(nil, *dataSet.UserID, dataSetData[2].GetType(), time.Time{}) + _, err := repository.GetLastUpdatedForUser(nil, *dataSet.UserID, []string{dataSetData[2].GetType()}, time.Time{}) Expect(err).To(HaveOccurred()) Expect(err).To(MatchError("context is missing")) }) It("returns an error if userId is empty", func() { - _, err := repository.GetLastUpdatedForUser(ctx, "", dataSetData[2].GetType(), time.Time{}) + _, err := repository.GetLastUpdatedForUser(ctx, "", []string{dataSetData[2].GetType()}, time.Time{}) Expect(err).To(HaveOccurred()) Expect(err).To(MatchError("userId is empty")) }) It("returns an error if typ is empty", func() { - _, err := repository.GetLastUpdatedForUser(ctx, *dataSet.UserID, "", time.Time{}) + _, err := repository.GetLastUpdatedForUser(ctx, *dataSet.UserID, []string{}, time.Time{}) Expect(err).To(HaveOccurred()) Expect(err).To(MatchError("typ is empty")) }) It("returns an error if typ is upload", func() { - _, err := repository.GetLastUpdatedForUser(ctx, *dataSet.UserID, upload.Type, time.Time{}) + _, err := repository.GetLastUpdatedForUser(ctx, *dataSet.UserID, []string{upload.Type}, time.Time{}) Expect(err).To(HaveOccurred()) Expect(err).To(MatchError(fmt.Errorf("unexpected type: %v", upload.Type))) }) @@ -1384,20 +1384,20 @@ var _ = Describe("Mongo", func() { }) It("correctly finds the LastUpload and LastData for a matching set", func() { - status, err := repository.GetLastUpdatedForUser(ctx, *dataSet.UserID, continuous.Type, time.Time{}) + status, err := repository.GetLastUpdatedForUser(ctx, *dataSet.UserID, []string{continuous.Type}, time.Time{}) Expect(err).ToNot(HaveOccurred()) Expect(status.LastData).To(Equal(dataSetData[len(dataSetData)-1].GetTime().Truncate(time.Millisecond))) Expect(status.LastUpload).To(BeTemporally("~", createdTime, time.Second)) }) It("correctly does not find the LastUpload and LastData for an inactive type", func() { - status, err := repository.GetLastUpdatedForUser(ctx, *dataSet.UserID, selfmonitored.Type, time.Time{}) + status, err := repository.GetLastUpdatedForUser(ctx, *dataSet.UserID, []string{selfmonitored.Type}, time.Time{}) Expect(err).ToNot(HaveOccurred()) Expect(status).To(BeNil()) }) It("correctly does not find the LastUpload and LastData for an unused type", func() { - status, err := repository.GetLastUpdatedForUser(ctx, *dataSet.UserID, bolus.Type, time.Time{}) + status, err := repository.GetLastUpdatedForUser(ctx, *dataSet.UserID, []string{bolus.Type}, time.Time{}) Expect(err).ToNot(HaveOccurred()) Expect(status).To(BeNil()) }) @@ -1407,21 +1407,21 @@ var _ = Describe("Mongo", func() { Context("DistinctUserIDs", func() { It("returns an error if context is missing", func() { - userIds, err := repository.DistinctUserIDs(nil, continuous.Type) + userIds, err := repository.DistinctUserIDs(nil, []string{continuous.Type}) Expect(userIds).To(BeNil()) Expect(err).To(HaveOccurred()) Expect(err).To(MatchError("context is missing")) }) It("returns an error if typ is empty", func() { - userIds, err := repository.DistinctUserIDs(ctx, "") + userIds, err := repository.DistinctUserIDs(ctx, []string{}) Expect(userIds).To(BeNil()) Expect(err).To(HaveOccurred()) Expect(err).To(MatchError("typ is empty")) }) It("returns an error if typ is upload", func() { - userIds, err := repository.DistinctUserIDs(ctx, upload.Type) + userIds, err := repository.DistinctUserIDs(ctx, []string{upload.Type}) Expect(userIds).To(BeNil()) Expect(err).To(HaveOccurred()) Expect(err).To(MatchError(fmt.Errorf("unexpected type: %v", upload.Type))) @@ -1459,7 +1459,7 @@ var _ = Describe("Mongo", func() { }) It("correctly identifies distinct users", func() { - userIds, err := repository.DistinctUserIDs(ctx, continuous.Type) + userIds, err := repository.DistinctUserIDs(ctx, []string{continuous.Type}) Expect(userIds).ToNot(BeNil()) Expect(err).ToNot(HaveOccurred()) Expect(userIds).To(HaveLen(2)) @@ -1467,7 +1467,7 @@ var _ = Describe("Mongo", func() { }) It("correctly identifies distinct users with inactive data", func() { - userIds, err := repository.DistinctUserIDs(ctx, selfmonitored.Type) + userIds, err := repository.DistinctUserIDs(ctx, []string{selfmonitored.Type}) Expect(userIds).ToNot(BeNil()) Expect(err).ToNot(HaveOccurred()) Expect(userIds).To(HaveLen(1)) @@ -1475,7 +1475,7 @@ var _ = Describe("Mongo", func() { }) It("correctly identifies distinct users with different-type data", func() { - userIds, err := repository.DistinctUserIDs(ctx, bolus.Type) + userIds, err := repository.DistinctUserIDs(ctx, []string{bolus.Type}) Expect(userIds).ToNot(BeNil()) Expect(err).ToNot(HaveOccurred()) Expect(userIds).To(HaveLen(0)) diff --git a/data/store/store.go b/data/store/store.go index db90daf6a..5abcd0b2f 100644 --- a/data/store/store.go +++ b/data/store/store.go @@ -60,8 +60,8 @@ type DatumRepository interface { ListUserDataSets(ctx context.Context, userID string, filter *data.DataSetFilter, pagination *page.Pagination) (data.DataSets, error) GetDataSet(ctx context.Context, id string) (*data.DataSet, error) - GetDataRange(ctx context.Context, userId string, typ []string, status *data.UserLastUpdated) (*mongo.Cursor, error) - GetLastUpdatedForUser(ctx context.Context, userId string, typ []string, lastUpdated time.Time) (*data.UserLastUpdated, error) + GetDataRange(ctx context.Context, userId string, typ []string, status *data.UserDataStatus) (*mongo.Cursor, error) + GetLastUpdatedForUser(ctx context.Context, userId string, typ []string, lastUpdated time.Time) (*data.UserDataStatus, error) DistinctUserIDs(ctx context.Context, typ []string) ([]string, error) } diff --git a/data/store/test/data_repository.go b/data/store/test/data_repository.go index 97c678252..084d8fb8d 100644 --- a/data/store/test/data_repository.go +++ b/data/store/test/data_repository.go @@ -149,12 +149,12 @@ type ListUserDataSetsOutput struct { type GetLastUpdatedForUserInput struct { Context context.Context UserID string - Typ string + Typ []string LastUpdated time.Time } type GetLastUpdatedForUserOutput struct { - UserLastUpdated *data.UserLastUpdated + UserLastUpdated *data.UserDataStatus Error error } @@ -162,7 +162,7 @@ type GetDataRangeInput struct { Context context.Context UserId string Typ []string - Status *data.UserLastUpdated + Status *data.UserDataStatus } type GetDataRangeOutput struct { @@ -491,7 +491,7 @@ func (d *DataRepository) GetDataSet(ctx context.Context, id string) (*data.DataS return output.DataSet, output.Error } -func (d *DataRepository) GetLastUpdatedForUser(ctx context.Context, userId string, typ string, lastUpdated time.Time) (*data.UserLastUpdated, error) { +func (d *DataRepository) GetLastUpdatedForUser(ctx context.Context, userId string, typ []string, lastUpdated time.Time) (*data.UserDataStatus, error) { d.GetLastUpdatedForUserInvocations++ d.GetLastUpdatedForUserInputs = append(d.GetLastUpdatedForUserInputs, GetLastUpdatedForUserInput{Context: ctx, UserID: userId, Typ: typ, LastUpdated: lastUpdated}) @@ -503,7 +503,7 @@ func (d *DataRepository) GetLastUpdatedForUser(ctx context.Context, userId strin return output.UserLastUpdated, output.Error } -func (d *DataRepository) GetDataRange(ctx context.Context, userId string, typ []string, status *data.UserLastUpdated) (*mongo.Cursor, error) { +func (d *DataRepository) GetDataRange(ctx context.Context, userId string, typ []string, status *data.UserDataStatus) (*mongo.Cursor, error) { d.GetDataRangeInvocations++ d.GetDataRangeInputs = append(d.GetDataRangeInputs, GetDataRangeInput{Context: ctx, UserId: userId, Typ: typ, Status: status}) diff --git a/data/summary/api.go b/data/summary/api.go new file mode 100644 index 000000000..29bd8c1cd --- /dev/null +++ b/data/summary/api.go @@ -0,0 +1,46 @@ +package summary + +import ( + "github.com/tidepool-org/platform/structure" + "time" +) + +type RealtimePatientsResponse struct { + Config RealtimePatientConfigResponse `json:"config"` + Results []RealtimePatientResponse `json:"results"` +} + +type RealtimePatientConfigResponse struct { + Code string `json:"code"` + ClinicId string `json:"clinicId"` + StartDate time.Time `json:"startDate"` + EndDate time.Time `json:"endDate"` +} + +type RealtimePatientResponse struct { + Id string `json:"id"` + FullName string `json:"fullName"` + BirthDate time.Time `json:"birthDate"` + MRN *string `json:"mrn"` + RealtimeDays int `json:"realtimeDays"` + HasSufficientData bool `json:"hasSufficientData"` +} + +type RealtimePatientsFilter struct { + StartTime *time.Time + EndTime *time.Time +} + +func NewRealtimePatientsFilter() *RealtimePatientsFilter { + return &RealtimePatientsFilter{} +} + +func (d *RealtimePatientsFilter) Parse(parser structure.ObjectParser) { + d.StartTime = parser.Time("startDate", time.RFC3339) + d.EndTime = parser.Time("endDate", time.RFC3339) +} + +func (d *RealtimePatientsFilter) Validate(validator structure.Validator) { + validator.Time("startDate", d.StartTime).NotZero() + validator.Time("endDate", d.EndTime).NotZero() +} diff --git a/data/summary/store/store.go b/data/summary/store/store.go index 19a92de64..ccf8289fb 100644 --- a/data/summary/store/store.go +++ b/data/summary/store/store.go @@ -16,8 +16,6 @@ import ( storeStructuredMongo "github.com/tidepool-org/platform/store/structured/mongo" ) -const RealtimeUserThreshold = 16 - type Repo[A types.StatsPt[T], T types.Stats] struct { *storeStructuredMongo.Repository } @@ -82,50 +80,6 @@ func (r *TypelessRepo) DeleteSummary(ctx context.Context, userId string) error { return nil } -func (r *Repo[A, T]) GetRealtimeDaysForUsers(ctx context.Context, userIds []string, startTime time.Time, endTime time.Time) (map[string]int, error) { - if ctx == nil { - return nil, errors.New("context is missing") - } - if userIds == nil { - return nil, errors.New("userIds is missing") - } - if len(userIds) == 0 { - return nil, errors.New("no userIds provided") - } - if startTime.IsZero() { - return nil, errors.New("startTime is missing") - } - if endTime.IsZero() { - return nil, errors.New("startTime is missing") - } - - if startTime.After(endTime) { - return nil, errors.New("startTime is after endTime") - } - - if startTime.Before(time.Now().AddDate(0, 0, -60)) { - return nil, errors.New("startTime is too old ( >60d ago ) ") - } - - if int(endTime.Sub(startTime).Hours()/24) < RealtimeUserThreshold { - return nil, errors.New("time range smaller than threshold, impossible") - } - - realtimeUsers := make(map[string]int) - - for _, userId := range userIds { - userSummary, err := r.GetSummary(ctx, userId) - if err != nil { - return nil, err - } - - realtimeUsers[userId] = userSummary.Stats.GetNumberOfDaysWithRealtimeData(startTime, endTime) - - } - - return realtimeUsers, nil -} - func (r *Repo[A, T]) DeleteSummary(ctx context.Context, userId string) error { if ctx == nil { return errors.New("context is missing") diff --git a/data/summary/store/store_test.go b/data/summary/store/store_test.go index 19dbc578c..9389c2451 100644 --- a/data/summary/store/store_test.go +++ b/data/summary/store/store_test.go @@ -141,12 +141,12 @@ var _ = Describe("Summary Stats Mongo", func() { err = continuousStore.ReplaceSummary(ctx, userContinuousSummary) Expect(err).To(HaveOccurred()) - Expect(err).To(MatchError("invalid summary type 'asdf', expected 'bgm'")) + Expect(err).To(MatchError("invalid summary type 'asdf', expected 'continuous'")) }) It("Insert Summary", func() { userContinuousSummary = test.RandomContinousSummary(userId) - Expect(userContinuousSummary.Type).To(Equal("bgm")) + Expect(userContinuousSummary.Type).To(Equal("continuous")) err = continuousStore.ReplaceSummary(ctx, userContinuousSummary) Expect(err).ToNot(HaveOccurred()) @@ -166,7 +166,7 @@ var _ = Describe("Summary Stats Mongo", func() { // generate and insert first summary userContinuousSummary = test.RandomContinousSummary(userId) - Expect(userContinuousSummary.Type).To(Equal("bgm")) + Expect(userContinuousSummary.Type).To(Equal("continuous")) err = continuousStore.ReplaceSummary(ctx, userContinuousSummary) Expect(err).ToNot(HaveOccurred()) @@ -191,8 +191,8 @@ var _ = Describe("Summary Stats Mongo", func() { Expect(userContinuousSummaryWrittenTwo.ID).To(Equal(userContinuousSummaryWritten.ID)) // confirm the written summary matches the new summary - userContinuousSummaryWrittenTwo.ID = userContinuousSummaryWritten.ID - Expect(userContinuousSummaryWrittenTwo).To(Equal(userContinuousSummaryTwo)) + userContinuousSummaryWrittenTwo.ID = userContinuousSummaryTwo.ID + Expect(userContinuousSummaryWrittenTwo).To(BeComparableTo(userContinuousSummaryTwo)) }) }) @@ -213,7 +213,7 @@ var _ = Describe("Summary Stats Mongo", func() { var userContinuousSummaryWritten *types.Summary[*types.ContinuousStats, types.ContinuousStats] userContinuousSummary = test.RandomContinousSummary(userId) - Expect(userContinuousSummary.Type).To(Equal("cgm")) + Expect(userContinuousSummary.Type).To(Equal("continuous")) err = continuousStore.ReplaceSummary(ctx, userContinuousSummary) Expect(err).ToNot(HaveOccurred()) @@ -513,8 +513,8 @@ var _ = Describe("Summary Stats Mongo", func() { Expect(err).ToNot(HaveOccurred()) Expect(userContinuousSummary).ToNot(BeNil()) - cgmSummaries[0].ID = userContinuousSummary.ID - Expect(userContinuousSummary).To(Equal(continuousSummaries[0])) + continuousSummaries[0].ID = userContinuousSummary.ID + Expect(userContinuousSummary).To(BeComparableTo(continuousSummaries[0])) }) }) @@ -730,104 +730,6 @@ var _ = Describe("Summary Stats Mongo", func() { Expect(userIds.UserIds).To(ConsistOf([]string{userIdFive})) }) }) - - Context("GetPatientsWithRealtimeData", func() { - - It("with some realtime users", func() { - endTime := time.Now().UTC().Truncate(time.Hour * 24) - startTime := endTime.AddDate(0, 0, -30) - userIds := make([]string, 5) - userSummaries := make([]*types.Summary[*types.ContinuousStats, types.ContinuousStats], 5) - - startingDays := 14 - - for i := 0; i < 5; i++ { - userIds[i] = userTest.RandomID() - userSummaries[i] = test.NewRealtimeSummary(userIds[i], startTime, endTime, startingDays+i) - } - - var count int - count, err = continuousStore.CreateSummaries(ctx, userSummaries) - Expect(err).ToNot(HaveOccurred()) - Expect(count).To(Equal(len(userIds))) - - // remove one userId to ensure we aren't accidentally grabbing everyone - trimmedUserIds := userIds[:len(userIds)-1] - - var list map[string]int - list, err = continuousStore.GetRealtimeDaysForUsers(ctx, trimmedUserIds, startTime, endTime) - Expect(err).ToNot(HaveOccurred()) - Expect(list).To(HaveLen(len(trimmedUserIds))) - - // make sure days match input - for i := 0; i < 4; i++ { - Expect(list[userIds[i]]).To(Equal(startingDays + i)) - } - }) - - It("with no realtime user", func() { - endTime := time.Now().UTC().Truncate(time.Hour * 24) - startTime := endTime.AddDate(0, 0, -30) - userIds := make([]string, 5) - userContinuousSummaries := make([]*types.Summary[*types.ContinuousStats, types.ContinuousStats], 5) - - for i := 0; i < 5; i++ { - userIds[i] = userTest.RandomID() - userContinuousSummaries[i] = test.NewRealtimeSummary(userIds[i], startTime, endTime, 0) - } - - var count int - count, err = continuousStore.CreateSummaries(ctx, userContinuousSummaries) - Expect(err).ToNot(HaveOccurred()) - Expect(count).To(Equal(len(userIds))) - - // remove one userId to ensure we aren't accidentally grabbing everyone - trimmedUserIds := userIds[:len(userIds)-1] - - var list map[string]int - list, err = continuousStore.GetRealtimeDaysForUsers(ctx, trimmedUserIds, startTime, endTime) - Expect(err).ToNot(HaveOccurred()) - Expect(list).To(HaveLen(len(trimmedUserIds))) - - // make sure days match input - for i := 0; i < 4; i++ { - Expect(list[userIds[i]]).To(Equal(0)) - } - }) - - It("with 60 days of buckets", func() { - endTime := time.Now().UTC().Truncate(time.Hour * 24) - startTime := endTime.AddDate(0, 0, -60) - userIds := make([]string, 5) - userContinuousSummaries := make([]*types.Summary[*types.ContinuousStats, types.ContinuousStats], 5) - - startingDays := 30 + 14 - - for i := 0; i < 5; i++ { - userIds[i] = userTest.RandomID() - userContinuousSummaries[i] = test.NewRealtimeSummary(userIds[i], startTime, endTime, startingDays+i) - } - - var count int - count, err = continuousStore.CreateSummaries(ctx, userContinuousSummaries) - Expect(err).ToNot(HaveOccurred()) - Expect(count).To(Equal(len(userIds))) - - // remove one userId to ensure we aren't accidentally grabbing everyone - trimmedUserIds := userIds[:len(userIds)-1] - - var list map[string]int - list, err = continuousStore.GetRealtimeDaysForUsers(ctx, trimmedUserIds, startTime.AddDate(0, 0, 30), endTime) - Expect(err).ToNot(HaveOccurred()) - Expect(list).To(HaveLen(len(trimmedUserIds))) - - // make sure days match input - for i := 0; i < 4; i++ { - Expect(list[userIds[i]]).To(Equal(startingDays + i - 30)) - } - }) - - }) }) Context("CGM", func() { diff --git a/data/summary/summary.go b/data/summary/summary.go index 9d6cfe1c4..2d8cef3e9 100644 --- a/data/summary/summary.go +++ b/data/summary/summary.go @@ -2,6 +2,11 @@ package summary import ( "context" + "errors" + "fmt" + clinic "github.com/tidepool-org/clinic/client" + "github.com/tidepool-org/platform/clinics" + "github.com/tidepool-org/platform/pointer" "time" "github.com/tidepool-org/platform/data" @@ -14,8 +19,11 @@ import ( ) const ( - backfillBatch = 50000 - backfillInsertBatch = 10000 + backfillBatch = 50000 + backfillInsertBatch = 10000 + RealtimeUserThreshold = 16 + realtimePatientsLengthLimit = 1000 + realtimePatientsInsuranceCode = "CPT-99454" ) type SummarizerRegistry struct { @@ -50,9 +58,112 @@ type Summarizer[A types.StatsPt[T], T types.Stats] interface { BackfillSummaries(ctx context.Context) (int, error) } +type Reporter struct { + summarizer Summarizer[*types.ContinuousStats, types.ContinuousStats] +} + +func NewReporter(registry *SummarizerRegistry) *Reporter { + summarizer := GetSummarizer[*types.ContinuousStats](registry) + return &Reporter{ + summarizer: summarizer, + } +} + +func (r *Reporter) GetRealtimeDaysForPatients(ctx context.Context, clinicsClient clinics.Client, clinicId string, token string, startTime time.Time, endTime time.Time) (*RealtimePatientsResponse, error) { + params := &clinic.ListPatientsParams{ + Limit: pointer.FromAny(realtimePatientsLengthLimit + 1), + } + + patients, err := clinicsClient.GetPatients(ctx, clinicId, token, params) + if err != nil { + return nil, err + } + + if len(patients) > realtimePatientsLengthLimit { + return nil, fmt.Errorf("too many patients in clinic for report to succeed. (%d > limit %d)", len(patients), realtimePatientsLengthLimit) + } + + userIds := make([]string, len(patients)) + for i := 0; i < len(patients); i++ { + userIds[i] = *patients[0].Id + } + + userIdsRealtimeDays, err := r.GetRealtimeDaysForUsers(ctx, userIds, startTime, endTime) + if err != nil { + return nil, err + } + + patientsResponse := make([]RealtimePatientResponse, len(userIdsRealtimeDays)) + for i := 0; i < len(userIdsRealtimeDays); i++ { + patientsResponse[i] = RealtimePatientResponse{ + Id: *patients[i].Id, + FullName: patients[i].FullName, + BirthDate: patients[i].BirthDate.Time, + MRN: patients[i].Mrn, + RealtimeDays: userIdsRealtimeDays[*patients[i].Id], + HasSufficientData: userIdsRealtimeDays[*patients[i].Id] >= RealtimeUserThreshold, + } + } + + return &RealtimePatientsResponse{ + Config: RealtimePatientConfigResponse{ + Code: realtimePatientsInsuranceCode, + ClinicId: clinicId, + StartDate: startTime, + EndDate: endTime, + }, + Results: patientsResponse, + }, nil +} + +func (r *Reporter) GetRealtimeDaysForUsers(ctx context.Context, userIds []string, startTime time.Time, endTime time.Time) (map[string]int, error) { + if ctx == nil { + return nil, errors.New("context is missing") + } + if userIds == nil { + return nil, errors.New("userIds is missing") + } + if len(userIds) == 0 { + return nil, errors.New("no userIds provided") + } + if startTime.IsZero() { + return nil, errors.New("startTime is missing") + } + if endTime.IsZero() { + return nil, errors.New("startTime is missing") + } + + if startTime.After(endTime) { + return nil, errors.New("startTime is after endTime") + } + + if startTime.Before(time.Now().AddDate(0, 0, -60)) { + return nil, errors.New("startTime is too old ( >60d ago ) ") + } + + if int(endTime.Sub(startTime).Hours()/24) < RealtimeUserThreshold { + return nil, errors.New("time range smaller than threshold, impossible") + } + + realtimeUsers := make(map[string]int) + + for _, userId := range userIds { + userSummary, err := r.summarizer.GetSummary(ctx, userId) + if err != nil { + return nil, err + } + + realtimeUsers[userId] = userSummary.Stats.GetNumberOfDaysWithRealtimeData(startTime, endTime) + + } + + return realtimeUsers, nil +} + // Compile time interface check var _ Summarizer[*types.CGMStats, types.CGMStats] = &GlucoseSummarizer[*types.CGMStats, types.CGMStats]{} var _ Summarizer[*types.BGMStats, types.BGMStats] = &GlucoseSummarizer[*types.BGMStats, types.BGMStats]{} +var _ Summarizer[*types.ContinuousStats, types.ContinuousStats] = &GlucoseSummarizer[*types.ContinuousStats, types.ContinuousStats]{} type GlucoseSummarizer[A types.StatsPt[T], T types.Stats] struct { userData types.DeviceDataFetcher @@ -80,10 +191,6 @@ func NewContinuousSummarizer(collection *storeStructuredMongo.Repository, dataRe } } -func (gs *GlucoseSummarizer[A, T]) GetRealtimeDaysForUsers(ctx context.Context, userIds []string, startTime time.Time, endTime time.Time) (map[string]int, error) { - return gs.summaries.GetRealtimeDaysForUsers(ctx, userIds, startTime, endTime) -} - func (gs *GlucoseSummarizer[A, T]) DeleteSummaries(ctx context.Context, userId string) error { return gs.summaries.DeleteSummary(ctx, userId) } @@ -175,7 +282,7 @@ func (gs *GlucoseSummarizer[A, T]) UpdateSummary(ctx context.Context, userId str userSummary.Dates.Reset() } - var status *data.UserLastUpdated + var status *data.UserDataStatus status, err = gs.userData.GetLastUpdatedForUser(ctx, userId, summaryType, userSummary.Dates.LastUpdatedDate) if err != nil { return nil, err @@ -208,11 +315,16 @@ func (gs *GlucoseSummarizer[A, T]) UpdateSummary(ctx context.Context, userId str defer cursor.Close(ctx) err = userSummary.Stats.Update(ctx, cursor, gs.userData) - if err != nil { return nil, err } + // this filters out users which may have appeared to have relevant data, but was filtered during calculation + if userSummary.Stats.GetBucketsLen() == 0 { + logger.Warnf("User %s has a summary, but no valid data within range, deleting summary", userId) + return nil, gs.summaries.DeleteSummary(ctx, userId) + } + userSummary.Dates.Update(status, userSummary.Stats.GetBucketDate(0)) err = gs.summaries.ReplaceSummary(ctx, userSummary) diff --git a/data/summary/summary_test.go b/data/summary/summary_test.go index 7db3a614a..9fe0e7ea2 100644 --- a/data/summary/summary_test.go +++ b/data/summary/summary_test.go @@ -197,7 +197,7 @@ var _ = Describe("Summary", func() { } outdatedSinceMap := summary.MaybeUpdateSummary(ctx, registry, updatesSummary, userId, types.OutdatedReasonDataAdded) - Expect(outdatedSinceMap).To(HaveLen(2)) + Expect(outdatedSinceMap).To(HaveLen(3)) Expect(outdatedSinceMap).To(HaveKey(types.SummaryTypeCGM)) Expect(outdatedSinceMap).To(HaveKey(types.SummaryTypeBGM)) Expect(outdatedSinceMap).To(HaveKey(types.SummaryTypeContinuous)) @@ -266,7 +266,7 @@ var _ = Describe("Summary", func() { outdatedSinceMap := summary.MaybeUpdateSummary(ctx, registry, updatesSummary, userId, types.OutdatedReasonDataAdded) Expect(outdatedSinceMap).To(HaveLen(1)) - Expect(outdatedSinceMap).To(HaveKey(types.SummaryTypeBGM)) + Expect(outdatedSinceMap).To(HaveKey(types.SummaryTypeContinuous)) userCgmSummary, err := cgmStore.GetSummary(ctx, userId) Expect(err).ToNot(HaveOccurred()) @@ -274,11 +274,11 @@ var _ = Describe("Summary", func() { userBgmSummary, err := bgmStore.GetSummary(ctx, userId) Expect(err).ToNot(HaveOccurred()) - Expect(*userBgmSummary).To(BeNil()) + Expect(userBgmSummary).To(BeNil()) userContinuousSummary, err := continuousStore.GetSummary(ctx, userId) Expect(err).ToNot(HaveOccurred()) - Expect(userContinuousSummary.Dates.OutdatedSince).To(Equal(*outdatedSinceMap[types.SummaryTypeContinuous])) + Expect(*userContinuousSummary.Dates.OutdatedSince).To(Equal(*outdatedSinceMap[types.SummaryTypeContinuous])) }) It("with unknown summary type outdated", func() { @@ -683,13 +683,7 @@ var _ = Describe("Summary", func() { userSummary, err = continuousSummarizer.UpdateSummary(ctx, userId) Expect(err).ToNot(HaveOccurred()) - Expect(userSummary).ToNot(BeNil()) - Expect(len(userSummary.Stats.Buckets)).To(Equal(10)) - - for i := 0; i < len(userSummary.Stats.Buckets); i++ { - Expect(userSummary.Stats.Buckets[i].Data.RealtimeRecords).To(Equal(0)) - Expect(userSummary.Stats.Buckets[i].Data.DeferredRecords).To(Equal(0)) - } + Expect(userSummary).To(BeNil()) }) }) }) diff --git a/data/summary/types/bgm.go b/data/summary/types/bgm.go index 6873413a9..68ad2aa24 100644 --- a/data/summary/types/bgm.go +++ b/data/summary/types/bgm.go @@ -467,7 +467,3 @@ func (s *BGMStats) CalculatePeriod(i int, offset bool, totalStats *BGMBucketData s.Periods[strconv.Itoa(i)+"d"] = newPeriod } } - -func (s *BGMStats) GetNumberOfDaysWithRealtimeData(_ time.Time, _ time.Time) (count int) { - return -1 -} diff --git a/data/summary/types/bgm_test.go b/data/summary/types/bgm_test.go index b51c33c52..37b0e9dbf 100644 --- a/data/summary/types/bgm_test.go +++ b/data/summary/types/bgm_test.go @@ -11,8 +11,6 @@ import ( "strconv" "time" - "github.com/tidepool-org/platform/data/types/blood/glucose/selfmonitored" - storeStructuredMongoTest "github.com/tidepool-org/platform/store/structured/mongo/test" "go.mongodb.org/mongo-driver/mongo" @@ -120,13 +118,12 @@ var _ = Describe("BGM Summary", func() { var userBGMSummary *types.Summary[*types.BGMStats, types.BGMStats] var periodKeys = []string{"1d", "7d", "14d", "30d"} var periodInts = []int{1, 7, 14, 30} - var continuousUploads = map[string]bool{} Context("AddData Bucket Testing", func() { It("Returns correct hour count when given 2 weeks", func() { userBGMSummary = types.Create[*types.BGMStats](userId) dataSetBGMData = NewDataSetBGMDataAvg(deviceId, datumTime, 336, inTargetBloodGlucose) - err = types.AddData(&userBGMSummary.Stats.Buckets, dataSetBGMData, continuousUploads) + err = types.AddData(&userBGMSummary.Stats.Buckets, dataSetBGMData) Expect(err).ToNot(HaveOccurred()) Expect(len(userBGMSummary.Stats.Buckets)).To(Equal(336)) @@ -135,7 +132,7 @@ var _ = Describe("BGM Summary", func() { It("Returns correct hour count when given 1 week", func() { userBGMSummary = types.Create[*types.BGMStats](userId) dataSetBGMData = NewDataSetBGMDataAvg(deviceId, datumTime, 168, inTargetBloodGlucose) - err = types.AddData(&userBGMSummary.Stats.Buckets, dataSetBGMData, continuousUploads) + err = types.AddData(&userBGMSummary.Stats.Buckets, dataSetBGMData) Expect(err).ToNot(HaveOccurred()) Expect(len(userBGMSummary.Stats.Buckets)).To(Equal(168)) @@ -144,7 +141,7 @@ var _ = Describe("BGM Summary", func() { It("Returns correct hour count when given 3 weeks", func() { userBGMSummary = types.Create[*types.BGMStats](userId) dataSetBGMData = NewDataSetBGMDataAvg(deviceId, datumTime, 504, inTargetBloodGlucose) - err = types.AddData(&userBGMSummary.Stats.Buckets, dataSetBGMData, continuousUploads) + err = types.AddData(&userBGMSummary.Stats.Buckets, dataSetBGMData) Expect(err).ToNot(HaveOccurred()) Expect(len(userBGMSummary.Stats.Buckets)).To(Equal(504)) @@ -163,7 +160,7 @@ var _ = Describe("BGM Summary", func() { doubledBGMData[i*2] = dataSetBGMData[i] doubledBGMData[i*2+1] = dataSetBGMDataTwo[i] } - err = types.AddData(&userBGMSummary.Stats.Buckets, dataSetBGMData, continuousUploads) + err = types.AddData(&userBGMSummary.Stats.Buckets, dataSetBGMData) Expect(err).ToNot(HaveOccurred()) Expect(len(userBGMSummary.Stats.Buckets)).To(Equal(24)) @@ -175,11 +172,11 @@ var _ = Describe("BGM Summary", func() { userBGMSummary = types.Create[*types.BGMStats](userId) dataSetBGMData = NewDataSetBGMDataAvg(deviceId, datumTime, 24, inTargetBloodGlucose) - err = types.AddData(&userBGMSummary.Stats.Buckets, dataSetBGMData, continuousUploads) + err = types.AddData(&userBGMSummary.Stats.Buckets, dataSetBGMData) Expect(err).ToNot(HaveOccurred()) dataSetBGMData = NewDataSetBGMDataAvg(deviceId, datumTime.Add(15*time.Second), 24, inTargetBloodGlucose) - err = types.AddData(&userBGMSummary.Stats.Buckets, dataSetBGMData, continuousUploads) + err = types.AddData(&userBGMSummary.Stats.Buckets, dataSetBGMData) Expect(err).ToNot(HaveOccurred()) Expect(len(userBGMSummary.Stats.Buckets)).To(Equal(24)) @@ -195,7 +192,7 @@ var _ = Describe("BGM Summary", func() { userBGMSummary = types.Create[*types.BGMStats](userId) dataSetBGMData = NewDataSetBGMDataAvg(deviceId, datumTime, 168, inTargetBloodGlucose) - err = types.AddData(&userBGMSummary.Stats.Buckets, dataSetBGMData, continuousUploads) + err = types.AddData(&userBGMSummary.Stats.Buckets, dataSetBGMData) Expect(err).ToNot(HaveOccurred()) Expect(len(userBGMSummary.Stats.Buckets)).To(Equal(168)) @@ -210,7 +207,7 @@ var _ = Describe("BGM Summary", func() { } dataSetBGMData = NewDataSetBGMDataAvg(deviceId, secondDatumTime, 168, secondRequestedAvgGlucose) - err = types.AddData(&userBGMSummary.Stats.Buckets, dataSetBGMData, continuousUploads) + err = types.AddData(&userBGMSummary.Stats.Buckets, dataSetBGMData) Expect(err).ToNot(HaveOccurred()) Expect(len(userBGMSummary.Stats.Buckets)).To(Equal(528)) // 22 days @@ -238,7 +235,7 @@ var _ = Describe("BGM Summary", func() { userBGMSummary = types.Create[*types.BGMStats](userId) dataSetBGMData = NewDataSetBGMDataAvg(deviceId, datumTime, 144, inTargetBloodGlucose) - err = types.AddData(&userBGMSummary.Stats.Buckets, dataSetBGMData, continuousUploads) + err = types.AddData(&userBGMSummary.Stats.Buckets, dataSetBGMData) Expect(err).ToNot(HaveOccurred()) Expect(len(userBGMSummary.Stats.Buckets)).To(Equal(144)) @@ -247,7 +244,7 @@ var _ = Describe("BGM Summary", func() { incrementalDatumTime = datumTime.Add(time.Duration(i) * time.Hour) dataSetBGMData = NewDataSetBGMDataAvg(deviceId, incrementalDatumTime, 1, float64(i)) - err = types.AddData(&userBGMSummary.Stats.Buckets, dataSetBGMData, continuousUploads) + err = types.AddData(&userBGMSummary.Stats.Buckets, dataSetBGMData) Expect(err).ToNot(HaveOccurred()) Expect(len(userBGMSummary.Stats.Buckets)).To(Equal(144 + i)) Expect(userBGMSummary.Stats.Buckets[i].Data.TotalRecords).To(Equal(6)) @@ -279,7 +276,7 @@ var _ = Describe("BGM Summary", func() { dataSetBGMData = append(dataSetBGMDataOne, dataSetBGMDataTwo...) dataSetBGMData = append(dataSetBGMData, dataSetBGMDataThree...) - err = types.AddData(&userBGMSummary.Stats.Buckets, dataSetBGMData, continuousUploads) + err = types.AddData(&userBGMSummary.Stats.Buckets, dataSetBGMData) Expect(err).ToNot(HaveOccurred()) Expect(len(userBGMSummary.Stats.Buckets)).To(Equal(72)) @@ -312,15 +309,15 @@ var _ = Describe("BGM Summary", func() { dataSetBGMDataFive := NewDataSetBGMDataRanges(deviceId, datumTime, 1, veryHighRange) // we do this a different way (multiple calls) than the last unit test for extra pattern coverage - err = types.AddData(&userBGMSummary.Stats.Buckets, dataSetBGMDataOne, continuousUploads) + err = types.AddData(&userBGMSummary.Stats.Buckets, dataSetBGMDataOne) Expect(err).ToNot(HaveOccurred()) - err = types.AddData(&userBGMSummary.Stats.Buckets, dataSetBGMDataTwo, continuousUploads) + err = types.AddData(&userBGMSummary.Stats.Buckets, dataSetBGMDataTwo) Expect(err).ToNot(HaveOccurred()) - err = types.AddData(&userBGMSummary.Stats.Buckets, dataSetBGMDataThree, continuousUploads) + err = types.AddData(&userBGMSummary.Stats.Buckets, dataSetBGMDataThree) Expect(err).ToNot(HaveOccurred()) - err = types.AddData(&userBGMSummary.Stats.Buckets, dataSetBGMDataFour, continuousUploads) + err = types.AddData(&userBGMSummary.Stats.Buckets, dataSetBGMDataFour) Expect(err).ToNot(HaveOccurred()) - err = types.AddData(&userBGMSummary.Stats.Buckets, dataSetBGMDataFive, continuousUploads) + err = types.AddData(&userBGMSummary.Stats.Buckets, dataSetBGMDataFive) Expect(err).ToNot(HaveOccurred()) Expect(len(userBGMSummary.Stats.Buckets)).To(Equal(5)) @@ -370,81 +367,6 @@ var _ = Describe("BGM Summary", func() { Expect(userBGMSummary.Stats.Buckets[4].Data.HighRecords).To(Equal(0)) Expect(userBGMSummary.Stats.Buckets[4].Data.VeryHighRecords).To(Equal(5)) }) - - It("Returns correct Realtime and Deferred record stats with realtime data", func() { - userBGMSummary = types.Create[*types.BGMStats](userId) - realtimeDatumTime := time.Now().UTC().Truncate(time.Hour) - dataSetBGMData = NewDataSetDataRealtime(selfmonitored.Type, realtimeDatumTime, 10, true) - - // flag upload as continuous - continuousUploads[*dataSetBGMData[0].UploadID] = true - - err = types.AddData(&userBGMSummary.Stats.Buckets, dataSetBGMData, continuousUploads) - - Expect(err).ToNot(HaveOccurred()) - Expect(len(userBGMSummary.Stats.Buckets)).To(Equal(10)) - - for i := 0; i < len(userBGMSummary.Stats.Buckets); i++ { - Expect(userBGMSummary.Stats.Buckets[i].Data.RealtimeRecords).To(Equal(2)) - Expect(userBGMSummary.Stats.Buckets[i].Data.DeferredRecords).To(Equal(0)) - } - }) - - It("Returns correct Realtime and Deferred record stats with deferred data", func() { - userBGMSummary = types.Create[*types.BGMStats](userId) - - // by default non-realtime datums will be made with time.now createdTime, so we generate 2 day old data - deferredDatumTime := time.Now().UTC().Truncate(time.Hour).AddDate(0, 0, -2) - dataSetBGMData = NewDataSetDataRealtime(selfmonitored.Type, deferredDatumTime, 10, false) - - // flag upload as continuous - continuousUploads[*dataSetBGMData[0].UploadID] = true - - err = types.AddData(&userBGMSummary.Stats.Buckets, dataSetBGMData, continuousUploads) - - Expect(err).ToNot(HaveOccurred()) - Expect(len(userBGMSummary.Stats.Buckets)).To(Equal(10)) - - for i := 0; i < len(userBGMSummary.Stats.Buckets); i++ { - Expect(userBGMSummary.Stats.Buckets[i].Data.RealtimeRecords).To(Equal(0)) - Expect(userBGMSummary.Stats.Buckets[i].Data.DeferredRecords).To(Equal(2)) - } - }) - - It("Returns correct Realtime and Deferred record stats with false continuous flagged data", func() { - userBGMSummary = types.Create[*types.BGMStats](userId) - realtimeDatumTime := time.Now().UTC().Truncate(time.Hour) - dataSetBGMData = NewDataSetDataRealtime(selfmonitored.Type, realtimeDatumTime, 10, true) - - // flag upload as not continuous - continuousUploads[*dataSetBGMData[0].UploadID] = false - - err = types.AddData(&userBGMSummary.Stats.Buckets, dataSetBGMData, continuousUploads) - - Expect(err).ToNot(HaveOccurred()) - Expect(len(userBGMSummary.Stats.Buckets)).To(Equal(10)) - - for i := 0; i < len(userBGMSummary.Stats.Buckets); i++ { - Expect(userBGMSummary.Stats.Buckets[i].Data.RealtimeRecords).To(Equal(0)) - Expect(userBGMSummary.Stats.Buckets[i].Data.DeferredRecords).To(Equal(0)) - } - }) - - It("Returns correct Realtime and Deferred record stats with non flagged data", func() { - userBGMSummary = types.Create[*types.BGMStats](userId) - realtimeDatumTime := time.Now().UTC().Truncate(time.Hour) - dataSetBGMData = NewDataSetDataRealtime(selfmonitored.Type, realtimeDatumTime, 10, true) - - err = types.AddData(&userBGMSummary.Stats.Buckets, dataSetBGMData, continuousUploads) - - Expect(err).ToNot(HaveOccurred()) - Expect(len(userBGMSummary.Stats.Buckets)).To(Equal(10)) - - for i := 0; i < len(userBGMSummary.Stats.Buckets); i++ { - Expect(userBGMSummary.Stats.Buckets[i].Data.RealtimeRecords).To(Equal(0)) - Expect(userBGMSummary.Stats.Buckets[i].Data.DeferredRecords).To(Equal(0)) - } - }) }) Context("CalculateDelta", func() { diff --git a/data/summary/types/cgm.go b/data/summary/types/cgm.go index ed62a3558..d0dc073aa 100644 --- a/data/summary/types/cgm.go +++ b/data/summary/types/cgm.go @@ -681,7 +681,3 @@ func (s *CGMStats) CalculatePeriod(i int, offset bool, totalStats *CGMBucketData } } - -func (s *CGMStats) GetNumberOfDaysWithRealtimeData(_ time.Time, _ time.Time) (count int) { - return -1 -} diff --git a/data/summary/types/continuous_test.go b/data/summary/types/continuous_test.go index 8de49ec3e..ea6c48acd 100644 --- a/data/summary/types/continuous_test.go +++ b/data/summary/types/continuous_test.go @@ -1,19 +1,12 @@ package types_test import ( - "context" "fmt" + "github.com/tidepool-org/platform/data/types/blood/glucose/continuous" "time" - dataStoreMongo "github.com/tidepool-org/platform/data/store/mongo" + summaryTest "github.com/tidepool-org/platform/data/summary/types/test" "github.com/tidepool-org/platform/data/test" - storeStructuredMongoTest "github.com/tidepool-org/platform/store/structured/mongo/test" - - "go.mongodb.org/mongo-driver/mongo" - - "github.com/tidepool-org/platform/log" - logTest "github.com/tidepool-org/platform/log/test" - userTest "github.com/tidepool-org/platform/user/test" . "github.com/onsi/ginkgo/v2" @@ -56,16 +49,12 @@ func NewDataSetDataRealtime(t string, startTime time.Time, hours float64, realti var _ = Describe("Continuous Summary", func() { var userId string var datumTime time.Time - var logger log.Logger - var ctx context.Context var err error - var dataSetCGMData []*glucose.Glucose + var dataSetContinuousData []*glucose.Glucose BeforeEach(func() { - logger = logTest.NewLogger() - ctx = log.NewContextWithLogger(context.Background(), logger) userId = userTest.RandomID() - datumTime = time.Date(2016, time.Month(1), 1, 0, 0, 0, 0, time.UTC) + datumTime = time.Now().UTC().Truncate(time.Hour) }) Context("Create Summary", func() { @@ -85,8 +74,8 @@ var _ = Describe("Continuous Summary", func() { Context("AddData Bucket Testing", func() { It("Returns correct hour count when given 2 weeks", func() { userContinuousSummary = types.Create[*types.ContinuousStats](userId) - dataSetCGMData = NewDataSetCGMDataAvg(datumTime, 336, inTargetBloodGlucose) - err = types.AddData(&userContinuousSummary.Stats.Buckets, dataSetCGMData) + dataSetContinuousData = NewDataSetDataRealtime(continuous.Type, datumTime, 336, true) + err = types.AddData(&userContinuousSummary.Stats.Buckets, dataSetContinuousData) Expect(err).ToNot(HaveOccurred()) Expect(len(userContinuousSummary.Stats.Buckets)).To(Equal(336)) @@ -94,8 +83,8 @@ var _ = Describe("Continuous Summary", func() { It("Returns correct hour count when given 1 week", func() { userContinuousSummary = types.Create[*types.ContinuousStats](userId) - dataSetCGMData = NewDataSetCGMDataAvg(datumTime, 168, inTargetBloodGlucose) - err = types.AddData(&userContinuousSummary.Stats.Buckets, dataSetCGMData) + dataSetContinuousData = NewDataSetDataRealtime(continuous.Type, datumTime, 168, true) + err = types.AddData(&userContinuousSummary.Stats.Buckets, dataSetContinuousData) Expect(err).ToNot(HaveOccurred()) Expect(len(userContinuousSummary.Stats.Buckets)).To(Equal(168)) @@ -103,8 +92,8 @@ var _ = Describe("Continuous Summary", func() { It("Returns correct hour count when given 3 weeks", func() { userContinuousSummary = types.Create[*types.ContinuousStats](userId) - dataSetCGMData = NewDataSetCGMDataAvg(datumTime, 504, inTargetBloodGlucose) - err = types.AddData(&userContinuousSummary.Stats.Buckets, dataSetCGMData) + dataSetContinuousData = NewDataSetDataRealtime(continuous.Type, datumTime, 504, true) + err = types.AddData(&userContinuousSummary.Stats.Buckets, dataSetContinuousData) Expect(err).ToNot(HaveOccurred()) Expect(len(userContinuousSummary.Stats.Buckets)).To(Equal(504)) @@ -113,22 +102,22 @@ var _ = Describe("Continuous Summary", func() { It("Returns correct records when given >60d of data", func() { userContinuousSummary = types.Create[*types.ContinuousStats](userId) - dataSetCGMData = NewDataSetCGMDataRanges(datumTime, 5, NewDataRangesSingle(lowBloodGlucose-0.5)) - err = types.AddData(&userContinuousSummary.Stats.Buckets, dataSetCGMData) + dataSetContinuousData = NewDataSetDataRealtime(continuous.Type, datumTime, 5, true) + err = types.AddData(&userContinuousSummary.Stats.Buckets, dataSetContinuousData) Expect(err).ToNot(HaveOccurred()) - Expect(userContinuousSummary.Stats.Buckets[0].Data.LowRecords).To(Equal(10)) + Expect(userContinuousSummary.Stats.Buckets[0].Data.TotalRecords).To(Equal(2)) - dataSetCGMData = NewDataSetCGMDataRanges(datumTime.Add(1*time.Hour), 1, NewDataRangesSingle(highBloodGlucose+0.5)) - err = types.AddData(&userContinuousSummary.Stats.Buckets, dataSetCGMData) + dataSetContinuousData = NewDataSetDataRealtime(continuous.Type, datumTime.Add(1*time.Hour), 1, true) + err = types.AddData(&userContinuousSummary.Stats.Buckets, dataSetContinuousData) Expect(err).ToNot(HaveOccurred()) - Expect(userContinuousSummary.Stats.Buckets[0].Data.LowRecords).To(Equal(10)) + Expect(userContinuousSummary.Stats.Buckets[0].Data.TotalRecords).To(Equal(2)) - dataSetCGMData = NewDataSetCGMDataRanges(datumTime.Add(24*60*time.Hour), 1, NewDataRangesSingle(inTargetBloodGlucose-0.5)) - err = types.AddData(&userContinuousSummary.Stats.Buckets, dataSetCGMData) + dataSetContinuousData = NewDataSetDataRealtime(continuous.Type, datumTime.Add(24*60*time.Hour), 1, true) + err = types.AddData(&userContinuousSummary.Stats.Buckets, dataSetContinuousData) Expect(err).ToNot(HaveOccurred()) - Expect(userContinuousSummary.Stats.Buckets[0].Data.HighRecords).To(Equal(10)) + Expect(userContinuousSummary.Stats.Buckets[0].Data.TotalRecords).To(Equal(2)) for i := 0; i < len(userContinuousSummary.Stats.Buckets); i++ { Expect(userContinuousSummary.Stats.Buckets[i]).ToNot(BeNil()) @@ -139,12 +128,12 @@ var _ = Describe("Continuous Summary", func() { It("Returns correct records when given data a full 60d ahead of previous data", func() { userContinuousSummary = types.Create[*types.ContinuousStats](userId) - dataSetCGMData = NewDataSetCGMDataRanges(datumTime, 1, NewDataRangesSingle(lowBloodGlucose-0.5)) - err = types.AddData(&userContinuousSummary.Stats.Buckets, dataSetCGMData) + dataSetContinuousData = NewDataSetDataRealtime(continuous.Type, datumTime, 1, true) + err = types.AddData(&userContinuousSummary.Stats.Buckets, dataSetContinuousData) Expect(err).ToNot(HaveOccurred()) - dataSetCGMData = NewDataSetCGMDataRanges(datumTime.Add(24*62*time.Hour), 1, NewDataRangesSingle(inTargetBloodGlucose-0.5)) - err = types.AddData(&userContinuousSummary.Stats.Buckets, dataSetCGMData) + dataSetContinuousData = NewDataSetDataRealtime(continuous.Type, datumTime.Add(24*62*time.Hour), 1, true) + err = types.AddData(&userContinuousSummary.Stats.Buckets, dataSetContinuousData) Expect(err).ToNot(HaveOccurred()) for i := 0; i < len(userContinuousSummary.Stats.Buckets); i++ { @@ -158,11 +147,10 @@ var _ = Describe("Continuous Summary", func() { var hourlyStatsLen int var newHourlyStatsLen int secondDatumTime := datumTime.AddDate(0, 0, 15) - secondRequestedAvgGlucose := lowBloodGlucose userContinuousSummary = types.Create[*types.ContinuousStats](userId) - dataSetCGMData = NewDataSetCGMDataAvg(datumTime, 168, inTargetBloodGlucose) - err = types.AddData(&userContinuousSummary.Stats.Buckets, dataSetCGMData) + dataSetContinuousData = NewDataSetDataRealtime(continuous.Type, datumTime, 168, true) + err = types.AddData(&userContinuousSummary.Stats.Buckets, dataSetContinuousData) Expect(err).ToNot(HaveOccurred()) Expect(len(userContinuousSummary.Stats.Buckets)).To(Equal(168)) @@ -170,32 +158,32 @@ var _ = Describe("Continuous Summary", func() { By("check total glucose and dates for first batch") hourlyStatsLen = len(userContinuousSummary.Stats.Buckets) for i := hourlyStatsLen - 1; i >= 0; i-- { - Expect(userContinuousSummary.Stats.Buckets[i].Data.TotalGlucose).To(BeNumerically("~", inTargetBloodGlucose*12*5, 0.001)) + Expect(userContinuousSummary.Stats.Buckets[i].Data.TotalRecords).To(Equal(2)) - lastRecordTime = datumTime.Add(-time.Hour*time.Duration(hourlyStatsLen-i-1) - 5*time.Minute) + lastRecordTime = datumTime.Add(-time.Hour*time.Duration(hourlyStatsLen-i-1) - 30*time.Minute) Expect(userContinuousSummary.Stats.Buckets[i].LastRecordTime).To(Equal(lastRecordTime)) } - dataSetCGMData = NewDataSetCGMDataAvg(secondDatumTime, 168, secondRequestedAvgGlucose) - err = types.AddData(&userContinuousSummary.Stats.Buckets, dataSetCGMData) + dataSetContinuousData = NewDataSetDataRealtime(continuous.Type, secondDatumTime, 168, true) + err = types.AddData(&userContinuousSummary.Stats.Buckets, dataSetContinuousData) Expect(err).ToNot(HaveOccurred()) Expect(len(userContinuousSummary.Stats.Buckets)).To(Equal(528)) // 22 days By("check total glucose and dates for second batch") newHourlyStatsLen = len(userContinuousSummary.Stats.Buckets) - expectedNewHourlyStatsLenStart := newHourlyStatsLen - len(dataSetCGMData)/12 // 12 per day, need length without the gap + expectedNewHourlyStatsLenStart := newHourlyStatsLen - len(dataSetContinuousData)/2 // 2 per day, need length without the gap for i := newHourlyStatsLen - 1; i >= expectedNewHourlyStatsLenStart; i-- { - Expect(userContinuousSummary.Stats.Buckets[i].Data.TotalGlucose).To(BeNumerically("~", secondRequestedAvgGlucose*12*5)) + Expect(userContinuousSummary.Stats.Buckets[i].Data.TotalRecords).To(Equal(2)) - lastRecordTime = secondDatumTime.Add(-time.Hour*time.Duration(newHourlyStatsLen-i-1) - 5*time.Minute) + lastRecordTime = secondDatumTime.Add(-time.Hour*time.Duration(newHourlyStatsLen-i-1) - 30*time.Minute) Expect(userContinuousSummary.Stats.Buckets[i].LastRecordTime).To(Equal(lastRecordTime)) } By("check total glucose and dates for gap") expectedGapEnd := newHourlyStatsLen - expectedNewHourlyStatsLenStart for i := hourlyStatsLen; i <= expectedGapEnd; i++ { - Expect(userContinuousSummary.Stats.Buckets[i].Data.TotalGlucose).To(Equal(float64(0))) + Expect(userContinuousSummary.Stats.Buckets[i].Data.TotalRecords).To(Equal(0)) } }) @@ -204,35 +192,30 @@ var _ = Describe("Continuous Summary", func() { var lastRecordTime time.Time userContinuousSummary = types.Create[*types.ContinuousStats](userId) - dataSetCGMData = NewDataSetCGMDataAvg(datumTime, 144, inTargetBloodGlucose) - err = types.AddData(&userContinuousSummary.Stats.Buckets, dataSetCGMData) + dataSetContinuousData = NewDataSetDataRealtime(continuous.Type, datumTime, 144, true) + err = types.AddData(&userContinuousSummary.Stats.Buckets, dataSetContinuousData) Expect(err).ToNot(HaveOccurred()) Expect(len(userContinuousSummary.Stats.Buckets)).To(Equal(144)) for i := 1; i <= 24; i++ { incrementalDatumTime = datumTime.Add(time.Duration(i) * time.Hour) - dataSetCGMData = NewDataSetCGMDataAvg(incrementalDatumTime, 1, float64(i)) + dataSetContinuousData = NewDataSetDataRealtime(continuous.Type, incrementalDatumTime, 1, true) - err = types.AddData(&userContinuousSummary.Stats.Buckets, dataSetCGMData) + err = types.AddData(&userContinuousSummary.Stats.Buckets, dataSetContinuousData) Expect(err).ToNot(HaveOccurred()) Expect(len(userContinuousSummary.Stats.Buckets)).To(Equal(144 + i)) - Expect(userContinuousSummary.Stats.Buckets[i].Data.TotalRecords).To(Equal(12)) + Expect(userContinuousSummary.Stats.Buckets[i].Data.TotalRecords).To(Equal(2)) } for i := 144; i < len(userContinuousSummary.Stats.Buckets); i++ { f := fmt.Sprintf("hour %d", i) By(f) - Expect(userContinuousSummary.Stats.Buckets[i].Data.TotalRecords).To(Equal(12)) - Expect(userContinuousSummary.Stats.Buckets[i].Data.TotalMinutes).To(Equal(60)) + Expect(userContinuousSummary.Stats.Buckets[i].Data.TotalRecords).To(Equal(2)) - lastRecordTime = datumTime.Add(time.Hour*time.Duration(i-143) - time.Minute*5) + lastRecordTime = datumTime.Add(time.Hour*time.Duration(i-143) - time.Minute*30) Expect(userContinuousSummary.Stats.Buckets[i].LastRecordTime).To(Equal(lastRecordTime)) - Expect(userContinuousSummary.Stats.Buckets[i].Data.TotalGlucose).To(BeNumerically("~", float64((i-143)*12*5), 0.001)) - - averageGlucoseMmol := userContinuousSummary.Stats.Buckets[i].Data.TotalGlucose / float64(userContinuousSummary.Stats.Buckets[i].Data.TotalMinutes) - Expect(averageGlucoseMmol).To(BeNumerically("~", i-143)) } }) @@ -241,163 +224,64 @@ var _ = Describe("Continuous Summary", func() { userContinuousSummary = types.Create[*types.ContinuousStats](userId) // Datasets use +1 and +2 offset to allow for checking via iteration - dataSetCGMDataOne := NewDataSetCGMDataAvg(datumTime.AddDate(0, 0, -2), 24, inTargetBloodGlucose) - dataSetCGMDataTwo := NewDataSetCGMDataAvg(datumTime.AddDate(0, 0, -1), 24, inTargetBloodGlucose+1) - dataSetCGMDataThree := NewDataSetCGMDataAvg(datumTime, 24, inTargetBloodGlucose+2) + dataSetContinuousDataOne := NewDataSetDataRealtime(continuous.Type, datumTime.AddDate(0, 0, -2), 24, true) + dataSetContinuousDataTwo := NewDataSetDataRealtime(continuous.Type, datumTime.AddDate(0, 0, -1), 24, true) + dataSetContinuousDataThree := NewDataSetDataRealtime(continuous.Type, datumTime, 24, true) - err = types.AddData(&userContinuousSummary.Stats.Buckets, dataSetCGMDataThree) + err = types.AddData(&userContinuousSummary.Stats.Buckets, dataSetContinuousDataThree) Expect(err).ToNot(HaveOccurred()) - err = types.AddData(&userContinuousSummary.Stats.Buckets, dataSetCGMDataTwo) + err = types.AddData(&userContinuousSummary.Stats.Buckets, dataSetContinuousDataTwo) Expect(err).ToNot(HaveOccurred()) - err = types.AddData(&userContinuousSummary.Stats.Buckets, dataSetCGMDataOne) + err = types.AddData(&userContinuousSummary.Stats.Buckets, dataSetContinuousDataOne) Expect(err).ToNot(HaveOccurred()) Expect(len(userContinuousSummary.Stats.Buckets)).To(Equal(72)) for i := len(userContinuousSummary.Stats.Buckets) - 1; i >= 0; i-- { By(fmt.Sprintf("hour %d", i+1)) - Expect(userContinuousSummary.Stats.Buckets[i].Data.TotalRecords).To(Equal(12)) - Expect(userContinuousSummary.Stats.Buckets[i].Data.TotalMinutes).To(Equal(60)) + Expect(userContinuousSummary.Stats.Buckets[i].Data.TotalRecords).To(Equal(2)) - lastRecordTime = datumTime.Add(-time.Hour*time.Duration(len(userContinuousSummary.Stats.Buckets)-i-1) - 5*time.Minute) + lastRecordTime = datumTime.Add(-time.Hour*time.Duration(len(userContinuousSummary.Stats.Buckets)-i-1) - 30*time.Minute) Expect(userContinuousSummary.Stats.Buckets[i].LastRecordTime).To(Equal(lastRecordTime)) } }) }) - Context("ClearInvalidatedBuckets", func() { - var dataStore types.DeviceDataFetcher - - BeforeEach(func() { - config := storeStructuredMongoTest.NewConfig() - store, err := dataStoreMongo.NewStore(config) - Expect(err).ToNot(HaveOccurred()) - dataStore = store.NewDataRepository() - }) - - It("trims the correct buckets", func() { - var dataSetCGMDataCursor types.DeviceDataCursor - userContinuousSummary = types.Create[*types.ContinuousStats](userId) - dataSetCGMData = NewDataSetCGMDataAvg(datumTime, 10, inTargetBloodGlucose) - dataSetCGMDataCursor, err = mongo.NewCursorFromDocuments(ConvertToIntArray(dataSetCGMData), nil, nil) - - err = userContinuousSummary.Stats.Update(ctx, dataSetCGMDataCursor, dataStore) - Expect(err).ToNot(HaveOccurred()) - Expect(len(userContinuousSummary.Stats.Buckets)).To(Equal(10)) - Expect(userContinuousSummary.Stats.TotalHours).To(Equal(10)) - - firstData := userContinuousSummary.Stats.ClearInvalidatedBuckets(datumTime.Add(-5 * time.Hour)) + Context("GetPatientsWithRealtimeData", func() { - // we have the right length - Expect(len(userContinuousSummary.Stats.Buckets)).To(Equal(5)) + It("with some realtime data", func() { + endTime := time.Now().UTC().Truncate(time.Hour * 24) + startTime := endTime.AddDate(0, 0, -30) - // we didn't overshoot and nil something we shouldn't have - Expect(userContinuousSummary.Stats.Buckets[len(userContinuousSummary.Stats.Buckets)-1]).ToNot(BeNil()) + userContinuousSummary = summaryTest.NewRealtimeSummary(userId, startTime, endTime, 15) - Expect(firstData).To(Equal(userContinuousSummary.Stats.Buckets[len(userContinuousSummary.Stats.Buckets)-1].LastRecordTime)) + count := userContinuousSummary.Stats.GetNumberOfDaysWithRealtimeData(startTime, endTime) + Expect(count).To(Equal(15)) }) - It("trims the all buckets with data beyond the beginning of the buckets", func() { - var dataSetCGMDataCursor types.DeviceDataCursor - userContinuousSummary = types.Create[*types.ContinuousStats](userId) - dataSetCGMData = NewDataSetCGMDataAvg(datumTime, 10, inTargetBloodGlucose) - dataSetCGMDataCursor, err = mongo.NewCursorFromDocuments(ConvertToIntArray(dataSetCGMData), nil, nil) - - err = userContinuousSummary.Stats.Update(ctx, dataSetCGMDataCursor, dataStore) - Expect(err).ToNot(HaveOccurred()) - Expect(len(userContinuousSummary.Stats.Buckets)).To(Equal(10)) - Expect(userContinuousSummary.Stats.TotalHours).To(Equal(10)) - - firstData := userContinuousSummary.Stats.ClearInvalidatedBuckets(datumTime.Add(-15 * time.Hour)) + It("with no realtime data", func() { + endTime := time.Now().UTC().Truncate(time.Hour * 24) + startTime := endTime.AddDate(0, 0, -30) - // we have the right length - Expect(len(userContinuousSummary.Stats.Buckets)).To(Equal(0)) + userContinuousSummary = summaryTest.NewRealtimeSummary(userId, startTime, endTime, 0) - Expect(firstData.IsZero()).To(BeTrue()) + count := userContinuousSummary.Stats.GetNumberOfDaysWithRealtimeData(startTime, endTime) + Expect(count).To(Equal(0)) }) - It("doesnt trim if only modified in the future", func() { - var dataSetCGMDataCursor types.DeviceDataCursor - userContinuousSummary = types.Create[*types.ContinuousStats](userId) - dataSetCGMData = NewDataSetCGMDataAvg(datumTime, 10, inTargetBloodGlucose) - dataSetCGMDataCursor, err = mongo.NewCursorFromDocuments(ConvertToIntArray(dataSetCGMData), nil, nil) + It("with 60d of realtime data", func() { + endTime := time.Now().UTC().Truncate(time.Hour * 24) + startTime := endTime.AddDate(0, 0, -30) - err = userContinuousSummary.Stats.Update(ctx, dataSetCGMDataCursor, dataStore) - Expect(err).ToNot(HaveOccurred()) - Expect(len(userContinuousSummary.Stats.Buckets)).To(Equal(10)) - Expect(userContinuousSummary.Stats.TotalHours).To(Equal(10)) - - firstData := userContinuousSummary.Stats.ClearInvalidatedBuckets(datumTime.Add(time.Hour)) - - // we have the right length - Expect(len(userContinuousSummary.Stats.Buckets)).To(Equal(10)) + userContinuousSummary = summaryTest.NewRealtimeSummary(userId, startTime, endTime, 60) - // we didn't overshoot and nil something we shouldn't have - Expect(userContinuousSummary.Stats.Buckets[len(userContinuousSummary.Stats.Buckets)-1]).ToNot(BeNil()) - - Expect(firstData).To(Equal(userContinuousSummary.Stats.Buckets[len(userContinuousSummary.Stats.Buckets)-1].LastRecordTime)) - }) - - It("doesnt trim if only modified on the same hour, but after the bucket time", func() { - var dataSetCGMDataCursor types.DeviceDataCursor - userContinuousSummary = types.Create[*types.ContinuousStats](userId) - midDatumTime := datumTime.Add(30 * time.Minute) - dataSetCGMData = NewDataSetCGMDataAvg(midDatumTime, 9, inTargetBloodGlucose) - dataSetCGMDataCursor, err = mongo.NewCursorFromDocuments(ConvertToIntArray(dataSetCGMData), nil, nil) - - err = userContinuousSummary.Stats.Update(ctx, dataSetCGMDataCursor, dataStore) + count := userContinuousSummary.Stats.GetNumberOfDaysWithRealtimeData(startTime, endTime) Expect(err).ToNot(HaveOccurred()) - Expect(len(userContinuousSummary.Stats.Buckets)).To(Equal(10)) - Expect(userContinuousSummary.Stats.TotalHours).To(Equal(10)) - - firstData := userContinuousSummary.Stats.ClearInvalidatedBuckets(midDatumTime.Add(10 * time.Minute)) - - // we have the right length - Expect(len(userContinuousSummary.Stats.Buckets)).To(Equal(10)) - - // we didn't overshoot and nil something we shouldn't have - Expect(userContinuousSummary.Stats.Buckets[len(userContinuousSummary.Stats.Buckets)-1]).ToNot(BeNil()) - - Expect(firstData).To(Equal(userContinuousSummary.Stats.Buckets[len(userContinuousSummary.Stats.Buckets)-1].LastRecordTime)) + Expect(count).To(Equal(30)) }) - It("trims if modified on the same hour, and before the bucket time", func() { - var dataSetCGMDataCursor types.DeviceDataCursor - userContinuousSummary = types.Create[*types.ContinuousStats](userId) - midDatumTime := datumTime.Add(30 * time.Minute) - dataSetCGMData = NewDataSetCGMDataAvg(midDatumTime, 9, inTargetBloodGlucose) - dataSetCGMDataCursor, err = mongo.NewCursorFromDocuments(ConvertToIntArray(dataSetCGMData), nil, nil) - - err = userContinuousSummary.Stats.Update(ctx, dataSetCGMDataCursor, dataStore) - Expect(err).ToNot(HaveOccurred()) - Expect(len(userContinuousSummary.Stats.Buckets)).To(Equal(10)) - Expect(userContinuousSummary.Stats.TotalHours).To(Equal(10)) - - firstData := userContinuousSummary.Stats.ClearInvalidatedBuckets(midDatumTime.Add(-10 * time.Minute)) - - // we have the right length - Expect(len(userContinuousSummary.Stats.Buckets)).To(Equal(9)) - - // we didn't overshoot and nil something we shouldn't have - Expect(userContinuousSummary.Stats.Buckets[len(userContinuousSummary.Stats.Buckets)-1]).ToNot(BeNil()) - - Expect(firstData).To(Equal(userContinuousSummary.Stats.Buckets[len(userContinuousSummary.Stats.Buckets)-1].LastRecordTime)) - }) - - It("successfully does nothing if there are no buckets", func() { - userContinuousSummary = types.Create[*types.ContinuousStats](userId) - Expect(len(userContinuousSummary.Stats.Buckets)).To(Equal(0)) - Expect(userContinuousSummary.Stats.TotalHours).To(Equal(0)) - - firstData := userContinuousSummary.Stats.ClearInvalidatedBuckets(datumTime) - - // we have the right length - Expect(len(userContinuousSummary.Stats.Buckets)).To(Equal(0)) - - Expect(firstData.IsZero()).To(BeTrue()) - }) }) }) }) diff --git a/data/summary/types/summary.go b/data/summary/types/summary.go index 02e178193..9971fad53 100644 --- a/data/summary/types/summary.go +++ b/data/summary/types/summary.go @@ -86,8 +86,8 @@ type DeviceDataCursor interface { type DeviceDataFetcher interface { GetDataSetByID(ctx context.Context, dataSetID string) (*upload.Upload, error) - GetLastUpdatedForUser(ctx context.Context, userId string, typ []string, lastUpdated time.Time) (*data.UserLastUpdated, error) - GetDataRange(ctx context.Context, userId string, typ []string, status *data.UserLastUpdated) (*mongo.Cursor, error) + GetLastUpdatedForUser(ctx context.Context, userId string, typ []string, lastUpdated time.Time) (*data.UserDataStatus, error) + GetDataRange(ctx context.Context, userId string, typ []string, status *data.UserDataStatus) (*mongo.Cursor, error) DistinctUserIDs(ctx context.Context, typ []string) ([]string, error) } @@ -119,7 +119,7 @@ type Dates struct { OutdatedReason []string `json:"outdatedReason" bson:"outdatedReason"` } -func (d *Dates) Update(status *data.UserLastUpdated, firstBucketDate time.Time) { +func (d *Dates) Update(status *data.UserDataStatus, firstBucketDate time.Time) { d.LastUpdatedDate = status.NextLastUpdated d.LastUpdatedReason = d.OutdatedReason @@ -169,7 +169,6 @@ type StatsPt[T Stats] interface { GetBucketDate(int) time.Time Update(context.Context, DeviceDataCursor, DeviceDataFetcher) error ClearInvalidatedBuckets(earliestModified time.Time) time.Time - GetNumberOfDaysWithRealtimeData(startTime time.Time, endTime time.Time) (count int) } type Summary[A StatsPt[T], T Stats] struct { From 97500dc4a691077bea2b3e6ec860ad26407edd32 Mon Sep 17 00:00:00 2001 From: Alexander Diana Date: Tue, 2 Apr 2024 03:44:05 +0000 Subject: [PATCH 17/34] add continuous type to task service --- data/client/client.go | 42 ++++++++++++++++++ data/service/api/v1/summary.go | 5 +++ data/summary/api.go | 3 +- data/summary/store/store_test.go | 3 +- data/summary/summary.go | 4 +- data/summary/types/continuous.go | 5 ++- data/summary/types/continuous_test.go | 3 +- task/summary/backfillrunner.go | 7 +++ task/summary/migrationrunner.go | 45 +++++++++++++++++++ task/summary/updaterunner.go | 62 +++++++++++++++++++++++++++ 10 files changed, 173 insertions(+), 6 deletions(-) diff --git a/data/client/client.go b/data/client/client.go index 4dd6ca5b2..a096b6e91 100644 --- a/data/client/client.go +++ b/data/client/client.go @@ -34,8 +34,10 @@ type Client interface { GetCGMSummary(ctx context.Context, id string) (*types.Summary[*types.CGMStats, types.CGMStats], error) GetBGMSummary(ctx context.Context, id string) (*types.Summary[*types.BGMStats, types.BGMStats], error) + GetContinuousSummary(ctx context.Context, id string) (*types.Summary[*types.ContinuousStats, types.ContinuousStats], error) UpdateCGMSummary(ctx context.Context, id string) (*types.Summary[*types.CGMStats, types.CGMStats], error) UpdateBGMSummary(ctx context.Context, id string) (*types.Summary[*types.BGMStats, types.BGMStats], error) + UpdateContinuousSummary(ctx context.Context, id string) (*types.Summary[*types.ContinuousStats, types.ContinuousStats], error) GetOutdatedUserIDs(ctx context.Context, t string, pagination *page.Pagination) (*types.OutdatedSummariesResponse, error) GetMigratableUserIDs(ctx context.Context, t string, pagination *page.Pagination) ([]string, error) BackfillSummaries(ctx context.Context, t string) (int, error) @@ -169,6 +171,26 @@ func (c *ClientImpl) GetBGMSummary(ctx context.Context, userId string) (*types.S return summary, nil } +func (c *ClientImpl) GetContinuousSummary(ctx context.Context, userId string) (*types.Summary[*types.ContinuousStats, types.ContinuousStats], error) { + if ctx == nil { + return nil, errors.New("context is missing") + } + if userId == "" { + return nil, errors.New("id is missing") + } + + url := c.client.ConstructURL("v1", "summaries", "continuous", userId) + summary := &types.Summary[*types.ContinuousStats, types.ContinuousStats]{} + if err := c.client.RequestData(ctx, http.MethodGet, url, nil, nil, summary); err != nil { + if request.IsErrorResourceNotFound(err) { + return nil, nil + } + return nil, err + } + + return summary, nil +} + func (c *ClientImpl) UpdateCGMSummary(ctx context.Context, userId string) (*types.Summary[*types.CGMStats, types.CGMStats], error) { if ctx == nil { return nil, errors.New("context is missing") @@ -209,6 +231,26 @@ func (c *ClientImpl) UpdateBGMSummary(ctx context.Context, userId string) (*type return summary, nil } +func (c *ClientImpl) UpdateContinuousSummary(ctx context.Context, userId string) (*types.Summary[*types.ContinuousStats, types.ContinuousStats], error) { + if ctx == nil { + return nil, errors.New("context is missing") + } + if userId == "" { + return nil, errors.New("id is missing") + } + + url := c.client.ConstructURL("v1", "summaries", "continuous", userId) + summary := &types.Summary[*types.ContinuousStats, types.ContinuousStats]{} + if err := c.client.RequestData(ctx, http.MethodPost, url, nil, nil, summary); err != nil { + if request.IsErrorResourceNotFound(err) { + return nil, nil + } + return nil, err + } + + return summary, nil +} + func (c *ClientImpl) BackfillSummaries(ctx context.Context, typ string) (int, error) { var count int url := c.client.ConstructURL("v1", "summaries", "backfill", typ) diff --git a/data/service/api/v1/summary.go b/data/service/api/v1/summary.go index 4432ecd7d..30319cba6 100644 --- a/data/service/api/v1/summary.go +++ b/data/service/api/v1/summary.go @@ -20,18 +20,23 @@ func SummaryRoutes() []dataService.Route { return []dataService.Route{ dataService.Get("/v1/summaries/cgm/:userId", GetSummary[types.CGMStats, *types.CGMStats], api.RequireAuth), dataService.Get("/v1/summaries/bgm/:userId", GetSummary[types.BGMStats, *types.BGMStats], api.RequireAuth), + dataService.Get("/v1/summaries/continuous/:userId", GetSummary[types.ContinuousStats, *types.ContinuousStats], api.RequireAuth), dataService.Post("/v1/summaries/cgm/:userId", UpdateSummary[types.CGMStats, *types.CGMStats], api.RequireAuth), dataService.Post("/v1/summaries/bgm/:userId", UpdateSummary[types.BGMStats, *types.BGMStats], api.RequireAuth), + dataService.Post("/v1/summaries/continuous/:userId", UpdateSummary[types.ContinuousStats, *types.ContinuousStats], api.RequireAuth), dataService.Post("/v1/summaries/backfill/cgm", BackfillSummaries[types.CGMStats, *types.CGMStats], api.RequireAuth), dataService.Post("/v1/summaries/backfill/bgm", BackfillSummaries[types.BGMStats, *types.BGMStats], api.RequireAuth), + dataService.Post("/v1/summaries/backfill/continuous", BackfillSummaries[types.ContinuousStats, *types.ContinuousStats], api.RequireAuth), dataService.Get("/v1/summaries/outdated/cgm", GetOutdatedUserIDs[types.CGMStats, *types.CGMStats], api.RequireAuth), dataService.Get("/v1/summaries/outdated/bgm", GetOutdatedUserIDs[types.BGMStats, *types.BGMStats], api.RequireAuth), + dataService.Get("/v1/summaries/outdated/continuous", GetOutdatedUserIDs[types.ContinuousStats, *types.ContinuousStats], api.RequireAuth), dataService.Get("/v1/summaries/migratable/cgm", GetMigratableUserIDs[types.CGMStats, *types.CGMStats], api.RequireAuth), dataService.Get("/v1/summaries/migratable/bgm", GetMigratableUserIDs[types.BGMStats, *types.BGMStats], api.RequireAuth), + dataService.Get("/v1/summaries/migratable/continuous", GetMigratableUserIDs[types.ContinuousStats, *types.ContinuousStats], api.RequireAuth), dataService.Get("/v1/clinics/:clinicId/reports/realtime", GetPatientsWithRealtimeData, api.RequireAuth), } diff --git a/data/summary/api.go b/data/summary/api.go index 29bd8c1cd..2258213f5 100644 --- a/data/summary/api.go +++ b/data/summary/api.go @@ -1,8 +1,9 @@ package summary import ( - "github.com/tidepool-org/platform/structure" "time" + + "github.com/tidepool-org/platform/structure" ) type RealtimePatientsResponse struct { diff --git a/data/summary/store/store_test.go b/data/summary/store/store_test.go index 9389c2451..a6bf65171 100644 --- a/data/summary/store/store_test.go +++ b/data/summary/store/store_test.go @@ -2,9 +2,10 @@ package store_test import ( "context" + "time" + "github.com/tidepool-org/platform/page" "github.com/tidepool-org/platform/pointer" - "time" . "github.com/onsi/ginkgo/v2" . "github.com/onsi/gomega" diff --git a/data/summary/summary.go b/data/summary/summary.go index 2d8cef3e9..28f146fd7 100644 --- a/data/summary/summary.go +++ b/data/summary/summary.go @@ -4,10 +4,12 @@ import ( "context" "errors" "fmt" + "time" + clinic "github.com/tidepool-org/clinic/client" + "github.com/tidepool-org/platform/clinics" "github.com/tidepool-org/platform/pointer" - "time" "github.com/tidepool-org/platform/data" diff --git a/data/summary/types/continuous.go b/data/summary/types/continuous.go index 37c818710..51933c455 100644 --- a/data/summary/types/continuous.go +++ b/data/summary/types/continuous.go @@ -4,11 +4,12 @@ import ( "context" "errors" "fmt" + "strconv" + "time" + glucoseDatum "github.com/tidepool-org/platform/data/types/blood/glucose" "github.com/tidepool-org/platform/data/types/upload" "github.com/tidepool-org/platform/pointer" - "strconv" - "time" ) type ContinuousBucketData struct { diff --git a/data/summary/types/continuous_test.go b/data/summary/types/continuous_test.go index ea6c48acd..ccdde96ac 100644 --- a/data/summary/types/continuous_test.go +++ b/data/summary/types/continuous_test.go @@ -2,9 +2,10 @@ package types_test import ( "fmt" - "github.com/tidepool-org/platform/data/types/blood/glucose/continuous" "time" + "github.com/tidepool-org/platform/data/types/blood/glucose/continuous" + summaryTest "github.com/tidepool-org/platform/data/summary/types/test" "github.com/tidepool-org/platform/data/test" userTest "github.com/tidepool-org/platform/user/test" diff --git a/task/summary/backfillrunner.go b/task/summary/backfillrunner.go index 8e6b62cb4..096baf52f 100644 --- a/task/summary/backfillrunner.go +++ b/task/summary/backfillrunner.go @@ -181,5 +181,12 @@ func (t *BackfillTaskRunner) Run(ctx context.Context) error { } t.logger.Info(fmt.Sprintf("Backfilled %d BGM summaries", count)) + t.logger.Debug("Starting User Continuous Summary Creation") + count, err = t.dataClient.BackfillSummaries(t.context, "continuous") + if err != nil { + return err + } + t.logger.Info(fmt.Sprintf("Backfilled %d Continuous summaries", count)) + return nil } diff --git a/task/summary/migrationrunner.go b/task/summary/migrationrunner.go index e36f961a1..06f713660 100644 --- a/task/summary/migrationrunner.go +++ b/task/summary/migrationrunner.go @@ -199,6 +199,12 @@ func (t *MigrationTaskRunner) Run(ctx context.Context, batch int) error { } t.logger.Debug("Finished User BGM Summary Migration") + t.logger.Debug("Starting User Continuous Summary Migration") + if err := t.UpdateBGMSummaries(outdatedBGMSummaryUserIDs); err != nil { + return err + } + t.logger.Debug("Finished User Continuous Summary Migration") + return nil } @@ -252,6 +258,31 @@ func (t *MigrationTaskRunner) UpdateBGMSummaries(userIDs []string) error { return eg.Wait() } +func (t *MigrationTaskRunner) UpdateContinuousSummaries(userIDs []string) error { + eg, ctx := errgroup.WithContext(t.context) + + eg.Go(func() error { + sem := semaphore.NewWeighted(MigrationWorkerCount) + for _, userID := range userIDs { + if err := sem.Acquire(ctx, 1); err != nil { + return err + } + + // we can't pass arguments to errgroup goroutines + // we need to explicitly redefine the variables, + // because we're launching the goroutines in a loop + userID := userID + eg.Go(func() error { + defer sem.Release(1) + return t.UpdateContinuousUserSummary(userID) + }) + } + + return nil + }) + return eg.Wait() +} + func (t *MigrationTaskRunner) UpdateCGMUserSummary(userID string) error { t.logger.WithField("UserID", userID).Debug("Updating User CGM Summary") @@ -279,3 +310,17 @@ func (t *MigrationTaskRunner) UpdateBGMUserSummary(userID string) error { return nil } + +func (t *MigrationTaskRunner) UpdateContinuousUserSummary(userID string) error { + t.logger.WithField("UserID", userID).Debug("Updating User Continuous Summary") + + // update summary + _, err := t.dataClient.UpdateContinuousSummary(t.context, userID) + if err != nil { + return err + } + + t.logger.WithField("UserID", userID).Debug("Finished Updating User Continuous Summary") + + return nil +} diff --git a/task/summary/updaterunner.go b/task/summary/updaterunner.go index 21c09e109..4f53f77fd 100644 --- a/task/summary/updaterunner.go +++ b/task/summary/updaterunner.go @@ -236,6 +236,33 @@ func (t *UpdateTaskRunner) Run(ctx context.Context, batch int) error { } t.logger.Debug("Finished User BGM Summary Update") + t.logger.Debug("Starting User Continuous Summary Update") + iCount = 0 + for { + t.logger.Info("Searching for User Continuous Summaries requiring Update") + outdatedContinuous, err := t.dataClient.GetOutdatedUserIDs(t.context, "continuous", pagination) + if err != nil { + return err + } + + if err = t.UpdateContinuousSummaries(outdatedContinuous.UserIds); err != nil { + return err + } + + if iCount > IterLimit { + t.logger.Warn("Exiting Continuous batch loop early, too many iterations") + break + } + + if outdatedContinuous.End.After(targetTime) || outdatedContinuous.End.IsZero() { + // we are sufficiently caught up + break + } + + iCount++ + } + t.logger.Debug("Finished User Continuous Summary Update") + return nil } @@ -308,3 +335,38 @@ func (t *UpdateTaskRunner) UpdateBGMSummaries(outdatedUserIds []string) error { }) return eg.Wait() } + +func (t *UpdateTaskRunner) UpdateContinuousSummaries(outdatedUserIds []string) error { + eg, ctx := errgroup.WithContext(t.context) + + eg.Go(func() error { + sem := semaphore.NewWeighted(UpdateWorkerCount) + for _, userID := range outdatedUserIds { + if err := sem.Acquire(ctx, 1); err != nil { + return err + } + + // we can't pass arguments to errgroup goroutines + // we need to explicitly redefine the variables, + // because we're launching the goroutines in a loop + userID := userID + eg.Go(func() error { + defer sem.Release(1) + t.logger.WithField("UserID", userID).Debug("Updating User Continuous Summary") + + // update summary + _, err := t.dataClient.UpdateContinuousSummary(t.context, userID) + if err != nil { + return err + } + + t.logger.WithField("UserID", userID).Debug("Finished Updating User Continuous Summary") + + return nil + }) + } + + return nil + }) + return eg.Wait() +} From 2bcff03010b4ef493a95c91127fecfc4ff61cf79 Mon Sep 17 00:00:00 2001 From: Alexander Diana Date: Tue, 2 Apr 2024 03:52:55 +0000 Subject: [PATCH 18/34] fix build --- data/service/service/client.go | 8 ++++++++ task/summary/migrationrunner.go | 8 +++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/data/service/service/client.go b/data/service/service/client.go index 75cb8b13d..be1df5814 100644 --- a/data/service/service/client.go +++ b/data/service/service/client.go @@ -81,3 +81,11 @@ func (c *Client) BackfillSummaries(ctx context.Context, t string) (int, error) { func (c *Client) GetMigratableUserIDs(ctx context.Context, t string, pagination *page.Pagination) ([]string, error) { panic("Not Implemented!") } + +func (c *Client) GetContinuousSummary(ctx context.Context, id string) (*types.Summary[*types.ContinuousStats, types.ContinuousStats], error) { + panic("Not Implemented!") +} + +func (c *Client) UpdateContinuousSummary(ctx context.Context, id string) (*types.Summary[*types.ContinuousStats, types.ContinuousStats], error) { + panic("Not Implemented!") +} diff --git a/task/summary/migrationrunner.go b/task/summary/migrationrunner.go index 06f713660..86201e2ab 100644 --- a/task/summary/migrationrunner.go +++ b/task/summary/migrationrunner.go @@ -187,6 +187,12 @@ func (t *MigrationTaskRunner) Run(ctx context.Context, batch int) error { return err } + t.logger.Info("Searching for User Continuous Summaries requiring Migration") + outdatedContinuousSummaryUserIDs, err := t.dataClient.GetMigratableUserIDs(t.context, "continuous", pagination) + if err != nil { + return err + } + t.logger.Debug("Starting User CGM Summary Migration") if err := t.UpdateCGMSummaries(outdatedCGMSummaryUserIDs); err != nil { return err @@ -200,7 +206,7 @@ func (t *MigrationTaskRunner) Run(ctx context.Context, batch int) error { t.logger.Debug("Finished User BGM Summary Migration") t.logger.Debug("Starting User Continuous Summary Migration") - if err := t.UpdateBGMSummaries(outdatedBGMSummaryUserIDs); err != nil { + if err := t.UpdateContinuousSummaries(outdatedContinuousSummaryUserIDs); err != nil { return err } t.logger.Debug("Finished User Continuous Summary Migration") From 785c3c8fd087b10e65837cc5c92a401f7cb08cb5 Mon Sep 17 00:00:00 2001 From: Alexander Diana Date: Thu, 4 Apr 2024 05:13:39 +0000 Subject: [PATCH 19/34] wip addressing review comments --- data/service/api/v1/summary.go | 3 +- .../api/v1/users_datasets_create_test.go | 5 +- data/service/context.go | 3 +- data/service/context/standard.go | 7 +- data/store/mongo/mongo_datum.go | 24 +-- data/store/test/data_repository.go | 25 --- data/summary/api.go | 47 ----- data/summary/reporters/realtime.go | 162 ++++++++++++++++++ data/summary/summary.go | 116 +------------ data/summary/types/continuous.go | 91 ++++++---- data/summary/types/summary.go | 2 +- task/summary/backfillrunner.go | 27 +-- 12 files changed, 251 insertions(+), 261 deletions(-) delete mode 100644 data/summary/api.go create mode 100644 data/summary/reporters/realtime.go diff --git a/data/service/api/v1/summary.go b/data/service/api/v1/summary.go index 30319cba6..f0bc4f7f0 100644 --- a/data/service/api/v1/summary.go +++ b/data/service/api/v1/summary.go @@ -2,6 +2,7 @@ package v1 import ( "context" + "github.com/tidepool-org/platform/data/summary/reporters" "net/http" "time" @@ -96,7 +97,7 @@ func GetPatientsWithRealtimeData(dataServiceContext dataService.Context) { clinicId := req.PathParam("clinicId") - filter := summary.NewRealtimePatientsFilter() + filter := reporters.NewPatientRealtimeDaysFilter() if err := request.DecodeRequestQuery(req.Request, filter); err != nil { responder.Error(http.StatusBadRequest, err) return diff --git a/data/service/api/v1/users_datasets_create_test.go b/data/service/api/v1/users_datasets_create_test.go index f32bdef27..40126aa70 100644 --- a/data/service/api/v1/users_datasets_create_test.go +++ b/data/service/api/v1/users_datasets_create_test.go @@ -1,6 +1,7 @@ package v1_test import ( + "github.com/tidepool-org/platform/data/summary/reporters" "io" "net/http" "strings" @@ -219,4 +220,6 @@ func (c *mockDataServiceContext) DataSourceClient() dataSource.Client { panic("not implemented") // TODO: Implement } -func (c *mockDataServiceContext) SummaryReporter() *summary.Reporter { panic("not implemented") } +func (c *mockDataServiceContext) SummaryReporter() *reporters.PatientRealtimeDaysReporter { + panic("not implemented") +} diff --git a/data/service/context.go b/data/service/context.go index 3ee8b83f5..7ea41f300 100644 --- a/data/service/context.go +++ b/data/service/context.go @@ -9,6 +9,7 @@ import ( dataSource "github.com/tidepool-org/platform/data/source" dataStore "github.com/tidepool-org/platform/data/store" "github.com/tidepool-org/platform/data/summary" + "github.com/tidepool-org/platform/data/summary/reporters" "github.com/tidepool-org/platform/metric" "github.com/tidepool-org/platform/permission" "github.com/tidepool-org/platform/service" @@ -30,7 +31,7 @@ type Context interface { AlertsRepository() alerts.Repository SummarizerRegistry() *summary.SummarizerRegistry - SummaryReporter() *summary.Reporter + SummaryReporter() *reporters.PatientRealtimeDaysReporter DataClient() dataClient.Client ClinicsClient() clinics.Client diff --git a/data/service/context/standard.go b/data/service/context/standard.go index 40fe24cd4..ca53dbf39 100644 --- a/data/service/context/standard.go +++ b/data/service/context/standard.go @@ -1,6 +1,7 @@ package context import ( + "github.com/tidepool-org/platform/data/summary/reporters" "net/http" "github.com/tidepool-org/platform/clinics" @@ -32,7 +33,7 @@ type Standard struct { dataRepository dataStore.DataRepository summaryRepository dataStore.SummaryRepository summarizerRegistry *summary.SummarizerRegistry - summaryReporter *summary.Reporter + summaryReporter *reporters.PatientRealtimeDaysReporter syncTaskStore syncTaskStore.Store syncTasksRepository syncTaskStore.SyncTaskRepository dataClient dataClient.Client @@ -169,9 +170,9 @@ func (s *Standard) SummarizerRegistry() *summary.SummarizerRegistry { return s.summarizerRegistry } -func (s *Standard) SummaryReporter() *summary.Reporter { +func (s *Standard) SummaryReporter() *reporters.PatientRealtimeDaysReporter { if s.summaryReporter == nil { - s.summaryReporter = summary.NewReporter(s.summarizerRegistry) + s.summaryReporter = reporters.NewReporter(s.summarizerRegistry) } return s.summaryReporter } diff --git a/data/store/mongo/mongo_datum.go b/data/store/mongo/mongo_datum.go index 8623c4f0a..eb6f0f2fa 100644 --- a/data/store/mongo/mongo_datum.go +++ b/data/store/mongo/mongo_datum.go @@ -557,7 +557,7 @@ func (d *DatumRepository) GetDataRange(ctx context.Context, userId string, typ [ return nil, errors.New("userId is empty") } - if len(typ) < 1 { + if len(typ) == 0 { return nil, errors.New("typ is empty") } @@ -634,10 +634,10 @@ func (d *DatumRepository) getTimeRange(ctx context.Context, userId string, typ [ }, } - if len(typ) > 1 { - selector["type"] = bson.M{"$in": typ} - } else { + if len(typ) == 1 { selector["type"] = typ[0] + } else { + selector["type"] = bson.M{"$in": typ} } findOptions := options.Find() @@ -675,10 +675,10 @@ func (d *DatumRepository) populateLastUpload(ctx context.Context, userId string, }, } - if len(typ) > 1 { - selector["type"] = bson.M{"$in": typ} - } else { + if len(typ) == 1 { selector["type"] = typ[0] + } else { + selector["type"] = bson.M{"$in": typ} } findOptions := options.Find() @@ -722,10 +722,10 @@ func (d *DatumRepository) populateEarliestModified(ctx context.Context, userId s }, } - if len(typ) > 1 { - selector["type"] = bson.M{"$in": typ} - } else { + if len(typ) == 1 { selector["type"] = typ[0] + } else { + selector["type"] = bson.M{"$in": typ} } findOptions := options.Find() @@ -772,7 +772,7 @@ func (d *DatumRepository) GetLastUpdatedForUser(ctx context.Context, userId stri return nil, errors.New("userId is empty") } - if len(typ) < 1 { + if len(typ) == 0 { return nil, errors.New("typ is empty") } @@ -817,7 +817,7 @@ func (d *DatumRepository) DistinctUserIDs(ctx context.Context, typ []string) ([] return nil, errors.New("context is missing") } - if len(typ) < 1 { + if len(typ) == 0 { return nil, errors.New("typ is empty") } diff --git a/data/store/test/data_repository.go b/data/store/test/data_repository.go index 084d8fb8d..39abe84f9 100644 --- a/data/store/test/data_repository.go +++ b/data/store/test/data_repository.go @@ -124,16 +124,6 @@ type GetDataSetOutput struct { Error error } -type IsDataSetAutomatedInput struct { - Context context.Context - ID string -} - -type IsDataSetAutomatedOutput struct { - Automated bool - Error error -} - type ListUserDataSetsInput struct { Context context.Context UserID string @@ -243,9 +233,6 @@ type DataRepository struct { GetDataSetInvocations int GetDataSetInputs []GetDataSetInput GetDataSetOutputs []GetDataSetOutput - IsDataSetAutomatedInvocations int - IsDataSetAutomatedInputs []IsDataSetAutomatedInput - IsDataSetAutomatedOutputs []IsDataSetAutomatedOutput GetDataRangeInvocations int GetDataRangeInputs []GetDataRangeInput @@ -299,18 +286,6 @@ func (d *DataRepository) GetDataSetByID(ctx context.Context, dataSetID string) ( return output.DataSet, output.Error } -func (d *DataRepository) IsDataSetAutomated(ctx context.Context, dataSetID string) (bool, error) { - d.IsDataSetAutomatedInvocations++ - - d.IsDataSetAutomatedInputs = append(d.IsDataSetAutomatedInputs, IsDataSetAutomatedInput{Context: ctx, ID: dataSetID}) - - gomega.Expect(d.IsDataSetAutomatedOutputs).ToNot(gomega.BeEmpty()) - - output := d.IsDataSetAutomatedOutputs[0] - d.IsDataSetAutomatedOutputs = d.IsDataSetAutomatedOutputs[1:] - return output.Automated, output.Error -} - func (d *DataRepository) CreateDataSet(ctx context.Context, dataSet *upload.Upload) error { d.CreateDataSetInvocations++ diff --git a/data/summary/api.go b/data/summary/api.go deleted file mode 100644 index 2258213f5..000000000 --- a/data/summary/api.go +++ /dev/null @@ -1,47 +0,0 @@ -package summary - -import ( - "time" - - "github.com/tidepool-org/platform/structure" -) - -type RealtimePatientsResponse struct { - Config RealtimePatientConfigResponse `json:"config"` - Results []RealtimePatientResponse `json:"results"` -} - -type RealtimePatientConfigResponse struct { - Code string `json:"code"` - ClinicId string `json:"clinicId"` - StartDate time.Time `json:"startDate"` - EndDate time.Time `json:"endDate"` -} - -type RealtimePatientResponse struct { - Id string `json:"id"` - FullName string `json:"fullName"` - BirthDate time.Time `json:"birthDate"` - MRN *string `json:"mrn"` - RealtimeDays int `json:"realtimeDays"` - HasSufficientData bool `json:"hasSufficientData"` -} - -type RealtimePatientsFilter struct { - StartTime *time.Time - EndTime *time.Time -} - -func NewRealtimePatientsFilter() *RealtimePatientsFilter { - return &RealtimePatientsFilter{} -} - -func (d *RealtimePatientsFilter) Parse(parser structure.ObjectParser) { - d.StartTime = parser.Time("startDate", time.RFC3339) - d.EndTime = parser.Time("endDate", time.RFC3339) -} - -func (d *RealtimePatientsFilter) Validate(validator structure.Validator) { - validator.Time("startDate", d.StartTime).NotZero() - validator.Time("endDate", d.EndTime).NotZero() -} diff --git a/data/summary/reporters/realtime.go b/data/summary/reporters/realtime.go new file mode 100644 index 000000000..00b962727 --- /dev/null +++ b/data/summary/reporters/realtime.go @@ -0,0 +1,162 @@ +package reporters + +import ( + "context" + "errors" + "fmt" + clinic "github.com/tidepool-org/clinic/client" + "github.com/tidepool-org/platform/clinics" + "github.com/tidepool-org/platform/data/summary" + "github.com/tidepool-org/platform/data/summary/types" + "github.com/tidepool-org/platform/pointer" + "github.com/tidepool-org/platform/structure" + "time" +) + +const ( + realtimeDaysThreshold = 16 + realtimePatientsLengthLimit = 1000 + realtimePatientsInsuranceCode = "CPT-99454" +) + +type PatientRealtimeDaysReporter struct { + summarizer summary.Summarizer[*types.ContinuousStats, types.ContinuousStats] +} + +func NewReporter(registry *summary.SummarizerRegistry) *PatientRealtimeDaysReporter { + summarizer := summary.GetSummarizer[*types.ContinuousStats](registry) + return &PatientRealtimeDaysReporter{ + summarizer: summarizer, + } +} + +func (r *PatientRealtimeDaysReporter) GetRealtimeDaysForPatients(ctx context.Context, clinicsClient clinics.Client, clinicId string, token string, startTime time.Time, endTime time.Time) (*PatientsRealtimeDaysResponse, error) { + params := &clinic.ListPatientsParams{ + Limit: pointer.FromAny(realtimePatientsLengthLimit + 1), + } + + patients, err := clinicsClient.GetPatients(ctx, clinicId, token, params) + if err != nil { + return nil, err + } + + if len(patients) > realtimePatientsLengthLimit { + return nil, fmt.Errorf("too many patients in clinic for report to succeed. (%d > limit %d)", len(patients), realtimePatientsLengthLimit) + } + + userIds := make([]string, len(patients)) + for i := 0; i < len(patients); i++ { + userIds[i] = *patients[0].Id + } + + userIdsRealtimeDays, err := r.GetRealtimeDaysForUsers(ctx, userIds, startTime, endTime) + if err != nil { + return nil, err + } + + patientsResponse := make([]PatientRealtimeDaysResponse, len(userIdsRealtimeDays)) + for i := 0; i < len(userIdsRealtimeDays); i++ { + patientsResponse[i] = PatientRealtimeDaysResponse{ + Id: *patients[i].Id, + FullName: patients[i].FullName, + BirthDate: patients[i].BirthDate.Time, + MRN: patients[i].Mrn, + RealtimeDays: userIdsRealtimeDays[*patients[i].Id], + HasSufficientData: userIdsRealtimeDays[*patients[i].Id] >= realtimeDaysThreshold, + } + } + + return &PatientsRealtimeDaysResponse{ + Config: PatientsRealtimeDaysConfigResponse{ + Code: realtimePatientsInsuranceCode, + ClinicId: clinicId, + StartDate: startTime, + EndDate: endTime, + }, + Results: patientsResponse, + }, nil +} + +func (r *PatientRealtimeDaysReporter) GetRealtimeDaysForUsers(ctx context.Context, userIds []string, startTime time.Time, endTime time.Time) (map[string]int, error) { + if ctx == nil { + return nil, errors.New("context is missing") + } + if userIds == nil { + return nil, errors.New("userIds is missing") + } + if len(userIds) == 0 { + return nil, errors.New("no userIds provided") + } + if startTime.IsZero() { + return nil, errors.New("startTime is missing") + } + if endTime.IsZero() { + return nil, errors.New("startTime is missing") + } + + if startTime.After(endTime) { + return nil, errors.New("startTime is after endTime") + } + + if startTime.Before(time.Now().AddDate(0, 0, -60)) { + return nil, errors.New("startTime is too old ( >60d ago ) ") + } + + if int(endTime.Sub(startTime).Hours()/24) < realtimeDaysThreshold { + return nil, errors.New("time range smaller than threshold, impossible") + } + + realtimeUsers := make(map[string]int) + + for _, userId := range userIds { + userSummary, err := r.summarizer.GetSummary(ctx, userId) + if err != nil { + return nil, err + } + + realtimeUsers[userId] = userSummary.Stats.GetNumberOfDaysWithRealtimeData(startTime, endTime) + + } + + return realtimeUsers, nil +} + +type PatientsRealtimeDaysResponse struct { + Config PatientsRealtimeDaysConfigResponse `json:"config"` + Results []PatientRealtimeDaysResponse `json:"results"` +} + +type PatientsRealtimeDaysConfigResponse struct { + Code string `json:"code"` + ClinicId string `json:"clinicId"` + StartDate time.Time `json:"startDate"` + EndDate time.Time `json:"endDate"` +} + +type PatientRealtimeDaysResponse struct { + Id string `json:"id"` + FullName string `json:"fullName"` + BirthDate time.Time `json:"birthDate"` + MRN *string `json:"mrn"` + RealtimeDays int `json:"realtimeDays"` + HasSufficientData bool `json:"hasSufficientData"` +} + +type PatientRealtimeDaysFilter struct { + StartTime *time.Time + EndTime *time.Time +} + +func NewPatientRealtimeDaysFilter() *PatientRealtimeDaysFilter { + return &PatientRealtimeDaysFilter{} +} + +func (d *PatientRealtimeDaysFilter) Parse(parser structure.ObjectParser) { + d.StartTime = parser.Time("startDate", time.RFC3339) + d.EndTime = parser.Time("endDate", time.RFC3339) +} + +func (d *PatientRealtimeDaysFilter) Validate(validator structure.Validator) { + validator.Time("startDate", d.StartTime).NotZero() + validator.Time("endDate", d.EndTime).NotZero() +} diff --git a/data/summary/summary.go b/data/summary/summary.go index 28f146fd7..cd354e542 100644 --- a/data/summary/summary.go +++ b/data/summary/summary.go @@ -2,15 +2,8 @@ package summary import ( "context" - "errors" - "fmt" "time" - clinic "github.com/tidepool-org/clinic/client" - - "github.com/tidepool-org/platform/clinics" - "github.com/tidepool-org/platform/pointer" - "github.com/tidepool-org/platform/data" "github.com/tidepool-org/platform/data/summary/store" @@ -21,11 +14,8 @@ import ( ) const ( - backfillBatch = 50000 - backfillInsertBatch = 10000 - RealtimeUserThreshold = 16 - realtimePatientsLengthLimit = 1000 - realtimePatientsInsuranceCode = "CPT-99454" + backfillBatch = 50000 + backfillInsertBatch = 10000 ) type SummarizerRegistry struct { @@ -60,108 +50,6 @@ type Summarizer[A types.StatsPt[T], T types.Stats] interface { BackfillSummaries(ctx context.Context) (int, error) } -type Reporter struct { - summarizer Summarizer[*types.ContinuousStats, types.ContinuousStats] -} - -func NewReporter(registry *SummarizerRegistry) *Reporter { - summarizer := GetSummarizer[*types.ContinuousStats](registry) - return &Reporter{ - summarizer: summarizer, - } -} - -func (r *Reporter) GetRealtimeDaysForPatients(ctx context.Context, clinicsClient clinics.Client, clinicId string, token string, startTime time.Time, endTime time.Time) (*RealtimePatientsResponse, error) { - params := &clinic.ListPatientsParams{ - Limit: pointer.FromAny(realtimePatientsLengthLimit + 1), - } - - patients, err := clinicsClient.GetPatients(ctx, clinicId, token, params) - if err != nil { - return nil, err - } - - if len(patients) > realtimePatientsLengthLimit { - return nil, fmt.Errorf("too many patients in clinic for report to succeed. (%d > limit %d)", len(patients), realtimePatientsLengthLimit) - } - - userIds := make([]string, len(patients)) - for i := 0; i < len(patients); i++ { - userIds[i] = *patients[0].Id - } - - userIdsRealtimeDays, err := r.GetRealtimeDaysForUsers(ctx, userIds, startTime, endTime) - if err != nil { - return nil, err - } - - patientsResponse := make([]RealtimePatientResponse, len(userIdsRealtimeDays)) - for i := 0; i < len(userIdsRealtimeDays); i++ { - patientsResponse[i] = RealtimePatientResponse{ - Id: *patients[i].Id, - FullName: patients[i].FullName, - BirthDate: patients[i].BirthDate.Time, - MRN: patients[i].Mrn, - RealtimeDays: userIdsRealtimeDays[*patients[i].Id], - HasSufficientData: userIdsRealtimeDays[*patients[i].Id] >= RealtimeUserThreshold, - } - } - - return &RealtimePatientsResponse{ - Config: RealtimePatientConfigResponse{ - Code: realtimePatientsInsuranceCode, - ClinicId: clinicId, - StartDate: startTime, - EndDate: endTime, - }, - Results: patientsResponse, - }, nil -} - -func (r *Reporter) GetRealtimeDaysForUsers(ctx context.Context, userIds []string, startTime time.Time, endTime time.Time) (map[string]int, error) { - if ctx == nil { - return nil, errors.New("context is missing") - } - if userIds == nil { - return nil, errors.New("userIds is missing") - } - if len(userIds) == 0 { - return nil, errors.New("no userIds provided") - } - if startTime.IsZero() { - return nil, errors.New("startTime is missing") - } - if endTime.IsZero() { - return nil, errors.New("startTime is missing") - } - - if startTime.After(endTime) { - return nil, errors.New("startTime is after endTime") - } - - if startTime.Before(time.Now().AddDate(0, 0, -60)) { - return nil, errors.New("startTime is too old ( >60d ago ) ") - } - - if int(endTime.Sub(startTime).Hours()/24) < RealtimeUserThreshold { - return nil, errors.New("time range smaller than threshold, impossible") - } - - realtimeUsers := make(map[string]int) - - for _, userId := range userIds { - userSummary, err := r.summarizer.GetSummary(ctx, userId) - if err != nil { - return nil, err - } - - realtimeUsers[userId] = userSummary.Stats.GetNumberOfDaysWithRealtimeData(startTime, endTime) - - } - - return realtimeUsers, nil -} - // Compile time interface check var _ Summarizer[*types.CGMStats, types.CGMStats] = &GlucoseSummarizer[*types.CGMStats, types.CGMStats]{} var _ Summarizer[*types.BGMStats, types.BGMStats] = &GlucoseSummarizer[*types.BGMStats, types.BGMStats]{} diff --git a/data/summary/types/continuous.go b/data/summary/types/continuous.go index 51933c455..358bd2160 100644 --- a/data/summary/types/continuous.go +++ b/data/summary/types/continuous.go @@ -8,7 +8,6 @@ import ( "time" glucoseDatum "github.com/tidepool-org/platform/data/types/blood/glucose" - "github.com/tidepool-org/platform/data/types/upload" "github.com/tidepool-org/platform/pointer" ) @@ -88,57 +87,77 @@ func (s *ContinuousStats) ClearInvalidatedBuckets(earliestModified time.Time) (f return } -func (s *ContinuousStats) Update(ctx context.Context, cursor DeviceDataCursor, dataRepo DeviceDataFetcher) error { - var err error - var uploadRecord *upload.Upload - var userData []*glucoseDatum.Glucose = nil - uploadIds := map[string]bool{} - - for cursor.Next(ctx) { - if userData == nil { - userData = make([]*glucoseDatum.Glucose, 0, cursor.RemainingBatchLength()) - } +func NewContinuousDeviceDataCursor[D RecordTypesPt[R], R RecordTypes](cursor DeviceDataCursor, dataRepo DeviceDataFetcher) *ContinuousDeviceDataCursor[D, R] { + return &ContinuousDeviceDataCursor[D, R]{ + cursor: cursor, + dataRepo: dataRepo, + uploadIdCache: map[string]bool{}, + } +} - r := &glucoseDatum.Glucose{} - if err = cursor.Decode(r); err != nil { - return fmt.Errorf("unable to decode userData: %w", err) - } +type ContinuousDeviceDataCursor[D RecordTypesPt[R], R RecordTypes] struct { + cursor DeviceDataCursor + dataRepo DeviceDataFetcher + uploadIdCache map[string]bool +} - // check if we already cached if the uploadId is continuous or not, query if unknown - if _, ok := uploadIds[*r.UploadID]; !ok { - uploadRecord, err = dataRepo.GetDataSetByID(ctx, *r.UploadID) - if err != nil { - return err - } +func (c *ContinuousDeviceDataCursor[D, R]) GetNextData(ctx context.Context) ([]D, error) { + userData := make([]D, 0, c.cursor.RemainingBatchLength()) - if uploadRecord != nil && uploadRecord.HasDataSetTypeContinuous() { - uploadIds[*r.UploadID] = true - } else { - uploadIds[*r.UploadID] = false - } + for c.cursor.Next(ctx) { + r := *new(D) + if err := c.cursor.Decode(r); err != nil { + return nil, fmt.Errorf("unable to decode userData: %w", err) } - if uploadIds[*r.UploadID] { + if isContinuous, err := c.isUploadContinuous(ctx, *r.GetUploadID()); err != nil { + return nil, err + } else if isContinuous { userData = append(userData, r) } // we call AddData before each network call to the db to reduce thrashing - if cursor.RemainingBatchLength() != 0 { - err = AddData(&s.Buckets, userData) - if err != nil { - return err - } - userData = nil + if c.cursor.RemainingBatchLength() != 0 { + return userData, nil + } + } + + return userData, nil +} + +func (c *ContinuousDeviceDataCursor[D, R]) isUploadContinuous(ctx context.Context, uploadId string) (bool, error) { + // check if we already cached if the uploadId is continuous or not, query if unknown + if _, ok := c.uploadIdCache[uploadId]; !ok { + uploadRecord, err := c.dataRepo.GetDataSetByID(ctx, uploadId) + if err != nil { + return false, err } + + if uploadRecord != nil && uploadRecord.HasDataSetTypeContinuous() { + c.uploadIdCache[uploadId] = true + } else { + c.uploadIdCache[uploadId] = false + } + } + + return c.uploadIdCache[uploadId], nil +} + +func (s *ContinuousStats) Update(ctx context.Context, cursor DeviceDataCursor, dataRepo DeviceDataFetcher) error { + userCursor := NewContinuousDeviceDataCursor[*glucoseDatum.Glucose](cursor, dataRepo) + + userData, err := userCursor.GetNextData(ctx) + if err != nil { + return err } - // add the final partial batch - if userData != nil { + for len(userData) > 0 { err = AddData(&s.Buckets, userData) if err != nil { return err } - userData = nil + + userData, err = userCursor.GetNextData(ctx) } s.CalculateSummary() diff --git a/data/summary/types/summary.go b/data/summary/types/summary.go index 9971fad53..73eac178a 100644 --- a/data/summary/types/summary.go +++ b/data/summary/types/summary.go @@ -32,7 +32,7 @@ const ( SummaryTypeCGM = "cgm" SummaryTypeBGM = "bgm" SummaryTypeContinuous = "continuous" - SchemaVersion = 4 + SchemaVersion = 3 lowBloodGlucose = 3.9 veryLowBloodGlucose = 3.0 diff --git a/task/summary/backfillrunner.go b/task/summary/backfillrunner.go index 096baf52f..9949a9383 100644 --- a/task/summary/backfillrunner.go +++ b/task/summary/backfillrunner.go @@ -167,26 +167,13 @@ func (t *BackfillTaskRunner) Run(ctx context.Context) error { t.context = ctx t.validator = structureValidator.New() - t.logger.Debug("Starting User CGM Summary Creation") - count, err := t.dataClient.BackfillSummaries(t.context, "cgm") - if err != nil { - return err - } - t.logger.Info(fmt.Sprintf("Backfilled %d CGM summaries", count)) - - t.logger.Debug("Starting User BGM Summary Creation") - count, err = t.dataClient.BackfillSummaries(t.context, "bgm") - if err != nil { - return err - } - t.logger.Info(fmt.Sprintf("Backfilled %d BGM summaries", count)) - - t.logger.Debug("Starting User Continuous Summary Creation") - count, err = t.dataClient.BackfillSummaries(t.context, "continuous") - if err != nil { - return err + for _, typ := range []string{"bgm", "cgm", "continuous"} { + t.logger.Debugf("Starting User %s Summary Backfill", typ) + count, err := t.dataClient.BackfillSummaries(t.context, "cgm") + if err != nil { + return err + } + t.logger.Infof("Backfilled %d %s summaries", count, typ) } - t.logger.Info(fmt.Sprintf("Backfilled %d Continuous summaries", count)) - return nil } From 08f08b8a7290dc2d36cdfc95faab89a7db7c2be1 Mon Sep 17 00:00:00 2001 From: Alexander Diana Date: Thu, 4 Apr 2024 05:32:36 +0000 Subject: [PATCH 20/34] properly cast record generic in GetNextData --- data/summary/types/continuous.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/summary/types/continuous.go b/data/summary/types/continuous.go index 358bd2160..8014f1415 100644 --- a/data/summary/types/continuous.go +++ b/data/summary/types/continuous.go @@ -105,7 +105,7 @@ func (c *ContinuousDeviceDataCursor[D, R]) GetNextData(ctx context.Context) ([]D userData := make([]D, 0, c.cursor.RemainingBatchLength()) for c.cursor.Next(ctx) { - r := *new(D) + r := D(new(R)) if err := c.cursor.Decode(r); err != nil { return nil, fmt.Errorf("unable to decode userData: %w", err) } From 88982fb4b74ef371fe75ed5bc0121666960acaab Mon Sep 17 00:00:00 2001 From: Alexander Diana Date: Thu, 4 Apr 2024 05:32:58 +0000 Subject: [PATCH 21/34] formatting --- data/service/api/v1/summary.go | 3 ++- data/service/api/v1/users_datasets_create_test.go | 3 ++- data/service/context/standard.go | 3 ++- data/summary/reporters/realtime.go | 4 +++- 4 files changed, 9 insertions(+), 4 deletions(-) diff --git a/data/service/api/v1/summary.go b/data/service/api/v1/summary.go index f0bc4f7f0..fcfca57c4 100644 --- a/data/service/api/v1/summary.go +++ b/data/service/api/v1/summary.go @@ -2,10 +2,11 @@ package v1 import ( "context" - "github.com/tidepool-org/platform/data/summary/reporters" "net/http" "time" + "github.com/tidepool-org/platform/data/summary/reporters" + dataService "github.com/tidepool-org/platform/data/service" "github.com/tidepool-org/platform/data/summary" "github.com/tidepool-org/platform/data/summary/types" diff --git a/data/service/api/v1/users_datasets_create_test.go b/data/service/api/v1/users_datasets_create_test.go index 40126aa70..bafa55d1b 100644 --- a/data/service/api/v1/users_datasets_create_test.go +++ b/data/service/api/v1/users_datasets_create_test.go @@ -1,11 +1,12 @@ package v1_test import ( - "github.com/tidepool-org/platform/data/summary/reporters" "io" "net/http" "strings" + "github.com/tidepool-org/platform/data/summary/reporters" + "github.com/tidepool-org/platform/clinics" . "github.com/onsi/ginkgo/v2" diff --git a/data/service/context/standard.go b/data/service/context/standard.go index ca53dbf39..c323fb7ed 100644 --- a/data/service/context/standard.go +++ b/data/service/context/standard.go @@ -1,9 +1,10 @@ package context import ( - "github.com/tidepool-org/platform/data/summary/reporters" "net/http" + "github.com/tidepool-org/platform/data/summary/reporters" + "github.com/tidepool-org/platform/clinics" "github.com/ant0ine/go-json-rest/rest" diff --git a/data/summary/reporters/realtime.go b/data/summary/reporters/realtime.go index 00b962727..cbdd118f2 100644 --- a/data/summary/reporters/realtime.go +++ b/data/summary/reporters/realtime.go @@ -4,13 +4,15 @@ import ( "context" "errors" "fmt" + "time" + clinic "github.com/tidepool-org/clinic/client" + "github.com/tidepool-org/platform/clinics" "github.com/tidepool-org/platform/data/summary" "github.com/tidepool-org/platform/data/summary/types" "github.com/tidepool-org/platform/pointer" "github.com/tidepool-org/platform/structure" - "time" ) const ( From d92803fe75c96857509f7bb0a541f509b65f1a50 Mon Sep 17 00:00:00 2001 From: Todd Kazakov Date: Sat, 6 Apr 2024 01:01:35 +0300 Subject: [PATCH 22/34] Simplify summary data fetchers and cursors (#705) * Simplify summary data fetchers and cursors --------- Co-authored-by: Alexander Diana --- data/datum.go | 1 + data/summary/fetcher/continuous.go | 88 ++++++++++++++++++++++++ data/summary/fetcher/data.go | 74 +++++++++++++++++++++ data/summary/fetcher/fetcher.go | 27 ++++++++ data/summary/summary.go | 59 ++++++++++------ data/summary/types/bgm.go | 37 +++-------- data/summary/types/bgm_test.go | 91 +++++++++++-------------- data/summary/types/cgm.go | 37 +++-------- data/summary/types/cgm_test.go | 96 +++++++++++---------------- data/summary/types/continuous.go | 84 +++++------------------ data/summary/types/continuous_test.go | 10 +-- data/summary/types/summary.go | 38 ++--------- data/summary/types/summary_test.go | 4 +- data/test/datum.go | 11 +++ 14 files changed, 366 insertions(+), 291 deletions(-) create mode 100644 data/summary/fetcher/continuous.go create mode 100644 data/summary/fetcher/data.go create mode 100644 data/summary/fetcher/fetcher.go diff --git a/data/datum.go b/data/datum.go index 61c8159f5..7972a1289 100644 --- a/data/datum.go +++ b/data/datum.go @@ -23,6 +23,7 @@ type Datum interface { GetType() string IsActive() bool GetTime() *time.Time + GetUploadID() *string SetUserID(userID *string) SetDataSetID(dataSetID *string) diff --git a/data/summary/fetcher/continuous.go b/data/summary/fetcher/continuous.go new file mode 100644 index 000000000..0ef592e43 --- /dev/null +++ b/data/summary/fetcher/continuous.go @@ -0,0 +1,88 @@ +package fetcher + +import ( + "context" + "fmt" + + "github.com/tidepool-org/platform/data" +) + +var ErrCursorExhausted = fmt.Errorf("cursor is exhausted") + +func NewContinuousDeviceDataCursor(cursor DeviceDataCursor, fetcher DeviceDataFetcher, create DatumCreator) *ContinuousDeviceDataCursor { + return &ContinuousDeviceDataCursor{ + DeviceDataCursor: cursor, + + create: create, + fetcher: fetcher, + uploadIdCache: map[string]bool{}, + } +} + +var _ DeviceDataCursor = &ContinuousDeviceDataCursor{} + +type ContinuousDeviceDataCursor struct { + DeviceDataCursor + + create DatumCreator + fetcher DeviceDataFetcher + isExhausted bool + uploadIdCache map[string]bool +} + +func (c *ContinuousDeviceDataCursor) GetNextBatch(ctx context.Context) ([]data.Datum, error) { + if c.isExhausted == true { + return nil, ErrCursorExhausted + } + + var userData []data.Datum + for c.Next(ctx) { + if userData == nil { + userData = make([]data.Datum, 0, c.RemainingBatchLength()) + } + + datum := c.create() + if err := c.Decode(datum); err != nil { + return nil, fmt.Errorf("unable to decode userData: %w", err) + } + + if isContinuous, err := c.isUploadContinuous(ctx, datum.GetUploadID()); err != nil { + return nil, err + } else if isContinuous { + userData = append(userData, datum) + } + + if c.RemainingBatchLength() == 0 { + break + } + } + + return userData, c.Err() +} + +func (c *ContinuousDeviceDataCursor) Next(ctx context.Context) bool { + c.isExhausted = c.DeviceDataCursor.Next(ctx) + return c.isExhausted +} + +func (c *ContinuousDeviceDataCursor) isUploadContinuous(ctx context.Context, uploadId *string) (bool, error) { + if uploadId == nil { + return false, nil + } + + // check if we already cached if the uploadId is continuous or not, query if unknown + if _, ok := c.uploadIdCache[*uploadId]; !ok { + uploadRecord, err := c.fetcher.GetDataSetByID(ctx, *uploadId) + if err != nil { + return false, err + } + + if uploadRecord != nil && uploadRecord.HasDataSetTypeContinuous() { + c.uploadIdCache[*uploadId] = true + } else { + c.uploadIdCache[*uploadId] = false + } + } + + return c.uploadIdCache[*uploadId], nil +} diff --git a/data/summary/fetcher/data.go b/data/summary/fetcher/data.go new file mode 100644 index 000000000..86bf9c23b --- /dev/null +++ b/data/summary/fetcher/data.go @@ -0,0 +1,74 @@ +package fetcher + +import ( + "context" + "fmt" + + "go.mongodb.org/mongo-driver/mongo" + + "github.com/tidepool-org/platform/data" +) + +type DatumCreator func() data.Datum +type DataCursorFactory func(cursor *mongo.Cursor) DeviceDataCursor + +func NewDefaultCursor(c *mongo.Cursor, create DatumCreator) DeviceDataCursor { + return &DefaultCursor{ + c: c, + create: create, + } +} + +var _ DeviceDataCursor = &DefaultCursor{} + +type DefaultCursor struct { + c *mongo.Cursor + create DatumCreator + isExhausted bool +} + +func (d *DefaultCursor) Decode(val interface{}) error { + return d.c.Decode(val) +} + +func (d *DefaultCursor) RemainingBatchLength() int { + return d.c.RemainingBatchLength() +} + +func (d *DefaultCursor) Next(ctx context.Context) bool { + d.isExhausted = d.c.Next(ctx) + return d.isExhausted +} + +func (d *DefaultCursor) Close(ctx context.Context) error { + return d.c.Close(ctx) +} + +func (d *DefaultCursor) GetNextBatch(ctx context.Context) ([]data.Datum, error) { + if d.isExhausted == true { + return nil, ErrCursorExhausted + } + + var userData []data.Datum + for d.Next(ctx) { + if userData == nil { + userData = make([]data.Datum, 0, d.RemainingBatchLength()) + } + datum := d.create() + if err := d.Decode(datum); err != nil { + return nil, fmt.Errorf("unable to decode userData: %w", err) + } + + userData = append(userData, datum) + + if d.RemainingBatchLength() == 0 { + break + } + } + + return userData, d.Err() +} + +func (d *DefaultCursor) Err() error { + return d.c.Err() +} diff --git a/data/summary/fetcher/fetcher.go b/data/summary/fetcher/fetcher.go new file mode 100644 index 000000000..6da643ea2 --- /dev/null +++ b/data/summary/fetcher/fetcher.go @@ -0,0 +1,27 @@ +package fetcher + +import ( + "context" + "time" + + "go.mongodb.org/mongo-driver/mongo" + + "github.com/tidepool-org/platform/data" + "github.com/tidepool-org/platform/data/types/upload" +) + +type DeviceDataCursor interface { + Decode(val interface{}) error + RemainingBatchLength() int + Next(ctx context.Context) bool + Close(ctx context.Context) error + GetNextBatch(ctx context.Context) ([]data.Datum, error) + Err() error +} + +type DeviceDataFetcher interface { + GetDataSetByID(ctx context.Context, dataSetID string) (*upload.Upload, error) + GetLastUpdatedForUser(ctx context.Context, userId string, typ []string, lastUpdated time.Time) (*data.UserDataStatus, error) + GetDataRange(ctx context.Context, userId string, typ []string, status *data.UserDataStatus) (*mongo.Cursor, error) + DistinctUserIDs(ctx context.Context, typ []string) ([]string, error) +} diff --git a/data/summary/summary.go b/data/summary/summary.go index cd354e542..650bfb44d 100644 --- a/data/summary/summary.go +++ b/data/summary/summary.go @@ -4,6 +4,11 @@ import ( "context" "time" + "go.mongodb.org/mongo-driver/mongo" + + "github.com/tidepool-org/platform/data/summary/fetcher" + glucoseDatum "github.com/tidepool-org/platform/data/types/blood/glucose" + "github.com/tidepool-org/platform/data" "github.com/tidepool-org/platform/data/summary/store" @@ -22,11 +27,11 @@ type SummarizerRegistry struct { summarizers map[string]any } -func New(summaryRepository *storeStructuredMongo.Repository, dataRepository types.DeviceDataFetcher) *SummarizerRegistry { +func New(summaryRepository *storeStructuredMongo.Repository, fetcher fetcher.DeviceDataFetcher) *SummarizerRegistry { registry := &SummarizerRegistry{summarizers: make(map[string]any)} - addSummarizer(registry, NewBGMSummarizer(summaryRepository, dataRepository)) - addSummarizer(registry, NewCGMSummarizer(summaryRepository, dataRepository)) - addSummarizer(registry, NewContinuousSummarizer(summaryRepository, dataRepository)) + addSummarizer(registry, NewBGMSummarizer(summaryRepository, fetcher)) + addSummarizer(registry, NewCGMSummarizer(summaryRepository, fetcher)) + addSummarizer(registry, NewContinuousSummarizer(summaryRepository, fetcher)) return registry } @@ -55,29 +60,44 @@ var _ Summarizer[*types.CGMStats, types.CGMStats] = &GlucoseSummarizer[*types.CG var _ Summarizer[*types.BGMStats, types.BGMStats] = &GlucoseSummarizer[*types.BGMStats, types.BGMStats]{} var _ Summarizer[*types.ContinuousStats, types.ContinuousStats] = &GlucoseSummarizer[*types.ContinuousStats, types.ContinuousStats]{} +func CreateGlucoseDatum() data.Datum { + return &glucoseDatum.Glucose{} +} + type GlucoseSummarizer[A types.StatsPt[T], T types.Stats] struct { - userData types.DeviceDataFetcher - summaries *store.Repo[A, T] + cursorFactory fetcher.DataCursorFactory + dataFetcher fetcher.DeviceDataFetcher + summaries *store.Repo[A, T] } -func NewBGMSummarizer(collection *storeStructuredMongo.Repository, dataRepo types.DeviceDataFetcher) Summarizer[*types.BGMStats, types.BGMStats] { +func NewBGMSummarizer(collection *storeStructuredMongo.Repository, dataFetcher fetcher.DeviceDataFetcher) Summarizer[*types.BGMStats, types.BGMStats] { return &GlucoseSummarizer[*types.BGMStats, types.BGMStats]{ - userData: dataRepo, - summaries: store.New[*types.BGMStats](collection), + cursorFactory: func(c *mongo.Cursor) fetcher.DeviceDataCursor { + return fetcher.NewDefaultCursor(c, CreateGlucoseDatum) + }, + dataFetcher: dataFetcher, + summaries: store.New[*types.BGMStats](collection), } } -func NewCGMSummarizer(collection *storeStructuredMongo.Repository, dataRepo types.DeviceDataFetcher) Summarizer[*types.CGMStats, types.CGMStats] { +func NewCGMSummarizer(collection *storeStructuredMongo.Repository, dataFetcher fetcher.DeviceDataFetcher) Summarizer[*types.CGMStats, types.CGMStats] { return &GlucoseSummarizer[*types.CGMStats, types.CGMStats]{ - userData: dataRepo, - summaries: store.New[*types.CGMStats](collection), + cursorFactory: func(c *mongo.Cursor) fetcher.DeviceDataCursor { + return fetcher.NewDefaultCursor(c, CreateGlucoseDatum) + }, + dataFetcher: dataFetcher, + summaries: store.New[*types.CGMStats](collection), } } -func NewContinuousSummarizer(collection *storeStructuredMongo.Repository, dataRepo types.DeviceDataFetcher) Summarizer[*types.ContinuousStats, types.ContinuousStats] { +func NewContinuousSummarizer(collection *storeStructuredMongo.Repository, dataFetcher fetcher.DeviceDataFetcher) Summarizer[*types.ContinuousStats, types.ContinuousStats] { return &GlucoseSummarizer[*types.ContinuousStats, types.ContinuousStats]{ - userData: dataRepo, - summaries: store.New[*types.ContinuousStats](collection), + cursorFactory: func(c *mongo.Cursor) fetcher.DeviceDataCursor { + defaultCursor := fetcher.NewDefaultCursor(c, CreateGlucoseDatum) + return fetcher.NewContinuousDeviceDataCursor(defaultCursor, dataFetcher, CreateGlucoseDatum) + }, + dataFetcher: dataFetcher, + summaries: store.New[*types.ContinuousStats](collection), } } @@ -104,7 +124,7 @@ func (gs *GlucoseSummarizer[A, T]) GetMigratableUserIDs(ctx context.Context, pag func (gs *GlucoseSummarizer[A, T]) BackfillSummaries(ctx context.Context) (int, error) { var empty struct{} - distinctDataUserIDs, err := gs.userData.DistinctUserIDs(ctx, types.GetDeviceDataTypeStrings[A]()) + distinctDataUserIDs, err := gs.dataFetcher.DistinctUserIDs(ctx, types.GetDeviceDataTypeStrings[A]()) if err != nil { return 0, err } @@ -173,7 +193,7 @@ func (gs *GlucoseSummarizer[A, T]) UpdateSummary(ctx context.Context, userId str } var status *data.UserDataStatus - status, err = gs.userData.GetLastUpdatedForUser(ctx, userId, summaryType, userSummary.Dates.LastUpdatedDate) + status, err = gs.dataFetcher.GetLastUpdatedForUser(ctx, userId, summaryType, userSummary.Dates.LastUpdatedDate) if err != nil { return nil, err } @@ -197,14 +217,13 @@ func (gs *GlucoseSummarizer[A, T]) UpdateSummary(ctx context.Context, userId str status.FirstData = first } - var cursor types.DeviceDataCursor - cursor, err = gs.userData.GetDataRange(ctx, userId, summaryType, status) + cursor, err := gs.dataFetcher.GetDataRange(ctx, userId, summaryType, status) if err != nil { return nil, err } defer cursor.Close(ctx) - err = userSummary.Stats.Update(ctx, cursor, gs.userData) + err = userSummary.Stats.Update(ctx, gs.cursorFactory(cursor)) if err != nil { return nil, err } diff --git a/data/summary/types/bgm.go b/data/summary/types/bgm.go index 68ad2aa24..b9ad9acfa 100644 --- a/data/summary/types/bgm.go +++ b/data/summary/types/bgm.go @@ -3,10 +3,11 @@ package types import ( "context" "errors" - "fmt" "strconv" "time" + "github.com/tidepool-org/platform/data/summary/fetcher" + "github.com/tidepool-org/platform/data/types/blood/glucose/selfmonitored" "github.com/tidepool-org/platform/data/blood/glucose" @@ -152,38 +153,22 @@ func (s *BGMStats) ClearInvalidatedBuckets(earliestModified time.Time) (firstDat return } -func (s *BGMStats) Update(ctx context.Context, cursor DeviceDataCursor, dataRepo DeviceDataFetcher) error { - var err error - var userData []*glucoseDatum.Glucose = nil - - for cursor.Next(ctx) { - if userData == nil { - userData = make([]*glucoseDatum.Glucose, 0, cursor.RemainingBatchLength()) - } - - r := &glucoseDatum.Glucose{} - if err = cursor.Decode(r); err != nil { - return fmt.Errorf("unable to decode userData: %w", err) +func (s *BGMStats) Update(ctx context.Context, cursor fetcher.DeviceDataCursor) error { + hasMoreData := true + for hasMoreData { + userData, err := cursor.GetNextBatch(ctx) + if errors.Is(err, fetcher.ErrCursorExhausted) { + hasMoreData = false + } else if err != nil { + return err } - userData = append(userData, r) - // we call AddData before each network call to the db to reduce thrashing - if cursor.RemainingBatchLength() != 0 { + if len(userData) > 0 { err = AddData(&s.Buckets, userData) if err != nil { return err } - userData = nil - } - } - - // add the final partial batch - if userData != nil { - err = AddData(&s.Buckets, userData) - if err != nil { - return err } - userData = nil } s.CalculateSummary() diff --git a/data/summary/types/bgm_test.go b/data/summary/types/bgm_test.go index 37b0e9dbf..f700e2fe5 100644 --- a/data/summary/types/bgm_test.go +++ b/data/summary/types/bgm_test.go @@ -4,15 +4,16 @@ import ( "context" "fmt" - dataStoreMongo "github.com/tidepool-org/platform/data/store/mongo" + "github.com/tidepool-org/platform/data" + "github.com/tidepool-org/platform/data/summary" + "github.com/tidepool-org/platform/data/summary/fetcher" + "github.com/tidepool-org/platform/data/test" "math/rand" "strconv" "time" - storeStructuredMongoTest "github.com/tidepool-org/platform/store/structured/mongo/test" - "go.mongodb.org/mongo-driver/mongo" "github.com/tidepool-org/platform/log" @@ -25,16 +26,18 @@ import ( "github.com/tidepool-org/platform/data/summary/types" - "github.com/tidepool-org/platform/data/types/blood/glucose" - "github.com/tidepool-org/platform/pointer" ) -func NewDataSetBGMDataAvg(deviceId string, startTime time.Time, hours float64, reqAvg float64) []*glucose.Glucose { +func BGMCursorFetcher(c *mongo.Cursor) fetcher.DeviceDataCursor { + return fetcher.NewDefaultCursor(c, summary.CreateGlucoseDatum) +} + +func NewDataSetBGMDataAvg(deviceId string, startTime time.Time, hours float64, reqAvg float64) []data.Datum { requiredRecords := int(hours * 6) typ := pointer.FromString("smbg") - var dataSetData = make([]*glucose.Glucose, requiredRecords) + var dataSetData = make([]data.Datum, requiredRecords) var uploadId = test.RandomSetID() // generate X hours of data @@ -56,11 +59,11 @@ func NewDataSetBGMDataAvg(deviceId string, startTime time.Time, hours float64, r return dataSetData } -func NewDataSetBGMDataRanges(deviceId string, startTime time.Time, hours float64, ranges DataRanges) []*glucose.Glucose { +func NewDataSetBGMDataRanges(deviceId string, startTime time.Time, hours float64, ranges DataRanges) []data.Datum { requiredRecords := int(hours * 5) typ := pointer.FromString("smbg") - var dataSetData = make([]*glucose.Glucose, requiredRecords) + var dataSetData = make([]data.Datum, requiredRecords) var uploadId = test.RandomSetID() glucoseBrackets := [5][2]float64{ @@ -93,7 +96,7 @@ var _ = Describe("BGM Summary", func() { var logger log.Logger var ctx context.Context var err error - var dataSetBGMData []*glucose.Glucose + var dataSetBGMData []data.Datum BeforeEach(func() { logger = logTest.NewLogger() @@ -149,7 +152,7 @@ var _ = Describe("BGM Summary", func() { It("Returns correct record count when given overlapping records", func() { // NOTE CGM would filter these, we are testing that they don't get filtered here - var doubledBGMData = make([]*glucose.Glucose, 288*2) + var doubledBGMData = make([]data.Datum, 288*2) userBGMSummary = types.Create[*types.BGMStats](userId) dataSetBGMData = NewDataSetBGMDataAvg(deviceId, datumTime, 24, inTargetBloodGlucose) @@ -609,15 +612,7 @@ var _ = Describe("BGM Summary", func() { Context("CalculateSummary/Update", func() { var newDatumTime time.Time - var dataSetBGMDataCursor types.DeviceDataCursor - var dataStore types.DeviceDataFetcher - - BeforeEach(func() { - config := storeStructuredMongoTest.NewConfig() - store, err := dataStoreMongo.NewStore(config) - Expect(err).ToNot(HaveOccurred()) - dataStore = store.NewDataRepository() - }) + var dataSetBGMDataCursor *mongo.Cursor It("Returns correct time in range for stats", func() { userBGMSummary = types.Create[*types.BGMStats](userId) @@ -625,7 +620,7 @@ var _ = Describe("BGM Summary", func() { dataSetBGMData = NewDataSetBGMDataRanges(deviceId, datumTime, 720, ranges) dataSetBGMDataCursor, err = mongo.NewCursorFromDocuments(ConvertToIntArray(dataSetBGMData), nil, nil) - err = userBGMSummary.Stats.Update(ctx, dataSetBGMDataCursor, dataStore) + err = userBGMSummary.Stats.Update(ctx, BGMCursorFetcher(dataSetBGMDataCursor)) Expect(err).ToNot(HaveOccurred()) Expect(len(userBGMSummary.Stats.Buckets)).To(Equal(720)) Expect(userBGMSummary.Stats.TotalHours).To(Equal(720)) @@ -693,7 +688,7 @@ var _ = Describe("BGM Summary", func() { dataSetBGMData = NewDataSetBGMDataAvg(deviceId, datumTime, 720, inTargetBloodGlucose) dataSetBGMDataCursor, err = mongo.NewCursorFromDocuments(ConvertToIntArray(dataSetBGMData), nil, nil) - err = userBGMSummary.Stats.Update(ctx, dataSetBGMDataCursor, dataStore) + err = userBGMSummary.Stats.Update(ctx, BGMCursorFetcher(dataSetBGMDataCursor)) Expect(err).ToNot(HaveOccurred()) Expect(len(userBGMSummary.Stats.Buckets)).To(Equal(720)) Expect(userBGMSummary.Stats.TotalHours).To(Equal(720)) @@ -710,7 +705,7 @@ var _ = Describe("BGM Summary", func() { dataSetBGMData = NewDataSetBGMDataAvg(deviceId, datumTime, 720, inTargetBloodGlucose) dataSetBGMDataCursor, err = mongo.NewCursorFromDocuments(ConvertToIntArray(dataSetBGMData), nil, nil) - err = userBGMSummary.Stats.Update(ctx, dataSetBGMDataCursor, dataStore) + err = userBGMSummary.Stats.Update(ctx, BGMCursorFetcher(dataSetBGMDataCursor)) Expect(err).ToNot(HaveOccurred()) Expect(len(userBGMSummary.Stats.Buckets)).To(Equal(720)) Expect(userBGMSummary.Stats.TotalHours).To(Equal(720)) @@ -728,7 +723,7 @@ var _ = Describe("BGM Summary", func() { dataSetBGMData = NewDataSetBGMDataAvg(deviceId, datumTime, 1, lowBloodGlucose) dataSetBGMDataCursor, err = mongo.NewCursorFromDocuments(ConvertToIntArray(dataSetBGMData), nil, nil) - err = userBGMSummary.Stats.Update(ctx, dataSetBGMDataCursor, dataStore) + err = userBGMSummary.Stats.Update(ctx, BGMCursorFetcher(dataSetBGMDataCursor)) Expect(err).ToNot(HaveOccurred()) Expect(len(userBGMSummary.Stats.Buckets)).To(Equal(1)) Expect(userBGMSummary.Stats.TotalHours).To(Equal(1)) @@ -742,7 +737,7 @@ var _ = Describe("BGM Summary", func() { dataSetBGMData = NewDataSetBGMDataAvg(deviceId, newDatumTime, 720, highBloodGlucose) dataSetBGMDataCursor, err = mongo.NewCursorFromDocuments(ConvertToIntArray(dataSetBGMData), nil, nil) - err = userBGMSummary.Stats.Update(ctx, dataSetBGMDataCursor, dataStore) + err = userBGMSummary.Stats.Update(ctx, BGMCursorFetcher(dataSetBGMDataCursor)) Expect(err).ToNot(HaveOccurred()) Expect(len(userBGMSummary.Stats.Buckets)).To(Equal(721)) @@ -762,7 +757,7 @@ var _ = Describe("BGM Summary", func() { dataSetBGMData = NewDataSetBGMDataAvg(deviceId, datumTime, 720, lowBloodGlucose) dataSetBGMDataCursor, err = mongo.NewCursorFromDocuments(ConvertToIntArray(dataSetBGMData), nil, nil) - err = userBGMSummary.Stats.Update(ctx, dataSetBGMDataCursor, dataStore) + err = userBGMSummary.Stats.Update(ctx, BGMCursorFetcher(dataSetBGMDataCursor)) Expect(err).ToNot(HaveOccurred()) Expect(len(userBGMSummary.Stats.Buckets)).To(Equal(720)) Expect(userBGMSummary.Stats.TotalHours).To(Equal(720)) @@ -776,7 +771,7 @@ var _ = Describe("BGM Summary", func() { dataSetBGMData = NewDataSetBGMDataAvg(deviceId, newDatumTime, 23, highBloodGlucose) dataSetBGMDataCursor, err = mongo.NewCursorFromDocuments(ConvertToIntArray(dataSetBGMData), nil, nil) - err = userBGMSummary.Stats.Update(ctx, dataSetBGMDataCursor, dataStore) + err = userBGMSummary.Stats.Update(ctx, BGMCursorFetcher(dataSetBGMDataCursor)) Expect(err).ToNot(HaveOccurred()) Expect(len(userBGMSummary.Stats.Buckets)).To(Equal(743)) Expect(userBGMSummary.Stats.TotalHours).To(Equal(743)) @@ -795,7 +790,7 @@ var _ = Describe("BGM Summary", func() { dataSetBGMData = NewDataSetBGMDataAvg(deviceId, datumTime, 24, lowBloodGlucose) dataSetBGMDataCursor, err = mongo.NewCursorFromDocuments(ConvertToIntArray(dataSetBGMData), nil, nil) - err = userBGMSummary.Stats.Update(ctx, dataSetBGMDataCursor, dataStore) + err = userBGMSummary.Stats.Update(ctx, BGMCursorFetcher(dataSetBGMDataCursor)) Expect(err).ToNot(HaveOccurred()) Expect(len(userBGMSummary.Stats.Buckets)).To(Equal(24)) Expect(userBGMSummary.Stats.TotalHours).To(Equal(24)) @@ -809,7 +804,7 @@ var _ = Describe("BGM Summary", func() { dataSetBGMData = NewDataSetBGMDataAvg(deviceId, newDatumTime, 168, highBloodGlucose) dataSetBGMDataCursor, err = mongo.NewCursorFromDocuments(ConvertToIntArray(dataSetBGMData), nil, nil) - err = userBGMSummary.Stats.Update(ctx, dataSetBGMDataCursor, dataStore) + err = userBGMSummary.Stats.Update(ctx, BGMCursorFetcher(dataSetBGMDataCursor)) Expect(err).ToNot(HaveOccurred()) Expect(len(userBGMSummary.Stats.Buckets)).To(Equal(1440)) Expect(userBGMSummary.Stats.TotalHours).To(Equal(1440)) // 60 days @@ -859,7 +854,7 @@ var _ = Describe("BGM Summary", func() { dataSetBGMDataFive := NewDataSetBGMDataAvg(deviceId, newDatumTimeFive, 24, lowBloodGlucose) dataSetBGMDataFiveCursor, err := mongo.NewCursorFromDocuments(ConvertToIntArray(dataSetBGMDataFive), nil, nil) - err = userBGMSummary.Stats.Update(ctx, dataSetBGMDataOneCursor, dataStore) + err = userBGMSummary.Stats.Update(ctx, BGMCursorFetcher(dataSetBGMDataOneCursor)) Expect(err).ToNot(HaveOccurred()) // first day, should have 24 buckets @@ -870,7 +865,7 @@ var _ = Describe("BGM Summary", func() { Expect(*userBGMSummary.Stats.Periods["7d"].TotalRecords).To(Equal(24 * 6)) Expect(*userBGMSummary.Stats.OffsetPeriods["7d"].TotalRecords).To(Equal(0)) - err = userBGMSummary.Stats.Update(ctx, dataSetBGMDataTwoCursor, dataStore) + err = userBGMSummary.Stats.Update(ctx, BGMCursorFetcher(dataSetBGMDataTwoCursor)) Expect(err).ToNot(HaveOccurred()) // 33 days elapsed, should have 33*24 (792) buckets @@ -881,7 +876,7 @@ var _ = Describe("BGM Summary", func() { Expect(*userBGMSummary.Stats.Periods["30d"].TotalRecords).To(Equal(24 * 6)) Expect(*userBGMSummary.Stats.OffsetPeriods["30d"].TotalRecords).To(Equal(24 * 6)) - err = userBGMSummary.Stats.Update(ctx, dataSetBGMDataThreeCursor, dataStore) + err = userBGMSummary.Stats.Update(ctx, BGMCursorFetcher(dataSetBGMDataThreeCursor)) Expect(err).ToNot(HaveOccurred()) // 47 days elapsed, should have 47*24 (1128) buckets @@ -890,7 +885,7 @@ var _ = Describe("BGM Summary", func() { Expect(*userBGMSummary.Stats.Periods["30d"].TotalRecords).To(Equal(24 * 2 * 6)) Expect(*userBGMSummary.Stats.OffsetPeriods["30d"].TotalRecords).To(Equal(24 * 6)) - err = userBGMSummary.Stats.Update(ctx, dataSetBGMDataFourCursor, dataStore) + err = userBGMSummary.Stats.Update(ctx, BGMCursorFetcher(dataSetBGMDataFourCursor)) Expect(err).ToNot(HaveOccurred()) // 59 days elapsed, should have 59*24 (1416) buckets @@ -899,7 +894,7 @@ var _ = Describe("BGM Summary", func() { Expect(*userBGMSummary.Stats.Periods["30d"].TotalRecords).To(Equal(24 * 3 * 6)) Expect(*userBGMSummary.Stats.OffsetPeriods["30d"].TotalRecords).To(Equal(24 * 1 * 6)) - err = userBGMSummary.Stats.Update(ctx, dataSetBGMDataFiveCursor, dataStore) + err = userBGMSummary.Stats.Update(ctx, BGMCursorFetcher(dataSetBGMDataFiveCursor)) Expect(err).ToNot(HaveOccurred()) // 60 days elapsed, should have 60*24 (1440) buckets @@ -936,22 +931,14 @@ var _ = Describe("BGM Summary", func() { }) Context("ClearInvalidatedBuckets", func() { - var dataStore types.DeviceDataFetcher - - BeforeEach(func() { - config := storeStructuredMongoTest.NewConfig() - store, err := dataStoreMongo.NewStore(config) - Expect(err).ToNot(HaveOccurred()) - dataStore = store.NewDataRepository() - }) + var dataSetBGMDataCursor *mongo.Cursor It("trims the correct buckets", func() { - var dataSetBGMDataCursor types.DeviceDataCursor userBGMSummary = types.Create[*types.BGMStats](userId) dataSetBGMData = NewDataSetBGMDataAvg(deviceId, datumTime, 10, inTargetBloodGlucose) dataSetBGMDataCursor, err = mongo.NewCursorFromDocuments(ConvertToIntArray(dataSetBGMData), nil, nil) - err = userBGMSummary.Stats.Update(ctx, dataSetBGMDataCursor, dataStore) + err = userBGMSummary.Stats.Update(ctx, BGMCursorFetcher(dataSetBGMDataCursor)) Expect(err).ToNot(HaveOccurred()) Expect(len(userBGMSummary.Stats.Buckets)).To(Equal(10)) Expect(userBGMSummary.Stats.TotalHours).To(Equal(10)) @@ -968,12 +955,11 @@ var _ = Describe("BGM Summary", func() { }) It("trims the all buckets with data beyond the beginning of the buckets", func() { - var dataSetCGMDataCursor types.DeviceDataCursor userBGMSummary = types.Create[*types.BGMStats](userId) - dataSetBGMData = NewDataSetCGMDataAvg(datumTime, 10, inTargetBloodGlucose) - dataSetCGMDataCursor, err = mongo.NewCursorFromDocuments(ConvertToIntArray(dataSetBGMData), nil, nil) + dataSetBGMData = NewDataSetBGMDataAvg(deviceId, datumTime, 10, inTargetBloodGlucose) + dataSetBGMDataCursor, err = mongo.NewCursorFromDocuments(ConvertToIntArray(dataSetBGMData), nil, nil) - err = userBGMSummary.Stats.Update(ctx, dataSetCGMDataCursor, dataStore) + err = userBGMSummary.Stats.Update(ctx, BGMCursorFetcher(dataSetBGMDataCursor)) Expect(err).ToNot(HaveOccurred()) Expect(len(userBGMSummary.Stats.Buckets)).To(Equal(10)) Expect(userBGMSummary.Stats.TotalHours).To(Equal(10)) @@ -987,12 +973,11 @@ var _ = Describe("BGM Summary", func() { }) It("doesnt trim if only modified in the future", func() { - var dataSetBGMDataCursor types.DeviceDataCursor userBGMSummary = types.Create[*types.BGMStats](userId) dataSetBGMData = NewDataSetBGMDataAvg(deviceId, datumTime, 10, inTargetBloodGlucose) dataSetBGMDataCursor, err = mongo.NewCursorFromDocuments(ConvertToIntArray(dataSetBGMData), nil, nil) - err = userBGMSummary.Stats.Update(ctx, dataSetBGMDataCursor, dataStore) + err = userBGMSummary.Stats.Update(ctx, BGMCursorFetcher(dataSetBGMDataCursor)) Expect(err).ToNot(HaveOccurred()) Expect(len(userBGMSummary.Stats.Buckets)).To(Equal(10)) Expect(userBGMSummary.Stats.TotalHours).To(Equal(10)) @@ -1009,13 +994,12 @@ var _ = Describe("BGM Summary", func() { }) It("doesnt trim if only modified on the same hour, but after the bucket time", func() { - var dataSetBGMDataCursor types.DeviceDataCursor userBGMSummary = types.Create[*types.BGMStats](userId) midDatumTime := datumTime.Add(30 * time.Minute) dataSetBGMData = NewDataSetBGMDataAvg(deviceId, midDatumTime, 9, inTargetBloodGlucose) dataSetBGMDataCursor, err = mongo.NewCursorFromDocuments(ConvertToIntArray(dataSetBGMData), nil, nil) - err = userBGMSummary.Stats.Update(ctx, dataSetBGMDataCursor, dataStore) + err = userBGMSummary.Stats.Update(ctx, BGMCursorFetcher(dataSetBGMDataCursor)) Expect(err).ToNot(HaveOccurred()) Expect(len(userBGMSummary.Stats.Buckets)).To(Equal(10)) Expect(userBGMSummary.Stats.TotalHours).To(Equal(10)) @@ -1032,13 +1016,12 @@ var _ = Describe("BGM Summary", func() { }) It("trims if modified on the same hour, and before the bucket time", func() { - var dataSetBGMDataCursor types.DeviceDataCursor userBGMSummary = types.Create[*types.BGMStats](userId) midDatumTime := datumTime.Add(30 * time.Minute) dataSetBGMData = NewDataSetBGMDataAvg(deviceId, midDatumTime, 9, inTargetBloodGlucose) dataSetBGMDataCursor, err = mongo.NewCursorFromDocuments(ConvertToIntArray(dataSetBGMData), nil, nil) - err = userBGMSummary.Stats.Update(ctx, dataSetBGMDataCursor, dataStore) + err = userBGMSummary.Stats.Update(ctx, BGMCursorFetcher(dataSetBGMDataCursor)) Expect(err).ToNot(HaveOccurred()) Expect(len(userBGMSummary.Stats.Buckets)).To(Equal(10)) Expect(userBGMSummary.Stats.TotalHours).To(Equal(10)) diff --git a/data/summary/types/cgm.go b/data/summary/types/cgm.go index d0dc073aa..b540ebe1b 100644 --- a/data/summary/types/cgm.go +++ b/data/summary/types/cgm.go @@ -3,10 +3,11 @@ package types import ( "context" "errors" - "fmt" "strconv" "time" + "github.com/tidepool-org/platform/data/summary/fetcher" + "github.com/tidepool-org/platform/data/types/blood/glucose/continuous" "github.com/tidepool-org/platform/data/blood/glucose" @@ -207,38 +208,22 @@ func (s *CGMStats) ClearInvalidatedBuckets(earliestModified time.Time) (firstDat return } -func (s *CGMStats) Update(ctx context.Context, cursor DeviceDataCursor, dataRepo DeviceDataFetcher) error { - var err error - var userData []*glucoseDatum.Glucose = nil - - for cursor.Next(ctx) { - if userData == nil { - userData = make([]*glucoseDatum.Glucose, 0, cursor.RemainingBatchLength()) - } - - r := &glucoseDatum.Glucose{} - if err = cursor.Decode(r); err != nil { - return fmt.Errorf("unable to decode userData: %w", err) +func (s *CGMStats) Update(ctx context.Context, cursor fetcher.DeviceDataCursor) error { + hasMoreData := true + for hasMoreData { + userData, err := cursor.GetNextBatch(ctx) + if errors.Is(err, fetcher.ErrCursorExhausted) { + hasMoreData = false + } else if err != nil { + return err } - userData = append(userData, r) - // we call AddData before each network call to the db to reduce thrashing - if cursor.RemainingBatchLength() != 0 { + if len(userData) > 0 { err = AddData(&s.Buckets, userData) if err != nil { return err } - userData = nil - } - } - - // add the final partial batch - if userData != nil { - err = AddData(&s.Buckets, userData) - if err != nil { - return err } - userData = nil } s.CalculateSummary() diff --git a/data/summary/types/cgm_test.go b/data/summary/types/cgm_test.go index 16693918c..e34c6b6c4 100644 --- a/data/summary/types/cgm_test.go +++ b/data/summary/types/cgm_test.go @@ -7,12 +7,14 @@ import ( "strconv" "time" - dataStoreMongo "github.com/tidepool-org/platform/data/store/mongo" - "github.com/tidepool-org/platform/data/test" - storeStructuredMongoTest "github.com/tidepool-org/platform/store/structured/mongo/test" + "github.com/tidepool-org/platform/data" + "github.com/tidepool-org/platform/data/summary" + "github.com/tidepool-org/platform/data/summary/fetcher" "go.mongodb.org/mongo-driver/mongo" + "github.com/tidepool-org/platform/data/test" + "github.com/tidepool-org/platform/log" logTest "github.com/tidepool-org/platform/log/test" @@ -23,16 +25,18 @@ import ( "github.com/tidepool-org/platform/data/summary/types" - "github.com/tidepool-org/platform/data/types/blood/glucose" - "github.com/tidepool-org/platform/pointer" ) -func NewDataSetCGMDataAvg(startTime time.Time, hours float64, reqAvg float64) []*glucose.Glucose { +func CGMCursorFetcher(c *mongo.Cursor) fetcher.DeviceDataCursor { + return fetcher.NewDefaultCursor(c, summary.CreateGlucoseDatum) +} + +func NewDataSetCGMDataAvg(startTime time.Time, hours float64, reqAvg float64) []data.Datum { requiredRecords := int(hours * 12) typ := pointer.FromString("cbg") - var dataSetData = make([]*glucose.Glucose, requiredRecords) + var dataSetData = make([]data.Datum, requiredRecords) var deviceId = "SummaryTestDevice" var uploadId = test.RandomSetID() @@ -57,12 +61,12 @@ func NewDataSetCGMDataAvg(startTime time.Time, hours float64, reqAvg float64) [] // creates a dataset with random values evenly divided between ranges // NOTE: only generates 98.9% CGMUse, due to needing to be divisible by 5 -func NewDataSetCGMDataRanges(startTime time.Time, hours float64, ranges DataRanges) []*glucose.Glucose { +func NewDataSetCGMDataRanges(startTime time.Time, hours float64, ranges DataRanges) []data.Datum { requiredRecords := int(hours * 10) typ := pointer.FromString("cbg") var gapCompensation time.Duration - var dataSetData = make([]*glucose.Glucose, requiredRecords) + var dataSetData = make([]data.Datum, requiredRecords) var uploadId = test.RandomSetID() var deviceId = "SummaryTestDevice" @@ -96,7 +100,7 @@ var _ = Describe("CGM Summary", func() { var logger log.Logger var ctx context.Context var err error - var dataSetCGMData []*glucose.Glucose + var dataSetCGMData []data.Datum BeforeEach(func() { logger = logTest.NewLogger() @@ -150,7 +154,7 @@ var _ = Describe("CGM Summary", func() { }) It("Returns correct record count when given overlapping records", func() { - var doubledCGMData = make([]*glucose.Glucose, 288*2) + var doubledCGMData = make([]data.Datum, 288*2) userCGMSummary = types.Create[*types.CGMStats](userId) dataSetCGMData = NewDataSetCGMDataAvg(datumTime, 24, inTargetBloodGlucose) @@ -841,15 +845,7 @@ var _ = Describe("CGM Summary", func() { Context("CalculateSummary/Update", func() { var newDatumTime time.Time - var dataSetCGMDataCursor types.DeviceDataCursor - var dataStore types.DeviceDataFetcher - - BeforeEach(func() { - config := storeStructuredMongoTest.NewConfig() - store, err := dataStoreMongo.NewStore(config) - Expect(err).ToNot(HaveOccurred()) - dataStore = store.NewDataRepository() - }) + var dataSetCGMDataCursor *mongo.Cursor It("Returns correct time in range for stats", func() { userCGMSummary = types.Create[*types.CGMStats](userId) @@ -857,7 +853,7 @@ var _ = Describe("CGM Summary", func() { dataSetCGMData = NewDataSetCGMDataRanges(datumTime, 720, ranges) dataSetCGMDataCursor, err = mongo.NewCursorFromDocuments(ConvertToIntArray(dataSetCGMData), nil, nil) - err = userCGMSummary.Stats.Update(ctx, dataSetCGMDataCursor, dataStore) + err = userCGMSummary.Stats.Update(ctx, CGMCursorFetcher(dataSetCGMDataCursor)) Expect(err).ToNot(HaveOccurred()) Expect(len(userCGMSummary.Stats.Buckets)).To(Equal(720)) Expect(userCGMSummary.Stats.TotalHours).To(Equal(720)) @@ -957,7 +953,7 @@ var _ = Describe("CGM Summary", func() { dataSetCGMData = NewDataSetCGMDataAvg(datumTime, 720, inTargetBloodGlucose) dataSetCGMDataCursor, err = mongo.NewCursorFromDocuments(ConvertToIntArray(dataSetCGMData), nil, nil) - err = userCGMSummary.Stats.Update(ctx, dataSetCGMDataCursor, dataStore) + err = userCGMSummary.Stats.Update(ctx, CGMCursorFetcher(dataSetCGMDataCursor)) Expect(err).ToNot(HaveOccurred()) Expect(len(userCGMSummary.Stats.Buckets)).To(Equal(720)) Expect(userCGMSummary.Stats.TotalHours).To(Equal(720)) @@ -987,7 +983,7 @@ var _ = Describe("CGM Summary", func() { dataSetCGMData = NewDataSetCGMDataAvg(datumTime, 720, inTargetBloodGlucose) dataSetCGMDataCursor, err = mongo.NewCursorFromDocuments(ConvertToIntArray(dataSetCGMData), nil, nil) - err = userCGMSummary.Stats.Update(ctx, dataSetCGMDataCursor, dataStore) + err = userCGMSummary.Stats.Update(ctx, CGMCursorFetcher(dataSetCGMDataCursor)) Expect(err).ToNot(HaveOccurred()) Expect(len(userCGMSummary.Stats.Buckets)).To(Equal(720)) Expect(userCGMSummary.Stats.TotalHours).To(Equal(720)) @@ -1013,7 +1009,7 @@ var _ = Describe("CGM Summary", func() { dataSetCGMData = NewDataSetCGMDataAvg(datumTime.AddDate(0, 0, 31), 16, inTargetBloodGlucose) dataSetCGMDataCursor, err = mongo.NewCursorFromDocuments(ConvertToIntArray(dataSetCGMData), nil, nil) - err = userCGMSummary.Stats.Update(ctx, dataSetCGMDataCursor, dataStore) + err = userCGMSummary.Stats.Update(ctx, CGMCursorFetcher(dataSetCGMDataCursor)) Expect(err).ToNot(HaveOccurred()) Expect(len(userCGMSummary.Stats.Buckets)).To(Equal(1440)) Expect(userCGMSummary.Stats.TotalHours).To(Equal(60 * 24)) // 60 days currently capped @@ -1044,7 +1040,7 @@ var _ = Describe("CGM Summary", func() { dataSetCGMData = NewDataSetCGMDataAvg(datumTime, 720, inTargetBloodGlucose) dataSetCGMDataCursor, err = mongo.NewCursorFromDocuments(ConvertToIntArray(dataSetCGMData), nil, nil) - err = userCGMSummary.Stats.Update(ctx, dataSetCGMDataCursor, dataStore) + err = userCGMSummary.Stats.Update(ctx, CGMCursorFetcher(dataSetCGMDataCursor)) Expect(err).ToNot(HaveOccurred()) Expect(len(userCGMSummary.Stats.Buckets)).To(Equal(720)) Expect(userCGMSummary.Stats.TotalHours).To(Equal(720)) @@ -1075,7 +1071,7 @@ var _ = Describe("CGM Summary", func() { dataSetCGMData = NewDataSetCGMDataAvg(datumTime, 1, lowBloodGlucose) dataSetCGMDataCursor, err = mongo.NewCursorFromDocuments(ConvertToIntArray(dataSetCGMData), nil, nil) - err = userCGMSummary.Stats.Update(ctx, dataSetCGMDataCursor, dataStore) + err = userCGMSummary.Stats.Update(ctx, CGMCursorFetcher(dataSetCGMDataCursor)) Expect(err).ToNot(HaveOccurred()) Expect(len(userCGMSummary.Stats.Buckets)).To(Equal(1)) Expect(userCGMSummary.Stats.TotalHours).To(Equal(1)) @@ -1102,7 +1098,7 @@ var _ = Describe("CGM Summary", func() { dataSetCGMData = NewDataSetCGMDataAvg(newDatumTime, 720, highBloodGlucose) dataSetCGMDataCursor, err = mongo.NewCursorFromDocuments(ConvertToIntArray(dataSetCGMData), nil, nil) - err = userCGMSummary.Stats.Update(ctx, dataSetCGMDataCursor, dataStore) + err = userCGMSummary.Stats.Update(ctx, CGMCursorFetcher(dataSetCGMDataCursor)) Expect(err).ToNot(HaveOccurred()) Expect(len(userCGMSummary.Stats.Buckets)).To(Equal(721)) Expect(userCGMSummary.Stats.TotalHours).To(Equal(721)) @@ -1133,7 +1129,7 @@ var _ = Describe("CGM Summary", func() { dataSetCGMData = NewDataSetCGMDataAvg(datumTime, 720, lowBloodGlucose) dataSetCGMDataCursor, err = mongo.NewCursorFromDocuments(ConvertToIntArray(dataSetCGMData), nil, nil) - err = userCGMSummary.Stats.Update(ctx, dataSetCGMDataCursor, dataStore) + err = userCGMSummary.Stats.Update(ctx, CGMCursorFetcher(dataSetCGMDataCursor)) Expect(err).ToNot(HaveOccurred()) Expect(len(userCGMSummary.Stats.Buckets)).To(Equal(720)) Expect(userCGMSummary.Stats.TotalHours).To(Equal(720)) @@ -1159,7 +1155,7 @@ var _ = Describe("CGM Summary", func() { dataSetCGMData = NewDataSetCGMDataAvg(newDatumTime, 23, highBloodGlucose) dataSetCGMDataCursor, err = mongo.NewCursorFromDocuments(ConvertToIntArray(dataSetCGMData), nil, nil) - err = userCGMSummary.Stats.Update(ctx, dataSetCGMDataCursor, dataStore) + err = userCGMSummary.Stats.Update(ctx, CGMCursorFetcher(dataSetCGMDataCursor)) Expect(err).ToNot(HaveOccurred()) Expect(len(userCGMSummary.Stats.Buckets)).To(Equal(743)) Expect(userCGMSummary.Stats.TotalHours).To(Equal(743)) @@ -1192,7 +1188,7 @@ var _ = Describe("CGM Summary", func() { dataSetCGMData = NewDataSetCGMDataAvg(datumTime, 24, highBloodGlucose) dataSetCGMDataCursor, err = mongo.NewCursorFromDocuments(ConvertToIntArray(dataSetCGMData), nil, nil) - err = userCGMSummary.Stats.Update(ctx, dataSetCGMDataCursor, dataStore) + err = userCGMSummary.Stats.Update(ctx, CGMCursorFetcher(dataSetCGMDataCursor)) Expect(err).ToNot(HaveOccurred()) Expect(len(userCGMSummary.Stats.Buckets)).To(Equal(24)) Expect(userCGMSummary.Stats.TotalHours).To(Equal(24)) @@ -1222,7 +1218,7 @@ var _ = Describe("CGM Summary", func() { dataSetCGMData = NewDataSetCGMDataAvg(newDatumTime, 168, highBloodGlucose) dataSetCGMDataCursor, err = mongo.NewCursorFromDocuments(ConvertToIntArray(dataSetCGMData), nil, nil) - err = userCGMSummary.Stats.Update(ctx, dataSetCGMDataCursor, dataStore) + err = userCGMSummary.Stats.Update(ctx, CGMCursorFetcher(dataSetCGMDataCursor)) Expect(err).ToNot(HaveOccurred()) Expect(len(userCGMSummary.Stats.Buckets)).To(Equal(768)) Expect(userCGMSummary.Stats.TotalHours).To(Equal(768)) // 30 days @@ -1263,7 +1259,7 @@ var _ = Describe("CGM Summary", func() { dataSetCGMData = NewDataSetCGMDataAvg(datumTime, 720, lowBloodGlucose) dataSetCGMDataCursor, err = mongo.NewCursorFromDocuments(ConvertToIntArray(dataSetCGMData), nil, nil) - err = userCGMSummary.Stats.Update(ctx, dataSetCGMDataCursor, dataStore) + err = userCGMSummary.Stats.Update(ctx, CGMCursorFetcher(dataSetCGMDataCursor)) Expect(err).ToNot(HaveOccurred()) Expect(len(userCGMSummary.Stats.Buckets)).To(Equal(720)) Expect(userCGMSummary.Stats.TotalHours).To(Equal(720)) @@ -1289,7 +1285,7 @@ var _ = Describe("CGM Summary", func() { dataSetCGMData = NewDataSetCGMDataAvg(newDatumTime, 1, highBloodGlucose) dataSetCGMDataCursor, err = mongo.NewCursorFromDocuments(ConvertToIntArray(dataSetCGMData), nil, nil) - err = userCGMSummary.Stats.Update(ctx, dataSetCGMDataCursor, dataStore) + err = userCGMSummary.Stats.Update(ctx, CGMCursorFetcher(dataSetCGMDataCursor)) Expect(err).ToNot(HaveOccurred()) Expect(userCGMSummary.Stats.TotalHours).To(Equal(1440)) // 60 days @@ -1380,7 +1376,7 @@ var _ = Describe("CGM Summary", func() { dataSetCGMDataFive := NewDataSetCGMDataAvg(newDatumTimeFive, 24, lowBloodGlucose) dataSetCGMDataFiveCursor, err := mongo.NewCursorFromDocuments(ConvertToIntArray(dataSetCGMDataFive), nil, nil) - err = userCGMSummary.Stats.Update(ctx, dataSetCGMDataOneCursor, dataStore) + err = userCGMSummary.Stats.Update(ctx, CGMCursorFetcher(dataSetCGMDataOneCursor)) Expect(err).ToNot(HaveOccurred()) // first day, should have 24 buckets @@ -1391,7 +1387,7 @@ var _ = Describe("CGM Summary", func() { Expect(*userCGMSummary.Stats.Periods["7d"].TotalRecords).To(Equal(24 * 12)) Expect(*userCGMSummary.Stats.OffsetPeriods["7d"].TotalRecords).To(Equal(0)) - err = userCGMSummary.Stats.Update(ctx, dataSetCGMDataTwoCursor, dataStore) + err = userCGMSummary.Stats.Update(ctx, CGMCursorFetcher(dataSetCGMDataTwoCursor)) Expect(err).ToNot(HaveOccurred()) // 33 days elapsed, should have 33*24 (792) buckets @@ -1402,7 +1398,7 @@ var _ = Describe("CGM Summary", func() { Expect(*userCGMSummary.Stats.Periods["30d"].TotalRecords).To(Equal(24 * 12)) Expect(*userCGMSummary.Stats.OffsetPeriods["30d"].TotalRecords).To(Equal(24 * 12)) - err = userCGMSummary.Stats.Update(ctx, dataSetCGMDataThreeCursor, dataStore) + err = userCGMSummary.Stats.Update(ctx, CGMCursorFetcher(dataSetCGMDataThreeCursor)) Expect(err).ToNot(HaveOccurred()) // 47 days elapsed, should have 47*24 (1128) buckets @@ -1411,7 +1407,7 @@ var _ = Describe("CGM Summary", func() { Expect(*userCGMSummary.Stats.Periods["30d"].TotalRecords).To(Equal(24 * 2 * 12)) Expect(*userCGMSummary.Stats.OffsetPeriods["30d"].TotalRecords).To(Equal(24 * 12)) - err = userCGMSummary.Stats.Update(ctx, dataSetCGMDataFourCursor, dataStore) + err = userCGMSummary.Stats.Update(ctx, CGMCursorFetcher(dataSetCGMDataFourCursor)) Expect(err).ToNot(HaveOccurred()) // 59 days elapsed, should have 59*24 (1416) buckets @@ -1420,7 +1416,7 @@ var _ = Describe("CGM Summary", func() { Expect(*userCGMSummary.Stats.Periods["30d"].TotalRecords).To(Equal(24 * 3 * 12)) Expect(*userCGMSummary.Stats.OffsetPeriods["30d"].TotalRecords).To(Equal(24 * 1 * 12)) - err = userCGMSummary.Stats.Update(ctx, dataSetCGMDataFiveCursor, dataStore) + err = userCGMSummary.Stats.Update(ctx, CGMCursorFetcher(dataSetCGMDataFiveCursor)) Expect(err).ToNot(HaveOccurred()) // 60 days elapsed, should have 60*24 (1440) buckets @@ -1457,22 +1453,14 @@ var _ = Describe("CGM Summary", func() { }) Context("ClearInvalidatedBuckets", func() { - var dataStore types.DeviceDataFetcher - - BeforeEach(func() { - config := storeStructuredMongoTest.NewConfig() - store, err := dataStoreMongo.NewStore(config) - Expect(err).ToNot(HaveOccurred()) - dataStore = store.NewDataRepository() - }) + var dataSetCGMDataCursor *mongo.Cursor It("trims the correct buckets", func() { - var dataSetCGMDataCursor types.DeviceDataCursor userCGMSummary = types.Create[*types.CGMStats](userId) dataSetCGMData = NewDataSetCGMDataAvg(datumTime, 10, inTargetBloodGlucose) dataSetCGMDataCursor, err = mongo.NewCursorFromDocuments(ConvertToIntArray(dataSetCGMData), nil, nil) - err = userCGMSummary.Stats.Update(ctx, dataSetCGMDataCursor, dataStore) + err = userCGMSummary.Stats.Update(ctx, CGMCursorFetcher(dataSetCGMDataCursor)) Expect(err).ToNot(HaveOccurred()) Expect(len(userCGMSummary.Stats.Buckets)).To(Equal(10)) Expect(userCGMSummary.Stats.TotalHours).To(Equal(10)) @@ -1489,12 +1477,11 @@ var _ = Describe("CGM Summary", func() { }) It("trims the all buckets with data beyond the beginning of the buckets", func() { - var dataSetCGMDataCursor types.DeviceDataCursor userCGMSummary = types.Create[*types.CGMStats](userId) dataSetCGMData = NewDataSetCGMDataAvg(datumTime, 10, inTargetBloodGlucose) dataSetCGMDataCursor, err = mongo.NewCursorFromDocuments(ConvertToIntArray(dataSetCGMData), nil, nil) - err = userCGMSummary.Stats.Update(ctx, dataSetCGMDataCursor, dataStore) + err = userCGMSummary.Stats.Update(ctx, CGMCursorFetcher(dataSetCGMDataCursor)) Expect(err).ToNot(HaveOccurred()) Expect(len(userCGMSummary.Stats.Buckets)).To(Equal(10)) Expect(userCGMSummary.Stats.TotalHours).To(Equal(10)) @@ -1508,12 +1495,11 @@ var _ = Describe("CGM Summary", func() { }) It("doesnt trim if only modified in the future", func() { - var dataSetCGMDataCursor types.DeviceDataCursor userCGMSummary = types.Create[*types.CGMStats](userId) dataSetCGMData = NewDataSetCGMDataAvg(datumTime, 10, inTargetBloodGlucose) dataSetCGMDataCursor, err = mongo.NewCursorFromDocuments(ConvertToIntArray(dataSetCGMData), nil, nil) - err = userCGMSummary.Stats.Update(ctx, dataSetCGMDataCursor, dataStore) + err = userCGMSummary.Stats.Update(ctx, CGMCursorFetcher(dataSetCGMDataCursor)) Expect(err).ToNot(HaveOccurred()) Expect(len(userCGMSummary.Stats.Buckets)).To(Equal(10)) Expect(userCGMSummary.Stats.TotalHours).To(Equal(10)) @@ -1530,13 +1516,12 @@ var _ = Describe("CGM Summary", func() { }) It("doesnt trim if only modified on the same hour, but after the bucket time", func() { - var dataSetCGMDataCursor types.DeviceDataCursor userCGMSummary = types.Create[*types.CGMStats](userId) midDatumTime := datumTime.Add(30 * time.Minute) dataSetCGMData = NewDataSetCGMDataAvg(midDatumTime, 9, inTargetBloodGlucose) dataSetCGMDataCursor, err = mongo.NewCursorFromDocuments(ConvertToIntArray(dataSetCGMData), nil, nil) - err = userCGMSummary.Stats.Update(ctx, dataSetCGMDataCursor, dataStore) + err = userCGMSummary.Stats.Update(ctx, CGMCursorFetcher(dataSetCGMDataCursor)) Expect(err).ToNot(HaveOccurred()) Expect(len(userCGMSummary.Stats.Buckets)).To(Equal(10)) Expect(userCGMSummary.Stats.TotalHours).To(Equal(10)) @@ -1553,13 +1538,12 @@ var _ = Describe("CGM Summary", func() { }) It("trims if modified on the same hour, and before the bucket time", func() { - var dataSetCGMDataCursor types.DeviceDataCursor userCGMSummary = types.Create[*types.CGMStats](userId) midDatumTime := datumTime.Add(30 * time.Minute) dataSetCGMData = NewDataSetCGMDataAvg(midDatumTime, 9, inTargetBloodGlucose) dataSetCGMDataCursor, err = mongo.NewCursorFromDocuments(ConvertToIntArray(dataSetCGMData), nil, nil) - err = userCGMSummary.Stats.Update(ctx, dataSetCGMDataCursor, dataStore) + err = userCGMSummary.Stats.Update(ctx, CGMCursorFetcher(dataSetCGMDataCursor)) Expect(err).ToNot(HaveOccurred()) Expect(len(userCGMSummary.Stats.Buckets)).To(Equal(10)) Expect(userCGMSummary.Stats.TotalHours).To(Equal(10)) diff --git a/data/summary/types/continuous.go b/data/summary/types/continuous.go index 8014f1415..0915f74c7 100644 --- a/data/summary/types/continuous.go +++ b/data/summary/types/continuous.go @@ -3,10 +3,11 @@ package types import ( "context" "errors" - "fmt" "strconv" "time" + "github.com/tidepool-org/platform/data/summary/fetcher" + glucoseDatum "github.com/tidepool-org/platform/data/types/blood/glucose" "github.com/tidepool-org/platform/pointer" ) @@ -87,77 +88,22 @@ func (s *ContinuousStats) ClearInvalidatedBuckets(earliestModified time.Time) (f return } -func NewContinuousDeviceDataCursor[D RecordTypesPt[R], R RecordTypes](cursor DeviceDataCursor, dataRepo DeviceDataFetcher) *ContinuousDeviceDataCursor[D, R] { - return &ContinuousDeviceDataCursor[D, R]{ - cursor: cursor, - dataRepo: dataRepo, - uploadIdCache: map[string]bool{}, - } -} - -type ContinuousDeviceDataCursor[D RecordTypesPt[R], R RecordTypes] struct { - cursor DeviceDataCursor - dataRepo DeviceDataFetcher - uploadIdCache map[string]bool -} - -func (c *ContinuousDeviceDataCursor[D, R]) GetNextData(ctx context.Context) ([]D, error) { - userData := make([]D, 0, c.cursor.RemainingBatchLength()) - - for c.cursor.Next(ctx) { - r := D(new(R)) - if err := c.cursor.Decode(r); err != nil { - return nil, fmt.Errorf("unable to decode userData: %w", err) - } - - if isContinuous, err := c.isUploadContinuous(ctx, *r.GetUploadID()); err != nil { - return nil, err - } else if isContinuous { - userData = append(userData, r) - } - - // we call AddData before each network call to the db to reduce thrashing - if c.cursor.RemainingBatchLength() != 0 { - return userData, nil - } - } - - return userData, nil -} - -func (c *ContinuousDeviceDataCursor[D, R]) isUploadContinuous(ctx context.Context, uploadId string) (bool, error) { - // check if we already cached if the uploadId is continuous or not, query if unknown - if _, ok := c.uploadIdCache[uploadId]; !ok { - uploadRecord, err := c.dataRepo.GetDataSetByID(ctx, uploadId) - if err != nil { - return false, err - } - - if uploadRecord != nil && uploadRecord.HasDataSetTypeContinuous() { - c.uploadIdCache[uploadId] = true - } else { - c.uploadIdCache[uploadId] = false - } - } - - return c.uploadIdCache[uploadId], nil -} - -func (s *ContinuousStats) Update(ctx context.Context, cursor DeviceDataCursor, dataRepo DeviceDataFetcher) error { - userCursor := NewContinuousDeviceDataCursor[*glucoseDatum.Glucose](cursor, dataRepo) - - userData, err := userCursor.GetNextData(ctx) - if err != nil { - return err - } - - for len(userData) > 0 { - err = AddData(&s.Buckets, userData) - if err != nil { +func (s *ContinuousStats) Update(ctx context.Context, cursor fetcher.DeviceDataCursor) error { + hasMoreData := true + for hasMoreData { + userData, err := cursor.GetNextBatch(ctx) + if errors.Is(err, fetcher.ErrCursorExhausted) { + hasMoreData = false + } else if err != nil { return err } - userData, err = userCursor.GetNextData(ctx) + if len(userData) > 0 { + err = AddData(&s.Buckets, userData) + if err != nil { + return err + } + } } s.CalculateSummary() diff --git a/data/summary/types/continuous_test.go b/data/summary/types/continuous_test.go index ccdde96ac..665aab309 100644 --- a/data/summary/types/continuous_test.go +++ b/data/summary/types/continuous_test.go @@ -4,6 +4,8 @@ import ( "fmt" "time" + "github.com/tidepool-org/platform/data" + "github.com/tidepool-org/platform/data/types/blood/glucose/continuous" summaryTest "github.com/tidepool-org/platform/data/summary/types/test" @@ -15,16 +17,14 @@ import ( "github.com/tidepool-org/platform/data/summary/types" - "github.com/tidepool-org/platform/data/types/blood/glucose" - "github.com/tidepool-org/platform/pointer" ) -func NewDataSetDataRealtime(t string, startTime time.Time, hours float64, realtime bool) []*glucose.Glucose { +func NewDataSetDataRealtime(t string, startTime time.Time, hours float64, realtime bool) []data.Datum { requiredRecords := int(hours * 2) typ := pointer.FromAny(t) - var dataSetData = make([]*glucose.Glucose, requiredRecords) + var dataSetData = make([]data.Datum, requiredRecords) var glucoseValue = inTargetBloodGlucose var deviceId = "SummaryTestDevice" var uploadId = test.RandomSetID() @@ -51,7 +51,7 @@ var _ = Describe("Continuous Summary", func() { var userId string var datumTime time.Time var err error - var dataSetContinuousData []*glucose.Glucose + var dataSetContinuousData []data.Datum BeforeEach(func() { userId = userTest.RandomID() diff --git a/data/summary/types/summary.go b/data/summary/types/summary.go index 73eac178a..eb41cf5ce 100644 --- a/data/summary/types/summary.go +++ b/data/summary/types/summary.go @@ -4,11 +4,9 @@ import ( "context" "fmt" - "github.com/tidepool-org/platform/data/types/blood/glucose/selfmonitored" - - "github.com/tidepool-org/platform/data/types/upload" + "github.com/tidepool-org/platform/data/summary/fetcher" - "go.mongodb.org/mongo-driver/mongo" + "github.com/tidepool-org/platform/data/types/blood/glucose/selfmonitored" "github.com/tidepool-org/platform/data" @@ -23,9 +21,6 @@ import ( "go.mongodb.org/mongo-driver/bson/primitive" mapset "github.com/deckarep/golang-set/v2" - - glucoseDatum "github.com/tidepool-org/platform/data/types/blood/glucose" - insulinDatum "github.com/tidepool-org/platform/data/types/insulin" ) const ( @@ -66,31 +61,6 @@ type BucketData interface { CGMBucketData | BGMBucketData | ContinuousBucketData } -type RecordTypes interface { - glucoseDatum.Glucose | insulinDatum.Insulin -} - -type RecordTypesPt[T RecordTypes] interface { - *T - GetTime() *time.Time - GetCreatedTime() *time.Time - GetUploadID() *string -} - -type DeviceDataCursor interface { - Decode(val interface{}) error - RemainingBatchLength() int - Next(ctx context.Context) bool - Close(ctx context.Context) error -} - -type DeviceDataFetcher interface { - GetDataSetByID(ctx context.Context, dataSetID string) (*upload.Upload, error) - GetLastUpdatedForUser(ctx context.Context, userId string, typ []string, lastUpdated time.Time) (*data.UserDataStatus, error) - GetDataRange(ctx context.Context, userId string, typ []string, status *data.UserDataStatus) (*mongo.Cursor, error) - DistinctUserIDs(ctx context.Context, typ []string) ([]string, error) -} - type Config struct { SchemaVersion int `json:"schemaVersion" bson:"schemaVersion"` @@ -167,7 +137,7 @@ type StatsPt[T Stats] interface { Init() GetBucketsLen() int GetBucketDate(int) time.Time - Update(context.Context, DeviceDataCursor, DeviceDataFetcher) error + Update(context.Context, fetcher.DeviceDataCursor) error ClearInvalidatedBuckets(earliestModified time.Time) time.Time } @@ -358,7 +328,7 @@ func removeExcessBuckets[A BucketDataPt[T], T BucketData](buckets *[]*Bucket[A, *buckets = (*buckets)[excess:] } -func AddData[A BucketDataPt[T], T BucketData, R RecordTypes, D RecordTypesPt[R]](buckets *[]*Bucket[A, T], userData []D) error { +func AddData[A BucketDataPt[T], T BucketData](buckets *[]*Bucket[A, T], userData []data.Datum) error { previousPeriod := time.Time{} var newBucket *Bucket[A, T] diff --git a/data/summary/types/summary_test.go b/data/summary/types/summary_test.go index d481f5a63..711efd1bf 100644 --- a/data/summary/types/summary_test.go +++ b/data/summary/types/summary_test.go @@ -4,6 +4,8 @@ import ( "math" "time" + "github.com/tidepool-org/platform/data" + "github.com/tidepool-org/platform/data/test" . "github.com/onsi/ginkgo/v2" @@ -86,7 +88,7 @@ func ExpectedAverage(windowSize int, hoursAdded int, newAvg float64, oldAvg floa return (oldAvgTotal + newAvgTotal) / float64(windowSize) } -func ConvertToIntArray[T types.RecordTypes](arr []*T) []interface{} { +func ConvertToIntArray[T data.Datum](arr []T) []interface{} { s := make([]interface{}, len(arr)) for i, v := range arr { s[i] = v diff --git a/data/test/datum.go b/data/test/datum.go index 7e9cd8a7e..fd17ab259 100644 --- a/data/test/datum.go +++ b/data/test/datum.go @@ -62,6 +62,8 @@ type Datum struct { SetDeduplicatorDescriptorInvocations int IsActiveInvocations int IsActiveOutputs []bool + GetUploadIDInvocations int + GetUploadIDOutputs []*string } func NewDatum() *Datum { @@ -240,3 +242,12 @@ func (d *Datum) Expectations() { gomega.Expect(d.GetPayloadOutputs).To(gomega.BeEmpty()) gomega.Expect(d.GetOriginOutputs).To(gomega.BeEmpty()) } + +func (d *Datum) GetUploadID() *string { + d.GetUploadIDInvocations++ + + output := d.GetUploadIDOutputs[0] + d.GetUploadIDOutputs = d.GetUploadIDOutputs[1:] + + return output +} From 5b7fa57a56019b70f1a380c1ebf8a2d1de08829a Mon Sep 17 00:00:00 2001 From: Alexander Diana Date: Mon, 8 Apr 2024 01:51:11 +0000 Subject: [PATCH 23/34] fix infinite backfill loop on continuous summaries with non continuous cgm/bgm data --- data/summary/summary.go | 9 +++++---- data/summary/summary_test.go | 6 +++++- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/data/summary/summary.go b/data/summary/summary.go index 650bfb44d..25b1be26f 100644 --- a/data/summary/summary.go +++ b/data/summary/summary.go @@ -230,12 +230,13 @@ func (gs *GlucoseSummarizer[A, T]) UpdateSummary(ctx context.Context, userId str // this filters out users which may have appeared to have relevant data, but was filtered during calculation if userSummary.Stats.GetBucketsLen() == 0 { - logger.Warnf("User %s has a summary, but no valid data within range, deleting summary", userId) - return nil, gs.summaries.DeleteSummary(ctx, userId) + logger.Warnf("User %s has a summary, but no valid data within range, creating placeholder summary", userId) + userSummary.Dates.Reset() + userSummary.Stats = nil + } else { + userSummary.Dates.Update(status, userSummary.Stats.GetBucketDate(0)) } - userSummary.Dates.Update(status, userSummary.Stats.GetBucketDate(0)) - err = gs.summaries.ReplaceSummary(ctx, userSummary) return userSummary, err diff --git a/data/summary/summary_test.go b/data/summary/summary_test.go index 9fe0e7ea2..c7145bb11 100644 --- a/data/summary/summary_test.go +++ b/data/summary/summary_test.go @@ -683,7 +683,11 @@ var _ = Describe("Summary", func() { userSummary, err = continuousSummarizer.UpdateSummary(ctx, userId) Expect(err).ToNot(HaveOccurred()) - Expect(userSummary).To(BeNil()) + Expect(userSummary).ToNot(BeNil()) + Expect(userSummary.Dates.LastUpdatedDate.IsZero()).To(BeTrue()) + Expect(userSummary.Dates.OutdatedSince).To(BeNil()) + Expect(userSummary.Dates.LastData).To(BeNil()) + Expect(userSummary.Stats).To(BeNil()) }) }) }) From 275b3ef744cc6c9d66856071efd11b2555ae2838 Mon Sep 17 00:00:00 2001 From: Alexander Diana Date: Mon, 8 Apr 2024 16:36:22 +0000 Subject: [PATCH 24/34] raise task timeout for backfill --- data/store/mongo/mongo_datum.go | 11 +----- data/store/mongo/mongo_test.go | 21 ++++++++++ data/summary/summary_test.go | 68 +++++++++++++++++++++++++++++---- task/summary/backfillrunner.go | 2 +- 4 files changed, 84 insertions(+), 18 deletions(-) diff --git a/data/store/mongo/mongo_datum.go b/data/store/mongo/mongo_datum.go index eb6f0f2fa..616e46df1 100644 --- a/data/store/mongo/mongo_datum.go +++ b/data/store/mongo/mongo_datum.go @@ -810,9 +810,6 @@ func (d *DatumRepository) GetLastUpdatedForUser(ctx context.Context, userId stri } func (d *DatumRepository) DistinctUserIDs(ctx context.Context, typ []string) ([]string, error) { - var distinctUserIDMap = make(map[string]struct{}) - var empty struct{} - if ctx == nil { return nil, errors.New("context is missing") } @@ -847,13 +844,9 @@ func (d *DatumRepository) DistinctUserIDs(ctx context.Context, typ []string) ([] return nil, fmt.Errorf("error fetching distinct userIDs: %w", err) } + userIDs := make([]string, 0, len(result)) for _, v := range result { - distinctUserIDMap[v.(string)] = empty - } - - userIDs := make([]string, 0, len(distinctUserIDMap)) - for k := range distinctUserIDMap { - userIDs = append(userIDs, k) + userIDs = append(userIDs, v.(string)) } return userIDs, nil diff --git a/data/store/mongo/mongo_test.go b/data/store/mongo/mongo_test.go index 6836015cb..1ccf835d4 100644 --- a/data/store/mongo/mongo_test.go +++ b/data/store/mongo/mongo_test.go @@ -6,6 +6,8 @@ import ( "math/rand" "time" + "github.com/tidepool-org/platform/data/types/insulin" + glucoseDatum "github.com/tidepool-org/platform/data/types/blood/glucose" "github.com/tidepool-org/platform/data/types/bolus" @@ -1430,6 +1432,7 @@ var _ = Describe("Mongo", func() { Context("with database access", func() { var userIdOne string var userIdTwo string + var userIdThree string BeforeEach(func() { userIdOne = userTest.RandomID() @@ -1440,6 +1443,10 @@ var _ = Describe("Mongo", func() { dataSetTwo := NewDataSet(userIdTwo, deviceID) dataSetDataTwo := NewDataSetData(deviceID) + userIdThree = userTest.RandomID() + dataSetThree := NewDataSet(userIdThree, deviceID) + dataSetDataThree := NewDataSetData(deviceID) + dataSetDataOne[0].SetType(selfmonitored.Type) dataSetDataOne[0].SetActive(false) for i := 1; i < len(dataSetDataOne); i++ { @@ -1454,8 +1461,14 @@ var _ = Describe("Mongo", func() { dataSetDataTwo[i].SetActive(true) } + for i := 0; i < len(dataSetDataThree); i++ { + dataSetDataThree[i].SetType(insulin.Type) + dataSetDataThree[i].SetActive(true) + } + Expect(repository.CreateDataSetData(ctx, dataSetOne, dataSetDataOne)).To(Succeed()) Expect(repository.CreateDataSetData(ctx, dataSetTwo, dataSetDataTwo)).To(Succeed()) + Expect(repository.CreateDataSetData(ctx, dataSetThree, dataSetDataThree)).To(Succeed()) }) It("correctly identifies distinct users", func() { @@ -1480,6 +1493,14 @@ var _ = Describe("Mongo", func() { Expect(err).ToNot(HaveOccurred()) Expect(userIds).To(HaveLen(0)) }) + + It("correctly identifies distinct users with multiple types", func() { + userIds, err := repository.DistinctUserIDs(ctx, []string{selfmonitored.Type, insulin.Type}) + Expect(userIds).ToNot(BeNil()) + Expect(err).ToNot(HaveOccurred()) + Expect(userIds).To(HaveLen(2)) + Expect(userIds).To(ConsistOf([]string{userIdThree, userIdTwo})) + }) }) }) diff --git a/data/summary/summary_test.go b/data/summary/summary_test.go index c7145bb11..c8bb66535 100644 --- a/data/summary/summary_test.go +++ b/data/summary/summary_test.go @@ -353,6 +353,65 @@ var _ = Describe("Summary", func() { }) }) + Context("BackfillSummaries", func() { + var err error + var logger log.Logger + var ctx context.Context + var config *storeStructuredMongo.Config + var store *dataStoreMongo.Store + var dataCollection *mongo.Collection + var datumTime time.Time + var deviceData []mongo.WriteModel + var opts *options.BulkWriteOptions + var registry *summary.SummarizerRegistry + var dataStore dataStore.DataRepository + var summaryRepository *storeStructuredMongo.Repository + var continuousSummarizer summary.Summarizer[*types.ContinuousStats, types.ContinuousStats] + + BeforeEach(func() { + logger = logTest.NewLogger() + ctx = log.NewContextWithLogger(context.Background(), logger) + config = storeStructuredMongoTest.NewConfig() + store, err = dataStoreMongo.NewStore(config) + Expect(err).ToNot(HaveOccurred()) + Expect(store.EnsureIndexes()).To(Succeed()) + dataCollection = store.GetCollection("deviceData") + datumTime = time.Now().UTC().Truncate(time.Hour) + opts = options.BulkWrite().SetOrdered(false) + dataStore = store.NewDataRepository() + summaryRepository = store.NewSummaryRepository().GetStore() + registry = summary.New(summaryRepository, dataStore) + continuousSummarizer = summary.GetSummarizer[*types.ContinuousStats](registry) + }) + + It("backfill continuous summaries", func() { + userIdOne := userTest.RandomID() + userIdTwo := userTest.RandomID() + + deviceData = NewDataSetData(continuous.Type, userIdOne, datumTime, 2, 5) + _, err := dataCollection.BulkWrite(ctx, deviceData, opts) + Expect(err).ToNot(HaveOccurred()) + + deviceData = NewDataSetData(selfmonitored.Type, userIdTwo, datumTime, 2, 5) + _, err = dataCollection.BulkWrite(ctx, deviceData, opts) + Expect(err).ToNot(HaveOccurred()) + + count, err := continuousSummarizer.BackfillSummaries(ctx) + Expect(err).ToNot(HaveOccurred()) + Expect(count).To(Equal(2)) + + userSummary, err := continuousSummarizer.GetSummary(ctx, userIdOne) + Expect(err).ToNot(HaveOccurred()) + Expect(userSummary.UserID).To(Equal(userIdOne)) + Expect(userSummary.Type).To(Equal(types.SummaryTypeContinuous)) + + userSummary, err = continuousSummarizer.GetSummary(ctx, userIdTwo) + Expect(err).ToNot(HaveOccurred()) + Expect(userSummary.UserID).To(Equal(userIdTwo)) + Expect(userSummary.Type).To(Equal(types.SummaryTypeContinuous)) + }) + }) + Context("end to end summary calculation", func() { var err error var logger log.Logger @@ -370,6 +429,7 @@ var _ = Describe("Summary", func() { var continuousSummarizer summary.Summarizer[*types.ContinuousStats, types.ContinuousStats] var dataCollection *mongo.Collection var datumTime time.Time + var deviceData []mongo.WriteModel BeforeEach(func() { logger = logTest.NewLogger() @@ -398,7 +458,6 @@ var _ = Describe("Summary", func() { It("repeat out of order cgm summary calc", func() { var userSummary *types.Summary[*types.CGMStats, types.CGMStats] - var deviceData []mongo.WriteModel opts := options.BulkWrite().SetOrdered(false) deviceData = NewDataSetData("cbg", userId, datumTime, 5, 5) @@ -448,7 +507,6 @@ var _ = Describe("Summary", func() { It("repeat out of order bgm summary calc", func() { var userSummary *types.Summary[*types.BGMStats, types.BGMStats] - var deviceData []mongo.WriteModel opts := options.BulkWrite().SetOrdered(false) deviceData = NewDataSetData("smbg", userId, datumTime, 5, 5) @@ -498,7 +556,6 @@ var _ = Describe("Summary", func() { It("summary calc with very old data", func() { var userSummary *types.Summary[*types.BGMStats, types.BGMStats] - var deviceData []mongo.WriteModel opts := options.BulkWrite().SetOrdered(false) deviceData = NewDataSetData("smbg", userId, datumTime.AddDate(-3, 0, 0), 5, 5) @@ -512,7 +569,6 @@ var _ = Describe("Summary", func() { It("summary calc with jellyfish created summary", func() { var userSummary *types.Summary[*types.BGMStats, types.BGMStats] - var deviceData []mongo.WriteModel opts := options.BulkWrite().SetOrdered(false) deviceData = NewDataSetData("smbg", userId, datumTime, 5, 5) @@ -592,7 +648,6 @@ var _ = Describe("Summary", func() { It("summary calc with no new data correctly leaves summary unchanged", func() { var userSummary *types.Summary[*types.CGMStats, types.CGMStats] var userSummaryNew *types.Summary[*types.CGMStats, types.CGMStats] - var deviceData []mongo.WriteModel opts := options.BulkWrite().SetOrdered(false) deviceData = NewDataSetData("cbg", userId, datumTime, 5, 5) @@ -619,7 +674,6 @@ var _ = Describe("Summary", func() { It("summary calc with realtime data", func() { var userSummary *types.Summary[*types.ContinuousStats, types.ContinuousStats] - var deviceData []mongo.WriteModel realtimeDatumTime := time.Now().UTC().Truncate(time.Hour) uploadRecord := NewDataSet(userId, data.DataSetTypeContinuous) @@ -644,7 +698,6 @@ var _ = Describe("Summary", func() { It("summary calc with deferred data", func() { var userSummary *types.Summary[*types.ContinuousStats, types.ContinuousStats] - var deviceData []mongo.WriteModel deferredDatumTime := time.Now().UTC().Truncate(time.Hour).AddDate(0, 0, -2) uploadRecord := NewDataSet(userId, data.DataSetTypeContinuous) @@ -669,7 +722,6 @@ var _ = Describe("Summary", func() { It("summary calc with non-continuous data", func() { var userSummary *types.Summary[*types.ContinuousStats, types.ContinuousStats] - var deviceData []mongo.WriteModel deferredDatumTime := time.Now().UTC().Truncate(time.Hour).AddDate(0, 0, -2) uploadRecord := NewDataSet(userId, data.DataSetTypeNormal) diff --git a/task/summary/backfillrunner.go b/task/summary/backfillrunner.go index 9949a9383..d4325e1dd 100644 --- a/task/summary/backfillrunner.go +++ b/task/summary/backfillrunner.go @@ -22,7 +22,7 @@ import ( const ( DefaultBackfillAvailableAfterDurationMinimum = 23 * time.Hour DefaultBackfillAvailableAfterDurationMaximum = 24 * time.Hour - BackfillTaskDurationMaximum = 5 * time.Minute + BackfillTaskDurationMaximum = 15 * time.Minute BackfillType = "org.tidepool.summary.backfill" ) From 1abd563913aa7a3900ab85cf75277a31e1df5bfd Mon Sep 17 00:00:00 2001 From: Alexander Diana Date: Mon, 8 Apr 2024 16:53:38 +0000 Subject: [PATCH 25/34] correct accidental cgm hardcode in backfill task --- task/summary/backfillrunner.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/task/summary/backfillrunner.go b/task/summary/backfillrunner.go index d4325e1dd..45c081e7f 100644 --- a/task/summary/backfillrunner.go +++ b/task/summary/backfillrunner.go @@ -169,7 +169,7 @@ func (t *BackfillTaskRunner) Run(ctx context.Context) error { for _, typ := range []string{"bgm", "cgm", "continuous"} { t.logger.Debugf("Starting User %s Summary Backfill", typ) - count, err := t.dataClient.BackfillSummaries(t.context, "cgm") + count, err := t.dataClient.BackfillSummaries(t.context, typ) if err != nil { return err } From 607058ed9c62c9b777e91e6171a179642d77da0e Mon Sep 17 00:00:00 2001 From: Alexander Diana Date: Wed, 10 Apr 2024 02:18:31 +0000 Subject: [PATCH 26/34] WIP restructure cgm stats, reduce duplication --- data/summary/types/cgm.go | 599 ++------- data/summary/types/summary.go | 54 +- go.mod | 1 + go.sum | 2 + .../mitchellh/mapstructure/.travis.yml | 8 + .../mitchellh/mapstructure/CHANGELOG.md | 21 + .../github.com/mitchellh/mapstructure/LICENSE | 21 + .../mitchellh/mapstructure/README.md | 46 + .../mitchellh/mapstructure/decode_hooks.go | 217 ++++ .../mitchellh/mapstructure/error.go | 50 + .../mitchellh/mapstructure/mapstructure.go | 1149 +++++++++++++++++ vendor/modules.txt | 3 + 12 files changed, 1672 insertions(+), 499 deletions(-) create mode 100644 vendor/github.com/mitchellh/mapstructure/.travis.yml create mode 100644 vendor/github.com/mitchellh/mapstructure/CHANGELOG.md create mode 100644 vendor/github.com/mitchellh/mapstructure/LICENSE create mode 100644 vendor/github.com/mitchellh/mapstructure/README.md create mode 100644 vendor/github.com/mitchellh/mapstructure/decode_hooks.go create mode 100644 vendor/github.com/mitchellh/mapstructure/error.go create mode 100644 vendor/github.com/mitchellh/mapstructure/mapstructure.go diff --git a/data/summary/types/cgm.go b/data/summary/types/cgm.go index b540ebe1b..79ae539c2 100644 --- a/data/summary/types/cgm.go +++ b/data/summary/types/cgm.go @@ -10,155 +10,60 @@ import ( "github.com/tidepool-org/platform/data/types/blood/glucose/continuous" + "github.com/mitchellh/mapstructure" "github.com/tidepool-org/platform/data/blood/glucose" glucoseDatum "github.com/tidepool-org/platform/data/types/blood/glucose" "github.com/tidepool-org/platform/pointer" ) -type CGMBucketData struct { - LastRecordDuration int `json:"LastRecordDuration" bson:"LastRecordDuration"` +type GlucoseBucketData struct { + LastRecordDuration int `json:"LastRecordDuration" bson:"LastRecordDuration,omitempty"` - TargetMinutes int `json:"targetMinutes" bson:"targetMinutes"` - TargetRecords int `json:"targetRecords" bson:"targetRecords"` - - LowMinutes int `json:"lowMinutes" bson:"lowMinutes"` - LowRecords int `json:"lowRecords" bson:"lowRecords"` - - VeryLowMinutes int `json:"veryLowMinutes" bson:"veryLowMinutes"` - VeryLowRecords int `json:"veryLowRecords" bson:"veryLowRecords"` - - HighMinutes int `json:"highMinutes" bson:"highMinutes"` - HighRecords int `json:"highRecords" bson:"highRecords"` - - VeryHighMinutes int `json:"veryHighMinutes" bson:"veryHighMinutes"` - VeryHighRecords int `json:"veryHighRecords" bson:"veryHighRecords"` - - TotalGlucose float64 `json:"totalGlucose" bson:"totalGlucose"` - TotalMinutes int `json:"totalMinutes" bson:"totalMinutes"` - TotalRecords int `json:"totalRecords" bson:"totalRecords"` + InTarget *GlucoseBin `json:"inTarget" bson:"inTarget,omitempty"` + InLow *GlucoseBin `json:"inLow" bson:"inLow,omitempty"` + InVeryLow *GlucoseBin `json:"inVeryLow" bson:"inVeryLow,omitempty"` + InHigh *GlucoseBin `json:"inHigh" bson:"inHigh,omitempty"` + InVeryHigh *GlucoseBin `json:"inVeryHigh" bson:"inVeryHigh,omitempty"` + Total *TotalBin `json:"total" bson:"total,omitempty"` } -type CGMPeriod struct { - HasTimeCGMUsePercent bool `json:"hasTimeCGMUsePercent" bson:"hasTimeCGMUsePercent"` - TimeCGMUsePercent *float64 `json:"timeCGMUsePercent" bson:"timeCGMUsePercent"` - TimeCGMUsePercentDelta *float64 `json:"timeCGMUsePercentDelta" bson:"timeCGMUsePercentDelta"` - - HasTimeCGMUseMinutes bool `json:"hasTimeCGMUseMinutes" bson:"hasTimeCGMUseMinutes"` - TimeCGMUseMinutes *int `json:"timeCGMUseMinutes" bson:"timeCGMUseMinutes"` - TimeCGMUseMinutesDelta *int `json:"timeCGMUseMinutesDelta" bson:"timeCGMUseMinutesDelta"` - - HasTimeCGMUseRecords bool `json:"hasTimeCGMUseRecords" bson:"hasTimeCGMUseRecords"` - TimeCGMUseRecords *int `json:"timeCGMUseRecords" bson:"timeCGMUseRecords"` - TimeCGMUseRecordsDelta *int `json:"timeCGMUseRecordsDelta" bson:"timeCGMUseRecordsDelta"` - - HasAverageGlucoseMmol bool `json:"hasAverageGlucoseMmol" bson:"hasAverageGlucoseMmol"` - AverageGlucoseMmol *float64 `json:"averageGlucoseMmol" bson:"averageGlucoseMmol"` - AverageGlucoseMmolDelta *float64 `json:"averageGlucoseMmolDelta" bson:"averageGlucoseMmolDelta"` - - HasGlucoseManagementIndicator bool `json:"hasGlucoseManagementIndicator" bson:"hasGlucoseManagementIndicator"` - GlucoseManagementIndicator *float64 `json:"glucoseManagementIndicator" bson:"glucoseManagementIndicator"` - GlucoseManagementIndicatorDelta *float64 `json:"glucoseManagementIndicatorDelta" bson:"glucoseManagementIndicatorDelta"` - - HasTotalRecords bool `json:"hasTotalRecords" bson:"hasTotalRecords"` - TotalRecords *int `json:"totalRecords" bson:"totalRecords"` - TotalRecordsDelta *int `json:"totalRecordsDelta" bson:"totalRecordsDelta"` - - HasAverageDailyRecords bool `json:"hasAverageDailyRecords" bson:"hasAverageDailyRecords"` - AverageDailyRecords *float64 `json:"averageDailyRecords" bson:"averageDailyRecords"` - AverageDailyRecordsDelta *float64 `json:"averageDailyRecordsDelta" bson:"averageDailyRecordsDelta"` - - HasTimeInTargetPercent bool `json:"hasTimeInTargetPercent" bson:"hasTimeInTargetPercent"` - TimeInTargetPercent *float64 `json:"timeInTargetPercent" bson:"timeInTargetPercent"` - TimeInTargetPercentDelta *float64 `json:"timeInTargetPercentDelta" bson:"timeInTargetPercentDelta"` - - HasTimeInTargetMinutes bool `json:"hasTimeInTargetMinutes" bson:"hasTimeInTargetMinutes"` - TimeInTargetMinutes *int `json:"timeInTargetMinutes" bson:"timeInTargetMinutes"` - TimeInTargetMinutesDelta *int `json:"timeInTargetMinutesDelta" bson:"timeInTargetMinutesDelta"` - - HasTimeInTargetRecords bool `json:"hasTimeInTargetRecords" bson:"hasTimeInTargetRecords"` - TimeInTargetRecords *int `json:"timeInTargetRecords" bson:"timeInTargetRecords"` - TimeInTargetRecordsDelta *int `json:"timeInTargetRecordsDelta" bson:"timeInTargetRecordsDelta"` - - HasTimeInLowPercent bool `json:"hasTimeInLowPercent" bson:"hasTimeInLowPercent"` - TimeInLowPercent *float64 `json:"timeInLowPercent" bson:"timeInLowPercent"` - TimeInLowPercentDelta *float64 `json:"timeInLowPercentDelta" bson:"timeInLowPercentDelta"` - - HasTimeInLowMinutes bool `json:"hasTimeInLowMinutes" bson:"hasTimeInLowMinutes"` - TimeInLowMinutes *int `json:"timeInLowMinutes" bson:"timeInLowMinutes"` - TimeInLowMinutesDelta *int `json:"timeInLowMinutesDelta" bson:"timeInLowMinutesDelta"` - - HasTimeInLowRecords bool `json:"hasTimeInLowRecords" bson:"hasTimeInLowRecords"` - TimeInLowRecords *int `json:"timeInLowRecords" bson:"timeInLowRecords"` - TimeInLowRecordsDelta *int `json:"timeInLowRecordsDelta" bson:"timeInLowRecordsDelta"` - - HasTimeInVeryLowPercent bool `json:"hasTimeInVeryLowPercent" bson:"hasTimeInVeryLowPercent"` - TimeInVeryLowPercent *float64 `json:"timeInVeryLowPercent" bson:"timeInVeryLowPercent"` - TimeInVeryLowPercentDelta *float64 `json:"timeInVeryLowPercentDelta" bson:"timeInVeryLowPercentDelta"` - - HasTimeInVeryLowMinutes bool `json:"hasTimeInVeryLowMinutes" bson:"hasTimeInVeryLowMinutes"` - TimeInVeryLowMinutes *int `json:"timeInVeryLowMinutes" bson:"timeInVeryLowMinutes"` - TimeInVeryLowMinutesDelta *int `json:"timeInVeryLowMinutesDelta" bson:"timeInVeryLowMinutesDelta"` - - HasTimeInVeryLowRecords bool `json:"hasTimeInVeryLowRecords" bson:"hasTimeInVeryLowRecords"` - TimeInVeryLowRecords *int `json:"timeInVeryLowRecords" bson:"timeInVeryLowRecords"` - TimeInVeryLowRecordsDelta *int `json:"timeInVeryLowRecordsDelta" bson:"timeInVeryLowRecordsDelta"` - - HasTimeInAnyLowPercent bool `json:"hasTimeInAnyLowPercent" bson:"hasTimeInAnyLowPercent"` - TimeInAnyLowPercent *float64 `json:"timeInAnyLowPercent" bson:"timeInAnyLowPercent"` - TimeInAnyLowPercentDelta *float64 `json:"timeInAnyLowPercentDelta" bson:"timeInAnyLowPercentDelta"` - - HasTimeInAnyLowMinutes bool `json:"hasTimeInAnyLowMinutes" bson:"hasTimeInAnyLowMinutes"` - TimeInAnyLowMinutes *int `json:"timeInAnyLowMinutes" bson:"timeInAnyLowMinutes"` - TimeInAnyLowMinutesDelta *int `json:"timeInAnyLowMinutesDelta" bson:"timeInAnyLowMinutesDelta"` - - HasTimeInAnyLowRecords bool `json:"hasTimeInAnyLowRecords" bson:"hasTimeInAnyLowRecords"` - TimeInAnyLowRecords *int `json:"timeInAnyLowRecords" bson:"timeInAnyLowRecords"` - TimeInAnyLowRecordsDelta *int `json:"timeInAnyLowRecordsDelta" bson:"timeInAnyLowRecordsDelta"` - - HasTimeInHighPercent bool `json:"hasTimeInHighPercent" bson:"hasTimeInHighPercent"` - TimeInHighPercent *float64 `json:"timeInHighPercent" bson:"timeInHighPercent"` - TimeInHighPercentDelta *float64 `json:"timeInHighPercentDelta" bson:"timeInHighPercentDelta"` - - HasTimeInHighMinutes bool `json:"hasTimeInHighMinutes" bson:"hasTimeInHighMinutes"` - TimeInHighMinutes *int `json:"timeInHighMinutes" bson:"timeInHighMinutes"` - TimeInHighMinutesDelta *int `json:"timeInHighMinutesDelta" bson:"timeInHighMinutesDelta"` - - HasTimeInHighRecords bool `json:"hasTimeInHighRecords" bson:"hasTimeInHighRecords"` - TimeInHighRecords *int `json:"timeInHighRecords" bson:"timeInHighRecords"` - TimeInHighRecordsDelta *int `json:"timeInHighRecordsDelta" bson:"timeInHighRecordsDelta"` +type GlucoseBin struct { + Percent float64 `json:"percent" bson:"percent,omitempty"` + Minutes int `json:"minutes" bson:"minutes,omitempty"` + Records int `json:"records" bson:"records,omitempty"` +} - HasTimeInVeryHighPercent bool `json:"hasTimeInVeryHighPercent" bson:"hasTimeInVeryHighPercent"` - TimeInVeryHighPercent *float64 `json:"timeInVeryHighPercent" bson:"timeInVeryHighPercent"` - TimeInVeryHighPercentDelta *float64 `json:"timeInVeryHighPercentDelta" bson:"timeInVeryHighPercentDelta"` +type TotalBin struct { + Glucose float64 `json:"glucose" bson:"glucose,omitempty"` + Minutes int `json:"minutes" bson:"minutes,omitempty"` + Records int `json:"records" bson:"records,omitempty"` +} - HasTimeInVeryHighMinutes bool `json:"hasTimeInVeryHighMinutes" bson:"hasTimeInVeryHighMinutes"` - TimeInVeryHighMinutes *int `json:"timeInVeryHighMinutes" bson:"timeInVeryHighMinutes"` - TimeInVeryHighMinutesDelta *int `json:"timeInVeryHighMinutesDelta" bson:"timeInVeryHighMinutesDelta"` +type GlucosePeriod struct { + AverageGlucoseMmol float64 `json:"averageGlucoseMmol" bson:"averageGlucoseMmol,omitempty" mapstructure:"_"` + GlucoseManagementIndicator float64 `json:"glucoseManagementIndicator" bson:"glucoseManagementIndicator,omitempty" mapstructure:"_"` - HasTimeInVeryHighRecords bool `json:"hasTimeInVeryHighRecords" bson:"hasTimeInVeryHighRecords"` - TimeInVeryHighRecords *int `json:"timeInVeryHighRecords" bson:"timeInVeryHighRecords"` - TimeInVeryHighRecordsDelta *int `json:"timeInVeryHighRecordsDelta" bson:"timeInVeryHighRecordsDelta"` - - HasTimeInAnyHighPercent bool `json:"hasTimeInAnyHighPercent" bson:"hasTimeInAnyHighPercent"` - TimeInAnyHighPercent *float64 `json:"timeInAnyHighPercent" bson:"timeInAnyHighPercent"` - TimeInAnyHighPercentDelta *float64 `json:"timeInAnyHighPercentDelta" bson:"timeInAnyHighPercentDelta"` + AverageDailyRecords float64 `json:"averageDailyRecords" bson:"averageDailyRecords,omitempty" mapstructure:"_"` - HasTimeInAnyHighMinutes bool `json:"hasTimeInAnyHighMinutes" bson:"hasTimeInAnyHighMinutes"` - TimeInAnyHighMinutes *int `json:"timeInAnyHighMinutes" bson:"timeInAnyHighMinutes"` - TimeInAnyHighMinutesDelta *int `json:"timeInAnyHighMinutesDelta" bson:"timeInAnyHighMinutesDelta"` + Delta *GlucosePeriod `json:"delta" bson:"delta,omitempty" mapstructure:"_"` - HasTimeInAnyHighRecords bool `json:"hasTimeInAnyHighRecords" bson:"hasTimeInAnyHighRecords"` - TimeInAnyHighRecords *int `json:"timeInAnyHighRecords" bson:"timeInAnyHighRecords"` - TimeInAnyHighRecordsDelta *int `json:"timeInAnyHighRecordsDelta" bson:"timeInAnyHighRecordsDelta"` + Total *GlucoseBin `json:"cgmUse" bson:"cgmUse,omitempty"` + InTarget *GlucoseBin `json:"inTarget" bson:"inTarget,omitempty"` + InLow *GlucoseBin `json:"inLow" bson:"inLow,omitempty"` + InVeryLow *GlucoseBin `json:"inVeryLow" bson:"inVeryLow,omitempty"` + InAnyLow *GlucoseBin `json:"inAnyLow" bson:"inAnyLow,omitempty"` + InHigh *GlucoseBin `json:"inHigh" bson:"inHigh,omitempty"` + InVeryHigh *GlucoseBin `json:"inVeryHigh" bson:"inVeryHigh,omitempty"` + InAnyHigh *GlucoseBin `json:"inAnyHigh" bson:"inAnyHigh,omitempty"` } -type CGMPeriods map[string]*CGMPeriod +type GlucosePeriods map[string]*GlucosePeriod type CGMStats struct { - Periods CGMPeriods `json:"periods" bson:"periods"` - OffsetPeriods CGMPeriods `json:"offsetPeriods" bson:"offsetPeriods"` - Buckets []*Bucket[*CGMBucketData, CGMBucketData] `json:"buckets" bson:"buckets"` - TotalHours int `json:"totalHours" bson:"totalHours"` + Periods GlucosePeriods `json:"periods" bson:"periods"` + OffsetPeriods GlucosePeriods `json:"offsetPeriods" bson:"offsetPeriods"` + Buckets []*Bucket[*GlucoseBucketData, GlucoseBucketData] `json:"buckets" bson:"buckets"` + TotalHours int `json:"totalHours" bson:"totalHours"` } func (*CGMStats) GetType() string { @@ -170,9 +75,9 @@ func (*CGMStats) GetDeviceDataTypes() []string { } func (s *CGMStats) Init() { - s.Buckets = make([]*Bucket[*CGMBucketData, CGMBucketData], 0) - s.Periods = make(map[string]*CGMPeriod) - s.OffsetPeriods = make(map[string]*CGMPeriod) + s.Buckets = make([]*Bucket[*GlucoseBucketData, GlucoseBucketData], 0) + s.Periods = make(map[string]*GlucosePeriod) + s.OffsetPeriods = make(map[string]*GlucosePeriod) s.TotalHours = 0 } @@ -191,7 +96,7 @@ func (s *CGMStats) ClearInvalidatedBuckets(earliestModified time.Time) (firstDat return s.Buckets[len(s.Buckets)-1].LastRecordTime } else if earliestModified.Before(s.Buckets[0].Date) || earliestModified.Equal(s.Buckets[0].Date) { // we are before all existing buckets, remake for GC - s.Buckets = make([]*Bucket[*CGMBucketData, CGMBucketData], 0) + s.Buckets = make([]*Bucket[*GlucoseBucketData, GlucoseBucketData], 0) return } @@ -231,7 +136,7 @@ func (s *CGMStats) Update(ctx context.Context, cursor fetcher.DeviceDataCursor) return nil } -func (B *CGMBucketData) CalculateStats(r any, lastRecordTime *time.Time) (bool, error) { +func (B *GlucoseBucketData) CalculateStats(r any, lastRecordTime *time.Time) (bool, error) { dataRecord, ok := r.(*glucoseDatum.Glucose) if !ok { return false, errors.New("CGM record for calculation is not compatible with Glucose type") @@ -251,25 +156,25 @@ func (B *CGMBucketData) CalculateStats(r any, lastRecordTime *time.Time) (bool, duration := GetDuration(dataRecord) if normalizedValue < veryLowBloodGlucose { - B.VeryLowMinutes += duration - B.VeryLowRecords++ + B.InVeryLow.Minutes += duration + B.InVeryLow.Records++ } else if normalizedValue > veryHighBloodGlucose { - B.VeryHighMinutes += duration - B.VeryHighRecords++ + B.InVeryHigh.Minutes += duration + B.InVeryHigh.Records++ } else if normalizedValue < lowBloodGlucose { - B.LowMinutes += duration - B.LowRecords++ + B.InLow.Minutes += duration + B.InLow.Records++ } else if normalizedValue > highBloodGlucose { - B.HighMinutes += duration - B.HighRecords++ + B.InHigh.Minutes += duration + B.InHigh.Records++ } else { - B.TargetMinutes += duration - B.TargetRecords++ + B.InTarget.Minutes += duration + B.InTarget.Records++ } - B.TotalMinutes += duration - B.TotalRecords++ - B.TotalGlucose += normalizedValue * float64(duration) + B.Total.Minutes += duration + B.Total.Records++ + B.Total.Glucose += normalizedValue * float64(duration) B.LastRecordDuration = duration return false, nil @@ -283,8 +188,8 @@ func (s *CGMStats) CalculateSummary() { // currently only supports day precision nextStopPoint := 0 nextOffsetStopPoint := 0 - totalStats := &CGMBucketData{} - totalOffsetStats := &CGMBucketData{} + totalStats := &GlucoseBucketData{} + totalOffsetStats := &GlucoseBucketData{} for i := 0; i < len(s.Buckets); i++ { currentIndex := len(s.Buckets) - 1 - i @@ -296,24 +201,24 @@ func (s *CGMStats) CalculateSummary() { nextStopPoint++ } - totalStats.TargetMinutes += s.Buckets[currentIndex].Data.TargetMinutes - totalStats.TargetRecords += s.Buckets[currentIndex].Data.TargetRecords + totalStats.InTarget.Minutes += s.Buckets[currentIndex].Data.InTarget.Minutes + totalStats.InTarget.Records += s.Buckets[currentIndex].Data.InTarget.Records - totalStats.LowMinutes += s.Buckets[currentIndex].Data.LowMinutes - totalStats.LowRecords += s.Buckets[currentIndex].Data.LowRecords + totalStats.InLow.Minutes += s.Buckets[currentIndex].Data.InLow.Minutes + totalStats.InLow.Records += s.Buckets[currentIndex].Data.InLow.Records - totalStats.VeryLowMinutes += s.Buckets[currentIndex].Data.VeryLowMinutes - totalStats.VeryLowRecords += s.Buckets[currentIndex].Data.VeryLowRecords + totalStats.InVeryLow.Minutes += s.Buckets[currentIndex].Data.InVeryLow.Minutes + totalStats.InVeryLow.Records += s.Buckets[currentIndex].Data.InVeryLow.Records - totalStats.HighMinutes += s.Buckets[currentIndex].Data.HighMinutes - totalStats.HighRecords += s.Buckets[currentIndex].Data.HighRecords + totalStats.InHigh.Minutes += s.Buckets[currentIndex].Data.InHigh.Minutes + totalStats.InHigh.Records += s.Buckets[currentIndex].Data.InHigh.Records - totalStats.VeryHighMinutes += s.Buckets[currentIndex].Data.VeryHighMinutes - totalStats.VeryHighRecords += s.Buckets[currentIndex].Data.VeryHighRecords + totalStats.InVeryHigh.Minutes += s.Buckets[currentIndex].Data.InVeryHigh.Minutes + totalStats.InVeryHigh.Records += s.Buckets[currentIndex].Data.InVeryHigh.Records - totalStats.TotalGlucose += s.Buckets[currentIndex].Data.TotalGlucose - totalStats.TotalMinutes += s.Buckets[currentIndex].Data.TotalMinutes - totalStats.TotalRecords += s.Buckets[currentIndex].Data.TotalRecords + totalStats.Total.Glucose += s.Buckets[currentIndex].Data.Total.Glucose + totalStats.Total.Minutes += s.Buckets[currentIndex].Data.Total.Minutes + totalStats.Total.Records += s.Buckets[currentIndex].Data.Total.Records } // only add to offset stats when primary stop point is ahead of offset @@ -321,26 +226,26 @@ func (s *CGMStats) CalculateSummary() { if i == stopPoints[nextOffsetStopPoint]*24*2 { s.CalculatePeriod(stopPoints[nextOffsetStopPoint], true, totalOffsetStats) nextOffsetStopPoint++ - totalOffsetStats = &CGMBucketData{} + totalOffsetStats = &GlucoseBucketData{} } - totalOffsetStats.TargetMinutes += s.Buckets[currentIndex].Data.TargetMinutes - totalOffsetStats.TargetRecords += s.Buckets[currentIndex].Data.TargetRecords + totalOffsetStats.InTarget.Minutes += s.Buckets[currentIndex].Data.InTarget.Minutes + totalOffsetStats.InTarget.Records += s.Buckets[currentIndex].Data.InTarget.Records - totalOffsetStats.LowMinutes += s.Buckets[currentIndex].Data.LowMinutes - totalOffsetStats.LowRecords += s.Buckets[currentIndex].Data.LowRecords + totalOffsetStats.InLow.Minutes += s.Buckets[currentIndex].Data.InLow.Minutes + totalOffsetStats.InLow.Records += s.Buckets[currentIndex].Data.InLow.Records - totalOffsetStats.VeryLowMinutes += s.Buckets[currentIndex].Data.VeryLowMinutes - totalOffsetStats.VeryLowRecords += s.Buckets[currentIndex].Data.VeryLowRecords + totalOffsetStats.InVeryLow.Minutes += s.Buckets[currentIndex].Data.InVeryLow.Minutes + totalOffsetStats.InVeryLow.Records += s.Buckets[currentIndex].Data.InVeryLow.Records - totalOffsetStats.HighMinutes += s.Buckets[currentIndex].Data.HighMinutes - totalOffsetStats.HighRecords += s.Buckets[currentIndex].Data.HighRecords + totalOffsetStats.InHigh.Minutes += s.Buckets[currentIndex].Data.InHigh.Minutes + totalOffsetStats.InHigh.Records += s.Buckets[currentIndex].Data.InHigh.Records - totalOffsetStats.VeryHighMinutes += s.Buckets[currentIndex].Data.VeryHighMinutes - totalOffsetStats.VeryHighRecords += s.Buckets[currentIndex].Data.VeryHighRecords + totalOffsetStats.InVeryHigh.Minutes += s.Buckets[currentIndex].Data.InVeryHigh.Minutes + totalOffsetStats.InVeryHigh.Records += s.Buckets[currentIndex].Data.InVeryHigh.Records - totalOffsetStats.TotalGlucose += s.Buckets[currentIndex].Data.TotalGlucose - totalOffsetStats.TotalMinutes += s.Buckets[currentIndex].Data.TotalMinutes - totalOffsetStats.TotalRecords += s.Buckets[currentIndex].Data.TotalRecords + totalOffsetStats.Total.Glucose += s.Buckets[currentIndex].Data.Total.Glucose + totalOffsetStats.Total.Minutes += s.Buckets[currentIndex].Data.Total.Minutes + totalOffsetStats.Total.Records += s.Buckets[currentIndex].Data.Total.Records } } @@ -350,7 +255,7 @@ func (s *CGMStats) CalculateSummary() { } for i := nextOffsetStopPoint; i < len(stopPoints); i++ { s.CalculatePeriod(stopPoints[i], true, totalOffsetStats) - totalOffsetStats = &CGMBucketData{} + totalOffsetStats = &GlucoseBucketData{} } s.TotalHours = len(s.Buckets) @@ -364,305 +269,75 @@ func (s *CGMStats) CalculateDelta() { // approach. for k := range s.Periods { - if s.Periods[k].TimeCGMUsePercent != nil && s.OffsetPeriods[k].TimeCGMUsePercent != nil { - delta := *s.Periods[k].TimeCGMUsePercent - *s.OffsetPeriods[k].TimeCGMUsePercent - - s.Periods[k].TimeCGMUsePercentDelta = pointer.FromAny(delta) - s.OffsetPeriods[k].TimeCGMUsePercentDelta = pointer.FromAny(-delta) - } - - if s.Periods[k].TimeCGMUseRecords != nil && s.OffsetPeriods[k].TimeCGMUseRecords != nil { - delta := *s.Periods[k].TimeCGMUseRecords - *s.OffsetPeriods[k].TimeCGMUseRecords - - s.Periods[k].TimeCGMUseRecordsDelta = pointer.FromAny(delta) - s.OffsetPeriods[k].TimeCGMUseRecordsDelta = pointer.FromAny(-delta) - } - - if s.Periods[k].TimeCGMUseMinutes != nil && s.OffsetPeriods[k].TimeCGMUseMinutes != nil { - delta := *s.Periods[k].TimeCGMUseMinutes - *s.OffsetPeriods[k].TimeCGMUseMinutes - - s.Periods[k].TimeCGMUseMinutesDelta = pointer.FromAny(delta) - s.OffsetPeriods[k].TimeCGMUseMinutesDelta = pointer.FromAny(-delta) - } - - if s.Periods[k].AverageGlucoseMmol != nil && s.OffsetPeriods[k].AverageGlucoseMmol != nil { - delta := *s.Periods[k].AverageGlucoseMmol - *s.OffsetPeriods[k].AverageGlucoseMmol - - s.Periods[k].AverageGlucoseMmolDelta = pointer.FromAny(delta) - s.OffsetPeriods[k].AverageGlucoseMmolDelta = pointer.FromAny(-delta) - } - - if s.Periods[k].GlucoseManagementIndicator != nil && s.OffsetPeriods[k].GlucoseManagementIndicator != nil { - delta := *s.Periods[k].GlucoseManagementIndicator - *s.OffsetPeriods[k].GlucoseManagementIndicator - - s.Periods[k].GlucoseManagementIndicatorDelta = pointer.FromAny(delta) - s.OffsetPeriods[k].GlucoseManagementIndicatorDelta = pointer.FromAny(-delta) - } - - if s.Periods[k].TotalRecords != nil && s.OffsetPeriods[k].TotalRecords != nil { - delta := *s.Periods[k].TotalRecords - *s.OffsetPeriods[k].TotalRecords - - s.Periods[k].TotalRecordsDelta = pointer.FromAny(delta) - s.OffsetPeriods[k].TotalRecordsDelta = pointer.FromAny(-delta) - } - - if s.Periods[k].AverageDailyRecords != nil && s.OffsetPeriods[k].AverageDailyRecords != nil { - delta := *s.Periods[k].AverageDailyRecords - *s.OffsetPeriods[k].AverageDailyRecords - - s.Periods[k].AverageDailyRecordsDelta = pointer.FromAny(delta) - s.OffsetPeriods[k].AverageDailyRecordsDelta = pointer.FromAny(-delta) - } - - if s.Periods[k].TimeInTargetPercent != nil && s.OffsetPeriods[k].TimeInTargetPercent != nil { - delta := *s.Periods[k].TimeInTargetPercent - *s.OffsetPeriods[k].TimeInTargetPercent - - s.Periods[k].TimeInTargetPercentDelta = pointer.FromAny(delta) - s.OffsetPeriods[k].TimeInTargetPercentDelta = pointer.FromAny(-delta) - } - - if s.Periods[k].TimeInTargetRecords != nil && s.OffsetPeriods[k].TimeInTargetRecords != nil { - delta := *s.Periods[k].TimeInTargetRecords - *s.OffsetPeriods[k].TimeInTargetRecords - - s.Periods[k].TimeInTargetRecordsDelta = pointer.FromAny(delta) - s.OffsetPeriods[k].TimeInTargetRecordsDelta = pointer.FromAny(-delta) - } - - if s.Periods[k].TimeInTargetMinutes != nil && s.OffsetPeriods[k].TimeInTargetMinutes != nil { - delta := *s.Periods[k].TimeInTargetMinutes - *s.OffsetPeriods[k].TimeInTargetMinutes - - s.Periods[k].TimeInTargetMinutesDelta = pointer.FromAny(delta) - s.OffsetPeriods[k].TimeInTargetMinutesDelta = pointer.FromAny(-delta) - } - - if s.Periods[k].TimeInLowPercent != nil && s.OffsetPeriods[k].TimeInLowPercent != nil { - delta := *s.Periods[k].TimeInLowPercent - *s.OffsetPeriods[k].TimeInLowPercent - - s.Periods[k].TimeInLowPercentDelta = pointer.FromAny(delta) - s.OffsetPeriods[k].TimeInLowPercentDelta = pointer.FromAny(-delta) - } - - if s.Periods[k].TimeInLowRecords != nil && s.OffsetPeriods[k].TimeInLowRecords != nil { - delta := *s.Periods[k].TimeInLowRecords - *s.OffsetPeriods[k].TimeInLowRecords - - s.Periods[k].TimeInLowRecordsDelta = pointer.FromAny(delta) - s.OffsetPeriods[k].TimeInLowRecordsDelta = pointer.FromAny(-delta) - } - - if s.Periods[k].TimeInLowMinutes != nil && s.OffsetPeriods[k].TimeInLowMinutes != nil { - delta := *s.Periods[k].TimeInLowMinutes - *s.OffsetPeriods[k].TimeInLowMinutes - - s.Periods[k].TimeInLowMinutesDelta = pointer.FromAny(delta) - s.OffsetPeriods[k].TimeInLowMinutesDelta = pointer.FromAny(-delta) - } - - if s.Periods[k].TimeInVeryLowPercent != nil && s.OffsetPeriods[k].TimeInVeryLowPercent != nil { - delta := *s.Periods[k].TimeInVeryLowPercent - *s.OffsetPeriods[k].TimeInVeryLowPercent - - s.Periods[k].TimeInVeryLowPercentDelta = pointer.FromAny(delta) - s.OffsetPeriods[k].TimeInVeryLowPercentDelta = pointer.FromAny(-delta) - } - - if s.Periods[k].TimeInVeryLowRecords != nil && s.OffsetPeriods[k].TimeInVeryLowRecords != nil { - delta := *s.Periods[k].TimeInVeryLowRecords - *s.OffsetPeriods[k].TimeInVeryLowRecords - - s.Periods[k].TimeInVeryLowRecordsDelta = pointer.FromAny(delta) - s.OffsetPeriods[k].TimeInVeryLowRecordsDelta = pointer.FromAny(-delta) - } - - if s.Periods[k].TimeInVeryLowMinutes != nil && s.OffsetPeriods[k].TimeInVeryLowMinutes != nil { - delta := *s.Periods[k].TimeInVeryLowMinutes - *s.OffsetPeriods[k].TimeInVeryLowMinutes - - s.Periods[k].TimeInVeryLowMinutesDelta = pointer.FromAny(delta) - s.OffsetPeriods[k].TimeInVeryLowMinutesDelta = pointer.FromAny(-delta) - } - - if s.Periods[k].TimeInAnyLowPercent != nil && s.OffsetPeriods[k].TimeInAnyLowPercent != nil { - delta := *s.Periods[k].TimeInAnyLowPercent - *s.OffsetPeriods[k].TimeInAnyLowPercent - - s.Periods[k].TimeInAnyLowPercentDelta = pointer.FromAny(delta) - s.OffsetPeriods[k].TimeInAnyLowPercentDelta = pointer.FromAny(-delta) - } - - if s.Periods[k].TimeInAnyLowRecords != nil && s.OffsetPeriods[k].TimeInAnyLowRecords != nil { - delta := *s.Periods[k].TimeInAnyLowRecords - *s.OffsetPeriods[k].TimeInAnyLowRecords - - s.Periods[k].TimeInAnyLowRecordsDelta = pointer.FromAny(delta) - s.OffsetPeriods[k].TimeInAnyLowRecordsDelta = pointer.FromAny(-delta) - } - - if s.Periods[k].TimeInAnyLowMinutes != nil && s.OffsetPeriods[k].TimeInAnyLowMinutes != nil { - delta := *s.Periods[k].TimeInAnyLowMinutes - *s.OffsetPeriods[k].TimeInAnyLowMinutes - - s.Periods[k].TimeInAnyLowMinutesDelta = pointer.FromAny(delta) - s.OffsetPeriods[k].TimeInAnyLowMinutesDelta = pointer.FromAny(-delta) - } - - if s.Periods[k].TimeInHighPercent != nil && s.OffsetPeriods[k].TimeInHighPercent != nil { - delta := *s.Periods[k].TimeInHighPercent - *s.OffsetPeriods[k].TimeInHighPercent - - s.Periods[k].TimeInHighPercentDelta = pointer.FromAny(delta) - s.OffsetPeriods[k].TimeInHighPercentDelta = pointer.FromAny(-delta) - } - - if s.Periods[k].TimeInHighRecords != nil && s.OffsetPeriods[k].TimeInHighRecords != nil { - delta := *s.Periods[k].TimeInHighRecords - *s.OffsetPeriods[k].TimeInHighRecords - - s.Periods[k].TimeInHighRecordsDelta = pointer.FromAny(delta) - s.OffsetPeriods[k].TimeInHighRecordsDelta = pointer.FromAny(-delta) - } - - if s.Periods[k].TimeInHighMinutes != nil && s.OffsetPeriods[k].TimeInHighMinutes != nil { - delta := *s.Periods[k].TimeInHighMinutes - *s.OffsetPeriods[k].TimeInHighMinutes - - s.Periods[k].TimeInHighMinutesDelta = pointer.FromAny(delta) - s.OffsetPeriods[k].TimeInHighMinutesDelta = pointer.FromAny(-delta) - } - - if s.Periods[k].TimeInVeryHighPercent != nil && s.OffsetPeriods[k].TimeInVeryHighPercent != nil { - delta := *s.Periods[k].TimeInVeryHighPercent - *s.OffsetPeriods[k].TimeInVeryHighPercent - - s.Periods[k].TimeInVeryHighPercentDelta = pointer.FromAny(delta) - s.OffsetPeriods[k].TimeInVeryHighPercentDelta = pointer.FromAny(-delta) - } - - if s.Periods[k].TimeInVeryHighRecords != nil && s.OffsetPeriods[k].TimeInVeryHighRecords != nil { - delta := *s.Periods[k].TimeInVeryHighRecords - *s.OffsetPeriods[k].TimeInVeryHighRecords - - s.Periods[k].TimeInVeryHighRecordsDelta = pointer.FromAny(delta) - s.OffsetPeriods[k].TimeInVeryHighRecordsDelta = pointer.FromAny(-delta) - } - - if s.Periods[k].TimeInVeryHighMinutes != nil && s.OffsetPeriods[k].TimeInVeryHighMinutes != nil { - delta := *s.Periods[k].TimeInVeryHighMinutes - *s.OffsetPeriods[k].TimeInVeryHighMinutes - - s.Periods[k].TimeInVeryHighMinutesDelta = pointer.FromAny(delta) - s.OffsetPeriods[k].TimeInVeryHighMinutesDelta = pointer.FromAny(-delta) + periodMap := map[string]interface{}{} + err := mapstructure.Decode(s.Periods[k], &periodMap) + if err != nil { + panic(err) + } + + offsetPeriodMap := map[string]interface{}{} + err = mapstructure.Decode(s.OffsetPeriods[k], &offsetPeriodMap) + if err != nil { + panic(err) + } + + deltaMap := map[string]interface{}{} + offsetDeltaMap := map[string]interface{}{} + + for key := range periodMap { + for t := range periodMap[key].(map[string]interface{}) { + switch periodMap[key].(map[string]interface{})[t].(type) { + case int: + delta := periodMap[key].(map[string]interface{})[t].(int) - offsetPeriodMap[key].(map[string]interface{})[t].(int) + deltaMap[key].(map[string]interface{})[t] = delta + offsetDeltaMap[key].(map[string]interface{})[t] = -delta + + case float64: + delta := periodMap[key].(map[string]interface{})[t].(float64) - offsetPeriodMap[key].(map[string]interface{})[t].(float64) + deltaMap[key].(map[string]interface{})[t] = delta + offsetDeltaMap[key].(map[string]interface{})[t] = -delta + } + } } - if s.Periods[k].TimeInAnyHighPercent != nil && s.OffsetPeriods[k].TimeInAnyHighPercent != nil { - delta := *s.Periods[k].TimeInAnyHighPercent - *s.OffsetPeriods[k].TimeInAnyHighPercent - - s.Periods[k].TimeInAnyHighPercentDelta = pointer.FromAny(delta) - s.OffsetPeriods[k].TimeInAnyHighPercentDelta = pointer.FromAny(-delta) + err = mapstructure.Decode(periodMap, s.Periods[k].Delta) + if err != nil { + panic(err) } - if s.Periods[k].TimeInAnyHighRecords != nil && s.OffsetPeriods[k].TimeInAnyHighRecords != nil { - delta := *s.Periods[k].TimeInAnyHighRecords - *s.OffsetPeriods[k].TimeInAnyHighRecords - - s.Periods[k].TimeInAnyHighRecordsDelta = pointer.FromAny(delta) - s.OffsetPeriods[k].TimeInAnyHighRecordsDelta = pointer.FromAny(-delta) + err = mapstructure.Decode(offsetPeriodMap, s.OffsetPeriods[k]) + if err != nil { + panic(err) } - if s.Periods[k].TimeInAnyHighMinutes != nil && s.OffsetPeriods[k].TimeInAnyHighMinutes != nil { - delta := *s.Periods[k].TimeInAnyHighMinutes - *s.OffsetPeriods[k].TimeInAnyHighMinutes - - s.Periods[k].TimeInAnyHighMinutesDelta = pointer.FromAny(delta) - s.OffsetPeriods[k].TimeInAnyHighMinutesDelta = pointer.FromAny(-delta) - } + // TODO mapstructure ignored keys } } -func (s *CGMStats) CalculatePeriod(i int, offset bool, totalStats *CGMBucketData) { - newPeriod := &CGMPeriod{ - HasTimeCGMUseMinutes: true, - TimeCGMUseMinutes: pointer.FromAny(totalStats.TotalMinutes), - - HasTimeCGMUseRecords: true, - TimeCGMUseRecords: pointer.FromAny(totalStats.TotalRecords), - - HasTotalRecords: true, - TotalRecords: pointer.FromAny(totalStats.TotalRecords), - - HasAverageDailyRecords: true, - AverageDailyRecords: pointer.FromAny(float64(totalStats.TotalRecords) / float64(i)), - - HasTimeInTargetMinutes: true, - TimeInTargetMinutes: pointer.FromAny(totalStats.TargetMinutes), - - HasTimeInTargetRecords: true, - TimeInTargetRecords: pointer.FromAny(totalStats.TargetRecords), - - HasTimeInLowMinutes: true, - TimeInLowMinutes: pointer.FromAny(totalStats.LowMinutes), - - HasTimeInLowRecords: true, - TimeInLowRecords: pointer.FromAny(totalStats.LowRecords), - - HasTimeInVeryLowMinutes: true, - TimeInVeryLowMinutes: pointer.FromAny(totalStats.VeryLowMinutes), - - HasTimeInVeryLowRecords: true, - TimeInVeryLowRecords: pointer.FromAny(totalStats.VeryLowRecords), - - HasTimeInAnyLowMinutes: true, - TimeInAnyLowMinutes: pointer.FromAny(totalStats.LowMinutes + totalStats.VeryLowMinutes), - - HasTimeInAnyLowRecords: true, - TimeInAnyLowRecords: pointer.FromAny(totalStats.LowRecords + totalStats.VeryLowRecords), +func (s *CGMStats) CalculatePeriod(i int, offset bool, totalStats *GlucoseBucketData) { + periodMap := map[string]map[string]interface{}{} + totalStatsMap := map[string]interface{}{} - HasTimeInHighMinutes: true, - TimeInHighMinutes: pointer.FromAny(totalStats.HighMinutes), - - HasTimeInHighRecords: true, - TimeInHighRecords: pointer.FromAny(totalStats.HighRecords), - - HasTimeInVeryHighMinutes: true, - TimeInVeryHighMinutes: pointer.FromAny(totalStats.VeryHighMinutes), - - HasTimeInVeryHighRecords: true, - TimeInVeryHighRecords: pointer.FromAny(totalStats.VeryHighRecords), - - HasTimeInAnyHighMinutes: true, - TimeInAnyHighMinutes: pointer.FromAny(totalStats.HighMinutes + totalStats.VeryHighMinutes), - - HasTimeInAnyHighRecords: true, - TimeInAnyHighRecords: pointer.FromAny(totalStats.HighRecords + totalStats.VeryHighRecords), + err := mapstructure.Decode(totalStats, &totalStatsMap) + if err != nil { + panic(err) } - if totalStats.TotalRecords != 0 { - realMinutes := CalculateRealMinutes(i, s.Buckets[len(s.Buckets)-1].LastRecordTime, s.Buckets[len(s.Buckets)-1].Data.LastRecordDuration) - newPeriod.HasTimeCGMUsePercent = true - newPeriod.TimeCGMUsePercent = pointer.FromAny(float64(totalStats.TotalMinutes) / realMinutes) - - // if we are storing under 1d, apply 70% rule to TimeIn* - // if we are storing over 1d, check for 24h cgm use - if (i <= 1 && *newPeriod.TimeCGMUsePercent > 0.7) || (i > 1 && totalStats.TotalMinutes > 1440) { - newPeriod.HasTimeInTargetPercent = true - newPeriod.TimeInTargetPercent = pointer.FromAny(float64(totalStats.TargetMinutes) / float64(totalStats.TotalMinutes)) - - newPeriod.HasTimeInLowPercent = true - newPeriod.TimeInLowPercent = pointer.FromAny(float64(totalStats.LowMinutes) / float64(totalStats.TotalMinutes)) - - newPeriod.HasTimeInVeryLowPercent = true - newPeriod.TimeInVeryLowPercent = pointer.FromAny(float64(totalStats.VeryLowMinutes) / float64(totalStats.TotalMinutes)) - - newPeriod.HasTimeInAnyLowPercent = true - newPeriod.TimeInAnyLowPercent = pointer.FromAny(float64(totalStats.VeryLowRecords+totalStats.LowRecords) / float64(totalStats.TotalRecords)) - - newPeriod.HasTimeInHighPercent = true - newPeriod.TimeInHighPercent = pointer.FromAny(float64(totalStats.HighMinutes) / float64(totalStats.TotalMinutes)) - - newPeriod.HasTimeInVeryHighPercent = true - newPeriod.TimeInVeryHighPercent = pointer.FromAny(float64(totalStats.VeryHighMinutes) / float64(totalStats.TotalMinutes)) - - newPeriod.HasTimeInAnyHighPercent = true - newPeriod.TimeInAnyHighPercent = pointer.FromAny(float64(totalStats.VeryHighRecords+totalStats.HighRecords) / float64(totalStats.TotalRecords)) - } - - newPeriod.HasAverageGlucoseMmol = true - newPeriod.AverageGlucoseMmol = pointer.FromAny(totalStats.TotalGlucose / float64(totalStats.TotalMinutes)) - - // we only add GMI if cgm use >70%, otherwise clear it - if *newPeriod.TimeCGMUsePercent > 0.7 { - newPeriod.HasGlucoseManagementIndicator = true - newPeriod.GlucoseManagementIndicator = pointer.FromAny(CalculateGMI(*newPeriod.AverageGlucoseMmol)) + for key := range totalStatsMap { + for t := range totalStatsMap[key].(map[string]interface{}) { + periodMap[key][t] = totalStatsMap[key].(map[string]interface{})[t] } } + var activePeriod *GlucosePeriod if offset { - s.OffsetPeriods[strconv.Itoa(i)+"d"] = newPeriod + activePeriod = s.OffsetPeriods[strconv.Itoa(i)+"d"] } else { - s.Periods[strconv.Itoa(i)+"d"] = newPeriod + activePeriod = s.Periods[strconv.Itoa(i)+"d"] } + err = mapstructure.Decode(periodMap, activePeriod) + if err != nil { + panic(err) + } } diff --git a/data/summary/types/summary.go b/data/summary/types/summary.go index eb41cf5ce..34a8d34d2 100644 --- a/data/summary/types/summary.go +++ b/data/summary/types/summary.go @@ -58,51 +58,39 @@ type OutdatedSummariesResponse struct { } type BucketData interface { - CGMBucketData | BGMBucketData | ContinuousBucketData + GlucoseBucketData | ContinuousBucketData } type Config struct { SchemaVersion int `json:"schemaVersion" bson:"schemaVersion"` // these are just constants right now. - HighGlucoseThreshold float64 `json:"highGlucoseThreshold" bson:"highGlucoseThreshold"` - VeryHighGlucoseThreshold float64 `json:"veryHighGlucoseThreshold" bson:"veryHighGlucoseThreshold"` - LowGlucoseThreshold float64 `json:"lowGlucoseThreshold" bson:"lowGlucoseThreshold"` - VeryLowGlucoseThreshold float64 `json:"VeryLowGlucoseThreshold" bson:"VeryLowGlucoseThreshold"` + HighGlucoseThreshold float64 `json:"highGlucoseThreshold" bson:"highGlucoseThreshold,omitempty"` + VeryHighGlucoseThreshold float64 `json:"veryHighGlucoseThreshold" bson:"veryHighGlucoseThreshold,omitempty"` + LowGlucoseThreshold float64 `json:"lowGlucoseThreshold" bson:"lowGlucoseThreshold,omitempty"` + VeryLowGlucoseThreshold float64 `json:"VeryLowGlucoseThreshold" bson:"VeryLowGlucoseThreshold,omitempty"` } type Dates struct { - LastUpdatedDate time.Time `json:"lastUpdatedDate" bson:"lastUpdatedDate"` - LastUpdatedReason []string `json:"lastUpdatedReason" bson:"lastUpdatedReason"` + LastUpdatedDate time.Time `json:"lastUpdatedDate" bson:"lastUpdatedDate,omitempty"` + LastUpdatedReason []string `json:"lastUpdatedReason" bson:"lastUpdatedReason,omitempty"` + LastUploadDate *time.Time `json:"lastUploadDate" bson:"lastUploadDate,omitempty"` - HasLastUploadDate bool `json:"hasLastUploadDate" bson:"hasLastUploadDate"` - LastUploadDate *time.Time `json:"lastUploadDate" bson:"lastUploadDate"` + FirstData *time.Time `json:"firstData" bson:"firstData,omitempty"` + LastData *time.Time `json:"lastData" bson:"lastData,omitempty"` - HasFirstData bool `json:"hasFirstData" bson:"hasFirstData"` - FirstData *time.Time `json:"firstData" bson:"firstData"` - - HasLastData bool `json:"hasLastData" bson:"hasLastData"` - LastData *time.Time `json:"lastData" bson:"lastData"` - - HasOutdatedSince bool `json:"hasOutdatedSince" bson:"hasOutdatedSince"` - OutdatedSince *time.Time `json:"outdatedSince" bson:"outdatedSince"` - OutdatedReason []string `json:"outdatedReason" bson:"outdatedReason"` + OutdatedSince *time.Time `json:"outdatedSince" bson:"outdatedSince,omitempty"` + OutdatedReason []string `json:"outdatedReason" bson:"outdatedReason,omitempty"` } func (d *Dates) Update(status *data.UserDataStatus, firstBucketDate time.Time) { d.LastUpdatedDate = status.NextLastUpdated d.LastUpdatedReason = d.OutdatedReason - - d.HasLastUploadDate = true d.LastUploadDate = &status.LastUpload - d.HasFirstData = true d.FirstData = &firstBucketDate - - d.HasLastData = true d.LastData = &status.LastData - d.HasOutdatedSince = false d.OutdatedSince = nil d.OutdatedReason = nil } @@ -176,33 +164,25 @@ func (s *Summary[A, T]) SetOutdated(reason string) { if s.Dates.OutdatedSince == nil { s.Dates.OutdatedSince = pointer.FromAny(time.Now().Truncate(time.Millisecond).UTC()) - s.Dates.HasOutdatedSince = true } } func (s *Summary[A, T]) SetNotOutdated() { s.Dates.OutdatedReason = nil s.Dates.OutdatedSince = nil - s.Dates.HasOutdatedSince = false } func NewDates() Dates { return Dates{ LastUpdatedDate: time.Time{}, LastUpdatedReason: nil, - - HasLastUploadDate: false, LastUploadDate: nil, - HasFirstData: false, - FirstData: nil, - - HasLastData: false, - LastData: nil, + FirstData: nil, + LastData: nil, - HasOutdatedSince: false, - OutdatedSince: nil, - OutdatedReason: nil, + OutdatedSince: nil, + OutdatedReason: nil, } } @@ -229,7 +209,7 @@ func GetDeviceDataTypeStrings[A StatsPt[T], T Stats]() []string { } type Period interface { - BGMPeriod | CGMPeriod + GlucosePeriod } func AddBin[A BucketDataPt[T], T BucketData](buckets *[]*Bucket[A, T], newBucket *Bucket[A, T]) error { diff --git a/go.mod b/go.mod index 98081ed5e..f50ceddad 100644 --- a/go.mod +++ b/go.mod @@ -17,6 +17,7 @@ require ( github.com/gowebpki/jcs v1.0.1 github.com/kelseyhightower/envconfig v1.4.0 github.com/mitchellh/go-homedir v1.1.0 + github.com/mitchellh/mapstructure v1.1.2 github.com/mjibson/esc v0.2.0 github.com/onsi/ginkgo/v2 v2.15.0 github.com/onsi/gomega v1.31.1 diff --git a/go.sum b/go.sum index a9eaaa3ed..45238d713 100644 --- a/go.sum +++ b/go.sum @@ -229,6 +229,8 @@ github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= github.com/mitchellh/go-wordwrap v1.0.1 h1:TLuKupo69TCn6TQSyGxwI1EblZZEsQ0vMlAFQflz0v0= github.com/mitchellh/go-wordwrap v1.0.1/go.mod h1:R62XHJLzvMFRBbcrT7m7WgmE1eOyTSsCt+hzestvNj0= +github.com/mitchellh/mapstructure v1.1.2 h1:fmNYVwqnSfB9mZU6OS2O6GsXM+wcskZDuKQzvN1EDeE= +github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= github.com/mjibson/esc v0.2.0 h1:k96hdaR9Z+nMcnDwNrOvhdBqtjyMrbVyxLpsRCdP2mA= github.com/mjibson/esc v0.2.0/go.mod h1:9Hw9gxxfHulMF5OJKCyhYD7PzlSdhzXyaGEBRPH1OPs= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= diff --git a/vendor/github.com/mitchellh/mapstructure/.travis.yml b/vendor/github.com/mitchellh/mapstructure/.travis.yml new file mode 100644 index 000000000..1689c7d73 --- /dev/null +++ b/vendor/github.com/mitchellh/mapstructure/.travis.yml @@ -0,0 +1,8 @@ +language: go + +go: + - "1.11.x" + - tip + +script: + - go test diff --git a/vendor/github.com/mitchellh/mapstructure/CHANGELOG.md b/vendor/github.com/mitchellh/mapstructure/CHANGELOG.md new file mode 100644 index 000000000..3b3cb723f --- /dev/null +++ b/vendor/github.com/mitchellh/mapstructure/CHANGELOG.md @@ -0,0 +1,21 @@ +## 1.1.2 + +* Fix error when decode hook decodes interface implementation into interface + type. [GH-140] + +## 1.1.1 + +* Fix panic that can happen in `decodePtr` + +## 1.1.0 + +* Added `StringToIPHookFunc` to convert `string` to `net.IP` and `net.IPNet` [GH-133] +* Support struct to struct decoding [GH-137] +* If source map value is nil, then destination map value is nil (instead of empty) +* If source slice value is nil, then destination slice value is nil (instead of empty) +* If source pointer is nil, then destination pointer is set to nil (instead of + allocated zero value of type) + +## 1.0.0 + +* Initial tagged stable release. diff --git a/vendor/github.com/mitchellh/mapstructure/LICENSE b/vendor/github.com/mitchellh/mapstructure/LICENSE new file mode 100644 index 000000000..f9c841a51 --- /dev/null +++ b/vendor/github.com/mitchellh/mapstructure/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2013 Mitchell Hashimoto + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/vendor/github.com/mitchellh/mapstructure/README.md b/vendor/github.com/mitchellh/mapstructure/README.md new file mode 100644 index 000000000..0018dc7d9 --- /dev/null +++ b/vendor/github.com/mitchellh/mapstructure/README.md @@ -0,0 +1,46 @@ +# mapstructure [![Godoc](https://godoc.org/github.com/mitchellh/mapstructure?status.svg)](https://godoc.org/github.com/mitchellh/mapstructure) + +mapstructure is a Go library for decoding generic map values to structures +and vice versa, while providing helpful error handling. + +This library is most useful when decoding values from some data stream (JSON, +Gob, etc.) where you don't _quite_ know the structure of the underlying data +until you read a part of it. You can therefore read a `map[string]interface{}` +and use this library to decode it into the proper underlying native Go +structure. + +## Installation + +Standard `go get`: + +``` +$ go get github.com/mitchellh/mapstructure +``` + +## Usage & Example + +For usage and examples see the [Godoc](http://godoc.org/github.com/mitchellh/mapstructure). + +The `Decode` function has examples associated with it there. + +## But Why?! + +Go offers fantastic standard libraries for decoding formats such as JSON. +The standard method is to have a struct pre-created, and populate that struct +from the bytes of the encoded format. This is great, but the problem is if +you have configuration or an encoding that changes slightly depending on +specific fields. For example, consider this JSON: + +```json +{ + "type": "person", + "name": "Mitchell" +} +``` + +Perhaps we can't populate a specific structure without first reading +the "type" field from the JSON. We could always do two passes over the +decoding of the JSON (reading the "type" first, and the rest later). +However, it is much simpler to just decode this into a `map[string]interface{}` +structure, read the "type" key, then use something like this library +to decode it into the proper structure. diff --git a/vendor/github.com/mitchellh/mapstructure/decode_hooks.go b/vendor/github.com/mitchellh/mapstructure/decode_hooks.go new file mode 100644 index 000000000..1f0abc65a --- /dev/null +++ b/vendor/github.com/mitchellh/mapstructure/decode_hooks.go @@ -0,0 +1,217 @@ +package mapstructure + +import ( + "errors" + "fmt" + "net" + "reflect" + "strconv" + "strings" + "time" +) + +// typedDecodeHook takes a raw DecodeHookFunc (an interface{}) and turns +// it into the proper DecodeHookFunc type, such as DecodeHookFuncType. +func typedDecodeHook(h DecodeHookFunc) DecodeHookFunc { + // Create variables here so we can reference them with the reflect pkg + var f1 DecodeHookFuncType + var f2 DecodeHookFuncKind + + // Fill in the variables into this interface and the rest is done + // automatically using the reflect package. + potential := []interface{}{f1, f2} + + v := reflect.ValueOf(h) + vt := v.Type() + for _, raw := range potential { + pt := reflect.ValueOf(raw).Type() + if vt.ConvertibleTo(pt) { + return v.Convert(pt).Interface() + } + } + + return nil +} + +// DecodeHookExec executes the given decode hook. This should be used +// since it'll naturally degrade to the older backwards compatible DecodeHookFunc +// that took reflect.Kind instead of reflect.Type. +func DecodeHookExec( + raw DecodeHookFunc, + from reflect.Type, to reflect.Type, + data interface{}) (interface{}, error) { + switch f := typedDecodeHook(raw).(type) { + case DecodeHookFuncType: + return f(from, to, data) + case DecodeHookFuncKind: + return f(from.Kind(), to.Kind(), data) + default: + return nil, errors.New("invalid decode hook signature") + } +} + +// ComposeDecodeHookFunc creates a single DecodeHookFunc that +// automatically composes multiple DecodeHookFuncs. +// +// The composed funcs are called in order, with the result of the +// previous transformation. +func ComposeDecodeHookFunc(fs ...DecodeHookFunc) DecodeHookFunc { + return func( + f reflect.Type, + t reflect.Type, + data interface{}) (interface{}, error) { + var err error + for _, f1 := range fs { + data, err = DecodeHookExec(f1, f, t, data) + if err != nil { + return nil, err + } + + // Modify the from kind to be correct with the new data + f = nil + if val := reflect.ValueOf(data); val.IsValid() { + f = val.Type() + } + } + + return data, nil + } +} + +// StringToSliceHookFunc returns a DecodeHookFunc that converts +// string to []string by splitting on the given sep. +func StringToSliceHookFunc(sep string) DecodeHookFunc { + return func( + f reflect.Kind, + t reflect.Kind, + data interface{}) (interface{}, error) { + if f != reflect.String || t != reflect.Slice { + return data, nil + } + + raw := data.(string) + if raw == "" { + return []string{}, nil + } + + return strings.Split(raw, sep), nil + } +} + +// StringToTimeDurationHookFunc returns a DecodeHookFunc that converts +// strings to time.Duration. +func StringToTimeDurationHookFunc() DecodeHookFunc { + return func( + f reflect.Type, + t reflect.Type, + data interface{}) (interface{}, error) { + if f.Kind() != reflect.String { + return data, nil + } + if t != reflect.TypeOf(time.Duration(5)) { + return data, nil + } + + // Convert it by parsing + return time.ParseDuration(data.(string)) + } +} + +// StringToIPHookFunc returns a DecodeHookFunc that converts +// strings to net.IP +func StringToIPHookFunc() DecodeHookFunc { + return func( + f reflect.Type, + t reflect.Type, + data interface{}) (interface{}, error) { + if f.Kind() != reflect.String { + return data, nil + } + if t != reflect.TypeOf(net.IP{}) { + return data, nil + } + + // Convert it by parsing + ip := net.ParseIP(data.(string)) + if ip == nil { + return net.IP{}, fmt.Errorf("failed parsing ip %v", data) + } + + return ip, nil + } +} + +// StringToIPNetHookFunc returns a DecodeHookFunc that converts +// strings to net.IPNet +func StringToIPNetHookFunc() DecodeHookFunc { + return func( + f reflect.Type, + t reflect.Type, + data interface{}) (interface{}, error) { + if f.Kind() != reflect.String { + return data, nil + } + if t != reflect.TypeOf(net.IPNet{}) { + return data, nil + } + + // Convert it by parsing + _, net, err := net.ParseCIDR(data.(string)) + return net, err + } +} + +// StringToTimeHookFunc returns a DecodeHookFunc that converts +// strings to time.Time. +func StringToTimeHookFunc(layout string) DecodeHookFunc { + return func( + f reflect.Type, + t reflect.Type, + data interface{}) (interface{}, error) { + if f.Kind() != reflect.String { + return data, nil + } + if t != reflect.TypeOf(time.Time{}) { + return data, nil + } + + // Convert it by parsing + return time.Parse(layout, data.(string)) + } +} + +// WeaklyTypedHook is a DecodeHookFunc which adds support for weak typing to +// the decoder. +// +// Note that this is significantly different from the WeaklyTypedInput option +// of the DecoderConfig. +func WeaklyTypedHook( + f reflect.Kind, + t reflect.Kind, + data interface{}) (interface{}, error) { + dataVal := reflect.ValueOf(data) + switch t { + case reflect.String: + switch f { + case reflect.Bool: + if dataVal.Bool() { + return "1", nil + } + return "0", nil + case reflect.Float32: + return strconv.FormatFloat(dataVal.Float(), 'f', -1, 64), nil + case reflect.Int: + return strconv.FormatInt(dataVal.Int(), 10), nil + case reflect.Slice: + dataType := dataVal.Type() + elemKind := dataType.Elem().Kind() + if elemKind == reflect.Uint8 { + return string(dataVal.Interface().([]uint8)), nil + } + case reflect.Uint: + return strconv.FormatUint(dataVal.Uint(), 10), nil + } + } + + return data, nil +} diff --git a/vendor/github.com/mitchellh/mapstructure/error.go b/vendor/github.com/mitchellh/mapstructure/error.go new file mode 100644 index 000000000..47a99e5af --- /dev/null +++ b/vendor/github.com/mitchellh/mapstructure/error.go @@ -0,0 +1,50 @@ +package mapstructure + +import ( + "errors" + "fmt" + "sort" + "strings" +) + +// Error implements the error interface and can represents multiple +// errors that occur in the course of a single decode. +type Error struct { + Errors []string +} + +func (e *Error) Error() string { + points := make([]string, len(e.Errors)) + for i, err := range e.Errors { + points[i] = fmt.Sprintf("* %s", err) + } + + sort.Strings(points) + return fmt.Sprintf( + "%d error(s) decoding:\n\n%s", + len(e.Errors), strings.Join(points, "\n")) +} + +// WrappedErrors implements the errwrap.Wrapper interface to make this +// return value more useful with the errwrap and go-multierror libraries. +func (e *Error) WrappedErrors() []error { + if e == nil { + return nil + } + + result := make([]error, len(e.Errors)) + for i, e := range e.Errors { + result[i] = errors.New(e) + } + + return result +} + +func appendErrors(errors []string, err error) []string { + switch e := err.(type) { + case *Error: + return append(errors, e.Errors...) + default: + return append(errors, e.Error()) + } +} diff --git a/vendor/github.com/mitchellh/mapstructure/mapstructure.go b/vendor/github.com/mitchellh/mapstructure/mapstructure.go new file mode 100644 index 000000000..256ee63fb --- /dev/null +++ b/vendor/github.com/mitchellh/mapstructure/mapstructure.go @@ -0,0 +1,1149 @@ +// Package mapstructure exposes functionality to convert an arbitrary +// map[string]interface{} into a native Go structure. +// +// The Go structure can be arbitrarily complex, containing slices, +// other structs, etc. and the decoder will properly decode nested +// maps and so on into the proper structures in the native Go struct. +// See the examples to see what the decoder is capable of. +package mapstructure + +import ( + "encoding/json" + "errors" + "fmt" + "reflect" + "sort" + "strconv" + "strings" +) + +// DecodeHookFunc is the callback function that can be used for +// data transformations. See "DecodeHook" in the DecoderConfig +// struct. +// +// The type should be DecodeHookFuncType or DecodeHookFuncKind. +// Either is accepted. Types are a superset of Kinds (Types can return +// Kinds) and are generally a richer thing to use, but Kinds are simpler +// if you only need those. +// +// The reason DecodeHookFunc is multi-typed is for backwards compatibility: +// we started with Kinds and then realized Types were the better solution, +// but have a promise to not break backwards compat so we now support +// both. +type DecodeHookFunc interface{} + +// DecodeHookFuncType is a DecodeHookFunc which has complete information about +// the source and target types. +type DecodeHookFuncType func(reflect.Type, reflect.Type, interface{}) (interface{}, error) + +// DecodeHookFuncKind is a DecodeHookFunc which knows only the Kinds of the +// source and target types. +type DecodeHookFuncKind func(reflect.Kind, reflect.Kind, interface{}) (interface{}, error) + +// DecoderConfig is the configuration that is used to create a new decoder +// and allows customization of various aspects of decoding. +type DecoderConfig struct { + // DecodeHook, if set, will be called before any decoding and any + // type conversion (if WeaklyTypedInput is on). This lets you modify + // the values before they're set down onto the resulting struct. + // + // If an error is returned, the entire decode will fail with that + // error. + DecodeHook DecodeHookFunc + + // If ErrorUnused is true, then it is an error for there to exist + // keys in the original map that were unused in the decoding process + // (extra keys). + ErrorUnused bool + + // ZeroFields, if set to true, will zero fields before writing them. + // For example, a map will be emptied before decoded values are put in + // it. If this is false, a map will be merged. + ZeroFields bool + + // If WeaklyTypedInput is true, the decoder will make the following + // "weak" conversions: + // + // - bools to string (true = "1", false = "0") + // - numbers to string (base 10) + // - bools to int/uint (true = 1, false = 0) + // - strings to int/uint (base implied by prefix) + // - int to bool (true if value != 0) + // - string to bool (accepts: 1, t, T, TRUE, true, True, 0, f, F, + // FALSE, false, False. Anything else is an error) + // - empty array = empty map and vice versa + // - negative numbers to overflowed uint values (base 10) + // - slice of maps to a merged map + // - single values are converted to slices if required. Each + // element is weakly decoded. For example: "4" can become []int{4} + // if the target type is an int slice. + // + WeaklyTypedInput bool + + // Metadata is the struct that will contain extra metadata about + // the decoding. If this is nil, then no metadata will be tracked. + Metadata *Metadata + + // Result is a pointer to the struct that will contain the decoded + // value. + Result interface{} + + // The tag name that mapstructure reads for field names. This + // defaults to "mapstructure" + TagName string +} + +// A Decoder takes a raw interface value and turns it into structured +// data, keeping track of rich error information along the way in case +// anything goes wrong. Unlike the basic top-level Decode method, you can +// more finely control how the Decoder behaves using the DecoderConfig +// structure. The top-level Decode method is just a convenience that sets +// up the most basic Decoder. +type Decoder struct { + config *DecoderConfig +} + +// Metadata contains information about decoding a structure that +// is tedious or difficult to get otherwise. +type Metadata struct { + // Keys are the keys of the structure which were successfully decoded + Keys []string + + // Unused is a slice of keys that were found in the raw value but + // weren't decoded since there was no matching field in the result interface + Unused []string +} + +// Decode takes an input structure and uses reflection to translate it to +// the output structure. output must be a pointer to a map or struct. +func Decode(input interface{}, output interface{}) error { + config := &DecoderConfig{ + Metadata: nil, + Result: output, + } + + decoder, err := NewDecoder(config) + if err != nil { + return err + } + + return decoder.Decode(input) +} + +// WeakDecode is the same as Decode but is shorthand to enable +// WeaklyTypedInput. See DecoderConfig for more info. +func WeakDecode(input, output interface{}) error { + config := &DecoderConfig{ + Metadata: nil, + Result: output, + WeaklyTypedInput: true, + } + + decoder, err := NewDecoder(config) + if err != nil { + return err + } + + return decoder.Decode(input) +} + +// DecodeMetadata is the same as Decode, but is shorthand to +// enable metadata collection. See DecoderConfig for more info. +func DecodeMetadata(input interface{}, output interface{}, metadata *Metadata) error { + config := &DecoderConfig{ + Metadata: metadata, + Result: output, + } + + decoder, err := NewDecoder(config) + if err != nil { + return err + } + + return decoder.Decode(input) +} + +// WeakDecodeMetadata is the same as Decode, but is shorthand to +// enable both WeaklyTypedInput and metadata collection. See +// DecoderConfig for more info. +func WeakDecodeMetadata(input interface{}, output interface{}, metadata *Metadata) error { + config := &DecoderConfig{ + Metadata: metadata, + Result: output, + WeaklyTypedInput: true, + } + + decoder, err := NewDecoder(config) + if err != nil { + return err + } + + return decoder.Decode(input) +} + +// NewDecoder returns a new decoder for the given configuration. Once +// a decoder has been returned, the same configuration must not be used +// again. +func NewDecoder(config *DecoderConfig) (*Decoder, error) { + val := reflect.ValueOf(config.Result) + if val.Kind() != reflect.Ptr { + return nil, errors.New("result must be a pointer") + } + + val = val.Elem() + if !val.CanAddr() { + return nil, errors.New("result must be addressable (a pointer)") + } + + if config.Metadata != nil { + if config.Metadata.Keys == nil { + config.Metadata.Keys = make([]string, 0) + } + + if config.Metadata.Unused == nil { + config.Metadata.Unused = make([]string, 0) + } + } + + if config.TagName == "" { + config.TagName = "mapstructure" + } + + result := &Decoder{ + config: config, + } + + return result, nil +} + +// Decode decodes the given raw interface to the target pointer specified +// by the configuration. +func (d *Decoder) Decode(input interface{}) error { + return d.decode("", input, reflect.ValueOf(d.config.Result).Elem()) +} + +// Decodes an unknown data type into a specific reflection value. +func (d *Decoder) decode(name string, input interface{}, outVal reflect.Value) error { + var inputVal reflect.Value + if input != nil { + inputVal = reflect.ValueOf(input) + + // We need to check here if input is a typed nil. Typed nils won't + // match the "input == nil" below so we check that here. + if inputVal.Kind() == reflect.Ptr && inputVal.IsNil() { + input = nil + } + } + + if input == nil { + // If the data is nil, then we don't set anything, unless ZeroFields is set + // to true. + if d.config.ZeroFields { + outVal.Set(reflect.Zero(outVal.Type())) + + if d.config.Metadata != nil && name != "" { + d.config.Metadata.Keys = append(d.config.Metadata.Keys, name) + } + } + return nil + } + + if !inputVal.IsValid() { + // If the input value is invalid, then we just set the value + // to be the zero value. + outVal.Set(reflect.Zero(outVal.Type())) + if d.config.Metadata != nil && name != "" { + d.config.Metadata.Keys = append(d.config.Metadata.Keys, name) + } + return nil + } + + if d.config.DecodeHook != nil { + // We have a DecodeHook, so let's pre-process the input. + var err error + input, err = DecodeHookExec( + d.config.DecodeHook, + inputVal.Type(), outVal.Type(), input) + if err != nil { + return fmt.Errorf("error decoding '%s': %s", name, err) + } + } + + var err error + outputKind := getKind(outVal) + switch outputKind { + case reflect.Bool: + err = d.decodeBool(name, input, outVal) + case reflect.Interface: + err = d.decodeBasic(name, input, outVal) + case reflect.String: + err = d.decodeString(name, input, outVal) + case reflect.Int: + err = d.decodeInt(name, input, outVal) + case reflect.Uint: + err = d.decodeUint(name, input, outVal) + case reflect.Float32: + err = d.decodeFloat(name, input, outVal) + case reflect.Struct: + err = d.decodeStruct(name, input, outVal) + case reflect.Map: + err = d.decodeMap(name, input, outVal) + case reflect.Ptr: + err = d.decodePtr(name, input, outVal) + case reflect.Slice: + err = d.decodeSlice(name, input, outVal) + case reflect.Array: + err = d.decodeArray(name, input, outVal) + case reflect.Func: + err = d.decodeFunc(name, input, outVal) + default: + // If we reached this point then we weren't able to decode it + return fmt.Errorf("%s: unsupported type: %s", name, outputKind) + } + + // If we reached here, then we successfully decoded SOMETHING, so + // mark the key as used if we're tracking metainput. + if d.config.Metadata != nil && name != "" { + d.config.Metadata.Keys = append(d.config.Metadata.Keys, name) + } + + return err +} + +// This decodes a basic type (bool, int, string, etc.) and sets the +// value to "data" of that type. +func (d *Decoder) decodeBasic(name string, data interface{}, val reflect.Value) error { + if val.IsValid() && val.Elem().IsValid() { + return d.decode(name, data, val.Elem()) + } + + dataVal := reflect.ValueOf(data) + + // If the input data is a pointer, and the assigned type is the dereference + // of that exact pointer, then indirect it so that we can assign it. + // Example: *string to string + if dataVal.Kind() == reflect.Ptr && dataVal.Type().Elem() == val.Type() { + dataVal = reflect.Indirect(dataVal) + } + + if !dataVal.IsValid() { + dataVal = reflect.Zero(val.Type()) + } + + dataValType := dataVal.Type() + if !dataValType.AssignableTo(val.Type()) { + return fmt.Errorf( + "'%s' expected type '%s', got '%s'", + name, val.Type(), dataValType) + } + + val.Set(dataVal) + return nil +} + +func (d *Decoder) decodeString(name string, data interface{}, val reflect.Value) error { + dataVal := reflect.Indirect(reflect.ValueOf(data)) + dataKind := getKind(dataVal) + + converted := true + switch { + case dataKind == reflect.String: + val.SetString(dataVal.String()) + case dataKind == reflect.Bool && d.config.WeaklyTypedInput: + if dataVal.Bool() { + val.SetString("1") + } else { + val.SetString("0") + } + case dataKind == reflect.Int && d.config.WeaklyTypedInput: + val.SetString(strconv.FormatInt(dataVal.Int(), 10)) + case dataKind == reflect.Uint && d.config.WeaklyTypedInput: + val.SetString(strconv.FormatUint(dataVal.Uint(), 10)) + case dataKind == reflect.Float32 && d.config.WeaklyTypedInput: + val.SetString(strconv.FormatFloat(dataVal.Float(), 'f', -1, 64)) + case dataKind == reflect.Slice && d.config.WeaklyTypedInput, + dataKind == reflect.Array && d.config.WeaklyTypedInput: + dataType := dataVal.Type() + elemKind := dataType.Elem().Kind() + switch elemKind { + case reflect.Uint8: + var uints []uint8 + if dataKind == reflect.Array { + uints = make([]uint8, dataVal.Len(), dataVal.Len()) + for i := range uints { + uints[i] = dataVal.Index(i).Interface().(uint8) + } + } else { + uints = dataVal.Interface().([]uint8) + } + val.SetString(string(uints)) + default: + converted = false + } + default: + converted = false + } + + if !converted { + return fmt.Errorf( + "'%s' expected type '%s', got unconvertible type '%s'", + name, val.Type(), dataVal.Type()) + } + + return nil +} + +func (d *Decoder) decodeInt(name string, data interface{}, val reflect.Value) error { + dataVal := reflect.Indirect(reflect.ValueOf(data)) + dataKind := getKind(dataVal) + dataType := dataVal.Type() + + switch { + case dataKind == reflect.Int: + val.SetInt(dataVal.Int()) + case dataKind == reflect.Uint: + val.SetInt(int64(dataVal.Uint())) + case dataKind == reflect.Float32: + val.SetInt(int64(dataVal.Float())) + case dataKind == reflect.Bool && d.config.WeaklyTypedInput: + if dataVal.Bool() { + val.SetInt(1) + } else { + val.SetInt(0) + } + case dataKind == reflect.String && d.config.WeaklyTypedInput: + i, err := strconv.ParseInt(dataVal.String(), 0, val.Type().Bits()) + if err == nil { + val.SetInt(i) + } else { + return fmt.Errorf("cannot parse '%s' as int: %s", name, err) + } + case dataType.PkgPath() == "encoding/json" && dataType.Name() == "Number": + jn := data.(json.Number) + i, err := jn.Int64() + if err != nil { + return fmt.Errorf( + "error decoding json.Number into %s: %s", name, err) + } + val.SetInt(i) + default: + return fmt.Errorf( + "'%s' expected type '%s', got unconvertible type '%s'", + name, val.Type(), dataVal.Type()) + } + + return nil +} + +func (d *Decoder) decodeUint(name string, data interface{}, val reflect.Value) error { + dataVal := reflect.Indirect(reflect.ValueOf(data)) + dataKind := getKind(dataVal) + + switch { + case dataKind == reflect.Int: + i := dataVal.Int() + if i < 0 && !d.config.WeaklyTypedInput { + return fmt.Errorf("cannot parse '%s', %d overflows uint", + name, i) + } + val.SetUint(uint64(i)) + case dataKind == reflect.Uint: + val.SetUint(dataVal.Uint()) + case dataKind == reflect.Float32: + f := dataVal.Float() + if f < 0 && !d.config.WeaklyTypedInput { + return fmt.Errorf("cannot parse '%s', %f overflows uint", + name, f) + } + val.SetUint(uint64(f)) + case dataKind == reflect.Bool && d.config.WeaklyTypedInput: + if dataVal.Bool() { + val.SetUint(1) + } else { + val.SetUint(0) + } + case dataKind == reflect.String && d.config.WeaklyTypedInput: + i, err := strconv.ParseUint(dataVal.String(), 0, val.Type().Bits()) + if err == nil { + val.SetUint(i) + } else { + return fmt.Errorf("cannot parse '%s' as uint: %s", name, err) + } + default: + return fmt.Errorf( + "'%s' expected type '%s', got unconvertible type '%s'", + name, val.Type(), dataVal.Type()) + } + + return nil +} + +func (d *Decoder) decodeBool(name string, data interface{}, val reflect.Value) error { + dataVal := reflect.Indirect(reflect.ValueOf(data)) + dataKind := getKind(dataVal) + + switch { + case dataKind == reflect.Bool: + val.SetBool(dataVal.Bool()) + case dataKind == reflect.Int && d.config.WeaklyTypedInput: + val.SetBool(dataVal.Int() != 0) + case dataKind == reflect.Uint && d.config.WeaklyTypedInput: + val.SetBool(dataVal.Uint() != 0) + case dataKind == reflect.Float32 && d.config.WeaklyTypedInput: + val.SetBool(dataVal.Float() != 0) + case dataKind == reflect.String && d.config.WeaklyTypedInput: + b, err := strconv.ParseBool(dataVal.String()) + if err == nil { + val.SetBool(b) + } else if dataVal.String() == "" { + val.SetBool(false) + } else { + return fmt.Errorf("cannot parse '%s' as bool: %s", name, err) + } + default: + return fmt.Errorf( + "'%s' expected type '%s', got unconvertible type '%s'", + name, val.Type(), dataVal.Type()) + } + + return nil +} + +func (d *Decoder) decodeFloat(name string, data interface{}, val reflect.Value) error { + dataVal := reflect.Indirect(reflect.ValueOf(data)) + dataKind := getKind(dataVal) + dataType := dataVal.Type() + + switch { + case dataKind == reflect.Int: + val.SetFloat(float64(dataVal.Int())) + case dataKind == reflect.Uint: + val.SetFloat(float64(dataVal.Uint())) + case dataKind == reflect.Float32: + val.SetFloat(dataVal.Float()) + case dataKind == reflect.Bool && d.config.WeaklyTypedInput: + if dataVal.Bool() { + val.SetFloat(1) + } else { + val.SetFloat(0) + } + case dataKind == reflect.String && d.config.WeaklyTypedInput: + f, err := strconv.ParseFloat(dataVal.String(), val.Type().Bits()) + if err == nil { + val.SetFloat(f) + } else { + return fmt.Errorf("cannot parse '%s' as float: %s", name, err) + } + case dataType.PkgPath() == "encoding/json" && dataType.Name() == "Number": + jn := data.(json.Number) + i, err := jn.Float64() + if err != nil { + return fmt.Errorf( + "error decoding json.Number into %s: %s", name, err) + } + val.SetFloat(i) + default: + return fmt.Errorf( + "'%s' expected type '%s', got unconvertible type '%s'", + name, val.Type(), dataVal.Type()) + } + + return nil +} + +func (d *Decoder) decodeMap(name string, data interface{}, val reflect.Value) error { + valType := val.Type() + valKeyType := valType.Key() + valElemType := valType.Elem() + + // By default we overwrite keys in the current map + valMap := val + + // If the map is nil or we're purposely zeroing fields, make a new map + if valMap.IsNil() || d.config.ZeroFields { + // Make a new map to hold our result + mapType := reflect.MapOf(valKeyType, valElemType) + valMap = reflect.MakeMap(mapType) + } + + // Check input type and based on the input type jump to the proper func + dataVal := reflect.Indirect(reflect.ValueOf(data)) + switch dataVal.Kind() { + case reflect.Map: + return d.decodeMapFromMap(name, dataVal, val, valMap) + + case reflect.Struct: + return d.decodeMapFromStruct(name, dataVal, val, valMap) + + case reflect.Array, reflect.Slice: + if d.config.WeaklyTypedInput { + return d.decodeMapFromSlice(name, dataVal, val, valMap) + } + + fallthrough + + default: + return fmt.Errorf("'%s' expected a map, got '%s'", name, dataVal.Kind()) + } +} + +func (d *Decoder) decodeMapFromSlice(name string, dataVal reflect.Value, val reflect.Value, valMap reflect.Value) error { + // Special case for BC reasons (covered by tests) + if dataVal.Len() == 0 { + val.Set(valMap) + return nil + } + + for i := 0; i < dataVal.Len(); i++ { + err := d.decode( + fmt.Sprintf("%s[%d]", name, i), + dataVal.Index(i).Interface(), val) + if err != nil { + return err + } + } + + return nil +} + +func (d *Decoder) decodeMapFromMap(name string, dataVal reflect.Value, val reflect.Value, valMap reflect.Value) error { + valType := val.Type() + valKeyType := valType.Key() + valElemType := valType.Elem() + + // Accumulate errors + errors := make([]string, 0) + + // If the input data is empty, then we just match what the input data is. + if dataVal.Len() == 0 { + if dataVal.IsNil() { + if !val.IsNil() { + val.Set(dataVal) + } + } else { + // Set to empty allocated value + val.Set(valMap) + } + + return nil + } + + for _, k := range dataVal.MapKeys() { + fieldName := fmt.Sprintf("%s[%s]", name, k) + + // First decode the key into the proper type + currentKey := reflect.Indirect(reflect.New(valKeyType)) + if err := d.decode(fieldName, k.Interface(), currentKey); err != nil { + errors = appendErrors(errors, err) + continue + } + + // Next decode the data into the proper type + v := dataVal.MapIndex(k).Interface() + currentVal := reflect.Indirect(reflect.New(valElemType)) + if err := d.decode(fieldName, v, currentVal); err != nil { + errors = appendErrors(errors, err) + continue + } + + valMap.SetMapIndex(currentKey, currentVal) + } + + // Set the built up map to the value + val.Set(valMap) + + // If we had errors, return those + if len(errors) > 0 { + return &Error{errors} + } + + return nil +} + +func (d *Decoder) decodeMapFromStruct(name string, dataVal reflect.Value, val reflect.Value, valMap reflect.Value) error { + typ := dataVal.Type() + for i := 0; i < typ.NumField(); i++ { + // Get the StructField first since this is a cheap operation. If the + // field is unexported, then ignore it. + f := typ.Field(i) + if f.PkgPath != "" { + continue + } + + // Next get the actual value of this field and verify it is assignable + // to the map value. + v := dataVal.Field(i) + if !v.Type().AssignableTo(valMap.Type().Elem()) { + return fmt.Errorf("cannot assign type '%s' to map value field of type '%s'", v.Type(), valMap.Type().Elem()) + } + + tagValue := f.Tag.Get(d.config.TagName) + tagParts := strings.Split(tagValue, ",") + + // Determine the name of the key in the map + keyName := f.Name + if tagParts[0] != "" { + if tagParts[0] == "-" { + continue + } + keyName = tagParts[0] + } + + // If "squash" is specified in the tag, we squash the field down. + squash := false + for _, tag := range tagParts[1:] { + if tag == "squash" { + squash = true + break + } + } + if squash && v.Kind() != reflect.Struct { + return fmt.Errorf("cannot squash non-struct type '%s'", v.Type()) + } + + switch v.Kind() { + // this is an embedded struct, so handle it differently + case reflect.Struct: + x := reflect.New(v.Type()) + x.Elem().Set(v) + + vType := valMap.Type() + vKeyType := vType.Key() + vElemType := vType.Elem() + mType := reflect.MapOf(vKeyType, vElemType) + vMap := reflect.MakeMap(mType) + + err := d.decode(keyName, x.Interface(), vMap) + if err != nil { + return err + } + + if squash { + for _, k := range vMap.MapKeys() { + valMap.SetMapIndex(k, vMap.MapIndex(k)) + } + } else { + valMap.SetMapIndex(reflect.ValueOf(keyName), vMap) + } + + default: + valMap.SetMapIndex(reflect.ValueOf(keyName), v) + } + } + + if val.CanAddr() { + val.Set(valMap) + } + + return nil +} + +func (d *Decoder) decodePtr(name string, data interface{}, val reflect.Value) error { + // If the input data is nil, then we want to just set the output + // pointer to be nil as well. + isNil := data == nil + if !isNil { + switch v := reflect.Indirect(reflect.ValueOf(data)); v.Kind() { + case reflect.Chan, + reflect.Func, + reflect.Interface, + reflect.Map, + reflect.Ptr, + reflect.Slice: + isNil = v.IsNil() + } + } + if isNil { + if !val.IsNil() && val.CanSet() { + nilValue := reflect.New(val.Type()).Elem() + val.Set(nilValue) + } + + return nil + } + + // Create an element of the concrete (non pointer) type and decode + // into that. Then set the value of the pointer to this type. + valType := val.Type() + valElemType := valType.Elem() + if val.CanSet() { + realVal := val + if realVal.IsNil() || d.config.ZeroFields { + realVal = reflect.New(valElemType) + } + + if err := d.decode(name, data, reflect.Indirect(realVal)); err != nil { + return err + } + + val.Set(realVal) + } else { + if err := d.decode(name, data, reflect.Indirect(val)); err != nil { + return err + } + } + return nil +} + +func (d *Decoder) decodeFunc(name string, data interface{}, val reflect.Value) error { + // Create an element of the concrete (non pointer) type and decode + // into that. Then set the value of the pointer to this type. + dataVal := reflect.Indirect(reflect.ValueOf(data)) + if val.Type() != dataVal.Type() { + return fmt.Errorf( + "'%s' expected type '%s', got unconvertible type '%s'", + name, val.Type(), dataVal.Type()) + } + val.Set(dataVal) + return nil +} + +func (d *Decoder) decodeSlice(name string, data interface{}, val reflect.Value) error { + dataVal := reflect.Indirect(reflect.ValueOf(data)) + dataValKind := dataVal.Kind() + valType := val.Type() + valElemType := valType.Elem() + sliceType := reflect.SliceOf(valElemType) + + valSlice := val + if valSlice.IsNil() || d.config.ZeroFields { + if d.config.WeaklyTypedInput { + switch { + // Slice and array we use the normal logic + case dataValKind == reflect.Slice, dataValKind == reflect.Array: + break + + // Empty maps turn into empty slices + case dataValKind == reflect.Map: + if dataVal.Len() == 0 { + val.Set(reflect.MakeSlice(sliceType, 0, 0)) + return nil + } + // Create slice of maps of other sizes + return d.decodeSlice(name, []interface{}{data}, val) + + case dataValKind == reflect.String && valElemType.Kind() == reflect.Uint8: + return d.decodeSlice(name, []byte(dataVal.String()), val) + + // All other types we try to convert to the slice type + // and "lift" it into it. i.e. a string becomes a string slice. + default: + // Just re-try this function with data as a slice. + return d.decodeSlice(name, []interface{}{data}, val) + } + } + + // Check input type + if dataValKind != reflect.Array && dataValKind != reflect.Slice { + return fmt.Errorf( + "'%s': source data must be an array or slice, got %s", name, dataValKind) + + } + + // If the input value is empty, then don't allocate since non-nil != nil + if dataVal.Len() == 0 { + return nil + } + + // Make a new slice to hold our result, same size as the original data. + valSlice = reflect.MakeSlice(sliceType, dataVal.Len(), dataVal.Len()) + } + + // Accumulate any errors + errors := make([]string, 0) + + for i := 0; i < dataVal.Len(); i++ { + currentData := dataVal.Index(i).Interface() + for valSlice.Len() <= i { + valSlice = reflect.Append(valSlice, reflect.Zero(valElemType)) + } + currentField := valSlice.Index(i) + + fieldName := fmt.Sprintf("%s[%d]", name, i) + if err := d.decode(fieldName, currentData, currentField); err != nil { + errors = appendErrors(errors, err) + } + } + + // Finally, set the value to the slice we built up + val.Set(valSlice) + + // If there were errors, we return those + if len(errors) > 0 { + return &Error{errors} + } + + return nil +} + +func (d *Decoder) decodeArray(name string, data interface{}, val reflect.Value) error { + dataVal := reflect.Indirect(reflect.ValueOf(data)) + dataValKind := dataVal.Kind() + valType := val.Type() + valElemType := valType.Elem() + arrayType := reflect.ArrayOf(valType.Len(), valElemType) + + valArray := val + + if valArray.Interface() == reflect.Zero(valArray.Type()).Interface() || d.config.ZeroFields { + // Check input type + if dataValKind != reflect.Array && dataValKind != reflect.Slice { + if d.config.WeaklyTypedInput { + switch { + // Empty maps turn into empty arrays + case dataValKind == reflect.Map: + if dataVal.Len() == 0 { + val.Set(reflect.Zero(arrayType)) + return nil + } + + // All other types we try to convert to the array type + // and "lift" it into it. i.e. a string becomes a string array. + default: + // Just re-try this function with data as a slice. + return d.decodeArray(name, []interface{}{data}, val) + } + } + + return fmt.Errorf( + "'%s': source data must be an array or slice, got %s", name, dataValKind) + + } + if dataVal.Len() > arrayType.Len() { + return fmt.Errorf( + "'%s': expected source data to have length less or equal to %d, got %d", name, arrayType.Len(), dataVal.Len()) + + } + + // Make a new array to hold our result, same size as the original data. + valArray = reflect.New(arrayType).Elem() + } + + // Accumulate any errors + errors := make([]string, 0) + + for i := 0; i < dataVal.Len(); i++ { + currentData := dataVal.Index(i).Interface() + currentField := valArray.Index(i) + + fieldName := fmt.Sprintf("%s[%d]", name, i) + if err := d.decode(fieldName, currentData, currentField); err != nil { + errors = appendErrors(errors, err) + } + } + + // Finally, set the value to the array we built up + val.Set(valArray) + + // If there were errors, we return those + if len(errors) > 0 { + return &Error{errors} + } + + return nil +} + +func (d *Decoder) decodeStruct(name string, data interface{}, val reflect.Value) error { + dataVal := reflect.Indirect(reflect.ValueOf(data)) + + // If the type of the value to write to and the data match directly, + // then we just set it directly instead of recursing into the structure. + if dataVal.Type() == val.Type() { + val.Set(dataVal) + return nil + } + + dataValKind := dataVal.Kind() + switch dataValKind { + case reflect.Map: + return d.decodeStructFromMap(name, dataVal, val) + + case reflect.Struct: + // Not the most efficient way to do this but we can optimize later if + // we want to. To convert from struct to struct we go to map first + // as an intermediary. + m := make(map[string]interface{}) + mval := reflect.Indirect(reflect.ValueOf(&m)) + if err := d.decodeMapFromStruct(name, dataVal, mval, mval); err != nil { + return err + } + + result := d.decodeStructFromMap(name, mval, val) + return result + + default: + return fmt.Errorf("'%s' expected a map, got '%s'", name, dataVal.Kind()) + } +} + +func (d *Decoder) decodeStructFromMap(name string, dataVal, val reflect.Value) error { + dataValType := dataVal.Type() + if kind := dataValType.Key().Kind(); kind != reflect.String && kind != reflect.Interface { + return fmt.Errorf( + "'%s' needs a map with string keys, has '%s' keys", + name, dataValType.Key().Kind()) + } + + dataValKeys := make(map[reflect.Value]struct{}) + dataValKeysUnused := make(map[interface{}]struct{}) + for _, dataValKey := range dataVal.MapKeys() { + dataValKeys[dataValKey] = struct{}{} + dataValKeysUnused[dataValKey.Interface()] = struct{}{} + } + + errors := make([]string, 0) + + // This slice will keep track of all the structs we'll be decoding. + // There can be more than one struct if there are embedded structs + // that are squashed. + structs := make([]reflect.Value, 1, 5) + structs[0] = val + + // Compile the list of all the fields that we're going to be decoding + // from all the structs. + type field struct { + field reflect.StructField + val reflect.Value + } + fields := []field{} + for len(structs) > 0 { + structVal := structs[0] + structs = structs[1:] + + structType := structVal.Type() + + for i := 0; i < structType.NumField(); i++ { + fieldType := structType.Field(i) + fieldKind := fieldType.Type.Kind() + + // If "squash" is specified in the tag, we squash the field down. + squash := false + tagParts := strings.Split(fieldType.Tag.Get(d.config.TagName), ",") + for _, tag := range tagParts[1:] { + if tag == "squash" { + squash = true + break + } + } + + if squash { + if fieldKind != reflect.Struct { + errors = appendErrors(errors, + fmt.Errorf("%s: unsupported type for squash: %s", fieldType.Name, fieldKind)) + } else { + structs = append(structs, structVal.FieldByName(fieldType.Name)) + } + continue + } + + // Normal struct field, store it away + fields = append(fields, field{fieldType, structVal.Field(i)}) + } + } + + // for fieldType, field := range fields { + for _, f := range fields { + field, fieldValue := f.field, f.val + fieldName := field.Name + + tagValue := field.Tag.Get(d.config.TagName) + tagValue = strings.SplitN(tagValue, ",", 2)[0] + if tagValue != "" { + fieldName = tagValue + } + + rawMapKey := reflect.ValueOf(fieldName) + rawMapVal := dataVal.MapIndex(rawMapKey) + if !rawMapVal.IsValid() { + // Do a slower search by iterating over each key and + // doing case-insensitive search. + for dataValKey := range dataValKeys { + mK, ok := dataValKey.Interface().(string) + if !ok { + // Not a string key + continue + } + + if strings.EqualFold(mK, fieldName) { + rawMapKey = dataValKey + rawMapVal = dataVal.MapIndex(dataValKey) + break + } + } + + if !rawMapVal.IsValid() { + // There was no matching key in the map for the value in + // the struct. Just ignore. + continue + } + } + + // Delete the key we're using from the unused map so we stop tracking + delete(dataValKeysUnused, rawMapKey.Interface()) + + if !fieldValue.IsValid() { + // This should never happen + panic("field is not valid") + } + + // If we can't set the field, then it is unexported or something, + // and we just continue onwards. + if !fieldValue.CanSet() { + continue + } + + // If the name is empty string, then we're at the root, and we + // don't dot-join the fields. + if name != "" { + fieldName = fmt.Sprintf("%s.%s", name, fieldName) + } + + if err := d.decode(fieldName, rawMapVal.Interface(), fieldValue); err != nil { + errors = appendErrors(errors, err) + } + } + + if d.config.ErrorUnused && len(dataValKeysUnused) > 0 { + keys := make([]string, 0, len(dataValKeysUnused)) + for rawKey := range dataValKeysUnused { + keys = append(keys, rawKey.(string)) + } + sort.Strings(keys) + + err := fmt.Errorf("'%s' has invalid keys: %s", name, strings.Join(keys, ", ")) + errors = appendErrors(errors, err) + } + + if len(errors) > 0 { + return &Error{errors} + } + + // Add the unused keys to the list of unused keys if we're tracking metadata + if d.config.Metadata != nil { + for rawKey := range dataValKeysUnused { + key := rawKey.(string) + if name != "" { + key = fmt.Sprintf("%s.%s", name, key) + } + + d.config.Metadata.Unused = append(d.config.Metadata.Unused, key) + } + } + + return nil +} + +func getKind(val reflect.Value) reflect.Kind { + kind := val.Kind() + + switch { + case kind >= reflect.Int && kind <= reflect.Int64: + return reflect.Int + case kind >= reflect.Uint && kind <= reflect.Uint64: + return reflect.Uint + case kind >= reflect.Float32 && kind <= reflect.Float64: + return reflect.Float32 + default: + return kind + } +} diff --git a/vendor/modules.txt b/vendor/modules.txt index 1a4db523a..6f8ca7a94 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -461,6 +461,9 @@ github.com/microcosm-cc/bluemonday/css # github.com/mitchellh/go-homedir v1.1.0 ## explicit github.com/mitchellh/go-homedir +# github.com/mitchellh/mapstructure v1.1.2 +## explicit +github.com/mitchellh/mapstructure # github.com/mjibson/esc v0.2.0 ## explicit github.com/mjibson/esc From 51d29f49ed618b944277170956fda9b8667fc73d Mon Sep 17 00:00:00 2001 From: Alexander Diana Date: Wed, 10 Apr 2024 16:05:50 +0000 Subject: [PATCH 27/34] pass startDate and endDate from GetPatientsWithRealtimeData report request --- data/service/api/v1/summary.go | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/data/service/api/v1/summary.go b/data/service/api/v1/summary.go index fcfca57c4..1e754f9dd 100644 --- a/data/service/api/v1/summary.go +++ b/data/service/api/v1/summary.go @@ -3,7 +3,6 @@ package v1 import ( "context" "net/http" - "time" "github.com/tidepool-org/platform/data/summary/reporters" @@ -104,16 +103,14 @@ func GetPatientsWithRealtimeData(dataServiceContext dataService.Context) { return } - startTime := time.Now().UTC().AddDate(0, 0, -60) - endTime := time.Now().UTC() - details := request.GetAuthDetails(ctx) if !details.IsService() { dataServiceContext.RespondWithError(service.ErrorUnauthorized()) return } - response, err := dataServiceContext.SummaryReporter().GetRealtimeDaysForPatients(ctx, dataServiceContext.ClinicsClient(), clinicId, details.Token(), startTime, endTime) + response, err := dataServiceContext.SummaryReporter().GetRealtimeDaysForPatients( + ctx, dataServiceContext.ClinicsClient(), clinicId, details.Token(), *filter.StartTime, *filter.EndTime) if err != nil { responder.Error(http.StatusInternalServerError, err) return From a12e44a01959d5558cc7bef27df20d75b7253ce6 Mon Sep 17 00:00:00 2001 From: Alexander Diana Date: Wed, 10 Apr 2024 18:30:50 +0000 Subject: [PATCH 28/34] remove IsService check from realtime report request --- data/service/api/v1/summary.go | 4 ---- 1 file changed, 4 deletions(-) diff --git a/data/service/api/v1/summary.go b/data/service/api/v1/summary.go index 1e754f9dd..120eccc1f 100644 --- a/data/service/api/v1/summary.go +++ b/data/service/api/v1/summary.go @@ -104,10 +104,6 @@ func GetPatientsWithRealtimeData(dataServiceContext dataService.Context) { } details := request.GetAuthDetails(ctx) - if !details.IsService() { - dataServiceContext.RespondWithError(service.ErrorUnauthorized()) - return - } response, err := dataServiceContext.SummaryReporter().GetRealtimeDaysForPatients( ctx, dataServiceContext.ClinicsClient(), clinicId, details.Token(), *filter.StartTime, *filter.EndTime) From 13dcd66139d8ac8faa252a229a6f494258757116 Mon Sep 17 00:00:00 2001 From: Alexander Diana Date: Wed, 10 Apr 2024 20:11:55 +0000 Subject: [PATCH 29/34] fix null dependency on SummaryReporter --- data/service/context/standard.go | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/data/service/context/standard.go b/data/service/context/standard.go index c323fb7ed..add4487e2 100644 --- a/data/service/context/standard.go +++ b/data/service/context/standard.go @@ -162,18 +162,15 @@ func (s *Standard) SummaryRepository() dataStore.SummaryRepository { } func (s *Standard) SummarizerRegistry() *summary.SummarizerRegistry { - dataRepo := s.DataRepository() - summaryRepo := s.SummaryRepository() - if s.summarizerRegistry == nil { - s.summarizerRegistry = summary.New(summaryRepo.GetStore(), dataRepo) + s.summarizerRegistry = summary.New(s.SummaryRepository().GetStore(), s.DataRepository()) } return s.summarizerRegistry } func (s *Standard) SummaryReporter() *reporters.PatientRealtimeDaysReporter { if s.summaryReporter == nil { - s.summaryReporter = reporters.NewReporter(s.summarizerRegistry) + s.summaryReporter = reporters.NewReporter(s.SummarizerRegistry()) } return s.summaryReporter } From 7a3745cde26160c5e8c9e2f19f86ce4eb3a8c492 Mon Sep 17 00:00:00 2001 From: Alexander Diana Date: Wed, 10 Apr 2024 22:00:12 +0000 Subject: [PATCH 30/34] create clinics client if missing --- data/service/context/standard.go | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/data/service/context/standard.go b/data/service/context/standard.go index add4487e2..79d7a6c95 100644 --- a/data/service/context/standard.go +++ b/data/service/context/standard.go @@ -187,6 +187,14 @@ func (s *Standard) DataClient() dataClient.Client { } func (s *Standard) ClinicsClient() clinics.Client { + if s.clinicsClient == nil { + var err error + s.clinicsClient, err = clinics.NewClient(s.AuthClient()) + if err != nil { + s.Logger().Error("unable to create clinics client") + } + } + return s.clinicsClient } From 3703fa3990d1d564d2a91099bdc2289d7c577e74 Mon Sep 17 00:00:00 2001 From: Alexander Diana Date: Thu, 11 Apr 2024 17:27:03 +0000 Subject: [PATCH 31/34] handle placeholder continuous summaries without stats --- data/summary/reporters/realtime.go | 4 +- data/summary/summary_test.go | 100 +++++++++++++++++++++++++++-- 2 files changed, 98 insertions(+), 6 deletions(-) diff --git a/data/summary/reporters/realtime.go b/data/summary/reporters/realtime.go index cbdd118f2..8c6834eaf 100644 --- a/data/summary/reporters/realtime.go +++ b/data/summary/reporters/realtime.go @@ -116,7 +116,9 @@ func (r *PatientRealtimeDaysReporter) GetRealtimeDaysForUsers(ctx context.Contex return nil, err } - realtimeUsers[userId] = userSummary.Stats.GetNumberOfDaysWithRealtimeData(startTime, endTime) + if userSummary.Stats != nil { + realtimeUsers[userId] = userSummary.Stats.GetNumberOfDaysWithRealtimeData(startTime, endTime) + } } diff --git a/data/summary/summary_test.go b/data/summary/summary_test.go index c8bb66535..afa2c66cf 100644 --- a/data/summary/summary_test.go +++ b/data/summary/summary_test.go @@ -4,6 +4,8 @@ import ( "context" "time" + "github.com/tidepool-org/platform/data/summary/reporters" + "github.com/tidepool-org/platform/data/test" "github.com/tidepool-org/platform/data" @@ -184,11 +186,6 @@ var _ = Describe("Summary", func() { continuousStore = dataStoreSummary.New[*types.ContinuousStats](summaryRepository) }) - AfterEach(func() { - _, err = summaryRepository.DeleteMany(ctx, bson.D{}) - Expect(err).ToNot(HaveOccurred()) - }) - It("with all summary types outdated", func() { updatesSummary := map[string]struct{}{ "cgm": empty, @@ -375,6 +372,7 @@ var _ = Describe("Summary", func() { store, err = dataStoreMongo.NewStore(config) Expect(err).ToNot(HaveOccurred()) Expect(store.EnsureIndexes()).To(Succeed()) + dataCollection = store.GetCollection("deviceData") datumTime = time.Now().UTC().Truncate(time.Hour) opts = options.BulkWrite().SetOrdered(false) @@ -384,6 +382,14 @@ var _ = Describe("Summary", func() { continuousSummarizer = summary.GetSummarizer[*types.ContinuousStats](registry) }) + AfterEach(func() { + _, err = summaryRepository.DeleteMany(ctx, bson.D{}) + Expect(err).ToNot(HaveOccurred()) + + _, err = dataCollection.DeleteMany(ctx, bson.D{}) + Expect(err).ToNot(HaveOccurred()) + }) + It("backfill continuous summaries", func() { userIdOne := userTest.RandomID() userIdTwo := userTest.RandomID() @@ -456,6 +462,14 @@ var _ = Describe("Summary", func() { datumTime = time.Now().UTC().Truncate(time.Hour) }) + AfterEach(func() { + _, err = summaryRepository.DeleteMany(ctx, bson.D{}) + Expect(err).ToNot(HaveOccurred()) + + _, err = dataCollection.DeleteMany(ctx, bson.D{}) + Expect(err).ToNot(HaveOccurred()) + }) + It("repeat out of order cgm summary calc", func() { var userSummary *types.Summary[*types.CGMStats, types.CGMStats] opts := options.BulkWrite().SetOrdered(false) @@ -742,4 +756,80 @@ var _ = Describe("Summary", func() { Expect(userSummary.Stats).To(BeNil()) }) }) + + Context("PatientRealtimeDaysReporter", func() { + var err error + var logger log.Logger + var ctx context.Context + var registry *summary.SummarizerRegistry + var config *storeStructuredMongo.Config + var store *dataStoreMongo.Store + var summaryRepository *storeStructuredMongo.Repository + var dataStore dataStore.DataRepository + var userId string + var continuousSummarizer summary.Summarizer[*types.ContinuousStats, types.ContinuousStats] + var dataCollection *mongo.Collection + var realtimeReporter *reporters.PatientRealtimeDaysReporter + var deviceData []mongo.WriteModel + + BeforeEach(func() { + logger = logTest.NewLogger() + ctx = log.NewContextWithLogger(context.Background(), logger) + config = storeStructuredMongoTest.NewConfig() + + store, err = dataStoreMongo.NewStore(config) + Expect(err).ToNot(HaveOccurred()) + Expect(store.EnsureIndexes()).To(Succeed()) + + summaryRepository = store.NewSummaryRepository().GetStore() + dataCollection = store.GetCollection("deviceData") + dataStore = store.NewDataRepository() + registry = summary.New(summaryRepository, dataStore) + userId = userTest.RandomID() + + continuousSummarizer = summary.GetSummarizer[*types.ContinuousStats](registry) + realtimeReporter = reporters.NewReporter(registry) + }) + + AfterEach(func() { + _, err = summaryRepository.DeleteMany(ctx, bson.D{}) + Expect(err).ToNot(HaveOccurred()) + + _, err = dataCollection.DeleteMany(ctx, bson.D{}) + Expect(err).ToNot(HaveOccurred()) + }) + + It("realtime reporter run with mix of users", func() { + realtimeDatumTime := time.Now().UTC().Truncate(time.Hour) + userIdTwo := userTest.RandomID() + + uploadRecord := NewDataSet(userId, data.DataSetTypeContinuous) + err = dataStore.CreateDataSet(ctx, uploadRecord) + Expect(err).ToNot(HaveOccurred()) + + opts := options.BulkWrite().SetOrdered(false) + deviceData = NewDataSetDataRealtime("smbg", userId, *uploadRecord.UploadID, realtimeDatumTime, 10, true) + _, err := dataCollection.BulkWrite(ctx, deviceData, opts) + Expect(err).ToNot(HaveOccurred()) + + uploadRecord = NewDataSet(userIdTwo, data.DataSetTypeContinuous) + err = dataStore.CreateDataSet(ctx, uploadRecord) + Expect(err).ToNot(HaveOccurred()) + + deviceData = NewDataSetData("smbg", userIdTwo, realtimeDatumTime, 10, 5) + _, err = dataCollection.BulkWrite(ctx, deviceData, opts) + Expect(err).ToNot(HaveOccurred()) + + _, err = continuousSummarizer.UpdateSummary(ctx, userId) + Expect(err).ToNot(HaveOccurred()) + _, err = continuousSummarizer.UpdateSummary(ctx, userIdTwo) + Expect(err).ToNot(HaveOccurred()) + + result, err := realtimeReporter.GetRealtimeDaysForUsers(ctx, []string{userId, userIdTwo}, realtimeDatumTime.AddDate(0, -1, 0), realtimeDatumTime) + Expect(err).ToNot(HaveOccurred()) + + Expect(result[userId]).To(Equal(1)) + Expect(result[userIdTwo]).To(Equal(0)) + }) + }) }) From ea8e59ab9b551b609a95e5db5e588be3c610ab66 Mon Sep 17 00:00:00 2001 From: Alexander Diana Date: Thu, 11 Apr 2024 19:46:58 +0000 Subject: [PATCH 32/34] handle patients with no summary/cgm/bgm data --- data/summary/reporters/realtime.go | 5 +++-- data/summary/summary_test.go | 23 +++++++++++++++++++++++ 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/data/summary/reporters/realtime.go b/data/summary/reporters/realtime.go index 8c6834eaf..4922ffdd6 100644 --- a/data/summary/reporters/realtime.go +++ b/data/summary/reporters/realtime.go @@ -116,10 +116,11 @@ func (r *PatientRealtimeDaysReporter) GetRealtimeDaysForUsers(ctx context.Contex return nil, err } - if userSummary.Stats != nil { + if userSummary != nil && userSummary.Stats != nil { realtimeUsers[userId] = userSummary.Stats.GetNumberOfDaysWithRealtimeData(startTime, endTime) + } else { + realtimeUsers[userId] = 0 } - } return realtimeUsers, nil diff --git a/data/summary/summary_test.go b/data/summary/summary_test.go index afa2c66cf..0e0052983 100644 --- a/data/summary/summary_test.go +++ b/data/summary/summary_test.go @@ -831,5 +831,28 @@ var _ = Describe("Summary", func() { Expect(result[userId]).To(Equal(1)) Expect(result[userIdTwo]).To(Equal(0)) }) + + It("run with a user that doesnt have a summary at all", func() { + realtimeDatumTime := time.Now().UTC().Truncate(time.Hour) + userIdTwo := userTest.RandomID() + + uploadRecord := NewDataSet(userId, data.DataSetTypeContinuous) + err = dataStore.CreateDataSet(ctx, uploadRecord) + Expect(err).ToNot(HaveOccurred()) + + opts := options.BulkWrite().SetOrdered(false) + deviceData = NewDataSetDataRealtime("smbg", userId, *uploadRecord.UploadID, realtimeDatumTime, 10, true) + _, err := dataCollection.BulkWrite(ctx, deviceData, opts) + Expect(err).ToNot(HaveOccurred()) + + _, err = continuousSummarizer.UpdateSummary(ctx, userId) + Expect(err).ToNot(HaveOccurred()) + + result, err := realtimeReporter.GetRealtimeDaysForUsers(ctx, []string{userId, userIdTwo}, realtimeDatumTime.AddDate(0, -1, 0), realtimeDatumTime) + Expect(err).ToNot(HaveOccurred()) + + Expect(result[userId]).To(Equal(1)) + Expect(result[userIdTwo]).To(Equal(0)) + }) }) }) From 8bfca4202998e7860257b037176601bd9b6bbeb8 Mon Sep 17 00:00:00 2001 From: Alexander Diana Date: Fri, 12 Apr 2024 17:06:44 +0000 Subject: [PATCH 33/34] regenerate clinics mock --- clinics/mock.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/clinics/mock.go b/clinics/mock.go index 71995adf4..9033dbe15 100644 --- a/clinics/mock.go +++ b/clinics/mock.go @@ -51,10 +51,10 @@ func (mr *MockClientMockRecorder) GetClinician(ctx, clinicID, clinicianID interf } // GetPatients mocks base method. -func (m *MockClient) GetPatients(ctx context.Context, clinicId, userToken string, params *api.ListPatientsParams) ([]api.Patient, error) { +func (m *MockClient) GetPatients(ctx context.Context, clinicId, userToken string, params *client.ListPatientsParams) ([]client.Patient, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "GetPatients", ctx, clinicId, userToken, params) - ret0, _ := ret[0].([]api.Patient) + ret0, _ := ret[0].([]client.Patient) ret1, _ := ret[1].(error) return ret0, ret1 } From 6cd8baf910b3104ca1d71073715ad6b9821a4a17 Mon Sep 17 00:00:00 2001 From: Alexander Diana Date: Fri, 12 Apr 2024 18:40:43 +0000 Subject: [PATCH 34/34] update deps, replace shopify/sarama with ibm/sarama, remove old protobuf --- data/service/service/standard.go | 2 +- go.mod | 94 +- go.sum | 201 +- .../{Shopify => IBM}/sarama/.gitignore | 0 .../{Shopify => IBM}/sarama/.golangci.yml | 31 +- .../IBM/sarama/.pre-commit-config.yaml | 41 + vendor/github.com/IBM/sarama/CHANGELOG.md | 1760 + .../github.com/IBM/sarama/CODE_OF_CONDUCT.md | 128 + vendor/github.com/IBM/sarama/CONTRIBUTING.md | 77 + vendor/github.com/IBM/sarama/Dockerfile.kafka | 47 + .../sarama/LICENSE => IBM/sarama/LICENSE.md} | 4 + .../{Shopify => IBM}/sarama/Makefile | 0 .../{Shopify => IBM}/sarama/README.md | 18 +- vendor/github.com/IBM/sarama/SECURITY.md | 11 + .../{Shopify => IBM}/sarama/Vagrantfile | 0 .../{Shopify => IBM}/sarama/acl_bindings.go | 0 .../sarama/acl_create_request.go | 4 + .../sarama/acl_create_response.go | 18 +- .../sarama/acl_delete_request.go | 4 + .../sarama/acl_delete_response.go | 15 +- .../sarama/acl_describe_request.go | 6 +- .../sarama/acl_describe_response.go | 8 + .../{Shopify => IBM}/sarama/acl_filter.go | 0 .../{Shopify => IBM}/sarama/acl_types.go | 8 +- .../sarama/add_offsets_to_txn_request.go | 18 +- .../sarama/add_offsets_to_txn_response.go | 22 +- .../sarama/add_partitions_to_txn_request.go | 18 +- .../sarama/add_partitions_to_txn_response.go | 21 +- .../{Shopify => IBM}/sarama/admin.go | 189 +- .../sarama/alter_client_quotas_request.go | 7 +- .../sarama/alter_client_quotas_response.go | 11 +- .../sarama/alter_configs_request.go | 16 +- .../sarama/alter_configs_response.go | 40 +- .../alter_partition_reassignments_request.go | 4 + .../alter_partition_reassignments_response.go | 10 + .../alter_user_scram_credentials_request.go | 4 + .../alter_user_scram_credentials_response.go | 8 + .../sarama/api_versions_request.go | 14 +- .../sarama/api_versions_response.go | 20 +- .../{Shopify => IBM}/sarama/async_producer.go | 17 +- .../sarama/balance_strategy.go | 114 +- .../{Shopify => IBM}/sarama/broker.go | 131 +- .../{Shopify => IBM}/sarama/client.go | 213 +- .../{Shopify => IBM}/sarama/compress.go | 2 +- .../{Shopify => IBM}/sarama/config.go | 52 +- .../sarama/config_resource_type.go | 0 .../{Shopify => IBM}/sarama/consumer.go | 32 +- .../{Shopify => IBM}/sarama/consumer_group.go | 198 +- .../sarama/consumer_group_members.go | 60 +- .../sarama/consumer_metadata_request.go | 17 +- .../sarama/consumer_metadata_response.go | 18 +- .../{Shopify => IBM}/sarama/control_record.go | 0 .../{Shopify => IBM}/sarama/crc32_field.go | 0 .../sarama/create_partitions_request.go | 16 +- .../sarama/create_partitions_response.go | 20 +- .../sarama/create_topics_request.go | 35 +- .../sarama/create_topics_response.go | 26 +- vendor/github.com/IBM/sarama/decompress.go | 98 + .../sarama/delete_groups_request.go | 18 +- .../sarama/delete_groups_response.go | 20 +- .../sarama/delete_offsets_request.go | 7 +- .../sarama/delete_offsets_response.go | 11 +- .../sarama/delete_records_request.go | 14 +- .../sarama/delete_records_response.go | 17 +- .../sarama/delete_topics_request.go | 12 +- .../sarama/delete_topics_response.go | 16 +- .../sarama/describe_client_quotas_request.go | 7 +- .../sarama/describe_client_quotas_response.go | 11 +- .../sarama/describe_configs_request.go | 12 +- .../sarama/describe_configs_response.go | 29 +- .../sarama/describe_groups_request.go | 17 +- .../sarama/describe_groups_response.go | 23 +- .../sarama/describe_log_dirs_request.go | 7 + .../sarama/describe_log_dirs_response.go | 11 + ...describe_user_scram_credentials_request.go | 4 + ...escribe_user_scram_credentials_response.go | 8 + .../{Shopify => IBM}/sarama/dev.yml | 0 .../sarama/docker-compose.yml | 148 +- .../sarama/encoder_decoder.go | 0 .../sarama/end_txn_request.go | 16 +- .../sarama/end_txn_response.go | 20 +- vendor/github.com/IBM/sarama/entrypoint.sh | 31 + .../{Shopify => IBM}/sarama/errors.go | 190 +- .../{Shopify => IBM}/sarama/fetch_request.go | 47 +- .../{Shopify => IBM}/sarama/fetch_response.go | 46 +- .../sarama/find_coordinator_request.go | 6 + .../sarama/find_coordinator_response.go | 10 + .../sarama/gssapi_kerberos.go | 14 +- .../sarama/heartbeat_request.go | 17 +- .../sarama/heartbeat_response.go | 21 +- .../incremental_alter_configs_request.go | 7 +- .../incremental_alter_configs_response.go | 11 +- .../sarama/init_producer_id_request.go | 20 +- .../sarama/init_producer_id_response.go | 18 +- .../{Shopify => IBM}/sarama/interceptors.go | 4 +- .../sarama/join_group_request.go | 52 +- .../sarama/join_group_response.go | 51 +- .../sarama/kerberos_client.go | 15 +- .../sarama/leave_group_request.go | 17 +- .../sarama/leave_group_response.go | 23 +- .../{Shopify => IBM}/sarama/length_field.go | 0 .../IBM/sarama/list_groups_request.go | 82 + .../IBM/sarama/list_groups_response.go | 173 + .../list_partition_reassignments_request.go | 4 + .../list_partition_reassignments_response.go | 10 + .../{Shopify => IBM}/sarama/message.go | 0 .../{Shopify => IBM}/sarama/message_set.go | 0 .../github.com/IBM/sarama/metadata_request.go | 240 + .../sarama/metadata_response.go | 287 +- .../{Shopify => IBM}/sarama/metrics.go | 2 +- .../{Shopify => IBM}/sarama/mockbroker.go | 72 +- .../{Shopify => IBM}/sarama/mockkerberos.go | 0 .../{Shopify => IBM}/sarama/mockresponses.go | 149 +- .../sarama/offset_commit_request.go | 32 +- .../sarama/offset_commit_response.go | 30 +- .../sarama/offset_fetch_request.go | 69 +- .../sarama/offset_fetch_response.go | 40 +- .../{Shopify => IBM}/sarama/offset_manager.go | 82 +- .../{Shopify => IBM}/sarama/offset_request.go | 53 +- .../sarama/offset_response.go | 72 +- .../{Shopify => IBM}/sarama/packet_decoder.go | 2 +- .../{Shopify => IBM}/sarama/packet_encoder.go | 0 .../{Shopify => IBM}/sarama/partitioner.go | 31 + .../{Shopify => IBM}/sarama/prep_encoder.go | 0 .../sarama/produce_request.go | 30 +- .../sarama/produce_response.go | 27 +- .../{Shopify => IBM}/sarama/produce_set.go | 9 +- .../{Shopify => IBM}/sarama/quota_types.go | 0 .../{Shopify => IBM}/sarama/real_decoder.go | 0 .../{Shopify => IBM}/sarama/real_encoder.go | 0 .../{Shopify => IBM}/sarama/record.go | 0 .../{Shopify => IBM}/sarama/record_batch.go | 8 +- .../{Shopify => IBM}/sarama/records.go | 0 .../{Shopify => IBM}/sarama/request.go | 96 +- .../sarama/response_header.go | 0 .../{Shopify => IBM}/sarama/sarama.go | 2 +- .../sarama/sasl_authenticate_request.go | 4 + .../sarama/sasl_authenticate_response.go | 4 + .../sarama/sasl_handshake_request.go | 11 +- .../sarama/sasl_handshake_response.go | 14 +- .../sarama/scram_formatter.go | 0 .../sarama/sticky_assignor_user_data.go | 0 .../sarama/sync_group_request.go | 17 +- .../sarama/sync_group_response.go | 23 +- .../{Shopify => IBM}/sarama/sync_producer.go | 2 +- .../{Shopify => IBM}/sarama/timestamp.go | 0 .../sarama/transaction_manager.go | 83 +- .../sarama/txn_offset_commit_request.go | 44 +- .../sarama/txn_offset_commit_response.go | 23 +- .../{Shopify => IBM}/sarama/utils.go | 38 +- .../{Shopify => IBM}/sarama/version.go | 0 .../{Shopify => IBM}/sarama/zstd.go | 0 vendor/github.com/Shopify/sarama/CHANGELOG.md | 1187 - .../Shopify/sarama/Dockerfile.kafka | 27 - .../github.com/Shopify/sarama/decompress.go | 61 - .../github.com/Shopify/sarama/entrypoint.sh | 26 - .../Shopify/sarama/list_groups_request.go | 27 - .../Shopify/sarama/list_groups_response.go | 73 - .../Shopify/sarama/metadata_request.go | 108 - .../aws/aws-sdk-go/aws/endpoints/defaults.go | 2311 +- .../github.com/aws/aws-sdk-go/aws/version.go | 2 +- .../aws/aws-sdk-go/service/s3/api.go | 221 +- .../service/s3/s3manager/upload_input.go | 2 +- vendor/github.com/bytedance/sonic/Makefile | 15 +- vendor/github.com/bytedance/sonic/README.md | 66 +- .../bytedance/sonic/README_ZH_CN.md | 45 +- vendor/github.com/bytedance/sonic/api.go | 36 +- .../sonic/ast/{api_amd64.go => api.go} | 35 +- .../bytedance/sonic/ast/api_compat.go | 147 +- .../bytedance/sonic/ast/b64_amd64.go | 31 + .../bytedance/sonic/ast/b64_compat.go} | 22 +- .../github.com/bytedance/sonic/ast/buffer.go | 150 +- .../github.com/bytedance/sonic/ast/encode.go | 32 +- .../bytedance/sonic/ast/iterator.go | 14 +- vendor/github.com/bytedance/sonic/ast/node.go | 255 +- .../github.com/bytedance/sonic/ast/parser.go | 8 +- .../github.com/bytedance/sonic/ast/search.go | 50 + .../github.com/bytedance/sonic/ast/visitor.go | 2 +- vendor/github.com/bytedance/sonic/compat.go | 2 +- .../bytedance/sonic/decoder/decoder_amd64.go | 2 +- .../bytedance/sonic/decoder/decoder_compat.go | 4 +- .../bytedance/sonic/encoder/encoder_amd64.go | 5 +- .../bytedance/sonic/encoder/encoder_compat.go | 17 +- .../internal/decoder/asm_stubs_amd64_go121.go | 2 +- .../decoder/assembler_regabi_amd64.go | 3 +- .../internal/decoder/generic_regabi_amd64.go | 2 +- .../decoder/generic_regabi_amd64_test.s | 2 +- .../sonic/internal/decoder/stream.go | 205 +- .../internal/encoder/asm_stubs_amd64_go121.go | 2 +- .../encoder/assembler_regabi_amd64.go | 3 +- .../sonic/internal/encoder/compiler.go | 2 +- .../sonic/internal/encoder/debug_go117.go | 2 +- .../sonic/internal/encoder/encoder.go | 14 + .../sonic/internal/encoder/primitives.go | 6 +- .../sonic/internal/encoder/stream.go | 13 +- .../sonic/internal/encoder/stubs_go116.go | 4 - .../sonic/internal/encoder/stubs_go117.go | 4 - .../sonic/internal/encoder/stubs_go120.go | 4 - .../sonic/internal/encoder/stubs_go121.go | 4 - .../bytedance/sonic/internal/jit/runtime.go | 7 +- .../sonic/internal/native/avx/native_amd64.go | 9 +- .../internal/native/avx/native_subr_amd64.go | 659 +- .../internal/native/avx/native_text_amd64.go | 27196 ++++++++------- .../internal/native/avx2/native_amd64.go | 9 +- .../internal/native/avx2/native_subr_amd64.go | 691 +- .../internal/native/avx2/native_text_amd64.go | 28564 ++++++++-------- .../sonic/internal/native/dispatch_amd64.go | 9 +- .../sonic/internal/native/dispatch_arm64.go | 154 + ...at_amd64_test.tmpl => fastfloat_test.tmpl} | 0 ...tint_amd64_test.tmpl => fastint_test.tmpl} | 0 .../sonic/internal/native/native_amd64.tmpl | 6 - .../sonic/internal/native/native_arm64.tmpl | 246 + .../internal/native/native_export_arm64.tmpl | 47 + ...ative_amd64_test.tmpl => native_test.tmpl} | 0 .../internal/native/neon/f32toa_arm64.go | 31 + .../sonic/internal/native/neon/f32toa_arm64.s | 1019 + .../internal/native/neon/f32toa_subr_arm64.go | 25 + .../internal/native/neon/f64toa_arm64.go | 31 + .../sonic/internal/native/neon/f64toa_arm64.s | 2492 ++ .../internal/native/neon/f64toa_subr_arm64.go | 25 + .../internal/native/neon/get_by_path_arm64.go | 35 + .../internal/native/neon/get_by_path_arm64.s | 4579 +++ .../native/neon/get_by_path_subr_arm64.go | 25 + .../internal/native/neon/html_escape_arm64.go | 37 + .../internal/native/neon/html_escape_arm64.s | 1406 + .../native/neon/html_escape_subr_arm64.go | 25 + .../internal/native/neon/i64toa_arm64.go | 31 + .../sonic/internal/native/neon/i64toa_arm64.s | 985 + .../internal/native/neon/i64toa_subr_arm64.go | 25 + .../internal/native/neon/lspace_arm64.go | 37 + .../sonic/internal/native/neon/lspace_arm64.s | 68 + .../internal/native/neon/lspace_subr_arm64.go | 25 + .../native/neon/native_export_arm64.go | 49 + .../sonic/internal/native/neon/quote_arm64.go | 37 + .../sonic/internal/native/neon/quote_arm64.s | 2563 ++ .../internal/native/neon/quote_subr_arm64.go | 25 + .../internal/native/neon/skip_array_arm64.go | 37 + .../internal/native/neon/skip_array_arm64.s | 2384 ++ .../native/neon/skip_array_subr_arm64.go | 25 + .../internal/native/neon/skip_number_arm64.go | 31 + .../internal/native/neon/skip_number_arm64.s | 373 + .../native/neon/skip_number_subr_arm64.go | 25 + .../internal/native/neon/skip_object_arm64.go | 37 + .../internal/native/neon/skip_object_arm64.s | 2384 ++ .../native/neon/skip_object_subr_arm64.go | 25 + .../internal/native/neon/skip_one_arm64.go | 37 + .../internal/native/neon/skip_one_arm64.s | 2384 ++ .../native/neon/skip_one_fast_arm64.go | 31 + .../native/neon/skip_one_fast_arm64.s | 998 + .../native/neon/skip_one_fast_subr_arm64.go | 25 + .../native/neon/skip_one_subr_arm64.go | 25 + .../internal/native/neon/u64toa_arm64.go | 31 + .../sonic/internal/native/neon/u64toa_arm64.s | 598 + .../internal/native/neon/u64toa_subr_arm64.go | 25 + .../internal/native/neon/unquote_arm64.go | 37 + .../internal/native/neon/unquote_arm64.s | 615 + .../native/neon/unquote_subr_arm64.go | 25 + .../native/neon/validate_one_arm64.go | 37 + .../internal/native/neon/validate_one_arm64.s | 1860 + .../native/neon/validate_one_subr_arm64.go | 25 + .../native/neon/validate_utf8_arm64.go | 38 + .../native/neon/validate_utf8_arm64.s | 222 + .../native/neon/validate_utf8_fast_arm64.go | 31 + .../native/neon/validate_utf8_fast_arm64.s | 182 + .../neon/validate_utf8_fast_subr_arm64.go | 25 + .../native/neon/validate_utf8_subr_arm64.go | 25 + .../sonic/internal/native/neon/value_arm64.go | 34 + .../sonic/internal/native/neon/value_arm64.s | 5968 ++++ .../internal/native/neon/value_subr_arm64.go | 25 + .../internal/native/neon/vnumber_arm64.go} | 31 +- .../internal/native/neon/vnumber_arm64.s | 4690 +++ .../native/neon/vnumber_subr_arm64.go | 25 + .../internal/native/neon/vsigned_arm64.go | 32 + .../internal/native/neon/vsigned_arm64.s | 156 + .../native/neon/vsigned_subr_arm64.go | 25 + .../internal/native/neon/vstring_arm64.go | 32 + .../internal/native/neon/vstring_arm64.s | 628 + .../native/neon/vstring_subr_arm64.go | 25 + .../internal/native/neon/vunsigned_arm64.go | 32 + .../internal/native/neon/vunsigned_arm64.s | 150 + .../native/neon/vunsigned_subr_arm64.go | 25 + ...over_amd64_test.tmpl => recover_test.tmpl} | 1 - .../sonic/internal/native/sse/native_amd64.go | 9 +- .../internal/native/sse/native_subr_amd64.go | 665 +- .../internal/native/sse/native_text_amd64.go | 27807 ++++++++------- .../sonic/internal/native/types/types.go | 2 +- .../bytedance/sonic/internal/rt/asm_amd64.s | 3 +- .../internal/rt/{asm_arm64.s => asm_compat.s} | 3 +- .../bytedance/sonic/internal/rt/fastmem.go | 3 +- .../bytedance/sonic/internal/rt/fastvalue.go | 21 + .../bytedance/sonic/loader/funcdata_go121.go | 4 +- .../bytedance/sonic/loader/funcdata_latest.go | 4 +- .../bytedance/sonic/loader/loader_latest.go | 3 +- .../bytedance/sonic/loader/mmap_unix.go | 4 +- .../bytedance/sonic/loader/stubs.go | 34 +- vendor/github.com/bytedance/sonic/sonic.go | 5 +- vendor/github.com/cespare/xxhash/v2/README.md | 2 + vendor/github.com/cespare/xxhash/v2/xxhash.go | 29 +- .../cespare/xxhash/v2/xxhash_asm.go | 2 +- .../cespare/xxhash/v2/xxhash_other.go | 2 +- .../cespare/xxhash/v2/xxhash_safe.go | 2 +- .../cespare/xxhash/v2/xxhash_unsafe.go | 2 +- .../sdk-go/protocol/kafka_sarama/v2/doc.go | 2 +- .../protocol/kafka_sarama/v2/message.go | 14 +- .../protocol/kafka_sarama/v2/protocol.go | 2 +- .../protocol/kafka_sarama/v2/receiver.go | 15 +- .../sdk-go/protocol/kafka_sarama/v2/sender.go | 2 +- .../kafka_sarama/v2/write_producer_message.go | 2 +- .../cpuguy83/go-md2man/v2/md2man/roff.go | 90 +- .../eapache/go-resiliency/breaker/breaker.go | 45 +- .../go-playground/validator/v10/Makefile | 4 +- .../go-playground/validator/v10/README.md | 2 +- .../go-playground/validator/v10/cache.go | 2 +- .../go-playground/validator/v10/options.go | 10 + .../go-playground/validator/v10/validator.go | 32 +- .../validator/v10/validator_instance.go | 29 +- vendor/github.com/golang/protobuf/AUTHORS | 3 - .../github.com/golang/protobuf/CONTRIBUTORS | 3 - vendor/github.com/golang/protobuf/LICENSE | 28 - .../golang/protobuf/jsonpb/decode.go | 530 - .../golang/protobuf/jsonpb/encode.go | 559 - .../github.com/golang/protobuf/jsonpb/json.go | 69 - .../golang/protobuf/proto/buffer.go | 324 - .../golang/protobuf/proto/defaults.go | 63 - .../golang/protobuf/proto/deprecated.go | 113 - .../golang/protobuf/proto/discard.go | 58 - .../golang/protobuf/proto/extensions.go | 356 - .../golang/protobuf/proto/properties.go | 306 - .../github.com/golang/protobuf/proto/proto.go | 167 - .../golang/protobuf/proto/registry.go | 317 - .../golang/protobuf/proto/text_decode.go | 801 - .../golang/protobuf/proto/text_encode.go | 560 - .../github.com/golang/protobuf/proto/wire.go | 78 - .../golang/protobuf/proto/wrappers.go | 34 - .../github.com/golang/protobuf/ptypes/any.go | 179 - .../golang/protobuf/ptypes/any/any.pb.go | 62 - .../github.com/golang/protobuf/ptypes/doc.go | 10 - .../golang/protobuf/ptypes/duration.go | 76 - .../protobuf/ptypes/duration/duration.pb.go | 63 - .../golang/protobuf/ptypes/timestamp.go | 112 - .../protobuf/ptypes/timestamp/timestamp.pb.go | 64 - .../github.com/gomarkdown/markdown/README.md | 10 +- .../gomarkdown/markdown/parser/parser.go | 3 + .../klauspost/compress/.goreleaser.yml | 4 - .../github.com/klauspost/compress/README.md | 19 + .../compress/internal/snapref/encode_other.go | 2 +- .../klauspost/compress/s2/encode_all.go | 22 +- .../klauspost/compress/s2/encodeblock_amd64.s | 108 + .../klauspost/compress/s2/reader.go | 15 +- .../klauspost/compress/s2/writer.go | 23 +- .../klauspost/compress/zstd/blockdec.go | 3 + .../klauspost/compress/zstd/blockenc.go | 20 + .../klauspost/compress/zstd/decoder.go | 2 +- .../klauspost/compress/zstd/enc_best.go | 49 +- .../klauspost/compress/zstd/enc_better.go | 13 +- vendor/github.com/klauspost/cpuid/v2/cpuid.go | 427 +- .../klauspost/cpuid/v2/detect_x86.go | 1 + .../klauspost/cpuid/v2/featureid_string.go | 289 +- vendor/github.com/leodido/go-urn/README.md | 56 +- vendor/github.com/leodido/go-urn/kind.go | 1 + vendor/github.com/leodido/go-urn/machine.go | 7108 ++-- .../github.com/leodido/go-urn/machine.go.rl | 244 +- vendor/github.com/leodido/go-urn/makefile | 2 +- .../github.com/leodido/go-urn/parsing_mode.go | 3 +- vendor/github.com/leodido/go-urn/scim.go | 40 +- vendor/github.com/leodido/go-urn/urn.go | 57 +- vendor/github.com/leodido/go-urn/urn8141.go | 30 + .../mitchellh/mapstructure/.travis.yml | 8 - .../mitchellh/mapstructure/CHANGELOG.md | 75 + .../mitchellh/mapstructure/decode_hooks.go | 92 +- .../mitchellh/mapstructure/mapstructure.go | 561 +- vendor/github.com/onsi/ginkgo/v2/CHANGELOG.md | 35 + vendor/github.com/onsi/ginkgo/v2/core_dsl.go | 17 +- .../ginkgo/v2/ginkgo/internal/gocovmerge.go | 129 + .../ginkgo/internal/profiles_and_reports.go | 42 +- .../onsi/ginkgo/v2/internal/node.go | 33 +- .../onsi/ginkgo/v2/internal/suite.go | 14 +- .../ginkgo/v2/reporters/default_reporter.go | 47 +- .../onsi/ginkgo/v2/reporting_dsl.go | 59 +- .../github.com/onsi/ginkgo/v2/types/config.go | 5 +- .../github.com/onsi/ginkgo/v2/types/flags.go | 15 +- .../onsi/ginkgo/v2/types/version.go | 2 +- vendor/github.com/onsi/gomega/CHANGELOG.md | 13 + .../github.com/onsi/gomega/ghttp/handlers.go | 23 +- vendor/github.com/onsi/gomega/gomega_dsl.go | 2 +- .../pelletier/go-toml/v2/CONTRIBUTING.md | 31 +- .../github.com/pelletier/go-toml/v2/README.md | 117 +- .../go-toml/v2/internal/tracker/seen.go | 62 +- .../pelletier/go-toml/v2/marshaler.go | 39 +- .../pelletier/go-toml/v2/unmarshaler.go | 51 +- .../go-toml/v2/unstable/unmarshaler.go | 7 + .../prometheus/testutil/promlint/promlint.go | 2 +- .../prometheus/testutil/testutil.go | 4 +- .../prometheus/client_model/go/metrics.pb.go | 195 +- .../prometheus/common/expfmt/decode.go | 24 +- .../prometheus/common/expfmt/encode.go | 79 +- .../prometheus/common/expfmt/expfmt.go | 154 +- .../common/expfmt/openmetrics_create.go | 283 +- .../prometheus/common/expfmt/text_create.go | 118 +- .../prometheus/common/model/labels.go | 22 +- .../prometheus/common/model/labelset.go | 11 - .../common/model/labelset_string.go | 45 + .../common/model/labelset_string_go120.go | 39 + .../prometheus/common/model/metric.go | 363 +- .../prometheus/procfs/Makefile.common | 16 +- vendor/github.com/prometheus/procfs/crypto.go | 2 +- .../github.com/prometheus/procfs/meminfo.go | 218 +- .../prometheus/procfs/net_ip_socket.go | 26 +- .../prometheus/procfs/net_tls_stat.go | 119 + .../github.com/prometheus/procfs/proc_stat.go | 7 + .../github.com/tdewolff/minify/v2/README.md | 2 +- .../github.com/tdewolff/minify/v2/css/css.go | 15 +- .../tdewolff/minify/v2/html/html.go | 2 +- .../github.com/tdewolff/minify/v2/js/util.go | 2 +- .../github.com/tdewolff/minify/v2/js/vars.go | 138 +- .../github.com/tdewolff/parse/v2/html/util.go | 12 +- .../github.com/tdewolff/parse/v2/js/parse.go | 20 +- .../tidepool-org/go-common/events/config.go | 2 +- .../tidepool-org/go-common/events/consumer.go | 2 +- .../go-common/events/consumer_group.go | 2 +- .../tidepool-org/go-common/events/sender.go | 4 +- .../bson/bsoncodec/array_codec.go | 7 +- .../bson/bsoncodec/byte_slice_codec.go | 25 +- .../bson/bsoncodec/default_value_decoders.go | 10 +- .../bson/bsoncodec/default_value_encoders.go | 12 +- .../bson/bsoncodec/empty_interface_codec.go | 24 +- .../mongo-driver/bson/bsoncodec/map_codec.go | 38 +- .../bson/bsoncodec/pointer_codec.go | 16 +- .../bson/bsoncodec/slice_codec.go | 27 +- .../bson/bsoncodec/string_codec.go | 16 +- .../bson/bsoncodec/struct_codec.go | 62 +- .../mongo-driver/bson/bsoncodec/time_codec.go | 24 +- .../mongo-driver/bson/bsoncodec/uint_codec.go | 24 +- .../mongo-driver/bson/bsonrw/copier.go | 5 +- .../bson/bsonrw/extjson_parser.go | 2 +- .../bson/bsonrw/extjson_reader.go | 5 +- .../mongo-driver/bson/bsonrw/json_scanner.go | 26 +- .../go.mongodb.org/mongo-driver/bson/doc.go | 89 +- .../mongo-driver/bson/primitive/decimal.go | 3 - .../mongo-driver/bson/primitive/objectid.go | 4 +- .../mongo-driver/event/monitoring.go | 5 +- .../mongo-driver/internal/csfle/csfle.go | 3 +- .../mongo-driver/internal/logger/logger.go | 2 +- .../mongo-driver/mongo/bulk_write.go | 17 +- .../mongo-driver/mongo/change_stream.go | 4 +- .../mongo-driver/mongo/client.go | 2 +- .../mongo-driver/mongo/client_encryption.go | 2 +- .../mongo-driver/mongo/collection.go | 12 +- .../mongo-driver/mongo/cursor.go | 12 +- .../mongo-driver/mongo/database.go | 6 +- .../mongo/description/server_selector.go | 12 +- .../mongo-driver/mongo/errors.go | 4 +- .../mongo-driver/mongo/mongo.go | 10 +- .../mongo/options/clientoptions.go | 12 +- .../mongo-driver/version/version.go | 2 +- .../mongo-driver/x/mongo/driver/auth/sasl.go | 4 +- .../mongo-driver/x/mongo/driver/auth/scram.go | 3 +- .../x/mongo/driver/batch_cursor.go | 4 +- .../x/mongo/driver/connstring/connstring.go | 1267 +- .../mongo-driver/x/mongo/driver/crypt.go | 3 +- .../mongo-driver/x/mongo/driver/dns/dns.go | 4 +- .../x/mongo/driver/ocsp/config.go | 4 +- .../mongo-driver/x/mongo/driver/ocsp/ocsp.go | 6 +- .../mongo-driver/x/mongo/driver/operation.go | 6 +- .../x/mongo/driver/topology/connection.go | 12 +- .../x/mongo/driver/topology/errors.go | 7 +- .../x/mongo/driver/topology/pool.go | 135 +- .../topology/pool_generation_counter.go | 14 +- .../x/mongo/driver/topology/rtt_monitor.go | 4 +- .../x/mongo/driver/topology/server.go | 42 +- .../x/mongo/driver/topology/topology.go | 59 +- vendor/go.uber.org/fx/.golangci.yml | 95 + vendor/go.uber.org/fx/CHANGELOG.md | 10 + vendor/go.uber.org/fx/Makefile | 92 +- vendor/go.uber.org/fx/annotated.go | 37 +- vendor/go.uber.org/fx/app.go | 148 +- vendor/go.uber.org/fx/app_unixes.go | 6 +- vendor/go.uber.org/fx/app_wasm.go | 6 +- vendor/go.uber.org/fx/app_windows.go | 6 +- vendor/go.uber.org/fx/checklicense.sh | 17 - vendor/go.uber.org/fx/decorate.go | 7 +- vendor/go.uber.org/fx/doc.go | 327 +- vendor/go.uber.org/fx/fxevent/doc.go | 73 + vendor/go.uber.org/fx/fxevent/slog.go | 279 + vendor/go.uber.org/fx/inout.go | 353 +- .../go.uber.org/fx/internal/fxclock/clock.go | 210 +- .../fx/internal/lifecycle/lifecycle.go | 2 +- vendor/go.uber.org/fx/invoke.go | 1 + vendor/go.uber.org/fx/module.go | 36 +- vendor/go.uber.org/fx/signal.go | 2 +- vendor/go.uber.org/fx/version.go | 2 +- vendor/go.uber.org/zap/.golangci.yml | 2 +- vendor/go.uber.org/zap/.readme.tmpl | 10 +- vendor/go.uber.org/zap/CHANGELOG.md | 54 +- .../go.uber.org/zap/{LICENSE.txt => LICENSE} | 0 vendor/go.uber.org/zap/README.md | 66 +- vendor/go.uber.org/zap/buffer/buffer.go | 2 +- vendor/go.uber.org/zap/field.go | 2 + vendor/go.uber.org/zap/logger.go | 39 +- vendor/go.uber.org/zap/options.go | 15 + vendor/go.uber.org/zap/sugar.go | 39 + .../zap/zapcore/console_encoder.go | 2 +- vendor/go.uber.org/zap/zapcore/encoder.go | 15 + vendor/go.uber.org/zap/zapcore/field.go | 2 +- .../go.uber.org/zap/zapcore/json_encoder.go | 2 +- vendor/golang.org/x/crypto/md4/md4.go | 2 +- .../x/oauth2/internal/client_appengine.go | 13 - .../golang.org/x/oauth2/internal/transport.go | 5 - .../golang.org/x/sync/semaphore/semaphore.go | 42 +- vendor/golang.org/x/sys/unix/mmap_nomremap.go | 2 +- .../x/sys/unix/syscall_zos_s390x.go | 8 + .../x/sys/windows/syscall_windows.go | 82 + .../golang.org/x/sys/windows/types_windows.go | 24 + .../x/sys/windows/zsyscall_windows.go | 126 +- vendor/golang.org/x/tools/cover/profile.go | 266 + .../x/tools/go/gcexportdata/gcexportdata.go | 2 +- .../x/tools/go/types/objectpath/objectpath.go | 23 +- .../x/tools/internal/aliases/aliases.go | 28 + .../x/tools/internal/aliases/aliases_go121.go | 30 + .../x/tools/internal/aliases/aliases_go122.go | 72 + .../x/tools/internal/gcimporter/gcimporter.go | 7 - .../x/tools/internal/gcimporter/iexport.go | 52 +- .../x/tools/internal/gcimporter/iimport.go | 78 +- .../internal/gcimporter/support_go117.go | 16 - .../internal/gcimporter/support_go118.go | 3 - .../x/tools/internal/gcimporter/unified_no.go | 4 +- .../tools/internal/gcimporter/unified_yes.go | 4 +- .../x/tools/internal/gcimporter/ureader_no.go | 19 - .../tools/internal/gcimporter/ureader_yes.go | 8 +- .../x/tools/internal/gocommand/invoke.go | 3 + .../x/tools/internal/gopathwalk/walk.go | 308 +- .../x/tools/internal/imports/fix.go | 221 +- .../x/tools/internal/imports/imports.go | 6 +- .../x/tools/internal/imports/mod.go | 298 +- .../x/tools/internal/imports/mod_cache.go | 119 +- .../x/tools/internal/imports/sortimports.go | 2 +- .../x/tools/internal/imports/zstdlib.go | 11345 ------ .../x/tools/internal/stdlib/manifest.go | 17320 ++++++++++ .../x/tools/internal/stdlib/stdlib.go | 97 + .../internal/tokeninternal/tokeninternal.go | 28 +- .../x/tools/internal/typeparams/common.go | 204 - .../x/tools/internal/typeparams/coretype.go | 122 - .../x/tools/internal/typeparams/normalize.go | 218 - .../x/tools/internal/typeparams/termlist.go | 163 - .../x/tools/internal/typeparams/typeterm.go | 169 - .../tools/internal/typesinternal/errorcode.go | 1560 + .../typesinternal/errorcode_string.go | 179 + .../x/tools/internal/typesinternal/recv.go | 43 + .../x/tools/internal/typesinternal/toonew.go | 89 + .../x/tools/internal/typesinternal/types.go | 50 + .../x/tools/internal/versions/features.go | 43 + .../x/tools/internal/versions/gover.go | 172 + .../x/tools/internal/versions/toolchain.go | 14 + .../internal/versions/toolchain_go119.go | 14 + .../internal/versions/toolchain_go120.go | 14 + .../internal/versions/toolchain_go121.go | 14 + .../x/tools/internal/versions/types.go | 19 + .../x/tools/internal/versions/types_go121.go | 30 + .../x/tools/internal/versions/types_go122.go | 41 + .../x/tools/internal/versions/versions.go | 57 + vendor/google.golang.org/appengine/LICENSE | 202 - .../appengine/internal/api.go | 653 - .../appengine/internal/api_classic.go | 170 - .../appengine/internal/api_common.go | 141 - .../appengine/internal/app_id.go | 28 - .../appengine/internal/base/api_base.pb.go | 308 - .../appengine/internal/base/api_base.proto | 33 - .../internal/datastore/datastore_v3.pb.go | 4367 --- .../internal/datastore/datastore_v3.proto | 551 - .../appengine/internal/identity.go | 54 - .../appengine/internal/identity_classic.go | 62 - .../appengine/internal/identity_flex.go | 12 - .../appengine/internal/identity_vm.go | 134 - .../appengine/internal/internal.go | 110 - .../appengine/internal/log/log_service.pb.go | 1313 - .../appengine/internal/log/log_service.proto | 150 - .../appengine/internal/main.go | 17 - .../appengine/internal/main_common.go | 7 - .../appengine/internal/main_vm.go | 70 - .../appengine/internal/metadata.go | 60 - .../appengine/internal/net.go | 56 - .../appengine/internal/regen.sh | 40 - .../internal/remote_api/remote_api.pb.go | 361 - .../internal/remote_api/remote_api.proto | 44 - .../appengine/internal/transaction.go | 115 - .../internal/urlfetch/urlfetch_service.pb.go | 527 - .../internal/urlfetch/urlfetch_service.proto | 64 - .../appengine/urlfetch/urlfetch.go | 209 - vendor/google.golang.org/genproto/LICENSE | 202 - .../googleapis/api/annotations/client.pb.go | 329 +- .../api/annotations/field_behavior.pb.go | 24 +- .../api/annotations/field_info.pb.go | 8 +- .../genproto/googleapis/api/tidyfix.go | 23 - .../genproto/internal/doc.go | 17 - .../grpc/balancer/balancer.go | 9 +- .../grpc/balancer_wrapper.go | 77 +- .../grpc_binarylog_v1/binarylog.pb.go | 4 +- vendor/google.golang.org/grpc/clientconn.go | 301 +- .../grpc/credentials/credentials.go | 4 +- vendor/google.golang.org/grpc/dialoptions.go | 20 +- .../grpc/encoding/proto/proto.go | 24 +- .../grpc/health/grpc_health_v1/health.pb.go | 4 +- .../health/grpc_health_v1/health_grpc.pb.go | 2 +- .../balancer/gracefulswitch/config.go | 83 + .../balancer/gracefulswitch/gracefulswitch.go | 45 +- .../grpc/internal/binarylog/method_logger.go | 9 +- .../grpc/internal/binarylog/sink.go | 2 +- .../grpc/internal/channelz/channel.go | 255 + .../grpc/internal/channelz/channelmap.go | 402 + .../grpc/internal/channelz/funcs.go | 697 +- .../grpc/internal/channelz/id.go | 75 - .../grpc/internal/channelz/logging.go | 28 +- .../grpc/internal/channelz/server.go | 119 + .../grpc/internal/channelz/socket.go | 130 + .../grpc/internal/channelz/subchannel.go | 151 + .../{types_linux.go => syscall_linux.go} | 14 + ...{types_nonlinux.go => syscall_nonlinux.go} | 6 +- .../grpc/internal/channelz/trace.go | 204 + .../grpc/internal/channelz/types.go | 727 - .../grpc/internal/grpcrand/grpcrand.go | 5 + .../grpc/internal/grpcrand/grpcrand_go1.21.go | 73 + .../grpc/internal/internal.go | 8 +- .../grpc/internal/pretty/pretty.go | 35 +- .../internal/resolver/dns/dns_resolver.go | 29 +- .../grpc/internal/status/status.go | 15 +- .../grpc/internal/transport/controlbuf.go | 5 +- .../grpc/internal/transport/handler_server.go | 17 +- .../grpc/internal/transport/http2_client.go | 80 +- .../grpc/internal/transport/http2_server.go | 112 +- .../grpc/internal/transport/http_util.go | 3 +- .../grpc/internal/transport/transport.go | 39 +- .../grpc/internal/xds_handshake_cluster.go | 40 - vendor/google.golang.org/grpc/pickfirst.go | 14 +- .../grpc/resolver/dns/dns_resolver.go | 18 + .../grpc/resolver/resolver.go | 14 +- .../grpc/resolver_wrapper.go | 7 +- vendor/google.golang.org/grpc/rpc_util.go | 82 +- vendor/google.golang.org/grpc/server.go | 115 +- .../google.golang.org/grpc/service_config.go | 41 +- vendor/google.golang.org/grpc/stream.go | 9 +- vendor/google.golang.org/grpc/trace.go | 26 +- .../google.golang.org/grpc/trace_notrace.go | 52 + .../google.golang.org/grpc/trace_withtrace.go | 39 + vendor/google.golang.org/grpc/version.go | 2 +- vendor/google.golang.org/grpc/vet.sh | 7 +- .../protobuf/protoadapt/convert.go | 31 + .../protobuf/reflect/protodesc/desc.go | 285 - .../protobuf/reflect/protodesc/desc_init.go | 304 - .../reflect/protodesc/desc_resolve.go | 286 - .../reflect/protodesc/desc_validate.go | 374 - .../protobuf/reflect/protodesc/editions.go | 148 - .../protobuf/reflect/protodesc/proto.go | 252 - .../types/gofeaturespb/go_features.pb.go | 177 - .../types/gofeaturespb/go_features.proto | 28 - vendor/modules.txt | 133 +- 655 files changed, 123746 insertions(+), 84421 deletions(-) rename vendor/github.com/{Shopify => IBM}/sarama/.gitignore (100%) rename vendor/github.com/{Shopify => IBM}/sarama/.golangci.yml (78%) create mode 100644 vendor/github.com/IBM/sarama/.pre-commit-config.yaml create mode 100644 vendor/github.com/IBM/sarama/CHANGELOG.md create mode 100644 vendor/github.com/IBM/sarama/CODE_OF_CONDUCT.md create mode 100644 vendor/github.com/IBM/sarama/CONTRIBUTING.md create mode 100644 vendor/github.com/IBM/sarama/Dockerfile.kafka rename vendor/github.com/{Shopify/sarama/LICENSE => IBM/sarama/LICENSE.md} (95%) rename vendor/github.com/{Shopify => IBM}/sarama/Makefile (100%) rename vendor/github.com/{Shopify => IBM}/sarama/README.md (63%) create mode 100644 vendor/github.com/IBM/sarama/SECURITY.md rename vendor/github.com/{Shopify => IBM}/sarama/Vagrantfile (100%) rename vendor/github.com/{Shopify => IBM}/sarama/acl_bindings.go (100%) rename vendor/github.com/{Shopify => IBM}/sarama/acl_create_request.go (94%) rename vendor/github.com/{Shopify => IBM}/sarama/acl_create_response.go (86%) rename vendor/github.com/{Shopify => IBM}/sarama/acl_delete_request.go (92%) rename vendor/github.com/{Shopify => IBM}/sarama/acl_delete_response.go (92%) rename vendor/github.com/{Shopify => IBM}/sarama/acl_describe_request.go (82%) rename vendor/github.com/{Shopify => IBM}/sarama/acl_describe_response.go (90%) rename vendor/github.com/{Shopify => IBM}/sarama/acl_filter.go (100%) rename vendor/github.com/{Shopify => IBM}/sarama/acl_types.go (93%) rename vendor/github.com/{Shopify => IBM}/sarama/add_offsets_to_txn_request.go (80%) rename vendor/github.com/{Shopify => IBM}/sarama/add_offsets_to_txn_response.go (72%) rename vendor/github.com/{Shopify => IBM}/sarama/add_partitions_to_txn_request.go (83%) rename vendor/github.com/{Shopify => IBM}/sarama/add_partitions_to_txn_response.go (85%) rename vendor/github.com/{Shopify => IBM}/sarama/admin.go (87%) rename vendor/github.com/{Shopify => IBM}/sarama/alter_client_quotas_request.go (97%) rename vendor/github.com/{Shopify => IBM}/sarama/alter_client_quotas_response.go (94%) rename vendor/github.com/{Shopify => IBM}/sarama/alter_configs_request.go (90%) rename vendor/github.com/{Shopify => IBM}/sarama/alter_configs_response.go (78%) rename vendor/github.com/{Shopify => IBM}/sarama/alter_partition_reassignments_request.go (96%) rename vendor/github.com/{Shopify => IBM}/sarama/alter_partition_reassignments_response.go (93%) rename vendor/github.com/{Shopify => IBM}/sarama/alter_user_scram_credentials_request.go (97%) rename vendor/github.com/{Shopify => IBM}/sarama/alter_user_scram_credentials_response.go (91%) rename vendor/github.com/{Shopify => IBM}/sarama/api_versions_request.go (89%) rename vendor/github.com/{Shopify => IBM}/sarama/api_versions_response.go (91%) rename vendor/github.com/{Shopify => IBM}/sarama/async_producer.go (98%) rename vendor/github.com/{Shopify => IBM}/sarama/balance_strategy.go (94%) rename vendor/github.com/{Shopify => IBM}/sarama/broker.go (95%) rename vendor/github.com/{Shopify => IBM}/sarama/client.go (86%) rename vendor/github.com/{Shopify => IBM}/sarama/compress.go (99%) rename vendor/github.com/{Shopify => IBM}/sarama/config.go (95%) rename vendor/github.com/{Shopify => IBM}/sarama/config_resource_type.go (100%) rename vendor/github.com/{Shopify => IBM}/sarama/consumer.go (96%) rename vendor/github.com/{Shopify => IBM}/sarama/consumer_group.go (86%) rename vendor/github.com/{Shopify => IBM}/sarama/consumer_group_members.go (73%) rename vendor/github.com/{Shopify => IBM}/sarama/consumer_metadata_request.go (75%) rename vendor/github.com/{Shopify => IBM}/sarama/consumer_metadata_response.go (86%) rename vendor/github.com/{Shopify => IBM}/sarama/control_record.go (100%) rename vendor/github.com/{Shopify => IBM}/sarama/crc32_field.go (100%) rename vendor/github.com/{Shopify => IBM}/sarama/create_partitions_request.go (90%) rename vendor/github.com/{Shopify => IBM}/sarama/create_partitions_response.go (86%) rename vendor/github.com/{Shopify => IBM}/sarama/create_topics_request.go (74%) rename vendor/github.com/{Shopify => IBM}/sarama/create_topics_response.go (78%) create mode 100644 vendor/github.com/IBM/sarama/decompress.go rename vendor/github.com/{Shopify => IBM}/sarama/delete_groups_request.go (71%) rename vendor/github.com/{Shopify => IBM}/sarama/delete_groups_response.go (80%) rename vendor/github.com/{Shopify => IBM}/sarama/delete_offsets_request.go (93%) rename vendor/github.com/{Shopify => IBM}/sarama/delete_offsets_response.go (91%) rename vendor/github.com/{Shopify => IBM}/sarama/delete_records_request.go (92%) rename vendor/github.com/{Shopify => IBM}/sarama/delete_records_response.go (92%) rename vendor/github.com/{Shopify => IBM}/sarama/delete_topics_request.go (84%) rename vendor/github.com/{Shopify => IBM}/sarama/delete_topics_response.go (84%) rename vendor/github.com/{Shopify => IBM}/sarama/describe_client_quotas_request.go (96%) rename vendor/github.com/{Shopify => IBM}/sarama/describe_client_quotas_response.go (95%) rename vendor/github.com/{Shopify => IBM}/sarama/describe_configs_request.go (94%) rename vendor/github.com/{Shopify => IBM}/sarama/describe_configs_response.go (92%) rename vendor/github.com/{Shopify => IBM}/sarama/describe_groups_request.go (81%) rename vendor/github.com/{Shopify => IBM}/sarama/describe_groups_response.go (94%) rename vendor/github.com/{Shopify => IBM}/sarama/describe_log_dirs_request.go (92%) rename vendor/github.com/{Shopify => IBM}/sarama/describe_log_dirs_response.go (95%) rename vendor/github.com/{Shopify => IBM}/sarama/describe_user_scram_credentials_request.go (94%) rename vendor/github.com/{Shopify => IBM}/sarama/describe_user_scram_credentials_response.go (95%) rename vendor/github.com/{Shopify => IBM}/sarama/dev.yml (100%) rename vendor/github.com/{Shopify => IBM}/sarama/docker-compose.yml (63%) rename vendor/github.com/{Shopify => IBM}/sarama/encoder_decoder.go (100%) rename vendor/github.com/{Shopify => IBM}/sarama/end_txn_request.go (80%) rename vendor/github.com/{Shopify => IBM}/sarama/end_txn_response.go (71%) create mode 100644 vendor/github.com/IBM/sarama/entrypoint.sh rename vendor/github.com/{Shopify => IBM}/sarama/errors.go (69%) rename vendor/github.com/{Shopify => IBM}/sarama/fetch_request.go (96%) rename vendor/github.com/{Shopify => IBM}/sarama/fetch_response.go (98%) rename vendor/github.com/{Shopify => IBM}/sarama/find_coordinator_request.go (90%) rename vendor/github.com/{Shopify => IBM}/sarama/find_coordinator_response.go (89%) rename vendor/github.com/{Shopify => IBM}/sarama/gssapi_kerberos.go (94%) rename vendor/github.com/{Shopify => IBM}/sarama/heartbeat_request.go (83%) rename vendor/github.com/{Shopify => IBM}/sarama/heartbeat_response.go (71%) rename vendor/github.com/{Shopify => IBM}/sarama/incremental_alter_configs_request.go (96%) rename vendor/github.com/{Shopify => IBM}/sarama/incremental_alter_configs_response.go (86%) rename vendor/github.com/{Shopify => IBM}/sarama/init_producer_id_request.go (91%) rename vendor/github.com/{Shopify => IBM}/sarama/init_producer_id_response.go (85%) rename vendor/github.com/{Shopify => IBM}/sarama/interceptors.go (89%) rename vendor/github.com/{Shopify => IBM}/sarama/join_group_request.go (70%) rename vendor/github.com/{Shopify => IBM}/sarama/join_group_response.go (68%) rename vendor/github.com/{Shopify => IBM}/sarama/kerberos_client.go (79%) rename vendor/github.com/{Shopify => IBM}/sarama/leave_group_request.go (88%) rename vendor/github.com/{Shopify => IBM}/sarama/leave_group_response.go (83%) rename vendor/github.com/{Shopify => IBM}/sarama/length_field.go (100%) create mode 100644 vendor/github.com/IBM/sarama/list_groups_request.go create mode 100644 vendor/github.com/IBM/sarama/list_groups_response.go rename vendor/github.com/{Shopify => IBM}/sarama/list_partition_reassignments_request.go (95%) rename vendor/github.com/{Shopify => IBM}/sarama/list_partition_reassignments_response.go (94%) rename vendor/github.com/{Shopify => IBM}/sarama/message.go (100%) rename vendor/github.com/{Shopify => IBM}/sarama/message_set.go (100%) create mode 100644 vendor/github.com/IBM/sarama/metadata_request.go rename vendor/github.com/{Shopify => IBM}/sarama/metadata_response.go (56%) rename vendor/github.com/{Shopify => IBM}/sarama/metrics.go (97%) rename vendor/github.com/{Shopify => IBM}/sarama/mockbroker.go (87%) rename vendor/github.com/{Shopify => IBM}/sarama/mockkerberos.go (100%) rename vendor/github.com/{Shopify => IBM}/sarama/mockresponses.go (90%) rename vendor/github.com/{Shopify => IBM}/sarama/offset_commit_request.go (93%) rename vendor/github.com/{Shopify => IBM}/sarama/offset_commit_response.go (87%) rename vendor/github.com/{Shopify => IBM}/sarama/offset_fetch_request.go (73%) rename vendor/github.com/{Shopify => IBM}/sarama/offset_fetch_response.go (94%) rename vendor/github.com/{Shopify => IBM}/sarama/offset_manager.go (88%) rename vendor/github.com/{Shopify => IBM}/sarama/offset_request.go (76%) rename vendor/github.com/{Shopify => IBM}/sarama/offset_response.go (73%) rename vendor/github.com/{Shopify => IBM}/sarama/packet_decoder.go (98%) rename vendor/github.com/{Shopify => IBM}/sarama/packet_encoder.go (100%) rename vendor/github.com/{Shopify => IBM}/sarama/partitioner.go (86%) rename vendor/github.com/{Shopify => IBM}/sarama/prep_encoder.go (100%) rename vendor/github.com/{Shopify => IBM}/sarama/produce_request.go (95%) rename vendor/github.com/{Shopify => IBM}/sarama/produce_response.go (91%) rename vendor/github.com/{Shopify => IBM}/sarama/produce_set.go (97%) rename vendor/github.com/{Shopify => IBM}/sarama/quota_types.go (100%) rename vendor/github.com/{Shopify => IBM}/sarama/real_decoder.go (100%) rename vendor/github.com/{Shopify => IBM}/sarama/real_encoder.go (100%) rename vendor/github.com/{Shopify => IBM}/sarama/record.go (100%) rename vendor/github.com/{Shopify => IBM}/sarama/record_batch.go (95%) rename vendor/github.com/{Shopify => IBM}/sarama/records.go (100%) rename vendor/github.com/{Shopify => IBM}/sarama/request.go (52%) rename vendor/github.com/{Shopify => IBM}/sarama/response_header.go (100%) rename vendor/github.com/{Shopify => IBM}/sarama/sarama.go (99%) rename vendor/github.com/{Shopify => IBM}/sarama/sasl_authenticate_request.go (89%) rename vendor/github.com/{Shopify => IBM}/sarama/sasl_authenticate_response.go (92%) rename vendor/github.com/{Shopify => IBM}/sarama/sasl_handshake_request.go (78%) rename vendor/github.com/{Shopify => IBM}/sarama/sasl_handshake_response.go (77%) rename vendor/github.com/{Shopify => IBM}/sarama/scram_formatter.go (100%) rename vendor/github.com/{Shopify => IBM}/sarama/sticky_assignor_user_data.go (100%) rename vendor/github.com/{Shopify => IBM}/sarama/sync_group_request.go (93%) rename vendor/github.com/{Shopify => IBM}/sarama/sync_group_response.go (77%) rename vendor/github.com/{Shopify => IBM}/sarama/sync_producer.go (98%) rename vendor/github.com/{Shopify => IBM}/sarama/timestamp.go (100%) rename vendor/github.com/{Shopify => IBM}/sarama/transaction_manager.go (91%) rename vendor/github.com/{Shopify => IBM}/sarama/txn_offset_commit_request.go (73%) rename vendor/github.com/{Shopify => IBM}/sarama/txn_offset_commit_response.go (80%) rename vendor/github.com/{Shopify => IBM}/sarama/utils.go (86%) rename vendor/github.com/{Shopify => IBM}/sarama/version.go (100%) rename vendor/github.com/{Shopify => IBM}/sarama/zstd.go (100%) delete mode 100644 vendor/github.com/Shopify/sarama/CHANGELOG.md delete mode 100644 vendor/github.com/Shopify/sarama/Dockerfile.kafka delete mode 100644 vendor/github.com/Shopify/sarama/decompress.go delete mode 100644 vendor/github.com/Shopify/sarama/entrypoint.sh delete mode 100644 vendor/github.com/Shopify/sarama/list_groups_request.go delete mode 100644 vendor/github.com/Shopify/sarama/list_groups_response.go delete mode 100644 vendor/github.com/Shopify/sarama/metadata_request.go rename vendor/github.com/bytedance/sonic/ast/{api_amd64.go => api.go} (77%) create mode 100644 vendor/github.com/bytedance/sonic/ast/b64_amd64.go rename vendor/{google.golang.org/grpc/internal/channelz/util_nonlinux.go => github.com/bytedance/sonic/ast/b64_compat.go} (66%) create mode 100644 vendor/github.com/bytedance/sonic/internal/native/dispatch_arm64.go rename vendor/github.com/bytedance/sonic/internal/native/{fastfloat_amd64_test.tmpl => fastfloat_test.tmpl} (100%) rename vendor/github.com/bytedance/sonic/internal/native/{fastint_amd64_test.tmpl => fastint_test.tmpl} (100%) create mode 100644 vendor/github.com/bytedance/sonic/internal/native/native_arm64.tmpl create mode 100644 vendor/github.com/bytedance/sonic/internal/native/native_export_arm64.tmpl rename vendor/github.com/bytedance/sonic/internal/native/{native_amd64_test.tmpl => native_test.tmpl} (100%) create mode 100644 vendor/github.com/bytedance/sonic/internal/native/neon/f32toa_arm64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/neon/f32toa_arm64.s create mode 100644 vendor/github.com/bytedance/sonic/internal/native/neon/f32toa_subr_arm64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/neon/f64toa_arm64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/neon/f64toa_arm64.s create mode 100644 vendor/github.com/bytedance/sonic/internal/native/neon/f64toa_subr_arm64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/neon/get_by_path_arm64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/neon/get_by_path_arm64.s create mode 100644 vendor/github.com/bytedance/sonic/internal/native/neon/get_by_path_subr_arm64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/neon/html_escape_arm64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/neon/html_escape_arm64.s create mode 100644 vendor/github.com/bytedance/sonic/internal/native/neon/html_escape_subr_arm64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/neon/i64toa_arm64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/neon/i64toa_arm64.s create mode 100644 vendor/github.com/bytedance/sonic/internal/native/neon/i64toa_subr_arm64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/neon/lspace_arm64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/neon/lspace_arm64.s create mode 100644 vendor/github.com/bytedance/sonic/internal/native/neon/lspace_subr_arm64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/neon/native_export_arm64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/neon/quote_arm64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/neon/quote_arm64.s create mode 100644 vendor/github.com/bytedance/sonic/internal/native/neon/quote_subr_arm64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/neon/skip_array_arm64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/neon/skip_array_arm64.s create mode 100644 vendor/github.com/bytedance/sonic/internal/native/neon/skip_array_subr_arm64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/neon/skip_number_arm64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/neon/skip_number_arm64.s create mode 100644 vendor/github.com/bytedance/sonic/internal/native/neon/skip_number_subr_arm64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/neon/skip_object_arm64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/neon/skip_object_arm64.s create mode 100644 vendor/github.com/bytedance/sonic/internal/native/neon/skip_object_subr_arm64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/neon/skip_one_arm64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/neon/skip_one_arm64.s create mode 100644 vendor/github.com/bytedance/sonic/internal/native/neon/skip_one_fast_arm64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/neon/skip_one_fast_arm64.s create mode 100644 vendor/github.com/bytedance/sonic/internal/native/neon/skip_one_fast_subr_arm64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/neon/skip_one_subr_arm64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/neon/u64toa_arm64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/neon/u64toa_arm64.s create mode 100644 vendor/github.com/bytedance/sonic/internal/native/neon/u64toa_subr_arm64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/neon/unquote_arm64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/neon/unquote_arm64.s create mode 100644 vendor/github.com/bytedance/sonic/internal/native/neon/unquote_subr_arm64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/neon/validate_one_arm64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/neon/validate_one_arm64.s create mode 100644 vendor/github.com/bytedance/sonic/internal/native/neon/validate_one_subr_arm64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/neon/validate_utf8_arm64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/neon/validate_utf8_arm64.s create mode 100644 vendor/github.com/bytedance/sonic/internal/native/neon/validate_utf8_fast_arm64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/neon/validate_utf8_fast_arm64.s create mode 100644 vendor/github.com/bytedance/sonic/internal/native/neon/validate_utf8_fast_subr_arm64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/neon/validate_utf8_subr_arm64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/neon/value_arm64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/neon/value_arm64.s create mode 100644 vendor/github.com/bytedance/sonic/internal/native/neon/value_subr_arm64.go rename vendor/{google.golang.org/grpc/internal/channelz/util_linux.go => github.com/bytedance/sonic/internal/native/neon/vnumber_arm64.go} (60%) create mode 100644 vendor/github.com/bytedance/sonic/internal/native/neon/vnumber_arm64.s create mode 100644 vendor/github.com/bytedance/sonic/internal/native/neon/vnumber_subr_arm64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/neon/vsigned_arm64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/neon/vsigned_arm64.s create mode 100644 vendor/github.com/bytedance/sonic/internal/native/neon/vsigned_subr_arm64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/neon/vstring_arm64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/neon/vstring_arm64.s create mode 100644 vendor/github.com/bytedance/sonic/internal/native/neon/vstring_subr_arm64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/neon/vunsigned_arm64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/neon/vunsigned_arm64.s create mode 100644 vendor/github.com/bytedance/sonic/internal/native/neon/vunsigned_subr_arm64.go rename vendor/github.com/bytedance/sonic/internal/native/{recover_amd64_test.tmpl => recover_test.tmpl} (99%) rename vendor/github.com/bytedance/sonic/internal/rt/{asm_arm64.s => asm_compat.s} (65%) delete mode 100644 vendor/github.com/golang/protobuf/AUTHORS delete mode 100644 vendor/github.com/golang/protobuf/CONTRIBUTORS delete mode 100644 vendor/github.com/golang/protobuf/LICENSE delete mode 100644 vendor/github.com/golang/protobuf/jsonpb/decode.go delete mode 100644 vendor/github.com/golang/protobuf/jsonpb/encode.go delete mode 100644 vendor/github.com/golang/protobuf/jsonpb/json.go delete mode 100644 vendor/github.com/golang/protobuf/proto/buffer.go delete mode 100644 vendor/github.com/golang/protobuf/proto/defaults.go delete mode 100644 vendor/github.com/golang/protobuf/proto/deprecated.go delete mode 100644 vendor/github.com/golang/protobuf/proto/discard.go delete mode 100644 vendor/github.com/golang/protobuf/proto/extensions.go delete mode 100644 vendor/github.com/golang/protobuf/proto/properties.go delete mode 100644 vendor/github.com/golang/protobuf/proto/proto.go delete mode 100644 vendor/github.com/golang/protobuf/proto/registry.go delete mode 100644 vendor/github.com/golang/protobuf/proto/text_decode.go delete mode 100644 vendor/github.com/golang/protobuf/proto/text_encode.go delete mode 100644 vendor/github.com/golang/protobuf/proto/wire.go delete mode 100644 vendor/github.com/golang/protobuf/proto/wrappers.go delete mode 100644 vendor/github.com/golang/protobuf/ptypes/any.go delete mode 100644 vendor/github.com/golang/protobuf/ptypes/any/any.pb.go delete mode 100644 vendor/github.com/golang/protobuf/ptypes/doc.go delete mode 100644 vendor/github.com/golang/protobuf/ptypes/duration.go delete mode 100644 vendor/github.com/golang/protobuf/ptypes/duration/duration.pb.go delete mode 100644 vendor/github.com/golang/protobuf/ptypes/timestamp.go delete mode 100644 vendor/github.com/golang/protobuf/ptypes/timestamp/timestamp.pb.go create mode 100644 vendor/github.com/leodido/go-urn/urn8141.go delete mode 100644 vendor/github.com/mitchellh/mapstructure/.travis.yml create mode 100644 vendor/github.com/onsi/ginkgo/v2/ginkgo/internal/gocovmerge.go create mode 100644 vendor/github.com/pelletier/go-toml/v2/unstable/unmarshaler.go create mode 100644 vendor/github.com/prometheus/common/model/labelset_string.go create mode 100644 vendor/github.com/prometheus/common/model/labelset_string_go120.go create mode 100644 vendor/github.com/prometheus/procfs/net_tls_stat.go create mode 100644 vendor/go.uber.org/fx/.golangci.yml delete mode 100644 vendor/go.uber.org/fx/checklicense.sh create mode 100644 vendor/go.uber.org/fx/fxevent/doc.go create mode 100644 vendor/go.uber.org/fx/fxevent/slog.go rename vendor/go.uber.org/zap/{LICENSE.txt => LICENSE} (100%) delete mode 100644 vendor/golang.org/x/oauth2/internal/client_appengine.go create mode 100644 vendor/golang.org/x/tools/cover/profile.go create mode 100644 vendor/golang.org/x/tools/internal/aliases/aliases.go create mode 100644 vendor/golang.org/x/tools/internal/aliases/aliases_go121.go create mode 100644 vendor/golang.org/x/tools/internal/aliases/aliases_go122.go delete mode 100644 vendor/golang.org/x/tools/internal/gcimporter/support_go117.go delete mode 100644 vendor/golang.org/x/tools/internal/gcimporter/ureader_no.go delete mode 100644 vendor/golang.org/x/tools/internal/imports/zstdlib.go create mode 100644 vendor/golang.org/x/tools/internal/stdlib/manifest.go create mode 100644 vendor/golang.org/x/tools/internal/stdlib/stdlib.go delete mode 100644 vendor/golang.org/x/tools/internal/typeparams/common.go delete mode 100644 vendor/golang.org/x/tools/internal/typeparams/coretype.go delete mode 100644 vendor/golang.org/x/tools/internal/typeparams/normalize.go delete mode 100644 vendor/golang.org/x/tools/internal/typeparams/termlist.go delete mode 100644 vendor/golang.org/x/tools/internal/typeparams/typeterm.go create mode 100644 vendor/golang.org/x/tools/internal/typesinternal/errorcode.go create mode 100644 vendor/golang.org/x/tools/internal/typesinternal/errorcode_string.go create mode 100644 vendor/golang.org/x/tools/internal/typesinternal/recv.go create mode 100644 vendor/golang.org/x/tools/internal/typesinternal/toonew.go create mode 100644 vendor/golang.org/x/tools/internal/typesinternal/types.go create mode 100644 vendor/golang.org/x/tools/internal/versions/features.go create mode 100644 vendor/golang.org/x/tools/internal/versions/gover.go create mode 100644 vendor/golang.org/x/tools/internal/versions/toolchain.go create mode 100644 vendor/golang.org/x/tools/internal/versions/toolchain_go119.go create mode 100644 vendor/golang.org/x/tools/internal/versions/toolchain_go120.go create mode 100644 vendor/golang.org/x/tools/internal/versions/toolchain_go121.go create mode 100644 vendor/golang.org/x/tools/internal/versions/types.go create mode 100644 vendor/golang.org/x/tools/internal/versions/types_go121.go create mode 100644 vendor/golang.org/x/tools/internal/versions/types_go122.go create mode 100644 vendor/golang.org/x/tools/internal/versions/versions.go delete mode 100644 vendor/google.golang.org/appengine/LICENSE delete mode 100644 vendor/google.golang.org/appengine/internal/api.go delete mode 100644 vendor/google.golang.org/appengine/internal/api_classic.go delete mode 100644 vendor/google.golang.org/appengine/internal/api_common.go delete mode 100644 vendor/google.golang.org/appengine/internal/app_id.go delete mode 100644 vendor/google.golang.org/appengine/internal/base/api_base.pb.go delete mode 100644 vendor/google.golang.org/appengine/internal/base/api_base.proto delete mode 100644 vendor/google.golang.org/appengine/internal/datastore/datastore_v3.pb.go delete mode 100644 vendor/google.golang.org/appengine/internal/datastore/datastore_v3.proto delete mode 100644 vendor/google.golang.org/appengine/internal/identity.go delete mode 100644 vendor/google.golang.org/appengine/internal/identity_classic.go delete mode 100644 vendor/google.golang.org/appengine/internal/identity_flex.go delete mode 100644 vendor/google.golang.org/appengine/internal/identity_vm.go delete mode 100644 vendor/google.golang.org/appengine/internal/internal.go delete mode 100644 vendor/google.golang.org/appengine/internal/log/log_service.pb.go delete mode 100644 vendor/google.golang.org/appengine/internal/log/log_service.proto delete mode 100644 vendor/google.golang.org/appengine/internal/main.go delete mode 100644 vendor/google.golang.org/appengine/internal/main_common.go delete mode 100644 vendor/google.golang.org/appengine/internal/main_vm.go delete mode 100644 vendor/google.golang.org/appengine/internal/metadata.go delete mode 100644 vendor/google.golang.org/appengine/internal/net.go delete mode 100644 vendor/google.golang.org/appengine/internal/regen.sh delete mode 100644 vendor/google.golang.org/appengine/internal/remote_api/remote_api.pb.go delete mode 100644 vendor/google.golang.org/appengine/internal/remote_api/remote_api.proto delete mode 100644 vendor/google.golang.org/appengine/internal/transaction.go delete mode 100644 vendor/google.golang.org/appengine/internal/urlfetch/urlfetch_service.pb.go delete mode 100644 vendor/google.golang.org/appengine/internal/urlfetch/urlfetch_service.proto delete mode 100644 vendor/google.golang.org/appengine/urlfetch/urlfetch.go delete mode 100644 vendor/google.golang.org/genproto/LICENSE delete mode 100644 vendor/google.golang.org/genproto/googleapis/api/tidyfix.go delete mode 100644 vendor/google.golang.org/genproto/internal/doc.go create mode 100644 vendor/google.golang.org/grpc/internal/balancer/gracefulswitch/config.go create mode 100644 vendor/google.golang.org/grpc/internal/channelz/channel.go create mode 100644 vendor/google.golang.org/grpc/internal/channelz/channelmap.go delete mode 100644 vendor/google.golang.org/grpc/internal/channelz/id.go create mode 100644 vendor/google.golang.org/grpc/internal/channelz/server.go create mode 100644 vendor/google.golang.org/grpc/internal/channelz/socket.go create mode 100644 vendor/google.golang.org/grpc/internal/channelz/subchannel.go rename vendor/google.golang.org/grpc/internal/channelz/{types_linux.go => syscall_linux.go} (83%) rename vendor/google.golang.org/grpc/internal/channelz/{types_nonlinux.go => syscall_nonlinux.go} (90%) create mode 100644 vendor/google.golang.org/grpc/internal/channelz/trace.go delete mode 100644 vendor/google.golang.org/grpc/internal/channelz/types.go create mode 100644 vendor/google.golang.org/grpc/internal/grpcrand/grpcrand_go1.21.go delete mode 100644 vendor/google.golang.org/grpc/internal/xds_handshake_cluster.go create mode 100644 vendor/google.golang.org/grpc/trace_notrace.go create mode 100644 vendor/google.golang.org/grpc/trace_withtrace.go create mode 100644 vendor/google.golang.org/protobuf/protoadapt/convert.go delete mode 100644 vendor/google.golang.org/protobuf/reflect/protodesc/desc.go delete mode 100644 vendor/google.golang.org/protobuf/reflect/protodesc/desc_init.go delete mode 100644 vendor/google.golang.org/protobuf/reflect/protodesc/desc_resolve.go delete mode 100644 vendor/google.golang.org/protobuf/reflect/protodesc/desc_validate.go delete mode 100644 vendor/google.golang.org/protobuf/reflect/protodesc/editions.go delete mode 100644 vendor/google.golang.org/protobuf/reflect/protodesc/proto.go delete mode 100644 vendor/google.golang.org/protobuf/types/gofeaturespb/go_features.pb.go delete mode 100644 vendor/google.golang.org/protobuf/types/gofeaturespb/go_features.proto diff --git a/data/service/service/standard.go b/data/service/service/standard.go index 874f25b2e..80911f4b2 100644 --- a/data/service/service/standard.go +++ b/data/service/service/standard.go @@ -7,7 +7,7 @@ import ( "github.com/tidepool-org/platform/clinics" - "github.com/Shopify/sarama" + "github.com/IBM/sarama" eventsCommon "github.com/tidepool-org/go-common/events" "github.com/tidepool-org/platform/application" diff --git a/go.mod b/go.mod index 3be88f4df..c6008143e 100644 --- a/go.mod +++ b/go.mod @@ -3,9 +3,9 @@ module github.com/tidepool-org/platform go 1.22 require ( - github.com/Shopify/sarama v1.38.1 + github.com/IBM/sarama v1.43.1 github.com/ant0ine/go-json-rest v3.3.2+incompatible - github.com/aws/aws-sdk-go v1.50.6 + github.com/aws/aws-sdk-go v1.51.20 github.com/blang/semver v3.5.1+incompatible github.com/deckarep/golang-set/v2 v2.6.0 github.com/githubnemo/CompileDaemon v1.4.0 @@ -15,26 +15,26 @@ require ( github.com/gowebpki/jcs v1.0.1 github.com/kelseyhightower/envconfig v1.4.0 github.com/mitchellh/go-homedir v1.1.0 - github.com/mitchellh/mapstructure v1.1.2 + github.com/mitchellh/mapstructure v1.5.0 github.com/mjibson/esc v0.2.0 - github.com/onsi/ginkgo/v2 v2.15.0 - github.com/onsi/gomega v1.31.1 - github.com/prometheus/client_golang v1.18.0 + github.com/onsi/ginkgo/v2 v2.17.1 + github.com/onsi/gomega v1.32.0 + github.com/prometheus/client_golang v1.19.0 github.com/rinchsan/device-check-go v1.3.0 - github.com/tidepool-org/clinic/client v0.0.0-20240412011046-bbcf4250e5c4 + github.com/tidepool-org/clinic/client v0.0.0-20240412024055-e6391b37e456 github.com/tidepool-org/devices/api v0.0.0-20240412011010-75b16d8daec0 - github.com/tidepool-org/go-common v0.12.1 - github.com/tidepool-org/hydrophone/client v0.0.0-20240412013722-bff995d59e73 + github.com/tidepool-org/go-common v0.12.2-0.20240412180151-b4ae8ab630c0 + github.com/tidepool-org/hydrophone/client v0.0.0-20240412025448-85c89a8038b8 github.com/urfave/cli v1.22.14 - go.mongodb.org/mongo-driver v1.13.1 - go.uber.org/fx v1.20.1 - golang.org/x/crypto v0.21.0 - golang.org/x/exp v0.0.0-20240119083558-1b970713d09a + go.mongodb.org/mongo-driver v1.14.0 + go.uber.org/fx v1.21.0 + golang.org/x/crypto v0.22.0 + golang.org/x/exp v0.0.0-20240409090435-93d18d7e34b8 golang.org/x/lint v0.0.0-20210508222113-6edffad5e616 - golang.org/x/oauth2 v0.16.0 - golang.org/x/sync v0.6.0 - golang.org/x/tools v0.17.0 - google.golang.org/grpc v1.61.0 + golang.org/x/oauth2 v0.19.0 + golang.org/x/sync v0.7.0 + golang.org/x/tools v0.20.0 + google.golang.org/grpc v1.63.2 gopkg.in/yaml.v2 v2.4.0 syreclabs.com/go/faker v1.2.3 ) @@ -50,17 +50,17 @@ require ( github.com/avast/retry-go v3.0.0+incompatible // indirect github.com/aymerick/douceur v0.2.0 // indirect github.com/beorn7/perks v1.0.1 // indirect - github.com/bytedance/sonic v1.10.2 // indirect - github.com/cespare/xxhash/v2 v2.2.0 // indirect + github.com/bytedance/sonic v1.11.3 // indirect + github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/chenzhuoyu/base64x v0.0.0-20230717121745-296ad89f973d // indirect github.com/chenzhuoyu/iasm v0.9.1 // indirect - github.com/cloudevents/sdk-go/protocol/kafka_sarama/v2 v2.14.0 // indirect + github.com/cloudevents/sdk-go/protocol/kafka_sarama/v2 v2.15.2 // indirect github.com/cloudevents/sdk-go/v2 v2.15.2 // indirect - github.com/cpuguy83/go-md2man/v2 v2.0.3 // indirect + github.com/cpuguy83/go-md2man/v2 v2.0.4 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/deepmap/oapi-codegen v1.16.2 // indirect github.com/dvsekhvalnov/jose2go v1.6.0 // indirect - github.com/eapache/go-resiliency v1.5.0 // indirect + github.com/eapache/go-resiliency v1.6.0 // indirect github.com/eapache/go-xerial-snappy v0.0.0-20230731223053-c322873962e3 // indirect github.com/eapache/queue v1.1.0 // indirect github.com/fatih/color v1.16.0 // indirect @@ -73,14 +73,13 @@ require ( github.com/go-logr/logr v1.4.1 // indirect github.com/go-playground/locales v0.14.1 // indirect github.com/go-playground/universal-translator v0.18.1 // indirect - github.com/go-playground/validator/v10 v10.17.0 // indirect + github.com/go-playground/validator/v10 v10.19.0 // indirect github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 // indirect github.com/goccy/go-json v0.10.2 // indirect - github.com/golang/protobuf v1.5.3 // indirect github.com/golang/snappy v0.0.4 // indirect - github.com/gomarkdown/markdown v0.0.0-20231222211730-1d6d20845b47 // indirect + github.com/gomarkdown/markdown v0.0.0-20240328165702-4d01890c35c0 // indirect github.com/google/go-cmp v0.6.0 // indirect - github.com/google/pprof v0.0.0-20240125082051-42cd04596328 // indirect + github.com/google/pprof v0.0.0-20240409012703-83162a5b38cd // indirect github.com/gorilla/css v1.0.1 // indirect github.com/grpc-ecosystem/grpc-gateway/v2 v2.19.1 // indirect github.com/hashicorp/errwrap v1.1.0 // indirect @@ -101,11 +100,11 @@ require ( github.com/kataras/pio v0.0.13 // indirect github.com/kataras/sitemap v0.0.6 // indirect github.com/kataras/tunnel v0.0.4 // indirect - github.com/klauspost/compress v1.17.5 // indirect - github.com/klauspost/cpuid/v2 v2.2.6 // indirect + github.com/klauspost/compress v1.17.8 // indirect + github.com/klauspost/cpuid/v2 v2.2.7 // indirect github.com/labstack/echo/v4 v4.11.4 // indirect github.com/labstack/gommon v0.4.2 // indirect - github.com/leodido/go-urn v1.3.0 // indirect + github.com/leodido/go-urn v1.4.0 // indirect github.com/mailgun/raymond/v2 v2.0.48 // indirect github.com/mailru/easyjson v0.7.7 // indirect github.com/mattn/go-colorable v0.1.13 // indirect @@ -115,19 +114,19 @@ require ( github.com/modern-go/reflect2 v1.0.2 // indirect github.com/montanaflynn/stats v0.7.1 // indirect github.com/oapi-codegen/runtime v1.1.1 // indirect - github.com/pelletier/go-toml/v2 v2.1.1 // indirect + github.com/pelletier/go-toml/v2 v2.2.1 // indirect github.com/pierrec/lz4/v4 v4.1.21 // indirect github.com/pkg/errors v0.9.1 // indirect - github.com/prometheus/client_model v0.5.0 // indirect - github.com/prometheus/common v0.46.0 // indirect - github.com/prometheus/procfs v0.12.0 // indirect + github.com/prometheus/client_model v0.6.1 // indirect + github.com/prometheus/common v0.52.3 // indirect + github.com/prometheus/procfs v0.13.0 // indirect github.com/radovskyb/watcher v1.0.7 // indirect github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 // indirect github.com/russross/blackfriday/v2 v2.1.0 // indirect github.com/schollz/closestmatch v2.1.0+incompatible // indirect github.com/sirupsen/logrus v1.9.3 // indirect - github.com/tdewolff/minify/v2 v2.20.16 // indirect - github.com/tdewolff/parse/v2 v2.7.11 // indirect + github.com/tdewolff/minify/v2 v2.20.19 // indirect + github.com/tdewolff/parse/v2 v2.7.12 // indirect github.com/twitchyliquid64/golang-asm v0.15.1 // indirect github.com/ugorji/go/codec v1.2.12 // indirect github.com/valyala/bytebufferpool v1.0.0 // indirect @@ -141,28 +140,19 @@ require ( github.com/xdg/stringprep v1.0.3 // indirect github.com/yosssi/ace v0.0.5 // indirect github.com/youmark/pkcs8 v0.0.0-20201027041543-1326539a0a0a // indirect - go.uber.org/atomic v1.11.0 // indirect go.uber.org/dig v1.17.1 // indirect go.uber.org/multierr v1.11.0 // indirect - go.uber.org/zap v1.26.0 // indirect + go.uber.org/zap v1.27.0 // indirect golang.org/x/arch v0.7.0 // indirect - golang.org/x/mod v0.14.0 // indirect - golang.org/x/net v0.23.0 // indirect - golang.org/x/sys v0.18.0 // indirect - golang.org/x/term v0.18.0 // indirect + golang.org/x/mod v0.17.0 // indirect + golang.org/x/net v0.24.0 // indirect + golang.org/x/sys v0.19.0 // indirect + golang.org/x/term v0.19.0 // indirect golang.org/x/text v0.14.0 // indirect golang.org/x/time v0.5.0 // indirect - google.golang.org/appengine v1.6.8 // indirect - google.golang.org/genproto v0.0.0-20240125205218-1f4bbc51befe // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20240125205218-1f4bbc51befe // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20240125205218-1f4bbc51befe // indirect - google.golang.org/protobuf v1.32.0 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20240412170617-26222e5d3d56 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20240412170617-26222e5d3d56 // indirect + google.golang.org/protobuf v1.33.0 // indirect gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) - -// Resolve GO-2023-2116, GO-2023-2115, GO-2023-2052 -replace github.com/gofiber/fiber/v2 v2.49.1 => github.com/gofiber/fiber/v2 v2.52.0 - -// Resolve GO-2024-2611 -replace google.golang.org/protobuf v1.32.0 => google.golang.org/protobuf v1.33.0 diff --git a/go.sum b/go.sum index fd9d68d72..8ecb6c1ce 100644 --- a/go.sum +++ b/go.sum @@ -4,6 +4,8 @@ github.com/CloudyKit/fastprinter v0.0.0-20200109182630-33d98a066a53 h1:sR+/8Yb4s github.com/CloudyKit/fastprinter v0.0.0-20200109182630-33d98a066a53/go.mod h1:+3IMCy2vIlbG1XG/0ggNQv0SvxCAIpPM5b1nCz56Xno= github.com/CloudyKit/jet/v6 v6.2.0 h1:EpcZ6SR9n28BUGtNJSvlBqf90IpjeFr36Tizxhn/oME= github.com/CloudyKit/jet/v6 v6.2.0/go.mod h1:d3ypHeIRNo2+XyqnGA8s+aphtcVpjP5hPwP/Lzo7Ro4= +github.com/IBM/sarama v1.43.1 h1:Z5uz65Px7f4DhI/jQqEm/tV9t8aU+JUdTyW/K/fCXpA= +github.com/IBM/sarama v1.43.1/go.mod h1:GG5q1RURtDNPz8xxJs3mgX6Ytak8Z9eLhAkJPObe2xE= github.com/Joker/hpp v1.0.0 h1:65+iuJYdRXv/XyN62C1uEmmOx3432rNG/rKlX6V7Kkc= github.com/Joker/hpp v1.0.0/go.mod h1:8x5n+M1Hp5hC0g8okX3sR3vFQwynaX/UgSOM9MeBKzY= github.com/Joker/jade v1.1.3 h1:Qbeh12Vq6BxURXT1qZBRHsDxeURB8ztcL6f3EXSGeHk= @@ -11,10 +13,6 @@ github.com/Joker/jade v1.1.3/go.mod h1:T+2WLyt7VH6Lp0TRxQrUYEs64nRc83wkMQrfeIQKd github.com/RaveNoX/go-jsoncommentstrip v1.0.0/go.mod h1:78ihd09MekBnJnxpICcwzCMzGrKSKYe4AqU6PDYYpjk= github.com/Shopify/goreferrer v0.0.0-20220729165902-8cddb4f5de06 h1:KkH3I3sJuOLP3TjA/dfr4NAY8bghDwnXiU7cTKxQqo0= github.com/Shopify/goreferrer v0.0.0-20220729165902-8cddb4f5de06/go.mod h1:7erjKLwalezA0k99cWs5L11HWOAPNjdUZ6RxH1BXbbM= -github.com/Shopify/sarama v1.38.1 h1:lqqPUPQZ7zPqYlWpTh+LQ9bhYNu2xJL6k1SJN4WVe2A= -github.com/Shopify/sarama v1.38.1/go.mod h1:iwv9a67Ha8VNa+TifujYoWGxWnu2kNVAQdSdZ4X2o5g= -github.com/Shopify/toxiproxy/v2 v2.5.0 h1:i4LPT+qrSlKNtQf5QliVjdP08GyAH8+BUIc9gT0eahc= -github.com/Shopify/toxiproxy/v2 v2.5.0/go.mod h1:yhM2epWtAmel9CB8r2+L+PCmhH6yH2pITaPAo7jxJl0= github.com/ajg/form v1.5.1 h1:t9c7v8JUKu/XxOGBU0yjNpaMloxGEJhUkqFRq0ibGeU= github.com/ajg/form v1.5.1/go.mod h1:uL1WgH+h2mgNtvBq0339dVnzXdBETtL2LeUXaIv25UY= github.com/andybalholm/brotli v1.1.0 h1:eLKJA0d02Lf0mVpIDgYnqXcUn0GqVmEFny3VuID1U3M= @@ -25,12 +23,10 @@ github.com/apapsch/go-jsonmerge/v2 v2.0.0 h1:axGnT1gRIfimI7gJifB699GoE/oq+F2MU7D github.com/apapsch/go-jsonmerge/v2 v2.0.0/go.mod h1:lvDnEdqiQrp0O42VQGgmlKpxL1AP2+08jFMw88y4klk= github.com/avast/retry-go v3.0.0+incompatible h1:4SOWQ7Qs+oroOTQOYnAHqelpCO0biHSxpiH9JdtuBj0= github.com/avast/retry-go v3.0.0+incompatible/go.mod h1:XtSnn+n/sHqQIpZ10K1qAevBhOOCWBLXXy3hyiqqBrY= -github.com/aws/aws-sdk-go v1.50.6 h1:FaXvNwHG3Ri1paUEW16Ahk9zLVqSAdqa1M3phjZR35Q= -github.com/aws/aws-sdk-go v1.50.6/go.mod h1:LF8svs817+Nz+DmiMQKTO3ubZ/6IaTpq3TjupRn3Eqk= +github.com/aws/aws-sdk-go v1.51.20 h1:ziM90ujYHKKkoTZL+Wg2LwjbQecL+l298GGJeG4ktZs= +github.com/aws/aws-sdk-go v1.51.20/go.mod h1:LF8svs817+Nz+DmiMQKTO3ubZ/6IaTpq3TjupRn3Eqk= github.com/aymerick/douceur v0.2.0 h1:Mv+mAeH1Q+n9Fr+oyamOlAkUNPWPlA8PPGR0QAaYuPk= github.com/aymerick/douceur v0.2.0/go.mod h1:wlT5vV2O3h55X9m7iVYN0TBM0NH/MmbLnd30/FjWUq4= -github.com/benbjohnson/clock v1.3.0 h1:ip6w0uFQkncKQ979AypyG0ER7mqUSBdKLOgAle/AT8A= -github.com/benbjohnson/clock v1.3.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= github.com/blang/semver v3.5.1+incompatible h1:cQNTCjp13qL8KC3Nbxr/y2Bqb63oX6wdnnjpJbkM4JQ= @@ -38,10 +34,10 @@ github.com/blang/semver v3.5.1+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnweb github.com/bmatcuk/doublestar v1.1.1/go.mod h1:UD6OnuiIn0yFxxA2le/rnRU1G4RaI4UvFv1sNto9p6w= github.com/bytedance/sonic v1.5.0/go.mod h1:ED5hyg4y6t3/9Ku1R6dU/4KyJ48DZ4jPhfY1O2AihPM= github.com/bytedance/sonic v1.10.0-rc/go.mod h1:ElCzW+ufi8qKqNW0FY314xriJhyJhuoJ3gFZdAHF7NM= -github.com/bytedance/sonic v1.10.2 h1:GQebETVBxYB7JGWJtLBi07OVzWwt+8dWA00gEVW2ZFE= -github.com/bytedance/sonic v1.10.2/go.mod h1:iZcSUejdk5aukTND/Eu/ivjQuEL0Cu9/rf50Hi0u/g4= -github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= -github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/bytedance/sonic v1.11.3 h1:jRN+yEjakWh8aK5FzrciUHG8OFXK+4/KrAX/ysEtHAA= +github.com/bytedance/sonic v1.11.3/go.mod h1:iZcSUejdk5aukTND/Eu/ivjQuEL0Cu9/rf50Hi0u/g4= +github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= +github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/chenzhuoyu/base64x v0.0.0-20211019084208-fb5309c8db06/go.mod h1:DH46F32mSOjUmXrMHnKwZdA8wcEefY7UVqBKYGjpdQY= github.com/chenzhuoyu/base64x v0.0.0-20221115062448-fe3a3abad311/go.mod h1:b583jCggY9gE99b6G5LEC39OIiVsWj+R97kbl5odCEk= github.com/chenzhuoyu/base64x v0.0.0-20230717121745-296ad89f973d h1:77cEq6EriyTZ0g/qfRdp61a3Uu/AWrgIq2s0ClJV1g0= @@ -49,13 +45,13 @@ github.com/chenzhuoyu/base64x v0.0.0-20230717121745-296ad89f973d/go.mod h1:8EPpV github.com/chenzhuoyu/iasm v0.9.0/go.mod h1:Xjy2NpN3h7aUqeqM+woSuuvxmIe6+DDsiNLIrkAmYog= github.com/chenzhuoyu/iasm v0.9.1 h1:tUHQJXo3NhBqw6s33wkGn9SP3bvrWLdlVIJ3hQBL7P0= github.com/chenzhuoyu/iasm v0.9.1/go.mod h1:Xjy2NpN3h7aUqeqM+woSuuvxmIe6+DDsiNLIrkAmYog= -github.com/cloudevents/sdk-go/protocol/kafka_sarama/v2 v2.14.0 h1:1MCVOxNZySIYOWMI1+6Z7YR0PK3AmDi/Fklk1KdFIv8= -github.com/cloudevents/sdk-go/protocol/kafka_sarama/v2 v2.14.0/go.mod h1:/B8nchIwQlr00jtE9bR0aoKaag7bO67xPM7r1DXCH4I= +github.com/cloudevents/sdk-go/protocol/kafka_sarama/v2 v2.15.2 h1:dl2xbFLV2FGd3OBNC6ncSN9l+gPNEP0DYE+1yKVV5DQ= +github.com/cloudevents/sdk-go/protocol/kafka_sarama/v2 v2.15.2/go.mod h1:jXfl9I1Q78+4zdYGTjHNQcrbNtJL63jpzSgVE2rE79U= github.com/cloudevents/sdk-go/v2 v2.15.2 h1:54+I5xQEnI73RBhWHxbI1XJcqOFOVJN85vb41+8mHUc= github.com/cloudevents/sdk-go/v2 v2.15.2/go.mod h1:lL7kSWAE/V8VI4Wh0jbL2v/jvqsm6tjmaQBSvxcv4uE= github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= -github.com/cpuguy83/go-md2man/v2 v2.0.3 h1:qMCsGGgs+MAzDFyp9LpAe1Lqy/fY/qCovCm0qnXZOBM= -github.com/cpuguy83/go-md2man/v2 v2.0.3/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/cpuguy83/go-md2man/v2 v2.0.4 h1:wfIWP927BUkWJb2NmU/kNDYIBTh/ziUX91+lVfRxZq4= +github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -66,8 +62,8 @@ github.com/deepmap/oapi-codegen v1.16.2/go.mod h1:rdYoEA2GE+riuZ91DvpmBX9hJbQpuY github.com/dvsekhvalnov/jose2go v1.5.0/go.mod h1:QsHjhyTlD/lAVqn/NSbVZmSCGeDehTB/mPZadG+mhXU= github.com/dvsekhvalnov/jose2go v1.6.0 h1:Y9gnSnP4qEI0+/uQkHvFXeD2PLPJeXEL+ySMEA2EjTY= github.com/dvsekhvalnov/jose2go v1.6.0/go.mod h1:QsHjhyTlD/lAVqn/NSbVZmSCGeDehTB/mPZadG+mhXU= -github.com/eapache/go-resiliency v1.5.0 h1:dRsaR00whmQD+SgVKlq/vCRFNgtEb5yppyeVos3Yce0= -github.com/eapache/go-resiliency v1.5.0/go.mod h1:5yPzW0MIvSe0JDsv0v+DvcjEv2FyD6iZYSs1ZI+iQho= +github.com/eapache/go-resiliency v1.6.0 h1:CqGDTLtpwuWKn6Nj3uNUdflaq+/kIPsg0gfNzHton30= +github.com/eapache/go-resiliency v1.6.0/go.mod h1:5yPzW0MIvSe0JDsv0v+DvcjEv2FyD6iZYSs1ZI+iQho= github.com/eapache/go-xerial-snappy v0.0.0-20230731223053-c322873962e3 h1:Oy0F4ALJ04o5Qqpdz8XLIpNA3WM/iSIXqxtqo7UGVws= github.com/eapache/go-xerial-snappy v0.0.0-20230731223053-c322873962e3/go.mod h1:YvSRo5mw33fLEx1+DlK6L2VV43tJt5Eyel9n9XBcR+0= github.com/eapache/queue v1.1.0 h1:YOEu7KNc61ntiQlcEeUIoDTJ2o8mQznoNvUhiigpIqc= @@ -100,8 +96,8 @@ github.com/go-playground/locales v0.14.1 h1:EWaQ/wswjilfKLTECiXz7Rh+3BjFhfDFKv/o github.com/go-playground/locales v0.14.1/go.mod h1:hxrqLVvrK65+Rwrd5Fc6F2O76J/NuW9t0sjnWqG1slY= github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJnYK9S473LQFuzCbDbfSFY= github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY= -github.com/go-playground/validator/v10 v10.17.0 h1:SmVVlfAOtlZncTxRuinDPomC2DkXJ4E5T9gDA0AIH74= -github.com/go-playground/validator/v10 v10.17.0/go.mod h1:9iXMNT7sEkjXb0I+enO7QXmzG6QCsPWY4zveKFVRSyU= +github.com/go-playground/validator/v10 v10.19.0 h1:ol+5Fu+cSq9JD7SoSqe04GMI92cbn0+wvQ3bZ8b/AU4= +github.com/go-playground/validator/v10 v10.19.0/go.mod h1:dbuPbCMFw/DrkbEynArYaCwl3amGuJotoKCe95atGMM= github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 h1:tfuBGBXKqDEevZMzYi5KSi8KkcZtzBcTgAUUtapy0OI= github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572/go.mod h1:9Pwr4B2jHnOSGXyyzV8ROjYa2ojvAY6HCGYYfMoC3Ls= github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y= @@ -112,24 +108,17 @@ github.com/golang-jwt/jwt/v4 v4.5.0 h1:7cYmW1XlMY7h7ii7UhUyChSgS5wUJEnm9uZVTGqOW github.com/golang-jwt/jwt/v4 v4.5.0/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= github.com/golang/mock v1.6.0 h1:ErTB+efbowRARo13NNdxyJji2egdxLGQhRaY+DUumQc= github.com/golang/mock v1.6.0/go.mod h1:p6yTPP+5HYm5mzsMV8JkE6ZKdX+/wYM6Hr+LicevLPs= -github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= -github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= -github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= -github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= -github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM= github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= -github.com/gomarkdown/markdown v0.0.0-20231222211730-1d6d20845b47 h1:k4Tw0nt6lwro3Uin8eqoET7MDA4JnT8YgbCjc/g5E3k= -github.com/gomarkdown/markdown v0.0.0-20231222211730-1d6d20845b47/go.mod h1:JDGcbDT52eL4fju3sZ4TeHGsQwhG9nbDV21aMyhwPoA= -github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/gomarkdown/markdown v0.0.0-20240328165702-4d01890c35c0 h1:4gjrh/PN2MuWCCElk8/I4OCKRKWCCo2zEct3VKCbibU= +github.com/gomarkdown/markdown v0.0.0-20240328165702-4d01890c35c0/go.mod h1:JDGcbDT52eL4fju3sZ4TeHGsQwhG9nbDV21aMyhwPoA= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-querystring v1.1.0 h1:AnCroh3fv4ZBgVIf1Iwtovgjaw/GiKJo8M8yD/fhyJ8= github.com/google/go-querystring v1.1.0/go.mod h1:Kcdr2DB4koayq7X8pmAG4sNG59So17icRSOU623lUBU= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= -github.com/google/pprof v0.0.0-20240125082051-42cd04596328 h1:oI+lCI2DY1BsRrdzMJBhIMxBBdlZJl31YNQC11EiyvA= -github.com/google/pprof v0.0.0-20240125082051-42cd04596328/go.mod h1:czg5+yv1E0ZGTi6S6vVK1mke0fV+FaUhNGcd6VRS9Ik= +github.com/google/pprof v0.0.0-20240409012703-83162a5b38cd h1:gbpYu9NMq8jhDVbvlGkMFWCjLFlqqEZjEmObmhUy6Vo= +github.com/google/pprof v0.0.0-20240409012703-83162a5b38cd/go.mod h1:kf6iHlnVGwgKolg33glAes7Yg/8iWP8ukqeldJSO7jw= github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= @@ -192,12 +181,11 @@ github.com/kataras/tunnel v0.0.4 h1:sCAqWuJV7nPzGrlb0os3j49lk2JhILT0rID38NHNLpA= github.com/kataras/tunnel v0.0.4/go.mod h1:9FkU4LaeifdMWqZu7o20ojmW4B7hdhv2CMLwfnHGpYw= github.com/kelseyhightower/envconfig v1.4.0 h1:Im6hONhd3pLkfDFsbRgu68RDNkGF1r3dvMUtDTo2cv8= github.com/kelseyhightower/envconfig v1.4.0/go.mod h1:cccZRl6mQpaq41TPp5QxidR+Sa3axMbJDNb//FQX6Gg= -github.com/klauspost/compress v1.13.6/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk= -github.com/klauspost/compress v1.17.5 h1:d4vBd+7CHydUqpFBgUEKkSdtSugf9YFmSkvUYPquI5E= -github.com/klauspost/compress v1.17.5/go.mod h1:/dCuZOvVtNoHsyb+cuJD3itjs3NbnF6KH9zAO4BDxPM= +github.com/klauspost/compress v1.17.8 h1:YcnTYrq7MikUT7k0Yb5eceMmALQPYBW/Xltxn0NAMnU= +github.com/klauspost/compress v1.17.8/go.mod h1:Di0epgTjJY877eYKx5yC51cX2A2Vl2ibi7bDH9ttBbw= github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= -github.com/klauspost/cpuid/v2 v2.2.6 h1:ndNyv040zDGIDh8thGkXYjnFtiN02M1PVVF+JE/48xc= -github.com/klauspost/cpuid/v2 v2.2.6/go.mod h1:Lcz8mBdAVJIBVzewtcLocK12l3Y+JytZYpaMropDUws= +github.com/klauspost/cpuid/v2 v2.2.7 h1:ZWSB3igEs+d0qvnxR/ZBzXVmxkgt8DdzP6m9pfuVLDM= +github.com/klauspost/cpuid/v2 v2.2.7/go.mod h1:Lcz8mBdAVJIBVzewtcLocK12l3Y+JytZYpaMropDUws= github.com/knz/go-libedit v1.10.1/go.mod h1:MZTVkCWyz0oBc7JOWP3wNAzd002ZbM/5hgShxwh4x8M= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= @@ -209,8 +197,8 @@ github.com/labstack/echo/v4 v4.11.4 h1:vDZmA+qNeh1pd/cCkEicDMrjtrnMGQ1QFI9gWN1zG github.com/labstack/echo/v4 v4.11.4/go.mod h1:noh7EvLwqDsmh/X/HWKPUl1AjzJrhyptRyEbQJfxen8= github.com/labstack/gommon v0.4.2 h1:F8qTUNXgG1+6WQmqoUWnz8WiEU60mXVVw0P4ht1WRA0= github.com/labstack/gommon v0.4.2/go.mod h1:QlUFxVM+SNXhDL/Z7YhocGIBYOiwB0mXm1+1bAPHPyU= -github.com/leodido/go-urn v1.3.0 h1:jX8FDLfW4ThVXctBNZ+3cIWnCSnrACDV73r76dy0aQQ= -github.com/leodido/go-urn v1.3.0/go.mod h1:bvxc+MVxLKB4z00jd1z+Dvzr47oO32F/QSNjSBOlFxI= +github.com/leodido/go-urn v1.4.0 h1:WT9HwE9SGECu3lg4d/dIA+jxlljEa1/ffXKmRjqdmIQ= +github.com/leodido/go-urn v1.4.0/go.mod h1:bvxc+MVxLKB4z00jd1z+Dvzr47oO32F/QSNjSBOlFxI= github.com/mailgun/raymond/v2 v2.0.48 h1:5dmlB680ZkFG2RN/0lvTAghrSxIESeu9/2aeDqACtjw= github.com/mailgun/raymond/v2 v2.0.48/go.mod h1:lsgvL50kgt1ylcFJYZiULi5fjPBkkhNfj4KA0W54Z18= github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0= @@ -229,8 +217,8 @@ github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= github.com/mitchellh/go-wordwrap v1.0.1 h1:TLuKupo69TCn6TQSyGxwI1EblZZEsQ0vMlAFQflz0v0= github.com/mitchellh/go-wordwrap v1.0.1/go.mod h1:R62XHJLzvMFRBbcrT7m7WgmE1eOyTSsCt+hzestvNj0= -github.com/mitchellh/mapstructure v1.1.2 h1:fmNYVwqnSfB9mZU6OS2O6GsXM+wcskZDuKQzvN1EDeE= -github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= +github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY= +github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/mjibson/esc v0.2.0 h1:k96hdaR9Z+nMcnDwNrOvhdBqtjyMrbVyxLpsRCdP2mA= github.com/mjibson/esc v0.2.0/go.mod h1:9Hw9gxxfHulMF5OJKCyhYD7PzlSdhzXyaGEBRPH1OPs= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= @@ -238,40 +226,39 @@ github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= -github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe/go.mod h1:wL8QJuTMNUDYhXwkmfOly8iTdp5TEcJFWZD2D7SIkUc= github.com/montanaflynn/stats v0.7.1 h1:etflOAAHORrCC44V+aR6Ftzort912ZU+YLiSTuV8eaE= github.com/montanaflynn/stats v0.7.1/go.mod h1:etXPPgVO6n31NxCd9KQUMvCM+ve0ruNzt6R8Bnaayow= github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= github.com/oapi-codegen/runtime v1.1.1 h1:EXLHh0DXIJnWhdRPN2w4MXAzFyE4CskzhNLUmtpMYro= github.com/oapi-codegen/runtime v1.1.1/go.mod h1:SK9X900oXmPWilYR5/WKPzt3Kqxn/uS/+lbpREv+eCg= -github.com/onsi/ginkgo/v2 v2.15.0 h1:79HwNRBAZHOEwrczrgSOPy+eFTTlIGELKy5as+ClttY= -github.com/onsi/ginkgo/v2 v2.15.0/go.mod h1:HlxMHtYF57y6Dpf+mc5529KKmSq9h2FpCF+/ZkwUxKM= -github.com/onsi/gomega v1.31.1 h1:KYppCUK+bUgAZwHOu7EXVBKyQA6ILvOESHkn/tgoqvo= -github.com/onsi/gomega v1.31.1/go.mod h1:y40C95dwAD1Nz36SsEnxvfFe8FFfNxzI5eJ0EYGyAy0= -github.com/pelletier/go-toml/v2 v2.1.1 h1:LWAJwfNvjQZCFIDKWYQaM62NcYeYViCmWIwmOStowAI= -github.com/pelletier/go-toml/v2 v2.1.1/go.mod h1:tJU2Z3ZkXwnxa4DPO899bsyIoywizdUvyaeZurnPPDc= +github.com/onsi/ginkgo/v2 v2.17.1 h1:V++EzdbhI4ZV4ev0UTIj0PzhzOcReJFyJaLjtSF55M8= +github.com/onsi/ginkgo/v2 v2.17.1/go.mod h1:llBI3WDLL9Z6taip6f33H76YcWtJv+7R3HigUjbIBOs= +github.com/onsi/gomega v1.32.0 h1:JRYU78fJ1LPxlckP6Txi/EYqJvjtMrDC04/MM5XRHPk= +github.com/onsi/gomega v1.32.0/go.mod h1:a4x4gW6Pz2yK1MAmvluYme5lvYTn61afQ2ETw/8n4Lg= +github.com/pelletier/go-toml/v2 v2.2.1 h1:9TA9+T8+8CUCO2+WYnDLCgrYi9+omqKXyjDtosvtEhg= +github.com/pelletier/go-toml/v2 v2.2.1/go.mod h1:1t835xjRzz80PqgE6HHgN2JOsmgYu/h4qDAS4n929Rs= github.com/pierrec/lz4/v4 v4.1.21 h1:yOVMLb6qSIDP67pl/5F7RepeKYu/VmTyEXvuMI5d9mQ= github.com/pierrec/lz4/v4 v4.1.21/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/prometheus/client_golang v1.18.0 h1:HzFfmkOzH5Q8L8G+kSJKUx5dtG87sewO+FoDDqP5Tbk= -github.com/prometheus/client_golang v1.18.0/go.mod h1:T+GXkCk5wSJyOqMIzVgvvjFDlkOQntgjkJWKrN5txjA= -github.com/prometheus/client_model v0.5.0 h1:VQw1hfvPvk3Uv6Qf29VrPF32JB6rtbgI6cYPYQjL0Qw= -github.com/prometheus/client_model v0.5.0/go.mod h1:dTiFglRmd66nLR9Pv9f0mZi7B7fk5Pm3gvsjB5tr+kI= -github.com/prometheus/common v0.46.0 h1:doXzt5ybi1HBKpsZOL0sSkaNHJJqkyfEWZGGqqScV0Y= -github.com/prometheus/common v0.46.0/go.mod h1:Tp0qkxpb9Jsg54QMe+EAmqXkSV7Evdy1BTn+g2pa/hQ= -github.com/prometheus/procfs v0.12.0 h1:jluTpSng7V9hY0O2R9DzzJHYb2xULk9VTR1V1R/k6Bo= -github.com/prometheus/procfs v0.12.0/go.mod h1:pcuDEFsWDnvcgNzo4EEweacyhjeA9Zk3cnaOZAZEfOo= +github.com/prometheus/client_golang v1.19.0 h1:ygXvpU1AoN1MhdzckN+PyD9QJOSD4x7kmXYlnfbA6JU= +github.com/prometheus/client_golang v1.19.0/go.mod h1:ZRM9uEAypZakd+q/x7+gmsvXdURP+DABIEIjnmDdp+k= +github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= +github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= +github.com/prometheus/common v0.52.3 h1:5f8uj6ZwHSscOGNdIQg6OiZv/ybiK2CO2q2drVZAQSA= +github.com/prometheus/common v0.52.3/go.mod h1:BrxBKv3FWBIGXw89Mg1AeBq7FSyRzXWI3l3e7W3RN5U= +github.com/prometheus/procfs v0.13.0 h1:GqzLlQyfsPbaEHaQkO7tbDlriv/4o5Hudv6OXHGKX7o= +github.com/prometheus/procfs v0.13.0/go.mod h1:cd4PFCR54QLnGKPaKGA6l+cfuNXtht43ZKY6tow0Y1g= github.com/radovskyb/watcher v1.0.7 h1:AYePLih6dpmS32vlHfhCeli8127LzkIgwJGcwwe8tUE= github.com/radovskyb/watcher v1.0.7/go.mod h1:78okwvY5wPdzcb1UYnip1pvrZNIVEIh/Cm+ZuvsUYIg= github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 h1:N/ElC8H3+5XpJzTSTfLsJV/mx9Q9g7kxmchpfZyxgzM= github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= github.com/rinchsan/device-check-go v1.3.0 h1:Rk7L/sJR3hpJ2bBvXhhu42PvmeA5+rmy8uVihO9X8A4= github.com/rinchsan/device-check-go v1.3.0/go.mod h1:xDdGHphsyiTYLfq36DlAn8M8ir2iyUS5nOMj62sF3hU= -github.com/rogpeppe/go-internal v1.11.0 h1:cWPaGQEPrBb5/AsnsZesgZZ9yb1OQ+GOISoDNXVBh4M= -github.com/rogpeppe/go-internal v1.11.0/go.mod h1:ddIwULY96R17DhadqLgMfk9H9tvdUzkipdSkR5nkCZA= +github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8= +github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/sanity-io/litter v1.5.5 h1:iE+sBxPBzoK6uaEP5Lt3fHNgpKcHXc/A2HGETy0uJQo= @@ -287,6 +274,7 @@ github.com/spkg/bom v0.0.0-20160624110644-59b7046e48ad/go.mod h1:qLr4V1qq6nMqFKk github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= +github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= @@ -295,23 +283,24 @@ github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= -github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= -github.com/tdewolff/minify/v2 v2.20.16 h1:/C8dtRkxLTIyUlKlBz46gDiktCrE8a6+c1gTrnPFz+U= -github.com/tdewolff/minify/v2 v2.20.16/go.mod h1:/FvxV9KaTrFu35J9I2FhRvWSBxcHj8sDSdwBFh5voxM= -github.com/tdewolff/parse/v2 v2.7.11 h1:v+W45LnzmjndVlfqPCT5gGjAAZKd1GJGOPJveTIkBY8= -github.com/tdewolff/parse/v2 v2.7.11/go.mod h1:3FbJWZp3XT9OWVN3Hmfp0p/a08v4h8J9W1aghka0soA= +github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= +github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/tdewolff/minify/v2 v2.20.19 h1:tX0SR0LUrIqGoLjXnkIzRSIbKJ7PaNnSENLD4CyH6Xo= +github.com/tdewolff/minify/v2 v2.20.19/go.mod h1:ulkFoeAVWMLEyjuDz1ZIWOA31g5aWOawCFRp9R/MudM= +github.com/tdewolff/parse/v2 v2.7.12 h1:tgavkHc2ZDEQVKy1oWxwIyh5bP4F5fEh/JmBwPP/3LQ= +github.com/tdewolff/parse/v2 v2.7.12/go.mod h1:3FbJWZp3XT9OWVN3Hmfp0p/a08v4h8J9W1aghka0soA= github.com/tdewolff/test v1.0.11-0.20231101010635-f1265d231d52/go.mod h1:6DAvZliBAAnD7rhVgwaM7DE5/d9NMOAJ09SqYqeK4QE= github.com/tdewolff/test v1.0.11-0.20240106005702-7de5f7df4739 h1:IkjBCtQOOjIn03u/dMQK9g+Iw9ewps4mCl1nB8Sscbo= github.com/tdewolff/test v1.0.11-0.20240106005702-7de5f7df4739/go.mod h1:XPuWBzvdUzhCuxWO1ojpXsyzsA5bFoS3tO/Q3kFuTG8= -github.com/tidepool-org/clinic/client v0.0.0-20240412011046-bbcf4250e5c4 h1:HnUJlc2gkzE8zU5FdfhUXAvwnNYXYRCMSx0/P0iFGxs= -github.com/tidepool-org/clinic/client v0.0.0-20240412011046-bbcf4250e5c4/go.mod h1:7BpAdFdGJNB3aw/xvCz5XnWjSWRoUtWIX4xcMc4Bsko= +github.com/tidepool-org/clinic/client v0.0.0-20240412024055-e6391b37e456 h1:r2XgnmEKYvUBq/9uaXCR2qiBkX5z6B7DdEIcI3ymX7s= +github.com/tidepool-org/clinic/client v0.0.0-20240412024055-e6391b37e456/go.mod h1:7BpAdFdGJNB3aw/xvCz5XnWjSWRoUtWIX4xcMc4Bsko= github.com/tidepool-org/devices/api v0.0.0-20240412011010-75b16d8daec0 h1:SnIsHwaJE2kltz9xMfjC+L9SWhQS3w6t+mSIIoFiwag= github.com/tidepool-org/devices/api v0.0.0-20240412011010-75b16d8daec0/go.mod h1:pu8FmuhxtBbOyswB94Mr15l2heCxY357lVHOVVAEZq8= -github.com/tidepool-org/go-common v0.12.1 h1:eh0xNl7P/W6n1oDpG60sqNnScUBYGr2uPRZTAPHX0Uk= -github.com/tidepool-org/go-common v0.12.1/go.mod h1:R8MuVvMM1G7FfUNVderuwFyAiXddP9YopIz7pp8KTMQ= -github.com/tidepool-org/hydrophone/client v0.0.0-20240412013722-bff995d59e73 h1:WIwxHVDoTG0UBNa91PrEexraum68eTyAvMTACpWHnKQ= -github.com/tidepool-org/hydrophone/client v0.0.0-20240412013722-bff995d59e73/go.mod h1:VcQtoC+i0cRZJCejCzD80rQIboCqoN9f19pn0Z5Y62I= +github.com/tidepool-org/go-common v0.12.2-0.20240412180151-b4ae8ab630c0 h1:a88Qc+6LiBR+PvyZfdAh5tZwy3GTYfw0Rm1t6Yo2jbs= +github.com/tidepool-org/go-common v0.12.2-0.20240412180151-b4ae8ab630c0/go.mod h1:dUZRMsEvBoB3Uo2t4W+hCUuc0jjnwsaAzwfBIQCGWOU= +github.com/tidepool-org/hydrophone/client v0.0.0-20240412025448-85c89a8038b8 h1:demBhRgIqXqiQKjMXBqR9oJFpgIIqI6kCGZ6ZLdl8B8= +github.com/tidepool-org/hydrophone/client v0.0.0-20240412025448-85c89a8038b8/go.mod h1:VcQtoC+i0cRZJCejCzD80rQIboCqoN9f19pn0Z5Y62I= github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI= github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08= github.com/ugorji/go/codec v1.2.12 h1:9LC83zGrHhuUA9l16C9AHXAqEV/2wBQ4nkvumAE65EE= @@ -346,7 +335,6 @@ github.com/yalp/jsonpath v0.0.0-20180802001716-5cc68e5049a0 h1:6fRhSjgLCkTD3JnJx github.com/yalp/jsonpath v0.0.0-20180802001716-5cc68e5049a0/go.mod h1:/LWChgwKmvncFJFHJ7Gvn9wZArjbV5/FppcK2fKk/tI= github.com/yosssi/ace v0.0.5 h1:tUkIP/BLdKqrlrPwcmH0shwEEhTRHoGnc1wFIWmaBUA= github.com/yosssi/ace v0.0.5/go.mod h1:ALfIzm2vT7t5ZE7uoIZqF3TQ7SAOyupFZnkrF5id+K0= -github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d/go.mod h1:rHwXgn7JulP+udvsHwJoVG1YGAP6VLg4y9I5dyZdqmA= github.com/youmark/pkcs8 v0.0.0-20201027041543-1326539a0a0a h1:fZHgsYlfvtyqToslyjUt3VOPF4J7aK/3MPcK7xp3PDk= github.com/youmark/pkcs8 v0.0.0-20201027041543-1326539a0a0a/go.mod h1:ul22v+Nro/R083muKhosV54bj5niojjWZvU8xrevuH4= github.com/yudai/gojsondiff v1.0.0 h1:27cbfqXLVEJ1o8I6v3y9lg8Ydm53EKqHXAOMxEGlCOA= @@ -356,20 +344,18 @@ github.com/yudai/golcs v0.0.0-20170316035057-ecda9a501e82/go.mod h1:lgjkn3NuSvDf github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= github.com/yuin/goldmark v1.4.1/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= -go.mongodb.org/mongo-driver v1.13.1 h1:YIc7HTYsKndGK4RFzJ3covLz1byri52x0IoMB0Pt/vk= -go.mongodb.org/mongo-driver v1.13.1/go.mod h1:wcDf1JBCXy2mOW0bWHwO/IOYqdca1MPCwDtFu/Z9+eo= -go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= -go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= +go.mongodb.org/mongo-driver v1.14.0 h1:P98w8egYRjYe3XDjxhYJagTokP/H6HzlsnojRgZRd80= +go.mongodb.org/mongo-driver v1.14.0/go.mod h1:Vzb0Mk/pa7e6cWw85R4F/endUC3u0U9jGcNU603k65c= go.uber.org/dig v1.17.1 h1:Tga8Lz8PcYNsWsyHMZ1Vm0OQOUaJNDyvPImgbAu9YSc= go.uber.org/dig v1.17.1/go.mod h1:Us0rSJiThwCv2GteUN0Q7OKvU7n5J4dxZ9JKUXozFdE= -go.uber.org/fx v1.20.1 h1:zVwVQGS8zYvhh9Xxcu4w1M6ESyeMzebzj2NbSayZ4Mk= -go.uber.org/fx v1.20.1/go.mod h1:iSYNbHf2y55acNCwCXKx7LbWb5WG1Bnue5RDXz1OREg= -go.uber.org/goleak v1.2.1 h1:NBol2c7O1ZokfZ0LEU9K6Whx/KnwvepVetCUhtKja4A= -go.uber.org/goleak v1.2.1/go.mod h1:qlT2yGI9QafXHhZZLxlSuNsMw3FFLxBr+tBRlmO1xH4= +go.uber.org/fx v1.21.0 h1:qqD6k7PyFHONffW5speYx403ywanuASqU4Rqdpc22XY= +go.uber.org/fx v1.21.0/go.mod h1:HT2M7d7RHo+ebKGh9NRcrsrHHfpZ60nW3QRubMRfv48= +go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= +go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= -go.uber.org/zap v1.26.0 h1:sI7k6L95XOKS281NhVKOFCUNIvv9e0w4BF8N3u+tCRo= -go.uber.org/zap v1.26.0/go.mod h1:dtElttAiwGvoJ/vj4IwHBS/gXsEu/pZ50mUIRWuG0so= +go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8= +go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E= golang.org/x/arch v0.0.0-20210923205945-b76863e36670/go.mod h1:5om86z9Hs0C8fWVUuoMHwpExlXzs5Tkyp9hOrfG7pp8= golang.org/x/arch v0.7.0 h1:pskyeJh/3AmoQ8CPE95vxHLqp1G1GfGNXTmcl9NEKTc= golang.org/x/arch v0.7.0/go.mod h1:FEVrYAQjsQXMVJ1nsMoVVXPZg6p2JE2mx8psSWTDQys= @@ -377,20 +363,19 @@ golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACk golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200302210943-78000ba7a073/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.6.0/go.mod h1:OFC/31mSvZgRz0V1QTNCzfAI1aIRzbiufJtkMIlEp58= -golang.org/x/crypto v0.21.0 h1:X31++rzVUdKhX5sWmSOFZxx8UW/ldWx55cbf08iNAMA= -golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs= -golang.org/x/exp v0.0.0-20240119083558-1b970713d09a h1:Q8/wZp0KX97QFTc2ywcOE0YRjZPVIx+MXInMzdvQqcA= -golang.org/x/exp v0.0.0-20240119083558-1b970713d09a/go.mod h1:idGWGoKP1toJGkd5/ig9ZLuPcZBC3ewk7SzmH0uou08= +golang.org/x/crypto v0.22.0 h1:g1v0xeRhjcugydODzvb3mEM9SQ0HGp9s/nh3COQ/C30= +golang.org/x/crypto v0.22.0/go.mod h1:vr6Su+7cTlO45qkww3VDJlzDn0ctJvRgYbC2NvXHt+M= +golang.org/x/exp v0.0.0-20240409090435-93d18d7e34b8 h1:ESSUROHIBHg7USnszlcdmjBEwdMj9VUvU+OPk4yl2mc= +golang.org/x/exp v0.0.0-20240409090435-93d18d7e34b8/go.mod h1:/lliqkxwWAhPjf5oSOIJup2XcqJaw8RGS6k3TGEc7GI= golang.org/x/lint v0.0.0-20210508222113-6edffad5e616 h1:VLliZ0d+/avPrXXH+OakdXhpJuEoBZuwh1m2j7U6Iug= golang.org/x/lint v0.0.0-20210508222113-6edffad5e616/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.5.1/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= -golang.org/x/mod v0.14.0 h1:dGoOF9QVLYng8IHTm7BAyWqCqSheQ5pYWGhzW00YJr0= -golang.org/x/mod v0.14.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= +golang.org/x/mod v0.17.0 h1:zY54UmvipHiNd+pm+m0x9KhZ9hl1/7QNMyxXbc6ICqA= +golang.org/x/mod v0.17.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20190327091125-710a502c58a2/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= @@ -398,19 +383,18 @@ golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= -golang.org/x/net v0.23.0 h1:7EYJ93RZ9vYSZAIb2x3lnuvqO5zneoD6IvWjuhfxjTs= -golang.org/x/net v0.23.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= -golang.org/x/oauth2 v0.16.0 h1:aDkGMBSYxElaoP81NpoUoz2oo2R2wHdZpGToUxfyQrQ= -golang.org/x/oauth2 v0.16.0/go.mod h1:hqZ+0LWXsiVoZpeld6jVt06P3adbS2Uu911W1SsJv2o= +golang.org/x/net v0.24.0 h1:1PcaxkF854Fu3+lvBIx5SYn9wRlBzzcnHZSiaFFAb0w= +golang.org/x/net v0.24.0/go.mod h1:2Q7sJY5mzlzWjKtYUEXSlBWCdyaioyXzRB2RtU8KVE8= +golang.org/x/oauth2 v0.19.0 h1:9+E/EZBCbTLNrbN35fHv/a/d/mOBatymz1zbtQrXpIg= +golang.org/x/oauth2 v0.19.0/go.mod h1:vYi7skDa1x015PmRRYZ7+s1cWyPgrPiSYRe4rnsexc8= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.6.0 h1:5BMeUDZ7vkXGfEr1x9B4bRcTH4lpkTkpdh0T/J+qjbQ= -golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.7.0 h1:YsImfSBoP9QPYL0xyKJPq0gcaJdG3rInoqxTWbfQu9M= +golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -428,13 +412,13 @@ golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4= -golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.19.0 h1:q5f1RH2jigJ1MoAWp2KTp3gm5zAGFUTarQZ5U386+4o= +golang.org/x/sys v0.19.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= -golang.org/x/term v0.18.0 h1:FcHjZXDMxI8mM3nwhX9HlKop4C0YQvCVCdwYl2wOtE8= -golang.org/x/term v0.18.0/go.mod h1:ILwASektA3OnRv7amZ1xhE/KTR+u50pbXfZ03+6Nx58= +golang.org/x/term v0.19.0 h1:+ThwsDv+tYfnJFhF4L8jITxu1tdTWRTZpdsWgEgjL6Q= +golang.org/x/term v0.19.0/go.mod h1:2CuTdWZ7KHSQwUzKva0cbMg6q2DMI3Mmxp+gKJbskEk= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= @@ -451,24 +435,17 @@ golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapK golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.9/go.mod h1:nABZi5QlRsZVlzPpHl034qft6wpY4eDcsTt5AaioBiU= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= -golang.org/x/tools v0.17.0 h1:FvmRgNOcs3kOa+T20R1uhfP9F6HgG2mfxDv1vrx1Htc= -golang.org/x/tools v0.17.0/go.mod h1:xsh6VxdV005rRVaS6SSAf9oiAqljS7UZUacMZ8Bnsps= +golang.org/x/tools v0.20.0 h1:hz/CVckiOxybQvFw6h7b/q80NTr9IUQb4s1IIzW7KNY= +golang.org/x/tools v0.20.0/go.mod h1:WvitBU7JJf6A4jOdg4S1tviW9bhUxkgeCui/0JHctQg= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -google.golang.org/appengine v1.6.8 h1:IhEN5q69dyKagZPYMSdIjS2HqprW324FRQZJcGqPAsM= -google.golang.org/appengine v1.6.8/go.mod h1:1jJ3jBArFh5pcgW8gCtRJnepW8FzD1V44FJffLiz/Ds= -google.golang.org/genproto v0.0.0-20240125205218-1f4bbc51befe h1:USL2DhxfgRchafRvt/wYyyQNzwgL7ZiURcozOE/Pkvo= -google.golang.org/genproto v0.0.0-20240125205218-1f4bbc51befe/go.mod h1:cc8bqMqtv9gMOr0zHg2Vzff5ULhhL2IXP4sbcn32Dro= -google.golang.org/genproto/googleapis/api v0.0.0-20240125205218-1f4bbc51befe h1:0poefMBYvYbs7g5UkjS6HcxBPaTRAmznle9jnxYoAI8= -google.golang.org/genproto/googleapis/api v0.0.0-20240125205218-1f4bbc51befe/go.mod h1:4jWUdICTdgc3Ibxmr8nAJiiLHwQBY0UI0XZcEMaFKaA= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240125205218-1f4bbc51befe h1:bQnxqljG/wqi4NTXu2+DJ3n7APcEA882QZ1JvhQAq9o= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240125205218-1f4bbc51befe/go.mod h1:PAREbraiVEVGVdTZsVWjSbbTtSyGbAgIIvni8a8CD5s= -google.golang.org/grpc v1.61.0 h1:TOvOcuXn30kRao+gfcvsebNEa5iZIiLkisYEkf7R7o0= -google.golang.org/grpc v1.61.0/go.mod h1:VUbo7IFqmF1QtCAstipjG0GIoq49KvMe9+h1jFLBNJs= -google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= -google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= +google.golang.org/genproto/googleapis/api v0.0.0-20240412170617-26222e5d3d56 h1:KuFzeG+qPmpT8KpJXcrKAyeHhn64dgEICWlccP9qp0U= +google.golang.org/genproto/googleapis/api v0.0.0-20240412170617-26222e5d3d56/go.mod h1:wTHjrkbcS8AoQbb/0v9bFIPItZQPAsyVfgG9YPUhjAM= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240412170617-26222e5d3d56 h1:zviK8GX4VlMstrK3JkexM5UHjH1VOkRebH9y3jhSBGk= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240412170617-26222e5d3d56/go.mod h1:WtryC6hu0hhx87FDGxWCDptyssuo68sk10vYjF+T9fY= +google.golang.org/grpc v1.63.2 h1:MUeiw1B2maTVZthpU5xvASfTh3LDbxHd6IJ6QQVU+xM= +google.golang.org/grpc v1.63.2/go.mod h1:WAX/8DgncnokcFUldAxq7GeB5DXHDbMF+lLvDomNkRA= google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= diff --git a/vendor/github.com/Shopify/sarama/.gitignore b/vendor/github.com/IBM/sarama/.gitignore similarity index 100% rename from vendor/github.com/Shopify/sarama/.gitignore rename to vendor/github.com/IBM/sarama/.gitignore diff --git a/vendor/github.com/Shopify/sarama/.golangci.yml b/vendor/github.com/IBM/sarama/.golangci.yml similarity index 78% rename from vendor/github.com/Shopify/sarama/.golangci.yml rename to vendor/github.com/IBM/sarama/.golangci.yml index 0b419abbf..72e3e4c24 100644 --- a/vendor/github.com/Shopify/sarama/.golangci.yml +++ b/vendor/github.com/IBM/sarama/.golangci.yml @@ -19,61 +19,62 @@ linters-settings: misspell: locale: US goimports: - local-prefixes: github.com/Shopify/sarama + local-prefixes: github.com/IBM/sarama gocritic: enabled-tags: - diagnostic + - performance # - experimental # - opinionated - # - performance # - style + enabled-checks: + - importShadow + - nestingReduce + - stringsCompare + # - unnamedResult + # - whyNoLint disabled-checks: - assignOp - appendAssign - commentedOutCode + - hugeParam - ifElseChain - singleCaseSwitch - sloppyReassign - - wrapperFunc funlen: lines: 300 statements: 300 + depguard: + rules: + main: + deny: + - pkg: "io/ioutil" + desc: Use the "io" and "os" packages instead. + linters: disable-all: true enable: - bodyclose - - deadcode - depguard - exportloopref - dogsled - # - dupl - errcheck - errorlint - funlen - gochecknoinits - # - goconst - gocritic - gocyclo - gofmt - goimports - # - golint - gosec - # - gosimple - govet - # - ineffassign - misspell - # - nakedret - nilerr - # - paralleltest - # - scopelint - staticcheck - - structcheck - # - stylecheck - typecheck - unconvert - unused - - varcheck - whitespace issues: diff --git a/vendor/github.com/IBM/sarama/.pre-commit-config.yaml b/vendor/github.com/IBM/sarama/.pre-commit-config.yaml new file mode 100644 index 000000000..1869b8160 --- /dev/null +++ b/vendor/github.com/IBM/sarama/.pre-commit-config.yaml @@ -0,0 +1,41 @@ +fail_fast: false +default_install_hook_types: [pre-commit, commit-msg] +repos: + - repo: https://github.com/pre-commit/pre-commit-hooks + rev: v4.4.0 + hooks: + - id: check-merge-conflict + - id: check-yaml + - id: end-of-file-fixer + - id: fix-byte-order-marker + - id: mixed-line-ending + - id: trailing-whitespace + - repo: local + hooks: + - id: conventional-commit-msg-validation + name: commit message conventional validation + language: pygrep + entry: '^(?:fixup! )?(breaking|build|chore|ci|docs|feat|fix|perf|refactor|revert|style|test){1}(\([\w\-\.]+\))?(!)?: ([\w `])+([\s\S]*)' + args: [--multiline, --negate] + stages: [commit-msg] + - id: commit-msg-needs-to-be-signed-off + name: commit message needs to be signed off + language: pygrep + entry: "^Signed-off-by:" + args: [--multiline, --negate] + stages: [commit-msg] + - id: gofmt + name: gofmt + description: Format files with gofmt. + entry: gofmt -l + language: golang + files: \.go$ + args: [] + - repo: https://github.com/gitleaks/gitleaks + rev: v8.16.3 + hooks: + - id: gitleaks + - repo: https://github.com/golangci/golangci-lint + rev: v1.52.2 + hooks: + - id: golangci-lint diff --git a/vendor/github.com/IBM/sarama/CHANGELOG.md b/vendor/github.com/IBM/sarama/CHANGELOG.md new file mode 100644 index 000000000..99abeb3ec --- /dev/null +++ b/vendor/github.com/IBM/sarama/CHANGELOG.md @@ -0,0 +1,1760 @@ +# Changelog + +## Version 1.42.2 (2024-02-09) + +## What's Changed + +⚠️ The go.mod directive has been bumped to 1.18 as the minimum version of Go required for the module. This was necessary to continue to receive updates from some of the third party dependencies that Sarama makes use of for compression. + +### :tada: New Features / Improvements +* feat: update go directive to 1.18 by @dnwe in https://github.com/IBM/sarama/pull/2713 +* feat: return KError instead of errors in AlterConfigs and DescribeConfig by @zhuliquan in https://github.com/IBM/sarama/pull/2472 +### :bug: Fixes +* fix: don't waste time for backoff on member id required error by @lzakharov in https://github.com/IBM/sarama/pull/2759 +* fix: prevent ConsumerGroup.Close infinitely locking by @maqdev in https://github.com/IBM/sarama/pull/2717 +### :package: Dependency updates +* chore(deps): bump golang.org/x/net from 0.17.0 to 0.18.0 by @dependabot in https://github.com/IBM/sarama/pull/2716 +* chore(deps): bump golang.org/x/sync to v0.5.0 by @dependabot in https://github.com/IBM/sarama/pull/2718 +* chore(deps): bump github.com/pierrec/lz4/v4 from 4.1.18 to 4.1.19 by @dependabot in https://github.com/IBM/sarama/pull/2739 +* chore(deps): bump golang.org/x/crypto from 0.15.0 to 0.17.0 by @dependabot in https://github.com/IBM/sarama/pull/2748 +* chore(deps): bump the golang-org-x group with 1 update by @dependabot in https://github.com/IBM/sarama/pull/2734 +* chore(deps): bump the golang-org-x group with 2 updates by @dependabot in https://github.com/IBM/sarama/pull/2764 +* chore(deps): bump github.com/pierrec/lz4/v4 from 4.1.19 to 4.1.21 by @dependabot in https://github.com/IBM/sarama/pull/2763 +* chore(deps): bump golang.org/x/crypto from 0.15.0 to 0.17.0 in /examples/exactly_once by @dependabot in https://github.com/IBM/sarama/pull/2749 +* chore(deps): bump golang.org/x/crypto from 0.15.0 to 0.17.0 in /examples/consumergroup by @dependabot in https://github.com/IBM/sarama/pull/2750 +* chore(deps): bump golang.org/x/crypto from 0.15.0 to 0.17.0 in /examples/sasl_scram_client by @dependabot in https://github.com/IBM/sarama/pull/2751 +* chore(deps): bump golang.org/x/crypto from 0.15.0 to 0.17.0 in /examples/interceptors by @dependabot in https://github.com/IBM/sarama/pull/2752 +* chore(deps): bump golang.org/x/crypto from 0.15.0 to 0.17.0 in /examples/http_server by @dependabot in https://github.com/IBM/sarama/pull/2753 +* chore(deps): bump github.com/eapache/go-resiliency from 1.4.0 to 1.5.0 by @dependabot in https://github.com/IBM/sarama/pull/2745 +* chore(deps): bump golang.org/x/crypto from 0.15.0 to 0.17.0 in /examples/txn_producer by @dependabot in https://github.com/IBM/sarama/pull/2754 +* chore(deps): bump go.opentelemetry.io/otel/sdk from 1.19.0 to 1.22.0 in /examples/interceptors by @dependabot in https://github.com/IBM/sarama/pull/2767 +* chore(deps): bump the golang-org-x group with 1 update by @dependabot in https://github.com/IBM/sarama/pull/2793 +* chore(deps): bump go.opentelemetry.io/otel/exporters/stdout/stdoutmetric from 0.42.0 to 1.23.1 in /examples/interceptors by @dependabot in https://github.com/IBM/sarama/pull/2792 +### :wrench: Maintenance +* fix(examples): housekeeping of code and deps by @dnwe in https://github.com/IBM/sarama/pull/2720 +### :heavy_plus_sign: Other Changes +* fix(test): retry MockBroker Listen for EADDRINUSE by @dnwe in https://github.com/IBM/sarama/pull/2721 + +## New Contributors +* @maqdev made their first contribution in https://github.com/IBM/sarama/pull/2717 +* @zhuliquan made their first contribution in https://github.com/IBM/sarama/pull/2472 + +**Full Changelog**: https://github.com/IBM/sarama/compare/v1.42.1...v1.42.2 + +## Version 1.42.1 (2023-11-07) + +## What's Changed +### :bug: Fixes +* fix: make fetchInitialOffset use correct protocol by @dnwe in https://github.com/IBM/sarama/pull/2705 +* fix(config): relax ClientID validation after 1.0.0 by @dnwe in https://github.com/IBM/sarama/pull/2706 + +**Full Changelog**: https://github.com/IBM/sarama/compare/v1.42.0...v1.42.1 + +## Version 1.42.0 (2023-11-02) + +## What's Changed +### :bug: Fixes +* Asynchronously close brokers during a RefreshBrokers by @bmassemin in https://github.com/IBM/sarama/pull/2693 +* Fix data race on Broker.done channel by @prestona in https://github.com/IBM/sarama/pull/2698 +* fix: data race in Broker.AsyncProduce by @lzakharov in https://github.com/IBM/sarama/pull/2678 +* Fix default retention time value in offset commit by @prestona in https://github.com/IBM/sarama/pull/2700 +* fix(txmgr): ErrOffsetsLoadInProgress is retriable by @dnwe in https://github.com/IBM/sarama/pull/2701 +### :wrench: Maintenance +* chore(ci): improve ossf scorecard result by @dnwe in https://github.com/IBM/sarama/pull/2685 +* chore(ci): add kafka 3.6.0 to FVT and versions by @dnwe in https://github.com/IBM/sarama/pull/2692 +### :heavy_plus_sign: Other Changes +* chore(ci): ossf scorecard.yml by @dnwe in https://github.com/IBM/sarama/pull/2683 +* fix(ci): always run CodeQL on every commit by @dnwe in https://github.com/IBM/sarama/pull/2689 +* chore(doc): add OpenSSF Scorecard badge by @dnwe in https://github.com/IBM/sarama/pull/2691 + +## New Contributors +* @bmassemin made their first contribution in https://github.com/IBM/sarama/pull/2693 +* @lzakharov made their first contribution in https://github.com/IBM/sarama/pull/2678 + +**Full Changelog**: https://github.com/IBM/sarama/compare/v1.41.3...v1.42.0 + +## Version 1.41.3 (2023-10-17) + +## What's Changed +### :bug: Fixes +* fix: pre-compile regex for parsing kafka version by @qshuai in https://github.com/IBM/sarama/pull/2663 +* fix(client): ignore empty Metadata responses when refreshing by @HaoSunUber in https://github.com/IBM/sarama/pull/2672 +### :package: Dependency updates +* chore(deps): bump the golang-org-x group with 2 updates by @dependabot in https://github.com/IBM/sarama/pull/2661 +* chore(deps): bump golang.org/x/net from 0.16.0 to 0.17.0 by @dependabot in https://github.com/IBM/sarama/pull/2671 +### :memo: Documentation +* fix(docs): correct topic name in rebalancing strategy example by @maksadbek in https://github.com/IBM/sarama/pull/2657 + +## New Contributors +* @maksadbek made their first contribution in https://github.com/IBM/sarama/pull/2657 +* @qshuai made their first contribution in https://github.com/IBM/sarama/pull/2663 + +**Full Changelog**: https://github.com/IBM/sarama/compare/v1.41.2...v1.41.3 + +## Version 1.41.2 (2023-09-12) + +## What's Changed +### :tada: New Features / Improvements +* perf: Alloc records in batch by @ronanh in https://github.com/IBM/sarama/pull/2646 +### :bug: Fixes +* fix(consumer): guard against nil client by @dnwe in https://github.com/IBM/sarama/pull/2636 +* fix(consumer): don't retry session if ctx canceled by @dnwe in https://github.com/IBM/sarama/pull/2642 +* fix: use least loaded broker to refresh metadata by @HaoSunUber in https://github.com/IBM/sarama/pull/2645 +### :package: Dependency updates +* chore(deps): bump the golang-org-x group with 1 update by @dependabot in https://github.com/IBM/sarama/pull/2641 + +## New Contributors +* @HaoSunUber made their first contribution in https://github.com/IBM/sarama/pull/2645 + +**Full Changelog**: https://github.com/IBM/sarama/compare/v1.41.1...v1.41.2 + +## Version 1.41.1 (2023-08-30) + +## What's Changed +### :bug: Fixes +* fix(proto): handle V3 member metadata and empty owned partitions by @dnwe in https://github.com/IBM/sarama/pull/2618 +* fix: make clear that error is configuration issue not server error by @hindessm in https://github.com/IBM/sarama/pull/2628 +* fix(client): force Event Hubs to use V1_0_0_0 by @dnwe in https://github.com/IBM/sarama/pull/2633 +* fix: add retries to alter user scram creds by @hindessm in https://github.com/IBM/sarama/pull/2632 +### :wrench: Maintenance +* chore(lint): bump golangci-lint and tweak config by @dnwe in https://github.com/IBM/sarama/pull/2620 +### :memo: Documentation +* fix(doc): add missing doc for mock consumer by @hsweif in https://github.com/IBM/sarama/pull/2386 +* chore(proto): doc CreateTopics/JoinGroup fields by @dnwe in https://github.com/IBM/sarama/pull/2627 +### :heavy_plus_sign: Other Changes +* chore(gh): add new style issue templates by @dnwe in https://github.com/IBM/sarama/pull/2624 + + +**Full Changelog**: https://github.com/IBM/sarama/compare/v1.41.0...v1.41.1 + +## Version 1.41.0 (2023-08-21) + +## What's Changed +### :rotating_light: Breaking Changes + +Note: this version of Sarama has had a big overhaul in its adherence to the use of the right Kafka protocol versions for the given Config Version. It has also bumped the default Version set in Config (where one is not supplied) to 2.1.0. This is in preparation for Kafka 4.0 dropping support for protocol versions older than 2.1. If you are using Sarama against Kafka clusters older than v2.1.0, or using it against Azure EventHubs then you will likely have to change your application code to pin to the appropriate Version. + +* chore(config): make DefaultVersion V2_0_0_0 by @dnwe in https://github.com/IBM/sarama/pull/2572 +* chore(config): make DefaultVersion V2_1_0_0 by @dnwe in https://github.com/IBM/sarama/pull/2574 +### :tada: New Features / Improvements +* Implement resolve_canonical_bootstrap_servers_only by @gebn in https://github.com/IBM/sarama/pull/2156 +* feat: sleep when throttled (KIP-219) by @hindessm in https://github.com/IBM/sarama/pull/2536 +* feat: add isValidVersion to protocol types by @dnwe in https://github.com/IBM/sarama/pull/2538 +* fix(consumer): use newer LeaveGroup as appropriate by @dnwe in https://github.com/IBM/sarama/pull/2544 +* Add support for up to version 4 List Groups API by @prestona in https://github.com/IBM/sarama/pull/2541 +* fix(producer): use newer ProduceReq as appropriate by @dnwe in https://github.com/IBM/sarama/pull/2546 +* fix(proto): ensure req+resp requiredVersion match by @dnwe in https://github.com/IBM/sarama/pull/2548 +* chore(proto): permit CreatePartitionsRequest V1 by @dnwe in https://github.com/IBM/sarama/pull/2549 +* chore(proto): permit AlterConfigsRequest V1 by @dnwe in https://github.com/IBM/sarama/pull/2550 +* chore(proto): permit DeleteGroupsRequest V1 by @dnwe in https://github.com/IBM/sarama/pull/2551 +* fix(proto): correct JoinGroup usage for wider version range by @dnwe in https://github.com/IBM/sarama/pull/2553 +* fix(consumer): use full range of FetchRequest vers by @dnwe in https://github.com/IBM/sarama/pull/2554 +* fix(proto): use range of OffsetCommitRequest vers by @dnwe in https://github.com/IBM/sarama/pull/2555 +* fix(proto): use full range of MetadataRequest by @dnwe in https://github.com/IBM/sarama/pull/2556 +* fix(proto): use fuller ranges of supported proto by @dnwe in https://github.com/IBM/sarama/pull/2558 +* fix(proto): use full range of SyncGroupRequest by @dnwe in https://github.com/IBM/sarama/pull/2565 +* fix(proto): use full range of ListGroupsRequest by @dnwe in https://github.com/IBM/sarama/pull/2568 +* feat(proto): support for Metadata V6-V10 by @dnwe in https://github.com/IBM/sarama/pull/2566 +* fix(proto): use full ranges for remaining proto by @dnwe in https://github.com/IBM/sarama/pull/2570 +* feat(proto): add remaining protocol for V2.1 by @dnwe in https://github.com/IBM/sarama/pull/2573 +* feat: add new error for MockDeleteTopicsResponse by @javiercri in https://github.com/IBM/sarama/pull/2475 +* feat(gzip): switch to klauspost/compress gzip by @dnwe in https://github.com/IBM/sarama/pull/2600 +### :bug: Fixes +* fix: correct unsupported version check by @hindessm in https://github.com/IBM/sarama/pull/2528 +* fix: avoiding burning cpu if all partitions are paused by @napallday in https://github.com/IBM/sarama/pull/2532 +* extend throttling metric scope by @hindessm in https://github.com/IBM/sarama/pull/2533 +* Fix printing of final metrics by @prestona in https://github.com/IBM/sarama/pull/2545 +* fix(consumer): cannot automatically fetch newly-added partitions unless restart by @napallday in https://github.com/IBM/sarama/pull/2563 +* bug: implement unsigned modulus for partitioning with crc32 hashing by @csm8118 in https://github.com/IBM/sarama/pull/2560 +* fix: avoid logging value of proxy.Dialer by @prestona in https://github.com/IBM/sarama/pull/2569 +* fix(test): add missing closes to admin client tests by @dnwe in https://github.com/IBM/sarama/pull/2594 +* fix(test): ensure some more clients are closed by @dnwe in https://github.com/IBM/sarama/pull/2595 +* fix(examples): sync exactly_once and consumergroup by @dnwe in https://github.com/IBM/sarama/pull/2614 +* fix(fvt): fresh metrics registry for each test by @dnwe in https://github.com/IBM/sarama/pull/2616 +* fix(test): flaky test TestFuncOffsetManager by @napallday in https://github.com/IBM/sarama/pull/2609 +### :package: Dependency updates +* chore(deps): bump the golang-org-x group with 1 update by @dependabot in https://github.com/IBM/sarama/pull/2542 +* chore(deps): bump the golang-org-x group with 1 update by @dependabot in https://github.com/IBM/sarama/pull/2561 +* chore(deps): bump module github.com/pierrec/lz4/v4 to v4.1.18 by @dnwe in https://github.com/IBM/sarama/pull/2589 +* chore(deps): bump module github.com/jcmturner/gokrb5/v8 to v8.4.4 by @dnwe in https://github.com/IBM/sarama/pull/2587 +* chore(deps): bump github.com/eapache/go-xerial-snappy digest to c322873 by @dnwe in https://github.com/IBM/sarama/pull/2586 +* chore(deps): bump module github.com/klauspost/compress to v1.16.7 by @dnwe in https://github.com/IBM/sarama/pull/2588 +* chore(deps): bump github.com/eapache/go-resiliency from 1.3.0 to 1.4.0 by @dependabot in https://github.com/IBM/sarama/pull/2598 +### :wrench: Maintenance +* fix(fvt): ensure fully-replicated at test start by @hindessm in https://github.com/IBM/sarama/pull/2531 +* chore: rollup fvt kafka to latest three by @dnwe in https://github.com/IBM/sarama/pull/2537 +* Merge the two CONTRIBUTING.md's by @prestona in https://github.com/IBM/sarama/pull/2543 +* fix(test): test timing error by @hindessm in https://github.com/IBM/sarama/pull/2552 +* chore(ci): tidyup and improve actions workflows by @dnwe in https://github.com/IBM/sarama/pull/2557 +* fix(test): shutdown MockBroker by @dnwe in https://github.com/IBM/sarama/pull/2571 +* chore(proto): match HeartbeatResponse version by @dnwe in https://github.com/IBM/sarama/pull/2576 +* chore(test): ensure MockBroker closed within test by @dnwe in https://github.com/IBM/sarama/pull/2575 +* chore(test): ensure all mockresponses use version by @dnwe in https://github.com/IBM/sarama/pull/2578 +* chore(ci): use latest Go in actions by @dnwe in https://github.com/IBM/sarama/pull/2580 +* chore(test): speedup some slow tests by @dnwe in https://github.com/IBM/sarama/pull/2579 +* chore(test): use modern protocol versions in FVT by @dnwe in https://github.com/IBM/sarama/pull/2581 +* chore(test): fix a couple of leaks by @dnwe in https://github.com/IBM/sarama/pull/2591 +* feat(fvt): experiment with per-kafka-version image by @dnwe in https://github.com/IBM/sarama/pull/2592 +* chore(ci): replace toxiproxy client dep by @dnwe in https://github.com/IBM/sarama/pull/2593 +* feat(fvt): add healthcheck, depends_on and --wait by @dnwe in https://github.com/IBM/sarama/pull/2601 +* fix(fvt): handle msgset vs batchset by @dnwe in https://github.com/IBM/sarama/pull/2603 +* fix(fvt): Metadata version in ensureFullyReplicated by @dnwe in https://github.com/IBM/sarama/pull/2612 +* fix(fvt): versioned cfg for invalid topic producer by @dnwe in https://github.com/IBM/sarama/pull/2613 +* chore(fvt): tweak to work across more versions by @dnwe in https://github.com/IBM/sarama/pull/2615 +* feat(fvt): test wider range of kafkas by @dnwe in https://github.com/IBM/sarama/pull/2605 +### :memo: Documentation +* fix(example): check if msg channel is closed by @ioanzicu in https://github.com/IBM/sarama/pull/2479 +* chore: use go install for installing sarama tools by @vigith in https://github.com/IBM/sarama/pull/2599 + +## New Contributors +* @gebn made their first contribution in https://github.com/IBM/sarama/pull/2156 +* @prestona made their first contribution in https://github.com/IBM/sarama/pull/2543 +* @ioanzicu made their first contribution in https://github.com/IBM/sarama/pull/2479 +* @csm8118 made their first contribution in https://github.com/IBM/sarama/pull/2560 +* @javiercri made their first contribution in https://github.com/IBM/sarama/pull/2475 +* @vigith made their first contribution in https://github.com/IBM/sarama/pull/2599 + +**Full Changelog**: https://github.com/IBM/sarama/compare/v1.40.1...v1.41.0 + +## Version 1.40.1 (2023-07-27) + +## What's Changed +### :tada: New Features / Improvements +* Use buffer pools for decompression by @ronanh in https://github.com/IBM/sarama/pull/2484 +* feat: support for Kerberos authentication with a credentials cache. by @mrogaski in https://github.com/IBM/sarama/pull/2457 +### :bug: Fixes +* Fix some retry issues by @hindessm in https://github.com/IBM/sarama/pull/2517 +* fix: admin retry logic by @hindessm in https://github.com/IBM/sarama/pull/2519 +* Add some retry logic to more admin client functions by @hindessm in https://github.com/IBM/sarama/pull/2520 +* fix: concurrent issue on updateMetadataMs by @napallday in https://github.com/IBM/sarama/pull/2522 +* fix(test): allow testing of skipped test without IsTransactional panic by @hindessm in https://github.com/IBM/sarama/pull/2525 +### :package: Dependency updates +* chore(deps): bump the golang-org-x group with 2 updates by @dependabot in https://github.com/IBM/sarama/pull/2509 +* chore(deps): bump github.com/klauspost/compress from 1.15.14 to 1.16.6 by @dependabot in https://github.com/IBM/sarama/pull/2513 +* chore(deps): bump github.com/stretchr/testify from 1.8.1 to 1.8.3 by @dependabot in https://github.com/IBM/sarama/pull/2512 +### :wrench: Maintenance +* chore(ci): migrate probot-stale to actions/stale by @dnwe in https://github.com/IBM/sarama/pull/2496 +* chore(ci): bump golangci version, cleanup, depguard config by @EladLeev in https://github.com/IBM/sarama/pull/2504 +* Clean up some typos and docs/help mistakes by @hindessm in https://github.com/IBM/sarama/pull/2514 +### :heavy_plus_sign: Other Changes +* chore(ci): add simple apidiff workflow by @dnwe in https://github.com/IBM/sarama/pull/2497 +* chore(ci): bump actions/setup-go from 3 to 4 by @dependabot in https://github.com/IBM/sarama/pull/2508 +* fix(comments): PauseAll and ResumeAll by @napallday in https://github.com/IBM/sarama/pull/2523 + +## New Contributors +* @EladLeev made their first contribution in https://github.com/IBM/sarama/pull/2504 +* @hindessm made their first contribution in https://github.com/IBM/sarama/pull/2514 +* @ronanh made their first contribution in https://github.com/IBM/sarama/pull/2484 +* @mrogaski made their first contribution in https://github.com/IBM/sarama/pull/2457 + +**Full Changelog**: https://github.com/IBM/sarama/compare/v1.40.0...v1.40.1 + +## Version 1.40.0 (2023-07-17) + +## What's Changed + +Note: this is the first release after the transition of Sarama ownership from Shopify to IBM in https://github.com/IBM/sarama/issues/2461 + +### :rotating_light: Breaking Changes + +- chore: migrate module to github.com/IBM/sarama by @dnwe in https://github.com/IBM/sarama/pull/2492 +- fix: restore (\*OffsetCommitRequest) AddBlock func by @dnwe in https://github.com/IBM/sarama/pull/2494 + +### :bug: Fixes + +- fix(consumer): don't retry FindCoordinator forever by @dnwe in https://github.com/IBM/sarama/pull/2427 +- fix(metrics): fix race condition when calling Broker.Open() twice by @vincentbernat in https://github.com/IBM/sarama/pull/2428 +- fix: use version 4 of DescribeGroupsRequest only if kafka broker vers… …ion is >= 2.4 by @faillefer in https://github.com/IBM/sarama/pull/2451 +- Fix HighWaterMarkOffset of mocks partition consumer by @gr8web in https://github.com/IBM/sarama/pull/2447 +- fix: prevent data race in balance strategy by @napallday in https://github.com/IBM/sarama/pull/2453 + +### :package: Dependency updates + +- chore(deps): bump golang.org/x/net from 0.5.0 to 0.7.0 by @dependabot in https://github.com/IBM/sarama/pull/2452 + +### :wrench: Maintenance + +- chore: add kafka 3.3.2 by @dnwe in https://github.com/IBM/sarama/pull/2434 +- chore(ci): remove Shopify/shopify-cla-action by @dnwe in https://github.com/IBM/sarama/pull/2489 +- chore: bytes.Equal instead bytes.Compare by @testwill in https://github.com/IBM/sarama/pull/2485 + +## New Contributors + +- @dependabot made their first contribution in https://github.com/IBM/sarama/pull/2452 +- @gr8web made their first contribution in https://github.com/IBM/sarama/pull/2447 +- @testwill made their first contribution in https://github.com/IBM/sarama/pull/2485 + +**Full Changelog**: https://github.com/IBM/sarama/compare/v1.38.1...v1.40.0 + +## Version 1.38.1 (2023-01-22) + +## What's Changed +### :bug: Fixes +* fix(example): correct `records-number` param in txn producer readme by @diallo-han in https://github.com/IBM/sarama/pull/2420 +* fix: use newConsumer method in newConsumerGroup method by @Lumotheninja in https://github.com/IBM/sarama/pull/2424 +### :package: Dependency updates +* chore(deps): bump module github.com/klauspost/compress to v1.15.14 by @dnwe in https://github.com/IBM/sarama/pull/2410 +* chore(deps): bump module golang.org/x/net to v0.5.0 by @dnwe in https://github.com/IBM/sarama/pull/2413 +* chore(deps): bump module github.com/stretchr/testify to v1.8.1 by @dnwe in https://github.com/IBM/sarama/pull/2411 +* chore(deps): bump module github.com/xdg-go/scram to v1.1.2 by @dnwe in https://github.com/IBM/sarama/pull/2412 +* chore(deps): bump module golang.org/x/sync to v0.1.0 by @dnwe in https://github.com/IBM/sarama/pull/2414 +* chore(deps): bump github.com/eapache/go-xerial-snappy digest to bf00bc1 by @dnwe in https://github.com/IBM/sarama/pull/2418 + +## New Contributors +* @diallo-han made their first contribution in https://github.com/IBM/sarama/pull/2420 +* @Lumotheninja made their first contribution in https://github.com/IBM/sarama/pull/2424 + +**Full Changelog**: https://github.com/IBM/sarama/compare/v1.38.0...v1.38.1 + +## Version 1.38.0 (2023-01-08) + +## What's Changed +### :tada: New Features / Improvements +* feat(producer): improve memory usage of zstd encoder by using our own pool management by @rtreffer in https://github.com/IBM/sarama/pull/2375 +* feat(proto): implement and use MetadataRequest v7 by @dnwe in https://github.com/IBM/sarama/pull/2388 +* feat(metrics): add protocol-requests-rate metric by @auntan in https://github.com/IBM/sarama/pull/2373 +### :bug: Fixes +* fix(proto): track and supply leader epoch to FetchRequest by @dnwe in https://github.com/IBM/sarama/pull/2389 +* fix(example): improve arg name used for tls skip verify by @michaeljmarshall in https://github.com/IBM/sarama/pull/2385 +* fix(zstd): default back to GOMAXPROCS concurrency by @bgreenlee in https://github.com/IBM/sarama/pull/2404 +* fix(producer): add nil check while producer is retrying by @hsweif in https://github.com/IBM/sarama/pull/2387 +* fix(producer): return errors for every message in retryBatch to avoid producer hang forever by @cch123 in https://github.com/IBM/sarama/pull/2378 +* fix(metrics): fix race when accessing metric registry by @vincentbernat in https://github.com/IBM/sarama/pull/2409 +### :package: Dependency updates +* chore(deps): bump golang.org/x/net to v0.4.0 by @dnwe in https://github.com/IBM/sarama/pull/2403 +### :wrench: Maintenance +* chore(ci): replace set-output command in GH Action by @dnwe in https://github.com/IBM/sarama/pull/2390 +* chore(ci): include kafka 3.3.1 in testing matrix by @dnwe in https://github.com/IBM/sarama/pull/2406 + +## New Contributors +* @michaeljmarshall made their first contribution in https://github.com/IBM/sarama/pull/2385 +* @bgreenlee made their first contribution in https://github.com/IBM/sarama/pull/2404 +* @hsweif made their first contribution in https://github.com/IBM/sarama/pull/2387 +* @cch123 made their first contribution in https://github.com/IBM/sarama/pull/2378 + +**Full Changelog**: https://github.com/IBM/sarama/compare/v1.37.2...v1.38.0 + +## Version 1.37.2 (2022-10-04) + +## What's Changed +### :bug: Fixes +* fix: ensure updateMetaDataMs is 64-bit aligned by @dnwe in https://github.com/IBM/sarama/pull/2356 +### :heavy_plus_sign: Other Changes +* fix: bump go.mod specification to go 1.17 by @dnwe in https://github.com/IBM/sarama/pull/2357 + + +**Full Changelog**: https://github.com/IBM/sarama/compare/v1.37.1...v1.37.2 + +## Version 1.37.1 (2022-10-04) + +## What's Changed +### :bug: Fixes +* fix: support existing deprecated Rebalance.Strategy field usage by @spongecaptain in https://github.com/IBM/sarama/pull/2352 +* fix(test): consumer group rebalance strategy compatibility by @Jacob-bzx in https://github.com/IBM/sarama/pull/2353 +* fix(producer): replace time.After with time.Timer to avoid high memory usage by @Jacob-bzx in https://github.com/IBM/sarama/pull/2355 + +## New Contributors +* @spongecaptain made their first contribution in https://github.com/IBM/sarama/pull/2352 + +**Full Changelog**: https://github.com/IBM/sarama/compare/v1.37.0...v1.37.1 + +## Version 1.37.0 (2022-09-28) + +## What's Changed + +### :rotating_light: Breaking Changes +* Due to a change in [github.com/klauspost/compress v1.15.10](https://github.com/klauspost/compress/releases/tag/v1.15.10), Sarama v1.37.0 requires Go 1.17 going forward, unfortunately due to an oversight this wasn't reflected in the go.mod declaration at time of release. + +### :tada: New Features / Improvements +* feat(consumer): support multiple balance strategies by @Jacob-bzx in https://github.com/IBM/sarama/pull/2339 +* feat(producer): transactional API by @ryarnyah in https://github.com/IBM/sarama/pull/2295 +* feat(mocks): support key in MockFetchResponse. by @Skandalik in https://github.com/IBM/sarama/pull/2328 +### :bug: Fixes +* fix: avoid panic when Metadata.RefreshFrequency is 0 by @Jacob-bzx in https://github.com/IBM/sarama/pull/2329 +* fix(consumer): avoid pushing unrelated responses to paused children by @pkoutsovasilis in https://github.com/IBM/sarama/pull/2317 +* fix: prevent metrics leak with cleanup by @auntan in https://github.com/IBM/sarama/pull/2340 +* fix: race condition(may panic) when closing consumer group by @Jacob-bzx in https://github.com/IBM/sarama/pull/2331 +* fix(consumer): default ResetInvalidOffsets to true by @dnwe in https://github.com/IBM/sarama/pull/2345 +* Validate the `Config` when creating a mock producer/consumer by @joewreschnig in https://github.com/IBM/sarama/pull/2327 +### :package: Dependency updates +* chore(deps): bump module github.com/pierrec/lz4/v4 to v4.1.16 by @dnwe in https://github.com/IBM/sarama/pull/2335 +* chore(deps): bump golang.org/x/net digest to bea034e by @dnwe in https://github.com/IBM/sarama/pull/2333 +* chore(deps): bump golang.org/x/sync digest to 7f9b162 by @dnwe in https://github.com/IBM/sarama/pull/2334 +* chore(deps): bump golang.org/x/net digest to f486391 by @dnwe in https://github.com/IBM/sarama/pull/2348 +* chore(deps): bump module github.com/shopify/toxiproxy/v2 to v2.5.0 by @dnwe in https://github.com/IBM/sarama/pull/2336 +* chore(deps): bump module github.com/klauspost/compress to v1.15.11 by @dnwe in https://github.com/IBM/sarama/pull/2349 +* chore(deps): bump module github.com/pierrec/lz4/v4 to v4.1.17 by @dnwe in https://github.com/IBM/sarama/pull/2350 +### :wrench: Maintenance +* chore(ci): bump kafka-versions to latest by @dnwe in https://github.com/IBM/sarama/pull/2346 +* chore(ci): bump go-versions to N and N-1 by @dnwe in https://github.com/IBM/sarama/pull/2347 + +## New Contributors +* @Jacob-bzx made their first contribution in https://github.com/IBM/sarama/pull/2329 +* @pkoutsovasilis made their first contribution in https://github.com/IBM/sarama/pull/2317 +* @Skandalik made their first contribution in https://github.com/IBM/sarama/pull/2328 +* @auntan made their first contribution in https://github.com/IBM/sarama/pull/2340 +* @ryarnyah made their first contribution in https://github.com/IBM/sarama/pull/2295 + +**Full Changelog**: https://github.com/IBM/sarama/compare/v1.36.0...v1.37.0 + +## Version 1.36.0 (2022-08-11) + +## What's Changed +### :tada: New Features / Improvements +* feat: add option to propagate OffsetOutOfRange error by @dkolistratova in https://github.com/IBM/sarama/pull/2252 +* feat(producer): expose ProducerMessage.byteSize() function by @k8scat in https://github.com/IBM/sarama/pull/2315 +* feat(metrics): track consumer fetch request rates by @dnwe in https://github.com/IBM/sarama/pull/2299 +### :bug: Fixes +* fix(consumer): avoid submitting empty fetch requests when paused by @raulnegreiros in https://github.com/IBM/sarama/pull/2143 +### :package: Dependency updates +* chore(deps): bump module github.com/klauspost/compress to v1.15.9 by @dnwe in https://github.com/IBM/sarama/pull/2304 +* chore(deps): bump golang.org/x/net digest to c7608f3 by @dnwe in https://github.com/IBM/sarama/pull/2301 +* chore(deps): bump golangci/golangci-lint-action action to v3 by @dnwe in https://github.com/IBM/sarama/pull/2311 +* chore(deps): bump golang.org/x/net digest to 07c6da5 by @dnwe in https://github.com/IBM/sarama/pull/2307 +* chore(deps): bump github actions versions (major) by @dnwe in https://github.com/IBM/sarama/pull/2313 +* chore(deps): bump module github.com/jcmturner/gofork to v1.7.6 by @dnwe in https://github.com/IBM/sarama/pull/2305 +* chore(deps): bump golang.org/x/sync digest to 886fb93 by @dnwe in https://github.com/IBM/sarama/pull/2302 +* chore(deps): bump module github.com/jcmturner/gokrb5/v8 to v8.4.3 by @dnwe in https://github.com/IBM/sarama/pull/2303 +### :wrench: Maintenance +* chore: add kafka 3.1.1 to the version matrix by @dnwe in https://github.com/IBM/sarama/pull/2300 +### :heavy_plus_sign: Other Changes +* Migrate off probot-CLA to new GitHub Action by @cursedcoder in https://github.com/IBM/sarama/pull/2294 +* Forgot to remove cla probot by @cursedcoder in https://github.com/IBM/sarama/pull/2297 +* chore(lint): re-enable a small amount of go-critic by @dnwe in https://github.com/IBM/sarama/pull/2312 + +## New Contributors +* @cursedcoder made their first contribution in https://github.com/IBM/sarama/pull/2294 +* @dkolistratova made their first contribution in https://github.com/IBM/sarama/pull/2252 +* @k8scat made their first contribution in https://github.com/IBM/sarama/pull/2315 + +**Full Changelog**: https://github.com/IBM/sarama/compare/v1.35.0...v1.36.0 + +## Version 1.35.0 (2022-07-22) + +## What's Changed +### :bug: Fixes +* fix: fix metadata retry backoff invalid when get metadata failed by @Stephan14 in https://github.com/IBM/sarama/pull/2256 +* fix(balance): sort and de-deplicate memberIDs by @dnwe in https://github.com/IBM/sarama/pull/2285 +* fix: prevent DescribeLogDirs hang in admin client by @zerowidth in https://github.com/IBM/sarama/pull/2269 +* fix: include assignment-less members in SyncGroup by @dnwe in https://github.com/IBM/sarama/pull/2292 +### :package: Dependency updates +* chore(deps): bump module github.com/stretchr/testify to v1.8.0 by @dnwe in https://github.com/IBM/sarama/pull/2284 +* chore(deps): bump module github.com/eapache/go-resiliency to v1.3.0 by @dnwe in https://github.com/IBM/sarama/pull/2283 +* chore(deps): bump golang.org/x/net digest to 1185a90 by @dnwe in https://github.com/IBM/sarama/pull/2279 +* chore(deps): bump module github.com/pierrec/lz4/v4 to v4.1.15 by @dnwe in https://github.com/IBM/sarama/pull/2281 +* chore(deps): bump module github.com/klauspost/compress to v1.15.8 by @dnwe in https://github.com/IBM/sarama/pull/2280 +### :wrench: Maintenance +* chore: rename `any` func to avoid identifier by @dnwe in https://github.com/IBM/sarama/pull/2272 +* chore: add and test against kafka 3.2.0 by @dnwe in https://github.com/IBM/sarama/pull/2288 +* chore: document Fetch protocol fields by @dnwe in https://github.com/IBM/sarama/pull/2289 +### :heavy_plus_sign: Other Changes +* chore(ci): fix redirect with GITHUB_STEP_SUMMARY by @dnwe in https://github.com/IBM/sarama/pull/2286 +* fix(test): permit ECONNRESET in TestInitProducerID by @dnwe in https://github.com/IBM/sarama/pull/2287 +* fix: ensure empty or devel version valid by @dnwe in https://github.com/IBM/sarama/pull/2291 + +## New Contributors +* @zerowidth made their first contribution in https://github.com/IBM/sarama/pull/2269 + +**Full Changelog**: https://github.com/IBM/sarama/compare/v1.34.1...v1.35.0 + +## Version 1.34.1 (2022-06-07) + +## What's Changed +### :bug: Fixes +* fix(examples): check session.Context().Done() in examples/consumergroup by @zxc111 in https://github.com/IBM/sarama/pull/2240 +* fix(protocol): move AuthorizedOperations into GroupDescription of DescribeGroupsResponse by @aiquestion in https://github.com/IBM/sarama/pull/2247 +* fix(protocol): tidyup DescribeGroupsResponse by @dnwe in https://github.com/IBM/sarama/pull/2248 +* fix(consumer): range balance strategy not like reference by @njhartwell in https://github.com/IBM/sarama/pull/2245 +### :wrench: Maintenance +* chore(ci): experiment with using tparse by @dnwe in https://github.com/IBM/sarama/pull/2236 +* chore(deps): bump thirdparty dependencies to latest releases by @dnwe in https://github.com/IBM/sarama/pull/2242 + +## New Contributors +* @zxc111 made their first contribution in https://github.com/IBM/sarama/pull/2240 +* @njhartwell made their first contribution in https://github.com/IBM/sarama/pull/2245 + +**Full Changelog**: https://github.com/IBM/sarama/compare/v1.34.0...v1.34.1 + +## Version 1.34.0 (2022-05-30) + +## What's Changed +### :tada: New Features / Improvements +* KIP-345: support static membership by @aiquestion in https://github.com/IBM/sarama/pull/2230 +### :bug: Fixes +* fix: KIP-368 use receiver goroutine to process all sasl v1 responses by @k-wall in https://github.com/IBM/sarama/pull/2234 +### :wrench: Maintenance +* chore(deps): bump module github.com/pierrec/lz4 to v4 by @dnwe in https://github.com/IBM/sarama/pull/2231 +* chore(deps): bump golang.org/x/net digest to 2e3eb7b by @dnwe in https://github.com/IBM/sarama/pull/2232 + +## New Contributors +* @aiquestion made their first contribution in https://github.com/IBM/sarama/pull/2230 + +**Full Changelog**: https://github.com/IBM/sarama/compare/v1.33.0...v1.34.0 + +## Version 1.33.0 (2022-05-11) + +## What's Changed +### :rotating_light: Breaking Changes + +**Note: with this change, the user of Sarama is required to use Go 1.13's errors.Is etc (rather then ==) when forming conditionals returned by this library.** +* feat: make `ErrOutOfBrokers` wrap the underlying error that prevented connections to the brokers by @k-wall in https://github.com/IBM/sarama/pull/2131 + + +### :tada: New Features / Improvements +* feat(message): add UnmarshalText method to CompressionCodec by @vincentbernat in https://github.com/IBM/sarama/pull/2172 +* KIP-368 : Allow SASL Connections to Periodically Re-Authenticate by @k-wall in https://github.com/IBM/sarama/pull/2197 +* feat: add batched CreateACLs func to ClusterAdmin by @nkostoulas in https://github.com/IBM/sarama/pull/2191 +### :bug: Fixes +* fix: TestRecordBatchDecoding failing sporadically by @k-wall in https://github.com/IBM/sarama/pull/2154 +* feat(test): add an fvt for broker deadlock by @dnwe in https://github.com/IBM/sarama/pull/2144 +* fix: avoid starvation in subscriptionManager by @dnwe in https://github.com/IBM/sarama/pull/2109 +* fix: remove "Is your cluster reachable?" from msg by @dnwe in https://github.com/IBM/sarama/pull/2165 +* fix: remove trailing fullstop from error strings by @dnwe in https://github.com/IBM/sarama/pull/2166 +* fix: return underlying sasl error message by @dnwe in https://github.com/IBM/sarama/pull/2164 +* fix: potential data race on a global variable by @pior in https://github.com/IBM/sarama/pull/2171 +* fix: AdminClient | CreateACLs | check for error in response, return error if needed by @omris94 in https://github.com/IBM/sarama/pull/2185 +* producer: ensure that the management message (fin) is never "leaked" by @niamster in https://github.com/IBM/sarama/pull/2182 +* fix: prevent RefreshBrokers leaking old brokers by @k-wall in https://github.com/IBM/sarama/pull/2203 +* fix: prevent RefreshController leaking controller by @k-wall in https://github.com/IBM/sarama/pull/2204 +* fix: prevent AsyncProducer retryBatch from leaking by @k-wall in https://github.com/IBM/sarama/pull/2208 +* fix: prevent metrics leak when authenticate fails by @Stephan14 in https://github.com/IBM/sarama/pull/2205 +* fix: prevent deadlock between subscription manager and consumer goroutines by @niamster in https://github.com/IBM/sarama/pull/2194 +* fix: prevent idempotent producer epoch exhaustion by @ladislavmacoun in https://github.com/IBM/sarama/pull/2178 +* fix(test): mockbroker offsetResponse vers behavior by @dnwe in https://github.com/IBM/sarama/pull/2213 +* fix: cope with OffsetsLoadInProgress on Join+Sync by @dnwe in https://github.com/IBM/sarama/pull/2214 +* fix: make default MaxWaitTime 500ms by @dnwe in https://github.com/IBM/sarama/pull/2227 +### :package: Dependency updates +* chore(deps): bump xdg-go/scram and klauspost/compress by @dnwe in https://github.com/IBM/sarama/pull/2170 +### :wrench: Maintenance +* fix(test): skip TestReadOnlyAndAllCommittedMessages by @dnwe in https://github.com/IBM/sarama/pull/2161 +* fix(test): remove t.Parallel() by @dnwe in https://github.com/IBM/sarama/pull/2162 +* chore(ci): bump along to Go 1.17+1.18 and bump golangci-lint by @dnwe in https://github.com/IBM/sarama/pull/2183 +* chore: switch to multi-arch compatible docker images by @dnwe in https://github.com/IBM/sarama/pull/2210 +### :heavy_plus_sign: Other Changes +* Remediate a number go-routine leaks (mainly test issues) by @k-wall in https://github.com/IBM/sarama/pull/2198 +* chore: retract v1.32.0 due to #2150 by @dnwe in https://github.com/IBM/sarama/pull/2199 +* chore: bump functional test timeout to 12m by @dnwe in https://github.com/IBM/sarama/pull/2200 +* fix(admin): make DeleteRecords err consistent by @dnwe in https://github.com/IBM/sarama/pull/2226 + +## New Contributors +* @k-wall made their first contribution in https://github.com/IBM/sarama/pull/2154 +* @pior made their first contribution in https://github.com/IBM/sarama/pull/2171 +* @omris94 made their first contribution in https://github.com/IBM/sarama/pull/2185 +* @vincentbernat made their first contribution in https://github.com/IBM/sarama/pull/2172 +* @niamster made their first contribution in https://github.com/IBM/sarama/pull/2182 +* @ladislavmacoun made their first contribution in https://github.com/IBM/sarama/pull/2178 +* @nkostoulas made their first contribution in https://github.com/IBM/sarama/pull/2191 + +**Full Changelog**: https://github.com/IBM/sarama/compare/v1.32.0...v1.33.0 + +## Version 1.32.0 (2022-02-24) + +### ⚠️ This release has been superseded by v1.33.0 and should _not_ be used. + +* chore: retract v1.32.0 due to #2150 by @dnwe in https://github.com/IBM/sarama/pull/2199 + +--- + +## What's Changed +### :bug: Fixes +* Fix deadlock when closing Broker in brokerProducer by @slaunay in https://github.com/IBM/sarama/pull/2133 +### :package: Dependency updates +* chore: refresh dependencies to latest by @dnwe in https://github.com/IBM/sarama/pull/2159 +### :wrench: Maintenance +* fix: rework RebalancingMultiplePartitions test by @dnwe in https://github.com/IBM/sarama/pull/2130 +* fix(test): use Sarama transactional producer by @dnwe in https://github.com/IBM/sarama/pull/1939 +* chore: enable t.Parallel() wherever possible by @dnwe in https://github.com/IBM/sarama/pull/2138 +### :heavy_plus_sign: Other Changes +* chore: restrict to 1 testbinary at once by @dnwe in https://github.com/IBM/sarama/pull/2145 +* chore: restrict to 1 parallel test at once by @dnwe in https://github.com/IBM/sarama/pull/2146 +* Remove myself from codeowners by @bai in https://github.com/IBM/sarama/pull/2147 +* chore: add retractions for known bad versions by @dnwe in https://github.com/IBM/sarama/pull/2160 + + +**Full Changelog**: https://github.com/IBM/sarama/compare/v1.31.1...v1.32.0 + +## Version 1.31.1 (2022-02-01) + +- #2126 - @bai - Populate missing kafka versions +- #2124 - @bai - Add Kafka 3.1.0 to CI matrix, migrate to bitnami kafka image +- #2123 - @bai - Update klauspost/compress to 0.14 +- #2122 - @dnwe - fix(test): make it simpler to re-use toxiproxy +- #2119 - @bai - Add Kafka 3.1.0 version number +- #2005 - @raulnegreiros - feat: add methods to pause/resume consumer's consumption +- #2051 - @seveas - Expose the TLS connection state of a broker connection +- #2117 - @wuhuizuo - feat: add method MockApiVersionsResponse.SetApiKeys +- #2110 - @dnwe - fix: ensure heartbeats only stop after cleanup +- #2113 - @mosceo - Fix typo + +## Version 1.31.0 (2022-01-18) + +## What's Changed +### :tada: New Features / Improvements +* feat: expose IncrementalAlterConfigs API in admin.go by @fengyinqiao in https://github.com/IBM/sarama/pull/2088 +* feat: allow AsyncProducer to have MaxOpenRequests inflight produce requests per broker by @xujianhai666 in https://github.com/IBM/sarama/pull/1686 +* Support request pipelining in AsyncProducer by @slaunay in https://github.com/IBM/sarama/pull/2094 +### :bug: Fixes +* fix(test): add fluent interface for mocks where missing by @grongor in https://github.com/IBM/sarama/pull/2080 +* fix(test): test for ConsumePartition with OffsetOldest by @grongor in https://github.com/IBM/sarama/pull/2081 +* fix: set HWMO during creation of partitionConsumer (fix incorrect HWMO before first fetch) by @grongor in https://github.com/IBM/sarama/pull/2082 +* fix: ignore non-nil but empty error strings in Describe/Alter client quotas responses by @agriffaut in https://github.com/IBM/sarama/pull/2096 +* fix: skip over KIP-482 tagged fields by @dnwe in https://github.com/IBM/sarama/pull/2107 +* fix: clear preferredReadReplica if broker shutdown by @dnwe in https://github.com/IBM/sarama/pull/2108 +* fix(test): correct wrong offsets in mock Consumer by @grongor in https://github.com/IBM/sarama/pull/2078 +* fix: correct bugs in DescribeGroupsResponse by @dnwe in https://github.com/IBM/sarama/pull/2111 +### :wrench: Maintenance +* chore: bump runtime and test dependencies by @dnwe in https://github.com/IBM/sarama/pull/2100 +### :memo: Documentation +* docs: refresh README.md for Kafka 3.0.0 by @dnwe in https://github.com/IBM/sarama/pull/2099 +### :heavy_plus_sign: Other Changes +* Fix typo by @mosceo in https://github.com/IBM/sarama/pull/2084 + +## New Contributors +* @grongor made their first contribution in https://github.com/IBM/sarama/pull/2080 +* @fengyinqiao made their first contribution in https://github.com/IBM/sarama/pull/2088 +* @xujianhai666 made their first contribution in https://github.com/IBM/sarama/pull/1686 +* @mosceo made their first contribution in https://github.com/IBM/sarama/pull/2084 + +**Full Changelog**: https://github.com/IBM/sarama/compare/v1.30.1...v1.31.0 + +## Version 1.30.1 (2021-12-04) + +## What's Changed +### :tada: New Features / Improvements +* feat(zstd): pass level param through to compress/zstd encoder by @lizthegrey in https://github.com/IBM/sarama/pull/2045 +### :bug: Fixes +* fix: set min-go-version to 1.16 by @troyanov in https://github.com/IBM/sarama/pull/2048 +* logger: fix debug logs' formatting directives by @utrack in https://github.com/IBM/sarama/pull/2054 +* fix: stuck on the batch with zero records length by @pachmu in https://github.com/IBM/sarama/pull/2057 +* fix: only update preferredReadReplica if valid by @dnwe in https://github.com/IBM/sarama/pull/2076 +### :wrench: Maintenance +* chore: add release notes configuration by @dnwe in https://github.com/IBM/sarama/pull/2046 +* chore: confluent platform version bump by @lizthegrey in https://github.com/IBM/sarama/pull/2070 + +## Notes +* ℹ️ from Sarama 1.30.x onward the minimum version of Go toolchain required is 1.16.x + +## New Contributors +* @troyanov made their first contribution in https://github.com/IBM/sarama/pull/2048 +* @lizthegrey made their first contribution in https://github.com/IBM/sarama/pull/2045 +* @utrack made their first contribution in https://github.com/IBM/sarama/pull/2054 +* @pachmu made their first contribution in https://github.com/IBM/sarama/pull/2057 + +**Full Changelog**: https://github.com/IBM/sarama/compare/v1.30.0...v1.30.1 + +## Version 1.30.0 (2021-09-29) + +⚠️ This release has been superseded by v1.30.1 and should _not_ be used. + +**regression**: enabling rackawareness causes severe throughput drops (#2071) — fixed in v1.30.1 via #2076 + +--- + +ℹ️ **Note: from Sarama 1.30.0 the minimum version of Go toolchain required is 1.16.x** + +--- + +# New Features / Improvements + +- #1983 - @zifengyu - allow configure AllowAutoTopicCreation argument in metadata refresh +- #2000 - @matzew - Using xdg-go module for SCRAM +- #2003 - @gdm85 - feat: add counter metrics for consumer group join/sync and their failures +- #1992 - @zhaomoran - feat: support SaslHandshakeRequest v0 for SCRAM +- #2006 - @faillefer - Add support for DeleteOffsets operation +- #1909 - @agriffaut - KIP-546 Client quota APIs +- #1633 - @aldelucca1 - feat: allow balance strategies to provide initial state +- #1275 - @dnwe - log: add a DebugLogger that proxies to Logger +- #2018 - @dnwe - feat: use DebugLogger reference for goldenpath log +- #2019 - @dnwe - feat: add logging & a metric for producer throttle +- #2023 - @dnwe - feat: add Controller() to ClusterAdmin interface +- #2025 - @dnwe - feat: support ApiVersionsRequest V3 protocol +- #2028 - @dnwe - feat: send ApiVersionsRequest on broker open +- #2034 - @bai - Add support for kafka 3.0.0 + +# Fixes + +- #1990 - @doxsch - fix: correctly pass ValidateOnly through to CreatePartitionsRequest +- #1988 - @LubergAlexander - fix: correct WithCustomFallbackPartitioner implementation +- #2001 - @HurSungYun - docs: inform AsyncProducer Close pitfalls +- #1973 - @qiangmzsx - fix: metrics still taking up too much memory when metrics.UseNilMetrics=true +- #2007 - @bai - Add support for Go 1.17 +- #2009 - @dnwe - fix: enable nilerr linter and fix iferr checks +- #2010 - @dnwe - chore: enable exportloopref and misspell linters +- #2013 - @faillefer - fix(test): disable encoded response/request check when map contains multiple elements +- #2015 - @bai - Change default branch to main +- #1718 - @crivera-fastly - fix: correct the error handling in client.InitProducerID() +- #1984 - @null-sleep - fix(test): bump confluentPlatformVersion from 6.1.1 to 6.2.0 +- #2016 - @dnwe - chore: replace deprecated Go calls +- #2017 - @dnwe - chore: delete legacy vagrant script +- #2020 - @dnwe - fix(test): remove testLogger from TrackLeader test +- #2024 - @dnwe - chore: bump toxiproxy container to v2.1.5 +- #2033 - @bai - Update dependencies +- #2031 - @gdm85 - docs: do not mention buffered messages in sync producer Close method +- #2035 - @dnwe - chore: populate the missing kafka versions +- #2038 - @dnwe - feat: add a fuzzing workflow to github actions + +## New Contributors +* @zifengyu made their first contribution in https://github.com/IBM/sarama/pull/1983 +* @doxsch made their first contribution in https://github.com/IBM/sarama/pull/1990 +* @LubergAlexander made their first contribution in https://github.com/IBM/sarama/pull/1988 +* @HurSungYun made their first contribution in https://github.com/IBM/sarama/pull/2001 +* @gdm85 made their first contribution in https://github.com/IBM/sarama/pull/2003 +* @qiangmzsx made their first contribution in https://github.com/IBM/sarama/pull/1973 +* @zhaomoran made their first contribution in https://github.com/IBM/sarama/pull/1992 +* @faillefer made their first contribution in https://github.com/IBM/sarama/pull/2006 +* @crivera-fastly made their first contribution in https://github.com/IBM/sarama/pull/1718 +* @null-sleep made their first contribution in https://github.com/IBM/sarama/pull/1984 + +**Full Changelog**: https://github.com/IBM/sarama/compare/v1.29.1...v1.30.0 + +## Version 1.29.1 (2021-06-24) + +# New Features / Improvements + +- #1966 - @ajanikow - KIP-339: Add Incremental Config updates API +- #1964 - @ajanikow - Add DelegationToken ResourceType + +# Fixes + +- #1962 - @hanxiaolin - fix(consumer): call interceptors when MaxProcessingTime expire +- #1971 - @KerryJava - fix kafka-producer-performance throughput panic +- #1968 - @dnwe - chore: bump golang.org/x versions +- #1956 - @joewreschnig - Allow checking the entire `ProducerMessage` in the mock producers +- #1963 - @dnwe - fix: ensure backoff timer is re-used +- #1949 - @dnwe - fix: explicitly use uint64 for payload length + +## Version 1.29.0 (2021-05-07) + +### New Features / Improvements + +- #1917 - @arkady-emelyanov - KIP-554: Add Broker-side SCRAM Config API +- #1869 - @wyndhblb - zstd: encode+decode performance improvements +- #1541 - @izolight - add String, (Un)MarshalText for acl types. +- #1921 - @bai - Add support for Kafka 2.8.0 + +### Fixes +- #1936 - @dnwe - fix(consumer): follow preferred broker +- #1933 - @ozzieba - Use gofork for encoding/asn1 to fix ASN errors during Kerberos authentication +- #1929 - @celrenheit - Handle isolation level in Offset(Request|Response) and require stable offset in FetchOffset(Request|Response) +- #1926 - @dnwe - fix: correct initial CodeQL findings +- #1925 - @bai - Test out CodeQL +- #1923 - @bestgopher - Remove redundant switch-case, fix doc typos +- #1922 - @bai - Update go dependencies +- #1898 - @mmaslankaprv - Parsing only known control batches value +- #1887 - @withshubh - Fix: issues affecting code quality + +## Version 1.28.0 (2021-02-15) + +**Note that with this release we change `RoundRobinBalancer` strategy to match Java client behavior. See #1788 for details.** + +- #1870 - @kvch - Update Kerberos library to latest major +- #1876 - @bai - Update docs, reference pkg.go.dev +- #1846 - @wclaeys - Do not ignore Consumer.Offsets.AutoCommit.Enable config on Close +- #1747 - @XSAM - fix: mock sync producer does not handle the offset while sending messages +- #1863 - @bai - Add support for Kafka 2.7.0 + update lz4 and klauspost/compress dependencies +- #1788 - @kzinglzy - feat[balance_strategy]: announcing a new round robin balance strategy +- #1862 - @bai - Fix CI setenv permissions issues +- #1832 - @ilyakaznacheev - Update Godoc link to pkg.go.dev +- #1822 - @danp - KIP-392: Allow consumers to fetch from closest replica + +## Version 1.27.2 (2020-10-21) + +### Improvements + +#1750 - @krantideep95 Adds missing mock responses for mocking consumer group + +## Fixes + +#1817 - reverts #1785 - Add private method to Client interface to prevent implementation + +## Version 1.27.1 (2020-10-07) + +### Improvements + +#1775 - @d1egoaz - Adds a Producer Interceptor example +#1781 - @justin-chen - Refresh brokers given list of seed brokers +#1784 - @justin-chen - Add randomize seed broker method +#1790 - @d1egoaz - remove example binary +#1798 - @bai - Test against Go 1.15 +#1785 - @justin-chen - Add private method to Client interface to prevent implementation +#1802 - @uvw - Support Go 1.13 error unwrapping + +## Fixes + +#1791 - @stanislavkozlovski - bump default version to 1.0.0 + +## Version 1.27.0 (2020-08-11) + +### Improvements + +#1466 - @rubenvp8510 - Expose kerberos fast negotiation configuration +#1695 - @KJTsanaktsidis - Use docker-compose to run the functional tests +#1699 - @wclaeys - Consumer group support for manually comitting offsets +#1714 - @bai - Bump Go to version 1.14.3, golangci-lint to 1.27.0 +#1726 - @d1egoaz - Include zstd on the functional tests +#1730 - @d1egoaz - KIP-42 Add producer and consumer interceptors +#1738 - @varun06 - fixed variable names that are named same as some std lib package names +#1741 - @varun06 - updated zstd dependency to latest v1.10.10 +#1743 - @varun06 - Fixed declaration dependencies and other lint issues in code base +#1763 - @alrs - remove deprecated tls options from test +#1769 - @bai - Add support for Kafka 2.6.0 + +## Fixes + +#1697 - @kvch - Use gofork for encoding/asn1 to fix ASN errors during Kerberos authentication +#1744 - @alrs - Fix isBalanced Function Signature + +## Version 1.26.4 (2020-05-19) + +## Fixes + +- #1701 - @d1egoaz - Set server name only for the current broker +- #1694 - @dnwe - testfix: set KAFKA_HEAP_OPTS for zk and kafka + +## Version 1.26.3 (2020-05-07) + +## Fixes + +- #1692 - @d1egoaz - Set tls ServerName to fix issue: either ServerName or InsecureSkipVerify must be specified in the tls.Config + +## Version 1.26.2 (2020-05-06) + +## ⚠️ Known Issues + +This release has been marked as not ready for production and may be unstable, please use v1.26.4. + +### Improvements + +- #1560 - @iyacontrol - add sync pool for gzip 1-9 +- #1605 - @dnwe - feat: protocol support for V11 fetch w/ rackID +- #1617 - @sladkoff / @dwi-di / @random-dwi - Add support for alter/list partition reassignements APIs +- #1632 - @bai - Add support for Go 1.14 +- #1640 - @random-dwi - Feature/fix list partition reassignments +- #1646 - @mimaison - Add DescribeLogDirs to admin client +- #1667 - @bai - Add support for kafka 2.5.0 + +## Fixes + +- #1594 - @sladkoff - Sets ConfigEntry.Default flag in addition to the ConfigEntry.Source for Kafka versions > V1_1_0_0 +- #1601 - @alrs - fix: remove use of testing.T.FailNow() inside goroutine +- #1602 - @d1egoaz - adds a note about consumer groups Consume method +- #1607 - @darklore - Fix memory leak when Broker.Open and Broker.Close called repeatedly +- #1613 - @wblakecaldwell - Updated "retrying" log message when BackoffFunc implemented +- #1614 - @alrs - produce_response.go: Remove Unused Functions +- #1619 - @alrs - tools/kafka-producer-performance: prune unused flag variables +- #1639 - @agriffaut - Handle errors with no message but error code +- #1643 - @kzinglzy - fix `config.net.keepalive` +- #1644 - @KJTsanaktsidis - Fix brokers continually allocating new Session IDs +- #1645 - @Stephan14 - Remove broker(s) which no longer exist in metadata +- #1650 - @lavoiesl - Return the response error in heartbeatLoop +- #1661 - @KJTsanaktsidis - Fix "broker received out of order sequence" when brokers die +- #1666 - @KevinJCross - Bugfix: Allow TLS connections to work over socks proxy. + +## Version 1.26.1 (2020-02-04) + +Improvements: +- Add requests-in-flight metric ([1539](https://github.com/IBM/sarama/pull/1539)) +- Fix misleading example for cluster admin ([1595](https://github.com/IBM/sarama/pull/1595)) +- Replace Travis with GitHub Actions, linters housekeeping ([1573](https://github.com/IBM/sarama/pull/1573)) +- Allow BalanceStrategy to provide custom assignment data ([1592](https://github.com/IBM/sarama/pull/1592)) + +Bug Fixes: +- Adds back Consumer.Offsets.CommitInterval to fix API ([1590](https://github.com/IBM/sarama/pull/1590)) +- Fix error message s/CommitInterval/AutoCommit.Interval ([1589](https://github.com/IBM/sarama/pull/1589)) + +## Version 1.26.0 (2020-01-24) + +New Features: +- Enable zstd compression + ([1574](https://github.com/IBM/sarama/pull/1574), + [1582](https://github.com/IBM/sarama/pull/1582)) +- Support headers in tools kafka-console-producer + ([1549](https://github.com/IBM/sarama/pull/1549)) + +Improvements: +- Add SASL AuthIdentity to SASL frames (authzid) + ([1585](https://github.com/IBM/sarama/pull/1585)). + +Bug Fixes: +- Sending messages with ZStd compression enabled fails in multiple ways + ([1252](https://github.com/IBM/sarama/issues/1252)). +- Use the broker for any admin on BrokerConfig + ([1571](https://github.com/IBM/sarama/pull/1571)). +- Set DescribeConfigRequest Version field + ([1576](https://github.com/IBM/sarama/pull/1576)). +- ConsumerGroup flooding logs with client/metadata update req + ([1578](https://github.com/IBM/sarama/pull/1578)). +- MetadataRequest version in DescribeCluster + ([1580](https://github.com/IBM/sarama/pull/1580)). +- Fix deadlock in consumer group handleError + ([1581](https://github.com/IBM/sarama/pull/1581)) +- Fill in the Fetch{Request,Response} protocol + ([1582](https://github.com/IBM/sarama/pull/1582)). +- Retry topic request on ControllerNotAvailable + ([1586](https://github.com/IBM/sarama/pull/1586)). + +## Version 1.25.0 (2020-01-13) + +New Features: +- Support TLS protocol in kafka-producer-performance + ([1538](https://github.com/IBM/sarama/pull/1538)). +- Add support for kafka 2.4.0 + ([1552](https://github.com/IBM/sarama/pull/1552)). + +Improvements: +- Allow the Consumer to disable auto-commit offsets + ([1164](https://github.com/IBM/sarama/pull/1164)). +- Produce records with consistent timestamps + ([1455](https://github.com/IBM/sarama/pull/1455)). + +Bug Fixes: +- Fix incorrect SetTopicMetadata name mentions + ([1534](https://github.com/IBM/sarama/pull/1534)). +- Fix client.tryRefreshMetadata Println + ([1535](https://github.com/IBM/sarama/pull/1535)). +- Fix panic on calling updateMetadata on closed client + ([1531](https://github.com/IBM/sarama/pull/1531)). +- Fix possible faulty metrics in TestFuncProducing + ([1545](https://github.com/IBM/sarama/pull/1545)). + +## Version 1.24.1 (2019-10-31) + +New Features: +- Add DescribeLogDirs Request/Response pair + ([1520](https://github.com/IBM/sarama/pull/1520)). + +Bug Fixes: +- Fix ClusterAdmin returning invalid controller ID on DescribeCluster + ([1518](https://github.com/IBM/sarama/pull/1518)). +- Fix issue with consumergroup not rebalancing when new partition is added + ([1525](https://github.com/IBM/sarama/pull/1525)). +- Ensure consistent use of read/write deadlines + ([1529](https://github.com/IBM/sarama/pull/1529)). + +## Version 1.24.0 (2019-10-09) + +New Features: +- Add sticky partition assignor + ([1416](https://github.com/IBM/sarama/pull/1416)). +- Switch from cgo zstd package to pure Go implementation + ([1477](https://github.com/IBM/sarama/pull/1477)). + +Improvements: +- Allow creating ClusterAdmin from client + ([1415](https://github.com/IBM/sarama/pull/1415)). +- Set KafkaVersion in ListAcls method + ([1452](https://github.com/IBM/sarama/pull/1452)). +- Set request version in CreateACL ClusterAdmin method + ([1458](https://github.com/IBM/sarama/pull/1458)). +- Set request version in DeleteACL ClusterAdmin method + ([1461](https://github.com/IBM/sarama/pull/1461)). +- Handle missed error codes on TopicMetaDataRequest and GroupCoordinatorRequest + ([1464](https://github.com/IBM/sarama/pull/1464)). +- Remove direct usage of gofork + ([1465](https://github.com/IBM/sarama/pull/1465)). +- Add support for Go 1.13 + ([1478](https://github.com/IBM/sarama/pull/1478)). +- Improve behavior of NewMockListAclsResponse + ([1481](https://github.com/IBM/sarama/pull/1481)). + +Bug Fixes: +- Fix race condition in consumergroup example + ([1434](https://github.com/IBM/sarama/pull/1434)). +- Fix brokerProducer goroutine leak + ([1442](https://github.com/IBM/sarama/pull/1442)). +- Use released version of lz4 library + ([1469](https://github.com/IBM/sarama/pull/1469)). +- Set correct version in MockDeleteTopicsResponse + ([1484](https://github.com/IBM/sarama/pull/1484)). +- Fix CLI help message typo + ([1494](https://github.com/IBM/sarama/pull/1494)). + +Known Issues: +- Please **don't** use Zstd, as it doesn't work right now. + See https://github.com/IBM/sarama/issues/1252 + +## Version 1.23.1 (2019-07-22) + +Bug Fixes: +- Fix fetch delete bug record + ([1425](https://github.com/IBM/sarama/pull/1425)). +- Handle SASL/OAUTHBEARER token rejection + ([1428](https://github.com/IBM/sarama/pull/1428)). + +## Version 1.23.0 (2019-07-02) + +New Features: +- Add support for Kafka 2.3.0 + ([1418](https://github.com/IBM/sarama/pull/1418)). +- Add support for ListConsumerGroupOffsets v2 + ([1374](https://github.com/IBM/sarama/pull/1374)). +- Add support for DeleteConsumerGroup + ([1417](https://github.com/IBM/sarama/pull/1417)). +- Add support for SASLVersion configuration + ([1410](https://github.com/IBM/sarama/pull/1410)). +- Add kerberos support + ([1366](https://github.com/IBM/sarama/pull/1366)). + +Improvements: +- Improve sasl_scram_client example + ([1406](https://github.com/IBM/sarama/pull/1406)). +- Fix shutdown and race-condition in consumer-group example + ([1404](https://github.com/IBM/sarama/pull/1404)). +- Add support for error codes 77—81 + ([1397](https://github.com/IBM/sarama/pull/1397)). +- Pool internal objects allocated per message + ([1385](https://github.com/IBM/sarama/pull/1385)). +- Reduce packet decoder allocations + ([1373](https://github.com/IBM/sarama/pull/1373)). +- Support timeout when fetching metadata + ([1359](https://github.com/IBM/sarama/pull/1359)). + +Bug Fixes: +- Fix fetch size integer overflow + ([1376](https://github.com/IBM/sarama/pull/1376)). +- Handle and log throttled FetchResponses + ([1383](https://github.com/IBM/sarama/pull/1383)). +- Refactor misspelled word Resouce to Resource + ([1368](https://github.com/IBM/sarama/pull/1368)). + +## Version 1.22.1 (2019-04-29) + +Improvements: +- Use zstd 1.3.8 + ([1350](https://github.com/IBM/sarama/pull/1350)). +- Add support for SaslHandshakeRequest v1 + ([1354](https://github.com/IBM/sarama/pull/1354)). + +Bug Fixes: +- Fix V5 MetadataRequest nullable topics array + ([1353](https://github.com/IBM/sarama/pull/1353)). +- Use a different SCRAM client for each broker connection + ([1349](https://github.com/IBM/sarama/pull/1349)). +- Fix AllowAutoTopicCreation for MetadataRequest greater than v3 + ([1344](https://github.com/IBM/sarama/pull/1344)). + +## Version 1.22.0 (2019-04-09) + +New Features: +- Add Offline Replicas Operation to Client + ([1318](https://github.com/IBM/sarama/pull/1318)). +- Allow using proxy when connecting to broker + ([1326](https://github.com/IBM/sarama/pull/1326)). +- Implement ReadCommitted + ([1307](https://github.com/IBM/sarama/pull/1307)). +- Add support for Kafka 2.2.0 + ([1331](https://github.com/IBM/sarama/pull/1331)). +- Add SASL SCRAM-SHA-512 and SCRAM-SHA-256 mechanismes + ([1331](https://github.com/IBM/sarama/pull/1295)). + +Improvements: +- Unregister all broker metrics on broker stop + ([1232](https://github.com/IBM/sarama/pull/1232)). +- Add SCRAM authentication example + ([1303](https://github.com/IBM/sarama/pull/1303)). +- Add consumergroup examples + ([1304](https://github.com/IBM/sarama/pull/1304)). +- Expose consumer batch size metric + ([1296](https://github.com/IBM/sarama/pull/1296)). +- Add TLS options to console producer and consumer + ([1300](https://github.com/IBM/sarama/pull/1300)). +- Reduce client close bookkeeping + ([1297](https://github.com/IBM/sarama/pull/1297)). +- Satisfy error interface in create responses + ([1154](https://github.com/IBM/sarama/pull/1154)). +- Please lint gods + ([1346](https://github.com/IBM/sarama/pull/1346)). + +Bug Fixes: +- Fix multi consumer group instance crash + ([1338](https://github.com/IBM/sarama/pull/1338)). +- Update lz4 to latest version + ([1347](https://github.com/IBM/sarama/pull/1347)). +- Retry ErrNotCoordinatorForConsumer in new consumergroup session + ([1231](https://github.com/IBM/sarama/pull/1231)). +- Fix cleanup error handler + ([1332](https://github.com/IBM/sarama/pull/1332)). +- Fix rate condition in PartitionConsumer + ([1156](https://github.com/IBM/sarama/pull/1156)). + +## Version 1.21.0 (2019-02-24) + +New Features: +- Add CreateAclRequest, DescribeAclRequest, DeleteAclRequest + ([1236](https://github.com/IBM/sarama/pull/1236)). +- Add DescribeTopic, DescribeConsumerGroup, ListConsumerGroups, ListConsumerGroupOffsets admin requests + ([1178](https://github.com/IBM/sarama/pull/1178)). +- Implement SASL/OAUTHBEARER + ([1240](https://github.com/IBM/sarama/pull/1240)). + +Improvements: +- Add Go mod support + ([1282](https://github.com/IBM/sarama/pull/1282)). +- Add error codes 73—76 + ([1239](https://github.com/IBM/sarama/pull/1239)). +- Add retry backoff function + ([1160](https://github.com/IBM/sarama/pull/1160)). +- Maintain metadata in the producer even when retries are disabled + ([1189](https://github.com/IBM/sarama/pull/1189)). +- Include ReplicaAssignment in ListTopics + ([1274](https://github.com/IBM/sarama/pull/1274)). +- Add producer performance tool + ([1222](https://github.com/IBM/sarama/pull/1222)). +- Add support LogAppend timestamps + ([1258](https://github.com/IBM/sarama/pull/1258)). + +Bug Fixes: +- Fix potential deadlock when a heartbeat request fails + ([1286](https://github.com/IBM/sarama/pull/1286)). +- Fix consuming compacted topic + ([1227](https://github.com/IBM/sarama/pull/1227)). +- Set correct Kafka version for DescribeConfigsRequest v1 + ([1277](https://github.com/IBM/sarama/pull/1277)). +- Update kafka test version + ([1273](https://github.com/IBM/sarama/pull/1273)). + +## Version 1.20.1 (2019-01-10) + +New Features: +- Add optional replica id in offset request + ([1100](https://github.com/IBM/sarama/pull/1100)). + +Improvements: +- Implement DescribeConfigs Request + Response v1 & v2 + ([1230](https://github.com/IBM/sarama/pull/1230)). +- Reuse compression objects + ([1185](https://github.com/IBM/sarama/pull/1185)). +- Switch from png to svg for GoDoc link in README + ([1243](https://github.com/IBM/sarama/pull/1243)). +- Fix typo in deprecation notice for FetchResponseBlock.Records + ([1242](https://github.com/IBM/sarama/pull/1242)). +- Fix typos in consumer metadata response file + ([1244](https://github.com/IBM/sarama/pull/1244)). + +Bug Fixes: +- Revert to individual msg retries for non-idempotent + ([1203](https://github.com/IBM/sarama/pull/1203)). +- Respect MaxMessageBytes limit for uncompressed messages + ([1141](https://github.com/IBM/sarama/pull/1141)). + +## Version 1.20.0 (2018-12-10) + +New Features: + - Add support for zstd compression + ([#1170](https://github.com/IBM/sarama/pull/1170)). + - Add support for Idempotent Producer + ([#1152](https://github.com/IBM/sarama/pull/1152)). + - Add support support for Kafka 2.1.0 + ([#1229](https://github.com/IBM/sarama/pull/1229)). + - Add support support for OffsetCommit request/response pairs versions v1 to v5 + ([#1201](https://github.com/IBM/sarama/pull/1201)). + - Add support support for OffsetFetch request/response pair up to version v5 + ([#1198](https://github.com/IBM/sarama/pull/1198)). + +Improvements: + - Export broker's Rack setting + ([#1173](https://github.com/IBM/sarama/pull/1173)). + - Always use latest patch version of Go on CI + ([#1202](https://github.com/IBM/sarama/pull/1202)). + - Add error codes 61 to 72 + ([#1195](https://github.com/IBM/sarama/pull/1195)). + +Bug Fixes: + - Fix build without cgo + ([#1182](https://github.com/IBM/sarama/pull/1182)). + - Fix go vet suggestion in consumer group file + ([#1209](https://github.com/IBM/sarama/pull/1209)). + - Fix typos in code and comments + ([#1228](https://github.com/IBM/sarama/pull/1228)). + +## Version 1.19.0 (2018-09-27) + +New Features: + - Implement a higher-level consumer group + ([#1099](https://github.com/IBM/sarama/pull/1099)). + +Improvements: + - Add support for Go 1.11 + ([#1176](https://github.com/IBM/sarama/pull/1176)). + +Bug Fixes: + - Fix encoding of `MetadataResponse` with version 2 and higher + ([#1174](https://github.com/IBM/sarama/pull/1174)). + - Fix race condition in mock async producer + ([#1174](https://github.com/IBM/sarama/pull/1174)). + +## Version 1.18.0 (2018-09-07) + +New Features: + - Make `Partitioner.RequiresConsistency` vary per-message + ([#1112](https://github.com/IBM/sarama/pull/1112)). + - Add customizable partitioner + ([#1118](https://github.com/IBM/sarama/pull/1118)). + - Add `ClusterAdmin` support for `CreateTopic`, `DeleteTopic`, `CreatePartitions`, + `DeleteRecords`, `DescribeConfig`, `AlterConfig`, `CreateACL`, `ListAcls`, `DeleteACL` + ([#1055](https://github.com/IBM/sarama/pull/1055)). + +Improvements: + - Add support for Kafka 2.0.0 + ([#1149](https://github.com/IBM/sarama/pull/1149)). + - Allow setting `LocalAddr` when dialing an address to support multi-homed hosts + ([#1123](https://github.com/IBM/sarama/pull/1123)). + - Simpler offset management + ([#1127](https://github.com/IBM/sarama/pull/1127)). + +Bug Fixes: + - Fix mutation of `ProducerMessage.MetaData` when producing to Kafka + ([#1110](https://github.com/IBM/sarama/pull/1110)). + - Fix consumer block when response did not contain all the + expected topic/partition blocks + ([#1086](https://github.com/IBM/sarama/pull/1086)). + - Fix consumer block when response contains only constrol messages + ([#1115](https://github.com/IBM/sarama/pull/1115)). + - Add timeout config for ClusterAdmin requests + ([#1142](https://github.com/IBM/sarama/pull/1142)). + - Add version check when producing message with headers + ([#1117](https://github.com/IBM/sarama/pull/1117)). + - Fix `MetadataRequest` for empty list of topics + ([#1132](https://github.com/IBM/sarama/pull/1132)). + - Fix producer topic metadata on-demand fetch when topic error happens in metadata response + ([#1125](https://github.com/IBM/sarama/pull/1125)). + +## Version 1.17.0 (2018-05-30) + +New Features: + - Add support for gzip compression levels + ([#1044](https://github.com/IBM/sarama/pull/1044)). + - Add support for Metadata request/response pairs versions v1 to v5 + ([#1047](https://github.com/IBM/sarama/pull/1047), + [#1069](https://github.com/IBM/sarama/pull/1069)). + - Add versioning to JoinGroup request/response pairs + ([#1098](https://github.com/IBM/sarama/pull/1098)) + - Add support for CreatePartitions, DeleteGroups, DeleteRecords request/response pairs + ([#1065](https://github.com/IBM/sarama/pull/1065), + [#1096](https://github.com/IBM/sarama/pull/1096), + [#1027](https://github.com/IBM/sarama/pull/1027)). + - Add `Controller()` method to Client interface + ([#1063](https://github.com/IBM/sarama/pull/1063)). + +Improvements: + - ConsumerMetadataReq/Resp has been migrated to FindCoordinatorReq/Resp + ([#1010](https://github.com/IBM/sarama/pull/1010)). + - Expose missing protocol parts: `msgSet` and `recordBatch` + ([#1049](https://github.com/IBM/sarama/pull/1049)). + - Add support for v1 DeleteTopics Request + ([#1052](https://github.com/IBM/sarama/pull/1052)). + - Add support for Go 1.10 + ([#1064](https://github.com/IBM/sarama/pull/1064)). + - Claim support for Kafka 1.1.0 + ([#1073](https://github.com/IBM/sarama/pull/1073)). + +Bug Fixes: + - Fix FindCoordinatorResponse.encode to allow nil Coordinator + ([#1050](https://github.com/IBM/sarama/pull/1050), + [#1051](https://github.com/IBM/sarama/pull/1051)). + - Clear all metadata when we have the latest topic info + ([#1033](https://github.com/IBM/sarama/pull/1033)). + - Make `PartitionConsumer.Close` idempotent + ([#1092](https://github.com/IBM/sarama/pull/1092)). + +## Version 1.16.0 (2018-02-12) + +New Features: + - Add support for the Create/Delete Topics request/response pairs + ([#1007](https://github.com/IBM/sarama/pull/1007), + [#1008](https://github.com/IBM/sarama/pull/1008)). + - Add support for the Describe/Create/Delete ACL request/response pairs + ([#1009](https://github.com/IBM/sarama/pull/1009)). + - Add support for the five transaction-related request/response pairs + ([#1016](https://github.com/IBM/sarama/pull/1016)). + +Improvements: + - Permit setting version on mock producer responses + ([#999](https://github.com/IBM/sarama/pull/999)). + - Add `NewMockBrokerListener` helper for testing TLS connections + ([#1019](https://github.com/IBM/sarama/pull/1019)). + - Changed the default value for `Consumer.Fetch.Default` from 32KiB to 1MiB + which results in much higher throughput in most cases + ([#1024](https://github.com/IBM/sarama/pull/1024)). + - Reuse the `time.Ticker` across fetch requests in the PartitionConsumer to + reduce CPU and memory usage when processing many partitions + ([#1028](https://github.com/IBM/sarama/pull/1028)). + - Assign relative offsets to messages in the producer to save the brokers a + recompression pass + ([#1002](https://github.com/IBM/sarama/pull/1002), + [#1015](https://github.com/IBM/sarama/pull/1015)). + +Bug Fixes: + - Fix producing uncompressed batches with the new protocol format + ([#1032](https://github.com/IBM/sarama/issues/1032)). + - Fix consuming compacted topics with the new protocol format + ([#1005](https://github.com/IBM/sarama/issues/1005)). + - Fix consuming topics with a mix of protocol formats + ([#1021](https://github.com/IBM/sarama/issues/1021)). + - Fix consuming when the broker includes multiple batches in a single response + ([#1022](https://github.com/IBM/sarama/issues/1022)). + - Fix detection of `PartialTrailingMessage` when the partial message was + truncated before the magic value indicating its version + ([#1030](https://github.com/IBM/sarama/pull/1030)). + - Fix expectation-checking in the mock of `SyncProducer.SendMessages` + ([#1035](https://github.com/IBM/sarama/pull/1035)). + +## Version 1.15.0 (2017-12-08) + +New Features: + - Claim official support for Kafka 1.0, though it did already work + ([#984](https://github.com/IBM/sarama/pull/984)). + - Helper methods for Kafka version numbers to/from strings + ([#989](https://github.com/IBM/sarama/pull/989)). + - Implement CreatePartitions request/response + ([#985](https://github.com/IBM/sarama/pull/985)). + +Improvements: + - Add error codes 45-60 + ([#986](https://github.com/IBM/sarama/issues/986)). + +Bug Fixes: + - Fix slow consuming for certain Kafka 0.11/1.0 configurations + ([#982](https://github.com/IBM/sarama/pull/982)). + - Correctly determine when a FetchResponse contains the new message format + ([#990](https://github.com/IBM/sarama/pull/990)). + - Fix producing with multiple headers + ([#996](https://github.com/IBM/sarama/pull/996)). + - Fix handling of truncated record batches + ([#998](https://github.com/IBM/sarama/pull/998)). + - Fix leaking metrics when closing brokers + ([#991](https://github.com/IBM/sarama/pull/991)). + +## Version 1.14.0 (2017-11-13) + +New Features: + - Add support for the new Kafka 0.11 record-batch format, including the wire + protocol and the necessary behavioural changes in the producer and consumer. + Transactions and idempotency are not yet supported, but producing and + consuming should work with all the existing bells and whistles (batching, + compression, etc) as well as the new custom headers. Thanks to Vlad Hanciuta + of Arista Networks for this work. Part of + ([#901](https://github.com/IBM/sarama/issues/901)). + +Bug Fixes: + - Fix encoding of ProduceResponse versions in test + ([#970](https://github.com/IBM/sarama/pull/970)). + - Return partial replicas list when we have it + ([#975](https://github.com/IBM/sarama/pull/975)). + +## Version 1.13.0 (2017-10-04) + +New Features: + - Support for FetchRequest version 3 + ([#905](https://github.com/IBM/sarama/pull/905)). + - Permit setting version on mock FetchResponses + ([#939](https://github.com/IBM/sarama/pull/939)). + - Add a configuration option to support storing only minimal metadata for + extremely large clusters + ([#937](https://github.com/IBM/sarama/pull/937)). + - Add `PartitionOffsetManager.ResetOffset` for backtracking tracked offsets + ([#932](https://github.com/IBM/sarama/pull/932)). + +Improvements: + - Provide the block-level timestamp when consuming compressed messages + ([#885](https://github.com/IBM/sarama/issues/885)). + - `Client.Replicas` and `Client.InSyncReplicas` now respect the order returned + by the broker, which can be meaningful + ([#930](https://github.com/IBM/sarama/pull/930)). + - Use a `Ticker` to reduce consumer timer overhead at the cost of higher + variance in the actual timeout + ([#933](https://github.com/IBM/sarama/pull/933)). + +Bug Fixes: + - Gracefully handle messages with negative timestamps + ([#907](https://github.com/IBM/sarama/pull/907)). + - Raise a proper error when encountering an unknown message version + ([#940](https://github.com/IBM/sarama/pull/940)). + +## Version 1.12.0 (2017-05-08) + +New Features: + - Added support for the `ApiVersions` request and response pair, and Kafka + version 0.10.2 ([#867](https://github.com/IBM/sarama/pull/867)). Note + that you still need to specify the Kafka version in the Sarama configuration + for the time being. + - Added a `Brokers` method to the Client which returns the complete set of + active brokers ([#813](https://github.com/IBM/sarama/pull/813)). + - Added an `InSyncReplicas` method to the Client which returns the set of all + in-sync broker IDs for the given partition, now that the Kafka versions for + which this was misleading are no longer in our supported set + ([#872](https://github.com/IBM/sarama/pull/872)). + - Added a `NewCustomHashPartitioner` method which allows constructing a hash + partitioner with a custom hash method in case the default (FNV-1a) is not + suitable + ([#837](https://github.com/IBM/sarama/pull/837), + [#841](https://github.com/IBM/sarama/pull/841)). + +Improvements: + - Recognize more Kafka error codes + ([#859](https://github.com/IBM/sarama/pull/859)). + +Bug Fixes: + - Fix an issue where decoding a malformed FetchRequest would not return the + correct error ([#818](https://github.com/IBM/sarama/pull/818)). + - Respect ordering of group protocols in JoinGroupRequests. This fix is + transparent if you're using the `AddGroupProtocol` or + `AddGroupProtocolMetadata` helpers; otherwise you will need to switch from + the `GroupProtocols` field (now deprecated) to use `OrderedGroupProtocols` + ([#812](https://github.com/IBM/sarama/issues/812)). + - Fix an alignment-related issue with atomics on 32-bit architectures + ([#859](https://github.com/IBM/sarama/pull/859)). + +## Version 1.11.0 (2016-12-20) + +_Important:_ As of Sarama 1.11 it is necessary to set the config value of +`Producer.Return.Successes` to true in order to use the SyncProducer. Previous +versions would silently override this value when instantiating a SyncProducer +which led to unexpected values and data races. + +New Features: + - Metrics! Thanks to Sébastien Launay for all his work on this feature + ([#701](https://github.com/IBM/sarama/pull/701), + [#746](https://github.com/IBM/sarama/pull/746), + [#766](https://github.com/IBM/sarama/pull/766)). + - Add support for LZ4 compression + ([#786](https://github.com/IBM/sarama/pull/786)). + - Add support for ListOffsetRequest v1 and Kafka 0.10.1 + ([#775](https://github.com/IBM/sarama/pull/775)). + - Added a `HighWaterMarks` method to the Consumer which aggregates the + `HighWaterMarkOffset` values of its child topic/partitions + ([#769](https://github.com/IBM/sarama/pull/769)). + +Bug Fixes: + - Fixed producing when using timestamps, compression and Kafka 0.10 + ([#759](https://github.com/IBM/sarama/pull/759)). + - Added missing decoder methods to DescribeGroups response + ([#756](https://github.com/IBM/sarama/pull/756)). + - Fix producer shutdown when `Return.Errors` is disabled + ([#787](https://github.com/IBM/sarama/pull/787)). + - Don't mutate configuration in SyncProducer + ([#790](https://github.com/IBM/sarama/pull/790)). + - Fix crash on SASL initialization failure + ([#795](https://github.com/IBM/sarama/pull/795)). + +## Version 1.10.1 (2016-08-30) + +Bug Fixes: + - Fix the documentation for `HashPartitioner` which was incorrect + ([#717](https://github.com/IBM/sarama/pull/717)). + - Permit client creation even when it is limited by ACLs + ([#722](https://github.com/IBM/sarama/pull/722)). + - Several fixes to the consumer timer optimization code, regressions introduced + in v1.10.0. Go's timers are finicky + ([#730](https://github.com/IBM/sarama/pull/730), + [#733](https://github.com/IBM/sarama/pull/733), + [#734](https://github.com/IBM/sarama/pull/734)). + - Handle consuming compressed relative offsets with Kafka 0.10 + ([#735](https://github.com/IBM/sarama/pull/735)). + +## Version 1.10.0 (2016-08-02) + +_Important:_ As of Sarama 1.10 it is necessary to tell Sarama the version of +Kafka you are running against (via the `config.Version` value) in order to use +features that may not be compatible with old Kafka versions. If you don't +specify this value it will default to 0.8.2 (the minimum supported), and trying +to use more recent features (like the offset manager) will fail with an error. + +_Also:_ The offset-manager's behaviour has been changed to match the upstream +java consumer (see [#705](https://github.com/IBM/sarama/pull/705) and +[#713](https://github.com/IBM/sarama/pull/713)). If you use the +offset-manager, please ensure that you are committing one *greater* than the +last consumed message offset or else you may end up consuming duplicate +messages. + +New Features: + - Support for Kafka 0.10 + ([#672](https://github.com/IBM/sarama/pull/672), + [#678](https://github.com/IBM/sarama/pull/678), + [#681](https://github.com/IBM/sarama/pull/681), and others). + - Support for configuring the target Kafka version + ([#676](https://github.com/IBM/sarama/pull/676)). + - Batch producing support in the SyncProducer + ([#677](https://github.com/IBM/sarama/pull/677)). + - Extend producer mock to allow setting expectations on message contents + ([#667](https://github.com/IBM/sarama/pull/667)). + +Improvements: + - Support `nil` compressed messages for deleting in compacted topics + ([#634](https://github.com/IBM/sarama/pull/634)). + - Pre-allocate decoding errors, greatly reducing heap usage and GC time against + misbehaving brokers ([#690](https://github.com/IBM/sarama/pull/690)). + - Re-use consumer expiry timers, removing one allocation per consumed message + ([#707](https://github.com/IBM/sarama/pull/707)). + +Bug Fixes: + - Actually default the client ID to "sarama" like we say we do + ([#664](https://github.com/IBM/sarama/pull/664)). + - Fix a rare issue where `Client.Leader` could return the wrong error + ([#685](https://github.com/IBM/sarama/pull/685)). + - Fix a possible tight loop in the consumer + ([#693](https://github.com/IBM/sarama/pull/693)). + - Match upstream's offset-tracking behaviour + ([#705](https://github.com/IBM/sarama/pull/705)). + - Report UnknownTopicOrPartition errors from the offset manager + ([#706](https://github.com/IBM/sarama/pull/706)). + - Fix possible negative partition value from the HashPartitioner + ([#709](https://github.com/IBM/sarama/pull/709)). + +## Version 1.9.0 (2016-05-16) + +New Features: + - Add support for custom offset manager retention durations + ([#602](https://github.com/IBM/sarama/pull/602)). + - Publish low-level mocks to enable testing of third-party producer/consumer + implementations ([#570](https://github.com/IBM/sarama/pull/570)). + - Declare support for Golang 1.6 + ([#611](https://github.com/IBM/sarama/pull/611)). + - Support for SASL plain-text auth + ([#648](https://github.com/IBM/sarama/pull/648)). + +Improvements: + - Simplified broker locking scheme slightly + ([#604](https://github.com/IBM/sarama/pull/604)). + - Documentation cleanup + ([#605](https://github.com/IBM/sarama/pull/605), + [#621](https://github.com/IBM/sarama/pull/621), + [#654](https://github.com/IBM/sarama/pull/654)). + +Bug Fixes: + - Fix race condition shutting down the OffsetManager + ([#658](https://github.com/IBM/sarama/pull/658)). + +## Version 1.8.0 (2016-02-01) + +New Features: + - Full support for Kafka 0.9: + - All protocol messages and fields + ([#586](https://github.com/IBM/sarama/pull/586), + [#588](https://github.com/IBM/sarama/pull/588), + [#590](https://github.com/IBM/sarama/pull/590)). + - Verified that TLS support works + ([#581](https://github.com/IBM/sarama/pull/581)). + - Fixed the OffsetManager compatibility + ([#585](https://github.com/IBM/sarama/pull/585)). + +Improvements: + - Optimize for fewer system calls when reading from the network + ([#584](https://github.com/IBM/sarama/pull/584)). + - Automatically retry `InvalidMessage` errors to match upstream behaviour + ([#589](https://github.com/IBM/sarama/pull/589)). + +## Version 1.7.0 (2015-12-11) + +New Features: + - Preliminary support for Kafka 0.9 + ([#572](https://github.com/IBM/sarama/pull/572)). This comes with several + caveats: + - Protocol-layer support is mostly in place + ([#577](https://github.com/IBM/sarama/pull/577)), however Kafka 0.9 + renamed some messages and fields, which we did not in order to preserve API + compatibility. + - The producer and consumer work against 0.9, but the offset manager does + not ([#573](https://github.com/IBM/sarama/pull/573)). + - TLS support may or may not work + ([#581](https://github.com/IBM/sarama/pull/581)). + +Improvements: + - Don't wait for request timeouts on dead brokers, greatly speeding recovery + when the TCP connection is left hanging + ([#548](https://github.com/IBM/sarama/pull/548)). + - Refactored part of the producer. The new version provides a much more elegant + solution to [#449](https://github.com/IBM/sarama/pull/449). It is also + slightly more efficient, and much more precise in calculating batch sizes + when compression is used + ([#549](https://github.com/IBM/sarama/pull/549), + [#550](https://github.com/IBM/sarama/pull/550), + [#551](https://github.com/IBM/sarama/pull/551)). + +Bug Fixes: + - Fix race condition in consumer test mock + ([#553](https://github.com/IBM/sarama/pull/553)). + +## Version 1.6.1 (2015-09-25) + +Bug Fixes: + - Fix panic that could occur if a user-supplied message value failed to encode + ([#449](https://github.com/IBM/sarama/pull/449)). + +## Version 1.6.0 (2015-09-04) + +New Features: + - Implementation of a consumer offset manager using the APIs introduced in + Kafka 0.8.2. The API is designed mainly for integration into a future + high-level consumer, not for direct use, although it is *possible* to use it + directly. + ([#461](https://github.com/IBM/sarama/pull/461)). + +Improvements: + - CRC32 calculation is much faster on machines with SSE4.2 instructions, + removing a major hotspot from most profiles + ([#255](https://github.com/IBM/sarama/pull/255)). + +Bug Fixes: + - Make protocol decoding more robust against some malformed packets generated + by go-fuzz ([#523](https://github.com/IBM/sarama/pull/523), + [#525](https://github.com/IBM/sarama/pull/525)) or found in other ways + ([#528](https://github.com/IBM/sarama/pull/528)). + - Fix a potential race condition panic in the consumer on shutdown + ([#529](https://github.com/IBM/sarama/pull/529)). + +## Version 1.5.0 (2015-08-17) + +New Features: + - TLS-encrypted network connections are now supported. This feature is subject + to change when Kafka releases built-in TLS support, but for now this is + enough to work with TLS-terminating proxies + ([#154](https://github.com/IBM/sarama/pull/154)). + +Improvements: + - The consumer will not block if a single partition is not drained by the user; + all other partitions will continue to consume normally + ([#485](https://github.com/IBM/sarama/pull/485)). + - Formatting of error strings has been much improved + ([#495](https://github.com/IBM/sarama/pull/495)). + - Internal refactoring of the producer for code cleanliness and to enable + future work ([#300](https://github.com/IBM/sarama/pull/300)). + +Bug Fixes: + - Fix a potential deadlock in the consumer on shutdown + ([#475](https://github.com/IBM/sarama/pull/475)). + +## Version 1.4.3 (2015-07-21) + +Bug Fixes: + - Don't include the partitioner in the producer's "fetch partitions" + circuit-breaker ([#466](https://github.com/IBM/sarama/pull/466)). + - Don't retry messages until the broker is closed when abandoning a broker in + the producer ([#468](https://github.com/IBM/sarama/pull/468)). + - Update the import path for snappy-go, it has moved again and the API has + changed slightly ([#486](https://github.com/IBM/sarama/pull/486)). + +## Version 1.4.2 (2015-05-27) + +Bug Fixes: + - Update the import path for snappy-go, it has moved from google code to github + ([#456](https://github.com/IBM/sarama/pull/456)). + +## Version 1.4.1 (2015-05-25) + +Improvements: + - Optimizations when decoding snappy messages, thanks to John Potocny + ([#446](https://github.com/IBM/sarama/pull/446)). + +Bug Fixes: + - Fix hypothetical race conditions on producer shutdown + ([#450](https://github.com/IBM/sarama/pull/450), + [#451](https://github.com/IBM/sarama/pull/451)). + +## Version 1.4.0 (2015-05-01) + +New Features: + - The consumer now implements `Topics()` and `Partitions()` methods to enable + users to dynamically choose what topics/partitions to consume without + instantiating a full client + ([#431](https://github.com/IBM/sarama/pull/431)). + - The partition-consumer now exposes the high water mark offset value returned + by the broker via the `HighWaterMarkOffset()` method ([#339](https://github.com/IBM/sarama/pull/339)). + - Added a `kafka-console-consumer` tool capable of handling multiple + partitions, and deprecated the now-obsolete `kafka-console-partitionConsumer` + ([#439](https://github.com/IBM/sarama/pull/439), + [#442](https://github.com/IBM/sarama/pull/442)). + +Improvements: + - The producer's logging during retry scenarios is more consistent, more + useful, and slightly less verbose + ([#429](https://github.com/IBM/sarama/pull/429)). + - The client now shuffles its initial list of seed brokers in order to prevent + thundering herd on the first broker in the list + ([#441](https://github.com/IBM/sarama/pull/441)). + +Bug Fixes: + - The producer now correctly manages its state if retries occur when it is + shutting down, fixing several instances of confusing behaviour and at least + one potential deadlock ([#419](https://github.com/IBM/sarama/pull/419)). + - The consumer now handles messages for different partitions asynchronously, + making it much more resilient to specific user code ordering + ([#325](https://github.com/IBM/sarama/pull/325)). + +## Version 1.3.0 (2015-04-16) + +New Features: + - The client now tracks consumer group coordinators using + ConsumerMetadataRequests similar to how it tracks partition leadership using + regular MetadataRequests ([#411](https://github.com/IBM/sarama/pull/411)). + This adds two methods to the client API: + - `Coordinator(consumerGroup string) (*Broker, error)` + - `RefreshCoordinator(consumerGroup string) error` + +Improvements: + - ConsumerMetadataResponses now automatically create a Broker object out of the + ID/address/port combination for the Coordinator; accessing the fields + individually has been deprecated + ([#413](https://github.com/IBM/sarama/pull/413)). + - Much improved handling of `OffsetOutOfRange` errors in the consumer. + Consumers will fail to start if the provided offset is out of range + ([#418](https://github.com/IBM/sarama/pull/418)) + and they will automatically shut down if the offset falls out of range + ([#424](https://github.com/IBM/sarama/pull/424)). + - Small performance improvement in encoding and decoding protocol messages + ([#427](https://github.com/IBM/sarama/pull/427)). + +Bug Fixes: + - Fix a rare race condition in the client's background metadata refresher if + it happens to be activated while the client is being closed + ([#422](https://github.com/IBM/sarama/pull/422)). + +## Version 1.2.0 (2015-04-07) + +Improvements: + - The producer's behaviour when `Flush.Frequency` is set is now more intuitive + ([#389](https://github.com/IBM/sarama/pull/389)). + - The producer is now somewhat more memory-efficient during and after retrying + messages due to an improved queue implementation + ([#396](https://github.com/IBM/sarama/pull/396)). + - The consumer produces much more useful logging output when leadership + changes ([#385](https://github.com/IBM/sarama/pull/385)). + - The client's `GetOffset` method will now automatically refresh metadata and + retry once in the event of stale information or similar + ([#394](https://github.com/IBM/sarama/pull/394)). + - Broker connections now have support for using TCP keepalives + ([#407](https://github.com/IBM/sarama/issues/407)). + +Bug Fixes: + - The OffsetCommitRequest message now correctly implements all three possible + API versions ([#390](https://github.com/IBM/sarama/pull/390), + [#400](https://github.com/IBM/sarama/pull/400)). + +## Version 1.1.0 (2015-03-20) + +Improvements: + - Wrap the producer's partitioner call in a circuit-breaker so that repeatedly + broken topics don't choke throughput + ([#373](https://github.com/IBM/sarama/pull/373)). + +Bug Fixes: + - Fix the producer's internal reference counting in certain unusual scenarios + ([#367](https://github.com/IBM/sarama/pull/367)). + - Fix the consumer's internal reference counting in certain unusual scenarios + ([#369](https://github.com/IBM/sarama/pull/369)). + - Fix a condition where the producer's internal control messages could have + gotten stuck ([#368](https://github.com/IBM/sarama/pull/368)). + - Fix an issue where invalid partition lists would be cached when asking for + metadata for a non-existant topic ([#372](https://github.com/IBM/sarama/pull/372)). + + +## Version 1.0.0 (2015-03-17) + +Version 1.0.0 is the first tagged version, and is almost a complete rewrite. The primary differences with previous untagged versions are: + +- The producer has been rewritten; there is now a `SyncProducer` with a blocking API, and an `AsyncProducer` that is non-blocking. +- The consumer has been rewritten to only open one connection per broker instead of one connection per partition. +- The main types of Sarama are now interfaces to make depedency injection easy; mock implementations for `Consumer`, `SyncProducer` and `AsyncProducer` are provided in the `github.com/IBM/sarama/mocks` package. +- For most uses cases, it is no longer necessary to open a `Client`; this will be done for you. +- All the configuration values have been unified in the `Config` struct. +- Much improved test suite. diff --git a/vendor/github.com/IBM/sarama/CODE_OF_CONDUCT.md b/vendor/github.com/IBM/sarama/CODE_OF_CONDUCT.md new file mode 100644 index 000000000..8470ec5ce --- /dev/null +++ b/vendor/github.com/IBM/sarama/CODE_OF_CONDUCT.md @@ -0,0 +1,128 @@ +# Contributor Covenant Code of Conduct + +## Our Pledge + +We as members, contributors, and leaders pledge to make participation in our +community a harassment-free experience for everyone, regardless of age, body +size, visible or invisible disability, ethnicity, sex characteristics, gender +identity and expression, level of experience, education, socio-economic status, +nationality, personal appearance, race, religion, or sexual identity +and orientation. + +We pledge to act and interact in ways that contribute to an open, welcoming, +diverse, inclusive, and healthy community. + +## Our Standards + +Examples of behavior that contributes to a positive environment for our +community include: + +* Demonstrating empathy and kindness toward other people +* Being respectful of differing opinions, viewpoints, and experiences +* Giving and gracefully accepting constructive feedback +* Accepting responsibility and apologizing to those affected by our mistakes, + and learning from the experience +* Focusing on what is best not just for us as individuals, but for the + overall community + +Examples of unacceptable behavior include: + +* The use of sexualized language or imagery, and sexual attention or + advances of any kind +* Trolling, insulting or derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or email + address, without their explicit permission +* Other conduct which could reasonably be considered inappropriate in a + professional setting + +## Enforcement Responsibilities + +Community leaders are responsible for clarifying and enforcing our standards of +acceptable behavior and will take appropriate and fair corrective action in +response to any behavior that they deem inappropriate, threatening, offensive, +or harmful. + +Community leaders have the right and responsibility to remove, edit, or reject +comments, commits, code, wiki edits, issues, and other contributions that are +not aligned to this Code of Conduct, and will communicate reasons for moderation +decisions when appropriate. + +## Scope + +This Code of Conduct applies within all community spaces, and also applies when +an individual is officially representing the community in public spaces. +Examples of representing our community include using an official e-mail address, +posting via an official social media account, or acting as an appointed +representative at an online or offline event. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported to the community leaders responsible for enforcement at +dominic.evans@uk.ibm.com. +All complaints will be reviewed and investigated promptly and fairly. + +All community leaders are obligated to respect the privacy and security of the +reporter of any incident. + +## Enforcement Guidelines + +Community leaders will follow these Community Impact Guidelines in determining +the consequences for any action they deem in violation of this Code of Conduct: + +### 1. Correction + +**Community Impact**: Use of inappropriate language or other behavior deemed +unprofessional or unwelcome in the community. + +**Consequence**: A private, written warning from community leaders, providing +clarity around the nature of the violation and an explanation of why the +behavior was inappropriate. A public apology may be requested. + +### 2. Warning + +**Community Impact**: A violation through a single incident or series +of actions. + +**Consequence**: A warning with consequences for continued behavior. No +interaction with the people involved, including unsolicited interaction with +those enforcing the Code of Conduct, for a specified period of time. This +includes avoiding interactions in community spaces as well as external channels +like social media. Violating these terms may lead to a temporary or +permanent ban. + +### 3. Temporary Ban + +**Community Impact**: A serious violation of community standards, including +sustained inappropriate behavior. + +**Consequence**: A temporary ban from any sort of interaction or public +communication with the community for a specified period of time. No public or +private interaction with the people involved, including unsolicited interaction +with those enforcing the Code of Conduct, is allowed during this period. +Violating these terms may lead to a permanent ban. + +### 4. Permanent Ban + +**Community Impact**: Demonstrating a pattern of violation of community +standards, including sustained inappropriate behavior, harassment of an +individual, or aggression toward or disparagement of classes of individuals. + +**Consequence**: A permanent ban from any sort of public interaction within +the community. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], +version 2.0, available at +https://www.contributor-covenant.org/version/2/0/code_of_conduct.html. + +Community Impact Guidelines were inspired by [Mozilla's code of conduct +enforcement ladder](https://github.com/mozilla/diversity). + +[homepage]: https://www.contributor-covenant.org + +For answers to common questions about this code of conduct, see the FAQ at +https://www.contributor-covenant.org/faq. Translations are available at +https://www.contributor-covenant.org/translations. diff --git a/vendor/github.com/IBM/sarama/CONTRIBUTING.md b/vendor/github.com/IBM/sarama/CONTRIBUTING.md new file mode 100644 index 000000000..bb88127c0 --- /dev/null +++ b/vendor/github.com/IBM/sarama/CONTRIBUTING.md @@ -0,0 +1,77 @@ +# Contributing + +[fork]: https://github.com/IBM/sarama/fork +[pr]: https://github.com/IBM/sarama/compare +[released]: https://help.github.com/articles/github-terms-of-service/#6-contributions-under-repository-license + +Hi there! We are thrilled that you would like to contribute to Sarama. +Contributions are always welcome, both reporting issues and submitting pull requests! + +## Reporting issues + +Please make sure to include any potentially useful information in the issue, so we can pinpoint the issue faster without going back and forth. + +- What SHA of Sarama are you running? If this is not the latest SHA on the main branch, please try if the problem persists with the latest version. +- You can set `sarama.Logger` to a [log.Logger](http://golang.org/pkg/log/#Logger) instance to capture debug output. Please include it in your issue description. +- Also look at the logs of the Kafka broker you are connected to. If you see anything out of the ordinary, please include it. + +Also, please include the following information about your environment, so we can help you faster: + +- What version of Kafka are you using? +- What version of Go are you using? +- What are the values of your Producer/Consumer/Client configuration? + + +## Contributing a change + +Contributions to this project are [released][released] to the public under the project's [opensource license](LICENSE.md). +By contributing to this project you agree to the [Developer Certificate of Origin](https://developercertificate.org/) (DCO). +The DCO was created by the Linux Kernel community and is a simple statement that you, as a contributor, wrote or otherwise have the legal right to contribute those changes. + +Contributors must _sign-off_ that they adhere to these requirements by adding a `Signed-off-by` line to all commit messages with an email address that matches the commit author: + +``` +feat: this is my commit message + +Signed-off-by: Random J Developer +``` + +Git even has a `-s` command line option to append this automatically to your +commit message: + +``` +$ git commit -s -m 'This is my commit message' +``` + +Because this library is in production use by many people and applications, we code review all additions. +To make the review process go as smooth as possible, please consider the following. + +- If you plan to work on something major, please open an issue to discuss the design first. +- Don't break backwards compatibility. If you really have to, open an issue to discuss this first. +- Make sure to use the `go fmt` command to format your code according to the standards. Even better, set up your editor to do this for you when saving. +- Run [go vet](https://golang.org/cmd/vet/) to detect any suspicious constructs in your code that could be bugs. +- Explicitly handle all error return values. If you really want to ignore an error value, you can assign it to `_`. You can use [errcheck](https://github.com/kisielk/errcheck) to verify whether you have handled all errors. +- You may also want to run [golint](https://github.com/golang/lint) as well to detect style problems. +- Add tests that cover the changes you made. Make sure to run `go test` with the `-race` argument to test for race conditions. +- Make sure your code is supported by all the Go versions we support. + You can rely on GitHub Actions for testing older Go versions. + +## Submitting a pull request + +0. [Fork][fork] and clone the repository +1. Create a new branch: `git checkout -b my-branch-name` +2. Make your change, push to your fork and [submit a pull request][pr] +3. Wait for your pull request to be reviewed and merged. + +Here are a few things you can do that will increase the likelihood of your pull request being accepted: + +- Keep your change as focused as possible. If there are multiple changes you would like to make that are not dependent upon each other, consider submitting them as separate pull requests. +- Write a [good commit message](http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html). + +## Further Reading + +- [Developer Certificate of Origin versus Contributor License Agreements](https://julien.ponge.org/blog/developer-certificate-of-origin-versus-contributor-license-agreements/) +- [The most powerful contributor agreement](https://lwn.net/Articles/592503/) +- [How to Contribute to Open Source](https://opensource.guide/how-to-contribute/) +- [Using Pull Requests](https://help.github.com/articles/about-pull-requests/) +- [GitHub Help](https://help.github.com) diff --git a/vendor/github.com/IBM/sarama/Dockerfile.kafka b/vendor/github.com/IBM/sarama/Dockerfile.kafka new file mode 100644 index 000000000..186c2eb18 --- /dev/null +++ b/vendor/github.com/IBM/sarama/Dockerfile.kafka @@ -0,0 +1,47 @@ +FROM registry.access.redhat.com/ubi8/ubi-minimal:8.8@sha256:b93deceb59a58588d5b16429fc47f98920f84740a1f2ed6454e33275f0701b59 + +USER root + +RUN microdnf update -y \ + && microdnf install -y curl gzip java-11-openjdk-headless tar tzdata-java \ + && microdnf reinstall -y tzdata \ + && microdnf clean all + +ENV JAVA_HOME=/usr/lib/jvm/jre-11 + +# https://docs.oracle.com/javase/7/docs/technotes/guides/net/properties.html +# Ensure Java doesn't cache any dns results +RUN cd /etc/java/java-11-openjdk/*/conf/security \ + && sed -e '/networkaddress.cache.ttl/d' -e '/networkaddress.cache.negative.ttl/d' -i java.security \ + && echo 'networkaddress.cache.ttl=0' >> java.security \ + && echo 'networkaddress.cache.negative.ttl=0' >> java.security + +ARG SCALA_VERSION="2.13" +ARG KAFKA_VERSION="3.6.0" + +# https://github.com/apache/kafka/blob/9989b68d0d38c8f1357f78bf9d53a58c1476188d/tests/docker/Dockerfile#L46-L72 +ARG KAFKA_MIRROR="https://s3-us-west-2.amazonaws.com/kafka-packages" +SHELL ["/bin/bash", "-o", "pipefail", "-c"] +RUN mkdir -p "/opt/kafka-${KAFKA_VERSION}" \ + && chmod a+rw "/opt/kafka-${KAFKA_VERSION}" \ + && curl -s "$KAFKA_MIRROR/kafka_${SCALA_VERSION}-${KAFKA_VERSION}.tgz" | tar xz --strip-components=1 -C "/opt/kafka-${KAFKA_VERSION}" + +# older kafka versions depend upon jaxb-api being bundled with the JDK, but it +# was removed from Java 11 so work around that by including it in the kafka +# libs dir regardless +WORKDIR /tmp +RUN curl -sLO "https://repo1.maven.org/maven2/javax/xml/bind/jaxb-api/2.3.0/jaxb-api-2.3.0.jar" \ + && for DIR in /opt/kafka-*; do cp -v jaxb-api-2.3.0.jar $DIR/libs/ ; done \ + && rm -f jaxb-api-2.3.0.jar + +WORKDIR /opt/kafka-${KAFKA_VERSION} + +ENV JAVA_MAJOR_VERSION=11 + +RUN sed -e "s/JAVA_MAJOR_VERSION=.*/JAVA_MAJOR_VERSION=${JAVA_MAJOR_VERSION}/" -i"" ./bin/kafka-run-class.sh + +COPY entrypoint.sh / + +USER 65534:65534 + +ENTRYPOINT ["/entrypoint.sh"] diff --git a/vendor/github.com/Shopify/sarama/LICENSE b/vendor/github.com/IBM/sarama/LICENSE.md similarity index 95% rename from vendor/github.com/Shopify/sarama/LICENSE rename to vendor/github.com/IBM/sarama/LICENSE.md index d2bf4352f..f8f64d417 100644 --- a/vendor/github.com/Shopify/sarama/LICENSE +++ b/vendor/github.com/IBM/sarama/LICENSE.md @@ -1,5 +1,9 @@ +# MIT License + Copyright (c) 2013 Shopify +Copyright (c) 2023 IBM Corporation + 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 diff --git a/vendor/github.com/Shopify/sarama/Makefile b/vendor/github.com/IBM/sarama/Makefile similarity index 100% rename from vendor/github.com/Shopify/sarama/Makefile rename to vendor/github.com/IBM/sarama/Makefile diff --git a/vendor/github.com/Shopify/sarama/README.md b/vendor/github.com/IBM/sarama/README.md similarity index 63% rename from vendor/github.com/Shopify/sarama/README.md rename to vendor/github.com/IBM/sarama/README.md index 0ee6e6a7f..4534d7b41 100644 --- a/vendor/github.com/Shopify/sarama/README.md +++ b/vendor/github.com/IBM/sarama/README.md @@ -1,18 +1,19 @@ # sarama -[![Go Reference](https://pkg.go.dev/badge/github.com/Shopify/sarama.svg)](https://pkg.go.dev/github.com/Shopify/sarama) -[![Coverage](https://codecov.io/gh/Shopify/sarama/branch/main/graph/badge.svg)](https://codecov.io/gh/Shopify/sarama) +[![Go Reference](https://pkg.go.dev/badge/github.com/IBM/sarama.svg)](https://pkg.go.dev/github.com/IBM/sarama) +[![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/IBM/sarama/badge?style=flat)](https://securityscorecards.dev/viewer/?uri=github.com/IBM/sarama) +[![OpenSSF Best Practices](https://www.bestpractices.dev/projects/7996/badge)](https://www.bestpractices.dev/projects/7996) Sarama is an MIT-licensed Go client library for [Apache Kafka](https://kafka.apache.org/). ## Getting started -- API documentation and examples are available via [pkg.go.dev](https://pkg.go.dev/github.com/Shopify/sarama). +- API documentation and examples are available via [pkg.go.dev](https://pkg.go.dev/github.com/IBM/sarama). - Mocks for testing are available in the [mocks](./mocks) subpackage. - The [examples](./examples) directory contains more elaborate example applications. - The [tools](./tools) directory contains command line tools that can be useful for testing, diagnostics, and instrumentation. -You might also want to look at the [Frequently Asked Questions](https://github.com/Shopify/sarama/wiki/Frequently-Asked-Questions). +You might also want to look at the [Frequently Asked Questions](https://github.com/IBM/sarama/wiki/Frequently-Asked-Questions). ## Compatibility and API stability @@ -20,14 +21,15 @@ Sarama provides a "2 releases + 2 months" compatibility guarantee: we support the two latest stable releases of Kafka and Go, and we provide a two month grace period for older releases. However, older releases of Kafka are still likely to work. -Sarama follows semantic versioning and provides API stability via the gopkg.in service. -You can import a version with a guaranteed stable API via http://gopkg.in/Shopify/sarama.v1. +Sarama follows semantic versioning and provides API stability via the standard Go +[module version numbering](https://go.dev/doc/modules/version-numbers) scheme. + A changelog is available [here](CHANGELOG.md). ## Contributing -- Get started by checking our [contribution guidelines](https://github.com/Shopify/sarama/blob/main/.github/CONTRIBUTING.md). -- Read the [Sarama wiki](https://github.com/Shopify/sarama/wiki) for more technical and design details. +- Get started by checking our [contribution guidelines](https://github.com/IBM/sarama/blob/main/CONTRIBUTING.md). +- Read the [Sarama wiki](https://github.com/IBM/sarama/wiki) for more technical and design details. - The [Kafka Protocol Specification](https://cwiki.apache.org/confluence/display/KAFKA/A+Guide+To+The+Kafka+Protocol) contains a wealth of useful information. - For more general issues, there is [a google group](https://groups.google.com/forum/#!forum/kafka-clients) for Kafka client developers. - If you have any questions, just ask! diff --git a/vendor/github.com/IBM/sarama/SECURITY.md b/vendor/github.com/IBM/sarama/SECURITY.md new file mode 100644 index 000000000..b2f6e61fe --- /dev/null +++ b/vendor/github.com/IBM/sarama/SECURITY.md @@ -0,0 +1,11 @@ +# Security + +## Reporting Security Issues + +**Please do not report security vulnerabilities through public GitHub issues.** + +The easiest way to report a security issue is privately through GitHub [here](https://github.com/IBM/sarama/security/advisories/new). + +See [Privately reporting a security vulnerability](https://docs.github.com/en/code-security/security-advisories/guidance-on-reporting-and-writing/privately-reporting-a-security-vulnerability) for full instructions. + +Alternatively, you can report them via e-mail or anonymous form to the IBM Product Security Incident Response Team (PSIRT) following the guidelines under the [IBM Security Vulnerability Management](https://www.ibm.com/support/pages/ibm-security-vulnerability-management) pages. diff --git a/vendor/github.com/Shopify/sarama/Vagrantfile b/vendor/github.com/IBM/sarama/Vagrantfile similarity index 100% rename from vendor/github.com/Shopify/sarama/Vagrantfile rename to vendor/github.com/IBM/sarama/Vagrantfile diff --git a/vendor/github.com/Shopify/sarama/acl_bindings.go b/vendor/github.com/IBM/sarama/acl_bindings.go similarity index 100% rename from vendor/github.com/Shopify/sarama/acl_bindings.go rename to vendor/github.com/IBM/sarama/acl_bindings.go diff --git a/vendor/github.com/Shopify/sarama/acl_create_request.go b/vendor/github.com/IBM/sarama/acl_create_request.go similarity index 94% rename from vendor/github.com/Shopify/sarama/acl_create_request.go rename to vendor/github.com/IBM/sarama/acl_create_request.go index 449102f74..e581c984a 100644 --- a/vendor/github.com/Shopify/sarama/acl_create_request.go +++ b/vendor/github.com/IBM/sarama/acl_create_request.go @@ -51,6 +51,10 @@ func (c *CreateAclsRequest) headerVersion() int16 { return 1 } +func (c *CreateAclsRequest) isValidVersion() bool { + return c.Version >= 0 && c.Version <= 1 +} + func (c *CreateAclsRequest) requiredVersion() KafkaVersion { switch c.Version { case 1: diff --git a/vendor/github.com/Shopify/sarama/acl_create_response.go b/vendor/github.com/IBM/sarama/acl_create_response.go similarity index 86% rename from vendor/github.com/Shopify/sarama/acl_create_response.go rename to vendor/github.com/IBM/sarama/acl_create_response.go index 21d6c340c..d123ba863 100644 --- a/vendor/github.com/Shopify/sarama/acl_create_response.go +++ b/vendor/github.com/IBM/sarama/acl_create_response.go @@ -4,6 +4,7 @@ import "time" // CreateAclsResponse is a an acl response creation type type CreateAclsResponse struct { + Version int16 ThrottleTime time.Duration AclCreationResponses []*AclCreationResponse } @@ -52,15 +53,28 @@ func (c *CreateAclsResponse) key() int16 { } func (c *CreateAclsResponse) version() int16 { - return 0 + return c.Version } func (c *CreateAclsResponse) headerVersion() int16 { return 0 } +func (c *CreateAclsResponse) isValidVersion() bool { + return c.Version >= 0 && c.Version <= 1 +} + func (c *CreateAclsResponse) requiredVersion() KafkaVersion { - return V0_11_0_0 + switch c.Version { + case 1: + return V2_0_0_0 + default: + return V0_11_0_0 + } +} + +func (r *CreateAclsResponse) throttleTime() time.Duration { + return r.ThrottleTime } // AclCreationResponse is an acl creation response type diff --git a/vendor/github.com/Shopify/sarama/acl_delete_request.go b/vendor/github.com/IBM/sarama/acl_delete_request.go similarity index 92% rename from vendor/github.com/Shopify/sarama/acl_delete_request.go rename to vendor/github.com/IBM/sarama/acl_delete_request.go index 5e5c03bc2..abeb4425e 100644 --- a/vendor/github.com/Shopify/sarama/acl_delete_request.go +++ b/vendor/github.com/IBM/sarama/acl_delete_request.go @@ -52,6 +52,10 @@ func (d *DeleteAclsRequest) headerVersion() int16 { return 1 } +func (d *DeleteAclsRequest) isValidVersion() bool { + return d.Version >= 0 && d.Version <= 1 +} + func (d *DeleteAclsRequest) requiredVersion() KafkaVersion { switch d.Version { case 1: diff --git a/vendor/github.com/Shopify/sarama/acl_delete_response.go b/vendor/github.com/IBM/sarama/acl_delete_response.go similarity index 92% rename from vendor/github.com/Shopify/sarama/acl_delete_response.go rename to vendor/github.com/IBM/sarama/acl_delete_response.go index cd33749d5..2e2850b32 100644 --- a/vendor/github.com/Shopify/sarama/acl_delete_response.go +++ b/vendor/github.com/IBM/sarama/acl_delete_response.go @@ -60,8 +60,21 @@ func (d *DeleteAclsResponse) headerVersion() int16 { return 0 } +func (d *DeleteAclsResponse) isValidVersion() bool { + return d.Version >= 0 && d.Version <= 1 +} + func (d *DeleteAclsResponse) requiredVersion() KafkaVersion { - return V0_11_0_0 + switch d.Version { + case 1: + return V2_0_0_0 + default: + return V0_11_0_0 + } +} + +func (r *DeleteAclsResponse) throttleTime() time.Duration { + return r.ThrottleTime } // FilterResponse is a filter response type diff --git a/vendor/github.com/Shopify/sarama/acl_describe_request.go b/vendor/github.com/IBM/sarama/acl_describe_request.go similarity index 82% rename from vendor/github.com/Shopify/sarama/acl_describe_request.go rename to vendor/github.com/IBM/sarama/acl_describe_request.go index e0fe9023a..7d65bef14 100644 --- a/vendor/github.com/Shopify/sarama/acl_describe_request.go +++ b/vendor/github.com/IBM/sarama/acl_describe_request.go @@ -1,6 +1,6 @@ package sarama -// DescribeAclsRequest is a secribe acl request type +// DescribeAclsRequest is a describe acl request type type DescribeAclsRequest struct { Version int AclFilter @@ -29,6 +29,10 @@ func (d *DescribeAclsRequest) headerVersion() int16 { return 1 } +func (d *DescribeAclsRequest) isValidVersion() bool { + return d.Version >= 0 && d.Version <= 1 +} + func (d *DescribeAclsRequest) requiredVersion() KafkaVersion { switch d.Version { case 1: diff --git a/vendor/github.com/Shopify/sarama/acl_describe_response.go b/vendor/github.com/IBM/sarama/acl_describe_response.go similarity index 90% rename from vendor/github.com/Shopify/sarama/acl_describe_response.go rename to vendor/github.com/IBM/sarama/acl_describe_response.go index 3255fd485..f89a53b66 100644 --- a/vendor/github.com/Shopify/sarama/acl_describe_response.go +++ b/vendor/github.com/IBM/sarama/acl_describe_response.go @@ -81,6 +81,10 @@ func (d *DescribeAclsResponse) headerVersion() int16 { return 0 } +func (d *DescribeAclsResponse) isValidVersion() bool { + return d.Version >= 0 && d.Version <= 1 +} + func (d *DescribeAclsResponse) requiredVersion() KafkaVersion { switch d.Version { case 1: @@ -89,3 +93,7 @@ func (d *DescribeAclsResponse) requiredVersion() KafkaVersion { return V0_11_0_0 } } + +func (r *DescribeAclsResponse) throttleTime() time.Duration { + return r.ThrottleTime +} diff --git a/vendor/github.com/Shopify/sarama/acl_filter.go b/vendor/github.com/IBM/sarama/acl_filter.go similarity index 100% rename from vendor/github.com/Shopify/sarama/acl_filter.go rename to vendor/github.com/IBM/sarama/acl_filter.go diff --git a/vendor/github.com/Shopify/sarama/acl_types.go b/vendor/github.com/IBM/sarama/acl_types.go similarity index 93% rename from vendor/github.com/Shopify/sarama/acl_types.go rename to vendor/github.com/IBM/sarama/acl_types.go index c3ba8ddcf..62bb5342a 100644 --- a/vendor/github.com/Shopify/sarama/acl_types.go +++ b/vendor/github.com/IBM/sarama/acl_types.go @@ -60,7 +60,7 @@ func (a *AclOperation) MarshalText() ([]byte, error) { return []byte(a.String()), nil } -// UnmarshalText takes a text reprentation of the operation and converts it to an AclOperation +// UnmarshalText takes a text representation of the operation and converts it to an AclOperation func (a *AclOperation) UnmarshalText(text []byte) error { normalized := strings.ToLower(string(text)) mapping := map[string]AclOperation{ @@ -114,7 +114,7 @@ func (a *AclPermissionType) MarshalText() ([]byte, error) { return []byte(a.String()), nil } -// UnmarshalText takes a text reprentation of the permission type and converts it to an AclPermissionType +// UnmarshalText takes a text representation of the permission type and converts it to an AclPermissionType func (a *AclPermissionType) UnmarshalText(text []byte) error { normalized := strings.ToLower(string(text)) mapping := map[string]AclPermissionType{ @@ -166,7 +166,7 @@ func (a *AclResourceType) MarshalText() ([]byte, error) { return []byte(a.String()), nil } -// UnmarshalText takes a text reprentation of the resource type and converts it to an AclResourceType +// UnmarshalText takes a text representation of the resource type and converts it to an AclResourceType func (a *AclResourceType) UnmarshalText(text []byte) error { normalized := strings.ToLower(string(text)) mapping := map[string]AclResourceType{ @@ -217,7 +217,7 @@ func (a *AclResourcePatternType) MarshalText() ([]byte, error) { return []byte(a.String()), nil } -// UnmarshalText takes a text reprentation of the resource pattern type and converts it to an AclResourcePatternType +// UnmarshalText takes a text representation of the resource pattern type and converts it to an AclResourcePatternType func (a *AclResourcePatternType) UnmarshalText(text []byte) error { normalized := strings.ToLower(string(text)) mapping := map[string]AclResourcePatternType{ diff --git a/vendor/github.com/Shopify/sarama/add_offsets_to_txn_request.go b/vendor/github.com/IBM/sarama/add_offsets_to_txn_request.go similarity index 80% rename from vendor/github.com/Shopify/sarama/add_offsets_to_txn_request.go rename to vendor/github.com/IBM/sarama/add_offsets_to_txn_request.go index a96af9341..6d3df9bed 100644 --- a/vendor/github.com/Shopify/sarama/add_offsets_to_txn_request.go +++ b/vendor/github.com/IBM/sarama/add_offsets_to_txn_request.go @@ -2,6 +2,7 @@ package sarama // AddOffsetsToTxnRequest adds offsets to a transaction request type AddOffsetsToTxnRequest struct { + Version int16 TransactionalID string ProducerID int64 ProducerEpoch int16 @@ -45,13 +46,26 @@ func (a *AddOffsetsToTxnRequest) key() int16 { } func (a *AddOffsetsToTxnRequest) version() int16 { - return 0 + return a.Version } func (a *AddOffsetsToTxnRequest) headerVersion() int16 { return 1 } +func (a *AddOffsetsToTxnRequest) isValidVersion() bool { + return a.Version >= 0 && a.Version <= 2 +} + func (a *AddOffsetsToTxnRequest) requiredVersion() KafkaVersion { - return V0_11_0_0 + switch a.Version { + case 2: + return V2_7_0_0 + case 1: + return V2_0_0_0 + case 0: + return V0_11_0_0 + default: + return V2_7_0_0 + } } diff --git a/vendor/github.com/Shopify/sarama/add_offsets_to_txn_response.go b/vendor/github.com/IBM/sarama/add_offsets_to_txn_response.go similarity index 72% rename from vendor/github.com/Shopify/sarama/add_offsets_to_txn_response.go rename to vendor/github.com/IBM/sarama/add_offsets_to_txn_response.go index bb61973d1..136460508 100644 --- a/vendor/github.com/Shopify/sarama/add_offsets_to_txn_response.go +++ b/vendor/github.com/IBM/sarama/add_offsets_to_txn_response.go @@ -6,6 +6,7 @@ import ( // AddOffsetsToTxnResponse is a response type for adding offsets to txns type AddOffsetsToTxnResponse struct { + Version int16 ThrottleTime time.Duration Err KError } @@ -37,13 +38,30 @@ func (a *AddOffsetsToTxnResponse) key() int16 { } func (a *AddOffsetsToTxnResponse) version() int16 { - return 0 + return a.Version } func (a *AddOffsetsToTxnResponse) headerVersion() int16 { return 0 } +func (a *AddOffsetsToTxnResponse) isValidVersion() bool { + return a.Version >= 0 && a.Version <= 2 +} + func (a *AddOffsetsToTxnResponse) requiredVersion() KafkaVersion { - return V0_11_0_0 + switch a.Version { + case 2: + return V2_7_0_0 + case 1: + return V2_0_0_0 + case 0: + return V0_11_0_0 + default: + return V2_7_0_0 + } +} + +func (r *AddOffsetsToTxnResponse) throttleTime() time.Duration { + return r.ThrottleTime } diff --git a/vendor/github.com/Shopify/sarama/add_partitions_to_txn_request.go b/vendor/github.com/IBM/sarama/add_partitions_to_txn_request.go similarity index 83% rename from vendor/github.com/Shopify/sarama/add_partitions_to_txn_request.go rename to vendor/github.com/IBM/sarama/add_partitions_to_txn_request.go index 57ecf6488..3e2c63c64 100644 --- a/vendor/github.com/Shopify/sarama/add_partitions_to_txn_request.go +++ b/vendor/github.com/IBM/sarama/add_partitions_to_txn_request.go @@ -1,7 +1,8 @@ package sarama -// AddPartitionsToTxnRequest is a add paartition request +// AddPartitionsToTxnRequest is a add partition request type AddPartitionsToTxnRequest struct { + Version int16 TransactionalID string ProducerID int64 ProducerEpoch int16 @@ -69,13 +70,24 @@ func (a *AddPartitionsToTxnRequest) key() int16 { } func (a *AddPartitionsToTxnRequest) version() int16 { - return 0 + return a.Version } func (a *AddPartitionsToTxnRequest) headerVersion() int16 { return 1 } +func (a *AddPartitionsToTxnRequest) isValidVersion() bool { + return a.Version >= 0 && a.Version <= 2 +} + func (a *AddPartitionsToTxnRequest) requiredVersion() KafkaVersion { - return V0_11_0_0 + switch a.Version { + case 2: + return V2_7_0_0 + case 1: + return V2_0_0_0 + default: + return V0_11_0_0 + } } diff --git a/vendor/github.com/Shopify/sarama/add_partitions_to_txn_response.go b/vendor/github.com/IBM/sarama/add_partitions_to_txn_response.go similarity index 85% rename from vendor/github.com/Shopify/sarama/add_partitions_to_txn_response.go rename to vendor/github.com/IBM/sarama/add_partitions_to_txn_response.go index 098956507..8ef0a2a2c 100644 --- a/vendor/github.com/Shopify/sarama/add_partitions_to_txn_response.go +++ b/vendor/github.com/IBM/sarama/add_partitions_to_txn_response.go @@ -6,6 +6,7 @@ import ( // AddPartitionsToTxnResponse is a partition errors to transaction type type AddPartitionsToTxnResponse struct { + Version int16 ThrottleTime time.Duration Errors map[string][]*PartitionError } @@ -34,6 +35,7 @@ func (a *AddPartitionsToTxnResponse) encode(pe packetEncoder) error { } func (a *AddPartitionsToTxnResponse) decode(pd packetDecoder, version int16) (err error) { + a.Version = version throttleTime, err := pd.getInt32() if err != nil { return err @@ -76,15 +78,30 @@ func (a *AddPartitionsToTxnResponse) key() int16 { } func (a *AddPartitionsToTxnResponse) version() int16 { - return 0 + return a.Version } func (a *AddPartitionsToTxnResponse) headerVersion() int16 { return 0 } +func (a *AddPartitionsToTxnResponse) isValidVersion() bool { + return a.Version >= 0 && a.Version <= 2 +} + func (a *AddPartitionsToTxnResponse) requiredVersion() KafkaVersion { - return V0_11_0_0 + switch a.Version { + case 2: + return V2_7_0_0 + case 1: + return V2_0_0_0 + default: + return V0_11_0_0 + } +} + +func (r *AddPartitionsToTxnResponse) throttleTime() time.Duration { + return r.ThrottleTime } // PartitionError is a partition error type diff --git a/vendor/github.com/Shopify/sarama/admin.go b/vendor/github.com/IBM/sarama/admin.go similarity index 87% rename from vendor/github.com/Shopify/sarama/admin.go rename to vendor/github.com/IBM/sarama/admin.go index a334daff5..dcf1d7659 100644 --- a/vendor/github.com/Shopify/sarama/admin.go +++ b/vendor/github.com/IBM/sarama/admin.go @@ -196,9 +196,9 @@ func (ca *clusterAdmin) refreshController() (*Broker, error) { return ca.client.RefreshController() } -// isErrNoController returns `true` if the given error type unwraps to an +// isErrNotController returns `true` if the given error type unwraps to an // `ErrNotController` response from Kafka -func isErrNoController(err error) bool { +func isErrNotController(err error) bool { return errors.Is(err, ErrNotController) } @@ -207,19 +207,17 @@ func isErrNoController(err error) bool { // provided retryable func) up to the maximum number of tries permitted by // the admin client configuration func (ca *clusterAdmin) retryOnError(retryable func(error) bool, fn func() error) error { - var err error - for attempt := 0; attempt < ca.conf.Admin.Retry.Max; attempt++ { - err = fn() - if err == nil || !retryable(err) { + for attemptsRemaining := ca.conf.Admin.Retry.Max + 1; ; { + err := fn() + attemptsRemaining-- + if err == nil || attemptsRemaining <= 0 || !retryable(err) { return err } Logger.Printf( "admin/request retrying after %dms... (%d attempts remaining)\n", - ca.conf.Admin.Retry.Backoff/time.Millisecond, ca.conf.Admin.Retry.Max-attempt) + ca.conf.Admin.Retry.Backoff/time.Millisecond, attemptsRemaining) time.Sleep(ca.conf.Admin.Retry.Backoff) - continue } - return err } func (ca *clusterAdmin) CreateTopic(topic string, detail *TopicDetail, validateOnly bool) error { @@ -240,14 +238,18 @@ func (ca *clusterAdmin) CreateTopic(topic string, detail *TopicDetail, validateO Timeout: ca.conf.Admin.Timeout, } - if ca.conf.Version.IsAtLeast(V0_11_0_0) { - request.Version = 1 - } - if ca.conf.Version.IsAtLeast(V1_0_0_0) { + if ca.conf.Version.IsAtLeast(V2_0_0_0) { + // Version 3 is the same as version 2 (brokers response before throttling) + request.Version = 3 + } else if ca.conf.Version.IsAtLeast(V0_11_0_0) { + // Version 2 is the same as version 1 (response has ThrottleTime) request.Version = 2 + } else if ca.conf.Version.IsAtLeast(V0_10_2_0) { + // Version 1 adds validateOnly. + request.Version = 1 } - return ca.retryOnError(isErrNoController, func() error { + return ca.retryOnError(isErrNotController, func() error { b, err := ca.Controller() if err != nil { return err @@ -275,13 +277,19 @@ func (ca *clusterAdmin) CreateTopic(topic string, detail *TopicDetail, validateO } func (ca *clusterAdmin) DescribeTopics(topics []string) (metadata []*TopicMetadata, err error) { - controller, err := ca.Controller() - if err != nil { - return nil, err - } - - request := NewMetadataRequest(ca.conf.Version, topics) - response, err := controller.GetMetadata(request) + var response *MetadataResponse + err = ca.retryOnError(isErrNotController, func() error { + controller, err := ca.Controller() + if err != nil { + return err + } + request := NewMetadataRequest(ca.conf.Version, topics) + response, err = controller.GetMetadata(request) + if isErrNotController(err) { + _, _ = ca.refreshController() + } + return err + }) if err != nil { return nil, err } @@ -289,13 +297,20 @@ func (ca *clusterAdmin) DescribeTopics(topics []string) (metadata []*TopicMetada } func (ca *clusterAdmin) DescribeCluster() (brokers []*Broker, controllerID int32, err error) { - controller, err := ca.Controller() - if err != nil { - return nil, int32(0), err - } + var response *MetadataResponse + err = ca.retryOnError(isErrNotController, func() error { + controller, err := ca.Controller() + if err != nil { + return err + } - request := NewMetadataRequest(ca.conf.Version, nil) - response, err := controller.GetMetadata(request) + request := NewMetadataRequest(ca.conf.Version, nil) + response, err = controller.GetMetadata(request) + if isErrNotController(err) { + _, _ = ca.refreshController() + } + return err + }) if err != nil { return nil, int32(0), err } @@ -389,6 +404,7 @@ func (ca *clusterAdmin) ListTopics() (map[string]TopicDetail, error) { topicDetails.ConfigEntries = make(map[string]*string) for _, entry := range resource.Configs { + entry := entry // only include non-default non-sensitive config // (don't actually think topic config will ever be sensitive) if entry.Default || entry.Sensitive { @@ -413,11 +429,16 @@ func (ca *clusterAdmin) DeleteTopic(topic string) error { Timeout: ca.conf.Admin.Timeout, } - if ca.conf.Version.IsAtLeast(V0_11_0_0) { + // Versions 0, 1, 2, and 3 are the same. + if ca.conf.Version.IsAtLeast(V2_1_0_0) { + request.Version = 3 + } else if ca.conf.Version.IsAtLeast(V2_0_0_0) { + request.Version = 2 + } else if ca.conf.Version.IsAtLeast(V0_11_0_0) { request.Version = 1 } - return ca.retryOnError(isErrNoController, func() error { + return ca.retryOnError(isErrNotController, func() error { b, err := ca.Controller() if err != nil { return err @@ -457,8 +478,11 @@ func (ca *clusterAdmin) CreatePartitions(topic string, count int32, assignment [ Timeout: ca.conf.Admin.Timeout, ValidateOnly: validateOnly, } + if ca.conf.Version.IsAtLeast(V2_0_0_0) { + request.Version = 1 + } - return ca.retryOnError(isErrNoController, func() error { + return ca.retryOnError(isErrNotController, func() error { b, err := ca.Controller() if err != nil { return err @@ -499,7 +523,7 @@ func (ca *clusterAdmin) AlterPartitionReassignments(topic string, assignment [][ request.AddBlock(topic, int32(i), assignment[i]) } - return ca.retryOnError(isErrNoController, func() error { + return ca.retryOnError(isErrNotController, func() error { b, err := ca.Controller() if err != nil { return err @@ -545,13 +569,20 @@ func (ca *clusterAdmin) ListPartitionReassignments(topic string, partitions []in request.AddBlock(topic, partitions) - b, err := ca.Controller() - if err != nil { - return nil, err - } - _ = b.Open(ca.client.Config()) + var rsp *ListPartitionReassignmentsResponse + err = ca.retryOnError(isErrNotController, func() error { + b, err := ca.Controller() + if err != nil { + return err + } + _ = b.Open(ca.client.Config()) - rsp, err := b.ListPartitionReassignments(request) + rsp, err = b.ListPartitionReassignments(request) + if isErrNotController(err) { + _, _ = ca.refreshController() + } + return err + }) if err == nil && rsp != nil { return rsp.TopicStatus, nil @@ -587,6 +618,9 @@ func (ca *clusterAdmin) DeleteRecords(topic string, partitionOffsets map[int32]i Topics: topics, Timeout: ca.conf.Admin.Timeout, } + if ca.conf.Version.IsAtLeast(V2_0_0_0) { + request.Version = 1 + } rsp, err := broker.DeleteRecords(request) if err != nil { errs = append(errs, err) @@ -666,11 +700,8 @@ func (ca *clusterAdmin) DescribeConfig(resource ConfigResource) ([]ConfigEntry, for _, rspResource := range rsp.Resources { if rspResource.Name == resource.Name { - if rspResource.ErrorMsg != "" { - return nil, errors.New(rspResource.ErrorMsg) - } if rspResource.ErrorCode != 0 { - return nil, KError(rspResource.ErrorCode) + return nil, &DescribeConfigError{Err: KError(rspResource.ErrorCode), ErrMsg: rspResource.ErrorMsg} } for _, cfgEntry := range rspResource.Configs { entries = append(entries, *cfgEntry) @@ -692,6 +723,9 @@ func (ca *clusterAdmin) AlterConfig(resourceType ConfigResourceType, name string Resources: resources, ValidateOnly: validateOnly, } + if ca.conf.Version.IsAtLeast(V2_0_0_0) { + request.Version = 1 + } var ( b *Broker @@ -721,11 +755,8 @@ func (ca *clusterAdmin) AlterConfig(resourceType ConfigResourceType, name string for _, rspResource := range rsp.Resources { if rspResource.Name == name { - if rspResource.ErrorMsg != "" { - return errors.New(rspResource.ErrorMsg) - } if rspResource.ErrorCode != 0 { - return KError(rspResource.ErrorCode) + return &AlterConfigError{Err: KError(rspResource.ErrorCode), ErrMsg: rspResource.ErrorMsg} } } } @@ -891,8 +922,19 @@ func (ca *clusterAdmin) DescribeConsumerGroups(groups []string) (result []*Group describeReq := &DescribeGroupsRequest{ Groups: brokerGroups, } - if ca.conf.Version.IsAtLeast(V2_3_0_0) { + + if ca.conf.Version.IsAtLeast(V2_4_0_0) { + // Starting in version 4, the response will include group.instance.id info for members. describeReq.Version = 4 + } else if ca.conf.Version.IsAtLeast(V2_3_0_0) { + // Starting in version 3, authorized operations can be requested. + describeReq.Version = 3 + } else if ca.conf.Version.IsAtLeast(V2_0_0_0) { + // Version 2 is the same as version 0. + describeReq.Version = 2 + } else if ca.conf.Version.IsAtLeast(V1_1_0_0) { + // Version 1 is the same as version 0. + describeReq.Version = 1 } response, err := broker.DescribeGroups(describeReq) if err != nil { @@ -919,7 +961,22 @@ func (ca *clusterAdmin) ListConsumerGroups() (allGroups map[string]string, err e defer wg.Done() _ = b.Open(conf) // Ensure that broker is opened - response, err := b.ListGroups(&ListGroupsRequest{}) + request := &ListGroupsRequest{} + if ca.conf.Version.IsAtLeast(V2_6_0_0) { + // Version 4 adds the StatesFilter field (KIP-518). + request.Version = 4 + } else if ca.conf.Version.IsAtLeast(V2_4_0_0) { + // Version 3 is the first flexible version. + request.Version = 3 + } else if ca.conf.Version.IsAtLeast(V2_0_0_0) { + // Version 2 is the same as version 0. + request.Version = 2 + } else if ca.conf.Version.IsAtLeast(V0_11_0_0) { + // Version 1 is the same as version 0. + request.Version = 1 + } + + response, err := b.ListGroups(request) if err != nil { errChan <- err return @@ -955,16 +1012,7 @@ func (ca *clusterAdmin) ListConsumerGroupOffsets(group string, topicPartitions m return nil, err } - request := &OffsetFetchRequest{ - ConsumerGroup: group, - partitions: topicPartitions, - } - - if ca.conf.Version.IsAtLeast(V0_10_2_0) { - request.Version = 2 - } else if ca.conf.Version.IsAtLeast(V0_8_2_2) { - request.Version = 1 - } + request := NewOffsetFetchRequest(ca.conf.Version, group, topicPartitions) return coordinator.FetchOffset(request) } @@ -1006,6 +1054,9 @@ func (ca *clusterAdmin) DeleteConsumerGroup(group string) error { request := &DeleteGroupsRequest{ Groups: []string{group}, } + if ca.conf.Version.IsAtLeast(V2_0_0_0) { + request.Version = 1 + } resp, err := coordinator.DeleteGroups(request) if err != nil { @@ -1043,7 +1094,11 @@ func (ca *clusterAdmin) DescribeLogDirs(brokerIds []int32) (allLogDirs map[int32 defer wg.Done() _ = b.Open(conf) // Ensure that broker is opened - response, err := b.DescribeLogDirs(&DescribeLogDirsRequest{}) + request := &DescribeLogDirsRequest{} + if ca.conf.Version.IsAtLeast(V2_0_0_0) { + request.Version = 1 + } + response, err := b.DescribeLogDirs(request) if err != nil { errChan <- err return @@ -1114,12 +1169,16 @@ func (ca *clusterAdmin) AlterUserScramCredentials(u []AlterUserScramCredentialsU Upsertions: u, } - b, err := ca.Controller() - if err != nil { - return nil, err - } + var rsp *AlterUserScramCredentialsResponse + err := ca.retryOnError(isErrNotController, func() error { + b, err := ca.Controller() + if err != nil { + return err + } - rsp, err := b.AlterUserScramCredentials(req) + rsp, err = b.AlterUserScramCredentials(req) + return err + }) if err != nil { return nil, err } @@ -1190,6 +1249,10 @@ func (ca *clusterAdmin) AlterClientQuotas(entity []QuotaEntityComponent, op Clie } func (ca *clusterAdmin) RemoveMemberFromConsumerGroup(groupId string, groupInstanceIds []string) (*LeaveGroupResponse, error) { + if !ca.conf.Version.IsAtLeast(V2_4_0_0) { + return nil, ConfigurationError("Removing members from a consumer group headers requires Kafka version of at least v2.4.0") + } + controller, err := ca.client.Coordinator(groupId) if err != nil { return nil, err diff --git a/vendor/github.com/Shopify/sarama/alter_client_quotas_request.go b/vendor/github.com/IBM/sarama/alter_client_quotas_request.go similarity index 97% rename from vendor/github.com/Shopify/sarama/alter_client_quotas_request.go rename to vendor/github.com/IBM/sarama/alter_client_quotas_request.go index f528512d0..a7fa0cbd1 100644 --- a/vendor/github.com/Shopify/sarama/alter_client_quotas_request.go +++ b/vendor/github.com/IBM/sarama/alter_client_quotas_request.go @@ -12,6 +12,7 @@ package sarama // validate_only => BOOLEAN type AlterClientQuotasRequest struct { + Version int16 Entries []AlterClientQuotasEntry // The quota configuration entries to alter. ValidateOnly bool // Whether the alteration should be validated, but not performed. } @@ -182,13 +183,17 @@ func (a *AlterClientQuotasRequest) key() int16 { } func (a *AlterClientQuotasRequest) version() int16 { - return 0 + return a.Version } func (a *AlterClientQuotasRequest) headerVersion() int16 { return 1 } +func (a *AlterClientQuotasRequest) isValidVersion() bool { + return a.Version == 0 +} + func (a *AlterClientQuotasRequest) requiredVersion() KafkaVersion { return V2_6_0_0 } diff --git a/vendor/github.com/Shopify/sarama/alter_client_quotas_response.go b/vendor/github.com/IBM/sarama/alter_client_quotas_response.go similarity index 94% rename from vendor/github.com/Shopify/sarama/alter_client_quotas_response.go rename to vendor/github.com/IBM/sarama/alter_client_quotas_response.go index ccd27d5f5..cce997cae 100644 --- a/vendor/github.com/Shopify/sarama/alter_client_quotas_response.go +++ b/vendor/github.com/IBM/sarama/alter_client_quotas_response.go @@ -14,6 +14,7 @@ import ( // entity_name => NULLABLE_STRING type AlterClientQuotasResponse struct { + Version int16 ThrottleTime time.Duration // The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. Entries []AlterClientQuotasEntryResponse // The quota configuration entries altered. } @@ -133,13 +134,21 @@ func (a *AlterClientQuotasResponse) key() int16 { } func (a *AlterClientQuotasResponse) version() int16 { - return 0 + return a.Version } func (a *AlterClientQuotasResponse) headerVersion() int16 { return 0 } +func (a *AlterClientQuotasResponse) isValidVersion() bool { + return a.Version == 0 +} + func (a *AlterClientQuotasResponse) requiredVersion() KafkaVersion { return V2_6_0_0 } + +func (r *AlterClientQuotasResponse) throttleTime() time.Duration { + return r.ThrottleTime +} diff --git a/vendor/github.com/Shopify/sarama/alter_configs_request.go b/vendor/github.com/IBM/sarama/alter_configs_request.go similarity index 90% rename from vendor/github.com/Shopify/sarama/alter_configs_request.go rename to vendor/github.com/IBM/sarama/alter_configs_request.go index 8b94b1f3f..ee1ab6445 100644 --- a/vendor/github.com/Shopify/sarama/alter_configs_request.go +++ b/vendor/github.com/IBM/sarama/alter_configs_request.go @@ -2,6 +2,7 @@ package sarama // AlterConfigsRequest is an alter config request type type AlterConfigsRequest struct { + Version int16 Resources []*AlterConfigsResource ValidateOnly bool } @@ -114,13 +115,24 @@ func (a *AlterConfigsRequest) key() int16 { } func (a *AlterConfigsRequest) version() int16 { - return 0 + return a.Version } func (a *AlterConfigsRequest) headerVersion() int16 { return 1 } +func (a *AlterConfigsRequest) isValidVersion() bool { + return a.Version >= 0 && a.Version <= 1 +} + func (a *AlterConfigsRequest) requiredVersion() KafkaVersion { - return V0_11_0_0 + switch a.Version { + case 1: + return V2_0_0_0 + case 0: + return V0_11_0_0 + default: + return V2_0_0_0 + } } diff --git a/vendor/github.com/Shopify/sarama/alter_configs_response.go b/vendor/github.com/IBM/sarama/alter_configs_response.go similarity index 78% rename from vendor/github.com/Shopify/sarama/alter_configs_response.go rename to vendor/github.com/IBM/sarama/alter_configs_response.go index 84cd86c72..d8b70e371 100644 --- a/vendor/github.com/Shopify/sarama/alter_configs_response.go +++ b/vendor/github.com/IBM/sarama/alter_configs_response.go @@ -1,13 +1,30 @@ package sarama -import "time" +import ( + "fmt" + "time" +) // AlterConfigsResponse is a response type for alter config type AlterConfigsResponse struct { + Version int16 ThrottleTime time.Duration Resources []*AlterConfigsResourceResponse } +type AlterConfigError struct { + Err KError + ErrMsg string +} + +func (c *AlterConfigError) Error() string { + text := c.Err.Error() + if c.ErrMsg != "" { + text = fmt.Sprintf("%s - %s", text, c.ErrMsg) + } + return text +} + // AlterConfigsResourceResponse is a response type for alter config resource type AlterConfigsResourceResponse struct { ErrorCode int16 @@ -100,17 +117,32 @@ func (a *AlterConfigsResourceResponse) decode(pd packetDecoder, version int16) e } func (a *AlterConfigsResponse) key() int16 { - return 32 + return 33 } func (a *AlterConfigsResponse) version() int16 { - return 0 + return a.Version } func (a *AlterConfigsResponse) headerVersion() int16 { return 0 } +func (a *AlterConfigsResponse) isValidVersion() bool { + return a.Version >= 0 && a.Version <= 1 +} + func (a *AlterConfigsResponse) requiredVersion() KafkaVersion { - return V0_11_0_0 + switch a.Version { + case 1: + return V2_0_0_0 + case 0: + return V0_11_0_0 + default: + return V2_0_0_0 + } +} + +func (r *AlterConfigsResponse) throttleTime() time.Duration { + return r.ThrottleTime } diff --git a/vendor/github.com/Shopify/sarama/alter_partition_reassignments_request.go b/vendor/github.com/IBM/sarama/alter_partition_reassignments_request.go similarity index 96% rename from vendor/github.com/Shopify/sarama/alter_partition_reassignments_request.go rename to vendor/github.com/IBM/sarama/alter_partition_reassignments_request.go index f0a2f9dd5..f898f87a2 100644 --- a/vendor/github.com/Shopify/sarama/alter_partition_reassignments_request.go +++ b/vendor/github.com/IBM/sarama/alter_partition_reassignments_request.go @@ -113,6 +113,10 @@ func (r *AlterPartitionReassignmentsRequest) headerVersion() int16 { return 2 } +func (r *AlterPartitionReassignmentsRequest) isValidVersion() bool { + return r.Version == 0 +} + func (r *AlterPartitionReassignmentsRequest) requiredVersion() KafkaVersion { return V2_4_0_0 } diff --git a/vendor/github.com/Shopify/sarama/alter_partition_reassignments_response.go b/vendor/github.com/IBM/sarama/alter_partition_reassignments_response.go similarity index 93% rename from vendor/github.com/Shopify/sarama/alter_partition_reassignments_response.go rename to vendor/github.com/IBM/sarama/alter_partition_reassignments_response.go index b3f9a15fe..1ee56b40e 100644 --- a/vendor/github.com/Shopify/sarama/alter_partition_reassignments_response.go +++ b/vendor/github.com/IBM/sarama/alter_partition_reassignments_response.go @@ -1,5 +1,7 @@ package sarama +import "time" + type alterPartitionReassignmentsErrorBlock struct { errorCode KError errorMessage *string @@ -152,6 +154,14 @@ func (r *AlterPartitionReassignmentsResponse) headerVersion() int16 { return 1 } +func (r *AlterPartitionReassignmentsResponse) isValidVersion() bool { + return r.Version == 0 +} + func (r *AlterPartitionReassignmentsResponse) requiredVersion() KafkaVersion { return V2_4_0_0 } + +func (r *AlterPartitionReassignmentsResponse) throttleTime() time.Duration { + return time.Duration(r.ThrottleTimeMs) * time.Millisecond +} diff --git a/vendor/github.com/Shopify/sarama/alter_user_scram_credentials_request.go b/vendor/github.com/IBM/sarama/alter_user_scram_credentials_request.go similarity index 97% rename from vendor/github.com/Shopify/sarama/alter_user_scram_credentials_request.go rename to vendor/github.com/IBM/sarama/alter_user_scram_credentials_request.go index 0530d8946..f29f164cf 100644 --- a/vendor/github.com/Shopify/sarama/alter_user_scram_credentials_request.go +++ b/vendor/github.com/IBM/sarama/alter_user_scram_credentials_request.go @@ -137,6 +137,10 @@ func (r *AlterUserScramCredentialsRequest) headerVersion() int16 { return 2 } +func (r *AlterUserScramCredentialsRequest) isValidVersion() bool { + return r.Version == 0 +} + func (r *AlterUserScramCredentialsRequest) requiredVersion() KafkaVersion { return V2_7_0_0 } diff --git a/vendor/github.com/Shopify/sarama/alter_user_scram_credentials_response.go b/vendor/github.com/IBM/sarama/alter_user_scram_credentials_response.go similarity index 91% rename from vendor/github.com/Shopify/sarama/alter_user_scram_credentials_response.go rename to vendor/github.com/IBM/sarama/alter_user_scram_credentials_response.go index 31e167b5e..75eac0cec 100644 --- a/vendor/github.com/Shopify/sarama/alter_user_scram_credentials_response.go +++ b/vendor/github.com/IBM/sarama/alter_user_scram_credentials_response.go @@ -89,6 +89,14 @@ func (r *AlterUserScramCredentialsResponse) headerVersion() int16 { return 2 } +func (r *AlterUserScramCredentialsResponse) isValidVersion() bool { + return r.Version == 0 +} + func (r *AlterUserScramCredentialsResponse) requiredVersion() KafkaVersion { return V2_7_0_0 } + +func (r *AlterUserScramCredentialsResponse) throttleTime() time.Duration { + return r.ThrottleTime +} diff --git a/vendor/github.com/Shopify/sarama/api_versions_request.go b/vendor/github.com/IBM/sarama/api_versions_request.go similarity index 89% rename from vendor/github.com/Shopify/sarama/api_versions_request.go rename to vendor/github.com/IBM/sarama/api_versions_request.go index e5b3baf64..f94174daf 100644 --- a/vendor/github.com/Shopify/sarama/api_versions_request.go +++ b/vendor/github.com/IBM/sarama/api_versions_request.go @@ -57,13 +57,21 @@ func (r *ApiVersionsRequest) headerVersion() int16 { return 1 } +func (r *ApiVersionsRequest) isValidVersion() bool { + return r.Version >= 0 && r.Version <= 3 +} + func (r *ApiVersionsRequest) requiredVersion() KafkaVersion { switch r.Version { - case 0: - return V0_10_0_0 case 3: return V2_4_0_0 - default: + case 2: + return V2_0_0_0 + case 1: + return V0_11_0_0 + case 0: return V0_10_0_0 + default: + return V2_4_0_0 } } diff --git a/vendor/github.com/Shopify/sarama/api_versions_response.go b/vendor/github.com/IBM/sarama/api_versions_response.go similarity index 91% rename from vendor/github.com/Shopify/sarama/api_versions_response.go rename to vendor/github.com/IBM/sarama/api_versions_response.go index ade911c59..457c79a95 100644 --- a/vendor/github.com/Shopify/sarama/api_versions_response.go +++ b/vendor/github.com/IBM/sarama/api_versions_response.go @@ -1,5 +1,7 @@ package sarama +import "time" + // ApiVersionsResponseKey contains the APIs supported by the broker. type ApiVersionsResponseKey struct { // Version defines the protocol version to use for encode and decode @@ -144,13 +146,25 @@ func (r *ApiVersionsResponse) headerVersion() int16 { return 0 } +func (r *ApiVersionsResponse) isValidVersion() bool { + return r.Version >= 0 && r.Version <= 3 +} + func (r *ApiVersionsResponse) requiredVersion() KafkaVersion { switch r.Version { - case 0: - return V0_10_0_0 case 3: return V2_4_0_0 - default: + case 2: + return V2_0_0_0 + case 1: + return V0_11_0_0 + case 0: return V0_10_0_0 + default: + return V2_4_0_0 } } + +func (r *ApiVersionsResponse) throttleTime() time.Duration { + return time.Duration(r.ThrottleTimeMs) * time.Millisecond +} diff --git a/vendor/github.com/Shopify/sarama/async_producer.go b/vendor/github.com/IBM/sarama/async_producer.go similarity index 98% rename from vendor/github.com/Shopify/sarama/async_producer.go rename to vendor/github.com/IBM/sarama/async_producer.go index 50f226f8e..f629a6a2e 100644 --- a/vendor/github.com/Shopify/sarama/async_producer.go +++ b/vendor/github.com/IBM/sarama/async_producer.go @@ -20,7 +20,6 @@ import ( // leaks and message lost: it will not be garbage-collected automatically when it passes // out of scope and buffered messages may not be flushed. type AsyncProducer interface { - // AsyncClose triggers a shutdown of the producer. The shutdown has completed // when both the Errors and Successes channels have been closed. When calling // AsyncClose, you *must* continue to read from those channels in order to @@ -50,7 +49,7 @@ type AsyncProducer interface { // errors to be returned. Errors() <-chan *ProducerError - // IsTransactional return true when current producer is is transactional. + // IsTransactional return true when current producer is transactional. IsTransactional() bool // TxnStatus return current producer transaction status. @@ -366,17 +365,17 @@ func (p *asyncProducer) Close() error { }) } - var errors ProducerErrors + var pErrs ProducerErrors if p.conf.Producer.Return.Errors { for event := range p.errors { - errors = append(errors, event) + pErrs = append(pErrs, event) } } else { <-p.errors } - if len(errors) > 0 { - return errors + if len(pErrs) > 0 { + return pErrs } return nil } @@ -450,8 +449,10 @@ func (p *asyncProducer) dispatcher() { p.returnError(msg, ConfigurationError("Producing headers requires Kafka at least v0.11")) continue } - if msg.ByteSize(version) > p.conf.Producer.MaxMessageBytes { - p.returnError(msg, ErrMessageSizeTooLarge) + + size := msg.ByteSize(version) + if size > p.conf.Producer.MaxMessageBytes { + p.returnError(msg, ConfigurationError(fmt.Sprintf("Attempt to produce message larger than configured Producer.MaxMessageBytes: %d > %d", size, p.conf.Producer.MaxMessageBytes))) continue } diff --git a/vendor/github.com/Shopify/sarama/balance_strategy.go b/vendor/github.com/IBM/sarama/balance_strategy.go similarity index 94% rename from vendor/github.com/Shopify/sarama/balance_strategy.go rename to vendor/github.com/IBM/sarama/balance_strategy.go index 4594df6f6..30d41779c 100644 --- a/vendor/github.com/Shopify/sarama/balance_strategy.go +++ b/vendor/github.com/IBM/sarama/balance_strategy.go @@ -57,35 +57,42 @@ type BalanceStrategy interface { // -------------------------------------------------------------------- -// BalanceStrategyRange is the default and assigns partitions as ranges to consumer group members. +// NewBalanceStrategyRange returns a range balance strategy, +// which is the default and assigns partitions as ranges to consumer group members. // This follows the same logic as // https://kafka.apache.org/31/javadoc/org/apache/kafka/clients/consumer/RangeAssignor.html // // Example with two topics T1 and T2 with six partitions each (0..5) and two members (M1, M2): // // M1: {T1: [0, 1, 2], T2: [0, 1, 2]} -// M2: {T2: [3, 4, 5], T2: [3, 4, 5]} -var BalanceStrategyRange = &balanceStrategy{ - name: RangeBalanceStrategyName, - coreFn: func(plan BalanceStrategyPlan, memberIDs []string, topic string, partitions []int32) { - partitionsPerConsumer := len(partitions) / len(memberIDs) - consumersWithExtraPartition := len(partitions) % len(memberIDs) - - sort.Strings(memberIDs) - - for i, memberID := range memberIDs { - min := i*partitionsPerConsumer + int(math.Min(float64(consumersWithExtraPartition), float64(i))) - extra := 0 - if i < consumersWithExtraPartition { - extra = 1 +// M2: {T1: [3, 4, 5], T2: [3, 4, 5]} +func NewBalanceStrategyRange() BalanceStrategy { + return &balanceStrategy{ + name: RangeBalanceStrategyName, + coreFn: func(plan BalanceStrategyPlan, memberIDs []string, topic string, partitions []int32) { + partitionsPerConsumer := len(partitions) / len(memberIDs) + consumersWithExtraPartition := len(partitions) % len(memberIDs) + + sort.Strings(memberIDs) + + for i, memberID := range memberIDs { + min := i*partitionsPerConsumer + int(math.Min(float64(consumersWithExtraPartition), float64(i))) + extra := 0 + if i < consumersWithExtraPartition { + extra = 1 + } + max := min + partitionsPerConsumer + extra + plan.Add(memberID, topic, partitions[min:max]...) } - max := min + partitionsPerConsumer + extra - plan.Add(memberID, topic, partitions[min:max]...) - } - }, + }, + } } -// BalanceStrategySticky assigns partitions to members with an attempt to preserve earlier assignments +// Deprecated: use NewBalanceStrategyRange to avoid data race issue +var BalanceStrategyRange = NewBalanceStrategyRange() + +// NewBalanceStrategySticky returns a sticky balance strategy, +// which assigns partitions to members with an attempt to preserve earlier assignments // while maintain a balanced partition distribution. // Example with topic T with six partitions (0..5) and two members (M1, M2): // @@ -97,13 +104,18 @@ var BalanceStrategyRange = &balanceStrategy{ // M1: {T: [0, 2]} // M2: {T: [1, 3]} // M3: {T: [4, 5]} -var BalanceStrategySticky = &stickyBalanceStrategy{} +func NewBalanceStrategySticky() BalanceStrategy { + return &stickyBalanceStrategy{} +} + +// Deprecated: use NewBalanceStrategySticky to avoid data race issue +var BalanceStrategySticky = NewBalanceStrategySticky() // -------------------------------------------------------------------- type balanceStrategy struct { - name string coreFn func(plan BalanceStrategyPlan, memberIDs []string, topic string, partitions []int32) + name string } // Name implements BalanceStrategy. @@ -171,10 +183,7 @@ func (s *stickyBalanceStrategy) Plan(members map[string]ConsumerGroupMemberMetad } // determine if we're dealing with a completely fresh assignment, or if there's existing assignment state - isFreshAssignment := false - if len(currentAssignment) == 0 { - isFreshAssignment = true - } + isFreshAssignment := len(currentAssignment) == 0 // create a mapping of all current topic partitions and the consumers that can be assigned to them partition2AllPotentialConsumers := make(map[topicPartitionAssignment][]string) @@ -281,10 +290,7 @@ func strsContains(s []string, value string) bool { // Balance assignments across consumers for maximum fairness and stickiness. func (s *stickyBalanceStrategy) balance(currentAssignment map[string][]topicPartitionAssignment, prevAssignment map[topicPartitionAssignment]consumerGenerationPair, sortedPartitions []topicPartitionAssignment, unassignedPartitions []topicPartitionAssignment, sortedCurrentSubscriptions []string, consumer2AllPotentialPartitions map[string][]topicPartitionAssignment, partition2AllPotentialConsumers map[topicPartitionAssignment][]string, currentPartitionConsumer map[topicPartitionAssignment]string) { - initializing := false - if len(sortedCurrentSubscriptions) == 0 || len(currentAssignment[sortedCurrentSubscriptions[0]]) == 0 { - initializing = true - } + initializing := len(sortedCurrentSubscriptions) == 0 || len(currentAssignment[sortedCurrentSubscriptions[0]]) == 0 // assign all unassigned partitions for _, partition := range unassignedPartitions { @@ -337,11 +343,17 @@ func (s *stickyBalanceStrategy) balance(currentAssignment map[string][]topicPart } } -// BalanceStrategyRoundRobin assigns partitions to members in alternating order. +// NewBalanceStrategyRoundRobin returns a round-robin balance strategy, +// which assigns partitions to members in alternating order. // For example, there are two topics (t0, t1) and two consumer (m0, m1), and each topic has three partitions (p0, p1, p2): // M0: [t0p0, t0p2, t1p1] // M1: [t0p1, t1p0, t1p2] -var BalanceStrategyRoundRobin = new(roundRobinBalancer) +func NewBalanceStrategyRoundRobin() BalanceStrategy { + return new(roundRobinBalancer) +} + +// Deprecated: use NewBalanceStrategyRoundRobin to avoid data race issue +var BalanceStrategyRoundRobin = NewBalanceStrategyRoundRobin() type roundRobinBalancer struct{} @@ -414,8 +426,8 @@ func (tp *topicAndPartition) comparedValue() string { } type memberAndTopic struct { - memberID string topics map[string]struct{} + memberID string } func (m *memberAndTopic) hasTopic(topic string) bool { @@ -681,11 +693,8 @@ func sortPartitions(currentAssignment map[string][]topicPartitionAssignment, par } heap.Init(&pq) - for { - // loop until no consumer-group members remain - if pq.Len() == 0 { - break - } + // loop until no consumer-group members remain + for pq.Len() != 0 { member := pq[0] // partitions that were assigned to a different consumer last time @@ -995,20 +1004,21 @@ func (p *partitionMovements) isLinked(src, dst string, pairs []consumerPair, cur } for _, pair := range pairs { - if pair.SrcMemberID == src { - // create a deep copy of the pairs, excluding the current pair - reducedSet := make([]consumerPair, len(pairs)-1) - i := 0 - for _, p := range pairs { - if p != pair { - reducedSet[i] = pair - i++ - } + if pair.SrcMemberID != src { + continue + } + // create a deep copy of the pairs, excluding the current pair + reducedSet := make([]consumerPair, len(pairs)-1) + i := 0 + for _, p := range pairs { + if p != pair { + reducedSet[i] = pair + i++ } - - currentPath = append(currentPath, pair.SrcMemberID) - return p.isLinked(pair.DstMemberID, dst, reducedSet, currentPath) } + + currentPath = append(currentPath, pair.SrcMemberID) + return p.isLinked(pair.DstMemberID, dst, reducedSet, currentPath) } return currentPath, false } @@ -1106,9 +1116,9 @@ type assignmentPriorityQueue []*consumerGroupMember func (pq assignmentPriorityQueue) Len() int { return len(pq) } func (pq assignmentPriorityQueue) Less(i, j int) bool { - // order asssignment priority queue in descending order using assignment-count/member-id + // order assignment priority queue in descending order using assignment-count/member-id if len(pq[i].assignments) == len(pq[j].assignments) { - return strings.Compare(pq[i].id, pq[j].id) > 0 + return pq[i].id > pq[j].id } return len(pq[i].assignments) > len(pq[j].assignments) } diff --git a/vendor/github.com/Shopify/sarama/broker.go b/vendor/github.com/IBM/sarama/broker.go similarity index 95% rename from vendor/github.com/Shopify/sarama/broker.go rename to vendor/github.com/IBM/sarama/broker.go index d049e9b47..d0d5b87b8 100644 --- a/vendor/github.com/Shopify/sarama/broker.go +++ b/vendor/github.com/IBM/sarama/broker.go @@ -58,6 +58,9 @@ type Broker struct { kerberosAuthenticator GSSAPIKerberosAuth clientSessionReauthenticationTimeMs int64 + + throttleTimer *time.Timer + throttleTimerLock sync.Mutex } // SASLMechanism specifies the SASL mechanism the client uses to authenticate with the broker @@ -175,7 +178,9 @@ func (b *Broker) Open(conf *Config) error { b.lock.Lock() - b.metricRegistry = newCleanupRegistry(conf.MetricRegistry) + if b.metricRegistry == nil { + b.metricRegistry = newCleanupRegistry(conf.MetricRegistry) + } go withRecover(func() { defer func() { @@ -256,6 +261,7 @@ func (b *Broker) Open(conf *Config) error { b.connErr = b.authenticateViaSASLv1() if b.connErr != nil { close(b.responses) + <-b.done err = b.conn.Close() if err == nil { DebugLogger.Printf("Closed connection to broker %s\n", b.addr) @@ -367,6 +373,7 @@ func (b *Broker) Rack() string { // GetMetadata send a metadata request and returns a metadata response or error func (b *Broker) GetMetadata(request *MetadataRequest) (*MetadataResponse, error) { response := new(MetadataResponse) + response.Version = request.Version // Required to ensure use of the correct response header version err := b.sendAndReceive(request, response) if err != nil { @@ -429,12 +436,16 @@ type ProduceCallback func(*ProduceResponse, error) // // Make sure not to Close the broker in the callback as it will lead to a deadlock. func (b *Broker) AsyncProduce(request *ProduceRequest, cb ProduceCallback) error { - metricRegistry := b.metricRegistry + b.lock.Lock() + defer b.lock.Unlock() + needAcks := request.RequiredAcks != NoResponse // Use a nil promise when no acks is required var promise *responsePromise if needAcks { + metricRegistry := b.metricRegistry + // Create ProduceResponse early to provide the header version res := new(ProduceResponse) promise = &responsePromise{ @@ -453,15 +464,13 @@ func (b *Broker) AsyncProduce(request *ProduceRequest, cb ProduceCallback) error return } - // Wellformed response - b.updateThrottleMetric(res.ThrottleTime) + // Well-formed response + b.handleThrottledResponse(res) cb(res, nil) }, } } - b.lock.Lock() - defer b.lock.Unlock() return b.sendWithPromise(request, promise) } @@ -477,7 +486,6 @@ func (b *Broker) Produce(request *ProduceRequest) (*ProduceResponse, error) { } else { response = new(ProduceResponse) err = b.sendAndReceive(request, response) - b.updateThrottleMetric(response.ThrottleTime) } if err != nil { @@ -584,6 +592,7 @@ func (b *Broker) Heartbeat(request *HeartbeatRequest) (*HeartbeatResponse, error // ListGroups return a list group response or error func (b *Broker) ListGroups(request *ListGroupsRequest) (*ListGroupsResponse, error) { response := new(ListGroupsResponse) + response.Version = request.Version // Required to ensure use of the correct response header version err := b.sendAndReceive(request, response) if err != nil { @@ -942,7 +951,7 @@ func (b *Broker) write(buf []byte) (n int, err error) { return b.conn.Write(buf) } -// b.lock must be haled by caller +// b.lock must be held by caller func (b *Broker) send(rb protocolBody, promiseResponse bool, responseHeaderVersion int16) (*responsePromise, error) { var promise *responsePromise if promiseResponse { @@ -998,6 +1007,9 @@ func (b *Broker) sendInternal(rb protocolBody, promise *responsePromise) error { return err } + // check and wait if throttled + b.waitIfThrottled() + requestTime := time.Now() // Will be decremented in responseReceiver (except error or request with NoResponse) b.addRequestInFlightMetrics(1) @@ -1040,7 +1052,14 @@ func (b *Broker) sendAndReceive(req protocolBody, res protocolBody) error { return nil } - return handleResponsePromise(req, res, promise, b.metricRegistry) + err = handleResponsePromise(req, res, promise, b.metricRegistry) + if err != nil { + return err + } + if res != nil { + b.handleThrottledResponse(res) + } + return nil } func handleResponsePromise(req protocolBody, res protocolBody, promise *responsePromise, metricRegistry metrics.Registry) error { @@ -1058,7 +1077,12 @@ func (b *Broker) decode(pd packetDecoder, version int16) (err error) { return err } - host, err := pd.getString() + var host string + if version < 9 { + host, err = pd.getString() + } else { + host, err = pd.getCompactString() + } if err != nil { return err } @@ -1068,11 +1092,13 @@ func (b *Broker) decode(pd packetDecoder, version int16) (err error) { return err } - if version >= 1 { + if version >= 1 && version < 9 { b.rack, err = pd.getNullableString() - if err != nil { - return err - } + } else if version >= 9 { + b.rack, err = pd.getCompactNullableString() + } + if err != nil { + return err } b.addr = net.JoinHostPort(host, fmt.Sprint(port)) @@ -1080,6 +1106,13 @@ func (b *Broker) decode(pd packetDecoder, version int16) (err error) { return err } + if version >= 9 { + _, err := pd.getEmptyTaggedFieldArray() + if err != nil { + return err + } + } + return nil } @@ -1096,7 +1129,11 @@ func (b *Broker) encode(pe packetEncoder, version int16) (err error) { pe.putInt32(b.id) - err = pe.putString(host) + if version < 9 { + err = pe.putString(host) + } else { + err = pe.putCompactString(host) + } if err != nil { return err } @@ -1104,12 +1141,20 @@ func (b *Broker) encode(pe packetEncoder, version int16) (err error) { pe.putInt32(int32(port)) if version >= 1 { - err = pe.putNullableString(b.rack) + if version < 9 { + err = pe.putNullableString(b.rack) + } else { + err = pe.putNullableCompactString(b.rack) + } if err != nil { return err } } + if version >= 9 { + pe.putEmptyTaggedFieldArray() + } + return nil } @@ -1439,7 +1484,7 @@ func (b *Broker) sendAndReceiveSASLSCRAMv0() error { length := len(msg) authBytes := make([]byte, length+4) // 4 byte length header + auth data binary.BigEndian.PutUint32(authBytes, uint32(length)) - copy(authBytes[4:], []byte(msg)) + copy(authBytes[4:], msg) _, err := b.write(authBytes) b.updateOutgoingCommunicationMetrics(length + 4) if err != nil { @@ -1633,16 +1678,52 @@ func (b *Broker) updateProtocolMetrics(rb protocolBody) { } } -func (b *Broker) updateThrottleMetric(throttleTime time.Duration) { - if throttleTime != time.Duration(0) { - DebugLogger.Printf( - "producer/broker/%d ProduceResponse throttled %v\n", - b.ID(), throttleTime) - if b.brokerThrottleTime != nil { - throttleTimeInMs := int64(throttleTime / time.Millisecond) - b.brokerThrottleTime.Update(throttleTimeInMs) +type throttleSupport interface { + throttleTime() time.Duration +} + +func (b *Broker) handleThrottledResponse(resp protocolBody) { + throttledResponse, ok := resp.(throttleSupport) + if !ok { + return + } + throttleTime := throttledResponse.throttleTime() + if throttleTime == time.Duration(0) { + return + } + DebugLogger.Printf( + "broker/%d %T throttled %v\n", b.ID(), resp, throttleTime) + b.setThrottle(throttleTime) + b.updateThrottleMetric(throttleTime) +} + +func (b *Broker) setThrottle(throttleTime time.Duration) { + b.throttleTimerLock.Lock() + defer b.throttleTimerLock.Unlock() + if b.throttleTimer != nil { + // if there is an existing timer stop/clear it + if !b.throttleTimer.Stop() { + <-b.throttleTimer.C } } + b.throttleTimer = time.NewTimer(throttleTime) +} + +func (b *Broker) waitIfThrottled() { + b.throttleTimerLock.Lock() + defer b.throttleTimerLock.Unlock() + if b.throttleTimer != nil { + DebugLogger.Printf("broker/%d waiting for throttle timer\n", b.ID()) + <-b.throttleTimer.C + b.throttleTimer = nil + } +} + +func (b *Broker) updateThrottleMetric(throttleTime time.Duration) { + if b.brokerThrottleTime != nil { + throttleTimeInMs := int64(throttleTime / time.Millisecond) + b.brokerThrottleTime.Update(throttleTimeInMs) + } } func (b *Broker) registerMetrics() { diff --git a/vendor/github.com/Shopify/sarama/client.go b/vendor/github.com/IBM/sarama/client.go similarity index 86% rename from vendor/github.com/Shopify/sarama/client.go rename to vendor/github.com/IBM/sarama/client.go index f7872a1b3..2decba7c5 100644 --- a/vendor/github.com/Shopify/sarama/client.go +++ b/vendor/github.com/IBM/sarama/client.go @@ -1,13 +1,18 @@ package sarama import ( + "context" "errors" "math" "math/rand" + "net" "sort" + "strings" "sync" "sync/atomic" "time" + + "golang.org/x/net/proxy" ) // Client is a generic Kafka client. It manages connections to one or more Kafka brokers. @@ -50,7 +55,7 @@ type Client interface { // topic/partition, as determined by querying the cluster metadata. Leader(topic string, partitionID int32) (*Broker, error) - // LeaderAndEpoch returns the the leader and its epoch for the current + // LeaderAndEpoch returns the leader and its epoch for the current // topic/partition, as determined by querying the cluster metadata. LeaderAndEpoch(topic string, partitionID int32) (*Broker, int32, error) @@ -132,10 +137,10 @@ const ( ) type client struct { - // updateMetaDataMs stores the time at which metadata was lasted updated. + // updateMetadataMs stores the time at which metadata was lasted updated. // Note: this accessed atomically so must be the first word in the struct // as per golang/go#41970 - updateMetaDataMs int64 + updateMetadataMs int64 conf *Config closer, closed chan none // for shutting down background metadata updater @@ -158,7 +163,6 @@ type client struct { cachedPartitionsResults map[string][maxPartitionIndex][]int32 lock sync.RWMutex // protects access to the maps that hold cluster state. - } // NewClient creates a new Client. It connects to one of the given broker addresses @@ -179,6 +183,13 @@ func NewClient(addrs []string, conf *Config) (Client, error) { return nil, ConfigurationError("You must provide at least one broker address") } + if strings.Contains(addrs[0], ".servicebus.windows.net") { + if conf.Version.IsAtLeast(V1_1_0_0) || !conf.Version.IsAtLeast(V0_11_0_0) { + Logger.Println("Connecting to Azure Event Hubs, forcing version to V1_0_0_0 for compatibility") + conf.Version = V1_0_0_0 + } + } + client := &client{ conf: conf, closer: make(chan none), @@ -191,6 +202,14 @@ func NewClient(addrs []string, conf *Config) (Client, error) { transactionCoordinators: make(map[string]int32), } + if conf.Net.ResolveCanonicalBootstrapServers { + var err error + addrs, err = client.resolveCanonicalNames(addrs) + if err != nil { + return nil, err + } + } + client.randomizeSeedBrokers(addrs) if conf.Metadata.Full { @@ -239,12 +258,26 @@ func (client *client) Broker(brokerID int32) (*Broker, error) { } func (client *client) InitProducerID() (*InitProducerIDResponse, error) { + // FIXME: this InitProducerID seems to only be called from client_test.go (TestInitProducerIDConnectionRefused) and has been superceded by transaction_manager.go? brokerErrors := make([]error, 0) - for broker := client.anyBroker(); broker != nil; broker = client.anyBroker() { - var response *InitProducerIDResponse - req := &InitProducerIDRequest{} + for broker := client.LeastLoadedBroker(); broker != nil; broker = client.LeastLoadedBroker() { + request := &InitProducerIDRequest{} + + if client.conf.Version.IsAtLeast(V2_7_0_0) { + // Version 4 adds the support for new error code PRODUCER_FENCED. + request.Version = 4 + } else if client.conf.Version.IsAtLeast(V2_5_0_0) { + // Version 3 adds ProducerId and ProducerEpoch, allowing producers to try to resume after an INVALID_PRODUCER_EPOCH error + request.Version = 3 + } else if client.conf.Version.IsAtLeast(V2_4_0_0) { + // Version 2 is the first flexible version. + request.Version = 2 + } else if client.conf.Version.IsAtLeast(V2_0_0_0) { + // Version 1 is the same as version 0. + request.Version = 1 + } - response, err := broker.InitProducerID(req) + response, err := broker.InitProducerID(request) if err == nil { return response, nil } else { @@ -486,16 +519,16 @@ func (client *client) RefreshBrokers(addrs []string) error { defer client.lock.Unlock() for _, broker := range client.brokers { - _ = broker.Close() - delete(client.brokers, broker.ID()) + safeAsyncClose(broker) } + client.brokers = make(map[int32]*Broker) for _, broker := range client.seedBrokers { - _ = broker.Close() + safeAsyncClose(broker) } for _, broker := range client.deadSeeds { - _ = broker.Close() + safeAsyncClose(broker) } client.seedBrokers = nil @@ -513,7 +546,7 @@ func (client *client) RefreshMetadata(topics ...string) error { // Prior to 0.8.2, Kafka will throw exceptions on an empty topic and not return a proper // error. This handles the case by returning an error instead of sending it - // off to Kafka. See: https://github.com/Shopify/sarama/pull/38#issuecomment-26362310 + // off to Kafka. See: https://github.com/IBM/sarama/pull/38#issuecomment-26362310 for _, topic := range topics { if topic == "" { return ErrInvalidTopic // this is the error that 0.8.2 and later correctly return @@ -527,17 +560,17 @@ func (client *client) RefreshMetadata(topics ...string) error { return client.tryRefreshMetadata(topics, client.conf.Metadata.Retry.Max, deadline) } -func (client *client) GetOffset(topic string, partitionID int32, time int64) (int64, error) { +func (client *client) GetOffset(topic string, partitionID int32, timestamp int64) (int64, error) { if client.Closed() { return -1, ErrClosedClient } - offset, err := client.getOffset(topic, partitionID, time) + offset, err := client.getOffset(topic, partitionID, timestamp) if err != nil { if err := client.RefreshMetadata(topic); err != nil { return -1, err } - return client.getOffset(topic, partitionID, time) + return client.getOffset(topic, partitionID, timestamp) } return offset, err @@ -730,22 +763,21 @@ func (client *client) registerBroker(broker *Broker) { } } -// deregisterBroker removes a broker from the seedsBroker list, and if it's -// not the seedbroker, removes it from brokers map completely. +// deregisterBroker removes a broker from the broker list, and if it's +// not in the broker list, removes it from seedBrokers. func (client *client) deregisterBroker(broker *Broker) { client.lock.Lock() defer client.lock.Unlock() + _, ok := client.brokers[broker.ID()] + if ok { + Logger.Printf("client/brokers deregistered broker #%d at %s", broker.ID(), broker.Addr()) + delete(client.brokers, broker.ID()) + return + } if len(client.seedBrokers) > 0 && broker == client.seedBrokers[0] { client.deadSeeds = append(client.deadSeeds, broker) client.seedBrokers = client.seedBrokers[1:] - } else { - // we do this so that our loop in `tryRefreshMetadata` doesn't go on forever, - // but we really shouldn't have to; once that loop is made better this case can be - // removed, and the function generally can be renamed from `deregisterBroker` to - // `nextSeedBroker` or something - DebugLogger.Printf("client/brokers deregistered broker #%d at %s", broker.ID(), broker.Addr()) - delete(client.brokers, broker.ID()) } } @@ -758,33 +790,12 @@ func (client *client) resurrectDeadBrokers() { client.deadSeeds = nil } -func (client *client) anyBroker() *Broker { - client.lock.RLock() - defer client.lock.RUnlock() - - if len(client.seedBrokers) > 0 { - _ = client.seedBrokers[0].Open(client.conf) - return client.seedBrokers[0] - } - - // not guaranteed to be random *or* deterministic - for _, broker := range client.brokers { - _ = broker.Open(client.conf) - return broker - } - - return nil -} - +// LeastLoadedBroker returns the broker with the least pending requests. +// Firstly, choose the broker from cached broker list. If the broker list is empty, choose from seed brokers. func (client *client) LeastLoadedBroker() *Broker { client.lock.RLock() defer client.lock.RUnlock() - if len(client.seedBrokers) > 0 { - _ = client.seedBrokers[0].Open(client.conf) - return client.seedBrokers[0] - } - var leastLoadedBroker *Broker pendingRequests := math.MaxInt for _, broker := range client.brokers { @@ -793,10 +804,16 @@ func (client *client) LeastLoadedBroker() *Broker { leastLoadedBroker = broker } } - if leastLoadedBroker != nil { _ = leastLoadedBroker.Open(client.conf) + return leastLoadedBroker + } + + if len(client.seedBrokers) > 0 { + _ = client.seedBrokers[0].Open(client.conf) + return client.seedBrokers[0] } + return leastLoadedBroker } @@ -879,17 +896,29 @@ func (client *client) cachedLeader(topic string, partitionID int32) (*Broker, in return nil, -1, ErrUnknownTopicOrPartition } -func (client *client) getOffset(topic string, partitionID int32, time int64) (int64, error) { +func (client *client) getOffset(topic string, partitionID int32, timestamp int64) (int64, error) { broker, err := client.Leader(topic, partitionID) if err != nil { return -1, err } request := &OffsetRequest{} - if client.conf.Version.IsAtLeast(V0_10_1_0) { + if client.conf.Version.IsAtLeast(V2_1_0_0) { + // Version 4 adds the current leader epoch, which is used for fencing. + request.Version = 4 + } else if client.conf.Version.IsAtLeast(V2_0_0_0) { + // Version 3 is the same as version 2. + request.Version = 3 + } else if client.conf.Version.IsAtLeast(V0_11_0_0) { + // Version 2 adds the isolation level, which is used for transactional reads. + request.Version = 2 + } else if client.conf.Version.IsAtLeast(V0_10_1_0) { + // Version 1 removes MaxNumOffsets. From this version forward, only a single + // offset can be returned. request.Version = 1 } - request.AddBlock(topic, partitionID, time, 1) + + request.AddBlock(topic, partitionID, timestamp, 1) response, err := broker.GetAvailableOffsets(request) if err != nil { @@ -975,20 +1004,21 @@ func (client *client) tryRefreshMetadata(topics []string, attemptsRemaining int, time.Sleep(backoff) } - t := atomic.LoadInt64(&client.updateMetaDataMs) - if time.Since(time.Unix(t/1e3, 0)) < backoff { + t := atomic.LoadInt64(&client.updateMetadataMs) + if time.Since(time.UnixMilli(t)) < backoff { return err } + attemptsRemaining-- Logger.Printf("client/metadata retrying after %dms... (%d attempts remaining)\n", backoff/time.Millisecond, attemptsRemaining) - return client.tryRefreshMetadata(topics, attemptsRemaining-1, deadline) + return client.tryRefreshMetadata(topics, attemptsRemaining, deadline) } return err } - broker := client.anyBroker() + broker := client.LeastLoadedBroker() brokerErrors := make([]error, 0) - for ; broker != nil && !pastDeadline(0); broker = client.anyBroker() { + for ; broker != nil && !pastDeadline(0); broker = client.LeastLoadedBroker() { allowAutoTopicCreation := client.conf.Metadata.AllowAutoTopicCreation if len(topics) > 0 { DebugLogger.Printf("client/metadata fetching metadata for %v from broker %s\n", topics, broker.addr) @@ -999,15 +1029,19 @@ func (client *client) tryRefreshMetadata(topics []string, attemptsRemaining int, req := NewMetadataRequest(client.conf.Version, topics) req.AllowAutoTopicCreation = allowAutoTopicCreation - t := atomic.LoadInt64(&client.updateMetaDataMs) - if !atomic.CompareAndSwapInt64(&client.updateMetaDataMs, t, time.Now().UnixNano()/int64(time.Millisecond)) { - return nil - } + atomic.StoreInt64(&client.updateMetadataMs, time.Now().UnixMilli()) response, err := broker.GetMetadata(req) var kerror KError var packetEncodingError PacketEncodingError if err == nil { + // When talking to the startup phase of a broker, it is possible to receive an empty metadata set. We should remove that broker and try next broker (https://issues.apache.org/jira/browse/KAFKA-7924). + if len(response.Brokers) == 0 { + Logger.Println("client/metadata receiving empty brokers from the metadata response when requesting the broker #%d at %s", broker.ID(), broker.addr) + _ = broker.Close() + client.deregisterBroker(broker) + continue + } allKnownMetaData := len(topics) == 0 // valid response, use it shouldRetry, err := client.updateMetadata(response, allKnownMetaData) @@ -1160,24 +1194,30 @@ func (client *client) findCoordinator(coordinatorKey string, coordinatorType Coo retry := func(err error) (*FindCoordinatorResponse, error) { if attemptsRemaining > 0 { backoff := client.computeBackoff(attemptsRemaining) + attemptsRemaining-- Logger.Printf("client/coordinator retrying after %dms... (%d attempts remaining)\n", backoff/time.Millisecond, attemptsRemaining) time.Sleep(backoff) - return client.findCoordinator(coordinatorKey, coordinatorType, attemptsRemaining-1) + return client.findCoordinator(coordinatorKey, coordinatorType, attemptsRemaining) } return nil, err } brokerErrors := make([]error, 0) - for broker := client.anyBroker(); broker != nil; broker = client.anyBroker() { + for broker := client.LeastLoadedBroker(); broker != nil; broker = client.LeastLoadedBroker() { DebugLogger.Printf("client/coordinator requesting coordinator for %s from %s\n", coordinatorKey, broker.Addr()) request := new(FindCoordinatorRequest) request.CoordinatorKey = coordinatorKey request.CoordinatorType = coordinatorType + // Version 1 adds KeyType. if client.conf.Version.IsAtLeast(V0_11_0_0) { request.Version = 1 } + // Version 2 is the same as version 1. + if client.conf.Version.IsAtLeast(V2_0_0_0) { + request.Version = 2 + } response, err := broker.FindCoordinator(request) if err != nil { @@ -1228,6 +1268,53 @@ func (client *client) findCoordinator(coordinatorKey string, coordinatorType Coo return retry(Wrap(ErrOutOfBrokers, brokerErrors...)) } +func (client *client) resolveCanonicalNames(addrs []string) ([]string, error) { + ctx := context.Background() + + dialer := client.Config().getDialer() + resolver := net.Resolver{ + Dial: func(ctx context.Context, network, address string) (net.Conn, error) { + // dial func should only be called once, so switching within is acceptable + switch d := dialer.(type) { + case proxy.ContextDialer: + return d.DialContext(ctx, network, address) + default: + // we have no choice but to ignore the context + return d.Dial(network, address) + } + }, + } + + canonicalAddrs := make(map[string]struct{}, len(addrs)) // dedupe as we go + for _, addr := range addrs { + host, port, err := net.SplitHostPort(addr) + if err != nil { + return nil, err // message includes addr + } + + ips, err := resolver.LookupHost(ctx, host) + if err != nil { + return nil, err // message includes host + } + for _, ip := range ips { + ptrs, err := resolver.LookupAddr(ctx, ip) + if err != nil { + return nil, err // message includes ip + } + + // unlike the Java client, we do not further check that PTRs resolve + ptr := strings.TrimSuffix(ptrs[0], ".") // trailing dot breaks GSSAPI + canonicalAddrs[net.JoinHostPort(ptr, port)] = struct{}{} + } + } + + addrs = make([]string, 0, len(canonicalAddrs)) + for addr := range canonicalAddrs { + addrs = append(addrs, addr) + } + return addrs, nil +} + // nopCloserClient embeds an existing Client, but disables // the Close method (yet all other methods pass // through unchanged). This is for use in larger structs diff --git a/vendor/github.com/Shopify/sarama/compress.go b/vendor/github.com/IBM/sarama/compress.go similarity index 99% rename from vendor/github.com/Shopify/sarama/compress.go rename to vendor/github.com/IBM/sarama/compress.go index 504007a49..a7bd525bc 100644 --- a/vendor/github.com/Shopify/sarama/compress.go +++ b/vendor/github.com/IBM/sarama/compress.go @@ -2,11 +2,11 @@ package sarama import ( "bytes" - "compress/gzip" "fmt" "sync" snappy "github.com/eapache/go-xerial-snappy" + "github.com/klauspost/compress/gzip" "github.com/pierrec/lz4/v4" ) diff --git a/vendor/github.com/Shopify/sarama/config.go b/vendor/github.com/IBM/sarama/config.go similarity index 95% rename from vendor/github.com/Shopify/sarama/config.go rename to vendor/github.com/IBM/sarama/config.go index b07034434..facf76643 100644 --- a/vendor/github.com/Shopify/sarama/config.go +++ b/vendor/github.com/IBM/sarama/config.go @@ -1,7 +1,6 @@ package sarama import ( - "compress/gzip" "crypto/tls" "fmt" "io" @@ -9,13 +8,16 @@ import ( "regexp" "time" + "github.com/klauspost/compress/gzip" "github.com/rcrowley/go-metrics" "golang.org/x/net/proxy" ) const defaultClientID = "sarama" -var validID = regexp.MustCompile(`\A[A-Za-z0-9._-]+\z`) +// validClientID specifies the permitted characters for a client.id when +// connecting to Kafka versions before 1.0.0 (KIP-190) +var validClientID = regexp.MustCompile(`\A[A-Za-z0-9._-]+\z`) // Config is used to pass multiple configuration options to Sarama's constructors. type Config struct { @@ -50,6 +52,15 @@ type Config struct { ReadTimeout time.Duration // How long to wait for a response. WriteTimeout time.Duration // How long to wait for a transmit. + // ResolveCanonicalBootstrapServers turns each bootstrap broker address + // into a set of IPs, then does a reverse lookup on each one to get its + // canonical hostname. This list of hostnames then replaces the + // original address list. Similar to the `client.dns.lookup` option in + // the JVM client, this is especially useful with GSSAPI, where it + // allows providing an alias record instead of individual broker + // hostnames. Defaults to false. + ResolveCanonicalBootstrapServers bool + TLS struct { // Whether or not to use TLS when connecting to the broker // (defaults to false). @@ -272,7 +283,6 @@ type Config struct { // Consumer is the namespace for configuration related to consuming messages, // used by the Consumer. Consumer struct { - // Group is the namespace for configuring consumer group. Group struct { Session struct { @@ -294,7 +304,7 @@ type Config struct { Interval time.Duration } Rebalance struct { - // Strategy for allocating topic partitions to members (default BalanceStrategyRange) + // Strategy for allocating topic partitions to members. // Deprecated: Strategy exists for historical compatibility // and should not be used. Please use GroupStrategies. Strategy BalanceStrategy @@ -302,7 +312,7 @@ type Config struct { // GroupStrategies is the priority-ordered list of client-side consumer group // balancing strategies that will be offered to the coordinator. The first // strategy that all group members support will be chosen by the leader. - // default: [BalanceStrategyRange] + // default: [ NewBalanceStrategyRange() ] GroupStrategies []BalanceStrategy // The maximum allowed time for each worker to join the group once a rebalance has begun. @@ -505,7 +515,7 @@ func NewConfig() *Config { c.Net.ReadTimeout = 30 * time.Second c.Net.WriteTimeout = 30 * time.Second c.Net.SASL.Handshake = true - c.Net.SASL.Version = SASLHandshakeV0 + c.Net.SASL.Version = SASLHandshakeV1 c.Metadata.Retry.Max = 3 c.Metadata.Retry.Backoff = 250 * time.Millisecond @@ -513,7 +523,7 @@ func NewConfig() *Config { c.Metadata.Full = true c.Metadata.AllowAutoTopicCreation = true - c.Producer.MaxMessageBytes = 1000000 + c.Producer.MaxMessageBytes = 1024 * 1024 c.Producer.RequiredAcks = WaitForLocal c.Producer.Timeout = 10 * time.Second c.Producer.Partitioner = NewHashPartitioner @@ -539,7 +549,7 @@ func NewConfig() *Config { c.Consumer.Group.Session.Timeout = 10 * time.Second c.Consumer.Group.Heartbeat.Interval = 3 * time.Second - c.Consumer.Group.Rebalance.GroupStrategies = []BalanceStrategy{BalanceStrategyRange} + c.Consumer.Group.Rebalance.GroupStrategies = []BalanceStrategy{NewBalanceStrategyRange()} c.Consumer.Group.Rebalance.Timeout = 60 * time.Second c.Consumer.Group.Rebalance.Retry.Max = 4 c.Consumer.Group.Rebalance.Retry.Backoff = 2 * time.Second @@ -650,19 +660,26 @@ func (c *Config) Validate() error { return ConfigurationError("Net.SASL.GSSAPI.ServiceName must not be empty when GSS-API mechanism is used") } - if c.Net.SASL.GSSAPI.AuthType == KRB5_USER_AUTH { + switch c.Net.SASL.GSSAPI.AuthType { + case KRB5_USER_AUTH: if c.Net.SASL.GSSAPI.Password == "" { return ConfigurationError("Net.SASL.GSSAPI.Password must not be empty when GSS-API " + "mechanism is used and Net.SASL.GSSAPI.AuthType = KRB5_USER_AUTH") } - } else if c.Net.SASL.GSSAPI.AuthType == KRB5_KEYTAB_AUTH { + case KRB5_KEYTAB_AUTH: if c.Net.SASL.GSSAPI.KeyTabPath == "" { return ConfigurationError("Net.SASL.GSSAPI.KeyTabPath must not be empty when GSS-API mechanism is used" + - " and Net.SASL.GSSAPI.AuthType = KRB5_KEYTAB_AUTH") + " and Net.SASL.GSSAPI.AuthType = KRB5_KEYTAB_AUTH") + } + case KRB5_CCACHE_AUTH: + if c.Net.SASL.GSSAPI.CCachePath == "" { + return ConfigurationError("Net.SASL.GSSAPI.CCachePath must not be empty when GSS-API mechanism is used" + + " and Net.SASL.GSSAPI.AuthType = KRB5_CCACHE_AUTH") } - } else { - return ConfigurationError("Net.SASL.GSSAPI.AuthType is invalid. Possible values are KRB5_USER_AUTH and KRB5_KEYTAB_AUTH") + default: + return ConfigurationError("Net.SASL.GSSAPI.AuthType is invalid. Possible values are KRB5_USER_AUTH, KRB5_KEYTAB_AUTH, and KRB5_CCACHE_AUTH") } + if c.Net.SASL.GSSAPI.KerberosConfigPath == "" { return ConfigurationError("Net.SASL.GSSAPI.KerberosConfigPath must not be empty when GSS-API mechanism is used") } @@ -831,8 +848,11 @@ func (c *Config) Validate() error { switch { case c.ChannelBufferSize < 0: return ConfigurationError("ChannelBufferSize must be >= 0") - case !validID.MatchString(c.ClientID): - return ConfigurationError("ClientID is invalid") + } + + // only validate clientID locally for Kafka versions before KIP-190 was implemented + if !c.Version.IsAtLeast(V1_0_0_0) && !validClientID.MatchString(c.ClientID) { + return ConfigurationError(fmt.Sprintf("ClientID value %q is not valid for Kafka versions before 1.0.0", c.ClientID)) } return nil @@ -840,7 +860,7 @@ func (c *Config) Validate() error { func (c *Config) getDialer() proxy.Dialer { if c.Net.Proxy.Enable { - Logger.Printf("using proxy %s", c.Net.Proxy.Dialer) + Logger.Println("using proxy") return c.Net.Proxy.Dialer } else { return &net.Dialer{ diff --git a/vendor/github.com/Shopify/sarama/config_resource_type.go b/vendor/github.com/IBM/sarama/config_resource_type.go similarity index 100% rename from vendor/github.com/Shopify/sarama/config_resource_type.go rename to vendor/github.com/IBM/sarama/config_resource_type.go diff --git a/vendor/github.com/Shopify/sarama/consumer.go b/vendor/github.com/IBM/sarama/consumer.go similarity index 96% rename from vendor/github.com/Shopify/sarama/consumer.go rename to vendor/github.com/IBM/sarama/consumer.go index eb27df8d7..60556a566 100644 --- a/vendor/github.com/Shopify/sarama/consumer.go +++ b/vendor/github.com/IBM/sarama/consumer.go @@ -85,13 +85,13 @@ type Consumer interface { // New calls to the broker will return records from these partitions if there are any to be fetched. Resume(topicPartitions map[string][]int32) - // Pause suspends fetching from all partitions. Future calls to the broker will not return any + // PauseAll suspends fetching from all partitions. Future calls to the broker will not return any // records from these partitions until they have been resumed using Resume()/ResumeAll(). // Note that this method does not affect partition subscription. // In particular, it does not cause a group rebalance when automatic assignment is used. PauseAll() - // Resume resumes all partitions which have been paused with Pause()/PauseAll(). + // ResumeAll resumes all partitions which have been paused with Pause()/PauseAll(). // New calls to the broker will return records from these partitions if there are any to be fetched. ResumeAll() } @@ -920,7 +920,7 @@ func (bc *brokerConsumer) subscriptionManager() { } // subscriptionConsumer ensures we will get nil right away if no new subscriptions is available -// this is a the main loop that fetches Kafka messages +// this is the main loop that fetches Kafka messages func (bc *brokerConsumer) subscriptionConsumer() { for newSubscriptions := range bc.newSubscriptions { bc.updateSubscriptions(newSubscriptions) @@ -942,6 +942,7 @@ func (bc *brokerConsumer) subscriptionConsumer() { // if there isn't response, it means that not fetch was made // so we don't need to handle any response if response == nil { + time.Sleep(partitionConsumersBatchTimeout) continue } @@ -1067,20 +1068,35 @@ func (bc *brokerConsumer) fetchNewMessages() (*FetchResponse, error) { MinBytes: bc.consumer.conf.Consumer.Fetch.Min, MaxWaitTime: int32(bc.consumer.conf.Consumer.MaxWaitTime / time.Millisecond), } + // Version 1 is the same as version 0. if bc.consumer.conf.Version.IsAtLeast(V0_9_0_0) { request.Version = 1 } + // Starting in Version 2, the requestor must be able to handle Kafka Log + // Message format version 1. if bc.consumer.conf.Version.IsAtLeast(V0_10_0_0) { request.Version = 2 } + // Version 3 adds MaxBytes. Starting in version 3, the partition ordering in + // the request is now relevant. Partitions will be processed in the order + // they appear in the request. if bc.consumer.conf.Version.IsAtLeast(V0_10_1_0) { request.Version = 3 request.MaxBytes = MaxResponseSize } + // Version 4 adds IsolationLevel. Starting in version 4, the reqestor must be + // able to handle Kafka log message format version 2. + // Version 5 adds LogStartOffset to indicate the earliest available offset of + // partition data that can be consumed. if bc.consumer.conf.Version.IsAtLeast(V0_11_0_0) { - request.Version = 4 + request.Version = 5 request.Isolation = bc.consumer.conf.Consumer.IsolationLevel } + // Version 6 is the same as version 5. + if bc.consumer.conf.Version.IsAtLeast(V1_0_0_0) { + request.Version = 6 + } + // Version 7 adds incremental fetch request support. if bc.consumer.conf.Version.IsAtLeast(V1_1_0_0) { request.Version = 7 // We do not currently implement KIP-227 FetchSessions. Setting the id to 0 @@ -1089,9 +1105,17 @@ func (bc *brokerConsumer) fetchNewMessages() (*FetchResponse, error) { request.SessionID = 0 request.SessionEpoch = -1 } + // Version 8 is the same as version 7. + if bc.consumer.conf.Version.IsAtLeast(V2_0_0_0) { + request.Version = 8 + } + // Version 9 adds CurrentLeaderEpoch, as described in KIP-320. + // Version 10 indicates that we can use the ZStd compression algorithm, as + // described in KIP-110. if bc.consumer.conf.Version.IsAtLeast(V2_1_0_0) { request.Version = 10 } + // Version 11 adds RackID for KIP-392 fetch from closest replica if bc.consumer.conf.Version.IsAtLeast(V2_3_0_0) { request.Version = 11 request.RackID = bc.consumer.conf.RackID diff --git a/vendor/github.com/Shopify/sarama/consumer_group.go b/vendor/github.com/IBM/sarama/consumer_group.go similarity index 86% rename from vendor/github.com/Shopify/sarama/consumer_group.go rename to vendor/github.com/IBM/sarama/consumer_group.go index ecdbcfa68..53b64dd3b 100644 --- a/vendor/github.com/Shopify/sarama/consumer_group.go +++ b/vendor/github.com/IBM/sarama/consumer_group.go @@ -114,6 +114,9 @@ func NewConsumerGroup(addrs []string, groupID string, config *Config) (ConsumerG // necessary to call Close() on the underlying client when shutting down this consumer. // PLEASE NOTE: consumer groups can only re-use but not share clients. func NewConsumerGroupFromClient(groupID string, client Client) (ConsumerGroup, error) { + if client == nil { + return nil, ConfigurationError("client must not be nil") + } // For clients passed in by the client, ensure we don't // call Close() on it. cli := &nopCloserClient{client} @@ -141,8 +144,8 @@ func newConsumerGroup(groupID string, client Client) (ConsumerGroup, error) { userData: config.Consumer.Group.Member.UserData, metricRegistry: newCleanupRegistry(config.MetricRegistry), } - if client.Config().Consumer.Group.InstanceId != "" && config.Version.IsAtLeast(V2_3_0_0) { - cg.groupInstanceId = &client.Config().Consumer.Group.InstanceId + if config.Consumer.Group.InstanceId != "" && config.Version.IsAtLeast(V2_3_0_0) { + cg.groupInstanceId = &config.Consumer.Group.InstanceId } return cg, nil } @@ -210,13 +213,11 @@ func (c *consumerGroup) Consume(ctx context.Context, topics []string, handler Co return err } - // loop check topic partition numbers changed - // will trigger rebalance when any topic partitions number had changed - // avoid Consume function called again that will generate more than loopCheckPartitionNumbers coroutine - go c.loopCheckPartitionNumbers(topics, sess) - - // Wait for session exit signal - <-sess.ctx.Done() + // Wait for session exit signal or Close() call + select { + case <-c.closed: + case <-sess.ctx.Done(): + } // Gracefully release session claims return sess.release(true) @@ -244,6 +245,8 @@ func (c *consumerGroup) ResumeAll() { func (c *consumerGroup) retryNewSession(ctx context.Context, topics []string, handler ConsumerGroupHandler, retries int, refreshCoordinator bool) (*consumerGroupSession, error) { select { + case <-ctx.Done(): + return nil, ctx.Err() case <-c.closed: return nil, ErrClosedConsumerGroup case <-time.After(c.config.Consumer.Group.Rebalance.Retry.Backoff): @@ -252,7 +255,10 @@ func (c *consumerGroup) retryNewSession(ctx context.Context, topics []string, ha if refreshCoordinator { err := c.client.RefreshCoordinator(c.groupID) if err != nil { - return c.retryNewSession(ctx, topics, handler, retries, true) + if retries <= 0 { + return nil, err + } + return c.retryNewSession(ctx, topics, handler, retries-1, true) } } @@ -260,6 +266,9 @@ func (c *consumerGroup) retryNewSession(ctx context.Context, topics []string, ha } func (c *consumerGroup) newSession(ctx context.Context, topics []string, handler ConsumerGroupHandler, retries int) (*consumerGroupSession, error) { + if ctx.Err() != nil { + return nil, ctx.Err() + } coordinator, err := c.client.Coordinator(c.groupID) if err != nil { if retries <= 0 { @@ -315,10 +324,12 @@ func (c *consumerGroup) newSession(ctx context.Context, topics []string, handler } return c.retryNewSession(ctx, topics, handler, retries, true) case ErrMemberIdRequired: - // from JoinGroupRequest v4, if client start with empty member id, - // it need to get member id from response and send another join request to join group + // from JoinGroupRequest v4 onwards (due to KIP-394) if the client starts + // with an empty member id, it needs to get the assigned id from the + // response and send another join request with that id to actually join the + // group c.memberID = join.MemberId - return c.retryNewSession(ctx, topics, handler, retries+1 /*keep retry time*/, false) + return c.newSession(ctx, topics, handler, retries) case ErrFencedInstancedId: if c.groupInstanceId != nil { Logger.Printf("JoinGroup failed: group instance id %s has been fenced\n", *c.groupInstanceId) @@ -342,13 +353,15 @@ func (c *consumerGroup) newSession(ctx context.Context, topics []string, handler // Prepare distribution plan if we joined as the leader var plan BalanceStrategyPlan var members map[string]ConsumerGroupMemberMetadata + var allSubscribedTopicPartitions map[string][]int32 + var allSubscribedTopics []string if join.LeaderId == join.MemberId { members, err = join.GetMembers() if err != nil { return nil, err } - plan, err = c.balance(strategy, members) + allSubscribedTopicPartitions, allSubscribedTopics, plan, err = c.balance(strategy, members) if err != nil { return nil, err } @@ -403,7 +416,7 @@ func (c *consumerGroup) newSession(ctx context.Context, topics []string, handler claims = members.Topics // in the case of stateful balance strategies, hold on to the returned - // assignment metadata, otherwise, reset the statically defined conusmer + // assignment metadata, otherwise, reset the statically defined consumer // group metadata if members.UserData != nil { c.userData = members.UserData @@ -416,7 +429,17 @@ func (c *consumerGroup) newSession(ctx context.Context, topics []string, handler } } - return newConsumerGroupSession(ctx, c, claims, join.MemberId, join.GenerationId, handler) + session, err := newConsumerGroupSession(ctx, c, claims, join.MemberId, join.GenerationId, handler) + if err != nil { + return nil, err + } + + // only the leader needs to check whether there are newly-added partitions in order to trigger a rebalance + if join.LeaderId == join.MemberId { + go c.loopCheckPartitionNumbers(allSubscribedTopicPartitions, allSubscribedTopics, session) + } + + return session, err } func (c *consumerGroup) joinGroupRequest(coordinator *Broker, topics []string) (*JoinGroupResponse, error) { @@ -430,7 +453,23 @@ func (c *consumerGroup) joinGroupRequest(coordinator *Broker, topics []string) ( req.Version = 1 req.RebalanceTimeout = int32(c.config.Consumer.Group.Rebalance.Timeout / time.Millisecond) } - if c.groupInstanceId != nil { + if c.config.Version.IsAtLeast(V0_11_0_0) { + req.Version = 2 + } + if c.config.Version.IsAtLeast(V0_11_0_0) { + req.Version = 2 + } + if c.config.Version.IsAtLeast(V2_0_0_0) { + req.Version = 3 + } + // from JoinGroupRequest v4 onwards (due to KIP-394) the client will actually + // send two JoinGroupRequests, once with the empty member id, and then again + // with the assigned id from the first response. This is handled via the + // ErrMemberIdRequired case. + if c.config.Version.IsAtLeast(V2_2_0_0) { + req.Version = 4 + } + if c.config.Version.IsAtLeast(V2_3_0_0) { req.Version = 5 req.GroupInstanceId = c.groupInstanceId } @@ -479,12 +518,19 @@ func (c *consumerGroup) syncGroupRequest( GenerationId: generationID, } + // Versions 1 and 2 are the same as version 0. + if c.config.Version.IsAtLeast(V0_11_0_0) { + req.Version = 1 + } + if c.config.Version.IsAtLeast(V2_0_0_0) { + req.Version = 2 + } + // Starting from version 3, we add a new field called groupInstanceId to indicate member identity across restarts. if c.config.Version.IsAtLeast(V2_3_0_0) { req.Version = 3 - } - if c.groupInstanceId != nil { req.GroupInstanceId = c.groupInstanceId } + for memberID, topics := range plan { assignment := &ConsumerGroupMemberAssignment{Topics: topics} userDataBytes, err := strategy.AssignmentData(memberID, topics, generationID) @@ -513,7 +559,16 @@ func (c *consumerGroup) heartbeatRequest(coordinator *Broker, memberID string, g MemberId: memberID, GenerationId: generationID, } - if c.groupInstanceId != nil { + + // Version 1 and version 2 are the same as version 0. + if c.config.Version.IsAtLeast(V0_11_0_0) { + req.Version = 1 + } + if c.config.Version.IsAtLeast(V2_0_0_0) { + req.Version = 2 + } + // Starting from version 3, we add a new field called groupInstanceId to indicate member identity across restarts. + if c.config.Version.IsAtLeast(V2_3_0_0) { req.Version = 3 req.GroupInstanceId = c.groupInstanceId } @@ -521,23 +576,36 @@ func (c *consumerGroup) heartbeatRequest(coordinator *Broker, memberID string, g return coordinator.Heartbeat(req) } -func (c *consumerGroup) balance(strategy BalanceStrategy, members map[string]ConsumerGroupMemberMetadata) (BalanceStrategyPlan, error) { - topics := make(map[string][]int32) +func (c *consumerGroup) balance(strategy BalanceStrategy, members map[string]ConsumerGroupMemberMetadata) (map[string][]int32, []string, BalanceStrategyPlan, error) { + topicPartitions := make(map[string][]int32) for _, meta := range members { for _, topic := range meta.Topics { - topics[topic] = nil + topicPartitions[topic] = nil } } - for topic := range topics { + allSubscribedTopics := make([]string, 0, len(topicPartitions)) + for topic := range topicPartitions { + allSubscribedTopics = append(allSubscribedTopics, topic) + } + + // refresh metadata for all the subscribed topics in the consumer group + // to avoid using stale metadata to assigning partitions + err := c.client.RefreshMetadata(allSubscribedTopics...) + if err != nil { + return nil, nil, nil, err + } + + for topic := range topicPartitions { partitions, err := c.client.Partitions(topic) if err != nil { - return nil, err + return nil, nil, nil, err } - topics[topic] = partitions + topicPartitions[topic] = partitions } - return strategy.Plan(members, topics) + plan, err := strategy.Plan(members, topicPartitions) + return topicPartitions, allSubscribedTopics, plan, err } // Leaves the cluster, called by Close. @@ -553,32 +621,43 @@ func (c *consumerGroup) leave() error { return err } - // KIP-345 if groupInstanceId is set, don not leave group when consumer closed. - // Since we do not discover ApiVersion for brokers, LeaveGroupRequest still use the old version request for now - if c.groupInstanceId == nil { - resp, err := coordinator.LeaveGroup(&LeaveGroupRequest{ - GroupId: c.groupID, + // as per KIP-345 if groupInstanceId is set, i.e. static membership is in action, then do not leave group when consumer closed, just clear memberID + if c.groupInstanceId != nil { + c.memberID = "" + return nil + } + req := &LeaveGroupRequest{ + GroupId: c.groupID, + MemberId: c.memberID, + } + if c.config.Version.IsAtLeast(V0_11_0_0) { + req.Version = 1 + } + if c.config.Version.IsAtLeast(V2_0_0_0) { + req.Version = 2 + } + if c.config.Version.IsAtLeast(V2_4_0_0) { + req.Version = 3 + req.Members = append(req.Members, MemberIdentity{ MemberId: c.memberID, }) - if err != nil { - _ = coordinator.Close() - return err - } + } - // Unset memberID - c.memberID = "" + resp, err := coordinator.LeaveGroup(req) + if err != nil { + _ = coordinator.Close() + return err + } - // Check response - switch resp.Err { - case ErrRebalanceInProgress, ErrUnknownMemberId, ErrNoError: - return nil - default: - return resp.Err - } - } else { - c.memberID = "" + // clear the memberID + c.memberID = "" + + switch resp.Err { + case ErrRebalanceInProgress, ErrUnknownMemberId, ErrNoError: + return nil + default: + return resp.Err } - return nil } func (c *consumerGroup) handleError(err error, topic string, partition int32) { @@ -612,24 +691,29 @@ func (c *consumerGroup) handleError(err error, topic string, partition int32) { } } -func (c *consumerGroup) loopCheckPartitionNumbers(topics []string, session *consumerGroupSession) { +func (c *consumerGroup) loopCheckPartitionNumbers(allSubscribedTopicPartitions map[string][]int32, topics []string, session *consumerGroupSession) { if c.config.Metadata.RefreshFrequency == time.Duration(0) { return } - pause := time.NewTicker(c.config.Metadata.RefreshFrequency) + defer session.cancel() - defer pause.Stop() - var oldTopicToPartitionNum map[string]int - var err error - if oldTopicToPartitionNum, err = c.topicToPartitionNumbers(topics); err != nil { - return + + oldTopicToPartitionNum := make(map[string]int, len(allSubscribedTopicPartitions)) + for topic, partitions := range allSubscribedTopicPartitions { + oldTopicToPartitionNum[topic] = len(partitions) } + + pause := time.NewTicker(c.config.Metadata.RefreshFrequency) + defer pause.Stop() for { if newTopicToPartitionNum, err := c.topicToPartitionNumbers(topics); err != nil { return } else { for topic, num := range oldTopicToPartitionNum { if newTopicToPartitionNum[topic] != num { + Logger.Printf( + "consumergroup/%s loop check partition number goroutine find partitions in topics %s changed from %d to %d\n", + c.groupID, topics, num, newTopicToPartitionNum[topic]) return // trigger the end of the session on exit } } @@ -638,7 +722,7 @@ func (c *consumerGroup) loopCheckPartitionNumbers(topics []string, session *cons case <-pause.C: case <-session.ctx.Done(): Logger.Printf( - "consumergroup/%s loop check partition number coroutine will exit, topics %s\n", + "consumergroup/%s loop check partition number goroutine will exit, topics %s\n", c.groupID, topics) // if session closed by other, should be exited return @@ -1013,7 +1097,7 @@ type ConsumerGroupClaim interface { // InitialOffset returns the initial offset that was used as a starting point for this claim. InitialOffset() int64 - // HighWaterMarkOffset returns the high water mark offset of the partition, + // HighWaterMarkOffset returns the high watermark offset of the partition, // i.e. the offset that will be used for the next message that will be produced. // You can use this to determine how far behind the processing is. HighWaterMarkOffset() int64 diff --git a/vendor/github.com/Shopify/sarama/consumer_group_members.go b/vendor/github.com/IBM/sarama/consumer_group_members.go similarity index 73% rename from vendor/github.com/Shopify/sarama/consumer_group_members.go rename to vendor/github.com/IBM/sarama/consumer_group_members.go index 3b8ca36f6..2d3896091 100644 --- a/vendor/github.com/Shopify/sarama/consumer_group_members.go +++ b/vendor/github.com/IBM/sarama/consumer_group_members.go @@ -9,6 +9,8 @@ type ConsumerGroupMemberMetadata struct { Topics []string UserData []byte OwnedPartitions []*OwnedPartition + GenerationID int32 + RackID *string } func (m *ConsumerGroupMemberMetadata) encode(pe packetEncoder) error { @@ -22,6 +24,27 @@ func (m *ConsumerGroupMemberMetadata) encode(pe packetEncoder) error { return err } + if m.Version >= 1 { + if err := pe.putArrayLength(len(m.OwnedPartitions)); err != nil { + return err + } + for _, op := range m.OwnedPartitions { + if err := op.encode(pe); err != nil { + return err + } + } + } + + if m.Version >= 2 { + pe.putInt32(m.GenerationID) + } + + if m.Version >= 3 { + if err := pe.putNullableString(m.RackID); err != nil { + return err + } + } + return nil } @@ -48,18 +71,29 @@ func (m *ConsumerGroupMemberMetadata) decode(pd packetDecoder) (err error) { } return err } - if n == 0 { - return nil - } - m.OwnedPartitions = make([]*OwnedPartition, n) - for i := 0; i < n; i++ { - m.OwnedPartitions[i] = &OwnedPartition{} - if err := m.OwnedPartitions[i].decode(pd); err != nil { - return err + if n > 0 { + m.OwnedPartitions = make([]*OwnedPartition, n) + for i := 0; i < n; i++ { + m.OwnedPartitions[i] = &OwnedPartition{} + if err := m.OwnedPartitions[i].decode(pd); err != nil { + return err + } } } } + if m.Version >= 2 { + if m.GenerationID, err = pd.getInt32(); err != nil { + return err + } + } + + if m.Version >= 3 { + if m.RackID, err = pd.getNullableString(); err != nil { + return err + } + } + return nil } @@ -68,6 +102,16 @@ type OwnedPartition struct { Partitions []int32 } +func (m *OwnedPartition) encode(pe packetEncoder) error { + if err := pe.putString(m.Topic); err != nil { + return err + } + if err := pe.putInt32Array(m.Partitions); err != nil { + return err + } + return nil +} + func (m *OwnedPartition) decode(pd packetDecoder) (err error) { if m.Topic, err = pd.getString(); err != nil { return err diff --git a/vendor/github.com/Shopify/sarama/consumer_metadata_request.go b/vendor/github.com/IBM/sarama/consumer_metadata_request.go similarity index 75% rename from vendor/github.com/Shopify/sarama/consumer_metadata_request.go rename to vendor/github.com/IBM/sarama/consumer_metadata_request.go index 5c18e048a..ef6b9e721 100644 --- a/vendor/github.com/Shopify/sarama/consumer_metadata_request.go +++ b/vendor/github.com/IBM/sarama/consumer_metadata_request.go @@ -2,6 +2,7 @@ package sarama // ConsumerMetadataRequest is used for metadata requests type ConsumerMetadataRequest struct { + Version int16 ConsumerGroup string } @@ -9,6 +10,7 @@ func (r *ConsumerMetadataRequest) encode(pe packetEncoder) error { tmp := new(FindCoordinatorRequest) tmp.CoordinatorKey = r.ConsumerGroup tmp.CoordinatorType = CoordinatorGroup + tmp.Version = r.Version return tmp.encode(pe) } @@ -26,13 +28,24 @@ func (r *ConsumerMetadataRequest) key() int16 { } func (r *ConsumerMetadataRequest) version() int16 { - return 0 + return r.Version } func (r *ConsumerMetadataRequest) headerVersion() int16 { return 1 } +func (r *ConsumerMetadataRequest) isValidVersion() bool { + return r.Version >= 0 && r.Version <= 2 +} + func (r *ConsumerMetadataRequest) requiredVersion() KafkaVersion { - return V0_8_2_0 + switch r.Version { + case 2: + return V2_0_0_0 + case 1: + return V0_11_0_0 + default: + return V0_8_2_0 + } } diff --git a/vendor/github.com/Shopify/sarama/consumer_metadata_response.go b/vendor/github.com/IBM/sarama/consumer_metadata_response.go similarity index 86% rename from vendor/github.com/Shopify/sarama/consumer_metadata_response.go rename to vendor/github.com/IBM/sarama/consumer_metadata_response.go index 7fe0cf971..d99209e3b 100644 --- a/vendor/github.com/Shopify/sarama/consumer_metadata_response.go +++ b/vendor/github.com/IBM/sarama/consumer_metadata_response.go @@ -7,6 +7,7 @@ import ( // ConsumerMetadataResponse holds the response for a consumer group meta data requests type ConsumerMetadataResponse struct { + Version int16 Err KError Coordinator *Broker CoordinatorID int32 // deprecated: use Coordinator.ID() @@ -53,7 +54,7 @@ func (r *ConsumerMetadataResponse) encode(pe packetEncoder) error { } tmp := &FindCoordinatorResponse{ - Version: 0, + Version: r.Version, Err: r.Err, Coordinator: r.Coordinator, } @@ -70,13 +71,24 @@ func (r *ConsumerMetadataResponse) key() int16 { } func (r *ConsumerMetadataResponse) version() int16 { - return 0 + return r.Version } func (r *ConsumerMetadataResponse) headerVersion() int16 { return 0 } +func (r *ConsumerMetadataResponse) isValidVersion() bool { + return r.Version >= 0 && r.Version <= 2 +} + func (r *ConsumerMetadataResponse) requiredVersion() KafkaVersion { - return V0_8_2_0 + switch r.Version { + case 2: + return V2_0_0_0 + case 1: + return V0_11_0_0 + default: + return V0_8_2_0 + } } diff --git a/vendor/github.com/Shopify/sarama/control_record.go b/vendor/github.com/IBM/sarama/control_record.go similarity index 100% rename from vendor/github.com/Shopify/sarama/control_record.go rename to vendor/github.com/IBM/sarama/control_record.go diff --git a/vendor/github.com/Shopify/sarama/crc32_field.go b/vendor/github.com/IBM/sarama/crc32_field.go similarity index 100% rename from vendor/github.com/Shopify/sarama/crc32_field.go rename to vendor/github.com/IBM/sarama/crc32_field.go diff --git a/vendor/github.com/Shopify/sarama/create_partitions_request.go b/vendor/github.com/IBM/sarama/create_partitions_request.go similarity index 90% rename from vendor/github.com/Shopify/sarama/create_partitions_request.go rename to vendor/github.com/IBM/sarama/create_partitions_request.go index 46fb04402..3f5512656 100644 --- a/vendor/github.com/Shopify/sarama/create_partitions_request.go +++ b/vendor/github.com/IBM/sarama/create_partitions_request.go @@ -3,6 +3,7 @@ package sarama import "time" type CreatePartitionsRequest struct { + Version int16 TopicPartitions map[string]*TopicPartition Timeout time.Duration ValidateOnly bool @@ -64,15 +65,26 @@ func (r *CreatePartitionsRequest) key() int16 { } func (r *CreatePartitionsRequest) version() int16 { - return 0 + return r.Version } func (r *CreatePartitionsRequest) headerVersion() int16 { return 1 } +func (r *CreatePartitionsRequest) isValidVersion() bool { + return r.Version >= 0 && r.Version <= 1 +} + func (r *CreatePartitionsRequest) requiredVersion() KafkaVersion { - return V1_0_0_0 + switch r.Version { + case 1: + return V2_0_0_0 + case 0: + return V1_0_0_0 + default: + return V2_0_0_0 + } } type TopicPartition struct { diff --git a/vendor/github.com/Shopify/sarama/create_partitions_response.go b/vendor/github.com/IBM/sarama/create_partitions_response.go similarity index 86% rename from vendor/github.com/Shopify/sarama/create_partitions_response.go rename to vendor/github.com/IBM/sarama/create_partitions_response.go index 235787f13..c9e7ea72c 100644 --- a/vendor/github.com/Shopify/sarama/create_partitions_response.go +++ b/vendor/github.com/IBM/sarama/create_partitions_response.go @@ -6,6 +6,7 @@ import ( ) type CreatePartitionsResponse struct { + Version int16 ThrottleTime time.Duration TopicPartitionErrors map[string]*TopicPartitionError } @@ -60,15 +61,30 @@ func (r *CreatePartitionsResponse) key() int16 { } func (r *CreatePartitionsResponse) version() int16 { - return 0 + return r.Version } func (r *CreatePartitionsResponse) headerVersion() int16 { return 0 } +func (r *CreatePartitionsResponse) isValidVersion() bool { + return r.Version >= 0 && r.Version <= 1 +} + func (r *CreatePartitionsResponse) requiredVersion() KafkaVersion { - return V1_0_0_0 + switch r.Version { + case 1: + return V2_0_0_0 + case 0: + return V1_0_0_0 + default: + return V2_0_0_0 + } +} + +func (r *CreatePartitionsResponse) throttleTime() time.Duration { + return r.ThrottleTime } type TopicPartitionError struct { diff --git a/vendor/github.com/Shopify/sarama/create_topics_request.go b/vendor/github.com/IBM/sarama/create_topics_request.go similarity index 74% rename from vendor/github.com/Shopify/sarama/create_topics_request.go rename to vendor/github.com/IBM/sarama/create_topics_request.go index 287acd069..8382d17c2 100644 --- a/vendor/github.com/Shopify/sarama/create_topics_request.go +++ b/vendor/github.com/IBM/sarama/create_topics_request.go @@ -5,10 +5,14 @@ import ( ) type CreateTopicsRequest struct { + // Version defines the protocol version to use for encode and decode Version int16 - + // TopicDetails contains the topics to create. TopicDetails map[string]*TopicDetail - Timeout time.Duration + // Timeout contains how long to wait before timing out the request. + Timeout time.Duration + // ValidateOnly if true, check that the topics can be created as specified, + // but don't create anything. ValidateOnly bool } @@ -83,22 +87,39 @@ func (r *CreateTopicsRequest) headerVersion() int16 { return 1 } +func (c *CreateTopicsRequest) isValidVersion() bool { + return c.Version >= 0 && c.Version <= 3 +} + func (c *CreateTopicsRequest) requiredVersion() KafkaVersion { switch c.Version { + case 3: + return V2_0_0_0 case 2: - return V1_0_0_0 - case 1: return V0_11_0_0 - default: + case 1: + return V0_10_2_0 + case 0: return V0_10_1_0 + default: + return V2_8_0_0 } } type TopicDetail struct { - NumPartitions int32 + // NumPartitions contains the number of partitions to create in the topic, or + // -1 if we are either specifying a manual partition assignment or using the + // default partitions. + NumPartitions int32 + // ReplicationFactor contains the number of replicas to create for each + // partition in the topic, or -1 if we are either specifying a manual + // partition assignment or using the default replication factor. ReplicationFactor int16 + // ReplicaAssignment contains the manual partition assignment, or the empty + // array if we are using automatic assignment. ReplicaAssignment map[int32][]int32 - ConfigEntries map[string]*string + // ConfigEntries contains the custom topic configurations to set. + ConfigEntries map[string]*string } func (t *TopicDetail) encode(pe packetEncoder) error { diff --git a/vendor/github.com/Shopify/sarama/create_topics_response.go b/vendor/github.com/IBM/sarama/create_topics_response.go similarity index 78% rename from vendor/github.com/Shopify/sarama/create_topics_response.go rename to vendor/github.com/IBM/sarama/create_topics_response.go index 6b940bff0..85bd4c0b9 100644 --- a/vendor/github.com/Shopify/sarama/create_topics_response.go +++ b/vendor/github.com/IBM/sarama/create_topics_response.go @@ -6,9 +6,13 @@ import ( ) type CreateTopicsResponse struct { - Version int16 + // Version defines the protocol version to use for encode and decode + Version int16 + // ThrottleTime contains the duration for which the request was throttled due + // to a quota violation, or zero if the request did not violate any quota. ThrottleTime time.Duration - TopicErrors map[string]*TopicError + // TopicErrors contains a map of any errors for the topics we tried to create. + TopicErrors map[string]*TopicError } func (c *CreateTopicsResponse) encode(pe packetEncoder) error { @@ -74,17 +78,29 @@ func (c *CreateTopicsResponse) headerVersion() int16 { return 0 } +func (c *CreateTopicsResponse) isValidVersion() bool { + return c.Version >= 0 && c.Version <= 3 +} + func (c *CreateTopicsResponse) requiredVersion() KafkaVersion { switch c.Version { + case 3: + return V2_0_0_0 case 2: - return V1_0_0_0 - case 1: return V0_11_0_0 - default: + case 1: + return V0_10_2_0 + case 0: return V0_10_1_0 + default: + return V2_8_0_0 } } +func (r *CreateTopicsResponse) throttleTime() time.Duration { + return r.ThrottleTime +} + type TopicError struct { Err KError ErrMsg *string diff --git a/vendor/github.com/IBM/sarama/decompress.go b/vendor/github.com/IBM/sarama/decompress.go new file mode 100644 index 000000000..0a0998329 --- /dev/null +++ b/vendor/github.com/IBM/sarama/decompress.go @@ -0,0 +1,98 @@ +package sarama + +import ( + "bytes" + "fmt" + "sync" + + snappy "github.com/eapache/go-xerial-snappy" + "github.com/klauspost/compress/gzip" + "github.com/pierrec/lz4/v4" +) + +var ( + lz4ReaderPool = sync.Pool{ + New: func() interface{} { + return lz4.NewReader(nil) + }, + } + + gzipReaderPool sync.Pool + + bufferPool = sync.Pool{ + New: func() interface{} { + return new(bytes.Buffer) + }, + } + + bytesPool = sync.Pool{ + New: func() interface{} { + res := make([]byte, 0, 4096) + return &res + }, + } +) + +func decompress(cc CompressionCodec, data []byte) ([]byte, error) { + switch cc { + case CompressionNone: + return data, nil + case CompressionGZIP: + var err error + reader, ok := gzipReaderPool.Get().(*gzip.Reader) + if !ok { + reader, err = gzip.NewReader(bytes.NewReader(data)) + } else { + err = reader.Reset(bytes.NewReader(data)) + } + + if err != nil { + return nil, err + } + + buffer := bufferPool.Get().(*bytes.Buffer) + _, err = buffer.ReadFrom(reader) + // copy the buffer to a new slice with the correct length + // reuse gzipReader and buffer + gzipReaderPool.Put(reader) + res := make([]byte, buffer.Len()) + copy(res, buffer.Bytes()) + buffer.Reset() + bufferPool.Put(buffer) + + return res, err + case CompressionSnappy: + return snappy.Decode(data) + case CompressionLZ4: + reader, ok := lz4ReaderPool.Get().(*lz4.Reader) + if !ok { + reader = lz4.NewReader(bytes.NewReader(data)) + } else { + reader.Reset(bytes.NewReader(data)) + } + buffer := bufferPool.Get().(*bytes.Buffer) + _, err := buffer.ReadFrom(reader) + // copy the buffer to a new slice with the correct length + // reuse lz4Reader and buffer + lz4ReaderPool.Put(reader) + res := make([]byte, buffer.Len()) + copy(res, buffer.Bytes()) + buffer.Reset() + bufferPool.Put(buffer) + + return res, err + case CompressionZSTD: + buffer := *bytesPool.Get().(*[]byte) + var err error + buffer, err = zstdDecompress(ZstdDecoderParams{}, buffer, data) + // copy the buffer to a new slice with the correct length and reuse buffer + res := make([]byte, len(buffer)) + copy(res, buffer) + buffer = buffer[:0] + bytesPool.Put(&buffer) + + return res, err + default: + return nil, PacketDecodingError{fmt.Sprintf("invalid compression specified (%d)", cc)} + } +} diff --git a/vendor/github.com/Shopify/sarama/delete_groups_request.go b/vendor/github.com/IBM/sarama/delete_groups_request.go similarity index 71% rename from vendor/github.com/Shopify/sarama/delete_groups_request.go rename to vendor/github.com/IBM/sarama/delete_groups_request.go index 4ac8bbee4..2fdfc3386 100644 --- a/vendor/github.com/Shopify/sarama/delete_groups_request.go +++ b/vendor/github.com/IBM/sarama/delete_groups_request.go @@ -1,7 +1,8 @@ package sarama type DeleteGroupsRequest struct { - Groups []string + Version int16 + Groups []string } func (r *DeleteGroupsRequest) encode(pe packetEncoder) error { @@ -18,15 +19,26 @@ func (r *DeleteGroupsRequest) key() int16 { } func (r *DeleteGroupsRequest) version() int16 { - return 0 + return r.Version } func (r *DeleteGroupsRequest) headerVersion() int16 { return 1 } +func (r *DeleteGroupsRequest) isValidVersion() bool { + return r.Version >= 0 && r.Version <= 1 +} + func (r *DeleteGroupsRequest) requiredVersion() KafkaVersion { - return V1_1_0_0 + switch r.Version { + case 1: + return V2_0_0_0 + case 0: + return V1_1_0_0 + default: + return V2_0_0_0 + } } func (r *DeleteGroupsRequest) AddGroup(group string) { diff --git a/vendor/github.com/Shopify/sarama/delete_groups_response.go b/vendor/github.com/IBM/sarama/delete_groups_response.go similarity index 80% rename from vendor/github.com/Shopify/sarama/delete_groups_response.go rename to vendor/github.com/IBM/sarama/delete_groups_response.go index 5e7b1ed36..e490f8314 100644 --- a/vendor/github.com/Shopify/sarama/delete_groups_response.go +++ b/vendor/github.com/IBM/sarama/delete_groups_response.go @@ -5,6 +5,7 @@ import ( ) type DeleteGroupsResponse struct { + Version int16 ThrottleTime time.Duration GroupErrorCodes map[string]KError } @@ -62,13 +63,28 @@ func (r *DeleteGroupsResponse) key() int16 { } func (r *DeleteGroupsResponse) version() int16 { - return 0 + return r.Version } func (r *DeleteGroupsResponse) headerVersion() int16 { return 0 } +func (r *DeleteGroupsResponse) isValidVersion() bool { + return r.Version >= 0 && r.Version <= 1 +} + func (r *DeleteGroupsResponse) requiredVersion() KafkaVersion { - return V1_1_0_0 + switch r.Version { + case 1: + return V2_0_0_0 + case 0: + return V1_1_0_0 + default: + return V2_0_0_0 + } +} + +func (r *DeleteGroupsResponse) throttleTime() time.Duration { + return r.ThrottleTime } diff --git a/vendor/github.com/Shopify/sarama/delete_offsets_request.go b/vendor/github.com/IBM/sarama/delete_offsets_request.go similarity index 93% rename from vendor/github.com/Shopify/sarama/delete_offsets_request.go rename to vendor/github.com/IBM/sarama/delete_offsets_request.go index 339c7857c..06b864d18 100644 --- a/vendor/github.com/Shopify/sarama/delete_offsets_request.go +++ b/vendor/github.com/IBM/sarama/delete_offsets_request.go @@ -1,6 +1,7 @@ package sarama type DeleteOffsetsRequest struct { + Version int16 Group string partitions map[string][]int32 } @@ -72,13 +73,17 @@ func (r *DeleteOffsetsRequest) key() int16 { } func (r *DeleteOffsetsRequest) version() int16 { - return 0 + return r.Version } func (r *DeleteOffsetsRequest) headerVersion() int16 { return 1 } +func (r *DeleteOffsetsRequest) isValidVersion() bool { + return r.Version == 0 +} + func (r *DeleteOffsetsRequest) requiredVersion() KafkaVersion { return V2_4_0_0 } diff --git a/vendor/github.com/Shopify/sarama/delete_offsets_response.go b/vendor/github.com/IBM/sarama/delete_offsets_response.go similarity index 91% rename from vendor/github.com/Shopify/sarama/delete_offsets_response.go rename to vendor/github.com/IBM/sarama/delete_offsets_response.go index d59ae0f8c..86c6c51f6 100644 --- a/vendor/github.com/Shopify/sarama/delete_offsets_response.go +++ b/vendor/github.com/IBM/sarama/delete_offsets_response.go @@ -5,6 +5,7 @@ import ( ) type DeleteOffsetsResponse struct { + Version int16 // The top-level error code, or 0 if there was no error. ErrorCode KError ThrottleTime time.Duration @@ -100,13 +101,21 @@ func (r *DeleteOffsetsResponse) key() int16 { } func (r *DeleteOffsetsResponse) version() int16 { - return 0 + return r.Version } func (r *DeleteOffsetsResponse) headerVersion() int16 { return 0 } +func (r *DeleteOffsetsResponse) isValidVersion() bool { + return r.Version == 0 +} + func (r *DeleteOffsetsResponse) requiredVersion() KafkaVersion { return V2_4_0_0 } + +func (r *DeleteOffsetsResponse) throttleTime() time.Duration { + return r.ThrottleTime +} diff --git a/vendor/github.com/Shopify/sarama/delete_records_request.go b/vendor/github.com/IBM/sarama/delete_records_request.go similarity index 92% rename from vendor/github.com/Shopify/sarama/delete_records_request.go rename to vendor/github.com/IBM/sarama/delete_records_request.go index dc106b17d..3ca2146af 100644 --- a/vendor/github.com/Shopify/sarama/delete_records_request.go +++ b/vendor/github.com/IBM/sarama/delete_records_request.go @@ -13,6 +13,7 @@ import ( // id(int32) offset(int64) type DeleteRecordsRequest struct { + Version int16 Topics map[string]*DeleteRecordsRequestTopic Timeout time.Duration } @@ -74,15 +75,24 @@ func (d *DeleteRecordsRequest) key() int16 { } func (d *DeleteRecordsRequest) version() int16 { - return 0 + return d.Version } func (d *DeleteRecordsRequest) headerVersion() int16 { return 1 } +func (d *DeleteRecordsRequest) isValidVersion() bool { + return d.Version >= 0 && d.Version <= 1 +} + func (d *DeleteRecordsRequest) requiredVersion() KafkaVersion { - return V0_11_0_0 + switch d.Version { + case 1: + return V2_0_0_0 + default: + return V0_11_0_0 + } } type DeleteRecordsRequestTopic struct { diff --git a/vendor/github.com/Shopify/sarama/delete_records_response.go b/vendor/github.com/IBM/sarama/delete_records_response.go similarity index 92% rename from vendor/github.com/Shopify/sarama/delete_records_response.go rename to vendor/github.com/IBM/sarama/delete_records_response.go index d530b4c7e..2d7db885b 100644 --- a/vendor/github.com/Shopify/sarama/delete_records_response.go +++ b/vendor/github.com/IBM/sarama/delete_records_response.go @@ -77,15 +77,28 @@ func (d *DeleteRecordsResponse) key() int16 { } func (d *DeleteRecordsResponse) version() int16 { - return 0 + return d.Version } func (d *DeleteRecordsResponse) headerVersion() int16 { return 0 } +func (d *DeleteRecordsResponse) isValidVersion() bool { + return d.Version >= 0 && d.Version <= 1 +} + func (d *DeleteRecordsResponse) requiredVersion() KafkaVersion { - return V0_11_0_0 + switch d.Version { + case 1: + return V2_0_0_0 + default: + return V0_11_0_0 + } +} + +func (r *DeleteRecordsResponse) throttleTime() time.Duration { + return r.ThrottleTime } type DeleteRecordsResponseTopic struct { diff --git a/vendor/github.com/Shopify/sarama/delete_topics_request.go b/vendor/github.com/IBM/sarama/delete_topics_request.go similarity index 84% rename from vendor/github.com/Shopify/sarama/delete_topics_request.go rename to vendor/github.com/IBM/sarama/delete_topics_request.go index ba6780a8e..252c0d025 100644 --- a/vendor/github.com/Shopify/sarama/delete_topics_request.go +++ b/vendor/github.com/IBM/sarama/delete_topics_request.go @@ -42,11 +42,21 @@ func (d *DeleteTopicsRequest) headerVersion() int16 { return 1 } +func (d *DeleteTopicsRequest) isValidVersion() bool { + return d.Version >= 0 && d.Version <= 3 +} + func (d *DeleteTopicsRequest) requiredVersion() KafkaVersion { switch d.Version { + case 3: + return V2_1_0_0 + case 2: + return V2_0_0_0 case 1: return V0_11_0_0 - default: + case 0: return V0_10_1_0 + default: + return V2_2_0_0 } } diff --git a/vendor/github.com/Shopify/sarama/delete_topics_response.go b/vendor/github.com/IBM/sarama/delete_topics_response.go similarity index 84% rename from vendor/github.com/Shopify/sarama/delete_topics_response.go rename to vendor/github.com/IBM/sarama/delete_topics_response.go index 733961a89..556da6892 100644 --- a/vendor/github.com/Shopify/sarama/delete_topics_response.go +++ b/vendor/github.com/IBM/sarama/delete_topics_response.go @@ -72,11 +72,25 @@ func (d *DeleteTopicsResponse) headerVersion() int16 { return 0 } +func (d *DeleteTopicsResponse) isValidVersion() bool { + return d.Version >= 0 && d.Version <= 3 +} + func (d *DeleteTopicsResponse) requiredVersion() KafkaVersion { switch d.Version { + case 3: + return V2_1_0_0 + case 2: + return V2_0_0_0 case 1: return V0_11_0_0 - default: + case 0: return V0_10_1_0 + default: + return V2_2_0_0 } } + +func (r *DeleteTopicsResponse) throttleTime() time.Duration { + return r.ThrottleTime +} diff --git a/vendor/github.com/Shopify/sarama/describe_client_quotas_request.go b/vendor/github.com/IBM/sarama/describe_client_quotas_request.go similarity index 96% rename from vendor/github.com/Shopify/sarama/describe_client_quotas_request.go rename to vendor/github.com/IBM/sarama/describe_client_quotas_request.go index 17a82051c..8869145c3 100644 --- a/vendor/github.com/Shopify/sarama/describe_client_quotas_request.go +++ b/vendor/github.com/IBM/sarama/describe_client_quotas_request.go @@ -11,6 +11,7 @@ package sarama // Components: the components to filter on // Strict: whether the filter only includes specified components type DescribeClientQuotasRequest struct { + Version int16 Components []QuotaFilterComponent Strict bool } @@ -129,13 +130,17 @@ func (d *DescribeClientQuotasRequest) key() int16 { } func (d *DescribeClientQuotasRequest) version() int16 { - return 0 + return d.Version } func (d *DescribeClientQuotasRequest) headerVersion() int16 { return 1 } +func (d *DescribeClientQuotasRequest) isValidVersion() bool { + return d.Version == 0 +} + func (d *DescribeClientQuotasRequest) requiredVersion() KafkaVersion { return V2_6_0_0 } diff --git a/vendor/github.com/Shopify/sarama/describe_client_quotas_response.go b/vendor/github.com/IBM/sarama/describe_client_quotas_response.go similarity index 95% rename from vendor/github.com/Shopify/sarama/describe_client_quotas_response.go rename to vendor/github.com/IBM/sarama/describe_client_quotas_response.go index 555da0c48..e9bf658ad 100644 --- a/vendor/github.com/Shopify/sarama/describe_client_quotas_response.go +++ b/vendor/github.com/IBM/sarama/describe_client_quotas_response.go @@ -17,6 +17,7 @@ import ( // value => FLOAT64 type DescribeClientQuotasResponse struct { + Version int16 ThrottleTime time.Duration // The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. ErrorCode KError // The error code, or `0` if the quota description succeeded. ErrorMsg *string // The error message, or `null` if the quota description succeeded. @@ -223,13 +224,21 @@ func (d *DescribeClientQuotasResponse) key() int16 { } func (d *DescribeClientQuotasResponse) version() int16 { - return 0 + return d.Version } func (d *DescribeClientQuotasResponse) headerVersion() int16 { return 0 } +func (d *DescribeClientQuotasResponse) isValidVersion() bool { + return d.Version == 0 +} + func (d *DescribeClientQuotasResponse) requiredVersion() KafkaVersion { return V2_6_0_0 } + +func (r *DescribeClientQuotasResponse) throttleTime() time.Duration { + return r.ThrottleTime +} diff --git a/vendor/github.com/Shopify/sarama/describe_configs_request.go b/vendor/github.com/IBM/sarama/describe_configs_request.go similarity index 94% rename from vendor/github.com/Shopify/sarama/describe_configs_request.go rename to vendor/github.com/IBM/sarama/describe_configs_request.go index 4c3488031..d0ab0d6ef 100644 --- a/vendor/github.com/Shopify/sarama/describe_configs_request.go +++ b/vendor/github.com/IBM/sarama/describe_configs_request.go @@ -103,13 +103,19 @@ func (r *DescribeConfigsRequest) headerVersion() int16 { return 1 } +func (r *DescribeConfigsRequest) isValidVersion() bool { + return r.Version >= 0 && r.Version <= 2 +} + func (r *DescribeConfigsRequest) requiredVersion() KafkaVersion { switch r.Version { - case 1: - return V1_1_0_0 case 2: return V2_0_0_0 - default: + case 1: + return V1_1_0_0 + case 0: return V0_11_0_0 + default: + return V2_0_0_0 } } diff --git a/vendor/github.com/Shopify/sarama/describe_configs_response.go b/vendor/github.com/IBM/sarama/describe_configs_response.go similarity index 92% rename from vendor/github.com/Shopify/sarama/describe_configs_response.go rename to vendor/github.com/IBM/sarama/describe_configs_response.go index 4968f4854..386a56885 100644 --- a/vendor/github.com/Shopify/sarama/describe_configs_response.go +++ b/vendor/github.com/IBM/sarama/describe_configs_response.go @@ -34,6 +34,19 @@ const ( SourceDefault ) +type DescribeConfigError struct { + Err KError + ErrMsg string +} + +func (c *DescribeConfigError) Error() string { + text := c.Err.Error() + if c.ErrMsg != "" { + text = fmt.Sprintf("%s - %s", text, c.ErrMsg) + } + return text +} + type DescribeConfigsResponse struct { Version int16 ThrottleTime time.Duration @@ -116,17 +129,27 @@ func (r *DescribeConfigsResponse) headerVersion() int16 { return 0 } +func (r *DescribeConfigsResponse) isValidVersion() bool { + return r.Version >= 0 && r.Version <= 2 +} + func (r *DescribeConfigsResponse) requiredVersion() KafkaVersion { switch r.Version { - case 1: - return V1_0_0_0 case 2: return V2_0_0_0 - default: + case 1: + return V1_1_0_0 + case 0: return V0_11_0_0 + default: + return V2_0_0_0 } } +func (r *DescribeConfigsResponse) throttleTime() time.Duration { + return r.ThrottleTime +} + func (r *ResourceResponse) encode(pe packetEncoder, version int16) (err error) { pe.putInt16(r.ErrorCode) diff --git a/vendor/github.com/Shopify/sarama/describe_groups_request.go b/vendor/github.com/IBM/sarama/describe_groups_request.go similarity index 81% rename from vendor/github.com/Shopify/sarama/describe_groups_request.go rename to vendor/github.com/IBM/sarama/describe_groups_request.go index f81f69ac4..c43262e86 100644 --- a/vendor/github.com/Shopify/sarama/describe_groups_request.go +++ b/vendor/github.com/IBM/sarama/describe_groups_request.go @@ -42,12 +42,25 @@ func (r *DescribeGroupsRequest) headerVersion() int16 { return 1 } +func (r *DescribeGroupsRequest) isValidVersion() bool { + return r.Version >= 0 && r.Version <= 4 +} + func (r *DescribeGroupsRequest) requiredVersion() KafkaVersion { switch r.Version { - case 1, 2, 3, 4: + case 4: + return V2_4_0_0 + case 3: return V2_3_0_0 + case 2: + return V2_0_0_0 + case 1: + return V0_11_0_0 + case 0: + return V0_9_0_0 + default: + return V2_4_0_0 } - return V0_9_0_0 } func (r *DescribeGroupsRequest) AddGroup(group string) { diff --git a/vendor/github.com/Shopify/sarama/describe_groups_response.go b/vendor/github.com/IBM/sarama/describe_groups_response.go similarity index 94% rename from vendor/github.com/Shopify/sarama/describe_groups_response.go rename to vendor/github.com/IBM/sarama/describe_groups_response.go index 09052e431..dbc46dd08 100644 --- a/vendor/github.com/Shopify/sarama/describe_groups_response.go +++ b/vendor/github.com/IBM/sarama/describe_groups_response.go @@ -1,5 +1,7 @@ package sarama +import "time" + type DescribeGroupsResponse struct { // Version defines the protocol version to use for encode and decode Version int16 @@ -63,12 +65,29 @@ func (r *DescribeGroupsResponse) headerVersion() int16 { return 0 } +func (r *DescribeGroupsResponse) isValidVersion() bool { + return r.Version >= 0 && r.Version <= 4 +} + func (r *DescribeGroupsResponse) requiredVersion() KafkaVersion { switch r.Version { - case 1, 2, 3, 4: + case 4: + return V2_4_0_0 + case 3: return V2_3_0_0 + case 2: + return V2_0_0_0 + case 1: + return V0_11_0_0 + case 0: + return V0_9_0_0 + default: + return V2_4_0_0 } - return V0_9_0_0 +} + +func (r *DescribeGroupsResponse) throttleTime() time.Duration { + return time.Duration(r.ThrottleTimeMs) * time.Millisecond } // GroupDescription contains each described group. diff --git a/vendor/github.com/Shopify/sarama/describe_log_dirs_request.go b/vendor/github.com/IBM/sarama/describe_log_dirs_request.go similarity index 92% rename from vendor/github.com/Shopify/sarama/describe_log_dirs_request.go rename to vendor/github.com/IBM/sarama/describe_log_dirs_request.go index c0bf04e04..a6613c320 100644 --- a/vendor/github.com/Shopify/sarama/describe_log_dirs_request.go +++ b/vendor/github.com/IBM/sarama/describe_log_dirs_request.go @@ -82,6 +82,13 @@ func (r *DescribeLogDirsRequest) headerVersion() int16 { return 1 } +func (r *DescribeLogDirsRequest) isValidVersion() bool { + return r.Version >= 0 && r.Version <= 1 +} + func (r *DescribeLogDirsRequest) requiredVersion() KafkaVersion { + if r.Version > 0 { + return V2_0_0_0 + } return V1_0_0_0 } diff --git a/vendor/github.com/Shopify/sarama/describe_log_dirs_response.go b/vendor/github.com/IBM/sarama/describe_log_dirs_response.go similarity index 95% rename from vendor/github.com/Shopify/sarama/describe_log_dirs_response.go rename to vendor/github.com/IBM/sarama/describe_log_dirs_response.go index 411da38ad..41b4968da 100644 --- a/vendor/github.com/Shopify/sarama/describe_log_dirs_response.go +++ b/vendor/github.com/IBM/sarama/describe_log_dirs_response.go @@ -65,10 +65,21 @@ func (r *DescribeLogDirsResponse) headerVersion() int16 { return 0 } +func (r *DescribeLogDirsResponse) isValidVersion() bool { + return r.Version >= 0 && r.Version <= 1 +} + func (r *DescribeLogDirsResponse) requiredVersion() KafkaVersion { + if r.Version > 0 { + return V2_0_0_0 + } return V1_0_0_0 } +func (r *DescribeLogDirsResponse) throttleTime() time.Duration { + return r.ThrottleTime +} + type DescribeLogDirsResponseDirMetadata struct { ErrorCode KError diff --git a/vendor/github.com/Shopify/sarama/describe_user_scram_credentials_request.go b/vendor/github.com/IBM/sarama/describe_user_scram_credentials_request.go similarity index 94% rename from vendor/github.com/Shopify/sarama/describe_user_scram_credentials_request.go rename to vendor/github.com/IBM/sarama/describe_user_scram_credentials_request.go index b5b59404b..a6265de5f 100644 --- a/vendor/github.com/Shopify/sarama/describe_user_scram_credentials_request.go +++ b/vendor/github.com/IBM/sarama/describe_user_scram_credentials_request.go @@ -65,6 +65,10 @@ func (r *DescribeUserScramCredentialsRequest) headerVersion() int16 { return 2 } +func (r *DescribeUserScramCredentialsRequest) isValidVersion() bool { + return r.Version == 0 +} + func (r *DescribeUserScramCredentialsRequest) requiredVersion() KafkaVersion { return V2_7_0_0 } diff --git a/vendor/github.com/Shopify/sarama/describe_user_scram_credentials_response.go b/vendor/github.com/IBM/sarama/describe_user_scram_credentials_response.go similarity index 95% rename from vendor/github.com/Shopify/sarama/describe_user_scram_credentials_response.go rename to vendor/github.com/IBM/sarama/describe_user_scram_credentials_response.go index 2656c2faa..a55c3f0ee 100644 --- a/vendor/github.com/Shopify/sarama/describe_user_scram_credentials_response.go +++ b/vendor/github.com/IBM/sarama/describe_user_scram_credentials_response.go @@ -163,6 +163,14 @@ func (r *DescribeUserScramCredentialsResponse) headerVersion() int16 { return 2 } +func (r *DescribeUserScramCredentialsResponse) isValidVersion() bool { + return r.Version == 0 +} + func (r *DescribeUserScramCredentialsResponse) requiredVersion() KafkaVersion { return V2_7_0_0 } + +func (r *DescribeUserScramCredentialsResponse) throttleTime() time.Duration { + return r.ThrottleTime +} diff --git a/vendor/github.com/Shopify/sarama/dev.yml b/vendor/github.com/IBM/sarama/dev.yml similarity index 100% rename from vendor/github.com/Shopify/sarama/dev.yml rename to vendor/github.com/IBM/sarama/dev.yml diff --git a/vendor/github.com/Shopify/sarama/docker-compose.yml b/vendor/github.com/IBM/sarama/docker-compose.yml similarity index 63% rename from vendor/github.com/Shopify/sarama/docker-compose.yml rename to vendor/github.com/IBM/sarama/docker-compose.yml index e1119c87f..e916416d5 100644 --- a/vendor/github.com/Shopify/sarama/docker-compose.yml +++ b/vendor/github.com/IBM/sarama/docker-compose.yml @@ -1,6 +1,7 @@ -version: '3.7' +version: '3.9' services: zookeeper-1: + hostname: 'zookeeper-1' image: 'docker.io/library/zookeeper:3.6.3' restart: always environment: @@ -12,6 +13,7 @@ services: ZOO_MAX_CLIENT_CNXNS: '0' ZOO_4LW_COMMANDS_WHITELIST: 'mntr,conf,ruok' zookeeper-2: + hostname: 'zookeeper-2' image: 'docker.io/library/zookeeper:3.6.3' restart: always environment: @@ -23,6 +25,7 @@ services: ZOO_MAX_CLIENT_CNXNS: '0' ZOO_4LW_COMMANDS_WHITELIST: 'mntr,conf,ruok' zookeeper-3: + hostname: 'zookeeper-3' image: 'docker.io/library/zookeeper:3.6.3' restart: always environment: @@ -34,13 +37,34 @@ services: ZOO_MAX_CLIENT_CNXNS: '0' ZOO_4LW_COMMANDS_WHITELIST: 'mntr,conf,ruok' kafka-1: - image: 'sarama/fv-kafka' + hostname: 'kafka-1' + image: 'sarama/fv-kafka-${KAFKA_VERSION:-3.6.0}' build: context: . dockerfile: Dockerfile.kafka + args: + KAFKA_VERSION: ${KAFKA_VERSION:-3.6.0} + SCALA_VERSION: ${SCALA_VERSION:-2.13} + healthcheck: + test: + [ + 'CMD', + '/opt/kafka-${KAFKA_VERSION:-3.6.0}/bin/kafka-broker-api-versions.sh', + '--bootstrap-server', + 'kafka-1:9091', + ] + interval: 15s + timeout: 15s + retries: 10 + start_period: 360s + depends_on: + - zookeeper-1 + - zookeeper-2 + - zookeeper-3 + - toxiproxy restart: always environment: - KAFKA_VERSION: ${KAFKA_VERSION:-3.3.1} + KAFKA_VERSION: ${KAFKA_VERSION:-3.6.0} KAFKA_CFG_ZOOKEEPER_CONNECT: 'zookeeper-1:2181,zookeeper-2:2181,zookeeper-3:2181' KAFKA_CFG_LISTENERS: 'LISTENER_INTERNAL://:9091,LISTENER_LOCAL://:29091' KAFKA_CFG_ADVERTISED_LISTENERS: 'LISTENER_INTERNAL://kafka-1:9091,LISTENER_LOCAL://localhost:29091' @@ -55,14 +79,37 @@ services: KAFKA_CFG_REPLICA_SELECTOR_CLASS: 'org.apache.kafka.common.replica.RackAwareReplicaSelector' KAFKA_CFG_DELETE_TOPIC_ENABLE: 'true' KAFKA_CFG_AUTO_CREATE_TOPICS_ENABLE: 'false' + KAFKA_CFG_GROUP_INITIAL_REBALANCE_DELAY_MS: 0 + KAFKA_JVM_PERFORMANCE_OPTS: "-XX:+IgnoreUnrecognizedVMOptions" kafka-2: - image: 'sarama/fv-kafka' + hostname: 'kafka-2' + image: 'sarama/fv-kafka-${KAFKA_VERSION:-3.6.0}' build: context: . dockerfile: Dockerfile.kafka + args: + KAFKA_VERSION: ${KAFKA_VERSION:-3.6.0} + SCALA_VERSION: ${SCALA_VERSION:-2.13} + healthcheck: + test: + [ + 'CMD', + '/opt/kafka-${KAFKA_VERSION:-3.6.0}/bin/kafka-broker-api-versions.sh', + '--bootstrap-server', + 'kafka-2:9091', + ] + interval: 15s + timeout: 15s + retries: 10 + start_period: 360s + depends_on: + - zookeeper-1 + - zookeeper-2 + - zookeeper-3 + - toxiproxy restart: always environment: - KAFKA_VERSION: ${KAFKA_VERSION:-3.3.1} + KAFKA_VERSION: ${KAFKA_VERSION:-3.6.0} KAFKA_CFG_ZOOKEEPER_CONNECT: 'zookeeper-1:2181,zookeeper-2:2181,zookeeper-3:2181' KAFKA_CFG_LISTENERS: 'LISTENER_INTERNAL://:9091,LISTENER_LOCAL://:29092' KAFKA_CFG_ADVERTISED_LISTENERS: 'LISTENER_INTERNAL://kafka-2:9091,LISTENER_LOCAL://localhost:29092' @@ -77,14 +124,37 @@ services: KAFKA_CFG_REPLICA_SELECTOR_CLASS: 'org.apache.kafka.common.replica.RackAwareReplicaSelector' KAFKA_CFG_DELETE_TOPIC_ENABLE: 'true' KAFKA_CFG_AUTO_CREATE_TOPICS_ENABLE: 'false' + KAFKA_CFG_GROUP_INITIAL_REBALANCE_DELAY_MS: 0 + KAFKA_JVM_PERFORMANCE_OPTS: "-XX:+IgnoreUnrecognizedVMOptions" kafka-3: - image: 'sarama/fv-kafka' + hostname: 'kafka-3' + image: 'sarama/fv-kafka-${KAFKA_VERSION:-3.6.0}' build: context: . dockerfile: Dockerfile.kafka + args: + KAFKA_VERSION: ${KAFKA_VERSION:-3.6.0} + SCALA_VERSION: ${SCALA_VERSION:-2.13} + healthcheck: + test: + [ + 'CMD', + '/opt/kafka-${KAFKA_VERSION:-3.6.0}/bin/kafka-broker-api-versions.sh', + '--bootstrap-server', + 'kafka-3:9091', + ] + interval: 15s + timeout: 15s + retries: 10 + start_period: 360s + depends_on: + - zookeeper-1 + - zookeeper-2 + - zookeeper-3 + - toxiproxy restart: always environment: - KAFKA_VERSION: ${KAFKA_VERSION:-3.3.1} + KAFKA_VERSION: ${KAFKA_VERSION:-3.6.0} KAFKA_CFG_ZOOKEEPER_CONNECT: 'zookeeper-1:2181,zookeeper-2:2181,zookeeper-3:2181' KAFKA_CFG_LISTENERS: 'LISTENER_INTERNAL://:9091,LISTENER_LOCAL://:29093' KAFKA_CFG_ADVERTISED_LISTENERS: 'LISTENER_INTERNAL://kafka-3:9091,LISTENER_LOCAL://localhost:29093' @@ -99,14 +169,37 @@ services: KAFKA_CFG_REPLICA_SELECTOR_CLASS: 'org.apache.kafka.common.replica.RackAwareReplicaSelector' KAFKA_CFG_DELETE_TOPIC_ENABLE: 'true' KAFKA_CFG_AUTO_CREATE_TOPICS_ENABLE: 'false' + KAFKA_CFG_GROUP_INITIAL_REBALANCE_DELAY_MS: 0 + KAFKA_JVM_PERFORMANCE_OPTS: "-XX:+IgnoreUnrecognizedVMOptions" kafka-4: - image: 'sarama/fv-kafka' + hostname: 'kafka-4' + image: 'sarama/fv-kafka-${KAFKA_VERSION:-3.6.0}' build: context: . dockerfile: Dockerfile.kafka + args: + KAFKA_VERSION: ${KAFKA_VERSION:-3.6.0} + SCALA_VERSION: ${SCALA_VERSION:-2.13} + healthcheck: + test: + [ + 'CMD', + '/opt/kafka-${KAFKA_VERSION:-3.6.0}/bin/kafka-broker-api-versions.sh', + '--bootstrap-server', + 'kafka-4:9091', + ] + interval: 15s + timeout: 15s + retries: 10 + start_period: 360s + depends_on: + - zookeeper-1 + - zookeeper-2 + - zookeeper-3 + - toxiproxy restart: always environment: - KAFKA_VERSION: ${KAFKA_VERSION:-3.3.1} + KAFKA_VERSION: ${KAFKA_VERSION:-3.6.0} KAFKA_CFG_ZOOKEEPER_CONNECT: 'zookeeper-1:2181,zookeeper-2:2181,zookeeper-3:2181' KAFKA_CFG_LISTENERS: 'LISTENER_INTERNAL://:9091,LISTENER_LOCAL://:29094' KAFKA_CFG_ADVERTISED_LISTENERS: 'LISTENER_INTERNAL://kafka-4:9091,LISTENER_LOCAL://localhost:29094' @@ -121,14 +214,37 @@ services: KAFKA_CFG_REPLICA_SELECTOR_CLASS: 'org.apache.kafka.common.replica.RackAwareReplicaSelector' KAFKA_CFG_DELETE_TOPIC_ENABLE: 'true' KAFKA_CFG_AUTO_CREATE_TOPICS_ENABLE: 'false' + KAFKA_CFG_GROUP_INITIAL_REBALANCE_DELAY_MS: 0 + KAFKA_JVM_PERFORMANCE_OPTS: "-XX:+IgnoreUnrecognizedVMOptions" kafka-5: - image: 'sarama/fv-kafka' + hostname: 'kafka-5' + image: 'sarama/fv-kafka-${KAFKA_VERSION:-3.6.0}' build: context: . dockerfile: Dockerfile.kafka + args: + KAFKA_VERSION: ${KAFKA_VERSION:-3.6.0} + SCALA_VERSION: ${SCALA_VERSION:-2.13} + healthcheck: + test: + [ + 'CMD', + '/opt/kafka-${KAFKA_VERSION:-3.6.0}/bin/kafka-broker-api-versions.sh', + '--bootstrap-server', + 'kafka-5:9091', + ] + interval: 15s + timeout: 15s + retries: 10 + start_period: 360s + depends_on: + - zookeeper-1 + - zookeeper-2 + - zookeeper-3 + - toxiproxy restart: always environment: - KAFKA_VERSION: ${KAFKA_VERSION:-3.3.1} + KAFKA_VERSION: ${KAFKA_VERSION:-3.6.0} KAFKA_CFG_ZOOKEEPER_CONNECT: 'zookeeper-1:2181,zookeeper-2:2181,zookeeper-3:2181' KAFKA_CFG_LISTENERS: 'LISTENER_INTERNAL://:9091,LISTENER_LOCAL://:29095' KAFKA_CFG_ADVERTISED_LISTENERS: 'LISTENER_INTERNAL://kafka-5:9091,LISTENER_LOCAL://localhost:29095' @@ -143,8 +259,17 @@ services: KAFKA_CFG_REPLICA_SELECTOR_CLASS: 'org.apache.kafka.common.replica.RackAwareReplicaSelector' KAFKA_CFG_DELETE_TOPIC_ENABLE: 'true' KAFKA_CFG_AUTO_CREATE_TOPICS_ENABLE: 'false' + KAFKA_CFG_GROUP_INITIAL_REBALANCE_DELAY_MS: 0 + KAFKA_JVM_PERFORMANCE_OPTS: "-XX:+IgnoreUnrecognizedVMOptions" toxiproxy: + hostname: 'toxiproxy' image: 'ghcr.io/shopify/toxiproxy:2.4.0' + healthcheck: + test: ['CMD', '/toxiproxy-cli', 'l'] + interval: 15s + timeout: 15s + retries: 3 + start_period: 30s ports: # The tests themselves actually start the proxies on these ports - '29091:29091' @@ -152,5 +277,6 @@ services: - '29093:29093' - '29094:29094' - '29095:29095' + # This is the toxiproxy API port - '8474:8474' diff --git a/vendor/github.com/Shopify/sarama/encoder_decoder.go b/vendor/github.com/IBM/sarama/encoder_decoder.go similarity index 100% rename from vendor/github.com/Shopify/sarama/encoder_decoder.go rename to vendor/github.com/IBM/sarama/encoder_decoder.go diff --git a/vendor/github.com/Shopify/sarama/end_txn_request.go b/vendor/github.com/IBM/sarama/end_txn_request.go similarity index 80% rename from vendor/github.com/Shopify/sarama/end_txn_request.go rename to vendor/github.com/IBM/sarama/end_txn_request.go index 6635425dd..638099a5d 100644 --- a/vendor/github.com/Shopify/sarama/end_txn_request.go +++ b/vendor/github.com/IBM/sarama/end_txn_request.go @@ -1,6 +1,7 @@ package sarama type EndTxnRequest struct { + Version int16 TransactionalID string ProducerID int64 ProducerEpoch int16 @@ -42,13 +43,24 @@ func (a *EndTxnRequest) key() int16 { } func (a *EndTxnRequest) version() int16 { - return 0 + return a.Version } func (r *EndTxnRequest) headerVersion() int16 { return 1 } +func (a *EndTxnRequest) isValidVersion() bool { + return a.Version >= 0 && a.Version <= 2 +} + func (a *EndTxnRequest) requiredVersion() KafkaVersion { - return V0_11_0_0 + switch a.Version { + case 2: + return V2_7_0_0 + case 1: + return V2_0_0_0 + default: + return V0_11_0_0 + } } diff --git a/vendor/github.com/Shopify/sarama/end_txn_response.go b/vendor/github.com/IBM/sarama/end_txn_response.go similarity index 71% rename from vendor/github.com/Shopify/sarama/end_txn_response.go rename to vendor/github.com/IBM/sarama/end_txn_response.go index dd2a04504..54597df8c 100644 --- a/vendor/github.com/Shopify/sarama/end_txn_response.go +++ b/vendor/github.com/IBM/sarama/end_txn_response.go @@ -5,6 +5,7 @@ import ( ) type EndTxnResponse struct { + Version int16 ThrottleTime time.Duration Err KError } @@ -36,13 +37,28 @@ func (e *EndTxnResponse) key() int16 { } func (e *EndTxnResponse) version() int16 { - return 0 + return e.Version } func (r *EndTxnResponse) headerVersion() int16 { return 0 } +func (e *EndTxnResponse) isValidVersion() bool { + return e.Version >= 0 && e.Version <= 2 +} + func (e *EndTxnResponse) requiredVersion() KafkaVersion { - return V0_11_0_0 + switch e.Version { + case 2: + return V2_7_0_0 + case 1: + return V2_0_0_0 + default: + return V0_11_0_0 + } +} + +func (r *EndTxnResponse) throttleTime() time.Duration { + return r.ThrottleTime } diff --git a/vendor/github.com/IBM/sarama/entrypoint.sh b/vendor/github.com/IBM/sarama/entrypoint.sh new file mode 100644 index 000000000..9fe9a44b1 --- /dev/null +++ b/vendor/github.com/IBM/sarama/entrypoint.sh @@ -0,0 +1,31 @@ +#!/bin/bash + +set -eu +set -o pipefail + +KAFKA_VERSION="${KAFKA_VERSION:-3.6.0}" +KAFKA_HOME="/opt/kafka-${KAFKA_VERSION}" + +if [ ! -d "${KAFKA_HOME}" ]; then + echo 'Error: KAFKA_VERSION '$KAFKA_VERSION' not available in this image at '$KAFKA_HOME + exit 1 +fi + +cd "${KAFKA_HOME}" || exit 1 + +# discard all empty/commented lines from default config and copy to /tmp +sed -e '/^#/d' -e '/^$/d' config/server.properties >/tmp/server.properties + +echo "########################################################################" >>/tmp/server.properties + +# emulate kafka_configure_from_environment_variables from bitnami/bitnami-docker-kafka +for var in "${!KAFKA_CFG_@}"; do + key="$(echo "$var" | sed -e 's/^KAFKA_CFG_//g' -e 's/_/\./g' -e 's/.*/\L&/')" + sed -e '/^'$key'/d' -i"" /tmp/server.properties + value="${!var}" + echo "$key=$value" >>/tmp/server.properties +done + +sort /tmp/server.properties + +exec bin/kafka-server-start.sh /tmp/server.properties diff --git a/vendor/github.com/Shopify/sarama/errors.go b/vendor/github.com/IBM/sarama/errors.go similarity index 69% rename from vendor/github.com/Shopify/sarama/errors.go rename to vendor/github.com/IBM/sarama/errors.go index 27977f166..2c431aecb 100644 --- a/vendor/github.com/Shopify/sarama/errors.go +++ b/vendor/github.com/IBM/sarama/errors.go @@ -79,7 +79,7 @@ var ErrTransactionNotReady = errors.New("transaction manager: transaction is not // ErrNonTransactedProducer when calling BeginTxn, CommitTxn or AbortTxn on a non transactional producer. var ErrNonTransactedProducer = errors.New("transaction manager: you need to add TransactionalID to producer") -// ErrTransitionNotAllowed when txnmgr state transiion is not valid. +// ErrTransitionNotAllowed when txnmgr state transition is not valid. var ErrTransitionNotAllowed = errors.New("transaction manager: invalid transition attempted") // ErrCannotTransitionNilError when transition is attempted with an nil error. @@ -89,7 +89,7 @@ var ErrCannotTransitionNilError = errors.New("transaction manager: cannot transi var ErrTxnUnableToParseResponse = errors.New("transaction manager: unable to parse response") // MultiErrorFormat specifies the formatter applied to format multierrors. The -// default implementation is a consensed version of the hashicorp/go-multierror +// default implementation is a condensed version of the hashicorp/go-multierror // default one var MultiErrorFormat multierror.ErrorFormatFunc = func(es []error) string { if len(es) == 1 { @@ -173,98 +173,98 @@ type KError int16 // Numeric error codes returned by the Kafka server. const ( - ErrNoError KError = 0 - ErrUnknown KError = -1 - ErrOffsetOutOfRange KError = 1 - ErrInvalidMessage KError = 2 - ErrUnknownTopicOrPartition KError = 3 - ErrInvalidMessageSize KError = 4 - ErrLeaderNotAvailable KError = 5 - ErrNotLeaderForPartition KError = 6 - ErrRequestTimedOut KError = 7 - ErrBrokerNotAvailable KError = 8 - ErrReplicaNotAvailable KError = 9 - ErrMessageSizeTooLarge KError = 10 - ErrStaleControllerEpochCode KError = 11 - ErrOffsetMetadataTooLarge KError = 12 - ErrNetworkException KError = 13 - ErrOffsetsLoadInProgress KError = 14 - ErrConsumerCoordinatorNotAvailable KError = 15 - ErrNotCoordinatorForConsumer KError = 16 - ErrInvalidTopic KError = 17 - ErrMessageSetSizeTooLarge KError = 18 - ErrNotEnoughReplicas KError = 19 - ErrNotEnoughReplicasAfterAppend KError = 20 - ErrInvalidRequiredAcks KError = 21 - ErrIllegalGeneration KError = 22 - ErrInconsistentGroupProtocol KError = 23 - ErrInvalidGroupId KError = 24 - ErrUnknownMemberId KError = 25 - ErrInvalidSessionTimeout KError = 26 - ErrRebalanceInProgress KError = 27 - ErrInvalidCommitOffsetSize KError = 28 - ErrTopicAuthorizationFailed KError = 29 - ErrGroupAuthorizationFailed KError = 30 - ErrClusterAuthorizationFailed KError = 31 - ErrInvalidTimestamp KError = 32 - ErrUnsupportedSASLMechanism KError = 33 - ErrIllegalSASLState KError = 34 - ErrUnsupportedVersion KError = 35 - ErrTopicAlreadyExists KError = 36 - ErrInvalidPartitions KError = 37 - ErrInvalidReplicationFactor KError = 38 - ErrInvalidReplicaAssignment KError = 39 - ErrInvalidConfig KError = 40 - ErrNotController KError = 41 - ErrInvalidRequest KError = 42 - ErrUnsupportedForMessageFormat KError = 43 - ErrPolicyViolation KError = 44 - ErrOutOfOrderSequenceNumber KError = 45 - ErrDuplicateSequenceNumber KError = 46 - ErrInvalidProducerEpoch KError = 47 - ErrInvalidTxnState KError = 48 - ErrInvalidProducerIDMapping KError = 49 - ErrInvalidTransactionTimeout KError = 50 - ErrConcurrentTransactions KError = 51 - ErrTransactionCoordinatorFenced KError = 52 - ErrTransactionalIDAuthorizationFailed KError = 53 - ErrSecurityDisabled KError = 54 - ErrOperationNotAttempted KError = 55 - ErrKafkaStorageError KError = 56 - ErrLogDirNotFound KError = 57 - ErrSASLAuthenticationFailed KError = 58 - ErrUnknownProducerID KError = 59 - ErrReassignmentInProgress KError = 60 - ErrDelegationTokenAuthDisabled KError = 61 - ErrDelegationTokenNotFound KError = 62 - ErrDelegationTokenOwnerMismatch KError = 63 - ErrDelegationTokenRequestNotAllowed KError = 64 - ErrDelegationTokenAuthorizationFailed KError = 65 - ErrDelegationTokenExpired KError = 66 - ErrInvalidPrincipalType KError = 67 - ErrNonEmptyGroup KError = 68 - ErrGroupIDNotFound KError = 69 - ErrFetchSessionIDNotFound KError = 70 - ErrInvalidFetchSessionEpoch KError = 71 - ErrListenerNotFound KError = 72 - ErrTopicDeletionDisabled KError = 73 - ErrFencedLeaderEpoch KError = 74 - ErrUnknownLeaderEpoch KError = 75 - ErrUnsupportedCompressionType KError = 76 - ErrStaleBrokerEpoch KError = 77 - ErrOffsetNotAvailable KError = 78 - ErrMemberIdRequired KError = 79 - ErrPreferredLeaderNotAvailable KError = 80 - ErrGroupMaxSizeReached KError = 81 - ErrFencedInstancedId KError = 82 - ErrEligibleLeadersNotAvailable KError = 83 - ErrElectionNotNeeded KError = 84 - ErrNoReassignmentInProgress KError = 85 - ErrGroupSubscribedToTopic KError = 86 - ErrInvalidRecord KError = 87 - ErrUnstableOffsetCommit KError = 88 - ErrThrottlingQuotaExceeded KError = 89 - ErrProducerFenced KError = 90 + ErrUnknown KError = -1 // Errors.UNKNOWN_SERVER_ERROR + ErrNoError KError = 0 // Errors.NONE + ErrOffsetOutOfRange KError = 1 // Errors.OFFSET_OUT_OF_RANGE + ErrInvalidMessage KError = 2 // Errors.CORRUPT_MESSAGE + ErrUnknownTopicOrPartition KError = 3 // Errors.UNKNOWN_TOPIC_OR_PARTITION + ErrInvalidMessageSize KError = 4 // Errors.INVALID_FETCH_SIZE + ErrLeaderNotAvailable KError = 5 // Errors.LEADER_NOT_AVAILABLE + ErrNotLeaderForPartition KError = 6 // Errors.NOT_LEADER_OR_FOLLOWER + ErrRequestTimedOut KError = 7 // Errors.REQUEST_TIMED_OUT + ErrBrokerNotAvailable KError = 8 // Errors.BROKER_NOT_AVAILABLE + ErrReplicaNotAvailable KError = 9 // Errors.REPLICA_NOT_AVAILABLE + ErrMessageSizeTooLarge KError = 10 // Errors.MESSAGE_TOO_LARGE + ErrStaleControllerEpochCode KError = 11 // Errors.STALE_CONTROLLER_EPOCH + ErrOffsetMetadataTooLarge KError = 12 // Errors.OFFSET_METADATA_TOO_LARGE + ErrNetworkException KError = 13 // Errors.NETWORK_EXCEPTION + ErrOffsetsLoadInProgress KError = 14 // Errors.COORDINATOR_LOAD_IN_PROGRESS + ErrConsumerCoordinatorNotAvailable KError = 15 // Errors.COORDINATOR_NOT_AVAILABLE + ErrNotCoordinatorForConsumer KError = 16 // Errors.NOT_COORDINATOR + ErrInvalidTopic KError = 17 // Errors.INVALID_TOPIC_EXCEPTION + ErrMessageSetSizeTooLarge KError = 18 // Errors.RECORD_LIST_TOO_LARGE + ErrNotEnoughReplicas KError = 19 // Errors.NOT_ENOUGH_REPLICAS + ErrNotEnoughReplicasAfterAppend KError = 20 // Errors.NOT_ENOUGH_REPLICAS_AFTER_APPEND + ErrInvalidRequiredAcks KError = 21 // Errors.INVALID_REQUIRED_ACKS + ErrIllegalGeneration KError = 22 // Errors.ILLEGAL_GENERATION + ErrInconsistentGroupProtocol KError = 23 // Errors.INCONSISTENT_GROUP_PROTOCOL + ErrInvalidGroupId KError = 24 // Errors.INVALID_GROUP_ID + ErrUnknownMemberId KError = 25 // Errors.UNKNOWN_MEMBER_ID + ErrInvalidSessionTimeout KError = 26 // Errors.INVALID_SESSION_TIMEOUT + ErrRebalanceInProgress KError = 27 // Errors.REBALANCE_IN_PROGRESS + ErrInvalidCommitOffsetSize KError = 28 // Errors.INVALID_COMMIT_OFFSET_SIZE + ErrTopicAuthorizationFailed KError = 29 // Errors.TOPIC_AUTHORIZATION_FAILED + ErrGroupAuthorizationFailed KError = 30 // Errors.GROUP_AUTHORIZATION_FAILED + ErrClusterAuthorizationFailed KError = 31 // Errors.CLUSTER_AUTHORIZATION_FAILED + ErrInvalidTimestamp KError = 32 // Errors.INVALID_TIMESTAMP + ErrUnsupportedSASLMechanism KError = 33 // Errors.UNSUPPORTED_SASL_MECHANISM + ErrIllegalSASLState KError = 34 // Errors.ILLEGAL_SASL_STATE + ErrUnsupportedVersion KError = 35 // Errors.UNSUPPORTED_VERSION + ErrTopicAlreadyExists KError = 36 // Errors.TOPIC_ALREADY_EXISTS + ErrInvalidPartitions KError = 37 // Errors.INVALID_PARTITIONS + ErrInvalidReplicationFactor KError = 38 // Errors.INVALID_REPLICATION_FACTOR + ErrInvalidReplicaAssignment KError = 39 // Errors.INVALID_REPLICA_ASSIGNMENT + ErrInvalidConfig KError = 40 // Errors.INVALID_CONFIG + ErrNotController KError = 41 // Errors.NOT_CONTROLLER + ErrInvalidRequest KError = 42 // Errors.INVALID_REQUEST + ErrUnsupportedForMessageFormat KError = 43 // Errors.UNSUPPORTED_FOR_MESSAGE_FORMAT + ErrPolicyViolation KError = 44 // Errors.POLICY_VIOLATION + ErrOutOfOrderSequenceNumber KError = 45 // Errors.OUT_OF_ORDER_SEQUENCE_NUMBER + ErrDuplicateSequenceNumber KError = 46 // Errors.DUPLICATE_SEQUENCE_NUMBER + ErrInvalidProducerEpoch KError = 47 // Errors.INVALID_PRODUCER_EPOCH + ErrInvalidTxnState KError = 48 // Errors.INVALID_TXN_STATE + ErrInvalidProducerIDMapping KError = 49 // Errors.INVALID_PRODUCER_ID_MAPPING + ErrInvalidTransactionTimeout KError = 50 // Errors.INVALID_TRANSACTION_TIMEOUT + ErrConcurrentTransactions KError = 51 // Errors.CONCURRENT_TRANSACTIONS + ErrTransactionCoordinatorFenced KError = 52 // Errors.TRANSACTION_COORDINATOR_FENCED + ErrTransactionalIDAuthorizationFailed KError = 53 // Errors.TRANSACTIONAL_ID_AUTHORIZATION_FAILED + ErrSecurityDisabled KError = 54 // Errors.SECURITY_DISABLED + ErrOperationNotAttempted KError = 55 // Errors.OPERATION_NOT_ATTEMPTED + ErrKafkaStorageError KError = 56 // Errors.KAFKA_STORAGE_ERROR + ErrLogDirNotFound KError = 57 // Errors.LOG_DIR_NOT_FOUND + ErrSASLAuthenticationFailed KError = 58 // Errors.SASL_AUTHENTICATION_FAILED + ErrUnknownProducerID KError = 59 // Errors.UNKNOWN_PRODUCER_ID + ErrReassignmentInProgress KError = 60 // Errors.REASSIGNMENT_IN_PROGRESS + ErrDelegationTokenAuthDisabled KError = 61 // Errors.DELEGATION_TOKEN_AUTH_DISABLED + ErrDelegationTokenNotFound KError = 62 // Errors.DELEGATION_TOKEN_NOT_FOUND + ErrDelegationTokenOwnerMismatch KError = 63 // Errors.DELEGATION_TOKEN_OWNER_MISMATCH + ErrDelegationTokenRequestNotAllowed KError = 64 // Errors.DELEGATION_TOKEN_REQUEST_NOT_ALLOWED + ErrDelegationTokenAuthorizationFailed KError = 65 // Errors.DELEGATION_TOKEN_AUTHORIZATION_FAILED + ErrDelegationTokenExpired KError = 66 // Errors.DELEGATION_TOKEN_EXPIRED + ErrInvalidPrincipalType KError = 67 // Errors.INVALID_PRINCIPAL_TYPE + ErrNonEmptyGroup KError = 68 // Errors.NON_EMPTY_GROUP + ErrGroupIDNotFound KError = 69 // Errors.GROUP_ID_NOT_FOUND + ErrFetchSessionIDNotFound KError = 70 // Errors.FETCH_SESSION_ID_NOT_FOUND + ErrInvalidFetchSessionEpoch KError = 71 // Errors.INVALID_FETCH_SESSION_EPOCH + ErrListenerNotFound KError = 72 // Errors.LISTENER_NOT_FOUND + ErrTopicDeletionDisabled KError = 73 // Errors.TOPIC_DELETION_DISABLED + ErrFencedLeaderEpoch KError = 74 // Errors.FENCED_LEADER_EPOCH + ErrUnknownLeaderEpoch KError = 75 // Errors.UNKNOWN_LEADER_EPOCH + ErrUnsupportedCompressionType KError = 76 // Errors.UNSUPPORTED_COMPRESSION_TYPE + ErrStaleBrokerEpoch KError = 77 // Errors.STALE_BROKER_EPOCH + ErrOffsetNotAvailable KError = 78 // Errors.OFFSET_NOT_AVAILABLE + ErrMemberIdRequired KError = 79 // Errors.MEMBER_ID_REQUIRED + ErrPreferredLeaderNotAvailable KError = 80 // Errors.PREFERRED_LEADER_NOT_AVAILABLE + ErrGroupMaxSizeReached KError = 81 // Errors.GROUP_MAX_SIZE_REACHED + ErrFencedInstancedId KError = 82 // Errors.FENCED_INSTANCE_ID + ErrEligibleLeadersNotAvailable KError = 83 // Errors.ELIGIBLE_LEADERS_NOT_AVAILABLE + ErrElectionNotNeeded KError = 84 // Errors.ELECTION_NOT_NEEDED + ErrNoReassignmentInProgress KError = 85 // Errors.NO_REASSIGNMENT_IN_PROGRESS + ErrGroupSubscribedToTopic KError = 86 // Errors.GROUP_SUBSCRIBED_TO_TOPIC + ErrInvalidRecord KError = 87 // Errors.INVALID_RECORD + ErrUnstableOffsetCommit KError = 88 // Errors.UNSTABLE_OFFSET_COMMIT + ErrThrottlingQuotaExceeded KError = 89 // Errors.THROTTLING_QUOTA_EXCEEDED + ErrProducerFenced KError = 90 // Errors.PRODUCER_FENCED ) func (err KError) Error() string { @@ -302,7 +302,7 @@ func (err KError) Error() string { case ErrNetworkException: return "kafka server: The server disconnected before a response was received" case ErrOffsetsLoadInProgress: - return "kafka server: The broker is still loading offsets after a leader change for that offset's topic partition" + return "kafka server: The coordinator is still loading offsets and cannot currently process requests" case ErrConsumerCoordinatorNotAvailable: return "kafka server: Offset's topic has not yet been created" case ErrNotCoordinatorForConsumer: diff --git a/vendor/github.com/Shopify/sarama/fetch_request.go b/vendor/github.com/IBM/sarama/fetch_request.go similarity index 96% rename from vendor/github.com/Shopify/sarama/fetch_request.go rename to vendor/github.com/IBM/sarama/fetch_request.go index 26adead4e..a5314b55c 100644 --- a/vendor/github.com/Shopify/sarama/fetch_request.go +++ b/vendor/github.com/IBM/sarama/fetch_request.go @@ -1,5 +1,7 @@ package sarama +import "fmt" + type fetchRequestBlock struct { Version int16 // currentLeaderEpoch contains the current leader epoch of the partition. @@ -241,6 +243,9 @@ func (r *FetchRequest) decode(pd packetDecoder, version int16) (err error) { if err != nil { return err } + if partitionCount < 0 { + return fmt.Errorf("partitionCount %d is invalid", partitionCount) + } r.forgotten[topic] = make([]int32, partitionCount) for j := 0; j < partitionCount; j++ { @@ -275,30 +280,34 @@ func (r *FetchRequest) headerVersion() int16 { return 1 } +func (r *FetchRequest) isValidVersion() bool { + return r.Version >= 0 && r.Version <= 11 +} + func (r *FetchRequest) requiredVersion() KafkaVersion { switch r.Version { - case 0: - return MinVersion - case 1: - return V0_9_0_0 - case 2: - return V0_10_0_0 - case 3: - return V0_10_1_0 - case 4, 5: - return V0_11_0_0 - case 6: - return V1_0_0_0 - case 7: - return V1_1_0_0 - case 8: - return V2_0_0_0 - case 9, 10: - return V2_1_0_0 case 11: return V2_3_0_0 + case 9, 10: + return V2_1_0_0 + case 8: + return V2_0_0_0 + case 7: + return V1_1_0_0 + case 6: + return V1_0_0_0 + case 4, 5: + return V0_11_0_0 + case 3: + return V0_10_1_0 + case 2: + return V0_10_0_0 + case 1: + return V0_9_0_0 + case 0: + return V0_8_2_0 default: - return MaxVersion + return V2_3_0_0 } } diff --git a/vendor/github.com/Shopify/sarama/fetch_response.go b/vendor/github.com/IBM/sarama/fetch_response.go similarity index 98% rename from vendor/github.com/Shopify/sarama/fetch_response.go rename to vendor/github.com/IBM/sarama/fetch_response.go index 3d449c85e..02e8ca473 100644 --- a/vendor/github.com/Shopify/sarama/fetch_response.go +++ b/vendor/github.com/IBM/sarama/fetch_response.go @@ -386,33 +386,41 @@ func (r *FetchResponse) headerVersion() int16 { return 0 } +func (r *FetchResponse) isValidVersion() bool { + return r.Version >= 0 && r.Version <= 11 +} + func (r *FetchResponse) requiredVersion() KafkaVersion { switch r.Version { - case 0: - return MinVersion - case 1: - return V0_9_0_0 - case 2: - return V0_10_0_0 - case 3: - return V0_10_1_0 - case 4, 5: - return V0_11_0_0 - case 6: - return V1_0_0_0 - case 7: - return V1_1_0_0 - case 8: - return V2_0_0_0 - case 9, 10: - return V2_1_0_0 case 11: return V2_3_0_0 + case 9, 10: + return V2_1_0_0 + case 8: + return V2_0_0_0 + case 7: + return V1_1_0_0 + case 6: + return V1_0_0_0 + case 4, 5: + return V0_11_0_0 + case 3: + return V0_10_1_0 + case 2: + return V0_10_0_0 + case 1: + return V0_9_0_0 + case 0: + return V0_8_2_0 default: - return MaxVersion + return V2_3_0_0 } } +func (r *FetchResponse) throttleTime() time.Duration { + return r.ThrottleTime +} + func (r *FetchResponse) GetBlock(topic string, partition int32) *FetchResponseBlock { if r.Blocks == nil { return nil diff --git a/vendor/github.com/Shopify/sarama/find_coordinator_request.go b/vendor/github.com/IBM/sarama/find_coordinator_request.go similarity index 90% rename from vendor/github.com/Shopify/sarama/find_coordinator_request.go rename to vendor/github.com/IBM/sarama/find_coordinator_request.go index 597bcbf78..4758835a1 100644 --- a/vendor/github.com/Shopify/sarama/find_coordinator_request.go +++ b/vendor/github.com/IBM/sarama/find_coordinator_request.go @@ -55,8 +55,14 @@ func (r *FindCoordinatorRequest) headerVersion() int16 { return 1 } +func (f *FindCoordinatorRequest) isValidVersion() bool { + return f.Version >= 0 && f.Version <= 2 +} + func (f *FindCoordinatorRequest) requiredVersion() KafkaVersion { switch f.Version { + case 2: + return V2_0_0_0 case 1: return V0_11_0_0 default: diff --git a/vendor/github.com/Shopify/sarama/find_coordinator_response.go b/vendor/github.com/IBM/sarama/find_coordinator_response.go similarity index 89% rename from vendor/github.com/Shopify/sarama/find_coordinator_response.go rename to vendor/github.com/IBM/sarama/find_coordinator_response.go index 83a648ad4..11b9920d0 100644 --- a/vendor/github.com/Shopify/sarama/find_coordinator_response.go +++ b/vendor/github.com/IBM/sarama/find_coordinator_response.go @@ -86,11 +86,21 @@ func (r *FindCoordinatorResponse) headerVersion() int16 { return 0 } +func (f *FindCoordinatorResponse) isValidVersion() bool { + return f.Version >= 0 && f.Version <= 2 +} + func (f *FindCoordinatorResponse) requiredVersion() KafkaVersion { switch f.Version { + case 2: + return V2_0_0_0 case 1: return V0_11_0_0 default: return V0_8_2_0 } } + +func (r *FindCoordinatorResponse) throttleTime() time.Duration { + return r.ThrottleTime +} diff --git a/vendor/github.com/Shopify/sarama/gssapi_kerberos.go b/vendor/github.com/IBM/sarama/gssapi_kerberos.go similarity index 94% rename from vendor/github.com/Shopify/sarama/gssapi_kerberos.go rename to vendor/github.com/IBM/sarama/gssapi_kerberos.go index ab8b70196..ccc01c19b 100644 --- a/vendor/github.com/Shopify/sarama/gssapi_kerberos.go +++ b/vendor/github.com/IBM/sarama/gssapi_kerberos.go @@ -23,6 +23,7 @@ const ( GSS_API_GENERIC_TAG = 0x60 KRB5_USER_AUTH = 1 KRB5_KEYTAB_AUTH = 2 + KRB5_CCACHE_AUTH = 3 GSS_API_INITIAL = 1 GSS_API_VERIFY = 2 GSS_API_FINISH = 3 @@ -31,12 +32,14 @@ const ( type GSSAPIConfig struct { AuthType int KeyTabPath string + CCachePath string KerberosConfigPath string ServiceName string Username string Password string Realm string DisablePAFXFAST bool + BuildSpn BuildSpnFunc } type GSSAPIKerberosAuth struct { @@ -55,6 +58,8 @@ type KerberosClient interface { Destroy() } +type BuildSpnFunc func(serviceName, host string) string + // writePackage appends length in big endian before the payload, and sends it to kafka func (krbAuth *GSSAPIKerberosAuth) writePackage(broker *Broker, payload []byte) (int, error) { length := uint64(len(payload)) @@ -209,10 +214,15 @@ func (krbAuth *GSSAPIKerberosAuth) Authorize(broker *Broker) error { return err } // Construct SPN using serviceName and host - // SPN format: / + // default SPN format: / host := strings.SplitN(broker.addr, ":", 2)[0] // Strip port part - spn := fmt.Sprintf("%s/%s", broker.conf.Net.SASL.GSSAPI.ServiceName, host) + var spn string + if krbAuth.Config.BuildSpn != nil { + spn = krbAuth.Config.BuildSpn(broker.conf.Net.SASL.GSSAPI.ServiceName, host) + } else { + spn = fmt.Sprintf("%s/%s", broker.conf.Net.SASL.GSSAPI.ServiceName, host) + } ticket, encKey, err := kerberosClient.GetServiceTicket(spn) if err != nil { diff --git a/vendor/github.com/Shopify/sarama/heartbeat_request.go b/vendor/github.com/IBM/sarama/heartbeat_request.go similarity index 83% rename from vendor/github.com/Shopify/sarama/heartbeat_request.go rename to vendor/github.com/IBM/sarama/heartbeat_request.go index 511910e71..9f740f26c 100644 --- a/vendor/github.com/Shopify/sarama/heartbeat_request.go +++ b/vendor/github.com/IBM/sarama/heartbeat_request.go @@ -60,10 +60,21 @@ func (r *HeartbeatRequest) headerVersion() int16 { return 1 } +func (r *HeartbeatRequest) isValidVersion() bool { + return r.Version >= 0 && r.Version <= 3 +} + func (r *HeartbeatRequest) requiredVersion() KafkaVersion { - switch { - case r.Version >= 3: + switch r.Version { + case 3: + return V2_3_0_0 + case 2: + return V2_0_0_0 + case 1: + return V0_11_0_0 + case 0: + return V0_8_2_0 + default: return V2_3_0_0 } - return V0_9_0_0 } diff --git a/vendor/github.com/Shopify/sarama/heartbeat_response.go b/vendor/github.com/IBM/sarama/heartbeat_response.go similarity index 71% rename from vendor/github.com/Shopify/sarama/heartbeat_response.go rename to vendor/github.com/IBM/sarama/heartbeat_response.go index 95ef97f47..a58718d7b 100644 --- a/vendor/github.com/Shopify/sarama/heartbeat_response.go +++ b/vendor/github.com/IBM/sarama/heartbeat_response.go @@ -1,5 +1,7 @@ package sarama +import "time" + type HeartbeatResponse struct { Version int16 ThrottleTime int32 @@ -43,10 +45,25 @@ func (r *HeartbeatResponse) headerVersion() int16 { return 0 } +func (r *HeartbeatResponse) isValidVersion() bool { + return r.Version >= 0 && r.Version <= 3 +} + func (r *HeartbeatResponse) requiredVersion() KafkaVersion { switch r.Version { - case 1, 2, 3: + case 3: + return V2_3_0_0 + case 2: + return V2_0_0_0 + case 1: + return V0_11_0_0 + case 0: + return V0_8_2_0 + default: return V2_3_0_0 } - return V0_9_0_0 +} + +func (r *HeartbeatResponse) throttleTime() time.Duration { + return time.Duration(r.ThrottleTime) * time.Millisecond } diff --git a/vendor/github.com/Shopify/sarama/incremental_alter_configs_request.go b/vendor/github.com/IBM/sarama/incremental_alter_configs_request.go similarity index 96% rename from vendor/github.com/Shopify/sarama/incremental_alter_configs_request.go rename to vendor/github.com/IBM/sarama/incremental_alter_configs_request.go index c4d05a972..b1b490a28 100644 --- a/vendor/github.com/Shopify/sarama/incremental_alter_configs_request.go +++ b/vendor/github.com/IBM/sarama/incremental_alter_configs_request.go @@ -11,6 +11,7 @@ const ( // IncrementalAlterConfigsRequest is an incremental alter config request type type IncrementalAlterConfigsRequest struct { + Version int16 Resources []*IncrementalAlterConfigsResource ValidateOnly bool } @@ -161,13 +162,17 @@ func (a *IncrementalAlterConfigsRequest) key() int16 { } func (a *IncrementalAlterConfigsRequest) version() int16 { - return 0 + return a.Version } func (a *IncrementalAlterConfigsRequest) headerVersion() int16 { return 1 } +func (a *IncrementalAlterConfigsRequest) isValidVersion() bool { + return a.Version == 0 +} + func (a *IncrementalAlterConfigsRequest) requiredVersion() KafkaVersion { return V2_3_0_0 } diff --git a/vendor/github.com/Shopify/sarama/incremental_alter_configs_response.go b/vendor/github.com/IBM/sarama/incremental_alter_configs_response.go similarity index 86% rename from vendor/github.com/Shopify/sarama/incremental_alter_configs_response.go rename to vendor/github.com/IBM/sarama/incremental_alter_configs_response.go index 3e8c4500c..3a2df2f60 100644 --- a/vendor/github.com/Shopify/sarama/incremental_alter_configs_response.go +++ b/vendor/github.com/IBM/sarama/incremental_alter_configs_response.go @@ -4,6 +4,7 @@ import "time" // IncrementalAlterConfigsResponse is a response type for incremental alter config type IncrementalAlterConfigsResponse struct { + Version int16 ThrottleTime time.Duration Resources []*AlterConfigsResourceResponse } @@ -54,13 +55,21 @@ func (a *IncrementalAlterConfigsResponse) key() int16 { } func (a *IncrementalAlterConfigsResponse) version() int16 { - return 0 + return a.Version } func (a *IncrementalAlterConfigsResponse) headerVersion() int16 { return 0 } +func (a *IncrementalAlterConfigsResponse) isValidVersion() bool { + return a.Version == 0 +} + func (a *IncrementalAlterConfigsResponse) requiredVersion() KafkaVersion { return V2_3_0_0 } + +func (r *IncrementalAlterConfigsResponse) throttleTime() time.Duration { + return r.ThrottleTime +} diff --git a/vendor/github.com/Shopify/sarama/init_producer_id_request.go b/vendor/github.com/IBM/sarama/init_producer_id_request.go similarity index 91% rename from vendor/github.com/Shopify/sarama/init_producer_id_request.go rename to vendor/github.com/IBM/sarama/init_producer_id_request.go index 33ce5fa41..dee50fb9f 100644 --- a/vendor/github.com/Shopify/sarama/init_producer_id_request.go +++ b/vendor/github.com/IBM/sarama/init_producer_id_request.go @@ -84,19 +84,23 @@ func (i *InitProducerIDRequest) headerVersion() int16 { return 1 } +func (i *InitProducerIDRequest) isValidVersion() bool { + return i.Version >= 0 && i.Version <= 4 +} + func (i *InitProducerIDRequest) requiredVersion() KafkaVersion { switch i.Version { - case 2: - // Added tagged fields - return V2_4_0_0 + case 4: + return V2_7_0_0 case 3: - // Added ProducerID/Epoch return V2_5_0_0 - case 0: - fallthrough + case 2: + return V2_4_0_0 case 1: - fallthrough - default: + return V2_0_0_0 + case 0: return V0_11_0_0 + default: + return V2_7_0_0 } } diff --git a/vendor/github.com/Shopify/sarama/init_producer_id_response.go b/vendor/github.com/IBM/sarama/init_producer_id_response.go similarity index 85% rename from vendor/github.com/Shopify/sarama/init_producer_id_response.go rename to vendor/github.com/IBM/sarama/init_producer_id_response.go index 006070189..256077189 100644 --- a/vendor/github.com/Shopify/sarama/init_producer_id_response.go +++ b/vendor/github.com/IBM/sarama/init_producer_id_response.go @@ -69,17 +69,25 @@ func (i *InitProducerIDResponse) headerVersion() int16 { return 0 } +func (i *InitProducerIDResponse) isValidVersion() bool { + return i.Version >= 0 && i.Version <= 4 +} + func (i *InitProducerIDResponse) requiredVersion() KafkaVersion { switch i.Version { - case 2: - fallthrough + case 4: + return V2_7_0_0 case 3: + return V2_5_0_0 + case 2: return V2_4_0_0 - case 0: - fallthrough case 1: - fallthrough + return V2_0_0_0 default: return V0_11_0_0 } } + +func (r *InitProducerIDResponse) throttleTime() time.Duration { + return r.ThrottleTime +} diff --git a/vendor/github.com/Shopify/sarama/interceptors.go b/vendor/github.com/IBM/sarama/interceptors.go similarity index 89% rename from vendor/github.com/Shopify/sarama/interceptors.go rename to vendor/github.com/IBM/sarama/interceptors.go index d0d33e526..d4dc23cc4 100644 --- a/vendor/github.com/Shopify/sarama/interceptors.go +++ b/vendor/github.com/IBM/sarama/interceptors.go @@ -25,7 +25,7 @@ type ConsumerInterceptor interface { func (msg *ProducerMessage) safelyApplyInterceptor(interceptor ProducerInterceptor) { defer func() { if r := recover(); r != nil { - Logger.Printf("Error when calling producer interceptor: %s, %w\n", interceptor, r) + Logger.Printf("Error when calling producer interceptor: %v, %v", interceptor, r) } }() @@ -35,7 +35,7 @@ func (msg *ProducerMessage) safelyApplyInterceptor(interceptor ProducerIntercept func (msg *ConsumerMessage) safelyApplyInterceptor(interceptor ConsumerInterceptor) { defer func() { if r := recover(); r != nil { - Logger.Printf("Error when calling consumer interceptor: %s, %w\n", interceptor, r) + Logger.Printf("Error when calling consumer interceptor: %v, %v", interceptor, r) } }() diff --git a/vendor/github.com/Shopify/sarama/join_group_request.go b/vendor/github.com/IBM/sarama/join_group_request.go similarity index 70% rename from vendor/github.com/Shopify/sarama/join_group_request.go rename to vendor/github.com/IBM/sarama/join_group_request.go index 432338cd5..3ab69c498 100644 --- a/vendor/github.com/Shopify/sarama/join_group_request.go +++ b/vendor/github.com/IBM/sarama/join_group_request.go @@ -1,7 +1,9 @@ package sarama type GroupProtocol struct { - Name string + // Name contains the protocol name. + Name string + // Metadata contains the protocol metadata. Metadata []byte } @@ -25,14 +27,30 @@ func (p *GroupProtocol) encode(pe packetEncoder) (err error) { } type JoinGroupRequest struct { - Version int16 - GroupId string - SessionTimeout int32 - RebalanceTimeout int32 - MemberId string - GroupInstanceId *string - ProtocolType string - GroupProtocols map[string][]byte // deprecated; use OrderedGroupProtocols + // Version defines the protocol version to use for encode and decode + Version int16 + // GroupId contains the group identifier. + GroupId string + // SessionTimeout specifies that the coordinator should consider the consumer + // dead if it receives no heartbeat after this timeout in milliseconds. + SessionTimeout int32 + // RebalanceTimeout contains the maximum time in milliseconds that the + // coordinator will wait for each member to rejoin when rebalancing the + // group. + RebalanceTimeout int32 + // MemberId contains the member id assigned by the group coordinator. + MemberId string + // GroupInstanceId contains the unique identifier of the consumer instance + // provided by end user. + GroupInstanceId *string + // ProtocolType contains the unique name the for class of protocols + // implemented by the group we want to join. + ProtocolType string + // GroupProtocols contains the list of protocols that the member supports. + // deprecated; use OrderedGroupProtocols + GroupProtocols map[string][]byte + // OrderedGroupProtocols contains an ordered list of protocols that the member + // supports. OrderedGroupProtocols []*GroupProtocol } @@ -150,16 +168,26 @@ func (r *JoinGroupRequest) headerVersion() int16 { return 1 } +func (r *JoinGroupRequest) isValidVersion() bool { + return r.Version >= 0 && r.Version <= 5 +} + func (r *JoinGroupRequest) requiredVersion() KafkaVersion { switch r.Version { - case 4, 5: + case 5: return V2_3_0_0 - case 2, 3: + case 4: + return V2_2_0_0 + case 3: + return V2_0_0_0 + case 2: return V0_11_0_0 case 1: return V0_10_1_0 + case 0: + return V0_10_0_0 default: - return V0_9_0_0 + return V2_3_0_0 } } diff --git a/vendor/github.com/Shopify/sarama/join_group_response.go b/vendor/github.com/IBM/sarama/join_group_response.go similarity index 68% rename from vendor/github.com/Shopify/sarama/join_group_response.go rename to vendor/github.com/IBM/sarama/join_group_response.go index d8aa1f002..643fddc6b 100644 --- a/vendor/github.com/Shopify/sarama/join_group_response.go +++ b/vendor/github.com/IBM/sarama/join_group_response.go @@ -1,20 +1,35 @@ package sarama +import "time" + type JoinGroupResponse struct { - Version int16 - ThrottleTime int32 - Err KError - GenerationId int32 + // Version defines the protocol version to use for encode and decode + Version int16 + // ThrottleTime contains the duration for which the request was throttled due + // to a quota violation, or zero if the request did not violate any quota. + ThrottleTime int32 + // Err contains the error code, or 0 if there was no error. + Err KError + // GenerationId contains the generation ID of the group. + GenerationId int32 + // GroupProtocol contains the group protocol selected by the coordinator. GroupProtocol string - LeaderId string - MemberId string - Members []GroupMember + // LeaderId contains the leader of the group. + LeaderId string + // MemberId contains the member ID assigned by the group coordinator. + MemberId string + // Members contains the per-group-member information. + Members []GroupMember } type GroupMember struct { - MemberId string + // MemberId contains the group member ID. + MemberId string + // GroupInstanceId contains the unique identifier of the consumer instance + // provided by end user. GroupInstanceId *string - Metadata []byte + // Metadata contains the group member metadata. + Metadata []byte } func (r *JoinGroupResponse) GetMembers() (map[string]ConsumerGroupMemberMetadata, error) { @@ -145,15 +160,29 @@ func (r *JoinGroupResponse) headerVersion() int16 { return 0 } +func (r *JoinGroupResponse) isValidVersion() bool { + return r.Version >= 0 && r.Version <= 5 +} + func (r *JoinGroupResponse) requiredVersion() KafkaVersion { switch r.Version { - case 3, 4, 5: + case 5: return V2_3_0_0 + case 4: + return V2_2_0_0 + case 3: + return V2_0_0_0 case 2: return V0_11_0_0 case 1: return V0_10_1_0 + case 0: + return V0_10_0_0 default: - return V0_9_0_0 + return V2_3_0_0 } } + +func (r *JoinGroupResponse) throttleTime() time.Duration { + return time.Duration(r.ThrottleTime) * time.Millisecond +} diff --git a/vendor/github.com/Shopify/sarama/kerberos_client.go b/vendor/github.com/IBM/sarama/kerberos_client.go similarity index 79% rename from vendor/github.com/Shopify/sarama/kerberos_client.go rename to vendor/github.com/IBM/sarama/kerberos_client.go index 01a53193b..289126879 100644 --- a/vendor/github.com/Shopify/sarama/kerberos_client.go +++ b/vendor/github.com/IBM/sarama/kerberos_client.go @@ -3,6 +3,7 @@ package sarama import ( krb5client "github.com/jcmturner/gokrb5/v8/client" krb5config "github.com/jcmturner/gokrb5/v8/config" + "github.com/jcmturner/gokrb5/v8/credentials" "github.com/jcmturner/gokrb5/v8/keytab" "github.com/jcmturner/gokrb5/v8/types" ) @@ -32,13 +33,23 @@ func NewKerberosClient(config *GSSAPIConfig) (KerberosClient, error) { func createClient(config *GSSAPIConfig, cfg *krb5config.Config) (KerberosClient, error) { var client *krb5client.Client - if config.AuthType == KRB5_KEYTAB_AUTH { + switch config.AuthType { + case KRB5_KEYTAB_AUTH: kt, err := keytab.Load(config.KeyTabPath) if err != nil { return nil, err } client = krb5client.NewWithKeytab(config.Username, config.Realm, kt, cfg, krb5client.DisablePAFXFAST(config.DisablePAFXFAST)) - } else { + case KRB5_CCACHE_AUTH: + cc, err := credentials.LoadCCache(config.CCachePath) + if err != nil { + return nil, err + } + client, err = krb5client.NewFromCCache(cc, cfg, krb5client.DisablePAFXFAST(config.DisablePAFXFAST)) + if err != nil { + return nil, err + } + default: client = krb5client.NewWithPassword(config.Username, config.Realm, config.Password, cfg, krb5client.DisablePAFXFAST(config.DisablePAFXFAST)) } diff --git a/vendor/github.com/Shopify/sarama/leave_group_request.go b/vendor/github.com/IBM/sarama/leave_group_request.go similarity index 88% rename from vendor/github.com/Shopify/sarama/leave_group_request.go rename to vendor/github.com/IBM/sarama/leave_group_request.go index 741b7290a..9222e5104 100644 --- a/vendor/github.com/Shopify/sarama/leave_group_request.go +++ b/vendor/github.com/IBM/sarama/leave_group_request.go @@ -81,10 +81,21 @@ func (r *LeaveGroupRequest) headerVersion() int16 { return 1 } +func (r *LeaveGroupRequest) isValidVersion() bool { + return r.Version >= 0 && r.Version <= 3 +} + func (r *LeaveGroupRequest) requiredVersion() KafkaVersion { switch r.Version { - case 1, 2, 3: - return V2_3_0_0 + case 3: + return V2_4_0_0 + case 2: + return V2_0_0_0 + case 1: + return V0_11_0_0 + case 0: + return V0_9_0_0 + default: + return V2_4_0_0 } - return V0_9_0_0 } diff --git a/vendor/github.com/Shopify/sarama/leave_group_response.go b/vendor/github.com/IBM/sarama/leave_group_response.go similarity index 83% rename from vendor/github.com/Shopify/sarama/leave_group_response.go rename to vendor/github.com/IBM/sarama/leave_group_response.go index 18ed357e8..f24c24867 100644 --- a/vendor/github.com/Shopify/sarama/leave_group_response.go +++ b/vendor/github.com/IBM/sarama/leave_group_response.go @@ -1,5 +1,7 @@ package sarama +import "time" + type MemberResponse struct { MemberId string GroupInstanceId *string @@ -83,10 +85,25 @@ func (r *LeaveGroupResponse) headerVersion() int16 { return 0 } +func (r *LeaveGroupResponse) isValidVersion() bool { + return r.Version >= 0 && r.Version <= 3 +} + func (r *LeaveGroupResponse) requiredVersion() KafkaVersion { switch r.Version { - case 1, 2, 3: - return V2_3_0_0 + case 3: + return V2_4_0_0 + case 2: + return V2_0_0_0 + case 1: + return V0_11_0_0 + case 0: + return V0_9_0_0 + default: + return V2_4_0_0 } - return V0_9_0_0 +} + +func (r *LeaveGroupResponse) throttleTime() time.Duration { + return time.Duration(r.ThrottleTime) * time.Millisecond } diff --git a/vendor/github.com/Shopify/sarama/length_field.go b/vendor/github.com/IBM/sarama/length_field.go similarity index 100% rename from vendor/github.com/Shopify/sarama/length_field.go rename to vendor/github.com/IBM/sarama/length_field.go diff --git a/vendor/github.com/IBM/sarama/list_groups_request.go b/vendor/github.com/IBM/sarama/list_groups_request.go new file mode 100644 index 000000000..4d5f9e40d --- /dev/null +++ b/vendor/github.com/IBM/sarama/list_groups_request.go @@ -0,0 +1,82 @@ +package sarama + +type ListGroupsRequest struct { + Version int16 + StatesFilter []string // version 4 or later +} + +func (r *ListGroupsRequest) encode(pe packetEncoder) error { + if r.Version >= 4 { + pe.putCompactArrayLength(len(r.StatesFilter)) + for _, filter := range r.StatesFilter { + err := pe.putCompactString(filter) + if err != nil { + return err + } + } + } + if r.Version >= 3 { + pe.putEmptyTaggedFieldArray() + } + return nil +} + +func (r *ListGroupsRequest) decode(pd packetDecoder, version int16) (err error) { + r.Version = version + if r.Version >= 4 { + filterLen, err := pd.getCompactArrayLength() + if err != nil { + return err + } + if filterLen > 0 { + r.StatesFilter = make([]string, filterLen) + for i := 0; i < filterLen; i++ { + if r.StatesFilter[i], err = pd.getCompactString(); err != nil { + return err + } + } + } + } + if r.Version >= 3 { + if _, err = pd.getEmptyTaggedFieldArray(); err != nil { + return err + } + } + return nil +} + +func (r *ListGroupsRequest) key() int16 { + return 16 +} + +func (r *ListGroupsRequest) version() int16 { + return r.Version +} + +func (r *ListGroupsRequest) headerVersion() int16 { + if r.Version >= 3 { + return 2 + } + return 1 +} + +func (r *ListGroupsRequest) isValidVersion() bool { + return r.Version >= 0 && r.Version <= 4 +} + +func (r *ListGroupsRequest) requiredVersion() KafkaVersion { + switch r.Version { + case 4: + return V2_6_0_0 + case 3: + return V2_4_0_0 + case 2: + return V2_0_0_0 + case 1: + return V0_11_0_0 + case 0: + return V0_9_0_0 + default: + return V2_6_0_0 + } +} diff --git a/vendor/github.com/IBM/sarama/list_groups_response.go b/vendor/github.com/IBM/sarama/list_groups_response.go new file mode 100644 index 000000000..62948c31f --- /dev/null +++ b/vendor/github.com/IBM/sarama/list_groups_response.go @@ -0,0 +1,173 @@ +package sarama + +type ListGroupsResponse struct { + Version int16 + ThrottleTime int32 + Err KError + Groups map[string]string + GroupsData map[string]GroupData // version 4 or later +} + +type GroupData struct { + GroupState string // version 4 or later +} + +func (r *ListGroupsResponse) encode(pe packetEncoder) error { + if r.Version >= 1 { + pe.putInt32(r.ThrottleTime) + } + + pe.putInt16(int16(r.Err)) + + if r.Version <= 2 { + if err := pe.putArrayLength(len(r.Groups)); err != nil { + return err + } + for groupId, protocolType := range r.Groups { + if err := pe.putString(groupId); err != nil { + return err + } + if err := pe.putString(protocolType); err != nil { + return err + } + } + } else { + pe.putCompactArrayLength(len(r.Groups)) + for groupId, protocolType := range r.Groups { + if err := pe.putCompactString(groupId); err != nil { + return err + } + if err := pe.putCompactString(protocolType); err != nil { + return err + } + + if r.Version >= 4 { + groupData := r.GroupsData[groupId] + if err := pe.putCompactString(groupData.GroupState); err != nil { + return err + } + } + } + } + + return nil +} + +func (r *ListGroupsResponse) decode(pd packetDecoder, version int16) error { + r.Version = version + if r.Version >= 1 { + var err error + if r.ThrottleTime, err = pd.getInt32(); err != nil { + return err + } + } + + kerr, err := pd.getInt16() + if err != nil { + return err + } + + r.Err = KError(kerr) + + var n int + if r.Version <= 2 { + n, err = pd.getArrayLength() + } else { + n, err = pd.getCompactArrayLength() + } + if err != nil { + return err + } + + for i := 0; i < n; i++ { + if i == 0 { + r.Groups = make(map[string]string) + if r.Version >= 4 { + r.GroupsData = make(map[string]GroupData) + } + } + + var groupId, protocolType string + if r.Version <= 2 { + groupId, err = pd.getString() + if err != nil { + return err + } + protocolType, err = pd.getString() + if err != nil { + return err + } + } else { + groupId, err = pd.getCompactString() + if err != nil { + return err + } + protocolType, err = pd.getCompactString() + if err != nil { + return err + } + } + + r.Groups[groupId] = protocolType + + if r.Version >= 4 { + groupState, err := pd.getCompactString() + if err != nil { + return err + } + r.GroupsData[groupId] = GroupData{ + GroupState: groupState, + } + } + + if r.Version >= 3 { + if _, err = pd.getEmptyTaggedFieldArray(); err != nil { + return err + } + } + } + + if r.Version >= 3 { + if _, err = pd.getEmptyTaggedFieldArray(); err != nil { + return err + } + } + + return nil +} + +func (r *ListGroupsResponse) key() int16 { + return 16 +} + +func (r *ListGroupsResponse) version() int16 { + return r.Version +} + +func (r *ListGroupsResponse) headerVersion() int16 { + if r.Version >= 3 { + return 1 + } + return 0 +} + +func (r *ListGroupsResponse) isValidVersion() bool { + return r.Version >= 0 && r.Version <= 4 +} + +func (r *ListGroupsResponse) requiredVersion() KafkaVersion { + switch r.Version { + case 4: + return V2_6_0_0 + case 3: + return V2_4_0_0 + case 2: + return V2_0_0_0 + case 1: + return V0_11_0_0 + case 0: + return V0_9_0_0 + default: + return V2_6_0_0 + } +} diff --git a/vendor/github.com/Shopify/sarama/list_partition_reassignments_request.go b/vendor/github.com/IBM/sarama/list_partition_reassignments_request.go similarity index 95% rename from vendor/github.com/Shopify/sarama/list_partition_reassignments_request.go rename to vendor/github.com/IBM/sarama/list_partition_reassignments_request.go index c1ffa9ba0..c7ad5e981 100644 --- a/vendor/github.com/Shopify/sarama/list_partition_reassignments_request.go +++ b/vendor/github.com/IBM/sarama/list_partition_reassignments_request.go @@ -83,6 +83,10 @@ func (r *ListPartitionReassignmentsRequest) headerVersion() int16 { return 2 } +func (r *ListPartitionReassignmentsRequest) isValidVersion() bool { + return r.Version == 0 +} + func (r *ListPartitionReassignmentsRequest) requiredVersion() KafkaVersion { return V2_4_0_0 } diff --git a/vendor/github.com/Shopify/sarama/list_partition_reassignments_response.go b/vendor/github.com/IBM/sarama/list_partition_reassignments_response.go similarity index 94% rename from vendor/github.com/Shopify/sarama/list_partition_reassignments_response.go rename to vendor/github.com/IBM/sarama/list_partition_reassignments_response.go index 4baa6a08e..426f1c771 100644 --- a/vendor/github.com/Shopify/sarama/list_partition_reassignments_response.go +++ b/vendor/github.com/IBM/sarama/list_partition_reassignments_response.go @@ -1,5 +1,7 @@ package sarama +import "time" + type PartitionReplicaReassignmentsStatus struct { Replicas []int32 AddingReplicas []int32 @@ -164,6 +166,14 @@ func (r *ListPartitionReassignmentsResponse) headerVersion() int16 { return 1 } +func (r *ListPartitionReassignmentsResponse) isValidVersion() bool { + return r.Version == 0 +} + func (r *ListPartitionReassignmentsResponse) requiredVersion() KafkaVersion { return V2_4_0_0 } + +func (r *ListPartitionReassignmentsResponse) throttleTime() time.Duration { + return time.Duration(r.ThrottleTimeMs) * time.Millisecond +} diff --git a/vendor/github.com/Shopify/sarama/message.go b/vendor/github.com/IBM/sarama/message.go similarity index 100% rename from vendor/github.com/Shopify/sarama/message.go rename to vendor/github.com/IBM/sarama/message.go diff --git a/vendor/github.com/Shopify/sarama/message_set.go b/vendor/github.com/IBM/sarama/message_set.go similarity index 100% rename from vendor/github.com/Shopify/sarama/message_set.go rename to vendor/github.com/IBM/sarama/message_set.go diff --git a/vendor/github.com/IBM/sarama/metadata_request.go b/vendor/github.com/IBM/sarama/metadata_request.go new file mode 100644 index 000000000..e76073ea0 --- /dev/null +++ b/vendor/github.com/IBM/sarama/metadata_request.go @@ -0,0 +1,240 @@ +package sarama + +import "encoding/base64" + +type Uuid [16]byte + +func (u Uuid) String() string { + return base64.URLEncoding.WithPadding(base64.NoPadding).EncodeToString(u[:]) +} + +var NullUUID = []byte{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} + +type MetadataRequest struct { + // Version defines the protocol version to use for encode and decode + Version int16 + // Topics contains the topics to fetch metadata for. + Topics []string + // AllowAutoTopicCreation contains a If this is true, the broker may auto-create topics that we requested which do not already exist, if it is configured to do so. + AllowAutoTopicCreation bool + IncludeClusterAuthorizedOperations bool // version 8 and up + IncludeTopicAuthorizedOperations bool // version 8 and up +} + +func NewMetadataRequest(version KafkaVersion, topics []string) *MetadataRequest { + m := &MetadataRequest{Topics: topics} + if version.IsAtLeast(V2_8_0_0) { + m.Version = 10 + } else if version.IsAtLeast(V2_4_0_0) { + m.Version = 9 + } else if version.IsAtLeast(V2_4_0_0) { + m.Version = 8 + } else if version.IsAtLeast(V2_1_0_0) { + m.Version = 7 + } else if version.IsAtLeast(V2_0_0_0) { + m.Version = 6 + } else if version.IsAtLeast(V1_0_0_0) { + m.Version = 5 + } else if version.IsAtLeast(V0_11_0_0) { + m.Version = 4 + } else if version.IsAtLeast(V0_10_1_0) { + m.Version = 2 + } else if version.IsAtLeast(V0_10_0_0) { + m.Version = 1 + } + return m +} + +func (r *MetadataRequest) encode(pe packetEncoder) (err error) { + if r.Version < 0 || r.Version > 10 { + return PacketEncodingError{"invalid or unsupported MetadataRequest version field"} + } + if r.Version == 0 || len(r.Topics) > 0 { + if r.Version < 9 { + err := pe.putArrayLength(len(r.Topics)) + if err != nil { + return err + } + + for i := range r.Topics { + err = pe.putString(r.Topics[i]) + if err != nil { + return err + } + } + } else if r.Version == 9 { + pe.putCompactArrayLength(len(r.Topics)) + for _, topicName := range r.Topics { + if err := pe.putCompactString(topicName); err != nil { + return err + } + pe.putEmptyTaggedFieldArray() + } + } else { // r.Version = 10 + pe.putCompactArrayLength(len(r.Topics)) + for _, topicName := range r.Topics { + if err := pe.putRawBytes(NullUUID); err != nil { + return err + } + // Avoid implicit memory aliasing in for loop + tn := topicName + if err := pe.putNullableCompactString(&tn); err != nil { + return err + } + pe.putEmptyTaggedFieldArray() + } + } + } else { + if r.Version < 9 { + pe.putInt32(-1) + } else { + pe.putCompactArrayLength(-1) + } + } + + if r.Version > 3 { + pe.putBool(r.AllowAutoTopicCreation) + } + if r.Version > 7 { + pe.putBool(r.IncludeClusterAuthorizedOperations) + pe.putBool(r.IncludeTopicAuthorizedOperations) + } + if r.Version > 8 { + pe.putEmptyTaggedFieldArray() + } + return nil +} + +func (r *MetadataRequest) decode(pd packetDecoder, version int16) (err error) { + r.Version = version + if r.Version < 9 { + size, err := pd.getInt32() + if err != nil { + return err + } + if size > 0 { + r.Topics = make([]string, size) + for i := range r.Topics { + topic, err := pd.getString() + if err != nil { + return err + } + r.Topics[i] = topic + } + } + } else if r.Version == 9 { + size, err := pd.getCompactArrayLength() + if err != nil { + return err + } + if size > 0 { + r.Topics = make([]string, size) + } + for i := range r.Topics { + topic, err := pd.getCompactString() + if err != nil { + return err + } + r.Topics[i] = topic + if _, err := pd.getEmptyTaggedFieldArray(); err != nil { + return err + } + } + } else { // version 10+ + size, err := pd.getCompactArrayLength() + if err != nil { + return err + } + + if size > 0 { + r.Topics = make([]string, size) + } + for i := range r.Topics { + if _, err = pd.getRawBytes(16); err != nil { // skip UUID + return err + } + topic, err := pd.getCompactNullableString() + if err != nil { + return err + } + if topic != nil { + r.Topics[i] = *topic + } + + if _, err := pd.getEmptyTaggedFieldArray(); err != nil { + return err + } + } + } + + if r.Version >= 4 { + if r.AllowAutoTopicCreation, err = pd.getBool(); err != nil { + return err + } + } + + if r.Version > 7 { + includeClusterAuthz, err := pd.getBool() + if err != nil { + return err + } + r.IncludeClusterAuthorizedOperations = includeClusterAuthz + includeTopicAuthz, err := pd.getBool() + if err != nil { + return err + } + r.IncludeTopicAuthorizedOperations = includeTopicAuthz + } + if r.Version > 8 { + if _, err := pd.getEmptyTaggedFieldArray(); err != nil { + return err + } + } + return nil +} + +func (r *MetadataRequest) key() int16 { + return 3 +} + +func (r *MetadataRequest) version() int16 { + return r.Version +} + +func (r *MetadataRequest) headerVersion() int16 { + if r.Version >= 9 { + return 2 + } + return 1 +} + +func (r *MetadataRequest) isValidVersion() bool { + return r.Version >= 0 && r.Version <= 10 +} + +func (r *MetadataRequest) requiredVersion() KafkaVersion { + switch r.Version { + case 10: + return V2_8_0_0 + case 9: + return V2_4_0_0 + case 8: + return V2_3_0_0 + case 7: + return V2_1_0_0 + case 6: + return V2_0_0_0 + case 5: + return V1_0_0_0 + case 3, 4: + return V0_11_0_0 + case 2: + return V0_10_1_0 + case 1: + return V0_10_0_0 + case 0: + return V0_8_2_0 + default: + return V2_8_0_0 + } +} diff --git a/vendor/github.com/Shopify/sarama/metadata_response.go b/vendor/github.com/IBM/sarama/metadata_response.go similarity index 56% rename from vendor/github.com/Shopify/sarama/metadata_response.go rename to vendor/github.com/IBM/sarama/metadata_response.go index 10a56877d..dfb5d3a5b 100644 --- a/vendor/github.com/Shopify/sarama/metadata_response.go +++ b/vendor/github.com/IBM/sarama/metadata_response.go @@ -1,5 +1,7 @@ package sarama +import "time" + // PartitionMetadata contains each partition in the topic. type PartitionMetadata struct { // Version defines the protocol version to use for encode and decode @@ -42,16 +44,38 @@ func (p *PartitionMetadata) decode(pd packetDecoder, version int16) (err error) } } - if p.Replicas, err = pd.getInt32Array(); err != nil { + if p.Version < 9 { + p.Replicas, err = pd.getInt32Array() + } else { + p.Replicas, err = pd.getCompactInt32Array() + } + if err != nil { return err } - if p.Isr, err = pd.getInt32Array(); err != nil { + if p.Version < 9 { + p.Isr, err = pd.getInt32Array() + } else { + p.Isr, err = pd.getCompactInt32Array() + } + if err != nil { return err } if p.Version >= 5 { - if p.OfflineReplicas, err = pd.getInt32Array(); err != nil { + if p.Version < 9 { + p.OfflineReplicas, err = pd.getInt32Array() + } else { + p.OfflineReplicas, err = pd.getCompactInt32Array() + } + if err != nil { + return err + } + } + + if p.Version >= 9 { + _, err = pd.getEmptyTaggedFieldArray() + if err != nil { return err } } @@ -71,20 +95,39 @@ func (p *PartitionMetadata) encode(pe packetEncoder, version int16) (err error) pe.putInt32(p.LeaderEpoch) } - if err := pe.putInt32Array(p.Replicas); err != nil { + if p.Version < 9 { + err = pe.putInt32Array(p.Replicas) + } else { + err = pe.putCompactInt32Array(p.Replicas) + } + if err != nil { return err } - if err := pe.putInt32Array(p.Isr); err != nil { + if p.Version < 9 { + err = pe.putInt32Array(p.Isr) + } else { + err = pe.putCompactInt32Array(p.Isr) + } + if err != nil { return err } if p.Version >= 5 { - if err := pe.putInt32Array(p.OfflineReplicas); err != nil { + if p.Version < 9 { + err = pe.putInt32Array(p.OfflineReplicas) + } else { + err = pe.putCompactInt32Array(p.OfflineReplicas) + } + if err != nil { return err } } + if p.Version >= 9 { + pe.putEmptyTaggedFieldArray() + } + return nil } @@ -96,10 +139,12 @@ type TopicMetadata struct { Err KError // Name contains the topic name. Name string + Uuid Uuid // IsInternal contains a True if the topic is internal. IsInternal bool // Partitions contains each partition in the topic. - Partitions []*PartitionMetadata + Partitions []*PartitionMetadata + TopicAuthorizedOperations int32 // Only valid for Version >= 8 } func (t *TopicMetadata) decode(pd packetDecoder, version int16) (err error) { @@ -110,21 +155,44 @@ func (t *TopicMetadata) decode(pd packetDecoder, version int16) (err error) { } t.Err = KError(tmp) - if t.Name, err = pd.getString(); err != nil { + if t.Version < 9 { + t.Name, err = pd.getString() + } else { + t.Name, err = pd.getCompactString() + } + if err != nil { return err } + if t.Version >= 10 { + uuid, err := pd.getRawBytes(16) + if err != nil { + return err + } + t.Uuid = [16]byte{} + for i := 0; i < 16; i++ { + t.Uuid[i] = uuid[i] + } + } + if t.Version >= 1 { - if t.IsInternal, err = pd.getBool(); err != nil { + t.IsInternal, err = pd.getBool() + if err != nil { return err } } - if numPartitions, err := pd.getArrayLength(); err != nil { + var n int + if t.Version < 9 { + n, err = pd.getArrayLength() + } else { + n, err = pd.getCompactArrayLength() + } + if err != nil { return err } else { - t.Partitions = make([]*PartitionMetadata, numPartitions) - for i := 0; i < numPartitions; i++ { + t.Partitions = make([]*PartitionMetadata, n) + for i := 0; i < n; i++ { block := &PartitionMetadata{} if err := block.decode(pd, t.Version); err != nil { return err @@ -133,6 +201,20 @@ func (t *TopicMetadata) decode(pd packetDecoder, version int16) (err error) { } } + if t.Version >= 8 { + t.TopicAuthorizedOperations, err = pd.getInt32() + if err != nil { + return err + } + } + + if t.Version >= 9 { + _, err = pd.getEmptyTaggedFieldArray() + if err != nil { + return err + } + } + return nil } @@ -140,16 +222,33 @@ func (t *TopicMetadata) encode(pe packetEncoder, version int16) (err error) { t.Version = version pe.putInt16(int16(t.Err)) - if err := pe.putString(t.Name); err != nil { + if t.Version < 9 { + err = pe.putString(t.Name) + } else { + err = pe.putCompactString(t.Name) + } + if err != nil { return err } + if t.Version >= 10 { + err = pe.putRawBytes(t.Uuid[:]) + if err != nil { + return err + } + } + if t.Version >= 1 { pe.putBool(t.IsInternal) } - if err := pe.putArrayLength(len(t.Partitions)); err != nil { - return err + if t.Version < 9 { + err = pe.putArrayLength(len(t.Partitions)) + if err != nil { + return err + } + } else { + pe.putCompactArrayLength(len(t.Partitions)) } for _, block := range t.Partitions { if err := block.encode(pe, t.Version); err != nil { @@ -157,6 +256,14 @@ func (t *TopicMetadata) encode(pe packetEncoder, version int16) (err error) { } } + if t.Version >= 8 { + pe.putInt32(t.TopicAuthorizedOperations) + } + + if t.Version >= 9 { + pe.putEmptyTaggedFieldArray() + } + return nil } @@ -172,7 +279,8 @@ type MetadataResponse struct { // ControllerID contains the ID of the controller broker. ControllerID int32 // Topics contains each topic in the response. - Topics []*TopicMetadata + Topics []*TopicMetadata + ClusterAuthorizedOperations int32 // Only valid for Version >= 8 } func (r *MetadataResponse) decode(pd packetDecoder, version int16) (err error) { @@ -183,12 +291,18 @@ func (r *MetadataResponse) decode(pd packetDecoder, version int16) (err error) { } } - n, err := pd.getArrayLength() + var brokerArrayLen int + if r.Version < 9 { + brokerArrayLen, err = pd.getArrayLength() + } else { + brokerArrayLen, err = pd.getCompactArrayLength() + } if err != nil { return err } - r.Brokers = make([]*Broker, n) - for i := 0; i < n; i++ { + + r.Brokers = make([]*Broker, brokerArrayLen) + for i := 0; i < brokerArrayLen; i++ { r.Brokers[i] = new(Broker) err = r.Brokers[i].decode(pd, version) if err != nil { @@ -197,7 +311,12 @@ func (r *MetadataResponse) decode(pd packetDecoder, version int16) (err error) { } if r.Version >= 2 { - if r.ClusterID, err = pd.getNullableString(); err != nil { + if r.Version < 9 { + r.ClusterID, err = pd.getNullableString() + } else { + r.ClusterID, err = pd.getCompactNullableString() + } + if err != nil { return err } } @@ -208,16 +327,36 @@ func (r *MetadataResponse) decode(pd packetDecoder, version int16) (err error) { } } - if numTopics, err := pd.getArrayLength(); err != nil { - return err + var topicArrayLen int + if version < 9 { + topicArrayLen, err = pd.getArrayLength() } else { - r.Topics = make([]*TopicMetadata, numTopics) - for i := 0; i < numTopics; i++ { - block := &TopicMetadata{} - if err := block.decode(pd, r.Version); err != nil { - return err - } - r.Topics[i] = block + topicArrayLen, err = pd.getCompactArrayLength() + } + if err != nil { + return err + } + + r.Topics = make([]*TopicMetadata, topicArrayLen) + for i := 0; i < topicArrayLen; i++ { + r.Topics[i] = new(TopicMetadata) + err = r.Topics[i].decode(pd, version) + if err != nil { + return err + } + } + + if r.Version >= 8 { + r.ClusterAuthorizedOperations, err = pd.getInt32() + if err != nil { + return err + } + } + + if r.Version >= 9 { + _, err := pd.getEmptyTaggedFieldArray() + if err != nil { + return err } } @@ -229,9 +368,15 @@ func (r *MetadataResponse) encode(pe packetEncoder) (err error) { pe.putInt32(r.ThrottleTimeMs) } - if err := pe.putArrayLength(len(r.Brokers)); err != nil { - return err + if r.Version < 9 { + err = pe.putArrayLength(len(r.Brokers)) + if err != nil { + return err + } + } else { + pe.putCompactArrayLength(len(r.Brokers)) } + for _, broker := range r.Brokers { err = broker.encode(pe, r.Version) if err != nil { @@ -240,8 +385,16 @@ func (r *MetadataResponse) encode(pe packetEncoder) (err error) { } if r.Version >= 2 { - if err := pe.putNullableString(r.ClusterID); err != nil { - return err + if r.Version < 9 { + err = pe.putNullableString(r.ClusterID) + if err != nil { + return err + } + } else { + err = pe.putNullableCompactString(r.ClusterID) + if err != nil { + return err + } } } @@ -249,7 +402,12 @@ func (r *MetadataResponse) encode(pe packetEncoder) (err error) { pe.putInt32(r.ControllerID) } - if err := pe.putArrayLength(len(r.Topics)); err != nil { + if r.Version < 9 { + err = pe.putArrayLength(len(r.Topics)) + } else { + pe.putCompactArrayLength(len(r.Topics)) + } + if err != nil { return err } for _, block := range r.Topics { @@ -258,6 +416,14 @@ func (r *MetadataResponse) encode(pe packetEncoder) (err error) { } } + if r.Version >= 8 { + pe.putInt32(r.ClusterAuthorizedOperations) + } + + if r.Version >= 9 { + pe.putEmptyTaggedFieldArray() + } + return nil } @@ -270,28 +436,48 @@ func (r *MetadataResponse) version() int16 { } func (r *MetadataResponse) headerVersion() int16 { - return 0 + if r.Version < 9 { + return 0 + } else { + return 1 + } +} + +func (r *MetadataResponse) isValidVersion() bool { + return r.Version >= 0 && r.Version <= 7 } func (r *MetadataResponse) requiredVersion() KafkaVersion { switch r.Version { - case 1: - return V0_10_0_0 - case 2: - return V0_10_1_0 - case 3, 4: - return V0_11_0_0 - case 5: - return V1_0_0_0 - case 6: - return V2_0_0_0 + case 10: + return V2_8_0_0 + case 9: + return V2_4_0_0 + case 8: + return V2_3_0_0 case 7: return V2_1_0_0 + case 6: + return V2_0_0_0 + case 5: + return V1_0_0_0 + case 3, 4: + return V0_11_0_0 + case 2: + return V0_10_1_0 + case 1: + return V0_10_0_0 + case 0: + return V0_8_2_0 default: - return MinVersion + return V2_8_0_0 } } +func (r *MetadataResponse) throttleTime() time.Duration { + return time.Duration(r.ThrottleTimeMs) * time.Millisecond +} + // testing API func (r *MetadataResponse) AddBroker(addr string, id int32) { @@ -336,7 +522,16 @@ func (r *MetadataResponse) AddTopicPartition(topic string, partition, brokerID i foundPartition: pmatch.Leader = brokerID pmatch.Replicas = replicas + if pmatch.Replicas == nil { + pmatch.Replicas = []int32{} + } pmatch.Isr = isr + if pmatch.Isr == nil { + pmatch.Isr = []int32{} + } pmatch.OfflineReplicas = offline + if pmatch.OfflineReplicas == nil { + pmatch.OfflineReplicas = []int32{} + } pmatch.Err = err } diff --git a/vendor/github.com/Shopify/sarama/metrics.go b/vendor/github.com/IBM/sarama/metrics.go similarity index 97% rename from vendor/github.com/Shopify/sarama/metrics.go rename to vendor/github.com/IBM/sarama/metrics.go index 7b7705f2e..de8ad95c7 100644 --- a/vendor/github.com/Shopify/sarama/metrics.go +++ b/vendor/github.com/IBM/sarama/metrics.go @@ -32,7 +32,7 @@ func getMetricNameForBroker(name string, broker *Broker) string { func getMetricNameForTopic(name string, topic string) string { // Convert dot to _ since reporters like Graphite typically use dot to represent hierarchy // cf. KAFKA-1902 and KAFKA-2337 - return fmt.Sprintf(name+"-for-topic-%s", strings.Replace(topic, ".", "_", -1)) + return fmt.Sprintf(name+"-for-topic-%s", strings.ReplaceAll(topic, ".", "_")) } func getOrRegisterTopicMeter(name string, topic string, r metrics.Registry) metrics.Meter { diff --git a/vendor/github.com/Shopify/sarama/mockbroker.go b/vendor/github.com/IBM/sarama/mockbroker.go similarity index 87% rename from vendor/github.com/Shopify/sarama/mockbroker.go rename to vendor/github.com/IBM/sarama/mockbroker.go index 628c3cb90..2c5e7cadd 100644 --- a/vendor/github.com/Shopify/sarama/mockbroker.go +++ b/vendor/github.com/IBM/sarama/mockbroker.go @@ -10,6 +10,7 @@ import ( "reflect" "strconv" "sync" + "syscall" "time" "github.com/davecgh/go-spew/spew" @@ -98,6 +99,20 @@ func (b *MockBroker) SetHandlerByMap(handlerMap map[string]MockResponse) { }) } +// SetHandlerFuncByMap defines mapping of Request types to RequestHandlerFunc. When a +// request is received by the broker, it looks up the request type in the map +// and invoke the found RequestHandlerFunc instance to generate an appropriate reply. +func (b *MockBroker) SetHandlerFuncByMap(handlerMap map[string]requestHandlerFunc) { + fnMap := make(map[string]requestHandlerFunc) + for k, v := range handlerMap { + fnMap[k] = v + } + b.setHandler(func(req *request) (res encoderWithHeader) { + reqTypeName := reflect.TypeOf(req.body).Elem().Name() + return fnMap[reqTypeName](req) + }) +} + // SetNotifier set a function that will get invoked whenever a request has been // processed successfully and will provide the number of bytes read and written func (b *MockBroker) SetNotifier(notifier RequestNotifierFunc) { @@ -178,7 +193,9 @@ func (b *MockBroker) serverLoop() { i++ } wg.Wait() - Logger.Printf("*** mockbroker/%d: listener closed, err=%v", b.BrokerID(), err) + if !isConnectionClosedError(err) { + Logger.Printf("*** mockbroker/%d: listener closed, err=%v", b.BrokerID(), err) + } } func (b *MockBroker) SetGSSAPIHandler(handler GSSApiHandlerFunc) { @@ -243,8 +260,10 @@ func (b *MockBroker) handleRequests(conn io.ReadWriteCloser, idx int, wg *sync.W for { buffer, err := b.readToBytes(conn) if err != nil { - Logger.Printf("*** mockbroker/%d/%d: invalid request: err=%+v, %+v", b.brokerID, idx, err, spew.Sdump(buffer)) - b.serverError(err) + if !isConnectionClosedError(err) { + Logger.Printf("*** mockbroker/%d/%d: invalid request: err=%+v, %+v", b.brokerID, idx, err, spew.Sdump(buffer)) + b.serverError(err) + } break } @@ -253,8 +272,10 @@ func (b *MockBroker) handleRequests(conn io.ReadWriteCloser, idx int, wg *sync.W req, br, err := decodeRequest(bytes.NewReader(buffer)) bytesRead = br if err != nil { - Logger.Printf("*** mockbroker/%d/%d: invalid request: err=%+v, %+v", b.brokerID, idx, err, spew.Sdump(req)) - b.serverError(err) + if !isConnectionClosedError(err) { + Logger.Printf("*** mockbroker/%d/%d: invalid request: err=%+v, %+v", b.brokerID, idx, err, spew.Sdump(req)) + b.serverError(err) + } break } @@ -280,7 +301,7 @@ func (b *MockBroker) handleRequests(conn io.ReadWriteCloser, idx int, wg *sync.W encodedRes, err := encode(res, nil) if err != nil { - b.serverError(err) + b.serverError(fmt.Errorf("failed to encode %T - %w", res, err)) break } if len(encodedRes) == 0 { @@ -358,21 +379,25 @@ func (b *MockBroker) defaultRequestHandler(req *request) (res encoderWithHeader) } } -func (b *MockBroker) serverError(err error) { - isConnectionClosedError := false +func isConnectionClosedError(err error) bool { + var result bool opError := &net.OpError{} if errors.As(err, &opError) { - isConnectionClosedError = true + result = true } else if errors.Is(err, io.EOF) { - isConnectionClosedError = true + result = true } else if err.Error() == "use of closed network connection" { - isConnectionClosedError = true + result = true } - if isConnectionClosedError { + return result +} + +func (b *MockBroker) serverError(err error) { + b.t.Helper() + if isConnectionClosedError(err) { return } - b.t.Errorf(err.Error()) } @@ -386,10 +411,29 @@ func NewMockBroker(t TestReporter, brokerID int32) *MockBroker { // NewMockBrokerAddr behaves like newMockBroker but listens on the address you give // it rather than just some ephemeral port. func NewMockBrokerAddr(t TestReporter, brokerID int32, addr string) *MockBroker { - listener, err := net.Listen("tcp", addr) + var ( + listener net.Listener + err error + ) + + // retry up to 20 times if address already in use (e.g., if replacing broker which hasn't cleanly shutdown) + for i := 0; i < 20; i++ { + listener, err = net.Listen("tcp", addr) + if err != nil { + if errors.Is(err, syscall.EADDRINUSE) { + Logger.Printf("*** mockbroker/%d waiting for %s (address already in use)", brokerID, addr) + time.Sleep(time.Millisecond * 100) + continue + } + t.Fatal(err) + } + break + } + if err != nil { t.Fatal(err) } + return NewMockBrokerListener(t, brokerID, listener) } diff --git a/vendor/github.com/Shopify/sarama/mockkerberos.go b/vendor/github.com/IBM/sarama/mockkerberos.go similarity index 100% rename from vendor/github.com/Shopify/sarama/mockkerberos.go rename to vendor/github.com/IBM/sarama/mockkerberos.go diff --git a/vendor/github.com/Shopify/sarama/mockresponses.go b/vendor/github.com/IBM/sarama/mockresponses.go similarity index 90% rename from vendor/github.com/Shopify/sarama/mockresponses.go rename to vendor/github.com/IBM/sarama/mockresponses.go index 15b4367f9..d09415b49 100644 --- a/vendor/github.com/Shopify/sarama/mockresponses.go +++ b/vendor/github.com/IBM/sarama/mockresponses.go @@ -13,6 +13,7 @@ type TestReporter interface { Errorf(string, ...interface{}) Fatal(...interface{}) Fatalf(string, ...interface{}) + Helper() } // MockResponse is a response builder interface it defines one method that @@ -82,9 +83,9 @@ func NewMockListGroupsResponse(t TestReporter) *MockListGroupsResponse { func (m *MockListGroupsResponse) For(reqBody versionedDecoder) encoderWithHeader { request := reqBody.(*ListGroupsRequest) - _ = request response := &ListGroupsResponse{ - Groups: m.groups, + Version: request.Version, + Groups: m.groups, } return response } @@ -114,7 +115,7 @@ func (m *MockDescribeGroupsResponse) AddGroupDescription(groupID string, descrip func (m *MockDescribeGroupsResponse) For(reqBody versionedDecoder) encoderWithHeader { request := reqBody.(*DescribeGroupsRequest) - response := &DescribeGroupsResponse{} + response := &DescribeGroupsResponse{Version: request.version()} for _, requestedGroup := range request.Groups { if group, ok := m.groups[requestedGroup]; ok { response.Groups = append(response.Groups, group) @@ -134,6 +135,7 @@ func (m *MockDescribeGroupsResponse) For(reqBody versionedDecoder) encoderWithHe // MockMetadataResponse is a `MetadataResponse` builder. type MockMetadataResponse struct { controllerID int32 + errors map[string]KError leaders map[string]map[int32]int32 brokers map[string]int32 t TestReporter @@ -141,12 +143,18 @@ type MockMetadataResponse struct { func NewMockMetadataResponse(t TestReporter) *MockMetadataResponse { return &MockMetadataResponse{ + errors: make(map[string]KError), leaders: make(map[string]map[int32]int32), brokers: make(map[string]int32), t: t, } } +func (mmr *MockMetadataResponse) SetError(topic string, kerror KError) *MockMetadataResponse { + mmr.errors[topic] = kerror + return mmr +} + func (mmr *MockMetadataResponse) SetLeader(topic string, partition, brokerID int32) *MockMetadataResponse { partitions := mmr.leaders[topic] if partitions == nil { @@ -190,10 +198,22 @@ func (mmr *MockMetadataResponse) For(reqBody versionedDecoder) encoderWithHeader metadataResponse.AddTopicPartition(topic, partition, brokerID, replicas, replicas, offlineReplicas, ErrNoError) } } + for topic, err := range mmr.errors { + metadataResponse.AddTopic(topic, err) + } return metadataResponse } for _, topic := range metadataRequest.Topics { - for partition, brokerID := range mmr.leaders[topic] { + leaders, ok := mmr.leaders[topic] + if !ok { + if err, ok := mmr.errors[topic]; ok { + metadataResponse.AddTopic(topic, err) + } else { + metadataResponse.AddTopic(topic, ErrUnknownTopicOrPartition) + } + continue + } + for partition, brokerID := range leaders { metadataResponse.AddTopicPartition(topic, partition, brokerID, replicas, replicas, offlineReplicas, ErrNoError) } } @@ -233,7 +253,7 @@ func (mor *MockOffsetResponse) For(reqBody versionedDecoder) encoderWithHeader { offsetResponse := &OffsetResponse{Version: offsetRequest.Version} for topic, partitions := range offsetRequest.blocks { for partition, block := range partitions { - offset := mor.getOffset(topic, partition, block.time) + offset := mor.getOffset(topic, partition, block.timestamp) offsetResponse.AddTopicPartition(topic, partition, offset) } } @@ -410,7 +430,7 @@ func (mr *MockConsumerMetadataResponse) SetError(group string, kerror KError) *M func (mr *MockConsumerMetadataResponse) For(reqBody versionedDecoder) encoderWithHeader { req := reqBody.(*ConsumerMetadataRequest) group := req.ConsumerGroup - res := &ConsumerMetadataResponse{} + res := &ConsumerMetadataResponse{Version: req.version()} v := mr.coordinators[group] switch v := v.(type) { case *MockBroker: @@ -458,8 +478,7 @@ func (mr *MockFindCoordinatorResponse) SetError(coordinatorType CoordinatorType, func (mr *MockFindCoordinatorResponse) For(reqBody versionedDecoder) encoderWithHeader { req := reqBody.(*FindCoordinatorRequest) - res := &FindCoordinatorResponse{} - res.Version = req.Version + res := &FindCoordinatorResponse{Version: req.version()} var v interface{} switch req.CoordinatorType { case CoordinatorGroup: @@ -507,7 +526,7 @@ func (mr *MockOffsetCommitResponse) SetError(group, topic string, partition int3 func (mr *MockOffsetCommitResponse) For(reqBody versionedDecoder) encoderWithHeader { req := reqBody.(*OffsetCommitRequest) group := req.ConsumerGroup - res := &OffsetCommitResponse{} + res := &OffsetCommitResponse{Version: req.version()} for topic, partitions := range req.blocks { for partition := range partitions { res.AddError(topic, partition, mr.getError(group, topic, partition)) @@ -564,7 +583,10 @@ func (mr *MockProduceResponse) SetError(topic string, partition int32, kerror KE func (mr *MockProduceResponse) For(reqBody versionedDecoder) encoderWithHeader { req := reqBody.(*ProduceRequest) res := &ProduceResponse{ - Version: mr.version, + Version: req.version(), + } + if mr.version > 0 { + res.Version = mr.version } for topic, partitions := range req.records { for partition := range partitions { @@ -667,7 +689,8 @@ func (mr *MockCreateTopicsResponse) For(reqBody versionedDecoder) encoderWithHea } type MockDeleteTopicsResponse struct { - t TestReporter + t TestReporter + error KError } func NewMockDeleteTopicsResponse(t TestReporter) *MockDeleteTopicsResponse { @@ -676,16 +699,21 @@ func NewMockDeleteTopicsResponse(t TestReporter) *MockDeleteTopicsResponse { func (mr *MockDeleteTopicsResponse) For(reqBody versionedDecoder) encoderWithHeader { req := reqBody.(*DeleteTopicsRequest) - res := &DeleteTopicsResponse{} + res := &DeleteTopicsResponse{Version: req.version()} res.TopicErrorCodes = make(map[string]KError) for _, topic := range req.Topics { - res.TopicErrorCodes[topic] = ErrNoError + res.TopicErrorCodes[topic] = mr.error } res.Version = req.Version return res } +func (mr *MockDeleteTopicsResponse) SetError(kerror KError) *MockDeleteTopicsResponse { + mr.error = kerror + return mr +} + type MockCreatePartitionsResponse struct { t TestReporter } @@ -696,7 +724,7 @@ func NewMockCreatePartitionsResponse(t TestReporter) *MockCreatePartitionsRespon func (mr *MockCreatePartitionsResponse) For(reqBody versionedDecoder) encoderWithHeader { req := reqBody.(*CreatePartitionsRequest) - res := &CreatePartitionsResponse{} + res := &CreatePartitionsResponse{Version: req.version()} res.TopicPartitionErrors = make(map[string]*TopicPartitionError) for topic := range req.TopicPartitions { @@ -724,7 +752,7 @@ func NewMockAlterPartitionReassignmentsResponse(t TestReporter) *MockAlterPartit func (mr *MockAlterPartitionReassignmentsResponse) For(reqBody versionedDecoder) encoderWithHeader { req := reqBody.(*AlterPartitionReassignmentsRequest) _ = req - res := &AlterPartitionReassignmentsResponse{} + res := &AlterPartitionReassignmentsResponse{Version: req.version()} return res } @@ -739,7 +767,7 @@ func NewMockListPartitionReassignmentsResponse(t TestReporter) *MockListPartitio func (mr *MockListPartitionReassignmentsResponse) For(reqBody versionedDecoder) encoderWithHeader { req := reqBody.(*ListPartitionReassignmentsRequest) _ = req - res := &ListPartitionReassignmentsResponse{} + res := &ListPartitionReassignmentsResponse{Version: req.version()} for topic, partitions := range req.blocks { for _, partition := range partitions { @@ -760,7 +788,7 @@ func NewMockDeleteRecordsResponse(t TestReporter) *MockDeleteRecordsResponse { func (mr *MockDeleteRecordsResponse) For(reqBody versionedDecoder) encoderWithHeader { req := reqBody.(*DeleteRecordsRequest) - res := &DeleteRecordsResponse{} + res := &DeleteRecordsResponse{Version: req.version()} res.Topics = make(map[string]*DeleteRecordsResponseTopic) for topic, deleteRecordRequestTopic := range req.Topics { @@ -906,7 +934,7 @@ func NewMockAlterConfigsResponse(t TestReporter) *MockAlterConfigsResponse { func (mr *MockAlterConfigsResponse) For(reqBody versionedDecoder) encoderWithHeader { req := reqBody.(*AlterConfigsRequest) - res := &AlterConfigsResponse{} + res := &AlterConfigsResponse{Version: req.version()} for _, r := range req.Resources { res.Resources = append(res.Resources, &AlterConfigsResourceResponse{ @@ -928,7 +956,7 @@ func NewMockAlterConfigsResponseWithErrorCode(t TestReporter) *MockAlterConfigsR func (mr *MockAlterConfigsResponseWithErrorCode) For(reqBody versionedDecoder) encoderWithHeader { req := reqBody.(*AlterConfigsRequest) - res := &AlterConfigsResponse{} + res := &AlterConfigsResponse{Version: req.version()} for _, r := range req.Resources { res.Resources = append(res.Resources, &AlterConfigsResourceResponse{ @@ -951,7 +979,7 @@ func NewMockIncrementalAlterConfigsResponse(t TestReporter) *MockIncrementalAlte func (mr *MockIncrementalAlterConfigsResponse) For(reqBody versionedDecoder) encoderWithHeader { req := reqBody.(*IncrementalAlterConfigsRequest) - res := &IncrementalAlterConfigsResponse{} + res := &IncrementalAlterConfigsResponse{Version: req.version()} for _, r := range req.Resources { res.Resources = append(res.Resources, &AlterConfigsResourceResponse{ @@ -973,7 +1001,7 @@ func NewMockIncrementalAlterConfigsResponseWithErrorCode(t TestReporter) *MockIn func (mr *MockIncrementalAlterConfigsResponseWithErrorCode) For(reqBody versionedDecoder) encoderWithHeader { req := reqBody.(*IncrementalAlterConfigsRequest) - res := &IncrementalAlterConfigsResponse{} + res := &IncrementalAlterConfigsResponse{Version: req.version()} for _, r := range req.Resources { res.Resources = append(res.Resources, &AlterConfigsResourceResponse{ @@ -996,7 +1024,7 @@ func NewMockCreateAclsResponse(t TestReporter) *MockCreateAclsResponse { func (mr *MockCreateAclsResponse) For(reqBody versionedDecoder) encoderWithHeader { req := reqBody.(*CreateAclsRequest) - res := &CreateAclsResponse{} + res := &CreateAclsResponse{Version: req.version()} for range req.AclCreations { res.AclCreationResponses = append(res.AclCreationResponses, &AclCreationResponse{Err: ErrNoError}) @@ -1014,7 +1042,7 @@ func NewMockCreateAclsResponseWithError(t TestReporter) *MockCreateAclsResponseE func (mr *MockCreateAclsResponseError) For(reqBody versionedDecoder) encoderWithHeader { req := reqBody.(*CreateAclsRequest) - res := &CreateAclsResponse{} + res := &CreateAclsResponse{Version: req.version()} for range req.AclCreations { res.AclCreationResponses = append(res.AclCreationResponses, &AclCreationResponse{Err: ErrInvalidRequest}) @@ -1032,7 +1060,7 @@ func NewMockListAclsResponse(t TestReporter) *MockListAclsResponse { func (mr *MockListAclsResponse) For(reqBody versionedDecoder) encoderWithHeader { req := reqBody.(*DescribeAclsRequest) - res := &DescribeAclsResponse{} + res := &DescribeAclsResponse{Version: req.version()} res.Err = ErrNoError acl := &ResourceAcls{} if req.ResourceName != nil { @@ -1075,11 +1103,12 @@ func NewMockSaslAuthenticateResponse(t TestReporter) *MockSaslAuthenticateRespon func (msar *MockSaslAuthenticateResponse) For(reqBody versionedDecoder) encoderWithHeader { req := reqBody.(*SaslAuthenticateRequest) - res := &SaslAuthenticateResponse{} - res.Version = req.Version - res.Err = msar.kerror - res.SaslAuthBytes = msar.saslAuthBytes - res.SessionLifetimeMs = msar.sessionLifetimeMs + res := &SaslAuthenticateResponse{ + Version: req.version(), + Err: msar.kerror, + SaslAuthBytes: msar.saslAuthBytes, + SessionLifetimeMs: msar.sessionLifetimeMs, + } return res } @@ -1113,7 +1142,8 @@ func NewMockSaslHandshakeResponse(t TestReporter) *MockSaslHandshakeResponse { } func (mshr *MockSaslHandshakeResponse) For(reqBody versionedDecoder) encoderWithHeader { - res := &SaslHandshakeResponse{} + req := reqBody.(*SaslHandshakeRequest) + res := &SaslHandshakeResponse{Version: req.version()} res.Err = mshr.kerror res.EnabledMechanisms = mshr.enabledMechanisms return res @@ -1135,7 +1165,7 @@ func NewMockDeleteAclsResponse(t TestReporter) *MockDeleteAclsResponse { func (mr *MockDeleteAclsResponse) For(reqBody versionedDecoder) encoderWithHeader { req := reqBody.(*DeleteAclsRequest) - res := &DeleteAclsResponse{} + res := &DeleteAclsResponse{Version: req.version()} for range req.Filters { response := &FilterResponse{Err: ErrNoError} @@ -1160,7 +1190,9 @@ func (m *MockDeleteGroupsResponse) SetDeletedGroups(groups []string) *MockDelete } func (m *MockDeleteGroupsResponse) For(reqBody versionedDecoder) encoderWithHeader { + req := reqBody.(*DeleteGroupsRequest) resp := &DeleteGroupsResponse{ + Version: req.version(), GroupErrorCodes: map[string]KError{}, } for _, group := range m.deletedGroups { @@ -1189,7 +1221,9 @@ func (m *MockDeleteOffsetResponse) SetDeletedOffset(errorCode KError, topic stri } func (m *MockDeleteOffsetResponse) For(reqBody versionedDecoder) encoderWithHeader { + req := reqBody.(*DeleteOffsetsRequest) resp := &DeleteOffsetsResponse{ + Version: req.version(), ErrorCode: m.errorCode, Errors: map[string]map[int32]KError{ m.topic: {m.partition: m.errorPartition}, @@ -1282,8 +1316,10 @@ func NewMockLeaveGroupResponse(t TestReporter) *MockLeaveGroupResponse { } func (m *MockLeaveGroupResponse) For(reqBody versionedDecoder) encoderWithHeader { + req := reqBody.(*LeaveGroupRequest) resp := &LeaveGroupResponse{ - Err: m.Err, + Version: req.version(), + Err: m.Err, } return resp } @@ -1305,7 +1341,9 @@ func NewMockSyncGroupResponse(t TestReporter) *MockSyncGroupResponse { } func (m *MockSyncGroupResponse) For(reqBody versionedDecoder) encoderWithHeader { + req := reqBody.(*SyncGroupRequest) resp := &SyncGroupResponse{ + Version: req.version(), Err: m.Err, MemberAssignment: m.MemberAssignment, } @@ -1337,7 +1375,10 @@ func NewMockHeartbeatResponse(t TestReporter) *MockHeartbeatResponse { } func (m *MockHeartbeatResponse) For(reqBody versionedDecoder) encoderWithHeader { - resp := &HeartbeatResponse{} + req := reqBody.(*HeartbeatRequest) + resp := &HeartbeatResponse{ + Version: req.version(), + } return resp } @@ -1382,7 +1423,9 @@ func (m *MockDescribeLogDirsResponse) SetLogDirs(logDirPath string, topicPartiti } func (m *MockDescribeLogDirsResponse) For(reqBody versionedDecoder) encoderWithHeader { + req := reqBody.(*DescribeLogDirsRequest) resp := &DescribeLogDirsResponse{ + Version: req.version(), LogDirs: m.logDirs, } return resp @@ -1424,3 +1467,43 @@ func (m *MockApiVersionsResponse) For(reqBody versionedDecoder) encoderWithHeade } return res } + +// MockInitProducerIDResponse is an `InitPorducerIDResponse` builder. +type MockInitProducerIDResponse struct { + producerID int64 + producerEpoch int16 + err KError + t TestReporter +} + +func NewMockInitProducerIDResponse(t TestReporter) *MockInitProducerIDResponse { + return &MockInitProducerIDResponse{ + t: t, + } +} + +func (m *MockInitProducerIDResponse) SetProducerID(id int) *MockInitProducerIDResponse { + m.producerID = int64(id) + return m +} + +func (m *MockInitProducerIDResponse) SetProducerEpoch(epoch int) *MockInitProducerIDResponse { + m.producerEpoch = int16(epoch) + return m +} + +func (m *MockInitProducerIDResponse) SetError(err KError) *MockInitProducerIDResponse { + m.err = err + return m +} + +func (m *MockInitProducerIDResponse) For(reqBody versionedDecoder) encoderWithHeader { + req := reqBody.(*InitProducerIDRequest) + res := &InitProducerIDResponse{ + Version: req.Version, + Err: m.err, + ProducerID: m.producerID, + ProducerEpoch: m.producerEpoch, + } + return res +} diff --git a/vendor/github.com/Shopify/sarama/offset_commit_request.go b/vendor/github.com/IBM/sarama/offset_commit_request.go similarity index 93% rename from vendor/github.com/Shopify/sarama/offset_commit_request.go rename to vendor/github.com/IBM/sarama/offset_commit_request.go index 5dd88220d..45d1977d4 100644 --- a/vendor/github.com/Shopify/sarama/offset_commit_request.go +++ b/vendor/github.com/IBM/sarama/offset_commit_request.go @@ -201,26 +201,34 @@ func (r *OffsetCommitRequest) headerVersion() int16 { return 1 } +func (r *OffsetCommitRequest) isValidVersion() bool { + return r.Version >= 0 && r.Version <= 7 +} + func (r *OffsetCommitRequest) requiredVersion() KafkaVersion { switch r.Version { - case 1: - return V0_8_2_0 - case 2: - return V0_9_0_0 - case 3: - return V0_11_0_0 - case 4: - return V2_0_0_0 - case 5, 6: - return V2_1_0_0 case 7: return V2_3_0_0 + case 5, 6: + return V2_1_0_0 + case 4: + return V2_0_0_0 + case 3: + return V0_11_0_0 + case 2: + return V0_9_0_0 + case 0, 1: + return V0_8_2_0 default: - return MinVersion + return V2_4_0_0 } } -func (r *OffsetCommitRequest) AddBlock(topic string, partitionID int32, offset int64, leaderEpoch int32, timestamp int64, metadata string) { +func (r *OffsetCommitRequest) AddBlock(topic string, partitionID int32, offset int64, timestamp int64, metadata string) { + r.AddBlockWithLeaderEpoch(topic, partitionID, offset, 0, timestamp, metadata) +} + +func (r *OffsetCommitRequest) AddBlockWithLeaderEpoch(topic string, partitionID int32, offset int64, leaderEpoch int32, timestamp int64, metadata string) { if r.blocks == nil { r.blocks = make(map[string]map[int32]*offsetCommitRequestBlock) } diff --git a/vendor/github.com/Shopify/sarama/offset_commit_response.go b/vendor/github.com/IBM/sarama/offset_commit_response.go similarity index 87% rename from vendor/github.com/Shopify/sarama/offset_commit_response.go rename to vendor/github.com/IBM/sarama/offset_commit_response.go index 4bed269aa..523508fa4 100644 --- a/vendor/github.com/Shopify/sarama/offset_commit_response.go +++ b/vendor/github.com/IBM/sarama/offset_commit_response.go @@ -1,5 +1,7 @@ package sarama +import "time" + type OffsetCommitResponse struct { Version int16 ThrottleTimeMs int32 @@ -98,19 +100,29 @@ func (r *OffsetCommitResponse) headerVersion() int16 { return 0 } +func (r *OffsetCommitResponse) isValidVersion() bool { + return r.Version >= 0 && r.Version <= 7 +} + func (r *OffsetCommitResponse) requiredVersion() KafkaVersion { switch r.Version { - case 1: - return V0_8_2_0 - case 2: - return V0_9_0_0 - case 3: - return V0_11_0_0 + case 7: + return V2_3_0_0 + case 5, 6: + return V2_1_0_0 case 4: return V2_0_0_0 - case 5, 6, 7: - return V2_3_0_0 + case 3: + return V0_11_0_0 + case 2: + return V0_9_0_0 + case 0, 1: + return V0_8_2_0 default: - return MinVersion + return V2_4_0_0 } } + +func (r *OffsetCommitResponse) throttleTime() time.Duration { + return time.Duration(r.ThrottleTimeMs) * time.Millisecond +} diff --git a/vendor/github.com/Shopify/sarama/offset_fetch_request.go b/vendor/github.com/IBM/sarama/offset_fetch_request.go similarity index 73% rename from vendor/github.com/Shopify/sarama/offset_fetch_request.go rename to vendor/github.com/IBM/sarama/offset_fetch_request.go index 7e147eb60..0c9b8405b 100644 --- a/vendor/github.com/Shopify/sarama/offset_fetch_request.go +++ b/vendor/github.com/IBM/sarama/offset_fetch_request.go @@ -7,6 +7,43 @@ type OffsetFetchRequest struct { partitions map[string][]int32 } +func NewOffsetFetchRequest( + version KafkaVersion, + group string, + partitions map[string][]int32, +) *OffsetFetchRequest { + request := &OffsetFetchRequest{ + ConsumerGroup: group, + partitions: partitions, + } + if version.IsAtLeast(V2_5_0_0) { + // Version 7 is adding the require stable flag. + request.Version = 7 + } else if version.IsAtLeast(V2_4_0_0) { + // Version 6 is the first flexible version. + request.Version = 6 + } else if version.IsAtLeast(V2_1_0_0) { + // Version 3, 4, and 5 are the same as version 2. + request.Version = 5 + } else if version.IsAtLeast(V2_0_0_0) { + request.Version = 4 + } else if version.IsAtLeast(V0_11_0_0) { + request.Version = 3 + } else if version.IsAtLeast(V0_10_2_0) { + // Starting in version 2, the request can contain a null topics array to indicate that offsets + // for all topics should be fetched. It also returns a top level error code + // for group or coordinator level errors. + request.Version = 2 + } else if version.IsAtLeast(V0_8_2_0) { + // In version 0, the request read offsets from ZK. + // + // Starting in version 1, the broker supports fetching offsets from the internal __consumer_offsets topic. + request.Version = 1 + } + + return request +} + func (r *OffsetFetchRequest) encode(pe packetEncoder) (err error) { if r.Version < 0 || r.Version > 7 { return PacketEncodingError{"invalid or unsupported OffsetFetchRequest version field"} @@ -171,24 +208,30 @@ func (r *OffsetFetchRequest) headerVersion() int16 { return 1 } +func (r *OffsetFetchRequest) isValidVersion() bool { + return r.Version >= 0 && r.Version <= 7 +} + func (r *OffsetFetchRequest) requiredVersion() KafkaVersion { switch r.Version { - case 1: - return V0_8_2_0 - case 2: - return V0_10_2_0 - case 3: - return V0_11_0_0 - case 4: - return V2_0_0_0 - case 5: - return V2_1_0_0 - case 6: - return V2_4_0_0 case 7: return V2_5_0_0 + case 6: + return V2_4_0_0 + case 5: + return V2_1_0_0 + case 4: + return V2_0_0_0 + case 3: + return V0_11_0_0 + case 2: + return V0_10_2_0 + case 1: + return V0_8_2_0 + case 0: + return V0_8_2_0 default: - return MinVersion + return V2_5_0_0 } } diff --git a/vendor/github.com/Shopify/sarama/offset_fetch_response.go b/vendor/github.com/IBM/sarama/offset_fetch_response.go similarity index 94% rename from vendor/github.com/Shopify/sarama/offset_fetch_response.go rename to vendor/github.com/IBM/sarama/offset_fetch_response.go index 19449220f..7ce7927d8 100644 --- a/vendor/github.com/Shopify/sarama/offset_fetch_response.go +++ b/vendor/github.com/IBM/sarama/offset_fetch_response.go @@ -1,5 +1,7 @@ package sarama +import "time" + type OffsetFetchResponseBlock struct { Offset int64 LeaderEpoch int32 @@ -20,6 +22,8 @@ func (b *OffsetFetchResponseBlock) decode(pd packetDecoder, version int16) (err if err != nil { return err } + } else { + b.LeaderEpoch = -1 } if isFlexible { @@ -234,27 +238,37 @@ func (r *OffsetFetchResponse) headerVersion() int16 { return 0 } +func (r *OffsetFetchResponse) isValidVersion() bool { + return r.Version >= 0 && r.Version <= 7 +} + func (r *OffsetFetchResponse) requiredVersion() KafkaVersion { switch r.Version { - case 1: - return V0_8_2_0 - case 2: - return V0_10_2_0 - case 3: - return V0_11_0_0 - case 4: - return V2_0_0_0 - case 5: - return V2_1_0_0 - case 6: - return V2_4_0_0 case 7: return V2_5_0_0 + case 6: + return V2_4_0_0 + case 5: + return V2_1_0_0 + case 4: + return V2_0_0_0 + case 3: + return V0_11_0_0 + case 2: + return V0_10_2_0 + case 1: + return V0_8_2_0 + case 0: + return V0_8_2_0 default: - return MinVersion + return V2_5_0_0 } } +func (r *OffsetFetchResponse) throttleTime() time.Duration { + return time.Duration(r.ThrottleTimeMs) * time.Millisecond +} + func (r *OffsetFetchResponse) GetBlock(topic string, partition int32) *OffsetFetchResponseBlock { if r.Blocks == nil { return nil diff --git a/vendor/github.com/Shopify/sarama/offset_manager.go b/vendor/github.com/IBM/sarama/offset_manager.go similarity index 88% rename from vendor/github.com/Shopify/sarama/offset_manager.go rename to vendor/github.com/IBM/sarama/offset_manager.go index 1ea15ff93..1bf545908 100644 --- a/vendor/github.com/Shopify/sarama/offset_manager.go +++ b/vendor/github.com/IBM/sarama/offset_manager.go @@ -153,11 +153,8 @@ func (om *offsetManager) fetchInitialOffset(topic string, partition int32, retri return om.fetchInitialOffset(topic, partition, retries-1) } - req := new(OffsetFetchRequest) - req.Version = 1 - req.ConsumerGroup = om.group - req.AddPartition(topic, partition) - + partitions := map[string][]int32{topic: {partition}} + req := NewOffsetFetchRequest(om.conf.Version, om.group, partitions) resp, err := broker.FetchOffset(req) if err != nil { if retries <= 0 { @@ -277,23 +274,53 @@ func (om *offsetManager) flushToBroker() { } func (om *offsetManager) constructRequest() *OffsetCommitRequest { - var r *OffsetCommitRequest - var perPartitionTimestamp int64 - if om.conf.Consumer.Offsets.Retention == 0 { - perPartitionTimestamp = ReceiveTime - r = &OffsetCommitRequest{ - Version: 1, - ConsumerGroup: om.group, - ConsumerID: om.memberID, - ConsumerGroupGeneration: om.generation, - } - } else { - r = &OffsetCommitRequest{ - Version: 2, - RetentionTime: int64(om.conf.Consumer.Offsets.Retention / time.Millisecond), - ConsumerGroup: om.group, - ConsumerID: om.memberID, - ConsumerGroupGeneration: om.generation, + r := &OffsetCommitRequest{ + Version: 1, + ConsumerGroup: om.group, + ConsumerID: om.memberID, + ConsumerGroupGeneration: om.generation, + } + // Version 1 adds timestamp and group membership information, as well as the commit timestamp. + // + // Version 2 adds retention time. It removes the commit timestamp added in version 1. + if om.conf.Version.IsAtLeast(V0_9_0_0) { + r.Version = 2 + } + // Version 3 and 4 are the same as version 2. + if om.conf.Version.IsAtLeast(V0_11_0_0) { + r.Version = 3 + } + if om.conf.Version.IsAtLeast(V2_0_0_0) { + r.Version = 4 + } + // Version 5 removes the retention time, which is now controlled only by a broker configuration. + // + // Version 6 adds the leader epoch for fencing. + if om.conf.Version.IsAtLeast(V2_1_0_0) { + r.Version = 6 + } + // version 7 adds a new field called groupInstanceId to indicate member identity across restarts. + if om.conf.Version.IsAtLeast(V2_3_0_0) { + r.Version = 7 + r.GroupInstanceId = om.groupInstanceId + } + + // commit timestamp was only briefly supported in V1 where we set it to + // ReceiveTime (-1) to tell the broker to set it to the time when the commit + // request was received + var commitTimestamp int64 + if r.Version == 1 { + commitTimestamp = ReceiveTime + } + + // request controlled retention was only supported from V2-V4 (it became + // broker-only after that) so if the user has set the config options then + // flow those through as retention time on the commit request. + if r.Version >= 2 && r.Version < 5 { + // Map Sarama's default of 0 to Kafka's default of -1 + r.RetentionTime = -1 + if om.conf.Consumer.Offsets.Retention > 0 { + r.RetentionTime = int64(om.conf.Consumer.Offsets.Retention / time.Millisecond) } } @@ -304,17 +331,12 @@ func (om *offsetManager) constructRequest() *OffsetCommitRequest { for _, pom := range topicManagers { pom.lock.Lock() if pom.dirty { - r.AddBlock(pom.topic, pom.partition, pom.offset, pom.leaderEpoch, perPartitionTimestamp, pom.metadata) + r.AddBlockWithLeaderEpoch(pom.topic, pom.partition, pom.offset, pom.leaderEpoch, commitTimestamp, pom.metadata) } pom.lock.Unlock() } } - if om.groupInstanceId != nil { - r.Version = 7 - r.GroupInstanceId = om.groupInstanceId - } - if len(r.blocks) > 0 { return r } @@ -359,13 +381,13 @@ func (om *offsetManager) handleResponse(broker *Broker, req *OffsetCommitRequest // nothing wrong but we didn't commit, we'll get it next time round case ErrFencedInstancedId: pom.handleError(err) - // TODO close the whole consumer for instacne fenced.... + // TODO close the whole consumer for instance fenced.... om.tryCancelSession() case ErrUnknownTopicOrPartition: // let the user know *and* try redispatching - if topic-auto-create is // enabled, redispatching should trigger a metadata req and create the // topic; if not then re-dispatching won't help, but we've let the user - // know and it shouldn't hurt either (see https://github.com/Shopify/sarama/issues/706) + // know and it shouldn't hurt either (see https://github.com/IBM/sarama/issues/706) fallthrough default: // dunno, tell the user and try redispatching diff --git a/vendor/github.com/Shopify/sarama/offset_request.go b/vendor/github.com/IBM/sarama/offset_request.go similarity index 76% rename from vendor/github.com/Shopify/sarama/offset_request.go rename to vendor/github.com/IBM/sarama/offset_request.go index 4c9ce4df5..13de0a89f 100644 --- a/vendor/github.com/Shopify/sarama/offset_request.go +++ b/vendor/github.com/IBM/sarama/offset_request.go @@ -1,28 +1,46 @@ package sarama type offsetRequestBlock struct { - time int64 - maxOffsets int32 // Only used in version 0 + // currentLeaderEpoch contains the current leader epoch (used in version 4+). + currentLeaderEpoch int32 + // timestamp contains the current timestamp. + timestamp int64 + // maxNumOffsets contains the maximum number of offsets to report. + maxNumOffsets int32 // Only used in version 0 } func (b *offsetRequestBlock) encode(pe packetEncoder, version int16) error { - pe.putInt64(b.time) + if version >= 4 { + pe.putInt32(b.currentLeaderEpoch) + } + + pe.putInt64(b.timestamp) + if version == 0 { - pe.putInt32(b.maxOffsets) + pe.putInt32(b.maxNumOffsets) } return nil } func (b *offsetRequestBlock) decode(pd packetDecoder, version int16) (err error) { - if b.time, err = pd.getInt64(); err != nil { + b.currentLeaderEpoch = -1 + if version >= 4 { + if b.currentLeaderEpoch, err = pd.getInt32(); err != nil { + return err + } + } + + if b.timestamp, err = pd.getInt64(); err != nil { return err } + if version == 0 { - if b.maxOffsets, err = pd.getInt32(); err != nil { + if b.maxNumOffsets, err = pd.getInt32(); err != nil { return err } } + return nil } @@ -137,14 +155,24 @@ func (r *OffsetRequest) headerVersion() int16 { return 1 } +func (r *OffsetRequest) isValidVersion() bool { + return r.Version >= 0 && r.Version <= 4 +} + func (r *OffsetRequest) requiredVersion() KafkaVersion { switch r.Version { - case 1: - return V0_10_1_0 + case 4: + return V2_1_0_0 + case 3: + return V2_0_0_0 case 2: return V0_11_0_0 + case 1: + return V0_10_1_0 + case 0: + return V0_8_2_0 default: - return MinVersion + return V2_0_0_0 } } @@ -160,7 +188,7 @@ func (r *OffsetRequest) ReplicaID() int32 { return -1 } -func (r *OffsetRequest) AddBlock(topic string, partitionID int32, time int64, maxOffsets int32) { +func (r *OffsetRequest) AddBlock(topic string, partitionID int32, timestamp int64, maxOffsets int32) { if r.blocks == nil { r.blocks = make(map[string]map[int32]*offsetRequestBlock) } @@ -170,9 +198,10 @@ func (r *OffsetRequest) AddBlock(topic string, partitionID int32, time int64, ma } tmp := new(offsetRequestBlock) - tmp.time = time + tmp.currentLeaderEpoch = -1 + tmp.timestamp = timestamp if r.Version == 0 { - tmp.maxOffsets = maxOffsets + tmp.maxNumOffsets = maxOffsets } r.blocks[topic][partitionID] = tmp diff --git a/vendor/github.com/Shopify/sarama/offset_response.go b/vendor/github.com/IBM/sarama/offset_response.go similarity index 73% rename from vendor/github.com/Shopify/sarama/offset_response.go rename to vendor/github.com/IBM/sarama/offset_response.go index ffe84664c..6c62e0791 100644 --- a/vendor/github.com/Shopify/sarama/offset_response.go +++ b/vendor/github.com/IBM/sarama/offset_response.go @@ -1,10 +1,17 @@ package sarama +import "time" + type OffsetResponseBlock struct { - Err KError - Offsets []int64 // Version 0 - Offset int64 // Version 1 - Timestamp int64 // Version 1 + Err KError + // Offsets contains the result offsets (for V0/V1 compatibility) + Offsets []int64 // Version 0 + // Timestamp contains the timestamp associated with the returned offset. + Timestamp int64 // Version 1 + // Offset contains the returned offset. + Offset int64 // Version 1 + // LeaderEpoch contains the current leader epoch of the partition. + LeaderEpoch int32 } func (b *OffsetResponseBlock) decode(pd packetDecoder, version int16) (err error) { @@ -16,22 +23,29 @@ func (b *OffsetResponseBlock) decode(pd packetDecoder, version int16) (err error if version == 0 { b.Offsets, err = pd.getInt64Array() - return err } - b.Timestamp, err = pd.getInt64() - if err != nil { - return err - } + if version >= 1 { + b.Timestamp, err = pd.getInt64() + if err != nil { + return err + } - b.Offset, err = pd.getInt64() - if err != nil { - return err + b.Offset, err = pd.getInt64() + if err != nil { + return err + } + + // For backwards compatibility put the offset in the offsets array too + b.Offsets = []int64{b.Offset} } - // For backwards compatibility put the offset in the offsets array too - b.Offsets = []int64{b.Offset} + if version >= 4 { + if b.LeaderEpoch, err = pd.getInt32(); err != nil { + return err + } + } return nil } @@ -43,8 +57,14 @@ func (b *OffsetResponseBlock) encode(pe packetEncoder, version int16) (err error return pe.putInt64Array(b.Offsets) } - pe.putInt64(b.Timestamp) - pe.putInt64(b.Offset) + if version >= 1 { + pe.putInt64(b.Timestamp) + pe.putInt64(b.Offset) + } + + if version >= 4 { + pe.putInt32(b.LeaderEpoch) + } return nil } @@ -165,17 +185,31 @@ func (r *OffsetResponse) headerVersion() int16 { return 0 } +func (r *OffsetResponse) isValidVersion() bool { + return r.Version >= 0 && r.Version <= 4 +} + func (r *OffsetResponse) requiredVersion() KafkaVersion { switch r.Version { - case 1: - return V0_10_1_0 + case 4: + return V2_1_0_0 + case 3: + return V2_0_0_0 case 2: return V0_11_0_0 + case 1: + return V0_10_1_0 + case 0: + return V0_8_2_0 default: - return MinVersion + return V2_0_0_0 } } +func (r *OffsetResponse) throttleTime() time.Duration { + return time.Duration(r.ThrottleTimeMs) * time.Millisecond +} + // testing API func (r *OffsetResponse) AddTopicPartition(topic string, partition int32, offset int64) { diff --git a/vendor/github.com/Shopify/sarama/packet_decoder.go b/vendor/github.com/IBM/sarama/packet_decoder.go similarity index 98% rename from vendor/github.com/Shopify/sarama/packet_decoder.go rename to vendor/github.com/IBM/sarama/packet_decoder.go index b8cae5350..526e0f42f 100644 --- a/vendor/github.com/Shopify/sarama/packet_decoder.go +++ b/vendor/github.com/IBM/sarama/packet_decoder.go @@ -55,7 +55,7 @@ type pushDecoder interface { // Saves the offset into the input buffer as the location to actually read the calculated value when able. saveOffset(in int) - // Returns the length of data to reserve for the input of this encoder (eg 4 bytes for a CRC32). + // Returns the length of data to reserve for the input of this encoder (e.g. 4 bytes for a CRC32). reserveLength() int // Indicates that all required data is now available to calculate and check the field. diff --git a/vendor/github.com/Shopify/sarama/packet_encoder.go b/vendor/github.com/IBM/sarama/packet_encoder.go similarity index 100% rename from vendor/github.com/Shopify/sarama/packet_encoder.go rename to vendor/github.com/IBM/sarama/packet_encoder.go diff --git a/vendor/github.com/Shopify/sarama/partitioner.go b/vendor/github.com/IBM/sarama/partitioner.go similarity index 86% rename from vendor/github.com/Shopify/sarama/partitioner.go rename to vendor/github.com/IBM/sarama/partitioner.go index 57377760a..50a345a3e 100644 --- a/vendor/github.com/Shopify/sarama/partitioner.go +++ b/vendor/github.com/IBM/sarama/partitioner.go @@ -2,6 +2,7 @@ package sarama import ( "hash" + "hash/crc32" "hash/fnv" "math/rand" "time" @@ -53,6 +54,15 @@ func WithAbsFirst() HashPartitionerOption { } } +// WithHashUnsigned means the partitioner treats the hashed value as unsigned when +// partitioning. This is intended to be combined with the crc32 hash algorithm to +// be compatible with librdkafka's implementation +func WithHashUnsigned() HashPartitionerOption { + return func(hp *hashPartitioner) { + hp.hashUnsigned = true + } +} + // WithCustomHashFunction lets you specify what hash function to use for the partitioning func WithCustomHashFunction(hasher func() hash.Hash32) HashPartitionerOption { return func(hp *hashPartitioner) { @@ -126,6 +136,7 @@ type hashPartitioner struct { random Partitioner hasher hash.Hash32 referenceAbs bool + hashUnsigned bool } // NewCustomHashPartitioner is a wrapper around NewHashPartitioner, allowing the use of custom hasher. @@ -137,6 +148,7 @@ func NewCustomHashPartitioner(hasher func() hash.Hash32) PartitionerConstructor p.random = NewRandomPartitioner(topic) p.hasher = hasher() p.referenceAbs = false + p.hashUnsigned = false return p } } @@ -148,6 +160,7 @@ func NewCustomPartitioner(options ...HashPartitionerOption) PartitionerConstruct p.random = NewRandomPartitioner(topic) p.hasher = fnv.New32a() p.referenceAbs = false + p.hashUnsigned = false for _, option := range options { option(p) } @@ -164,6 +177,7 @@ func NewHashPartitioner(topic string) Partitioner { p.random = NewRandomPartitioner(topic) p.hasher = fnv.New32a() p.referenceAbs = false + p.hashUnsigned = false return p } @@ -176,6 +190,19 @@ func NewReferenceHashPartitioner(topic string) Partitioner { p.random = NewRandomPartitioner(topic) p.hasher = fnv.New32a() p.referenceAbs = true + p.hashUnsigned = false + return p +} + +// NewConsistentCRCHashPartitioner is like NewHashPartitioner execpt that it uses the *unsigned* crc32 hash +// of the encoded bytes of the message key modulus the number of partitions. This is compatible with +// librdkafka's `consistent_random` partitioner +func NewConsistentCRCHashPartitioner(topic string) Partitioner { + p := new(hashPartitioner) + p.random = NewRandomPartitioner(topic) + p.hasher = crc32.NewIEEE() + p.referenceAbs = false + p.hashUnsigned = true return p } @@ -199,6 +226,10 @@ func (p *hashPartitioner) Partition(message *ProducerMessage, numPartitions int3 // but not past Sarama versions if p.referenceAbs { partition = (int32(p.hasher.Sum32()) & 0x7fffffff) % numPartitions + } else if p.hashUnsigned { + // librdkafka treats the hashed value as unsigned. If `hashUnsigned` is set we are compatible + // with librdkafka's `consistent` partitioning but not past Sarama versions + partition = int32(p.hasher.Sum32() % uint32(numPartitions)) } else { partition = int32(p.hasher.Sum32()) % numPartitions if partition < 0 { diff --git a/vendor/github.com/Shopify/sarama/prep_encoder.go b/vendor/github.com/IBM/sarama/prep_encoder.go similarity index 100% rename from vendor/github.com/Shopify/sarama/prep_encoder.go rename to vendor/github.com/IBM/sarama/prep_encoder.go diff --git a/vendor/github.com/Shopify/sarama/produce_request.go b/vendor/github.com/IBM/sarama/produce_request.go similarity index 95% rename from vendor/github.com/Shopify/sarama/produce_request.go rename to vendor/github.com/IBM/sarama/produce_request.go index 0034651e2..cbe58dd82 100644 --- a/vendor/github.com/Shopify/sarama/produce_request.go +++ b/vendor/github.com/IBM/sarama/produce_request.go @@ -29,7 +29,8 @@ type ProduceRequest struct { } func updateMsgSetMetrics(msgSet *MessageSet, compressionRatioMetric metrics.Histogram, - topicCompressionRatioMetric metrics.Histogram) int64 { + topicCompressionRatioMetric metrics.Histogram, +) int64 { var topicRecordCount int64 for _, messageBlock := range msgSet.Messages { // Is this a fake "message" wrapping real messages? @@ -53,7 +54,8 @@ func updateMsgSetMetrics(msgSet *MessageSet, compressionRatioMetric metrics.Hist } func updateBatchMetrics(recordBatch *RecordBatch, compressionRatioMetric metrics.Histogram, - topicCompressionRatioMetric metrics.Histogram) int64 { + topicCompressionRatioMetric metrics.Histogram, +) int64 { if recordBatch.compressedRecords != nil { compressionRatio := int64(float64(recordBatch.recordsLen) / float64(len(recordBatch.compressedRecords)) * 100) compressionRatioMetric.Update(compressionRatio) @@ -210,18 +212,28 @@ func (r *ProduceRequest) headerVersion() int16 { return 1 } +func (r *ProduceRequest) isValidVersion() bool { + return r.Version >= 0 && r.Version <= 7 +} + func (r *ProduceRequest) requiredVersion() KafkaVersion { switch r.Version { - case 1: - return V0_9_0_0 - case 2: - return V0_10_0_0 - case 3: - return V0_11_0_0 case 7: return V2_1_0_0 + case 6: + return V2_0_0_0 + case 4, 5: + return V1_0_0_0 + case 3: + return V0_11_0_0 + case 2: + return V0_10_0_0 + case 1: + return V0_9_0_0 + case 0: + return V0_8_2_0 default: - return MinVersion + return V2_1_0_0 } } diff --git a/vendor/github.com/Shopify/sarama/produce_response.go b/vendor/github.com/IBM/sarama/produce_response.go similarity index 91% rename from vendor/github.com/Shopify/sarama/produce_response.go rename to vendor/github.com/IBM/sarama/produce_response.go index edf978790..de53e06a0 100644 --- a/vendor/github.com/Shopify/sarama/produce_response.go +++ b/vendor/github.com/IBM/sarama/produce_response.go @@ -175,8 +175,33 @@ func (r *ProduceResponse) headerVersion() int16 { return 0 } +func (r *ProduceResponse) isValidVersion() bool { + return r.Version >= 0 && r.Version <= 7 +} + func (r *ProduceResponse) requiredVersion() KafkaVersion { - return MinVersion + switch r.Version { + case 7: + return V2_1_0_0 + case 6: + return V2_0_0_0 + case 4, 5: + return V1_0_0_0 + case 3: + return V0_11_0_0 + case 2: + return V0_10_0_0 + case 1: + return V0_9_0_0 + case 0: + return V0_8_2_0 + default: + return V2_1_0_0 + } +} + +func (r *ProduceResponse) throttleTime() time.Duration { + return r.ThrottleTime } func (r *ProduceResponse) GetBlock(topic string, partition int32) *ProduceResponseBlock { diff --git a/vendor/github.com/Shopify/sarama/produce_set.go b/vendor/github.com/IBM/sarama/produce_set.go similarity index 97% rename from vendor/github.com/Shopify/sarama/produce_set.go rename to vendor/github.com/IBM/sarama/produce_set.go index 8d6980479..004fc6490 100644 --- a/vendor/github.com/Shopify/sarama/produce_set.go +++ b/vendor/github.com/IBM/sarama/produce_set.go @@ -141,8 +141,13 @@ func (ps *produceSet) buildRequest() *ProduceRequest { req.TransactionalID = &ps.parent.conf.Producer.Transaction.ID } } - - if ps.parent.conf.Producer.Compression == CompressionZSTD && ps.parent.conf.Version.IsAtLeast(V2_1_0_0) { + if ps.parent.conf.Version.IsAtLeast(V1_0_0_0) { + req.Version = 5 + } + if ps.parent.conf.Version.IsAtLeast(V2_0_0_0) { + req.Version = 6 + } + if ps.parent.conf.Version.IsAtLeast(V2_1_0_0) { req.Version = 7 } diff --git a/vendor/github.com/Shopify/sarama/quota_types.go b/vendor/github.com/IBM/sarama/quota_types.go similarity index 100% rename from vendor/github.com/Shopify/sarama/quota_types.go rename to vendor/github.com/IBM/sarama/quota_types.go diff --git a/vendor/github.com/Shopify/sarama/real_decoder.go b/vendor/github.com/IBM/sarama/real_decoder.go similarity index 100% rename from vendor/github.com/Shopify/sarama/real_decoder.go rename to vendor/github.com/IBM/sarama/real_decoder.go diff --git a/vendor/github.com/Shopify/sarama/real_encoder.go b/vendor/github.com/IBM/sarama/real_encoder.go similarity index 100% rename from vendor/github.com/Shopify/sarama/real_encoder.go rename to vendor/github.com/IBM/sarama/real_encoder.go diff --git a/vendor/github.com/Shopify/sarama/record.go b/vendor/github.com/IBM/sarama/record.go similarity index 100% rename from vendor/github.com/Shopify/sarama/record.go rename to vendor/github.com/IBM/sarama/record.go diff --git a/vendor/github.com/Shopify/sarama/record_batch.go b/vendor/github.com/IBM/sarama/record_batch.go similarity index 95% rename from vendor/github.com/Shopify/sarama/record_batch.go rename to vendor/github.com/IBM/sarama/record_batch.go index d382ca488..c422c5c2f 100644 --- a/vendor/github.com/Shopify/sarama/record_batch.go +++ b/vendor/github.com/IBM/sarama/record_batch.go @@ -20,12 +20,12 @@ func (e recordsArray) encode(pe packetEncoder) error { } func (e recordsArray) decode(pd packetDecoder) error { + records := make([]Record, len(e)) for i := range e { - rec := &Record{} - if err := rec.decode(pd); err != nil { + if err := records[i].decode(pd); err != nil { return err } - e[i] = rec + e[i] = &records[i] } return nil } @@ -58,7 +58,7 @@ func (b *RecordBatch) LastOffset() int64 { func (b *RecordBatch) encode(pe packetEncoder) error { if b.Version != 2 { - return PacketEncodingError{fmt.Sprintf("unsupported compression codec (%d)", b.Codec)} + return PacketEncodingError{fmt.Sprintf("unsupported record batch version (%d)", b.Version)} } pe.putInt64(b.FirstOffset) pe.push(&lengthField{}) diff --git a/vendor/github.com/Shopify/sarama/records.go b/vendor/github.com/IBM/sarama/records.go similarity index 100% rename from vendor/github.com/Shopify/sarama/records.go rename to vendor/github.com/IBM/sarama/records.go diff --git a/vendor/github.com/Shopify/sarama/request.go b/vendor/github.com/IBM/sarama/request.go similarity index 52% rename from vendor/github.com/Shopify/sarama/request.go rename to vendor/github.com/IBM/sarama/request.go index 1e3923de7..e8e74ca34 100644 --- a/vendor/github.com/Shopify/sarama/request.go +++ b/vendor/github.com/IBM/sarama/request.go @@ -12,6 +12,7 @@ type protocolBody interface { key() int16 version() int16 headerVersion() int16 + isValidVersion() bool requiredVersion() KafkaVersion } @@ -119,85 +120,114 @@ func decodeRequest(r io.Reader) (*request, int, error) { func allocateBody(key, version int16) protocolBody { switch key { case 0: - return &ProduceRequest{} + return &ProduceRequest{Version: version} case 1: return &FetchRequest{Version: version} case 2: return &OffsetRequest{Version: version} case 3: return &MetadataRequest{Version: version} + // 4: LeaderAndIsrRequest + // 5: StopReplicaRequest + // 6: UpdateMetadataRequest + // 7: ControlledShutdownRequest case 8: return &OffsetCommitRequest{Version: version} case 9: return &OffsetFetchRequest{Version: version} case 10: - return &FindCoordinatorRequest{} + return &FindCoordinatorRequest{Version: version} case 11: - return &JoinGroupRequest{} + return &JoinGroupRequest{Version: version} case 12: - return &HeartbeatRequest{} + return &HeartbeatRequest{Version: version} case 13: - return &LeaveGroupRequest{} + return &LeaveGroupRequest{Version: version} case 14: - return &SyncGroupRequest{} + return &SyncGroupRequest{Version: version} case 15: - return &DescribeGroupsRequest{} + return &DescribeGroupsRequest{Version: version} case 16: - return &ListGroupsRequest{} + return &ListGroupsRequest{Version: version} case 17: - return &SaslHandshakeRequest{} + return &SaslHandshakeRequest{Version: version} case 18: return &ApiVersionsRequest{Version: version} case 19: - return &CreateTopicsRequest{} + return &CreateTopicsRequest{Version: version} case 20: - return &DeleteTopicsRequest{} + return &DeleteTopicsRequest{Version: version} case 21: - return &DeleteRecordsRequest{} + return &DeleteRecordsRequest{Version: version} case 22: return &InitProducerIDRequest{Version: version} + // 23: OffsetForLeaderEpochRequest case 24: - return &AddPartitionsToTxnRequest{} + return &AddPartitionsToTxnRequest{Version: version} case 25: - return &AddOffsetsToTxnRequest{} + return &AddOffsetsToTxnRequest{Version: version} case 26: - return &EndTxnRequest{} + return &EndTxnRequest{Version: version} + // 27: WriteTxnMarkersRequest case 28: - return &TxnOffsetCommitRequest{} + return &TxnOffsetCommitRequest{Version: version} case 29: - return &DescribeAclsRequest{} + return &DescribeAclsRequest{Version: int(version)} case 30: - return &CreateAclsRequest{} + return &CreateAclsRequest{Version: version} case 31: - return &DeleteAclsRequest{} + return &DeleteAclsRequest{Version: int(version)} case 32: - return &DescribeConfigsRequest{} + return &DescribeConfigsRequest{Version: version} case 33: - return &AlterConfigsRequest{} + return &AlterConfigsRequest{Version: version} + // 34: AlterReplicaLogDirsRequest case 35: - return &DescribeLogDirsRequest{} + return &DescribeLogDirsRequest{Version: version} case 36: - return &SaslAuthenticateRequest{} + return &SaslAuthenticateRequest{Version: version} case 37: - return &CreatePartitionsRequest{} + return &CreatePartitionsRequest{Version: version} + // 38: CreateDelegationTokenRequest + // 39: RenewDelegationTokenRequest + // 40: ExpireDelegationTokenRequest + // 41: DescribeDelegationTokenRequest case 42: - return &DeleteGroupsRequest{} + return &DeleteGroupsRequest{Version: version} + // 43: ElectLeadersRequest case 44: - return &IncrementalAlterConfigsRequest{} + return &IncrementalAlterConfigsRequest{Version: version} case 45: - return &AlterPartitionReassignmentsRequest{} + return &AlterPartitionReassignmentsRequest{Version: version} case 46: - return &ListPartitionReassignmentsRequest{} + return &ListPartitionReassignmentsRequest{Version: version} case 47: - return &DeleteOffsetsRequest{} + return &DeleteOffsetsRequest{Version: version} case 48: - return &DescribeClientQuotasRequest{} + return &DescribeClientQuotasRequest{Version: version} case 49: - return &AlterClientQuotasRequest{} + return &AlterClientQuotasRequest{Version: version} case 50: - return &DescribeUserScramCredentialsRequest{} + return &DescribeUserScramCredentialsRequest{Version: version} case 51: - return &AlterUserScramCredentialsRequest{} + return &AlterUserScramCredentialsRequest{Version: version} + // 52: VoteRequest + // 53: BeginQuorumEpochRequest + // 54: EndQuorumEpochRequest + // 55: DescribeQuorumRequest + // 56: AlterPartitionRequest + // 57: UpdateFeaturesRequest + // 58: EnvelopeRequest + // 59: FetchSnapshotRequest + // 60: DescribeClusterRequest + // 61: DescribeProducersRequest + // 62: BrokerRegistrationRequest + // 63: BrokerHeartbeatRequest + // 64: UnregisterBrokerRequest + // 65: DescribeTransactionsRequest + // 66: ListTransactionsRequest + // 67: AllocateProducerIdsRequest + // 68: ConsumerGroupHeartbeatRequest } return nil } diff --git a/vendor/github.com/Shopify/sarama/response_header.go b/vendor/github.com/IBM/sarama/response_header.go similarity index 100% rename from vendor/github.com/Shopify/sarama/response_header.go rename to vendor/github.com/IBM/sarama/response_header.go diff --git a/vendor/github.com/Shopify/sarama/sarama.go b/vendor/github.com/IBM/sarama/sarama.go similarity index 99% rename from vendor/github.com/Shopify/sarama/sarama.go rename to vendor/github.com/IBM/sarama/sarama.go index a42bc075a..4d5f60a66 100644 --- a/vendor/github.com/Shopify/sarama/sarama.go +++ b/vendor/github.com/IBM/sarama/sarama.go @@ -91,7 +91,7 @@ import ( var ( // Logger is the instance of a StdLogger interface that Sarama writes connection - // management events to. By default it is set to discard all log messages via ioutil.Discard, + // management events to. By default it is set to discard all log messages via io.Discard, // but you can set it to redirect wherever you want. Logger StdLogger = log.New(io.Discard, "[Sarama] ", log.LstdFlags) diff --git a/vendor/github.com/Shopify/sarama/sasl_authenticate_request.go b/vendor/github.com/IBM/sarama/sasl_authenticate_request.go similarity index 89% rename from vendor/github.com/Shopify/sarama/sasl_authenticate_request.go rename to vendor/github.com/IBM/sarama/sasl_authenticate_request.go index 5bb0988ea..3a562a53b 100644 --- a/vendor/github.com/Shopify/sarama/sasl_authenticate_request.go +++ b/vendor/github.com/IBM/sarama/sasl_authenticate_request.go @@ -31,6 +31,10 @@ func (r *SaslAuthenticateRequest) headerVersion() int16 { return 1 } +func (r *SaslAuthenticateRequest) isValidVersion() bool { + return r.Version >= 0 && r.Version <= 1 +} + func (r *SaslAuthenticateRequest) requiredVersion() KafkaVersion { switch r.Version { case 1: diff --git a/vendor/github.com/Shopify/sarama/sasl_authenticate_response.go b/vendor/github.com/IBM/sarama/sasl_authenticate_response.go similarity index 92% rename from vendor/github.com/Shopify/sarama/sasl_authenticate_response.go rename to vendor/github.com/IBM/sarama/sasl_authenticate_response.go index 37c8e45da..ae52cde1c 100644 --- a/vendor/github.com/Shopify/sarama/sasl_authenticate_response.go +++ b/vendor/github.com/IBM/sarama/sasl_authenticate_response.go @@ -59,6 +59,10 @@ func (r *SaslAuthenticateResponse) headerVersion() int16 { return 0 } +func (r *SaslAuthenticateResponse) isValidVersion() bool { + return r.Version >= 0 && r.Version <= 1 +} + func (r *SaslAuthenticateResponse) requiredVersion() KafkaVersion { switch r.Version { case 1: diff --git a/vendor/github.com/Shopify/sarama/sasl_handshake_request.go b/vendor/github.com/IBM/sarama/sasl_handshake_request.go similarity index 78% rename from vendor/github.com/Shopify/sarama/sasl_handshake_request.go rename to vendor/github.com/IBM/sarama/sasl_handshake_request.go index 74dc3072f..410a5b0ea 100644 --- a/vendor/github.com/Shopify/sarama/sasl_handshake_request.go +++ b/vendor/github.com/IBM/sarama/sasl_handshake_request.go @@ -33,6 +33,15 @@ func (r *SaslHandshakeRequest) headerVersion() int16 { return 1 } +func (r *SaslHandshakeRequest) isValidVersion() bool { + return r.Version >= 0 && r.Version <= 1 +} + func (r *SaslHandshakeRequest) requiredVersion() KafkaVersion { - return V0_10_0_0 + switch r.Version { + case 1: + return V1_0_0_0 + default: + return V0_10_0_0 + } } diff --git a/vendor/github.com/Shopify/sarama/sasl_handshake_response.go b/vendor/github.com/IBM/sarama/sasl_handshake_response.go similarity index 77% rename from vendor/github.com/Shopify/sarama/sasl_handshake_response.go rename to vendor/github.com/IBM/sarama/sasl_handshake_response.go index 69dfc3178..502732cbd 100644 --- a/vendor/github.com/Shopify/sarama/sasl_handshake_response.go +++ b/vendor/github.com/IBM/sarama/sasl_handshake_response.go @@ -1,6 +1,7 @@ package sarama type SaslHandshakeResponse struct { + Version int16 Err KError EnabledMechanisms []string } @@ -30,13 +31,22 @@ func (r *SaslHandshakeResponse) key() int16 { } func (r *SaslHandshakeResponse) version() int16 { - return 0 + return r.Version } func (r *SaslHandshakeResponse) headerVersion() int16 { return 0 } +func (r *SaslHandshakeResponse) isValidVersion() bool { + return r.Version >= 0 && r.Version <= 1 +} + func (r *SaslHandshakeResponse) requiredVersion() KafkaVersion { - return V0_10_0_0 + switch r.Version { + case 1: + return V1_0_0_0 + default: + return V0_10_0_0 + } } diff --git a/vendor/github.com/Shopify/sarama/scram_formatter.go b/vendor/github.com/IBM/sarama/scram_formatter.go similarity index 100% rename from vendor/github.com/Shopify/sarama/scram_formatter.go rename to vendor/github.com/IBM/sarama/scram_formatter.go diff --git a/vendor/github.com/Shopify/sarama/sticky_assignor_user_data.go b/vendor/github.com/IBM/sarama/sticky_assignor_user_data.go similarity index 100% rename from vendor/github.com/Shopify/sarama/sticky_assignor_user_data.go rename to vendor/github.com/IBM/sarama/sticky_assignor_user_data.go diff --git a/vendor/github.com/Shopify/sarama/sync_group_request.go b/vendor/github.com/IBM/sarama/sync_group_request.go similarity index 93% rename from vendor/github.com/Shopify/sarama/sync_group_request.go rename to vendor/github.com/IBM/sarama/sync_group_request.go index 33ed3bacc..95efc2858 100644 --- a/vendor/github.com/Shopify/sarama/sync_group_request.go +++ b/vendor/github.com/IBM/sarama/sync_group_request.go @@ -123,12 +123,23 @@ func (r *SyncGroupRequest) headerVersion() int16 { return 1 } +func (r *SyncGroupRequest) isValidVersion() bool { + return r.Version >= 0 && r.Version <= 3 +} + func (r *SyncGroupRequest) requiredVersion() KafkaVersion { - switch { - case r.Version >= 3: + switch r.Version { + case 3: + return V2_3_0_0 + case 2: + return V2_0_0_0 + case 1: + return V0_11_0_0 + case 0: + return V0_9_0_0 + default: return V2_3_0_0 } - return V0_9_0_0 } func (r *SyncGroupRequest) AddGroupAssignment(memberId string, memberAssignment []byte) { diff --git a/vendor/github.com/Shopify/sarama/sync_group_response.go b/vendor/github.com/IBM/sarama/sync_group_response.go similarity index 77% rename from vendor/github.com/Shopify/sarama/sync_group_response.go rename to vendor/github.com/IBM/sarama/sync_group_response.go index 41b63b3d0..f7da15b4f 100644 --- a/vendor/github.com/Shopify/sarama/sync_group_response.go +++ b/vendor/github.com/IBM/sarama/sync_group_response.go @@ -1,9 +1,11 @@ package sarama +import "time" + type SyncGroupResponse struct { // Version defines the protocol version to use for encode and decode Version int16 - // ThrottleTimeMs contains the duration in milliseconds for which the + // ThrottleTime contains the duration in milliseconds for which the // request was throttled due to a quota violation, or zero if the request // did not violate any quota. ThrottleTime int32 @@ -57,10 +59,25 @@ func (r *SyncGroupResponse) headerVersion() int16 { return 0 } +func (r *SyncGroupResponse) isValidVersion() bool { + return r.Version >= 0 && r.Version <= 3 +} + func (r *SyncGroupResponse) requiredVersion() KafkaVersion { switch r.Version { - case 1, 2, 3: + case 3: + return V2_3_0_0 + case 2: + return V2_0_0_0 + case 1: + return V0_11_0_0 + case 0: + return V0_9_0_0 + default: return V2_3_0_0 } - return V0_9_0_0 +} + +func (r *SyncGroupResponse) throttleTime() time.Duration { + return time.Duration(r.ThrottleTime) * time.Millisecond } diff --git a/vendor/github.com/Shopify/sarama/sync_producer.go b/vendor/github.com/IBM/sarama/sync_producer.go similarity index 98% rename from vendor/github.com/Shopify/sarama/sync_producer.go rename to vendor/github.com/IBM/sarama/sync_producer.go index 8765ac336..3119baa6d 100644 --- a/vendor/github.com/Shopify/sarama/sync_producer.go +++ b/vendor/github.com/IBM/sarama/sync_producer.go @@ -33,7 +33,7 @@ type SyncProducer interface { // TxnStatus return current producer transaction status. TxnStatus() ProducerTxnStatusFlag - // IsTransactional return true when current producer is is transactional. + // IsTransactional return true when current producer is transactional. IsTransactional() bool // BeginTxn mark current transaction as ready. diff --git a/vendor/github.com/Shopify/sarama/timestamp.go b/vendor/github.com/IBM/sarama/timestamp.go similarity index 100% rename from vendor/github.com/Shopify/sarama/timestamp.go rename to vendor/github.com/IBM/sarama/timestamp.go diff --git a/vendor/github.com/Shopify/sarama/transaction_manager.go b/vendor/github.com/IBM/sarama/transaction_manager.go similarity index 91% rename from vendor/github.com/Shopify/sarama/transaction_manager.go rename to vendor/github.com/IBM/sarama/transaction_manager.go index e18abecd3..ca7e13dab 100644 --- a/vendor/github.com/Shopify/sarama/transaction_manager.go +++ b/vendor/github.com/IBM/sarama/transaction_manager.go @@ -14,7 +14,7 @@ type ProducerTxnStatusFlag int16 const ( // ProducerTxnFlagUninitialized when txnmgr is created ProducerTxnFlagUninitialized ProducerTxnStatusFlag = 1 << iota - // ProducerTxnFlagInitializing when txnmgr is initilizing + // ProducerTxnFlagInitializing when txnmgr is initializing ProducerTxnFlagInitializing // ProducerTxnFlagReady when is ready to receive transaction ProducerTxnFlagReady @@ -22,7 +22,7 @@ const ( ProducerTxnFlagInTransaction // ProducerTxnFlagEndTransaction when transaction will be committed ProducerTxnFlagEndTransaction - // ProducerTxnFlagInError whan having abortable or fatal error + // ProducerTxnFlagInError when having abortable or fatal error ProducerTxnFlagInError // ProducerTxnFlagCommittingTransaction when committing txn ProducerTxnFlagCommittingTransaction @@ -117,13 +117,13 @@ var producerTxnTransitions = map[ProducerTxnStatusFlag][]ProducerTxnStatusFlag{ ProducerTxnFlagReady, ProducerTxnFlagInError, }, - // When we need are initilizing + // When we need are initializing ProducerTxnFlagInitializing: { ProducerTxnFlagInitializing, ProducerTxnFlagReady, ProducerTxnFlagInError, }, - // When we have initilized transactional producer + // When we have initialized transactional producer ProducerTxnFlagReady: { ProducerTxnFlagInTransaction, }, @@ -161,8 +161,10 @@ type topicPartition struct { } // to ensure that we don't do a full scan every time a partition or an offset is added. -type topicPartitionSet map[topicPartition]struct{} -type topicPartitionOffsets map[topicPartition]*PartitionOffsetMetadata +type ( + topicPartitionSet map[topicPartition]struct{} + topicPartitionOffsets map[topicPartition]*PartitionOffsetMetadata +) func (s topicPartitionSet) mapToRequest() map[string][]int32 { result := make(map[string][]int32, len(s)) @@ -315,12 +317,20 @@ func (t *transactionManager) publishOffsetsToTxn(offsets topicPartitionOffsets, if err != nil { return true, err } - response, err := coordinator.AddOffsetsToTxn(&AddOffsetsToTxnRequest{ + request := &AddOffsetsToTxnRequest{ TransactionalID: t.transactionalID, ProducerEpoch: t.producerEpoch, ProducerID: t.producerID, GroupID: groupId, - }) + } + if t.client.Config().Version.IsAtLeast(V2_7_0_0) { + // Version 2 adds the support for new error code PRODUCER_FENCED. + request.Version = 2 + } else if t.client.Config().Version.IsAtLeast(V2_0_0_0) { + // Version 1 is the same as version 0. + request.Version = 1 + } + response, err := coordinator.AddOffsetsToTxn(request) if err != nil { // If an error occurred try to refresh current transaction coordinator. _ = coordinator.Close() @@ -390,13 +400,21 @@ func (t *transactionManager) publishOffsetsToTxn(offsets topicPartitionOffsets, if err != nil { return resultOffsets, true, err } - responses, err := consumerGroupCoordinator.TxnOffsetCommit(&TxnOffsetCommitRequest{ + request := &TxnOffsetCommitRequest{ TransactionalID: t.transactionalID, ProducerEpoch: t.producerEpoch, ProducerID: t.producerID, GroupID: groupId, Topics: offsets.mapToRequest(), - }) + } + if t.client.Config().Version.IsAtLeast(V2_1_0_0) { + // Version 2 adds the committed leader epoch. + request.Version = 2 + } else if t.client.Config().Version.IsAtLeast(V2_0_0_0) { + // Version 1 is the same as version 0. + request.Version = 1 + } + responses, err := consumerGroupCoordinator.TxnOffsetCommit(request) if err != nil { _ = consumerGroupCoordinator.Close() _ = t.client.RefreshCoordinator(groupId) @@ -466,13 +484,24 @@ func (t *transactionManager) initProducerId() (int64, int16, error) { } if t.client.Config().Version.IsAtLeast(V2_5_0_0) { - req.Version = 3 + if t.client.Config().Version.IsAtLeast(V2_7_0_0) { + // Version 4 adds the support for new error code PRODUCER_FENCED. + req.Version = 4 + } else { + // Version 3 adds ProducerId and ProducerEpoch, allowing producers to try + // to resume after an INVALID_PRODUCER_EPOCH error + req.Version = 3 + } isEpochBump = t.producerID != noProducerID && t.producerEpoch != noProducerEpoch t.coordinatorSupportsBumpingEpoch = true req.ProducerID = t.producerID req.ProducerEpoch = t.producerEpoch } else if t.client.Config().Version.IsAtLeast(V2_4_0_0) { + // Version 2 is the first flexible version. req.Version = 2 + } else if t.client.Config().Version.IsAtLeast(V2_0_0_0) { + // Version 1 is the same as version 0. + req.Version = 1 } if isEpochBump { @@ -540,9 +569,8 @@ func (t *transactionManager) initProducerId() (int64, int16, error) { return response.ProducerID, response.ProducerEpoch, false, nil } switch response.Err { - case ErrConsumerCoordinatorNotAvailable: - fallthrough - case ErrNotCoordinatorForConsumer: + // Retriable errors + case ErrConsumerCoordinatorNotAvailable, ErrNotCoordinatorForConsumer, ErrOffsetsLoadInProgress: if t.isTransactional() { _ = coordinator.Close() _ = t.client.RefreshTransactionCoordinator(t.transactionalID) @@ -610,12 +638,20 @@ func (t *transactionManager) endTxn(commit bool) error { if err != nil { return true, err } - response, err := coordinator.EndTxn(&EndTxnRequest{ + request := &EndTxnRequest{ TransactionalID: t.transactionalID, ProducerEpoch: t.producerEpoch, ProducerID: t.producerID, TransactionResult: commit, - }) + } + if t.client.Config().Version.IsAtLeast(V2_7_0_0) { + // Version 2 adds the support for new error code PRODUCER_FENCED. + request.Version = 2 + } else if t.client.Config().Version.IsAtLeast(V2_0_0_0) { + // Version 1 is the same as version 0. + request.Version = 1 + } + response, err := coordinator.EndTxn(request) if err != nil { // Always retry on network error _ = coordinator.Close() @@ -660,7 +696,7 @@ func (t *transactionManager) finishTransaction(commit bool) error { t.mutex.Lock() defer t.mutex.Unlock() - // Ensure no error when committing or abording + // Ensure no error when committing or aborting if commit && t.currentTxnStatus()&ProducerTxnFlagInError != 0 { return t.lastError } else if !commit && t.currentTxnStatus()&ProducerTxnFlagFatalError != 0 { @@ -779,13 +815,20 @@ func (t *transactionManager) publishTxnPartitions() error { if err != nil { return true, err } - addPartResponse, err := coordinator.AddPartitionsToTxn(&AddPartitionsToTxnRequest{ + request := &AddPartitionsToTxnRequest{ TransactionalID: t.transactionalID, ProducerID: t.producerID, ProducerEpoch: t.producerEpoch, TopicPartitions: t.pendingPartitionsInCurrentTxn.mapToRequest(), - }) - + } + if t.client.Config().Version.IsAtLeast(V2_7_0_0) { + // Version 2 adds the support for new error code PRODUCER_FENCED. + request.Version = 2 + } else if t.client.Config().Version.IsAtLeast(V2_0_0_0) { + // Version 1 is the same as version 0. + request.Version = 1 + } + addPartResponse, err := coordinator.AddPartitionsToTxn(request) if err != nil { _ = coordinator.Close() _ = t.client.RefreshTransactionCoordinator(t.transactionalID) diff --git a/vendor/github.com/Shopify/sarama/txn_offset_commit_request.go b/vendor/github.com/IBM/sarama/txn_offset_commit_request.go similarity index 73% rename from vendor/github.com/Shopify/sarama/txn_offset_commit_request.go rename to vendor/github.com/IBM/sarama/txn_offset_commit_request.go index c4043a335..ca13afb3b 100644 --- a/vendor/github.com/Shopify/sarama/txn_offset_commit_request.go +++ b/vendor/github.com/IBM/sarama/txn_offset_commit_request.go @@ -1,6 +1,7 @@ package sarama type TxnOffsetCommitRequest struct { + Version int16 TransactionalID string GroupID string ProducerID int64 @@ -29,7 +30,7 @@ func (t *TxnOffsetCommitRequest) encode(pe packetEncoder) error { return err } for _, partition := range partitions { - if err := partition.encode(pe); err != nil { + if err := partition.encode(pe, t.Version); err != nil { return err } } @@ -39,6 +40,7 @@ func (t *TxnOffsetCommitRequest) encode(pe packetEncoder) error { } func (t *TxnOffsetCommitRequest) decode(pd packetDecoder, version int16) (err error) { + t.Version = version if t.TransactionalID, err = pd.getString(); err != nil { return err } @@ -88,26 +90,49 @@ func (a *TxnOffsetCommitRequest) key() int16 { } func (a *TxnOffsetCommitRequest) version() int16 { - return 0 + return a.Version } func (a *TxnOffsetCommitRequest) headerVersion() int16 { return 1 } +func (a *TxnOffsetCommitRequest) isValidVersion() bool { + return a.Version >= 0 && a.Version <= 2 +} + func (a *TxnOffsetCommitRequest) requiredVersion() KafkaVersion { - return V0_11_0_0 + switch a.Version { + case 2: + return V2_1_0_0 + case 1: + return V2_0_0_0 + case 0: + return V0_11_0_0 + default: + return V2_1_0_0 + } } type PartitionOffsetMetadata struct { + // Partition contains the index of the partition within the topic. Partition int32 - Offset int64 - Metadata *string + // Offset contains the message offset to be committed. + Offset int64 + // LeaderEpoch contains the leader epoch of the last consumed record. + LeaderEpoch int32 + // Metadata contains any associated metadata the client wants to keep. + Metadata *string } -func (p *PartitionOffsetMetadata) encode(pe packetEncoder) error { +func (p *PartitionOffsetMetadata) encode(pe packetEncoder, version int16) error { pe.putInt32(p.Partition) pe.putInt64(p.Offset) + + if version >= 2 { + pe.putInt32(p.LeaderEpoch) + } + if err := pe.putNullableString(p.Metadata); err != nil { return err } @@ -122,6 +147,13 @@ func (p *PartitionOffsetMetadata) decode(pd packetDecoder, version int16) (err e if p.Offset, err = pd.getInt64(); err != nil { return err } + + if version >= 2 { + if p.LeaderEpoch, err = pd.getInt32(); err != nil { + return err + } + } + if p.Metadata, err = pd.getNullableString(); err != nil { return err } diff --git a/vendor/github.com/Shopify/sarama/txn_offset_commit_response.go b/vendor/github.com/IBM/sarama/txn_offset_commit_response.go similarity index 80% rename from vendor/github.com/Shopify/sarama/txn_offset_commit_response.go rename to vendor/github.com/IBM/sarama/txn_offset_commit_response.go index 94d8029da..d5144faf7 100644 --- a/vendor/github.com/Shopify/sarama/txn_offset_commit_response.go +++ b/vendor/github.com/IBM/sarama/txn_offset_commit_response.go @@ -5,6 +5,7 @@ import ( ) type TxnOffsetCommitResponse struct { + Version int16 ThrottleTime time.Duration Topics map[string][]*PartitionError } @@ -33,6 +34,7 @@ func (t *TxnOffsetCommitResponse) encode(pe packetEncoder) error { } func (t *TxnOffsetCommitResponse) decode(pd packetDecoder, version int16) (err error) { + t.Version = version throttleTime, err := pd.getInt32() if err != nil { return err @@ -75,13 +77,30 @@ func (a *TxnOffsetCommitResponse) key() int16 { } func (a *TxnOffsetCommitResponse) version() int16 { - return 0 + return a.Version } func (a *TxnOffsetCommitResponse) headerVersion() int16 { return 0 } +func (a *TxnOffsetCommitResponse) isValidVersion() bool { + return a.Version >= 0 && a.Version <= 2 +} + func (a *TxnOffsetCommitResponse) requiredVersion() KafkaVersion { - return V0_11_0_0 + switch a.Version { + case 2: + return V2_1_0_0 + case 1: + return V2_0_0_0 + case 0: + return V0_11_0_0 + default: + return V2_1_0_0 + } +} + +func (r *TxnOffsetCommitResponse) throttleTime() time.Duration { + return r.ThrottleTime } diff --git a/vendor/github.com/Shopify/sarama/utils.go b/vendor/github.com/IBM/sarama/utils.go similarity index 86% rename from vendor/github.com/Shopify/sarama/utils.go rename to vendor/github.com/IBM/sarama/utils.go index 819b6597c..feadc0065 100644 --- a/vendor/github.com/Shopify/sarama/utils.go +++ b/vendor/github.com/IBM/sarama/utils.go @@ -193,6 +193,12 @@ var ( V3_2_3_0 = newKafkaVersion(3, 2, 3, 0) V3_3_0_0 = newKafkaVersion(3, 3, 0, 0) V3_3_1_0 = newKafkaVersion(3, 3, 1, 0) + V3_3_2_0 = newKafkaVersion(3, 3, 2, 0) + V3_4_0_0 = newKafkaVersion(3, 4, 0, 0) + V3_4_1_0 = newKafkaVersion(3, 4, 1, 0) + V3_5_0_0 = newKafkaVersion(3, 5, 0, 0) + V3_5_1_0 = newKafkaVersion(3, 5, 1, 0) + V3_6_0_0 = newKafkaVersion(3, 6, 0, 0) SupportedVersions = []KafkaVersion{ V0_8_2_0, @@ -248,12 +254,18 @@ var ( V3_2_3_0, V3_3_0_0, V3_3_1_0, + V3_3_2_0, + V3_4_0_0, + V3_4_1_0, + V3_5_0_0, + V3_5_1_0, + V3_6_0_0, } MinVersion = V0_8_2_0 - MaxVersion = V3_3_1_0 - DefaultVersion = V1_0_0_0 + MaxVersion = V3_6_0_0 + DefaultVersion = V2_1_0_0 - // reduced set of versions to matrix test + // reduced set of protocol versions to matrix test fvtRangeVersions = []KafkaVersion{ V0_8_2_2, V0_10_2_2, @@ -265,11 +277,19 @@ var ( V2_6_2_0, V2_8_2_0, V3_1_2_0, - V3_2_3_0, - V3_3_1_0, + V3_3_2_0, + V3_6_0_0, } ) +var ( + // This regex validates that a string complies with the pre kafka 1.0.0 format for version strings, for example 0.11.0.3 + validPreKafka1Version = regexp.MustCompile(`^0\.\d+\.\d+\.\d+$`) + + // This regex validates that a string complies with the post Kafka 1.0.0 format, for example 1.0.0 + validPostKafka1Version = regexp.MustCompile(`^\d+\.\d+\.\d+$`) +) + // ParseKafkaVersion parses and returns kafka version or error from a string func ParseKafkaVersion(s string) (KafkaVersion, error) { if len(s) < 5 { @@ -278,9 +298,9 @@ func ParseKafkaVersion(s string) (KafkaVersion, error) { var major, minor, veryMinor, patch uint var err error if s[0] == '0' { - err = scanKafkaVersion(s, `^0\.\d+\.\d+\.\d+$`, "0.%d.%d.%d", [3]*uint{&minor, &veryMinor, &patch}) + err = scanKafkaVersion(s, validPreKafka1Version, "0.%d.%d.%d", [3]*uint{&minor, &veryMinor, &patch}) } else { - err = scanKafkaVersion(s, `^\d+\.\d+\.\d+$`, "%d.%d.%d", [3]*uint{&major, &minor, &veryMinor}) + err = scanKafkaVersion(s, validPostKafka1Version, "%d.%d.%d", [3]*uint{&major, &minor, &veryMinor}) } if err != nil { return DefaultVersion, err @@ -288,8 +308,8 @@ func ParseKafkaVersion(s string) (KafkaVersion, error) { return newKafkaVersion(major, minor, veryMinor, patch), nil } -func scanKafkaVersion(s string, pattern string, format string, v [3]*uint) error { - if !regexp.MustCompile(pattern).MatchString(s) { +func scanKafkaVersion(s string, pattern *regexp.Regexp, format string, v [3]*uint) error { + if !pattern.MatchString(s) { return fmt.Errorf("invalid version `%s`", s) } _, err := fmt.Sscanf(s, format, v[0], v[1], v[2]) diff --git a/vendor/github.com/Shopify/sarama/version.go b/vendor/github.com/IBM/sarama/version.go similarity index 100% rename from vendor/github.com/Shopify/sarama/version.go rename to vendor/github.com/IBM/sarama/version.go diff --git a/vendor/github.com/Shopify/sarama/zstd.go b/vendor/github.com/IBM/sarama/zstd.go similarity index 100% rename from vendor/github.com/Shopify/sarama/zstd.go rename to vendor/github.com/IBM/sarama/zstd.go diff --git a/vendor/github.com/Shopify/sarama/CHANGELOG.md b/vendor/github.com/Shopify/sarama/CHANGELOG.md deleted file mode 100644 index c2f92ec9a..000000000 --- a/vendor/github.com/Shopify/sarama/CHANGELOG.md +++ /dev/null @@ -1,1187 +0,0 @@ -# Changelog - -## Version 1.31.1 (2022-02-01) - -- #2126 - @bai - Populate missing kafka versions -- #2124 - @bai - Add Kafka 3.1.0 to CI matrix, migrate to bitnami kafka image -- #2123 - @bai - Update klauspost/compress to 0.14 -- #2122 - @dnwe - fix(test): make it simpler to re-use toxiproxy -- #2119 - @bai - Add Kafka 3.1.0 version number -- #2005 - @raulnegreiros - feat: add methods to pause/resume consumer's consumption -- #2051 - @seveas - Expose the TLS connection state of a broker connection -- #2117 - @wuhuizuo - feat: add method MockApiVersionsResponse.SetApiKeys -- #2110 - @dnwe - fix: ensure heartbeats only stop after cleanup -- #2113 - @mosceo - Fix typo - -## Version 1.31.0 (2022-01-18) - -## What's Changed -### :tada: New Features / Improvements -* feat: expose IncrementalAlterConfigs API in admin.go by @fengyinqiao in https://github.com/Shopify/sarama/pull/2088 -* feat: allow AsyncProducer to have MaxOpenRequests inflight produce requests per broker by @xujianhai666 in https://github.com/Shopify/sarama/pull/1686 -* Support request pipelining in AsyncProducer by @slaunay in https://github.com/Shopify/sarama/pull/2094 -### :bug: Fixes -* fix(test): add fluent interface for mocks where missing by @grongor in https://github.com/Shopify/sarama/pull/2080 -* fix(test): test for ConsumePartition with OffsetOldest by @grongor in https://github.com/Shopify/sarama/pull/2081 -* fix: set HWMO during creation of partitionConsumer (fix incorrect HWMO before first fetch) by @grongor in https://github.com/Shopify/sarama/pull/2082 -* fix: ignore non-nil but empty error strings in Describe/Alter client quotas responses by @agriffaut in https://github.com/Shopify/sarama/pull/2096 -* fix: skip over KIP-482 tagged fields by @dnwe in https://github.com/Shopify/sarama/pull/2107 -* fix: clear preferredReadReplica if broker shutdown by @dnwe in https://github.com/Shopify/sarama/pull/2108 -* fix(test): correct wrong offsets in mock Consumer by @grongor in https://github.com/Shopify/sarama/pull/2078 -* fix: correct bugs in DescribeGroupsResponse by @dnwe in https://github.com/Shopify/sarama/pull/2111 -### :wrench: Maintenance -* chore: bump runtime and test dependencies by @dnwe in https://github.com/Shopify/sarama/pull/2100 -### :memo: Documentation -* docs: refresh README.md for Kafka 3.0.0 by @dnwe in https://github.com/Shopify/sarama/pull/2099 -### :heavy_plus_sign: Other Changes -* Fix typo by @mosceo in https://github.com/Shopify/sarama/pull/2084 - -## New Contributors -* @grongor made their first contribution in https://github.com/Shopify/sarama/pull/2080 -* @fengyinqiao made their first contribution in https://github.com/Shopify/sarama/pull/2088 -* @xujianhai666 made their first contribution in https://github.com/Shopify/sarama/pull/1686 -* @mosceo made their first contribution in https://github.com/Shopify/sarama/pull/2084 - -**Full Changelog**: https://github.com/Shopify/sarama/compare/v1.30.1...v1.31.0 - -## Version 1.30.1 (2021-12-04) - -## What's Changed -### :tada: New Features / Improvements -* feat(zstd): pass level param through to compress/zstd encoder by @lizthegrey in https://github.com/Shopify/sarama/pull/2045 -### :bug: Fixes -* fix: set min-go-version to 1.16 by @troyanov in https://github.com/Shopify/sarama/pull/2048 -* logger: fix debug logs' formatting directives by @utrack in https://github.com/Shopify/sarama/pull/2054 -* fix: stuck on the batch with zero records length by @pachmu in https://github.com/Shopify/sarama/pull/2057 -* fix: only update preferredReadReplica if valid by @dnwe in https://github.com/Shopify/sarama/pull/2076 -### :wrench: Maintenance -* chore: add release notes configuration by @dnwe in https://github.com/Shopify/sarama/pull/2046 -* chore: confluent platform version bump by @lizthegrey in https://github.com/Shopify/sarama/pull/2070 - -## Notes -* ℹ️ from Sarama 1.30.x onward the minimum version of Go toolchain required is 1.16.x - -## New Contributors -* @troyanov made their first contribution in https://github.com/Shopify/sarama/pull/2048 -* @lizthegrey made their first contribution in https://github.com/Shopify/sarama/pull/2045 -* @utrack made their first contribution in https://github.com/Shopify/sarama/pull/2054 -* @pachmu made their first contribution in https://github.com/Shopify/sarama/pull/2057 - -**Full Changelog**: https://github.com/Shopify/sarama/compare/v1.30.0...v1.30.1 - -## Version 1.30.0 (2021-09-29) - -⚠️ This release has been superseded by v1.30.1 and should _not_ be used. - -**regression**: enabling rackawareness causes severe throughput drops (#2071) — fixed in v1.30.1 via #2076 - ---- - -ℹ️ **Note: from Sarama 1.30.0 the minimum version of Go toolchain required is 1.16.x** - ---- - -# New Features / Improvements - -- #1983 - @zifengyu - allow configure AllowAutoTopicCreation argument in metadata refresh -- #2000 - @matzew - Using xdg-go module for SCRAM -- #2003 - @gdm85 - feat: add counter metrics for consumer group join/sync and their failures -- #1992 - @zhaomoran - feat: support SaslHandshakeRequest v0 for SCRAM -- #2006 - @faillefer - Add support for DeleteOffsets operation -- #1909 - @agriffaut - KIP-546 Client quota APIs -- #1633 - @aldelucca1 - feat: allow balance strategies to provide initial state -- #1275 - @dnwe - log: add a DebugLogger that proxies to Logger -- #2018 - @dnwe - feat: use DebugLogger reference for goldenpath log -- #2019 - @dnwe - feat: add logging & a metric for producer throttle -- #2023 - @dnwe - feat: add Controller() to ClusterAdmin interface -- #2025 - @dnwe - feat: support ApiVersionsRequest V3 protocol -- #2028 - @dnwe - feat: send ApiVersionsRequest on broker open -- #2034 - @bai - Add support for kafka 3.0.0 - -# Fixes - -- #1990 - @doxsch - fix: correctly pass ValidateOnly through to CreatePartitionsRequest -- #1988 - @LubergAlexander - fix: correct WithCustomFallbackPartitioner implementation -- #2001 - @HurSungYun - docs: inform AsyncProducer Close pitfalls -- #1973 - @qiangmzsx - fix: metrics still taking up too much memory when metrics.UseNilMetrics=true -- #2007 - @bai - Add support for Go 1.17 -- #2009 - @dnwe - fix: enable nilerr linter and fix iferr checks -- #2010 - @dnwe - chore: enable exportloopref and misspell linters -- #2013 - @faillefer - fix(test): disable encoded response/request check when map contains multiple elements -- #2015 - @bai - Change default branch to main -- #1718 - @crivera-fastly - fix: correct the error handling in client.InitProducerID() -- #1984 - @null-sleep - fix(test): bump confluentPlatformVersion from 6.1.1 to 6.2.0 -- #2016 - @dnwe - chore: replace deprecated Go calls -- #2017 - @dnwe - chore: delete legacy vagrant script -- #2020 - @dnwe - fix(test): remove testLogger from TrackLeader test -- #2024 - @dnwe - chore: bump toxiproxy container to v2.1.5 -- #2033 - @bai - Update dependencies -- #2031 - @gdm85 - docs: do not mention buffered messages in sync producer Close method -- #2035 - @dnwe - chore: populate the missing kafka versions -- #2038 - @dnwe - feat: add a fuzzing workflow to github actions - -## New Contributors -* @zifengyu made their first contribution in https://github.com/Shopify/sarama/pull/1983 -* @doxsch made their first contribution in https://github.com/Shopify/sarama/pull/1990 -* @LubergAlexander made their first contribution in https://github.com/Shopify/sarama/pull/1988 -* @HurSungYun made their first contribution in https://github.com/Shopify/sarama/pull/2001 -* @gdm85 made their first contribution in https://github.com/Shopify/sarama/pull/2003 -* @qiangmzsx made their first contribution in https://github.com/Shopify/sarama/pull/1973 -* @zhaomoran made their first contribution in https://github.com/Shopify/sarama/pull/1992 -* @faillefer made their first contribution in https://github.com/Shopify/sarama/pull/2006 -* @crivera-fastly made their first contribution in https://github.com/Shopify/sarama/pull/1718 -* @null-sleep made their first contribution in https://github.com/Shopify/sarama/pull/1984 - -**Full Changelog**: https://github.com/Shopify/sarama/compare/v1.29.1...v1.30.0 - -## Version 1.29.1 (2021-06-24) - -# New Features / Improvements - -- #1966 - @ajanikow - KIP-339: Add Incremental Config updates API -- #1964 - @ajanikow - Add DelegationToken ResourceType - -# Fixes - -- #1962 - @hanxiaolin - fix(consumer): call interceptors when MaxProcessingTime expire -- #1971 - @KerryJava - fix kafka-producer-performance throughput panic -- #1968 - @dnwe - chore: bump golang.org/x versions -- #1956 - @joewreschnig - Allow checking the entire `ProducerMessage` in the mock producers -- #1963 - @dnwe - fix: ensure backoff timer is re-used -- #1949 - @dnwe - fix: explicitly use uint64 for payload length - -## Version 1.29.0 (2021-05-07) - -### New Features / Improvements - -- #1917 - @arkady-emelyanov - KIP-554: Add Broker-side SCRAM Config API -- #1869 - @wyndhblb - zstd: encode+decode performance improvements -- #1541 - @izolight - add String, (Un)MarshalText for acl types. -- #1921 - @bai - Add support for Kafka 2.8.0 - -### Fixes -- #1936 - @dnwe - fix(consumer): follow preferred broker -- #1933 - @ozzieba - Use gofork for encoding/asn1 to fix ASN errors during Kerberos authentication -- #1929 - @celrenheit - Handle isolation level in Offset(Request|Response) and require stable offset in FetchOffset(Request|Response) -- #1926 - @dnwe - fix: correct initial CodeQL findings -- #1925 - @bai - Test out CodeQL -- #1923 - @bestgopher - Remove redundant switch-case, fix doc typos -- #1922 - @bai - Update go dependencies -- #1898 - @mmaslankaprv - Parsing only known control batches value -- #1887 - @withshubh - Fix: issues affecting code quality - -## Version 1.28.0 (2021-02-15) - -**Note that with this release we change `RoundRobinBalancer` strategy to match Java client behavior. See #1788 for details.** - -- #1870 - @kvch - Update Kerberos library to latest major -- #1876 - @bai - Update docs, reference pkg.go.dev -- #1846 - @wclaeys - Do not ignore Consumer.Offsets.AutoCommit.Enable config on Close -- #1747 - @XSAM - fix: mock sync producer does not handle the offset while sending messages -- #1863 - @bai - Add support for Kafka 2.7.0 + update lz4 and klauspost/compress dependencies -- #1788 - @kzinglzy - feat[balance_strategy]: announcing a new round robin balance strategy -- #1862 - @bai - Fix CI setenv permissions issues -- #1832 - @ilyakaznacheev - Update Godoc link to pkg.go.dev -- #1822 - @danp - KIP-392: Allow consumers to fetch from closest replica - -## Version 1.27.2 (2020-10-21) - -### Improvements - -#1750 - @krantideep95 Adds missing mock responses for mocking consumer group - -## Fixes - -#1817 - reverts #1785 - Add private method to Client interface to prevent implementation - -## Version 1.27.1 (2020-10-07) - -### Improvements - -#1775 - @d1egoaz - Adds a Producer Interceptor example -#1781 - @justin-chen - Refresh brokers given list of seed brokers -#1784 - @justin-chen - Add randomize seed broker method -#1790 - @d1egoaz - remove example binary -#1798 - @bai - Test against Go 1.15 -#1785 - @justin-chen - Add private method to Client interface to prevent implementation -#1802 - @uvw - Support Go 1.13 error unwrapping - -## Fixes - -#1791 - @stanislavkozlovski - bump default version to 1.0.0 - -## Version 1.27.0 (2020-08-11) - -### Improvements - -#1466 - @rubenvp8510 - Expose kerberos fast negotiation configuration -#1695 - @KJTsanaktsidis - Use docker-compose to run the functional tests -#1699 - @wclaeys - Consumer group support for manually comitting offsets -#1714 - @bai - Bump Go to version 1.14.3, golangci-lint to 1.27.0 -#1726 - @d1egoaz - Include zstd on the functional tests -#1730 - @d1egoaz - KIP-42 Add producer and consumer interceptors -#1738 - @varun06 - fixed variable names that are named same as some std lib package names -#1741 - @varun06 - updated zstd dependency to latest v1.10.10 -#1743 - @varun06 - Fixed declaration dependencies and other lint issues in code base -#1763 - @alrs - remove deprecated tls options from test -#1769 - @bai - Add support for Kafka 2.6.0 - -## Fixes - -#1697 - @kvch - Use gofork for encoding/asn1 to fix ASN errors during Kerberos authentication -#1744 - @alrs - Fix isBalanced Function Signature - -## Version 1.26.4 (2020-05-19) - -## Fixes - -- #1701 - @d1egoaz - Set server name only for the current broker -- #1694 - @dnwe - testfix: set KAFKA_HEAP_OPTS for zk and kafka - -## Version 1.26.3 (2020-05-07) - -## Fixes - -- #1692 - @d1egoaz - Set tls ServerName to fix issue: either ServerName or InsecureSkipVerify must be specified in the tls.Config - -## Version 1.26.2 (2020-05-06) - -## ⚠️ Known Issues - -This release has been marked as not ready for production and may be unstable, please use v1.26.4. - -### Improvements - -- #1560 - @iyacontrol - add sync pool for gzip 1-9 -- #1605 - @dnwe - feat: protocol support for V11 fetch w/ rackID -- #1617 - @sladkoff / @dwi-di / @random-dwi - Add support for alter/list partition reassignements APIs -- #1632 - @bai - Add support for Go 1.14 -- #1640 - @random-dwi - Feature/fix list partition reassignments -- #1646 - @mimaison - Add DescribeLogDirs to admin client -- #1667 - @bai - Add support for kafka 2.5.0 - -## Fixes - -- #1594 - @sladkoff - Sets ConfigEntry.Default flag in addition to the ConfigEntry.Source for Kafka versions > V1_1_0_0 -- #1601 - @alrs - fix: remove use of testing.T.FailNow() inside goroutine -- #1602 - @d1egoaz - adds a note about consumer groups Consume method -- #1607 - @darklore - Fix memory leak when Broker.Open and Broker.Close called repeatedly -- #1613 - @wblakecaldwell - Updated "retrying" log message when BackoffFunc implemented -- #1614 - @alrs - produce_response.go: Remove Unused Functions -- #1619 - @alrs - tools/kafka-producer-performance: prune unused flag variables -- #1639 - @agriffaut - Handle errors with no message but error code -- #1643 - @kzinglzy - fix `config.net.keepalive` -- #1644 - @KJTsanaktsidis - Fix brokers continually allocating new Session IDs -- #1645 - @Stephan14 - Remove broker(s) which no longer exist in metadata -- #1650 - @lavoiesl - Return the response error in heartbeatLoop -- #1661 - @KJTsanaktsidis - Fix "broker received out of order sequence" when brokers die -- #1666 - @KevinJCross - Bugfix: Allow TLS connections to work over socks proxy. - -## Version 1.26.1 (2020-02-04) - -Improvements: -- Add requests-in-flight metric ([1539](https://github.com/Shopify/sarama/pull/1539)) -- Fix misleading example for cluster admin ([1595](https://github.com/Shopify/sarama/pull/1595)) -- Replace Travis with GitHub Actions, linters housekeeping ([1573](https://github.com/Shopify/sarama/pull/1573)) -- Allow BalanceStrategy to provide custom assignment data ([1592](https://github.com/Shopify/sarama/pull/1592)) - -Bug Fixes: -- Adds back Consumer.Offsets.CommitInterval to fix API ([1590](https://github.com/Shopify/sarama/pull/1590)) -- Fix error message s/CommitInterval/AutoCommit.Interval ([1589](https://github.com/Shopify/sarama/pull/1589)) - -## Version 1.26.0 (2020-01-24) - -New Features: -- Enable zstd compression - ([1574](https://github.com/Shopify/sarama/pull/1574), - [1582](https://github.com/Shopify/sarama/pull/1582)) -- Support headers in tools kafka-console-producer - ([1549](https://github.com/Shopify/sarama/pull/1549)) - -Improvements: -- Add SASL AuthIdentity to SASL frames (authzid) - ([1585](https://github.com/Shopify/sarama/pull/1585)). - -Bug Fixes: -- Sending messages with ZStd compression enabled fails in multiple ways - ([1252](https://github.com/Shopify/sarama/issues/1252)). -- Use the broker for any admin on BrokerConfig - ([1571](https://github.com/Shopify/sarama/pull/1571)). -- Set DescribeConfigRequest Version field - ([1576](https://github.com/Shopify/sarama/pull/1576)). -- ConsumerGroup flooding logs with client/metadata update req - ([1578](https://github.com/Shopify/sarama/pull/1578)). -- MetadataRequest version in DescribeCluster - ([1580](https://github.com/Shopify/sarama/pull/1580)). -- Fix deadlock in consumer group handleError - ([1581](https://github.com/Shopify/sarama/pull/1581)) -- Fill in the Fetch{Request,Response} protocol - ([1582](https://github.com/Shopify/sarama/pull/1582)). -- Retry topic request on ControllerNotAvailable - ([1586](https://github.com/Shopify/sarama/pull/1586)). - -## Version 1.25.0 (2020-01-13) - -New Features: -- Support TLS protocol in kafka-producer-performance - ([1538](https://github.com/Shopify/sarama/pull/1538)). -- Add support for kafka 2.4.0 - ([1552](https://github.com/Shopify/sarama/pull/1552)). - -Improvements: -- Allow the Consumer to disable auto-commit offsets - ([1164](https://github.com/Shopify/sarama/pull/1164)). -- Produce records with consistent timestamps - ([1455](https://github.com/Shopify/sarama/pull/1455)). - -Bug Fixes: -- Fix incorrect SetTopicMetadata name mentions - ([1534](https://github.com/Shopify/sarama/pull/1534)). -- Fix client.tryRefreshMetadata Println - ([1535](https://github.com/Shopify/sarama/pull/1535)). -- Fix panic on calling updateMetadata on closed client - ([1531](https://github.com/Shopify/sarama/pull/1531)). -- Fix possible faulty metrics in TestFuncProducing - ([1545](https://github.com/Shopify/sarama/pull/1545)). - -## Version 1.24.1 (2019-10-31) - -New Features: -- Add DescribeLogDirs Request/Response pair - ([1520](https://github.com/Shopify/sarama/pull/1520)). - -Bug Fixes: -- Fix ClusterAdmin returning invalid controller ID on DescribeCluster - ([1518](https://github.com/Shopify/sarama/pull/1518)). -- Fix issue with consumergroup not rebalancing when new partition is added - ([1525](https://github.com/Shopify/sarama/pull/1525)). -- Ensure consistent use of read/write deadlines - ([1529](https://github.com/Shopify/sarama/pull/1529)). - -## Version 1.24.0 (2019-10-09) - -New Features: -- Add sticky partition assignor - ([1416](https://github.com/Shopify/sarama/pull/1416)). -- Switch from cgo zstd package to pure Go implementation - ([1477](https://github.com/Shopify/sarama/pull/1477)). - -Improvements: -- Allow creating ClusterAdmin from client - ([1415](https://github.com/Shopify/sarama/pull/1415)). -- Set KafkaVersion in ListAcls method - ([1452](https://github.com/Shopify/sarama/pull/1452)). -- Set request version in CreateACL ClusterAdmin method - ([1458](https://github.com/Shopify/sarama/pull/1458)). -- Set request version in DeleteACL ClusterAdmin method - ([1461](https://github.com/Shopify/sarama/pull/1461)). -- Handle missed error codes on TopicMetaDataRequest and GroupCoordinatorRequest - ([1464](https://github.com/Shopify/sarama/pull/1464)). -- Remove direct usage of gofork - ([1465](https://github.com/Shopify/sarama/pull/1465)). -- Add support for Go 1.13 - ([1478](https://github.com/Shopify/sarama/pull/1478)). -- Improve behavior of NewMockListAclsResponse - ([1481](https://github.com/Shopify/sarama/pull/1481)). - -Bug Fixes: -- Fix race condition in consumergroup example - ([1434](https://github.com/Shopify/sarama/pull/1434)). -- Fix brokerProducer goroutine leak - ([1442](https://github.com/Shopify/sarama/pull/1442)). -- Use released version of lz4 library - ([1469](https://github.com/Shopify/sarama/pull/1469)). -- Set correct version in MockDeleteTopicsResponse - ([1484](https://github.com/Shopify/sarama/pull/1484)). -- Fix CLI help message typo - ([1494](https://github.com/Shopify/sarama/pull/1494)). - -Known Issues: -- Please **don't** use Zstd, as it doesn't work right now. - See https://github.com/Shopify/sarama/issues/1252 - -## Version 1.23.1 (2019-07-22) - -Bug Fixes: -- Fix fetch delete bug record - ([1425](https://github.com/Shopify/sarama/pull/1425)). -- Handle SASL/OAUTHBEARER token rejection - ([1428](https://github.com/Shopify/sarama/pull/1428)). - -## Version 1.23.0 (2019-07-02) - -New Features: -- Add support for Kafka 2.3.0 - ([1418](https://github.com/Shopify/sarama/pull/1418)). -- Add support for ListConsumerGroupOffsets v2 - ([1374](https://github.com/Shopify/sarama/pull/1374)). -- Add support for DeleteConsumerGroup - ([1417](https://github.com/Shopify/sarama/pull/1417)). -- Add support for SASLVersion configuration - ([1410](https://github.com/Shopify/sarama/pull/1410)). -- Add kerberos support - ([1366](https://github.com/Shopify/sarama/pull/1366)). - -Improvements: -- Improve sasl_scram_client example - ([1406](https://github.com/Shopify/sarama/pull/1406)). -- Fix shutdown and race-condition in consumer-group example - ([1404](https://github.com/Shopify/sarama/pull/1404)). -- Add support for error codes 77—81 - ([1397](https://github.com/Shopify/sarama/pull/1397)). -- Pool internal objects allocated per message - ([1385](https://github.com/Shopify/sarama/pull/1385)). -- Reduce packet decoder allocations - ([1373](https://github.com/Shopify/sarama/pull/1373)). -- Support timeout when fetching metadata - ([1359](https://github.com/Shopify/sarama/pull/1359)). - -Bug Fixes: -- Fix fetch size integer overflow - ([1376](https://github.com/Shopify/sarama/pull/1376)). -- Handle and log throttled FetchResponses - ([1383](https://github.com/Shopify/sarama/pull/1383)). -- Refactor misspelled word Resouce to Resource - ([1368](https://github.com/Shopify/sarama/pull/1368)). - -## Version 1.22.1 (2019-04-29) - -Improvements: -- Use zstd 1.3.8 - ([1350](https://github.com/Shopify/sarama/pull/1350)). -- Add support for SaslHandshakeRequest v1 - ([1354](https://github.com/Shopify/sarama/pull/1354)). - -Bug Fixes: -- Fix V5 MetadataRequest nullable topics array - ([1353](https://github.com/Shopify/sarama/pull/1353)). -- Use a different SCRAM client for each broker connection - ([1349](https://github.com/Shopify/sarama/pull/1349)). -- Fix AllowAutoTopicCreation for MetadataRequest greater than v3 - ([1344](https://github.com/Shopify/sarama/pull/1344)). - -## Version 1.22.0 (2019-04-09) - -New Features: -- Add Offline Replicas Operation to Client - ([1318](https://github.com/Shopify/sarama/pull/1318)). -- Allow using proxy when connecting to broker - ([1326](https://github.com/Shopify/sarama/pull/1326)). -- Implement ReadCommitted - ([1307](https://github.com/Shopify/sarama/pull/1307)). -- Add support for Kafka 2.2.0 - ([1331](https://github.com/Shopify/sarama/pull/1331)). -- Add SASL SCRAM-SHA-512 and SCRAM-SHA-256 mechanismes - ([1331](https://github.com/Shopify/sarama/pull/1295)). - -Improvements: -- Unregister all broker metrics on broker stop - ([1232](https://github.com/Shopify/sarama/pull/1232)). -- Add SCRAM authentication example - ([1303](https://github.com/Shopify/sarama/pull/1303)). -- Add consumergroup examples - ([1304](https://github.com/Shopify/sarama/pull/1304)). -- Expose consumer batch size metric - ([1296](https://github.com/Shopify/sarama/pull/1296)). -- Add TLS options to console producer and consumer - ([1300](https://github.com/Shopify/sarama/pull/1300)). -- Reduce client close bookkeeping - ([1297](https://github.com/Shopify/sarama/pull/1297)). -- Satisfy error interface in create responses - ([1154](https://github.com/Shopify/sarama/pull/1154)). -- Please lint gods - ([1346](https://github.com/Shopify/sarama/pull/1346)). - -Bug Fixes: -- Fix multi consumer group instance crash - ([1338](https://github.com/Shopify/sarama/pull/1338)). -- Update lz4 to latest version - ([1347](https://github.com/Shopify/sarama/pull/1347)). -- Retry ErrNotCoordinatorForConsumer in new consumergroup session - ([1231](https://github.com/Shopify/sarama/pull/1231)). -- Fix cleanup error handler - ([1332](https://github.com/Shopify/sarama/pull/1332)). -- Fix rate condition in PartitionConsumer - ([1156](https://github.com/Shopify/sarama/pull/1156)). - -## Version 1.21.0 (2019-02-24) - -New Features: -- Add CreateAclRequest, DescribeAclRequest, DeleteAclRequest - ([1236](https://github.com/Shopify/sarama/pull/1236)). -- Add DescribeTopic, DescribeConsumerGroup, ListConsumerGroups, ListConsumerGroupOffsets admin requests - ([1178](https://github.com/Shopify/sarama/pull/1178)). -- Implement SASL/OAUTHBEARER - ([1240](https://github.com/Shopify/sarama/pull/1240)). - -Improvements: -- Add Go mod support - ([1282](https://github.com/Shopify/sarama/pull/1282)). -- Add error codes 73—76 - ([1239](https://github.com/Shopify/sarama/pull/1239)). -- Add retry backoff function - ([1160](https://github.com/Shopify/sarama/pull/1160)). -- Maintain metadata in the producer even when retries are disabled - ([1189](https://github.com/Shopify/sarama/pull/1189)). -- Include ReplicaAssignment in ListTopics - ([1274](https://github.com/Shopify/sarama/pull/1274)). -- Add producer performance tool - ([1222](https://github.com/Shopify/sarama/pull/1222)). -- Add support LogAppend timestamps - ([1258](https://github.com/Shopify/sarama/pull/1258)). - -Bug Fixes: -- Fix potential deadlock when a heartbeat request fails - ([1286](https://github.com/Shopify/sarama/pull/1286)). -- Fix consuming compacted topic - ([1227](https://github.com/Shopify/sarama/pull/1227)). -- Set correct Kafka version for DescribeConfigsRequest v1 - ([1277](https://github.com/Shopify/sarama/pull/1277)). -- Update kafka test version - ([1273](https://github.com/Shopify/sarama/pull/1273)). - -## Version 1.20.1 (2019-01-10) - -New Features: -- Add optional replica id in offset request - ([1100](https://github.com/Shopify/sarama/pull/1100)). - -Improvements: -- Implement DescribeConfigs Request + Response v1 & v2 - ([1230](https://github.com/Shopify/sarama/pull/1230)). -- Reuse compression objects - ([1185](https://github.com/Shopify/sarama/pull/1185)). -- Switch from png to svg for GoDoc link in README - ([1243](https://github.com/Shopify/sarama/pull/1243)). -- Fix typo in deprecation notice for FetchResponseBlock.Records - ([1242](https://github.com/Shopify/sarama/pull/1242)). -- Fix typos in consumer metadata response file - ([1244](https://github.com/Shopify/sarama/pull/1244)). - -Bug Fixes: -- Revert to individual msg retries for non-idempotent - ([1203](https://github.com/Shopify/sarama/pull/1203)). -- Respect MaxMessageBytes limit for uncompressed messages - ([1141](https://github.com/Shopify/sarama/pull/1141)). - -## Version 1.20.0 (2018-12-10) - -New Features: - - Add support for zstd compression - ([#1170](https://github.com/Shopify/sarama/pull/1170)). - - Add support for Idempotent Producer - ([#1152](https://github.com/Shopify/sarama/pull/1152)). - - Add support support for Kafka 2.1.0 - ([#1229](https://github.com/Shopify/sarama/pull/1229)). - - Add support support for OffsetCommit request/response pairs versions v1 to v5 - ([#1201](https://github.com/Shopify/sarama/pull/1201)). - - Add support support for OffsetFetch request/response pair up to version v5 - ([#1198](https://github.com/Shopify/sarama/pull/1198)). - -Improvements: - - Export broker's Rack setting - ([#1173](https://github.com/Shopify/sarama/pull/1173)). - - Always use latest patch version of Go on CI - ([#1202](https://github.com/Shopify/sarama/pull/1202)). - - Add error codes 61 to 72 - ([#1195](https://github.com/Shopify/sarama/pull/1195)). - -Bug Fixes: - - Fix build without cgo - ([#1182](https://github.com/Shopify/sarama/pull/1182)). - - Fix go vet suggestion in consumer group file - ([#1209](https://github.com/Shopify/sarama/pull/1209)). - - Fix typos in code and comments - ([#1228](https://github.com/Shopify/sarama/pull/1228)). - -## Version 1.19.0 (2018-09-27) - -New Features: - - Implement a higher-level consumer group - ([#1099](https://github.com/Shopify/sarama/pull/1099)). - -Improvements: - - Add support for Go 1.11 - ([#1176](https://github.com/Shopify/sarama/pull/1176)). - -Bug Fixes: - - Fix encoding of `MetadataResponse` with version 2 and higher - ([#1174](https://github.com/Shopify/sarama/pull/1174)). - - Fix race condition in mock async producer - ([#1174](https://github.com/Shopify/sarama/pull/1174)). - -## Version 1.18.0 (2018-09-07) - -New Features: - - Make `Partitioner.RequiresConsistency` vary per-message - ([#1112](https://github.com/Shopify/sarama/pull/1112)). - - Add customizable partitioner - ([#1118](https://github.com/Shopify/sarama/pull/1118)). - - Add `ClusterAdmin` support for `CreateTopic`, `DeleteTopic`, `CreatePartitions`, - `DeleteRecords`, `DescribeConfig`, `AlterConfig`, `CreateACL`, `ListAcls`, `DeleteACL` - ([#1055](https://github.com/Shopify/sarama/pull/1055)). - -Improvements: - - Add support for Kafka 2.0.0 - ([#1149](https://github.com/Shopify/sarama/pull/1149)). - - Allow setting `LocalAddr` when dialing an address to support multi-homed hosts - ([#1123](https://github.com/Shopify/sarama/pull/1123)). - - Simpler offset management - ([#1127](https://github.com/Shopify/sarama/pull/1127)). - -Bug Fixes: - - Fix mutation of `ProducerMessage.MetaData` when producing to Kafka - ([#1110](https://github.com/Shopify/sarama/pull/1110)). - - Fix consumer block when response did not contain all the - expected topic/partition blocks - ([#1086](https://github.com/Shopify/sarama/pull/1086)). - - Fix consumer block when response contains only constrol messages - ([#1115](https://github.com/Shopify/sarama/pull/1115)). - - Add timeout config for ClusterAdmin requests - ([#1142](https://github.com/Shopify/sarama/pull/1142)). - - Add version check when producing message with headers - ([#1117](https://github.com/Shopify/sarama/pull/1117)). - - Fix `MetadataRequest` for empty list of topics - ([#1132](https://github.com/Shopify/sarama/pull/1132)). - - Fix producer topic metadata on-demand fetch when topic error happens in metadata response - ([#1125](https://github.com/Shopify/sarama/pull/1125)). - -## Version 1.17.0 (2018-05-30) - -New Features: - - Add support for gzip compression levels - ([#1044](https://github.com/Shopify/sarama/pull/1044)). - - Add support for Metadata request/response pairs versions v1 to v5 - ([#1047](https://github.com/Shopify/sarama/pull/1047), - [#1069](https://github.com/Shopify/sarama/pull/1069)). - - Add versioning to JoinGroup request/response pairs - ([#1098](https://github.com/Shopify/sarama/pull/1098)) - - Add support for CreatePartitions, DeleteGroups, DeleteRecords request/response pairs - ([#1065](https://github.com/Shopify/sarama/pull/1065), - [#1096](https://github.com/Shopify/sarama/pull/1096), - [#1027](https://github.com/Shopify/sarama/pull/1027)). - - Add `Controller()` method to Client interface - ([#1063](https://github.com/Shopify/sarama/pull/1063)). - -Improvements: - - ConsumerMetadataReq/Resp has been migrated to FindCoordinatorReq/Resp - ([#1010](https://github.com/Shopify/sarama/pull/1010)). - - Expose missing protocol parts: `msgSet` and `recordBatch` - ([#1049](https://github.com/Shopify/sarama/pull/1049)). - - Add support for v1 DeleteTopics Request - ([#1052](https://github.com/Shopify/sarama/pull/1052)). - - Add support for Go 1.10 - ([#1064](https://github.com/Shopify/sarama/pull/1064)). - - Claim support for Kafka 1.1.0 - ([#1073](https://github.com/Shopify/sarama/pull/1073)). - -Bug Fixes: - - Fix FindCoordinatorResponse.encode to allow nil Coordinator - ([#1050](https://github.com/Shopify/sarama/pull/1050), - [#1051](https://github.com/Shopify/sarama/pull/1051)). - - Clear all metadata when we have the latest topic info - ([#1033](https://github.com/Shopify/sarama/pull/1033)). - - Make `PartitionConsumer.Close` idempotent - ([#1092](https://github.com/Shopify/sarama/pull/1092)). - -## Version 1.16.0 (2018-02-12) - -New Features: - - Add support for the Create/Delete Topics request/response pairs - ([#1007](https://github.com/Shopify/sarama/pull/1007), - [#1008](https://github.com/Shopify/sarama/pull/1008)). - - Add support for the Describe/Create/Delete ACL request/response pairs - ([#1009](https://github.com/Shopify/sarama/pull/1009)). - - Add support for the five transaction-related request/response pairs - ([#1016](https://github.com/Shopify/sarama/pull/1016)). - -Improvements: - - Permit setting version on mock producer responses - ([#999](https://github.com/Shopify/sarama/pull/999)). - - Add `NewMockBrokerListener` helper for testing TLS connections - ([#1019](https://github.com/Shopify/sarama/pull/1019)). - - Changed the default value for `Consumer.Fetch.Default` from 32KiB to 1MiB - which results in much higher throughput in most cases - ([#1024](https://github.com/Shopify/sarama/pull/1024)). - - Reuse the `time.Ticker` across fetch requests in the PartitionConsumer to - reduce CPU and memory usage when processing many partitions - ([#1028](https://github.com/Shopify/sarama/pull/1028)). - - Assign relative offsets to messages in the producer to save the brokers a - recompression pass - ([#1002](https://github.com/Shopify/sarama/pull/1002), - [#1015](https://github.com/Shopify/sarama/pull/1015)). - -Bug Fixes: - - Fix producing uncompressed batches with the new protocol format - ([#1032](https://github.com/Shopify/sarama/issues/1032)). - - Fix consuming compacted topics with the new protocol format - ([#1005](https://github.com/Shopify/sarama/issues/1005)). - - Fix consuming topics with a mix of protocol formats - ([#1021](https://github.com/Shopify/sarama/issues/1021)). - - Fix consuming when the broker includes multiple batches in a single response - ([#1022](https://github.com/Shopify/sarama/issues/1022)). - - Fix detection of `PartialTrailingMessage` when the partial message was - truncated before the magic value indicating its version - ([#1030](https://github.com/Shopify/sarama/pull/1030)). - - Fix expectation-checking in the mock of `SyncProducer.SendMessages` - ([#1035](https://github.com/Shopify/sarama/pull/1035)). - -## Version 1.15.0 (2017-12-08) - -New Features: - - Claim official support for Kafka 1.0, though it did already work - ([#984](https://github.com/Shopify/sarama/pull/984)). - - Helper methods for Kafka version numbers to/from strings - ([#989](https://github.com/Shopify/sarama/pull/989)). - - Implement CreatePartitions request/response - ([#985](https://github.com/Shopify/sarama/pull/985)). - -Improvements: - - Add error codes 45-60 - ([#986](https://github.com/Shopify/sarama/issues/986)). - -Bug Fixes: - - Fix slow consuming for certain Kafka 0.11/1.0 configurations - ([#982](https://github.com/Shopify/sarama/pull/982)). - - Correctly determine when a FetchResponse contains the new message format - ([#990](https://github.com/Shopify/sarama/pull/990)). - - Fix producing with multiple headers - ([#996](https://github.com/Shopify/sarama/pull/996)). - - Fix handling of truncated record batches - ([#998](https://github.com/Shopify/sarama/pull/998)). - - Fix leaking metrics when closing brokers - ([#991](https://github.com/Shopify/sarama/pull/991)). - -## Version 1.14.0 (2017-11-13) - -New Features: - - Add support for the new Kafka 0.11 record-batch format, including the wire - protocol and the necessary behavioural changes in the producer and consumer. - Transactions and idempotency are not yet supported, but producing and - consuming should work with all the existing bells and whistles (batching, - compression, etc) as well as the new custom headers. Thanks to Vlad Hanciuta - of Arista Networks for this work. Part of - ([#901](https://github.com/Shopify/sarama/issues/901)). - -Bug Fixes: - - Fix encoding of ProduceResponse versions in test - ([#970](https://github.com/Shopify/sarama/pull/970)). - - Return partial replicas list when we have it - ([#975](https://github.com/Shopify/sarama/pull/975)). - -## Version 1.13.0 (2017-10-04) - -New Features: - - Support for FetchRequest version 3 - ([#905](https://github.com/Shopify/sarama/pull/905)). - - Permit setting version on mock FetchResponses - ([#939](https://github.com/Shopify/sarama/pull/939)). - - Add a configuration option to support storing only minimal metadata for - extremely large clusters - ([#937](https://github.com/Shopify/sarama/pull/937)). - - Add `PartitionOffsetManager.ResetOffset` for backtracking tracked offsets - ([#932](https://github.com/Shopify/sarama/pull/932)). - -Improvements: - - Provide the block-level timestamp when consuming compressed messages - ([#885](https://github.com/Shopify/sarama/issues/885)). - - `Client.Replicas` and `Client.InSyncReplicas` now respect the order returned - by the broker, which can be meaningful - ([#930](https://github.com/Shopify/sarama/pull/930)). - - Use a `Ticker` to reduce consumer timer overhead at the cost of higher - variance in the actual timeout - ([#933](https://github.com/Shopify/sarama/pull/933)). - -Bug Fixes: - - Gracefully handle messages with negative timestamps - ([#907](https://github.com/Shopify/sarama/pull/907)). - - Raise a proper error when encountering an unknown message version - ([#940](https://github.com/Shopify/sarama/pull/940)). - -## Version 1.12.0 (2017-05-08) - -New Features: - - Added support for the `ApiVersions` request and response pair, and Kafka - version 0.10.2 ([#867](https://github.com/Shopify/sarama/pull/867)). Note - that you still need to specify the Kafka version in the Sarama configuration - for the time being. - - Added a `Brokers` method to the Client which returns the complete set of - active brokers ([#813](https://github.com/Shopify/sarama/pull/813)). - - Added an `InSyncReplicas` method to the Client which returns the set of all - in-sync broker IDs for the given partition, now that the Kafka versions for - which this was misleading are no longer in our supported set - ([#872](https://github.com/Shopify/sarama/pull/872)). - - Added a `NewCustomHashPartitioner` method which allows constructing a hash - partitioner with a custom hash method in case the default (FNV-1a) is not - suitable - ([#837](https://github.com/Shopify/sarama/pull/837), - [#841](https://github.com/Shopify/sarama/pull/841)). - -Improvements: - - Recognize more Kafka error codes - ([#859](https://github.com/Shopify/sarama/pull/859)). - -Bug Fixes: - - Fix an issue where decoding a malformed FetchRequest would not return the - correct error ([#818](https://github.com/Shopify/sarama/pull/818)). - - Respect ordering of group protocols in JoinGroupRequests. This fix is - transparent if you're using the `AddGroupProtocol` or - `AddGroupProtocolMetadata` helpers; otherwise you will need to switch from - the `GroupProtocols` field (now deprecated) to use `OrderedGroupProtocols` - ([#812](https://github.com/Shopify/sarama/issues/812)). - - Fix an alignment-related issue with atomics on 32-bit architectures - ([#859](https://github.com/Shopify/sarama/pull/859)). - -## Version 1.11.0 (2016-12-20) - -_Important:_ As of Sarama 1.11 it is necessary to set the config value of -`Producer.Return.Successes` to true in order to use the SyncProducer. Previous -versions would silently override this value when instantiating a SyncProducer -which led to unexpected values and data races. - -New Features: - - Metrics! Thanks to Sébastien Launay for all his work on this feature - ([#701](https://github.com/Shopify/sarama/pull/701), - [#746](https://github.com/Shopify/sarama/pull/746), - [#766](https://github.com/Shopify/sarama/pull/766)). - - Add support for LZ4 compression - ([#786](https://github.com/Shopify/sarama/pull/786)). - - Add support for ListOffsetRequest v1 and Kafka 0.10.1 - ([#775](https://github.com/Shopify/sarama/pull/775)). - - Added a `HighWaterMarks` method to the Consumer which aggregates the - `HighWaterMarkOffset` values of its child topic/partitions - ([#769](https://github.com/Shopify/sarama/pull/769)). - -Bug Fixes: - - Fixed producing when using timestamps, compression and Kafka 0.10 - ([#759](https://github.com/Shopify/sarama/pull/759)). - - Added missing decoder methods to DescribeGroups response - ([#756](https://github.com/Shopify/sarama/pull/756)). - - Fix producer shutdown when `Return.Errors` is disabled - ([#787](https://github.com/Shopify/sarama/pull/787)). - - Don't mutate configuration in SyncProducer - ([#790](https://github.com/Shopify/sarama/pull/790)). - - Fix crash on SASL initialization failure - ([#795](https://github.com/Shopify/sarama/pull/795)). - -## Version 1.10.1 (2016-08-30) - -Bug Fixes: - - Fix the documentation for `HashPartitioner` which was incorrect - ([#717](https://github.com/Shopify/sarama/pull/717)). - - Permit client creation even when it is limited by ACLs - ([#722](https://github.com/Shopify/sarama/pull/722)). - - Several fixes to the consumer timer optimization code, regressions introduced - in v1.10.0. Go's timers are finicky - ([#730](https://github.com/Shopify/sarama/pull/730), - [#733](https://github.com/Shopify/sarama/pull/733), - [#734](https://github.com/Shopify/sarama/pull/734)). - - Handle consuming compressed relative offsets with Kafka 0.10 - ([#735](https://github.com/Shopify/sarama/pull/735)). - -## Version 1.10.0 (2016-08-02) - -_Important:_ As of Sarama 1.10 it is necessary to tell Sarama the version of -Kafka you are running against (via the `config.Version` value) in order to use -features that may not be compatible with old Kafka versions. If you don't -specify this value it will default to 0.8.2 (the minimum supported), and trying -to use more recent features (like the offset manager) will fail with an error. - -_Also:_ The offset-manager's behaviour has been changed to match the upstream -java consumer (see [#705](https://github.com/Shopify/sarama/pull/705) and -[#713](https://github.com/Shopify/sarama/pull/713)). If you use the -offset-manager, please ensure that you are committing one *greater* than the -last consumed message offset or else you may end up consuming duplicate -messages. - -New Features: - - Support for Kafka 0.10 - ([#672](https://github.com/Shopify/sarama/pull/672), - [#678](https://github.com/Shopify/sarama/pull/678), - [#681](https://github.com/Shopify/sarama/pull/681), and others). - - Support for configuring the target Kafka version - ([#676](https://github.com/Shopify/sarama/pull/676)). - - Batch producing support in the SyncProducer - ([#677](https://github.com/Shopify/sarama/pull/677)). - - Extend producer mock to allow setting expectations on message contents - ([#667](https://github.com/Shopify/sarama/pull/667)). - -Improvements: - - Support `nil` compressed messages for deleting in compacted topics - ([#634](https://github.com/Shopify/sarama/pull/634)). - - Pre-allocate decoding errors, greatly reducing heap usage and GC time against - misbehaving brokers ([#690](https://github.com/Shopify/sarama/pull/690)). - - Re-use consumer expiry timers, removing one allocation per consumed message - ([#707](https://github.com/Shopify/sarama/pull/707)). - -Bug Fixes: - - Actually default the client ID to "sarama" like we say we do - ([#664](https://github.com/Shopify/sarama/pull/664)). - - Fix a rare issue where `Client.Leader` could return the wrong error - ([#685](https://github.com/Shopify/sarama/pull/685)). - - Fix a possible tight loop in the consumer - ([#693](https://github.com/Shopify/sarama/pull/693)). - - Match upstream's offset-tracking behaviour - ([#705](https://github.com/Shopify/sarama/pull/705)). - - Report UnknownTopicOrPartition errors from the offset manager - ([#706](https://github.com/Shopify/sarama/pull/706)). - - Fix possible negative partition value from the HashPartitioner - ([#709](https://github.com/Shopify/sarama/pull/709)). - -## Version 1.9.0 (2016-05-16) - -New Features: - - Add support for custom offset manager retention durations - ([#602](https://github.com/Shopify/sarama/pull/602)). - - Publish low-level mocks to enable testing of third-party producer/consumer - implementations ([#570](https://github.com/Shopify/sarama/pull/570)). - - Declare support for Golang 1.6 - ([#611](https://github.com/Shopify/sarama/pull/611)). - - Support for SASL plain-text auth - ([#648](https://github.com/Shopify/sarama/pull/648)). - -Improvements: - - Simplified broker locking scheme slightly - ([#604](https://github.com/Shopify/sarama/pull/604)). - - Documentation cleanup - ([#605](https://github.com/Shopify/sarama/pull/605), - [#621](https://github.com/Shopify/sarama/pull/621), - [#654](https://github.com/Shopify/sarama/pull/654)). - -Bug Fixes: - - Fix race condition shutting down the OffsetManager - ([#658](https://github.com/Shopify/sarama/pull/658)). - -## Version 1.8.0 (2016-02-01) - -New Features: - - Full support for Kafka 0.9: - - All protocol messages and fields - ([#586](https://github.com/Shopify/sarama/pull/586), - [#588](https://github.com/Shopify/sarama/pull/588), - [#590](https://github.com/Shopify/sarama/pull/590)). - - Verified that TLS support works - ([#581](https://github.com/Shopify/sarama/pull/581)). - - Fixed the OffsetManager compatibility - ([#585](https://github.com/Shopify/sarama/pull/585)). - -Improvements: - - Optimize for fewer system calls when reading from the network - ([#584](https://github.com/Shopify/sarama/pull/584)). - - Automatically retry `InvalidMessage` errors to match upstream behaviour - ([#589](https://github.com/Shopify/sarama/pull/589)). - -## Version 1.7.0 (2015-12-11) - -New Features: - - Preliminary support for Kafka 0.9 - ([#572](https://github.com/Shopify/sarama/pull/572)). This comes with several - caveats: - - Protocol-layer support is mostly in place - ([#577](https://github.com/Shopify/sarama/pull/577)), however Kafka 0.9 - renamed some messages and fields, which we did not in order to preserve API - compatibility. - - The producer and consumer work against 0.9, but the offset manager does - not ([#573](https://github.com/Shopify/sarama/pull/573)). - - TLS support may or may not work - ([#581](https://github.com/Shopify/sarama/pull/581)). - -Improvements: - - Don't wait for request timeouts on dead brokers, greatly speeding recovery - when the TCP connection is left hanging - ([#548](https://github.com/Shopify/sarama/pull/548)). - - Refactored part of the producer. The new version provides a much more elegant - solution to [#449](https://github.com/Shopify/sarama/pull/449). It is also - slightly more efficient, and much more precise in calculating batch sizes - when compression is used - ([#549](https://github.com/Shopify/sarama/pull/549), - [#550](https://github.com/Shopify/sarama/pull/550), - [#551](https://github.com/Shopify/sarama/pull/551)). - -Bug Fixes: - - Fix race condition in consumer test mock - ([#553](https://github.com/Shopify/sarama/pull/553)). - -## Version 1.6.1 (2015-09-25) - -Bug Fixes: - - Fix panic that could occur if a user-supplied message value failed to encode - ([#449](https://github.com/Shopify/sarama/pull/449)). - -## Version 1.6.0 (2015-09-04) - -New Features: - - Implementation of a consumer offset manager using the APIs introduced in - Kafka 0.8.2. The API is designed mainly for integration into a future - high-level consumer, not for direct use, although it is *possible* to use it - directly. - ([#461](https://github.com/Shopify/sarama/pull/461)). - -Improvements: - - CRC32 calculation is much faster on machines with SSE4.2 instructions, - removing a major hotspot from most profiles - ([#255](https://github.com/Shopify/sarama/pull/255)). - -Bug Fixes: - - Make protocol decoding more robust against some malformed packets generated - by go-fuzz ([#523](https://github.com/Shopify/sarama/pull/523), - [#525](https://github.com/Shopify/sarama/pull/525)) or found in other ways - ([#528](https://github.com/Shopify/sarama/pull/528)). - - Fix a potential race condition panic in the consumer on shutdown - ([#529](https://github.com/Shopify/sarama/pull/529)). - -## Version 1.5.0 (2015-08-17) - -New Features: - - TLS-encrypted network connections are now supported. This feature is subject - to change when Kafka releases built-in TLS support, but for now this is - enough to work with TLS-terminating proxies - ([#154](https://github.com/Shopify/sarama/pull/154)). - -Improvements: - - The consumer will not block if a single partition is not drained by the user; - all other partitions will continue to consume normally - ([#485](https://github.com/Shopify/sarama/pull/485)). - - Formatting of error strings has been much improved - ([#495](https://github.com/Shopify/sarama/pull/495)). - - Internal refactoring of the producer for code cleanliness and to enable - future work ([#300](https://github.com/Shopify/sarama/pull/300)). - -Bug Fixes: - - Fix a potential deadlock in the consumer on shutdown - ([#475](https://github.com/Shopify/sarama/pull/475)). - -## Version 1.4.3 (2015-07-21) - -Bug Fixes: - - Don't include the partitioner in the producer's "fetch partitions" - circuit-breaker ([#466](https://github.com/Shopify/sarama/pull/466)). - - Don't retry messages until the broker is closed when abandoning a broker in - the producer ([#468](https://github.com/Shopify/sarama/pull/468)). - - Update the import path for snappy-go, it has moved again and the API has - changed slightly ([#486](https://github.com/Shopify/sarama/pull/486)). - -## Version 1.4.2 (2015-05-27) - -Bug Fixes: - - Update the import path for snappy-go, it has moved from google code to github - ([#456](https://github.com/Shopify/sarama/pull/456)). - -## Version 1.4.1 (2015-05-25) - -Improvements: - - Optimizations when decoding snappy messages, thanks to John Potocny - ([#446](https://github.com/Shopify/sarama/pull/446)). - -Bug Fixes: - - Fix hypothetical race conditions on producer shutdown - ([#450](https://github.com/Shopify/sarama/pull/450), - [#451](https://github.com/Shopify/sarama/pull/451)). - -## Version 1.4.0 (2015-05-01) - -New Features: - - The consumer now implements `Topics()` and `Partitions()` methods to enable - users to dynamically choose what topics/partitions to consume without - instantiating a full client - ([#431](https://github.com/Shopify/sarama/pull/431)). - - The partition-consumer now exposes the high water mark offset value returned - by the broker via the `HighWaterMarkOffset()` method ([#339](https://github.com/Shopify/sarama/pull/339)). - - Added a `kafka-console-consumer` tool capable of handling multiple - partitions, and deprecated the now-obsolete `kafka-console-partitionConsumer` - ([#439](https://github.com/Shopify/sarama/pull/439), - [#442](https://github.com/Shopify/sarama/pull/442)). - -Improvements: - - The producer's logging during retry scenarios is more consistent, more - useful, and slightly less verbose - ([#429](https://github.com/Shopify/sarama/pull/429)). - - The client now shuffles its initial list of seed brokers in order to prevent - thundering herd on the first broker in the list - ([#441](https://github.com/Shopify/sarama/pull/441)). - -Bug Fixes: - - The producer now correctly manages its state if retries occur when it is - shutting down, fixing several instances of confusing behaviour and at least - one potential deadlock ([#419](https://github.com/Shopify/sarama/pull/419)). - - The consumer now handles messages for different partitions asynchronously, - making it much more resilient to specific user code ordering - ([#325](https://github.com/Shopify/sarama/pull/325)). - -## Version 1.3.0 (2015-04-16) - -New Features: - - The client now tracks consumer group coordinators using - ConsumerMetadataRequests similar to how it tracks partition leadership using - regular MetadataRequests ([#411](https://github.com/Shopify/sarama/pull/411)). - This adds two methods to the client API: - - `Coordinator(consumerGroup string) (*Broker, error)` - - `RefreshCoordinator(consumerGroup string) error` - -Improvements: - - ConsumerMetadataResponses now automatically create a Broker object out of the - ID/address/port combination for the Coordinator; accessing the fields - individually has been deprecated - ([#413](https://github.com/Shopify/sarama/pull/413)). - - Much improved handling of `OffsetOutOfRange` errors in the consumer. - Consumers will fail to start if the provided offset is out of range - ([#418](https://github.com/Shopify/sarama/pull/418)) - and they will automatically shut down if the offset falls out of range - ([#424](https://github.com/Shopify/sarama/pull/424)). - - Small performance improvement in encoding and decoding protocol messages - ([#427](https://github.com/Shopify/sarama/pull/427)). - -Bug Fixes: - - Fix a rare race condition in the client's background metadata refresher if - it happens to be activated while the client is being closed - ([#422](https://github.com/Shopify/sarama/pull/422)). - -## Version 1.2.0 (2015-04-07) - -Improvements: - - The producer's behaviour when `Flush.Frequency` is set is now more intuitive - ([#389](https://github.com/Shopify/sarama/pull/389)). - - The producer is now somewhat more memory-efficient during and after retrying - messages due to an improved queue implementation - ([#396](https://github.com/Shopify/sarama/pull/396)). - - The consumer produces much more useful logging output when leadership - changes ([#385](https://github.com/Shopify/sarama/pull/385)). - - The client's `GetOffset` method will now automatically refresh metadata and - retry once in the event of stale information or similar - ([#394](https://github.com/Shopify/sarama/pull/394)). - - Broker connections now have support for using TCP keepalives - ([#407](https://github.com/Shopify/sarama/issues/407)). - -Bug Fixes: - - The OffsetCommitRequest message now correctly implements all three possible - API versions ([#390](https://github.com/Shopify/sarama/pull/390), - [#400](https://github.com/Shopify/sarama/pull/400)). - -## Version 1.1.0 (2015-03-20) - -Improvements: - - Wrap the producer's partitioner call in a circuit-breaker so that repeatedly - broken topics don't choke throughput - ([#373](https://github.com/Shopify/sarama/pull/373)). - -Bug Fixes: - - Fix the producer's internal reference counting in certain unusual scenarios - ([#367](https://github.com/Shopify/sarama/pull/367)). - - Fix the consumer's internal reference counting in certain unusual scenarios - ([#369](https://github.com/Shopify/sarama/pull/369)). - - Fix a condition where the producer's internal control messages could have - gotten stuck ([#368](https://github.com/Shopify/sarama/pull/368)). - - Fix an issue where invalid partition lists would be cached when asking for - metadata for a non-existant topic ([#372](https://github.com/Shopify/sarama/pull/372)). - - -## Version 1.0.0 (2015-03-17) - -Version 1.0.0 is the first tagged version, and is almost a complete rewrite. The primary differences with previous untagged versions are: - -- The producer has been rewritten; there is now a `SyncProducer` with a blocking API, and an `AsyncProducer` that is non-blocking. -- The consumer has been rewritten to only open one connection per broker instead of one connection per partition. -- The main types of Sarama are now interfaces to make depedency injection easy; mock implementations for `Consumer`, `SyncProducer` and `AsyncProducer` are provided in the `github.com/Shopify/sarama/mocks` package. -- For most uses cases, it is no longer necessary to open a `Client`; this will be done for you. -- All the configuration values have been unified in the `Config` struct. -- Much improved test suite. diff --git a/vendor/github.com/Shopify/sarama/Dockerfile.kafka b/vendor/github.com/Shopify/sarama/Dockerfile.kafka deleted file mode 100644 index 48a9c178a..000000000 --- a/vendor/github.com/Shopify/sarama/Dockerfile.kafka +++ /dev/null @@ -1,27 +0,0 @@ -FROM registry.access.redhat.com/ubi8/ubi-minimal:latest - -USER root - -RUN microdnf update \ - && microdnf install curl gzip java-11-openjdk-headless tar \ - && microdnf clean all - -ENV JAVA_HOME=/usr/lib/jvm/jre-11 - -# https://docs.oracle.com/javase/7/docs/technotes/guides/net/properties.html -# Ensure Java doesn't cache any dns results -RUN cd /etc/java/java-11-openjdk/*/conf/security \ - && sed -e '/networkaddress.cache.ttl/d' -e '/networkaddress.cache.negative.ttl/d' -i java.security \ - && echo 'networkaddress.cache.ttl=0' >> java.security \ - && echo 'networkaddress.cache.negative.ttl=0' >> java.security - -# https://github.com/apache/kafka/blob/53eeaad946cd053e9eb1a762972d4efeacb8e4fc/tests/docker/Dockerfile#L65-L69 -ARG KAFKA_MIRROR="https://s3-us-west-2.amazonaws.com/kafka-packages" -RUN mkdir -p "/opt/kafka-2.8.2" && chmod a+rw /opt/kafka-2.8.2 && curl -s "$KAFKA_MIRROR/kafka_2.12-2.8.2.tgz" | tar xz --strip-components=1 -C "/opt/kafka-2.8.2" -RUN mkdir -p "/opt/kafka-3.1.2" && chmod a+rw /opt/kafka-3.1.2 && curl -s "$KAFKA_MIRROR/kafka_2.12-3.1.2.tgz" | tar xz --strip-components=1 -C "/opt/kafka-3.1.2" -RUN mkdir -p "/opt/kafka-3.2.3" && chmod a+rw /opt/kafka-3.2.3 && curl -s "$KAFKA_MIRROR/kafka_2.12-3.2.3.tgz" | tar xz --strip-components=1 -C "/opt/kafka-3.2.3" -RUN mkdir -p "/opt/kafka-3.3.1" && chmod a+rw /opt/kafka-3.3.1 && curl -s "$KAFKA_MIRROR/kafka_2.12-3.3.1.tgz" | tar xz --strip-components=1 -C "/opt/kafka-3.3.1" - -COPY entrypoint.sh / - -ENTRYPOINT ["/entrypoint.sh"] diff --git a/vendor/github.com/Shopify/sarama/decompress.go b/vendor/github.com/Shopify/sarama/decompress.go deleted file mode 100644 index aa7fb7498..000000000 --- a/vendor/github.com/Shopify/sarama/decompress.go +++ /dev/null @@ -1,61 +0,0 @@ -package sarama - -import ( - "bytes" - "compress/gzip" - "fmt" - "io" - "sync" - - snappy "github.com/eapache/go-xerial-snappy" - "github.com/pierrec/lz4/v4" -) - -var ( - lz4ReaderPool = sync.Pool{ - New: func() interface{} { - return lz4.NewReader(nil) - }, - } - - gzipReaderPool sync.Pool -) - -func decompress(cc CompressionCodec, data []byte) ([]byte, error) { - switch cc { - case CompressionNone: - return data, nil - case CompressionGZIP: - var err error - reader, ok := gzipReaderPool.Get().(*gzip.Reader) - if !ok { - reader, err = gzip.NewReader(bytes.NewReader(data)) - } else { - err = reader.Reset(bytes.NewReader(data)) - } - - if err != nil { - return nil, err - } - - defer gzipReaderPool.Put(reader) - - return io.ReadAll(reader) - case CompressionSnappy: - return snappy.Decode(data) - case CompressionLZ4: - reader, ok := lz4ReaderPool.Get().(*lz4.Reader) - if !ok { - reader = lz4.NewReader(bytes.NewReader(data)) - } else { - reader.Reset(bytes.NewReader(data)) - } - defer lz4ReaderPool.Put(reader) - - return io.ReadAll(reader) - case CompressionZSTD: - return zstdDecompress(ZstdDecoderParams{}, nil, data) - default: - return nil, PacketDecodingError{fmt.Sprintf("invalid compression specified (%d)", cc)} - } -} diff --git a/vendor/github.com/Shopify/sarama/entrypoint.sh b/vendor/github.com/Shopify/sarama/entrypoint.sh deleted file mode 100644 index 8cd2efcb9..000000000 --- a/vendor/github.com/Shopify/sarama/entrypoint.sh +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/bash - -KAFKA_VERSION="${KAFKA_VERSION:-3.3.1}" -KAFKA_HOME="/opt/kafka-${KAFKA_VERSION}" - -if [ ! -d "${KAFKA_HOME}" ]; then - echo 'Error: KAFKA_VERSION '$KAFKA_VERSION' not available in this image at '$KAFKA_HOME - exit 1 -fi - -cd "${KAFKA_HOME}" || exit 1 - -# discard all empty/commented lines -sed -e '/^#/d' -e '/^$/d' -i"" config/server.properties - -# emulate kafka_configure_from_environment_variables from bitnami/bitnami-docker-kafka -for var in "${!KAFKA_CFG_@}"; do - key="$(echo "$var" | sed -e 's/^KAFKA_CFG_//g' -e 's/_/\./g' -e 's/.*/\L&/')" - sed -e '/^'$key'/d' -i"" config/server.properties - value="${!var}" - echo "$key=$value" >>config/server.properties -done - -sort config/server.properties - -exec bin/kafka-server-start.sh config/server.properties diff --git a/vendor/github.com/Shopify/sarama/list_groups_request.go b/vendor/github.com/Shopify/sarama/list_groups_request.go deleted file mode 100644 index 4553b2d2e..000000000 --- a/vendor/github.com/Shopify/sarama/list_groups_request.go +++ /dev/null @@ -1,27 +0,0 @@ -package sarama - -type ListGroupsRequest struct{} - -func (r *ListGroupsRequest) encode(pe packetEncoder) error { - return nil -} - -func (r *ListGroupsRequest) decode(pd packetDecoder, version int16) (err error) { - return nil -} - -func (r *ListGroupsRequest) key() int16 { - return 16 -} - -func (r *ListGroupsRequest) version() int16 { - return 0 -} - -func (r *ListGroupsRequest) headerVersion() int16 { - return 1 -} - -func (r *ListGroupsRequest) requiredVersion() KafkaVersion { - return V0_9_0_0 -} diff --git a/vendor/github.com/Shopify/sarama/list_groups_response.go b/vendor/github.com/Shopify/sarama/list_groups_response.go deleted file mode 100644 index 777bae7e6..000000000 --- a/vendor/github.com/Shopify/sarama/list_groups_response.go +++ /dev/null @@ -1,73 +0,0 @@ -package sarama - -type ListGroupsResponse struct { - Err KError - Groups map[string]string -} - -func (r *ListGroupsResponse) encode(pe packetEncoder) error { - pe.putInt16(int16(r.Err)) - - if err := pe.putArrayLength(len(r.Groups)); err != nil { - return err - } - for groupId, protocolType := range r.Groups { - if err := pe.putString(groupId); err != nil { - return err - } - if err := pe.putString(protocolType); err != nil { - return err - } - } - - return nil -} - -func (r *ListGroupsResponse) decode(pd packetDecoder, version int16) error { - kerr, err := pd.getInt16() - if err != nil { - return err - } - - r.Err = KError(kerr) - - n, err := pd.getArrayLength() - if err != nil { - return err - } - if n == 0 { - return nil - } - - r.Groups = make(map[string]string) - for i := 0; i < n; i++ { - groupId, err := pd.getString() - if err != nil { - return err - } - protocolType, err := pd.getString() - if err != nil { - return err - } - - r.Groups[groupId] = protocolType - } - - return nil -} - -func (r *ListGroupsResponse) key() int16 { - return 16 -} - -func (r *ListGroupsResponse) version() int16 { - return 0 -} - -func (r *ListGroupsResponse) headerVersion() int16 { - return 0 -} - -func (r *ListGroupsResponse) requiredVersion() KafkaVersion { - return V0_9_0_0 -} diff --git a/vendor/github.com/Shopify/sarama/metadata_request.go b/vendor/github.com/Shopify/sarama/metadata_request.go deleted file mode 100644 index a1b6ac09c..000000000 --- a/vendor/github.com/Shopify/sarama/metadata_request.go +++ /dev/null @@ -1,108 +0,0 @@ -package sarama - -type MetadataRequest struct { - // Version defines the protocol version to use for encode and decode - Version int16 - // Topics contains the topics to fetch metadata for. - Topics []string - // AllowAutoTopicCreation contains a If this is true, the broker may auto-create topics that we requested which do not already exist, if it is configured to do so. - AllowAutoTopicCreation bool -} - -func NewMetadataRequest(version KafkaVersion, topics []string) *MetadataRequest { - m := &MetadataRequest{Topics: topics} - if version.IsAtLeast(V2_1_0_0) { - m.Version = 7 - } else if version.IsAtLeast(V2_0_0_0) { - m.Version = 6 - } else if version.IsAtLeast(V1_0_0_0) { - m.Version = 5 - } else if version.IsAtLeast(V0_10_0_0) { - m.Version = 1 - } - return m -} - -func (r *MetadataRequest) encode(pe packetEncoder) (err error) { - if r.Version < 0 || r.Version > 12 { - return PacketEncodingError{"invalid or unsupported MetadataRequest version field"} - } - if r.Version == 0 || len(r.Topics) > 0 { - err := pe.putArrayLength(len(r.Topics)) - if err != nil { - return err - } - - for i := range r.Topics { - err = pe.putString(r.Topics[i]) - if err != nil { - return err - } - } - } else { - pe.putInt32(-1) - } - - if r.Version >= 4 { - pe.putBool(r.AllowAutoTopicCreation) - } - - return nil -} - -func (r *MetadataRequest) decode(pd packetDecoder, version int16) (err error) { - r.Version = version - size, err := pd.getInt32() - if err != nil { - return err - } - if size > 0 { - r.Topics = make([]string, size) - for i := range r.Topics { - topic, err := pd.getString() - if err != nil { - return err - } - r.Topics[i] = topic - } - } - - if r.Version >= 4 { - if r.AllowAutoTopicCreation, err = pd.getBool(); err != nil { - return err - } - } - - return nil -} - -func (r *MetadataRequest) key() int16 { - return 3 -} - -func (r *MetadataRequest) version() int16 { - return r.Version -} - -func (r *MetadataRequest) headerVersion() int16 { - return 1 -} - -func (r *MetadataRequest) requiredVersion() KafkaVersion { - switch r.Version { - case 1: - return V0_10_0_0 - case 2: - return V0_10_1_0 - case 3, 4: - return V0_11_0_0 - case 5: - return V1_0_0_0 - case 6: - return V2_0_0_0 - case 7: - return V2_1_0_0 - default: - return MinVersion - } -} diff --git a/vendor/github.com/aws/aws-sdk-go/aws/endpoints/defaults.go b/vendor/github.com/aws/aws-sdk-go/aws/endpoints/defaults.go index f6bb14d06..002261b0d 100644 --- a/vendor/github.com/aws/aws-sdk-go/aws/endpoints/defaults.go +++ b/vendor/github.com/aws/aws-sdk-go/aws/endpoints/defaults.go @@ -661,6 +661,15 @@ var awsPartition = partition{ }: endpoint{ Hostname: "acm-pca-fips.ca-central-1.amazonaws.com", }, + endpointKey{ + Region: "ca-west-1", + }: endpoint{}, + endpointKey{ + Region: "ca-west-1", + Variant: fipsVariant, + }: endpoint{ + Hostname: "acm-pca-fips.ca-west-1.amazonaws.com", + }, endpointKey{ Region: "eu-central-1", }: endpoint{}, @@ -694,6 +703,15 @@ var awsPartition = partition{ }, Deprecated: boxedTrue, }, + endpointKey{ + Region: "fips-ca-west-1", + }: endpoint{ + Hostname: "acm-pca-fips.ca-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "ca-west-1", + }, + Deprecated: boxedTrue, + }, endpointKey{ Region: "fips-us-east-1", }: endpoint{ @@ -847,6 +865,9 @@ var awsPartition = partition{ endpointKey{ Region: "ap-northeast-2", }: endpoint{}, + endpointKey{ + Region: "ap-northeast-3", + }: endpoint{}, endpointKey{ Region: "ap-south-1", }: endpoint{}, @@ -905,6 +926,9 @@ var awsPartition = partition{ endpointKey{ Region: "ap-northeast-2", }: endpoint{}, + endpointKey{ + Region: "ap-northeast-3", + }: endpoint{}, endpointKey{ Region: "ap-south-1", }: endpoint{}, @@ -963,6 +987,9 @@ var awsPartition = partition{ endpointKey{ Region: "ap-northeast-2", }: endpoint{}, + endpointKey{ + Region: "ap-northeast-3", + }: endpoint{}, endpointKey{ Region: "ap-south-1", }: endpoint{}, @@ -1882,6 +1909,9 @@ var awsPartition = partition{ endpointKey{ Region: "ap-south-1", }: endpoint{}, + endpointKey{ + Region: "ap-south-2", + }: endpoint{}, endpointKey{ Region: "ap-southeast-1", }: endpoint{}, @@ -1906,6 +1936,9 @@ var awsPartition = partition{ endpointKey{ Region: "eu-west-3", }: endpoint{}, + endpointKey{ + Region: "me-central-1", + }: endpoint{}, endpointKey{ Region: "sa-east-1", }: endpoint{}, @@ -3758,6 +3791,15 @@ var awsPartition = partition{ }: endpoint{ Hostname: "athena.ca-central-1.api.aws", }, + endpointKey{ + Region: "ca-west-1", + }: endpoint{}, + endpointKey{ + Region: "ca-west-1", + Variant: dualStackVariant, + }: endpoint{ + Hostname: "athena.ca-west-1.api.aws", + }, endpointKey{ Region: "eu-central-1", }: endpoint{}, @@ -4018,278 +4060,82 @@ var awsPartition = partition{ Region: "us-east-1", }: endpoint{}, endpointKey{ - Region: "us-east-2", - }: endpoint{}, - endpointKey{ - Region: "us-west-1", - }: endpoint{}, - endpointKey{ - Region: "us-west-2", - }: endpoint{}, - }, - }, - "autoscaling": service{ - Defaults: endpointDefaults{ - defaultKey{}: endpoint{ - Protocols: []string{"http", "https"}, - }, - }, - Endpoints: serviceEndpoints{ - endpointKey{ - Region: "af-south-1", - }: endpoint{}, - endpointKey{ - Region: "ap-east-1", - }: endpoint{}, - endpointKey{ - Region: "ap-northeast-1", - }: endpoint{}, - endpointKey{ - Region: "ap-northeast-2", - }: endpoint{}, - endpointKey{ - Region: "ap-northeast-3", - }: endpoint{}, - endpointKey{ - Region: "ap-south-1", - }: endpoint{}, - endpointKey{ - Region: "ap-south-2", - }: endpoint{}, - endpointKey{ - Region: "ap-southeast-1", - }: endpoint{}, - endpointKey{ - Region: "ap-southeast-2", - }: endpoint{}, - endpointKey{ - Region: "ap-southeast-3", - }: endpoint{}, - endpointKey{ - Region: "ap-southeast-4", - }: endpoint{}, - endpointKey{ - Region: "ca-central-1", - }: endpoint{}, - endpointKey{ - Region: "ca-central-1", - Variant: fipsVariant, - }: endpoint{ - Hostname: "autoscaling-fips.ca-central-1.amazonaws.com", - }, - endpointKey{ - Region: "ca-west-1", - }: endpoint{}, - endpointKey{ - Region: "ca-west-1", + Region: "us-east-1", Variant: fipsVariant, }: endpoint{ - Hostname: "autoscaling-fips.ca-west-1.amazonaws.com", - }, - endpointKey{ - Region: "eu-central-1", - }: endpoint{}, - endpointKey{ - Region: "eu-central-2", - }: endpoint{}, - endpointKey{ - Region: "eu-north-1", - }: endpoint{}, - endpointKey{ - Region: "eu-south-1", - }: endpoint{}, - endpointKey{ - Region: "eu-south-2", - }: endpoint{}, - endpointKey{ - Region: "eu-west-1", - }: endpoint{}, - endpointKey{ - Region: "eu-west-2", - }: endpoint{}, - endpointKey{ - Region: "eu-west-3", - }: endpoint{}, - endpointKey{ - Region: "fips-ca-central-1", - }: endpoint{ - Hostname: "autoscaling-fips.ca-central-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "ca-central-1", - }, - Deprecated: boxedTrue, + Hostname: "auditmanager-fips.us-east-1.amazonaws.com", }, endpointKey{ - Region: "fips-ca-west-1", - }: endpoint{ - Hostname: "autoscaling-fips.ca-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "ca-west-1", - }, - Deprecated: boxedTrue, - }, - endpointKey{ - Region: "fips-us-east-1", + Region: "us-east-1-fips", }: endpoint{ - Hostname: "autoscaling-fips.us-east-1.amazonaws.com", + Hostname: "auditmanager-fips.us-east-1.amazonaws.com", CredentialScope: credentialScope{ Region: "us-east-1", }, Deprecated: boxedTrue, }, endpointKey{ - Region: "fips-us-east-2", - }: endpoint{ - Hostname: "autoscaling-fips.us-east-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-2", - }, - Deprecated: boxedTrue, - }, + Region: "us-east-2", + }: endpoint{}, endpointKey{ - Region: "fips-us-west-1", + Region: "us-east-2", + Variant: fipsVariant, }: endpoint{ - Hostname: "autoscaling-fips.us-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-1", - }, - Deprecated: boxedTrue, + Hostname: "auditmanager-fips.us-east-2.amazonaws.com", }, endpointKey{ - Region: "fips-us-west-2", + Region: "us-east-2-fips", }: endpoint{ - Hostname: "autoscaling-fips.us-west-2.amazonaws.com", + Hostname: "auditmanager-fips.us-east-2.amazonaws.com", CredentialScope: credentialScope{ - Region: "us-west-2", + Region: "us-east-2", }, Deprecated: boxedTrue, }, endpointKey{ - Region: "il-central-1", - }: endpoint{}, - endpointKey{ - Region: "me-central-1", - }: endpoint{}, - endpointKey{ - Region: "me-south-1", - }: endpoint{}, - endpointKey{ - Region: "sa-east-1", - }: endpoint{}, - endpointKey{ - Region: "us-east-1", + Region: "us-west-1", }: endpoint{}, endpointKey{ - Region: "us-east-1", + Region: "us-west-1", Variant: fipsVariant, }: endpoint{ - Hostname: "autoscaling-fips.us-east-1.amazonaws.com", + Hostname: "auditmanager-fips.us-west-1.amazonaws.com", }, endpointKey{ - Region: "us-east-2", - }: endpoint{}, - endpointKey{ - Region: "us-east-2", - Variant: fipsVariant, + Region: "us-west-1-fips", }: endpoint{ - Hostname: "autoscaling-fips.us-east-2.amazonaws.com", + Hostname: "auditmanager-fips.us-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-1", + }, + Deprecated: boxedTrue, }, endpointKey{ - Region: "us-west-1", + Region: "us-west-2", }: endpoint{}, endpointKey{ - Region: "us-west-1", + Region: "us-west-2", Variant: fipsVariant, }: endpoint{ - Hostname: "autoscaling-fips.us-west-1.amazonaws.com", + Hostname: "auditmanager-fips.us-west-2.amazonaws.com", }, endpointKey{ - Region: "us-west-2", - }: endpoint{}, - endpointKey{ - Region: "us-west-2", - Variant: fipsVariant, + Region: "us-west-2-fips", }: endpoint{ - Hostname: "autoscaling-fips.us-west-2.amazonaws.com", + Hostname: "auditmanager-fips.us-west-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-2", + }, + Deprecated: boxedTrue, }, }, }, - "autoscaling-plans": service{ + "autoscaling": service{ Defaults: endpointDefaults{ defaultKey{}: endpoint{ Protocols: []string{"http", "https"}, }, }, - Endpoints: serviceEndpoints{ - endpointKey{ - Region: "af-south-1", - }: endpoint{}, - endpointKey{ - Region: "ap-east-1", - }: endpoint{}, - endpointKey{ - Region: "ap-northeast-1", - }: endpoint{}, - endpointKey{ - Region: "ap-northeast-2", - }: endpoint{}, - endpointKey{ - Region: "ap-northeast-3", - }: endpoint{}, - endpointKey{ - Region: "ap-south-1", - }: endpoint{}, - endpointKey{ - Region: "ap-southeast-1", - }: endpoint{}, - endpointKey{ - Region: "ap-southeast-2", - }: endpoint{}, - endpointKey{ - Region: "ap-southeast-3", - }: endpoint{}, - endpointKey{ - Region: "ca-central-1", - }: endpoint{}, - endpointKey{ - Region: "eu-central-1", - }: endpoint{}, - endpointKey{ - Region: "eu-north-1", - }: endpoint{}, - endpointKey{ - Region: "eu-south-1", - }: endpoint{}, - endpointKey{ - Region: "eu-west-1", - }: endpoint{}, - endpointKey{ - Region: "eu-west-2", - }: endpoint{}, - endpointKey{ - Region: "eu-west-3", - }: endpoint{}, - endpointKey{ - Region: "me-south-1", - }: endpoint{}, - endpointKey{ - Region: "sa-east-1", - }: endpoint{}, - endpointKey{ - Region: "us-east-1", - }: endpoint{}, - endpointKey{ - Region: "us-east-2", - }: endpoint{}, - endpointKey{ - Region: "us-west-1", - }: endpoint{}, - endpointKey{ - Region: "us-west-2", - }: endpoint{}, - }, - }, - "backup": service{ Endpoints: serviceEndpoints{ endpointKey{ Region: "af-south-1", @@ -4327,6 +4173,265 @@ var awsPartition = partition{ endpointKey{ Region: "ca-central-1", }: endpoint{}, + endpointKey{ + Region: "ca-central-1", + Variant: fipsVariant, + }: endpoint{ + Hostname: "autoscaling-fips.ca-central-1.amazonaws.com", + }, + endpointKey{ + Region: "ca-west-1", + }: endpoint{}, + endpointKey{ + Region: "ca-west-1", + Variant: fipsVariant, + }: endpoint{ + Hostname: "autoscaling-fips.ca-west-1.amazonaws.com", + }, + endpointKey{ + Region: "eu-central-1", + }: endpoint{}, + endpointKey{ + Region: "eu-central-2", + }: endpoint{}, + endpointKey{ + Region: "eu-north-1", + }: endpoint{}, + endpointKey{ + Region: "eu-south-1", + }: endpoint{}, + endpointKey{ + Region: "eu-south-2", + }: endpoint{}, + endpointKey{ + Region: "eu-west-1", + }: endpoint{}, + endpointKey{ + Region: "eu-west-2", + }: endpoint{}, + endpointKey{ + Region: "eu-west-3", + }: endpoint{}, + endpointKey{ + Region: "fips-ca-central-1", + }: endpoint{ + Hostname: "autoscaling-fips.ca-central-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "ca-central-1", + }, + Deprecated: boxedTrue, + }, + endpointKey{ + Region: "fips-ca-west-1", + }: endpoint{ + Hostname: "autoscaling-fips.ca-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "ca-west-1", + }, + Deprecated: boxedTrue, + }, + endpointKey{ + Region: "fips-us-east-1", + }: endpoint{ + Hostname: "autoscaling-fips.us-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-1", + }, + Deprecated: boxedTrue, + }, + endpointKey{ + Region: "fips-us-east-2", + }: endpoint{ + Hostname: "autoscaling-fips.us-east-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-2", + }, + Deprecated: boxedTrue, + }, + endpointKey{ + Region: "fips-us-west-1", + }: endpoint{ + Hostname: "autoscaling-fips.us-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-1", + }, + Deprecated: boxedTrue, + }, + endpointKey{ + Region: "fips-us-west-2", + }: endpoint{ + Hostname: "autoscaling-fips.us-west-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-2", + }, + Deprecated: boxedTrue, + }, + endpointKey{ + Region: "il-central-1", + }: endpoint{}, + endpointKey{ + Region: "me-central-1", + }: endpoint{}, + endpointKey{ + Region: "me-south-1", + }: endpoint{}, + endpointKey{ + Region: "sa-east-1", + }: endpoint{}, + endpointKey{ + Region: "us-east-1", + }: endpoint{}, + endpointKey{ + Region: "us-east-1", + Variant: fipsVariant, + }: endpoint{ + Hostname: "autoscaling-fips.us-east-1.amazonaws.com", + }, + endpointKey{ + Region: "us-east-2", + }: endpoint{}, + endpointKey{ + Region: "us-east-2", + Variant: fipsVariant, + }: endpoint{ + Hostname: "autoscaling-fips.us-east-2.amazonaws.com", + }, + endpointKey{ + Region: "us-west-1", + }: endpoint{}, + endpointKey{ + Region: "us-west-1", + Variant: fipsVariant, + }: endpoint{ + Hostname: "autoscaling-fips.us-west-1.amazonaws.com", + }, + endpointKey{ + Region: "us-west-2", + }: endpoint{}, + endpointKey{ + Region: "us-west-2", + Variant: fipsVariant, + }: endpoint{ + Hostname: "autoscaling-fips.us-west-2.amazonaws.com", + }, + }, + }, + "autoscaling-plans": service{ + Defaults: endpointDefaults{ + defaultKey{}: endpoint{ + Protocols: []string{"http", "https"}, + }, + }, + Endpoints: serviceEndpoints{ + endpointKey{ + Region: "af-south-1", + }: endpoint{}, + endpointKey{ + Region: "ap-east-1", + }: endpoint{}, + endpointKey{ + Region: "ap-northeast-1", + }: endpoint{}, + endpointKey{ + Region: "ap-northeast-2", + }: endpoint{}, + endpointKey{ + Region: "ap-northeast-3", + }: endpoint{}, + endpointKey{ + Region: "ap-south-1", + }: endpoint{}, + endpointKey{ + Region: "ap-southeast-1", + }: endpoint{}, + endpointKey{ + Region: "ap-southeast-2", + }: endpoint{}, + endpointKey{ + Region: "ap-southeast-3", + }: endpoint{}, + endpointKey{ + Region: "ca-central-1", + }: endpoint{}, + endpointKey{ + Region: "eu-central-1", + }: endpoint{}, + endpointKey{ + Region: "eu-north-1", + }: endpoint{}, + endpointKey{ + Region: "eu-south-1", + }: endpoint{}, + endpointKey{ + Region: "eu-west-1", + }: endpoint{}, + endpointKey{ + Region: "eu-west-2", + }: endpoint{}, + endpointKey{ + Region: "eu-west-3", + }: endpoint{}, + endpointKey{ + Region: "me-south-1", + }: endpoint{}, + endpointKey{ + Region: "sa-east-1", + }: endpoint{}, + endpointKey{ + Region: "us-east-1", + }: endpoint{}, + endpointKey{ + Region: "us-east-2", + }: endpoint{}, + endpointKey{ + Region: "us-west-1", + }: endpoint{}, + endpointKey{ + Region: "us-west-2", + }: endpoint{}, + }, + }, + "backup": service{ + Endpoints: serviceEndpoints{ + endpointKey{ + Region: "af-south-1", + }: endpoint{}, + endpointKey{ + Region: "ap-east-1", + }: endpoint{}, + endpointKey{ + Region: "ap-northeast-1", + }: endpoint{}, + endpointKey{ + Region: "ap-northeast-2", + }: endpoint{}, + endpointKey{ + Region: "ap-northeast-3", + }: endpoint{}, + endpointKey{ + Region: "ap-south-1", + }: endpoint{}, + endpointKey{ + Region: "ap-south-2", + }: endpoint{}, + endpointKey{ + Region: "ap-southeast-1", + }: endpoint{}, + endpointKey{ + Region: "ap-southeast-2", + }: endpoint{}, + endpointKey{ + Region: "ap-southeast-3", + }: endpoint{}, + endpointKey{ + Region: "ap-southeast-4", + }: endpoint{}, + endpointKey{ + Region: "ca-central-1", + }: endpoint{}, + endpointKey{ + Region: "ca-west-1", + }: endpoint{}, endpointKey{ Region: "eu-central-1", }: endpoint{}, @@ -4696,6 +4801,9 @@ var awsPartition = partition{ endpointKey{ Region: "ap-southeast-1", }: endpoint{}, + endpointKey{ + Region: "ap-southeast-2", + }: endpoint{}, endpointKey{ Region: "bedrock-ap-northeast-1", }: endpoint{ @@ -4712,6 +4820,14 @@ var awsPartition = partition{ Region: "ap-southeast-1", }, }, + endpointKey{ + Region: "bedrock-ap-southeast-2", + }: endpoint{ + Hostname: "bedrock.ap-southeast-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "ap-southeast-2", + }, + }, endpointKey{ Region: "bedrock-eu-central-1", }: endpoint{ @@ -4720,6 +4836,14 @@ var awsPartition = partition{ Region: "eu-central-1", }, }, + endpointKey{ + Region: "bedrock-eu-west-3", + }: endpoint{ + Hostname: "bedrock.eu-west-3.amazonaws.com", + CredentialScope: credentialScope{ + Region: "eu-west-3", + }, + }, endpointKey{ Region: "bedrock-fips-us-east-1", }: endpoint{ @@ -4752,6 +4876,14 @@ var awsPartition = partition{ Region: "ap-southeast-1", }, }, + endpointKey{ + Region: "bedrock-runtime-ap-southeast-2", + }: endpoint{ + Hostname: "bedrock-runtime.ap-southeast-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "ap-southeast-2", + }, + }, endpointKey{ Region: "bedrock-runtime-eu-central-1", }: endpoint{ @@ -4760,6 +4892,14 @@ var awsPartition = partition{ Region: "eu-central-1", }, }, + endpointKey{ + Region: "bedrock-runtime-eu-west-3", + }: endpoint{ + Hostname: "bedrock-runtime.eu-west-3.amazonaws.com", + CredentialScope: credentialScope{ + Region: "eu-west-3", + }, + }, endpointKey{ Region: "bedrock-runtime-fips-us-east-1", }: endpoint{ @@ -4811,6 +4951,9 @@ var awsPartition = partition{ endpointKey{ Region: "eu-central-1", }: endpoint{}, + endpointKey{ + Region: "eu-west-3", + }: endpoint{}, endpointKey{ Region: "us-east-1", }: endpoint{}, @@ -5853,6 +5996,9 @@ var awsPartition = partition{ endpointKey{ Region: "eu-west-3", }: endpoint{}, + endpointKey{ + Region: "me-central-1", + }: endpoint{}, endpointKey{ Region: "me-south-1", }: endpoint{}, @@ -6768,12 +6914,18 @@ var awsPartition = partition{ endpointKey{ Region: "ap-southeast-3", }: endpoint{}, + endpointKey{ + Region: "ap-southeast-4", + }: endpoint{}, endpointKey{ Region: "ca-central-1", }: endpoint{}, endpointKey{ Region: "eu-central-1", }: endpoint{}, + endpointKey{ + Region: "eu-central-2", + }: endpoint{}, endpointKey{ Region: "eu-north-1", }: endpoint{}, @@ -6828,6 +6980,9 @@ var awsPartition = partition{ endpointKey{ Region: "il-central-1", }: endpoint{}, + endpointKey{ + Region: "me-central-1", + }: endpoint{}, endpointKey{ Region: "me-south-1", }: endpoint{}, @@ -6889,6 +7044,9 @@ var awsPartition = partition{ endpointKey{ Region: "ap-south-1", }: endpoint{}, + endpointKey{ + Region: "ap-south-2", + }: endpoint{}, endpointKey{ Region: "ap-southeast-1", }: endpoint{}, @@ -6898,12 +7056,18 @@ var awsPartition = partition{ endpointKey{ Region: "ap-southeast-3", }: endpoint{}, + endpointKey{ + Region: "ap-southeast-4", + }: endpoint{}, endpointKey{ Region: "ca-central-1", }: endpoint{}, endpointKey{ Region: "eu-central-1", }: endpoint{}, + endpointKey{ + Region: "eu-central-2", + }: endpoint{}, endpointKey{ Region: "eu-north-1", }: endpoint{}, @@ -6958,6 +7122,9 @@ var awsPartition = partition{ endpointKey{ Region: "il-central-1", }: endpoint{}, + endpointKey{ + Region: "me-central-1", + }: endpoint{}, endpointKey{ Region: "me-south-1", }: endpoint{}, @@ -7137,12 +7304,27 @@ var awsPartition = partition{ endpointKey{ Region: "ca-central-1", }: endpoint{}, + endpointKey{ + Region: "ca-central-1", + Variant: fipsVariant, + }: endpoint{ + Hostname: "comprehendmedical-fips.ca-central-1.amazonaws.com", + }, endpointKey{ Region: "eu-west-1", }: endpoint{}, endpointKey{ Region: "eu-west-2", }: endpoint{}, + endpointKey{ + Region: "fips-ca-central-1", + }: endpoint{ + Hostname: "comprehendmedical-fips.ca-central-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "ca-central-1", + }, + Deprecated: boxedTrue, + }, endpointKey{ Region: "fips-us-east-1", }: endpoint{ @@ -10263,6 +10445,15 @@ var awsPartition = partition{ }: endpoint{ Hostname: "ec2-fips.ca-central-1.amazonaws.com", }, + endpointKey{ + Region: "ca-west-1", + }: endpoint{}, + endpointKey{ + Region: "ca-west-1", + Variant: fipsVariant, + }: endpoint{ + Hostname: "ec2-fips.ca-west-1.amazonaws.com", + }, endpointKey{ Region: "eu-central-1", }: endpoint{}, @@ -10302,6 +10493,15 @@ var awsPartition = partition{ }, Deprecated: boxedTrue, }, + endpointKey{ + Region: "fips-ca-west-1", + }: endpoint{ + Hostname: "ec2-fips.ca-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "ca-west-1", + }, + Deprecated: boxedTrue, + }, endpointKey{ Region: "fips-us-east-1", }: endpoint{ @@ -11310,6 +11510,15 @@ var awsPartition = partition{ }: endpoint{ Hostname: "elasticfilesystem-fips.ca-central-1.amazonaws.com", }, + endpointKey{ + Region: "ca-west-1", + }: endpoint{}, + endpointKey{ + Region: "ca-west-1", + Variant: fipsVariant, + }: endpoint{ + Hostname: "elasticfilesystem-fips.ca-west-1.amazonaws.com", + }, endpointKey{ Region: "eu-central-1", }: endpoint{}, @@ -11490,6 +11699,15 @@ var awsPartition = partition{ }, Deprecated: boxedTrue, }, + endpointKey{ + Region: "fips-ca-west-1", + }: endpoint{ + Hostname: "elasticfilesystem-fips.ca-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "ca-west-1", + }, + Deprecated: boxedTrue, + }, endpointKey{ Region: "fips-eu-central-1", }: endpoint{ @@ -12282,6 +12500,9 @@ var awsPartition = partition{ endpointKey{ Region: "eu-south-1", }: endpoint{}, + endpointKey{ + Region: "eu-south-2", + }: endpoint{}, endpointKey{ Region: "eu-west-1", }: endpoint{}, @@ -12430,6 +12651,9 @@ var awsPartition = partition{ endpointKey{ Region: "eu-south-1", }: endpoint{}, + endpointKey{ + Region: "eu-south-2", + }: endpoint{}, endpointKey{ Region: "eu-west-1", }: endpoint{}, @@ -14437,6 +14661,9 @@ var awsPartition = partition{ endpointKey{ Region: "ca-central-1", }: endpoint{}, + endpointKey{ + Region: "ca-west-1", + }: endpoint{}, endpointKey{ Region: "eu-central-1", }: endpoint{}, @@ -14866,6 +15093,9 @@ var awsPartition = partition{ endpointKey{ Region: "ca-central-1", }: endpoint{}, + endpointKey{ + Region: "ca-west-1", + }: endpoint{}, endpointKey{ Region: "eu-central-1", }: endpoint{}, @@ -15155,6 +15385,9 @@ var awsPartition = partition{ endpointKey{ Region: "ap-south-1", }: endpoint{}, + endpointKey{ + Region: "ap-south-2", + }: endpoint{}, endpointKey{ Region: "ap-southeast-1", }: endpoint{}, @@ -15182,6 +15415,9 @@ var awsPartition = partition{ endpointKey{ Region: "eu-south-1", }: endpoint{}, + endpointKey{ + Region: "eu-south-2", + }: endpoint{}, endpointKey{ Region: "eu-west-1", }: endpoint{}, @@ -16198,16 +16434,6 @@ var awsPartition = partition{ }: endpoint{}, }, }, - "iotroborunner": service{ - Endpoints: serviceEndpoints{ - endpointKey{ - Region: "eu-central-1", - }: endpoint{}, - endpointKey{ - Region: "us-east-1", - }: endpoint{}, - }, - }, "iotsecuredtunneling": service{ Defaults: endpointDefaults{ defaultKey{}: endpoint{}, @@ -17488,6 +17714,9 @@ var awsPartition = partition{ endpointKey{ Region: "ca-central-1", }: endpoint{}, + endpointKey{ + Region: "ca-west-1", + }: endpoint{}, endpointKey{ Region: "eu-central-1", }: endpoint{}, @@ -18163,6 +18392,9 @@ var awsPartition = partition{ endpointKey{ Region: "ca-central-1", }: endpoint{}, + endpointKey{ + Region: "ca-west-1", + }: endpoint{}, endpointKey{ Region: "eu-central-1", }: endpoint{}, @@ -18636,6 +18868,9 @@ var awsPartition = partition{ endpointKey{ Region: "ca-central-1", }: endpoint{}, + endpointKey{ + Region: "ca-west-1", + }: endpoint{}, endpointKey{ Region: "eu-central-1", }: endpoint{}, @@ -19096,66 +19331,222 @@ var awsPartition = partition{ endpointKey{ Region: "af-south-1", }: endpoint{}, + endpointKey{ + Region: "af-south-1", + Variant: dualStackVariant, + }: endpoint{ + Hostname: "logs.af-south-1.api.aws", + }, endpointKey{ Region: "ap-east-1", }: endpoint{}, + endpointKey{ + Region: "ap-east-1", + Variant: dualStackVariant, + }: endpoint{ + Hostname: "logs.ap-east-1.api.aws", + }, endpointKey{ Region: "ap-northeast-1", }: endpoint{}, + endpointKey{ + Region: "ap-northeast-1", + Variant: dualStackVariant, + }: endpoint{ + Hostname: "logs.ap-northeast-1.api.aws", + }, endpointKey{ Region: "ap-northeast-2", }: endpoint{}, + endpointKey{ + Region: "ap-northeast-2", + Variant: dualStackVariant, + }: endpoint{ + Hostname: "logs.ap-northeast-2.api.aws", + }, endpointKey{ Region: "ap-northeast-3", }: endpoint{}, + endpointKey{ + Region: "ap-northeast-3", + Variant: dualStackVariant, + }: endpoint{ + Hostname: "logs.ap-northeast-3.api.aws", + }, endpointKey{ Region: "ap-south-1", }: endpoint{}, + endpointKey{ + Region: "ap-south-1", + Variant: dualStackVariant, + }: endpoint{ + Hostname: "logs.ap-south-1.api.aws", + }, endpointKey{ Region: "ap-south-2", }: endpoint{}, + endpointKey{ + Region: "ap-south-2", + Variant: dualStackVariant, + }: endpoint{ + Hostname: "logs.ap-south-2.api.aws", + }, endpointKey{ Region: "ap-southeast-1", }: endpoint{}, + endpointKey{ + Region: "ap-southeast-1", + Variant: dualStackVariant, + }: endpoint{ + Hostname: "logs.ap-southeast-1.api.aws", + }, endpointKey{ Region: "ap-southeast-2", }: endpoint{}, + endpointKey{ + Region: "ap-southeast-2", + Variant: dualStackVariant, + }: endpoint{ + Hostname: "logs.ap-southeast-2.api.aws", + }, endpointKey{ Region: "ap-southeast-3", }: endpoint{}, + endpointKey{ + Region: "ap-southeast-3", + Variant: dualStackVariant, + }: endpoint{ + Hostname: "logs.ap-southeast-3.api.aws", + }, endpointKey{ Region: "ap-southeast-4", }: endpoint{}, + endpointKey{ + Region: "ap-southeast-4", + Variant: dualStackVariant, + }: endpoint{ + Hostname: "logs.ap-southeast-4.api.aws", + }, endpointKey{ Region: "ca-central-1", }: endpoint{}, + endpointKey{ + Region: "ca-central-1", + Variant: dualStackVariant, + }: endpoint{ + Hostname: "logs.ca-central-1.api.aws", + }, + endpointKey{ + Region: "ca-central-1", + Variant: fipsVariant, + }: endpoint{ + Hostname: "logs-fips.ca-central-1.amazonaws.com", + }, endpointKey{ Region: "ca-west-1", }: endpoint{}, + endpointKey{ + Region: "ca-west-1", + Variant: dualStackVariant, + }: endpoint{ + Hostname: "logs.ca-west-1.api.aws", + }, + endpointKey{ + Region: "ca-west-1", + Variant: fipsVariant, + }: endpoint{ + Hostname: "logs-fips.ca-west-1.amazonaws.com", + }, endpointKey{ Region: "eu-central-1", }: endpoint{}, + endpointKey{ + Region: "eu-central-1", + Variant: dualStackVariant, + }: endpoint{ + Hostname: "logs.eu-central-1.api.aws", + }, endpointKey{ Region: "eu-central-2", }: endpoint{}, + endpointKey{ + Region: "eu-central-2", + Variant: dualStackVariant, + }: endpoint{ + Hostname: "logs.eu-central-2.api.aws", + }, endpointKey{ Region: "eu-north-1", }: endpoint{}, + endpointKey{ + Region: "eu-north-1", + Variant: dualStackVariant, + }: endpoint{ + Hostname: "logs.eu-north-1.api.aws", + }, endpointKey{ Region: "eu-south-1", }: endpoint{}, + endpointKey{ + Region: "eu-south-1", + Variant: dualStackVariant, + }: endpoint{ + Hostname: "logs.eu-south-1.api.aws", + }, endpointKey{ Region: "eu-south-2", }: endpoint{}, + endpointKey{ + Region: "eu-south-2", + Variant: dualStackVariant, + }: endpoint{ + Hostname: "logs.eu-south-2.api.aws", + }, endpointKey{ Region: "eu-west-1", }: endpoint{}, + endpointKey{ + Region: "eu-west-1", + Variant: dualStackVariant, + }: endpoint{ + Hostname: "logs.eu-west-1.api.aws", + }, endpointKey{ Region: "eu-west-2", }: endpoint{}, + endpointKey{ + Region: "eu-west-2", + Variant: dualStackVariant, + }: endpoint{ + Hostname: "logs.eu-west-2.api.aws", + }, endpointKey{ Region: "eu-west-3", }: endpoint{}, + endpointKey{ + Region: "eu-west-3", + Variant: dualStackVariant, + }: endpoint{ + Hostname: "logs.eu-west-3.api.aws", + }, + endpointKey{ + Region: "fips-ca-central-1", + }: endpoint{ + Hostname: "logs-fips.ca-central-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "ca-central-1", + }, + Deprecated: boxedTrue, + }, + endpointKey{ + Region: "fips-ca-west-1", + }: endpoint{ + Hostname: "logs-fips.ca-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "ca-west-1", + }, + Deprecated: boxedTrue, + }, endpointKey{ Region: "fips-us-east-1", }: endpoint{ @@ -19195,18 +19586,48 @@ var awsPartition = partition{ endpointKey{ Region: "il-central-1", }: endpoint{}, + endpointKey{ + Region: "il-central-1", + Variant: dualStackVariant, + }: endpoint{ + Hostname: "logs.il-central-1.api.aws", + }, endpointKey{ Region: "me-central-1", }: endpoint{}, + endpointKey{ + Region: "me-central-1", + Variant: dualStackVariant, + }: endpoint{ + Hostname: "logs.me-central-1.api.aws", + }, endpointKey{ Region: "me-south-1", }: endpoint{}, + endpointKey{ + Region: "me-south-1", + Variant: dualStackVariant, + }: endpoint{ + Hostname: "logs.me-south-1.api.aws", + }, endpointKey{ Region: "sa-east-1", }: endpoint{}, + endpointKey{ + Region: "sa-east-1", + Variant: dualStackVariant, + }: endpoint{ + Hostname: "logs.sa-east-1.api.aws", + }, endpointKey{ Region: "us-east-1", }: endpoint{}, + endpointKey{ + Region: "us-east-1", + Variant: dualStackVariant, + }: endpoint{ + Hostname: "logs.us-east-1.api.aws", + }, endpointKey{ Region: "us-east-1", Variant: fipsVariant, @@ -19216,6 +19637,12 @@ var awsPartition = partition{ endpointKey{ Region: "us-east-2", }: endpoint{}, + endpointKey{ + Region: "us-east-2", + Variant: dualStackVariant, + }: endpoint{ + Hostname: "logs.us-east-2.api.aws", + }, endpointKey{ Region: "us-east-2", Variant: fipsVariant, @@ -19225,6 +19652,12 @@ var awsPartition = partition{ endpointKey{ Region: "us-west-1", }: endpoint{}, + endpointKey{ + Region: "us-west-1", + Variant: dualStackVariant, + }: endpoint{ + Hostname: "logs.us-west-1.api.aws", + }, endpointKey{ Region: "us-west-1", Variant: fipsVariant, @@ -19234,6 +19667,12 @@ var awsPartition = partition{ endpointKey{ Region: "us-west-2", }: endpoint{}, + endpointKey{ + Region: "us-west-2", + Variant: dualStackVariant, + }: endpoint{ + Hostname: "logs.us-west-2.api.aws", + }, endpointKey{ Region: "us-west-2", Variant: fipsVariant, @@ -19350,6 +19789,9 @@ var awsPartition = partition{ endpointKey{ Region: "eu-south-1", }: endpoint{}, + endpointKey{ + Region: "eu-south-2", + }: endpoint{}, endpointKey{ Region: "eu-west-1", }: endpoint{}, @@ -19389,6 +19831,9 @@ var awsPartition = partition{ Deprecated: boxedTrue, }, + endpointKey{ + Region: "il-central-1", + }: endpoint{}, endpointKey{ Region: "sa-east-1", }: endpoint{}, @@ -19600,12 +20045,30 @@ var awsPartition = partition{ }, "media-pipelines-chime": service{ Endpoints: serviceEndpoints{ + endpointKey{ + Region: "ap-northeast-1", + }: endpoint{}, + endpointKey{ + Region: "ap-northeast-2", + }: endpoint{}, + endpointKey{ + Region: "ap-south-1", + }: endpoint{}, endpointKey{ Region: "ap-southeast-1", }: endpoint{}, + endpointKey{ + Region: "ap-southeast-2", + }: endpoint{}, + endpointKey{ + Region: "ca-central-1", + }: endpoint{}, endpointKey{ Region: "eu-central-1", }: endpoint{}, + endpointKey{ + Region: "eu-west-2", + }: endpoint{}, endpointKey{ Region: "us-east-1", }: endpoint{}, @@ -19809,6 +20272,9 @@ var awsPartition = partition{ }, Deprecated: boxedTrue, }, + endpointKey{ + Region: "me-central-1", + }: endpoint{}, endpointKey{ Region: "sa-east-1", }: endpoint{}, @@ -19858,15 +20324,27 @@ var awsPartition = partition{ endpointKey{ Region: "ap-northeast-2", }: endpoint{}, + endpointKey{ + Region: "ap-northeast-3", + }: endpoint{}, endpointKey{ Region: "ap-south-1", }: endpoint{}, + endpointKey{ + Region: "ap-south-2", + }: endpoint{}, endpointKey{ Region: "ap-southeast-1", }: endpoint{}, endpointKey{ Region: "ap-southeast-2", }: endpoint{}, + endpointKey{ + Region: "ap-southeast-4", + }: endpoint{}, + endpointKey{ + Region: "ca-central-1", + }: endpoint{}, endpointKey{ Region: "eu-central-1", }: endpoint{}, @@ -19909,6 +20387,9 @@ var awsPartition = partition{ }, Deprecated: boxedTrue, }, + endpointKey{ + Region: "me-central-1", + }: endpoint{}, endpointKey{ Region: "sa-east-1", }: endpoint{}, @@ -21668,6 +22149,14 @@ var awsPartition = partition{ Region: "ap-south-1", }, }, + endpointKey{ + Region: "ap-south-2", + }: endpoint{ + Hostname: "oidc.ap-south-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "ap-south-2", + }, + }, endpointKey{ Region: "ap-southeast-1", }: endpoint{ @@ -21692,6 +22181,14 @@ var awsPartition = partition{ Region: "ap-southeast-3", }, }, + endpointKey{ + Region: "ap-southeast-4", + }: endpoint{ + Hostname: "oidc.ap-southeast-4.amazonaws.com", + CredentialScope: credentialScope{ + Region: "ap-southeast-4", + }, + }, endpointKey{ Region: "ca-central-1", }: endpoint{ @@ -21732,6 +22229,14 @@ var awsPartition = partition{ Region: "eu-south-1", }, }, + endpointKey{ + Region: "eu-south-2", + }: endpoint{ + Hostname: "oidc.eu-south-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "eu-south-2", + }, + }, endpointKey{ Region: "eu-west-1", }: endpoint{ @@ -22053,12 +22558,18 @@ var awsPartition = partition{ endpointKey{ Region: "eu-central-1", }: endpoint{}, + endpointKey{ + Region: "eu-north-1", + }: endpoint{}, endpointKey{ Region: "eu-west-1", }: endpoint{}, endpointKey{ Region: "eu-west-2", }: endpoint{}, + endpointKey{ + Region: "sa-east-1", + }: endpoint{}, endpointKey{ Region: "us-east-1", }: endpoint{}, @@ -22811,6 +23322,14 @@ var awsPartition = partition{ Region: "ap-south-1", }, }, + endpointKey{ + Region: "ap-south-2", + }: endpoint{ + Hostname: "portal.sso.ap-south-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "ap-south-2", + }, + }, endpointKey{ Region: "ap-southeast-1", }: endpoint{ @@ -22835,6 +23354,14 @@ var awsPartition = partition{ Region: "ap-southeast-3", }, }, + endpointKey{ + Region: "ap-southeast-4", + }: endpoint{ + Hostname: "portal.sso.ap-southeast-4.amazonaws.com", + CredentialScope: credentialScope{ + Region: "ap-southeast-4", + }, + }, endpointKey{ Region: "ca-central-1", }: endpoint{ @@ -22875,6 +23402,14 @@ var awsPartition = partition{ Region: "eu-south-1", }, }, + endpointKey{ + Region: "eu-south-2", + }: endpoint{ + Hostname: "portal.sso.eu-south-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "eu-south-2", + }, + }, endpointKey{ Region: "eu-west-1", }: endpoint{ @@ -22965,6 +23500,19 @@ var awsPartition = partition{ }, }, }, + "private-networks": service{ + Endpoints: serviceEndpoints{ + endpointKey{ + Region: "us-east-1", + }: endpoint{}, + endpointKey{ + Region: "us-east-2", + }: endpoint{}, + endpointKey{ + Region: "us-west-2", + }: endpoint{}, + }, + }, "profile": service{ Endpoints: serviceEndpoints{ endpointKey{ @@ -24427,6 +24975,12 @@ var awsPartition = partition{ endpointKey{ Region: "ca-central-1", }: endpoint{}, + endpointKey{ + Region: "ca-central-1", + Variant: fipsVariant, + }: endpoint{ + Hostname: "redshift-serverless-fips.ca-central-1.amazonaws.com", + }, endpointKey{ Region: "eu-central-1", }: endpoint{}, @@ -24442,18 +24996,87 @@ var awsPartition = partition{ endpointKey{ Region: "eu-west-3", }: endpoint{}, + endpointKey{ + Region: "fips-ca-central-1", + }: endpoint{ + Hostname: "redshift-serverless-fips.ca-central-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "ca-central-1", + }, + Deprecated: boxedTrue, + }, + endpointKey{ + Region: "fips-us-east-1", + }: endpoint{ + Hostname: "redshift-serverless-fips.us-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-1", + }, + Deprecated: boxedTrue, + }, + endpointKey{ + Region: "fips-us-east-2", + }: endpoint{ + Hostname: "redshift-serverless-fips.us-east-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-2", + }, + Deprecated: boxedTrue, + }, + endpointKey{ + Region: "fips-us-west-1", + }: endpoint{ + Hostname: "redshift-serverless-fips.us-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-1", + }, + Deprecated: boxedTrue, + }, + endpointKey{ + Region: "fips-us-west-2", + }: endpoint{ + Hostname: "redshift-serverless-fips.us-west-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-2", + }, + Deprecated: boxedTrue, + }, endpointKey{ Region: "us-east-1", }: endpoint{}, + endpointKey{ + Region: "us-east-1", + Variant: fipsVariant, + }: endpoint{ + Hostname: "redshift-serverless-fips.us-east-1.amazonaws.com", + }, endpointKey{ Region: "us-east-2", }: endpoint{}, + endpointKey{ + Region: "us-east-2", + Variant: fipsVariant, + }: endpoint{ + Hostname: "redshift-serverless-fips.us-east-2.amazonaws.com", + }, endpointKey{ Region: "us-west-1", }: endpoint{}, + endpointKey{ + Region: "us-west-1", + Variant: fipsVariant, + }: endpoint{ + Hostname: "redshift-serverless-fips.us-west-1.amazonaws.com", + }, endpointKey{ Region: "us-west-2", }: endpoint{}, + endpointKey{ + Region: "us-west-2", + Variant: fipsVariant, + }: endpoint{ + Hostname: "redshift-serverless-fips.us-west-2.amazonaws.com", + }, }, }, "rekognition": service{ @@ -24777,153 +25400,94 @@ var awsPartition = partition{ }, }, "resource-explorer-2": service{ - Defaults: endpointDefaults{ - defaultKey{}: endpoint{ - DNSSuffix: "api.aws", - }, - defaultKey{ - Variant: fipsVariant, - }: endpoint{ - Hostname: "{service}-fips.{region}.{dnsSuffix}", - DNSSuffix: "api.aws", - }, - }, Endpoints: serviceEndpoints{ endpointKey{ Region: "af-south-1", - }: endpoint{ - Hostname: "resource-explorer-2.af-south-1.api.aws", - }, + }: endpoint{}, endpointKey{ Region: "ap-east-1", - }: endpoint{ - Hostname: "resource-explorer-2.ap-east-1.api.aws", - }, + }: endpoint{}, endpointKey{ Region: "ap-northeast-1", - }: endpoint{ - Hostname: "resource-explorer-2.ap-northeast-1.api.aws", - }, + }: endpoint{}, endpointKey{ Region: "ap-northeast-2", - }: endpoint{ - Hostname: "resource-explorer-2.ap-northeast-2.api.aws", - }, + }: endpoint{}, endpointKey{ Region: "ap-northeast-3", - }: endpoint{ - Hostname: "resource-explorer-2.ap-northeast-3.api.aws", - }, + }: endpoint{}, endpointKey{ Region: "ap-south-1", - }: endpoint{ - Hostname: "resource-explorer-2.ap-south-1.api.aws", - }, + }: endpoint{}, endpointKey{ Region: "ap-south-2", - }: endpoint{ - Hostname: "resource-explorer-2.ap-south-2.api.aws", - }, + }: endpoint{}, endpointKey{ Region: "ap-southeast-1", - }: endpoint{ - Hostname: "resource-explorer-2.ap-southeast-1.api.aws", - }, + }: endpoint{}, endpointKey{ Region: "ap-southeast-2", - }: endpoint{ - Hostname: "resource-explorer-2.ap-southeast-2.api.aws", - }, + }: endpoint{}, endpointKey{ Region: "ap-southeast-3", - }: endpoint{ - Hostname: "resource-explorer-2.ap-southeast-3.api.aws", - }, + }: endpoint{}, endpointKey{ Region: "ap-southeast-4", - }: endpoint{ - Hostname: "resource-explorer-2.ap-southeast-4.api.aws", - }, + }: endpoint{}, endpointKey{ Region: "ca-central-1", - }: endpoint{ - Hostname: "resource-explorer-2.ca-central-1.api.aws", - }, + }: endpoint{}, + endpointKey{ + Region: "ca-west-1", + }: endpoint{}, endpointKey{ Region: "eu-central-1", - }: endpoint{ - Hostname: "resource-explorer-2.eu-central-1.api.aws", - }, + }: endpoint{}, endpointKey{ Region: "eu-central-2", - }: endpoint{ - Hostname: "resource-explorer-2.eu-central-2.api.aws", - }, + }: endpoint{}, endpointKey{ Region: "eu-north-1", - }: endpoint{ - Hostname: "resource-explorer-2.eu-north-1.api.aws", - }, + }: endpoint{}, endpointKey{ Region: "eu-south-1", - }: endpoint{ - Hostname: "resource-explorer-2.eu-south-1.api.aws", - }, + }: endpoint{}, + endpointKey{ + Region: "eu-south-2", + }: endpoint{}, endpointKey{ Region: "eu-west-1", - }: endpoint{ - Hostname: "resource-explorer-2.eu-west-1.api.aws", - }, + }: endpoint{}, endpointKey{ Region: "eu-west-2", - }: endpoint{ - Hostname: "resource-explorer-2.eu-west-2.api.aws", - }, + }: endpoint{}, endpointKey{ Region: "eu-west-3", - }: endpoint{ - Hostname: "resource-explorer-2.eu-west-3.api.aws", - }, + }: endpoint{}, endpointKey{ Region: "il-central-1", - }: endpoint{ - Hostname: "resource-explorer-2.il-central-1.api.aws", - }, + }: endpoint{}, endpointKey{ Region: "me-central-1", - }: endpoint{ - Hostname: "resource-explorer-2.me-central-1.api.aws", - }, + }: endpoint{}, endpointKey{ Region: "me-south-1", - }: endpoint{ - Hostname: "resource-explorer-2.me-south-1.api.aws", - }, + }: endpoint{}, endpointKey{ Region: "sa-east-1", - }: endpoint{ - Hostname: "resource-explorer-2.sa-east-1.api.aws", - }, + }: endpoint{}, endpointKey{ Region: "us-east-1", - }: endpoint{ - Hostname: "resource-explorer-2.us-east-1.api.aws", - }, + }: endpoint{}, endpointKey{ Region: "us-east-2", - }: endpoint{ - Hostname: "resource-explorer-2.us-east-2.api.aws", - }, + }: endpoint{}, endpointKey{ Region: "us-west-1", - }: endpoint{ - Hostname: "resource-explorer-2.us-west-1.api.aws", - }, + }: endpoint{}, endpointKey{ Region: "us-west-2", - }: endpoint{ - Hostname: "resource-explorer-2.us-west-2.api.aws", - }, + }: endpoint{}, }, }, "resource-groups": service{ @@ -25140,6 +25704,216 @@ var awsPartition = partition{ endpointKey{ Region: "ca-central-1", }: endpoint{}, + endpointKey{ + Region: "ca-west-1", + }: endpoint{}, + endpointKey{ + Region: "eu-central-1", + }: endpoint{}, + endpointKey{ + Region: "eu-central-2", + }: endpoint{}, + endpointKey{ + Region: "eu-north-1", + }: endpoint{}, + endpointKey{ + Region: "eu-south-1", + }: endpoint{}, + endpointKey{ + Region: "eu-south-2", + }: endpoint{}, + endpointKey{ + Region: "eu-west-1", + }: endpoint{}, + endpointKey{ + Region: "eu-west-2", + }: endpoint{}, + endpointKey{ + Region: "eu-west-3", + }: endpoint{}, + endpointKey{ + Region: "fips-us-east-1", + }: endpoint{ + Hostname: "rolesanywhere-fips.us-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-1", + }, + Deprecated: boxedTrue, + }, + endpointKey{ + Region: "fips-us-east-2", + }: endpoint{ + Hostname: "rolesanywhere-fips.us-east-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-2", + }, + Deprecated: boxedTrue, + }, + endpointKey{ + Region: "fips-us-west-1", + }: endpoint{ + Hostname: "rolesanywhere-fips.us-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-1", + }, + Deprecated: boxedTrue, + }, + endpointKey{ + Region: "fips-us-west-2", + }: endpoint{ + Hostname: "rolesanywhere-fips.us-west-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-2", + }, + Deprecated: boxedTrue, + }, + endpointKey{ + Region: "il-central-1", + }: endpoint{}, + endpointKey{ + Region: "me-central-1", + }: endpoint{}, + endpointKey{ + Region: "me-south-1", + }: endpoint{}, + endpointKey{ + Region: "sa-east-1", + }: endpoint{}, + endpointKey{ + Region: "us-east-1", + }: endpoint{}, + endpointKey{ + Region: "us-east-1", + Variant: fipsVariant, + }: endpoint{ + Hostname: "rolesanywhere-fips.us-east-1.amazonaws.com", + }, + endpointKey{ + Region: "us-east-2", + }: endpoint{}, + endpointKey{ + Region: "us-east-2", + Variant: fipsVariant, + }: endpoint{ + Hostname: "rolesanywhere-fips.us-east-2.amazonaws.com", + }, + endpointKey{ + Region: "us-west-1", + }: endpoint{}, + endpointKey{ + Region: "us-west-1", + Variant: fipsVariant, + }: endpoint{ + Hostname: "rolesanywhere-fips.us-west-1.amazonaws.com", + }, + endpointKey{ + Region: "us-west-2", + }: endpoint{}, + endpointKey{ + Region: "us-west-2", + Variant: fipsVariant, + }: endpoint{ + Hostname: "rolesanywhere-fips.us-west-2.amazonaws.com", + }, + }, + }, + "route53": service{ + PartitionEndpoint: "aws-global", + IsRegionalized: boxedFalse, + Endpoints: serviceEndpoints{ + endpointKey{ + Region: "aws-global", + }: endpoint{ + Hostname: "route53.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-1", + }, + }, + endpointKey{ + Region: "aws-global", + Variant: fipsVariant, + }: endpoint{ + Hostname: "route53-fips.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-1", + }, + }, + endpointKey{ + Region: "fips-aws-global", + }: endpoint{ + Hostname: "route53-fips.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-1", + }, + Deprecated: boxedTrue, + }, + }, + }, + "route53-recovery-control-config": service{ + Endpoints: serviceEndpoints{ + endpointKey{ + Region: "aws-global", + }: endpoint{ + Hostname: "route53-recovery-control-config.us-west-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-2", + }, + }, + }, + }, + "route53domains": service{ + Endpoints: serviceEndpoints{ + endpointKey{ + Region: "us-east-1", + }: endpoint{}, + }, + }, + "route53resolver": service{ + Defaults: endpointDefaults{ + defaultKey{}: endpoint{ + Protocols: []string{"https"}, + }, + }, + Endpoints: serviceEndpoints{ + endpointKey{ + Region: "af-south-1", + }: endpoint{}, + endpointKey{ + Region: "ap-east-1", + }: endpoint{}, + endpointKey{ + Region: "ap-northeast-1", + }: endpoint{}, + endpointKey{ + Region: "ap-northeast-2", + }: endpoint{}, + endpointKey{ + Region: "ap-northeast-3", + }: endpoint{}, + endpointKey{ + Region: "ap-south-1", + }: endpoint{}, + endpointKey{ + Region: "ap-south-2", + }: endpoint{}, + endpointKey{ + Region: "ap-southeast-1", + }: endpoint{}, + endpointKey{ + Region: "ap-southeast-2", + }: endpoint{}, + endpointKey{ + Region: "ap-southeast-3", + }: endpoint{}, + endpointKey{ + Region: "ap-southeast-4", + }: endpoint{}, + endpointKey{ + Region: "ca-central-1", + }: endpoint{}, + endpointKey{ + Region: "ca-west-1", + }: endpoint{}, endpointKey{ Region: "eu-central-1", }: endpoint{}, @@ -25164,42 +25938,6 @@ var awsPartition = partition{ endpointKey{ Region: "eu-west-3", }: endpoint{}, - endpointKey{ - Region: "fips-us-east-1", - }: endpoint{ - Hostname: "rolesanywhere-fips.us-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-1", - }, - Deprecated: boxedTrue, - }, - endpointKey{ - Region: "fips-us-east-2", - }: endpoint{ - Hostname: "rolesanywhere-fips.us-east-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-2", - }, - Deprecated: boxedTrue, - }, - endpointKey{ - Region: "fips-us-west-1", - }: endpoint{ - Hostname: "rolesanywhere-fips.us-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-1", - }, - Deprecated: boxedTrue, - }, - endpointKey{ - Region: "fips-us-west-2", - }: endpoint{ - Hostname: "rolesanywhere-fips.us-west-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-2", - }, - Deprecated: boxedTrue, - }, endpointKey{ Region: "il-central-1", }: endpoint{}, @@ -25215,105 +25953,22 @@ var awsPartition = partition{ endpointKey{ Region: "us-east-1", }: endpoint{}, - endpointKey{ - Region: "us-east-1", - Variant: fipsVariant, - }: endpoint{ - Hostname: "rolesanywhere-fips.us-east-1.amazonaws.com", - }, endpointKey{ Region: "us-east-2", }: endpoint{}, - endpointKey{ - Region: "us-east-2", - Variant: fipsVariant, - }: endpoint{ - Hostname: "rolesanywhere-fips.us-east-2.amazonaws.com", - }, endpointKey{ Region: "us-west-1", }: endpoint{}, - endpointKey{ - Region: "us-west-1", - Variant: fipsVariant, - }: endpoint{ - Hostname: "rolesanywhere-fips.us-west-1.amazonaws.com", - }, endpointKey{ Region: "us-west-2", }: endpoint{}, - endpointKey{ - Region: "us-west-2", - Variant: fipsVariant, - }: endpoint{ - Hostname: "rolesanywhere-fips.us-west-2.amazonaws.com", - }, }, }, - "route53": service{ - PartitionEndpoint: "aws-global", - IsRegionalized: boxedFalse, - Endpoints: serviceEndpoints{ - endpointKey{ - Region: "aws-global", - }: endpoint{ - Hostname: "route53.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-1", - }, - }, - endpointKey{ - Region: "aws-global", - Variant: fipsVariant, - }: endpoint{ - Hostname: "route53-fips.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-1", - }, - }, - endpointKey{ - Region: "fips-aws-global", - }: endpoint{ - Hostname: "route53-fips.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-1", - }, - Deprecated: boxedTrue, - }, - }, - }, - "route53-recovery-control-config": service{ - Endpoints: serviceEndpoints{ - endpointKey{ - Region: "aws-global", - }: endpoint{ - Hostname: "route53-recovery-control-config.us-west-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-2", - }, - }, - }, - }, - "route53domains": service{ - Endpoints: serviceEndpoints{ - endpointKey{ - Region: "us-east-1", - }: endpoint{}, - }, - }, - "route53resolver": service{ - Defaults: endpointDefaults{ - defaultKey{}: endpoint{ - Protocols: []string{"https"}, - }, - }, + "rum": service{ Endpoints: serviceEndpoints{ endpointKey{ Region: "af-south-1", }: endpoint{}, - endpointKey{ - Region: "ap-east-1", - }: endpoint{}, endpointKey{ Region: "ap-northeast-1", }: endpoint{}, @@ -25326,9 +25981,6 @@ var awsPartition = partition{ endpointKey{ Region: "ap-south-1", }: endpoint{}, - endpointKey{ - Region: "ap-south-2", - }: endpoint{}, endpointKey{ Region: "ap-southeast-1", }: endpoint{}, @@ -25338,30 +25990,18 @@ var awsPartition = partition{ endpointKey{ Region: "ap-southeast-3", }: endpoint{}, - endpointKey{ - Region: "ap-southeast-4", - }: endpoint{}, endpointKey{ Region: "ca-central-1", }: endpoint{}, - endpointKey{ - Region: "ca-west-1", - }: endpoint{}, endpointKey{ Region: "eu-central-1", }: endpoint{}, - endpointKey{ - Region: "eu-central-2", - }: endpoint{}, endpointKey{ Region: "eu-north-1", }: endpoint{}, endpointKey{ Region: "eu-south-1", }: endpoint{}, - endpointKey{ - Region: "eu-south-2", - }: endpoint{}, endpointKey{ Region: "eu-west-1", }: endpoint{}, @@ -25371,12 +26011,6 @@ var awsPartition = partition{ endpointKey{ Region: "eu-west-3", }: endpoint{}, - endpointKey{ - Region: "il-central-1", - }: endpoint{}, - endpointKey{ - Region: "me-central-1", - }: endpoint{}, endpointKey{ Region: "me-south-1", }: endpoint{}, @@ -25397,40 +26031,6 @@ var awsPartition = partition{ }: endpoint{}, }, }, - "rum": service{ - Endpoints: serviceEndpoints{ - endpointKey{ - Region: "ap-northeast-1", - }: endpoint{}, - endpointKey{ - Region: "ap-southeast-1", - }: endpoint{}, - endpointKey{ - Region: "ap-southeast-2", - }: endpoint{}, - endpointKey{ - Region: "eu-central-1", - }: endpoint{}, - endpointKey{ - Region: "eu-north-1", - }: endpoint{}, - endpointKey{ - Region: "eu-west-1", - }: endpoint{}, - endpointKey{ - Region: "eu-west-2", - }: endpoint{}, - endpointKey{ - Region: "us-east-1", - }: endpoint{}, - endpointKey{ - Region: "us-east-2", - }: endpoint{}, - endpointKey{ - Region: "us-west-2", - }: endpoint{}, - }, - }, "runtime-v2-lex": service{ Endpoints: serviceEndpoints{ endpointKey{ @@ -27765,21 +28365,85 @@ var awsPartition = partition{ }: endpoint{ Protocols: []string{"https"}, }, + endpointKey{ + Region: "us-east-1", + Variant: fipsVariant, + }: endpoint{ + Hostname: "serverlessrepo-fips.us-east-1.amazonaws.com", + Protocols: []string{"https"}, + }, + endpointKey{ + Region: "us-east-1-fips", + }: endpoint{ + Hostname: "serverlessrepo-fips.us-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-1", + }, + Deprecated: boxedTrue, + }, endpointKey{ Region: "us-east-2", }: endpoint{ Protocols: []string{"https"}, }, + endpointKey{ + Region: "us-east-2", + Variant: fipsVariant, + }: endpoint{ + Hostname: "serverlessrepo-fips.us-east-2.amazonaws.com", + Protocols: []string{"https"}, + }, + endpointKey{ + Region: "us-east-2-fips", + }: endpoint{ + Hostname: "serverlessrepo-fips.us-east-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-2", + }, + Deprecated: boxedTrue, + }, endpointKey{ Region: "us-west-1", }: endpoint{ Protocols: []string{"https"}, }, + endpointKey{ + Region: "us-west-1", + Variant: fipsVariant, + }: endpoint{ + Hostname: "serverlessrepo-fips.us-west-1.amazonaws.com", + Protocols: []string{"https"}, + }, + endpointKey{ + Region: "us-west-1-fips", + }: endpoint{ + Hostname: "serverlessrepo-fips.us-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-1", + }, + Deprecated: boxedTrue, + }, endpointKey{ Region: "us-west-2", }: endpoint{ Protocols: []string{"https"}, }, + endpointKey{ + Region: "us-west-2", + Variant: fipsVariant, + }: endpoint{ + Hostname: "serverlessrepo-fips.us-west-2.amazonaws.com", + Protocols: []string{"https"}, + }, + endpointKey{ + Region: "us-west-2-fips", + }: endpoint{ + Hostname: "serverlessrepo-fips.us-west-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-2", + }, + Deprecated: boxedTrue, + }, }, }, "servicecatalog": service{ @@ -28227,6 +28891,36 @@ var awsPartition = partition{ }, Deprecated: boxedTrue, }, + endpointKey{ + Region: "ca-west-1", + }: endpoint{}, + endpointKey{ + Region: "ca-west-1", + Variant: dualStackVariant, + }: endpoint{ + Hostname: "servicediscovery.ca-west-1.api.aws", + }, + endpointKey{ + Region: "ca-west-1", + Variant: fipsVariant, + }: endpoint{ + Hostname: "servicediscovery-fips.ca-west-1.amazonaws.com", + }, + endpointKey{ + Region: "ca-west-1", + Variant: fipsVariant | dualStackVariant, + }: endpoint{ + Hostname: "servicediscovery-fips.ca-west-1.api.aws", + }, + endpointKey{ + Region: "ca-west-1-fips", + }: endpoint{ + Hostname: "servicediscovery-fips.ca-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "ca-west-1", + }, + Deprecated: boxedTrue, + }, endpointKey{ Region: "eu-central-1", }: endpoint{}, @@ -29041,18 +29735,36 @@ var awsPartition = partition{ }, "sms-voice": service{ Endpoints: serviceEndpoints{ + endpointKey{ + Region: "af-south-1", + }: endpoint{}, endpointKey{ Region: "ap-northeast-1", }: endpoint{}, + endpointKey{ + Region: "ap-northeast-2", + }: endpoint{}, + endpointKey{ + Region: "ap-northeast-3", + }: endpoint{}, endpointKey{ Region: "ap-south-1", }: endpoint{}, + endpointKey{ + Region: "ap-south-2", + }: endpoint{}, endpointKey{ Region: "ap-southeast-1", }: endpoint{}, endpointKey{ Region: "ap-southeast-2", }: endpoint{}, + endpointKey{ + Region: "ap-southeast-3", + }: endpoint{}, + endpointKey{ + Region: "ap-southeast-4", + }: endpoint{}, endpointKey{ Region: "ca-central-1", }: endpoint{}, @@ -29065,12 +29777,27 @@ var awsPartition = partition{ endpointKey{ Region: "eu-central-1", }: endpoint{}, + endpointKey{ + Region: "eu-central-2", + }: endpoint{}, + endpointKey{ + Region: "eu-north-1", + }: endpoint{}, + endpointKey{ + Region: "eu-south-1", + }: endpoint{}, + endpointKey{ + Region: "eu-south-2", + }: endpoint{}, endpointKey{ Region: "eu-west-1", }: endpoint{}, endpointKey{ Region: "eu-west-2", }: endpoint{}, + endpointKey{ + Region: "eu-west-3", + }: endpoint{}, endpointKey{ Region: "fips-ca-central-1", }: endpoint{ @@ -29089,6 +29816,24 @@ var awsPartition = partition{ }, Deprecated: boxedTrue, }, + endpointKey{ + Region: "fips-us-east-2", + }: endpoint{ + Hostname: "sms-voice-fips.us-east-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-2", + }, + Deprecated: boxedTrue, + }, + endpointKey{ + Region: "fips-us-west-1", + }: endpoint{ + Hostname: "sms-voice-fips.us-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-1", + }, + Deprecated: boxedTrue, + }, endpointKey{ Region: "fips-us-west-2", }: endpoint{ @@ -29098,6 +29843,18 @@ var awsPartition = partition{ }, Deprecated: boxedTrue, }, + endpointKey{ + Region: "il-central-1", + }: endpoint{}, + endpointKey{ + Region: "me-central-1", + }: endpoint{}, + endpointKey{ + Region: "me-south-1", + }: endpoint{}, + endpointKey{ + Region: "sa-east-1", + }: endpoint{}, endpointKey{ Region: "us-east-1", }: endpoint{}, @@ -29107,6 +29864,24 @@ var awsPartition = partition{ }: endpoint{ Hostname: "sms-voice-fips.us-east-1.amazonaws.com", }, + endpointKey{ + Region: "us-east-2", + }: endpoint{}, + endpointKey{ + Region: "us-east-2", + Variant: fipsVariant, + }: endpoint{ + Hostname: "sms-voice-fips.us-east-2.amazonaws.com", + }, + endpointKey{ + Region: "us-west-1", + }: endpoint{}, + endpointKey{ + Region: "us-west-1", + Variant: fipsVariant, + }: endpoint{ + Hostname: "sms-voice-fips.us-west-1.amazonaws.com", + }, endpointKey{ Region: "us-west-2", }: endpoint{}, @@ -30344,6 +31119,9 @@ var awsPartition = partition{ endpointKey{ Region: "ap-south-1", }: endpoint{}, + endpointKey{ + Region: "ap-south-2", + }: endpoint{}, endpointKey{ Region: "ap-southeast-1", }: endpoint{}, @@ -30353,6 +31131,9 @@ var awsPartition = partition{ endpointKey{ Region: "ap-southeast-3", }: endpoint{}, + endpointKey{ + Region: "ap-southeast-4", + }: endpoint{}, endpointKey{ Region: "ca-central-1", }: endpoint{}, @@ -30368,6 +31149,9 @@ var awsPartition = partition{ endpointKey{ Region: "eu-south-1", }: endpoint{}, + endpointKey{ + Region: "eu-south-2", + }: endpoint{}, endpointKey{ Region: "eu-west-1", }: endpoint{}, @@ -32185,6 +32969,21 @@ var awsPartition = partition{ endpointKey{ Region: "ca-central-1", }: endpoint{}, + endpointKey{ + Region: "ca-central-1", + Variant: fipsVariant, + }: endpoint{ + Hostname: "verifiedpermissions-fips.ca-central-1.amazonaws.com", + }, + endpointKey{ + Region: "ca-west-1", + }: endpoint{}, + endpointKey{ + Region: "ca-west-1", + Variant: fipsVariant, + }: endpoint{ + Hostname: "verifiedpermissions-fips.ca-west-1.amazonaws.com", + }, endpointKey{ Region: "eu-central-1", }: endpoint{}, @@ -32209,6 +33008,63 @@ var awsPartition = partition{ endpointKey{ Region: "eu-west-3", }: endpoint{}, + endpointKey{ + Region: "fips-ca-central-1", + }: endpoint{ + Hostname: "verifiedpermissions-fips.ca-central-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "ca-central-1", + }, + Deprecated: boxedTrue, + }, + endpointKey{ + Region: "fips-ca-west-1", + }: endpoint{ + Hostname: "verifiedpermissions-fips.ca-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "ca-west-1", + }, + Deprecated: boxedTrue, + }, + endpointKey{ + Region: "fips-us-east-1", + }: endpoint{ + Hostname: "verifiedpermissions-fips.us-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-1", + }, + Deprecated: boxedTrue, + }, + endpointKey{ + Region: "fips-us-east-2", + }: endpoint{ + Hostname: "verifiedpermissions-fips.us-east-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-2", + }, + Deprecated: boxedTrue, + }, + endpointKey{ + Region: "fips-us-west-1", + }: endpoint{ + Hostname: "verifiedpermissions-fips.us-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-1", + }, + Deprecated: boxedTrue, + }, + endpointKey{ + Region: "fips-us-west-2", + }: endpoint{ + Hostname: "verifiedpermissions-fips.us-west-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-2", + }, + Deprecated: boxedTrue, + }, + endpointKey{ + Region: "il-central-1", + }: endpoint{}, endpointKey{ Region: "me-central-1", }: endpoint{}, @@ -32221,15 +33077,39 @@ var awsPartition = partition{ endpointKey{ Region: "us-east-1", }: endpoint{}, + endpointKey{ + Region: "us-east-1", + Variant: fipsVariant, + }: endpoint{ + Hostname: "verifiedpermissions-fips.us-east-1.amazonaws.com", + }, endpointKey{ Region: "us-east-2", }: endpoint{}, + endpointKey{ + Region: "us-east-2", + Variant: fipsVariant, + }: endpoint{ + Hostname: "verifiedpermissions-fips.us-east-2.amazonaws.com", + }, endpointKey{ Region: "us-west-1", }: endpoint{}, + endpointKey{ + Region: "us-west-1", + Variant: fipsVariant, + }: endpoint{ + Hostname: "verifiedpermissions-fips.us-west-1.amazonaws.com", + }, endpointKey{ Region: "us-west-2", }: endpoint{}, + endpointKey{ + Region: "us-west-2", + Variant: fipsVariant, + }: endpoint{ + Hostname: "verifiedpermissions-fips.us-west-2.amazonaws.com", + }, }, }, "voice-chime": service{ @@ -32410,6 +33290,9 @@ var awsPartition = partition{ endpointKey{ Region: "eu-west-2", }: endpoint{}, + endpointKey{ + Region: "sa-east-1", + }: endpoint{}, endpointKey{ Region: "us-east-1", }: endpoint{}, @@ -35450,6 +36333,16 @@ var awscnPartition = partition{ }: endpoint{}, }, }, + "inspector2": service{ + Endpoints: serviceEndpoints{ + endpointKey{ + Region: "cn-north-1", + }: endpoint{}, + endpointKey{ + Region: "cn-northwest-1", + }: endpoint{}, + }, + }, "internetmonitor": service{ Defaults: endpointDefaults{ defaultKey{}: endpoint{ @@ -35762,6 +36655,16 @@ var awscnPartition = partition{ }, }, }, + "network-firewall": service{ + Endpoints: serviceEndpoints{ + endpointKey{ + Region: "cn-north-1", + }: endpoint{}, + endpointKey{ + Region: "cn-northwest-1", + }: endpoint{}, + }, + }, "oam": service{ Endpoints: serviceEndpoints{ endpointKey{ @@ -35939,31 +36842,6 @@ var awscnPartition = partition{ }: endpoint{}, }, }, - "resource-explorer-2": service{ - Defaults: endpointDefaults{ - defaultKey{}: endpoint{ - DNSSuffix: "api.amazonwebservices.com.cn", - }, - defaultKey{ - Variant: fipsVariant, - }: endpoint{ - Hostname: "{service}-fips.{region}.{dnsSuffix}", - DNSSuffix: "api.amazonwebservices.com.cn", - }, - }, - Endpoints: serviceEndpoints{ - endpointKey{ - Region: "cn-north-1", - }: endpoint{ - Hostname: "resource-explorer-2.cn-north-1.api.amazonwebservices.com.cn", - }, - endpointKey{ - Region: "cn-northwest-1", - }: endpoint{ - Hostname: "resource-explorer-2.cn-northwest-1.api.amazonwebservices.com.cn", - }, - }, - }, "resource-groups": service{ Endpoints: serviceEndpoints{ endpointKey{ @@ -37522,6 +38400,22 @@ var awsusgovPartition = partition{ }, "bedrock": service{ Endpoints: serviceEndpoints{ + endpointKey{ + Region: "bedrock-runtime-us-gov-west-1", + }: endpoint{ + Hostname: "bedrock-runtime.us-gov-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-west-1", + }, + }, + endpointKey{ + Region: "bedrock-us-gov-west-1", + }: endpoint{ + Hostname: "bedrock.us-gov-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-west-1", + }, + }, endpointKey{ Region: "us-gov-west-1", }: endpoint{}, @@ -39049,6 +39943,16 @@ var awsusgovPartition = partition{ }: endpoint{}, }, }, + "emr-serverless": service{ + Endpoints: serviceEndpoints{ + endpointKey{ + Region: "us-gov-east-1", + }: endpoint{}, + endpointKey{ + Region: "us-gov-west-1", + }: endpoint{}, + }, + }, "es": service{ Endpoints: serviceEndpoints{ endpointKey{ @@ -40653,6 +41557,13 @@ var awsusgovPartition = partition{ }, }, }, + "models-v2-lex": service{ + Endpoints: serviceEndpoints{ + endpointKey{ + Region: "us-gov-west-1", + }: endpoint{}, + }, + }, "models.lex": service{ Defaults: endpointDefaults{ defaultKey{}: endpoint{ @@ -41379,31 +42290,6 @@ var awsusgovPartition = partition{ }, }, }, - "resource-explorer-2": service{ - Defaults: endpointDefaults{ - defaultKey{}: endpoint{ - DNSSuffix: "api.aws", - }, - defaultKey{ - Variant: fipsVariant, - }: endpoint{ - Hostname: "{service}-fips.{region}.{dnsSuffix}", - DNSSuffix: "api.aws", - }, - }, - Endpoints: serviceEndpoints{ - endpointKey{ - Region: "us-gov-east-1", - }: endpoint{ - Hostname: "resource-explorer-2.us-gov-east-1.api.aws", - }, - endpointKey{ - Region: "us-gov-west-1", - }: endpoint{ - Hostname: "resource-explorer-2.us-gov-west-1.api.aws", - }, - }, - }, "resource-groups": service{ Defaults: endpointDefaults{ defaultKey{}: endpoint{}, @@ -41567,6 +42453,13 @@ var awsusgovPartition = partition{ }, }, }, + "runtime-v2-lex": service{ + Endpoints: serviceEndpoints{ + endpointKey{ + Region: "us-gov-west-1", + }: endpoint{}, + }, + }, "runtime.lex": service{ Defaults: endpointDefaults{ defaultKey{}: endpoint{ @@ -42225,6 +43118,78 @@ var awsusgovPartition = partition{ }, }, }, + "signer": service{ + Endpoints: serviceEndpoints{ + endpointKey{ + Region: "fips-us-gov-east-1", + }: endpoint{ + Hostname: "signer-fips.us-gov-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-east-1", + }, + Deprecated: boxedTrue, + }, + endpointKey{ + Region: "fips-us-gov-west-1", + }: endpoint{ + Hostname: "signer-fips.us-gov-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-west-1", + }, + Deprecated: boxedTrue, + }, + endpointKey{ + Region: "fips-verification-us-gov-east-1", + }: endpoint{ + Hostname: "verification.signer-fips.us-gov-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-east-1", + }, + }, + endpointKey{ + Region: "fips-verification-us-gov-west-1", + }: endpoint{ + Hostname: "verification.signer-fips.us-gov-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-west-1", + }, + }, + endpointKey{ + Region: "us-gov-east-1", + }: endpoint{}, + endpointKey{ + Region: "us-gov-east-1", + Variant: fipsVariant, + }: endpoint{ + Hostname: "signer-fips.us-gov-east-1.amazonaws.com", + }, + endpointKey{ + Region: "us-gov-west-1", + }: endpoint{}, + endpointKey{ + Region: "us-gov-west-1", + Variant: fipsVariant, + }: endpoint{ + Hostname: "signer-fips.us-gov-west-1.amazonaws.com", + }, + endpointKey{ + Region: "verification-us-gov-east-1", + }: endpoint{ + Hostname: "verification.signer.us-gov-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-east-1", + }, + }, + endpointKey{ + Region: "verification-us-gov-west-1", + }: endpoint{ + Hostname: "verification.signer.us-gov-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-west-1", + }, + }, + }, + }, "simspaceweaver": service{ Endpoints: serviceEndpoints{ endpointKey{ @@ -42289,6 +43254,15 @@ var awsusgovPartition = partition{ }, "sms-voice": service{ Endpoints: serviceEndpoints{ + endpointKey{ + Region: "fips-us-gov-east-1", + }: endpoint{ + Hostname: "sms-voice-fips.us-gov-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-east-1", + }, + Deprecated: boxedTrue, + }, endpointKey{ Region: "fips-us-gov-west-1", }: endpoint{ @@ -42298,6 +43272,15 @@ var awsusgovPartition = partition{ }, Deprecated: boxedTrue, }, + endpointKey{ + Region: "us-gov-east-1", + }: endpoint{}, + endpointKey{ + Region: "us-gov-east-1", + Variant: fipsVariant, + }: endpoint{ + Hostname: "sms-voice-fips.us-gov-east-1.amazonaws.com", + }, endpointKey{ Region: "us-gov-west-1", }: endpoint{}, @@ -43032,6 +44015,46 @@ var awsusgovPartition = partition{ }, }, }, + "verifiedpermissions": service{ + Endpoints: serviceEndpoints{ + endpointKey{ + Region: "fips-us-gov-east-1", + }: endpoint{ + Hostname: "verifiedpermissions-fips.us-gov-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-east-1", + }, + Deprecated: boxedTrue, + }, + endpointKey{ + Region: "fips-us-gov-west-1", + }: endpoint{ + Hostname: "verifiedpermissions-fips.us-gov-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-west-1", + }, + Deprecated: boxedTrue, + }, + endpointKey{ + Region: "us-gov-east-1", + }: endpoint{}, + endpointKey{ + Region: "us-gov-east-1", + Variant: fipsVariant, + }: endpoint{ + Hostname: "verifiedpermissions-fips.us-gov-east-1.amazonaws.com", + }, + endpointKey{ + Region: "us-gov-west-1", + }: endpoint{}, + endpointKey{ + Region: "us-gov-west-1", + Variant: fipsVariant, + }: endpoint{ + Hostname: "verifiedpermissions-fips.us-gov-west-1.amazonaws.com", + }, + }, + }, "waf-regional": service{ Endpoints: serviceEndpoints{ endpointKey{ @@ -43296,6 +44319,20 @@ var awsisoPartition = partition{ }, }, }, + "api.pricing": service{ + Defaults: endpointDefaults{ + defaultKey{}: endpoint{ + CredentialScope: credentialScope{ + Service: "pricing", + }, + }, + }, + Endpoints: serviceEndpoints{ + endpointKey{ + Region: "us-iso-east-1", + }: endpoint{}, + }, + }, "api.sagemaker": service{ Endpoints: serviceEndpoints{ endpointKey{ @@ -43345,6 +44382,16 @@ var awsisoPartition = partition{ }: endpoint{}, }, }, + "arc-zonal-shift": service{ + Endpoints: serviceEndpoints{ + endpointKey{ + Region: "us-iso-east-1", + }: endpoint{}, + endpointKey{ + Region: "us-iso-west-1", + }: endpoint{}, + }, + }, "athena": service{ Endpoints: serviceEndpoints{ endpointKey{ @@ -43770,6 +44817,55 @@ var awsisoPartition = partition{ }: endpoint{}, }, }, + "fsx": service{ + Endpoints: serviceEndpoints{ + endpointKey{ + Region: "fips-prod-us-iso-east-1", + }: endpoint{ + Hostname: "fsx-fips.us-iso-east-1.c2s.ic.gov", + CredentialScope: credentialScope{ + Region: "us-iso-east-1", + }, + Deprecated: boxedTrue, + }, + endpointKey{ + Region: "fips-us-iso-east-1", + }: endpoint{ + Hostname: "fsx-fips.us-iso-east-1.c2s.ic.gov", + CredentialScope: credentialScope{ + Region: "us-iso-east-1", + }, + Deprecated: boxedTrue, + }, + endpointKey{ + Region: "prod-us-iso-east-1", + }: endpoint{ + CredentialScope: credentialScope{ + Region: "us-iso-east-1", + }, + Deprecated: boxedTrue, + }, + endpointKey{ + Region: "prod-us-iso-east-1", + Variant: fipsVariant, + }: endpoint{ + Hostname: "fsx-fips.us-iso-east-1.c2s.ic.gov", + CredentialScope: credentialScope{ + Region: "us-iso-east-1", + }, + Deprecated: boxedTrue, + }, + endpointKey{ + Region: "us-iso-east-1", + }: endpoint{}, + endpointKey{ + Region: "us-iso-east-1", + Variant: fipsVariant, + }: endpoint{ + Hostname: "fsx-fips.us-iso-east-1.c2s.ic.gov", + }, + }, + }, "glacier": service{ Endpoints: serviceEndpoints{ endpointKey{ @@ -44269,6 +45365,23 @@ var awsisoPartition = partition{ }, }, }, + "s3-outposts": service{ + Endpoints: serviceEndpoints{ + endpointKey{ + Region: "fips-us-iso-east-1", + }: endpoint{ + + Deprecated: boxedTrue, + }, + endpointKey{ + Region: "us-iso-east-1", + }: endpoint{}, + endpointKey{ + Region: "us-iso-east-1", + Variant: fipsVariant, + }: endpoint{}, + }, + }, "secretsmanager": service{ Endpoints: serviceEndpoints{ endpointKey{ @@ -44400,6 +45513,13 @@ var awsisoPartition = partition{ }: endpoint{}, }, }, + "textract": service{ + Endpoints: serviceEndpoints{ + endpointKey{ + Region: "us-iso-east-1", + }: endpoint{}, + }, + }, "transcribe": service{ Defaults: endpointDefaults{ defaultKey{}: endpoint{ @@ -44492,6 +45612,20 @@ var awsisobPartition = partition{ }, }, }, + "api.pricing": service{ + Defaults: endpointDefaults{ + defaultKey{}: endpoint{ + CredentialScope: credentialScope{ + Service: "pricing", + }, + }, + }, + Endpoints: serviceEndpoints{ + endpointKey{ + Region: "us-isob-east-1", + }: endpoint{}, + }, + }, "api.sagemaker": service{ Endpoints: serviceEndpoints{ endpointKey{ @@ -44525,6 +45659,13 @@ var awsisobPartition = partition{ }: endpoint{}, }, }, + "arc-zonal-shift": service{ + Endpoints: serviceEndpoints{ + endpointKey{ + Region: "us-isob-east-1", + }: endpoint{}, + }, + }, "autoscaling": service{ Defaults: endpointDefaults{ defaultKey{}: endpoint{ @@ -44861,6 +46002,20 @@ var awsisobPartition = partition{ }: endpoint{}, }, }, + "medialive": service{ + Endpoints: serviceEndpoints{ + endpointKey{ + Region: "us-isob-east-1", + }: endpoint{}, + }, + }, + "mediapackage": service{ + Endpoints: serviceEndpoints{ + endpointKey{ + Region: "us-isob-east-1", + }: endpoint{}, + }, + }, "metering.marketplace": service{ Defaults: endpointDefaults{ defaultKey{}: endpoint{ @@ -45080,6 +46235,23 @@ var awsisobPartition = partition{ }, }, }, + "s3-outposts": service{ + Endpoints: serviceEndpoints{ + endpointKey{ + Region: "fips-us-isob-east-1", + }: endpoint{ + + Deprecated: boxedTrue, + }, + endpointKey{ + Region: "us-isob-east-1", + }: endpoint{}, + endpointKey{ + Region: "us-isob-east-1", + Variant: fipsVariant, + }: endpoint{}, + }, + }, "secretsmanager": service{ Endpoints: serviceEndpoints{ endpointKey{ @@ -45133,6 +46305,37 @@ var awsisobPartition = partition{ }: endpoint{}, }, }, + "storagegateway": service{ + Endpoints: serviceEndpoints{ + endpointKey{ + Region: "fips", + }: endpoint{ + Hostname: "storagegateway-fips.us-isob-east-1.sc2s.sgov.gov", + CredentialScope: credentialScope{ + Region: "us-isob-east-1", + }, + Deprecated: boxedTrue, + }, + endpointKey{ + Region: "us-isob-east-1", + }: endpoint{}, + endpointKey{ + Region: "us-isob-east-1", + Variant: fipsVariant, + }: endpoint{ + Hostname: "storagegateway-fips.us-isob-east-1.sc2s.sgov.gov", + }, + endpointKey{ + Region: "us-isob-east-1-fips", + }: endpoint{ + Hostname: "storagegateway-fips.us-isob-east-1.sc2s.sgov.gov", + CredentialScope: credentialScope{ + Region: "us-isob-east-1", + }, + Deprecated: boxedTrue, + }, + }, + }, "streams.dynamodb": service{ Defaults: endpointDefaults{ defaultKey{}: endpoint{ diff --git a/vendor/github.com/aws/aws-sdk-go/aws/version.go b/vendor/github.com/aws/aws-sdk-go/aws/version.go index 0dfd96d57..22df29750 100644 --- a/vendor/github.com/aws/aws-sdk-go/aws/version.go +++ b/vendor/github.com/aws/aws-sdk-go/aws/version.go @@ -5,4 +5,4 @@ package aws const SDKName = "aws-sdk-go" // SDKVersion is the version of this SDK -const SDKVersion = "1.50.6" +const SDKVersion = "1.51.20" diff --git a/vendor/github.com/aws/aws-sdk-go/service/s3/api.go b/vendor/github.com/aws/aws-sdk-go/service/s3/api.go index 01ec8099e..f472cdc8d 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/s3/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/s3/api.go @@ -228,8 +228,8 @@ func (c *S3) CompleteMultipartUploadRequest(input *CompleteMultipartUploadInput) // don't use exceptions, they return an error). // // Note that if CompleteMultipartUpload fails, applications should be prepared -// to retry the failed requests. For more information, see Amazon S3 Error Best -// Practices (https://docs.aws.amazon.com/AmazonS3/latest/dev/ErrorBestPractices.html). +// to retry any failed requests (including 500 error responses). For more information, +// see Amazon S3 Error Best Practices (https://docs.aws.amazon.com/AmazonS3/latest/dev/ErrorBestPractices.html). // // You can't use Content-Type: application/x-www-form-urlencoded for the CompleteMultipartUpload // requests. Also, if you don't provide a Content-Type header, CompleteMultipartUpload @@ -391,7 +391,10 @@ func (c *S3) CopyObjectRequest(input *CopyObjectInput) (req *request.Request, ou // in the Amazon S3 User Guide. // // Both the Region that you want to copy the object from and the Region that -// you want to copy the object to must be enabled for your account. +// you want to copy the object to must be enabled for your account. For more +// information about how to enable a Region for your account, see Enable or +// disable a Region for standalone accounts (https://docs.aws.amazon.com/accounts/latest/reference/manage-acct-regions.html#manage-acct-regions-enable-standalone) +// in the Amazon Web Services Account Management Guide. // // Amazon S3 transfer acceleration does not support cross-Region copies. If // you request a cross-Region copy using a transfer acceleration endpoint, you @@ -421,7 +424,7 @@ func (c *S3) CopyObjectRequest(input *CopyObjectInput) (req *request.Request, ou // IAM policy based on the source and destination bucket types in a CopyObject // operation. If the source object is in a general purpose bucket, you must // have s3:GetObject permission to read the source object that is being copied. -// If the destination bucket is a general purpose bucket, you must have s3:PubObject +// If the destination bucket is a general purpose bucket, you must have s3:PutObject // permission to write the object copy to the destination bucket. // // - Directory bucket permissions - You must have permissions in a bucket @@ -458,7 +461,7 @@ func (c *S3) CopyObjectRequest(input *CopyObjectInput) (req *request.Request, ou // during the copy operation, the error response is embedded in the 200 OK // response. For example, in a cross-region copy, you may encounter throttling // and receive a 200 OK response. For more information, see Resolve the Error -// 200 response when copying objects to Amazon S3 (repost.aws/knowledge-center/s3-resolve-200-internalerror). +// 200 response when copying objects to Amazon S3 (https://repost.aws/knowledge-center/s3-resolve-200-internalerror). // The 200 OK status code means the copy was accepted, but it doesn't mean // the copy is complete. Another example is when you disconnect from Amazon // S3 before the copy is complete, Amazon S3 might cancel the copy and you @@ -477,7 +480,9 @@ func (c *S3) CopyObjectRequest(input *CopyObjectInput) (req *request.Request, ou // The copy request charge is based on the storage class and Region that you // specify for the destination object. The request can also result in a data // retrieval charge for the source if the source storage class bills for data -// retrieval. For pricing information, see Amazon S3 pricing (http://aws.amazon.com/s3/pricing/). +// retrieval. If the copy source is in a different region, the data transfer +// is billed to the copy source account. For pricing information, see Amazon +// S3 pricing (http://aws.amazon.com/s3/pricing/). // // # HTTP Host header syntax // @@ -612,12 +617,20 @@ func (c *S3) CreateBucketRequest(input *CreateBucketInput) (req *request.Request // and s3:PutBucketVersioning permissions are required. S3 Object Ownership // // - If your CreateBucket request includes the x-amz-object-ownership header, -// then the s3:PutBucketOwnershipControls permission is required. If your -// CreateBucket request sets BucketOwnerEnforced for Amazon S3 Object Ownership -// and specifies a bucket ACL that provides access to an external Amazon -// Web Services account, your request fails with a 400 error and returns -// the InvalidBucketAcLWithObjectOwnership error code. For more information, -// see Setting Object Ownership on an existing bucket (https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-ownership-existing-bucket.html) +// then the s3:PutBucketOwnershipControls permission is required. To set +// an ACL on a bucket as part of a CreateBucket request, you must explicitly +// set S3 Object Ownership for the bucket to a different value than the default, +// BucketOwnerEnforced. Additionally, if your desired bucket ACL grants public +// access, you must first create the bucket (without the bucket ACL) and +// then explicitly disable Block Public Access on the bucket before using +// PutBucketAcl to set the ACL. If you try to create a bucket with a public +// ACL, the request will fail. For the majority of modern use cases in S3, +// we recommend that you keep all Block Public Access settings enabled and +// keep ACLs disabled. If you would like to share data with users outside +// of your account, you can use bucket policies as needed. For more information, +// see Controlling ownership of objects and disabling ACLs for your bucket +// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html) +// and Blocking public access to your Amazon S3 storage (https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-control-block-public-access.html) // in the Amazon S3 User Guide. S3 Block Public Access - If your specific // use case requires granting public access to your S3 resources, you can // disable Block Public Access. Specifically, you can create a new bucket @@ -2373,14 +2386,23 @@ func (c *S3) DeleteObjectRequest(input *DeleteObjectInput) (req *request.Request // Removes an object from a bucket. The behavior depends on the bucket's versioning // state: // -// - If versioning is enabled, the operation removes the null version (if -// there is one) of an object and inserts a delete marker, which becomes -// the latest version of the object. If there isn't a null version, Amazon -// S3 does not remove any objects but will still respond that the command -// was successful. +// - If bucket versioning is not enabled, the operation permanently deletes +// the object. // -// - If versioning is suspended or not enabled, the operation permanently -// deletes the object. +// - If bucket versioning is enabled, the operation inserts a delete marker, +// which becomes the current version of the object. To permanently delete +// an object in a versioned bucket, you must include the object’s versionId +// in the request. For more information about versioning-enabled buckets, +// see Deleting object versions from a versioning-enabled bucket (https://docs.aws.amazon.com/AmazonS3/latest/userguide/DeletingObjectVersions.html). +// +// - If bucket versioning is suspended, the operation removes the object +// that has a null versionId, if there is one, and inserts a delete marker +// that becomes the current version of the object. If there isn't an object +// with a null versionId, and all versions of the object have a versionId, +// Amazon S3 does not remove the object and only inserts a delete marker. +// To permanently delete an object that has a versionId, you must include +// the object’s versionId in the request. For more information about versioning-suspended +// buckets, see Deleting objects from versioning-suspended buckets (https://docs.aws.amazon.com/AmazonS3/latest/userguide/DeletingObjectsfromVersioningSuspendedBuckets.html). // // - Directory buckets - S3 Versioning isn't enabled and supported for directory // buckets. For this API operation, only the null value of the version ID @@ -2423,7 +2445,7 @@ func (c *S3) DeleteObjectRequest(input *DeleteObjectInput) (req *request.Request // in your policies when your DeleteObjects request includes specific headers. // s3:DeleteObject - To delete an object from a bucket, you must always have // the s3:DeleteObject permission. s3:DeleteObjectVersion - To delete a specific -// version of an object from a versiong-enabled bucket, you must have the +// version of an object from a versioning-enabled bucket, you must have the // s3:DeleteObjectVersion permission. // // - Directory bucket permissions - To grant access to this API operation @@ -3651,12 +3673,15 @@ func (c *S3) GetBucketLifecycleConfigurationRequest(input *GetBucketLifecycleCon // This operation is not supported by directory buckets. // // Bucket lifecycle configuration now supports specifying a lifecycle rule using -// an object key name prefix, one or more object tags, or a combination of both. +// an object key name prefix, one or more object tags, object size, or any combination +// of these. Accordingly, this section describes the latest API. The previous +// version of the API supported filtering based only on an object key name prefix, +// which is supported for backward compatibility. For the related API description, +// see GetBucketLifecycle (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycle.html). // Accordingly, this section describes the latest API. The response describes // the new filter element that you can use to specify a filter to select a subset // of objects to which the rule applies. If you are using a previous version -// of the lifecycle configuration, it still works. For the earlier action, see -// GetBucketLifecycle (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycle.html). +// of the lifecycle configuration, it still works. For the earlier action, // // Returns the lifecycle configuration information set on the bucket. For information // about lifecycle configuration, see Object Lifecycle Management (https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html). @@ -6018,7 +6043,7 @@ func (c *S3) HeadBucketRequest(input *HeadBucketInput) (req *request.Request, ou // If the bucket does not exist or you do not have permission to access it, // the HEAD request returns a generic 400 Bad Request, 403 Forbidden or 404 // Not Found code. A message body is not included, so you cannot determine the -// exception beyond these error codes. +// exception beyond these HTTP response codes. // // Directory buckets - You must make requests for this API operation to the // Zonal endpoint. These endpoints support virtual-hosted-style requests in @@ -8931,10 +8956,10 @@ func (c *S3) PutBucketLifecycleConfigurationRequest(input *PutBucketLifecycleCon // about lifecycle configuration, see Managing your storage lifecycle (https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lifecycle-mgmt.html). // // Bucket lifecycle configuration now supports specifying a lifecycle rule using -// an object key name prefix, one or more object tags, or a combination of both. -// Accordingly, this section describes the latest API. The previous version -// of the API supported filtering based only on an object key name prefix, which -// is supported for backward compatibility. For the related API description, +// an object key name prefix, one or more object tags, object size, or any combination +// of these. Accordingly, this section describes the latest API. The previous +// version of the API supported filtering based only on an object key name prefix, +// which is supported for backward compatibility. For the related API description, // see PutBucketLifecycle (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycle.html). // // # Rules @@ -8945,8 +8970,8 @@ func (c *S3) PutBucketLifecycleConfigurationRequest(input *PutBucketLifecycleCon // adjustable. Each rule consists of the following: // // - A filter identifying a subset of objects to which the rule applies. -// The filter can be based on a key name prefix, object tags, or a combination -// of both. +// The filter can be based on a key name prefix, object tags, object size, +// or any combination of these. // // - A status indicating whether the rule is in effect. // @@ -11175,8 +11200,6 @@ func (c *S3) RestoreObjectRequest(input *RestoreObjectInput) (req *request.Reque // // This action performs the following types of requests: // -// - select - Perform a select query on an archived object -// // - restore an archive - Restore an archived object // // For more information about the S3 structure in the request body, see the @@ -11190,44 +11213,6 @@ func (c *S3) RestoreObjectRequest(input *RestoreObjectInput) (req *request.Reque // - Protecting Data Using Server-Side Encryption (https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html) // in the Amazon S3 User Guide // -// Define the SQL expression for the SELECT type of restoration for your query -// in the request body's SelectParameters structure. You can use expressions -// like the following examples. -// -// - The following expression returns all records from the specified object. -// SELECT * FROM Object -// -// - Assuming that you are not using any headers for data stored in the object, -// you can specify columns with positional headers. SELECT s._1, s._2 FROM -// Object s WHERE s._3 > 100 -// -// - If you have headers and you set the fileHeaderInfo in the CSV structure -// in the request body to USE, you can specify headers in the query. (If -// you set the fileHeaderInfo field to IGNORE, the first row is skipped for -// the query.) You cannot mix ordinal positions with header column names. -// SELECT s.Id, s.FirstName, s.SSN FROM S3Object s -// -// When making a select request, you can also do the following: -// -// - To expedite your queries, specify the Expedited tier. For more information -// about tiers, see "Restoring Archives," later in this topic. -// -// - Specify details about the data serialization format of both the input -// object that is being queried and the serialization of the CSV-encoded -// query results. -// -// The following are additional important facts about the select feature: -// -// - The output results are new Amazon S3 objects. Unlike archive retrievals, -// they are stored until explicitly deleted-manually or through a lifecycle -// configuration. -// -// - You can issue more than one select request on the same Amazon S3 object. -// Amazon S3 doesn't duplicate requests, so avoid issuing duplicate requests. -// -// - Amazon S3 accepts a select request even if the object has already been -// restored. A select request doesn’t return error response 409. -// // # Permissions // // To use this operation, you must have permissions to perform the s3:RestoreObject @@ -11331,8 +11316,8 @@ func (c *S3) RestoreObjectRequest(input *RestoreObjectInput) (req *request.Reque // response. // // - Special errors: Code: RestoreAlreadyInProgress Cause: Object restore -// is already in progress. (This error does not apply to SELECT type requests.) -// HTTP Status Code: 409 Conflict SOAP Fault Code Prefix: Client +// is already in progress. HTTP Status Code: 409 Conflict SOAP Fault Code +// Prefix: Client // // - Code: GlacierExpeditedRetrievalNotAvailable Cause: expedited retrievals // are currently not available. Try again later. (Returned if there is insufficient @@ -12014,7 +11999,7 @@ func (c *S3) UploadPartCopyRequest(input *UploadPartCopyInput) (req *request.Req // bucket in an UploadPartCopy operation. If the source object is in a general // purpose bucket, you must have the s3:GetObject permission to read the // source object that is being copied. If the destination bucket is a general -// purpose bucket, you must have the s3:PubObject permission to write the +// purpose bucket, you must have the s3:PutObject permission to write the // object copy to the destination bucket. For information about permissions // required to use the multipart upload API, see Multipart Upload and Permissions // (https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html) @@ -12270,7 +12255,7 @@ type AbortMultipartUploadInput struct { // you must use virtual-hosted-style requests in the format Bucket_name.s3express-az_id.region.amazonaws.com. // Path-style requests are not supported. Directory bucket names must be unique // in the chosen Availability Zone. Bucket names must follow the format bucket_base_name--az-id--x-s3 - // (for example, DOC-EXAMPLE-BUCKET--usw2-az2--x-s3). For information about + // (for example, DOC-EXAMPLE-BUCKET--usw2-az1--x-s3). For information about // bucket naming restrictions, see Directory bucket naming rules (https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html) // in the Amazon S3 User Guide. // @@ -13730,7 +13715,7 @@ type CompleteMultipartUploadInput struct { // you must use virtual-hosted-style requests in the format Bucket_name.s3express-az_id.region.amazonaws.com. // Path-style requests are not supported. Directory bucket names must be unique // in the chosen Availability Zone. Bucket names must follow the format bucket_base_name--az-id--x-s3 - // (for example, DOC-EXAMPLE-BUCKET--usw2-az2--x-s3). For information about + // (for example, DOC-EXAMPLE-BUCKET--usw2-az1--x-s3). For information about // bucket naming restrictions, see Directory bucket naming rules (https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html) // in the Amazon S3 User Guide. // @@ -14507,7 +14492,7 @@ type CopyObjectInput struct { // you must use virtual-hosted-style requests in the format Bucket_name.s3express-az_id.region.amazonaws.com. // Path-style requests are not supported. Directory bucket names must be unique // in the chosen Availability Zone. Bucket names must follow the format bucket_base_name--az-id--x-s3 - // (for example, DOC-EXAMPLE-BUCKET--usw2-az2--x-s3). For information about + // (for example, DOC-EXAMPLE-BUCKET--usw2-az1--x-s3). For information about // bucket naming restrictions, see Directory bucket naming rules (https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html) // in the Amazon S3 User Guide. // @@ -15828,7 +15813,7 @@ type CreateBucketInput struct { // you must use path-style requests in the format https://s3express-control.region_code.amazonaws.com/bucket-name // . Virtual-hosted-style requests aren't supported. Directory bucket names // must be unique in the chosen Availability Zone. Bucket names must also follow - // the format bucket_base_name--az_id--x-s3 (for example, DOC-EXAMPLE-BUCKET--usw2-az2--x-s3). + // the format bucket_base_name--az_id--x-s3 (for example, DOC-EXAMPLE-BUCKET--usw2-az1--x-s3). // For information about bucket naming restrictions, see Directory bucket naming // rules (https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html) // in the Amazon S3 User Guide @@ -16061,7 +16046,7 @@ type CreateMultipartUploadInput struct { // you must use virtual-hosted-style requests in the format Bucket_name.s3express-az_id.region.amazonaws.com. // Path-style requests are not supported. Directory bucket names must be unique // in the chosen Availability Zone. Bucket names must follow the format bucket_base_name--az-id--x-s3 - // (for example, DOC-EXAMPLE-BUCKET--usw2-az2--x-s3). For information about + // (for example, DOC-EXAMPLE-BUCKET--usw2-az1--x-s3). For information about // bucket naming restrictions, see Directory bucket naming rules (https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html) // in the Amazon S3 User Guide. // @@ -17488,7 +17473,7 @@ type DeleteBucketInput struct { // you must use path-style requests in the format https://s3express-control.region_code.amazonaws.com/bucket-name // . Virtual-hosted-style requests aren't supported. Directory bucket names // must be unique in the chosen Availability Zone. Bucket names must also follow - // the format bucket_base_name--az_id--x-s3 (for example, DOC-EXAMPLE-BUCKET--usw2-az2--x-s3). + // the format bucket_base_name--az_id--x-s3 (for example, DOC-EXAMPLE-BUCKET--usw2-az1--x-s3). // For information about bucket naming restrictions, see Directory bucket naming // rules (https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html) // in the Amazon S3 User Guide @@ -18230,7 +18215,7 @@ type DeleteBucketPolicyInput struct { // you must use path-style requests in the format https://s3express-control.region_code.amazonaws.com/bucket-name // . Virtual-hosted-style requests aren't supported. Directory bucket names // must be unique in the chosen Availability Zone. Bucket names must also follow - // the format bucket_base_name--az_id--x-s3 (for example, DOC-EXAMPLE-BUCKET--usw2-az2--x-s3). + // the format bucket_base_name--az_id--x-s3 (for example, DOC-EXAMPLE-BUCKET--usw2-az1--x-s3). // For information about bucket naming restrictions, see Directory bucket naming // rules (https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html) // in the Amazon S3 User Guide @@ -18822,7 +18807,7 @@ type DeleteObjectInput struct { // you must use virtual-hosted-style requests in the format Bucket_name.s3express-az_id.region.amazonaws.com. // Path-style requests are not supported. Directory bucket names must be unique // in the chosen Availability Zone. Bucket names must follow the format bucket_base_name--az-id--x-s3 - // (for example, DOC-EXAMPLE-BUCKET--usw2-az2--x-s3). For information about + // (for example, DOC-EXAMPLE-BUCKET--usw2-az1--x-s3). For information about // bucket naming restrictions, see Directory bucket naming rules (https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html) // in the Amazon S3 User Guide. // @@ -19248,7 +19233,7 @@ type DeleteObjectsInput struct { // you must use virtual-hosted-style requests in the format Bucket_name.s3express-az_id.region.amazonaws.com. // Path-style requests are not supported. Directory bucket names must be unique // in the chosen Availability Zone. Bucket names must follow the format bucket_base_name--az-id--x-s3 - // (for example, DOC-EXAMPLE-BUCKET--usw2-az2--x-s3). For information about + // (for example, DOC-EXAMPLE-BUCKET--usw2-az1--x-s3). For information about // bucket naming restrictions, see Directory bucket naming rules (https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html) // in the Amazon S3 User Guide. // @@ -20561,8 +20546,15 @@ func (s *ExistingObjectReplication) SetStatus(v string) *ExistingObjectReplicati return s } -// Specifies the Amazon S3 object key name to filter on and whether to filter -// on the suffix or prefix of the key name. +// Specifies the Amazon S3 object key name to filter on. An object key name +// is the name assigned to an object in your Amazon S3 bucket. You specify whether +// to filter on the suffix or prefix of the object key name. A prefix is a specific +// string of characters at the beginning of an object key name, which you can +// use to organize objects. For example, you can start the key names of related +// objects with a prefix, such as 2023- or engineering/. Then, you can use FilterRule +// to find objects in a bucket with key names that have the same prefix. A suffix +// is similar to a prefix, but it is at the end of the object key name instead +// of at the beginning. type FilterRule struct { _ struct{} `type:"structure"` @@ -22464,7 +22456,7 @@ type GetBucketPolicyInput struct { // you must use path-style requests in the format https://s3express-control.region_code.amazonaws.com/bucket-name // . Virtual-hosted-style requests aren't supported. Directory bucket names // must be unique in the chosen Availability Zone. Bucket names must also follow - // the format bucket_base_name--az_id--x-s3 (for example, DOC-EXAMPLE-BUCKET--usw2-az2--x-s3). + // the format bucket_base_name--az_id--x-s3 (for example, DOC-EXAMPLE-BUCKET--usw2-az1--x-s3). // For information about bucket naming restrictions, see Directory bucket naming // rules (https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html) // in the Amazon S3 User Guide @@ -23607,7 +23599,7 @@ type GetObjectAttributesInput struct { // you must use virtual-hosted-style requests in the format Bucket_name.s3express-az_id.region.amazonaws.com. // Path-style requests are not supported. Directory bucket names must be unique // in the chosen Availability Zone. Bucket names must follow the format bucket_base_name--az-id--x-s3 - // (for example, DOC-EXAMPLE-BUCKET--usw2-az2--x-s3). For information about + // (for example, DOC-EXAMPLE-BUCKET--usw2-az1--x-s3). For information about // bucket naming restrictions, see Directory bucket naming rules (https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html) // in the Amazon S3 User Guide. // @@ -24071,7 +24063,7 @@ type GetObjectInput struct { // you must use virtual-hosted-style requests in the format Bucket_name.s3express-az_id.region.amazonaws.com. // Path-style requests are not supported. Directory bucket names must be unique // in the chosen Availability Zone. Bucket names must follow the format bucket_base_name--az-id--x-s3 - // (for example, DOC-EXAMPLE-BUCKET--usw2-az2--x-s3). For information about + // (for example, DOC-EXAMPLE-BUCKET--usw2-az1--x-s3). For information about // bucket naming restrictions, see Directory bucket naming rules (https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html) // in the Amazon S3 User Guide. // @@ -24648,7 +24640,7 @@ type GetObjectLegalHoldOutput struct { _ struct{} `type:"structure" payload:"LegalHold"` // The current legal hold status for the specified object. - LegalHold *ObjectLockLegalHold `type:"structure"` + LegalHold *ObjectLockLegalHold `locationName:"LegalHold" type:"structure"` } // String returns the string representation. @@ -25407,7 +25399,7 @@ type GetObjectRetentionOutput struct { _ struct{} `type:"structure" payload:"Retention"` // The container element for an object's retention settings. - Retention *ObjectLockRetention `type:"structure"` + Retention *ObjectLockRetention `locationName:"Retention" type:"structure"` } // String returns the string representation. @@ -26148,7 +26140,7 @@ type HeadBucketInput struct { // you must use virtual-hosted-style requests in the format Bucket_name.s3express-az_id.region.amazonaws.com. // Path-style requests are not supported. Directory bucket names must be unique // in the chosen Availability Zone. Bucket names must follow the format bucket_base_name--az-id--x-s3 - // (for example, DOC-EXAMPLE-BUCKET--usw2-az2--x-s3). For information about + // (for example, DOC-EXAMPLE-BUCKET--usw2-az1--x-s3). For information about // bucket naming restrictions, see Directory bucket naming rules (https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html) // in the Amazon S3 User Guide. // @@ -26281,7 +26273,7 @@ type HeadBucketOutput struct { // The name of the location where the bucket will be created. // // For directory buckets, the AZ ID of the Availability Zone where the bucket - // is created. An example AZ ID value is usw2-az2. + // is created. An example AZ ID value is usw2-az1. // // This functionality is only supported by directory buckets. BucketLocationName *string `location:"header" locationName:"x-amz-bucket-location-name" type:"string"` @@ -26348,7 +26340,7 @@ type HeadObjectInput struct { // you must use virtual-hosted-style requests in the format Bucket_name.s3express-az_id.region.amazonaws.com. // Path-style requests are not supported. Directory bucket names must be unique // in the chosen Availability Zone. Bucket names must follow the format bucket_base_name--az-id--x-s3 - // (for example, DOC-EXAMPLE-BUCKET--usw2-az2--x-s3). For information about + // (for example, DOC-EXAMPLE-BUCKET--usw2-az1--x-s3). For information about // bucket naming restrictions, see Directory bucket naming rules (https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html) // in the Amazon S3 User Guide. // @@ -28557,7 +28549,9 @@ func (s *LifecycleRuleAndOperator) SetTags(v []*Tag) *LifecycleRuleAndOperator { } // The Filter is used to identify objects that a Lifecycle Rule applies to. -// A Filter must have exactly one of Prefix, Tag, or And specified. +// A Filter can have exactly one of Prefix, Tag, ObjectSizeGreaterThan, ObjectSizeLessThan, +// or And specified. If the Filter element is left empty, the Lifecycle Rule +// applies to all objects in the bucket. type LifecycleRuleFilter struct { _ struct{} `type:"structure"` @@ -29470,7 +29464,7 @@ type ListMultipartUploadsInput struct { // you must use virtual-hosted-style requests in the format Bucket_name.s3express-az_id.region.amazonaws.com. // Path-style requests are not supported. Directory bucket names must be unique // in the chosen Availability Zone. Bucket names must follow the format bucket_base_name--az-id--x-s3 - // (for example, DOC-EXAMPLE-BUCKET--usw2-az2--x-s3). For information about + // (for example, DOC-EXAMPLE-BUCKET--usw2-az1--x-s3). For information about // bucket naming restrictions, see Directory bucket naming rules (https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html) // in the Amazon S3 User Guide. // @@ -29765,7 +29759,11 @@ type ListMultipartUploadsOutput struct { // This functionality is not supported for directory buckets. RequestCharged *string `location:"header" locationName:"x-amz-request-charged" type:"string" enum:"RequestCharged"` - // Upload ID after which listing began. + // Together with key-marker, specifies the multipart upload after which listing + // should begin. If key-marker is not specified, the upload-id-marker parameter + // is ignored. Otherwise, any multipart uploads for a key equal to the key-marker + // might be included in the list only if they have an upload ID lexicographically + // greater than the specified upload-id-marker. // // This functionality is not supported for directory buckets. UploadIdMarker *string `type:"string"` @@ -30252,7 +30250,7 @@ type ListObjectsInput struct { // you must use virtual-hosted-style requests in the format Bucket_name.s3express-az_id.region.amazonaws.com. // Path-style requests are not supported. Directory bucket names must be unique // in the chosen Availability Zone. Bucket names must follow the format bucket_base_name--az-id--x-s3 - // (for example, DOC-EXAMPLE-BUCKET--usw2-az2--x-s3). For information about + // (for example, DOC-EXAMPLE-BUCKET--usw2-az1--x-s3). For information about // bucket naming restrictions, see Directory bucket naming rules (https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html) // in the Amazon S3 User Guide. // @@ -30470,7 +30468,9 @@ type ListObjectsOutput struct { // the MaxKeys value. Delimiter *string `type:"string"` - // Encoding type used by Amazon S3 to encode object keys in the response. + // Encoding type used by Amazon S3 to encode object keys in the response. If + // using url, non-ASCII characters used in an object's key name will be URL + // encoded. For example, the object test_file(3).png will appear as test_file%283%29.png. EncodingType *string `type:"string" enum:"EncodingType"` // A flag that indicates whether Amazon S3 returned all of the results that @@ -30600,7 +30600,7 @@ type ListObjectsV2Input struct { // you must use virtual-hosted-style requests in the format Bucket_name.s3express-az_id.region.amazonaws.com. // Path-style requests are not supported. Directory bucket names must be unique // in the chosen Availability Zone. Bucket names must follow the format bucket_base_name--az-id--x-s3 - // (for example, DOC-EXAMPLE-BUCKET--usw2-az2--x-s3). For information about + // (for example, DOC-EXAMPLE-BUCKET--usw2-az1--x-s3). For information about // bucket naming restrictions, see Directory bucket naming rules (https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html) // in the Amazon S3 User Guide. // @@ -30645,7 +30645,9 @@ type ListObjectsV2Input struct { // the Amazon S3 User Guide. Delimiter *string `location:"querystring" locationName:"delimiter" type:"string"` - // Encoding type used by Amazon S3 to encode object keys in the response. + // Encoding type used by Amazon S3 to encode object keys in the response. If + // using url, non-ASCII characters used in an object's key name will be URL + // encoded. For example, the object test_file(3).png will appear as test_file%283%29.png. EncodingType *string `location:"querystring" locationName:"encoding-type" type:"string" enum:"EncodingType"` // The account ID of the expected bucket owner. If the account ID that you provide @@ -31030,7 +31032,7 @@ type ListPartsInput struct { // you must use virtual-hosted-style requests in the format Bucket_name.s3express-az_id.region.amazonaws.com. // Path-style requests are not supported. Directory bucket names must be unique // in the chosen Availability Zone. Bucket names must follow the format bucket_base_name--az-id--x-s3 - // (for example, DOC-EXAMPLE-BUCKET--usw2-az2--x-s3). For information about + // (for example, DOC-EXAMPLE-BUCKET--usw2-az1--x-s3). For information about // bucket naming restrictions, see Directory bucket naming rules (https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html) // in the Amazon S3 User Guide. // @@ -31324,9 +31326,8 @@ type ListPartsOutput struct { // all the parts. Owner *Owner `type:"structure"` - // When a list is truncated, this element specifies the last part in the list, - // as well as the value to use for the part-number-marker request parameter - // in a subsequent request. + // Specifies the part after which listing should begin. Only parts with higher + // part numbers will be listed. PartNumberMarker *int64 `type:"integer"` // Container for elements related to a particular part. A response can contain @@ -31612,8 +31613,8 @@ type LocationInfo struct { // The name of the location where the bucket will be created. // - // For directory buckets, the AZ ID of the Availability Zone where the bucket - // will be created. An example AZ ID value is usw2-az2. + // For directory buckets, the name of the location is the AZ ID of the Availability + // Zone where the bucket will be created. An example AZ ID value is usw2-az1. Name *string `type:"string"` // The type of location where the bucket will be created. @@ -35951,7 +35952,7 @@ type PutBucketPolicyInput struct { // you must use path-style requests in the format https://s3express-control.region_code.amazonaws.com/bucket-name // . Virtual-hosted-style requests aren't supported. Directory bucket names // must be unique in the chosen Availability Zone. Bucket names must also follow - // the format bucket_base_name--az_id--x-s3 (for example, DOC-EXAMPLE-BUCKET--usw2-az2--x-s3). + // the format bucket_base_name--az_id--x-s3 (for example, DOC-EXAMPLE-BUCKET--usw2-az1--x-s3). // For information about bucket naming restrictions, see Directory bucket naming // rules (https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html) // in the Amazon S3 User Guide @@ -37310,7 +37311,7 @@ type PutObjectInput struct { // you must use virtual-hosted-style requests in the format Bucket_name.s3express-az_id.region.amazonaws.com. // Path-style requests are not supported. Directory bucket names must be unique // in the chosen Availability Zone. Bucket names must follow the format bucket_base_name--az-id--x-s3 - // (for example, DOC-EXAMPLE-BUCKET--usw2-az2--x-s3). For information about + // (for example, DOC-EXAMPLE-BUCKET--usw2-az1--x-s3). For information about // bucket naming restrictions, see Directory bucket naming rules (https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html) // in the Amazon S3 User Guide. // @@ -41519,7 +41520,7 @@ type ServerSideEncryptionByDefault struct { // Amazon Web Services Key Management Service (KMS) customer Amazon Web Services // KMS key ID to use for the default encryption. This parameter is allowed if - // and only if SSEAlgorithm is set to aws:kms. + // and only if SSEAlgorithm is set to aws:kms or aws:kms:dsse. // // You can specify the key ID, key alias, or the Amazon Resource Name (ARN) // of the KMS key. @@ -42696,7 +42697,7 @@ type UploadPartCopyInput struct { // you must use virtual-hosted-style requests in the format Bucket_name.s3express-az_id.region.amazonaws.com. // Path-style requests are not supported. Directory bucket names must be unique // in the chosen Availability Zone. Bucket names must follow the format bucket_base_name--az-id--x-s3 - // (for example, DOC-EXAMPLE-BUCKET--usw2-az2--x-s3). For information about + // (for example, DOC-EXAMPLE-BUCKET--usw2-az1--x-s3). For information about // bucket naming restrictions, see Directory bucket naming rules (https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html) // in the Amazon S3 User Guide. // @@ -43264,7 +43265,7 @@ type UploadPartInput struct { // you must use virtual-hosted-style requests in the format Bucket_name.s3express-az_id.region.amazonaws.com. // Path-style requests are not supported. Directory bucket names must be unique // in the chosen Availability Zone. Bucket names must follow the format bucket_base_name--az-id--x-s3 - // (for example, DOC-EXAMPLE-BUCKET--usw2-az2--x-s3). For information about + // (for example, DOC-EXAMPLE-BUCKET--usw2-az1--x-s3). For information about // bucket naming restrictions, see Directory bucket naming rules (https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html) // in the Amazon S3 User Guide. // diff --git a/vendor/github.com/aws/aws-sdk-go/service/s3/s3manager/upload_input.go b/vendor/github.com/aws/aws-sdk-go/service/s3/s3manager/upload_input.go index 8f9e068f7..f9c6e786d 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/s3/s3manager/upload_input.go +++ b/vendor/github.com/aws/aws-sdk-go/service/s3/s3manager/upload_input.go @@ -60,7 +60,7 @@ type UploadInput struct { // you must use virtual-hosted-style requests in the format Bucket_name.s3express-az_id.region.amazonaws.com. // Path-style requests are not supported. Directory bucket names must be unique // in the chosen Availability Zone. Bucket names must follow the format bucket_base_name--az-id--x-s3 - // (for example, DOC-EXAMPLE-BUCKET--usw2-az2--x-s3). For information about + // (for example, DOC-EXAMPLE-BUCKET--usw2-az1--x-s3). For information about // bucket naming restrictions, see Directory bucket naming rules (https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html) // in the Amazon S3 User Guide. // diff --git a/vendor/github.com/bytedance/sonic/Makefile b/vendor/github.com/bytedance/sonic/Makefile index c672c313e..69b8e11f1 100644 --- a/vendor/github.com/bytedance/sonic/Makefile +++ b/vendor/github.com/bytedance/sonic/Makefile @@ -23,9 +23,9 @@ CPU_avx := amd64 CPU_avx2 := amd64 CPU_sse := amd64 -TMPL_avx := fastint_amd64_test fastfloat_amd64_test native_amd64_test recover_amd64_test -TMPL_avx2 := fastint_amd64_test fastfloat_amd64_test native_amd64_test recover_amd64_test -TMPL_sse := fastint_amd64_test fastfloat_amd64_test native_amd64_test recover_amd64_test +TMPL_avx := native_test fastint_test fastfloat_test native_amd64 recover_test +TMPL_avx2 := native_test fastint_test fastfloat_test native_amd64 recover_test +TMPL_sse := native_test fastint_test fastfloat_test native_amd64 recover_test CFLAGS_avx := -msse -mno-sse4 -mavx -mpclmul -mno-avx2 -mstack-alignment=0 -DUSE_AVX=1 -DUSE_AVX2=0 CFLAGS_avx2 := -msse -mno-sse4 -mavx -mpclmul -mavx2 -mstack-alignment=0 -DUSE_AVX=1 -DUSE_AVX2=1 @@ -54,10 +54,14 @@ define build_tmpl $(eval @arch := $(1)) $(eval @tmpl := $(2)) $(eval @dest := $(3)) + $(eval @cpu := $(4)) ${@dest}: ${@tmpl} mkdir -p $(dir ${@dest}) - echo '// Code generated by Makefile, DO NOT EDIT.' > ${@dest} + echo '// +build ${@cpu}' > ${@dest} + echo >> ${@dest} + echo >> ${@dest} + echo '// Code generated by Makefile, DO NOT EDIT.' >> ${@dest} echo >> ${@dest} sed -e 's/{{PACKAGE}}/${@arch}/g' ${@tmpl} >> ${@dest} endef @@ -91,7 +95,8 @@ $(foreach \ build_tmpl, \ $(1), \ ${OUT_DIR}/${tmpl}.tmpl, \ - ${OUT_DIR}/$(1)/${tmpl}.go \ + ${OUT_DIR}/$(1)/${tmpl}.go, \ + $(value CPU_$(1)) \ )) \ ) endef diff --git a/vendor/github.com/bytedance/sonic/README.md b/vendor/github.com/bytedance/sonic/README.md index 3a36017b7..f3c736352 100644 --- a/vendor/github.com/bytedance/sonic/README.md +++ b/vendor/github.com/bytedance/sonic/README.md @@ -5,18 +5,27 @@ English | [中文](README_ZH_CN.md) A blazingly fast JSON serializing & deserializing library, accelerated by JIT (just-in-time compiling) and SIMD (single-instruction-multiple-data). ## Requirement -- Go 1.16~1.21 + +- Go 1.16~1.22 - Linux / MacOS / Windows(need go1.17 above) - Amd64 ARCH ## Features + - Runtime object binding without code generation - Complete APIs for JSON value manipulation - Fast, fast, fast! +## APIs + +see [go.dev](https://pkg.go.dev/github.com/bytedance/sonic) + ## Benchmarks + For **all sizes** of json and **all scenarios** of usage, **Sonic performs best**. + - [Medium](https://github.com/bytedance/sonic/blob/main/decoder/testdata_test.go#L19) (13KB, 300+ key, 6 layers) + ```powershell goversion: 1.17.1 goos: darwin @@ -81,6 +90,7 @@ BenchmarkLoadNode_Parallel/LoadAll()-16 5493 ns/op 2370.6 BenchmarkLoadNode/Interface()-16 17722 ns/op 734.85 MB/s 13323 B/op 88 allocs/op BenchmarkLoadNode_Parallel/Interface()-16 10330 ns/op 1260.70 MB/s 15178 B/op 88 allocs/op ``` + - [Small](https://github.com/bytedance/sonic/blob/main/testdata/small.go) (400B, 11 keys, 3 layers) ![small benchmarks](./docs/imgs/bench-small.png) - [Large](https://github.com/bytedance/sonic/blob/main/testdata/twitter.json) (635KB, 10000+ key, 6 layers) @@ -89,6 +99,7 @@ BenchmarkLoadNode_Parallel/Interface()-16 10330 ns/op 1260.7 See [bench.sh](https://github.com/bytedance/sonic/blob/main/scripts/bench.sh) for benchmark codes. ## How it works + See [INTRODUCTION.md](./docs/INTRODUCTION.md). ## Usage @@ -96,6 +107,7 @@ See [INTRODUCTION.md](./docs/INTRODUCTION.md). ### Marshal/Unmarshal Default behaviors are mostly consistent with `encoding/json`, except HTML escaping form (see [Escape HTML](https://github.com/bytedance/sonic/blob/main/README.md#escape-html)) and `SortKeys` feature (optional support see [Sort Keys](https://github.com/bytedance/sonic/blob/main/README.md#sort-keys)) that is **NOT** in conformity to [RFC8259](https://datatracker.ietf.org/doc/html/rfc8259). + ```go import "github.com/bytedance/sonic" @@ -107,8 +119,11 @@ err := sonic.Unmarshal(output, &data) ``` ### Streaming IO + Sonic supports decoding json from `io.Reader` or encoding objects into `io.Writer`, aims at handling multiple values as well as reducing memory consumption. + - encoder + ```go var o1 = map[string]interface{}{ "a": "b", @@ -123,7 +138,9 @@ fmt.Println(w.String()) // {"a":"b"} // 1 ``` + - decoder + ```go var o = map[string]interface{}{} var r = strings.NewReader(`{"a":"b"}{"1":"2"}`) @@ -136,6 +153,7 @@ fmt.Printf("%+v", o) ``` ### Use Number/Use Int64 + ```go import "github.com/bytedance/sonic/decoder" @@ -164,7 +182,9 @@ fm := root.Interface().(float64) // jn == jm ``` ### Sort Keys + On account of the performance loss from sorting (roughly 10%), sonic doesn't enable this feature by default. If your component depends on it to work (like [zstd](https://github.com/facebook/zstd)), Use it like this: + ```go import "github.com/bytedance/sonic" import "github.com/bytedance/sonic/encoder" @@ -177,19 +197,26 @@ v, err := encoder.Encode(m, encoder.SortMapKeys) var root := sonic.Get(JSON) err := root.SortKeys() ``` + ### Escape HTML + On account of the performance loss (roughly 15%), sonic doesn't enable this feature by default. You can use `encoder.EscapeHTML` option to open this feature (align with `encoding/json.HTMLEscape`). + ```go import "github.com/bytedance/sonic" v := map[string]string{"&&":"<>"} ret, err := Encode(v, EscapeHTML) // ret == `{"\u0026\u0026":{"X":"\u003c\u003e"}}` ``` + ### Compact Format + Sonic encodes primitive objects (struct/map...) as compact-format JSON by default, except marshaling `json.RawMessage` or `json.Marshaler`: sonic ensures validating their output JSON but **DONOT** compacting them for performance concerns. We provide the option `encoder.CompactMarshaler` to add compacting process. ### Print Error + If there invalid syntax in input JSON, sonic will return `decoder.SyntaxError`, which supports pretty-printing of error position + ```go import "github.com/bytedance/sonic" import "github.com/bytedance/sonic/decoder" @@ -215,7 +242,9 @@ if err != nil { ``` #### Mismatched Types [Sonic v1.6.0] + If there a **mismatch-typed** value for a given key, sonic will report `decoder.MismatchTypeError` (if there are many, report the last one), but still skip wrong the value and keep decoding next JSON. + ```go import "github.com/bytedance/sonic" import "github.com/bytedance/sonic/decoder" @@ -228,10 +257,15 @@ err := UnmarshalString(`{"A":"1","B":1}`, &data) println(err.Error()) // Mismatch type int with value string "at index 5: mismatched type with value\n\n\t{\"A\":\"1\",\"B\":1}\n\t.....^.........\n" fmt.Printf("%+v", data) // {A:0 B:1} ``` + ### Ast.Node + Sonic/ast.Node is a completely self-contained AST for JSON. It implements serialization and deserialization both and provides robust APIs for obtaining and modification of generic data. + #### Get/Index + Search partial JSON by given paths, which must be non-negative integer or string, or nil + ```go import "github.com/bytedance/sonic" @@ -245,10 +279,13 @@ raw := root.Raw() // == string(input) root, err := sonic.Get(input, "key1", 1, "key2") sub := root.Get("key3").Index(2).Int64() // == 3 ``` + **Tip**: since `Index()` uses offset to locate data, which is much faster than scanning like `Get()`, we suggest you use it as much as possible. And sonic also provides another API `IndexOrGet()` to underlying use offset as well as ensure the key is matched. #### Set/Unset + Modify the json content by Set()/Unset() + ```go import "github.com/bytedance/sonic" @@ -265,7 +302,9 @@ println(root.Get("key4").Check()) // "value not exist" ``` #### Serialize + To encode `ast.Node` as json, use `MarshalJson()` or `json.Marshal()` (MUST pass the node's pointer) + ```go import ( "encoding/json" @@ -279,6 +318,7 @@ println(string(buf) == string(exp)) // true ``` #### APIs + - validation: `Check()`, `Error()`, `Valid()`, `Exist()` - searching: `Index()`, `Get()`, `IndexPair()`, `IndexOrGet()`, `GetByPath()` - go-type casting: `Int64()`, `Float64()`, `String()`, `Number()`, `Bool()`, `Map[UseNumber|UseNode]()`, `Array[UseNumber|UseNode]()`, `Interface[UseNumber|UseNode]()` @@ -287,7 +327,9 @@ println(string(buf) == string(exp)) // true - modification: `Set()`, `SetByIndex()`, `Add()` ### Ast.Visitor + Sonic provides an advanced API for fully parsing JSON into non-standard types (neither `struct` not `map[string]interface{}`) without using any intermediate representation (`ast.Node` or `interface{}`). For example, you might have the following types which are like `interface{}` but actually not `interface{}`: + ```go type UserNode interface {} @@ -302,7 +344,9 @@ type ( UserArray struct{ Value []UserNode } ) ``` + Sonic provides the following API to return **the preorder traversal of a JSON AST**. The `ast.Visitor` is a SAX style interface which is used in some C++ JSON library. You should implement `ast.Visitor` by yourself and pass it to `ast.Preorder()` method. In your visitor you can make your custom types to represent JSON values. There may be an O(n) space container (such as stack) in your visitor to record the object / array hierarchy. + ```go func Preorder(str string, visitor Visitor, opts *VisitorOptions) error @@ -323,12 +367,14 @@ type Visitor interface { See [ast/visitor.go](https://github.com/bytedance/sonic/blob/main/ast/visitor.go) for detailed usage. We also implement a demo visitor for `UserNode` in [ast/visitor_test.go](https://github.com/bytedance/sonic/blob/main/ast/visitor_test.go). ## Compatibility + Sonic **DOES NOT** ensure to support all environments, due to the difficulty of developing high-performance codes. For developers who use sonic to build their applications in different environments, we have the following suggestions: - Developing on **Mac M1**: Make sure you have Rosetta 2 installed on your machine, and set `GOARCH=amd64` when building your application. Rosetta 2 can automatically translate x86 binaries to arm64 binaries and run x86 applications on Mac M1. - Developing on **Linux arm64**: You can install qemu and use the `qemu-x86_64 -cpu max` command to convert x86 binaries to amr64 binaries for applications built with sonic. The qemu can achieve a similar transfer effect to Rosetta 2 on Mac M1. For developers who want to use sonic on Linux arm64 without qemu, or those who want to handle JSON strictly consistent with `encoding/json`, we provide some compatible APIs as `sonic.API` + - `ConfigDefault`: the sonic's default config (`EscapeHTML=false`,`SortKeys=false`...) to run on sonic-supporting environment. It will fall back to `encoding/json` with the corresponding config, and some options like `SortKeys=false` will be invalid. - `ConfigStd`: the std-compatible config (`EscapeHTML=true`,`SortKeys=true`...) to run on sonic-supporting environment. It will fall back to `encoding/json`. - `ConfigFastest`: the fastest config (`NoQuoteTextMarshaler=true`) to run on sonic-supporting environment. It will fall back to `encoding/json` with the corresponding config, and some options will be invalid. @@ -336,7 +382,9 @@ For developers who want to use sonic on Linux arm64 without qemu, or those who w ## Tips ### Pretouch + Since Sonic uses [golang-asm](https://github.com/twitchyliquid64/golang-asm) as a JIT assembler, which is NOT very suitable for runtime compiling, first-hit running of a huge schema may cause request-timeout or even process-OOM. For better stability, we advise **using `Pretouch()` for huge-schema or compact-memory applications** before `Marshal()/Unmarshal()`. + ```go import ( "reflect" @@ -362,17 +410,23 @@ func init() { ``` ### Copy string -When decoding **string values without any escaped characters**, sonic references them from the origin JSON buffer instead of mallocing a new buffer to copy. This helps a lot for CPU performance but may leave the whole JSON buffer in memory as long as the decoded objects are being used. In practice, we found the extra memory introduced by referring JSON buffer is usually 20% ~ 80% of decoded objects. Once an application holds these objects for a long time (for example, cache the decoded objects for reusing), its in-use memory on the server may go up. We provide the option `decoder.CopyString()` for users to choose not to reference the JSON buffer, which may cause a decline in CPU performance to some degree. + +When decoding **string values without any escaped characters**, sonic references them from the origin JSON buffer instead of mallocing a new buffer to copy. This helps a lot for CPU performance but may leave the whole JSON buffer in memory as long as the decoded objects are being used. In practice, we found the extra memory introduced by referring JSON buffer is usually 20% ~ 80% of decoded objects. Once an application holds these objects for a long time (for example, cache the decoded objects for reusing), its in-use memory on the server may go up. - `Config.CopyString`/`decoder.CopyString()`: We provide the option for `Decode()` / `Unmarshal()` users to choose not to reference the JSON buffer, which may cause a decline in CPU performance to some degree. + +- `GetFromStringNoCopy()`: For memory safety, `sonic.Get()` / `sonic.GetFromString()` now copies return JSON. If users want to get json more quickly and not care about memory usage, you can use `GetFromStringNoCopy()` to return a JSON directly referenced from source. ### Pass string or []byte? + For alignment to `encoding/json`, we provide API to pass `[]byte` as an argument, but the string-to-bytes copy is conducted at the same time considering safety, which may lose performance when the origin JSON is huge. Therefore, you can use `UnmarshalString()` and `GetFromString()` to pass a string, as long as your origin data is a string or **nocopy-cast** is safe for your []byte. We also provide API `MarshalString()` for convenient **nocopy-cast** of encoded JSON []byte, which is safe since sonic's output bytes is always duplicated and unique. ### Accelerate `encoding.TextMarshaler` -To ensure data security, sonic.Encoder quotes and escapes string values from `encoding.TextMarshaler` interfaces by default, which may degrade performance much if most of your data is in form of them. We provide `encoder.NoQuoteTextMarshaler` to skip these operations, which means you **MUST** ensure their output string escaped and quoted following [RFC8259](https://datatracker.ietf.org/doc/html/rfc8259). +To ensure data security, sonic.Encoder quotes and escapes string values from `encoding.TextMarshaler` interfaces by default, which may degrade performance much if most of your data is in form of them. We provide `encoder.NoQuoteTextMarshaler` to skip these operations, which means you **MUST** ensure their output string escaped and quoted following [RFC8259](https://datatracker.ietf.org/doc/html/rfc8259). ### Better performance for generic data + In **fully-parsed** scenario, `Unmarshal()` performs better than `Get()`+`Node.Interface()`. But if you only have a part of the schema for specific json, you can combine `Get()` and `Unmarshal()` together: + ```go import "github.com/bytedance/sonic" @@ -380,7 +434,9 @@ node, err := sonic.GetFromString(_TwitterJson, "statuses", 3, "user") var user User // your partial schema... err = sonic.UnmarshalString(node.Raw(), &user) ``` + Even if you don't have any schema, use `ast.Node` as the container of generic values instead of `map` or `interface`: + ```go import "github.com/bytedance/sonic" @@ -391,7 +447,9 @@ err = user.Check() // err = user.LoadAll() // only call this when you want to use 'user' concurrently... go someFunc(user) ``` + Why? Because `ast.Node` stores its children using `array`: + - `Array`'s performance is **much better** than `Map` when Inserting (Deserialize) and Scanning (Serialize) data; - **Hashing** (`map[x]`) is not as efficient as **Indexing** (`array[x]`), which `ast.Node` can conduct on **both array and object**; - Using `Interface()`/`Map()` means Sonic must parse all the underlying values, while `ast.Node` can parse them **on demand**. @@ -399,6 +457,7 @@ Why? Because `ast.Node` stores its children using `array`: **CAUTION:** `ast.Node` **DOESN'T** ensure concurrent security directly, due to its **lazy-load** design. However, you can call `Node.Load()`/`Node.LoadAll()` to achieve that, which may bring performance reduction while it still works faster than converting to `map` or `interface{}` ### Ast.Node or Ast.Visitor? + For generic data, `ast.Node` should be enough for your needs in most cases. However, `ast.Node` is designed for partially processing JSON string. It has some special designs such as lazy-load which might not be suitable for directly parsing the whole JSON string like `Unmarshal()`. Although `ast.Node` is better then `map` or `interface{}`, it's also a kind of intermediate representation after all if your final types are customized and you have to convert the above types to your custom types after parsing. @@ -408,4 +467,5 @@ For better performance, in previous case the `ast.Visitor` will be the better ch But `ast.Visitor` is not a very handy API. You might need to write a lot of code to implement your visitor and carefully maintain the tree hierarchy during decoding. Please read the comments in [ast/visitor.go](https://github.com/bytedance/sonic/blob/main/ast/visitor.go) carefully if you decide to use this API. ## Community + Sonic is a subproject of [CloudWeGo](https://www.cloudwego.io/). We are committed to building a cloud native ecosystem. diff --git a/vendor/github.com/bytedance/sonic/README_ZH_CN.md b/vendor/github.com/bytedance/sonic/README_ZH_CN.md index a18e99afe..d0341ab72 100644 --- a/vendor/github.com/bytedance/sonic/README_ZH_CN.md +++ b/vendor/github.com/bytedance/sonic/README_ZH_CN.md @@ -6,10 +6,14 @@ ## 依赖 -- Go 1.16~1.21 +- Go 1.16~1.22 - Linux / MacOS / Windows(需要 Go1.17 以上) - Amd64 架构 +## 接口 + +详见 [go.dev](https://pkg.go.dev/github.com/bytedance/sonic) + ## 特色 - 运行时对象绑定,无需代码生成 @@ -19,7 +23,9 @@ ## 基准测试 对于**所有大小**的 json 和**所有使用场景**, **Sonic 表现均为最佳**。 + - [中型](https://github.com/bytedance/sonic/blob/main/decoder/testdata_test.go#L19) (13kB, 300+ 键, 6 层) + ```powershell goversion: 1.17.1 goos: darwin @@ -84,6 +90,7 @@ BenchmarkLoadNode_Parallel/LoadAll()-16 5493 ns/op 2370.6 BenchmarkLoadNode/Interface()-16 17722 ns/op 734.85 MB/s 13323 B/op 88 allocs/op BenchmarkLoadNode_Parallel/Interface()-16 10330 ns/op 1260.70 MB/s 15178 B/op 88 allocs/op ``` + - [小型](https://github.com/bytedance/sonic/blob/main/testdata/small.go) (400B, 11 个键, 3 层) ![small benchmarks](./docs/imgs/bench-small.png) - [大型](https://github.com/bytedance/sonic/blob/main/testdata/twitter.json) (635kB, 10000+ 个键, 6 层) @@ -100,6 +107,7 @@ BenchmarkLoadNode_Parallel/Interface()-16 10330 ns/op 1260.7 ### 序列化/反序列化 默认的行为基本上与 `encoding/json` 相一致,除了 HTML 转义形式(参见 [Escape HTML](https://github.com/bytedance/sonic/blob/main/README.md#escape-html)) 和 `SortKeys` 功能(参见 [Sort Keys](https://github.com/bytedance/sonic/blob/main/README.md#sort-keys))**没有**遵循 [RFC8259](https://datatracker.ietf.org/doc/html/rfc8259) 。 + ```go import "github.com/bytedance/sonic" @@ -113,7 +121,9 @@ err := sonic.Unmarshal(output, &data) ### 流式输入输出 Sonic 支持解码 `io.Reader` 中输入的 json,或将对象编码为 json 后输出至 `io.Writer`,以处理多个值并减少内存消耗。 + - 编码器 + ```go var o1 = map[string]interface{}{ "a": "b", @@ -128,7 +138,9 @@ fmt.Println(w.String()) // {"a":"b"} // 1 ``` + - 解码器 + ```go var o = map[string]interface{}{} var r = strings.NewReader(`{"a":"b"}{"1":"2"}`) @@ -172,6 +184,7 @@ fm := root.Interface().(float64) // jn == jm ### 对键排序 考虑到排序带来的性能损失(约 10% ), sonic 默认不会启用这个功能。如果你的组件依赖这个行为(如 [zstd](https://github.com/facebook/zstd)) ,可以仿照下面的例子: + ```go import "github.com/bytedance/sonic" import "github.com/bytedance/sonic/encoder" @@ -188,6 +201,7 @@ err := root.SortKeys() ### HTML 转义 考虑到性能损失(约15%), sonic 默认不会启用这个功能。你可以使用 `encoder.EscapeHTML` 选项来开启(与 `encoding/json.HTMLEscape` 行为一致)。 + ```go import "github.com/bytedance/sonic" @@ -196,11 +210,13 @@ ret, err := Encode(v, EscapeHTML) // ret == `{"\u0026\u0026":{"X":"\u003c\u003e" ``` ### 紧凑格式 + Sonic 默认将基本类型( `struct` , `map` 等)编码为紧凑格式的 JSON ,除非使用 `json.RawMessage` or `json.Marshaler` 进行编码: sonic 确保输出的 JSON 合法,但出于性能考虑,**不会**加工成紧凑格式。我们提供选项 `encoder.CompactMarshaler` 来添加此过程, ### 打印错误 如果输入的 JSON 存在无效的语法,sonic 将返回 `decoder.SyntaxError`,该错误支持错误位置的美化输出。 + ```go import "github.com/bytedance/sonic" import "github.com/bytedance/sonic/decoder" @@ -228,6 +244,7 @@ if err != nil { #### 类型不匹配 [Sonic v1.6.0] 如果给定键中存在**类型不匹配**的值, sonic 会抛出 `decoder.MismatchTypeError` (如果有多个,只会报告最后一个),但仍会跳过错误的值并解码下一个 JSON 。 + ```go import "github.com/bytedance/sonic" import "github.com/bytedance/sonic/decoder" @@ -240,6 +257,7 @@ err := UnmarshalString(`{"A":"1","B":1}`, &data) println(err.Error()) // Mismatch type int with value string "at index 5: mismatched type with value\n\n\t{\"A\":\"1\",\"B\":1}\n\t.....^.........\n" fmt.Printf("%+v", data) // {A:0 B:1} ``` + ### `Ast.Node` Sonic/ast.Node 是完全独立的 JSON 抽象语法树库。它实现了序列化和反序列化,并提供了获取和修改通用数据的鲁棒的 API。 @@ -247,6 +265,7 @@ Sonic/ast.Node 是完全独立的 JSON 抽象语法树库。它实现了序列 #### 查找/索引 通过给定的路径搜索 JSON 片段,路径必须为非负整数,字符串或 `nil` 。 + ```go import "github.com/bytedance/sonic" @@ -260,11 +279,13 @@ raw := root.Raw() // == string(input) root, err := sonic.Get(input, "key1", 1, "key2") sub := root.Get("key3").Index(2).Int64() // == 3 ``` + **注意**:由于 `Index()` 使用偏移量来定位数据,比使用扫描的 `Get()` 要快的多,建议尽可能的使用 `Index` 。 Sonic 也提供了另一个 API, `IndexOrGet()` ,以偏移量为基础并且也确保键的匹配。 #### 修改 -使用 ` Set()` / `Unset()` 修改 json 的内容 +使用 `Set()` / `Unset()` 修改 json 的内容 + ```go import "github.com/bytedance/sonic" @@ -281,7 +302,9 @@ println(root.Get("key4").Check()) // "value not exist" ``` #### 序列化 + 要将 `ast.Node` 编码为 json ,使用 `MarshalJson()` 或者 `json.Marshal()` (必须传递指向节点的指针) + ```go import ( "encoding/json" @@ -295,6 +318,7 @@ println(string(buf) == string(exp)) // true ``` #### APIs + - 合法性检查: `Check()`, `Error()`, `Valid()`, `Exist()` - 索引: `Index()`, `Get()`, `IndexPair()`, `IndexOrGet()`, `GetByPath()` - 转换至 go 内置类型: `Int64()`, `Float64()`, `String()`, `Number()`, `Bool()`, `Map[UseNumber|UseNode]()`, `Array[UseNumber|UseNode]()`, `Interface[UseNumber|UseNode]()` @@ -303,7 +327,9 @@ println(string(buf) == string(exp)) // true - 修改: `Set()`, `SetByIndex()`, `Add()` ### `Ast.Visitor` + Sonic 提供了一个高级的 API 用于直接全量解析 JSON 到非标准容器里 (既不是 `struct` 也不是 `map[string]interface{}`) 且不需要借助任何中间表示 (`ast.Node` 或 `interface{}`)。举个例子,你可能定义了下述的类型,它们看起来像 `interface{}`,但实际上并不是: + ```go type UserNode interface {} @@ -318,7 +344,9 @@ type ( UserArray struct{ Value []UserNode } ) ``` + Sonic 提供了下述的 API 来返回 **“对 JSON AST 的前序遍历”**。`ast.Visitor` 是一个 SAX 风格的接口,这在某些 C++ 的 JSON 解析库中被使用到。你需要自己实现一个 `ast.Visitor`,将它传递给 `ast.Preorder()` 方法。在你的实现中你可以使用自定义的类型来表示 JSON 的值。在你的 `ast.Visitor` 中,可能需要有一个 O(n) 空间复杂度的容器(比如说栈)来记录 object / array 的层级。 + ```go func Preorder(str string, visitor Visitor, opts *VisitorOptions) error @@ -335,15 +363,18 @@ type Visitor interface { OnArrayEnd() error } ``` + 详细用法参看 [ast/visitor.go](https://github.com/bytedance/sonic/blob/main/ast/visitor.go),我们还为 `UserNode` 实现了一个示例 `ast.Visitor`,你可以在 [ast/visitor_test.go](https://github.com/bytedance/sonic/blob/main/ast/visitor_test.go) 中找到它。 ## 兼容性 + 由于开发高性能代码的困难性, Sonic **不**保证对所有环境的支持。对于在不同环境中使用 Sonic 构建应用程序的开发者,我们有以下建议: - 在 **Mac M1** 上开发:确保在您的计算机上安装了 Rosetta 2,并在构建时设置 `GOARCH=amd64` 。 Rosetta 2 可以自动将 x86 二进制文件转换为 arm64 二进制文件,并在 Mac M1 上运行 x86 应用程序。 - 在 **Linux arm64** 上开发:您可以安装 qemu 并使用 `qemu-x86_64 -cpu max` 命令来将 x86 二进制文件转换为 arm64 二进制文件。qemu可以实现与Mac M1上的Rosetta 2类似的转换效果。 对于希望在不使用 qemu 下使用 sonic 的开发者,或者希望处理 JSON 时与 `encoding/JSON` 严格保持一致的开发者,我们在 `sonic.API` 中提供了一些兼容性 API + - `ConfigDefault`: 在支持 sonic 的环境下 sonic 的默认配置(`EscapeHTML=false`,`SortKeys=false`等)。行为与具有相应配置的 `encoding/json` 一致,一些选项,如 `SortKeys=false` 将无效。 - `ConfigStd`: 在支持 sonic 的环境下与标准库兼容的配置(`EscapeHTML=true`,`SortKeys=true`等)。行为与 `encoding/json` 一致。 - `ConfigFastest`: 在支持 sonic 的环境下运行最快的配置(`NoQuoteTextMarshaler=true`)。行为与具有相应配置的 `encoding/json` 一致,某些选项将无效。 @@ -351,7 +382,9 @@ type Visitor interface { ## 注意事项 ### 预热 + 由于 Sonic 使用 [golang-asm](https://github.com/twitchyliquid64/golang-asm) 作为 JIT 汇编器,这个库并不适用于运行时编译,第一次运行一个大型模式可能会导致请求超时甚至进程内存溢出。为了更好地稳定性,我们建议在运行大型模式或在内存有限的应用中,在使用 `Marshal()/Unmarshal()` 前运行 `Pretouch()`。 + ```go import ( "reflect" @@ -381,16 +414,17 @@ func init() { 当解码 **没有转义字符的字符串**时, sonic 会从原始的 JSON 缓冲区内引用而不是复制到新的一个缓冲区中。这对 CPU 的性能方面很有帮助,但是可能因此在解码后对象仍在使用的时候将整个 JSON 缓冲区保留在内存中。实践中我们发现,通过引用 JSON 缓冲区引入的额外内存通常是解码后对象的 20% 至 80% ,一旦应用长期保留这些对象(如缓存以备重用),服务器所使用的内存可能会增加。我们提供了选项 `decoder.CopyString()` 供用户选择,不引用 JSON 缓冲区。这可能在一定程度上降低 CPU 性能。 ### 传递字符串还是字节数组? + 为了和 `encoding/json` 保持一致,我们提供了传递 `[]byte` 作为参数的 API ,但考虑到安全性,字符串到字节的复制是同时进行的,这在原始 JSON 非常大时可能会导致性能损失。因此,你可以使用 `UnmarshalString()` 和 `GetFromString()` 来传递字符串,只要你的原始数据是字符串,或**零拷贝类型转换**对于你的字节数组是安全的。我们也提供了 `MarshalString()` 的 API ,以便对编码的 JSON 字节数组进行**零拷贝类型转换**,因为 sonic 输出的字节始终是重复并且唯一的,所以这样是安全的。 ### 加速 `encoding.TextMarshaler` 为了保证数据安全性, `sonic.Encoder` 默认会对来自 `encoding.TextMarshaler` 接口的字符串进行引用和转义,如果大部分数据都是这种形式那可能会导致很大的性能损失。我们提供了 `encoder.NoQuoteTextMarshaler` 选项来跳过这些操作,但你**必须**保证他们的输出字符串依照 [RFC8259](https://datatracker.ietf.org/doc/html/rfc8259) 进行了转义和引用。 - ### 泛型的性能优化 在 **完全解析**的场景下, `Unmarshal()` 表现得比 `Get()`+`Node.Interface()` 更好。但是如果你只有特定 JSON 的部分模式,你可以将 `Get()` 和 `Unmarshal()` 结合使用: + ```go import "github.com/bytedance/sonic" @@ -398,7 +432,9 @@ node, err := sonic.GetFromString(_TwitterJson, "statuses", 3, "user") var user User // your partial schema... err = sonic.UnmarshalString(node.Raw(), &user) ``` + 甚至如果你没有任何模式,可以用 `ast.Node` 代替 `map` 或 `interface` 作为泛型的容器: + ```go import "github.com/bytedance/sonic" @@ -409,7 +445,9 @@ err = user.Check() // err = user.LoadAll() // only call this when you want to use 'user' concurrently... go someFunc(user) ``` + 为什么?因为 `ast.Node` 使用 `array` 来存储其子节点: + - 在插入(反序列化)和扫描(序列化)数据时,`Array` 的性能比 `Map` **好得多**; - **哈希**(`map[x]`)的效率不如**索引**(`array[x]`)高效,而 `ast.Node` 可以在数组和对象上使用索引; - 使用 `Interface()` / `Map()` 意味着 sonic 必须解析所有的底层值,而 `ast.Node` 可以**按需解析**它们。 @@ -417,6 +455,7 @@ go someFunc(user) **注意**:由于 `ast.Node` 的惰性加载设计,其**不能**直接保证并发安全性,但你可以调用 `Node.Load()` / `Node.LoadAll()` 来实现并发安全。尽管可能会带来性能损失,但仍比转换成 `map` 或 `interface{}` 更为高效。 ### 使用 `ast.Node` 还是 `ast.Visitor`? + 对于泛型数据的解析,`ast.Node` 在大多数场景上应该能够满足你的需求。 然而,`ast.Node` 是一种针对部分解析 JSON 而设计的泛型容器,它包含一些特殊设计,比如惰性加载,如果你希望像 `Unmarshal()` 那样直接解析整个 JSON,这些设计可能并不合适。尽管 `ast.Node` 相较于 `map` 或 `interface{}` 来说是更好的一种泛型容器,但它毕竟也是一种中间表示,如果你的最终类型是自定义的,你还得在解析完成后将上述类型转化成你自定义的类型。 diff --git a/vendor/github.com/bytedance/sonic/api.go b/vendor/github.com/bytedance/sonic/api.go index 9525b7afd..093329127 100644 --- a/vendor/github.com/bytedance/sonic/api.go +++ b/vendor/github.com/bytedance/sonic/api.go @@ -20,6 +20,7 @@ import ( `io` `github.com/bytedance/sonic/ast` + `github.com/bytedance/sonic/internal/rt` ) // Config is a combination of sonic/encoder.Options and sonic/decoder.Options @@ -73,10 +74,13 @@ type Config struct { // NoValidateJSONMarshaler indicates that the encoder should not validate the output string // after encoding the JSONMarshaler to JSON. NoValidateJSONMarshaler bool + + // NoEncoderNewline indicates that the encoder should not add a newline after every message + NoEncoderNewline bool } var ( - // ConfigDefault is the default config of APIs, aiming at efficiency and safty. + // ConfigDefault is the default config of APIs, aiming at efficiency and safety. ConfigDefault = Config{}.Froze() // ConfigStd is the standard config of APIs, aiming at being compatible with encoding/json. @@ -114,7 +118,7 @@ type API interface { NewEncoder(writer io.Writer) Encoder // NewDecoder create a Decoder holding reader NewDecoder(reader io.Reader) Decoder - // Valid validates the JSON-encoded bytes and reportes if it is valid + // Valid validates the JSON-encoded bytes and reports if it is valid Valid(data []byte) bool } @@ -170,27 +174,41 @@ func UnmarshalString(buf string, val interface{}) error { return ConfigDefault.UnmarshalFromString(buf, val) } -// Get searches the given path from json, -// and returns its representing ast.Node. +// Get searches and locates the given path from src json, +// and returns a ast.Node representing the partially json. // // Each path arg must be integer or string: // - Integer is target index(>=0), means searching current node as array. // - String is target key, means searching current node as object. // // -// Note, the api expects the json is well-formed at least, -// otherwise it may return unexpected result. +// Notice: It expects the src json is **Well-formed** and **Immutable** when calling, +// otherwise it may return unexpected result. +// Considering memory safety, the returned JSON is **Copied** from the input func Get(src []byte, path ...interface{}) (ast.Node, error) { - return GetFromString(string(src), path...) + return GetCopyFromString(rt.Mem2Str(src), path...) } -// GetFromString is same with Get except src is string, -// which can reduce unnecessary memory copy. +// GetFromString is same with Get except src is string. +// +// WARNING: The returned JSON is **Referenced** from the input. +// Caching or long-time holding the returned node may cause OOM. +// If your src is big, consider use GetFromStringCopy(). func GetFromString(src string, path ...interface{}) (ast.Node, error) { return ast.NewSearcher(src).GetByPath(path...) } +// GetCopyFromString is same with Get except src is string +func GetCopyFromString(src string, path ...interface{}) (ast.Node, error) { + return ast.NewSearcher(src).GetByPathCopy(path...) +} + // Valid reports whether data is a valid JSON encoding. func Valid(data []byte) bool { return ConfigDefault.Valid(data) } + +// Valid reports whether data is a valid JSON encoding. +func ValidString(data string) bool { + return ConfigDefault.Valid(rt.Str2Mem(data)) +} diff --git a/vendor/github.com/bytedance/sonic/ast/api_amd64.go b/vendor/github.com/bytedance/sonic/ast/api.go similarity index 77% rename from vendor/github.com/bytedance/sonic/ast/api_amd64.go rename to vendor/github.com/bytedance/sonic/ast/api.go index da6738efd..373d62a9f 100644 --- a/vendor/github.com/bytedance/sonic/ast/api_amd64.go +++ b/vendor/github.com/bytedance/sonic/ast/api.go @@ -1,4 +1,4 @@ -// +build amd64,go1.16,!go1.22 +// +build amd64,go1.16,!go1.23 arm64,go1.20,!go1.23 /* * Copyright 2022 ByteDance Inc. @@ -27,7 +27,6 @@ import ( `github.com/bytedance/sonic/internal/native/types` `github.com/bytedance/sonic/internal/rt` uq `github.com/bytedance/sonic/unquote` - `github.com/chenzhuoyu/base64x` ) var typeByte = rt.UnpackEface(byte(0)).Type @@ -77,14 +76,6 @@ func unquote(src string) (string, types.ParsingError) { return uq.String(src) } -func decodeBase64(src string) ([]byte, error) { - return base64x.StdEncoding.DecodeString(src) -} - -func encodeBase64(src []byte) string { - return base64x.StdEncoding.EncodeToString(src) -} - func (self *Parser) decodeValue() (val types.JsonState) { sv := (*rt.GoString)(unsafe.Pointer(&self.s)) flag := types.F_USE_NUMBER @@ -131,27 +122,3 @@ func (self *Parser) getByPath(path ...interface{}) (int, types.ParsingError) { } return start, 0 } - -func (self *Searcher) GetByPath(path ...interface{}) (Node, error) { - var err types.ParsingError - var start int - - self.parser.p = 0 - start, err = self.parser.getByPath(path...) - if err != 0 { - // for compatibility with old version - if err == types.ERR_NOT_FOUND { - return Node{}, ErrNotExist - } - if err == types.ERR_UNSUPPORT_TYPE { - panic("path must be either int(>=0) or string") - } - return Node{}, self.parser.syntaxError(err) - } - - t := switchRawType(self.parser.s[start]) - if t == _V_NONE { - return Node{}, self.parser.ExportError(err) - } - return newRawNode(self.parser.s[start:self.parser.p], t), nil -} diff --git a/vendor/github.com/bytedance/sonic/ast/api_compat.go b/vendor/github.com/bytedance/sonic/ast/api_compat.go index 7b475eb61..2c889fc2a 100644 --- a/vendor/github.com/bytedance/sonic/ast/api_compat.go +++ b/vendor/github.com/bytedance/sonic/ast/api_compat.go @@ -1,124 +1,105 @@ -// +build !amd64 !go1.16 go1.22 +// +build !amd64,!arm64 go1.23 !go1.16 arm64,!go1.20 /* - * Copyright 2022 ByteDance 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. - */ +* Copyright 2022 ByteDance 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 ast import ( - `encoding/base64` - `encoding/json` - `fmt` + `encoding/json` - `github.com/bytedance/sonic/internal/native/types` - `github.com/bytedance/sonic/internal/rt` + `github.com/bytedance/sonic/internal/native/types` + `github.com/bytedance/sonic/internal/rt` ) func init() { - println("WARNING: sonic only supports Go1.16~1.20 && CPU amd64, but your environment is not suitable") + println("WARNING:(ast) sonic only supports Go1.16~1.22, but your environment is not suitable") } func quote(buf *[]byte, val string) { - quoteString(buf, val) + quoteString(buf, val) } func unquote(src string) (string, types.ParsingError) { - sp := rt.IndexChar(src, -1) - out, ok := unquoteBytes(rt.BytesFrom(sp, len(src)+2, len(src)+2)) - if !ok { - return "", types.ERR_INVALID_ESCAPE - } - return rt.Mem2Str(out), 0 -} - -func decodeBase64(src string) ([]byte, error) { - return base64.StdEncoding.DecodeString(src) + sp := rt.IndexChar(src, -1) + out, ok := unquoteBytes(rt.BytesFrom(sp, len(src)+2, len(src)+2)) + if !ok { + return "", types.ERR_INVALID_ESCAPE + } + return rt.Mem2Str(out), 0 } -func encodeBase64(src []byte) string { - return base64.StdEncoding.EncodeToString(src) -} func (self *Parser) decodeValue() (val types.JsonState) { - e, v := decodeValue(self.s, self.p, self.dbuf == nil) - if e < 0 { - return v - } - self.p = e - return v + e, v := decodeValue(self.s, self.p, self.dbuf == nil) + if e < 0 { + return v + } + self.p = e + return v } func (self *Parser) skip() (int, types.ParsingError) { - e, s := skipValue(self.s, self.p) - if e < 0 { - return self.p, types.ParsingError(-e) - } - self.p = e - return s, 0 + e, s := skipValue(self.s, self.p) + if e < 0 { + return self.p, types.ParsingError(-e) + } + self.p = e + return s, 0 } func (self *Parser) skipFast() (int, types.ParsingError) { - e, s := skipValueFast(self.s, self.p) - if e < 0 { - return self.p, types.ParsingError(-e) - } - self.p = e - return s, 0 + e, s := skipValueFast(self.s, self.p) + if e < 0 { + return self.p, types.ParsingError(-e) + } + self.p = e + return s, 0 } func (self *Node) encodeInterface(buf *[]byte) error { - out, err := json.Marshal(self.packAny()) - if err != nil { - return err - } - *buf = append(*buf, out...) - return nil + out, err := json.Marshal(self.packAny()) + if err != nil { + return err + } + *buf = append(*buf, out...) + return nil } -func (self *Searcher) GetByPath(path ...interface{}) (Node, error) { - self.parser.p = 0 - - var err types.ParsingError +func (self *Parser) getByPath(path ...interface{}) (int, types.ParsingError) { for _, p := range path { if idx, ok := p.(int); ok && idx >= 0 { - if err = self.parser.searchIndex(idx); err != 0 { - return Node{}, self.parser.ExportError(err) + if err := self.searchIndex(idx); err != 0 { + return self.p, err } } else if key, ok := p.(string); ok { - if err = self.parser.searchKey(key); err != 0 { - return Node{}, self.parser.ExportError(err) + if err := self.searchKey(key); err != 0 { + return self.p, err } } else { panic("path must be either int(>=0) or string") } } - - var start = self.parser.p - if start, err = self.parser.skip(); err != 0 { - return Node{}, self.parser.ExportError(err) - } - ns := len(self.parser.s) - if self.parser.p > ns || start >= ns || start>=self.parser.p { - return Node{}, fmt.Errorf("skip %d char out of json boundary", start) + start, e := self.skip() + if e != 0 { + return self.p, e } - - t := switchRawType(self.parser.s[start]) - if t == _V_NONE { - return Node{}, self.parser.ExportError(err) - } - - return newRawNode(self.parser.s[start:self.parser.p], t), nil -} \ No newline at end of file + // t := switchRawType(self.s[start]) + // if t == _V_NUMBER { + // self.p = 1 + backward(self.s, self.p-1) + // } + return start, 0 +} diff --git a/vendor/github.com/bytedance/sonic/ast/b64_amd64.go b/vendor/github.com/bytedance/sonic/ast/b64_amd64.go new file mode 100644 index 000000000..fd3d85e36 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/ast/b64_amd64.go @@ -0,0 +1,31 @@ +// +build amd64,go1.16 + +/** + * Copyright 2023 ByteDance 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 ast + +import ( + `github.com/chenzhuoyu/base64x` +) + +func decodeBase64(src string) ([]byte, error) { + return base64x.StdEncoding.DecodeString(src) +} + +func encodeBase64(src []byte) string { + return base64x.StdEncoding.EncodeToString(src) +} diff --git a/vendor/google.golang.org/grpc/internal/channelz/util_nonlinux.go b/vendor/github.com/bytedance/sonic/ast/b64_compat.go similarity index 66% rename from vendor/google.golang.org/grpc/internal/channelz/util_nonlinux.go rename to vendor/github.com/bytedance/sonic/ast/b64_compat.go index b5568b22e..e8f9a72fd 100644 --- a/vendor/google.golang.org/grpc/internal/channelz/util_nonlinux.go +++ b/vendor/github.com/bytedance/sonic/ast/b64_compat.go @@ -1,9 +1,7 @@ -//go:build !linux -// +build !linux +// +build !amd64 !go1.16 /* - * - * Copyright 2018 gRPC authors. + * Copyright 2022 ByteDance Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,12 +14,18 @@ * 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 channelz +package ast + +import ( + `encoding/base64` +) + +func decodeBase64(src string) ([]byte, error) { + return base64.StdEncoding.DecodeString(src) +} -// GetSocketOption gets the socket option info of the conn. -func GetSocketOption(c any) *SocketOptionData { - return nil +func encodeBase64(src []byte) string { + return base64.StdEncoding.EncodeToString(src) } diff --git a/vendor/github.com/bytedance/sonic/ast/buffer.go b/vendor/github.com/bytedance/sonic/ast/buffer.go index 93f4ff47a..bccbf4814 100644 --- a/vendor/github.com/bytedance/sonic/ast/buffer.go +++ b/vendor/github.com/bytedance/sonic/ast/buffer.go @@ -58,29 +58,89 @@ func (self *linkedNodes) At(i int) (*Node) { return nil } -func (self *linkedNodes) Add(v Node) { - if self.size < _DEFAULT_NODE_CAP { - self.head[self.size] = v - self.size++ +func (self *linkedNodes) MoveOne(source int, target int) { + if source == target { return } + if source < 0 || source >= self.size || target < 0 || target >= self.size { + return + } + // reserve source + n := *self.At(source) + if source < target { + // move every element (source,target] one step back + for i:=source; itarget; i-- { + *self.At(i) = *self.At(i-1) + } + } + // set target + *self.At(target) = n +} + +func (self *linkedNodes) Pop() { + if self == nil || self.size == 0 { + return + } + self.Set(self.size-1, Node{}) + self.size-- +} + +func (self *linkedPairs) Pop() { + if self == nil || self.size == 0 { + return + } + self.Set(self.size-1, Pair{}) + self.size-- +} + +func (self *linkedNodes) Push(v Node) { + self.Set(self.size, v) +} - a, b, c := self.size/_DEFAULT_NODE_CAP-1 , self.size%_DEFAULT_NODE_CAP, cap(self.tail) - if a - c >= 0 { +func (self *linkedNodes) Set(i int, v Node) { + if i < _DEFAULT_NODE_CAP { + self.head[i] = v + if self.size <= i { + self.size = i+1 + } + return + } + a, b := i/_DEFAULT_NODE_CAP-1, i%_DEFAULT_NODE_CAP + if a < 0 { + self.head[b] = v + } else { + self.growTailLength(a+1) + var n = &self.tail[a] + if *n == nil { + *n = new(nodeChunk) + } + (*n)[b] = v + } + if self.size <= i { + self.size = i+1 + } +} + +func (self *linkedNodes) growTailLength(l int) { + if l <= len(self.tail) { + return + } + c := cap(self.tail) + for c < l { c += 1 + c>>_APPEND_GROW_SHIFT - tmp := make([]*nodeChunk, a + 1, c) - copy(tmp, self.tail) - self.tail = tmp - } else if a >= len(self.tail) { - self.tail = self.tail[:a+1] } - - var n = &self.tail[a] - if *n == nil { - *n = new(nodeChunk) + if c == cap(self.tail) { + self.tail = self.tail[:l] + return } - (*n)[b] = v - self.size++ + tmp := make([]*nodeChunk, l, c) + copy(tmp, self.tail) + self.tail = tmp } func (self *linkedNodes) ToSlice(con []Node) { @@ -169,29 +229,49 @@ func (self *linkedPairs) At(i int) *Pair { return nil } -func (self *linkedPairs) Add(v Pair) { - if self.size < _DEFAULT_NODE_CAP { - self.head[self.size] = v - self.size++ +func (self *linkedPairs) Push(v Pair) { + self.Set(self.size, v) +} + +func (self *linkedPairs) Set(i int, v Pair) { + if i < _DEFAULT_NODE_CAP { + self.head[i] = v + if self.size <= i { + self.size = i+1 + } return } + a, b := i/_DEFAULT_NODE_CAP-1, i%_DEFAULT_NODE_CAP + if a < 0 { + self.head[b] = v + } else { + self.growTailLength(a+1) + var n = &self.tail[a] + if *n == nil { + *n = new(pairChunk) + } + (*n)[b] = v + } + if self.size <= i { + self.size = i+1 + } +} - a, b, c := self.size/_DEFAULT_NODE_CAP-1 , self.size%_DEFAULT_NODE_CAP, cap(self.tail) - if a - c >= 0 { +func (self *linkedPairs) growTailLength(l int) { + if l <= len(self.tail) { + return + } + c := cap(self.tail) + for c < l { c += 1 + c>>_APPEND_GROW_SHIFT - tmp := make([]*pairChunk, a + 1, c) - copy(tmp, self.tail) - self.tail = tmp - } else if a >= len(self.tail) { - self.tail = self.tail[:a+1] } - - var n = &self.tail[a] - if *n == nil { - *n = new(pairChunk) + if c == cap(self.tail) { + self.tail = self.tail[:l] + return } - (*n)[b] = v - self.size++ + tmp := make([]*pairChunk, l, c) + copy(tmp, self.tail) + self.tail = tmp } // linear search @@ -271,7 +351,7 @@ func (self *linkedPairs) Swap(i, j int) { } func (self *linkedPairs) Sort() { - sort.Sort(self) + sort.Stable(self) } // Compare two strings from the pos d. diff --git a/vendor/github.com/bytedance/sonic/ast/encode.go b/vendor/github.com/bytedance/sonic/ast/encode.go index 263ae5a9d..956809c2c 100644 --- a/vendor/github.com/bytedance/sonic/ast/encode.go +++ b/vendor/github.com/bytedance/sonic/ast/encode.go @@ -193,20 +193,9 @@ func (self *Node) encodeArray(buf *[]byte) error { *buf = append(*buf, '[') - var s = (*linkedNodes)(self.p) var started bool - if nb > 0 { - n := s.At(0) - if n.Exists() { - if err := n.encode(buf); err != nil { - return err - } - started = true - } - } - - for i := 1; i < nb; i++ { - n := s.At(i) + for i := 0; i < nb; i++ { + n := self.nodeAt(i) if !n.Exists() { continue } @@ -250,21 +239,10 @@ func (self *Node) encodeObject(buf *[]byte) error { *buf = append(*buf, '{') - var s = (*linkedPairs)(self.p) var started bool - if nb > 0 { - n := s.At(0) - if n.Value.Exists() { - if err := n.encode(buf); err != nil { - return err - } - started = true - } - } - - for i := 1; i < nb; i++ { - n := s.At(i) - if !n.Value.Exists() { + for i := 0; i < nb; i++ { + n := self.pairAt(i) + if n == nil || !n.Value.Exists() { continue } if started { diff --git a/vendor/github.com/bytedance/sonic/ast/iterator.go b/vendor/github.com/bytedance/sonic/ast/iterator.go index 3c4187a9c..64e1e5a90 100644 --- a/vendor/github.com/bytedance/sonic/ast/iterator.go +++ b/vendor/github.com/bytedance/sonic/ast/iterator.go @@ -32,7 +32,11 @@ func (self *Node) Values() (ListIterator, error) { if err := self.should(types.V_ARRAY, "an array"); err != nil { return ListIterator{}, err } - return ListIterator{Iterator{p: self}}, nil + return self.values(), nil +} + +func (self *Node) values() ListIterator { + return ListIterator{Iterator{p: self}} } // Properties returns iterator for object's children traversal @@ -40,7 +44,11 @@ func (self *Node) Properties() (ObjectIterator, error) { if err := self.should(types.V_OBJECT, "an object"); err != nil { return ObjectIterator{}, err } - return ObjectIterator{Iterator{p: self}}, nil + return self.properties(), nil +} + +func (self *Node) properties() ObjectIterator { + return ObjectIterator{Iterator{p: self}} } type Iterator struct { @@ -114,7 +122,7 @@ next_start: } else { n := self.p.pairAt(self.i) self.i++ - if !n.Value.Exists() { + if n == nil || !n.Value.Exists() { goto next_start } return n diff --git a/vendor/github.com/bytedance/sonic/ast/node.go b/vendor/github.com/bytedance/sonic/ast/node.go index 990908ddd..9637659b1 100644 --- a/vendor/github.com/bytedance/sonic/ast/node.go +++ b/vendor/github.com/bytedance/sonic/ast/node.go @@ -491,7 +491,6 @@ func (self *Node) StrictFloat64() (float64, error) { // Len returns children count of a array|object|string node // WARN: For partially loaded node, it also works but only counts the parsed children -// WARN: For ARRAY|OBJECT nodes which has been conducted `UnsetXX()`, its length WON'T change func (self *Node) Len() (int, error) { if err := self.checkRaw(); err != nil { return 0, err @@ -534,10 +533,12 @@ func (self *Node) Set(key string, node Node) (bool, error) { if err := node.Check(); err != nil { return false, err } - + if self.t == _V_NONE || self.t == types.V_NULL { *self = NewObject([]Pair{{key, node}}) return false, nil + } else if self.itype() != types.V_OBJECT { + return false, ErrUnsupportType } p := self.Get(key) @@ -548,7 +549,7 @@ func (self *Node) Set(key string, node Node) (bool, error) { *self = newObject(new(linkedPairs)) } s := (*linkedPairs)(self.p) - s.Add(Pair{key, node}) + s.Push(Pair{key, node}) self.l++ return false, nil @@ -565,20 +566,22 @@ func (self *Node) SetAny(key string, val interface{}) (bool, error) { return self.Set(key, NewAny(val)) } -// Unset RESET the node of given key under object parent, and reports if the key has existed. -// WARN: After conducting `UnsetXX()`, the node's length WON'T change +// Unset REMOVE (soft) the node of given key under object parent, and reports if the key has existed. func (self *Node) Unset(key string) (bool, error) { if err := self.should(types.V_OBJECT, "an object"); err != nil { return false, err } + // NOTICE: must get acurate length before deduct + if err := self.skipAllKey(); err != nil { + return false, err + } p, i := self.skipKey(key) if !p.Exists() { return false, nil } else if err := p.Check(); err != nil { return false, err } - - self.removePair(i) + self.removePairAt(i) return true, nil } @@ -614,22 +617,28 @@ func (self *Node) SetAnyByIndex(index int, val interface{}) (bool, error) { return self.SetByIndex(index, NewAny(val)) } -// UnsetByIndex remove the node of given index -// WARN: After conducting `UnsetXX()`, the node's length WON'T change +// UnsetByIndex REOMVE (softly) the node of given index. +// +// WARN: this will change address of elements, which is a dangerous action. +// Use Unset() for object or Pop() for array instead. func (self *Node) UnsetByIndex(index int) (bool, error) { - if err := self.Check(); err != nil { + if err := self.checkRaw(); err != nil { return false, err } var p *Node it := self.itype() + if it == types.V_ARRAY { - p = self.Index(index) - }else if it == types.V_OBJECT { - if err := self.checkRaw(); err != nil { + if err := self.skipAllIndex(); err != nil { return false, err } - pr := self.skipIndexPair(index) + p = self.nodeAt(index) + } else if it == types.V_OBJECT { + if err := self.skipAllKey(); err != nil { + return false, err + } + pr := self.pairAt(index) if pr == nil { return false, ErrNotExist } @@ -642,6 +651,12 @@ func (self *Node) UnsetByIndex(index int) (bool, error) { return false, ErrNotExist } + // last elem + if index == self.len() - 1 { + return true, self.Pop() + } + + // not last elem, self.len() change but linked-chunk not change if it == types.V_ARRAY { self.removeNode(index) }else if it == types.V_OBJECT { @@ -665,16 +680,101 @@ func (self *Node) Add(node Node) error { if err := self.should(types.V_ARRAY, "an array"); err != nil { return err } + s, err := self.unsafeArray() if err != nil { return err } - s.Add(node) + // Notice: array won't have unset node in tail + s.Push(node) self.l++ return nil } +// Pop remove the last child of the V_Array or V_Object node. +func (self *Node) Pop() error { + if err := self.checkRaw(); err != nil { + return err + } + + if it := self.itype(); it == types.V_ARRAY { + s, err := self.unsafeArray() + if err != nil { + return err + } + // remove tail unset nodes + for i := s.Len()-1; i >= 0; i-- { + if s.At(i).Exists() { + s.Pop() + self.l-- + break + } + s.Pop() + } + + } else if it == types.V_OBJECT { + s, err := self.unsafeMap() + if err != nil { + return err + } + // remove tail unset nodes + for i := s.Len()-1; i >= 0; i-- { + if p := s.At(i); p != nil && p.Value.Exists() { + s.Pop() + self.l-- + break + } + s.Pop() + } + + } else { + return ErrUnsupportType + } + + return nil +} + +// Move moves the child at src index to dst index, +// meanwhile slides sliblings from src+1 to dst. +// +// WARN: this will change address of elements, which is a dangerous action. +func (self *Node) Move(dst, src int) error { + if err := self.should(types.V_ARRAY, "an array"); err != nil { + return err + } + + s, err := self.unsafeArray() + if err != nil { + return err + } + + // check if any unset node exists + if l := s.Len(); self.len() != l { + di, si := dst, src + // find real pos of src and dst + for i := 0; i < l; i++ { + if s.At(i).Exists() { + di-- + si-- + } + if di == -1 { + dst = i + di-- + } + if si == -1 { + src = i + si-- + } + if di == -2 && si == -2 { + break + } + } + } + + s.MoveOne(src, dst) + return nil +} // SetAny wraps val with V_ANY node, and Add() the node. func (self *Node) AddAny(val interface{}) error { @@ -721,8 +821,6 @@ func (self *Node) Get(key string) *Node { // Index indexies node at given idx, // node type CAN be either V_OBJECT or V_ARRAY -// WARN: After conducting `UnsetXX()`, the node's length WON'T change, -// thus its children's indexing WON'T change too func (self *Node) Index(idx int) *Node { if err := self.checkRaw(); err != nil { return unwrapError(err) @@ -746,8 +844,6 @@ func (self *Node) Index(idx int) *Node { // IndexPair indexies pair at given idx, // node type MUST be either V_OBJECT -// WARN: After conducting `UnsetXX()`, the node's length WON'T change, -// thus its children's indexing WON'T change too func (self *Node) IndexPair(idx int) *Pair { if err := self.should(types.V_OBJECT, "an object"); err != nil { return nil @@ -755,19 +851,30 @@ func (self *Node) IndexPair(idx int) *Pair { return self.skipIndexPair(idx) } +func (self *Node) indexOrGet(idx int, key string) (*Node, int) { + if err := self.should(types.V_OBJECT, "an object"); err != nil { + return unwrapError(err), idx + } + + pr := self.skipIndexPair(idx) + if pr != nil && pr.Key == key { + return &pr.Value, idx + } + + return self.skipKey(key) +} + // IndexOrGet firstly use idx to index a value and check if its key matches // If not, then use the key to search value func (self *Node) IndexOrGet(idx int, key string) *Node { - if err := self.should(types.V_OBJECT, "an object"); err != nil { - return unwrapError(err) - } + node, _ := self.indexOrGet(idx, key) + return node +} - pr := self.skipIndexPair(idx) - if pr != nil && pr.Key == key { - return &pr.Value - } - n, _ := self.skipKey(key) - return n +// IndexOrGetWithIdx attempts to retrieve a node by index and key, returning the node and its correct index. +// If the key does not match at the given index, it searches by key and returns the node with its updated index. +func (self *Node) IndexOrGetWithIdx(idx int, key string) (*Node, int) { + return self.indexOrGet(idx, key) } /** Generic Value Converters **/ @@ -864,7 +971,7 @@ func (self *Node) SortKeys(recurse bool) error { } if self.itype() == types.V_OBJECT { return self.sortKeys(recurse) - } else { + } else if self.itype() == types.V_ARRAY { var err error err2 := self.ForEach(func(path Sequence, node *Node) bool { it := node.itype() @@ -880,10 +987,16 @@ func (self *Node) SortKeys(recurse bool) error { return err } return err2 + } else { + return nil } } func (self *Node) sortKeys(recurse bool) (err error) { + // check raw node first + if err := self.checkRaw(); err != nil { + return err + } ps, err := self.unsafeMap() if err != nil { return err @@ -1172,6 +1285,19 @@ func (self *Node) nodeAt(i int) *Node { p = &stack.v } else { p = (*linkedNodes)(self.p) + if l := p.Len(); l != self.len() { + // some nodes got unset, iterate to skip them + for j:=0; j=0) or string") + } + return Node{}, self.parser.syntaxError(err) + } + + t := switchRawType(self.parser.s[start]) + if t == _V_NONE { + return Node{}, self.parser.ExportError(err) + } + + // copy string to reducing memory usage + var raw string + if copystring { + raw = rt.Mem2Str([]byte(self.parser.s[start:self.parser.p])) + } else { + raw = self.parser.s[start:self.parser.p] + } + return newRawNode(raw, t), nil +} diff --git a/vendor/github.com/bytedance/sonic/ast/visitor.go b/vendor/github.com/bytedance/sonic/ast/visitor.go index 4019c31a2..d409509f5 100644 --- a/vendor/github.com/bytedance/sonic/ast/visitor.go +++ b/vendor/github.com/bytedance/sonic/ast/visitor.go @@ -25,7 +25,7 @@ import ( // Visitor handles the callbacks during preorder traversal of a JSON AST. // // According to the JSON RFC8259, a JSON AST can be defined by -// the following rules without seperator / whitespace tokens. +// the following rules without separator / whitespace tokens. // // JSON-AST = value // value = false / null / true / object / array / number / string diff --git a/vendor/github.com/bytedance/sonic/compat.go b/vendor/github.com/bytedance/sonic/compat.go index ec414c0cf..728bc1767 100644 --- a/vendor/github.com/bytedance/sonic/compat.go +++ b/vendor/github.com/bytedance/sonic/compat.go @@ -1,4 +1,4 @@ -// +build !amd64 !go1.16 go1.22 +// +build !amd64 !go1.16 go1.23 /* * Copyright 2021 ByteDance Inc. diff --git a/vendor/github.com/bytedance/sonic/decoder/decoder_amd64.go b/vendor/github.com/bytedance/sonic/decoder/decoder_amd64.go index 7c2845514..346ebbce5 100644 --- a/vendor/github.com/bytedance/sonic/decoder/decoder_amd64.go +++ b/vendor/github.com/bytedance/sonic/decoder/decoder_amd64.go @@ -1,4 +1,4 @@ -// +build amd64,go1.16,!go1.22 +// +build amd64,go1.16,!go1.23 /* * Copyright 2023 ByteDance Inc. diff --git a/vendor/github.com/bytedance/sonic/decoder/decoder_compat.go b/vendor/github.com/bytedance/sonic/decoder/decoder_compat.go index 84bae4387..7883862c3 100644 --- a/vendor/github.com/bytedance/sonic/decoder/decoder_compat.go +++ b/vendor/github.com/bytedance/sonic/decoder/decoder_compat.go @@ -1,4 +1,4 @@ -// +build !amd64 !go1.16 go1.22 +// +build !amd64 !go1.16 go1.23 /* * Copyright 2023 ByteDance Inc. @@ -30,7 +30,7 @@ import ( ) func init() { - println("WARNING: sonic only supports Go1.16~1.20 && CPU amd64, but your environment is not suitable") + println("WARNING: sonic only supports Go1.16~1.22 && CPU amd64, but your environment is not suitable") } const ( diff --git a/vendor/github.com/bytedance/sonic/encoder/encoder_amd64.go b/vendor/github.com/bytedance/sonic/encoder/encoder_amd64.go index e93b09a25..b4f1b7b52 100644 --- a/vendor/github.com/bytedance/sonic/encoder/encoder_amd64.go +++ b/vendor/github.com/bytedance/sonic/encoder/encoder_amd64.go @@ -1,4 +1,4 @@ -// +build amd64,go1.16,!go1.22 +// +build amd64,go1.16,!go1.23 /* * Copyright 2023 ByteDance Inc. @@ -63,6 +63,9 @@ const ( // after encoding the JSONMarshaler to JSON. NoValidateJSONMarshaler Options = encoder.NoValidateJSONMarshaler + // NoEncoderNewline indicates that the encoder should not add a newline after every message + NoEncoderNewline Options = encoder.NoEncoderNewline + // CompatibleWithStd is used to be compatible with std encoder. CompatibleWithStd Options = encoder.CompatibleWithStd ) diff --git a/vendor/github.com/bytedance/sonic/encoder/encoder_compat.go b/vendor/github.com/bytedance/sonic/encoder/encoder_compat.go index 2e02b59cd..320dd9b5c 100644 --- a/vendor/github.com/bytedance/sonic/encoder/encoder_compat.go +++ b/vendor/github.com/bytedance/sonic/encoder/encoder_compat.go @@ -1,4 +1,4 @@ -// +build !amd64 !go1.16 go1.22 +// +build !amd64 !go1.16 go1.23 /* * Copyright 2023 ByteDance Inc. @@ -28,7 +28,7 @@ import ( ) func init() { - println("WARNING: sonic only supports Go1.16~1.20 && CPU amd64, but your environment is not suitable") + println("WARNING: sonic only supports Go1.16~1.22 && CPU amd64, but your environment is not suitable") } // Options is a set of encoding options. @@ -42,6 +42,7 @@ const ( bitNoNullSliceOrMap bitValidateString bitNoValidateJSONMarshaler + bitNoEncoderNewline // used for recursive compile bitPointerValue = 63 @@ -77,6 +78,9 @@ const ( // NoValidateJSONMarshaler indicates that the encoder should not validate the output string // after encoding the JSONMarshaler to JSON. NoValidateJSONMarshaler Options = 1 << bitNoValidateJSONMarshaler + + // NoEncoderNewline indicates that the encoder should not add a newline after every message + NoEncoderNewline Options = 1 << bitNoEncoderNewline // CompatibleWithStd is used to be compatible with std encoder. CompatibleWithStd Options = SortMapKeys | EscapeHTML | CompactMarshaler @@ -130,6 +134,15 @@ func (self *Encoder) SetNoValidateJSONMarshaler(f bool) { } } +// SetNoEncoderNewline specifies if option NoEncoderNewline opens +func (self *Encoder) SetNoEncoderNewline(f bool) { + if f { + self.Opts |= NoEncoderNewline + } else { + self.Opts &= ^NoEncoderNewline + } +} + // SetCompactMarshaler specifies if option CompactMarshaler opens func (self *Encoder) SetCompactMarshaler(f bool) { if f { diff --git a/vendor/github.com/bytedance/sonic/internal/decoder/asm_stubs_amd64_go121.go b/vendor/github.com/bytedance/sonic/internal/decoder/asm_stubs_amd64_go121.go index 5db5b5cd0..6adeac0cf 100644 --- a/vendor/github.com/bytedance/sonic/internal/decoder/asm_stubs_amd64_go121.go +++ b/vendor/github.com/bytedance/sonic/internal/decoder/asm_stubs_amd64_go121.go @@ -1,4 +1,4 @@ -// +build go1.21,!go1.22 +// +build go1.21,!go1.23 // Copyright 2023 CloudWeGo Authors // diff --git a/vendor/github.com/bytedance/sonic/internal/decoder/assembler_regabi_amd64.go b/vendor/github.com/bytedance/sonic/internal/decoder/assembler_regabi_amd64.go index 17b3b7fd3..0defb75a5 100644 --- a/vendor/github.com/bytedance/sonic/internal/decoder/assembler_regabi_amd64.go +++ b/vendor/github.com/bytedance/sonic/internal/decoder/assembler_regabi_amd64.go @@ -1,5 +1,4 @@ -//go:build go1.17 && !go1.22 -// +build go1.17,!go1.22 +// +build go1.17,!go1.23 /* * Copyright 2021 ByteDance Inc. diff --git a/vendor/github.com/bytedance/sonic/internal/decoder/generic_regabi_amd64.go b/vendor/github.com/bytedance/sonic/internal/decoder/generic_regabi_amd64.go index 0c68c7fb6..c7514cb41 100644 --- a/vendor/github.com/bytedance/sonic/internal/decoder/generic_regabi_amd64.go +++ b/vendor/github.com/bytedance/sonic/internal/decoder/generic_regabi_amd64.go @@ -1,4 +1,4 @@ -// +build go1.17,!go1.22 +// +build go1.17,!go1.23 /* * Copyright 2021 ByteDance Inc. diff --git a/vendor/github.com/bytedance/sonic/internal/decoder/generic_regabi_amd64_test.s b/vendor/github.com/bytedance/sonic/internal/decoder/generic_regabi_amd64_test.s index 1c46928de..b4b0de183 100644 --- a/vendor/github.com/bytedance/sonic/internal/decoder/generic_regabi_amd64_test.s +++ b/vendor/github.com/bytedance/sonic/internal/decoder/generic_regabi_amd64_test.s @@ -1,4 +1,4 @@ -// +build go1.17,!go1.22 +// +build go1.17,!go1.23 // // Copyright 2021 ByteDance Inc. diff --git a/vendor/github.com/bytedance/sonic/internal/decoder/stream.go b/vendor/github.com/bytedance/sonic/internal/decoder/stream.go index a3716435a..7eb8a6951 100644 --- a/vendor/github.com/bytedance/sonic/internal/decoder/stream.go +++ b/vendor/github.com/bytedance/sonic/internal/decoder/stream.go @@ -23,11 +23,12 @@ import ( `github.com/bytedance/sonic/internal/native` `github.com/bytedance/sonic/internal/native/types` + `github.com/bytedance/sonic/internal/rt` `github.com/bytedance/sonic/option` ) var ( - minLeftBufferShift uint = 1 + minLeftBufferShift uint = 1 ) // StreamDecoder is the decoder context object for streaming input. @@ -58,95 +59,71 @@ func NewStreamDecoder(r io.Reader) *StreamDecoder { // Either io error from underlying io.Reader (except io.EOF) // or syntax error from data will be recorded and stop subsequently decoding. func (self *StreamDecoder) Decode(val interface{}) (err error) { - if self.err != nil { - return self.err - } - - var buf = self.buf[self.scanp:] - var p = 0 - var recycle bool - if cap(buf) == 0 { - buf = bufPool.Get().([]byte) - recycle = true - } - - var first = true - var repeat = true - -read_more: - for { - l := len(buf) - realloc(&buf) - n, err := self.r.Read(buf[l:cap(buf)]) - buf = buf[:l+n] - if err != nil { - repeat = false - if err == io.EOF { - if len(buf) == 0 { - return err - } - break - } - self.err = err - return err - } - if n > 0 || first { - break - } - } - first = false - - l := len(buf) - if l > 0 { - self.Decoder.Reset(string(buf)) - - var x int - if ret := native.SkipOneFast(&self.s, &x); ret < 0 { - if repeat { - goto read_more + // read more data into buf + if self.More() { + // println(string(self.buf)) + var s = self.scanp + try_skip: + var e = len(self.buf) + // println("s:", s, "e:", e, "scanned:",self.scanned, "scanp:",self.scanp, self.buf) + var src = rt.Mem2Str(self.buf[s:e]) + // if len(src) > 5 { + // println(src[:5], src[len(src)-5:]) + // } else { + // println(src) + // } + // try skip + var x = 0; + if y := native.SkipOneFast(&src, &x); y < 0 { + if self.readMore() { + // println("more") + goto try_skip } else { - err = SyntaxError{x, self.s, types.ParsingError(-ret), ""} - self.err = err + // println("no more") + err = SyntaxError{e, self.s, types.ParsingError(-s), ""} + self.setErr(err) return } + } else { + s = y + s + e = x + s } - + + // println("decode: ", s, e) + // must copy string here for safety + self.Decoder.Reset(string(self.buf[s:e])) err = self.Decoder.Decode(val) if err != nil { - self.err = err + self.setErr(err) + return } - p = self.Decoder.Pos() - self.scanned += int64(p) - self.scanp = 0 - } - - if l > p { - // remain undecoded bytes, so copy them into self.buf - self.buf = append(self.buf[:0], buf[p:]...) - } else { - self.buf = nil - recycle = true - } + self.scanp = e + _, empty := self.scan() + if empty { + // println("recycle") + // no remain valid bytes, thus we just recycle buffer + mem := self.buf + self.buf = nil + bufPool.Put(mem[:0]) + } else { + // println("keep") + // remain undecoded bytes, move them onto head + n := copy(self.buf, self.buf[self.scanp:]) + self.buf = self.buf[:n] + } - if recycle { - buf = buf[:0] - bufPool.Put(buf) - } - return err -} + self.scanned += int64(self.scanp) + self.scanp = 0 + } -func (self StreamDecoder) repeatable(err error) bool { - if ee, ok := err.(SyntaxError); ok && - (ee.Code == types.ERR_EOF || (ee.Code == types.ERR_INVALID_CHAR && self.i >= len(self.s)-1)) { - return true - } - return false + return self.err } // InputOffset returns the input stream byte offset of the current decoder position. // The offset gives the location of the end of the most recently returned token and the beginning of the next token. func (self *StreamDecoder) InputOffset() int64 { + // println("input offset",self.scanned, self.scanp) return self.scanned + int64(self.scanp) } @@ -166,28 +143,72 @@ func (self *StreamDecoder) More() bool { return err == nil && c != ']' && c != '}' } +// More reports whether there is another element in the +// current array or object being parsed. +func (self *StreamDecoder) readMore() bool { + if self.err != nil { + return false + } + + var err error + var n int + for { + // Grow buffer if not large enough. + l := len(self.buf) + realloc(&self.buf) + + n, err = self.r.Read(self.buf[l:cap(self.buf)]) + self.buf = self.buf[: l+n] + + self.scanp = l + _, empty := self.scan() + if !empty { + return true + } + + // buffer has been scanned, now report any error + if err != nil { + self.setErr(err) + return false + } + } +} + +func (self *StreamDecoder) setErr(err error) { + self.err = err + mem := self.buf[:0] + self.buf = nil + bufPool.Put(mem) +} + func (self *StreamDecoder) peek() (byte, error) { var err error for { - for i := self.scanp; i < len(self.buf); i++ { - c := self.buf[i] - if isSpace(c) { - continue - } - self.scanp = i - return c, nil + c, empty := self.scan() + if !empty { + return byte(c), nil } // buffer has been scanned, now report any error if err != nil { - if err != io.EOF { - self.err = err - } + self.setErr(err) return 0, err } err = self.refill() } } +func (self *StreamDecoder) scan() (byte, bool) { + for i := self.scanp; i < len(self.buf); i++ { + c := self.buf[i] + if isSpace(c) { + continue + } + self.scanp = i + return c, false + } + return 0, true +} + func isSpace(c byte) bool { return types.SPACE_MASK & (1 << c) != 0 } @@ -212,17 +233,25 @@ func (self *StreamDecoder) refill() error { return err } -func realloc(buf *[]byte) { +func realloc(buf *[]byte) bool { l := uint(len(*buf)) c := uint(cap(*buf)) + if c == 0 { + // println("use pool!") + *buf = bufPool.Get().([]byte) + return true + } if c - l <= c >> minLeftBufferShift { + // println("realloc!") e := l+(l>>minLeftBufferShift) - if e < option.DefaultDecoderBufferSize { - e = option.DefaultDecoderBufferSize + if e <= c { + e = c*2 } tmp := make([]byte, l, e) copy(tmp, *buf) *buf = tmp + return true } + return false } diff --git a/vendor/github.com/bytedance/sonic/internal/encoder/asm_stubs_amd64_go121.go b/vendor/github.com/bytedance/sonic/internal/encoder/asm_stubs_amd64_go121.go index 2f9445ac4..9f7ff65e6 100644 --- a/vendor/github.com/bytedance/sonic/internal/encoder/asm_stubs_amd64_go121.go +++ b/vendor/github.com/bytedance/sonic/internal/encoder/asm_stubs_amd64_go121.go @@ -1,4 +1,4 @@ -// +build go1.21,!go1.22 +// +build go1.21,!go1.23 // Copyright 2023 CloudWeGo Authors // diff --git a/vendor/github.com/bytedance/sonic/internal/encoder/assembler_regabi_amd64.go b/vendor/github.com/bytedance/sonic/internal/encoder/assembler_regabi_amd64.go index d67798d61..4584c6d29 100644 --- a/vendor/github.com/bytedance/sonic/internal/encoder/assembler_regabi_amd64.go +++ b/vendor/github.com/bytedance/sonic/internal/encoder/assembler_regabi_amd64.go @@ -1,5 +1,4 @@ -//go:build go1.17 && !go1.22 -// +build go1.17,!go1.22 +// +build go1.17,!go1.23 /* * Copyright 2021 ByteDance Inc. diff --git a/vendor/github.com/bytedance/sonic/internal/encoder/compiler.go b/vendor/github.com/bytedance/sonic/internal/encoder/compiler.go index a949c90f7..ca0be8f40 100644 --- a/vendor/github.com/bytedance/sonic/internal/encoder/compiler.go +++ b/vendor/github.com/bytedance/sonic/internal/encoder/compiler.go @@ -831,7 +831,7 @@ func (self *_Compiler) compileStructFieldZero(p *_Program, vt reflect.Type) { case reflect.Float32 : p.add(_OP_is_zero_4) case reflect.Float64 : p.add(_OP_is_zero_8) case reflect.String : p.add(_OP_is_nil_p1) - case reflect.Interface : p.add(_OP_is_nil_p1) + case reflect.Interface : p.add(_OP_is_nil) case reflect.Map : p.add(_OP_is_zero_map) case reflect.Ptr : p.add(_OP_is_nil) case reflect.Slice : p.add(_OP_is_nil_p1) diff --git a/vendor/github.com/bytedance/sonic/internal/encoder/debug_go117.go b/vendor/github.com/bytedance/sonic/internal/encoder/debug_go117.go index 56a6cbf5e..37e6f7d4f 100644 --- a/vendor/github.com/bytedance/sonic/internal/encoder/debug_go117.go +++ b/vendor/github.com/bytedance/sonic/internal/encoder/debug_go117.go @@ -1,4 +1,4 @@ -// +build go1.17,!go1.22 +// +build go1.17,!go1.23 /* * Copyright 2021 ByteDance Inc. diff --git a/vendor/github.com/bytedance/sonic/internal/encoder/encoder.go b/vendor/github.com/bytedance/sonic/internal/encoder/encoder.go index bd8bae357..0a46455eb 100644 --- a/vendor/github.com/bytedance/sonic/internal/encoder/encoder.go +++ b/vendor/github.com/bytedance/sonic/internal/encoder/encoder.go @@ -41,6 +41,7 @@ const ( bitNoNullSliceOrMap bitValidateString bitNoValidateJSONMarshaler + bitNoEncoderNewline // used for recursive compile bitPointerValue = 63 @@ -76,6 +77,9 @@ const ( // NoValidateJSONMarshaler indicates that the encoder should not validate the output string // after encoding the JSONMarshaler to JSON. NoValidateJSONMarshaler Options = 1 << bitNoValidateJSONMarshaler + + // NoEncoderNewline indicates that the encoder should not add a newline after every message + NoEncoderNewline Options = 1 << bitNoEncoderNewline // CompatibleWithStd is used to be compatible with std encoder. CompatibleWithStd Options = SortMapKeys | EscapeHTML | CompactMarshaler @@ -129,6 +133,16 @@ func (self *Encoder) SetNoValidateJSONMarshaler(f bool) { } } +// SetNoEncoderNewline specifies if option NoEncoderNewline opens +func (self *Encoder) SetNoEncoderNewline(f bool) { + if f { + self.Opts |= NoEncoderNewline + } else { + self.Opts &= ^NoEncoderNewline + } +} + + // SetCompactMarshaler specifies if option CompactMarshaler opens func (self *Encoder) SetCompactMarshaler(f bool) { if f { diff --git a/vendor/github.com/bytedance/sonic/internal/encoder/primitives.go b/vendor/github.com/bytedance/sonic/internal/encoder/primitives.go index 0e47987c7..0f3c40881 100644 --- a/vendor/github.com/bytedance/sonic/internal/encoder/primitives.go +++ b/vendor/github.com/bytedance/sonic/internal/encoder/primitives.go @@ -154,17 +154,17 @@ var ( ) var ( - _F_assertI2I = jit.Func(assertI2I) + _F_assertI2I = jit.Func(rt.AssertI2I2) ) func asText(v unsafe.Pointer) (string, error) { - text := assertI2I(_T_encoding_TextMarshaler, *(*rt.GoIface)(v)) + text := rt.AssertI2I2(_T_encoding_TextMarshaler, *(*rt.GoIface)(v)) r, e := (*(*encoding.TextMarshaler)(unsafe.Pointer(&text))).MarshalText() return rt.Mem2Str(r), e } func asJson(v unsafe.Pointer) (string, error) { - text := assertI2I(_T_json_Marshaler, *(*rt.GoIface)(v)) + text := rt.AssertI2I2(_T_json_Marshaler, *(*rt.GoIface)(v)) r, e := (*(*json.Marshaler)(unsafe.Pointer(&text))).MarshalJSON() return rt.Mem2Str(r), e } diff --git a/vendor/github.com/bytedance/sonic/internal/encoder/stream.go b/vendor/github.com/bytedance/sonic/internal/encoder/stream.go index b6f3ce5fb..d498f68fc 100644 --- a/vendor/github.com/bytedance/sonic/internal/encoder/stream.go +++ b/vendor/github.com/bytedance/sonic/internal/encoder/stream.go @@ -36,7 +36,8 @@ func NewStreamEncoder(w io.Writer) *StreamEncoder { // Encode encodes interface{} as JSON to io.Writer func (enc *StreamEncoder) Encode(val interface{}) (err error) { - out := newBytes() + buf := newBytes() + out := buf /* encode into the buffer */ err = EncodeInto(&out, val, enc.Opts) @@ -54,7 +55,9 @@ func (enc *StreamEncoder) Encode(val interface{}) (err error) { } // according to standard library, terminate each value with a newline... - buf.WriteByte('\n') + if enc.Opts & NoEncoderNewline == 0 { + buf.WriteByte('\n') + } /* copy into io.Writer */ _, err = io.Copy(enc.w, buf) @@ -75,10 +78,12 @@ func (enc *StreamEncoder) Encode(val interface{}) (err error) { } // according to standard library, terminate each value with a newline... - enc.w.Write([]byte{'\n'}) + if enc.Opts & NoEncoderNewline == 0 { + enc.w.Write([]byte{'\n'}) + } } free_bytes: - freeBytes(out) + freeBytes(buf) return err } diff --git a/vendor/github.com/bytedance/sonic/internal/encoder/stubs_go116.go b/vendor/github.com/bytedance/sonic/internal/encoder/stubs_go116.go index 5577c58d7..a21b6b4a6 100644 --- a/vendor/github.com/bytedance/sonic/internal/encoder/stubs_go116.go +++ b/vendor/github.com/bytedance/sonic/internal/encoder/stubs_go116.go @@ -38,10 +38,6 @@ func memmove(to unsafe.Pointer, from unsafe.Pointer, n uintptr) //goland:noinspection GoUnusedParameter func growslice(et *rt.GoType, old rt.GoSlice, cap int) rt.GoSlice -//go:linkname assertI2I runtime.assertI2I -//goland:noinspection GoUnusedParameter -func assertI2I(inter *rt.GoType, i rt.GoIface) rt.GoIface - //go:linkname mapiternext runtime.mapiternext //goland:noinspection GoUnusedParameter func mapiternext(it *rt.GoMapIterator) diff --git a/vendor/github.com/bytedance/sonic/internal/encoder/stubs_go117.go b/vendor/github.com/bytedance/sonic/internal/encoder/stubs_go117.go index 6c8c6ec75..7d934be33 100644 --- a/vendor/github.com/bytedance/sonic/internal/encoder/stubs_go117.go +++ b/vendor/github.com/bytedance/sonic/internal/encoder/stubs_go117.go @@ -38,10 +38,6 @@ func memmove(to unsafe.Pointer, from unsafe.Pointer, n uintptr) //goland:noinspection GoUnusedParameter func growslice(et *rt.GoType, old rt.GoSlice, cap int) rt.GoSlice -//go:linkname assertI2I runtime.assertI2I2 -//goland:noinspection GoUnusedParameter -func assertI2I(inter *rt.GoType, i rt.GoIface) rt.GoIface - //go:linkname mapiternext runtime.mapiternext //goland:noinspection GoUnusedParameter func mapiternext(it *rt.GoMapIterator) diff --git a/vendor/github.com/bytedance/sonic/internal/encoder/stubs_go120.go b/vendor/github.com/bytedance/sonic/internal/encoder/stubs_go120.go index 94a2c0f56..ce3c88e9a 100644 --- a/vendor/github.com/bytedance/sonic/internal/encoder/stubs_go120.go +++ b/vendor/github.com/bytedance/sonic/internal/encoder/stubs_go120.go @@ -38,10 +38,6 @@ func memmove(to unsafe.Pointer, from unsafe.Pointer, n uintptr) //goland:noinspection GoUnusedParameter func growslice(et *rt.GoType, old rt.GoSlice, cap int) rt.GoSlice -//go:linkname assertI2I runtime.assertI2I2 -//goland:noinspection GoUnusedParameter -func assertI2I(inter *rt.GoType, i rt.GoIface) rt.GoIface - //go:linkname mapiternext runtime.mapiternext //goland:noinspection GoUnusedParameter func mapiternext(it *rt.GoMapIterator) diff --git a/vendor/github.com/bytedance/sonic/internal/encoder/stubs_go121.go b/vendor/github.com/bytedance/sonic/internal/encoder/stubs_go121.go index e194fbbf3..700ddf8b5 100644 --- a/vendor/github.com/bytedance/sonic/internal/encoder/stubs_go121.go +++ b/vendor/github.com/bytedance/sonic/internal/encoder/stubs_go121.go @@ -38,10 +38,6 @@ func memmove(to unsafe.Pointer, from unsafe.Pointer, n uintptr) //goland:noinspection GoUnusedParameter func growslice(et *rt.GoType, old rt.GoSlice, cap int) rt.GoSlice -//go:linkname assertI2I runtime.assertI2I2 -//goland:noinspection GoUnusedParameter -func assertI2I(inter *rt.GoType, i rt.GoIface) rt.GoIface - //go:linkname mapiternext runtime.mapiternext //goland:noinspection GoUnusedParameter func mapiternext(it *rt.GoMapIterator) diff --git a/vendor/github.com/bytedance/sonic/internal/jit/runtime.go b/vendor/github.com/bytedance/sonic/internal/jit/runtime.go index ec69d067a..e4bc829da 100644 --- a/vendor/github.com/bytedance/sonic/internal/jit/runtime.go +++ b/vendor/github.com/bytedance/sonic/internal/jit/runtime.go @@ -24,11 +24,6 @@ import ( `github.com/twitchyliquid64/golang-asm/obj` ) -//go:noescape -//go:linkname getitab runtime.getitab -//goland:noinspection ALL -func getitab(inter *rt.GoType, typ *rt.GoType, canfail bool) *rt.GoItab - func Func(f interface{}) obj.Addr { if p := rt.UnpackEface(f); p.Type.Kind() != reflect.Func { panic("f is not a function") @@ -42,7 +37,7 @@ func Type(t reflect.Type) obj.Addr { } func Itab(i *rt.GoType, t reflect.Type) obj.Addr { - return Imm(int64(uintptr(unsafe.Pointer(getitab(i, rt.UnpackType(t), false))))) + return Imm(int64(uintptr(unsafe.Pointer(rt.Getitab(rt.IfaceType(i), rt.UnpackType(t), false))))) } func Gitab(i *rt.GoItab) obj.Addr { diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx/native_amd64.go b/vendor/github.com/bytedance/sonic/internal/native/avx/native_amd64.go index 627ac177c..3b6573fbe 100644 --- a/vendor/github.com/bytedance/sonic/internal/native/avx/native_amd64.go +++ b/vendor/github.com/bytedance/sonic/internal/native/avx/native_amd64.go @@ -1,3 +1,6 @@ +// +build amd64 + + // Code generated by Makefile, DO NOT EDIT. // Code generated by Makefile, DO NOT EDIT. @@ -71,8 +74,6 @@ var ( __validate_utf8 func(s unsafe.Pointer, p unsafe.Pointer, m unsafe.Pointer) (ret int) __validate_utf8_fast func(s unsafe.Pointer) (ret int) - - __fsm_exec func(m unsafe.Pointer, s unsafe.Pointer, p unsafe.Pointer, flags uint64) (ret int) ) //go:nosplit @@ -185,7 +186,3 @@ func validate_utf8_fast(s *string) (ret int) { return __validate_utf8_fast(rt.NoEscape(unsafe.Pointer(s))) } -//go:nosplit -func fsm_exec(m *types.StateMachine, s *string, p *int, flags uint64) (ret int) { - return __fsm_exec(rt.NoEscape(unsafe.Pointer(m)), rt.NoEscape(unsafe.Pointer(s)), rt.NoEscape(unsafe.Pointer(p)), flags) -} diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx/native_subr_amd64.go b/vendor/github.com/bytedance/sonic/internal/native/avx/native_subr_amd64.go index 6610a2e91..57f0e2f1c 100644 --- a/vendor/github.com/bytedance/sonic/internal/native/avx/native_subr_amd64.go +++ b/vendor/github.com/bytedance/sonic/internal/native/avx/native_subr_amd64.go @@ -8,117 +8,111 @@ import ( ) const ( - _entry__f32toa = 31024 - _entry__f64toa = 176 - _entry__format_significand = 35808 - _entry__format_integer = 3424 - _entry__fsm_exec = 18816 - _entry__advance_string = 15056 - _entry__advance_string_default = 37344 - _entry__do_skip_number = 21376 - _entry__get_by_path = 26416 - _entry__skip_one_fast = 22880 - _entry__unescape = 38256 - _entry__unhex16_is = 9632 - _entry__html_escape = 9824 - _entry__i64toa = 3856 - _entry__u64toa = 4128 + _entry__f32toa = 31168 + _entry__f64toa = 192 + _entry__format_significand = 35344 + _entry__format_integer = 3040 + _entry__get_by_path = 25696 + _entry__fsm_exec = 17920 + _entry__advance_string = 14320 + _entry__advance_string_default = 36736 + _entry__do_skip_number = 20528 + _entry__skip_one_fast = 22176 + _entry__html_escape = 8912 + _entry__i64toa = 3472 + _entry__u64toa = 3584 _entry__lspace = 16 - _entry__quote = 5552 - _entry__skip_array = 18768 - _entry__skip_number = 22464 - _entry__skip_object = 21008 - _entry__skip_one = 22640 - _entry__unquote = 7296 - _entry__validate_one = 22704 - _entry__validate_utf8 = 29728 - _entry__validate_utf8_fast = 30416 - _entry__value = 13104 - _entry__vnumber = 16368 - _entry__atof_eisel_lemire64 = 11104 - _entry__atof_native = 12496 - _entry__decimal_to_f64 = 11504 - _entry__left_shift = 36288 - _entry__right_shift = 36832 - _entry__vsigned = 18016 - _entry__vstring = 14880 - _entry__vunsigned = 18384 + _entry__quote = 4864 + _entry__skip_array = 17872 + _entry__skip_number = 21792 + _entry__skip_object = 20160 + _entry__skip_one = 21952 + _entry__unquote = 6576 + _entry__validate_one = 22000 + _entry__validate_utf8 = 29904 + _entry__validate_utf8_fast = 30576 + _entry__value = 12320 + _entry__vnumber = 15648 + _entry__atof_eisel_lemire64 = 10160 + _entry__atof_native = 11712 + _entry__decimal_to_f64 = 10528 + _entry__right_shift = 36304 + _entry__left_shift = 35808 + _entry__vsigned = 17200 + _entry__vstring = 14144 + _entry__vunsigned = 17520 ) const ( - _stack__f32toa = 64 + _stack__f32toa = 48 _stack__f64toa = 80 _stack__format_significand = 24 _stack__format_integer = 16 - _stack__fsm_exec = 160 - _stack__advance_string = 72 - _stack__advance_string_default = 56 - _stack__do_skip_number = 32 _stack__get_by_path = 280 + _stack__fsm_exec = 168 + _stack__advance_string = 64 + _stack__advance_string_default = 64 + _stack__do_skip_number = 48 _stack__skip_one_fast = 176 - _stack__unescape = 64 - _stack__unhex16_is = 8 - _stack__html_escape = 64 + _stack__html_escape = 72 _stack__i64toa = 16 _stack__u64toa = 8 _stack__lspace = 8 - _stack__quote = 80 - _stack__skip_array = 168 - _stack__skip_number = 88 - _stack__skip_object = 168 - _stack__skip_one = 168 - _stack__unquote = 112 - _stack__validate_one = 168 + _stack__quote = 56 + _stack__skip_array = 176 + _stack__skip_number = 104 + _stack__skip_object = 176 + _stack__skip_one = 176 + _stack__unquote = 88 + _stack__validate_one = 176 _stack__validate_utf8 = 48 _stack__validate_utf8_fast = 24 - _stack__value = 352 - _stack__vnumber = 264 - _stack__atof_eisel_lemire64 = 40 - _stack__atof_native = 144 - _stack__decimal_to_f64 = 88 - _stack__left_shift = 32 - _stack__right_shift = 16 + _stack__value = 328 + _stack__vnumber = 240 + _stack__atof_eisel_lemire64 = 32 + _stack__atof_native = 136 + _stack__decimal_to_f64 = 80 + _stack__right_shift = 8 + _stack__left_shift = 24 _stack__vsigned = 16 - _stack__vstring = 128 - _stack__vunsigned = 24 + _stack__vstring = 120 + _stack__vunsigned = 8 ) const ( - _size__f32toa = 3792 - _size__f64toa = 3248 - _size__format_significand = 480 + _size__f32toa = 3392 + _size__f64toa = 2848 + _size__format_significand = 464 _size__format_integer = 432 - _size__fsm_exec = 1656 - _size__advance_string = 1264 - _size__advance_string_default = 912 - _size__do_skip_number = 876 - _size__get_by_path = 3312 + _size__get_by_path = 4208 + _size__fsm_exec = 1692 + _size__advance_string = 1280 + _size__advance_string_default = 944 + _size__do_skip_number = 924 _size__skip_one_fast = 3016 - _size__unescape = 704 - _size__unhex16_is = 128 - _size__html_escape = 1280 - _size__i64toa = 272 - _size__u64toa = 1376 - _size__lspace = 112 - _size__quote = 1728 + _size__html_escape = 1248 + _size__i64toa = 48 + _size__u64toa = 1232 + _size__lspace = 144 + _size__quote = 1696 _size__skip_array = 48 _size__skip_number = 160 _size__skip_object = 48 _size__skip_one = 48 - _size__unquote = 2336 + _size__unquote = 2272 _size__validate_one = 48 - _size__validate_utf8 = 688 + _size__validate_utf8 = 672 _size__validate_utf8_fast = 560 - _size__value = 1268 - _size__vnumber = 1648 - _size__atof_eisel_lemire64 = 400 + _size__value = 1308 + _size__vnumber = 1552 + _size__atof_eisel_lemire64 = 368 _size__atof_native = 608 - _size__decimal_to_f64 = 992 - _size__left_shift = 544 - _size__right_shift = 480 - _size__vsigned = 368 + _size__decimal_to_f64 = 1184 + _size__right_shift = 400 + _size__left_shift = 496 + _size__vsigned = 320 _size__vstring = 128 - _size__vunsigned = 368 + _size__vunsigned = 336 ) var ( @@ -129,16 +123,14 @@ var ( {8, 24}, {10, 32}, {12, 40}, - {13, 48}, - {3734, 64}, - {3738, 48}, - {3739, 40}, - {3741, 32}, - {3743, 24}, - {3745, 16}, - {3747, 8}, - {3751, 0}, - {3781, 64}, + {3350, 48}, + {3351, 40}, + {3353, 32}, + {3355, 24}, + {3357, 16}, + {3359, 8}, + {3363, 0}, + {3385, 48}, } _pcsp__f64toa = [][2]uint32{ {1, 0}, @@ -148,24 +140,24 @@ var ( {10, 32}, {12, 40}, {13, 48}, - {3124, 56}, - {3128, 48}, - {3129, 40}, - {3131, 32}, - {3133, 24}, - {3135, 16}, - {3137, 8}, - {3141, 0}, - {3234, 56}, + {2788, 56}, + {2792, 48}, + {2793, 40}, + {2795, 32}, + {2797, 24}, + {2799, 16}, + {2801, 8}, + {2805, 0}, + {2843, 56}, } _pcsp__format_significand = [][2]uint32{ {1, 0}, {4, 8}, {6, 16}, - {468, 24}, - {469, 16}, - {471, 8}, - {473, 0}, + {452, 24}, + {453, 16}, + {455, 8}, + {457, 0}, } _pcsp__format_integer = [][2]uint32{ {1, 0}, @@ -177,6 +169,24 @@ var ( {424, 8}, {426, 0}, } + _pcsp__get_by_path = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {4012, 104}, + {4016, 48}, + {4017, 40}, + {4019, 32}, + {4021, 24}, + {4023, 16}, + {4025, 8}, + {4026, 0}, + {4194, 104}, + } _pcsp__fsm_exec = [][2]uint32{ {1, 0}, {4, 8}, @@ -185,15 +195,15 @@ var ( {10, 32}, {12, 40}, {13, 48}, - {1317, 88}, - {1321, 48}, - {1322, 40}, - {1324, 32}, - {1326, 24}, - {1328, 16}, - {1330, 8}, - {1331, 0}, - {1656, 88}, + {1342, 104}, + {1346, 48}, + {1347, 40}, + {1349, 32}, + {1351, 24}, + {1353, 16}, + {1355, 8}, + {1356, 0}, + {1692, 104}, } _pcsp__advance_string = [][2]uint32{ {14, 0}, @@ -203,15 +213,15 @@ var ( {24, 32}, {26, 40}, {27, 48}, - {529, 72}, - {533, 48}, - {534, 40}, - {536, 32}, - {538, 24}, - {540, 16}, - {542, 8}, - {543, 0}, - {1253, 72}, + {557, 56}, + {561, 48}, + {562, 40}, + {564, 32}, + {566, 24}, + {568, 16}, + {570, 8}, + {571, 0}, + {1268, 56}, } _pcsp__advance_string_default = [][2]uint32{ {1, 0}, @@ -221,45 +231,31 @@ var ( {10, 32}, {12, 40}, {13, 48}, - {381, 56}, - {385, 48}, - {386, 40}, - {388, 32}, - {390, 24}, - {392, 16}, - {394, 8}, - {395, 0}, - {911, 56}, + {552, 64}, + {556, 48}, + {557, 40}, + {559, 32}, + {561, 24}, + {563, 16}, + {565, 8}, + {566, 0}, + {931, 64}, } _pcsp__do_skip_number = [][2]uint32{ - {1, 0}, - {4, 8}, - {6, 16}, - {8, 24}, - {739, 32}, - {740, 24}, - {742, 16}, - {744, 8}, - {745, 0}, - {876, 32}, - } - _pcsp__get_by_path = [][2]uint32{ {1, 0}, {4, 8}, {6, 16}, {8, 24}, {10, 32}, {12, 40}, - {13, 48}, - {3262, 104}, - {3266, 48}, - {3267, 40}, - {3269, 32}, - {3271, 24}, - {3273, 16}, - {3275, 8}, - {3276, 0}, - {3301, 104}, + {849, 48}, + {850, 40}, + {852, 32}, + {854, 24}, + {856, 16}, + {858, 8}, + {859, 0}, + {924, 48}, } _pcsp__skip_one_fast = [][2]uint32{ {1, 0}, @@ -269,44 +265,15 @@ var ( {10, 32}, {12, 40}, {13, 48}, - {613, 176}, - {614, 168}, - {616, 160}, - {618, 152}, - {620, 144}, - {622, 136}, - {626, 128}, + {658, 176}, + {659, 168}, + {661, 160}, + {663, 152}, + {665, 144}, + {667, 136}, + {671, 128}, {3016, 176}, } - _pcsp__unescape = [][2]uint32{ - {1, 0}, - {4, 8}, - {6, 16}, - {8, 24}, - {10, 32}, - {12, 40}, - {13, 48}, - {246, 56}, - {250, 48}, - {251, 40}, - {253, 32}, - {255, 24}, - {257, 16}, - {259, 8}, - {260, 0}, - {695, 56}, - } - _pcsp__unhex16_is = [][2]uint32{ - {1, 0}, - {35, 8}, - {36, 0}, - {62, 8}, - {63, 0}, - {97, 8}, - {98, 0}, - {121, 8}, - {123, 0}, - } _pcsp__html_escape = [][2]uint32{ {1, 0}, {4, 8}, @@ -315,47 +282,39 @@ var ( {10, 32}, {12, 40}, {13, 48}, - {1265, 64}, - {1269, 48}, - {1270, 40}, - {1272, 32}, - {1274, 24}, - {1276, 16}, - {1278, 8}, - {1280, 0}, + {1224, 72}, + {1228, 48}, + {1229, 40}, + {1231, 32}, + {1233, 24}, + {1235, 16}, + {1237, 8}, + {1239, 0}, } _pcsp__i64toa = [][2]uint32{ - {1, 0}, - {171, 8}, - {172, 0}, - {207, 8}, - {208, 0}, - {222, 8}, - {223, 0}, - {247, 8}, - {248, 0}, - {253, 8}, - {259, 0}, + {14, 0}, + {34, 8}, + {36, 0}, } _pcsp__u64toa = [][2]uint32{ - {13, 0}, - {162, 8}, - {163, 0}, - {175, 8}, - {240, 0}, - {498, 8}, - {499, 0}, - {519, 8}, - {592, 0}, - {850, 8}, - {928, 0}, - {1374, 8}, - {1376, 0}, + {1, 0}, + {161, 8}, + {162, 0}, + {457, 8}, + {458, 0}, + {756, 8}, + {757, 0}, + {1221, 8}, + {1223, 0}, } _pcsp__lspace = [][2]uint32{ {1, 0}, - {85, 8}, - {87, 0}, + {89, 8}, + {90, 0}, + {103, 8}, + {104, 0}, + {111, 8}, + {113, 0}, } _pcsp__quote = [][2]uint32{ {1, 0}, @@ -365,15 +324,15 @@ var ( {10, 32}, {12, 40}, {13, 48}, - {1669, 80}, - {1673, 48}, - {1674, 40}, - {1676, 32}, - {1678, 24}, - {1680, 16}, - {1682, 8}, - {1683, 0}, - {1718, 80}, + {1649, 56}, + {1653, 48}, + {1654, 40}, + {1656, 32}, + {1658, 24}, + {1660, 16}, + {1662, 8}, + {1663, 0}, + {1690, 56}, } _pcsp__skip_array = [][2]uint32{ {1, 0}, @@ -405,8 +364,8 @@ var ( } _pcsp__skip_one = [][2]uint32{ {1, 0}, - {28, 8}, - {34, 0}, + {30, 8}, + {36, 0}, } _pcsp__unquote = [][2]uint32{ {1, 0}, @@ -416,20 +375,20 @@ var ( {10, 32}, {12, 40}, {13, 48}, - {1614, 104}, - {1618, 48}, - {1619, 40}, - {1621, 32}, - {1623, 24}, - {1625, 16}, - {1627, 8}, - {1628, 0}, - {2329, 104}, + {1684, 88}, + {1688, 48}, + {1689, 40}, + {1691, 32}, + {1693, 24}, + {1695, 16}, + {1697, 8}, + {1698, 0}, + {2270, 88}, } _pcsp__validate_one = [][2]uint32{ {1, 0}, - {33, 8}, - {39, 0}, + {35, 8}, + {41, 0}, } _pcsp__validate_utf8 = [][2]uint32{ {1, 0}, @@ -438,14 +397,14 @@ var ( {8, 24}, {10, 32}, {11, 40}, - {639, 48}, - {643, 40}, - {644, 32}, - {646, 24}, - {648, 16}, - {650, 8}, - {651, 0}, - {682, 48}, + {623, 48}, + {627, 40}, + {628, 32}, + {630, 24}, + {632, 16}, + {634, 8}, + {635, 0}, + {666, 48}, } _pcsp__validate_utf8_fast = [][2]uint32{ {1, 0}, @@ -468,15 +427,15 @@ var ( {10, 32}, {12, 40}, {13, 48}, - {439, 88}, - {443, 48}, - {444, 40}, - {446, 32}, - {448, 24}, - {450, 16}, - {452, 8}, - {453, 0}, - {1268, 88}, + {495, 88}, + {499, 48}, + {500, 40}, + {502, 32}, + {504, 24}, + {506, 16}, + {508, 8}, + {509, 0}, + {1308, 88}, } _pcsp__vnumber = [][2]uint32{ {1, 0}, @@ -486,36 +445,34 @@ var ( {10, 32}, {12, 40}, {13, 48}, - {150, 120}, - {154, 48}, - {155, 40}, - {157, 32}, - {159, 24}, - {161, 16}, - {163, 8}, - {164, 0}, - {1638, 120}, + {803, 104}, + {807, 48}, + {808, 40}, + {810, 32}, + {812, 24}, + {814, 16}, + {816, 8}, + {817, 0}, + {1547, 104}, } _pcsp__atof_eisel_lemire64 = [][2]uint32{ {1, 0}, {4, 8}, {6, 16}, {8, 24}, - {10, 32}, - {315, 40}, - {316, 32}, - {318, 24}, - {320, 16}, - {322, 8}, - {323, 0}, - {387, 40}, + {292, 32}, + {293, 24}, + {295, 16}, + {297, 8}, + {298, 0}, + {362, 32}, } _pcsp__atof_native = [][2]uint32{ {1, 0}, {4, 8}, - {596, 56}, - {600, 8}, - {602, 0}, + {587, 56}, + {591, 8}, + {593, 0}, } _pcsp__decimal_to_f64 = [][2]uint32{ {1, 0}, @@ -525,62 +482,60 @@ var ( {10, 32}, {12, 40}, {13, 48}, - {951, 56}, - {955, 48}, - {956, 40}, - {958, 32}, - {960, 24}, - {962, 16}, - {964, 8}, - {965, 0}, - {977, 56}, + {1144, 56}, + {1148, 48}, + {1149, 40}, + {1151, 32}, + {1153, 24}, + {1155, 16}, + {1157, 8}, + {1158, 0}, + {1169, 56}, } - _pcsp__left_shift = [][2]uint32{ + _pcsp__right_shift = [][2]uint32{ {1, 0}, - {4, 8}, - {6, 16}, - {8, 24}, - {418, 32}, - {419, 24}, - {421, 16}, - {423, 8}, - {424, 0}, - {539, 32}, + {318, 8}, + {319, 0}, + {387, 8}, + {388, 0}, + {396, 8}, + {398, 0}, } - _pcsp__right_shift = [][2]uint32{ + _pcsp__left_shift = [][2]uint32{ {1, 0}, {4, 8}, - {452, 16}, - {453, 8}, - {454, 0}, - {462, 16}, - {463, 8}, - {464, 0}, - {472, 16}, + {6, 16}, + {363, 24}, + {364, 16}, + {366, 8}, + {367, 0}, + {470, 24}, + {471, 16}, {473, 8}, - {475, 0}, + {474, 0}, + {486, 24}, } _pcsp__vsigned = [][2]uint32{ {1, 0}, {4, 8}, - {113, 16}, - {114, 8}, - {115, 0}, - {126, 16}, - {127, 8}, - {128, 0}, - {278, 16}, - {279, 8}, - {280, 0}, - {284, 16}, - {285, 8}, - {286, 0}, - {340, 16}, - {341, 8}, - {342, 0}, - {353, 16}, - {354, 8}, - {356, 0}, + {112, 16}, + {113, 8}, + {114, 0}, + {125, 16}, + {126, 8}, + {127, 0}, + {260, 16}, + {261, 8}, + {262, 0}, + {266, 16}, + {267, 8}, + {268, 0}, + {306, 16}, + {307, 8}, + {308, 0}, + {316, 16}, + {317, 8}, + {319, 0}, } _pcsp__vstring = [][2]uint32{ {1, 0}, @@ -599,32 +554,18 @@ var ( } _pcsp__vunsigned = [][2]uint32{ {1, 0}, - {4, 8}, - {6, 16}, - {74, 24}, - {75, 16}, - {77, 8}, - {78, 0}, - {89, 24}, - {90, 16}, - {92, 8}, - {93, 0}, - {116, 24}, - {117, 16}, - {119, 8}, - {120, 0}, - {281, 24}, - {282, 16}, - {284, 8}, - {285, 0}, - {336, 24}, - {337, 16}, - {339, 8}, - {340, 0}, - {348, 24}, - {349, 16}, - {351, 8}, - {353, 0}, + {71, 8}, + {72, 0}, + {83, 8}, + {84, 0}, + {107, 8}, + {108, 0}, + {273, 8}, + {274, 0}, + {312, 8}, + {313, 0}, + {320, 8}, + {322, 0}, } ) @@ -634,14 +575,12 @@ var Funcs = []loader.CFunc{ {"_f64toa", _entry__f64toa, _size__f64toa, _stack__f64toa, _pcsp__f64toa}, {"_format_significand", _entry__format_significand, _size__format_significand, _stack__format_significand, _pcsp__format_significand}, {"_format_integer", _entry__format_integer, _size__format_integer, _stack__format_integer, _pcsp__format_integer}, + {"_get_by_path", _entry__get_by_path, _size__get_by_path, _stack__get_by_path, _pcsp__get_by_path}, {"_fsm_exec", _entry__fsm_exec, _size__fsm_exec, _stack__fsm_exec, _pcsp__fsm_exec}, {"_advance_string", _entry__advance_string, _size__advance_string, _stack__advance_string, _pcsp__advance_string}, {"_advance_string_default", _entry__advance_string_default, _size__advance_string_default, _stack__advance_string_default, _pcsp__advance_string_default}, {"_do_skip_number", _entry__do_skip_number, _size__do_skip_number, _stack__do_skip_number, _pcsp__do_skip_number}, - {"_get_by_path", _entry__get_by_path, _size__get_by_path, _stack__get_by_path, _pcsp__get_by_path}, {"_skip_one_fast", _entry__skip_one_fast, _size__skip_one_fast, _stack__skip_one_fast, _pcsp__skip_one_fast}, - {"_unescape", _entry__unescape, _size__unescape, _stack__unescape, _pcsp__unescape}, - {"_unhex16_is", _entry__unhex16_is, _size__unhex16_is, _stack__unhex16_is, _pcsp__unhex16_is}, {"_html_escape", _entry__html_escape, _size__html_escape, _stack__html_escape, _pcsp__html_escape}, {"_i64toa", _entry__i64toa, _size__i64toa, _stack__i64toa, _pcsp__i64toa}, {"_u64toa", _entry__u64toa, _size__u64toa, _stack__u64toa, _pcsp__u64toa}, @@ -660,8 +599,8 @@ var Funcs = []loader.CFunc{ {"_atof_eisel_lemire64", _entry__atof_eisel_lemire64, _size__atof_eisel_lemire64, _stack__atof_eisel_lemire64, _pcsp__atof_eisel_lemire64}, {"_atof_native", _entry__atof_native, _size__atof_native, _stack__atof_native, _pcsp__atof_native}, {"_decimal_to_f64", _entry__decimal_to_f64, _size__decimal_to_f64, _stack__decimal_to_f64, _pcsp__decimal_to_f64}, - {"_left_shift", _entry__left_shift, _size__left_shift, _stack__left_shift, _pcsp__left_shift}, {"_right_shift", _entry__right_shift, _size__right_shift, _stack__right_shift, _pcsp__right_shift}, + {"_left_shift", _entry__left_shift, _size__left_shift, _stack__left_shift, _pcsp__left_shift}, {"_vsigned", _entry__vsigned, _size__vsigned, _stack__vsigned, _pcsp__vsigned}, {"_vstring", _entry__vstring, _size__vstring, _stack__vstring, _pcsp__vstring}, {"_vunsigned", _entry__vunsigned, _size__vunsigned, _stack__vunsigned, _pcsp__vunsigned}, diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx/native_text_amd64.go b/vendor/github.com/bytedance/sonic/internal/native/avx/native_text_amd64.go index 3f68fad03..e42d5a6ff 100644 --- a/vendor/github.com/bytedance/sonic/internal/native/avx/native_text_amd64.go +++ b/vendor/github.com/bytedance/sonic/internal/native/avx/native_text_amd64.go @@ -11,13072 +11,12753 @@ var Text__native_entry__ = []byte{ //0x00000010 _lspace 0x55, //0x00000010 pushq %rbp 0x48, 0x89, 0xe5, //0x00000011 movq %rsp, %rbp - 0x48, 0x89, 0xd0, //0x00000014 movq %rdx, %rax - 0x48, 0x39, 0xd6, //0x00000017 cmpq %rdx, %rsi - 0x0f, 0x84, 0x39, 0x00, 0x00, 0x00, //0x0000001a je LBB0_1 - 0x4c, 0x8d, 0x04, 0x37, //0x00000020 leaq (%rdi,%rsi), %r8 - 0x48, 0xba, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00000024 movabsq $4294977024, %rdx - 0x90, 0x90, //0x0000002e .p2align 4, 0x90 - //0x00000030 LBB0_3 - 0x0f, 0xbe, 0x0c, 0x07, //0x00000030 movsbl (%rdi,%rax), %ecx - 0x83, 0xf9, 0x20, //0x00000034 cmpl $32, %ecx - 0x0f, 0x87, 0x28, 0x00, 0x00, 0x00, //0x00000037 ja LBB0_7 - 0x48, 0x0f, 0xa3, 0xca, //0x0000003d btq %rcx, %rdx - 0x0f, 0x83, 0x1e, 0x00, 0x00, 0x00, //0x00000041 jae LBB0_7 - 0x48, 0x83, 0xc0, 0x01, //0x00000047 addq $1, %rax - 0x48, 0x39, 0xc6, //0x0000004b cmpq %rax, %rsi - 0x0f, 0x85, 0xdc, 0xff, 0xff, 0xff, //0x0000004e jne LBB0_3 - 0xe9, 0x06, 0x00, 0x00, 0x00, //0x00000054 jmp LBB0_6 - //0x00000059 LBB0_1 - 0x48, 0x01, 0xf8, //0x00000059 addq %rdi, %rax - 0x49, 0x89, 0xc0, //0x0000005c movq %rax, %r8 - //0x0000005f LBB0_6 - 0x49, 0x29, 0xf8, //0x0000005f subq %rdi, %r8 - 0x4c, 0x89, 0xc0, //0x00000062 movq %r8, %rax - //0x00000065 LBB0_7 - 0x5d, //0x00000065 popq %rbp - 0xc3, //0x00000066 retq - 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, //0x00000067 .p2align 5, 0x00 - //0x00000080 LCPI1_0 - 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, //0x00000080 QUAD $0x3030303030303030; QUAD $0x3030303030303030 // .space 16, '0000000000000000' - 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, //0x00000090 QUAD $0x3030303030303030; QUAD $0x3030303030303030 // .space 16, '0000000000000000' - //0x000000a0 .p2align 4, 0x00 - //0x000000a0 LCPI1_1 + 0x48, 0x39, 0xd6, //0x00000014 cmpq %rdx, %rsi + 0x0f, 0x84, 0x4e, 0x00, 0x00, 0x00, //0x00000017 je LBB0_1 + 0x4c, 0x8d, 0x04, 0x37, //0x0000001d leaq (%rdi,%rsi), %r8 + 0x48, 0x8d, 0x44, 0x3a, 0x01, //0x00000021 leaq $1(%rdx,%rdi), %rax + 0x48, 0x29, 0xf2, //0x00000026 subq %rsi, %rdx + 0x48, 0xbe, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00000029 movabsq $4294977024, %rsi + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000033 .p2align 4, 0x90 + //0x00000040 LBB0_3 + 0x0f, 0xbe, 0x48, 0xff, //0x00000040 movsbl $-1(%rax), %ecx + 0x83, 0xf9, 0x20, //0x00000044 cmpl $32, %ecx + 0x0f, 0x87, 0x2c, 0x00, 0x00, 0x00, //0x00000047 ja LBB0_5 + 0x48, 0x0f, 0xa3, 0xce, //0x0000004d btq %rcx, %rsi + 0x0f, 0x83, 0x22, 0x00, 0x00, 0x00, //0x00000051 jae LBB0_5 + 0x48, 0xff, 0xc0, //0x00000057 incq %rax + 0x48, 0xff, 0xc2, //0x0000005a incq %rdx + 0x0f, 0x85, 0xdd, 0xff, 0xff, 0xff, //0x0000005d jne LBB0_3 + 0x49, 0x29, 0xf8, //0x00000063 subq %rdi, %r8 + 0x4c, 0x89, 0xc0, //0x00000066 movq %r8, %rax + 0x5d, //0x00000069 popq %rbp + 0xc3, //0x0000006a retq + //0x0000006b LBB0_1 + 0x48, 0x01, 0xfa, //0x0000006b addq %rdi, %rdx + 0x49, 0x89, 0xd0, //0x0000006e movq %rdx, %r8 + 0x49, 0x29, 0xf8, //0x00000071 subq %rdi, %r8 + 0x4c, 0x89, 0xc0, //0x00000074 movq %r8, %rax + 0x5d, //0x00000077 popq %rbp + 0xc3, //0x00000078 retq + //0x00000079 LBB0_5 + 0x48, 0xf7, 0xd7, //0x00000079 notq %rdi + 0x48, 0x01, 0xf8, //0x0000007c addq %rdi, %rax + 0x5d, //0x0000007f popq %rbp + 0xc3, //0x00000080 retq + 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, //0x00000081 .p2align 5, 0x00 + //0x000000a0 LCPI1_0 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, //0x000000a0 QUAD $0x3030303030303030; QUAD $0x3030303030303030 // .space 16, '0000000000000000' - //0x000000b0 .p2align 4, 0x90 - //0x000000b0 _f64toa - 0x55, //0x000000b0 pushq %rbp - 0x48, 0x89, 0xe5, //0x000000b1 movq %rsp, %rbp - 0x41, 0x57, //0x000000b4 pushq %r15 - 0x41, 0x56, //0x000000b6 pushq %r14 - 0x41, 0x55, //0x000000b8 pushq %r13 - 0x41, 0x54, //0x000000ba pushq %r12 - 0x53, //0x000000bc pushq %rbx - 0x50, //0x000000bd pushq %rax - 0xc4, 0xe1, 0xf9, 0x7e, 0xc2, //0x000000be vmovq %xmm0, %rdx - 0x48, 0x89, 0xd0, //0x000000c3 movq %rdx, %rax - 0x48, 0xc1, 0xe8, 0x34, //0x000000c6 shrq $52, %rax - 0x25, 0xff, 0x07, 0x00, 0x00, //0x000000ca andl $2047, %eax - 0x3d, 0xff, 0x07, 0x00, 0x00, //0x000000cf cmpl $2047, %eax - 0x0f, 0x84, 0x4e, 0x0c, 0x00, 0x00, //0x000000d4 je LBB1_130 - 0x48, 0x89, 0xfe, //0x000000da movq %rdi, %rsi - 0xc6, 0x07, 0x2d, //0x000000dd movb $45, (%rdi) - 0x49, 0x89, 0xd5, //0x000000e0 movq %rdx, %r13 - 0x49, 0xc1, 0xed, 0x3f, //0x000000e3 shrq $63, %r13 - 0x4e, 0x8d, 0x3c, 0x2f, //0x000000e7 leaq (%rdi,%r13), %r15 - 0x48, 0x8d, 0x0c, 0x55, 0x00, 0x00, 0x00, 0x00, //0x000000eb leaq (,%rdx,2), %rcx - 0x48, 0x85, 0xc9, //0x000000f3 testq %rcx, %rcx - 0x0f, 0x84, 0x85, 0x02, 0x00, 0x00, //0x000000f6 je LBB1_6 - 0x48, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, //0x000000fc movabsq $4503599627370495, %rdi - 0x48, 0x21, 0xfa, //0x00000106 andq %rdi, %rdx - 0x85, 0xc0, //0x00000109 testl %eax, %eax - 0x0f, 0x84, 0x1e, 0x0c, 0x00, 0x00, //0x0000010b je LBB1_131 - 0x48, 0x83, 0xc7, 0x01, //0x00000111 addq $1, %rdi - 0x48, 0x09, 0xd7, //0x00000115 orq %rdx, %rdi - 0x44, 0x8d, 0x88, 0xcd, 0xfb, 0xff, 0xff, //0x00000118 leal $-1075(%rax), %r9d - 0x8d, 0x88, 0x01, 0xfc, 0xff, 0xff, //0x0000011f leal $-1023(%rax), %ecx - 0x83, 0xf9, 0x34, //0x00000125 cmpl $52, %ecx - 0x0f, 0x87, 0x1d, 0x00, 0x00, 0x00, //0x00000128 ja LBB1_7 - 0xb9, 0x33, 0x04, 0x00, 0x00, //0x0000012e movl $1075, %ecx - 0x29, 0xc1, //0x00000133 subl %eax, %ecx - 0x48, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x00000135 movq $-1, %rbx - 0x48, 0xd3, 0xe3, //0x0000013c shlq %cl, %rbx - 0x48, 0xf7, 0xd3, //0x0000013f notq %rbx - 0x48, 0x85, 0xdf, //0x00000142 testq %rbx, %rdi - 0x0f, 0x84, 0x0a, 0x04, 0x00, 0x00, //0x00000145 je LBB1_43 - //0x0000014b LBB1_7 - 0x48, 0x89, 0x75, 0xd0, //0x0000014b movq %rsi, $-48(%rbp) - //0x0000014f LBB1_8 - 0x48, 0x85, 0xd2, //0x0000014f testq %rdx, %rdx - 0x0f, 0x94, 0xc1, //0x00000152 sete %cl - 0x83, 0xf8, 0x02, //0x00000155 cmpl $2, %eax - 0x0f, 0x93, 0xc0, //0x00000158 setae %al - 0x20, 0xc8, //0x0000015b andb %cl, %al - 0x4c, 0x8d, 0x04, 0xbd, 0x00, 0x00, 0x00, 0x00, //0x0000015d leaq (,%rdi,4), %r8 - 0x0f, 0xb6, 0xc0, //0x00000165 movzbl %al, %eax - 0x41, 0x69, 0xc9, 0x13, 0x44, 0x13, 0x00, //0x00000168 imull $1262611, %r9d, %ecx - 0x44, 0x8d, 0x91, 0x01, 0x01, 0xf8, 0xff, //0x0000016f leal $-524031(%rcx), %r10d - 0x84, 0xc0, //0x00000176 testb %al, %al - 0x44, 0x0f, 0x44, 0xd1, //0x00000178 cmovel %ecx, %r10d - 0x48, 0x8d, 0x1c, 0xb8, //0x0000017c leaq (%rax,%rdi,4), %rbx - 0x48, 0x83, 0xc3, 0xfe, //0x00000180 addq $-2, %rbx - 0x41, 0xc1, 0xfa, 0x16, //0x00000184 sarl $22, %r10d - 0x41, 0x69, 0xca, 0xb1, 0x6c, 0xe5, 0xff, //0x00000188 imull $-1741647, %r10d, %ecx - 0xc1, 0xe9, 0x13, //0x0000018f shrl $19, %ecx - 0x44, 0x01, 0xc9, //0x00000192 addl %r9d, %ecx - 0xbe, 0x24, 0x01, 0x00, 0x00, //0x00000195 movl $292, %esi - 0x44, 0x29, 0xd6, //0x0000019a subl %r10d, %esi - 0x48, 0xc1, 0xe6, 0x04, //0x0000019d shlq $4, %rsi - 0x80, 0xc1, 0x01, //0x000001a1 addb $1, %cl - 0x48, 0xd3, 0xe3, //0x000001a4 shlq %cl, %rbx - 0x4c, 0x8d, 0x1d, 0x12, 0xc3, 0x00, 0x00, //0x000001a7 leaq $49938(%rip), %r11 /* _pow10_ceil_sig.g+0(%rip) */ - 0x4e, 0x8b, 0x64, 0x1e, 0x08, //0x000001ae movq $8(%rsi,%r11), %r12 - 0x48, 0x89, 0xd8, //0x000001b3 movq %rbx, %rax - 0x49, 0xf7, 0xe4, //0x000001b6 mulq %r12 - 0x49, 0x89, 0xd1, //0x000001b9 movq %rdx, %r9 - 0x4e, 0x8b, 0x34, 0x1e, //0x000001bc movq (%rsi,%r11), %r14 - 0x48, 0x89, 0xd8, //0x000001c0 movq %rbx, %rax - 0x49, 0xf7, 0xe6, //0x000001c3 mulq %r14 - 0x48, 0x89, 0xd3, //0x000001c6 movq %rdx, %rbx - 0x4c, 0x01, 0xc8, //0x000001c9 addq %r9, %rax - 0x48, 0x83, 0xd3, 0x00, //0x000001cc adcq $0, %rbx - 0x45, 0x31, 0xdb, //0x000001d0 xorl %r11d, %r11d - 0x48, 0x83, 0xf8, 0x02, //0x000001d3 cmpq $2, %rax - 0x41, 0x0f, 0x93, 0xc3, //0x000001d7 setae %r11b - 0x49, 0xd3, 0xe0, //0x000001db shlq %cl, %r8 - 0x48, 0x8d, 0x34, 0xbd, 0x02, 0x00, 0x00, 0x00, //0x000001de leaq $2(,%rdi,4), %rsi - 0x4c, 0x89, 0xc0, //0x000001e6 movq %r8, %rax - 0x49, 0xf7, 0xe4, //0x000001e9 mulq %r12 - 0x49, 0x89, 0xd1, //0x000001ec movq %rdx, %r9 - 0x49, 0x09, 0xdb, //0x000001ef orq %rbx, %r11 - 0x4c, 0x89, 0xc0, //0x000001f2 movq %r8, %rax - 0x49, 0xf7, 0xe6, //0x000001f5 mulq %r14 - 0x49, 0x89, 0xd0, //0x000001f8 movq %rdx, %r8 - 0x4c, 0x01, 0xc8, //0x000001fb addq %r9, %rax - 0x49, 0x83, 0xd0, 0x00, //0x000001fe adcq $0, %r8 - 0x31, 0xdb, //0x00000202 xorl %ebx, %ebx - 0x48, 0x83, 0xf8, 0x02, //0x00000204 cmpq $2, %rax - 0x0f, 0x93, 0xc3, //0x00000208 setae %bl - 0x48, 0xd3, 0xe6, //0x0000020b shlq %cl, %rsi - 0x48, 0x89, 0xf0, //0x0000020e movq %rsi, %rax - 0x49, 0xf7, 0xe4, //0x00000211 mulq %r12 - 0x48, 0x89, 0xd1, //0x00000214 movq %rdx, %rcx + 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, //0x000000b0 QUAD $0x3030303030303030; QUAD $0x3030303030303030 // .space 16, '0000000000000000' + //0x000000c0 .p2align 4, 0x90 + //0x000000c0 _f64toa + 0x55, //0x000000c0 pushq %rbp + 0x48, 0x89, 0xe5, //0x000000c1 movq %rsp, %rbp + 0x41, 0x57, //0x000000c4 pushq %r15 + 0x41, 0x56, //0x000000c6 pushq %r14 + 0x41, 0x55, //0x000000c8 pushq %r13 + 0x41, 0x54, //0x000000ca pushq %r12 + 0x53, //0x000000cc pushq %rbx + 0x50, //0x000000cd pushq %rax + 0xc4, 0xe1, 0xf9, 0x7e, 0xc2, //0x000000ce vmovq %xmm0, %rdx + 0x48, 0x89, 0xd0, //0x000000d3 movq %rdx, %rax + 0x48, 0xc1, 0xe8, 0x34, //0x000000d6 shrq $52, %rax + 0x25, 0xff, 0x07, 0x00, 0x00, //0x000000da andl $2047, %eax + 0x3d, 0xff, 0x07, 0x00, 0x00, //0x000000df cmpl $2047, %eax + 0x0f, 0x84, 0xcc, 0x0a, 0x00, 0x00, //0x000000e4 je LBB1_114 + 0x49, 0x89, 0xfe, //0x000000ea movq %rdi, %r14 + 0xc6, 0x07, 0x2d, //0x000000ed movb $45, (%rdi) + 0x49, 0x89, 0xd4, //0x000000f0 movq %rdx, %r12 + 0x49, 0xc1, 0xec, 0x3f, //0x000000f3 shrq $63, %r12 + 0x4e, 0x8d, 0x3c, 0x27, //0x000000f7 leaq (%rdi,%r12), %r15 + 0x48, 0x8d, 0x0c, 0x55, 0x00, 0x00, 0x00, 0x00, //0x000000fb leaq (,%rdx,2), %rcx + 0x48, 0x85, 0xc9, //0x00000103 testq %rcx, %rcx + 0x0f, 0x84, 0x75, 0x02, 0x00, 0x00, //0x00000106 je LBB1_19 + 0x48, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, //0x0000010c movabsq $4503599627370495, %rdi + 0x48, 0x21, 0xfa, //0x00000116 andq %rdi, %rdx + 0x85, 0xc0, //0x00000119 testl %eax, %eax + 0x0f, 0x84, 0x9c, 0x0a, 0x00, 0x00, //0x0000011b je LBB1_115 + 0x48, 0xff, 0xc7, //0x00000121 incq %rdi + 0x48, 0x09, 0xd7, //0x00000124 orq %rdx, %rdi + 0x8d, 0x98, 0xcd, 0xfb, 0xff, 0xff, //0x00000127 leal $-1075(%rax), %ebx + 0x8d, 0x88, 0x01, 0xfc, 0xff, 0xff, //0x0000012d leal $-1023(%rax), %ecx + 0x83, 0xf9, 0x34, //0x00000133 cmpl $52, %ecx + 0x0f, 0x87, 0x1d, 0x00, 0x00, 0x00, //0x00000136 ja LBB1_5 + 0xb9, 0x33, 0x04, 0x00, 0x00, //0x0000013c movl $1075, %ecx + 0x29, 0xc1, //0x00000141 subl %eax, %ecx + 0x48, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x00000143 movq $-1, %rsi + 0x48, 0xd3, 0xe6, //0x0000014a shlq %cl, %rsi + 0x48, 0xf7, 0xd6, //0x0000014d notq %rsi + 0x48, 0x85, 0xf7, //0x00000150 testq %rsi, %rdi + 0x0f, 0x84, 0x10, 0x04, 0x00, 0x00, //0x00000153 je LBB1_43 + //0x00000159 LBB1_5 + 0x48, 0x85, 0xd2, //0x00000159 testq %rdx, %rdx + 0x0f, 0x94, 0xc1, //0x0000015c sete %cl + 0x83, 0xf8, 0x01, //0x0000015f cmpl $1, %eax + 0x0f, 0x97, 0xc0, //0x00000162 seta %al + 0x20, 0xc8, //0x00000165 andb %cl, %al + 0x0f, 0xb6, 0xc0, //0x00000167 movzbl %al, %eax + 0x48, 0x8d, 0x74, 0xb8, 0xfe, //0x0000016a leaq $-2(%rax,%rdi,4), %rsi + 0x44, 0x69, 0xcb, 0x13, 0x44, 0x13, 0x00, //0x0000016f imull $1262611, %ebx, %r9d + 0x31, 0xc9, //0x00000176 xorl %ecx, %ecx + 0x84, 0xc0, //0x00000178 testb %al, %al + 0xb8, 0xff, 0xfe, 0x07, 0x00, //0x0000017a movl $524031, %eax + 0x0f, 0x44, 0xc1, //0x0000017f cmovel %ecx, %eax + 0x41, 0x29, 0xc1, //0x00000182 subl %eax, %r9d + 0x41, 0xc1, 0xf9, 0x16, //0x00000185 sarl $22, %r9d + 0x41, 0x69, 0xc9, 0xb1, 0x6c, 0xe5, 0xff, //0x00000189 imull $-1741647, %r9d, %ecx + 0xc1, 0xe9, 0x13, //0x00000190 shrl $19, %ecx + 0x01, 0xd9, //0x00000193 addl %ebx, %ecx + 0xb8, 0x24, 0x01, 0x00, 0x00, //0x00000195 movl $292, %eax + 0x44, 0x29, 0xc8, //0x0000019a subl %r9d, %eax + 0x48, 0x98, //0x0000019d cltq + 0x48, 0xc1, 0xe0, 0x04, //0x0000019f shlq $4, %rax + 0x48, 0x8d, 0x15, 0x16, 0xbe, 0x00, 0x00, //0x000001a3 leaq $48662(%rip), %rdx /* _pow10_ceil_sig.g+0(%rip) */ + 0x4c, 0x8b, 0x1c, 0x10, //0x000001aa movq (%rax,%rdx), %r11 + 0x4c, 0x8b, 0x6c, 0x10, 0x08, //0x000001ae movq $8(%rax,%rdx), %r13 + 0xfe, 0xc1, //0x000001b3 incb %cl + 0x48, 0xd3, 0xe6, //0x000001b5 shlq %cl, %rsi + 0x48, 0x89, 0xf0, //0x000001b8 movq %rsi, %rax + 0x49, 0xf7, 0xe5, //0x000001bb mulq %r13 + 0x48, 0x89, 0xd3, //0x000001be movq %rdx, %rbx + 0x48, 0x89, 0xf0, //0x000001c1 movq %rsi, %rax + 0x49, 0xf7, 0xe3, //0x000001c4 mulq %r11 + 0x48, 0x8d, 0x34, 0xbd, 0x00, 0x00, 0x00, 0x00, //0x000001c7 leaq (,%rdi,4), %rsi + 0x48, 0x01, 0xd8, //0x000001cf addq %rbx, %rax + 0x48, 0x83, 0xd2, 0x00, //0x000001d2 adcq $0, %rdx + 0x31, 0xdb, //0x000001d6 xorl %ebx, %ebx + 0x48, 0x83, 0xf8, 0x01, //0x000001d8 cmpq $1, %rax + 0x0f, 0x97, 0xc3, //0x000001dc seta %bl + 0x48, 0x09, 0xd3, //0x000001df orq %rdx, %rbx + 0x48, 0xd3, 0xe6, //0x000001e2 shlq %cl, %rsi + 0x48, 0x89, 0xf0, //0x000001e5 movq %rsi, %rax + 0x49, 0xf7, 0xe5, //0x000001e8 mulq %r13 + 0x49, 0x89, 0xd2, //0x000001eb movq %rdx, %r10 + 0x48, 0x89, 0xf0, //0x000001ee movq %rsi, %rax + 0x49, 0xf7, 0xe3, //0x000001f1 mulq %r11 + 0x49, 0x89, 0xd0, //0x000001f4 movq %rdx, %r8 + 0x48, 0x8d, 0x34, 0xbd, 0x02, 0x00, 0x00, 0x00, //0x000001f7 leaq $2(,%rdi,4), %rsi + 0x4c, 0x01, 0xd0, //0x000001ff addq %r10, %rax + 0x49, 0x83, 0xd0, 0x00, //0x00000202 adcq $0, %r8 + 0x45, 0x31, 0xd2, //0x00000206 xorl %r10d, %r10d + 0x48, 0x83, 0xf8, 0x01, //0x00000209 cmpq $1, %rax + 0x41, 0x0f, 0x97, 0xc2, //0x0000020d seta %r10b + 0x4d, 0x09, 0xc2, //0x00000211 orq %r8, %r10 + 0x48, 0xd3, 0xe6, //0x00000214 shlq %cl, %rsi 0x48, 0x89, 0xf0, //0x00000217 movq %rsi, %rax - 0x49, 0xf7, 0xe6, //0x0000021a mulq %r14 - 0x4c, 0x09, 0xc3, //0x0000021d orq %r8, %rbx - 0x48, 0x01, 0xc8, //0x00000220 addq %rcx, %rax - 0x48, 0x83, 0xd2, 0x00, //0x00000223 adcq $0, %rdx - 0x31, 0xc9, //0x00000227 xorl %ecx, %ecx - 0x48, 0x83, 0xf8, 0x02, //0x00000229 cmpq $2, %rax - 0x0f, 0x93, 0xc1, //0x0000022d setae %cl - 0x48, 0x09, 0xd1, //0x00000230 orq %rdx, %rcx - 0x83, 0xe7, 0x01, //0x00000233 andl $1, %edi - 0x49, 0x01, 0xfb, //0x00000236 addq %rdi, %r11 - 0x48, 0x29, 0xf9, //0x00000239 subq %rdi, %rcx - 0x48, 0x83, 0xfb, 0x28, //0x0000023c cmpq $40, %rbx - 0x0f, 0x82, 0x43, 0x00, 0x00, 0x00, //0x00000240 jb LBB1_10 - 0x48, 0xba, 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x00000246 movabsq $-3689348814741910323, %rdx - 0x4c, 0x89, 0xc0, //0x00000250 movq %r8, %rax - 0x48, 0xf7, 0xe2, //0x00000253 mulq %rdx - 0x48, 0x89, 0xd7, //0x00000256 movq %rdx, %rdi - 0x48, 0xc1, 0xef, 0x05, //0x00000259 shrq $5, %rdi - 0x48, 0x8d, 0x04, 0xfd, 0x00, 0x00, 0x00, 0x00, //0x0000025d leaq (,%rdi,8), %rax - 0x48, 0x8d, 0x14, 0x80, //0x00000265 leaq (%rax,%rax,4), %rdx - 0x49, 0x39, 0xd3, //0x00000269 cmpq %rdx, %r11 - 0x40, 0x0f, 0x97, 0xc6, //0x0000026c seta %sil - 0x48, 0x8d, 0x14, 0x80, //0x00000270 leaq (%rax,%rax,4), %rdx - 0x48, 0x83, 0xc2, 0x28, //0x00000274 addq $40, %rdx - 0x31, 0xc0, //0x00000278 xorl %eax, %eax - 0x48, 0x39, 0xca, //0x0000027a cmpq %rcx, %rdx - 0x0f, 0x96, 0xc2, //0x0000027d setbe %dl - 0x40, 0x38, 0xd6, //0x00000280 cmpb %dl, %sil - 0x0f, 0x84, 0xa3, 0x02, 0x00, 0x00, //0x00000283 je LBB1_22 - //0x00000289 LBB1_10 - 0x4c, 0x89, 0xc6, //0x00000289 movq %r8, %rsi - 0x48, 0xc1, 0xee, 0x02, //0x0000028c shrq $2, %rsi - 0x4c, 0x89, 0xc2, //0x00000290 movq %r8, %rdx - 0x48, 0x83, 0xe2, 0xfc, //0x00000293 andq $-4, %rdx - 0x49, 0x39, 0xd3, //0x00000297 cmpq %rdx, %r11 - 0x41, 0x0f, 0x97, 0xc1, //0x0000029a seta %r9b - 0x48, 0x8d, 0x7a, 0x04, //0x0000029e leaq $4(%rdx), %rdi - 0x48, 0x39, 0xcf, //0x000002a2 cmpq %rcx, %rdi - 0x0f, 0x96, 0xc0, //0x000002a5 setbe %al - 0x44, 0x30, 0xc8, //0x000002a8 xorb %r9b, %al - 0x0f, 0x84, 0xe3, 0x00, 0x00, 0x00, //0x000002ab je LBB1_14 - 0x48, 0x83, 0xca, 0x02, //0x000002b1 orq $2, %rdx - 0xbf, 0x01, 0x00, 0x00, 0x00, //0x000002b5 movl $1, %edi - 0x48, 0x39, 0xd3, //0x000002ba cmpq %rdx, %rbx - 0x0f, 0x87, 0x0e, 0x00, 0x00, 0x00, //0x000002bd ja LBB1_13 - 0x0f, 0x94, 0xc0, //0x000002c3 sete %al - 0x41, 0xc0, 0xe8, 0x02, //0x000002c6 shrb $2, %r8b - 0x41, 0x20, 0xc0, //0x000002ca andb %al, %r8b - 0x41, 0x0f, 0xb6, 0xf8, //0x000002cd movzbl %r8b, %edi - //0x000002d1 LBB1_13 - 0x48, 0x01, 0xf7, //0x000002d1 addq %rsi, %rdi - 0x49, 0xbc, 0x80, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, //0x000002d4 movabsq $8589934464, %r12 - 0x49, 0x8d, 0x84, 0x24, 0x7f, 0xe4, 0x0b, 0x54, //0x000002de leaq $1410065535(%r12), %rax - 0x48, 0x39, 0xc7, //0x000002e6 cmpq %rax, %rdi - 0x0f, 0x86, 0xca, 0x00, 0x00, 0x00, //0x000002e9 jbe LBB1_23 - //0x000002ef LBB1_15 - 0x48, 0x89, 0xf8, //0x000002ef movq %rdi, %rax - 0x48, 0xc1, 0xe8, 0x0b, //0x000002f2 shrq $11, %rax - 0xba, 0x0b, 0x00, 0x00, 0x00, //0x000002f6 movl $11, %edx - 0x48, 0x3d, 0xdd, 0x0e, 0xe9, 0x02, //0x000002fb cmpq $48828125, %rax - 0x0f, 0x82, 0x3c, 0x01, 0x00, 0x00, //0x00000301 jb LBB1_31 - 0x48, 0x89, 0xf8, //0x00000307 movq %rdi, %rax - 0x48, 0xc1, 0xe8, 0x0c, //0x0000030a shrq $12, %rax - 0xba, 0x0c, 0x00, 0x00, 0x00, //0x0000030e movl $12, %edx - 0x48, 0x3d, 0x51, 0x4a, 0x8d, 0x0e, //0x00000313 cmpq $244140625, %rax - 0x0f, 0x82, 0x24, 0x01, 0x00, 0x00, //0x00000319 jb LBB1_31 - 0x48, 0x89, 0xf8, //0x0000031f movq %rdi, %rax - 0x48, 0xc1, 0xe8, 0x0d, //0x00000322 shrq $13, %rax - 0xba, 0x0d, 0x00, 0x00, 0x00, //0x00000326 movl $13, %edx - 0x48, 0x3d, 0x95, 0x73, 0xc2, 0x48, //0x0000032b cmpq $1220703125, %rax - 0x0f, 0x82, 0x0c, 0x01, 0x00, 0x00, //0x00000331 jb LBB1_31 - 0xba, 0x0e, 0x00, 0x00, 0x00, //0x00000337 movl $14, %edx - 0x48, 0xb8, 0x00, 0x40, 0x7a, 0x10, 0xf3, 0x5a, 0x00, 0x00, //0x0000033c movabsq $100000000000000, %rax - 0x48, 0x39, 0xc7, //0x00000346 cmpq %rax, %rdi - 0x0f, 0x82, 0xf4, 0x00, 0x00, 0x00, //0x00000349 jb LBB1_31 - 0xba, 0x0f, 0x00, 0x00, 0x00, //0x0000034f movl $15, %edx - 0x48, 0xb8, 0x00, 0x80, 0xc6, 0xa4, 0x7e, 0x8d, 0x03, 0x00, //0x00000354 movabsq $1000000000000000, %rax - 0x48, 0x39, 0xc7, //0x0000035e cmpq %rax, %rdi - 0x0f, 0x82, 0xdc, 0x00, 0x00, 0x00, //0x00000361 jb LBB1_31 - 0x48, 0xb8, 0x00, 0x00, 0xc1, 0x6f, 0xf2, 0x86, 0x23, 0x00, //0x00000367 movabsq $10000000000000000, %rax - 0x48, 0x39, 0xc7, //0x00000371 cmpq %rax, %rdi - 0xba, 0x11, 0x00, 0x00, 0x00, //0x00000374 movl $17, %edx - //0x00000379 LBB1_21 - 0x83, 0xda, 0x00, //0x00000379 sbbl $0, %edx - 0xe9, 0xc2, 0x00, 0x00, 0x00, //0x0000037c jmp LBB1_31 - //0x00000381 LBB1_6 + 0x49, 0xf7, 0xe5, //0x0000021a mulq %r13 + 0x48, 0x89, 0xd1, //0x0000021d movq %rdx, %rcx + 0x48, 0x89, 0xf0, //0x00000220 movq %rsi, %rax + 0x49, 0xf7, 0xe3, //0x00000223 mulq %r11 + 0x48, 0x01, 0xc8, //0x00000226 addq %rcx, %rax + 0x48, 0x83, 0xd2, 0x00, //0x00000229 adcq $0, %rdx + 0x31, 0xc9, //0x0000022d xorl %ecx, %ecx + 0x48, 0x83, 0xf8, 0x01, //0x0000022f cmpq $1, %rax + 0x0f, 0x97, 0xc1, //0x00000233 seta %cl + 0x48, 0x09, 0xd1, //0x00000236 orq %rdx, %rcx + 0x83, 0xe7, 0x01, //0x00000239 andl $1, %edi + 0x48, 0x01, 0xfb, //0x0000023c addq %rdi, %rbx + 0x48, 0x29, 0xf9, //0x0000023f subq %rdi, %rcx + 0x49, 0x83, 0xfa, 0x28, //0x00000242 cmpq $40, %r10 + 0x0f, 0x82, 0x01, 0x01, 0x00, 0x00, //0x00000246 jb LBB1_17 + 0x48, 0xba, 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x0000024c movabsq $-3689348814741910323, %rdx + 0x4c, 0x89, 0xc0, //0x00000256 movq %r8, %rax + 0x48, 0xf7, 0xe2, //0x00000259 mulq %rdx + 0x48, 0x89, 0xd7, //0x0000025c movq %rdx, %rdi + 0x48, 0xc1, 0xef, 0x05, //0x0000025f shrq $5, %rdi + 0x48, 0x8d, 0x04, 0xfd, 0x00, 0x00, 0x00, 0x00, //0x00000263 leaq (,%rdi,8), %rax + 0x48, 0x8d, 0x14, 0x80, //0x0000026b leaq (%rax,%rax,4), %rdx + 0x48, 0x39, 0xd3, //0x0000026f cmpq %rdx, %rbx + 0x40, 0x0f, 0x96, 0xc6, //0x00000272 setbe %sil + 0x48, 0x8d, 0x44, 0x80, 0x28, //0x00000276 leaq $40(%rax,%rax,4), %rax + 0x48, 0x39, 0xc8, //0x0000027b cmpq %rcx, %rax + 0x0f, 0x96, 0xc2, //0x0000027e setbe %dl + 0x40, 0x38, 0xd6, //0x00000281 cmpb %dl, %sil + 0x0f, 0x84, 0xc3, 0x00, 0x00, 0x00, //0x00000284 je LBB1_17 + 0x31, 0xd2, //0x0000028a xorl %edx, %edx + 0x48, 0x39, 0xc8, //0x0000028c cmpq %rcx, %rax + 0x0f, 0x96, 0xc2, //0x0000028f setbe %dl + 0x48, 0x01, 0xd7, //0x00000292 addq %rdx, %rdi + 0x41, 0xff, 0xc1, //0x00000295 incl %r9d + 0x48, 0xbb, 0x80, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, //0x00000298 movabsq $8589934464, %rbx + 0x48, 0x8d, 0x83, 0x7f, 0xe4, 0x0b, 0x54, //0x000002a2 leaq $1410065535(%rbx), %rax + 0x48, 0x39, 0xc7, //0x000002a9 cmpq %rax, %rdi + 0x0f, 0x87, 0x1e, 0x01, 0x00, 0x00, //0x000002ac ja LBB1_23 + //0x000002b2 LBB1_8 + 0xba, 0x01, 0x00, 0x00, 0x00, //0x000002b2 movl $1, %edx + 0x48, 0x83, 0xff, 0x0a, //0x000002b7 cmpq $10, %rdi + 0x0f, 0x82, 0x9c, 0x01, 0x00, 0x00, //0x000002bb jb LBB1_30 + 0xba, 0x02, 0x00, 0x00, 0x00, //0x000002c1 movl $2, %edx + 0x48, 0x83, 0xff, 0x64, //0x000002c6 cmpq $100, %rdi + 0x0f, 0x82, 0x8d, 0x01, 0x00, 0x00, //0x000002ca jb LBB1_30 + 0xba, 0x03, 0x00, 0x00, 0x00, //0x000002d0 movl $3, %edx + 0x48, 0x81, 0xff, 0xe8, 0x03, 0x00, 0x00, //0x000002d5 cmpq $1000, %rdi + 0x0f, 0x82, 0x7b, 0x01, 0x00, 0x00, //0x000002dc jb LBB1_30 + 0xba, 0x04, 0x00, 0x00, 0x00, //0x000002e2 movl $4, %edx + 0x48, 0x81, 0xff, 0x10, 0x27, 0x00, 0x00, //0x000002e7 cmpq $10000, %rdi + 0x0f, 0x82, 0x69, 0x01, 0x00, 0x00, //0x000002ee jb LBB1_30 + 0xba, 0x05, 0x00, 0x00, 0x00, //0x000002f4 movl $5, %edx + 0x48, 0x81, 0xff, 0xa0, 0x86, 0x01, 0x00, //0x000002f9 cmpq $100000, %rdi + 0x0f, 0x82, 0x57, 0x01, 0x00, 0x00, //0x00000300 jb LBB1_30 + 0xba, 0x06, 0x00, 0x00, 0x00, //0x00000306 movl $6, %edx + 0x48, 0x81, 0xff, 0x40, 0x42, 0x0f, 0x00, //0x0000030b cmpq $1000000, %rdi + 0x0f, 0x82, 0x45, 0x01, 0x00, 0x00, //0x00000312 jb LBB1_30 + 0xba, 0x07, 0x00, 0x00, 0x00, //0x00000318 movl $7, %edx + 0x48, 0x81, 0xff, 0x80, 0x96, 0x98, 0x00, //0x0000031d cmpq $10000000, %rdi + 0x0f, 0x82, 0x33, 0x01, 0x00, 0x00, //0x00000324 jb LBB1_30 + 0xba, 0x08, 0x00, 0x00, 0x00, //0x0000032a movl $8, %edx + 0x48, 0x81, 0xff, 0x00, 0xe1, 0xf5, 0x05, //0x0000032f cmpq $100000000, %rdi + 0x0f, 0x82, 0x21, 0x01, 0x00, 0x00, //0x00000336 jb LBB1_30 + 0x48, 0x81, 0xff, 0x00, 0xca, 0x9a, 0x3b, //0x0000033c cmpq $1000000000, %rdi + 0xba, 0x0a, 0x00, 0x00, 0x00, //0x00000343 movl $10, %edx + 0xe9, 0x0d, 0x01, 0x00, 0x00, //0x00000348 jmp LBB1_29 + //0x0000034d LBB1_17 + 0x4d, 0x89, 0xc3, //0x0000034d movq %r8, %r11 + 0x49, 0xc1, 0xeb, 0x02, //0x00000350 shrq $2, %r11 + 0x4c, 0x89, 0xc2, //0x00000354 movq %r8, %rdx + 0x48, 0x83, 0xe2, 0xfc, //0x00000357 andq $-4, %rdx + 0x48, 0x39, 0xd3, //0x0000035b cmpq %rdx, %rbx + 0x0f, 0x96, 0xc3, //0x0000035e setbe %bl + 0x48, 0x8d, 0x72, 0x04, //0x00000361 leaq $4(%rdx), %rsi + 0x48, 0x39, 0xce, //0x00000365 cmpq %rcx, %rsi + 0x0f, 0x96, 0xc0, //0x00000368 setbe %al + 0x38, 0xc3, //0x0000036b cmpb %al, %bl + 0x0f, 0x84, 0x20, 0x00, 0x00, 0x00, //0x0000036d je LBB1_20 + 0x31, 0xff, //0x00000373 xorl %edi, %edi + 0x48, 0x39, 0xce, //0x00000375 cmpq %rcx, %rsi + 0x40, 0x0f, 0x96, 0xc7, //0x00000378 setbe %dil + 0xe9, 0x32, 0x00, 0x00, 0x00, //0x0000037c jmp LBB1_22 + //0x00000381 LBB1_19 0x41, 0xc6, 0x07, 0x30, //0x00000381 movb $48, (%r15) - 0x41, 0x29, 0xf7, //0x00000385 subl %esi, %r15d - 0x41, 0x83, 0xc7, 0x01, //0x00000388 addl $1, %r15d - 0x44, 0x89, 0xfb, //0x0000038c movl %r15d, %ebx - 0xe9, 0x4e, 0x09, 0x00, 0x00, //0x0000038f jmp LBB1_128 - //0x00000394 LBB1_14 - 0x48, 0x39, 0xf9, //0x00000394 cmpq %rdi, %rcx - 0x48, 0x83, 0xde, 0xff, //0x00000397 sbbq $-1, %rsi - 0x48, 0x89, 0xf7, //0x0000039b movq %rsi, %rdi - 0x49, 0xbc, 0x80, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, //0x0000039e movabsq $8589934464, %r12 - 0x49, 0x8d, 0x84, 0x24, 0x7f, 0xe4, 0x0b, 0x54, //0x000003a8 leaq $1410065535(%r12), %rax - 0x48, 0x39, 0xc7, //0x000003b0 cmpq %rax, %rdi - 0x0f, 0x87, 0x36, 0xff, 0xff, 0xff, //0x000003b3 ja LBB1_15 - //0x000003b9 LBB1_23 - 0xba, 0x01, 0x00, 0x00, 0x00, //0x000003b9 movl $1, %edx - 0x48, 0x83, 0xff, 0x0a, //0x000003be cmpq $10, %rdi - 0x0f, 0x82, 0x7b, 0x00, 0x00, 0x00, //0x000003c2 jb LBB1_31 - 0xba, 0x02, 0x00, 0x00, 0x00, //0x000003c8 movl $2, %edx - 0x48, 0x83, 0xff, 0x64, //0x000003cd cmpq $100, %rdi - 0x0f, 0x82, 0x6c, 0x00, 0x00, 0x00, //0x000003d1 jb LBB1_31 - 0xba, 0x03, 0x00, 0x00, 0x00, //0x000003d7 movl $3, %edx - 0x48, 0x81, 0xff, 0xe8, 0x03, 0x00, 0x00, //0x000003dc cmpq $1000, %rdi - 0x0f, 0x82, 0x5a, 0x00, 0x00, 0x00, //0x000003e3 jb LBB1_31 - 0xba, 0x04, 0x00, 0x00, 0x00, //0x000003e9 movl $4, %edx - 0x48, 0x81, 0xff, 0x10, 0x27, 0x00, 0x00, //0x000003ee cmpq $10000, %rdi - 0x0f, 0x82, 0x48, 0x00, 0x00, 0x00, //0x000003f5 jb LBB1_31 - 0xba, 0x05, 0x00, 0x00, 0x00, //0x000003fb movl $5, %edx - 0x48, 0x81, 0xff, 0xa0, 0x86, 0x01, 0x00, //0x00000400 cmpq $100000, %rdi - 0x0f, 0x82, 0x36, 0x00, 0x00, 0x00, //0x00000407 jb LBB1_31 - 0xba, 0x06, 0x00, 0x00, 0x00, //0x0000040d movl $6, %edx - 0x48, 0x81, 0xff, 0x40, 0x42, 0x0f, 0x00, //0x00000412 cmpq $1000000, %rdi - 0x0f, 0x82, 0x24, 0x00, 0x00, 0x00, //0x00000419 jb LBB1_31 - 0xba, 0x07, 0x00, 0x00, 0x00, //0x0000041f movl $7, %edx - 0x48, 0x81, 0xff, 0x80, 0x96, 0x98, 0x00, //0x00000424 cmpq $10000000, %rdi - 0x0f, 0x82, 0x12, 0x00, 0x00, 0x00, //0x0000042b jb LBB1_31 - 0xba, 0x08, 0x00, 0x00, 0x00, //0x00000431 movl $8, %edx - 0x48, 0x81, 0xff, 0x00, 0xe1, 0xf5, 0x05, //0x00000436 cmpq $100000000, %rdi - 0x0f, 0x83, 0xd4, 0x08, 0x00, 0x00, //0x0000043d jae LBB1_129 - //0x00000443 LBB1_31 - 0x46, 0x8d, 0x34, 0x12, //0x00000443 leal (%rdx,%r10), %r14d - 0x42, 0x8d, 0x04, 0x12, //0x00000447 leal (%rdx,%r10), %eax - 0x83, 0xc0, 0x05, //0x0000044b addl $5, %eax - 0x83, 0xf8, 0x1b, //0x0000044e cmpl $27, %eax - 0x0f, 0x82, 0x99, 0x00, 0x00, 0x00, //0x00000451 jb LBB1_39 - 0x4d, 0x8d, 0x67, 0x01, //0x00000457 leaq $1(%r15), %r12 - 0x4c, 0x89, 0xe6, //0x0000045b movq %r12, %rsi - 0xe8, 0x7d, 0x87, 0x00, 0x00, //0x0000045e callq _format_significand - 0x48, 0x89, 0xc3, //0x00000463 movq %rax, %rbx - 0x48, 0x8b, 0x7d, 0xd0, //0x00000466 movq $-48(%rbp), %rdi - 0x48, 0x29, 0xf8, //0x0000046a subq %rdi, %rax - 0x4c, 0x29, 0xe8, //0x0000046d subq %r13, %rax - //0x00000470 .p2align 4, 0x90 - //0x00000470 LBB1_33 - 0x48, 0x83, 0xc0, 0xff, //0x00000470 addq $-1, %rax - 0x80, 0x7b, 0xff, 0x30, //0x00000474 cmpb $48, $-1(%rbx) - 0x48, 0x8d, 0x5b, 0xff, //0x00000478 leaq $-1(%rbx), %rbx - 0x0f, 0x84, 0xee, 0xff, 0xff, 0xff, //0x0000047c je LBB1_33 - 0x41, 0x8a, 0x4f, 0x01, //0x00000482 movb $1(%r15), %cl - 0x41, 0x88, 0x0f, //0x00000486 movb %cl, (%r15) - 0x48, 0x83, 0xf8, 0x02, //0x00000489 cmpq $2, %rax - 0x0f, 0x8c, 0x09, 0x00, 0x00, 0x00, //0x0000048d jl LBB1_36 - 0x48, 0x83, 0xc3, 0x01, //0x00000493 addq $1, %rbx - 0x41, 0xc6, 0x04, 0x24, 0x2e, //0x00000497 movb $46, (%r12) - //0x0000049c LBB1_36 - 0xc6, 0x03, 0x65, //0x0000049c movb $101, (%rbx) - 0x45, 0x85, 0xf6, //0x0000049f testl %r14d, %r14d - 0x0f, 0x8e, 0x5e, 0x01, 0x00, 0x00, //0x000004a2 jle LBB1_51 - 0x41, 0x83, 0xc6, 0xff, //0x000004a8 addl $-1, %r14d - 0xc6, 0x43, 0x01, 0x2b, //0x000004ac movb $43, $1(%rbx) - 0x44, 0x89, 0xf0, //0x000004b0 movl %r14d, %eax - 0x83, 0xf8, 0x64, //0x000004b3 cmpl $100, %eax - 0x0f, 0x8c, 0x5f, 0x01, 0x00, 0x00, //0x000004b6 jl LBB1_52 - //0x000004bc LBB1_38 - 0x89, 0xc1, //0x000004bc movl %eax, %ecx - 0xba, 0xcd, 0xcc, 0xcc, 0xcc, //0x000004be movl $3435973837, %edx - 0x48, 0x0f, 0xaf, 0xd1, //0x000004c3 imulq %rcx, %rdx - 0x48, 0xc1, 0xea, 0x23, //0x000004c7 shrq $35, %rdx - 0x8d, 0x0c, 0x12, //0x000004cb leal (%rdx,%rdx), %ecx - 0x8d, 0x0c, 0x89, //0x000004ce leal (%rcx,%rcx,4), %ecx - 0x29, 0xc8, //0x000004d1 subl %ecx, %eax - 0x48, 0x8d, 0x0d, 0x16, 0xbf, 0x00, 0x00, //0x000004d3 leaq $48918(%rip), %rcx /* _Digits+0(%rip) */ - 0x0f, 0xb7, 0x0c, 0x51, //0x000004da movzwl (%rcx,%rdx,2), %ecx - 0x66, 0x89, 0x4b, 0x02, //0x000004de movw %cx, $2(%rbx) - 0x0c, 0x30, //0x000004e2 orb $48, %al - 0x88, 0x43, 0x04, //0x000004e4 movb %al, $4(%rbx) - 0x48, 0x83, 0xc3, 0x05, //0x000004e7 addq $5, %rbx - 0xe9, 0xf0, 0x07, 0x00, 0x00, //0x000004eb jmp LBB1_127 - //0x000004f0 LBB1_39 - 0x45, 0x85, 0xd2, //0x000004f0 testl %r10d, %r10d - 0x0f, 0x88, 0x45, 0x01, 0x00, 0x00, //0x000004f3 js LBB1_54 - 0x4d, 0x63, 0xf6, //0x000004f9 movslq %r14d, %r14 - 0x4b, 0x8d, 0x1c, 0x37, //0x000004fc leaq (%r15,%r14), %rbx - 0x4c, 0x89, 0xfe, //0x00000500 movq %r15, %rsi - 0xe8, 0x58, 0x08, 0x00, 0x00, //0x00000503 callq _format_integer - 0x48, 0x39, 0xd8, //0x00000508 cmpq %rbx, %rax - 0x0f, 0x83, 0xcb, 0x07, 0x00, 0x00, //0x0000050b jae LBB1_104 - 0x4d, 0x01, 0xf7, //0x00000511 addq %r14, %r15 - 0x4d, 0x89, 0xf8, //0x00000514 movq %r15, %r8 - 0x49, 0x29, 0xc0, //0x00000517 subq %rax, %r8 - 0x49, 0x83, 0xf8, 0x10, //0x0000051a cmpq $16, %r8 - 0x0f, 0x83, 0x2a, 0x02, 0x00, 0x00, //0x0000051e jae LBB1_70 - //0x00000524 LBB1_42 - 0x48, 0x89, 0xc1, //0x00000524 movq %rax, %rcx - 0xe9, 0xaf, 0x03, 0x00, 0x00, //0x00000527 jmp LBB1_86 - //0x0000052c LBB1_22 - 0x88, 0xd0, //0x0000052c movb %dl, %al - 0x48, 0x01, 0xc7, //0x0000052e addq %rax, %rdi - 0x41, 0x83, 0xc2, 0x01, //0x00000531 addl $1, %r10d - 0x49, 0xbc, 0x80, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, //0x00000535 movabsq $8589934464, %r12 - 0x49, 0x8d, 0x84, 0x24, 0x7f, 0xe4, 0x0b, 0x54, //0x0000053f leaq $1410065535(%r12), %rax - 0x48, 0x39, 0xc7, //0x00000547 cmpq %rax, %rdi - 0x0f, 0x87, 0x9f, 0xfd, 0xff, 0xff, //0x0000054a ja LBB1_15 - 0xe9, 0x64, 0xfe, 0xff, 0xff, //0x00000550 jmp LBB1_23 - //0x00000555 LBB1_43 - 0x48, 0xd3, 0xef, //0x00000555 shrq %cl, %rdi - 0x48, 0xb8, 0x80, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, //0x00000558 movabsq $8589934464, %rax - 0x48, 0x05, 0x7f, 0xe4, 0x0b, 0x54, //0x00000562 addq $1410065535, %rax - 0x49, 0x89, 0xf6, //0x00000568 movq %rsi, %r14 - 0x48, 0x39, 0xc7, //0x0000056b cmpq %rax, %rdi - 0x0f, 0x86, 0x3d, 0x01, 0x00, 0x00, //0x0000056e jbe LBB1_61 - 0x48, 0x89, 0xf8, //0x00000574 movq %rdi, %rax - 0x48, 0xc1, 0xe8, 0x0b, //0x00000577 shrq $11, %rax - 0xba, 0x0b, 0x00, 0x00, 0x00, //0x0000057b movl $11, %edx - 0x48, 0x3d, 0xdd, 0x0e, 0xe9, 0x02, //0x00000580 cmpq $48828125, %rax - 0x0f, 0x82, 0xaf, 0x01, 0x00, 0x00, //0x00000586 jb LBB1_69 - 0x48, 0x89, 0xf8, //0x0000058c movq %rdi, %rax - 0x48, 0xc1, 0xe8, 0x0c, //0x0000058f shrq $12, %rax - 0xba, 0x0c, 0x00, 0x00, 0x00, //0x00000593 movl $12, %edx - 0x48, 0x3d, 0x51, 0x4a, 0x8d, 0x0e, //0x00000598 cmpq $244140625, %rax - 0x0f, 0x82, 0x97, 0x01, 0x00, 0x00, //0x0000059e jb LBB1_69 - 0x48, 0x89, 0xf8, //0x000005a4 movq %rdi, %rax - 0x48, 0xc1, 0xe8, 0x0d, //0x000005a7 shrq $13, %rax - 0xba, 0x0d, 0x00, 0x00, 0x00, //0x000005ab movl $13, %edx - 0x48, 0x3d, 0x95, 0x73, 0xc2, 0x48, //0x000005b0 cmpq $1220703125, %rax - 0x0f, 0x82, 0x7f, 0x01, 0x00, 0x00, //0x000005b6 jb LBB1_69 - 0xba, 0x0e, 0x00, 0x00, 0x00, //0x000005bc movl $14, %edx - 0x48, 0xb8, 0x00, 0x40, 0x7a, 0x10, 0xf3, 0x5a, 0x00, 0x00, //0x000005c1 movabsq $100000000000000, %rax - 0x48, 0x39, 0xc7, //0x000005cb cmpq %rax, %rdi - 0x0f, 0x82, 0x67, 0x01, 0x00, 0x00, //0x000005ce jb LBB1_69 - 0xba, 0x0f, 0x00, 0x00, 0x00, //0x000005d4 movl $15, %edx - 0x48, 0xb8, 0x00, 0x80, 0xc6, 0xa4, 0x7e, 0x8d, 0x03, 0x00, //0x000005d9 movabsq $1000000000000000, %rax - 0x48, 0x39, 0xc7, //0x000005e3 cmpq %rax, %rdi - 0x0f, 0x82, 0x4f, 0x01, 0x00, 0x00, //0x000005e6 jb LBB1_69 - 0x48, 0xb8, 0x00, 0x00, 0xc1, 0x6f, 0xf2, 0x86, 0x23, 0x00, //0x000005ec movabsq $10000000000000000, %rax - 0x48, 0x39, 0xc7, //0x000005f6 cmpq %rax, %rdi - 0xba, 0x11, 0x00, 0x00, 0x00, //0x000005f9 movl $17, %edx - //0x000005fe LBB1_50 - 0x83, 0xda, 0x00, //0x000005fe sbbl $0, %edx - 0xe9, 0x35, 0x01, 0x00, 0x00, //0x00000601 jmp LBB1_69 - //0x00000606 LBB1_51 - 0xc6, 0x43, 0x01, 0x2d, //0x00000606 movb $45, $1(%rbx) - 0xb8, 0x01, 0x00, 0x00, 0x00, //0x0000060a movl $1, %eax - 0x44, 0x29, 0xf0, //0x0000060f subl %r14d, %eax - 0x83, 0xf8, 0x64, //0x00000612 cmpl $100, %eax - 0x0f, 0x8d, 0xa1, 0xfe, 0xff, 0xff, //0x00000615 jge LBB1_38 - //0x0000061b LBB1_52 - 0x83, 0xf8, 0x0a, //0x0000061b cmpl $10, %eax - 0x0f, 0x8c, 0x7f, 0x00, 0x00, 0x00, //0x0000061e jl LBB1_60 - 0x89, 0xc0, //0x00000624 movl %eax, %eax - 0x48, 0x8d, 0x0d, 0xc3, 0xbd, 0x00, 0x00, //0x00000626 leaq $48579(%rip), %rcx /* _Digits+0(%rip) */ - 0x0f, 0xb7, 0x04, 0x41, //0x0000062d movzwl (%rcx,%rax,2), %eax - 0x66, 0x89, 0x43, 0x02, //0x00000631 movw %ax, $2(%rbx) - 0x48, 0x83, 0xc3, 0x04, //0x00000635 addq $4, %rbx - 0xe9, 0xa2, 0x06, 0x00, 0x00, //0x00000639 jmp LBB1_127 - //0x0000063e LBB1_54 - 0x45, 0x85, 0xf6, //0x0000063e testl %r14d, %r14d - 0x0f, 0x8f, 0xda, 0x03, 0x00, 0x00, //0x00000641 jg LBB1_97 - 0x66, 0x41, 0xc7, 0x07, 0x30, 0x2e, //0x00000647 movw $11824, (%r15) - 0x49, 0x83, 0xc7, 0x02, //0x0000064d addq $2, %r15 - 0x45, 0x85, 0xf6, //0x00000651 testl %r14d, %r14d - 0x0f, 0x89, 0xc7, 0x03, 0x00, 0x00, //0x00000654 jns LBB1_97 - 0x41, 0x89, 0xd0, //0x0000065a movl %edx, %r8d - 0x41, 0xf7, 0xd0, //0x0000065d notl %r8d - 0x45, 0x29, 0xd0, //0x00000660 subl %r10d, %r8d - 0x31, 0xc0, //0x00000663 xorl %eax, %eax - 0x41, 0x83, 0xf8, 0x7f, //0x00000665 cmpl $127, %r8d - 0x0f, 0x82, 0x94, 0x03, 0x00, 0x00, //0x00000669 jb LBB1_95 - 0x49, 0x83, 0xc0, 0x01, //0x0000066f addq $1, %r8 - 0x4c, 0x89, 0xc0, //0x00000673 movq %r8, %rax - 0x4c, 0x21, 0xe0, //0x00000676 andq %r12, %rax - 0x48, 0x8d, 0x48, 0x80, //0x00000679 leaq $-128(%rax), %rcx - 0x48, 0x89, 0xce, //0x0000067d movq %rcx, %rsi - 0x48, 0xc1, 0xee, 0x07, //0x00000680 shrq $7, %rsi - 0x48, 0x83, 0xc6, 0x01, //0x00000684 addq $1, %rsi - 0x41, 0x89, 0xf1, //0x00000688 movl %esi, %r9d - 0x41, 0x83, 0xe1, 0x03, //0x0000068b andl $3, %r9d - 0x48, 0x81, 0xf9, 0x80, 0x01, 0x00, 0x00, //0x0000068f cmpq $384, %rcx - 0x0f, 0x83, 0x61, 0x02, 0x00, 0x00, //0x00000696 jae LBB1_89 - 0x31, 0xc9, //0x0000069c xorl %ecx, %ecx - 0xe9, 0x0b, 0x03, 0x00, 0x00, //0x0000069e jmp LBB1_91 - //0x000006a3 LBB1_60 - 0x04, 0x30, //0x000006a3 addb $48, %al - 0x88, 0x43, 0x02, //0x000006a5 movb %al, $2(%rbx) - 0x48, 0x83, 0xc3, 0x03, //0x000006a8 addq $3, %rbx - 0xe9, 0x2f, 0x06, 0x00, 0x00, //0x000006ac jmp LBB1_127 - //0x000006b1 LBB1_61 - 0xba, 0x01, 0x00, 0x00, 0x00, //0x000006b1 movl $1, %edx - 0x48, 0x83, 0xff, 0x0a, //0x000006b6 cmpq $10, %rdi - 0x0f, 0x82, 0x7b, 0x00, 0x00, 0x00, //0x000006ba jb LBB1_69 - 0xba, 0x02, 0x00, 0x00, 0x00, //0x000006c0 movl $2, %edx - 0x48, 0x83, 0xff, 0x64, //0x000006c5 cmpq $100, %rdi - 0x0f, 0x82, 0x6c, 0x00, 0x00, 0x00, //0x000006c9 jb LBB1_69 - 0xba, 0x03, 0x00, 0x00, 0x00, //0x000006cf movl $3, %edx - 0x48, 0x81, 0xff, 0xe8, 0x03, 0x00, 0x00, //0x000006d4 cmpq $1000, %rdi - 0x0f, 0x82, 0x5a, 0x00, 0x00, 0x00, //0x000006db jb LBB1_69 - 0xba, 0x04, 0x00, 0x00, 0x00, //0x000006e1 movl $4, %edx - 0x48, 0x81, 0xff, 0x10, 0x27, 0x00, 0x00, //0x000006e6 cmpq $10000, %rdi - 0x0f, 0x82, 0x48, 0x00, 0x00, 0x00, //0x000006ed jb LBB1_69 - 0xba, 0x05, 0x00, 0x00, 0x00, //0x000006f3 movl $5, %edx - 0x48, 0x81, 0xff, 0xa0, 0x86, 0x01, 0x00, //0x000006f8 cmpq $100000, %rdi - 0x0f, 0x82, 0x36, 0x00, 0x00, 0x00, //0x000006ff jb LBB1_69 - 0xba, 0x06, 0x00, 0x00, 0x00, //0x00000705 movl $6, %edx - 0x48, 0x81, 0xff, 0x40, 0x42, 0x0f, 0x00, //0x0000070a cmpq $1000000, %rdi - 0x0f, 0x82, 0x24, 0x00, 0x00, 0x00, //0x00000711 jb LBB1_69 - 0xba, 0x07, 0x00, 0x00, 0x00, //0x00000717 movl $7, %edx - 0x48, 0x81, 0xff, 0x80, 0x96, 0x98, 0x00, //0x0000071c cmpq $10000000, %rdi - 0x0f, 0x82, 0x12, 0x00, 0x00, 0x00, //0x00000723 jb LBB1_69 - 0xba, 0x08, 0x00, 0x00, 0x00, //0x00000729 movl $8, %edx - 0x48, 0x81, 0xff, 0x00, 0xe1, 0xf5, 0x05, //0x0000072e cmpq $100000000, %rdi - 0x0f, 0x83, 0x06, 0x06, 0x00, 0x00, //0x00000735 jae LBB1_132 - //0x0000073b LBB1_69 - 0x4c, 0x89, 0xfe, //0x0000073b movq %r15, %rsi - 0xe8, 0x1d, 0x06, 0x00, 0x00, //0x0000073e callq _format_integer - 0x48, 0x89, 0xc3, //0x00000743 movq %rax, %rbx - 0x44, 0x29, 0xf3, //0x00000746 subl %r14d, %ebx - 0xe9, 0x94, 0x05, 0x00, 0x00, //0x00000749 jmp LBB1_128 - //0x0000074e LBB1_70 - 0x49, 0x81, 0xf8, 0x80, 0x00, 0x00, 0x00, //0x0000074e cmpq $128, %r8 - 0x0f, 0x83, 0x07, 0x00, 0x00, 0x00, //0x00000755 jae LBB1_72 - 0x31, 0xd2, //0x0000075b xorl %edx, %edx - 0xe9, 0x45, 0x01, 0x00, 0x00, //0x0000075d jmp LBB1_82 - //0x00000762 LBB1_72 - 0x4c, 0x89, 0xc2, //0x00000762 movq %r8, %rdx - 0x48, 0x83, 0xe2, 0x80, //0x00000765 andq $-128, %rdx - 0x48, 0x8d, 0x4a, 0x80, //0x00000769 leaq $-128(%rdx), %rcx - 0x48, 0x89, 0xcf, //0x0000076d movq %rcx, %rdi - 0x48, 0xc1, 0xef, 0x07, //0x00000770 shrq $7, %rdi - 0x48, 0x83, 0xc7, 0x01, //0x00000774 addq $1, %rdi - 0x89, 0xfe, //0x00000778 movl %edi, %esi - 0x83, 0xe6, 0x03, //0x0000077a andl $3, %esi - 0x48, 0x81, 0xf9, 0x80, 0x01, 0x00, 0x00, //0x0000077d cmpq $384, %rcx - 0x0f, 0x83, 0x07, 0x00, 0x00, 0x00, //0x00000784 jae LBB1_74 - 0x31, 0xc9, //0x0000078a xorl %ecx, %ecx - 0xe9, 0xb3, 0x00, 0x00, 0x00, //0x0000078c jmp LBB1_76 - //0x00000791 LBB1_74 - 0x48, 0x83, 0xe7, 0xfc, //0x00000791 andq $-4, %rdi - 0x48, 0xf7, 0xdf, //0x00000795 negq %rdi - 0x31, 0xc9, //0x00000798 xorl %ecx, %ecx - 0xc5, 0xfd, 0x6f, 0x05, 0xde, 0xf8, 0xff, 0xff, //0x0000079a vmovdqa $-1826(%rip), %ymm0 /* LCPI1_0+0(%rip) */ - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000007a2 .p2align 4, 0x90 - //0x000007b0 LBB1_75 - 0xc5, 0xfe, 0x7f, 0x04, 0x08, //0x000007b0 vmovdqu %ymm0, (%rax,%rcx) - 0xc5, 0xfe, 0x7f, 0x44, 0x08, 0x20, //0x000007b5 vmovdqu %ymm0, $32(%rax,%rcx) - 0xc5, 0xfe, 0x7f, 0x44, 0x08, 0x40, //0x000007bb vmovdqu %ymm0, $64(%rax,%rcx) - 0xc5, 0xfe, 0x7f, 0x44, 0x08, 0x60, //0x000007c1 vmovdqu %ymm0, $96(%rax,%rcx) - 0xc5, 0xfe, 0x7f, 0x84, 0x08, 0x80, 0x00, 0x00, 0x00, //0x000007c7 vmovdqu %ymm0, $128(%rax,%rcx) - 0xc5, 0xfe, 0x7f, 0x84, 0x08, 0xa0, 0x00, 0x00, 0x00, //0x000007d0 vmovdqu %ymm0, $160(%rax,%rcx) - 0xc5, 0xfe, 0x7f, 0x84, 0x08, 0xc0, 0x00, 0x00, 0x00, //0x000007d9 vmovdqu %ymm0, $192(%rax,%rcx) - 0xc5, 0xfe, 0x7f, 0x84, 0x08, 0xe0, 0x00, 0x00, 0x00, //0x000007e2 vmovdqu %ymm0, $224(%rax,%rcx) - 0xc5, 0xfe, 0x7f, 0x84, 0x08, 0x00, 0x01, 0x00, 0x00, //0x000007eb vmovdqu %ymm0, $256(%rax,%rcx) - 0xc5, 0xfe, 0x7f, 0x84, 0x08, 0x20, 0x01, 0x00, 0x00, //0x000007f4 vmovdqu %ymm0, $288(%rax,%rcx) - 0xc5, 0xfe, 0x7f, 0x84, 0x08, 0x40, 0x01, 0x00, 0x00, //0x000007fd vmovdqu %ymm0, $320(%rax,%rcx) - 0xc5, 0xfe, 0x7f, 0x84, 0x08, 0x60, 0x01, 0x00, 0x00, //0x00000806 vmovdqu %ymm0, $352(%rax,%rcx) - 0xc5, 0xfe, 0x7f, 0x84, 0x08, 0x80, 0x01, 0x00, 0x00, //0x0000080f vmovdqu %ymm0, $384(%rax,%rcx) - 0xc5, 0xfe, 0x7f, 0x84, 0x08, 0xa0, 0x01, 0x00, 0x00, //0x00000818 vmovdqu %ymm0, $416(%rax,%rcx) - 0xc5, 0xfe, 0x7f, 0x84, 0x08, 0xc0, 0x01, 0x00, 0x00, //0x00000821 vmovdqu %ymm0, $448(%rax,%rcx) - 0xc5, 0xfe, 0x7f, 0x84, 0x08, 0xe0, 0x01, 0x00, 0x00, //0x0000082a vmovdqu %ymm0, $480(%rax,%rcx) - 0x48, 0x81, 0xc1, 0x00, 0x02, 0x00, 0x00, //0x00000833 addq $512, %rcx - 0x48, 0x83, 0xc7, 0x04, //0x0000083a addq $4, %rdi - 0x0f, 0x85, 0x6c, 0xff, 0xff, 0xff, //0x0000083e jne LBB1_75 - //0x00000844 LBB1_76 - 0x48, 0x85, 0xf6, //0x00000844 testq %rsi, %rsi - 0x0f, 0x84, 0x47, 0x00, 0x00, 0x00, //0x00000847 je LBB1_79 - 0x48, 0x01, 0xc1, //0x0000084d addq %rax, %rcx - 0x48, 0x83, 0xc1, 0x60, //0x00000850 addq $96, %rcx - 0x48, 0xc1, 0xe6, 0x07, //0x00000854 shlq $7, %rsi - 0x31, 0xff, //0x00000858 xorl %edi, %edi - 0xc5, 0xfd, 0x6f, 0x05, 0x1e, 0xf8, 0xff, 0xff, //0x0000085a vmovdqa $-2018(%rip), %ymm0 /* LCPI1_0+0(%rip) */ - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000862 .p2align 4, 0x90 - //0x00000870 LBB1_78 - 0xc5, 0xfe, 0x7f, 0x44, 0x39, 0xa0, //0x00000870 vmovdqu %ymm0, $-96(%rcx,%rdi) - 0xc5, 0xfe, 0x7f, 0x44, 0x39, 0xc0, //0x00000876 vmovdqu %ymm0, $-64(%rcx,%rdi) - 0xc5, 0xfe, 0x7f, 0x44, 0x39, 0xe0, //0x0000087c vmovdqu %ymm0, $-32(%rcx,%rdi) - 0xc5, 0xfe, 0x7f, 0x04, 0x39, //0x00000882 vmovdqu %ymm0, (%rcx,%rdi) - 0x48, 0x83, 0xef, 0x80, //0x00000887 subq $-128, %rdi - 0x48, 0x39, 0xfe, //0x0000088b cmpq %rdi, %rsi - 0x0f, 0x85, 0xdc, 0xff, 0xff, 0xff, //0x0000088e jne LBB1_78 - //0x00000894 LBB1_79 - 0x49, 0x39, 0xd0, //0x00000894 cmpq %rdx, %r8 - 0x0f, 0x84, 0x3f, 0x04, 0x00, 0x00, //0x00000897 je LBB1_104 - 0x41, 0xf6, 0xc0, 0x70, //0x0000089d testb $112, %r8b - 0x0f, 0x84, 0x4e, 0x00, 0x00, 0x00, //0x000008a1 je LBB1_88 - //0x000008a7 LBB1_82 - 0x4c, 0x89, 0xc6, //0x000008a7 movq %r8, %rsi - 0x48, 0x83, 0xe6, 0xf0, //0x000008aa andq $-16, %rsi - 0x48, 0x89, 0xc1, //0x000008ae movq %rax, %rcx - 0x48, 0x01, 0xf1, //0x000008b1 addq %rsi, %rcx - 0xc5, 0xf9, 0x6f, 0x05, 0xe4, 0xf7, 0xff, 0xff, //0x000008b4 vmovdqa $-2076(%rip), %xmm0 /* LCPI1_1+0(%rip) */ - 0x90, 0x90, 0x90, 0x90, //0x000008bc .p2align 4, 0x90 - //0x000008c0 LBB1_83 - 0xc5, 0xfa, 0x7f, 0x04, 0x10, //0x000008c0 vmovdqu %xmm0, (%rax,%rdx) - 0x48, 0x83, 0xc2, 0x10, //0x000008c5 addq $16, %rdx - 0x48, 0x39, 0xd6, //0x000008c9 cmpq %rdx, %rsi - 0x0f, 0x85, 0xee, 0xff, 0xff, 0xff, //0x000008cc jne LBB1_83 - 0x49, 0x39, 0xf0, //0x000008d2 cmpq %rsi, %r8 - 0x0f, 0x84, 0x01, 0x04, 0x00, 0x00, //0x000008d5 je LBB1_104 - //0x000008db LBB1_86 - 0x48, 0x8b, 0x7d, 0xd0, //0x000008db movq $-48(%rbp), %rdi - 0x90, //0x000008df .p2align 4, 0x90 - //0x000008e0 LBB1_87 - 0xc6, 0x01, 0x30, //0x000008e0 movb $48, (%rcx) - 0x48, 0x83, 0xc1, 0x01, //0x000008e3 addq $1, %rcx - 0x4c, 0x39, 0xf9, //0x000008e7 cmpq %r15, %rcx - 0x0f, 0x85, 0xf0, 0xff, 0xff, 0xff, //0x000008ea jne LBB1_87 - 0xe9, 0xeb, 0x03, 0x00, 0x00, //0x000008f0 jmp LBB1_127 - //0x000008f5 LBB1_88 - 0x48, 0x01, 0xd0, //0x000008f5 addq %rdx, %rax - 0xe9, 0x27, 0xfc, 0xff, 0xff, //0x000008f8 jmp LBB1_42 - //0x000008fd LBB1_89 - 0x48, 0x8b, 0x4d, 0xd0, //0x000008fd movq $-48(%rbp), %rcx - 0x4a, 0x8d, 0x1c, 0x29, //0x00000901 leaq (%rcx,%r13), %rbx - 0x48, 0x81, 0xc3, 0xe2, 0x01, 0x00, 0x00, //0x00000905 addq $482, %rbx - 0x48, 0x83, 0xe6, 0xfc, //0x0000090c andq $-4, %rsi - 0x48, 0xf7, 0xde, //0x00000910 negq %rsi - 0x31, 0xc9, //0x00000913 xorl %ecx, %ecx - 0xc5, 0xfd, 0x6f, 0x05, 0x63, 0xf7, 0xff, 0xff, //0x00000915 vmovdqa $-2205(%rip), %ymm0 /* LCPI1_0+0(%rip) */ - //0x0000091d LBB1_90 - 0xc5, 0xfe, 0x7f, 0x84, 0x0b, 0x20, 0xfe, 0xff, 0xff, //0x0000091d vmovdqu %ymm0, $-480(%rbx,%rcx) - 0xc5, 0xfe, 0x7f, 0x84, 0x0b, 0x40, 0xfe, 0xff, 0xff, //0x00000926 vmovdqu %ymm0, $-448(%rbx,%rcx) - 0xc5, 0xfe, 0x7f, 0x84, 0x0b, 0x60, 0xfe, 0xff, 0xff, //0x0000092f vmovdqu %ymm0, $-416(%rbx,%rcx) - 0xc5, 0xfe, 0x7f, 0x84, 0x0b, 0x80, 0xfe, 0xff, 0xff, //0x00000938 vmovdqu %ymm0, $-384(%rbx,%rcx) - 0xc5, 0xfe, 0x7f, 0x84, 0x0b, 0xa0, 0xfe, 0xff, 0xff, //0x00000941 vmovdqu %ymm0, $-352(%rbx,%rcx) - 0xc5, 0xfe, 0x7f, 0x84, 0x0b, 0xc0, 0xfe, 0xff, 0xff, //0x0000094a vmovdqu %ymm0, $-320(%rbx,%rcx) - 0xc5, 0xfe, 0x7f, 0x84, 0x0b, 0xe0, 0xfe, 0xff, 0xff, //0x00000953 vmovdqu %ymm0, $-288(%rbx,%rcx) - 0xc5, 0xfe, 0x7f, 0x84, 0x0b, 0x00, 0xff, 0xff, 0xff, //0x0000095c vmovdqu %ymm0, $-256(%rbx,%rcx) - 0xc5, 0xfe, 0x7f, 0x84, 0x0b, 0x20, 0xff, 0xff, 0xff, //0x00000965 vmovdqu %ymm0, $-224(%rbx,%rcx) - 0xc5, 0xfe, 0x7f, 0x84, 0x0b, 0x40, 0xff, 0xff, 0xff, //0x0000096e vmovdqu %ymm0, $-192(%rbx,%rcx) - 0xc5, 0xfe, 0x7f, 0x84, 0x0b, 0x60, 0xff, 0xff, 0xff, //0x00000977 vmovdqu %ymm0, $-160(%rbx,%rcx) - 0xc5, 0xfe, 0x7f, 0x44, 0x0b, 0x80, //0x00000980 vmovdqu %ymm0, $-128(%rbx,%rcx) - 0xc5, 0xfe, 0x7f, 0x44, 0x0b, 0xa0, //0x00000986 vmovdqu %ymm0, $-96(%rbx,%rcx) - 0xc5, 0xfe, 0x7f, 0x44, 0x0b, 0xc0, //0x0000098c vmovdqu %ymm0, $-64(%rbx,%rcx) - 0xc5, 0xfe, 0x7f, 0x44, 0x0b, 0xe0, //0x00000992 vmovdqu %ymm0, $-32(%rbx,%rcx) - 0xc5, 0xfe, 0x7f, 0x04, 0x0b, //0x00000998 vmovdqu %ymm0, (%rbx,%rcx) - 0x48, 0x81, 0xc1, 0x00, 0x02, 0x00, 0x00, //0x0000099d addq $512, %rcx - 0x48, 0x83, 0xc6, 0x04, //0x000009a4 addq $4, %rsi - 0x0f, 0x85, 0x6f, 0xff, 0xff, 0xff, //0x000009a8 jne LBB1_90 - //0x000009ae LBB1_91 - 0x4d, 0x85, 0xc9, //0x000009ae testq %r9, %r9 - 0x0f, 0x84, 0x40, 0x00, 0x00, 0x00, //0x000009b1 je LBB1_94 - 0x4c, 0x01, 0xe9, //0x000009b7 addq %r13, %rcx - 0x48, 0x8b, 0x75, 0xd0, //0x000009ba movq $-48(%rbp), %rsi - 0x48, 0x01, 0xf1, //0x000009be addq %rsi, %rcx - 0x48, 0x83, 0xc1, 0x62, //0x000009c1 addq $98, %rcx - 0x49, 0xc1, 0xe1, 0x07, //0x000009c5 shlq $7, %r9 - 0x31, 0xf6, //0x000009c9 xorl %esi, %esi - 0xc5, 0xfd, 0x6f, 0x05, 0xad, 0xf6, 0xff, 0xff, //0x000009cb vmovdqa $-2387(%rip), %ymm0 /* LCPI1_0+0(%rip) */ - //0x000009d3 LBB1_93 - 0xc5, 0xfe, 0x7f, 0x44, 0x31, 0xa0, //0x000009d3 vmovdqu %ymm0, $-96(%rcx,%rsi) - 0xc5, 0xfe, 0x7f, 0x44, 0x31, 0xc0, //0x000009d9 vmovdqu %ymm0, $-64(%rcx,%rsi) - 0xc5, 0xfe, 0x7f, 0x44, 0x31, 0xe0, //0x000009df vmovdqu %ymm0, $-32(%rcx,%rsi) - 0xc5, 0xfe, 0x7f, 0x04, 0x31, //0x000009e5 vmovdqu %ymm0, (%rcx,%rsi) - 0x48, 0x83, 0xee, 0x80, //0x000009ea subq $-128, %rsi - 0x49, 0x39, 0xf1, //0x000009ee cmpq %rsi, %r9 - 0x0f, 0x85, 0xdc, 0xff, 0xff, 0xff, //0x000009f1 jne LBB1_93 - //0x000009f7 LBB1_94 - 0x49, 0x01, 0xc7, //0x000009f7 addq %rax, %r15 - 0x49, 0x39, 0xc0, //0x000009fa cmpq %rax, %r8 - 0x0f, 0x84, 0x1e, 0x00, 0x00, 0x00, //0x000009fd je LBB1_97 - //0x00000a03 LBB1_95 - 0x44, 0x01, 0xf0, //0x00000a03 addl %r14d, %eax - 0xf7, 0xd8, //0x00000a06 negl %eax - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000a08 .p2align 4, 0x90 - //0x00000a10 LBB1_96 - 0x41, 0xc6, 0x07, 0x30, //0x00000a10 movb $48, (%r15) - 0x49, 0x83, 0xc7, 0x01, //0x00000a14 addq $1, %r15 - 0x83, 0xc0, 0xff, //0x00000a18 addl $-1, %eax - 0x0f, 0x85, 0xef, 0xff, 0xff, 0xff, //0x00000a1b jne LBB1_96 - //0x00000a21 LBB1_97 - 0x4c, 0x89, 0xfe, //0x00000a21 movq %r15, %rsi - 0xc5, 0xf8, 0x77, //0x00000a24 vzeroupper - 0xe8, 0xb4, 0x81, 0x00, 0x00, //0x00000a27 callq _format_significand - 0x89, 0xc2, //0x00000a2c movl %eax, %edx - 0x44, 0x28, 0xfa, //0x00000a2e subb %r15b, %dl - 0x44, 0x28, 0xf2, //0x00000a31 subb %r14b, %dl - 0x80, 0xc2, 0x01, //0x00000a34 addb $1, %dl - 0x41, 0x89, 0xc2, //0x00000a37 movl %eax, %r10d - 0x45, 0x29, 0xf2, //0x00000a3a subl %r14d, %r10d - 0x45, 0x29, 0xfa, //0x00000a3d subl %r15d, %r10d - 0x41, 0x83, 0xc2, 0x01, //0x00000a40 addl $1, %r10d - 0x47, 0x8d, 0x04, 0x3e, //0x00000a44 leal (%r14,%r15), %r8d - 0x41, 0x89, 0xc1, //0x00000a48 movl %eax, %r9d - 0x41, 0xf7, 0xd1, //0x00000a4b notl %r9d - 0x45, 0x01, 0xc1, //0x00000a4e addl %r8d, %r9d - 0x41, 0x29, 0xc0, //0x00000a51 subl %eax, %r8d - 0x41, 0x83, 0xc0, 0xfe, //0x00000a54 addl $-2, %r8d - 0x31, 0xc9, //0x00000a58 xorl %ecx, %ecx - 0x44, 0x89, 0xc7, //0x00000a5a movl %r8d, %edi - 0x48, 0x89, 0xc3, //0x00000a5d movq %rax, %rbx - //0x00000a60 .p2align 4, 0x90 - //0x00000a60 LBB1_98 - 0x48, 0x83, 0xc3, 0xff, //0x00000a60 addq $-1, %rbx - 0x80, 0xc2, 0x03, //0x00000a64 addb $3, %dl - 0x83, 0xc7, 0x01, //0x00000a67 addl $1, %edi - 0x80, 0x7c, 0x08, 0xff, 0x30, //0x00000a6a cmpb $48, $-1(%rax,%rcx) - 0x48, 0x8d, 0x49, 0xff, //0x00000a6f leaq $-1(%rcx), %rcx - 0x0f, 0x84, 0xe7, 0xff, 0xff, 0xff, //0x00000a73 je LBB1_98 - 0x48, 0x8d, 0x1c, 0x08, //0x00000a79 leaq (%rax,%rcx), %rbx - 0x48, 0x83, 0xc3, 0x01, //0x00000a7d addq $1, %rbx - 0x45, 0x85, 0xf6, //0x00000a81 testl %r14d, %r14d - 0x0f, 0x8e, 0x52, 0x02, 0x00, 0x00, //0x00000a84 jle LBB1_104 - 0x89, 0xc6, //0x00000a8a movl %eax, %esi - 0x44, 0x29, 0xfe, //0x00000a8c subl %r15d, %esi - 0x01, 0xce, //0x00000a8f addl %ecx, %esi - 0x83, 0xc6, 0x01, //0x00000a91 addl $1, %esi - 0x41, 0x39, 0xf6, //0x00000a94 cmpl %esi, %r14d - 0x0f, 0x8d, 0x27, 0x00, 0x00, 0x00, //0x00000a97 jge LBB1_105 - 0x45, 0x89, 0xd1, //0x00000a9d movl %r10d, %r9d - 0x49, 0x8d, 0x34, 0x09, //0x00000aa0 leaq (%r9,%rcx), %rsi - 0x85, 0xf6, //0x00000aa4 testl %esi, %esi - 0x0f, 0x8e, 0xdd, 0x00, 0x00, 0x00, //0x00000aa6 jle LBB1_116 - 0x41, 0x89, 0xf0, //0x00000aac movl %esi, %r8d - 0x49, 0x8d, 0x58, 0xff, //0x00000aaf leaq $-1(%r8), %rbx - 0x48, 0x83, 0xfb, 0x03, //0x00000ab3 cmpq $3, %rbx - 0x0f, 0x83, 0x66, 0x00, 0x00, 0x00, //0x00000ab7 jae LBB1_110 - 0x31, 0xdb, //0x00000abd xorl %ebx, %ebx - 0xe9, 0x88, 0x00, 0x00, 0x00, //0x00000abf jmp LBB1_113 - //0x00000ac4 LBB1_105 - 0x44, 0x89, 0xca, //0x00000ac4 movl %r9d, %edx - 0x48, 0x29, 0xca, //0x00000ac7 subq %rcx, %rdx - 0x85, 0xd2, //0x00000aca testl %edx, %edx - 0x0f, 0x8e, 0x0a, 0x02, 0x00, 0x00, //0x00000acc jle LBB1_104 - 0x45, 0x89, 0xc3, //0x00000ad2 movl %r8d, %r11d - 0x4d, 0x89, 0xd8, //0x00000ad5 movq %r11, %r8 - 0x49, 0x29, 0xc8, //0x00000ad8 subq %rcx, %r8 - 0x31, 0xf6, //0x00000adb xorl %esi, %esi - 0x41, 0x83, 0xf8, 0x7f, //0x00000add cmpl $127, %r8d - 0x0f, 0x82, 0x12, 0x02, 0x00, 0x00, //0x00000ae1 jb LBB1_125 - 0x49, 0x29, 0xcb, //0x00000ae7 subq %rcx, %r11 - 0x45, 0x89, 0xc0, //0x00000aea movl %r8d, %r8d - 0x49, 0x83, 0xc0, 0x01, //0x00000aed addq $1, %r8 - 0x4d, 0x21, 0xc4, //0x00000af1 andq %r8, %r12 - 0x41, 0x89, 0xf9, //0x00000af4 movl %edi, %r9d - 0x49, 0x83, 0xc1, 0x01, //0x00000af7 addq $1, %r9 - 0x49, 0x83, 0xe1, 0x80, //0x00000afb andq $-128, %r9 - 0x49, 0x8d, 0x74, 0x24, 0x80, //0x00000aff leaq $-128(%r12), %rsi - 0x49, 0x89, 0xf2, //0x00000b04 movq %rsi, %r10 - 0x49, 0xc1, 0xea, 0x07, //0x00000b07 shrq $7, %r10 - 0x49, 0x83, 0xc2, 0x01, //0x00000b0b addq $1, %r10 - 0x48, 0x81, 0xfe, 0x80, 0x01, 0x00, 0x00, //0x00000b0f cmpq $384, %rsi - 0x0f, 0x83, 0x86, 0x00, 0x00, 0x00, //0x00000b16 jae LBB1_117 - 0x31, 0xff, //0x00000b1c xorl %edi, %edi - 0xe9, 0x40, 0x01, 0x00, 0x00, //0x00000b1e jmp LBB1_119 - //0x00000b23 LBB1_110 - 0x49, 0x01, 0xc9, //0x00000b23 addq %rcx, %r9 - 0x41, 0x83, 0xe1, 0xfc, //0x00000b26 andl $-4, %r9d - 0x49, 0xf7, 0xd9, //0x00000b2a negq %r9 - 0x31, 0xdb, //0x00000b2d xorl %ebx, %ebx - 0x90, //0x00000b2f .p2align 4, 0x90 - //0x00000b30 LBB1_111 - 0x48, 0x8d, 0x34, 0x18, //0x00000b30 leaq (%rax,%rbx), %rsi - 0x8b, 0x7c, 0x31, 0xfd, //0x00000b34 movl $-3(%rcx,%rsi), %edi - 0x89, 0x7c, 0x31, 0xfe, //0x00000b38 movl %edi, $-2(%rcx,%rsi) - 0x48, 0x83, 0xc3, 0xfc, //0x00000b3c addq $-4, %rbx - 0x49, 0x39, 0xd9, //0x00000b40 cmpq %rbx, %r9 - 0x0f, 0x85, 0xe7, 0xff, 0xff, 0xff, //0x00000b43 jne LBB1_111 - 0x48, 0xf7, 0xdb, //0x00000b49 negq %rbx - //0x00000b4c LBB1_113 - 0x41, 0xf6, 0xc0, 0x03, //0x00000b4c testb $3, %r8b - 0x0f, 0x84, 0x33, 0x00, 0x00, 0x00, //0x00000b50 je LBB1_116 - 0x44, 0x0f, 0xb6, 0xc2, //0x00000b56 movzbl %dl, %r8d - 0x41, 0x83, 0xe0, 0x03, //0x00000b5a andl $3, %r8d - 0x49, 0xf7, 0xd8, //0x00000b5e negq %r8 - 0x48, 0x89, 0xc6, //0x00000b61 movq %rax, %rsi - 0x48, 0x29, 0xde, //0x00000b64 subq %rbx, %rsi - 0x31, 0xff, //0x00000b67 xorl %edi, %edi - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000b69 .p2align 4, 0x90 - //0x00000b70 LBB1_115 - 0x48, 0x8d, 0x1c, 0x3e, //0x00000b70 leaq (%rsi,%rdi), %rbx - 0x0f, 0xb6, 0x14, 0x19, //0x00000b74 movzbl (%rcx,%rbx), %edx - 0x88, 0x54, 0x19, 0x01, //0x00000b78 movb %dl, $1(%rcx,%rbx) - 0x48, 0x83, 0xc7, 0xff, //0x00000b7c addq $-1, %rdi - 0x49, 0x39, 0xf8, //0x00000b80 cmpq %rdi, %r8 - 0x0f, 0x85, 0xe7, 0xff, 0xff, 0xff, //0x00000b83 jne LBB1_115 - //0x00000b89 LBB1_116 - 0x49, 0x63, 0xd6, //0x00000b89 movslq %r14d, %rdx - 0x41, 0xc6, 0x04, 0x17, 0x2e, //0x00000b8c movb $46, (%r15,%rdx) - 0x48, 0x8d, 0x1c, 0x08, //0x00000b91 leaq (%rax,%rcx), %rbx - 0x48, 0x83, 0xc3, 0x02, //0x00000b95 addq $2, %rbx - 0x48, 0x8b, 0x7d, 0xd0, //0x00000b99 movq $-48(%rbp), %rdi - 0xe9, 0x3e, 0x01, 0x00, 0x00, //0x00000b9d jmp LBB1_127 - //0x00000ba2 LBB1_117 - 0x44, 0x89, 0xdb, //0x00000ba2 movl %r11d, %ebx - 0x48, 0x83, 0xc3, 0x01, //0x00000ba5 addq $1, %rbx - 0x48, 0x83, 0xe3, 0x80, //0x00000ba9 andq $-128, %rbx - 0x48, 0x83, 0xc3, 0x80, //0x00000bad addq $-128, %rbx - 0x48, 0xc1, 0xeb, 0x07, //0x00000bb1 shrq $7, %rbx - 0x48, 0x83, 0xc3, 0x01, //0x00000bb5 addq $1, %rbx - 0x48, 0x83, 0xe3, 0xfc, //0x00000bb9 andq $-4, %rbx - 0x48, 0xf7, 0xdb, //0x00000bbd negq %rbx - 0x31, 0xff, //0x00000bc0 xorl %edi, %edi - 0xc5, 0xfd, 0x6f, 0x05, 0xb6, 0xf4, 0xff, 0xff, //0x00000bc2 vmovdqa $-2890(%rip), %ymm0 /* LCPI1_0+0(%rip) */ - //0x00000bca LBB1_118 - 0x48, 0x8d, 0x34, 0x38, //0x00000bca leaq (%rax,%rdi), %rsi - 0xc5, 0xfe, 0x7f, 0x44, 0x31, 0x01, //0x00000bce vmovdqu %ymm0, $1(%rcx,%rsi) - 0xc5, 0xfe, 0x7f, 0x44, 0x31, 0x21, //0x00000bd4 vmovdqu %ymm0, $33(%rcx,%rsi) - 0xc5, 0xfe, 0x7f, 0x44, 0x31, 0x41, //0x00000bda vmovdqu %ymm0, $65(%rcx,%rsi) - 0xc5, 0xfe, 0x7f, 0x44, 0x31, 0x61, //0x00000be0 vmovdqu %ymm0, $97(%rcx,%rsi) - 0xc5, 0xfe, 0x7f, 0x84, 0x31, 0x81, 0x00, 0x00, 0x00, //0x00000be6 vmovdqu %ymm0, $129(%rcx,%rsi) - 0xc5, 0xfe, 0x7f, 0x84, 0x31, 0xa1, 0x00, 0x00, 0x00, //0x00000bef vmovdqu %ymm0, $161(%rcx,%rsi) - 0xc5, 0xfe, 0x7f, 0x84, 0x31, 0xc1, 0x00, 0x00, 0x00, //0x00000bf8 vmovdqu %ymm0, $193(%rcx,%rsi) - 0xc5, 0xfe, 0x7f, 0x84, 0x31, 0xe1, 0x00, 0x00, 0x00, //0x00000c01 vmovdqu %ymm0, $225(%rcx,%rsi) - 0xc5, 0xfe, 0x7f, 0x84, 0x31, 0x01, 0x01, 0x00, 0x00, //0x00000c0a vmovdqu %ymm0, $257(%rcx,%rsi) - 0xc5, 0xfe, 0x7f, 0x84, 0x31, 0x21, 0x01, 0x00, 0x00, //0x00000c13 vmovdqu %ymm0, $289(%rcx,%rsi) - 0xc5, 0xfe, 0x7f, 0x84, 0x31, 0x41, 0x01, 0x00, 0x00, //0x00000c1c vmovdqu %ymm0, $321(%rcx,%rsi) - 0xc5, 0xfe, 0x7f, 0x84, 0x31, 0x61, 0x01, 0x00, 0x00, //0x00000c25 vmovdqu %ymm0, $353(%rcx,%rsi) - 0xc5, 0xfe, 0x7f, 0x84, 0x31, 0x81, 0x01, 0x00, 0x00, //0x00000c2e vmovdqu %ymm0, $385(%rcx,%rsi) - 0xc5, 0xfe, 0x7f, 0x84, 0x31, 0xa1, 0x01, 0x00, 0x00, //0x00000c37 vmovdqu %ymm0, $417(%rcx,%rsi) - 0xc5, 0xfe, 0x7f, 0x84, 0x31, 0xc1, 0x01, 0x00, 0x00, //0x00000c40 vmovdqu %ymm0, $449(%rcx,%rsi) - 0xc5, 0xfe, 0x7f, 0x84, 0x31, 0xe1, 0x01, 0x00, 0x00, //0x00000c49 vmovdqu %ymm0, $481(%rcx,%rsi) - 0x48, 0x81, 0xc7, 0x00, 0x02, 0x00, 0x00, //0x00000c52 addq $512, %rdi - 0x48, 0x83, 0xc3, 0x04, //0x00000c59 addq $4, %rbx - 0x0f, 0x85, 0x67, 0xff, 0xff, 0xff, //0x00000c5d jne LBB1_118 - //0x00000c63 LBB1_119 - 0x49, 0x01, 0xc1, //0x00000c63 addq %rax, %r9 - 0x41, 0xf6, 0xc2, 0x03, //0x00000c66 testb $3, %r10b - 0x0f, 0x84, 0x5b, 0x00, 0x00, 0x00, //0x00000c6a je LBB1_122 - 0x41, 0x83, 0xc3, 0x01, //0x00000c70 addl $1, %r11d - 0x41, 0x81, 0xe3, 0x80, 0x01, 0x00, 0x00, //0x00000c74 andl $384, %r11d - 0x41, 0x83, 0xc3, 0x80, //0x00000c7b addl $-128, %r11d - 0x41, 0xc1, 0xeb, 0x07, //0x00000c7f shrl $7, %r11d - 0x41, 0x80, 0xc3, 0x01, //0x00000c83 addb $1, %r11b - 0x41, 0x0f, 0xb6, 0xf3, //0x00000c87 movzbl %r11b, %esi - 0x83, 0xe6, 0x03, //0x00000c8b andl $3, %esi - 0x48, 0xc1, 0xe6, 0x07, //0x00000c8e shlq $7, %rsi - 0x48, 0x01, 0xf8, //0x00000c92 addq %rdi, %rax - 0x48, 0x83, 0xc0, 0x61, //0x00000c95 addq $97, %rax - 0x31, 0xff, //0x00000c99 xorl %edi, %edi - 0xc5, 0xfd, 0x6f, 0x05, 0xdd, 0xf3, 0xff, 0xff, //0x00000c9b vmovdqa $-3107(%rip), %ymm0 /* LCPI1_0+0(%rip) */ - //0x00000ca3 LBB1_121 - 0x48, 0x8d, 0x1c, 0x38, //0x00000ca3 leaq (%rax,%rdi), %rbx - 0xc5, 0xfe, 0x7f, 0x44, 0x19, 0xa0, //0x00000ca7 vmovdqu %ymm0, $-96(%rcx,%rbx) - 0xc5, 0xfe, 0x7f, 0x44, 0x19, 0xc0, //0x00000cad vmovdqu %ymm0, $-64(%rcx,%rbx) - 0xc5, 0xfe, 0x7f, 0x44, 0x19, 0xe0, //0x00000cb3 vmovdqu %ymm0, $-32(%rcx,%rbx) - 0xc5, 0xfe, 0x7f, 0x04, 0x19, //0x00000cb9 vmovdqu %ymm0, (%rcx,%rbx) - 0x48, 0x83, 0xef, 0x80, //0x00000cbe subq $-128, %rdi - 0x48, 0x39, 0xfe, //0x00000cc2 cmpq %rdi, %rsi - 0x0f, 0x85, 0xd8, 0xff, 0xff, 0xff, //0x00000cc5 jne LBB1_121 - //0x00000ccb LBB1_122 - 0x4a, 0x8d, 0x1c, 0x09, //0x00000ccb leaq (%rcx,%r9), %rbx - 0x48, 0x83, 0xc3, 0x01, //0x00000ccf addq $1, %rbx - 0x4d, 0x39, 0xe0, //0x00000cd3 cmpq %r12, %r8 - 0x0f, 0x85, 0x1a, 0x00, 0x00, 0x00, //0x00000cd6 jne LBB1_124 - //0x00000cdc LBB1_104 - 0x48, 0x8b, 0x7d, 0xd0, //0x00000cdc movq $-48(%rbp), %rdi - //0x00000ce0 LBB1_127 - 0x29, 0xfb, //0x00000ce0 subl %edi, %ebx - //0x00000ce2 LBB1_128 - 0x89, 0xd8, //0x00000ce2 movl %ebx, %eax - 0x48, 0x83, 0xc4, 0x08, //0x00000ce4 addq $8, %rsp - 0x5b, //0x00000ce8 popq %rbx - 0x41, 0x5c, //0x00000ce9 popq %r12 - 0x41, 0x5d, //0x00000ceb popq %r13 - 0x41, 0x5e, //0x00000ced popq %r14 - 0x41, 0x5f, //0x00000cef popq %r15 - 0x5d, //0x00000cf1 popq %rbp - 0xc5, 0xf8, 0x77, //0x00000cf2 vzeroupper - 0xc3, //0x00000cf5 retq - //0x00000cf6 LBB1_124 - 0x44, 0x89, 0xe6, //0x00000cf6 movl %r12d, %esi - //0x00000cf9 LBB1_125 - 0x48, 0x8b, 0x7d, 0xd0, //0x00000cf9 movq $-48(%rbp), %rdi - 0x90, 0x90, 0x90, //0x00000cfd .p2align 4, 0x90 - //0x00000d00 LBB1_126 - 0xc6, 0x03, 0x30, //0x00000d00 movb $48, (%rbx) - 0x48, 0x83, 0xc3, 0x01, //0x00000d03 addq $1, %rbx - 0x83, 0xc6, 0x01, //0x00000d07 addl $1, %esi - 0x39, 0xd6, //0x00000d0a cmpl %edx, %esi - 0x0f, 0x8c, 0xee, 0xff, 0xff, 0xff, //0x00000d0c jl LBB1_126 - 0xe9, 0xc9, 0xff, 0xff, 0xff, //0x00000d12 jmp LBB1_127 - //0x00000d17 LBB1_129 - 0x48, 0x81, 0xff, 0x00, 0xca, 0x9a, 0x3b, //0x00000d17 cmpq $1000000000, %rdi - 0xba, 0x0a, 0x00, 0x00, 0x00, //0x00000d1e movl $10, %edx - 0xe9, 0x51, 0xf6, 0xff, 0xff, //0x00000d23 jmp LBB1_21 - //0x00000d28 LBB1_130 - 0x31, 0xdb, //0x00000d28 xorl %ebx, %ebx - 0xe9, 0xb3, 0xff, 0xff, 0xff, //0x00000d2a jmp LBB1_128 - //0x00000d2f LBB1_131 - 0x48, 0x89, 0x75, 0xd0, //0x00000d2f movq %rsi, $-48(%rbp) - 0x41, 0xb9, 0xce, 0xfb, 0xff, 0xff, //0x00000d33 movl $-1074, %r9d - 0x48, 0x89, 0xd7, //0x00000d39 movq %rdx, %rdi - 0xe9, 0x0e, 0xf4, 0xff, 0xff, //0x00000d3c jmp LBB1_8 - //0x00000d41 LBB1_132 - 0x48, 0x81, 0xff, 0x00, 0xca, 0x9a, 0x3b, //0x00000d41 cmpq $1000000000, %rdi - 0xba, 0x0a, 0x00, 0x00, 0x00, //0x00000d48 movl $10, %edx - 0xe9, 0xac, 0xf8, 0xff, 0xff, //0x00000d4d jmp LBB1_50 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000d52 .p2align 4, 0x90 - //0x00000d60 _format_integer - 0x55, //0x00000d60 pushq %rbp - 0x48, 0x89, 0xe5, //0x00000d61 movq %rsp, %rbp - 0x53, //0x00000d64 pushq %rbx - 0x41, 0x89, 0xd0, //0x00000d65 movl %edx, %r8d - 0x49, 0x01, 0xf0, //0x00000d68 addq %rsi, %r8 - 0x48, 0x89, 0xf8, //0x00000d6b movq %rdi, %rax - 0x48, 0xc1, 0xe8, 0x20, //0x00000d6e shrq $32, %rax - 0x0f, 0x85, 0x16, 0x00, 0x00, 0x00, //0x00000d72 jne LBB2_2 - 0x4d, 0x89, 0xc3, //0x00000d78 movq %r8, %r11 - 0x81, 0xff, 0x10, 0x27, 0x00, 0x00, //0x00000d7b cmpl $10000, %edi - 0x0f, 0x83, 0xc3, 0x00, 0x00, 0x00, //0x00000d81 jae LBB2_5 - //0x00000d87 LBB2_4 - 0x89, 0xfa, //0x00000d87 movl %edi, %edx - 0xe9, 0x1a, 0x01, 0x00, 0x00, //0x00000d89 jmp LBB2_7 - //0x00000d8e LBB2_2 - 0x48, 0xb9, 0xfd, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x00000d8e movabsq $-6067343680855748867, %rcx - 0x48, 0x89, 0xf8, //0x00000d98 movq %rdi, %rax - 0x48, 0xf7, 0xe1, //0x00000d9b mulq %rcx - 0x48, 0xc1, 0xea, 0x1a, //0x00000d9e shrq $26, %rdx - 0x69, 0xca, 0x00, 0x1f, 0x0a, 0xfa, //0x00000da2 imull $-100000000, %edx, %ecx - 0x01, 0xf9, //0x00000da8 addl %edi, %ecx - 0x41, 0xb9, 0x59, 0x17, 0xb7, 0xd1, //0x00000daa movl $3518437209, %r9d - 0x48, 0x89, 0xc8, //0x00000db0 movq %rcx, %rax - 0x49, 0x0f, 0xaf, 0xc1, //0x00000db3 imulq %r9, %rax - 0x48, 0xc1, 0xe8, 0x2d, //0x00000db7 shrq $45, %rax - 0x69, 0xf8, 0x10, 0x27, 0x00, 0x00, //0x00000dbb imull $10000, %eax, %edi - 0x29, 0xf9, //0x00000dc1 subl %edi, %ecx - 0x48, 0x89, 0xc7, //0x00000dc3 movq %rax, %rdi - 0x49, 0x0f, 0xaf, 0xf9, //0x00000dc6 imulq %r9, %rdi - 0x48, 0xc1, 0xef, 0x2d, //0x00000dca shrq $45, %rdi - 0x69, 0xff, 0x10, 0x27, 0x00, 0x00, //0x00000dce imull $10000, %edi, %edi - 0x29, 0xf8, //0x00000dd4 subl %edi, %eax - 0x0f, 0xb7, 0xf9, //0x00000dd6 movzwl %cx, %edi - 0xc1, 0xef, 0x02, //0x00000dd9 shrl $2, %edi - 0x44, 0x69, 0xcf, 0x7b, 0x14, 0x00, 0x00, //0x00000ddc imull $5243, %edi, %r9d - 0x41, 0xc1, 0xe9, 0x11, //0x00000de3 shrl $17, %r9d - 0x41, 0x6b, 0xf9, 0x64, //0x00000de7 imull $100, %r9d, %edi - 0x29, 0xf9, //0x00000deb subl %edi, %ecx - 0x44, 0x0f, 0xb7, 0xd1, //0x00000ded movzwl %cx, %r10d - 0x0f, 0xb7, 0xf8, //0x00000df1 movzwl %ax, %edi - 0xc1, 0xef, 0x02, //0x00000df4 shrl $2, %edi - 0x69, 0xff, 0x7b, 0x14, 0x00, 0x00, //0x00000df7 imull $5243, %edi, %edi - 0xc1, 0xef, 0x11, //0x00000dfd shrl $17, %edi - 0x6b, 0xcf, 0x64, //0x00000e00 imull $100, %edi, %ecx - 0x29, 0xc8, //0x00000e03 subl %ecx, %eax - 0x44, 0x0f, 0xb7, 0xd8, //0x00000e05 movzwl %ax, %r11d - 0x48, 0x8d, 0x0d, 0xe0, 0xb5, 0x00, 0x00, //0x00000e09 leaq $46560(%rip), %rcx /* _Digits+0(%rip) */ - 0x42, 0x0f, 0xb7, 0x04, 0x51, //0x00000e10 movzwl (%rcx,%r10,2), %eax - 0x66, 0x41, 0x89, 0x40, 0xfe, //0x00000e15 movw %ax, $-2(%r8) - 0x42, 0x0f, 0xb7, 0x04, 0x49, //0x00000e1a movzwl (%rcx,%r9,2), %eax - 0x66, 0x41, 0x89, 0x40, 0xfc, //0x00000e1f movw %ax, $-4(%r8) - 0x42, 0x0f, 0xb7, 0x04, 0x59, //0x00000e24 movzwl (%rcx,%r11,2), %eax - 0x66, 0x41, 0x89, 0x40, 0xfa, //0x00000e29 movw %ax, $-6(%r8) - 0x4d, 0x8d, 0x58, 0xf8, //0x00000e2e leaq $-8(%r8), %r11 - 0x0f, 0xb7, 0x0c, 0x79, //0x00000e32 movzwl (%rcx,%rdi,2), %ecx - 0x66, 0x41, 0x89, 0x48, 0xf8, //0x00000e36 movw %cx, $-8(%r8) - 0x48, 0x89, 0xd7, //0x00000e3b movq %rdx, %rdi - 0x81, 0xff, 0x10, 0x27, 0x00, 0x00, //0x00000e3e cmpl $10000, %edi - 0x0f, 0x82, 0x3d, 0xff, 0xff, 0xff, //0x00000e44 jb LBB2_4 - //0x00000e4a LBB2_5 - 0x41, 0xb9, 0x59, 0x17, 0xb7, 0xd1, //0x00000e4a movl $3518437209, %r9d - 0x4c, 0x8d, 0x15, 0x99, 0xb5, 0x00, 0x00, //0x00000e50 leaq $46489(%rip), %r10 /* _Digits+0(%rip) */ - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000e57 .p2align 4, 0x90 - //0x00000e60 LBB2_6 - 0x89, 0xfa, //0x00000e60 movl %edi, %edx - 0x49, 0x0f, 0xaf, 0xd1, //0x00000e62 imulq %r9, %rdx - 0x48, 0xc1, 0xea, 0x2d, //0x00000e66 shrq $45, %rdx - 0x69, 0xca, 0xf0, 0xd8, 0xff, 0xff, //0x00000e6a imull $-10000, %edx, %ecx - 0x01, 0xf9, //0x00000e70 addl %edi, %ecx - 0x48, 0x69, 0xc1, 0x1f, 0x85, 0xeb, 0x51, //0x00000e72 imulq $1374389535, %rcx, %rax - 0x48, 0xc1, 0xe8, 0x25, //0x00000e79 shrq $37, %rax - 0x6b, 0xd8, 0x64, //0x00000e7d imull $100, %eax, %ebx - 0x29, 0xd9, //0x00000e80 subl %ebx, %ecx - 0x41, 0x0f, 0xb7, 0x0c, 0x4a, //0x00000e82 movzwl (%r10,%rcx,2), %ecx - 0x66, 0x41, 0x89, 0x4b, 0xfe, //0x00000e87 movw %cx, $-2(%r11) - 0x41, 0x0f, 0xb7, 0x04, 0x42, //0x00000e8c movzwl (%r10,%rax,2), %eax - 0x66, 0x41, 0x89, 0x43, 0xfc, //0x00000e91 movw %ax, $-4(%r11) - 0x49, 0x83, 0xc3, 0xfc, //0x00000e96 addq $-4, %r11 - 0x81, 0xff, 0xff, 0xe0, 0xf5, 0x05, //0x00000e9a cmpl $99999999, %edi - 0x89, 0xd7, //0x00000ea0 movl %edx, %edi - 0x0f, 0x87, 0xb8, 0xff, 0xff, 0xff, //0x00000ea2 ja LBB2_6 - //0x00000ea8 LBB2_7 - 0x83, 0xfa, 0x64, //0x00000ea8 cmpl $100, %edx - 0x0f, 0x82, 0x2d, 0x00, 0x00, 0x00, //0x00000eab jb LBB2_9 - 0x0f, 0xb7, 0xc2, //0x00000eb1 movzwl %dx, %eax - 0xc1, 0xe8, 0x02, //0x00000eb4 shrl $2, %eax - 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x00000eb7 imull $5243, %eax, %eax - 0xc1, 0xe8, 0x11, //0x00000ebd shrl $17, %eax - 0x6b, 0xc8, 0x64, //0x00000ec0 imull $100, %eax, %ecx - 0x29, 0xca, //0x00000ec3 subl %ecx, %edx - 0x0f, 0xb7, 0xca, //0x00000ec5 movzwl %dx, %ecx - 0x48, 0x8d, 0x15, 0x21, 0xb5, 0x00, 0x00, //0x00000ec8 leaq $46369(%rip), %rdx /* _Digits+0(%rip) */ - 0x0f, 0xb7, 0x0c, 0x4a, //0x00000ecf movzwl (%rdx,%rcx,2), %ecx - 0x66, 0x41, 0x89, 0x4b, 0xfe, //0x00000ed3 movw %cx, $-2(%r11) - 0x49, 0x83, 0xc3, 0xfe, //0x00000ed8 addq $-2, %r11 - 0x89, 0xc2, //0x00000edc movl %eax, %edx - //0x00000ede LBB2_9 - 0x83, 0xfa, 0x0a, //0x00000ede cmpl $10, %edx - 0x0f, 0x82, 0x18, 0x00, 0x00, 0x00, //0x00000ee1 jb LBB2_11 - 0x89, 0xd0, //0x00000ee7 movl %edx, %eax - 0x48, 0x8d, 0x0d, 0x00, 0xb5, 0x00, 0x00, //0x00000ee9 leaq $46336(%rip), %rcx /* _Digits+0(%rip) */ - 0x0f, 0xb7, 0x04, 0x41, //0x00000ef0 movzwl (%rcx,%rax,2), %eax - 0x66, 0x41, 0x89, 0x43, 0xfe, //0x00000ef4 movw %ax, $-2(%r11) - 0x4c, 0x89, 0xc0, //0x00000ef9 movq %r8, %rax - 0x5b, //0x00000efc popq %rbx - 0x5d, //0x00000efd popq %rbp - 0xc3, //0x00000efe retq - //0x00000eff LBB2_11 - 0x80, 0xc2, 0x30, //0x00000eff addb $48, %dl - 0x88, 0x16, //0x00000f02 movb %dl, (%rsi) - 0x4c, 0x89, 0xc0, //0x00000f04 movq %r8, %rax - 0x5b, //0x00000f07 popq %rbx - 0x5d, //0x00000f08 popq %rbp - 0xc3, //0x00000f09 retq - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000f0a .p2align 4, 0x90 - //0x00000f10 _i64toa - 0x55, //0x00000f10 pushq %rbp - 0x48, 0x89, 0xe5, //0x00000f11 movq %rsp, %rbp - 0x48, 0x85, 0xf6, //0x00000f14 testq %rsi, %rsi - 0x0f, 0x88, 0xb0, 0x00, 0x00, 0x00, //0x00000f17 js LBB3_12 - 0x48, 0x81, 0xfe, 0x0f, 0x27, 0x00, 0x00, //0x00000f1d cmpq $9999, %rsi - 0x0f, 0x87, 0xb7, 0x00, 0x00, 0x00, //0x00000f24 ja LBB3_9 - 0x0f, 0xb7, 0xc6, //0x00000f2a movzwl %si, %eax - 0xc1, 0xe8, 0x02, //0x00000f2d shrl $2, %eax - 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x00000f30 imull $5243, %eax, %eax - 0xc1, 0xe8, 0x11, //0x00000f36 shrl $17, %eax - 0x48, 0x8d, 0x14, 0x00, //0x00000f39 leaq (%rax,%rax), %rdx - 0x6b, 0xc0, 0x64, //0x00000f3d imull $100, %eax, %eax - 0x89, 0xf1, //0x00000f40 movl %esi, %ecx - 0x29, 0xc1, //0x00000f42 subl %eax, %ecx - 0x0f, 0xb7, 0xc9, //0x00000f44 movzwl %cx, %ecx - 0x48, 0x01, 0xc9, //0x00000f47 addq %rcx, %rcx - 0x81, 0xfe, 0xe8, 0x03, 0x00, 0x00, //0x00000f4a cmpl $1000, %esi - 0x0f, 0x82, 0x16, 0x00, 0x00, 0x00, //0x00000f50 jb LBB3_4 - 0x48, 0x8d, 0x05, 0x93, 0xb4, 0x00, 0x00, //0x00000f56 leaq $46227(%rip), %rax /* _Digits+0(%rip) */ - 0x8a, 0x04, 0x02, //0x00000f5d movb (%rdx,%rax), %al - 0x88, 0x07, //0x00000f60 movb %al, (%rdi) - 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00000f62 movl $1, %eax - 0xe9, 0x0b, 0x00, 0x00, 0x00, //0x00000f67 jmp LBB3_5 - //0x00000f6c LBB3_4 - 0x31, 0xc0, //0x00000f6c xorl %eax, %eax - 0x83, 0xfe, 0x64, //0x00000f6e cmpl $100, %esi - 0x0f, 0x82, 0x46, 0x00, 0x00, 0x00, //0x00000f71 jb LBB3_6 - //0x00000f77 LBB3_5 - 0x0f, 0xb7, 0xd2, //0x00000f77 movzwl %dx, %edx - 0x48, 0x83, 0xca, 0x01, //0x00000f7a orq $1, %rdx - 0x48, 0x8d, 0x35, 0x6b, 0xb4, 0x00, 0x00, //0x00000f7e leaq $46187(%rip), %rsi /* _Digits+0(%rip) */ - 0x8a, 0x14, 0x32, //0x00000f85 movb (%rdx,%rsi), %dl - 0x89, 0xc6, //0x00000f88 movl %eax, %esi - 0x83, 0xc0, 0x01, //0x00000f8a addl $1, %eax - 0x88, 0x14, 0x37, //0x00000f8d movb %dl, (%rdi,%rsi) - //0x00000f90 LBB3_7 - 0x48, 0x8d, 0x15, 0x59, 0xb4, 0x00, 0x00, //0x00000f90 leaq $46169(%rip), %rdx /* _Digits+0(%rip) */ - 0x8a, 0x14, 0x11, //0x00000f97 movb (%rcx,%rdx), %dl - 0x89, 0xc6, //0x00000f9a movl %eax, %esi - 0x83, 0xc0, 0x01, //0x00000f9c addl $1, %eax - 0x88, 0x14, 0x37, //0x00000f9f movb %dl, (%rdi,%rsi) - //0x00000fa2 LBB3_8 - 0x0f, 0xb7, 0xc9, //0x00000fa2 movzwl %cx, %ecx - 0x48, 0x83, 0xc9, 0x01, //0x00000fa5 orq $1, %rcx - 0x48, 0x8d, 0x15, 0x40, 0xb4, 0x00, 0x00, //0x00000fa9 leaq $46144(%rip), %rdx /* _Digits+0(%rip) */ - 0x8a, 0x0c, 0x11, //0x00000fb0 movb (%rcx,%rdx), %cl - 0x89, 0xc2, //0x00000fb3 movl %eax, %edx - 0x83, 0xc0, 0x01, //0x00000fb5 addl $1, %eax - 0x88, 0x0c, 0x17, //0x00000fb8 movb %cl, (%rdi,%rdx) - 0x5d, //0x00000fbb popq %rbp - 0xc3, //0x00000fbc retq - //0x00000fbd LBB3_6 - 0x31, 0xc0, //0x00000fbd xorl %eax, %eax - 0x83, 0xfe, 0x0a, //0x00000fbf cmpl $10, %esi - 0x0f, 0x83, 0xc8, 0xff, 0xff, 0xff, //0x00000fc2 jae LBB3_7 - 0xe9, 0xd5, 0xff, 0xff, 0xff, //0x00000fc8 jmp LBB3_8 - //0x00000fcd LBB3_12 - 0xc6, 0x07, 0x2d, //0x00000fcd movb $45, (%rdi) - 0x48, 0x83, 0xc7, 0x01, //0x00000fd0 addq $1, %rdi - 0x48, 0xf7, 0xde, //0x00000fd4 negq %rsi - 0xe8, 0x44, 0x00, 0x00, 0x00, //0x00000fd7 callq _u64toa - 0x83, 0xc0, 0x01, //0x00000fdc addl $1, %eax - 0x5d, //0x00000fdf popq %rbp - 0xc3, //0x00000fe0 retq - //0x00000fe1 LBB3_9 - 0x48, 0x81, 0xfe, 0xff, 0xe0, 0xf5, 0x05, //0x00000fe1 cmpq $99999999, %rsi - 0x0f, 0x87, 0x06, 0x00, 0x00, 0x00, //0x00000fe8 ja LBB3_10 - 0x5d, //0x00000fee popq %rbp - 0xe9, 0x1c, 0x01, 0x00, 0x00, //0x00000fef jmp _u32toa_medium - //0x00000ff4 LBB3_10 - 0x48, 0xb8, 0xff, 0xff, 0xc0, 0x6f, 0xf2, 0x86, 0x23, 0x00, //0x00000ff4 movabsq $9999999999999999, %rax - 0x48, 0x39, 0xc6, //0x00000ffe cmpq %rax, %rsi - 0x0f, 0x87, 0x06, 0x00, 0x00, 0x00, //0x00001001 ja LBB3_11 - 0x5d, //0x00001007 popq %rbp - 0xe9, 0x63, 0x02, 0x00, 0x00, //0x00001008 jmp _u64toa_large_sse2 - //0x0000100d LBB3_11 - 0x5d, //0x0000100d popq %rbp - 0xe9, 0xad, 0x03, 0x00, 0x00, //0x0000100e jmp _u64toa_xlarge_sse2 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001013 .p2align 4, 0x90 - //0x00001020 _u64toa - 0x48, 0x81, 0xfe, 0x0f, 0x27, 0x00, 0x00, //0x00001020 cmpq $9999, %rsi - 0x0f, 0x87, 0xa7, 0x00, 0x00, 0x00, //0x00001027 ja LBB4_8 - 0x55, //0x0000102d pushq %rbp - 0x48, 0x89, 0xe5, //0x0000102e movq %rsp, %rbp - 0x0f, 0xb7, 0xc6, //0x00001031 movzwl %si, %eax - 0xc1, 0xe8, 0x02, //0x00001034 shrl $2, %eax - 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x00001037 imull $5243, %eax, %eax - 0xc1, 0xe8, 0x11, //0x0000103d shrl $17, %eax - 0x48, 0x8d, 0x14, 0x00, //0x00001040 leaq (%rax,%rax), %rdx - 0x6b, 0xc0, 0x64, //0x00001044 imull $100, %eax, %eax - 0x89, 0xf1, //0x00001047 movl %esi, %ecx - 0x29, 0xc1, //0x00001049 subl %eax, %ecx - 0x0f, 0xb7, 0xc9, //0x0000104b movzwl %cx, %ecx - 0x48, 0x01, 0xc9, //0x0000104e addq %rcx, %rcx - 0x81, 0xfe, 0xe8, 0x03, 0x00, 0x00, //0x00001051 cmpl $1000, %esi - 0x0f, 0x82, 0x16, 0x00, 0x00, 0x00, //0x00001057 jb LBB4_3 - 0x48, 0x8d, 0x05, 0x8c, 0xb3, 0x00, 0x00, //0x0000105d leaq $45964(%rip), %rax /* _Digits+0(%rip) */ - 0x8a, 0x04, 0x02, //0x00001064 movb (%rdx,%rax), %al - 0x88, 0x07, //0x00001067 movb %al, (%rdi) - 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00001069 movl $1, %eax - 0xe9, 0x0b, 0x00, 0x00, 0x00, //0x0000106e jmp LBB4_4 - //0x00001073 LBB4_3 - 0x31, 0xc0, //0x00001073 xorl %eax, %eax - 0x83, 0xfe, 0x64, //0x00001075 cmpl $100, %esi - 0x0f, 0x82, 0x46, 0x00, 0x00, 0x00, //0x00001078 jb LBB4_5 - //0x0000107e LBB4_4 - 0x0f, 0xb7, 0xd2, //0x0000107e movzwl %dx, %edx - 0x48, 0x83, 0xca, 0x01, //0x00001081 orq $1, %rdx - 0x48, 0x8d, 0x35, 0x64, 0xb3, 0x00, 0x00, //0x00001085 leaq $45924(%rip), %rsi /* _Digits+0(%rip) */ - 0x8a, 0x14, 0x32, //0x0000108c movb (%rdx,%rsi), %dl - 0x89, 0xc6, //0x0000108f movl %eax, %esi - 0x83, 0xc0, 0x01, //0x00001091 addl $1, %eax - 0x88, 0x14, 0x37, //0x00001094 movb %dl, (%rdi,%rsi) - //0x00001097 LBB4_6 - 0x48, 0x8d, 0x15, 0x52, 0xb3, 0x00, 0x00, //0x00001097 leaq $45906(%rip), %rdx /* _Digits+0(%rip) */ - 0x8a, 0x14, 0x11, //0x0000109e movb (%rcx,%rdx), %dl - 0x89, 0xc6, //0x000010a1 movl %eax, %esi - 0x83, 0xc0, 0x01, //0x000010a3 addl $1, %eax - 0x88, 0x14, 0x37, //0x000010a6 movb %dl, (%rdi,%rsi) - //0x000010a9 LBB4_7 - 0x0f, 0xb7, 0xc9, //0x000010a9 movzwl %cx, %ecx - 0x48, 0x83, 0xc9, 0x01, //0x000010ac orq $1, %rcx - 0x48, 0x8d, 0x15, 0x39, 0xb3, 0x00, 0x00, //0x000010b0 leaq $45881(%rip), %rdx /* _Digits+0(%rip) */ - 0x8a, 0x0c, 0x11, //0x000010b7 movb (%rcx,%rdx), %cl - 0x89, 0xc2, //0x000010ba movl %eax, %edx - 0x83, 0xc0, 0x01, //0x000010bc addl $1, %eax - 0x88, 0x0c, 0x17, //0x000010bf movb %cl, (%rdi,%rdx) - 0x5d, //0x000010c2 popq %rbp - 0xc3, //0x000010c3 retq - //0x000010c4 LBB4_5 - 0x31, 0xc0, //0x000010c4 xorl %eax, %eax - 0x83, 0xfe, 0x0a, //0x000010c6 cmpl $10, %esi - 0x0f, 0x83, 0xc8, 0xff, 0xff, 0xff, //0x000010c9 jae LBB4_6 - 0xe9, 0xd5, 0xff, 0xff, 0xff, //0x000010cf jmp LBB4_7 - //0x000010d4 LBB4_8 - 0x48, 0x81, 0xfe, 0xff, 0xe0, 0xf5, 0x05, //0x000010d4 cmpq $99999999, %rsi - 0x0f, 0x87, 0x05, 0x00, 0x00, 0x00, //0x000010db ja LBB4_9 - 0xe9, 0x2a, 0x00, 0x00, 0x00, //0x000010e1 jmp _u32toa_medium - //0x000010e6 LBB4_9 - 0x48, 0xb8, 0xff, 0xff, 0xc0, 0x6f, 0xf2, 0x86, 0x23, 0x00, //0x000010e6 movabsq $9999999999999999, %rax - 0x48, 0x39, 0xc6, //0x000010f0 cmpq %rax, %rsi - 0x0f, 0x87, 0x05, 0x00, 0x00, 0x00, //0x000010f3 ja LBB4_10 - 0xe9, 0x72, 0x01, 0x00, 0x00, //0x000010f9 jmp _u64toa_large_sse2 - //0x000010fe LBB4_10 - 0xe9, 0xbd, 0x02, 0x00, 0x00, //0x000010fe jmp _u64toa_xlarge_sse2 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001103 .p2align 4, 0x90 - //0x00001110 _u32toa_medium - 0x55, //0x00001110 pushq %rbp - 0x48, 0x89, 0xe5, //0x00001111 movq %rsp, %rbp - 0x89, 0xf2, //0x00001114 movl %esi, %edx - 0xb9, 0x59, 0x17, 0xb7, 0xd1, //0x00001116 movl $3518437209, %ecx - 0x48, 0x0f, 0xaf, 0xca, //0x0000111b imulq %rdx, %rcx - 0x48, 0xc1, 0xe9, 0x2d, //0x0000111f shrq $45, %rcx - 0x44, 0x69, 0xc1, 0x10, 0x27, 0x00, 0x00, //0x00001123 imull $10000, %ecx, %r8d - 0x89, 0xf0, //0x0000112a movl %esi, %eax - 0x44, 0x29, 0xc0, //0x0000112c subl %r8d, %eax - 0x4c, 0x69, 0xd2, 0x83, 0xde, 0x1b, 0x43, //0x0000112f imulq $1125899907, %rdx, %r10 - 0x49, 0xc1, 0xea, 0x31, //0x00001136 shrq $49, %r10 - 0x41, 0x83, 0xe2, 0xfe, //0x0000113a andl $-2, %r10d - 0x48, 0x69, 0xd1, 0x1f, 0x85, 0xeb, 0x51, //0x0000113e imulq $1374389535, %rcx, %rdx - 0x48, 0xc1, 0xea, 0x25, //0x00001145 shrq $37, %rdx - 0x6b, 0xd2, 0x64, //0x00001149 imull $100, %edx, %edx - 0x29, 0xd1, //0x0000114c subl %edx, %ecx - 0x48, 0x01, 0xc9, //0x0000114e addq %rcx, %rcx - 0x0f, 0xb7, 0xd0, //0x00001151 movzwl %ax, %edx - 0xc1, 0xea, 0x02, //0x00001154 shrl $2, %edx - 0x69, 0xd2, 0x7b, 0x14, 0x00, 0x00, //0x00001157 imull $5243, %edx, %edx - 0xc1, 0xea, 0x11, //0x0000115d shrl $17, %edx - 0x4c, 0x8d, 0x04, 0x12, //0x00001160 leaq (%rdx,%rdx), %r8 - 0x6b, 0xd2, 0x64, //0x00001164 imull $100, %edx, %edx - 0x29, 0xd0, //0x00001167 subl %edx, %eax - 0x44, 0x0f, 0xb7, 0xc8, //0x00001169 movzwl %ax, %r9d - 0x4d, 0x01, 0xc9, //0x0000116d addq %r9, %r9 - 0x81, 0xfe, 0x80, 0x96, 0x98, 0x00, //0x00001170 cmpl $10000000, %esi - 0x0f, 0x82, 0x17, 0x00, 0x00, 0x00, //0x00001176 jb LBB5_2 - 0x48, 0x8d, 0x05, 0x6d, 0xb2, 0x00, 0x00, //0x0000117c leaq $45677(%rip), %rax /* _Digits+0(%rip) */ - 0x41, 0x8a, 0x04, 0x02, //0x00001183 movb (%r10,%rax), %al - 0x88, 0x07, //0x00001187 movb %al, (%rdi) - 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00001189 movl $1, %eax - 0xe9, 0x0e, 0x00, 0x00, 0x00, //0x0000118e jmp LBB5_3 - //0x00001193 LBB5_2 - 0x31, 0xc0, //0x00001193 xorl %eax, %eax - 0x81, 0xfe, 0x40, 0x42, 0x0f, 0x00, //0x00001195 cmpl $1000000, %esi - 0x0f, 0x82, 0x73, 0x00, 0x00, 0x00, //0x0000119b jb LBB5_4 - //0x000011a1 LBB5_3 - 0x44, 0x89, 0xd2, //0x000011a1 movl %r10d, %edx - 0x48, 0x83, 0xca, 0x01, //0x000011a4 orq $1, %rdx - 0x48, 0x8d, 0x35, 0x41, 0xb2, 0x00, 0x00, //0x000011a8 leaq $45633(%rip), %rsi /* _Digits+0(%rip) */ - 0x8a, 0x14, 0x32, //0x000011af movb (%rdx,%rsi), %dl - 0x89, 0xc6, //0x000011b2 movl %eax, %esi - 0x83, 0xc0, 0x01, //0x000011b4 addl $1, %eax - 0x88, 0x14, 0x37, //0x000011b7 movb %dl, (%rdi,%rsi) - //0x000011ba LBB5_5 - 0x48, 0x8d, 0x15, 0x2f, 0xb2, 0x00, 0x00, //0x000011ba leaq $45615(%rip), %rdx /* _Digits+0(%rip) */ - 0x8a, 0x14, 0x11, //0x000011c1 movb (%rcx,%rdx), %dl - 0x89, 0xc6, //0x000011c4 movl %eax, %esi - 0x83, 0xc0, 0x01, //0x000011c6 addl $1, %eax - 0x88, 0x14, 0x37, //0x000011c9 movb %dl, (%rdi,%rsi) - //0x000011cc LBB5_6 - 0x89, 0xc9, //0x000011cc movl %ecx, %ecx - 0x48, 0x83, 0xc9, 0x01, //0x000011ce orq $1, %rcx - 0x48, 0x8d, 0x15, 0x17, 0xb2, 0x00, 0x00, //0x000011d2 leaq $45591(%rip), %rdx /* _Digits+0(%rip) */ - 0x8a, 0x0c, 0x11, //0x000011d9 movb (%rcx,%rdx), %cl - 0x89, 0xc6, //0x000011dc movl %eax, %esi - 0x88, 0x0c, 0x37, //0x000011de movb %cl, (%rdi,%rsi) - 0x41, 0x8a, 0x0c, 0x10, //0x000011e1 movb (%r8,%rdx), %cl - 0x88, 0x4c, 0x37, 0x01, //0x000011e5 movb %cl, $1(%rdi,%rsi) - 0x41, 0x0f, 0xb7, 0xc8, //0x000011e9 movzwl %r8w, %ecx - 0x48, 0x83, 0xc9, 0x01, //0x000011ed orq $1, %rcx - 0x8a, 0x0c, 0x11, //0x000011f1 movb (%rcx,%rdx), %cl - 0x88, 0x4c, 0x37, 0x02, //0x000011f4 movb %cl, $2(%rdi,%rsi) - 0x41, 0x8a, 0x0c, 0x11, //0x000011f8 movb (%r9,%rdx), %cl - 0x88, 0x4c, 0x37, 0x03, //0x000011fc movb %cl, $3(%rdi,%rsi) - 0x41, 0x0f, 0xb7, 0xc9, //0x00001200 movzwl %r9w, %ecx - 0x48, 0x83, 0xc9, 0x01, //0x00001204 orq $1, %rcx - 0x8a, 0x0c, 0x11, //0x00001208 movb (%rcx,%rdx), %cl - 0x83, 0xc0, 0x05, //0x0000120b addl $5, %eax - 0x88, 0x4c, 0x37, 0x04, //0x0000120e movb %cl, $4(%rdi,%rsi) - 0x5d, //0x00001212 popq %rbp - 0xc3, //0x00001213 retq - //0x00001214 LBB5_4 - 0x31, 0xc0, //0x00001214 xorl %eax, %eax - 0x81, 0xfe, 0xa0, 0x86, 0x01, 0x00, //0x00001216 cmpl $100000, %esi - 0x0f, 0x83, 0x98, 0xff, 0xff, 0xff, //0x0000121c jae LBB5_5 - 0xe9, 0xa5, 0xff, 0xff, 0xff, //0x00001222 jmp LBB5_6 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001227 .p2align 4, 0x00 - //0x00001230 LCPI6_0 - 0x59, 0x17, 0xb7, 0xd1, 0x00, 0x00, 0x00, 0x00, //0x00001230 .quad 3518437209 - 0x59, 0x17, 0xb7, 0xd1, 0x00, 0x00, 0x00, 0x00, //0x00001238 .quad 3518437209 - //0x00001240 LCPI6_3 - 0x0a, 0x00, //0x00001240 .word 10 - 0x0a, 0x00, //0x00001242 .word 10 - 0x0a, 0x00, //0x00001244 .word 10 - 0x0a, 0x00, //0x00001246 .word 10 - 0x0a, 0x00, //0x00001248 .word 10 - 0x0a, 0x00, //0x0000124a .word 10 - 0x0a, 0x00, //0x0000124c .word 10 - 0x0a, 0x00, //0x0000124e .word 10 - //0x00001250 LCPI6_4 - 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, //0x00001250 QUAD $0x3030303030303030; QUAD $0x3030303030303030 // .space 16, '0000000000000000' - //0x00001260 .p2align 3, 0x00 - //0x00001260 LCPI6_1 - 0xc5, 0x20, 0x7b, 0x14, 0x34, 0x33, 0x00, 0x80, //0x00001260 .quad -9223315738079846203 - //0x00001268 LCPI6_2 - 0x80, 0x00, 0x00, 0x08, 0x00, 0x20, 0x00, 0x80, //0x00001268 .quad -9223336852348469120 - //0x00001270 .p2align 4, 0x90 - //0x00001270 _u64toa_large_sse2 - 0x55, //0x00001270 pushq %rbp - 0x48, 0x89, 0xe5, //0x00001271 movq %rsp, %rbp - 0x48, 0xb9, 0xfd, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x00001274 movabsq $-6067343680855748867, %rcx - 0x48, 0x89, 0xf0, //0x0000127e movq %rsi, %rax - 0x48, 0xf7, 0xe1, //0x00001281 mulq %rcx - 0x48, 0xc1, 0xea, 0x1a, //0x00001284 shrq $26, %rdx - 0x69, 0xc2, 0x00, 0xe1, 0xf5, 0x05, //0x00001288 imull $100000000, %edx, %eax - 0x29, 0xc6, //0x0000128e subl %eax, %esi - 0xc5, 0xf9, 0x6e, 0xc2, //0x00001290 vmovd %edx, %xmm0 - 0xc5, 0xf9, 0x6f, 0x0d, 0x94, 0xff, 0xff, 0xff, //0x00001294 vmovdqa $-108(%rip), %xmm1 /* LCPI6_0+0(%rip) */ - 0xc5, 0xf9, 0xf4, 0xd1, //0x0000129c vpmuludq %xmm1, %xmm0, %xmm2 - 0xc5, 0xe9, 0x73, 0xd2, 0x2d, //0x000012a0 vpsrlq $45, %xmm2, %xmm2 - 0xb8, 0x10, 0x27, 0x00, 0x00, //0x000012a5 movl $10000, %eax - 0xc4, 0xe1, 0xf9, 0x6e, 0xd8, //0x000012aa vmovq %rax, %xmm3 - 0xc5, 0xe9, 0xf4, 0xe3, //0x000012af vpmuludq %xmm3, %xmm2, %xmm4 - 0xc5, 0xf9, 0xfa, 0xc4, //0x000012b3 vpsubd %xmm4, %xmm0, %xmm0 - 0xc5, 0xe9, 0x61, 0xc0, //0x000012b7 vpunpcklwd %xmm0, %xmm2, %xmm0 - 0xc5, 0xf9, 0x73, 0xf0, 0x02, //0x000012bb vpsllq $2, %xmm0, %xmm0 - 0xc5, 0xfb, 0x70, 0xc0, 0x50, //0x000012c0 vpshuflw $80, %xmm0, %xmm0 - 0xc5, 0xf9, 0x70, 0xc0, 0x50, //0x000012c5 vpshufd $80, %xmm0, %xmm0 - 0xc5, 0xfb, 0x12, 0x15, 0x8e, 0xff, 0xff, 0xff, //0x000012ca vmovddup $-114(%rip), %xmm2 /* LCPI6_1+0(%rip) */ - 0xc5, 0xf9, 0xe4, 0xc2, //0x000012d2 vpmulhuw %xmm2, %xmm0, %xmm0 - 0xc5, 0xfb, 0x12, 0x25, 0x8a, 0xff, 0xff, 0xff, //0x000012d6 vmovddup $-118(%rip), %xmm4 /* LCPI6_2+0(%rip) */ - 0xc5, 0xf9, 0xe4, 0xc4, //0x000012de vpmulhuw %xmm4, %xmm0, %xmm0 - 0xc5, 0xf9, 0x6f, 0x2d, 0x56, 0xff, 0xff, 0xff, //0x000012e2 vmovdqa $-170(%rip), %xmm5 /* LCPI6_3+0(%rip) */ - 0xc5, 0xf9, 0xd5, 0xf5, //0x000012ea vpmullw %xmm5, %xmm0, %xmm6 - 0xc5, 0xc9, 0x73, 0xf6, 0x10, //0x000012ee vpsllq $16, %xmm6, %xmm6 - 0xc5, 0xf9, 0xf9, 0xc6, //0x000012f3 vpsubw %xmm6, %xmm0, %xmm0 - 0xc5, 0xf9, 0x6e, 0xf6, //0x000012f7 vmovd %esi, %xmm6 - 0xc5, 0xc9, 0xf4, 0xc9, //0x000012fb vpmuludq %xmm1, %xmm6, %xmm1 - 0xc5, 0xf1, 0x73, 0xd1, 0x2d, //0x000012ff vpsrlq $45, %xmm1, %xmm1 - 0xc5, 0xf1, 0xf4, 0xdb, //0x00001304 vpmuludq %xmm3, %xmm1, %xmm3 - 0xc5, 0xc9, 0xfa, 0xdb, //0x00001308 vpsubd %xmm3, %xmm6, %xmm3 - 0xc5, 0xf1, 0x61, 0xcb, //0x0000130c vpunpcklwd %xmm3, %xmm1, %xmm1 - 0xc5, 0xf1, 0x73, 0xf1, 0x02, //0x00001310 vpsllq $2, %xmm1, %xmm1 - 0xc5, 0xfb, 0x70, 0xc9, 0x50, //0x00001315 vpshuflw $80, %xmm1, %xmm1 - 0xc5, 0xf9, 0x70, 0xc9, 0x50, //0x0000131a vpshufd $80, %xmm1, %xmm1 - 0xc5, 0xf1, 0xe4, 0xca, //0x0000131f vpmulhuw %xmm2, %xmm1, %xmm1 - 0xc5, 0xf1, 0xe4, 0xcc, //0x00001323 vpmulhuw %xmm4, %xmm1, %xmm1 - 0xc5, 0xf1, 0xd5, 0xd5, //0x00001327 vpmullw %xmm5, %xmm1, %xmm2 - 0xc5, 0xe9, 0x73, 0xf2, 0x10, //0x0000132b vpsllq $16, %xmm2, %xmm2 - 0xc5, 0xf1, 0xf9, 0xca, //0x00001330 vpsubw %xmm2, %xmm1, %xmm1 - 0xc5, 0xf9, 0x67, 0xc1, //0x00001334 vpackuswb %xmm1, %xmm0, %xmm0 - 0xc5, 0xf9, 0xfc, 0x0d, 0x10, 0xff, 0xff, 0xff, //0x00001338 vpaddb $-240(%rip), %xmm0, %xmm1 /* LCPI6_4+0(%rip) */ - 0xc5, 0xe9, 0xef, 0xd2, //0x00001340 vpxor %xmm2, %xmm2, %xmm2 - 0xc5, 0xf9, 0x74, 0xc2, //0x00001344 vpcmpeqb %xmm2, %xmm0, %xmm0 - 0xc5, 0xf9, 0xd7, 0xc0, //0x00001348 vpmovmskb %xmm0, %eax - 0xf7, 0xd0, //0x0000134c notl %eax - 0x0d, 0x00, 0x80, 0x00, 0x00, //0x0000134e orl $32768, %eax - 0x0f, 0xbc, 0xc8, //0x00001353 bsfl %eax, %ecx - 0xb8, 0x10, 0x00, 0x00, 0x00, //0x00001356 movl $16, %eax - 0x29, 0xc8, //0x0000135b subl %ecx, %eax - 0x48, 0xc1, 0xe1, 0x04, //0x0000135d shlq $4, %rcx - 0x48, 0x8d, 0x15, 0xe8, 0xd7, 0x00, 0x00, //0x00001361 leaq $55272(%rip), %rdx /* _VecShiftShuffles+0(%rip) */ - 0xc4, 0xe2, 0x71, 0x00, 0x04, 0x11, //0x00001368 vpshufb (%rcx,%rdx), %xmm1, %xmm0 - 0xc5, 0xfa, 0x7f, 0x07, //0x0000136e vmovdqu %xmm0, (%rdi) - 0x5d, //0x00001372 popq %rbp - 0xc3, //0x00001373 retq - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001374 .p2align 4, 0x00 - //0x00001380 LCPI7_0 - 0x59, 0x17, 0xb7, 0xd1, 0x00, 0x00, 0x00, 0x00, //0x00001380 .quad 3518437209 - 0x59, 0x17, 0xb7, 0xd1, 0x00, 0x00, 0x00, 0x00, //0x00001388 .quad 3518437209 - //0x00001390 LCPI7_3 - 0x0a, 0x00, //0x00001390 .word 10 - 0x0a, 0x00, //0x00001392 .word 10 - 0x0a, 0x00, //0x00001394 .word 10 - 0x0a, 0x00, //0x00001396 .word 10 - 0x0a, 0x00, //0x00001398 .word 10 - 0x0a, 0x00, //0x0000139a .word 10 - 0x0a, 0x00, //0x0000139c .word 10 - 0x0a, 0x00, //0x0000139e .word 10 - //0x000013a0 LCPI7_4 - 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, //0x000013a0 QUAD $0x3030303030303030; QUAD $0x3030303030303030 // .space 16, '0000000000000000' - //0x000013b0 .p2align 3, 0x00 - //0x000013b0 LCPI7_1 - 0xc5, 0x20, 0x7b, 0x14, 0x34, 0x33, 0x00, 0x80, //0x000013b0 .quad -9223315738079846203 - //0x000013b8 LCPI7_2 - 0x80, 0x00, 0x00, 0x08, 0x00, 0x20, 0x00, 0x80, //0x000013b8 .quad -9223336852348469120 - //0x000013c0 .p2align 4, 0x90 - //0x000013c0 _u64toa_xlarge_sse2 - 0x55, //0x000013c0 pushq %rbp - 0x48, 0x89, 0xe5, //0x000013c1 movq %rsp, %rbp - 0x48, 0xb9, 0x57, 0x78, 0x13, 0xb1, 0x2f, 0x65, 0xa5, 0x39, //0x000013c4 movabsq $4153837486827862103, %rcx - 0x48, 0x89, 0xf0, //0x000013ce movq %rsi, %rax - 0x48, 0xf7, 0xe1, //0x000013d1 mulq %rcx - 0x48, 0xc1, 0xea, 0x33, //0x000013d4 shrq $51, %rdx - 0x48, 0xb8, 0x00, 0x00, 0xc1, 0x6f, 0xf2, 0x86, 0x23, 0x00, //0x000013d8 movabsq $10000000000000000, %rax - 0x48, 0x0f, 0xaf, 0xc2, //0x000013e2 imulq %rdx, %rax - 0x48, 0x29, 0xc6, //0x000013e6 subq %rax, %rsi - 0x83, 0xfa, 0x09, //0x000013e9 cmpl $9, %edx - 0x0f, 0x87, 0x0f, 0x00, 0x00, 0x00, //0x000013ec ja LBB7_2 - 0x80, 0xc2, 0x30, //0x000013f2 addb $48, %dl - 0x88, 0x17, //0x000013f5 movb %dl, (%rdi) - 0xb9, 0x01, 0x00, 0x00, 0x00, //0x000013f7 movl $1, %ecx - 0xe9, 0xa5, 0x00, 0x00, 0x00, //0x000013fc jmp LBB7_7 - //0x00001401 LBB7_2 - 0x83, 0xfa, 0x63, //0x00001401 cmpl $99, %edx - 0x0f, 0x87, 0x1a, 0x00, 0x00, 0x00, //0x00001404 ja LBB7_4 - 0x89, 0xd0, //0x0000140a movl %edx, %eax - 0x48, 0x8d, 0x0d, 0xdd, 0xaf, 0x00, 0x00, //0x0000140c leaq $45021(%rip), %rcx /* _Digits+0(%rip) */ - 0x0f, 0xb7, 0x04, 0x41, //0x00001413 movzwl (%rcx,%rax,2), %eax - 0x66, 0x89, 0x07, //0x00001417 movw %ax, (%rdi) - 0xb9, 0x02, 0x00, 0x00, 0x00, //0x0000141a movl $2, %ecx - 0xe9, 0x82, 0x00, 0x00, 0x00, //0x0000141f jmp LBB7_7 - //0x00001424 LBB7_4 - 0x89, 0xd0, //0x00001424 movl %edx, %eax - 0xc1, 0xe8, 0x02, //0x00001426 shrl $2, %eax - 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x00001429 imull $5243, %eax, %eax - 0xc1, 0xe8, 0x11, //0x0000142f shrl $17, %eax - 0x81, 0xfa, 0xe7, 0x03, 0x00, 0x00, //0x00001432 cmpl $999, %edx - 0x0f, 0x87, 0x37, 0x00, 0x00, 0x00, //0x00001438 ja LBB7_6 - 0x83, 0xc0, 0x30, //0x0000143e addl $48, %eax - 0x88, 0x07, //0x00001441 movb %al, (%rdi) - 0x0f, 0xb7, 0xc2, //0x00001443 movzwl %dx, %eax - 0x89, 0xc1, //0x00001446 movl %eax, %ecx - 0xc1, 0xe9, 0x02, //0x00001448 shrl $2, %ecx - 0x69, 0xc9, 0x7b, 0x14, 0x00, 0x00, //0x0000144b imull $5243, %ecx, %ecx - 0xc1, 0xe9, 0x11, //0x00001451 shrl $17, %ecx - 0x6b, 0xc9, 0x64, //0x00001454 imull $100, %ecx, %ecx - 0x29, 0xc8, //0x00001457 subl %ecx, %eax - 0x0f, 0xb7, 0xc0, //0x00001459 movzwl %ax, %eax - 0x48, 0x8d, 0x0d, 0x8d, 0xaf, 0x00, 0x00, //0x0000145c leaq $44941(%rip), %rcx /* _Digits+0(%rip) */ - 0x0f, 0xb7, 0x04, 0x41, //0x00001463 movzwl (%rcx,%rax,2), %eax - 0x66, 0x89, 0x47, 0x01, //0x00001467 movw %ax, $1(%rdi) - 0xb9, 0x03, 0x00, 0x00, 0x00, //0x0000146b movl $3, %ecx - 0xe9, 0x31, 0x00, 0x00, 0x00, //0x00001470 jmp LBB7_7 - //0x00001475 LBB7_6 - 0x6b, 0xc8, 0x64, //0x00001475 imull $100, %eax, %ecx - 0x29, 0xca, //0x00001478 subl %ecx, %edx - 0x0f, 0xb7, 0xc0, //0x0000147a movzwl %ax, %eax - 0x48, 0x8d, 0x0d, 0x6c, 0xaf, 0x00, 0x00, //0x0000147d leaq $44908(%rip), %rcx /* _Digits+0(%rip) */ - 0x0f, 0xb7, 0x04, 0x41, //0x00001484 movzwl (%rcx,%rax,2), %eax - 0x66, 0x89, 0x07, //0x00001488 movw %ax, (%rdi) - 0x0f, 0xb7, 0xc2, //0x0000148b movzwl %dx, %eax - 0x8a, 0x14, 0x41, //0x0000148e movb (%rcx,%rax,2), %dl - 0x48, 0x01, 0xc0, //0x00001491 addq %rax, %rax - 0x88, 0x57, 0x02, //0x00001494 movb %dl, $2(%rdi) - 0x0f, 0xb7, 0xc0, //0x00001497 movzwl %ax, %eax - 0x8a, 0x44, 0x08, 0x01, //0x0000149a movb $1(%rax,%rcx), %al - 0x88, 0x47, 0x03, //0x0000149e movb %al, $3(%rdi) - 0xb9, 0x04, 0x00, 0x00, 0x00, //0x000014a1 movl $4, %ecx - //0x000014a6 LBB7_7 - 0x48, 0xba, 0xfd, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x000014a6 movabsq $-6067343680855748867, %rdx - 0x48, 0x89, 0xf0, //0x000014b0 movq %rsi, %rax - 0x48, 0xf7, 0xe2, //0x000014b3 mulq %rdx - 0x48, 0xc1, 0xea, 0x1a, //0x000014b6 shrq $26, %rdx - 0xc5, 0xf9, 0x6e, 0xc2, //0x000014ba vmovd %edx, %xmm0 - 0xc5, 0xf9, 0x6f, 0x0d, 0xba, 0xfe, 0xff, 0xff, //0x000014be vmovdqa $-326(%rip), %xmm1 /* LCPI7_0+0(%rip) */ - 0xc5, 0xf9, 0xf4, 0xd1, //0x000014c6 vpmuludq %xmm1, %xmm0, %xmm2 - 0xc5, 0xe9, 0x73, 0xd2, 0x2d, //0x000014ca vpsrlq $45, %xmm2, %xmm2 - 0xb8, 0x10, 0x27, 0x00, 0x00, //0x000014cf movl $10000, %eax - 0xc4, 0xe1, 0xf9, 0x6e, 0xd8, //0x000014d4 vmovq %rax, %xmm3 - 0xc5, 0xe9, 0xf4, 0xe3, //0x000014d9 vpmuludq %xmm3, %xmm2, %xmm4 - 0xc5, 0xf9, 0xfa, 0xc4, //0x000014dd vpsubd %xmm4, %xmm0, %xmm0 - 0xc5, 0xe9, 0x61, 0xc0, //0x000014e1 vpunpcklwd %xmm0, %xmm2, %xmm0 - 0xc5, 0xf9, 0x73, 0xf0, 0x02, //0x000014e5 vpsllq $2, %xmm0, %xmm0 - 0xc5, 0xfb, 0x70, 0xc0, 0x50, //0x000014ea vpshuflw $80, %xmm0, %xmm0 - 0xc5, 0xf9, 0x70, 0xc0, 0x50, //0x000014ef vpshufd $80, %xmm0, %xmm0 - 0xc5, 0xfb, 0x12, 0x15, 0xb4, 0xfe, 0xff, 0xff, //0x000014f4 vmovddup $-332(%rip), %xmm2 /* LCPI7_1+0(%rip) */ - 0xc5, 0xf9, 0xe4, 0xc2, //0x000014fc vpmulhuw %xmm2, %xmm0, %xmm0 - 0xc5, 0xfb, 0x12, 0x25, 0xb0, 0xfe, 0xff, 0xff, //0x00001500 vmovddup $-336(%rip), %xmm4 /* LCPI7_2+0(%rip) */ - 0xc5, 0xf9, 0xe4, 0xc4, //0x00001508 vpmulhuw %xmm4, %xmm0, %xmm0 - 0xc5, 0xf9, 0x6f, 0x2d, 0x7c, 0xfe, 0xff, 0xff, //0x0000150c vmovdqa $-388(%rip), %xmm5 /* LCPI7_3+0(%rip) */ - 0xc5, 0xf9, 0xd5, 0xf5, //0x00001514 vpmullw %xmm5, %xmm0, %xmm6 - 0xc5, 0xc9, 0x73, 0xf6, 0x10, //0x00001518 vpsllq $16, %xmm6, %xmm6 - 0xc5, 0xf9, 0xf9, 0xc6, //0x0000151d vpsubw %xmm6, %xmm0, %xmm0 - 0x69, 0xc2, 0x00, 0xe1, 0xf5, 0x05, //0x00001521 imull $100000000, %edx, %eax - 0x29, 0xc6, //0x00001527 subl %eax, %esi - 0xc5, 0xf9, 0x6e, 0xf6, //0x00001529 vmovd %esi, %xmm6 - 0xc5, 0xc9, 0xf4, 0xc9, //0x0000152d vpmuludq %xmm1, %xmm6, %xmm1 - 0xc5, 0xf1, 0x73, 0xd1, 0x2d, //0x00001531 vpsrlq $45, %xmm1, %xmm1 - 0xc5, 0xf1, 0xf4, 0xdb, //0x00001536 vpmuludq %xmm3, %xmm1, %xmm3 - 0xc5, 0xc9, 0xfa, 0xdb, //0x0000153a vpsubd %xmm3, %xmm6, %xmm3 - 0xc5, 0xf1, 0x61, 0xcb, //0x0000153e vpunpcklwd %xmm3, %xmm1, %xmm1 - 0xc5, 0xf1, 0x73, 0xf1, 0x02, //0x00001542 vpsllq $2, %xmm1, %xmm1 - 0xc5, 0xfb, 0x70, 0xc9, 0x50, //0x00001547 vpshuflw $80, %xmm1, %xmm1 - 0xc5, 0xf9, 0x70, 0xc9, 0x50, //0x0000154c vpshufd $80, %xmm1, %xmm1 - 0xc5, 0xf1, 0xe4, 0xca, //0x00001551 vpmulhuw %xmm2, %xmm1, %xmm1 - 0xc5, 0xf1, 0xe4, 0xcc, //0x00001555 vpmulhuw %xmm4, %xmm1, %xmm1 - 0xc5, 0xf1, 0xd5, 0xd5, //0x00001559 vpmullw %xmm5, %xmm1, %xmm2 - 0xc5, 0xe9, 0x73, 0xf2, 0x10, //0x0000155d vpsllq $16, %xmm2, %xmm2 - 0xc5, 0xf1, 0xf9, 0xca, //0x00001562 vpsubw %xmm2, %xmm1, %xmm1 - 0xc5, 0xf9, 0x67, 0xc1, //0x00001566 vpackuswb %xmm1, %xmm0, %xmm0 - 0xc5, 0xf9, 0xfc, 0x05, 0x2e, 0xfe, 0xff, 0xff, //0x0000156a vpaddb $-466(%rip), %xmm0, %xmm0 /* LCPI7_4+0(%rip) */ - 0x89, 0xc8, //0x00001572 movl %ecx, %eax - 0xc5, 0xfa, 0x7f, 0x04, 0x07, //0x00001574 vmovdqu %xmm0, (%rdi,%rax) - 0x83, 0xc9, 0x10, //0x00001579 orl $16, %ecx - 0x89, 0xc8, //0x0000157c movl %ecx, %eax - 0x5d, //0x0000157e popq %rbp - 0xc3, //0x0000157f retq - //0x00001580 .p2align 4, 0x00 - //0x00001580 LCPI8_0 - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x00001580 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' - //0x00001590 LCPI8_1 - 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, //0x00001590 QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' - //0x000015a0 LCPI8_2 - 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x000015a0 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' - //0x000015b0 .p2align 4, 0x90 - //0x000015b0 _quote - 0x55, //0x000015b0 pushq %rbp - 0x48, 0x89, 0xe5, //0x000015b1 movq %rsp, %rbp - 0x41, 0x57, //0x000015b4 pushq %r15 - 0x41, 0x56, //0x000015b6 pushq %r14 - 0x41, 0x55, //0x000015b8 pushq %r13 - 0x41, 0x54, //0x000015ba pushq %r12 - 0x53, //0x000015bc pushq %rbx - 0x48, 0x83, 0xec, 0x20, //0x000015bd subq $32, %rsp - 0x49, 0x89, 0xcb, //0x000015c1 movq %rcx, %r11 - 0x49, 0x89, 0xd7, //0x000015c4 movq %rdx, %r15 - 0x4c, 0x8b, 0x11, //0x000015c7 movq (%rcx), %r10 - 0x41, 0xf6, 0xc0, 0x01, //0x000015ca testb $1, %r8b - 0x48, 0x89, 0xf0, //0x000015ce movq %rsi, %rax - 0x48, 0x8d, 0x0d, 0x08, 0xd6, 0x00, 0x00, //0x000015d1 leaq $54792(%rip), %rcx /* __SingleQuoteTab+0(%rip) */ - 0x4c, 0x8d, 0x25, 0x01, 0xe6, 0x00, 0x00, //0x000015d8 leaq $58881(%rip), %r12 /* __DoubleQuoteTab+0(%rip) */ - 0x4c, 0x0f, 0x44, 0xe1, //0x000015df cmoveq %rcx, %r12 - 0x48, 0x8d, 0x0c, 0xf5, 0x00, 0x00, 0x00, 0x00, //0x000015e3 leaq (,%rsi,8), %rcx - 0x49, 0x39, 0xca, //0x000015eb cmpq %rcx, %r10 - 0x0f, 0x8d, 0xec, 0x03, 0x00, 0x00, //0x000015ee jge LBB8_56 - 0x4d, 0x89, 0xfe, //0x000015f4 movq %r15, %r14 - 0x49, 0x89, 0xf9, //0x000015f7 movq %rdi, %r9 - 0x48, 0x85, 0xc0, //0x000015fa testq %rax, %rax - 0x0f, 0x84, 0xcc, 0x03, 0x00, 0x00, //0x000015fd je LBB8_80 - 0x4c, 0x89, 0x5d, 0xc8, //0x00001603 movq %r11, $-56(%rbp) - 0xc5, 0xf9, 0x6f, 0x05, 0x71, 0xff, 0xff, 0xff, //0x00001607 vmovdqa $-143(%rip), %xmm0 /* LCPI8_0+0(%rip) */ - 0xc5, 0xf9, 0x6f, 0x0d, 0x79, 0xff, 0xff, 0xff, //0x0000160f vmovdqa $-135(%rip), %xmm1 /* LCPI8_1+0(%rip) */ - 0xc5, 0xf9, 0x6f, 0x15, 0x81, 0xff, 0xff, 0xff, //0x00001617 vmovdqa $-127(%rip), %xmm2 /* LCPI8_2+0(%rip) */ - 0xc5, 0xe1, 0x76, 0xdb, //0x0000161f vpcmpeqd %xmm3, %xmm3, %xmm3 - 0x48, 0x89, 0xf9, //0x00001623 movq %rdi, %rcx - 0x4c, 0x89, 0x7d, 0xd0, //0x00001626 movq %r15, $-48(%rbp) - 0x4d, 0x89, 0xfe, //0x0000162a movq %r15, %r14 - 0x4c, 0x89, 0x65, 0xc0, //0x0000162d movq %r12, $-64(%rbp) - //0x00001631 LBB8_3 - 0x49, 0x89, 0xc9, //0x00001631 movq %rcx, %r9 - 0x48, 0x83, 0xf8, 0x10, //0x00001634 cmpq $16, %rax - 0x0f, 0x9d, 0xc3, //0x00001638 setge %bl - 0x4d, 0x89, 0xd4, //0x0000163b movq %r10, %r12 - 0x4d, 0x89, 0xf7, //0x0000163e movq %r14, %r15 - 0x49, 0x89, 0xc3, //0x00001641 movq %rax, %r11 - 0x49, 0x89, 0xcd, //0x00001644 movq %rcx, %r13 - 0x0f, 0x8c, 0x77, 0x00, 0x00, 0x00, //0x00001647 jl LBB8_10 - 0x49, 0x83, 0xfa, 0x10, //0x0000164d cmpq $16, %r10 - 0x0f, 0x8c, 0x6d, 0x00, 0x00, 0x00, //0x00001651 jl LBB8_10 - 0x45, 0x31, 0xff, //0x00001657 xorl %r15d, %r15d - 0x48, 0x89, 0xc1, //0x0000165a movq %rax, %rcx - 0x4c, 0x89, 0xd2, //0x0000165d movq %r10, %rdx - //0x00001660 .p2align 4, 0x90 - //0x00001660 LBB8_6 - 0xc4, 0x81, 0x7a, 0x6f, 0x24, 0x39, //0x00001660 vmovdqu (%r9,%r15), %xmm4 - 0xc5, 0xf9, 0x64, 0xec, //0x00001666 vpcmpgtb %xmm4, %xmm0, %xmm5 - 0xc5, 0xd9, 0x74, 0xf1, //0x0000166a vpcmpeqb %xmm1, %xmm4, %xmm6 - 0xc5, 0xd9, 0x74, 0xfa, //0x0000166e vpcmpeqb %xmm2, %xmm4, %xmm7 - 0xc5, 0xc1, 0xeb, 0xf6, //0x00001672 vpor %xmm6, %xmm7, %xmm6 - 0xc4, 0x81, 0x7a, 0x7f, 0x24, 0x3e, //0x00001676 vmovdqu %xmm4, (%r14,%r15) - 0xc5, 0xd9, 0x64, 0xe3, //0x0000167c vpcmpgtb %xmm3, %xmm4, %xmm4 - 0xc5, 0xd1, 0xdb, 0xe4, //0x00001680 vpand %xmm4, %xmm5, %xmm4 - 0xc5, 0xc9, 0xeb, 0xe4, //0x00001684 vpor %xmm4, %xmm6, %xmm4 - 0xc5, 0xf9, 0xd7, 0xf4, //0x00001688 vpmovmskb %xmm4, %esi - 0x85, 0xf6, //0x0000168c testl %esi, %esi - 0x0f, 0x85, 0x27, 0x01, 0x00, 0x00, //0x0000168e jne LBB8_23 - 0x4c, 0x8d, 0x59, 0xf0, //0x00001694 leaq $-16(%rcx), %r11 - 0x4c, 0x8d, 0x62, 0xf0, //0x00001698 leaq $-16(%rdx), %r12 - 0x49, 0x83, 0xc7, 0x10, //0x0000169c addq $16, %r15 - 0x48, 0x83, 0xf9, 0x20, //0x000016a0 cmpq $32, %rcx - 0x0f, 0x9d, 0xc3, //0x000016a4 setge %bl - 0x0f, 0x8c, 0x10, 0x00, 0x00, 0x00, //0x000016a7 jl LBB8_9 - 0x4c, 0x89, 0xd9, //0x000016ad movq %r11, %rcx - 0x48, 0x83, 0xfa, 0x1f, //0x000016b0 cmpq $31, %rdx - 0x4c, 0x89, 0xe2, //0x000016b4 movq %r12, %rdx - 0x0f, 0x8f, 0xa3, 0xff, 0xff, 0xff, //0x000016b7 jg LBB8_6 - //0x000016bd LBB8_9 - 0x4f, 0x8d, 0x2c, 0x39, //0x000016bd leaq (%r9,%r15), %r13 - 0x4d, 0x01, 0xf7, //0x000016c1 addq %r14, %r15 - //0x000016c4 LBB8_10 - 0x84, 0xdb, //0x000016c4 testb %bl, %bl - 0x0f, 0x84, 0x67, 0x00, 0x00, 0x00, //0x000016c6 je LBB8_14 - 0xc4, 0xc1, 0x7a, 0x6f, 0x65, 0x00, //0x000016cc vmovdqu (%r13), %xmm4 - 0xc5, 0xf9, 0x64, 0xec, //0x000016d2 vpcmpgtb %xmm4, %xmm0, %xmm5 - 0xc5, 0xd9, 0x74, 0xf1, //0x000016d6 vpcmpeqb %xmm1, %xmm4, %xmm6 - 0xc5, 0xd9, 0x74, 0xfa, //0x000016da vpcmpeqb %xmm2, %xmm4, %xmm7 - 0xc5, 0xc1, 0xeb, 0xf6, //0x000016de vpor %xmm6, %xmm7, %xmm6 - 0xc5, 0xd9, 0x64, 0xfb, //0x000016e2 vpcmpgtb %xmm3, %xmm4, %xmm7 - 0xc5, 0xd1, 0xdb, 0xef, //0x000016e6 vpand %xmm7, %xmm5, %xmm5 - 0xc5, 0xc9, 0xeb, 0xed, //0x000016ea vpor %xmm5, %xmm6, %xmm5 - 0xc5, 0xf9, 0xd7, 0xcd, //0x000016ee vpmovmskb %xmm5, %ecx - 0x81, 0xc9, 0x00, 0x00, 0x01, 0x00, //0x000016f2 orl $65536, %ecx - 0x44, 0x0f, 0xbc, 0xd9, //0x000016f8 bsfl %ecx, %r11d - 0xc4, 0xe1, 0xf9, 0x7e, 0xe1, //0x000016fc vmovq %xmm4, %rcx - 0x4d, 0x39, 0xdc, //0x00001701 cmpq %r11, %r12 - 0x0f, 0x8d, 0xc1, 0x00, 0x00, 0x00, //0x00001704 jge LBB8_24 - 0x49, 0x83, 0xfc, 0x08, //0x0000170a cmpq $8, %r12 - 0x0f, 0x82, 0xf6, 0x00, 0x00, 0x00, //0x0000170e jb LBB8_28 - 0x49, 0x89, 0x0f, //0x00001714 movq %rcx, (%r15) - 0x4d, 0x8d, 0x5d, 0x08, //0x00001717 leaq $8(%r13), %r11 - 0x49, 0x83, 0xc7, 0x08, //0x0000171b addq $8, %r15 - 0x49, 0x8d, 0x5c, 0x24, 0xf8, //0x0000171f leaq $-8(%r12), %rbx - 0x48, 0x83, 0xfb, 0x04, //0x00001724 cmpq $4, %rbx - 0x0f, 0x8d, 0xec, 0x00, 0x00, 0x00, //0x00001728 jge LBB8_29 - 0xe9, 0xf9, 0x00, 0x00, 0x00, //0x0000172e jmp LBB8_30 - //0x00001733 LBB8_14 - 0x4d, 0x85, 0xdb, //0x00001733 testq %r11, %r11 - 0x0f, 0x8e, 0x67, 0x00, 0x00, 0x00, //0x00001736 jle LBB8_21 - 0x4d, 0x85, 0xe4, //0x0000173c testq %r12, %r12 - 0x0f, 0x8e, 0x5e, 0x00, 0x00, 0x00, //0x0000173f jle LBB8_21 - 0x4c, 0x89, 0x4d, 0xb8, //0x00001745 movq %r9, $-72(%rbp) - 0x45, 0x31, 0xc9, //0x00001749 xorl %r9d, %r9d - 0x31, 0xc9, //0x0000174c xorl %ecx, %ecx - 0x90, 0x90, //0x0000174e .p2align 4, 0x90 - //0x00001750 LBB8_17 - 0x43, 0x0f, 0xb6, 0x74, 0x0d, 0x00, //0x00001750 movzbl (%r13,%r9), %esi - 0x48, 0x89, 0xf3, //0x00001756 movq %rsi, %rbx - 0x48, 0xc1, 0xe3, 0x04, //0x00001759 shlq $4, %rbx - 0x48, 0x8d, 0x15, 0x7c, 0xd4, 0x00, 0x00, //0x0000175d leaq $54396(%rip), %rdx /* __SingleQuoteTab+0(%rip) */ - 0x48, 0x83, 0x3c, 0x13, 0x00, //0x00001764 cmpq $0, (%rbx,%rdx) - 0x0f, 0x85, 0x8c, 0x00, 0x00, 0x00, //0x00001769 jne LBB8_27 - 0x4d, 0x8d, 0x04, 0x0b, //0x0000176f leaq (%r11,%rcx), %r8 - 0x43, 0x88, 0x34, 0x0f, //0x00001773 movb %sil, (%r15,%r9) - 0x48, 0x8d, 0x59, 0xff, //0x00001777 leaq $-1(%rcx), %rbx - 0x49, 0x83, 0xf8, 0x02, //0x0000177b cmpq $2, %r8 - 0x0f, 0x8c, 0x14, 0x00, 0x00, 0x00, //0x0000177f jl LBB8_20 - 0x4c, 0x01, 0xe1, //0x00001785 addq %r12, %rcx - 0x49, 0x83, 0xc1, 0x01, //0x00001788 addq $1, %r9 - 0x48, 0x83, 0xf9, 0x01, //0x0000178c cmpq $1, %rcx - 0x48, 0x89, 0xd9, //0x00001790 movq %rbx, %rcx - 0x0f, 0x8f, 0xb7, 0xff, 0xff, 0xff, //0x00001793 jg LBB8_17 - //0x00001799 LBB8_20 - 0x49, 0x29, 0xdd, //0x00001799 subq %rbx, %r13 - 0x49, 0x01, 0xdb, //0x0000179c addq %rbx, %r11 - 0x4c, 0x8b, 0x4d, 0xb8, //0x0000179f movq $-72(%rbp), %r9 - //0x000017a3 LBB8_21 - 0x4d, 0x85, 0xdb, //0x000017a3 testq %r11, %r11 - 0x4c, 0x8b, 0x65, 0xc0, //0x000017a6 movq $-64(%rbp), %r12 - 0x0f, 0x84, 0x43, 0x00, 0x00, 0x00, //0x000017aa je LBB8_26 - 0x49, 0xf7, 0xd5, //0x000017b0 notq %r13 - 0x4d, 0x01, 0xcd, //0x000017b3 addq %r9, %r13 - 0xe9, 0x27, 0x01, 0x00, 0x00, //0x000017b6 jmp LBB8_41 - //0x000017bb LBB8_23 - 0x66, 0x0f, 0xbc, 0xce, //0x000017bb bsfw %si, %cx - 0x44, 0x0f, 0xb7, 0xe9, //0x000017bf movzwl %cx, %r13d - 0x4d, 0x01, 0xfd, //0x000017c3 addq %r15, %r13 - 0xe9, 0x13, 0x01, 0x00, 0x00, //0x000017c6 jmp LBB8_40 - //0x000017cb LBB8_24 - 0x41, 0x83, 0xfb, 0x08, //0x000017cb cmpl $8, %r11d - 0x0f, 0x82, 0xa3, 0x00, 0x00, 0x00, //0x000017cf jb LBB8_34 - 0x49, 0x89, 0x0f, //0x000017d5 movq %rcx, (%r15) - 0x4d, 0x8d, 0x65, 0x08, //0x000017d8 leaq $8(%r13), %r12 - 0x49, 0x83, 0xc7, 0x08, //0x000017dc addq $8, %r15 - 0x49, 0x8d, 0x5b, 0xf8, //0x000017e0 leaq $-8(%r11), %rbx - 0x48, 0x83, 0xfb, 0x04, //0x000017e4 cmpq $4, %rbx - 0x0f, 0x8d, 0x9a, 0x00, 0x00, 0x00, //0x000017e8 jge LBB8_35 - 0xe9, 0xa8, 0x00, 0x00, 0x00, //0x000017ee jmp LBB8_36 - //0x000017f3 LBB8_26 - 0x4d, 0x29, 0xcd, //0x000017f3 subq %r9, %r13 - 0xe9, 0xe7, 0x00, 0x00, 0x00, //0x000017f6 jmp LBB8_41 - //0x000017fb LBB8_27 - 0x4c, 0x8b, 0x4d, 0xb8, //0x000017fb movq $-72(%rbp), %r9 - 0x4d, 0x29, 0xcd, //0x000017ff subq %r9, %r13 - 0x49, 0x29, 0xcd, //0x00001802 subq %rcx, %r13 - 0xe9, 0xd4, 0x00, 0x00, 0x00, //0x00001805 jmp LBB8_40 - //0x0000180a LBB8_28 - 0x4d, 0x89, 0xeb, //0x0000180a movq %r13, %r11 - 0x4c, 0x89, 0xe3, //0x0000180d movq %r12, %rbx - 0x48, 0x83, 0xfb, 0x04, //0x00001810 cmpq $4, %rbx - 0x0f, 0x8c, 0x12, 0x00, 0x00, 0x00, //0x00001814 jl LBB8_30 - //0x0000181a LBB8_29 - 0x41, 0x8b, 0x0b, //0x0000181a movl (%r11), %ecx - 0x41, 0x89, 0x0f, //0x0000181d movl %ecx, (%r15) - 0x49, 0x83, 0xc3, 0x04, //0x00001820 addq $4, %r11 - 0x49, 0x83, 0xc7, 0x04, //0x00001824 addq $4, %r15 - 0x48, 0x83, 0xc3, 0xfc, //0x00001828 addq $-4, %rbx - //0x0000182c LBB8_30 - 0x48, 0x83, 0xfb, 0x02, //0x0000182c cmpq $2, %rbx - 0x0f, 0x82, 0x22, 0x00, 0x00, 0x00, //0x00001830 jb LBB8_31 - 0x41, 0x0f, 0xb7, 0x0b, //0x00001836 movzwl (%r11), %ecx - 0x66, 0x41, 0x89, 0x0f, //0x0000183a movw %cx, (%r15) - 0x49, 0x83, 0xc3, 0x02, //0x0000183e addq $2, %r11 - 0x49, 0x83, 0xc7, 0x02, //0x00001842 addq $2, %r15 - 0x48, 0x83, 0xc3, 0xfe, //0x00001846 addq $-2, %rbx - 0x48, 0x85, 0xdb, //0x0000184a testq %rbx, %rbx - 0x0f, 0x85, 0x0e, 0x00, 0x00, 0x00, //0x0000184d jne LBB8_32 - 0xe9, 0x0f, 0x00, 0x00, 0x00, //0x00001853 jmp LBB8_33 - //0x00001858 LBB8_31 - 0x48, 0x85, 0xdb, //0x00001858 testq %rbx, %rbx - 0x0f, 0x84, 0x06, 0x00, 0x00, 0x00, //0x0000185b je LBB8_33 - //0x00001861 LBB8_32 - 0x41, 0x8a, 0x0b, //0x00001861 movb (%r11), %cl - 0x41, 0x88, 0x0f, //0x00001864 movb %cl, (%r15) - //0x00001867 LBB8_33 - 0x4d, 0x01, 0xec, //0x00001867 addq %r13, %r12 - 0x49, 0xf7, 0xd4, //0x0000186a notq %r12 - 0x4d, 0x01, 0xcc, //0x0000186d addq %r9, %r12 - 0x4d, 0x89, 0xe5, //0x00001870 movq %r12, %r13 - 0xe9, 0x66, 0x00, 0x00, 0x00, //0x00001873 jmp LBB8_40 - //0x00001878 LBB8_34 - 0x4d, 0x89, 0xec, //0x00001878 movq %r13, %r12 - 0x4c, 0x89, 0xdb, //0x0000187b movq %r11, %rbx - 0x48, 0x83, 0xfb, 0x04, //0x0000187e cmpq $4, %rbx - 0x0f, 0x8c, 0x13, 0x00, 0x00, 0x00, //0x00001882 jl LBB8_36 - //0x00001888 LBB8_35 - 0x41, 0x8b, 0x0c, 0x24, //0x00001888 movl (%r12), %ecx - 0x41, 0x89, 0x0f, //0x0000188c movl %ecx, (%r15) - 0x49, 0x83, 0xc4, 0x04, //0x0000188f addq $4, %r12 - 0x49, 0x83, 0xc7, 0x04, //0x00001893 addq $4, %r15 - 0x48, 0x83, 0xc3, 0xfc, //0x00001897 addq $-4, %rbx - //0x0000189b LBB8_36 - 0x48, 0x83, 0xfb, 0x02, //0x0000189b cmpq $2, %rbx - 0x0f, 0x82, 0x23, 0x00, 0x00, 0x00, //0x0000189f jb LBB8_37 - 0x41, 0x0f, 0xb7, 0x0c, 0x24, //0x000018a5 movzwl (%r12), %ecx - 0x66, 0x41, 0x89, 0x0f, //0x000018aa movw %cx, (%r15) - 0x49, 0x83, 0xc4, 0x02, //0x000018ae addq $2, %r12 - 0x49, 0x83, 0xc7, 0x02, //0x000018b2 addq $2, %r15 - 0x48, 0x83, 0xc3, 0xfe, //0x000018b6 addq $-2, %rbx - 0x48, 0x85, 0xdb, //0x000018ba testq %rbx, %rbx - 0x0f, 0x85, 0x0e, 0x00, 0x00, 0x00, //0x000018bd jne LBB8_38 - 0xe9, 0x10, 0x00, 0x00, 0x00, //0x000018c3 jmp LBB8_39 - //0x000018c8 LBB8_37 - 0x48, 0x85, 0xdb, //0x000018c8 testq %rbx, %rbx - 0x0f, 0x84, 0x07, 0x00, 0x00, 0x00, //0x000018cb je LBB8_39 - //0x000018d1 LBB8_38 - 0x41, 0x8a, 0x0c, 0x24, //0x000018d1 movb (%r12), %cl - 0x41, 0x88, 0x0f, //0x000018d5 movb %cl, (%r15) - //0x000018d8 LBB8_39 - 0x4d, 0x29, 0xcd, //0x000018d8 subq %r9, %r13 - 0x4d, 0x01, 0xdd, //0x000018db addq %r11, %r13 - //0x000018de LBB8_40 - 0x4c, 0x8b, 0x65, 0xc0, //0x000018de movq $-64(%rbp), %r12 - //0x000018e2 LBB8_41 - 0x49, 0xbb, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, //0x000018e2 movabsq $12884901889, %r11 - 0x4d, 0x85, 0xed, //0x000018ec testq %r13, %r13 - 0x0f, 0x88, 0x4f, 0x03, 0x00, 0x00, //0x000018ef js LBB8_83 - 0x4d, 0x01, 0xee, //0x000018f5 addq %r13, %r14 - 0x4c, 0x39, 0xe8, //0x000018f8 cmpq %r13, %rax - 0x0f, 0x84, 0xc3, 0x00, 0x00, 0x00, //0x000018fb je LBB8_79 - 0x4d, 0x29, 0xea, //0x00001901 subq %r13, %r10 - 0xe9, 0x17, 0x00, 0x00, 0x00, //0x00001904 jmp LBB8_45 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001909 .p2align 4, 0x90 - //0x00001910 LBB8_44 - 0x49, 0x01, 0xf6, //0x00001910 addq %rsi, %r14 - 0x49, 0x83, 0xc5, 0x01, //0x00001913 addq $1, %r13 - 0x4c, 0x39, 0xe8, //0x00001917 cmpq %r13, %rax - 0x0f, 0x84, 0xa4, 0x00, 0x00, 0x00, //0x0000191a je LBB8_79 - //0x00001920 LBB8_45 - 0x43, 0x0f, 0xb6, 0x0c, 0x29, //0x00001920 movzbl (%r9,%r13), %ecx - 0x48, 0xc1, 0xe1, 0x04, //0x00001925 shlq $4, %rcx - 0x49, 0x8b, 0x14, 0x0c, //0x00001929 movq (%r12,%rcx), %rdx - 0x85, 0xd2, //0x0000192d testl %edx, %edx - 0x0f, 0x84, 0x82, 0x00, 0x00, 0x00, //0x0000192f je LBB8_53 - 0x48, 0x63, 0xf2, //0x00001935 movslq %edx, %rsi - 0x49, 0x29, 0xf2, //0x00001938 subq %rsi, %r10 - 0x0f, 0x8c, 0xdd, 0x02, 0x00, 0x00, //0x0000193b jl LBB8_81 - 0x48, 0xc1, 0xe2, 0x20, //0x00001941 shlq $32, %rdx - 0x49, 0x8d, 0x1c, 0x0c, //0x00001945 leaq (%r12,%rcx), %rbx - 0x48, 0x83, 0xc3, 0x08, //0x00001949 addq $8, %rbx - 0x4c, 0x39, 0xda, //0x0000194d cmpq %r11, %rdx - 0x0f, 0x8c, 0x2a, 0x00, 0x00, 0x00, //0x00001950 jl LBB8_49 - 0x8b, 0x13, //0x00001956 movl (%rbx), %edx - 0x41, 0x89, 0x16, //0x00001958 movl %edx, (%r14) - 0x49, 0x8d, 0x1c, 0x0c, //0x0000195b leaq (%r12,%rcx), %rbx - 0x48, 0x83, 0xc3, 0x0c, //0x0000195f addq $12, %rbx - 0x4d, 0x8d, 0x46, 0x04, //0x00001963 leaq $4(%r14), %r8 - 0x48, 0x8d, 0x4e, 0xfc, //0x00001967 leaq $-4(%rsi), %rcx - 0x48, 0x83, 0xf9, 0x02, //0x0000196b cmpq $2, %rcx - 0x0f, 0x83, 0x1b, 0x00, 0x00, 0x00, //0x0000196f jae LBB8_50 - 0xe9, 0x29, 0x00, 0x00, 0x00, //0x00001975 jmp LBB8_51 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000197a .p2align 4, 0x90 - //0x00001980 LBB8_49 - 0x4d, 0x89, 0xf0, //0x00001980 movq %r14, %r8 - 0x48, 0x89, 0xf1, //0x00001983 movq %rsi, %rcx - 0x48, 0x83, 0xf9, 0x02, //0x00001986 cmpq $2, %rcx - 0x0f, 0x82, 0x13, 0x00, 0x00, 0x00, //0x0000198a jb LBB8_51 - //0x00001990 LBB8_50 - 0x0f, 0xb7, 0x13, //0x00001990 movzwl (%rbx), %edx - 0x66, 0x41, 0x89, 0x10, //0x00001993 movw %dx, (%r8) - 0x48, 0x83, 0xc3, 0x02, //0x00001997 addq $2, %rbx - 0x49, 0x83, 0xc0, 0x02, //0x0000199b addq $2, %r8 - 0x48, 0x83, 0xc1, 0xfe, //0x0000199f addq $-2, %rcx - //0x000019a3 LBB8_51 - 0x48, 0x85, 0xc9, //0x000019a3 testq %rcx, %rcx - 0x0f, 0x84, 0x64, 0xff, 0xff, 0xff, //0x000019a6 je LBB8_44 - 0x0f, 0xb6, 0x0b, //0x000019ac movzbl (%rbx), %ecx - 0x41, 0x88, 0x08, //0x000019af movb %cl, (%r8) - 0xe9, 0x59, 0xff, 0xff, 0xff, //0x000019b2 jmp LBB8_44 - //0x000019b7 LBB8_53 - 0x4b, 0x8d, 0x0c, 0x29, //0x000019b7 leaq (%r9,%r13), %rcx - 0x4c, 0x29, 0xe8, //0x000019bb subq %r13, %rax - 0x0f, 0x85, 0x6d, 0xfc, 0xff, 0xff, //0x000019be jne LBB8_3 - //0x000019c4 LBB8_79 - 0x4d, 0x01, 0xe9, //0x000019c4 addq %r13, %r9 - 0x4c, 0x8b, 0x5d, 0xc8, //0x000019c7 movq $-56(%rbp), %r11 - 0x4c, 0x8b, 0x7d, 0xd0, //0x000019cb movq $-48(%rbp), %r15 - //0x000019cf LBB8_80 - 0x4d, 0x29, 0xfe, //0x000019cf subq %r15, %r14 - 0x4d, 0x89, 0x33, //0x000019d2 movq %r14, (%r11) - 0x49, 0x29, 0xf9, //0x000019d5 subq %rdi, %r9 - 0x4c, 0x89, 0xc8, //0x000019d8 movq %r9, %rax - 0xe9, 0x55, 0x02, 0x00, 0x00, //0x000019db jmp LBB8_82 - //0x000019e0 LBB8_56 - 0xc5, 0xf9, 0x6f, 0x05, 0x98, 0xfb, 0xff, 0xff, //0x000019e0 vmovdqa $-1128(%rip), %xmm0 /* LCPI8_0+0(%rip) */ - 0xc5, 0xf9, 0x6f, 0x0d, 0xa0, 0xfb, 0xff, 0xff, //0x000019e8 vmovdqa $-1120(%rip), %xmm1 /* LCPI8_1+0(%rip) */ - 0xc5, 0xf9, 0x6f, 0x15, 0xa8, 0xfb, 0xff, 0xff, //0x000019f0 vmovdqa $-1112(%rip), %xmm2 /* LCPI8_2+0(%rip) */ - 0xc5, 0xe1, 0x76, 0xdb, //0x000019f8 vpcmpeqd %xmm3, %xmm3, %xmm3 - 0x4c, 0x8d, 0x0d, 0xdd, 0xf1, 0x00, 0x00, //0x000019fc leaq $61917(%rip), %r9 /* __EscTab+0(%rip) */ - 0x4c, 0x89, 0xfe, //0x00001a03 movq %r15, %rsi - 0x48, 0x89, 0xc3, //0x00001a06 movq %rax, %rbx - //0x00001a09 LBB8_57 - 0x48, 0x83, 0xfb, 0x10, //0x00001a09 cmpq $16, %rbx - 0x0f, 0x8c, 0x5d, 0x00, 0x00, 0x00, //0x00001a0d jl LBB8_62 - 0x49, 0x89, 0xda, //0x00001a13 movq %rbx, %r10 - 0x49, 0xf7, 0xda, //0x00001a16 negq %r10 - 0x48, 0x83, 0xc3, 0x10, //0x00001a19 addq $16, %rbx - 0x90, 0x90, 0x90, //0x00001a1d .p2align 4, 0x90 - //0x00001a20 LBB8_59 - 0xc5, 0xfa, 0x6f, 0x27, //0x00001a20 vmovdqu (%rdi), %xmm4 - 0xc5, 0xf9, 0x64, 0xec, //0x00001a24 vpcmpgtb %xmm4, %xmm0, %xmm5 - 0xc5, 0xd9, 0x74, 0xf1, //0x00001a28 vpcmpeqb %xmm1, %xmm4, %xmm6 - 0xc5, 0xd9, 0x74, 0xfa, //0x00001a2c vpcmpeqb %xmm2, %xmm4, %xmm7 - 0xc5, 0xc1, 0xeb, 0xf6, //0x00001a30 vpor %xmm6, %xmm7, %xmm6 - 0xc5, 0xfa, 0x7f, 0x26, //0x00001a34 vmovdqu %xmm4, (%rsi) - 0xc5, 0xd9, 0x64, 0xe3, //0x00001a38 vpcmpgtb %xmm3, %xmm4, %xmm4 - 0xc5, 0xd1, 0xdb, 0xe4, //0x00001a3c vpand %xmm4, %xmm5, %xmm4 - 0xc5, 0xc9, 0xeb, 0xe4, //0x00001a40 vpor %xmm4, %xmm6, %xmm4 - 0xc5, 0xf9, 0xd7, 0xcc, //0x00001a44 vpmovmskb %xmm4, %ecx - 0x85, 0xc9, //0x00001a48 testl %ecx, %ecx - 0x0f, 0x85, 0x2e, 0x01, 0x00, 0x00, //0x00001a4a jne LBB8_72 - 0x48, 0x83, 0xc7, 0x10, //0x00001a50 addq $16, %rdi - 0x48, 0x83, 0xc6, 0x10, //0x00001a54 addq $16, %rsi - 0x49, 0x83, 0xc2, 0x10, //0x00001a58 addq $16, %r10 - 0x48, 0x83, 0xc3, 0xf0, //0x00001a5c addq $-16, %rbx - 0x48, 0x83, 0xfb, 0x20, //0x00001a60 cmpq $32, %rbx - 0x0f, 0x8d, 0xb6, 0xff, 0xff, 0xff, //0x00001a64 jge LBB8_59 - 0x49, 0xf7, 0xda, //0x00001a6a negq %r10 - 0x4c, 0x89, 0xd3, //0x00001a6d movq %r10, %rbx - //0x00001a70 LBB8_62 - 0x48, 0x83, 0xfb, 0x08, //0x00001a70 cmpq $8, %rbx - 0x0f, 0x8c, 0x75, 0x00, 0x00, 0x00, //0x00001a74 jl LBB8_66 - 0x0f, 0xb6, 0x0f, //0x00001a7a movzbl (%rdi), %ecx - 0x0f, 0xb6, 0x57, 0x01, //0x00001a7d movzbl $1(%rdi), %edx - 0x42, 0x8a, 0x14, 0x0a, //0x00001a81 movb (%rdx,%r9), %dl - 0x00, 0xd2, //0x00001a85 addb %dl, %dl - 0x42, 0x0a, 0x14, 0x09, //0x00001a87 orb (%rcx,%r9), %dl - 0x0f, 0xb6, 0x4f, 0x02, //0x00001a8b movzbl $2(%rdi), %ecx - 0x42, 0x8a, 0x0c, 0x09, //0x00001a8f movb (%rcx,%r9), %cl - 0xc0, 0xe1, 0x02, //0x00001a93 shlb $2, %cl - 0x08, 0xd1, //0x00001a96 orb %dl, %cl - 0x0f, 0xb6, 0x57, 0x03, //0x00001a98 movzbl $3(%rdi), %edx - 0x42, 0x8a, 0x14, 0x0a, //0x00001a9c movb (%rdx,%r9), %dl - 0xc0, 0xe2, 0x03, //0x00001aa0 shlb $3, %dl - 0x08, 0xca, //0x00001aa3 orb %cl, %dl - 0x48, 0x8b, 0x0f, //0x00001aa5 movq (%rdi), %rcx - 0x48, 0x89, 0x0e, //0x00001aa8 movq %rcx, (%rsi) - 0x0f, 0x85, 0x2e, 0x01, 0x00, 0x00, //0x00001aab jne LBB8_76 - 0x0f, 0xb6, 0x4f, 0x04, //0x00001ab1 movzbl $4(%rdi), %ecx - 0x0f, 0xb6, 0x57, 0x05, //0x00001ab5 movzbl $5(%rdi), %edx - 0x42, 0x8a, 0x14, 0x0a, //0x00001ab9 movb (%rdx,%r9), %dl - 0x00, 0xd2, //0x00001abd addb %dl, %dl - 0x42, 0x0a, 0x14, 0x09, //0x00001abf orb (%rcx,%r9), %dl - 0x0f, 0xb6, 0x4f, 0x06, //0x00001ac3 movzbl $6(%rdi), %ecx - 0x42, 0x8a, 0x0c, 0x09, //0x00001ac7 movb (%rcx,%r9), %cl - 0xc0, 0xe1, 0x02, //0x00001acb shlb $2, %cl - 0x08, 0xd1, //0x00001ace orb %dl, %cl - 0x0f, 0xb6, 0x57, 0x07, //0x00001ad0 movzbl $7(%rdi), %edx - 0x42, 0x8a, 0x14, 0x0a, //0x00001ad4 movb (%rdx,%r9), %dl - 0xc0, 0xe2, 0x03, //0x00001ad8 shlb $3, %dl - 0x08, 0xca, //0x00001adb orb %cl, %dl - 0x0f, 0x85, 0x10, 0x01, 0x00, 0x00, //0x00001add jne LBB8_77 - 0x48, 0x83, 0xc6, 0x08, //0x00001ae3 addq $8, %rsi - 0x48, 0x83, 0xc7, 0x08, //0x00001ae7 addq $8, %rdi - 0x48, 0x83, 0xc3, 0xf8, //0x00001aeb addq $-8, %rbx - //0x00001aef LBB8_66 - 0x48, 0x83, 0xfb, 0x04, //0x00001aef cmpq $4, %rbx - 0x0f, 0x8c, 0x41, 0x00, 0x00, 0x00, //0x00001af3 jl LBB8_69 - 0x0f, 0xb6, 0x0f, //0x00001af9 movzbl (%rdi), %ecx - 0x0f, 0xb6, 0x57, 0x01, //0x00001afc movzbl $1(%rdi), %edx - 0x42, 0x8a, 0x14, 0x0a, //0x00001b00 movb (%rdx,%r9), %dl - 0x00, 0xd2, //0x00001b04 addb %dl, %dl - 0x42, 0x0a, 0x14, 0x09, //0x00001b06 orb (%rcx,%r9), %dl - 0x0f, 0xb6, 0x4f, 0x02, //0x00001b0a movzbl $2(%rdi), %ecx - 0x42, 0x8a, 0x0c, 0x09, //0x00001b0e movb (%rcx,%r9), %cl - 0xc0, 0xe1, 0x02, //0x00001b12 shlb $2, %cl - 0x08, 0xd1, //0x00001b15 orb %dl, %cl - 0x0f, 0xb6, 0x57, 0x03, //0x00001b17 movzbl $3(%rdi), %edx - 0x42, 0x8a, 0x14, 0x0a, //0x00001b1b movb (%rdx,%r9), %dl - 0xc0, 0xe2, 0x03, //0x00001b1f shlb $3, %dl - 0x08, 0xca, //0x00001b22 orb %cl, %dl - 0x8b, 0x0f, //0x00001b24 movl (%rdi), %ecx - 0x89, 0x0e, //0x00001b26 movl %ecx, (%rsi) - 0x0f, 0x85, 0xb1, 0x00, 0x00, 0x00, //0x00001b28 jne LBB8_76 - 0x48, 0x83, 0xc6, 0x04, //0x00001b2e addq $4, %rsi - 0x48, 0x83, 0xc7, 0x04, //0x00001b32 addq $4, %rdi - 0x48, 0x83, 0xc3, 0xfc, //0x00001b36 addq $-4, %rbx - //0x00001b3a LBB8_69 - 0x48, 0x85, 0xdb, //0x00001b3a testq %rbx, %rbx - 0x0f, 0x8e, 0xd0, 0x00, 0x00, 0x00, //0x00001b3d jle LBB8_78 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001b43 .p2align 4, 0x90 - //0x00001b50 LBB8_70 - 0x0f, 0xb6, 0x0f, //0x00001b50 movzbl (%rdi), %ecx - 0x42, 0x80, 0x3c, 0x09, 0x00, //0x00001b53 cmpb $0, (%rcx,%r9) - 0x0f, 0x85, 0x36, 0x00, 0x00, 0x00, //0x00001b58 jne LBB8_73 - 0x48, 0x83, 0xc7, 0x01, //0x00001b5e addq $1, %rdi - 0x88, 0x0e, //0x00001b62 movb %cl, (%rsi) - 0x48, 0x83, 0xc6, 0x01, //0x00001b64 addq $1, %rsi - 0x48, 0x8d, 0x4b, 0xff, //0x00001b68 leaq $-1(%rbx), %rcx - 0x48, 0x83, 0xfb, 0x01, //0x00001b6c cmpq $1, %rbx - 0x48, 0x89, 0xcb, //0x00001b70 movq %rcx, %rbx - 0x0f, 0x8f, 0xd7, 0xff, 0xff, 0xff, //0x00001b73 jg LBB8_70 - 0xe9, 0x95, 0x00, 0x00, 0x00, //0x00001b79 jmp LBB8_78 - //0x00001b7e LBB8_72 - 0x66, 0x0f, 0xbc, 0xc9, //0x00001b7e bsfw %cx, %cx - 0x0f, 0xb7, 0xc9, //0x00001b82 movzwl %cx, %ecx - 0x48, 0x01, 0xcf, //0x00001b85 addq %rcx, %rdi - 0x49, 0x01, 0xca, //0x00001b88 addq %rcx, %r10 - 0x49, 0xf7, 0xda, //0x00001b8b negq %r10 - 0x48, 0x01, 0xce, //0x00001b8e addq %rcx, %rsi - 0x4c, 0x89, 0xd3, //0x00001b91 movq %r10, %rbx - //0x00001b94 LBB8_73 - 0x8a, 0x0f, //0x00001b94 movb (%rdi), %cl - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001b96 .p2align 4, 0x90 - //0x00001ba0 LBB8_74 - 0x48, 0x89, 0xf2, //0x00001ba0 movq %rsi, %rdx - 0x0f, 0xb6, 0xc9, //0x00001ba3 movzbl %cl, %ecx - 0x48, 0xc1, 0xe1, 0x04, //0x00001ba6 shlq $4, %rcx - 0x49, 0x63, 0x34, 0x0c, //0x00001baa movslq (%r12,%rcx), %rsi - 0x49, 0x8b, 0x4c, 0x0c, 0x08, //0x00001bae movq $8(%r12,%rcx), %rcx - 0x48, 0x89, 0x0a, //0x00001bb3 movq %rcx, (%rdx) - 0x48, 0x01, 0xd6, //0x00001bb6 addq %rdx, %rsi - 0x48, 0x83, 0xfb, 0x02, //0x00001bb9 cmpq $2, %rbx - 0x0f, 0x8c, 0x50, 0x00, 0x00, 0x00, //0x00001bbd jl LBB8_78 - 0x0f, 0xb6, 0x4f, 0x01, //0x00001bc3 movzbl $1(%rdi), %ecx - 0x48, 0x83, 0xc7, 0x01, //0x00001bc7 addq $1, %rdi - 0x48, 0x83, 0xc3, 0xff, //0x00001bcb addq $-1, %rbx - 0x42, 0x80, 0x3c, 0x09, 0x00, //0x00001bcf cmpb $0, (%rcx,%r9) - 0x0f, 0x85, 0xc6, 0xff, 0xff, 0xff, //0x00001bd4 jne LBB8_74 - 0xe9, 0x2a, 0xfe, 0xff, 0xff, //0x00001bda jmp LBB8_57 - //0x00001bdf LBB8_76 - 0x0f, 0xb6, 0xca, //0x00001bdf movzbl %dl, %ecx - 0x0f, 0xbc, 0xc9, //0x00001be2 bsfl %ecx, %ecx - 0x48, 0x01, 0xcf, //0x00001be5 addq %rcx, %rdi - 0x48, 0x29, 0xcb, //0x00001be8 subq %rcx, %rbx - 0x48, 0x01, 0xce, //0x00001beb addq %rcx, %rsi - 0xe9, 0xa1, 0xff, 0xff, 0xff, //0x00001bee jmp LBB8_73 - //0x00001bf3 LBB8_77 - 0x0f, 0xb6, 0xca, //0x00001bf3 movzbl %dl, %ecx - 0x0f, 0xbc, 0xc9, //0x00001bf6 bsfl %ecx, %ecx - 0x48, 0x8d, 0x51, 0x04, //0x00001bf9 leaq $4(%rcx), %rdx - 0x48, 0x01, 0xcf, //0x00001bfd addq %rcx, %rdi - 0x48, 0x83, 0xc7, 0x04, //0x00001c00 addq $4, %rdi - 0x48, 0x29, 0xd3, //0x00001c04 subq %rdx, %rbx - 0x48, 0x01, 0xce, //0x00001c07 addq %rcx, %rsi - 0x48, 0x83, 0xc6, 0x04, //0x00001c0a addq $4, %rsi - 0xe9, 0x81, 0xff, 0xff, 0xff, //0x00001c0e jmp LBB8_73 - //0x00001c13 LBB8_78 - 0x4c, 0x29, 0xfe, //0x00001c13 subq %r15, %rsi - 0x49, 0x89, 0x33, //0x00001c16 movq %rsi, (%r11) - 0xe9, 0x17, 0x00, 0x00, 0x00, //0x00001c19 jmp LBB8_82 - //0x00001c1e LBB8_81 - 0x4c, 0x2b, 0x75, 0xd0, //0x00001c1e subq $-48(%rbp), %r14 - 0x48, 0x8b, 0x45, 0xc8, //0x00001c22 movq $-56(%rbp), %rax - 0x4c, 0x89, 0x30, //0x00001c26 movq %r14, (%rax) - 0x4c, 0x29, 0xcf, //0x00001c29 subq %r9, %rdi - 0x49, 0xf7, 0xd5, //0x00001c2c notq %r13 - 0x49, 0x01, 0xfd, //0x00001c2f addq %rdi, %r13 - 0x4c, 0x89, 0xe8, //0x00001c32 movq %r13, %rax - //0x00001c35 LBB8_82 - 0x48, 0x83, 0xc4, 0x20, //0x00001c35 addq $32, %rsp - 0x5b, //0x00001c39 popq %rbx - 0x41, 0x5c, //0x00001c3a popq %r12 - 0x41, 0x5d, //0x00001c3c popq %r13 - 0x41, 0x5e, //0x00001c3e popq %r14 - 0x41, 0x5f, //0x00001c40 popq %r15 - 0x5d, //0x00001c42 popq %rbp - 0xc3, //0x00001c43 retq - //0x00001c44 LBB8_83 - 0x48, 0x8b, 0x4d, 0xd0, //0x00001c44 movq $-48(%rbp), %rcx - 0x4c, 0x01, 0xe9, //0x00001c48 addq %r13, %rcx - 0x48, 0xf7, 0xd1, //0x00001c4b notq %rcx - 0x4c, 0x01, 0xf1, //0x00001c4e addq %r14, %rcx - 0x48, 0x8b, 0x45, 0xc8, //0x00001c51 movq $-56(%rbp), %rax - 0x48, 0x89, 0x08, //0x00001c55 movq %rcx, (%rax) - 0x4c, 0x29, 0xcf, //0x00001c58 subq %r9, %rdi - 0x4c, 0x01, 0xef, //0x00001c5b addq %r13, %rdi - 0x48, 0x89, 0xf8, //0x00001c5e movq %rdi, %rax - 0xe9, 0xcf, 0xff, 0xff, 0xff, //0x00001c61 jmp LBB8_82 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001c66 .p2align 4, 0x00 - //0x00001c70 LCPI9_0 - 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x00001c70 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' - //0x00001c80 .p2align 4, 0x90 - //0x00001c80 _unquote - 0x55, //0x00001c80 pushq %rbp - 0x48, 0x89, 0xe5, //0x00001c81 movq %rsp, %rbp - 0x41, 0x57, //0x00001c84 pushq %r15 - 0x41, 0x56, //0x00001c86 pushq %r14 - 0x41, 0x55, //0x00001c88 pushq %r13 - 0x41, 0x54, //0x00001c8a pushq %r12 - 0x53, //0x00001c8c pushq %rbx - 0x48, 0x83, 0xec, 0x38, //0x00001c8d subq $56, %rsp - 0x48, 0x85, 0xf6, //0x00001c91 testq %rsi, %rsi - 0x0f, 0x84, 0x25, 0x06, 0x00, 0x00, //0x00001c94 je LBB9_1 - 0x48, 0x89, 0x4d, 0xd0, //0x00001c9a movq %rcx, $-48(%rbp) - 0x45, 0x89, 0xc2, //0x00001c9e movl %r8d, %r10d - 0x41, 0x83, 0xe2, 0x01, //0x00001ca1 andl $1, %r10d - 0x4c, 0x8d, 0x35, 0x34, 0xf0, 0x00, 0x00, //0x00001ca5 leaq $61492(%rip), %r14 /* __UnquoteTab+0(%rip) */ - 0xc5, 0xf9, 0x6f, 0x0d, 0xbc, 0xff, 0xff, 0xff, //0x00001cac vmovdqa $-68(%rip), %xmm1 /* LCPI9_0+0(%rip) */ - 0x49, 0x89, 0xff, //0x00001cb4 movq %rdi, %r15 - 0x49, 0x89, 0xf5, //0x00001cb7 movq %rsi, %r13 - 0x49, 0x89, 0xd4, //0x00001cba movq %rdx, %r12 - 0x4c, 0x89, 0x45, 0xc0, //0x00001cbd movq %r8, $-64(%rbp) - //0x00001cc1 LBB9_4 - 0x41, 0x80, 0x3f, 0x5c, //0x00001cc1 cmpb $92, (%r15) - 0x0f, 0x85, 0x15, 0x00, 0x00, 0x00, //0x00001cc5 jne LBB9_6 - 0x45, 0x31, 0xdb, //0x00001ccb xorl %r11d, %r11d - 0xe9, 0xcd, 0x00, 0x00, 0x00, //0x00001cce jmp LBB9_18 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001cd3 .p2align 4, 0x90 - //0x00001ce0 LBB9_6 - 0x4d, 0x89, 0xe9, //0x00001ce0 movq %r13, %r9 - 0x4c, 0x89, 0xe1, //0x00001ce3 movq %r12, %rcx - 0x4d, 0x89, 0xfb, //0x00001ce6 movq %r15, %r11 - 0x49, 0x83, 0xfd, 0x10, //0x00001ce9 cmpq $16, %r13 - 0x0f, 0x8c, 0x45, 0x00, 0x00, 0x00, //0x00001ced jl LBB9_12 - 0x31, 0xc9, //0x00001cf3 xorl %ecx, %ecx - 0x4c, 0x89, 0xe8, //0x00001cf5 movq %r13, %rax - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001cf8 .p2align 4, 0x90 - //0x00001d00 LBB9_8 - 0xc4, 0xc1, 0x7a, 0x6f, 0x04, 0x0f, //0x00001d00 vmovdqu (%r15,%rcx), %xmm0 - 0xc4, 0xc1, 0x7a, 0x7f, 0x04, 0x0c, //0x00001d06 vmovdqu %xmm0, (%r12,%rcx) - 0xc5, 0xf9, 0x74, 0xc1, //0x00001d0c vpcmpeqb %xmm1, %xmm0, %xmm0 - 0xc5, 0xf9, 0xd7, 0xd8, //0x00001d10 vpmovmskb %xmm0, %ebx - 0x85, 0xdb, //0x00001d14 testl %ebx, %ebx - 0x0f, 0x85, 0x6c, 0x00, 0x00, 0x00, //0x00001d16 jne LBB9_9 - 0x4c, 0x8d, 0x48, 0xf0, //0x00001d1c leaq $-16(%rax), %r9 - 0x48, 0x83, 0xc1, 0x10, //0x00001d20 addq $16, %rcx - 0x48, 0x83, 0xf8, 0x1f, //0x00001d24 cmpq $31, %rax - 0x4c, 0x89, 0xc8, //0x00001d28 movq %r9, %rax - 0x0f, 0x8f, 0xcf, 0xff, 0xff, 0xff, //0x00001d2b jg LBB9_8 - 0x4d, 0x8d, 0x1c, 0x0f, //0x00001d31 leaq (%r15,%rcx), %r11 - 0x4c, 0x01, 0xe1, //0x00001d35 addq %r12, %rcx - //0x00001d38 LBB9_12 - 0x4d, 0x85, 0xc9, //0x00001d38 testq %r9, %r9 - 0x0f, 0x84, 0x84, 0x05, 0x00, 0x00, //0x00001d3b je LBB9_2 - 0x31, 0xc0, //0x00001d41 xorl %eax, %eax - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001d43 .p2align 4, 0x90 - //0x00001d50 LBB9_14 - 0x41, 0x0f, 0xb6, 0x1c, 0x03, //0x00001d50 movzbl (%r11,%rax), %ebx - 0x80, 0xfb, 0x5c, //0x00001d55 cmpb $92, %bl - 0x0f, 0x84, 0x15, 0x00, 0x00, 0x00, //0x00001d58 je LBB9_16 - 0x88, 0x1c, 0x01, //0x00001d5e movb %bl, (%rcx,%rax) - 0x48, 0x83, 0xc0, 0x01, //0x00001d61 addq $1, %rax - 0x49, 0x39, 0xc1, //0x00001d65 cmpq %rax, %r9 - 0x0f, 0x85, 0xe2, 0xff, 0xff, 0xff, //0x00001d68 jne LBB9_14 - 0xe9, 0x52, 0x05, 0x00, 0x00, //0x00001d6e jmp LBB9_2 - //0x00001d73 LBB9_16 - 0x4d, 0x29, 0xfb, //0x00001d73 subq %r15, %r11 - 0x49, 0x01, 0xc3, //0x00001d76 addq %rax, %r11 - 0x49, 0x83, 0xfb, 0xff, //0x00001d79 cmpq $-1, %r11 - 0x0f, 0x85, 0x1d, 0x00, 0x00, 0x00, //0x00001d7d jne LBB9_18 - 0xe9, 0x3d, 0x05, 0x00, 0x00, //0x00001d83 jmp LBB9_2 - //0x00001d88 LBB9_9 - 0x66, 0x0f, 0xbc, 0xc3, //0x00001d88 bsfw %bx, %ax - 0x44, 0x0f, 0xb7, 0xd8, //0x00001d8c movzwl %ax, %r11d - 0x49, 0x01, 0xcb, //0x00001d90 addq %rcx, %r11 - 0x49, 0x83, 0xfb, 0xff, //0x00001d93 cmpq $-1, %r11 - 0x0f, 0x84, 0x28, 0x05, 0x00, 0x00, //0x00001d97 je LBB9_2 - 0x90, 0x90, 0x90, //0x00001d9d .p2align 4, 0x90 - //0x00001da0 LBB9_18 - 0x49, 0x8d, 0x4b, 0x02, //0x00001da0 leaq $2(%r11), %rcx - 0x49, 0x29, 0xcd, //0x00001da4 subq %rcx, %r13 - 0x0f, 0x88, 0x4c, 0x06, 0x00, 0x00, //0x00001da7 js LBB9_19 - 0x4d, 0x01, 0xdf, //0x00001dad addq %r11, %r15 - 0x49, 0x83, 0xc7, 0x02, //0x00001db0 addq $2, %r15 - 0x4d, 0x85, 0xd2, //0x00001db4 testq %r10, %r10 - 0x0f, 0x85, 0x4b, 0x02, 0x00, 0x00, //0x00001db7 jne LBB9_21 - //0x00001dbd LBB9_32 - 0x4d, 0x01, 0xdc, //0x00001dbd addq %r11, %r12 - 0x41, 0x0f, 0xb6, 0x47, 0xff, //0x00001dc0 movzbl $-1(%r15), %eax - 0x42, 0x8a, 0x04, 0x30, //0x00001dc5 movb (%rax,%r14), %al - 0x3c, 0xff, //0x00001dc9 cmpb $-1, %al - 0x0f, 0x84, 0x1f, 0x00, 0x00, 0x00, //0x00001dcb je LBB9_38 - 0x84, 0xc0, //0x00001dd1 testb %al, %al - 0x0f, 0x84, 0x3b, 0x06, 0x00, 0x00, //0x00001dd3 je LBB9_34 - 0x41, 0x88, 0x04, 0x24, //0x00001dd9 movb %al, (%r12) - 0x49, 0x83, 0xc4, 0x01, //0x00001ddd addq $1, %r12 - 0x4d, 0x85, 0xed, //0x00001de1 testq %r13, %r13 - 0x0f, 0x85, 0xd7, 0xfe, 0xff, 0xff, //0x00001de4 jne LBB9_4 - 0xe9, 0x1d, 0x06, 0x00, 0x00, //0x00001dea jmp LBB9_37 - 0x90, //0x00001def .p2align 4, 0x90 - //0x00001df0 LBB9_38 - 0x49, 0x83, 0xfd, 0x03, //0x00001df0 cmpq $3, %r13 - 0x0f, 0x8e, 0xff, 0x05, 0x00, 0x00, //0x00001df4 jle LBB9_19 - 0x41, 0x8b, 0x1f, //0x00001dfa movl (%r15), %ebx - 0x89, 0xd9, //0x00001dfd movl %ebx, %ecx - 0xf7, 0xd1, //0x00001dff notl %ecx - 0x8d, 0x83, 0xd0, 0xcf, 0xcf, 0xcf, //0x00001e01 leal $-808464432(%rbx), %eax - 0x81, 0xe1, 0x80, 0x80, 0x80, 0x80, //0x00001e07 andl $-2139062144, %ecx - 0x85, 0xc1, //0x00001e0d testl %eax, %ecx - 0x0f, 0x85, 0xc8, 0x04, 0x00, 0x00, //0x00001e0f jne LBB9_43 - 0x8d, 0x83, 0x19, 0x19, 0x19, 0x19, //0x00001e15 leal $421075225(%rbx), %eax - 0x09, 0xd8, //0x00001e1b orl %ebx, %eax - 0xa9, 0x80, 0x80, 0x80, 0x80, //0x00001e1d testl $-2139062144, %eax - 0x0f, 0x85, 0xb5, 0x04, 0x00, 0x00, //0x00001e22 jne LBB9_43 - 0x89, 0xd8, //0x00001e28 movl %ebx, %eax - 0x25, 0x7f, 0x7f, 0x7f, 0x7f, //0x00001e2a andl $2139062143, %eax - 0x41, 0xbb, 0xc0, 0xc0, 0xc0, 0xc0, //0x00001e2f movl $-1061109568, %r11d - 0x41, 0x29, 0xc3, //0x00001e35 subl %eax, %r11d - 0x44, 0x8d, 0x88, 0x46, 0x46, 0x46, 0x46, //0x00001e38 leal $1179010630(%rax), %r9d - 0x41, 0x21, 0xcb, //0x00001e3f andl %ecx, %r11d - 0x45, 0x85, 0xcb, //0x00001e42 testl %r9d, %r11d - 0x0f, 0x85, 0x92, 0x04, 0x00, 0x00, //0x00001e45 jne LBB9_43 - 0x41, 0xb9, 0xe0, 0xe0, 0xe0, 0xe0, //0x00001e4b movl $-522133280, %r9d - 0x41, 0x29, 0xc1, //0x00001e51 subl %eax, %r9d - 0x05, 0x39, 0x39, 0x39, 0x39, //0x00001e54 addl $960051513, %eax - 0x44, 0x21, 0xc9, //0x00001e59 andl %r9d, %ecx - 0x85, 0xc1, //0x00001e5c testl %eax, %ecx - 0x0f, 0x85, 0x79, 0x04, 0x00, 0x00, //0x00001e5e jne LBB9_43 - 0x0f, 0xcb, //0x00001e64 bswapl %ebx - 0x89, 0xd9, //0x00001e66 movl %ebx, %ecx - 0xc1, 0xe9, 0x04, //0x00001e68 shrl $4, %ecx - 0xf7, 0xd1, //0x00001e6b notl %ecx - 0x81, 0xe1, 0x01, 0x01, 0x01, 0x01, //0x00001e6d andl $16843009, %ecx - 0x8d, 0x0c, 0xc9, //0x00001e73 leal (%rcx,%rcx,8), %ecx - 0x81, 0xe3, 0x0f, 0x0f, 0x0f, 0x0f, //0x00001e76 andl $252645135, %ebx - 0x01, 0xcb, //0x00001e7c addl %ecx, %ebx - 0x89, 0xd9, //0x00001e7e movl %ebx, %ecx - 0xc1, 0xe9, 0x04, //0x00001e80 shrl $4, %ecx - 0x09, 0xd9, //0x00001e83 orl %ebx, %ecx - 0x89, 0xc8, //0x00001e85 movl %ecx, %eax - 0xc1, 0xe8, 0x08, //0x00001e87 shrl $8, %eax - 0x25, 0x00, 0xff, 0x00, 0x00, //0x00001e8a andl $65280, %eax - 0x0f, 0xb6, 0xd9, //0x00001e8f movzbl %cl, %ebx - 0x09, 0xc3, //0x00001e92 orl %eax, %ebx - 0x4d, 0x8d, 0x4f, 0x04, //0x00001e94 leaq $4(%r15), %r9 - 0x49, 0x8d, 0x45, 0xfc, //0x00001e98 leaq $-4(%r13), %rax - 0x81, 0xfb, 0x80, 0x00, 0x00, 0x00, //0x00001e9c cmpl $128, %ebx - 0x0f, 0x82, 0xb3, 0x01, 0x00, 0x00, //0x00001ea2 jb LBB9_58 - 0x41, 0xf6, 0xc0, 0x02, //0x00001ea8 testb $2, %r8b - 0x0f, 0x84, 0xbc, 0x01, 0x00, 0x00, //0x00001eac je LBB9_69 - 0x4d, 0x89, 0xcf, //0x00001eb2 movq %r9, %r15 - 0x41, 0x89, 0xde, //0x00001eb5 movl %ebx, %r14d - 0x49, 0x89, 0xc5, //0x00001eb8 movq %rax, %r13 - //0x00001ebb LBB9_63 - 0x41, 0x81, 0xfe, 0xff, 0x07, 0x00, 0x00, //0x00001ebb cmpl $2047, %r14d - 0x0f, 0x86, 0xa1, 0x02, 0x00, 0x00, //0x00001ec2 jbe LBB9_71 - 0x44, 0x89, 0xf0, //0x00001ec8 movl %r14d, %eax - 0x25, 0x00, 0xf8, 0xff, 0xff, //0x00001ecb andl $-2048, %eax - 0x3d, 0x00, 0xd8, 0x00, 0x00, //0x00001ed0 cmpl $55296, %eax - 0x0f, 0x85, 0xc5, 0x01, 0x00, 0x00, //0x00001ed5 jne LBB9_74 - 0x4d, 0x85, 0xd2, //0x00001edb testq %r10, %r10 - 0x48, 0x89, 0x7d, 0xc8, //0x00001ede movq %rdi, $-56(%rbp) - 0x48, 0x89, 0x75, 0xb8, //0x00001ee2 movq %rsi, $-72(%rbp) - 0x0f, 0x85, 0xcf, 0x00, 0x00, 0x00, //0x00001ee6 jne LBB9_66 - 0x4c, 0x89, 0x55, 0xb0, //0x00001eec movq %r10, $-80(%rbp) - 0x48, 0x89, 0x55, 0xa8, //0x00001ef0 movq %rdx, $-88(%rbp) - 0x49, 0x83, 0xfd, 0x06, //0x00001ef4 cmpq $6, %r13 - 0x0f, 0x8c, 0xea, 0x00, 0x00, 0x00, //0x00001ef8 jl LBB9_98 - //0x00001efe LBB9_95 - 0x41, 0x81, 0xfe, 0xff, 0xdb, 0x00, 0x00, //0x00001efe cmpl $56319, %r14d - 0x0f, 0x87, 0xdd, 0x00, 0x00, 0x00, //0x00001f05 ja LBB9_98 - 0x41, 0x80, 0x3f, 0x5c, //0x00001f0b cmpb $92, (%r15) - 0x0f, 0x85, 0xd3, 0x00, 0x00, 0x00, //0x00001f0f jne LBB9_98 - 0x41, 0x80, 0x7f, 0x01, 0x75, //0x00001f15 cmpb $117, $1(%r15) - 0x0f, 0x85, 0xc8, 0x00, 0x00, 0x00, //0x00001f1a jne LBB9_98 - 0x49, 0x8d, 0x7f, 0x02, //0x00001f20 leaq $2(%r15), %rdi - 0xe8, 0x77, 0x06, 0x00, 0x00, //0x00001f24 callq _unhex16_is - 0x84, 0xc0, //0x00001f29 testb %al, %al - 0x0f, 0x84, 0x47, 0x05, 0x00, 0x00, //0x00001f2b je LBB9_104 - 0x41, 0x8b, 0x47, 0x02, //0x00001f31 movl $2(%r15), %eax - 0x0f, 0xc8, //0x00001f35 bswapl %eax - 0x89, 0xc1, //0x00001f37 movl %eax, %ecx - 0xc1, 0xe9, 0x04, //0x00001f39 shrl $4, %ecx - 0xf7, 0xd1, //0x00001f3c notl %ecx - 0x81, 0xe1, 0x01, 0x01, 0x01, 0x01, //0x00001f3e andl $16843009, %ecx - 0x8d, 0x0c, 0xc9, //0x00001f44 leal (%rcx,%rcx,8), %ecx - 0x25, 0x0f, 0x0f, 0x0f, 0x0f, //0x00001f47 andl $252645135, %eax - 0x01, 0xc8, //0x00001f4c addl %ecx, %eax - 0x89, 0xc1, //0x00001f4e movl %eax, %ecx - 0xc1, 0xe9, 0x04, //0x00001f50 shrl $4, %ecx - 0x09, 0xc1, //0x00001f53 orl %eax, %ecx - 0x89, 0xc8, //0x00001f55 movl %ecx, %eax - 0xc1, 0xe8, 0x08, //0x00001f57 shrl $8, %eax - 0x25, 0x00, 0xff, 0x00, 0x00, //0x00001f5a andl $65280, %eax - 0x0f, 0xb6, 0xd9, //0x00001f5f movzbl %cl, %ebx - 0x09, 0xc3, //0x00001f62 orl %eax, %ebx - 0x49, 0x83, 0xc7, 0x06, //0x00001f64 addq $6, %r15 - 0x49, 0x83, 0xc5, 0xfa, //0x00001f68 addq $-6, %r13 - 0x81, 0xe1, 0x00, 0x00, 0xfc, 0x00, //0x00001f6c andl $16515072, %ecx - 0x81, 0xf9, 0x00, 0x00, 0xdc, 0x00, //0x00001f72 cmpl $14417920, %ecx - 0x48, 0x8b, 0x7d, 0xc8, //0x00001f78 movq $-56(%rbp), %rdi - 0x48, 0x8b, 0x55, 0xa8, //0x00001f7c movq $-88(%rbp), %rdx - 0x48, 0x8b, 0x75, 0xb8, //0x00001f80 movq $-72(%rbp), %rsi - 0xc5, 0xf9, 0x6f, 0x0d, 0xe4, 0xfc, 0xff, 0xff, //0x00001f84 vmovdqa $-796(%rip), %xmm1 /* LCPI9_0+0(%rip) */ - 0x0f, 0x84, 0x53, 0x01, 0x00, 0x00, //0x00001f8c je LBB9_115 - 0x66, 0x41, 0xc7, 0x04, 0x24, 0xef, 0xbf, //0x00001f92 movw $-16401, (%r12) - 0x41, 0xc6, 0x44, 0x24, 0x02, 0xbd, //0x00001f99 movb $-67, $2(%r12) - 0x49, 0x83, 0xc4, 0x03, //0x00001f9f addq $3, %r12 - 0x41, 0x89, 0xde, //0x00001fa3 movl %ebx, %r14d - 0x81, 0xfb, 0x80, 0x00, 0x00, 0x00, //0x00001fa6 cmpl $128, %ebx - 0x4c, 0x8b, 0x55, 0xb0, //0x00001fac movq $-80(%rbp), %r10 - 0x0f, 0x83, 0x05, 0xff, 0xff, 0xff, //0x00001fb0 jae LBB9_63 - 0xe9, 0xa6, 0x00, 0x00, 0x00, //0x00001fb6 jmp LBB9_59 - //0x00001fbb LBB9_66 - 0x4d, 0x85, 0xed, //0x00001fbb testq %r13, %r13 - 0x0f, 0x8e, 0x8e, 0x04, 0x00, 0x00, //0x00001fbe jle LBB9_67 - 0x41, 0x80, 0x3f, 0x5c, //0x00001fc4 cmpb $92, (%r15) - 0x0f, 0x85, 0x76, 0x02, 0x00, 0x00, //0x00001fc8 jne LBB9_100 - 0x49, 0x83, 0xc5, 0xff, //0x00001fce addq $-1, %r13 - 0x49, 0x83, 0xc7, 0x01, //0x00001fd2 addq $1, %r15 - 0x4c, 0x89, 0x55, 0xb0, //0x00001fd6 movq %r10, $-80(%rbp) - 0x48, 0x89, 0x55, 0xa8, //0x00001fda movq %rdx, $-88(%rbp) - 0x49, 0x83, 0xfd, 0x06, //0x00001fde cmpq $6, %r13 - 0x0f, 0x8d, 0x16, 0xff, 0xff, 0xff, //0x00001fe2 jge LBB9_95 - //0x00001fe8 LBB9_98 - 0xf6, 0x45, 0xc0, 0x02, //0x00001fe8 testb $2, $-64(%rbp) - 0x0f, 0x84, 0xab, 0x02, 0x00, 0x00, //0x00001fec je LBB9_81 - 0x66, 0x41, 0xc7, 0x04, 0x24, 0xef, 0xbf, //0x00001ff2 movw $-16401, (%r12) - 0x41, 0xc6, 0x44, 0x24, 0x02, 0xbd, //0x00001ff9 movb $-67, $2(%r12) - 0x49, 0x83, 0xc4, 0x03, //0x00001fff addq $3, %r12 - 0xe9, 0x27, 0x01, 0x00, 0x00, //0x00002003 jmp LBB9_90 - //0x00002008 LBB9_21 - 0x45, 0x85, 0xed, //0x00002008 testl %r13d, %r13d - 0x0f, 0x84, 0xe8, 0x03, 0x00, 0x00, //0x0000200b je LBB9_19 - 0x41, 0x80, 0x7f, 0xff, 0x5c, //0x00002011 cmpb $92, $-1(%r15) - 0x0f, 0x85, 0x11, 0x04, 0x00, 0x00, //0x00002016 jne LBB9_23 - 0x41, 0x80, 0x3f, 0x5c, //0x0000201c cmpb $92, (%r15) - 0x0f, 0x85, 0x28, 0x00, 0x00, 0x00, //0x00002020 jne LBB9_31 - 0x41, 0x83, 0xfd, 0x01, //0x00002026 cmpl $1, %r13d - 0x0f, 0x8e, 0xc9, 0x03, 0x00, 0x00, //0x0000202a jle LBB9_19 - 0x41, 0x8a, 0x4f, 0x01, //0x00002030 movb $1(%r15), %cl - 0x80, 0xf9, 0x22, //0x00002034 cmpb $34, %cl - 0x0f, 0x84, 0x09, 0x00, 0x00, 0x00, //0x00002037 je LBB9_30 - 0x80, 0xf9, 0x5c, //0x0000203d cmpb $92, %cl - 0x0f, 0x85, 0x00, 0x04, 0x00, 0x00, //0x00002040 jne LBB9_29 - //0x00002046 LBB9_30 - 0x49, 0x83, 0xc7, 0x01, //0x00002046 addq $1, %r15 - 0x49, 0x83, 0xc5, 0xff, //0x0000204a addq $-1, %r13 - //0x0000204e LBB9_31 - 0x49, 0x83, 0xc7, 0x01, //0x0000204e addq $1, %r15 - 0x49, 0x83, 0xc5, 0xff, //0x00002052 addq $-1, %r13 - 0xe9, 0x62, 0xfd, 0xff, 0xff, //0x00002056 jmp LBB9_32 - //0x0000205b LBB9_58 - 0x49, 0x89, 0xc5, //0x0000205b movq %rax, %r13 - 0x4d, 0x89, 0xcf, //0x0000205e movq %r9, %r15 - //0x00002061 LBB9_59 - 0x41, 0x88, 0x1c, 0x24, //0x00002061 movb %bl, (%r12) - 0x49, 0x83, 0xc4, 0x01, //0x00002065 addq $1, %r12 - 0xe9, 0x5e, 0x00, 0x00, 0x00, //0x00002069 jmp LBB9_60 - //0x0000206e LBB9_69 - 0x81, 0xfb, 0x00, 0x08, 0x00, 0x00, //0x0000206e cmpl $2048, %ebx - 0x0f, 0x82, 0xe6, 0x00, 0x00, 0x00, //0x00002074 jb LBB9_70 - 0x81, 0xe1, 0x00, 0x00, 0xf8, 0x00, //0x0000207a andl $16252928, %ecx - 0x81, 0xf9, 0x00, 0x00, 0xd8, 0x00, //0x00002080 cmpl $14155776, %ecx - 0x0f, 0x84, 0xff, 0x00, 0x00, 0x00, //0x00002086 je LBB9_75 - 0x49, 0x89, 0xc5, //0x0000208c movq %rax, %r13 - 0x41, 0x89, 0xde, //0x0000208f movl %ebx, %r14d - 0x4d, 0x89, 0xcf, //0x00002092 movq %r9, %r15 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002095 .p2align 4, 0x90 - //0x000020a0 LBB9_74 - 0x44, 0x89, 0xf0, //0x000020a0 movl %r14d, %eax - 0xc1, 0xe8, 0x0c, //0x000020a3 shrl $12, %eax - 0x0c, 0xe0, //0x000020a6 orb $-32, %al - 0x41, 0x88, 0x04, 0x24, //0x000020a8 movb %al, (%r12) - 0x44, 0x89, 0xf0, //0x000020ac movl %r14d, %eax - 0xc1, 0xe8, 0x06, //0x000020af shrl $6, %eax - 0x24, 0x3f, //0x000020b2 andb $63, %al - 0x0c, 0x80, //0x000020b4 orb $-128, %al - 0x41, 0x88, 0x44, 0x24, 0x01, //0x000020b6 movb %al, $1(%r12) - 0x41, 0x80, 0xe6, 0x3f, //0x000020bb andb $63, %r14b - 0x41, 0x80, 0xce, 0x80, //0x000020bf orb $-128, %r14b - 0x45, 0x88, 0x74, 0x24, 0x02, //0x000020c3 movb %r14b, $2(%r12) - 0x49, 0x83, 0xc4, 0x03, //0x000020c8 addq $3, %r12 - //0x000020cc LBB9_60 - 0x4c, 0x8b, 0x45, 0xc0, //0x000020cc movq $-64(%rbp), %r8 - 0x4c, 0x8d, 0x35, 0x09, 0xec, 0x00, 0x00, //0x000020d0 leaq $60425(%rip), %r14 /* __UnquoteTab+0(%rip) */ - 0x4d, 0x85, 0xed, //0x000020d7 testq %r13, %r13 - 0x0f, 0x85, 0xe1, 0xfb, 0xff, 0xff, //0x000020da jne LBB9_4 - 0xe9, 0x27, 0x03, 0x00, 0x00, //0x000020e0 jmp LBB9_37 - //0x000020e5 LBB9_115 - 0x89, 0xd8, //0x000020e5 movl %ebx, %eax - 0x44, 0x89, 0xf3, //0x000020e7 movl %r14d, %ebx - //0x000020ea LBB9_89 - 0xc1, 0xe3, 0x0a, //0x000020ea shll $10, %ebx - 0x89, 0xc1, //0x000020ed movl %eax, %ecx - 0x01, 0xd9, //0x000020ef addl %ebx, %ecx - 0x01, 0xd8, //0x000020f1 addl %ebx, %eax - 0x05, 0x00, 0x24, 0xa0, 0xfc, //0x000020f3 addl $-56613888, %eax - 0x89, 0xc2, //0x000020f8 movl %eax, %edx - 0xc1, 0xea, 0x12, //0x000020fa shrl $18, %edx - 0x80, 0xca, 0xf0, //0x000020fd orb $-16, %dl - 0x41, 0x88, 0x14, 0x24, //0x00002100 movb %dl, (%r12) - 0x89, 0xc2, //0x00002104 movl %eax, %edx - 0xc1, 0xea, 0x0c, //0x00002106 shrl $12, %edx - 0x80, 0xe2, 0x3f, //0x00002109 andb $63, %dl - 0x80, 0xca, 0x80, //0x0000210c orb $-128, %dl - 0x41, 0x88, 0x54, 0x24, 0x01, //0x0000210f movb %dl, $1(%r12) - 0xc1, 0xe8, 0x06, //0x00002114 shrl $6, %eax - 0x24, 0x3f, //0x00002117 andb $63, %al - 0x0c, 0x80, //0x00002119 orb $-128, %al - 0x41, 0x88, 0x44, 0x24, 0x02, //0x0000211b movb %al, $2(%r12) - 0x80, 0xe1, 0x3f, //0x00002120 andb $63, %cl - 0x80, 0xc9, 0x80, //0x00002123 orb $-128, %cl - 0x41, 0x88, 0x4c, 0x24, 0x03, //0x00002126 movb %cl, $3(%r12) - 0x49, 0x83, 0xc4, 0x04, //0x0000212b addq $4, %r12 - //0x0000212f LBB9_90 - 0x48, 0x8b, 0x7d, 0xc8, //0x0000212f movq $-56(%rbp), %rdi - 0x48, 0x8b, 0x55, 0xa8, //0x00002133 movq $-88(%rbp), %rdx - 0x4c, 0x8b, 0x55, 0xb0, //0x00002137 movq $-80(%rbp), %r10 - 0x48, 0x8b, 0x75, 0xb8, //0x0000213b movq $-72(%rbp), %rsi - 0x4c, 0x8b, 0x45, 0xc0, //0x0000213f movq $-64(%rbp), %r8 - 0x4c, 0x8d, 0x35, 0x96, 0xeb, 0x00, 0x00, //0x00002143 leaq $60310(%rip), %r14 /* __UnquoteTab+0(%rip) */ - 0xc5, 0xf9, 0x6f, 0x0d, 0x1e, 0xfb, 0xff, 0xff, //0x0000214a vmovdqa $-1250(%rip), %xmm1 /* LCPI9_0+0(%rip) */ - 0x4d, 0x85, 0xed, //0x00002152 testq %r13, %r13 - 0x0f, 0x85, 0x66, 0xfb, 0xff, 0xff, //0x00002155 jne LBB9_4 - 0xe9, 0xac, 0x02, 0x00, 0x00, //0x0000215b jmp LBB9_37 - //0x00002160 LBB9_70 - 0x49, 0x89, 0xc5, //0x00002160 movq %rax, %r13 - 0x41, 0x89, 0xde, //0x00002163 movl %ebx, %r14d - 0x4d, 0x89, 0xcf, //0x00002166 movq %r9, %r15 - //0x00002169 LBB9_71 - 0x44, 0x89, 0xf0, //0x00002169 movl %r14d, %eax - 0xc1, 0xe8, 0x06, //0x0000216c shrl $6, %eax - 0x0c, 0xc0, //0x0000216f orb $-64, %al - 0x41, 0x88, 0x04, 0x24, //0x00002171 movb %al, (%r12) - 0x41, 0x80, 0xe6, 0x3f, //0x00002175 andb $63, %r14b - 0x41, 0x80, 0xce, 0x80, //0x00002179 orb $-128, %r14b - 0x45, 0x88, 0x74, 0x24, 0x01, //0x0000217d movb %r14b, $1(%r12) - 0x49, 0x83, 0xc4, 0x02, //0x00002182 addq $2, %r12 - 0xe9, 0x41, 0xff, 0xff, 0xff, //0x00002186 jmp LBB9_60 - //0x0000218b LBB9_75 - 0x48, 0x89, 0x45, 0xa0, //0x0000218b movq %rax, $-96(%rbp) - 0x4d, 0x89, 0xce, //0x0000218f movq %r9, %r14 - 0x48, 0x89, 0x75, 0xb8, //0x00002192 movq %rsi, $-72(%rbp) - 0x48, 0x89, 0x55, 0xa8, //0x00002196 movq %rdx, $-88(%rbp) - 0x48, 0x89, 0x7d, 0xc8, //0x0000219a movq %rdi, $-56(%rbp) - 0x4c, 0x89, 0x55, 0xb0, //0x0000219e movq %r10, $-80(%rbp) - 0x4d, 0x85, 0xd2, //0x000021a2 testq %r10, %r10 - 0x0f, 0x85, 0xc1, 0x00, 0x00, 0x00, //0x000021a5 jne LBB9_76 - 0x48, 0x83, 0x7d, 0xa0, 0x06, //0x000021ab cmpq $6, $-96(%rbp) - 0x0f, 0x8c, 0xe4, 0x00, 0x00, 0x00, //0x000021b0 jl LBB9_80 - //0x000021b6 LBB9_82 - 0x81, 0xfb, 0xff, 0xdb, 0x00, 0x00, //0x000021b6 cmpl $56319, %ebx - 0x0f, 0x87, 0xd8, 0x00, 0x00, 0x00, //0x000021bc ja LBB9_80 - 0x41, 0x80, 0x3e, 0x5c, //0x000021c2 cmpb $92, (%r14) - 0x0f, 0x85, 0xce, 0x00, 0x00, 0x00, //0x000021c6 jne LBB9_80 - 0x41, 0x80, 0x7e, 0x01, 0x75, //0x000021cc cmpb $117, $1(%r14) - 0x0f, 0x85, 0xc3, 0x00, 0x00, 0x00, //0x000021d1 jne LBB9_80 - 0x49, 0x8d, 0x7e, 0x02, //0x000021d7 leaq $2(%r14), %rdi - 0xe8, 0xc0, 0x03, 0x00, 0x00, //0x000021db callq _unhex16_is - 0x84, 0xc0, //0x000021e0 testb %al, %al - 0x0f, 0x84, 0x8d, 0x02, 0x00, 0x00, //0x000021e2 je LBB9_86 - 0x4d, 0x89, 0xf7, //0x000021e8 movq %r14, %r15 - 0x41, 0x8b, 0x4e, 0x02, //0x000021eb movl $2(%r14), %ecx - 0x0f, 0xc9, //0x000021ef bswapl %ecx - 0x89, 0xc8, //0x000021f1 movl %ecx, %eax - 0xc1, 0xe8, 0x04, //0x000021f3 shrl $4, %eax - 0xf7, 0xd0, //0x000021f6 notl %eax - 0x25, 0x01, 0x01, 0x01, 0x01, //0x000021f8 andl $16843009, %eax - 0x8d, 0x04, 0xc0, //0x000021fd leal (%rax,%rax,8), %eax - 0x81, 0xe1, 0x0f, 0x0f, 0x0f, 0x0f, //0x00002200 andl $252645135, %ecx - 0x01, 0xc1, //0x00002206 addl %eax, %ecx - 0x89, 0xc8, //0x00002208 movl %ecx, %eax - 0xc1, 0xe8, 0x04, //0x0000220a shrl $4, %eax - 0x09, 0xc8, //0x0000220d orl %ecx, %eax - 0x49, 0x83, 0xc7, 0x06, //0x0000220f addq $6, %r15 - 0x89, 0xc1, //0x00002213 movl %eax, %ecx - 0x81, 0xe1, 0x00, 0x00, 0xfc, 0x00, //0x00002215 andl $16515072, %ecx - 0x81, 0xf9, 0x00, 0x00, 0xdc, 0x00, //0x0000221b cmpl $14417920, %ecx - 0x0f, 0x85, 0x3b, 0x03, 0x00, 0x00, //0x00002221 jne LBB9_117 - 0x89, 0xc1, //0x00002227 movl %eax, %ecx - 0xc1, 0xe9, 0x08, //0x00002229 shrl $8, %ecx - 0x81, 0xe1, 0x00, 0xff, 0x00, 0x00, //0x0000222c andl $65280, %ecx - 0x0f, 0xb6, 0xc0, //0x00002232 movzbl %al, %eax - 0x09, 0xc8, //0x00002235 orl %ecx, %eax - 0x4c, 0x8b, 0x6d, 0xa0, //0x00002237 movq $-96(%rbp), %r13 - 0x49, 0x83, 0xc5, 0xfa, //0x0000223b addq $-6, %r13 - 0xe9, 0xa6, 0xfe, 0xff, 0xff, //0x0000223f jmp LBB9_89 - //0x00002244 LBB9_100 - 0xf6, 0x45, 0xc0, 0x02, //0x00002244 testb $2, $-64(%rbp) - 0x0f, 0x84, 0x1d, 0x03, 0x00, 0x00, //0x00002248 je LBB9_101 - 0x66, 0x41, 0xc7, 0x04, 0x24, 0xef, 0xbf, //0x0000224e movw $-16401, (%r12) - 0x41, 0xc6, 0x44, 0x24, 0x02, 0xbd, //0x00002255 movb $-67, $2(%r12) - 0x49, 0x83, 0xc4, 0x03, //0x0000225b addq $3, %r12 - 0x48, 0x8b, 0x7d, 0xc8, //0x0000225f movq $-56(%rbp), %rdi - 0x48, 0x8b, 0x75, 0xb8, //0x00002263 movq $-72(%rbp), %rsi - 0xe9, 0x60, 0xfe, 0xff, 0xff, //0x00002267 jmp LBB9_60 - //0x0000226c LBB9_76 - 0x49, 0x83, 0xfd, 0x05, //0x0000226c cmpq $5, %r13 - 0x0f, 0x8c, 0x0c, 0x03, 0x00, 0x00, //0x00002270 jl LBB9_91 - 0x41, 0x80, 0x3e, 0x5c, //0x00002276 cmpb $92, (%r14) - 0x0f, 0x85, 0xee, 0x02, 0x00, 0x00, //0x0000227a jne LBB9_102 - 0x49, 0x83, 0xc5, 0xfb, //0x00002280 addq $-5, %r13 - 0x49, 0x83, 0xc7, 0x05, //0x00002284 addq $5, %r15 - 0x4c, 0x89, 0x6d, 0xa0, //0x00002288 movq %r13, $-96(%rbp) - 0x4d, 0x89, 0xfe, //0x0000228c movq %r15, %r14 - 0x48, 0x83, 0x7d, 0xa0, 0x06, //0x0000228f cmpq $6, $-96(%rbp) - 0x0f, 0x8d, 0x1c, 0xff, 0xff, 0xff, //0x00002294 jge LBB9_82 - //0x0000229a LBB9_80 - 0x4d, 0x89, 0xf7, //0x0000229a movq %r14, %r15 - //0x0000229d LBB9_81 - 0x48, 0x8b, 0x45, 0xb0, //0x0000229d movq $-80(%rbp), %rax - 0x48, 0x03, 0x45, 0xc8, //0x000022a1 addq $-56(%rbp), %rax - 0x49, 0x29, 0xc7, //0x000022a5 subq %rax, %r15 - //0x000022a8 LBB9_118 - 0x49, 0x83, 0xc7, 0xfc, //0x000022a8 addq $-4, %r15 - 0x48, 0x8b, 0x45, 0xd0, //0x000022ac movq $-48(%rbp), %rax - 0x4c, 0x89, 0x38, //0x000022b0 movq %r15, (%rax) - //0x000022b3 LBB9_119 - 0x49, 0xc7, 0xc4, 0xfc, 0xff, 0xff, 0xff, //0x000022b3 movq $-4, %r12 - 0xe9, 0x0c, 0x00, 0x00, 0x00, //0x000022ba jmp LBB9_120 - //0x000022bf LBB9_1 - 0x45, 0x31, 0xed, //0x000022bf xorl %r13d, %r13d - 0x49, 0x89, 0xd4, //0x000022c2 movq %rdx, %r12 - //0x000022c5 LBB9_2 - 0x4d, 0x01, 0xec, //0x000022c5 addq %r13, %r12 - 0x49, 0x29, 0xd4, //0x000022c8 subq %rdx, %r12 - //0x000022cb LBB9_120 - 0x4c, 0x89, 0xe0, //0x000022cb movq %r12, %rax - 0x48, 0x83, 0xc4, 0x38, //0x000022ce addq $56, %rsp - 0x5b, //0x000022d2 popq %rbx - 0x41, 0x5c, //0x000022d3 popq %r12 - 0x41, 0x5d, //0x000022d5 popq %r13 - 0x41, 0x5e, //0x000022d7 popq %r14 - 0x41, 0x5f, //0x000022d9 popq %r15 - 0x5d, //0x000022db popq %rbp - 0xc3, //0x000022dc retq - //0x000022dd LBB9_43 - 0x4c, 0x89, 0xf8, //0x000022dd movq %r15, %rax - 0x48, 0x29, 0xf8, //0x000022e0 subq %rdi, %rax - 0x48, 0x8b, 0x75, 0xd0, //0x000022e3 movq $-48(%rbp), %rsi - 0x48, 0x89, 0x06, //0x000022e7 movq %rax, (%rsi) - 0x41, 0x8a, 0x0f, //0x000022ea movb (%r15), %cl - 0x8d, 0x51, 0xd0, //0x000022ed leal $-48(%rcx), %edx - 0x80, 0xfa, 0x0a, //0x000022f0 cmpb $10, %dl - 0x0f, 0x82, 0x2a, 0x00, 0x00, 0x00, //0x000022f3 jb LBB9_46 - 0x49, 0xc7, 0xc4, 0xfe, 0xff, 0xff, 0xff, //0x000022f9 movq $-2, %r12 - 0x80, 0xc1, 0xbf, //0x00002300 addb $-65, %cl - 0x80, 0xf9, 0x25, //0x00002303 cmpb $37, %cl - 0x0f, 0x87, 0xbf, 0xff, 0xff, 0xff, //0x00002306 ja LBB9_120 - 0x0f, 0xb6, 0xc9, //0x0000230c movzbl %cl, %ecx - 0x48, 0xba, 0x3f, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, //0x0000230f movabsq $270582939711, %rdx - 0x48, 0x0f, 0xa3, 0xca, //0x00002319 btq %rcx, %rdx - 0x0f, 0x83, 0xa8, 0xff, 0xff, 0xff, //0x0000231d jae LBB9_120 - //0x00002323 LBB9_46 - 0x48, 0x8d, 0x48, 0x01, //0x00002323 leaq $1(%rax), %rcx - 0x48, 0x89, 0x0e, //0x00002327 movq %rcx, (%rsi) - 0x41, 0x8a, 0x4f, 0x01, //0x0000232a movb $1(%r15), %cl - 0x8d, 0x51, 0xd0, //0x0000232e leal $-48(%rcx), %edx - 0x80, 0xfa, 0x09, //0x00002331 cmpb $9, %dl - 0x0f, 0x86, 0x2a, 0x00, 0x00, 0x00, //0x00002334 jbe LBB9_49 - 0x49, 0xc7, 0xc4, 0xfe, 0xff, 0xff, 0xff, //0x0000233a movq $-2, %r12 - 0x80, 0xc1, 0xbf, //0x00002341 addb $-65, %cl - 0x80, 0xf9, 0x25, //0x00002344 cmpb $37, %cl - 0x0f, 0x87, 0x7e, 0xff, 0xff, 0xff, //0x00002347 ja LBB9_120 - 0x0f, 0xb6, 0xc9, //0x0000234d movzbl %cl, %ecx - 0x48, 0xba, 0x3f, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, //0x00002350 movabsq $270582939711, %rdx - 0x48, 0x0f, 0xa3, 0xca, //0x0000235a btq %rcx, %rdx - 0x0f, 0x83, 0x67, 0xff, 0xff, 0xff, //0x0000235e jae LBB9_120 - //0x00002364 LBB9_49 - 0x48, 0x8d, 0x48, 0x02, //0x00002364 leaq $2(%rax), %rcx - 0x48, 0x89, 0x0e, //0x00002368 movq %rcx, (%rsi) - 0x41, 0x8a, 0x4f, 0x02, //0x0000236b movb $2(%r15), %cl - 0x8d, 0x51, 0xd0, //0x0000236f leal $-48(%rcx), %edx - 0x80, 0xfa, 0x0a, //0x00002372 cmpb $10, %dl - 0x0f, 0x82, 0x2a, 0x00, 0x00, 0x00, //0x00002375 jb LBB9_52 - 0x49, 0xc7, 0xc4, 0xfe, 0xff, 0xff, 0xff, //0x0000237b movq $-2, %r12 - 0x80, 0xc1, 0xbf, //0x00002382 addb $-65, %cl - 0x80, 0xf9, 0x25, //0x00002385 cmpb $37, %cl - 0x0f, 0x87, 0x3d, 0xff, 0xff, 0xff, //0x00002388 ja LBB9_120 - 0x0f, 0xb6, 0xc9, //0x0000238e movzbl %cl, %ecx - 0x48, 0xba, 0x3f, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, //0x00002391 movabsq $270582939711, %rdx - 0x48, 0x0f, 0xa3, 0xca, //0x0000239b btq %rcx, %rdx - 0x0f, 0x83, 0x26, 0xff, 0xff, 0xff, //0x0000239f jae LBB9_120 - //0x000023a5 LBB9_52 - 0x48, 0x8d, 0x48, 0x03, //0x000023a5 leaq $3(%rax), %rcx - 0x48, 0x89, 0x0e, //0x000023a9 movq %rcx, (%rsi) - 0x41, 0x8a, 0x4f, 0x03, //0x000023ac movb $3(%r15), %cl - 0x8d, 0x51, 0xd0, //0x000023b0 leal $-48(%rcx), %edx - 0x80, 0xfa, 0x0a, //0x000023b3 cmpb $10, %dl - 0x0f, 0x82, 0x2a, 0x00, 0x00, 0x00, //0x000023b6 jb LBB9_56 - //0x000023bc LBB9_54 - 0x49, 0xc7, 0xc4, 0xfe, 0xff, 0xff, 0xff, //0x000023bc movq $-2, %r12 - 0x80, 0xc1, 0xbf, //0x000023c3 addb $-65, %cl - 0x80, 0xf9, 0x25, //0x000023c6 cmpb $37, %cl - 0x0f, 0x87, 0xfc, 0xfe, 0xff, 0xff, //0x000023c9 ja LBB9_120 - 0x0f, 0xb6, 0xc9, //0x000023cf movzbl %cl, %ecx - 0x48, 0xba, 0x3f, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, //0x000023d2 movabsq $270582939711, %rdx - 0x48, 0x0f, 0xa3, 0xca, //0x000023dc btq %rcx, %rdx - 0x0f, 0x83, 0xe5, 0xfe, 0xff, 0xff, //0x000023e0 jae LBB9_120 - //0x000023e6 LBB9_56 - 0x48, 0x83, 0xc0, 0x04, //0x000023e6 addq $4, %rax - 0x48, 0x89, 0x06, //0x000023ea movq %rax, (%rsi) - 0x49, 0xc7, 0xc4, 0xfe, 0xff, 0xff, 0xff, //0x000023ed movq $-2, %r12 - 0xe9, 0xd2, 0xfe, 0xff, 0xff, //0x000023f4 jmp LBB9_120 - //0x000023f9 LBB9_19 - 0x48, 0x8b, 0x45, 0xd0, //0x000023f9 movq $-48(%rbp), %rax - 0x48, 0x89, 0x30, //0x000023fd movq %rsi, (%rax) - 0x49, 0xc7, 0xc4, 0xff, 0xff, 0xff, 0xff, //0x00002400 movq $-1, %r12 - 0xe9, 0xbf, 0xfe, 0xff, 0xff, //0x00002407 jmp LBB9_120 - //0x0000240c LBB9_37 - 0x45, 0x31, 0xed, //0x0000240c xorl %r13d, %r13d - 0xe9, 0xb1, 0xfe, 0xff, 0xff, //0x0000240f jmp LBB9_2 - //0x00002414 LBB9_34 - 0x48, 0xf7, 0xd7, //0x00002414 notq %rdi - 0x49, 0x01, 0xff, //0x00002417 addq %rdi, %r15 - 0x48, 0x8b, 0x45, 0xd0, //0x0000241a movq $-48(%rbp), %rax - 0x4c, 0x89, 0x38, //0x0000241e movq %r15, (%rax) - 0x49, 0xc7, 0xc4, 0xfd, 0xff, 0xff, 0xff, //0x00002421 movq $-3, %r12 - 0xe9, 0x9e, 0xfe, 0xff, 0xff, //0x00002428 jmp LBB9_120 - //0x0000242d LBB9_23 - 0x48, 0xf7, 0xd7, //0x0000242d notq %rdi - 0x49, 0x01, 0xff, //0x00002430 addq %rdi, %r15 - //0x00002433 LBB9_24 - 0x48, 0x8b, 0x45, 0xd0, //0x00002433 movq $-48(%rbp), %rax - 0x4c, 0x89, 0x38, //0x00002437 movq %r15, (%rax) - 0x49, 0xc7, 0xc4, 0xfe, 0xff, 0xff, 0xff, //0x0000243a movq $-2, %r12 - 0xe9, 0x85, 0xfe, 0xff, 0xff, //0x00002441 jmp LBB9_120 - //0x00002446 LBB9_29 - 0x49, 0x29, 0xff, //0x00002446 subq %rdi, %r15 - 0x49, 0x83, 0xc7, 0x01, //0x00002449 addq $1, %r15 - 0xe9, 0xe1, 0xff, 0xff, 0xff, //0x0000244d jmp LBB9_24 - //0x00002452 LBB9_67 - 0xf6, 0x45, 0xc0, 0x02, //0x00002452 testb $2, $-64(%rbp) - 0x0f, 0x84, 0x26, 0x01, 0x00, 0x00, //0x00002456 je LBB9_91 - 0x66, 0x41, 0xc7, 0x04, 0x24, 0xef, 0xbf, //0x0000245c movw $-16401, (%r12) - 0x41, 0xc6, 0x44, 0x24, 0x02, 0xbd, //0x00002463 movb $-67, $2(%r12) - 0x49, 0x83, 0xc4, 0x03, //0x00002469 addq $3, %r12 - 0x45, 0x31, 0xed, //0x0000246d xorl %r13d, %r13d - 0xe9, 0x50, 0xfe, 0xff, 0xff, //0x00002470 jmp LBB9_2 - //0x00002475 LBB9_86 - 0x4d, 0x89, 0xf7, //0x00002475 movq %r14, %r15 - //0x00002478 LBB9_104 - 0x4c, 0x89, 0xf8, //0x00002478 movq %r15, %rax - 0x48, 0x2b, 0x45, 0xc8, //0x0000247b subq $-56(%rbp), %rax - 0x48, 0x83, 0xc0, 0x02, //0x0000247f addq $2, %rax - 0x48, 0x8b, 0x75, 0xd0, //0x00002483 movq $-48(%rbp), %rsi - 0x48, 0x89, 0x06, //0x00002487 movq %rax, (%rsi) - 0x41, 0x8a, 0x4f, 0x02, //0x0000248a movb $2(%r15), %cl - 0x8d, 0x51, 0xd0, //0x0000248e leal $-48(%rcx), %edx - 0x80, 0xfa, 0x0a, //0x00002491 cmpb $10, %dl - 0x0f, 0x82, 0x2a, 0x00, 0x00, 0x00, //0x00002494 jb LBB9_107 - 0x49, 0xc7, 0xc4, 0xfe, 0xff, 0xff, 0xff, //0x0000249a movq $-2, %r12 - 0x80, 0xc1, 0xbf, //0x000024a1 addb $-65, %cl - 0x80, 0xf9, 0x25, //0x000024a4 cmpb $37, %cl - 0x0f, 0x87, 0x1e, 0xfe, 0xff, 0xff, //0x000024a7 ja LBB9_120 - 0x0f, 0xb6, 0xc9, //0x000024ad movzbl %cl, %ecx - 0x48, 0xba, 0x3f, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, //0x000024b0 movabsq $270582939711, %rdx - 0x48, 0x0f, 0xa3, 0xca, //0x000024ba btq %rcx, %rdx - 0x0f, 0x83, 0x07, 0xfe, 0xff, 0xff, //0x000024be jae LBB9_120 - //0x000024c4 LBB9_107 - 0x48, 0x8d, 0x48, 0x01, //0x000024c4 leaq $1(%rax), %rcx - 0x48, 0x89, 0x0e, //0x000024c8 movq %rcx, (%rsi) - 0x41, 0x8a, 0x4f, 0x03, //0x000024cb movb $3(%r15), %cl - 0x8d, 0x51, 0xd0, //0x000024cf leal $-48(%rcx), %edx - 0x80, 0xfa, 0x09, //0x000024d2 cmpb $9, %dl - 0x0f, 0x86, 0x2a, 0x00, 0x00, 0x00, //0x000024d5 jbe LBB9_110 - 0x49, 0xc7, 0xc4, 0xfe, 0xff, 0xff, 0xff, //0x000024db movq $-2, %r12 - 0x80, 0xc1, 0xbf, //0x000024e2 addb $-65, %cl - 0x80, 0xf9, 0x25, //0x000024e5 cmpb $37, %cl - 0x0f, 0x87, 0xdd, 0xfd, 0xff, 0xff, //0x000024e8 ja LBB9_120 - 0x0f, 0xb6, 0xc9, //0x000024ee movzbl %cl, %ecx - 0x48, 0xba, 0x3f, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, //0x000024f1 movabsq $270582939711, %rdx - 0x48, 0x0f, 0xa3, 0xca, //0x000024fb btq %rcx, %rdx - 0x0f, 0x83, 0xc6, 0xfd, 0xff, 0xff, //0x000024ff jae LBB9_120 - //0x00002505 LBB9_110 - 0x48, 0x8d, 0x48, 0x02, //0x00002505 leaq $2(%rax), %rcx - 0x48, 0x89, 0x0e, //0x00002509 movq %rcx, (%rsi) - 0x41, 0x8a, 0x4f, 0x04, //0x0000250c movb $4(%r15), %cl - 0x8d, 0x51, 0xd0, //0x00002510 leal $-48(%rcx), %edx - 0x80, 0xfa, 0x0a, //0x00002513 cmpb $10, %dl - 0x0f, 0x82, 0x2a, 0x00, 0x00, 0x00, //0x00002516 jb LBB9_113 - 0x49, 0xc7, 0xc4, 0xfe, 0xff, 0xff, 0xff, //0x0000251c movq $-2, %r12 - 0x80, 0xc1, 0xbf, //0x00002523 addb $-65, %cl - 0x80, 0xf9, 0x25, //0x00002526 cmpb $37, %cl - 0x0f, 0x87, 0x9c, 0xfd, 0xff, 0xff, //0x00002529 ja LBB9_120 - 0x0f, 0xb6, 0xc9, //0x0000252f movzbl %cl, %ecx - 0x48, 0xba, 0x3f, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, //0x00002532 movabsq $270582939711, %rdx - 0x48, 0x0f, 0xa3, 0xca, //0x0000253c btq %rcx, %rdx - 0x0f, 0x83, 0x85, 0xfd, 0xff, 0xff, //0x00002540 jae LBB9_120 - //0x00002546 LBB9_113 - 0x48, 0x8d, 0x48, 0x03, //0x00002546 leaq $3(%rax), %rcx - 0x48, 0x89, 0x0e, //0x0000254a movq %rcx, (%rsi) - 0x41, 0x8a, 0x4f, 0x05, //0x0000254d movb $5(%r15), %cl - 0x8d, 0x51, 0xd0, //0x00002551 leal $-48(%rcx), %edx - 0x80, 0xfa, 0x0a, //0x00002554 cmpb $10, %dl - 0x0f, 0x83, 0x5f, 0xfe, 0xff, 0xff, //0x00002557 jae LBB9_54 - 0xe9, 0x84, 0xfe, 0xff, 0xff, //0x0000255d jmp LBB9_56 - //0x00002562 LBB9_117 - 0x4c, 0x2b, 0x7d, 0xc8, //0x00002562 subq $-56(%rbp), %r15 - 0xe9, 0x3d, 0xfd, 0xff, 0xff, //0x00002566 jmp LBB9_118 - //0x0000256b LBB9_101 - 0x4d, 0x89, 0xfe, //0x0000256b movq %r15, %r14 - //0x0000256e LBB9_102 - 0x4c, 0x2b, 0x75, 0xc8, //0x0000256e subq $-56(%rbp), %r14 - 0x49, 0x83, 0xc6, 0xfc, //0x00002572 addq $-4, %r14 - 0x48, 0x8b, 0x45, 0xd0, //0x00002576 movq $-48(%rbp), %rax - 0x4c, 0x89, 0x30, //0x0000257a movq %r14, (%rax) - 0xe9, 0x31, 0xfd, 0xff, 0xff, //0x0000257d jmp LBB9_119 - //0x00002582 LBB9_91 - 0x48, 0x8b, 0x45, 0xd0, //0x00002582 movq $-48(%rbp), %rax - 0x48, 0x8b, 0x4d, 0xb8, //0x00002586 movq $-72(%rbp), %rcx - 0x48, 0x89, 0x08, //0x0000258a movq %rcx, (%rax) - 0x49, 0xc7, 0xc4, 0xff, 0xff, 0xff, 0xff, //0x0000258d movq $-1, %r12 - 0xe9, 0x32, 0xfd, 0xff, 0xff, //0x00002594 jmp LBB9_120 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002599 .p2align 4, 0x90 - //0x000025a0 _unhex16_is - 0x55, //0x000025a0 pushq %rbp - 0x48, 0x89, 0xe5, //0x000025a1 movq %rsp, %rbp - 0x8b, 0x07, //0x000025a4 movl (%rdi), %eax - 0x89, 0xc1, //0x000025a6 movl %eax, %ecx - 0xf7, 0xd1, //0x000025a8 notl %ecx - 0x8d, 0x90, 0xd0, 0xcf, 0xcf, 0xcf, //0x000025aa leal $-808464432(%rax), %edx - 0x81, 0xe1, 0x80, 0x80, 0x80, 0x80, //0x000025b0 andl $-2139062144, %ecx - 0x85, 0xd1, //0x000025b6 testl %edx, %ecx - 0x0f, 0x84, 0x07, 0x00, 0x00, 0x00, //0x000025b8 je LBB10_2 - 0x31, 0xc0, //0x000025be xorl %eax, %eax - 0x0f, 0xb6, 0xc0, //0x000025c0 movzbl %al, %eax - 0x5d, //0x000025c3 popq %rbp - 0xc3, //0x000025c4 retq - //0x000025c5 LBB10_2 - 0x8d, 0x90, 0x19, 0x19, 0x19, 0x19, //0x000025c5 leal $421075225(%rax), %edx - 0x09, 0xc2, //0x000025cb orl %eax, %edx - 0xf7, 0xc2, 0x80, 0x80, 0x80, 0x80, //0x000025cd testl $-2139062144, %edx - 0x0f, 0x84, 0x07, 0x00, 0x00, 0x00, //0x000025d3 je LBB10_4 - 0x31, 0xc0, //0x000025d9 xorl %eax, %eax - 0x0f, 0xb6, 0xc0, //0x000025db movzbl %al, %eax - 0x5d, //0x000025de popq %rbp - 0xc3, //0x000025df retq - //0x000025e0 LBB10_4 - 0x25, 0x7f, 0x7f, 0x7f, 0x7f, //0x000025e0 andl $2139062143, %eax - 0xba, 0xc0, 0xc0, 0xc0, 0xc0, //0x000025e5 movl $-1061109568, %edx - 0x29, 0xc2, //0x000025ea subl %eax, %edx - 0x8d, 0xb0, 0x46, 0x46, 0x46, 0x46, //0x000025ec leal $1179010630(%rax), %esi - 0x21, 0xca, //0x000025f2 andl %ecx, %edx - 0x85, 0xf2, //0x000025f4 testl %esi, %edx - 0x0f, 0x84, 0x07, 0x00, 0x00, 0x00, //0x000025f6 je LBB10_6 - 0x31, 0xc0, //0x000025fc xorl %eax, %eax - 0x0f, 0xb6, 0xc0, //0x000025fe movzbl %al, %eax - 0x5d, //0x00002601 popq %rbp - 0xc3, //0x00002602 retq - //0x00002603 LBB10_6 - 0xba, 0xe0, 0xe0, 0xe0, 0xe0, //0x00002603 movl $-522133280, %edx - 0x29, 0xc2, //0x00002608 subl %eax, %edx - 0x05, 0x39, 0x39, 0x39, 0x39, //0x0000260a addl $960051513, %eax - 0x21, 0xd1, //0x0000260f andl %edx, %ecx - 0x85, 0xc1, //0x00002611 testl %eax, %ecx - 0x0f, 0x94, 0xc0, //0x00002613 sete %al - 0x0f, 0xb6, 0xc0, //0x00002616 movzbl %al, %eax - 0x5d, //0x00002619 popq %rbp - 0xc3, //0x0000261a retq - 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000261b .p2align 4, 0x00 - //0x00002620 LCPI11_0 - 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, //0x00002620 QUAD $0x2626262626262626; QUAD $0x2626262626262626 // .space 16, '&&&&&&&&&&&&&&&&' - //0x00002630 LCPI11_1 - 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, //0x00002630 QUAD $0xe2e2e2e2e2e2e2e2; QUAD $0xe2e2e2e2e2e2e2e2 // .space 16, '\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2' - //0x00002640 LCPI11_2 - 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, //0x00002640 QUAD $0xfdfdfdfdfdfdfdfd; QUAD $0xfdfdfdfdfdfdfdfd // .space 16, '\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd' - //0x00002650 LCPI11_3 - 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, //0x00002650 QUAD $0x3c3c3c3c3c3c3c3c; QUAD $0x3c3c3c3c3c3c3c3c // .space 16, '<<<<<<<<<<<<<<<<' - //0x00002660 .p2align 4, 0x90 - //0x00002660 _html_escape - 0x55, //0x00002660 pushq %rbp - 0x48, 0x89, 0xe5, //0x00002661 movq %rsp, %rbp - 0x41, 0x57, //0x00002664 pushq %r15 - 0x41, 0x56, //0x00002666 pushq %r14 - 0x41, 0x55, //0x00002668 pushq %r13 - 0x41, 0x54, //0x0000266a pushq %r12 - 0x53, //0x0000266c pushq %rbx - 0x48, 0x83, 0xec, 0x10, //0x0000266d subq $16, %rsp - 0x48, 0x89, 0x4d, 0xc8, //0x00002671 movq %rcx, $-56(%rbp) - 0x49, 0x89, 0xd6, //0x00002675 movq %rdx, %r14 - 0x48, 0x89, 0x55, 0xd0, //0x00002678 movq %rdx, $-48(%rbp) - 0x48, 0x89, 0xf8, //0x0000267c movq %rdi, %rax - 0x48, 0x85, 0xf6, //0x0000267f testq %rsi, %rsi - 0x0f, 0x8e, 0xa2, 0x04, 0x00, 0x00, //0x00002682 jle LBB11_70 - 0x48, 0x8b, 0x45, 0xc8, //0x00002688 movq $-56(%rbp), %rax - 0x4c, 0x8b, 0x08, //0x0000268c movq (%rax), %r9 - 0xc5, 0xf9, 0x6f, 0x05, 0x89, 0xff, 0xff, 0xff, //0x0000268f vmovdqa $-119(%rip), %xmm0 /* LCPI11_0+0(%rip) */ - 0xc5, 0xf9, 0x6f, 0x0d, 0x91, 0xff, 0xff, 0xff, //0x00002697 vmovdqa $-111(%rip), %xmm1 /* LCPI11_1+0(%rip) */ - 0xc5, 0xf9, 0x6f, 0x15, 0x99, 0xff, 0xff, 0xff, //0x0000269f vmovdqa $-103(%rip), %xmm2 /* LCPI11_2+0(%rip) */ - 0xc5, 0xf9, 0x6f, 0x1d, 0xa1, 0xff, 0xff, 0xff, //0x000026a7 vmovdqa $-95(%rip), %xmm3 /* LCPI11_3+0(%rip) */ - 0x4c, 0x8d, 0x1d, 0x2a, 0xe7, 0x00, 0x00, //0x000026af leaq $59178(%rip), %r11 /* __HtmlQuoteTab+0(%rip) */ - 0x49, 0x89, 0xfc, //0x000026b6 movq %rdi, %r12 - 0x4c, 0x8b, 0x75, 0xd0, //0x000026b9 movq $-48(%rbp), %r14 - 0x90, 0x90, 0x90, //0x000026bd .p2align 4, 0x90 - //0x000026c0 LBB11_2 - 0x4d, 0x85, 0xc9, //0x000026c0 testq %r9, %r9 - 0x0f, 0x8e, 0x7f, 0x04, 0x00, 0x00, //0x000026c3 jle LBB11_3 - 0x48, 0x83, 0xfe, 0x10, //0x000026c9 cmpq $16, %rsi - 0x0f, 0x9d, 0xc0, //0x000026cd setge %al - 0x4d, 0x89, 0xcd, //0x000026d0 movq %r9, %r13 - 0x4d, 0x89, 0xf0, //0x000026d3 movq %r14, %r8 - 0x48, 0x89, 0xf3, //0x000026d6 movq %rsi, %rbx - 0x4d, 0x89, 0xe7, //0x000026d9 movq %r12, %r15 - 0x0f, 0x8c, 0x7e, 0x00, 0x00, 0x00, //0x000026dc jl LBB11_12 - 0x49, 0x83, 0xf9, 0x10, //0x000026e2 cmpq $16, %r9 - 0x0f, 0x8c, 0x74, 0x00, 0x00, 0x00, //0x000026e6 jl LBB11_12 - 0x45, 0x31, 0xc0, //0x000026ec xorl %r8d, %r8d - 0x48, 0x89, 0xf2, //0x000026ef movq %rsi, %rdx - 0x4c, 0x89, 0xc9, //0x000026f2 movq %r9, %rcx - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000026f5 .p2align 4, 0x90 - //0x00002700 LBB11_7 - 0xc4, 0x81, 0x7a, 0x6f, 0x24, 0x04, //0x00002700 vmovdqu (%r12,%r8), %xmm4 - 0xc5, 0xd9, 0x74, 0xe8, //0x00002706 vpcmpeqb %xmm0, %xmm4, %xmm5 - 0xc5, 0xd9, 0x74, 0xf1, //0x0000270a vpcmpeqb %xmm1, %xmm4, %xmm6 - 0xc5, 0xc9, 0xeb, 0xed, //0x0000270e vpor %xmm5, %xmm6, %xmm5 - 0xc5, 0xd9, 0xdb, 0xf2, //0x00002712 vpand %xmm2, %xmm4, %xmm6 - 0xc5, 0xc9, 0x74, 0xf3, //0x00002716 vpcmpeqb %xmm3, %xmm6, %xmm6 - 0xc5, 0xd1, 0xeb, 0xee, //0x0000271a vpor %xmm6, %xmm5, %xmm5 - 0xc4, 0x81, 0x7a, 0x7f, 0x24, 0x06, //0x0000271e vmovdqu %xmm4, (%r14,%r8) - 0xc5, 0xf9, 0xd7, 0xc5, //0x00002724 vpmovmskb %xmm5, %eax - 0x85, 0xc0, //0x00002728 testl %eax, %eax - 0x0f, 0x85, 0x50, 0x01, 0x00, 0x00, //0x0000272a jne LBB11_8 - 0x48, 0x8d, 0x5a, 0xf0, //0x00002730 leaq $-16(%rdx), %rbx - 0x4c, 0x8d, 0x69, 0xf0, //0x00002734 leaq $-16(%rcx), %r13 - 0x49, 0x83, 0xc0, 0x10, //0x00002738 addq $16, %r8 - 0x48, 0x83, 0xfa, 0x20, //0x0000273c cmpq $32, %rdx - 0x0f, 0x9d, 0xc0, //0x00002740 setge %al - 0x0f, 0x8c, 0x10, 0x00, 0x00, 0x00, //0x00002743 jl LBB11_11 - 0x48, 0x89, 0xda, //0x00002749 movq %rbx, %rdx - 0x48, 0x83, 0xf9, 0x1f, //0x0000274c cmpq $31, %rcx - 0x4c, 0x89, 0xe9, //0x00002750 movq %r13, %rcx - 0x0f, 0x8f, 0xa7, 0xff, 0xff, 0xff, //0x00002753 jg LBB11_7 - //0x00002759 LBB11_11 - 0x4f, 0x8d, 0x3c, 0x04, //0x00002759 leaq (%r12,%r8), %r15 - 0x4d, 0x01, 0xf0, //0x0000275d addq %r14, %r8 - //0x00002760 LBB11_12 - 0x84, 0xc0, //0x00002760 testb %al, %al - 0x0f, 0x84, 0x68, 0x00, 0x00, 0x00, //0x00002762 je LBB11_13 - 0xc4, 0xc1, 0x7a, 0x6f, 0x27, //0x00002768 vmovdqu (%r15), %xmm4 - 0xc5, 0xd9, 0x74, 0xe8, //0x0000276d vpcmpeqb %xmm0, %xmm4, %xmm5 - 0xc5, 0xd9, 0x74, 0xf1, //0x00002771 vpcmpeqb %xmm1, %xmm4, %xmm6 - 0xc5, 0xc9, 0xeb, 0xed, //0x00002775 vpor %xmm5, %xmm6, %xmm5 - 0xc5, 0xd9, 0xdb, 0xf2, //0x00002779 vpand %xmm2, %xmm4, %xmm6 - 0xc5, 0xc9, 0x74, 0xf3, //0x0000277d vpcmpeqb %xmm3, %xmm6, %xmm6 - 0xc5, 0xd1, 0xeb, 0xee, //0x00002781 vpor %xmm6, %xmm5, %xmm5 - 0xc5, 0xf9, 0xd7, 0xc5, //0x00002785 vpmovmskb %xmm5, %eax - 0x0d, 0x00, 0x00, 0x01, 0x00, //0x00002789 orl $65536, %eax - 0x44, 0x0f, 0xbc, 0xd0, //0x0000278e bsfl %eax, %r10d - 0xc4, 0xe1, 0xf9, 0x7e, 0xe0, //0x00002792 vmovq %xmm4, %rax - 0x4d, 0x39, 0xd5, //0x00002797 cmpq %r10, %r13 - 0x0f, 0x8d, 0xf9, 0x00, 0x00, 0x00, //0x0000279a jge LBB11_24 - 0x49, 0x83, 0xfd, 0x08, //0x000027a0 cmpq $8, %r13 - 0x0f, 0x82, 0x32, 0x01, 0x00, 0x00, //0x000027a4 jb LBB11_35 - 0x49, 0x89, 0x00, //0x000027aa movq %rax, (%r8) - 0x4d, 0x8d, 0x57, 0x08, //0x000027ad leaq $8(%r15), %r10 - 0x49, 0x83, 0xc0, 0x08, //0x000027b1 addq $8, %r8 - 0x49, 0x8d, 0x5d, 0xf8, //0x000027b5 leaq $-8(%r13), %rbx - 0x48, 0x83, 0xfb, 0x04, //0x000027b9 cmpq $4, %rbx - 0x0f, 0x8d, 0x29, 0x01, 0x00, 0x00, //0x000027bd jge LBB11_38 - 0xe9, 0x36, 0x01, 0x00, 0x00, //0x000027c3 jmp LBB11_39 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000027c8 .p2align 4, 0x90 - //0x000027d0 LBB11_13 - 0x48, 0x85, 0xdb, //0x000027d0 testq %rbx, %rbx - 0x0f, 0x8e, 0x87, 0x00, 0x00, 0x00, //0x000027d3 jle LBB11_21 - 0x4d, 0x85, 0xed, //0x000027d9 testq %r13, %r13 - 0x0f, 0x8e, 0x7e, 0x00, 0x00, 0x00, //0x000027dc jle LBB11_21 - 0x31, 0xd2, //0x000027e2 xorl %edx, %edx - 0x31, 0xc0, //0x000027e4 xorl %eax, %eax - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000027e6 .p2align 4, 0x90 - //0x000027f0 LBB11_16 - 0x45, 0x0f, 0xb6, 0x1c, 0x17, //0x000027f0 movzbl (%r15,%rdx), %r11d - 0x49, 0x83, 0xfb, 0x3e, //0x000027f5 cmpq $62, %r11 - 0x0f, 0x87, 0x14, 0x00, 0x00, 0x00, //0x000027f9 ja LBB11_17 - 0x48, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x50, //0x000027ff movabsq $5764607797912141824, %rcx - 0x4c, 0x0f, 0xa3, 0xd9, //0x00002809 btq %r11, %rcx - 0x0f, 0x82, 0xae, 0x00, 0x00, 0x00, //0x0000280d jb LBB11_45 - //0x00002813 LBB11_17 - 0x41, 0x80, 0xfb, 0xe2, //0x00002813 cmpb $-30, %r11b - 0x0f, 0x84, 0xa4, 0x00, 0x00, 0x00, //0x00002817 je LBB11_45 - 0x4c, 0x8d, 0x14, 0x03, //0x0000281d leaq (%rbx,%rax), %r10 - 0x45, 0x88, 0x1c, 0x10, //0x00002821 movb %r11b, (%r8,%rdx) - 0x48, 0x8d, 0x48, 0xff, //0x00002825 leaq $-1(%rax), %rcx - 0x49, 0x83, 0xfa, 0x02, //0x00002829 cmpq $2, %r10 - 0x0f, 0x8c, 0x14, 0x00, 0x00, 0x00, //0x0000282d jl LBB11_20 - 0x4c, 0x01, 0xe8, //0x00002833 addq %r13, %rax - 0x48, 0x83, 0xc2, 0x01, //0x00002836 addq $1, %rdx - 0x48, 0x83, 0xf8, 0x01, //0x0000283a cmpq $1, %rax - 0x48, 0x89, 0xc8, //0x0000283e movq %rcx, %rax - 0x0f, 0x8f, 0xa9, 0xff, 0xff, 0xff, //0x00002841 jg LBB11_16 - //0x00002847 LBB11_20 - 0x49, 0x29, 0xcf, //0x00002847 subq %rcx, %r15 - 0x48, 0x01, 0xcb, //0x0000284a addq %rcx, %rbx - 0x4c, 0x8d, 0x1d, 0x8c, 0xe5, 0x00, 0x00, //0x0000284d leaq $58764(%rip), %r11 /* __HtmlQuoteTab+0(%rip) */ - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002854 .p2align 4, 0x90 - //0x00002860 LBB11_21 - 0x48, 0x85, 0xdb, //0x00002860 testq %rbx, %rbx - 0x0f, 0x84, 0x5e, 0x01, 0x00, 0x00, //0x00002863 je LBB11_22 - 0x49, 0xf7, 0xd7, //0x00002869 notq %r15 - 0x4d, 0x01, 0xe7, //0x0000286c addq %r12, %r15 - 0x4d, 0x85, 0xff, //0x0000286f testq %r15, %r15 - 0x0f, 0x89, 0x68, 0x01, 0x00, 0x00, //0x00002872 jns LBB11_49 - 0xe9, 0x88, 0x02, 0x00, 0x00, //0x00002878 jmp LBB11_48 - 0x90, 0x90, 0x90, //0x0000287d .p2align 4, 0x90 - //0x00002880 LBB11_8 - 0x66, 0x0f, 0xbc, 0xc0, //0x00002880 bsfw %ax, %ax - 0x44, 0x0f, 0xb7, 0xf8, //0x00002884 movzwl %ax, %r15d - 0x4d, 0x01, 0xc7, //0x00002888 addq %r8, %r15 - 0x4d, 0x85, 0xff, //0x0000288b testq %r15, %r15 - 0x0f, 0x89, 0x4c, 0x01, 0x00, 0x00, //0x0000288e jns LBB11_49 - 0xe9, 0x6c, 0x02, 0x00, 0x00, //0x00002894 jmp LBB11_48 - //0x00002899 LBB11_24 - 0x41, 0x83, 0xfa, 0x08, //0x00002899 cmpl $8, %r10d - 0x0f, 0x82, 0x8e, 0x00, 0x00, 0x00, //0x0000289d jb LBB11_25 - 0x49, 0x89, 0x00, //0x000028a3 movq %rax, (%r8) - 0x4d, 0x8d, 0x6f, 0x08, //0x000028a6 leaq $8(%r15), %r13 - 0x49, 0x83, 0xc0, 0x08, //0x000028aa addq $8, %r8 - 0x49, 0x8d, 0x5a, 0xf8, //0x000028ae leaq $-8(%r10), %rbx - 0x48, 0x83, 0xfb, 0x04, //0x000028b2 cmpq $4, %rbx - 0x0f, 0x8d, 0x85, 0x00, 0x00, 0x00, //0x000028b6 jge LBB11_28 - 0xe9, 0x93, 0x00, 0x00, 0x00, //0x000028bc jmp LBB11_29 - //0x000028c1 LBB11_45 - 0x4d, 0x29, 0xe7, //0x000028c1 subq %r12, %r15 - 0x49, 0x29, 0xc7, //0x000028c4 subq %rax, %r15 - 0x4c, 0x8d, 0x1d, 0x12, 0xe5, 0x00, 0x00, //0x000028c7 leaq $58642(%rip), %r11 /* __HtmlQuoteTab+0(%rip) */ - 0x4d, 0x85, 0xff, //0x000028ce testq %r15, %r15 - 0x0f, 0x89, 0x09, 0x01, 0x00, 0x00, //0x000028d1 jns LBB11_49 - 0xe9, 0x29, 0x02, 0x00, 0x00, //0x000028d7 jmp LBB11_48 - //0x000028dc LBB11_35 - 0x4d, 0x89, 0xfa, //0x000028dc movq %r15, %r10 - 0x4c, 0x89, 0xeb, //0x000028df movq %r13, %rbx - 0x48, 0x83, 0xfb, 0x04, //0x000028e2 cmpq $4, %rbx - 0x0f, 0x8c, 0x12, 0x00, 0x00, 0x00, //0x000028e6 jl LBB11_39 - //0x000028ec LBB11_38 - 0x41, 0x8b, 0x02, //0x000028ec movl (%r10), %eax - 0x41, 0x89, 0x00, //0x000028ef movl %eax, (%r8) - 0x49, 0x83, 0xc2, 0x04, //0x000028f2 addq $4, %r10 - 0x49, 0x83, 0xc0, 0x04, //0x000028f6 addq $4, %r8 - 0x48, 0x83, 0xc3, 0xfc, //0x000028fa addq $-4, %rbx - //0x000028fe LBB11_39 - 0x48, 0x83, 0xfb, 0x02, //0x000028fe cmpq $2, %rbx - 0x0f, 0x83, 0x7a, 0x00, 0x00, 0x00, //0x00002902 jae LBB11_40 - 0x48, 0x85, 0xdb, //0x00002908 testq %rbx, %rbx - 0x0f, 0x84, 0x06, 0x00, 0x00, 0x00, //0x0000290b je LBB11_43 - //0x00002911 LBB11_42 - 0x41, 0x8a, 0x02, //0x00002911 movb (%r10), %al - 0x41, 0x88, 0x00, //0x00002914 movb %al, (%r8) - //0x00002917 LBB11_43 - 0x4d, 0x01, 0xfd, //0x00002917 addq %r15, %r13 - 0x49, 0xf7, 0xd5, //0x0000291a notq %r13 - 0x4d, 0x01, 0xe5, //0x0000291d addq %r12, %r13 - 0x4d, 0x89, 0xef, //0x00002920 movq %r13, %r15 - 0x4d, 0x85, 0xff, //0x00002923 testq %r15, %r15 - 0x0f, 0x89, 0xb4, 0x00, 0x00, 0x00, //0x00002926 jns LBB11_49 - 0xe9, 0xd4, 0x01, 0x00, 0x00, //0x0000292c jmp LBB11_48 - //0x00002931 LBB11_25 - 0x4d, 0x89, 0xfd, //0x00002931 movq %r15, %r13 - 0x4c, 0x89, 0xd3, //0x00002934 movq %r10, %rbx - 0x48, 0x83, 0xfb, 0x04, //0x00002937 cmpq $4, %rbx - 0x0f, 0x8c, 0x13, 0x00, 0x00, 0x00, //0x0000293b jl LBB11_29 - //0x00002941 LBB11_28 - 0x41, 0x8b, 0x45, 0x00, //0x00002941 movl (%r13), %eax - 0x41, 0x89, 0x00, //0x00002945 movl %eax, (%r8) - 0x49, 0x83, 0xc5, 0x04, //0x00002948 addq $4, %r13 - 0x49, 0x83, 0xc0, 0x04, //0x0000294c addq $4, %r8 - 0x48, 0x83, 0xc3, 0xfc, //0x00002950 addq $-4, %rbx - //0x00002954 LBB11_29 - 0x48, 0x83, 0xfb, 0x02, //0x00002954 cmpq $2, %rbx - 0x0f, 0x83, 0x46, 0x00, 0x00, 0x00, //0x00002958 jae LBB11_30 - 0x48, 0x85, 0xdb, //0x0000295e testq %rbx, %rbx - 0x0f, 0x84, 0x07, 0x00, 0x00, 0x00, //0x00002961 je LBB11_33 - //0x00002967 LBB11_32 - 0x41, 0x8a, 0x45, 0x00, //0x00002967 movb (%r13), %al - 0x41, 0x88, 0x00, //0x0000296b movb %al, (%r8) - //0x0000296e LBB11_33 - 0x4d, 0x29, 0xe7, //0x0000296e subq %r12, %r15 - 0x4d, 0x01, 0xd7, //0x00002971 addq %r10, %r15 - 0x4d, 0x85, 0xff, //0x00002974 testq %r15, %r15 - 0x0f, 0x89, 0x63, 0x00, 0x00, 0x00, //0x00002977 jns LBB11_49 - 0xe9, 0x83, 0x01, 0x00, 0x00, //0x0000297d jmp LBB11_48 - //0x00002982 LBB11_40 - 0x41, 0x0f, 0xb7, 0x02, //0x00002982 movzwl (%r10), %eax - 0x66, 0x41, 0x89, 0x00, //0x00002986 movw %ax, (%r8) - 0x49, 0x83, 0xc2, 0x02, //0x0000298a addq $2, %r10 - 0x49, 0x83, 0xc0, 0x02, //0x0000298e addq $2, %r8 - 0x48, 0x83, 0xc3, 0xfe, //0x00002992 addq $-2, %rbx - 0x48, 0x85, 0xdb, //0x00002996 testq %rbx, %rbx - 0x0f, 0x85, 0x72, 0xff, 0xff, 0xff, //0x00002999 jne LBB11_42 - 0xe9, 0x73, 0xff, 0xff, 0xff, //0x0000299f jmp LBB11_43 - //0x000029a4 LBB11_30 - 0x41, 0x0f, 0xb7, 0x45, 0x00, //0x000029a4 movzwl (%r13), %eax - 0x66, 0x41, 0x89, 0x00, //0x000029a9 movw %ax, (%r8) - 0x49, 0x83, 0xc5, 0x02, //0x000029ad addq $2, %r13 - 0x49, 0x83, 0xc0, 0x02, //0x000029b1 addq $2, %r8 - 0x48, 0x83, 0xc3, 0xfe, //0x000029b5 addq $-2, %rbx - 0x48, 0x85, 0xdb, //0x000029b9 testq %rbx, %rbx - 0x0f, 0x85, 0xa5, 0xff, 0xff, 0xff, //0x000029bc jne LBB11_32 - 0xe9, 0xa7, 0xff, 0xff, 0xff, //0x000029c2 jmp LBB11_33 - //0x000029c7 LBB11_22 - 0x4d, 0x29, 0xe7, //0x000029c7 subq %r12, %r15 - 0x4d, 0x85, 0xff, //0x000029ca testq %r15, %r15 - 0x0f, 0x88, 0x32, 0x01, 0x00, 0x00, //0x000029cd js LBB11_48 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000029d3 .p2align 4, 0x90 - //0x000029e0 LBB11_49 - 0x4d, 0x01, 0xfc, //0x000029e0 addq %r15, %r12 - 0x4d, 0x01, 0xfe, //0x000029e3 addq %r15, %r14 - 0x4c, 0x29, 0xfe, //0x000029e6 subq %r15, %rsi - 0x0f, 0x8e, 0x38, 0x01, 0x00, 0x00, //0x000029e9 jle LBB11_50 - 0x4d, 0x29, 0xf9, //0x000029ef subq %r15, %r9 - 0x41, 0x8a, 0x0c, 0x24, //0x000029f2 movb (%r12), %cl - 0x80, 0xf9, 0xe2, //0x000029f6 cmpb $-30, %cl - 0x0f, 0x84, 0xb4, 0x00, 0x00, 0x00, //0x000029f9 je LBB11_53 - 0x4c, 0x89, 0xe0, //0x000029ff movq %r12, %rax - //0x00002a02 LBB11_57 - 0x0f, 0xb6, 0xc9, //0x00002a02 movzbl %cl, %ecx - 0x48, 0xc1, 0xe1, 0x04, //0x00002a05 shlq $4, %rcx - 0x4a, 0x8b, 0x14, 0x19, //0x00002a09 movq (%rcx,%r11), %rdx - 0x4c, 0x63, 0xfa, //0x00002a0d movslq %edx, %r15 - 0x4d, 0x29, 0xf9, //0x00002a10 subq %r15, %r9 - 0x0f, 0x8c, 0x24, 0x01, 0x00, 0x00, //0x00002a13 jl LBB11_58 - 0x48, 0xc1, 0xe2, 0x20, //0x00002a19 shlq $32, %rdx - 0x4e, 0x8d, 0x14, 0x19, //0x00002a1d leaq (%rcx,%r11), %r10 - 0x49, 0x83, 0xc2, 0x08, //0x00002a21 addq $8, %r10 - 0x48, 0xbb, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, //0x00002a25 movabsq $12884901889, %rbx - 0x48, 0x39, 0xda, //0x00002a2f cmpq %rbx, %rdx - 0x0f, 0x8c, 0x28, 0x00, 0x00, 0x00, //0x00002a32 jl LBB11_62 - 0x41, 0x8b, 0x12, //0x00002a38 movl (%r10), %edx - 0x41, 0x89, 0x16, //0x00002a3b movl %edx, (%r14) - 0x4e, 0x8d, 0x14, 0x19, //0x00002a3e leaq (%rcx,%r11), %r10 - 0x49, 0x83, 0xc2, 0x0c, //0x00002a42 addq $12, %r10 - 0x4d, 0x8d, 0x46, 0x04, //0x00002a46 leaq $4(%r14), %r8 - 0x49, 0x8d, 0x4f, 0xfc, //0x00002a4a leaq $-4(%r15), %rcx - 0x48, 0x83, 0xf9, 0x02, //0x00002a4e cmpq $2, %rcx - 0x0f, 0x83, 0x18, 0x00, 0x00, 0x00, //0x00002a52 jae LBB11_65 - 0xe9, 0x27, 0x00, 0x00, 0x00, //0x00002a58 jmp LBB11_66 - 0x90, 0x90, 0x90, //0x00002a5d .p2align 4, 0x90 - //0x00002a60 LBB11_62 - 0x4d, 0x89, 0xf0, //0x00002a60 movq %r14, %r8 - 0x4c, 0x89, 0xf9, //0x00002a63 movq %r15, %rcx - 0x48, 0x83, 0xf9, 0x02, //0x00002a66 cmpq $2, %rcx - 0x0f, 0x82, 0x14, 0x00, 0x00, 0x00, //0x00002a6a jb LBB11_66 - //0x00002a70 LBB11_65 - 0x41, 0x0f, 0xb7, 0x12, //0x00002a70 movzwl (%r10), %edx - 0x66, 0x41, 0x89, 0x10, //0x00002a74 movw %dx, (%r8) - 0x49, 0x83, 0xc2, 0x02, //0x00002a78 addq $2, %r10 - 0x49, 0x83, 0xc0, 0x02, //0x00002a7c addq $2, %r8 - 0x48, 0x83, 0xc1, 0xfe, //0x00002a80 addq $-2, %rcx - //0x00002a84 LBB11_66 - 0x48, 0x85, 0xc9, //0x00002a84 testq %rcx, %rcx - 0x0f, 0x84, 0x06, 0x00, 0x00, 0x00, //0x00002a87 je LBB11_68 - 0x41, 0x8a, 0x0a, //0x00002a8d movb (%r10), %cl - 0x41, 0x88, 0x08, //0x00002a90 movb %cl, (%r8) - //0x00002a93 LBB11_68 - 0x4d, 0x01, 0xfe, //0x00002a93 addq %r15, %r14 - //0x00002a96 LBB11_69 - 0x48, 0x83, 0xc0, 0x01, //0x00002a96 addq $1, %rax - 0x48, 0x8d, 0x4e, 0xff, //0x00002a9a leaq $-1(%rsi), %rcx - 0x49, 0x89, 0xc4, //0x00002a9e movq %rax, %r12 - 0x48, 0x83, 0xfe, 0x01, //0x00002aa1 cmpq $1, %rsi - 0x48, 0x89, 0xce, //0x00002aa5 movq %rcx, %rsi - 0x0f, 0x8f, 0x12, 0xfc, 0xff, 0xff, //0x00002aa8 jg LBB11_2 - 0xe9, 0x77, 0x00, 0x00, 0x00, //0x00002aae jmp LBB11_70 - //0x00002ab3 LBB11_53 - 0x48, 0x83, 0xfe, 0x03, //0x00002ab3 cmpq $3, %rsi - 0x0f, 0x8c, 0x2b, 0x00, 0x00, 0x00, //0x00002ab7 jl LBB11_59 - 0x41, 0x80, 0x7c, 0x24, 0x01, 0x80, //0x00002abd cmpb $-128, $1(%r12) - 0x0f, 0x85, 0x1f, 0x00, 0x00, 0x00, //0x00002ac3 jne LBB11_59 - 0x41, 0x8a, 0x4c, 0x24, 0x02, //0x00002ac9 movb $2(%r12), %cl - 0x89, 0xc8, //0x00002ace movl %ecx, %eax - 0x24, 0xfe, //0x00002ad0 andb $-2, %al - 0x3c, 0xa8, //0x00002ad2 cmpb $-88, %al - 0x0f, 0x85, 0x0e, 0x00, 0x00, 0x00, //0x00002ad4 jne LBB11_59 - 0x49, 0x8d, 0x44, 0x24, 0x02, //0x00002ada leaq $2(%r12), %rax - 0x48, 0x83, 0xc6, 0xfe, //0x00002adf addq $-2, %rsi - 0xe9, 0x1a, 0xff, 0xff, 0xff, //0x00002ae3 jmp LBB11_57 - //0x00002ae8 LBB11_59 - 0x4d, 0x85, 0xc9, //0x00002ae8 testq %r9, %r9 - 0x0f, 0x8e, 0x57, 0x00, 0x00, 0x00, //0x00002aeb jle LBB11_3 - 0x41, 0xc6, 0x06, 0xe2, //0x00002af1 movb $-30, (%r14) - 0x49, 0x83, 0xc6, 0x01, //0x00002af5 addq $1, %r14 - 0x49, 0x83, 0xc1, 0xff, //0x00002af9 addq $-1, %r9 - 0x4c, 0x89, 0xe0, //0x00002afd movq %r12, %rax - 0xe9, 0x91, 0xff, 0xff, 0xff, //0x00002b00 jmp LBB11_69 - //0x00002b05 LBB11_48 - 0x48, 0x8b, 0x4d, 0xd0, //0x00002b05 movq $-48(%rbp), %rcx - 0x4c, 0x01, 0xf9, //0x00002b09 addq %r15, %rcx - 0x48, 0xf7, 0xd1, //0x00002b0c notq %rcx - 0x4c, 0x01, 0xf1, //0x00002b0f addq %r14, %rcx - 0x48, 0x8b, 0x45, 0xc8, //0x00002b12 movq $-56(%rbp), %rax - 0x48, 0x89, 0x08, //0x00002b16 movq %rcx, (%rax) - 0x4c, 0x29, 0xe7, //0x00002b19 subq %r12, %rdi - 0x4c, 0x01, 0xff, //0x00002b1c addq %r15, %rdi - 0x48, 0x89, 0xf8, //0x00002b1f movq %rdi, %rax - 0xe9, 0x2a, 0x00, 0x00, 0x00, //0x00002b22 jmp LBB11_71 - //0x00002b27 LBB11_50 - 0x4c, 0x89, 0xe0, //0x00002b27 movq %r12, %rax - //0x00002b2a LBB11_70 - 0x4c, 0x2b, 0x75, 0xd0, //0x00002b2a subq $-48(%rbp), %r14 - 0x48, 0x8b, 0x4d, 0xc8, //0x00002b2e movq $-56(%rbp), %rcx - 0x4c, 0x89, 0x31, //0x00002b32 movq %r14, (%rcx) - 0x48, 0x29, 0xf8, //0x00002b35 subq %rdi, %rax - 0xe9, 0x14, 0x00, 0x00, 0x00, //0x00002b38 jmp LBB11_71 - //0x00002b3d LBB11_58 - 0x4c, 0x2b, 0x75, 0xd0, //0x00002b3d subq $-48(%rbp), %r14 - 0x48, 0x8b, 0x45, 0xc8, //0x00002b41 movq $-56(%rbp), %rax - 0x4c, 0x89, 0x30, //0x00002b45 movq %r14, (%rax) - //0x00002b48 LBB11_3 - 0x49, 0xf7, 0xd4, //0x00002b48 notq %r12 - 0x49, 0x01, 0xfc, //0x00002b4b addq %rdi, %r12 - 0x4c, 0x89, 0xe0, //0x00002b4e movq %r12, %rax - //0x00002b51 LBB11_71 - 0x48, 0x83, 0xc4, 0x10, //0x00002b51 addq $16, %rsp - 0x5b, //0x00002b55 popq %rbx - 0x41, 0x5c, //0x00002b56 popq %r12 - 0x41, 0x5d, //0x00002b58 popq %r13 - 0x41, 0x5e, //0x00002b5a popq %r14 - 0x41, 0x5f, //0x00002b5c popq %r15 - 0x5d, //0x00002b5e popq %rbp - 0xc3, //0x00002b5f retq - //0x00002b60 .p2align 4, 0x90 - //0x00002b60 _atof_eisel_lemire64 - 0x55, //0x00002b60 pushq %rbp - 0x48, 0x89, 0xe5, //0x00002b61 movq %rsp, %rbp - 0x41, 0x57, //0x00002b64 pushq %r15 - 0x41, 0x56, //0x00002b66 pushq %r14 - 0x41, 0x54, //0x00002b68 pushq %r12 - 0x53, //0x00002b6a pushq %rbx - 0x8d, 0x86, 0x5c, 0x01, 0x00, 0x00, //0x00002b6b leal $348(%rsi), %eax - 0x3d, 0xb7, 0x02, 0x00, 0x00, //0x00002b71 cmpl $695, %eax - 0x0f, 0x87, 0x1d, 0x01, 0x00, 0x00, //0x00002b76 ja LBB12_1 - 0x49, 0x89, 0xc8, //0x00002b7c movq %rcx, %r8 - 0x41, 0x89, 0xd1, //0x00002b7f movl %edx, %r9d - 0x48, 0x85, 0xff, //0x00002b82 testq %rdi, %rdi - 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x00002b85 je LBB12_4 - 0x4c, 0x0f, 0xbd, 0xd7, //0x00002b8b bsrq %rdi, %r10 - 0x49, 0x83, 0xf2, 0x3f, //0x00002b8f xorq $63, %r10 - 0xe9, 0x06, 0x00, 0x00, 0x00, //0x00002b93 jmp LBB12_5 - //0x00002b98 LBB12_4 - 0x41, 0xba, 0x40, 0x00, 0x00, 0x00, //0x00002b98 movl $64, %r10d - //0x00002b9e LBB12_5 - 0x44, 0x89, 0xd1, //0x00002b9e movl %r10d, %ecx - 0x48, 0xd3, 0xe7, //0x00002ba1 shlq %cl, %rdi - 0x89, 0xc1, //0x00002ba4 movl %eax, %ecx - 0x48, 0xc1, 0xe1, 0x04, //0x00002ba6 shlq $4, %rcx - 0x4c, 0x8d, 0x25, 0x7f, 0x6c, 0x00, 0x00, //0x00002baa leaq $27775(%rip), %r12 /* _POW10_M128_TAB+0(%rip) */ - 0x48, 0x89, 0xf8, //0x00002bb1 movq %rdi, %rax - 0x4a, 0xf7, 0x64, 0x21, 0x08, //0x00002bb4 mulq $8(%rcx,%r12) - 0x49, 0x89, 0xc7, //0x00002bb9 movq %rax, %r15 - 0x49, 0x89, 0xd3, //0x00002bbc movq %rdx, %r11 - 0x44, 0x89, 0xdb, //0x00002bbf movl %r11d, %ebx - 0x81, 0xe3, 0xff, 0x01, 0x00, 0x00, //0x00002bc2 andl $511, %ebx - 0x48, 0x81, 0xfb, 0xff, 0x01, 0x00, 0x00, //0x00002bc8 cmpq $511, %rbx - 0x0f, 0x85, 0x52, 0x00, 0x00, 0x00, //0x00002bcf jne LBB12_11 - 0x49, 0x89, 0xfe, //0x00002bd5 movq %rdi, %r14 - 0x49, 0xf7, 0xd6, //0x00002bd8 notq %r14 - 0x4c, 0x89, 0xfa, //0x00002bdb movq %r15, %rdx - 0x4d, 0x39, 0xf7, //0x00002bde cmpq %r14, %r15 - 0x0f, 0x86, 0x43, 0x00, 0x00, 0x00, //0x00002be1 jbe LBB12_13 - 0x48, 0x89, 0xf8, //0x00002be7 movq %rdi, %rax - 0x4a, 0xf7, 0x24, 0x21, //0x00002bea mulq (%rcx,%r12) - 0x4c, 0x01, 0xfa, //0x00002bee addq %r15, %rdx - 0x49, 0x83, 0xd3, 0x00, //0x00002bf1 adcq $0, %r11 - 0x44, 0x89, 0xd9, //0x00002bf5 movl %r11d, %ecx - 0xf7, 0xd1, //0x00002bf8 notl %ecx - 0xf7, 0xc1, 0xff, 0x01, 0x00, 0x00, //0x00002bfa testl $511, %ecx - 0x0f, 0x85, 0x13, 0x00, 0x00, 0x00, //0x00002c00 jne LBB12_12 - 0x48, 0x83, 0xfa, 0xff, //0x00002c06 cmpq $-1, %rdx - 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00002c0a jne LBB12_12 - 0x4c, 0x39, 0xf0, //0x00002c10 cmpq %r14, %rax - 0x0f, 0x87, 0x80, 0x00, 0x00, 0x00, //0x00002c13 ja LBB12_1 - //0x00002c19 LBB12_12 - 0x44, 0x89, 0xdb, //0x00002c19 movl %r11d, %ebx - 0x81, 0xe3, 0xff, 0x01, 0x00, 0x00, //0x00002c1c andl $511, %ebx - 0xe9, 0x03, 0x00, 0x00, 0x00, //0x00002c22 jmp LBB12_13 - //0x00002c27 LBB12_11 - 0x4c, 0x89, 0xfa, //0x00002c27 movq %r15, %rdx - //0x00002c2a LBB12_13 - 0x4c, 0x89, 0xd8, //0x00002c2a movq %r11, %rax - 0x48, 0xc1, 0xe8, 0x3f, //0x00002c2d shrq $63, %rax - 0x8d, 0x48, 0x09, //0x00002c31 leal $9(%rax), %ecx - 0x49, 0xd3, 0xeb, //0x00002c34 shrq %cl, %r11 - 0x48, 0x85, 0xd2, //0x00002c37 testq %rdx, %rdx - 0x0f, 0x85, 0x18, 0x00, 0x00, 0x00, //0x00002c3a jne LBB12_17 - 0x48, 0x85, 0xdb, //0x00002c40 testq %rbx, %rbx - 0x0f, 0x85, 0x0f, 0x00, 0x00, 0x00, //0x00002c43 jne LBB12_17 - 0x44, 0x89, 0xd9, //0x00002c49 movl %r11d, %ecx - 0x83, 0xe1, 0x03, //0x00002c4c andl $3, %ecx - 0x83, 0xf9, 0x01, //0x00002c4f cmpl $1, %ecx - 0x0f, 0x84, 0x41, 0x00, 0x00, 0x00, //0x00002c52 je LBB12_1 - //0x00002c58 LBB12_17 - 0x69, 0xce, 0x6a, 0x52, 0x03, 0x00, //0x00002c58 imull $217706, %esi, %ecx - 0xc1, 0xf9, 0x10, //0x00002c5e sarl $16, %ecx - 0x81, 0xc1, 0x3f, 0x04, 0x00, 0x00, //0x00002c61 addl $1087, %ecx - 0x48, 0x63, 0xf1, //0x00002c67 movslq %ecx, %rsi - 0x4c, 0x29, 0xd6, //0x00002c6a subq %r10, %rsi - 0x44, 0x89, 0xda, //0x00002c6d movl %r11d, %edx - 0x83, 0xe2, 0x01, //0x00002c70 andl $1, %edx - 0x4c, 0x01, 0xda, //0x00002c73 addq %r11, %rdx - 0x48, 0x89, 0xd1, //0x00002c76 movq %rdx, %rcx - 0x48, 0xc1, 0xe9, 0x36, //0x00002c79 shrq $54, %rcx - 0x48, 0x01, 0xf0, //0x00002c7d addq %rsi, %rax - 0x48, 0x83, 0xf9, 0x01, //0x00002c80 cmpq $1, %rcx - 0x48, 0x83, 0xd8, 0x00, //0x00002c84 sbbq $0, %rax - 0x48, 0x8d, 0x70, 0xff, //0x00002c88 leaq $-1(%rax), %rsi - 0x48, 0x81, 0xfe, 0xfd, 0x07, 0x00, 0x00, //0x00002c8c cmpq $2045, %rsi - 0x0f, 0x86, 0x0b, 0x00, 0x00, 0x00, //0x00002c93 jbe LBB12_19 - //0x00002c99 LBB12_1 - 0x31, 0xc0, //0x00002c99 xorl %eax, %eax - //0x00002c9b LBB12_20 - 0x5b, //0x00002c9b popq %rbx - 0x41, 0x5c, //0x00002c9c popq %r12 - 0x41, 0x5e, //0x00002c9e popq %r14 - 0x41, 0x5f, //0x00002ca0 popq %r15 - 0x5d, //0x00002ca2 popq %rbp - 0xc3, //0x00002ca3 retq - //0x00002ca4 LBB12_19 - 0x48, 0x83, 0xf9, 0x01, //0x00002ca4 cmpq $1, %rcx - 0xb1, 0x02, //0x00002ca8 movb $2, %cl - 0x80, 0xd9, 0x00, //0x00002caa sbbb $0, %cl - 0x48, 0xd3, 0xea, //0x00002cad shrq %cl, %rdx - 0x48, 0xc1, 0xe0, 0x34, //0x00002cb0 shlq $52, %rax - 0x48, 0xb9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, //0x00002cb4 movabsq $4503599627370495, %rcx - 0x48, 0x21, 0xd1, //0x00002cbe andq %rdx, %rcx - 0x48, 0x09, 0xc1, //0x00002cc1 orq %rax, %rcx - 0x48, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x00002cc4 movabsq $-9223372036854775808, %rax - 0x48, 0x09, 0xc8, //0x00002cce orq %rcx, %rax - 0x41, 0x83, 0xf9, 0xff, //0x00002cd1 cmpl $-1, %r9d - 0x48, 0x0f, 0x45, 0xc1, //0x00002cd5 cmovneq %rcx, %rax - 0x49, 0x89, 0x00, //0x00002cd9 movq %rax, (%r8) - 0xb0, 0x01, //0x00002cdc movb $1, %al - 0xe9, 0xb8, 0xff, 0xff, 0xff, //0x00002cde jmp LBB12_20 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002ce3 .p2align 4, 0x90 - //0x00002cf0 _decimal_to_f64 - 0x55, //0x00002cf0 pushq %rbp - 0x48, 0x89, 0xe5, //0x00002cf1 movq %rsp, %rbp - 0x41, 0x57, //0x00002cf4 pushq %r15 - 0x41, 0x56, //0x00002cf6 pushq %r14 - 0x41, 0x55, //0x00002cf8 pushq %r13 - 0x41, 0x54, //0x00002cfa pushq %r12 - 0x53, //0x00002cfc pushq %rbx - 0x50, //0x00002cfd pushq %rax - 0x48, 0x89, 0xf3, //0x00002cfe movq %rsi, %rbx - 0x49, 0x89, 0xff, //0x00002d01 movq %rdi, %r15 - 0x49, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, //0x00002d04 movabsq $4503599627370496, %r13 - 0x83, 0x7f, 0x10, 0x00, //0x00002d0e cmpl $0, $16(%rdi) - 0x0f, 0x84, 0x2f, 0x00, 0x00, 0x00, //0x00002d12 je LBB13_4 - 0x49, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x7f, //0x00002d18 movabsq $9218868437227405312, %r14 - 0x41, 0x8b, 0x47, 0x14, //0x00002d22 movl $20(%r15), %eax - 0x45, 0x31, 0xe4, //0x00002d26 xorl %r12d, %r12d - 0x3d, 0x36, 0x01, 0x00, 0x00, //0x00002d29 cmpl $310, %eax - 0x0f, 0x8f, 0x4e, 0x03, 0x00, 0x00, //0x00002d2e jg LBB13_64 - 0x3d, 0xb6, 0xfe, 0xff, 0xff, //0x00002d34 cmpl $-330, %eax - 0x0f, 0x8d, 0x13, 0x00, 0x00, 0x00, //0x00002d39 jge LBB13_5 - 0x45, 0x31, 0xf6, //0x00002d3f xorl %r14d, %r14d - 0xe9, 0x3b, 0x03, 0x00, 0x00, //0x00002d42 jmp LBB13_64 - //0x00002d47 LBB13_4 - 0x45, 0x31, 0xf6, //0x00002d47 xorl %r14d, %r14d - 0x45, 0x31, 0xe4, //0x00002d4a xorl %r12d, %r12d - 0xe9, 0x30, 0x03, 0x00, 0x00, //0x00002d4d jmp LBB13_64 - //0x00002d52 LBB13_5 - 0x85, 0xc0, //0x00002d52 testl %eax, %eax - 0x48, 0x89, 0x5d, 0xd0, //0x00002d54 movq %rbx, $-48(%rbp) - 0x0f, 0x8e, 0x5a, 0x00, 0x00, 0x00, //0x00002d58 jle LBB13_12 - 0x45, 0x31, 0xe4, //0x00002d5e xorl %r12d, %r12d - 0x4c, 0x8d, 0x35, 0x58, 0x96, 0x00, 0x00, //0x00002d61 leaq $38488(%rip), %r14 /* _POW_TAB+0(%rip) */ - 0xe9, 0x2d, 0x00, 0x00, 0x00, //0x00002d68 jmp LBB13_8 - 0x90, 0x90, 0x90, //0x00002d6d .p2align 4, 0x90 - //0x00002d70 LBB13_10 - 0x89, 0xc0, //0x00002d70 movl %eax, %eax - 0x41, 0x8b, 0x1c, 0x86, //0x00002d72 movl (%r14,%rax,4), %ebx - 0x41, 0x83, 0x7f, 0x10, 0x00, //0x00002d76 cmpl $0, $16(%r15) - 0x0f, 0x84, 0x0a, 0x00, 0x00, 0x00, //0x00002d7b je LBB13_7 - //0x00002d81 LBB13_11 - 0x4c, 0x89, 0xff, //0x00002d81 movq %r15, %rdi - 0x89, 0xde, //0x00002d84 movl %ebx, %esi - 0xe8, 0x55, 0x62, 0x00, 0x00, //0x00002d86 callq _right_shift - //0x00002d8b LBB13_7 - 0x41, 0x01, 0xdc, //0x00002d8b addl %ebx, %r12d - 0x41, 0x8b, 0x47, 0x14, //0x00002d8e movl $20(%r15), %eax - 0x85, 0xc0, //0x00002d92 testl %eax, %eax - 0x0f, 0x8e, 0x1e, 0x00, 0x00, 0x00, //0x00002d94 jle LBB13_12 - //0x00002d9a LBB13_8 - 0x83, 0xf8, 0x08, //0x00002d9a cmpl $8, %eax - 0x0f, 0x8e, 0xcd, 0xff, 0xff, 0xff, //0x00002d9d jle LBB13_10 - 0xbb, 0x1b, 0x00, 0x00, 0x00, //0x00002da3 movl $27, %ebx - 0x41, 0x83, 0x7f, 0x10, 0x00, //0x00002da8 cmpl $0, $16(%r15) - 0x0f, 0x85, 0xce, 0xff, 0xff, 0xff, //0x00002dad jne LBB13_11 - 0xe9, 0xd3, 0xff, 0xff, 0xff, //0x00002db3 jmp LBB13_7 - //0x00002db8 LBB13_12 - 0x4c, 0x8d, 0x35, 0x01, 0x96, 0x00, 0x00, //0x00002db8 leaq $38401(%rip), %r14 /* _POW_TAB+0(%rip) */ - 0xe9, 0x2d, 0x00, 0x00, 0x00, //0x00002dbf jmp LBB13_14 - //0x00002dc4 LBB13_18 - 0xbb, 0x1b, 0x00, 0x00, 0x00, //0x00002dc4 movl $27, %ebx - 0x41, 0x83, 0x7f, 0x10, 0x00, //0x00002dc9 cmpl $0, $16(%r15) - 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x00002dce je LBB13_13 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002dd4 .p2align 4, 0x90 - //0x00002de0 LBB13_20 - 0x4c, 0x89, 0xff, //0x00002de0 movq %r15, %rdi - 0x89, 0xde, //0x00002de3 movl %ebx, %esi - 0xe8, 0xd6, 0x5f, 0x00, 0x00, //0x00002de5 callq _left_shift - 0x41, 0x8b, 0x47, 0x14, //0x00002dea movl $20(%r15), %eax - //0x00002dee LBB13_13 - 0x41, 0x29, 0xdc, //0x00002dee subl %ebx, %r12d - //0x00002df1 LBB13_14 - 0x85, 0xc0, //0x00002df1 testl %eax, %eax - 0x0f, 0x88, 0x17, 0x00, 0x00, 0x00, //0x00002df3 js LBB13_17 - 0x0f, 0x85, 0x32, 0x00, 0x00, 0x00, //0x00002df9 jne LBB13_21 - 0x49, 0x8b, 0x0f, //0x00002dff movq (%r15), %rcx - 0x80, 0x39, 0x35, //0x00002e02 cmpb $53, (%rcx) - 0x0f, 0x8c, 0x0e, 0x00, 0x00, 0x00, //0x00002e05 jl LBB13_19 - 0xe9, 0x21, 0x00, 0x00, 0x00, //0x00002e0b jmp LBB13_21 - //0x00002e10 .p2align 4, 0x90 - //0x00002e10 LBB13_17 - 0x83, 0xf8, 0xf8, //0x00002e10 cmpl $-8, %eax - 0x0f, 0x8c, 0xab, 0xff, 0xff, 0xff, //0x00002e13 jl LBB13_18 - //0x00002e19 LBB13_19 - 0x89, 0xc1, //0x00002e19 movl %eax, %ecx - 0xf7, 0xd9, //0x00002e1b negl %ecx - 0x41, 0x8b, 0x1c, 0x8e, //0x00002e1d movl (%r14,%rcx,4), %ebx - 0x41, 0x83, 0x7f, 0x10, 0x00, //0x00002e21 cmpl $0, $16(%r15) - 0x0f, 0x85, 0xb4, 0xff, 0xff, 0xff, //0x00002e26 jne LBB13_20 - 0xe9, 0xbd, 0xff, 0xff, 0xff, //0x00002e2c jmp LBB13_13 - //0x00002e31 LBB13_21 - 0x41, 0x81, 0xfc, 0x02, 0xfc, 0xff, 0xff, //0x00002e31 cmpl $-1022, %r12d - 0x0f, 0x8f, 0x56, 0x00, 0x00, 0x00, //0x00002e38 jg LBB13_27 - 0x41, 0x83, 0x7f, 0x10, 0x00, //0x00002e3e cmpl $0, $16(%r15) - 0x48, 0x8b, 0x5d, 0xd0, //0x00002e43 movq $-48(%rbp), %rbx - 0x0f, 0x84, 0x64, 0x00, 0x00, 0x00, //0x00002e47 je LBB13_29 - 0x41, 0x81, 0xfc, 0xc6, 0xfb, 0xff, 0xff, //0x00002e4d cmpl $-1082, %r12d - 0x0f, 0x8f, 0x62, 0x00, 0x00, 0x00, //0x00002e54 jg LBB13_30 - 0x41, 0x81, 0xc4, 0xc1, 0x03, 0x00, 0x00, //0x00002e5a addl $961, %r12d - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002e61 .p2align 4, 0x90 - //0x00002e70 LBB13_25 - 0x4c, 0x89, 0xff, //0x00002e70 movq %r15, %rdi - 0xbe, 0x3c, 0x00, 0x00, 0x00, //0x00002e73 movl $60, %esi - 0xe8, 0x63, 0x61, 0x00, 0x00, //0x00002e78 callq _right_shift - 0x41, 0x83, 0xc4, 0x3c, //0x00002e7d addl $60, %r12d - 0x41, 0x83, 0xfc, 0x88, //0x00002e81 cmpl $-120, %r12d - 0x0f, 0x8c, 0xe5, 0xff, 0xff, 0xff, //0x00002e85 jl LBB13_25 - 0x41, 0x83, 0xc4, 0x3c, //0x00002e8b addl $60, %r12d - 0xe9, 0x2f, 0x00, 0x00, 0x00, //0x00002e8f jmp LBB13_31 - //0x00002e94 LBB13_27 - 0x41, 0x81, 0xfc, 0x00, 0x04, 0x00, 0x00, //0x00002e94 cmpl $1024, %r12d - 0x48, 0x8b, 0x5d, 0xd0, //0x00002e9b movq $-48(%rbp), %rbx - 0x0f, 0x8f, 0xa5, 0x01, 0x00, 0x00, //0x00002e9f jg LBB13_61 - 0x41, 0x83, 0xc4, 0xff, //0x00002ea5 addl $-1, %r12d - 0x45, 0x89, 0xe6, //0x00002ea9 movl %r12d, %r14d - 0xe9, 0x26, 0x00, 0x00, 0x00, //0x00002eac jmp LBB13_32 - //0x00002eb1 LBB13_29 - 0x41, 0xbe, 0x02, 0xfc, 0xff, 0xff, //0x00002eb1 movl $-1022, %r14d - 0xe9, 0x33, 0x00, 0x00, 0x00, //0x00002eb7 jmp LBB13_34 - //0x00002ebc LBB13_30 - 0x41, 0x81, 0xc4, 0xfd, 0x03, 0x00, 0x00, //0x00002ebc addl $1021, %r12d - //0x00002ec3 LBB13_31 - 0x41, 0xf7, 0xdc, //0x00002ec3 negl %r12d - 0x4c, 0x89, 0xff, //0x00002ec6 movq %r15, %rdi - 0x44, 0x89, 0xe6, //0x00002ec9 movl %r12d, %esi - 0xe8, 0x0f, 0x61, 0x00, 0x00, //0x00002ecc callq _right_shift - 0x41, 0xbe, 0x02, 0xfc, 0xff, 0xff, //0x00002ed1 movl $-1022, %r14d - //0x00002ed7 LBB13_32 - 0x41, 0x83, 0x7f, 0x10, 0x00, //0x00002ed7 cmpl $0, $16(%r15) - 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x00002edc je LBB13_34 - 0x4c, 0x89, 0xff, //0x00002ee2 movq %r15, %rdi - 0xbe, 0x35, 0x00, 0x00, 0x00, //0x00002ee5 movl $53, %esi - 0xe8, 0xd1, 0x5e, 0x00, 0x00, //0x00002eea callq _left_shift - //0x00002eef LBB13_34 - 0x41, 0x8b, 0x47, 0x14, //0x00002eef movl $20(%r15), %eax - 0x49, 0xc7, 0xc4, 0xff, 0xff, 0xff, 0xff, //0x00002ef3 movq $-1, %r12 - 0x83, 0xf8, 0x14, //0x00002efa cmpl $20, %eax - 0x0f, 0x8f, 0x60, 0x01, 0x00, 0x00, //0x00002efd jg LBB13_63 - 0x85, 0xc0, //0x00002f03 testl %eax, %eax - 0x0f, 0x8e, 0x57, 0x00, 0x00, 0x00, //0x00002f05 jle LBB13_40 - 0x41, 0x8b, 0x57, 0x10, //0x00002f0b movl $16(%r15), %edx - 0x31, 0xf6, //0x00002f0f xorl %esi, %esi - 0x85, 0xd2, //0x00002f11 testl %edx, %edx - 0x0f, 0x4e, 0xd6, //0x00002f13 cmovlel %esi, %edx - 0x4c, 0x8d, 0x48, 0xff, //0x00002f16 leaq $-1(%rax), %r9 - 0x49, 0x39, 0xd1, //0x00002f1a cmpq %rdx, %r9 - 0x4c, 0x0f, 0x43, 0xca, //0x00002f1d cmovaeq %rdx, %r9 - 0x45, 0x8d, 0x41, 0x01, //0x00002f21 leal $1(%r9), %r8d - 0x45, 0x31, 0xe4, //0x00002f25 xorl %r12d, %r12d - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002f28 .p2align 4, 0x90 - //0x00002f30 LBB13_37 - 0x48, 0x39, 0xf2, //0x00002f30 cmpq %rsi, %rdx - 0x0f, 0x84, 0x2f, 0x00, 0x00, 0x00, //0x00002f33 je LBB13_41 - 0x4b, 0x8d, 0x3c, 0xa4, //0x00002f39 leaq (%r12,%r12,4), %rdi - 0x49, 0x8b, 0x0f, //0x00002f3d movq (%r15), %rcx - 0x48, 0x0f, 0xbe, 0x0c, 0x31, //0x00002f40 movsbq (%rcx,%rsi), %rcx - 0x4c, 0x8d, 0x24, 0x79, //0x00002f45 leaq (%rcx,%rdi,2), %r12 - 0x49, 0x83, 0xc4, 0xd0, //0x00002f49 addq $-48, %r12 - 0x48, 0x83, 0xc6, 0x01, //0x00002f4d addq $1, %rsi - 0x48, 0x39, 0xf0, //0x00002f51 cmpq %rsi, %rax - 0x0f, 0x85, 0xd6, 0xff, 0xff, 0xff, //0x00002f54 jne LBB13_37 - 0x45, 0x89, 0xc1, //0x00002f5a movl %r8d, %r9d - 0xe9, 0x06, 0x00, 0x00, 0x00, //0x00002f5d jmp LBB13_41 - //0x00002f62 LBB13_40 - 0x45, 0x31, 0xc9, //0x00002f62 xorl %r9d, %r9d - 0x45, 0x31, 0xe4, //0x00002f65 xorl %r12d, %r12d - //0x00002f68 LBB13_41 - 0x44, 0x39, 0xc8, //0x00002f68 cmpl %r9d, %eax - 0x0f, 0x8e, 0x5f, 0x00, 0x00, 0x00, //0x00002f6b jle LBB13_49 - 0x89, 0xc6, //0x00002f71 movl %eax, %esi - 0x44, 0x29, 0xce, //0x00002f73 subl %r9d, %esi - 0x44, 0x89, 0xca, //0x00002f76 movl %r9d, %edx - 0xf7, 0xd2, //0x00002f79 notl %edx - 0x01, 0xc2, //0x00002f7b addl %eax, %edx - 0x83, 0xe6, 0x07, //0x00002f7d andl $7, %esi - 0x0f, 0x84, 0x1f, 0x00, 0x00, 0x00, //0x00002f80 je LBB13_46 - 0xf7, 0xde, //0x00002f86 negl %esi - 0x31, 0xff, //0x00002f88 xorl %edi, %edi - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002f8a .p2align 4, 0x90 - //0x00002f90 LBB13_44 - 0x4d, 0x01, 0xe4, //0x00002f90 addq %r12, %r12 - 0x4f, 0x8d, 0x24, 0xa4, //0x00002f93 leaq (%r12,%r12,4), %r12 - 0x83, 0xc7, 0xff, //0x00002f97 addl $-1, %edi - 0x39, 0xfe, //0x00002f9a cmpl %edi, %esi - 0x0f, 0x85, 0xee, 0xff, 0xff, 0xff, //0x00002f9c jne LBB13_44 - 0x41, 0x29, 0xf9, //0x00002fa2 subl %edi, %r9d - //0x00002fa5 LBB13_46 - 0x83, 0xfa, 0x07, //0x00002fa5 cmpl $7, %edx - 0x0f, 0x82, 0x22, 0x00, 0x00, 0x00, //0x00002fa8 jb LBB13_49 - 0x89, 0xc2, //0x00002fae movl %eax, %edx - 0x44, 0x29, 0xca, //0x00002fb0 subl %r9d, %edx - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002fb3 .p2align 4, 0x90 - //0x00002fc0 LBB13_48 - 0x4d, 0x69, 0xe4, 0x00, 0xe1, 0xf5, 0x05, //0x00002fc0 imulq $100000000, %r12, %r12 - 0x83, 0xc2, 0xf8, //0x00002fc7 addl $-8, %edx - 0x0f, 0x85, 0xf0, 0xff, 0xff, 0xff, //0x00002fca jne LBB13_48 - //0x00002fd0 LBB13_49 - 0x85, 0xc0, //0x00002fd0 testl %eax, %eax - 0x0f, 0x88, 0x4a, 0x00, 0x00, 0x00, //0x00002fd2 js LBB13_57 - 0x41, 0x8b, 0x4f, 0x10, //0x00002fd8 movl $16(%r15), %ecx - 0x39, 0xc1, //0x00002fdc cmpl %eax, %ecx - 0x0f, 0x8e, 0x3e, 0x00, 0x00, 0x00, //0x00002fde jle LBB13_57 - 0x49, 0x8b, 0x37, //0x00002fe4 movq (%r15), %rsi - 0x8a, 0x14, 0x06, //0x00002fe7 movb (%rsi,%rax), %dl - 0x80, 0xfa, 0x35, //0x00002fea cmpb $53, %dl - 0x0f, 0x85, 0xc3, 0x00, 0x00, 0x00, //0x00002fed jne LBB13_58 - 0x8d, 0x78, 0x01, //0x00002ff3 leal $1(%rax), %edi - 0x39, 0xcf, //0x00002ff6 cmpl %ecx, %edi - 0x0f, 0x85, 0xb8, 0x00, 0x00, 0x00, //0x00002ff8 jne LBB13_58 - 0x41, 0x83, 0x7f, 0x1c, 0x00, //0x00002ffe cmpl $0, $28(%r15) - 0x0f, 0x95, 0xc1, //0x00003003 setne %cl - 0x0f, 0x85, 0x18, 0x00, 0x00, 0x00, //0x00003006 jne LBB13_59 - 0x85, 0xc0, //0x0000300c testl %eax, %eax - 0x0f, 0x8e, 0x10, 0x00, 0x00, 0x00, //0x0000300e jle LBB13_59 - 0x83, 0xc0, 0xff, //0x00003014 addl $-1, %eax - 0x8a, 0x0c, 0x06, //0x00003017 movb (%rsi,%rax), %cl - 0x80, 0xe1, 0x01, //0x0000301a andb $1, %cl - 0xe9, 0x02, 0x00, 0x00, 0x00, //0x0000301d jmp LBB13_59 - //0x00003022 LBB13_57 - 0x31, 0xc9, //0x00003022 xorl %ecx, %ecx - //0x00003024 LBB13_59 - 0x0f, 0xb6, 0xc1, //0x00003024 movzbl %cl, %eax - 0x49, 0x01, 0xc4, //0x00003027 addq %rax, %r12 - 0x48, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, //0x0000302a movabsq $9007199254740992, %rax - 0x49, 0x39, 0xc4, //0x00003034 cmpq %rax, %r12 - 0x0f, 0x85, 0x26, 0x00, 0x00, 0x00, //0x00003037 jne LBB13_63 - 0x41, 0x81, 0xfe, 0xfe, 0x03, 0x00, 0x00, //0x0000303d cmpl $1022, %r14d - 0x0f, 0x8e, 0x12, 0x00, 0x00, 0x00, //0x00003044 jle LBB13_62 - //0x0000304a LBB13_61 - 0x45, 0x31, 0xe4, //0x0000304a xorl %r12d, %r12d - 0x49, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x7f, //0x0000304d movabsq $9218868437227405312, %r14 - 0xe9, 0x26, 0x00, 0x00, 0x00, //0x00003057 jmp LBB13_64 - //0x0000305c LBB13_62 - 0x41, 0x83, 0xc6, 0x01, //0x0000305c addl $1, %r14d - 0x4d, 0x89, 0xec, //0x00003060 movq %r13, %r12 - //0x00003063 LBB13_63 - 0x4c, 0x89, 0xe0, //0x00003063 movq %r12, %rax - 0x4c, 0x21, 0xe8, //0x00003066 andq %r13, %rax - 0x41, 0x81, 0xc6, 0xff, 0x03, 0x00, 0x00, //0x00003069 addl $1023, %r14d - 0x41, 0x81, 0xe6, 0xff, 0x07, 0x00, 0x00, //0x00003070 andl $2047, %r14d - 0x49, 0xc1, 0xe6, 0x34, //0x00003077 shlq $52, %r14 - 0x48, 0x85, 0xc0, //0x0000307b testq %rax, %rax - 0x4c, 0x0f, 0x44, 0xf0, //0x0000307e cmoveq %rax, %r14 - //0x00003082 LBB13_64 - 0x49, 0x83, 0xc5, 0xff, //0x00003082 addq $-1, %r13 - 0x4d, 0x21, 0xe5, //0x00003086 andq %r12, %r13 - 0x4d, 0x09, 0xf5, //0x00003089 orq %r14, %r13 - 0x48, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x0000308c movabsq $-9223372036854775808, %rax - 0x4c, 0x09, 0xe8, //0x00003096 orq %r13, %rax - 0x41, 0x83, 0x7f, 0x18, 0x00, //0x00003099 cmpl $0, $24(%r15) - 0x49, 0x0f, 0x44, 0xc5, //0x0000309e cmoveq %r13, %rax - 0x48, 0x89, 0x03, //0x000030a2 movq %rax, (%rbx) - 0x31, 0xc0, //0x000030a5 xorl %eax, %eax - 0x48, 0x83, 0xc4, 0x08, //0x000030a7 addq $8, %rsp - 0x5b, //0x000030ab popq %rbx - 0x41, 0x5c, //0x000030ac popq %r12 - 0x41, 0x5d, //0x000030ae popq %r13 - 0x41, 0x5e, //0x000030b0 popq %r14 - 0x41, 0x5f, //0x000030b2 popq %r15 - 0x5d, //0x000030b4 popq %rbp - 0xc3, //0x000030b5 retq - //0x000030b6 LBB13_58 - 0x80, 0xfa, 0x35, //0x000030b6 cmpb $53, %dl - 0x0f, 0x9d, 0xc1, //0x000030b9 setge %cl - 0xe9, 0x63, 0xff, 0xff, 0xff, //0x000030bc jmp LBB13_59 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000030c1 .p2align 4, 0x90 - //0x000030d0 _atof_native - 0x55, //0x000030d0 pushq %rbp - 0x48, 0x89, 0xe5, //0x000030d1 movq %rsp, %rbp - 0x48, 0x83, 0xec, 0x30, //0x000030d4 subq $48, %rsp - 0x48, 0xc7, 0x45, 0xd8, 0x00, 0x00, 0x00, 0x00, //0x000030d8 movq $0, $-40(%rbp) - 0x48, 0x89, 0x55, 0xe0, //0x000030e0 movq %rdx, $-32(%rbp) - 0x48, 0x89, 0x4d, 0xe8, //0x000030e4 movq %rcx, $-24(%rbp) - 0x48, 0x85, 0xc9, //0x000030e8 testq %rcx, %rcx - 0x0f, 0x84, 0x45, 0x00, 0x00, 0x00, //0x000030eb je LBB14_5 - 0xc6, 0x02, 0x00, //0x000030f1 movb $0, (%rdx) - 0x48, 0x83, 0xf9, 0x01, //0x000030f4 cmpq $1, %rcx - 0x0f, 0x84, 0x38, 0x00, 0x00, 0x00, //0x000030f8 je LBB14_5 - 0xc6, 0x42, 0x01, 0x00, //0x000030fe movb $0, $1(%rdx) - 0x48, 0x83, 0x7d, 0xe8, 0x03, //0x00003102 cmpq $3, $-24(%rbp) - 0x0f, 0x82, 0x29, 0x00, 0x00, 0x00, //0x00003107 jb LBB14_5 - 0xb8, 0x02, 0x00, 0x00, 0x00, //0x0000310d movl $2, %eax - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003112 .p2align 4, 0x90 - //0x00003120 LBB14_4 - 0x48, 0x8b, 0x4d, 0xe0, //0x00003120 movq $-32(%rbp), %rcx - 0xc6, 0x04, 0x01, 0x00, //0x00003124 movb $0, (%rcx,%rax) - 0x48, 0x83, 0xc0, 0x01, //0x00003128 addq $1, %rax - 0x48, 0x39, 0x45, 0xe8, //0x0000312c cmpq %rax, $-24(%rbp) - 0x0f, 0x87, 0xea, 0xff, 0xff, 0xff, //0x00003130 ja LBB14_4 - //0x00003136 LBB14_5 - 0xc5, 0xf8, 0x57, 0xc0, //0x00003136 vxorps %xmm0, %xmm0, %xmm0 - 0xc5, 0xf8, 0x11, 0x45, 0xf0, //0x0000313a vmovups %xmm0, $-16(%rbp) - 0x31, 0xd2, //0x0000313f xorl %edx, %edx - 0x80, 0x3f, 0x2d, //0x00003141 cmpb $45, (%rdi) - 0x0f, 0x85, 0x1a, 0x00, 0x00, 0x00, //0x00003144 jne LBB14_7 - 0xc7, 0x45, 0xf8, 0x01, 0x00, 0x00, 0x00, //0x0000314a movl $1, $-8(%rbp) - 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00003151 movl $1, %eax - 0x48, 0x39, 0xf0, //0x00003156 cmpq %rsi, %rax - 0x0f, 0x8c, 0x10, 0x00, 0x00, 0x00, //0x00003159 jl LBB14_8 - 0xe9, 0xab, 0x01, 0x00, 0x00, //0x0000315f jmp LBB14_39 - //0x00003164 LBB14_7 - 0x31, 0xc0, //0x00003164 xorl %eax, %eax - 0x48, 0x39, 0xf0, //0x00003166 cmpq %rsi, %rax - 0x0f, 0x8d, 0xa0, 0x01, 0x00, 0x00, //0x00003169 jge LBB14_39 - //0x0000316f LBB14_8 - 0x41, 0xb3, 0x01, //0x0000316f movb $1, %r11b - 0x45, 0x31, 0xc9, //0x00003172 xorl %r9d, %r9d - 0x45, 0x31, 0xd2, //0x00003175 xorl %r10d, %r10d - 0x45, 0x31, 0xc0, //0x00003178 xorl %r8d, %r8d - 0xe9, 0x24, 0x00, 0x00, 0x00, //0x0000317b jmp LBB14_12 - //0x00003180 LBB14_20 - 0xc7, 0x45, 0xfc, 0x01, 0x00, 0x00, 0x00, //0x00003180 movl $1, $-4(%rbp) - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003187 .p2align 4, 0x90 - //0x00003190 LBB14_11 - 0x48, 0x83, 0xc0, 0x01, //0x00003190 addq $1, %rax - 0x48, 0x39, 0xf0, //0x00003194 cmpq %rsi, %rax - 0x41, 0x0f, 0x9c, 0xc3, //0x00003197 setl %r11b - 0x48, 0x39, 0xc6, //0x0000319b cmpq %rax, %rsi - 0x0f, 0x84, 0x91, 0x00, 0x00, 0x00, //0x0000319e je LBB14_22 - //0x000031a4 LBB14_12 - 0x0f, 0xb6, 0x0c, 0x07, //0x000031a4 movzbl (%rdi,%rax), %ecx - 0x8d, 0x51, 0xd0, //0x000031a8 leal $-48(%rcx), %edx - 0x80, 0xfa, 0x09, //0x000031ab cmpb $9, %dl - 0x0f, 0x87, 0x2c, 0x00, 0x00, 0x00, //0x000031ae ja LBB14_17 - 0x80, 0xf9, 0x30, //0x000031b4 cmpb $48, %cl - 0x0f, 0x85, 0x43, 0x00, 0x00, 0x00, //0x000031b7 jne LBB14_19 - 0x45, 0x85, 0xd2, //0x000031bd testl %r10d, %r10d - 0x0f, 0x84, 0x63, 0x00, 0x00, 0x00, //0x000031c0 je LBB14_21 - 0x4d, 0x63, 0xd9, //0x000031c6 movslq %r9d, %r11 - 0x4c, 0x39, 0x5d, 0xe8, //0x000031c9 cmpq %r11, $-24(%rbp) - 0x0f, 0x87, 0x3a, 0x00, 0x00, 0x00, //0x000031cd ja LBB14_9 - 0xe9, 0x49, 0x00, 0x00, 0x00, //0x000031d3 jmp LBB14_10 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000031d8 .p2align 4, 0x90 - //0x000031e0 LBB14_17 - 0x80, 0xf9, 0x2e, //0x000031e0 cmpb $46, %cl - 0x0f, 0x85, 0x4f, 0x00, 0x00, 0x00, //0x000031e3 jne LBB14_23 - 0x44, 0x89, 0x55, 0xf4, //0x000031e9 movl %r10d, $-12(%rbp) - 0x41, 0xb8, 0x01, 0x00, 0x00, 0x00, //0x000031ed movl $1, %r8d - 0xe9, 0x98, 0xff, 0xff, 0xff, //0x000031f3 jmp LBB14_11 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000031f8 .p2align 4, 0x90 - //0x00003200 LBB14_19 - 0x4d, 0x63, 0xda, //0x00003200 movslq %r10d, %r11 - 0x4c, 0x39, 0x5d, 0xe8, //0x00003203 cmpq %r11, $-24(%rbp) - 0x0f, 0x86, 0x73, 0xff, 0xff, 0xff, //0x00003207 jbe LBB14_20 - //0x0000320d LBB14_9 - 0x48, 0x8b, 0x55, 0xe0, //0x0000320d movq $-32(%rbp), %rdx - 0x42, 0x88, 0x0c, 0x1a, //0x00003211 movb %cl, (%rdx,%r11) - 0x44, 0x8b, 0x4d, 0xf0, //0x00003215 movl $-16(%rbp), %r9d - 0x41, 0x83, 0xc1, 0x01, //0x00003219 addl $1, %r9d - 0x44, 0x89, 0x4d, 0xf0, //0x0000321d movl %r9d, $-16(%rbp) - //0x00003221 LBB14_10 - 0x45, 0x89, 0xca, //0x00003221 movl %r9d, %r10d - 0xe9, 0x67, 0xff, 0xff, 0xff, //0x00003224 jmp LBB14_11 - //0x00003229 LBB14_21 - 0x83, 0x45, 0xf4, 0xff, //0x00003229 addl $-1, $-12(%rbp) - 0x45, 0x31, 0xd2, //0x0000322d xorl %r10d, %r10d - 0xe9, 0x5b, 0xff, 0xff, 0xff, //0x00003230 jmp LBB14_11 - //0x00003235 LBB14_22 - 0x48, 0x89, 0xf0, //0x00003235 movq %rsi, %rax - //0x00003238 LBB14_23 - 0x45, 0x85, 0xc0, //0x00003238 testl %r8d, %r8d - 0x0f, 0x84, 0x0f, 0x00, 0x00, 0x00, //0x0000323b je LBB14_25 - 0x41, 0xf6, 0xc3, 0x01, //0x00003241 testb $1, %r11b - 0x0f, 0x85, 0x13, 0x00, 0x00, 0x00, //0x00003245 jne LBB14_26 - 0xe9, 0xc2, 0x00, 0x00, 0x00, //0x0000324b jmp LBB14_40 - //0x00003250 LBB14_25 - 0x44, 0x89, 0x4d, 0xf4, //0x00003250 movl %r9d, $-12(%rbp) - 0x41, 0xf6, 0xc3, 0x01, //0x00003254 testb $1, %r11b - 0x0f, 0x84, 0xb4, 0x00, 0x00, 0x00, //0x00003258 je LBB14_40 - //0x0000325e LBB14_26 - 0x89, 0xc2, //0x0000325e movl %eax, %edx - 0x8a, 0x0c, 0x17, //0x00003260 movb (%rdi,%rdx), %cl - 0x80, 0xc9, 0x20, //0x00003263 orb $32, %cl - 0x80, 0xf9, 0x65, //0x00003266 cmpb $101, %cl - 0x0f, 0x85, 0xa3, 0x00, 0x00, 0x00, //0x00003269 jne LBB14_40 - 0x8a, 0x4c, 0x17, 0x01, //0x0000326f movb $1(%rdi,%rdx), %cl - 0x80, 0xf9, 0x2d, //0x00003273 cmpb $45, %cl - 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x00003276 je LBB14_30 - 0x41, 0xb8, 0x01, 0x00, 0x00, 0x00, //0x0000327c movl $1, %r8d - 0x80, 0xf9, 0x2b, //0x00003282 cmpb $43, %cl - 0x0f, 0x85, 0x26, 0x00, 0x00, 0x00, //0x00003285 jne LBB14_32 - 0x83, 0xc0, 0x02, //0x0000328b addl $2, %eax - 0xe9, 0x09, 0x00, 0x00, 0x00, //0x0000328e jmp LBB14_31 - //0x00003293 LBB14_30 - 0x83, 0xc0, 0x02, //0x00003293 addl $2, %eax - 0x41, 0xb8, 0xff, 0xff, 0xff, 0xff, //0x00003296 movl $-1, %r8d - //0x0000329c LBB14_31 - 0x89, 0xc2, //0x0000329c movl %eax, %edx - 0x48, 0x63, 0xc2, //0x0000329e movslq %edx, %rax - 0x31, 0xd2, //0x000032a1 xorl %edx, %edx - 0x48, 0x39, 0xf0, //0x000032a3 cmpq %rsi, %rax - 0x0f, 0x8c, 0x17, 0x00, 0x00, 0x00, //0x000032a6 jl LBB14_33 - 0xe9, 0x57, 0x00, 0x00, 0x00, //0x000032ac jmp LBB14_38 - //0x000032b1 LBB14_32 - 0x48, 0x83, 0xc2, 0x01, //0x000032b1 addq $1, %rdx - 0x48, 0x63, 0xc2, //0x000032b5 movslq %edx, %rax - 0x31, 0xd2, //0x000032b8 xorl %edx, %edx - 0x48, 0x39, 0xf0, //0x000032ba cmpq %rsi, %rax - 0x0f, 0x8d, 0x45, 0x00, 0x00, 0x00, //0x000032bd jge LBB14_38 - //0x000032c3 LBB14_33 - 0x31, 0xd2, //0x000032c3 xorl %edx, %edx - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000032c5 .p2align 4, 0x90 - //0x000032d0 LBB14_34 - 0x0f, 0xbe, 0x0c, 0x07, //0x000032d0 movsbl (%rdi,%rax), %ecx - 0x83, 0xf9, 0x30, //0x000032d4 cmpl $48, %ecx - 0x0f, 0x8c, 0x2b, 0x00, 0x00, 0x00, //0x000032d7 jl LBB14_38 - 0x80, 0xf9, 0x39, //0x000032dd cmpb $57, %cl - 0x0f, 0x8f, 0x22, 0x00, 0x00, 0x00, //0x000032e0 jg LBB14_38 - 0x81, 0xfa, 0x0f, 0x27, 0x00, 0x00, //0x000032e6 cmpl $9999, %edx - 0x0f, 0x8f, 0x16, 0x00, 0x00, 0x00, //0x000032ec jg LBB14_38 - 0x8d, 0x14, 0x92, //0x000032f2 leal (%rdx,%rdx,4), %edx - 0x8d, 0x14, 0x51, //0x000032f5 leal (%rcx,%rdx,2), %edx - 0x83, 0xc2, 0xd0, //0x000032f8 addl $-48, %edx - 0x48, 0x83, 0xc0, 0x01, //0x000032fb addq $1, %rax - 0x48, 0x39, 0xc6, //0x000032ff cmpq %rax, %rsi - 0x0f, 0x85, 0xc8, 0xff, 0xff, 0xff, //0x00003302 jne LBB14_34 - //0x00003308 LBB14_38 - 0x41, 0x0f, 0xaf, 0xd0, //0x00003308 imull %r8d, %edx - 0x03, 0x55, 0xf4, //0x0000330c addl $-12(%rbp), %edx - //0x0000330f LBB14_39 - 0x89, 0x55, 0xf4, //0x0000330f movl %edx, $-12(%rbp) - //0x00003312 LBB14_40 - 0x48, 0x8d, 0x7d, 0xe0, //0x00003312 leaq $-32(%rbp), %rdi - 0x48, 0x8d, 0x75, 0xd8, //0x00003316 leaq $-40(%rbp), %rsi - 0xe8, 0xd1, 0xf9, 0xff, 0xff, //0x0000331a callq _decimal_to_f64 - 0xc5, 0xfb, 0x10, 0x45, 0xd8, //0x0000331f vmovsd $-40(%rbp), %xmm0 - 0x48, 0x83, 0xc4, 0x30, //0x00003324 addq $48, %rsp - 0x5d, //0x00003328 popq %rbp - 0xc3, //0x00003329 retq - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000332a .p2align 4, 0x90 - //0x00003330 _value - 0x55, //0x00003330 pushq %rbp - 0x48, 0x89, 0xe5, //0x00003331 movq %rsp, %rbp - 0x41, 0x57, //0x00003334 pushq %r15 - 0x41, 0x56, //0x00003336 pushq %r14 - 0x41, 0x55, //0x00003338 pushq %r13 - 0x41, 0x54, //0x0000333a pushq %r12 - 0x53, //0x0000333c pushq %rbx - 0x48, 0x83, 0xec, 0x28, //0x0000333d subq $40, %rsp - 0x49, 0x89, 0xc9, //0x00003341 movq %rcx, %r9 - 0x49, 0x89, 0xd4, //0x00003344 movq %rdx, %r12 - 0x49, 0x89, 0xf5, //0x00003347 movq %rsi, %r13 - 0x49, 0x89, 0xff, //0x0000334a movq %rdi, %r15 - 0x48, 0x89, 0x7d, 0xb8, //0x0000334d movq %rdi, $-72(%rbp) - 0x48, 0x89, 0x75, 0xc0, //0x00003351 movq %rsi, $-64(%rbp) - 0x48, 0x39, 0xf2, //0x00003355 cmpq %rsi, %rdx - 0x0f, 0x83, 0x28, 0x00, 0x00, 0x00, //0x00003358 jae LBB15_5 - 0x43, 0x8a, 0x04, 0x27, //0x0000335e movb (%r15,%r12), %al - 0x3c, 0x0d, //0x00003362 cmpb $13, %al - 0x0f, 0x84, 0x1c, 0x00, 0x00, 0x00, //0x00003364 je LBB15_5 - 0x3c, 0x20, //0x0000336a cmpb $32, %al - 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x0000336c je LBB15_5 - 0x8d, 0x48, 0xf7, //0x00003372 leal $-9(%rax), %ecx - 0x80, 0xf9, 0x01, //0x00003375 cmpb $1, %cl - 0x0f, 0x86, 0x08, 0x00, 0x00, 0x00, //0x00003378 jbe LBB15_5 - 0x4c, 0x89, 0xe3, //0x0000337e movq %r12, %rbx - 0xe9, 0x09, 0x01, 0x00, 0x00, //0x00003381 jmp LBB15_27 - //0x00003386 LBB15_5 - 0x49, 0x8d, 0x5c, 0x24, 0x01, //0x00003386 leaq $1(%r12), %rbx - 0x4c, 0x39, 0xeb, //0x0000338b cmpq %r13, %rbx - 0x0f, 0x83, 0x20, 0x00, 0x00, 0x00, //0x0000338e jae LBB15_9 - 0x41, 0x8a, 0x04, 0x1f, //0x00003394 movb (%r15,%rbx), %al - 0x3c, 0x0d, //0x00003398 cmpb $13, %al - 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x0000339a je LBB15_9 - 0x3c, 0x20, //0x000033a0 cmpb $32, %al - 0x0f, 0x84, 0x0c, 0x00, 0x00, 0x00, //0x000033a2 je LBB15_9 - 0x8d, 0x48, 0xf7, //0x000033a8 leal $-9(%rax), %ecx - 0x80, 0xf9, 0x01, //0x000033ab cmpb $1, %cl - 0x0f, 0x87, 0xdb, 0x00, 0x00, 0x00, //0x000033ae ja LBB15_27 - //0x000033b4 LBB15_9 - 0x49, 0x8d, 0x5c, 0x24, 0x02, //0x000033b4 leaq $2(%r12), %rbx - 0x4c, 0x39, 0xeb, //0x000033b9 cmpq %r13, %rbx - 0x0f, 0x83, 0x20, 0x00, 0x00, 0x00, //0x000033bc jae LBB15_13 - 0x41, 0x8a, 0x04, 0x1f, //0x000033c2 movb (%r15,%rbx), %al - 0x3c, 0x0d, //0x000033c6 cmpb $13, %al - 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x000033c8 je LBB15_13 - 0x3c, 0x20, //0x000033ce cmpb $32, %al - 0x0f, 0x84, 0x0c, 0x00, 0x00, 0x00, //0x000033d0 je LBB15_13 - 0x8d, 0x48, 0xf7, //0x000033d6 leal $-9(%rax), %ecx - 0x80, 0xf9, 0x01, //0x000033d9 cmpb $1, %cl - 0x0f, 0x87, 0xad, 0x00, 0x00, 0x00, //0x000033dc ja LBB15_27 - //0x000033e2 LBB15_13 - 0x49, 0x8d, 0x5c, 0x24, 0x03, //0x000033e2 leaq $3(%r12), %rbx - 0x4c, 0x39, 0xeb, //0x000033e7 cmpq %r13, %rbx - 0x0f, 0x83, 0x20, 0x00, 0x00, 0x00, //0x000033ea jae LBB15_17 - 0x41, 0x8a, 0x04, 0x1f, //0x000033f0 movb (%r15,%rbx), %al - 0x3c, 0x0d, //0x000033f4 cmpb $13, %al - 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x000033f6 je LBB15_17 - 0x3c, 0x20, //0x000033fc cmpb $32, %al - 0x0f, 0x84, 0x0c, 0x00, 0x00, 0x00, //0x000033fe je LBB15_17 - 0x8d, 0x48, 0xf7, //0x00003404 leal $-9(%rax), %ecx - 0x80, 0xf9, 0x01, //0x00003407 cmpb $1, %cl - 0x0f, 0x87, 0x7f, 0x00, 0x00, 0x00, //0x0000340a ja LBB15_27 - //0x00003410 LBB15_17 - 0x49, 0x8d, 0x5c, 0x24, 0x04, //0x00003410 leaq $4(%r12), %rbx - 0x4c, 0x39, 0xeb, //0x00003415 cmpq %r13, %rbx - 0x0f, 0x83, 0x4c, 0x00, 0x00, 0x00, //0x00003418 jae LBB15_31 - 0x49, 0x39, 0xdd, //0x0000341e cmpq %rbx, %r13 - 0x0f, 0x84, 0x4f, 0x00, 0x00, 0x00, //0x00003421 je LBB15_23 - 0x4b, 0x8d, 0x04, 0x2f, //0x00003427 leaq (%r15,%r13), %rax - 0x48, 0xb9, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x0000342b movabsq $4294977024, %rcx - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003435 .p2align 4, 0x90 - //0x00003440 LBB15_20 - 0x41, 0x0f, 0xbe, 0x14, 0x1f, //0x00003440 movsbl (%r15,%rbx), %edx - 0x83, 0xfa, 0x20, //0x00003445 cmpl $32, %edx - 0x0f, 0x87, 0x34, 0x00, 0x00, 0x00, //0x00003448 ja LBB15_25 - 0x48, 0x0f, 0xa3, 0xd1, //0x0000344e btq %rdx, %rcx - 0x0f, 0x83, 0x2a, 0x00, 0x00, 0x00, //0x00003452 jae LBB15_25 - 0x48, 0x83, 0xc3, 0x01, //0x00003458 addq $1, %rbx - 0x49, 0x39, 0xdd, //0x0000345c cmpq %rbx, %r13 - 0x0f, 0x85, 0xdb, 0xff, 0xff, 0xff, //0x0000345f jne LBB15_20 - 0xe9, 0x12, 0x00, 0x00, 0x00, //0x00003465 jmp LBB15_24 - //0x0000346a LBB15_31 - 0x48, 0x89, 0x5d, 0xd0, //0x0000346a movq %rbx, $-48(%rbp) - 0x49, 0x89, 0xdc, //0x0000346e movq %rbx, %r12 - 0xe9, 0x64, 0x00, 0x00, 0x00, //0x00003471 jmp LBB15_32 - //0x00003476 LBB15_23 - 0x4c, 0x01, 0xfb, //0x00003476 addq %r15, %rbx - 0x48, 0x89, 0xd8, //0x00003479 movq %rbx, %rax - //0x0000347c LBB15_24 - 0x4c, 0x29, 0xf8, //0x0000347c subq %r15, %rax - 0x48, 0x89, 0xc3, //0x0000347f movq %rax, %rbx - //0x00003482 LBB15_25 - 0x4c, 0x39, 0xeb, //0x00003482 cmpq %r13, %rbx - 0x0f, 0x83, 0x4f, 0x00, 0x00, 0x00, //0x00003485 jae LBB15_32 - 0x41, 0x8a, 0x04, 0x1f, //0x0000348b movb (%r15,%rbx), %al - //0x0000348f LBB15_27 - 0x0f, 0xbe, 0xc8, //0x0000348f movsbl %al, %ecx - 0x83, 0xf9, 0x7d, //0x00003492 cmpl $125, %ecx - 0x0f, 0x87, 0xcf, 0x00, 0x00, 0x00, //0x00003495 ja LBB15_41 - 0x4c, 0x8d, 0x63, 0x01, //0x0000349b leaq $1(%rbx), %r12 - 0x4d, 0x8d, 0x34, 0x1f, //0x0000349f leaq (%r15,%rbx), %r14 - 0x48, 0x8d, 0x15, 0x7a, 0x03, 0x00, 0x00, //0x000034a3 leaq $890(%rip), %rdx /* LJTI15_0+0(%rip) */ - 0x48, 0x63, 0x0c, 0x8a, //0x000034aa movslq (%rdx,%rcx,4), %rcx - 0x48, 0x01, 0xd1, //0x000034ae addq %rdx, %rcx - 0xff, 0xe1, //0x000034b1 jmpq *%rcx - //0x000034b3 LBB15_29 - 0x48, 0x89, 0x5d, 0xd0, //0x000034b3 movq %rbx, $-48(%rbp) - 0x41, 0xf6, 0xc0, 0x02, //0x000034b7 testb $2, %r8b - 0x0f, 0x85, 0x35, 0x00, 0x00, 0x00, //0x000034bb jne LBB15_35 - 0x48, 0x8d, 0x7d, 0xb8, //0x000034c1 leaq $-72(%rbp), %rdi - 0x48, 0x8d, 0x75, 0xd0, //0x000034c5 leaq $-48(%rbp), %rsi - 0x4c, 0x89, 0xca, //0x000034c9 movq %r9, %rdx - 0xe8, 0x1f, 0x0b, 0x00, 0x00, //0x000034cc callq _vnumber - 0x48, 0x8b, 0x5d, 0xd0, //0x000034d1 movq $-48(%rbp), %rbx - 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x000034d5 jmp LBB15_34 - //0x000034da LBB15_32 - 0x49, 0xc7, 0x01, 0x01, 0x00, 0x00, 0x00, //0x000034da movq $1, (%r9) - //0x000034e1 LBB15_33 - 0x4c, 0x89, 0xe3, //0x000034e1 movq %r12, %rbx - //0x000034e4 LBB15_34 - 0x48, 0x89, 0xd8, //0x000034e4 movq %rbx, %rax - 0x48, 0x83, 0xc4, 0x28, //0x000034e7 addq $40, %rsp - 0x5b, //0x000034eb popq %rbx - 0x41, 0x5c, //0x000034ec popq %r12 - 0x41, 0x5d, //0x000034ee popq %r13 - 0x41, 0x5e, //0x000034f0 popq %r14 - 0x41, 0x5f, //0x000034f2 popq %r15 - 0x5d, //0x000034f4 popq %rbp - 0xc3, //0x000034f5 retq - //0x000034f6 LBB15_35 - 0x49, 0x29, 0xdd, //0x000034f6 subq %rbx, %r13 - 0x31, 0xc9, //0x000034f9 xorl %ecx, %ecx - 0x3c, 0x2d, //0x000034fb cmpb $45, %al - 0x0f, 0x94, 0xc1, //0x000034fd sete %cl - 0x49, 0x01, 0xce, //0x00003500 addq %rcx, %r14 - 0x49, 0x29, 0xcd, //0x00003503 subq %rcx, %r13 - 0x0f, 0x84, 0xf0, 0x02, 0x00, 0x00, //0x00003506 je LBB15_84 - 0x4d, 0x89, 0xcc, //0x0000350c movq %r9, %r12 - 0x41, 0x8a, 0x06, //0x0000350f movb (%r14), %al - 0x04, 0xd0, //0x00003512 addb $-48, %al - 0x3c, 0x09, //0x00003514 cmpb $9, %al - 0x0f, 0x87, 0xf2, 0x02, 0x00, 0x00, //0x00003516 ja LBB15_86 - 0x4c, 0x89, 0xf7, //0x0000351c movq %r14, %rdi - 0x4c, 0x89, 0xee, //0x0000351f movq %r13, %rsi - 0xe8, 0x59, 0x1e, 0x00, 0x00, //0x00003522 callq _do_skip_number - 0x48, 0x85, 0xc0, //0x00003527 testq %rax, %rax - 0x0f, 0x88, 0xd8, 0x02, 0x00, 0x00, //0x0000352a js LBB15_85 - 0x49, 0x01, 0xc6, //0x00003530 addq %rax, %r14 - 0x4d, 0x29, 0xfe, //0x00003533 subq %r15, %r14 - 0x48, 0xb8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, //0x00003536 movabsq $9223372036854775807, %rax - 0x48, 0x39, 0xc3, //0x00003540 cmpq %rax, %rbx - 0x4d, 0x89, 0xe1, //0x00003543 movq %r12, %r9 - 0x0f, 0x82, 0x0b, 0x00, 0x00, 0x00, //0x00003546 jb LBB15_40 - //0x0000354c LBB15_39 - 0x49, 0x89, 0x19, //0x0000354c movq %rbx, (%r9) - 0x4c, 0x89, 0xf3, //0x0000354f movq %r14, %rbx - 0xe9, 0x8d, 0xff, 0xff, 0xff, //0x00003552 jmp LBB15_34 - //0x00003557 LBB15_40 - 0x49, 0xc7, 0x01, 0x08, 0x00, 0x00, 0x00, //0x00003557 movq $8, (%r9) - 0x49, 0x89, 0x59, 0x18, //0x0000355e movq %rbx, $24(%r9) - 0x4c, 0x89, 0xf3, //0x00003562 movq %r14, %rbx - 0xe9, 0x7a, 0xff, 0xff, 0xff, //0x00003565 jmp LBB15_34 - //0x0000356a LBB15_41 - 0x49, 0xc7, 0x01, 0xfe, 0xff, 0xff, 0xff, //0x0000356a movq $-2, (%r9) - 0xe9, 0x6e, 0xff, 0xff, 0xff, //0x00003571 jmp LBB15_34 - //0x00003576 LBB15_42 - 0x4d, 0x89, 0xce, //0x00003576 movq %r9, %r14 - 0x48, 0xc7, 0x45, 0xc8, 0xff, 0xff, 0xff, 0xff, //0x00003579 movq $-1, $-56(%rbp) - 0x48, 0x8d, 0x7d, 0xb8, //0x00003581 leaq $-72(%rbp), %rdi - 0x48, 0x8d, 0x55, 0xc8, //0x00003585 leaq $-56(%rbp), %rdx - 0x4c, 0x89, 0xe6, //0x00003589 movq %r12, %rsi - 0x4c, 0x89, 0xc1, //0x0000358c movq %r8, %rcx - 0xe8, 0x3c, 0x05, 0x00, 0x00, //0x0000358f callq _advance_string - 0x48, 0x89, 0xc3, //0x00003594 movq %rax, %rbx - 0x48, 0x85, 0xc0, //0x00003597 testq %rax, %rax - 0x0f, 0x88, 0x55, 0x01, 0x00, 0x00, //0x0000359a js LBB15_65 - 0x48, 0x89, 0x5d, 0xd0, //0x000035a0 movq %rbx, $-48(%rbp) - 0x4d, 0x89, 0x66, 0x10, //0x000035a4 movq %r12, $16(%r14) - 0x48, 0x8b, 0x45, 0xc8, //0x000035a8 movq $-56(%rbp), %rax - 0x48, 0x39, 0xd8, //0x000035ac cmpq %rbx, %rax - 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x000035af movq $-1, %rcx - 0x48, 0x0f, 0x4c, 0xc8, //0x000035b6 cmovlq %rax, %rcx - 0x49, 0x89, 0x4e, 0x18, //0x000035ba movq %rcx, $24(%r14) - 0xb8, 0x07, 0x00, 0x00, 0x00, //0x000035be movl $7, %eax - 0x49, 0x89, 0x06, //0x000035c3 movq %rax, (%r14) - 0xe9, 0x19, 0xff, 0xff, 0xff, //0x000035c6 jmp LBB15_34 - //0x000035cb LBB15_44 - 0x45, 0x85, 0xc0, //0x000035cb testl %r8d, %r8d - 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x000035ce movq $-2, %rax - 0xb9, 0x0b, 0x00, 0x00, 0x00, //0x000035d5 movl $11, %ecx - 0xe9, 0xfd, 0x00, 0x00, 0x00, //0x000035da jmp LBB15_64 - //0x000035df LBB15_45 - 0x45, 0x85, 0xc0, //0x000035df testl %r8d, %r8d - 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x000035e2 movq $-2, %rax - 0xb9, 0x0a, 0x00, 0x00, 0x00, //0x000035e9 movl $10, %ecx - 0xe9, 0xe9, 0x00, 0x00, 0x00, //0x000035ee jmp LBB15_64 - //0x000035f3 LBB15_46 - 0x49, 0xc7, 0x01, 0x05, 0x00, 0x00, 0x00, //0x000035f3 movq $5, (%r9) - 0xe9, 0xe2, 0xfe, 0xff, 0xff, //0x000035fa jmp LBB15_33 - //0x000035ff LBB15_47 - 0x45, 0x85, 0xc0, //0x000035ff testl %r8d, %r8d - 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00003602 movq $-2, %rax - 0xb9, 0x0c, 0x00, 0x00, 0x00, //0x00003609 movl $12, %ecx - 0xe9, 0xc9, 0x00, 0x00, 0x00, //0x0000360e jmp LBB15_64 - //0x00003613 LBB15_48 - 0x49, 0x8d, 0x4d, 0xfc, //0x00003613 leaq $-4(%r13), %rcx - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00003617 movq $-1, %rax - 0x48, 0x39, 0xcb, //0x0000361e cmpq %rcx, %rbx - 0x0f, 0x83, 0x1c, 0x00, 0x00, 0x00, //0x00003621 jae LBB15_51 - 0x43, 0x8b, 0x0c, 0x27, //0x00003627 movl (%r15,%r12), %ecx - 0x81, 0xf9, 0x61, 0x6c, 0x73, 0x65, //0x0000362b cmpl $1702063201, %ecx - 0x0f, 0x85, 0xcd, 0x00, 0x00, 0x00, //0x00003631 jne LBB15_66 - 0x48, 0x83, 0xc3, 0x05, //0x00003637 addq $5, %rbx - 0xb8, 0x04, 0x00, 0x00, 0x00, //0x0000363b movl $4, %eax - 0x49, 0x89, 0xdd, //0x00003640 movq %rbx, %r13 - //0x00003643 LBB15_51 - 0x4c, 0x89, 0x6d, 0xd0, //0x00003643 movq %r13, $-48(%rbp) - 0x4d, 0x89, 0xec, //0x00003647 movq %r13, %r12 - //0x0000364a LBB15_52 - 0x49, 0x89, 0x01, //0x0000364a movq %rax, (%r9) - 0xe9, 0x8f, 0xfe, 0xff, 0xff, //0x0000364d jmp LBB15_33 - //0x00003652 LBB15_53 - 0x49, 0x8d, 0x4d, 0xfd, //0x00003652 leaq $-3(%r13), %rcx - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00003656 movq $-1, %rax - 0x48, 0x39, 0xcb, //0x0000365d cmpq %rcx, %rbx - 0x0f, 0x83, 0x4c, 0x00, 0x00, 0x00, //0x00003660 jae LBB15_57 - 0x41, 0x8b, 0x0e, //0x00003666 movl (%r14), %ecx - 0x81, 0xf9, 0x6e, 0x75, 0x6c, 0x6c, //0x00003669 cmpl $1819047278, %ecx - 0x0f, 0x85, 0xd3, 0x00, 0x00, 0x00, //0x0000366f jne LBB15_70 - 0x48, 0x83, 0xc3, 0x04, //0x00003675 addq $4, %rbx - 0xb8, 0x02, 0x00, 0x00, 0x00, //0x00003679 movl $2, %eax - 0xe9, 0x2c, 0x00, 0x00, 0x00, //0x0000367e jmp LBB15_56 - //0x00003683 LBB15_59 - 0x49, 0x8d, 0x4d, 0xfd, //0x00003683 leaq $-3(%r13), %rcx - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00003687 movq $-1, %rax - 0x48, 0x39, 0xcb, //0x0000368e cmpq %rcx, %rbx - 0x0f, 0x83, 0x1b, 0x00, 0x00, 0x00, //0x00003691 jae LBB15_57 - 0x41, 0x8b, 0x0e, //0x00003697 movl (%r14), %ecx - 0x81, 0xf9, 0x74, 0x72, 0x75, 0x65, //0x0000369a cmpl $1702195828, %ecx - 0x0f, 0x85, 0xd7, 0x00, 0x00, 0x00, //0x000036a0 jne LBB15_74 - 0x48, 0x83, 0xc3, 0x04, //0x000036a6 addq $4, %rbx - 0xb8, 0x03, 0x00, 0x00, 0x00, //0x000036aa movl $3, %eax - //0x000036af LBB15_56 - 0x49, 0x89, 0xdd, //0x000036af movq %rbx, %r13 - //0x000036b2 LBB15_57 - 0x4c, 0x89, 0x6d, 0xd0, //0x000036b2 movq %r13, $-48(%rbp) - 0x4c, 0x89, 0xeb, //0x000036b6 movq %r13, %rbx - //0x000036b9 LBB15_58 - 0x49, 0x89, 0x01, //0x000036b9 movq %rax, (%r9) - 0xe9, 0x23, 0xfe, 0xff, 0xff, //0x000036bc jmp LBB15_34 - //0x000036c1 LBB15_62 - 0x49, 0xc7, 0x01, 0x06, 0x00, 0x00, 0x00, //0x000036c1 movq $6, (%r9) - 0xe9, 0x14, 0xfe, 0xff, 0xff, //0x000036c8 jmp LBB15_33 - //0x000036cd LBB15_63 - 0x45, 0x85, 0xc0, //0x000036cd testl %r8d, %r8d - 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x000036d0 movq $-2, %rax - 0xb9, 0x0d, 0x00, 0x00, 0x00, //0x000036d7 movl $13, %ecx - //0x000036dc LBB15_64 - 0x48, 0x0f, 0x49, 0xc8, //0x000036dc cmovnsq %rax, %rcx - 0x49, 0x89, 0x09, //0x000036e0 movq %rcx, (%r9) - 0x41, 0xc1, 0xf8, 0x1f, //0x000036e3 sarl $31, %r8d - 0x41, 0xf7, 0xd0, //0x000036e7 notl %r8d - 0x49, 0x63, 0xc0, //0x000036ea movslq %r8d, %rax - 0x49, 0x01, 0xc4, //0x000036ed addq %rax, %r12 - 0xe9, 0xec, 0xfd, 0xff, 0xff, //0x000036f0 jmp LBB15_33 - //0x000036f5 LBB15_65 - 0x4c, 0x89, 0x6d, 0xd0, //0x000036f5 movq %r13, $-48(%rbp) - 0x49, 0x89, 0x1e, //0x000036f9 movq %rbx, (%r14) - 0x4c, 0x89, 0xeb, //0x000036fc movq %r13, %rbx - 0xe9, 0xe0, 0xfd, 0xff, 0xff, //0x000036ff jmp LBB15_34 - //0x00003704 LBB15_66 - 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00003704 movq $-2, %rax - 0x80, 0xf9, 0x61, //0x0000370b cmpb $97, %cl - 0x0f, 0x85, 0x36, 0xff, 0xff, 0xff, //0x0000370e jne LBB15_52 - 0x41, 0x80, 0x7c, 0x1f, 0x02, 0x6c, //0x00003714 cmpb $108, $2(%r15,%rbx) - 0x0f, 0x85, 0xb3, 0x00, 0x00, 0x00, //0x0000371a jne LBB15_79 - 0x41, 0x80, 0x7c, 0x1f, 0x03, 0x73, //0x00003720 cmpb $115, $3(%r15,%rbx) - 0x0f, 0x85, 0xc0, 0x00, 0x00, 0x00, //0x00003726 jne LBB15_81 - 0x31, 0xc9, //0x0000372c xorl %ecx, %ecx - 0x42, 0x80, 0x7c, 0x3b, 0x04, 0x65, //0x0000372e cmpb $101, $4(%rbx,%r15) - 0x0f, 0x94, 0xc1, //0x00003734 sete %cl - 0x4c, 0x8d, 0x24, 0x19, //0x00003737 leaq (%rcx,%rbx), %r12 - 0x49, 0x83, 0xc4, 0x04, //0x0000373b addq $4, %r12 - 0x4c, 0x89, 0x65, 0xd0, //0x0000373f movq %r12, $-48(%rbp) - 0xe9, 0x02, 0xff, 0xff, 0xff, //0x00003743 jmp LBB15_52 - //0x00003748 LBB15_70 - 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00003748 movq $-2, %rax - 0x80, 0xf9, 0x6e, //0x0000374f cmpb $110, %cl - 0x0f, 0x85, 0x61, 0xff, 0xff, 0xff, //0x00003752 jne LBB15_58 - 0x41, 0x80, 0x7c, 0x1f, 0x01, 0x75, //0x00003758 cmpb $117, $1(%r15,%rbx) - 0x0f, 0x85, 0x5f, 0x00, 0x00, 0x00, //0x0000375e jne LBB15_80 - 0x41, 0x80, 0x7c, 0x1f, 0x02, 0x6c, //0x00003764 cmpb $108, $2(%r15,%rbx) - 0x0f, 0x85, 0x6c, 0x00, 0x00, 0x00, //0x0000376a jne LBB15_83 - 0x31, 0xc9, //0x00003770 xorl %ecx, %ecx - 0x42, 0x80, 0x7c, 0x3b, 0x03, 0x6c, //0x00003772 cmpb $108, $3(%rbx,%r15) - 0xe9, 0x30, 0x00, 0x00, 0x00, //0x00003778 jmp LBB15_78 - //0x0000377d LBB15_74 - 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x0000377d movq $-2, %rax - 0x80, 0xf9, 0x74, //0x00003784 cmpb $116, %cl - 0x0f, 0x85, 0x2c, 0xff, 0xff, 0xff, //0x00003787 jne LBB15_58 - 0x41, 0x80, 0x7c, 0x1f, 0x01, 0x72, //0x0000378d cmpb $114, $1(%r15,%rbx) - 0x0f, 0x85, 0x2a, 0x00, 0x00, 0x00, //0x00003793 jne LBB15_80 - 0x41, 0x80, 0x7c, 0x1f, 0x02, 0x75, //0x00003799 cmpb $117, $2(%r15,%rbx) - 0x0f, 0x85, 0x37, 0x00, 0x00, 0x00, //0x0000379f jne LBB15_83 - 0x31, 0xc9, //0x000037a5 xorl %ecx, %ecx - 0x42, 0x80, 0x7c, 0x3b, 0x03, 0x65, //0x000037a7 cmpb $101, $3(%rbx,%r15) - //0x000037ad LBB15_78 - 0x0f, 0x94, 0xc1, //0x000037ad sete %cl - 0x48, 0x01, 0xcb, //0x000037b0 addq %rcx, %rbx - 0x48, 0x83, 0xc3, 0x03, //0x000037b3 addq $3, %rbx - 0x48, 0x89, 0x5d, 0xd0, //0x000037b7 movq %rbx, $-48(%rbp) - 0x49, 0x89, 0x01, //0x000037bb movq %rax, (%r9) - 0xe9, 0x21, 0xfd, 0xff, 0xff, //0x000037be jmp LBB15_34 - //0x000037c3 LBB15_80 - 0x48, 0x83, 0xc3, 0x01, //0x000037c3 addq $1, %rbx - 0x48, 0x89, 0x5d, 0xd0, //0x000037c7 movq %rbx, $-48(%rbp) - 0x49, 0x89, 0x01, //0x000037cb movq %rax, (%r9) - 0xe9, 0x11, 0xfd, 0xff, 0xff, //0x000037ce jmp LBB15_34 - //0x000037d3 LBB15_79 - 0x48, 0x83, 0xc3, 0x02, //0x000037d3 addq $2, %rbx - 0xe9, 0x14, 0x00, 0x00, 0x00, //0x000037d7 jmp LBB15_82 - //0x000037dc LBB15_83 - 0x48, 0x83, 0xc3, 0x02, //0x000037dc addq $2, %rbx - 0x48, 0x89, 0x5d, 0xd0, //0x000037e0 movq %rbx, $-48(%rbp) - 0x49, 0x89, 0x01, //0x000037e4 movq %rax, (%r9) - 0xe9, 0xf8, 0xfc, 0xff, 0xff, //0x000037e7 jmp LBB15_34 - //0x000037ec LBB15_81 - 0x48, 0x83, 0xc3, 0x03, //0x000037ec addq $3, %rbx - //0x000037f0 LBB15_82 - 0x49, 0x89, 0xdc, //0x000037f0 movq %rbx, %r12 - 0x48, 0x89, 0x5d, 0xd0, //0x000037f3 movq %rbx, $-48(%rbp) - 0xe9, 0x4e, 0xfe, 0xff, 0xff, //0x000037f7 jmp LBB15_52 - //0x000037fc LBB15_84 - 0x48, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x000037fc movq $-1, %rbx - 0xe9, 0x10, 0x00, 0x00, 0x00, //0x00003803 jmp LBB15_87 - //0x00003808 LBB15_85 - 0x48, 0xf7, 0xd0, //0x00003808 notq %rax - 0x49, 0x01, 0xc6, //0x0000380b addq %rax, %r14 - //0x0000380e LBB15_86 - 0x4d, 0x89, 0xe1, //0x0000380e movq %r12, %r9 - 0x48, 0xc7, 0xc3, 0xfe, 0xff, 0xff, 0xff, //0x00003811 movq $-2, %rbx - //0x00003818 LBB15_87 - 0x4d, 0x29, 0xfe, //0x00003818 subq %r15, %r14 - 0x4c, 0x89, 0x75, 0xd0, //0x0000381b movq %r14, $-48(%rbp) - 0xe9, 0x28, 0xfd, 0xff, 0xff, //0x0000381f jmp LBB15_39 - //0x00003824 .p2align 2, 0x90 - // // .set L15_0_set_32, LBB15_32-LJTI15_0 - // // .set L15_0_set_41, LBB15_41-LJTI15_0 - // // .set L15_0_set_42, LBB15_42-LJTI15_0 - // // .set L15_0_set_44, LBB15_44-LJTI15_0 - // // .set L15_0_set_29, LBB15_29-LJTI15_0 - // // .set L15_0_set_45, LBB15_45-LJTI15_0 - // // .set L15_0_set_46, LBB15_46-LJTI15_0 - // // .set L15_0_set_47, LBB15_47-LJTI15_0 - // // .set L15_0_set_48, LBB15_48-LJTI15_0 - // // .set L15_0_set_53, LBB15_53-LJTI15_0 - // // .set L15_0_set_59, LBB15_59-LJTI15_0 - // // .set L15_0_set_62, LBB15_62-LJTI15_0 - // // .set L15_0_set_63, LBB15_63-LJTI15_0 - //0x00003824 LJTI15_0 - 0xb6, 0xfc, 0xff, 0xff, //0x00003824 .long L15_0_set_32 - 0x46, 0xfd, 0xff, 0xff, //0x00003828 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x0000382c .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x00003830 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x00003834 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x00003838 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x0000383c .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x00003840 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x00003844 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x00003848 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x0000384c .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x00003850 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x00003854 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x00003858 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x0000385c .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x00003860 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x00003864 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x00003868 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x0000386c .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x00003870 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x00003874 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x00003878 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x0000387c .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x00003880 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x00003884 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x00003888 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x0000388c .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x00003890 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x00003894 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x00003898 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x0000389c .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x000038a0 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x000038a4 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x000038a8 .long L15_0_set_41 - 0x52, 0xfd, 0xff, 0xff, //0x000038ac .long L15_0_set_42 - 0x46, 0xfd, 0xff, 0xff, //0x000038b0 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x000038b4 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x000038b8 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x000038bc .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x000038c0 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x000038c4 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x000038c8 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x000038cc .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x000038d0 .long L15_0_set_41 - 0xa7, 0xfd, 0xff, 0xff, //0x000038d4 .long L15_0_set_44 - 0x8f, 0xfc, 0xff, 0xff, //0x000038d8 .long L15_0_set_29 - 0x46, 0xfd, 0xff, 0xff, //0x000038dc .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x000038e0 .long L15_0_set_41 - 0x8f, 0xfc, 0xff, 0xff, //0x000038e4 .long L15_0_set_29 - 0x8f, 0xfc, 0xff, 0xff, //0x000038e8 .long L15_0_set_29 - 0x8f, 0xfc, 0xff, 0xff, //0x000038ec .long L15_0_set_29 - 0x8f, 0xfc, 0xff, 0xff, //0x000038f0 .long L15_0_set_29 - 0x8f, 0xfc, 0xff, 0xff, //0x000038f4 .long L15_0_set_29 - 0x8f, 0xfc, 0xff, 0xff, //0x000038f8 .long L15_0_set_29 - 0x8f, 0xfc, 0xff, 0xff, //0x000038fc .long L15_0_set_29 - 0x8f, 0xfc, 0xff, 0xff, //0x00003900 .long L15_0_set_29 - 0x8f, 0xfc, 0xff, 0xff, //0x00003904 .long L15_0_set_29 - 0x8f, 0xfc, 0xff, 0xff, //0x00003908 .long L15_0_set_29 - 0xbb, 0xfd, 0xff, 0xff, //0x0000390c .long L15_0_set_45 - 0x46, 0xfd, 0xff, 0xff, //0x00003910 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x00003914 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x00003918 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x0000391c .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x00003920 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x00003924 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x00003928 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x0000392c .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x00003930 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x00003934 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x00003938 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x0000393c .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x00003940 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x00003944 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x00003948 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x0000394c .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x00003950 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x00003954 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x00003958 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x0000395c .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x00003960 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x00003964 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x00003968 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x0000396c .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x00003970 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x00003974 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x00003978 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x0000397c .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x00003980 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x00003984 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x00003988 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x0000398c .long L15_0_set_41 - 0xcf, 0xfd, 0xff, 0xff, //0x00003990 .long L15_0_set_46 - 0x46, 0xfd, 0xff, 0xff, //0x00003994 .long L15_0_set_41 - 0xdb, 0xfd, 0xff, 0xff, //0x00003998 .long L15_0_set_47 - 0x46, 0xfd, 0xff, 0xff, //0x0000399c .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x000039a0 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x000039a4 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x000039a8 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x000039ac .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x000039b0 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x000039b4 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x000039b8 .long L15_0_set_41 - 0xef, 0xfd, 0xff, 0xff, //0x000039bc .long L15_0_set_48 - 0x46, 0xfd, 0xff, 0xff, //0x000039c0 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x000039c4 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x000039c8 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x000039cc .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x000039d0 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x000039d4 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x000039d8 .long L15_0_set_41 - 0x2e, 0xfe, 0xff, 0xff, //0x000039dc .long L15_0_set_53 - 0x46, 0xfd, 0xff, 0xff, //0x000039e0 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x000039e4 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x000039e8 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x000039ec .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x000039f0 .long L15_0_set_41 - 0x5f, 0xfe, 0xff, 0xff, //0x000039f4 .long L15_0_set_59 - 0x46, 0xfd, 0xff, 0xff, //0x000039f8 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x000039fc .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x00003a00 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x00003a04 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x00003a08 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x00003a0c .long L15_0_set_41 - 0x9d, 0xfe, 0xff, 0xff, //0x00003a10 .long L15_0_set_62 - 0x46, 0xfd, 0xff, 0xff, //0x00003a14 .long L15_0_set_41 - 0xa9, 0xfe, 0xff, 0xff, //0x00003a18 .long L15_0_set_63 - 0x90, 0x90, 0x90, 0x90, //0x00003a1c .p2align 4, 0x90 - //0x00003a20 _vstring - 0x55, //0x00003a20 pushq %rbp - 0x48, 0x89, 0xe5, //0x00003a21 movq %rsp, %rbp - 0x41, 0x57, //0x00003a24 pushq %r15 - 0x41, 0x56, //0x00003a26 pushq %r14 - 0x41, 0x54, //0x00003a28 pushq %r12 - 0x53, //0x00003a2a pushq %rbx - 0x48, 0x83, 0xec, 0x10, //0x00003a2b subq $16, %rsp - 0x49, 0x89, 0xd6, //0x00003a2f movq %rdx, %r14 - 0x48, 0x89, 0xf3, //0x00003a32 movq %rsi, %rbx - 0x49, 0x89, 0xff, //0x00003a35 movq %rdi, %r15 - 0x48, 0xc7, 0x45, 0xd8, 0xff, 0xff, 0xff, 0xff, //0x00003a38 movq $-1, $-40(%rbp) - 0x4c, 0x8b, 0x26, //0x00003a40 movq (%rsi), %r12 - 0x48, 0x8d, 0x55, 0xd8, //0x00003a43 leaq $-40(%rbp), %rdx - 0x4c, 0x89, 0xe6, //0x00003a47 movq %r12, %rsi - 0xe8, 0x81, 0x00, 0x00, 0x00, //0x00003a4a callq _advance_string - 0x48, 0x85, 0xc0, //0x00003a4f testq %rax, %rax - 0x0f, 0x88, 0x27, 0x00, 0x00, 0x00, //0x00003a52 js LBB16_1 - 0x48, 0x89, 0x03, //0x00003a58 movq %rax, (%rbx) - 0x4d, 0x89, 0x66, 0x10, //0x00003a5b movq %r12, $16(%r14) - 0x48, 0x8b, 0x4d, 0xd8, //0x00003a5f movq $-40(%rbp), %rcx - 0x48, 0x39, 0xc1, //0x00003a63 cmpq %rax, %rcx - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00003a66 movq $-1, %rax - 0x48, 0x0f, 0x4c, 0xc1, //0x00003a6d cmovlq %rcx, %rax - 0x49, 0x89, 0x46, 0x18, //0x00003a71 movq %rax, $24(%r14) - 0xb8, 0x07, 0x00, 0x00, 0x00, //0x00003a75 movl $7, %eax - 0xe9, 0x07, 0x00, 0x00, 0x00, //0x00003a7a jmp LBB16_3 - //0x00003a7f LBB16_1 - 0x49, 0x8b, 0x4f, 0x08, //0x00003a7f movq $8(%r15), %rcx - 0x48, 0x89, 0x0b, //0x00003a83 movq %rcx, (%rbx) - //0x00003a86 LBB16_3 - 0x49, 0x89, 0x06, //0x00003a86 movq %rax, (%r14) - 0x48, 0x83, 0xc4, 0x10, //0x00003a89 addq $16, %rsp - 0x5b, //0x00003a8d popq %rbx - 0x41, 0x5c, //0x00003a8e popq %r12 - 0x41, 0x5e, //0x00003a90 popq %r14 - 0x41, 0x5f, //0x00003a92 popq %r15 - 0x5d, //0x00003a94 popq %rbp - 0xc3, //0x00003a95 retq - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00003a96 .p2align 4, 0x00 - //0x00003aa0 LCPI17_0 - 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, //0x00003aa0 QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' - //0x00003ab0 LCPI17_1 - 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x00003ab0 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' - //0x00003ac0 LCPI17_2 - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x00003ac0 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' - //0x00003ad0 .p2align 4, 0x90 - //0x00003ad0 _advance_string - 0xf6, 0xc1, 0x20, //0x00003ad0 testb $32, %cl - 0x0f, 0x85, 0x05, 0x00, 0x00, 0x00, //0x00003ad3 jne LBB17_2 - 0xe9, 0x02, 0x57, 0x00, 0x00, //0x00003ad9 jmp _advance_string_default - //0x00003ade LBB17_2 - 0x55, //0x00003ade pushq %rbp - 0x48, 0x89, 0xe5, //0x00003adf movq %rsp, %rbp - 0x41, 0x57, //0x00003ae2 pushq %r15 - 0x41, 0x56, //0x00003ae4 pushq %r14 - 0x41, 0x55, //0x00003ae6 pushq %r13 - 0x41, 0x54, //0x00003ae8 pushq %r12 - 0x53, //0x00003aea pushq %rbx - 0x48, 0x83, 0xec, 0x18, //0x00003aeb subq $24, %rsp - 0x4c, 0x8b, 0x7f, 0x08, //0x00003aef movq $8(%rdi), %r15 - 0x49, 0x29, 0xf7, //0x00003af3 subq %rsi, %r15 - 0x0f, 0x84, 0xa4, 0x04, 0x00, 0x00, //0x00003af6 je LBB17_47 - 0x48, 0x8b, 0x07, //0x00003afc movq (%rdi), %rax - 0x48, 0x89, 0x45, 0xd0, //0x00003aff movq %rax, $-48(%rbp) - 0x48, 0x89, 0x55, 0xc0, //0x00003b03 movq %rdx, $-64(%rbp) - 0x48, 0xc7, 0x02, 0xff, 0xff, 0xff, 0xff, //0x00003b07 movq $-1, (%rdx) - 0x49, 0x83, 0xff, 0x40, //0x00003b0e cmpq $64, %r15 - 0x0f, 0x82, 0xaf, 0x03, 0x00, 0x00, //0x00003b12 jb LBB17_48 - 0x48, 0xc7, 0x45, 0xc8, 0xff, 0xff, 0xff, 0xff, //0x00003b18 movq $-1, $-56(%rbp) - 0x45, 0x31, 0xf6, //0x00003b20 xorl %r14d, %r14d - 0xc5, 0x79, 0x6f, 0x05, 0x75, 0xff, 0xff, 0xff, //0x00003b23 vmovdqa $-139(%rip), %xmm8 /* LCPI17_0+0(%rip) */ - 0xc5, 0xf9, 0x6f, 0x0d, 0x7d, 0xff, 0xff, 0xff, //0x00003b2b vmovdqa $-131(%rip), %xmm1 /* LCPI17_1+0(%rip) */ - 0xc5, 0xf9, 0x6f, 0x15, 0x85, 0xff, 0xff, 0xff, //0x00003b33 vmovdqa $-123(%rip), %xmm2 /* LCPI17_2+0(%rip) */ - 0xc5, 0xe1, 0x76, 0xdb, //0x00003b3b vpcmpeqd %xmm3, %xmm3, %xmm3 - 0x90, //0x00003b3f .p2align 4, 0x90 - //0x00003b40 LBB17_5 - 0x48, 0x8b, 0x45, 0xd0, //0x00003b40 movq $-48(%rbp), %rax - 0xc5, 0xfa, 0x6f, 0x24, 0x30, //0x00003b44 vmovdqu (%rax,%rsi), %xmm4 - 0xc5, 0xfa, 0x6f, 0x6c, 0x30, 0x10, //0x00003b49 vmovdqu $16(%rax,%rsi), %xmm5 - 0xc5, 0xfa, 0x6f, 0x74, 0x30, 0x20, //0x00003b4f vmovdqu $32(%rax,%rsi), %xmm6 - 0xc5, 0xfa, 0x6f, 0x7c, 0x30, 0x30, //0x00003b55 vmovdqu $48(%rax,%rsi), %xmm7 - 0xc5, 0xb9, 0x74, 0xc4, //0x00003b5b vpcmpeqb %xmm4, %xmm8, %xmm0 - 0xc5, 0x79, 0xd7, 0xe0, //0x00003b5f vpmovmskb %xmm0, %r12d - 0xc5, 0xb9, 0x74, 0xc5, //0x00003b63 vpcmpeqb %xmm5, %xmm8, %xmm0 - 0xc5, 0x79, 0xd7, 0xc0, //0x00003b67 vpmovmskb %xmm0, %r8d - 0xc5, 0xb9, 0x74, 0xc6, //0x00003b6b vpcmpeqb %xmm6, %xmm8, %xmm0 - 0xc5, 0x79, 0xd7, 0xd8, //0x00003b6f vpmovmskb %xmm0, %r11d - 0xc5, 0xb9, 0x74, 0xc7, //0x00003b73 vpcmpeqb %xmm7, %xmm8, %xmm0 - 0xc5, 0xf9, 0xd7, 0xd0, //0x00003b77 vpmovmskb %xmm0, %edx - 0xc5, 0xd9, 0x74, 0xc1, //0x00003b7b vpcmpeqb %xmm1, %xmm4, %xmm0 - 0xc5, 0x79, 0xd7, 0xe8, //0x00003b7f vpmovmskb %xmm0, %r13d - 0xc5, 0xd1, 0x74, 0xc1, //0x00003b83 vpcmpeqb %xmm1, %xmm5, %xmm0 - 0xc5, 0xf9, 0xd7, 0xc8, //0x00003b87 vpmovmskb %xmm0, %ecx - 0xc5, 0xc9, 0x74, 0xc1, //0x00003b8b vpcmpeqb %xmm1, %xmm6, %xmm0 - 0xc5, 0xf9, 0xd7, 0xf8, //0x00003b8f vpmovmskb %xmm0, %edi - 0xc5, 0xc1, 0x74, 0xc1, //0x00003b93 vpcmpeqb %xmm1, %xmm7, %xmm0 - 0xc5, 0x79, 0xd7, 0xd0, //0x00003b97 vpmovmskb %xmm0, %r10d - 0xc5, 0xe9, 0x64, 0xc5, //0x00003b9b vpcmpgtb %xmm5, %xmm2, %xmm0 - 0xc5, 0xd1, 0x64, 0xeb, //0x00003b9f vpcmpgtb %xmm3, %xmm5, %xmm5 - 0xc5, 0xf9, 0xdb, 0xc5, //0x00003ba3 vpand %xmm5, %xmm0, %xmm0 - 0xc5, 0xf9, 0xd7, 0xd8, //0x00003ba7 vpmovmskb %xmm0, %ebx - 0xc5, 0xe9, 0x64, 0xc6, //0x00003bab vpcmpgtb %xmm6, %xmm2, %xmm0 - 0xc5, 0xc9, 0x64, 0xeb, //0x00003baf vpcmpgtb %xmm3, %xmm6, %xmm5 - 0xc5, 0xf9, 0xdb, 0xc5, //0x00003bb3 vpand %xmm5, %xmm0, %xmm0 - 0xc5, 0xf9, 0xd7, 0xc0, //0x00003bb7 vpmovmskb %xmm0, %eax - 0xc5, 0xe9, 0x64, 0xc7, //0x00003bbb vpcmpgtb %xmm7, %xmm2, %xmm0 - 0xc5, 0xc1, 0x64, 0xeb, //0x00003bbf vpcmpgtb %xmm3, %xmm7, %xmm5 - 0xc5, 0xf9, 0xdb, 0xc5, //0x00003bc3 vpand %xmm5, %xmm0, %xmm0 - 0xc5, 0x79, 0xd7, 0xc8, //0x00003bc7 vpmovmskb %xmm0, %r9d - 0x48, 0xc1, 0xe2, 0x30, //0x00003bcb shlq $48, %rdx - 0x49, 0xc1, 0xe3, 0x20, //0x00003bcf shlq $32, %r11 - 0x49, 0x09, 0xd3, //0x00003bd3 orq %rdx, %r11 - 0x49, 0xc1, 0xe0, 0x10, //0x00003bd6 shlq $16, %r8 - 0x4d, 0x09, 0xd8, //0x00003bda orq %r11, %r8 - 0x4d, 0x09, 0xc4, //0x00003bdd orq %r8, %r12 - 0x49, 0xc1, 0xe2, 0x30, //0x00003be0 shlq $48, %r10 - 0x48, 0xc1, 0xe7, 0x20, //0x00003be4 shlq $32, %rdi - 0x4c, 0x09, 0xd7, //0x00003be8 orq %r10, %rdi - 0x48, 0xc1, 0xe1, 0x10, //0x00003beb shlq $16, %rcx - 0x48, 0x09, 0xf9, //0x00003bef orq %rdi, %rcx - 0x49, 0xc1, 0xe1, 0x30, //0x00003bf2 shlq $48, %r9 - 0x48, 0xc1, 0xe0, 0x20, //0x00003bf6 shlq $32, %rax - 0x4c, 0x09, 0xc8, //0x00003bfa orq %r9, %rax - 0x48, 0xc1, 0xe3, 0x10, //0x00003bfd shlq $16, %rbx - 0x48, 0x09, 0xc3, //0x00003c01 orq %rax, %rbx - 0x49, 0x09, 0xcd, //0x00003c04 orq %rcx, %r13 - 0x0f, 0x85, 0x48, 0x00, 0x00, 0x00, //0x00003c07 jne LBB17_11 - 0x4d, 0x85, 0xf6, //0x00003c0d testq %r14, %r14 - 0x0f, 0x85, 0x5c, 0x00, 0x00, 0x00, //0x00003c10 jne LBB17_13 - 0x45, 0x31, 0xf6, //0x00003c16 xorl %r14d, %r14d - //0x00003c19 LBB17_8 - 0xc5, 0xe9, 0x64, 0xc4, //0x00003c19 vpcmpgtb %xmm4, %xmm2, %xmm0 - 0xc5, 0xd9, 0x64, 0xe3, //0x00003c1d vpcmpgtb %xmm3, %xmm4, %xmm4 - 0xc5, 0xf9, 0xdb, 0xc4, //0x00003c21 vpand %xmm4, %xmm0, %xmm0 - 0xc5, 0xf9, 0xd7, 0xc0, //0x00003c25 vpmovmskb %xmm0, %eax - 0x48, 0x09, 0xc3, //0x00003c29 orq %rax, %rbx - 0x4d, 0x85, 0xe4, //0x00003c2c testq %r12, %r12 - 0x0f, 0x85, 0x8b, 0x00, 0x00, 0x00, //0x00003c2f jne LBB17_14 - 0x48, 0x85, 0xdb, //0x00003c35 testq %rbx, %rbx - 0x0f, 0x85, 0xd6, 0x00, 0x00, 0x00, //0x00003c38 jne LBB17_20 - 0x49, 0x83, 0xc7, 0xc0, //0x00003c3e addq $-64, %r15 - 0x48, 0x83, 0xc6, 0x40, //0x00003c42 addq $64, %rsi - 0x49, 0x83, 0xff, 0x3f, //0x00003c46 cmpq $63, %r15 - 0x0f, 0x87, 0xf0, 0xfe, 0xff, 0xff, //0x00003c4a ja LBB17_5 - 0xe9, 0xe4, 0x00, 0x00, 0x00, //0x00003c50 jmp LBB17_22 - //0x00003c55 LBB17_11 - 0x48, 0x83, 0x7d, 0xc8, 0xff, //0x00003c55 cmpq $-1, $-56(%rbp) - 0x0f, 0x85, 0x12, 0x00, 0x00, 0x00, //0x00003c5a jne LBB17_13 - 0x49, 0x0f, 0xbc, 0xcd, //0x00003c60 bsfq %r13, %rcx - 0x48, 0x01, 0xf1, //0x00003c64 addq %rsi, %rcx - 0x48, 0x8b, 0x45, 0xc0, //0x00003c67 movq $-64(%rbp), %rax - 0x48, 0x89, 0x4d, 0xc8, //0x00003c6b movq %rcx, $-56(%rbp) - 0x48, 0x89, 0x08, //0x00003c6f movq %rcx, (%rax) - //0x00003c72 LBB17_13 - 0x4c, 0x89, 0xf0, //0x00003c72 movq %r14, %rax - 0x48, 0xf7, 0xd0, //0x00003c75 notq %rax - 0x4c, 0x21, 0xe8, //0x00003c78 andq %r13, %rax - 0x48, 0x8d, 0x0c, 0x00, //0x00003c7b leaq (%rax,%rax), %rcx - 0x4c, 0x09, 0xf1, //0x00003c7f orq %r14, %rcx - 0x48, 0x89, 0xca, //0x00003c82 movq %rcx, %rdx - 0x48, 0xf7, 0xd2, //0x00003c85 notq %rdx - 0x4c, 0x21, 0xea, //0x00003c88 andq %r13, %rdx - 0x48, 0xbf, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x00003c8b movabsq $-6148914691236517206, %rdi - 0x48, 0x21, 0xfa, //0x00003c95 andq %rdi, %rdx - 0x45, 0x31, 0xf6, //0x00003c98 xorl %r14d, %r14d - 0x48, 0x01, 0xc2, //0x00003c9b addq %rax, %rdx - 0x41, 0x0f, 0x92, 0xc6, //0x00003c9e setb %r14b - 0x48, 0x01, 0xd2, //0x00003ca2 addq %rdx, %rdx - 0x48, 0xb8, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00003ca5 movabsq $6148914691236517205, %rax - 0x48, 0x31, 0xc2, //0x00003caf xorq %rax, %rdx - 0x48, 0x21, 0xca, //0x00003cb2 andq %rcx, %rdx - 0x48, 0xf7, 0xd2, //0x00003cb5 notq %rdx - 0x49, 0x21, 0xd4, //0x00003cb8 andq %rdx, %r12 - 0xe9, 0x59, 0xff, 0xff, 0xff, //0x00003cbb jmp LBB17_8 - //0x00003cc0 LBB17_14 - 0x49, 0x0f, 0xbc, 0xc4, //0x00003cc0 bsfq %r12, %rax - 0x48, 0x85, 0xdb, //0x00003cc4 testq %rbx, %rbx - 0x0f, 0x84, 0x23, 0x00, 0x00, 0x00, //0x00003cc7 je LBB17_18 - 0x48, 0x0f, 0xbc, 0xcb, //0x00003ccd bsfq %rbx, %rcx - 0x48, 0x39, 0xc1, //0x00003cd1 cmpq %rax, %rcx - 0x0f, 0x82, 0x24, 0x00, 0x00, 0x00, //0x00003cd4 jb LBB17_19 - //0x00003cda LBB17_16 - 0x48, 0x01, 0xf0, //0x00003cda addq %rsi, %rax - 0x48, 0x83, 0xc0, 0x01, //0x00003cdd addq $1, %rax - //0x00003ce1 LBB17_17 - 0x48, 0x83, 0xc4, 0x18, //0x00003ce1 addq $24, %rsp - 0x5b, //0x00003ce5 popq %rbx - 0x41, 0x5c, //0x00003ce6 popq %r12 - 0x41, 0x5d, //0x00003ce8 popq %r13 - 0x41, 0x5e, //0x00003cea popq %r14 - 0x41, 0x5f, //0x00003cec popq %r15 - 0x5d, //0x00003cee popq %rbp - 0xc3, //0x00003cef retq - //0x00003cf0 LBB17_18 - 0xb9, 0x40, 0x00, 0x00, 0x00, //0x00003cf0 movl $64, %ecx - 0x48, 0x39, 0xc1, //0x00003cf5 cmpq %rax, %rcx - 0x0f, 0x83, 0xdc, 0xff, 0xff, 0xff, //0x00003cf8 jae LBB17_16 - //0x00003cfe LBB17_19 - 0x48, 0x01, 0xf1, //0x00003cfe addq %rsi, %rcx - 0x48, 0x8b, 0x45, 0xc0, //0x00003d01 movq $-64(%rbp), %rax - 0x48, 0x89, 0x08, //0x00003d05 movq %rcx, (%rax) - 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00003d08 movq $-2, %rax - 0xe9, 0xcd, 0xff, 0xff, 0xff, //0x00003d0f jmp LBB17_17 - //0x00003d14 LBB17_20 - 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00003d14 movq $-2, %rax - 0x48, 0x83, 0x7d, 0xc8, 0xff, //0x00003d1b cmpq $-1, $-56(%rbp) - 0x0f, 0x85, 0xbb, 0xff, 0xff, 0xff, //0x00003d20 jne LBB17_17 - 0x48, 0x0f, 0xbc, 0xcb, //0x00003d26 bsfq %rbx, %rcx - 0x48, 0x01, 0xf1, //0x00003d2a addq %rsi, %rcx - 0x48, 0x8b, 0x55, 0xc0, //0x00003d2d movq $-64(%rbp), %rdx - 0x48, 0x89, 0x0a, //0x00003d31 movq %rcx, (%rdx) - 0xe9, 0xa8, 0xff, 0xff, 0xff, //0x00003d34 jmp LBB17_17 - //0x00003d39 LBB17_22 - 0x48, 0x03, 0x75, 0xd0, //0x00003d39 addq $-48(%rbp), %rsi - 0x49, 0x83, 0xff, 0x20, //0x00003d3d cmpq $32, %r15 - 0x0f, 0x82, 0xe4, 0x00, 0x00, 0x00, //0x00003d41 jb LBB17_35 - //0x00003d47 LBB17_23 - 0xc5, 0xfa, 0x6f, 0x06, //0x00003d47 vmovdqu (%rsi), %xmm0 - 0xc5, 0xfa, 0x6f, 0x4e, 0x10, //0x00003d4b vmovdqu $16(%rsi), %xmm1 - 0xc5, 0xf9, 0x6f, 0x15, 0x48, 0xfd, 0xff, 0xff, //0x00003d50 vmovdqa $-696(%rip), %xmm2 /* LCPI17_0+0(%rip) */ - 0xc5, 0xf9, 0x74, 0xda, //0x00003d58 vpcmpeqb %xmm2, %xmm0, %xmm3 - 0xc5, 0xf9, 0xd7, 0xc3, //0x00003d5c vpmovmskb %xmm3, %eax - 0xc5, 0xf1, 0x74, 0xd2, //0x00003d60 vpcmpeqb %xmm2, %xmm1, %xmm2 - 0xc5, 0xf9, 0xd7, 0xca, //0x00003d64 vpmovmskb %xmm2, %ecx - 0xc5, 0xf9, 0x6f, 0x15, 0x40, 0xfd, 0xff, 0xff, //0x00003d68 vmovdqa $-704(%rip), %xmm2 /* LCPI17_1+0(%rip) */ - 0xc5, 0xf9, 0x74, 0xda, //0x00003d70 vpcmpeqb %xmm2, %xmm0, %xmm3 - 0xc5, 0x79, 0xd7, 0xd3, //0x00003d74 vpmovmskb %xmm3, %r10d - 0xc5, 0xf1, 0x74, 0xd2, //0x00003d78 vpcmpeqb %xmm2, %xmm1, %xmm2 - 0xc5, 0xf9, 0xd7, 0xd2, //0x00003d7c vpmovmskb %xmm2, %edx - 0xc5, 0xf9, 0x6f, 0x15, 0x38, 0xfd, 0xff, 0xff, //0x00003d80 vmovdqa $-712(%rip), %xmm2 /* LCPI17_2+0(%rip) */ - 0xc5, 0xe9, 0x64, 0xd8, //0x00003d88 vpcmpgtb %xmm0, %xmm2, %xmm3 - 0xc5, 0xd9, 0x76, 0xe4, //0x00003d8c vpcmpeqd %xmm4, %xmm4, %xmm4 - 0xc5, 0xf9, 0x64, 0xc4, //0x00003d90 vpcmpgtb %xmm4, %xmm0, %xmm0 - 0xc5, 0xe1, 0xdb, 0xc0, //0x00003d94 vpand %xmm0, %xmm3, %xmm0 - 0xc5, 0x79, 0xd7, 0xc8, //0x00003d98 vpmovmskb %xmm0, %r9d - 0xc5, 0xe9, 0x64, 0xc1, //0x00003d9c vpcmpgtb %xmm1, %xmm2, %xmm0 - 0xc5, 0xf1, 0x64, 0xcc, //0x00003da0 vpcmpgtb %xmm4, %xmm1, %xmm1 - 0xc5, 0xf9, 0xdb, 0xc1, //0x00003da4 vpand %xmm1, %xmm0, %xmm0 - 0xc5, 0xf9, 0xd7, 0xd8, //0x00003da8 vpmovmskb %xmm0, %ebx - 0x48, 0xc1, 0xe1, 0x10, //0x00003dac shlq $16, %rcx - 0x48, 0x09, 0xc8, //0x00003db0 orq %rcx, %rax - 0x48, 0xc1, 0xe2, 0x10, //0x00003db3 shlq $16, %rdx - 0x48, 0xc1, 0xe3, 0x10, //0x00003db7 shlq $16, %rbx - 0x49, 0x09, 0xd2, //0x00003dbb orq %rdx, %r10 - 0x0f, 0x85, 0x21, 0x01, 0x00, 0x00, //0x00003dbe jne LBB17_49 - 0x4d, 0x85, 0xf6, //0x00003dc4 testq %r14, %r14 - 0x0f, 0x85, 0x3c, 0x01, 0x00, 0x00, //0x00003dc7 jne LBB17_51 - 0x45, 0x31, 0xf6, //0x00003dcd xorl %r14d, %r14d - //0x00003dd0 LBB17_26 - 0x4c, 0x09, 0xcb, //0x00003dd0 orq %r9, %rbx - 0xb9, 0x40, 0x00, 0x00, 0x00, //0x00003dd3 movl $64, %ecx - 0xba, 0x40, 0x00, 0x00, 0x00, //0x00003dd8 movl $64, %edx - 0x48, 0x85, 0xc0, //0x00003ddd testq %rax, %rax - 0x0f, 0x84, 0x04, 0x00, 0x00, 0x00, //0x00003de0 je LBB17_28 - 0x48, 0x0f, 0xbc, 0xd0, //0x00003de6 bsfq %rax, %rdx - //0x00003dea LBB17_28 - 0x48, 0x85, 0xdb, //0x00003dea testq %rbx, %rbx - 0x0f, 0x84, 0x04, 0x00, 0x00, 0x00, //0x00003ded je LBB17_30 - 0x48, 0x0f, 0xbc, 0xcb, //0x00003df3 bsfq %rbx, %rcx - //0x00003df7 LBB17_30 - 0x48, 0x85, 0xc0, //0x00003df7 testq %rax, %rax - 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x00003dfa je LBB17_33 - 0x48, 0x39, 0xd1, //0x00003e00 cmpq %rdx, %rcx - 0x0f, 0x82, 0x37, 0x01, 0x00, 0x00, //0x00003e03 jb LBB17_52 - 0x48, 0x2b, 0x75, 0xd0, //0x00003e09 subq $-48(%rbp), %rsi - 0x48, 0x8d, 0x04, 0x16, //0x00003e0d leaq (%rsi,%rdx), %rax - 0x48, 0x83, 0xc0, 0x01, //0x00003e11 addq $1, %rax - 0xe9, 0xc7, 0xfe, 0xff, 0xff, //0x00003e15 jmp LBB17_17 - //0x00003e1a LBB17_33 - 0x48, 0x85, 0xdb, //0x00003e1a testq %rbx, %rbx - 0x0f, 0x85, 0x1d, 0x01, 0x00, 0x00, //0x00003e1d jne LBB17_52 - 0x48, 0x83, 0xc6, 0x20, //0x00003e23 addq $32, %rsi - 0x49, 0x83, 0xc7, 0xe0, //0x00003e27 addq $-32, %r15 - //0x00003e2b LBB17_35 - 0x4d, 0x85, 0xf6, //0x00003e2b testq %r14, %r14 - 0x0f, 0x85, 0x26, 0x01, 0x00, 0x00, //0x00003e2e jne LBB17_54 - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00003e34 movq $-1, %rax - 0x4d, 0x85, 0xff, //0x00003e3b testq %r15, %r15 - 0x0f, 0x84, 0x9d, 0xfe, 0xff, 0xff, //0x00003e3e je LBB17_17 - //0x00003e44 LBB17_37 - 0x48, 0x8b, 0x7d, 0xc0, //0x00003e44 movq $-64(%rbp), %rdi - //0x00003e48 LBB17_38 - 0x0f, 0xb6, 0x0e, //0x00003e48 movzbl (%rsi), %ecx - 0x80, 0xf9, 0x22, //0x00003e4b cmpb $34, %cl - 0x0f, 0x84, 0x63, 0x00, 0x00, 0x00, //0x00003e4e je LBB17_46 - 0x80, 0xf9, 0x5c, //0x00003e54 cmpb $92, %cl - 0x0f, 0x84, 0x26, 0x00, 0x00, 0x00, //0x00003e57 je LBB17_43 - 0x80, 0xf9, 0x1f, //0x00003e5d cmpb $31, %cl - 0x0f, 0x86, 0x46, 0x01, 0x00, 0x00, //0x00003e60 jbe LBB17_58 - 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00003e66 movq $-1, %rcx - 0xba, 0x01, 0x00, 0x00, 0x00, //0x00003e6d movl $1, %edx - //0x00003e72 LBB17_42 - 0x48, 0x01, 0xd6, //0x00003e72 addq %rdx, %rsi - 0x49, 0x01, 0xcf, //0x00003e75 addq %rcx, %r15 - 0x0f, 0x85, 0xca, 0xff, 0xff, 0xff, //0x00003e78 jne LBB17_38 - 0xe9, 0x5e, 0xfe, 0xff, 0xff, //0x00003e7e jmp LBB17_17 - //0x00003e83 LBB17_43 - 0x49, 0x83, 0xff, 0x01, //0x00003e83 cmpq $1, %r15 - 0x0f, 0x84, 0x54, 0xfe, 0xff, 0xff, //0x00003e87 je LBB17_17 - 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x00003e8d movq $-2, %rcx - 0xba, 0x02, 0x00, 0x00, 0x00, //0x00003e94 movl $2, %edx - 0x48, 0x83, 0x7d, 0xc8, 0xff, //0x00003e99 cmpq $-1, $-56(%rbp) - 0x0f, 0x85, 0xce, 0xff, 0xff, 0xff, //0x00003e9e jne LBB17_42 - 0x48, 0x89, 0xf3, //0x00003ea4 movq %rsi, %rbx - 0x48, 0x2b, 0x5d, 0xd0, //0x00003ea7 subq $-48(%rbp), %rbx - 0x48, 0x89, 0x5d, 0xc8, //0x00003eab movq %rbx, $-56(%rbp) - 0x48, 0x89, 0x1f, //0x00003eaf movq %rbx, (%rdi) - 0xe9, 0xbb, 0xff, 0xff, 0xff, //0x00003eb2 jmp LBB17_42 - //0x00003eb7 LBB17_46 - 0x48, 0x2b, 0x75, 0xd0, //0x00003eb7 subq $-48(%rbp), %rsi - 0x48, 0x83, 0xc6, 0x01, //0x00003ebb addq $1, %rsi - 0x48, 0x89, 0xf0, //0x00003ebf movq %rsi, %rax - 0xe9, 0x1a, 0xfe, 0xff, 0xff, //0x00003ec2 jmp LBB17_17 - //0x00003ec7 LBB17_48 - 0x48, 0x03, 0x75, 0xd0, //0x00003ec7 addq $-48(%rbp), %rsi - 0x48, 0xc7, 0x45, 0xc8, 0xff, 0xff, 0xff, 0xff, //0x00003ecb movq $-1, $-56(%rbp) - 0x45, 0x31, 0xf6, //0x00003ed3 xorl %r14d, %r14d - 0x49, 0x83, 0xff, 0x20, //0x00003ed6 cmpq $32, %r15 - 0x0f, 0x83, 0x67, 0xfe, 0xff, 0xff, //0x00003eda jae LBB17_23 - 0xe9, 0x46, 0xff, 0xff, 0xff, //0x00003ee0 jmp LBB17_35 - //0x00003ee5 LBB17_49 - 0x48, 0x83, 0x7d, 0xc8, 0xff, //0x00003ee5 cmpq $-1, $-56(%rbp) - 0x0f, 0x85, 0x19, 0x00, 0x00, 0x00, //0x00003eea jne LBB17_51 - 0x48, 0x89, 0xf1, //0x00003ef0 movq %rsi, %rcx - 0x48, 0x2b, 0x4d, 0xd0, //0x00003ef3 subq $-48(%rbp), %rcx - 0x49, 0x0f, 0xbc, 0xd2, //0x00003ef7 bsfq %r10, %rdx - 0x48, 0x01, 0xca, //0x00003efb addq %rcx, %rdx - 0x48, 0x8b, 0x4d, 0xc0, //0x00003efe movq $-64(%rbp), %rcx - 0x48, 0x89, 0x55, 0xc8, //0x00003f02 movq %rdx, $-56(%rbp) - 0x48, 0x89, 0x11, //0x00003f06 movq %rdx, (%rcx) - //0x00003f09 LBB17_51 - 0x44, 0x89, 0xf1, //0x00003f09 movl %r14d, %ecx - 0xf7, 0xd1, //0x00003f0c notl %ecx - 0x44, 0x21, 0xd1, //0x00003f0e andl %r10d, %ecx - 0x45, 0x8d, 0x04, 0x4e, //0x00003f11 leal (%r14,%rcx,2), %r8d - 0x8d, 0x14, 0x09, //0x00003f15 leal (%rcx,%rcx), %edx - 0xf7, 0xd2, //0x00003f18 notl %edx - 0x44, 0x21, 0xd2, //0x00003f1a andl %r10d, %edx - 0x81, 0xe2, 0xaa, 0xaa, 0xaa, 0xaa, //0x00003f1d andl $-1431655766, %edx - 0x45, 0x31, 0xf6, //0x00003f23 xorl %r14d, %r14d - 0x01, 0xca, //0x00003f26 addl %ecx, %edx - 0x41, 0x0f, 0x92, 0xc6, //0x00003f28 setb %r14b - 0x01, 0xd2, //0x00003f2c addl %edx, %edx - 0x81, 0xf2, 0x55, 0x55, 0x55, 0x55, //0x00003f2e xorl $1431655765, %edx - 0x44, 0x21, 0xc2, //0x00003f34 andl %r8d, %edx - 0xf7, 0xd2, //0x00003f37 notl %edx - 0x21, 0xd0, //0x00003f39 andl %edx, %eax - 0xe9, 0x90, 0xfe, 0xff, 0xff, //0x00003f3b jmp LBB17_26 - //0x00003f40 LBB17_52 - 0x48, 0x2b, 0x75, 0xd0, //0x00003f40 subq $-48(%rbp), %rsi - 0x48, 0x01, 0xce, //0x00003f44 addq %rcx, %rsi - //0x00003f47 LBB17_53 - 0x48, 0x8b, 0x45, 0xc0, //0x00003f47 movq $-64(%rbp), %rax - 0x48, 0x89, 0x30, //0x00003f4b movq %rsi, (%rax) - 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00003f4e movq $-2, %rax - 0xe9, 0x87, 0xfd, 0xff, 0xff, //0x00003f55 jmp LBB17_17 - //0x00003f5a LBB17_54 - 0x4d, 0x85, 0xff, //0x00003f5a testq %r15, %r15 - 0x0f, 0x84, 0x3d, 0x00, 0x00, 0x00, //0x00003f5d je LBB17_47 - 0x48, 0x83, 0x7d, 0xc8, 0xff, //0x00003f63 cmpq $-1, $-56(%rbp) - 0x0f, 0x85, 0x15, 0x00, 0x00, 0x00, //0x00003f68 jne LBB17_57 - 0x48, 0x8b, 0x4d, 0xd0, //0x00003f6e movq $-48(%rbp), %rcx - 0x48, 0xf7, 0xd1, //0x00003f72 notq %rcx - 0x48, 0x01, 0xf1, //0x00003f75 addq %rsi, %rcx - 0x48, 0x8b, 0x45, 0xc0, //0x00003f78 movq $-64(%rbp), %rax - 0x48, 0x89, 0x4d, 0xc8, //0x00003f7c movq %rcx, $-56(%rbp) - 0x48, 0x89, 0x08, //0x00003f80 movq %rcx, (%rax) - //0x00003f83 LBB17_57 - 0x48, 0x83, 0xc6, 0x01, //0x00003f83 addq $1, %rsi - 0x49, 0x83, 0xc7, 0xff, //0x00003f87 addq $-1, %r15 - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00003f8b movq $-1, %rax - 0x4d, 0x85, 0xff, //0x00003f92 testq %r15, %r15 - 0x0f, 0x85, 0xa9, 0xfe, 0xff, 0xff, //0x00003f95 jne LBB17_37 - 0xe9, 0x41, 0xfd, 0xff, 0xff, //0x00003f9b jmp LBB17_17 - //0x00003fa0 LBB17_47 - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00003fa0 movq $-1, %rax - 0xe9, 0x35, 0xfd, 0xff, 0xff, //0x00003fa7 jmp LBB17_17 - //0x00003fac LBB17_58 - 0x48, 0x2b, 0x75, 0xd0, //0x00003fac subq $-48(%rbp), %rsi - 0xe9, 0x92, 0xff, 0xff, 0xff, //0x00003fb0 jmp LBB17_53 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00003fb5 .p2align 4, 0x00 - //0x00003fc0 LCPI18_0 - 0x00, 0x00, 0x30, 0x43, //0x00003fc0 .long 1127219200 - 0x00, 0x00, 0x30, 0x45, //0x00003fc4 .long 1160773632 - 0x00, 0x00, 0x00, 0x00, //0x00003fc8 .long 0 - 0x00, 0x00, 0x00, 0x00, //0x00003fcc .long 0 - //0x00003fd0 LCPI18_1 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x43, //0x00003fd0 .quad 0x4330000000000000 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x45, //0x00003fd8 .quad 0x4530000000000000 - //0x00003fe0 .p2align 3, 0x00 - //0x00003fe0 LCPI18_2 - 0x00, 0x00, 0x34, 0x26, 0xf5, 0x6b, 0x0c, 0x43, //0x00003fe0 .quad 0x430c6bf526340000 - //0x00003fe8 LCPI18_3 - 0x00, 0x00, 0x34, 0x26, 0xf5, 0x6b, 0x0c, 0xc3, //0x00003fe8 .quad 0xc30c6bf526340000 - //0x00003ff0 .p2align 4, 0x90 - //0x00003ff0 _vnumber - 0x55, //0x00003ff0 pushq %rbp - 0x48, 0x89, 0xe5, //0x00003ff1 movq %rsp, %rbp - 0x41, 0x57, //0x00003ff4 pushq %r15 - 0x41, 0x56, //0x00003ff6 pushq %r14 - 0x41, 0x55, //0x00003ff8 pushq %r13 - 0x41, 0x54, //0x00003ffa pushq %r12 - 0x53, //0x00003ffc pushq %rbx - 0x48, 0x83, 0xec, 0x48, //0x00003ffd subq $72, %rsp - 0x49, 0x89, 0xd6, //0x00004001 movq %rdx, %r14 - 0x48, 0x8b, 0x06, //0x00004004 movq (%rsi), %rax - 0x4c, 0x8b, 0x3f, //0x00004007 movq (%rdi), %r15 - 0x4c, 0x8b, 0x6f, 0x08, //0x0000400a movq $8(%rdi), %r13 - 0x4c, 0x8b, 0x5a, 0x20, //0x0000400e movq $32(%rdx), %r11 - 0x48, 0x8b, 0x5a, 0x28, //0x00004012 movq $40(%rdx), %rbx - 0x48, 0xc7, 0x02, 0x09, 0x00, 0x00, 0x00, //0x00004016 movq $9, (%rdx) - 0xc5, 0xf9, 0x57, 0xc0, //0x0000401d vxorpd %xmm0, %xmm0, %xmm0 - 0xc5, 0xf9, 0x11, 0x42, 0x08, //0x00004021 vmovupd %xmm0, $8(%rdx) - 0x48, 0x8b, 0x0e, //0x00004026 movq (%rsi), %rcx - 0x48, 0x89, 0x4a, 0x18, //0x00004029 movq %rcx, $24(%rdx) - 0x4c, 0x39, 0xe8, //0x0000402d cmpq %r13, %rax - 0x0f, 0x83, 0x46, 0x00, 0x00, 0x00, //0x00004030 jae LBB18_6 - 0x41, 0x8a, 0x3c, 0x07, //0x00004036 movb (%r15,%rax), %dil - 0x41, 0xba, 0x01, 0x00, 0x00, 0x00, //0x0000403a movl $1, %r10d - 0x40, 0x80, 0xff, 0x2d, //0x00004040 cmpb $45, %dil - 0x0f, 0x85, 0x17, 0x00, 0x00, 0x00, //0x00004044 jne LBB18_4 - 0x48, 0x83, 0xc0, 0x01, //0x0000404a addq $1, %rax - 0x4c, 0x39, 0xe8, //0x0000404e cmpq %r13, %rax - 0x0f, 0x83, 0x25, 0x00, 0x00, 0x00, //0x00004051 jae LBB18_6 - 0x41, 0x8a, 0x3c, 0x07, //0x00004057 movb (%r15,%rax), %dil - 0x41, 0xba, 0xff, 0xff, 0xff, 0xff, //0x0000405b movl $-1, %r10d - //0x00004061 LBB18_4 - 0x8d, 0x4f, 0xd0, //0x00004061 leal $-48(%rdi), %ecx - 0x80, 0xf9, 0x0a, //0x00004064 cmpb $10, %cl - 0x0f, 0x82, 0x28, 0x00, 0x00, 0x00, //0x00004067 jb LBB18_9 - 0x48, 0x89, 0x06, //0x0000406d movq %rax, (%rsi) - 0x49, 0xc7, 0x06, 0xfe, 0xff, 0xff, 0xff, //0x00004070 movq $-2, (%r14) - 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x00004077 jmp LBB18_8 - //0x0000407c LBB18_6 - 0x4c, 0x89, 0x2e, //0x0000407c movq %r13, (%rsi) - //0x0000407f LBB18_7 - 0x49, 0xc7, 0x06, 0xff, 0xff, 0xff, 0xff, //0x0000407f movq $-1, (%r14) - //0x00004086 LBB18_8 - 0x48, 0x83, 0xc4, 0x48, //0x00004086 addq $72, %rsp - 0x5b, //0x0000408a popq %rbx - 0x41, 0x5c, //0x0000408b popq %r12 - 0x41, 0x5d, //0x0000408d popq %r13 - 0x41, 0x5e, //0x0000408f popq %r14 - 0x41, 0x5f, //0x00004091 popq %r15 - 0x5d, //0x00004093 popq %rbp - 0xc3, //0x00004094 retq - //0x00004095 LBB18_9 - 0x40, 0x80, 0xff, 0x30, //0x00004095 cmpb $48, %dil - 0x0f, 0x85, 0x35, 0x00, 0x00, 0x00, //0x00004099 jne LBB18_13 - 0x4c, 0x8d, 0x48, 0x01, //0x0000409f leaq $1(%rax), %r9 - 0x4c, 0x39, 0xe8, //0x000040a3 cmpq %r13, %rax - 0x0f, 0x83, 0xcd, 0x00, 0x00, 0x00, //0x000040a6 jae LBB18_22 - 0x43, 0x8a, 0x14, 0x0f, //0x000040ac movb (%r15,%r9), %dl - 0x80, 0xc2, 0xd2, //0x000040b0 addb $-46, %dl - 0x80, 0xfa, 0x37, //0x000040b3 cmpb $55, %dl - 0x0f, 0x87, 0xbd, 0x00, 0x00, 0x00, //0x000040b6 ja LBB18_22 - 0x44, 0x0f, 0xb6, 0xc2, //0x000040bc movzbl %dl, %r8d - 0x48, 0xba, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, //0x000040c0 movabsq $36028797027352577, %rdx - 0x4c, 0x0f, 0xa3, 0xc2, //0x000040ca btq %r8, %rdx - 0x0f, 0x83, 0xa5, 0x00, 0x00, 0x00, //0x000040ce jae LBB18_22 - //0x000040d4 LBB18_13 - 0x4c, 0x39, 0xe8, //0x000040d4 cmpq %r13, %rax - 0x4c, 0x89, 0x5d, 0x98, //0x000040d7 movq %r11, $-104(%rbp) - 0x48, 0x89, 0x5d, 0xa0, //0x000040db movq %rbx, $-96(%rbp) - 0x48, 0x89, 0x75, 0xc8, //0x000040df movq %rsi, $-56(%rbp) - 0x0f, 0x83, 0x7e, 0x00, 0x00, 0x00, //0x000040e3 jae LBB18_21 - 0x80, 0xf9, 0x09, //0x000040e9 cmpb $9, %cl - 0x44, 0x89, 0x55, 0xbc, //0x000040ec movl %r10d, $-68(%rbp) - 0xb1, 0x01, //0x000040f0 movb $1, %cl - 0x0f, 0x87, 0x89, 0x00, 0x00, 0x00, //0x000040f2 ja LBB18_23 - 0x89, 0x4d, 0xd4, //0x000040f8 movl %ecx, $-44(%rbp) - 0x41, 0xb9, 0xd0, 0xff, 0xff, 0xff, //0x000040fb movl $4294967248, %r9d - 0x4d, 0x8d, 0x55, 0xff, //0x00004101 leaq $-1(%r13), %r10 - 0x31, 0xc9, //0x00004105 xorl %ecx, %ecx - 0x45, 0x31, 0xc0, //0x00004107 xorl %r8d, %r8d - 0x45, 0x31, 0xe4, //0x0000410a xorl %r12d, %r12d - 0x90, 0x90, 0x90, //0x0000410d .p2align 4, 0x90 - //0x00004110 LBB18_16 - 0x41, 0x83, 0xf8, 0x12, //0x00004110 cmpl $18, %r8d - 0x0f, 0x8f, 0x26, 0x00, 0x00, 0x00, //0x00004114 jg LBB18_18 - 0x4b, 0x8d, 0x14, 0xa4, //0x0000411a leaq (%r12,%r12,4), %rdx - 0x40, 0x0f, 0xbe, 0xff, //0x0000411e movsbl %dil, %edi - 0x44, 0x01, 0xcf, //0x00004122 addl %r9d, %edi - 0x4c, 0x8d, 0x24, 0x57, //0x00004125 leaq (%rdi,%rdx,2), %r12 - 0x41, 0x83, 0xc0, 0x01, //0x00004129 addl $1, %r8d - 0xe9, 0x11, 0x00, 0x00, 0x00, //0x0000412d jmp LBB18_19 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00004132 .p2align 4, 0x90 - //0x00004140 LBB18_18 - 0x83, 0xc1, 0x01, //0x00004140 addl $1, %ecx - //0x00004143 LBB18_19 - 0x49, 0x39, 0xc2, //0x00004143 cmpq %rax, %r10 - 0x0f, 0x84, 0x7a, 0x00, 0x00, 0x00, //0x00004146 je LBB18_28 - 0x41, 0x0f, 0xb6, 0x7c, 0x07, 0x01, //0x0000414c movzbl $1(%r15,%rax), %edi - 0x8d, 0x57, 0xd0, //0x00004152 leal $-48(%rdi), %edx - 0x48, 0x83, 0xc0, 0x01, //0x00004155 addq $1, %rax - 0x80, 0xfa, 0x0a, //0x00004159 cmpb $10, %dl - 0x0f, 0x82, 0xae, 0xff, 0xff, 0xff, //0x0000415c jb LBB18_16 - 0xe9, 0x25, 0x00, 0x00, 0x00, //0x00004162 jmp LBB18_24 - //0x00004167 LBB18_21 - 0xb1, 0x01, //0x00004167 movb $1, %cl - 0x89, 0x4d, 0xd4, //0x00004169 movl %ecx, $-44(%rbp) - 0x31, 0xc9, //0x0000416c xorl %ecx, %ecx - 0x45, 0x31, 0xc0, //0x0000416e xorl %r8d, %r8d - 0x45, 0x31, 0xe4, //0x00004171 xorl %r12d, %r12d - 0xe9, 0x54, 0x00, 0x00, 0x00, //0x00004174 jmp LBB18_30 - //0x00004179 LBB18_22 - 0x4c, 0x89, 0x0e, //0x00004179 movq %r9, (%rsi) - 0xe9, 0x05, 0xff, 0xff, 0xff, //0x0000417c jmp LBB18_8 - //0x00004181 LBB18_23 - 0x89, 0x4d, 0xd4, //0x00004181 movl %ecx, $-44(%rbp) - 0x45, 0x31, 0xe4, //0x00004184 xorl %r12d, %r12d - 0x45, 0x31, 0xc0, //0x00004187 xorl %r8d, %r8d - 0x31, 0xc9, //0x0000418a xorl %ecx, %ecx - //0x0000418c LBB18_24 - 0x40, 0x80, 0xff, 0x2e, //0x0000418c cmpb $46, %dil - 0x0f, 0x85, 0x33, 0x00, 0x00, 0x00, //0x00004190 jne LBB18_29 - 0x48, 0x83, 0xc0, 0x01, //0x00004196 addq $1, %rax - 0x49, 0xc7, 0x06, 0x08, 0x00, 0x00, 0x00, //0x0000419a movq $8, (%r14) - 0x4c, 0x39, 0xe8, //0x000041a1 cmpq %r13, %rax - 0x0f, 0x83, 0x70, 0x02, 0x00, 0x00, //0x000041a4 jae LBB18_68 - 0x41, 0x8a, 0x14, 0x07, //0x000041aa movb (%r15,%rax), %dl - 0x80, 0xc2, 0xd0, //0x000041ae addb $-48, %dl - 0x80, 0xfa, 0x0a, //0x000041b1 cmpb $10, %dl - 0x0f, 0x83, 0x17, 0x04, 0x00, 0x00, //0x000041b4 jae LBB18_92 - 0xc7, 0x45, 0xd4, 0x00, 0x00, 0x00, 0x00, //0x000041ba movl $0, $-44(%rbp) - 0xe9, 0x03, 0x00, 0x00, 0x00, //0x000041c1 jmp LBB18_29 - //0x000041c6 LBB18_28 - 0x4c, 0x89, 0xe8, //0x000041c6 movq %r13, %rax - //0x000041c9 LBB18_29 - 0x44, 0x8b, 0x55, 0xbc, //0x000041c9 movl $-68(%rbp), %r10d - //0x000041cd LBB18_30 - 0x45, 0x31, 0xdb, //0x000041cd xorl %r11d, %r11d - 0x85, 0xc9, //0x000041d0 testl %ecx, %ecx - 0x41, 0x0f, 0x9f, 0xc3, //0x000041d2 setg %r11b - 0x4d, 0x85, 0xe4, //0x000041d6 testq %r12, %r12 - 0x0f, 0x85, 0x56, 0x00, 0x00, 0x00, //0x000041d9 jne LBB18_39 - 0x85, 0xc9, //0x000041df testl %ecx, %ecx - 0x0f, 0x85, 0x4e, 0x00, 0x00, 0x00, //0x000041e1 jne LBB18_39 - 0x4c, 0x39, 0xe8, //0x000041e7 cmpq %r13, %rax - 0x0f, 0x83, 0x3d, 0x00, 0x00, 0x00, //0x000041ea jae LBB18_37 - 0x89, 0xc6, //0x000041f0 movl %eax, %esi - 0x44, 0x29, 0xee, //0x000041f2 subl %r13d, %esi - 0x45, 0x31, 0xc0, //0x000041f5 xorl %r8d, %r8d - 0x31, 0xc9, //0x000041f8 xorl %ecx, %ecx - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000041fa .p2align 4, 0x90 - //0x00004200 LBB18_34 - 0x41, 0x80, 0x3c, 0x07, 0x30, //0x00004200 cmpb $48, (%r15,%rax) - 0x0f, 0x85, 0x27, 0x00, 0x00, 0x00, //0x00004205 jne LBB18_38 - 0x48, 0x83, 0xc0, 0x01, //0x0000420b addq $1, %rax - 0x83, 0xc1, 0xff, //0x0000420f addl $-1, %ecx - 0x49, 0x39, 0xc5, //0x00004212 cmpq %rax, %r13 - 0x0f, 0x85, 0xe5, 0xff, 0xff, 0xff, //0x00004215 jne LBB18_34 - 0x45, 0x31, 0xe4, //0x0000421b xorl %r12d, %r12d - 0x80, 0x7d, 0xd4, 0x00, //0x0000421e cmpb $0, $-44(%rbp) - 0x0f, 0x85, 0x26, 0x01, 0x00, 0x00, //0x00004222 jne LBB18_58 - 0xe9, 0x55, 0x01, 0x00, 0x00, //0x00004228 jmp LBB18_62 - //0x0000422d LBB18_37 - 0x31, 0xc9, //0x0000422d xorl %ecx, %ecx - 0x45, 0x31, 0xc0, //0x0000422f xorl %r8d, %r8d - //0x00004232 LBB18_38 - 0x45, 0x31, 0xe4, //0x00004232 xorl %r12d, %r12d - //0x00004235 LBB18_39 - 0x4c, 0x39, 0xe8, //0x00004235 cmpq %r13, %rax - 0x0f, 0x83, 0x4f, 0x00, 0x00, 0x00, //0x00004238 jae LBB18_45 - 0x41, 0x83, 0xf8, 0x12, //0x0000423e cmpl $18, %r8d - 0x0f, 0x8f, 0x45, 0x00, 0x00, 0x00, //0x00004242 jg LBB18_45 - 0x41, 0xb9, 0xd0, 0xff, 0xff, 0xff, //0x00004248 movl $4294967248, %r9d - 0x90, 0x90, //0x0000424e .p2align 4, 0x90 - //0x00004250 LBB18_42 - 0x41, 0x0f, 0xb6, 0x3c, 0x07, //0x00004250 movzbl (%r15,%rax), %edi - 0x8d, 0x57, 0xd0, //0x00004255 leal $-48(%rdi), %edx - 0x80, 0xfa, 0x09, //0x00004258 cmpb $9, %dl - 0x0f, 0x87, 0x2c, 0x00, 0x00, 0x00, //0x0000425b ja LBB18_45 - 0x4b, 0x8d, 0x14, 0xa4, //0x00004261 leaq (%r12,%r12,4), %rdx - 0x44, 0x01, 0xcf, //0x00004265 addl %r9d, %edi - 0x4c, 0x8d, 0x24, 0x57, //0x00004268 leaq (%rdi,%rdx,2), %r12 - 0x83, 0xc1, 0xff, //0x0000426c addl $-1, %ecx - 0x48, 0x83, 0xc0, 0x01, //0x0000426f addq $1, %rax - 0x4c, 0x39, 0xe8, //0x00004273 cmpq %r13, %rax - 0x0f, 0x83, 0x11, 0x00, 0x00, 0x00, //0x00004276 jae LBB18_45 - 0x41, 0x8d, 0x50, 0x01, //0x0000427c leal $1(%r8), %edx - 0x41, 0x83, 0xf8, 0x12, //0x00004280 cmpl $18, %r8d - 0x41, 0x89, 0xd0, //0x00004284 movl %edx, %r8d - 0x0f, 0x8c, 0xc3, 0xff, 0xff, 0xff, //0x00004287 jl LBB18_42 - //0x0000428d LBB18_45 - 0x4c, 0x39, 0xe8, //0x0000428d cmpq %r13, %rax - 0x0f, 0x83, 0xa9, 0x00, 0x00, 0x00, //0x00004290 jae LBB18_57 - 0x41, 0x8a, 0x14, 0x07, //0x00004296 movb (%r15,%rax), %dl - 0x8d, 0x72, 0xd0, //0x0000429a leal $-48(%rdx), %esi - 0x40, 0x80, 0xfe, 0x09, //0x0000429d cmpb $9, %sil - 0x0f, 0x87, 0x2f, 0x00, 0x00, 0x00, //0x000042a1 ja LBB18_51 - 0x49, 0x8d, 0x75, 0xff, //0x000042a7 leaq $-1(%r13), %rsi - 0x90, 0x90, 0x90, 0x90, 0x90, //0x000042ab .p2align 4, 0x90 - //0x000042b0 LBB18_48 - 0x48, 0x39, 0xc6, //0x000042b0 cmpq %rax, %rsi - 0x0f, 0x84, 0x6d, 0x01, 0x00, 0x00, //0x000042b3 je LBB18_69 - 0x41, 0x0f, 0xb6, 0x54, 0x07, 0x01, //0x000042b9 movzbl $1(%r15,%rax), %edx - 0x8d, 0x7a, 0xd0, //0x000042bf leal $-48(%rdx), %edi - 0x48, 0x83, 0xc0, 0x01, //0x000042c2 addq $1, %rax + 0x45, 0x29, 0xf7, //0x00000385 subl %r14d, %r15d + 0x41, 0xff, 0xc7, //0x00000388 incl %r15d + 0x44, 0x89, 0xfb, //0x0000038b movl %r15d, %ebx + 0xe9, 0x0f, 0x08, 0x00, 0x00, //0x0000038e jmp LBB1_113 + //0x00000393 LBB1_20 + 0x48, 0x83, 0xca, 0x02, //0x00000393 orq $2, %rdx + 0xbf, 0x01, 0x00, 0x00, 0x00, //0x00000397 movl $1, %edi + 0x49, 0x39, 0xd2, //0x0000039c cmpq %rdx, %r10 + 0x0f, 0x87, 0x0e, 0x00, 0x00, 0x00, //0x0000039f ja LBB1_22 + 0x0f, 0x94, 0xc0, //0x000003a5 sete %al + 0x41, 0xc0, 0xe8, 0x02, //0x000003a8 shrb $2, %r8b + 0x41, 0x20, 0xc0, //0x000003ac andb %al, %r8b + 0x41, 0x0f, 0xb6, 0xf8, //0x000003af movzbl %r8b, %edi + //0x000003b3 LBB1_22 + 0x4c, 0x01, 0xdf, //0x000003b3 addq %r11, %rdi + 0x48, 0xbb, 0x80, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, //0x000003b6 movabsq $8589934464, %rbx + 0x48, 0x8d, 0x83, 0x7f, 0xe4, 0x0b, 0x54, //0x000003c0 leaq $1410065535(%rbx), %rax + 0x48, 0x39, 0xc7, //0x000003c7 cmpq %rax, %rdi + 0x0f, 0x86, 0xe2, 0xfe, 0xff, 0xff, //0x000003ca jbe LBB1_8 + //0x000003d0 LBB1_23 + 0x48, 0x89, 0xf8, //0x000003d0 movq %rdi, %rax + 0x48, 0xc1, 0xe8, 0x0b, //0x000003d3 shrq $11, %rax + 0xba, 0x0b, 0x00, 0x00, 0x00, //0x000003d7 movl $11, %edx + 0x48, 0x3d, 0xdd, 0x0e, 0xe9, 0x02, //0x000003dc cmpq $48828125, %rax + 0x0f, 0x82, 0x75, 0x00, 0x00, 0x00, //0x000003e2 jb LBB1_30 + 0x48, 0x89, 0xf8, //0x000003e8 movq %rdi, %rax + 0x48, 0xc1, 0xe8, 0x0c, //0x000003eb shrq $12, %rax + 0xba, 0x0c, 0x00, 0x00, 0x00, //0x000003ef movl $12, %edx + 0x48, 0x3d, 0x51, 0x4a, 0x8d, 0x0e, //0x000003f4 cmpq $244140625, %rax + 0x0f, 0x82, 0x5d, 0x00, 0x00, 0x00, //0x000003fa jb LBB1_30 + 0x48, 0x89, 0xf8, //0x00000400 movq %rdi, %rax + 0x48, 0xc1, 0xe8, 0x0d, //0x00000403 shrq $13, %rax + 0xba, 0x0d, 0x00, 0x00, 0x00, //0x00000407 movl $13, %edx + 0x48, 0x3d, 0x95, 0x73, 0xc2, 0x48, //0x0000040c cmpq $1220703125, %rax + 0x0f, 0x82, 0x45, 0x00, 0x00, 0x00, //0x00000412 jb LBB1_30 + 0xba, 0x0e, 0x00, 0x00, 0x00, //0x00000418 movl $14, %edx + 0x48, 0xb8, 0x00, 0x40, 0x7a, 0x10, 0xf3, 0x5a, 0x00, 0x00, //0x0000041d movabsq $100000000000000, %rax + 0x48, 0x39, 0xc7, //0x00000427 cmpq %rax, %rdi + 0x0f, 0x82, 0x2d, 0x00, 0x00, 0x00, //0x0000042a jb LBB1_30 + 0xba, 0x0f, 0x00, 0x00, 0x00, //0x00000430 movl $15, %edx + 0x48, 0xb8, 0x00, 0x80, 0xc6, 0xa4, 0x7e, 0x8d, 0x03, 0x00, //0x00000435 movabsq $1000000000000000, %rax + 0x48, 0x39, 0xc7, //0x0000043f cmpq %rax, %rdi + 0x0f, 0x82, 0x15, 0x00, 0x00, 0x00, //0x00000442 jb LBB1_30 + 0x48, 0xb8, 0x00, 0x00, 0xc1, 0x6f, 0xf2, 0x86, 0x23, 0x00, //0x00000448 movabsq $10000000000000000, %rax + 0x48, 0x39, 0xc7, //0x00000452 cmpq %rax, %rdi + 0xba, 0x11, 0x00, 0x00, 0x00, //0x00000455 movl $17, %edx + //0x0000045a LBB1_29 + 0x83, 0xda, 0x00, //0x0000045a sbbl $0, %edx + //0x0000045d LBB1_30 + 0x46, 0x8d, 0x2c, 0x0a, //0x0000045d leal (%rdx,%r9), %r13d + 0x42, 0x8d, 0x44, 0x0a, 0x05, //0x00000461 leal $5(%rdx,%r9), %eax + 0x83, 0xf8, 0x1b, //0x00000466 cmpl $27, %eax + 0x0f, 0x82, 0x95, 0x00, 0x00, 0x00, //0x00000469 jb LBB1_38 + 0x4d, 0x8d, 0x67, 0x01, //0x0000046f leaq $1(%r15), %r12 + 0x4c, 0x89, 0xe6, //0x00000473 movq %r12, %rsi + 0xe8, 0x95, 0x85, 0x00, 0x00, //0x00000476 callq _format_significand + 0x48, 0x89, 0xc3, //0x0000047b movq %rax, %rbx + 0x90, 0x90, //0x0000047e .p2align 4, 0x90 + //0x00000480 LBB1_32 + 0x80, 0x7b, 0xff, 0x30, //0x00000480 cmpb $48, $-1(%rbx) + 0x48, 0x8d, 0x5b, 0xff, //0x00000484 leaq $-1(%rbx), %rbx + 0x0f, 0x84, 0xf2, 0xff, 0xff, 0xff, //0x00000488 je LBB1_32 + 0x41, 0x8a, 0x47, 0x01, //0x0000048e movb $1(%r15), %al + 0x41, 0x88, 0x07, //0x00000492 movb %al, (%r15) + 0x48, 0x8d, 0x43, 0x01, //0x00000495 leaq $1(%rbx), %rax + 0x48, 0x89, 0xc1, //0x00000499 movq %rax, %rcx + 0x4c, 0x29, 0xe1, //0x0000049c subq %r12, %rcx + 0x48, 0x83, 0xf9, 0x02, //0x0000049f cmpq $2, %rcx + 0x0f, 0x8c, 0x08, 0x00, 0x00, 0x00, //0x000004a3 jl LBB1_35 + 0x41, 0xc6, 0x04, 0x24, 0x2e, //0x000004a9 movb $46, (%r12) + 0x48, 0x89, 0xc3, //0x000004ae movq %rax, %rbx + //0x000004b1 LBB1_35 + 0xc6, 0x03, 0x65, //0x000004b1 movb $101, (%rbx) + 0x45, 0x85, 0xed, //0x000004b4 testl %r13d, %r13d + 0x0f, 0x8e, 0x5a, 0x01, 0x00, 0x00, //0x000004b7 jle LBB1_51 + 0x41, 0xff, 0xcd, //0x000004bd decl %r13d + 0xc6, 0x43, 0x01, 0x2b, //0x000004c0 movb $43, $1(%rbx) + 0x44, 0x89, 0xe8, //0x000004c4 movl %r13d, %eax + 0x83, 0xf8, 0x64, //0x000004c7 cmpl $100, %eax + 0x0f, 0x8c, 0x5c, 0x01, 0x00, 0x00, //0x000004ca jl LBB1_52 + //0x000004d0 LBB1_37 + 0x89, 0xc1, //0x000004d0 movl %eax, %ecx + 0xba, 0xcd, 0xcc, 0xcc, 0xcc, //0x000004d2 movl $3435973837, %edx + 0x48, 0x0f, 0xaf, 0xd1, //0x000004d7 imulq %rcx, %rdx + 0x48, 0xc1, 0xea, 0x23, //0x000004db shrq $35, %rdx + 0x8d, 0x0c, 0x12, //0x000004df leal (%rdx,%rdx), %ecx + 0x8d, 0x0c, 0x89, //0x000004e2 leal (%rcx,%rcx,4), %ecx + 0x29, 0xc8, //0x000004e5 subl %ecx, %eax + 0x48, 0x8d, 0x0d, 0x02, 0xba, 0x00, 0x00, //0x000004e7 leaq $47618(%rip), %rcx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x0c, 0x51, //0x000004ee movzwl (%rcx,%rdx,2), %ecx + 0x66, 0x89, 0x4b, 0x02, //0x000004f2 movw %cx, $2(%rbx) + 0x0c, 0x30, //0x000004f6 orb $48, %al + 0x88, 0x43, 0x04, //0x000004f8 movb %al, $4(%rbx) + 0x48, 0x83, 0xc3, 0x05, //0x000004fb addq $5, %rbx + 0xe9, 0x9b, 0x06, 0x00, 0x00, //0x000004ff jmp LBB1_112 + //0x00000504 LBB1_38 + 0x45, 0x85, 0xc9, //0x00000504 testl %r9d, %r9d + 0x0f, 0x88, 0x42, 0x01, 0x00, 0x00, //0x00000507 js LBB1_54 + 0x4d, 0x63, 0xed, //0x0000050d movslq %r13d, %r13 + 0x4b, 0x8d, 0x1c, 0x2f, //0x00000510 leaq (%r15,%r13), %rbx + 0x4c, 0x89, 0xfe, //0x00000514 movq %r15, %rsi + 0xe8, 0xc4, 0x06, 0x00, 0x00, //0x00000517 callq _format_integer + 0x48, 0x39, 0xd8, //0x0000051c cmpq %rbx, %rax + 0x0f, 0x83, 0x7a, 0x06, 0x00, 0x00, //0x0000051f jae LBB1_112 + 0x4d, 0x01, 0xec, //0x00000525 addq %r13, %r12 + 0x49, 0x29, 0xc4, //0x00000528 subq %rax, %r12 + 0x4d, 0x01, 0xf4, //0x0000052b addq %r14, %r12 + 0x49, 0x81, 0xfc, 0x80, 0x00, 0x00, 0x00, //0x0000052e cmpq $128, %r12 + 0x0f, 0x82, 0x15, 0x03, 0x00, 0x00, //0x00000535 jb LBB1_76 + 0x4c, 0x89, 0xe1, //0x0000053b movq %r12, %rcx + 0x48, 0x83, 0xe1, 0x80, //0x0000053e andq $-128, %rcx + 0x48, 0x8d, 0x79, 0x80, //0x00000542 leaq $-128(%rcx), %rdi + 0x48, 0x89, 0xfe, //0x00000546 movq %rdi, %rsi + 0x48, 0xc1, 0xee, 0x07, //0x00000549 shrq $7, %rsi + 0x48, 0xff, 0xc6, //0x0000054d incq %rsi + 0x89, 0xf2, //0x00000550 movl %esi, %edx + 0x83, 0xe2, 0x03, //0x00000552 andl $3, %edx + 0x48, 0x81, 0xff, 0x80, 0x01, 0x00, 0x00, //0x00000555 cmpq $384, %rdi + 0x0f, 0x83, 0xf8, 0x01, 0x00, 0x00, //0x0000055c jae LBB1_69 + 0x31, 0xff, //0x00000562 xorl %edi, %edi + 0xe9, 0x9b, 0x02, 0x00, 0x00, //0x00000564 jmp LBB1_71 + //0x00000569 LBB1_43 + 0x48, 0xd3, 0xef, //0x00000569 shrq %cl, %rdi + 0x48, 0xb8, 0x80, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, //0x0000056c movabsq $8589934464, %rax + 0x48, 0x05, 0x7f, 0xe4, 0x0b, 0x54, //0x00000576 addq $1410065535, %rax + 0x48, 0x39, 0xc7, //0x0000057c cmpq %rax, %rdi + 0x0f, 0x86, 0x3b, 0x01, 0x00, 0x00, //0x0000057f jbe LBB1_60 + 0x48, 0x89, 0xf8, //0x00000585 movq %rdi, %rax + 0x48, 0xc1, 0xe8, 0x0b, //0x00000588 shrq $11, %rax + 0xba, 0x0b, 0x00, 0x00, 0x00, //0x0000058c movl $11, %edx + 0x48, 0x3d, 0xdd, 0x0e, 0xe9, 0x02, //0x00000591 cmpq $48828125, %rax + 0x0f, 0x82, 0xad, 0x01, 0x00, 0x00, //0x00000597 jb LBB1_68 + 0x48, 0x89, 0xf8, //0x0000059d movq %rdi, %rax + 0x48, 0xc1, 0xe8, 0x0c, //0x000005a0 shrq $12, %rax + 0xba, 0x0c, 0x00, 0x00, 0x00, //0x000005a4 movl $12, %edx + 0x48, 0x3d, 0x51, 0x4a, 0x8d, 0x0e, //0x000005a9 cmpq $244140625, %rax + 0x0f, 0x82, 0x95, 0x01, 0x00, 0x00, //0x000005af jb LBB1_68 + 0x48, 0x89, 0xf8, //0x000005b5 movq %rdi, %rax + 0x48, 0xc1, 0xe8, 0x0d, //0x000005b8 shrq $13, %rax + 0xba, 0x0d, 0x00, 0x00, 0x00, //0x000005bc movl $13, %edx + 0x48, 0x3d, 0x95, 0x73, 0xc2, 0x48, //0x000005c1 cmpq $1220703125, %rax + 0x0f, 0x82, 0x7d, 0x01, 0x00, 0x00, //0x000005c7 jb LBB1_68 + 0xba, 0x0e, 0x00, 0x00, 0x00, //0x000005cd movl $14, %edx + 0x48, 0xb8, 0x00, 0x40, 0x7a, 0x10, 0xf3, 0x5a, 0x00, 0x00, //0x000005d2 movabsq $100000000000000, %rax + 0x48, 0x39, 0xc7, //0x000005dc cmpq %rax, %rdi + 0x0f, 0x82, 0x65, 0x01, 0x00, 0x00, //0x000005df jb LBB1_68 + 0xba, 0x0f, 0x00, 0x00, 0x00, //0x000005e5 movl $15, %edx + 0x48, 0xb8, 0x00, 0x80, 0xc6, 0xa4, 0x7e, 0x8d, 0x03, 0x00, //0x000005ea movabsq $1000000000000000, %rax + 0x48, 0x39, 0xc7, //0x000005f4 cmpq %rax, %rdi + 0x0f, 0x82, 0x4d, 0x01, 0x00, 0x00, //0x000005f7 jb LBB1_68 + 0x48, 0xb8, 0x00, 0x00, 0xc1, 0x6f, 0xf2, 0x86, 0x23, 0x00, //0x000005fd movabsq $10000000000000000, %rax + 0x48, 0x39, 0xc7, //0x00000607 cmpq %rax, %rdi + 0xba, 0x11, 0x00, 0x00, 0x00, //0x0000060a movl $17, %edx + //0x0000060f LBB1_50 + 0x83, 0xda, 0x00, //0x0000060f sbbl $0, %edx + 0xe9, 0x33, 0x01, 0x00, 0x00, //0x00000612 jmp LBB1_68 + //0x00000617 LBB1_51 + 0xc6, 0x43, 0x01, 0x2d, //0x00000617 movb $45, $1(%rbx) + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x0000061b movl $1, %eax + 0x44, 0x29, 0xe8, //0x00000620 subl %r13d, %eax + 0x83, 0xf8, 0x64, //0x00000623 cmpl $100, %eax + 0x0f, 0x8d, 0xa4, 0xfe, 0xff, 0xff, //0x00000626 jge LBB1_37 + //0x0000062c LBB1_52 + 0x83, 0xf8, 0x0a, //0x0000062c cmpl $10, %eax + 0x0f, 0x8c, 0x7d, 0x00, 0x00, 0x00, //0x0000062f jl LBB1_59 + 0x48, 0x98, //0x00000635 cltq + 0x48, 0x8d, 0x0d, 0xb2, 0xb8, 0x00, 0x00, //0x00000637 leaq $47282(%rip), %rcx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x04, 0x41, //0x0000063e movzwl (%rcx,%rax,2), %eax + 0x66, 0x89, 0x43, 0x02, //0x00000642 movw %ax, $2(%rbx) + 0x48, 0x83, 0xc3, 0x04, //0x00000646 addq $4, %rbx + 0xe9, 0x50, 0x05, 0x00, 0x00, //0x0000064a jmp LBB1_112 + //0x0000064f LBB1_54 + 0x45, 0x85, 0xed, //0x0000064f testl %r13d, %r13d + 0x0f, 0x8f, 0x19, 0x03, 0x00, 0x00, //0x00000652 jg LBB1_85 + 0x66, 0x41, 0xc7, 0x07, 0x30, 0x2e, //0x00000658 movw $11824, (%r15) + 0x49, 0x83, 0xc7, 0x02, //0x0000065e addq $2, %r15 + 0x45, 0x85, 0xed, //0x00000662 testl %r13d, %r13d + 0x0f, 0x89, 0x06, 0x03, 0x00, 0x00, //0x00000665 jns LBB1_85 + 0x31, 0xc0, //0x0000066b xorl %eax, %eax + 0x41, 0x83, 0xfd, 0x80, //0x0000066d cmpl $-128, %r13d + 0x0f, 0x87, 0xe1, 0x02, 0x00, 0x00, //0x00000671 ja LBB1_83 + 0x45, 0x89, 0xe8, //0x00000677 movl %r13d, %r8d + 0x41, 0xf7, 0xd0, //0x0000067a notl %r8d + 0x49, 0xff, 0xc0, //0x0000067d incq %r8 + 0x4c, 0x89, 0xc0, //0x00000680 movq %r8, %rax + 0x49, 0x89, 0xda, //0x00000683 movq %rbx, %r10 + 0x48, 0x21, 0xd8, //0x00000686 andq %rbx, %rax + 0x48, 0x8d, 0x48, 0x80, //0x00000689 leaq $-128(%rax), %rcx + 0x48, 0x89, 0xcb, //0x0000068d movq %rcx, %rbx + 0x48, 0xc1, 0xeb, 0x07, //0x00000690 shrq $7, %rbx + 0x48, 0xff, 0xc3, //0x00000694 incq %rbx + 0x41, 0x89, 0xd9, //0x00000697 movl %ebx, %r9d + 0x41, 0x83, 0xe1, 0x03, //0x0000069a andl $3, %r9d + 0x48, 0x81, 0xf9, 0x80, 0x01, 0x00, 0x00, //0x0000069e cmpq $384, %rcx + 0x0f, 0x83, 0xb9, 0x01, 0x00, 0x00, //0x000006a5 jae LBB1_77 + 0x31, 0xdb, //0x000006ab xorl %ebx, %ebx + 0xe9, 0x5b, 0x02, 0x00, 0x00, //0x000006ad jmp LBB1_79 + //0x000006b2 LBB1_59 + 0x04, 0x30, //0x000006b2 addb $48, %al + 0x88, 0x43, 0x02, //0x000006b4 movb %al, $2(%rbx) + 0x48, 0x83, 0xc3, 0x03, //0x000006b7 addq $3, %rbx + 0xe9, 0xdf, 0x04, 0x00, 0x00, //0x000006bb jmp LBB1_112 + //0x000006c0 LBB1_60 + 0xba, 0x01, 0x00, 0x00, 0x00, //0x000006c0 movl $1, %edx + 0x48, 0x83, 0xff, 0x0a, //0x000006c5 cmpq $10, %rdi + 0x0f, 0x82, 0x7b, 0x00, 0x00, 0x00, //0x000006c9 jb LBB1_68 + 0xba, 0x02, 0x00, 0x00, 0x00, //0x000006cf movl $2, %edx + 0x48, 0x83, 0xff, 0x64, //0x000006d4 cmpq $100, %rdi + 0x0f, 0x82, 0x6c, 0x00, 0x00, 0x00, //0x000006d8 jb LBB1_68 + 0xba, 0x03, 0x00, 0x00, 0x00, //0x000006de movl $3, %edx + 0x48, 0x81, 0xff, 0xe8, 0x03, 0x00, 0x00, //0x000006e3 cmpq $1000, %rdi + 0x0f, 0x82, 0x5a, 0x00, 0x00, 0x00, //0x000006ea jb LBB1_68 + 0xba, 0x04, 0x00, 0x00, 0x00, //0x000006f0 movl $4, %edx + 0x48, 0x81, 0xff, 0x10, 0x27, 0x00, 0x00, //0x000006f5 cmpq $10000, %rdi + 0x0f, 0x82, 0x48, 0x00, 0x00, 0x00, //0x000006fc jb LBB1_68 + 0xba, 0x05, 0x00, 0x00, 0x00, //0x00000702 movl $5, %edx + 0x48, 0x81, 0xff, 0xa0, 0x86, 0x01, 0x00, //0x00000707 cmpq $100000, %rdi + 0x0f, 0x82, 0x36, 0x00, 0x00, 0x00, //0x0000070e jb LBB1_68 + 0xba, 0x06, 0x00, 0x00, 0x00, //0x00000714 movl $6, %edx + 0x48, 0x81, 0xff, 0x40, 0x42, 0x0f, 0x00, //0x00000719 cmpq $1000000, %rdi + 0x0f, 0x82, 0x24, 0x00, 0x00, 0x00, //0x00000720 jb LBB1_68 + 0xba, 0x07, 0x00, 0x00, 0x00, //0x00000726 movl $7, %edx + 0x48, 0x81, 0xff, 0x80, 0x96, 0x98, 0x00, //0x0000072b cmpq $10000000, %rdi + 0x0f, 0x82, 0x12, 0x00, 0x00, 0x00, //0x00000732 jb LBB1_68 + 0xba, 0x08, 0x00, 0x00, 0x00, //0x00000738 movl $8, %edx + 0x48, 0x81, 0xff, 0x00, 0xe1, 0xf5, 0x05, //0x0000073d cmpq $100000000, %rdi + 0x0f, 0x83, 0x80, 0x04, 0x00, 0x00, //0x00000744 jae LBB1_116 + //0x0000074a LBB1_68 + 0x4c, 0x89, 0xfe, //0x0000074a movq %r15, %rsi + 0xe8, 0x8e, 0x04, 0x00, 0x00, //0x0000074d callq _format_integer + 0x48, 0x89, 0xc3, //0x00000752 movq %rax, %rbx + 0xe9, 0x45, 0x04, 0x00, 0x00, //0x00000755 jmp LBB1_112 + //0x0000075a LBB1_69 + 0x48, 0x29, 0xd6, //0x0000075a subq %rdx, %rsi + 0x31, 0xff, //0x0000075d xorl %edi, %edi + 0xc5, 0xfd, 0x6f, 0x05, 0x39, 0xf9, 0xff, 0xff, //0x0000075f vmovdqa $-1735(%rip), %ymm0 /* LCPI1_0+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000767 .p2align 4, 0x90 + //0x00000770 LBB1_70 + 0xc5, 0xfe, 0x7f, 0x04, 0x38, //0x00000770 vmovdqu %ymm0, (%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x44, 0x38, 0x20, //0x00000775 vmovdqu %ymm0, $32(%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x44, 0x38, 0x40, //0x0000077b vmovdqu %ymm0, $64(%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x44, 0x38, 0x60, //0x00000781 vmovdqu %ymm0, $96(%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0x80, 0x00, 0x00, 0x00, //0x00000787 vmovdqu %ymm0, $128(%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0xa0, 0x00, 0x00, 0x00, //0x00000790 vmovdqu %ymm0, $160(%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0xc0, 0x00, 0x00, 0x00, //0x00000799 vmovdqu %ymm0, $192(%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0xe0, 0x00, 0x00, 0x00, //0x000007a2 vmovdqu %ymm0, $224(%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0x00, 0x01, 0x00, 0x00, //0x000007ab vmovdqu %ymm0, $256(%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0x20, 0x01, 0x00, 0x00, //0x000007b4 vmovdqu %ymm0, $288(%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0x40, 0x01, 0x00, 0x00, //0x000007bd vmovdqu %ymm0, $320(%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0x60, 0x01, 0x00, 0x00, //0x000007c6 vmovdqu %ymm0, $352(%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0x80, 0x01, 0x00, 0x00, //0x000007cf vmovdqu %ymm0, $384(%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0xa0, 0x01, 0x00, 0x00, //0x000007d8 vmovdqu %ymm0, $416(%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0xc0, 0x01, 0x00, 0x00, //0x000007e1 vmovdqu %ymm0, $448(%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0xe0, 0x01, 0x00, 0x00, //0x000007ea vmovdqu %ymm0, $480(%rax,%rdi) + 0x48, 0x81, 0xc7, 0x00, 0x02, 0x00, 0x00, //0x000007f3 addq $512, %rdi + 0x48, 0x83, 0xc6, 0xfc, //0x000007fa addq $-4, %rsi + 0x0f, 0x85, 0x6c, 0xff, 0xff, 0xff, //0x000007fe jne LBB1_70 + //0x00000804 LBB1_71 + 0x48, 0x85, 0xd2, //0x00000804 testq %rdx, %rdx + 0x0f, 0x84, 0x33, 0x00, 0x00, 0x00, //0x00000807 je LBB1_74 + 0x48, 0x8d, 0x74, 0x07, 0x60, //0x0000080d leaq $96(%rdi,%rax), %rsi + 0x48, 0xf7, 0xda, //0x00000812 negq %rdx + 0xc5, 0xfd, 0x6f, 0x05, 0x83, 0xf8, 0xff, 0xff, //0x00000815 vmovdqa $-1917(%rip), %ymm0 /* LCPI1_0+0(%rip) */ + 0x90, 0x90, 0x90, //0x0000081d .p2align 4, 0x90 + //0x00000820 LBB1_73 + 0xc5, 0xfe, 0x7f, 0x46, 0xa0, //0x00000820 vmovdqu %ymm0, $-96(%rsi) + 0xc5, 0xfe, 0x7f, 0x46, 0xc0, //0x00000825 vmovdqu %ymm0, $-64(%rsi) + 0xc5, 0xfe, 0x7f, 0x46, 0xe0, //0x0000082a vmovdqu %ymm0, $-32(%rsi) + 0xc5, 0xfe, 0x7f, 0x06, //0x0000082f vmovdqu %ymm0, (%rsi) + 0x48, 0x83, 0xee, 0x80, //0x00000833 subq $-128, %rsi + 0x48, 0xff, 0xc2, //0x00000837 incq %rdx + 0x0f, 0x85, 0xe0, 0xff, 0xff, 0xff, //0x0000083a jne LBB1_73 + //0x00000840 LBB1_74 + 0x4c, 0x39, 0xe1, //0x00000840 cmpq %r12, %rcx + 0x0f, 0x84, 0x56, 0x03, 0x00, 0x00, //0x00000843 je LBB1_112 + 0x48, 0x01, 0xc8, //0x00000849 addq %rcx, %rax + 0x90, 0x90, 0x90, 0x90, //0x0000084c .p2align 4, 0x90 + //0x00000850 LBB1_76 + 0xc6, 0x00, 0x30, //0x00000850 movb $48, (%rax) + 0x48, 0xff, 0xc0, //0x00000853 incq %rax + 0x48, 0x39, 0xc3, //0x00000856 cmpq %rax, %rbx + 0x0f, 0x85, 0xf1, 0xff, 0xff, 0xff, //0x00000859 jne LBB1_76 + 0xe9, 0x3b, 0x03, 0x00, 0x00, //0x0000085f jmp LBB1_112 + //0x00000864 LBB1_77 + 0x4b, 0x8d, 0x8c, 0x34, 0xe2, 0x01, 0x00, 0x00, //0x00000864 leaq $482(%r12,%r14), %rcx + 0x4c, 0x89, 0xce, //0x0000086c movq %r9, %rsi + 0x48, 0x29, 0xde, //0x0000086f subq %rbx, %rsi + 0x31, 0xdb, //0x00000872 xorl %ebx, %ebx + 0xc5, 0xfd, 0x6f, 0x05, 0x24, 0xf8, 0xff, 0xff, //0x00000874 vmovdqa $-2012(%rip), %ymm0 /* LCPI1_0+0(%rip) */ + //0x0000087c LBB1_78 + 0xc5, 0xfe, 0x7f, 0x84, 0x19, 0x20, 0xfe, 0xff, 0xff, //0x0000087c vmovdqu %ymm0, $-480(%rcx,%rbx) + 0xc5, 0xfe, 0x7f, 0x84, 0x19, 0x40, 0xfe, 0xff, 0xff, //0x00000885 vmovdqu %ymm0, $-448(%rcx,%rbx) + 0xc5, 0xfe, 0x7f, 0x84, 0x19, 0x60, 0xfe, 0xff, 0xff, //0x0000088e vmovdqu %ymm0, $-416(%rcx,%rbx) + 0xc5, 0xfe, 0x7f, 0x84, 0x19, 0x80, 0xfe, 0xff, 0xff, //0x00000897 vmovdqu %ymm0, $-384(%rcx,%rbx) + 0xc5, 0xfe, 0x7f, 0x84, 0x19, 0xa0, 0xfe, 0xff, 0xff, //0x000008a0 vmovdqu %ymm0, $-352(%rcx,%rbx) + 0xc5, 0xfe, 0x7f, 0x84, 0x19, 0xc0, 0xfe, 0xff, 0xff, //0x000008a9 vmovdqu %ymm0, $-320(%rcx,%rbx) + 0xc5, 0xfe, 0x7f, 0x84, 0x19, 0xe0, 0xfe, 0xff, 0xff, //0x000008b2 vmovdqu %ymm0, $-288(%rcx,%rbx) + 0xc5, 0xfe, 0x7f, 0x84, 0x19, 0x00, 0xff, 0xff, 0xff, //0x000008bb vmovdqu %ymm0, $-256(%rcx,%rbx) + 0xc5, 0xfe, 0x7f, 0x84, 0x19, 0x20, 0xff, 0xff, 0xff, //0x000008c4 vmovdqu %ymm0, $-224(%rcx,%rbx) + 0xc5, 0xfe, 0x7f, 0x84, 0x19, 0x40, 0xff, 0xff, 0xff, //0x000008cd vmovdqu %ymm0, $-192(%rcx,%rbx) + 0xc5, 0xfe, 0x7f, 0x84, 0x19, 0x60, 0xff, 0xff, 0xff, //0x000008d6 vmovdqu %ymm0, $-160(%rcx,%rbx) + 0xc5, 0xfe, 0x7f, 0x44, 0x19, 0x80, //0x000008df vmovdqu %ymm0, $-128(%rcx,%rbx) + 0xc5, 0xfe, 0x7f, 0x44, 0x19, 0xa0, //0x000008e5 vmovdqu %ymm0, $-96(%rcx,%rbx) + 0xc5, 0xfe, 0x7f, 0x44, 0x19, 0xc0, //0x000008eb vmovdqu %ymm0, $-64(%rcx,%rbx) + 0xc5, 0xfe, 0x7f, 0x44, 0x19, 0xe0, //0x000008f1 vmovdqu %ymm0, $-32(%rcx,%rbx) + 0xc5, 0xfe, 0x7f, 0x04, 0x19, //0x000008f7 vmovdqu %ymm0, (%rcx,%rbx) + 0x48, 0x81, 0xc3, 0x00, 0x02, 0x00, 0x00, //0x000008fc addq $512, %rbx + 0x48, 0x83, 0xc6, 0x04, //0x00000903 addq $4, %rsi + 0x0f, 0x85, 0x6f, 0xff, 0xff, 0xff, //0x00000907 jne LBB1_78 + //0x0000090d LBB1_79 + 0x4d, 0x85, 0xc9, //0x0000090d testq %r9, %r9 + 0x0f, 0x84, 0x33, 0x00, 0x00, 0x00, //0x00000910 je LBB1_82 + 0x4c, 0x01, 0xe3, //0x00000916 addq %r12, %rbx + 0x49, 0x8d, 0x4c, 0x1e, 0x62, //0x00000919 leaq $98(%r14,%rbx), %rcx + 0x49, 0xf7, 0xd9, //0x0000091e negq %r9 + 0xc5, 0xfd, 0x6f, 0x05, 0x77, 0xf7, 0xff, 0xff, //0x00000921 vmovdqa $-2185(%rip), %ymm0 /* LCPI1_0+0(%rip) */ + //0x00000929 LBB1_81 + 0xc5, 0xfe, 0x7f, 0x41, 0xa0, //0x00000929 vmovdqu %ymm0, $-96(%rcx) + 0xc5, 0xfe, 0x7f, 0x41, 0xc0, //0x0000092e vmovdqu %ymm0, $-64(%rcx) + 0xc5, 0xfe, 0x7f, 0x41, 0xe0, //0x00000933 vmovdqu %ymm0, $-32(%rcx) + 0xc5, 0xfe, 0x7f, 0x01, //0x00000938 vmovdqu %ymm0, (%rcx) + 0x48, 0x83, 0xe9, 0x80, //0x0000093c subq $-128, %rcx + 0x49, 0xff, 0xc1, //0x00000940 incq %r9 + 0x0f, 0x85, 0xe0, 0xff, 0xff, 0xff, //0x00000943 jne LBB1_81 + //0x00000949 LBB1_82 + 0x49, 0x01, 0xc7, //0x00000949 addq %rax, %r15 + 0x49, 0x39, 0xc0, //0x0000094c cmpq %rax, %r8 + 0x4c, 0x89, 0xd3, //0x0000094f movq %r10, %rbx + 0x0f, 0x84, 0x19, 0x00, 0x00, 0x00, //0x00000952 je LBB1_85 + //0x00000958 LBB1_83 + 0x44, 0x89, 0xe9, //0x00000958 movl %r13d, %ecx + 0xf7, 0xd9, //0x0000095b negl %ecx + 0x90, 0x90, 0x90, //0x0000095d .p2align 4, 0x90 + //0x00000960 LBB1_84 + 0x41, 0xc6, 0x07, 0x30, //0x00000960 movb $48, (%r15) + 0x49, 0xff, 0xc7, //0x00000964 incq %r15 + 0xff, 0xc0, //0x00000967 incl %eax + 0x39, 0xc8, //0x00000969 cmpl %ecx, %eax + 0x0f, 0x8c, 0xef, 0xff, 0xff, 0xff, //0x0000096b jl LBB1_84 + //0x00000971 LBB1_85 + 0x4c, 0x89, 0xfe, //0x00000971 movq %r15, %rsi + 0xc5, 0xf8, 0x77, //0x00000974 vzeroupper + 0xe8, 0x94, 0x80, 0x00, 0x00, //0x00000977 callq _format_significand + 0x90, 0x90, 0x90, 0x90, //0x0000097c .p2align 4, 0x90 + //0x00000980 LBB1_86 + 0x80, 0x78, 0xff, 0x30, //0x00000980 cmpb $48, $-1(%rax) + 0x48, 0x8d, 0x40, 0xff, //0x00000984 leaq $-1(%rax), %rax + 0x0f, 0x84, 0xf2, 0xff, 0xff, 0xff, //0x00000988 je LBB1_86 + 0x48, 0x8d, 0x48, 0x01, //0x0000098e leaq $1(%rax), %rcx + 0x45, 0x85, 0xed, //0x00000992 testl %r13d, %r13d + 0x0f, 0x8e, 0x83, 0x00, 0x00, 0x00, //0x00000995 jle LBB1_91 + 0x89, 0xca, //0x0000099b movl %ecx, %edx + 0x44, 0x29, 0xfa, //0x0000099d subl %r15d, %edx + 0x41, 0x39, 0xd5, //0x000009a0 cmpl %edx, %r13d + 0x0f, 0x8d, 0x21, 0x00, 0x00, 0x00, //0x000009a3 jge LBB1_92 + 0x43, 0x8d, 0x54, 0x3d, 0x00, //0x000009a9 leal (%r13,%r15), %edx + 0x29, 0xd1, //0x000009ae subl %edx, %ecx + 0x48, 0x8d, 0x71, 0xff, //0x000009b0 leaq $-1(%rcx), %rsi + 0x89, 0xca, //0x000009b4 movl %ecx, %edx + 0x83, 0xe2, 0x03, //0x000009b6 andl $3, %edx + 0x48, 0x83, 0xfe, 0x03, //0x000009b9 cmpq $3, %rsi + 0x0f, 0x83, 0x63, 0x00, 0x00, 0x00, //0x000009bd jae LBB1_96 + 0x31, 0xc9, //0x000009c3 xorl %ecx, %ecx + 0xe9, 0x7e, 0x00, 0x00, 0x00, //0x000009c5 jmp LBB1_99 + //0x000009ca LBB1_92 + 0x0f, 0x8e, 0x4e, 0x00, 0x00, 0x00, //0x000009ca jle LBB1_91 + 0x48, 0x89, 0xde, //0x000009d0 movq %rbx, %rsi + 0x45, 0x01, 0xfd, //0x000009d3 addl %r15d, %r13d + 0x41, 0x89, 0xc8, //0x000009d6 movl %ecx, %r8d + 0x41, 0xf7, 0xd0, //0x000009d9 notl %r8d + 0x45, 0x01, 0xe8, //0x000009dc addl %r13d, %r8d + 0x31, 0xd2, //0x000009df xorl %edx, %edx + 0x48, 0x89, 0xcb, //0x000009e1 movq %rcx, %rbx + 0x41, 0x83, 0xf8, 0x7e, //0x000009e4 cmpl $126, %r8d + 0x0f, 0x86, 0x8f, 0x01, 0x00, 0x00, //0x000009e8 jbe LBB1_110 + 0x49, 0xff, 0xc0, //0x000009ee incq %r8 + 0x48, 0x89, 0xf3, //0x000009f1 movq %rsi, %rbx + 0x4c, 0x21, 0xc3, //0x000009f4 andq %r8, %rbx + 0x48, 0x8d, 0x73, 0x80, //0x000009f7 leaq $-128(%rbx), %rsi + 0x48, 0x89, 0xf7, //0x000009fb movq %rsi, %rdi + 0x48, 0xc1, 0xef, 0x07, //0x000009fe shrq $7, %rdi + 0x48, 0xff, 0xc7, //0x00000a02 incq %rdi + 0x89, 0xfa, //0x00000a05 movl %edi, %edx + 0x83, 0xe2, 0x03, //0x00000a07 andl $3, %edx + 0x48, 0x81, 0xfe, 0x80, 0x01, 0x00, 0x00, //0x00000a0a cmpq $384, %rsi + 0x0f, 0x83, 0x75, 0x00, 0x00, 0x00, //0x00000a11 jae LBB1_104 + 0x31, 0xff, //0x00000a17 xorl %edi, %edi + 0xe9, 0x13, 0x01, 0x00, 0x00, //0x00000a19 jmp LBB1_106 + //0x00000a1e LBB1_91 + 0x48, 0x89, 0xcb, //0x00000a1e movq %rcx, %rbx + 0xe9, 0x79, 0x01, 0x00, 0x00, //0x00000a21 jmp LBB1_112 + //0x00000a26 LBB1_96 + 0x48, 0x89, 0xd6, //0x00000a26 movq %rdx, %rsi + 0x48, 0x29, 0xce, //0x00000a29 subq %rcx, %rsi + 0x31, 0xc9, //0x00000a2c xorl %ecx, %ecx + 0x90, 0x90, //0x00000a2e .p2align 4, 0x90 + //0x00000a30 LBB1_97 + 0x8b, 0x7c, 0x08, 0xfd, //0x00000a30 movl $-3(%rax,%rcx), %edi + 0x89, 0x7c, 0x08, 0xfe, //0x00000a34 movl %edi, $-2(%rax,%rcx) + 0x48, 0x83, 0xc1, 0xfc, //0x00000a38 addq $-4, %rcx + 0x48, 0x39, 0xce, //0x00000a3c cmpq %rcx, %rsi + 0x0f, 0x85, 0xeb, 0xff, 0xff, 0xff, //0x00000a3f jne LBB1_97 + 0x48, 0xf7, 0xd9, //0x00000a45 negq %rcx + //0x00000a48 LBB1_99 + 0x48, 0x85, 0xd2, //0x00000a48 testq %rdx, %rdx + 0x0f, 0x84, 0x27, 0x00, 0x00, 0x00, //0x00000a4b je LBB1_102 + 0x48, 0xf7, 0xd9, //0x00000a51 negq %rcx + 0x48, 0xf7, 0xda, //0x00000a54 negq %rdx + 0x31, 0xf6, //0x00000a57 xorl %esi, %esi + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000a59 .p2align 4, 0x90 + //0x00000a60 LBB1_101 + 0x48, 0x8d, 0x3c, 0x31, //0x00000a60 leaq (%rcx,%rsi), %rdi + 0x0f, 0xb6, 0x1c, 0x38, //0x00000a64 movzbl (%rax,%rdi), %ebx + 0x88, 0x5c, 0x38, 0x01, //0x00000a68 movb %bl, $1(%rax,%rdi) + 0x48, 0xff, 0xce, //0x00000a6c decq %rsi + 0x48, 0x39, 0xf2, //0x00000a6f cmpq %rsi, %rdx + 0x0f, 0x85, 0xe8, 0xff, 0xff, 0xff, //0x00000a72 jne LBB1_101 + //0x00000a78 LBB1_102 + 0x49, 0x63, 0xcd, //0x00000a78 movslq %r13d, %rcx + 0x41, 0xc6, 0x04, 0x0f, 0x2e, //0x00000a7b movb $46, (%r15,%rcx) + 0x48, 0x83, 0xc0, 0x02, //0x00000a80 addq $2, %rax + 0x48, 0x89, 0xc3, //0x00000a84 movq %rax, %rbx + 0xe9, 0x13, 0x01, 0x00, 0x00, //0x00000a87 jmp LBB1_112 + //0x00000a8c LBB1_104 + 0x48, 0x89, 0xd6, //0x00000a8c movq %rdx, %rsi + 0x48, 0x29, 0xfe, //0x00000a8f subq %rdi, %rsi + 0x31, 0xff, //0x00000a92 xorl %edi, %edi + 0xc5, 0xfd, 0x6f, 0x05, 0x04, 0xf6, 0xff, 0xff, //0x00000a94 vmovdqa $-2556(%rip), %ymm0 /* LCPI1_0+0(%rip) */ + //0x00000a9c LBB1_105 + 0xc5, 0xfe, 0x7f, 0x44, 0x38, 0x01, //0x00000a9c vmovdqu %ymm0, $1(%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x44, 0x38, 0x21, //0x00000aa2 vmovdqu %ymm0, $33(%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x44, 0x38, 0x41, //0x00000aa8 vmovdqu %ymm0, $65(%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x44, 0x38, 0x61, //0x00000aae vmovdqu %ymm0, $97(%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0x81, 0x00, 0x00, 0x00, //0x00000ab4 vmovdqu %ymm0, $129(%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0xa1, 0x00, 0x00, 0x00, //0x00000abd vmovdqu %ymm0, $161(%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0xc1, 0x00, 0x00, 0x00, //0x00000ac6 vmovdqu %ymm0, $193(%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0xe1, 0x00, 0x00, 0x00, //0x00000acf vmovdqu %ymm0, $225(%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0x01, 0x01, 0x00, 0x00, //0x00000ad8 vmovdqu %ymm0, $257(%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0x21, 0x01, 0x00, 0x00, //0x00000ae1 vmovdqu %ymm0, $289(%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0x41, 0x01, 0x00, 0x00, //0x00000aea vmovdqu %ymm0, $321(%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0x61, 0x01, 0x00, 0x00, //0x00000af3 vmovdqu %ymm0, $353(%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0x81, 0x01, 0x00, 0x00, //0x00000afc vmovdqu %ymm0, $385(%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0xa1, 0x01, 0x00, 0x00, //0x00000b05 vmovdqu %ymm0, $417(%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0xc1, 0x01, 0x00, 0x00, //0x00000b0e vmovdqu %ymm0, $449(%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0xe1, 0x01, 0x00, 0x00, //0x00000b17 vmovdqu %ymm0, $481(%rax,%rdi) + 0x48, 0x81, 0xc7, 0x00, 0x02, 0x00, 0x00, //0x00000b20 addq $512, %rdi + 0x48, 0x83, 0xc6, 0x04, //0x00000b27 addq $4, %rsi + 0x0f, 0x85, 0x6b, 0xff, 0xff, 0xff, //0x00000b2b jne LBB1_105 + //0x00000b31 LBB1_106 + 0x48, 0x89, 0xde, //0x00000b31 movq %rbx, %rsi + 0x48, 0x8d, 0x5c, 0x18, 0x01, //0x00000b34 leaq $1(%rax,%rbx), %rbx + 0x48, 0x85, 0xd2, //0x00000b39 testq %rdx, %rdx + 0x0f, 0x84, 0x30, 0x00, 0x00, 0x00, //0x00000b3c je LBB1_109 + 0x48, 0x8d, 0x44, 0x38, 0x61, //0x00000b42 leaq $97(%rax,%rdi), %rax + 0x48, 0xf7, 0xda, //0x00000b47 negq %rdx + 0xc5, 0xfd, 0x6f, 0x05, 0x4e, 0xf5, 0xff, 0xff, //0x00000b4a vmovdqa $-2738(%rip), %ymm0 /* LCPI1_0+0(%rip) */ + //0x00000b52 LBB1_108 + 0xc5, 0xfe, 0x7f, 0x40, 0xa0, //0x00000b52 vmovdqu %ymm0, $-96(%rax) + 0xc5, 0xfe, 0x7f, 0x40, 0xc0, //0x00000b57 vmovdqu %ymm0, $-64(%rax) + 0xc5, 0xfe, 0x7f, 0x40, 0xe0, //0x00000b5c vmovdqu %ymm0, $-32(%rax) + 0xc5, 0xfe, 0x7f, 0x00, //0x00000b61 vmovdqu %ymm0, (%rax) + 0x48, 0x83, 0xe8, 0x80, //0x00000b65 subq $-128, %rax + 0x48, 0xff, 0xc2, //0x00000b69 incq %rdx + 0x0f, 0x85, 0xe0, 0xff, 0xff, 0xff, //0x00000b6c jne LBB1_108 + //0x00000b72 LBB1_109 + 0x89, 0xf2, //0x00000b72 movl %esi, %edx + 0x49, 0x39, 0xf0, //0x00000b74 cmpq %rsi, %r8 + 0x0f, 0x84, 0x22, 0x00, 0x00, 0x00, //0x00000b77 je LBB1_112 + //0x00000b7d LBB1_110 + 0x41, 0x29, 0xd5, //0x00000b7d subl %edx, %r13d + 0x41, 0x29, 0xcd, //0x00000b80 subl %ecx, %r13d + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000b83 .p2align 4, 0x90 + //0x00000b90 LBB1_111 + 0xc6, 0x03, 0x30, //0x00000b90 movb $48, (%rbx) + 0x48, 0xff, 0xc3, //0x00000b93 incq %rbx + 0x41, 0xff, 0xcd, //0x00000b96 decl %r13d + 0x0f, 0x85, 0xf1, 0xff, 0xff, 0xff, //0x00000b99 jne LBB1_111 + //0x00000b9f LBB1_112 + 0x44, 0x29, 0xf3, //0x00000b9f subl %r14d, %ebx + //0x00000ba2 LBB1_113 + 0x89, 0xd8, //0x00000ba2 movl %ebx, %eax + 0x48, 0x83, 0xc4, 0x08, //0x00000ba4 addq $8, %rsp + 0x5b, //0x00000ba8 popq %rbx + 0x41, 0x5c, //0x00000ba9 popq %r12 + 0x41, 0x5d, //0x00000bab popq %r13 + 0x41, 0x5e, //0x00000bad popq %r14 + 0x41, 0x5f, //0x00000baf popq %r15 + 0x5d, //0x00000bb1 popq %rbp + 0xc5, 0xf8, 0x77, //0x00000bb2 vzeroupper + 0xc3, //0x00000bb5 retq + //0x00000bb6 LBB1_114 + 0x31, 0xdb, //0x00000bb6 xorl %ebx, %ebx + 0xe9, 0xe5, 0xff, 0xff, 0xff, //0x00000bb8 jmp LBB1_113 + //0x00000bbd LBB1_115 + 0xbb, 0xce, 0xfb, 0xff, 0xff, //0x00000bbd movl $-1074, %ebx + 0x48, 0x89, 0xd7, //0x00000bc2 movq %rdx, %rdi + 0xe9, 0x8f, 0xf5, 0xff, 0xff, //0x00000bc5 jmp LBB1_5 + //0x00000bca LBB1_116 + 0x48, 0x81, 0xff, 0x00, 0xca, 0x9a, 0x3b, //0x00000bca cmpq $1000000000, %rdi + 0xba, 0x0a, 0x00, 0x00, 0x00, //0x00000bd1 movl $10, %edx + 0xe9, 0x34, 0xfa, 0xff, 0xff, //0x00000bd6 jmp LBB1_50 + 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000bdb .p2align 4, 0x90 + //0x00000be0 _format_integer + 0x55, //0x00000be0 pushq %rbp + 0x48, 0x89, 0xe5, //0x00000be1 movq %rsp, %rbp + 0x53, //0x00000be4 pushq %rbx + 0x41, 0x89, 0xd0, //0x00000be5 movl %edx, %r8d + 0x49, 0x01, 0xf0, //0x00000be8 addq %rsi, %r8 + 0x48, 0x89, 0xf8, //0x00000beb movq %rdi, %rax + 0x48, 0xc1, 0xe8, 0x20, //0x00000bee shrq $32, %rax + 0x0f, 0x84, 0xc3, 0x00, 0x00, 0x00, //0x00000bf2 je LBB2_1 + 0x48, 0xb9, 0xfd, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x00000bf8 movabsq $-6067343680855748867, %rcx + 0x48, 0x89, 0xf8, //0x00000c02 movq %rdi, %rax + 0x48, 0xf7, 0xe1, //0x00000c05 mulq %rcx + 0x48, 0xc1, 0xea, 0x1a, //0x00000c08 shrq $26, %rdx + 0x69, 0xca, 0x00, 0x1f, 0x0a, 0xfa, //0x00000c0c imull $-100000000, %edx, %ecx + 0x01, 0xf9, //0x00000c12 addl %edi, %ecx + 0x41, 0xb9, 0x59, 0x17, 0xb7, 0xd1, //0x00000c14 movl $3518437209, %r9d + 0x48, 0x89, 0xc8, //0x00000c1a movq %rcx, %rax + 0x49, 0x0f, 0xaf, 0xc1, //0x00000c1d imulq %r9, %rax + 0x48, 0xc1, 0xe8, 0x2d, //0x00000c21 shrq $45, %rax + 0x69, 0xf8, 0x10, 0x27, 0x00, 0x00, //0x00000c25 imull $10000, %eax, %edi + 0x29, 0xf9, //0x00000c2b subl %edi, %ecx + 0x48, 0x89, 0xc7, //0x00000c2d movq %rax, %rdi + 0x49, 0x0f, 0xaf, 0xf9, //0x00000c30 imulq %r9, %rdi + 0x48, 0xc1, 0xef, 0x2d, //0x00000c34 shrq $45, %rdi + 0x69, 0xff, 0x10, 0x27, 0x00, 0x00, //0x00000c38 imull $10000, %edi, %edi + 0x29, 0xf8, //0x00000c3e subl %edi, %eax + 0x0f, 0xb7, 0xf9, //0x00000c40 movzwl %cx, %edi + 0xc1, 0xef, 0x02, //0x00000c43 shrl $2, %edi + 0x44, 0x69, 0xcf, 0x7b, 0x14, 0x00, 0x00, //0x00000c46 imull $5243, %edi, %r9d + 0x41, 0xc1, 0xe9, 0x11, //0x00000c4d shrl $17, %r9d + 0x41, 0x6b, 0xf9, 0x64, //0x00000c51 imull $100, %r9d, %edi + 0x29, 0xf9, //0x00000c55 subl %edi, %ecx + 0x44, 0x0f, 0xb7, 0xd1, //0x00000c57 movzwl %cx, %r10d + 0x0f, 0xb7, 0xf8, //0x00000c5b movzwl %ax, %edi + 0xc1, 0xef, 0x02, //0x00000c5e shrl $2, %edi + 0x69, 0xff, 0x7b, 0x14, 0x00, 0x00, //0x00000c61 imull $5243, %edi, %edi + 0xc1, 0xef, 0x11, //0x00000c67 shrl $17, %edi + 0x6b, 0xcf, 0x64, //0x00000c6a imull $100, %edi, %ecx + 0x29, 0xc8, //0x00000c6d subl %ecx, %eax + 0x44, 0x0f, 0xb7, 0xd8, //0x00000c6f movzwl %ax, %r11d + 0x48, 0x8d, 0x0d, 0x76, 0xb2, 0x00, 0x00, //0x00000c73 leaq $45686(%rip), %rcx /* _Digits+0(%rip) */ + 0x42, 0x0f, 0xb7, 0x04, 0x51, //0x00000c7a movzwl (%rcx,%r10,2), %eax + 0x66, 0x41, 0x89, 0x40, 0xfe, //0x00000c7f movw %ax, $-2(%r8) + 0x42, 0x0f, 0xb7, 0x04, 0x49, //0x00000c84 movzwl (%rcx,%r9,2), %eax + 0x66, 0x41, 0x89, 0x40, 0xfc, //0x00000c89 movw %ax, $-4(%r8) + 0x42, 0x0f, 0xb7, 0x04, 0x59, //0x00000c8e movzwl (%rcx,%r11,2), %eax + 0x66, 0x41, 0x89, 0x40, 0xfa, //0x00000c93 movw %ax, $-6(%r8) + 0x4d, 0x8d, 0x58, 0xf8, //0x00000c98 leaq $-8(%r8), %r11 + 0x0f, 0xb7, 0x0c, 0x79, //0x00000c9c movzwl (%rcx,%rdi,2), %ecx + 0x66, 0x41, 0x89, 0x48, 0xf8, //0x00000ca0 movw %cx, $-8(%r8) + 0x48, 0x89, 0xd7, //0x00000ca5 movq %rdx, %rdi + 0x81, 0xff, 0x10, 0x27, 0x00, 0x00, //0x00000ca8 cmpl $10000, %edi + 0x0f, 0x83, 0x16, 0x00, 0x00, 0x00, //0x00000cae jae LBB2_5 + //0x00000cb4 LBB2_4 + 0x89, 0xfa, //0x00000cb4 movl %edi, %edx + 0xe9, 0x6d, 0x00, 0x00, 0x00, //0x00000cb6 jmp LBB2_7 + //0x00000cbb LBB2_1 + 0x4d, 0x89, 0xc3, //0x00000cbb movq %r8, %r11 + 0x81, 0xff, 0x10, 0x27, 0x00, 0x00, //0x00000cbe cmpl $10000, %edi + 0x0f, 0x82, 0xea, 0xff, 0xff, 0xff, //0x00000cc4 jb LBB2_4 + //0x00000cca LBB2_5 + 0x41, 0xb9, 0x59, 0x17, 0xb7, 0xd1, //0x00000cca movl $3518437209, %r9d + 0x4c, 0x8d, 0x15, 0x19, 0xb2, 0x00, 0x00, //0x00000cd0 leaq $45593(%rip), %r10 /* _Digits+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000cd7 .p2align 4, 0x90 + //0x00000ce0 LBB2_6 + 0x89, 0xfa, //0x00000ce0 movl %edi, %edx + 0x49, 0x0f, 0xaf, 0xd1, //0x00000ce2 imulq %r9, %rdx + 0x48, 0xc1, 0xea, 0x2d, //0x00000ce6 shrq $45, %rdx + 0x69, 0xca, 0xf0, 0xd8, 0xff, 0xff, //0x00000cea imull $-10000, %edx, %ecx + 0x01, 0xf9, //0x00000cf0 addl %edi, %ecx + 0x48, 0x69, 0xc1, 0x1f, 0x85, 0xeb, 0x51, //0x00000cf2 imulq $1374389535, %rcx, %rax + 0x48, 0xc1, 0xe8, 0x25, //0x00000cf9 shrq $37, %rax + 0x6b, 0xd8, 0x64, //0x00000cfd imull $100, %eax, %ebx + 0x29, 0xd9, //0x00000d00 subl %ebx, %ecx + 0x41, 0x0f, 0xb7, 0x0c, 0x4a, //0x00000d02 movzwl (%r10,%rcx,2), %ecx + 0x66, 0x41, 0x89, 0x4b, 0xfe, //0x00000d07 movw %cx, $-2(%r11) + 0x41, 0x0f, 0xb7, 0x04, 0x42, //0x00000d0c movzwl (%r10,%rax,2), %eax + 0x66, 0x41, 0x89, 0x43, 0xfc, //0x00000d11 movw %ax, $-4(%r11) + 0x49, 0x83, 0xc3, 0xfc, //0x00000d16 addq $-4, %r11 + 0x81, 0xff, 0xff, 0xe0, 0xf5, 0x05, //0x00000d1a cmpl $99999999, %edi + 0x89, 0xd7, //0x00000d20 movl %edx, %edi + 0x0f, 0x87, 0xb8, 0xff, 0xff, 0xff, //0x00000d22 ja LBB2_6 + //0x00000d28 LBB2_7 + 0x83, 0xfa, 0x64, //0x00000d28 cmpl $100, %edx + 0x0f, 0x82, 0x2d, 0x00, 0x00, 0x00, //0x00000d2b jb LBB2_9 + 0x0f, 0xb7, 0xc2, //0x00000d31 movzwl %dx, %eax + 0xc1, 0xe8, 0x02, //0x00000d34 shrl $2, %eax + 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x00000d37 imull $5243, %eax, %eax + 0xc1, 0xe8, 0x11, //0x00000d3d shrl $17, %eax + 0x6b, 0xc8, 0x64, //0x00000d40 imull $100, %eax, %ecx + 0x29, 0xca, //0x00000d43 subl %ecx, %edx + 0x0f, 0xb7, 0xca, //0x00000d45 movzwl %dx, %ecx + 0x48, 0x8d, 0x15, 0xa1, 0xb1, 0x00, 0x00, //0x00000d48 leaq $45473(%rip), %rdx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x0c, 0x4a, //0x00000d4f movzwl (%rdx,%rcx,2), %ecx + 0x66, 0x41, 0x89, 0x4b, 0xfe, //0x00000d53 movw %cx, $-2(%r11) + 0x49, 0x83, 0xc3, 0xfe, //0x00000d58 addq $-2, %r11 + 0x89, 0xc2, //0x00000d5c movl %eax, %edx + //0x00000d5e LBB2_9 + 0x83, 0xfa, 0x0a, //0x00000d5e cmpl $10, %edx + 0x0f, 0x82, 0x18, 0x00, 0x00, 0x00, //0x00000d61 jb LBB2_11 + 0x89, 0xd0, //0x00000d67 movl %edx, %eax + 0x48, 0x8d, 0x0d, 0x80, 0xb1, 0x00, 0x00, //0x00000d69 leaq $45440(%rip), %rcx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x04, 0x41, //0x00000d70 movzwl (%rcx,%rax,2), %eax + 0x66, 0x41, 0x89, 0x43, 0xfe, //0x00000d74 movw %ax, $-2(%r11) + 0x4c, 0x89, 0xc0, //0x00000d79 movq %r8, %rax + 0x5b, //0x00000d7c popq %rbx + 0x5d, //0x00000d7d popq %rbp + 0xc3, //0x00000d7e retq + //0x00000d7f LBB2_11 + 0x80, 0xc2, 0x30, //0x00000d7f addb $48, %dl + 0x88, 0x16, //0x00000d82 movb %dl, (%rsi) + 0x4c, 0x89, 0xc0, //0x00000d84 movq %r8, %rax + 0x5b, //0x00000d87 popq %rbx + 0x5d, //0x00000d88 popq %rbp + 0xc3, //0x00000d89 retq + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000d8a .p2align 4, 0x90 + //0x00000d90 _i64toa + 0x48, 0x85, 0xf6, //0x00000d90 testq %rsi, %rsi + 0x0f, 0x88, 0x05, 0x00, 0x00, 0x00, //0x00000d93 js LBB3_1 + 0xe9, 0x62, 0x00, 0x00, 0x00, //0x00000d99 jmp _u64toa + //0x00000d9e LBB3_1 + 0x55, //0x00000d9e pushq %rbp + 0x48, 0x89, 0xe5, //0x00000d9f movq %rsp, %rbp + 0xc6, 0x07, 0x2d, //0x00000da2 movb $45, (%rdi) + 0x48, 0xff, 0xc7, //0x00000da5 incq %rdi + 0x48, 0xf7, 0xde, //0x00000da8 negq %rsi + 0xe8, 0x50, 0x00, 0x00, 0x00, //0x00000dab callq _u64toa + 0xff, 0xc0, //0x00000db0 incl %eax + 0x5d, //0x00000db2 popq %rbp + 0xc3, //0x00000db3 retq + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000db4 .p2align 4, 0x00 + //0x00000dc0 LCPI4_0 + 0x59, 0x17, 0xb7, 0xd1, 0x00, 0x00, 0x00, 0x00, //0x00000dc0 .quad 3518437209 + 0x59, 0x17, 0xb7, 0xd1, 0x00, 0x00, 0x00, 0x00, //0x00000dc8 .quad 3518437209 + //0x00000dd0 LCPI4_3 + 0x0a, 0x00, //0x00000dd0 .word 10 + 0x0a, 0x00, //0x00000dd2 .word 10 + 0x0a, 0x00, //0x00000dd4 .word 10 + 0x0a, 0x00, //0x00000dd6 .word 10 + 0x0a, 0x00, //0x00000dd8 .word 10 + 0x0a, 0x00, //0x00000dda .word 10 + 0x0a, 0x00, //0x00000ddc .word 10 + 0x0a, 0x00, //0x00000dde .word 10 + //0x00000de0 LCPI4_4 + 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, //0x00000de0 QUAD $0x3030303030303030; QUAD $0x3030303030303030 // .space 16, '0000000000000000' + //0x00000df0 .p2align 3, 0x00 + //0x00000df0 LCPI4_1 + 0xc5, 0x20, 0x7b, 0x14, 0x34, 0x33, 0x00, 0x80, //0x00000df0 .quad -9223315738079846203 + //0x00000df8 LCPI4_2 + 0x80, 0x00, 0x00, 0x08, 0x00, 0x20, 0x00, 0x80, //0x00000df8 .quad -9223336852348469120 + //0x00000e00 .p2align 4, 0x90 + //0x00000e00 _u64toa + 0x55, //0x00000e00 pushq %rbp + 0x48, 0x89, 0xe5, //0x00000e01 movq %rsp, %rbp + 0x48, 0x81, 0xfe, 0x0f, 0x27, 0x00, 0x00, //0x00000e04 cmpq $9999, %rsi + 0x0f, 0x87, 0xa2, 0x00, 0x00, 0x00, //0x00000e0b ja LBB4_8 + 0x0f, 0xb7, 0xc6, //0x00000e11 movzwl %si, %eax + 0xc1, 0xe8, 0x02, //0x00000e14 shrl $2, %eax + 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x00000e17 imull $5243, %eax, %eax + 0xc1, 0xe8, 0x11, //0x00000e1d shrl $17, %eax + 0x48, 0x8d, 0x14, 0x00, //0x00000e20 leaq (%rax,%rax), %rdx + 0x6b, 0xc0, 0x64, //0x00000e24 imull $100, %eax, %eax + 0x89, 0xf1, //0x00000e27 movl %esi, %ecx + 0x29, 0xc1, //0x00000e29 subl %eax, %ecx + 0x0f, 0xb7, 0xc1, //0x00000e2b movzwl %cx, %eax + 0x48, 0x01, 0xc0, //0x00000e2e addq %rax, %rax + 0x81, 0xfe, 0xe8, 0x03, 0x00, 0x00, //0x00000e31 cmpl $1000, %esi + 0x0f, 0x82, 0x16, 0x00, 0x00, 0x00, //0x00000e37 jb LBB4_3 + 0x48, 0x8d, 0x0d, 0xac, 0xb0, 0x00, 0x00, //0x00000e3d leaq $45228(%rip), %rcx /* _Digits+0(%rip) */ + 0x8a, 0x0c, 0x0a, //0x00000e44 movb (%rdx,%rcx), %cl + 0x88, 0x0f, //0x00000e47 movb %cl, (%rdi) + 0xb9, 0x01, 0x00, 0x00, 0x00, //0x00000e49 movl $1, %ecx + 0xe9, 0x0b, 0x00, 0x00, 0x00, //0x00000e4e jmp LBB4_4 + //0x00000e53 LBB4_3 + 0x31, 0xc9, //0x00000e53 xorl %ecx, %ecx + 0x83, 0xfe, 0x64, //0x00000e55 cmpl $100, %esi + 0x0f, 0x82, 0x45, 0x00, 0x00, 0x00, //0x00000e58 jb LBB4_5 + //0x00000e5e LBB4_4 + 0x0f, 0xb7, 0xd2, //0x00000e5e movzwl %dx, %edx + 0x48, 0x83, 0xca, 0x01, //0x00000e61 orq $1, %rdx + 0x48, 0x8d, 0x35, 0x84, 0xb0, 0x00, 0x00, //0x00000e65 leaq $45188(%rip), %rsi /* _Digits+0(%rip) */ + 0x8a, 0x14, 0x32, //0x00000e6c movb (%rdx,%rsi), %dl + 0x89, 0xce, //0x00000e6f movl %ecx, %esi + 0xff, 0xc1, //0x00000e71 incl %ecx + 0x88, 0x14, 0x37, //0x00000e73 movb %dl, (%rdi,%rsi) + //0x00000e76 LBB4_6 + 0x48, 0x8d, 0x15, 0x73, 0xb0, 0x00, 0x00, //0x00000e76 leaq $45171(%rip), %rdx /* _Digits+0(%rip) */ + 0x8a, 0x14, 0x10, //0x00000e7d movb (%rax,%rdx), %dl + 0x89, 0xce, //0x00000e80 movl %ecx, %esi + 0xff, 0xc1, //0x00000e82 incl %ecx + 0x88, 0x14, 0x37, //0x00000e84 movb %dl, (%rdi,%rsi) + //0x00000e87 LBB4_7 + 0x0f, 0xb7, 0xc0, //0x00000e87 movzwl %ax, %eax + 0x48, 0x83, 0xc8, 0x01, //0x00000e8a orq $1, %rax + 0x48, 0x8d, 0x15, 0x5b, 0xb0, 0x00, 0x00, //0x00000e8e leaq $45147(%rip), %rdx /* _Digits+0(%rip) */ + 0x8a, 0x04, 0x10, //0x00000e95 movb (%rax,%rdx), %al + 0x89, 0xca, //0x00000e98 movl %ecx, %edx + 0xff, 0xc1, //0x00000e9a incl %ecx + 0x88, 0x04, 0x17, //0x00000e9c movb %al, (%rdi,%rdx) + 0x89, 0xc8, //0x00000e9f movl %ecx, %eax + 0x5d, //0x00000ea1 popq %rbp + 0xc3, //0x00000ea2 retq + //0x00000ea3 LBB4_5 + 0x31, 0xc9, //0x00000ea3 xorl %ecx, %ecx + 0x83, 0xfe, 0x0a, //0x00000ea5 cmpl $10, %esi + 0x0f, 0x83, 0xc8, 0xff, 0xff, 0xff, //0x00000ea8 jae LBB4_6 + 0xe9, 0xd4, 0xff, 0xff, 0xff, //0x00000eae jmp LBB4_7 + //0x00000eb3 LBB4_8 + 0x48, 0x81, 0xfe, 0xff, 0xe0, 0xf5, 0x05, //0x00000eb3 cmpq $99999999, %rsi + 0x0f, 0x87, 0x1e, 0x01, 0x00, 0x00, //0x00000eba ja LBB4_16 + 0x89, 0xf0, //0x00000ec0 movl %esi, %eax + 0xba, 0x59, 0x17, 0xb7, 0xd1, //0x00000ec2 movl $3518437209, %edx + 0x48, 0x0f, 0xaf, 0xd0, //0x00000ec7 imulq %rax, %rdx + 0x48, 0xc1, 0xea, 0x2d, //0x00000ecb shrq $45, %rdx + 0x44, 0x69, 0xc2, 0x10, 0x27, 0x00, 0x00, //0x00000ecf imull $10000, %edx, %r8d + 0x89, 0xf1, //0x00000ed6 movl %esi, %ecx + 0x44, 0x29, 0xc1, //0x00000ed8 subl %r8d, %ecx + 0x4c, 0x69, 0xd0, 0x83, 0xde, 0x1b, 0x43, //0x00000edb imulq $1125899907, %rax, %r10 + 0x49, 0xc1, 0xea, 0x31, //0x00000ee2 shrq $49, %r10 + 0x41, 0x83, 0xe2, 0xfe, //0x00000ee6 andl $-2, %r10d + 0x0f, 0xb7, 0xc2, //0x00000eea movzwl %dx, %eax + 0xc1, 0xe8, 0x02, //0x00000eed shrl $2, %eax + 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x00000ef0 imull $5243, %eax, %eax + 0xc1, 0xe8, 0x11, //0x00000ef6 shrl $17, %eax + 0x6b, 0xc0, 0x64, //0x00000ef9 imull $100, %eax, %eax + 0x29, 0xc2, //0x00000efc subl %eax, %edx + 0x44, 0x0f, 0xb7, 0xca, //0x00000efe movzwl %dx, %r9d + 0x4d, 0x01, 0xc9, //0x00000f02 addq %r9, %r9 + 0x0f, 0xb7, 0xc1, //0x00000f05 movzwl %cx, %eax + 0xc1, 0xe8, 0x02, //0x00000f08 shrl $2, %eax + 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x00000f0b imull $5243, %eax, %eax + 0xc1, 0xe8, 0x11, //0x00000f11 shrl $17, %eax + 0x4c, 0x8d, 0x04, 0x00, //0x00000f14 leaq (%rax,%rax), %r8 + 0x6b, 0xc0, 0x64, //0x00000f18 imull $100, %eax, %eax + 0x29, 0xc1, //0x00000f1b subl %eax, %ecx + 0x44, 0x0f, 0xb7, 0xd9, //0x00000f1d movzwl %cx, %r11d + 0x4d, 0x01, 0xdb, //0x00000f21 addq %r11, %r11 + 0x81, 0xfe, 0x80, 0x96, 0x98, 0x00, //0x00000f24 cmpl $10000000, %esi + 0x0f, 0x82, 0x17, 0x00, 0x00, 0x00, //0x00000f2a jb LBB4_11 + 0x48, 0x8d, 0x05, 0xb9, 0xaf, 0x00, 0x00, //0x00000f30 leaq $44985(%rip), %rax /* _Digits+0(%rip) */ + 0x41, 0x8a, 0x04, 0x02, //0x00000f37 movb (%r10,%rax), %al + 0x88, 0x07, //0x00000f3b movb %al, (%rdi) + 0xb9, 0x01, 0x00, 0x00, 0x00, //0x00000f3d movl $1, %ecx + 0xe9, 0x0e, 0x00, 0x00, 0x00, //0x00000f42 jmp LBB4_12 + //0x00000f47 LBB4_11 + 0x31, 0xc9, //0x00000f47 xorl %ecx, %ecx + 0x81, 0xfe, 0x40, 0x42, 0x0f, 0x00, //0x00000f49 cmpl $1000000, %esi + 0x0f, 0x82, 0x76, 0x00, 0x00, 0x00, //0x00000f4f jb LBB4_13 + //0x00000f55 LBB4_12 + 0x44, 0x89, 0xd0, //0x00000f55 movl %r10d, %eax + 0x48, 0x83, 0xc8, 0x01, //0x00000f58 orq $1, %rax + 0x48, 0x8d, 0x35, 0x8d, 0xaf, 0x00, 0x00, //0x00000f5c leaq $44941(%rip), %rsi /* _Digits+0(%rip) */ + 0x8a, 0x04, 0x30, //0x00000f63 movb (%rax,%rsi), %al + 0x89, 0xce, //0x00000f66 movl %ecx, %esi + 0xff, 0xc1, //0x00000f68 incl %ecx + 0x88, 0x04, 0x37, //0x00000f6a movb %al, (%rdi,%rsi) + //0x00000f6d LBB4_14 + 0x48, 0x8d, 0x05, 0x7c, 0xaf, 0x00, 0x00, //0x00000f6d leaq $44924(%rip), %rax /* _Digits+0(%rip) */ + 0x41, 0x8a, 0x04, 0x01, //0x00000f74 movb (%r9,%rax), %al + 0x89, 0xce, //0x00000f78 movl %ecx, %esi + 0xff, 0xc1, //0x00000f7a incl %ecx + 0x88, 0x04, 0x37, //0x00000f7c movb %al, (%rdi,%rsi) + //0x00000f7f LBB4_15 + 0x41, 0x0f, 0xb7, 0xc1, //0x00000f7f movzwl %r9w, %eax + 0x48, 0x83, 0xc8, 0x01, //0x00000f83 orq $1, %rax + 0x48, 0x8d, 0x35, 0x62, 0xaf, 0x00, 0x00, //0x00000f87 leaq $44898(%rip), %rsi /* _Digits+0(%rip) */ + 0x8a, 0x04, 0x30, //0x00000f8e movb (%rax,%rsi), %al + 0x89, 0xca, //0x00000f91 movl %ecx, %edx + 0x88, 0x04, 0x3a, //0x00000f93 movb %al, (%rdx,%rdi) + 0x41, 0x8a, 0x04, 0x30, //0x00000f96 movb (%r8,%rsi), %al + 0x88, 0x44, 0x3a, 0x01, //0x00000f9a movb %al, $1(%rdx,%rdi) + 0x41, 0x0f, 0xb7, 0xc0, //0x00000f9e movzwl %r8w, %eax + 0x48, 0x83, 0xc8, 0x01, //0x00000fa2 orq $1, %rax + 0x8a, 0x04, 0x30, //0x00000fa6 movb (%rax,%rsi), %al + 0x88, 0x44, 0x3a, 0x02, //0x00000fa9 movb %al, $2(%rdx,%rdi) + 0x41, 0x8a, 0x04, 0x33, //0x00000fad movb (%r11,%rsi), %al + 0x88, 0x44, 0x3a, 0x03, //0x00000fb1 movb %al, $3(%rdx,%rdi) + 0x41, 0x0f, 0xb7, 0xc3, //0x00000fb5 movzwl %r11w, %eax + 0x48, 0x83, 0xc8, 0x01, //0x00000fb9 orq $1, %rax + 0x8a, 0x04, 0x30, //0x00000fbd movb (%rax,%rsi), %al + 0x83, 0xc1, 0x05, //0x00000fc0 addl $5, %ecx + 0x88, 0x44, 0x3a, 0x04, //0x00000fc3 movb %al, $4(%rdx,%rdi) + 0x89, 0xc8, //0x00000fc7 movl %ecx, %eax + 0x5d, //0x00000fc9 popq %rbp + 0xc3, //0x00000fca retq + //0x00000fcb LBB4_13 + 0x31, 0xc9, //0x00000fcb xorl %ecx, %ecx + 0x81, 0xfe, 0xa0, 0x86, 0x01, 0x00, //0x00000fcd cmpl $100000, %esi + 0x0f, 0x83, 0x94, 0xff, 0xff, 0xff, //0x00000fd3 jae LBB4_14 + 0xe9, 0xa1, 0xff, 0xff, 0xff, //0x00000fd9 jmp LBB4_15 + //0x00000fde LBB4_16 + 0x48, 0xb8, 0xff, 0xff, 0xc0, 0x6f, 0xf2, 0x86, 0x23, 0x00, //0x00000fde movabsq $9999999999999999, %rax + 0x48, 0x39, 0xc6, //0x00000fe8 cmpq %rax, %rsi + 0x0f, 0x87, 0x05, 0x01, 0x00, 0x00, //0x00000feb ja LBB4_18 + 0x48, 0xb9, 0xfd, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x00000ff1 movabsq $-6067343680855748867, %rcx + 0x48, 0x89, 0xf0, //0x00000ffb movq %rsi, %rax + 0x48, 0xf7, 0xe1, //0x00000ffe mulq %rcx + 0x48, 0xc1, 0xea, 0x1a, //0x00001001 shrq $26, %rdx + 0x69, 0xc2, 0x00, 0xe1, 0xf5, 0x05, //0x00001005 imull $100000000, %edx, %eax + 0x29, 0xc6, //0x0000100b subl %eax, %esi + 0xc5, 0xf9, 0x6e, 0xc2, //0x0000100d vmovd %edx, %xmm0 + 0xc5, 0xf9, 0x6f, 0x0d, 0xa7, 0xfd, 0xff, 0xff, //0x00001011 vmovdqa $-601(%rip), %xmm1 /* LCPI4_0+0(%rip) */ + 0xc5, 0xf9, 0xf4, 0xd1, //0x00001019 vpmuludq %xmm1, %xmm0, %xmm2 + 0xc5, 0xe9, 0x73, 0xd2, 0x2d, //0x0000101d vpsrlq $45, %xmm2, %xmm2 + 0xb8, 0x10, 0x27, 0x00, 0x00, //0x00001022 movl $10000, %eax + 0xc4, 0xe1, 0xf9, 0x6e, 0xd8, //0x00001027 vmovq %rax, %xmm3 + 0xc5, 0xe9, 0xf4, 0xe3, //0x0000102c vpmuludq %xmm3, %xmm2, %xmm4 + 0xc5, 0xf9, 0xfa, 0xc4, //0x00001030 vpsubd %xmm4, %xmm0, %xmm0 + 0xc5, 0xe9, 0x61, 0xc0, //0x00001034 vpunpcklwd %xmm0, %xmm2, %xmm0 + 0xc5, 0xf9, 0x73, 0xf0, 0x02, //0x00001038 vpsllq $2, %xmm0, %xmm0 + 0xc5, 0xfb, 0x70, 0xc0, 0x50, //0x0000103d vpshuflw $80, %xmm0, %xmm0 + 0xc5, 0xf9, 0x70, 0xc0, 0x50, //0x00001042 vpshufd $80, %xmm0, %xmm0 + 0xc5, 0xfb, 0x12, 0x15, 0xa1, 0xfd, 0xff, 0xff, //0x00001047 vmovddup $-607(%rip), %xmm2 /* LCPI4_1+0(%rip) */ + 0xc5, 0xf9, 0xe4, 0xc2, //0x0000104f vpmulhuw %xmm2, %xmm0, %xmm0 + 0xc5, 0xfb, 0x12, 0x25, 0x9d, 0xfd, 0xff, 0xff, //0x00001053 vmovddup $-611(%rip), %xmm4 /* LCPI4_2+0(%rip) */ + 0xc5, 0xf9, 0xe4, 0xc4, //0x0000105b vpmulhuw %xmm4, %xmm0, %xmm0 + 0xc5, 0xf9, 0x6f, 0x2d, 0x69, 0xfd, 0xff, 0xff, //0x0000105f vmovdqa $-663(%rip), %xmm5 /* LCPI4_3+0(%rip) */ + 0xc5, 0xf9, 0xd5, 0xf5, //0x00001067 vpmullw %xmm5, %xmm0, %xmm6 + 0xc5, 0xc9, 0x73, 0xf6, 0x10, //0x0000106b vpsllq $16, %xmm6, %xmm6 + 0xc5, 0xf9, 0xf9, 0xc6, //0x00001070 vpsubw %xmm6, %xmm0, %xmm0 + 0xc5, 0xf9, 0x6e, 0xf6, //0x00001074 vmovd %esi, %xmm6 + 0xc5, 0xc9, 0xf4, 0xc9, //0x00001078 vpmuludq %xmm1, %xmm6, %xmm1 + 0xc5, 0xf1, 0x73, 0xd1, 0x2d, //0x0000107c vpsrlq $45, %xmm1, %xmm1 + 0xc5, 0xf1, 0xf4, 0xdb, //0x00001081 vpmuludq %xmm3, %xmm1, %xmm3 + 0xc5, 0xc9, 0xfa, 0xdb, //0x00001085 vpsubd %xmm3, %xmm6, %xmm3 + 0xc5, 0xf1, 0x61, 0xcb, //0x00001089 vpunpcklwd %xmm3, %xmm1, %xmm1 + 0xc5, 0xf1, 0x73, 0xf1, 0x02, //0x0000108d vpsllq $2, %xmm1, %xmm1 + 0xc5, 0xfb, 0x70, 0xc9, 0x50, //0x00001092 vpshuflw $80, %xmm1, %xmm1 + 0xc5, 0xf9, 0x70, 0xc9, 0x50, //0x00001097 vpshufd $80, %xmm1, %xmm1 + 0xc5, 0xf1, 0xe4, 0xca, //0x0000109c vpmulhuw %xmm2, %xmm1, %xmm1 + 0xc5, 0xf1, 0xe4, 0xcc, //0x000010a0 vpmulhuw %xmm4, %xmm1, %xmm1 + 0xc5, 0xf1, 0xd5, 0xd5, //0x000010a4 vpmullw %xmm5, %xmm1, %xmm2 + 0xc5, 0xe9, 0x73, 0xf2, 0x10, //0x000010a8 vpsllq $16, %xmm2, %xmm2 + 0xc5, 0xf1, 0xf9, 0xca, //0x000010ad vpsubw %xmm2, %xmm1, %xmm1 + 0xc5, 0xf9, 0x67, 0xc1, //0x000010b1 vpackuswb %xmm1, %xmm0, %xmm0 + 0xc5, 0xf9, 0xfc, 0x0d, 0x23, 0xfd, 0xff, 0xff, //0x000010b5 vpaddb $-733(%rip), %xmm0, %xmm1 /* LCPI4_4+0(%rip) */ + 0xc5, 0xe9, 0xef, 0xd2, //0x000010bd vpxor %xmm2, %xmm2, %xmm2 + 0xc5, 0xf9, 0x74, 0xc2, //0x000010c1 vpcmpeqb %xmm2, %xmm0, %xmm0 + 0xc5, 0xf9, 0xd7, 0xc0, //0x000010c5 vpmovmskb %xmm0, %eax + 0x0d, 0x00, 0x80, 0x00, 0x00, //0x000010c9 orl $32768, %eax + 0x35, 0xff, 0x7f, 0xff, 0xff, //0x000010ce xorl $-32769, %eax + 0x0f, 0xbc, 0xc0, //0x000010d3 bsfl %eax, %eax + 0xb9, 0x10, 0x00, 0x00, 0x00, //0x000010d6 movl $16, %ecx + 0x29, 0xc1, //0x000010db subl %eax, %ecx + 0x48, 0xc1, 0xe0, 0x04, //0x000010dd shlq $4, %rax + 0x48, 0x8d, 0x15, 0x68, 0xd5, 0x00, 0x00, //0x000010e1 leaq $54632(%rip), %rdx /* _VecShiftShuffles+0(%rip) */ + 0xc4, 0xe2, 0x71, 0x00, 0x04, 0x10, //0x000010e8 vpshufb (%rax,%rdx), %xmm1, %xmm0 + 0xc5, 0xfa, 0x7f, 0x07, //0x000010ee vmovdqu %xmm0, (%rdi) + 0x89, 0xc8, //0x000010f2 movl %ecx, %eax + 0x5d, //0x000010f4 popq %rbp + 0xc3, //0x000010f5 retq + //0x000010f6 LBB4_18 + 0x48, 0xb9, 0x57, 0x78, 0x13, 0xb1, 0x2f, 0x65, 0xa5, 0x39, //0x000010f6 movabsq $4153837486827862103, %rcx + 0x48, 0x89, 0xf0, //0x00001100 movq %rsi, %rax + 0x48, 0xf7, 0xe1, //0x00001103 mulq %rcx + 0x48, 0xc1, 0xea, 0x33, //0x00001106 shrq $51, %rdx + 0x48, 0xb8, 0x00, 0x00, 0xc1, 0x6f, 0xf2, 0x86, 0x23, 0x00, //0x0000110a movabsq $10000000000000000, %rax + 0x48, 0x0f, 0xaf, 0xc2, //0x00001114 imulq %rdx, %rax + 0x48, 0x29, 0xc6, //0x00001118 subq %rax, %rsi + 0x83, 0xfa, 0x09, //0x0000111b cmpl $9, %edx + 0x0f, 0x87, 0x0f, 0x00, 0x00, 0x00, //0x0000111e ja LBB4_20 + 0x80, 0xc2, 0x30, //0x00001124 addb $48, %dl + 0x88, 0x17, //0x00001127 movb %dl, (%rdi) + 0xb9, 0x01, 0x00, 0x00, 0x00, //0x00001129 movl $1, %ecx + 0xe9, 0xba, 0x00, 0x00, 0x00, //0x0000112e jmp LBB4_25 + //0x00001133 LBB4_20 + 0x83, 0xfa, 0x63, //0x00001133 cmpl $99, %edx + 0x0f, 0x87, 0x1f, 0x00, 0x00, 0x00, //0x00001136 ja LBB4_22 + 0x89, 0xd0, //0x0000113c movl %edx, %eax + 0x48, 0x8d, 0x0d, 0xab, 0xad, 0x00, 0x00, //0x0000113e leaq $44459(%rip), %rcx /* _Digits+0(%rip) */ + 0x8a, 0x14, 0x41, //0x00001145 movb (%rcx,%rax,2), %dl + 0x8a, 0x44, 0x41, 0x01, //0x00001148 movb $1(%rcx,%rax,2), %al + 0x88, 0x17, //0x0000114c movb %dl, (%rdi) + 0x88, 0x47, 0x01, //0x0000114e movb %al, $1(%rdi) + 0xb9, 0x02, 0x00, 0x00, 0x00, //0x00001151 movl $2, %ecx + 0xe9, 0x92, 0x00, 0x00, 0x00, //0x00001156 jmp LBB4_25 + //0x0000115b LBB4_22 + 0x89, 0xd0, //0x0000115b movl %edx, %eax + 0xc1, 0xe8, 0x02, //0x0000115d shrl $2, %eax + 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x00001160 imull $5243, %eax, %eax + 0xc1, 0xe8, 0x11, //0x00001166 shrl $17, %eax + 0x81, 0xfa, 0xe7, 0x03, 0x00, 0x00, //0x00001169 cmpl $999, %edx + 0x0f, 0x87, 0x3c, 0x00, 0x00, 0x00, //0x0000116f ja LBB4_24 + 0x83, 0xc0, 0x30, //0x00001175 addl $48, %eax + 0x88, 0x07, //0x00001178 movb %al, (%rdi) + 0x0f, 0xb7, 0xc2, //0x0000117a movzwl %dx, %eax + 0x89, 0xc1, //0x0000117d movl %eax, %ecx + 0xc1, 0xe9, 0x02, //0x0000117f shrl $2, %ecx + 0x69, 0xc9, 0x7b, 0x14, 0x00, 0x00, //0x00001182 imull $5243, %ecx, %ecx + 0xc1, 0xe9, 0x11, //0x00001188 shrl $17, %ecx + 0x6b, 0xc9, 0x64, //0x0000118b imull $100, %ecx, %ecx + 0x29, 0xc8, //0x0000118e subl %ecx, %eax + 0x0f, 0xb7, 0xc0, //0x00001190 movzwl %ax, %eax + 0x48, 0x8d, 0x0d, 0x56, 0xad, 0x00, 0x00, //0x00001193 leaq $44374(%rip), %rcx /* _Digits+0(%rip) */ + 0x8a, 0x14, 0x41, //0x0000119a movb (%rcx,%rax,2), %dl + 0x8a, 0x44, 0x41, 0x01, //0x0000119d movb $1(%rcx,%rax,2), %al + 0x88, 0x57, 0x01, //0x000011a1 movb %dl, $1(%rdi) + 0x88, 0x47, 0x02, //0x000011a4 movb %al, $2(%rdi) + 0xb9, 0x03, 0x00, 0x00, 0x00, //0x000011a7 movl $3, %ecx + 0xe9, 0x3c, 0x00, 0x00, 0x00, //0x000011ac jmp LBB4_25 + //0x000011b1 LBB4_24 + 0x6b, 0xc8, 0x64, //0x000011b1 imull $100, %eax, %ecx + 0x29, 0xca, //0x000011b4 subl %ecx, %edx + 0x0f, 0xb7, 0xc0, //0x000011b6 movzwl %ax, %eax + 0x4c, 0x8d, 0x05, 0x30, 0xad, 0x00, 0x00, //0x000011b9 leaq $44336(%rip), %r8 /* _Digits+0(%rip) */ + 0x41, 0x8a, 0x0c, 0x40, //0x000011c0 movb (%r8,%rax,2), %cl + 0x41, 0x8a, 0x44, 0x40, 0x01, //0x000011c4 movb $1(%r8,%rax,2), %al + 0x88, 0x0f, //0x000011c9 movb %cl, (%rdi) + 0x88, 0x47, 0x01, //0x000011cb movb %al, $1(%rdi) + 0x0f, 0xb7, 0xc2, //0x000011ce movzwl %dx, %eax + 0x41, 0x8a, 0x0c, 0x40, //0x000011d1 movb (%r8,%rax,2), %cl + 0x48, 0x01, 0xc0, //0x000011d5 addq %rax, %rax + 0x88, 0x4f, 0x02, //0x000011d8 movb %cl, $2(%rdi) + 0x83, 0xc8, 0x01, //0x000011db orl $1, %eax + 0x0f, 0xb7, 0xc0, //0x000011de movzwl %ax, %eax + 0x42, 0x8a, 0x04, 0x00, //0x000011e1 movb (%rax,%r8), %al + 0x88, 0x47, 0x03, //0x000011e5 movb %al, $3(%rdi) + 0xb9, 0x04, 0x00, 0x00, 0x00, //0x000011e8 movl $4, %ecx + //0x000011ed LBB4_25 + 0x48, 0xba, 0xfd, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x000011ed movabsq $-6067343680855748867, %rdx + 0x48, 0x89, 0xf0, //0x000011f7 movq %rsi, %rax + 0x48, 0xf7, 0xe2, //0x000011fa mulq %rdx + 0x48, 0xc1, 0xea, 0x1a, //0x000011fd shrq $26, %rdx + 0xc5, 0xf9, 0x6e, 0xc2, //0x00001201 vmovd %edx, %xmm0 + 0xc5, 0xf9, 0x6f, 0x0d, 0xb3, 0xfb, 0xff, 0xff, //0x00001205 vmovdqa $-1101(%rip), %xmm1 /* LCPI4_0+0(%rip) */ + 0xc5, 0xf9, 0xf4, 0xd1, //0x0000120d vpmuludq %xmm1, %xmm0, %xmm2 + 0xc5, 0xe9, 0x73, 0xd2, 0x2d, //0x00001211 vpsrlq $45, %xmm2, %xmm2 + 0xb8, 0x10, 0x27, 0x00, 0x00, //0x00001216 movl $10000, %eax + 0xc4, 0xe1, 0xf9, 0x6e, 0xd8, //0x0000121b vmovq %rax, %xmm3 + 0xc5, 0xe9, 0xf4, 0xe3, //0x00001220 vpmuludq %xmm3, %xmm2, %xmm4 + 0xc5, 0xf9, 0xfa, 0xc4, //0x00001224 vpsubd %xmm4, %xmm0, %xmm0 + 0xc5, 0xe9, 0x61, 0xc0, //0x00001228 vpunpcklwd %xmm0, %xmm2, %xmm0 + 0xc5, 0xf9, 0x73, 0xf0, 0x02, //0x0000122c vpsllq $2, %xmm0, %xmm0 + 0xc5, 0xfb, 0x70, 0xc0, 0x50, //0x00001231 vpshuflw $80, %xmm0, %xmm0 + 0xc5, 0xf9, 0x70, 0xc0, 0x50, //0x00001236 vpshufd $80, %xmm0, %xmm0 + 0xc5, 0xfb, 0x12, 0x15, 0xad, 0xfb, 0xff, 0xff, //0x0000123b vmovddup $-1107(%rip), %xmm2 /* LCPI4_1+0(%rip) */ + 0xc5, 0xf9, 0xe4, 0xc2, //0x00001243 vpmulhuw %xmm2, %xmm0, %xmm0 + 0xc5, 0xfb, 0x12, 0x25, 0xa9, 0xfb, 0xff, 0xff, //0x00001247 vmovddup $-1111(%rip), %xmm4 /* LCPI4_2+0(%rip) */ + 0xc5, 0xf9, 0xe4, 0xc4, //0x0000124f vpmulhuw %xmm4, %xmm0, %xmm0 + 0xc5, 0xf9, 0x6f, 0x2d, 0x75, 0xfb, 0xff, 0xff, //0x00001253 vmovdqa $-1163(%rip), %xmm5 /* LCPI4_3+0(%rip) */ + 0xc5, 0xf9, 0xd5, 0xf5, //0x0000125b vpmullw %xmm5, %xmm0, %xmm6 + 0xc5, 0xc9, 0x73, 0xf6, 0x10, //0x0000125f vpsllq $16, %xmm6, %xmm6 + 0xc5, 0xf9, 0xf9, 0xc6, //0x00001264 vpsubw %xmm6, %xmm0, %xmm0 + 0x69, 0xc2, 0x00, 0xe1, 0xf5, 0x05, //0x00001268 imull $100000000, %edx, %eax + 0x29, 0xc6, //0x0000126e subl %eax, %esi + 0xc5, 0xf9, 0x6e, 0xf6, //0x00001270 vmovd %esi, %xmm6 + 0xc5, 0xc9, 0xf4, 0xc9, //0x00001274 vpmuludq %xmm1, %xmm6, %xmm1 + 0xc5, 0xf1, 0x73, 0xd1, 0x2d, //0x00001278 vpsrlq $45, %xmm1, %xmm1 + 0xc5, 0xf1, 0xf4, 0xdb, //0x0000127d vpmuludq %xmm3, %xmm1, %xmm3 + 0xc5, 0xc9, 0xfa, 0xdb, //0x00001281 vpsubd %xmm3, %xmm6, %xmm3 + 0xc5, 0xf1, 0x61, 0xcb, //0x00001285 vpunpcklwd %xmm3, %xmm1, %xmm1 + 0xc5, 0xf1, 0x73, 0xf1, 0x02, //0x00001289 vpsllq $2, %xmm1, %xmm1 + 0xc5, 0xfb, 0x70, 0xc9, 0x50, //0x0000128e vpshuflw $80, %xmm1, %xmm1 + 0xc5, 0xf9, 0x70, 0xc9, 0x50, //0x00001293 vpshufd $80, %xmm1, %xmm1 + 0xc5, 0xf1, 0xe4, 0xca, //0x00001298 vpmulhuw %xmm2, %xmm1, %xmm1 + 0xc5, 0xf1, 0xe4, 0xcc, //0x0000129c vpmulhuw %xmm4, %xmm1, %xmm1 + 0xc5, 0xf1, 0xd5, 0xd5, //0x000012a0 vpmullw %xmm5, %xmm1, %xmm2 + 0xc5, 0xe9, 0x73, 0xf2, 0x10, //0x000012a4 vpsllq $16, %xmm2, %xmm2 + 0xc5, 0xf1, 0xf9, 0xca, //0x000012a9 vpsubw %xmm2, %xmm1, %xmm1 + 0xc5, 0xf9, 0x67, 0xc1, //0x000012ad vpackuswb %xmm1, %xmm0, %xmm0 + 0xc5, 0xf9, 0xfc, 0x05, 0x27, 0xfb, 0xff, 0xff, //0x000012b1 vpaddb $-1241(%rip), %xmm0, %xmm0 /* LCPI4_4+0(%rip) */ + 0x89, 0xc8, //0x000012b9 movl %ecx, %eax + 0xc5, 0xfa, 0x7f, 0x04, 0x07, //0x000012bb vmovdqu %xmm0, (%rdi,%rax) + 0x83, 0xc9, 0x10, //0x000012c0 orl $16, %ecx + 0x89, 0xc8, //0x000012c3 movl %ecx, %eax + 0x5d, //0x000012c5 popq %rbp + 0xc3, //0x000012c6 retq + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000012c7 .p2align 4, 0x00 + //0x000012d0 LCPI5_0 + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x000012d0 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' + //0x000012e0 LCPI5_1 + 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, //0x000012e0 QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' + //0x000012f0 LCPI5_2 + 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x000012f0 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + //0x00001300 .p2align 4, 0x90 + //0x00001300 _quote + 0x55, //0x00001300 pushq %rbp + 0x48, 0x89, 0xe5, //0x00001301 movq %rsp, %rbp + 0x41, 0x57, //0x00001304 pushq %r15 + 0x41, 0x56, //0x00001306 pushq %r14 + 0x41, 0x55, //0x00001308 pushq %r13 + 0x41, 0x54, //0x0000130a pushq %r12 + 0x53, //0x0000130c pushq %rbx + 0x50, //0x0000130d pushq %rax + 0x49, 0x89, 0xcb, //0x0000130e movq %rcx, %r11 + 0x49, 0x89, 0xd4, //0x00001311 movq %rdx, %r12 + 0x48, 0x89, 0xf0, //0x00001314 movq %rsi, %rax + 0x4c, 0x8b, 0x31, //0x00001317 movq (%rcx), %r14 + 0x41, 0xf6, 0xc0, 0x01, //0x0000131a testb $1, %r8b + 0x48, 0x8d, 0x0d, 0xbb, 0xd3, 0x00, 0x00, //0x0000131e leaq $54203(%rip), %rcx /* __SingleQuoteTab+0(%rip) */ + 0x4c, 0x8d, 0x05, 0xb4, 0xe3, 0x00, 0x00, //0x00001325 leaq $58292(%rip), %r8 /* __DoubleQuoteTab+0(%rip) */ + 0x4c, 0x0f, 0x44, 0xc1, //0x0000132c cmoveq %rcx, %r8 + 0x48, 0x8d, 0x0c, 0xf5, 0x00, 0x00, 0x00, 0x00, //0x00001330 leaq (,%rsi,8), %rcx + 0x49, 0x39, 0xce, //0x00001338 cmpq %rcx, %r14 + 0x0f, 0x8d, 0xe1, 0x03, 0x00, 0x00, //0x0000133b jge LBB5_51 + 0x4d, 0x89, 0xe7, //0x00001341 movq %r12, %r15 + 0x49, 0x89, 0xfa, //0x00001344 movq %rdi, %r10 + 0x48, 0x85, 0xc0, //0x00001347 testq %rax, %rax + 0x0f, 0x84, 0xc4, 0x03, 0x00, 0x00, //0x0000134a je LBB5_74 + 0xc5, 0xf9, 0x6f, 0x05, 0x78, 0xff, 0xff, 0xff, //0x00001350 vmovdqa $-136(%rip), %xmm0 /* LCPI5_0+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x0d, 0x80, 0xff, 0xff, 0xff, //0x00001358 vmovdqa $-128(%rip), %xmm1 /* LCPI5_1+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x15, 0x88, 0xff, 0xff, 0xff, //0x00001360 vmovdqa $-120(%rip), %xmm2 /* LCPI5_2+0(%rip) */ + 0xc5, 0xe1, 0x76, 0xdb, //0x00001368 vpcmpeqd %xmm3, %xmm3, %xmm3 + 0x49, 0x89, 0xfa, //0x0000136c movq %rdi, %r10 + 0x4d, 0x89, 0xe7, //0x0000136f movq %r12, %r15 + 0x4c, 0x89, 0x65, 0xd0, //0x00001372 movq %r12, $-48(%rbp) + //0x00001376 LBB5_3 + 0x4c, 0x89, 0xda, //0x00001376 movq %r11, %rdx + 0x48, 0x83, 0xf8, 0x0f, //0x00001379 cmpq $15, %rax + 0x41, 0x0f, 0x9f, 0xc3, //0x0000137d setg %r11b + 0x4d, 0x89, 0xf1, //0x00001381 movq %r14, %r9 + 0x4d, 0x89, 0xfd, //0x00001384 movq %r15, %r13 + 0x48, 0x89, 0xc6, //0x00001387 movq %rax, %rsi + 0x4d, 0x89, 0xd4, //0x0000138a movq %r10, %r12 + 0x49, 0x83, 0xfe, 0x10, //0x0000138d cmpq $16, %r14 + 0x0f, 0x8c, 0x89, 0x00, 0x00, 0x00, //0x00001391 jl LBB5_9 + 0x48, 0x83, 0xf8, 0x10, //0x00001397 cmpq $16, %rax + 0x0f, 0x8c, 0x7f, 0x00, 0x00, 0x00, //0x0000139b jl LBB5_9 + 0x4d, 0x89, 0xd4, //0x000013a1 movq %r10, %r12 + 0x48, 0x89, 0xc6, //0x000013a4 movq %rax, %rsi + 0x4d, 0x89, 0xfd, //0x000013a7 movq %r15, %r13 + 0x4c, 0x89, 0xf3, //0x000013aa movq %r14, %rbx + 0x90, 0x90, 0x90, //0x000013ad .p2align 4, 0x90 + //0x000013b0 LBB5_6 + 0xc4, 0xc1, 0x7a, 0x6f, 0x24, 0x24, //0x000013b0 vmovdqu (%r12), %xmm4 + 0xc5, 0xf9, 0x64, 0xec, //0x000013b6 vpcmpgtb %xmm4, %xmm0, %xmm5 + 0xc5, 0xd9, 0x74, 0xf1, //0x000013ba vpcmpeqb %xmm1, %xmm4, %xmm6 + 0xc5, 0xd9, 0x74, 0xfa, //0x000013be vpcmpeqb %xmm2, %xmm4, %xmm7 + 0xc5, 0xc1, 0xeb, 0xf6, //0x000013c2 vpor %xmm6, %xmm7, %xmm6 + 0xc4, 0xc1, 0x7a, 0x7f, 0x65, 0x00, //0x000013c6 vmovdqu %xmm4, (%r13) + 0xc5, 0xd9, 0x64, 0xe3, //0x000013cc vpcmpgtb %xmm3, %xmm4, %xmm4 + 0xc5, 0xd9, 0xdb, 0xe5, //0x000013d0 vpand %xmm5, %xmm4, %xmm4 + 0xc5, 0xc9, 0xeb, 0xe4, //0x000013d4 vpor %xmm4, %xmm6, %xmm4 + 0xc5, 0xf9, 0xd7, 0xcc, //0x000013d8 vpmovmskb %xmm4, %ecx + 0x66, 0x85, 0xc9, //0x000013dc testw %cx, %cx + 0x0f, 0x85, 0x20, 0x01, 0x00, 0x00, //0x000013df jne LBB5_19 + 0x49, 0x83, 0xc4, 0x10, //0x000013e5 addq $16, %r12 + 0x49, 0x83, 0xc5, 0x10, //0x000013e9 addq $16, %r13 + 0x4c, 0x8d, 0x4b, 0xf0, //0x000013ed leaq $-16(%rbx), %r9 + 0x48, 0x83, 0xfe, 0x1f, //0x000013f1 cmpq $31, %rsi + 0x41, 0x0f, 0x9f, 0xc3, //0x000013f5 setg %r11b + 0x48, 0x83, 0xfe, 0x20, //0x000013f9 cmpq $32, %rsi + 0x48, 0x8d, 0x76, 0xf0, //0x000013fd leaq $-16(%rsi), %rsi + 0x0f, 0x8c, 0x19, 0x00, 0x00, 0x00, //0x00001401 jl LBB5_9 + 0x48, 0x83, 0xfb, 0x1f, //0x00001407 cmpq $31, %rbx + 0x4c, 0x89, 0xcb, //0x0000140b movq %r9, %rbx + 0x0f, 0x8f, 0x9c, 0xff, 0xff, 0xff, //0x0000140e jg LBB5_6 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001414 .p2align 4, 0x90 + //0x00001420 LBB5_9 + 0x45, 0x84, 0xdb, //0x00001420 testb %r11b, %r11b + 0x0f, 0x84, 0x68, 0x00, 0x00, 0x00, //0x00001423 je LBB5_13 + 0xc4, 0xc1, 0x7a, 0x6f, 0x24, 0x24, //0x00001429 vmovdqu (%r12), %xmm4 + 0xc5, 0xf9, 0x64, 0xec, //0x0000142f vpcmpgtb %xmm4, %xmm0, %xmm5 + 0xc5, 0xd9, 0x74, 0xf1, //0x00001433 vpcmpeqb %xmm1, %xmm4, %xmm6 + 0xc5, 0xd9, 0x74, 0xfa, //0x00001437 vpcmpeqb %xmm2, %xmm4, %xmm7 + 0xc5, 0xc1, 0xeb, 0xf6, //0x0000143b vpor %xmm6, %xmm7, %xmm6 + 0xc5, 0xd9, 0x64, 0xfb, //0x0000143f vpcmpgtb %xmm3, %xmm4, %xmm7 + 0xc5, 0xc1, 0xdb, 0xed, //0x00001443 vpand %xmm5, %xmm7, %xmm5 + 0xc5, 0xc9, 0xeb, 0xed, //0x00001447 vpor %xmm5, %xmm6, %xmm5 + 0xc5, 0xf9, 0xd7, 0xcd, //0x0000144b vpmovmskb %xmm5, %ecx + 0x81, 0xc9, 0x00, 0x00, 0x01, 0x00, //0x0000144f orl $65536, %ecx + 0x44, 0x0f, 0xbc, 0xd9, //0x00001455 bsfl %ecx, %r11d + 0xc4, 0xe1, 0xf9, 0x7e, 0xe1, //0x00001459 vmovq %xmm4, %rcx + 0x4d, 0x39, 0xd9, //0x0000145e cmpq %r11, %r9 + 0x0f, 0x8d, 0xb0, 0x00, 0x00, 0x00, //0x00001461 jge LBB5_20 + 0x49, 0x83, 0xf9, 0x08, //0x00001467 cmpq $8, %r9 + 0x0f, 0x82, 0xdb, 0x00, 0x00, 0x00, //0x0000146b jb LBB5_23 + 0x49, 0x89, 0x4d, 0x00, //0x00001471 movq %rcx, (%r13) + 0x4d, 0x8d, 0x5c, 0x24, 0x08, //0x00001475 leaq $8(%r12), %r11 + 0x49, 0x83, 0xc5, 0x08, //0x0000147a addq $8, %r13 + 0x49, 0x8d, 0x71, 0xf8, //0x0000147e leaq $-8(%r9), %rsi + 0x48, 0x83, 0xfe, 0x04, //0x00001482 cmpq $4, %rsi + 0x0f, 0x8d, 0xd0, 0x00, 0x00, 0x00, //0x00001486 jge LBB5_24 + 0xe9, 0xde, 0x00, 0x00, 0x00, //0x0000148c jmp LBB5_25 + //0x00001491 LBB5_13 + 0x4d, 0x85, 0xc9, //0x00001491 testq %r9, %r9 + 0x49, 0x89, 0xd3, //0x00001494 movq %rdx, %r11 + 0x0f, 0x8e, 0x57, 0x00, 0x00, 0x00, //0x00001497 jle LBB5_18 + 0x48, 0x85, 0xf6, //0x0000149d testq %rsi, %rsi + 0x0f, 0x8e, 0x4e, 0x00, 0x00, 0x00, //0x000014a0 jle LBB5_18 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000014a6 .p2align 4, 0x90 + //0x000014b0 LBB5_15 + 0x41, 0x0f, 0xb6, 0x1c, 0x24, //0x000014b0 movzbl (%r12), %ebx + 0x48, 0x89, 0xd9, //0x000014b5 movq %rbx, %rcx + 0x48, 0xc1, 0xe1, 0x04, //0x000014b8 shlq $4, %rcx + 0x48, 0x8d, 0x15, 0x1d, 0xd2, 0x00, 0x00, //0x000014bc leaq $53789(%rip), %rdx /* __SingleQuoteTab+0(%rip) */ + 0x48, 0x83, 0x3c, 0x11, 0x00, //0x000014c3 cmpq $0, (%rcx,%rdx) + 0x0f, 0x85, 0x73, 0x00, 0x00, 0x00, //0x000014c8 jne LBB5_22 + 0x49, 0xff, 0xc4, //0x000014ce incq %r12 + 0x41, 0x88, 0x5d, 0x00, //0x000014d1 movb %bl, (%r13) + 0x48, 0x83, 0xfe, 0x02, //0x000014d5 cmpq $2, %rsi + 0x48, 0x8d, 0x76, 0xff, //0x000014d9 leaq $-1(%rsi), %rsi + 0x0f, 0x8c, 0x11, 0x00, 0x00, 0x00, //0x000014dd jl LBB5_18 + 0x49, 0xff, 0xc5, //0x000014e3 incq %r13 + 0x49, 0x83, 0xf9, 0x01, //0x000014e6 cmpq $1, %r9 + 0x4d, 0x8d, 0x49, 0xff, //0x000014ea leaq $-1(%r9), %r9 + 0x0f, 0x8f, 0xbc, 0xff, 0xff, 0xff, //0x000014ee jg LBB5_15 + //0x000014f4 LBB5_18 + 0x4d, 0x29, 0xd4, //0x000014f4 subq %r10, %r12 + 0x48, 0xf7, 0xde, //0x000014f7 negq %rsi + 0x4d, 0x19, 0xc9, //0x000014fa sbbq %r9, %r9 + 0x4d, 0x31, 0xe1, //0x000014fd xorq %r12, %r9 + 0xe9, 0x1e, 0x01, 0x00, 0x00, //0x00001500 jmp LBB5_36 + //0x00001505 LBB5_19 + 0x0f, 0xb7, 0xc9, //0x00001505 movzwl %cx, %ecx + 0x4d, 0x29, 0xd4, //0x00001508 subq %r10, %r12 + 0x44, 0x0f, 0xbc, 0xc9, //0x0000150b bsfl %ecx, %r9d + 0x4d, 0x01, 0xe1, //0x0000150f addq %r12, %r9 + 0xe9, 0x09, 0x01, 0x00, 0x00, //0x00001512 jmp LBB5_35 + //0x00001517 LBB5_20 + 0x41, 0x83, 0xfb, 0x08, //0x00001517 cmpl $8, %r11d + 0x0f, 0x82, 0x99, 0x00, 0x00, 0x00, //0x0000151b jb LBB5_29 + 0x49, 0x89, 0x4d, 0x00, //0x00001521 movq %rcx, (%r13) + 0x49, 0x8d, 0x5c, 0x24, 0x08, //0x00001525 leaq $8(%r12), %rbx + 0x49, 0x83, 0xc5, 0x08, //0x0000152a addq $8, %r13 + 0x49, 0x8d, 0x73, 0xf8, //0x0000152e leaq $-8(%r11), %rsi + 0x48, 0x83, 0xfe, 0x04, //0x00001532 cmpq $4, %rsi + 0x0f, 0x8d, 0x8e, 0x00, 0x00, 0x00, //0x00001536 jge LBB5_30 + 0xe9, 0x9b, 0x00, 0x00, 0x00, //0x0000153c jmp LBB5_31 + //0x00001541 LBB5_22 + 0x4d, 0x29, 0xd4, //0x00001541 subq %r10, %r12 + 0x4d, 0x89, 0xe1, //0x00001544 movq %r12, %r9 + 0xe9, 0xd7, 0x00, 0x00, 0x00, //0x00001547 jmp LBB5_36 + //0x0000154c LBB5_23 + 0x4d, 0x89, 0xe3, //0x0000154c movq %r12, %r11 + 0x4c, 0x89, 0xce, //0x0000154f movq %r9, %rsi + 0x48, 0x83, 0xfe, 0x04, //0x00001552 cmpq $4, %rsi + 0x0f, 0x8c, 0x13, 0x00, 0x00, 0x00, //0x00001556 jl LBB5_25 + //0x0000155c LBB5_24 + 0x41, 0x8b, 0x0b, //0x0000155c movl (%r11), %ecx + 0x41, 0x89, 0x4d, 0x00, //0x0000155f movl %ecx, (%r13) + 0x49, 0x83, 0xc3, 0x04, //0x00001563 addq $4, %r11 + 0x49, 0x83, 0xc5, 0x04, //0x00001567 addq $4, %r13 + 0x48, 0x83, 0xc6, 0xfc, //0x0000156b addq $-4, %rsi + //0x0000156f LBB5_25 + 0x48, 0x83, 0xfe, 0x02, //0x0000156f cmpq $2, %rsi + 0x0f, 0x82, 0x23, 0x00, 0x00, 0x00, //0x00001573 jb LBB5_26 + 0x41, 0x0f, 0xb7, 0x0b, //0x00001579 movzwl (%r11), %ecx + 0x66, 0x41, 0x89, 0x4d, 0x00, //0x0000157d movw %cx, (%r13) + 0x49, 0x83, 0xc3, 0x02, //0x00001582 addq $2, %r11 + 0x49, 0x83, 0xc5, 0x02, //0x00001586 addq $2, %r13 + 0x48, 0x83, 0xc6, 0xfe, //0x0000158a addq $-2, %rsi + 0x48, 0x85, 0xf6, //0x0000158e testq %rsi, %rsi + 0x0f, 0x85, 0x0e, 0x00, 0x00, 0x00, //0x00001591 jne LBB5_27 + 0xe9, 0x10, 0x00, 0x00, 0x00, //0x00001597 jmp LBB5_28 + //0x0000159c LBB5_26 + 0x48, 0x85, 0xf6, //0x0000159c testq %rsi, %rsi + 0x0f, 0x84, 0x07, 0x00, 0x00, 0x00, //0x0000159f je LBB5_28 + //0x000015a5 LBB5_27 + 0x41, 0x8a, 0x0b, //0x000015a5 movb (%r11), %cl + 0x41, 0x88, 0x4d, 0x00, //0x000015a8 movb %cl, (%r13) + //0x000015ac LBB5_28 + 0x4d, 0x29, 0xd1, //0x000015ac subq %r10, %r9 + 0x4d, 0x01, 0xe1, //0x000015af addq %r12, %r9 + 0x49, 0xf7, 0xd1, //0x000015b2 notq %r9 + 0xe9, 0x66, 0x00, 0x00, 0x00, //0x000015b5 jmp LBB5_35 + //0x000015ba LBB5_29 + 0x4c, 0x89, 0xe3, //0x000015ba movq %r12, %rbx + 0x4c, 0x89, 0xde, //0x000015bd movq %r11, %rsi + 0x48, 0x83, 0xfe, 0x04, //0x000015c0 cmpq $4, %rsi + 0x0f, 0x8c, 0x12, 0x00, 0x00, 0x00, //0x000015c4 jl LBB5_31 + //0x000015ca LBB5_30 + 0x8b, 0x0b, //0x000015ca movl (%rbx), %ecx + 0x41, 0x89, 0x4d, 0x00, //0x000015cc movl %ecx, (%r13) + 0x48, 0x83, 0xc3, 0x04, //0x000015d0 addq $4, %rbx + 0x49, 0x83, 0xc5, 0x04, //0x000015d4 addq $4, %r13 + 0x48, 0x83, 0xc6, 0xfc, //0x000015d8 addq $-4, %rsi + //0x000015dc LBB5_31 + 0x48, 0x83, 0xfe, 0x02, //0x000015dc cmpq $2, %rsi + 0x0f, 0x82, 0x22, 0x00, 0x00, 0x00, //0x000015e0 jb LBB5_32 + 0x0f, 0xb7, 0x0b, //0x000015e6 movzwl (%rbx), %ecx + 0x66, 0x41, 0x89, 0x4d, 0x00, //0x000015e9 movw %cx, (%r13) + 0x48, 0x83, 0xc3, 0x02, //0x000015ee addq $2, %rbx + 0x49, 0x83, 0xc5, 0x02, //0x000015f2 addq $2, %r13 + 0x48, 0x83, 0xc6, 0xfe, //0x000015f6 addq $-2, %rsi + 0x48, 0x85, 0xf6, //0x000015fa testq %rsi, %rsi + 0x0f, 0x85, 0x0e, 0x00, 0x00, 0x00, //0x000015fd jne LBB5_33 + 0xe9, 0x0f, 0x00, 0x00, 0x00, //0x00001603 jmp LBB5_34 + //0x00001608 LBB5_32 + 0x48, 0x85, 0xf6, //0x00001608 testq %rsi, %rsi + 0x0f, 0x84, 0x06, 0x00, 0x00, 0x00, //0x0000160b je LBB5_34 + //0x00001611 LBB5_33 + 0x8a, 0x0b, //0x00001611 movb (%rbx), %cl + 0x41, 0x88, 0x4d, 0x00, //0x00001613 movb %cl, (%r13) + //0x00001617 LBB5_34 + 0x4d, 0x29, 0xd4, //0x00001617 subq %r10, %r12 + 0x4d, 0x01, 0xdc, //0x0000161a addq %r11, %r12 + 0x4d, 0x89, 0xe1, //0x0000161d movq %r12, %r9 + //0x00001620 LBB5_35 + 0x49, 0x89, 0xd3, //0x00001620 movq %rdx, %r11 + //0x00001623 LBB5_36 + 0x4d, 0x85, 0xc9, //0x00001623 testq %r9, %r9 + 0x4c, 0x8b, 0x65, 0xd0, //0x00001626 movq $-48(%rbp), %r12 + 0x49, 0xbd, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, //0x0000162a movabsq $12884901889, %r13 + 0x0f, 0x88, 0x46, 0x03, 0x00, 0x00, //0x00001634 js LBB5_78 + 0x4d, 0x01, 0xca, //0x0000163a addq %r9, %r10 + 0x4d, 0x01, 0xcf, //0x0000163d addq %r9, %r15 + 0x4c, 0x39, 0xc8, //0x00001640 cmpq %r9, %rax + 0x0f, 0x84, 0xcb, 0x00, 0x00, 0x00, //0x00001643 je LBB5_74 + 0x4d, 0x29, 0xce, //0x00001649 subq %r9, %r14 + 0x49, 0x29, 0xc1, //0x0000164c subq %rax, %r9 + 0xe9, 0x1b, 0x00, 0x00, 0x00, //0x0000164f jmp LBB5_40 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001654 .p2align 4, 0x90 + //0x00001660 LBB5_39 + 0x49, 0xff, 0xc2, //0x00001660 incq %r10 + 0x49, 0x01, 0xc7, //0x00001663 addq %rax, %r15 + 0x49, 0xff, 0xc1, //0x00001666 incq %r9 + 0x0f, 0x84, 0xa5, 0x00, 0x00, 0x00, //0x00001669 je LBB5_74 + //0x0000166f LBB5_40 + 0x41, 0x0f, 0xb6, 0x0a, //0x0000166f movzbl (%r10), %ecx + 0x48, 0xc1, 0xe1, 0x04, //0x00001673 shlq $4, %rcx + 0x49, 0x8b, 0x1c, 0x08, //0x00001677 movq (%r8,%rcx), %rbx + 0x85, 0xdb, //0x0000167b testl %ebx, %ebx + 0x0f, 0x84, 0x82, 0x00, 0x00, 0x00, //0x0000167d je LBB5_48 + 0x48, 0x63, 0xc3, //0x00001683 movslq %ebx, %rax + 0x49, 0x29, 0xc6, //0x00001686 subq %rax, %r14 + 0x0f, 0x8c, 0xd3, 0x02, 0x00, 0x00, //0x00001689 jl LBB5_75 + 0x48, 0xc1, 0xe3, 0x20, //0x0000168f shlq $32, %rbx + 0x49, 0x8d, 0x74, 0x08, 0x08, //0x00001693 leaq $8(%r8,%rcx), %rsi + 0x4c, 0x39, 0xeb, //0x00001698 cmpq %r13, %rbx + 0x0f, 0x8c, 0x2f, 0x00, 0x00, 0x00, //0x0000169b jl LBB5_44 + 0x8b, 0x36, //0x000016a1 movl (%rsi), %esi + 0x41, 0x89, 0x37, //0x000016a3 movl %esi, (%r15) + 0x49, 0x8d, 0x74, 0x08, 0x0c, //0x000016a6 leaq $12(%r8,%rcx), %rsi + 0x49, 0x8d, 0x5f, 0x04, //0x000016ab leaq $4(%r15), %rbx + 0x48, 0x8d, 0x48, 0xfc, //0x000016af leaq $-4(%rax), %rcx + 0x48, 0x83, 0xf9, 0x02, //0x000016b3 cmpq $2, %rcx + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x000016b7 jae LBB5_45 + 0xe9, 0x30, 0x00, 0x00, 0x00, //0x000016bd jmp LBB5_46 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000016c2 .p2align 4, 0x90 + //0x000016d0 LBB5_44 + 0x4c, 0x89, 0xfb, //0x000016d0 movq %r15, %rbx + 0x48, 0x89, 0xc1, //0x000016d3 movq %rax, %rcx + 0x48, 0x83, 0xf9, 0x02, //0x000016d6 cmpq $2, %rcx + 0x0f, 0x82, 0x12, 0x00, 0x00, 0x00, //0x000016da jb LBB5_46 + //0x000016e0 LBB5_45 + 0x0f, 0xb7, 0x16, //0x000016e0 movzwl (%rsi), %edx + 0x66, 0x89, 0x13, //0x000016e3 movw %dx, (%rbx) + 0x48, 0x83, 0xc6, 0x02, //0x000016e6 addq $2, %rsi + 0x48, 0x83, 0xc3, 0x02, //0x000016ea addq $2, %rbx + 0x48, 0x83, 0xc1, 0xfe, //0x000016ee addq $-2, %rcx + //0x000016f2 LBB5_46 + 0x48, 0x85, 0xc9, //0x000016f2 testq %rcx, %rcx + 0x0f, 0x84, 0x65, 0xff, 0xff, 0xff, //0x000016f5 je LBB5_39 + 0x0f, 0xb6, 0x0e, //0x000016fb movzbl (%rsi), %ecx + 0x88, 0x0b, //0x000016fe movb %cl, (%rbx) + 0xe9, 0x5b, 0xff, 0xff, 0xff, //0x00001700 jmp LBB5_39 + //0x00001705 LBB5_48 + 0x4c, 0x89, 0xc8, //0x00001705 movq %r9, %rax + 0x48, 0xf7, 0xd8, //0x00001708 negq %rax + 0x4d, 0x85, 0xc9, //0x0000170b testq %r9, %r9 + 0x0f, 0x85, 0x62, 0xfc, 0xff, 0xff, //0x0000170e jne LBB5_3 + //0x00001714 LBB5_74 + 0x4d, 0x29, 0xe7, //0x00001714 subq %r12, %r15 + 0x4d, 0x89, 0x3b, //0x00001717 movq %r15, (%r11) + 0x49, 0x29, 0xfa, //0x0000171a subq %rdi, %r10 + 0xe9, 0x4c, 0x02, 0x00, 0x00, //0x0000171d jmp LBB5_76 + //0x00001722 LBB5_51 + 0x4c, 0x8d, 0x0d, 0xb7, 0xef, 0x00, 0x00, //0x00001722 leaq $61367(%rip), %r9 /* __EscTab+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x05, 0x9f, 0xfb, 0xff, 0xff, //0x00001729 vmovdqa $-1121(%rip), %xmm0 /* LCPI5_0+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x0d, 0xa7, 0xfb, 0xff, 0xff, //0x00001731 vmovdqa $-1113(%rip), %xmm1 /* LCPI5_1+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x15, 0xaf, 0xfb, 0xff, 0xff, //0x00001739 vmovdqa $-1105(%rip), %xmm2 /* LCPI5_2+0(%rip) */ + 0xc5, 0xe1, 0x76, 0xdb, //0x00001741 vpcmpeqd %xmm3, %xmm3, %xmm3 + 0x4c, 0x89, 0xe3, //0x00001745 movq %r12, %rbx + 0x49, 0x89, 0xc2, //0x00001748 movq %rax, %r10 + //0x0000174b LBB5_52 + 0x49, 0x83, 0xfa, 0x10, //0x0000174b cmpq $16, %r10 + 0x0f, 0x8c, 0x5e, 0x00, 0x00, 0x00, //0x0000174f jl LBB5_57 + 0xb9, 0x10, 0x00, 0x00, 0x00, //0x00001755 movl $16, %ecx + 0x31, 0xf6, //0x0000175a xorl %esi, %esi + 0x90, 0x90, 0x90, 0x90, //0x0000175c .p2align 4, 0x90 + //0x00001760 LBB5_54 + 0xc5, 0xfa, 0x6f, 0x24, 0x37, //0x00001760 vmovdqu (%rdi,%rsi), %xmm4 + 0xc5, 0xf9, 0x64, 0xec, //0x00001765 vpcmpgtb %xmm4, %xmm0, %xmm5 + 0xc5, 0xd9, 0x74, 0xf1, //0x00001769 vpcmpeqb %xmm1, %xmm4, %xmm6 + 0xc5, 0xd9, 0x74, 0xfa, //0x0000176d vpcmpeqb %xmm2, %xmm4, %xmm7 + 0xc5, 0xc1, 0xeb, 0xf6, //0x00001771 vpor %xmm6, %xmm7, %xmm6 + 0xc5, 0xfa, 0x7f, 0x24, 0x33, //0x00001775 vmovdqu %xmm4, (%rbx,%rsi) + 0xc5, 0xd9, 0x64, 0xe3, //0x0000177a vpcmpgtb %xmm3, %xmm4, %xmm4 + 0xc5, 0xd9, 0xdb, 0xe5, //0x0000177e vpand %xmm5, %xmm4, %xmm4 + 0xc5, 0xc9, 0xeb, 0xe4, //0x00001782 vpor %xmm4, %xmm6, %xmm4 + 0xc5, 0xf9, 0xd7, 0xd4, //0x00001786 vpmovmskb %xmm4, %edx + 0x66, 0x85, 0xd2, //0x0000178a testw %dx, %dx + 0x0f, 0x85, 0x36, 0x01, 0x00, 0x00, //0x0000178d jne LBB5_67 + 0x48, 0x83, 0xc6, 0x10, //0x00001793 addq $16, %rsi + 0x49, 0x8d, 0x54, 0x0a, 0xf0, //0x00001797 leaq $-16(%r10,%rcx), %rdx + 0x48, 0x83, 0xc1, 0xf0, //0x0000179c addq $-16, %rcx + 0x48, 0x83, 0xfa, 0x1f, //0x000017a0 cmpq $31, %rdx + 0x0f, 0x8f, 0xb6, 0xff, 0xff, 0xff, //0x000017a4 jg LBB5_54 + 0x48, 0x01, 0xf7, //0x000017aa addq %rsi, %rdi + 0x49, 0x29, 0xf2, //0x000017ad subq %rsi, %r10 + 0x48, 0x01, 0xf3, //0x000017b0 addq %rsi, %rbx + //0x000017b3 LBB5_57 + 0x49, 0x83, 0xfa, 0x08, //0x000017b3 cmpq $8, %r10 + 0x0f, 0x8c, 0x85, 0x00, 0x00, 0x00, //0x000017b7 jl LBB5_61 + 0x0f, 0xb6, 0x0f, //0x000017bd movzbl (%rdi), %ecx + 0x42, 0x0f, 0xb6, 0x0c, 0x09, //0x000017c0 movzbl (%rcx,%r9), %ecx + 0x0f, 0xb6, 0x57, 0x01, //0x000017c5 movzbl $1(%rdi), %edx + 0x42, 0x0f, 0xb6, 0x14, 0x0a, //0x000017c9 movzbl (%rdx,%r9), %edx + 0x01, 0xd2, //0x000017ce addl %edx, %edx + 0x09, 0xca, //0x000017d0 orl %ecx, %edx + 0x0f, 0xb6, 0x4f, 0x02, //0x000017d2 movzbl $2(%rdi), %ecx + 0x42, 0x0f, 0xb6, 0x34, 0x09, //0x000017d6 movzbl (%rcx,%r9), %esi + 0xc1, 0xe6, 0x02, //0x000017db shll $2, %esi + 0x0f, 0xb6, 0x4f, 0x03, //0x000017de movzbl $3(%rdi), %ecx + 0x42, 0x0f, 0xb6, 0x0c, 0x09, //0x000017e2 movzbl (%rcx,%r9), %ecx + 0xc1, 0xe1, 0x03, //0x000017e7 shll $3, %ecx + 0x09, 0xf1, //0x000017ea orl %esi, %ecx + 0x09, 0xd1, //0x000017ec orl %edx, %ecx + 0x48, 0x8b, 0x17, //0x000017ee movq (%rdi), %rdx + 0x48, 0x89, 0x13, //0x000017f1 movq %rdx, (%rbx) + 0x84, 0xc9, //0x000017f4 testb %cl, %cl + 0x0f, 0x85, 0x31, 0x01, 0x00, 0x00, //0x000017f6 jne LBB5_71 + 0x0f, 0xb6, 0x4f, 0x04, //0x000017fc movzbl $4(%rdi), %ecx + 0x42, 0x0f, 0xb6, 0x0c, 0x09, //0x00001800 movzbl (%rcx,%r9), %ecx + 0x0f, 0xb6, 0x57, 0x05, //0x00001805 movzbl $5(%rdi), %edx + 0x42, 0x0f, 0xb6, 0x14, 0x0a, //0x00001809 movzbl (%rdx,%r9), %edx + 0x01, 0xd2, //0x0000180e addl %edx, %edx + 0x09, 0xca, //0x00001810 orl %ecx, %edx + 0x0f, 0xb6, 0x4f, 0x06, //0x00001812 movzbl $6(%rdi), %ecx + 0x42, 0x0f, 0xb6, 0x34, 0x09, //0x00001816 movzbl (%rcx,%r9), %esi + 0xc1, 0xe6, 0x02, //0x0000181b shll $2, %esi + 0x0f, 0xb6, 0x4f, 0x07, //0x0000181e movzbl $7(%rdi), %ecx + 0x42, 0x0f, 0xb6, 0x0c, 0x09, //0x00001822 movzbl (%rcx,%r9), %ecx + 0xc1, 0xe1, 0x03, //0x00001827 shll $3, %ecx + 0x09, 0xf1, //0x0000182a orl %esi, %ecx + 0x09, 0xd1, //0x0000182c orl %edx, %ecx + 0x84, 0xc9, //0x0000182e testb %cl, %cl + 0x0f, 0x85, 0x08, 0x01, 0x00, 0x00, //0x00001830 jne LBB5_72 + 0x48, 0x83, 0xc3, 0x08, //0x00001836 addq $8, %rbx + 0x48, 0x83, 0xc7, 0x08, //0x0000183a addq $8, %rdi + 0x49, 0x83, 0xc2, 0xf8, //0x0000183e addq $-8, %r10 + //0x00001842 LBB5_61 + 0x49, 0x83, 0xfa, 0x04, //0x00001842 cmpq $4, %r10 + 0x0f, 0x8c, 0x49, 0x00, 0x00, 0x00, //0x00001846 jl LBB5_64 + 0x0f, 0xb6, 0x0f, //0x0000184c movzbl (%rdi), %ecx + 0x42, 0x0f, 0xb6, 0x0c, 0x09, //0x0000184f movzbl (%rcx,%r9), %ecx + 0x0f, 0xb6, 0x57, 0x01, //0x00001854 movzbl $1(%rdi), %edx + 0x42, 0x0f, 0xb6, 0x14, 0x0a, //0x00001858 movzbl (%rdx,%r9), %edx + 0x01, 0xd2, //0x0000185d addl %edx, %edx + 0x09, 0xca, //0x0000185f orl %ecx, %edx + 0x0f, 0xb6, 0x4f, 0x02, //0x00001861 movzbl $2(%rdi), %ecx + 0x42, 0x0f, 0xb6, 0x34, 0x09, //0x00001865 movzbl (%rcx,%r9), %esi + 0xc1, 0xe6, 0x02, //0x0000186a shll $2, %esi + 0x0f, 0xb6, 0x4f, 0x03, //0x0000186d movzbl $3(%rdi), %ecx + 0x42, 0x0f, 0xb6, 0x0c, 0x09, //0x00001871 movzbl (%rcx,%r9), %ecx + 0xc1, 0xe1, 0x03, //0x00001876 shll $3, %ecx + 0x09, 0xf1, //0x00001879 orl %esi, %ecx + 0x09, 0xd1, //0x0000187b orl %edx, %ecx + 0x8b, 0x17, //0x0000187d movl (%rdi), %edx + 0x89, 0x13, //0x0000187f movl %edx, (%rbx) + 0x84, 0xc9, //0x00001881 testb %cl, %cl + 0x0f, 0x85, 0xa4, 0x00, 0x00, 0x00, //0x00001883 jne LBB5_71 + 0x48, 0x83, 0xc3, 0x04, //0x00001889 addq $4, %rbx + 0x48, 0x83, 0xc7, 0x04, //0x0000188d addq $4, %rdi + 0x49, 0x83, 0xc2, 0xfc, //0x00001891 addq $-4, %r10 + //0x00001895 LBB5_64 + 0x4d, 0x85, 0xd2, //0x00001895 testq %r10, %r10 + 0x0f, 0x8e, 0xb9, 0x00, 0x00, 0x00, //0x00001898 jle LBB5_73 + 0x90, 0x90, //0x0000189e .p2align 4, 0x90 + //0x000018a0 LBB5_65 + 0x0f, 0xb6, 0x0f, //0x000018a0 movzbl (%rdi), %ecx + 0x42, 0x80, 0x3c, 0x09, 0x00, //0x000018a3 cmpb $0, (%rcx,%r9) + 0x0f, 0x85, 0x33, 0x00, 0x00, 0x00, //0x000018a8 jne LBB5_68 + 0x48, 0xff, 0xc7, //0x000018ae incq %rdi + 0x88, 0x0b, //0x000018b1 movb %cl, (%rbx) + 0x48, 0xff, 0xc3, //0x000018b3 incq %rbx + 0x49, 0x83, 0xfa, 0x01, //0x000018b6 cmpq $1, %r10 + 0x4d, 0x8d, 0x52, 0xff, //0x000018ba leaq $-1(%r10), %r10 + 0x0f, 0x8f, 0xdc, 0xff, 0xff, 0xff, //0x000018be jg LBB5_65 + 0xe9, 0x8e, 0x00, 0x00, 0x00, //0x000018c4 jmp LBB5_73 + //0x000018c9 LBB5_67 + 0x0f, 0xb7, 0xca, //0x000018c9 movzwl %dx, %ecx + 0x0f, 0xbc, 0xc9, //0x000018cc bsfl %ecx, %ecx + 0x48, 0x01, 0xcf, //0x000018cf addq %rcx, %rdi + 0x48, 0x01, 0xf7, //0x000018d2 addq %rsi, %rdi + 0x49, 0x29, 0xca, //0x000018d5 subq %rcx, %r10 + 0x49, 0x29, 0xf2, //0x000018d8 subq %rsi, %r10 + 0x48, 0x01, 0xcb, //0x000018db addq %rcx, %rbx + 0x48, 0x01, 0xf3, //0x000018de addq %rsi, %rbx + //0x000018e1 LBB5_68 + 0x8a, 0x0f, //0x000018e1 movb (%rdi), %cl + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000018e3 .p2align 4, 0x90 + //0x000018f0 LBB5_69 + 0x48, 0x89, 0xda, //0x000018f0 movq %rbx, %rdx + 0x0f, 0xb6, 0xc9, //0x000018f3 movzbl %cl, %ecx + 0x48, 0xc1, 0xe1, 0x04, //0x000018f6 shlq $4, %rcx + 0x49, 0x63, 0x1c, 0x08, //0x000018fa movslq (%r8,%rcx), %rbx + 0x49, 0x8b, 0x4c, 0x08, 0x08, //0x000018fe movq $8(%r8,%rcx), %rcx + 0x48, 0x89, 0x0a, //0x00001903 movq %rcx, (%rdx) + 0x48, 0x01, 0xd3, //0x00001906 addq %rdx, %rbx + 0x49, 0x83, 0xfa, 0x02, //0x00001909 cmpq $2, %r10 + 0x0f, 0x8c, 0x44, 0x00, 0x00, 0x00, //0x0000190d jl LBB5_73 + 0x49, 0xff, 0xca, //0x00001913 decq %r10 + 0x0f, 0xb6, 0x4f, 0x01, //0x00001916 movzbl $1(%rdi), %ecx + 0x48, 0xff, 0xc7, //0x0000191a incq %rdi + 0x42, 0x80, 0x3c, 0x09, 0x00, //0x0000191d cmpb $0, (%rcx,%r9) + 0x0f, 0x85, 0xc8, 0xff, 0xff, 0xff, //0x00001922 jne LBB5_69 + 0xe9, 0x1e, 0xfe, 0xff, 0xff, //0x00001928 jmp LBB5_52 + //0x0000192d LBB5_71 + 0x0f, 0xbc, 0xc9, //0x0000192d bsfl %ecx, %ecx + 0x48, 0x01, 0xcf, //0x00001930 addq %rcx, %rdi + 0x49, 0x29, 0xca, //0x00001933 subq %rcx, %r10 + 0x48, 0x01, 0xcb, //0x00001936 addq %rcx, %rbx + 0xe9, 0xa3, 0xff, 0xff, 0xff, //0x00001939 jmp LBB5_68 + //0x0000193e LBB5_72 + 0x0f, 0xbc, 0xc9, //0x0000193e bsfl %ecx, %ecx + 0x48, 0x8d, 0x51, 0x04, //0x00001941 leaq $4(%rcx), %rdx + 0x48, 0x8d, 0x7c, 0x0f, 0x04, //0x00001945 leaq $4(%rdi,%rcx), %rdi + 0x49, 0x29, 0xd2, //0x0000194a subq %rdx, %r10 + 0x48, 0x8d, 0x5c, 0x0b, 0x04, //0x0000194d leaq $4(%rbx,%rcx), %rbx + 0xe9, 0x8a, 0xff, 0xff, 0xff, //0x00001952 jmp LBB5_68 + //0x00001957 LBB5_73 + 0x4c, 0x29, 0xe3, //0x00001957 subq %r12, %rbx + 0x49, 0x89, 0x1b, //0x0000195a movq %rbx, (%r11) + 0xe9, 0x0f, 0x00, 0x00, 0x00, //0x0000195d jmp LBB5_77 + //0x00001962 LBB5_75 + 0x4d, 0x29, 0xe7, //0x00001962 subq %r12, %r15 + 0x4d, 0x89, 0x3b, //0x00001965 movq %r15, (%r11) + 0x49, 0xf7, 0xd2, //0x00001968 notq %r10 + 0x49, 0x01, 0xfa, //0x0000196b addq %rdi, %r10 + //0x0000196e LBB5_76 + 0x4c, 0x89, 0xd0, //0x0000196e movq %r10, %rax + //0x00001971 LBB5_77 + 0x48, 0x83, 0xc4, 0x08, //0x00001971 addq $8, %rsp + 0x5b, //0x00001975 popq %rbx + 0x41, 0x5c, //0x00001976 popq %r12 + 0x41, 0x5d, //0x00001978 popq %r13 + 0x41, 0x5e, //0x0000197a popq %r14 + 0x41, 0x5f, //0x0000197c popq %r15 + 0x5d, //0x0000197e popq %rbp + 0xc3, //0x0000197f retq + //0x00001980 LBB5_78 + 0x4d, 0x29, 0xe7, //0x00001980 subq %r12, %r15 + 0x49, 0xf7, 0xd1, //0x00001983 notq %r9 + 0x4d, 0x01, 0xcf, //0x00001986 addq %r9, %r15 + 0x4d, 0x89, 0x3b, //0x00001989 movq %r15, (%r11) + 0x49, 0x29, 0xfa, //0x0000198c subq %rdi, %r10 + 0x4d, 0x01, 0xca, //0x0000198f addq %r9, %r10 + 0x49, 0xf7, 0xd2, //0x00001992 notq %r10 + 0xe9, 0xd4, 0xff, 0xff, 0xff, //0x00001995 jmp LBB5_76 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000199a .p2align 4, 0x00 + //0x000019a0 LCPI6_0 + 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x000019a0 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + //0x000019b0 .p2align 4, 0x90 + //0x000019b0 _unquote + 0x55, //0x000019b0 pushq %rbp + 0x48, 0x89, 0xe5, //0x000019b1 movq %rsp, %rbp + 0x41, 0x57, //0x000019b4 pushq %r15 + 0x41, 0x56, //0x000019b6 pushq %r14 + 0x41, 0x55, //0x000019b8 pushq %r13 + 0x41, 0x54, //0x000019ba pushq %r12 + 0x53, //0x000019bc pushq %rbx + 0x48, 0x83, 0xec, 0x28, //0x000019bd subq $40, %rsp + 0x48, 0x85, 0xf6, //0x000019c1 testq %rsi, %rsi + 0x0f, 0x84, 0x6e, 0x06, 0x00, 0x00, //0x000019c4 je LBB6_82 + 0x49, 0x89, 0xf3, //0x000019ca movq %rsi, %r11 + 0x48, 0x89, 0x4d, 0xc8, //0x000019cd movq %rcx, $-56(%rbp) + 0x4c, 0x89, 0xc0, //0x000019d1 movq %r8, %rax + 0x4c, 0x89, 0x45, 0xb8, //0x000019d4 movq %r8, $-72(%rbp) + 0x45, 0x89, 0xc2, //0x000019d8 movl %r8d, %r10d + 0x41, 0x83, 0xe2, 0x01, //0x000019db andl $1, %r10d + 0x4c, 0x8d, 0x05, 0xfa, 0xed, 0x00, 0x00, //0x000019df leaq $60922(%rip), %r8 /* __UnquoteTab+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x05, 0xb2, 0xff, 0xff, 0xff, //0x000019e6 vmovdqa $-78(%rip), %xmm0 /* LCPI6_0+0(%rip) */ + 0x49, 0x89, 0xf9, //0x000019ee movq %rdi, %r9 + 0x49, 0x89, 0xf5, //0x000019f1 movq %rsi, %r13 + 0x48, 0x89, 0xd0, //0x000019f4 movq %rdx, %rax + //0x000019f7 LBB6_2 + 0x41, 0x80, 0x39, 0x5c, //0x000019f7 cmpb $92, (%r9) + 0x0f, 0x85, 0x0f, 0x00, 0x00, 0x00, //0x000019fb jne LBB6_4 + 0x31, 0xf6, //0x00001a01 xorl %esi, %esi + 0xe9, 0xc8, 0x00, 0x00, 0x00, //0x00001a03 jmp LBB6_13 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001a08 .p2align 4, 0x90 + //0x00001a10 LBB6_4 + 0x4d, 0x89, 0xef, //0x00001a10 movq %r13, %r15 + 0x48, 0x89, 0xc6, //0x00001a13 movq %rax, %rsi + 0x4d, 0x89, 0xce, //0x00001a16 movq %r9, %r14 + 0x49, 0x83, 0xfd, 0x10, //0x00001a19 cmpq $16, %r13 + 0x0f, 0x8c, 0x3d, 0x00, 0x00, 0x00, //0x00001a1d jl LBB6_7 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001a23 .p2align 4, 0x90 + //0x00001a30 LBB6_5 + 0xc4, 0xc1, 0x7a, 0x6f, 0x0e, //0x00001a30 vmovdqu (%r14), %xmm1 + 0xc5, 0xfa, 0x7f, 0x0e, //0x00001a35 vmovdqu %xmm1, (%rsi) + 0xc5, 0xf1, 0x74, 0xc8, //0x00001a39 vpcmpeqb %xmm0, %xmm1, %xmm1 + 0xc5, 0xf9, 0xd7, 0xd9, //0x00001a3d vpmovmskb %xmm1, %ebx + 0x66, 0x85, 0xdb, //0x00001a41 testw %bx, %bx + 0x0f, 0x85, 0x60, 0x00, 0x00, 0x00, //0x00001a44 jne LBB6_12 + 0x49, 0x83, 0xc6, 0x10, //0x00001a4a addq $16, %r14 + 0x48, 0x83, 0xc6, 0x10, //0x00001a4e addq $16, %rsi + 0x49, 0x83, 0xff, 0x1f, //0x00001a52 cmpq $31, %r15 + 0x4d, 0x8d, 0x7f, 0xf0, //0x00001a56 leaq $-16(%r15), %r15 + 0x0f, 0x8f, 0xd0, 0xff, 0xff, 0xff, //0x00001a5a jg LBB6_5 + //0x00001a60 LBB6_7 + 0x4d, 0x85, 0xff, //0x00001a60 testq %r15, %r15 + 0x0f, 0x84, 0xd5, 0x05, 0x00, 0x00, //0x00001a63 je LBB6_83 + 0x31, 0xdb, //0x00001a69 xorl %ebx, %ebx + 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001a6b .p2align 4, 0x90 + //0x00001a70 LBB6_9 + 0x41, 0x0f, 0xb6, 0x0c, 0x1e, //0x00001a70 movzbl (%r14,%rbx), %ecx + 0x80, 0xf9, 0x5c, //0x00001a75 cmpb $92, %cl + 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x00001a78 je LBB6_11 + 0x88, 0x0c, 0x1e, //0x00001a7e movb %cl, (%rsi,%rbx) + 0x48, 0xff, 0xc3, //0x00001a81 incq %rbx + 0x49, 0x39, 0xdf, //0x00001a84 cmpq %rbx, %r15 + 0x0f, 0x85, 0xe3, 0xff, 0xff, 0xff, //0x00001a87 jne LBB6_9 + 0xe9, 0xac, 0x05, 0x00, 0x00, //0x00001a8d jmp LBB6_83 + //0x00001a92 LBB6_11 + 0x49, 0x01, 0xde, //0x00001a92 addq %rbx, %r14 + 0x4d, 0x29, 0xce, //0x00001a95 subq %r9, %r14 + 0x4c, 0x89, 0xf6, //0x00001a98 movq %r14, %rsi + 0x48, 0x83, 0xfe, 0xff, //0x00001a9b cmpq $-1, %rsi + 0x0f, 0x85, 0x2b, 0x00, 0x00, 0x00, //0x00001a9f jne LBB6_13 + 0xe9, 0x94, 0x05, 0x00, 0x00, //0x00001aa5 jmp LBB6_83 + //0x00001aaa LBB6_12 + 0x0f, 0xb7, 0xcb, //0x00001aaa movzwl %bx, %ecx + 0x4d, 0x29, 0xce, //0x00001aad subq %r9, %r14 + 0x48, 0x0f, 0xbc, 0xf1, //0x00001ab0 bsfq %rcx, %rsi + 0x4c, 0x01, 0xf6, //0x00001ab4 addq %r14, %rsi + 0x48, 0x83, 0xfe, 0xff, //0x00001ab7 cmpq $-1, %rsi + 0x0f, 0x84, 0x7d, 0x05, 0x00, 0x00, //0x00001abb je LBB6_83 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001ac1 .p2align 4, 0x90 + //0x00001ad0 LBB6_13 + 0x48, 0x8d, 0x4e, 0x02, //0x00001ad0 leaq $2(%rsi), %rcx + 0x49, 0x29, 0xcd, //0x00001ad4 subq %rcx, %r13 + 0x0f, 0x88, 0x2a, 0x06, 0x00, 0x00, //0x00001ad7 js LBB6_94 + 0x4d, 0x8d, 0x4c, 0x31, 0x02, //0x00001add leaq $2(%r9,%rsi), %r9 + 0x4d, 0x85, 0xd2, //0x00001ae2 testq %r10, %r10 + 0x0f, 0x85, 0xe5, 0x03, 0x00, 0x00, //0x00001ae5 jne LBB6_58 + //0x00001aeb LBB6_15 + 0x48, 0x01, 0xf0, //0x00001aeb addq %rsi, %rax + 0x41, 0x0f, 0xb6, 0x49, 0xff, //0x00001aee movzbl $-1(%r9), %ecx + 0x42, 0x8a, 0x0c, 0x01, //0x00001af3 movb (%rcx,%r8), %cl + 0x80, 0xf9, 0xff, //0x00001af7 cmpb $-1, %cl + 0x0f, 0x84, 0x20, 0x00, 0x00, 0x00, //0x00001afa je LBB6_18 + 0x84, 0xc9, //0x00001b00 testb %cl, %cl + 0x0f, 0x84, 0x12, 0x06, 0x00, 0x00, //0x00001b02 je LBB6_95 + 0x88, 0x08, //0x00001b08 movb %cl, (%rax) + 0x48, 0xff, 0xc0, //0x00001b0a incq %rax + 0xe9, 0xb0, 0x03, 0x00, 0x00, //0x00001b0d jmp LBB6_57 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001b12 .p2align 4, 0x90 + //0x00001b20 LBB6_18 + 0x49, 0x83, 0xfd, 0x03, //0x00001b20 cmpq $3, %r13 + 0x0f, 0x8e, 0xdd, 0x05, 0x00, 0x00, //0x00001b24 jle LBB6_94 + 0x41, 0x8b, 0x31, //0x00001b2a movl (%r9), %esi + 0x89, 0xf1, //0x00001b2d movl %esi, %ecx + 0xf7, 0xd1, //0x00001b2f notl %ecx + 0x8d, 0x9e, 0xd0, 0xcf, 0xcf, 0xcf, //0x00001b31 leal $-808464432(%rsi), %ebx + 0x81, 0xe1, 0x80, 0x80, 0x80, 0x80, //0x00001b37 andl $-2139062144, %ecx + 0x85, 0xd9, //0x00001b3d testl %ebx, %ecx + 0x0f, 0x85, 0x0e, 0x05, 0x00, 0x00, //0x00001b3f jne LBB6_85 + 0x8d, 0x9e, 0x19, 0x19, 0x19, 0x19, //0x00001b45 leal $421075225(%rsi), %ebx + 0x09, 0xf3, //0x00001b4b orl %esi, %ebx + 0xf7, 0xc3, 0x80, 0x80, 0x80, 0x80, //0x00001b4d testl $-2139062144, %ebx + 0x0f, 0x85, 0xfa, 0x04, 0x00, 0x00, //0x00001b53 jne LBB6_85 + 0x89, 0xf3, //0x00001b59 movl %esi, %ebx + 0x81, 0xe3, 0x7f, 0x7f, 0x7f, 0x7f, //0x00001b5b andl $2139062143, %ebx + 0x41, 0xbe, 0xc0, 0xc0, 0xc0, 0xc0, //0x00001b61 movl $-1061109568, %r14d + 0x41, 0x29, 0xde, //0x00001b67 subl %ebx, %r14d + 0x44, 0x8d, 0xbb, 0x46, 0x46, 0x46, 0x46, //0x00001b6a leal $1179010630(%rbx), %r15d + 0x41, 0x21, 0xce, //0x00001b71 andl %ecx, %r14d + 0x45, 0x85, 0xfe, //0x00001b74 testl %r15d, %r14d + 0x0f, 0x85, 0xd6, 0x04, 0x00, 0x00, //0x00001b77 jne LBB6_85 + 0x41, 0xbe, 0xe0, 0xe0, 0xe0, 0xe0, //0x00001b7d movl $-522133280, %r14d + 0x41, 0x29, 0xde, //0x00001b83 subl %ebx, %r14d + 0x81, 0xc3, 0x39, 0x39, 0x39, 0x39, //0x00001b86 addl $960051513, %ebx + 0x44, 0x21, 0xf1, //0x00001b8c andl %r14d, %ecx + 0x85, 0xd9, //0x00001b8f testl %ebx, %ecx + 0x0f, 0x85, 0xbc, 0x04, 0x00, 0x00, //0x00001b91 jne LBB6_85 + 0x0f, 0xce, //0x00001b97 bswapl %esi + 0x89, 0xf1, //0x00001b99 movl %esi, %ecx + 0xc1, 0xe9, 0x04, //0x00001b9b shrl $4, %ecx + 0xf7, 0xd1, //0x00001b9e notl %ecx + 0x81, 0xe1, 0x01, 0x01, 0x01, 0x01, //0x00001ba0 andl $16843009, %ecx + 0x8d, 0x0c, 0xc9, //0x00001ba6 leal (%rcx,%rcx,8), %ecx + 0x81, 0xe6, 0x0f, 0x0f, 0x0f, 0x0f, //0x00001ba9 andl $252645135, %esi + 0x01, 0xce, //0x00001baf addl %ecx, %esi + 0x89, 0xf1, //0x00001bb1 movl %esi, %ecx + 0xc1, 0xe9, 0x04, //0x00001bb3 shrl $4, %ecx + 0x09, 0xf1, //0x00001bb6 orl %esi, %ecx + 0x44, 0x0f, 0xb6, 0xf9, //0x00001bb8 movzbl %cl, %r15d + 0xc1, 0xe9, 0x08, //0x00001bbc shrl $8, %ecx + 0x81, 0xe1, 0x00, 0xff, 0x00, 0x00, //0x00001bbf andl $65280, %ecx + 0x41, 0x09, 0xcf, //0x00001bc5 orl %ecx, %r15d + 0x4d, 0x8d, 0x75, 0xfc, //0x00001bc8 leaq $-4(%r13), %r14 + 0x41, 0x81, 0xff, 0x80, 0x00, 0x00, 0x00, //0x00001bcc cmpl $128, %r15d + 0x0f, 0x82, 0x46, 0x03, 0x00, 0x00, //0x00001bd3 jb LBB6_66 + 0x45, 0x31, 0xe4, //0x00001bd9 xorl %r12d, %r12d + 0x4d, 0x85, 0xd2, //0x00001bdc testq %r10, %r10 + 0x0f, 0x84, 0x5b, 0x01, 0x00, 0x00, //0x00001bdf je LBB6_40 + //0x00001be5 LBB6_25 + 0x41, 0x81, 0xff, 0x00, 0x08, 0x00, 0x00, //0x00001be5 cmpl $2048, %r15d + 0x0f, 0x82, 0x3c, 0x03, 0x00, 0x00, //0x00001bec jb LBB6_68 + 0x44, 0x89, 0xf9, //0x00001bf2 movl %r15d, %ecx + 0x81, 0xe1, 0x00, 0xf8, 0xff, 0xff, //0x00001bf5 andl $-2048, %ecx + 0x81, 0xf9, 0x00, 0xd8, 0x00, 0x00, //0x00001bfb cmpl $55296, %ecx + 0x0f, 0x85, 0x89, 0x02, 0x00, 0x00, //0x00001c01 jne LBB6_54 + 0x4d, 0x85, 0xf6, //0x00001c07 testq %r14, %r14 + 0x0f, 0x8e, 0x6b, 0x03, 0x00, 0x00, //0x00001c0a jle LBB6_72 + 0x43, 0x80, 0x7c, 0x21, 0x04, 0x5c, //0x00001c10 cmpb $92, $4(%r9,%r12) + 0x0f, 0x85, 0x6e, 0x03, 0x00, 0x00, //0x00001c16 jne LBB6_73 + 0x41, 0x81, 0xff, 0xff, 0xdb, 0x00, 0x00, //0x00001c1c cmpl $56319, %r15d + 0x0f, 0x87, 0x34, 0x03, 0x00, 0x00, //0x00001c23 ja LBB6_70 + 0x49, 0x83, 0xfe, 0x07, //0x00001c29 cmpq $7, %r14 + 0x0f, 0x8c, 0x2a, 0x03, 0x00, 0x00, //0x00001c2d jl LBB6_70 + 0x43, 0x80, 0x7c, 0x21, 0x05, 0x5c, //0x00001c33 cmpb $92, $5(%r9,%r12) + 0x0f, 0x85, 0x1e, 0x03, 0x00, 0x00, //0x00001c39 jne LBB6_70 + 0x43, 0x80, 0x7c, 0x21, 0x06, 0x75, //0x00001c3f cmpb $117, $6(%r9,%r12) + 0x0f, 0x85, 0x12, 0x03, 0x00, 0x00, //0x00001c45 jne LBB6_70 + 0x43, 0x8b, 0x74, 0x21, 0x07, //0x00001c4b movl $7(%r9,%r12), %esi + 0x89, 0xf1, //0x00001c50 movl %esi, %ecx + 0xf7, 0xd1, //0x00001c52 notl %ecx + 0x8d, 0x9e, 0xd0, 0xcf, 0xcf, 0xcf, //0x00001c54 leal $-808464432(%rsi), %ebx + 0x81, 0xe1, 0x80, 0x80, 0x80, 0x80, //0x00001c5a andl $-2139062144, %ecx + 0x85, 0xd9, //0x00001c60 testl %ebx, %ecx + 0x0f, 0x85, 0xe8, 0x04, 0x00, 0x00, //0x00001c62 jne LBB6_99 + 0x8d, 0x9e, 0x19, 0x19, 0x19, 0x19, //0x00001c68 leal $421075225(%rsi), %ebx + 0x09, 0xf3, //0x00001c6e orl %esi, %ebx + 0xf7, 0xc3, 0x80, 0x80, 0x80, 0x80, //0x00001c70 testl $-2139062144, %ebx + 0x0f, 0x85, 0xd4, 0x04, 0x00, 0x00, //0x00001c76 jne LBB6_99 + 0x89, 0xf3, //0x00001c7c movl %esi, %ebx + 0x81, 0xe3, 0x7f, 0x7f, 0x7f, 0x7f, //0x00001c7e andl $2139062143, %ebx + 0xc7, 0x45, 0xd4, 0xc0, 0xc0, 0xc0, 0xc0, //0x00001c84 movl $-1061109568, $-44(%rbp) + 0x29, 0x5d, 0xd4, //0x00001c8b subl %ebx, $-44(%rbp) + 0x48, 0x89, 0x75, 0xb0, //0x00001c8e movq %rsi, $-80(%rbp) + 0x8d, 0xb3, 0x46, 0x46, 0x46, 0x46, //0x00001c92 leal $1179010630(%rbx), %esi + 0x89, 0x75, 0xc4, //0x00001c98 movl %esi, $-60(%rbp) + 0x21, 0x4d, 0xd4, //0x00001c9b andl %ecx, $-44(%rbp) + 0x8b, 0x75, 0xc4, //0x00001c9e movl $-60(%rbp), %esi + 0x85, 0x75, 0xd4, //0x00001ca1 testl %esi, $-44(%rbp) + 0x48, 0x8b, 0x75, 0xb0, //0x00001ca4 movq $-80(%rbp), %rsi + 0x0f, 0x85, 0xa2, 0x04, 0x00, 0x00, //0x00001ca8 jne LBB6_99 + 0xc7, 0x45, 0xd4, 0xe0, 0xe0, 0xe0, 0xe0, //0x00001cae movl $-522133280, $-44(%rbp) + 0x29, 0x5d, 0xd4, //0x00001cb5 subl %ebx, $-44(%rbp) + 0x81, 0xc3, 0x39, 0x39, 0x39, 0x39, //0x00001cb8 addl $960051513, %ebx + 0x23, 0x4d, 0xd4, //0x00001cbe andl $-44(%rbp), %ecx + 0x85, 0xd9, //0x00001cc1 testl %ebx, %ecx + 0x0f, 0x85, 0x87, 0x04, 0x00, 0x00, //0x00001cc3 jne LBB6_99 + 0x0f, 0xce, //0x00001cc9 bswapl %esi + 0x89, 0xf1, //0x00001ccb movl %esi, %ecx + 0xc1, 0xe9, 0x04, //0x00001ccd shrl $4, %ecx + 0xf7, 0xd1, //0x00001cd0 notl %ecx + 0x81, 0xe1, 0x01, 0x01, 0x01, 0x01, //0x00001cd2 andl $16843009, %ecx + 0x8d, 0x0c, 0xc9, //0x00001cd8 leal (%rcx,%rcx,8), %ecx + 0x81, 0xe6, 0x0f, 0x0f, 0x0f, 0x0f, //0x00001cdb andl $252645135, %esi + 0x01, 0xce, //0x00001ce1 addl %ecx, %esi + 0x89, 0xf1, //0x00001ce3 movl %esi, %ecx + 0xc1, 0xe9, 0x04, //0x00001ce5 shrl $4, %ecx + 0x09, 0xf1, //0x00001ce8 orl %esi, %ecx + 0x89, 0xce, //0x00001cea movl %ecx, %esi + 0xc1, 0xee, 0x08, //0x00001cec shrl $8, %esi + 0x81, 0xe6, 0x00, 0xff, 0x00, 0x00, //0x00001cef andl $65280, %esi + 0x0f, 0xb6, 0xd9, //0x00001cf5 movzbl %cl, %ebx + 0x09, 0xf3, //0x00001cf8 orl %esi, %ebx + 0x81, 0xe1, 0x00, 0x00, 0xfc, 0x00, //0x00001cfa andl $16515072, %ecx + 0x81, 0xf9, 0x00, 0x00, 0xdc, 0x00, //0x00001d00 cmpl $14417920, %ecx + 0x0f, 0x84, 0xac, 0x02, 0x00, 0x00, //0x00001d06 je LBB6_77 + 0xf6, 0x45, 0xb8, 0x02, //0x00001d0c testb $2, $-72(%rbp) + 0x0f, 0x84, 0x41, 0x05, 0x00, 0x00, //0x00001d10 je LBB6_114 + 0x49, 0x83, 0xc6, 0xf9, //0x00001d16 addq $-7, %r14 + 0x66, 0xc7, 0x00, 0xef, 0xbf, //0x00001d1a movw $-16401, (%rax) + 0xc6, 0x40, 0x02, 0xbd, //0x00001d1f movb $-67, $2(%rax) + 0x48, 0x83, 0xc0, 0x03, //0x00001d23 addq $3, %rax + 0x49, 0x83, 0xc4, 0x07, //0x00001d27 addq $7, %r12 + 0x41, 0x89, 0xdf, //0x00001d2b movl %ebx, %r15d + 0x83, 0xfb, 0x7f, //0x00001d2e cmpl $127, %ebx + 0x0f, 0x87, 0xae, 0xfe, 0xff, 0xff, //0x00001d31 ja LBB6_25 + 0xe9, 0x44, 0x01, 0x00, 0x00, //0x00001d37 jmp LBB6_53 + 0x90, 0x90, 0x90, 0x90, //0x00001d3c .p2align 4, 0x90 + //0x00001d40 LBB6_40 + 0x41, 0x81, 0xff, 0x00, 0x08, 0x00, 0x00, //0x00001d40 cmpl $2048, %r15d + 0x0f, 0x82, 0xe1, 0x01, 0x00, 0x00, //0x00001d47 jb LBB6_68 + 0x44, 0x89, 0xf9, //0x00001d4d movl %r15d, %ecx + 0x81, 0xe1, 0x00, 0xf8, 0xff, 0xff, //0x00001d50 andl $-2048, %ecx + 0x81, 0xf9, 0x00, 0xd8, 0x00, 0x00, //0x00001d56 cmpl $55296, %ecx + 0x0f, 0x85, 0x2e, 0x01, 0x00, 0x00, //0x00001d5c jne LBB6_54 + 0x41, 0x81, 0xff, 0xff, 0xdb, 0x00, 0x00, //0x00001d62 cmpl $56319, %r15d + 0x0f, 0x87, 0xe4, 0x01, 0x00, 0x00, //0x00001d69 ja LBB6_69 + 0x49, 0x83, 0xfe, 0x06, //0x00001d6f cmpq $6, %r14 + 0x0f, 0x8c, 0xda, 0x01, 0x00, 0x00, //0x00001d73 jl LBB6_69 + 0x43, 0x80, 0x7c, 0x21, 0x04, 0x5c, //0x00001d79 cmpb $92, $4(%r9,%r12) + 0x0f, 0x85, 0xce, 0x01, 0x00, 0x00, //0x00001d7f jne LBB6_69 + 0x43, 0x80, 0x7c, 0x21, 0x05, 0x75, //0x00001d85 cmpb $117, $5(%r9,%r12) + 0x0f, 0x85, 0xc2, 0x01, 0x00, 0x00, //0x00001d8b jne LBB6_69 + 0x43, 0x8b, 0x74, 0x21, 0x06, //0x00001d91 movl $6(%r9,%r12), %esi + 0x89, 0xf1, //0x00001d96 movl %esi, %ecx + 0xf7, 0xd1, //0x00001d98 notl %ecx + 0x8d, 0x9e, 0xd0, 0xcf, 0xcf, 0xcf, //0x00001d9a leal $-808464432(%rsi), %ebx + 0x81, 0xe1, 0x80, 0x80, 0x80, 0x80, //0x00001da0 andl $-2139062144, %ecx + 0x85, 0xd9, //0x00001da6 testl %ebx, %ecx + 0x0f, 0x85, 0x98, 0x03, 0x00, 0x00, //0x00001da8 jne LBB6_98 + 0x8d, 0x9e, 0x19, 0x19, 0x19, 0x19, //0x00001dae leal $421075225(%rsi), %ebx + 0x09, 0xf3, //0x00001db4 orl %esi, %ebx + 0xf7, 0xc3, 0x80, 0x80, 0x80, 0x80, //0x00001db6 testl $-2139062144, %ebx + 0x0f, 0x85, 0x84, 0x03, 0x00, 0x00, //0x00001dbc jne LBB6_98 + 0x89, 0xf3, //0x00001dc2 movl %esi, %ebx + 0x81, 0xe3, 0x7f, 0x7f, 0x7f, 0x7f, //0x00001dc4 andl $2139062143, %ebx + 0xc7, 0x45, 0xd4, 0xc0, 0xc0, 0xc0, 0xc0, //0x00001dca movl $-1061109568, $-44(%rbp) + 0x29, 0x5d, 0xd4, //0x00001dd1 subl %ebx, $-44(%rbp) + 0x48, 0x89, 0x75, 0xb0, //0x00001dd4 movq %rsi, $-80(%rbp) + 0x8d, 0xb3, 0x46, 0x46, 0x46, 0x46, //0x00001dd8 leal $1179010630(%rbx), %esi + 0x89, 0x75, 0xc4, //0x00001dde movl %esi, $-60(%rbp) + 0x21, 0x4d, 0xd4, //0x00001de1 andl %ecx, $-44(%rbp) + 0x8b, 0x75, 0xc4, //0x00001de4 movl $-60(%rbp), %esi + 0x85, 0x75, 0xd4, //0x00001de7 testl %esi, $-44(%rbp) + 0x48, 0x8b, 0x75, 0xb0, //0x00001dea movq $-80(%rbp), %rsi + 0x0f, 0x85, 0x52, 0x03, 0x00, 0x00, //0x00001dee jne LBB6_98 + 0xc7, 0x45, 0xd4, 0xe0, 0xe0, 0xe0, 0xe0, //0x00001df4 movl $-522133280, $-44(%rbp) + 0x29, 0x5d, 0xd4, //0x00001dfb subl %ebx, $-44(%rbp) + 0x81, 0xc3, 0x39, 0x39, 0x39, 0x39, //0x00001dfe addl $960051513, %ebx + 0x23, 0x4d, 0xd4, //0x00001e04 andl $-44(%rbp), %ecx + 0x85, 0xd9, //0x00001e07 testl %ebx, %ecx + 0x0f, 0x85, 0x37, 0x03, 0x00, 0x00, //0x00001e09 jne LBB6_98 + 0x0f, 0xce, //0x00001e0f bswapl %esi + 0x89, 0xf1, //0x00001e11 movl %esi, %ecx + 0xc1, 0xe9, 0x04, //0x00001e13 shrl $4, %ecx + 0xf7, 0xd1, //0x00001e16 notl %ecx + 0x81, 0xe1, 0x01, 0x01, 0x01, 0x01, //0x00001e18 andl $16843009, %ecx + 0x8d, 0x0c, 0xc9, //0x00001e1e leal (%rcx,%rcx,8), %ecx + 0x81, 0xe6, 0x0f, 0x0f, 0x0f, 0x0f, //0x00001e21 andl $252645135, %esi + 0x01, 0xce, //0x00001e27 addl %ecx, %esi + 0x89, 0xf1, //0x00001e29 movl %esi, %ecx + 0xc1, 0xe9, 0x04, //0x00001e2b shrl $4, %ecx + 0x09, 0xf1, //0x00001e2e orl %esi, %ecx + 0x89, 0xce, //0x00001e30 movl %ecx, %esi + 0xc1, 0xee, 0x08, //0x00001e32 shrl $8, %esi + 0x81, 0xe6, 0x00, 0xff, 0x00, 0x00, //0x00001e35 andl $65280, %esi + 0x0f, 0xb6, 0xd9, //0x00001e3b movzbl %cl, %ebx + 0x09, 0xf3, //0x00001e3e orl %esi, %ebx + 0x81, 0xe1, 0x00, 0x00, 0xfc, 0x00, //0x00001e40 andl $16515072, %ecx + 0x81, 0xf9, 0x00, 0x00, 0xdc, 0x00, //0x00001e46 cmpl $14417920, %ecx + 0x0f, 0x84, 0x55, 0x01, 0x00, 0x00, //0x00001e4c je LBB6_76 + 0xf6, 0x45, 0xb8, 0x02, //0x00001e52 testb $2, $-72(%rbp) + 0x0f, 0x84, 0xf1, 0x03, 0x00, 0x00, //0x00001e56 je LBB6_113 + 0x49, 0x83, 0xc6, 0xfa, //0x00001e5c addq $-6, %r14 + 0x66, 0xc7, 0x00, 0xef, 0xbf, //0x00001e60 movw $-16401, (%rax) + 0xc6, 0x40, 0x02, 0xbd, //0x00001e65 movb $-67, $2(%rax) + 0x48, 0x83, 0xc0, 0x03, //0x00001e69 addq $3, %rax + 0x49, 0x83, 0xc4, 0x06, //0x00001e6d addq $6, %r12 + 0x41, 0x89, 0xdf, //0x00001e71 movl %ebx, %r15d + 0x81, 0xfb, 0x80, 0x00, 0x00, 0x00, //0x00001e74 cmpl $128, %ebx + 0x0f, 0x83, 0xc0, 0xfe, 0xff, 0xff, //0x00001e7a jae LBB6_40 + //0x00001e80 LBB6_53 + 0x4f, 0x8d, 0x4c, 0x21, 0x04, //0x00001e80 leaq $4(%r9,%r12), %r9 + 0x41, 0x89, 0xdf, //0x00001e85 movl %ebx, %r15d + 0xe9, 0x96, 0x00, 0x00, 0x00, //0x00001e88 jmp LBB6_67 + 0x90, 0x90, 0x90, //0x00001e8d .p2align 4, 0x90 + //0x00001e90 LBB6_54 + 0x4f, 0x8d, 0x4c, 0x21, 0x04, //0x00001e90 leaq $4(%r9,%r12), %r9 + 0x44, 0x89, 0xf9, //0x00001e95 movl %r15d, %ecx + 0xc1, 0xe9, 0x0c, //0x00001e98 shrl $12, %ecx + 0x80, 0xc9, 0xe0, //0x00001e9b orb $-32, %cl + 0x88, 0x08, //0x00001e9e movb %cl, (%rax) + 0x44, 0x89, 0xf9, //0x00001ea0 movl %r15d, %ecx + 0xc1, 0xe9, 0x06, //0x00001ea3 shrl $6, %ecx + 0x80, 0xe1, 0x3f, //0x00001ea6 andb $63, %cl + 0x80, 0xc9, 0x80, //0x00001ea9 orb $-128, %cl + 0x88, 0x48, 0x01, //0x00001eac movb %cl, $1(%rax) + 0x41, 0x80, 0xe7, 0x3f, //0x00001eaf andb $63, %r15b + 0x41, 0x80, 0xcf, 0x80, //0x00001eb3 orb $-128, %r15b + 0x44, 0x88, 0x78, 0x02, //0x00001eb7 movb %r15b, $2(%rax) + //0x00001ebb LBB6_55 + 0x48, 0x83, 0xc0, 0x03, //0x00001ebb addq $3, %rax + //0x00001ebf LBB6_56 + 0x4d, 0x89, 0xf5, //0x00001ebf movq %r14, %r13 + //0x00001ec2 LBB6_57 + 0x4d, 0x85, 0xed, //0x00001ec2 testq %r13, %r13 + 0x0f, 0x85, 0x2c, 0xfb, 0xff, 0xff, //0x00001ec5 jne LBB6_2 + 0xe9, 0x63, 0x02, 0x00, 0x00, //0x00001ecb jmp LBB6_96 + //0x00001ed0 LBB6_58 + 0x45, 0x85, 0xed, //0x00001ed0 testl %r13d, %r13d + 0x0f, 0x84, 0x2e, 0x02, 0x00, 0x00, //0x00001ed3 je LBB6_94 + 0x41, 0x80, 0x79, 0xff, 0x5c, //0x00001ed9 cmpb $92, $-1(%r9) + 0x0f, 0x85, 0x57, 0x02, 0x00, 0x00, //0x00001ede jne LBB6_97 + 0x41, 0x80, 0x39, 0x5c, //0x00001ee4 cmpb $92, (%r9) + 0x0f, 0x85, 0x26, 0x00, 0x00, 0x00, //0x00001ee8 jne LBB6_65 + 0x41, 0x83, 0xfd, 0x01, //0x00001eee cmpl $1, %r13d + 0x0f, 0x8e, 0x0f, 0x02, 0x00, 0x00, //0x00001ef2 jle LBB6_94 + 0x41, 0x8a, 0x49, 0x01, //0x00001ef8 movb $1(%r9), %cl + 0x80, 0xf9, 0x22, //0x00001efc cmpb $34, %cl + 0x0f, 0x84, 0x09, 0x00, 0x00, 0x00, //0x00001eff je LBB6_64 + 0x80, 0xf9, 0x5c, //0x00001f05 cmpb $92, %cl + 0x0f, 0x85, 0x0c, 0x03, 0x00, 0x00, //0x00001f08 jne LBB6_109 + //0x00001f0e LBB6_64 + 0x49, 0xff, 0xc1, //0x00001f0e incq %r9 + 0x49, 0xff, 0xcd, //0x00001f11 decq %r13 + //0x00001f14 LBB6_65 + 0x49, 0xff, 0xc1, //0x00001f14 incq %r9 + 0x49, 0xff, 0xcd, //0x00001f17 decq %r13 + 0xe9, 0xcc, 0xfb, 0xff, 0xff, //0x00001f1a jmp LBB6_15 + //0x00001f1f LBB6_66 + 0x49, 0x83, 0xc1, 0x04, //0x00001f1f addq $4, %r9 + //0x00001f23 LBB6_67 + 0x44, 0x88, 0x38, //0x00001f23 movb %r15b, (%rax) + 0x48, 0xff, 0xc0, //0x00001f26 incq %rax + 0xe9, 0x91, 0xff, 0xff, 0xff, //0x00001f29 jmp LBB6_56 + //0x00001f2e LBB6_68 + 0x4f, 0x8d, 0x4c, 0x21, 0x04, //0x00001f2e leaq $4(%r9,%r12), %r9 + 0x44, 0x89, 0xf9, //0x00001f33 movl %r15d, %ecx + 0xc1, 0xe9, 0x06, //0x00001f36 shrl $6, %ecx + 0x80, 0xc9, 0xc0, //0x00001f39 orb $-64, %cl + 0x88, 0x08, //0x00001f3c movb %cl, (%rax) + 0x41, 0x80, 0xe7, 0x3f, //0x00001f3e andb $63, %r15b + 0x41, 0x80, 0xcf, 0x80, //0x00001f42 orb $-128, %r15b + 0x44, 0x88, 0x78, 0x01, //0x00001f46 movb %r15b, $1(%rax) + 0x48, 0x83, 0xc0, 0x02, //0x00001f4a addq $2, %rax + 0xe9, 0x6c, 0xff, 0xff, 0xff, //0x00001f4e jmp LBB6_56 + //0x00001f53 LBB6_69 + 0x4f, 0x8d, 0x4c, 0x21, 0x04, //0x00001f53 leaq $4(%r9,%r12), %r9 + 0xe9, 0x0f, 0x00, 0x00, 0x00, //0x00001f58 jmp LBB6_71 + //0x00001f5d LBB6_70 + 0x4f, 0x8d, 0x4c, 0x21, 0x05, //0x00001f5d leaq $5(%r9,%r12), %r9 + 0x4d, 0x29, 0xe5, //0x00001f62 subq %r12, %r13 + 0x49, 0x83, 0xc5, 0xfb, //0x00001f65 addq $-5, %r13 + 0x4d, 0x89, 0xee, //0x00001f69 movq %r13, %r14 + //0x00001f6c LBB6_71 + 0xf6, 0x45, 0xb8, 0x02, //0x00001f6c testb $2, $-72(%rbp) + 0x0f, 0x85, 0x23, 0x00, 0x00, 0x00, //0x00001f70 jne LBB6_75 + 0xe9, 0xfb, 0x02, 0x00, 0x00, //0x00001f76 jmp LBB6_116 + //0x00001f7b LBB6_72 + 0xf6, 0x45, 0xb8, 0x02, //0x00001f7b testb $2, $-72(%rbp) + 0x0f, 0x85, 0x0f, 0x00, 0x00, 0x00, //0x00001f7f jne LBB6_74 + 0xe9, 0x7d, 0x01, 0x00, 0x00, //0x00001f85 jmp LBB6_94 + //0x00001f8a LBB6_73 + 0xf6, 0x45, 0xb8, 0x02, //0x00001f8a testb $2, $-72(%rbp) + 0x0f, 0x84, 0xef, 0x02, 0x00, 0x00, //0x00001f8e je LBB6_117 + //0x00001f94 LBB6_74 + 0x4f, 0x8d, 0x4c, 0x21, 0x04, //0x00001f94 leaq $4(%r9,%r12), %r9 + //0x00001f99 LBB6_75 + 0x66, 0xc7, 0x00, 0xef, 0xbf, //0x00001f99 movw $-16401, (%rax) + 0xc6, 0x40, 0x02, 0xbd, //0x00001f9e movb $-67, $2(%rax) + 0xe9, 0x14, 0xff, 0xff, 0xff, //0x00001fa2 jmp LBB6_55 + //0x00001fa7 LBB6_76 + 0x4f, 0x8d, 0x4c, 0x21, 0x0a, //0x00001fa7 leaq $10(%r9,%r12), %r9 + 0x4d, 0x29, 0xe5, //0x00001fac subq %r12, %r13 + 0x49, 0x83, 0xc5, 0xf6, //0x00001faf addq $-10, %r13 + 0xe9, 0x0c, 0x00, 0x00, 0x00, //0x00001fb3 jmp LBB6_78 + //0x00001fb8 LBB6_77 + 0x4f, 0x8d, 0x4c, 0x21, 0x0b, //0x00001fb8 leaq $11(%r9,%r12), %r9 + 0x4d, 0x29, 0xe5, //0x00001fbd subq %r12, %r13 + 0x49, 0x83, 0xc5, 0xf5, //0x00001fc0 addq $-11, %r13 + //0x00001fc4 LBB6_78 + 0x41, 0xc1, 0xe7, 0x0a, //0x00001fc4 shll $10, %r15d + 0x41, 0x8d, 0x8c, 0x1f, 0x00, 0x24, 0xa0, 0xfc, //0x00001fc8 leal $-56613888(%r15,%rbx), %ecx + 0x81, 0xf9, 0x00, 0x00, 0x11, 0x00, //0x00001fd0 cmpl $1114112, %ecx + 0x0f, 0x82, 0x1c, 0x00, 0x00, 0x00, //0x00001fd6 jb LBB6_81 + 0xf6, 0x45, 0xb8, 0x02, //0x00001fdc testb $2, $-72(%rbp) + 0x0f, 0x84, 0x4d, 0x02, 0x00, 0x00, //0x00001fe0 je LBB6_111 + 0x66, 0xc7, 0x00, 0xef, 0xbf, //0x00001fe6 movw $-16401, (%rax) + 0xc6, 0x40, 0x02, 0xbd, //0x00001feb movb $-67, $2(%rax) + 0x48, 0x83, 0xc0, 0x03, //0x00001fef addq $3, %rax + 0xe9, 0xca, 0xfe, 0xff, 0xff, //0x00001ff3 jmp LBB6_57 + //0x00001ff8 LBB6_81 + 0x89, 0xce, //0x00001ff8 movl %ecx, %esi + 0xc1, 0xee, 0x12, //0x00001ffa shrl $18, %esi + 0x40, 0x80, 0xce, 0xf0, //0x00001ffd orb $-16, %sil + 0x40, 0x88, 0x30, //0x00002001 movb %sil, (%rax) + 0x89, 0xce, //0x00002004 movl %ecx, %esi + 0xc1, 0xee, 0x0c, //0x00002006 shrl $12, %esi + 0x40, 0x80, 0xe6, 0x3f, //0x00002009 andb $63, %sil + 0x40, 0x80, 0xce, 0x80, //0x0000200d orb $-128, %sil + 0x40, 0x88, 0x70, 0x01, //0x00002011 movb %sil, $1(%rax) + 0x89, 0xce, //0x00002015 movl %ecx, %esi + 0xc1, 0xee, 0x06, //0x00002017 shrl $6, %esi + 0x40, 0x80, 0xe6, 0x3f, //0x0000201a andb $63, %sil + 0x40, 0x80, 0xce, 0x80, //0x0000201e orb $-128, %sil + 0x40, 0x88, 0x70, 0x02, //0x00002022 movb %sil, $2(%rax) + 0x80, 0xe1, 0x3f, //0x00002026 andb $63, %cl + 0x80, 0xc9, 0x80, //0x00002029 orb $-128, %cl + 0x88, 0x48, 0x03, //0x0000202c movb %cl, $3(%rax) + 0x48, 0x83, 0xc0, 0x04, //0x0000202f addq $4, %rax + 0xe9, 0x8a, 0xfe, 0xff, 0xff, //0x00002033 jmp LBB6_57 + //0x00002038 LBB6_82 + 0x45, 0x31, 0xed, //0x00002038 xorl %r13d, %r13d + 0x48, 0x89, 0xd0, //0x0000203b movq %rdx, %rax + //0x0000203e LBB6_83 + 0x4c, 0x01, 0xe8, //0x0000203e addq %r13, %rax + 0x48, 0x29, 0xd0, //0x00002041 subq %rdx, %rax + //0x00002044 LBB6_84 + 0x48, 0x83, 0xc4, 0x28, //0x00002044 addq $40, %rsp + 0x5b, //0x00002048 popq %rbx + 0x41, 0x5c, //0x00002049 popq %r12 + 0x41, 0x5d, //0x0000204b popq %r13 + 0x41, 0x5e, //0x0000204d popq %r14 + 0x41, 0x5f, //0x0000204f popq %r15 + 0x5d, //0x00002051 popq %rbp + 0xc3, //0x00002052 retq + //0x00002053 LBB6_85 + 0x4c, 0x89, 0xca, //0x00002053 movq %r9, %rdx + 0x48, 0x29, 0xfa, //0x00002056 subq %rdi, %rdx + 0x48, 0x8b, 0x7d, 0xc8, //0x00002059 movq $-56(%rbp), %rdi + 0x48, 0x89, 0x17, //0x0000205d movq %rdx, (%rdi) + 0x41, 0x8a, 0x09, //0x00002060 movb (%r9), %cl + 0x8d, 0x71, 0xd0, //0x00002063 leal $-48(%rcx), %esi + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00002066 movq $-2, %rax + 0x40, 0x80, 0xfe, 0x0a, //0x0000206d cmpb $10, %sil + 0x0f, 0x82, 0x0f, 0x00, 0x00, 0x00, //0x00002071 jb LBB6_87 + 0x80, 0xe1, 0xdf, //0x00002077 andb $-33, %cl + 0x80, 0xc1, 0xbf, //0x0000207a addb $-65, %cl + 0x80, 0xf9, 0x05, //0x0000207d cmpb $5, %cl + 0x0f, 0x87, 0xbe, 0xff, 0xff, 0xff, //0x00002080 ja LBB6_84 + //0x00002086 LBB6_87 + 0x48, 0x8d, 0x4a, 0x01, //0x00002086 leaq $1(%rdx), %rcx + 0x48, 0x89, 0x0f, //0x0000208a movq %rcx, (%rdi) + 0x41, 0x8a, 0x49, 0x01, //0x0000208d movb $1(%r9), %cl + 0x8d, 0x71, 0xd0, //0x00002091 leal $-48(%rcx), %esi + 0x40, 0x80, 0xfe, 0x0a, //0x00002094 cmpb $10, %sil + 0x0f, 0x82, 0x0f, 0x00, 0x00, 0x00, //0x00002098 jb LBB6_89 + 0x80, 0xe1, 0xdf, //0x0000209e andb $-33, %cl + 0x80, 0xc1, 0xbf, //0x000020a1 addb $-65, %cl + 0x80, 0xf9, 0x05, //0x000020a4 cmpb $5, %cl + 0x0f, 0x87, 0x97, 0xff, 0xff, 0xff, //0x000020a7 ja LBB6_84 + //0x000020ad LBB6_89 + 0x48, 0x8d, 0x4a, 0x02, //0x000020ad leaq $2(%rdx), %rcx + 0x48, 0x89, 0x0f, //0x000020b1 movq %rcx, (%rdi) + 0x41, 0x8a, 0x49, 0x02, //0x000020b4 movb $2(%r9), %cl + 0x8d, 0x71, 0xd0, //0x000020b8 leal $-48(%rcx), %esi + 0x40, 0x80, 0xfe, 0x0a, //0x000020bb cmpb $10, %sil + 0x0f, 0x82, 0x0f, 0x00, 0x00, 0x00, //0x000020bf jb LBB6_91 + 0x80, 0xe1, 0xdf, //0x000020c5 andb $-33, %cl + 0x80, 0xc1, 0xbf, //0x000020c8 addb $-65, %cl + 0x80, 0xf9, 0x05, //0x000020cb cmpb $5, %cl + 0x0f, 0x87, 0x70, 0xff, 0xff, 0xff, //0x000020ce ja LBB6_84 + //0x000020d4 LBB6_91 + 0x48, 0x8d, 0x4a, 0x03, //0x000020d4 leaq $3(%rdx), %rcx + 0x48, 0x89, 0x0f, //0x000020d8 movq %rcx, (%rdi) + 0x41, 0x8a, 0x49, 0x03, //0x000020db movb $3(%r9), %cl + 0x8d, 0x71, 0xd0, //0x000020df leal $-48(%rcx), %esi + 0x40, 0x80, 0xfe, 0x0a, //0x000020e2 cmpb $10, %sil + 0x0f, 0x82, 0x0f, 0x00, 0x00, 0x00, //0x000020e6 jb LBB6_93 + 0x80, 0xe1, 0xdf, //0x000020ec andb $-33, %cl + 0x80, 0xc1, 0xbf, //0x000020ef addb $-65, %cl + 0x80, 0xf9, 0x05, //0x000020f2 cmpb $5, %cl + 0x0f, 0x87, 0x49, 0xff, 0xff, 0xff, //0x000020f5 ja LBB6_84 + //0x000020fb LBB6_93 + 0x48, 0x83, 0xc2, 0x04, //0x000020fb addq $4, %rdx + 0x48, 0x89, 0x17, //0x000020ff movq %rdx, (%rdi) + 0xe9, 0x3d, 0xff, 0xff, 0xff, //0x00002102 jmp LBB6_84 + //0x00002107 LBB6_94 + 0x48, 0x8b, 0x45, 0xc8, //0x00002107 movq $-56(%rbp), %rax + 0x4c, 0x89, 0x18, //0x0000210b movq %r11, (%rax) + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x0000210e movq $-1, %rax + 0xe9, 0x2a, 0xff, 0xff, 0xff, //0x00002115 jmp LBB6_84 + //0x0000211a LBB6_95 + 0x48, 0xf7, 0xd7, //0x0000211a notq %rdi + 0x49, 0x01, 0xf9, //0x0000211d addq %rdi, %r9 + 0x48, 0x8b, 0x45, 0xc8, //0x00002120 movq $-56(%rbp), %rax + 0x4c, 0x89, 0x08, //0x00002124 movq %r9, (%rax) + 0x48, 0xc7, 0xc0, 0xfd, 0xff, 0xff, 0xff, //0x00002127 movq $-3, %rax + 0xe9, 0x11, 0xff, 0xff, 0xff, //0x0000212e jmp LBB6_84 + //0x00002133 LBB6_96 + 0x45, 0x31, 0xed, //0x00002133 xorl %r13d, %r13d + 0xe9, 0x03, 0xff, 0xff, 0xff, //0x00002136 jmp LBB6_83 + //0x0000213b LBB6_97 + 0x48, 0xf7, 0xd7, //0x0000213b notq %rdi + 0x49, 0x01, 0xf9, //0x0000213e addq %rdi, %r9 + 0xe9, 0xda, 0x00, 0x00, 0x00, //0x00002141 jmp LBB6_110 + //0x00002146 LBB6_98 + 0x4b, 0x8d, 0x74, 0x21, 0x04, //0x00002146 leaq $4(%r9,%r12), %rsi + 0xe9, 0x05, 0x00, 0x00, 0x00, //0x0000214b jmp LBB6_100 + //0x00002150 LBB6_99 + 0x4b, 0x8d, 0x74, 0x21, 0x05, //0x00002150 leaq $5(%r9,%r12), %rsi + //0x00002155 LBB6_100 + 0x48, 0x89, 0xf2, //0x00002155 movq %rsi, %rdx + 0x48, 0x29, 0xfa, //0x00002158 subq %rdi, %rdx + 0x48, 0x83, 0xc2, 0x02, //0x0000215b addq $2, %rdx + 0x48, 0x8b, 0x45, 0xc8, //0x0000215f movq $-56(%rbp), %rax + 0x48, 0x89, 0x10, //0x00002163 movq %rdx, (%rax) + 0x8a, 0x4e, 0x02, //0x00002166 movb $2(%rsi), %cl + 0x8d, 0x79, 0xd0, //0x00002169 leal $-48(%rcx), %edi + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x0000216c movq $-2, %rax + 0x40, 0x80, 0xff, 0x0a, //0x00002173 cmpb $10, %dil + 0x0f, 0x82, 0x0f, 0x00, 0x00, 0x00, //0x00002177 jb LBB6_102 + 0x80, 0xe1, 0xdf, //0x0000217d andb $-33, %cl + 0x80, 0xc1, 0xbf, //0x00002180 addb $-65, %cl + 0x80, 0xf9, 0x05, //0x00002183 cmpb $5, %cl + 0x0f, 0x87, 0xb8, 0xfe, 0xff, 0xff, //0x00002186 ja LBB6_84 + //0x0000218c LBB6_102 + 0x48, 0x8d, 0x4a, 0x01, //0x0000218c leaq $1(%rdx), %rcx + 0x48, 0x8b, 0x7d, 0xc8, //0x00002190 movq $-56(%rbp), %rdi + 0x48, 0x89, 0x0f, //0x00002194 movq %rcx, (%rdi) + 0x8a, 0x4e, 0x03, //0x00002197 movb $3(%rsi), %cl + 0x8d, 0x79, 0xd0, //0x0000219a leal $-48(%rcx), %edi + 0x40, 0x80, 0xff, 0x0a, //0x0000219d cmpb $10, %dil + 0x0f, 0x82, 0x0f, 0x00, 0x00, 0x00, //0x000021a1 jb LBB6_104 + 0x80, 0xe1, 0xdf, //0x000021a7 andb $-33, %cl + 0x80, 0xc1, 0xbf, //0x000021aa addb $-65, %cl + 0x80, 0xf9, 0x05, //0x000021ad cmpb $5, %cl + 0x0f, 0x87, 0x8e, 0xfe, 0xff, 0xff, //0x000021b0 ja LBB6_84 + //0x000021b6 LBB6_104 + 0x48, 0x8d, 0x4a, 0x02, //0x000021b6 leaq $2(%rdx), %rcx + 0x48, 0x8b, 0x7d, 0xc8, //0x000021ba movq $-56(%rbp), %rdi + 0x48, 0x89, 0x0f, //0x000021be movq %rcx, (%rdi) + 0x8a, 0x4e, 0x04, //0x000021c1 movb $4(%rsi), %cl + 0x8d, 0x79, 0xd0, //0x000021c4 leal $-48(%rcx), %edi + 0x40, 0x80, 0xff, 0x0a, //0x000021c7 cmpb $10, %dil + 0x0f, 0x82, 0x0f, 0x00, 0x00, 0x00, //0x000021cb jb LBB6_106 + 0x80, 0xe1, 0xdf, //0x000021d1 andb $-33, %cl + 0x80, 0xc1, 0xbf, //0x000021d4 addb $-65, %cl + 0x80, 0xf9, 0x05, //0x000021d7 cmpb $5, %cl + 0x0f, 0x87, 0x64, 0xfe, 0xff, 0xff, //0x000021da ja LBB6_84 + //0x000021e0 LBB6_106 + 0x48, 0x8d, 0x4a, 0x03, //0x000021e0 leaq $3(%rdx), %rcx + 0x48, 0x8b, 0x7d, 0xc8, //0x000021e4 movq $-56(%rbp), %rdi + 0x48, 0x89, 0x0f, //0x000021e8 movq %rcx, (%rdi) + 0x8a, 0x4e, 0x05, //0x000021eb movb $5(%rsi), %cl + 0x8d, 0x71, 0xd0, //0x000021ee leal $-48(%rcx), %esi + 0x40, 0x80, 0xfe, 0x0a, //0x000021f1 cmpb $10, %sil + 0x0f, 0x82, 0x0f, 0x00, 0x00, 0x00, //0x000021f5 jb LBB6_108 + 0x80, 0xe1, 0xdf, //0x000021fb andb $-33, %cl + 0x80, 0xc1, 0xbf, //0x000021fe addb $-65, %cl + 0x80, 0xf9, 0x05, //0x00002201 cmpb $5, %cl + 0x0f, 0x87, 0x3a, 0xfe, 0xff, 0xff, //0x00002204 ja LBB6_84 + //0x0000220a LBB6_108 + 0x48, 0x83, 0xc2, 0x04, //0x0000220a addq $4, %rdx + 0x48, 0x8b, 0x4d, 0xc8, //0x0000220e movq $-56(%rbp), %rcx + 0x48, 0x89, 0x11, //0x00002212 movq %rdx, (%rcx) + 0xe9, 0x2a, 0xfe, 0xff, 0xff, //0x00002215 jmp LBB6_84 + //0x0000221a LBB6_109 + 0x49, 0x29, 0xf9, //0x0000221a subq %rdi, %r9 + 0x49, 0xff, 0xc1, //0x0000221d incq %r9 + //0x00002220 LBB6_110 + 0x48, 0x8b, 0x45, 0xc8, //0x00002220 movq $-56(%rbp), %rax + 0x4c, 0x89, 0x08, //0x00002224 movq %r9, (%rax) + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00002227 movq $-2, %rax + 0xe9, 0x11, 0xfe, 0xff, 0xff, //0x0000222e jmp LBB6_84 + //0x00002233 LBB6_111 + 0x49, 0x29, 0xf9, //0x00002233 subq %rdi, %r9 + 0x49, 0x83, 0xc1, 0xfc, //0x00002236 addq $-4, %r9 + //0x0000223a LBB6_112 + 0x48, 0x8b, 0x45, 0xc8, //0x0000223a movq $-56(%rbp), %rax + 0x4c, 0x89, 0x08, //0x0000223e movq %r9, (%rax) + 0x48, 0xc7, 0xc0, 0xfc, 0xff, 0xff, 0xff, //0x00002241 movq $-4, %rax + 0xe9, 0xf7, 0xfd, 0xff, 0xff, //0x00002248 jmp LBB6_84 + //0x0000224d LBB6_113 + 0x4b, 0x8d, 0x44, 0x21, 0x0a, //0x0000224d leaq $10(%r9,%r12), %rax + 0xe9, 0x05, 0x00, 0x00, 0x00, //0x00002252 jmp LBB6_115 + //0x00002257 LBB6_114 + 0x4b, 0x8d, 0x44, 0x21, 0x0b, //0x00002257 leaq $11(%r9,%r12), %rax + //0x0000225c LBB6_115 + 0x48, 0x29, 0xf8, //0x0000225c subq %rdi, %rax + 0x48, 0x83, 0xc0, 0xfc, //0x0000225f addq $-4, %rax + 0x48, 0x8b, 0x4d, 0xc8, //0x00002263 movq $-56(%rbp), %rcx + 0x48, 0x89, 0x01, //0x00002267 movq %rax, (%rcx) + 0x48, 0xc7, 0xc0, 0xfc, 0xff, 0xff, 0xff, //0x0000226a movq $-4, %rax + 0xe9, 0xce, 0xfd, 0xff, 0xff, //0x00002271 jmp LBB6_84 + //0x00002276 LBB6_116 + 0x49, 0x8d, 0x44, 0x3a, 0x04, //0x00002276 leaq $4(%r10,%rdi), %rax + 0x49, 0x29, 0xc1, //0x0000227b subq %rax, %r9 + 0xe9, 0xb7, 0xff, 0xff, 0xff, //0x0000227e jmp LBB6_112 + //0x00002283 LBB6_117 + 0x4d, 0x01, 0xe1, //0x00002283 addq %r12, %r9 + 0x49, 0x29, 0xf9, //0x00002286 subq %rdi, %r9 + 0xe9, 0xac, 0xff, 0xff, 0xff, //0x00002289 jmp LBB6_112 + 0x00, 0x00, //0x0000228e .p2align 4, 0x00 + //0x00002290 LCPI7_0 + 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, //0x00002290 QUAD $0x2626262626262626; QUAD $0x2626262626262626 // .space 16, '&&&&&&&&&&&&&&&&' + //0x000022a0 LCPI7_1 + 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, //0x000022a0 QUAD $0xe2e2e2e2e2e2e2e2; QUAD $0xe2e2e2e2e2e2e2e2 // .space 16, '\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2' + //0x000022b0 LCPI7_2 + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, //0x000022b0 QUAD $0x0202020202020202; QUAD $0x0202020202020202 // .space 16, '\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02' + //0x000022c0 LCPI7_3 + 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, //0x000022c0 QUAD $0x3e3e3e3e3e3e3e3e; QUAD $0x3e3e3e3e3e3e3e3e // .space 16, '>>>>>>>>>>>>>>>>' + //0x000022d0 .p2align 4, 0x90 + //0x000022d0 _html_escape + 0x55, //0x000022d0 pushq %rbp + 0x48, 0x89, 0xe5, //0x000022d1 movq %rsp, %rbp + 0x41, 0x57, //0x000022d4 pushq %r15 + 0x41, 0x56, //0x000022d6 pushq %r14 + 0x41, 0x55, //0x000022d8 pushq %r13 + 0x41, 0x54, //0x000022da pushq %r12 + 0x53, //0x000022dc pushq %rbx + 0x48, 0x83, 0xec, 0x18, //0x000022dd subq $24, %rsp + 0x48, 0x89, 0x4d, 0xc0, //0x000022e1 movq %rcx, $-64(%rbp) + 0x49, 0x89, 0xd2, //0x000022e5 movq %rdx, %r10 + 0x48, 0x89, 0x55, 0xc8, //0x000022e8 movq %rdx, $-56(%rbp) + 0x48, 0x89, 0x7d, 0xd0, //0x000022ec movq %rdi, $-48(%rbp) + 0x48, 0x89, 0xf8, //0x000022f0 movq %rdi, %rax + 0x48, 0x85, 0xf6, //0x000022f3 testq %rsi, %rsi + 0x0f, 0x8e, 0x73, 0x04, 0x00, 0x00, //0x000022f6 jle LBB7_59 + 0x48, 0x8b, 0x45, 0xc0, //0x000022fc movq $-64(%rbp), %rax + 0x4c, 0x8b, 0x08, //0x00002300 movq (%rax), %r9 + 0xc5, 0xf9, 0x6f, 0x05, 0x85, 0xff, 0xff, 0xff, //0x00002303 vmovdqa $-123(%rip), %xmm0 /* LCPI7_0+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x0d, 0x8d, 0xff, 0xff, 0xff, //0x0000230b vmovdqa $-115(%rip), %xmm1 /* LCPI7_1+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x15, 0x95, 0xff, 0xff, 0xff, //0x00002313 vmovdqa $-107(%rip), %xmm2 /* LCPI7_2+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x1d, 0x9d, 0xff, 0xff, 0xff, //0x0000231b vmovdqa $-99(%rip), %xmm3 /* LCPI7_3+0(%rip) */ + 0x49, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x50, //0x00002323 movabsq $5764607797912141824, %r14 + 0x4c, 0x8d, 0x1d, 0xac, 0xe5, 0x00, 0x00, //0x0000232d leaq $58796(%rip), %r11 /* __HtmlQuoteTab+0(%rip) */ + 0x4c, 0x8b, 0x7d, 0xd0, //0x00002334 movq $-48(%rbp), %r15 + 0x4c, 0x8b, 0x55, 0xc8, //0x00002338 movq $-56(%rbp), %r10 + 0x90, 0x90, 0x90, 0x90, //0x0000233c .p2align 4, 0x90 + //0x00002340 LBB7_2 + 0x4d, 0x85, 0xc9, //0x00002340 testq %r9, %r9 + 0x0f, 0x8e, 0x45, 0x04, 0x00, 0x00, //0x00002343 jle LBB7_61 + 0x48, 0x83, 0xfe, 0x0f, //0x00002349 cmpq $15, %rsi + 0x0f, 0x9f, 0xc3, //0x0000234d setg %bl + 0x4d, 0x89, 0xcc, //0x00002350 movq %r9, %r12 + 0x4d, 0x89, 0xd0, //0x00002353 movq %r10, %r8 + 0x48, 0x89, 0xf0, //0x00002356 movq %rsi, %rax + 0x4d, 0x89, 0xfd, //0x00002359 movq %r15, %r13 + 0x49, 0x83, 0xf9, 0x10, //0x0000235c cmpq $16, %r9 + 0x0f, 0x8c, 0x7a, 0x00, 0x00, 0x00, //0x00002360 jl LBB7_9 + 0x48, 0x83, 0xfe, 0x10, //0x00002366 cmpq $16, %rsi + 0x0f, 0x8c, 0x70, 0x00, 0x00, 0x00, //0x0000236a jl LBB7_9 + 0x4d, 0x89, 0xfd, //0x00002370 movq %r15, %r13 + 0x48, 0x89, 0xf0, //0x00002373 movq %rsi, %rax + 0x4d, 0x89, 0xd0, //0x00002376 movq %r10, %r8 + 0x4c, 0x89, 0xc9, //0x00002379 movq %r9, %rcx + 0x90, 0x90, 0x90, 0x90, //0x0000237c .p2align 4, 0x90 + //0x00002380 LBB7_6 + 0xc4, 0xc1, 0x7a, 0x6f, 0x65, 0x00, //0x00002380 vmovdqu (%r13), %xmm4 + 0xc5, 0xd9, 0x74, 0xe8, //0x00002386 vpcmpeqb %xmm0, %xmm4, %xmm5 + 0xc5, 0xd9, 0x74, 0xf1, //0x0000238a vpcmpeqb %xmm1, %xmm4, %xmm6 + 0xc5, 0xc9, 0xeb, 0xed, //0x0000238e vpor %xmm5, %xmm6, %xmm5 + 0xc5, 0xd9, 0xeb, 0xf2, //0x00002392 vpor %xmm2, %xmm4, %xmm6 + 0xc5, 0xc9, 0x74, 0xf3, //0x00002396 vpcmpeqb %xmm3, %xmm6, %xmm6 + 0xc5, 0xd1, 0xeb, 0xee, //0x0000239a vpor %xmm6, %xmm5, %xmm5 + 0xc4, 0xc1, 0x7a, 0x7f, 0x20, //0x0000239e vmovdqu %xmm4, (%r8) + 0xc5, 0xf9, 0xd7, 0xd5, //0x000023a3 vpmovmskb %xmm5, %edx + 0x66, 0x85, 0xd2, //0x000023a7 testw %dx, %dx + 0x0f, 0x85, 0x30, 0x01, 0x00, 0x00, //0x000023aa jne LBB7_21 + 0x49, 0x83, 0xc5, 0x10, //0x000023b0 addq $16, %r13 + 0x49, 0x83, 0xc0, 0x10, //0x000023b4 addq $16, %r8 + 0x4c, 0x8d, 0x61, 0xf0, //0x000023b8 leaq $-16(%rcx), %r12 + 0x48, 0x83, 0xf8, 0x1f, //0x000023bc cmpq $31, %rax + 0x0f, 0x9f, 0xc3, //0x000023c0 setg %bl + 0x48, 0x83, 0xf8, 0x20, //0x000023c3 cmpq $32, %rax + 0x48, 0x8d, 0x40, 0xf0, //0x000023c7 leaq $-16(%rax), %rax + 0x0f, 0x8c, 0x0f, 0x00, 0x00, 0x00, //0x000023cb jl LBB7_9 + 0x48, 0x83, 0xf9, 0x1f, //0x000023d1 cmpq $31, %rcx + 0x4c, 0x89, 0xe1, //0x000023d5 movq %r12, %rcx + 0x0f, 0x8f, 0xa2, 0xff, 0xff, 0xff, //0x000023d8 jg LBB7_6 + 0x90, 0x90, //0x000023de .p2align 4, 0x90 + //0x000023e0 LBB7_9 + 0x84, 0xdb, //0x000023e0 testb %bl, %bl + 0x0f, 0x84, 0x68, 0x00, 0x00, 0x00, //0x000023e2 je LBB7_13 + 0x4c, 0x89, 0xf2, //0x000023e8 movq %r14, %rdx + 0xc4, 0xc1, 0x7a, 0x6f, 0x65, 0x00, //0x000023eb vmovdqu (%r13), %xmm4 + 0xc5, 0xd9, 0x74, 0xe8, //0x000023f1 vpcmpeqb %xmm0, %xmm4, %xmm5 + 0xc5, 0xd9, 0x74, 0xf1, //0x000023f5 vpcmpeqb %xmm1, %xmm4, %xmm6 + 0xc5, 0xc9, 0xeb, 0xed, //0x000023f9 vpor %xmm5, %xmm6, %xmm5 + 0xc5, 0xd9, 0xeb, 0xf2, //0x000023fd vpor %xmm2, %xmm4, %xmm6 + 0xc5, 0xc9, 0x74, 0xf3, //0x00002401 vpcmpeqb %xmm3, %xmm6, %xmm6 + 0xc5, 0xd1, 0xeb, 0xee, //0x00002405 vpor %xmm6, %xmm5, %xmm5 + 0xc5, 0xf9, 0xd7, 0xc5, //0x00002409 vpmovmskb %xmm5, %eax + 0x0d, 0x00, 0x00, 0x01, 0x00, //0x0000240d orl $65536, %eax + 0x44, 0x0f, 0xbc, 0xf0, //0x00002412 bsfl %eax, %r14d + 0xc4, 0xe1, 0xf9, 0x7e, 0xe0, //0x00002416 vmovq %xmm4, %rax + 0x4d, 0x39, 0xf4, //0x0000241b cmpq %r14, %r12 + 0x0f, 0x8d, 0xd7, 0x00, 0x00, 0x00, //0x0000241e jge LBB7_22 + 0x49, 0x83, 0xfc, 0x08, //0x00002424 cmpq $8, %r12 + 0x0f, 0x82, 0x09, 0x01, 0x00, 0x00, //0x00002428 jb LBB7_25 + 0x49, 0x89, 0x00, //0x0000242e movq %rax, (%r8) + 0x4d, 0x8d, 0x75, 0x08, //0x00002431 leaq $8(%r13), %r14 + 0x49, 0x83, 0xc0, 0x08, //0x00002435 addq $8, %r8 + 0x49, 0x8d, 0x44, 0x24, 0xf8, //0x00002439 leaq $-8(%r12), %rax + 0x48, 0x83, 0xf8, 0x04, //0x0000243e cmpq $4, %rax + 0x0f, 0x8d, 0xff, 0x00, 0x00, 0x00, //0x00002442 jge LBB7_26 + 0xe9, 0x0c, 0x01, 0x00, 0x00, //0x00002448 jmp LBB7_27 + 0x90, 0x90, 0x90, //0x0000244d .p2align 4, 0x90 + //0x00002450 LBB7_13 + 0x4d, 0x85, 0xe4, //0x00002450 testq %r12, %r12 + 0x0f, 0x8e, 0x67, 0x00, 0x00, 0x00, //0x00002453 jle LBB7_20 + 0x48, 0x85, 0xc0, //0x00002459 testq %rax, %rax + 0x0f, 0x8e, 0x5e, 0x00, 0x00, 0x00, //0x0000245c jle LBB7_20 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002462 .p2align 4, 0x90 + //0x00002470 LBB7_15 + 0x41, 0x0f, 0xb6, 0x4d, 0x00, //0x00002470 movzbl (%r13), %ecx + 0x48, 0x83, 0xf9, 0x3e, //0x00002475 cmpq $62, %rcx + 0x0f, 0x87, 0x0a, 0x00, 0x00, 0x00, //0x00002479 ja LBB7_17 + 0x49, 0x0f, 0xa3, 0xce, //0x0000247f btq %rcx, %r14 + 0x0f, 0x82, 0x9a, 0x00, 0x00, 0x00, //0x00002483 jb LBB7_24 + //0x00002489 LBB7_17 + 0x80, 0xf9, 0xe2, //0x00002489 cmpb $-30, %cl + 0x0f, 0x84, 0x91, 0x00, 0x00, 0x00, //0x0000248c je LBB7_24 + 0x49, 0xff, 0xc5, //0x00002492 incq %r13 + 0x41, 0x88, 0x08, //0x00002495 movb %cl, (%r8) + 0x48, 0x83, 0xf8, 0x02, //0x00002498 cmpq $2, %rax + 0x48, 0x8d, 0x40, 0xff, //0x0000249c leaq $-1(%rax), %rax + 0x0f, 0x8c, 0x1a, 0x00, 0x00, 0x00, //0x000024a0 jl LBB7_20 + 0x49, 0xff, 0xc0, //0x000024a6 incq %r8 + 0x49, 0x83, 0xfc, 0x01, //0x000024a9 cmpq $1, %r12 + 0x4d, 0x8d, 0x64, 0x24, 0xff, //0x000024ad leaq $-1(%r12), %r12 + 0x0f, 0x8f, 0xb8, 0xff, 0xff, 0xff, //0x000024b2 jg LBB7_15 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000024b8 .p2align 4, 0x90 + //0x000024c0 LBB7_20 + 0x4d, 0x29, 0xfd, //0x000024c0 subq %r15, %r13 + 0x48, 0xf7, 0xd8, //0x000024c3 negq %rax + 0x4d, 0x19, 0xe4, //0x000024c6 sbbq %r12, %r12 + 0x4d, 0x31, 0xec, //0x000024c9 xorq %r13, %r12 + 0x4d, 0x85, 0xe4, //0x000024cc testq %r12, %r12 + 0x0f, 0x89, 0x5b, 0x01, 0x00, 0x00, //0x000024cf jns LBB7_37 + 0xe9, 0x72, 0x02, 0x00, 0x00, //0x000024d5 jmp LBB7_57 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000024da .p2align 4, 0x90 + //0x000024e0 LBB7_21 + 0x0f, 0xb7, 0xc2, //0x000024e0 movzwl %dx, %eax + 0x4d, 0x29, 0xfd, //0x000024e3 subq %r15, %r13 + 0x44, 0x0f, 0xbc, 0xe0, //0x000024e6 bsfl %eax, %r12d + 0x4d, 0x01, 0xec, //0x000024ea addq %r13, %r12 + 0x4d, 0x85, 0xe4, //0x000024ed testq %r12, %r12 + 0x0f, 0x89, 0x3a, 0x01, 0x00, 0x00, //0x000024f0 jns LBB7_37 + 0xe9, 0x51, 0x02, 0x00, 0x00, //0x000024f6 jmp LBB7_57 + //0x000024fb LBB7_22 + 0x41, 0x83, 0xfe, 0x08, //0x000024fb cmpl $8, %r14d + 0x0f, 0x82, 0xa9, 0x00, 0x00, 0x00, //0x000024ff jb LBB7_31 + 0x49, 0x89, 0x00, //0x00002505 movq %rax, (%r8) + 0x4d, 0x8d, 0x65, 0x08, //0x00002508 leaq $8(%r13), %r12 + 0x49, 0x83, 0xc0, 0x08, //0x0000250c addq $8, %r8 + 0x49, 0x8d, 0x46, 0xf8, //0x00002510 leaq $-8(%r14), %rax + 0x48, 0x83, 0xf8, 0x04, //0x00002514 cmpq $4, %rax + 0x0f, 0x8d, 0xa0, 0x00, 0x00, 0x00, //0x00002518 jge LBB7_32 + 0xe9, 0xae, 0x00, 0x00, 0x00, //0x0000251e jmp LBB7_33 + //0x00002523 LBB7_24 + 0x4d, 0x29, 0xfd, //0x00002523 subq %r15, %r13 + 0x4d, 0x89, 0xec, //0x00002526 movq %r13, %r12 + 0x4d, 0x85, 0xe4, //0x00002529 testq %r12, %r12 + 0x0f, 0x89, 0xfe, 0x00, 0x00, 0x00, //0x0000252c jns LBB7_37 + 0xe9, 0x15, 0x02, 0x00, 0x00, //0x00002532 jmp LBB7_57 + //0x00002537 LBB7_25 + 0x4d, 0x89, 0xee, //0x00002537 movq %r13, %r14 + 0x4c, 0x89, 0xe0, //0x0000253a movq %r12, %rax + 0x48, 0x83, 0xf8, 0x04, //0x0000253d cmpq $4, %rax + 0x0f, 0x8c, 0x12, 0x00, 0x00, 0x00, //0x00002541 jl LBB7_27 + //0x00002547 LBB7_26 + 0x41, 0x8b, 0x0e, //0x00002547 movl (%r14), %ecx + 0x41, 0x89, 0x08, //0x0000254a movl %ecx, (%r8) + 0x49, 0x83, 0xc6, 0x04, //0x0000254d addq $4, %r14 + 0x49, 0x83, 0xc0, 0x04, //0x00002551 addq $4, %r8 + 0x48, 0x83, 0xc0, 0xfc, //0x00002555 addq $-4, %rax + //0x00002559 LBB7_27 + 0x48, 0x83, 0xf8, 0x02, //0x00002559 cmpq $2, %rax + 0x0f, 0x82, 0x22, 0x00, 0x00, 0x00, //0x0000255d jb LBB7_28 + 0x41, 0x0f, 0xb7, 0x0e, //0x00002563 movzwl (%r14), %ecx + 0x66, 0x41, 0x89, 0x08, //0x00002567 movw %cx, (%r8) + 0x49, 0x83, 0xc6, 0x02, //0x0000256b addq $2, %r14 + 0x49, 0x83, 0xc0, 0x02, //0x0000256f addq $2, %r8 + 0x48, 0x83, 0xc0, 0xfe, //0x00002573 addq $-2, %rax + 0x48, 0x85, 0xc0, //0x00002577 testq %rax, %rax + 0x0f, 0x85, 0x0e, 0x00, 0x00, 0x00, //0x0000257a jne LBB7_29 + 0xe9, 0x0f, 0x00, 0x00, 0x00, //0x00002580 jmp LBB7_30 + //0x00002585 LBB7_28 + 0x48, 0x85, 0xc0, //0x00002585 testq %rax, %rax + 0x0f, 0x84, 0x06, 0x00, 0x00, 0x00, //0x00002588 je LBB7_30 + //0x0000258e LBB7_29 + 0x41, 0x8a, 0x06, //0x0000258e movb (%r14), %al + 0x41, 0x88, 0x00, //0x00002591 movb %al, (%r8) + //0x00002594 LBB7_30 + 0x4d, 0x29, 0xfc, //0x00002594 subq %r15, %r12 + 0x4d, 0x01, 0xec, //0x00002597 addq %r13, %r12 + 0x49, 0xf7, 0xd4, //0x0000259a notq %r12 + 0x49, 0x89, 0xd6, //0x0000259d movq %rdx, %r14 + 0x4d, 0x85, 0xe4, //0x000025a0 testq %r12, %r12 + 0x0f, 0x89, 0x87, 0x00, 0x00, 0x00, //0x000025a3 jns LBB7_37 + 0xe9, 0x9e, 0x01, 0x00, 0x00, //0x000025a9 jmp LBB7_57 + //0x000025ae LBB7_31 + 0x4d, 0x89, 0xec, //0x000025ae movq %r13, %r12 + 0x4c, 0x89, 0xf0, //0x000025b1 movq %r14, %rax + 0x48, 0x83, 0xf8, 0x04, //0x000025b4 cmpq $4, %rax + 0x0f, 0x8c, 0x13, 0x00, 0x00, 0x00, //0x000025b8 jl LBB7_33 + //0x000025be LBB7_32 + 0x41, 0x8b, 0x0c, 0x24, //0x000025be movl (%r12), %ecx + 0x41, 0x89, 0x08, //0x000025c2 movl %ecx, (%r8) + 0x49, 0x83, 0xc4, 0x04, //0x000025c5 addq $4, %r12 + 0x49, 0x83, 0xc0, 0x04, //0x000025c9 addq $4, %r8 + 0x48, 0x83, 0xc0, 0xfc, //0x000025cd addq $-4, %rax + //0x000025d1 LBB7_33 + 0x48, 0x83, 0xf8, 0x02, //0x000025d1 cmpq $2, %rax + 0x0f, 0x82, 0x23, 0x00, 0x00, 0x00, //0x000025d5 jb LBB7_34 + 0x41, 0x0f, 0xb7, 0x0c, 0x24, //0x000025db movzwl (%r12), %ecx + 0x66, 0x41, 0x89, 0x08, //0x000025e0 movw %cx, (%r8) + 0x49, 0x83, 0xc4, 0x02, //0x000025e4 addq $2, %r12 + 0x49, 0x83, 0xc0, 0x02, //0x000025e8 addq $2, %r8 + 0x48, 0x83, 0xc0, 0xfe, //0x000025ec addq $-2, %rax + 0x48, 0x85, 0xc0, //0x000025f0 testq %rax, %rax + 0x0f, 0x85, 0x0e, 0x00, 0x00, 0x00, //0x000025f3 jne LBB7_35 + 0xe9, 0x10, 0x00, 0x00, 0x00, //0x000025f9 jmp LBB7_36 + //0x000025fe LBB7_34 + 0x48, 0x85, 0xc0, //0x000025fe testq %rax, %rax + 0x0f, 0x84, 0x07, 0x00, 0x00, 0x00, //0x00002601 je LBB7_36 + //0x00002607 LBB7_35 + 0x41, 0x8a, 0x04, 0x24, //0x00002607 movb (%r12), %al + 0x41, 0x88, 0x00, //0x0000260b movb %al, (%r8) + //0x0000260e LBB7_36 + 0x4d, 0x29, 0xfd, //0x0000260e subq %r15, %r13 + 0x4d, 0x01, 0xf5, //0x00002611 addq %r14, %r13 + 0x4d, 0x89, 0xec, //0x00002614 movq %r13, %r12 + 0x49, 0x89, 0xd6, //0x00002617 movq %rdx, %r14 + 0x4d, 0x85, 0xe4, //0x0000261a testq %r12, %r12 + 0x0f, 0x88, 0x29, 0x01, 0x00, 0x00, //0x0000261d js LBB7_57 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002623 .p2align 4, 0x90 + //0x00002630 LBB7_37 + 0x4d, 0x01, 0xe7, //0x00002630 addq %r12, %r15 + 0x4d, 0x01, 0xe2, //0x00002633 addq %r12, %r10 + 0x4c, 0x29, 0xe6, //0x00002636 subq %r12, %rsi + 0x0f, 0x8e, 0x2d, 0x01, 0x00, 0x00, //0x00002639 jle LBB7_58 + 0x4d, 0x29, 0xe1, //0x0000263f subq %r12, %r9 + 0x41, 0x8a, 0x0f, //0x00002642 movb (%r15), %cl + 0x80, 0xf9, 0xe2, //0x00002645 cmpb $-30, %cl + 0x0f, 0x84, 0xb1, 0x00, 0x00, 0x00, //0x00002648 je LBB7_51 + 0x4c, 0x89, 0xf8, //0x0000264e movq %r15, %rax + //0x00002651 LBB7_40 + 0x0f, 0xb6, 0xd1, //0x00002651 movzbl %cl, %edx + 0x48, 0xc1, 0xe2, 0x04, //0x00002654 shlq $4, %rdx + 0x4a, 0x8b, 0x3c, 0x1a, //0x00002658 movq (%rdx,%r11), %rdi + 0x48, 0x63, 0xdf, //0x0000265c movslq %edi, %rbx + 0x49, 0x29, 0xd9, //0x0000265f subq %rbx, %r9 + 0x0f, 0x8c, 0x1b, 0x01, 0x00, 0x00, //0x00002662 jl LBB7_60 + 0x48, 0xc1, 0xe7, 0x20, //0x00002668 shlq $32, %rdi + 0x4e, 0x8d, 0x7c, 0x1a, 0x08, //0x0000266c leaq $8(%rdx,%r11), %r15 + 0x48, 0xb9, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, //0x00002671 movabsq $12884901889, %rcx + 0x48, 0x39, 0xcf, //0x0000267b cmpq %rcx, %rdi + 0x0f, 0x8c, 0x2c, 0x00, 0x00, 0x00, //0x0000267e jl LBB7_43 + 0x41, 0x8b, 0x0f, //0x00002684 movl (%r15), %ecx + 0x41, 0x89, 0x0a, //0x00002687 movl %ecx, (%r10) + 0x4e, 0x8d, 0x7c, 0x1a, 0x0c, //0x0000268a leaq $12(%rdx,%r11), %r15 + 0x4d, 0x8d, 0x42, 0x04, //0x0000268f leaq $4(%r10), %r8 + 0x48, 0x8d, 0x7b, 0xfc, //0x00002693 leaq $-4(%rbx), %rdi + 0x48, 0x83, 0xff, 0x02, //0x00002697 cmpq $2, %rdi + 0x0f, 0x83, 0x1f, 0x00, 0x00, 0x00, //0x0000269b jae LBB7_44 + 0xe9, 0x2e, 0x00, 0x00, 0x00, //0x000026a1 jmp LBB7_45 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000026a6 .p2align 4, 0x90 + //0x000026b0 LBB7_43 + 0x4d, 0x89, 0xd0, //0x000026b0 movq %r10, %r8 + 0x48, 0x89, 0xdf, //0x000026b3 movq %rbx, %rdi + 0x48, 0x83, 0xff, 0x02, //0x000026b6 cmpq $2, %rdi + 0x0f, 0x82, 0x14, 0x00, 0x00, 0x00, //0x000026ba jb LBB7_45 + //0x000026c0 LBB7_44 + 0x41, 0x0f, 0xb7, 0x17, //0x000026c0 movzwl (%r15), %edx + 0x66, 0x41, 0x89, 0x10, //0x000026c4 movw %dx, (%r8) + 0x49, 0x83, 0xc7, 0x02, //0x000026c8 addq $2, %r15 + 0x49, 0x83, 0xc0, 0x02, //0x000026cc addq $2, %r8 + 0x48, 0x83, 0xc7, 0xfe, //0x000026d0 addq $-2, %rdi + //0x000026d4 LBB7_45 + 0x48, 0x85, 0xff, //0x000026d4 testq %rdi, %rdi + 0x0f, 0x84, 0x06, 0x00, 0x00, 0x00, //0x000026d7 je LBB7_47 + 0x41, 0x8a, 0x0f, //0x000026dd movb (%r15), %cl + 0x41, 0x88, 0x08, //0x000026e0 movb %cl, (%r8) + //0x000026e3 LBB7_47 + 0x49, 0x01, 0xda, //0x000026e3 addq %rbx, %r10 + //0x000026e6 LBB7_48 + 0x48, 0xff, 0xc0, //0x000026e6 incq %rax + 0x49, 0x89, 0xc7, //0x000026e9 movq %rax, %r15 + 0x48, 0x83, 0xfe, 0x01, //0x000026ec cmpq $1, %rsi + 0x48, 0x8d, 0x76, 0xff, //0x000026f0 leaq $-1(%rsi), %rsi + 0x0f, 0x8f, 0x46, 0xfc, 0xff, 0xff, //0x000026f4 jg LBB7_2 + 0xe9, 0x70, 0x00, 0x00, 0x00, //0x000026fa jmp LBB7_59 + //0x000026ff LBB7_51 + 0x48, 0x83, 0xfe, 0x03, //0x000026ff cmpq $3, %rsi + 0x0f, 0x8c, 0x28, 0x00, 0x00, 0x00, //0x00002703 jl LBB7_55 + 0x41, 0x80, 0x7f, 0x01, 0x80, //0x00002709 cmpb $-128, $1(%r15) + 0x0f, 0x85, 0x1d, 0x00, 0x00, 0x00, //0x0000270e jne LBB7_55 + 0x41, 0x8a, 0x4f, 0x02, //0x00002714 movb $2(%r15), %cl + 0x89, 0xc8, //0x00002718 movl %ecx, %eax + 0x24, 0xfe, //0x0000271a andb $-2, %al + 0x3c, 0xa8, //0x0000271c cmpb $-88, %al + 0x0f, 0x85, 0x0d, 0x00, 0x00, 0x00, //0x0000271e jne LBB7_55 + 0x49, 0x8d, 0x47, 0x02, //0x00002724 leaq $2(%r15), %rax + 0x48, 0x83, 0xc6, 0xfe, //0x00002728 addq $-2, %rsi + 0xe9, 0x20, 0xff, 0xff, 0xff, //0x0000272c jmp LBB7_40 + //0x00002731 LBB7_55 + 0x4d, 0x85, 0xc9, //0x00002731 testq %r9, %r9 + 0x0f, 0x8e, 0x54, 0x00, 0x00, 0x00, //0x00002734 jle LBB7_61 + 0x41, 0xc6, 0x02, 0xe2, //0x0000273a movb $-30, (%r10) + 0x49, 0xff, 0xc2, //0x0000273e incq %r10 + 0x49, 0xff, 0xc9, //0x00002741 decq %r9 + 0x4c, 0x89, 0xf8, //0x00002744 movq %r15, %rax + 0xe9, 0x9a, 0xff, 0xff, 0xff, //0x00002747 jmp LBB7_48 + //0x0000274c LBB7_57 + 0x4c, 0x2b, 0x55, 0xc8, //0x0000274c subq $-56(%rbp), %r10 + 0x49, 0xf7, 0xd4, //0x00002750 notq %r12 + 0x4d, 0x01, 0xe2, //0x00002753 addq %r12, %r10 + 0x48, 0x8b, 0x45, 0xc0, //0x00002756 movq $-64(%rbp), %rax + 0x4c, 0x89, 0x10, //0x0000275a movq %r10, (%rax) + 0x4c, 0x2b, 0x7d, 0xd0, //0x0000275d subq $-48(%rbp), %r15 + 0x4d, 0x01, 0xe7, //0x00002761 addq %r12, %r15 + 0x49, 0xf7, 0xd7, //0x00002764 notq %r15 + 0xe9, 0x29, 0x00, 0x00, 0x00, //0x00002767 jmp LBB7_62 + //0x0000276c LBB7_58 + 0x4c, 0x89, 0xf8, //0x0000276c movq %r15, %rax + //0x0000276f LBB7_59 + 0x4c, 0x2b, 0x55, 0xc8, //0x0000276f subq $-56(%rbp), %r10 + 0x48, 0x8b, 0x4d, 0xc0, //0x00002773 movq $-64(%rbp), %rcx + 0x4c, 0x89, 0x11, //0x00002777 movq %r10, (%rcx) + 0x48, 0x2b, 0x45, 0xd0, //0x0000277a subq $-48(%rbp), %rax + 0xe9, 0x15, 0x00, 0x00, 0x00, //0x0000277e jmp LBB7_63 + //0x00002783 LBB7_60 + 0x4c, 0x2b, 0x55, 0xc8, //0x00002783 subq $-56(%rbp), %r10 + 0x48, 0x8b, 0x45, 0xc0, //0x00002787 movq $-64(%rbp), %rax + 0x4c, 0x89, 0x10, //0x0000278b movq %r10, (%rax) + //0x0000278e LBB7_61 + 0x49, 0xf7, 0xd7, //0x0000278e notq %r15 + 0x4c, 0x03, 0x7d, 0xd0, //0x00002791 addq $-48(%rbp), %r15 + //0x00002795 LBB7_62 + 0x4c, 0x89, 0xf8, //0x00002795 movq %r15, %rax + //0x00002798 LBB7_63 + 0x48, 0x83, 0xc4, 0x18, //0x00002798 addq $24, %rsp + 0x5b, //0x0000279c popq %rbx + 0x41, 0x5c, //0x0000279d popq %r12 + 0x41, 0x5d, //0x0000279f popq %r13 + 0x41, 0x5e, //0x000027a1 popq %r14 + 0x41, 0x5f, //0x000027a3 popq %r15 + 0x5d, //0x000027a5 popq %rbp + 0xc3, //0x000027a6 retq + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000027a7 .p2align 4, 0x90 + //0x000027b0 _atof_eisel_lemire64 + 0x55, //0x000027b0 pushq %rbp + 0x48, 0x89, 0xe5, //0x000027b1 movq %rsp, %rbp + 0x41, 0x57, //0x000027b4 pushq %r15 + 0x41, 0x56, //0x000027b6 pushq %r14 + 0x53, //0x000027b8 pushq %rbx + 0x8d, 0x86, 0x5c, 0x01, 0x00, 0x00, //0x000027b9 leal $348(%rsi), %eax + 0x3d, 0xb7, 0x02, 0x00, 0x00, //0x000027bf cmpl $695, %eax + 0x0f, 0x87, 0x08, 0x01, 0x00, 0x00, //0x000027c4 ja LBB8_1 + 0x49, 0x89, 0xc8, //0x000027ca movq %rcx, %r8 + 0x41, 0x89, 0xd1, //0x000027cd movl %edx, %r9d + 0x48, 0x85, 0xff, //0x000027d0 testq %rdi, %rdi + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x000027d3 je LBB8_4 + 0x4c, 0x0f, 0xbd, 0xd7, //0x000027d9 bsrq %rdi, %r10 + 0x49, 0x83, 0xf2, 0x3f, //0x000027dd xorq $63, %r10 + 0xe9, 0x06, 0x00, 0x00, 0x00, //0x000027e1 jmp LBB8_5 + //0x000027e6 LBB8_4 + 0x41, 0xba, 0x40, 0x00, 0x00, 0x00, //0x000027e6 movl $64, %r10d + //0x000027ec LBB8_5 + 0x44, 0x89, 0xd1, //0x000027ec movl %r10d, %ecx + 0x48, 0xd3, 0xe7, //0x000027ef shlq %cl, %rdi + 0x89, 0xc1, //0x000027f2 movl %eax, %ecx + 0x48, 0xc1, 0xe1, 0x04, //0x000027f4 shlq $4, %rcx + 0x4c, 0x8d, 0x3d, 0x31, 0x6b, 0x00, 0x00, //0x000027f8 leaq $27441(%rip), %r15 /* _POW10_M128_TAB+0(%rip) */ + 0x48, 0x89, 0xf8, //0x000027ff movq %rdi, %rax + 0x4a, 0xf7, 0x64, 0x39, 0x08, //0x00002802 mulq $8(%rcx,%r15) + 0x49, 0x89, 0xc3, //0x00002807 movq %rax, %r11 + 0x49, 0x89, 0xd6, //0x0000280a movq %rdx, %r14 + 0x81, 0xe2, 0xff, 0x01, 0x00, 0x00, //0x0000280d andl $511, %edx + 0x48, 0x89, 0xfb, //0x00002813 movq %rdi, %rbx + 0x48, 0xf7, 0xd3, //0x00002816 notq %rbx + 0x48, 0x39, 0xd8, //0x00002819 cmpq %rbx, %rax + 0x0f, 0x86, 0x42, 0x00, 0x00, 0x00, //0x0000281c jbe LBB8_11 + 0x81, 0xfa, 0xff, 0x01, 0x00, 0x00, //0x00002822 cmpl $511, %edx + 0x0f, 0x85, 0x36, 0x00, 0x00, 0x00, //0x00002828 jne LBB8_11 + 0x48, 0x89, 0xf8, //0x0000282e movq %rdi, %rax + 0x4a, 0xf7, 0x24, 0x39, //0x00002831 mulq (%rcx,%r15) + 0x49, 0x01, 0xd3, //0x00002835 addq %rdx, %r11 + 0x49, 0x83, 0xd6, 0x00, //0x00002838 adcq $0, %r14 + 0x44, 0x89, 0xf2, //0x0000283c movl %r14d, %edx + 0x81, 0xe2, 0xff, 0x01, 0x00, 0x00, //0x0000283f andl $511, %edx + 0x48, 0x39, 0xd8, //0x00002845 cmpq %rbx, %rax + 0x0f, 0x86, 0x16, 0x00, 0x00, 0x00, //0x00002848 jbe LBB8_11 + 0x49, 0x83, 0xfb, 0xff, //0x0000284e cmpq $-1, %r11 + 0x0f, 0x85, 0x0c, 0x00, 0x00, 0x00, //0x00002852 jne LBB8_11 + 0x81, 0xfa, 0xff, 0x01, 0x00, 0x00, //0x00002858 cmpl $511, %edx + 0x0f, 0x84, 0x6e, 0x00, 0x00, 0x00, //0x0000285e je LBB8_1 + //0x00002864 LBB8_11 + 0x4c, 0x89, 0xf7, //0x00002864 movq %r14, %rdi + 0x48, 0xc1, 0xef, 0x3f, //0x00002867 shrq $63, %rdi + 0x8d, 0x4f, 0x09, //0x0000286b leal $9(%rdi), %ecx + 0x49, 0xd3, 0xee, //0x0000286e shrq %cl, %r14 + 0x4c, 0x09, 0xda, //0x00002871 orq %r11, %rdx + 0x0f, 0x85, 0x0f, 0x00, 0x00, 0x00, //0x00002874 jne LBB8_14 + 0x44, 0x89, 0xf0, //0x0000287a movl %r14d, %eax + 0x83, 0xe0, 0x03, //0x0000287d andl $3, %eax + 0x83, 0xf8, 0x01, //0x00002880 cmpl $1, %eax + 0x0f, 0x84, 0x49, 0x00, 0x00, 0x00, //0x00002883 je LBB8_1 + //0x00002889 LBB8_14 + 0x69, 0xc6, 0x6a, 0x52, 0x03, 0x00, //0x00002889 imull $217706, %esi, %eax + 0xc1, 0xf8, 0x10, //0x0000288f sarl $16, %eax + 0x05, 0x3f, 0x04, 0x00, 0x00, //0x00002892 addl $1087, %eax + 0x48, 0x98, //0x00002897 cltq + 0x4c, 0x29, 0xd0, //0x00002899 subq %r10, %rax + 0x48, 0x83, 0xf7, 0x01, //0x0000289c xorq $1, %rdi + 0x48, 0x29, 0xf8, //0x000028a0 subq %rdi, %rax + 0x44, 0x89, 0xf2, //0x000028a3 movl %r14d, %edx + 0x83, 0xe2, 0x01, //0x000028a6 andl $1, %edx + 0x4c, 0x01, 0xf2, //0x000028a9 addq %r14, %rdx + 0x48, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, //0x000028ac movabsq $126100789566373888, %rcx + 0x48, 0x21, 0xd1, //0x000028b6 andq %rdx, %rcx + 0x48, 0x83, 0xf9, 0x01, //0x000028b9 cmpq $1, %rcx + 0x48, 0x83, 0xd8, 0xff, //0x000028bd sbbq $-1, %rax + 0x48, 0x8d, 0x70, 0xff, //0x000028c1 leaq $-1(%rax), %rsi + 0x48, 0x81, 0xfe, 0xfd, 0x07, 0x00, 0x00, //0x000028c5 cmpq $2045, %rsi + 0x0f, 0x86, 0x09, 0x00, 0x00, 0x00, //0x000028cc jbe LBB8_16 + //0x000028d2 LBB8_1 + 0x31, 0xc0, //0x000028d2 xorl %eax, %eax + //0x000028d4 LBB8_17 + 0x5b, //0x000028d4 popq %rbx + 0x41, 0x5e, //0x000028d5 popq %r14 + 0x41, 0x5f, //0x000028d7 popq %r15 + 0x5d, //0x000028d9 popq %rbp + 0xc3, //0x000028da retq + //0x000028db LBB8_16 + 0x48, 0x83, 0xf9, 0x01, //0x000028db cmpq $1, %rcx + 0xb1, 0x02, //0x000028df movb $2, %cl + 0x80, 0xd9, 0x00, //0x000028e1 sbbb $0, %cl + 0x48, 0xd3, 0xea, //0x000028e4 shrq %cl, %rdx + 0x48, 0xc1, 0xe0, 0x34, //0x000028e7 shlq $52, %rax + 0x48, 0xb9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, //0x000028eb movabsq $4503599627370495, %rcx + 0x48, 0x21, 0xd1, //0x000028f5 andq %rdx, %rcx + 0x48, 0x09, 0xc1, //0x000028f8 orq %rax, %rcx + 0x48, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x000028fb movabsq $-9223372036854775808, %rax + 0x48, 0x09, 0xc8, //0x00002905 orq %rcx, %rax + 0x41, 0x83, 0xf9, 0xff, //0x00002908 cmpl $-1, %r9d + 0x48, 0x0f, 0x45, 0xc1, //0x0000290c cmovneq %rcx, %rax + 0x49, 0x89, 0x00, //0x00002910 movq %rax, (%r8) + 0xb0, 0x01, //0x00002913 movb $1, %al + 0xe9, 0xba, 0xff, 0xff, 0xff, //0x00002915 jmp LBB8_17 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000291a .p2align 4, 0x90 + //0x00002920 _decimal_to_f64 + 0x55, //0x00002920 pushq %rbp + 0x48, 0x89, 0xe5, //0x00002921 movq %rsp, %rbp + 0x41, 0x57, //0x00002924 pushq %r15 + 0x41, 0x56, //0x00002926 pushq %r14 + 0x41, 0x55, //0x00002928 pushq %r13 + 0x41, 0x54, //0x0000292a pushq %r12 + 0x53, //0x0000292c pushq %rbx + 0x50, //0x0000292d pushq %rax + 0x48, 0x89, 0xf3, //0x0000292e movq %rsi, %rbx + 0x49, 0x89, 0xfc, //0x00002931 movq %rdi, %r12 + 0x49, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, //0x00002934 movabsq $4503599627370496, %r13 + 0x83, 0x7f, 0x10, 0x00, //0x0000293e cmpl $0, $16(%rdi) + 0x0f, 0x84, 0x30, 0x00, 0x00, 0x00, //0x00002942 je LBB9_4 + 0x49, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x7f, //0x00002948 movabsq $9218868437227405312, %r14 + 0x41, 0x8b, 0x44, 0x24, 0x14, //0x00002952 movl $20(%r12), %eax + 0x45, 0x31, 0xff, //0x00002957 xorl %r15d, %r15d + 0x3d, 0x36, 0x01, 0x00, 0x00, //0x0000295a cmpl $310, %eax + 0x0f, 0x8f, 0x0e, 0x04, 0x00, 0x00, //0x0000295f jg LBB9_78 + 0x3d, 0xb6, 0xfe, 0xff, 0xff, //0x00002965 cmpl $-330, %eax + 0x0f, 0x8d, 0x13, 0x00, 0x00, 0x00, //0x0000296a jge LBB9_5 + 0x45, 0x31, 0xf6, //0x00002970 xorl %r14d, %r14d + 0xe9, 0xfb, 0x03, 0x00, 0x00, //0x00002973 jmp LBB9_78 + //0x00002978 LBB9_4 + 0x45, 0x31, 0xf6, //0x00002978 xorl %r14d, %r14d + 0x45, 0x31, 0xff, //0x0000297b xorl %r15d, %r15d + 0xe9, 0xf0, 0x03, 0x00, 0x00, //0x0000297e jmp LBB9_78 + //0x00002983 LBB9_5 + 0x85, 0xc0, //0x00002983 testl %eax, %eax + 0x48, 0x89, 0x5d, 0xd0, //0x00002985 movq %rbx, $-48(%rbp) + 0x0f, 0x8e, 0xf1, 0x00, 0x00, 0x00, //0x00002989 jle LBB9_22 + 0x45, 0x31, 0xff, //0x0000298f xorl %r15d, %r15d + 0xe9, 0x25, 0x00, 0x00, 0x00, //0x00002992 jmp LBB9_9 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002997 .p2align 4, 0x90 + //0x000029a0 LBB9_7 + 0xf7, 0xdb, //0x000029a0 negl %ebx + 0x4c, 0x89, 0xe7, //0x000029a2 movq %r12, %rdi + 0x89, 0xde, //0x000029a5 movl %ebx, %esi + 0xe8, 0x24, 0x64, 0x00, 0x00, //0x000029a7 callq _right_shift + //0x000029ac LBB9_8 + 0x45, 0x01, 0xf7, //0x000029ac addl %r14d, %r15d + 0x41, 0x8b, 0x44, 0x24, 0x14, //0x000029af movl $20(%r12), %eax + 0x85, 0xc0, //0x000029b4 testl %eax, %eax + 0x0f, 0x8e, 0xc4, 0x00, 0x00, 0x00, //0x000029b6 jle LBB9_22 + //0x000029bc LBB9_9 + 0x41, 0xbe, 0x1b, 0x00, 0x00, 0x00, //0x000029bc movl $27, %r14d + 0x83, 0xf8, 0x08, //0x000029c2 cmpl $8, %eax + 0x0f, 0x8f, 0x0d, 0x00, 0x00, 0x00, //0x000029c5 jg LBB9_11 + 0x89, 0xc0, //0x000029cb movl %eax, %eax + 0x48, 0x8d, 0x0d, 0xec, 0x94, 0x00, 0x00, //0x000029cd leaq $38124(%rip), %rcx /* _POW_TAB+0(%rip) */ + 0x44, 0x8b, 0x34, 0x81, //0x000029d4 movl (%rcx,%rax,4), %r14d + //0x000029d8 LBB9_11 + 0x45, 0x85, 0xf6, //0x000029d8 testl %r14d, %r14d + 0x0f, 0x84, 0xcb, 0xff, 0xff, 0xff, //0x000029db je LBB9_8 + 0x41, 0x83, 0x7c, 0x24, 0x10, 0x00, //0x000029e1 cmpl $0, $16(%r12) + 0x0f, 0x84, 0xbf, 0xff, 0xff, 0xff, //0x000029e7 je LBB9_8 + 0x44, 0x89, 0xf3, //0x000029ed movl %r14d, %ebx + 0xf7, 0xdb, //0x000029f0 negl %ebx + 0x45, 0x85, 0xf6, //0x000029f2 testl %r14d, %r14d + 0x0f, 0x88, 0x35, 0x00, 0x00, 0x00, //0x000029f5 js LBB9_16 + 0x41, 0x83, 0xfe, 0x3d, //0x000029fb cmpl $61, %r14d + 0x0f, 0x8c, 0x9b, 0xff, 0xff, 0xff, //0x000029ff jl LBB9_7 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002a05 .p2align 4, 0x90 + //0x00002a10 LBB9_15 + 0x4c, 0x89, 0xe7, //0x00002a10 movq %r12, %rdi + 0xbe, 0x3c, 0x00, 0x00, 0x00, //0x00002a13 movl $60, %esi + 0xe8, 0xb3, 0x63, 0x00, 0x00, //0x00002a18 callq _right_shift + 0x8d, 0x43, 0x3c, //0x00002a1d leal $60(%rbx), %eax + 0x83, 0xfb, 0x88, //0x00002a20 cmpl $-120, %ebx + 0x89, 0xc3, //0x00002a23 movl %eax, %ebx + 0x0f, 0x8c, 0xe5, 0xff, 0xff, 0xff, //0x00002a25 jl LBB9_15 + 0xe9, 0x70, 0xff, 0xff, 0xff, //0x00002a2b jmp LBB9_7 + //0x00002a30 LBB9_16 + 0x41, 0x83, 0xfe, 0xc3, //0x00002a30 cmpl $-61, %r14d + 0x0f, 0x8f, 0x26, 0x00, 0x00, 0x00, //0x00002a34 jg LBB9_18 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002a3a .p2align 4, 0x90 + //0x00002a40 LBB9_17 + 0x4c, 0x89, 0xe7, //0x00002a40 movq %r12, %rdi + 0xbe, 0x3c, 0x00, 0x00, 0x00, //0x00002a43 movl $60, %esi + 0xe8, 0x93, 0x61, 0x00, 0x00, //0x00002a48 callq _left_shift + 0x8d, 0x73, 0xc4, //0x00002a4d leal $-60(%rbx), %esi + 0x83, 0xfb, 0x78, //0x00002a50 cmpl $120, %ebx + 0x89, 0xf3, //0x00002a53 movl %esi, %ebx + 0x0f, 0x8f, 0xe5, 0xff, 0xff, 0xff, //0x00002a55 jg LBB9_17 + 0xe9, 0x02, 0x00, 0x00, 0x00, //0x00002a5b jmp LBB9_19 + //0x00002a60 LBB9_18 + 0x89, 0xde, //0x00002a60 movl %ebx, %esi + //0x00002a62 LBB9_19 + 0x4c, 0x89, 0xe7, //0x00002a62 movq %r12, %rdi + 0xe8, 0x76, 0x61, 0x00, 0x00, //0x00002a65 callq _left_shift + 0xe9, 0x3d, 0xff, 0xff, 0xff, //0x00002a6a jmp LBB9_8 + 0x90, //0x00002a6f .p2align 4, 0x90 + //0x00002a70 LBB9_20 + 0x4c, 0x89, 0xe7, //0x00002a70 movq %r12, %rdi + 0xe8, 0x68, 0x61, 0x00, 0x00, //0x00002a73 callq _left_shift + //0x00002a78 LBB9_21 + 0x45, 0x29, 0xf7, //0x00002a78 subl %r14d, %r15d + 0x41, 0x8b, 0x44, 0x24, 0x14, //0x00002a7b movl $20(%r12), %eax + //0x00002a80 LBB9_22 + 0x85, 0xc0, //0x00002a80 testl %eax, %eax + 0x0f, 0x88, 0x18, 0x00, 0x00, 0x00, //0x00002a82 js LBB9_25 + 0x0f, 0x85, 0xbe, 0x00, 0x00, 0x00, //0x00002a88 jne LBB9_36 + 0x49, 0x8b, 0x0c, 0x24, //0x00002a8e movq (%r12), %rcx + 0x80, 0x39, 0x35, //0x00002a92 cmpb $53, (%rcx) + 0x0f, 0x8c, 0x14, 0x00, 0x00, 0x00, //0x00002a95 jl LBB9_26 + 0xe9, 0xac, 0x00, 0x00, 0x00, //0x00002a9b jmp LBB9_36 + //0x00002aa0 .p2align 4, 0x90 + //0x00002aa0 LBB9_25 + 0x41, 0xbe, 0x1b, 0x00, 0x00, 0x00, //0x00002aa0 movl $27, %r14d + 0x83, 0xf8, 0xf8, //0x00002aa6 cmpl $-8, %eax + 0x0f, 0x8c, 0x0f, 0x00, 0x00, 0x00, //0x00002aa9 jl LBB9_27 + //0x00002aaf LBB9_26 + 0xf7, 0xd8, //0x00002aaf negl %eax + 0x48, 0x98, //0x00002ab1 cltq + 0x48, 0x8d, 0x0d, 0x06, 0x94, 0x00, 0x00, //0x00002ab3 leaq $37894(%rip), %rcx /* _POW_TAB+0(%rip) */ + 0x44, 0x8b, 0x34, 0x81, //0x00002aba movl (%rcx,%rax,4), %r14d + //0x00002abe LBB9_27 + 0x45, 0x85, 0xf6, //0x00002abe testl %r14d, %r14d + 0x0f, 0x84, 0xb1, 0xff, 0xff, 0xff, //0x00002ac1 je LBB9_21 + 0x41, 0x83, 0x7c, 0x24, 0x10, 0x00, //0x00002ac7 cmpl $0, $16(%r12) + 0x0f, 0x84, 0xa5, 0xff, 0xff, 0xff, //0x00002acd je LBB9_21 + 0x45, 0x85, 0xf6, //0x00002ad3 testl %r14d, %r14d + 0x0f, 0x8e, 0x34, 0x00, 0x00, 0x00, //0x00002ad6 jle LBB9_33 + 0x44, 0x89, 0xf6, //0x00002adc movl %r14d, %esi + 0x41, 0x83, 0xfe, 0x3d, //0x00002adf cmpl $61, %r14d + 0x0f, 0x8c, 0x87, 0xff, 0xff, 0xff, //0x00002ae3 jl LBB9_20 + 0x44, 0x89, 0xf3, //0x00002ae9 movl %r14d, %ebx + 0x90, 0x90, 0x90, 0x90, //0x00002aec .p2align 4, 0x90 + //0x00002af0 LBB9_32 + 0x4c, 0x89, 0xe7, //0x00002af0 movq %r12, %rdi + 0xbe, 0x3c, 0x00, 0x00, 0x00, //0x00002af3 movl $60, %esi + 0xe8, 0xe3, 0x60, 0x00, 0x00, //0x00002af8 callq _left_shift + 0x8d, 0x73, 0xc4, //0x00002afd leal $-60(%rbx), %esi + 0x83, 0xfb, 0x78, //0x00002b00 cmpl $120, %ebx + 0x89, 0xf3, //0x00002b03 movl %esi, %ebx + 0x0f, 0x8f, 0xe5, 0xff, 0xff, 0xff, //0x00002b05 jg LBB9_32 + 0xe9, 0x60, 0xff, 0xff, 0xff, //0x00002b0b jmp LBB9_20 + //0x00002b10 LBB9_33 + 0x44, 0x89, 0xf3, //0x00002b10 movl %r14d, %ebx + 0x41, 0x83, 0xfe, 0xc3, //0x00002b13 cmpl $-61, %r14d + 0x0f, 0x8f, 0x1e, 0x00, 0x00, 0x00, //0x00002b17 jg LBB9_35 + 0x90, 0x90, 0x90, //0x00002b1d .p2align 4, 0x90 + //0x00002b20 LBB9_34 + 0x4c, 0x89, 0xe7, //0x00002b20 movq %r12, %rdi + 0xbe, 0x3c, 0x00, 0x00, 0x00, //0x00002b23 movl $60, %esi + 0xe8, 0xa3, 0x62, 0x00, 0x00, //0x00002b28 callq _right_shift + 0x8d, 0x43, 0x3c, //0x00002b2d leal $60(%rbx), %eax + 0x83, 0xfb, 0x88, //0x00002b30 cmpl $-120, %ebx + 0x89, 0xc3, //0x00002b33 movl %eax, %ebx + 0x0f, 0x8c, 0xe5, 0xff, 0xff, 0xff, //0x00002b35 jl LBB9_34 + //0x00002b3b LBB9_35 + 0xf7, 0xdb, //0x00002b3b negl %ebx + 0x4c, 0x89, 0xe7, //0x00002b3d movq %r12, %rdi + 0x89, 0xde, //0x00002b40 movl %ebx, %esi + 0xe8, 0x89, 0x62, 0x00, 0x00, //0x00002b42 callq _right_shift + 0xe9, 0x2c, 0xff, 0xff, 0xff, //0x00002b47 jmp LBB9_21 + //0x00002b4c LBB9_36 + 0x41, 0x81, 0xff, 0x02, 0xfc, 0xff, 0xff, //0x00002b4c cmpl $-1022, %r15d + 0x0f, 0x8f, 0x4b, 0x00, 0x00, 0x00, //0x00002b53 jg LBB9_42 + 0x41, 0x83, 0x7c, 0x24, 0x10, 0x00, //0x00002b59 cmpl $0, $16(%r12) + 0x48, 0x8b, 0x5d, 0xd0, //0x00002b5f movq $-48(%rbp), %rbx + 0x0f, 0x84, 0x57, 0x00, 0x00, 0x00, //0x00002b63 je LBB9_44 + 0x41, 0x81, 0xff, 0xc6, 0xfb, 0xff, 0xff, //0x00002b69 cmpl $-1082, %r15d + 0x0f, 0x8f, 0x55, 0x00, 0x00, 0x00, //0x00002b70 jg LBB9_45 + 0x41, 0x81, 0xc7, 0xc1, 0x03, 0x00, 0x00, //0x00002b76 addl $961, %r15d + 0x90, 0x90, 0x90, //0x00002b7d .p2align 4, 0x90 + //0x00002b80 LBB9_40 + 0x4c, 0x89, 0xe7, //0x00002b80 movq %r12, %rdi + 0xbe, 0x3c, 0x00, 0x00, 0x00, //0x00002b83 movl $60, %esi + 0xe8, 0x43, 0x62, 0x00, 0x00, //0x00002b88 callq _right_shift + 0x41, 0x83, 0xc7, 0x3c, //0x00002b8d addl $60, %r15d + 0x41, 0x83, 0xff, 0x88, //0x00002b91 cmpl $-120, %r15d + 0x0f, 0x8c, 0xe5, 0xff, 0xff, 0xff, //0x00002b95 jl LBB9_40 + 0x41, 0x83, 0xc7, 0x3c, //0x00002b9b addl $60, %r15d + 0xe9, 0x2e, 0x00, 0x00, 0x00, //0x00002b9f jmp LBB9_46 + //0x00002ba4 LBB9_42 + 0x41, 0x81, 0xff, 0x00, 0x04, 0x00, 0x00, //0x00002ba4 cmpl $1024, %r15d + 0x48, 0x8b, 0x5d, 0xd0, //0x00002bab movq $-48(%rbp), %rbx + 0x0f, 0x8f, 0x87, 0x01, 0x00, 0x00, //0x00002baf jg LBB9_75 + 0x41, 0xff, 0xcf, //0x00002bb5 decl %r15d + 0x45, 0x89, 0xfe, //0x00002bb8 movl %r15d, %r14d + 0xe9, 0x26, 0x00, 0x00, 0x00, //0x00002bbb jmp LBB9_47 + //0x00002bc0 LBB9_44 + 0x41, 0xbe, 0x02, 0xfc, 0xff, 0xff, //0x00002bc0 movl $-1022, %r14d + 0xe9, 0x34, 0x00, 0x00, 0x00, //0x00002bc6 jmp LBB9_49 + //0x00002bcb LBB9_45 + 0x41, 0x81, 0xc7, 0xfd, 0x03, 0x00, 0x00, //0x00002bcb addl $1021, %r15d + //0x00002bd2 LBB9_46 + 0x41, 0xf7, 0xdf, //0x00002bd2 negl %r15d + 0x4c, 0x89, 0xe7, //0x00002bd5 movq %r12, %rdi + 0x44, 0x89, 0xfe, //0x00002bd8 movl %r15d, %esi + 0xe8, 0xf0, 0x61, 0x00, 0x00, //0x00002bdb callq _right_shift + 0x41, 0xbe, 0x02, 0xfc, 0xff, 0xff, //0x00002be0 movl $-1022, %r14d + //0x00002be6 LBB9_47 + 0x41, 0x83, 0x7c, 0x24, 0x10, 0x00, //0x00002be6 cmpl $0, $16(%r12) + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x00002bec je LBB9_49 + 0x4c, 0x89, 0xe7, //0x00002bf2 movq %r12, %rdi + 0xbe, 0x35, 0x00, 0x00, 0x00, //0x00002bf5 movl $53, %esi + 0xe8, 0xe1, 0x5f, 0x00, 0x00, //0x00002bfa callq _left_shift + //0x00002bff LBB9_49 + 0x4d, 0x63, 0x44, 0x24, 0x14, //0x00002bff movslq $20(%r12), %r8 + 0x49, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, //0x00002c04 movq $-1, %r15 + 0x49, 0x83, 0xf8, 0x14, //0x00002c0b cmpq $20, %r8 + 0x0f, 0x8f, 0x3f, 0x01, 0x00, 0x00, //0x00002c0f jg LBB9_77 + 0x44, 0x89, 0xc1, //0x00002c15 movl %r8d, %ecx + 0x85, 0xc9, //0x00002c18 testl %ecx, %ecx + 0x0f, 0x8e, 0x3c, 0x00, 0x00, 0x00, //0x00002c1a jle LBB9_54 + 0x49, 0x63, 0x74, 0x24, 0x10, //0x00002c20 movslq $16(%r12), %rsi + 0x31, 0xd2, //0x00002c25 xorl %edx, %edx + 0x45, 0x31, 0xff, //0x00002c27 xorl %r15d, %r15d + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002c2a .p2align 4, 0x90 + //0x00002c30 LBB9_52 + 0x48, 0x39, 0xf2, //0x00002c30 cmpq %rsi, %rdx + 0x0f, 0x8d, 0x28, 0x00, 0x00, 0x00, //0x00002c33 jge LBB9_55 + 0x4b, 0x8d, 0x04, 0xbf, //0x00002c39 leaq (%r15,%r15,4), %rax + 0x49, 0x8b, 0x3c, 0x24, //0x00002c3d movq (%r12), %rdi + 0x48, 0x0f, 0xbe, 0x3c, 0x17, //0x00002c41 movsbq (%rdi,%rdx), %rdi + 0x4c, 0x8d, 0x7c, 0x47, 0xd0, //0x00002c46 leaq $-48(%rdi,%rax,2), %r15 + 0x48, 0xff, 0xc2, //0x00002c4b incq %rdx + 0x48, 0x39, 0xd1, //0x00002c4e cmpq %rdx, %rcx + 0x0f, 0x85, 0xd9, 0xff, 0xff, 0xff, //0x00002c51 jne LBB9_52 + 0xe9, 0x05, 0x00, 0x00, 0x00, //0x00002c57 jmp LBB9_55 + //0x00002c5c LBB9_54 + 0x31, 0xd2, //0x00002c5c xorl %edx, %edx + 0x45, 0x31, 0xff, //0x00002c5e xorl %r15d, %r15d + //0x00002c61 LBB9_55 + 0x41, 0x39, 0xd0, //0x00002c61 cmpl %edx, %r8d + 0x0f, 0x8e, 0x56, 0x00, 0x00, 0x00, //0x00002c64 jle LBB9_63 + 0x89, 0xcf, //0x00002c6a movl %ecx, %edi + 0x29, 0xd7, //0x00002c6c subl %edx, %edi + 0x89, 0xd6, //0x00002c6e movl %edx, %esi + 0xf7, 0xd6, //0x00002c70 notl %esi + 0x44, 0x01, 0xc6, //0x00002c72 addl %r8d, %esi + 0x83, 0xe7, 0x07, //0x00002c75 andl $7, %edi + 0x0f, 0x84, 0x25, 0x00, 0x00, 0x00, //0x00002c78 je LBB9_60 + 0xf7, 0xdf, //0x00002c7e negl %edi + 0x31, 0xc0, //0x00002c80 xorl %eax, %eax + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002c82 .p2align 4, 0x90 + //0x00002c90 LBB9_58 + 0x4d, 0x01, 0xff, //0x00002c90 addq %r15, %r15 + 0x4f, 0x8d, 0x3c, 0xbf, //0x00002c93 leaq (%r15,%r15,4), %r15 + 0xff, 0xc8, //0x00002c97 decl %eax + 0x39, 0xc7, //0x00002c99 cmpl %eax, %edi + 0x0f, 0x85, 0xef, 0xff, 0xff, 0xff, //0x00002c9b jne LBB9_58 + 0x29, 0xc2, //0x00002ca1 subl %eax, %edx + //0x00002ca3 LBB9_60 + 0x83, 0xfe, 0x07, //0x00002ca3 cmpl $7, %esi + 0x0f, 0x82, 0x14, 0x00, 0x00, 0x00, //0x00002ca6 jb LBB9_63 + 0x89, 0xc8, //0x00002cac movl %ecx, %eax + 0x29, 0xd0, //0x00002cae subl %edx, %eax + //0x00002cb0 .p2align 4, 0x90 + //0x00002cb0 LBB9_62 + 0x4d, 0x69, 0xff, 0x00, 0xe1, 0xf5, 0x05, //0x00002cb0 imulq $100000000, %r15, %r15 + 0x83, 0xc0, 0xf8, //0x00002cb7 addl $-8, %eax + 0x0f, 0x85, 0xf0, 0xff, 0xff, 0xff, //0x00002cba jne LBB9_62 + //0x00002cc0 LBB9_63 + 0x85, 0xc9, //0x00002cc0 testl %ecx, %ecx + 0x0f, 0x88, 0x4c, 0x00, 0x00, 0x00, //0x00002cc2 js LBB9_71 + 0x41, 0x8b, 0x54, 0x24, 0x10, //0x00002cc8 movl $16(%r12), %edx + 0x44, 0x39, 0xc2, //0x00002ccd cmpl %r8d, %edx + 0x0f, 0x8e, 0x3e, 0x00, 0x00, 0x00, //0x00002cd0 jle LBB9_71 + 0x49, 0x8b, 0x34, 0x24, //0x00002cd6 movq (%r12), %rsi + 0x8a, 0x04, 0x0e, //0x00002cda movb (%rsi,%rcx), %al + 0x8d, 0x79, 0x01, //0x00002cdd leal $1(%rcx), %edi + 0x39, 0xd7, //0x00002ce0 cmpl %edx, %edi + 0x0f, 0x85, 0xbf, 0x00, 0x00, 0x00, //0x00002ce2 jne LBB9_72 + 0x3c, 0x35, //0x00002ce8 cmpb $53, %al + 0x0f, 0x85, 0xb7, 0x00, 0x00, 0x00, //0x00002cea jne LBB9_72 + 0x41, 0x83, 0x7c, 0x24, 0x1c, 0x00, //0x00002cf0 cmpl $0, $28(%r12) + 0x0f, 0x95, 0xc2, //0x00002cf6 setne %dl + 0x0f, 0x85, 0x17, 0x00, 0x00, 0x00, //0x00002cf9 jne LBB9_73 + 0x85, 0xc9, //0x00002cff testl %ecx, %ecx + 0x0f, 0x8e, 0x0f, 0x00, 0x00, 0x00, //0x00002d01 jle LBB9_73 + 0x41, 0x8a, 0x54, 0x30, 0xff, //0x00002d07 movb $-1(%r8,%rsi), %dl + 0x80, 0xe2, 0x01, //0x00002d0c andb $1, %dl + 0xe9, 0x02, 0x00, 0x00, 0x00, //0x00002d0f jmp LBB9_73 + //0x00002d14 LBB9_71 + 0x31, 0xd2, //0x00002d14 xorl %edx, %edx + //0x00002d16 LBB9_73 + 0x0f, 0xb6, 0xc2, //0x00002d16 movzbl %dl, %eax + 0x49, 0x01, 0xc7, //0x00002d19 addq %rax, %r15 + 0x48, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, //0x00002d1c movabsq $9007199254740992, %rax + 0x49, 0x39, 0xc7, //0x00002d26 cmpq %rax, %r15 + 0x0f, 0x85, 0x25, 0x00, 0x00, 0x00, //0x00002d29 jne LBB9_77 + 0x41, 0x81, 0xfe, 0xfe, 0x03, 0x00, 0x00, //0x00002d2f cmpl $1022, %r14d + 0x0f, 0x8e, 0x12, 0x00, 0x00, 0x00, //0x00002d36 jle LBB9_76 + //0x00002d3c LBB9_75 + 0x45, 0x31, 0xff, //0x00002d3c xorl %r15d, %r15d + 0x49, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x7f, //0x00002d3f movabsq $9218868437227405312, %r14 + 0xe9, 0x25, 0x00, 0x00, 0x00, //0x00002d49 jmp LBB9_78 + //0x00002d4e LBB9_76 + 0x41, 0xff, 0xc6, //0x00002d4e incl %r14d + 0x4d, 0x89, 0xef, //0x00002d51 movq %r13, %r15 + //0x00002d54 LBB9_77 + 0x4c, 0x89, 0xf8, //0x00002d54 movq %r15, %rax + 0x4c, 0x21, 0xe8, //0x00002d57 andq %r13, %rax + 0x41, 0x81, 0xc6, 0xff, 0x03, 0x00, 0x00, //0x00002d5a addl $1023, %r14d + 0x41, 0x81, 0xe6, 0xff, 0x07, 0x00, 0x00, //0x00002d61 andl $2047, %r14d + 0x49, 0xc1, 0xe6, 0x34, //0x00002d68 shlq $52, %r14 + 0x48, 0x85, 0xc0, //0x00002d6c testq %rax, %rax + 0x4c, 0x0f, 0x44, 0xf0, //0x00002d6f cmoveq %rax, %r14 + //0x00002d73 LBB9_78 + 0x49, 0xff, 0xcd, //0x00002d73 decq %r13 + 0x4d, 0x21, 0xfd, //0x00002d76 andq %r15, %r13 + 0x4d, 0x09, 0xf5, //0x00002d79 orq %r14, %r13 + 0x48, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x00002d7c movabsq $-9223372036854775808, %rax + 0x4c, 0x09, 0xe8, //0x00002d86 orq %r13, %rax + 0x41, 0x83, 0x7c, 0x24, 0x18, 0x00, //0x00002d89 cmpl $0, $24(%r12) + 0x49, 0x0f, 0x44, 0xc5, //0x00002d8f cmoveq %r13, %rax + 0x48, 0x89, 0x03, //0x00002d93 movq %rax, (%rbx) + 0x31, 0xc0, //0x00002d96 xorl %eax, %eax + 0x48, 0x83, 0xc4, 0x08, //0x00002d98 addq $8, %rsp + 0x5b, //0x00002d9c popq %rbx + 0x41, 0x5c, //0x00002d9d popq %r12 + 0x41, 0x5d, //0x00002d9f popq %r13 + 0x41, 0x5e, //0x00002da1 popq %r14 + 0x41, 0x5f, //0x00002da3 popq %r15 + 0x5d, //0x00002da5 popq %rbp + 0xc3, //0x00002da6 retq + //0x00002da7 LBB9_72 + 0x3c, 0x34, //0x00002da7 cmpb $52, %al + 0x0f, 0x9f, 0xc2, //0x00002da9 setg %dl + 0xe9, 0x65, 0xff, 0xff, 0xff, //0x00002dac jmp LBB9_73 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002db1 .p2align 4, 0x90 + //0x00002dc0 _atof_native + 0x55, //0x00002dc0 pushq %rbp + 0x48, 0x89, 0xe5, //0x00002dc1 movq %rsp, %rbp + 0x48, 0x83, 0xec, 0x30, //0x00002dc4 subq $48, %rsp + 0x48, 0xc7, 0x45, 0xd8, 0x00, 0x00, 0x00, 0x00, //0x00002dc8 movq $0, $-40(%rbp) + 0x48, 0x89, 0x55, 0xe0, //0x00002dd0 movq %rdx, $-32(%rbp) + 0x48, 0x89, 0x4d, 0xe8, //0x00002dd4 movq %rcx, $-24(%rbp) + 0x48, 0x85, 0xc9, //0x00002dd8 testq %rcx, %rcx + 0x0f, 0x84, 0x44, 0x00, 0x00, 0x00, //0x00002ddb je LBB10_5 + 0xc6, 0x02, 0x00, //0x00002de1 movb $0, (%rdx) + 0x48, 0x83, 0xf9, 0x01, //0x00002de4 cmpq $1, %rcx + 0x0f, 0x84, 0x37, 0x00, 0x00, 0x00, //0x00002de8 je LBB10_5 + 0xc6, 0x42, 0x01, 0x00, //0x00002dee movb $0, $1(%rdx) + 0x48, 0x83, 0x7d, 0xe8, 0x03, //0x00002df2 cmpq $3, $-24(%rbp) + 0x0f, 0x82, 0x28, 0x00, 0x00, 0x00, //0x00002df7 jb LBB10_5 + 0xb8, 0x02, 0x00, 0x00, 0x00, //0x00002dfd movl $2, %eax + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002e02 .p2align 4, 0x90 + //0x00002e10 LBB10_4 + 0x48, 0x8b, 0x4d, 0xe0, //0x00002e10 movq $-32(%rbp), %rcx + 0xc6, 0x04, 0x01, 0x00, //0x00002e14 movb $0, (%rcx,%rax) + 0x48, 0xff, 0xc0, //0x00002e18 incq %rax + 0x48, 0x39, 0x45, 0xe8, //0x00002e1b cmpq %rax, $-24(%rbp) + 0x0f, 0x87, 0xeb, 0xff, 0xff, 0xff, //0x00002e1f ja LBB10_4 + //0x00002e25 LBB10_5 + 0xc5, 0xf8, 0x57, 0xc0, //0x00002e25 vxorps %xmm0, %xmm0, %xmm0 + 0xc5, 0xf8, 0x11, 0x45, 0xf0, //0x00002e29 vmovups %xmm0, $-16(%rbp) + 0x80, 0x3f, 0x2d, //0x00002e2e cmpb $45, (%rdi) + 0x0f, 0x85, 0x21, 0x00, 0x00, 0x00, //0x00002e31 jne LBB10_6 + 0xc7, 0x45, 0xf8, 0x01, 0x00, 0x00, 0x00, //0x00002e37 movl $1, $-8(%rbp) + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00002e3e movl $1, %eax + 0x48, 0x39, 0xf0, //0x00002e43 cmpq %rsi, %rax + 0x0f, 0x8c, 0x17, 0x00, 0x00, 0x00, //0x00002e46 jl LBB10_9 + //0x00002e4c LBB10_41 + 0xc7, 0x45, 0xf4, 0x00, 0x00, 0x00, 0x00, //0x00002e4c movl $0, $-12(%rbp) + 0xe9, 0xa1, 0x01, 0x00, 0x00, //0x00002e53 jmp LBB10_40 + //0x00002e58 LBB10_6 + 0x31, 0xc0, //0x00002e58 xorl %eax, %eax + 0x48, 0x39, 0xf0, //0x00002e5a cmpq %rsi, %rax + 0x0f, 0x8d, 0xe9, 0xff, 0xff, 0xff, //0x00002e5d jge LBB10_41 + //0x00002e63 LBB10_9 + 0x41, 0xb3, 0x01, //0x00002e63 movb $1, %r11b + 0x45, 0x31, 0xc9, //0x00002e66 xorl %r9d, %r9d + 0x45, 0x31, 0xd2, //0x00002e69 xorl %r10d, %r10d + 0x45, 0x31, 0xc0, //0x00002e6c xorl %r8d, %r8d + 0xe9, 0x25, 0x00, 0x00, 0x00, //0x00002e6f jmp LBB10_10 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002e74 .p2align 4, 0x90 + //0x00002e80 LBB10_13 + 0xff, 0x4d, 0xf4, //0x00002e80 decl $-12(%rbp) + 0x45, 0x31, 0xd2, //0x00002e83 xorl %r10d, %r10d + //0x00002e86 LBB10_22 + 0x48, 0xff, 0xc0, //0x00002e86 incq %rax + 0x48, 0x39, 0xf0, //0x00002e89 cmpq %rsi, %rax + 0x41, 0x0f, 0x9c, 0xc3, //0x00002e8c setl %r11b + 0x48, 0x39, 0xc6, //0x00002e90 cmpq %rax, %rsi + 0x0f, 0x84, 0x8f, 0x00, 0x00, 0x00, //0x00002e93 je LBB10_23 + //0x00002e99 LBB10_10 + 0x0f, 0xb6, 0x0c, 0x07, //0x00002e99 movzbl (%rdi,%rax), %ecx + 0x8d, 0x51, 0xd0, //0x00002e9d leal $-48(%rcx), %edx + 0x80, 0xfa, 0x09, //0x00002ea0 cmpb $9, %dl + 0x0f, 0x87, 0x47, 0x00, 0x00, 0x00, //0x00002ea3 ja LBB10_19 + 0x45, 0x85, 0xd2, //0x00002ea9 testl %r10d, %r10d + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00002eac jne LBB10_14 + 0x80, 0xf9, 0x30, //0x00002eb2 cmpb $48, %cl + 0x0f, 0x84, 0xc5, 0xff, 0xff, 0xff, //0x00002eb5 je LBB10_13 + //0x00002ebb LBB10_14 + 0x4d, 0x63, 0xd1, //0x00002ebb movslq %r9d, %r10 + 0x4c, 0x39, 0x55, 0xe8, //0x00002ebe cmpq %r10, $-24(%rbp) + 0x0f, 0x86, 0x40, 0x00, 0x00, 0x00, //0x00002ec2 jbe LBB10_16 + 0x48, 0x8b, 0x55, 0xe0, //0x00002ec8 movq $-32(%rbp), %rdx + 0x42, 0x88, 0x0c, 0x12, //0x00002ecc movb %cl, (%rdx,%r10) + 0x44, 0x8b, 0x4d, 0xf0, //0x00002ed0 movl $-16(%rbp), %r9d + 0x41, 0xff, 0xc1, //0x00002ed4 incl %r9d + 0x44, 0x89, 0x4d, 0xf0, //0x00002ed7 movl %r9d, $-16(%rbp) + 0x45, 0x89, 0xca, //0x00002edb movl %r9d, %r10d + 0xe9, 0xa3, 0xff, 0xff, 0xff, //0x00002ede jmp LBB10_22 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002ee3 .p2align 4, 0x90 + //0x00002ef0 LBB10_19 + 0x80, 0xf9, 0x2e, //0x00002ef0 cmpb $46, %cl + 0x0f, 0x85, 0x80, 0x00, 0x00, 0x00, //0x00002ef3 jne LBB10_20 + 0x44, 0x89, 0x55, 0xf4, //0x00002ef9 movl %r10d, $-12(%rbp) + 0x41, 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00002efd movl $1, %r8d + 0xe9, 0x7e, 0xff, 0xff, 0xff, //0x00002f03 jmp LBB10_22 + //0x00002f08 LBB10_16 + 0x80, 0xf9, 0x30, //0x00002f08 cmpb $48, %cl + 0x0f, 0x85, 0x08, 0x00, 0x00, 0x00, //0x00002f0b jne LBB10_18 + 0x45, 0x89, 0xca, //0x00002f11 movl %r9d, %r10d + 0xe9, 0x6d, 0xff, 0xff, 0xff, //0x00002f14 jmp LBB10_22 + //0x00002f19 LBB10_18 + 0xc7, 0x45, 0xfc, 0x01, 0x00, 0x00, 0x00, //0x00002f19 movl $1, $-4(%rbp) + 0x45, 0x89, 0xca, //0x00002f20 movl %r9d, %r10d + 0xe9, 0x5e, 0xff, 0xff, 0xff, //0x00002f23 jmp LBB10_22 + //0x00002f28 LBB10_23 + 0x89, 0xf1, //0x00002f28 movl %esi, %ecx + 0x48, 0x89, 0xf0, //0x00002f2a movq %rsi, %rax + 0x45, 0x85, 0xc0, //0x00002f2d testl %r8d, %r8d + 0x0f, 0x85, 0x04, 0x00, 0x00, 0x00, //0x00002f30 jne LBB10_26 + //0x00002f36 LBB10_25 + 0x44, 0x89, 0x4d, 0xf4, //0x00002f36 movl %r9d, $-12(%rbp) + //0x00002f3a LBB10_26 + 0x41, 0xf6, 0xc3, 0x01, //0x00002f3a testb $1, %r11b + 0x0f, 0x84, 0xb5, 0x00, 0x00, 0x00, //0x00002f3e je LBB10_40 + 0x8a, 0x0c, 0x0f, //0x00002f44 movb (%rdi,%rcx), %cl + 0x80, 0xc9, 0x20, //0x00002f47 orb $32, %cl + 0x80, 0xf9, 0x65, //0x00002f4a cmpb $101, %cl + 0x0f, 0x85, 0xa6, 0x00, 0x00, 0x00, //0x00002f4d jne LBB10_40 + 0x89, 0xc2, //0x00002f53 movl %eax, %edx + 0x8a, 0x4c, 0x17, 0x01, //0x00002f55 movb $1(%rdi,%rdx), %cl + 0x80, 0xf9, 0x2d, //0x00002f59 cmpb $45, %cl + 0x0f, 0x84, 0x28, 0x00, 0x00, 0x00, //0x00002f5c je LBB10_32 + 0x41, 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00002f62 movl $1, %r8d + 0x80, 0xf9, 0x2b, //0x00002f68 cmpb $43, %cl + 0x0f, 0x85, 0x38, 0x00, 0x00, 0x00, //0x00002f6b jne LBB10_30 + 0x83, 0xc0, 0x02, //0x00002f71 addl $2, %eax + 0xe9, 0x1a, 0x00, 0x00, 0x00, //0x00002f74 jmp LBB10_33 + //0x00002f79 LBB10_20 + 0x48, 0x89, 0xc1, //0x00002f79 movq %rax, %rcx + 0x45, 0x85, 0xc0, //0x00002f7c testl %r8d, %r8d + 0x0f, 0x85, 0xb5, 0xff, 0xff, 0xff, //0x00002f7f jne LBB10_26 + 0xe9, 0xac, 0xff, 0xff, 0xff, //0x00002f85 jmp LBB10_25 + //0x00002f8a LBB10_32 + 0x83, 0xc0, 0x02, //0x00002f8a addl $2, %eax + 0x41, 0xb8, 0xff, 0xff, 0xff, 0xff, //0x00002f8d movl $-1, %r8d + //0x00002f93 LBB10_33 + 0x89, 0xc2, //0x00002f93 movl %eax, %edx + 0x48, 0x63, 0xd2, //0x00002f95 movslq %edx, %rdx + 0x45, 0x31, 0xc9, //0x00002f98 xorl %r9d, %r9d + 0x48, 0x39, 0xf2, //0x00002f9b cmpq %rsi, %rdx + 0x0f, 0x8c, 0x17, 0x00, 0x00, 0x00, //0x00002f9e jl LBB10_35 + 0xe9, 0x48, 0x00, 0x00, 0x00, //0x00002fa4 jmp LBB10_39 + //0x00002fa9 LBB10_30 + 0x48, 0xff, 0xc2, //0x00002fa9 incq %rdx + 0x48, 0x63, 0xd2, //0x00002fac movslq %edx, %rdx + 0x45, 0x31, 0xc9, //0x00002faf xorl %r9d, %r9d + 0x48, 0x39, 0xf2, //0x00002fb2 cmpq %rsi, %rdx + 0x0f, 0x8d, 0x36, 0x00, 0x00, 0x00, //0x00002fb5 jge LBB10_39 + //0x00002fbb LBB10_35 + 0x45, 0x31, 0xc9, //0x00002fbb xorl %r9d, %r9d + 0x90, 0x90, //0x00002fbe .p2align 4, 0x90 + //0x00002fc0 LBB10_36 + 0x41, 0x81, 0xf9, 0x0f, 0x27, 0x00, 0x00, //0x00002fc0 cmpl $9999, %r9d + 0x0f, 0x8f, 0x24, 0x00, 0x00, 0x00, //0x00002fc7 jg LBB10_39 + 0x0f, 0xb6, 0x0c, 0x17, //0x00002fcd movzbl (%rdi,%rdx), %ecx + 0x8d, 0x41, 0xd0, //0x00002fd1 leal $-48(%rcx), %eax + 0x3c, 0x09, //0x00002fd4 cmpb $9, %al + 0x0f, 0x87, 0x15, 0x00, 0x00, 0x00, //0x00002fd6 ja LBB10_39 + 0x43, 0x8d, 0x04, 0x89, //0x00002fdc leal (%r9,%r9,4), %eax + 0x44, 0x8d, 0x4c, 0x41, 0xd0, //0x00002fe0 leal $-48(%rcx,%rax,2), %r9d + 0x48, 0xff, 0xc2, //0x00002fe5 incq %rdx + 0x48, 0x39, 0xd6, //0x00002fe8 cmpq %rdx, %rsi + 0x0f, 0x85, 0xcf, 0xff, 0xff, 0xff, //0x00002feb jne LBB10_36 + //0x00002ff1 LBB10_39 + 0x45, 0x0f, 0xaf, 0xc8, //0x00002ff1 imull %r8d, %r9d + 0x44, 0x01, 0x4d, 0xf4, //0x00002ff5 addl %r9d, $-12(%rbp) + //0x00002ff9 LBB10_40 + 0x48, 0x8d, 0x7d, 0xe0, //0x00002ff9 leaq $-32(%rbp), %rdi + 0x48, 0x8d, 0x75, 0xd8, //0x00002ffd leaq $-40(%rbp), %rsi + 0xe8, 0x1a, 0xf9, 0xff, 0xff, //0x00003001 callq _decimal_to_f64 + 0xc5, 0xfb, 0x10, 0x45, 0xd8, //0x00003006 vmovsd $-40(%rbp), %xmm0 + 0x48, 0x83, 0xc4, 0x30, //0x0000300b addq $48, %rsp + 0x5d, //0x0000300f popq %rbp + 0xc3, //0x00003010 retq + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003011 .p2align 4, 0x90 + //0x00003020 _value + 0x55, //0x00003020 pushq %rbp + 0x48, 0x89, 0xe5, //0x00003021 movq %rsp, %rbp + 0x41, 0x57, //0x00003024 pushq %r15 + 0x41, 0x56, //0x00003026 pushq %r14 + 0x41, 0x55, //0x00003028 pushq %r13 + 0x41, 0x54, //0x0000302a pushq %r12 + 0x53, //0x0000302c pushq %rbx + 0x48, 0x83, 0xec, 0x28, //0x0000302d subq $40, %rsp + 0x49, 0x89, 0xc9, //0x00003031 movq %rcx, %r9 + 0x49, 0x89, 0xd4, //0x00003034 movq %rdx, %r12 + 0x49, 0x89, 0xf7, //0x00003037 movq %rsi, %r15 + 0x49, 0x89, 0xfd, //0x0000303a movq %rdi, %r13 + 0x48, 0x89, 0x55, 0xd0, //0x0000303d movq %rdx, $-48(%rbp) + 0x48, 0x89, 0x7d, 0xb0, //0x00003041 movq %rdi, $-80(%rbp) + 0x48, 0x89, 0x75, 0xb8, //0x00003045 movq %rsi, $-72(%rbp) + 0x48, 0x89, 0xd0, //0x00003049 movq %rdx, %rax + 0x48, 0x29, 0xf0, //0x0000304c subq %rsi, %rax + 0x0f, 0x83, 0x2b, 0x00, 0x00, 0x00, //0x0000304f jae LBB11_5 + 0x43, 0x8a, 0x4c, 0x25, 0x00, //0x00003055 movb (%r13,%r12), %cl + 0x80, 0xf9, 0x0d, //0x0000305a cmpb $13, %cl + 0x0f, 0x84, 0x1d, 0x00, 0x00, 0x00, //0x0000305d je LBB11_5 + 0x80, 0xf9, 0x20, //0x00003063 cmpb $32, %cl + 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x00003066 je LBB11_5 + 0x8d, 0x51, 0xf7, //0x0000306c leal $-9(%rcx), %edx + 0x80, 0xfa, 0x01, //0x0000306f cmpb $1, %dl + 0x0f, 0x86, 0x08, 0x00, 0x00, 0x00, //0x00003072 jbe LBB11_5 + 0x4c, 0x89, 0xe3, //0x00003078 movq %r12, %rbx + 0xe9, 0x32, 0x01, 0x00, 0x00, //0x0000307b jmp LBB11_28 + //0x00003080 LBB11_5 + 0x49, 0x8d, 0x5c, 0x24, 0x01, //0x00003080 leaq $1(%r12), %rbx + 0x4c, 0x39, 0xfb, //0x00003085 cmpq %r15, %rbx + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00003088 jae LBB11_9 + 0x41, 0x8a, 0x4c, 0x1d, 0x00, //0x0000308e movb (%r13,%rbx), %cl + 0x80, 0xf9, 0x0d, //0x00003093 cmpb $13, %cl + 0x0f, 0x84, 0x15, 0x00, 0x00, 0x00, //0x00003096 je LBB11_9 + 0x80, 0xf9, 0x20, //0x0000309c cmpb $32, %cl + 0x0f, 0x84, 0x0c, 0x00, 0x00, 0x00, //0x0000309f je LBB11_9 + 0x8d, 0x51, 0xf7, //0x000030a5 leal $-9(%rcx), %edx + 0x80, 0xfa, 0x01, //0x000030a8 cmpb $1, %dl + 0x0f, 0x87, 0x01, 0x01, 0x00, 0x00, //0x000030ab ja LBB11_28 + //0x000030b1 LBB11_9 + 0x49, 0x8d, 0x5c, 0x24, 0x02, //0x000030b1 leaq $2(%r12), %rbx + 0x4c, 0x39, 0xfb, //0x000030b6 cmpq %r15, %rbx + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x000030b9 jae LBB11_13 + 0x41, 0x8a, 0x4c, 0x1d, 0x00, //0x000030bf movb (%r13,%rbx), %cl + 0x80, 0xf9, 0x0d, //0x000030c4 cmpb $13, %cl + 0x0f, 0x84, 0x15, 0x00, 0x00, 0x00, //0x000030c7 je LBB11_13 + 0x80, 0xf9, 0x20, //0x000030cd cmpb $32, %cl + 0x0f, 0x84, 0x0c, 0x00, 0x00, 0x00, //0x000030d0 je LBB11_13 + 0x8d, 0x51, 0xf7, //0x000030d6 leal $-9(%rcx), %edx + 0x80, 0xfa, 0x01, //0x000030d9 cmpb $1, %dl + 0x0f, 0x87, 0xd0, 0x00, 0x00, 0x00, //0x000030dc ja LBB11_28 + //0x000030e2 LBB11_13 + 0x49, 0x8d, 0x5c, 0x24, 0x03, //0x000030e2 leaq $3(%r12), %rbx + 0x4c, 0x39, 0xfb, //0x000030e7 cmpq %r15, %rbx + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x000030ea jae LBB11_17 + 0x41, 0x8a, 0x4c, 0x1d, 0x00, //0x000030f0 movb (%r13,%rbx), %cl + 0x80, 0xf9, 0x0d, //0x000030f5 cmpb $13, %cl + 0x0f, 0x84, 0x15, 0x00, 0x00, 0x00, //0x000030f8 je LBB11_17 + 0x80, 0xf9, 0x20, //0x000030fe cmpb $32, %cl + 0x0f, 0x84, 0x0c, 0x00, 0x00, 0x00, //0x00003101 je LBB11_17 + 0x8d, 0x51, 0xf7, //0x00003107 leal $-9(%rcx), %edx + 0x80, 0xfa, 0x01, //0x0000310a cmpb $1, %dl + 0x0f, 0x87, 0x9f, 0x00, 0x00, 0x00, //0x0000310d ja LBB11_28 + //0x00003113 LBB11_17 + 0x49, 0x8d, 0x4c, 0x24, 0x04, //0x00003113 leaq $4(%r12), %rcx + 0x4c, 0x39, 0xf9, //0x00003118 cmpq %r15, %rcx + 0x0f, 0x83, 0x57, 0x00, 0x00, 0x00, //0x0000311b jae LBB11_23 + 0x49, 0x39, 0xcf, //0x00003121 cmpq %rcx, %r15 + 0x0f, 0x84, 0x5a, 0x00, 0x00, 0x00, //0x00003124 je LBB11_24 + 0x4b, 0x8d, 0x4c, 0x3d, 0x00, //0x0000312a leaq (%r13,%r15), %rcx + 0x48, 0x83, 0xc0, 0x04, //0x0000312f addq $4, %rax + 0x4b, 0x8d, 0x5c, 0x2c, 0x05, //0x00003133 leaq $5(%r12,%r13), %rbx + 0x48, 0xba, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00003138 movabsq $4294977024, %rdx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003142 .p2align 4, 0x90 + //0x00003150 LBB11_20 + 0x0f, 0xbe, 0x73, 0xff, //0x00003150 movsbl $-1(%rbx), %esi + 0x83, 0xfe, 0x20, //0x00003154 cmpl $32, %esi + 0x0f, 0x87, 0x3e, 0x00, 0x00, 0x00, //0x00003157 ja LBB11_26 + 0x48, 0x0f, 0xa3, 0xf2, //0x0000315d btq %rsi, %rdx + 0x0f, 0x83, 0x34, 0x00, 0x00, 0x00, //0x00003161 jae LBB11_26 + 0x48, 0xff, 0xc3, //0x00003167 incq %rbx + 0x48, 0xff, 0xc0, //0x0000316a incq %rax + 0x0f, 0x85, 0xdd, 0xff, 0xff, 0xff, //0x0000316d jne LBB11_20 + 0xe9, 0x0f, 0x00, 0x00, 0x00, //0x00003173 jmp LBB11_25 + //0x00003178 LBB11_23 + 0x48, 0x89, 0x4d, 0xd0, //0x00003178 movq %rcx, $-48(%rbp) + 0x49, 0x89, 0xcc, //0x0000317c movq %rcx, %r12 + 0xe9, 0x7e, 0x00, 0x00, 0x00, //0x0000317f jmp LBB11_32 + //0x00003184 LBB11_24 + 0x4c, 0x01, 0xe9, //0x00003184 addq %r13, %rcx + //0x00003187 LBB11_25 + 0x4c, 0x29, 0xe9, //0x00003187 subq %r13, %rcx + 0x48, 0x89, 0xcb, //0x0000318a movq %rcx, %rbx + 0x4c, 0x39, 0xfb, //0x0000318d cmpq %r15, %rbx + 0x0f, 0x82, 0x17, 0x00, 0x00, 0x00, //0x00003190 jb LBB11_27 + 0xe9, 0x67, 0x00, 0x00, 0x00, //0x00003196 jmp LBB11_32 + //0x0000319b LBB11_26 + 0x4c, 0x89, 0xe8, //0x0000319b movq %r13, %rax + 0x48, 0xf7, 0xd0, //0x0000319e notq %rax + 0x48, 0x01, 0xc3, //0x000031a1 addq %rax, %rbx + 0x4c, 0x39, 0xfb, //0x000031a4 cmpq %r15, %rbx + 0x0f, 0x83, 0x55, 0x00, 0x00, 0x00, //0x000031a7 jae LBB11_32 + //0x000031ad LBB11_27 + 0x41, 0x8a, 0x4c, 0x1d, 0x00, //0x000031ad movb (%r13,%rbx), %cl + //0x000031b2 LBB11_28 + 0x4c, 0x8d, 0x63, 0x01, //0x000031b2 leaq $1(%rbx), %r12 + 0x4c, 0x89, 0x65, 0xd0, //0x000031b6 movq %r12, $-48(%rbp) + 0x0f, 0xbe, 0xc1, //0x000031ba movsbl %cl, %eax + 0x83, 0xf8, 0x7d, //0x000031bd cmpl $125, %eax + 0x0f, 0x87, 0xbe, 0x00, 0x00, 0x00, //0x000031c0 ja LBB11_40 + 0x4d, 0x8d, 0x74, 0x1d, 0x00, //0x000031c6 leaq (%r13,%rbx), %r14 + 0x48, 0x8d, 0x15, 0x6a, 0x03, 0x00, 0x00, //0x000031cb leaq $874(%rip), %rdx /* LJTI11_0+0(%rip) */ + 0x48, 0x63, 0x04, 0x82, //0x000031d2 movslq (%rdx,%rax,4), %rax + 0x48, 0x01, 0xd0, //0x000031d6 addq %rdx, %rax + 0xff, 0xe0, //0x000031d9 jmpq *%rax + //0x000031db LBB11_30 + 0x48, 0x89, 0x5d, 0xd0, //0x000031db movq %rbx, $-48(%rbp) + 0x41, 0xf6, 0xc0, 0x02, //0x000031df testb $2, %r8b + 0x0f, 0x85, 0x35, 0x00, 0x00, 0x00, //0x000031e3 jne LBB11_35 + 0x48, 0x8d, 0x7d, 0xb0, //0x000031e9 leaq $-80(%rbp), %rdi + 0x48, 0x8d, 0x75, 0xd0, //0x000031ed leaq $-48(%rbp), %rsi + 0x4c, 0x89, 0xca, //0x000031f1 movq %r9, %rdx + 0xe8, 0x27, 0x0b, 0x00, 0x00, //0x000031f4 callq _vnumber + 0x48, 0x8b, 0x5d, 0xd0, //0x000031f9 movq $-48(%rbp), %rbx + 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x000031fd jmp LBB11_34 + //0x00003202 LBB11_32 + 0x49, 0xc7, 0x01, 0x01, 0x00, 0x00, 0x00, //0x00003202 movq $1, (%r9) + //0x00003209 LBB11_33 + 0x4c, 0x89, 0xe3, //0x00003209 movq %r12, %rbx + //0x0000320c LBB11_34 + 0x48, 0x89, 0xd8, //0x0000320c movq %rbx, %rax + 0x48, 0x83, 0xc4, 0x28, //0x0000320f addq $40, %rsp + 0x5b, //0x00003213 popq %rbx + 0x41, 0x5c, //0x00003214 popq %r12 + 0x41, 0x5d, //0x00003216 popq %r13 + 0x41, 0x5e, //0x00003218 popq %r14 + 0x41, 0x5f, //0x0000321a popq %r15 + 0x5d, //0x0000321c popq %rbp + 0xc3, //0x0000321d retq + //0x0000321e LBB11_35 + 0x49, 0x29, 0xdf, //0x0000321e subq %rbx, %r15 + 0x31, 0xc0, //0x00003221 xorl %eax, %eax + 0x80, 0xf9, 0x2d, //0x00003223 cmpb $45, %cl + 0x0f, 0x94, 0xc0, //0x00003226 sete %al + 0x49, 0x01, 0xc6, //0x00003229 addq %rax, %r14 + 0x49, 0x29, 0xc7, //0x0000322c subq %rax, %r15 + 0x0f, 0x84, 0xd1, 0x02, 0x00, 0x00, //0x0000322f je LBB11_84 + 0x4c, 0x89, 0x4d, 0xc8, //0x00003235 movq %r9, $-56(%rbp) + 0x41, 0x8a, 0x06, //0x00003239 movb (%r14), %al + 0x04, 0xd0, //0x0000323c addb $-48, %al + 0x3c, 0x0a, //0x0000323e cmpb $10, %al + 0x0f, 0x83, 0xd9, 0x02, 0x00, 0x00, //0x00003240 jae LBB11_86 + 0x4c, 0x89, 0xf7, //0x00003246 movq %r14, %rdi + 0x4c, 0x89, 0xfe, //0x00003249 movq %r15, %rsi + 0xe8, 0xdf, 0x1d, 0x00, 0x00, //0x0000324c callq _do_skip_number + 0x48, 0x85, 0xc0, //0x00003251 testq %rax, %rax + 0x0f, 0x88, 0xbf, 0x02, 0x00, 0x00, //0x00003254 js LBB11_85 + 0x49, 0x01, 0xc6, //0x0000325a addq %rax, %r14 + 0x4d, 0x29, 0xee, //0x0000325d subq %r13, %r14 + 0x4c, 0x89, 0x75, 0xd0, //0x00003260 movq %r14, $-48(%rbp) + 0x4d, 0x85, 0xe4, //0x00003264 testq %r12, %r12 + 0x4c, 0x8b, 0x4d, 0xc8, //0x00003267 movq $-56(%rbp), %r9 + 0x0f, 0x8e, 0xc0, 0x02, 0x00, 0x00, //0x0000326b jle LBB11_87 + 0x49, 0xc7, 0x01, 0x08, 0x00, 0x00, 0x00, //0x00003271 movq $8, (%r9) + 0x49, 0x89, 0x59, 0x18, //0x00003278 movq %rbx, $24(%r9) + 0x4c, 0x89, 0xf3, //0x0000327c movq %r14, %rbx + 0xe9, 0x88, 0xff, 0xff, 0xff, //0x0000327f jmp LBB11_34 + //0x00003284 LBB11_40 + 0x49, 0xc7, 0x01, 0xfe, 0xff, 0xff, 0xff, //0x00003284 movq $-2, (%r9) + 0xe9, 0x7c, 0xff, 0xff, 0xff, //0x0000328b jmp LBB11_34 + //0x00003290 LBB11_41 + 0x4d, 0x89, 0xce, //0x00003290 movq %r9, %r14 + 0x48, 0xc7, 0x45, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00003293 movq $-1, $-64(%rbp) + 0x48, 0x8d, 0x7d, 0xb0, //0x0000329b leaq $-80(%rbp), %rdi + 0x48, 0x8d, 0x55, 0xc0, //0x0000329f leaq $-64(%rbp), %rdx + 0x4c, 0x89, 0xe6, //0x000032a3 movq %r12, %rsi + 0x4c, 0x89, 0xc1, //0x000032a6 movq %r8, %rcx + 0xe8, 0x42, 0x05, 0x00, 0x00, //0x000032a9 callq _advance_string + 0x48, 0x89, 0xc3, //0x000032ae movq %rax, %rbx + 0x48, 0x85, 0xc0, //0x000032b1 testq %rax, %rax + 0x0f, 0x88, 0x47, 0x01, 0x00, 0x00, //0x000032b4 js LBB11_61 + 0x48, 0x89, 0x5d, 0xd0, //0x000032ba movq %rbx, $-48(%rbp) + 0x4d, 0x89, 0x66, 0x10, //0x000032be movq %r12, $16(%r14) + 0x48, 0x8b, 0x45, 0xc0, //0x000032c2 movq $-64(%rbp), %rax + 0x48, 0x39, 0xd8, //0x000032c6 cmpq %rbx, %rax + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x000032c9 movq $-1, %rcx + 0x48, 0x0f, 0x4c, 0xc8, //0x000032d0 cmovlq %rax, %rcx + 0x49, 0x89, 0x4e, 0x18, //0x000032d4 movq %rcx, $24(%r14) + 0xb8, 0x07, 0x00, 0x00, 0x00, //0x000032d8 movl $7, %eax + 0x49, 0x89, 0x06, //0x000032dd movq %rax, (%r14) + 0xe9, 0x27, 0xff, 0xff, 0xff, //0x000032e0 jmp LBB11_34 + //0x000032e5 LBB11_43 + 0x31, 0xc0, //0x000032e5 xorl %eax, %eax + 0x45, 0x85, 0xc0, //0x000032e7 testl %r8d, %r8d + 0x0f, 0x99, 0xc0, //0x000032ea setns %al + 0xb9, 0x0b, 0x00, 0x00, 0x00, //0x000032ed movl $11, %ecx + 0xe9, 0xf4, 0x00, 0x00, 0x00, //0x000032f2 jmp LBB11_60 + //0x000032f7 LBB11_44 + 0x31, 0xc0, //0x000032f7 xorl %eax, %eax + 0x45, 0x85, 0xc0, //0x000032f9 testl %r8d, %r8d + 0x0f, 0x99, 0xc0, //0x000032fc setns %al + 0xb9, 0x0a, 0x00, 0x00, 0x00, //0x000032ff movl $10, %ecx + 0xe9, 0xe2, 0x00, 0x00, 0x00, //0x00003304 jmp LBB11_60 + //0x00003309 LBB11_45 + 0x49, 0xc7, 0x01, 0x05, 0x00, 0x00, 0x00, //0x00003309 movq $5, (%r9) + 0xe9, 0xf4, 0xfe, 0xff, 0xff, //0x00003310 jmp LBB11_33 + //0x00003315 LBB11_46 + 0x31, 0xc0, //0x00003315 xorl %eax, %eax + 0x45, 0x85, 0xc0, //0x00003317 testl %r8d, %r8d + 0x0f, 0x99, 0xc0, //0x0000331a setns %al + 0xb9, 0x0c, 0x00, 0x00, 0x00, //0x0000331d movl $12, %ecx + 0xe9, 0xc4, 0x00, 0x00, 0x00, //0x00003322 jmp LBB11_60 + //0x00003327 LBB11_47 + 0x49, 0x8d, 0x47, 0xfc, //0x00003327 leaq $-4(%r15), %rax + 0x48, 0x39, 0xc3, //0x0000332b cmpq %rax, %rbx + 0x0f, 0x83, 0x88, 0x00, 0x00, 0x00, //0x0000332e jae LBB11_56 + 0x43, 0x8b, 0x4c, 0x25, 0x00, //0x00003334 movl (%r13,%r12), %ecx + 0x81, 0xf9, 0x61, 0x6c, 0x73, 0x65, //0x00003339 cmpl $1702063201, %ecx + 0x0f, 0x85, 0xcb, 0x00, 0x00, 0x00, //0x0000333f jne LBB11_62 + 0x48, 0x83, 0xc3, 0x05, //0x00003345 addq $5, %rbx + 0x48, 0x89, 0x5d, 0xd0, //0x00003349 movq %rbx, $-48(%rbp) + 0xb8, 0x04, 0x00, 0x00, 0x00, //0x0000334d movl $4, %eax + 0x49, 0x89, 0xdf, //0x00003352 movq %rbx, %r15 + 0xe9, 0x6d, 0x00, 0x00, 0x00, //0x00003355 jmp LBB11_57 + //0x0000335a LBB11_50 + 0x49, 0x8d, 0x47, 0xfd, //0x0000335a leaq $-3(%r15), %rax + 0x48, 0x39, 0xc3, //0x0000335e cmpq %rax, %rbx + 0x0f, 0x83, 0x55, 0x00, 0x00, 0x00, //0x00003361 jae LBB11_56 + 0x41, 0x8b, 0x0e, //0x00003367 movl (%r14), %ecx + 0x81, 0xf9, 0x6e, 0x75, 0x6c, 0x6c, //0x0000336a cmpl $1819047278, %ecx + 0x0f, 0x85, 0xd9, 0x00, 0x00, 0x00, //0x00003370 jne LBB11_66 + 0x48, 0x83, 0xc3, 0x04, //0x00003376 addq $4, %rbx + 0x48, 0x89, 0x5d, 0xd0, //0x0000337a movq %rbx, $-48(%rbp) + 0xb8, 0x02, 0x00, 0x00, 0x00, //0x0000337e movl $2, %eax + 0x49, 0x89, 0xdf, //0x00003383 movq %rbx, %r15 + 0xe9, 0x3c, 0x00, 0x00, 0x00, //0x00003386 jmp LBB11_57 + //0x0000338b LBB11_53 + 0x49, 0x8d, 0x47, 0xfd, //0x0000338b leaq $-3(%r15), %rax + 0x48, 0x39, 0xc3, //0x0000338f cmpq %rax, %rbx + 0x0f, 0x83, 0x24, 0x00, 0x00, 0x00, //0x00003392 jae LBB11_56 + 0x41, 0x8b, 0x0e, //0x00003398 movl (%r14), %ecx + 0x81, 0xf9, 0x74, 0x72, 0x75, 0x65, //0x0000339b cmpl $1702195828, %ecx + 0x0f, 0x85, 0xeb, 0x00, 0x00, 0x00, //0x000033a1 jne LBB11_70 + 0x48, 0x83, 0xc3, 0x04, //0x000033a7 addq $4, %rbx + 0x48, 0x89, 0x5d, 0xd0, //0x000033ab movq %rbx, $-48(%rbp) + 0xb8, 0x03, 0x00, 0x00, 0x00, //0x000033af movl $3, %eax + 0x49, 0x89, 0xdf, //0x000033b4 movq %rbx, %r15 + 0xe9, 0x0b, 0x00, 0x00, 0x00, //0x000033b7 jmp LBB11_57 + //0x000033bc LBB11_56 + 0x4c, 0x89, 0x7d, 0xd0, //0x000033bc movq %r15, $-48(%rbp) + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000033c0 movq $-1, %rax + //0x000033c7 LBB11_57 + 0x49, 0x89, 0x01, //0x000033c7 movq %rax, (%r9) + 0x4c, 0x89, 0xfb, //0x000033ca movq %r15, %rbx + 0xe9, 0x3a, 0xfe, 0xff, 0xff, //0x000033cd jmp LBB11_34 + //0x000033d2 LBB11_58 + 0x49, 0xc7, 0x01, 0x06, 0x00, 0x00, 0x00, //0x000033d2 movq $6, (%r9) + 0xe9, 0x2b, 0xfe, 0xff, 0xff, //0x000033d9 jmp LBB11_33 + //0x000033de LBB11_59 + 0x31, 0xc0, //0x000033de xorl %eax, %eax + 0x45, 0x85, 0xc0, //0x000033e0 testl %r8d, %r8d + 0x0f, 0x99, 0xc0, //0x000033e3 setns %al + 0xb9, 0x0d, 0x00, 0x00, 0x00, //0x000033e6 movl $13, %ecx + //0x000033eb LBB11_60 + 0x48, 0xc7, 0xc2, 0xfe, 0xff, 0xff, 0xff, //0x000033eb movq $-2, %rdx + 0x48, 0x0f, 0x48, 0xd1, //0x000033f2 cmovsq %rcx, %rdx + 0x49, 0x89, 0x11, //0x000033f6 movq %rdx, (%r9) + 0x49, 0x29, 0xc4, //0x000033f9 subq %rax, %r12 + 0xe9, 0x08, 0xfe, 0xff, 0xff, //0x000033fc jmp LBB11_33 + //0x00003401 LBB11_61 + 0x4c, 0x89, 0x7d, 0xd0, //0x00003401 movq %r15, $-48(%rbp) + 0x49, 0x89, 0x1e, //0x00003405 movq %rbx, (%r14) + 0x4c, 0x89, 0xfb, //0x00003408 movq %r15, %rbx + 0xe9, 0xfc, 0xfd, 0xff, 0xff, //0x0000340b jmp LBB11_34 + //0x00003410 LBB11_62 + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00003410 movq $-2, %rax + 0x80, 0xf9, 0x61, //0x00003417 cmpb $97, %cl + 0x0f, 0x85, 0xbd, 0x00, 0x00, 0x00, //0x0000341a jne LBB11_74 + 0x41, 0x80, 0x7c, 0x1d, 0x02, 0x6c, //0x00003420 cmpb $108, $2(%r13,%rbx) + 0x0f, 0x85, 0xc1, 0x00, 0x00, 0x00, //0x00003426 jne LBB11_81 + 0x41, 0x80, 0x7c, 0x1d, 0x03, 0x73, //0x0000342c cmpb $115, $3(%r13,%rbx) + 0x0f, 0x85, 0xbe, 0x00, 0x00, 0x00, //0x00003432 jne LBB11_79 + 0x4c, 0x8d, 0x7b, 0x04, //0x00003438 leaq $4(%rbx), %r15 + 0x48, 0x8d, 0x4b, 0x05, //0x0000343c leaq $5(%rbx), %rcx + 0x41, 0x80, 0x7c, 0x1d, 0x04, 0x65, //0x00003440 cmpb $101, $4(%r13,%rbx) + 0x4c, 0x0f, 0x44, 0xf9, //0x00003446 cmoveq %rcx, %r15 + 0xe9, 0xae, 0x00, 0x00, 0x00, //0x0000344a jmp LBB11_83 + //0x0000344f LBB11_66 + 0x48, 0x89, 0x5d, 0xd0, //0x0000344f movq %rbx, $-48(%rbp) + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00003453 movq $-2, %rax + 0x80, 0xf9, 0x6e, //0x0000345a cmpb $110, %cl + 0x0f, 0x85, 0x72, 0x00, 0x00, 0x00, //0x0000345d jne LBB11_76 + 0x41, 0x80, 0x7c, 0x1d, 0x01, 0x75, //0x00003463 cmpb $117, $1(%r13,%rbx) + 0x0f, 0x85, 0x76, 0x00, 0x00, 0x00, //0x00003469 jne LBB11_77 + 0x41, 0x80, 0x7c, 0x1d, 0x02, 0x6c, //0x0000346f cmpb $108, $2(%r13,%rbx) + 0x0f, 0x85, 0x72, 0x00, 0x00, 0x00, //0x00003475 jne LBB11_81 + 0x4c, 0x8d, 0x7b, 0x03, //0x0000347b leaq $3(%rbx), %r15 + 0x48, 0x8d, 0x4b, 0x04, //0x0000347f leaq $4(%rbx), %rcx + 0x41, 0x80, 0x7c, 0x1d, 0x03, 0x6c, //0x00003483 cmpb $108, $3(%r13,%rbx) + 0x4c, 0x0f, 0x44, 0xf9, //0x00003489 cmoveq %rcx, %r15 + 0xe9, 0x6b, 0x00, 0x00, 0x00, //0x0000348d jmp LBB11_83 + //0x00003492 LBB11_70 + 0x48, 0x89, 0x5d, 0xd0, //0x00003492 movq %rbx, $-48(%rbp) + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00003496 movq $-2, %rax + 0x80, 0xf9, 0x74, //0x0000349d cmpb $116, %cl + 0x0f, 0x85, 0x2f, 0x00, 0x00, 0x00, //0x000034a0 jne LBB11_76 + 0x41, 0x80, 0x7c, 0x1d, 0x01, 0x72, //0x000034a6 cmpb $114, $1(%r13,%rbx) + 0x0f, 0x85, 0x33, 0x00, 0x00, 0x00, //0x000034ac jne LBB11_77 + 0x41, 0x80, 0x7c, 0x1d, 0x02, 0x75, //0x000034b2 cmpb $117, $2(%r13,%rbx) + 0x0f, 0x85, 0x2f, 0x00, 0x00, 0x00, //0x000034b8 jne LBB11_81 + 0x4c, 0x8d, 0x7b, 0x03, //0x000034be leaq $3(%rbx), %r15 + 0x48, 0x8d, 0x4b, 0x04, //0x000034c2 leaq $4(%rbx), %rcx + 0x41, 0x80, 0x7c, 0x1d, 0x03, 0x65, //0x000034c6 cmpb $101, $3(%r13,%rbx) + 0x4c, 0x0f, 0x44, 0xf9, //0x000034cc cmoveq %rcx, %r15 + 0xe9, 0x28, 0x00, 0x00, 0x00, //0x000034d0 jmp LBB11_83 + //0x000034d5 LBB11_76 + 0x49, 0x89, 0xdf, //0x000034d5 movq %rbx, %r15 + 0xe9, 0xea, 0xfe, 0xff, 0xff, //0x000034d8 jmp LBB11_57 + //0x000034dd LBB11_74 + 0x4d, 0x89, 0xe7, //0x000034dd movq %r12, %r15 + 0xe9, 0xe2, 0xfe, 0xff, 0xff, //0x000034e0 jmp LBB11_57 + //0x000034e5 LBB11_77 + 0x48, 0xff, 0xc3, //0x000034e5 incq %rbx + 0xe9, 0x0d, 0x00, 0x00, 0x00, //0x000034e8 jmp LBB11_82 + //0x000034ed LBB11_81 + 0x48, 0x83, 0xc3, 0x02, //0x000034ed addq $2, %rbx + 0xe9, 0x04, 0x00, 0x00, 0x00, //0x000034f1 jmp LBB11_82 + //0x000034f6 LBB11_79 + 0x48, 0x83, 0xc3, 0x03, //0x000034f6 addq $3, %rbx + //0x000034fa LBB11_82 + 0x49, 0x89, 0xdf, //0x000034fa movq %rbx, %r15 + //0x000034fd LBB11_83 + 0x4c, 0x89, 0x7d, 0xd0, //0x000034fd movq %r15, $-48(%rbp) + 0xe9, 0xc1, 0xfe, 0xff, 0xff, //0x00003501 jmp LBB11_57 + //0x00003506 LBB11_84 + 0x4d, 0x29, 0xee, //0x00003506 subq %r13, %r14 + 0x4c, 0x89, 0x75, 0xd0, //0x00003509 movq %r14, $-48(%rbp) + 0x48, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x0000350d movq $-1, %rbx + 0xe9, 0x18, 0x00, 0x00, 0x00, //0x00003514 jmp LBB11_87 + //0x00003519 LBB11_85 + 0x48, 0xf7, 0xd0, //0x00003519 notq %rax + 0x49, 0x01, 0xc6, //0x0000351c addq %rax, %r14 + //0x0000351f LBB11_86 + 0x4d, 0x29, 0xee, //0x0000351f subq %r13, %r14 + 0x4c, 0x89, 0x75, 0xd0, //0x00003522 movq %r14, $-48(%rbp) + 0x48, 0xc7, 0xc3, 0xfe, 0xff, 0xff, 0xff, //0x00003526 movq $-2, %rbx + 0x4c, 0x8b, 0x4d, 0xc8, //0x0000352d movq $-56(%rbp), %r9 + //0x00003531 LBB11_87 + 0x49, 0x89, 0x19, //0x00003531 movq %rbx, (%r9) + 0x4c, 0x89, 0xf3, //0x00003534 movq %r14, %rbx + 0xe9, 0xd0, 0xfc, 0xff, 0xff, //0x00003537 jmp LBB11_34 + //0x0000353c .p2align 2, 0x90 + // // .set L11_0_set_32, LBB11_32-LJTI11_0 + // // .set L11_0_set_40, LBB11_40-LJTI11_0 + // // .set L11_0_set_41, LBB11_41-LJTI11_0 + // // .set L11_0_set_43, LBB11_43-LJTI11_0 + // // .set L11_0_set_30, LBB11_30-LJTI11_0 + // // .set L11_0_set_44, LBB11_44-LJTI11_0 + // // .set L11_0_set_45, LBB11_45-LJTI11_0 + // // .set L11_0_set_46, LBB11_46-LJTI11_0 + // // .set L11_0_set_47, LBB11_47-LJTI11_0 + // // .set L11_0_set_50, LBB11_50-LJTI11_0 + // // .set L11_0_set_53, LBB11_53-LJTI11_0 + // // .set L11_0_set_58, LBB11_58-LJTI11_0 + // // .set L11_0_set_59, LBB11_59-LJTI11_0 + //0x0000353c LJTI11_0 + 0xc6, 0xfc, 0xff, 0xff, //0x0000353c .long L11_0_set_32 + 0x48, 0xfd, 0xff, 0xff, //0x00003540 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x00003544 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x00003548 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x0000354c .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x00003550 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x00003554 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x00003558 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x0000355c .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x00003560 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x00003564 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x00003568 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x0000356c .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x00003570 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x00003574 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x00003578 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x0000357c .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x00003580 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x00003584 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x00003588 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x0000358c .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x00003590 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x00003594 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x00003598 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x0000359c .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x000035a0 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x000035a4 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x000035a8 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x000035ac .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x000035b0 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x000035b4 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x000035b8 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x000035bc .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x000035c0 .long L11_0_set_40 + 0x54, 0xfd, 0xff, 0xff, //0x000035c4 .long L11_0_set_41 + 0x48, 0xfd, 0xff, 0xff, //0x000035c8 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x000035cc .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x000035d0 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x000035d4 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x000035d8 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x000035dc .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x000035e0 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x000035e4 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x000035e8 .long L11_0_set_40 + 0xa9, 0xfd, 0xff, 0xff, //0x000035ec .long L11_0_set_43 + 0x9f, 0xfc, 0xff, 0xff, //0x000035f0 .long L11_0_set_30 + 0x48, 0xfd, 0xff, 0xff, //0x000035f4 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x000035f8 .long L11_0_set_40 + 0x9f, 0xfc, 0xff, 0xff, //0x000035fc .long L11_0_set_30 + 0x9f, 0xfc, 0xff, 0xff, //0x00003600 .long L11_0_set_30 + 0x9f, 0xfc, 0xff, 0xff, //0x00003604 .long L11_0_set_30 + 0x9f, 0xfc, 0xff, 0xff, //0x00003608 .long L11_0_set_30 + 0x9f, 0xfc, 0xff, 0xff, //0x0000360c .long L11_0_set_30 + 0x9f, 0xfc, 0xff, 0xff, //0x00003610 .long L11_0_set_30 + 0x9f, 0xfc, 0xff, 0xff, //0x00003614 .long L11_0_set_30 + 0x9f, 0xfc, 0xff, 0xff, //0x00003618 .long L11_0_set_30 + 0x9f, 0xfc, 0xff, 0xff, //0x0000361c .long L11_0_set_30 + 0x9f, 0xfc, 0xff, 0xff, //0x00003620 .long L11_0_set_30 + 0xbb, 0xfd, 0xff, 0xff, //0x00003624 .long L11_0_set_44 + 0x48, 0xfd, 0xff, 0xff, //0x00003628 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x0000362c .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x00003630 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x00003634 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x00003638 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x0000363c .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x00003640 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x00003644 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x00003648 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x0000364c .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x00003650 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x00003654 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x00003658 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x0000365c .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x00003660 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x00003664 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x00003668 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x0000366c .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x00003670 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x00003674 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x00003678 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x0000367c .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x00003680 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x00003684 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x00003688 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x0000368c .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x00003690 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x00003694 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x00003698 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x0000369c .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x000036a0 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x000036a4 .long L11_0_set_40 + 0xcd, 0xfd, 0xff, 0xff, //0x000036a8 .long L11_0_set_45 + 0x48, 0xfd, 0xff, 0xff, //0x000036ac .long L11_0_set_40 + 0xd9, 0xfd, 0xff, 0xff, //0x000036b0 .long L11_0_set_46 + 0x48, 0xfd, 0xff, 0xff, //0x000036b4 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x000036b8 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x000036bc .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x000036c0 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x000036c4 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x000036c8 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x000036cc .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x000036d0 .long L11_0_set_40 + 0xeb, 0xfd, 0xff, 0xff, //0x000036d4 .long L11_0_set_47 + 0x48, 0xfd, 0xff, 0xff, //0x000036d8 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x000036dc .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x000036e0 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x000036e4 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x000036e8 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x000036ec .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x000036f0 .long L11_0_set_40 + 0x1e, 0xfe, 0xff, 0xff, //0x000036f4 .long L11_0_set_50 + 0x48, 0xfd, 0xff, 0xff, //0x000036f8 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x000036fc .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x00003700 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x00003704 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x00003708 .long L11_0_set_40 + 0x4f, 0xfe, 0xff, 0xff, //0x0000370c .long L11_0_set_53 + 0x48, 0xfd, 0xff, 0xff, //0x00003710 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x00003714 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x00003718 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x0000371c .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x00003720 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x00003724 .long L11_0_set_40 + 0x96, 0xfe, 0xff, 0xff, //0x00003728 .long L11_0_set_58 + 0x48, 0xfd, 0xff, 0xff, //0x0000372c .long L11_0_set_40 + 0xa2, 0xfe, 0xff, 0xff, //0x00003730 .long L11_0_set_59 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003734 .p2align 4, 0x90 + //0x00003740 _vstring + 0x55, //0x00003740 pushq %rbp + 0x48, 0x89, 0xe5, //0x00003741 movq %rsp, %rbp + 0x41, 0x57, //0x00003744 pushq %r15 + 0x41, 0x56, //0x00003746 pushq %r14 + 0x41, 0x54, //0x00003748 pushq %r12 + 0x53, //0x0000374a pushq %rbx + 0x48, 0x83, 0xec, 0x10, //0x0000374b subq $16, %rsp + 0x49, 0x89, 0xd6, //0x0000374f movq %rdx, %r14 + 0x48, 0x89, 0xf3, //0x00003752 movq %rsi, %rbx + 0x49, 0x89, 0xff, //0x00003755 movq %rdi, %r15 + 0x48, 0xc7, 0x45, 0xd8, 0xff, 0xff, 0xff, 0xff, //0x00003758 movq $-1, $-40(%rbp) + 0x4c, 0x8b, 0x26, //0x00003760 movq (%rsi), %r12 + 0x48, 0x8d, 0x55, 0xd8, //0x00003763 leaq $-40(%rbp), %rdx + 0x4c, 0x89, 0xe6, //0x00003767 movq %r12, %rsi + 0xe8, 0x81, 0x00, 0x00, 0x00, //0x0000376a callq _advance_string + 0x48, 0x85, 0xc0, //0x0000376f testq %rax, %rax + 0x0f, 0x88, 0x27, 0x00, 0x00, 0x00, //0x00003772 js LBB12_1 + 0x48, 0x89, 0x03, //0x00003778 movq %rax, (%rbx) + 0x4d, 0x89, 0x66, 0x10, //0x0000377b movq %r12, $16(%r14) + 0x48, 0x8b, 0x4d, 0xd8, //0x0000377f movq $-40(%rbp), %rcx + 0x48, 0x39, 0xc1, //0x00003783 cmpq %rax, %rcx + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00003786 movq $-1, %rax + 0x48, 0x0f, 0x4c, 0xc1, //0x0000378d cmovlq %rcx, %rax + 0x49, 0x89, 0x46, 0x18, //0x00003791 movq %rax, $24(%r14) + 0xb8, 0x07, 0x00, 0x00, 0x00, //0x00003795 movl $7, %eax + 0xe9, 0x07, 0x00, 0x00, 0x00, //0x0000379a jmp LBB12_3 + //0x0000379f LBB12_1 + 0x49, 0x8b, 0x4f, 0x08, //0x0000379f movq $8(%r15), %rcx + 0x48, 0x89, 0x0b, //0x000037a3 movq %rcx, (%rbx) + //0x000037a6 LBB12_3 + 0x49, 0x89, 0x06, //0x000037a6 movq %rax, (%r14) + 0x48, 0x83, 0xc4, 0x10, //0x000037a9 addq $16, %rsp + 0x5b, //0x000037ad popq %rbx + 0x41, 0x5c, //0x000037ae popq %r12 + 0x41, 0x5e, //0x000037b0 popq %r14 + 0x41, 0x5f, //0x000037b2 popq %r15 + 0x5d, //0x000037b4 popq %rbp + 0xc3, //0x000037b5 retq + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000037b6 .p2align 4, 0x00 + //0x000037c0 LCPI13_0 + 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, //0x000037c0 QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' + //0x000037d0 LCPI13_1 + 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x000037d0 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + //0x000037e0 LCPI13_2 + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x000037e0 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' + //0x000037f0 .p2align 4, 0x90 + //0x000037f0 _advance_string + 0xf6, 0xc1, 0x20, //0x000037f0 testb $32, %cl + 0x0f, 0x85, 0x05, 0x00, 0x00, 0x00, //0x000037f3 jne LBB13_2 + 0xe9, 0x82, 0x57, 0x00, 0x00, //0x000037f9 jmp _advance_string_default + //0x000037fe LBB13_2 + 0x55, //0x000037fe pushq %rbp + 0x48, 0x89, 0xe5, //0x000037ff movq %rsp, %rbp + 0x41, 0x57, //0x00003802 pushq %r15 + 0x41, 0x56, //0x00003804 pushq %r14 + 0x41, 0x55, //0x00003806 pushq %r13 + 0x41, 0x54, //0x00003808 pushq %r12 + 0x53, //0x0000380a pushq %rbx + 0x50, //0x0000380b pushq %rax + 0x4c, 0x8b, 0x7f, 0x08, //0x0000380c movq $8(%rdi), %r15 + 0x49, 0x29, 0xf7, //0x00003810 subq %rsi, %r15 + 0x0f, 0x84, 0xac, 0x04, 0x00, 0x00, //0x00003813 je LBB13_45 + 0x48, 0x8b, 0x07, //0x00003819 movq (%rdi), %rax + 0x48, 0x89, 0x45, 0xd0, //0x0000381c movq %rax, $-48(%rbp) + 0x48, 0x01, 0xc6, //0x00003820 addq %rax, %rsi + 0x48, 0xc7, 0x02, 0xff, 0xff, 0xff, 0xff, //0x00003823 movq $-1, (%rdx) + 0x49, 0x83, 0xff, 0x40, //0x0000382a cmpq $64, %r15 + 0x0f, 0x82, 0xd0, 0x03, 0x00, 0x00, //0x0000382e jb LBB13_46 + 0x45, 0x89, 0xf9, //0x00003834 movl %r15d, %r9d + 0x41, 0x83, 0xe1, 0x3f, //0x00003837 andl $63, %r9d + 0x49, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x0000383b movq $-1, %r14 + 0x45, 0x31, 0xe4, //0x00003842 xorl %r12d, %r12d + 0xc5, 0x79, 0x6f, 0x05, 0x73, 0xff, 0xff, 0xff, //0x00003845 vmovdqa $-141(%rip), %xmm8 /* LCPI13_0+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x0d, 0x7b, 0xff, 0xff, 0xff, //0x0000384d vmovdqa $-133(%rip), %xmm1 /* LCPI13_1+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x15, 0x83, 0xff, 0xff, 0xff, //0x00003855 vmovdqa $-125(%rip), %xmm2 /* LCPI13_2+0(%rip) */ + 0xc5, 0xe1, 0x76, 0xdb, //0x0000385d vpcmpeqd %xmm3, %xmm3, %xmm3 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003861 .p2align 4, 0x90 + //0x00003870 LBB13_5 + 0xc5, 0xfa, 0x6f, 0x3e, //0x00003870 vmovdqu (%rsi), %xmm7 + 0xc5, 0xfa, 0x6f, 0x76, 0x10, //0x00003874 vmovdqu $16(%rsi), %xmm6 + 0xc5, 0xfa, 0x6f, 0x6e, 0x20, //0x00003879 vmovdqu $32(%rsi), %xmm5 + 0xc5, 0xfa, 0x6f, 0x66, 0x30, //0x0000387e vmovdqu $48(%rsi), %xmm4 + 0xc5, 0xb9, 0x74, 0xc7, //0x00003883 vpcmpeqb %xmm7, %xmm8, %xmm0 + 0xc5, 0x79, 0xd7, 0xd8, //0x00003887 vpmovmskb %xmm0, %r11d + 0xc5, 0xb9, 0x74, 0xc6, //0x0000388b vpcmpeqb %xmm6, %xmm8, %xmm0 + 0xc5, 0x79, 0xd7, 0xd0, //0x0000388f vpmovmskb %xmm0, %r10d + 0xc5, 0xb9, 0x74, 0xc5, //0x00003893 vpcmpeqb %xmm5, %xmm8, %xmm0 + 0xc5, 0xf9, 0xd7, 0xc8, //0x00003897 vpmovmskb %xmm0, %ecx + 0xc5, 0xb9, 0x74, 0xc4, //0x0000389b vpcmpeqb %xmm4, %xmm8, %xmm0 + 0xc5, 0x79, 0xd7, 0xe8, //0x0000389f vpmovmskb %xmm0, %r13d + 0xc5, 0xc1, 0x74, 0xc1, //0x000038a3 vpcmpeqb %xmm1, %xmm7, %xmm0 + 0xc5, 0x79, 0xd7, 0xc0, //0x000038a7 vpmovmskb %xmm0, %r8d + 0xc5, 0xc9, 0x74, 0xc1, //0x000038ab vpcmpeqb %xmm1, %xmm6, %xmm0 + 0xc5, 0xf9, 0xd7, 0xc0, //0x000038af vpmovmskb %xmm0, %eax + 0xc5, 0xd1, 0x74, 0xc1, //0x000038b3 vpcmpeqb %xmm1, %xmm5, %xmm0 + 0x49, 0xc1, 0xe2, 0x10, //0x000038b7 shlq $16, %r10 + 0x4d, 0x09, 0xd3, //0x000038bb orq %r10, %r11 + 0xc5, 0xf9, 0xd7, 0xd8, //0x000038be vpmovmskb %xmm0, %ebx + 0xc5, 0xd9, 0x74, 0xc1, //0x000038c2 vpcmpeqb %xmm1, %xmm4, %xmm0 + 0x48, 0xc1, 0xe1, 0x20, //0x000038c6 shlq $32, %rcx + 0x49, 0x09, 0xcb, //0x000038ca orq %rcx, %r11 + 0xc5, 0xf9, 0xd7, 0xf8, //0x000038cd vpmovmskb %xmm0, %edi + 0xc5, 0xe9, 0x64, 0xc7, //0x000038d1 vpcmpgtb %xmm7, %xmm2, %xmm0 + 0xc5, 0xc1, 0x64, 0xfb, //0x000038d5 vpcmpgtb %xmm3, %xmm7, %xmm7 + 0xc5, 0xc1, 0xdb, 0xc0, //0x000038d9 vpand %xmm0, %xmm7, %xmm0 + 0x48, 0xc1, 0xe0, 0x10, //0x000038dd shlq $16, %rax + 0x49, 0x09, 0xc0, //0x000038e1 orq %rax, %r8 + 0xc5, 0xf9, 0xd7, 0xc8, //0x000038e4 vpmovmskb %xmm0, %ecx + 0xc5, 0xe9, 0x64, 0xc6, //0x000038e8 vpcmpgtb %xmm6, %xmm2, %xmm0 + 0xc5, 0xc9, 0x64, 0xf3, //0x000038ec vpcmpgtb %xmm3, %xmm6, %xmm6 + 0xc5, 0xc9, 0xdb, 0xc0, //0x000038f0 vpand %xmm0, %xmm6, %xmm0 + 0x48, 0xc1, 0xe3, 0x20, //0x000038f4 shlq $32, %rbx + 0x49, 0x09, 0xd8, //0x000038f8 orq %rbx, %r8 + 0xc5, 0xf9, 0xd7, 0xd8, //0x000038fb vpmovmskb %xmm0, %ebx + 0xc5, 0xe9, 0x64, 0xc5, //0x000038ff vpcmpgtb %xmm5, %xmm2, %xmm0 + 0xc5, 0xd1, 0x64, 0xeb, //0x00003903 vpcmpgtb %xmm3, %xmm5, %xmm5 + 0xc5, 0xd1, 0xdb, 0xc0, //0x00003907 vpand %xmm0, %xmm5, %xmm0 + 0x48, 0xc1, 0xe7, 0x30, //0x0000390b shlq $48, %rdi + 0x49, 0x09, 0xf8, //0x0000390f orq %rdi, %r8 + 0xc5, 0xf9, 0xd7, 0xc0, //0x00003912 vpmovmskb %xmm0, %eax + 0xc5, 0xe9, 0x64, 0xc4, //0x00003916 vpcmpgtb %xmm4, %xmm2, %xmm0 + 0xc5, 0xd9, 0x64, 0xe3, //0x0000391a vpcmpgtb %xmm3, %xmm4, %xmm4 + 0xc5, 0xd9, 0xdb, 0xc0, //0x0000391e vpand %xmm0, %xmm4, %xmm0 + 0x48, 0xc1, 0xe3, 0x10, //0x00003922 shlq $16, %rbx + 0x48, 0x09, 0xd9, //0x00003926 orq %rbx, %rcx + 0xc5, 0x79, 0xd7, 0xd0, //0x00003929 vpmovmskb %xmm0, %r10d + 0x49, 0xc1, 0xe5, 0x30, //0x0000392d shlq $48, %r13 + 0x48, 0xc1, 0xe0, 0x20, //0x00003931 shlq $32, %rax + 0x49, 0x83, 0xfe, 0xff, //0x00003935 cmpq $-1, %r14 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00003939 jne LBB13_7 + 0x4d, 0x85, 0xc0, //0x0000393f testq %r8, %r8 + 0x0f, 0x85, 0x9c, 0x00, 0x00, 0x00, //0x00003942 jne LBB13_12 + //0x00003948 LBB13_7 + 0x49, 0xc1, 0xe2, 0x30, //0x00003948 shlq $48, %r10 + 0x48, 0x09, 0xc1, //0x0000394c orq %rax, %rcx + 0x4d, 0x09, 0xeb, //0x0000394f orq %r13, %r11 + 0x4c, 0x89, 0xc0, //0x00003952 movq %r8, %rax + 0x4c, 0x09, 0xe0, //0x00003955 orq %r12, %rax + 0x0f, 0x85, 0x2c, 0x00, 0x00, 0x00, //0x00003958 jne LBB13_11 + 0x4c, 0x09, 0xd1, //0x0000395e orq %r10, %rcx + 0x4d, 0x85, 0xdb, //0x00003961 testq %r11, %r11 + 0x0f, 0x85, 0x90, 0x00, 0x00, 0x00, //0x00003964 jne LBB13_13 + //0x0000396a LBB13_9 + 0x48, 0x85, 0xc9, //0x0000396a testq %rcx, %rcx + 0x0f, 0x85, 0xdd, 0x00, 0x00, 0x00, //0x0000396d jne LBB13_19 + 0x48, 0x83, 0xc6, 0x40, //0x00003973 addq $64, %rsi + 0x49, 0x83, 0xc7, 0xc0, //0x00003977 addq $-64, %r15 + 0x49, 0x83, 0xff, 0x3f, //0x0000397b cmpq $63, %r15 + 0x0f, 0x87, 0xeb, 0xfe, 0xff, 0xff, //0x0000397f ja LBB13_5 + 0xe9, 0xea, 0x00, 0x00, 0x00, //0x00003985 jmp LBB13_21 + //0x0000398a LBB13_11 + 0x4c, 0x89, 0xe0, //0x0000398a movq %r12, %rax + 0x48, 0xf7, 0xd0, //0x0000398d notq %rax + 0x4c, 0x21, 0xc0, //0x00003990 andq %r8, %rax + 0x4c, 0x8d, 0x2c, 0x00, //0x00003993 leaq (%rax,%rax), %r13 + 0x4d, 0x09, 0xe5, //0x00003997 orq %r12, %r13 + 0x4c, 0x89, 0xeb, //0x0000399a movq %r13, %rbx + 0x48, 0xf7, 0xd3, //0x0000399d notq %rbx + 0x4c, 0x21, 0xc3, //0x000039a0 andq %r8, %rbx + 0x48, 0xbf, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x000039a3 movabsq $-6148914691236517206, %rdi + 0x48, 0x21, 0xfb, //0x000039ad andq %rdi, %rbx + 0x45, 0x31, 0xe4, //0x000039b0 xorl %r12d, %r12d + 0x48, 0x01, 0xc3, //0x000039b3 addq %rax, %rbx + 0x41, 0x0f, 0x92, 0xc4, //0x000039b6 setb %r12b + 0x48, 0x01, 0xdb, //0x000039ba addq %rbx, %rbx + 0x48, 0xb8, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x000039bd movabsq $6148914691236517205, %rax + 0x48, 0x31, 0xc3, //0x000039c7 xorq %rax, %rbx + 0x4c, 0x21, 0xeb, //0x000039ca andq %r13, %rbx + 0x48, 0xf7, 0xd3, //0x000039cd notq %rbx + 0x49, 0x21, 0xdb, //0x000039d0 andq %rbx, %r11 + 0x4c, 0x09, 0xd1, //0x000039d3 orq %r10, %rcx + 0x4d, 0x85, 0xdb, //0x000039d6 testq %r11, %r11 + 0x0f, 0x84, 0x8b, 0xff, 0xff, 0xff, //0x000039d9 je LBB13_9 + 0xe9, 0x16, 0x00, 0x00, 0x00, //0x000039df jmp LBB13_13 + //0x000039e4 LBB13_12 + 0x48, 0x89, 0xf7, //0x000039e4 movq %rsi, %rdi + 0x48, 0x2b, 0x7d, 0xd0, //0x000039e7 subq $-48(%rbp), %rdi + 0x4d, 0x0f, 0xbc, 0xf0, //0x000039eb bsfq %r8, %r14 + 0x49, 0x01, 0xfe, //0x000039ef addq %rdi, %r14 + 0x4c, 0x89, 0x32, //0x000039f2 movq %r14, (%rdx) + 0xe9, 0x4e, 0xff, 0xff, 0xff, //0x000039f5 jmp LBB13_7 + //0x000039fa LBB13_13 + 0x49, 0x0f, 0xbc, 0xc3, //0x000039fa bsfq %r11, %rax + 0x48, 0x85, 0xc9, //0x000039fe testq %rcx, %rcx + 0x0f, 0x84, 0x25, 0x00, 0x00, 0x00, //0x00003a01 je LBB13_17 + 0x48, 0x0f, 0xbc, 0xc9, //0x00003a07 bsfq %rcx, %rcx + 0x48, 0x2b, 0x75, 0xd0, //0x00003a0b subq $-48(%rbp), %rsi + 0x48, 0x39, 0xc1, //0x00003a0f cmpq %rax, %rcx + 0x0f, 0x82, 0x26, 0x00, 0x00, 0x00, //0x00003a12 jb LBB13_18 + //0x00003a18 LBB13_15 + 0x48, 0x8d, 0x44, 0x06, 0x01, //0x00003a18 leaq $1(%rsi,%rax), %rax + //0x00003a1d LBB13_16 + 0x48, 0x83, 0xc4, 0x08, //0x00003a1d addq $8, %rsp + 0x5b, //0x00003a21 popq %rbx + 0x41, 0x5c, //0x00003a22 popq %r12 + 0x41, 0x5d, //0x00003a24 popq %r13 + 0x41, 0x5e, //0x00003a26 popq %r14 + 0x41, 0x5f, //0x00003a28 popq %r15 + 0x5d, //0x00003a2a popq %rbp + 0xc3, //0x00003a2b retq + //0x00003a2c LBB13_17 + 0xb9, 0x40, 0x00, 0x00, 0x00, //0x00003a2c movl $64, %ecx + 0x48, 0x2b, 0x75, 0xd0, //0x00003a31 subq $-48(%rbp), %rsi + 0x48, 0x39, 0xc1, //0x00003a35 cmpq %rax, %rcx + 0x0f, 0x83, 0xda, 0xff, 0xff, 0xff, //0x00003a38 jae LBB13_15 + //0x00003a3e LBB13_18 + 0x48, 0x01, 0xf1, //0x00003a3e addq %rsi, %rcx + 0x48, 0x89, 0x0a, //0x00003a41 movq %rcx, (%rdx) + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00003a44 movq $-2, %rax + 0xe9, 0xcd, 0xff, 0xff, 0xff, //0x00003a4b jmp LBB13_16 + //0x00003a50 LBB13_19 + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00003a50 movq $-2, %rax + 0x49, 0x83, 0xfe, 0xff, //0x00003a57 cmpq $-1, %r14 + 0x0f, 0x85, 0xbc, 0xff, 0xff, 0xff, //0x00003a5b jne LBB13_16 + 0x48, 0x0f, 0xbc, 0xc9, //0x00003a61 bsfq %rcx, %rcx + 0x48, 0x2b, 0x75, 0xd0, //0x00003a65 subq $-48(%rbp), %rsi + 0x48, 0x01, 0xce, //0x00003a69 addq %rcx, %rsi + 0x48, 0x89, 0x32, //0x00003a6c movq %rsi, (%rdx) + 0xe9, 0xa9, 0xff, 0xff, 0xff, //0x00003a6f jmp LBB13_16 + //0x00003a74 LBB13_21 + 0x4d, 0x89, 0xcf, //0x00003a74 movq %r9, %r15 + 0x49, 0x83, 0xff, 0x20, //0x00003a77 cmpq $32, %r15 + 0x0f, 0x82, 0xf1, 0x00, 0x00, 0x00, //0x00003a7b jb LBB13_34 + //0x00003a81 LBB13_22 + 0xc5, 0xfa, 0x6f, 0x06, //0x00003a81 vmovdqu (%rsi), %xmm0 + 0xc5, 0xfa, 0x6f, 0x4e, 0x10, //0x00003a85 vmovdqu $16(%rsi), %xmm1 + 0xc5, 0xf9, 0x6f, 0x15, 0x2e, 0xfd, 0xff, 0xff, //0x00003a8a vmovdqa $-722(%rip), %xmm2 /* LCPI13_0+0(%rip) */ + 0xc5, 0xf9, 0x74, 0xda, //0x00003a92 vpcmpeqb %xmm2, %xmm0, %xmm3 + 0xc5, 0xf9, 0xd7, 0xfb, //0x00003a96 vpmovmskb %xmm3, %edi + 0xc5, 0xf1, 0x74, 0xd2, //0x00003a9a vpcmpeqb %xmm2, %xmm1, %xmm2 + 0xc5, 0x79, 0xd7, 0xca, //0x00003a9e vpmovmskb %xmm2, %r9d + 0xc5, 0xf9, 0x6f, 0x15, 0x26, 0xfd, 0xff, 0xff, //0x00003aa2 vmovdqa $-730(%rip), %xmm2 /* LCPI13_1+0(%rip) */ + 0xc5, 0xf9, 0x74, 0xda, //0x00003aaa vpcmpeqb %xmm2, %xmm0, %xmm3 + 0xc5, 0xf9, 0xd7, 0xc3, //0x00003aae vpmovmskb %xmm3, %eax + 0xc5, 0xf1, 0x74, 0xd2, //0x00003ab2 vpcmpeqb %xmm2, %xmm1, %xmm2 + 0xc5, 0xf9, 0xd7, 0xca, //0x00003ab6 vpmovmskb %xmm2, %ecx + 0xc5, 0xf9, 0x6f, 0x15, 0x1e, 0xfd, 0xff, 0xff, //0x00003aba vmovdqa $-738(%rip), %xmm2 /* LCPI13_2+0(%rip) */ + 0xc5, 0xe9, 0x64, 0xd8, //0x00003ac2 vpcmpgtb %xmm0, %xmm2, %xmm3 + 0xc5, 0xd9, 0x76, 0xe4, //0x00003ac6 vpcmpeqd %xmm4, %xmm4, %xmm4 + 0xc5, 0xf9, 0x64, 0xc4, //0x00003aca vpcmpgtb %xmm4, %xmm0, %xmm0 + 0xc5, 0xf9, 0xdb, 0xc3, //0x00003ace vpand %xmm3, %xmm0, %xmm0 + 0xc5, 0x79, 0xd7, 0xc0, //0x00003ad2 vpmovmskb %xmm0, %r8d + 0xc5, 0xe9, 0x64, 0xc1, //0x00003ad6 vpcmpgtb %xmm1, %xmm2, %xmm0 + 0xc5, 0xf1, 0x64, 0xcc, //0x00003ada vpcmpgtb %xmm4, %xmm1, %xmm1 + 0xc5, 0xf1, 0xdb, 0xc0, //0x00003ade vpand %xmm0, %xmm1, %xmm0 + 0xc5, 0xf9, 0xd7, 0xd8, //0x00003ae2 vpmovmskb %xmm0, %ebx + 0x49, 0xc1, 0xe1, 0x10, //0x00003ae6 shlq $16, %r9 + 0x48, 0xc1, 0xe1, 0x10, //0x00003aea shlq $16, %rcx + 0x48, 0x09, 0xc8, //0x00003aee orq %rcx, %rax + 0x49, 0x83, 0xfe, 0xff, //0x00003af1 cmpq $-1, %r14 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00003af5 jne LBB13_24 + 0x48, 0x85, 0xc0, //0x00003afb testq %rax, %rax + 0x0f, 0x85, 0x64, 0x01, 0x00, 0x00, //0x00003afe jne LBB13_49 + //0x00003b04 LBB13_24 + 0x48, 0xc1, 0xe3, 0x10, //0x00003b04 shlq $16, %rbx + 0x49, 0x09, 0xf9, //0x00003b08 orq %rdi, %r9 + 0x48, 0x89, 0xc1, //0x00003b0b movq %rax, %rcx + 0x4c, 0x09, 0xe1, //0x00003b0e orq %r12, %rcx + 0x0f, 0x85, 0x06, 0x01, 0x00, 0x00, //0x00003b11 jne LBB13_47 + //0x00003b17 LBB13_25 + 0x4c, 0x09, 0xc3, //0x00003b17 orq %r8, %rbx + 0xb8, 0x40, 0x00, 0x00, 0x00, //0x00003b1a movl $64, %eax + 0xb9, 0x40, 0x00, 0x00, 0x00, //0x00003b1f movl $64, %ecx + 0x4d, 0x85, 0xc9, //0x00003b24 testq %r9, %r9 + 0x0f, 0x84, 0x04, 0x00, 0x00, 0x00, //0x00003b27 je LBB13_27 + 0x49, 0x0f, 0xbc, 0xc9, //0x00003b2d bsfq %r9, %rcx + //0x00003b31 LBB13_27 + 0x48, 0x0f, 0xbc, 0xfb, //0x00003b31 bsfq %rbx, %rdi + 0x48, 0x85, 0xdb, //0x00003b35 testq %rbx, %rbx + 0x0f, 0x84, 0x03, 0x00, 0x00, 0x00, //0x00003b38 je LBB13_29 + 0x48, 0x89, 0xf8, //0x00003b3e movq %rdi, %rax + //0x00003b41 LBB13_29 + 0x4d, 0x85, 0xc9, //0x00003b41 testq %r9, %r9 + 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x00003b44 je LBB13_32 + 0x48, 0x2b, 0x75, 0xd0, //0x00003b4a subq $-48(%rbp), %rsi + 0x48, 0x39, 0xc8, //0x00003b4e cmpq %rcx, %rax + 0x0f, 0x82, 0xff, 0x00, 0x00, 0x00, //0x00003b51 jb LBB13_48 + 0x48, 0x8d, 0x44, 0x0e, 0x01, //0x00003b57 leaq $1(%rsi,%rcx), %rax + 0xe9, 0xbc, 0xfe, 0xff, 0xff, //0x00003b5c jmp LBB13_16 + //0x00003b61 LBB13_32 + 0x48, 0x85, 0xdb, //0x00003b61 testq %rbx, %rbx + 0x0f, 0x85, 0x14, 0x01, 0x00, 0x00, //0x00003b64 jne LBB13_50 + 0x48, 0x83, 0xc6, 0x20, //0x00003b6a addq $32, %rsi + 0x49, 0x83, 0xc7, 0xe0, //0x00003b6e addq $-32, %r15 + //0x00003b72 LBB13_34 + 0x4d, 0x85, 0xe4, //0x00003b72 testq %r12, %r12 + 0x0f, 0x85, 0x0f, 0x01, 0x00, 0x00, //0x00003b75 jne LBB13_51 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00003b7b movq $-1, %rax + 0x4d, 0x85, 0xff, //0x00003b82 testq %r15, %r15 + 0x0f, 0x84, 0x92, 0xfe, 0xff, 0xff, //0x00003b85 je LBB13_16 + //0x00003b8b LBB13_36 + 0x0f, 0xb6, 0x0e, //0x00003b8b movzbl (%rsi), %ecx + 0x80, 0xf9, 0x22, //0x00003b8e cmpb $34, %cl + 0x0f, 0x84, 0x5e, 0x00, 0x00, 0x00, //0x00003b91 je LBB13_44 + 0x80, 0xf9, 0x5c, //0x00003b97 cmpb $92, %cl + 0x0f, 0x84, 0x26, 0x00, 0x00, 0x00, //0x00003b9a je LBB13_41 + 0x80, 0xf9, 0x1f, //0x00003ba0 cmpb $31, %cl + 0x0f, 0x86, 0x28, 0x01, 0x00, 0x00, //0x00003ba3 jbe LBB13_55 + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00003ba9 movq $-1, %rcx + 0xbf, 0x01, 0x00, 0x00, 0x00, //0x00003bb0 movl $1, %edi + //0x00003bb5 LBB13_40 + 0x48, 0x01, 0xfe, //0x00003bb5 addq %rdi, %rsi + 0x49, 0x01, 0xcf, //0x00003bb8 addq %rcx, %r15 + 0x0f, 0x85, 0xca, 0xff, 0xff, 0xff, //0x00003bbb jne LBB13_36 + 0xe9, 0x57, 0xfe, 0xff, 0xff, //0x00003bc1 jmp LBB13_16 + //0x00003bc6 LBB13_41 + 0x49, 0x83, 0xff, 0x01, //0x00003bc6 cmpq $1, %r15 + 0x0f, 0x84, 0x4d, 0xfe, 0xff, 0xff, //0x00003bca je LBB13_16 + 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x00003bd0 movq $-2, %rcx + 0xbf, 0x02, 0x00, 0x00, 0x00, //0x00003bd7 movl $2, %edi + 0x49, 0x83, 0xfe, 0xff, //0x00003bdc cmpq $-1, %r14 + 0x0f, 0x85, 0xcf, 0xff, 0xff, 0xff, //0x00003be0 jne LBB13_40 + 0x49, 0x89, 0xf6, //0x00003be6 movq %rsi, %r14 + 0x4c, 0x2b, 0x75, 0xd0, //0x00003be9 subq $-48(%rbp), %r14 + 0x4c, 0x89, 0x32, //0x00003bed movq %r14, (%rdx) + 0xe9, 0xc0, 0xff, 0xff, 0xff, //0x00003bf0 jmp LBB13_40 + //0x00003bf5 LBB13_44 + 0x48, 0x2b, 0x75, 0xd0, //0x00003bf5 subq $-48(%rbp), %rsi + 0x48, 0xff, 0xc6, //0x00003bf9 incq %rsi + 0x48, 0x89, 0xf0, //0x00003bfc movq %rsi, %rax + 0xe9, 0x19, 0xfe, 0xff, 0xff, //0x00003bff jmp LBB13_16 + //0x00003c04 LBB13_46 + 0x49, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x00003c04 movq $-1, %r14 + 0x45, 0x31, 0xe4, //0x00003c0b xorl %r12d, %r12d + 0x49, 0x83, 0xff, 0x20, //0x00003c0e cmpq $32, %r15 + 0x0f, 0x83, 0x69, 0xfe, 0xff, 0xff, //0x00003c12 jae LBB13_22 + 0xe9, 0x55, 0xff, 0xff, 0xff, //0x00003c18 jmp LBB13_34 + //0x00003c1d LBB13_47 + 0x44, 0x89, 0xe1, //0x00003c1d movl %r12d, %ecx + 0xf7, 0xd1, //0x00003c20 notl %ecx + 0x21, 0xc1, //0x00003c22 andl %eax, %ecx + 0x44, 0x8d, 0x14, 0x09, //0x00003c24 leal (%rcx,%rcx), %r10d + 0x45, 0x09, 0xe2, //0x00003c28 orl %r12d, %r10d + 0x44, 0x89, 0xd7, //0x00003c2b movl %r10d, %edi + 0xf7, 0xd7, //0x00003c2e notl %edi + 0x21, 0xc7, //0x00003c30 andl %eax, %edi + 0x81, 0xe7, 0xaa, 0xaa, 0xaa, 0xaa, //0x00003c32 andl $-1431655766, %edi + 0x45, 0x31, 0xe4, //0x00003c38 xorl %r12d, %r12d + 0x01, 0xcf, //0x00003c3b addl %ecx, %edi + 0x41, 0x0f, 0x92, 0xc4, //0x00003c3d setb %r12b + 0x01, 0xff, //0x00003c41 addl %edi, %edi + 0x81, 0xf7, 0x55, 0x55, 0x55, 0x55, //0x00003c43 xorl $1431655765, %edi + 0x44, 0x21, 0xd7, //0x00003c49 andl %r10d, %edi + 0xf7, 0xd7, //0x00003c4c notl %edi + 0x41, 0x21, 0xf9, //0x00003c4e andl %edi, %r9d + 0xe9, 0xc1, 0xfe, 0xff, 0xff, //0x00003c51 jmp LBB13_25 + //0x00003c56 LBB13_48 + 0x48, 0x01, 0xf0, //0x00003c56 addq %rsi, %rax + 0x48, 0x89, 0x02, //0x00003c59 movq %rax, (%rdx) + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00003c5c movq $-2, %rax + 0xe9, 0xb5, 0xfd, 0xff, 0xff, //0x00003c63 jmp LBB13_16 + //0x00003c68 LBB13_49 + 0x48, 0x89, 0xf1, //0x00003c68 movq %rsi, %rcx + 0x48, 0x2b, 0x4d, 0xd0, //0x00003c6b subq $-48(%rbp), %rcx + 0x4c, 0x0f, 0xbc, 0xf0, //0x00003c6f bsfq %rax, %r14 + 0x49, 0x01, 0xce, //0x00003c73 addq %rcx, %r14 + 0x4c, 0x89, 0x32, //0x00003c76 movq %r14, (%rdx) + 0xe9, 0x86, 0xfe, 0xff, 0xff, //0x00003c79 jmp LBB13_24 + //0x00003c7e LBB13_50 + 0x48, 0x2b, 0x75, 0xd0, //0x00003c7e subq $-48(%rbp), %rsi + 0x48, 0x01, 0xfe, //0x00003c82 addq %rdi, %rsi + 0xe9, 0x4b, 0x00, 0x00, 0x00, //0x00003c85 jmp LBB13_56 + //0x00003c8a LBB13_51 + 0x4d, 0x85, 0xff, //0x00003c8a testq %r15, %r15 + 0x0f, 0x84, 0x32, 0x00, 0x00, 0x00, //0x00003c8d je LBB13_45 + 0x49, 0x83, 0xfe, 0xff, //0x00003c93 cmpq $-1, %r14 + 0x0f, 0x85, 0x0d, 0x00, 0x00, 0x00, //0x00003c97 jne LBB13_54 + 0x4c, 0x8b, 0x75, 0xd0, //0x00003c9d movq $-48(%rbp), %r14 + 0x49, 0xf7, 0xd6, //0x00003ca1 notq %r14 + 0x49, 0x01, 0xf6, //0x00003ca4 addq %rsi, %r14 + 0x4c, 0x89, 0x32, //0x00003ca7 movq %r14, (%rdx) + //0x00003caa LBB13_54 + 0x48, 0xff, 0xc6, //0x00003caa incq %rsi + 0x49, 0xff, 0xcf, //0x00003cad decq %r15 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00003cb0 movq $-1, %rax + 0x4d, 0x85, 0xff, //0x00003cb7 testq %r15, %r15 + 0x0f, 0x85, 0xcb, 0xfe, 0xff, 0xff, //0x00003cba jne LBB13_36 + 0xe9, 0x58, 0xfd, 0xff, 0xff, //0x00003cc0 jmp LBB13_16 + //0x00003cc5 LBB13_45 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00003cc5 movq $-1, %rax + 0xe9, 0x4c, 0xfd, 0xff, 0xff, //0x00003ccc jmp LBB13_16 + //0x00003cd1 LBB13_55 + 0x48, 0x2b, 0x75, 0xd0, //0x00003cd1 subq $-48(%rbp), %rsi + //0x00003cd5 LBB13_56 + 0x48, 0x89, 0x32, //0x00003cd5 movq %rsi, (%rdx) + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00003cd8 movq $-2, %rax + 0xe9, 0x39, 0xfd, 0xff, 0xff, //0x00003cdf jmp LBB13_16 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00003ce4 .p2align 4, 0x00 + //0x00003cf0 LCPI14_0 + 0x00, 0x00, 0x30, 0x43, //0x00003cf0 .long 1127219200 + 0x00, 0x00, 0x30, 0x45, //0x00003cf4 .long 1160773632 + 0x00, 0x00, 0x00, 0x00, //0x00003cf8 .long 0 + 0x00, 0x00, 0x00, 0x00, //0x00003cfc .long 0 + //0x00003d00 LCPI14_1 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x43, //0x00003d00 .quad 4841369599423283200 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x45, //0x00003d08 .quad 4985484787499139072 + //0x00003d10 .p2align 3, 0x00 + //0x00003d10 LCPI14_2 + 0x00, 0x00, 0x34, 0x26, 0xf5, 0x6b, 0x0c, 0x43, //0x00003d10 .quad 4831355200913801216 + //0x00003d18 LCPI14_3 + 0x00, 0x00, 0x34, 0x26, 0xf5, 0x6b, 0x0c, 0xc3, //0x00003d18 .quad -4392016835940974592 + //0x00003d20 .p2align 4, 0x90 + //0x00003d20 _vnumber + 0x55, //0x00003d20 pushq %rbp + 0x48, 0x89, 0xe5, //0x00003d21 movq %rsp, %rbp + 0x41, 0x57, //0x00003d24 pushq %r15 + 0x41, 0x56, //0x00003d26 pushq %r14 + 0x41, 0x55, //0x00003d28 pushq %r13 + 0x41, 0x54, //0x00003d2a pushq %r12 + 0x53, //0x00003d2c pushq %rbx + 0x48, 0x83, 0xec, 0x38, //0x00003d2d subq $56, %rsp + 0x48, 0x89, 0xd3, //0x00003d31 movq %rdx, %rbx + 0x49, 0x89, 0xf6, //0x00003d34 movq %rsi, %r14 + 0x48, 0xc7, 0x45, 0xd0, 0x00, 0x00, 0x00, 0x00, //0x00003d37 movq $0, $-48(%rbp) + 0x48, 0x8b, 0x06, //0x00003d3f movq (%rsi), %rax + 0x4c, 0x8b, 0x3f, //0x00003d42 movq (%rdi), %r15 + 0x4c, 0x8b, 0x6f, 0x08, //0x00003d45 movq $8(%rdi), %r13 + 0x4c, 0x8b, 0x52, 0x20, //0x00003d49 movq $32(%rdx), %r10 + 0x4c, 0x8b, 0x5a, 0x28, //0x00003d4d movq $40(%rdx), %r11 + 0x48, 0xc7, 0x02, 0x09, 0x00, 0x00, 0x00, //0x00003d51 movq $9, (%rdx) + 0xc5, 0xf9, 0x57, 0xc0, //0x00003d58 vxorpd %xmm0, %xmm0, %xmm0 + 0xc5, 0xf9, 0x11, 0x42, 0x08, //0x00003d5c vmovupd %xmm0, $8(%rdx) + 0x48, 0x8b, 0x0e, //0x00003d61 movq (%rsi), %rcx + 0x48, 0x89, 0x4a, 0x18, //0x00003d64 movq %rcx, $24(%rdx) + 0x4c, 0x39, 0xe8, //0x00003d68 cmpq %r13, %rax + 0x0f, 0x83, 0xc8, 0x02, 0x00, 0x00, //0x00003d6b jae LBB14_52 + 0x41, 0x8a, 0x3c, 0x07, //0x00003d71 movb (%r15,%rax), %dil + 0x41, 0xb9, 0x01, 0x00, 0x00, 0x00, //0x00003d75 movl $1, %r9d + 0x40, 0x80, 0xff, 0x2d, //0x00003d7b cmpb $45, %dil + 0x0f, 0x85, 0x16, 0x00, 0x00, 0x00, //0x00003d7f jne LBB14_4 + 0x48, 0xff, 0xc0, //0x00003d85 incq %rax + 0x4c, 0x39, 0xe8, //0x00003d88 cmpq %r13, %rax + 0x0f, 0x83, 0xa8, 0x02, 0x00, 0x00, //0x00003d8b jae LBB14_52 + 0x41, 0x8a, 0x3c, 0x07, //0x00003d91 movb (%r15,%rax), %dil + 0x41, 0xb9, 0xff, 0xff, 0xff, 0xff, //0x00003d95 movl $-1, %r9d + //0x00003d9b LBB14_4 + 0x8d, 0x4f, 0xd0, //0x00003d9b leal $-48(%rdi), %ecx + 0x80, 0xf9, 0x0a, //0x00003d9e cmpb $10, %cl + 0x0f, 0x82, 0x0f, 0x00, 0x00, 0x00, //0x00003da1 jb LBB14_6 + //0x00003da7 LBB14_5 + 0x49, 0x89, 0x06, //0x00003da7 movq %rax, (%r14) + 0x48, 0xc7, 0x03, 0xfe, 0xff, 0xff, 0xff, //0x00003daa movq $-2, (%rbx) + 0xe9, 0x8d, 0x02, 0x00, 0x00, //0x00003db1 jmp LBB14_53 + //0x00003db6 LBB14_6 + 0x40, 0x80, 0xff, 0x30, //0x00003db6 cmpb $48, %dil + 0x0f, 0x85, 0x35, 0x00, 0x00, 0x00, //0x00003dba jne LBB14_10 + 0x48, 0x8d, 0x70, 0x01, //0x00003dc0 leaq $1(%rax), %rsi + 0x4c, 0x39, 0xe8, //0x00003dc4 cmpq %r13, %rax + 0x0f, 0x83, 0xa4, 0x00, 0x00, 0x00, //0x00003dc7 jae LBB14_19 + 0x41, 0x8a, 0x14, 0x37, //0x00003dcd movb (%r15,%rsi), %dl + 0x80, 0xc2, 0xd2, //0x00003dd1 addb $-46, %dl + 0x80, 0xfa, 0x37, //0x00003dd4 cmpb $55, %dl + 0x0f, 0x87, 0x94, 0x00, 0x00, 0x00, //0x00003dd7 ja LBB14_19 + 0x44, 0x0f, 0xb6, 0xc2, //0x00003ddd movzbl %dl, %r8d + 0x48, 0xba, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, //0x00003de1 movabsq $36028797027352577, %rdx + 0x4c, 0x0f, 0xa3, 0xc2, //0x00003deb btq %r8, %rdx + 0x0f, 0x83, 0x7c, 0x00, 0x00, 0x00, //0x00003def jae LBB14_19 + //0x00003df5 LBB14_10 + 0x4c, 0x39, 0xe8, //0x00003df5 cmpq %r13, %rax + 0x0f, 0x83, 0x67, 0x00, 0x00, 0x00, //0x00003df8 jae LBB14_18 + 0x80, 0xf9, 0x09, //0x00003dfe cmpb $9, %cl + 0x0f, 0x87, 0x72, 0x00, 0x00, 0x00, //0x00003e01 ja LBB14_20 + 0x4d, 0x8d, 0x45, 0xff, //0x00003e07 leaq $-1(%r13), %r8 + 0x31, 0xc9, //0x00003e0b xorl %ecx, %ecx + 0x31, 0xf6, //0x00003e0d xorl %esi, %esi + 0x45, 0x31, 0xe4, //0x00003e0f xorl %r12d, %r12d + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003e12 .p2align 4, 0x90 + //0x00003e20 LBB14_13 + 0x83, 0xfe, 0x12, //0x00003e20 cmpl $18, %esi + 0x0f, 0x8f, 0x17, 0x00, 0x00, 0x00, //0x00003e23 jg LBB14_15 + 0x48, 0x0f, 0xbe, 0xff, //0x00003e29 movsbq %dil, %rdi + 0x4b, 0x8d, 0x14, 0xa4, //0x00003e2d leaq (%r12,%r12,4), %rdx + 0x4c, 0x8d, 0x64, 0x57, 0xd0, //0x00003e31 leaq $-48(%rdi,%rdx,2), %r12 + 0xff, 0xc6, //0x00003e36 incl %esi + 0xe9, 0x05, 0x00, 0x00, 0x00, //0x00003e38 jmp LBB14_16 + 0x90, 0x90, 0x90, //0x00003e3d .p2align 4, 0x90 + //0x00003e40 LBB14_15 + 0xff, 0xc1, //0x00003e40 incl %ecx + //0x00003e42 LBB14_16 + 0x49, 0x39, 0xc0, //0x00003e42 cmpq %rax, %r8 + 0x0f, 0x84, 0x7d, 0x00, 0x00, 0x00, //0x00003e45 je LBB14_24 + 0x41, 0x0f, 0xb6, 0x7c, 0x07, 0x01, //0x00003e4b movzbl $1(%r15,%rax), %edi + 0x48, 0xff, 0xc0, //0x00003e51 incq %rax + 0x8d, 0x57, 0xd0, //0x00003e54 leal $-48(%rdi), %edx + 0x80, 0xfa, 0x0a, //0x00003e57 cmpb $10, %dl + 0x0f, 0x82, 0xc0, 0xff, 0xff, 0xff, //0x00003e5a jb LBB14_13 + 0xe9, 0x1b, 0x00, 0x00, 0x00, //0x00003e60 jmp LBB14_21 + //0x00003e65 LBB14_18 + 0x31, 0xc9, //0x00003e65 xorl %ecx, %ecx + 0x31, 0xf6, //0x00003e67 xorl %esi, %esi + 0x45, 0x31, 0xe4, //0x00003e69 xorl %r12d, %r12d + 0xe9, 0x5a, 0x00, 0x00, 0x00, //0x00003e6c jmp LBB14_25 + //0x00003e71 LBB14_19 + 0x49, 0x89, 0x36, //0x00003e71 movq %rsi, (%r14) + 0xe9, 0xca, 0x01, 0x00, 0x00, //0x00003e74 jmp LBB14_53 + //0x00003e79 LBB14_20 + 0x45, 0x31, 0xe4, //0x00003e79 xorl %r12d, %r12d + 0x31, 0xf6, //0x00003e7c xorl %esi, %esi + 0x31, 0xc9, //0x00003e7e xorl %ecx, %ecx + //0x00003e80 LBB14_21 + 0x31, 0xd2, //0x00003e80 xorl %edx, %edx + 0x85, 0xc9, //0x00003e82 testl %ecx, %ecx + 0x0f, 0x9f, 0xc2, //0x00003e84 setg %dl + 0x89, 0x55, 0xcc, //0x00003e87 movl %edx, $-52(%rbp) + 0x41, 0xb8, 0x09, 0x00, 0x00, 0x00, //0x00003e8a movl $9, %r8d + 0x40, 0x80, 0xff, 0x2e, //0x00003e90 cmpb $46, %dil + 0x0f, 0x85, 0x41, 0x00, 0x00, 0x00, //0x00003e94 jne LBB14_26 + 0x48, 0xff, 0xc0, //0x00003e9a incq %rax + 0x48, 0xc7, 0x03, 0x08, 0x00, 0x00, 0x00, //0x00003e9d movq $8, (%rbx) + 0x4c, 0x39, 0xe8, //0x00003ea4 cmpq %r13, %rax + 0x0f, 0x83, 0x8c, 0x01, 0x00, 0x00, //0x00003ea7 jae LBB14_52 + 0x41, 0x8a, 0x14, 0x07, //0x00003ead movb (%r15,%rax), %dl + 0x80, 0xc2, 0xd0, //0x00003eb1 addb $-48, %dl + 0x41, 0xb8, 0x08, 0x00, 0x00, 0x00, //0x00003eb4 movl $8, %r8d + 0x80, 0xfa, 0x0a, //0x00003eba cmpb $10, %dl + 0x0f, 0x83, 0xe4, 0xfe, 0xff, 0xff, //0x00003ebd jae LBB14_5 + 0xe9, 0x13, 0x00, 0x00, 0x00, //0x00003ec3 jmp LBB14_26 + //0x00003ec8 LBB14_24 + 0x4c, 0x89, 0xe8, //0x00003ec8 movq %r13, %rax + //0x00003ecb LBB14_25 + 0x31, 0xd2, //0x00003ecb xorl %edx, %edx + 0x85, 0xc9, //0x00003ecd testl %ecx, %ecx + 0x0f, 0x9f, 0xc2, //0x00003ecf setg %dl + 0x89, 0x55, 0xcc, //0x00003ed2 movl %edx, $-52(%rbp) + 0x41, 0xb8, 0x09, 0x00, 0x00, 0x00, //0x00003ed5 movl $9, %r8d + //0x00003edb LBB14_26 + 0x85, 0xc9, //0x00003edb testl %ecx, %ecx + 0x0f, 0x85, 0x4f, 0x00, 0x00, 0x00, //0x00003edd jne LBB14_35 + 0x4d, 0x85, 0xe4, //0x00003ee3 testq %r12, %r12 + 0x0f, 0x85, 0x46, 0x00, 0x00, 0x00, //0x00003ee6 jne LBB14_35 + 0x4c, 0x39, 0xe8, //0x00003eec cmpq %r13, %rax + 0x0f, 0x83, 0x36, 0x00, 0x00, 0x00, //0x00003eef jae LBB14_33 + 0x89, 0xc7, //0x00003ef5 movl %eax, %edi + 0x44, 0x29, 0xef, //0x00003ef7 subl %r13d, %edi + 0x31, 0xf6, //0x00003efa xorl %esi, %esi + 0x31, 0xc9, //0x00003efc xorl %ecx, %ecx + 0x90, 0x90, //0x00003efe .p2align 4, 0x90 + //0x00003f00 LBB14_30 + 0x41, 0x80, 0x3c, 0x07, 0x30, //0x00003f00 cmpb $48, (%r15,%rax) + 0x0f, 0x85, 0x24, 0x00, 0x00, 0x00, //0x00003f05 jne LBB14_34 + 0x48, 0xff, 0xc0, //0x00003f0b incq %rax + 0xff, 0xc9, //0x00003f0e decl %ecx + 0x49, 0x39, 0xc5, //0x00003f10 cmpq %rax, %r13 + 0x0f, 0x85, 0xe7, 0xff, 0xff, 0xff, //0x00003f13 jne LBB14_30 + 0x45, 0x31, 0xe4, //0x00003f19 xorl %r12d, %r12d + 0x41, 0x83, 0xf8, 0x09, //0x00003f1c cmpl $9, %r8d + 0x0f, 0x84, 0x3b, 0x01, 0x00, 0x00, //0x00003f20 je LBB14_55 + 0xe9, 0x6a, 0x01, 0x00, 0x00, //0x00003f26 jmp LBB14_59 + //0x00003f2b LBB14_33 + 0x31, 0xc9, //0x00003f2b xorl %ecx, %ecx + 0x31, 0xf6, //0x00003f2d xorl %esi, %esi + //0x00003f2f LBB14_34 + 0x45, 0x31, 0xe4, //0x00003f2f xorl %r12d, %r12d + //0x00003f32 LBB14_35 + 0x4c, 0x39, 0xe8, //0x00003f32 cmpq %r13, %rax + 0x0f, 0x83, 0x4b, 0x00, 0x00, 0x00, //0x00003f35 jae LBB14_40 + 0x83, 0xfe, 0x12, //0x00003f3b cmpl $18, %esi + 0x0f, 0x8f, 0x42, 0x00, 0x00, 0x00, //0x00003f3e jg LBB14_40 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003f44 .p2align 4, 0x90 + //0x00003f50 LBB14_37 + 0x41, 0x0f, 0xb6, 0x3c, 0x07, //0x00003f50 movzbl (%r15,%rax), %edi + 0x8d, 0x57, 0xd0, //0x00003f55 leal $-48(%rdi), %edx + 0x80, 0xfa, 0x09, //0x00003f58 cmpb $9, %dl + 0x0f, 0x87, 0x25, 0x00, 0x00, 0x00, //0x00003f5b ja LBB14_40 + 0x4b, 0x8d, 0x14, 0xa4, //0x00003f61 leaq (%r12,%r12,4), %rdx + 0x4c, 0x8d, 0x64, 0x57, 0xd0, //0x00003f65 leaq $-48(%rdi,%rdx,2), %r12 + 0xff, 0xc9, //0x00003f6a decl %ecx + 0x48, 0xff, 0xc0, //0x00003f6c incq %rax + 0x4c, 0x39, 0xe8, //0x00003f6f cmpq %r13, %rax + 0x0f, 0x83, 0x0e, 0x00, 0x00, 0x00, //0x00003f72 jae LBB14_40 + 0x8d, 0x56, 0x01, //0x00003f78 leal $1(%rsi), %edx + 0x83, 0xfe, 0x12, //0x00003f7b cmpl $18, %esi + 0x89, 0xd6, //0x00003f7e movl %edx, %esi + 0x0f, 0x8c, 0xca, 0xff, 0xff, 0xff, //0x00003f80 jl LBB14_37 + //0x00003f86 LBB14_40 + 0x4c, 0x39, 0xe8, //0x00003f86 cmpq %r13, %rax + 0x0f, 0x83, 0xc3, 0x00, 0x00, 0x00, //0x00003f89 jae LBB14_54 + 0x41, 0x8a, 0x34, 0x07, //0x00003f8f movb (%r15,%rax), %sil + 0x8d, 0x56, 0xd0, //0x00003f93 leal $-48(%rsi), %edx + 0x80, 0xfa, 0x09, //0x00003f96 cmpb $9, %dl + 0x0f, 0x87, 0x36, 0x00, 0x00, 0x00, //0x00003f99 ja LBB14_46 + 0x49, 0x8d, 0x7d, 0xff, //0x00003f9f leaq $-1(%r13), %rdi + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003fa3 .p2align 4, 0x90 + //0x00003fb0 LBB14_43 + 0x48, 0x39, 0xc7, //0x00003fb0 cmpq %rax, %rdi + 0x0f, 0x84, 0x40, 0x02, 0x00, 0x00, //0x00003fb3 je LBB14_76 + 0x41, 0x0f, 0xb6, 0x74, 0x07, 0x01, //0x00003fb9 movzbl $1(%r15,%rax), %esi + 0x48, 0xff, 0xc0, //0x00003fbf incq %rax + 0x8d, 0x56, 0xd0, //0x00003fc2 leal $-48(%rsi), %edx + 0x80, 0xfa, 0x09, //0x00003fc5 cmpb $9, %dl + 0x0f, 0x86, 0xe2, 0xff, 0xff, 0xff, //0x00003fc8 jbe LBB14_43 + 0xc7, 0x45, 0xcc, 0x01, 0x00, 0x00, 0x00, //0x00003fce movl $1, $-52(%rbp) + //0x00003fd5 LBB14_46 + 0x40, 0x80, 0xce, 0x20, //0x00003fd5 orb $32, %sil + 0x40, 0x80, 0xfe, 0x65, //0x00003fd9 cmpb $101, %sil + 0x0f, 0x85, 0x6f, 0x00, 0x00, 0x00, //0x00003fdd jne LBB14_54 + 0x48, 0x8d, 0x78, 0x01, //0x00003fe3 leaq $1(%rax), %rdi + 0x48, 0xc7, 0x03, 0x08, 0x00, 0x00, 0x00, //0x00003fe7 movq $8, (%rbx) + 0x4c, 0x39, 0xef, //0x00003fee cmpq %r13, %rdi + 0x0f, 0x83, 0x42, 0x00, 0x00, 0x00, //0x00003ff1 jae LBB14_52 + 0x41, 0x8a, 0x34, 0x3f, //0x00003ff7 movb (%r15,%rdi), %sil + 0x40, 0x80, 0xfe, 0x2d, //0x00003ffb cmpb $45, %sil + 0x0f, 0x84, 0x10, 0x00, 0x00, 0x00, //0x00003fff je LBB14_50 + 0x41, 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00004005 movl $1, %r8d + 0x40, 0x80, 0xfe, 0x2b, //0x0000400b cmpb $43, %sil + 0x0f, 0x85, 0x94, 0x02, 0x00, 0x00, //0x0000400f jne LBB14_85 + //0x00004015 LBB14_50 + 0x48, 0x83, 0xc0, 0x02, //0x00004015 addq $2, %rax + 0x4c, 0x39, 0xe8, //0x00004019 cmpq %r13, %rax + 0x0f, 0x83, 0x17, 0x00, 0x00, 0x00, //0x0000401c jae LBB14_52 + 0x31, 0xd2, //0x00004022 xorl %edx, %edx + 0x40, 0x80, 0xfe, 0x2b, //0x00004024 cmpb $43, %sil + 0x0f, 0x94, 0xc2, //0x00004028 sete %dl + 0x44, 0x8d, 0x44, 0x12, 0xff, //0x0000402b leal $-1(%rdx,%rdx), %r8d + 0x41, 0x8a, 0x34, 0x07, //0x00004030 movb (%r15,%rax), %sil + 0xe9, 0x73, 0x02, 0x00, 0x00, //0x00004034 jmp LBB14_86 + //0x00004039 LBB14_52 + 0x4d, 0x89, 0x2e, //0x00004039 movq %r13, (%r14) + 0x48, 0xc7, 0x03, 0xff, 0xff, 0xff, 0xff, //0x0000403c movq $-1, (%rbx) + //0x00004043 LBB14_53 + 0x48, 0x83, 0xc4, 0x38, //0x00004043 addq $56, %rsp + 0x5b, //0x00004047 popq %rbx + 0x41, 0x5c, //0x00004048 popq %r12 + 0x41, 0x5d, //0x0000404a popq %r13 + 0x41, 0x5e, //0x0000404c popq %r14 + 0x41, 0x5f, //0x0000404e popq %r15 + 0x5d, //0x00004050 popq %rbp + 0xc3, //0x00004051 retq + //0x00004052 LBB14_54 + 0x89, 0xcf, //0x00004052 movl %ecx, %edi + 0x49, 0x89, 0xc5, //0x00004054 movq %rax, %r13 + 0x41, 0x83, 0xf8, 0x09, //0x00004057 cmpl $9, %r8d + 0x0f, 0x85, 0x34, 0x00, 0x00, 0x00, //0x0000405b jne LBB14_59 + //0x00004061 LBB14_55 + 0x85, 0xff, //0x00004061 testl %edi, %edi + 0x0f, 0x85, 0x25, 0x00, 0x00, 0x00, //0x00004063 jne LBB14_58 + 0x48, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x00004069 movabsq $-9223372036854775808, %rax + 0x49, 0x63, 0xc9, //0x00004073 movslq %r9d, %rcx + 0x4d, 0x85, 0xe4, //0x00004076 testq %r12, %r12 + 0x0f, 0x89, 0xba, 0x01, 0x00, 0x00, //0x00004079 jns LBB14_80 + 0x4c, 0x89, 0xe2, //0x0000407f movq %r12, %rdx + 0x48, 0x21, 0xca, //0x00004082 andq %rcx, %rdx + 0x48, 0x39, 0xc2, //0x00004085 cmpq %rax, %rdx + 0x0f, 0x84, 0xab, 0x01, 0x00, 0x00, //0x00004088 je LBB14_80 + //0x0000408e LBB14_58 + 0x48, 0xc7, 0x03, 0x08, 0x00, 0x00, 0x00, //0x0000408e movq $8, (%rbx) + //0x00004095 LBB14_59 + 0x48, 0xc7, 0x45, 0xc0, 0x00, 0x00, 0x00, 0x00, //0x00004095 movq $0, $-64(%rbp) + 0xc4, 0xc1, 0xf9, 0x6e, 0xc4, //0x0000409d vmovq %r12, %xmm0 + 0xc5, 0xf9, 0x62, 0x05, 0x46, 0xfc, 0xff, 0xff, //0x000040a2 vpunpckldq $-954(%rip), %xmm0, %xmm0 /* LCPI14_0+0(%rip) */ + 0xc5, 0xf9, 0x5c, 0x05, 0x4e, 0xfc, 0xff, 0xff, //0x000040aa vsubpd $-946(%rip), %xmm0, %xmm0 /* LCPI14_1+0(%rip) */ + 0xc4, 0xe3, 0x79, 0x05, 0xc8, 0x01, //0x000040b2 vpermilpd $1, %xmm0, %xmm1 + 0xc5, 0xf3, 0x58, 0xc0, //0x000040b8 vaddsd %xmm0, %xmm1, %xmm0 + 0xc5, 0xfb, 0x11, 0x45, 0xd0, //0x000040bc vmovsd %xmm0, $-48(%rbp) + 0x4c, 0x89, 0xe0, //0x000040c1 movq %r12, %rax + 0x48, 0xc1, 0xe8, 0x34, //0x000040c4 shrq $52, %rax + 0x0f, 0x84, 0xc8, 0x00, 0x00, 0x00, //0x000040c8 je LBB14_71 + //0x000040ce LBB14_60 + 0x4c, 0x89, 0x5d, 0xb0, //0x000040ce movq %r11, $-80(%rbp) + 0x4c, 0x89, 0x55, 0xa8, //0x000040d2 movq %r10, $-88(%rbp) + 0x48, 0x8d, 0x4d, 0xd0, //0x000040d6 leaq $-48(%rbp), %rcx + 0x48, 0x89, 0xfe, //0x000040da movq %rdi, %rsi + 0x4c, 0x89, 0xe7, //0x000040dd movq %r12, %rdi + 0x48, 0x89, 0x75, 0xb8, //0x000040e0 movq %rsi, $-72(%rbp) + 0x44, 0x89, 0xca, //0x000040e4 movl %r9d, %edx + 0x44, 0x89, 0x4d, 0xc8, //0x000040e7 movl %r9d, $-56(%rbp) + 0xe8, 0xc0, 0xe6, 0xff, 0xff, //0x000040eb callq _atof_eisel_lemire64 + 0x84, 0xc0, //0x000040f0 testb %al, %al + 0x0f, 0x84, 0x42, 0x00, 0x00, 0x00, //0x000040f2 je LBB14_64 + 0x48, 0x8b, 0x75, 0xb8, //0x000040f8 movq $-72(%rbp), %rsi + 0x8b, 0x55, 0xc8, //0x000040fc movl $-56(%rbp), %edx + 0x83, 0x7d, 0xcc, 0x00, //0x000040ff cmpl $0, $-52(%rbp) + 0x0f, 0x84, 0x27, 0x01, 0x00, 0x00, //0x00004103 je LBB14_79 + 0x49, 0xff, 0xc4, //0x00004109 incq %r12 + 0x48, 0x8d, 0x4d, 0xc0, //0x0000410c leaq $-64(%rbp), %rcx + 0x4c, 0x89, 0xe7, //0x00004110 movq %r12, %rdi + 0xe8, 0x98, 0xe6, 0xff, 0xff, //0x00004113 callq _atof_eisel_lemire64 + 0x84, 0xc0, //0x00004118 testb %al, %al + 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x0000411a je LBB14_64 + 0xc5, 0xfb, 0x10, 0x4d, 0xc0, //0x00004120 vmovsd $-64(%rbp), %xmm1 + 0xc5, 0xfb, 0x10, 0x45, 0xd0, //0x00004125 vmovsd $-48(%rbp), %xmm0 + 0xc5, 0xf9, 0x2e, 0xc8, //0x0000412a vucomisd %xmm0, %xmm1 + 0x0f, 0x85, 0x06, 0x00, 0x00, 0x00, //0x0000412e jne LBB14_64 + 0x0f, 0x8b, 0x21, 0x00, 0x00, 0x00, //0x00004134 jnp LBB14_66 + //0x0000413a LBB14_64 + 0x49, 0x8b, 0x06, //0x0000413a movq (%r14), %rax + 0x49, 0x01, 0xc7, //0x0000413d addq %rax, %r15 + 0x4c, 0x89, 0xee, //0x00004140 movq %r13, %rsi + 0x48, 0x29, 0xc6, //0x00004143 subq %rax, %rsi + 0x4c, 0x89, 0xff, //0x00004146 movq %r15, %rdi + 0x48, 0x8b, 0x55, 0xa8, //0x00004149 movq $-88(%rbp), %rdx + 0x48, 0x8b, 0x4d, 0xb0, //0x0000414d movq $-80(%rbp), %rcx + 0xe8, 0x6a, 0xec, 0xff, 0xff, //0x00004151 callq _atof_native + //0x00004156 LBB14_65 + 0xc5, 0xfb, 0x11, 0x45, 0xd0, //0x00004156 vmovsd %xmm0, $-48(%rbp) + //0x0000415b LBB14_66 + 0xc4, 0xe1, 0xf9, 0x7e, 0xc0, //0x0000415b vmovq %xmm0, %rax + //0x00004160 LBB14_67 + 0x48, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x00004160 movabsq $-9223372036854775808, %rcx + 0x48, 0xff, 0xc9, //0x0000416a decq %rcx + 0x48, 0x21, 0xc1, //0x0000416d andq %rax, %rcx + 0x48, 0xba, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x7f, //0x00004170 movabsq $9218868437227405312, %rdx + 0x48, 0x39, 0xd1, //0x0000417a cmpq %rdx, %rcx + 0x0f, 0x85, 0x07, 0x00, 0x00, 0x00, //0x0000417d jne LBB14_69 + 0x48, 0xc7, 0x03, 0xf8, 0xff, 0xff, 0xff, //0x00004183 movq $-8, (%rbx) + //0x0000418a LBB14_69 + 0x48, 0x89, 0x43, 0x08, //0x0000418a movq %rax, $8(%rbx) + //0x0000418e LBB14_70 + 0x4d, 0x89, 0x2e, //0x0000418e movq %r13, (%r14) + 0xe9, 0xad, 0xfe, 0xff, 0xff, //0x00004191 jmp LBB14_53 + //0x00004196 LBB14_71 + 0xc4, 0xe1, 0xf9, 0x7e, 0xc1, //0x00004196 vmovq %xmm0, %rcx + 0x44, 0x89, 0xc8, //0x0000419b movl %r9d, %eax + 0xc1, 0xe8, 0x1f, //0x0000419e shrl $31, %eax + 0x48, 0xc1, 0xe0, 0x3f, //0x000041a1 shlq $63, %rax + 0x48, 0x09, 0xc8, //0x000041a5 orq %rcx, %rax + 0x48, 0x89, 0x45, 0xd0, //0x000041a8 movq %rax, $-48(%rbp) + 0x4d, 0x85, 0xe4, //0x000041ac testq %r12, %r12 + 0x0f, 0x84, 0xab, 0xff, 0xff, 0xff, //0x000041af je LBB14_67 + 0x85, 0xff, //0x000041b5 testl %edi, %edi + 0x0f, 0x84, 0xa3, 0xff, 0xff, 0xff, //0x000041b7 je LBB14_67 + 0xc4, 0xe1, 0xf9, 0x6e, 0xc0, //0x000041bd vmovq %rax, %xmm0 + 0x8d, 0x47, 0xff, //0x000041c2 leal $-1(%rdi), %eax + 0x83, 0xf8, 0x24, //0x000041c5 cmpl $36, %eax + 0x0f, 0x87, 0x43, 0x00, 0x00, 0x00, //0x000041c8 ja LBB14_77 + 0x83, 0xff, 0x17, //0x000041ce cmpl $23, %edi + 0x0f, 0x8c, 0x9d, 0x00, 0x00, 0x00, //0x000041d1 jl LBB14_81 + 0x48, 0x63, 0xc7, //0x000041d7 movslq %edi, %rax + 0x48, 0x8d, 0x0d, 0xcf, 0xef, 0x00, 0x00, //0x000041da leaq $61391(%rip), %rcx /* _P10_TAB+0(%rip) */ + 0xc5, 0xfb, 0x59, 0x84, 0xc1, 0x50, 0xff, 0xff, 0xff, //0x000041e1 vmulsd $-176(%rcx,%rax,8), %xmm0, %xmm0 + 0xc5, 0xfb, 0x11, 0x45, 0xd0, //0x000041ea vmovsd %xmm0, $-48(%rbp) + 0xb8, 0x16, 0x00, 0x00, 0x00, //0x000041ef movl $22, %eax + 0xe9, 0x7d, 0x00, 0x00, 0x00, //0x000041f4 jmp LBB14_82 + //0x000041f9 LBB14_76 + 0xc7, 0x45, 0xcc, 0x01, 0x00, 0x00, 0x00, //0x000041f9 movl $1, $-52(%rbp) + 0x89, 0xcf, //0x00004200 movl %ecx, %edi + 0x41, 0x83, 0xf8, 0x09, //0x00004202 cmpl $9, %r8d + 0x0f, 0x84, 0x55, 0xfe, 0xff, 0xff, //0x00004206 je LBB14_55 + 0xe9, 0x84, 0xfe, 0xff, 0xff, //0x0000420c jmp LBB14_59 + //0x00004211 LBB14_77 + 0x83, 0xff, 0xea, //0x00004211 cmpl $-22, %edi + 0x0f, 0x82, 0xb4, 0xfe, 0xff, 0xff, //0x00004214 jb LBB14_60 + 0xf7, 0xdf, //0x0000421a negl %edi + 0x48, 0x63, 0xc7, //0x0000421c movslq %edi, %rax + 0x48, 0x8d, 0x0d, 0x8a, 0xef, 0x00, 0x00, //0x0000421f leaq $61322(%rip), %rcx /* _P10_TAB+0(%rip) */ + 0xc5, 0xfb, 0x5e, 0x04, 0xc1, //0x00004226 vdivsd (%rcx,%rax,8), %xmm0, %xmm0 + 0xe9, 0x26, 0xff, 0xff, 0xff, //0x0000422b jmp LBB14_65 + //0x00004230 LBB14_79 + 0x48, 0x8b, 0x45, 0xd0, //0x00004230 movq $-48(%rbp), %rax + 0xe9, 0x27, 0xff, 0xff, 0xff, //0x00004234 jmp LBB14_67 + //0x00004239 LBB14_80 + 0xc4, 0xc1, 0xf9, 0x6e, 0xc4, //0x00004239 vmovq %r12, %xmm0 + 0x4c, 0x0f, 0xaf, 0xe1, //0x0000423e imulq %rcx, %r12 + 0xc5, 0xf9, 0x62, 0x05, 0xa6, 0xfa, 0xff, 0xff, //0x00004242 vpunpckldq $-1370(%rip), %xmm0, %xmm0 /* LCPI14_0+0(%rip) */ + 0xc5, 0xf9, 0x5c, 0x05, 0xae, 0xfa, 0xff, 0xff, //0x0000424a vsubpd $-1362(%rip), %xmm0, %xmm0 /* LCPI14_1+0(%rip) */ + 0x4c, 0x89, 0x63, 0x10, //0x00004252 movq %r12, $16(%rbx) + 0xc4, 0xe3, 0x79, 0x05, 0xc8, 0x01, //0x00004256 vpermilpd $1, %xmm0, %xmm1 + 0xc5, 0xf3, 0x58, 0xc0, //0x0000425c vaddsd %xmm0, %xmm1, %xmm0 + 0x48, 0x21, 0xc8, //0x00004260 andq %rcx, %rax + 0xc4, 0xe1, 0xf9, 0x7e, 0xc1, //0x00004263 vmovq %xmm0, %rcx + 0x48, 0x09, 0xc1, //0x00004268 orq %rax, %rcx + 0x48, 0x89, 0x4b, 0x08, //0x0000426b movq %rcx, $8(%rbx) + 0xe9, 0x1a, 0xff, 0xff, 0xff, //0x0000426f jmp LBB14_70 + //0x00004274 LBB14_81 + 0x89, 0xf8, //0x00004274 movl %edi, %eax + //0x00004276 LBB14_82 + 0xc5, 0xf9, 0x2e, 0x05, 0x92, 0xfa, 0xff, 0xff, //0x00004276 vucomisd $-1390(%rip), %xmm0 /* LCPI14_2+0(%rip) */ + 0x0f, 0x87, 0x4a, 0xfe, 0xff, 0xff, //0x0000427e ja LBB14_60 + 0xc5, 0xfb, 0x10, 0x0d, 0x8c, 0xfa, 0xff, 0xff, //0x00004284 vmovsd $-1396(%rip), %xmm1 /* LCPI14_3+0(%rip) */ + 0xc5, 0xf9, 0x2e, 0xc8, //0x0000428c vucomisd %xmm0, %xmm1 + 0x0f, 0x87, 0x38, 0xfe, 0xff, 0xff, //0x00004290 ja LBB14_60 + 0x89, 0xc0, //0x00004296 movl %eax, %eax + 0x48, 0x8d, 0x0d, 0x11, 0xef, 0x00, 0x00, //0x00004298 leaq $61201(%rip), %rcx /* _P10_TAB+0(%rip) */ + 0xc5, 0xfb, 0x59, 0x04, 0xc1, //0x0000429f vmulsd (%rcx,%rax,8), %xmm0, %xmm0 + 0xe9, 0xad, 0xfe, 0xff, 0xff, //0x000042a4 jmp LBB14_65 + //0x000042a9 LBB14_85 + 0x48, 0x89, 0xf8, //0x000042a9 movq %rdi, %rax + //0x000042ac LBB14_86 + 0x8d, 0x7e, 0xd0, //0x000042ac leal $-48(%rsi), %edi + 0x40, 0x80, 0xff, 0x09, //0x000042af cmpb $9, %dil + 0x0f, 0x87, 0xee, 0xfa, 0xff, 0xff, //0x000042b3 ja LBB14_5 + 0x44, 0x89, 0x4d, 0xc8, //0x000042b9 movl %r9d, $-56(%rbp) + 0x4c, 0x39, 0xe8, //0x000042bd cmpq %r13, %rax + 0x0f, 0x83, 0x49, 0x00, 0x00, 0x00, //0x000042c0 jae LBB14_93 0x40, 0x80, 0xff, 0x09, //0x000042c6 cmpb $9, %dil - 0x0f, 0x86, 0xe0, 0xff, 0xff, 0xff, //0x000042ca jbe LBB18_48 - 0x41, 0xbb, 0x01, 0x00, 0x00, 0x00, //0x000042d0 movl $1, %r11d - //0x000042d6 LBB18_51 - 0x80, 0xca, 0x20, //0x000042d6 orb $32, %dl - 0x80, 0xfa, 0x65, //0x000042d9 cmpb $101, %dl - 0x0f, 0x85, 0x5d, 0x00, 0x00, 0x00, //0x000042dc jne LBB18_57 - 0x48, 0x8d, 0x50, 0x01, //0x000042e2 leaq $1(%rax), %rdx - 0x49, 0xc7, 0x06, 0x08, 0x00, 0x00, 0x00, //0x000042e6 movq $8, (%r14) - 0x4c, 0x39, 0xea, //0x000042ed cmpq %r13, %rdx - 0x0f, 0x83, 0x24, 0x01, 0x00, 0x00, //0x000042f0 jae LBB18_68 - 0x44, 0x89, 0x5d, 0xd4, //0x000042f6 movl %r11d, $-44(%rbp) - 0x41, 0x8a, 0x34, 0x17, //0x000042fa movb (%r15,%rdx), %sil - 0x40, 0x80, 0xfe, 0x2d, //0x000042fe cmpb $45, %sil - 0x0f, 0x84, 0x10, 0x00, 0x00, 0x00, //0x00004302 je LBB18_55 - 0x41, 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00004308 movl $1, %r8d - 0x40, 0x80, 0xfe, 0x2b, //0x0000430e cmpb $43, %sil - 0x0f, 0x85, 0xa9, 0x02, 0x00, 0x00, //0x00004312 jne LBB18_90 - //0x00004318 LBB18_55 - 0x48, 0x83, 0xc0, 0x02, //0x00004318 addq $2, %rax - 0x4c, 0x39, 0xe8, //0x0000431c cmpq %r13, %rax - 0x0f, 0x83, 0xf5, 0x00, 0x00, 0x00, //0x0000431f jae LBB18_68 - 0x31, 0xd2, //0x00004325 xorl %edx, %edx - 0x40, 0x80, 0xfe, 0x2b, //0x00004327 cmpb $43, %sil - 0x0f, 0x94, 0xc2, //0x0000432b sete %dl - 0x44, 0x8d, 0x04, 0x12, //0x0000432e leal (%rdx,%rdx), %r8d - 0x41, 0x83, 0xc0, 0xff, //0x00004332 addl $-1, %r8d - 0x41, 0x8a, 0x34, 0x07, //0x00004336 movb (%r15,%rax), %sil - 0xe9, 0x85, 0x02, 0x00, 0x00, //0x0000433a jmp LBB18_91 - //0x0000433f LBB18_57 - 0x89, 0xce, //0x0000433f movl %ecx, %esi - 0x49, 0x89, 0xc5, //0x00004341 movq %rax, %r13 - 0x80, 0x7d, 0xd4, 0x00, //0x00004344 cmpb $0, $-44(%rbp) - 0x0f, 0x84, 0x34, 0x00, 0x00, 0x00, //0x00004348 je LBB18_62 - //0x0000434e LBB18_58 - 0x85, 0xf6, //0x0000434e testl %esi, %esi - 0x0f, 0x85, 0x25, 0x00, 0x00, 0x00, //0x00004350 jne LBB18_61 - 0x48, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x00004356 movabsq $-9223372036854775808, %rax - 0x49, 0x63, 0xca, //0x00004360 movslq %r10d, %rcx - 0x4d, 0x85, 0xe4, //0x00004363 testq %r12, %r12 - 0x0f, 0x89, 0xed, 0x00, 0x00, 0x00, //0x00004366 jns LBB18_72 - 0x4c, 0x89, 0xe2, //0x0000436c movq %r12, %rdx - 0x48, 0x21, 0xca, //0x0000436f andq %rcx, %rdx - 0x48, 0x39, 0xc2, //0x00004372 cmpq %rax, %rdx - 0x0f, 0x84, 0xde, 0x00, 0x00, 0x00, //0x00004375 je LBB18_72 - //0x0000437b LBB18_61 - 0x49, 0xc7, 0x06, 0x08, 0x00, 0x00, 0x00, //0x0000437b movq $8, (%r14) - //0x00004382 LBB18_62 - 0x48, 0xc7, 0x45, 0xb0, 0x00, 0x00, 0x00, 0x00, //0x00004382 movq $0, $-80(%rbp) - 0xc4, 0xc1, 0xf9, 0x6e, 0xc4, //0x0000438a vmovq %r12, %xmm0 - 0xc5, 0xf9, 0x62, 0x05, 0x29, 0xfc, 0xff, 0xff, //0x0000438f vpunpckldq $-983(%rip), %xmm0, %xmm0 /* LCPI18_0+0(%rip) */ - 0xc5, 0xf9, 0x5c, 0x05, 0x31, 0xfc, 0xff, 0xff, //0x00004397 vsubpd $-975(%rip), %xmm0, %xmm0 /* LCPI18_1+0(%rip) */ - 0xc4, 0xe3, 0x79, 0x05, 0xc8, 0x01, //0x0000439f vpermilpd $1, %xmm0, %xmm1 - 0xc5, 0xf3, 0x58, 0xc0, //0x000043a5 vaddsd %xmm0, %xmm1, %xmm0 - 0xc5, 0xfb, 0x11, 0x45, 0xc0, //0x000043a9 vmovsd %xmm0, $-64(%rbp) - 0x4c, 0x89, 0xe0, //0x000043ae movq %r12, %rax - 0x48, 0xc1, 0xe8, 0x34, //0x000043b1 shrq $52, %rax - 0x0f, 0x85, 0x23, 0x01, 0x00, 0x00, //0x000043b5 jne LBB18_78 - 0xc4, 0xe1, 0xf9, 0x7e, 0xc1, //0x000043bb vmovq %xmm0, %rcx - 0x44, 0x89, 0xd0, //0x000043c0 movl %r10d, %eax - 0xc1, 0xe8, 0x1f, //0x000043c3 shrl $31, %eax - 0x48, 0xc1, 0xe0, 0x3f, //0x000043c6 shlq $63, %rax - 0x48, 0x09, 0xc8, //0x000043ca orq %rcx, %rax - 0x48, 0x89, 0x45, 0xc0, //0x000043cd movq %rax, $-64(%rbp) - 0x85, 0xf6, //0x000043d1 testl %esi, %esi - 0x0f, 0x84, 0xa6, 0x01, 0x00, 0x00, //0x000043d3 je LBB18_85 - 0x4d, 0x85, 0xe4, //0x000043d9 testq %r12, %r12 - 0x0f, 0x84, 0x9d, 0x01, 0x00, 0x00, //0x000043dc je LBB18_85 - 0xc4, 0xe1, 0xf9, 0x6e, 0xc0, //0x000043e2 vmovq %rax, %xmm0 - 0x8d, 0x46, 0xff, //0x000043e7 leal $-1(%rsi), %eax - 0x83, 0xf8, 0x24, //0x000043ea cmpl $36, %eax - 0x0f, 0x87, 0x4a, 0x00, 0x00, 0x00, //0x000043ed ja LBB18_70 - 0x83, 0xfe, 0x17, //0x000043f3 cmpl $23, %esi - 0x0f, 0x8c, 0x9f, 0x00, 0x00, 0x00, //0x000043f6 jl LBB18_73 - 0x8d, 0x46, 0xea, //0x000043fc leal $-22(%rsi), %eax - 0x48, 0x8d, 0x0d, 0xaa, 0xf2, 0x00, 0x00, //0x000043ff leaq $62122(%rip), %rcx /* _P10_TAB+0(%rip) */ - 0xc5, 0xfb, 0x59, 0x04, 0xc1, //0x00004406 vmulsd (%rcx,%rax,8), %xmm0, %xmm0 - 0xc5, 0xfb, 0x11, 0x45, 0xc0, //0x0000440b vmovsd %xmm0, $-64(%rbp) - 0xb8, 0x16, 0x00, 0x00, 0x00, //0x00004410 movl $22, %eax - 0xe9, 0x83, 0x00, 0x00, 0x00, //0x00004415 jmp LBB18_74 - //0x0000441a LBB18_68 - 0x48, 0x8b, 0x45, 0xc8, //0x0000441a movq $-56(%rbp), %rax - 0x4c, 0x89, 0x28, //0x0000441e movq %r13, (%rax) - 0xe9, 0x59, 0xfc, 0xff, 0xff, //0x00004421 jmp LBB18_7 - //0x00004426 LBB18_69 - 0x41, 0xbb, 0x01, 0x00, 0x00, 0x00, //0x00004426 movl $1, %r11d - 0x89, 0xce, //0x0000442c movl %ecx, %esi - 0x80, 0x7d, 0xd4, 0x00, //0x0000442e cmpb $0, $-44(%rbp) - 0x0f, 0x85, 0x16, 0xff, 0xff, 0xff, //0x00004432 jne LBB18_58 - 0xe9, 0x45, 0xff, 0xff, 0xff, //0x00004438 jmp LBB18_62 - //0x0000443d LBB18_70 - 0x83, 0xfe, 0xea, //0x0000443d cmpl $-22, %esi - 0x0f, 0x82, 0x98, 0x00, 0x00, 0x00, //0x00004440 jb LBB18_78 - 0xf7, 0xde, //0x00004446 negl %esi - 0x48, 0x8d, 0x05, 0x61, 0xf2, 0x00, 0x00, //0x00004448 leaq $62049(%rip), %rax /* _P10_TAB+0(%rip) */ - 0xc5, 0xfb, 0x5e, 0x04, 0xf0, //0x0000444f vdivsd (%rax,%rsi,8), %xmm0, %xmm0 - 0xe9, 0x72, 0x00, 0x00, 0x00, //0x00004454 jmp LBB18_77 - //0x00004459 LBB18_72 - 0xc4, 0xc1, 0xf9, 0x6e, 0xc4, //0x00004459 vmovq %r12, %xmm0 - 0x4c, 0x0f, 0xaf, 0xe1, //0x0000445e imulq %rcx, %r12 - 0xc5, 0xf9, 0x62, 0x05, 0x56, 0xfb, 0xff, 0xff, //0x00004462 vpunpckldq $-1194(%rip), %xmm0, %xmm0 /* LCPI18_0+0(%rip) */ - 0xc5, 0xf9, 0x5c, 0x05, 0x5e, 0xfb, 0xff, 0xff, //0x0000446a vsubpd $-1186(%rip), %xmm0, %xmm0 /* LCPI18_1+0(%rip) */ - 0x4d, 0x89, 0x66, 0x10, //0x00004472 movq %r12, $16(%r14) - 0xc4, 0xe3, 0x79, 0x05, 0xc8, 0x01, //0x00004476 vpermilpd $1, %xmm0, %xmm1 - 0xc5, 0xf3, 0x58, 0xc0, //0x0000447c vaddsd %xmm0, %xmm1, %xmm0 - 0x48, 0x21, 0xc8, //0x00004480 andq %rcx, %rax - 0xc4, 0xe1, 0xf9, 0x7e, 0xc1, //0x00004483 vmovq %xmm0, %rcx - 0x48, 0x09, 0xc1, //0x00004488 orq %rax, %rcx - 0x49, 0x89, 0x4e, 0x08, //0x0000448b movq %rcx, $8(%r14) - 0x48, 0x8b, 0x45, 0xc8, //0x0000448f movq $-56(%rbp), %rax - 0x4c, 0x89, 0x28, //0x00004493 movq %r13, (%rax) - 0xe9, 0xeb, 0xfb, 0xff, 0xff, //0x00004496 jmp LBB18_8 - //0x0000449b LBB18_73 - 0x89, 0xf0, //0x0000449b movl %esi, %eax - //0x0000449d LBB18_74 - 0xc5, 0xf9, 0x2e, 0x05, 0x3b, 0xfb, 0xff, 0xff, //0x0000449d vucomisd $-1221(%rip), %xmm0 /* LCPI18_2+0(%rip) */ - 0x0f, 0x87, 0x33, 0x00, 0x00, 0x00, //0x000044a5 ja LBB18_78 - 0xc5, 0xfb, 0x10, 0x0d, 0x35, 0xfb, 0xff, 0xff, //0x000044ab vmovsd $-1227(%rip), %xmm1 /* LCPI18_3+0(%rip) */ - 0xc5, 0xf9, 0x2e, 0xc8, //0x000044b3 vucomisd %xmm0, %xmm1 - 0x0f, 0x87, 0x21, 0x00, 0x00, 0x00, //0x000044b7 ja LBB18_78 - 0x89, 0xc0, //0x000044bd movl %eax, %eax - 0x48, 0x8d, 0x0d, 0xea, 0xf1, 0x00, 0x00, //0x000044bf leaq $61930(%rip), %rcx /* _P10_TAB+0(%rip) */ - 0xc5, 0xfb, 0x59, 0x04, 0xc1, //0x000044c6 vmulsd (%rcx,%rax,8), %xmm0, %xmm0 - //0x000044cb LBB18_77 - 0x48, 0x8b, 0x5d, 0xc8, //0x000044cb movq $-56(%rbp), %rbx - 0xc5, 0xfb, 0x11, 0x45, 0xc0, //0x000044cf vmovsd %xmm0, $-64(%rbp) - 0xc4, 0xe1, 0xf9, 0x7e, 0xc0, //0x000044d4 vmovq %xmm0, %rax - 0xe9, 0xa5, 0x00, 0x00, 0x00, //0x000044d9 jmp LBB18_86 - //0x000044de LBB18_78 - 0x44, 0x89, 0x5d, 0xd4, //0x000044de movl %r11d, $-44(%rbp) - 0x48, 0x8d, 0x4d, 0xc0, //0x000044e2 leaq $-64(%rbp), %rcx - 0x4c, 0x89, 0xe7, //0x000044e6 movq %r12, %rdi - 0x44, 0x89, 0xd2, //0x000044e9 movl %r10d, %edx - 0x44, 0x89, 0xd3, //0x000044ec movl %r10d, %ebx - 0x48, 0x89, 0x75, 0xa8, //0x000044ef movq %rsi, $-88(%rbp) - 0xe8, 0x68, 0xe6, 0xff, 0xff, //0x000044f3 callq _atof_eisel_lemire64 - 0x84, 0xc0, //0x000044f8 testb %al, %al - 0x0f, 0x84, 0x4c, 0x00, 0x00, 0x00, //0x000044fa je LBB18_83 - 0x48, 0x8b, 0x75, 0xa8, //0x00004500 movq $-88(%rbp), %rsi - 0x83, 0x7d, 0xd4, 0x00, //0x00004504 cmpl $0, $-44(%rbp) - 0x0f, 0x84, 0x6d, 0x00, 0x00, 0x00, //0x00004508 je LBB18_84 - 0x89, 0xda, //0x0000450e movl %ebx, %edx - 0x49, 0x83, 0xc4, 0x01, //0x00004510 addq $1, %r12 - 0x48, 0x8d, 0x4d, 0xb0, //0x00004514 leaq $-80(%rbp), %rcx - 0x4c, 0x89, 0xe7, //0x00004518 movq %r12, %rdi - 0xe8, 0x40, 0xe6, 0xff, 0xff, //0x0000451b callq _atof_eisel_lemire64 - 0x84, 0xc0, //0x00004520 testb %al, %al - 0x0f, 0x84, 0x24, 0x00, 0x00, 0x00, //0x00004522 je LBB18_83 - 0xc5, 0xfb, 0x10, 0x4d, 0xb0, //0x00004528 vmovsd $-80(%rbp), %xmm1 - 0xc5, 0xfb, 0x10, 0x45, 0xc0, //0x0000452d vmovsd $-64(%rbp), %xmm0 - 0xc5, 0xf9, 0x2e, 0xc8, //0x00004532 vucomisd %xmm0, %xmm1 - 0x0f, 0x85, 0x10, 0x00, 0x00, 0x00, //0x00004536 jne LBB18_83 - 0x0f, 0x8a, 0x0a, 0x00, 0x00, 0x00, //0x0000453c jp LBB18_83 - 0xc4, 0xe1, 0xf9, 0x7e, 0xc0, //0x00004542 vmovq %xmm0, %rax - 0xe9, 0x33, 0x00, 0x00, 0x00, //0x00004547 jmp LBB18_85 - //0x0000454c LBB18_83 - 0x48, 0x8b, 0x5d, 0xc8, //0x0000454c movq $-56(%rbp), %rbx - 0x48, 0x8b, 0x03, //0x00004550 movq (%rbx), %rax - 0x49, 0x01, 0xc7, //0x00004553 addq %rax, %r15 - 0x4c, 0x89, 0xee, //0x00004556 movq %r13, %rsi - 0x48, 0x29, 0xc6, //0x00004559 subq %rax, %rsi - 0x4c, 0x89, 0xff, //0x0000455c movq %r15, %rdi - 0x48, 0x8b, 0x55, 0x98, //0x0000455f movq $-104(%rbp), %rdx - 0x48, 0x8b, 0x4d, 0xa0, //0x00004563 movq $-96(%rbp), %rcx - 0xe8, 0x64, 0xeb, 0xff, 0xff, //0x00004567 callq _atof_native - 0xc5, 0xfb, 0x11, 0x45, 0xc0, //0x0000456c vmovsd %xmm0, $-64(%rbp) - 0xc4, 0xe1, 0xf9, 0x7e, 0xc0, //0x00004571 vmovq %xmm0, %rax - 0xe9, 0x0d, 0x00, 0x00, 0x00, //0x00004576 jmp LBB18_87 - //0x0000457b LBB18_84 - 0x48, 0x8b, 0x45, 0xc0, //0x0000457b movq $-64(%rbp), %rax - //0x0000457f LBB18_85 - 0x48, 0x8b, 0x5d, 0xc8, //0x0000457f movq $-56(%rbp), %rbx - //0x00004583 LBB18_86 - 0xc4, 0xe1, 0xf9, 0x6e, 0xc0, //0x00004583 vmovq %rax, %xmm0 - //0x00004588 LBB18_87 - 0x48, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x00004588 movabsq $-9223372036854775808, %rcx - 0x48, 0x83, 0xc1, 0xff, //0x00004592 addq $-1, %rcx - 0x48, 0x21, 0xc1, //0x00004596 andq %rax, %rcx - 0x48, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x7f, //0x00004599 movabsq $9218868437227405312, %rax - 0x48, 0x39, 0xc1, //0x000045a3 cmpq %rax, %rcx - 0x0f, 0x85, 0x07, 0x00, 0x00, 0x00, //0x000045a6 jne LBB18_89 - 0x49, 0xc7, 0x06, 0xf8, 0xff, 0xff, 0xff, //0x000045ac movq $-8, (%r14) - //0x000045b3 LBB18_89 - 0xc4, 0xc1, 0x7b, 0x11, 0x46, 0x08, //0x000045b3 vmovsd %xmm0, $8(%r14) - 0x4c, 0x89, 0x2b, //0x000045b9 movq %r13, (%rbx) - 0xe9, 0xc5, 0xfa, 0xff, 0xff, //0x000045bc jmp LBB18_8 - //0x000045c1 LBB18_90 - 0x48, 0x89, 0xd0, //0x000045c1 movq %rdx, %rax - //0x000045c4 LBB18_91 - 0x8d, 0x7e, 0xd0, //0x000045c4 leal $-48(%rsi), %edi - 0x40, 0x80, 0xff, 0x09, //0x000045c7 cmpb $9, %dil - 0x0f, 0x86, 0x13, 0x00, 0x00, 0x00, //0x000045cb jbe LBB18_93 - //0x000045d1 LBB18_92 - 0x48, 0x8b, 0x4d, 0xc8, //0x000045d1 movq $-56(%rbp), %rcx - 0x48, 0x89, 0x01, //0x000045d5 movq %rax, (%rcx) - 0x49, 0xc7, 0x06, 0xfe, 0xff, 0xff, 0xff, //0x000045d8 movq $-2, (%r14) - 0xe9, 0xa2, 0xfa, 0xff, 0xff, //0x000045df jmp LBB18_8 - //0x000045e4 LBB18_93 - 0x4c, 0x39, 0xe8, //0x000045e4 cmpq %r13, %rax - 0x0f, 0x83, 0x4a, 0x00, 0x00, 0x00, //0x000045e7 jae LBB18_99 - 0x40, 0x80, 0xff, 0x09, //0x000045ed cmpb $9, %dil - 0x0f, 0x87, 0x40, 0x00, 0x00, 0x00, //0x000045f1 ja LBB18_99 - 0x4d, 0x8d, 0x4d, 0xff, //0x000045f7 leaq $-1(%r13), %r9 - 0x31, 0xff, //0x000045fb xorl %edi, %edi - //0x000045fd LBB18_96 - 0x89, 0xfa, //0x000045fd movl %edi, %edx - 0x40, 0x0f, 0xb6, 0xf6, //0x000045ff movzbl %sil, %esi - 0x81, 0xff, 0x10, 0x27, 0x00, 0x00, //0x00004603 cmpl $10000, %edi - 0x8d, 0x3c, 0x92, //0x00004609 leal (%rdx,%rdx,4), %edi - 0x8d, 0x7c, 0x7e, 0xd0, //0x0000460c leal $-48(%rsi,%rdi,2), %edi - 0x0f, 0x4d, 0xfa, //0x00004610 cmovgel %edx, %edi - 0x49, 0x39, 0xc1, //0x00004613 cmpq %rax, %r9 - 0x0f, 0x84, 0x22, 0x00, 0x00, 0x00, //0x00004616 je LBB18_100 - 0x41, 0x0f, 0xb6, 0x74, 0x07, 0x01, //0x0000461c movzbl $1(%r15,%rax), %esi - 0x8d, 0x56, 0xd0, //0x00004622 leal $-48(%rsi), %edx - 0x48, 0x83, 0xc0, 0x01, //0x00004625 addq $1, %rax - 0x80, 0xfa, 0x0a, //0x00004629 cmpb $10, %dl - 0x0f, 0x82, 0xcb, 0xff, 0xff, 0xff, //0x0000462c jb LBB18_96 - 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x00004632 jmp LBB18_101 - //0x00004637 LBB18_99 - 0x31, 0xff, //0x00004637 xorl %edi, %edi - 0xe9, 0x03, 0x00, 0x00, 0x00, //0x00004639 jmp LBB18_101 - //0x0000463e LBB18_100 - 0x4c, 0x89, 0xe8, //0x0000463e movq %r13, %rax - //0x00004641 LBB18_101 - 0x48, 0x89, 0xfe, //0x00004641 movq %rdi, %rsi - 0x41, 0x0f, 0xaf, 0xf0, //0x00004644 imull %r8d, %esi - 0x01, 0xce, //0x00004648 addl %ecx, %esi - 0x49, 0x89, 0xc5, //0x0000464a movq %rax, %r13 - 0x44, 0x8b, 0x5d, 0xd4, //0x0000464d movl $-44(%rbp), %r11d - 0xe9, 0x2c, 0xfd, 0xff, 0xff, //0x00004651 jmp LBB18_62 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00004656 .p2align 4, 0x90 - //0x00004660 _vsigned - 0x55, //0x00004660 pushq %rbp - 0x48, 0x89, 0xe5, //0x00004661 movq %rsp, %rbp - 0x53, //0x00004664 pushq %rbx - 0x48, 0x8b, 0x06, //0x00004665 movq (%rsi), %rax - 0x4c, 0x8b, 0x0f, //0x00004668 movq (%rdi), %r9 - 0x4c, 0x8b, 0x5f, 0x08, //0x0000466b movq $8(%rdi), %r11 - 0x48, 0xc7, 0x02, 0x09, 0x00, 0x00, 0x00, //0x0000466f movq $9, (%rdx) - 0xc5, 0xf8, 0x57, 0xc0, //0x00004676 vxorps %xmm0, %xmm0, %xmm0 - 0xc5, 0xf8, 0x11, 0x42, 0x08, //0x0000467a vmovups %xmm0, $8(%rdx) - 0x48, 0x8b, 0x0e, //0x0000467f movq (%rsi), %rcx - 0x48, 0x89, 0x4a, 0x18, //0x00004682 movq %rcx, $24(%rdx) - 0x4c, 0x39, 0xd8, //0x00004686 cmpq %r11, %rax - 0x0f, 0x83, 0x45, 0x00, 0x00, 0x00, //0x00004689 jae LBB19_1 - 0x41, 0x8a, 0x0c, 0x01, //0x0000468f movb (%r9,%rax), %cl - 0x41, 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00004693 movl $1, %r8d - 0x80, 0xf9, 0x2d, //0x00004699 cmpb $45, %cl - 0x0f, 0x85, 0x18, 0x00, 0x00, 0x00, //0x0000469c jne LBB19_5 - 0x48, 0x83, 0xc0, 0x01, //0x000046a2 addq $1, %rax - 0x4c, 0x39, 0xd8, //0x000046a6 cmpq %r11, %rax - 0x0f, 0x83, 0x25, 0x00, 0x00, 0x00, //0x000046a9 jae LBB19_1 - 0x41, 0x8a, 0x0c, 0x01, //0x000046af movb (%r9,%rax), %cl - 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000046b3 movq $-1, %r8 - //0x000046ba LBB19_5 - 0x8d, 0x79, 0xd0, //0x000046ba leal $-48(%rcx), %edi - 0x40, 0x80, 0xff, 0x0a, //0x000046bd cmpb $10, %dil - 0x0f, 0x82, 0x1a, 0x00, 0x00, 0x00, //0x000046c1 jb LBB19_7 - 0x48, 0x89, 0x06, //0x000046c7 movq %rax, (%rsi) - 0x48, 0xc7, 0x02, 0xfe, 0xff, 0xff, 0xff, //0x000046ca movq $-2, (%rdx) - 0x5b, //0x000046d1 popq %rbx - 0x5d, //0x000046d2 popq %rbp - 0xc3, //0x000046d3 retq - //0x000046d4 LBB19_1 - 0x4c, 0x89, 0x1e, //0x000046d4 movq %r11, (%rsi) - 0x48, 0xc7, 0x02, 0xff, 0xff, 0xff, 0xff, //0x000046d7 movq $-1, (%rdx) - 0x5b, //0x000046de popq %rbx - 0x5d, //0x000046df popq %rbp - 0xc3, //0x000046e0 retq - //0x000046e1 LBB19_7 - 0x80, 0xf9, 0x30, //0x000046e1 cmpb $48, %cl - 0x0f, 0x85, 0x35, 0x00, 0x00, 0x00, //0x000046e4 jne LBB19_12 - 0x48, 0x8d, 0x78, 0x01, //0x000046ea leaq $1(%rax), %rdi - 0x4c, 0x39, 0xd8, //0x000046ee cmpq %r11, %rax - 0x0f, 0x83, 0x82, 0x00, 0x00, 0x00, //0x000046f1 jae LBB19_11 - 0x41, 0x8a, 0x0c, 0x39, //0x000046f7 movb (%r9,%rdi), %cl - 0x80, 0xc1, 0xd2, //0x000046fb addb $-46, %cl - 0x80, 0xf9, 0x37, //0x000046fe cmpb $55, %cl - 0x0f, 0x87, 0x72, 0x00, 0x00, 0x00, //0x00004701 ja LBB19_11 - 0x44, 0x0f, 0xb6, 0xd1, //0x00004707 movzbl %cl, %r10d - 0x48, 0xb9, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, //0x0000470b movabsq $36028797027352577, %rcx - 0x4c, 0x0f, 0xa3, 0xd1, //0x00004715 btq %r10, %rcx - 0x0f, 0x83, 0x5a, 0x00, 0x00, 0x00, //0x00004719 jae LBB19_11 - //0x0000471f LBB19_12 - 0x4c, 0x39, 0xd8, //0x0000471f cmpq %r11, %rax - 0x4d, 0x89, 0xda, //0x00004722 movq %r11, %r10 - 0x4c, 0x0f, 0x47, 0xd0, //0x00004725 cmovaq %rax, %r10 - 0x31, 0xc9, //0x00004729 xorl %ecx, %ecx - 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000472b .p2align 4, 0x90 - //0x00004730 LBB19_13 - 0x49, 0x39, 0xc2, //0x00004730 cmpq %rax, %r10 - 0x0f, 0x84, 0x81, 0x00, 0x00, 0x00, //0x00004733 je LBB19_23 - 0x49, 0x0f, 0xbe, 0x3c, 0x01, //0x00004739 movsbq (%r9,%rax), %rdi - 0x8d, 0x5f, 0xd0, //0x0000473e leal $-48(%rdi), %ebx - 0x80, 0xfb, 0x09, //0x00004741 cmpb $9, %bl - 0x0f, 0x87, 0x35, 0x00, 0x00, 0x00, //0x00004744 ja LBB19_18 - 0x48, 0x6b, 0xc9, 0x0a, //0x0000474a imulq $10, %rcx, %rcx - 0x0f, 0x80, 0x14, 0x00, 0x00, 0x00, //0x0000474e jo LBB19_17 - 0x48, 0x83, 0xc0, 0x01, //0x00004754 addq $1, %rax - 0x83, 0xc7, 0xd0, //0x00004758 addl $-48, %edi - 0x49, 0x0f, 0xaf, 0xf8, //0x0000475b imulq %r8, %rdi - 0x48, 0x01, 0xf9, //0x0000475f addq %rdi, %rcx - 0x0f, 0x81, 0xc8, 0xff, 0xff, 0xff, //0x00004762 jno LBB19_13 - //0x00004768 LBB19_17 - 0x48, 0x83, 0xc0, 0xff, //0x00004768 addq $-1, %rax - 0x48, 0x89, 0x06, //0x0000476c movq %rax, (%rsi) - 0x48, 0xc7, 0x02, 0xfb, 0xff, 0xff, 0xff, //0x0000476f movq $-5, (%rdx) - 0x5b, //0x00004776 popq %rbx - 0x5d, //0x00004777 popq %rbp - 0xc3, //0x00004778 retq - //0x00004779 LBB19_11 - 0x48, 0x89, 0x3e, //0x00004779 movq %rdi, (%rsi) - 0x5b, //0x0000477c popq %rbx - 0x5d, //0x0000477d popq %rbp - 0xc3, //0x0000477e retq - //0x0000477f LBB19_18 - 0x4c, 0x39, 0xd8, //0x0000477f cmpq %r11, %rax - 0x0f, 0x83, 0x2f, 0x00, 0x00, 0x00, //0x00004782 jae LBB19_22 - 0x41, 0x8a, 0x3c, 0x01, //0x00004788 movb (%r9,%rax), %dil - 0x40, 0x80, 0xff, 0x2e, //0x0000478c cmpb $46, %dil - 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x00004790 je LBB19_25 - 0x40, 0x80, 0xff, 0x45, //0x00004796 cmpb $69, %dil - 0x0f, 0x84, 0x0a, 0x00, 0x00, 0x00, //0x0000479a je LBB19_25 - 0x40, 0x80, 0xff, 0x65, //0x000047a0 cmpb $101, %dil - 0x0f, 0x85, 0x0d, 0x00, 0x00, 0x00, //0x000047a4 jne LBB19_22 - //0x000047aa LBB19_25 - 0x48, 0x89, 0x06, //0x000047aa movq %rax, (%rsi) - 0x48, 0xc7, 0x02, 0xfa, 0xff, 0xff, 0xff, //0x000047ad movq $-6, (%rdx) - 0x5b, //0x000047b4 popq %rbx - 0x5d, //0x000047b5 popq %rbp - 0xc3, //0x000047b6 retq - //0x000047b7 LBB19_22 - 0x49, 0x89, 0xc2, //0x000047b7 movq %rax, %r10 - //0x000047ba LBB19_23 - 0x4c, 0x89, 0x16, //0x000047ba movq %r10, (%rsi) - 0x48, 0x89, 0x4a, 0x10, //0x000047bd movq %rcx, $16(%rdx) - 0x5b, //0x000047c1 popq %rbx - 0x5d, //0x000047c2 popq %rbp - 0xc3, //0x000047c3 retq - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000047c4 .p2align 4, 0x90 - //0x000047d0 _vunsigned - 0x55, //0x000047d0 pushq %rbp - 0x48, 0x89, 0xe5, //0x000047d1 movq %rsp, %rbp - 0x41, 0x56, //0x000047d4 pushq %r14 - 0x53, //0x000047d6 pushq %rbx - 0x49, 0x89, 0xd0, //0x000047d7 movq %rdx, %r8 - 0x48, 0x8b, 0x0e, //0x000047da movq (%rsi), %rcx - 0x4c, 0x8b, 0x0f, //0x000047dd movq (%rdi), %r9 - 0x4c, 0x8b, 0x77, 0x08, //0x000047e0 movq $8(%rdi), %r14 - 0x48, 0xc7, 0x02, 0x09, 0x00, 0x00, 0x00, //0x000047e4 movq $9, (%rdx) - 0xc5, 0xf8, 0x57, 0xc0, //0x000047eb vxorps %xmm0, %xmm0, %xmm0 - 0xc5, 0xf8, 0x11, 0x42, 0x08, //0x000047ef vmovups %xmm0, $8(%rdx) - 0x48, 0x8b, 0x06, //0x000047f4 movq (%rsi), %rax - 0x48, 0x89, 0x42, 0x18, //0x000047f7 movq %rax, $24(%rdx) - 0x4c, 0x39, 0xf1, //0x000047fb cmpq %r14, %rcx - 0x0f, 0x83, 0x1b, 0x00, 0x00, 0x00, //0x000047fe jae LBB20_1 - 0x41, 0x8a, 0x04, 0x09, //0x00004804 movb (%r9,%rcx), %al - 0x3c, 0x2d, //0x00004808 cmpb $45, %al - 0x0f, 0x85, 0x1e, 0x00, 0x00, 0x00, //0x0000480a jne LBB20_4 - //0x00004810 LBB20_3 - 0x48, 0x89, 0x0e, //0x00004810 movq %rcx, (%rsi) - 0x49, 0xc7, 0x00, 0xfa, 0xff, 0xff, 0xff, //0x00004813 movq $-6, (%r8) - 0x5b, //0x0000481a popq %rbx - 0x41, 0x5e, //0x0000481b popq %r14 - 0x5d, //0x0000481d popq %rbp - 0xc3, //0x0000481e retq - //0x0000481f LBB20_1 - 0x4c, 0x89, 0x36, //0x0000481f movq %r14, (%rsi) - 0x49, 0xc7, 0x00, 0xff, 0xff, 0xff, 0xff, //0x00004822 movq $-1, (%r8) - 0x5b, //0x00004829 popq %rbx - 0x41, 0x5e, //0x0000482a popq %r14 - 0x5d, //0x0000482c popq %rbp - 0xc3, //0x0000482d retq - //0x0000482e LBB20_4 - 0x8d, 0x50, 0xd0, //0x0000482e leal $-48(%rax), %edx - 0x80, 0xfa, 0x0a, //0x00004831 cmpb $10, %dl - 0x0f, 0x82, 0x0f, 0x00, 0x00, 0x00, //0x00004834 jb LBB20_6 - 0x48, 0x89, 0x0e, //0x0000483a movq %rcx, (%rsi) - 0x49, 0xc7, 0x00, 0xfe, 0xff, 0xff, 0xff, //0x0000483d movq $-2, (%r8) - 0x5b, //0x00004844 popq %rbx - 0x41, 0x5e, //0x00004845 popq %r14 - 0x5d, //0x00004847 popq %rbp - 0xc3, //0x00004848 retq - //0x00004849 LBB20_6 - 0x3c, 0x30, //0x00004849 cmpb $48, %al - 0x0f, 0x85, 0x26, 0x00, 0x00, 0x00, //0x0000484b jne LBB20_10 - 0x41, 0x8a, 0x44, 0x09, 0x01, //0x00004851 movb $1(%r9,%rcx), %al - 0x04, 0xd2, //0x00004856 addb $-46, %al - 0x3c, 0x37, //0x00004858 cmpb $55, %al - 0x0f, 0x87, 0xc5, 0x00, 0x00, 0x00, //0x0000485a ja LBB20_9 - 0x0f, 0xb6, 0xc0, //0x00004860 movzbl %al, %eax - 0x48, 0xba, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, //0x00004863 movabsq $36028797027352577, %rdx - 0x48, 0x0f, 0xa3, 0xc2, //0x0000486d btq %rax, %rdx - 0x0f, 0x83, 0xae, 0x00, 0x00, 0x00, //0x00004871 jae LBB20_9 - //0x00004877 LBB20_10 - 0x49, 0x39, 0xce, //0x00004877 cmpq %rcx, %r14 - 0x49, 0x89, 0xca, //0x0000487a movq %rcx, %r10 - 0x4d, 0x0f, 0x47, 0xd6, //0x0000487d cmovaq %r14, %r10 - 0x31, 0xc0, //0x00004881 xorl %eax, %eax - 0x41, 0xbb, 0x0a, 0x00, 0x00, 0x00, //0x00004883 movl $10, %r11d - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00004889 .p2align 4, 0x90 - //0x00004890 LBB20_11 - 0x49, 0x39, 0xca, //0x00004890 cmpq %rcx, %r10 - 0x0f, 0x84, 0x80, 0x00, 0x00, 0x00, //0x00004893 je LBB20_22 - 0x41, 0x0f, 0xbe, 0x1c, 0x09, //0x00004899 movsbl (%r9,%rcx), %ebx - 0x8d, 0x53, 0xd0, //0x0000489e leal $-48(%rbx), %edx - 0x80, 0xfa, 0x09, //0x000048a1 cmpb $9, %dl - 0x0f, 0x87, 0x44, 0x00, 0x00, 0x00, //0x000048a4 ja LBB20_17 - 0x49, 0xf7, 0xe3, //0x000048aa mulq %r11 - 0x0f, 0x80, 0x28, 0x00, 0x00, 0x00, //0x000048ad jo LBB20_16 - 0x48, 0x83, 0xc1, 0x01, //0x000048b3 addq $1, %rcx - 0x83, 0xc3, 0xd0, //0x000048b7 addl $-48, %ebx - 0x31, 0xff, //0x000048ba xorl %edi, %edi - 0x48, 0x01, 0xd8, //0x000048bc addq %rbx, %rax - 0x40, 0x0f, 0x92, 0xc7, //0x000048bf setb %dil - 0x48, 0x89, 0xfa, //0x000048c3 movq %rdi, %rdx - 0x48, 0xf7, 0xda, //0x000048c6 negq %rdx - 0x48, 0x31, 0xd7, //0x000048c9 xorq %rdx, %rdi - 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x000048cc jne LBB20_16 - 0x48, 0x85, 0xd2, //0x000048d2 testq %rdx, %rdx - 0x0f, 0x89, 0xb5, 0xff, 0xff, 0xff, //0x000048d5 jns LBB20_11 - //0x000048db LBB20_16 - 0x48, 0x83, 0xc1, 0xff, //0x000048db addq $-1, %rcx - 0x48, 0x89, 0x0e, //0x000048df movq %rcx, (%rsi) - 0x49, 0xc7, 0x00, 0xfb, 0xff, 0xff, 0xff, //0x000048e2 movq $-5, (%r8) - 0x5b, //0x000048e9 popq %rbx - 0x41, 0x5e, //0x000048ea popq %r14 - 0x5d, //0x000048ec popq %rbp - 0xc3, //0x000048ed retq - //0x000048ee LBB20_17 - 0x4c, 0x39, 0xf1, //0x000048ee cmpq %r14, %rcx - 0x0f, 0x83, 0x1f, 0x00, 0x00, 0x00, //0x000048f1 jae LBB20_21 - 0x41, 0x8a, 0x14, 0x09, //0x000048f7 movb (%r9,%rcx), %dl - 0x80, 0xfa, 0x2e, //0x000048fb cmpb $46, %dl - 0x0f, 0x84, 0x0c, 0xff, 0xff, 0xff, //0x000048fe je LBB20_3 - 0x80, 0xfa, 0x45, //0x00004904 cmpb $69, %dl - 0x0f, 0x84, 0x03, 0xff, 0xff, 0xff, //0x00004907 je LBB20_3 - 0x80, 0xfa, 0x65, //0x0000490d cmpb $101, %dl - 0x0f, 0x84, 0xfa, 0xfe, 0xff, 0xff, //0x00004910 je LBB20_3 - //0x00004916 LBB20_21 - 0x49, 0x89, 0xca, //0x00004916 movq %rcx, %r10 - //0x00004919 LBB20_22 - 0x4c, 0x89, 0x16, //0x00004919 movq %r10, (%rsi) - 0x49, 0x89, 0x40, 0x10, //0x0000491c movq %rax, $16(%r8) - 0x5b, //0x00004920 popq %rbx - 0x41, 0x5e, //0x00004921 popq %r14 - 0x5d, //0x00004923 popq %rbp - 0xc3, //0x00004924 retq - //0x00004925 LBB20_9 - 0x48, 0x83, 0xc1, 0x01, //0x00004925 addq $1, %rcx - 0x48, 0x89, 0x0e, //0x00004929 movq %rcx, (%rsi) - 0x5b, //0x0000492c popq %rbx - 0x41, 0x5e, //0x0000492d popq %r14 - 0x5d, //0x0000492f popq %rbp - 0xc3, //0x00004930 retq - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004931 .p2align 4, 0x00 - //0x00004940 LCPI21_0 - 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004940 .quad 1 - 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004948 .quad 5 - //0x00004950 .p2align 4, 0x90 - //0x00004950 _skip_array - 0x55, //0x00004950 pushq %rbp - 0x48, 0x89, 0xe5, //0x00004951 movq %rsp, %rbp - 0x48, 0x89, 0xd0, //0x00004954 movq %rdx, %rax - 0x48, 0x89, 0xf2, //0x00004957 movq %rsi, %rdx - 0x48, 0x89, 0xfe, //0x0000495a movq %rdi, %rsi - 0xc5, 0xf8, 0x28, 0x05, 0xdb, 0xff, 0xff, 0xff, //0x0000495d vmovaps $-37(%rip), %xmm0 /* LCPI21_0+0(%rip) */ - 0xc5, 0xf8, 0x11, 0x00, //0x00004965 vmovups %xmm0, (%rax) - 0x48, 0x89, 0xc7, //0x00004969 movq %rax, %rdi - 0x5d, //0x0000496c popq %rbp - 0xe9, 0x0e, 0x00, 0x00, 0x00, //0x0000496d jmp _fsm_exec - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00004972 .p2align 4, 0x90 - //0x00004980 _fsm_exec - 0x55, //0x00004980 pushq %rbp - 0x48, 0x89, 0xe5, //0x00004981 movq %rsp, %rbp - 0x41, 0x57, //0x00004984 pushq %r15 - 0x41, 0x56, //0x00004986 pushq %r14 - 0x41, 0x55, //0x00004988 pushq %r13 - 0x41, 0x54, //0x0000498a pushq %r12 - 0x53, //0x0000498c pushq %rbx - 0x48, 0x83, 0xec, 0x28, //0x0000498d subq $40, %rsp - 0x48, 0x89, 0x4d, 0xb0, //0x00004991 movq %rcx, $-80(%rbp) - 0x48, 0x83, 0x3f, 0x00, //0x00004995 cmpq $0, (%rdi) - 0x0f, 0x84, 0xfc, 0x04, 0x00, 0x00, //0x00004999 je LBB22_86 - 0x49, 0x89, 0xd0, //0x0000499f movq %rdx, %r8 - 0x49, 0x89, 0xfb, //0x000049a2 movq %rdi, %r11 - 0x48, 0x8d, 0x46, 0x08, //0x000049a5 leaq $8(%rsi), %rax - 0x48, 0x89, 0x45, 0xd0, //0x000049a9 movq %rax, $-48(%rbp) - 0x49, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x000049ad movq $-1, %r14 - 0x49, 0xbc, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x000049b4 movabsq $4294977024, %r12 - 0x48, 0x89, 0x75, 0xc0, //0x000049be movq %rsi, $-64(%rbp) - 0x48, 0x89, 0x7d, 0xb8, //0x000049c2 movq %rdi, $-72(%rbp) - 0xe9, 0x24, 0x00, 0x00, 0x00, //0x000049c6 jmp LBB22_5 - //0x000049cb LBB22_2 - 0x48, 0x8d, 0x48, 0x03, //0x000049cb leaq $3(%rax), %rcx - 0x49, 0x89, 0x08, //0x000049cf movq %rcx, (%r8) - 0x48, 0x85, 0xc0, //0x000049d2 testq %rax, %rax - 0x0f, 0x8e, 0xc7, 0x04, 0x00, 0x00, //0x000049d5 jle LBB22_87 - 0x90, 0x90, 0x90, 0x90, 0x90, //0x000049db .p2align 4, 0x90 - //0x000049e0 LBB22_3 - 0x4d, 0x8b, 0x13, //0x000049e0 movq (%r11), %r10 - 0x4d, 0x89, 0xf7, //0x000049e3 movq %r14, %r15 - 0x4d, 0x85, 0xd2, //0x000049e6 testq %r10, %r10 - 0x0f, 0x84, 0xb3, 0x04, 0x00, 0x00, //0x000049e9 je LBB22_87 - //0x000049ef LBB22_5 - 0x4d, 0x89, 0xf1, //0x000049ef movq %r14, %r9 - 0x48, 0x8b, 0x3e, //0x000049f2 movq (%rsi), %rdi - 0x48, 0x8b, 0x4e, 0x08, //0x000049f5 movq $8(%rsi), %rcx - 0x49, 0x8b, 0x10, //0x000049f9 movq (%r8), %rdx - 0x48, 0x39, 0xca, //0x000049fc cmpq %rcx, %rdx - 0x0f, 0x83, 0x2b, 0x00, 0x00, 0x00, //0x000049ff jae LBB22_10 - 0x8a, 0x1c, 0x17, //0x00004a05 movb (%rdi,%rdx), %bl - 0x80, 0xfb, 0x0d, //0x00004a08 cmpb $13, %bl - 0x0f, 0x84, 0x1f, 0x00, 0x00, 0x00, //0x00004a0b je LBB22_10 - 0x80, 0xfb, 0x20, //0x00004a11 cmpb $32, %bl - 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00004a14 je LBB22_10 - 0x80, 0xc3, 0xf7, //0x00004a1a addb $-9, %bl - 0x80, 0xfb, 0x01, //0x00004a1d cmpb $1, %bl - 0x0f, 0x86, 0x0a, 0x00, 0x00, 0x00, //0x00004a20 jbe LBB22_10 - 0x49, 0x89, 0xd6, //0x00004a26 movq %rdx, %r14 - 0xe9, 0xfa, 0x00, 0x00, 0x00, //0x00004a29 jmp LBB22_31 - 0x90, 0x90, //0x00004a2e .p2align 4, 0x90 - //0x00004a30 LBB22_10 - 0x4c, 0x8d, 0x72, 0x01, //0x00004a30 leaq $1(%rdx), %r14 - 0x49, 0x39, 0xce, //0x00004a34 cmpq %rcx, %r14 - 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00004a37 jae LBB22_14 - 0x42, 0x8a, 0x1c, 0x37, //0x00004a3d movb (%rdi,%r14), %bl - 0x80, 0xfb, 0x0d, //0x00004a41 cmpb $13, %bl - 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00004a44 je LBB22_14 - 0x80, 0xfb, 0x20, //0x00004a4a cmpb $32, %bl - 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x00004a4d je LBB22_14 - 0x80, 0xc3, 0xf7, //0x00004a53 addb $-9, %bl - 0x80, 0xfb, 0x01, //0x00004a56 cmpb $1, %bl - 0x0f, 0x87, 0xc9, 0x00, 0x00, 0x00, //0x00004a59 ja LBB22_31 - 0x90, //0x00004a5f .p2align 4, 0x90 - //0x00004a60 LBB22_14 - 0x4c, 0x8d, 0x72, 0x02, //0x00004a60 leaq $2(%rdx), %r14 - 0x49, 0x39, 0xce, //0x00004a64 cmpq %rcx, %r14 - 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00004a67 jae LBB22_18 - 0x42, 0x8a, 0x1c, 0x37, //0x00004a6d movb (%rdi,%r14), %bl - 0x80, 0xfb, 0x0d, //0x00004a71 cmpb $13, %bl - 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00004a74 je LBB22_18 - 0x80, 0xfb, 0x20, //0x00004a7a cmpb $32, %bl - 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x00004a7d je LBB22_18 - 0x80, 0xc3, 0xf7, //0x00004a83 addb $-9, %bl - 0x80, 0xfb, 0x01, //0x00004a86 cmpb $1, %bl - 0x0f, 0x87, 0x99, 0x00, 0x00, 0x00, //0x00004a89 ja LBB22_31 - 0x90, //0x00004a8f .p2align 4, 0x90 - //0x00004a90 LBB22_18 - 0x4c, 0x8d, 0x72, 0x03, //0x00004a90 leaq $3(%rdx), %r14 - 0x49, 0x39, 0xce, //0x00004a94 cmpq %rcx, %r14 - 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00004a97 jae LBB22_22 - 0x42, 0x8a, 0x1c, 0x37, //0x00004a9d movb (%rdi,%r14), %bl - 0x80, 0xfb, 0x0d, //0x00004aa1 cmpb $13, %bl - 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00004aa4 je LBB22_22 - 0x80, 0xfb, 0x20, //0x00004aaa cmpb $32, %bl - 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x00004aad je LBB22_22 - 0x80, 0xc3, 0xf7, //0x00004ab3 addb $-9, %bl - 0x80, 0xfb, 0x01, //0x00004ab6 cmpb $1, %bl - 0x0f, 0x87, 0x69, 0x00, 0x00, 0x00, //0x00004ab9 ja LBB22_31 - 0x90, //0x00004abf .p2align 4, 0x90 - //0x00004ac0 LBB22_22 - 0x48, 0x83, 0xc2, 0x04, //0x00004ac0 addq $4, %rdx - 0x48, 0x39, 0xd1, //0x00004ac4 cmpq %rdx, %rcx - 0x0f, 0x86, 0xcb, 0x03, 0x00, 0x00, //0x00004ac7 jbe LBB22_85 - 0x48, 0x39, 0xd1, //0x00004acd cmpq %rdx, %rcx - 0x0f, 0x84, 0x3a, 0x00, 0x00, 0x00, //0x00004ad0 je LBB22_28 - 0x48, 0x8d, 0x04, 0x0f, //0x00004ad6 leaq (%rdi,%rcx), %rax - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00004ada .p2align 4, 0x90 - //0x00004ae0 LBB22_25 - 0x0f, 0xbe, 0x1c, 0x17, //0x00004ae0 movsbl (%rdi,%rdx), %ebx - 0x83, 0xfb, 0x20, //0x00004ae4 cmpl $32, %ebx - 0x0f, 0x87, 0x2f, 0x00, 0x00, 0x00, //0x00004ae7 ja LBB22_30 - 0x49, 0x0f, 0xa3, 0xdc, //0x00004aed btq %rbx, %r12 - 0x0f, 0x83, 0x25, 0x00, 0x00, 0x00, //0x00004af1 jae LBB22_30 - 0x48, 0x83, 0xc2, 0x01, //0x00004af7 addq $1, %rdx - 0x48, 0x39, 0xd1, //0x00004afb cmpq %rdx, %rcx - 0x0f, 0x85, 0xdc, 0xff, 0xff, 0xff, //0x00004afe jne LBB22_25 - 0xe9, 0x0d, 0x00, 0x00, 0x00, //0x00004b04 jmp LBB22_29 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00004b09 .p2align 4, 0x90 - //0x00004b10 LBB22_28 - 0x48, 0x01, 0xfa, //0x00004b10 addq %rdi, %rdx - 0x48, 0x89, 0xd0, //0x00004b13 movq %rdx, %rax - //0x00004b16 LBB22_29 - 0x48, 0x29, 0xf8, //0x00004b16 subq %rdi, %rax - 0x48, 0x89, 0xc2, //0x00004b19 movq %rax, %rdx - //0x00004b1c LBB22_30 - 0x49, 0x89, 0xd6, //0x00004b1c movq %rdx, %r14 - 0x48, 0x39, 0xca, //0x00004b1f cmpq %rcx, %rdx - 0x0f, 0x83, 0x73, 0x03, 0x00, 0x00, //0x00004b22 jae LBB22_86 - //0x00004b28 LBB22_31 - 0x49, 0x8d, 0x4e, 0x01, //0x00004b28 leaq $1(%r14), %rcx - 0x49, 0x89, 0x08, //0x00004b2c movq %rcx, (%r8) - 0x42, 0x0f, 0xbe, 0x0c, 0x37, //0x00004b2f movsbl (%rdi,%r14), %ecx - 0x49, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, //0x00004b34 movq $-1, %r15 - 0x85, 0xc9, //0x00004b3b testl %ecx, %ecx - 0x0f, 0x84, 0x5f, 0x03, 0x00, 0x00, //0x00004b3d je LBB22_87 - 0x4d, 0x8b, 0x2b, //0x00004b43 movq (%r11), %r13 - 0x4d, 0x8d, 0x55, 0xff, //0x00004b46 leaq $-1(%r13), %r10 - 0x43, 0x8b, 0x1c, 0xeb, //0x00004b4a movl (%r11,%r13,8), %ebx - 0x49, 0x83, 0xf9, 0xff, //0x00004b4e cmpq $-1, %r9 - 0x4d, 0x0f, 0x45, 0xf1, //0x00004b52 cmovneq %r9, %r14 - 0x83, 0xc3, 0xff, //0x00004b56 addl $-1, %ebx - 0x83, 0xfb, 0x05, //0x00004b59 cmpl $5, %ebx - 0x0f, 0x87, 0x27, 0x00, 0x00, 0x00, //0x00004b5c ja LBB22_37 - 0x48, 0x8d, 0x15, 0x8f, 0x04, 0x00, 0x00, //0x00004b62 leaq $1167(%rip), %rdx /* LJTI22_0+0(%rip) */ - 0x48, 0x63, 0x04, 0x9a, //0x00004b69 movslq (%rdx,%rbx,4), %rax - 0x48, 0x01, 0xd0, //0x00004b6d addq %rdx, %rax - 0xff, 0xe0, //0x00004b70 jmpq *%rax - //0x00004b72 LBB22_34 - 0x83, 0xf9, 0x2c, //0x00004b72 cmpl $44, %ecx - 0x0f, 0x84, 0x6c, 0x01, 0x00, 0x00, //0x00004b75 je LBB22_53 - 0x83, 0xf9, 0x5d, //0x00004b7b cmpl $93, %ecx - 0x0f, 0x84, 0x4f, 0x01, 0x00, 0x00, //0x00004b7e je LBB22_36 - 0xe9, 0x56, 0x04, 0x00, 0x00, //0x00004b84 jmp LBB22_90 - //0x00004b89 LBB22_37 - 0x4d, 0x89, 0x13, //0x00004b89 movq %r10, (%r11) - 0x83, 0xf9, 0x7b, //0x00004b8c cmpl $123, %ecx - 0x0f, 0x86, 0xba, 0x00, 0x00, 0x00, //0x00004b8f jbe LBB22_49 - 0xe9, 0x45, 0x04, 0x00, 0x00, //0x00004b95 jmp LBB22_90 - //0x00004b9a LBB22_38 - 0x83, 0xf9, 0x2c, //0x00004b9a cmpl $44, %ecx - 0x0f, 0x85, 0x27, 0x01, 0x00, 0x00, //0x00004b9d jne LBB22_39 - 0x49, 0x81, 0xfd, 0xff, 0x0f, 0x00, 0x00, //0x00004ba3 cmpq $4095, %r13 - 0x0f, 0x8f, 0x04, 0x03, 0x00, 0x00, //0x00004baa jg LBB22_92 - 0x49, 0x8d, 0x45, 0x01, //0x00004bb0 leaq $1(%r13), %rax - 0x49, 0x89, 0x03, //0x00004bb4 movq %rax, (%r11) - 0x4b, 0xc7, 0x44, 0xeb, 0x08, 0x03, 0x00, 0x00, 0x00, //0x00004bb7 movq $3, $8(%r11,%r13,8) - 0xe9, 0x1b, 0xfe, 0xff, 0xff, //0x00004bc0 jmp LBB22_3 - //0x00004bc5 LBB22_40 - 0x80, 0xf9, 0x22, //0x00004bc5 cmpb $34, %cl - 0x0f, 0x85, 0x11, 0x04, 0x00, 0x00, //0x00004bc8 jne LBB22_90 - 0x4b, 0xc7, 0x04, 0xeb, 0x04, 0x00, 0x00, 0x00, //0x00004bce movq $4, (%r11,%r13,8) - //0x00004bd6 LBB22_42 - 0x48, 0xc7, 0x45, 0xc8, 0xff, 0xff, 0xff, 0xff, //0x00004bd6 movq $-1, $-56(%rbp) - 0x4d, 0x8b, 0x28, //0x00004bde movq (%r8), %r13 - 0x48, 0x89, 0xf7, //0x00004be1 movq %rsi, %rdi - 0x4c, 0x89, 0xee, //0x00004be4 movq %r13, %rsi - 0x48, 0x8d, 0x55, 0xc8, //0x00004be7 leaq $-56(%rbp), %rdx - 0x48, 0x8b, 0x4d, 0xb0, //0x00004beb movq $-80(%rbp), %rcx - 0x4c, 0x89, 0xc3, //0x00004bef movq %r8, %rbx - 0xe8, 0xd9, 0xee, 0xff, 0xff, //0x00004bf2 callq _advance_string - 0x49, 0x89, 0xc7, //0x00004bf7 movq %rax, %r15 - 0x48, 0x85, 0xc0, //0x00004bfa testq %rax, %rax - 0x0f, 0x88, 0xbd, 0x02, 0x00, 0x00, //0x00004bfd js LBB22_88 - 0x4c, 0x89, 0x3b, //0x00004c03 movq %r15, (%rbx) - 0x4d, 0x85, 0xed, //0x00004c06 testq %r13, %r13 - 0x49, 0x89, 0xd8, //0x00004c09 movq %rbx, %r8 - 0x48, 0x8b, 0x75, 0xc0, //0x00004c0c movq $-64(%rbp), %rsi - 0x4c, 0x8b, 0x5d, 0xb8, //0x00004c10 movq $-72(%rbp), %r11 - 0x0f, 0x8f, 0xc6, 0xfd, 0xff, 0xff, //0x00004c14 jg LBB22_3 - 0xe9, 0xb9, 0x02, 0x00, 0x00, //0x00004c1a jmp LBB22_44 - //0x00004c1f LBB22_45 - 0x80, 0xf9, 0x3a, //0x00004c1f cmpb $58, %cl - 0x0f, 0x85, 0xb7, 0x03, 0x00, 0x00, //0x00004c22 jne LBB22_90 - 0x4b, 0xc7, 0x04, 0xeb, 0x00, 0x00, 0x00, 0x00, //0x00004c28 movq $0, (%r11,%r13,8) - 0xe9, 0xab, 0xfd, 0xff, 0xff, //0x00004c30 jmp LBB22_3 - //0x00004c35 LBB22_47 - 0x80, 0xf9, 0x5d, //0x00004c35 cmpb $93, %cl - 0x0f, 0x84, 0x95, 0x00, 0x00, 0x00, //0x00004c38 je LBB22_36 - 0x4b, 0xc7, 0x04, 0xeb, 0x01, 0x00, 0x00, 0x00, //0x00004c3e movq $1, (%r11,%r13,8) - 0x83, 0xf9, 0x7b, //0x00004c46 cmpl $123, %ecx - 0x0f, 0x87, 0x90, 0x03, 0x00, 0x00, //0x00004c49 ja LBB22_90 - //0x00004c4f LBB22_49 - 0x89, 0xc8, //0x00004c4f movl %ecx, %eax - 0x48, 0x8d, 0x0d, 0xb8, 0x03, 0x00, 0x00, //0x00004c51 leaq $952(%rip), %rcx /* LJTI22_1+0(%rip) */ - 0x48, 0x63, 0x04, 0x81, //0x00004c58 movslq (%rcx,%rax,4), %rax - 0x48, 0x01, 0xc8, //0x00004c5c addq %rcx, %rax - 0xff, 0xe0, //0x00004c5f jmpq *%rax - //0x00004c61 LBB22_52 - 0x49, 0x8b, 0x18, //0x00004c61 movq (%r8), %rbx - 0x4c, 0x8d, 0x7b, 0xff, //0x00004c64 leaq $-1(%rbx), %r15 - 0x48, 0x01, 0xdf, //0x00004c68 addq %rbx, %rdi - 0x48, 0x83, 0xc7, 0xff, //0x00004c6b addq $-1, %rdi - 0x48, 0x8b, 0x45, 0xd0, //0x00004c6f movq $-48(%rbp), %rax - 0x48, 0x8b, 0x30, //0x00004c73 movq (%rax), %rsi - 0x4c, 0x29, 0xfe, //0x00004c76 subq %r15, %rsi - 0x4d, 0x89, 0xc5, //0x00004c79 movq %r8, %r13 - 0xe8, 0xff, 0x06, 0x00, 0x00, //0x00004c7c callq _do_skip_number - 0x4c, 0x8b, 0x5d, 0xb8, //0x00004c81 movq $-72(%rbp), %r11 - 0x48, 0x8b, 0x75, 0xc0, //0x00004c85 movq $-64(%rbp), %rsi - 0x4d, 0x89, 0xe8, //0x00004c89 movq %r13, %r8 - 0x48, 0x8d, 0x48, 0xff, //0x00004c8c leaq $-1(%rax), %rcx - 0x48, 0xc7, 0xc2, 0xfe, 0xff, 0xff, 0xff, //0x00004c90 movq $-2, %rdx - 0x48, 0x29, 0xc2, //0x00004c97 subq %rax, %rdx - 0x48, 0x85, 0xc0, //0x00004c9a testq %rax, %rax - 0x48, 0x0f, 0x49, 0xd1, //0x00004c9d cmovnsq %rcx, %rdx - 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00004ca1 movq $-2, %rax - 0x4c, 0x0f, 0x48, 0xf8, //0x00004ca8 cmovsq %rax, %r15 - 0x48, 0x01, 0xda, //0x00004cac addq %rbx, %rdx - 0x49, 0x89, 0x55, 0x00, //0x00004caf movq %rdx, (%r13) - 0x4d, 0x85, 0xff, //0x00004cb3 testq %r15, %r15 - 0x0f, 0x89, 0x24, 0xfd, 0xff, 0xff, //0x00004cb6 jns LBB22_3 - 0xe9, 0xe1, 0x01, 0x00, 0x00, //0x00004cbc jmp LBB22_87 - //0x00004cc1 LBB22_50 - 0x83, 0xf9, 0x22, //0x00004cc1 cmpl $34, %ecx - 0x0f, 0x84, 0x3f, 0x00, 0x00, 0x00, //0x00004cc4 je LBB22_57 - //0x00004cca LBB22_39 - 0x83, 0xf9, 0x7d, //0x00004cca cmpl $125, %ecx - 0x0f, 0x85, 0x0c, 0x03, 0x00, 0x00, //0x00004ccd jne LBB22_90 - //0x00004cd3 LBB22_36 - 0x4d, 0x89, 0x13, //0x00004cd3 movq %r10, (%r11) - 0x4d, 0x89, 0xf7, //0x00004cd6 movq %r14, %r15 - 0x4d, 0x85, 0xd2, //0x00004cd9 testq %r10, %r10 - 0x0f, 0x85, 0x0d, 0xfd, 0xff, 0xff, //0x00004cdc jne LBB22_5 - 0xe9, 0xbb, 0x01, 0x00, 0x00, //0x00004ce2 jmp LBB22_87 - //0x00004ce7 LBB22_53 - 0x49, 0x81, 0xfd, 0xff, 0x0f, 0x00, 0x00, //0x00004ce7 cmpq $4095, %r13 - 0x0f, 0x8f, 0xc0, 0x01, 0x00, 0x00, //0x00004cee jg LBB22_92 - 0x49, 0x8d, 0x45, 0x01, //0x00004cf4 leaq $1(%r13), %rax - 0x49, 0x89, 0x03, //0x00004cf8 movq %rax, (%r11) - 0x4b, 0xc7, 0x44, 0xeb, 0x08, 0x00, 0x00, 0x00, 0x00, //0x00004cfb movq $0, $8(%r11,%r13,8) - 0xe9, 0xd7, 0xfc, 0xff, 0xff, //0x00004d04 jmp LBB22_3 - //0x00004d09 LBB22_57 - 0x4b, 0xc7, 0x04, 0xeb, 0x02, 0x00, 0x00, 0x00, //0x00004d09 movq $2, (%r11,%r13,8) - 0x48, 0xc7, 0x45, 0xc8, 0xff, 0xff, 0xff, 0xff, //0x00004d11 movq $-1, $-56(%rbp) - 0x4d, 0x8b, 0x28, //0x00004d19 movq (%r8), %r13 - 0x48, 0x89, 0xf7, //0x00004d1c movq %rsi, %rdi - 0x4c, 0x89, 0xee, //0x00004d1f movq %r13, %rsi - 0x48, 0x8d, 0x55, 0xc8, //0x00004d22 leaq $-56(%rbp), %rdx - 0x48, 0x8b, 0x4d, 0xb0, //0x00004d26 movq $-80(%rbp), %rcx - 0x4c, 0x89, 0xc3, //0x00004d2a movq %r8, %rbx - 0xe8, 0x9e, 0xed, 0xff, 0xff, //0x00004d2d callq _advance_string - 0x49, 0x89, 0xc7, //0x00004d32 movq %rax, %r15 - 0x48, 0x85, 0xc0, //0x00004d35 testq %rax, %rax - 0x0f, 0x88, 0x82, 0x01, 0x00, 0x00, //0x00004d38 js LBB22_88 - 0x4c, 0x89, 0x3b, //0x00004d3e movq %r15, (%rbx) - 0x4d, 0x85, 0xed, //0x00004d41 testq %r13, %r13 - 0x0f, 0x8e, 0x8e, 0x01, 0x00, 0x00, //0x00004d44 jle LBB22_44 - 0x4c, 0x8b, 0x5d, 0xb8, //0x00004d4a movq $-72(%rbp), %r11 - 0x49, 0x8b, 0x03, //0x00004d4e movq (%r11), %rax - 0x48, 0x3d, 0xff, 0x0f, 0x00, 0x00, //0x00004d51 cmpq $4095, %rax - 0x0f, 0x8f, 0x57, 0x01, 0x00, 0x00, //0x00004d57 jg LBB22_92 - 0x49, 0x89, 0xd8, //0x00004d5d movq %rbx, %r8 - 0x48, 0x8d, 0x48, 0x01, //0x00004d60 leaq $1(%rax), %rcx - 0x49, 0x89, 0x0b, //0x00004d64 movq %rcx, (%r11) - 0x49, 0xc7, 0x44, 0xc3, 0x08, 0x04, 0x00, 0x00, 0x00, //0x00004d67 movq $4, $8(%r11,%rax,8) - 0x48, 0x8b, 0x75, 0xc0, //0x00004d70 movq $-64(%rbp), %rsi - 0xe9, 0x67, 0xfc, 0xff, 0xff, //0x00004d74 jmp LBB22_3 - //0x00004d79 LBB22_61 - 0x4d, 0x8b, 0x38, //0x00004d79 movq (%r8), %r15 - 0x4c, 0x01, 0xff, //0x00004d7c addq %r15, %rdi - 0x48, 0x8b, 0x45, 0xd0, //0x00004d7f movq $-48(%rbp), %rax - 0x48, 0x8b, 0x30, //0x00004d83 movq (%rax), %rsi - 0x4c, 0x29, 0xfe, //0x00004d86 subq %r15, %rsi - 0x4c, 0x89, 0xc3, //0x00004d89 movq %r8, %rbx - 0xe8, 0xef, 0x05, 0x00, 0x00, //0x00004d8c callq _do_skip_number - 0x48, 0x85, 0xc0, //0x00004d91 testq %rax, %rax - 0x0f, 0x88, 0x52, 0x01, 0x00, 0x00, //0x00004d94 js LBB22_89 - 0x4c, 0x01, 0xf8, //0x00004d9a addq %r15, %rax - 0x48, 0x89, 0x03, //0x00004d9d movq %rax, (%rbx) - 0x4d, 0x85, 0xff, //0x00004da0 testq %r15, %r15 - 0x49, 0x89, 0xd8, //0x00004da3 movq %rbx, %r8 - 0x48, 0x8b, 0x75, 0xc0, //0x00004da6 movq $-64(%rbp), %rsi - 0x4c, 0x8b, 0x5d, 0xb8, //0x00004daa movq $-72(%rbp), %r11 - 0x0f, 0x8f, 0x2c, 0xfc, 0xff, 0xff, //0x00004dae jg LBB22_3 - 0xe9, 0x93, 0x01, 0x00, 0x00, //0x00004db4 jmp LBB22_63 - //0x00004db9 LBB22_64 - 0x49, 0x8b, 0x03, //0x00004db9 movq (%r11), %rax - 0x48, 0x3d, 0xff, 0x0f, 0x00, 0x00, //0x00004dbc cmpq $4095, %rax - 0x0f, 0x8f, 0xec, 0x00, 0x00, 0x00, //0x00004dc2 jg LBB22_92 - 0x48, 0x8d, 0x48, 0x01, //0x00004dc8 leaq $1(%rax), %rcx - 0x49, 0x89, 0x0b, //0x00004dcc movq %rcx, (%r11) - 0x49, 0xc7, 0x44, 0xc3, 0x08, 0x05, 0x00, 0x00, 0x00, //0x00004dcf movq $5, $8(%r11,%rax,8) - 0xe9, 0x03, 0xfc, 0xff, 0xff, //0x00004dd8 jmp LBB22_3 - //0x00004ddd LBB22_66 - 0x49, 0x8b, 0x00, //0x00004ddd movq (%r8), %rax - 0x48, 0x8b, 0x4d, 0xd0, //0x00004de0 movq $-48(%rbp), %rcx - 0x48, 0x8b, 0x09, //0x00004de4 movq (%rcx), %rcx - 0x48, 0x8d, 0x51, 0xfc, //0x00004de7 leaq $-4(%rcx), %rdx - 0x48, 0x39, 0xd0, //0x00004deb cmpq %rdx, %rax - 0x0f, 0x87, 0xf0, 0x00, 0x00, 0x00, //0x00004dee ja LBB22_91 - 0x8b, 0x0c, 0x07, //0x00004df4 movl (%rdi,%rax), %ecx - 0x81, 0xf9, 0x61, 0x6c, 0x73, 0x65, //0x00004df7 cmpl $1702063201, %ecx - 0x0f, 0x85, 0xf7, 0x00, 0x00, 0x00, //0x00004dfd jne LBB22_93 - 0x48, 0x8d, 0x48, 0x04, //0x00004e03 leaq $4(%rax), %rcx - 0x49, 0x89, 0x08, //0x00004e07 movq %rcx, (%r8) - 0x48, 0x85, 0xc0, //0x00004e0a testq %rax, %rax - 0x0f, 0x8f, 0xcd, 0xfb, 0xff, 0xff, //0x00004e0d jg LBB22_3 - 0xe9, 0xd3, 0x01, 0x00, 0x00, //0x00004e13 jmp LBB22_69 - //0x00004e18 LBB22_70 - 0x49, 0x8b, 0x00, //0x00004e18 movq (%r8), %rax - 0x48, 0x8b, 0x4d, 0xd0, //0x00004e1b movq $-48(%rbp), %rcx - 0x48, 0x8b, 0x09, //0x00004e1f movq (%rcx), %rcx - 0x48, 0x8d, 0x51, 0xfd, //0x00004e22 leaq $-3(%rcx), %rdx - 0x48, 0x39, 0xd0, //0x00004e26 cmpq %rdx, %rax - 0x0f, 0x87, 0xb5, 0x00, 0x00, 0x00, //0x00004e29 ja LBB22_91 - 0x4c, 0x8d, 0x78, 0xff, //0x00004e2f leaq $-1(%rax), %r15 - 0x81, 0x7c, 0x07, 0xff, 0x6e, 0x75, 0x6c, 0x6c, //0x00004e33 cmpl $1819047278, $-1(%rdi,%rax) - 0x0f, 0x84, 0x8a, 0xfb, 0xff, 0xff, //0x00004e3b je LBB22_2 - 0xe9, 0x0f, 0x01, 0x00, 0x00, //0x00004e41 jmp LBB22_72 - //0x00004e46 LBB22_76 - 0x49, 0x8b, 0x00, //0x00004e46 movq (%r8), %rax - 0x48, 0x8b, 0x4d, 0xd0, //0x00004e49 movq $-48(%rbp), %rcx - 0x48, 0x8b, 0x09, //0x00004e4d movq (%rcx), %rcx - 0x48, 0x8d, 0x51, 0xfd, //0x00004e50 leaq $-3(%rcx), %rdx - 0x48, 0x39, 0xd0, //0x00004e54 cmpq %rdx, %rax - 0x0f, 0x87, 0x87, 0x00, 0x00, 0x00, //0x00004e57 ja LBB22_91 - 0x4c, 0x8d, 0x78, 0xff, //0x00004e5d leaq $-1(%rax), %r15 - 0x81, 0x7c, 0x07, 0xff, 0x74, 0x72, 0x75, 0x65, //0x00004e61 cmpl $1702195828, $-1(%rdi,%rax) - 0x0f, 0x84, 0x5c, 0xfb, 0xff, 0xff, //0x00004e69 je LBB22_2 - 0xe9, 0x25, 0x01, 0x00, 0x00, //0x00004e6f jmp LBB22_78 - //0x00004e74 LBB22_83 - 0x49, 0x8b, 0x03, //0x00004e74 movq (%r11), %rax - 0x48, 0x3d, 0xff, 0x0f, 0x00, 0x00, //0x00004e77 cmpq $4095, %rax - 0x0f, 0x8f, 0x31, 0x00, 0x00, 0x00, //0x00004e7d jg LBB22_92 - 0x48, 0x8d, 0x48, 0x01, //0x00004e83 leaq $1(%rax), %rcx - 0x49, 0x89, 0x0b, //0x00004e87 movq %rcx, (%r11) - 0x49, 0xc7, 0x44, 0xc3, 0x08, 0x06, 0x00, 0x00, 0x00, //0x00004e8a movq $6, $8(%r11,%rax,8) - 0xe9, 0x48, 0xfb, 0xff, 0xff, //0x00004e93 jmp LBB22_3 - //0x00004e98 LBB22_85 - 0x49, 0x89, 0x10, //0x00004e98 movq %rdx, (%r8) - //0x00004e9b LBB22_86 - 0x49, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, //0x00004e9b movq $-1, %r15 - //0x00004ea2 LBB22_87 - 0x4c, 0x89, 0xf8, //0x00004ea2 movq %r15, %rax - 0x48, 0x83, 0xc4, 0x28, //0x00004ea5 addq $40, %rsp - 0x5b, //0x00004ea9 popq %rbx - 0x41, 0x5c, //0x00004eaa popq %r12 - 0x41, 0x5d, //0x00004eac popq %r13 - 0x41, 0x5e, //0x00004eae popq %r14 - 0x41, 0x5f, //0x00004eb0 popq %r15 - 0x5d, //0x00004eb2 popq %rbp - 0xc3, //0x00004eb3 retq - //0x00004eb4 LBB22_92 - 0x49, 0xc7, 0xc7, 0xf9, 0xff, 0xff, 0xff, //0x00004eb4 movq $-7, %r15 - 0xe9, 0xe2, 0xff, 0xff, 0xff, //0x00004ebb jmp LBB22_87 - //0x00004ec0 LBB22_88 - 0x49, 0x83, 0xff, 0xff, //0x00004ec0 cmpq $-1, %r15 - 0x48, 0x8d, 0x45, 0xc8, //0x00004ec4 leaq $-56(%rbp), %rax - 0x48, 0x0f, 0x44, 0x45, 0xd0, //0x00004ec8 cmoveq $-48(%rbp), %rax - 0x48, 0x8b, 0x00, //0x00004ecd movq (%rax), %rax - 0x48, 0x89, 0x03, //0x00004ed0 movq %rax, (%rbx) - 0xe9, 0xca, 0xff, 0xff, 0xff, //0x00004ed3 jmp LBB22_87 - //0x00004ed8 LBB22_44 - 0x49, 0x83, 0xc5, 0xff, //0x00004ed8 addq $-1, %r13 - 0x4d, 0x89, 0xef, //0x00004edc movq %r13, %r15 - 0xe9, 0xbe, 0xff, 0xff, 0xff, //0x00004edf jmp LBB22_87 - //0x00004ee4 LBB22_91 - 0x49, 0x89, 0x08, //0x00004ee4 movq %rcx, (%r8) - 0xe9, 0xb6, 0xff, 0xff, 0xff, //0x00004ee7 jmp LBB22_87 - //0x00004eec LBB22_89 - 0x48, 0xf7, 0xd0, //0x00004eec notq %rax - 0x49, 0x01, 0xc7, //0x00004eef addq %rax, %r15 - 0x4c, 0x89, 0x3b, //0x00004ef2 movq %r15, (%rbx) - 0xe9, 0xe5, 0x00, 0x00, 0x00, //0x00004ef5 jmp LBB22_90 - //0x00004efa LBB22_93 - 0x49, 0xc7, 0xc7, 0xfe, 0xff, 0xff, 0xff, //0x00004efa movq $-2, %r15 - 0x80, 0xf9, 0x61, //0x00004f01 cmpb $97, %cl - 0x0f, 0x85, 0x98, 0xff, 0xff, 0xff, //0x00004f04 jne LBB22_87 - 0x48, 0x8d, 0x48, 0x01, //0x00004f0a leaq $1(%rax), %rcx - 0x49, 0x89, 0x08, //0x00004f0e movq %rcx, (%r8) - 0x80, 0x7c, 0x07, 0x01, 0x6c, //0x00004f11 cmpb $108, $1(%rdi,%rax) - 0x0f, 0x85, 0x86, 0xff, 0xff, 0xff, //0x00004f16 jne LBB22_87 - 0x48, 0x8d, 0x48, 0x02, //0x00004f1c leaq $2(%rax), %rcx - 0x49, 0x89, 0x08, //0x00004f20 movq %rcx, (%r8) - 0x80, 0x7c, 0x07, 0x02, 0x73, //0x00004f23 cmpb $115, $2(%rdi,%rax) - 0x0f, 0x85, 0x74, 0xff, 0xff, 0xff, //0x00004f28 jne LBB22_87 - 0x48, 0x8d, 0x48, 0x03, //0x00004f2e leaq $3(%rax), %rcx - 0x49, 0x89, 0x08, //0x00004f32 movq %rcx, (%r8) - 0x80, 0x7c, 0x07, 0x03, 0x65, //0x00004f35 cmpb $101, $3(%rdi,%rax) - 0x0f, 0x85, 0x62, 0xff, 0xff, 0xff, //0x00004f3a jne LBB22_87 - 0x48, 0x83, 0xc0, 0x04, //0x00004f40 addq $4, %rax - 0x49, 0x89, 0x00, //0x00004f44 movq %rax, (%r8) - 0xe9, 0x56, 0xff, 0xff, 0xff, //0x00004f47 jmp LBB22_87 - //0x00004f4c LBB22_63 - 0x49, 0x83, 0xc7, 0xff, //0x00004f4c addq $-1, %r15 - 0xe9, 0x4d, 0xff, 0xff, 0xff, //0x00004f50 jmp LBB22_87 - //0x00004f55 LBB22_72 - 0x4d, 0x89, 0x38, //0x00004f55 movq %r15, (%r8) - 0x42, 0x80, 0x3c, 0x3f, 0x6e, //0x00004f58 cmpb $110, (%rdi,%r15) - 0x0f, 0x85, 0x7c, 0x00, 0x00, 0x00, //0x00004f5d jne LBB22_90 - 0x49, 0x89, 0x00, //0x00004f63 movq %rax, (%r8) - 0x80, 0x3c, 0x07, 0x75, //0x00004f66 cmpb $117, (%rdi,%rax) - 0x0f, 0x85, 0x6f, 0x00, 0x00, 0x00, //0x00004f6a jne LBB22_90 - 0x48, 0x8d, 0x48, 0x01, //0x00004f70 leaq $1(%rax), %rcx - 0x49, 0x89, 0x08, //0x00004f74 movq %rcx, (%r8) - 0x80, 0x7c, 0x07, 0x01, 0x6c, //0x00004f77 cmpb $108, $1(%rdi,%rax) - 0x0f, 0x85, 0x5d, 0x00, 0x00, 0x00, //0x00004f7c jne LBB22_90 - 0x48, 0x8d, 0x48, 0x02, //0x00004f82 leaq $2(%rax), %rcx - 0x49, 0x89, 0x08, //0x00004f86 movq %rcx, (%r8) - 0x80, 0x7c, 0x07, 0x02, 0x6c, //0x00004f89 cmpb $108, $2(%rdi,%rax) - 0x0f, 0x84, 0x44, 0x00, 0x00, 0x00, //0x00004f8e je LBB22_82 - 0xe9, 0x46, 0x00, 0x00, 0x00, //0x00004f94 jmp LBB22_90 - //0x00004f99 LBB22_78 - 0x4d, 0x89, 0x38, //0x00004f99 movq %r15, (%r8) - 0x42, 0x80, 0x3c, 0x3f, 0x74, //0x00004f9c cmpb $116, (%rdi,%r15) - 0x0f, 0x85, 0x38, 0x00, 0x00, 0x00, //0x00004fa1 jne LBB22_90 - 0x49, 0x89, 0x00, //0x00004fa7 movq %rax, (%r8) - 0x80, 0x3c, 0x07, 0x72, //0x00004faa cmpb $114, (%rdi,%rax) - 0x0f, 0x85, 0x2b, 0x00, 0x00, 0x00, //0x00004fae jne LBB22_90 - 0x48, 0x8d, 0x48, 0x01, //0x00004fb4 leaq $1(%rax), %rcx - 0x49, 0x89, 0x08, //0x00004fb8 movq %rcx, (%r8) - 0x80, 0x7c, 0x07, 0x01, 0x75, //0x00004fbb cmpb $117, $1(%rdi,%rax) - 0x0f, 0x85, 0x19, 0x00, 0x00, 0x00, //0x00004fc0 jne LBB22_90 - 0x48, 0x8d, 0x48, 0x02, //0x00004fc6 leaq $2(%rax), %rcx - 0x49, 0x89, 0x08, //0x00004fca movq %rcx, (%r8) - 0x80, 0x7c, 0x07, 0x02, 0x65, //0x00004fcd cmpb $101, $2(%rdi,%rax) - 0x0f, 0x85, 0x07, 0x00, 0x00, 0x00, //0x00004fd2 jne LBB22_90 - //0x00004fd8 LBB22_82 - 0x48, 0x83, 0xc0, 0x03, //0x00004fd8 addq $3, %rax - 0x49, 0x89, 0x00, //0x00004fdc movq %rax, (%r8) - //0x00004fdf LBB22_90 - 0x49, 0xc7, 0xc7, 0xfe, 0xff, 0xff, 0xff, //0x00004fdf movq $-2, %r15 - 0xe9, 0xb7, 0xfe, 0xff, 0xff, //0x00004fe6 jmp LBB22_87 - //0x00004feb LBB22_69 - 0x48, 0x83, 0xc0, 0xff, //0x00004feb addq $-1, %rax - 0x49, 0x89, 0xc7, //0x00004fef movq %rax, %r15 - 0xe9, 0xab, 0xfe, 0xff, 0xff, //0x00004ff2 jmp LBB22_87 - 0x90, //0x00004ff7 .p2align 2, 0x90 - // // .set L22_0_set_34, LBB22_34-LJTI22_0 - // // .set L22_0_set_38, LBB22_38-LJTI22_0 - // // .set L22_0_set_40, LBB22_40-LJTI22_0 - // // .set L22_0_set_45, LBB22_45-LJTI22_0 - // // .set L22_0_set_47, LBB22_47-LJTI22_0 - // // .set L22_0_set_50, LBB22_50-LJTI22_0 - //0x00004ff8 LJTI22_0 - 0x7a, 0xfb, 0xff, 0xff, //0x00004ff8 .long L22_0_set_34 - 0xa2, 0xfb, 0xff, 0xff, //0x00004ffc .long L22_0_set_38 - 0xcd, 0xfb, 0xff, 0xff, //0x00005000 .long L22_0_set_40 - 0x27, 0xfc, 0xff, 0xff, //0x00005004 .long L22_0_set_45 - 0x3d, 0xfc, 0xff, 0xff, //0x00005008 .long L22_0_set_47 - 0xc9, 0xfc, 0xff, 0xff, //0x0000500c .long L22_0_set_50 - // // .set L22_1_set_87, LBB22_87-LJTI22_1 - // // .set L22_1_set_90, LBB22_90-LJTI22_1 - // // .set L22_1_set_42, LBB22_42-LJTI22_1 - // // .set L22_1_set_61, LBB22_61-LJTI22_1 - // // .set L22_1_set_52, LBB22_52-LJTI22_1 - // // .set L22_1_set_64, LBB22_64-LJTI22_1 - // // .set L22_1_set_66, LBB22_66-LJTI22_1 - // // .set L22_1_set_70, LBB22_70-LJTI22_1 - // // .set L22_1_set_76, LBB22_76-LJTI22_1 - // // .set L22_1_set_83, LBB22_83-LJTI22_1 - //0x00005010 LJTI22_1 - 0x92, 0xfe, 0xff, 0xff, //0x00005010 .long L22_1_set_87 - 0xcf, 0xff, 0xff, 0xff, //0x00005014 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x00005018 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x0000501c .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x00005020 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x00005024 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x00005028 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x0000502c .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x00005030 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x00005034 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x00005038 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x0000503c .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x00005040 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x00005044 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x00005048 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x0000504c .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x00005050 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x00005054 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x00005058 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x0000505c .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x00005060 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x00005064 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x00005068 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x0000506c .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x00005070 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x00005074 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x00005078 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x0000507c .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x00005080 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x00005084 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x00005088 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x0000508c .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x00005090 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x00005094 .long L22_1_set_90 - 0xc6, 0xfb, 0xff, 0xff, //0x00005098 .long L22_1_set_42 - 0xcf, 0xff, 0xff, 0xff, //0x0000509c .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x000050a0 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x000050a4 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x000050a8 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x000050ac .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x000050b0 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x000050b4 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x000050b8 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x000050bc .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x000050c0 .long L22_1_set_90 - 0x69, 0xfd, 0xff, 0xff, //0x000050c4 .long L22_1_set_61 - 0xcf, 0xff, 0xff, 0xff, //0x000050c8 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x000050cc .long L22_1_set_90 - 0x51, 0xfc, 0xff, 0xff, //0x000050d0 .long L22_1_set_52 - 0x51, 0xfc, 0xff, 0xff, //0x000050d4 .long L22_1_set_52 - 0x51, 0xfc, 0xff, 0xff, //0x000050d8 .long L22_1_set_52 - 0x51, 0xfc, 0xff, 0xff, //0x000050dc .long L22_1_set_52 - 0x51, 0xfc, 0xff, 0xff, //0x000050e0 .long L22_1_set_52 - 0x51, 0xfc, 0xff, 0xff, //0x000050e4 .long L22_1_set_52 - 0x51, 0xfc, 0xff, 0xff, //0x000050e8 .long L22_1_set_52 - 0x51, 0xfc, 0xff, 0xff, //0x000050ec .long L22_1_set_52 - 0x51, 0xfc, 0xff, 0xff, //0x000050f0 .long L22_1_set_52 - 0x51, 0xfc, 0xff, 0xff, //0x000050f4 .long L22_1_set_52 - 0xcf, 0xff, 0xff, 0xff, //0x000050f8 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x000050fc .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x00005100 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x00005104 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x00005108 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x0000510c .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x00005110 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x00005114 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x00005118 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x0000511c .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x00005120 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x00005124 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x00005128 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x0000512c .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x00005130 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x00005134 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x00005138 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x0000513c .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x00005140 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x00005144 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x00005148 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x0000514c .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x00005150 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x00005154 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x00005158 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x0000515c .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x00005160 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x00005164 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x00005168 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x0000516c .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x00005170 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x00005174 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x00005178 .long L22_1_set_90 - 0xa9, 0xfd, 0xff, 0xff, //0x0000517c .long L22_1_set_64 - 0xcf, 0xff, 0xff, 0xff, //0x00005180 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x00005184 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x00005188 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x0000518c .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x00005190 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x00005194 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x00005198 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x0000519c .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x000051a0 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x000051a4 .long L22_1_set_90 - 0xcd, 0xfd, 0xff, 0xff, //0x000051a8 .long L22_1_set_66 - 0xcf, 0xff, 0xff, 0xff, //0x000051ac .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x000051b0 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x000051b4 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x000051b8 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x000051bc .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x000051c0 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x000051c4 .long L22_1_set_90 - 0x08, 0xfe, 0xff, 0xff, //0x000051c8 .long L22_1_set_70 - 0xcf, 0xff, 0xff, 0xff, //0x000051cc .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x000051d0 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x000051d4 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x000051d8 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x000051dc .long L22_1_set_90 - 0x36, 0xfe, 0xff, 0xff, //0x000051e0 .long L22_1_set_76 - 0xcf, 0xff, 0xff, 0xff, //0x000051e4 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x000051e8 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x000051ec .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x000051f0 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x000051f4 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x000051f8 .long L22_1_set_90 - 0x64, 0xfe, 0xff, 0xff, //0x000051fc .long L22_1_set_83 - //0x00005200 .p2align 4, 0x00 - //0x00005200 LCPI23_0 - 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005200 .quad 1 - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005208 .quad 6 - //0x00005210 .p2align 4, 0x90 - //0x00005210 _skip_object - 0x55, //0x00005210 pushq %rbp - 0x48, 0x89, 0xe5, //0x00005211 movq %rsp, %rbp - 0x48, 0x89, 0xd0, //0x00005214 movq %rdx, %rax - 0x48, 0x89, 0xf2, //0x00005217 movq %rsi, %rdx - 0x48, 0x89, 0xfe, //0x0000521a movq %rdi, %rsi - 0xc5, 0xf8, 0x28, 0x05, 0xdb, 0xff, 0xff, 0xff, //0x0000521d vmovaps $-37(%rip), %xmm0 /* LCPI23_0+0(%rip) */ - 0xc5, 0xf8, 0x11, 0x00, //0x00005225 vmovups %xmm0, (%rax) - 0x48, 0x89, 0xc7, //0x00005229 movq %rax, %rdi - 0x5d, //0x0000522c popq %rbp - 0xe9, 0x4e, 0xf7, 0xff, 0xff, //0x0000522d jmp _fsm_exec - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00005232 .p2align 4, 0x90 - //0x00005240 _skip_string - 0x55, //0x00005240 pushq %rbp - 0x48, 0x89, 0xe5, //0x00005241 movq %rsp, %rbp - 0x41, 0x57, //0x00005244 pushq %r15 - 0x41, 0x56, //0x00005246 pushq %r14 - 0x41, 0x54, //0x00005248 pushq %r12 - 0x53, //0x0000524a pushq %rbx - 0x48, 0x83, 0xec, 0x10, //0x0000524b subq $16, %rsp - 0x48, 0x89, 0xd1, //0x0000524f movq %rdx, %rcx - 0x49, 0x89, 0xf6, //0x00005252 movq %rsi, %r14 - 0x49, 0x89, 0xff, //0x00005255 movq %rdi, %r15 - 0x48, 0xc7, 0x45, 0xd8, 0xff, 0xff, 0xff, 0xff, //0x00005258 movq $-1, $-40(%rbp) - 0x48, 0x8b, 0x1e, //0x00005260 movq (%rsi), %rbx - 0x4c, 0x8d, 0x65, 0xd8, //0x00005263 leaq $-40(%rbp), %r12 - 0x48, 0x89, 0xde, //0x00005267 movq %rbx, %rsi - 0x4c, 0x89, 0xe2, //0x0000526a movq %r12, %rdx - 0xe8, 0x5e, 0xe8, 0xff, 0xff, //0x0000526d callq _advance_string - 0x48, 0x85, 0xc0, //0x00005272 testq %rax, %rax - 0x0f, 0x88, 0x0f, 0x00, 0x00, 0x00, //0x00005275 js LBB24_1 - 0x48, 0x83, 0xc3, 0xff, //0x0000527b addq $-1, %rbx - 0x48, 0x89, 0xc1, //0x0000527f movq %rax, %rcx - 0x48, 0x89, 0xd8, //0x00005282 movq %rbx, %rax - 0xe9, 0x10, 0x00, 0x00, 0x00, //0x00005285 jmp LBB24_3 - //0x0000528a LBB24_1 - 0x49, 0x83, 0xc7, 0x08, //0x0000528a addq $8, %r15 - 0x48, 0x83, 0xf8, 0xff, //0x0000528e cmpq $-1, %rax - 0x4d, 0x0f, 0x44, 0xe7, //0x00005292 cmoveq %r15, %r12 - 0x49, 0x8b, 0x0c, 0x24, //0x00005296 movq (%r12), %rcx - //0x0000529a LBB24_3 - 0x49, 0x89, 0x0e, //0x0000529a movq %rcx, (%r14) - 0x48, 0x83, 0xc4, 0x10, //0x0000529d addq $16, %rsp - 0x5b, //0x000052a1 popq %rbx - 0x41, 0x5c, //0x000052a2 popq %r12 - 0x41, 0x5e, //0x000052a4 popq %r14 - 0x41, 0x5f, //0x000052a6 popq %r15 - 0x5d, //0x000052a8 popq %rbp - 0xc3, //0x000052a9 retq - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000052aa .p2align 4, 0x90 - //0x000052b0 _skip_negative - 0x55, //0x000052b0 pushq %rbp - 0x48, 0x89, 0xe5, //0x000052b1 movq %rsp, %rbp - 0x41, 0x56, //0x000052b4 pushq %r14 - 0x53, //0x000052b6 pushq %rbx - 0x49, 0x89, 0xf6, //0x000052b7 movq %rsi, %r14 - 0x48, 0x8b, 0x1e, //0x000052ba movq (%rsi), %rbx - 0x48, 0x8b, 0x07, //0x000052bd movq (%rdi), %rax - 0x48, 0x01, 0xd8, //0x000052c0 addq %rbx, %rax - 0x48, 0x8b, 0x77, 0x08, //0x000052c3 movq $8(%rdi), %rsi - 0x48, 0x29, 0xde, //0x000052c7 subq %rbx, %rsi - 0x48, 0x89, 0xc7, //0x000052ca movq %rax, %rdi - 0xe8, 0xae, 0x00, 0x00, 0x00, //0x000052cd callq _do_skip_number - 0x48, 0x85, 0xc0, //0x000052d2 testq %rax, %rax - 0x0f, 0x88, 0x0f, 0x00, 0x00, 0x00, //0x000052d5 js LBB25_1 - 0x48, 0x01, 0xd8, //0x000052db addq %rbx, %rax - 0x49, 0x89, 0x06, //0x000052de movq %rax, (%r14) - 0x48, 0x83, 0xc3, 0xff, //0x000052e1 addq $-1, %rbx - 0xe9, 0x10, 0x00, 0x00, 0x00, //0x000052e5 jmp LBB25_3 - //0x000052ea LBB25_1 - 0x48, 0xf7, 0xd0, //0x000052ea notq %rax - 0x48, 0x01, 0xc3, //0x000052ed addq %rax, %rbx - 0x49, 0x89, 0x1e, //0x000052f0 movq %rbx, (%r14) - 0x48, 0xc7, 0xc3, 0xfe, 0xff, 0xff, 0xff, //0x000052f3 movq $-2, %rbx - //0x000052fa LBB25_3 - 0x48, 0x89, 0xd8, //0x000052fa movq %rbx, %rax - 0x5b, //0x000052fd popq %rbx - 0x41, 0x5e, //0x000052fe popq %r14 - 0x5d, //0x00005300 popq %rbp - 0xc3, //0x00005301 retq - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005302 .p2align 4, 0x00 - //0x00005310 LCPI26_0 - 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, //0x00005310 QUAD $0x2f2f2f2f2f2f2f2f; QUAD $0x2f2f2f2f2f2f2f2f // .space 16, '////////////////' - //0x00005320 LCPI26_1 - 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, //0x00005320 QUAD $0x3a3a3a3a3a3a3a3a; QUAD $0x3a3a3a3a3a3a3a3a // .space 16, '::::::::::::::::' - //0x00005330 LCPI26_2 - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, //0x00005330 QUAD $0x2b2b2b2b2b2b2b2b; QUAD $0x2b2b2b2b2b2b2b2b // .space 16, '++++++++++++++++' - //0x00005340 LCPI26_3 - 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, //0x00005340 QUAD $0x2d2d2d2d2d2d2d2d; QUAD $0x2d2d2d2d2d2d2d2d // .space 16, '----------------' - //0x00005350 LCPI26_4 - 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, //0x00005350 QUAD $0xdfdfdfdfdfdfdfdf; QUAD $0xdfdfdfdfdfdfdfdf // .space 16, '\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf' - //0x00005360 LCPI26_5 - 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, //0x00005360 QUAD $0x2e2e2e2e2e2e2e2e; QUAD $0x2e2e2e2e2e2e2e2e // .space 16, '................' - //0x00005370 LCPI26_6 - 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, //0x00005370 QUAD $0x4545454545454545; QUAD $0x4545454545454545 // .space 16, 'EEEEEEEEEEEEEEEE' - //0x00005380 .p2align 4, 0x90 - //0x00005380 _do_skip_number - 0x55, //0x00005380 pushq %rbp - 0x48, 0x89, 0xe5, //0x00005381 movq %rsp, %rbp - 0x41, 0x57, //0x00005384 pushq %r15 - 0x41, 0x56, //0x00005386 pushq %r14 - 0x53, //0x00005388 pushq %rbx - 0x48, 0x85, 0xf6, //0x00005389 testq %rsi, %rsi - 0x0f, 0x84, 0x36, 0x02, 0x00, 0x00, //0x0000538c je LBB26_1 - 0x80, 0x3f, 0x30, //0x00005392 cmpb $48, (%rdi) - 0x0f, 0x85, 0x35, 0x00, 0x00, 0x00, //0x00005395 jne LBB26_6 - 0xb8, 0x01, 0x00, 0x00, 0x00, //0x0000539b movl $1, %eax - 0x48, 0x83, 0xfe, 0x01, //0x000053a0 cmpq $1, %rsi - 0x0f, 0x84, 0xb9, 0x02, 0x00, 0x00, //0x000053a4 je LBB26_55 - 0x8a, 0x4f, 0x01, //0x000053aa movb $1(%rdi), %cl - 0x80, 0xc1, 0xd2, //0x000053ad addb $-46, %cl - 0x80, 0xf9, 0x37, //0x000053b0 cmpb $55, %cl - 0x0f, 0x87, 0xaa, 0x02, 0x00, 0x00, //0x000053b3 ja LBB26_55 - 0x0f, 0xb6, 0xc9, //0x000053b9 movzbl %cl, %ecx - 0x48, 0xba, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, //0x000053bc movabsq $36028797027352577, %rdx - 0x48, 0x0f, 0xa3, 0xca, //0x000053c6 btq %rcx, %rdx - 0x0f, 0x83, 0x93, 0x02, 0x00, 0x00, //0x000053ca jae LBB26_55 - //0x000053d0 LBB26_6 - 0x48, 0x83, 0xfe, 0x10, //0x000053d0 cmpq $16, %rsi - 0x0f, 0x82, 0xf2, 0x02, 0x00, 0x00, //0x000053d4 jb LBB26_7 - 0x49, 0xc7, 0xc2, 0xff, 0xff, 0xff, 0xff, //0x000053da movq $-1, %r10 - 0x31, 0xc0, //0x000053e1 xorl %eax, %eax - 0xc5, 0x79, 0x6f, 0x05, 0x25, 0xff, 0xff, 0xff, //0x000053e3 vmovdqa $-219(%rip), %xmm8 /* LCPI26_0+0(%rip) */ - 0xc5, 0x79, 0x6f, 0x0d, 0x2d, 0xff, 0xff, 0xff, //0x000053eb vmovdqa $-211(%rip), %xmm9 /* LCPI26_1+0(%rip) */ - 0xc5, 0x79, 0x6f, 0x15, 0x35, 0xff, 0xff, 0xff, //0x000053f3 vmovdqa $-203(%rip), %xmm10 /* LCPI26_2+0(%rip) */ - 0xc5, 0x79, 0x6f, 0x1d, 0x3d, 0xff, 0xff, 0xff, //0x000053fb vmovdqa $-195(%rip), %xmm11 /* LCPI26_3+0(%rip) */ - 0xc5, 0xf9, 0x6f, 0x25, 0x45, 0xff, 0xff, 0xff, //0x00005403 vmovdqa $-187(%rip), %xmm4 /* LCPI26_4+0(%rip) */ - 0xc5, 0xf9, 0x6f, 0x2d, 0x4d, 0xff, 0xff, 0xff, //0x0000540b vmovdqa $-179(%rip), %xmm5 /* LCPI26_5+0(%rip) */ - 0xc5, 0xf9, 0x6f, 0x35, 0x55, 0xff, 0xff, 0xff, //0x00005413 vmovdqa $-171(%rip), %xmm6 /* LCPI26_6+0(%rip) */ - 0x49, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x0000541b movq $-1, %r9 - 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00005422 movq $-1, %r8 - 0x49, 0x89, 0xf6, //0x00005429 movq %rsi, %r14 - 0x90, 0x90, 0x90, 0x90, //0x0000542c .p2align 4, 0x90 - //0x00005430 LBB26_9 - 0xc5, 0xfa, 0x6f, 0x3c, 0x07, //0x00005430 vmovdqu (%rdi,%rax), %xmm7 - 0xc4, 0xc1, 0x41, 0x64, 0xc0, //0x00005435 vpcmpgtb %xmm8, %xmm7, %xmm0 - 0xc5, 0xb1, 0x64, 0xcf, //0x0000543a vpcmpgtb %xmm7, %xmm9, %xmm1 - 0xc5, 0xf9, 0xdb, 0xc1, //0x0000543e vpand %xmm1, %xmm0, %xmm0 - 0xc5, 0xa9, 0x74, 0xcf, //0x00005442 vpcmpeqb %xmm7, %xmm10, %xmm1 - 0xc5, 0xa1, 0x74, 0xd7, //0x00005446 vpcmpeqb %xmm7, %xmm11, %xmm2 - 0xc5, 0xe9, 0xeb, 0xc9, //0x0000544a vpor %xmm1, %xmm2, %xmm1 - 0xc5, 0xc1, 0xdb, 0xd4, //0x0000544e vpand %xmm4, %xmm7, %xmm2 - 0xc5, 0xe9, 0x74, 0xd6, //0x00005452 vpcmpeqb %xmm6, %xmm2, %xmm2 - 0xc5, 0xc1, 0x74, 0xfd, //0x00005456 vpcmpeqb %xmm5, %xmm7, %xmm7 - 0xc5, 0xe9, 0xeb, 0xdf, //0x0000545a vpor %xmm7, %xmm2, %xmm3 - 0xc5, 0xf1, 0xeb, 0xc0, //0x0000545e vpor %xmm0, %xmm1, %xmm0 - 0xc5, 0xe1, 0xeb, 0xc0, //0x00005462 vpor %xmm0, %xmm3, %xmm0 - 0xc5, 0xf9, 0xd7, 0xd7, //0x00005466 vpmovmskb %xmm7, %edx - 0xc5, 0x79, 0xd7, 0xfa, //0x0000546a vpmovmskb %xmm2, %r15d - 0xc5, 0x79, 0xd7, 0xd9, //0x0000546e vpmovmskb %xmm1, %r11d - 0xc5, 0xf9, 0xd7, 0xc8, //0x00005472 vpmovmskb %xmm0, %ecx - 0xf7, 0xd1, //0x00005476 notl %ecx - 0x0f, 0xbc, 0xc9, //0x00005478 bsfl %ecx, %ecx - 0x83, 0xf9, 0x10, //0x0000547b cmpl $16, %ecx - 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x0000547e je LBB26_11 - 0xbb, 0xff, 0xff, 0xff, 0xff, //0x00005484 movl $-1, %ebx - 0xd3, 0xe3, //0x00005489 shll %cl, %ebx - 0xf7, 0xd3, //0x0000548b notl %ebx - 0x21, 0xda, //0x0000548d andl %ebx, %edx - 0x41, 0x21, 0xdf, //0x0000548f andl %ebx, %r15d - 0x44, 0x21, 0xdb, //0x00005492 andl %r11d, %ebx - 0x41, 0x89, 0xdb, //0x00005495 movl %ebx, %r11d - //0x00005498 LBB26_11 - 0x8d, 0x5a, 0xff, //0x00005498 leal $-1(%rdx), %ebx - 0x21, 0xd3, //0x0000549b andl %edx, %ebx - 0x0f, 0x85, 0x06, 0x02, 0x00, 0x00, //0x0000549d jne LBB26_12 - 0x41, 0x8d, 0x5f, 0xff, //0x000054a3 leal $-1(%r15), %ebx - 0x44, 0x21, 0xfb, //0x000054a7 andl %r15d, %ebx - 0x0f, 0x85, 0xf9, 0x01, 0x00, 0x00, //0x000054aa jne LBB26_12 - 0x41, 0x8d, 0x5b, 0xff, //0x000054b0 leal $-1(%r11), %ebx - 0x44, 0x21, 0xdb, //0x000054b4 andl %r11d, %ebx - 0x0f, 0x85, 0xec, 0x01, 0x00, 0x00, //0x000054b7 jne LBB26_12 - 0x85, 0xd2, //0x000054bd testl %edx, %edx - 0x0f, 0x84, 0x13, 0x00, 0x00, 0x00, //0x000054bf je LBB26_19 - 0x0f, 0xbc, 0xd2, //0x000054c5 bsfl %edx, %edx - 0x49, 0x83, 0xf8, 0xff, //0x000054c8 cmpq $-1, %r8 - 0x0f, 0x85, 0xed, 0x01, 0x00, 0x00, //0x000054cc jne LBB26_56 - 0x48, 0x01, 0xc2, //0x000054d2 addq %rax, %rdx - 0x49, 0x89, 0xd0, //0x000054d5 movq %rdx, %r8 - //0x000054d8 LBB26_19 - 0x45, 0x85, 0xff, //0x000054d8 testl %r15d, %r15d - 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x000054db je LBB26_22 - 0x41, 0x0f, 0xbc, 0xd7, //0x000054e1 bsfl %r15d, %edx - 0x49, 0x83, 0xf9, 0xff, //0x000054e5 cmpq $-1, %r9 - 0x0f, 0x85, 0xd0, 0x01, 0x00, 0x00, //0x000054e9 jne LBB26_56 - 0x48, 0x01, 0xc2, //0x000054ef addq %rax, %rdx - 0x49, 0x89, 0xd1, //0x000054f2 movq %rdx, %r9 - //0x000054f5 LBB26_22 - 0x45, 0x85, 0xdb, //0x000054f5 testl %r11d, %r11d - 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x000054f8 je LBB26_25 - 0x41, 0x0f, 0xbc, 0xd3, //0x000054fe bsfl %r11d, %edx - 0x49, 0x83, 0xfa, 0xff, //0x00005502 cmpq $-1, %r10 - 0x0f, 0x85, 0xb3, 0x01, 0x00, 0x00, //0x00005506 jne LBB26_56 - 0x48, 0x01, 0xc2, //0x0000550c addq %rax, %rdx - 0x49, 0x89, 0xd2, //0x0000550f movq %rdx, %r10 - //0x00005512 LBB26_25 - 0x83, 0xf9, 0x10, //0x00005512 cmpl $16, %ecx - 0x0f, 0x85, 0xb9, 0x00, 0x00, 0x00, //0x00005515 jne LBB26_57 - 0x49, 0x83, 0xc6, 0xf0, //0x0000551b addq $-16, %r14 - 0x48, 0x83, 0xc0, 0x10, //0x0000551f addq $16, %rax - 0x49, 0x83, 0xfe, 0x0f, //0x00005523 cmpq $15, %r14 - 0x0f, 0x87, 0x03, 0xff, 0xff, 0xff, //0x00005527 ja LBB26_9 - 0x48, 0x8d, 0x0c, 0x07, //0x0000552d leaq (%rdi,%rax), %rcx - 0x49, 0x89, 0xcb, //0x00005531 movq %rcx, %r11 - 0x48, 0x39, 0xc6, //0x00005534 cmpq %rax, %rsi - 0x0f, 0x84, 0xa0, 0x00, 0x00, 0x00, //0x00005537 je LBB26_41 - //0x0000553d LBB26_28 - 0x4e, 0x8d, 0x1c, 0x31, //0x0000553d leaq (%rcx,%r14), %r11 - 0x48, 0x89, 0xce, //0x00005541 movq %rcx, %rsi - 0x48, 0x29, 0xfe, //0x00005544 subq %rdi, %rsi - 0x31, 0xc0, //0x00005547 xorl %eax, %eax - 0x4c, 0x8d, 0x3d, 0x9c, 0x01, 0x00, 0x00, //0x00005549 leaq $412(%rip), %r15 /* LJTI26_0+0(%rip) */ - 0xe9, 0x28, 0x00, 0x00, 0x00, //0x00005550 jmp LBB26_29 - //0x00005555 LBB26_31 - 0x83, 0xfa, 0x65, //0x00005555 cmpl $101, %edx - 0x0f, 0x85, 0x94, 0x00, 0x00, 0x00, //0x00005558 jne LBB26_40 - //0x0000555e LBB26_32 - 0x49, 0x83, 0xf9, 0xff, //0x0000555e cmpq $-1, %r9 - 0x0f, 0x85, 0x49, 0x01, 0x00, 0x00, //0x00005562 jne LBB26_58 - 0x4c, 0x8d, 0x0c, 0x06, //0x00005568 leaq (%rsi,%rax), %r9 - 0x90, 0x90, 0x90, 0x90, //0x0000556c .p2align 4, 0x90 - //0x00005570 LBB26_39 - 0x48, 0x83, 0xc0, 0x01, //0x00005570 addq $1, %rax - 0x49, 0x39, 0xc6, //0x00005574 cmpq %rax, %r14 - 0x0f, 0x84, 0x60, 0x00, 0x00, 0x00, //0x00005577 je LBB26_41 - //0x0000557d LBB26_29 - 0x0f, 0xbe, 0x14, 0x01, //0x0000557d movsbl (%rcx,%rax), %edx - 0x8d, 0x5a, 0xd0, //0x00005581 leal $-48(%rdx), %ebx - 0x83, 0xfb, 0x0a, //0x00005584 cmpl $10, %ebx - 0x0f, 0x82, 0xe3, 0xff, 0xff, 0xff, //0x00005587 jb LBB26_39 - 0x8d, 0x5a, 0xd5, //0x0000558d leal $-43(%rdx), %ebx - 0x83, 0xfb, 0x1a, //0x00005590 cmpl $26, %ebx - 0x0f, 0x87, 0xbc, 0xff, 0xff, 0xff, //0x00005593 ja LBB26_31 - 0x49, 0x63, 0x14, 0x9f, //0x00005599 movslq (%r15,%rbx,4), %rdx - 0x4c, 0x01, 0xfa, //0x0000559d addq %r15, %rdx - 0xff, 0xe2, //0x000055a0 jmpq *%rdx - //0x000055a2 LBB26_37 - 0x49, 0x83, 0xfa, 0xff, //0x000055a2 cmpq $-1, %r10 - 0x0f, 0x85, 0x05, 0x01, 0x00, 0x00, //0x000055a6 jne LBB26_58 - 0x4c, 0x8d, 0x14, 0x06, //0x000055ac leaq (%rsi,%rax), %r10 - 0xe9, 0xbb, 0xff, 0xff, 0xff, //0x000055b0 jmp LBB26_39 - //0x000055b5 LBB26_35 - 0x49, 0x83, 0xf8, 0xff, //0x000055b5 cmpq $-1, %r8 - 0x0f, 0x85, 0xf2, 0x00, 0x00, 0x00, //0x000055b9 jne LBB26_58 - 0x4c, 0x8d, 0x04, 0x06, //0x000055bf leaq (%rsi,%rax), %r8 - 0xe9, 0xa8, 0xff, 0xff, 0xff, //0x000055c3 jmp LBB26_39 - //0x000055c8 LBB26_1 - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000055c8 movq $-1, %rax - 0xe9, 0x8f, 0x00, 0x00, 0x00, //0x000055cf jmp LBB26_55 - //0x000055d4 LBB26_57 - 0x41, 0x89, 0xcb, //0x000055d4 movl %ecx, %r11d - 0x49, 0x01, 0xfb, //0x000055d7 addq %rdi, %r11 - 0x49, 0x01, 0xc3, //0x000055da addq %rax, %r11 - //0x000055dd LBB26_41 - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000055dd movq $-1, %rax - 0x4d, 0x85, 0xc0, //0x000055e4 testq %r8, %r8 - 0x0f, 0x85, 0x1b, 0x00, 0x00, 0x00, //0x000055e7 jne LBB26_42 - 0xe9, 0x71, 0x00, 0x00, 0x00, //0x000055ed jmp LBB26_55 - //0x000055f2 LBB26_40 - 0x48, 0x01, 0xc1, //0x000055f2 addq %rax, %rcx - 0x49, 0x89, 0xcb, //0x000055f5 movq %rcx, %r11 - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000055f8 movq $-1, %rax - 0x4d, 0x85, 0xc0, //0x000055ff testq %r8, %r8 - 0x0f, 0x84, 0x5b, 0x00, 0x00, 0x00, //0x00005602 je LBB26_55 - //0x00005608 LBB26_42 - 0x4d, 0x85, 0xd2, //0x00005608 testq %r10, %r10 - 0x0f, 0x84, 0x52, 0x00, 0x00, 0x00, //0x0000560b je LBB26_55 - 0x4d, 0x85, 0xc9, //0x00005611 testq %r9, %r9 - 0x0f, 0x84, 0x49, 0x00, 0x00, 0x00, //0x00005614 je LBB26_55 - 0x49, 0x29, 0xfb, //0x0000561a subq %rdi, %r11 - 0x49, 0x8d, 0x43, 0xff, //0x0000561d leaq $-1(%r11), %rax - 0x49, 0x39, 0xc0, //0x00005621 cmpq %rax, %r8 - 0x0f, 0x84, 0x33, 0x00, 0x00, 0x00, //0x00005624 je LBB26_47 - 0x49, 0x39, 0xc2, //0x0000562a cmpq %rax, %r10 - 0x0f, 0x84, 0x2a, 0x00, 0x00, 0x00, //0x0000562d je LBB26_47 - 0x49, 0x39, 0xc1, //0x00005633 cmpq %rax, %r9 - 0x0f, 0x84, 0x21, 0x00, 0x00, 0x00, //0x00005636 je LBB26_47 - 0x4d, 0x85, 0xd2, //0x0000563c testq %r10, %r10 - 0x0f, 0x8e, 0x25, 0x00, 0x00, 0x00, //0x0000563f jle LBB26_51 - 0x49, 0x8d, 0x42, 0xff, //0x00005645 leaq $-1(%r10), %rax - 0x49, 0x39, 0xc1, //0x00005649 cmpq %rax, %r9 - 0x0f, 0x84, 0x18, 0x00, 0x00, 0x00, //0x0000564c je LBB26_51 - 0x49, 0xf7, 0xd2, //0x00005652 notq %r10 - 0x4c, 0x89, 0xd0, //0x00005655 movq %r10, %rax - 0xe9, 0x06, 0x00, 0x00, 0x00, //0x00005658 jmp LBB26_55 - //0x0000565d LBB26_47 - 0x49, 0xf7, 0xdb, //0x0000565d negq %r11 - 0x4c, 0x89, 0xd8, //0x00005660 movq %r11, %rax - //0x00005663 LBB26_55 - 0x5b, //0x00005663 popq %rbx - 0x41, 0x5e, //0x00005664 popq %r14 - 0x41, 0x5f, //0x00005666 popq %r15 - 0x5d, //0x00005668 popq %rbp - 0xc3, //0x00005669 retq - //0x0000566a LBB26_51 - 0x4c, 0x89, 0xc0, //0x0000566a movq %r8, %rax - 0x4c, 0x09, 0xc8, //0x0000566d orq %r9, %rax - 0x0f, 0x99, 0xc0, //0x00005670 setns %al - 0x0f, 0x88, 0x14, 0x00, 0x00, 0x00, //0x00005673 js LBB26_54 - 0x4d, 0x39, 0xc8, //0x00005679 cmpq %r9, %r8 - 0x0f, 0x8c, 0x0b, 0x00, 0x00, 0x00, //0x0000567c jl LBB26_54 - 0x49, 0xf7, 0xd0, //0x00005682 notq %r8 - 0x4c, 0x89, 0xc0, //0x00005685 movq %r8, %rax - 0xe9, 0xd6, 0xff, 0xff, 0xff, //0x00005688 jmp LBB26_55 - //0x0000568d LBB26_54 - 0x49, 0x8d, 0x49, 0xff, //0x0000568d leaq $-1(%r9), %rcx - 0x49, 0x39, 0xc8, //0x00005691 cmpq %rcx, %r8 - 0x49, 0xf7, 0xd1, //0x00005694 notq %r9 - 0x4d, 0x0f, 0x45, 0xcb, //0x00005697 cmovneq %r11, %r9 - 0x84, 0xc0, //0x0000569b testb %al, %al - 0x4d, 0x0f, 0x44, 0xcb, //0x0000569d cmoveq %r11, %r9 - 0x4c, 0x89, 0xc8, //0x000056a1 movq %r9, %rax - 0xe9, 0xba, 0xff, 0xff, 0xff, //0x000056a4 jmp LBB26_55 - //0x000056a9 LBB26_12 - 0x0f, 0xbc, 0xcb, //0x000056a9 bsfl %ebx, %ecx - 0xe9, 0x10, 0x00, 0x00, 0x00, //0x000056ac jmp LBB26_13 - //0x000056b1 LBB26_58 - 0x48, 0x29, 0xcf, //0x000056b1 subq %rcx, %rdi - 0x48, 0xf7, 0xd0, //0x000056b4 notq %rax - 0x48, 0x01, 0xf8, //0x000056b7 addq %rdi, %rax - 0xe9, 0xa4, 0xff, 0xff, 0xff, //0x000056ba jmp LBB26_55 - //0x000056bf LBB26_56 - 0x89, 0xd1, //0x000056bf movl %edx, %ecx - //0x000056c1 LBB26_13 - 0x48, 0xf7, 0xd0, //0x000056c1 notq %rax - 0x48, 0x29, 0xc8, //0x000056c4 subq %rcx, %rax - 0xe9, 0x97, 0xff, 0xff, 0xff, //0x000056c7 jmp LBB26_55 - //0x000056cc LBB26_7 - 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000056cc movq $-1, %r8 - 0x48, 0x89, 0xf9, //0x000056d3 movq %rdi, %rcx - 0x49, 0x89, 0xf6, //0x000056d6 movq %rsi, %r14 - 0x49, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x000056d9 movq $-1, %r9 - 0x49, 0xc7, 0xc2, 0xff, 0xff, 0xff, 0xff, //0x000056e0 movq $-1, %r10 - 0xe9, 0x51, 0xfe, 0xff, 0xff, //0x000056e7 jmp LBB26_28 - //0x000056ec .p2align 2, 0x90 - // // .set L26_0_set_37, LBB26_37-LJTI26_0 - // // .set L26_0_set_40, LBB26_40-LJTI26_0 - // // .set L26_0_set_35, LBB26_35-LJTI26_0 - // // .set L26_0_set_32, LBB26_32-LJTI26_0 - //0x000056ec LJTI26_0 - 0xb6, 0xfe, 0xff, 0xff, //0x000056ec .long L26_0_set_37 - 0x06, 0xff, 0xff, 0xff, //0x000056f0 .long L26_0_set_40 - 0xb6, 0xfe, 0xff, 0xff, //0x000056f4 .long L26_0_set_37 - 0xc9, 0xfe, 0xff, 0xff, //0x000056f8 .long L26_0_set_35 - 0x06, 0xff, 0xff, 0xff, //0x000056fc .long L26_0_set_40 - 0x06, 0xff, 0xff, 0xff, //0x00005700 .long L26_0_set_40 - 0x06, 0xff, 0xff, 0xff, //0x00005704 .long L26_0_set_40 - 0x06, 0xff, 0xff, 0xff, //0x00005708 .long L26_0_set_40 - 0x06, 0xff, 0xff, 0xff, //0x0000570c .long L26_0_set_40 - 0x06, 0xff, 0xff, 0xff, //0x00005710 .long L26_0_set_40 - 0x06, 0xff, 0xff, 0xff, //0x00005714 .long L26_0_set_40 - 0x06, 0xff, 0xff, 0xff, //0x00005718 .long L26_0_set_40 - 0x06, 0xff, 0xff, 0xff, //0x0000571c .long L26_0_set_40 - 0x06, 0xff, 0xff, 0xff, //0x00005720 .long L26_0_set_40 - 0x06, 0xff, 0xff, 0xff, //0x00005724 .long L26_0_set_40 - 0x06, 0xff, 0xff, 0xff, //0x00005728 .long L26_0_set_40 - 0x06, 0xff, 0xff, 0xff, //0x0000572c .long L26_0_set_40 - 0x06, 0xff, 0xff, 0xff, //0x00005730 .long L26_0_set_40 - 0x06, 0xff, 0xff, 0xff, //0x00005734 .long L26_0_set_40 - 0x06, 0xff, 0xff, 0xff, //0x00005738 .long L26_0_set_40 - 0x06, 0xff, 0xff, 0xff, //0x0000573c .long L26_0_set_40 - 0x06, 0xff, 0xff, 0xff, //0x00005740 .long L26_0_set_40 - 0x06, 0xff, 0xff, 0xff, //0x00005744 .long L26_0_set_40 - 0x06, 0xff, 0xff, 0xff, //0x00005748 .long L26_0_set_40 - 0x06, 0xff, 0xff, 0xff, //0x0000574c .long L26_0_set_40 - 0x06, 0xff, 0xff, 0xff, //0x00005750 .long L26_0_set_40 - 0x72, 0xfe, 0xff, 0xff, //0x00005754 .long L26_0_set_32 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00005758 .p2align 4, 0x90 - //0x00005760 _skip_positive - 0x55, //0x00005760 pushq %rbp - 0x48, 0x89, 0xe5, //0x00005761 movq %rsp, %rbp - 0x41, 0x57, //0x00005764 pushq %r15 - 0x41, 0x56, //0x00005766 pushq %r14 - 0x53, //0x00005768 pushq %rbx - 0x50, //0x00005769 pushq %rax - 0x49, 0x89, 0xf6, //0x0000576a movq %rsi, %r14 - 0x4c, 0x8b, 0x3e, //0x0000576d movq (%rsi), %r15 - 0x49, 0x8d, 0x5f, 0xff, //0x00005770 leaq $-1(%r15), %rbx - 0x48, 0x8b, 0x07, //0x00005774 movq (%rdi), %rax - 0x48, 0x01, 0xd8, //0x00005777 addq %rbx, %rax - 0x48, 0x8b, 0x77, 0x08, //0x0000577a movq $8(%rdi), %rsi - 0x48, 0x29, 0xde, //0x0000577e subq %rbx, %rsi - 0x48, 0x89, 0xc7, //0x00005781 movq %rax, %rdi - 0xe8, 0xf7, 0xfb, 0xff, 0xff, //0x00005784 callq _do_skip_number - 0x48, 0x8d, 0x50, 0xff, //0x00005789 leaq $-1(%rax), %rdx - 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x0000578d movq $-2, %rcx - 0x48, 0xc7, 0xc6, 0xfe, 0xff, 0xff, 0xff, //0x00005794 movq $-2, %rsi - 0x48, 0x29, 0xc6, //0x0000579b subq %rax, %rsi - 0x48, 0x85, 0xc0, //0x0000579e testq %rax, %rax - 0x48, 0x0f, 0x49, 0xf2, //0x000057a1 cmovnsq %rdx, %rsi - 0x48, 0x0f, 0x49, 0xcb, //0x000057a5 cmovnsq %rbx, %rcx - 0x4c, 0x01, 0xfe, //0x000057a9 addq %r15, %rsi - 0x49, 0x89, 0x36, //0x000057ac movq %rsi, (%r14) - 0x48, 0x89, 0xc8, //0x000057af movq %rcx, %rax - 0x48, 0x83, 0xc4, 0x08, //0x000057b2 addq $8, %rsp - 0x5b, //0x000057b6 popq %rbx - 0x41, 0x5e, //0x000057b7 popq %r14 - 0x41, 0x5f, //0x000057b9 popq %r15 - 0x5d, //0x000057bb popq %rbp - 0xc3, //0x000057bc retq - 0x90, 0x90, 0x90, //0x000057bd .p2align 4, 0x90 - //0x000057c0 _skip_number - 0x55, //0x000057c0 pushq %rbp - 0x48, 0x89, 0xe5, //0x000057c1 movq %rsp, %rbp - 0x41, 0x57, //0x000057c4 pushq %r15 - 0x41, 0x56, //0x000057c6 pushq %r14 - 0x41, 0x55, //0x000057c8 pushq %r13 - 0x41, 0x54, //0x000057ca pushq %r12 - 0x53, //0x000057cc pushq %rbx - 0x50, //0x000057cd pushq %rax - 0x49, 0x89, 0xf6, //0x000057ce movq %rsi, %r14 - 0x4c, 0x8b, 0x27, //0x000057d1 movq (%rdi), %r12 - 0x48, 0x8b, 0x77, 0x08, //0x000057d4 movq $8(%rdi), %rsi - 0x4d, 0x8b, 0x2e, //0x000057d8 movq (%r14), %r13 - 0x4c, 0x29, 0xee, //0x000057db subq %r13, %rsi - 0x31, 0xc0, //0x000057de xorl %eax, %eax - 0x43, 0x80, 0x3c, 0x2c, 0x2d, //0x000057e0 cmpb $45, (%r12,%r13) - 0x4b, 0x8d, 0x1c, 0x2c, //0x000057e5 leaq (%r12,%r13), %rbx - 0x0f, 0x94, 0xc0, //0x000057e9 sete %al - 0x48, 0x01, 0xc3, //0x000057ec addq %rax, %rbx - 0x48, 0x29, 0xc6, //0x000057ef subq %rax, %rsi - 0x0f, 0x84, 0x42, 0x00, 0x00, 0x00, //0x000057f2 je LBB28_1 - 0x8a, 0x03, //0x000057f8 movb (%rbx), %al - 0x04, 0xd0, //0x000057fa addb $-48, %al - 0x49, 0xc7, 0xc7, 0xfe, 0xff, 0xff, 0xff, //0x000057fc movq $-2, %r15 - 0x3c, 0x09, //0x00005803 cmpb $9, %al - 0x0f, 0x87, 0x17, 0x00, 0x00, 0x00, //0x00005805 ja LBB28_6 - 0x48, 0x89, 0xdf, //0x0000580b movq %rbx, %rdi - 0xe8, 0x6d, 0xfb, 0xff, 0xff, //0x0000580e callq _do_skip_number - 0x48, 0x85, 0xc0, //0x00005813 testq %rax, %rax - 0x0f, 0x88, 0x2a, 0x00, 0x00, 0x00, //0x00005816 js LBB28_4 - 0x48, 0x01, 0xc3, //0x0000581c addq %rax, %rbx - 0x4d, 0x89, 0xef, //0x0000581f movq %r13, %r15 - //0x00005822 LBB28_6 - 0x4c, 0x29, 0xe3, //0x00005822 subq %r12, %rbx - 0x49, 0x89, 0x1e, //0x00005825 movq %rbx, (%r14) - 0x4c, 0x89, 0xf8, //0x00005828 movq %r15, %rax - 0x48, 0x83, 0xc4, 0x08, //0x0000582b addq $8, %rsp - 0x5b, //0x0000582f popq %rbx - 0x41, 0x5c, //0x00005830 popq %r12 - 0x41, 0x5d, //0x00005832 popq %r13 - 0x41, 0x5e, //0x00005834 popq %r14 - 0x41, 0x5f, //0x00005836 popq %r15 - 0x5d, //0x00005838 popq %rbp - 0xc3, //0x00005839 retq - //0x0000583a LBB28_1 - 0x49, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, //0x0000583a movq $-1, %r15 - 0xe9, 0xdc, 0xff, 0xff, 0xff, //0x00005841 jmp LBB28_6 - //0x00005846 LBB28_4 - 0x48, 0xf7, 0xd0, //0x00005846 notq %rax - 0x48, 0x01, 0xc3, //0x00005849 addq %rax, %rbx - 0xe9, 0xd1, 0xff, 0xff, 0xff, //0x0000584c jmp LBB28_6 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005851 .p2align 4, 0x00 - //0x00005860 LCPI29_0 - 0x01, 0x00, 0x00, 0x00, //0x00005860 .long 1 - 0x00, 0x00, 0x00, 0x00, //0x00005864 .long 0 - 0x00, 0x00, 0x00, 0x00, //0x00005868 .long 0 - 0x00, 0x00, 0x00, 0x00, //0x0000586c .long 0 - //0x00005870 .p2align 4, 0x90 - //0x00005870 _skip_one - 0x55, //0x00005870 pushq %rbp - 0x48, 0x89, 0xe5, //0x00005871 movq %rsp, %rbp - 0x48, 0x89, 0xd0, //0x00005874 movq %rdx, %rax - 0x48, 0x89, 0xf2, //0x00005877 movq %rsi, %rdx - 0x48, 0x89, 0xfe, //0x0000587a movq %rdi, %rsi - 0xc5, 0xf8, 0x28, 0x05, 0xdb, 0xff, 0xff, 0xff, //0x0000587d vmovaps $-37(%rip), %xmm0 /* LCPI29_0+0(%rip) */ - 0xc5, 0xf8, 0x11, 0x00, //0x00005885 vmovups %xmm0, (%rax) - 0x48, 0x89, 0xc7, //0x00005889 movq %rax, %rdi - 0x5d, //0x0000588c popq %rbp - 0xe9, 0xee, 0xf0, 0xff, 0xff, //0x0000588d jmp _fsm_exec - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005892 .p2align 4, 0x00 - //0x000058a0 LCPI30_0 - 0x01, 0x00, 0x00, 0x00, //0x000058a0 .long 1 - 0x00, 0x00, 0x00, 0x00, //0x000058a4 .long 0 - 0x00, 0x00, 0x00, 0x00, //0x000058a8 .long 0 - 0x00, 0x00, 0x00, 0x00, //0x000058ac .long 0 - //0x000058b0 .p2align 4, 0x90 - //0x000058b0 _validate_one - 0x55, //0x000058b0 pushq %rbp - 0x48, 0x89, 0xe5, //0x000058b1 movq %rsp, %rbp - 0x48, 0x89, 0xd0, //0x000058b4 movq %rdx, %rax - 0x48, 0x89, 0xf2, //0x000058b7 movq %rsi, %rdx - 0x48, 0x89, 0xfe, //0x000058ba movq %rdi, %rsi - 0xc5, 0xf8, 0x28, 0x05, 0xdb, 0xff, 0xff, 0xff, //0x000058bd vmovaps $-37(%rip), %xmm0 /* LCPI30_0+0(%rip) */ - 0xc5, 0xf8, 0x11, 0x00, //0x000058c5 vmovups %xmm0, (%rax) - 0xb9, 0x20, 0x00, 0x00, 0x00, //0x000058c9 movl $32, %ecx - 0x48, 0x89, 0xc7, //0x000058ce movq %rax, %rdi - 0x5d, //0x000058d1 popq %rbp - 0xe9, 0xa9, 0xf0, 0xff, 0xff, //0x000058d2 jmp _fsm_exec - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000058d7 .p2align 4, 0x00 - //0x000058e0 LCPI31_0 - 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, //0x000058e0 QUAD $0x2c2c2c2c2c2c2c2c; QUAD $0x2c2c2c2c2c2c2c2c // .space 16, ',,,,,,,,,,,,,,,,' - //0x000058f0 LCPI31_1 - 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, //0x000058f0 QUAD $0xdfdfdfdfdfdfdfdf; QUAD $0xdfdfdfdfdfdfdfdf // .space 16, '\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf' - //0x00005900 LCPI31_2 - 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, //0x00005900 QUAD $0x5d5d5d5d5d5d5d5d; QUAD $0x5d5d5d5d5d5d5d5d // .space 16, ']]]]]]]]]]]]]]]]' - //0x00005910 LCPI31_3 - 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, //0x00005910 QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' - //0x00005920 LCPI31_4 - 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x00005920 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' - //0x00005930 LCPI31_5 - 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, //0x00005930 QUAD $0x7b7b7b7b7b7b7b7b; QUAD $0x7b7b7b7b7b7b7b7b // .space 16, '{{{{{{{{{{{{{{{{' - //0x00005940 LCPI31_6 - 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, //0x00005940 QUAD $0x7d7d7d7d7d7d7d7d; QUAD $0x7d7d7d7d7d7d7d7d // .space 16, '}}}}}}}}}}}}}}}}' - //0x00005950 LCPI31_7 - 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, //0x00005950 QUAD $0x5b5b5b5b5b5b5b5b; QUAD $0x5b5b5b5b5b5b5b5b // .space 16, '[[[[[[[[[[[[[[[[' - //0x00005960 .p2align 4, 0x90 - //0x00005960 _skip_one_fast - 0x55, //0x00005960 pushq %rbp - 0x48, 0x89, 0xe5, //0x00005961 movq %rsp, %rbp - 0x41, 0x57, //0x00005964 pushq %r15 - 0x41, 0x56, //0x00005966 pushq %r14 - 0x41, 0x55, //0x00005968 pushq %r13 - 0x41, 0x54, //0x0000596a pushq %r12 - 0x53, //0x0000596c pushq %rbx - 0x48, 0x81, 0xec, 0x80, 0x00, 0x00, 0x00, //0x0000596d subq $128, %rsp - 0x4c, 0x8b, 0x37, //0x00005974 movq (%rdi), %r14 - 0x48, 0x8b, 0x57, 0x08, //0x00005977 movq $8(%rdi), %rdx - 0x48, 0x8b, 0x0e, //0x0000597b movq (%rsi), %rcx - 0x48, 0x39, 0xd1, //0x0000597e cmpq %rdx, %rcx - 0x0f, 0x83, 0x26, 0x00, 0x00, 0x00, //0x00005981 jae LBB31_5 - 0x41, 0x8a, 0x04, 0x0e, //0x00005987 movb (%r14,%rcx), %al - 0x3c, 0x0d, //0x0000598b cmpb $13, %al - 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x0000598d je LBB31_5 - 0x3c, 0x20, //0x00005993 cmpb $32, %al - 0x0f, 0x84, 0x12, 0x00, 0x00, 0x00, //0x00005995 je LBB31_5 - 0x04, 0xf7, //0x0000599b addb $-9, %al - 0x3c, 0x01, //0x0000599d cmpb $1, %al - 0x0f, 0x86, 0x08, 0x00, 0x00, 0x00, //0x0000599f jbe LBB31_5 - 0x49, 0x89, 0xcb, //0x000059a5 movq %rcx, %r11 - 0xe9, 0x0b, 0x01, 0x00, 0x00, //0x000059a8 jmp LBB31_27 - //0x000059ad LBB31_5 - 0x4c, 0x8d, 0x59, 0x01, //0x000059ad leaq $1(%rcx), %r11 - 0x49, 0x39, 0xd3, //0x000059b1 cmpq %rdx, %r11 - 0x0f, 0x83, 0x1e, 0x00, 0x00, 0x00, //0x000059b4 jae LBB31_9 - 0x43, 0x8a, 0x04, 0x1e, //0x000059ba movb (%r14,%r11), %al - 0x3c, 0x0d, //0x000059be cmpb $13, %al - 0x0f, 0x84, 0x12, 0x00, 0x00, 0x00, //0x000059c0 je LBB31_9 - 0x3c, 0x20, //0x000059c6 cmpb $32, %al - 0x0f, 0x84, 0x0a, 0x00, 0x00, 0x00, //0x000059c8 je LBB31_9 - 0x04, 0xf7, //0x000059ce addb $-9, %al - 0x3c, 0x01, //0x000059d0 cmpb $1, %al - 0x0f, 0x87, 0xe0, 0x00, 0x00, 0x00, //0x000059d2 ja LBB31_27 - //0x000059d8 LBB31_9 - 0x4c, 0x8d, 0x59, 0x02, //0x000059d8 leaq $2(%rcx), %r11 - 0x49, 0x39, 0xd3, //0x000059dc cmpq %rdx, %r11 - 0x0f, 0x83, 0x1e, 0x00, 0x00, 0x00, //0x000059df jae LBB31_13 - 0x43, 0x8a, 0x04, 0x1e, //0x000059e5 movb (%r14,%r11), %al - 0x3c, 0x0d, //0x000059e9 cmpb $13, %al - 0x0f, 0x84, 0x12, 0x00, 0x00, 0x00, //0x000059eb je LBB31_13 - 0x3c, 0x20, //0x000059f1 cmpb $32, %al - 0x0f, 0x84, 0x0a, 0x00, 0x00, 0x00, //0x000059f3 je LBB31_13 - 0x04, 0xf7, //0x000059f9 addb $-9, %al - 0x3c, 0x01, //0x000059fb cmpb $1, %al - 0x0f, 0x87, 0xb5, 0x00, 0x00, 0x00, //0x000059fd ja LBB31_27 - //0x00005a03 LBB31_13 - 0x4c, 0x8d, 0x59, 0x03, //0x00005a03 leaq $3(%rcx), %r11 - 0x49, 0x39, 0xd3, //0x00005a07 cmpq %rdx, %r11 - 0x0f, 0x83, 0x1e, 0x00, 0x00, 0x00, //0x00005a0a jae LBB31_17 - 0x43, 0x8a, 0x04, 0x1e, //0x00005a10 movb (%r14,%r11), %al - 0x3c, 0x0d, //0x00005a14 cmpb $13, %al - 0x0f, 0x84, 0x12, 0x00, 0x00, 0x00, //0x00005a16 je LBB31_17 - 0x3c, 0x20, //0x00005a1c cmpb $32, %al - 0x0f, 0x84, 0x0a, 0x00, 0x00, 0x00, //0x00005a1e je LBB31_17 - 0x04, 0xf7, //0x00005a24 addb $-9, %al - 0x3c, 0x01, //0x00005a26 cmpb $1, %al - 0x0f, 0x87, 0x8a, 0x00, 0x00, 0x00, //0x00005a28 ja LBB31_27 - //0x00005a2e LBB31_17 - 0x48, 0x83, 0xc1, 0x04, //0x00005a2e addq $4, %rcx - 0x48, 0x39, 0xca, //0x00005a32 cmpq %rcx, %rdx - 0x0f, 0x86, 0x4f, 0x00, 0x00, 0x00, //0x00005a35 jbe LBB31_23 - 0x48, 0x39, 0xca, //0x00005a3b cmpq %rcx, %rdx - 0x0f, 0x84, 0x55, 0x00, 0x00, 0x00, //0x00005a3e je LBB31_24 - 0x4d, 0x8d, 0x04, 0x16, //0x00005a44 leaq (%r14,%rdx), %r8 - 0x48, 0xbb, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00005a48 movabsq $4294977024, %rbx - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00005a52 .p2align 4, 0x90 - //0x00005a60 LBB31_20 - 0x41, 0x0f, 0xbe, 0x04, 0x0e, //0x00005a60 movsbl (%r14,%rcx), %eax - 0x83, 0xf8, 0x20, //0x00005a65 cmpl $32, %eax - 0x0f, 0x87, 0x37, 0x00, 0x00, 0x00, //0x00005a68 ja LBB31_26 - 0x48, 0x0f, 0xa3, 0xc3, //0x00005a6e btq %rax, %rbx - 0x0f, 0x83, 0x2d, 0x00, 0x00, 0x00, //0x00005a72 jae LBB31_26 - 0x48, 0x83, 0xc1, 0x01, //0x00005a78 addq $1, %rcx - 0x48, 0x39, 0xca, //0x00005a7c cmpq %rcx, %rdx - 0x0f, 0x85, 0xdb, 0xff, 0xff, 0xff, //0x00005a7f jne LBB31_20 - 0xe9, 0x15, 0x00, 0x00, 0x00, //0x00005a85 jmp LBB31_25 - //0x00005a8a LBB31_23 - 0x48, 0x89, 0x0e, //0x00005a8a movq %rcx, (%rsi) - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00005a8d movq $-1, %rax - 0xe9, 0x28, 0x01, 0x00, 0x00, //0x00005a94 jmp LBB31_44 - //0x00005a99 LBB31_24 - 0x4c, 0x01, 0xf1, //0x00005a99 addq %r14, %rcx - 0x49, 0x89, 0xc8, //0x00005a9c movq %rcx, %r8 - //0x00005a9f LBB31_25 - 0x4d, 0x29, 0xf0, //0x00005a9f subq %r14, %r8 - 0x4c, 0x89, 0xc1, //0x00005aa2 movq %r8, %rcx - //0x00005aa5 LBB31_26 - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00005aa5 movq $-1, %rax - 0x49, 0x89, 0xcb, //0x00005aac movq %rcx, %r11 - 0x48, 0x39, 0xd1, //0x00005aaf cmpq %rdx, %rcx - 0x0f, 0x83, 0x09, 0x01, 0x00, 0x00, //0x00005ab2 jae LBB31_44 - //0x00005ab8 LBB31_27 - 0x49, 0x8d, 0x53, 0x01, //0x00005ab8 leaq $1(%r11), %rdx - 0x48, 0x89, 0x16, //0x00005abc movq %rdx, (%rsi) - 0x43, 0x0f, 0xbe, 0x1c, 0x1e, //0x00005abf movsbl (%r14,%r11), %ebx - 0x83, 0xfb, 0x7b, //0x00005ac4 cmpl $123, %ebx - 0x0f, 0x87, 0x19, 0x01, 0x00, 0x00, //0x00005ac7 ja LBB31_46 - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00005acd movq $-1, %rax - 0x48, 0x8d, 0x0d, 0x4d, 0x0a, 0x00, 0x00, //0x00005ad4 leaq $2637(%rip), %rcx /* LJTI31_0+0(%rip) */ - 0x48, 0x63, 0x1c, 0x99, //0x00005adb movslq (%rcx,%rbx,4), %rbx - 0x48, 0x01, 0xcb, //0x00005adf addq %rcx, %rbx - 0xff, 0xe3, //0x00005ae2 jmpq *%rbx - //0x00005ae4 LBB31_29 - 0x48, 0x8b, 0x4f, 0x08, //0x00005ae4 movq $8(%rdi), %rcx - 0x48, 0x89, 0xc8, //0x00005ae8 movq %rcx, %rax - 0x48, 0x29, 0xd0, //0x00005aeb subq %rdx, %rax - 0x48, 0x83, 0xf8, 0x10, //0x00005aee cmpq $16, %rax - 0x0f, 0x82, 0xb2, 0x09, 0x00, 0x00, //0x00005af2 jb LBB31_119 - 0x4c, 0x89, 0xd8, //0x00005af8 movq %r11, %rax - 0x48, 0xf7, 0xd0, //0x00005afb notq %rax - 0xc5, 0xf9, 0x6f, 0x05, 0xda, 0xfd, 0xff, 0xff, //0x00005afe vmovdqa $-550(%rip), %xmm0 /* LCPI31_0+0(%rip) */ - 0xc5, 0xf9, 0x6f, 0x0d, 0xe2, 0xfd, 0xff, 0xff, //0x00005b06 vmovdqa $-542(%rip), %xmm1 /* LCPI31_1+0(%rip) */ - 0xc5, 0xf9, 0x6f, 0x15, 0xea, 0xfd, 0xff, 0xff, //0x00005b0e vmovdqa $-534(%rip), %xmm2 /* LCPI31_2+0(%rip) */ - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00005b16 .p2align 4, 0x90 - //0x00005b20 LBB31_31 - 0xc4, 0xc1, 0x7a, 0x6f, 0x1c, 0x16, //0x00005b20 vmovdqu (%r14,%rdx), %xmm3 - 0xc5, 0xe1, 0x74, 0xe0, //0x00005b26 vpcmpeqb %xmm0, %xmm3, %xmm4 - 0xc5, 0xe1, 0xdb, 0xd9, //0x00005b2a vpand %xmm1, %xmm3, %xmm3 - 0xc5, 0xe1, 0x74, 0xda, //0x00005b2e vpcmpeqb %xmm2, %xmm3, %xmm3 - 0xc5, 0xe1, 0xeb, 0xdc, //0x00005b32 vpor %xmm4, %xmm3, %xmm3 - 0xc5, 0xf9, 0xd7, 0xfb, //0x00005b36 vpmovmskb %xmm3, %edi - 0x85, 0xff, //0x00005b3a testl %edi, %edi - 0x0f, 0x85, 0x6f, 0x00, 0x00, 0x00, //0x00005b3c jne LBB31_41 - 0x48, 0x83, 0xc2, 0x10, //0x00005b42 addq $16, %rdx - 0x48, 0x8d, 0x3c, 0x01, //0x00005b46 leaq (%rcx,%rax), %rdi - 0x48, 0x83, 0xc7, 0xf0, //0x00005b4a addq $-16, %rdi - 0x48, 0x83, 0xc0, 0xf0, //0x00005b4e addq $-16, %rax - 0x48, 0x83, 0xff, 0x0f, //0x00005b52 cmpq $15, %rdi - 0x0f, 0x87, 0xc4, 0xff, 0xff, 0xff, //0x00005b56 ja LBB31_31 - 0x4c, 0x89, 0xf2, //0x00005b5c movq %r14, %rdx - 0x48, 0x29, 0xc2, //0x00005b5f subq %rax, %rdx - 0x48, 0x01, 0xc1, //0x00005b62 addq %rax, %rcx - 0x48, 0x89, 0xc8, //0x00005b65 movq %rcx, %rax - 0x48, 0x85, 0xc0, //0x00005b68 testq %rax, %rax - 0x0f, 0x84, 0x35, 0x00, 0x00, 0x00, //0x00005b6b je LBB31_40 - //0x00005b71 LBB31_34 - 0x48, 0x8d, 0x3c, 0x02, //0x00005b71 leaq (%rdx,%rax), %rdi - 0x31, 0xc9, //0x00005b75 xorl %ecx, %ecx - //0x00005b77 LBB31_35 - 0x0f, 0xb6, 0x1c, 0x0a, //0x00005b77 movzbl (%rdx,%rcx), %ebx - 0x80, 0xfb, 0x2c, //0x00005b7b cmpb $44, %bl - 0x0f, 0x84, 0x09, 0x09, 0x00, 0x00, //0x00005b7e je LBB31_117 - 0x80, 0xfb, 0x7d, //0x00005b84 cmpb $125, %bl - 0x0f, 0x84, 0x00, 0x09, 0x00, 0x00, //0x00005b87 je LBB31_117 - 0x80, 0xfb, 0x5d, //0x00005b8d cmpb $93, %bl - 0x0f, 0x84, 0xf7, 0x08, 0x00, 0x00, //0x00005b90 je LBB31_117 - 0x48, 0x83, 0xc1, 0x01, //0x00005b96 addq $1, %rcx - 0x48, 0x39, 0xc8, //0x00005b9a cmpq %rcx, %rax - 0x0f, 0x85, 0xd4, 0xff, 0xff, 0xff, //0x00005b9d jne LBB31_35 - 0x48, 0x89, 0xfa, //0x00005ba3 movq %rdi, %rdx - //0x00005ba6 LBB31_40 - 0x4c, 0x29, 0xf2, //0x00005ba6 subq %r14, %rdx - 0x48, 0x89, 0x16, //0x00005ba9 movq %rdx, (%rsi) - 0xe9, 0x0d, 0x00, 0x00, 0x00, //0x00005bac jmp LBB31_43 - //0x00005bb1 LBB31_41 - 0x66, 0x0f, 0xbc, 0xcf, //0x00005bb1 bsfw %di, %cx - 0x0f, 0xb7, 0xc9, //0x00005bb5 movzwl %cx, %ecx - 0x48, 0x29, 0xc1, //0x00005bb8 subq %rax, %rcx - //0x00005bbb LBB31_42 - 0x48, 0x89, 0x0e, //0x00005bbb movq %rcx, (%rsi) - //0x00005bbe LBB31_43 - 0x4c, 0x89, 0xd8, //0x00005bbe movq %r11, %rax - //0x00005bc1 LBB31_44 - 0x48, 0x8d, 0x65, 0xd8, //0x00005bc1 leaq $-40(%rbp), %rsp - 0x5b, //0x00005bc5 popq %rbx - 0x41, 0x5c, //0x00005bc6 popq %r12 - 0x41, 0x5d, //0x00005bc8 popq %r13 - 0x41, 0x5e, //0x00005bca popq %r14 - 0x41, 0x5f, //0x00005bcc popq %r15 - 0x5d, //0x00005bce popq %rbp - 0xc5, 0xf8, 0x77, //0x00005bcf vzeroupper - 0xc3, //0x00005bd2 retq - //0x00005bd3 LBB31_45 - 0x49, 0x8d, 0x4b, 0x04, //0x00005bd3 leaq $4(%r11), %rcx - 0x48, 0x3b, 0x4f, 0x08, //0x00005bd7 cmpq $8(%rdi), %rcx - 0x0f, 0x86, 0xda, 0xff, 0xff, 0xff, //0x00005bdb jbe LBB31_42 - 0xe9, 0xdb, 0xff, 0xff, 0xff, //0x00005be1 jmp LBB31_44 - //0x00005be6 LBB31_46 - 0x4c, 0x89, 0x1e, //0x00005be6 movq %r11, (%rsi) - 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00005be9 movq $-2, %rax - 0xe9, 0xcc, 0xff, 0xff, 0xff, //0x00005bf0 jmp LBB31_44 - //0x00005bf5 LBB31_47 - 0x4c, 0x8b, 0x47, 0x08, //0x00005bf5 movq $8(%rdi), %r8 - 0x4d, 0x89, 0xc4, //0x00005bf9 movq %r8, %r12 - 0x49, 0x29, 0xd4, //0x00005bfc subq %rdx, %r12 - 0x49, 0x83, 0xfc, 0x20, //0x00005bff cmpq $32, %r12 - 0x0f, 0x8c, 0xb2, 0x08, 0x00, 0x00, //0x00005c03 jl LBB31_120 - 0x4f, 0x8d, 0x14, 0x1e, //0x00005c09 leaq (%r14,%r11), %r10 - 0x4d, 0x29, 0xd8, //0x00005c0d subq %r11, %r8 - 0x41, 0xb9, 0x1f, 0x00, 0x00, 0x00, //0x00005c10 movl $31, %r9d - 0x45, 0x31, 0xe4, //0x00005c16 xorl %r12d, %r12d - 0xc5, 0xf9, 0x6f, 0x05, 0xef, 0xfc, 0xff, 0xff, //0x00005c19 vmovdqa $-785(%rip), %xmm0 /* LCPI31_3+0(%rip) */ - 0xc5, 0xf9, 0x6f, 0x0d, 0xf7, 0xfc, 0xff, 0xff, //0x00005c21 vmovdqa $-777(%rip), %xmm1 /* LCPI31_4+0(%rip) */ - 0x45, 0x31, 0xff, //0x00005c29 xorl %r15d, %r15d - 0x90, 0x90, 0x90, 0x90, //0x00005c2c .p2align 4, 0x90 - //0x00005c30 LBB31_49 - 0xc4, 0x81, 0x7a, 0x6f, 0x54, 0x22, 0x01, //0x00005c30 vmovdqu $1(%r10,%r12), %xmm2 - 0xc4, 0x81, 0x7a, 0x6f, 0x5c, 0x22, 0x11, //0x00005c37 vmovdqu $17(%r10,%r12), %xmm3 - 0xc5, 0xe9, 0x74, 0xe0, //0x00005c3e vpcmpeqb %xmm0, %xmm2, %xmm4 - 0xc5, 0xf9, 0xd7, 0xcc, //0x00005c42 vpmovmskb %xmm4, %ecx - 0xc5, 0xe1, 0x74, 0xe0, //0x00005c46 vpcmpeqb %xmm0, %xmm3, %xmm4 - 0xc5, 0xf9, 0xd7, 0xd4, //0x00005c4a vpmovmskb %xmm4, %edx - 0x48, 0xc1, 0xe2, 0x10, //0x00005c4e shlq $16, %rdx - 0x48, 0x09, 0xca, //0x00005c52 orq %rcx, %rdx - 0xc5, 0xe9, 0x74, 0xd1, //0x00005c55 vpcmpeqb %xmm1, %xmm2, %xmm2 - 0xc5, 0xf9, 0xd7, 0xda, //0x00005c59 vpmovmskb %xmm2, %ebx - 0xc5, 0xe1, 0x74, 0xd1, //0x00005c5d vpcmpeqb %xmm1, %xmm3, %xmm2 - 0xc5, 0xf9, 0xd7, 0xca, //0x00005c61 vpmovmskb %xmm2, %ecx - 0x48, 0xc1, 0xe1, 0x10, //0x00005c65 shlq $16, %rcx - 0x48, 0x09, 0xd9, //0x00005c69 orq %rbx, %rcx - 0x48, 0x89, 0xcb, //0x00005c6c movq %rcx, %rbx - 0x4c, 0x09, 0xfb, //0x00005c6f orq %r15, %rbx - 0x0f, 0x84, 0x38, 0x00, 0x00, 0x00, //0x00005c72 je LBB31_51 - 0x44, 0x89, 0xfb, //0x00005c78 movl %r15d, %ebx - 0xf7, 0xd3, //0x00005c7b notl %ebx - 0x21, 0xcb, //0x00005c7d andl %ecx, %ebx - 0x44, 0x8d, 0x2c, 0x1b, //0x00005c7f leal (%rbx,%rbx), %r13d - 0x45, 0x09, 0xfd, //0x00005c83 orl %r15d, %r13d - 0x44, 0x89, 0xef, //0x00005c86 movl %r13d, %edi - 0xf7, 0xd7, //0x00005c89 notl %edi - 0x21, 0xcf, //0x00005c8b andl %ecx, %edi - 0x81, 0xe7, 0xaa, 0xaa, 0xaa, 0xaa, //0x00005c8d andl $-1431655766, %edi - 0x45, 0x31, 0xff, //0x00005c93 xorl %r15d, %r15d - 0x01, 0xdf, //0x00005c96 addl %ebx, %edi - 0x41, 0x0f, 0x92, 0xc7, //0x00005c98 setb %r15b - 0x01, 0xff, //0x00005c9c addl %edi, %edi - 0x81, 0xf7, 0x55, 0x55, 0x55, 0x55, //0x00005c9e xorl $1431655765, %edi - 0x44, 0x21, 0xef, //0x00005ca4 andl %r13d, %edi - 0xf7, 0xd7, //0x00005ca7 notl %edi - 0x21, 0xfa, //0x00005ca9 andl %edi, %edx - 0xe9, 0x03, 0x00, 0x00, 0x00, //0x00005cab jmp LBB31_52 - //0x00005cb0 .p2align 4, 0x90 - //0x00005cb0 LBB31_51 - 0x45, 0x31, 0xff, //0x00005cb0 xorl %r15d, %r15d - //0x00005cb3 LBB31_52 - 0x48, 0x85, 0xd2, //0x00005cb3 testq %rdx, %rdx - 0x0f, 0x85, 0x66, 0x07, 0x00, 0x00, //0x00005cb6 jne LBB31_111 - 0x49, 0x83, 0xc4, 0x20, //0x00005cbc addq $32, %r12 - 0x4b, 0x8d, 0x0c, 0x08, //0x00005cc0 leaq (%r8,%r9), %rcx - 0x48, 0x83, 0xc1, 0xe0, //0x00005cc4 addq $-32, %rcx - 0x49, 0x83, 0xc1, 0xe0, //0x00005cc8 addq $-32, %r9 - 0x48, 0x83, 0xf9, 0x3f, //0x00005ccc cmpq $63, %rcx - 0x0f, 0x8f, 0x5a, 0xff, 0xff, 0xff, //0x00005cd0 jg LBB31_49 - 0x4d, 0x85, 0xff, //0x00005cd6 testq %r15, %r15 - 0x0f, 0x85, 0x0f, 0x08, 0x00, 0x00, //0x00005cd9 jne LBB31_123 - 0x4b, 0x8d, 0x14, 0x14, //0x00005cdf leaq (%r12,%r10), %rdx - 0x48, 0x83, 0xc2, 0x01, //0x00005ce3 addq $1, %rdx - 0x49, 0xf7, 0xd4, //0x00005ce7 notq %r12 - 0x4d, 0x01, 0xc4, //0x00005cea addq %r8, %r12 - //0x00005ced LBB31_56 - 0x4d, 0x85, 0xe4, //0x00005ced testq %r12, %r12 - 0x0f, 0x8f, 0x60, 0x07, 0x00, 0x00, //0x00005cf0 jg LBB31_114 - 0xe9, 0xc6, 0xfe, 0xff, 0xff, //0x00005cf6 jmp LBB31_44 - //0x00005cfb LBB31_57 - 0x48, 0x89, 0x74, 0x24, 0x18, //0x00005cfb movq %rsi, $24(%rsp) - 0x48, 0x8b, 0x47, 0x08, //0x00005d00 movq $8(%rdi), %rax - 0x48, 0x29, 0xd0, //0x00005d04 subq %rdx, %rax - 0x49, 0x01, 0xd6, //0x00005d07 addq %rdx, %r14 - 0x45, 0x31, 0xd2, //0x00005d0a xorl %r10d, %r10d - 0xc5, 0x79, 0x6f, 0x15, 0x0b, 0xfc, 0xff, 0xff, //0x00005d0d vmovdqa $-1013(%rip), %xmm10 /* LCPI31_4+0(%rip) */ - 0xc5, 0xf9, 0x6f, 0x0d, 0xf3, 0xfb, 0xff, 0xff, //0x00005d15 vmovdqa $-1037(%rip), %xmm1 /* LCPI31_3+0(%rip) */ - 0xc4, 0x41, 0x31, 0x76, 0xc9, //0x00005d1d vpcmpeqd %xmm9, %xmm9, %xmm9 - 0xc5, 0xf9, 0x6f, 0x1d, 0x26, 0xfc, 0xff, 0xff, //0x00005d22 vmovdqa $-986(%rip), %xmm3 /* LCPI31_7+0(%rip) */ - 0xc5, 0xf9, 0x6f, 0x25, 0xce, 0xfb, 0xff, 0xff, //0x00005d2a vmovdqa $-1074(%rip), %xmm4 /* LCPI31_2+0(%rip) */ - 0xc4, 0x41, 0x38, 0x57, 0xc0, //0x00005d32 vxorps %xmm8, %xmm8, %xmm8 - 0x31, 0xf6, //0x00005d37 xorl %esi, %esi - 0x31, 0xc9, //0x00005d39 xorl %ecx, %ecx - 0x48, 0x89, 0x4c, 0x24, 0x10, //0x00005d3b movq %rcx, $16(%rsp) - 0x45, 0x31, 0xc9, //0x00005d40 xorl %r9d, %r9d - 0x48, 0x83, 0xf8, 0x40, //0x00005d43 cmpq $64, %rax - 0x48, 0x89, 0x44, 0x24, 0x08, //0x00005d47 movq %rax, $8(%rsp) - 0x0f, 0x8d, 0x2a, 0x01, 0x00, 0x00, //0x00005d4c jge LBB31_58 - //0x00005d52 LBB31_67 - 0x48, 0x85, 0xc0, //0x00005d52 testq %rax, %rax - 0x0f, 0x8e, 0x68, 0x07, 0x00, 0x00, //0x00005d55 jle LBB31_121 - 0x48, 0x89, 0xf1, //0x00005d5b movq %rsi, %rcx - 0xc5, 0x7c, 0x11, 0x44, 0x24, 0x40, //0x00005d5e vmovups %ymm8, $64(%rsp) - 0xc5, 0x7c, 0x11, 0x44, 0x24, 0x20, //0x00005d64 vmovups %ymm8, $32(%rsp) - 0x44, 0x89, 0xf0, //0x00005d6a movl %r14d, %eax - 0x25, 0xff, 0x0f, 0x00, 0x00, //0x00005d6d andl $4095, %eax - 0x3d, 0xc1, 0x0f, 0x00, 0x00, //0x00005d72 cmpl $4033, %eax - 0x0f, 0x82, 0x3a, 0x00, 0x00, 0x00, //0x00005d77 jb LBB31_71 - 0x48, 0x83, 0x7c, 0x24, 0x08, 0x20, //0x00005d7d cmpq $32, $8(%rsp) - 0x0f, 0x82, 0x36, 0x00, 0x00, 0x00, //0x00005d83 jb LBB31_72 - 0xc4, 0xc1, 0x78, 0x10, 0x06, //0x00005d89 vmovups (%r14), %xmm0 - 0xc5, 0xf8, 0x11, 0x44, 0x24, 0x20, //0x00005d8e vmovups %xmm0, $32(%rsp) - 0xc4, 0xc1, 0x7a, 0x6f, 0x46, 0x10, //0x00005d94 vmovdqu $16(%r14), %xmm0 - 0xc5, 0xfa, 0x7f, 0x44, 0x24, 0x30, //0x00005d9a vmovdqu %xmm0, $48(%rsp) - 0x49, 0x83, 0xc6, 0x20, //0x00005da0 addq $32, %r14 - 0x48, 0x8b, 0x44, 0x24, 0x08, //0x00005da4 movq $8(%rsp), %rax - 0x48, 0x8d, 0x70, 0xe0, //0x00005da9 leaq $-32(%rax), %rsi - 0x48, 0x8d, 0x5c, 0x24, 0x40, //0x00005dad leaq $64(%rsp), %rbx - 0xe9, 0x12, 0x00, 0x00, 0x00, //0x00005db2 jmp LBB31_73 - //0x00005db7 LBB31_71 - 0x48, 0x89, 0xce, //0x00005db7 movq %rcx, %rsi - 0xe9, 0xbd, 0x00, 0x00, 0x00, //0x00005dba jmp LBB31_58 - //0x00005dbf LBB31_72 - 0x48, 0x8d, 0x5c, 0x24, 0x20, //0x00005dbf leaq $32(%rsp), %rbx - 0x48, 0x8b, 0x74, 0x24, 0x08, //0x00005dc4 movq $8(%rsp), %rsi - //0x00005dc9 LBB31_73 - 0x48, 0x83, 0xfe, 0x10, //0x00005dc9 cmpq $16, %rsi - 0x0f, 0x82, 0x49, 0x00, 0x00, 0x00, //0x00005dcd jb LBB31_74 - 0xc4, 0xc1, 0x7a, 0x6f, 0x06, //0x00005dd3 vmovdqu (%r14), %xmm0 - 0xc5, 0xfa, 0x7f, 0x03, //0x00005dd8 vmovdqu %xmm0, (%rbx) - 0x49, 0x83, 0xc6, 0x10, //0x00005ddc addq $16, %r14 - 0x48, 0x83, 0xc3, 0x10, //0x00005de0 addq $16, %rbx - 0x48, 0x83, 0xc6, 0xf0, //0x00005de4 addq $-16, %rsi - 0x48, 0x83, 0xfe, 0x08, //0x00005de8 cmpq $8, %rsi - 0x0f, 0x83, 0x34, 0x00, 0x00, 0x00, //0x00005dec jae LBB31_81 - //0x00005df2 LBB31_75 - 0x48, 0x83, 0xfe, 0x04, //0x00005df2 cmpq $4, %rsi - 0x0f, 0x8c, 0x46, 0x00, 0x00, 0x00, //0x00005df6 jl LBB31_76 - //0x00005dfc LBB31_82 - 0x41, 0x8b, 0x06, //0x00005dfc movl (%r14), %eax - 0x89, 0x03, //0x00005dff movl %eax, (%rbx) - 0x49, 0x83, 0xc6, 0x04, //0x00005e01 addq $4, %r14 - 0x48, 0x83, 0xc3, 0x04, //0x00005e05 addq $4, %rbx - 0x48, 0x83, 0xc6, 0xfc, //0x00005e09 addq $-4, %rsi - 0x48, 0x83, 0xfe, 0x02, //0x00005e0d cmpq $2, %rsi - 0x0f, 0x83, 0x35, 0x00, 0x00, 0x00, //0x00005e11 jae LBB31_77 - 0xe9, 0x43, 0x00, 0x00, 0x00, //0x00005e17 jmp LBB31_78 - //0x00005e1c LBB31_74 - 0x48, 0x83, 0xfe, 0x08, //0x00005e1c cmpq $8, %rsi - 0x0f, 0x82, 0xcc, 0xff, 0xff, 0xff, //0x00005e20 jb LBB31_75 - //0x00005e26 LBB31_81 - 0x49, 0x8b, 0x06, //0x00005e26 movq (%r14), %rax - 0x48, 0x89, 0x03, //0x00005e29 movq %rax, (%rbx) - 0x49, 0x83, 0xc6, 0x08, //0x00005e2c addq $8, %r14 - 0x48, 0x83, 0xc3, 0x08, //0x00005e30 addq $8, %rbx - 0x48, 0x83, 0xc6, 0xf8, //0x00005e34 addq $-8, %rsi - 0x48, 0x83, 0xfe, 0x04, //0x00005e38 cmpq $4, %rsi - 0x0f, 0x8d, 0xba, 0xff, 0xff, 0xff, //0x00005e3c jge LBB31_82 - //0x00005e42 LBB31_76 - 0x48, 0x83, 0xfe, 0x02, //0x00005e42 cmpq $2, %rsi - 0x0f, 0x82, 0x13, 0x00, 0x00, 0x00, //0x00005e46 jb LBB31_78 - //0x00005e4c LBB31_77 - 0x41, 0x0f, 0xb7, 0x06, //0x00005e4c movzwl (%r14), %eax - 0x66, 0x89, 0x03, //0x00005e50 movw %ax, (%rbx) - 0x49, 0x83, 0xc6, 0x02, //0x00005e53 addq $2, %r14 - 0x48, 0x83, 0xc3, 0x02, //0x00005e57 addq $2, %rbx - 0x48, 0x83, 0xc6, 0xfe, //0x00005e5b addq $-2, %rsi - //0x00005e5f LBB31_78 - 0x4c, 0x89, 0xf2, //0x00005e5f movq %r14, %rdx - 0x4c, 0x8d, 0x74, 0x24, 0x20, //0x00005e62 leaq $32(%rsp), %r14 - 0x48, 0x85, 0xf6, //0x00005e67 testq %rsi, %rsi - 0x48, 0x89, 0xce, //0x00005e6a movq %rcx, %rsi - 0x0f, 0x84, 0x09, 0x00, 0x00, 0x00, //0x00005e6d je LBB31_58 - 0x8a, 0x02, //0x00005e73 movb (%rdx), %al - 0x88, 0x03, //0x00005e75 movb %al, (%rbx) - 0x4c, 0x8d, 0x74, 0x24, 0x20, //0x00005e77 leaq $32(%rsp), %r14 - //0x00005e7c LBB31_58 - 0xc4, 0xc1, 0x7a, 0x6f, 0x16, //0x00005e7c vmovdqu (%r14), %xmm2 - 0xc4, 0xc1, 0x7a, 0x6f, 0x6e, 0x10, //0x00005e81 vmovdqu $16(%r14), %xmm5 - 0xc4, 0xc1, 0x7a, 0x6f, 0x7e, 0x20, //0x00005e87 vmovdqu $32(%r14), %xmm7 - 0xc4, 0xc1, 0x7a, 0x6f, 0x76, 0x30, //0x00005e8d vmovdqu $48(%r14), %xmm6 - 0xc5, 0xa9, 0x74, 0xc2, //0x00005e93 vpcmpeqb %xmm2, %xmm10, %xmm0 - 0xc5, 0x79, 0xd7, 0xe8, //0x00005e97 vpmovmskb %xmm0, %r13d - 0xc5, 0xa9, 0x74, 0xc5, //0x00005e9b vpcmpeqb %xmm5, %xmm10, %xmm0 - 0xc5, 0xf9, 0xd7, 0xc0, //0x00005e9f vpmovmskb %xmm0, %eax - 0xc5, 0xa9, 0x74, 0xc7, //0x00005ea3 vpcmpeqb %xmm7, %xmm10, %xmm0 - 0xc5, 0xf9, 0xd7, 0xc8, //0x00005ea7 vpmovmskb %xmm0, %ecx - 0xc5, 0xa9, 0x74, 0xc6, //0x00005eab vpcmpeqb %xmm6, %xmm10, %xmm0 - 0xc5, 0xf9, 0xd7, 0xd0, //0x00005eaf vpmovmskb %xmm0, %edx - 0x48, 0xc1, 0xe2, 0x30, //0x00005eb3 shlq $48, %rdx - 0x48, 0xc1, 0xe1, 0x20, //0x00005eb7 shlq $32, %rcx - 0x48, 0x09, 0xd1, //0x00005ebb orq %rdx, %rcx - 0x48, 0xc1, 0xe0, 0x10, //0x00005ebe shlq $16, %rax - 0x48, 0x09, 0xc8, //0x00005ec2 orq %rcx, %rax - 0x49, 0x09, 0xc5, //0x00005ec5 orq %rax, %r13 - 0x4c, 0x89, 0xe8, //0x00005ec8 movq %r13, %rax - 0x48, 0x09, 0xf0, //0x00005ecb orq %rsi, %rax - 0x0f, 0x85, 0x0e, 0x00, 0x00, 0x00, //0x00005ece jne LBB31_60 - 0x49, 0xc7, 0xc5, 0xff, 0xff, 0xff, 0xff, //0x00005ed4 movq $-1, %r13 - 0x31, 0xf6, //0x00005edb xorl %esi, %esi - 0xe9, 0x45, 0x00, 0x00, 0x00, //0x00005edd jmp LBB31_61 - //0x00005ee2 LBB31_60 - 0x48, 0x89, 0xf0, //0x00005ee2 movq %rsi, %rax - 0x48, 0xf7, 0xd0, //0x00005ee5 notq %rax - 0x4c, 0x21, 0xe8, //0x00005ee8 andq %r13, %rax - 0x4c, 0x8d, 0x04, 0x00, //0x00005eeb leaq (%rax,%rax), %r8 - 0x49, 0x09, 0xf0, //0x00005eef orq %rsi, %r8 - 0x4c, 0x89, 0xc2, //0x00005ef2 movq %r8, %rdx - 0x48, 0xf7, 0xd2, //0x00005ef5 notq %rdx - 0x48, 0xb9, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x00005ef8 movabsq $-6148914691236517206, %rcx - 0x49, 0x21, 0xcd, //0x00005f02 andq %rcx, %r13 - 0x49, 0x21, 0xd5, //0x00005f05 andq %rdx, %r13 - 0x31, 0xf6, //0x00005f08 xorl %esi, %esi - 0x49, 0x01, 0xc5, //0x00005f0a addq %rax, %r13 - 0x40, 0x0f, 0x92, 0xc6, //0x00005f0d setb %sil - 0x4d, 0x01, 0xed, //0x00005f11 addq %r13, %r13 - 0x48, 0xb8, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00005f14 movabsq $6148914691236517205, %rax - 0x49, 0x31, 0xc5, //0x00005f1e xorq %rax, %r13 - 0x4d, 0x21, 0xc5, //0x00005f21 andq %r8, %r13 - 0x49, 0xf7, 0xd5, //0x00005f24 notq %r13 - //0x00005f27 LBB31_61 - 0xc5, 0xc9, 0x74, 0xc1, //0x00005f27 vpcmpeqb %xmm1, %xmm6, %xmm0 - 0xc5, 0xf9, 0xd7, 0xc0, //0x00005f2b vpmovmskb %xmm0, %eax - 0x48, 0xc1, 0xe0, 0x30, //0x00005f2f shlq $48, %rax - 0xc5, 0xc1, 0x74, 0xc1, //0x00005f33 vpcmpeqb %xmm1, %xmm7, %xmm0 - 0xc5, 0xf9, 0xd7, 0xc8, //0x00005f37 vpmovmskb %xmm0, %ecx - 0x48, 0xc1, 0xe1, 0x20, //0x00005f3b shlq $32, %rcx - 0x48, 0x09, 0xc1, //0x00005f3f orq %rax, %rcx - 0xc5, 0xd1, 0x74, 0xc1, //0x00005f42 vpcmpeqb %xmm1, %xmm5, %xmm0 - 0xc5, 0xf9, 0xd7, 0xc0, //0x00005f46 vpmovmskb %xmm0, %eax - 0x48, 0xc1, 0xe0, 0x10, //0x00005f4a shlq $16, %rax - 0x48, 0x09, 0xc8, //0x00005f4e orq %rcx, %rax - 0xc5, 0xe9, 0x74, 0xc1, //0x00005f51 vpcmpeqb %xmm1, %xmm2, %xmm0 - 0xc5, 0xf9, 0xd7, 0xc8, //0x00005f55 vpmovmskb %xmm0, %ecx - 0x48, 0x09, 0xc1, //0x00005f59 orq %rax, %rcx - 0x4c, 0x21, 0xe9, //0x00005f5c andq %r13, %rcx - 0xc4, 0xe1, 0xf9, 0x6e, 0xc1, //0x00005f5f vmovq %rcx, %xmm0 - 0xc4, 0xc3, 0x79, 0x44, 0xc1, 0x00, //0x00005f64 vpclmulqdq $0, %xmm9, %xmm0, %xmm0 - 0xc4, 0xc1, 0xf9, 0x7e, 0xc5, //0x00005f6a vmovq %xmm0, %r13 - 0x4d, 0x31, 0xd5, //0x00005f6f xorq %r10, %r13 - 0xc5, 0xe9, 0x74, 0xc3, //0x00005f72 vpcmpeqb %xmm3, %xmm2, %xmm0 - 0xc5, 0x79, 0xd7, 0xf8, //0x00005f76 vpmovmskb %xmm0, %r15d - 0xc5, 0xd1, 0x74, 0xc3, //0x00005f7a vpcmpeqb %xmm3, %xmm5, %xmm0 - 0xc5, 0xf9, 0xd7, 0xc0, //0x00005f7e vpmovmskb %xmm0, %eax - 0xc5, 0xc1, 0x74, 0xc3, //0x00005f82 vpcmpeqb %xmm3, %xmm7, %xmm0 - 0xc5, 0xf9, 0xd7, 0xd0, //0x00005f86 vpmovmskb %xmm0, %edx - 0xc5, 0xc9, 0x74, 0xc3, //0x00005f8a vpcmpeqb %xmm3, %xmm6, %xmm0 - 0xc5, 0x79, 0xd7, 0xd0, //0x00005f8e vpmovmskb %xmm0, %r10d - 0x49, 0xc1, 0xe2, 0x30, //0x00005f92 shlq $48, %r10 - 0x48, 0xc1, 0xe2, 0x20, //0x00005f96 shlq $32, %rdx - 0x4c, 0x09, 0xd2, //0x00005f9a orq %r10, %rdx - 0x48, 0xc1, 0xe0, 0x10, //0x00005f9d shlq $16, %rax - 0x48, 0x09, 0xd0, //0x00005fa1 orq %rdx, %rax - 0x49, 0x09, 0xc7, //0x00005fa4 orq %rax, %r15 - 0x4d, 0x89, 0xea, //0x00005fa7 movq %r13, %r10 - 0x49, 0xf7, 0xd2, //0x00005faa notq %r10 - 0x4d, 0x21, 0xd7, //0x00005fad andq %r10, %r15 - 0xc5, 0xe9, 0x74, 0xc4, //0x00005fb0 vpcmpeqb %xmm4, %xmm2, %xmm0 - 0xc5, 0xf9, 0xd7, 0xd0, //0x00005fb4 vpmovmskb %xmm0, %edx - 0xc5, 0xd1, 0x74, 0xc4, //0x00005fb8 vpcmpeqb %xmm4, %xmm5, %xmm0 - 0xc5, 0xf9, 0xd7, 0xc0, //0x00005fbc vpmovmskb %xmm0, %eax - 0xc5, 0xc1, 0x74, 0xc4, //0x00005fc0 vpcmpeqb %xmm4, %xmm7, %xmm0 - 0xc5, 0x79, 0xd7, 0xc0, //0x00005fc4 vpmovmskb %xmm0, %r8d - 0xc5, 0xc9, 0x74, 0xc4, //0x00005fc8 vpcmpeqb %xmm4, %xmm6, %xmm0 - 0xc5, 0x79, 0xd7, 0xe0, //0x00005fcc vpmovmskb %xmm0, %r12d - 0x49, 0xc1, 0xe4, 0x30, //0x00005fd0 shlq $48, %r12 - 0x49, 0xc1, 0xe0, 0x20, //0x00005fd4 shlq $32, %r8 - 0x4d, 0x09, 0xe0, //0x00005fd8 orq %r12, %r8 - 0x48, 0xc1, 0xe0, 0x10, //0x00005fdb shlq $16, %rax - 0x4c, 0x09, 0xc0, //0x00005fdf orq %r8, %rax - 0x48, 0x09, 0xc2, //0x00005fe2 orq %rax, %rdx - 0x4c, 0x21, 0xd2, //0x00005fe5 andq %r10, %rdx - 0x0f, 0x84, 0x3f, 0x00, 0x00, 0x00, //0x00005fe8 je LBB31_65 - 0x48, 0x8b, 0x5c, 0x24, 0x10, //0x00005fee movq $16(%rsp), %rbx - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00005ff3 .p2align 4, 0x90 - //0x00006000 LBB31_63 - 0x48, 0x8d, 0x4a, 0xff, //0x00006000 leaq $-1(%rdx), %rcx - 0x48, 0x89, 0xc8, //0x00006004 movq %rcx, %rax - 0x4c, 0x21, 0xf8, //0x00006007 andq %r15, %rax - 0xf3, 0x48, 0x0f, 0xb8, 0xc0, //0x0000600a popcntq %rax, %rax - 0x48, 0x01, 0xd8, //0x0000600f addq %rbx, %rax - 0x4c, 0x39, 0xc8, //0x00006012 cmpq %r9, %rax - 0x0f, 0x86, 0xb4, 0x03, 0x00, 0x00, //0x00006015 jbe LBB31_108 - 0x49, 0x83, 0xc1, 0x01, //0x0000601b addq $1, %r9 - 0x48, 0x21, 0xca, //0x0000601f andq %rcx, %rdx - 0x0f, 0x85, 0xd8, 0xff, 0xff, 0xff, //0x00006022 jne LBB31_63 - 0xe9, 0x05, 0x00, 0x00, 0x00, //0x00006028 jmp LBB31_66 - //0x0000602d LBB31_65 - 0x48, 0x8b, 0x5c, 0x24, 0x10, //0x0000602d movq $16(%rsp), %rbx - //0x00006032 LBB31_66 - 0x49, 0xc1, 0xfd, 0x3f, //0x00006032 sarq $63, %r13 - 0xf3, 0x49, 0x0f, 0xb8, 0xc7, //0x00006036 popcntq %r15, %rax - 0x48, 0x01, 0xc3, //0x0000603b addq %rax, %rbx - 0x48, 0x89, 0x5c, 0x24, 0x10, //0x0000603e movq %rbx, $16(%rsp) - 0x49, 0x83, 0xc6, 0x40, //0x00006043 addq $64, %r14 - 0x48, 0x8b, 0x44, 0x24, 0x08, //0x00006047 movq $8(%rsp), %rax - 0x48, 0x83, 0xc0, 0xc0, //0x0000604c addq $-64, %rax - 0x4d, 0x89, 0xea, //0x00006050 movq %r13, %r10 - 0x48, 0x83, 0xf8, 0x40, //0x00006053 cmpq $64, %rax - 0x48, 0x89, 0x44, 0x24, 0x08, //0x00006057 movq %rax, $8(%rsp) - 0x0f, 0x8d, 0x1a, 0xfe, 0xff, 0xff, //0x0000605c jge LBB31_58 - 0xe9, 0xeb, 0xfc, 0xff, 0xff, //0x00006062 jmp LBB31_67 - //0x00006067 LBB31_83 - 0x49, 0x8d, 0x4b, 0x05, //0x00006067 leaq $5(%r11), %rcx - 0x48, 0x3b, 0x4f, 0x08, //0x0000606b cmpq $8(%rdi), %rcx - 0x0f, 0x86, 0x46, 0xfb, 0xff, 0xff, //0x0000606f jbe LBB31_42 - 0xe9, 0x47, 0xfb, 0xff, 0xff, //0x00006075 jmp LBB31_44 - //0x0000607a LBB31_84 - 0x48, 0x8b, 0x47, 0x08, //0x0000607a movq $8(%rdi), %rax - 0x48, 0x29, 0xd0, //0x0000607e subq %rdx, %rax - 0x49, 0x01, 0xd6, //0x00006081 addq %rdx, %r14 - 0x45, 0x31, 0xd2, //0x00006084 xorl %r10d, %r10d - 0xc5, 0x79, 0x6f, 0x15, 0x91, 0xf8, 0xff, 0xff, //0x00006087 vmovdqa $-1903(%rip), %xmm10 /* LCPI31_4+0(%rip) */ - 0xc5, 0xf9, 0x6f, 0x0d, 0x79, 0xf8, 0xff, 0xff, //0x0000608f vmovdqa $-1927(%rip), %xmm1 /* LCPI31_3+0(%rip) */ - 0xc4, 0x41, 0x31, 0x76, 0xc9, //0x00006097 vpcmpeqd %xmm9, %xmm9, %xmm9 - 0xc5, 0xf9, 0x6f, 0x1d, 0x8c, 0xf8, 0xff, 0xff, //0x0000609c vmovdqa $-1908(%rip), %xmm3 /* LCPI31_5+0(%rip) */ - 0xc5, 0xf9, 0x6f, 0x25, 0x94, 0xf8, 0xff, 0xff, //0x000060a4 vmovdqa $-1900(%rip), %xmm4 /* LCPI31_6+0(%rip) */ - 0xc4, 0x41, 0x38, 0x57, 0xc0, //0x000060ac vxorps %xmm8, %xmm8, %xmm8 - 0x45, 0x31, 0xff, //0x000060b1 xorl %r15d, %r15d - 0x45, 0x31, 0xc9, //0x000060b4 xorl %r9d, %r9d - 0x31, 0xdb, //0x000060b7 xorl %ebx, %ebx - 0xe9, 0x21, 0x00, 0x00, 0x00, //0x000060b9 jmp LBB31_86 - //0x000060be LBB31_85 - 0x49, 0xc1, 0xfd, 0x3f, //0x000060be sarq $63, %r13 - 0xf3, 0x49, 0x0f, 0xb8, 0xc7, //0x000060c2 popcntq %r15, %rax - 0x49, 0x01, 0xc1, //0x000060c7 addq %rax, %r9 - 0x49, 0x83, 0xc6, 0x40, //0x000060ca addq $64, %r14 - 0x48, 0x8b, 0x44, 0x24, 0x08, //0x000060ce movq $8(%rsp), %rax - 0x48, 0x83, 0xc0, 0xc0, //0x000060d3 addq $-64, %rax - 0x4d, 0x89, 0xea, //0x000060d7 movq %r13, %r10 - 0x4c, 0x8b, 0x7c, 0x24, 0x10, //0x000060da movq $16(%rsp), %r15 - //0x000060df LBB31_86 - 0x48, 0x83, 0xf8, 0x40, //0x000060df cmpq $64, %rax - 0x48, 0x89, 0x44, 0x24, 0x08, //0x000060e3 movq %rax, $8(%rsp) - 0x0f, 0x8c, 0xaf, 0x01, 0x00, 0x00, //0x000060e8 jl LBB31_93 - //0x000060ee LBB31_87 - 0xc4, 0xc1, 0x7a, 0x6f, 0x16, //0x000060ee vmovdqu (%r14), %xmm2 - 0xc4, 0xc1, 0x7a, 0x6f, 0x6e, 0x10, //0x000060f3 vmovdqu $16(%r14), %xmm5 - 0xc4, 0xc1, 0x7a, 0x6f, 0x7e, 0x20, //0x000060f9 vmovdqu $32(%r14), %xmm7 - 0xc4, 0xc1, 0x7a, 0x6f, 0x76, 0x30, //0x000060ff vmovdqu $48(%r14), %xmm6 - 0xc5, 0xa9, 0x74, 0xc2, //0x00006105 vpcmpeqb %xmm2, %xmm10, %xmm0 - 0xc5, 0x79, 0xd7, 0xe8, //0x00006109 vpmovmskb %xmm0, %r13d - 0xc5, 0xa9, 0x74, 0xc5, //0x0000610d vpcmpeqb %xmm5, %xmm10, %xmm0 - 0xc5, 0xf9, 0xd7, 0xc0, //0x00006111 vpmovmskb %xmm0, %eax - 0xc5, 0xa9, 0x74, 0xc7, //0x00006115 vpcmpeqb %xmm7, %xmm10, %xmm0 - 0xc5, 0xf9, 0xd7, 0xc8, //0x00006119 vpmovmskb %xmm0, %ecx - 0xc5, 0xa9, 0x74, 0xc6, //0x0000611d vpcmpeqb %xmm6, %xmm10, %xmm0 - 0xc5, 0xf9, 0xd7, 0xd0, //0x00006121 vpmovmskb %xmm0, %edx - 0x48, 0xc1, 0xe2, 0x30, //0x00006125 shlq $48, %rdx - 0x48, 0xc1, 0xe1, 0x20, //0x00006129 shlq $32, %rcx - 0x48, 0x09, 0xd1, //0x0000612d orq %rdx, %rcx - 0x48, 0xc1, 0xe0, 0x10, //0x00006130 shlq $16, %rax - 0x48, 0x09, 0xc8, //0x00006134 orq %rcx, %rax - 0x49, 0x09, 0xc5, //0x00006137 orq %rax, %r13 - 0x4c, 0x89, 0xe8, //0x0000613a movq %r13, %rax - 0x4c, 0x09, 0xf8, //0x0000613d orq %r15, %rax - 0x0f, 0x85, 0x13, 0x00, 0x00, 0x00, //0x00006140 jne LBB31_89 - 0x49, 0xc7, 0xc5, 0xff, 0xff, 0xff, 0xff, //0x00006146 movq $-1, %r13 - 0x31, 0xc0, //0x0000614d xorl %eax, %eax - 0x48, 0x89, 0x44, 0x24, 0x10, //0x0000614f movq %rax, $16(%rsp) - 0xe9, 0x49, 0x00, 0x00, 0x00, //0x00006154 jmp LBB31_90 - //0x00006159 LBB31_89 - 0x4c, 0x89, 0xf8, //0x00006159 movq %r15, %rax - 0x48, 0xf7, 0xd0, //0x0000615c notq %rax - 0x4c, 0x21, 0xe8, //0x0000615f andq %r13, %rax - 0x4c, 0x8d, 0x04, 0x00, //0x00006162 leaq (%rax,%rax), %r8 - 0x4d, 0x09, 0xf8, //0x00006166 orq %r15, %r8 - 0x4c, 0x89, 0xc2, //0x00006169 movq %r8, %rdx - 0x48, 0xf7, 0xd2, //0x0000616c notq %rdx - 0x48, 0xb9, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x0000616f movabsq $-6148914691236517206, %rcx - 0x49, 0x21, 0xcd, //0x00006179 andq %rcx, %r13 - 0x49, 0x21, 0xd5, //0x0000617c andq %rdx, %r13 - 0x31, 0xc9, //0x0000617f xorl %ecx, %ecx - 0x49, 0x01, 0xc5, //0x00006181 addq %rax, %r13 - 0x0f, 0x92, 0xc1, //0x00006184 setb %cl - 0x48, 0x89, 0x4c, 0x24, 0x10, //0x00006187 movq %rcx, $16(%rsp) - 0x4d, 0x01, 0xed, //0x0000618c addq %r13, %r13 - 0x48, 0xb8, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x0000618f movabsq $6148914691236517205, %rax - 0x49, 0x31, 0xc5, //0x00006199 xorq %rax, %r13 - 0x4d, 0x21, 0xc5, //0x0000619c andq %r8, %r13 - 0x49, 0xf7, 0xd5, //0x0000619f notq %r13 - //0x000061a2 LBB31_90 - 0xc5, 0xc9, 0x74, 0xc1, //0x000061a2 vpcmpeqb %xmm1, %xmm6, %xmm0 - 0xc5, 0xf9, 0xd7, 0xc0, //0x000061a6 vpmovmskb %xmm0, %eax - 0x48, 0xc1, 0xe0, 0x30, //0x000061aa shlq $48, %rax - 0xc5, 0xc1, 0x74, 0xc1, //0x000061ae vpcmpeqb %xmm1, %xmm7, %xmm0 - 0xc5, 0xf9, 0xd7, 0xc8, //0x000061b2 vpmovmskb %xmm0, %ecx - 0x48, 0xc1, 0xe1, 0x20, //0x000061b6 shlq $32, %rcx - 0x48, 0x09, 0xc1, //0x000061ba orq %rax, %rcx - 0xc5, 0xd1, 0x74, 0xc1, //0x000061bd vpcmpeqb %xmm1, %xmm5, %xmm0 - 0xc5, 0xf9, 0xd7, 0xc0, //0x000061c1 vpmovmskb %xmm0, %eax - 0x48, 0xc1, 0xe0, 0x10, //0x000061c5 shlq $16, %rax - 0x48, 0x09, 0xc8, //0x000061c9 orq %rcx, %rax - 0xc5, 0xe9, 0x74, 0xc1, //0x000061cc vpcmpeqb %xmm1, %xmm2, %xmm0 - 0xc5, 0xf9, 0xd7, 0xc8, //0x000061d0 vpmovmskb %xmm0, %ecx - 0x48, 0x09, 0xc1, //0x000061d4 orq %rax, %rcx - 0x4c, 0x21, 0xe9, //0x000061d7 andq %r13, %rcx - 0xc4, 0xe1, 0xf9, 0x6e, 0xc1, //0x000061da vmovq %rcx, %xmm0 - 0xc4, 0xc3, 0x79, 0x44, 0xc1, 0x00, //0x000061df vpclmulqdq $0, %xmm9, %xmm0, %xmm0 - 0xc4, 0xc1, 0xf9, 0x7e, 0xc5, //0x000061e5 vmovq %xmm0, %r13 - 0x4d, 0x31, 0xd5, //0x000061ea xorq %r10, %r13 - 0xc5, 0xe9, 0x74, 0xc3, //0x000061ed vpcmpeqb %xmm3, %xmm2, %xmm0 - 0xc5, 0x79, 0xd7, 0xf8, //0x000061f1 vpmovmskb %xmm0, %r15d - 0xc5, 0xd1, 0x74, 0xc3, //0x000061f5 vpcmpeqb %xmm3, %xmm5, %xmm0 - 0xc5, 0xf9, 0xd7, 0xc0, //0x000061f9 vpmovmskb %xmm0, %eax - 0xc5, 0xc1, 0x74, 0xc3, //0x000061fd vpcmpeqb %xmm3, %xmm7, %xmm0 - 0xc5, 0xf9, 0xd7, 0xd0, //0x00006201 vpmovmskb %xmm0, %edx - 0xc5, 0xc9, 0x74, 0xc3, //0x00006205 vpcmpeqb %xmm3, %xmm6, %xmm0 - 0xc5, 0x79, 0xd7, 0xd0, //0x00006209 vpmovmskb %xmm0, %r10d - 0x49, 0xc1, 0xe2, 0x30, //0x0000620d shlq $48, %r10 - 0x48, 0xc1, 0xe2, 0x20, //0x00006211 shlq $32, %rdx - 0x4c, 0x09, 0xd2, //0x00006215 orq %r10, %rdx - 0x48, 0xc1, 0xe0, 0x10, //0x00006218 shlq $16, %rax - 0x48, 0x09, 0xd0, //0x0000621c orq %rdx, %rax - 0x49, 0x09, 0xc7, //0x0000621f orq %rax, %r15 - 0x4d, 0x89, 0xea, //0x00006222 movq %r13, %r10 - 0x49, 0xf7, 0xd2, //0x00006225 notq %r10 - 0x4d, 0x21, 0xd7, //0x00006228 andq %r10, %r15 - 0xc5, 0xe9, 0x74, 0xc4, //0x0000622b vpcmpeqb %xmm4, %xmm2, %xmm0 - 0xc5, 0xf9, 0xd7, 0xd0, //0x0000622f vpmovmskb %xmm0, %edx - 0xc5, 0xd1, 0x74, 0xc4, //0x00006233 vpcmpeqb %xmm4, %xmm5, %xmm0 - 0xc5, 0xf9, 0xd7, 0xc0, //0x00006237 vpmovmskb %xmm0, %eax - 0xc5, 0xc1, 0x74, 0xc4, //0x0000623b vpcmpeqb %xmm4, %xmm7, %xmm0 - 0xc5, 0x79, 0xd7, 0xc0, //0x0000623f vpmovmskb %xmm0, %r8d - 0xc5, 0xc9, 0x74, 0xc4, //0x00006243 vpcmpeqb %xmm4, %xmm6, %xmm0 - 0xc5, 0x79, 0xd7, 0xe0, //0x00006247 vpmovmskb %xmm0, %r12d - 0x49, 0xc1, 0xe4, 0x30, //0x0000624b shlq $48, %r12 - 0x49, 0xc1, 0xe0, 0x20, //0x0000624f shlq $32, %r8 - 0x4d, 0x09, 0xe0, //0x00006253 orq %r12, %r8 - 0x48, 0xc1, 0xe0, 0x10, //0x00006256 shlq $16, %rax - 0x4c, 0x09, 0xc0, //0x0000625a orq %r8, %rax - 0x48, 0x09, 0xc2, //0x0000625d orq %rax, %rdx - 0x4c, 0x21, 0xd2, //0x00006260 andq %r10, %rdx - 0x0f, 0x84, 0x55, 0xfe, 0xff, 0xff, //0x00006263 je LBB31_85 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00006269 .p2align 4, 0x90 - //0x00006270 LBB31_91 - 0x48, 0x8d, 0x4a, 0xff, //0x00006270 leaq $-1(%rdx), %rcx - 0x48, 0x89, 0xc8, //0x00006274 movq %rcx, %rax - 0x4c, 0x21, 0xf8, //0x00006277 andq %r15, %rax - 0xf3, 0x48, 0x0f, 0xb8, 0xc0, //0x0000627a popcntq %rax, %rax - 0x4c, 0x01, 0xc8, //0x0000627f addq %r9, %rax - 0x48, 0x39, 0xd8, //0x00006282 cmpq %rbx, %rax - 0x0f, 0x86, 0x62, 0x01, 0x00, 0x00, //0x00006285 jbe LBB31_109 - 0x48, 0x83, 0xc3, 0x01, //0x0000628b addq $1, %rbx - 0x48, 0x21, 0xca, //0x0000628f andq %rcx, %rdx - 0x0f, 0x85, 0xd8, 0xff, 0xff, 0xff, //0x00006292 jne LBB31_91 - 0xe9, 0x21, 0xfe, 0xff, 0xff, //0x00006298 jmp LBB31_85 - //0x0000629d LBB31_93 - 0x48, 0x85, 0xc0, //0x0000629d testq %rax, %rax - 0x0f, 0x8e, 0x35, 0x02, 0x00, 0x00, //0x000062a0 jle LBB31_122 - 0xc5, 0x7c, 0x11, 0x44, 0x24, 0x40, //0x000062a6 vmovups %ymm8, $64(%rsp) - 0xc5, 0x7c, 0x11, 0x44, 0x24, 0x20, //0x000062ac vmovups %ymm8, $32(%rsp) - 0x44, 0x89, 0xf0, //0x000062b2 movl %r14d, %eax - 0x25, 0xff, 0x0f, 0x00, 0x00, //0x000062b5 andl $4095, %eax - 0x3d, 0xc1, 0x0f, 0x00, 0x00, //0x000062ba cmpl $4033, %eax - 0x0f, 0x82, 0x29, 0xfe, 0xff, 0xff, //0x000062bf jb LBB31_87 - 0x48, 0x83, 0x7c, 0x24, 0x08, 0x20, //0x000062c5 cmpq $32, $8(%rsp) - 0x0f, 0x82, 0x2e, 0x00, 0x00, 0x00, //0x000062cb jb LBB31_97 - 0xc4, 0xc1, 0x78, 0x10, 0x06, //0x000062d1 vmovups (%r14), %xmm0 - 0xc5, 0xf8, 0x11, 0x44, 0x24, 0x20, //0x000062d6 vmovups %xmm0, $32(%rsp) - 0xc4, 0xc1, 0x78, 0x10, 0x46, 0x10, //0x000062dc vmovups $16(%r14), %xmm0 - 0xc5, 0xf8, 0x11, 0x44, 0x24, 0x30, //0x000062e2 vmovups %xmm0, $48(%rsp) - 0x49, 0x83, 0xc6, 0x20, //0x000062e8 addq $32, %r14 - 0x48, 0x8b, 0x44, 0x24, 0x08, //0x000062ec movq $8(%rsp), %rax - 0x48, 0x8d, 0x48, 0xe0, //0x000062f1 leaq $-32(%rax), %rcx - 0x48, 0x8d, 0x54, 0x24, 0x40, //0x000062f5 leaq $64(%rsp), %rdx - 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x000062fa jmp LBB31_98 - //0x000062ff LBB31_97 - 0x48, 0x8d, 0x54, 0x24, 0x20, //0x000062ff leaq $32(%rsp), %rdx - 0x48, 0x8b, 0x4c, 0x24, 0x08, //0x00006304 movq $8(%rsp), %rcx - //0x00006309 LBB31_98 - 0x48, 0x83, 0xf9, 0x10, //0x00006309 cmpq $16, %rcx - 0x0f, 0x82, 0x5a, 0x00, 0x00, 0x00, //0x0000630d jb LBB31_99 - 0xc4, 0xc1, 0x78, 0x10, 0x06, //0x00006313 vmovups (%r14), %xmm0 - 0xc5, 0xf8, 0x11, 0x02, //0x00006318 vmovups %xmm0, (%rdx) - 0x49, 0x83, 0xc6, 0x10, //0x0000631c addq $16, %r14 - 0x48, 0x83, 0xc2, 0x10, //0x00006320 addq $16, %rdx - 0x48, 0x83, 0xc1, 0xf0, //0x00006324 addq $-16, %rcx - 0x48, 0x83, 0xf9, 0x08, //0x00006328 cmpq $8, %rcx - 0x0f, 0x83, 0x45, 0x00, 0x00, 0x00, //0x0000632c jae LBB31_104 - //0x00006332 LBB31_100 - 0x48, 0x83, 0xf9, 0x04, //0x00006332 cmpq $4, %rcx - 0x0f, 0x8c, 0x57, 0x00, 0x00, 0x00, //0x00006336 jl LBB31_101 - //0x0000633c LBB31_105 - 0x41, 0x8b, 0x06, //0x0000633c movl (%r14), %eax - 0x89, 0x02, //0x0000633f movl %eax, (%rdx) - 0x49, 0x83, 0xc6, 0x04, //0x00006341 addq $4, %r14 - 0x48, 0x83, 0xc2, 0x04, //0x00006345 addq $4, %rdx - 0x48, 0x83, 0xc1, 0xfc, //0x00006349 addq $-4, %rcx - 0x48, 0x83, 0xf9, 0x02, //0x0000634d cmpq $2, %rcx - 0x0f, 0x83, 0x46, 0x00, 0x00, 0x00, //0x00006351 jae LBB31_106 - //0x00006357 LBB31_102 - 0x4c, 0x89, 0xf0, //0x00006357 movq %r14, %rax - 0x4c, 0x8d, 0x74, 0x24, 0x20, //0x0000635a leaq $32(%rsp), %r14 - 0x48, 0x85, 0xc9, //0x0000635f testq %rcx, %rcx - 0x0f, 0x85, 0x59, 0x00, 0x00, 0x00, //0x00006362 jne LBB31_107 - 0xe9, 0x81, 0xfd, 0xff, 0xff, //0x00006368 jmp LBB31_87 - //0x0000636d LBB31_99 - 0x48, 0x83, 0xf9, 0x08, //0x0000636d cmpq $8, %rcx - 0x0f, 0x82, 0xbb, 0xff, 0xff, 0xff, //0x00006371 jb LBB31_100 - //0x00006377 LBB31_104 - 0x49, 0x8b, 0x06, //0x00006377 movq (%r14), %rax - 0x48, 0x89, 0x02, //0x0000637a movq %rax, (%rdx) - 0x49, 0x83, 0xc6, 0x08, //0x0000637d addq $8, %r14 - 0x48, 0x83, 0xc2, 0x08, //0x00006381 addq $8, %rdx - 0x48, 0x83, 0xc1, 0xf8, //0x00006385 addq $-8, %rcx - 0x48, 0x83, 0xf9, 0x04, //0x00006389 cmpq $4, %rcx - 0x0f, 0x8d, 0xa9, 0xff, 0xff, 0xff, //0x0000638d jge LBB31_105 - //0x00006393 LBB31_101 - 0x48, 0x83, 0xf9, 0x02, //0x00006393 cmpq $2, %rcx - 0x0f, 0x82, 0xba, 0xff, 0xff, 0xff, //0x00006397 jb LBB31_102 - //0x0000639d LBB31_106 - 0x41, 0x0f, 0xb7, 0x06, //0x0000639d movzwl (%r14), %eax - 0x66, 0x89, 0x02, //0x000063a1 movw %ax, (%rdx) - 0x49, 0x83, 0xc6, 0x02, //0x000063a4 addq $2, %r14 - 0x48, 0x83, 0xc2, 0x02, //0x000063a8 addq $2, %rdx - 0x48, 0x83, 0xc1, 0xfe, //0x000063ac addq $-2, %rcx - 0x4c, 0x89, 0xf0, //0x000063b0 movq %r14, %rax - 0x4c, 0x8d, 0x74, 0x24, 0x20, //0x000063b3 leaq $32(%rsp), %r14 - 0x48, 0x85, 0xc9, //0x000063b8 testq %rcx, %rcx - 0x0f, 0x84, 0x2d, 0xfd, 0xff, 0xff, //0x000063bb je LBB31_87 - //0x000063c1 LBB31_107 - 0x8a, 0x00, //0x000063c1 movb (%rax), %al - 0x88, 0x02, //0x000063c3 movb %al, (%rdx) - 0x4c, 0x8d, 0x74, 0x24, 0x20, //0x000063c5 leaq $32(%rsp), %r14 - 0xe9, 0x1f, 0xfd, 0xff, 0xff, //0x000063ca jmp LBB31_87 - //0x000063cf LBB31_108 - 0x48, 0x8b, 0x47, 0x08, //0x000063cf movq $8(%rdi), %rax - 0x48, 0x0f, 0xbc, 0xca, //0x000063d3 bsfq %rdx, %rcx - 0x48, 0x2b, 0x4c, 0x24, 0x08, //0x000063d7 subq $8(%rsp), %rcx - 0x48, 0x01, 0xc8, //0x000063dc addq %rcx, %rax - 0x48, 0x83, 0xc0, 0x01, //0x000063df addq $1, %rax - 0x48, 0x8b, 0x74, 0x24, 0x18, //0x000063e3 movq $24(%rsp), %rsi - 0xe9, 0x14, 0x00, 0x00, 0x00, //0x000063e8 jmp LBB31_110 - //0x000063ed LBB31_109 - 0x48, 0x8b, 0x47, 0x08, //0x000063ed movq $8(%rdi), %rax - 0x48, 0x0f, 0xbc, 0xca, //0x000063f1 bsfq %rdx, %rcx - 0x48, 0x2b, 0x4c, 0x24, 0x08, //0x000063f5 subq $8(%rsp), %rcx - 0x48, 0x01, 0xc8, //0x000063fa addq %rcx, %rax - 0x48, 0x83, 0xc0, 0x01, //0x000063fd addq $1, %rax - //0x00006401 LBB31_110 - 0x48, 0x89, 0x06, //0x00006401 movq %rax, (%rsi) - 0x48, 0x8b, 0x4f, 0x08, //0x00006404 movq $8(%rdi), %rcx - 0x48, 0x39, 0xc8, //0x00006408 cmpq %rcx, %rax - 0x48, 0x0f, 0x47, 0xc1, //0x0000640b cmovaq %rcx, %rax - 0x48, 0x89, 0x06, //0x0000640f movq %rax, (%rsi) - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00006412 movq $-1, %rax - 0x4c, 0x0f, 0x47, 0xd8, //0x00006419 cmovaq %rax, %r11 - 0xe9, 0x9c, 0xf7, 0xff, 0xff, //0x0000641d jmp LBB31_43 - //0x00006422 LBB31_111 - 0x0f, 0xbc, 0xc2, //0x00006422 bsfl %edx, %eax - 0x4c, 0x01, 0xd8, //0x00006425 addq %r11, %rax - 0x4c, 0x01, 0xe0, //0x00006428 addq %r12, %rax - 0x48, 0x83, 0xc0, 0x02, //0x0000642b addq $2, %rax - 0x48, 0x89, 0x06, //0x0000642f movq %rax, (%rsi) - 0xe9, 0x87, 0xf7, 0xff, 0xff, //0x00006432 jmp LBB31_43 - //0x00006437 LBB31_112 - 0x48, 0xc7, 0xc7, 0xfe, 0xff, 0xff, 0xff, //0x00006437 movq $-2, %rdi - 0xb9, 0x02, 0x00, 0x00, 0x00, //0x0000643e movl $2, %ecx - 0x48, 0x01, 0xca, //0x00006443 addq %rcx, %rdx - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00006446 movq $-1, %rax - 0x49, 0x01, 0xfc, //0x0000644d addq %rdi, %r12 - 0x0f, 0x8e, 0x6b, 0xf7, 0xff, 0xff, //0x00006450 jle LBB31_44 - //0x00006456 LBB31_114 - 0x0f, 0xb6, 0x02, //0x00006456 movzbl (%rdx), %eax - 0x3c, 0x5c, //0x00006459 cmpb $92, %al - 0x0f, 0x84, 0xd6, 0xff, 0xff, 0xff, //0x0000645b je LBB31_112 - 0x3c, 0x22, //0x00006461 cmpb $34, %al - 0x0f, 0x84, 0x32, 0x00, 0x00, 0x00, //0x00006463 je LBB31_118 - 0x48, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, //0x00006469 movq $-1, %rdi - 0xb9, 0x01, 0x00, 0x00, 0x00, //0x00006470 movl $1, %ecx - 0x48, 0x01, 0xca, //0x00006475 addq %rcx, %rdx - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00006478 movq $-1, %rax - 0x49, 0x01, 0xfc, //0x0000647f addq %rdi, %r12 - 0x0f, 0x8f, 0xce, 0xff, 0xff, 0xff, //0x00006482 jg LBB31_114 - 0xe9, 0x34, 0xf7, 0xff, 0xff, //0x00006488 jmp LBB31_44 - //0x0000648d LBB31_117 - 0x4c, 0x29, 0xf2, //0x0000648d subq %r14, %rdx - 0x48, 0x01, 0xca, //0x00006490 addq %rcx, %rdx - 0x48, 0x89, 0x16, //0x00006493 movq %rdx, (%rsi) - 0xe9, 0x23, 0xf7, 0xff, 0xff, //0x00006496 jmp LBB31_43 - //0x0000649b LBB31_118 - 0x4c, 0x29, 0xf2, //0x0000649b subq %r14, %rdx - 0x48, 0x83, 0xc2, 0x01, //0x0000649e addq $1, %rdx - 0x48, 0x89, 0x16, //0x000064a2 movq %rdx, (%rsi) - 0xe9, 0x14, 0xf7, 0xff, 0xff, //0x000064a5 jmp LBB31_43 - //0x000064aa LBB31_119 - 0x4c, 0x01, 0xf2, //0x000064aa addq %r14, %rdx - 0x48, 0x85, 0xc0, //0x000064ad testq %rax, %rax - 0x0f, 0x85, 0xbb, 0xf6, 0xff, 0xff, //0x000064b0 jne LBB31_34 - 0xe9, 0xeb, 0xf6, 0xff, 0xff, //0x000064b6 jmp LBB31_40 - //0x000064bb LBB31_120 - 0x4c, 0x01, 0xf2, //0x000064bb addq %r14, %rdx - 0xe9, 0x2a, 0xf8, 0xff, 0xff, //0x000064be jmp LBB31_56 - //0x000064c3 LBB31_121 - 0x48, 0x8b, 0x47, 0x08, //0x000064c3 movq $8(%rdi), %rax - 0x48, 0x8b, 0x4c, 0x24, 0x18, //0x000064c7 movq $24(%rsp), %rcx - 0x48, 0x89, 0x01, //0x000064cc movq %rax, (%rcx) - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000064cf movq $-1, %rax - 0xe9, 0xe6, 0xf6, 0xff, 0xff, //0x000064d6 jmp LBB31_44 - //0x000064db LBB31_122 - 0x48, 0x8b, 0x47, 0x08, //0x000064db movq $8(%rdi), %rax - 0x48, 0x89, 0x06, //0x000064df movq %rax, (%rsi) - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000064e2 movq $-1, %rax - 0xe9, 0xd3, 0xf6, 0xff, 0xff, //0x000064e9 jmp LBB31_44 - //0x000064ee LBB31_123 - 0x49, 0x8d, 0x40, 0xff, //0x000064ee leaq $-1(%r8), %rax - 0x4c, 0x39, 0xe0, //0x000064f2 cmpq %r12, %rax - 0x0f, 0x85, 0x0c, 0x00, 0x00, 0x00, //0x000064f5 jne LBB31_125 - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000064fb movq $-1, %rax - 0xe9, 0xba, 0xf6, 0xff, 0xff, //0x00006502 jmp LBB31_44 - //0x00006507 LBB31_125 - 0x4b, 0x8d, 0x14, 0x14, //0x00006507 leaq (%r12,%r10), %rdx - 0x48, 0x83, 0xc2, 0x02, //0x0000650b addq $2, %rdx - 0x4d, 0x29, 0xe0, //0x0000650f subq %r12, %r8 - 0x49, 0x83, 0xc0, 0xfe, //0x00006512 addq $-2, %r8 - 0x4d, 0x89, 0xc4, //0x00006516 movq %r8, %r12 - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00006519 movq $-1, %rax - 0xe9, 0xc8, 0xf7, 0xff, 0xff, //0x00006520 jmp LBB31_56 - 0x90, 0x90, 0x90, //0x00006525 .p2align 2, 0x90 - // // .set L31_0_set_44, LBB31_44-LJTI31_0 - // // .set L31_0_set_46, LBB31_46-LJTI31_0 - // // .set L31_0_set_47, LBB31_47-LJTI31_0 - // // .set L31_0_set_29, LBB31_29-LJTI31_0 - // // .set L31_0_set_57, LBB31_57-LJTI31_0 - // // .set L31_0_set_83, LBB31_83-LJTI31_0 - // // .set L31_0_set_45, LBB31_45-LJTI31_0 - // // .set L31_0_set_84, LBB31_84-LJTI31_0 - //0x00006528 LJTI31_0 - 0x99, 0xf6, 0xff, 0xff, //0x00006528 .long L31_0_set_44 - 0xbe, 0xf6, 0xff, 0xff, //0x0000652c .long L31_0_set_46 - 0xbe, 0xf6, 0xff, 0xff, //0x00006530 .long L31_0_set_46 - 0xbe, 0xf6, 0xff, 0xff, //0x00006534 .long L31_0_set_46 - 0xbe, 0xf6, 0xff, 0xff, //0x00006538 .long L31_0_set_46 - 0xbe, 0xf6, 0xff, 0xff, //0x0000653c .long L31_0_set_46 - 0xbe, 0xf6, 0xff, 0xff, //0x00006540 .long L31_0_set_46 - 0xbe, 0xf6, 0xff, 0xff, //0x00006544 .long L31_0_set_46 - 0xbe, 0xf6, 0xff, 0xff, //0x00006548 .long L31_0_set_46 - 0xbe, 0xf6, 0xff, 0xff, //0x0000654c .long L31_0_set_46 - 0xbe, 0xf6, 0xff, 0xff, //0x00006550 .long L31_0_set_46 - 0xbe, 0xf6, 0xff, 0xff, //0x00006554 .long L31_0_set_46 - 0xbe, 0xf6, 0xff, 0xff, //0x00006558 .long L31_0_set_46 - 0xbe, 0xf6, 0xff, 0xff, //0x0000655c .long L31_0_set_46 - 0xbe, 0xf6, 0xff, 0xff, //0x00006560 .long L31_0_set_46 - 0xbe, 0xf6, 0xff, 0xff, //0x00006564 .long L31_0_set_46 - 0xbe, 0xf6, 0xff, 0xff, //0x00006568 .long L31_0_set_46 - 0xbe, 0xf6, 0xff, 0xff, //0x0000656c .long L31_0_set_46 - 0xbe, 0xf6, 0xff, 0xff, //0x00006570 .long L31_0_set_46 - 0xbe, 0xf6, 0xff, 0xff, //0x00006574 .long L31_0_set_46 - 0xbe, 0xf6, 0xff, 0xff, //0x00006578 .long L31_0_set_46 - 0xbe, 0xf6, 0xff, 0xff, //0x0000657c .long L31_0_set_46 - 0xbe, 0xf6, 0xff, 0xff, //0x00006580 .long L31_0_set_46 - 0xbe, 0xf6, 0xff, 0xff, //0x00006584 .long L31_0_set_46 - 0xbe, 0xf6, 0xff, 0xff, //0x00006588 .long L31_0_set_46 - 0xbe, 0xf6, 0xff, 0xff, //0x0000658c .long L31_0_set_46 - 0xbe, 0xf6, 0xff, 0xff, //0x00006590 .long L31_0_set_46 - 0xbe, 0xf6, 0xff, 0xff, //0x00006594 .long L31_0_set_46 - 0xbe, 0xf6, 0xff, 0xff, //0x00006598 .long L31_0_set_46 - 0xbe, 0xf6, 0xff, 0xff, //0x0000659c .long L31_0_set_46 - 0xbe, 0xf6, 0xff, 0xff, //0x000065a0 .long L31_0_set_46 - 0xbe, 0xf6, 0xff, 0xff, //0x000065a4 .long L31_0_set_46 - 0xbe, 0xf6, 0xff, 0xff, //0x000065a8 .long L31_0_set_46 - 0xbe, 0xf6, 0xff, 0xff, //0x000065ac .long L31_0_set_46 - 0xcd, 0xf6, 0xff, 0xff, //0x000065b0 .long L31_0_set_47 - 0xbe, 0xf6, 0xff, 0xff, //0x000065b4 .long L31_0_set_46 - 0xbe, 0xf6, 0xff, 0xff, //0x000065b8 .long L31_0_set_46 - 0xbe, 0xf6, 0xff, 0xff, //0x000065bc .long L31_0_set_46 - 0xbe, 0xf6, 0xff, 0xff, //0x000065c0 .long L31_0_set_46 - 0xbe, 0xf6, 0xff, 0xff, //0x000065c4 .long L31_0_set_46 - 0xbe, 0xf6, 0xff, 0xff, //0x000065c8 .long L31_0_set_46 - 0xbe, 0xf6, 0xff, 0xff, //0x000065cc .long L31_0_set_46 - 0xbe, 0xf6, 0xff, 0xff, //0x000065d0 .long L31_0_set_46 - 0xbe, 0xf6, 0xff, 0xff, //0x000065d4 .long L31_0_set_46 - 0xbe, 0xf6, 0xff, 0xff, //0x000065d8 .long L31_0_set_46 - 0xbc, 0xf5, 0xff, 0xff, //0x000065dc .long L31_0_set_29 - 0xbe, 0xf6, 0xff, 0xff, //0x000065e0 .long L31_0_set_46 - 0xbe, 0xf6, 0xff, 0xff, //0x000065e4 .long L31_0_set_46 - 0xbc, 0xf5, 0xff, 0xff, //0x000065e8 .long L31_0_set_29 - 0xbc, 0xf5, 0xff, 0xff, //0x000065ec .long L31_0_set_29 - 0xbc, 0xf5, 0xff, 0xff, //0x000065f0 .long L31_0_set_29 - 0xbc, 0xf5, 0xff, 0xff, //0x000065f4 .long L31_0_set_29 - 0xbc, 0xf5, 0xff, 0xff, //0x000065f8 .long L31_0_set_29 - 0xbc, 0xf5, 0xff, 0xff, //0x000065fc .long L31_0_set_29 - 0xbc, 0xf5, 0xff, 0xff, //0x00006600 .long L31_0_set_29 - 0xbc, 0xf5, 0xff, 0xff, //0x00006604 .long L31_0_set_29 - 0xbc, 0xf5, 0xff, 0xff, //0x00006608 .long L31_0_set_29 - 0xbc, 0xf5, 0xff, 0xff, //0x0000660c .long L31_0_set_29 - 0xbe, 0xf6, 0xff, 0xff, //0x00006610 .long L31_0_set_46 - 0xbe, 0xf6, 0xff, 0xff, //0x00006614 .long L31_0_set_46 - 0xbe, 0xf6, 0xff, 0xff, //0x00006618 .long L31_0_set_46 - 0xbe, 0xf6, 0xff, 0xff, //0x0000661c .long L31_0_set_46 - 0xbe, 0xf6, 0xff, 0xff, //0x00006620 .long L31_0_set_46 - 0xbe, 0xf6, 0xff, 0xff, //0x00006624 .long L31_0_set_46 - 0xbe, 0xf6, 0xff, 0xff, //0x00006628 .long L31_0_set_46 - 0xbe, 0xf6, 0xff, 0xff, //0x0000662c .long L31_0_set_46 - 0xbe, 0xf6, 0xff, 0xff, //0x00006630 .long L31_0_set_46 - 0xbe, 0xf6, 0xff, 0xff, //0x00006634 .long L31_0_set_46 - 0xbe, 0xf6, 0xff, 0xff, //0x00006638 .long L31_0_set_46 - 0xbe, 0xf6, 0xff, 0xff, //0x0000663c .long L31_0_set_46 - 0xbe, 0xf6, 0xff, 0xff, //0x00006640 .long L31_0_set_46 - 0xbe, 0xf6, 0xff, 0xff, //0x00006644 .long L31_0_set_46 - 0xbe, 0xf6, 0xff, 0xff, //0x00006648 .long L31_0_set_46 - 0xbe, 0xf6, 0xff, 0xff, //0x0000664c .long L31_0_set_46 - 0xbe, 0xf6, 0xff, 0xff, //0x00006650 .long L31_0_set_46 - 0xbe, 0xf6, 0xff, 0xff, //0x00006654 .long L31_0_set_46 - 0xbe, 0xf6, 0xff, 0xff, //0x00006658 .long L31_0_set_46 - 0xbe, 0xf6, 0xff, 0xff, //0x0000665c .long L31_0_set_46 - 0xbe, 0xf6, 0xff, 0xff, //0x00006660 .long L31_0_set_46 - 0xbe, 0xf6, 0xff, 0xff, //0x00006664 .long L31_0_set_46 - 0xbe, 0xf6, 0xff, 0xff, //0x00006668 .long L31_0_set_46 - 0xbe, 0xf6, 0xff, 0xff, //0x0000666c .long L31_0_set_46 - 0xbe, 0xf6, 0xff, 0xff, //0x00006670 .long L31_0_set_46 - 0xbe, 0xf6, 0xff, 0xff, //0x00006674 .long L31_0_set_46 - 0xbe, 0xf6, 0xff, 0xff, //0x00006678 .long L31_0_set_46 - 0xbe, 0xf6, 0xff, 0xff, //0x0000667c .long L31_0_set_46 - 0xbe, 0xf6, 0xff, 0xff, //0x00006680 .long L31_0_set_46 - 0xbe, 0xf6, 0xff, 0xff, //0x00006684 .long L31_0_set_46 - 0xbe, 0xf6, 0xff, 0xff, //0x00006688 .long L31_0_set_46 - 0xbe, 0xf6, 0xff, 0xff, //0x0000668c .long L31_0_set_46 - 0xbe, 0xf6, 0xff, 0xff, //0x00006690 .long L31_0_set_46 - 0xd3, 0xf7, 0xff, 0xff, //0x00006694 .long L31_0_set_57 - 0xbe, 0xf6, 0xff, 0xff, //0x00006698 .long L31_0_set_46 - 0xbe, 0xf6, 0xff, 0xff, //0x0000669c .long L31_0_set_46 - 0xbe, 0xf6, 0xff, 0xff, //0x000066a0 .long L31_0_set_46 - 0xbe, 0xf6, 0xff, 0xff, //0x000066a4 .long L31_0_set_46 - 0xbe, 0xf6, 0xff, 0xff, //0x000066a8 .long L31_0_set_46 - 0xbe, 0xf6, 0xff, 0xff, //0x000066ac .long L31_0_set_46 - 0xbe, 0xf6, 0xff, 0xff, //0x000066b0 .long L31_0_set_46 - 0xbe, 0xf6, 0xff, 0xff, //0x000066b4 .long L31_0_set_46 - 0xbe, 0xf6, 0xff, 0xff, //0x000066b8 .long L31_0_set_46 - 0xbe, 0xf6, 0xff, 0xff, //0x000066bc .long L31_0_set_46 - 0x3f, 0xfb, 0xff, 0xff, //0x000066c0 .long L31_0_set_83 - 0xbe, 0xf6, 0xff, 0xff, //0x000066c4 .long L31_0_set_46 - 0xbe, 0xf6, 0xff, 0xff, //0x000066c8 .long L31_0_set_46 - 0xbe, 0xf6, 0xff, 0xff, //0x000066cc .long L31_0_set_46 - 0xbe, 0xf6, 0xff, 0xff, //0x000066d0 .long L31_0_set_46 - 0xbe, 0xf6, 0xff, 0xff, //0x000066d4 .long L31_0_set_46 - 0xbe, 0xf6, 0xff, 0xff, //0x000066d8 .long L31_0_set_46 - 0xbe, 0xf6, 0xff, 0xff, //0x000066dc .long L31_0_set_46 - 0xab, 0xf6, 0xff, 0xff, //0x000066e0 .long L31_0_set_45 - 0xbe, 0xf6, 0xff, 0xff, //0x000066e4 .long L31_0_set_46 - 0xbe, 0xf6, 0xff, 0xff, //0x000066e8 .long L31_0_set_46 - 0xbe, 0xf6, 0xff, 0xff, //0x000066ec .long L31_0_set_46 - 0xbe, 0xf6, 0xff, 0xff, //0x000066f0 .long L31_0_set_46 - 0xbe, 0xf6, 0xff, 0xff, //0x000066f4 .long L31_0_set_46 - 0xab, 0xf6, 0xff, 0xff, //0x000066f8 .long L31_0_set_45 - 0xbe, 0xf6, 0xff, 0xff, //0x000066fc .long L31_0_set_46 - 0xbe, 0xf6, 0xff, 0xff, //0x00006700 .long L31_0_set_46 - 0xbe, 0xf6, 0xff, 0xff, //0x00006704 .long L31_0_set_46 - 0xbe, 0xf6, 0xff, 0xff, //0x00006708 .long L31_0_set_46 - 0xbe, 0xf6, 0xff, 0xff, //0x0000670c .long L31_0_set_46 - 0xbe, 0xf6, 0xff, 0xff, //0x00006710 .long L31_0_set_46 - 0x52, 0xfb, 0xff, 0xff, //0x00006714 .long L31_0_set_84 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006718 .p2align 4, 0x00 - //0x00006720 LCPI32_0 - 0x01, 0x00, 0x00, 0x00, //0x00006720 .long 1 - 0x00, 0x00, 0x00, 0x00, //0x00006724 .long 0 - 0x00, 0x00, 0x00, 0x00, //0x00006728 .long 0 - 0x00, 0x00, 0x00, 0x00, //0x0000672c .long 0 - //0x00006730 .p2align 4, 0x90 - //0x00006730 _get_by_path - 0x55, //0x00006730 pushq %rbp - 0x48, 0x89, 0xe5, //0x00006731 movq %rsp, %rbp - 0x41, 0x57, //0x00006734 pushq %r15 - 0x41, 0x56, //0x00006736 pushq %r14 - 0x41, 0x55, //0x00006738 pushq %r13 - 0x41, 0x54, //0x0000673a pushq %r12 - 0x53, //0x0000673c pushq %rbx - 0x48, 0x83, 0xec, 0x38, //0x0000673d subq $56, %rsp - 0x49, 0x89, 0xf5, //0x00006741 movq %rsi, %r13 - 0x49, 0x89, 0xfc, //0x00006744 movq %rdi, %r12 - 0x48, 0x8b, 0x42, 0x08, //0x00006747 movq $8(%rdx), %rax - 0x48, 0x85, 0xc0, //0x0000674b testq %rax, %rax - 0x0f, 0x84, 0xfb, 0x0b, 0x00, 0x00, //0x0000674e je LBB32_221 - 0x4c, 0x8b, 0x0a, //0x00006754 movq (%rdx), %r9 - 0x48, 0xc1, 0xe0, 0x04, //0x00006757 shlq $4, %rax - 0x4c, 0x01, 0xc8, //0x0000675b addq %r9, %rax - 0x48, 0x89, 0x45, 0xa8, //0x0000675e movq %rax, $-88(%rbp) - 0x49, 0x8b, 0x14, 0x24, //0x00006762 movq (%r12), %rdx - 0x49, 0x8b, 0x75, 0x00, //0x00006766 movq (%r13), %rsi - 0x49, 0xba, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x0000676a movabsq $4294977024, %r10 - 0x48, 0x89, 0x4d, 0xa0, //0x00006774 movq %rcx, $-96(%rbp) - //0x00006778 LBB32_2 - 0x4d, 0x8b, 0x44, 0x24, 0x08, //0x00006778 movq $8(%r12), %r8 - 0x4c, 0x39, 0xc6, //0x0000677d cmpq %r8, %rsi - 0x0f, 0x83, 0x2a, 0x00, 0x00, 0x00, //0x00006780 jae LBB32_7 - 0x8a, 0x04, 0x32, //0x00006786 movb (%rdx,%rsi), %al - 0x3c, 0x0d, //0x00006789 cmpb $13, %al - 0x0f, 0x84, 0x1f, 0x00, 0x00, 0x00, //0x0000678b je LBB32_7 - 0x3c, 0x20, //0x00006791 cmpb $32, %al - 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x00006793 je LBB32_7 - 0x04, 0xf7, //0x00006799 addb $-9, %al - 0x3c, 0x01, //0x0000679b cmpb $1, %al - 0x0f, 0x86, 0x0d, 0x00, 0x00, 0x00, //0x0000679d jbe LBB32_7 - 0x48, 0x89, 0xf7, //0x000067a3 movq %rsi, %rdi - 0xe9, 0x14, 0x01, 0x00, 0x00, //0x000067a6 jmp LBB32_29 - 0x90, 0x90, 0x90, 0x90, 0x90, //0x000067ab .p2align 4, 0x90 - //0x000067b0 LBB32_7 - 0x48, 0x8d, 0x7e, 0x01, //0x000067b0 leaq $1(%rsi), %rdi - 0x4c, 0x39, 0xc7, //0x000067b4 cmpq %r8, %rdi - 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x000067b7 jae LBB32_11 - 0x8a, 0x04, 0x3a, //0x000067bd movb (%rdx,%rdi), %al - 0x3c, 0x0d, //0x000067c0 cmpb $13, %al - 0x0f, 0x84, 0x18, 0x00, 0x00, 0x00, //0x000067c2 je LBB32_11 - 0x3c, 0x20, //0x000067c8 cmpb $32, %al - 0x0f, 0x84, 0x10, 0x00, 0x00, 0x00, //0x000067ca je LBB32_11 - 0x04, 0xf7, //0x000067d0 addb $-9, %al - 0x3c, 0x01, //0x000067d2 cmpb $1, %al - 0x0f, 0x87, 0xe5, 0x00, 0x00, 0x00, //0x000067d4 ja LBB32_29 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000067da .p2align 4, 0x90 - //0x000067e0 LBB32_11 - 0x48, 0x8d, 0x7e, 0x02, //0x000067e0 leaq $2(%rsi), %rdi - 0x4c, 0x39, 0xc7, //0x000067e4 cmpq %r8, %rdi - 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x000067e7 jae LBB32_15 - 0x8a, 0x04, 0x3a, //0x000067ed movb (%rdx,%rdi), %al - 0x3c, 0x0d, //0x000067f0 cmpb $13, %al - 0x0f, 0x84, 0x18, 0x00, 0x00, 0x00, //0x000067f2 je LBB32_15 - 0x3c, 0x20, //0x000067f8 cmpb $32, %al - 0x0f, 0x84, 0x10, 0x00, 0x00, 0x00, //0x000067fa je LBB32_15 - 0x04, 0xf7, //0x00006800 addb $-9, %al - 0x3c, 0x01, //0x00006802 cmpb $1, %al - 0x0f, 0x87, 0xb5, 0x00, 0x00, 0x00, //0x00006804 ja LBB32_29 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000680a .p2align 4, 0x90 - //0x00006810 LBB32_15 - 0x48, 0x8d, 0x7e, 0x03, //0x00006810 leaq $3(%rsi), %rdi - 0x4c, 0x39, 0xc7, //0x00006814 cmpq %r8, %rdi - 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00006817 jae LBB32_19 - 0x8a, 0x04, 0x3a, //0x0000681d movb (%rdx,%rdi), %al - 0x3c, 0x0d, //0x00006820 cmpb $13, %al - 0x0f, 0x84, 0x18, 0x00, 0x00, 0x00, //0x00006822 je LBB32_19 - 0x3c, 0x20, //0x00006828 cmpb $32, %al - 0x0f, 0x84, 0x10, 0x00, 0x00, 0x00, //0x0000682a je LBB32_19 - 0x04, 0xf7, //0x00006830 addb $-9, %al - 0x3c, 0x01, //0x00006832 cmpb $1, %al - 0x0f, 0x87, 0x85, 0x00, 0x00, 0x00, //0x00006834 ja LBB32_29 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000683a .p2align 4, 0x90 - //0x00006840 LBB32_19 - 0x48, 0x8d, 0x46, 0x04, //0x00006840 leaq $4(%rsi), %rax - 0x49, 0x39, 0xc0, //0x00006844 cmpq %rax, %r8 - 0x0f, 0x86, 0x43, 0x00, 0x00, 0x00, //0x00006847 jbe LBB32_25 - 0x49, 0x39, 0xc0, //0x0000684d cmpq %rax, %r8 - 0x0f, 0x84, 0x51, 0x00, 0x00, 0x00, //0x00006850 je LBB32_26 - 0x4a, 0x8d, 0x3c, 0x02, //0x00006856 leaq (%rdx,%r8), %rdi - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000685a .p2align 4, 0x90 - //0x00006860 LBB32_22 - 0x0f, 0xbe, 0x1c, 0x02, //0x00006860 movsbl (%rdx,%rax), %ebx - 0x83, 0xfb, 0x20, //0x00006864 cmpl $32, %ebx - 0x0f, 0x87, 0x46, 0x00, 0x00, 0x00, //0x00006867 ja LBB32_28 - 0x49, 0x0f, 0xa3, 0xda, //0x0000686d btq %rbx, %r10 - 0x0f, 0x83, 0x3c, 0x00, 0x00, 0x00, //0x00006871 jae LBB32_28 - 0x48, 0x83, 0xc0, 0x01, //0x00006877 addq $1, %rax - 0x49, 0x39, 0xc0, //0x0000687b cmpq %rax, %r8 - 0x0f, 0x85, 0xdc, 0xff, 0xff, 0xff, //0x0000687e jne LBB32_22 - 0xe9, 0x24, 0x00, 0x00, 0x00, //0x00006884 jmp LBB32_27 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00006889 .p2align 4, 0x90 - //0x00006890 LBB32_25 - 0x49, 0x89, 0x45, 0x00, //0x00006890 movq %rax, (%r13) - 0x31, 0xff, //0x00006894 xorl %edi, %edi - 0x49, 0x8b, 0x31, //0x00006896 movq (%r9), %rsi - 0x48, 0x85, 0xf6, //0x00006899 testq %rsi, %rsi - 0x0f, 0x85, 0x4e, 0x00, 0x00, 0x00, //0x0000689c jne LBB32_31 - 0xe9, 0x1e, 0x0b, 0x00, 0x00, //0x000068a2 jmp LBB32_228 - //0x000068a7 LBB32_26 - 0x48, 0x01, 0xd0, //0x000068a7 addq %rdx, %rax - 0x48, 0x89, 0xc7, //0x000068aa movq %rax, %rdi - //0x000068ad LBB32_27 - 0x48, 0x29, 0xd7, //0x000068ad subq %rdx, %rdi - 0x48, 0x89, 0xf8, //0x000068b0 movq %rdi, %rax - //0x000068b3 LBB32_28 - 0x48, 0x89, 0xc7, //0x000068b3 movq %rax, %rdi - 0x4c, 0x39, 0xc0, //0x000068b6 cmpq %r8, %rax - 0x0f, 0x83, 0x1d, 0x00, 0x00, 0x00, //0x000068b9 jae LBB32_30 - //0x000068bf LBB32_29 - 0x48, 0x8d, 0x47, 0x01, //0x000068bf leaq $1(%rdi), %rax - 0x49, 0x89, 0x45, 0x00, //0x000068c3 movq %rax, (%r13) - 0x40, 0x8a, 0x3c, 0x3a, //0x000068c7 movb (%rdx,%rdi), %dil - 0x49, 0x8b, 0x31, //0x000068cb movq (%r9), %rsi - 0x48, 0x85, 0xf6, //0x000068ce testq %rsi, %rsi - 0x0f, 0x85, 0x19, 0x00, 0x00, 0x00, //0x000068d1 jne LBB32_31 - 0xe9, 0xe9, 0x0a, 0x00, 0x00, //0x000068d7 jmp LBB32_228 - //0x000068dc LBB32_30 - 0x31, 0xff, //0x000068dc xorl %edi, %edi - 0x48, 0x89, 0xf0, //0x000068de movq %rsi, %rax - 0x49, 0x8b, 0x31, //0x000068e1 movq (%r9), %rsi - 0x48, 0x85, 0xf6, //0x000068e4 testq %rsi, %rsi - 0x0f, 0x84, 0xd8, 0x0a, 0x00, 0x00, //0x000068e7 je LBB32_228 - 0x90, 0x90, 0x90, //0x000068ed .p2align 4, 0x90 - //0x000068f0 LBB32_31 - 0x8a, 0x5e, 0x17, //0x000068f0 movb $23(%rsi), %bl - 0x80, 0xe3, 0x1f, //0x000068f3 andb $31, %bl - 0x80, 0xfb, 0x02, //0x000068f6 cmpb $2, %bl - 0x4c, 0x89, 0x4d, 0xb8, //0x000068f9 movq %r9, $-72(%rbp) - 0x0f, 0x84, 0xfd, 0x06, 0x00, 0x00, //0x000068fd je LBB32_161 - 0x80, 0xfb, 0x18, //0x00006903 cmpb $24, %bl - 0x0f, 0x85, 0xb9, 0x0a, 0x00, 0x00, //0x00006906 jne LBB32_228 - 0x40, 0x80, 0xff, 0x7b, //0x0000690c cmpb $123, %dil - 0x4c, 0x89, 0x6d, 0xd0, //0x00006910 movq %r13, $-48(%rbp) - 0x0f, 0x85, 0xc2, 0x0a, 0x00, 0x00, //0x00006914 jne LBB32_234 - //0x0000691a LBB32_34 - 0x49, 0x8b, 0x4c, 0x24, 0x08, //0x0000691a movq $8(%r12), %rcx - 0x48, 0x39, 0xc8, //0x0000691f cmpq %rcx, %rax - 0x0f, 0x83, 0x38, 0x00, 0x00, 0x00, //0x00006922 jae LBB32_39 - 0x8a, 0x1c, 0x02, //0x00006928 movb (%rdx,%rax), %bl - 0x80, 0xfb, 0x0d, //0x0000692b cmpb $13, %bl - 0x0f, 0x84, 0x2c, 0x00, 0x00, 0x00, //0x0000692e je LBB32_39 - 0x80, 0xfb, 0x20, //0x00006934 cmpb $32, %bl - 0x0f, 0x84, 0x23, 0x00, 0x00, 0x00, //0x00006937 je LBB32_39 - 0x80, 0xc3, 0xf7, //0x0000693d addb $-9, %bl - 0x80, 0xfb, 0x01, //0x00006940 cmpb $1, %bl - 0x0f, 0x86, 0x17, 0x00, 0x00, 0x00, //0x00006943 jbe LBB32_39 - 0x49, 0x89, 0xc7, //0x00006949 movq %rax, %r15 - 0xe9, 0x04, 0x01, 0x00, 0x00, //0x0000694c jmp LBB32_60 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00006951 .p2align 4, 0x90 - //0x00006960 LBB32_39 - 0x4c, 0x8d, 0x78, 0x01, //0x00006960 leaq $1(%rax), %r15 - 0x49, 0x39, 0xcf, //0x00006964 cmpq %rcx, %r15 - 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00006967 jae LBB32_43 - 0x42, 0x8a, 0x1c, 0x3a, //0x0000696d movb (%rdx,%r15), %bl - 0x80, 0xfb, 0x0d, //0x00006971 cmpb $13, %bl - 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00006974 je LBB32_43 - 0x80, 0xfb, 0x20, //0x0000697a cmpb $32, %bl - 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x0000697d je LBB32_43 - 0x80, 0xc3, 0xf7, //0x00006983 addb $-9, %bl - 0x80, 0xfb, 0x01, //0x00006986 cmpb $1, %bl - 0x0f, 0x87, 0xc6, 0x00, 0x00, 0x00, //0x00006989 ja LBB32_60 - 0x90, //0x0000698f .p2align 4, 0x90 - //0x00006990 LBB32_43 - 0x4c, 0x8d, 0x78, 0x02, //0x00006990 leaq $2(%rax), %r15 - 0x49, 0x39, 0xcf, //0x00006994 cmpq %rcx, %r15 - 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00006997 jae LBB32_47 - 0x42, 0x8a, 0x1c, 0x3a, //0x0000699d movb (%rdx,%r15), %bl - 0x80, 0xfb, 0x0d, //0x000069a1 cmpb $13, %bl - 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x000069a4 je LBB32_47 - 0x80, 0xfb, 0x20, //0x000069aa cmpb $32, %bl - 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x000069ad je LBB32_47 - 0x80, 0xc3, 0xf7, //0x000069b3 addb $-9, %bl - 0x80, 0xfb, 0x01, //0x000069b6 cmpb $1, %bl - 0x0f, 0x87, 0x96, 0x00, 0x00, 0x00, //0x000069b9 ja LBB32_60 - 0x90, //0x000069bf .p2align 4, 0x90 - //0x000069c0 LBB32_47 - 0x4c, 0x8d, 0x78, 0x03, //0x000069c0 leaq $3(%rax), %r15 - 0x49, 0x39, 0xcf, //0x000069c4 cmpq %rcx, %r15 - 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x000069c7 jae LBB32_51 - 0x42, 0x8a, 0x1c, 0x3a, //0x000069cd movb (%rdx,%r15), %bl - 0x80, 0xfb, 0x0d, //0x000069d1 cmpb $13, %bl - 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x000069d4 je LBB32_51 - 0x80, 0xfb, 0x20, //0x000069da cmpb $32, %bl - 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x000069dd je LBB32_51 - 0x80, 0xc3, 0xf7, //0x000069e3 addb $-9, %bl - 0x80, 0xfb, 0x01, //0x000069e6 cmpb $1, %bl - 0x0f, 0x87, 0x66, 0x00, 0x00, 0x00, //0x000069e9 ja LBB32_60 - 0x90, //0x000069ef .p2align 4, 0x90 - //0x000069f0 LBB32_51 - 0x4c, 0x8d, 0x78, 0x04, //0x000069f0 leaq $4(%rax), %r15 - 0x4c, 0x39, 0xf9, //0x000069f4 cmpq %r15, %rcx - 0x0f, 0x86, 0xdc, 0x09, 0x00, 0x00, //0x000069f7 jbe LBB32_231 - 0x4c, 0x39, 0xf9, //0x000069fd cmpq %r15, %rcx - 0x0f, 0x84, 0x3a, 0x00, 0x00, 0x00, //0x00006a00 je LBB32_57 - 0x48, 0x8d, 0x34, 0x0a, //0x00006a06 leaq (%rdx,%rcx), %rsi - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00006a0a .p2align 4, 0x90 - //0x00006a10 LBB32_54 - 0x42, 0x0f, 0xbe, 0x3c, 0x3a, //0x00006a10 movsbl (%rdx,%r15), %edi - 0x83, 0xff, 0x20, //0x00006a15 cmpl $32, %edi - 0x0f, 0x87, 0x2e, 0x00, 0x00, 0x00, //0x00006a18 ja LBB32_59 - 0x49, 0x0f, 0xa3, 0xfa, //0x00006a1e btq %rdi, %r10 - 0x0f, 0x83, 0x24, 0x00, 0x00, 0x00, //0x00006a22 jae LBB32_59 - 0x49, 0x83, 0xc7, 0x01, //0x00006a28 addq $1, %r15 - 0x4c, 0x39, 0xf9, //0x00006a2c cmpq %r15, %rcx - 0x0f, 0x85, 0xdb, 0xff, 0xff, 0xff, //0x00006a2f jne LBB32_54 - 0xe9, 0x0c, 0x00, 0x00, 0x00, //0x00006a35 jmp LBB32_58 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00006a3a .p2align 4, 0x90 - //0x00006a40 LBB32_57 - 0x49, 0x01, 0xd7, //0x00006a40 addq %rdx, %r15 - 0x4c, 0x89, 0xfe, //0x00006a43 movq %r15, %rsi - //0x00006a46 LBB32_58 - 0x48, 0x29, 0xd6, //0x00006a46 subq %rdx, %rsi - 0x49, 0x89, 0xf7, //0x00006a49 movq %rsi, %r15 - //0x00006a4c LBB32_59 - 0x49, 0x39, 0xcf, //0x00006a4c cmpq %rcx, %r15 - 0x0f, 0x83, 0x87, 0x09, 0x00, 0x00, //0x00006a4f jae LBB32_234 - //0x00006a55 LBB32_60 - 0x4c, 0x89, 0xe8, //0x00006a55 movq %r13, %rax - 0x4d, 0x8d, 0x6f, 0x01, //0x00006a58 leaq $1(%r15), %r13 - 0x4c, 0x89, 0x28, //0x00006a5c movq %r13, (%rax) - 0x42, 0x8a, 0x0c, 0x3a, //0x00006a5f movb (%rdx,%r15), %cl - 0x80, 0xf9, 0x22, //0x00006a63 cmpb $34, %cl - 0x0f, 0x85, 0x1f, 0x09, 0x00, 0x00, //0x00006a66 jne LBB32_224 - 0x48, 0x8b, 0x45, 0xb8, //0x00006a6c movq $-72(%rbp), %rax - 0x48, 0x8b, 0x40, 0x08, //0x00006a70 movq $8(%rax), %rax - 0x48, 0x8b, 0x18, //0x00006a74 movq (%rax), %rbx - 0x4c, 0x8b, 0x70, 0x08, //0x00006a77 movq $8(%rax), %r14 - 0x48, 0xc7, 0x45, 0xb0, 0xff, 0xff, 0xff, 0xff, //0x00006a7b movq $-1, $-80(%rbp) - 0x4c, 0x89, 0xe7, //0x00006a83 movq %r12, %rdi - 0x4c, 0x89, 0xee, //0x00006a86 movq %r13, %rsi - 0x48, 0x8d, 0x55, 0xb0, //0x00006a89 leaq $-80(%rbp), %rdx - 0xe8, 0x4e, 0x27, 0x00, 0x00, //0x00006a8d callq _advance_string_default - 0x48, 0x85, 0xc0, //0x00006a92 testq %rax, %rax - 0x0f, 0x88, 0x62, 0x09, 0x00, 0x00, //0x00006a95 js LBB32_236 - 0x48, 0x8b, 0x4d, 0xd0, //0x00006a9b movq $-48(%rbp), %rcx - 0x48, 0x89, 0x01, //0x00006a9f movq %rax, (%rcx) - 0x48, 0x8b, 0x4d, 0xb0, //0x00006aa2 movq $-80(%rbp), %rcx - 0x48, 0x83, 0xf9, 0xff, //0x00006aa6 cmpq $-1, %rcx - 0x0f, 0x84, 0x09, 0x00, 0x00, 0x00, //0x00006aaa je LBB32_64 - 0x48, 0x39, 0xc1, //0x00006ab0 cmpq %rax, %rcx - 0x0f, 0x8e, 0x48, 0x01, 0x00, 0x00, //0x00006ab3 jle LBB32_136 - //0x00006ab9 LBB32_64 - 0x48, 0x89, 0xc2, //0x00006ab9 movq %rax, %rdx - 0x4c, 0x29, 0xfa, //0x00006abc subq %r15, %rdx - 0x48, 0x83, 0xc2, 0xfe, //0x00006abf addq $-2, %rdx - 0x41, 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00006ac3 movl $1, %r8d - 0x48, 0x89, 0xd1, //0x00006ac9 movq %rdx, %rcx - 0x4c, 0x09, 0xf1, //0x00006acc orq %r14, %rcx - 0x0f, 0x85, 0x1b, 0x00, 0x00, 0x00, //0x00006acf jne LBB32_66 - 0x49, 0xba, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00006ad5 movabsq $4294977024, %r10 - 0xe9, 0x5b, 0x00, 0x00, 0x00, //0x00006adf jmp LBB32_76 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00006ae4 .p2align 4, 0x90 - //0x00006af0 LBB32_66 - 0x4c, 0x39, 0xf2, //0x00006af0 cmpq %r14, %rdx - 0x49, 0xba, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00006af3 movabsq $4294977024, %r10 - 0x0f, 0x85, 0x39, 0x00, 0x00, 0x00, //0x00006afd jne LBB32_71 - 0x49, 0x8b, 0x3c, 0x24, //0x00006b03 movq (%r12), %rdi - 0x49, 0x01, 0xfd, //0x00006b07 addq %rdi, %r13 - 0x31, 0xf6, //0x00006b0a xorl %esi, %esi - 0x4c, 0x89, 0xf2, //0x00006b0c movq %r14, %rdx - 0x90, //0x00006b0f .p2align 4, 0x90 - //0x00006b10 LBB32_68 - 0x48, 0x83, 0xfa, 0x10, //0x00006b10 cmpq $16, %rdx - 0x0f, 0x82, 0x64, 0x00, 0x00, 0x00, //0x00006b14 jb LBB32_72 - 0xc4, 0xc1, 0x7a, 0x6f, 0x44, 0x35, 0x00, //0x00006b1a vmovdqu (%r13,%rsi), %xmm0 - 0xc5, 0xf9, 0x74, 0x04, 0x33, //0x00006b21 vpcmpeqb (%rbx,%rsi), %xmm0, %xmm0 - 0xc5, 0xf9, 0xd7, 0xc8, //0x00006b26 vpmovmskb %xmm0, %ecx - 0x48, 0x83, 0xc2, 0xf0, //0x00006b2a addq $-16, %rdx - 0x48, 0x83, 0xc6, 0x10, //0x00006b2e addq $16, %rsi - 0x66, 0x83, 0xf9, 0xff, //0x00006b32 cmpw $-1, %cx - 0x0f, 0x84, 0xd4, 0xff, 0xff, 0xff, //0x00006b36 je LBB32_68 - //0x00006b3c LBB32_71 - 0x45, 0x31, 0xc0, //0x00006b3c xorl %r8d, %r8d - //0x00006b3f LBB32_76 - 0x4c, 0x8b, 0x6d, 0xd0, //0x00006b3f movq $-48(%rbp), %r13 - 0x49, 0x8b, 0x14, 0x24, //0x00006b43 movq (%r12), %rdx - 0x49, 0x8b, 0x74, 0x24, 0x08, //0x00006b47 movq $8(%r12), %rsi - 0x48, 0x39, 0xf0, //0x00006b4c cmpq %rsi, %rax - 0x0f, 0x83, 0x1b, 0x02, 0x00, 0x00, //0x00006b4f jae LBB32_82 - //0x00006b55 LBB32_78 - 0x8a, 0x1c, 0x02, //0x00006b55 movb (%rdx,%rax), %bl - 0x80, 0xfb, 0x0d, //0x00006b58 cmpb $13, %bl - 0x0f, 0x84, 0x0f, 0x02, 0x00, 0x00, //0x00006b5b je LBB32_82 - 0x80, 0xfb, 0x20, //0x00006b61 cmpb $32, %bl - 0x0f, 0x84, 0x06, 0x02, 0x00, 0x00, //0x00006b64 je LBB32_82 - 0x80, 0xc3, 0xf7, //0x00006b6a addb $-9, %bl - 0x80, 0xfb, 0x01, //0x00006b6d cmpb $1, %bl - 0x0f, 0x86, 0xfa, 0x01, 0x00, 0x00, //0x00006b70 jbe LBB32_82 - 0x48, 0x89, 0xc7, //0x00006b76 movq %rax, %rdi - 0xe9, 0xe7, 0x02, 0x00, 0x00, //0x00006b79 jmp LBB32_107 - //0x00006b7e LBB32_72 - 0x44, 0x01, 0xff, //0x00006b7e addl %r15d, %edi - 0x8d, 0x0c, 0x3e, //0x00006b81 leal (%rsi,%rdi), %ecx - 0x83, 0xc1, 0x01, //0x00006b84 addl $1, %ecx - 0x81, 0xe1, 0xff, 0x0f, 0x00, 0x00, //0x00006b87 andl $4095, %ecx - 0x81, 0xf9, 0xf0, 0x0f, 0x00, 0x00, //0x00006b8d cmpl $4080, %ecx - 0x0f, 0x87, 0x4b, 0x00, 0x00, 0x00, //0x00006b93 ja LBB32_101 - 0x8d, 0x0c, 0x33, //0x00006b99 leal (%rbx,%rsi), %ecx - 0x81, 0xe1, 0xff, 0x0f, 0x00, 0x00, //0x00006b9c andl $4095, %ecx - 0x81, 0xf9, 0xf1, 0x0f, 0x00, 0x00, //0x00006ba2 cmpl $4081, %ecx - 0x0f, 0x83, 0x36, 0x00, 0x00, 0x00, //0x00006ba8 jae LBB32_101 - 0xc4, 0xc1, 0x7a, 0x6f, 0x44, 0x35, 0x00, //0x00006bae vmovdqu (%r13,%rsi), %xmm0 - 0xc5, 0xf9, 0x74, 0x04, 0x33, //0x00006bb5 vpcmpeqb (%rbx,%rsi), %xmm0, %xmm0 - 0xc5, 0xf9, 0xd7, 0xf0, //0x00006bba vpmovmskb %xmm0, %esi - 0x66, 0x83, 0xfe, 0xff, //0x00006bbe cmpw $-1, %si - 0x0f, 0x84, 0x77, 0xff, 0xff, 0xff, //0x00006bc2 je LBB32_76 - 0xf7, 0xd6, //0x00006bc8 notl %esi - 0x66, 0x0f, 0xbc, 0xce, //0x00006bca bsfw %si, %cx - 0x0f, 0xb7, 0xc9, //0x00006bce movzwl %cx, %ecx - 0x45, 0x31, 0xc0, //0x00006bd1 xorl %r8d, %r8d - 0x48, 0x39, 0xca, //0x00006bd4 cmpq %rcx, %rdx - 0x41, 0x0f, 0x96, 0xc0, //0x00006bd7 setbe %r8b - 0xe9, 0x5f, 0xff, 0xff, 0xff, //0x00006bdb jmp LBB32_76 - //0x00006be0 .p2align 4, 0x90 - //0x00006be0 LBB32_100 - 0x48, 0x83, 0xc6, 0x01, //0x00006be0 addq $1, %rsi - //0x00006be4 LBB32_101 - 0x49, 0x39, 0xf6, //0x00006be4 cmpq %rsi, %r14 - 0x0f, 0x84, 0x52, 0xff, 0xff, 0xff, //0x00006be7 je LBB32_76 - 0x41, 0x0f, 0xb6, 0x4c, 0x35, 0x00, //0x00006bed movzbl (%r13,%rsi), %ecx - 0x3a, 0x0c, 0x33, //0x00006bf3 cmpb (%rbx,%rsi), %cl - 0x0f, 0x84, 0xe4, 0xff, 0xff, 0xff, //0x00006bf6 je LBB32_100 - 0xe9, 0x3b, 0xff, 0xff, 0xff, //0x00006bfc jmp LBB32_71 - //0x00006c01 LBB32_136 - 0x48, 0xc7, 0x45, 0xc0, 0x00, 0x00, 0x00, 0x00, //0x00006c01 movq $0, $-64(%rbp) - 0x49, 0x8b, 0x0c, 0x24, //0x00006c09 movq (%r12), %rcx - 0x4a, 0x8d, 0x34, 0x29, //0x00006c0d leaq (%rcx,%r13), %rsi - 0x48, 0x89, 0x75, 0xc8, //0x00006c11 movq %rsi, $-56(%rbp) - 0x48, 0x01, 0xc1, //0x00006c15 addq %rax, %rcx - 0x48, 0x83, 0xc1, 0xff, //0x00006c18 addq $-1, %rcx - 0x48, 0x83, 0xc0, 0xff, //0x00006c1c addq $-1, %rax - 0x4e, 0x8d, 0x3c, 0x33, //0x00006c20 leaq (%rbx,%r14), %r15 - 0x49, 0x39, 0xc5, //0x00006c24 cmpq %rax, %r13 - 0x0f, 0x8d, 0xdf, 0x00, 0x00, 0x00, //0x00006c27 jge LBB32_153 - 0x4d, 0x85, 0xf6, //0x00006c2d testq %r14, %r14 - 0x4c, 0x8b, 0x6d, 0xd0, //0x00006c30 movq $-48(%rbp), %r13 - 0x48, 0x8d, 0x55, 0xc0, //0x00006c34 leaq $-64(%rbp), %rdx - 0x0f, 0x8e, 0xd2, 0x00, 0x00, 0x00, //0x00006c38 jle LBB32_154 - 0x49, 0xba, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00006c3e movabsq $4294977024, %r10 - 0x49, 0x89, 0xce, //0x00006c48 movq %rcx, %r14 - //0x00006c4b LBB32_139 - 0x8a, 0x06, //0x00006c4b movb (%rsi), %al - 0x3c, 0x5c, //0x00006c4d cmpb $92, %al - 0x0f, 0x85, 0x6d, 0x00, 0x00, 0x00, //0x00006c4f jne LBB32_146 - 0x48, 0x8d, 0x7d, 0xc8, //0x00006c55 leaq $-56(%rbp), %rdi - 0x4c, 0x89, 0xf6, //0x00006c59 movq %r14, %rsi - 0xe8, 0x0f, 0x29, 0x00, 0x00, //0x00006c5c callq _unescape - 0x49, 0x89, 0xc0, //0x00006c61 movq %rax, %r8 - 0x48, 0x85, 0xc0, //0x00006c64 testq %rax, %rax - 0x0f, 0x88, 0xcd, 0x00, 0x00, 0x00, //0x00006c67 js LBB32_158 - 0x49, 0x8d, 0x34, 0x28, //0x00006c6d leaq (%r8,%rbp), %rsi - 0x48, 0x83, 0xc6, 0xc0, //0x00006c71 addq $-64, %rsi - 0x48, 0x8d, 0x55, 0xc0, //0x00006c75 leaq $-64(%rbp), %rdx - 0x4c, 0x39, 0xfb, //0x00006c79 cmpq %r15, %rbx - 0x0f, 0x83, 0x59, 0x00, 0x00, 0x00, //0x00006c7c jae LBB32_148 - 0x48, 0x39, 0xd6, //0x00006c82 cmpq %rdx, %rsi - 0x49, 0xba, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00006c85 movabsq $4294977024, %r10 - 0x48, 0x89, 0xd1, //0x00006c8f movq %rdx, %rcx - 0x0f, 0x86, 0x50, 0x00, 0x00, 0x00, //0x00006c92 jbe LBB32_149 - //0x00006c98 LBB32_143 - 0x0f, 0xb6, 0x03, //0x00006c98 movzbl (%rbx), %eax - 0x3a, 0x01, //0x00006c9b cmpb (%rcx), %al - 0x0f, 0x85, 0x45, 0x00, 0x00, 0x00, //0x00006c9d jne LBB32_149 - 0x48, 0x83, 0xc3, 0x01, //0x00006ca3 addq $1, %rbx - 0x48, 0x83, 0xc1, 0x01, //0x00006ca7 addq $1, %rcx - 0x4c, 0x39, 0xfb, //0x00006cab cmpq %r15, %rbx - 0x0f, 0x83, 0x34, 0x00, 0x00, 0x00, //0x00006cae jae LBB32_149 - 0x48, 0x39, 0xf1, //0x00006cb4 cmpq %rsi, %rcx - 0x0f, 0x82, 0xdb, 0xff, 0xff, 0xff, //0x00006cb7 jb LBB32_143 - 0xe9, 0x26, 0x00, 0x00, 0x00, //0x00006cbd jmp LBB32_149 - //0x00006cc2 LBB32_146 - 0x3a, 0x03, //0x00006cc2 cmpb (%rbx), %al - 0x0f, 0x85, 0x68, 0x00, 0x00, 0x00, //0x00006cc4 jne LBB32_160 - 0x48, 0x83, 0xc6, 0x01, //0x00006cca addq $1, %rsi - 0x48, 0x89, 0x75, 0xc8, //0x00006cce movq %rsi, $-56(%rbp) - 0x48, 0x83, 0xc3, 0x01, //0x00006cd2 addq $1, %rbx - 0xe9, 0x1a, 0x00, 0x00, 0x00, //0x00006cd6 jmp LBB32_151 - //0x00006cdb LBB32_148 - 0x48, 0x89, 0xd1, //0x00006cdb movq %rdx, %rcx - 0x49, 0xba, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00006cde movabsq $4294977024, %r10 - //0x00006ce8 LBB32_149 - 0x48, 0x39, 0xf1, //0x00006ce8 cmpq %rsi, %rcx - 0x0f, 0x85, 0x41, 0x00, 0x00, 0x00, //0x00006ceb jne LBB32_160 - 0x48, 0x8b, 0x75, 0xc8, //0x00006cf1 movq $-56(%rbp), %rsi - //0x00006cf5 LBB32_151 - 0x4c, 0x39, 0xf6, //0x00006cf5 cmpq %r14, %rsi - 0x0f, 0x83, 0x1f, 0x00, 0x00, 0x00, //0x00006cf8 jae LBB32_155 - 0x4c, 0x39, 0xfb, //0x00006cfe cmpq %r15, %rbx - 0x0f, 0x82, 0x44, 0xff, 0xff, 0xff, //0x00006d01 jb LBB32_139 - 0xe9, 0x11, 0x00, 0x00, 0x00, //0x00006d07 jmp LBB32_155 - //0x00006d0c LBB32_153 - 0x4c, 0x8b, 0x6d, 0xd0, //0x00006d0c movq $-48(%rbp), %r13 - //0x00006d10 LBB32_154 - 0x49, 0xba, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00006d10 movabsq $4294977024, %r10 - 0x49, 0x89, 0xce, //0x00006d1a movq %rcx, %r14 - //0x00006d1d LBB32_155 - 0x4c, 0x31, 0xf6, //0x00006d1d xorq %r14, %rsi - 0x4c, 0x31, 0xfb, //0x00006d20 xorq %r15, %rbx - 0x45, 0x31, 0xc0, //0x00006d23 xorl %r8d, %r8d - 0x48, 0x09, 0xf3, //0x00006d26 orq %rsi, %rbx - 0x41, 0x0f, 0x94, 0xc0, //0x00006d29 sete %r8b - 0xe9, 0x1e, 0x00, 0x00, 0x00, //0x00006d2d jmp LBB32_156 - //0x00006d32 LBB32_160 - 0x45, 0x31, 0xc0, //0x00006d32 xorl %r8d, %r8d - 0xe9, 0x16, 0x00, 0x00, 0x00, //0x00006d35 jmp LBB32_156 - //0x00006d3a LBB32_158 - 0x48, 0x8b, 0x45, 0xc8, //0x00006d3a movq $-56(%rbp), %rax - 0x49, 0x2b, 0x04, 0x24, //0x00006d3e subq (%r12), %rax - 0x49, 0x89, 0x45, 0x00, //0x00006d42 movq %rax, (%r13) - 0x49, 0xba, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00006d46 movabsq $4294977024, %r10 - //0x00006d50 LBB32_156 - 0x4d, 0x85, 0xc0, //0x00006d50 testq %r8, %r8 - 0x0f, 0x88, 0x92, 0x06, 0x00, 0x00, //0x00006d53 js LBB32_235 - 0x49, 0x8b, 0x45, 0x00, //0x00006d59 movq (%r13), %rax - 0x49, 0x8b, 0x14, 0x24, //0x00006d5d movq (%r12), %rdx - 0x49, 0x8b, 0x74, 0x24, 0x08, //0x00006d61 movq $8(%r12), %rsi - 0x48, 0x39, 0xf0, //0x00006d66 cmpq %rsi, %rax - 0x0f, 0x82, 0xe6, 0xfd, 0xff, 0xff, //0x00006d69 jb LBB32_78 - 0x90, //0x00006d6f .p2align 4, 0x90 - //0x00006d70 LBB32_82 - 0x48, 0x8d, 0x78, 0x01, //0x00006d70 leaq $1(%rax), %rdi - 0x48, 0x39, 0xf7, //0x00006d74 cmpq %rsi, %rdi - 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00006d77 jae LBB32_86 - 0x8a, 0x1c, 0x3a, //0x00006d7d movb (%rdx,%rdi), %bl - 0x80, 0xfb, 0x0d, //0x00006d80 cmpb $13, %bl - 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x00006d83 je LBB32_86 - 0x80, 0xfb, 0x20, //0x00006d89 cmpb $32, %bl - 0x0f, 0x84, 0x0e, 0x00, 0x00, 0x00, //0x00006d8c je LBB32_86 - 0x80, 0xc3, 0xf7, //0x00006d92 addb $-9, %bl - 0x80, 0xfb, 0x01, //0x00006d95 cmpb $1, %bl - 0x0f, 0x87, 0xc7, 0x00, 0x00, 0x00, //0x00006d98 ja LBB32_107 - 0x90, 0x90, //0x00006d9e .p2align 4, 0x90 - //0x00006da0 LBB32_86 - 0x48, 0x8d, 0x78, 0x02, //0x00006da0 leaq $2(%rax), %rdi - 0x48, 0x39, 0xf7, //0x00006da4 cmpq %rsi, %rdi - 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00006da7 jae LBB32_90 - 0x8a, 0x1c, 0x3a, //0x00006dad movb (%rdx,%rdi), %bl - 0x80, 0xfb, 0x0d, //0x00006db0 cmpb $13, %bl - 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x00006db3 je LBB32_90 - 0x80, 0xfb, 0x20, //0x00006db9 cmpb $32, %bl - 0x0f, 0x84, 0x0e, 0x00, 0x00, 0x00, //0x00006dbc je LBB32_90 - 0x80, 0xc3, 0xf7, //0x00006dc2 addb $-9, %bl - 0x80, 0xfb, 0x01, //0x00006dc5 cmpb $1, %bl - 0x0f, 0x87, 0x97, 0x00, 0x00, 0x00, //0x00006dc8 ja LBB32_107 - 0x90, 0x90, //0x00006dce .p2align 4, 0x90 - //0x00006dd0 LBB32_90 - 0x48, 0x8d, 0x78, 0x03, //0x00006dd0 leaq $3(%rax), %rdi - 0x48, 0x39, 0xf7, //0x00006dd4 cmpq %rsi, %rdi - 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00006dd7 jae LBB32_94 - 0x8a, 0x1c, 0x3a, //0x00006ddd movb (%rdx,%rdi), %bl - 0x80, 0xfb, 0x0d, //0x00006de0 cmpb $13, %bl - 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x00006de3 je LBB32_94 - 0x80, 0xfb, 0x20, //0x00006de9 cmpb $32, %bl - 0x0f, 0x84, 0x0e, 0x00, 0x00, 0x00, //0x00006dec je LBB32_94 - 0x80, 0xc3, 0xf7, //0x00006df2 addb $-9, %bl - 0x80, 0xfb, 0x01, //0x00006df5 cmpb $1, %bl - 0x0f, 0x87, 0x67, 0x00, 0x00, 0x00, //0x00006df8 ja LBB32_107 - 0x90, 0x90, //0x00006dfe .p2align 4, 0x90 - //0x00006e00 LBB32_94 - 0x48, 0x8d, 0x78, 0x04, //0x00006e00 leaq $4(%rax), %rdi - 0x48, 0x39, 0xfe, //0x00006e04 cmpq %rdi, %rsi - 0x0f, 0x86, 0x93, 0x05, 0x00, 0x00, //0x00006e07 jbe LBB32_232 - 0x48, 0x39, 0xfe, //0x00006e0d cmpq %rdi, %rsi - 0x0f, 0x84, 0x3a, 0x00, 0x00, 0x00, //0x00006e10 je LBB32_104 - 0x48, 0x8d, 0x1c, 0x32, //0x00006e16 leaq (%rdx,%rsi), %rbx - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00006e1a .p2align 4, 0x90 - //0x00006e20 LBB32_97 - 0x0f, 0xbe, 0x0c, 0x3a, //0x00006e20 movsbl (%rdx,%rdi), %ecx - 0x83, 0xf9, 0x20, //0x00006e24 cmpl $32, %ecx - 0x0f, 0x87, 0x2f, 0x00, 0x00, 0x00, //0x00006e27 ja LBB32_106 - 0x49, 0x0f, 0xa3, 0xca, //0x00006e2d btq %rcx, %r10 - 0x0f, 0x83, 0x25, 0x00, 0x00, 0x00, //0x00006e31 jae LBB32_106 - 0x48, 0x83, 0xc7, 0x01, //0x00006e37 addq $1, %rdi - 0x48, 0x39, 0xfe, //0x00006e3b cmpq %rdi, %rsi - 0x0f, 0x85, 0xdc, 0xff, 0xff, 0xff, //0x00006e3e jne LBB32_97 - 0xe9, 0x0d, 0x00, 0x00, 0x00, //0x00006e44 jmp LBB32_105 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00006e49 .p2align 4, 0x90 - //0x00006e50 LBB32_104 - 0x48, 0x01, 0xd7, //0x00006e50 addq %rdx, %rdi - 0x48, 0x89, 0xfb, //0x00006e53 movq %rdi, %rbx - //0x00006e56 LBB32_105 - 0x48, 0x29, 0xd3, //0x00006e56 subq %rdx, %rbx - 0x48, 0x89, 0xdf, //0x00006e59 movq %rbx, %rdi - //0x00006e5c LBB32_106 - 0x48, 0x39, 0xf7, //0x00006e5c cmpq %rsi, %rdi - 0x0f, 0x83, 0x77, 0x05, 0x00, 0x00, //0x00006e5f jae LBB32_234 - //0x00006e65 LBB32_107 - 0x48, 0x8d, 0x77, 0x01, //0x00006e65 leaq $1(%rdi), %rsi - 0x49, 0x89, 0x75, 0x00, //0x00006e69 movq %rsi, (%r13) - 0x80, 0x3c, 0x3a, 0x3a, //0x00006e6d cmpb $58, (%rdx,%rdi) - 0x0f, 0x85, 0x0c, 0x05, 0x00, 0x00, //0x00006e71 jne LBB32_233 - 0x4d, 0x85, 0xc0, //0x00006e77 testq %r8, %r8 - 0x0f, 0x85, 0xb9, 0x04, 0x00, 0x00, //0x00006e7a jne LBB32_220 - 0x4c, 0x89, 0xe7, //0x00006e80 movq %r12, %rdi - 0x4c, 0x89, 0xee, //0x00006e83 movq %r13, %rsi - 0xe8, 0xd5, 0xea, 0xff, 0xff, //0x00006e86 callq _skip_one_fast - 0x49, 0x8b, 0x14, 0x24, //0x00006e8b movq (%r12), %rdx - 0x49, 0x8b, 0x4c, 0x24, 0x08, //0x00006e8f movq $8(%r12), %rcx - 0x49, 0x8b, 0x45, 0x00, //0x00006e94 movq (%r13), %rax - 0x48, 0x39, 0xc8, //0x00006e98 cmpq %rcx, %rax - 0x0f, 0x83, 0x3f, 0x00, 0x00, 0x00, //0x00006e9b jae LBB32_114 - 0x8a, 0x1c, 0x02, //0x00006ea1 movb (%rdx,%rax), %bl - 0x80, 0xfb, 0x0d, //0x00006ea4 cmpb $13, %bl - 0x0f, 0x84, 0x33, 0x00, 0x00, 0x00, //0x00006ea7 je LBB32_114 - 0x80, 0xfb, 0x20, //0x00006ead cmpb $32, %bl - 0x0f, 0x84, 0x2a, 0x00, 0x00, 0x00, //0x00006eb0 je LBB32_114 - 0x80, 0xc3, 0xf7, //0x00006eb6 addb $-9, %bl - 0x80, 0xfb, 0x01, //0x00006eb9 cmpb $1, %bl - 0x0f, 0x86, 0x1e, 0x00, 0x00, 0x00, //0x00006ebc jbe LBB32_114 - 0x48, 0x89, 0xc6, //0x00006ec2 movq %rax, %rsi - 0x49, 0xba, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00006ec5 movabsq $4294977024, %r10 - 0xe9, 0x11, 0x01, 0x00, 0x00, //0x00006ecf jmp LBB32_135 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00006ed4 .p2align 4, 0x90 - //0x00006ee0 LBB32_114 - 0x48, 0x8d, 0x70, 0x01, //0x00006ee0 leaq $1(%rax), %rsi - 0x48, 0x39, 0xce, //0x00006ee4 cmpq %rcx, %rsi - 0x49, 0xba, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00006ee7 movabsq $4294977024, %r10 - 0x0f, 0x83, 0x29, 0x00, 0x00, 0x00, //0x00006ef1 jae LBB32_118 - 0x8a, 0x1c, 0x32, //0x00006ef7 movb (%rdx,%rsi), %bl - 0x80, 0xfb, 0x0d, //0x00006efa cmpb $13, %bl - 0x0f, 0x84, 0x1d, 0x00, 0x00, 0x00, //0x00006efd je LBB32_118 - 0x80, 0xfb, 0x20, //0x00006f03 cmpb $32, %bl - 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x00006f06 je LBB32_118 - 0x80, 0xc3, 0xf7, //0x00006f0c addb $-9, %bl - 0x80, 0xfb, 0x01, //0x00006f0f cmpb $1, %bl - 0x0f, 0x87, 0xcd, 0x00, 0x00, 0x00, //0x00006f12 ja LBB32_135 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00006f18 .p2align 4, 0x90 - //0x00006f20 LBB32_118 - 0x48, 0x8d, 0x70, 0x02, //0x00006f20 leaq $2(%rax), %rsi - 0x48, 0x39, 0xce, //0x00006f24 cmpq %rcx, %rsi - 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00006f27 jae LBB32_122 - 0x8a, 0x1c, 0x32, //0x00006f2d movb (%rdx,%rsi), %bl - 0x80, 0xfb, 0x0d, //0x00006f30 cmpb $13, %bl - 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x00006f33 je LBB32_122 - 0x80, 0xfb, 0x20, //0x00006f39 cmpb $32, %bl - 0x0f, 0x84, 0x0e, 0x00, 0x00, 0x00, //0x00006f3c je LBB32_122 - 0x80, 0xc3, 0xf7, //0x00006f42 addb $-9, %bl - 0x80, 0xfb, 0x01, //0x00006f45 cmpb $1, %bl - 0x0f, 0x87, 0x97, 0x00, 0x00, 0x00, //0x00006f48 ja LBB32_135 - 0x90, 0x90, //0x00006f4e .p2align 4, 0x90 - //0x00006f50 LBB32_122 - 0x48, 0x8d, 0x70, 0x03, //0x00006f50 leaq $3(%rax), %rsi - 0x48, 0x39, 0xce, //0x00006f54 cmpq %rcx, %rsi - 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00006f57 jae LBB32_126 - 0x8a, 0x1c, 0x32, //0x00006f5d movb (%rdx,%rsi), %bl - 0x80, 0xfb, 0x0d, //0x00006f60 cmpb $13, %bl - 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x00006f63 je LBB32_126 - 0x80, 0xfb, 0x20, //0x00006f69 cmpb $32, %bl - 0x0f, 0x84, 0x0e, 0x00, 0x00, 0x00, //0x00006f6c je LBB32_126 - 0x80, 0xc3, 0xf7, //0x00006f72 addb $-9, %bl - 0x80, 0xfb, 0x01, //0x00006f75 cmpb $1, %bl - 0x0f, 0x87, 0x67, 0x00, 0x00, 0x00, //0x00006f78 ja LBB32_135 - 0x90, 0x90, //0x00006f7e .p2align 4, 0x90 - //0x00006f80 LBB32_126 - 0x48, 0x8d, 0x70, 0x04, //0x00006f80 leaq $4(%rax), %rsi - 0x48, 0x39, 0xf1, //0x00006f84 cmpq %rsi, %rcx - 0x0f, 0x86, 0xf6, 0x03, 0x00, 0x00, //0x00006f87 jbe LBB32_233 - 0x48, 0x39, 0xf1, //0x00006f8d cmpq %rsi, %rcx - 0x0f, 0x84, 0x3a, 0x00, 0x00, 0x00, //0x00006f90 je LBB32_132 - 0x48, 0x8d, 0x3c, 0x0a, //0x00006f96 leaq (%rdx,%rcx), %rdi - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00006f9a .p2align 4, 0x90 - //0x00006fa0 LBB32_129 - 0x0f, 0xbe, 0x1c, 0x32, //0x00006fa0 movsbl (%rdx,%rsi), %ebx - 0x83, 0xfb, 0x20, //0x00006fa4 cmpl $32, %ebx - 0x0f, 0x87, 0x2f, 0x00, 0x00, 0x00, //0x00006fa7 ja LBB32_134 - 0x49, 0x0f, 0xa3, 0xda, //0x00006fad btq %rbx, %r10 - 0x0f, 0x83, 0x25, 0x00, 0x00, 0x00, //0x00006fb1 jae LBB32_134 - 0x48, 0x83, 0xc6, 0x01, //0x00006fb7 addq $1, %rsi - 0x48, 0x39, 0xf1, //0x00006fbb cmpq %rsi, %rcx - 0x0f, 0x85, 0xdc, 0xff, 0xff, 0xff, //0x00006fbe jne LBB32_129 - 0xe9, 0x0d, 0x00, 0x00, 0x00, //0x00006fc4 jmp LBB32_133 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00006fc9 .p2align 4, 0x90 - //0x00006fd0 LBB32_132 - 0x48, 0x01, 0xd6, //0x00006fd0 addq %rdx, %rsi - 0x48, 0x89, 0xf7, //0x00006fd3 movq %rsi, %rdi - //0x00006fd6 LBB32_133 - 0x48, 0x29, 0xd7, //0x00006fd6 subq %rdx, %rdi - 0x48, 0x89, 0xfe, //0x00006fd9 movq %rdi, %rsi - //0x00006fdc LBB32_134 - 0x48, 0x39, 0xce, //0x00006fdc cmpq %rcx, %rsi - 0x0f, 0x83, 0xf7, 0x03, 0x00, 0x00, //0x00006fdf jae LBB32_234 - //0x00006fe5 LBB32_135 - 0x48, 0x8d, 0x46, 0x01, //0x00006fe5 leaq $1(%rsi), %rax - 0x49, 0x89, 0x45, 0x00, //0x00006fe9 movq %rax, (%r13) - 0x8a, 0x0c, 0x32, //0x00006fed movb (%rdx,%rsi), %cl - 0x80, 0xf9, 0x2c, //0x00006ff0 cmpb $44, %cl - 0x0f, 0x84, 0x21, 0xf9, 0xff, 0xff, //0x00006ff3 je LBB32_34 - 0xe9, 0xaa, 0x03, 0x00, 0x00, //0x00006ff9 jmp LBB32_225 - 0x90, 0x90, //0x00006ffe .p2align 4, 0x90 - //0x00007000 LBB32_161 - 0x40, 0x80, 0xff, 0x5b, //0x00007000 cmpb $91, %dil - 0x0f, 0x85, 0xd2, 0x03, 0x00, 0x00, //0x00007004 jne LBB32_234 - 0x49, 0x8b, 0x71, 0x08, //0x0000700a movq $8(%r9), %rsi - 0x4c, 0x8b, 0x36, //0x0000700e movq (%rsi), %r14 - 0x4d, 0x85, 0xf6, //0x00007011 testq %r14, %r14 - 0x0f, 0x88, 0xab, 0x03, 0x00, 0x00, //0x00007014 js LBB32_228 - 0x49, 0x8b, 0x4c, 0x24, 0x08, //0x0000701a movq $8(%r12), %rcx - 0x48, 0x39, 0xc8, //0x0000701f cmpq %rcx, %rax - 0x0f, 0x83, 0x38, 0x00, 0x00, 0x00, //0x00007022 jae LBB32_168 - 0x40, 0x8a, 0x34, 0x02, //0x00007028 movb (%rdx,%rax), %sil - 0x40, 0x80, 0xfe, 0x0d, //0x0000702c cmpb $13, %sil - 0x0f, 0x84, 0x2a, 0x00, 0x00, 0x00, //0x00007030 je LBB32_168 - 0x40, 0x80, 0xfe, 0x20, //0x00007036 cmpb $32, %sil - 0x0f, 0x84, 0x20, 0x00, 0x00, 0x00, //0x0000703a je LBB32_168 - 0x40, 0x80, 0xc6, 0xf7, //0x00007040 addb $-9, %sil - 0x40, 0x80, 0xfe, 0x01, //0x00007044 cmpb $1, %sil - 0x0f, 0x86, 0x12, 0x00, 0x00, 0x00, //0x00007048 jbe LBB32_168 - 0x48, 0x89, 0xc6, //0x0000704e movq %rax, %rsi - 0xe9, 0x30, 0x01, 0x00, 0x00, //0x00007051 jmp LBB32_190 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007056 .p2align 4, 0x90 - //0x00007060 LBB32_168 - 0x48, 0x8d, 0x70, 0x01, //0x00007060 leaq $1(%rax), %rsi - 0x48, 0x39, 0xce, //0x00007064 cmpq %rcx, %rsi - 0x0f, 0x83, 0x33, 0x00, 0x00, 0x00, //0x00007067 jae LBB32_172 - 0x40, 0x8a, 0x3c, 0x32, //0x0000706d movb (%rdx,%rsi), %dil - 0x40, 0x80, 0xff, 0x0d, //0x00007071 cmpb $13, %dil - 0x0f, 0x84, 0x25, 0x00, 0x00, 0x00, //0x00007075 je LBB32_172 - 0x40, 0x80, 0xff, 0x20, //0x0000707b cmpb $32, %dil - 0x0f, 0x84, 0x1b, 0x00, 0x00, 0x00, //0x0000707f je LBB32_172 - 0x40, 0x80, 0xc7, 0xf7, //0x00007085 addb $-9, %dil - 0x40, 0x80, 0xff, 0x01, //0x00007089 cmpb $1, %dil - 0x0f, 0x87, 0xf3, 0x00, 0x00, 0x00, //0x0000708d ja LBB32_190 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007093 .p2align 4, 0x90 - //0x000070a0 LBB32_172 - 0x48, 0x8d, 0x70, 0x02, //0x000070a0 leaq $2(%rax), %rsi - 0x48, 0x39, 0xce, //0x000070a4 cmpq %rcx, %rsi - 0x0f, 0x83, 0x33, 0x00, 0x00, 0x00, //0x000070a7 jae LBB32_176 - 0x40, 0x8a, 0x3c, 0x32, //0x000070ad movb (%rdx,%rsi), %dil - 0x40, 0x80, 0xff, 0x0d, //0x000070b1 cmpb $13, %dil - 0x0f, 0x84, 0x25, 0x00, 0x00, 0x00, //0x000070b5 je LBB32_176 - 0x40, 0x80, 0xff, 0x20, //0x000070bb cmpb $32, %dil - 0x0f, 0x84, 0x1b, 0x00, 0x00, 0x00, //0x000070bf je LBB32_176 - 0x40, 0x80, 0xc7, 0xf7, //0x000070c5 addb $-9, %dil - 0x40, 0x80, 0xff, 0x01, //0x000070c9 cmpb $1, %dil - 0x0f, 0x87, 0xb3, 0x00, 0x00, 0x00, //0x000070cd ja LBB32_190 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000070d3 .p2align 4, 0x90 - //0x000070e0 LBB32_176 - 0x48, 0x8d, 0x70, 0x03, //0x000070e0 leaq $3(%rax), %rsi - 0x48, 0x39, 0xce, //0x000070e4 cmpq %rcx, %rsi - 0x0f, 0x83, 0x33, 0x00, 0x00, 0x00, //0x000070e7 jae LBB32_180 - 0x40, 0x8a, 0x3c, 0x32, //0x000070ed movb (%rdx,%rsi), %dil - 0x40, 0x80, 0xff, 0x0d, //0x000070f1 cmpb $13, %dil - 0x0f, 0x84, 0x25, 0x00, 0x00, 0x00, //0x000070f5 je LBB32_180 - 0x40, 0x80, 0xff, 0x20, //0x000070fb cmpb $32, %dil - 0x0f, 0x84, 0x1b, 0x00, 0x00, 0x00, //0x000070ff je LBB32_180 - 0x40, 0x80, 0xc7, 0xf7, //0x00007105 addb $-9, %dil - 0x40, 0x80, 0xff, 0x01, //0x00007109 cmpb $1, %dil - 0x0f, 0x87, 0x73, 0x00, 0x00, 0x00, //0x0000710d ja LBB32_190 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007113 .p2align 4, 0x90 - //0x00007120 LBB32_180 - 0x48, 0x8d, 0x70, 0x04, //0x00007120 leaq $4(%rax), %rsi - 0x48, 0x39, 0xf1, //0x00007124 cmpq %rsi, %rcx - 0x0f, 0x86, 0x3c, 0x00, 0x00, 0x00, //0x00007127 jbe LBB32_186 - 0x48, 0x39, 0xf1, //0x0000712d cmpq %rsi, %rcx - 0x0f, 0x84, 0x3b, 0x00, 0x00, 0x00, //0x00007130 je LBB32_187 - 0x48, 0x8d, 0x3c, 0x0a, //0x00007136 leaq (%rdx,%rcx), %rdi - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000713a .p2align 4, 0x90 - //0x00007140 LBB32_183 - 0x0f, 0xbe, 0x1c, 0x32, //0x00007140 movsbl (%rdx,%rsi), %ebx - 0x83, 0xfb, 0x20, //0x00007144 cmpl $32, %ebx - 0x0f, 0x87, 0x30, 0x00, 0x00, 0x00, //0x00007147 ja LBB32_189 - 0x49, 0x0f, 0xa3, 0xda, //0x0000714d btq %rbx, %r10 - 0x0f, 0x83, 0x26, 0x00, 0x00, 0x00, //0x00007151 jae LBB32_189 - 0x48, 0x83, 0xc6, 0x01, //0x00007157 addq $1, %rsi - 0x48, 0x39, 0xf1, //0x0000715b cmpq %rsi, %rcx - 0x0f, 0x85, 0xdc, 0xff, 0xff, 0xff, //0x0000715e jne LBB32_183 - 0xe9, 0x0e, 0x00, 0x00, 0x00, //0x00007164 jmp LBB32_188 - //0x00007169 LBB32_186 - 0x48, 0x89, 0xf0, //0x00007169 movq %rsi, %rax - 0xe9, 0x27, 0x00, 0x00, 0x00, //0x0000716c jmp LBB32_191 - //0x00007171 LBB32_187 - 0x48, 0x01, 0xd6, //0x00007171 addq %rdx, %rsi - 0x48, 0x89, 0xf7, //0x00007174 movq %rsi, %rdi - //0x00007177 LBB32_188 - 0x48, 0x29, 0xd7, //0x00007177 subq %rdx, %rdi - 0x48, 0x89, 0xfe, //0x0000717a movq %rdi, %rsi - //0x0000717d LBB32_189 - 0x48, 0x39, 0xce, //0x0000717d cmpq %rcx, %rsi - 0x0f, 0x83, 0x12, 0x00, 0x00, 0x00, //0x00007180 jae LBB32_191 - //0x00007186 LBB32_190 - 0x48, 0x8d, 0x46, 0x01, //0x00007186 leaq $1(%rsi), %rax - 0x49, 0x89, 0x45, 0x00, //0x0000718a movq %rax, (%r13) - 0x80, 0x3c, 0x32, 0x5d, //0x0000718e cmpb $93, (%rdx,%rsi) - 0x0f, 0x84, 0x19, 0x02, 0x00, 0x00, //0x00007192 je LBB32_226 - //0x00007198 LBB32_191 - 0x48, 0x83, 0xc0, 0xff, //0x00007198 addq $-1, %rax - 0x49, 0x89, 0x45, 0x00, //0x0000719c movq %rax, (%r13) - 0x48, 0x89, 0xc6, //0x000071a0 movq %rax, %rsi - 0x4d, 0x85, 0xf6, //0x000071a3 testq %r14, %r14 - 0x0f, 0x8e, 0x8d, 0x01, 0x00, 0x00, //0x000071a6 jle LBB32_220 - 0x90, 0x90, 0x90, 0x90, //0x000071ac .p2align 4, 0x90 - //0x000071b0 LBB32_192 - 0x4c, 0x89, 0xe7, //0x000071b0 movq %r12, %rdi - 0x4c, 0x89, 0xee, //0x000071b3 movq %r13, %rsi - 0xe8, 0xa5, 0xe7, 0xff, 0xff, //0x000071b6 callq _skip_one_fast - 0x49, 0x8b, 0x14, 0x24, //0x000071bb movq (%r12), %rdx - 0x49, 0x8b, 0x4c, 0x24, 0x08, //0x000071bf movq $8(%r12), %rcx - 0x49, 0x8b, 0x45, 0x00, //0x000071c4 movq (%r13), %rax - 0x48, 0x39, 0xc8, //0x000071c8 cmpq %rcx, %rax - 0x0f, 0x83, 0x3f, 0x00, 0x00, 0x00, //0x000071cb jae LBB32_197 - 0x8a, 0x1c, 0x02, //0x000071d1 movb (%rdx,%rax), %bl - 0x80, 0xfb, 0x0d, //0x000071d4 cmpb $13, %bl - 0x0f, 0x84, 0x33, 0x00, 0x00, 0x00, //0x000071d7 je LBB32_197 - 0x80, 0xfb, 0x20, //0x000071dd cmpb $32, %bl - 0x0f, 0x84, 0x2a, 0x00, 0x00, 0x00, //0x000071e0 je LBB32_197 - 0x80, 0xc3, 0xf7, //0x000071e6 addb $-9, %bl - 0x80, 0xfb, 0x01, //0x000071e9 cmpb $1, %bl - 0x0f, 0x86, 0x1e, 0x00, 0x00, 0x00, //0x000071ec jbe LBB32_197 - 0x48, 0x89, 0xc7, //0x000071f2 movq %rax, %rdi - 0x49, 0xba, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x000071f5 movabsq $4294977024, %r10 - 0xe9, 0x11, 0x01, 0x00, 0x00, //0x000071ff jmp LBB32_218 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007204 .p2align 4, 0x90 - //0x00007210 LBB32_197 - 0x48, 0x8d, 0x78, 0x01, //0x00007210 leaq $1(%rax), %rdi - 0x48, 0x39, 0xcf, //0x00007214 cmpq %rcx, %rdi - 0x49, 0xba, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00007217 movabsq $4294977024, %r10 - 0x0f, 0x83, 0x29, 0x00, 0x00, 0x00, //0x00007221 jae LBB32_201 - 0x8a, 0x1c, 0x3a, //0x00007227 movb (%rdx,%rdi), %bl - 0x80, 0xfb, 0x0d, //0x0000722a cmpb $13, %bl - 0x0f, 0x84, 0x1d, 0x00, 0x00, 0x00, //0x0000722d je LBB32_201 - 0x80, 0xfb, 0x20, //0x00007233 cmpb $32, %bl - 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x00007236 je LBB32_201 - 0x80, 0xc3, 0xf7, //0x0000723c addb $-9, %bl - 0x80, 0xfb, 0x01, //0x0000723f cmpb $1, %bl - 0x0f, 0x87, 0xcd, 0x00, 0x00, 0x00, //0x00007242 ja LBB32_218 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007248 .p2align 4, 0x90 - //0x00007250 LBB32_201 - 0x48, 0x8d, 0x78, 0x02, //0x00007250 leaq $2(%rax), %rdi - 0x48, 0x39, 0xcf, //0x00007254 cmpq %rcx, %rdi - 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00007257 jae LBB32_205 - 0x8a, 0x1c, 0x3a, //0x0000725d movb (%rdx,%rdi), %bl - 0x80, 0xfb, 0x0d, //0x00007260 cmpb $13, %bl - 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x00007263 je LBB32_205 - 0x80, 0xfb, 0x20, //0x00007269 cmpb $32, %bl - 0x0f, 0x84, 0x0e, 0x00, 0x00, 0x00, //0x0000726c je LBB32_205 - 0x80, 0xc3, 0xf7, //0x00007272 addb $-9, %bl - 0x80, 0xfb, 0x01, //0x00007275 cmpb $1, %bl - 0x0f, 0x87, 0x97, 0x00, 0x00, 0x00, //0x00007278 ja LBB32_218 - 0x90, 0x90, //0x0000727e .p2align 4, 0x90 - //0x00007280 LBB32_205 - 0x48, 0x8d, 0x78, 0x03, //0x00007280 leaq $3(%rax), %rdi - 0x48, 0x39, 0xcf, //0x00007284 cmpq %rcx, %rdi - 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00007287 jae LBB32_209 - 0x8a, 0x1c, 0x3a, //0x0000728d movb (%rdx,%rdi), %bl - 0x80, 0xfb, 0x0d, //0x00007290 cmpb $13, %bl - 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x00007293 je LBB32_209 - 0x80, 0xfb, 0x20, //0x00007299 cmpb $32, %bl - 0x0f, 0x84, 0x0e, 0x00, 0x00, 0x00, //0x0000729c je LBB32_209 - 0x80, 0xc3, 0xf7, //0x000072a2 addb $-9, %bl - 0x80, 0xfb, 0x01, //0x000072a5 cmpb $1, %bl - 0x0f, 0x87, 0x67, 0x00, 0x00, 0x00, //0x000072a8 ja LBB32_218 - 0x90, 0x90, //0x000072ae .p2align 4, 0x90 - //0x000072b0 LBB32_209 - 0x48, 0x8d, 0x78, 0x04, //0x000072b0 leaq $4(%rax), %rdi - 0x48, 0x39, 0xf9, //0x000072b4 cmpq %rdi, %rcx - 0x0f, 0x86, 0xe3, 0x00, 0x00, 0x00, //0x000072b7 jbe LBB32_232 - 0x48, 0x39, 0xf9, //0x000072bd cmpq %rdi, %rcx - 0x0f, 0x84, 0x3a, 0x00, 0x00, 0x00, //0x000072c0 je LBB32_215 - 0x48, 0x8d, 0x34, 0x0a, //0x000072c6 leaq (%rdx,%rcx), %rsi - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000072ca .p2align 4, 0x90 - //0x000072d0 LBB32_212 - 0x0f, 0xbe, 0x1c, 0x3a, //0x000072d0 movsbl (%rdx,%rdi), %ebx - 0x83, 0xfb, 0x20, //0x000072d4 cmpl $32, %ebx - 0x0f, 0x87, 0x2f, 0x00, 0x00, 0x00, //0x000072d7 ja LBB32_217 - 0x49, 0x0f, 0xa3, 0xda, //0x000072dd btq %rbx, %r10 - 0x0f, 0x83, 0x25, 0x00, 0x00, 0x00, //0x000072e1 jae LBB32_217 - 0x48, 0x83, 0xc7, 0x01, //0x000072e7 addq $1, %rdi - 0x48, 0x39, 0xf9, //0x000072eb cmpq %rdi, %rcx - 0x0f, 0x85, 0xdc, 0xff, 0xff, 0xff, //0x000072ee jne LBB32_212 - 0xe9, 0x0d, 0x00, 0x00, 0x00, //0x000072f4 jmp LBB32_216 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000072f9 .p2align 4, 0x90 - //0x00007300 LBB32_215 - 0x48, 0x01, 0xd7, //0x00007300 addq %rdx, %rdi - 0x48, 0x89, 0xfe, //0x00007303 movq %rdi, %rsi - //0x00007306 LBB32_216 - 0x48, 0x29, 0xd6, //0x00007306 subq %rdx, %rsi - 0x48, 0x89, 0xf7, //0x00007309 movq %rsi, %rdi - //0x0000730c LBB32_217 - 0x48, 0x39, 0xcf, //0x0000730c cmpq %rcx, %rdi - 0x0f, 0x83, 0xc7, 0x00, 0x00, 0x00, //0x0000730f jae LBB32_234 - //0x00007315 LBB32_218 - 0x48, 0x8d, 0x77, 0x01, //0x00007315 leaq $1(%rdi), %rsi - 0x49, 0x89, 0x75, 0x00, //0x00007319 movq %rsi, (%r13) - 0x8a, 0x04, 0x3a, //0x0000731d movb (%rdx,%rdi), %al - 0x3c, 0x2c, //0x00007320 cmpb $44, %al - 0x0f, 0x85, 0x4b, 0x00, 0x00, 0x00, //0x00007322 jne LBB32_222 - 0x49, 0x8d, 0x46, 0xff, //0x00007328 leaq $-1(%r14), %rax - 0x49, 0x83, 0xfe, 0x02, //0x0000732c cmpq $2, %r14 - 0x49, 0x89, 0xc6, //0x00007330 movq %rax, %r14 - 0x0f, 0x8d, 0x77, 0xfe, 0xff, 0xff, //0x00007333 jge LBB32_192 - //0x00007339 LBB32_220 - 0x4c, 0x8b, 0x4d, 0xb8, //0x00007339 movq $-72(%rbp), %r9 - 0x49, 0x83, 0xc1, 0x10, //0x0000733d addq $16, %r9 - 0x4c, 0x3b, 0x4d, 0xa8, //0x00007341 cmpq $-88(%rbp), %r9 - 0x48, 0x8b, 0x4d, 0xa0, //0x00007345 movq $-96(%rbp), %rcx - 0x0f, 0x85, 0x29, 0xf4, 0xff, 0xff, //0x00007349 jne LBB32_2 - //0x0000734f LBB32_221 - 0xc5, 0xf9, 0x6f, 0x05, 0xc9, 0xf3, 0xff, 0xff, //0x0000734f vmovdqa $-3127(%rip), %xmm0 /* LCPI32_0+0(%rip) */ - 0xc5, 0xfa, 0x7f, 0x01, //0x00007357 vmovdqu %xmm0, (%rcx) - 0x48, 0x89, 0xcf, //0x0000735b movq %rcx, %rdi - 0x4c, 0x89, 0xe6, //0x0000735e movq %r12, %rsi - 0x4c, 0x89, 0xea, //0x00007361 movq %r13, %rdx - 0x31, 0xc9, //0x00007364 xorl %ecx, %ecx - 0xe8, 0x15, 0xd6, 0xff, 0xff, //0x00007366 callq _fsm_exec - 0x49, 0x89, 0xc0, //0x0000736b movq %rax, %r8 - 0xe9, 0x78, 0x00, 0x00, 0x00, //0x0000736e jmp LBB32_235 - //0x00007373 LBB32_222 - 0x3c, 0x5d, //0x00007373 cmpb $93, %al - 0x0f, 0x85, 0x08, 0x00, 0x00, 0x00, //0x00007375 jne LBB32_233 - 0x48, 0x89, 0xf0, //0x0000737b movq %rsi, %rax - 0xe9, 0x2e, 0x00, 0x00, 0x00, //0x0000737e jmp LBB32_226 - //0x00007383 LBB32_233 - 0x48, 0x89, 0xf0, //0x00007383 movq %rsi, %rax - 0xe9, 0x51, 0x00, 0x00, 0x00, //0x00007386 jmp LBB32_234 - //0x0000738b LBB32_224 - 0x4c, 0x89, 0xe8, //0x0000738b movq %r13, %rax - 0x80, 0xf9, 0x7d, //0x0000738e cmpb $125, %cl - 0x4c, 0x8b, 0x6d, 0xd0, //0x00007391 movq $-48(%rbp), %r13 - 0x0f, 0x85, 0x41, 0x00, 0x00, 0x00, //0x00007395 jne LBB32_234 - 0xe9, 0x11, 0x00, 0x00, 0x00, //0x0000739b jmp LBB32_226 - //0x000073a0 LBB32_232 - 0x48, 0x89, 0xf8, //0x000073a0 movq %rdi, %rax - 0xe9, 0x34, 0x00, 0x00, 0x00, //0x000073a3 jmp LBB32_234 - //0x000073a8 LBB32_225 - 0x80, 0xf9, 0x7d, //0x000073a8 cmpb $125, %cl - 0x0f, 0x85, 0x2b, 0x00, 0x00, 0x00, //0x000073ab jne LBB32_234 - //0x000073b1 LBB32_226 - 0x48, 0x83, 0xc0, 0xff, //0x000073b1 addq $-1, %rax - 0x49, 0x89, 0x45, 0x00, //0x000073b5 movq %rax, (%r13) - 0x49, 0xc7, 0xc0, 0xdf, 0xff, 0xff, 0xff, //0x000073b9 movq $-33, %r8 - 0xe9, 0x26, 0x00, 0x00, 0x00, //0x000073c0 jmp LBB32_235 - //0x000073c5 LBB32_228 - 0x48, 0x83, 0xc0, 0xff, //0x000073c5 addq $-1, %rax - 0x49, 0x89, 0x45, 0x00, //0x000073c9 movq %rax, (%r13) - 0x49, 0xc7, 0xc0, 0xde, 0xff, 0xff, 0xff, //0x000073cd movq $-34, %r8 - 0xe9, 0x12, 0x00, 0x00, 0x00, //0x000073d4 jmp LBB32_235 - //0x000073d9 LBB32_231 - 0x4c, 0x89, 0xf8, //0x000073d9 movq %r15, %rax - //0x000073dc LBB32_234 - 0x48, 0x83, 0xc0, 0xff, //0x000073dc addq $-1, %rax - 0x49, 0x89, 0x45, 0x00, //0x000073e0 movq %rax, (%r13) - 0x49, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x000073e4 movq $-2, %r8 - //0x000073eb LBB32_235 - 0x4c, 0x89, 0xc0, //0x000073eb movq %r8, %rax - 0x48, 0x83, 0xc4, 0x38, //0x000073ee addq $56, %rsp - 0x5b, //0x000073f2 popq %rbx - 0x41, 0x5c, //0x000073f3 popq %r12 - 0x41, 0x5d, //0x000073f5 popq %r13 - 0x41, 0x5e, //0x000073f7 popq %r14 - 0x41, 0x5f, //0x000073f9 popq %r15 - 0x5d, //0x000073fb popq %rbp - 0xc3, //0x000073fc retq - //0x000073fd LBB32_236 - 0x49, 0x8b, 0x44, 0x24, 0x08, //0x000073fd movq $8(%r12), %rax - 0x48, 0x8b, 0x4d, 0xd0, //0x00007402 movq $-48(%rbp), %rcx - 0x48, 0x89, 0x01, //0x00007406 movq %rax, (%rcx) - 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00007409 movq $-1, %r8 - 0xe9, 0xd6, 0xff, 0xff, 0xff, //0x00007410 jmp LBB32_235 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007415 .p2align 4, 0x90 - //0x00007420 _validate_utf8 - 0x55, //0x00007420 pushq %rbp - 0x48, 0x89, 0xe5, //0x00007421 movq %rsp, %rbp - 0x41, 0x57, //0x00007424 pushq %r15 - 0x41, 0x56, //0x00007426 pushq %r14 - 0x41, 0x54, //0x00007428 pushq %r12 - 0x53, //0x0000742a pushq %rbx - 0x50, //0x0000742b pushq %rax - 0x4c, 0x8b, 0x17, //0x0000742c movq (%rdi), %r10 - 0x4c, 0x8b, 0x5f, 0x08, //0x0000742f movq $8(%rdi), %r11 - 0x48, 0x8b, 0x0e, //0x00007433 movq (%rsi), %rcx - 0x4c, 0x01, 0xd1, //0x00007436 addq %r10, %rcx - 0x4f, 0x8d, 0x04, 0x1a, //0x00007439 leaq (%r10,%r11), %r8 - 0x49, 0x83, 0xc0, 0xfd, //0x0000743d addq $-3, %r8 - 0xe9, 0x0d, 0x00, 0x00, 0x00, //0x00007441 jmp LBB33_1 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007446 .p2align 4, 0x90 - //0x00007450 LBB33_19 - 0x48, 0x01, 0xd9, //0x00007450 addq %rbx, %rcx - //0x00007453 LBB33_1 - 0x4c, 0x39, 0xc1, //0x00007453 cmpq %r8, %rcx - 0x0f, 0x83, 0xe1, 0x00, 0x00, 0x00, //0x00007456 jae LBB33_2 - 0xbb, 0x01, 0x00, 0x00, 0x00, //0x0000745c movl $1, %ebx - 0x80, 0x39, 0x00, //0x00007461 cmpb $0, (%rcx) - 0x0f, 0x89, 0xe6, 0xff, 0xff, 0xff, //0x00007464 jns LBB33_19 - 0x8b, 0x01, //0x0000746a movl (%rcx), %eax - 0x89, 0xc7, //0x0000746c movl %eax, %edi - 0x81, 0xe7, 0xf0, 0xc0, 0xc0, 0x00, //0x0000746e andl $12632304, %edi - 0x81, 0xff, 0xe0, 0x80, 0x80, 0x00, //0x00007474 cmpl $8421600, %edi - 0x0f, 0x85, 0x30, 0x00, 0x00, 0x00, //0x0000747a jne LBB33_10 - 0x89, 0xc7, //0x00007480 movl %eax, %edi - 0x81, 0xe7, 0x0f, 0x20, 0x00, 0x00, //0x00007482 andl $8207, %edi - 0x81, 0xff, 0x0d, 0x20, 0x00, 0x00, //0x00007488 cmpl $8205, %edi - 0x0f, 0x84, 0x1c, 0x00, 0x00, 0x00, //0x0000748e je LBB33_10 - 0xbb, 0x03, 0x00, 0x00, 0x00, //0x00007494 movl $3, %ebx - 0x85, 0xff, //0x00007499 testl %edi, %edi - 0x0f, 0x85, 0xaf, 0xff, 0xff, 0xff, //0x0000749b jne LBB33_19 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000074a1 .p2align 4, 0x90 - //0x000074b0 LBB33_10 - 0x89, 0xc7, //0x000074b0 movl %eax, %edi - 0x81, 0xe7, 0xe0, 0xc0, 0x00, 0x00, //0x000074b2 andl $49376, %edi - 0x81, 0xff, 0xc0, 0x80, 0x00, 0x00, //0x000074b8 cmpl $32960, %edi - 0x0f, 0x85, 0x10, 0x00, 0x00, 0x00, //0x000074be jne LBB33_12 - 0x89, 0xc7, //0x000074c4 movl %eax, %edi - 0xbb, 0x02, 0x00, 0x00, 0x00, //0x000074c6 movl $2, %ebx - 0x83, 0xe7, 0x1e, //0x000074cb andl $30, %edi - 0x0f, 0x85, 0x7c, 0xff, 0xff, 0xff, //0x000074ce jne LBB33_19 - //0x000074d4 LBB33_12 - 0x89, 0xc7, //0x000074d4 movl %eax, %edi - 0x81, 0xe7, 0xf8, 0xc0, 0xc0, 0xc0, //0x000074d6 andl $-1061109512, %edi - 0x81, 0xff, 0xf0, 0x80, 0x80, 0x80, //0x000074dc cmpl $-2139062032, %edi - 0x0f, 0x85, 0x26, 0x00, 0x00, 0x00, //0x000074e2 jne LBB33_16 - 0x89, 0xc7, //0x000074e8 movl %eax, %edi - 0x81, 0xe7, 0x07, 0x30, 0x00, 0x00, //0x000074ea andl $12295, %edi - 0x0f, 0x84, 0x18, 0x00, 0x00, 0x00, //0x000074f0 je LBB33_16 - 0xbb, 0x04, 0x00, 0x00, 0x00, //0x000074f6 movl $4, %ebx - 0xa8, 0x04, //0x000074fb testb $4, %al - 0x0f, 0x84, 0x4d, 0xff, 0xff, 0xff, //0x000074fd je LBB33_19 - 0x25, 0x03, 0x30, 0x00, 0x00, //0x00007503 andl $12291, %eax - 0x0f, 0x84, 0x42, 0xff, 0xff, 0xff, //0x00007508 je LBB33_19 - //0x0000750e LBB33_16 - 0x48, 0x89, 0xcf, //0x0000750e movq %rcx, %rdi - 0x4c, 0x29, 0xd7, //0x00007511 subq %r10, %rdi - 0x48, 0x8b, 0x1a, //0x00007514 movq (%rdx), %rbx - 0x48, 0x81, 0xfb, 0x00, 0x10, 0x00, 0x00, //0x00007517 cmpq $4096, %rbx - 0x0f, 0x83, 0x97, 0x01, 0x00, 0x00, //0x0000751e jae LBB33_17 - 0x48, 0x63, 0xc7, //0x00007524 movslq %edi, %rax - 0x48, 0x8d, 0x7b, 0x01, //0x00007527 leaq $1(%rbx), %rdi - 0x48, 0x89, 0x3a, //0x0000752b movq %rdi, (%rdx) - 0x48, 0x89, 0x44, 0xda, 0x08, //0x0000752e movq %rax, $8(%rdx,%rbx,8) - 0xbb, 0x01, 0x00, 0x00, 0x00, //0x00007533 movl $1, %ebx - 0xe9, 0x13, 0xff, 0xff, 0xff, //0x00007538 jmp LBB33_19 - //0x0000753d LBB33_2 - 0x4d, 0x01, 0xd3, //0x0000753d addq %r10, %r11 - 0x4c, 0x39, 0xd9, //0x00007540 cmpq %r11, %rcx - 0x0f, 0x83, 0x4e, 0x01, 0x00, 0x00, //0x00007543 jae LBB33_36 - 0x4c, 0x8d, 0x45, 0xdc, //0x00007549 leaq $-36(%rbp), %r8 - 0x4c, 0x8d, 0x4d, 0xda, //0x0000754d leaq $-38(%rbp), %r9 - 0xe9, 0x17, 0x00, 0x00, 0x00, //0x00007551 jmp LBB33_4 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007556 .p2align 4, 0x90 - //0x00007560 LBB33_5 - 0x48, 0x83, 0xc1, 0x01, //0x00007560 addq $1, %rcx - 0x4c, 0x39, 0xd9, //0x00007564 cmpq %r11, %rcx - 0x0f, 0x83, 0x2a, 0x01, 0x00, 0x00, //0x00007567 jae LBB33_36 - //0x0000756d LBB33_4 - 0x80, 0x39, 0x00, //0x0000756d cmpb $0, (%rcx) - 0x0f, 0x89, 0xea, 0xff, 0xff, 0xff, //0x00007570 jns LBB33_5 - 0xc6, 0x45, 0xdc, 0x00, //0x00007576 movb $0, $-36(%rbp) - 0xc6, 0x45, 0xda, 0x00, //0x0000757a movb $0, $-38(%rbp) - 0x4c, 0x89, 0xdb, //0x0000757e movq %r11, %rbx - 0x48, 0x29, 0xcb, //0x00007581 subq %rcx, %rbx - 0x48, 0x83, 0xfb, 0x02, //0x00007584 cmpq $2, %rbx - 0x0f, 0x82, 0x35, 0x00, 0x00, 0x00, //0x00007588 jb LBB33_21 - 0x44, 0x0f, 0xb6, 0x21, //0x0000758e movzbl (%rcx), %r12d - 0x44, 0x0f, 0xb6, 0x71, 0x01, //0x00007592 movzbl $1(%rcx), %r14d - 0x44, 0x88, 0x65, 0xdc, //0x00007597 movb %r12b, $-36(%rbp) - 0x4c, 0x8d, 0x79, 0x02, //0x0000759b leaq $2(%rcx), %r15 - 0x48, 0x83, 0xc3, 0xfe, //0x0000759f addq $-2, %rbx - 0x4c, 0x89, 0xcf, //0x000075a3 movq %r9, %rdi - 0x48, 0x85, 0xdb, //0x000075a6 testq %rbx, %rbx - 0x0f, 0x84, 0x29, 0x00, 0x00, 0x00, //0x000075a9 je LBB33_24 - //0x000075af LBB33_25 - 0x41, 0x0f, 0xb6, 0x07, //0x000075af movzbl (%r15), %eax - 0x88, 0x07, //0x000075b3 movb %al, (%rdi) - 0x44, 0x0f, 0xb6, 0x65, 0xdc, //0x000075b5 movzbl $-36(%rbp), %r12d - 0x0f, 0xb6, 0x7d, 0xda, //0x000075ba movzbl $-38(%rbp), %edi - 0xe9, 0x17, 0x00, 0x00, 0x00, //0x000075be jmp LBB33_26 - //0x000075c3 LBB33_21 - 0x45, 0x31, 0xe4, //0x000075c3 xorl %r12d, %r12d - 0x45, 0x31, 0xf6, //0x000075c6 xorl %r14d, %r14d - 0x4c, 0x89, 0xc7, //0x000075c9 movq %r8, %rdi - 0x49, 0x89, 0xcf, //0x000075cc movq %rcx, %r15 - 0x48, 0x85, 0xdb, //0x000075cf testq %rbx, %rbx - 0x0f, 0x85, 0xd7, 0xff, 0xff, 0xff, //0x000075d2 jne LBB33_25 - //0x000075d8 LBB33_24 - 0x31, 0xff, //0x000075d8 xorl %edi, %edi - //0x000075da LBB33_26 - 0x40, 0x0f, 0xb6, 0xc7, //0x000075da movzbl %dil, %eax - 0xc1, 0xe0, 0x10, //0x000075de shll $16, %eax - 0x41, 0x0f, 0xb6, 0xde, //0x000075e1 movzbl %r14b, %ebx - 0xc1, 0xe3, 0x08, //0x000075e5 shll $8, %ebx - 0x09, 0xc3, //0x000075e8 orl %eax, %ebx - 0x41, 0x0f, 0xb6, 0xfc, //0x000075ea movzbl %r12b, %edi - 0x09, 0xdf, //0x000075ee orl %ebx, %edi - 0x89, 0xf8, //0x000075f0 movl %edi, %eax - 0x25, 0xf0, 0xc0, 0xc0, 0x00, //0x000075f2 andl $12632304, %eax - 0x3d, 0xe0, 0x80, 0x80, 0x00, //0x000075f7 cmpl $8421600, %eax - 0x0f, 0x85, 0x2e, 0x00, 0x00, 0x00, //0x000075fc jne LBB33_29 - 0x89, 0xf8, //0x00007602 movl %edi, %eax - 0x25, 0x0f, 0x20, 0x00, 0x00, //0x00007604 andl $8207, %eax - 0x3d, 0x0d, 0x20, 0x00, 0x00, //0x00007609 cmpl $8205, %eax - 0x0f, 0x84, 0x1c, 0x00, 0x00, 0x00, //0x0000760e je LBB33_29 - 0xbb, 0x03, 0x00, 0x00, 0x00, //0x00007614 movl $3, %ebx - 0x85, 0xc0, //0x00007619 testl %eax, %eax - 0x0f, 0x85, 0x30, 0x00, 0x00, 0x00, //0x0000761b jne LBB33_34 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007621 .p2align 4, 0x90 - //0x00007630 LBB33_29 - 0x41, 0xf6, 0xc4, 0x1e, //0x00007630 testb $30, %r12b - 0x0f, 0x84, 0x28, 0x00, 0x00, 0x00, //0x00007634 je LBB33_31 - 0x81, 0xe7, 0xe0, 0xc0, 0x00, 0x00, //0x0000763a andl $49376, %edi - 0xbb, 0x02, 0x00, 0x00, 0x00, //0x00007640 movl $2, %ebx - 0x81, 0xff, 0xc0, 0x80, 0x00, 0x00, //0x00007645 cmpl $32960, %edi - 0x0f, 0x85, 0x11, 0x00, 0x00, 0x00, //0x0000764b jne LBB33_31 - //0x00007651 LBB33_34 - 0x48, 0x01, 0xd9, //0x00007651 addq %rbx, %rcx - 0x4c, 0x39, 0xd9, //0x00007654 cmpq %r11, %rcx - 0x0f, 0x82, 0x10, 0xff, 0xff, 0xff, //0x00007657 jb LBB33_4 - 0xe9, 0x35, 0x00, 0x00, 0x00, //0x0000765d jmp LBB33_36 - //0x00007662 LBB33_31 - 0x48, 0x89, 0xc8, //0x00007662 movq %rcx, %rax - 0x4c, 0x29, 0xd0, //0x00007665 subq %r10, %rax - 0x48, 0x8b, 0x3a, //0x00007668 movq (%rdx), %rdi - 0x48, 0x81, 0xff, 0x00, 0x10, 0x00, 0x00, //0x0000766b cmpq $4096, %rdi - 0x0f, 0x83, 0x34, 0x00, 0x00, 0x00, //0x00007672 jae LBB33_32 - 0x48, 0x98, //0x00007678 cltq - 0x48, 0x8d, 0x5f, 0x01, //0x0000767a leaq $1(%rdi), %rbx - 0x48, 0x89, 0x1a, //0x0000767e movq %rbx, (%rdx) - 0x48, 0x89, 0x44, 0xfa, 0x08, //0x00007681 movq %rax, $8(%rdx,%rdi,8) - 0xbb, 0x01, 0x00, 0x00, 0x00, //0x00007686 movl $1, %ebx - 0x48, 0x01, 0xd9, //0x0000768b addq %rbx, %rcx - 0x4c, 0x39, 0xd9, //0x0000768e cmpq %r11, %rcx - 0x0f, 0x82, 0xd6, 0xfe, 0xff, 0xff, //0x00007691 jb LBB33_4 - //0x00007697 LBB33_36 - 0x4c, 0x29, 0xd1, //0x00007697 subq %r10, %rcx - 0x48, 0x89, 0x0e, //0x0000769a movq %rcx, (%rsi) - 0x31, 0xc0, //0x0000769d xorl %eax, %eax - //0x0000769f LBB33_37 - 0x48, 0x83, 0xc4, 0x08, //0x0000769f addq $8, %rsp - 0x5b, //0x000076a3 popq %rbx - 0x41, 0x5c, //0x000076a4 popq %r12 - 0x41, 0x5e, //0x000076a6 popq %r14 - 0x41, 0x5f, //0x000076a8 popq %r15 - 0x5d, //0x000076aa popq %rbp - 0xc3, //0x000076ab retq - //0x000076ac LBB33_32 - 0x48, 0x89, 0x06, //0x000076ac movq %rax, (%rsi) - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000076af movq $-1, %rax - 0xe9, 0xe4, 0xff, 0xff, 0xff, //0x000076b6 jmp LBB33_37 - //0x000076bb LBB33_17 - 0x48, 0x89, 0x3e, //0x000076bb movq %rdi, (%rsi) - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000076be movq $-1, %rax - 0xe9, 0xd5, 0xff, 0xff, 0xff, //0x000076c5 jmp LBB33_37 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000076ca .p2align 4, 0x90 - //0x000076d0 _validate_utf8_fast - 0x55, //0x000076d0 pushq %rbp - 0x48, 0x89, 0xe5, //0x000076d1 movq %rsp, %rbp - 0x53, //0x000076d4 pushq %rbx - 0x50, //0x000076d5 pushq %rax - 0x4c, 0x8b, 0x17, //0x000076d6 movq (%rdi), %r10 - 0x4c, 0x8b, 0x5f, 0x08, //0x000076d9 movq $8(%rdi), %r11 - 0x4b, 0x8d, 0x34, 0x1a, //0x000076dd leaq (%r10,%r11), %rsi - 0x48, 0x83, 0xc6, 0xfd, //0x000076e1 addq $-3, %rsi - 0x4c, 0x89, 0xd0, //0x000076e5 movq %r10, %rax - 0x4c, 0x39, 0xd6, //0x000076e8 cmpq %r10, %rsi - 0x0f, 0x86, 0xdd, 0x00, 0x00, 0x00, //0x000076eb jbe LBB34_14 - 0x4c, 0x89, 0xd0, //0x000076f1 movq %r10, %rax - 0xe9, 0x13, 0x00, 0x00, 0x00, //0x000076f4 jmp LBB34_3 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000076f9 .p2align 4, 0x90 - //0x00007700 LBB34_2 - 0x48, 0x01, 0xd0, //0x00007700 addq %rdx, %rax - 0x48, 0x39, 0xf0, //0x00007703 cmpq %rsi, %rax - 0x0f, 0x83, 0xc2, 0x00, 0x00, 0x00, //0x00007706 jae LBB34_14 - //0x0000770c LBB34_3 - 0xba, 0x01, 0x00, 0x00, 0x00, //0x0000770c movl $1, %edx - 0x80, 0x38, 0x00, //0x00007711 cmpb $0, (%rax) - 0x0f, 0x89, 0xe6, 0xff, 0xff, 0xff, //0x00007714 jns LBB34_2 - 0x8b, 0x38, //0x0000771a movl (%rax), %edi - 0x89, 0xf9, //0x0000771c movl %edi, %ecx - 0x81, 0xe1, 0xf0, 0xc0, 0xc0, 0x00, //0x0000771e andl $12632304, %ecx - 0x81, 0xf9, 0xe0, 0x80, 0x80, 0x00, //0x00007724 cmpl $8421600, %ecx - 0x0f, 0x85, 0x30, 0x00, 0x00, 0x00, //0x0000772a jne LBB34_7 - 0x89, 0xf9, //0x00007730 movl %edi, %ecx - 0x81, 0xe1, 0x0f, 0x20, 0x00, 0x00, //0x00007732 andl $8207, %ecx - 0x81, 0xf9, 0x0d, 0x20, 0x00, 0x00, //0x00007738 cmpl $8205, %ecx - 0x0f, 0x84, 0x1c, 0x00, 0x00, 0x00, //0x0000773e je LBB34_7 - 0xba, 0x03, 0x00, 0x00, 0x00, //0x00007744 movl $3, %edx - 0x85, 0xc9, //0x00007749 testl %ecx, %ecx - 0x0f, 0x85, 0xaf, 0xff, 0xff, 0xff, //0x0000774b jne LBB34_2 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007751 .p2align 4, 0x90 - //0x00007760 LBB34_7 - 0x89, 0xf9, //0x00007760 movl %edi, %ecx - 0x81, 0xe1, 0xe0, 0xc0, 0x00, 0x00, //0x00007762 andl $49376, %ecx - 0x81, 0xf9, 0xc0, 0x80, 0x00, 0x00, //0x00007768 cmpl $32960, %ecx - 0x0f, 0x85, 0x10, 0x00, 0x00, 0x00, //0x0000776e jne LBB34_9 - 0x89, 0xf9, //0x00007774 movl %edi, %ecx - 0xba, 0x02, 0x00, 0x00, 0x00, //0x00007776 movl $2, %edx - 0x83, 0xe1, 0x1e, //0x0000777b andl $30, %ecx - 0x0f, 0x85, 0x7c, 0xff, 0xff, 0xff, //0x0000777e jne LBB34_2 - //0x00007784 LBB34_9 - 0x89, 0xf9, //0x00007784 movl %edi, %ecx - 0x81, 0xe1, 0xf8, 0xc0, 0xc0, 0xc0, //0x00007786 andl $-1061109512, %ecx - 0x81, 0xf9, 0xf0, 0x80, 0x80, 0x80, //0x0000778c cmpl $-2139062032, %ecx - 0x0f, 0x85, 0x29, 0x00, 0x00, 0x00, //0x00007792 jne LBB34_13 - 0x89, 0xf9, //0x00007798 movl %edi, %ecx - 0x81, 0xe1, 0x07, 0x30, 0x00, 0x00, //0x0000779a andl $12295, %ecx - 0x0f, 0x84, 0x1b, 0x00, 0x00, 0x00, //0x000077a0 je LBB34_13 - 0xba, 0x04, 0x00, 0x00, 0x00, //0x000077a6 movl $4, %edx - 0x40, 0xf6, 0xc7, 0x04, //0x000077ab testb $4, %dil - 0x0f, 0x84, 0x4b, 0xff, 0xff, 0xff, //0x000077af je LBB34_2 - 0x81, 0xe7, 0x03, 0x30, 0x00, 0x00, //0x000077b5 andl $12291, %edi - 0x0f, 0x84, 0x3f, 0xff, 0xff, 0xff, //0x000077bb je LBB34_2 - //0x000077c1 LBB34_13 - 0x48, 0xf7, 0xd0, //0x000077c1 notq %rax - 0x4c, 0x01, 0xd0, //0x000077c4 addq %r10, %rax - 0x48, 0x83, 0xc4, 0x08, //0x000077c7 addq $8, %rsp - 0x5b, //0x000077cb popq %rbx - 0x5d, //0x000077cc popq %rbp - 0xc3, //0x000077cd retq - //0x000077ce LBB34_14 - 0x4d, 0x01, 0xd3, //0x000077ce addq %r10, %r11 - 0x4c, 0x39, 0xd8, //0x000077d1 cmpq %r11, %rax - 0x0f, 0x83, 0x03, 0x01, 0x00, 0x00, //0x000077d4 jae LBB34_30 - 0x4c, 0x8d, 0x45, 0xf4, //0x000077da leaq $-12(%rbp), %r8 - 0x4c, 0x8d, 0x4d, 0xf2, //0x000077de leaq $-14(%rbp), %r9 - 0xe9, 0x16, 0x00, 0x00, 0x00, //0x000077e2 jmp LBB34_17 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000077e7 .p2align 4, 0x90 - //0x000077f0 LBB34_16 - 0x48, 0x83, 0xc0, 0x01, //0x000077f0 addq $1, %rax - 0x4c, 0x39, 0xd8, //0x000077f4 cmpq %r11, %rax - 0x0f, 0x83, 0xe0, 0x00, 0x00, 0x00, //0x000077f7 jae LBB34_30 - //0x000077fd LBB34_17 - 0x80, 0x38, 0x00, //0x000077fd cmpb $0, (%rax) - 0x0f, 0x89, 0xea, 0xff, 0xff, 0xff, //0x00007800 jns LBB34_16 - 0xc6, 0x45, 0xf4, 0x00, //0x00007806 movb $0, $-12(%rbp) - 0xc6, 0x45, 0xf2, 0x00, //0x0000780a movb $0, $-14(%rbp) - 0x4c, 0x89, 0xda, //0x0000780e movq %r11, %rdx - 0x48, 0x29, 0xc2, //0x00007811 subq %rax, %rdx - 0x48, 0x83, 0xfa, 0x02, //0x00007814 cmpq $2, %rdx - 0x0f, 0x82, 0x31, 0x00, 0x00, 0x00, //0x00007818 jb LBB34_21 - 0x0f, 0xb6, 0x30, //0x0000781e movzbl (%rax), %esi - 0x0f, 0xb6, 0x78, 0x01, //0x00007821 movzbl $1(%rax), %edi - 0x40, 0x88, 0x75, 0xf4, //0x00007825 movb %sil, $-12(%rbp) - 0x48, 0x8d, 0x48, 0x02, //0x00007829 leaq $2(%rax), %rcx - 0x48, 0x83, 0xc2, 0xfe, //0x0000782d addq $-2, %rdx - 0x4c, 0x89, 0xcb, //0x00007831 movq %r9, %rbx - 0x48, 0x85, 0xd2, //0x00007834 testq %rdx, %rdx - 0x0f, 0x84, 0x25, 0x00, 0x00, 0x00, //0x00007837 je LBB34_22 - //0x0000783d LBB34_20 - 0x0f, 0xb6, 0x09, //0x0000783d movzbl (%rcx), %ecx - 0x88, 0x0b, //0x00007840 movb %cl, (%rbx) - 0x0f, 0xb6, 0x75, 0xf4, //0x00007842 movzbl $-12(%rbp), %esi - 0x0f, 0xb6, 0x4d, 0xf2, //0x00007846 movzbl $-14(%rbp), %ecx - 0xe9, 0x15, 0x00, 0x00, 0x00, //0x0000784a jmp LBB34_23 - //0x0000784f LBB34_21 - 0x31, 0xf6, //0x0000784f xorl %esi, %esi - 0x31, 0xff, //0x00007851 xorl %edi, %edi - 0x4c, 0x89, 0xc3, //0x00007853 movq %r8, %rbx - 0x48, 0x89, 0xc1, //0x00007856 movq %rax, %rcx - 0x48, 0x85, 0xd2, //0x00007859 testq %rdx, %rdx - 0x0f, 0x85, 0xdb, 0xff, 0xff, 0xff, //0x0000785c jne LBB34_20 - //0x00007862 LBB34_22 - 0x31, 0xc9, //0x00007862 xorl %ecx, %ecx - //0x00007864 LBB34_23 - 0x0f, 0xb6, 0xc9, //0x00007864 movzbl %cl, %ecx - 0xc1, 0xe1, 0x10, //0x00007867 shll $16, %ecx - 0x40, 0x0f, 0xb6, 0xff, //0x0000786a movzbl %dil, %edi - 0xc1, 0xe7, 0x08, //0x0000786e shll $8, %edi - 0x09, 0xcf, //0x00007871 orl %ecx, %edi - 0x40, 0x0f, 0xb6, 0xd6, //0x00007873 movzbl %sil, %edx - 0x09, 0xfa, //0x00007877 orl %edi, %edx - 0x89, 0xd1, //0x00007879 movl %edx, %ecx - 0x81, 0xe1, 0xf0, 0xc0, 0xc0, 0x00, //0x0000787b andl $12632304, %ecx - 0x81, 0xf9, 0xe0, 0x80, 0x80, 0x00, //0x00007881 cmpl $8421600, %ecx - 0x0f, 0x85, 0x23, 0x00, 0x00, 0x00, //0x00007887 jne LBB34_26 - 0x89, 0xd7, //0x0000788d movl %edx, %edi - 0x81, 0xe7, 0x0f, 0x20, 0x00, 0x00, //0x0000788f andl $8207, %edi - 0x81, 0xff, 0x0d, 0x20, 0x00, 0x00, //0x00007895 cmpl $8205, %edi - 0x0f, 0x84, 0x0f, 0x00, 0x00, 0x00, //0x0000789b je LBB34_26 - 0xb9, 0x03, 0x00, 0x00, 0x00, //0x000078a1 movl $3, %ecx - 0x85, 0xff, //0x000078a6 testl %edi, %edi - 0x0f, 0x85, 0x23, 0x00, 0x00, 0x00, //0x000078a8 jne LBB34_28 - 0x90, 0x90, //0x000078ae .p2align 4, 0x90 - //0x000078b0 LBB34_26 - 0x40, 0xf6, 0xc6, 0x1e, //0x000078b0 testb $30, %sil - 0x0f, 0x84, 0x07, 0xff, 0xff, 0xff, //0x000078b4 je LBB34_13 - 0x81, 0xe2, 0xe0, 0xc0, 0x00, 0x00, //0x000078ba andl $49376, %edx - 0xb9, 0x02, 0x00, 0x00, 0x00, //0x000078c0 movl $2, %ecx - 0x81, 0xfa, 0xc0, 0x80, 0x00, 0x00, //0x000078c5 cmpl $32960, %edx - 0x0f, 0x85, 0xf0, 0xfe, 0xff, 0xff, //0x000078cb jne LBB34_13 - //0x000078d1 LBB34_28 - 0x48, 0x01, 0xc8, //0x000078d1 addq %rcx, %rax - 0x4c, 0x39, 0xd8, //0x000078d4 cmpq %r11, %rax - 0x0f, 0x82, 0x20, 0xff, 0xff, 0xff, //0x000078d7 jb LBB34_17 - //0x000078dd LBB34_30 - 0x31, 0xc0, //0x000078dd xorl %eax, %eax - 0x48, 0x83, 0xc4, 0x08, //0x000078df addq $8, %rsp - 0x5b, //0x000078e3 popq %rbx - 0x5d, //0x000078e4 popq %rbp - 0xc3, //0x000078e5 retq - 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, //0x000078e6 .p2align 5, 0x00 - //0x00007900 LCPI35_0 - 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, //0x00007900 QUAD $0x3030303030303030; QUAD $0x3030303030303030 // .space 16, '0000000000000000' - 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, //0x00007910 QUAD $0x3030303030303030; QUAD $0x3030303030303030 // .space 16, '0000000000000000' - //0x00007920 .p2align 4, 0x00 - //0x00007920 LCPI35_1 - 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, //0x00007920 QUAD $0x3030303030303030; QUAD $0x3030303030303030 // .space 16, '0000000000000000' - //0x00007930 .p2align 4, 0x90 - //0x00007930 _f32toa - 0x55, //0x00007930 pushq %rbp - 0x48, 0x89, 0xe5, //0x00007931 movq %rsp, %rbp - 0x41, 0x57, //0x00007934 pushq %r15 - 0x41, 0x56, //0x00007936 pushq %r14 - 0x41, 0x55, //0x00007938 pushq %r13 - 0x41, 0x54, //0x0000793a pushq %r12 - 0x53, //0x0000793c pushq %rbx - 0x48, 0x83, 0xec, 0x10, //0x0000793d subq $16, %rsp - 0xc5, 0xf9, 0x7e, 0xc0, //0x00007941 vmovd %xmm0, %eax - 0x89, 0xc1, //0x00007945 movl %eax, %ecx - 0xc1, 0xe9, 0x17, //0x00007947 shrl $23, %ecx - 0x0f, 0xb6, 0xd1, //0x0000794a movzbl %cl, %edx - 0x81, 0xfa, 0xff, 0x00, 0x00, 0x00, //0x0000794d cmpl $255, %edx - 0x0f, 0x84, 0x7f, 0x0e, 0x00, 0x00, //0x00007953 je LBB35_1 - 0xc6, 0x07, 0x2d, //0x00007959 movb $45, (%rdi) - 0x41, 0x89, 0xc2, //0x0000795c movl %eax, %r10d - 0x41, 0xc1, 0xea, 0x1f, //0x0000795f shrl $31, %r10d - 0x4e, 0x8d, 0x0c, 0x17, //0x00007963 leaq (%rdi,%r10), %r9 - 0xa9, 0xff, 0xff, 0xff, 0x7f, //0x00007967 testl $2147483647, %eax - 0x0f, 0x84, 0xa9, 0x01, 0x00, 0x00, //0x0000796c je LBB35_3 - 0x25, 0xff, 0xff, 0x7f, 0x00, //0x00007972 andl $8388607, %eax - 0x85, 0xd2, //0x00007977 testl %edx, %edx - 0x0f, 0x84, 0x60, 0x0e, 0x00, 0x00, //0x00007979 je LBB35_5 - 0x44, 0x8d, 0x98, 0x00, 0x00, 0x80, 0x00, //0x0000797f leal $8388608(%rax), %r11d - 0x44, 0x8d, 0x82, 0x6a, 0xff, 0xff, 0xff, //0x00007986 leal $-150(%rdx), %r8d - 0x8d, 0x4a, 0x81, //0x0000798d leal $-127(%rdx), %ecx - 0x83, 0xf9, 0x17, //0x00007990 cmpl $23, %ecx - 0x0f, 0x87, 0x1c, 0x00, 0x00, 0x00, //0x00007993 ja LBB35_10 - 0xb9, 0x96, 0x00, 0x00, 0x00, //0x00007999 movl $150, %ecx - 0x29, 0xd1, //0x0000799e subl %edx, %ecx - 0x48, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x000079a0 movq $-1, %rsi - 0x48, 0xd3, 0xe6, //0x000079a7 shlq %cl, %rsi - 0xf7, 0xd6, //0x000079aa notl %esi - 0x44, 0x85, 0xde, //0x000079ac testl %r11d, %esi - 0x0f, 0x84, 0x22, 0x03, 0x00, 0x00, //0x000079af je LBB35_12 - //0x000079b5 LBB35_10 - 0x4c, 0x89, 0x4d, 0xc8, //0x000079b5 movq %r9, $-56(%rbp) - 0x48, 0x89, 0x7d, 0xd0, //0x000079b9 movq %rdi, $-48(%rbp) - //0x000079bd LBB35_6 - 0x45, 0x89, 0xdf, //0x000079bd movl %r11d, %r15d - 0x41, 0x83, 0xe7, 0x01, //0x000079c0 andl $1, %r15d - 0x85, 0xc0, //0x000079c4 testl %eax, %eax - 0x0f, 0x94, 0xc0, //0x000079c6 sete %al - 0x83, 0xfa, 0x02, //0x000079c9 cmpl $2, %edx - 0x0f, 0x93, 0xc1, //0x000079cc setae %cl - 0x20, 0xc1, //0x000079cf andb %al, %cl - 0x0f, 0xb6, 0xc9, //0x000079d1 movzbl %cl, %ecx - 0x45, 0x89, 0xd9, //0x000079d4 movl %r11d, %r9d - 0x41, 0xc1, 0xe1, 0x02, //0x000079d7 shll $2, %r9d - 0x42, 0x8d, 0x04, 0x99, //0x000079db leal (%rcx,%r11,4), %eax - 0x83, 0xc0, 0xfe, //0x000079df addl $-2, %eax - 0x41, 0x69, 0xd0, 0x13, 0x44, 0x13, 0x00, //0x000079e2 imull $1262611, %r8d, %edx - 0x44, 0x8d, 0xb2, 0x01, 0x01, 0xf8, 0xff, //0x000079e9 leal $-524031(%rdx), %r14d - 0x84, 0xc9, //0x000079f0 testb %cl, %cl - 0x44, 0x0f, 0x44, 0xf2, //0x000079f2 cmovel %edx, %r14d - 0x41, 0xc1, 0xfe, 0x16, //0x000079f6 sarl $22, %r14d - 0x41, 0x69, 0xce, 0xb1, 0x6c, 0xe5, 0xff, //0x000079fa imull $-1741647, %r14d, %ecx - 0xc1, 0xe9, 0x13, //0x00007a01 shrl $19, %ecx - 0x44, 0x01, 0xc1, //0x00007a04 addl %r8d, %ecx - 0xba, 0x1f, 0x00, 0x00, 0x00, //0x00007a07 movl $31, %edx - 0x44, 0x29, 0xf2, //0x00007a0c subl %r14d, %edx - 0x80, 0xc1, 0x01, //0x00007a0f addb $1, %cl - 0xd3, 0xe0, //0x00007a12 shll %cl, %eax - 0x48, 0x8d, 0x35, 0x55, 0xbd, 0x00, 0x00, //0x00007a14 leaq $48469(%rip), %rsi /* _pow10_ceil_sig_f32.g+0(%rip) */ - 0x4c, 0x8b, 0x2c, 0xd6, //0x00007a1b movq (%rsi,%rdx,8), %r13 - 0x49, 0xf7, 0xe5, //0x00007a1f mulq %r13 - 0x49, 0x89, 0xd0, //0x00007a22 movq %rdx, %r8 - 0x48, 0xc1, 0xe8, 0x20, //0x00007a25 shrq $32, %rax - 0x45, 0x31, 0xe4, //0x00007a29 xorl %r12d, %r12d - 0x83, 0xf8, 0x02, //0x00007a2c cmpl $2, %eax - 0x41, 0x0f, 0x93, 0xc4, //0x00007a2f setae %r12b - 0x41, 0xd3, 0xe1, //0x00007a33 shll %cl, %r9d - 0x46, 0x8d, 0x1c, 0x9d, 0x02, 0x00, 0x00, 0x00, //0x00007a36 leal $2(,%r11,4), %r11d - 0x4c, 0x89, 0xc8, //0x00007a3e movq %r9, %rax - 0x49, 0xf7, 0xe5, //0x00007a41 mulq %r13 - 0x49, 0x89, 0xd1, //0x00007a44 movq %rdx, %r9 - 0x45, 0x09, 0xc4, //0x00007a47 orl %r8d, %r12d - 0x48, 0xc1, 0xe8, 0x20, //0x00007a4a shrq $32, %rax - 0x31, 0xdb, //0x00007a4e xorl %ebx, %ebx - 0x83, 0xf8, 0x02, //0x00007a50 cmpl $2, %eax - 0x0f, 0x93, 0xc3, //0x00007a53 setae %bl - 0x41, 0xd3, 0xe3, //0x00007a56 shll %cl, %r11d - 0x44, 0x09, 0xcb, //0x00007a59 orl %r9d, %ebx - 0x4c, 0x89, 0xd8, //0x00007a5c movq %r11, %rax - 0x49, 0xf7, 0xe5, //0x00007a5f mulq %r13 - 0x48, 0xc1, 0xe8, 0x20, //0x00007a62 shrq $32, %rax - 0x31, 0xc9, //0x00007a66 xorl %ecx, %ecx - 0x83, 0xf8, 0x02, //0x00007a68 cmpl $2, %eax - 0x0f, 0x93, 0xc1, //0x00007a6b setae %cl - 0x09, 0xd1, //0x00007a6e orl %edx, %ecx - 0x45, 0x01, 0xfc, //0x00007a70 addl %r15d, %r12d - 0x44, 0x29, 0xf9, //0x00007a73 subl %r15d, %ecx - 0x83, 0xfb, 0x28, //0x00007a76 cmpl $40, %ebx - 0x0f, 0x82, 0x42, 0x00, 0x00, 0x00, //0x00007a79 jb LBB35_31 - 0x44, 0x89, 0xc8, //0x00007a7f movl %r9d, %eax - 0xba, 0xcd, 0xcc, 0xcc, 0xcc, //0x00007a82 movl $3435973837, %edx - 0x48, 0x0f, 0xaf, 0xd0, //0x00007a87 imulq %rax, %rdx - 0x48, 0xc1, 0xea, 0x25, //0x00007a8b shrq $37, %rdx - 0x44, 0x89, 0xe0, //0x00007a8f movl %r12d, %eax - 0x48, 0x8d, 0x34, 0xd5, 0x00, 0x00, 0x00, 0x00, //0x00007a92 leaq (,%rdx,8), %rsi - 0x48, 0x8d, 0x3c, 0xb6, //0x00007a9a leaq (%rsi,%rsi,4), %rdi - 0x48, 0x39, 0xc7, //0x00007a9e cmpq %rax, %rdi - 0x41, 0x0f, 0x92, 0xc3, //0x00007aa1 setb %r11b - 0x48, 0x8d, 0x34, 0xb6, //0x00007aa5 leaq (%rsi,%rsi,4), %rsi - 0x48, 0x83, 0xc6, 0x28, //0x00007aa9 addq $40, %rsi - 0x89, 0xcf, //0x00007aad movl %ecx, %edi - 0x31, 0xc0, //0x00007aaf xorl %eax, %eax - 0x48, 0x39, 0xfe, //0x00007ab1 cmpq %rdi, %rsi - 0x41, 0x0f, 0x96, 0xc0, //0x00007ab4 setbe %r8b - 0x45, 0x38, 0xc3, //0x00007ab8 cmpb %r8b, %r11b - 0x0f, 0x84, 0xb7, 0x00, 0x00, 0x00, //0x00007abb je LBB35_8 - //0x00007ac1 LBB35_31 - 0x4d, 0x89, 0xc8, //0x00007ac1 movq %r9, %r8 - 0x49, 0xc1, 0xe8, 0x02, //0x00007ac4 shrq $2, %r8 - 0x44, 0x89, 0xca, //0x00007ac8 movl %r9d, %edx - 0x83, 0xe2, 0xfc, //0x00007acb andl $-4, %edx - 0x41, 0x39, 0xd4, //0x00007ace cmpl %edx, %r12d - 0x40, 0x0f, 0x97, 0xc6, //0x00007ad1 seta %sil - 0x8d, 0x7a, 0x04, //0x00007ad5 leal $4(%rdx), %edi - 0x39, 0xcf, //0x00007ad8 cmpl %ecx, %edi - 0x0f, 0x96, 0xc0, //0x00007ada setbe %al - 0x40, 0x30, 0xf0, //0x00007add xorb %sil, %al - 0x0f, 0x84, 0x48, 0x00, 0x00, 0x00, //0x00007ae0 je LBB35_32 - 0x83, 0xca, 0x02, //0x00007ae6 orl $2, %edx - 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00007ae9 movl $1, %eax - 0x39, 0xd3, //0x00007aee cmpl %edx, %ebx - 0x4c, 0x8b, 0x65, 0xc8, //0x00007af0 movq $-56(%rbp), %r12 - 0x0f, 0x87, 0x0e, 0x00, 0x00, 0x00, //0x00007af4 ja LBB35_35 - 0x0f, 0x94, 0xc0, //0x00007afa sete %al - 0x41, 0xc0, 0xe9, 0x02, //0x00007afd shrb $2, %r9b - 0x41, 0x20, 0xc1, //0x00007b01 andb %al, %r9b - 0x41, 0x0f, 0xb6, 0xc1, //0x00007b04 movzbl %r9b, %eax - //0x00007b08 LBB35_35 - 0x44, 0x01, 0xc0, //0x00007b08 addl %r8d, %eax - 0x3d, 0xa0, 0x86, 0x01, 0x00, //0x00007b0b cmpl $100000, %eax - 0x0f, 0x83, 0x30, 0x00, 0x00, 0x00, //0x00007b10 jae LBB35_37 - 0xe9, 0x75, 0x00, 0x00, 0x00, //0x00007b16 jmp LBB35_40 - //0x00007b1b LBB35_3 - 0x41, 0xc6, 0x01, 0x30, //0x00007b1b movb $48, (%r9) - 0x41, 0x29, 0xf9, //0x00007b1f subl %edi, %r9d - 0x41, 0x83, 0xc1, 0x01, //0x00007b22 addl $1, %r9d - 0x44, 0x89, 0xc8, //0x00007b26 movl %r9d, %eax - 0xe9, 0x98, 0x0c, 0x00, 0x00, //0x00007b29 jmp LBB35_156 - //0x00007b2e LBB35_32 - 0x39, 0xf9, //0x00007b2e cmpl %edi, %ecx - 0x41, 0x83, 0xd8, 0xff, //0x00007b30 sbbl $-1, %r8d - 0x44, 0x89, 0xc0, //0x00007b34 movl %r8d, %eax - 0x4c, 0x8b, 0x65, 0xc8, //0x00007b37 movq $-56(%rbp), %r12 - 0x3d, 0xa0, 0x86, 0x01, 0x00, //0x00007b3b cmpl $100000, %eax - 0x0f, 0x82, 0x4a, 0x00, 0x00, 0x00, //0x00007b40 jb LBB35_40 - //0x00007b46 LBB35_37 - 0x41, 0xbd, 0x06, 0x00, 0x00, 0x00, //0x00007b46 movl $6, %r13d - 0x3d, 0x40, 0x42, 0x0f, 0x00, //0x00007b4c cmpl $1000000, %eax - 0x0f, 0x82, 0x77, 0x00, 0x00, 0x00, //0x00007b51 jb LBB35_45 - 0x41, 0xbd, 0x07, 0x00, 0x00, 0x00, //0x00007b57 movl $7, %r13d - 0x3d, 0x80, 0x96, 0x98, 0x00, //0x00007b5d cmpl $10000000, %eax - 0x0f, 0x82, 0x66, 0x00, 0x00, 0x00, //0x00007b62 jb LBB35_45 - 0x3d, 0x00, 0xe1, 0xf5, 0x05, //0x00007b68 cmpl $100000000, %eax - 0x41, 0xbd, 0x09, 0x00, 0x00, 0x00, //0x00007b6d movl $9, %r13d - 0xe9, 0x52, 0x00, 0x00, 0x00, //0x00007b73 jmp LBB35_44 - //0x00007b78 LBB35_8 - 0x44, 0x88, 0xc0, //0x00007b78 movb %r8b, %al - 0x01, 0xd0, //0x00007b7b addl %edx, %eax - 0x41, 0x83, 0xc6, 0x01, //0x00007b7d addl $1, %r14d - 0x4c, 0x8b, 0x65, 0xc8, //0x00007b81 movq $-56(%rbp), %r12 - 0x3d, 0xa0, 0x86, 0x01, 0x00, //0x00007b85 cmpl $100000, %eax - 0x0f, 0x83, 0xb6, 0xff, 0xff, 0xff, //0x00007b8a jae LBB35_37 - //0x00007b90 LBB35_40 - 0x41, 0xbd, 0x01, 0x00, 0x00, 0x00, //0x00007b90 movl $1, %r13d - 0x83, 0xf8, 0x0a, //0x00007b96 cmpl $10, %eax - 0x0f, 0x82, 0x2f, 0x00, 0x00, 0x00, //0x00007b99 jb LBB35_45 - 0x41, 0xbd, 0x02, 0x00, 0x00, 0x00, //0x00007b9f movl $2, %r13d - 0x83, 0xf8, 0x64, //0x00007ba5 cmpl $100, %eax - 0x0f, 0x82, 0x20, 0x00, 0x00, 0x00, //0x00007ba8 jb LBB35_45 - 0x41, 0xbd, 0x03, 0x00, 0x00, 0x00, //0x00007bae movl $3, %r13d - 0x3d, 0xe8, 0x03, 0x00, 0x00, //0x00007bb4 cmpl $1000, %eax - 0x0f, 0x82, 0x0f, 0x00, 0x00, 0x00, //0x00007bb9 jb LBB35_45 - 0x3d, 0x10, 0x27, 0x00, 0x00, //0x00007bbf cmpl $10000, %eax - 0x41, 0xbd, 0x05, 0x00, 0x00, 0x00, //0x00007bc4 movl $5, %r13d - //0x00007bca LBB35_44 - 0x41, 0x83, 0xdd, 0x00, //0x00007bca sbbl $0, %r13d - //0x00007bce LBB35_45 - 0x47, 0x8d, 0x0c, 0x2e, //0x00007bce leal (%r14,%r13), %r9d - 0x43, 0x8d, 0x0c, 0x2e, //0x00007bd2 leal (%r14,%r13), %ecx - 0x83, 0xc1, 0x05, //0x00007bd6 addl $5, %ecx - 0x83, 0xf9, 0x1b, //0x00007bd9 cmpl $27, %ecx - 0x0f, 0x82, 0x6d, 0x00, 0x00, 0x00, //0x00007bdc jb LBB35_70 - 0x44, 0x89, 0xea, //0x00007be2 movl %r13d, %edx - 0x49, 0x8d, 0x0c, 0x14, //0x00007be5 leaq (%r12,%rdx), %rcx - 0x48, 0x83, 0xc1, 0x01, //0x00007be9 addq $1, %rcx - 0x3d, 0x10, 0x27, 0x00, 0x00, //0x00007bed cmpl $10000, %eax - 0x0f, 0x82, 0xc6, 0x00, 0x00, 0x00, //0x00007bf2 jb LBB35_47 - 0x89, 0xc6, //0x00007bf8 movl %eax, %esi - 0xbb, 0x59, 0x17, 0xb7, 0xd1, //0x00007bfa movl $3518437209, %ebx - 0x48, 0x0f, 0xaf, 0xde, //0x00007bff imulq %rsi, %rbx - 0x48, 0xc1, 0xeb, 0x2d, //0x00007c03 shrq $45, %rbx - 0x44, 0x69, 0xc3, 0xf0, 0xd8, 0xff, 0xff, //0x00007c07 imull $-10000, %ebx, %r8d - 0x41, 0x01, 0xc0, //0x00007c0e addl %eax, %r8d - 0x4c, 0x8b, 0x6d, 0xd0, //0x00007c11 movq $-48(%rbp), %r13 - 0x0f, 0x84, 0x48, 0x03, 0x00, 0x00, //0x00007c15 je LBB35_49 - 0x44, 0x89, 0xc0, //0x00007c1b movl %r8d, %eax - 0x48, 0x69, 0xc0, 0x1f, 0x85, 0xeb, 0x51, //0x00007c1e imulq $1374389535, %rax, %rax - 0x48, 0xc1, 0xe8, 0x25, //0x00007c25 shrq $37, %rax - 0x6b, 0xf0, 0x64, //0x00007c29 imull $100, %eax, %esi - 0x41, 0x29, 0xf0, //0x00007c2c subl %esi, %r8d - 0x48, 0x8d, 0x35, 0xba, 0x47, 0x00, 0x00, //0x00007c2f leaq $18362(%rip), %rsi /* _Digits+0(%rip) */ - 0x42, 0x0f, 0xb7, 0x3c, 0x46, //0x00007c36 movzwl (%rsi,%r8,2), %edi - 0x66, 0x89, 0x79, 0xfe, //0x00007c3b movw %di, $-2(%rcx) - 0x0f, 0xb7, 0x04, 0x46, //0x00007c3f movzwl (%rsi,%rax,2), %eax - 0x66, 0x89, 0x41, 0xfc, //0x00007c43 movw %ax, $-4(%rcx) - 0x45, 0x31, 0xc0, //0x00007c47 xorl %r8d, %r8d - 0xe9, 0x1a, 0x03, 0x00, 0x00, //0x00007c4a jmp LBB35_51 - //0x00007c4f LBB35_70 - 0x45, 0x89, 0xe8, //0x00007c4f movl %r13d, %r8d - 0x45, 0x85, 0xf6, //0x00007c52 testl %r14d, %r14d - 0x0f, 0x88, 0x1c, 0x01, 0x00, 0x00, //0x00007c55 js LBB35_71 - 0x4b, 0x8d, 0x14, 0x04, //0x00007c5b leaq (%r12,%r8), %rdx - 0x3d, 0x10, 0x27, 0x00, 0x00, //0x00007c5f cmpl $10000, %eax - 0x0f, 0x82, 0x77, 0x01, 0x00, 0x00, //0x00007c64 jb LBB35_124 - 0x89, 0xc1, //0x00007c6a movl %eax, %ecx - 0xbe, 0x59, 0x17, 0xb7, 0xd1, //0x00007c6c movl $3518437209, %esi - 0x48, 0x0f, 0xaf, 0xf1, //0x00007c71 imulq %rcx, %rsi - 0x48, 0xc1, 0xee, 0x2d, //0x00007c75 shrq $45, %rsi - 0x69, 0xce, 0xf0, 0xd8, 0xff, 0xff, //0x00007c79 imull $-10000, %esi, %ecx - 0x01, 0xc1, //0x00007c7f addl %eax, %ecx - 0x48, 0x69, 0xc1, 0x1f, 0x85, 0xeb, 0x51, //0x00007c81 imulq $1374389535, %rcx, %rax - 0x48, 0xc1, 0xe8, 0x25, //0x00007c88 shrq $37, %rax - 0x6b, 0xf8, 0x64, //0x00007c8c imull $100, %eax, %edi - 0x29, 0xf9, //0x00007c8f subl %edi, %ecx - 0x48, 0x8d, 0x3d, 0x58, 0x47, 0x00, 0x00, //0x00007c91 leaq $18264(%rip), %rdi /* _Digits+0(%rip) */ - 0x0f, 0xb7, 0x0c, 0x4f, //0x00007c98 movzwl (%rdi,%rcx,2), %ecx - 0x66, 0x89, 0x4a, 0xfe, //0x00007c9c movw %cx, $-2(%rdx) - 0x48, 0x8d, 0x4a, 0xfc, //0x00007ca0 leaq $-4(%rdx), %rcx - 0x0f, 0xb7, 0x04, 0x47, //0x00007ca4 movzwl (%rdi,%rax,2), %eax - 0x66, 0x89, 0x42, 0xfc, //0x00007ca8 movw %ax, $-4(%rdx) - 0x89, 0xf0, //0x00007cac movl %esi, %eax - 0x83, 0xf8, 0x64, //0x00007cae cmpl $100, %eax - 0x0f, 0x83, 0x36, 0x01, 0x00, 0x00, //0x00007cb1 jae LBB35_128 - //0x00007cb7 LBB35_127 - 0x89, 0xc3, //0x00007cb7 movl %eax, %ebx - 0xe9, 0x70, 0x01, 0x00, 0x00, //0x00007cb9 jmp LBB35_130 - //0x00007cbe LBB35_47 - 0x45, 0x31, 0xc0, //0x00007cbe xorl %r8d, %r8d - 0x89, 0xc3, //0x00007cc1 movl %eax, %ebx - 0x4c, 0x8b, 0x6d, 0xd0, //0x00007cc3 movq $-48(%rbp), %r13 - 0x83, 0xfb, 0x64, //0x00007cc7 cmpl $100, %ebx - 0x0f, 0x83, 0xa6, 0x02, 0x00, 0x00, //0x00007cca jae LBB35_54 - //0x00007cd0 LBB35_53 - 0x89, 0xd8, //0x00007cd0 movl %ebx, %eax - 0xe9, 0xe8, 0x02, 0x00, 0x00, //0x00007cd2 jmp LBB35_56 - //0x00007cd7 LBB35_12 - 0x41, 0xd3, 0xeb, //0x00007cd7 shrl %cl, %r11d - 0x41, 0x81, 0xfb, 0xa0, 0x86, 0x01, 0x00, //0x00007cda cmpl $100000, %r11d - 0x0f, 0x82, 0xcb, 0x01, 0x00, 0x00, //0x00007ce1 jb LBB35_18 - 0xb9, 0x06, 0x00, 0x00, 0x00, //0x00007ce7 movl $6, %ecx - 0x41, 0x81, 0xfb, 0x40, 0x42, 0x0f, 0x00, //0x00007cec cmpl $1000000, %r11d - 0x0f, 0x82, 0x22, 0x00, 0x00, 0x00, //0x00007cf3 jb LBB35_16 - 0xb9, 0x07, 0x00, 0x00, 0x00, //0x00007cf9 movl $7, %ecx - 0x41, 0x81, 0xfb, 0x80, 0x96, 0x98, 0x00, //0x00007cfe cmpl $10000000, %r11d - 0x0f, 0x82, 0x10, 0x00, 0x00, 0x00, //0x00007d05 jb LBB35_16 - 0x41, 0x81, 0xfb, 0x00, 0xe1, 0xf5, 0x05, //0x00007d0b cmpl $100000000, %r11d - 0xb9, 0x09, 0x00, 0x00, 0x00, //0x00007d12 movl $9, %ecx - 0x48, 0x83, 0xd9, 0x00, //0x00007d17 sbbq $0, %rcx - //0x00007d1b LBB35_16 - 0x4c, 0x01, 0xc9, //0x00007d1b addq %r9, %rcx - //0x00007d1e LBB35_17 - 0x44, 0x89, 0xd8, //0x00007d1e movl %r11d, %eax - 0xba, 0x59, 0x17, 0xb7, 0xd1, //0x00007d21 movl $3518437209, %edx - 0x48, 0x0f, 0xaf, 0xd0, //0x00007d26 imulq %rax, %rdx - 0x48, 0xc1, 0xea, 0x2d, //0x00007d2a shrq $45, %rdx - 0x69, 0xc2, 0xf0, 0xd8, 0xff, 0xff, //0x00007d2e imull $-10000, %edx, %eax - 0x44, 0x01, 0xd8, //0x00007d34 addl %r11d, %eax - 0x48, 0x69, 0xf0, 0x1f, 0x85, 0xeb, 0x51, //0x00007d37 imulq $1374389535, %rax, %rsi - 0x48, 0xc1, 0xee, 0x25, //0x00007d3e shrq $37, %rsi - 0x6b, 0xde, 0x64, //0x00007d42 imull $100, %esi, %ebx - 0x29, 0xd8, //0x00007d45 subl %ebx, %eax - 0x48, 0x8d, 0x1d, 0xa2, 0x46, 0x00, 0x00, //0x00007d47 leaq $18082(%rip), %rbx /* _Digits+0(%rip) */ - 0x0f, 0xb7, 0x04, 0x43, //0x00007d4e movzwl (%rbx,%rax,2), %eax - 0x66, 0x89, 0x41, 0xfe, //0x00007d52 movw %ax, $-2(%rcx) - 0x0f, 0xb7, 0x04, 0x73, //0x00007d56 movzwl (%rbx,%rsi,2), %eax - 0x66, 0x89, 0x41, 0xfc, //0x00007d5a movw %ax, $-4(%rcx) - 0x48, 0x89, 0xc8, //0x00007d5e movq %rcx, %rax - 0x48, 0x83, 0xc1, 0xfc, //0x00007d61 addq $-4, %rcx - 0x41, 0x89, 0xd3, //0x00007d65 movl %edx, %r11d - 0x41, 0x83, 0xfb, 0x64, //0x00007d68 cmpl $100, %r11d - 0x0f, 0x83, 0x80, 0x01, 0x00, 0x00, //0x00007d6c jae LBB35_25 - 0xe9, 0xbb, 0x01, 0x00, 0x00, //0x00007d72 jmp LBB35_27 - //0x00007d77 LBB35_71 - 0x45, 0x85, 0xc9, //0x00007d77 testl %r9d, %r9d - 0x0f, 0x8f, 0x62, 0x06, 0x00, 0x00, //0x00007d7a jg LBB35_84 - 0x66, 0x41, 0xc7, 0x04, 0x24, 0x30, 0x2e, //0x00007d80 movw $11824, (%r12) - 0x49, 0x83, 0xc4, 0x02, //0x00007d87 addq $2, %r12 - 0x45, 0x85, 0xc9, //0x00007d8b testl %r9d, %r9d - 0x0f, 0x89, 0x4e, 0x06, 0x00, 0x00, //0x00007d8e jns LBB35_84 - 0x45, 0x89, 0xeb, //0x00007d94 movl %r13d, %r11d - 0x41, 0xf7, 0xd3, //0x00007d97 notl %r11d - 0x45, 0x29, 0xf3, //0x00007d9a subl %r14d, %r11d - 0x31, 0xc9, //0x00007d9d xorl %ecx, %ecx - 0x41, 0x83, 0xfb, 0x7f, //0x00007d9f cmpl $127, %r11d - 0x0f, 0x82, 0x18, 0x06, 0x00, 0x00, //0x00007da3 jb LBB35_82 - 0x4c, 0x89, 0xe7, //0x00007da9 movq %r12, %rdi - 0x49, 0x83, 0xc3, 0x01, //0x00007dac addq $1, %r11 - 0x4c, 0x89, 0xd9, //0x00007db0 movq %r11, %rcx - 0x48, 0x83, 0xe1, 0x80, //0x00007db3 andq $-128, %rcx - 0x48, 0x8d, 0x51, 0x80, //0x00007db7 leaq $-128(%rcx), %rdx - 0x49, 0x89, 0xd4, //0x00007dbb movq %rdx, %r12 - 0x49, 0xc1, 0xec, 0x07, //0x00007dbe shrq $7, %r12 - 0x49, 0x83, 0xc4, 0x01, //0x00007dc2 addq $1, %r12 - 0x45, 0x89, 0xe7, //0x00007dc6 movl %r12d, %r15d - 0x41, 0x83, 0xe7, 0x03, //0x00007dc9 andl $3, %r15d - 0x48, 0x81, 0xfa, 0x80, 0x01, 0x00, 0x00, //0x00007dcd cmpq $384, %rdx - 0x0f, 0x83, 0xde, 0x04, 0x00, 0x00, //0x00007dd4 jae LBB35_76 - 0x31, 0xd2, //0x00007dda xorl %edx, %edx - 0xe9, 0x88, 0x05, 0x00, 0x00, //0x00007ddc jmp LBB35_78 - //0x00007de1 LBB35_124 - 0x48, 0x89, 0xd1, //0x00007de1 movq %rdx, %rcx - 0x83, 0xf8, 0x64, //0x00007de4 cmpl $100, %eax - 0x0f, 0x82, 0xca, 0xfe, 0xff, 0xff, //0x00007de7 jb LBB35_127 - //0x00007ded LBB35_128 - 0x48, 0x83, 0xc1, 0xff, //0x00007ded addq $-1, %rcx - 0x4c, 0x8d, 0x1d, 0xf8, 0x45, 0x00, 0x00, //0x00007df1 leaq $17912(%rip), %r11 /* _Digits+0(%rip) */ - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007df8 .p2align 4, 0x90 - //0x00007e00 LBB35_129 - 0x89, 0xc6, //0x00007e00 movl %eax, %esi - 0x48, 0x69, 0xde, 0x1f, 0x85, 0xeb, 0x51, //0x00007e02 imulq $1374389535, %rsi, %rbx - 0x48, 0xc1, 0xeb, 0x25, //0x00007e09 shrq $37, %rbx - 0x6b, 0xf3, 0x64, //0x00007e0d imull $100, %ebx, %esi - 0x89, 0xc7, //0x00007e10 movl %eax, %edi - 0x29, 0xf7, //0x00007e12 subl %esi, %edi - 0x41, 0x0f, 0xb7, 0x34, 0x7b, //0x00007e14 movzwl (%r11,%rdi,2), %esi - 0x66, 0x89, 0x71, 0xff, //0x00007e19 movw %si, $-1(%rcx) - 0x48, 0x83, 0xc1, 0xfe, //0x00007e1d addq $-2, %rcx - 0x3d, 0x0f, 0x27, 0x00, 0x00, //0x00007e21 cmpl $9999, %eax - 0x89, 0xd8, //0x00007e26 movl %ebx, %eax - 0x0f, 0x87, 0xd2, 0xff, 0xff, 0xff, //0x00007e28 ja LBB35_129 - //0x00007e2e LBB35_130 - 0x4d, 0x63, 0xe9, //0x00007e2e movslq %r9d, %r13 - 0x83, 0xfb, 0x0a, //0x00007e31 cmpl $10, %ebx - 0x0f, 0x82, 0x23, 0x00, 0x00, 0x00, //0x00007e34 jb LBB35_132 - 0x89, 0xd8, //0x00007e3a movl %ebx, %eax - 0x48, 0x8d, 0x0d, 0xad, 0x45, 0x00, 0x00, //0x00007e3c leaq $17837(%rip), %rcx /* _Digits+0(%rip) */ - 0x0f, 0xb7, 0x04, 0x41, //0x00007e43 movzwl (%rcx,%rax,2), %eax - 0x66, 0x41, 0x89, 0x04, 0x24, //0x00007e47 movw %ax, (%r12) - 0x4d, 0x01, 0xec, //0x00007e4c addq %r13, %r12 - 0x4d, 0x39, 0xe8, //0x00007e4f cmpq %r13, %r8 - 0x0f, 0x8c, 0x18, 0x00, 0x00, 0x00, //0x00007e52 jl LBB35_135 - 0xe9, 0xff, 0x03, 0x00, 0x00, //0x00007e58 jmp LBB35_134 - //0x00007e5d LBB35_132 - 0x80, 0xc3, 0x30, //0x00007e5d addb $48, %bl - 0x41, 0x88, 0x1c, 0x24, //0x00007e60 movb %bl, (%r12) - 0x4d, 0x01, 0xec, //0x00007e64 addq %r13, %r12 - 0x4d, 0x39, 0xe8, //0x00007e67 cmpq %r13, %r8 - 0x0f, 0x8d, 0xec, 0x03, 0x00, 0x00, //0x00007e6a jge LBB35_134 - //0x00007e70 LBB35_135 - 0x48, 0x8b, 0x45, 0xd0, //0x00007e70 movq $-48(%rbp), %rax - 0x4c, 0x01, 0xd0, //0x00007e74 addq %r10, %rax - 0x4d, 0x8d, 0x34, 0x00, //0x00007e77 leaq (%r8,%rax), %r14 - 0x49, 0x83, 0xc6, 0x01, //0x00007e7b addq $1, %r14 - 0x49, 0x01, 0xc5, //0x00007e7f addq %rax, %r13 - 0x4d, 0x39, 0xee, //0x00007e82 cmpq %r13, %r14 - 0x4d, 0x89, 0xef, //0x00007e85 movq %r13, %r15 - 0x4d, 0x0f, 0x47, 0xfe, //0x00007e88 cmovaq %r14, %r15 - 0x4e, 0x8d, 0x1c, 0x00, //0x00007e8c leaq (%rax,%r8), %r11 - 0x4d, 0x29, 0xdf, //0x00007e90 subq %r11, %r15 - 0x49, 0x83, 0xff, 0x10, //0x00007e93 cmpq $16, %r15 - 0x0f, 0x82, 0xf5, 0x03, 0x00, 0x00, //0x00007e97 jb LBB35_152 - 0x49, 0x81, 0xff, 0x80, 0x00, 0x00, 0x00, //0x00007e9d cmpq $128, %r15 - 0x0f, 0x83, 0xf8, 0x01, 0x00, 0x00, //0x00007ea4 jae LBB35_141 - 0x45, 0x31, 0xc9, //0x00007eaa xorl %r9d, %r9d - 0xe9, 0x54, 0x03, 0x00, 0x00, //0x00007ead jmp LBB35_138 - //0x00007eb2 LBB35_18 - 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00007eb2 movl $1, %eax - 0x41, 0x83, 0xfb, 0x0a, //0x00007eb7 cmpl $10, %r11d - 0x0f, 0x82, 0x21, 0x00, 0x00, 0x00, //0x00007ebb jb LBB35_21 - 0xb8, 0x02, 0x00, 0x00, 0x00, //0x00007ec1 movl $2, %eax - 0x41, 0x83, 0xfb, 0x64, //0x00007ec6 cmpl $100, %r11d - 0x0f, 0x82, 0x12, 0x00, 0x00, 0x00, //0x00007eca jb LBB35_21 - 0xb8, 0x03, 0x00, 0x00, 0x00, //0x00007ed0 movl $3, %eax - 0x41, 0x81, 0xfb, 0xe8, 0x03, 0x00, 0x00, //0x00007ed5 cmpl $1000, %r11d - 0x0f, 0x83, 0x86, 0x03, 0x00, 0x00, //0x00007edc jae LBB35_23 - //0x00007ee2 LBB35_21 - 0x4c, 0x01, 0xc8, //0x00007ee2 addq %r9, %rax - 0x48, 0x89, 0xc1, //0x00007ee5 movq %rax, %rcx - 0x41, 0x83, 0xfb, 0x64, //0x00007ee8 cmpl $100, %r11d - 0x0f, 0x82, 0x40, 0x00, 0x00, 0x00, //0x00007eec jb LBB35_27 - //0x00007ef2 LBB35_25 - 0x48, 0x83, 0xc1, 0xff, //0x00007ef2 addq $-1, %rcx - 0x4c, 0x8d, 0x05, 0xf3, 0x44, 0x00, 0x00, //0x00007ef6 leaq $17651(%rip), %r8 /* _Digits+0(%rip) */ - 0x90, 0x90, 0x90, //0x00007efd .p2align 4, 0x90 - //0x00007f00 LBB35_26 - 0x44, 0x89, 0xde, //0x00007f00 movl %r11d, %esi - 0x44, 0x89, 0xdb, //0x00007f03 movl %r11d, %ebx - 0x4c, 0x69, 0xdb, 0x1f, 0x85, 0xeb, 0x51, //0x00007f06 imulq $1374389535, %rbx, %r11 - 0x49, 0xc1, 0xeb, 0x25, //0x00007f0d shrq $37, %r11 - 0x41, 0x6b, 0xdb, 0x64, //0x00007f11 imull $100, %r11d, %ebx - 0x89, 0xf2, //0x00007f15 movl %esi, %edx - 0x29, 0xda, //0x00007f17 subl %ebx, %edx - 0x41, 0x0f, 0xb7, 0x14, 0x50, //0x00007f19 movzwl (%r8,%rdx,2), %edx - 0x66, 0x89, 0x51, 0xff, //0x00007f1e movw %dx, $-1(%rcx) - 0x48, 0x83, 0xc1, 0xfe, //0x00007f22 addq $-2, %rcx - 0x81, 0xfe, 0x0f, 0x27, 0x00, 0x00, //0x00007f26 cmpl $9999, %esi - 0x0f, 0x87, 0xce, 0xff, 0xff, 0xff, //0x00007f2c ja LBB35_26 - //0x00007f32 LBB35_27 - 0x41, 0x83, 0xfb, 0x0a, //0x00007f32 cmpl $10, %r11d - 0x0f, 0x82, 0x19, 0x00, 0x00, 0x00, //0x00007f36 jb LBB35_29 - 0x44, 0x89, 0xd9, //0x00007f3c movl %r11d, %ecx - 0x48, 0x8d, 0x15, 0xaa, 0x44, 0x00, 0x00, //0x00007f3f leaq $17578(%rip), %rdx /* _Digits+0(%rip) */ - 0x0f, 0xb7, 0x0c, 0x4a, //0x00007f46 movzwl (%rdx,%rcx,2), %ecx - 0x66, 0x41, 0x89, 0x09, //0x00007f4a movw %cx, (%r9) - 0x29, 0xf8, //0x00007f4e subl %edi, %eax - 0xe9, 0x71, 0x08, 0x00, 0x00, //0x00007f50 jmp LBB35_156 - //0x00007f55 LBB35_29 - 0x41, 0x80, 0xc3, 0x30, //0x00007f55 addb $48, %r11b - 0x45, 0x88, 0x19, //0x00007f59 movb %r11b, (%r9) - 0x29, 0xf8, //0x00007f5c subl %edi, %eax - 0xe9, 0x63, 0x08, 0x00, 0x00, //0x00007f5e jmp LBB35_156 - //0x00007f63 LBB35_49 - 0x41, 0xb8, 0x04, 0x00, 0x00, 0x00, //0x00007f63 movl $4, %r8d - //0x00007f69 LBB35_51 - 0x48, 0x83, 0xc1, 0xfc, //0x00007f69 addq $-4, %rcx - 0x83, 0xfb, 0x64, //0x00007f6d cmpl $100, %ebx - 0x0f, 0x82, 0x5a, 0xfd, 0xff, 0xff, //0x00007f70 jb LBB35_53 - //0x00007f76 LBB35_54 - 0x48, 0x83, 0xc1, 0xff, //0x00007f76 addq $-1, %rcx - 0x4c, 0x8d, 0x1d, 0x6f, 0x44, 0x00, 0x00, //0x00007f7a leaq $17519(%rip), %r11 /* _Digits+0(%rip) */ - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007f81 .p2align 4, 0x90 - //0x00007f90 LBB35_55 - 0x89, 0xd8, //0x00007f90 movl %ebx, %eax - 0x48, 0x69, 0xc0, 0x1f, 0x85, 0xeb, 0x51, //0x00007f92 imulq $1374389535, %rax, %rax - 0x48, 0xc1, 0xe8, 0x25, //0x00007f99 shrq $37, %rax - 0x6b, 0xf0, 0x64, //0x00007f9d imull $100, %eax, %esi - 0x89, 0xdf, //0x00007fa0 movl %ebx, %edi - 0x29, 0xf7, //0x00007fa2 subl %esi, %edi - 0x41, 0x0f, 0xb7, 0x34, 0x7b, //0x00007fa4 movzwl (%r11,%rdi,2), %esi - 0x66, 0x89, 0x71, 0xff, //0x00007fa9 movw %si, $-1(%rcx) - 0x48, 0x83, 0xc1, 0xfe, //0x00007fad addq $-2, %rcx - 0x81, 0xfb, 0x0f, 0x27, 0x00, 0x00, //0x00007fb1 cmpl $9999, %ebx - 0x89, 0xc3, //0x00007fb7 movl %eax, %ebx - 0x0f, 0x87, 0xd1, 0xff, 0xff, 0xff, //0x00007fb9 ja LBB35_55 - //0x00007fbf LBB35_56 - 0x49, 0x8d, 0x4c, 0x24, 0x01, //0x00007fbf leaq $1(%r12), %rcx - 0x83, 0xf8, 0x0a, //0x00007fc4 cmpl $10, %eax - 0x0f, 0x82, 0x1f, 0x00, 0x00, 0x00, //0x00007fc7 jb LBB35_58 - 0x89, 0xc6, //0x00007fcd movl %eax, %esi - 0x48, 0x8d, 0x3d, 0x1a, 0x44, 0x00, 0x00, //0x00007fcf leaq $17434(%rip), %rdi /* _Digits+0(%rip) */ - 0x8a, 0x04, 0x77, //0x00007fd6 movb (%rdi,%rsi,2), %al - 0x8a, 0x5c, 0x77, 0x01, //0x00007fd9 movb $1(%rdi,%rsi,2), %bl - 0x41, 0x88, 0x44, 0x24, 0x01, //0x00007fdd movb %al, $1(%r12) - 0x41, 0x88, 0x5c, 0x24, 0x02, //0x00007fe2 movb %bl, $2(%r12) - 0xe9, 0x04, 0x00, 0x00, 0x00, //0x00007fe7 jmp LBB35_59 - //0x00007fec LBB35_58 - 0x04, 0x30, //0x00007fec addb $48, %al - 0x88, 0x01, //0x00007fee movb %al, (%rcx) - //0x00007ff0 LBB35_59 - 0x4d, 0x29, 0xc2, //0x00007ff0 subq %r8, %r10 - 0x4d, 0x01, 0xea, //0x00007ff3 addq %r13, %r10 - 0xbb, 0x01, 0x00, 0x00, 0x00, //0x00007ff6 movl $1, %ebx - 0x4c, 0x29, 0xc3, //0x00007ffb subq %r8, %rbx - 0x90, 0x90, //0x00007ffe .p2align 4, 0x90 - //0x00008000 LBB35_60 - 0x48, 0x83, 0xc3, 0xff, //0x00008000 addq $-1, %rbx - 0x41, 0x80, 0x3c, 0x12, 0x30, //0x00008004 cmpb $48, (%r10,%rdx) - 0x4d, 0x8d, 0x52, 0xff, //0x00008009 leaq $-1(%r10), %r10 - 0x0f, 0x84, 0xed, 0xff, 0xff, 0xff, //0x0000800d je LBB35_60 - 0x41, 0x88, 0x04, 0x24, //0x00008013 movb %al, (%r12) - 0x48, 0x01, 0xd3, //0x00008017 addq %rdx, %rbx - 0x48, 0x83, 0xfb, 0x02, //0x0000801a cmpq $2, %rbx - 0x0f, 0x8c, 0x46, 0x00, 0x00, 0x00, //0x0000801e jl LBB35_62 - 0x49, 0x8d, 0x04, 0x12, //0x00008024 leaq (%r10,%rdx), %rax - 0x48, 0x83, 0xc0, 0x02, //0x00008028 addq $2, %rax - 0xc6, 0x01, 0x2e, //0x0000802c movb $46, (%rcx) - 0xc6, 0x00, 0x65, //0x0000802f movb $101, (%rax) - 0x45, 0x85, 0xc9, //0x00008032 testl %r9d, %r9d - 0x0f, 0x8e, 0x43, 0x00, 0x00, 0x00, //0x00008035 jle LBB35_65 - //0x0000803b LBB35_66 - 0x41, 0x83, 0xc1, 0xff, //0x0000803b addl $-1, %r9d - 0xc6, 0x40, 0x01, 0x2b, //0x0000803f movb $43, $1(%rax) - 0x44, 0x89, 0xc9, //0x00008043 movl %r9d, %ecx - 0x83, 0xf9, 0x0a, //0x00008046 cmpl $10, %ecx - 0x0f, 0x8c, 0x44, 0x00, 0x00, 0x00, //0x00008049 jl LBB35_69 - //0x0000804f LBB35_68 - 0x48, 0x63, 0xc9, //0x0000804f movslq %ecx, %rcx - 0x48, 0x8d, 0x15, 0x97, 0x43, 0x00, 0x00, //0x00008052 leaq $17303(%rip), %rdx /* _Digits+0(%rip) */ - 0x0f, 0xb7, 0x0c, 0x4a, //0x00008059 movzwl (%rdx,%rcx,2), %ecx - 0x66, 0x89, 0x48, 0x02, //0x0000805d movw %cx, $2(%rax) - 0x48, 0x83, 0xc0, 0x04, //0x00008061 addq $4, %rax - 0xe9, 0x59, 0x07, 0x00, 0x00, //0x00008065 jmp LBB35_155 - //0x0000806a LBB35_62 - 0x49, 0x8d, 0x04, 0x12, //0x0000806a leaq (%r10,%rdx), %rax - 0x48, 0x83, 0xc0, 0x01, //0x0000806e addq $1, %rax - 0xc6, 0x00, 0x65, //0x00008072 movb $101, (%rax) - 0x45, 0x85, 0xc9, //0x00008075 testl %r9d, %r9d - 0x0f, 0x8f, 0xbd, 0xff, 0xff, 0xff, //0x00008078 jg LBB35_66 - //0x0000807e LBB35_65 - 0xc6, 0x40, 0x01, 0x2d, //0x0000807e movb $45, $1(%rax) - 0xb9, 0x01, 0x00, 0x00, 0x00, //0x00008082 movl $1, %ecx - 0x44, 0x29, 0xc9, //0x00008087 subl %r9d, %ecx - 0x83, 0xf9, 0x0a, //0x0000808a cmpl $10, %ecx - 0x0f, 0x8d, 0xbc, 0xff, 0xff, 0xff, //0x0000808d jge LBB35_68 - //0x00008093 LBB35_69 - 0x80, 0xc1, 0x30, //0x00008093 addb $48, %cl - 0x88, 0x48, 0x02, //0x00008096 movb %cl, $2(%rax) - 0x48, 0x83, 0xc0, 0x03, //0x00008099 addq $3, %rax - 0xe9, 0x21, 0x07, 0x00, 0x00, //0x0000809d jmp LBB35_155 - //0x000080a2 LBB35_141 - 0x4c, 0x89, 0xe6, //0x000080a2 movq %r12, %rsi - 0x4d, 0x89, 0xf9, //0x000080a5 movq %r15, %r9 - 0x49, 0x83, 0xe1, 0x80, //0x000080a8 andq $-128, %r9 - 0x49, 0x8d, 0x41, 0x80, //0x000080ac leaq $-128(%r9), %rax - 0x48, 0x89, 0xc3, //0x000080b0 movq %rax, %rbx - 0x48, 0xc1, 0xeb, 0x07, //0x000080b3 shrq $7, %rbx - 0x48, 0x83, 0xc3, 0x01, //0x000080b7 addq $1, %rbx - 0x41, 0x89, 0xdc, //0x000080bb movl %ebx, %r12d - 0x41, 0x83, 0xe4, 0x03, //0x000080be andl $3, %r12d - 0x48, 0x3d, 0x80, 0x01, 0x00, 0x00, //0x000080c2 cmpq $384, %rax - 0x0f, 0x83, 0x07, 0x00, 0x00, 0x00, //0x000080c8 jae LBB35_143 - 0x31, 0xc9, //0x000080ce xorl %ecx, %ecx - 0xe9, 0xbc, 0x00, 0x00, 0x00, //0x000080d0 jmp LBB35_145 - //0x000080d5 LBB35_143 - 0x4b, 0x8d, 0x04, 0x02, //0x000080d5 leaq (%r10,%r8), %rax - 0x48, 0x8b, 0x4d, 0xd0, //0x000080d9 movq $-48(%rbp), %rcx - 0x48, 0x01, 0xc8, //0x000080dd addq %rcx, %rax - 0x48, 0x05, 0xe0, 0x01, 0x00, 0x00, //0x000080e0 addq $480, %rax - 0x48, 0x83, 0xe3, 0xfc, //0x000080e6 andq $-4, %rbx - 0x48, 0xf7, 0xdb, //0x000080ea negq %rbx - 0x31, 0xc9, //0x000080ed xorl %ecx, %ecx - 0xc5, 0xfd, 0x6f, 0x05, 0x09, 0xf8, 0xff, 0xff, //0x000080ef vmovdqa $-2039(%rip), %ymm0 /* LCPI35_0+0(%rip) */ - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000080f7 .p2align 4, 0x90 - //0x00008100 LBB35_144 - 0xc5, 0xfe, 0x7f, 0x84, 0x08, 0x20, 0xfe, 0xff, 0xff, //0x00008100 vmovdqu %ymm0, $-480(%rax,%rcx) - 0xc5, 0xfe, 0x7f, 0x84, 0x08, 0x40, 0xfe, 0xff, 0xff, //0x00008109 vmovdqu %ymm0, $-448(%rax,%rcx) - 0xc5, 0xfe, 0x7f, 0x84, 0x08, 0x60, 0xfe, 0xff, 0xff, //0x00008112 vmovdqu %ymm0, $-416(%rax,%rcx) - 0xc5, 0xfe, 0x7f, 0x84, 0x08, 0x80, 0xfe, 0xff, 0xff, //0x0000811b vmovdqu %ymm0, $-384(%rax,%rcx) - 0xc5, 0xfe, 0x7f, 0x84, 0x08, 0xa0, 0xfe, 0xff, 0xff, //0x00008124 vmovdqu %ymm0, $-352(%rax,%rcx) - 0xc5, 0xfe, 0x7f, 0x84, 0x08, 0xc0, 0xfe, 0xff, 0xff, //0x0000812d vmovdqu %ymm0, $-320(%rax,%rcx) - 0xc5, 0xfe, 0x7f, 0x84, 0x08, 0xe0, 0xfe, 0xff, 0xff, //0x00008136 vmovdqu %ymm0, $-288(%rax,%rcx) - 0xc5, 0xfe, 0x7f, 0x84, 0x08, 0x00, 0xff, 0xff, 0xff, //0x0000813f vmovdqu %ymm0, $-256(%rax,%rcx) - 0xc5, 0xfe, 0x7f, 0x84, 0x08, 0x20, 0xff, 0xff, 0xff, //0x00008148 vmovdqu %ymm0, $-224(%rax,%rcx) - 0xc5, 0xfe, 0x7f, 0x84, 0x08, 0x40, 0xff, 0xff, 0xff, //0x00008151 vmovdqu %ymm0, $-192(%rax,%rcx) - 0xc5, 0xfe, 0x7f, 0x84, 0x08, 0x60, 0xff, 0xff, 0xff, //0x0000815a vmovdqu %ymm0, $-160(%rax,%rcx) - 0xc5, 0xfe, 0x7f, 0x44, 0x08, 0x80, //0x00008163 vmovdqu %ymm0, $-128(%rax,%rcx) - 0xc5, 0xfe, 0x7f, 0x44, 0x08, 0xa0, //0x00008169 vmovdqu %ymm0, $-96(%rax,%rcx) - 0xc5, 0xfe, 0x7f, 0x44, 0x08, 0xc0, //0x0000816f vmovdqu %ymm0, $-64(%rax,%rcx) - 0xc5, 0xfe, 0x7f, 0x44, 0x08, 0xe0, //0x00008175 vmovdqu %ymm0, $-32(%rax,%rcx) - 0xc5, 0xfe, 0x7f, 0x04, 0x08, //0x0000817b vmovdqu %ymm0, (%rax,%rcx) - 0x48, 0x81, 0xc1, 0x00, 0x02, 0x00, 0x00, //0x00008180 addq $512, %rcx - 0x48, 0x83, 0xc3, 0x04, //0x00008187 addq $4, %rbx - 0x0f, 0x85, 0x6f, 0xff, 0xff, 0xff, //0x0000818b jne LBB35_144 - //0x00008191 LBB35_145 - 0x4d, 0x85, 0xe4, //0x00008191 testq %r12, %r12 - 0x0f, 0x84, 0x4a, 0x00, 0x00, 0x00, //0x00008194 je LBB35_148 - 0x4c, 0x01, 0xd1, //0x0000819a addq %r10, %rcx - 0x4c, 0x01, 0xc1, //0x0000819d addq %r8, %rcx - 0x48, 0x8b, 0x45, 0xd0, //0x000081a0 movq $-48(%rbp), %rax - 0x48, 0x01, 0xc8, //0x000081a4 addq %rcx, %rax - 0x48, 0x83, 0xc0, 0x60, //0x000081a7 addq $96, %rax - 0x49, 0xc1, 0xe4, 0x07, //0x000081ab shlq $7, %r12 - 0x31, 0xc9, //0x000081af xorl %ecx, %ecx - 0xc5, 0xfd, 0x6f, 0x05, 0x47, 0xf7, 0xff, 0xff, //0x000081b1 vmovdqa $-2233(%rip), %ymm0 /* LCPI35_0+0(%rip) */ - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000081b9 .p2align 4, 0x90 - //0x000081c0 LBB35_147 - 0xc5, 0xfe, 0x7f, 0x44, 0x08, 0xa0, //0x000081c0 vmovdqu %ymm0, $-96(%rax,%rcx) - 0xc5, 0xfe, 0x7f, 0x44, 0x08, 0xc0, //0x000081c6 vmovdqu %ymm0, $-64(%rax,%rcx) - 0xc5, 0xfe, 0x7f, 0x44, 0x08, 0xe0, //0x000081cc vmovdqu %ymm0, $-32(%rax,%rcx) - 0xc5, 0xfe, 0x7f, 0x04, 0x08, //0x000081d2 vmovdqu %ymm0, (%rax,%rcx) - 0x48, 0x83, 0xe9, 0x80, //0x000081d7 subq $-128, %rcx - 0x49, 0x39, 0xcc, //0x000081db cmpq %rcx, %r12 - 0x0f, 0x85, 0xdc, 0xff, 0xff, 0xff, //0x000081de jne LBB35_147 - //0x000081e4 LBB35_148 - 0x4d, 0x39, 0xcf, //0x000081e4 cmpq %r9, %r15 - 0x0f, 0x85, 0x0c, 0x00, 0x00, 0x00, //0x000081e7 jne LBB35_150 - 0x48, 0x89, 0xf0, //0x000081ed movq %rsi, %rax - 0x4c, 0x8b, 0x6d, 0xd0, //0x000081f0 movq $-48(%rbp), %r13 - 0xe9, 0xca, 0x05, 0x00, 0x00, //0x000081f4 jmp LBB35_155 - //0x000081f9 LBB35_150 - 0x41, 0xf6, 0xc7, 0x70, //0x000081f9 testb $112, %r15b - 0x49, 0x89, 0xf4, //0x000081fd movq %rsi, %r12 - 0x0f, 0x84, 0x89, 0x00, 0x00, 0x00, //0x00008200 je LBB35_151 - //0x00008206 LBB35_138 - 0x4d, 0x39, 0xee, //0x00008206 cmpq %r13, %r14 - 0x4d, 0x0f, 0x47, 0xee, //0x00008209 cmovaq %r14, %r13 - 0x4d, 0x29, 0xdd, //0x0000820d subq %r11, %r13 - 0x4c, 0x89, 0xe8, //0x00008210 movq %r13, %rax - 0x48, 0x83, 0xe0, 0xf0, //0x00008213 andq $-16, %rax - 0x48, 0x01, 0xc2, //0x00008217 addq %rax, %rdx - 0x4d, 0x01, 0xca, //0x0000821a addq %r9, %r10 - 0x4d, 0x01, 0xc2, //0x0000821d addq %r8, %r10 - 0x4c, 0x03, 0x55, 0xd0, //0x00008220 addq $-48(%rbp), %r10 - 0x48, 0x89, 0xc1, //0x00008224 movq %rax, %rcx - 0x4c, 0x29, 0xc9, //0x00008227 subq %r9, %rcx - 0x31, 0xdb, //0x0000822a xorl %ebx, %ebx - 0xc5, 0xf9, 0x6f, 0x05, 0xec, 0xf6, 0xff, 0xff, //0x0000822c vmovdqa $-2324(%rip), %xmm0 /* LCPI35_1+0(%rip) */ - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008234 .p2align 4, 0x90 - //0x00008240 LBB35_139 - 0xc4, 0xc1, 0x7a, 0x7f, 0x04, 0x1a, //0x00008240 vmovdqu %xmm0, (%r10,%rbx) - 0x48, 0x83, 0xc3, 0x10, //0x00008246 addq $16, %rbx - 0x48, 0x39, 0xd9, //0x0000824a cmpq %rbx, %rcx - 0x0f, 0x85, 0xed, 0xff, 0xff, 0xff, //0x0000824d jne LBB35_139 - 0x49, 0x39, 0xc5, //0x00008253 cmpq %rax, %r13 - 0x0f, 0x85, 0x36, 0x00, 0x00, 0x00, //0x00008256 jne LBB35_152 - //0x0000825c LBB35_134 - 0x4c, 0x89, 0xe0, //0x0000825c movq %r12, %rax - 0x4c, 0x8b, 0x6d, 0xd0, //0x0000825f movq $-48(%rbp), %r13 - 0xe9, 0x5b, 0x05, 0x00, 0x00, //0x00008263 jmp LBB35_155 - //0x00008268 LBB35_23 - 0x41, 0x81, 0xfb, 0x10, 0x27, 0x00, 0x00, //0x00008268 cmpl $10000, %r11d - 0x4c, 0x89, 0xc9, //0x0000826f movq %r9, %rcx - 0x48, 0x83, 0xd9, 0x00, //0x00008272 sbbq $0, %rcx - 0x48, 0x83, 0xc1, 0x05, //0x00008276 addq $5, %rcx - 0x41, 0x81, 0xfb, 0x10, 0x27, 0x00, 0x00, //0x0000827a cmpl $10000, %r11d - 0x0f, 0x83, 0x97, 0xfa, 0xff, 0xff, //0x00008281 jae LBB35_17 - 0x48, 0x89, 0xc8, //0x00008287 movq %rcx, %rax - 0xe9, 0x63, 0xfc, 0xff, 0xff, //0x0000828a jmp LBB35_25 - //0x0000828f LBB35_151 - 0x4c, 0x01, 0xca, //0x0000828f addq %r9, %rdx - //0x00008292 LBB35_152 - 0x4c, 0x8b, 0x6d, 0xd0, //0x00008292 movq $-48(%rbp), %r13 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008296 .p2align 4, 0x90 - //0x000082a0 LBB35_153 - 0xc6, 0x02, 0x30, //0x000082a0 movb $48, (%rdx) - 0x48, 0x83, 0xc2, 0x01, //0x000082a3 addq $1, %rdx - 0x4c, 0x39, 0xe2, //0x000082a7 cmpq %r12, %rdx - 0x0f, 0x82, 0xf0, 0xff, 0xff, 0xff, //0x000082aa jb LBB35_153 - 0x4c, 0x89, 0xe0, //0x000082b0 movq %r12, %rax - 0xe9, 0x0b, 0x05, 0x00, 0x00, //0x000082b3 jmp LBB35_155 - //0x000082b8 LBB35_76 - 0x48, 0x8b, 0x55, 0xd0, //0x000082b8 movq $-48(%rbp), %rdx - 0x49, 0x8d, 0x1c, 0x12, //0x000082bc leaq (%r10,%rdx), %rbx - 0x48, 0x81, 0xc3, 0xe2, 0x01, 0x00, 0x00, //0x000082c0 addq $482, %rbx - 0x49, 0x83, 0xe4, 0xfc, //0x000082c7 andq $-4, %r12 - 0x49, 0xf7, 0xdc, //0x000082cb negq %r12 - 0x31, 0xd2, //0x000082ce xorl %edx, %edx - 0xc5, 0xfd, 0x6f, 0x05, 0x28, 0xf6, 0xff, 0xff, //0x000082d0 vmovdqa $-2520(%rip), %ymm0 /* LCPI35_0+0(%rip) */ - //0x000082d8 LBB35_77 - 0xc5, 0xfe, 0x7f, 0x84, 0x13, 0x20, 0xfe, 0xff, 0xff, //0x000082d8 vmovdqu %ymm0, $-480(%rbx,%rdx) - 0xc5, 0xfe, 0x7f, 0x84, 0x13, 0x40, 0xfe, 0xff, 0xff, //0x000082e1 vmovdqu %ymm0, $-448(%rbx,%rdx) - 0xc5, 0xfe, 0x7f, 0x84, 0x13, 0x60, 0xfe, 0xff, 0xff, //0x000082ea vmovdqu %ymm0, $-416(%rbx,%rdx) - 0xc5, 0xfe, 0x7f, 0x84, 0x13, 0x80, 0xfe, 0xff, 0xff, //0x000082f3 vmovdqu %ymm0, $-384(%rbx,%rdx) - 0xc5, 0xfe, 0x7f, 0x84, 0x13, 0xa0, 0xfe, 0xff, 0xff, //0x000082fc vmovdqu %ymm0, $-352(%rbx,%rdx) - 0xc5, 0xfe, 0x7f, 0x84, 0x13, 0xc0, 0xfe, 0xff, 0xff, //0x00008305 vmovdqu %ymm0, $-320(%rbx,%rdx) - 0xc5, 0xfe, 0x7f, 0x84, 0x13, 0xe0, 0xfe, 0xff, 0xff, //0x0000830e vmovdqu %ymm0, $-288(%rbx,%rdx) - 0xc5, 0xfe, 0x7f, 0x84, 0x13, 0x00, 0xff, 0xff, 0xff, //0x00008317 vmovdqu %ymm0, $-256(%rbx,%rdx) - 0xc5, 0xfe, 0x7f, 0x84, 0x13, 0x20, 0xff, 0xff, 0xff, //0x00008320 vmovdqu %ymm0, $-224(%rbx,%rdx) - 0xc5, 0xfe, 0x7f, 0x84, 0x13, 0x40, 0xff, 0xff, 0xff, //0x00008329 vmovdqu %ymm0, $-192(%rbx,%rdx) - 0xc5, 0xfe, 0x7f, 0x84, 0x13, 0x60, 0xff, 0xff, 0xff, //0x00008332 vmovdqu %ymm0, $-160(%rbx,%rdx) - 0xc5, 0xfe, 0x7f, 0x44, 0x13, 0x80, //0x0000833b vmovdqu %ymm0, $-128(%rbx,%rdx) - 0xc5, 0xfe, 0x7f, 0x44, 0x13, 0xa0, //0x00008341 vmovdqu %ymm0, $-96(%rbx,%rdx) - 0xc5, 0xfe, 0x7f, 0x44, 0x13, 0xc0, //0x00008347 vmovdqu %ymm0, $-64(%rbx,%rdx) - 0xc5, 0xfe, 0x7f, 0x44, 0x13, 0xe0, //0x0000834d vmovdqu %ymm0, $-32(%rbx,%rdx) - 0xc5, 0xfe, 0x7f, 0x04, 0x13, //0x00008353 vmovdqu %ymm0, (%rbx,%rdx) - 0x48, 0x81, 0xc2, 0x00, 0x02, 0x00, 0x00, //0x00008358 addq $512, %rdx - 0x49, 0x83, 0xc4, 0x04, //0x0000835f addq $4, %r12 - 0x0f, 0x85, 0x6f, 0xff, 0xff, 0xff, //0x00008363 jne LBB35_77 - //0x00008369 LBB35_78 - 0x4d, 0x85, 0xff, //0x00008369 testq %r15, %r15 - 0x0f, 0x84, 0x40, 0x00, 0x00, 0x00, //0x0000836c je LBB35_81 - 0x4c, 0x01, 0xd2, //0x00008372 addq %r10, %rdx - 0x48, 0x8b, 0x75, 0xd0, //0x00008375 movq $-48(%rbp), %rsi - 0x48, 0x01, 0xf2, //0x00008379 addq %rsi, %rdx - 0x48, 0x83, 0xc2, 0x62, //0x0000837c addq $98, %rdx - 0x49, 0xc1, 0xe7, 0x07, //0x00008380 shlq $7, %r15 - 0x31, 0xf6, //0x00008384 xorl %esi, %esi - 0xc5, 0xfd, 0x6f, 0x05, 0x72, 0xf5, 0xff, 0xff, //0x00008386 vmovdqa $-2702(%rip), %ymm0 /* LCPI35_0+0(%rip) */ - //0x0000838e LBB35_80 - 0xc5, 0xfe, 0x7f, 0x44, 0x32, 0xa0, //0x0000838e vmovdqu %ymm0, $-96(%rdx,%rsi) - 0xc5, 0xfe, 0x7f, 0x44, 0x32, 0xc0, //0x00008394 vmovdqu %ymm0, $-64(%rdx,%rsi) - 0xc5, 0xfe, 0x7f, 0x44, 0x32, 0xe0, //0x0000839a vmovdqu %ymm0, $-32(%rdx,%rsi) - 0xc5, 0xfe, 0x7f, 0x04, 0x32, //0x000083a0 vmovdqu %ymm0, (%rdx,%rsi) - 0x48, 0x83, 0xee, 0x80, //0x000083a5 subq $-128, %rsi - 0x49, 0x39, 0xf7, //0x000083a9 cmpq %rsi, %r15 - 0x0f, 0x85, 0xdc, 0xff, 0xff, 0xff, //0x000083ac jne LBB35_80 - //0x000083b2 LBB35_81 - 0x49, 0x89, 0xfc, //0x000083b2 movq %rdi, %r12 - 0x49, 0x01, 0xcc, //0x000083b5 addq %rcx, %r12 - 0x49, 0x39, 0xcb, //0x000083b8 cmpq %rcx, %r11 - 0x0f, 0x84, 0x21, 0x00, 0x00, 0x00, //0x000083bb je LBB35_84 - //0x000083c1 LBB35_82 - 0x44, 0x01, 0xc9, //0x000083c1 addl %r9d, %ecx - 0xf7, 0xd9, //0x000083c4 negl %ecx - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000083c6 .p2align 4, 0x90 - //0x000083d0 LBB35_83 - 0x41, 0xc6, 0x04, 0x24, 0x30, //0x000083d0 movb $48, (%r12) - 0x49, 0x83, 0xc4, 0x01, //0x000083d5 addq $1, %r12 - 0x83, 0xc1, 0xff, //0x000083d9 addl $-1, %ecx - 0x0f, 0x85, 0xee, 0xff, 0xff, 0xff, //0x000083dc jne LBB35_83 - //0x000083e2 LBB35_84 - 0x4f, 0x8d, 0x3c, 0x04, //0x000083e2 leaq (%r12,%r8), %r15 - 0x3d, 0x10, 0x27, 0x00, 0x00, //0x000083e6 cmpl $10000, %eax - 0x0f, 0x82, 0x50, 0x00, 0x00, 0x00, //0x000083eb jb LBB35_85 - 0x89, 0xc2, //0x000083f1 movl %eax, %edx - 0xbb, 0x59, 0x17, 0xb7, 0xd1, //0x000083f3 movl $3518437209, %ebx - 0x48, 0x0f, 0xaf, 0xda, //0x000083f8 imulq %rdx, %rbx - 0x48, 0xc1, 0xeb, 0x2d, //0x000083fc shrq $45, %rbx - 0x69, 0xd3, 0xf0, 0xd8, 0xff, 0xff, //0x00008400 imull $-10000, %ebx, %edx - 0x01, 0xc2, //0x00008406 addl %eax, %edx - 0x0f, 0x84, 0x4b, 0x00, 0x00, 0x00, //0x00008408 je LBB35_87 - 0x89, 0xd0, //0x0000840e movl %edx, %eax - 0x48, 0x69, 0xc0, 0x1f, 0x85, 0xeb, 0x51, //0x00008410 imulq $1374389535, %rax, %rax - 0x48, 0xc1, 0xe8, 0x25, //0x00008417 shrq $37, %rax - 0x6b, 0xf0, 0x64, //0x0000841b imull $100, %eax, %esi - 0x29, 0xf2, //0x0000841e subl %esi, %edx - 0x48, 0x8d, 0x35, 0xc9, 0x3f, 0x00, 0x00, //0x00008420 leaq $16329(%rip), %rsi /* _Digits+0(%rip) */ - 0x0f, 0xb7, 0x14, 0x56, //0x00008427 movzwl (%rsi,%rdx,2), %edx - 0x66, 0x41, 0x89, 0x57, 0xfe, //0x0000842b movw %dx, $-2(%r15) - 0x0f, 0xb7, 0x04, 0x46, //0x00008430 movzwl (%rsi,%rax,2), %eax - 0x66, 0x41, 0x89, 0x47, 0xfc, //0x00008434 movw %ax, $-4(%r15) - 0x45, 0x31, 0xdb, //0x00008439 xorl %r11d, %r11d - 0xe9, 0x1e, 0x00, 0x00, 0x00, //0x0000843c jmp LBB35_89 - //0x00008441 LBB35_85 - 0x45, 0x31, 0xdb, //0x00008441 xorl %r11d, %r11d - 0x4c, 0x89, 0xfa, //0x00008444 movq %r15, %rdx - 0x89, 0xc3, //0x00008447 movl %eax, %ebx - 0x83, 0xfb, 0x64, //0x00008449 cmpl $100, %ebx - 0x0f, 0x83, 0x1a, 0x00, 0x00, 0x00, //0x0000844c jae LBB35_92 - //0x00008452 LBB35_91 - 0x89, 0xd8, //0x00008452 movl %ebx, %eax - 0xe9, 0x55, 0x00, 0x00, 0x00, //0x00008454 jmp LBB35_94 - //0x00008459 LBB35_87 - 0x41, 0xbb, 0x04, 0x00, 0x00, 0x00, //0x00008459 movl $4, %r11d - //0x0000845f LBB35_89 - 0x49, 0x8d, 0x57, 0xfc, //0x0000845f leaq $-4(%r15), %rdx - 0x83, 0xfb, 0x64, //0x00008463 cmpl $100, %ebx - 0x0f, 0x82, 0xe6, 0xff, 0xff, 0xff, //0x00008466 jb LBB35_91 - //0x0000846c LBB35_92 - 0x48, 0x83, 0xc2, 0xff, //0x0000846c addq $-1, %rdx - 0x48, 0x8d, 0x35, 0x79, 0x3f, 0x00, 0x00, //0x00008470 leaq $16249(%rip), %rsi /* _Digits+0(%rip) */ - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008477 .p2align 4, 0x90 - //0x00008480 LBB35_93 - 0x89, 0xd8, //0x00008480 movl %ebx, %eax - 0x48, 0x69, 0xc0, 0x1f, 0x85, 0xeb, 0x51, //0x00008482 imulq $1374389535, %rax, %rax - 0x48, 0xc1, 0xe8, 0x25, //0x00008489 shrq $37, %rax - 0x6b, 0xf8, 0x64, //0x0000848d imull $100, %eax, %edi - 0x89, 0xd9, //0x00008490 movl %ebx, %ecx - 0x29, 0xf9, //0x00008492 subl %edi, %ecx - 0x0f, 0xb7, 0x0c, 0x4e, //0x00008494 movzwl (%rsi,%rcx,2), %ecx - 0x66, 0x89, 0x4a, 0xff, //0x00008498 movw %cx, $-1(%rdx) - 0x48, 0x83, 0xc2, 0xfe, //0x0000849c addq $-2, %rdx - 0x81, 0xfb, 0x0f, 0x27, 0x00, 0x00, //0x000084a0 cmpl $9999, %ebx - 0x89, 0xc3, //0x000084a6 movl %eax, %ebx - 0x0f, 0x87, 0xd2, 0xff, 0xff, 0xff, //0x000084a8 ja LBB35_93 - //0x000084ae LBB35_94 - 0x83, 0xf8, 0x0a, //0x000084ae cmpl $10, %eax - 0x0f, 0x82, 0x1a, 0x00, 0x00, 0x00, //0x000084b1 jb LBB35_96 - 0x89, 0xc0, //0x000084b7 movl %eax, %eax - 0x48, 0x8d, 0x0d, 0x30, 0x3f, 0x00, 0x00, //0x000084b9 leaq $16176(%rip), %rcx /* _Digits+0(%rip) */ - 0x0f, 0xb7, 0x04, 0x41, //0x000084c0 movzwl (%rcx,%rax,2), %eax - 0x4d, 0x89, 0xe2, //0x000084c4 movq %r12, %r10 - 0x66, 0x41, 0x89, 0x04, 0x24, //0x000084c7 movw %ax, (%r12) - 0xe9, 0x09, 0x00, 0x00, 0x00, //0x000084cc jmp LBB35_97 - //0x000084d1 LBB35_96 - 0x04, 0x30, //0x000084d1 addb $48, %al - 0x4d, 0x89, 0xe2, //0x000084d3 movq %r12, %r10 - 0x41, 0x88, 0x04, 0x24, //0x000084d6 movb %al, (%r12) - //0x000084da LBB35_97 - 0x4d, 0x29, 0xdf, //0x000084da subq %r11, %r15 - 0x4d, 0x29, 0xd8, //0x000084dd subq %r11, %r8 - 0x49, 0x83, 0xc0, 0x01, //0x000084e0 addq $1, %r8 - 0x43, 0x8d, 0x04, 0x33, //0x000084e4 leal (%r11,%r14), %eax - 0xb1, 0x01, //0x000084e8 movb $1, %cl - 0x28, 0xc1, //0x000084ea subb %al, %cl - 0xba, 0x01, 0x00, 0x00, 0x00, //0x000084ec movl $1, %edx - 0x44, 0x29, 0xf2, //0x000084f1 subl %r14d, %edx - 0x44, 0x29, 0xda, //0x000084f4 subl %r11d, %edx - 0x47, 0x8d, 0x24, 0x1e, //0x000084f7 leal (%r14,%r11), %r12d - 0x41, 0x83, 0xc4, 0xfe, //0x000084fb addl $-2, %r12d - 0x45, 0x01, 0xde, //0x000084ff addl %r11d, %r14d - 0x41, 0x83, 0xc6, 0xff, //0x00008502 addl $-1, %r14d - 0x31, 0xdb, //0x00008506 xorl %ebx, %ebx - 0x44, 0x89, 0xe6, //0x00008508 movl %r12d, %esi - 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000850b .p2align 4, 0x90 - //0x00008510 LBB35_98 - 0x80, 0xc1, 0x03, //0x00008510 addb $3, %cl - 0x83, 0xc6, 0x01, //0x00008513 addl $1, %esi - 0x41, 0x80, 0x7c, 0x1f, 0xff, 0x30, //0x00008516 cmpb $48, $-1(%r15,%rbx) - 0x48, 0x8d, 0x5b, 0xff, //0x0000851c leaq $-1(%rbx), %rbx - 0x0f, 0x84, 0xea, 0xff, 0xff, 0xff, //0x00008520 je LBB35_98 - 0x49, 0x8d, 0x04, 0x1f, //0x00008526 leaq (%r15,%rbx), %rax - 0x48, 0x83, 0xc0, 0x01, //0x0000852a addq $1, %rax - 0x45, 0x85, 0xc9, //0x0000852e testl %r9d, %r9d - 0x0f, 0x8e, 0x45, 0x00, 0x00, 0x00, //0x00008531 jle LBB35_100 - 0x45, 0x29, 0xdd, //0x00008537 subl %r11d, %r13d - 0x42, 0x8d, 0x3c, 0x2b, //0x0000853a leal (%rbx,%r13), %edi - 0x83, 0xc7, 0x01, //0x0000853e addl $1, %edi - 0x41, 0x39, 0xf9, //0x00008541 cmpl %edi, %r9d - 0x0f, 0x8d, 0x3b, 0x00, 0x00, 0x00, //0x00008544 jge LBB35_102 - 0x83, 0xc2, 0xff, //0x0000854a addl $-1, %edx - 0x48, 0x63, 0xc2, //0x0000854d movslq %edx, %rax - 0x48, 0x8d, 0x34, 0x18, //0x00008550 leaq (%rax,%rbx), %rsi - 0x48, 0x83, 0xc6, 0x01, //0x00008554 addq $1, %rsi - 0x85, 0xf6, //0x00008558 testl %esi, %esi - 0x4c, 0x8b, 0x6d, 0xd0, //0x0000855a movq $-48(%rbp), %r13 - 0x0f, 0x8e, 0xf5, 0x00, 0x00, 0x00, //0x0000855e jle LBB35_120 - 0x41, 0x89, 0xf0, //0x00008564 movl %esi, %r8d - 0x49, 0x8d, 0x50, 0xff, //0x00008567 leaq $-1(%r8), %rdx - 0x48, 0x83, 0xfa, 0x03, //0x0000856b cmpq $3, %rdx - 0x0f, 0x83, 0x7b, 0x00, 0x00, 0x00, //0x0000856f jae LBB35_121 - 0x31, 0xd2, //0x00008575 xorl %edx, %edx - 0xe9, 0xa0, 0x00, 0x00, 0x00, //0x00008577 jmp LBB35_117 - //0x0000857c LBB35_100 - 0x4c, 0x8b, 0x6d, 0xd0, //0x0000857c movq $-48(%rbp), %r13 - 0xe9, 0x3e, 0x02, 0x00, 0x00, //0x00008580 jmp LBB35_155 - //0x00008585 LBB35_102 - 0x45, 0x89, 0xf6, //0x00008585 movl %r14d, %r14d - 0x49, 0x29, 0xde, //0x00008588 subq %rbx, %r14 - 0x45, 0x85, 0xf6, //0x0000858b testl %r14d, %r14d - 0x4c, 0x8b, 0x6d, 0xd0, //0x0000858e movq $-48(%rbp), %r13 - 0x0f, 0x8e, 0x2b, 0x02, 0x00, 0x00, //0x00008592 jle LBB35_155 - 0x45, 0x89, 0xe3, //0x00008598 movl %r12d, %r11d - 0x4c, 0x89, 0xd9, //0x0000859b movq %r11, %rcx - 0x48, 0x29, 0xd9, //0x0000859e subq %rbx, %rcx - 0x31, 0xd2, //0x000085a1 xorl %edx, %edx - 0x83, 0xf9, 0x7f, //0x000085a3 cmpl $127, %ecx - 0x0f, 0x82, 0x04, 0x02, 0x00, 0x00, //0x000085a6 jb LBB35_112 - 0x49, 0x29, 0xdb, //0x000085ac subq %rbx, %r11 - 0x41, 0x89, 0xc9, //0x000085af movl %ecx, %r9d - 0x49, 0x83, 0xc1, 0x01, //0x000085b2 addq $1, %r9 - 0x4c, 0x89, 0xca, //0x000085b6 movq %r9, %rdx - 0x48, 0x83, 0xe2, 0x80, //0x000085b9 andq $-128, %rdx - 0x4d, 0x01, 0xc2, //0x000085bd addq %r8, %r10 - 0x89, 0xf0, //0x000085c0 movl %esi, %eax - 0x48, 0x83, 0xc0, 0x01, //0x000085c2 addq $1, %rax - 0x48, 0x83, 0xe0, 0x80, //0x000085c6 andq $-128, %rax - 0x4c, 0x01, 0xd0, //0x000085ca addq %r10, %rax - 0x48, 0x8d, 0x4a, 0x80, //0x000085cd leaq $-128(%rdx), %rcx - 0x49, 0x89, 0xc8, //0x000085d1 movq %rcx, %r8 - 0x49, 0xc1, 0xe8, 0x07, //0x000085d4 shrq $7, %r8 - 0x49, 0x83, 0xc0, 0x01, //0x000085d8 addq $1, %r8 - 0x48, 0x81, 0xf9, 0x80, 0x01, 0x00, 0x00, //0x000085dc cmpq $384, %rcx - 0x0f, 0x83, 0x85, 0x00, 0x00, 0x00, //0x000085e3 jae LBB35_106 - 0x31, 0xc9, //0x000085e9 xorl %ecx, %ecx - 0xe9, 0x3f, 0x01, 0x00, 0x00, //0x000085eb jmp LBB35_108 - //0x000085f0 LBB35_121 - 0x83, 0xe6, 0xfc, //0x000085f0 andl $-4, %esi - 0x48, 0xf7, 0xde, //0x000085f3 negq %rsi - 0x31, 0xd2, //0x000085f6 xorl %edx, %edx - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000085f8 .p2align 4, 0x90 - //0x00008600 LBB35_122 - 0x49, 0x8d, 0x3c, 0x17, //0x00008600 leaq (%r15,%rdx), %rdi - 0x8b, 0x44, 0x3b, 0xfd, //0x00008604 movl $-3(%rbx,%rdi), %eax - 0x89, 0x44, 0x3b, 0xfe, //0x00008608 movl %eax, $-2(%rbx,%rdi) - 0x48, 0x83, 0xc2, 0xfc, //0x0000860c addq $-4, %rdx - 0x48, 0x39, 0xd6, //0x00008610 cmpq %rdx, %rsi - 0x0f, 0x85, 0xe7, 0xff, 0xff, 0xff, //0x00008613 jne LBB35_122 - 0x48, 0xf7, 0xda, //0x00008619 negq %rdx - //0x0000861c LBB35_117 - 0x41, 0xf6, 0xc0, 0x03, //0x0000861c testb $3, %r8b - 0x0f, 0x84, 0x33, 0x00, 0x00, 0x00, //0x00008620 je LBB35_120 - 0x0f, 0xb6, 0xf9, //0x00008626 movzbl %cl, %edi - 0x83, 0xe7, 0x03, //0x00008629 andl $3, %edi - 0x48, 0xf7, 0xdf, //0x0000862c negq %rdi - 0x4c, 0x89, 0xf9, //0x0000862f movq %r15, %rcx - 0x48, 0x29, 0xd1, //0x00008632 subq %rdx, %rcx - 0x31, 0xd2, //0x00008635 xorl %edx, %edx - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008637 .p2align 4, 0x90 - //0x00008640 LBB35_119 - 0x48, 0x8d, 0x34, 0x11, //0x00008640 leaq (%rcx,%rdx), %rsi - 0x0f, 0xb6, 0x04, 0x33, //0x00008644 movzbl (%rbx,%rsi), %eax - 0x88, 0x44, 0x33, 0x01, //0x00008648 movb %al, $1(%rbx,%rsi) - 0x48, 0x83, 0xc2, 0xff, //0x0000864c addq $-1, %rdx - 0x48, 0x39, 0xd7, //0x00008650 cmpq %rdx, %rdi - 0x0f, 0x85, 0xe7, 0xff, 0xff, 0xff, //0x00008653 jne LBB35_119 - //0x00008659 LBB35_120 - 0x49, 0x63, 0xc1, //0x00008659 movslq %r9d, %rax - 0x41, 0xc6, 0x04, 0x02, 0x2e, //0x0000865c movb $46, (%r10,%rax) - 0x49, 0x8d, 0x04, 0x1f, //0x00008661 leaq (%r15,%rbx), %rax - 0x48, 0x83, 0xc0, 0x02, //0x00008665 addq $2, %rax - 0xe9, 0x55, 0x01, 0x00, 0x00, //0x00008669 jmp LBB35_155 - //0x0000866e LBB35_106 - 0x44, 0x89, 0xde, //0x0000866e movl %r11d, %esi - 0x48, 0x83, 0xc6, 0x01, //0x00008671 addq $1, %rsi - 0x48, 0x83, 0xe6, 0x80, //0x00008675 andq $-128, %rsi - 0x48, 0x83, 0xc6, 0x80, //0x00008679 addq $-128, %rsi - 0x48, 0xc1, 0xee, 0x07, //0x0000867d shrq $7, %rsi - 0x48, 0x83, 0xc6, 0x01, //0x00008681 addq $1, %rsi - 0x48, 0x83, 0xe6, 0xfc, //0x00008685 andq $-4, %rsi - 0x48, 0xf7, 0xde, //0x00008689 negq %rsi - 0x31, 0xc9, //0x0000868c xorl %ecx, %ecx - 0xc5, 0xfd, 0x6f, 0x05, 0x6a, 0xf2, 0xff, 0xff, //0x0000868e vmovdqa $-3478(%rip), %ymm0 /* LCPI35_0+0(%rip) */ - //0x00008696 LBB35_107 - 0x49, 0x8d, 0x3c, 0x0f, //0x00008696 leaq (%r15,%rcx), %rdi - 0xc5, 0xfe, 0x7f, 0x44, 0x3b, 0x01, //0x0000869a vmovdqu %ymm0, $1(%rbx,%rdi) - 0xc5, 0xfe, 0x7f, 0x44, 0x3b, 0x21, //0x000086a0 vmovdqu %ymm0, $33(%rbx,%rdi) - 0xc5, 0xfe, 0x7f, 0x44, 0x3b, 0x41, //0x000086a6 vmovdqu %ymm0, $65(%rbx,%rdi) - 0xc5, 0xfe, 0x7f, 0x44, 0x3b, 0x61, //0x000086ac vmovdqu %ymm0, $97(%rbx,%rdi) - 0xc5, 0xfe, 0x7f, 0x84, 0x3b, 0x81, 0x00, 0x00, 0x00, //0x000086b2 vmovdqu %ymm0, $129(%rbx,%rdi) - 0xc5, 0xfe, 0x7f, 0x84, 0x3b, 0xa1, 0x00, 0x00, 0x00, //0x000086bb vmovdqu %ymm0, $161(%rbx,%rdi) - 0xc5, 0xfe, 0x7f, 0x84, 0x3b, 0xc1, 0x00, 0x00, 0x00, //0x000086c4 vmovdqu %ymm0, $193(%rbx,%rdi) - 0xc5, 0xfe, 0x7f, 0x84, 0x3b, 0xe1, 0x00, 0x00, 0x00, //0x000086cd vmovdqu %ymm0, $225(%rbx,%rdi) - 0xc5, 0xfe, 0x7f, 0x84, 0x3b, 0x01, 0x01, 0x00, 0x00, //0x000086d6 vmovdqu %ymm0, $257(%rbx,%rdi) - 0xc5, 0xfe, 0x7f, 0x84, 0x3b, 0x21, 0x01, 0x00, 0x00, //0x000086df vmovdqu %ymm0, $289(%rbx,%rdi) - 0xc5, 0xfe, 0x7f, 0x84, 0x3b, 0x41, 0x01, 0x00, 0x00, //0x000086e8 vmovdqu %ymm0, $321(%rbx,%rdi) - 0xc5, 0xfe, 0x7f, 0x84, 0x3b, 0x61, 0x01, 0x00, 0x00, //0x000086f1 vmovdqu %ymm0, $353(%rbx,%rdi) - 0xc5, 0xfe, 0x7f, 0x84, 0x3b, 0x81, 0x01, 0x00, 0x00, //0x000086fa vmovdqu %ymm0, $385(%rbx,%rdi) - 0xc5, 0xfe, 0x7f, 0x84, 0x3b, 0xa1, 0x01, 0x00, 0x00, //0x00008703 vmovdqu %ymm0, $417(%rbx,%rdi) - 0xc5, 0xfe, 0x7f, 0x84, 0x3b, 0xc1, 0x01, 0x00, 0x00, //0x0000870c vmovdqu %ymm0, $449(%rbx,%rdi) - 0xc5, 0xfe, 0x7f, 0x84, 0x3b, 0xe1, 0x01, 0x00, 0x00, //0x00008715 vmovdqu %ymm0, $481(%rbx,%rdi) - 0x48, 0x81, 0xc1, 0x00, 0x02, 0x00, 0x00, //0x0000871e addq $512, %rcx - 0x48, 0x83, 0xc6, 0x04, //0x00008725 addq $4, %rsi - 0x0f, 0x85, 0x67, 0xff, 0xff, 0xff, //0x00008729 jne LBB35_107 - //0x0000872f LBB35_108 - 0x48, 0x01, 0xd8, //0x0000872f addq %rbx, %rax - 0x41, 0xf6, 0xc0, 0x03, //0x00008732 testb $3, %r8b - 0x0f, 0x84, 0x5c, 0x00, 0x00, 0x00, //0x00008736 je LBB35_111 - 0x41, 0x83, 0xc3, 0x01, //0x0000873c addl $1, %r11d - 0x41, 0x81, 0xe3, 0x80, 0x01, 0x00, 0x00, //0x00008740 andl $384, %r11d - 0x41, 0x83, 0xc3, 0x80, //0x00008747 addl $-128, %r11d - 0x41, 0xc1, 0xeb, 0x07, //0x0000874b shrl $7, %r11d - 0x41, 0x80, 0xc3, 0x01, //0x0000874f addb $1, %r11b - 0x45, 0x0f, 0xb6, 0xc3, //0x00008753 movzbl %r11b, %r8d - 0x41, 0x83, 0xe0, 0x03, //0x00008757 andl $3, %r8d - 0x49, 0xc1, 0xe0, 0x07, //0x0000875b shlq $7, %r8 - 0x4c, 0x01, 0xf9, //0x0000875f addq %r15, %rcx - 0x48, 0x83, 0xc1, 0x61, //0x00008762 addq $97, %rcx - 0x31, 0xf6, //0x00008766 xorl %esi, %esi - 0xc5, 0xfd, 0x6f, 0x05, 0x90, 0xf1, 0xff, 0xff, //0x00008768 vmovdqa $-3696(%rip), %ymm0 /* LCPI35_0+0(%rip) */ - //0x00008770 LBB35_110 - 0x48, 0x8d, 0x3c, 0x31, //0x00008770 leaq (%rcx,%rsi), %rdi - 0xc5, 0xfe, 0x7f, 0x44, 0x3b, 0xa0, //0x00008774 vmovdqu %ymm0, $-96(%rbx,%rdi) - 0xc5, 0xfe, 0x7f, 0x44, 0x3b, 0xc0, //0x0000877a vmovdqu %ymm0, $-64(%rbx,%rdi) - 0xc5, 0xfe, 0x7f, 0x44, 0x3b, 0xe0, //0x00008780 vmovdqu %ymm0, $-32(%rbx,%rdi) - 0xc5, 0xfe, 0x7f, 0x04, 0x3b, //0x00008786 vmovdqu %ymm0, (%rbx,%rdi) - 0x48, 0x83, 0xee, 0x80, //0x0000878b subq $-128, %rsi - 0x49, 0x39, 0xf0, //0x0000878f cmpq %rsi, %r8 - 0x0f, 0x85, 0xd8, 0xff, 0xff, 0xff, //0x00008792 jne LBB35_110 - //0x00008798 LBB35_111 - 0x49, 0x39, 0xd1, //0x00008798 cmpq %rdx, %r9 - 0x0f, 0x84, 0x22, 0x00, 0x00, 0x00, //0x0000879b je LBB35_155 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000087a1 .p2align 4, 0x90 - //0x000087b0 LBB35_112 - 0xc6, 0x00, 0x30, //0x000087b0 movb $48, (%rax) - 0x48, 0x83, 0xc0, 0x01, //0x000087b3 addq $1, %rax - 0x83, 0xc2, 0x01, //0x000087b7 addl $1, %edx - 0x44, 0x39, 0xf2, //0x000087ba cmpl %r14d, %edx - 0x0f, 0x8c, 0xed, 0xff, 0xff, 0xff, //0x000087bd jl LBB35_112 - //0x000087c3 LBB35_155 - 0x44, 0x29, 0xe8, //0x000087c3 subl %r13d, %eax - //0x000087c6 LBB35_156 - 0x48, 0x83, 0xc4, 0x10, //0x000087c6 addq $16, %rsp - 0x5b, //0x000087ca popq %rbx - 0x41, 0x5c, //0x000087cb popq %r12 - 0x41, 0x5d, //0x000087cd popq %r13 - 0x41, 0x5e, //0x000087cf popq %r14 - 0x41, 0x5f, //0x000087d1 popq %r15 - 0x5d, //0x000087d3 popq %rbp - 0xc5, 0xf8, 0x77, //0x000087d4 vzeroupper - 0xc3, //0x000087d7 retq - //0x000087d8 LBB35_1 - 0x31, 0xc0, //0x000087d8 xorl %eax, %eax - 0xe9, 0xe7, 0xff, 0xff, 0xff, //0x000087da jmp LBB35_156 - //0x000087df LBB35_5 - 0x4c, 0x89, 0x4d, 0xc8, //0x000087df movq %r9, $-56(%rbp) - 0x48, 0x89, 0x7d, 0xd0, //0x000087e3 movq %rdi, $-48(%rbp) - 0x41, 0xb8, 0x6b, 0xff, 0xff, 0xff, //0x000087e7 movl $-149, %r8d - 0x41, 0x89, 0xc3, //0x000087ed movl %eax, %r11d - 0xe9, 0xc8, 0xf1, 0xff, 0xff, //0x000087f0 jmp LBB35_6 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000087f5 .p2align 4, 0x00 - //0x00008800 LCPI36_0 - 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, //0x00008800 QUAD $0x4040404040404040; QUAD $0x4040404040404040 // .space 16, '@@@@@@@@@@@@@@@@' - //0x00008810 LCPI36_1 - 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, //0x00008810 QUAD $0x5b5b5b5b5b5b5b5b; QUAD $0x5b5b5b5b5b5b5b5b // .space 16, '[[[[[[[[[[[[[[[[' - //0x00008820 LCPI36_2 - 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, //0x00008820 QUAD $0x0101010101010101; QUAD $0x0101010101010101 // .space 16, '\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01' - //0x00008830 LCPI36_3 - 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, //0x00008830 QUAD $0xbfbfbfbfbfbfbfbf; QUAD $0xbfbfbfbfbfbfbfbf // .space 16, '\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf' - //0x00008840 LCPI36_4 - 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, //0x00008840 QUAD $0x1919191919191919; QUAD $0x1919191919191919 // .space 16, '\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19' - //0x00008850 LCPI36_5 - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x00008850 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' - //0x00008860 LCPI36_6 - 0xbf, //0x00008860 .byte 191 - 0xbf, //0x00008861 .byte 191 - 0xbf, //0x00008862 .byte 191 - 0xbf, //0x00008863 .byte 191 - 0xbf, //0x00008864 .byte 191 - 0xbf, //0x00008865 .byte 191 - 0xbf, //0x00008866 .byte 191 - 0xbf, //0x00008867 .byte 191 - 0x00, //0x00008868 BYTE $0x00 // .space 1, '\x00' - 0x00, //0x00008869 BYTE $0x00 // .space 1, '\x00' - 0x00, //0x0000886a BYTE $0x00 // .space 1, '\x00' - 0x00, //0x0000886b BYTE $0x00 // .space 1, '\x00' - 0x00, //0x0000886c BYTE $0x00 // .space 1, '\x00' - 0x00, //0x0000886d BYTE $0x00 // .space 1, '\x00' - 0x00, //0x0000886e BYTE $0x00 // .space 1, '\x00' - 0x00, //0x0000886f BYTE $0x00 // .space 1, '\x00' - //0x00008870 LCPI36_7 - 0x1a, //0x00008870 .byte 26 - 0x1a, //0x00008871 .byte 26 - 0x1a, //0x00008872 .byte 26 - 0x1a, //0x00008873 .byte 26 - 0x1a, //0x00008874 .byte 26 - 0x1a, //0x00008875 .byte 26 - 0x1a, //0x00008876 .byte 26 - 0x1a, //0x00008877 .byte 26 - 0x00, //0x00008878 BYTE $0x00 // .space 1, '\x00' - 0x00, //0x00008879 BYTE $0x00 // .space 1, '\x00' - 0x00, //0x0000887a BYTE $0x00 // .space 1, '\x00' - 0x00, //0x0000887b BYTE $0x00 // .space 1, '\x00' - 0x00, //0x0000887c BYTE $0x00 // .space 1, '\x00' - 0x00, //0x0000887d BYTE $0x00 // .space 1, '\x00' - 0x00, //0x0000887e BYTE $0x00 // .space 1, '\x00' - 0x00, //0x0000887f BYTE $0x00 // .space 1, '\x00' - //0x00008880 LCPI36_8 - 0x20, //0x00008880 .byte 32 - 0x20, //0x00008881 .byte 32 - 0x20, //0x00008882 .byte 32 - 0x20, //0x00008883 .byte 32 - 0x20, //0x00008884 .byte 32 - 0x20, //0x00008885 .byte 32 - 0x20, //0x00008886 .byte 32 - 0x20, //0x00008887 .byte 32 - 0x00, //0x00008888 BYTE $0x00 // .space 1, '\x00' - 0x00, //0x00008889 BYTE $0x00 // .space 1, '\x00' - 0x00, //0x0000888a BYTE $0x00 // .space 1, '\x00' - 0x00, //0x0000888b BYTE $0x00 // .space 1, '\x00' - 0x00, //0x0000888c BYTE $0x00 // .space 1, '\x00' - 0x00, //0x0000888d BYTE $0x00 // .space 1, '\x00' - 0x00, //0x0000888e BYTE $0x00 // .space 1, '\x00' - 0x00, //0x0000888f BYTE $0x00 // .space 1, '\x00' - //0x00008890 .p2align 4, 0x90 - //0x00008890 _to_lower - 0x55, //0x00008890 pushq %rbp - 0x48, 0x89, 0xe5, //0x00008891 movq %rsp, %rbp - 0x48, 0x83, 0xfa, 0x10, //0x00008894 cmpq $16, %rdx - 0x0f, 0x82, 0xec, 0x00, 0x00, 0x00, //0x00008898 jb LBB36_1 - 0x4c, 0x8d, 0x42, 0xf0, //0x0000889e leaq $-16(%rdx), %r8 - 0x41, 0xf6, 0xc0, 0x10, //0x000088a2 testb $16, %r8b - 0x0f, 0x84, 0x18, 0x00, 0x00, 0x00, //0x000088a6 je LBB36_6 - 0x49, 0x83, 0xf8, 0x10, //0x000088ac cmpq $16, %r8 - 0x0f, 0x83, 0x54, 0x00, 0x00, 0x00, //0x000088b0 jae LBB36_8 - //0x000088b6 LBB36_2 - 0x4d, 0x85, 0xc0, //0x000088b6 testq %r8, %r8 - 0x0f, 0x85, 0xd7, 0x00, 0x00, 0x00, //0x000088b9 jne LBB36_3 - 0xe9, 0x89, 0x01, 0x00, 0x00, //0x000088bf jmp LBB36_32 - //0x000088c4 LBB36_6 - 0xc5, 0xfa, 0x6f, 0x06, //0x000088c4 vmovdqu (%rsi), %xmm0 - 0xc5, 0xf9, 0x64, 0x0d, 0x30, 0xff, 0xff, 0xff, //0x000088c8 vpcmpgtb $-208(%rip), %xmm0, %xmm1 /* LCPI36_0+0(%rip) */ - 0xc5, 0xf9, 0x6f, 0x15, 0x38, 0xff, 0xff, 0xff, //0x000088d0 vmovdqa $-200(%rip), %xmm2 /* LCPI36_1+0(%rip) */ - 0xc5, 0xe9, 0x64, 0xd0, //0x000088d8 vpcmpgtb %xmm0, %xmm2, %xmm2 - 0xc5, 0xe9, 0xdb, 0xc9, //0x000088dc vpand %xmm1, %xmm2, %xmm1 - 0xc5, 0xf1, 0xdb, 0x0d, 0x38, 0xff, 0xff, 0xff, //0x000088e0 vpand $-200(%rip), %xmm1, %xmm1 /* LCPI36_2+0(%rip) */ - 0xc5, 0xf1, 0x71, 0xf1, 0x05, //0x000088e8 vpsllw $5, %xmm1, %xmm1 - 0xc5, 0xf1, 0xfc, 0xc0, //0x000088ed vpaddb %xmm0, %xmm1, %xmm0 - 0xc5, 0xfa, 0x7f, 0x07, //0x000088f1 vmovdqu %xmm0, (%rdi) - 0x48, 0x83, 0xc6, 0x10, //0x000088f5 addq $16, %rsi - 0x48, 0x83, 0xc7, 0x10, //0x000088f9 addq $16, %rdi - 0x4c, 0x89, 0xc2, //0x000088fd movq %r8, %rdx - 0x49, 0x83, 0xf8, 0x10, //0x00008900 cmpq $16, %r8 - 0x0f, 0x82, 0xac, 0xff, 0xff, 0xff, //0x00008904 jb LBB36_2 - //0x0000890a LBB36_8 - 0xc5, 0xf9, 0x6f, 0x05, 0xee, 0xfe, 0xff, 0xff, //0x0000890a vmovdqa $-274(%rip), %xmm0 /* LCPI36_0+0(%rip) */ - 0xc5, 0xf9, 0x6f, 0x0d, 0xf6, 0xfe, 0xff, 0xff, //0x00008912 vmovdqa $-266(%rip), %xmm1 /* LCPI36_1+0(%rip) */ - 0xc5, 0xf9, 0x6f, 0x15, 0xfe, 0xfe, 0xff, 0xff, //0x0000891a vmovdqa $-258(%rip), %xmm2 /* LCPI36_2+0(%rip) */ - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008922 .p2align 4, 0x90 - //0x00008930 LBB36_9 - 0xc5, 0xfa, 0x6f, 0x1e, //0x00008930 vmovdqu (%rsi), %xmm3 - 0xc5, 0xe1, 0x64, 0xe0, //0x00008934 vpcmpgtb %xmm0, %xmm3, %xmm4 - 0xc5, 0xf1, 0x64, 0xeb, //0x00008938 vpcmpgtb %xmm3, %xmm1, %xmm5 - 0xc5, 0xd1, 0xdb, 0xe4, //0x0000893c vpand %xmm4, %xmm5, %xmm4 - 0xc5, 0xd9, 0xdb, 0xe2, //0x00008940 vpand %xmm2, %xmm4, %xmm4 - 0xc5, 0xd9, 0x71, 0xf4, 0x05, //0x00008944 vpsllw $5, %xmm4, %xmm4 - 0xc5, 0xd9, 0xfc, 0xdb, //0x00008949 vpaddb %xmm3, %xmm4, %xmm3 - 0xc5, 0xfa, 0x7f, 0x1f, //0x0000894d vmovdqu %xmm3, (%rdi) - 0xc5, 0xfa, 0x6f, 0x5e, 0x10, //0x00008951 vmovdqu $16(%rsi), %xmm3 - 0xc5, 0xe1, 0x64, 0xe0, //0x00008956 vpcmpgtb %xmm0, %xmm3, %xmm4 - 0xc5, 0xf1, 0x64, 0xeb, //0x0000895a vpcmpgtb %xmm3, %xmm1, %xmm5 - 0xc5, 0xd1, 0xdb, 0xe4, //0x0000895e vpand %xmm4, %xmm5, %xmm4 - 0xc5, 0xd9, 0xdb, 0xe2, //0x00008962 vpand %xmm2, %xmm4, %xmm4 - 0xc5, 0xd9, 0x71, 0xf4, 0x05, //0x00008966 vpsllw $5, %xmm4, %xmm4 - 0xc5, 0xd9, 0xfc, 0xdb, //0x0000896b vpaddb %xmm3, %xmm4, %xmm3 - 0xc5, 0xfa, 0x7f, 0x5f, 0x10, //0x0000896f vmovdqu %xmm3, $16(%rdi) - 0x48, 0x83, 0xc6, 0x20, //0x00008974 addq $32, %rsi - 0x48, 0x83, 0xc7, 0x20, //0x00008978 addq $32, %rdi - 0x48, 0x83, 0xc2, 0xe0, //0x0000897c addq $-32, %rdx - 0x48, 0x83, 0xfa, 0x0f, //0x00008980 cmpq $15, %rdx - 0x0f, 0x87, 0xa6, 0xff, 0xff, 0xff, //0x00008984 ja LBB36_9 - //0x0000898a LBB36_1 - 0x49, 0x89, 0xd0, //0x0000898a movq %rdx, %r8 - 0x4d, 0x85, 0xc0, //0x0000898d testq %r8, %r8 - 0x0f, 0x84, 0xb7, 0x00, 0x00, 0x00, //0x00008990 je LBB36_32 - //0x00008996 LBB36_3 - 0x49, 0x83, 0xf8, 0x08, //0x00008996 cmpq $8, %r8 - 0x0f, 0x82, 0x1a, 0x00, 0x00, 0x00, //0x0000899a jb LBB36_4 - 0x4a, 0x8d, 0x04, 0x06, //0x000089a0 leaq (%rsi,%r8), %rax - 0x48, 0x39, 0xc7, //0x000089a4 cmpq %rax, %rdi - 0x0f, 0x83, 0xa2, 0x00, 0x00, 0x00, //0x000089a7 jae LBB36_12 - 0x4a, 0x8d, 0x04, 0x07, //0x000089ad leaq (%rdi,%r8), %rax - 0x48, 0x39, 0xc6, //0x000089b1 cmpq %rax, %rsi - 0x0f, 0x83, 0x95, 0x00, 0x00, 0x00, //0x000089b4 jae LBB36_12 - //0x000089ba LBB36_4 - 0x49, 0x89, 0xf3, //0x000089ba movq %rsi, %r11 - 0x4d, 0x89, 0xc1, //0x000089bd movq %r8, %r9 - 0x48, 0x89, 0xfa, //0x000089c0 movq %rdi, %rdx - //0x000089c3 LBB36_17 - 0x41, 0xf6, 0xc1, 0x01, //0x000089c3 testb $1, %r9b - 0x0f, 0x85, 0x12, 0x00, 0x00, 0x00, //0x000089c7 jne LBB36_28 - 0x4d, 0x89, 0xc8, //0x000089cd movq %r9, %r8 - 0x49, 0x83, 0xf9, 0x01, //0x000089d0 cmpq $1, %r9 - 0x0f, 0x85, 0x33, 0x00, 0x00, 0x00, //0x000089d4 jne LBB36_30 - 0xe9, 0x6e, 0x00, 0x00, 0x00, //0x000089da jmp LBB36_32 - //0x000089df LBB36_28 - 0x41, 0x0f, 0xb6, 0x03, //0x000089df movzbl (%r11), %eax - 0x8d, 0x70, 0xbf, //0x000089e3 leal $-65(%rax), %esi - 0x8d, 0x78, 0x20, //0x000089e6 leal $32(%rax), %edi - 0x40, 0x80, 0xfe, 0x1a, //0x000089e9 cmpb $26, %sil - 0x40, 0x0f, 0xb6, 0xf7, //0x000089ed movzbl %dil, %esi - 0x0f, 0x43, 0xf0, //0x000089f1 cmovael %eax, %esi - 0x4d, 0x8d, 0x41, 0xff, //0x000089f4 leaq $-1(%r9), %r8 - 0x40, 0x88, 0x32, //0x000089f8 movb %sil, (%rdx) - 0x49, 0x83, 0xc3, 0x01, //0x000089fb addq $1, %r11 - 0x48, 0x83, 0xc2, 0x01, //0x000089ff addq $1, %rdx - 0x49, 0x83, 0xf9, 0x01, //0x00008a03 cmpq $1, %r9 - 0x0f, 0x84, 0x40, 0x00, 0x00, 0x00, //0x00008a07 je LBB36_32 - //0x00008a0d LBB36_30 - 0x31, 0xf6, //0x00008a0d xorl %esi, %esi - 0x90, //0x00008a0f .p2align 4, 0x90 - //0x00008a10 LBB36_31 - 0x41, 0x0f, 0xb6, 0x3c, 0x33, //0x00008a10 movzbl (%r11,%rsi), %edi - 0x8d, 0x47, 0xbf, //0x00008a15 leal $-65(%rdi), %eax - 0x8d, 0x4f, 0x20, //0x00008a18 leal $32(%rdi), %ecx - 0x3c, 0x1a, //0x00008a1b cmpb $26, %al - 0x0f, 0xb6, 0xc1, //0x00008a1d movzbl %cl, %eax - 0x0f, 0x43, 0xc7, //0x00008a20 cmovael %edi, %eax - 0x88, 0x04, 0x32, //0x00008a23 movb %al, (%rdx,%rsi) - 0x41, 0x0f, 0xb6, 0x44, 0x33, 0x01, //0x00008a26 movzbl $1(%r11,%rsi), %eax - 0x8d, 0x48, 0xbf, //0x00008a2c leal $-65(%rax), %ecx - 0x8d, 0x78, 0x20, //0x00008a2f leal $32(%rax), %edi - 0x80, 0xf9, 0x1a, //0x00008a32 cmpb $26, %cl - 0x40, 0x0f, 0xb6, 0xcf, //0x00008a35 movzbl %dil, %ecx - 0x0f, 0x43, 0xc8, //0x00008a39 cmovael %eax, %ecx - 0x88, 0x4c, 0x32, 0x01, //0x00008a3c movb %cl, $1(%rdx,%rsi) - 0x48, 0x83, 0xc6, 0x02, //0x00008a40 addq $2, %rsi - 0x49, 0x39, 0xf0, //0x00008a44 cmpq %rsi, %r8 - 0x0f, 0x85, 0xc3, 0xff, 0xff, 0xff, //0x00008a47 jne LBB36_31 - //0x00008a4d LBB36_32 - 0x5d, //0x00008a4d popq %rbp - 0xc3, //0x00008a4e retq - //0x00008a4f LBB36_12 - 0x49, 0x83, 0xf8, 0x10, //0x00008a4f cmpq $16, %r8 - 0x0f, 0x83, 0x07, 0x00, 0x00, 0x00, //0x00008a53 jae LBB36_19 - 0x31, 0xc0, //0x00008a59 xorl %eax, %eax - 0xe9, 0xf8, 0x00, 0x00, 0x00, //0x00008a5b jmp LBB36_14 - //0x00008a60 LBB36_19 - 0x4c, 0x89, 0xc0, //0x00008a60 movq %r8, %rax - 0x48, 0x83, 0xe0, 0xf0, //0x00008a63 andq $-16, %rax - 0x48, 0x8d, 0x48, 0xf0, //0x00008a67 leaq $-16(%rax), %rcx - 0x49, 0x89, 0xc9, //0x00008a6b movq %rcx, %r9 - 0x49, 0xc1, 0xe9, 0x04, //0x00008a6e shrq $4, %r9 - 0x49, 0x83, 0xc1, 0x01, //0x00008a72 addq $1, %r9 - 0x48, 0x85, 0xc9, //0x00008a76 testq %rcx, %rcx - 0x0f, 0x84, 0x4c, 0x01, 0x00, 0x00, //0x00008a79 je LBB36_20 - 0x4c, 0x89, 0xc9, //0x00008a7f movq %r9, %rcx - 0x48, 0x83, 0xe1, 0xfe, //0x00008a82 andq $-2, %rcx - 0x48, 0xf7, 0xd9, //0x00008a86 negq %rcx - 0x31, 0xd2, //0x00008a89 xorl %edx, %edx - 0xc5, 0xf9, 0x6f, 0x05, 0x9d, 0xfd, 0xff, 0xff, //0x00008a8b vmovdqa $-611(%rip), %xmm0 /* LCPI36_3+0(%rip) */ - 0xc5, 0xf9, 0x6f, 0x0d, 0xa5, 0xfd, 0xff, 0xff, //0x00008a93 vmovdqa $-603(%rip), %xmm1 /* LCPI36_4+0(%rip) */ - 0xc5, 0xf9, 0x6f, 0x15, 0xad, 0xfd, 0xff, 0xff, //0x00008a9b vmovdqa $-595(%rip), %xmm2 /* LCPI36_5+0(%rip) */ - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008aa3 .p2align 4, 0x90 - //0x00008ab0 LBB36_22 - 0xc5, 0xfa, 0x6f, 0x1c, 0x16, //0x00008ab0 vmovdqu (%rsi,%rdx), %xmm3 - 0xc5, 0xe1, 0xfc, 0xe0, //0x00008ab5 vpaddb %xmm0, %xmm3, %xmm4 - 0xc5, 0xd9, 0xda, 0xe9, //0x00008ab9 vpminub %xmm1, %xmm4, %xmm5 - 0xc5, 0xd9, 0x74, 0xe5, //0x00008abd vpcmpeqb %xmm5, %xmm4, %xmm4 - 0xc5, 0xe1, 0xfc, 0xea, //0x00008ac1 vpaddb %xmm2, %xmm3, %xmm5 - 0xc4, 0xe3, 0x61, 0x4c, 0xdd, 0x40, //0x00008ac5 vpblendvb %xmm4, %xmm5, %xmm3, %xmm3 - 0xc5, 0xfa, 0x7f, 0x1c, 0x17, //0x00008acb vmovdqu %xmm3, (%rdi,%rdx) - 0xc5, 0xfa, 0x6f, 0x5c, 0x16, 0x10, //0x00008ad0 vmovdqu $16(%rsi,%rdx), %xmm3 - 0xc5, 0xe1, 0xfc, 0xe0, //0x00008ad6 vpaddb %xmm0, %xmm3, %xmm4 - 0xc5, 0xd9, 0xda, 0xe9, //0x00008ada vpminub %xmm1, %xmm4, %xmm5 - 0xc5, 0xd9, 0x74, 0xe5, //0x00008ade vpcmpeqb %xmm5, %xmm4, %xmm4 - 0xc5, 0xe1, 0xfc, 0xea, //0x00008ae2 vpaddb %xmm2, %xmm3, %xmm5 - 0xc4, 0xe3, 0x61, 0x4c, 0xdd, 0x40, //0x00008ae6 vpblendvb %xmm4, %xmm5, %xmm3, %xmm3 - 0xc5, 0xfa, 0x7f, 0x5c, 0x17, 0x10, //0x00008aec vmovdqu %xmm3, $16(%rdi,%rdx) - 0x48, 0x83, 0xc2, 0x20, //0x00008af2 addq $32, %rdx - 0x48, 0x83, 0xc1, 0x02, //0x00008af6 addq $2, %rcx - 0x0f, 0x85, 0xb0, 0xff, 0xff, 0xff, //0x00008afa jne LBB36_22 - 0x41, 0xf6, 0xc1, 0x01, //0x00008b00 testb $1, %r9b - 0x0f, 0x84, 0x2c, 0x00, 0x00, 0x00, //0x00008b04 je LBB36_25 - //0x00008b0a LBB36_24 - 0xc5, 0xfa, 0x6f, 0x04, 0x16, //0x00008b0a vmovdqu (%rsi,%rdx), %xmm0 - 0xc5, 0xf9, 0xfc, 0x0d, 0x19, 0xfd, 0xff, 0xff, //0x00008b0f vpaddb $-743(%rip), %xmm0, %xmm1 /* LCPI36_3+0(%rip) */ - 0xc5, 0xf1, 0xda, 0x15, 0x21, 0xfd, 0xff, 0xff, //0x00008b17 vpminub $-735(%rip), %xmm1, %xmm2 /* LCPI36_4+0(%rip) */ - 0xc5, 0xf9, 0xfc, 0x1d, 0x29, 0xfd, 0xff, 0xff, //0x00008b1f vpaddb $-727(%rip), %xmm0, %xmm3 /* LCPI36_5+0(%rip) */ - 0xc5, 0xf1, 0x74, 0xca, //0x00008b27 vpcmpeqb %xmm2, %xmm1, %xmm1 - 0xc4, 0xe3, 0x79, 0x4c, 0xc3, 0x10, //0x00008b2b vpblendvb %xmm1, %xmm3, %xmm0, %xmm0 - 0xc5, 0xfa, 0x7f, 0x04, 0x17, //0x00008b31 vmovdqu %xmm0, (%rdi,%rdx) - //0x00008b36 LBB36_25 - 0x49, 0x39, 0xc0, //0x00008b36 cmpq %rax, %r8 - 0x0f, 0x84, 0x0e, 0xff, 0xff, 0xff, //0x00008b39 je LBB36_32 - 0x41, 0xf6, 0xc0, 0x08, //0x00008b3f testb $8, %r8b - 0x0f, 0x85, 0x0f, 0x00, 0x00, 0x00, //0x00008b43 jne LBB36_14 - 0x48, 0x01, 0xc7, //0x00008b49 addq %rax, %rdi - 0x41, 0x83, 0xe0, 0x0f, //0x00008b4c andl $15, %r8d - 0x48, 0x01, 0xc6, //0x00008b50 addq %rax, %rsi - 0xe9, 0x62, 0xfe, 0xff, 0xff, //0x00008b53 jmp LBB36_4 - //0x00008b58 LBB36_14 - 0x4d, 0x89, 0xc2, //0x00008b58 movq %r8, %r10 - 0x49, 0x83, 0xe2, 0xf8, //0x00008b5b andq $-8, %r10 - 0x4e, 0x8d, 0x1c, 0x16, //0x00008b5f leaq (%rsi,%r10), %r11 - 0x45, 0x89, 0xc1, //0x00008b63 movl %r8d, %r9d - 0x41, 0x83, 0xe1, 0x07, //0x00008b66 andl $7, %r9d - 0x4a, 0x8d, 0x14, 0x17, //0x00008b6a leaq (%rdi,%r10), %rdx - 0xc5, 0xf9, 0x6f, 0x05, 0xea, 0xfc, 0xff, 0xff, //0x00008b6e vmovdqa $-790(%rip), %xmm0 /* LCPI36_6+0(%rip) */ - 0xc5, 0xf9, 0x6f, 0x0d, 0xf2, 0xfc, 0xff, 0xff, //0x00008b76 vmovdqa $-782(%rip), %xmm1 /* LCPI36_7+0(%rip) */ - 0xc5, 0xf9, 0x6f, 0x15, 0xfa, 0xfc, 0xff, 0xff, //0x00008b7e vmovdqa $-774(%rip), %xmm2 /* LCPI36_8+0(%rip) */ - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008b86 .p2align 4, 0x90 - //0x00008b90 LBB36_15 - 0xc5, 0xfa, 0x7e, 0x1c, 0x06, //0x00008b90 vmovq (%rsi,%rax), %xmm3 - 0xc5, 0xe1, 0xfc, 0xe0, //0x00008b95 vpaddb %xmm0, %xmm3, %xmm4 - 0xc5, 0xd9, 0xde, 0xe9, //0x00008b99 vpmaxub %xmm1, %xmm4, %xmm5 - 0xc5, 0xd9, 0x74, 0xe5, //0x00008b9d vpcmpeqb %xmm5, %xmm4, %xmm4 - 0xc5, 0xe1, 0xfc, 0xea, //0x00008ba1 vpaddb %xmm2, %xmm3, %xmm5 - 0xc4, 0xe3, 0x51, 0x4c, 0xdb, 0x40, //0x00008ba5 vpblendvb %xmm4, %xmm3, %xmm5, %xmm3 - 0xc5, 0xf9, 0xd6, 0x1c, 0x07, //0x00008bab vmovq %xmm3, (%rdi,%rax) - 0x48, 0x83, 0xc0, 0x08, //0x00008bb0 addq $8, %rax - 0x49, 0x39, 0xc2, //0x00008bb4 cmpq %rax, %r10 - 0x0f, 0x85, 0xd3, 0xff, 0xff, 0xff, //0x00008bb7 jne LBB36_15 - 0x4d, 0x39, 0xd0, //0x00008bbd cmpq %r10, %r8 - 0x0f, 0x85, 0xfd, 0xfd, 0xff, 0xff, //0x00008bc0 jne LBB36_17 - 0xe9, 0x82, 0xfe, 0xff, 0xff, //0x00008bc6 jmp LBB36_32 - //0x00008bcb LBB36_20 - 0x31, 0xd2, //0x00008bcb xorl %edx, %edx - 0x41, 0xf6, 0xc1, 0x01, //0x00008bcd testb $1, %r9b - 0x0f, 0x85, 0x33, 0xff, 0xff, 0xff, //0x00008bd1 jne LBB36_24 - 0xe9, 0x5a, 0xff, 0xff, 0xff, //0x00008bd7 jmp LBB36_25 - 0x90, 0x90, 0x90, 0x90, //0x00008bdc .p2align 4, 0x90 - //0x00008be0 _format_significand + 0x0f, 0x87, 0x3f, 0x00, 0x00, 0x00, //0x000042ca ja LBB14_93 + 0x4d, 0x8d, 0x4d, 0xff, //0x000042d0 leaq $-1(%r13), %r9 + 0x31, 0xff, //0x000042d4 xorl %edi, %edi + //0x000042d6 LBB14_90 + 0x89, 0xfa, //0x000042d6 movl %edi, %edx + 0x81, 0xff, 0x10, 0x27, 0x00, 0x00, //0x000042d8 cmpl $10000, %edi + 0x8d, 0x3c, 0x92, //0x000042de leal (%rdx,%rdx,4), %edi + 0x40, 0x0f, 0xb6, 0xf6, //0x000042e1 movzbl %sil, %esi + 0x8d, 0x7c, 0x7e, 0xd0, //0x000042e5 leal $-48(%rsi,%rdi,2), %edi + 0x0f, 0x4d, 0xfa, //0x000042e9 cmovgel %edx, %edi + 0x49, 0x39, 0xc1, //0x000042ec cmpq %rax, %r9 + 0x0f, 0x84, 0x21, 0x00, 0x00, 0x00, //0x000042ef je LBB14_94 + 0x41, 0x0f, 0xb6, 0x74, 0x07, 0x01, //0x000042f5 movzbl $1(%r15,%rax), %esi + 0x48, 0xff, 0xc0, //0x000042fb incq %rax + 0x8d, 0x56, 0xd0, //0x000042fe leal $-48(%rsi), %edx + 0x80, 0xfa, 0x0a, //0x00004301 cmpb $10, %dl + 0x0f, 0x82, 0xcc, 0xff, 0xff, 0xff, //0x00004304 jb LBB14_90 + 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x0000430a jmp LBB14_95 + //0x0000430f LBB14_93 + 0x31, 0xff, //0x0000430f xorl %edi, %edi + 0xe9, 0x03, 0x00, 0x00, 0x00, //0x00004311 jmp LBB14_95 + //0x00004316 LBB14_94 + 0x4c, 0x89, 0xe8, //0x00004316 movq %r13, %rax + //0x00004319 LBB14_95 + 0x41, 0x0f, 0xaf, 0xf8, //0x00004319 imull %r8d, %edi + 0x01, 0xcf, //0x0000431d addl %ecx, %edi + 0x49, 0x89, 0xc5, //0x0000431f movq %rax, %r13 + 0x44, 0x8b, 0x4d, 0xc8, //0x00004322 movl $-56(%rbp), %r9d + 0xe9, 0x6a, 0xfd, 0xff, 0xff, //0x00004326 jmp LBB14_59 + 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000432b .p2align 4, 0x90 + //0x00004330 _vsigned + 0x55, //0x00004330 pushq %rbp + 0x48, 0x89, 0xe5, //0x00004331 movq %rsp, %rbp + 0x53, //0x00004334 pushq %rbx + 0x48, 0x8b, 0x1e, //0x00004335 movq (%rsi), %rbx + 0x4c, 0x8b, 0x07, //0x00004338 movq (%rdi), %r8 + 0x4c, 0x8b, 0x57, 0x08, //0x0000433b movq $8(%rdi), %r10 + 0x48, 0xc7, 0x02, 0x09, 0x00, 0x00, 0x00, //0x0000433f movq $9, (%rdx) + 0xc5, 0xf8, 0x57, 0xc0, //0x00004346 vxorps %xmm0, %xmm0, %xmm0 + 0xc5, 0xf8, 0x11, 0x42, 0x08, //0x0000434a vmovups %xmm0, $8(%rdx) + 0x48, 0x8b, 0x0e, //0x0000434f movq (%rsi), %rcx + 0x48, 0x89, 0x4a, 0x18, //0x00004352 movq %rcx, $24(%rdx) + 0x4c, 0x39, 0xd3, //0x00004356 cmpq %r10, %rbx + 0x0f, 0x83, 0x44, 0x00, 0x00, 0x00, //0x00004359 jae LBB15_1 + 0x41, 0x8a, 0x0c, 0x18, //0x0000435f movb (%r8,%rbx), %cl + 0x41, 0xb9, 0x01, 0x00, 0x00, 0x00, //0x00004363 movl $1, %r9d + 0x80, 0xf9, 0x2d, //0x00004369 cmpb $45, %cl + 0x0f, 0x85, 0x17, 0x00, 0x00, 0x00, //0x0000436c jne LBB15_5 + 0x48, 0xff, 0xc3, //0x00004372 incq %rbx + 0x4c, 0x39, 0xd3, //0x00004375 cmpq %r10, %rbx + 0x0f, 0x83, 0x25, 0x00, 0x00, 0x00, //0x00004378 jae LBB15_1 + 0x41, 0x8a, 0x0c, 0x18, //0x0000437e movb (%r8,%rbx), %cl + 0x49, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00004382 movq $-1, %r9 + //0x00004389 LBB15_5 + 0x8d, 0x79, 0xd0, //0x00004389 leal $-48(%rcx), %edi + 0x40, 0x80, 0xff, 0x0a, //0x0000438c cmpb $10, %dil + 0x0f, 0x82, 0x1a, 0x00, 0x00, 0x00, //0x00004390 jb LBB15_7 + 0x48, 0x89, 0x1e, //0x00004396 movq %rbx, (%rsi) + 0x48, 0xc7, 0x02, 0xfe, 0xff, 0xff, 0xff, //0x00004399 movq $-2, (%rdx) + 0x5b, //0x000043a0 popq %rbx + 0x5d, //0x000043a1 popq %rbp + 0xc3, //0x000043a2 retq + //0x000043a3 LBB15_1 + 0x4c, 0x89, 0x16, //0x000043a3 movq %r10, (%rsi) + 0x48, 0xc7, 0x02, 0xff, 0xff, 0xff, 0xff, //0x000043a6 movq $-1, (%rdx) + 0x5b, //0x000043ad popq %rbx + 0x5d, //0x000043ae popq %rbp + 0xc3, //0x000043af retq + //0x000043b0 LBB15_7 + 0x80, 0xf9, 0x30, //0x000043b0 cmpb $48, %cl + 0x0f, 0x85, 0x35, 0x00, 0x00, 0x00, //0x000043b3 jne LBB15_8 + 0x48, 0x8d, 0x7b, 0x01, //0x000043b9 leaq $1(%rbx), %rdi + 0x4c, 0x39, 0xd3, //0x000043bd cmpq %r10, %rbx + 0x0f, 0x83, 0x71, 0x00, 0x00, 0x00, //0x000043c0 jae LBB15_17 + 0x41, 0x8a, 0x0c, 0x38, //0x000043c6 movb (%r8,%rdi), %cl + 0x80, 0xc1, 0xd2, //0x000043ca addb $-46, %cl + 0x80, 0xf9, 0x37, //0x000043cd cmpb $55, %cl + 0x0f, 0x87, 0x61, 0x00, 0x00, 0x00, //0x000043d0 ja LBB15_17 + 0x44, 0x0f, 0xb6, 0xd9, //0x000043d6 movzbl %cl, %r11d + 0x48, 0xb9, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, //0x000043da movabsq $36028797027352577, %rcx + 0x4c, 0x0f, 0xa3, 0xd9, //0x000043e4 btq %r11, %rcx + 0x0f, 0x83, 0x49, 0x00, 0x00, 0x00, //0x000043e8 jae LBB15_17 + //0x000043ee LBB15_8 + 0x31, 0xff, //0x000043ee xorl %edi, %edi + //0x000043f0 .p2align 4, 0x90 + //0x000043f0 LBB15_9 + 0x4c, 0x39, 0xd3, //0x000043f0 cmpq %r10, %rbx + 0x0f, 0x83, 0x6c, 0x00, 0x00, 0x00, //0x000043f3 jae LBB15_22 + 0x49, 0x0f, 0xbe, 0x0c, 0x18, //0x000043f9 movsbq (%r8,%rbx), %rcx + 0x8d, 0x41, 0xd0, //0x000043fe leal $-48(%rcx), %eax + 0x3c, 0x09, //0x00004401 cmpb $9, %al + 0x0f, 0x87, 0x34, 0x00, 0x00, 0x00, //0x00004403 ja LBB15_18 + 0x48, 0x6b, 0xff, 0x0a, //0x00004409 imulq $10, %rdi, %rdi + 0x0f, 0x80, 0x14, 0x00, 0x00, 0x00, //0x0000440d jo LBB15_13 + 0x48, 0xff, 0xc3, //0x00004413 incq %rbx + 0x48, 0x83, 0xc1, 0xd0, //0x00004416 addq $-48, %rcx + 0x49, 0x0f, 0xaf, 0xc9, //0x0000441a imulq %r9, %rcx + 0x48, 0x01, 0xcf, //0x0000441e addq %rcx, %rdi + 0x0f, 0x81, 0xc9, 0xff, 0xff, 0xff, //0x00004421 jno LBB15_9 + //0x00004427 LBB15_13 + 0x48, 0xff, 0xcb, //0x00004427 decq %rbx + 0x48, 0x89, 0x1e, //0x0000442a movq %rbx, (%rsi) + 0x48, 0xc7, 0x02, 0xfb, 0xff, 0xff, 0xff, //0x0000442d movq $-5, (%rdx) + 0x5b, //0x00004434 popq %rbx + 0x5d, //0x00004435 popq %rbp + 0xc3, //0x00004436 retq + //0x00004437 LBB15_17 + 0x48, 0x89, 0x3e, //0x00004437 movq %rdi, (%rsi) + 0x5b, //0x0000443a popq %rbx + 0x5d, //0x0000443b popq %rbp + 0xc3, //0x0000443c retq + //0x0000443d LBB15_18 + 0x80, 0xf9, 0x65, //0x0000443d cmpb $101, %cl + 0x0f, 0x84, 0x12, 0x00, 0x00, 0x00, //0x00004440 je LBB15_21 + 0x80, 0xf9, 0x45, //0x00004446 cmpb $69, %cl + 0x0f, 0x84, 0x09, 0x00, 0x00, 0x00, //0x00004449 je LBB15_21 + 0x80, 0xf9, 0x2e, //0x0000444f cmpb $46, %cl + 0x0f, 0x85, 0x0d, 0x00, 0x00, 0x00, //0x00004452 jne LBB15_22 + //0x00004458 LBB15_21 + 0x48, 0x89, 0x1e, //0x00004458 movq %rbx, (%rsi) + 0x48, 0xc7, 0x02, 0xfa, 0xff, 0xff, 0xff, //0x0000445b movq $-6, (%rdx) + 0x5b, //0x00004462 popq %rbx + 0x5d, //0x00004463 popq %rbp + 0xc3, //0x00004464 retq + //0x00004465 LBB15_22 + 0x48, 0x89, 0x1e, //0x00004465 movq %rbx, (%rsi) + 0x48, 0x89, 0x7a, 0x10, //0x00004468 movq %rdi, $16(%rdx) + 0x5b, //0x0000446c popq %rbx + 0x5d, //0x0000446d popq %rbp + 0xc3, //0x0000446e retq + 0x90, //0x0000446f .p2align 4, 0x90 + //0x00004470 _vunsigned + 0x55, //0x00004470 pushq %rbp + 0x48, 0x89, 0xe5, //0x00004471 movq %rsp, %rbp + 0x49, 0x89, 0xd0, //0x00004474 movq %rdx, %r8 + 0x48, 0x8b, 0x0e, //0x00004477 movq (%rsi), %rcx + 0x4c, 0x8b, 0x0f, //0x0000447a movq (%rdi), %r9 + 0x4c, 0x8b, 0x5f, 0x08, //0x0000447d movq $8(%rdi), %r11 + 0x48, 0xc7, 0x02, 0x09, 0x00, 0x00, 0x00, //0x00004481 movq $9, (%rdx) + 0xc5, 0xf8, 0x57, 0xc0, //0x00004488 vxorps %xmm0, %xmm0, %xmm0 + 0xc5, 0xf8, 0x11, 0x42, 0x08, //0x0000448c vmovups %xmm0, $8(%rdx) + 0x48, 0x8b, 0x06, //0x00004491 movq (%rsi), %rax + 0x48, 0x89, 0x42, 0x18, //0x00004494 movq %rax, $24(%rdx) + 0x4c, 0x39, 0xd9, //0x00004498 cmpq %r11, %rcx + 0x0f, 0x83, 0x18, 0x00, 0x00, 0x00, //0x0000449b jae LBB16_1 + 0x41, 0x8a, 0x04, 0x09, //0x000044a1 movb (%r9,%rcx), %al + 0x3c, 0x2d, //0x000044a5 cmpb $45, %al + 0x0f, 0x85, 0x18, 0x00, 0x00, 0x00, //0x000044a7 jne LBB16_4 + //0x000044ad LBB16_3 + 0x48, 0x89, 0x0e, //0x000044ad movq %rcx, (%rsi) + 0x49, 0xc7, 0x00, 0xfa, 0xff, 0xff, 0xff, //0x000044b0 movq $-6, (%r8) + 0x5d, //0x000044b7 popq %rbp + 0xc3, //0x000044b8 retq + //0x000044b9 LBB16_1 + 0x4c, 0x89, 0x1e, //0x000044b9 movq %r11, (%rsi) + 0x49, 0xc7, 0x00, 0xff, 0xff, 0xff, 0xff, //0x000044bc movq $-1, (%r8) + 0x5d, //0x000044c3 popq %rbp + 0xc3, //0x000044c4 retq + //0x000044c5 LBB16_4 + 0x8d, 0x50, 0xd0, //0x000044c5 leal $-48(%rax), %edx + 0x80, 0xfa, 0x0a, //0x000044c8 cmpb $10, %dl + 0x0f, 0x82, 0x0c, 0x00, 0x00, 0x00, //0x000044cb jb LBB16_6 + 0x48, 0x89, 0x0e, //0x000044d1 movq %rcx, (%rsi) + 0x49, 0xc7, 0x00, 0xfe, 0xff, 0xff, 0xff, //0x000044d4 movq $-2, (%r8) + 0x5d, //0x000044db popq %rbp + 0xc3, //0x000044dc retq + //0x000044dd LBB16_6 + 0x3c, 0x30, //0x000044dd cmpb $48, %al + 0x0f, 0x85, 0x26, 0x00, 0x00, 0x00, //0x000044df jne LBB16_7 + 0x41, 0x8a, 0x44, 0x09, 0x01, //0x000044e5 movb $1(%r9,%rcx), %al + 0x04, 0xd2, //0x000044ea addb $-46, %al + 0x3c, 0x37, //0x000044ec cmpb $55, %al + 0x0f, 0x87, 0xb6, 0x00, 0x00, 0x00, //0x000044ee ja LBB16_16 + 0x0f, 0xb6, 0xc0, //0x000044f4 movzbl %al, %eax + 0x48, 0xba, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, //0x000044f7 movabsq $36028797027352577, %rdx + 0x48, 0x0f, 0xa3, 0xc2, //0x00004501 btq %rax, %rdx + 0x0f, 0x83, 0x9f, 0x00, 0x00, 0x00, //0x00004505 jae LBB16_16 + //0x0000450b LBB16_7 + 0x31, 0xc0, //0x0000450b xorl %eax, %eax + 0x41, 0xba, 0x0a, 0x00, 0x00, 0x00, //0x0000450d movl $10, %r10d + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00004513 .p2align 4, 0x90 + //0x00004520 LBB16_8 + 0x4c, 0x39, 0xd9, //0x00004520 cmpq %r11, %rcx + 0x0f, 0x83, 0x78, 0x00, 0x00, 0x00, //0x00004523 jae LBB16_20 + 0x41, 0x0f, 0xbe, 0x3c, 0x09, //0x00004529 movsbl (%r9,%rcx), %edi + 0x8d, 0x57, 0xd0, //0x0000452e leal $-48(%rdi), %edx + 0x80, 0xfa, 0x09, //0x00004531 cmpb $9, %dl + 0x0f, 0x87, 0x49, 0x00, 0x00, 0x00, //0x00004534 ja LBB16_17 + 0x49, 0xf7, 0xe2, //0x0000453a mulq %r10 + 0x0f, 0x80, 0x31, 0x00, 0x00, 0x00, //0x0000453d jo LBB16_13 + 0x48, 0xff, 0xc1, //0x00004543 incq %rcx + 0x83, 0xc7, 0xd0, //0x00004546 addl $-48, %edi + 0x48, 0x63, 0xd7, //0x00004549 movslq %edi, %rdx + 0x48, 0x89, 0xd7, //0x0000454c movq %rdx, %rdi + 0x48, 0xc1, 0xff, 0x3f, //0x0000454f sarq $63, %rdi + 0x48, 0x01, 0xd0, //0x00004553 addq %rdx, %rax + 0x48, 0x83, 0xd7, 0x00, //0x00004556 adcq $0, %rdi + 0x89, 0xfa, //0x0000455a movl %edi, %edx + 0x83, 0xe2, 0x01, //0x0000455c andl $1, %edx + 0x48, 0xf7, 0xda, //0x0000455f negq %rdx + 0x48, 0x31, 0xd7, //0x00004562 xorq %rdx, %rdi + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00004565 jne LBB16_13 + 0x48, 0x85, 0xd2, //0x0000456b testq %rdx, %rdx + 0x0f, 0x89, 0xac, 0xff, 0xff, 0xff, //0x0000456e jns LBB16_8 + //0x00004574 LBB16_13 + 0x48, 0xff, 0xc9, //0x00004574 decq %rcx + 0x48, 0x89, 0x0e, //0x00004577 movq %rcx, (%rsi) + 0x49, 0xc7, 0x00, 0xfb, 0xff, 0xff, 0xff, //0x0000457a movq $-5, (%r8) + 0x5d, //0x00004581 popq %rbp + 0xc3, //0x00004582 retq + //0x00004583 LBB16_17 + 0x40, 0x80, 0xff, 0x65, //0x00004583 cmpb $101, %dil + 0x0f, 0x84, 0x20, 0xff, 0xff, 0xff, //0x00004587 je LBB16_3 + 0x40, 0x80, 0xff, 0x45, //0x0000458d cmpb $69, %dil + 0x0f, 0x84, 0x16, 0xff, 0xff, 0xff, //0x00004591 je LBB16_3 + 0x40, 0x80, 0xff, 0x2e, //0x00004597 cmpb $46, %dil + 0x0f, 0x84, 0x0c, 0xff, 0xff, 0xff, //0x0000459b je LBB16_3 + //0x000045a1 LBB16_20 + 0x48, 0x89, 0x0e, //0x000045a1 movq %rcx, (%rsi) + 0x49, 0x89, 0x40, 0x10, //0x000045a4 movq %rax, $16(%r8) + 0x5d, //0x000045a8 popq %rbp + 0xc3, //0x000045a9 retq + //0x000045aa LBB16_16 + 0x48, 0xff, 0xc1, //0x000045aa incq %rcx + 0x48, 0x89, 0x0e, //0x000045ad movq %rcx, (%rsi) + 0x5d, //0x000045b0 popq %rbp + 0xc3, //0x000045b1 retq + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000045b2 .p2align 4, 0x00 + //0x000045c0 LCPI17_0 + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000045c0 .quad 1 + 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000045c8 .quad 5 + //0x000045d0 .p2align 4, 0x90 + //0x000045d0 _skip_array + 0x55, //0x000045d0 pushq %rbp + 0x48, 0x89, 0xe5, //0x000045d1 movq %rsp, %rbp + 0x48, 0x89, 0xd0, //0x000045d4 movq %rdx, %rax + 0x48, 0x89, 0xf2, //0x000045d7 movq %rsi, %rdx + 0x48, 0x89, 0xfe, //0x000045da movq %rdi, %rsi + 0xc5, 0xf8, 0x28, 0x05, 0xdb, 0xff, 0xff, 0xff, //0x000045dd vmovaps $-37(%rip), %xmm0 /* LCPI17_0+0(%rip) */ + 0xc5, 0xf8, 0x11, 0x00, //0x000045e5 vmovups %xmm0, (%rax) + 0x48, 0x89, 0xc7, //0x000045e9 movq %rax, %rdi + 0x5d, //0x000045ec popq %rbp + 0xe9, 0x0e, 0x00, 0x00, 0x00, //0x000045ed jmp _fsm_exec + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000045f2 .p2align 4, 0x90 + //0x00004600 _fsm_exec + 0x55, //0x00004600 pushq %rbp + 0x48, 0x89, 0xe5, //0x00004601 movq %rsp, %rbp + 0x41, 0x57, //0x00004604 pushq %r15 + 0x41, 0x56, //0x00004606 pushq %r14 + 0x41, 0x55, //0x00004608 pushq %r13 + 0x41, 0x54, //0x0000460a pushq %r12 + 0x53, //0x0000460c pushq %rbx + 0x48, 0x83, 0xec, 0x38, //0x0000460d subq $56, %rsp + 0x48, 0x89, 0x4d, 0xa8, //0x00004611 movq %rcx, $-88(%rbp) + 0x4c, 0x8b, 0x0f, //0x00004615 movq (%rdi), %r9 + 0x4d, 0x85, 0xc9, //0x00004618 testq %r9, %r9 + 0x0f, 0x84, 0x16, 0x05, 0x00, 0x00, //0x0000461b je LBB18_2 + 0x49, 0x89, 0xd0, //0x00004621 movq %rdx, %r8 + 0x49, 0x89, 0xfa, //0x00004624 movq %rdi, %r10 + 0x48, 0x8d, 0x46, 0x08, //0x00004627 leaq $8(%rsi), %rax + 0x48, 0x89, 0x45, 0xc8, //0x0000462b movq %rax, $-56(%rbp) + 0x4c, 0x8b, 0x2a, //0x0000462f movq (%rdx), %r13 + 0x49, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x00004632 movq $-1, %r14 + 0x49, 0xbc, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00004639 movabsq $4294977024, %r12 + 0x4c, 0x8d, 0x1d, 0x52, 0x06, 0x00, 0x00, //0x00004643 leaq $1618(%rip), %r11 /* LJTI18_0+0(%rip) */ + 0x48, 0x89, 0x55, 0xd0, //0x0000464a movq %rdx, $-48(%rbp) + 0x48, 0x89, 0x75, 0xb0, //0x0000464e movq %rsi, $-80(%rbp) + 0x48, 0x89, 0x7d, 0xb8, //0x00004652 movq %rdi, $-72(%rbp) + 0xe9, 0x3d, 0x00, 0x00, 0x00, //0x00004656 jmp LBB18_8 + //0x0000465b LBB18_3 + 0x49, 0x8b, 0x02, //0x0000465b movq (%r10), %rax + 0x48, 0x3d, 0xff, 0x0f, 0x00, 0x00, //0x0000465e cmpq $4095, %rax + 0x0f, 0x8f, 0xe3, 0x04, 0x00, 0x00, //0x00004664 jg LBB18_82 + 0x48, 0x8d, 0x48, 0x01, //0x0000466a leaq $1(%rax), %rcx + 0x49, 0x89, 0x0a, //0x0000466e movq %rcx, (%r10) + 0x49, 0xc7, 0x44, 0xc2, 0x08, 0x06, 0x00, 0x00, 0x00, //0x00004671 movq $6, $8(%r10,%rax,8) + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000467a .p2align 4, 0x90 + //0x00004680 LBB18_5 + 0x4c, 0x89, 0xe9, //0x00004680 movq %r13, %rcx + //0x00004683 LBB18_6 + 0x49, 0x8b, 0x12, //0x00004683 movq (%r10), %rdx + 0x49, 0x89, 0xcd, //0x00004686 movq %rcx, %r13 + //0x00004689 LBB18_7 + 0x49, 0x89, 0xd1, //0x00004689 movq %rdx, %r9 + 0x4c, 0x89, 0xf0, //0x0000468c movq %r14, %rax + 0x48, 0x85, 0xd2, //0x0000468f testq %rdx, %rdx + 0x0f, 0x84, 0xa6, 0x04, 0x00, 0x00, //0x00004692 je LBB18_88 + //0x00004698 LBB18_8 + 0x48, 0x8b, 0x3e, //0x00004698 movq (%rsi), %rdi + 0x48, 0x8b, 0x46, 0x08, //0x0000469b movq $8(%rsi), %rax + 0x4c, 0x89, 0xea, //0x0000469f movq %r13, %rdx + 0x48, 0x29, 0xc2, //0x000046a2 subq %rax, %rdx + 0x0f, 0x83, 0x35, 0x00, 0x00, 0x00, //0x000046a5 jae LBB18_13 + 0x42, 0x8a, 0x1c, 0x2f, //0x000046ab movb (%rdi,%r13), %bl + 0x80, 0xfb, 0x0d, //0x000046af cmpb $13, %bl + 0x0f, 0x84, 0x28, 0x00, 0x00, 0x00, //0x000046b2 je LBB18_13 + 0x80, 0xfb, 0x20, //0x000046b8 cmpb $32, %bl + 0x0f, 0x84, 0x1f, 0x00, 0x00, 0x00, //0x000046bb je LBB18_13 + 0x80, 0xc3, 0xf7, //0x000046c1 addb $-9, %bl + 0x80, 0xfb, 0x01, //0x000046c4 cmpb $1, %bl + 0x0f, 0x86, 0x13, 0x00, 0x00, 0x00, //0x000046c7 jbe LBB18_13 + 0x4d, 0x89, 0xef, //0x000046cd movq %r13, %r15 + 0xe9, 0x2d, 0x01, 0x00, 0x00, //0x000046d0 jmp LBB18_34 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000046d5 .p2align 4, 0x90 + //0x000046e0 LBB18_13 + 0x4d, 0x8d, 0x7d, 0x01, //0x000046e0 leaq $1(%r13), %r15 + 0x49, 0x39, 0xc7, //0x000046e4 cmpq %rax, %r15 + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x000046e7 jae LBB18_17 + 0x42, 0x8a, 0x1c, 0x3f, //0x000046ed movb (%rdi,%r15), %bl + 0x80, 0xfb, 0x0d, //0x000046f1 cmpb $13, %bl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x000046f4 je LBB18_17 + 0x80, 0xfb, 0x20, //0x000046fa cmpb $32, %bl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x000046fd je LBB18_17 + 0x80, 0xc3, 0xf7, //0x00004703 addb $-9, %bl + 0x80, 0xfb, 0x01, //0x00004706 cmpb $1, %bl + 0x0f, 0x87, 0xf3, 0x00, 0x00, 0x00, //0x00004709 ja LBB18_34 + 0x90, //0x0000470f .p2align 4, 0x90 + //0x00004710 LBB18_17 + 0x4d, 0x8d, 0x7d, 0x02, //0x00004710 leaq $2(%r13), %r15 + 0x49, 0x39, 0xc7, //0x00004714 cmpq %rax, %r15 + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00004717 jae LBB18_21 + 0x42, 0x8a, 0x1c, 0x3f, //0x0000471d movb (%rdi,%r15), %bl + 0x80, 0xfb, 0x0d, //0x00004721 cmpb $13, %bl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00004724 je LBB18_21 + 0x80, 0xfb, 0x20, //0x0000472a cmpb $32, %bl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x0000472d je LBB18_21 + 0x80, 0xc3, 0xf7, //0x00004733 addb $-9, %bl + 0x80, 0xfb, 0x01, //0x00004736 cmpb $1, %bl + 0x0f, 0x87, 0xc3, 0x00, 0x00, 0x00, //0x00004739 ja LBB18_34 + 0x90, //0x0000473f .p2align 4, 0x90 + //0x00004740 LBB18_21 + 0x4d, 0x8d, 0x7d, 0x03, //0x00004740 leaq $3(%r13), %r15 + 0x49, 0x39, 0xc7, //0x00004744 cmpq %rax, %r15 + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00004747 jae LBB18_25 + 0x42, 0x8a, 0x1c, 0x3f, //0x0000474d movb (%rdi,%r15), %bl + 0x80, 0xfb, 0x0d, //0x00004751 cmpb $13, %bl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00004754 je LBB18_25 + 0x80, 0xfb, 0x20, //0x0000475a cmpb $32, %bl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x0000475d je LBB18_25 + 0x80, 0xc3, 0xf7, //0x00004763 addb $-9, %bl + 0x80, 0xfb, 0x01, //0x00004766 cmpb $1, %bl + 0x0f, 0x87, 0x93, 0x00, 0x00, 0x00, //0x00004769 ja LBB18_34 + 0x90, //0x0000476f .p2align 4, 0x90 + //0x00004770 LBB18_25 + 0x49, 0x8d, 0x4d, 0x04, //0x00004770 leaq $4(%r13), %rcx + 0x48, 0x39, 0xc8, //0x00004774 cmpq %rcx, %rax + 0x0f, 0x86, 0xb7, 0x03, 0x00, 0x00, //0x00004777 jbe LBB18_79 + 0x48, 0x39, 0xc8, //0x0000477d cmpq %rcx, %rax + 0x0f, 0x84, 0x4a, 0x00, 0x00, 0x00, //0x00004780 je LBB18_31 + 0x48, 0x8d, 0x0c, 0x07, //0x00004786 leaq (%rdi,%rax), %rcx + 0x48, 0x83, 0xc2, 0x04, //0x0000478a addq $4, %rdx + 0x4e, 0x8d, 0x7c, 0x2f, 0x05, //0x0000478e leaq $5(%rdi,%r13), %r15 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00004793 .p2align 4, 0x90 + //0x000047a0 LBB18_28 + 0x41, 0x0f, 0xbe, 0x5f, 0xff, //0x000047a0 movsbl $-1(%r15), %ebx + 0x83, 0xfb, 0x20, //0x000047a5 cmpl $32, %ebx + 0x0f, 0x87, 0x42, 0x00, 0x00, 0x00, //0x000047a8 ja LBB18_33 + 0x49, 0x0f, 0xa3, 0xdc, //0x000047ae btq %rbx, %r12 + 0x0f, 0x83, 0x38, 0x00, 0x00, 0x00, //0x000047b2 jae LBB18_33 + 0x49, 0xff, 0xc7, //0x000047b8 incq %r15 + 0x48, 0xff, 0xc2, //0x000047bb incq %rdx + 0x0f, 0x85, 0xdc, 0xff, 0xff, 0xff, //0x000047be jne LBB18_28 + 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x000047c4 jmp LBB18_32 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000047c9 .p2align 4, 0x90 + //0x000047d0 LBB18_31 + 0x48, 0x01, 0xf9, //0x000047d0 addq %rdi, %rcx + //0x000047d3 LBB18_32 + 0x48, 0x29, 0xf9, //0x000047d3 subq %rdi, %rcx + 0x49, 0x89, 0xcf, //0x000047d6 movq %rcx, %r15 + 0x49, 0x39, 0xc7, //0x000047d9 cmpq %rax, %r15 + 0x0f, 0x82, 0x20, 0x00, 0x00, 0x00, //0x000047dc jb LBB18_34 + 0xe9, 0x50, 0x03, 0x00, 0x00, //0x000047e2 jmp LBB18_2 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000047e7 .p2align 4, 0x90 + //0x000047f0 LBB18_33 + 0x48, 0x89, 0xfa, //0x000047f0 movq %rdi, %rdx + 0x48, 0xf7, 0xd2, //0x000047f3 notq %rdx + 0x49, 0x01, 0xd7, //0x000047f6 addq %rdx, %r15 + 0x49, 0x39, 0xc7, //0x000047f9 cmpq %rax, %r15 + 0x0f, 0x83, 0x35, 0x03, 0x00, 0x00, //0x000047fc jae LBB18_2 + //0x00004802 LBB18_34 + 0x4d, 0x8d, 0x6f, 0x01, //0x00004802 leaq $1(%r15), %r13 + 0x4d, 0x89, 0x28, //0x00004806 movq %r13, (%r8) + 0x42, 0x0f, 0xbe, 0x0c, 0x3f, //0x00004809 movsbl (%rdi,%r15), %ecx + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x0000480e movq $-1, %rax + 0x85, 0xc9, //0x00004815 testl %ecx, %ecx + 0x0f, 0x84, 0x21, 0x03, 0x00, 0x00, //0x00004817 je LBB18_88 + 0x49, 0x8d, 0x51, 0xff, //0x0000481d leaq $-1(%r9), %rdx + 0x43, 0x8b, 0x1c, 0xca, //0x00004821 movl (%r10,%r9,8), %ebx + 0x49, 0x83, 0xfe, 0xff, //0x00004825 cmpq $-1, %r14 + 0x4d, 0x0f, 0x44, 0xf7, //0x00004829 cmoveq %r15, %r14 + 0xff, 0xcb, //0x0000482d decl %ebx + 0x83, 0xfb, 0x05, //0x0000482f cmpl $5, %ebx + 0x0f, 0x87, 0x20, 0x00, 0x00, 0x00, //0x00004832 ja LBB18_40 + 0x49, 0x63, 0x1c, 0x9b, //0x00004838 movslq (%r11,%rbx,4), %rbx + 0x4c, 0x01, 0xdb, //0x0000483c addq %r11, %rbx + 0xff, 0xe3, //0x0000483f jmpq *%rbx + //0x00004841 LBB18_37 + 0x83, 0xf9, 0x2c, //0x00004841 cmpl $44, %ecx + 0x0f, 0x84, 0x5d, 0x01, 0x00, 0x00, //0x00004844 je LBB18_58 + 0x83, 0xf9, 0x5d, //0x0000484a cmpl $93, %ecx + 0x0f, 0x84, 0xab, 0x00, 0x00, 0x00, //0x0000484d je LBB18_39 + 0xe9, 0x32, 0x03, 0x00, 0x00, //0x00004853 jmp LBB18_87 + //0x00004858 LBB18_40 + 0x49, 0x89, 0x12, //0x00004858 movq %rdx, (%r10) + 0x83, 0xf9, 0x7b, //0x0000485b cmpl $123, %ecx + 0x0f, 0x86, 0xd1, 0x00, 0x00, 0x00, //0x0000485e jbe LBB18_56 + 0xe9, 0x21, 0x03, 0x00, 0x00, //0x00004864 jmp LBB18_87 + //0x00004869 LBB18_41 + 0x83, 0xf9, 0x2c, //0x00004869 cmpl $44, %ecx + 0x0f, 0x84, 0x57, 0x01, 0x00, 0x00, //0x0000486c je LBB18_60 + 0x83, 0xf9, 0x7d, //0x00004872 cmpl $125, %ecx + 0x0f, 0x84, 0x83, 0x00, 0x00, 0x00, //0x00004875 je LBB18_39 + 0xe9, 0x0a, 0x03, 0x00, 0x00, //0x0000487b jmp LBB18_87 + //0x00004880 LBB18_44 + 0x80, 0xf9, 0x22, //0x00004880 cmpb $34, %cl + 0x0f, 0x85, 0x01, 0x03, 0x00, 0x00, //0x00004883 jne LBB18_87 + 0x4b, 0xc7, 0x04, 0xca, 0x04, 0x00, 0x00, 0x00, //0x00004889 movq $4, (%r10,%r9,8) + //0x00004891 LBB18_46 + 0x48, 0xc7, 0x45, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00004891 movq $-1, $-64(%rbp) + 0x48, 0x89, 0xf7, //0x00004899 movq %rsi, %rdi + 0x4c, 0x89, 0xee, //0x0000489c movq %r13, %rsi + 0x48, 0x8d, 0x55, 0xc0, //0x0000489f leaq $-64(%rbp), %rdx + 0x48, 0x8b, 0x4d, 0xa8, //0x000048a3 movq $-88(%rbp), %rcx + 0xe8, 0x44, 0xef, 0xff, 0xff, //0x000048a7 callq _advance_string + 0x48, 0x89, 0xc1, //0x000048ac movq %rax, %rcx + 0x48, 0x85, 0xc0, //0x000048af testq %rax, %rax + 0x0f, 0x88, 0xa1, 0x02, 0x00, 0x00, //0x000048b2 js LBB18_81 + //0x000048b8 LBB18_47 + 0x4c, 0x8b, 0x45, 0xd0, //0x000048b8 movq $-48(%rbp), %r8 + 0x49, 0x89, 0x08, //0x000048bc movq %rcx, (%r8) + 0x4c, 0x89, 0xf8, //0x000048bf movq %r15, %rax + 0x4d, 0x85, 0xed, //0x000048c2 testq %r13, %r13 + 0x48, 0x8b, 0x75, 0xb0, //0x000048c5 movq $-80(%rbp), %rsi + 0x4c, 0x8b, 0x55, 0xb8, //0x000048c9 movq $-72(%rbp), %r10 + 0x4c, 0x8d, 0x1d, 0xc8, 0x03, 0x00, 0x00, //0x000048cd leaq $968(%rip), %r11 /* LJTI18_0+0(%rip) */ + 0x0f, 0x8f, 0xa9, 0xfd, 0xff, 0xff, //0x000048d4 jg LBB18_6 + 0xe9, 0x5f, 0x02, 0x00, 0x00, //0x000048da jmp LBB18_88 + //0x000048df LBB18_48 + 0x80, 0xf9, 0x3a, //0x000048df cmpb $58, %cl + 0x0f, 0x85, 0xa2, 0x02, 0x00, 0x00, //0x000048e2 jne LBB18_87 + 0x4b, 0xc7, 0x04, 0xca, 0x00, 0x00, 0x00, 0x00, //0x000048e8 movq $0, (%r10,%r9,8) + 0xe9, 0x8b, 0xfd, 0xff, 0xff, //0x000048f0 jmp LBB18_5 + //0x000048f5 LBB18_50 + 0x80, 0xf9, 0x5d, //0x000048f5 cmpb $93, %cl + 0x0f, 0x85, 0x26, 0x00, 0x00, 0x00, //0x000048f8 jne LBB18_55 + //0x000048fe LBB18_39 + 0x49, 0x89, 0x12, //0x000048fe movq %rdx, (%r10) + 0xe9, 0x83, 0xfd, 0xff, 0xff, //0x00004901 jmp LBB18_7 + //0x00004906 LBB18_52 + 0x83, 0xf9, 0x22, //0x00004906 cmpl $34, %ecx + 0x0f, 0x84, 0xdc, 0x00, 0x00, 0x00, //0x00004909 je LBB18_62 + 0x83, 0xf9, 0x7d, //0x0000490f cmpl $125, %ecx + 0x0f, 0x85, 0x72, 0x02, 0x00, 0x00, //0x00004912 jne LBB18_87 + 0x49, 0x89, 0x12, //0x00004918 movq %rdx, (%r10) + 0x4c, 0x8b, 0x45, 0xd0, //0x0000491b movq $-48(%rbp), %r8 + 0xe9, 0x65, 0xfd, 0xff, 0xff, //0x0000491f jmp LBB18_7 + //0x00004924 LBB18_55 + 0x4b, 0xc7, 0x04, 0xca, 0x01, 0x00, 0x00, 0x00, //0x00004924 movq $1, (%r10,%r9,8) + 0x83, 0xf9, 0x7b, //0x0000492c cmpl $123, %ecx + 0x0f, 0x87, 0x55, 0x02, 0x00, 0x00, //0x0000492f ja LBB18_87 + //0x00004935 LBB18_56 + 0x4a, 0x8d, 0x1c, 0x3f, //0x00004935 leaq (%rdi,%r15), %rbx + 0x89, 0xca, //0x00004939 movl %ecx, %edx + 0x48, 0x8d, 0x0d, 0x72, 0x03, 0x00, 0x00, //0x0000493b leaq $882(%rip), %rcx /* LJTI18_1+0(%rip) */ + 0x48, 0x63, 0x14, 0x91, //0x00004942 movslq (%rcx,%rdx,4), %rdx + 0x48, 0x01, 0xca, //0x00004946 addq %rcx, %rdx + 0xff, 0xe2, //0x00004949 jmpq *%rdx + //0x0000494b LBB18_57 + 0x48, 0x8b, 0x45, 0xc8, //0x0000494b movq $-56(%rbp), %rax + 0x48, 0x8b, 0x30, //0x0000494f movq (%rax), %rsi + 0x4c, 0x29, 0xfe, //0x00004952 subq %r15, %rsi + 0x48, 0x89, 0xdf, //0x00004955 movq %rbx, %rdi + 0xe8, 0xd3, 0x06, 0x00, 0x00, //0x00004958 callq _do_skip_number + 0x4c, 0x8d, 0x1d, 0x38, 0x03, 0x00, 0x00, //0x0000495d leaq $824(%rip), %r11 /* LJTI18_0+0(%rip) */ + 0x4c, 0x8b, 0x55, 0xb8, //0x00004964 movq $-72(%rbp), %r10 + 0x48, 0x8b, 0x75, 0xb0, //0x00004968 movq $-80(%rbp), %rsi + 0x4c, 0x8b, 0x45, 0xd0, //0x0000496c movq $-48(%rbp), %r8 + 0x48, 0xc7, 0xc2, 0xfe, 0xff, 0xff, 0xff, //0x00004970 movq $-2, %rdx + 0x48, 0x29, 0xc2, //0x00004977 subq %rax, %rdx + 0x48, 0x85, 0xc0, //0x0000497a testq %rax, %rax + 0x48, 0x8d, 0x48, 0xff, //0x0000497d leaq $-1(%rax), %rcx + 0x48, 0x0f, 0x48, 0xca, //0x00004981 cmovsq %rdx, %rcx + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00004985 movq $-2, %rax + 0x4c, 0x0f, 0x48, 0xf8, //0x0000498c cmovsq %rax, %r15 + 0x4c, 0x01, 0xe9, //0x00004990 addq %r13, %rcx + 0x49, 0x89, 0x08, //0x00004993 movq %rcx, (%r8) + 0x4c, 0x89, 0xf8, //0x00004996 movq %r15, %rax + 0x4d, 0x85, 0xff, //0x00004999 testq %r15, %r15 + 0x0f, 0x89, 0xe1, 0xfc, 0xff, 0xff, //0x0000499c jns LBB18_6 + 0xe9, 0x97, 0x01, 0x00, 0x00, //0x000049a2 jmp LBB18_88 + //0x000049a7 LBB18_58 + 0x49, 0x81, 0xf9, 0xff, 0x0f, 0x00, 0x00, //0x000049a7 cmpq $4095, %r9 + 0x0f, 0x8f, 0x99, 0x01, 0x00, 0x00, //0x000049ae jg LBB18_82 + 0x49, 0x8d, 0x41, 0x01, //0x000049b4 leaq $1(%r9), %rax + 0x49, 0x89, 0x02, //0x000049b8 movq %rax, (%r10) + 0x4b, 0xc7, 0x44, 0xca, 0x08, 0x00, 0x00, 0x00, 0x00, //0x000049bb movq $0, $8(%r10,%r9,8) + 0xe9, 0xb7, 0xfc, 0xff, 0xff, //0x000049c4 jmp LBB18_5 + //0x000049c9 LBB18_60 + 0x49, 0x81, 0xf9, 0xff, 0x0f, 0x00, 0x00, //0x000049c9 cmpq $4095, %r9 + 0x0f, 0x8f, 0x77, 0x01, 0x00, 0x00, //0x000049d0 jg LBB18_82 + 0x49, 0x8d, 0x41, 0x01, //0x000049d6 leaq $1(%r9), %rax + 0x49, 0x89, 0x02, //0x000049da movq %rax, (%r10) + 0x4b, 0xc7, 0x44, 0xca, 0x08, 0x03, 0x00, 0x00, 0x00, //0x000049dd movq $3, $8(%r10,%r9,8) + 0xe9, 0x95, 0xfc, 0xff, 0xff, //0x000049e6 jmp LBB18_5 + //0x000049eb LBB18_62 + 0x4b, 0xc7, 0x04, 0xca, 0x02, 0x00, 0x00, 0x00, //0x000049eb movq $2, (%r10,%r9,8) + 0x48, 0xc7, 0x45, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000049f3 movq $-1, $-64(%rbp) + 0x48, 0x89, 0xf7, //0x000049fb movq %rsi, %rdi + 0x4c, 0x89, 0xee, //0x000049fe movq %r13, %rsi + 0x48, 0x8d, 0x55, 0xc0, //0x00004a01 leaq $-64(%rbp), %rdx + 0x48, 0x8b, 0x4d, 0xa8, //0x00004a05 movq $-88(%rbp), %rcx + 0xe8, 0xe2, 0xed, 0xff, 0xff, //0x00004a09 callq _advance_string + 0x48, 0x89, 0xc1, //0x00004a0e movq %rax, %rcx + 0x48, 0x85, 0xc0, //0x00004a11 testq %rax, %rax + 0x0f, 0x88, 0x3f, 0x01, 0x00, 0x00, //0x00004a14 js LBB18_81 + 0x4c, 0x8b, 0x45, 0xd0, //0x00004a1a movq $-48(%rbp), %r8 + 0x49, 0x89, 0x08, //0x00004a1e movq %rcx, (%r8) + 0x4c, 0x89, 0xf8, //0x00004a21 movq %r15, %rax + 0x4d, 0x85, 0xed, //0x00004a24 testq %r13, %r13 + 0x48, 0x8b, 0x75, 0xb0, //0x00004a27 movq $-80(%rbp), %rsi + 0x4c, 0x8b, 0x55, 0xb8, //0x00004a2b movq $-72(%rbp), %r10 + 0x4c, 0x8d, 0x1d, 0x66, 0x02, 0x00, 0x00, //0x00004a2f leaq $614(%rip), %r11 /* LJTI18_0+0(%rip) */ + 0x0f, 0x8e, 0x02, 0x01, 0x00, 0x00, //0x00004a36 jle LBB18_88 + 0x49, 0x8b, 0x02, //0x00004a3c movq (%r10), %rax + 0x48, 0x3d, 0xff, 0x0f, 0x00, 0x00, //0x00004a3f cmpq $4095, %rax + 0x0f, 0x8f, 0x02, 0x01, 0x00, 0x00, //0x00004a45 jg LBB18_82 + 0x48, 0x8d, 0x50, 0x01, //0x00004a4b leaq $1(%rax), %rdx + 0x49, 0x89, 0x12, //0x00004a4f movq %rdx, (%r10) + 0x49, 0xc7, 0x44, 0xc2, 0x08, 0x04, 0x00, 0x00, 0x00, //0x00004a52 movq $4, $8(%r10,%rax,8) + 0xe9, 0x23, 0xfc, 0xff, 0xff, //0x00004a5b jmp LBB18_6 + //0x00004a60 LBB18_66 + 0x4c, 0x01, 0xef, //0x00004a60 addq %r13, %rdi + 0x48, 0x8b, 0x45, 0xc8, //0x00004a63 movq $-56(%rbp), %rax + 0x48, 0x8b, 0x30, //0x00004a67 movq (%rax), %rsi + 0x4c, 0x29, 0xee, //0x00004a6a subq %r13, %rsi + 0xe8, 0xbe, 0x05, 0x00, 0x00, //0x00004a6d callq _do_skip_number + 0x48, 0x89, 0xc1, //0x00004a72 movq %rax, %rcx + 0x48, 0x85, 0xc0, //0x00004a75 testq %rax, %rax + 0x0f, 0x88, 0x02, 0x01, 0x00, 0x00, //0x00004a78 js LBB18_86 + 0x4c, 0x01, 0xe9, //0x00004a7e addq %r13, %rcx + 0xe9, 0x32, 0xfe, 0xff, 0xff, //0x00004a81 jmp LBB18_47 + //0x00004a86 LBB18_68 + 0x49, 0x8b, 0x02, //0x00004a86 movq (%r10), %rax + 0x48, 0x3d, 0xff, 0x0f, 0x00, 0x00, //0x00004a89 cmpq $4095, %rax + 0x0f, 0x8f, 0xb8, 0x00, 0x00, 0x00, //0x00004a8f jg LBB18_82 + 0x48, 0x8d, 0x48, 0x01, //0x00004a95 leaq $1(%rax), %rcx + 0x49, 0x89, 0x0a, //0x00004a99 movq %rcx, (%r10) + 0x49, 0xc7, 0x44, 0xc2, 0x08, 0x05, 0x00, 0x00, 0x00, //0x00004a9c movq $5, $8(%r10,%rax,8) + 0xe9, 0xd6, 0xfb, 0xff, 0xff, //0x00004aa5 jmp LBB18_5 + //0x00004aaa LBB18_70 + 0x48, 0x8b, 0x4d, 0xc8, //0x00004aaa movq $-56(%rbp), %rcx + 0x48, 0x8b, 0x09, //0x00004aae movq (%rcx), %rcx + 0x48, 0x8d, 0x51, 0xfc, //0x00004ab1 leaq $-4(%rcx), %rdx + 0x49, 0x39, 0xd7, //0x00004ab5 cmpq %rdx, %r15 + 0x0f, 0x83, 0xd8, 0x00, 0x00, 0x00, //0x00004ab8 jae LBB18_90 + 0x42, 0x8b, 0x0c, 0x2f, //0x00004abe movl (%rdi,%r13), %ecx + 0x81, 0xf9, 0x61, 0x6c, 0x73, 0x65, //0x00004ac2 cmpl $1702063201, %ecx + 0x0f, 0x85, 0x21, 0x01, 0x00, 0x00, //0x00004ac8 jne LBB18_97 + 0x49, 0x8d, 0x4f, 0x05, //0x00004ace leaq $5(%r15), %rcx + 0xe9, 0x49, 0x00, 0x00, 0x00, //0x00004ad2 jmp LBB18_78 + //0x00004ad7 LBB18_73 + 0x48, 0x8b, 0x55, 0xc8, //0x00004ad7 movq $-56(%rbp), %rdx + 0x48, 0x8b, 0x12, //0x00004adb movq (%rdx), %rdx + 0x48, 0x8d, 0x4a, 0xfd, //0x00004ade leaq $-3(%rdx), %rcx + 0x49, 0x39, 0xcf, //0x00004ae2 cmpq %rcx, %r15 + 0x0f, 0x83, 0x8d, 0x00, 0x00, 0x00, //0x00004ae5 jae LBB18_92 + 0x81, 0x3b, 0x6e, 0x75, 0x6c, 0x6c, //0x00004aeb cmpl $1819047278, (%rbx) + 0x0f, 0x84, 0x25, 0x00, 0x00, 0x00, //0x00004af1 je LBB18_77 + 0xe9, 0x48, 0x01, 0x00, 0x00, //0x00004af7 jmp LBB18_102 + //0x00004afc LBB18_75 + 0x48, 0x8b, 0x55, 0xc8, //0x00004afc movq $-56(%rbp), %rdx + 0x48, 0x8b, 0x12, //0x00004b00 movq (%rdx), %rdx + 0x48, 0x8d, 0x4a, 0xfd, //0x00004b03 leaq $-3(%rdx), %rcx + 0x49, 0x39, 0xcf, //0x00004b07 cmpq %rcx, %r15 + 0x0f, 0x83, 0x68, 0x00, 0x00, 0x00, //0x00004b0a jae LBB18_92 + 0x81, 0x3b, 0x74, 0x72, 0x75, 0x65, //0x00004b10 cmpl $1702195828, (%rbx) + 0x0f, 0x85, 0x82, 0x00, 0x00, 0x00, //0x00004b16 jne LBB18_93 + //0x00004b1c LBB18_77 + 0x49, 0x8d, 0x4f, 0x04, //0x00004b1c leaq $4(%r15), %rcx + //0x00004b20 LBB18_78 + 0x49, 0x89, 0x08, //0x00004b20 movq %rcx, (%r8) + 0x4c, 0x89, 0xf8, //0x00004b23 movq %r15, %rax + 0x4d, 0x85, 0xed, //0x00004b26 testq %r13, %r13 + 0x0f, 0x8f, 0x54, 0xfb, 0xff, 0xff, //0x00004b29 jg LBB18_6 + 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x00004b2f jmp LBB18_88 + //0x00004b34 LBB18_79 + 0x49, 0x89, 0x08, //0x00004b34 movq %rcx, (%r8) + //0x00004b37 LBB18_2 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00004b37 movq $-1, %rax + //0x00004b3e LBB18_88 + 0x48, 0x83, 0xc4, 0x38, //0x00004b3e addq $56, %rsp + 0x5b, //0x00004b42 popq %rbx + 0x41, 0x5c, //0x00004b43 popq %r12 + 0x41, 0x5d, //0x00004b45 popq %r13 + 0x41, 0x5e, //0x00004b47 popq %r14 + 0x41, 0x5f, //0x00004b49 popq %r15 + 0x5d, //0x00004b4b popq %rbp + 0xc3, //0x00004b4c retq + //0x00004b4d LBB18_82 + 0x48, 0xc7, 0xc0, 0xf9, 0xff, 0xff, 0xff, //0x00004b4d movq $-7, %rax + 0xe9, 0xe5, 0xff, 0xff, 0xff, //0x00004b54 jmp LBB18_88 + //0x00004b59 LBB18_81 + 0x48, 0x83, 0xf9, 0xff, //0x00004b59 cmpq $-1, %rcx + 0x48, 0x8d, 0x45, 0xc0, //0x00004b5d leaq $-64(%rbp), %rax + 0x48, 0x0f, 0x44, 0x45, 0xc8, //0x00004b61 cmoveq $-56(%rbp), %rax + 0x48, 0x8b, 0x00, //0x00004b66 movq (%rax), %rax + 0x48, 0x8b, 0x55, 0xd0, //0x00004b69 movq $-48(%rbp), %rdx + 0x48, 0x89, 0x02, //0x00004b6d movq %rax, (%rdx) + 0x48, 0x89, 0xc8, //0x00004b70 movq %rcx, %rax + 0xe9, 0xc6, 0xff, 0xff, 0xff, //0x00004b73 jmp LBB18_88 + //0x00004b78 LBB18_92 + 0x49, 0x89, 0x10, //0x00004b78 movq %rdx, (%r8) + 0xe9, 0xbe, 0xff, 0xff, 0xff, //0x00004b7b jmp LBB18_88 + //0x00004b80 LBB18_86 + 0x49, 0x29, 0xcf, //0x00004b80 subq %rcx, %r15 + 0x48, 0x8b, 0x45, 0xd0, //0x00004b83 movq $-48(%rbp), %rax + 0x4c, 0x89, 0x38, //0x00004b87 movq %r15, (%rax) + //0x00004b8a LBB18_87 + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00004b8a movq $-2, %rax + 0xe9, 0xa8, 0xff, 0xff, 0xff, //0x00004b91 jmp LBB18_88 + //0x00004b96 LBB18_90 + 0x49, 0x89, 0x08, //0x00004b96 movq %rcx, (%r8) + 0xe9, 0xa0, 0xff, 0xff, 0xff, //0x00004b99 jmp LBB18_88 + //0x00004b9e LBB18_93 + 0x4d, 0x89, 0x38, //0x00004b9e movq %r15, (%r8) + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00004ba1 movq $-2, %rax + 0x80, 0x3b, 0x74, //0x00004ba8 cmpb $116, (%rbx) + 0x0f, 0x85, 0x8d, 0xff, 0xff, 0xff, //0x00004bab jne LBB18_88 + 0x49, 0x8d, 0x4f, 0x01, //0x00004bb1 leaq $1(%r15), %rcx + 0x49, 0x89, 0x08, //0x00004bb5 movq %rcx, (%r8) + 0x42, 0x80, 0x7c, 0x3f, 0x01, 0x72, //0x00004bb8 cmpb $114, $1(%rdi,%r15) + 0x0f, 0x85, 0x7a, 0xff, 0xff, 0xff, //0x00004bbe jne LBB18_88 + 0x49, 0x8d, 0x4f, 0x02, //0x00004bc4 leaq $2(%r15), %rcx + 0x49, 0x89, 0x08, //0x00004bc8 movq %rcx, (%r8) + 0x42, 0x80, 0x7c, 0x3f, 0x02, 0x75, //0x00004bcb cmpb $117, $2(%rdi,%r15) + 0x0f, 0x85, 0x67, 0xff, 0xff, 0xff, //0x00004bd1 jne LBB18_88 + 0x49, 0x8d, 0x4f, 0x03, //0x00004bd7 leaq $3(%r15), %rcx + 0x49, 0x89, 0x08, //0x00004bdb movq %rcx, (%r8) + 0x42, 0x80, 0x7c, 0x3f, 0x03, 0x65, //0x00004bde cmpb $101, $3(%rdi,%r15) + 0x0f, 0x84, 0xa6, 0x00, 0x00, 0x00, //0x00004be4 je LBB18_106 + 0xe9, 0x4f, 0xff, 0xff, 0xff, //0x00004bea jmp LBB18_88 + //0x00004bef LBB18_97 + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00004bef movq $-2, %rax + 0x80, 0xf9, 0x61, //0x00004bf6 cmpb $97, %cl + 0x0f, 0x85, 0x3f, 0xff, 0xff, 0xff, //0x00004bf9 jne LBB18_88 + 0x49, 0x8d, 0x4f, 0x02, //0x00004bff leaq $2(%r15), %rcx + 0x49, 0x89, 0x08, //0x00004c03 movq %rcx, (%r8) + 0x42, 0x80, 0x7c, 0x3f, 0x02, 0x6c, //0x00004c06 cmpb $108, $2(%rdi,%r15) + 0x0f, 0x85, 0x2c, 0xff, 0xff, 0xff, //0x00004c0c jne LBB18_88 + 0x49, 0x8d, 0x4f, 0x03, //0x00004c12 leaq $3(%r15), %rcx + 0x49, 0x89, 0x08, //0x00004c16 movq %rcx, (%r8) + 0x42, 0x80, 0x7c, 0x3f, 0x03, 0x73, //0x00004c19 cmpb $115, $3(%rdi,%r15) + 0x0f, 0x85, 0x19, 0xff, 0xff, 0xff, //0x00004c1f jne LBB18_88 + 0x49, 0x8d, 0x4f, 0x04, //0x00004c25 leaq $4(%r15), %rcx + 0x49, 0x89, 0x08, //0x00004c29 movq %rcx, (%r8) + 0x42, 0x80, 0x7c, 0x3f, 0x04, 0x65, //0x00004c2c cmpb $101, $4(%rdi,%r15) + 0x0f, 0x85, 0x06, 0xff, 0xff, 0xff, //0x00004c32 jne LBB18_88 + 0x49, 0x83, 0xc7, 0x05, //0x00004c38 addq $5, %r15 + 0x4d, 0x89, 0x38, //0x00004c3c movq %r15, (%r8) + 0xe9, 0xfa, 0xfe, 0xff, 0xff, //0x00004c3f jmp LBB18_88 + //0x00004c44 LBB18_102 + 0x4d, 0x89, 0x38, //0x00004c44 movq %r15, (%r8) + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00004c47 movq $-2, %rax + 0x80, 0x3b, 0x6e, //0x00004c4e cmpb $110, (%rbx) + 0x0f, 0x85, 0xe7, 0xfe, 0xff, 0xff, //0x00004c51 jne LBB18_88 + 0x49, 0x8d, 0x4f, 0x01, //0x00004c57 leaq $1(%r15), %rcx + 0x49, 0x89, 0x08, //0x00004c5b movq %rcx, (%r8) + 0x42, 0x80, 0x7c, 0x3f, 0x01, 0x75, //0x00004c5e cmpb $117, $1(%rdi,%r15) + 0x0f, 0x85, 0xd4, 0xfe, 0xff, 0xff, //0x00004c64 jne LBB18_88 + 0x49, 0x8d, 0x4f, 0x02, //0x00004c6a leaq $2(%r15), %rcx + 0x49, 0x89, 0x08, //0x00004c6e movq %rcx, (%r8) + 0x42, 0x80, 0x7c, 0x3f, 0x02, 0x6c, //0x00004c71 cmpb $108, $2(%rdi,%r15) + 0x0f, 0x85, 0xc1, 0xfe, 0xff, 0xff, //0x00004c77 jne LBB18_88 + 0x49, 0x8d, 0x4f, 0x03, //0x00004c7d leaq $3(%r15), %rcx + 0x49, 0x89, 0x08, //0x00004c81 movq %rcx, (%r8) + 0x42, 0x80, 0x7c, 0x3f, 0x03, 0x6c, //0x00004c84 cmpb $108, $3(%rdi,%r15) + 0x0f, 0x85, 0xae, 0xfe, 0xff, 0xff, //0x00004c8a jne LBB18_88 + //0x00004c90 LBB18_106 + 0x49, 0x83, 0xc7, 0x04, //0x00004c90 addq $4, %r15 + 0x4d, 0x89, 0x38, //0x00004c94 movq %r15, (%r8) + 0xe9, 0xa2, 0xfe, 0xff, 0xff, //0x00004c97 jmp LBB18_88 + //0x00004c9c .p2align 2, 0x90 + // // .set L18_0_set_37, LBB18_37-LJTI18_0 + // // .set L18_0_set_41, LBB18_41-LJTI18_0 + // // .set L18_0_set_44, LBB18_44-LJTI18_0 + // // .set L18_0_set_48, LBB18_48-LJTI18_0 + // // .set L18_0_set_50, LBB18_50-LJTI18_0 + // // .set L18_0_set_52, LBB18_52-LJTI18_0 + //0x00004c9c LJTI18_0 + 0xa5, 0xfb, 0xff, 0xff, //0x00004c9c .long L18_0_set_37 + 0xcd, 0xfb, 0xff, 0xff, //0x00004ca0 .long L18_0_set_41 + 0xe4, 0xfb, 0xff, 0xff, //0x00004ca4 .long L18_0_set_44 + 0x43, 0xfc, 0xff, 0xff, //0x00004ca8 .long L18_0_set_48 + 0x59, 0xfc, 0xff, 0xff, //0x00004cac .long L18_0_set_50 + 0x6a, 0xfc, 0xff, 0xff, //0x00004cb0 .long L18_0_set_52 + // // .set L18_1_set_88, LBB18_88-LJTI18_1 + // // .set L18_1_set_87, LBB18_87-LJTI18_1 + // // .set L18_1_set_46, LBB18_46-LJTI18_1 + // // .set L18_1_set_66, LBB18_66-LJTI18_1 + // // .set L18_1_set_57, LBB18_57-LJTI18_1 + // // .set L18_1_set_68, LBB18_68-LJTI18_1 + // // .set L18_1_set_70, LBB18_70-LJTI18_1 + // // .set L18_1_set_73, LBB18_73-LJTI18_1 + // // .set L18_1_set_75, LBB18_75-LJTI18_1 + // // .set L18_1_set_3, LBB18_3-LJTI18_1 + //0x00004cb4 LJTI18_1 + 0x8a, 0xfe, 0xff, 0xff, //0x00004cb4 .long L18_1_set_88 + 0xd6, 0xfe, 0xff, 0xff, //0x00004cb8 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004cbc .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004cc0 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004cc4 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004cc8 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004ccc .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004cd0 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004cd4 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004cd8 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004cdc .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004ce0 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004ce4 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004ce8 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004cec .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004cf0 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004cf4 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004cf8 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004cfc .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d00 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d04 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d08 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d0c .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d10 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d14 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d18 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d1c .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d20 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d24 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d28 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d2c .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d30 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d34 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d38 .long L18_1_set_87 + 0xdd, 0xfb, 0xff, 0xff, //0x00004d3c .long L18_1_set_46 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d40 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d44 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d48 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d4c .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d50 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d54 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d58 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d5c .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d60 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d64 .long L18_1_set_87 + 0xac, 0xfd, 0xff, 0xff, //0x00004d68 .long L18_1_set_66 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d6c .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d70 .long L18_1_set_87 + 0x97, 0xfc, 0xff, 0xff, //0x00004d74 .long L18_1_set_57 + 0x97, 0xfc, 0xff, 0xff, //0x00004d78 .long L18_1_set_57 + 0x97, 0xfc, 0xff, 0xff, //0x00004d7c .long L18_1_set_57 + 0x97, 0xfc, 0xff, 0xff, //0x00004d80 .long L18_1_set_57 + 0x97, 0xfc, 0xff, 0xff, //0x00004d84 .long L18_1_set_57 + 0x97, 0xfc, 0xff, 0xff, //0x00004d88 .long L18_1_set_57 + 0x97, 0xfc, 0xff, 0xff, //0x00004d8c .long L18_1_set_57 + 0x97, 0xfc, 0xff, 0xff, //0x00004d90 .long L18_1_set_57 + 0x97, 0xfc, 0xff, 0xff, //0x00004d94 .long L18_1_set_57 + 0x97, 0xfc, 0xff, 0xff, //0x00004d98 .long L18_1_set_57 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d9c .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004da0 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004da4 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004da8 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004dac .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004db0 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004db4 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004db8 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004dbc .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004dc0 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004dc4 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004dc8 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004dcc .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004dd0 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004dd4 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004dd8 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004ddc .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004de0 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004de4 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004de8 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004dec .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004df0 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004df4 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004df8 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004dfc .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e00 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e04 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e08 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e0c .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e10 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e14 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e18 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e1c .long L18_1_set_87 + 0xd2, 0xfd, 0xff, 0xff, //0x00004e20 .long L18_1_set_68 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e24 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e28 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e2c .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e30 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e34 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e38 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e3c .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e40 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e44 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e48 .long L18_1_set_87 + 0xf6, 0xfd, 0xff, 0xff, //0x00004e4c .long L18_1_set_70 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e50 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e54 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e58 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e5c .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e60 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e64 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e68 .long L18_1_set_87 + 0x23, 0xfe, 0xff, 0xff, //0x00004e6c .long L18_1_set_73 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e70 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e74 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e78 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e7c .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e80 .long L18_1_set_87 + 0x48, 0xfe, 0xff, 0xff, //0x00004e84 .long L18_1_set_75 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e88 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e8c .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e90 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e94 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e98 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e9c .long L18_1_set_87 + 0xa7, 0xf9, 0xff, 0xff, //0x00004ea0 .long L18_1_set_3 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004ea4 .p2align 4, 0x00 + //0x00004eb0 LCPI19_0 + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004eb0 .quad 1 + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004eb8 .quad 6 + //0x00004ec0 .p2align 4, 0x90 + //0x00004ec0 _skip_object + 0x55, //0x00004ec0 pushq %rbp + 0x48, 0x89, 0xe5, //0x00004ec1 movq %rsp, %rbp + 0x48, 0x89, 0xd0, //0x00004ec4 movq %rdx, %rax + 0x48, 0x89, 0xf2, //0x00004ec7 movq %rsi, %rdx + 0x48, 0x89, 0xfe, //0x00004eca movq %rdi, %rsi + 0xc5, 0xf8, 0x28, 0x05, 0xdb, 0xff, 0xff, 0xff, //0x00004ecd vmovaps $-37(%rip), %xmm0 /* LCPI19_0+0(%rip) */ + 0xc5, 0xf8, 0x11, 0x00, //0x00004ed5 vmovups %xmm0, (%rax) + 0x48, 0x89, 0xc7, //0x00004ed9 movq %rax, %rdi + 0x5d, //0x00004edc popq %rbp + 0xe9, 0x1e, 0xf7, 0xff, 0xff, //0x00004edd jmp _fsm_exec + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00004ee2 .p2align 4, 0x90 + //0x00004ef0 _skip_string + 0x55, //0x00004ef0 pushq %rbp + 0x48, 0x89, 0xe5, //0x00004ef1 movq %rsp, %rbp + 0x41, 0x57, //0x00004ef4 pushq %r15 + 0x41, 0x56, //0x00004ef6 pushq %r14 + 0x41, 0x54, //0x00004ef8 pushq %r12 + 0x53, //0x00004efa pushq %rbx + 0x48, 0x83, 0xec, 0x10, //0x00004efb subq $16, %rsp + 0x48, 0x89, 0xd1, //0x00004eff movq %rdx, %rcx + 0x49, 0x89, 0xf6, //0x00004f02 movq %rsi, %r14 + 0x49, 0x89, 0xff, //0x00004f05 movq %rdi, %r15 + 0x48, 0xc7, 0x45, 0xd8, 0xff, 0xff, 0xff, 0xff, //0x00004f08 movq $-1, $-40(%rbp) + 0x48, 0x8b, 0x1e, //0x00004f10 movq (%rsi), %rbx + 0x4c, 0x8d, 0x65, 0xd8, //0x00004f13 leaq $-40(%rbp), %r12 + 0x48, 0x89, 0xde, //0x00004f17 movq %rbx, %rsi + 0x4c, 0x89, 0xe2, //0x00004f1a movq %r12, %rdx + 0xe8, 0xce, 0xe8, 0xff, 0xff, //0x00004f1d callq _advance_string + 0x48, 0x85, 0xc0, //0x00004f22 testq %rax, %rax + 0x0f, 0x88, 0x0e, 0x00, 0x00, 0x00, //0x00004f25 js LBB20_1 + 0x48, 0xff, 0xcb, //0x00004f2b decq %rbx + 0x48, 0x89, 0xc1, //0x00004f2e movq %rax, %rcx + 0x48, 0x89, 0xd8, //0x00004f31 movq %rbx, %rax + 0xe9, 0x10, 0x00, 0x00, 0x00, //0x00004f34 jmp LBB20_3 + //0x00004f39 LBB20_1 + 0x49, 0x83, 0xc7, 0x08, //0x00004f39 addq $8, %r15 + 0x48, 0x83, 0xf8, 0xff, //0x00004f3d cmpq $-1, %rax + 0x4d, 0x0f, 0x44, 0xe7, //0x00004f41 cmoveq %r15, %r12 + 0x49, 0x8b, 0x0c, 0x24, //0x00004f45 movq (%r12), %rcx + //0x00004f49 LBB20_3 + 0x49, 0x89, 0x0e, //0x00004f49 movq %rcx, (%r14) + 0x48, 0x83, 0xc4, 0x10, //0x00004f4c addq $16, %rsp + 0x5b, //0x00004f50 popq %rbx + 0x41, 0x5c, //0x00004f51 popq %r12 + 0x41, 0x5e, //0x00004f53 popq %r14 + 0x41, 0x5f, //0x00004f55 popq %r15 + 0x5d, //0x00004f57 popq %rbp + 0xc3, //0x00004f58 retq + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00004f59 .p2align 4, 0x90 + //0x00004f60 _skip_negative + 0x55, //0x00004f60 pushq %rbp + 0x48, 0x89, 0xe5, //0x00004f61 movq %rsp, %rbp + 0x41, 0x56, //0x00004f64 pushq %r14 + 0x53, //0x00004f66 pushq %rbx + 0x49, 0x89, 0xf6, //0x00004f67 movq %rsi, %r14 + 0x48, 0x8b, 0x1e, //0x00004f6a movq (%rsi), %rbx + 0x48, 0x8b, 0x07, //0x00004f6d movq (%rdi), %rax + 0x48, 0x01, 0xd8, //0x00004f70 addq %rbx, %rax + 0x48, 0x8b, 0x77, 0x08, //0x00004f73 movq $8(%rdi), %rsi + 0x48, 0x29, 0xde, //0x00004f77 subq %rbx, %rsi + 0x48, 0x89, 0xc7, //0x00004f7a movq %rax, %rdi + 0xe8, 0xae, 0x00, 0x00, 0x00, //0x00004f7d callq _do_skip_number + 0x48, 0x85, 0xc0, //0x00004f82 testq %rax, %rax + 0x0f, 0x88, 0x0e, 0x00, 0x00, 0x00, //0x00004f85 js LBB21_1 + 0x48, 0x01, 0xd8, //0x00004f8b addq %rbx, %rax + 0x49, 0x89, 0x06, //0x00004f8e movq %rax, (%r14) + 0x48, 0xff, 0xcb, //0x00004f91 decq %rbx + 0xe9, 0x10, 0x00, 0x00, 0x00, //0x00004f94 jmp LBB21_3 + //0x00004f99 LBB21_1 + 0x48, 0xf7, 0xd0, //0x00004f99 notq %rax + 0x48, 0x01, 0xc3, //0x00004f9c addq %rax, %rbx + 0x49, 0x89, 0x1e, //0x00004f9f movq %rbx, (%r14) + 0x48, 0xc7, 0xc3, 0xfe, 0xff, 0xff, 0xff, //0x00004fa2 movq $-2, %rbx + //0x00004fa9 LBB21_3 + 0x48, 0x89, 0xd8, //0x00004fa9 movq %rbx, %rax + 0x5b, //0x00004fac popq %rbx + 0x41, 0x5e, //0x00004fad popq %r14 + 0x5d, //0x00004faf popq %rbp + 0xc3, //0x00004fb0 retq + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004fb1 .p2align 4, 0x00 + //0x00004fc0 LCPI22_0 + 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, //0x00004fc0 QUAD $0x2f2f2f2f2f2f2f2f; QUAD $0x2f2f2f2f2f2f2f2f // .space 16, '////////////////' + //0x00004fd0 LCPI22_1 + 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, //0x00004fd0 QUAD $0x3a3a3a3a3a3a3a3a; QUAD $0x3a3a3a3a3a3a3a3a // .space 16, '::::::::::::::::' + //0x00004fe0 LCPI22_2 + 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, //0x00004fe0 QUAD $0x2b2b2b2b2b2b2b2b; QUAD $0x2b2b2b2b2b2b2b2b // .space 16, '++++++++++++++++' + //0x00004ff0 LCPI22_3 + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, //0x00004ff0 QUAD $0x2d2d2d2d2d2d2d2d; QUAD $0x2d2d2d2d2d2d2d2d // .space 16, '----------------' + //0x00005000 LCPI22_4 + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x00005000 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' + //0x00005010 LCPI22_5 + 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, //0x00005010 QUAD $0x2e2e2e2e2e2e2e2e; QUAD $0x2e2e2e2e2e2e2e2e // .space 16, '................' + //0x00005020 LCPI22_6 + 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, //0x00005020 QUAD $0x6565656565656565; QUAD $0x6565656565656565 // .space 16, 'eeeeeeeeeeeeeeee' + //0x00005030 .p2align 4, 0x90 + //0x00005030 _do_skip_number + 0x55, //0x00005030 pushq %rbp + 0x48, 0x89, 0xe5, //0x00005031 movq %rsp, %rbp + 0x41, 0x57, //0x00005034 pushq %r15 + 0x41, 0x56, //0x00005036 pushq %r14 + 0x41, 0x55, //0x00005038 pushq %r13 + 0x41, 0x54, //0x0000503a pushq %r12 + 0x53, //0x0000503c pushq %rbx + 0x48, 0x85, 0xf6, //0x0000503d testq %rsi, %rsi + 0x0f, 0x84, 0x64, 0x02, 0x00, 0x00, //0x00005040 je LBB22_34 + 0x80, 0x3f, 0x30, //0x00005046 cmpb $48, (%rdi) + 0x0f, 0x85, 0x33, 0x00, 0x00, 0x00, //0x00005049 jne LBB22_5 + 0xba, 0x01, 0x00, 0x00, 0x00, //0x0000504f movl $1, %edx + 0x48, 0x83, 0xfe, 0x01, //0x00005054 cmpq $1, %rsi + 0x0f, 0x84, 0x20, 0x03, 0x00, 0x00, //0x00005058 je LBB22_52 + 0x8a, 0x47, 0x01, //0x0000505e movb $1(%rdi), %al + 0x04, 0xd2, //0x00005061 addb $-46, %al + 0x3c, 0x37, //0x00005063 cmpb $55, %al + 0x0f, 0x87, 0x13, 0x03, 0x00, 0x00, //0x00005065 ja LBB22_52 + 0x0f, 0xb6, 0xc0, //0x0000506b movzbl %al, %eax + 0x48, 0xb9, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, //0x0000506e movabsq $36028797027352577, %rcx + 0x48, 0x0f, 0xa3, 0xc1, //0x00005078 btq %rax, %rcx + 0x0f, 0x83, 0xfc, 0x02, 0x00, 0x00, //0x0000507c jae LBB22_52 + //0x00005082 LBB22_5 + 0x48, 0x83, 0xfe, 0x10, //0x00005082 cmpq $16, %rsi + 0x0f, 0x82, 0x20, 0x03, 0x00, 0x00, //0x00005086 jb LBB22_57 + 0x4c, 0x8d, 0x5e, 0xf0, //0x0000508c leaq $-16(%rsi), %r11 + 0x4c, 0x89, 0xd8, //0x00005090 movq %r11, %rax + 0x48, 0x83, 0xe0, 0xf0, //0x00005093 andq $-16, %rax + 0x4c, 0x8d, 0x54, 0x38, 0x10, //0x00005097 leaq $16(%rax,%rdi), %r10 + 0x41, 0x83, 0xe3, 0x0f, //0x0000509c andl $15, %r11d + 0x49, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x000050a0 movq $-1, %r9 + 0xc5, 0x79, 0x6f, 0x05, 0x11, 0xff, 0xff, 0xff, //0x000050a7 vmovdqa $-239(%rip), %xmm8 /* LCPI22_0+0(%rip) */ + 0xc5, 0x79, 0x6f, 0x0d, 0x19, 0xff, 0xff, 0xff, //0x000050af vmovdqa $-231(%rip), %xmm9 /* LCPI22_1+0(%rip) */ + 0xc5, 0x79, 0x6f, 0x15, 0x21, 0xff, 0xff, 0xff, //0x000050b7 vmovdqa $-223(%rip), %xmm10 /* LCPI22_2+0(%rip) */ + 0xc5, 0x79, 0x6f, 0x1d, 0x29, 0xff, 0xff, 0xff, //0x000050bf vmovdqa $-215(%rip), %xmm11 /* LCPI22_3+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x25, 0x31, 0xff, 0xff, 0xff, //0x000050c7 vmovdqa $-207(%rip), %xmm4 /* LCPI22_4+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x2d, 0x39, 0xff, 0xff, 0xff, //0x000050cf vmovdqa $-199(%rip), %xmm5 /* LCPI22_5+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x35, 0x41, 0xff, 0xff, 0xff, //0x000050d7 vmovdqa $-191(%rip), %xmm6 /* LCPI22_6+0(%rip) */ + 0x41, 0xbe, 0xff, 0xff, 0xff, 0xff, //0x000050df movl $4294967295, %r14d + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000050e5 movq $-1, %rax + 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000050ec movq $-1, %r8 + 0x49, 0x89, 0xff, //0x000050f3 movq %rdi, %r15 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000050f6 .p2align 4, 0x90 + //0x00005100 LBB22_7 + 0xc4, 0xc1, 0x7a, 0x6f, 0x3f, //0x00005100 vmovdqu (%r15), %xmm7 + 0xc4, 0xc1, 0x41, 0x64, 0xc0, //0x00005105 vpcmpgtb %xmm8, %xmm7, %xmm0 + 0xc5, 0xb1, 0x64, 0xcf, //0x0000510a vpcmpgtb %xmm7, %xmm9, %xmm1 + 0xc5, 0xf9, 0xdb, 0xc1, //0x0000510e vpand %xmm1, %xmm0, %xmm0 + 0xc5, 0xa9, 0x74, 0xcf, //0x00005112 vpcmpeqb %xmm7, %xmm10, %xmm1 + 0xc5, 0xa1, 0x74, 0xd7, //0x00005116 vpcmpeqb %xmm7, %xmm11, %xmm2 + 0xc5, 0xe9, 0xeb, 0xc9, //0x0000511a vpor %xmm1, %xmm2, %xmm1 + 0xc5, 0xc1, 0xeb, 0xd4, //0x0000511e vpor %xmm4, %xmm7, %xmm2 + 0xc5, 0xe9, 0x74, 0xd6, //0x00005122 vpcmpeqb %xmm6, %xmm2, %xmm2 + 0xc5, 0xc1, 0x74, 0xfd, //0x00005126 vpcmpeqb %xmm5, %xmm7, %xmm7 + 0xc5, 0xe9, 0xeb, 0xdf, //0x0000512a vpor %xmm7, %xmm2, %xmm3 + 0xc5, 0xf1, 0xeb, 0xc0, //0x0000512e vpor %xmm0, %xmm1, %xmm0 + 0xc5, 0xe1, 0xeb, 0xc0, //0x00005132 vpor %xmm0, %xmm3, %xmm0 + 0xc5, 0xf9, 0xd7, 0xd7, //0x00005136 vpmovmskb %xmm7, %edx + 0xc5, 0x79, 0xd7, 0xea, //0x0000513a vpmovmskb %xmm2, %r13d + 0xc5, 0x79, 0xd7, 0xe1, //0x0000513e vpmovmskb %xmm1, %r12d + 0xc5, 0xf9, 0xd7, 0xc8, //0x00005142 vpmovmskb %xmm0, %ecx + 0x4c, 0x31, 0xf1, //0x00005146 xorq %r14, %rcx + 0x48, 0x0f, 0xbc, 0xc9, //0x00005149 bsfq %rcx, %rcx + 0x83, 0xf9, 0x10, //0x0000514d cmpl $16, %ecx + 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x00005150 je LBB22_9 + 0xbb, 0xff, 0xff, 0xff, 0xff, //0x00005156 movl $-1, %ebx + 0xd3, 0xe3, //0x0000515b shll %cl, %ebx + 0xf7, 0xd3, //0x0000515d notl %ebx + 0x21, 0xda, //0x0000515f andl %ebx, %edx + 0x41, 0x21, 0xdd, //0x00005161 andl %ebx, %r13d + 0x44, 0x21, 0xe3, //0x00005164 andl %r12d, %ebx + 0x41, 0x89, 0xdc, //0x00005167 movl %ebx, %r12d + //0x0000516a LBB22_9 + 0x8d, 0x5a, 0xff, //0x0000516a leal $-1(%rdx), %ebx + 0x21, 0xd3, //0x0000516d andl %edx, %ebx + 0x0f, 0x85, 0xfd, 0x01, 0x00, 0x00, //0x0000516f jne LBB22_50 + 0x41, 0x8d, 0x5d, 0xff, //0x00005175 leal $-1(%r13), %ebx + 0x44, 0x21, 0xeb, //0x00005179 andl %r13d, %ebx + 0x0f, 0x85, 0xf0, 0x01, 0x00, 0x00, //0x0000517c jne LBB22_50 + 0x41, 0x8d, 0x5c, 0x24, 0xff, //0x00005182 leal $-1(%r12), %ebx + 0x44, 0x21, 0xe3, //0x00005187 andl %r12d, %ebx + 0x0f, 0x85, 0xe2, 0x01, 0x00, 0x00, //0x0000518a jne LBB22_50 + 0x85, 0xd2, //0x00005190 testl %edx, %edx + 0x0f, 0x84, 0x19, 0x00, 0x00, 0x00, //0x00005192 je LBB22_15 + 0x4c, 0x89, 0xfb, //0x00005198 movq %r15, %rbx + 0x48, 0x29, 0xfb, //0x0000519b subq %rdi, %rbx + 0x0f, 0xbc, 0xd2, //0x0000519e bsfl %edx, %edx + 0x48, 0x01, 0xda, //0x000051a1 addq %rbx, %rdx + 0x49, 0x83, 0xf8, 0xff, //0x000051a4 cmpq $-1, %r8 + 0x0f, 0x85, 0xcd, 0x01, 0x00, 0x00, //0x000051a8 jne LBB22_51 + 0x49, 0x89, 0xd0, //0x000051ae movq %rdx, %r8 + //0x000051b1 LBB22_15 + 0x45, 0x85, 0xed, //0x000051b1 testl %r13d, %r13d + 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x000051b4 je LBB22_18 + 0x4c, 0x89, 0xfb, //0x000051ba movq %r15, %rbx + 0x48, 0x29, 0xfb, //0x000051bd subq %rdi, %rbx + 0x41, 0x0f, 0xbc, 0xd5, //0x000051c0 bsfl %r13d, %edx + 0x48, 0x01, 0xda, //0x000051c4 addq %rbx, %rdx + 0x48, 0x83, 0xf8, 0xff, //0x000051c7 cmpq $-1, %rax + 0x0f, 0x85, 0xaa, 0x01, 0x00, 0x00, //0x000051cb jne LBB22_51 + 0x48, 0x89, 0xd0, //0x000051d1 movq %rdx, %rax + //0x000051d4 LBB22_18 + 0x45, 0x85, 0xe4, //0x000051d4 testl %r12d, %r12d + 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x000051d7 je LBB22_21 + 0x4c, 0x89, 0xfb, //0x000051dd movq %r15, %rbx + 0x48, 0x29, 0xfb, //0x000051e0 subq %rdi, %rbx + 0x41, 0x0f, 0xbc, 0xd4, //0x000051e3 bsfl %r12d, %edx + 0x48, 0x01, 0xda, //0x000051e7 addq %rbx, %rdx + 0x49, 0x83, 0xf9, 0xff, //0x000051ea cmpq $-1, %r9 + 0x0f, 0x85, 0x87, 0x01, 0x00, 0x00, //0x000051ee jne LBB22_51 + 0x49, 0x89, 0xd1, //0x000051f4 movq %rdx, %r9 + //0x000051f7 LBB22_21 + 0x83, 0xf9, 0x10, //0x000051f7 cmpl $16, %ecx + 0x0f, 0x85, 0xb6, 0x00, 0x00, 0x00, //0x000051fa jne LBB22_35 + 0x49, 0x83, 0xc7, 0x10, //0x00005200 addq $16, %r15 + 0x48, 0x83, 0xc6, 0xf0, //0x00005204 addq $-16, %rsi + 0x48, 0x83, 0xfe, 0x0f, //0x00005208 cmpq $15, %rsi + 0x0f, 0x87, 0xee, 0xfe, 0xff, 0xff, //0x0000520c ja LBB22_7 + 0x4d, 0x85, 0xdb, //0x00005212 testq %r11, %r11 + 0x0f, 0x84, 0xa1, 0x00, 0x00, 0x00, //0x00005215 je LBB22_36 + //0x0000521b LBB22_24 + 0x4b, 0x8d, 0x0c, 0x1a, //0x0000521b leaq (%r10,%r11), %rcx + 0x48, 0x8d, 0x35, 0xa6, 0x01, 0x00, 0x00, //0x0000521f leaq $422(%rip), %rsi /* LJTI22_0+0(%rip) */ + 0xe9, 0x11, 0x00, 0x00, 0x00, //0x00005226 jmp LBB22_26 + 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000522b .p2align 4, 0x90 + //0x00005230 LBB22_25 + 0x49, 0x89, 0xda, //0x00005230 movq %rbx, %r10 + 0x49, 0xff, 0xcb, //0x00005233 decq %r11 + 0x0f, 0x84, 0x50, 0x01, 0x00, 0x00, //0x00005236 je LBB22_54 + //0x0000523c LBB22_26 + 0x41, 0x0f, 0xbe, 0x12, //0x0000523c movsbl (%r10), %edx + 0x83, 0xc2, 0xd5, //0x00005240 addl $-43, %edx + 0x83, 0xfa, 0x3a, //0x00005243 cmpl $58, %edx + 0x0f, 0x87, 0x70, 0x00, 0x00, 0x00, //0x00005246 ja LBB22_36 + 0x49, 0x8d, 0x5a, 0x01, //0x0000524c leaq $1(%r10), %rbx + 0x48, 0x63, 0x14, 0x96, //0x00005250 movslq (%rsi,%rdx,4), %rdx + 0x48, 0x01, 0xf2, //0x00005254 addq %rsi, %rdx + 0xff, 0xe2, //0x00005257 jmpq *%rdx + //0x00005259 LBB22_28 + 0x48, 0x89, 0xda, //0x00005259 movq %rbx, %rdx + 0x48, 0x29, 0xfa, //0x0000525c subq %rdi, %rdx + 0x49, 0x83, 0xf9, 0xff, //0x0000525f cmpq $-1, %r9 + 0x0f, 0x85, 0x3b, 0x01, 0x00, 0x00, //0x00005263 jne LBB22_58 + 0x48, 0xff, 0xca, //0x00005269 decq %rdx + 0x49, 0x89, 0xd1, //0x0000526c movq %rdx, %r9 + 0xe9, 0xbc, 0xff, 0xff, 0xff, //0x0000526f jmp LBB22_25 + //0x00005274 LBB22_30 + 0x48, 0x89, 0xda, //0x00005274 movq %rbx, %rdx + 0x48, 0x29, 0xfa, //0x00005277 subq %rdi, %rdx + 0x48, 0x83, 0xf8, 0xff, //0x0000527a cmpq $-1, %rax + 0x0f, 0x85, 0x20, 0x01, 0x00, 0x00, //0x0000527e jne LBB22_58 + 0x48, 0xff, 0xca, //0x00005284 decq %rdx + 0x48, 0x89, 0xd0, //0x00005287 movq %rdx, %rax + 0xe9, 0xa1, 0xff, 0xff, 0xff, //0x0000528a jmp LBB22_25 + //0x0000528f LBB22_32 + 0x48, 0x89, 0xda, //0x0000528f movq %rbx, %rdx + 0x48, 0x29, 0xfa, //0x00005292 subq %rdi, %rdx + 0x49, 0x83, 0xf8, 0xff, //0x00005295 cmpq $-1, %r8 + 0x0f, 0x85, 0x05, 0x01, 0x00, 0x00, //0x00005299 jne LBB22_58 + 0x48, 0xff, 0xca, //0x0000529f decq %rdx + 0x49, 0x89, 0xd0, //0x000052a2 movq %rdx, %r8 + 0xe9, 0x86, 0xff, 0xff, 0xff, //0x000052a5 jmp LBB22_25 + //0x000052aa LBB22_34 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000052aa movq $-1, %rax + 0xe9, 0xcb, 0x00, 0x00, 0x00, //0x000052b1 jmp LBB22_53 + //0x000052b6 LBB22_35 + 0x49, 0x01, 0xcf, //0x000052b6 addq %rcx, %r15 + 0x4d, 0x89, 0xfa, //0x000052b9 movq %r15, %r10 + //0x000052bc LBB22_36 + 0x48, 0xc7, 0xc2, 0xff, 0xff, 0xff, 0xff, //0x000052bc movq $-1, %rdx + 0x48, 0x85, 0xc0, //0x000052c3 testq %rax, %rax + 0x0f, 0x84, 0xb2, 0x00, 0x00, 0x00, //0x000052c6 je LBB22_52 + //0x000052cc LBB22_37 + 0x4d, 0x85, 0xc9, //0x000052cc testq %r9, %r9 + 0x0f, 0x84, 0xa9, 0x00, 0x00, 0x00, //0x000052cf je LBB22_52 + 0x4d, 0x85, 0xc0, //0x000052d5 testq %r8, %r8 + 0x0f, 0x84, 0xa0, 0x00, 0x00, 0x00, //0x000052d8 je LBB22_52 + 0x49, 0x29, 0xfa, //0x000052de subq %rdi, %r10 + 0x49, 0x8d, 0x4a, 0xff, //0x000052e1 leaq $-1(%r10), %rcx + 0x48, 0x39, 0xc8, //0x000052e5 cmpq %rcx, %rax + 0x0f, 0x84, 0x36, 0x00, 0x00, 0x00, //0x000052e8 je LBB22_45 + 0x49, 0x39, 0xc8, //0x000052ee cmpq %rcx, %r8 + 0x0f, 0x84, 0x2d, 0x00, 0x00, 0x00, //0x000052f1 je LBB22_45 + 0x49, 0x39, 0xc9, //0x000052f7 cmpq %rcx, %r9 + 0x0f, 0x84, 0x24, 0x00, 0x00, 0x00, //0x000052fa je LBB22_45 + 0x4d, 0x85, 0xc9, //0x00005300 testq %r9, %r9 + 0x0f, 0x8e, 0x29, 0x00, 0x00, 0x00, //0x00005303 jle LBB22_46 + 0x49, 0x8d, 0x49, 0xff, //0x00005309 leaq $-1(%r9), %rcx + 0x48, 0x39, 0xc8, //0x0000530d cmpq %rcx, %rax + 0x0f, 0x84, 0x1c, 0x00, 0x00, 0x00, //0x00005310 je LBB22_46 + 0x49, 0xf7, 0xd1, //0x00005316 notq %r9 + 0x4c, 0x89, 0xca, //0x00005319 movq %r9, %rdx + 0x4c, 0x89, 0xc8, //0x0000531c movq %r9, %rax + 0xe9, 0x5d, 0x00, 0x00, 0x00, //0x0000531f jmp LBB22_53 + //0x00005324 LBB22_45 + 0x49, 0xf7, 0xda, //0x00005324 negq %r10 + 0x4c, 0x89, 0xd2, //0x00005327 movq %r10, %rdx + 0x4c, 0x89, 0xd0, //0x0000532a movq %r10, %rax + 0xe9, 0x4f, 0x00, 0x00, 0x00, //0x0000532d jmp LBB22_53 + //0x00005332 LBB22_46 + 0x4c, 0x89, 0xc1, //0x00005332 movq %r8, %rcx + 0x48, 0x09, 0xc1, //0x00005335 orq %rax, %rcx + 0x49, 0x39, 0xc0, //0x00005338 cmpq %rax, %r8 + 0x0f, 0x8c, 0x17, 0x00, 0x00, 0x00, //0x0000533b jl LBB22_49 + 0x48, 0x85, 0xc9, //0x00005341 testq %rcx, %rcx + 0x0f, 0x88, 0x0e, 0x00, 0x00, 0x00, //0x00005344 js LBB22_49 + 0x49, 0xf7, 0xd0, //0x0000534a notq %r8 + 0x4c, 0x89, 0xc2, //0x0000534d movq %r8, %rdx + 0x4c, 0x89, 0xc0, //0x00005350 movq %r8, %rax + 0xe9, 0x29, 0x00, 0x00, 0x00, //0x00005353 jmp LBB22_53 + //0x00005358 LBB22_49 + 0x48, 0x85, 0xc9, //0x00005358 testq %rcx, %rcx + 0x48, 0x8d, 0x48, 0xff, //0x0000535b leaq $-1(%rax), %rcx + 0x48, 0xf7, 0xd0, //0x0000535f notq %rax + 0x49, 0x0f, 0x48, 0xc2, //0x00005362 cmovsq %r10, %rax + 0x49, 0x39, 0xc8, //0x00005366 cmpq %rcx, %r8 + 0x49, 0x0f, 0x45, 0xc2, //0x00005369 cmovneq %r10, %rax + 0xe9, 0x0f, 0x00, 0x00, 0x00, //0x0000536d jmp LBB22_53 + //0x00005372 LBB22_50 + 0x49, 0x29, 0xff, //0x00005372 subq %rdi, %r15 + 0x0f, 0xbc, 0xd3, //0x00005375 bsfl %ebx, %edx + 0x4c, 0x01, 0xfa, //0x00005378 addq %r15, %rdx + //0x0000537b LBB22_51 + 0x48, 0xf7, 0xd2, //0x0000537b notq %rdx + //0x0000537e LBB22_52 + 0x48, 0x89, 0xd0, //0x0000537e movq %rdx, %rax + //0x00005381 LBB22_53 + 0x5b, //0x00005381 popq %rbx + 0x41, 0x5c, //0x00005382 popq %r12 + 0x41, 0x5d, //0x00005384 popq %r13 + 0x41, 0x5e, //0x00005386 popq %r14 + 0x41, 0x5f, //0x00005388 popq %r15 + 0x5d, //0x0000538a popq %rbp + 0xc3, //0x0000538b retq + //0x0000538c LBB22_54 + 0x49, 0x89, 0xca, //0x0000538c movq %rcx, %r10 + 0x48, 0xc7, 0xc2, 0xff, 0xff, 0xff, 0xff, //0x0000538f movq $-1, %rdx + 0x48, 0x85, 0xc0, //0x00005396 testq %rax, %rax + 0x0f, 0x85, 0x2d, 0xff, 0xff, 0xff, //0x00005399 jne LBB22_37 + 0xe9, 0xda, 0xff, 0xff, 0xff, //0x0000539f jmp LBB22_52 + //0x000053a4 LBB22_58 + 0x48, 0xf7, 0xda, //0x000053a4 negq %rdx + 0xe9, 0xd2, 0xff, 0xff, 0xff, //0x000053a7 jmp LBB22_52 + //0x000053ac LBB22_57 + 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000053ac movq $-1, %r8 + 0x49, 0x89, 0xfa, //0x000053b3 movq %rdi, %r10 + 0x49, 0x89, 0xf3, //0x000053b6 movq %rsi, %r11 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000053b9 movq $-1, %rax + 0x49, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x000053c0 movq $-1, %r9 + 0xe9, 0x4f, 0xfe, 0xff, 0xff, //0x000053c7 jmp LBB22_24 + //0x000053cc .p2align 2, 0x90 + // // .set L22_0_set_28, LBB22_28-LJTI22_0 + // // .set L22_0_set_36, LBB22_36-LJTI22_0 + // // .set L22_0_set_32, LBB22_32-LJTI22_0 + // // .set L22_0_set_25, LBB22_25-LJTI22_0 + // // .set L22_0_set_30, LBB22_30-LJTI22_0 + //0x000053cc LJTI22_0 + 0x8d, 0xfe, 0xff, 0xff, //0x000053cc .long L22_0_set_28 + 0xf0, 0xfe, 0xff, 0xff, //0x000053d0 .long L22_0_set_36 + 0x8d, 0xfe, 0xff, 0xff, //0x000053d4 .long L22_0_set_28 + 0xc3, 0xfe, 0xff, 0xff, //0x000053d8 .long L22_0_set_32 + 0xf0, 0xfe, 0xff, 0xff, //0x000053dc .long L22_0_set_36 + 0x64, 0xfe, 0xff, 0xff, //0x000053e0 .long L22_0_set_25 + 0x64, 0xfe, 0xff, 0xff, //0x000053e4 .long L22_0_set_25 + 0x64, 0xfe, 0xff, 0xff, //0x000053e8 .long L22_0_set_25 + 0x64, 0xfe, 0xff, 0xff, //0x000053ec .long L22_0_set_25 + 0x64, 0xfe, 0xff, 0xff, //0x000053f0 .long L22_0_set_25 + 0x64, 0xfe, 0xff, 0xff, //0x000053f4 .long L22_0_set_25 + 0x64, 0xfe, 0xff, 0xff, //0x000053f8 .long L22_0_set_25 + 0x64, 0xfe, 0xff, 0xff, //0x000053fc .long L22_0_set_25 + 0x64, 0xfe, 0xff, 0xff, //0x00005400 .long L22_0_set_25 + 0x64, 0xfe, 0xff, 0xff, //0x00005404 .long L22_0_set_25 + 0xf0, 0xfe, 0xff, 0xff, //0x00005408 .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x0000540c .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x00005410 .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x00005414 .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x00005418 .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x0000541c .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x00005420 .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x00005424 .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x00005428 .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x0000542c .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x00005430 .long L22_0_set_36 + 0xa8, 0xfe, 0xff, 0xff, //0x00005434 .long L22_0_set_30 + 0xf0, 0xfe, 0xff, 0xff, //0x00005438 .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x0000543c .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x00005440 .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x00005444 .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x00005448 .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x0000544c .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x00005450 .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x00005454 .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x00005458 .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x0000545c .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x00005460 .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x00005464 .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x00005468 .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x0000546c .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x00005470 .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x00005474 .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x00005478 .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x0000547c .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x00005480 .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x00005484 .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x00005488 .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x0000548c .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x00005490 .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x00005494 .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x00005498 .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x0000549c .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x000054a0 .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x000054a4 .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x000054a8 .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x000054ac .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x000054b0 .long L22_0_set_36 + 0xa8, 0xfe, 0xff, 0xff, //0x000054b4 .long L22_0_set_30 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000054b8 .p2align 4, 0x90 + //0x000054c0 _skip_positive + 0x55, //0x000054c0 pushq %rbp + 0x48, 0x89, 0xe5, //0x000054c1 movq %rsp, %rbp + 0x41, 0x57, //0x000054c4 pushq %r15 + 0x41, 0x56, //0x000054c6 pushq %r14 + 0x53, //0x000054c8 pushq %rbx + 0x50, //0x000054c9 pushq %rax + 0x49, 0x89, 0xf6, //0x000054ca movq %rsi, %r14 + 0x4c, 0x8b, 0x3e, //0x000054cd movq (%rsi), %r15 + 0x49, 0x8d, 0x5f, 0xff, //0x000054d0 leaq $-1(%r15), %rbx + 0x48, 0x8b, 0x07, //0x000054d4 movq (%rdi), %rax + 0x48, 0x01, 0xd8, //0x000054d7 addq %rbx, %rax + 0x48, 0x8b, 0x77, 0x08, //0x000054da movq $8(%rdi), %rsi + 0x48, 0x29, 0xde, //0x000054de subq %rbx, %rsi + 0x48, 0x89, 0xc7, //0x000054e1 movq %rax, %rdi + 0xe8, 0x47, 0xfb, 0xff, 0xff, //0x000054e4 callq _do_skip_number + 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x000054e9 movq $-2, %rcx + 0x48, 0xc7, 0xc2, 0xfe, 0xff, 0xff, 0xff, //0x000054f0 movq $-2, %rdx + 0x48, 0x29, 0xc2, //0x000054f7 subq %rax, %rdx + 0x48, 0x85, 0xc0, //0x000054fa testq %rax, %rax + 0x48, 0x8d, 0x40, 0xff, //0x000054fd leaq $-1(%rax), %rax + 0x48, 0x0f, 0x48, 0xc2, //0x00005501 cmovsq %rdx, %rax + 0x48, 0x0f, 0x49, 0xcb, //0x00005505 cmovnsq %rbx, %rcx + 0x4c, 0x01, 0xf8, //0x00005509 addq %r15, %rax + 0x49, 0x89, 0x06, //0x0000550c movq %rax, (%r14) + 0x48, 0x89, 0xc8, //0x0000550f movq %rcx, %rax + 0x48, 0x83, 0xc4, 0x08, //0x00005512 addq $8, %rsp + 0x5b, //0x00005516 popq %rbx + 0x41, 0x5e, //0x00005517 popq %r14 + 0x41, 0x5f, //0x00005519 popq %r15 + 0x5d, //0x0000551b popq %rbp + 0xc3, //0x0000551c retq + 0x90, 0x90, 0x90, //0x0000551d .p2align 4, 0x90 + //0x00005520 _skip_number + 0x55, //0x00005520 pushq %rbp + 0x48, 0x89, 0xe5, //0x00005521 movq %rsp, %rbp + 0x41, 0x57, //0x00005524 pushq %r15 + 0x41, 0x56, //0x00005526 pushq %r14 + 0x41, 0x55, //0x00005528 pushq %r13 + 0x41, 0x54, //0x0000552a pushq %r12 + 0x53, //0x0000552c pushq %rbx + 0x50, //0x0000552d pushq %rax + 0x49, 0x89, 0xf6, //0x0000552e movq %rsi, %r14 + 0x4c, 0x8b, 0x27, //0x00005531 movq (%rdi), %r12 + 0x48, 0x8b, 0x77, 0x08, //0x00005534 movq $8(%rdi), %rsi + 0x4d, 0x8b, 0x2e, //0x00005538 movq (%r14), %r13 + 0x4c, 0x29, 0xee, //0x0000553b subq %r13, %rsi + 0x31, 0xc0, //0x0000553e xorl %eax, %eax + 0x43, 0x80, 0x3c, 0x2c, 0x2d, //0x00005540 cmpb $45, (%r12,%r13) + 0x4b, 0x8d, 0x1c, 0x2c, //0x00005545 leaq (%r12,%r13), %rbx + 0x0f, 0x94, 0xc0, //0x00005549 sete %al + 0x48, 0x01, 0xc3, //0x0000554c addq %rax, %rbx + 0x48, 0x29, 0xc6, //0x0000554f subq %rax, %rsi + 0x0f, 0x84, 0x42, 0x00, 0x00, 0x00, //0x00005552 je LBB24_1 + 0x8a, 0x03, //0x00005558 movb (%rbx), %al + 0x04, 0xd0, //0x0000555a addb $-48, %al + 0x49, 0xc7, 0xc7, 0xfe, 0xff, 0xff, 0xff, //0x0000555c movq $-2, %r15 + 0x3c, 0x09, //0x00005563 cmpb $9, %al + 0x0f, 0x87, 0x17, 0x00, 0x00, 0x00, //0x00005565 ja LBB24_6 + 0x48, 0x89, 0xdf, //0x0000556b movq %rbx, %rdi + 0xe8, 0xbd, 0xfa, 0xff, 0xff, //0x0000556e callq _do_skip_number + 0x48, 0x85, 0xc0, //0x00005573 testq %rax, %rax + 0x0f, 0x88, 0x2a, 0x00, 0x00, 0x00, //0x00005576 js LBB24_4 + 0x48, 0x01, 0xc3, //0x0000557c addq %rax, %rbx + 0x4d, 0x89, 0xef, //0x0000557f movq %r13, %r15 + //0x00005582 LBB24_6 + 0x4c, 0x29, 0xe3, //0x00005582 subq %r12, %rbx + 0x49, 0x89, 0x1e, //0x00005585 movq %rbx, (%r14) + 0x4c, 0x89, 0xf8, //0x00005588 movq %r15, %rax + 0x48, 0x83, 0xc4, 0x08, //0x0000558b addq $8, %rsp + 0x5b, //0x0000558f popq %rbx + 0x41, 0x5c, //0x00005590 popq %r12 + 0x41, 0x5d, //0x00005592 popq %r13 + 0x41, 0x5e, //0x00005594 popq %r14 + 0x41, 0x5f, //0x00005596 popq %r15 + 0x5d, //0x00005598 popq %rbp + 0xc3, //0x00005599 retq + //0x0000559a LBB24_1 + 0x49, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, //0x0000559a movq $-1, %r15 + 0xe9, 0xdc, 0xff, 0xff, 0xff, //0x000055a1 jmp LBB24_6 + //0x000055a6 LBB24_4 + 0x48, 0xf7, 0xd0, //0x000055a6 notq %rax + 0x48, 0x01, 0xc3, //0x000055a9 addq %rax, %rbx + 0xe9, 0xd1, 0xff, 0xff, 0xff, //0x000055ac jmp LBB24_6 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000055b1 .p2align 4, 0x90 + //0x000055c0 _skip_one + 0x55, //0x000055c0 pushq %rbp + 0x48, 0x89, 0xe5, //0x000055c1 movq %rsp, %rbp + 0x48, 0x89, 0xd0, //0x000055c4 movq %rdx, %rax + 0x48, 0x89, 0xf2, //0x000055c7 movq %rsi, %rdx + 0x48, 0x89, 0xfe, //0x000055ca movq %rdi, %rsi + 0xbf, 0x01, 0x00, 0x00, 0x00, //0x000055cd movl $1, %edi + 0xc4, 0xe1, 0xf9, 0x6e, 0xc7, //0x000055d2 vmovq %rdi, %xmm0 + 0xc5, 0xfa, 0x7f, 0x00, //0x000055d7 vmovdqu %xmm0, (%rax) + 0x48, 0x89, 0xc7, //0x000055db movq %rax, %rdi + 0x5d, //0x000055de popq %rbp + 0xe9, 0x1c, 0xf0, 0xff, 0xff, //0x000055df jmp _fsm_exec + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000055e4 .p2align 4, 0x90 + //0x000055f0 _validate_one + 0x55, //0x000055f0 pushq %rbp + 0x48, 0x89, 0xe5, //0x000055f1 movq %rsp, %rbp + 0x48, 0x89, 0xd0, //0x000055f4 movq %rdx, %rax + 0x48, 0x89, 0xf2, //0x000055f7 movq %rsi, %rdx + 0x48, 0x89, 0xfe, //0x000055fa movq %rdi, %rsi + 0xb9, 0x01, 0x00, 0x00, 0x00, //0x000055fd movl $1, %ecx + 0xc4, 0xe1, 0xf9, 0x6e, 0xc1, //0x00005602 vmovq %rcx, %xmm0 + 0xc5, 0xfa, 0x7f, 0x00, //0x00005607 vmovdqu %xmm0, (%rax) + 0xb9, 0x20, 0x00, 0x00, 0x00, //0x0000560b movl $32, %ecx + 0x48, 0x89, 0xc7, //0x00005610 movq %rax, %rdi + 0x5d, //0x00005613 popq %rbp + 0xe9, 0xe7, 0xef, 0xff, 0xff, //0x00005614 jmp _fsm_exec + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005619 .p2align 4, 0x00 + //0x00005620 LCPI27_0 + 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, //0x00005620 QUAD $0x2c2c2c2c2c2c2c2c; QUAD $0x2c2c2c2c2c2c2c2c // .space 16, ',,,,,,,,,,,,,,,,' + //0x00005630 LCPI27_1 + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x00005630 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' + //0x00005640 LCPI27_2 + 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, //0x00005640 QUAD $0x7d7d7d7d7d7d7d7d; QUAD $0x7d7d7d7d7d7d7d7d // .space 16, '}}}}}}}}}}}}}}}}' + //0x00005650 LCPI27_3 + 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, //0x00005650 QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' + //0x00005660 LCPI27_4 + 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x00005660 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + //0x00005670 LCPI27_5 + 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, //0x00005670 QUAD $0x7b7b7b7b7b7b7b7b; QUAD $0x7b7b7b7b7b7b7b7b // .space 16, '{{{{{{{{{{{{{{{{' + //0x00005680 LCPI27_6 + 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, //0x00005680 QUAD $0x5b5b5b5b5b5b5b5b; QUAD $0x5b5b5b5b5b5b5b5b // .space 16, '[[[[[[[[[[[[[[[[' + //0x00005690 LCPI27_7 + 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, //0x00005690 QUAD $0x5d5d5d5d5d5d5d5d; QUAD $0x5d5d5d5d5d5d5d5d // .space 16, ']]]]]]]]]]]]]]]]' + //0x000056a0 .p2align 4, 0x90 + //0x000056a0 _skip_one_fast + 0x55, //0x000056a0 pushq %rbp + 0x48, 0x89, 0xe5, //0x000056a1 movq %rsp, %rbp + 0x41, 0x57, //0x000056a4 pushq %r15 + 0x41, 0x56, //0x000056a6 pushq %r14 + 0x41, 0x55, //0x000056a8 pushq %r13 + 0x41, 0x54, //0x000056aa pushq %r12 + 0x53, //0x000056ac pushq %rbx + 0x48, 0x81, 0xec, 0x80, 0x00, 0x00, 0x00, //0x000056ad subq $128, %rsp + 0x4c, 0x8b, 0x37, //0x000056b4 movq (%rdi), %r14 + 0x4c, 0x8b, 0x47, 0x08, //0x000056b7 movq $8(%rdi), %r8 + 0x48, 0x8b, 0x16, //0x000056bb movq (%rsi), %rdx + 0x48, 0x89, 0xd0, //0x000056be movq %rdx, %rax + 0x4c, 0x29, 0xc0, //0x000056c1 subq %r8, %rax + 0x0f, 0x83, 0x2a, 0x00, 0x00, 0x00, //0x000056c4 jae LBB27_5 + 0x41, 0x8a, 0x0c, 0x16, //0x000056ca movb (%r14,%rdx), %cl + 0x80, 0xf9, 0x0d, //0x000056ce cmpb $13, %cl + 0x0f, 0x84, 0x1d, 0x00, 0x00, 0x00, //0x000056d1 je LBB27_5 + 0x80, 0xf9, 0x20, //0x000056d7 cmpb $32, %cl + 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x000056da je LBB27_5 + 0x80, 0xc1, 0xf7, //0x000056e0 addb $-9, %cl + 0x80, 0xf9, 0x01, //0x000056e3 cmpb $1, %cl + 0x0f, 0x86, 0x08, 0x00, 0x00, 0x00, //0x000056e6 jbe LBB27_5 + 0x49, 0x89, 0xd3, //0x000056ec movq %rdx, %r11 + 0xe9, 0x2b, 0x01, 0x00, 0x00, //0x000056ef jmp LBB27_27 + //0x000056f4 LBB27_5 + 0x4c, 0x8d, 0x5a, 0x01, //0x000056f4 leaq $1(%rdx), %r11 + 0x4d, 0x39, 0xc3, //0x000056f8 cmpq %r8, %r11 + 0x0f, 0x83, 0x22, 0x00, 0x00, 0x00, //0x000056fb jae LBB27_9 + 0x43, 0x8a, 0x0c, 0x1e, //0x00005701 movb (%r14,%r11), %cl + 0x80, 0xf9, 0x0d, //0x00005705 cmpb $13, %cl + 0x0f, 0x84, 0x15, 0x00, 0x00, 0x00, //0x00005708 je LBB27_9 + 0x80, 0xf9, 0x20, //0x0000570e cmpb $32, %cl + 0x0f, 0x84, 0x0c, 0x00, 0x00, 0x00, //0x00005711 je LBB27_9 + 0x80, 0xc1, 0xf7, //0x00005717 addb $-9, %cl + 0x80, 0xf9, 0x01, //0x0000571a cmpb $1, %cl + 0x0f, 0x87, 0xfc, 0x00, 0x00, 0x00, //0x0000571d ja LBB27_27 + //0x00005723 LBB27_9 + 0x4c, 0x8d, 0x5a, 0x02, //0x00005723 leaq $2(%rdx), %r11 + 0x4d, 0x39, 0xc3, //0x00005727 cmpq %r8, %r11 + 0x0f, 0x83, 0x22, 0x00, 0x00, 0x00, //0x0000572a jae LBB27_13 + 0x43, 0x8a, 0x0c, 0x1e, //0x00005730 movb (%r14,%r11), %cl + 0x80, 0xf9, 0x0d, //0x00005734 cmpb $13, %cl + 0x0f, 0x84, 0x15, 0x00, 0x00, 0x00, //0x00005737 je LBB27_13 + 0x80, 0xf9, 0x20, //0x0000573d cmpb $32, %cl + 0x0f, 0x84, 0x0c, 0x00, 0x00, 0x00, //0x00005740 je LBB27_13 + 0x80, 0xc1, 0xf7, //0x00005746 addb $-9, %cl + 0x80, 0xf9, 0x01, //0x00005749 cmpb $1, %cl + 0x0f, 0x87, 0xcd, 0x00, 0x00, 0x00, //0x0000574c ja LBB27_27 + //0x00005752 LBB27_13 + 0x4c, 0x8d, 0x5a, 0x03, //0x00005752 leaq $3(%rdx), %r11 + 0x4d, 0x39, 0xc3, //0x00005756 cmpq %r8, %r11 + 0x0f, 0x83, 0x22, 0x00, 0x00, 0x00, //0x00005759 jae LBB27_17 + 0x43, 0x8a, 0x0c, 0x1e, //0x0000575f movb (%r14,%r11), %cl + 0x80, 0xf9, 0x0d, //0x00005763 cmpb $13, %cl + 0x0f, 0x84, 0x15, 0x00, 0x00, 0x00, //0x00005766 je LBB27_17 + 0x80, 0xf9, 0x20, //0x0000576c cmpb $32, %cl + 0x0f, 0x84, 0x0c, 0x00, 0x00, 0x00, //0x0000576f je LBB27_17 + 0x80, 0xc1, 0xf7, //0x00005775 addb $-9, %cl + 0x80, 0xf9, 0x01, //0x00005778 cmpb $1, %cl + 0x0f, 0x87, 0x9e, 0x00, 0x00, 0x00, //0x0000577b ja LBB27_27 + //0x00005781 LBB27_17 + 0x48, 0x8d, 0x4a, 0x04, //0x00005781 leaq $4(%rdx), %rcx + 0x49, 0x39, 0xc8, //0x00005785 cmpq %rcx, %r8 + 0x0f, 0x86, 0x4b, 0x00, 0x00, 0x00, //0x00005788 jbe LBB27_23 + 0x49, 0x39, 0xc8, //0x0000578e cmpq %rcx, %r8 + 0x0f, 0x84, 0x51, 0x00, 0x00, 0x00, //0x00005791 je LBB27_24 + 0x4b, 0x8d, 0x0c, 0x06, //0x00005797 leaq (%r14,%r8), %rcx + 0x48, 0x83, 0xc0, 0x04, //0x0000579b addq $4, %rax + 0x4e, 0x8d, 0x5c, 0x32, 0x05, //0x0000579f leaq $5(%rdx,%r14), %r11 + 0x48, 0xba, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x000057a4 movabsq $4294977024, %rdx + 0x90, 0x90, //0x000057ae .p2align 4, 0x90 + //0x000057b0 LBB27_20 + 0x41, 0x0f, 0xbe, 0x5b, 0xff, //0x000057b0 movsbl $-1(%r11), %ebx + 0x83, 0xfb, 0x20, //0x000057b5 cmpl $32, %ebx + 0x0f, 0x87, 0x48, 0x00, 0x00, 0x00, //0x000057b8 ja LBB27_26 + 0x48, 0x0f, 0xa3, 0xda, //0x000057be btq %rbx, %rdx + 0x0f, 0x83, 0x3e, 0x00, 0x00, 0x00, //0x000057c2 jae LBB27_26 + 0x49, 0xff, 0xc3, //0x000057c8 incq %r11 + 0x48, 0xff, 0xc0, //0x000057cb incq %rax + 0x0f, 0x85, 0xdc, 0xff, 0xff, 0xff, //0x000057ce jne LBB27_20 + 0xe9, 0x12, 0x00, 0x00, 0x00, //0x000057d4 jmp LBB27_25 + //0x000057d9 LBB27_23 + 0x48, 0x89, 0x0e, //0x000057d9 movq %rcx, (%rsi) + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000057dc movq $-1, %rax + 0xe9, 0x46, 0x01, 0x00, 0x00, //0x000057e3 jmp LBB27_45 + //0x000057e8 LBB27_24 + 0x4c, 0x01, 0xf1, //0x000057e8 addq %r14, %rcx + //0x000057eb LBB27_25 + 0x4c, 0x29, 0xf1, //0x000057eb subq %r14, %rcx + 0x49, 0x89, 0xcb, //0x000057ee movq %rcx, %r11 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000057f1 movq $-1, %rax + 0x4d, 0x39, 0xc3, //0x000057f8 cmpq %r8, %r11 + 0x0f, 0x82, 0x1e, 0x00, 0x00, 0x00, //0x000057fb jb LBB27_27 + 0xe9, 0x28, 0x01, 0x00, 0x00, //0x00005801 jmp LBB27_45 + //0x00005806 LBB27_26 + 0x4c, 0x89, 0xf0, //0x00005806 movq %r14, %rax + 0x48, 0xf7, 0xd0, //0x00005809 notq %rax + 0x49, 0x01, 0xc3, //0x0000580c addq %rax, %r11 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x0000580f movq $-1, %rax + 0x4d, 0x39, 0xc3, //0x00005816 cmpq %r8, %r11 + 0x0f, 0x83, 0x0f, 0x01, 0x00, 0x00, //0x00005819 jae LBB27_45 + //0x0000581f LBB27_27 + 0x49, 0x8d, 0x5b, 0x01, //0x0000581f leaq $1(%r11), %rbx + 0x48, 0x89, 0x1e, //0x00005823 movq %rbx, (%rsi) + 0x43, 0x0f, 0xbe, 0x0c, 0x1e, //0x00005826 movsbl (%r14,%r11), %ecx + 0x83, 0xf9, 0x7b, //0x0000582b cmpl $123, %ecx + 0x0f, 0x87, 0x1f, 0x01, 0x00, 0x00, //0x0000582e ja LBB27_47 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00005834 movq $-1, %rax + 0x48, 0x8d, 0x15, 0x26, 0x0a, 0x00, 0x00, //0x0000583b leaq $2598(%rip), %rdx /* LJTI27_0+0(%rip) */ + 0x48, 0x63, 0x0c, 0x8a, //0x00005842 movslq (%rdx,%rcx,4), %rcx + 0x48, 0x01, 0xd1, //0x00005846 addq %rdx, %rcx + 0xff, 0xe1, //0x00005849 jmpq *%rcx + //0x0000584b LBB27_29 + 0x48, 0x8b, 0x4f, 0x08, //0x0000584b movq $8(%rdi), %rcx + 0x48, 0x89, 0xc8, //0x0000584f movq %rcx, %rax + 0x48, 0x29, 0xd8, //0x00005852 subq %rbx, %rax + 0x4c, 0x01, 0xf3, //0x00005855 addq %r14, %rbx + 0x48, 0x83, 0xf8, 0x10, //0x00005858 cmpq $16, %rax + 0x0f, 0x82, 0x77, 0x00, 0x00, 0x00, //0x0000585c jb LBB27_34 + 0x4c, 0x29, 0xd9, //0x00005862 subq %r11, %rcx + 0x48, 0x83, 0xc1, 0xef, //0x00005865 addq $-17, %rcx + 0x48, 0x89, 0xca, //0x00005869 movq %rcx, %rdx + 0x48, 0x83, 0xe2, 0xf0, //0x0000586c andq $-16, %rdx + 0x4c, 0x01, 0xda, //0x00005870 addq %r11, %rdx + 0x49, 0x8d, 0x54, 0x16, 0x11, //0x00005873 leaq $17(%r14,%rdx), %rdx + 0x83, 0xe1, 0x0f, //0x00005878 andl $15, %ecx + 0xc5, 0xf9, 0x6f, 0x05, 0x9d, 0xfd, 0xff, 0xff, //0x0000587b vmovdqa $-611(%rip), %xmm0 /* LCPI27_0+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x0d, 0xa5, 0xfd, 0xff, 0xff, //0x00005883 vmovdqa $-603(%rip), %xmm1 /* LCPI27_1+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x15, 0xad, 0xfd, 0xff, 0xff, //0x0000588b vmovdqa $-595(%rip), %xmm2 /* LCPI27_2+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00005893 .p2align 4, 0x90 + //0x000058a0 LBB27_31 + 0xc5, 0xfa, 0x6f, 0x1b, //0x000058a0 vmovdqu (%rbx), %xmm3 + 0xc5, 0xe1, 0x74, 0xe0, //0x000058a4 vpcmpeqb %xmm0, %xmm3, %xmm4 + 0xc5, 0xe1, 0xeb, 0xd9, //0x000058a8 vpor %xmm1, %xmm3, %xmm3 + 0xc5, 0xe1, 0x74, 0xda, //0x000058ac vpcmpeqb %xmm2, %xmm3, %xmm3 + 0xc5, 0xe1, 0xeb, 0xdc, //0x000058b0 vpor %xmm4, %xmm3, %xmm3 + 0xc5, 0xf9, 0xd7, 0xfb, //0x000058b4 vpmovmskb %xmm3, %edi + 0x66, 0x85, 0xff, //0x000058b8 testw %di, %di + 0x0f, 0x85, 0x5a, 0x00, 0x00, 0x00, //0x000058bb jne LBB27_42 + 0x48, 0x83, 0xc3, 0x10, //0x000058c1 addq $16, %rbx + 0x48, 0x83, 0xc0, 0xf0, //0x000058c5 addq $-16, %rax + 0x48, 0x83, 0xf8, 0x0f, //0x000058c9 cmpq $15, %rax + 0x0f, 0x87, 0xcd, 0xff, 0xff, 0xff, //0x000058cd ja LBB27_31 + 0x48, 0x89, 0xc8, //0x000058d3 movq %rcx, %rax + 0x48, 0x89, 0xd3, //0x000058d6 movq %rdx, %rbx + //0x000058d9 LBB27_34 + 0x48, 0x85, 0xc0, //0x000058d9 testq %rax, %rax + 0x0f, 0x84, 0x31, 0x00, 0x00, 0x00, //0x000058dc je LBB27_41 + 0x48, 0x8d, 0x0c, 0x03, //0x000058e2 leaq (%rbx,%rax), %rcx + //0x000058e6 LBB27_36 + 0x0f, 0xb6, 0x13, //0x000058e6 movzbl (%rbx), %edx + 0x80, 0xfa, 0x2c, //0x000058e9 cmpb $44, %dl + 0x0f, 0x84, 0x21, 0x00, 0x00, 0x00, //0x000058ec je LBB27_41 + 0x80, 0xfa, 0x7d, //0x000058f2 cmpb $125, %dl + 0x0f, 0x84, 0x18, 0x00, 0x00, 0x00, //0x000058f5 je LBB27_41 + 0x80, 0xfa, 0x5d, //0x000058fb cmpb $93, %dl + 0x0f, 0x84, 0x0f, 0x00, 0x00, 0x00, //0x000058fe je LBB27_41 + 0x48, 0xff, 0xc3, //0x00005904 incq %rbx + 0x48, 0xff, 0xc8, //0x00005907 decq %rax + 0x0f, 0x85, 0xd6, 0xff, 0xff, 0xff, //0x0000590a jne LBB27_36 + 0x48, 0x89, 0xcb, //0x00005910 movq %rcx, %rbx + //0x00005913 LBB27_41 + 0x4c, 0x29, 0xf3, //0x00005913 subq %r14, %rbx + 0xe9, 0x0d, 0x00, 0x00, 0x00, //0x00005916 jmp LBB27_43 + //0x0000591b LBB27_42 + 0x0f, 0xb7, 0xc7, //0x0000591b movzwl %di, %eax + 0x48, 0x0f, 0xbc, 0xc0, //0x0000591e bsfq %rax, %rax + 0x4c, 0x29, 0xf3, //0x00005922 subq %r14, %rbx + 0x48, 0x01, 0xc3, //0x00005925 addq %rax, %rbx + //0x00005928 LBB27_43 + 0x48, 0x89, 0x1e, //0x00005928 movq %rbx, (%rsi) + //0x0000592b LBB27_44 + 0x4c, 0x89, 0xd8, //0x0000592b movq %r11, %rax + //0x0000592e LBB27_45 + 0x48, 0x8d, 0x65, 0xd8, //0x0000592e leaq $-40(%rbp), %rsp + 0x5b, //0x00005932 popq %rbx + 0x41, 0x5c, //0x00005933 popq %r12 + 0x41, 0x5d, //0x00005935 popq %r13 + 0x41, 0x5e, //0x00005937 popq %r14 + 0x41, 0x5f, //0x00005939 popq %r15 + 0x5d, //0x0000593b popq %rbp + 0xc5, 0xf8, 0x77, //0x0000593c vzeroupper + 0xc3, //0x0000593f retq + //0x00005940 LBB27_46 + 0x49, 0x8d, 0x4b, 0x04, //0x00005940 leaq $4(%r11), %rcx + 0x48, 0x3b, 0x4f, 0x08, //0x00005944 cmpq $8(%rdi), %rcx + 0x0f, 0x87, 0xe0, 0xff, 0xff, 0xff, //0x00005948 ja LBB27_45 + 0xe9, 0xa6, 0x04, 0x00, 0x00, //0x0000594e jmp LBB27_83 + //0x00005953 LBB27_47 + 0x4c, 0x89, 0x1e, //0x00005953 movq %r11, (%rsi) + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00005956 movq $-2, %rax + 0xe9, 0xcc, 0xff, 0xff, 0xff, //0x0000595d jmp LBB27_45 + //0x00005962 LBB27_48 + 0x4c, 0x8b, 0x47, 0x08, //0x00005962 movq $8(%rdi), %r8 + 0x4d, 0x89, 0xc7, //0x00005966 movq %r8, %r15 + 0x49, 0x29, 0xdf, //0x00005969 subq %rbx, %r15 + 0x49, 0x83, 0xff, 0x20, //0x0000596c cmpq $32, %r15 + 0x0f, 0x8c, 0xbb, 0x08, 0x00, 0x00, //0x00005970 jl LBB27_117 + 0x41, 0xb9, 0xff, 0xff, 0xff, 0xff, //0x00005976 movl $4294967295, %r9d + 0x4f, 0x8d, 0x14, 0x1e, //0x0000597c leaq (%r14,%r11), %r10 + 0x4d, 0x29, 0xd8, //0x00005980 subq %r11, %r8 + 0x41, 0xbd, 0x1f, 0x00, 0x00, 0x00, //0x00005983 movl $31, %r13d + 0x45, 0x31, 0xff, //0x00005989 xorl %r15d, %r15d + 0xc5, 0xf9, 0x6f, 0x05, 0xbc, 0xfc, 0xff, 0xff, //0x0000598c vmovdqa $-836(%rip), %xmm0 /* LCPI27_3+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x0d, 0xc4, 0xfc, 0xff, 0xff, //0x00005994 vmovdqa $-828(%rip), %xmm1 /* LCPI27_4+0(%rip) */ + 0x45, 0x31, 0xe4, //0x0000599c xorl %r12d, %r12d + 0xe9, 0x2e, 0x00, 0x00, 0x00, //0x0000599f jmp LBB27_50 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000059a4 .p2align 4, 0x90 + //0x000059b0 LBB27_52 + 0x45, 0x31, 0xe4, //0x000059b0 xorl %r12d, %r12d + 0x85, 0xc9, //0x000059b3 testl %ecx, %ecx + 0x0f, 0x85, 0x9e, 0x00, 0x00, 0x00, //0x000059b5 jne LBB27_110 + //0x000059bb LBB27_53 + 0x49, 0x83, 0xc7, 0x20, //0x000059bb addq $32, %r15 + 0x4b, 0x8d, 0x4c, 0x28, 0xe0, //0x000059bf leaq $-32(%r8,%r13), %rcx + 0x49, 0x83, 0xc5, 0xe0, //0x000059c4 addq $-32, %r13 + 0x48, 0x83, 0xf9, 0x3f, //0x000059c8 cmpq $63, %rcx + 0x0f, 0x8e, 0xdc, 0x07, 0x00, 0x00, //0x000059cc jle LBB27_54 + //0x000059d2 LBB27_50 + 0xc4, 0x81, 0x7a, 0x6f, 0x54, 0x3a, 0x01, //0x000059d2 vmovdqu $1(%r10,%r15), %xmm2 + 0xc4, 0x81, 0x7a, 0x6f, 0x5c, 0x3a, 0x11, //0x000059d9 vmovdqu $17(%r10,%r15), %xmm3 + 0xc5, 0xe9, 0x74, 0xe0, //0x000059e0 vpcmpeqb %xmm0, %xmm2, %xmm4 + 0xc5, 0xf9, 0xd7, 0xfc, //0x000059e4 vpmovmskb %xmm4, %edi + 0xc5, 0xe1, 0x74, 0xe0, //0x000059e8 vpcmpeqb %xmm0, %xmm3, %xmm4 + 0xc5, 0xf9, 0xd7, 0xcc, //0x000059ec vpmovmskb %xmm4, %ecx + 0x48, 0xc1, 0xe1, 0x10, //0x000059f0 shlq $16, %rcx + 0x48, 0x09, 0xf9, //0x000059f4 orq %rdi, %rcx + 0xc5, 0xe9, 0x74, 0xd1, //0x000059f7 vpcmpeqb %xmm1, %xmm2, %xmm2 + 0xc5, 0xf9, 0xd7, 0xda, //0x000059fb vpmovmskb %xmm2, %ebx + 0xc5, 0xe1, 0x74, 0xd1, //0x000059ff vpcmpeqb %xmm1, %xmm3, %xmm2 + 0xc5, 0xf9, 0xd7, 0xfa, //0x00005a03 vpmovmskb %xmm2, %edi + 0x48, 0xc1, 0xe7, 0x10, //0x00005a07 shlq $16, %rdi + 0x48, 0x09, 0xdf, //0x00005a0b orq %rbx, %rdi + 0x48, 0x89, 0xfb, //0x00005a0e movq %rdi, %rbx + 0x4c, 0x09, 0xe3, //0x00005a11 orq %r12, %rbx + 0x0f, 0x84, 0x96, 0xff, 0xff, 0xff, //0x00005a14 je LBB27_52 + 0x44, 0x89, 0xe3, //0x00005a1a movl %r12d, %ebx + 0x44, 0x31, 0xcb, //0x00005a1d xorl %r9d, %ebx + 0x21, 0xdf, //0x00005a20 andl %ebx, %edi + 0x8d, 0x1c, 0x3f, //0x00005a22 leal (%rdi,%rdi), %ebx + 0x44, 0x09, 0xe3, //0x00005a25 orl %r12d, %ebx + 0x41, 0x8d, 0x91, 0xab, 0xaa, 0xaa, 0xaa, //0x00005a28 leal $-1431655765(%r9), %edx + 0x31, 0xda, //0x00005a2f xorl %ebx, %edx + 0x21, 0xfa, //0x00005a31 andl %edi, %edx + 0x81, 0xe2, 0xaa, 0xaa, 0xaa, 0xaa, //0x00005a33 andl $-1431655766, %edx + 0x45, 0x31, 0xe4, //0x00005a39 xorl %r12d, %r12d + 0x01, 0xfa, //0x00005a3c addl %edi, %edx + 0x41, 0x0f, 0x92, 0xc4, //0x00005a3e setb %r12b + 0x01, 0xd2, //0x00005a42 addl %edx, %edx + 0x81, 0xf2, 0x55, 0x55, 0x55, 0x55, //0x00005a44 xorl $1431655765, %edx + 0x21, 0xda, //0x00005a4a andl %ebx, %edx + 0x44, 0x31, 0xca, //0x00005a4c xorl %r9d, %edx + 0x21, 0xd1, //0x00005a4f andl %edx, %ecx + 0x85, 0xc9, //0x00005a51 testl %ecx, %ecx + 0x0f, 0x84, 0x62, 0xff, 0xff, 0xff, //0x00005a53 je LBB27_53 + //0x00005a59 LBB27_110 + 0x48, 0x0f, 0xbc, 0xc1, //0x00005a59 bsfq %rcx, %rax + 0x49, 0x01, 0xc2, //0x00005a5d addq %rax, %r10 + 0x4d, 0x01, 0xfa, //0x00005a60 addq %r15, %r10 + 0x4d, 0x29, 0xf2, //0x00005a63 subq %r14, %r10 + 0x49, 0x83, 0xc2, 0x02, //0x00005a66 addq $2, %r10 + 0x4c, 0x89, 0x16, //0x00005a6a movq %r10, (%rsi) + 0xe9, 0xb9, 0xfe, 0xff, 0xff, //0x00005a6d jmp LBB27_44 + //0x00005a72 LBB27_57 + 0x48, 0x8b, 0x4f, 0x08, //0x00005a72 movq $8(%rdi), %rcx + 0x48, 0x29, 0xd9, //0x00005a76 subq %rbx, %rcx + 0x49, 0x01, 0xde, //0x00005a79 addq %rbx, %r14 + 0x45, 0x31, 0xe4, //0x00005a7c xorl %r12d, %r12d + 0xc5, 0x79, 0x6f, 0x15, 0xc9, 0xfb, 0xff, 0xff, //0x00005a7f vmovdqa $-1079(%rip), %xmm10 /* LCPI27_3+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x0d, 0xd1, 0xfb, 0xff, 0xff, //0x00005a87 vmovdqa $-1071(%rip), %xmm1 /* LCPI27_4+0(%rip) */ + 0xc4, 0x41, 0x31, 0x76, 0xc9, //0x00005a8f vpcmpeqd %xmm9, %xmm9, %xmm9 + 0xc5, 0xf9, 0x6f, 0x1d, 0xe4, 0xfb, 0xff, 0xff, //0x00005a94 vmovdqa $-1052(%rip), %xmm3 /* LCPI27_6+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x25, 0xec, 0xfb, 0xff, 0xff, //0x00005a9c vmovdqa $-1044(%rip), %xmm4 /* LCPI27_7+0(%rip) */ + 0xc4, 0x41, 0x38, 0x57, 0xc0, //0x00005aa4 vxorps %xmm8, %xmm8, %xmm8 + 0x31, 0xdb, //0x00005aa9 xorl %ebx, %ebx + 0x45, 0x31, 0xc0, //0x00005aab xorl %r8d, %r8d + 0x45, 0x31, 0xff, //0x00005aae xorl %r15d, %r15d + 0x48, 0x83, 0xf9, 0x40, //0x00005ab1 cmpq $64, %rcx + 0x48, 0x89, 0x4c, 0x24, 0x08, //0x00005ab5 movq %rcx, $8(%rsp) + 0x4c, 0x89, 0x44, 0x24, 0x10, //0x00005aba movq %r8, $16(%rsp) + 0x0f, 0x8d, 0x33, 0x01, 0x00, 0x00, //0x00005abf jge LBB27_58 + //0x00005ac5 LBB27_67 + 0x48, 0x85, 0xc9, //0x00005ac5 testq %rcx, %rcx + 0x0f, 0x8e, 0x6b, 0x07, 0x00, 0x00, //0x00005ac8 jle LBB27_118 + 0xc5, 0x7c, 0x11, 0x44, 0x24, 0x40, //0x00005ace vmovups %ymm8, $64(%rsp) + 0xc5, 0x7c, 0x11, 0x44, 0x24, 0x20, //0x00005ad4 vmovups %ymm8, $32(%rsp) + 0x44, 0x89, 0xf1, //0x00005ada movl %r14d, %ecx + 0x81, 0xe1, 0xff, 0x0f, 0x00, 0x00, //0x00005add andl $4095, %ecx + 0x81, 0xf9, 0xc1, 0x0f, 0x00, 0x00, //0x00005ae3 cmpl $4033, %ecx + 0x0f, 0x82, 0x09, 0x01, 0x00, 0x00, //0x00005ae9 jb LBB27_58 + 0x48, 0x83, 0x7c, 0x24, 0x08, 0x20, //0x00005aef cmpq $32, $8(%rsp) + 0x0f, 0x82, 0x2e, 0x00, 0x00, 0x00, //0x00005af5 jb LBB27_71 + 0xc4, 0xc1, 0x78, 0x10, 0x06, //0x00005afb vmovups (%r14), %xmm0 + 0xc5, 0xf8, 0x11, 0x44, 0x24, 0x20, //0x00005b00 vmovups %xmm0, $32(%rsp) + 0xc4, 0xc1, 0x7a, 0x6f, 0x46, 0x10, //0x00005b06 vmovdqu $16(%r14), %xmm0 + 0xc5, 0xfa, 0x7f, 0x44, 0x24, 0x30, //0x00005b0c vmovdqu %xmm0, $48(%rsp) + 0x49, 0x83, 0xc6, 0x20, //0x00005b12 addq $32, %r14 + 0x48, 0x8b, 0x4c, 0x24, 0x08, //0x00005b16 movq $8(%rsp), %rcx + 0x48, 0x8d, 0x51, 0xe0, //0x00005b1b leaq $-32(%rcx), %rdx + 0x4c, 0x8d, 0x44, 0x24, 0x40, //0x00005b1f leaq $64(%rsp), %r8 + 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x00005b24 jmp LBB27_72 + //0x00005b29 LBB27_71 + 0x4c, 0x8d, 0x44, 0x24, 0x20, //0x00005b29 leaq $32(%rsp), %r8 + 0x48, 0x8b, 0x54, 0x24, 0x08, //0x00005b2e movq $8(%rsp), %rdx + //0x00005b33 LBB27_72 + 0x48, 0x83, 0xfa, 0x10, //0x00005b33 cmpq $16, %rdx + 0x0f, 0x82, 0x5c, 0x00, 0x00, 0x00, //0x00005b37 jb LBB27_73 + 0xc4, 0xc1, 0x7a, 0x6f, 0x06, //0x00005b3d vmovdqu (%r14), %xmm0 + 0xc4, 0xc1, 0x7a, 0x7f, 0x00, //0x00005b42 vmovdqu %xmm0, (%r8) + 0x49, 0x83, 0xc6, 0x10, //0x00005b47 addq $16, %r14 + 0x49, 0x83, 0xc0, 0x10, //0x00005b4b addq $16, %r8 + 0x48, 0x83, 0xc2, 0xf0, //0x00005b4f addq $-16, %rdx + 0x48, 0x83, 0xfa, 0x08, //0x00005b53 cmpq $8, %rdx + 0x0f, 0x83, 0x46, 0x00, 0x00, 0x00, //0x00005b57 jae LBB27_78 + //0x00005b5d LBB27_74 + 0x48, 0x83, 0xfa, 0x04, //0x00005b5d cmpq $4, %rdx + 0x0f, 0x8c, 0x58, 0x00, 0x00, 0x00, //0x00005b61 jl LBB27_75 + //0x00005b67 LBB27_79 + 0x41, 0x8b, 0x0e, //0x00005b67 movl (%r14), %ecx + 0x41, 0x89, 0x08, //0x00005b6a movl %ecx, (%r8) + 0x49, 0x83, 0xc6, 0x04, //0x00005b6d addq $4, %r14 + 0x49, 0x83, 0xc0, 0x04, //0x00005b71 addq $4, %r8 + 0x48, 0x83, 0xc2, 0xfc, //0x00005b75 addq $-4, %rdx + 0x48, 0x83, 0xfa, 0x02, //0x00005b79 cmpq $2, %rdx + 0x0f, 0x83, 0x46, 0x00, 0x00, 0x00, //0x00005b7d jae LBB27_80 + //0x00005b83 LBB27_76 + 0x4c, 0x89, 0xf1, //0x00005b83 movq %r14, %rcx + 0x4c, 0x8d, 0x74, 0x24, 0x20, //0x00005b86 leaq $32(%rsp), %r14 + 0x48, 0x85, 0xd2, //0x00005b8b testq %rdx, %rdx + 0x0f, 0x85, 0x5a, 0x00, 0x00, 0x00, //0x00005b8e jne LBB27_81 + 0xe9, 0x5f, 0x00, 0x00, 0x00, //0x00005b94 jmp LBB27_58 + //0x00005b99 LBB27_73 + 0x48, 0x83, 0xfa, 0x08, //0x00005b99 cmpq $8, %rdx + 0x0f, 0x82, 0xba, 0xff, 0xff, 0xff, //0x00005b9d jb LBB27_74 + //0x00005ba3 LBB27_78 + 0x49, 0x8b, 0x0e, //0x00005ba3 movq (%r14), %rcx + 0x49, 0x89, 0x08, //0x00005ba6 movq %rcx, (%r8) + 0x49, 0x83, 0xc6, 0x08, //0x00005ba9 addq $8, %r14 + 0x49, 0x83, 0xc0, 0x08, //0x00005bad addq $8, %r8 + 0x48, 0x83, 0xc2, 0xf8, //0x00005bb1 addq $-8, %rdx + 0x48, 0x83, 0xfa, 0x04, //0x00005bb5 cmpq $4, %rdx + 0x0f, 0x8d, 0xa8, 0xff, 0xff, 0xff, //0x00005bb9 jge LBB27_79 + //0x00005bbf LBB27_75 + 0x48, 0x83, 0xfa, 0x02, //0x00005bbf cmpq $2, %rdx + 0x0f, 0x82, 0xba, 0xff, 0xff, 0xff, //0x00005bc3 jb LBB27_76 + //0x00005bc9 LBB27_80 + 0x41, 0x0f, 0xb7, 0x0e, //0x00005bc9 movzwl (%r14), %ecx + 0x66, 0x41, 0x89, 0x08, //0x00005bcd movw %cx, (%r8) + 0x49, 0x83, 0xc6, 0x02, //0x00005bd1 addq $2, %r14 + 0x49, 0x83, 0xc0, 0x02, //0x00005bd5 addq $2, %r8 + 0x48, 0x83, 0xc2, 0xfe, //0x00005bd9 addq $-2, %rdx + 0x4c, 0x89, 0xf1, //0x00005bdd movq %r14, %rcx + 0x4c, 0x8d, 0x74, 0x24, 0x20, //0x00005be0 leaq $32(%rsp), %r14 + 0x48, 0x85, 0xd2, //0x00005be5 testq %rdx, %rdx + 0x0f, 0x84, 0x0a, 0x00, 0x00, 0x00, //0x00005be8 je LBB27_58 + //0x00005bee LBB27_81 + 0x8a, 0x09, //0x00005bee movb (%rcx), %cl + 0x41, 0x88, 0x08, //0x00005bf0 movb %cl, (%r8) + 0x4c, 0x8d, 0x74, 0x24, 0x20, //0x00005bf3 leaq $32(%rsp), %r14 + //0x00005bf8 LBB27_58 + 0xc4, 0xc1, 0x7a, 0x6f, 0x16, //0x00005bf8 vmovdqu (%r14), %xmm2 + 0xc4, 0xc1, 0x7a, 0x6f, 0x6e, 0x10, //0x00005bfd vmovdqu $16(%r14), %xmm5 + 0xc4, 0xc1, 0x7a, 0x6f, 0x7e, 0x20, //0x00005c03 vmovdqu $32(%r14), %xmm7 + 0xc4, 0xc1, 0x7a, 0x6f, 0x76, 0x30, //0x00005c09 vmovdqu $48(%r14), %xmm6 + 0xc5, 0xa9, 0x74, 0xc2, //0x00005c0f vpcmpeqb %xmm2, %xmm10, %xmm0 + 0xc5, 0x79, 0xd7, 0xe8, //0x00005c13 vpmovmskb %xmm0, %r13d + 0xc5, 0xa9, 0x74, 0xc5, //0x00005c17 vpcmpeqb %xmm5, %xmm10, %xmm0 + 0xc5, 0xf9, 0xd7, 0xc8, //0x00005c1b vpmovmskb %xmm0, %ecx + 0xc5, 0xa9, 0x74, 0xc7, //0x00005c1f vpcmpeqb %xmm7, %xmm10, %xmm0 + 0xc5, 0xf9, 0xd7, 0xd0, //0x00005c23 vpmovmskb %xmm0, %edx + 0xc5, 0xa9, 0x74, 0xc6, //0x00005c27 vpcmpeqb %xmm6, %xmm10, %xmm0 + 0xc5, 0x79, 0xd7, 0xc8, //0x00005c2b vpmovmskb %xmm0, %r9d + 0x49, 0xc1, 0xe1, 0x30, //0x00005c2f shlq $48, %r9 + 0x48, 0xc1, 0xe2, 0x20, //0x00005c33 shlq $32, %rdx + 0x48, 0xc1, 0xe1, 0x10, //0x00005c37 shlq $16, %rcx + 0x49, 0x09, 0xcd, //0x00005c3b orq %rcx, %r13 + 0x49, 0x09, 0xd5, //0x00005c3e orq %rdx, %r13 + 0x4d, 0x09, 0xcd, //0x00005c41 orq %r9, %r13 + 0xc5, 0xe9, 0x74, 0xc1, //0x00005c44 vpcmpeqb %xmm1, %xmm2, %xmm0 + 0xc5, 0xf9, 0xd7, 0xc8, //0x00005c48 vpmovmskb %xmm0, %ecx + 0xc5, 0xd1, 0x74, 0xc1, //0x00005c4c vpcmpeqb %xmm1, %xmm5, %xmm0 + 0xc5, 0xf9, 0xd7, 0xd0, //0x00005c50 vpmovmskb %xmm0, %edx + 0xc5, 0xc1, 0x74, 0xc1, //0x00005c54 vpcmpeqb %xmm1, %xmm7, %xmm0 + 0xc5, 0x79, 0xd7, 0xc8, //0x00005c58 vpmovmskb %xmm0, %r9d + 0xc5, 0xc9, 0x74, 0xc1, //0x00005c5c vpcmpeqb %xmm1, %xmm6, %xmm0 + 0xc5, 0x79, 0xd7, 0xd0, //0x00005c60 vpmovmskb %xmm0, %r10d + 0x49, 0xc1, 0xe2, 0x30, //0x00005c64 shlq $48, %r10 + 0x49, 0xc1, 0xe1, 0x20, //0x00005c68 shlq $32, %r9 + 0x48, 0xc1, 0xe2, 0x10, //0x00005c6c shlq $16, %rdx + 0x48, 0x09, 0xd1, //0x00005c70 orq %rdx, %rcx + 0x4c, 0x09, 0xc9, //0x00005c73 orq %r9, %rcx + 0x4c, 0x09, 0xd1, //0x00005c76 orq %r10, %rcx + 0x48, 0x89, 0xca, //0x00005c79 movq %rcx, %rdx + 0x48, 0x09, 0xda, //0x00005c7c orq %rbx, %rdx + 0x0f, 0x84, 0x49, 0x00, 0x00, 0x00, //0x00005c7f je LBB27_60 + 0x48, 0x89, 0xda, //0x00005c85 movq %rbx, %rdx + 0x48, 0xf7, 0xd2, //0x00005c88 notq %rdx + 0x48, 0x21, 0xca, //0x00005c8b andq %rcx, %rdx + 0x4c, 0x8d, 0x0c, 0x12, //0x00005c8e leaq (%rdx,%rdx), %r9 + 0x49, 0x09, 0xd9, //0x00005c92 orq %rbx, %r9 + 0x4d, 0x89, 0xca, //0x00005c95 movq %r9, %r10 + 0x48, 0xbb, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x00005c98 movabsq $-6148914691236517206, %rbx + 0x49, 0x31, 0xda, //0x00005ca2 xorq %rbx, %r10 + 0x48, 0x21, 0xd9, //0x00005ca5 andq %rbx, %rcx + 0x4c, 0x21, 0xd1, //0x00005ca8 andq %r10, %rcx + 0x31, 0xdb, //0x00005cab xorl %ebx, %ebx + 0x48, 0x01, 0xd1, //0x00005cad addq %rdx, %rcx + 0x0f, 0x92, 0xc3, //0x00005cb0 setb %bl + 0x48, 0x01, 0xc9, //0x00005cb3 addq %rcx, %rcx + 0x48, 0xba, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00005cb6 movabsq $6148914691236517205, %rdx + 0x48, 0x31, 0xd1, //0x00005cc0 xorq %rdx, %rcx + 0x4c, 0x21, 0xc9, //0x00005cc3 andq %r9, %rcx + 0x48, 0xf7, 0xd1, //0x00005cc6 notq %rcx + 0xe9, 0x09, 0x00, 0x00, 0x00, //0x00005cc9 jmp LBB27_61 + //0x00005cce LBB27_60 + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00005cce movq $-1, %rcx + 0x31, 0xdb, //0x00005cd5 xorl %ebx, %ebx + //0x00005cd7 LBB27_61 + 0x48, 0x89, 0x5c, 0x24, 0x18, //0x00005cd7 movq %rbx, $24(%rsp) + 0x4c, 0x21, 0xe9, //0x00005cdc andq %r13, %rcx + 0xc4, 0xe1, 0xf9, 0x6e, 0xc1, //0x00005cdf vmovq %rcx, %xmm0 + 0xc4, 0xc3, 0x79, 0x44, 0xc1, 0x00, //0x00005ce4 vpclmulqdq $0, %xmm9, %xmm0, %xmm0 + 0xc4, 0xc1, 0xf9, 0x7e, 0xc5, //0x00005cea vmovq %xmm0, %r13 + 0x4d, 0x31, 0xe5, //0x00005cef xorq %r12, %r13 + 0xc5, 0xe9, 0x74, 0xc3, //0x00005cf2 vpcmpeqb %xmm3, %xmm2, %xmm0 + 0xc5, 0x79, 0xd7, 0xd0, //0x00005cf6 vpmovmskb %xmm0, %r10d + 0xc5, 0xd1, 0x74, 0xc3, //0x00005cfa vpcmpeqb %xmm3, %xmm5, %xmm0 + 0xc5, 0xf9, 0xd7, 0xc8, //0x00005cfe vpmovmskb %xmm0, %ecx + 0xc5, 0xc1, 0x74, 0xc3, //0x00005d02 vpcmpeqb %xmm3, %xmm7, %xmm0 + 0xc5, 0xf9, 0xd7, 0xd0, //0x00005d06 vpmovmskb %xmm0, %edx + 0xc5, 0xc9, 0x74, 0xc3, //0x00005d0a vpcmpeqb %xmm3, %xmm6, %xmm0 + 0xc5, 0x79, 0xd7, 0xc8, //0x00005d0e vpmovmskb %xmm0, %r9d + 0x49, 0xc1, 0xe1, 0x30, //0x00005d12 shlq $48, %r9 + 0x48, 0xc1, 0xe2, 0x20, //0x00005d16 shlq $32, %rdx + 0x48, 0xc1, 0xe1, 0x10, //0x00005d1a shlq $16, %rcx + 0x49, 0x09, 0xca, //0x00005d1e orq %rcx, %r10 + 0x49, 0x09, 0xd2, //0x00005d21 orq %rdx, %r10 + 0x4d, 0x09, 0xca, //0x00005d24 orq %r9, %r10 + 0x4d, 0x89, 0xe9, //0x00005d27 movq %r13, %r9 + 0x49, 0xf7, 0xd1, //0x00005d2a notq %r9 + 0x4d, 0x21, 0xca, //0x00005d2d andq %r9, %r10 + 0xc5, 0xe9, 0x74, 0xc4, //0x00005d30 vpcmpeqb %xmm4, %xmm2, %xmm0 + 0xc5, 0xf9, 0xd7, 0xc8, //0x00005d34 vpmovmskb %xmm0, %ecx + 0xc5, 0xd1, 0x74, 0xc4, //0x00005d38 vpcmpeqb %xmm4, %xmm5, %xmm0 + 0xc5, 0xf9, 0xd7, 0xd0, //0x00005d3c vpmovmskb %xmm0, %edx + 0xc5, 0xc1, 0x74, 0xc4, //0x00005d40 vpcmpeqb %xmm4, %xmm7, %xmm0 + 0xc5, 0x79, 0xd7, 0xc0, //0x00005d44 vpmovmskb %xmm0, %r8d + 0xc5, 0xc9, 0x74, 0xc4, //0x00005d48 vpcmpeqb %xmm4, %xmm6, %xmm0 + 0xc5, 0x79, 0xd7, 0xe0, //0x00005d4c vpmovmskb %xmm0, %r12d + 0x49, 0xc1, 0xe4, 0x30, //0x00005d50 shlq $48, %r12 + 0x49, 0xc1, 0xe0, 0x20, //0x00005d54 shlq $32, %r8 + 0x48, 0xc1, 0xe2, 0x10, //0x00005d58 shlq $16, %rdx + 0x48, 0x09, 0xd1, //0x00005d5c orq %rdx, %rcx + 0x4c, 0x09, 0xc1, //0x00005d5f orq %r8, %rcx + 0x4c, 0x09, 0xe1, //0x00005d62 orq %r12, %rcx + 0x4c, 0x21, 0xc9, //0x00005d65 andq %r9, %rcx + 0x0f, 0x84, 0x3e, 0x00, 0x00, 0x00, //0x00005d68 je LBB27_65 + 0x4c, 0x8b, 0x44, 0x24, 0x10, //0x00005d6e movq $16(%rsp), %r8 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00005d73 .p2align 4, 0x90 + //0x00005d80 LBB27_63 + 0x48, 0x8d, 0x59, 0xff, //0x00005d80 leaq $-1(%rcx), %rbx + 0x48, 0x89, 0xda, //0x00005d84 movq %rbx, %rdx + 0x4c, 0x21, 0xd2, //0x00005d87 andq %r10, %rdx + 0xf3, 0x48, 0x0f, 0xb8, 0xd2, //0x00005d8a popcntq %rdx, %rdx + 0x4c, 0x01, 0xc2, //0x00005d8f addq %r8, %rdx + 0x4c, 0x39, 0xfa, //0x00005d92 cmpq %r15, %rdx + 0x0f, 0x86, 0xe0, 0x03, 0x00, 0x00, //0x00005d95 jbe LBB27_109 + 0x49, 0xff, 0xc7, //0x00005d9b incq %r15 + 0x48, 0x21, 0xd9, //0x00005d9e andq %rbx, %rcx + 0x0f, 0x85, 0xd9, 0xff, 0xff, 0xff, //0x00005da1 jne LBB27_63 + 0xe9, 0x05, 0x00, 0x00, 0x00, //0x00005da7 jmp LBB27_66 + //0x00005dac LBB27_65 + 0x4c, 0x8b, 0x44, 0x24, 0x10, //0x00005dac movq $16(%rsp), %r8 + //0x00005db1 LBB27_66 + 0x49, 0xc1, 0xfd, 0x3f, //0x00005db1 sarq $63, %r13 + 0xf3, 0x49, 0x0f, 0xb8, 0xca, //0x00005db5 popcntq %r10, %rcx + 0x49, 0x01, 0xc8, //0x00005dba addq %rcx, %r8 + 0x49, 0x83, 0xc6, 0x40, //0x00005dbd addq $64, %r14 + 0x48, 0x8b, 0x4c, 0x24, 0x08, //0x00005dc1 movq $8(%rsp), %rcx + 0x48, 0x83, 0xc1, 0xc0, //0x00005dc6 addq $-64, %rcx + 0x4d, 0x89, 0xec, //0x00005dca movq %r13, %r12 + 0x48, 0x8b, 0x5c, 0x24, 0x18, //0x00005dcd movq $24(%rsp), %rbx + 0x48, 0x83, 0xf9, 0x40, //0x00005dd2 cmpq $64, %rcx + 0x48, 0x89, 0x4c, 0x24, 0x08, //0x00005dd6 movq %rcx, $8(%rsp) + 0x4c, 0x89, 0x44, 0x24, 0x10, //0x00005ddb movq %r8, $16(%rsp) + 0x0f, 0x8d, 0x12, 0xfe, 0xff, 0xff, //0x00005de0 jge LBB27_58 + 0xe9, 0xda, 0xfc, 0xff, 0xff, //0x00005de6 jmp LBB27_67 + //0x00005deb LBB27_82 + 0x49, 0x8d, 0x4b, 0x05, //0x00005deb leaq $5(%r11), %rcx + 0x48, 0x3b, 0x4f, 0x08, //0x00005def cmpq $8(%rdi), %rcx + 0x0f, 0x87, 0x35, 0xfb, 0xff, 0xff, //0x00005df3 ja LBB27_45 + //0x00005df9 LBB27_83 + 0x48, 0x89, 0x0e, //0x00005df9 movq %rcx, (%rsi) + 0xe9, 0x2a, 0xfb, 0xff, 0xff, //0x00005dfc jmp LBB27_44 + //0x00005e01 LBB27_84 + 0x48, 0x8b, 0x4f, 0x08, //0x00005e01 movq $8(%rdi), %rcx + 0x48, 0x29, 0xd9, //0x00005e05 subq %rbx, %rcx + 0x49, 0x01, 0xde, //0x00005e08 addq %rbx, %r14 + 0x45, 0x31, 0xe4, //0x00005e0b xorl %r12d, %r12d + 0xc5, 0x79, 0x6f, 0x15, 0x3a, 0xf8, 0xff, 0xff, //0x00005e0e vmovdqa $-1990(%rip), %xmm10 /* LCPI27_3+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x0d, 0x42, 0xf8, 0xff, 0xff, //0x00005e16 vmovdqa $-1982(%rip), %xmm1 /* LCPI27_4+0(%rip) */ + 0xc4, 0x41, 0x31, 0x76, 0xc9, //0x00005e1e vpcmpeqd %xmm9, %xmm9, %xmm9 + 0xc5, 0xf9, 0x6f, 0x1d, 0x45, 0xf8, 0xff, 0xff, //0x00005e23 vmovdqa $-1979(%rip), %xmm3 /* LCPI27_5+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x25, 0x0d, 0xf8, 0xff, 0xff, //0x00005e2b vmovdqa $-2035(%rip), %xmm4 /* LCPI27_2+0(%rip) */ + 0xc4, 0x41, 0x38, 0x57, 0xc0, //0x00005e33 vxorps %xmm8, %xmm8, %xmm8 + 0x31, 0xdb, //0x00005e38 xorl %ebx, %ebx + 0x45, 0x31, 0xc0, //0x00005e3a xorl %r8d, %r8d + 0x45, 0x31, 0xff, //0x00005e3d xorl %r15d, %r15d + 0x48, 0x83, 0xf9, 0x40, //0x00005e40 cmpq $64, %rcx + 0x48, 0x89, 0x4c, 0x24, 0x08, //0x00005e44 movq %rcx, $8(%rsp) + 0x4c, 0x89, 0x44, 0x24, 0x10, //0x00005e49 movq %r8, $16(%rsp) + 0x0f, 0x8d, 0x33, 0x01, 0x00, 0x00, //0x00005e4e jge LBB27_85 + //0x00005e54 LBB27_94 + 0x48, 0x85, 0xc9, //0x00005e54 testq %rcx, %rcx + 0x0f, 0x8e, 0xdc, 0x03, 0x00, 0x00, //0x00005e57 jle LBB27_118 + 0xc5, 0x7c, 0x11, 0x44, 0x24, 0x40, //0x00005e5d vmovups %ymm8, $64(%rsp) + 0xc5, 0x7c, 0x11, 0x44, 0x24, 0x20, //0x00005e63 vmovups %ymm8, $32(%rsp) + 0x44, 0x89, 0xf1, //0x00005e69 movl %r14d, %ecx + 0x81, 0xe1, 0xff, 0x0f, 0x00, 0x00, //0x00005e6c andl $4095, %ecx + 0x81, 0xf9, 0xc1, 0x0f, 0x00, 0x00, //0x00005e72 cmpl $4033, %ecx + 0x0f, 0x82, 0x09, 0x01, 0x00, 0x00, //0x00005e78 jb LBB27_85 + 0x48, 0x83, 0x7c, 0x24, 0x08, 0x20, //0x00005e7e cmpq $32, $8(%rsp) + 0x0f, 0x82, 0x2e, 0x00, 0x00, 0x00, //0x00005e84 jb LBB27_98 + 0xc4, 0xc1, 0x78, 0x10, 0x06, //0x00005e8a vmovups (%r14), %xmm0 + 0xc5, 0xf8, 0x11, 0x44, 0x24, 0x20, //0x00005e8f vmovups %xmm0, $32(%rsp) + 0xc4, 0xc1, 0x7a, 0x6f, 0x46, 0x10, //0x00005e95 vmovdqu $16(%r14), %xmm0 + 0xc5, 0xfa, 0x7f, 0x44, 0x24, 0x30, //0x00005e9b vmovdqu %xmm0, $48(%rsp) + 0x49, 0x83, 0xc6, 0x20, //0x00005ea1 addq $32, %r14 + 0x48, 0x8b, 0x4c, 0x24, 0x08, //0x00005ea5 movq $8(%rsp), %rcx + 0x48, 0x8d, 0x51, 0xe0, //0x00005eaa leaq $-32(%rcx), %rdx + 0x4c, 0x8d, 0x44, 0x24, 0x40, //0x00005eae leaq $64(%rsp), %r8 + 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x00005eb3 jmp LBB27_99 + //0x00005eb8 LBB27_98 + 0x4c, 0x8d, 0x44, 0x24, 0x20, //0x00005eb8 leaq $32(%rsp), %r8 + 0x48, 0x8b, 0x54, 0x24, 0x08, //0x00005ebd movq $8(%rsp), %rdx + //0x00005ec2 LBB27_99 + 0x48, 0x83, 0xfa, 0x10, //0x00005ec2 cmpq $16, %rdx + 0x0f, 0x82, 0x5c, 0x00, 0x00, 0x00, //0x00005ec6 jb LBB27_100 + 0xc4, 0xc1, 0x7a, 0x6f, 0x06, //0x00005ecc vmovdqu (%r14), %xmm0 + 0xc4, 0xc1, 0x7a, 0x7f, 0x00, //0x00005ed1 vmovdqu %xmm0, (%r8) + 0x49, 0x83, 0xc6, 0x10, //0x00005ed6 addq $16, %r14 + 0x49, 0x83, 0xc0, 0x10, //0x00005eda addq $16, %r8 + 0x48, 0x83, 0xc2, 0xf0, //0x00005ede addq $-16, %rdx + 0x48, 0x83, 0xfa, 0x08, //0x00005ee2 cmpq $8, %rdx + 0x0f, 0x83, 0x46, 0x00, 0x00, 0x00, //0x00005ee6 jae LBB27_105 + //0x00005eec LBB27_101 + 0x48, 0x83, 0xfa, 0x04, //0x00005eec cmpq $4, %rdx + 0x0f, 0x8c, 0x58, 0x00, 0x00, 0x00, //0x00005ef0 jl LBB27_102 + //0x00005ef6 LBB27_106 + 0x41, 0x8b, 0x0e, //0x00005ef6 movl (%r14), %ecx + 0x41, 0x89, 0x08, //0x00005ef9 movl %ecx, (%r8) + 0x49, 0x83, 0xc6, 0x04, //0x00005efc addq $4, %r14 + 0x49, 0x83, 0xc0, 0x04, //0x00005f00 addq $4, %r8 + 0x48, 0x83, 0xc2, 0xfc, //0x00005f04 addq $-4, %rdx + 0x48, 0x83, 0xfa, 0x02, //0x00005f08 cmpq $2, %rdx + 0x0f, 0x83, 0x46, 0x00, 0x00, 0x00, //0x00005f0c jae LBB27_107 + //0x00005f12 LBB27_103 + 0x4c, 0x89, 0xf1, //0x00005f12 movq %r14, %rcx + 0x4c, 0x8d, 0x74, 0x24, 0x20, //0x00005f15 leaq $32(%rsp), %r14 + 0x48, 0x85, 0xd2, //0x00005f1a testq %rdx, %rdx + 0x0f, 0x85, 0x5a, 0x00, 0x00, 0x00, //0x00005f1d jne LBB27_108 + 0xe9, 0x5f, 0x00, 0x00, 0x00, //0x00005f23 jmp LBB27_85 + //0x00005f28 LBB27_100 + 0x48, 0x83, 0xfa, 0x08, //0x00005f28 cmpq $8, %rdx + 0x0f, 0x82, 0xba, 0xff, 0xff, 0xff, //0x00005f2c jb LBB27_101 + //0x00005f32 LBB27_105 + 0x49, 0x8b, 0x0e, //0x00005f32 movq (%r14), %rcx + 0x49, 0x89, 0x08, //0x00005f35 movq %rcx, (%r8) + 0x49, 0x83, 0xc6, 0x08, //0x00005f38 addq $8, %r14 + 0x49, 0x83, 0xc0, 0x08, //0x00005f3c addq $8, %r8 + 0x48, 0x83, 0xc2, 0xf8, //0x00005f40 addq $-8, %rdx + 0x48, 0x83, 0xfa, 0x04, //0x00005f44 cmpq $4, %rdx + 0x0f, 0x8d, 0xa8, 0xff, 0xff, 0xff, //0x00005f48 jge LBB27_106 + //0x00005f4e LBB27_102 + 0x48, 0x83, 0xfa, 0x02, //0x00005f4e cmpq $2, %rdx + 0x0f, 0x82, 0xba, 0xff, 0xff, 0xff, //0x00005f52 jb LBB27_103 + //0x00005f58 LBB27_107 + 0x41, 0x0f, 0xb7, 0x0e, //0x00005f58 movzwl (%r14), %ecx + 0x66, 0x41, 0x89, 0x08, //0x00005f5c movw %cx, (%r8) + 0x49, 0x83, 0xc6, 0x02, //0x00005f60 addq $2, %r14 + 0x49, 0x83, 0xc0, 0x02, //0x00005f64 addq $2, %r8 + 0x48, 0x83, 0xc2, 0xfe, //0x00005f68 addq $-2, %rdx + 0x4c, 0x89, 0xf1, //0x00005f6c movq %r14, %rcx + 0x4c, 0x8d, 0x74, 0x24, 0x20, //0x00005f6f leaq $32(%rsp), %r14 + 0x48, 0x85, 0xd2, //0x00005f74 testq %rdx, %rdx + 0x0f, 0x84, 0x0a, 0x00, 0x00, 0x00, //0x00005f77 je LBB27_85 + //0x00005f7d LBB27_108 + 0x8a, 0x09, //0x00005f7d movb (%rcx), %cl + 0x41, 0x88, 0x08, //0x00005f7f movb %cl, (%r8) + 0x4c, 0x8d, 0x74, 0x24, 0x20, //0x00005f82 leaq $32(%rsp), %r14 + //0x00005f87 LBB27_85 + 0xc4, 0xc1, 0x7a, 0x6f, 0x16, //0x00005f87 vmovdqu (%r14), %xmm2 + 0xc4, 0xc1, 0x7a, 0x6f, 0x6e, 0x10, //0x00005f8c vmovdqu $16(%r14), %xmm5 + 0xc4, 0xc1, 0x7a, 0x6f, 0x7e, 0x20, //0x00005f92 vmovdqu $32(%r14), %xmm7 + 0xc4, 0xc1, 0x7a, 0x6f, 0x76, 0x30, //0x00005f98 vmovdqu $48(%r14), %xmm6 + 0xc5, 0xa9, 0x74, 0xc2, //0x00005f9e vpcmpeqb %xmm2, %xmm10, %xmm0 + 0xc5, 0x79, 0xd7, 0xe8, //0x00005fa2 vpmovmskb %xmm0, %r13d + 0xc5, 0xa9, 0x74, 0xc5, //0x00005fa6 vpcmpeqb %xmm5, %xmm10, %xmm0 + 0xc5, 0xf9, 0xd7, 0xc8, //0x00005faa vpmovmskb %xmm0, %ecx + 0xc5, 0xa9, 0x74, 0xc7, //0x00005fae vpcmpeqb %xmm7, %xmm10, %xmm0 + 0xc5, 0xf9, 0xd7, 0xd0, //0x00005fb2 vpmovmskb %xmm0, %edx + 0xc5, 0xa9, 0x74, 0xc6, //0x00005fb6 vpcmpeqb %xmm6, %xmm10, %xmm0 + 0xc5, 0x79, 0xd7, 0xc8, //0x00005fba vpmovmskb %xmm0, %r9d + 0x49, 0xc1, 0xe1, 0x30, //0x00005fbe shlq $48, %r9 + 0x48, 0xc1, 0xe2, 0x20, //0x00005fc2 shlq $32, %rdx + 0x48, 0xc1, 0xe1, 0x10, //0x00005fc6 shlq $16, %rcx + 0x49, 0x09, 0xcd, //0x00005fca orq %rcx, %r13 + 0x49, 0x09, 0xd5, //0x00005fcd orq %rdx, %r13 + 0x4d, 0x09, 0xcd, //0x00005fd0 orq %r9, %r13 + 0xc5, 0xe9, 0x74, 0xc1, //0x00005fd3 vpcmpeqb %xmm1, %xmm2, %xmm0 + 0xc5, 0xf9, 0xd7, 0xc8, //0x00005fd7 vpmovmskb %xmm0, %ecx + 0xc5, 0xd1, 0x74, 0xc1, //0x00005fdb vpcmpeqb %xmm1, %xmm5, %xmm0 + 0xc5, 0xf9, 0xd7, 0xd0, //0x00005fdf vpmovmskb %xmm0, %edx + 0xc5, 0xc1, 0x74, 0xc1, //0x00005fe3 vpcmpeqb %xmm1, %xmm7, %xmm0 + 0xc5, 0x79, 0xd7, 0xc8, //0x00005fe7 vpmovmskb %xmm0, %r9d + 0xc5, 0xc9, 0x74, 0xc1, //0x00005feb vpcmpeqb %xmm1, %xmm6, %xmm0 + 0xc5, 0x79, 0xd7, 0xd0, //0x00005fef vpmovmskb %xmm0, %r10d + 0x49, 0xc1, 0xe2, 0x30, //0x00005ff3 shlq $48, %r10 + 0x49, 0xc1, 0xe1, 0x20, //0x00005ff7 shlq $32, %r9 + 0x48, 0xc1, 0xe2, 0x10, //0x00005ffb shlq $16, %rdx + 0x48, 0x09, 0xd1, //0x00005fff orq %rdx, %rcx + 0x4c, 0x09, 0xc9, //0x00006002 orq %r9, %rcx + 0x4c, 0x09, 0xd1, //0x00006005 orq %r10, %rcx + 0x48, 0x89, 0xca, //0x00006008 movq %rcx, %rdx + 0x48, 0x09, 0xda, //0x0000600b orq %rbx, %rdx + 0x0f, 0x84, 0x49, 0x00, 0x00, 0x00, //0x0000600e je LBB27_87 + 0x48, 0x89, 0xda, //0x00006014 movq %rbx, %rdx + 0x48, 0xf7, 0xd2, //0x00006017 notq %rdx + 0x48, 0x21, 0xca, //0x0000601a andq %rcx, %rdx + 0x4c, 0x8d, 0x0c, 0x12, //0x0000601d leaq (%rdx,%rdx), %r9 + 0x49, 0x09, 0xd9, //0x00006021 orq %rbx, %r9 + 0x4d, 0x89, 0xca, //0x00006024 movq %r9, %r10 + 0x48, 0xbb, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x00006027 movabsq $-6148914691236517206, %rbx + 0x49, 0x31, 0xda, //0x00006031 xorq %rbx, %r10 + 0x48, 0x21, 0xd9, //0x00006034 andq %rbx, %rcx + 0x4c, 0x21, 0xd1, //0x00006037 andq %r10, %rcx + 0x31, 0xdb, //0x0000603a xorl %ebx, %ebx + 0x48, 0x01, 0xd1, //0x0000603c addq %rdx, %rcx + 0x0f, 0x92, 0xc3, //0x0000603f setb %bl + 0x48, 0x01, 0xc9, //0x00006042 addq %rcx, %rcx + 0x48, 0xba, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00006045 movabsq $6148914691236517205, %rdx + 0x48, 0x31, 0xd1, //0x0000604f xorq %rdx, %rcx + 0x4c, 0x21, 0xc9, //0x00006052 andq %r9, %rcx + 0x48, 0xf7, 0xd1, //0x00006055 notq %rcx + 0xe9, 0x09, 0x00, 0x00, 0x00, //0x00006058 jmp LBB27_88 + //0x0000605d LBB27_87 + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x0000605d movq $-1, %rcx + 0x31, 0xdb, //0x00006064 xorl %ebx, %ebx + //0x00006066 LBB27_88 + 0x48, 0x89, 0x5c, 0x24, 0x18, //0x00006066 movq %rbx, $24(%rsp) + 0x4c, 0x21, 0xe9, //0x0000606b andq %r13, %rcx + 0xc4, 0xe1, 0xf9, 0x6e, 0xc1, //0x0000606e vmovq %rcx, %xmm0 + 0xc4, 0xc3, 0x79, 0x44, 0xc1, 0x00, //0x00006073 vpclmulqdq $0, %xmm9, %xmm0, %xmm0 + 0xc4, 0xc1, 0xf9, 0x7e, 0xc5, //0x00006079 vmovq %xmm0, %r13 + 0x4d, 0x31, 0xe5, //0x0000607e xorq %r12, %r13 + 0xc5, 0xe9, 0x74, 0xc3, //0x00006081 vpcmpeqb %xmm3, %xmm2, %xmm0 + 0xc5, 0x79, 0xd7, 0xd0, //0x00006085 vpmovmskb %xmm0, %r10d + 0xc5, 0xd1, 0x74, 0xc3, //0x00006089 vpcmpeqb %xmm3, %xmm5, %xmm0 + 0xc5, 0xf9, 0xd7, 0xc8, //0x0000608d vpmovmskb %xmm0, %ecx + 0xc5, 0xc1, 0x74, 0xc3, //0x00006091 vpcmpeqb %xmm3, %xmm7, %xmm0 + 0xc5, 0xf9, 0xd7, 0xd0, //0x00006095 vpmovmskb %xmm0, %edx + 0xc5, 0xc9, 0x74, 0xc3, //0x00006099 vpcmpeqb %xmm3, %xmm6, %xmm0 + 0xc5, 0x79, 0xd7, 0xc8, //0x0000609d vpmovmskb %xmm0, %r9d + 0x49, 0xc1, 0xe1, 0x30, //0x000060a1 shlq $48, %r9 + 0x48, 0xc1, 0xe2, 0x20, //0x000060a5 shlq $32, %rdx + 0x48, 0xc1, 0xe1, 0x10, //0x000060a9 shlq $16, %rcx + 0x49, 0x09, 0xca, //0x000060ad orq %rcx, %r10 + 0x49, 0x09, 0xd2, //0x000060b0 orq %rdx, %r10 + 0x4d, 0x09, 0xca, //0x000060b3 orq %r9, %r10 + 0x4d, 0x89, 0xe9, //0x000060b6 movq %r13, %r9 + 0x49, 0xf7, 0xd1, //0x000060b9 notq %r9 + 0x4d, 0x21, 0xca, //0x000060bc andq %r9, %r10 + 0xc5, 0xe9, 0x74, 0xc4, //0x000060bf vpcmpeqb %xmm4, %xmm2, %xmm0 + 0xc5, 0xf9, 0xd7, 0xc8, //0x000060c3 vpmovmskb %xmm0, %ecx + 0xc5, 0xd1, 0x74, 0xc4, //0x000060c7 vpcmpeqb %xmm4, %xmm5, %xmm0 + 0xc5, 0xf9, 0xd7, 0xd0, //0x000060cb vpmovmskb %xmm0, %edx + 0xc5, 0xc1, 0x74, 0xc4, //0x000060cf vpcmpeqb %xmm4, %xmm7, %xmm0 + 0xc5, 0x79, 0xd7, 0xc0, //0x000060d3 vpmovmskb %xmm0, %r8d + 0xc5, 0xc9, 0x74, 0xc4, //0x000060d7 vpcmpeqb %xmm4, %xmm6, %xmm0 + 0xc5, 0x79, 0xd7, 0xe0, //0x000060db vpmovmskb %xmm0, %r12d + 0x49, 0xc1, 0xe4, 0x30, //0x000060df shlq $48, %r12 + 0x49, 0xc1, 0xe0, 0x20, //0x000060e3 shlq $32, %r8 + 0x48, 0xc1, 0xe2, 0x10, //0x000060e7 shlq $16, %rdx + 0x48, 0x09, 0xd1, //0x000060eb orq %rdx, %rcx + 0x4c, 0x09, 0xc1, //0x000060ee orq %r8, %rcx + 0x4c, 0x09, 0xe1, //0x000060f1 orq %r12, %rcx + 0x4c, 0x21, 0xc9, //0x000060f4 andq %r9, %rcx + 0x0f, 0x84, 0x3f, 0x00, 0x00, 0x00, //0x000060f7 je LBB27_92 + 0x4c, 0x8b, 0x44, 0x24, 0x10, //0x000060fd movq $16(%rsp), %r8 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00006102 .p2align 4, 0x90 + //0x00006110 LBB27_90 + 0x48, 0x8d, 0x59, 0xff, //0x00006110 leaq $-1(%rcx), %rbx + 0x48, 0x89, 0xda, //0x00006114 movq %rbx, %rdx + 0x4c, 0x21, 0xd2, //0x00006117 andq %r10, %rdx + 0xf3, 0x48, 0x0f, 0xb8, 0xd2, //0x0000611a popcntq %rdx, %rdx + 0x4c, 0x01, 0xc2, //0x0000611f addq %r8, %rdx + 0x4c, 0x39, 0xfa, //0x00006122 cmpq %r15, %rdx + 0x0f, 0x86, 0x50, 0x00, 0x00, 0x00, //0x00006125 jbe LBB27_109 + 0x49, 0xff, 0xc7, //0x0000612b incq %r15 + 0x48, 0x21, 0xd9, //0x0000612e andq %rbx, %rcx + 0x0f, 0x85, 0xd9, 0xff, 0xff, 0xff, //0x00006131 jne LBB27_90 + 0xe9, 0x05, 0x00, 0x00, 0x00, //0x00006137 jmp LBB27_93 + //0x0000613c LBB27_92 + 0x4c, 0x8b, 0x44, 0x24, 0x10, //0x0000613c movq $16(%rsp), %r8 + //0x00006141 LBB27_93 + 0x49, 0xc1, 0xfd, 0x3f, //0x00006141 sarq $63, %r13 + 0xf3, 0x49, 0x0f, 0xb8, 0xca, //0x00006145 popcntq %r10, %rcx + 0x49, 0x01, 0xc8, //0x0000614a addq %rcx, %r8 + 0x49, 0x83, 0xc6, 0x40, //0x0000614d addq $64, %r14 + 0x48, 0x8b, 0x4c, 0x24, 0x08, //0x00006151 movq $8(%rsp), %rcx + 0x48, 0x83, 0xc1, 0xc0, //0x00006156 addq $-64, %rcx + 0x4d, 0x89, 0xec, //0x0000615a movq %r13, %r12 + 0x48, 0x8b, 0x5c, 0x24, 0x18, //0x0000615d movq $24(%rsp), %rbx + 0x48, 0x83, 0xf9, 0x40, //0x00006162 cmpq $64, %rcx + 0x48, 0x89, 0x4c, 0x24, 0x08, //0x00006166 movq %rcx, $8(%rsp) + 0x4c, 0x89, 0x44, 0x24, 0x10, //0x0000616b movq %r8, $16(%rsp) + 0x0f, 0x8d, 0x11, 0xfe, 0xff, 0xff, //0x00006170 jge LBB27_85 + 0xe9, 0xd9, 0xfc, 0xff, 0xff, //0x00006176 jmp LBB27_94 + //0x0000617b LBB27_109 + 0x48, 0x8b, 0x47, 0x08, //0x0000617b movq $8(%rdi), %rax + 0x48, 0x0f, 0xbc, 0xc9, //0x0000617f bsfq %rcx, %rcx + 0x48, 0x2b, 0x4c, 0x24, 0x08, //0x00006183 subq $8(%rsp), %rcx + 0x48, 0x8d, 0x44, 0x01, 0x01, //0x00006188 leaq $1(%rcx,%rax), %rax + 0x48, 0x89, 0x06, //0x0000618d movq %rax, (%rsi) + 0x48, 0x8b, 0x4f, 0x08, //0x00006190 movq $8(%rdi), %rcx + 0x48, 0x39, 0xc8, //0x00006194 cmpq %rcx, %rax + 0x48, 0x0f, 0x47, 0xc1, //0x00006197 cmovaq %rcx, %rax + 0x48, 0x89, 0x06, //0x0000619b movq %rax, (%rsi) + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x0000619e movq $-1, %rax + 0x4c, 0x0f, 0x47, 0xd8, //0x000061a5 cmovaq %rax, %r11 + 0xe9, 0x7d, 0xf7, 0xff, 0xff, //0x000061a9 jmp LBB27_44 + //0x000061ae LBB27_54 + 0x4d, 0x85, 0xe4, //0x000061ae testq %r12, %r12 + 0x0f, 0x85, 0x8e, 0x00, 0x00, 0x00, //0x000061b1 jne LBB27_119 + 0x4b, 0x8d, 0x5c, 0x17, 0x01, //0x000061b7 leaq $1(%r15,%r10), %rbx + 0x49, 0xf7, 0xd7, //0x000061bc notq %r15 + 0x4d, 0x01, 0xc7, //0x000061bf addq %r8, %r15 + //0x000061c2 LBB27_56 + 0x4d, 0x85, 0xff, //0x000061c2 testq %r15, %r15 + 0x0f, 0x8f, 0x24, 0x00, 0x00, 0x00, //0x000061c5 jg LBB27_113 + 0xe9, 0x5e, 0xf7, 0xff, 0xff, //0x000061cb jmp LBB27_45 + //0x000061d0 LBB27_111 + 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x000061d0 movq $-2, %rcx + 0xb8, 0x02, 0x00, 0x00, 0x00, //0x000061d7 movl $2, %eax + 0x48, 0x01, 0xc3, //0x000061dc addq %rax, %rbx + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000061df movq $-1, %rax + 0x49, 0x01, 0xcf, //0x000061e6 addq %rcx, %r15 + 0x0f, 0x8e, 0x3f, 0xf7, 0xff, 0xff, //0x000061e9 jle LBB27_45 + //0x000061ef LBB27_113 + 0x0f, 0xb6, 0x03, //0x000061ef movzbl (%rbx), %eax + 0x3c, 0x5c, //0x000061f2 cmpb $92, %al + 0x0f, 0x84, 0xd6, 0xff, 0xff, 0xff, //0x000061f4 je LBB27_111 + 0x3c, 0x22, //0x000061fa cmpb $34, %al + 0x0f, 0x84, 0x24, 0x00, 0x00, 0x00, //0x000061fc je LBB27_116 + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00006202 movq $-1, %rcx + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00006209 movl $1, %eax + 0x48, 0x01, 0xc3, //0x0000620e addq %rax, %rbx + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00006211 movq $-1, %rax + 0x49, 0x01, 0xcf, //0x00006218 addq %rcx, %r15 + 0x0f, 0x8f, 0xce, 0xff, 0xff, 0xff, //0x0000621b jg LBB27_113 + 0xe9, 0x08, 0xf7, 0xff, 0xff, //0x00006221 jmp LBB27_45 + //0x00006226 LBB27_116 + 0x4c, 0x29, 0xf3, //0x00006226 subq %r14, %rbx + 0x48, 0xff, 0xc3, //0x00006229 incq %rbx + 0xe9, 0xf7, 0xf6, 0xff, 0xff, //0x0000622c jmp LBB27_43 + //0x00006231 LBB27_117 + 0x4c, 0x01, 0xf3, //0x00006231 addq %r14, %rbx + 0xe9, 0x89, 0xff, 0xff, 0xff, //0x00006234 jmp LBB27_56 + //0x00006239 LBB27_118 + 0x48, 0x8b, 0x4f, 0x08, //0x00006239 movq $8(%rdi), %rcx + 0x48, 0x89, 0x0e, //0x0000623d movq %rcx, (%rsi) + 0xe9, 0xe9, 0xf6, 0xff, 0xff, //0x00006240 jmp LBB27_45 + //0x00006245 LBB27_119 + 0x49, 0x8d, 0x48, 0xff, //0x00006245 leaq $-1(%r8), %rcx + 0x4c, 0x39, 0xf9, //0x00006249 cmpq %r15, %rcx + 0x0f, 0x84, 0xdc, 0xf6, 0xff, 0xff, //0x0000624c je LBB27_45 + 0x4b, 0x8d, 0x5c, 0x17, 0x02, //0x00006252 leaq $2(%r15,%r10), %rbx + 0x4d, 0x29, 0xf8, //0x00006257 subq %r15, %r8 + 0x49, 0x83, 0xc0, 0xfe, //0x0000625a addq $-2, %r8 + 0x4d, 0x89, 0xc7, //0x0000625e movq %r8, %r15 + 0xe9, 0x5c, 0xff, 0xff, 0xff, //0x00006261 jmp LBB27_56 + 0x90, 0x90, //0x00006266 .p2align 2, 0x90 + // // .set L27_0_set_45, LBB27_45-LJTI27_0 + // // .set L27_0_set_47, LBB27_47-LJTI27_0 + // // .set L27_0_set_48, LBB27_48-LJTI27_0 + // // .set L27_0_set_29, LBB27_29-LJTI27_0 + // // .set L27_0_set_57, LBB27_57-LJTI27_0 + // // .set L27_0_set_82, LBB27_82-LJTI27_0 + // // .set L27_0_set_46, LBB27_46-LJTI27_0 + // // .set L27_0_set_84, LBB27_84-LJTI27_0 + //0x00006268 LJTI27_0 + 0xc6, 0xf6, 0xff, 0xff, //0x00006268 .long L27_0_set_45 + 0xeb, 0xf6, 0xff, 0xff, //0x0000626c .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00006270 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00006274 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00006278 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x0000627c .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00006280 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00006284 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00006288 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x0000628c .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00006290 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00006294 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00006298 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x0000629c .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x000062a0 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x000062a4 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x000062a8 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x000062ac .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x000062b0 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x000062b4 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x000062b8 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x000062bc .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x000062c0 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x000062c4 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x000062c8 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x000062cc .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x000062d0 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x000062d4 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x000062d8 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x000062dc .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x000062e0 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x000062e4 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x000062e8 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x000062ec .long L27_0_set_47 + 0xfa, 0xf6, 0xff, 0xff, //0x000062f0 .long L27_0_set_48 + 0xeb, 0xf6, 0xff, 0xff, //0x000062f4 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x000062f8 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x000062fc .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00006300 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00006304 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00006308 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x0000630c .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00006310 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00006314 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00006318 .long L27_0_set_47 + 0xe3, 0xf5, 0xff, 0xff, //0x0000631c .long L27_0_set_29 + 0xeb, 0xf6, 0xff, 0xff, //0x00006320 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00006324 .long L27_0_set_47 + 0xe3, 0xf5, 0xff, 0xff, //0x00006328 .long L27_0_set_29 + 0xe3, 0xf5, 0xff, 0xff, //0x0000632c .long L27_0_set_29 + 0xe3, 0xf5, 0xff, 0xff, //0x00006330 .long L27_0_set_29 + 0xe3, 0xf5, 0xff, 0xff, //0x00006334 .long L27_0_set_29 + 0xe3, 0xf5, 0xff, 0xff, //0x00006338 .long L27_0_set_29 + 0xe3, 0xf5, 0xff, 0xff, //0x0000633c .long L27_0_set_29 + 0xe3, 0xf5, 0xff, 0xff, //0x00006340 .long L27_0_set_29 + 0xe3, 0xf5, 0xff, 0xff, //0x00006344 .long L27_0_set_29 + 0xe3, 0xf5, 0xff, 0xff, //0x00006348 .long L27_0_set_29 + 0xe3, 0xf5, 0xff, 0xff, //0x0000634c .long L27_0_set_29 + 0xeb, 0xf6, 0xff, 0xff, //0x00006350 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00006354 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00006358 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x0000635c .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00006360 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00006364 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00006368 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x0000636c .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00006370 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00006374 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00006378 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x0000637c .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00006380 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00006384 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00006388 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x0000638c .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00006390 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00006394 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00006398 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x0000639c .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x000063a0 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x000063a4 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x000063a8 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x000063ac .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x000063b0 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x000063b4 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x000063b8 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x000063bc .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x000063c0 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x000063c4 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x000063c8 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x000063cc .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x000063d0 .long L27_0_set_47 + 0x0a, 0xf8, 0xff, 0xff, //0x000063d4 .long L27_0_set_57 + 0xeb, 0xf6, 0xff, 0xff, //0x000063d8 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x000063dc .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x000063e0 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x000063e4 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x000063e8 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x000063ec .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x000063f0 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x000063f4 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x000063f8 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x000063fc .long L27_0_set_47 + 0x83, 0xfb, 0xff, 0xff, //0x00006400 .long L27_0_set_82 + 0xeb, 0xf6, 0xff, 0xff, //0x00006404 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00006408 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x0000640c .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00006410 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00006414 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00006418 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x0000641c .long L27_0_set_47 + 0xd8, 0xf6, 0xff, 0xff, //0x00006420 .long L27_0_set_46 + 0xeb, 0xf6, 0xff, 0xff, //0x00006424 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00006428 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x0000642c .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00006430 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00006434 .long L27_0_set_47 + 0xd8, 0xf6, 0xff, 0xff, //0x00006438 .long L27_0_set_46 + 0xeb, 0xf6, 0xff, 0xff, //0x0000643c .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00006440 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00006444 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00006448 .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x0000644c .long L27_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00006450 .long L27_0_set_47 + 0x99, 0xfb, 0xff, 0xff, //0x00006454 .long L27_0_set_84 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00006458 .p2align 4, 0x90 + //0x00006460 _get_by_path + 0x55, //0x00006460 pushq %rbp + 0x48, 0x89, 0xe5, //0x00006461 movq %rsp, %rbp + 0x41, 0x57, //0x00006464 pushq %r15 + 0x41, 0x56, //0x00006466 pushq %r14 + 0x41, 0x55, //0x00006468 pushq %r13 + 0x41, 0x54, //0x0000646a pushq %r12 + 0x53, //0x0000646c pushq %rbx + 0x48, 0x83, 0xec, 0x38, //0x0000646d subq $56, %rsp + 0x49, 0x89, 0xf7, //0x00006471 movq %rsi, %r15 + 0x49, 0x89, 0xfb, //0x00006474 movq %rdi, %r11 + 0x4c, 0x8b, 0x52, 0x08, //0x00006477 movq $8(%rdx), %r10 + 0x4d, 0x85, 0xd2, //0x0000647b testq %r10, %r10 + 0x0f, 0x84, 0x4c, 0x0f, 0x00, 0x00, //0x0000647e je LBB28_244 + 0x48, 0x8b, 0x02, //0x00006484 movq (%rdx), %rax + 0x49, 0xc1, 0xe2, 0x04, //0x00006487 shlq $4, %r10 + 0x48, 0x89, 0x45, 0xb8, //0x0000648b movq %rax, $-72(%rbp) + 0x49, 0x01, 0xc2, //0x0000648f addq %rax, %r10 + 0x4d, 0x8b, 0x0b, //0x00006492 movq (%r11), %r9 + 0x49, 0x8b, 0x17, //0x00006495 movq (%r15), %rdx + 0x49, 0xbc, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00006498 movabsq $4294977024, %r12 + 0x4c, 0x89, 0x5d, 0xc0, //0x000064a2 movq %r11, $-64(%rbp) + 0x48, 0x89, 0x4d, 0xa0, //0x000064a6 movq %rcx, $-96(%rbp) + 0x4c, 0x89, 0x55, 0xa8, //0x000064aa movq %r10, $-88(%rbp) + //0x000064ae LBB28_2 + 0x4d, 0x8b, 0x43, 0x08, //0x000064ae movq $8(%r11), %r8 + 0x48, 0x89, 0xd7, //0x000064b2 movq %rdx, %rdi + 0x4c, 0x29, 0xc7, //0x000064b5 subq %r8, %rdi + 0x0f, 0x83, 0x32, 0x00, 0x00, 0x00, //0x000064b8 jae LBB28_7 + 0x41, 0x8a, 0x04, 0x11, //0x000064be movb (%r9,%rdx), %al + 0x3c, 0x0d, //0x000064c2 cmpb $13, %al + 0x0f, 0x84, 0x26, 0x00, 0x00, 0x00, //0x000064c4 je LBB28_7 + 0x3c, 0x20, //0x000064ca cmpb $32, %al + 0x0f, 0x84, 0x1e, 0x00, 0x00, 0x00, //0x000064cc je LBB28_7 + 0x04, 0xf7, //0x000064d2 addb $-9, %al + 0x3c, 0x01, //0x000064d4 cmpb $1, %al + 0x0f, 0x86, 0x14, 0x00, 0x00, 0x00, //0x000064d6 jbe LBB28_7 + 0x48, 0x89, 0xd6, //0x000064dc movq %rdx, %rsi + 0xe9, 0xfe, 0x00, 0x00, 0x00, //0x000064df jmp LBB28_28 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000064e4 .p2align 4, 0x90 + //0x000064f0 LBB28_7 + 0x48, 0x8d, 0x72, 0x01, //0x000064f0 leaq $1(%rdx), %rsi + 0x4c, 0x39, 0xc6, //0x000064f4 cmpq %r8, %rsi + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x000064f7 jae LBB28_11 + 0x41, 0x8a, 0x04, 0x31, //0x000064fd movb (%r9,%rsi), %al + 0x3c, 0x0d, //0x00006501 cmpb $13, %al + 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x00006503 je LBB28_11 + 0x3c, 0x20, //0x00006509 cmpb $32, %al + 0x0f, 0x84, 0x0f, 0x00, 0x00, 0x00, //0x0000650b je LBB28_11 + 0x04, 0xf7, //0x00006511 addb $-9, %al + 0x3c, 0x01, //0x00006513 cmpb $1, %al + 0x0f, 0x87, 0xc7, 0x00, 0x00, 0x00, //0x00006515 ja LBB28_28 + 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000651b .p2align 4, 0x90 + //0x00006520 LBB28_11 + 0x48, 0x8d, 0x72, 0x02, //0x00006520 leaq $2(%rdx), %rsi + 0x4c, 0x39, 0xc6, //0x00006524 cmpq %r8, %rsi + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00006527 jae LBB28_15 + 0x41, 0x8a, 0x04, 0x31, //0x0000652d movb (%r9,%rsi), %al + 0x3c, 0x0d, //0x00006531 cmpb $13, %al + 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x00006533 je LBB28_15 + 0x3c, 0x20, //0x00006539 cmpb $32, %al + 0x0f, 0x84, 0x0f, 0x00, 0x00, 0x00, //0x0000653b je LBB28_15 + 0x04, 0xf7, //0x00006541 addb $-9, %al + 0x3c, 0x01, //0x00006543 cmpb $1, %al + 0x0f, 0x87, 0x97, 0x00, 0x00, 0x00, //0x00006545 ja LBB28_28 + 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000654b .p2align 4, 0x90 + //0x00006550 LBB28_15 + 0x48, 0x8d, 0x72, 0x03, //0x00006550 leaq $3(%rdx), %rsi + 0x4c, 0x39, 0xc6, //0x00006554 cmpq %r8, %rsi + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00006557 jae LBB28_19 + 0x41, 0x8a, 0x04, 0x31, //0x0000655d movb (%r9,%rsi), %al + 0x3c, 0x0d, //0x00006561 cmpb $13, %al + 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x00006563 je LBB28_19 + 0x3c, 0x20, //0x00006569 cmpb $32, %al + 0x0f, 0x84, 0x0f, 0x00, 0x00, 0x00, //0x0000656b je LBB28_19 + 0x04, 0xf7, //0x00006571 addb $-9, %al + 0x3c, 0x01, //0x00006573 cmpb $1, %al + 0x0f, 0x87, 0x67, 0x00, 0x00, 0x00, //0x00006575 ja LBB28_28 + 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000657b .p2align 4, 0x90 + //0x00006580 LBB28_19 + 0x48, 0x8d, 0x42, 0x04, //0x00006580 leaq $4(%rdx), %rax + 0x49, 0x39, 0xc0, //0x00006584 cmpq %rax, %r8 + 0x0f, 0x86, 0x83, 0x00, 0x00, 0x00, //0x00006587 jbe LBB28_25 + 0x49, 0x39, 0xc0, //0x0000658d cmpq %rax, %r8 + 0x0f, 0x84, 0x94, 0x00, 0x00, 0x00, //0x00006590 je LBB28_26 + 0x4b, 0x8d, 0x04, 0x01, //0x00006596 leaq (%r9,%r8), %rax + 0x48, 0x83, 0xc7, 0x04, //0x0000659a addq $4, %rdi + 0x49, 0x8d, 0x74, 0x11, 0x05, //0x0000659e leaq $5(%r9,%rdx), %rsi + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000065a3 .p2align 4, 0x90 + //0x000065b0 LBB28_22 + 0x0f, 0xbe, 0x5e, 0xff, //0x000065b0 movsbl $-1(%rsi), %ebx + 0x83, 0xfb, 0x20, //0x000065b4 cmpl $32, %ebx + 0x0f, 0x87, 0xfd, 0x0b, 0x00, 0x00, //0x000065b7 ja LBB28_29 + 0x49, 0x0f, 0xa3, 0xdc, //0x000065bd btq %rbx, %r12 + 0x0f, 0x83, 0xf3, 0x0b, 0x00, 0x00, //0x000065c1 jae LBB28_29 + 0x48, 0xff, 0xc6, //0x000065c7 incq %rsi + 0x48, 0xff, 0xc7, //0x000065ca incq %rdi + 0x0f, 0x85, 0xdd, 0xff, 0xff, 0xff, //0x000065cd jne LBB28_22 + 0x4c, 0x29, 0xc8, //0x000065d3 subq %r9, %rax + 0x48, 0x89, 0xc6, //0x000065d6 movq %rax, %rsi + 0x4c, 0x39, 0xc6, //0x000065d9 cmpq %r8, %rsi + 0x0f, 0x83, 0x5a, 0x00, 0x00, 0x00, //0x000065dc jae LBB28_30 + //0x000065e2 LBB28_28 + 0x48, 0x8d, 0x46, 0x01, //0x000065e2 leaq $1(%rsi), %rax + 0x49, 0x89, 0x07, //0x000065e6 movq %rax, (%r15) + 0x41, 0x8a, 0x34, 0x31, //0x000065e9 movb (%r9,%rsi), %sil + 0x48, 0x8b, 0x55, 0xb8, //0x000065ed movq $-72(%rbp), %rdx + 0x48, 0x8b, 0x12, //0x000065f1 movq (%rdx), %rdx + 0x48, 0x85, 0xd2, //0x000065f4 testq %rdx, %rdx + 0x0f, 0x85, 0x63, 0x00, 0x00, 0x00, //0x000065f7 jne LBB28_31 + 0xe9, 0x29, 0x0e, 0x00, 0x00, //0x000065fd jmp LBB28_251 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00006602 .p2align 4, 0x90 + //0x00006610 LBB28_25 + 0x49, 0x89, 0x07, //0x00006610 movq %rax, (%r15) + 0x31, 0xf6, //0x00006613 xorl %esi, %esi + 0x48, 0x8b, 0x55, 0xb8, //0x00006615 movq $-72(%rbp), %rdx + 0x48, 0x8b, 0x12, //0x00006619 movq (%rdx), %rdx + 0x48, 0x85, 0xd2, //0x0000661c testq %rdx, %rdx + 0x0f, 0x85, 0x3b, 0x00, 0x00, 0x00, //0x0000661f jne LBB28_31 + 0xe9, 0x01, 0x0e, 0x00, 0x00, //0x00006625 jmp LBB28_251 + //0x0000662a LBB28_26 + 0x4c, 0x01, 0xc8, //0x0000662a addq %r9, %rax + 0x4c, 0x29, 0xc8, //0x0000662d subq %r9, %rax + 0x48, 0x89, 0xc6, //0x00006630 movq %rax, %rsi + 0x4c, 0x39, 0xc6, //0x00006633 cmpq %r8, %rsi + 0x0f, 0x82, 0xa6, 0xff, 0xff, 0xff, //0x00006636 jb LBB28_28 + //0x0000663c LBB28_30 + 0x31, 0xf6, //0x0000663c xorl %esi, %esi + 0x48, 0x89, 0xd0, //0x0000663e movq %rdx, %rax + 0x48, 0x8b, 0x55, 0xb8, //0x00006641 movq $-72(%rbp), %rdx + 0x48, 0x8b, 0x12, //0x00006645 movq (%rdx), %rdx + 0x48, 0x85, 0xd2, //0x00006648 testq %rdx, %rdx + 0x0f, 0x84, 0xda, 0x0d, 0x00, 0x00, //0x0000664b je LBB28_251 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00006651 .p2align 4, 0x90 + //0x00006660 LBB28_31 + 0x8a, 0x52, 0x17, //0x00006660 movb $23(%rdx), %dl + 0x80, 0xe2, 0x1f, //0x00006663 andb $31, %dl + 0x80, 0xfa, 0x02, //0x00006666 cmpb $2, %dl + 0x0f, 0x84, 0x21, 0x00, 0x00, 0x00, //0x00006669 je LBB28_184 + 0x80, 0xfa, 0x18, //0x0000666f cmpb $24, %dl + 0x0f, 0x85, 0xb3, 0x0d, 0x00, 0x00, //0x00006672 jne LBB28_251 + 0x40, 0x80, 0xfe, 0x7b, //0x00006678 cmpb $123, %sil + 0x4c, 0x89, 0x7d, 0xd0, //0x0000667c movq %r15, $-48(%rbp) + 0x0f, 0x84, 0x78, 0x01, 0x00, 0x00, //0x00006680 je LBB28_34 + 0xe9, 0x71, 0x0d, 0x00, 0x00, //0x00006686 jmp LBB28_247 + 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000668b .p2align 4, 0x90 + //0x00006690 LBB28_184 + 0x40, 0x80, 0xfe, 0x5b, //0x00006690 cmpb $91, %sil + 0x0f, 0x85, 0x62, 0x0d, 0x00, 0x00, //0x00006694 jne LBB28_247 + 0x48, 0x8b, 0x55, 0xb8, //0x0000669a movq $-72(%rbp), %rdx + 0x48, 0x8b, 0x52, 0x08, //0x0000669e movq $8(%rdx), %rdx + 0x4c, 0x8b, 0x32, //0x000066a2 movq (%rdx), %r14 + 0x4d, 0x85, 0xf6, //0x000066a5 testq %r14, %r14 + 0x0f, 0x88, 0x7d, 0x0d, 0x00, 0x00, //0x000066a8 js LBB28_251 + 0x4d, 0x8b, 0x43, 0x08, //0x000066ae movq $8(%r11), %r8 + 0x48, 0x89, 0xc6, //0x000066b2 movq %rax, %rsi + 0x4c, 0x29, 0xc6, //0x000066b5 subq %r8, %rsi + 0x0f, 0x83, 0x32, 0x00, 0x00, 0x00, //0x000066b8 jae LBB28_191 + 0x41, 0x8a, 0x14, 0x01, //0x000066be movb (%r9,%rax), %dl + 0x80, 0xfa, 0x0d, //0x000066c2 cmpb $13, %dl + 0x0f, 0x84, 0x25, 0x00, 0x00, 0x00, //0x000066c5 je LBB28_191 + 0x80, 0xfa, 0x20, //0x000066cb cmpb $32, %dl + 0x0f, 0x84, 0x1c, 0x00, 0x00, 0x00, //0x000066ce je LBB28_191 + 0x80, 0xc2, 0xf7, //0x000066d4 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x000066d7 cmpb $1, %dl + 0x0f, 0x86, 0x10, 0x00, 0x00, 0x00, //0x000066da jbe LBB28_191 + 0x48, 0x89, 0xc7, //0x000066e0 movq %rax, %rdi + 0xe9, 0x12, 0x0b, 0x00, 0x00, //0x000066e3 jmp LBB28_213 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000066e8 .p2align 4, 0x90 + //0x000066f0 LBB28_191 + 0x48, 0x8d, 0x78, 0x01, //0x000066f0 leaq $1(%rax), %rdi + 0x4c, 0x39, 0xc7, //0x000066f4 cmpq %r8, %rdi + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x000066f7 jae LBB28_195 + 0x41, 0x8a, 0x14, 0x39, //0x000066fd movb (%r9,%rdi), %dl + 0x80, 0xfa, 0x0d, //0x00006701 cmpb $13, %dl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00006704 je LBB28_195 + 0x80, 0xfa, 0x20, //0x0000670a cmpb $32, %dl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x0000670d je LBB28_195 + 0x80, 0xc2, 0xf7, //0x00006713 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x00006716 cmpb $1, %dl + 0x0f, 0x87, 0xdb, 0x0a, 0x00, 0x00, //0x00006719 ja LBB28_213 + 0x90, //0x0000671f .p2align 4, 0x90 + //0x00006720 LBB28_195 + 0x48, 0x8d, 0x78, 0x02, //0x00006720 leaq $2(%rax), %rdi + 0x4c, 0x39, 0xc7, //0x00006724 cmpq %r8, %rdi + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00006727 jae LBB28_199 + 0x41, 0x8a, 0x14, 0x39, //0x0000672d movb (%r9,%rdi), %dl + 0x80, 0xfa, 0x0d, //0x00006731 cmpb $13, %dl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00006734 je LBB28_199 + 0x80, 0xfa, 0x20, //0x0000673a cmpb $32, %dl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x0000673d je LBB28_199 + 0x80, 0xc2, 0xf7, //0x00006743 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x00006746 cmpb $1, %dl + 0x0f, 0x87, 0xab, 0x0a, 0x00, 0x00, //0x00006749 ja LBB28_213 + 0x90, //0x0000674f .p2align 4, 0x90 + //0x00006750 LBB28_199 + 0x48, 0x8d, 0x78, 0x03, //0x00006750 leaq $3(%rax), %rdi + 0x4c, 0x39, 0xc7, //0x00006754 cmpq %r8, %rdi + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00006757 jae LBB28_203 + 0x41, 0x8a, 0x14, 0x39, //0x0000675d movb (%r9,%rdi), %dl + 0x80, 0xfa, 0x0d, //0x00006761 cmpb $13, %dl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00006764 je LBB28_203 + 0x80, 0xfa, 0x20, //0x0000676a cmpb $32, %dl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x0000676d je LBB28_203 + 0x80, 0xc2, 0xf7, //0x00006773 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x00006776 cmpb $1, %dl + 0x0f, 0x87, 0x7b, 0x0a, 0x00, 0x00, //0x00006779 ja LBB28_213 + 0x90, //0x0000677f .p2align 4, 0x90 + //0x00006780 LBB28_203 + 0x48, 0x8d, 0x50, 0x04, //0x00006780 leaq $4(%rax), %rdx + 0x49, 0x39, 0xd0, //0x00006784 cmpq %rdx, %r8 + 0x0f, 0x86, 0x22, 0x0a, 0x00, 0x00, //0x00006787 jbe LBB28_209 + 0x49, 0x39, 0xd0, //0x0000678d cmpq %rdx, %r8 + 0x0f, 0x84, 0x3b, 0x0a, 0x00, 0x00, //0x00006790 je LBB28_210 + 0x4b, 0x8d, 0x14, 0x01, //0x00006796 leaq (%r9,%r8), %rdx + 0x48, 0x83, 0xc6, 0x04, //0x0000679a addq $4, %rsi + 0x49, 0x8d, 0x7c, 0x01, 0x05, //0x0000679e leaq $5(%r9,%rax), %rdi + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000067a3 .p2align 4, 0x90 + //0x000067b0 LBB28_206 + 0x0f, 0xbe, 0x4f, 0xff, //0x000067b0 movsbl $-1(%rdi), %ecx + 0x83, 0xf9, 0x20, //0x000067b4 cmpl $32, %ecx + 0x0f, 0x87, 0x2b, 0x0a, 0x00, 0x00, //0x000067b7 ja LBB28_212 + 0x49, 0x0f, 0xa3, 0xcc, //0x000067bd btq %rcx, %r12 + 0x0f, 0x83, 0x21, 0x0a, 0x00, 0x00, //0x000067c1 jae LBB28_212 + 0x48, 0xff, 0xc7, //0x000067c7 incq %rdi + 0x48, 0xff, 0xc6, //0x000067ca incq %rsi + 0x0f, 0x85, 0xdd, 0xff, 0xff, 0xff, //0x000067cd jne LBB28_206 + 0xe9, 0xfc, 0x09, 0x00, 0x00, //0x000067d3 jmp LBB28_211 + //0x000067d8 LBB28_180 + 0x4c, 0x89, 0xca, //0x000067d8 movq %r9, %rdx + 0x48, 0xf7, 0xd2, //0x000067db notq %rdx + 0x48, 0x01, 0xd7, //0x000067de addq %rdx, %rdi + 0x48, 0x39, 0xcf, //0x000067e1 cmpq %rcx, %rdi + 0x0f, 0x83, 0x12, 0x0c, 0x00, 0x00, //0x000067e4 jae LBB28_247 + //0x000067ea LBB28_181 + 0x48, 0x8d, 0x47, 0x01, //0x000067ea leaq $1(%rdi), %rax + 0x49, 0x89, 0x07, //0x000067ee movq %rax, (%r15) + 0x41, 0x8a, 0x0c, 0x39, //0x000067f1 movb (%r9,%rdi), %cl + 0x80, 0xf9, 0x2c, //0x000067f5 cmpb $44, %cl + 0x0f, 0x85, 0x42, 0x0c, 0x00, 0x00, //0x000067f8 jne LBB28_253 + //0x000067fe LBB28_34 + 0x49, 0x8b, 0x4b, 0x08, //0x000067fe movq $8(%r11), %rcx + 0x48, 0x89, 0xc6, //0x00006802 movq %rax, %rsi + 0x48, 0x29, 0xce, //0x00006805 subq %rcx, %rsi + 0x0f, 0x83, 0x32, 0x00, 0x00, 0x00, //0x00006808 jae LBB28_39 + 0x41, 0x8a, 0x14, 0x01, //0x0000680e movb (%r9,%rax), %dl + 0x80, 0xfa, 0x0d, //0x00006812 cmpb $13, %dl + 0x0f, 0x84, 0x25, 0x00, 0x00, 0x00, //0x00006815 je LBB28_39 + 0x80, 0xfa, 0x20, //0x0000681b cmpb $32, %dl + 0x0f, 0x84, 0x1c, 0x00, 0x00, 0x00, //0x0000681e je LBB28_39 + 0x80, 0xc2, 0xf7, //0x00006824 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x00006827 cmpb $1, %dl + 0x0f, 0x86, 0x10, 0x00, 0x00, 0x00, //0x0000682a jbe LBB28_39 + 0x49, 0x89, 0xc5, //0x00006830 movq %rax, %r13 + 0xe9, 0x2a, 0x01, 0x00, 0x00, //0x00006833 jmp LBB28_60 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00006838 .p2align 4, 0x90 + //0x00006840 LBB28_39 + 0x4c, 0x8d, 0x68, 0x01, //0x00006840 leaq $1(%rax), %r13 + 0x49, 0x39, 0xcd, //0x00006844 cmpq %rcx, %r13 + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00006847 jae LBB28_43 + 0x43, 0x8a, 0x14, 0x29, //0x0000684d movb (%r9,%r13), %dl + 0x80, 0xfa, 0x0d, //0x00006851 cmpb $13, %dl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00006854 je LBB28_43 + 0x80, 0xfa, 0x20, //0x0000685a cmpb $32, %dl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x0000685d je LBB28_43 + 0x80, 0xc2, 0xf7, //0x00006863 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x00006866 cmpb $1, %dl + 0x0f, 0x87, 0xf3, 0x00, 0x00, 0x00, //0x00006869 ja LBB28_60 + 0x90, //0x0000686f .p2align 4, 0x90 + //0x00006870 LBB28_43 + 0x4c, 0x8d, 0x68, 0x02, //0x00006870 leaq $2(%rax), %r13 + 0x49, 0x39, 0xcd, //0x00006874 cmpq %rcx, %r13 + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00006877 jae LBB28_47 + 0x43, 0x8a, 0x14, 0x29, //0x0000687d movb (%r9,%r13), %dl + 0x80, 0xfa, 0x0d, //0x00006881 cmpb $13, %dl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00006884 je LBB28_47 + 0x80, 0xfa, 0x20, //0x0000688a cmpb $32, %dl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x0000688d je LBB28_47 + 0x80, 0xc2, 0xf7, //0x00006893 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x00006896 cmpb $1, %dl + 0x0f, 0x87, 0xc3, 0x00, 0x00, 0x00, //0x00006899 ja LBB28_60 + 0x90, //0x0000689f .p2align 4, 0x90 + //0x000068a0 LBB28_47 + 0x4c, 0x8d, 0x68, 0x03, //0x000068a0 leaq $3(%rax), %r13 + 0x49, 0x39, 0xcd, //0x000068a4 cmpq %rcx, %r13 + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x000068a7 jae LBB28_51 + 0x43, 0x8a, 0x14, 0x29, //0x000068ad movb (%r9,%r13), %dl + 0x80, 0xfa, 0x0d, //0x000068b1 cmpb $13, %dl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x000068b4 je LBB28_51 + 0x80, 0xfa, 0x20, //0x000068ba cmpb $32, %dl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x000068bd je LBB28_51 + 0x80, 0xc2, 0xf7, //0x000068c3 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x000068c6 cmpb $1, %dl + 0x0f, 0x87, 0x93, 0x00, 0x00, 0x00, //0x000068c9 ja LBB28_60 + 0x90, //0x000068cf .p2align 4, 0x90 + //0x000068d0 LBB28_51 + 0x48, 0x8d, 0x50, 0x04, //0x000068d0 leaq $4(%rax), %rdx + 0x48, 0x39, 0xd1, //0x000068d4 cmpq %rdx, %rcx + 0x0f, 0x86, 0x19, 0x0b, 0x00, 0x00, //0x000068d7 jbe LBB28_245 + 0x48, 0x39, 0xd1, //0x000068dd cmpq %rdx, %rcx + 0x0f, 0x84, 0x4a, 0x00, 0x00, 0x00, //0x000068e0 je LBB28_57 + 0x49, 0x8d, 0x14, 0x09, //0x000068e6 leaq (%r9,%rcx), %rdx + 0x48, 0x83, 0xc6, 0x04, //0x000068ea addq $4, %rsi + 0x4d, 0x8d, 0x6c, 0x01, 0x05, //0x000068ee leaq $5(%r9,%rax), %r13 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000068f3 .p2align 4, 0x90 + //0x00006900 LBB28_54 + 0x41, 0x0f, 0xbe, 0x7d, 0xff, //0x00006900 movsbl $-1(%r13), %edi + 0x83, 0xff, 0x20, //0x00006905 cmpl $32, %edi + 0x0f, 0x87, 0x42, 0x00, 0x00, 0x00, //0x00006908 ja LBB28_59 + 0x49, 0x0f, 0xa3, 0xfc, //0x0000690e btq %rdi, %r12 + 0x0f, 0x83, 0x38, 0x00, 0x00, 0x00, //0x00006912 jae LBB28_59 + 0x49, 0xff, 0xc5, //0x00006918 incq %r13 + 0x48, 0xff, 0xc6, //0x0000691b incq %rsi + 0x0f, 0x85, 0xdc, 0xff, 0xff, 0xff, //0x0000691e jne LBB28_54 + 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x00006924 jmp LBB28_58 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00006929 .p2align 4, 0x90 + //0x00006930 LBB28_57 + 0x4c, 0x01, 0xca, //0x00006930 addq %r9, %rdx + //0x00006933 LBB28_58 + 0x4c, 0x29, 0xca, //0x00006933 subq %r9, %rdx + 0x49, 0x89, 0xd5, //0x00006936 movq %rdx, %r13 + 0x49, 0x39, 0xcd, //0x00006939 cmpq %rcx, %r13 + 0x0f, 0x82, 0x20, 0x00, 0x00, 0x00, //0x0000693c jb LBB28_60 + 0xe9, 0xb5, 0x0a, 0x00, 0x00, //0x00006942 jmp LBB28_247 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00006947 .p2align 4, 0x90 + //0x00006950 LBB28_59 + 0x4c, 0x89, 0xca, //0x00006950 movq %r9, %rdx + 0x48, 0xf7, 0xd2, //0x00006953 notq %rdx + 0x49, 0x01, 0xd5, //0x00006956 addq %rdx, %r13 + 0x49, 0x39, 0xcd, //0x00006959 cmpq %rcx, %r13 + 0x0f, 0x83, 0x9a, 0x0a, 0x00, 0x00, //0x0000695c jae LBB28_247 + //0x00006962 LBB28_60 + 0x49, 0x8d, 0x5d, 0x01, //0x00006962 leaq $1(%r13), %rbx + 0x49, 0x89, 0x1f, //0x00006966 movq %rbx, (%r15) + 0x43, 0x8a, 0x0c, 0x29, //0x00006969 movb (%r9,%r13), %cl + 0x80, 0xf9, 0x22, //0x0000696d cmpb $34, %cl + 0x0f, 0x85, 0xc7, 0x0a, 0x00, 0x00, //0x00006970 jne LBB28_252 + 0x48, 0x8b, 0x45, 0xb8, //0x00006976 movq $-72(%rbp), %rax + 0x48, 0x8b, 0x40, 0x08, //0x0000697a movq $8(%rax), %rax + 0x4c, 0x8b, 0x30, //0x0000697e movq (%rax), %r14 + 0x4c, 0x8b, 0x78, 0x08, //0x00006981 movq $8(%rax), %r15 + 0x48, 0xc7, 0x45, 0xb0, 0xff, 0xff, 0xff, 0xff, //0x00006985 movq $-1, $-80(%rbp) + 0x4c, 0x89, 0xdf, //0x0000698d movq %r11, %rdi + 0x48, 0x89, 0xde, //0x00006990 movq %rbx, %rsi + 0x48, 0x8d, 0x55, 0xb0, //0x00006993 leaq $-80(%rbp), %rdx + 0xe8, 0xe4, 0x25, 0x00, 0x00, //0x00006997 callq _advance_string_default + 0x48, 0x85, 0xc0, //0x0000699c testq %rax, %rax + 0x0f, 0x88, 0xb6, 0x0a, 0x00, 0x00, //0x0000699f js LBB28_255 + 0x48, 0x8b, 0x4d, 0xd0, //0x000069a5 movq $-48(%rbp), %rcx + 0x48, 0x89, 0x01, //0x000069a9 movq %rax, (%rcx) + 0x48, 0x8b, 0x4d, 0xb0, //0x000069ac movq $-80(%rbp), %rcx + 0x48, 0x83, 0xf9, 0xff, //0x000069b0 cmpq $-1, %rcx + 0x0f, 0x84, 0x09, 0x00, 0x00, 0x00, //0x000069b4 je LBB28_64 + 0x48, 0x39, 0xc1, //0x000069ba cmpq %rax, %rcx + 0x0f, 0x8e, 0x61, 0x01, 0x00, 0x00, //0x000069bd jle LBB28_87 + //0x000069c3 LBB28_64 + 0x48, 0x89, 0xc2, //0x000069c3 movq %rax, %rdx + 0x4c, 0x29, 0xea, //0x000069c6 subq %r13, %rdx + 0x48, 0x83, 0xc2, 0xfe, //0x000069c9 addq $-2, %rdx + 0x41, 0xba, 0x01, 0x00, 0x00, 0x00, //0x000069cd movl $1, %r10d + 0x48, 0x89, 0xd1, //0x000069d3 movq %rdx, %rcx + 0x4c, 0x09, 0xf9, //0x000069d6 orq %r15, %rcx + 0x4c, 0x8b, 0x5d, 0xc0, //0x000069d9 movq $-64(%rbp), %r11 + 0x0f, 0x84, 0x00, 0x01, 0x00, 0x00, //0x000069dd je LBB28_82 + 0x4c, 0x39, 0xfa, //0x000069e3 cmpq %r15, %rdx + 0x0f, 0x85, 0xf4, 0x00, 0x00, 0x00, //0x000069e6 jne LBB28_81 + 0x49, 0x03, 0x1b, //0x000069ec addq (%r11), %rbx + 0x49, 0x83, 0xff, 0x10, //0x000069ef cmpq $16, %r15 + 0x0f, 0x82, 0x5b, 0x00, 0x00, 0x00, //0x000069f3 jb LBB28_71 + 0x49, 0x8d, 0x57, 0xf0, //0x000069f9 leaq $-16(%r15), %rdx + 0x48, 0x89, 0xd1, //0x000069fd movq %rdx, %rcx + 0x48, 0x83, 0xe1, 0xf0, //0x00006a00 andq $-16, %rcx + 0x4c, 0x8d, 0x44, 0x0b, 0x10, //0x00006a04 leaq $16(%rbx,%rcx), %r8 + 0x49, 0x8d, 0x7c, 0x0e, 0x10, //0x00006a09 leaq $16(%r14,%rcx), %rdi + 0x83, 0xe2, 0x0f, //0x00006a0e andl $15, %edx + 0x31, 0xf6, //0x00006a11 xorl %esi, %esi + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00006a13 .p2align 4, 0x90 + //0x00006a20 LBB28_68 + 0xc5, 0xfa, 0x6f, 0x04, 0x33, //0x00006a20 vmovdqu (%rbx,%rsi), %xmm0 + 0xc4, 0xc1, 0x79, 0x74, 0x04, 0x36, //0x00006a25 vpcmpeqb (%r14,%rsi), %xmm0, %xmm0 + 0xc5, 0xf9, 0xd7, 0xc8, //0x00006a2b vpmovmskb %xmm0, %ecx + 0x66, 0x83, 0xf9, 0xff, //0x00006a2f cmpw $-1, %cx + 0x0f, 0x85, 0xa7, 0x00, 0x00, 0x00, //0x00006a33 jne LBB28_81 + 0x49, 0x83, 0xc7, 0xf0, //0x00006a39 addq $-16, %r15 + 0x48, 0x83, 0xc6, 0x10, //0x00006a3d addq $16, %rsi + 0x49, 0x83, 0xff, 0x0f, //0x00006a41 cmpq $15, %r15 + 0x0f, 0x87, 0xd5, 0xff, 0xff, 0xff, //0x00006a45 ja LBB28_68 + 0x49, 0x89, 0xd7, //0x00006a4b movq %rdx, %r15 + 0x49, 0x89, 0xfe, //0x00006a4e movq %rdi, %r14 + 0x4c, 0x89, 0xc3, //0x00006a51 movq %r8, %rbx + //0x00006a54 LBB28_71 + 0x44, 0x89, 0xf1, //0x00006a54 movl %r14d, %ecx + 0x81, 0xe1, 0xff, 0x0f, 0x00, 0x00, //0x00006a57 andl $4095, %ecx + 0x81, 0xf9, 0xf0, 0x0f, 0x00, 0x00, //0x00006a5d cmpl $4080, %ecx + 0x0f, 0x87, 0x43, 0x00, 0x00, 0x00, //0x00006a63 ja LBB28_76 + 0x89, 0xd9, //0x00006a69 movl %ebx, %ecx + 0x81, 0xe1, 0xff, 0x0f, 0x00, 0x00, //0x00006a6b andl $4095, %ecx + 0x81, 0xf9, 0xf1, 0x0f, 0x00, 0x00, //0x00006a71 cmpl $4081, %ecx + 0x0f, 0x83, 0x2f, 0x00, 0x00, 0x00, //0x00006a77 jae LBB28_76 + 0xc5, 0xfa, 0x6f, 0x03, //0x00006a7d vmovdqu (%rbx), %xmm0 + 0xc4, 0xc1, 0x79, 0x74, 0x06, //0x00006a81 vpcmpeqb (%r14), %xmm0, %xmm0 + 0xc5, 0xf9, 0xd7, 0xd0, //0x00006a86 vpmovmskb %xmm0, %edx + 0x66, 0x83, 0xfa, 0xff, //0x00006a8a cmpw $-1, %dx + 0x0f, 0x84, 0x4f, 0x00, 0x00, 0x00, //0x00006a8e je LBB28_82 + 0xf7, 0xd2, //0x00006a94 notl %edx + 0x0f, 0xb7, 0xca, //0x00006a96 movzwl %dx, %ecx + 0x48, 0x0f, 0xbc, 0xc9, //0x00006a99 bsfq %rcx, %rcx + 0x45, 0x31, 0xd2, //0x00006a9d xorl %r10d, %r10d + 0x4c, 0x39, 0xf9, //0x00006aa0 cmpq %r15, %rcx + 0x41, 0x0f, 0x93, 0xc2, //0x00006aa3 setae %r10b + 0xe9, 0x37, 0x00, 0x00, 0x00, //0x00006aa7 jmp LBB28_82 + //0x00006aac LBB28_76 + 0x4d, 0x85, 0xff, //0x00006aac testq %r15, %r15 + 0x0f, 0x84, 0x2e, 0x00, 0x00, 0x00, //0x00006aaf je LBB28_82 + 0x31, 0xd2, //0x00006ab5 xorl %edx, %edx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00006ab7 .p2align 4, 0x90 + //0x00006ac0 LBB28_78 + 0x0f, 0xb6, 0x0c, 0x13, //0x00006ac0 movzbl (%rbx,%rdx), %ecx + 0x41, 0x3a, 0x0c, 0x16, //0x00006ac4 cmpb (%r14,%rdx), %cl + 0x0f, 0x85, 0x12, 0x00, 0x00, 0x00, //0x00006ac8 jne LBB28_81 + 0x48, 0xff, 0xc2, //0x00006ace incq %rdx + 0x49, 0x39, 0xd7, //0x00006ad1 cmpq %rdx, %r15 + 0x0f, 0x85, 0xe6, 0xff, 0xff, 0xff, //0x00006ad4 jne LBB28_78 + 0xe9, 0x04, 0x00, 0x00, 0x00, //0x00006ada jmp LBB28_82 + 0x90, //0x00006adf .p2align 4, 0x90 + //0x00006ae0 LBB28_81 + 0x45, 0x31, 0xd2, //0x00006ae0 xorl %r10d, %r10d + //0x00006ae3 LBB28_82 + 0x4d, 0x8b, 0x0b, //0x00006ae3 movq (%r11), %r9 + 0x4c, 0x8b, 0x7d, 0xd0, //0x00006ae6 movq $-48(%rbp), %r15 + 0x49, 0x8b, 0x73, 0x08, //0x00006aea movq $8(%r11), %rsi + 0x48, 0x89, 0xc7, //0x00006aee movq %rax, %rdi + 0x48, 0x29, 0xf7, //0x00006af1 subq %rsi, %rdi + 0x0f, 0x83, 0x16, 0x04, 0x00, 0x00, //0x00006af4 jae LBB28_132 + //0x00006afa LBB28_83 + 0x41, 0x8a, 0x14, 0x01, //0x00006afa movb (%r9,%rax), %dl + 0x80, 0xfa, 0x0d, //0x00006afe cmpb $13, %dl + 0x0f, 0x84, 0x09, 0x04, 0x00, 0x00, //0x00006b01 je LBB28_132 + 0x80, 0xfa, 0x20, //0x00006b07 cmpb $32, %dl + 0x0f, 0x84, 0x00, 0x04, 0x00, 0x00, //0x00006b0a je LBB28_132 + 0x80, 0xc2, 0xf7, //0x00006b10 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x00006b13 cmpb $1, %dl + 0x0f, 0x86, 0xf4, 0x03, 0x00, 0x00, //0x00006b16 jbe LBB28_132 + 0x48, 0x89, 0xc3, //0x00006b1c movq %rax, %rbx + 0xe9, 0x0e, 0x05, 0x00, 0x00, //0x00006b1f jmp LBB28_153 + //0x00006b24 LBB28_87 + 0x48, 0xc7, 0x45, 0xc8, 0x00, 0x00, 0x00, 0x00, //0x00006b24 movq $0, $-56(%rbp) + 0x48, 0x8b, 0x4d, 0xc0, //0x00006b2c movq $-64(%rbp), %rcx + 0x4c, 0x8b, 0x09, //0x00006b30 movq (%rcx), %r9 + 0x4c, 0x01, 0xcb, //0x00006b33 addq %r9, %rbx + 0x4d, 0x8d, 0x44, 0x01, 0xff, //0x00006b36 leaq $-1(%r9,%rax), %r8 + 0x4f, 0x8d, 0x1c, 0x3e, //0x00006b3b leaq (%r14,%r15), %r11 + 0x4d, 0x85, 0xff, //0x00006b3f testq %r15, %r15 + 0x0f, 0x8e, 0xa0, 0x03, 0x00, 0x00, //0x00006b42 jle LBB28_129 + 0x49, 0x39, 0xd8, //0x00006b48 cmpq %rbx, %r8 + 0x4c, 0x8b, 0x7d, 0xd0, //0x00006b4b movq $-48(%rbp), %r15 + 0x0f, 0x86, 0x97, 0x03, 0x00, 0x00, //0x00006b4f jbe LBB28_130 + //0x00006b55 LBB28_89 + 0x8a, 0x0b, //0x00006b55 movb (%rbx), %cl + 0x80, 0xf9, 0x5c, //0x00006b57 cmpb $92, %cl + 0x0f, 0x85, 0x58, 0x00, 0x00, 0x00, //0x00006b5a jne LBB28_94 + 0x4c, 0x89, 0xc2, //0x00006b60 movq %r8, %rdx + 0x48, 0x29, 0xda, //0x00006b63 subq %rbx, %rdx + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00006b66 movq $-1, %rcx + 0x48, 0x85, 0xd2, //0x00006b6d testq %rdx, %rdx + 0x0f, 0x8e, 0x22, 0x09, 0x00, 0x00, //0x00006b70 jle LBB28_259 + 0x0f, 0xb6, 0x73, 0x01, //0x00006b76 movzbl $1(%rbx), %esi + 0x48, 0x8d, 0x3d, 0x5f, 0x9c, 0x00, 0x00, //0x00006b7a leaq $40031(%rip), %rdi /* __UnquoteTab+0(%rip) */ + 0x44, 0x8a, 0x3c, 0x3e, //0x00006b81 movb (%rsi,%rdi), %r15b + 0x41, 0x80, 0xff, 0xff, //0x00006b85 cmpb $-1, %r15b + 0x0f, 0x84, 0x3d, 0x00, 0x00, 0x00, //0x00006b89 je LBB28_96 + 0x45, 0x84, 0xff, //0x00006b8f testb %r15b, %r15b + 0x0f, 0x84, 0xee, 0x08, 0x00, 0x00, //0x00006b92 je LBB28_257 + 0x44, 0x88, 0x7d, 0xc8, //0x00006b98 movb %r15b, $-56(%rbp) + 0x48, 0x83, 0xc3, 0x02, //0x00006b9c addq $2, %rbx + 0xba, 0x01, 0x00, 0x00, 0x00, //0x00006ba0 movl $1, %edx + 0x4c, 0x8d, 0x54, 0x15, 0xc8, //0x00006ba5 leaq $-56(%rbp,%rdx), %r10 + 0x4d, 0x39, 0xde, //0x00006baa cmpq %r11, %r14 + 0x0f, 0x82, 0x30, 0x01, 0x00, 0x00, //0x00006bad jb LBB28_107 + 0xe9, 0x08, 0x03, 0x00, 0x00, //0x00006bb3 jmp LBB28_113 + //0x00006bb8 LBB28_94 + 0x41, 0x3a, 0x0e, //0x00006bb8 cmpb (%r14), %cl + 0x0f, 0x85, 0xe6, 0x05, 0x00, 0x00, //0x00006bbb jne LBB28_183 + 0x48, 0xff, 0xc3, //0x00006bc1 incq %rbx + 0x49, 0xff, 0xc6, //0x00006bc4 incq %r14 + 0xe9, 0x05, 0x03, 0x00, 0x00, //0x00006bc7 jmp LBB28_115 + //0x00006bcc LBB28_96 + 0x48, 0x83, 0xfa, 0x03, //0x00006bcc cmpq $3, %rdx + 0x0f, 0x8e, 0xbf, 0x08, 0x00, 0x00, //0x00006bd0 jle LBB28_258 + 0x8b, 0x4b, 0x02, //0x00006bd6 movl $2(%rbx), %ecx + 0x89, 0xce, //0x00006bd9 movl %ecx, %esi + 0xf7, 0xd6, //0x00006bdb notl %esi + 0x8d, 0xb9, 0xd0, 0xcf, 0xcf, 0xcf, //0x00006bdd leal $-808464432(%rcx), %edi + 0x81, 0xe6, 0x80, 0x80, 0x80, 0x80, //0x00006be3 andl $-2139062144, %esi + 0x85, 0xfe, //0x00006be9 testl %edi, %esi + 0x0f, 0x85, 0x85, 0x08, 0x00, 0x00, //0x00006beb jne LBB28_256 + 0x8d, 0xb9, 0x19, 0x19, 0x19, 0x19, //0x00006bf1 leal $421075225(%rcx), %edi + 0x09, 0xcf, //0x00006bf7 orl %ecx, %edi + 0xf7, 0xc7, 0x80, 0x80, 0x80, 0x80, //0x00006bf9 testl $-2139062144, %edi + 0x0f, 0x85, 0x71, 0x08, 0x00, 0x00, //0x00006bff jne LBB28_256 + 0x89, 0xcf, //0x00006c05 movl %ecx, %edi + 0x81, 0xe7, 0x7f, 0x7f, 0x7f, 0x7f, //0x00006c07 andl $2139062143, %edi + 0x41, 0xba, 0xc0, 0xc0, 0xc0, 0xc0, //0x00006c0d movl $-1061109568, %r10d + 0x41, 0x29, 0xfa, //0x00006c13 subl %edi, %r10d + 0x44, 0x8d, 0xbf, 0x46, 0x46, 0x46, 0x46, //0x00006c16 leal $1179010630(%rdi), %r15d + 0x41, 0x21, 0xf2, //0x00006c1d andl %esi, %r10d + 0x45, 0x85, 0xfa, //0x00006c20 testl %r15d, %r10d + 0x0f, 0x85, 0x4d, 0x08, 0x00, 0x00, //0x00006c23 jne LBB28_256 + 0x41, 0xba, 0xe0, 0xe0, 0xe0, 0xe0, //0x00006c29 movl $-522133280, %r10d + 0x41, 0x29, 0xfa, //0x00006c2f subl %edi, %r10d + 0x81, 0xc7, 0x39, 0x39, 0x39, 0x39, //0x00006c32 addl $960051513, %edi + 0x44, 0x21, 0xd6, //0x00006c38 andl %r10d, %esi + 0x85, 0xfe, //0x00006c3b testl %edi, %esi + 0x0f, 0x85, 0x33, 0x08, 0x00, 0x00, //0x00006c3d jne LBB28_256 + 0x0f, 0xc9, //0x00006c43 bswapl %ecx + 0x89, 0xce, //0x00006c45 movl %ecx, %esi + 0xc1, 0xee, 0x04, //0x00006c47 shrl $4, %esi + 0xf7, 0xd6, //0x00006c4a notl %esi + 0x81, 0xe6, 0x01, 0x01, 0x01, 0x01, //0x00006c4c andl $16843009, %esi + 0x8d, 0x34, 0xf6, //0x00006c52 leal (%rsi,%rsi,8), %esi + 0x81, 0xe1, 0x0f, 0x0f, 0x0f, 0x0f, //0x00006c55 andl $252645135, %ecx + 0x01, 0xf1, //0x00006c5b addl %esi, %ecx + 0x41, 0x89, 0xcf, //0x00006c5d movl %ecx, %r15d + 0x41, 0xc1, 0xef, 0x04, //0x00006c60 shrl $4, %r15d + 0x41, 0x09, 0xcf, //0x00006c64 orl %ecx, %r15d + 0x44, 0x89, 0xfe, //0x00006c67 movl %r15d, %esi + 0xc1, 0xee, 0x08, //0x00006c6a shrl $8, %esi + 0x81, 0xe6, 0x00, 0xff, 0x00, 0x00, //0x00006c6d andl $65280, %esi + 0x41, 0x0f, 0xb6, 0xcf, //0x00006c73 movzbl %r15b, %ecx + 0x09, 0xf1, //0x00006c77 orl %esi, %ecx + 0x4c, 0x8d, 0x53, 0x06, //0x00006c79 leaq $6(%rbx), %r10 + 0x83, 0xf9, 0x7f, //0x00006c7d cmpl $127, %ecx + 0x0f, 0x86, 0xb2, 0x00, 0x00, 0x00, //0x00006c80 jbe LBB28_117 + 0x81, 0xf9, 0xff, 0x07, 0x00, 0x00, //0x00006c86 cmpl $2047, %ecx + 0x0f, 0x86, 0xc5, 0x00, 0x00, 0x00, //0x00006c8c jbe LBB28_118 + 0x44, 0x89, 0xff, //0x00006c92 movl %r15d, %edi + 0x81, 0xe7, 0x00, 0x00, 0xf8, 0x00, //0x00006c95 andl $16252928, %edi + 0x81, 0xff, 0x00, 0x00, 0xd8, 0x00, //0x00006c9b cmpl $14155776, %edi + 0x0f, 0x84, 0xe3, 0x00, 0x00, 0x00, //0x00006ca1 je LBB28_119 + 0xc1, 0xee, 0x0c, //0x00006ca7 shrl $12, %esi + 0x40, 0x80, 0xce, 0xe0, //0x00006caa orb $-32, %sil + 0x40, 0x88, 0x75, 0xc8, //0x00006cae movb %sil, $-56(%rbp) + 0xc1, 0xe9, 0x06, //0x00006cb2 shrl $6, %ecx + 0x80, 0xe1, 0x3f, //0x00006cb5 andb $63, %cl + 0x80, 0xc9, 0x80, //0x00006cb8 orb $-128, %cl + 0x88, 0x4d, 0xc9, //0x00006cbb movb %cl, $-55(%rbp) + 0x41, 0x80, 0xe7, 0x3f, //0x00006cbe andb $63, %r15b + 0x41, 0x80, 0xcf, 0x80, //0x00006cc2 orb $-128, %r15b + 0x44, 0x88, 0x7d, 0xca, //0x00006cc6 movb %r15b, $-54(%rbp) + 0xba, 0x03, 0x00, 0x00, 0x00, //0x00006cca movl $3, %edx + 0x41, 0x89, 0xf7, //0x00006ccf movl %esi, %r15d + 0x4c, 0x89, 0xd3, //0x00006cd2 movq %r10, %rbx + 0x4c, 0x8d, 0x54, 0x15, 0xc8, //0x00006cd5 leaq $-56(%rbp,%rdx), %r10 + 0x4d, 0x39, 0xde, //0x00006cda cmpq %r11, %r14 + 0x0f, 0x83, 0xdd, 0x01, 0x00, 0x00, //0x00006cdd jae LBB28_113 + //0x00006ce3 LBB28_107 + 0x48, 0x8d, 0x4d, 0xc8, //0x00006ce3 leaq $-56(%rbp), %rcx + 0x49, 0x39, 0xca, //0x00006ce7 cmpq %rcx, %r10 + 0x0f, 0x86, 0xd0, 0x01, 0x00, 0x00, //0x00006cea jbe LBB28_113 + 0x45, 0x38, 0x3e, //0x00006cf0 cmpb %r15b, (%r14) + 0x0f, 0x85, 0xc7, 0x01, 0x00, 0x00, //0x00006cf3 jne LBB28_113 + 0x49, 0xff, 0xc6, //0x00006cf9 incq %r14 + 0x48, 0x8d, 0x75, 0xc9, //0x00006cfc leaq $-55(%rbp), %rsi + 0x4c, 0x89, 0xf7, //0x00006d00 movq %r14, %rdi + 0x4c, 0x8b, 0x7d, 0xd0, //0x00006d03 movq $-48(%rbp), %r15 + //0x00006d07 LBB28_110 + 0x49, 0x89, 0xfe, //0x00006d07 movq %rdi, %r14 + 0x48, 0x89, 0xf2, //0x00006d0a movq %rsi, %rdx + 0x4c, 0x39, 0xd6, //0x00006d0d cmpq %r10, %rsi + 0x0f, 0x83, 0xb2, 0x01, 0x00, 0x00, //0x00006d10 jae LBB28_114 + 0x4d, 0x39, 0xde, //0x00006d16 cmpq %r11, %r14 + 0x0f, 0x83, 0xa9, 0x01, 0x00, 0x00, //0x00006d19 jae LBB28_114 + 0x41, 0x0f, 0xb6, 0x0e, //0x00006d1f movzbl (%r14), %ecx + 0x49, 0x8d, 0x7e, 0x01, //0x00006d23 leaq $1(%r14), %rdi + 0x48, 0x8d, 0x72, 0x01, //0x00006d27 leaq $1(%rdx), %rsi + 0x3a, 0x0a, //0x00006d2b cmpb (%rdx), %cl + 0x0f, 0x84, 0xd4, 0xff, 0xff, 0xff, //0x00006d2d je LBB28_110 + 0xe9, 0x90, 0x01, 0x00, 0x00, //0x00006d33 jmp LBB28_114 + //0x00006d38 LBB28_117 + 0x44, 0x88, 0x7d, 0xc8, //0x00006d38 movb %r15b, $-56(%rbp) + 0xba, 0x01, 0x00, 0x00, 0x00, //0x00006d3c movl $1, %edx + 0x4c, 0x89, 0xd3, //0x00006d41 movq %r10, %rbx + 0x4c, 0x8d, 0x54, 0x15, 0xc8, //0x00006d44 leaq $-56(%rbp,%rdx), %r10 + 0x4d, 0x39, 0xde, //0x00006d49 cmpq %r11, %r14 + 0x0f, 0x82, 0x91, 0xff, 0xff, 0xff, //0x00006d4c jb LBB28_107 + 0xe9, 0x69, 0x01, 0x00, 0x00, //0x00006d52 jmp LBB28_113 + //0x00006d57 LBB28_118 + 0xc1, 0xe9, 0x06, //0x00006d57 shrl $6, %ecx + 0x80, 0xc9, 0xc0, //0x00006d5a orb $-64, %cl + 0x88, 0x4d, 0xc8, //0x00006d5d movb %cl, $-56(%rbp) + 0x41, 0x80, 0xe7, 0x3f, //0x00006d60 andb $63, %r15b + 0x41, 0x80, 0xcf, 0x80, //0x00006d64 orb $-128, %r15b + 0x44, 0x88, 0x7d, 0xc9, //0x00006d68 movb %r15b, $-55(%rbp) + 0xba, 0x02, 0x00, 0x00, 0x00, //0x00006d6c movl $2, %edx + 0x41, 0x89, 0xcf, //0x00006d71 movl %ecx, %r15d + 0x4c, 0x89, 0xd3, //0x00006d74 movq %r10, %rbx + 0x4c, 0x8d, 0x54, 0x15, 0xc8, //0x00006d77 leaq $-56(%rbp,%rdx), %r10 + 0x4d, 0x39, 0xde, //0x00006d7c cmpq %r11, %r14 + 0x0f, 0x82, 0x5e, 0xff, 0xff, 0xff, //0x00006d7f jb LBB28_107 + 0xe9, 0x36, 0x01, 0x00, 0x00, //0x00006d85 jmp LBB28_113 + //0x00006d8a LBB28_119 + 0x48, 0x83, 0xfa, 0x06, //0x00006d8a cmpq $6, %rdx + 0x0f, 0x8c, 0x1f, 0x07, 0x00, 0x00, //0x00006d8e jl LBB28_261 + 0x81, 0xf9, 0xff, 0xdb, 0x00, 0x00, //0x00006d94 cmpl $56319, %ecx + 0x0f, 0x87, 0x13, 0x07, 0x00, 0x00, //0x00006d9a ja LBB28_261 + 0x41, 0x80, 0x3a, 0x5c, //0x00006da0 cmpb $92, (%r10) + 0x0f, 0x85, 0x09, 0x07, 0x00, 0x00, //0x00006da4 jne LBB28_261 + 0x80, 0x7b, 0x07, 0x75, //0x00006daa cmpb $117, $7(%rbx) + 0x0f, 0x85, 0xff, 0x06, 0x00, 0x00, //0x00006dae jne LBB28_261 + 0x4c, 0x8d, 0x53, 0x08, //0x00006db4 leaq $8(%rbx), %r10 + 0x8b, 0x53, 0x08, //0x00006db8 movl $8(%rbx), %edx + 0x89, 0xd7, //0x00006dbb movl %edx, %edi + 0xf7, 0xd7, //0x00006dbd notl %edi + 0x8d, 0xb2, 0xd0, 0xcf, 0xcf, 0xcf, //0x00006dbf leal $-808464432(%rdx), %esi + 0x81, 0xe7, 0x80, 0x80, 0x80, 0x80, //0x00006dc5 andl $-2139062144, %edi + 0x85, 0xf7, //0x00006dcb testl %esi, %edi + 0x0f, 0x85, 0xd4, 0x06, 0x00, 0x00, //0x00006dcd jne LBB28_260 + 0x8d, 0xb2, 0x19, 0x19, 0x19, 0x19, //0x00006dd3 leal $421075225(%rdx), %esi + 0x09, 0xd6, //0x00006dd9 orl %edx, %esi + 0xf7, 0xc6, 0x80, 0x80, 0x80, 0x80, //0x00006ddb testl $-2139062144, %esi + 0x0f, 0x85, 0xc0, 0x06, 0x00, 0x00, //0x00006de1 jne LBB28_260 + 0x89, 0xd6, //0x00006de7 movl %edx, %esi + 0x81, 0xe6, 0x7f, 0x7f, 0x7f, 0x7f, //0x00006de9 andl $2139062143, %esi + 0x41, 0xbf, 0xc0, 0xc0, 0xc0, 0xc0, //0x00006def movl $-1061109568, %r15d + 0x41, 0x29, 0xf7, //0x00006df5 subl %esi, %r15d + 0x44, 0x8d, 0xae, 0x46, 0x46, 0x46, 0x46, //0x00006df8 leal $1179010630(%rsi), %r13d + 0x41, 0x21, 0xff, //0x00006dff andl %edi, %r15d + 0x45, 0x85, 0xef, //0x00006e02 testl %r13d, %r15d + 0x0f, 0x85, 0x9c, 0x06, 0x00, 0x00, //0x00006e05 jne LBB28_260 + 0x41, 0xbf, 0xe0, 0xe0, 0xe0, 0xe0, //0x00006e0b movl $-522133280, %r15d + 0x41, 0x29, 0xf7, //0x00006e11 subl %esi, %r15d + 0x81, 0xc6, 0x39, 0x39, 0x39, 0x39, //0x00006e14 addl $960051513, %esi + 0x44, 0x21, 0xff, //0x00006e1a andl %r15d, %edi + 0x85, 0xf7, //0x00006e1d testl %esi, %edi + 0x0f, 0x85, 0x82, 0x06, 0x00, 0x00, //0x00006e1f jne LBB28_260 + 0x0f, 0xca, //0x00006e25 bswapl %edx + 0x89, 0xd6, //0x00006e27 movl %edx, %esi + 0xc1, 0xee, 0x04, //0x00006e29 shrl $4, %esi + 0xf7, 0xd6, //0x00006e2c notl %esi + 0x81, 0xe6, 0x01, 0x01, 0x01, 0x01, //0x00006e2e andl $16843009, %esi + 0x8d, 0x34, 0xf6, //0x00006e34 leal (%rsi,%rsi,8), %esi + 0x81, 0xe2, 0x0f, 0x0f, 0x0f, 0x0f, //0x00006e37 andl $252645135, %edx + 0x01, 0xf2, //0x00006e3d addl %esi, %edx + 0x89, 0xd6, //0x00006e3f movl %edx, %esi + 0xc1, 0xee, 0x04, //0x00006e41 shrl $4, %esi + 0x09, 0xd6, //0x00006e44 orl %edx, %esi + 0x89, 0xf2, //0x00006e46 movl %esi, %edx + 0x81, 0xe2, 0x00, 0x00, 0xfc, 0x00, //0x00006e48 andl $16515072, %edx + 0x81, 0xfa, 0x00, 0x00, 0xdc, 0x00, //0x00006e4e cmpl $14417920, %edx + 0x0f, 0x85, 0x59, 0x06, 0x00, 0x00, //0x00006e54 jne LBB28_261 + 0x89, 0xf2, //0x00006e5a movl %esi, %edx + 0xc1, 0xea, 0x08, //0x00006e5c shrl $8, %edx + 0x81, 0xe2, 0x00, 0xff, 0x00, 0x00, //0x00006e5f andl $65280, %edx + 0x40, 0x0f, 0xb6, 0xf6, //0x00006e65 movzbl %sil, %esi + 0x09, 0xd6, //0x00006e69 orl %edx, %esi + 0xc1, 0xe1, 0x0a, //0x00006e6b shll $10, %ecx + 0x8d, 0x8c, 0x31, 0x00, 0x24, 0xa0, 0xfc, //0x00006e6e leal $-56613888(%rcx,%rsi), %ecx + 0x41, 0x89, 0xcf, //0x00006e75 movl %ecx, %r15d + 0x41, 0xc1, 0xef, 0x12, //0x00006e78 shrl $18, %r15d + 0x41, 0x80, 0xcf, 0xf0, //0x00006e7c orb $-16, %r15b + 0x44, 0x88, 0x7d, 0xc8, //0x00006e80 movb %r15b, $-56(%rbp) + 0x89, 0xca, //0x00006e84 movl %ecx, %edx + 0xc1, 0xea, 0x0c, //0x00006e86 shrl $12, %edx + 0x80, 0xe2, 0x3f, //0x00006e89 andb $63, %dl + 0x80, 0xca, 0x80, //0x00006e8c orb $-128, %dl + 0x88, 0x55, 0xc9, //0x00006e8f movb %dl, $-55(%rbp) + 0x89, 0xca, //0x00006e92 movl %ecx, %edx + 0xc1, 0xea, 0x06, //0x00006e94 shrl $6, %edx + 0x80, 0xe2, 0x3f, //0x00006e97 andb $63, %dl + 0x80, 0xca, 0x80, //0x00006e9a orb $-128, %dl + 0x88, 0x55, 0xca, //0x00006e9d movb %dl, $-54(%rbp) + 0x80, 0xe1, 0x3f, //0x00006ea0 andb $63, %cl + 0x80, 0xc9, 0x80, //0x00006ea3 orb $-128, %cl + 0x88, 0x4d, 0xcb, //0x00006ea6 movb %cl, $-53(%rbp) + 0x48, 0x83, 0xc3, 0x0c, //0x00006ea9 addq $12, %rbx + 0xba, 0x04, 0x00, 0x00, 0x00, //0x00006ead movl $4, %edx + 0x4c, 0x8d, 0x54, 0x15, 0xc8, //0x00006eb2 leaq $-56(%rbp,%rdx), %r10 + 0x4d, 0x39, 0xde, //0x00006eb7 cmpq %r11, %r14 + 0x0f, 0x82, 0x23, 0xfe, 0xff, 0xff, //0x00006eba jb LBB28_107 + //0x00006ec0 LBB28_113 + 0x48, 0x8d, 0x55, 0xc8, //0x00006ec0 leaq $-56(%rbp), %rdx + 0x4c, 0x8b, 0x7d, 0xd0, //0x00006ec4 movq $-48(%rbp), %r15 + //0x00006ec8 LBB28_114 + 0x4c, 0x39, 0xd2, //0x00006ec8 cmpq %r10, %rdx + 0x0f, 0x85, 0xd6, 0x02, 0x00, 0x00, //0x00006ecb jne LBB28_183 + //0x00006ed1 LBB28_115 + 0x49, 0x39, 0xd8, //0x00006ed1 cmpq %rbx, %r8 + 0x0f, 0x86, 0x12, 0x00, 0x00, 0x00, //0x00006ed4 jbe LBB28_130 + 0x4d, 0x39, 0xde, //0x00006eda cmpq %r11, %r14 + 0x0f, 0x82, 0x72, 0xfc, 0xff, 0xff, //0x00006edd jb LBB28_89 + 0xe9, 0x04, 0x00, 0x00, 0x00, //0x00006ee3 jmp LBB28_130 + //0x00006ee8 LBB28_129 + 0x4c, 0x8b, 0x7d, 0xd0, //0x00006ee8 movq $-48(%rbp), %r15 + //0x00006eec LBB28_130 + 0x49, 0x31, 0xd8, //0x00006eec xorq %rbx, %r8 + 0x4d, 0x31, 0xde, //0x00006eef xorq %r11, %r14 + 0x45, 0x31, 0xd2, //0x00006ef2 xorl %r10d, %r10d + 0x4d, 0x09, 0xc6, //0x00006ef5 orq %r8, %r14 + 0x41, 0x0f, 0x94, 0xc2, //0x00006ef8 sete %r10b + //0x00006efc LBB28_131 + 0x4c, 0x8b, 0x5d, 0xc0, //0x00006efc movq $-64(%rbp), %r11 + 0x49, 0x8b, 0x73, 0x08, //0x00006f00 movq $8(%r11), %rsi + 0x48, 0x89, 0xc7, //0x00006f04 movq %rax, %rdi + 0x48, 0x29, 0xf7, //0x00006f07 subq %rsi, %rdi + 0x0f, 0x82, 0xea, 0xfb, 0xff, 0xff, //0x00006f0a jb LBB28_83 + //0x00006f10 .p2align 4, 0x90 + //0x00006f10 LBB28_132 + 0x48, 0x8d, 0x58, 0x01, //0x00006f10 leaq $1(%rax), %rbx + 0x48, 0x39, 0xf3, //0x00006f14 cmpq %rsi, %rbx + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00006f17 jae LBB28_136 + 0x41, 0x8a, 0x14, 0x19, //0x00006f1d movb (%r9,%rbx), %dl + 0x80, 0xfa, 0x0d, //0x00006f21 cmpb $13, %dl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00006f24 je LBB28_136 + 0x80, 0xfa, 0x20, //0x00006f2a cmpb $32, %dl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x00006f2d je LBB28_136 + 0x80, 0xc2, 0xf7, //0x00006f33 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x00006f36 cmpb $1, %dl + 0x0f, 0x87, 0xf3, 0x00, 0x00, 0x00, //0x00006f39 ja LBB28_153 + 0x90, //0x00006f3f .p2align 4, 0x90 + //0x00006f40 LBB28_136 + 0x48, 0x8d, 0x58, 0x02, //0x00006f40 leaq $2(%rax), %rbx + 0x48, 0x39, 0xf3, //0x00006f44 cmpq %rsi, %rbx + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00006f47 jae LBB28_140 + 0x41, 0x8a, 0x14, 0x19, //0x00006f4d movb (%r9,%rbx), %dl + 0x80, 0xfa, 0x0d, //0x00006f51 cmpb $13, %dl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00006f54 je LBB28_140 + 0x80, 0xfa, 0x20, //0x00006f5a cmpb $32, %dl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x00006f5d je LBB28_140 + 0x80, 0xc2, 0xf7, //0x00006f63 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x00006f66 cmpb $1, %dl + 0x0f, 0x87, 0xc3, 0x00, 0x00, 0x00, //0x00006f69 ja LBB28_153 + 0x90, //0x00006f6f .p2align 4, 0x90 + //0x00006f70 LBB28_140 + 0x48, 0x8d, 0x58, 0x03, //0x00006f70 leaq $3(%rax), %rbx + 0x48, 0x39, 0xf3, //0x00006f74 cmpq %rsi, %rbx + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00006f77 jae LBB28_144 + 0x41, 0x8a, 0x14, 0x19, //0x00006f7d movb (%r9,%rbx), %dl + 0x80, 0xfa, 0x0d, //0x00006f81 cmpb $13, %dl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00006f84 je LBB28_144 + 0x80, 0xfa, 0x20, //0x00006f8a cmpb $32, %dl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x00006f8d je LBB28_144 + 0x80, 0xc2, 0xf7, //0x00006f93 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x00006f96 cmpb $1, %dl + 0x0f, 0x87, 0x93, 0x00, 0x00, 0x00, //0x00006f99 ja LBB28_153 + 0x90, //0x00006f9f .p2align 4, 0x90 + //0x00006fa0 LBB28_144 + 0x48, 0x8d, 0x50, 0x04, //0x00006fa0 leaq $4(%rax), %rdx + 0x48, 0x39, 0xd6, //0x00006fa4 cmpq %rdx, %rsi + 0x0f, 0x86, 0x49, 0x04, 0x00, 0x00, //0x00006fa7 jbe LBB28_245 + 0x48, 0x39, 0xd6, //0x00006fad cmpq %rdx, %rsi + 0x0f, 0x84, 0x4a, 0x00, 0x00, 0x00, //0x00006fb0 je LBB28_150 + 0x49, 0x8d, 0x14, 0x31, //0x00006fb6 leaq (%r9,%rsi), %rdx + 0x48, 0x83, 0xc7, 0x04, //0x00006fba addq $4, %rdi + 0x49, 0x8d, 0x5c, 0x01, 0x05, //0x00006fbe leaq $5(%r9,%rax), %rbx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00006fc3 .p2align 4, 0x90 + //0x00006fd0 LBB28_147 + 0x0f, 0xbe, 0x4b, 0xff, //0x00006fd0 movsbl $-1(%rbx), %ecx + 0x83, 0xf9, 0x20, //0x00006fd4 cmpl $32, %ecx + 0x0f, 0x87, 0x43, 0x00, 0x00, 0x00, //0x00006fd7 ja LBB28_152 + 0x49, 0x0f, 0xa3, 0xcc, //0x00006fdd btq %rcx, %r12 + 0x0f, 0x83, 0x39, 0x00, 0x00, 0x00, //0x00006fe1 jae LBB28_152 + 0x48, 0xff, 0xc3, //0x00006fe7 incq %rbx + 0x48, 0xff, 0xc7, //0x00006fea incq %rdi + 0x0f, 0x85, 0xdd, 0xff, 0xff, 0xff, //0x00006fed jne LBB28_147 + 0xe9, 0x0b, 0x00, 0x00, 0x00, //0x00006ff3 jmp LBB28_151 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00006ff8 .p2align 4, 0x90 + //0x00007000 LBB28_150 + 0x4c, 0x01, 0xca, //0x00007000 addq %r9, %rdx + //0x00007003 LBB28_151 + 0x4c, 0x29, 0xca, //0x00007003 subq %r9, %rdx + 0x48, 0x89, 0xd3, //0x00007006 movq %rdx, %rbx + 0x48, 0x39, 0xf3, //0x00007009 cmpq %rsi, %rbx + 0x0f, 0x82, 0x20, 0x00, 0x00, 0x00, //0x0000700c jb LBB28_153 + 0xe9, 0xe5, 0x03, 0x00, 0x00, //0x00007012 jmp LBB28_247 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007017 .p2align 4, 0x90 + //0x00007020 LBB28_152 + 0x4c, 0x89, 0xc9, //0x00007020 movq %r9, %rcx + 0x48, 0xf7, 0xd1, //0x00007023 notq %rcx + 0x48, 0x01, 0xcb, //0x00007026 addq %rcx, %rbx + 0x48, 0x39, 0xf3, //0x00007029 cmpq %rsi, %rbx + 0x0f, 0x83, 0xca, 0x03, 0x00, 0x00, //0x0000702c jae LBB28_247 + //0x00007032 LBB28_153 + 0x48, 0x8d, 0x53, 0x01, //0x00007032 leaq $1(%rbx), %rdx + 0x49, 0x89, 0x17, //0x00007036 movq %rdx, (%r15) + 0x41, 0x80, 0x3c, 0x19, 0x3a, //0x00007039 cmpb $58, (%r9,%rbx) + 0x0f, 0x85, 0xb5, 0x03, 0x00, 0x00, //0x0000703e jne LBB28_246 + 0x4d, 0x85, 0xd2, //0x00007044 testq %r10, %r10 + 0x0f, 0x85, 0x66, 0x03, 0x00, 0x00, //0x00007047 jne LBB28_243 + 0x4c, 0x89, 0xdf, //0x0000704d movq %r11, %rdi + 0x4c, 0x89, 0xfe, //0x00007050 movq %r15, %rsi + 0xe8, 0x48, 0xe6, 0xff, 0xff, //0x00007053 callq _skip_one_fast + 0x4c, 0x8b, 0x5d, 0xc0, //0x00007058 movq $-64(%rbp), %r11 + 0x4d, 0x8b, 0x0b, //0x0000705c movq (%r11), %r9 + 0x49, 0x8b, 0x4b, 0x08, //0x0000705f movq $8(%r11), %rcx + 0x49, 0x8b, 0x07, //0x00007063 movq (%r15), %rax + 0x48, 0x89, 0xc6, //0x00007066 movq %rax, %rsi + 0x48, 0x29, 0xce, //0x00007069 subq %rcx, %rsi + 0x0f, 0x83, 0x2e, 0x00, 0x00, 0x00, //0x0000706c jae LBB28_160 + 0x41, 0x8a, 0x14, 0x01, //0x00007072 movb (%r9,%rax), %dl + 0x80, 0xfa, 0x0d, //0x00007076 cmpb $13, %dl + 0x0f, 0x84, 0x21, 0x00, 0x00, 0x00, //0x00007079 je LBB28_160 + 0x80, 0xfa, 0x20, //0x0000707f cmpb $32, %dl + 0x0f, 0x84, 0x18, 0x00, 0x00, 0x00, //0x00007082 je LBB28_160 + 0x80, 0xc2, 0xf7, //0x00007088 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x0000708b cmpb $1, %dl + 0x0f, 0x86, 0x0c, 0x00, 0x00, 0x00, //0x0000708e jbe LBB28_160 + 0x48, 0x89, 0xc7, //0x00007094 movq %rax, %rdi + 0xe9, 0x4e, 0xf7, 0xff, 0xff, //0x00007097 jmp LBB28_181 + 0x90, 0x90, 0x90, 0x90, //0x0000709c .p2align 4, 0x90 + //0x000070a0 LBB28_160 + 0x48, 0x8d, 0x78, 0x01, //0x000070a0 leaq $1(%rax), %rdi + 0x48, 0x39, 0xcf, //0x000070a4 cmpq %rcx, %rdi + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x000070a7 jae LBB28_164 + 0x41, 0x8a, 0x14, 0x39, //0x000070ad movb (%r9,%rdi), %dl + 0x80, 0xfa, 0x0d, //0x000070b1 cmpb $13, %dl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x000070b4 je LBB28_164 + 0x80, 0xfa, 0x20, //0x000070ba cmpb $32, %dl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x000070bd je LBB28_164 + 0x80, 0xc2, 0xf7, //0x000070c3 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x000070c6 cmpb $1, %dl + 0x0f, 0x87, 0x1b, 0xf7, 0xff, 0xff, //0x000070c9 ja LBB28_181 + 0x90, //0x000070cf .p2align 4, 0x90 + //0x000070d0 LBB28_164 + 0x48, 0x8d, 0x78, 0x02, //0x000070d0 leaq $2(%rax), %rdi + 0x48, 0x39, 0xcf, //0x000070d4 cmpq %rcx, %rdi + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x000070d7 jae LBB28_168 + 0x41, 0x8a, 0x14, 0x39, //0x000070dd movb (%r9,%rdi), %dl + 0x80, 0xfa, 0x0d, //0x000070e1 cmpb $13, %dl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x000070e4 je LBB28_168 + 0x80, 0xfa, 0x20, //0x000070ea cmpb $32, %dl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x000070ed je LBB28_168 + 0x80, 0xc2, 0xf7, //0x000070f3 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x000070f6 cmpb $1, %dl + 0x0f, 0x87, 0xeb, 0xf6, 0xff, 0xff, //0x000070f9 ja LBB28_181 + 0x90, //0x000070ff .p2align 4, 0x90 + //0x00007100 LBB28_168 + 0x48, 0x8d, 0x78, 0x03, //0x00007100 leaq $3(%rax), %rdi + 0x48, 0x39, 0xcf, //0x00007104 cmpq %rcx, %rdi + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00007107 jae LBB28_172 + 0x41, 0x8a, 0x14, 0x39, //0x0000710d movb (%r9,%rdi), %dl + 0x80, 0xfa, 0x0d, //0x00007111 cmpb $13, %dl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00007114 je LBB28_172 + 0x80, 0xfa, 0x20, //0x0000711a cmpb $32, %dl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x0000711d je LBB28_172 + 0x80, 0xc2, 0xf7, //0x00007123 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x00007126 cmpb $1, %dl + 0x0f, 0x87, 0xbb, 0xf6, 0xff, 0xff, //0x00007129 ja LBB28_181 + 0x90, //0x0000712f .p2align 4, 0x90 + //0x00007130 LBB28_172 + 0x48, 0x8d, 0x50, 0x04, //0x00007130 leaq $4(%rax), %rdx + 0x48, 0x39, 0xd1, //0x00007134 cmpq %rdx, %rcx + 0x0f, 0x86, 0xb9, 0x02, 0x00, 0x00, //0x00007137 jbe LBB28_245 + 0x48, 0x39, 0xd1, //0x0000713d cmpq %rdx, %rcx + 0x0f, 0x84, 0x4a, 0x00, 0x00, 0x00, //0x00007140 je LBB28_178 + 0x49, 0x8d, 0x14, 0x09, //0x00007146 leaq (%r9,%rcx), %rdx + 0x48, 0x83, 0xc6, 0x04, //0x0000714a addq $4, %rsi + 0x49, 0x8d, 0x7c, 0x01, 0x05, //0x0000714e leaq $5(%r9,%rax), %rdi + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007153 .p2align 4, 0x90 + //0x00007160 LBB28_175 + 0x0f, 0xbe, 0x5f, 0xff, //0x00007160 movsbl $-1(%rdi), %ebx + 0x83, 0xfb, 0x20, //0x00007164 cmpl $32, %ebx + 0x0f, 0x87, 0x6b, 0xf6, 0xff, 0xff, //0x00007167 ja LBB28_180 + 0x49, 0x0f, 0xa3, 0xdc, //0x0000716d btq %rbx, %r12 + 0x0f, 0x83, 0x61, 0xf6, 0xff, 0xff, //0x00007171 jae LBB28_180 + 0x48, 0xff, 0xc7, //0x00007177 incq %rdi + 0x48, 0xff, 0xc6, //0x0000717a incq %rsi + 0x0f, 0x85, 0xdd, 0xff, 0xff, 0xff, //0x0000717d jne LBB28_175 + 0xe9, 0x0b, 0x00, 0x00, 0x00, //0x00007183 jmp LBB28_179 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007188 .p2align 4, 0x90 + //0x00007190 LBB28_178 + 0x4c, 0x01, 0xca, //0x00007190 addq %r9, %rdx + //0x00007193 LBB28_179 + 0x4c, 0x29, 0xca, //0x00007193 subq %r9, %rdx + 0x48, 0x89, 0xd7, //0x00007196 movq %rdx, %rdi + 0x48, 0x39, 0xcf, //0x00007199 cmpq %rcx, %rdi + 0x0f, 0x82, 0x48, 0xf6, 0xff, 0xff, //0x0000719c jb LBB28_181 + 0xe9, 0x55, 0x02, 0x00, 0x00, //0x000071a2 jmp LBB28_247 + //0x000071a7 LBB28_183 + 0x45, 0x31, 0xd2, //0x000071a7 xorl %r10d, %r10d + 0xe9, 0x4d, 0xfd, 0xff, 0xff, //0x000071aa jmp LBB28_131 + //0x000071af LBB28_209 + 0x49, 0x89, 0x17, //0x000071af movq %rdx, (%r15) + 0x48, 0x89, 0xd0, //0x000071b2 movq %rdx, %rax + 0xe9, 0x52, 0x00, 0x00, 0x00, //0x000071b5 jmp LBB28_214 + //0x000071ba LBB28_29 + 0x4c, 0x89, 0xc8, //0x000071ba movq %r9, %rax + 0x48, 0xf7, 0xd0, //0x000071bd notq %rax + 0x48, 0x01, 0xc6, //0x000071c0 addq %rax, %rsi + 0x4c, 0x39, 0xc6, //0x000071c3 cmpq %r8, %rsi + 0x0f, 0x82, 0x16, 0xf4, 0xff, 0xff, //0x000071c6 jb LBB28_28 + 0xe9, 0x6b, 0xf4, 0xff, 0xff, //0x000071cc jmp LBB28_30 + //0x000071d1 LBB28_210 + 0x4c, 0x01, 0xca, //0x000071d1 addq %r9, %rdx + //0x000071d4 LBB28_211 + 0x4c, 0x29, 0xca, //0x000071d4 subq %r9, %rdx + 0x48, 0x89, 0xd7, //0x000071d7 movq %rdx, %rdi + 0x4c, 0x39, 0xc7, //0x000071da cmpq %r8, %rdi + 0x0f, 0x82, 0x17, 0x00, 0x00, 0x00, //0x000071dd jb LBB28_213 + 0xe9, 0x24, 0x00, 0x00, 0x00, //0x000071e3 jmp LBB28_214 + //0x000071e8 LBB28_212 + 0x4c, 0x89, 0xc9, //0x000071e8 movq %r9, %rcx + 0x48, 0xf7, 0xd1, //0x000071eb notq %rcx + 0x48, 0x01, 0xcf, //0x000071ee addq %rcx, %rdi + 0x4c, 0x39, 0xc7, //0x000071f1 cmpq %r8, %rdi + 0x0f, 0x83, 0x12, 0x00, 0x00, 0x00, //0x000071f4 jae LBB28_214 + //0x000071fa LBB28_213 + 0x48, 0x8d, 0x47, 0x01, //0x000071fa leaq $1(%rdi), %rax + 0x49, 0x89, 0x07, //0x000071fe movq %rax, (%r15) + 0x41, 0x80, 0x3c, 0x39, 0x5d, //0x00007201 cmpb $93, (%r9,%rdi) + 0x0f, 0x84, 0x3d, 0x02, 0x00, 0x00, //0x00007206 je LBB28_254 + //0x0000720c LBB28_214 + 0x48, 0xff, 0xc8, //0x0000720c decq %rax + 0x49, 0x89, 0x07, //0x0000720f movq %rax, (%r15) + 0x48, 0x89, 0xc2, //0x00007212 movq %rax, %rdx + 0x4d, 0x85, 0xf6, //0x00007215 testq %r14, %r14 + 0x0f, 0x8e, 0x95, 0x01, 0x00, 0x00, //0x00007218 jle LBB28_243 + 0x90, 0x90, //0x0000721e .p2align 4, 0x90 + //0x00007220 LBB28_215 + 0x4c, 0x89, 0xdf, //0x00007220 movq %r11, %rdi + 0x4c, 0x89, 0xfe, //0x00007223 movq %r15, %rsi + 0xe8, 0x75, 0xe4, 0xff, 0xff, //0x00007226 callq _skip_one_fast + 0x4c, 0x8b, 0x5d, 0xc0, //0x0000722b movq $-64(%rbp), %r11 + 0x4d, 0x8b, 0x0b, //0x0000722f movq (%r11), %r9 + 0x49, 0x8b, 0x4b, 0x08, //0x00007232 movq $8(%r11), %rcx + 0x49, 0x8b, 0x07, //0x00007236 movq (%r15), %rax + 0x48, 0x89, 0xc6, //0x00007239 movq %rax, %rsi + 0x48, 0x29, 0xce, //0x0000723c subq %rcx, %rsi + 0x0f, 0x83, 0x2b, 0x00, 0x00, 0x00, //0x0000723f jae LBB28_220 + 0x41, 0x8a, 0x14, 0x01, //0x00007245 movb (%r9,%rax), %dl + 0x80, 0xfa, 0x0d, //0x00007249 cmpb $13, %dl + 0x0f, 0x84, 0x1e, 0x00, 0x00, 0x00, //0x0000724c je LBB28_220 + 0x80, 0xfa, 0x20, //0x00007252 cmpb $32, %dl + 0x0f, 0x84, 0x15, 0x00, 0x00, 0x00, //0x00007255 je LBB28_220 + 0x80, 0xc2, 0xf7, //0x0000725b addb $-9, %dl + 0x80, 0xfa, 0x01, //0x0000725e cmpb $1, %dl + 0x0f, 0x86, 0x09, 0x00, 0x00, 0x00, //0x00007261 jbe LBB28_220 + 0x48, 0x89, 0xc7, //0x00007267 movq %rax, %rdi + 0xe9, 0x23, 0x01, 0x00, 0x00, //0x0000726a jmp LBB28_241 + 0x90, //0x0000726f .p2align 4, 0x90 + //0x00007270 LBB28_220 + 0x48, 0x8d, 0x78, 0x01, //0x00007270 leaq $1(%rax), %rdi + 0x48, 0x39, 0xcf, //0x00007274 cmpq %rcx, %rdi + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00007277 jae LBB28_224 + 0x41, 0x8a, 0x14, 0x39, //0x0000727d movb (%r9,%rdi), %dl + 0x80, 0xfa, 0x0d, //0x00007281 cmpb $13, %dl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00007284 je LBB28_224 + 0x80, 0xfa, 0x20, //0x0000728a cmpb $32, %dl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x0000728d je LBB28_224 + 0x80, 0xc2, 0xf7, //0x00007293 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x00007296 cmpb $1, %dl + 0x0f, 0x87, 0xf3, 0x00, 0x00, 0x00, //0x00007299 ja LBB28_241 + 0x90, //0x0000729f .p2align 4, 0x90 + //0x000072a0 LBB28_224 + 0x48, 0x8d, 0x78, 0x02, //0x000072a0 leaq $2(%rax), %rdi + 0x48, 0x39, 0xcf, //0x000072a4 cmpq %rcx, %rdi + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x000072a7 jae LBB28_228 + 0x41, 0x8a, 0x14, 0x39, //0x000072ad movb (%r9,%rdi), %dl + 0x80, 0xfa, 0x0d, //0x000072b1 cmpb $13, %dl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x000072b4 je LBB28_228 + 0x80, 0xfa, 0x20, //0x000072ba cmpb $32, %dl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x000072bd je LBB28_228 + 0x80, 0xc2, 0xf7, //0x000072c3 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x000072c6 cmpb $1, %dl + 0x0f, 0x87, 0xc3, 0x00, 0x00, 0x00, //0x000072c9 ja LBB28_241 + 0x90, //0x000072cf .p2align 4, 0x90 + //0x000072d0 LBB28_228 + 0x48, 0x8d, 0x78, 0x03, //0x000072d0 leaq $3(%rax), %rdi + 0x48, 0x39, 0xcf, //0x000072d4 cmpq %rcx, %rdi + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x000072d7 jae LBB28_232 + 0x41, 0x8a, 0x14, 0x39, //0x000072dd movb (%r9,%rdi), %dl + 0x80, 0xfa, 0x0d, //0x000072e1 cmpb $13, %dl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x000072e4 je LBB28_232 + 0x80, 0xfa, 0x20, //0x000072ea cmpb $32, %dl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x000072ed je LBB28_232 + 0x80, 0xc2, 0xf7, //0x000072f3 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x000072f6 cmpb $1, %dl + 0x0f, 0x87, 0x93, 0x00, 0x00, 0x00, //0x000072f9 ja LBB28_241 + 0x90, //0x000072ff .p2align 4, 0x90 + //0x00007300 LBB28_232 + 0x48, 0x8d, 0x50, 0x04, //0x00007300 leaq $4(%rax), %rdx + 0x48, 0x39, 0xd1, //0x00007304 cmpq %rdx, %rcx + 0x0f, 0x86, 0xe9, 0x00, 0x00, 0x00, //0x00007307 jbe LBB28_245 + 0x48, 0x39, 0xd1, //0x0000730d cmpq %rdx, %rcx + 0x0f, 0x84, 0x4a, 0x00, 0x00, 0x00, //0x00007310 je LBB28_238 + 0x49, 0x8d, 0x14, 0x09, //0x00007316 leaq (%r9,%rcx), %rdx + 0x48, 0x83, 0xc6, 0x04, //0x0000731a addq $4, %rsi + 0x49, 0x8d, 0x7c, 0x01, 0x05, //0x0000731e leaq $5(%r9,%rax), %rdi + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007323 .p2align 4, 0x90 + //0x00007330 LBB28_235 + 0x0f, 0xbe, 0x5f, 0xff, //0x00007330 movsbl $-1(%rdi), %ebx + 0x83, 0xfb, 0x20, //0x00007334 cmpl $32, %ebx + 0x0f, 0x87, 0x43, 0x00, 0x00, 0x00, //0x00007337 ja LBB28_240 + 0x49, 0x0f, 0xa3, 0xdc, //0x0000733d btq %rbx, %r12 + 0x0f, 0x83, 0x39, 0x00, 0x00, 0x00, //0x00007341 jae LBB28_240 + 0x48, 0xff, 0xc7, //0x00007347 incq %rdi + 0x48, 0xff, 0xc6, //0x0000734a incq %rsi + 0x0f, 0x85, 0xdd, 0xff, 0xff, 0xff, //0x0000734d jne LBB28_235 + 0xe9, 0x0b, 0x00, 0x00, 0x00, //0x00007353 jmp LBB28_239 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007358 .p2align 4, 0x90 + //0x00007360 LBB28_238 + 0x4c, 0x01, 0xca, //0x00007360 addq %r9, %rdx + //0x00007363 LBB28_239 + 0x4c, 0x29, 0xca, //0x00007363 subq %r9, %rdx + 0x48, 0x89, 0xd7, //0x00007366 movq %rdx, %rdi + 0x48, 0x39, 0xcf, //0x00007369 cmpq %rcx, %rdi + 0x0f, 0x82, 0x20, 0x00, 0x00, 0x00, //0x0000736c jb LBB28_241 + 0xe9, 0x85, 0x00, 0x00, 0x00, //0x00007372 jmp LBB28_247 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007377 .p2align 4, 0x90 + //0x00007380 LBB28_240 + 0x4c, 0x89, 0xca, //0x00007380 movq %r9, %rdx + 0x48, 0xf7, 0xd2, //0x00007383 notq %rdx + 0x48, 0x01, 0xd7, //0x00007386 addq %rdx, %rdi + 0x48, 0x39, 0xcf, //0x00007389 cmpq %rcx, %rdi + 0x0f, 0x83, 0x6a, 0x00, 0x00, 0x00, //0x0000738c jae LBB28_247 + //0x00007392 LBB28_241 + 0x48, 0x8d, 0x57, 0x01, //0x00007392 leaq $1(%rdi), %rdx + 0x49, 0x89, 0x17, //0x00007396 movq %rdx, (%r15) + 0x41, 0x8a, 0x04, 0x39, //0x00007399 movb (%r9,%rdi), %al + 0x3c, 0x2c, //0x0000739d cmpb $44, %al + 0x0f, 0x85, 0x76, 0x00, 0x00, 0x00, //0x0000739f jne LBB28_249 + 0x49, 0x83, 0xfe, 0x02, //0x000073a5 cmpq $2, %r14 + 0x4d, 0x8d, 0x76, 0xff, //0x000073a9 leaq $-1(%r14), %r14 + 0x0f, 0x8d, 0x6d, 0xfe, 0xff, 0xff, //0x000073ad jge LBB28_215 + //0x000073b3 LBB28_243 + 0x48, 0x8b, 0x45, 0xb8, //0x000073b3 movq $-72(%rbp), %rax + 0x48, 0x83, 0xc0, 0x10, //0x000073b7 addq $16, %rax + 0x4c, 0x8b, 0x55, 0xa8, //0x000073bb movq $-88(%rbp), %r10 + 0x48, 0x89, 0x45, 0xb8, //0x000073bf movq %rax, $-72(%rbp) + 0x4c, 0x39, 0xd0, //0x000073c3 cmpq %r10, %rax + 0x48, 0x8b, 0x4d, 0xa0, //0x000073c6 movq $-96(%rbp), %rcx + 0x0f, 0x85, 0xde, 0xf0, 0xff, 0xff, //0x000073ca jne LBB28_2 + //0x000073d0 LBB28_244 + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x000073d0 movl $1, %eax + 0xc4, 0xe1, 0xf9, 0x6e, 0xc0, //0x000073d5 vmovq %rax, %xmm0 + 0xc5, 0xfa, 0x7f, 0x01, //0x000073da vmovdqu %xmm0, (%rcx) + 0x48, 0x89, 0xcf, //0x000073de movq %rcx, %rdi + 0x4c, 0x89, 0xde, //0x000073e1 movq %r11, %rsi + 0x4c, 0x89, 0xfa, //0x000073e4 movq %r15, %rdx + 0x31, 0xc9, //0x000073e7 xorl %ecx, %ecx + 0xe8, 0x12, 0xd2, 0xff, 0xff, //0x000073e9 callq _fsm_exec + 0x48, 0x89, 0xc1, //0x000073ee movq %rax, %rcx + 0xe9, 0x13, 0x00, 0x00, 0x00, //0x000073f1 jmp LBB28_248 + //0x000073f6 LBB28_245 + 0x49, 0x89, 0x17, //0x000073f6 movq %rdx, (%r15) + //0x000073f9 LBB28_246 + 0x48, 0x89, 0xd0, //0x000073f9 movq %rdx, %rax + //0x000073fc LBB28_247 + 0x48, 0xff, 0xc8, //0x000073fc decq %rax + 0x49, 0x89, 0x07, //0x000073ff movq %rax, (%r15) + 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x00007402 movq $-2, %rcx + //0x00007409 LBB28_248 + 0x48, 0x89, 0xc8, //0x00007409 movq %rcx, %rax + 0x48, 0x83, 0xc4, 0x38, //0x0000740c addq $56, %rsp + 0x5b, //0x00007410 popq %rbx + 0x41, 0x5c, //0x00007411 popq %r12 + 0x41, 0x5d, //0x00007413 popq %r13 + 0x41, 0x5e, //0x00007415 popq %r14 + 0x41, 0x5f, //0x00007417 popq %r15 + 0x5d, //0x00007419 popq %rbp + 0xc3, //0x0000741a retq + //0x0000741b LBB28_249 + 0x3c, 0x5d, //0x0000741b cmpb $93, %al + 0x0f, 0x85, 0xd6, 0xff, 0xff, 0xff, //0x0000741d jne LBB28_246 + 0x48, 0x89, 0xd0, //0x00007423 movq %rdx, %rax + 0xe9, 0x1e, 0x00, 0x00, 0x00, //0x00007426 jmp LBB28_254 + //0x0000742b LBB28_251 + 0x48, 0xff, 0xc8, //0x0000742b decq %rax + 0x49, 0x89, 0x07, //0x0000742e movq %rax, (%r15) + 0x48, 0xc7, 0xc1, 0xde, 0xff, 0xff, 0xff, //0x00007431 movq $-34, %rcx + 0xe9, 0xcc, 0xff, 0xff, 0xff, //0x00007438 jmp LBB28_248 + //0x0000743d LBB28_252 + 0x48, 0x89, 0xd8, //0x0000743d movq %rbx, %rax + //0x00007440 LBB28_253 + 0x80, 0xf9, 0x7d, //0x00007440 cmpb $125, %cl + 0x0f, 0x85, 0xb3, 0xff, 0xff, 0xff, //0x00007443 jne LBB28_247 + //0x00007449 LBB28_254 + 0x48, 0xff, 0xc8, //0x00007449 decq %rax + 0x49, 0x89, 0x07, //0x0000744c movq %rax, (%r15) + 0x48, 0xc7, 0xc1, 0xdf, 0xff, 0xff, 0xff, //0x0000744f movq $-33, %rcx + 0xe9, 0xae, 0xff, 0xff, 0xff, //0x00007456 jmp LBB28_248 + //0x0000745b LBB28_255 + 0x48, 0x8b, 0x45, 0xc0, //0x0000745b movq $-64(%rbp), %rax + 0x48, 0x8b, 0x40, 0x08, //0x0000745f movq $8(%rax), %rax + 0x48, 0x8b, 0x4d, 0xd0, //0x00007463 movq $-48(%rbp), %rcx + 0x48, 0x89, 0x01, //0x00007467 movq %rax, (%rcx) + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x0000746a movq $-1, %rcx + 0xe9, 0x93, 0xff, 0xff, 0xff, //0x00007471 jmp LBB28_248 + //0x00007476 LBB28_256 + 0x48, 0x83, 0xc3, 0x02, //0x00007476 addq $2, %rbx + 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x0000747a movq $-2, %rcx + 0xe9, 0x12, 0x00, 0x00, 0x00, //0x00007481 jmp LBB28_259 + //0x00007486 LBB28_257 + 0x48, 0xff, 0xc3, //0x00007486 incq %rbx + 0x48, 0xc7, 0xc1, 0xfd, 0xff, 0xff, 0xff, //0x00007489 movq $-3, %rcx + 0xe9, 0x03, 0x00, 0x00, 0x00, //0x00007490 jmp LBB28_259 + //0x00007495 LBB28_258 + 0x48, 0xff, 0xc3, //0x00007495 incq %rbx + //0x00007498 LBB28_259 + 0x48, 0x8b, 0x45, 0xd0, //0x00007498 movq $-48(%rbp), %rax + 0x4c, 0x29, 0xcb, //0x0000749c subq %r9, %rbx + 0x48, 0x89, 0x18, //0x0000749f movq %rbx, (%rax) + 0xe9, 0x62, 0xff, 0xff, 0xff, //0x000074a2 jmp LBB28_248 + //0x000074a7 LBB28_260 + 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x000074a7 movq $-2, %rcx + 0xe9, 0x07, 0x00, 0x00, 0x00, //0x000074ae jmp LBB28_262 + //0x000074b3 LBB28_261 + 0x48, 0xc7, 0xc1, 0xfc, 0xff, 0xff, 0xff, //0x000074b3 movq $-4, %rcx + //0x000074ba LBB28_262 + 0x4c, 0x89, 0xd3, //0x000074ba movq %r10, %rbx + 0xe9, 0xd6, 0xff, 0xff, 0xff, //0x000074bd jmp LBB28_259 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000074c2 .p2align 4, 0x90 + //0x000074d0 _validate_utf8 + 0x55, //0x000074d0 pushq %rbp + 0x48, 0x89, 0xe5, //0x000074d1 movq %rsp, %rbp + 0x41, 0x57, //0x000074d4 pushq %r15 + 0x41, 0x56, //0x000074d6 pushq %r14 + 0x41, 0x54, //0x000074d8 pushq %r12 + 0x53, //0x000074da pushq %rbx + 0x50, //0x000074db pushq %rax + 0x4c, 0x8b, 0x17, //0x000074dc movq (%rdi), %r10 + 0x4c, 0x8b, 0x5f, 0x08, //0x000074df movq $8(%rdi), %r11 + 0x48, 0x8b, 0x0e, //0x000074e3 movq (%rsi), %rcx + 0x4c, 0x01, 0xd1, //0x000074e6 addq %r10, %rcx + 0x4f, 0x8d, 0x44, 0x1a, 0xfd, //0x000074e9 leaq $-3(%r10,%r11), %r8 + 0xe9, 0x10, 0x00, 0x00, 0x00, //0x000074ee jmp LBB29_1 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000074f3 .p2align 4, 0x90 + //0x00007500 LBB29_19 + 0x48, 0x01, 0xd9, //0x00007500 addq %rbx, %rcx + //0x00007503 LBB29_1 + 0x4c, 0x39, 0xc1, //0x00007503 cmpq %r8, %rcx + 0x0f, 0x83, 0xe1, 0x00, 0x00, 0x00, //0x00007506 jae LBB29_2 + 0xbb, 0x01, 0x00, 0x00, 0x00, //0x0000750c movl $1, %ebx + 0x80, 0x39, 0x00, //0x00007511 cmpb $0, (%rcx) + 0x0f, 0x89, 0xe6, 0xff, 0xff, 0xff, //0x00007514 jns LBB29_19 + 0x8b, 0x01, //0x0000751a movl (%rcx), %eax + 0x89, 0xc7, //0x0000751c movl %eax, %edi + 0x81, 0xe7, 0xf0, 0xc0, 0xc0, 0x00, //0x0000751e andl $12632304, %edi + 0x81, 0xff, 0xe0, 0x80, 0x80, 0x00, //0x00007524 cmpl $8421600, %edi + 0x0f, 0x85, 0x30, 0x00, 0x00, 0x00, //0x0000752a jne LBB29_10 + 0x89, 0xc7, //0x00007530 movl %eax, %edi + 0x81, 0xe7, 0x0f, 0x20, 0x00, 0x00, //0x00007532 andl $8207, %edi + 0x81, 0xff, 0x0d, 0x20, 0x00, 0x00, //0x00007538 cmpl $8205, %edi + 0x0f, 0x84, 0x1c, 0x00, 0x00, 0x00, //0x0000753e je LBB29_10 + 0xbb, 0x03, 0x00, 0x00, 0x00, //0x00007544 movl $3, %ebx + 0x85, 0xff, //0x00007549 testl %edi, %edi + 0x0f, 0x85, 0xaf, 0xff, 0xff, 0xff, //0x0000754b jne LBB29_19 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007551 .p2align 4, 0x90 + //0x00007560 LBB29_10 + 0x89, 0xc7, //0x00007560 movl %eax, %edi + 0x81, 0xe7, 0xe0, 0xc0, 0x00, 0x00, //0x00007562 andl $49376, %edi + 0x81, 0xff, 0xc0, 0x80, 0x00, 0x00, //0x00007568 cmpl $32960, %edi + 0x0f, 0x85, 0x10, 0x00, 0x00, 0x00, //0x0000756e jne LBB29_12 + 0x89, 0xc7, //0x00007574 movl %eax, %edi + 0xbb, 0x02, 0x00, 0x00, 0x00, //0x00007576 movl $2, %ebx + 0x83, 0xe7, 0x1e, //0x0000757b andl $30, %edi + 0x0f, 0x85, 0x7c, 0xff, 0xff, 0xff, //0x0000757e jne LBB29_19 + //0x00007584 LBB29_12 + 0x89, 0xc7, //0x00007584 movl %eax, %edi + 0x81, 0xe7, 0xf8, 0xc0, 0xc0, 0xc0, //0x00007586 andl $-1061109512, %edi + 0x81, 0xff, 0xf0, 0x80, 0x80, 0x80, //0x0000758c cmpl $-2139062032, %edi + 0x0f, 0x85, 0x26, 0x00, 0x00, 0x00, //0x00007592 jne LBB29_16 + 0x89, 0xc7, //0x00007598 movl %eax, %edi + 0x81, 0xe7, 0x07, 0x30, 0x00, 0x00, //0x0000759a andl $12295, %edi + 0x0f, 0x84, 0x18, 0x00, 0x00, 0x00, //0x000075a0 je LBB29_16 + 0xbb, 0x04, 0x00, 0x00, 0x00, //0x000075a6 movl $4, %ebx + 0xa8, 0x04, //0x000075ab testb $4, %al + 0x0f, 0x84, 0x4d, 0xff, 0xff, 0xff, //0x000075ad je LBB29_19 + 0x25, 0x03, 0x30, 0x00, 0x00, //0x000075b3 andl $12291, %eax + 0x0f, 0x84, 0x42, 0xff, 0xff, 0xff, //0x000075b8 je LBB29_19 + //0x000075be LBB29_16 + 0x48, 0x89, 0xcf, //0x000075be movq %rcx, %rdi + 0x4c, 0x29, 0xd7, //0x000075c1 subq %r10, %rdi + 0x48, 0x8b, 0x1a, //0x000075c4 movq (%rdx), %rbx + 0x48, 0x81, 0xfb, 0x00, 0x10, 0x00, 0x00, //0x000075c7 cmpq $4096, %rbx + 0x0f, 0x83, 0x87, 0x01, 0x00, 0x00, //0x000075ce jae LBB29_17 + 0x48, 0x63, 0xc7, //0x000075d4 movslq %edi, %rax + 0x48, 0x8d, 0x7b, 0x01, //0x000075d7 leaq $1(%rbx), %rdi + 0x48, 0x89, 0x3a, //0x000075db movq %rdi, (%rdx) + 0x48, 0x89, 0x44, 0xda, 0x08, //0x000075de movq %rax, $8(%rdx,%rbx,8) + 0xbb, 0x01, 0x00, 0x00, 0x00, //0x000075e3 movl $1, %ebx + 0xe9, 0x13, 0xff, 0xff, 0xff, //0x000075e8 jmp LBB29_19 + //0x000075ed LBB29_2 + 0x4d, 0x01, 0xd3, //0x000075ed addq %r10, %r11 + 0x4c, 0x39, 0xd9, //0x000075f0 cmpq %r11, %rcx + 0x0f, 0x83, 0x3e, 0x01, 0x00, 0x00, //0x000075f3 jae LBB29_36 + 0x4c, 0x8d, 0x45, 0xdc, //0x000075f9 leaq $-36(%rbp), %r8 + 0x4c, 0x8d, 0x4d, 0xda, //0x000075fd leaq $-38(%rbp), %r9 + 0xe9, 0x16, 0x00, 0x00, 0x00, //0x00007601 jmp LBB29_4 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007606 .p2align 4, 0x90 + //0x00007610 LBB29_5 + 0x48, 0xff, 0xc1, //0x00007610 incq %rcx + 0x4c, 0x39, 0xd9, //0x00007613 cmpq %r11, %rcx + 0x0f, 0x83, 0x1b, 0x01, 0x00, 0x00, //0x00007616 jae LBB29_36 + //0x0000761c LBB29_4 + 0x80, 0x39, 0x00, //0x0000761c cmpb $0, (%rcx) + 0x0f, 0x89, 0xeb, 0xff, 0xff, 0xff, //0x0000761f jns LBB29_5 + 0xc6, 0x45, 0xdc, 0x00, //0x00007625 movb $0, $-36(%rbp) + 0xc6, 0x45, 0xda, 0x00, //0x00007629 movb $0, $-38(%rbp) + 0x4c, 0x89, 0xdb, //0x0000762d movq %r11, %rbx + 0x48, 0x29, 0xcb, //0x00007630 subq %rcx, %rbx + 0x48, 0x83, 0xfb, 0x02, //0x00007633 cmpq $2, %rbx + 0x0f, 0x82, 0x35, 0x00, 0x00, 0x00, //0x00007637 jb LBB29_21 + 0x44, 0x0f, 0xb6, 0x21, //0x0000763d movzbl (%rcx), %r12d + 0x44, 0x0f, 0xb6, 0x71, 0x01, //0x00007641 movzbl $1(%rcx), %r14d + 0x44, 0x88, 0x65, 0xdc, //0x00007646 movb %r12b, $-36(%rbp) + 0x4c, 0x8d, 0x79, 0x02, //0x0000764a leaq $2(%rcx), %r15 + 0x48, 0x83, 0xc3, 0xfe, //0x0000764e addq $-2, %rbx + 0x4c, 0x89, 0xcf, //0x00007652 movq %r9, %rdi + 0x48, 0x85, 0xdb, //0x00007655 testq %rbx, %rbx + 0x0f, 0x84, 0x29, 0x00, 0x00, 0x00, //0x00007658 je LBB29_24 + //0x0000765e LBB29_25 + 0x41, 0x0f, 0xb6, 0x07, //0x0000765e movzbl (%r15), %eax + 0x88, 0x07, //0x00007662 movb %al, (%rdi) + 0x44, 0x0f, 0xb6, 0x65, 0xdc, //0x00007664 movzbl $-36(%rbp), %r12d + 0x0f, 0xb6, 0x7d, 0xda, //0x00007669 movzbl $-38(%rbp), %edi + 0xe9, 0x17, 0x00, 0x00, 0x00, //0x0000766d jmp LBB29_26 + //0x00007672 LBB29_21 + 0x45, 0x31, 0xe4, //0x00007672 xorl %r12d, %r12d + 0x45, 0x31, 0xf6, //0x00007675 xorl %r14d, %r14d + 0x4c, 0x89, 0xc7, //0x00007678 movq %r8, %rdi + 0x49, 0x89, 0xcf, //0x0000767b movq %rcx, %r15 + 0x48, 0x85, 0xdb, //0x0000767e testq %rbx, %rbx + 0x0f, 0x85, 0xd7, 0xff, 0xff, 0xff, //0x00007681 jne LBB29_25 + //0x00007687 LBB29_24 + 0x31, 0xff, //0x00007687 xorl %edi, %edi + //0x00007689 LBB29_26 + 0x40, 0x0f, 0xb6, 0xc7, //0x00007689 movzbl %dil, %eax + 0xc1, 0xe0, 0x10, //0x0000768d shll $16, %eax + 0x41, 0x0f, 0xb6, 0xde, //0x00007690 movzbl %r14b, %ebx + 0xc1, 0xe3, 0x08, //0x00007694 shll $8, %ebx + 0x41, 0x0f, 0xb6, 0xfc, //0x00007697 movzbl %r12b, %edi + 0x09, 0xdf, //0x0000769b orl %ebx, %edi + 0x09, 0xf8, //0x0000769d orl %edi, %eax + 0x25, 0xf0, 0xc0, 0xc0, 0x00, //0x0000769f andl $12632304, %eax + 0x3d, 0xe0, 0x80, 0x80, 0x00, //0x000076a4 cmpl $8421600, %eax + 0x0f, 0x85, 0x21, 0x00, 0x00, 0x00, //0x000076a9 jne LBB29_29 + 0x89, 0xf8, //0x000076af movl %edi, %eax + 0x25, 0x0f, 0x20, 0x00, 0x00, //0x000076b1 andl $8207, %eax + 0x3d, 0x0d, 0x20, 0x00, 0x00, //0x000076b6 cmpl $8205, %eax + 0x0f, 0x84, 0x0f, 0x00, 0x00, 0x00, //0x000076bb je LBB29_29 + 0xbb, 0x03, 0x00, 0x00, 0x00, //0x000076c1 movl $3, %ebx + 0x85, 0xc0, //0x000076c6 testl %eax, %eax + 0x0f, 0x85, 0x23, 0x00, 0x00, 0x00, //0x000076c8 jne LBB29_34 + 0x90, 0x90, //0x000076ce .p2align 4, 0x90 + //0x000076d0 LBB29_29 + 0x41, 0xf6, 0xc4, 0x1e, //0x000076d0 testb $30, %r12b + 0x0f, 0x84, 0x28, 0x00, 0x00, 0x00, //0x000076d4 je LBB29_31 + 0x81, 0xe7, 0xe0, 0xc0, 0x00, 0x00, //0x000076da andl $49376, %edi + 0xbb, 0x02, 0x00, 0x00, 0x00, //0x000076e0 movl $2, %ebx + 0x81, 0xff, 0xc0, 0x80, 0x00, 0x00, //0x000076e5 cmpl $32960, %edi + 0x0f, 0x85, 0x11, 0x00, 0x00, 0x00, //0x000076eb jne LBB29_31 + //0x000076f1 LBB29_34 + 0x48, 0x01, 0xd9, //0x000076f1 addq %rbx, %rcx + 0x4c, 0x39, 0xd9, //0x000076f4 cmpq %r11, %rcx + 0x0f, 0x82, 0x1f, 0xff, 0xff, 0xff, //0x000076f7 jb LBB29_4 + 0xe9, 0x35, 0x00, 0x00, 0x00, //0x000076fd jmp LBB29_36 + //0x00007702 LBB29_31 + 0x48, 0x89, 0xc8, //0x00007702 movq %rcx, %rax + 0x4c, 0x29, 0xd0, //0x00007705 subq %r10, %rax + 0x48, 0x8b, 0x3a, //0x00007708 movq (%rdx), %rdi + 0x48, 0x81, 0xff, 0x00, 0x10, 0x00, 0x00, //0x0000770b cmpq $4096, %rdi + 0x0f, 0x83, 0x34, 0x00, 0x00, 0x00, //0x00007712 jae LBB29_32 + 0x48, 0x98, //0x00007718 cltq + 0x48, 0x8d, 0x5f, 0x01, //0x0000771a leaq $1(%rdi), %rbx + 0x48, 0x89, 0x1a, //0x0000771e movq %rbx, (%rdx) + 0x48, 0x89, 0x44, 0xfa, 0x08, //0x00007721 movq %rax, $8(%rdx,%rdi,8) + 0xbb, 0x01, 0x00, 0x00, 0x00, //0x00007726 movl $1, %ebx + 0x48, 0x01, 0xd9, //0x0000772b addq %rbx, %rcx + 0x4c, 0x39, 0xd9, //0x0000772e cmpq %r11, %rcx + 0x0f, 0x82, 0xe5, 0xfe, 0xff, 0xff, //0x00007731 jb LBB29_4 + //0x00007737 LBB29_36 + 0x4c, 0x29, 0xd1, //0x00007737 subq %r10, %rcx + 0x48, 0x89, 0x0e, //0x0000773a movq %rcx, (%rsi) + 0x31, 0xc0, //0x0000773d xorl %eax, %eax + //0x0000773f LBB29_37 + 0x48, 0x83, 0xc4, 0x08, //0x0000773f addq $8, %rsp + 0x5b, //0x00007743 popq %rbx + 0x41, 0x5c, //0x00007744 popq %r12 + 0x41, 0x5e, //0x00007746 popq %r14 + 0x41, 0x5f, //0x00007748 popq %r15 + 0x5d, //0x0000774a popq %rbp + 0xc3, //0x0000774b retq + //0x0000774c LBB29_32 + 0x48, 0x89, 0x06, //0x0000774c movq %rax, (%rsi) + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x0000774f movq $-1, %rax + 0xe9, 0xe4, 0xff, 0xff, 0xff, //0x00007756 jmp LBB29_37 + //0x0000775b LBB29_17 + 0x48, 0x89, 0x3e, //0x0000775b movq %rdi, (%rsi) + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x0000775e movq $-1, %rax + 0xe9, 0xd5, 0xff, 0xff, 0xff, //0x00007765 jmp LBB29_37 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000776a .p2align 4, 0x90 + //0x00007770 _validate_utf8_fast + 0x55, //0x00007770 pushq %rbp + 0x48, 0x89, 0xe5, //0x00007771 movq %rsp, %rbp + 0x53, //0x00007774 pushq %rbx + 0x50, //0x00007775 pushq %rax + 0x4c, 0x8b, 0x17, //0x00007776 movq (%rdi), %r10 + 0x4c, 0x8b, 0x5f, 0x08, //0x00007779 movq $8(%rdi), %r11 + 0x4b, 0x8d, 0x74, 0x1a, 0xfd, //0x0000777d leaq $-3(%r10,%r11), %rsi + 0x4c, 0x89, 0xd0, //0x00007782 movq %r10, %rax + 0x49, 0x39, 0xf2, //0x00007785 cmpq %rsi, %r10 + 0x0f, 0x83, 0xe0, 0x00, 0x00, 0x00, //0x00007788 jae LBB30_14 + 0x4c, 0x89, 0xd0, //0x0000778e movq %r10, %rax + 0xe9, 0x16, 0x00, 0x00, 0x00, //0x00007791 jmp LBB30_3 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007796 .p2align 4, 0x90 + //0x000077a0 LBB30_2 + 0x48, 0x01, 0xd0, //0x000077a0 addq %rdx, %rax + 0x48, 0x39, 0xf0, //0x000077a3 cmpq %rsi, %rax + 0x0f, 0x83, 0xc2, 0x00, 0x00, 0x00, //0x000077a6 jae LBB30_14 + //0x000077ac LBB30_3 + 0xba, 0x01, 0x00, 0x00, 0x00, //0x000077ac movl $1, %edx + 0x80, 0x38, 0x00, //0x000077b1 cmpb $0, (%rax) + 0x0f, 0x89, 0xe6, 0xff, 0xff, 0xff, //0x000077b4 jns LBB30_2 + 0x8b, 0x38, //0x000077ba movl (%rax), %edi + 0x89, 0xf9, //0x000077bc movl %edi, %ecx + 0x81, 0xe1, 0xf0, 0xc0, 0xc0, 0x00, //0x000077be andl $12632304, %ecx + 0x81, 0xf9, 0xe0, 0x80, 0x80, 0x00, //0x000077c4 cmpl $8421600, %ecx + 0x0f, 0x85, 0x30, 0x00, 0x00, 0x00, //0x000077ca jne LBB30_7 + 0x89, 0xf9, //0x000077d0 movl %edi, %ecx + 0x81, 0xe1, 0x0f, 0x20, 0x00, 0x00, //0x000077d2 andl $8207, %ecx + 0x81, 0xf9, 0x0d, 0x20, 0x00, 0x00, //0x000077d8 cmpl $8205, %ecx + 0x0f, 0x84, 0x1c, 0x00, 0x00, 0x00, //0x000077de je LBB30_7 + 0xba, 0x03, 0x00, 0x00, 0x00, //0x000077e4 movl $3, %edx + 0x85, 0xc9, //0x000077e9 testl %ecx, %ecx + 0x0f, 0x85, 0xaf, 0xff, 0xff, 0xff, //0x000077eb jne LBB30_2 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000077f1 .p2align 4, 0x90 + //0x00007800 LBB30_7 + 0x89, 0xf9, //0x00007800 movl %edi, %ecx + 0x81, 0xe1, 0xe0, 0xc0, 0x00, 0x00, //0x00007802 andl $49376, %ecx + 0x81, 0xf9, 0xc0, 0x80, 0x00, 0x00, //0x00007808 cmpl $32960, %ecx + 0x0f, 0x85, 0x10, 0x00, 0x00, 0x00, //0x0000780e jne LBB30_9 + 0x89, 0xf9, //0x00007814 movl %edi, %ecx + 0xba, 0x02, 0x00, 0x00, 0x00, //0x00007816 movl $2, %edx + 0x83, 0xe1, 0x1e, //0x0000781b andl $30, %ecx + 0x0f, 0x85, 0x7c, 0xff, 0xff, 0xff, //0x0000781e jne LBB30_2 + //0x00007824 LBB30_9 + 0x89, 0xf9, //0x00007824 movl %edi, %ecx + 0x81, 0xe1, 0xf8, 0xc0, 0xc0, 0xc0, //0x00007826 andl $-1061109512, %ecx + 0x81, 0xf9, 0xf0, 0x80, 0x80, 0x80, //0x0000782c cmpl $-2139062032, %ecx + 0x0f, 0x85, 0x29, 0x00, 0x00, 0x00, //0x00007832 jne LBB30_13 + 0x89, 0xf9, //0x00007838 movl %edi, %ecx + 0x81, 0xe1, 0x07, 0x30, 0x00, 0x00, //0x0000783a andl $12295, %ecx + 0x0f, 0x84, 0x1b, 0x00, 0x00, 0x00, //0x00007840 je LBB30_13 + 0xba, 0x04, 0x00, 0x00, 0x00, //0x00007846 movl $4, %edx + 0x40, 0xf6, 0xc7, 0x04, //0x0000784b testb $4, %dil + 0x0f, 0x84, 0x4b, 0xff, 0xff, 0xff, //0x0000784f je LBB30_2 + 0x81, 0xe7, 0x03, 0x30, 0x00, 0x00, //0x00007855 andl $12291, %edi + 0x0f, 0x84, 0x3f, 0xff, 0xff, 0xff, //0x0000785b je LBB30_2 + //0x00007861 LBB30_13 + 0x48, 0xf7, 0xd0, //0x00007861 notq %rax + 0x4c, 0x01, 0xd0, //0x00007864 addq %r10, %rax + 0x48, 0x83, 0xc4, 0x08, //0x00007867 addq $8, %rsp + 0x5b, //0x0000786b popq %rbx + 0x5d, //0x0000786c popq %rbp + 0xc3, //0x0000786d retq + //0x0000786e LBB30_14 + 0x4d, 0x01, 0xd3, //0x0000786e addq %r10, %r11 + 0x4c, 0x39, 0xd8, //0x00007871 cmpq %r11, %rax + 0x0f, 0x83, 0x03, 0x01, 0x00, 0x00, //0x00007874 jae LBB30_30 + 0x4c, 0x8d, 0x45, 0xf4, //0x0000787a leaq $-12(%rbp), %r8 + 0x4c, 0x8d, 0x4d, 0xf2, //0x0000787e leaq $-14(%rbp), %r9 + 0xe9, 0x15, 0x00, 0x00, 0x00, //0x00007882 jmp LBB30_17 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007887 .p2align 4, 0x90 + //0x00007890 LBB30_16 + 0x48, 0xff, 0xc0, //0x00007890 incq %rax + 0x4c, 0x39, 0xd8, //0x00007893 cmpq %r11, %rax + 0x0f, 0x83, 0xe1, 0x00, 0x00, 0x00, //0x00007896 jae LBB30_30 + //0x0000789c LBB30_17 + 0x80, 0x38, 0x00, //0x0000789c cmpb $0, (%rax) + 0x0f, 0x89, 0xeb, 0xff, 0xff, 0xff, //0x0000789f jns LBB30_16 + 0xc6, 0x45, 0xf4, 0x00, //0x000078a5 movb $0, $-12(%rbp) + 0xc6, 0x45, 0xf2, 0x00, //0x000078a9 movb $0, $-14(%rbp) + 0x4c, 0x89, 0xda, //0x000078ad movq %r11, %rdx + 0x48, 0x29, 0xc2, //0x000078b0 subq %rax, %rdx + 0x48, 0x83, 0xfa, 0x02, //0x000078b3 cmpq $2, %rdx + 0x0f, 0x82, 0x31, 0x00, 0x00, 0x00, //0x000078b7 jb LBB30_21 + 0x0f, 0xb6, 0x30, //0x000078bd movzbl (%rax), %esi + 0x0f, 0xb6, 0x78, 0x01, //0x000078c0 movzbl $1(%rax), %edi + 0x40, 0x88, 0x75, 0xf4, //0x000078c4 movb %sil, $-12(%rbp) + 0x48, 0x8d, 0x48, 0x02, //0x000078c8 leaq $2(%rax), %rcx + 0x48, 0x83, 0xc2, 0xfe, //0x000078cc addq $-2, %rdx + 0x4c, 0x89, 0xcb, //0x000078d0 movq %r9, %rbx + 0x48, 0x85, 0xd2, //0x000078d3 testq %rdx, %rdx + 0x0f, 0x84, 0x25, 0x00, 0x00, 0x00, //0x000078d6 je LBB30_22 + //0x000078dc LBB30_20 + 0x0f, 0xb6, 0x09, //0x000078dc movzbl (%rcx), %ecx + 0x88, 0x0b, //0x000078df movb %cl, (%rbx) + 0x0f, 0xb6, 0x75, 0xf4, //0x000078e1 movzbl $-12(%rbp), %esi + 0x0f, 0xb6, 0x4d, 0xf2, //0x000078e5 movzbl $-14(%rbp), %ecx + 0xe9, 0x15, 0x00, 0x00, 0x00, //0x000078e9 jmp LBB30_23 + //0x000078ee LBB30_21 + 0x31, 0xf6, //0x000078ee xorl %esi, %esi + 0x31, 0xff, //0x000078f0 xorl %edi, %edi + 0x4c, 0x89, 0xc3, //0x000078f2 movq %r8, %rbx + 0x48, 0x89, 0xc1, //0x000078f5 movq %rax, %rcx + 0x48, 0x85, 0xd2, //0x000078f8 testq %rdx, %rdx + 0x0f, 0x85, 0xdb, 0xff, 0xff, 0xff, //0x000078fb jne LBB30_20 + //0x00007901 LBB30_22 + 0x31, 0xc9, //0x00007901 xorl %ecx, %ecx + //0x00007903 LBB30_23 + 0x0f, 0xb6, 0xc9, //0x00007903 movzbl %cl, %ecx + 0xc1, 0xe1, 0x10, //0x00007906 shll $16, %ecx + 0x40, 0x0f, 0xb6, 0xff, //0x00007909 movzbl %dil, %edi + 0xc1, 0xe7, 0x08, //0x0000790d shll $8, %edi + 0x40, 0x0f, 0xb6, 0xd6, //0x00007910 movzbl %sil, %edx + 0x09, 0xfa, //0x00007914 orl %edi, %edx + 0x09, 0xd1, //0x00007916 orl %edx, %ecx + 0x81, 0xe1, 0xf0, 0xc0, 0xc0, 0x00, //0x00007918 andl $12632304, %ecx + 0x81, 0xf9, 0xe0, 0x80, 0x80, 0x00, //0x0000791e cmpl $8421600, %ecx + 0x0f, 0x85, 0x26, 0x00, 0x00, 0x00, //0x00007924 jne LBB30_26 + 0x89, 0xd7, //0x0000792a movl %edx, %edi + 0x81, 0xe7, 0x0f, 0x20, 0x00, 0x00, //0x0000792c andl $8207, %edi + 0x81, 0xff, 0x0d, 0x20, 0x00, 0x00, //0x00007932 cmpl $8205, %edi + 0x0f, 0x84, 0x12, 0x00, 0x00, 0x00, //0x00007938 je LBB30_26 + 0xb9, 0x03, 0x00, 0x00, 0x00, //0x0000793e movl $3, %ecx + 0x85, 0xff, //0x00007943 testl %edi, %edi + 0x0f, 0x85, 0x26, 0x00, 0x00, 0x00, //0x00007945 jne LBB30_28 + 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000794b .p2align 4, 0x90 + //0x00007950 LBB30_26 + 0x40, 0xf6, 0xc6, 0x1e, //0x00007950 testb $30, %sil + 0x0f, 0x84, 0x07, 0xff, 0xff, 0xff, //0x00007954 je LBB30_13 + 0x81, 0xe2, 0xe0, 0xc0, 0x00, 0x00, //0x0000795a andl $49376, %edx + 0xb9, 0x02, 0x00, 0x00, 0x00, //0x00007960 movl $2, %ecx + 0x81, 0xfa, 0xc0, 0x80, 0x00, 0x00, //0x00007965 cmpl $32960, %edx + 0x0f, 0x85, 0xf0, 0xfe, 0xff, 0xff, //0x0000796b jne LBB30_13 + //0x00007971 LBB30_28 + 0x48, 0x01, 0xc8, //0x00007971 addq %rcx, %rax + 0x4c, 0x39, 0xd8, //0x00007974 cmpq %r11, %rax + 0x0f, 0x82, 0x1f, 0xff, 0xff, 0xff, //0x00007977 jb LBB30_17 + //0x0000797d LBB30_30 + 0x31, 0xc0, //0x0000797d xorl %eax, %eax + 0x48, 0x83, 0xc4, 0x08, //0x0000797f addq $8, %rsp + 0x5b, //0x00007983 popq %rbx + 0x5d, //0x00007984 popq %rbp + 0xc3, //0x00007985 retq + 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, //0x00007986 .p2align 5, 0x00 + //0x000079a0 LCPI31_0 + 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, //0x000079a0 QUAD $0x3030303030303030; QUAD $0x3030303030303030 // .space 16, '0000000000000000' + 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, //0x000079b0 QUAD $0x3030303030303030; QUAD $0x3030303030303030 // .space 16, '0000000000000000' + //0x000079c0 .p2align 4, 0x90 + //0x000079c0 _f32toa + 0x55, //0x000079c0 pushq %rbp + 0x48, 0x89, 0xe5, //0x000079c1 movq %rsp, %rbp + 0x41, 0x57, //0x000079c4 pushq %r15 + 0x41, 0x56, //0x000079c6 pushq %r14 + 0x41, 0x55, //0x000079c8 pushq %r13 + 0x41, 0x54, //0x000079ca pushq %r12 + 0x53, //0x000079cc pushq %rbx + 0xc5, 0xf9, 0x7e, 0xc0, //0x000079cd vmovd %xmm0, %eax + 0x89, 0xc1, //0x000079d1 movl %eax, %ecx + 0xc1, 0xe9, 0x17, //0x000079d3 shrl $23, %ecx + 0x0f, 0xb6, 0xd9, //0x000079d6 movzbl %cl, %ebx + 0x81, 0xfb, 0xff, 0x00, 0x00, 0x00, //0x000079d9 cmpl $255, %ebx + 0x0f, 0x84, 0xff, 0x0c, 0x00, 0x00, //0x000079df je LBB31_139 + 0xc6, 0x07, 0x2d, //0x000079e5 movb $45, (%rdi) + 0x41, 0x89, 0xc1, //0x000079e8 movl %eax, %r9d + 0x41, 0xc1, 0xe9, 0x1f, //0x000079eb shrl $31, %r9d + 0x4e, 0x8d, 0x04, 0x0f, //0x000079ef leaq (%rdi,%r9), %r8 + 0xa9, 0xff, 0xff, 0xff, 0x7f, //0x000079f3 testl $2147483647, %eax + 0x0f, 0x84, 0xc6, 0x01, 0x00, 0x00, //0x000079f8 je LBB31_14 + 0x25, 0xff, 0xff, 0x7f, 0x00, //0x000079fe andl $8388607, %eax + 0x85, 0xdb, //0x00007a03 testl %ebx, %ebx + 0x0f, 0x84, 0xe1, 0x0c, 0x00, 0x00, //0x00007a05 je LBB31_140 + 0x8d, 0xb0, 0x00, 0x00, 0x80, 0x00, //0x00007a0b leal $8388608(%rax), %esi + 0x44, 0x8d, 0xbb, 0x6a, 0xff, 0xff, 0xff, //0x00007a11 leal $-150(%rbx), %r15d + 0x8d, 0x4b, 0x81, //0x00007a18 leal $-127(%rbx), %ecx + 0x83, 0xf9, 0x17, //0x00007a1b cmpl $23, %ecx + 0x0f, 0x87, 0x1b, 0x00, 0x00, 0x00, //0x00007a1e ja LBB31_5 + 0xb9, 0x96, 0x00, 0x00, 0x00, //0x00007a24 movl $150, %ecx + 0x29, 0xd9, //0x00007a29 subl %ebx, %ecx + 0x48, 0xc7, 0xc2, 0xff, 0xff, 0xff, 0xff, //0x00007a2b movq $-1, %rdx + 0x48, 0xd3, 0xe2, //0x00007a32 shlq %cl, %rdx + 0xf7, 0xd2, //0x00007a35 notl %edx + 0x85, 0xf2, //0x00007a37 testl %esi, %edx + 0x0f, 0x84, 0x12, 0x04, 0x00, 0x00, //0x00007a39 je LBB31_32 + //0x00007a3f LBB31_5 + 0x41, 0x89, 0xf6, //0x00007a3f movl %esi, %r14d + 0x41, 0x83, 0xe6, 0x01, //0x00007a42 andl $1, %r14d + 0x85, 0xc0, //0x00007a46 testl %eax, %eax + 0x0f, 0x94, 0xc0, //0x00007a48 sete %al + 0x83, 0xfb, 0x01, //0x00007a4b cmpl $1, %ebx + 0x0f, 0x97, 0xc1, //0x00007a4e seta %cl + 0x20, 0xc1, //0x00007a51 andb %al, %cl + 0x0f, 0xb6, 0xc9, //0x00007a53 movzbl %cl, %ecx + 0x41, 0x89, 0xf2, //0x00007a56 movl %esi, %r10d + 0x41, 0xc1, 0xe2, 0x02, //0x00007a59 shll $2, %r10d + 0x8d, 0x44, 0xb1, 0xfe, //0x00007a5d leal $-2(%rcx,%rsi,4), %eax + 0x45, 0x69, 0xdf, 0x13, 0x44, 0x13, 0x00, //0x00007a61 imull $1262611, %r15d, %r11d + 0x31, 0xd2, //0x00007a68 xorl %edx, %edx + 0x84, 0xc9, //0x00007a6a testb %cl, %cl + 0xb9, 0xff, 0xfe, 0x07, 0x00, //0x00007a6c movl $524031, %ecx + 0x0f, 0x44, 0xca, //0x00007a71 cmovel %edx, %ecx + 0x41, 0x29, 0xcb, //0x00007a74 subl %ecx, %r11d + 0x41, 0xc1, 0xfb, 0x16, //0x00007a77 sarl $22, %r11d + 0x41, 0x69, 0xcb, 0xb1, 0x6c, 0xe5, 0xff, //0x00007a7b imull $-1741647, %r11d, %ecx + 0xc1, 0xe9, 0x13, //0x00007a82 shrl $19, %ecx + 0x44, 0x01, 0xf9, //0x00007a85 addl %r15d, %ecx + 0xba, 0x1f, 0x00, 0x00, 0x00, //0x00007a88 movl $31, %edx + 0x44, 0x29, 0xda, //0x00007a8d subl %r11d, %edx + 0x48, 0x63, 0xd2, //0x00007a90 movslq %edx, %rdx + 0x48, 0x8d, 0x1d, 0xd6, 0xb7, 0x00, 0x00, //0x00007a93 leaq $47062(%rip), %rbx /* _pow10_ceil_sig_f32.g+0(%rip) */ + 0xfe, 0xc1, //0x00007a9a incb %cl + 0xd3, 0xe0, //0x00007a9c shll %cl, %eax + 0x4c, 0x8b, 0x24, 0xd3, //0x00007a9e movq (%rbx,%rdx,8), %r12 + 0x49, 0xf7, 0xe4, //0x00007aa2 mulq %r12 + 0x48, 0xc1, 0xe8, 0x20, //0x00007aa5 shrq $32, %rax + 0x31, 0xdb, //0x00007aa9 xorl %ebx, %ebx + 0x83, 0xf8, 0x01, //0x00007aab cmpl $1, %eax + 0x0f, 0x97, 0xc3, //0x00007aae seta %bl + 0x41, 0xd3, 0xe2, //0x00007ab1 shll %cl, %r10d + 0x09, 0xd3, //0x00007ab4 orl %edx, %ebx + 0x4c, 0x89, 0xd0, //0x00007ab6 movq %r10, %rax + 0x49, 0xf7, 0xe4, //0x00007ab9 mulq %r12 + 0x49, 0x89, 0xd2, //0x00007abc movq %rdx, %r10 + 0x48, 0xc1, 0xe8, 0x20, //0x00007abf shrq $32, %rax + 0x45, 0x31, 0xff, //0x00007ac3 xorl %r15d, %r15d + 0x83, 0xf8, 0x01, //0x00007ac6 cmpl $1, %eax + 0x41, 0x0f, 0x97, 0xc7, //0x00007ac9 seta %r15b + 0x8d, 0x04, 0xb5, 0x02, 0x00, 0x00, 0x00, //0x00007acd leal $2(,%rsi,4), %eax + 0xd3, 0xe0, //0x00007ad4 shll %cl, %eax + 0x45, 0x09, 0xd7, //0x00007ad6 orl %r10d, %r15d + 0x49, 0xf7, 0xe4, //0x00007ad9 mulq %r12 + 0x48, 0xc1, 0xe8, 0x20, //0x00007adc shrq $32, %rax + 0x31, 0xc9, //0x00007ae0 xorl %ecx, %ecx + 0x83, 0xf8, 0x01, //0x00007ae2 cmpl $1, %eax + 0x0f, 0x97, 0xc1, //0x00007ae5 seta %cl + 0x09, 0xd1, //0x00007ae8 orl %edx, %ecx + 0x44, 0x01, 0xf3, //0x00007aea addl %r14d, %ebx + 0x44, 0x29, 0xf1, //0x00007aed subl %r14d, %ecx + 0x41, 0x83, 0xff, 0x28, //0x00007af0 cmpl $40, %r15d + 0x0f, 0x82, 0x9a, 0x00, 0x00, 0x00, //0x00007af4 jb LBB31_12 + 0x44, 0x89, 0xd2, //0x00007afa movl %r10d, %edx + 0xb8, 0xcd, 0xcc, 0xcc, 0xcc, //0x00007afd movl $3435973837, %eax + 0x48, 0x0f, 0xaf, 0xc2, //0x00007b02 imulq %rdx, %rax + 0x48, 0xc1, 0xe8, 0x25, //0x00007b06 shrq $37, %rax + 0x41, 0x89, 0xde, //0x00007b0a movl %ebx, %r14d + 0x48, 0x8d, 0x34, 0xc5, 0x00, 0x00, 0x00, 0x00, //0x00007b0d leaq (,%rax,8), %rsi + 0x48, 0x8d, 0x14, 0xb6, //0x00007b15 leaq (%rsi,%rsi,4), %rdx + 0x4c, 0x39, 0xf2, //0x00007b19 cmpq %r14, %rdx + 0x41, 0x0f, 0x93, 0xc4, //0x00007b1c setae %r12b + 0x4c, 0x8d, 0x74, 0xb6, 0x28, //0x00007b20 leaq $40(%rsi,%rsi,4), %r14 + 0x89, 0xce, //0x00007b25 movl %ecx, %esi + 0x49, 0x39, 0xf6, //0x00007b27 cmpq %rsi, %r14 + 0x0f, 0x96, 0xc2, //0x00007b2a setbe %dl + 0x41, 0x38, 0xd4, //0x00007b2d cmpb %dl, %r12b + 0x0f, 0x84, 0x5e, 0x00, 0x00, 0x00, //0x00007b30 je LBB31_12 + 0x45, 0x31, 0xed, //0x00007b36 xorl %r13d, %r13d + 0x49, 0x39, 0xf6, //0x00007b39 cmpq %rsi, %r14 + 0x41, 0x0f, 0x96, 0xc5, //0x00007b3c setbe %r13b + 0x41, 0x01, 0xc5, //0x00007b40 addl %eax, %r13d + 0x41, 0xff, 0xc3, //0x00007b43 incl %r11d + 0x41, 0x81, 0xfd, 0xa0, 0x86, 0x01, 0x00, //0x00007b46 cmpl $100000, %r13d + 0x0f, 0x83, 0xb0, 0x00, 0x00, 0x00, //0x00007b4d jae LBB31_18 + //0x00007b53 LBB31_8 + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00007b53 movl $1, %eax + 0x41, 0x83, 0xfd, 0x0a, //0x00007b58 cmpl $10, %r13d + 0x0f, 0x82, 0xd4, 0x00, 0x00, 0x00, //0x00007b5c jb LBB31_22 + 0xb8, 0x02, 0x00, 0x00, 0x00, //0x00007b62 movl $2, %eax + 0x41, 0x83, 0xfd, 0x64, //0x00007b67 cmpl $100, %r13d + 0x0f, 0x82, 0xc5, 0x00, 0x00, 0x00, //0x00007b6b jb LBB31_22 + 0xb8, 0x03, 0x00, 0x00, 0x00, //0x00007b71 movl $3, %eax + 0x41, 0x81, 0xfd, 0xe8, 0x03, 0x00, 0x00, //0x00007b76 cmpl $1000, %r13d + 0x0f, 0x82, 0xb3, 0x00, 0x00, 0x00, //0x00007b7d jb LBB31_22 + 0x41, 0x81, 0xfd, 0x10, 0x27, 0x00, 0x00, //0x00007b83 cmpl $10000, %r13d + 0xb8, 0x05, 0x00, 0x00, 0x00, //0x00007b8a movl $5, %eax + 0xe9, 0x9f, 0x00, 0x00, 0x00, //0x00007b8f jmp LBB31_21 + //0x00007b94 LBB31_12 + 0x4d, 0x89, 0xd6, //0x00007b94 movq %r10, %r14 + 0x49, 0xc1, 0xee, 0x02, //0x00007b97 shrq $2, %r14 + 0x44, 0x89, 0xd6, //0x00007b9b movl %r10d, %esi + 0x83, 0xe6, 0xfc, //0x00007b9e andl $-4, %esi + 0x39, 0xf3, //0x00007ba1 cmpl %esi, %ebx + 0x0f, 0x96, 0xc2, //0x00007ba3 setbe %dl + 0x8d, 0x5e, 0x04, //0x00007ba6 leal $4(%rsi), %ebx + 0x39, 0xcb, //0x00007ba9 cmpl %ecx, %ebx + 0x0f, 0x96, 0xc0, //0x00007bab setbe %al + 0x38, 0xc2, //0x00007bae cmpb %al, %dl + 0x0f, 0x84, 0x1d, 0x00, 0x00, 0x00, //0x00007bb0 je LBB31_15 + 0x45, 0x31, 0xed, //0x00007bb6 xorl %r13d, %r13d + 0x39, 0xcb, //0x00007bb9 cmpl %ecx, %ebx + 0x41, 0x0f, 0x96, 0xc5, //0x00007bbb setbe %r13b + 0xe9, 0x2f, 0x00, 0x00, 0x00, //0x00007bbf jmp LBB31_17 + //0x00007bc4 LBB31_14 + 0x41, 0xc6, 0x00, 0x30, //0x00007bc4 movb $48, (%r8) + 0x41, 0x29, 0xf8, //0x00007bc8 subl %edi, %r8d + 0x41, 0xff, 0xc0, //0x00007bcb incl %r8d + 0xe9, 0x00, 0x0b, 0x00, 0x00, //0x00007bce jmp LBB31_138 + //0x00007bd3 LBB31_15 + 0x83, 0xce, 0x02, //0x00007bd3 orl $2, %esi + 0x41, 0xbd, 0x01, 0x00, 0x00, 0x00, //0x00007bd6 movl $1, %r13d + 0x41, 0x39, 0xf7, //0x00007bdc cmpl %esi, %r15d + 0x0f, 0x87, 0x0e, 0x00, 0x00, 0x00, //0x00007bdf ja LBB31_17 + 0x0f, 0x94, 0xc0, //0x00007be5 sete %al + 0x41, 0xc0, 0xea, 0x02, //0x00007be8 shrb $2, %r10b + 0x41, 0x20, 0xc2, //0x00007bec andb %al, %r10b + 0x45, 0x0f, 0xb6, 0xea, //0x00007bef movzbl %r10b, %r13d + //0x00007bf3 LBB31_17 + 0x45, 0x01, 0xf5, //0x00007bf3 addl %r14d, %r13d + 0x41, 0x81, 0xfd, 0xa0, 0x86, 0x01, 0x00, //0x00007bf6 cmpl $100000, %r13d + 0x0f, 0x82, 0x50, 0xff, 0xff, 0xff, //0x00007bfd jb LBB31_8 + //0x00007c03 LBB31_18 + 0xb8, 0x06, 0x00, 0x00, 0x00, //0x00007c03 movl $6, %eax + 0x41, 0x81, 0xfd, 0x40, 0x42, 0x0f, 0x00, //0x00007c08 cmpl $1000000, %r13d + 0x0f, 0x82, 0x21, 0x00, 0x00, 0x00, //0x00007c0f jb LBB31_22 + 0xb8, 0x07, 0x00, 0x00, 0x00, //0x00007c15 movl $7, %eax + 0x41, 0x81, 0xfd, 0x80, 0x96, 0x98, 0x00, //0x00007c1a cmpl $10000000, %r13d + 0x0f, 0x82, 0x0f, 0x00, 0x00, 0x00, //0x00007c21 jb LBB31_22 + 0x41, 0x81, 0xfd, 0x00, 0xe1, 0xf5, 0x05, //0x00007c27 cmpl $100000000, %r13d + 0xb8, 0x09, 0x00, 0x00, 0x00, //0x00007c2e movl $9, %eax + //0x00007c33 LBB31_21 + 0x83, 0xd8, 0x00, //0x00007c33 sbbl $0, %eax + //0x00007c36 LBB31_22 + 0x46, 0x8d, 0x3c, 0x18, //0x00007c36 leal (%rax,%r11), %r15d + 0x42, 0x8d, 0x4c, 0x18, 0x05, //0x00007c3a leal $5(%rax,%r11), %ecx + 0x83, 0xf9, 0x1b, //0x00007c3f cmpl $27, %ecx + 0x0f, 0x82, 0x77, 0x00, 0x00, 0x00, //0x00007c42 jb LBB31_26 + 0x89, 0xc0, //0x00007c48 movl %eax, %eax + 0x49, 0x8d, 0x5c, 0x00, 0x01, //0x00007c4a leaq $1(%r8,%rax), %rbx + 0x41, 0x81, 0xfd, 0x10, 0x27, 0x00, 0x00, //0x00007c4f cmpl $10000, %r13d + 0x0f, 0x82, 0xd9, 0x00, 0x00, 0x00, //0x00007c56 jb LBB31_30 + 0x44, 0x89, 0xe8, //0x00007c5c movl %r13d, %eax + 0x41, 0xbb, 0x59, 0x17, 0xb7, 0xd1, //0x00007c5f movl $3518437209, %r11d + 0x4c, 0x0f, 0xaf, 0xd8, //0x00007c65 imulq %rax, %r11 + 0x49, 0xc1, 0xeb, 0x2d, //0x00007c69 shrq $45, %r11 + 0x41, 0x69, 0xc3, 0xf0, 0xd8, 0xff, 0xff, //0x00007c6d imull $-10000, %r11d, %eax + 0x44, 0x01, 0xe8, //0x00007c74 addl %r13d, %eax + 0x0f, 0x84, 0xb3, 0x04, 0x00, 0x00, //0x00007c77 je LBB31_62 + 0x89, 0xc1, //0x00007c7d movl %eax, %ecx + 0x48, 0x69, 0xc9, 0x1f, 0x85, 0xeb, 0x51, //0x00007c7f imulq $1374389535, %rcx, %rcx + 0x48, 0xc1, 0xe9, 0x25, //0x00007c86 shrq $37, %rcx + 0x6b, 0xd1, 0x64, //0x00007c8a imull $100, %ecx, %edx + 0x29, 0xd0, //0x00007c8d subl %edx, %eax + 0x48, 0x8d, 0x15, 0x5a, 0x42, 0x00, 0x00, //0x00007c8f leaq $16986(%rip), %rdx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x04, 0x42, //0x00007c96 movzwl (%rdx,%rax,2), %eax + 0x66, 0x89, 0x43, 0xfe, //0x00007c9a movw %ax, $-2(%rbx) + 0x0f, 0xb7, 0x04, 0x4a, //0x00007c9e movzwl (%rdx,%rcx,2), %eax + 0x66, 0x89, 0x43, 0xfc, //0x00007ca2 movw %ax, $-4(%rbx) + 0x45, 0x31, 0xc9, //0x00007ca6 xorl %r9d, %r9d + 0x48, 0x8d, 0x4b, 0xfc, //0x00007ca9 leaq $-4(%rbx), %rcx + 0x41, 0x83, 0xfb, 0x64, //0x00007cad cmpl $100, %r11d + 0x0f, 0x83, 0x91, 0x00, 0x00, 0x00, //0x00007cb1 jae LBB31_64 + //0x00007cb7 LBB31_31 + 0x44, 0x89, 0xda, //0x00007cb7 movl %r11d, %edx + 0xe9, 0xd4, 0x00, 0x00, 0x00, //0x00007cba jmp LBB31_66 + //0x00007cbf LBB31_26 + 0x41, 0x89, 0xc4, //0x00007cbf movl %eax, %r12d + 0x45, 0x85, 0xdb, //0x00007cc2 testl %r11d, %r11d + 0x0f, 0x88, 0x1d, 0x02, 0x00, 0x00, //0x00007cc5 js LBB31_38 + 0x4b, 0x8d, 0x34, 0x20, //0x00007ccb leaq (%r8,%r12), %rsi + 0x41, 0x81, 0xfd, 0x10, 0x27, 0x00, 0x00, //0x00007ccf cmpl $10000, %r13d + 0x0f, 0x82, 0xa7, 0x02, 0x00, 0x00, //0x00007cd6 jb LBB31_43 + 0x44, 0x89, 0xe8, //0x00007cdc movl %r13d, %eax + 0xb9, 0x59, 0x17, 0xb7, 0xd1, //0x00007cdf movl $3518437209, %ecx + 0x48, 0x0f, 0xaf, 0xc8, //0x00007ce4 imulq %rax, %rcx + 0x48, 0xc1, 0xe9, 0x2d, //0x00007ce8 shrq $45, %rcx + 0x69, 0xc1, 0xf0, 0xd8, 0xff, 0xff, //0x00007cec imull $-10000, %ecx, %eax + 0x44, 0x01, 0xe8, //0x00007cf2 addl %r13d, %eax + 0x48, 0x69, 0xd0, 0x1f, 0x85, 0xeb, 0x51, //0x00007cf5 imulq $1374389535, %rax, %rdx + 0x48, 0xc1, 0xea, 0x25, //0x00007cfc shrq $37, %rdx + 0x6b, 0xda, 0x64, //0x00007d00 imull $100, %edx, %ebx + 0x29, 0xd8, //0x00007d03 subl %ebx, %eax + 0x48, 0x8d, 0x1d, 0xe4, 0x41, 0x00, 0x00, //0x00007d05 leaq $16868(%rip), %rbx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x04, 0x43, //0x00007d0c movzwl (%rbx,%rax,2), %eax + 0x66, 0x89, 0x46, 0xfe, //0x00007d10 movw %ax, $-2(%rsi) + 0x48, 0x8d, 0x46, 0xfc, //0x00007d14 leaq $-4(%rsi), %rax + 0x0f, 0xb7, 0x14, 0x53, //0x00007d18 movzwl (%rbx,%rdx,2), %edx + 0x66, 0x89, 0x56, 0xfc, //0x00007d1c movw %dx, $-4(%rsi) + 0x41, 0x89, 0xcd, //0x00007d20 movl %ecx, %r13d + 0x41, 0x83, 0xfd, 0x64, //0x00007d23 cmpl $100, %r13d + 0x0f, 0x83, 0x63, 0x02, 0x00, 0x00, //0x00007d27 jae LBB31_44 + //0x00007d2d LBB31_29 + 0x44, 0x89, 0xe9, //0x00007d2d movl %r13d, %ecx + 0xe9, 0x9e, 0x02, 0x00, 0x00, //0x00007d30 jmp LBB31_46 + //0x00007d35 LBB31_30 + 0x45, 0x31, 0xc9, //0x00007d35 xorl %r9d, %r9d + 0x48, 0x89, 0xd9, //0x00007d38 movq %rbx, %rcx + 0x45, 0x89, 0xeb, //0x00007d3b movl %r13d, %r11d + 0x41, 0x83, 0xfb, 0x64, //0x00007d3e cmpl $100, %r11d + 0x0f, 0x82, 0x6f, 0xff, 0xff, 0xff, //0x00007d42 jb LBB31_31 + //0x00007d48 LBB31_64 + 0x48, 0xff, 0xc9, //0x00007d48 decq %rcx + 0x4c, 0x8d, 0x15, 0x9e, 0x41, 0x00, 0x00, //0x00007d4b leaq $16798(%rip), %r10 /* _Digits+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007d52 .p2align 4, 0x90 + //0x00007d60 LBB31_65 + 0x44, 0x89, 0xda, //0x00007d60 movl %r11d, %edx + 0x48, 0x69, 0xd2, 0x1f, 0x85, 0xeb, 0x51, //0x00007d63 imulq $1374389535, %rdx, %rdx + 0x48, 0xc1, 0xea, 0x25, //0x00007d6a shrq $37, %rdx + 0x6b, 0xc2, 0x64, //0x00007d6e imull $100, %edx, %eax + 0x44, 0x89, 0xde, //0x00007d71 movl %r11d, %esi + 0x29, 0xc6, //0x00007d74 subl %eax, %esi + 0x41, 0x0f, 0xb7, 0x04, 0x72, //0x00007d76 movzwl (%r10,%rsi,2), %eax + 0x66, 0x89, 0x41, 0xff, //0x00007d7b movw %ax, $-1(%rcx) + 0x48, 0x83, 0xc1, 0xfe, //0x00007d7f addq $-2, %rcx + 0x41, 0x81, 0xfb, 0x0f, 0x27, 0x00, 0x00, //0x00007d83 cmpl $9999, %r11d + 0x41, 0x89, 0xd3, //0x00007d8a movl %edx, %r11d + 0x0f, 0x87, 0xcd, 0xff, 0xff, 0xff, //0x00007d8d ja LBB31_65 + //0x00007d93 LBB31_66 + 0x49, 0x8d, 0x70, 0x01, //0x00007d93 leaq $1(%r8), %rsi + 0x83, 0xfa, 0x0a, //0x00007d97 cmpl $10, %edx + 0x0f, 0x82, 0x1d, 0x00, 0x00, 0x00, //0x00007d9a jb LBB31_68 + 0x89, 0xd0, //0x00007da0 movl %edx, %eax + 0x48, 0x8d, 0x0d, 0x47, 0x41, 0x00, 0x00, //0x00007da2 leaq $16711(%rip), %rcx /* _Digits+0(%rip) */ + 0x8a, 0x14, 0x41, //0x00007da9 movb (%rcx,%rax,2), %dl + 0x8a, 0x44, 0x41, 0x01, //0x00007dac movb $1(%rcx,%rax,2), %al + 0x41, 0x88, 0x50, 0x01, //0x00007db0 movb %dl, $1(%r8) + 0x41, 0x88, 0x40, 0x02, //0x00007db4 movb %al, $2(%r8) + 0xe9, 0x05, 0x00, 0x00, 0x00, //0x00007db8 jmp LBB31_69 + //0x00007dbd LBB31_68 + 0x80, 0xc2, 0x30, //0x00007dbd addb $48, %dl + 0x88, 0x16, //0x00007dc0 movb %dl, (%rsi) + //0x00007dc2 LBB31_69 + 0x4c, 0x29, 0xcb, //0x00007dc2 subq %r9, %rbx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007dc5 .p2align 4, 0x90 + //0x00007dd0 LBB31_70 + 0x80, 0x7b, 0xff, 0x30, //0x00007dd0 cmpb $48, $-1(%rbx) + 0x48, 0x8d, 0x5b, 0xff, //0x00007dd4 leaq $-1(%rbx), %rbx + 0x0f, 0x84, 0xf2, 0xff, 0xff, 0xff, //0x00007dd8 je LBB31_70 + 0x41, 0x88, 0x10, //0x00007dde movb %dl, (%r8) + 0x48, 0x8d, 0x43, 0x01, //0x00007de1 leaq $1(%rbx), %rax + 0x48, 0x89, 0xc1, //0x00007de5 movq %rax, %rcx + 0x48, 0x29, 0xf1, //0x00007de8 subq %rsi, %rcx + 0x48, 0x83, 0xf9, 0x02, //0x00007deb cmpq $2, %rcx + 0x0f, 0x8c, 0x06, 0x00, 0x00, 0x00, //0x00007def jl LBB31_73 + 0xc6, 0x06, 0x2e, //0x00007df5 movb $46, (%rsi) + 0x48, 0x89, 0xc3, //0x00007df8 movq %rax, %rbx + //0x00007dfb LBB31_73 + 0xc6, 0x03, 0x65, //0x00007dfb movb $101, (%rbx) + 0x45, 0x85, 0xff, //0x00007dfe testl %r15d, %r15d + 0x0f, 0x8e, 0x41, 0x01, 0x00, 0x00, //0x00007e01 jle LBB31_76 + 0x41, 0xff, 0xcf, //0x00007e07 decl %r15d + 0xc6, 0x43, 0x01, 0x2b, //0x00007e0a movb $43, $1(%rbx) + 0x44, 0x89, 0xf8, //0x00007e0e movl %r15d, %eax + 0x83, 0xf8, 0x64, //0x00007e11 cmpl $100, %eax + 0x0f, 0x8c, 0x43, 0x01, 0x00, 0x00, //0x00007e14 jl LBB31_77 + //0x00007e1a LBB31_75 + 0x89, 0xc1, //0x00007e1a movl %eax, %ecx + 0xba, 0xcd, 0xcc, 0xcc, 0xcc, //0x00007e1c movl $3435973837, %edx + 0x48, 0x0f, 0xaf, 0xd1, //0x00007e21 imulq %rcx, %rdx + 0x48, 0xc1, 0xea, 0x23, //0x00007e25 shrq $35, %rdx + 0x8d, 0x0c, 0x12, //0x00007e29 leal (%rdx,%rdx), %ecx + 0x8d, 0x0c, 0x89, //0x00007e2c leal (%rcx,%rcx,4), %ecx + 0x29, 0xc8, //0x00007e2f subl %ecx, %eax + 0x48, 0x8d, 0x0d, 0xb8, 0x40, 0x00, 0x00, //0x00007e31 leaq $16568(%rip), %rcx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x0c, 0x51, //0x00007e38 movzwl (%rcx,%rdx,2), %ecx + 0x66, 0x89, 0x4b, 0x02, //0x00007e3c movw %cx, $2(%rbx) + 0x0c, 0x30, //0x00007e40 orb $48, %al + 0x88, 0x43, 0x04, //0x00007e42 movb %al, $4(%rbx) + 0x48, 0x83, 0xc3, 0x05, //0x00007e45 addq $5, %rbx + 0x49, 0x89, 0xd8, //0x00007e49 movq %rbx, %r8 + 0xe9, 0x7f, 0x08, 0x00, 0x00, //0x00007e4c jmp LBB31_137 + //0x00007e51 LBB31_32 + 0xd3, 0xee, //0x00007e51 shrl %cl, %esi + 0x81, 0xfe, 0xa0, 0x86, 0x01, 0x00, //0x00007e53 cmpl $100000, %esi + 0x0f, 0x82, 0x1a, 0x02, 0x00, 0x00, //0x00007e59 jb LBB31_52 + 0xb8, 0x06, 0x00, 0x00, 0x00, //0x00007e5f movl $6, %eax + 0x81, 0xfe, 0x40, 0x42, 0x0f, 0x00, //0x00007e64 cmpl $1000000, %esi + 0x0f, 0x82, 0x20, 0x00, 0x00, 0x00, //0x00007e6a jb LBB31_36 + 0xb8, 0x07, 0x00, 0x00, 0x00, //0x00007e70 movl $7, %eax + 0x81, 0xfe, 0x80, 0x96, 0x98, 0x00, //0x00007e75 cmpl $10000000, %esi + 0x0f, 0x82, 0x0f, 0x00, 0x00, 0x00, //0x00007e7b jb LBB31_36 + 0x81, 0xfe, 0x00, 0xe1, 0xf5, 0x05, //0x00007e81 cmpl $100000000, %esi + 0xb8, 0x09, 0x00, 0x00, 0x00, //0x00007e87 movl $9, %eax + 0x48, 0x83, 0xd8, 0x00, //0x00007e8c sbbq $0, %rax + //0x00007e90 LBB31_36 + 0x4c, 0x01, 0xc0, //0x00007e90 addq %r8, %rax + //0x00007e93 LBB31_37 + 0x89, 0xf1, //0x00007e93 movl %esi, %ecx + 0xba, 0x59, 0x17, 0xb7, 0xd1, //0x00007e95 movl $3518437209, %edx + 0x48, 0x0f, 0xaf, 0xd1, //0x00007e9a imulq %rcx, %rdx + 0x48, 0xc1, 0xea, 0x2d, //0x00007e9e shrq $45, %rdx + 0x69, 0xca, 0xf0, 0xd8, 0xff, 0xff, //0x00007ea2 imull $-10000, %edx, %ecx + 0x01, 0xf1, //0x00007ea8 addl %esi, %ecx + 0x48, 0x69, 0xf1, 0x1f, 0x85, 0xeb, 0x51, //0x00007eaa imulq $1374389535, %rcx, %rsi + 0x48, 0xc1, 0xee, 0x25, //0x00007eb1 shrq $37, %rsi + 0x6b, 0xde, 0x64, //0x00007eb5 imull $100, %esi, %ebx + 0x29, 0xd9, //0x00007eb8 subl %ebx, %ecx + 0x48, 0x8d, 0x1d, 0x2f, 0x40, 0x00, 0x00, //0x00007eba leaq $16431(%rip), %rbx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x0c, 0x4b, //0x00007ec1 movzwl (%rbx,%rcx,2), %ecx + 0x66, 0x89, 0x48, 0xfe, //0x00007ec5 movw %cx, $-2(%rax) + 0x0f, 0xb7, 0x0c, 0x73, //0x00007ec9 movzwl (%rbx,%rsi,2), %ecx + 0x66, 0x89, 0x48, 0xfc, //0x00007ecd movw %cx, $-4(%rax) + 0x49, 0x89, 0xc1, //0x00007ed1 movq %rax, %r9 + 0x48, 0x83, 0xc0, 0xfc, //0x00007ed4 addq $-4, %rax + 0x89, 0xd6, //0x00007ed8 movl %edx, %esi + 0x83, 0xfe, 0x64, //0x00007eda cmpl $100, %esi + 0x0f, 0x83, 0xd5, 0x01, 0x00, 0x00, //0x00007edd jae LBB31_56 + 0xe9, 0x17, 0x02, 0x00, 0x00, //0x00007ee3 jmp LBB31_58 + //0x00007ee8 LBB31_38 + 0x45, 0x85, 0xff, //0x00007ee8 testl %r15d, %r15d + 0x0f, 0x8f, 0x90, 0x04, 0x00, 0x00, //0x00007eeb jg LBB31_98 + 0x66, 0x41, 0xc7, 0x00, 0x30, 0x2e, //0x00007ef1 movw $11824, (%r8) + 0x49, 0x83, 0xc0, 0x02, //0x00007ef7 addq $2, %r8 + 0x45, 0x85, 0xff, //0x00007efb testl %r15d, %r15d + 0x0f, 0x89, 0x7d, 0x04, 0x00, 0x00, //0x00007efe jns LBB31_98 + 0x31, 0xf6, //0x00007f04 xorl %esi, %esi + 0x41, 0x83, 0xff, 0x80, //0x00007f06 cmpl $-128, %r15d + 0x0f, 0x87, 0x5a, 0x04, 0x00, 0x00, //0x00007f0a ja LBB31_96 + 0x45, 0x89, 0xfa, //0x00007f10 movl %r15d, %r10d + 0x41, 0xf7, 0xd2, //0x00007f13 notl %r10d + 0x49, 0xff, 0xc2, //0x00007f16 incq %r10 + 0x4c, 0x89, 0xd6, //0x00007f19 movq %r10, %rsi + 0x48, 0x83, 0xe6, 0x80, //0x00007f1c andq $-128, %rsi + 0x48, 0x8d, 0x46, 0x80, //0x00007f20 leaq $-128(%rsi), %rax + 0x48, 0x89, 0xc1, //0x00007f24 movq %rax, %rcx + 0x48, 0xc1, 0xe9, 0x07, //0x00007f27 shrq $7, %rcx + 0x48, 0xff, 0xc1, //0x00007f2b incq %rcx + 0x41, 0x89, 0xcb, //0x00007f2e movl %ecx, %r11d + 0x41, 0x83, 0xe3, 0x03, //0x00007f31 andl $3, %r11d + 0x48, 0x3d, 0x80, 0x01, 0x00, 0x00, //0x00007f35 cmpq $384, %rax + 0x0f, 0x83, 0x38, 0x03, 0x00, 0x00, //0x00007f3b jae LBB31_90 + 0x31, 0xdb, //0x00007f41 xorl %ebx, %ebx + 0xe9, 0xda, 0x03, 0x00, 0x00, //0x00007f43 jmp LBB31_92 + //0x00007f48 LBB31_76 + 0xc6, 0x43, 0x01, 0x2d, //0x00007f48 movb $45, $1(%rbx) + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00007f4c movl $1, %eax + 0x44, 0x29, 0xf8, //0x00007f51 subl %r15d, %eax + 0x83, 0xf8, 0x64, //0x00007f54 cmpl $100, %eax + 0x0f, 0x8d, 0xbd, 0xfe, 0xff, 0xff, //0x00007f57 jge LBB31_75 + //0x00007f5d LBB31_77 + 0x83, 0xf8, 0x0a, //0x00007f5d cmpl $10, %eax + 0x0f, 0x8c, 0x02, 0x01, 0x00, 0x00, //0x00007f60 jl LBB31_79 + 0x48, 0x98, //0x00007f66 cltq + 0x48, 0x8d, 0x0d, 0x81, 0x3f, 0x00, 0x00, //0x00007f68 leaq $16257(%rip), %rcx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x04, 0x41, //0x00007f6f movzwl (%rcx,%rax,2), %eax + 0x66, 0x89, 0x43, 0x02, //0x00007f73 movw %ax, $2(%rbx) + 0x48, 0x83, 0xc3, 0x04, //0x00007f77 addq $4, %rbx + 0x49, 0x89, 0xd8, //0x00007f7b movq %rbx, %r8 + 0xe9, 0x4d, 0x07, 0x00, 0x00, //0x00007f7e jmp LBB31_137 + //0x00007f83 LBB31_43 + 0x48, 0x89, 0xf0, //0x00007f83 movq %rsi, %rax + 0x41, 0x83, 0xfd, 0x64, //0x00007f86 cmpl $100, %r13d + 0x0f, 0x82, 0x9d, 0xfd, 0xff, 0xff, //0x00007f8a jb LBB31_29 + //0x00007f90 LBB31_44 + 0x48, 0xff, 0xc8, //0x00007f90 decq %rax + 0x4c, 0x8d, 0x15, 0x56, 0x3f, 0x00, 0x00, //0x00007f93 leaq $16214(%rip), %r10 /* _Digits+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007f9a .p2align 4, 0x90 + //0x00007fa0 LBB31_45 + 0x44, 0x89, 0xe9, //0x00007fa0 movl %r13d, %ecx + 0x48, 0x69, 0xc9, 0x1f, 0x85, 0xeb, 0x51, //0x00007fa3 imulq $1374389535, %rcx, %rcx + 0x48, 0xc1, 0xe9, 0x25, //0x00007faa shrq $37, %rcx + 0x6b, 0xd9, 0x64, //0x00007fae imull $100, %ecx, %ebx + 0x44, 0x89, 0xea, //0x00007fb1 movl %r13d, %edx + 0x29, 0xda, //0x00007fb4 subl %ebx, %edx + 0x41, 0x0f, 0xb7, 0x14, 0x52, //0x00007fb6 movzwl (%r10,%rdx,2), %edx + 0x66, 0x89, 0x50, 0xff, //0x00007fbb movw %dx, $-1(%rax) + 0x48, 0x83, 0xc0, 0xfe, //0x00007fbf addq $-2, %rax + 0x41, 0x81, 0xfd, 0x0f, 0x27, 0x00, 0x00, //0x00007fc3 cmpl $9999, %r13d + 0x41, 0x89, 0xcd, //0x00007fca movl %ecx, %r13d + 0x0f, 0x87, 0xcd, 0xff, 0xff, 0xff, //0x00007fcd ja LBB31_45 + //0x00007fd3 LBB31_46 + 0x49, 0x63, 0xc7, //0x00007fd3 movslq %r15d, %rax + 0x83, 0xf9, 0x0a, //0x00007fd6 cmpl $10, %ecx + 0x0f, 0x82, 0x22, 0x00, 0x00, 0x00, //0x00007fd9 jb LBB31_48 + 0x89, 0xc9, //0x00007fdf movl %ecx, %ecx + 0x48, 0x8d, 0x15, 0x08, 0x3f, 0x00, 0x00, //0x00007fe1 leaq $16136(%rip), %rdx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x0c, 0x4a, //0x00007fe8 movzwl (%rdx,%rcx,2), %ecx + 0x66, 0x41, 0x89, 0x08, //0x00007fec movw %cx, (%r8) + 0x49, 0x01, 0xc0, //0x00007ff0 addq %rax, %r8 + 0x49, 0x39, 0xc4, //0x00007ff3 cmpq %rax, %r12 + 0x0f, 0x8c, 0x17, 0x00, 0x00, 0x00, //0x00007ff6 jl LBB31_49 + 0xe9, 0xcf, 0x06, 0x00, 0x00, //0x00007ffc jmp LBB31_137 + //0x00008001 LBB31_48 + 0x80, 0xc1, 0x30, //0x00008001 addb $48, %cl + 0x41, 0x88, 0x08, //0x00008004 movb %cl, (%r8) + 0x49, 0x01, 0xc0, //0x00008007 addq %rax, %r8 + 0x49, 0x39, 0xc4, //0x0000800a cmpq %rax, %r12 + 0x0f, 0x8d, 0xbd, 0x06, 0x00, 0x00, //0x0000800d jge LBB31_137 + //0x00008013 LBB31_49 + 0x4b, 0x8d, 0x04, 0x21, //0x00008013 leaq (%r9,%r12), %rax + 0x4c, 0x8d, 0x5c, 0x07, 0x01, //0x00008017 leaq $1(%rdi,%rax), %r11 + 0x4d, 0x39, 0xc3, //0x0000801c cmpq %r8, %r11 + 0x4d, 0x0f, 0x46, 0xd8, //0x0000801f cmovbeq %r8, %r11 + 0x4a, 0x8d, 0x0c, 0x0f, //0x00008023 leaq (%rdi,%r9), %rcx + 0x4c, 0x01, 0xe1, //0x00008027 addq %r12, %rcx + 0x49, 0x29, 0xcb, //0x0000802a subq %rcx, %r11 + 0x49, 0x81, 0xfb, 0x80, 0x00, 0x00, 0x00, //0x0000802d cmpq $128, %r11 + 0x0f, 0x82, 0x06, 0x02, 0x00, 0x00, //0x00008034 jb LBB31_87 + 0x4d, 0x89, 0xda, //0x0000803a movq %r11, %r10 + 0x49, 0x83, 0xe2, 0x80, //0x0000803d andq $-128, %r10 + 0x49, 0x8d, 0x4a, 0x80, //0x00008041 leaq $-128(%r10), %rcx + 0x48, 0x89, 0xcb, //0x00008045 movq %rcx, %rbx + 0x48, 0xc1, 0xeb, 0x07, //0x00008048 shrq $7, %rbx + 0x48, 0xff, 0xc3, //0x0000804c incq %rbx + 0x89, 0xda, //0x0000804f movl %ebx, %edx + 0x83, 0xe2, 0x03, //0x00008051 andl $3, %edx + 0x48, 0x81, 0xf9, 0x80, 0x01, 0x00, 0x00, //0x00008054 cmpq $384, %rcx + 0x0f, 0x83, 0xe8, 0x00, 0x00, 0x00, //0x0000805b jae LBB31_80 + 0x31, 0xc0, //0x00008061 xorl %eax, %eax + 0xe9, 0x88, 0x01, 0x00, 0x00, //0x00008063 jmp LBB31_82 + //0x00008068 LBB31_79 + 0x04, 0x30, //0x00008068 addb $48, %al + 0x88, 0x43, 0x02, //0x0000806a movb %al, $2(%rbx) + 0x48, 0x83, 0xc3, 0x03, //0x0000806d addq $3, %rbx + 0x49, 0x89, 0xd8, //0x00008071 movq %rbx, %r8 + 0xe9, 0x57, 0x06, 0x00, 0x00, //0x00008074 jmp LBB31_137 + //0x00008079 LBB31_52 + 0x41, 0xb9, 0x01, 0x00, 0x00, 0x00, //0x00008079 movl $1, %r9d + 0x83, 0xfe, 0x0a, //0x0000807f cmpl $10, %esi + 0x0f, 0x82, 0x21, 0x00, 0x00, 0x00, //0x00008082 jb LBB31_55 + 0x41, 0xb9, 0x02, 0x00, 0x00, 0x00, //0x00008088 movl $2, %r9d + 0x83, 0xfe, 0x64, //0x0000808e cmpl $100, %esi + 0x0f, 0x82, 0x12, 0x00, 0x00, 0x00, //0x00008091 jb LBB31_55 + 0x41, 0xb9, 0x03, 0x00, 0x00, 0x00, //0x00008097 movl $3, %r9d + 0x81, 0xfe, 0xe8, 0x03, 0x00, 0x00, //0x0000809d cmpl $1000, %esi + 0x0f, 0x83, 0xab, 0x01, 0x00, 0x00, //0x000080a3 jae LBB31_88 + //0x000080a9 LBB31_55 + 0x4d, 0x01, 0xc1, //0x000080a9 addq %r8, %r9 + 0x4c, 0x89, 0xc8, //0x000080ac movq %r9, %rax + 0x83, 0xfe, 0x64, //0x000080af cmpl $100, %esi + 0x0f, 0x82, 0x47, 0x00, 0x00, 0x00, //0x000080b2 jb LBB31_58 + //0x000080b8 LBB31_56 + 0x48, 0xff, 0xc8, //0x000080b8 decq %rax + 0x4c, 0x8d, 0x15, 0x2e, 0x3e, 0x00, 0x00, //0x000080bb leaq $15918(%rip), %r10 /* _Digits+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000080c2 .p2align 4, 0x90 + //0x000080d0 LBB31_57 + 0x89, 0xf3, //0x000080d0 movl %esi, %ebx + 0x89, 0xf6, //0x000080d2 movl %esi, %esi + 0x48, 0x69, 0xf6, 0x1f, 0x85, 0xeb, 0x51, //0x000080d4 imulq $1374389535, %rsi, %rsi + 0x48, 0xc1, 0xee, 0x25, //0x000080db shrq $37, %rsi + 0x6b, 0xce, 0x64, //0x000080df imull $100, %esi, %ecx + 0x89, 0xda, //0x000080e2 movl %ebx, %edx + 0x29, 0xca, //0x000080e4 subl %ecx, %edx + 0x41, 0x0f, 0xb7, 0x0c, 0x52, //0x000080e6 movzwl (%r10,%rdx,2), %ecx + 0x66, 0x89, 0x48, 0xff, //0x000080eb movw %cx, $-1(%rax) + 0x48, 0x83, 0xc0, 0xfe, //0x000080ef addq $-2, %rax + 0x81, 0xfb, 0x0f, 0x27, 0x00, 0x00, //0x000080f3 cmpl $9999, %ebx + 0x0f, 0x87, 0xd1, 0xff, 0xff, 0xff, //0x000080f9 ja LBB31_57 + //0x000080ff LBB31_58 + 0x83, 0xfe, 0x0a, //0x000080ff cmpl $10, %esi + 0x0f, 0x82, 0x16, 0x00, 0x00, 0x00, //0x00008102 jb LBB31_60 + 0x89, 0xf0, //0x00008108 movl %esi, %eax + 0x48, 0x8d, 0x0d, 0xdf, 0x3d, 0x00, 0x00, //0x0000810a leaq $15839(%rip), %rcx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x04, 0x41, //0x00008111 movzwl (%rcx,%rax,2), %eax + 0x66, 0x41, 0x89, 0x00, //0x00008115 movw %ax, (%r8) + 0xe9, 0x07, 0x00, 0x00, 0x00, //0x00008119 jmp LBB31_61 + //0x0000811e LBB31_60 + 0x40, 0x80, 0xc6, 0x30, //0x0000811e addb $48, %sil + 0x41, 0x88, 0x30, //0x00008122 movb %sil, (%r8) + //0x00008125 LBB31_61 + 0x41, 0x29, 0xf9, //0x00008125 subl %edi, %r9d + 0x45, 0x89, 0xc8, //0x00008128 movl %r9d, %r8d + 0xe9, 0xa3, 0x05, 0x00, 0x00, //0x0000812b jmp LBB31_138 + //0x00008130 LBB31_62 + 0x41, 0xb9, 0x04, 0x00, 0x00, 0x00, //0x00008130 movl $4, %r9d + 0x48, 0x8d, 0x4b, 0xfc, //0x00008136 leaq $-4(%rbx), %rcx + 0x41, 0x83, 0xfb, 0x64, //0x0000813a cmpl $100, %r11d + 0x0f, 0x82, 0x73, 0xfb, 0xff, 0xff, //0x0000813e jb LBB31_31 + 0xe9, 0xff, 0xfb, 0xff, 0xff, //0x00008144 jmp LBB31_64 + //0x00008149 LBB31_80 + 0x48, 0x29, 0xd3, //0x00008149 subq %rdx, %rbx + 0x48, 0x8d, 0x8c, 0x07, 0xe0, 0x01, 0x00, 0x00, //0x0000814c leaq $480(%rdi,%rax), %rcx + 0x31, 0xc0, //0x00008154 xorl %eax, %eax + 0xc5, 0xfd, 0x6f, 0x05, 0x42, 0xf8, 0xff, 0xff, //0x00008156 vmovdqa $-1982(%rip), %ymm0 /* LCPI31_0+0(%rip) */ + 0x90, 0x90, //0x0000815e .p2align 4, 0x90 + //0x00008160 LBB31_81 + 0xc5, 0xfe, 0x7f, 0x84, 0x01, 0x20, 0xfe, 0xff, 0xff, //0x00008160 vmovdqu %ymm0, $-480(%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x01, 0x40, 0xfe, 0xff, 0xff, //0x00008169 vmovdqu %ymm0, $-448(%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x01, 0x60, 0xfe, 0xff, 0xff, //0x00008172 vmovdqu %ymm0, $-416(%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x01, 0x80, 0xfe, 0xff, 0xff, //0x0000817b vmovdqu %ymm0, $-384(%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x01, 0xa0, 0xfe, 0xff, 0xff, //0x00008184 vmovdqu %ymm0, $-352(%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x01, 0xc0, 0xfe, 0xff, 0xff, //0x0000818d vmovdqu %ymm0, $-320(%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x01, 0xe0, 0xfe, 0xff, 0xff, //0x00008196 vmovdqu %ymm0, $-288(%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x01, 0x00, 0xff, 0xff, 0xff, //0x0000819f vmovdqu %ymm0, $-256(%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x01, 0x20, 0xff, 0xff, 0xff, //0x000081a8 vmovdqu %ymm0, $-224(%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x01, 0x40, 0xff, 0xff, 0xff, //0x000081b1 vmovdqu %ymm0, $-192(%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x01, 0x60, 0xff, 0xff, 0xff, //0x000081ba vmovdqu %ymm0, $-160(%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x44, 0x01, 0x80, //0x000081c3 vmovdqu %ymm0, $-128(%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x44, 0x01, 0xa0, //0x000081c9 vmovdqu %ymm0, $-96(%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x44, 0x01, 0xc0, //0x000081cf vmovdqu %ymm0, $-64(%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x44, 0x01, 0xe0, //0x000081d5 vmovdqu %ymm0, $-32(%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x04, 0x01, //0x000081db vmovdqu %ymm0, (%rcx,%rax) + 0x48, 0x05, 0x00, 0x02, 0x00, 0x00, //0x000081e0 addq $512, %rax + 0x48, 0x83, 0xc3, 0xfc, //0x000081e6 addq $-4, %rbx + 0x0f, 0x85, 0x70, 0xff, 0xff, 0xff, //0x000081ea jne LBB31_81 + //0x000081f0 LBB31_82 + 0x48, 0x85, 0xd2, //0x000081f0 testq %rdx, %rdx + 0x0f, 0x84, 0x37, 0x00, 0x00, 0x00, //0x000081f3 je LBB31_85 + 0x4c, 0x01, 0xc8, //0x000081f9 addq %r9, %rax + 0x4c, 0x01, 0xe0, //0x000081fc addq %r12, %rax + 0x48, 0x8d, 0x44, 0x07, 0x60, //0x000081ff leaq $96(%rdi,%rax), %rax + 0x48, 0xf7, 0xda, //0x00008204 negq %rdx + 0xc5, 0xfd, 0x6f, 0x05, 0x91, 0xf7, 0xff, 0xff, //0x00008207 vmovdqa $-2159(%rip), %ymm0 /* LCPI31_0+0(%rip) */ + 0x90, //0x0000820f .p2align 4, 0x90 + //0x00008210 LBB31_84 + 0xc5, 0xfe, 0x7f, 0x40, 0xa0, //0x00008210 vmovdqu %ymm0, $-96(%rax) + 0xc5, 0xfe, 0x7f, 0x40, 0xc0, //0x00008215 vmovdqu %ymm0, $-64(%rax) + 0xc5, 0xfe, 0x7f, 0x40, 0xe0, //0x0000821a vmovdqu %ymm0, $-32(%rax) + 0xc5, 0xfe, 0x7f, 0x00, //0x0000821f vmovdqu %ymm0, (%rax) + 0x48, 0x83, 0xe8, 0x80, //0x00008223 subq $-128, %rax + 0x48, 0xff, 0xc2, //0x00008227 incq %rdx + 0x0f, 0x85, 0xe0, 0xff, 0xff, 0xff, //0x0000822a jne LBB31_84 + //0x00008230 LBB31_85 + 0x4d, 0x39, 0xda, //0x00008230 cmpq %r11, %r10 + 0x0f, 0x84, 0x97, 0x04, 0x00, 0x00, //0x00008233 je LBB31_137 + 0x4c, 0x01, 0xd6, //0x00008239 addq %r10, %rsi + 0x90, 0x90, 0x90, 0x90, //0x0000823c .p2align 4, 0x90 + //0x00008240 LBB31_87 + 0xc6, 0x06, 0x30, //0x00008240 movb $48, (%rsi) + 0x48, 0xff, 0xc6, //0x00008243 incq %rsi + 0x4c, 0x39, 0xc6, //0x00008246 cmpq %r8, %rsi + 0x0f, 0x82, 0xf1, 0xff, 0xff, 0xff, //0x00008249 jb LBB31_87 + 0xe9, 0x7c, 0x04, 0x00, 0x00, //0x0000824f jmp LBB31_137 + //0x00008254 LBB31_88 + 0x81, 0xfe, 0x10, 0x27, 0x00, 0x00, //0x00008254 cmpl $10000, %esi + 0x4c, 0x89, 0xc0, //0x0000825a movq %r8, %rax + 0x48, 0x83, 0xd8, 0x00, //0x0000825d sbbq $0, %rax + 0x48, 0x83, 0xc0, 0x05, //0x00008261 addq $5, %rax + 0x81, 0xfe, 0x10, 0x27, 0x00, 0x00, //0x00008265 cmpl $10000, %esi + 0x0f, 0x83, 0x22, 0xfc, 0xff, 0xff, //0x0000826b jae LBB31_37 + 0x49, 0x89, 0xc1, //0x00008271 movq %rax, %r9 + 0xe9, 0x3f, 0xfe, 0xff, 0xff, //0x00008274 jmp LBB31_56 + //0x00008279 LBB31_90 + 0x49, 0x8d, 0x84, 0x39, 0xe2, 0x01, 0x00, 0x00, //0x00008279 leaq $482(%r9,%rdi), %rax + 0x4d, 0x89, 0xde, //0x00008281 movq %r11, %r14 + 0x49, 0x29, 0xce, //0x00008284 subq %rcx, %r14 + 0x31, 0xdb, //0x00008287 xorl %ebx, %ebx + 0xc5, 0xfd, 0x6f, 0x05, 0x0f, 0xf7, 0xff, 0xff, //0x00008289 vmovdqa $-2289(%rip), %ymm0 /* LCPI31_0+0(%rip) */ + //0x00008291 LBB31_91 + 0xc5, 0xfe, 0x7f, 0x84, 0x18, 0x20, 0xfe, 0xff, 0xff, //0x00008291 vmovdqu %ymm0, $-480(%rax,%rbx) + 0xc5, 0xfe, 0x7f, 0x84, 0x18, 0x40, 0xfe, 0xff, 0xff, //0x0000829a vmovdqu %ymm0, $-448(%rax,%rbx) + 0xc5, 0xfe, 0x7f, 0x84, 0x18, 0x60, 0xfe, 0xff, 0xff, //0x000082a3 vmovdqu %ymm0, $-416(%rax,%rbx) + 0xc5, 0xfe, 0x7f, 0x84, 0x18, 0x80, 0xfe, 0xff, 0xff, //0x000082ac vmovdqu %ymm0, $-384(%rax,%rbx) + 0xc5, 0xfe, 0x7f, 0x84, 0x18, 0xa0, 0xfe, 0xff, 0xff, //0x000082b5 vmovdqu %ymm0, $-352(%rax,%rbx) + 0xc5, 0xfe, 0x7f, 0x84, 0x18, 0xc0, 0xfe, 0xff, 0xff, //0x000082be vmovdqu %ymm0, $-320(%rax,%rbx) + 0xc5, 0xfe, 0x7f, 0x84, 0x18, 0xe0, 0xfe, 0xff, 0xff, //0x000082c7 vmovdqu %ymm0, $-288(%rax,%rbx) + 0xc5, 0xfe, 0x7f, 0x84, 0x18, 0x00, 0xff, 0xff, 0xff, //0x000082d0 vmovdqu %ymm0, $-256(%rax,%rbx) + 0xc5, 0xfe, 0x7f, 0x84, 0x18, 0x20, 0xff, 0xff, 0xff, //0x000082d9 vmovdqu %ymm0, $-224(%rax,%rbx) + 0xc5, 0xfe, 0x7f, 0x84, 0x18, 0x40, 0xff, 0xff, 0xff, //0x000082e2 vmovdqu %ymm0, $-192(%rax,%rbx) + 0xc5, 0xfe, 0x7f, 0x84, 0x18, 0x60, 0xff, 0xff, 0xff, //0x000082eb vmovdqu %ymm0, $-160(%rax,%rbx) + 0xc5, 0xfe, 0x7f, 0x44, 0x18, 0x80, //0x000082f4 vmovdqu %ymm0, $-128(%rax,%rbx) + 0xc5, 0xfe, 0x7f, 0x44, 0x18, 0xa0, //0x000082fa vmovdqu %ymm0, $-96(%rax,%rbx) + 0xc5, 0xfe, 0x7f, 0x44, 0x18, 0xc0, //0x00008300 vmovdqu %ymm0, $-64(%rax,%rbx) + 0xc5, 0xfe, 0x7f, 0x44, 0x18, 0xe0, //0x00008306 vmovdqu %ymm0, $-32(%rax,%rbx) + 0xc5, 0xfe, 0x7f, 0x04, 0x18, //0x0000830c vmovdqu %ymm0, (%rax,%rbx) + 0x48, 0x81, 0xc3, 0x00, 0x02, 0x00, 0x00, //0x00008311 addq $512, %rbx + 0x49, 0x83, 0xc6, 0x04, //0x00008318 addq $4, %r14 + 0x0f, 0x85, 0x6f, 0xff, 0xff, 0xff, //0x0000831c jne LBB31_91 + //0x00008322 LBB31_92 + 0x4d, 0x85, 0xdb, //0x00008322 testq %r11, %r11 + 0x0f, 0x84, 0x33, 0x00, 0x00, 0x00, //0x00008325 je LBB31_95 + 0x4c, 0x01, 0xcb, //0x0000832b addq %r9, %rbx + 0x48, 0x8d, 0x44, 0x1f, 0x62, //0x0000832e leaq $98(%rdi,%rbx), %rax + 0x49, 0xf7, 0xdb, //0x00008333 negq %r11 + 0xc5, 0xfd, 0x6f, 0x05, 0x62, 0xf6, 0xff, 0xff, //0x00008336 vmovdqa $-2462(%rip), %ymm0 /* LCPI31_0+0(%rip) */ + //0x0000833e LBB31_94 + 0xc5, 0xfe, 0x7f, 0x40, 0xa0, //0x0000833e vmovdqu %ymm0, $-96(%rax) + 0xc5, 0xfe, 0x7f, 0x40, 0xc0, //0x00008343 vmovdqu %ymm0, $-64(%rax) + 0xc5, 0xfe, 0x7f, 0x40, 0xe0, //0x00008348 vmovdqu %ymm0, $-32(%rax) + 0xc5, 0xfe, 0x7f, 0x00, //0x0000834d vmovdqu %ymm0, (%rax) + 0x48, 0x83, 0xe8, 0x80, //0x00008351 subq $-128, %rax + 0x49, 0xff, 0xc3, //0x00008355 incq %r11 + 0x0f, 0x85, 0xe0, 0xff, 0xff, 0xff, //0x00008358 jne LBB31_94 + //0x0000835e LBB31_95 + 0x49, 0x01, 0xf0, //0x0000835e addq %rsi, %r8 + 0x49, 0x39, 0xf2, //0x00008361 cmpq %rsi, %r10 + 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x00008364 je LBB31_98 + //0x0000836a LBB31_96 + 0x44, 0x89, 0xf8, //0x0000836a movl %r15d, %eax + 0xf7, 0xd8, //0x0000836d negl %eax + 0x90, //0x0000836f .p2align 4, 0x90 + //0x00008370 LBB31_97 + 0x41, 0xc6, 0x00, 0x30, //0x00008370 movb $48, (%r8) + 0x49, 0xff, 0xc0, //0x00008374 incq %r8 + 0xff, 0xc6, //0x00008377 incl %esi + 0x39, 0xc6, //0x00008379 cmpl %eax, %esi + 0x0f, 0x8c, 0xef, 0xff, 0xff, 0xff, //0x0000837b jl LBB31_97 + //0x00008381 LBB31_98 + 0x4b, 0x8d, 0x04, 0x20, //0x00008381 leaq (%r8,%r12), %rax + 0x41, 0x81, 0xfd, 0x10, 0x27, 0x00, 0x00, //0x00008385 cmpl $10000, %r13d + 0x0f, 0x82, 0x63, 0x00, 0x00, 0x00, //0x0000838c jb LBB31_101 + 0x44, 0x89, 0xe9, //0x00008392 movl %r13d, %ecx + 0x41, 0xba, 0x59, 0x17, 0xb7, 0xd1, //0x00008395 movl $3518437209, %r10d + 0x4c, 0x0f, 0xaf, 0xd1, //0x0000839b imulq %rcx, %r10 + 0x49, 0xc1, 0xea, 0x2d, //0x0000839f shrq $45, %r10 + 0x41, 0x69, 0xca, 0xf0, 0xd8, 0xff, 0xff, //0x000083a3 imull $-10000, %r10d, %ecx + 0x44, 0x01, 0xe9, //0x000083aa addl %r13d, %ecx + 0x0f, 0x84, 0x87, 0x01, 0x00, 0x00, //0x000083ad je LBB31_103 + 0x89, 0xca, //0x000083b3 movl %ecx, %edx + 0x48, 0x69, 0xd2, 0x1f, 0x85, 0xeb, 0x51, //0x000083b5 imulq $1374389535, %rdx, %rdx + 0x48, 0xc1, 0xea, 0x25, //0x000083bc shrq $37, %rdx + 0x6b, 0xda, 0x64, //0x000083c0 imull $100, %edx, %ebx + 0x29, 0xd9, //0x000083c3 subl %ebx, %ecx + 0x48, 0x8d, 0x1d, 0x24, 0x3b, 0x00, 0x00, //0x000083c5 leaq $15140(%rip), %rbx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x0c, 0x4b, //0x000083cc movzwl (%rbx,%rcx,2), %ecx + 0x66, 0x89, 0x48, 0xfe, //0x000083d0 movw %cx, $-2(%rax) + 0x0f, 0xb7, 0x0c, 0x53, //0x000083d4 movzwl (%rbx,%rdx,2), %ecx + 0x66, 0x89, 0x48, 0xfc, //0x000083d8 movw %cx, $-4(%rax) + 0x45, 0x31, 0xc9, //0x000083dc xorl %r9d, %r9d + 0x48, 0x83, 0xc0, 0xfc, //0x000083df addq $-4, %rax + 0x41, 0x83, 0xfa, 0x64, //0x000083e3 cmpl $100, %r10d + 0x0f, 0x83, 0x18, 0x00, 0x00, 0x00, //0x000083e7 jae LBB31_105 + //0x000083ed LBB31_102 + 0x44, 0x89, 0xd1, //0x000083ed movl %r10d, %ecx + 0xe9, 0x4d, 0x00, 0x00, 0x00, //0x000083f0 jmp LBB31_107 + //0x000083f5 LBB31_101 + 0x45, 0x31, 0xc9, //0x000083f5 xorl %r9d, %r9d + 0x45, 0x89, 0xea, //0x000083f8 movl %r13d, %r10d + 0x41, 0x83, 0xfa, 0x64, //0x000083fb cmpl $100, %r10d + 0x0f, 0x82, 0xe8, 0xff, 0xff, 0xff, //0x000083ff jb LBB31_102 + //0x00008405 LBB31_105 + 0x48, 0xff, 0xc8, //0x00008405 decq %rax + 0x48, 0x8d, 0x15, 0xe1, 0x3a, 0x00, 0x00, //0x00008408 leaq $15073(%rip), %rdx /* _Digits+0(%rip) */ + 0x90, //0x0000840f .p2align 4, 0x90 + //0x00008410 LBB31_106 + 0x44, 0x89, 0xd1, //0x00008410 movl %r10d, %ecx + 0x48, 0x69, 0xc9, 0x1f, 0x85, 0xeb, 0x51, //0x00008413 imulq $1374389535, %rcx, %rcx + 0x48, 0xc1, 0xe9, 0x25, //0x0000841a shrq $37, %rcx + 0x6b, 0xd9, 0x64, //0x0000841e imull $100, %ecx, %ebx + 0x44, 0x89, 0xd6, //0x00008421 movl %r10d, %esi + 0x29, 0xde, //0x00008424 subl %ebx, %esi + 0x0f, 0xb7, 0x34, 0x72, //0x00008426 movzwl (%rdx,%rsi,2), %esi + 0x66, 0x89, 0x70, 0xff, //0x0000842a movw %si, $-1(%rax) + 0x48, 0x83, 0xc0, 0xfe, //0x0000842e addq $-2, %rax + 0x41, 0x81, 0xfa, 0x0f, 0x27, 0x00, 0x00, //0x00008432 cmpl $9999, %r10d + 0x41, 0x89, 0xca, //0x00008439 movl %ecx, %r10d + 0x0f, 0x87, 0xce, 0xff, 0xff, 0xff, //0x0000843c ja LBB31_106 + //0x00008442 LBB31_107 + 0x83, 0xf9, 0x0a, //0x00008442 cmpl $10, %ecx + 0x0f, 0x82, 0x16, 0x00, 0x00, 0x00, //0x00008445 jb LBB31_109 + 0x89, 0xc8, //0x0000844b movl %ecx, %eax + 0x48, 0x8d, 0x0d, 0x9c, 0x3a, 0x00, 0x00, //0x0000844d leaq $15004(%rip), %rcx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x04, 0x41, //0x00008454 movzwl (%rcx,%rax,2), %eax + 0x66, 0x41, 0x89, 0x00, //0x00008458 movw %ax, (%r8) + 0xe9, 0x06, 0x00, 0x00, 0x00, //0x0000845c jmp LBB31_110 + //0x00008461 LBB31_109 + 0x80, 0xc1, 0x30, //0x00008461 addb $48, %cl + 0x41, 0x88, 0x08, //0x00008464 movb %cl, (%r8) + //0x00008467 LBB31_110 + 0x4d, 0x29, 0xcc, //0x00008467 subq %r9, %r12 + 0x49, 0x8d, 0x74, 0x24, 0x01, //0x0000846a leaq $1(%r12), %rsi + 0x49, 0x8d, 0x54, 0x24, 0x61, //0x0000846f leaq $97(%r12), %rdx + 0x49, 0x8d, 0x44, 0x24, 0x02, //0x00008474 leaq $2(%r12), %rax + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008479 .p2align 4, 0x90 + //0x00008480 LBB31_111 + 0x48, 0xff, 0xca, //0x00008480 decq %rdx + 0x48, 0xff, 0xce, //0x00008483 decq %rsi + 0x48, 0xff, 0xc8, //0x00008486 decq %rax + 0x43, 0x80, 0x7c, 0x20, 0xff, 0x30, //0x00008489 cmpb $48, $-1(%r8,%r12) + 0x4d, 0x8d, 0x64, 0x24, 0xff, //0x0000848f leaq $-1(%r12), %r12 + 0x0f, 0x84, 0xe6, 0xff, 0xff, 0xff, //0x00008494 je LBB31_111 + 0x4d, 0x8d, 0x0c, 0x30, //0x0000849a leaq (%r8,%rsi), %r9 + 0x45, 0x85, 0xff, //0x0000849e testl %r15d, %r15d + 0x0f, 0x8e, 0x8b, 0x00, 0x00, 0x00, //0x000084a1 jle LBB31_116 + 0x44, 0x89, 0xc9, //0x000084a7 movl %r9d, %ecx + 0x44, 0x29, 0xc1, //0x000084aa subl %r8d, %ecx + 0x41, 0x39, 0xcf, //0x000084ad cmpl %ecx, %r15d + 0x0f, 0x8d, 0x23, 0x00, 0x00, 0x00, //0x000084b0 jge LBB31_117 + 0x43, 0x8d, 0x0c, 0x07, //0x000084b6 leal (%r15,%r8), %ecx + 0x41, 0x29, 0xc9, //0x000084ba subl %ecx, %r9d + 0x49, 0x8d, 0x49, 0xff, //0x000084bd leaq $-1(%r9), %rcx + 0x45, 0x89, 0xca, //0x000084c1 movl %r9d, %r10d + 0x41, 0x83, 0xe2, 0x03, //0x000084c4 andl $3, %r10d + 0x48, 0x83, 0xf9, 0x03, //0x000084c8 cmpq $3, %rcx + 0x0f, 0x83, 0x81, 0x00, 0x00, 0x00, //0x000084cc jae LBB31_121 + 0x31, 0xc9, //0x000084d2 xorl %ecx, %ecx + 0xe9, 0xa3, 0x00, 0x00, 0x00, //0x000084d4 jmp LBB31_124 + //0x000084d9 LBB31_117 + 0x0f, 0x8e, 0x53, 0x00, 0x00, 0x00, //0x000084d9 jle LBB31_116 + 0x45, 0x01, 0xc7, //0x000084df addl %r8d, %r15d + 0x45, 0x89, 0xce, //0x000084e2 movl %r9d, %r14d + 0x41, 0xf7, 0xd6, //0x000084e5 notl %r14d + 0x45, 0x01, 0xfe, //0x000084e8 addl %r15d, %r14d + 0x45, 0x31, 0xd2, //0x000084eb xorl %r10d, %r10d + 0x4d, 0x89, 0xcb, //0x000084ee movq %r9, %r11 + 0x41, 0x83, 0xfe, 0x7e, //0x000084f1 cmpl $126, %r14d + 0x0f, 0x86, 0xb4, 0x01, 0x00, 0x00, //0x000084f5 jbe LBB31_135 + 0x49, 0xff, 0xc6, //0x000084fb incq %r14 + 0x4d, 0x89, 0xf2, //0x000084fe movq %r14, %r10 + 0x49, 0x83, 0xe2, 0x80, //0x00008501 andq $-128, %r10 + 0x4f, 0x8d, 0x1c, 0x10, //0x00008505 leaq (%r8,%r10), %r11 + 0x49, 0x8d, 0x5a, 0x80, //0x00008509 leaq $-128(%r10), %rbx + 0x48, 0x89, 0xd9, //0x0000850d movq %rbx, %rcx + 0x48, 0xc1, 0xe9, 0x07, //0x00008510 shrq $7, %rcx + 0x48, 0xff, 0xc1, //0x00008514 incq %rcx + 0x41, 0x89, 0xcc, //0x00008517 movl %ecx, %r12d + 0x41, 0x83, 0xe4, 0x03, //0x0000851a andl $3, %r12d + 0x48, 0x81, 0xfb, 0x80, 0x01, 0x00, 0x00, //0x0000851e cmpq $384, %rbx + 0x0f, 0x83, 0x8f, 0x00, 0x00, 0x00, //0x00008525 jae LBB31_129 + 0x31, 0xc9, //0x0000852b xorl %ecx, %ecx + 0xe9, 0x30, 0x01, 0x00, 0x00, //0x0000852d jmp LBB31_131 + //0x00008532 LBB31_116 + 0x4d, 0x89, 0xc8, //0x00008532 movq %r9, %r8 + 0xe9, 0x96, 0x01, 0x00, 0x00, //0x00008535 jmp LBB31_137 + //0x0000853a LBB31_103 + 0x41, 0xb9, 0x04, 0x00, 0x00, 0x00, //0x0000853a movl $4, %r9d + 0x48, 0x83, 0xc0, 0xfc, //0x00008540 addq $-4, %rax + 0x41, 0x83, 0xfa, 0x64, //0x00008544 cmpl $100, %r10d + 0x0f, 0x82, 0x9f, 0xfe, 0xff, 0xff, //0x00008548 jb LBB31_102 + 0xe9, 0xb2, 0xfe, 0xff, 0xff, //0x0000854e jmp LBB31_105 + //0x00008553 LBB31_121 + 0x4d, 0x89, 0xd3, //0x00008553 movq %r10, %r11 + 0x4d, 0x29, 0xcb, //0x00008556 subq %r9, %r11 + 0x31, 0xc9, //0x00008559 xorl %ecx, %ecx + 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000855b .p2align 4, 0x90 + //0x00008560 LBB31_122 + 0x49, 0x8d, 0x1c, 0x08, //0x00008560 leaq (%r8,%rcx), %rbx + 0x8b, 0x54, 0x1e, 0xfc, //0x00008564 movl $-4(%rsi,%rbx), %edx + 0x89, 0x54, 0x1e, 0xfd, //0x00008568 movl %edx, $-3(%rsi,%rbx) + 0x48, 0x83, 0xc1, 0xfc, //0x0000856c addq $-4, %rcx + 0x49, 0x39, 0xcb, //0x00008570 cmpq %rcx, %r11 + 0x0f, 0x85, 0xe7, 0xff, 0xff, 0xff, //0x00008573 jne LBB31_122 + 0x48, 0xf7, 0xd9, //0x00008579 negq %rcx + //0x0000857c LBB31_124 + 0x4d, 0x85, 0xd2, //0x0000857c testq %r10, %r10 + 0x0f, 0x84, 0x25, 0x00, 0x00, 0x00, //0x0000857f je LBB31_127 + 0x49, 0xf7, 0xda, //0x00008585 negq %r10 + 0x4c, 0x89, 0xc2, //0x00008588 movq %r8, %rdx + 0x48, 0x29, 0xca, //0x0000858b subq %rcx, %rdx + 0x31, 0xc9, //0x0000858e xorl %ecx, %ecx + //0x00008590 .p2align 4, 0x90 + //0x00008590 LBB31_126 + 0x48, 0x8d, 0x34, 0x0a, //0x00008590 leaq (%rdx,%rcx), %rsi + 0x41, 0x0f, 0xb6, 0x1c, 0x34, //0x00008594 movzbl (%r12,%rsi), %ebx + 0x41, 0x88, 0x5c, 0x34, 0x01, //0x00008599 movb %bl, $1(%r12,%rsi) + 0x48, 0xff, 0xc9, //0x0000859e decq %rcx + 0x49, 0x39, 0xca, //0x000085a1 cmpq %rcx, %r10 + 0x0f, 0x85, 0xe6, 0xff, 0xff, 0xff, //0x000085a4 jne LBB31_126 + //0x000085aa LBB31_127 + 0x49, 0x63, 0xcf, //0x000085aa movslq %r15d, %rcx + 0x41, 0xc6, 0x04, 0x08, 0x2e, //0x000085ad movb $46, (%r8,%rcx) + 0x49, 0x01, 0xc0, //0x000085b2 addq %rax, %r8 + 0xe9, 0x16, 0x01, 0x00, 0x00, //0x000085b5 jmp LBB31_137 + //0x000085ba LBB31_129 + 0x4c, 0x89, 0xe3, //0x000085ba movq %r12, %rbx + 0x48, 0x29, 0xcb, //0x000085bd subq %rcx, %rbx + 0x31, 0xc9, //0x000085c0 xorl %ecx, %ecx + 0xc5, 0xfd, 0x6f, 0x05, 0xd6, 0xf3, 0xff, 0xff, //0x000085c2 vmovdqa $-3114(%rip), %ymm0 /* LCPI31_0+0(%rip) */ + //0x000085ca LBB31_130 + 0x49, 0x8d, 0x04, 0x08, //0x000085ca leaq (%r8,%rcx), %rax + 0xc5, 0xfe, 0x7f, 0x04, 0x06, //0x000085ce vmovdqu %ymm0, (%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x44, 0x06, 0x20, //0x000085d3 vmovdqu %ymm0, $32(%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x44, 0x06, 0x40, //0x000085d9 vmovdqu %ymm0, $64(%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x44, 0x06, 0x60, //0x000085df vmovdqu %ymm0, $96(%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x06, 0x80, 0x00, 0x00, 0x00, //0x000085e5 vmovdqu %ymm0, $128(%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x06, 0xa0, 0x00, 0x00, 0x00, //0x000085ee vmovdqu %ymm0, $160(%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x06, 0xc0, 0x00, 0x00, 0x00, //0x000085f7 vmovdqu %ymm0, $192(%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x06, 0xe0, 0x00, 0x00, 0x00, //0x00008600 vmovdqu %ymm0, $224(%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x06, 0x00, 0x01, 0x00, 0x00, //0x00008609 vmovdqu %ymm0, $256(%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x06, 0x20, 0x01, 0x00, 0x00, //0x00008612 vmovdqu %ymm0, $288(%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x06, 0x40, 0x01, 0x00, 0x00, //0x0000861b vmovdqu %ymm0, $320(%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x06, 0x60, 0x01, 0x00, 0x00, //0x00008624 vmovdqu %ymm0, $352(%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x06, 0x80, 0x01, 0x00, 0x00, //0x0000862d vmovdqu %ymm0, $384(%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x06, 0xa0, 0x01, 0x00, 0x00, //0x00008636 vmovdqu %ymm0, $416(%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x06, 0xc0, 0x01, 0x00, 0x00, //0x0000863f vmovdqu %ymm0, $448(%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x06, 0xe0, 0x01, 0x00, 0x00, //0x00008648 vmovdqu %ymm0, $480(%rsi,%rax) + 0x48, 0x81, 0xc1, 0x00, 0x02, 0x00, 0x00, //0x00008651 addq $512, %rcx + 0x48, 0x83, 0xc3, 0x04, //0x00008658 addq $4, %rbx + 0x0f, 0x85, 0x68, 0xff, 0xff, 0xff, //0x0000865c jne LBB31_130 + //0x00008662 LBB31_131 + 0x49, 0x01, 0xf3, //0x00008662 addq %rsi, %r11 + 0x4d, 0x85, 0xe4, //0x00008665 testq %r12, %r12 + 0x0f, 0x84, 0x35, 0x00, 0x00, 0x00, //0x00008668 je LBB31_134 + 0x49, 0x01, 0xc8, //0x0000866e addq %rcx, %r8 + 0x49, 0x01, 0xd0, //0x00008671 addq %rdx, %r8 + 0x49, 0xf7, 0xdc, //0x00008674 negq %r12 + 0xc5, 0xfd, 0x6f, 0x05, 0x21, 0xf3, 0xff, 0xff, //0x00008677 vmovdqa $-3295(%rip), %ymm0 /* LCPI31_0+0(%rip) */ + //0x0000867f LBB31_133 + 0xc4, 0xc1, 0x7e, 0x7f, 0x40, 0xa0, //0x0000867f vmovdqu %ymm0, $-96(%r8) + 0xc4, 0xc1, 0x7e, 0x7f, 0x40, 0xc0, //0x00008685 vmovdqu %ymm0, $-64(%r8) + 0xc4, 0xc1, 0x7e, 0x7f, 0x40, 0xe0, //0x0000868b vmovdqu %ymm0, $-32(%r8) + 0xc4, 0xc1, 0x7e, 0x7f, 0x00, //0x00008691 vmovdqu %ymm0, (%r8) + 0x49, 0x83, 0xe8, 0x80, //0x00008696 subq $-128, %r8 + 0x49, 0xff, 0xc4, //0x0000869a incq %r12 + 0x0f, 0x85, 0xdc, 0xff, 0xff, 0xff, //0x0000869d jne LBB31_133 + //0x000086a3 LBB31_134 + 0x4d, 0x89, 0xd8, //0x000086a3 movq %r11, %r8 + 0x4d, 0x39, 0xd6, //0x000086a6 cmpq %r10, %r14 + 0x0f, 0x84, 0x21, 0x00, 0x00, 0x00, //0x000086a9 je LBB31_137 + //0x000086af LBB31_135 + 0x45, 0x29, 0xd7, //0x000086af subl %r10d, %r15d + 0x45, 0x29, 0xcf, //0x000086b2 subl %r9d, %r15d + 0x4d, 0x89, 0xd8, //0x000086b5 movq %r11, %r8 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000086b8 .p2align 4, 0x90 + //0x000086c0 LBB31_136 + 0x41, 0xc6, 0x00, 0x30, //0x000086c0 movb $48, (%r8) + 0x49, 0xff, 0xc0, //0x000086c4 incq %r8 + 0x41, 0xff, 0xcf, //0x000086c7 decl %r15d + 0x0f, 0x85, 0xf0, 0xff, 0xff, 0xff, //0x000086ca jne LBB31_136 + //0x000086d0 LBB31_137 + 0x41, 0x29, 0xf8, //0x000086d0 subl %edi, %r8d + //0x000086d3 LBB31_138 + 0x44, 0x89, 0xc0, //0x000086d3 movl %r8d, %eax + 0x5b, //0x000086d6 popq %rbx + 0x41, 0x5c, //0x000086d7 popq %r12 + 0x41, 0x5d, //0x000086d9 popq %r13 + 0x41, 0x5e, //0x000086db popq %r14 + 0x41, 0x5f, //0x000086dd popq %r15 + 0x5d, //0x000086df popq %rbp + 0xc5, 0xf8, 0x77, //0x000086e0 vzeroupper + 0xc3, //0x000086e3 retq + //0x000086e4 LBB31_139 + 0x45, 0x31, 0xc0, //0x000086e4 xorl %r8d, %r8d + 0xe9, 0xe7, 0xff, 0xff, 0xff, //0x000086e7 jmp LBB31_138 + //0x000086ec LBB31_140 + 0x41, 0xbf, 0x6b, 0xff, 0xff, 0xff, //0x000086ec movl $-149, %r15d + 0x89, 0xc6, //0x000086f2 movl %eax, %esi + 0xe9, 0x46, 0xf3, 0xff, 0xff, //0x000086f4 jmp LBB31_5 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000086f9 .p2align 4, 0x00 + //0x00008700 LCPI32_0 + 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, //0x00008700 QUAD $0x4040404040404040; QUAD $0x4040404040404040 // .space 16, '@@@@@@@@@@@@@@@@' + //0x00008710 LCPI32_1 + 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, //0x00008710 QUAD $0x5b5b5b5b5b5b5b5b; QUAD $0x5b5b5b5b5b5b5b5b // .space 16, '[[[[[[[[[[[[[[[[' + //0x00008720 LCPI32_2 + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, //0x00008720 QUAD $0x0101010101010101; QUAD $0x0101010101010101 // .space 16, '\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01' + //0x00008730 LCPI32_3 + 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, //0x00008730 QUAD $0xbfbfbfbfbfbfbfbf; QUAD $0xbfbfbfbfbfbfbfbf // .space 16, '\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf' + //0x00008740 LCPI32_4 + 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, //0x00008740 QUAD $0x1919191919191919; QUAD $0x1919191919191919 // .space 16, '\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19' + //0x00008750 LCPI32_5 + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x00008750 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' + //0x00008760 .p2align 4, 0x90 + //0x00008760 _to_lower + 0x55, //0x00008760 pushq %rbp + 0x48, 0x89, 0xe5, //0x00008761 movq %rsp, %rbp + 0x48, 0x83, 0xfa, 0x10, //0x00008764 cmpq $16, %rdx + 0x0f, 0x82, 0xdf, 0x00, 0x00, 0x00, //0x00008768 jb LBB32_8 + 0x48, 0x8d, 0x4a, 0xf0, //0x0000876e leaq $-16(%rdx), %rcx + 0xf6, 0xc1, 0x10, //0x00008772 testb $16, %cl + 0x0f, 0x85, 0x4b, 0x00, 0x00, 0x00, //0x00008775 jne LBB32_2 + 0xc5, 0xfa, 0x6f, 0x06, //0x0000877b vmovdqu (%rsi), %xmm0 + 0xc5, 0xf9, 0x64, 0x0d, 0x79, 0xff, 0xff, 0xff, //0x0000877f vpcmpgtb $-135(%rip), %xmm0, %xmm1 /* LCPI32_0+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x15, 0x81, 0xff, 0xff, 0xff, //0x00008787 vmovdqa $-127(%rip), %xmm2 /* LCPI32_1+0(%rip) */ + 0xc5, 0xe9, 0x64, 0xd0, //0x0000878f vpcmpgtb %xmm0, %xmm2, %xmm2 + 0xc5, 0xe9, 0xdb, 0xc9, //0x00008793 vpand %xmm1, %xmm2, %xmm1 + 0xc5, 0xf1, 0xdb, 0x0d, 0x81, 0xff, 0xff, 0xff, //0x00008797 vpand $-127(%rip), %xmm1, %xmm1 /* LCPI32_2+0(%rip) */ + 0xc5, 0xf1, 0x71, 0xf1, 0x05, //0x0000879f vpsllw $5, %xmm1, %xmm1 + 0xc5, 0xf1, 0xfc, 0xc0, //0x000087a4 vpaddb %xmm0, %xmm1, %xmm0 + 0xc5, 0xfa, 0x7f, 0x07, //0x000087a8 vmovdqu %xmm0, (%rdi) + 0x48, 0x83, 0xc6, 0x10, //0x000087ac addq $16, %rsi + 0x48, 0x83, 0xc7, 0x10, //0x000087b0 addq $16, %rdi + 0x48, 0x89, 0xc8, //0x000087b4 movq %rcx, %rax + 0x48, 0x83, 0xf9, 0x10, //0x000087b7 cmpq $16, %rcx + 0x0f, 0x83, 0x12, 0x00, 0x00, 0x00, //0x000087bb jae LBB32_5 + 0xe9, 0x84, 0x00, 0x00, 0x00, //0x000087c1 jmp LBB32_7 + //0x000087c6 LBB32_2 + 0x48, 0x89, 0xd0, //0x000087c6 movq %rdx, %rax + 0x48, 0x83, 0xf9, 0x10, //0x000087c9 cmpq $16, %rcx + 0x0f, 0x82, 0x77, 0x00, 0x00, 0x00, //0x000087cd jb LBB32_7 + //0x000087d3 LBB32_5 + 0xc5, 0xf9, 0x6f, 0x05, 0x25, 0xff, 0xff, 0xff, //0x000087d3 vmovdqa $-219(%rip), %xmm0 /* LCPI32_0+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x0d, 0x2d, 0xff, 0xff, 0xff, //0x000087db vmovdqa $-211(%rip), %xmm1 /* LCPI32_1+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x15, 0x35, 0xff, 0xff, 0xff, //0x000087e3 vmovdqa $-203(%rip), %xmm2 /* LCPI32_2+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, //0x000087eb .p2align 4, 0x90 + //0x000087f0 LBB32_6 + 0xc5, 0xfa, 0x6f, 0x1e, //0x000087f0 vmovdqu (%rsi), %xmm3 + 0xc5, 0xe1, 0x64, 0xe0, //0x000087f4 vpcmpgtb %xmm0, %xmm3, %xmm4 + 0xc5, 0xf1, 0x64, 0xeb, //0x000087f8 vpcmpgtb %xmm3, %xmm1, %xmm5 + 0xc5, 0xd1, 0xdb, 0xe4, //0x000087fc vpand %xmm4, %xmm5, %xmm4 + 0xc5, 0xd9, 0xdb, 0xe2, //0x00008800 vpand %xmm2, %xmm4, %xmm4 + 0xc5, 0xd9, 0x71, 0xf4, 0x05, //0x00008804 vpsllw $5, %xmm4, %xmm4 + 0xc5, 0xd9, 0xfc, 0xdb, //0x00008809 vpaddb %xmm3, %xmm4, %xmm3 + 0xc5, 0xfa, 0x7f, 0x1f, //0x0000880d vmovdqu %xmm3, (%rdi) + 0xc5, 0xfa, 0x6f, 0x5e, 0x10, //0x00008811 vmovdqu $16(%rsi), %xmm3 + 0xc5, 0xe1, 0x64, 0xe0, //0x00008816 vpcmpgtb %xmm0, %xmm3, %xmm4 + 0xc5, 0xf1, 0x64, 0xeb, //0x0000881a vpcmpgtb %xmm3, %xmm1, %xmm5 + 0xc5, 0xd1, 0xdb, 0xe4, //0x0000881e vpand %xmm4, %xmm5, %xmm4 + 0xc5, 0xd9, 0xdb, 0xe2, //0x00008822 vpand %xmm2, %xmm4, %xmm4 + 0xc5, 0xd9, 0x71, 0xf4, 0x05, //0x00008826 vpsllw $5, %xmm4, %xmm4 + 0xc5, 0xd9, 0xfc, 0xdb, //0x0000882b vpaddb %xmm3, %xmm4, %xmm3 + 0xc5, 0xfa, 0x7f, 0x5f, 0x10, //0x0000882f vmovdqu %xmm3, $16(%rdi) + 0x48, 0x83, 0xc6, 0x20, //0x00008834 addq $32, %rsi + 0x48, 0x83, 0xc7, 0x20, //0x00008838 addq $32, %rdi + 0x48, 0x83, 0xc0, 0xe0, //0x0000883c addq $-32, %rax + 0x48, 0x83, 0xf8, 0x0f, //0x00008840 cmpq $15, %rax + 0x0f, 0x87, 0xa6, 0xff, 0xff, 0xff, //0x00008844 ja LBB32_6 + //0x0000884a LBB32_7 + 0x83, 0xe2, 0x0f, //0x0000884a andl $15, %edx + //0x0000884d LBB32_8 + 0x48, 0x85, 0xd2, //0x0000884d testq %rdx, %rdx + 0x0f, 0x84, 0x99, 0x01, 0x00, 0x00, //0x00008850 je LBB32_16 + 0x48, 0x83, 0xfa, 0x0f, //0x00008856 cmpq $15, %rdx + 0x0f, 0x86, 0x1a, 0x00, 0x00, 0x00, //0x0000885a jbe LBB32_10 + 0x48, 0x8d, 0x04, 0x16, //0x00008860 leaq (%rsi,%rdx), %rax + 0x48, 0x39, 0xc7, //0x00008864 cmpq %rax, %rdi + 0x0f, 0x83, 0x28, 0x00, 0x00, 0x00, //0x00008867 jae LBB32_19 + 0x48, 0x8d, 0x04, 0x17, //0x0000886d leaq (%rdi,%rdx), %rax + 0x48, 0x39, 0xc6, //0x00008871 cmpq %rax, %rsi + 0x0f, 0x83, 0x1b, 0x00, 0x00, 0x00, //0x00008874 jae LBB32_19 + //0x0000887a LBB32_10 + 0xf6, 0xc2, 0x01, //0x0000887a testb $1, %dl + 0x0f, 0x85, 0xfd, 0x00, 0x00, 0x00, //0x0000887d jne LBB32_12 + //0x00008883 LBB32_11 + 0x49, 0x89, 0xd0, //0x00008883 movq %rdx, %r8 + 0x48, 0x83, 0xfa, 0x01, //0x00008886 cmpq $1, %rdx + 0x0f, 0x85, 0x1a, 0x01, 0x00, 0x00, //0x0000888a jne LBB32_14 + 0xe9, 0x5a, 0x01, 0x00, 0x00, //0x00008890 jmp LBB32_16 + //0x00008895 LBB32_19 + 0x49, 0x89, 0xd0, //0x00008895 movq %rdx, %r8 + 0x49, 0x83, 0xe0, 0xf0, //0x00008898 andq $-16, %r8 + 0x49, 0x8d, 0x48, 0xf0, //0x0000889c leaq $-16(%r8), %rcx + 0x48, 0x89, 0xc8, //0x000088a0 movq %rcx, %rax + 0x48, 0xc1, 0xe8, 0x04, //0x000088a3 shrq $4, %rax + 0x48, 0xff, 0xc0, //0x000088a7 incq %rax + 0x41, 0x89, 0xc1, //0x000088aa movl %eax, %r9d + 0x41, 0x83, 0xe1, 0x01, //0x000088ad andl $1, %r9d + 0x48, 0x85, 0xc9, //0x000088b1 testq %rcx, %rcx + 0x0f, 0x84, 0x37, 0x01, 0x00, 0x00, //0x000088b4 je LBB32_20 + 0x4c, 0x29, 0xc8, //0x000088ba subq %r9, %rax + 0x31, 0xc9, //0x000088bd xorl %ecx, %ecx + 0xc5, 0xf9, 0x6f, 0x05, 0x69, 0xfe, 0xff, 0xff, //0x000088bf vmovdqa $-407(%rip), %xmm0 /* LCPI32_3+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x0d, 0x71, 0xfe, 0xff, 0xff, //0x000088c7 vmovdqa $-399(%rip), %xmm1 /* LCPI32_4+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x15, 0x79, 0xfe, 0xff, 0xff, //0x000088cf vmovdqa $-391(%rip), %xmm2 /* LCPI32_5+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000088d7 .p2align 4, 0x90 + //0x000088e0 LBB32_22 + 0xc5, 0xfa, 0x6f, 0x1c, 0x0e, //0x000088e0 vmovdqu (%rsi,%rcx), %xmm3 + 0xc5, 0xe1, 0xfc, 0xe0, //0x000088e5 vpaddb %xmm0, %xmm3, %xmm4 + 0xc5, 0xd9, 0xda, 0xe9, //0x000088e9 vpminub %xmm1, %xmm4, %xmm5 + 0xc5, 0xd9, 0x74, 0xe5, //0x000088ed vpcmpeqb %xmm5, %xmm4, %xmm4 + 0xc5, 0xe1, 0xfc, 0xea, //0x000088f1 vpaddb %xmm2, %xmm3, %xmm5 + 0xc4, 0xe3, 0x61, 0x4c, 0xdd, 0x40, //0x000088f5 vpblendvb %xmm4, %xmm5, %xmm3, %xmm3 + 0xc5, 0xfa, 0x7f, 0x1c, 0x0f, //0x000088fb vmovdqu %xmm3, (%rdi,%rcx) + 0xc5, 0xfa, 0x6f, 0x5c, 0x0e, 0x10, //0x00008900 vmovdqu $16(%rsi,%rcx), %xmm3 + 0xc5, 0xe1, 0xfc, 0xe0, //0x00008906 vpaddb %xmm0, %xmm3, %xmm4 + 0xc5, 0xd9, 0xda, 0xe9, //0x0000890a vpminub %xmm1, %xmm4, %xmm5 + 0xc5, 0xd9, 0x74, 0xe5, //0x0000890e vpcmpeqb %xmm5, %xmm4, %xmm4 + 0xc5, 0xe1, 0xfc, 0xea, //0x00008912 vpaddb %xmm2, %xmm3, %xmm5 + 0xc4, 0xe3, 0x61, 0x4c, 0xdd, 0x40, //0x00008916 vpblendvb %xmm4, %xmm5, %xmm3, %xmm3 + 0xc5, 0xfa, 0x7f, 0x5c, 0x0f, 0x10, //0x0000891c vmovdqu %xmm3, $16(%rdi,%rcx) + 0x48, 0x83, 0xc1, 0x20, //0x00008922 addq $32, %rcx + 0x48, 0x83, 0xc0, 0xfe, //0x00008926 addq $-2, %rax + 0x0f, 0x85, 0xb0, 0xff, 0xff, 0xff, //0x0000892a jne LBB32_22 + 0x4d, 0x85, 0xc9, //0x00008930 testq %r9, %r9 + 0x0f, 0x84, 0x2c, 0x00, 0x00, 0x00, //0x00008933 je LBB32_25 + //0x00008939 LBB32_24 + 0xc5, 0xfa, 0x6f, 0x04, 0x0e, //0x00008939 vmovdqu (%rsi,%rcx), %xmm0 + 0xc5, 0xf9, 0xfc, 0x0d, 0xea, 0xfd, 0xff, 0xff, //0x0000893e vpaddb $-534(%rip), %xmm0, %xmm1 /* LCPI32_3+0(%rip) */ + 0xc5, 0xf1, 0xda, 0x15, 0xf2, 0xfd, 0xff, 0xff, //0x00008946 vpminub $-526(%rip), %xmm1, %xmm2 /* LCPI32_4+0(%rip) */ + 0xc5, 0xf9, 0xfc, 0x1d, 0xfa, 0xfd, 0xff, 0xff, //0x0000894e vpaddb $-518(%rip), %xmm0, %xmm3 /* LCPI32_5+0(%rip) */ + 0xc5, 0xf1, 0x74, 0xca, //0x00008956 vpcmpeqb %xmm2, %xmm1, %xmm1 + 0xc4, 0xe3, 0x79, 0x4c, 0xc3, 0x10, //0x0000895a vpblendvb %xmm1, %xmm3, %xmm0, %xmm0 + 0xc5, 0xfa, 0x7f, 0x04, 0x0f, //0x00008960 vmovdqu %xmm0, (%rdi,%rcx) + //0x00008965 LBB32_25 + 0x4c, 0x39, 0xc2, //0x00008965 cmpq %r8, %rdx + 0x0f, 0x84, 0x81, 0x00, 0x00, 0x00, //0x00008968 je LBB32_16 + 0x83, 0xe2, 0x0f, //0x0000896e andl $15, %edx + 0x4c, 0x01, 0xc6, //0x00008971 addq %r8, %rsi + 0x4c, 0x01, 0xc7, //0x00008974 addq %r8, %rdi + 0xf6, 0xc2, 0x01, //0x00008977 testb $1, %dl + 0x0f, 0x84, 0x03, 0xff, 0xff, 0xff, //0x0000897a je LBB32_11 + //0x00008980 LBB32_12 + 0x0f, 0xb6, 0x06, //0x00008980 movzbl (%rsi), %eax + 0x44, 0x8d, 0x40, 0xbf, //0x00008983 leal $-65(%rax), %r8d + 0x8d, 0x48, 0x20, //0x00008987 leal $32(%rax), %ecx + 0x41, 0x80, 0xf8, 0x1a, //0x0000898a cmpb $26, %r8b + 0x0f, 0xb6, 0xc9, //0x0000898e movzbl %cl, %ecx + 0x0f, 0x43, 0xc8, //0x00008991 cmovael %eax, %ecx + 0x4c, 0x8d, 0x42, 0xff, //0x00008994 leaq $-1(%rdx), %r8 + 0x88, 0x0f, //0x00008998 movb %cl, (%rdi) + 0x48, 0xff, 0xc6, //0x0000899a incq %rsi + 0x48, 0xff, 0xc7, //0x0000899d incq %rdi + 0x48, 0x83, 0xfa, 0x01, //0x000089a0 cmpq $1, %rdx + 0x0f, 0x84, 0x45, 0x00, 0x00, 0x00, //0x000089a4 je LBB32_16 + //0x000089aa LBB32_14 + 0x31, 0xc9, //0x000089aa xorl %ecx, %ecx + 0x90, 0x90, 0x90, 0x90, //0x000089ac .p2align 4, 0x90 + //0x000089b0 LBB32_15 + 0x0f, 0xb6, 0x14, 0x0e, //0x000089b0 movzbl (%rsi,%rcx), %edx + 0x44, 0x8d, 0x4a, 0xbf, //0x000089b4 leal $-65(%rdx), %r9d + 0x8d, 0x42, 0x20, //0x000089b8 leal $32(%rdx), %eax + 0x41, 0x80, 0xf9, 0x1a, //0x000089bb cmpb $26, %r9b + 0x0f, 0xb6, 0xc0, //0x000089bf movzbl %al, %eax + 0x0f, 0x43, 0xc2, //0x000089c2 cmovael %edx, %eax + 0x88, 0x04, 0x0f, //0x000089c5 movb %al, (%rdi,%rcx) + 0x0f, 0xb6, 0x44, 0x0e, 0x01, //0x000089c8 movzbl $1(%rsi,%rcx), %eax + 0x44, 0x8d, 0x48, 0xbf, //0x000089cd leal $-65(%rax), %r9d + 0x8d, 0x50, 0x20, //0x000089d1 leal $32(%rax), %edx + 0x41, 0x80, 0xf9, 0x1a, //0x000089d4 cmpb $26, %r9b + 0x0f, 0xb6, 0xd2, //0x000089d8 movzbl %dl, %edx + 0x0f, 0x43, 0xd0, //0x000089db cmovael %eax, %edx + 0x88, 0x54, 0x0f, 0x01, //0x000089de movb %dl, $1(%rdi,%rcx) + 0x48, 0x83, 0xc1, 0x02, //0x000089e2 addq $2, %rcx + 0x49, 0x39, 0xc8, //0x000089e6 cmpq %rcx, %r8 + 0x0f, 0x85, 0xc1, 0xff, 0xff, 0xff, //0x000089e9 jne LBB32_15 + //0x000089ef LBB32_16 + 0x5d, //0x000089ef popq %rbp + 0xc3, //0x000089f0 retq + //0x000089f1 LBB32_20 + 0x31, 0xc9, //0x000089f1 xorl %ecx, %ecx + 0x4d, 0x85, 0xc9, //0x000089f3 testq %r9, %r9 + 0x0f, 0x85, 0x3d, 0xff, 0xff, 0xff, //0x000089f6 jne LBB32_24 + 0xe9, 0x64, 0xff, 0xff, 0xff, //0x000089fc jmp LBB32_25 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008a01 .p2align 4, 0x90 + //0x00008a10 _format_significand + 0x55, //0x00008a10 pushq %rbp + 0x48, 0x89, 0xe5, //0x00008a11 movq %rsp, %rbp + 0x41, 0x56, //0x00008a14 pushq %r14 + 0x53, //0x00008a16 pushq %rbx + 0x4c, 0x63, 0xc2, //0x00008a17 movslq %edx, %r8 + 0x49, 0x01, 0xf0, //0x00008a1a addq %rsi, %r8 + 0x48, 0x89, 0xf8, //0x00008a1d movq %rdi, %rax + 0x48, 0xc1, 0xe8, 0x20, //0x00008a20 shrq $32, %rax + 0x0f, 0x84, 0xb6, 0x00, 0x00, 0x00, //0x00008a24 je LBB33_1 + 0x48, 0xb9, 0xfd, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x00008a2a movabsq $-6067343680855748867, %rcx + 0x48, 0x89, 0xf8, //0x00008a34 movq %rdi, %rax + 0x48, 0xf7, 0xe1, //0x00008a37 mulq %rcx + 0x48, 0xc1, 0xea, 0x1a, //0x00008a3a shrq $26, %rdx + 0x69, 0xca, 0x00, 0x1f, 0x0a, 0xfa, //0x00008a3e imull $-100000000, %edx, %ecx + 0x01, 0xf9, //0x00008a44 addl %edi, %ecx + 0x0f, 0x84, 0xb0, 0x00, 0x00, 0x00, //0x00008a46 je LBB33_3 + 0x89, 0xc8, //0x00008a4c movl %ecx, %eax + 0x41, 0xb9, 0x59, 0x17, 0xb7, 0xd1, //0x00008a4e movl $3518437209, %r9d + 0x49, 0x0f, 0xaf, 0xc1, //0x00008a54 imulq %r9, %rax + 0x48, 0xc1, 0xe8, 0x2d, //0x00008a58 shrq $45, %rax + 0x69, 0xf8, 0x10, 0x27, 0x00, 0x00, //0x00008a5c imull $10000, %eax, %edi + 0x29, 0xf9, //0x00008a62 subl %edi, %ecx + 0x48, 0x89, 0xc7, //0x00008a64 movq %rax, %rdi + 0x49, 0x0f, 0xaf, 0xf9, //0x00008a67 imulq %r9, %rdi + 0x48, 0xc1, 0xef, 0x2d, //0x00008a6b shrq $45, %rdi + 0x69, 0xff, 0x10, 0x27, 0x00, 0x00, //0x00008a6f imull $10000, %edi, %edi + 0x29, 0xf8, //0x00008a75 subl %edi, %eax + 0x0f, 0xb7, 0xf9, //0x00008a77 movzwl %cx, %edi + 0xc1, 0xef, 0x02, //0x00008a7a shrl $2, %edi + 0x44, 0x69, 0xcf, 0x7b, 0x14, 0x00, 0x00, //0x00008a7d imull $5243, %edi, %r9d + 0x41, 0xc1, 0xe9, 0x11, //0x00008a84 shrl $17, %r9d + 0x41, 0x6b, 0xf9, 0x64, //0x00008a88 imull $100, %r9d, %edi + 0x29, 0xf9, //0x00008a8c subl %edi, %ecx + 0x44, 0x0f, 0xb7, 0xd1, //0x00008a8e movzwl %cx, %r10d + 0x0f, 0xb7, 0xf8, //0x00008a92 movzwl %ax, %edi + 0xc1, 0xef, 0x02, //0x00008a95 shrl $2, %edi + 0x69, 0xff, 0x7b, 0x14, 0x00, 0x00, //0x00008a98 imull $5243, %edi, %edi + 0xc1, 0xef, 0x11, //0x00008a9e shrl $17, %edi + 0x6b, 0xcf, 0x64, //0x00008aa1 imull $100, %edi, %ecx + 0x29, 0xc8, //0x00008aa4 subl %ecx, %eax + 0x44, 0x0f, 0xb7, 0xd8, //0x00008aa6 movzwl %ax, %r11d + 0x48, 0x8d, 0x0d, 0x3f, 0x34, 0x00, 0x00, //0x00008aaa leaq $13375(%rip), %rcx /* _Digits+0(%rip) */ + 0x42, 0x0f, 0xb7, 0x04, 0x51, //0x00008ab1 movzwl (%rcx,%r10,2), %eax + 0x66, 0x41, 0x89, 0x40, 0xfe, //0x00008ab6 movw %ax, $-2(%r8) + 0x42, 0x0f, 0xb7, 0x04, 0x49, //0x00008abb movzwl (%rcx,%r9,2), %eax + 0x66, 0x41, 0x89, 0x40, 0xfc, //0x00008ac0 movw %ax, $-4(%r8) + 0x42, 0x0f, 0xb7, 0x04, 0x59, //0x00008ac5 movzwl (%rcx,%r11,2), %eax + 0x66, 0x41, 0x89, 0x40, 0xfa, //0x00008aca movw %ax, $-6(%r8) + 0x0f, 0xb7, 0x04, 0x79, //0x00008acf movzwl (%rcx,%rdi,2), %eax + 0x66, 0x41, 0x89, 0x40, 0xf8, //0x00008ad3 movw %ax, $-8(%r8) + 0x45, 0x31, 0xc9, //0x00008ad8 xorl %r9d, %r9d + 0xe9, 0x22, 0x00, 0x00, 0x00, //0x00008adb jmp LBB33_5 + //0x00008ae0 LBB33_1 + 0x45, 0x31, 0xc9, //0x00008ae0 xorl %r9d, %r9d + 0x4d, 0x89, 0xc6, //0x00008ae3 movq %r8, %r14 + 0x48, 0x89, 0xfa, //0x00008ae6 movq %rdi, %rdx + 0x81, 0xfa, 0x10, 0x27, 0x00, 0x00, //0x00008ae9 cmpl $10000, %edx + 0x0f, 0x83, 0x1d, 0x00, 0x00, 0x00, //0x00008aef jae LBB33_8 + //0x00008af5 LBB33_7 + 0x89, 0xd7, //0x00008af5 movl %edx, %edi + 0xe9, 0x6c, 0x00, 0x00, 0x00, //0x00008af7 jmp LBB33_10 + //0x00008afc LBB33_3 + 0x41, 0xb9, 0x08, 0x00, 0x00, 0x00, //0x00008afc movl $8, %r9d + //0x00008b02 LBB33_5 + 0x4d, 0x8d, 0x70, 0xf8, //0x00008b02 leaq $-8(%r8), %r14 + 0x81, 0xfa, 0x10, 0x27, 0x00, 0x00, //0x00008b06 cmpl $10000, %edx + 0x0f, 0x82, 0xe3, 0xff, 0xff, 0xff, //0x00008b0c jb LBB33_7 + //0x00008b12 LBB33_8 + 0x41, 0xba, 0x59, 0x17, 0xb7, 0xd1, //0x00008b12 movl $3518437209, %r10d + 0x4c, 0x8d, 0x1d, 0xd1, 0x33, 0x00, 0x00, //0x00008b18 leaq $13265(%rip), %r11 /* _Digits+0(%rip) */ + 0x90, //0x00008b1f .p2align 4, 0x90 + //0x00008b20 LBB33_9 + 0x89, 0xd7, //0x00008b20 movl %edx, %edi + 0x49, 0x0f, 0xaf, 0xfa, //0x00008b22 imulq %r10, %rdi + 0x48, 0xc1, 0xef, 0x2d, //0x00008b26 shrq $45, %rdi + 0x69, 0xc7, 0xf0, 0xd8, 0xff, 0xff, //0x00008b2a imull $-10000, %edi, %eax + 0x01, 0xd0, //0x00008b30 addl %edx, %eax + 0x48, 0x69, 0xd8, 0x1f, 0x85, 0xeb, 0x51, //0x00008b32 imulq $1374389535, %rax, %rbx + 0x48, 0xc1, 0xeb, 0x25, //0x00008b39 shrq $37, %rbx + 0x6b, 0xcb, 0x64, //0x00008b3d imull $100, %ebx, %ecx + 0x29, 0xc8, //0x00008b40 subl %ecx, %eax + 0x41, 0x0f, 0xb7, 0x04, 0x43, //0x00008b42 movzwl (%r11,%rax,2), %eax + 0x66, 0x41, 0x89, 0x46, 0xfe, //0x00008b47 movw %ax, $-2(%r14) + 0x41, 0x0f, 0xb7, 0x04, 0x5b, //0x00008b4c movzwl (%r11,%rbx,2), %eax + 0x66, 0x41, 0x89, 0x46, 0xfc, //0x00008b51 movw %ax, $-4(%r14) + 0x49, 0x83, 0xc6, 0xfc, //0x00008b56 addq $-4, %r14 + 0x81, 0xfa, 0xff, 0xe0, 0xf5, 0x05, //0x00008b5a cmpl $99999999, %edx + 0x89, 0xfa, //0x00008b60 movl %edi, %edx + 0x0f, 0x87, 0xb8, 0xff, 0xff, 0xff, //0x00008b62 ja LBB33_9 + //0x00008b68 LBB33_10 + 0x83, 0xff, 0x64, //0x00008b68 cmpl $100, %edi + 0x0f, 0x83, 0x20, 0x00, 0x00, 0x00, //0x00008b6b jae LBB33_11 + 0x83, 0xff, 0x0a, //0x00008b71 cmpl $10, %edi + 0x0f, 0x82, 0x4d, 0x00, 0x00, 0x00, //0x00008b74 jb LBB33_14 + //0x00008b7a LBB33_13 + 0x89, 0xf8, //0x00008b7a movl %edi, %eax + 0x48, 0x8d, 0x0d, 0x6d, 0x33, 0x00, 0x00, //0x00008b7c leaq $13165(%rip), %rcx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x04, 0x41, //0x00008b83 movzwl (%rcx,%rax,2), %eax + 0x66, 0x41, 0x89, 0x46, 0xfe, //0x00008b87 movw %ax, $-2(%r14) + 0xe9, 0x3d, 0x00, 0x00, 0x00, //0x00008b8c jmp LBB33_15 + //0x00008b91 LBB33_11 + 0x0f, 0xb7, 0xc7, //0x00008b91 movzwl %di, %eax + 0xc1, 0xe8, 0x02, //0x00008b94 shrl $2, %eax + 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x00008b97 imull $5243, %eax, %eax + 0xc1, 0xe8, 0x11, //0x00008b9d shrl $17, %eax + 0x6b, 0xc8, 0x64, //0x00008ba0 imull $100, %eax, %ecx + 0x29, 0xcf, //0x00008ba3 subl %ecx, %edi + 0x0f, 0xb7, 0xcf, //0x00008ba5 movzwl %di, %ecx + 0x48, 0x8d, 0x15, 0x41, 0x33, 0x00, 0x00, //0x00008ba8 leaq $13121(%rip), %rdx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x0c, 0x4a, //0x00008baf movzwl (%rdx,%rcx,2), %ecx + 0x66, 0x41, 0x89, 0x4e, 0xfe, //0x00008bb3 movw %cx, $-2(%r14) + 0x49, 0x83, 0xc6, 0xfe, //0x00008bb8 addq $-2, %r14 + 0x89, 0xc7, //0x00008bbc movl %eax, %edi + 0x83, 0xff, 0x0a, //0x00008bbe cmpl $10, %edi + 0x0f, 0x83, 0xb3, 0xff, 0xff, 0xff, //0x00008bc1 jae LBB33_13 + //0x00008bc7 LBB33_14 + 0x40, 0x80, 0xc7, 0x30, //0x00008bc7 addb $48, %dil + 0x40, 0x88, 0x3e, //0x00008bcb movb %dil, (%rsi) + //0x00008bce LBB33_15 + 0x4d, 0x29, 0xc8, //0x00008bce subq %r9, %r8 + 0x4c, 0x89, 0xc0, //0x00008bd1 movq %r8, %rax + 0x5b, //0x00008bd4 popq %rbx + 0x41, 0x5e, //0x00008bd5 popq %r14 + 0x5d, //0x00008bd7 popq %rbp + 0xc3, //0x00008bd8 retq + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008bd9 .p2align 4, 0x90 + //0x00008be0 _left_shift 0x55, //0x00008be0 pushq %rbp 0x48, 0x89, 0xe5, //0x00008be1 movq %rsp, %rbp 0x41, 0x56, //0x00008be4 pushq %r14 0x53, //0x00008be6 pushq %rbx - 0x4c, 0x63, 0xc2, //0x00008be7 movslq %edx, %r8 - 0x49, 0x01, 0xf0, //0x00008bea addq %rsi, %r8 - 0x48, 0x89, 0xf8, //0x00008bed movq %rdi, %rax - 0x48, 0xc1, 0xe8, 0x20, //0x00008bf0 shrq $32, %rax - 0x0f, 0x85, 0x1c, 0x00, 0x00, 0x00, //0x00008bf4 jne LBB37_2 - 0x45, 0x31, 0xc9, //0x00008bfa xorl %r9d, %r9d - 0x4d, 0x89, 0xc6, //0x00008bfd movq %r8, %r14 - 0x48, 0x89, 0xfa, //0x00008c00 movq %rdi, %rdx - 0x81, 0xfa, 0x10, 0x27, 0x00, 0x00, //0x00008c03 cmpl $10000, %edx - 0x0f, 0x83, 0xe3, 0x00, 0x00, 0x00, //0x00008c09 jae LBB37_8 - //0x00008c0f LBB37_7 - 0x89, 0xd7, //0x00008c0f movl %edx, %edi - 0xe9, 0x32, 0x01, 0x00, 0x00, //0x00008c11 jmp LBB37_10 - //0x00008c16 LBB37_2 - 0x48, 0xb9, 0xfd, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x00008c16 movabsq $-6067343680855748867, %rcx - 0x48, 0x89, 0xf8, //0x00008c20 movq %rdi, %rax - 0x48, 0xf7, 0xe1, //0x00008c23 mulq %rcx - 0x48, 0xc1, 0xea, 0x1a, //0x00008c26 shrq $26, %rdx - 0x69, 0xca, 0x00, 0x1f, 0x0a, 0xfa, //0x00008c2a imull $-100000000, %edx, %ecx - 0x01, 0xf9, //0x00008c30 addl %edi, %ecx - 0x0f, 0x84, 0xa4, 0x00, 0x00, 0x00, //0x00008c32 je LBB37_3 - 0x89, 0xc8, //0x00008c38 movl %ecx, %eax - 0x41, 0xb9, 0x59, 0x17, 0xb7, 0xd1, //0x00008c3a movl $3518437209, %r9d - 0x49, 0x0f, 0xaf, 0xc1, //0x00008c40 imulq %r9, %rax - 0x48, 0xc1, 0xe8, 0x2d, //0x00008c44 shrq $45, %rax - 0x69, 0xf8, 0x10, 0x27, 0x00, 0x00, //0x00008c48 imull $10000, %eax, %edi - 0x29, 0xf9, //0x00008c4e subl %edi, %ecx - 0x48, 0x89, 0xc7, //0x00008c50 movq %rax, %rdi - 0x49, 0x0f, 0xaf, 0xf9, //0x00008c53 imulq %r9, %rdi - 0x48, 0xc1, 0xef, 0x2d, //0x00008c57 shrq $45, %rdi - 0x69, 0xff, 0x10, 0x27, 0x00, 0x00, //0x00008c5b imull $10000, %edi, %edi - 0x29, 0xf8, //0x00008c61 subl %edi, %eax - 0x0f, 0xb7, 0xf9, //0x00008c63 movzwl %cx, %edi - 0xc1, 0xef, 0x02, //0x00008c66 shrl $2, %edi - 0x44, 0x69, 0xcf, 0x7b, 0x14, 0x00, 0x00, //0x00008c69 imull $5243, %edi, %r9d - 0x41, 0xc1, 0xe9, 0x11, //0x00008c70 shrl $17, %r9d - 0x41, 0x6b, 0xf9, 0x64, //0x00008c74 imull $100, %r9d, %edi - 0x29, 0xf9, //0x00008c78 subl %edi, %ecx - 0x44, 0x0f, 0xb7, 0xd1, //0x00008c7a movzwl %cx, %r10d - 0x0f, 0xb7, 0xf8, //0x00008c7e movzwl %ax, %edi - 0xc1, 0xef, 0x02, //0x00008c81 shrl $2, %edi - 0x69, 0xff, 0x7b, 0x14, 0x00, 0x00, //0x00008c84 imull $5243, %edi, %edi - 0xc1, 0xef, 0x11, //0x00008c8a shrl $17, %edi - 0x6b, 0xcf, 0x64, //0x00008c8d imull $100, %edi, %ecx - 0x29, 0xc8, //0x00008c90 subl %ecx, %eax - 0x44, 0x0f, 0xb7, 0xd8, //0x00008c92 movzwl %ax, %r11d - 0x48, 0x8d, 0x0d, 0x53, 0x37, 0x00, 0x00, //0x00008c96 leaq $14163(%rip), %rcx /* _Digits+0(%rip) */ - 0x42, 0x0f, 0xb7, 0x04, 0x51, //0x00008c9d movzwl (%rcx,%r10,2), %eax - 0x66, 0x41, 0x89, 0x40, 0xfe, //0x00008ca2 movw %ax, $-2(%r8) - 0x42, 0x0f, 0xb7, 0x04, 0x49, //0x00008ca7 movzwl (%rcx,%r9,2), %eax - 0x66, 0x41, 0x89, 0x40, 0xfc, //0x00008cac movw %ax, $-4(%r8) - 0x42, 0x0f, 0xb7, 0x04, 0x59, //0x00008cb1 movzwl (%rcx,%r11,2), %eax - 0x66, 0x41, 0x89, 0x40, 0xfa, //0x00008cb6 movw %ax, $-6(%r8) - 0x0f, 0xb7, 0x04, 0x79, //0x00008cbb movzwl (%rcx,%rdi,2), %eax - 0x66, 0x41, 0x89, 0x40, 0xf8, //0x00008cbf movw %ax, $-8(%r8) - 0x45, 0x31, 0xc9, //0x00008cc4 xorl %r9d, %r9d - 0x4d, 0x8d, 0x70, 0xf8, //0x00008cc7 leaq $-8(%r8), %r14 - 0x81, 0xfa, 0x10, 0x27, 0x00, 0x00, //0x00008ccb cmpl $10000, %edx - 0x0f, 0x82, 0x38, 0xff, 0xff, 0xff, //0x00008cd1 jb LBB37_7 - 0xe9, 0x16, 0x00, 0x00, 0x00, //0x00008cd7 jmp LBB37_8 - //0x00008cdc LBB37_3 - 0x41, 0xb9, 0x08, 0x00, 0x00, 0x00, //0x00008cdc movl $8, %r9d - 0x4d, 0x8d, 0x70, 0xf8, //0x00008ce2 leaq $-8(%r8), %r14 - 0x81, 0xfa, 0x10, 0x27, 0x00, 0x00, //0x00008ce6 cmpl $10000, %edx - 0x0f, 0x82, 0x1d, 0xff, 0xff, 0xff, //0x00008cec jb LBB37_7 - //0x00008cf2 LBB37_8 - 0x41, 0xba, 0x59, 0x17, 0xb7, 0xd1, //0x00008cf2 movl $3518437209, %r10d - 0x4c, 0x8d, 0x1d, 0xf1, 0x36, 0x00, 0x00, //0x00008cf8 leaq $14065(%rip), %r11 /* _Digits+0(%rip) */ - 0x90, //0x00008cff .p2align 4, 0x90 - //0x00008d00 LBB37_9 - 0x89, 0xd7, //0x00008d00 movl %edx, %edi - 0x49, 0x0f, 0xaf, 0xfa, //0x00008d02 imulq %r10, %rdi - 0x48, 0xc1, 0xef, 0x2d, //0x00008d06 shrq $45, %rdi - 0x69, 0xc7, 0xf0, 0xd8, 0xff, 0xff, //0x00008d0a imull $-10000, %edi, %eax - 0x01, 0xd0, //0x00008d10 addl %edx, %eax - 0x48, 0x69, 0xd8, 0x1f, 0x85, 0xeb, 0x51, //0x00008d12 imulq $1374389535, %rax, %rbx - 0x48, 0xc1, 0xeb, 0x25, //0x00008d19 shrq $37, %rbx - 0x6b, 0xcb, 0x64, //0x00008d1d imull $100, %ebx, %ecx - 0x29, 0xc8, //0x00008d20 subl %ecx, %eax - 0x41, 0x0f, 0xb7, 0x04, 0x43, //0x00008d22 movzwl (%r11,%rax,2), %eax - 0x66, 0x41, 0x89, 0x46, 0xfe, //0x00008d27 movw %ax, $-2(%r14) - 0x41, 0x0f, 0xb7, 0x04, 0x5b, //0x00008d2c movzwl (%r11,%rbx,2), %eax - 0x66, 0x41, 0x89, 0x46, 0xfc, //0x00008d31 movw %ax, $-4(%r14) - 0x49, 0x83, 0xc6, 0xfc, //0x00008d36 addq $-4, %r14 - 0x81, 0xfa, 0xff, 0xe0, 0xf5, 0x05, //0x00008d3a cmpl $99999999, %edx - 0x89, 0xfa, //0x00008d40 movl %edi, %edx - 0x0f, 0x87, 0xb8, 0xff, 0xff, 0xff, //0x00008d42 ja LBB37_9 - //0x00008d48 LBB37_10 - 0x83, 0xff, 0x64, //0x00008d48 cmpl $100, %edi - 0x0f, 0x83, 0x20, 0x00, 0x00, 0x00, //0x00008d4b jae LBB37_11 - 0x83, 0xff, 0x0a, //0x00008d51 cmpl $10, %edi - 0x0f, 0x82, 0x4d, 0x00, 0x00, 0x00, //0x00008d54 jb LBB37_14 - //0x00008d5a LBB37_13 - 0x89, 0xf8, //0x00008d5a movl %edi, %eax - 0x48, 0x8d, 0x0d, 0x8d, 0x36, 0x00, 0x00, //0x00008d5c leaq $13965(%rip), %rcx /* _Digits+0(%rip) */ - 0x0f, 0xb7, 0x04, 0x41, //0x00008d63 movzwl (%rcx,%rax,2), %eax - 0x66, 0x41, 0x89, 0x46, 0xfe, //0x00008d67 movw %ax, $-2(%r14) - 0xe9, 0x3d, 0x00, 0x00, 0x00, //0x00008d6c jmp LBB37_15 - //0x00008d71 LBB37_11 - 0x0f, 0xb7, 0xc7, //0x00008d71 movzwl %di, %eax - 0xc1, 0xe8, 0x02, //0x00008d74 shrl $2, %eax - 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x00008d77 imull $5243, %eax, %eax - 0xc1, 0xe8, 0x11, //0x00008d7d shrl $17, %eax - 0x6b, 0xc8, 0x64, //0x00008d80 imull $100, %eax, %ecx - 0x29, 0xcf, //0x00008d83 subl %ecx, %edi - 0x0f, 0xb7, 0xcf, //0x00008d85 movzwl %di, %ecx - 0x48, 0x8d, 0x15, 0x61, 0x36, 0x00, 0x00, //0x00008d88 leaq $13921(%rip), %rdx /* _Digits+0(%rip) */ - 0x0f, 0xb7, 0x0c, 0x4a, //0x00008d8f movzwl (%rdx,%rcx,2), %ecx - 0x66, 0x41, 0x89, 0x4e, 0xfe, //0x00008d93 movw %cx, $-2(%r14) - 0x49, 0x83, 0xc6, 0xfe, //0x00008d98 addq $-2, %r14 - 0x89, 0xc7, //0x00008d9c movl %eax, %edi - 0x83, 0xff, 0x0a, //0x00008d9e cmpl $10, %edi - 0x0f, 0x83, 0xb3, 0xff, 0xff, 0xff, //0x00008da1 jae LBB37_13 - //0x00008da7 LBB37_14 - 0x40, 0x80, 0xc7, 0x30, //0x00008da7 addb $48, %dil - 0x40, 0x88, 0x3e, //0x00008dab movb %dil, (%rsi) - //0x00008dae LBB37_15 - 0x4d, 0x29, 0xc8, //0x00008dae subq %r9, %r8 - 0x4c, 0x89, 0xc0, //0x00008db1 movq %r8, %rax - 0x5b, //0x00008db4 popq %rbx - 0x41, 0x5e, //0x00008db5 popq %r14 - 0x5d, //0x00008db7 popq %rbp - 0xc3, //0x00008db8 retq - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008db9 .p2align 4, 0x90 - //0x00008dc0 _left_shift - 0x55, //0x00008dc0 pushq %rbp - 0x48, 0x89, 0xe5, //0x00008dc1 movq %rsp, %rbp - 0x41, 0x57, //0x00008dc4 pushq %r15 - 0x41, 0x56, //0x00008dc6 pushq %r14 - 0x53, //0x00008dc8 pushq %rbx - 0x89, 0xf1, //0x00008dc9 movl %esi, %ecx - 0x4c, 0x6b, 0xf1, 0x68, //0x00008dcb imulq $104, %rcx, %r14 - 0x48, 0x8d, 0x15, 0x0a, 0x90, 0x00, 0x00, //0x00008dcf leaq $36874(%rip), %rdx /* _LSHIFT_TAB+0(%rip) */ - 0x45, 0x8b, 0x04, 0x16, //0x00008dd6 movl (%r14,%rdx), %r8d - 0x4c, 0x8b, 0x1f, //0x00008dda movq (%rdi), %r11 - 0x4c, 0x63, 0x4f, 0x10, //0x00008ddd movslq $16(%rdi), %r9 - 0x45, 0x89, 0xca, //0x00008de1 movl %r9d, %r10d - 0x4d, 0x85, 0xc9, //0x00008de4 testq %r9, %r9 - 0x0f, 0x84, 0x4c, 0x00, 0x00, 0x00, //0x00008de7 je LBB38_1 - 0x49, 0x8d, 0x34, 0x16, //0x00008ded leaq (%r14,%rdx), %rsi - 0x48, 0x83, 0xc6, 0x04, //0x00008df1 addq $4, %rsi - 0x31, 0xdb, //0x00008df5 xorl %ebx, %ebx - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008df7 .p2align 4, 0x90 - //0x00008e00 LBB38_3 - 0x0f, 0xb6, 0x04, 0x1e, //0x00008e00 movzbl (%rsi,%rbx), %eax - 0x84, 0xc0, //0x00008e04 testb %al, %al - 0x0f, 0x84, 0x41, 0x00, 0x00, 0x00, //0x00008e06 je LBB38_10 - 0x41, 0x38, 0x04, 0x1b, //0x00008e0c cmpb %al, (%r11,%rbx) - 0x0f, 0x85, 0xba, 0x01, 0x00, 0x00, //0x00008e10 jne LBB38_5 - 0x48, 0x83, 0xc3, 0x01, //0x00008e16 addq $1, %rbx - 0x49, 0x39, 0xd9, //0x00008e1a cmpq %rbx, %r9 - 0x0f, 0x85, 0xdd, 0xff, 0xff, 0xff, //0x00008e1d jne LBB38_3 - 0x44, 0x89, 0xce, //0x00008e23 movl %r9d, %esi - 0x4c, 0x01, 0xf2, //0x00008e26 addq %r14, %rdx - 0x80, 0x7c, 0x16, 0x04, 0x00, //0x00008e29 cmpb $0, $4(%rsi,%rdx) - 0x0f, 0x85, 0x15, 0x00, 0x00, 0x00, //0x00008e2e jne LBB38_9 - 0xe9, 0x14, 0x00, 0x00, 0x00, //0x00008e34 jmp LBB38_10 - //0x00008e39 LBB38_1 - 0x31, 0xf6, //0x00008e39 xorl %esi, %esi - 0x4c, 0x01, 0xf2, //0x00008e3b addq %r14, %rdx - 0x80, 0x7c, 0x16, 0x04, 0x00, //0x00008e3e cmpb $0, $4(%rsi,%rdx) - 0x0f, 0x84, 0x04, 0x00, 0x00, 0x00, //0x00008e43 je LBB38_10 - //0x00008e49 LBB38_9 - 0x41, 0x83, 0xc0, 0xff, //0x00008e49 addl $-1, %r8d - //0x00008e4d LBB38_10 - 0x45, 0x85, 0xd2, //0x00008e4d testl %r10d, %r10d - 0x0f, 0x8e, 0xa2, 0x00, 0x00, 0x00, //0x00008e50 jle LBB38_25 - 0x43, 0x8d, 0x04, 0x10, //0x00008e56 leal (%r8,%r10), %eax - 0x4c, 0x63, 0xf8, //0x00008e5a movslq %eax, %r15 - 0x41, 0x83, 0xc1, 0xff, //0x00008e5d addl $-1, %r9d - 0x49, 0x83, 0xc7, 0xff, //0x00008e61 addq $-1, %r15 - 0x31, 0xd2, //0x00008e65 xorl %edx, %edx - 0x49, 0xbe, 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x00008e67 movabsq $-3689348814741910323, %r14 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008e71 .p2align 4, 0x90 - //0x00008e80 LBB38_12 - 0x44, 0x89, 0xc8, //0x00008e80 movl %r9d, %eax - 0x49, 0x0f, 0xbe, 0x34, 0x03, //0x00008e83 movsbq (%r11,%rax), %rsi - 0x48, 0x83, 0xc6, 0xd0, //0x00008e88 addq $-48, %rsi - 0x48, 0xd3, 0xe6, //0x00008e8c shlq %cl, %rsi - 0x48, 0x01, 0xd6, //0x00008e8f addq %rdx, %rsi - 0x48, 0x89, 0xf0, //0x00008e92 movq %rsi, %rax - 0x49, 0xf7, 0xe6, //0x00008e95 mulq %r14 - 0x48, 0xc1, 0xea, 0x03, //0x00008e98 shrq $3, %rdx - 0x48, 0x8d, 0x04, 0x12, //0x00008e9c leaq (%rdx,%rdx), %rax - 0x48, 0x8d, 0x1c, 0x80, //0x00008ea0 leaq (%rax,%rax,4), %rbx - 0x48, 0x89, 0xf0, //0x00008ea4 movq %rsi, %rax - 0x48, 0x29, 0xd8, //0x00008ea7 subq %rbx, %rax - 0x4c, 0x39, 0x7f, 0x08, //0x00008eaa cmpq %r15, $8(%rdi) - 0x0f, 0x86, 0x0c, 0x00, 0x00, 0x00, //0x00008eae jbe LBB38_18 - 0x04, 0x30, //0x00008eb4 addb $48, %al - 0x43, 0x88, 0x04, 0x3b, //0x00008eb6 movb %al, (%r11,%r15) - 0xe9, 0x11, 0x00, 0x00, 0x00, //0x00008eba jmp LBB38_20 - 0x90, //0x00008ebf .p2align 4, 0x90 - //0x00008ec0 LBB38_18 - 0x48, 0x85, 0xc0, //0x00008ec0 testq %rax, %rax - 0x0f, 0x84, 0x07, 0x00, 0x00, 0x00, //0x00008ec3 je LBB38_20 - 0xc7, 0x47, 0x1c, 0x01, 0x00, 0x00, 0x00, //0x00008ec9 movl $1, $28(%rdi) - //0x00008ed0 LBB38_20 - 0x49, 0x83, 0xfa, 0x02, //0x00008ed0 cmpq $2, %r10 - 0x0f, 0x8c, 0x14, 0x00, 0x00, 0x00, //0x00008ed4 jl LBB38_14 - 0x49, 0x83, 0xc2, 0xff, //0x00008eda addq $-1, %r10 - 0x4c, 0x8b, 0x1f, //0x00008ede movq (%rdi), %r11 - 0x41, 0x83, 0xc1, 0xff, //0x00008ee1 addl $-1, %r9d - 0x49, 0x83, 0xc7, 0xff, //0x00008ee5 addq $-1, %r15 - 0xe9, 0x92, 0xff, 0xff, 0xff, //0x00008ee9 jmp LBB38_12 - //0x00008eee LBB38_14 - 0x48, 0x83, 0xfe, 0x0a, //0x00008eee cmpq $10, %rsi - 0x0f, 0x83, 0x71, 0x00, 0x00, 0x00, //0x00008ef2 jae LBB38_15 - //0x00008ef8 LBB38_25 - 0x48, 0x63, 0x4f, 0x10, //0x00008ef8 movslq $16(%rdi), %rcx - 0x49, 0x63, 0xc0, //0x00008efc movslq %r8d, %rax - 0x48, 0x01, 0xc8, //0x00008eff addq %rcx, %rax - 0x89, 0x47, 0x10, //0x00008f02 movl %eax, $16(%rdi) - 0x48, 0x8b, 0x4f, 0x08, //0x00008f05 movq $8(%rdi), %rcx - 0x48, 0x39, 0xc1, //0x00008f09 cmpq %rax, %rcx - 0x0f, 0x87, 0x05, 0x00, 0x00, 0x00, //0x00008f0c ja LBB38_27 - 0x89, 0x4f, 0x10, //0x00008f12 movl %ecx, $16(%rdi) - 0x89, 0xc8, //0x00008f15 movl %ecx, %eax - //0x00008f17 LBB38_27 - 0x44, 0x01, 0x47, 0x14, //0x00008f17 addl %r8d, $20(%rdi) - 0x85, 0xc0, //0x00008f1b testl %eax, %eax - 0x0f, 0x8e, 0x32, 0x00, 0x00, 0x00, //0x00008f1d jle LBB38_31 - 0x48, 0x8b, 0x0f, //0x00008f23 movq (%rdi), %rcx - 0x89, 0xc2, //0x00008f26 movl %eax, %edx - 0x48, 0x83, 0xc2, 0x01, //0x00008f28 addq $1, %rdx - 0x83, 0xc0, 0xff, //0x00008f2c addl $-1, %eax - 0x90, //0x00008f2f .p2align 4, 0x90 - //0x00008f30 LBB38_29 - 0x89, 0xc6, //0x00008f30 movl %eax, %esi - 0x80, 0x3c, 0x31, 0x30, //0x00008f32 cmpb $48, (%rcx,%rsi) - 0x0f, 0x85, 0x26, 0x00, 0x00, 0x00, //0x00008f36 jne LBB38_33 - 0x89, 0x47, 0x10, //0x00008f3c movl %eax, $16(%rdi) - 0x48, 0x83, 0xc2, 0xff, //0x00008f3f addq $-1, %rdx - 0x83, 0xc0, 0xff, //0x00008f43 addl $-1, %eax - 0x48, 0x83, 0xfa, 0x01, //0x00008f46 cmpq $1, %rdx - 0x0f, 0x8f, 0xe0, 0xff, 0xff, 0xff, //0x00008f4a jg LBB38_29 - 0xe9, 0x06, 0x00, 0x00, 0x00, //0x00008f50 jmp LBB38_32 - //0x00008f55 LBB38_31 - 0x0f, 0x85, 0x07, 0x00, 0x00, 0x00, //0x00008f55 jne LBB38_33 - //0x00008f5b LBB38_32 - 0xc7, 0x47, 0x14, 0x00, 0x00, 0x00, 0x00, //0x00008f5b movl $0, $20(%rdi) - //0x00008f62 LBB38_33 - 0x5b, //0x00008f62 popq %rbx - 0x41, 0x5e, //0x00008f63 popq %r14 - 0x41, 0x5f, //0x00008f65 popq %r15 - 0x5d, //0x00008f67 popq %rbp - 0xc3, //0x00008f68 retq - //0x00008f69 LBB38_15 - 0x45, 0x01, 0xc1, //0x00008f69 addl %r8d, %r9d - 0x49, 0x63, 0xf1, //0x00008f6c movslq %r9d, %rsi - 0x48, 0x83, 0xc6, 0xff, //0x00008f6f addq $-1, %rsi - 0xe9, 0x1e, 0x00, 0x00, 0x00, //0x00008f73 jmp LBB38_16 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008f78 .p2align 4, 0x90 - //0x00008f80 LBB38_17 - 0x04, 0x30, //0x00008f80 addb $48, %al - 0x48, 0x8b, 0x1f, //0x00008f82 movq (%rdi), %rbx - 0x88, 0x04, 0x33, //0x00008f85 movb %al, (%rbx,%rsi) - //0x00008f88 LBB38_24 - 0x48, 0x83, 0xc6, 0xff, //0x00008f88 addq $-1, %rsi - 0x48, 0x83, 0xf9, 0x09, //0x00008f8c cmpq $9, %rcx - 0x0f, 0x86, 0x62, 0xff, 0xff, 0xff, //0x00008f90 jbe LBB38_25 - //0x00008f96 LBB38_16 - 0x48, 0x89, 0xd1, //0x00008f96 movq %rdx, %rcx - 0x48, 0x89, 0xd0, //0x00008f99 movq %rdx, %rax - 0x49, 0xf7, 0xe6, //0x00008f9c mulq %r14 - 0x48, 0xc1, 0xea, 0x03, //0x00008f9f shrq $3, %rdx - 0x48, 0x8d, 0x04, 0x12, //0x00008fa3 leaq (%rdx,%rdx), %rax - 0x48, 0x8d, 0x1c, 0x80, //0x00008fa7 leaq (%rax,%rax,4), %rbx - 0x48, 0x89, 0xc8, //0x00008fab movq %rcx, %rax - 0x48, 0x29, 0xd8, //0x00008fae subq %rbx, %rax - 0x48, 0x39, 0x77, 0x08, //0x00008fb1 cmpq %rsi, $8(%rdi) - 0x0f, 0x87, 0xc5, 0xff, 0xff, 0xff, //0x00008fb5 ja LBB38_17 - 0x48, 0x85, 0xc0, //0x00008fbb testq %rax, %rax - 0x0f, 0x84, 0xc4, 0xff, 0xff, 0xff, //0x00008fbe je LBB38_24 - 0xc7, 0x47, 0x1c, 0x01, 0x00, 0x00, 0x00, //0x00008fc4 movl $1, $28(%rdi) - 0xe9, 0xb8, 0xff, 0xff, 0xff, //0x00008fcb jmp LBB38_24 - //0x00008fd0 LBB38_5 - 0x0f, 0x8c, 0x73, 0xfe, 0xff, 0xff, //0x00008fd0 jl LBB38_9 - 0xe9, 0x72, 0xfe, 0xff, 0xff, //0x00008fd6 jmp LBB38_10 - 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008fdb .p2align 4, 0x90 - //0x00008fe0 _right_shift - 0x55, //0x00008fe0 pushq %rbp - 0x48, 0x89, 0xe5, //0x00008fe1 movq %rsp, %rbp - 0x53, //0x00008fe4 pushq %rbx - 0x89, 0xf1, //0x00008fe5 movl %esi, %ecx - 0x44, 0x8b, 0x47, 0x10, //0x00008fe7 movl $16(%rdi), %r8d - 0x31, 0xd2, //0x00008feb xorl %edx, %edx - 0x45, 0x85, 0xc0, //0x00008fed testl %r8d, %r8d - 0x41, 0xbb, 0x00, 0x00, 0x00, 0x00, //0x00008ff0 movl $0, %r11d - 0x45, 0x0f, 0x4f, 0xd8, //0x00008ff6 cmovgl %r8d, %r11d - 0x31, 0xc0, //0x00008ffa xorl %eax, %eax - 0x90, 0x90, 0x90, 0x90, //0x00008ffc .p2align 4, 0x90 - //0x00009000 LBB39_1 - 0x49, 0x39, 0xd3, //0x00009000 cmpq %rdx, %r11 - 0x0f, 0x84, 0x4f, 0x01, 0x00, 0x00, //0x00009003 je LBB39_2 - 0x48, 0x8d, 0x04, 0x80, //0x00009009 leaq (%rax,%rax,4), %rax - 0x48, 0x8b, 0x37, //0x0000900d movq (%rdi), %rsi - 0x48, 0x0f, 0xbe, 0x34, 0x16, //0x00009010 movsbq (%rsi,%rdx), %rsi - 0x48, 0x8d, 0x04, 0x46, //0x00009015 leaq (%rsi,%rax,2), %rax - 0x48, 0x83, 0xc0, 0xd0, //0x00009019 addq $-48, %rax - 0x48, 0x83, 0xc2, 0x01, //0x0000901d addq $1, %rdx - 0x48, 0x89, 0xc6, //0x00009021 movq %rax, %rsi - 0x48, 0xd3, 0xee, //0x00009024 shrq %cl, %rsi - 0x48, 0x85, 0xf6, //0x00009027 testq %rsi, %rsi - 0x0f, 0x84, 0xd0, 0xff, 0xff, 0xff, //0x0000902a je LBB39_1 - 0x41, 0x89, 0xd3, //0x00009030 movl %edx, %r11d - //0x00009033 LBB39_7 - 0x8b, 0x57, 0x14, //0x00009033 movl $20(%rdi), %edx - 0x44, 0x29, 0xda, //0x00009036 subl %r11d, %edx - 0x83, 0xc2, 0x01, //0x00009039 addl $1, %edx - 0x49, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x0000903c movq $-1, %r9 - 0x49, 0xd3, 0xe1, //0x00009043 shlq %cl, %r9 - 0x89, 0x57, 0x14, //0x00009046 movl %edx, $20(%rdi) - 0x49, 0xf7, 0xd1, //0x00009049 notq %r9 - 0x45, 0x31, 0xd2, //0x0000904c xorl %r10d, %r10d - 0x45, 0x39, 0xc3, //0x0000904f cmpl %r8d, %r11d - 0x0f, 0x8d, 0x80, 0x00, 0x00, 0x00, //0x00009052 jge LBB39_10 - 0x4d, 0x63, 0xc3, //0x00009058 movslq %r11d, %r8 - 0x48, 0x8b, 0x37, //0x0000905b movq (%rdi), %rsi - 0x45, 0x31, 0xd2, //0x0000905e xorl %r10d, %r10d - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00009061 .p2align 4, 0x90 - //0x00009070 LBB39_9 - 0x48, 0x89, 0xc2, //0x00009070 movq %rax, %rdx - 0x48, 0xd3, 0xea, //0x00009073 shrq %cl, %rdx - 0x4c, 0x21, 0xc8, //0x00009076 andq %r9, %rax - 0x80, 0xc2, 0x30, //0x00009079 addb $48, %dl - 0x42, 0x88, 0x14, 0x16, //0x0000907c movb %dl, (%rsi,%r10) - 0x48, 0x8b, 0x37, //0x00009080 movq (%rdi), %rsi - 0x4a, 0x8d, 0x14, 0x06, //0x00009083 leaq (%rsi,%r8), %rdx - 0x4d, 0x0f, 0xbe, 0x1c, 0x12, //0x00009087 movsbq (%r10,%rdx), %r11 - 0x4b, 0x8d, 0x5c, 0x10, 0x01, //0x0000908c leaq $1(%r8,%r10), %rbx - 0x49, 0x83, 0xc2, 0x01, //0x00009091 addq $1, %r10 - 0x48, 0x8d, 0x04, 0x80, //0x00009095 leaq (%rax,%rax,4), %rax - 0x49, 0x8d, 0x04, 0x43, //0x00009099 leaq (%r11,%rax,2), %rax - 0x48, 0x83, 0xc0, 0xd0, //0x0000909d addq $-48, %rax - 0x48, 0x63, 0x57, 0x10, //0x000090a1 movslq $16(%rdi), %rdx - 0x48, 0x39, 0xd3, //0x000090a5 cmpq %rdx, %rbx - 0x0f, 0x8c, 0xc2, 0xff, 0xff, 0xff, //0x000090a8 jl LBB39_9 - 0xe9, 0x25, 0x00, 0x00, 0x00, //0x000090ae jmp LBB39_10 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000090b3 .p2align 4, 0x90 - //0x000090c0 LBB39_12 - 0x40, 0x80, 0xc6, 0x30, //0x000090c0 addb $48, %sil - 0x48, 0x8b, 0x1f, //0x000090c4 movq (%rdi), %rbx - 0x40, 0x88, 0x34, 0x13, //0x000090c7 movb %sil, (%rbx,%rdx) - 0x83, 0xc2, 0x01, //0x000090cb addl $1, %edx - 0x41, 0x89, 0xd2, //0x000090ce movl %edx, %r10d - //0x000090d1 LBB39_15 - 0x48, 0x01, 0xc0, //0x000090d1 addq %rax, %rax - 0x48, 0x8d, 0x04, 0x80, //0x000090d4 leaq (%rax,%rax,4), %rax - //0x000090d8 LBB39_10 - 0x48, 0x85, 0xc0, //0x000090d8 testq %rax, %rax - 0x0f, 0x84, 0x2b, 0x00, 0x00, 0x00, //0x000090db je LBB39_16 - 0x48, 0x89, 0xc6, //0x000090e1 movq %rax, %rsi - 0x48, 0xd3, 0xee, //0x000090e4 shrq %cl, %rsi - 0x4c, 0x21, 0xc8, //0x000090e7 andq %r9, %rax - 0x49, 0x63, 0xd2, //0x000090ea movslq %r10d, %rdx - 0x48, 0x39, 0x57, 0x08, //0x000090ed cmpq %rdx, $8(%rdi) - 0x0f, 0x87, 0xc9, 0xff, 0xff, 0xff, //0x000090f1 ja LBB39_12 - 0x48, 0x85, 0xf6, //0x000090f7 testq %rsi, %rsi - 0x0f, 0x84, 0xd1, 0xff, 0xff, 0xff, //0x000090fa je LBB39_15 - 0xc7, 0x47, 0x1c, 0x01, 0x00, 0x00, 0x00, //0x00009100 movl $1, $28(%rdi) - 0xe9, 0xc5, 0xff, 0xff, 0xff, //0x00009107 jmp LBB39_15 - //0x0000910c LBB39_16 - 0x44, 0x89, 0x57, 0x10, //0x0000910c movl %r10d, $16(%rdi) - 0x45, 0x85, 0xd2, //0x00009110 testl %r10d, %r10d - 0x0f, 0x8e, 0x85, 0x00, 0x00, 0x00, //0x00009113 jle LBB39_20 - 0x48, 0x8b, 0x07, //0x00009119 movq (%rdi), %rax - 0x44, 0x89, 0xd1, //0x0000911c movl %r10d, %ecx - 0x48, 0x83, 0xc1, 0x01, //0x0000911f addq $1, %rcx - 0x41, 0x83, 0xc2, 0xff, //0x00009123 addl $-1, %r10d - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00009127 .p2align 4, 0x90 - //0x00009130 LBB39_18 - 0x44, 0x89, 0xd2, //0x00009130 movl %r10d, %edx - 0x80, 0x3c, 0x10, 0x30, //0x00009133 cmpb $48, (%rax,%rdx) - 0x0f, 0x85, 0x67, 0x00, 0x00, 0x00, //0x00009137 jne LBB39_22 - 0x44, 0x89, 0x57, 0x10, //0x0000913d movl %r10d, $16(%rdi) - 0x48, 0x83, 0xc1, 0xff, //0x00009141 addq $-1, %rcx - 0x41, 0x83, 0xc2, 0xff, //0x00009145 addl $-1, %r10d - 0x48, 0x83, 0xf9, 0x01, //0x00009149 cmpq $1, %rcx - 0x0f, 0x8f, 0xdd, 0xff, 0xff, 0xff, //0x0000914d jg LBB39_18 - 0xe9, 0x4f, 0x00, 0x00, 0x00, //0x00009153 jmp LBB39_21 - //0x00009158 LBB39_2 - 0x48, 0x85, 0xc0, //0x00009158 testq %rax, %rax - 0x0f, 0x84, 0x50, 0x00, 0x00, 0x00, //0x0000915b je LBB39_23 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00009161 .p2align 4, 0x90 - 0x48, 0x89, 0xc2, //0x00009170 movq %rax, %rdx - 0x48, 0xd3, 0xea, //0x00009173 shrq %cl, %rdx - 0x48, 0x85, 0xd2, //0x00009176 testq %rdx, %rdx - 0x0f, 0x85, 0xb4, 0xfe, 0xff, 0xff, //0x00009179 jne LBB39_7 - //0x0000917f LBB39_4 - 0x48, 0x01, 0xc0, //0x0000917f addq %rax, %rax - 0x48, 0x8d, 0x04, 0x80, //0x00009182 leaq (%rax,%rax,4), %rax - 0x41, 0x83, 0xc3, 0x01, //0x00009186 addl $1, %r11d - 0x48, 0x89, 0xc2, //0x0000918a movq %rax, %rdx - 0x48, 0xd3, 0xea, //0x0000918d shrq %cl, %rdx - 0x48, 0x85, 0xd2, //0x00009190 testq %rdx, %rdx - 0x0f, 0x84, 0xe6, 0xff, 0xff, 0xff, //0x00009193 je LBB39_4 - 0xe9, 0x95, 0xfe, 0xff, 0xff, //0x00009199 jmp LBB39_7 - //0x0000919e LBB39_20 - 0x0f, 0x84, 0x03, 0x00, 0x00, 0x00, //0x0000919e je LBB39_21 - //0x000091a4 LBB39_22 - 0x5b, //0x000091a4 popq %rbx - 0x5d, //0x000091a5 popq %rbp - 0xc3, //0x000091a6 retq - //0x000091a7 LBB39_21 - 0xc7, 0x47, 0x14, 0x00, 0x00, 0x00, 0x00, //0x000091a7 movl $0, $20(%rdi) - 0x5b, //0x000091ae popq %rbx - 0x5d, //0x000091af popq %rbp - 0xc3, //0x000091b0 retq - //0x000091b1 LBB39_23 - 0xc7, 0x47, 0x10, 0x00, 0x00, 0x00, 0x00, //0x000091b1 movl $0, $16(%rdi) - 0x5b, //0x000091b8 popq %rbx - 0x5d, //0x000091b9 popq %rbp - 0xc3, //0x000091ba retq - 0x00, 0x00, 0x00, 0x00, 0x00, //0x000091bb .p2align 4, 0x00 - //0x000091c0 LCPI40_0 - 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, //0x000091c0 QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' - //0x000091d0 LCPI40_1 - 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x000091d0 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' - //0x000091e0 .p2align 4, 0x90 - //0x000091e0 _advance_string_default - 0x55, //0x000091e0 pushq %rbp - 0x48, 0x89, 0xe5, //0x000091e1 movq %rsp, %rbp - 0x41, 0x57, //0x000091e4 pushq %r15 - 0x41, 0x56, //0x000091e6 pushq %r14 - 0x41, 0x55, //0x000091e8 pushq %r13 - 0x41, 0x54, //0x000091ea pushq %r12 - 0x53, //0x000091ec pushq %rbx - 0x50, //0x000091ed pushq %rax - 0x4c, 0x8b, 0x7f, 0x08, //0x000091ee movq $8(%rdi), %r15 - 0x49, 0x29, 0xf7, //0x000091f2 subq %rsi, %r15 - 0x0f, 0x84, 0x68, 0x03, 0x00, 0x00, //0x000091f5 je LBB40_17 - 0x4c, 0x8b, 0x0f, //0x000091fb movq (%rdi), %r9 - 0x48, 0xc7, 0x02, 0xff, 0xff, 0xff, 0xff, //0x000091fe movq $-1, (%rdx) - 0x49, 0x83, 0xff, 0x40, //0x00009205 cmpq $64, %r15 - 0x0f, 0x82, 0xdf, 0x01, 0x00, 0x00, //0x00009209 jb LBB40_18 - 0x48, 0x89, 0xf7, //0x0000920f movq %rsi, %rdi - 0x48, 0xf7, 0xd7, //0x00009212 notq %rdi - 0x48, 0xc7, 0x45, 0xd0, 0xff, 0xff, 0xff, 0xff, //0x00009215 movq $-1, $-48(%rbp) - 0x45, 0x31, 0xf6, //0x0000921d xorl %r14d, %r14d - 0xc5, 0xf9, 0x6f, 0x05, 0x98, 0xff, 0xff, 0xff, //0x00009220 vmovdqa $-104(%rip), %xmm0 /* LCPI40_0+0(%rip) */ - 0xc5, 0xf9, 0x6f, 0x0d, 0xa0, 0xff, 0xff, 0xff, //0x00009228 vmovdqa $-96(%rip), %xmm1 /* LCPI40_1+0(%rip) */ - //0x00009230 .p2align 4, 0x90 - //0x00009230 LBB40_3 - 0xc4, 0xc1, 0x7a, 0x6f, 0x14, 0x31, //0x00009230 vmovdqu (%r9,%rsi), %xmm2 - 0xc4, 0xc1, 0x7a, 0x6f, 0x5c, 0x31, 0x10, //0x00009236 vmovdqu $16(%r9,%rsi), %xmm3 - 0xc4, 0xc1, 0x7a, 0x6f, 0x64, 0x31, 0x20, //0x0000923d vmovdqu $32(%r9,%rsi), %xmm4 - 0xc4, 0xc1, 0x7a, 0x6f, 0x6c, 0x31, 0x30, //0x00009244 vmovdqu $48(%r9,%rsi), %xmm5 - 0xc5, 0xe9, 0x74, 0xf0, //0x0000924b vpcmpeqb %xmm0, %xmm2, %xmm6 - 0xc5, 0x79, 0xd7, 0xe6, //0x0000924f vpmovmskb %xmm6, %r12d - 0xc5, 0xe1, 0x74, 0xf0, //0x00009253 vpcmpeqb %xmm0, %xmm3, %xmm6 - 0xc5, 0xf9, 0xd7, 0xde, //0x00009257 vpmovmskb %xmm6, %ebx - 0xc5, 0xd9, 0x74, 0xf0, //0x0000925b vpcmpeqb %xmm0, %xmm4, %xmm6 - 0xc5, 0xf9, 0xd7, 0xc6, //0x0000925f vpmovmskb %xmm6, %eax - 0xc5, 0xd1, 0x74, 0xf0, //0x00009263 vpcmpeqb %xmm0, %xmm5, %xmm6 - 0xc5, 0x79, 0xd7, 0xc6, //0x00009267 vpmovmskb %xmm6, %r8d - 0xc5, 0xe9, 0x74, 0xd1, //0x0000926b vpcmpeqb %xmm1, %xmm2, %xmm2 - 0xc5, 0x79, 0xd7, 0xea, //0x0000926f vpmovmskb %xmm2, %r13d - 0xc5, 0xe1, 0x74, 0xd1, //0x00009273 vpcmpeqb %xmm1, %xmm3, %xmm2 - 0xc5, 0xf9, 0xd7, 0xca, //0x00009277 vpmovmskb %xmm2, %ecx - 0xc5, 0xd9, 0x74, 0xd1, //0x0000927b vpcmpeqb %xmm1, %xmm4, %xmm2 - 0xc5, 0x79, 0xd7, 0xd2, //0x0000927f vpmovmskb %xmm2, %r10d - 0xc5, 0xd1, 0x74, 0xd1, //0x00009283 vpcmpeqb %xmm1, %xmm5, %xmm2 - 0xc5, 0x79, 0xd7, 0xda, //0x00009287 vpmovmskb %xmm2, %r11d - 0x49, 0xc1, 0xe0, 0x30, //0x0000928b shlq $48, %r8 - 0x48, 0xc1, 0xe0, 0x20, //0x0000928f shlq $32, %rax - 0x4c, 0x09, 0xc0, //0x00009293 orq %r8, %rax - 0x48, 0xc1, 0xe3, 0x10, //0x00009296 shlq $16, %rbx - 0x48, 0x09, 0xc3, //0x0000929a orq %rax, %rbx - 0x49, 0x09, 0xdc, //0x0000929d orq %rbx, %r12 - 0x49, 0xc1, 0xe3, 0x30, //0x000092a0 shlq $48, %r11 - 0x49, 0xc1, 0xe2, 0x20, //0x000092a4 shlq $32, %r10 - 0x4d, 0x09, 0xda, //0x000092a8 orq %r11, %r10 - 0x48, 0xc1, 0xe1, 0x10, //0x000092ab shlq $16, %rcx - 0x4c, 0x09, 0xd1, //0x000092af orq %r10, %rcx - 0x49, 0x09, 0xcd, //0x000092b2 orq %rcx, %r13 - 0x0f, 0x85, 0x30, 0x00, 0x00, 0x00, //0x000092b5 jne LBB40_7 - 0x4d, 0x85, 0xf6, //0x000092bb testq %r14, %r14 - 0x0f, 0x85, 0x40, 0x00, 0x00, 0x00, //0x000092be jne LBB40_9 - 0x45, 0x31, 0xf6, //0x000092c4 xorl %r14d, %r14d - 0x4d, 0x85, 0xe4, //0x000092c7 testq %r12, %r12 - 0x0f, 0x85, 0x86, 0x00, 0x00, 0x00, //0x000092ca jne LBB40_10 - //0x000092d0 LBB40_6 - 0x49, 0x83, 0xc7, 0xc0, //0x000092d0 addq $-64, %r15 - 0x48, 0x83, 0xc7, 0xc0, //0x000092d4 addq $-64, %rdi - 0x48, 0x83, 0xc6, 0x40, //0x000092d8 addq $64, %rsi - 0x49, 0x83, 0xff, 0x3f, //0x000092dc cmpq $63, %r15 - 0x0f, 0x87, 0x4a, 0xff, 0xff, 0xff, //0x000092e0 ja LBB40_3 - 0xe9, 0x81, 0x00, 0x00, 0x00, //0x000092e6 jmp LBB40_12 - //0x000092eb LBB40_7 - 0x48, 0x83, 0x7d, 0xd0, 0xff, //0x000092eb cmpq $-1, $-48(%rbp) - 0x0f, 0x85, 0x0e, 0x00, 0x00, 0x00, //0x000092f0 jne LBB40_9 - 0x49, 0x0f, 0xbc, 0xc5, //0x000092f6 bsfq %r13, %rax - 0x48, 0x01, 0xf0, //0x000092fa addq %rsi, %rax - 0x48, 0x89, 0x45, 0xd0, //0x000092fd movq %rax, $-48(%rbp) - 0x48, 0x89, 0x02, //0x00009301 movq %rax, (%rdx) - //0x00009304 LBB40_9 - 0x4c, 0x89, 0xf0, //0x00009304 movq %r14, %rax - 0x48, 0xf7, 0xd0, //0x00009307 notq %rax - 0x4c, 0x21, 0xe8, //0x0000930a andq %r13, %rax - 0x4c, 0x8d, 0x04, 0x00, //0x0000930d leaq (%rax,%rax), %r8 - 0x4d, 0x09, 0xf0, //0x00009311 orq %r14, %r8 - 0x4c, 0x89, 0xc1, //0x00009314 movq %r8, %rcx - 0x48, 0xf7, 0xd1, //0x00009317 notq %rcx - 0x4c, 0x21, 0xe9, //0x0000931a andq %r13, %rcx - 0x48, 0xbb, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x0000931d movabsq $-6148914691236517206, %rbx - 0x48, 0x21, 0xd9, //0x00009327 andq %rbx, %rcx - 0x45, 0x31, 0xf6, //0x0000932a xorl %r14d, %r14d - 0x48, 0x01, 0xc1, //0x0000932d addq %rax, %rcx - 0x41, 0x0f, 0x92, 0xc6, //0x00009330 setb %r14b - 0x48, 0x01, 0xc9, //0x00009334 addq %rcx, %rcx - 0x48, 0xb8, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00009337 movabsq $6148914691236517205, %rax - 0x48, 0x31, 0xc1, //0x00009341 xorq %rax, %rcx - 0x4c, 0x21, 0xc1, //0x00009344 andq %r8, %rcx - 0x48, 0xf7, 0xd1, //0x00009347 notq %rcx - 0x49, 0x21, 0xcc, //0x0000934a andq %rcx, %r12 - 0x4d, 0x85, 0xe4, //0x0000934d testq %r12, %r12 - 0x0f, 0x84, 0x7a, 0xff, 0xff, 0xff, //0x00009350 je LBB40_6 - //0x00009356 LBB40_10 - 0x49, 0x0f, 0xbc, 0xc4, //0x00009356 bsfq %r12, %rax - 0x48, 0x29, 0xf8, //0x0000935a subq %rdi, %rax - //0x0000935d LBB40_11 - 0x48, 0x83, 0xc4, 0x08, //0x0000935d addq $8, %rsp - 0x5b, //0x00009361 popq %rbx - 0x41, 0x5c, //0x00009362 popq %r12 - 0x41, 0x5d, //0x00009364 popq %r13 - 0x41, 0x5e, //0x00009366 popq %r14 - 0x41, 0x5f, //0x00009368 popq %r15 - 0x5d, //0x0000936a popq %rbp - 0xc3, //0x0000936b retq - //0x0000936c LBB40_12 - 0x4c, 0x01, 0xce, //0x0000936c addq %r9, %rsi - 0x49, 0x83, 0xff, 0x20, //0x0000936f cmpq $32, %r15 - 0x0f, 0x82, 0xf2, 0x00, 0x00, 0x00, //0x00009373 jb LBB40_23 - //0x00009379 LBB40_13 - 0xc5, 0xfa, 0x6f, 0x06, //0x00009379 vmovdqu (%rsi), %xmm0 - 0xc5, 0xfa, 0x6f, 0x4e, 0x10, //0x0000937d vmovdqu $16(%rsi), %xmm1 - 0xc5, 0xf9, 0x6f, 0x15, 0x36, 0xfe, 0xff, 0xff, //0x00009382 vmovdqa $-458(%rip), %xmm2 /* LCPI40_0+0(%rip) */ - 0xc5, 0xf9, 0x6f, 0x1d, 0x3e, 0xfe, 0xff, 0xff, //0x0000938a vmovdqa $-450(%rip), %xmm3 /* LCPI40_1+0(%rip) */ - 0xc5, 0xf9, 0x74, 0xe2, //0x00009392 vpcmpeqb %xmm2, %xmm0, %xmm4 - 0xc5, 0xf9, 0xd7, 0xfc, //0x00009396 vpmovmskb %xmm4, %edi - 0xc5, 0xf1, 0x74, 0xd2, //0x0000939a vpcmpeqb %xmm2, %xmm1, %xmm2 - 0xc5, 0xf9, 0xd7, 0xca, //0x0000939e vpmovmskb %xmm2, %ecx - 0xc5, 0xf9, 0x74, 0xc3, //0x000093a2 vpcmpeqb %xmm3, %xmm0, %xmm0 - 0xc5, 0xf9, 0xd7, 0xc0, //0x000093a6 vpmovmskb %xmm0, %eax - 0xc5, 0xf1, 0x74, 0xc3, //0x000093aa vpcmpeqb %xmm3, %xmm1, %xmm0 - 0xc5, 0xf9, 0xd7, 0xd8, //0x000093ae vpmovmskb %xmm0, %ebx - 0x48, 0xc1, 0xe1, 0x10, //0x000093b2 shlq $16, %rcx - 0x48, 0x09, 0xcf, //0x000093b6 orq %rcx, %rdi - 0x48, 0xc1, 0xe3, 0x10, //0x000093b9 shlq $16, %rbx - 0x48, 0x09, 0xd8, //0x000093bd orq %rbx, %rax - 0x0f, 0x85, 0x45, 0x00, 0x00, 0x00, //0x000093c0 jne LBB40_19 - 0x4d, 0x85, 0xf6, //0x000093c6 testq %r14, %r14 - 0x0f, 0x85, 0x5b, 0x00, 0x00, 0x00, //0x000093c9 jne LBB40_21 - 0x45, 0x31, 0xf6, //0x000093cf xorl %r14d, %r14d - 0x48, 0x85, 0xff, //0x000093d2 testq %rdi, %rdi - 0x0f, 0x84, 0x88, 0x00, 0x00, 0x00, //0x000093d5 je LBB40_22 - //0x000093db LBB40_16 - 0x48, 0x0f, 0xbc, 0xc7, //0x000093db bsfq %rdi, %rax - 0x4c, 0x29, 0xce, //0x000093df subq %r9, %rsi - 0x48, 0x01, 0xf0, //0x000093e2 addq %rsi, %rax - 0x48, 0x83, 0xc0, 0x01, //0x000093e5 addq $1, %rax - 0xe9, 0x6f, 0xff, 0xff, 0xff, //0x000093e9 jmp LBB40_11 - //0x000093ee LBB40_18 - 0x4c, 0x01, 0xce, //0x000093ee addq %r9, %rsi - 0x48, 0xc7, 0x45, 0xd0, 0xff, 0xff, 0xff, 0xff, //0x000093f1 movq $-1, $-48(%rbp) - 0x45, 0x31, 0xf6, //0x000093f9 xorl %r14d, %r14d - 0x49, 0x83, 0xff, 0x20, //0x000093fc cmpq $32, %r15 - 0x0f, 0x83, 0x73, 0xff, 0xff, 0xff, //0x00009400 jae LBB40_13 - 0xe9, 0x60, 0x00, 0x00, 0x00, //0x00009406 jmp LBB40_23 - //0x0000940b LBB40_19 - 0x48, 0x83, 0x7d, 0xd0, 0xff, //0x0000940b cmpq $-1, $-48(%rbp) - 0x0f, 0x85, 0x14, 0x00, 0x00, 0x00, //0x00009410 jne LBB40_21 - 0x48, 0x89, 0xf1, //0x00009416 movq %rsi, %rcx - 0x4c, 0x29, 0xc9, //0x00009419 subq %r9, %rcx - 0x48, 0x0f, 0xbc, 0xd8, //0x0000941c bsfq %rax, %rbx - 0x48, 0x01, 0xcb, //0x00009420 addq %rcx, %rbx - 0x48, 0x89, 0x5d, 0xd0, //0x00009423 movq %rbx, $-48(%rbp) - 0x48, 0x89, 0x1a, //0x00009427 movq %rbx, (%rdx) - //0x0000942a LBB40_21 - 0x44, 0x89, 0xf1, //0x0000942a movl %r14d, %ecx - 0xf7, 0xd1, //0x0000942d notl %ecx - 0x21, 0xc1, //0x0000942f andl %eax, %ecx - 0x45, 0x8d, 0x04, 0x4e, //0x00009431 leal (%r14,%rcx,2), %r8d - 0x8d, 0x1c, 0x09, //0x00009435 leal (%rcx,%rcx), %ebx - 0xf7, 0xd3, //0x00009438 notl %ebx - 0x21, 0xc3, //0x0000943a andl %eax, %ebx - 0x81, 0xe3, 0xaa, 0xaa, 0xaa, 0xaa, //0x0000943c andl $-1431655766, %ebx - 0x45, 0x31, 0xf6, //0x00009442 xorl %r14d, %r14d - 0x01, 0xcb, //0x00009445 addl %ecx, %ebx - 0x41, 0x0f, 0x92, 0xc6, //0x00009447 setb %r14b - 0x01, 0xdb, //0x0000944b addl %ebx, %ebx - 0x81, 0xf3, 0x55, 0x55, 0x55, 0x55, //0x0000944d xorl $1431655765, %ebx - 0x44, 0x21, 0xc3, //0x00009453 andl %r8d, %ebx - 0xf7, 0xd3, //0x00009456 notl %ebx - 0x21, 0xdf, //0x00009458 andl %ebx, %edi - 0x48, 0x85, 0xff, //0x0000945a testq %rdi, %rdi - 0x0f, 0x85, 0x78, 0xff, 0xff, 0xff, //0x0000945d jne LBB40_16 - //0x00009463 LBB40_22 - 0x48, 0x83, 0xc6, 0x20, //0x00009463 addq $32, %rsi - 0x49, 0x83, 0xc7, 0xe0, //0x00009467 addq $-32, %r15 - //0x0000946b LBB40_23 - 0x4d, 0x85, 0xf6, //0x0000946b testq %r14, %r14 - 0x0f, 0x85, 0xb5, 0x00, 0x00, 0x00, //0x0000946e jne LBB40_37 - 0x4d, 0x85, 0xff, //0x00009474 testq %r15, %r15 - 0x0f, 0x84, 0xa1, 0x00, 0x00, 0x00, //0x00009477 je LBB40_36 - //0x0000947d LBB40_25 - 0x4c, 0x89, 0xcf, //0x0000947d movq %r9, %rdi - 0x48, 0xf7, 0xd7, //0x00009480 notq %rdi - 0x48, 0x83, 0xc7, 0x01, //0x00009483 addq $1, %rdi - //0x00009487 LBB40_26 - 0x31, 0xc0, //0x00009487 xorl %eax, %eax - //0x00009489 LBB40_27 - 0x48, 0x89, 0xc3, //0x00009489 movq %rax, %rbx - 0x0f, 0xb6, 0x0c, 0x06, //0x0000948c movzbl (%rsi,%rax), %ecx - 0x80, 0xf9, 0x22, //0x00009490 cmpb $34, %cl - 0x0f, 0x84, 0x7e, 0x00, 0x00, 0x00, //0x00009493 je LBB40_35 - 0x80, 0xf9, 0x5c, //0x00009499 cmpb $92, %cl - 0x0f, 0x84, 0x12, 0x00, 0x00, 0x00, //0x0000949c je LBB40_30 - 0x48, 0x8d, 0x43, 0x01, //0x000094a2 leaq $1(%rbx), %rax - 0x49, 0x39, 0xc7, //0x000094a6 cmpq %rax, %r15 - 0x0f, 0x85, 0xda, 0xff, 0xff, 0xff, //0x000094a9 jne LBB40_27 - 0xe9, 0x53, 0x00, 0x00, 0x00, //0x000094af jmp LBB40_34 - //0x000094b4 LBB40_30 - 0x49, 0x8d, 0x4f, 0xff, //0x000094b4 leaq $-1(%r15), %rcx - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000094b8 movq $-1, %rax - 0x48, 0x39, 0xd9, //0x000094bf cmpq %rbx, %rcx - 0x0f, 0x84, 0x95, 0xfe, 0xff, 0xff, //0x000094c2 je LBB40_11 - 0x48, 0x83, 0x7d, 0xd0, 0xff, //0x000094c8 cmpq $-1, $-48(%rbp) - 0x0f, 0x85, 0x0e, 0x00, 0x00, 0x00, //0x000094cd jne LBB40_33 - 0x48, 0x8d, 0x0c, 0x37, //0x000094d3 leaq (%rdi,%rsi), %rcx - 0x48, 0x01, 0xd9, //0x000094d7 addq %rbx, %rcx - 0x48, 0x89, 0x4d, 0xd0, //0x000094da movq %rcx, $-48(%rbp) - 0x48, 0x89, 0x0a, //0x000094de movq %rcx, (%rdx) - //0x000094e1 LBB40_33 - 0x48, 0x01, 0xde, //0x000094e1 addq %rbx, %rsi - 0x48, 0x83, 0xc6, 0x02, //0x000094e4 addq $2, %rsi - 0x4c, 0x89, 0xf9, //0x000094e8 movq %r15, %rcx - 0x48, 0x29, 0xd9, //0x000094eb subq %rbx, %rcx - 0x48, 0x83, 0xc1, 0xfe, //0x000094ee addq $-2, %rcx - 0x49, 0x83, 0xc7, 0xfe, //0x000094f2 addq $-2, %r15 - 0x49, 0x39, 0xdf, //0x000094f6 cmpq %rbx, %r15 - 0x49, 0x89, 0xcf, //0x000094f9 movq %rcx, %r15 - 0x0f, 0x85, 0x85, 0xff, 0xff, 0xff, //0x000094fc jne LBB40_26 - 0xe9, 0x56, 0xfe, 0xff, 0xff, //0x00009502 jmp LBB40_11 - //0x00009507 LBB40_34 - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00009507 movq $-1, %rax - 0x80, 0xf9, 0x22, //0x0000950e cmpb $34, %cl - 0x0f, 0x85, 0x46, 0xfe, 0xff, 0xff, //0x00009511 jne LBB40_11 - //0x00009517 LBB40_35 - 0x48, 0x01, 0xde, //0x00009517 addq %rbx, %rsi - 0x48, 0x83, 0xc6, 0x01, //0x0000951a addq $1, %rsi - //0x0000951e LBB40_36 - 0x4c, 0x29, 0xce, //0x0000951e subq %r9, %rsi - 0x48, 0x89, 0xf0, //0x00009521 movq %rsi, %rax - 0xe9, 0x34, 0xfe, 0xff, 0xff, //0x00009524 jmp LBB40_11 - //0x00009529 LBB40_37 - 0x4d, 0x85, 0xff, //0x00009529 testq %r15, %r15 - 0x0f, 0x84, 0x31, 0x00, 0x00, 0x00, //0x0000952c je LBB40_17 - 0x48, 0x83, 0x7d, 0xd0, 0xff, //0x00009532 cmpq $-1, $-48(%rbp) - 0x0f, 0x85, 0x10, 0x00, 0x00, 0x00, //0x00009537 jne LBB40_40 - 0x4c, 0x89, 0xc8, //0x0000953d movq %r9, %rax - 0x48, 0xf7, 0xd0, //0x00009540 notq %rax - 0x48, 0x01, 0xf0, //0x00009543 addq %rsi, %rax - 0x48, 0x89, 0x45, 0xd0, //0x00009546 movq %rax, $-48(%rbp) - 0x48, 0x89, 0x02, //0x0000954a movq %rax, (%rdx) - //0x0000954d LBB40_40 - 0x48, 0x83, 0xc6, 0x01, //0x0000954d addq $1, %rsi - 0x49, 0x83, 0xc7, 0xff, //0x00009551 addq $-1, %r15 - 0x4d, 0x85, 0xff, //0x00009555 testq %r15, %r15 - 0x0f, 0x85, 0x1f, 0xff, 0xff, 0xff, //0x00009558 jne LBB40_25 - 0xe9, 0xbb, 0xff, 0xff, 0xff, //0x0000955e jmp LBB40_36 - //0x00009563 LBB40_17 - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00009563 movq $-1, %rax - 0xe9, 0xee, 0xfd, 0xff, 0xff, //0x0000956a jmp LBB40_11 - 0x90, //0x0000956f .p2align 4, 0x90 - //0x00009570 _unescape - 0x55, //0x00009570 pushq %rbp - 0x48, 0x89, 0xe5, //0x00009571 movq %rsp, %rbp - 0x41, 0x57, //0x00009574 pushq %r15 - 0x41, 0x56, //0x00009576 pushq %r14 - 0x41, 0x55, //0x00009578 pushq %r13 - 0x41, 0x54, //0x0000957a pushq %r12 - 0x53, //0x0000957c pushq %rbx - 0x50, //0x0000957d pushq %rax - 0x4c, 0x8b, 0x2f, //0x0000957e movq (%rdi), %r13 - 0x4c, 0x29, 0xee, //0x00009581 subq %r13, %rsi - 0x48, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x00009584 movq $-1, %rbx - 0x48, 0x85, 0xf6, //0x0000958b testq %rsi, %rsi - 0x0f, 0x8e, 0xcf, 0x00, 0x00, 0x00, //0x0000958e jle LBB41_13 - 0x49, 0x89, 0xd6, //0x00009594 movq %rdx, %r14 - 0x49, 0x89, 0xff, //0x00009597 movq %rdi, %r15 - 0x49, 0x8d, 0x45, 0x01, //0x0000959a leaq $1(%r13), %rax - 0x41, 0x0f, 0xb6, 0x4d, 0x01, //0x0000959e movzbl $1(%r13), %ecx - 0x48, 0x8d, 0x15, 0x36, 0x77, 0x00, 0x00, //0x000095a3 leaq $30518(%rip), %rdx /* __UnquoteTab+0(%rip) */ - 0x8a, 0x0c, 0x11, //0x000095aa movb (%rcx,%rdx), %cl - 0x80, 0xf9, 0xff, //0x000095ad cmpb $-1, %cl - 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x000095b0 je LBB41_4 - 0x84, 0xc9, //0x000095b6 testb %cl, %cl - 0x0f, 0x85, 0x21, 0x00, 0x00, 0x00, //0x000095b8 jne LBB41_6 - 0x49, 0x89, 0x07, //0x000095be movq %rax, (%r15) - 0x48, 0xc7, 0xc3, 0xfd, 0xff, 0xff, 0xff, //0x000095c1 movq $-3, %rbx - 0xe9, 0x96, 0x00, 0x00, 0x00, //0x000095c8 jmp LBB41_13 - //0x000095cd LBB41_4 - 0x48, 0x83, 0xfe, 0x03, //0x000095cd cmpq $3, %rsi - 0x0f, 0x8f, 0x19, 0x00, 0x00, 0x00, //0x000095d1 jg LBB41_7 - 0x49, 0x89, 0x07, //0x000095d7 movq %rax, (%r15) - 0xe9, 0x84, 0x00, 0x00, 0x00, //0x000095da jmp LBB41_13 - //0x000095df LBB41_6 - 0x41, 0x88, 0x0e, //0x000095df movb %cl, (%r14) - 0x49, 0x83, 0x07, 0x02, //0x000095e2 addq $2, (%r15) - 0xbb, 0x01, 0x00, 0x00, 0x00, //0x000095e6 movl $1, %ebx - 0xe9, 0x73, 0x00, 0x00, 0x00, //0x000095eb jmp LBB41_13 - //0x000095f0 LBB41_7 - 0x41, 0x8b, 0x4d, 0x02, //0x000095f0 movl $2(%r13), %ecx - 0x89, 0xc8, //0x000095f4 movl %ecx, %eax - 0xf7, 0xd0, //0x000095f6 notl %eax - 0x8d, 0x91, 0xd0, 0xcf, 0xcf, 0xcf, //0x000095f8 leal $-808464432(%rcx), %edx - 0x25, 0x80, 0x80, 0x80, 0x80, //0x000095fe andl $-2139062144, %eax - 0x85, 0xd0, //0x00009603 testl %edx, %eax - 0x0f, 0x85, 0x4a, 0x00, 0x00, 0x00, //0x00009605 jne LBB41_11 - 0x8d, 0x91, 0x19, 0x19, 0x19, 0x19, //0x0000960b leal $421075225(%rcx), %edx - 0x09, 0xca, //0x00009611 orl %ecx, %edx - 0xf7, 0xc2, 0x80, 0x80, 0x80, 0x80, //0x00009613 testl $-2139062144, %edx - 0x0f, 0x85, 0x36, 0x00, 0x00, 0x00, //0x00009619 jne LBB41_11 - 0x89, 0xca, //0x0000961f movl %ecx, %edx - 0x81, 0xe2, 0x7f, 0x7f, 0x7f, 0x7f, //0x00009621 andl $2139062143, %edx - 0xbf, 0xc0, 0xc0, 0xc0, 0xc0, //0x00009627 movl $-1061109568, %edi - 0x29, 0xd7, //0x0000962c subl %edx, %edi - 0x8d, 0x9a, 0x46, 0x46, 0x46, 0x46, //0x0000962e leal $1179010630(%rdx), %ebx - 0x21, 0xc7, //0x00009634 andl %eax, %edi - 0x85, 0xdf, //0x00009636 testl %ebx, %edi - 0x0f, 0x85, 0x17, 0x00, 0x00, 0x00, //0x00009638 jne LBB41_11 - 0xbf, 0xe0, 0xe0, 0xe0, 0xe0, //0x0000963e movl $-522133280, %edi - 0x29, 0xd7, //0x00009643 subl %edx, %edi - 0x81, 0xc2, 0x39, 0x39, 0x39, 0x39, //0x00009645 addl $960051513, %edx - 0x21, 0xf8, //0x0000964b andl %edi, %eax - 0x85, 0xd0, //0x0000964d testl %edx, %eax - 0x0f, 0x84, 0x20, 0x00, 0x00, 0x00, //0x0000964f je LBB41_14 - //0x00009655 LBB41_11 - 0x49, 0x83, 0xc5, 0x02, //0x00009655 addq $2, %r13 - 0x4d, 0x89, 0x2f, //0x00009659 movq %r13, (%r15) - //0x0000965c LBB41_12 - 0x48, 0xc7, 0xc3, 0xfe, 0xff, 0xff, 0xff, //0x0000965c movq $-2, %rbx - //0x00009663 LBB41_13 - 0x48, 0x89, 0xd8, //0x00009663 movq %rbx, %rax - 0x48, 0x83, 0xc4, 0x08, //0x00009666 addq $8, %rsp - 0x5b, //0x0000966a popq %rbx - 0x41, 0x5c, //0x0000966b popq %r12 - 0x41, 0x5d, //0x0000966d popq %r13 - 0x41, 0x5e, //0x0000966f popq %r14 - 0x41, 0x5f, //0x00009671 popq %r15 - 0x5d, //0x00009673 popq %rbp - 0xc3, //0x00009674 retq - //0x00009675 LBB41_14 - 0x0f, 0xc9, //0x00009675 bswapl %ecx - 0x89, 0xc8, //0x00009677 movl %ecx, %eax - 0xc1, 0xe8, 0x04, //0x00009679 shrl $4, %eax - 0xf7, 0xd0, //0x0000967c notl %eax - 0x25, 0x01, 0x01, 0x01, 0x01, //0x0000967e andl $16843009, %eax - 0x8d, 0x04, 0xc0, //0x00009683 leal (%rax,%rax,8), %eax - 0x81, 0xe1, 0x0f, 0x0f, 0x0f, 0x0f, //0x00009686 andl $252645135, %ecx - 0x01, 0xc1, //0x0000968c addl %eax, %ecx - 0x89, 0xc8, //0x0000968e movl %ecx, %eax - 0xc1, 0xe8, 0x04, //0x00009690 shrl $4, %eax - 0x09, 0xc8, //0x00009693 orl %ecx, %eax - 0x89, 0xc1, //0x00009695 movl %eax, %ecx - 0xc1, 0xe9, 0x08, //0x00009697 shrl $8, %ecx - 0x81, 0xe1, 0x00, 0xff, 0x00, 0x00, //0x0000969a andl $65280, %ecx - 0x44, 0x0f, 0xb6, 0xe0, //0x000096a0 movzbl %al, %r12d - 0x41, 0x09, 0xcc, //0x000096a4 orl %ecx, %r12d - 0x49, 0x8d, 0x55, 0x06, //0x000096a7 leaq $6(%r13), %rdx - 0x49, 0x89, 0x17, //0x000096ab movq %rdx, (%r15) - 0x41, 0x83, 0xfc, 0x7f, //0x000096ae cmpl $127, %r12d - 0x0f, 0x86, 0x4c, 0x00, 0x00, 0x00, //0x000096b2 jbe LBB41_18 - 0x41, 0x81, 0xfc, 0xff, 0x07, 0x00, 0x00, //0x000096b8 cmpl $2047, %r12d - 0x0f, 0x86, 0x4c, 0x00, 0x00, 0x00, //0x000096bf jbe LBB41_19 - 0x89, 0xc7, //0x000096c5 movl %eax, %edi - 0x81, 0xe7, 0x00, 0x00, 0xf8, 0x00, //0x000096c7 andl $16252928, %edi - 0x81, 0xff, 0x00, 0x00, 0xd8, 0x00, //0x000096cd cmpl $14155776, %edi - 0x0f, 0x84, 0x55, 0x00, 0x00, 0x00, //0x000096d3 je LBB41_20 - 0xc1, 0xe9, 0x0c, //0x000096d9 shrl $12, %ecx - 0x80, 0xc9, 0xe0, //0x000096dc orb $-32, %cl - 0x41, 0x88, 0x0e, //0x000096df movb %cl, (%r14) - 0x41, 0xc1, 0xec, 0x06, //0x000096e2 shrl $6, %r12d - 0x41, 0x80, 0xe4, 0x3f, //0x000096e6 andb $63, %r12b - 0x41, 0x80, 0xcc, 0x80, //0x000096ea orb $-128, %r12b - 0x45, 0x88, 0x66, 0x01, //0x000096ee movb %r12b, $1(%r14) - 0x24, 0x3f, //0x000096f2 andb $63, %al - 0x0c, 0x80, //0x000096f4 orb $-128, %al - 0x41, 0x88, 0x46, 0x02, //0x000096f6 movb %al, $2(%r14) - 0xbb, 0x03, 0x00, 0x00, 0x00, //0x000096fa movl $3, %ebx - 0xe9, 0x5f, 0xff, 0xff, 0xff, //0x000096ff jmp LBB41_13 - //0x00009704 LBB41_18 - 0x41, 0x88, 0x06, //0x00009704 movb %al, (%r14) - 0xbb, 0x01, 0x00, 0x00, 0x00, //0x00009707 movl $1, %ebx - 0xe9, 0x52, 0xff, 0xff, 0xff, //0x0000970c jmp LBB41_13 - //0x00009711 LBB41_19 - 0x41, 0xc1, 0xec, 0x06, //0x00009711 shrl $6, %r12d - 0x41, 0x80, 0xcc, 0xc0, //0x00009715 orb $-64, %r12b - 0x45, 0x88, 0x26, //0x00009719 movb %r12b, (%r14) - 0x24, 0x3f, //0x0000971c andb $63, %al - 0x0c, 0x80, //0x0000971e orb $-128, %al - 0x41, 0x88, 0x46, 0x01, //0x00009720 movb %al, $1(%r14) - 0xbb, 0x02, 0x00, 0x00, 0x00, //0x00009724 movl $2, %ebx - 0xe9, 0x35, 0xff, 0xff, 0xff, //0x00009729 jmp LBB41_13 - //0x0000972e LBB41_20 - 0x48, 0xc7, 0xc3, 0xfc, 0xff, 0xff, 0xff, //0x0000972e movq $-4, %rbx - 0x48, 0x83, 0xfe, 0x06, //0x00009735 cmpq $6, %rsi - 0x0f, 0x8c, 0x24, 0xff, 0xff, 0xff, //0x00009739 jl LBB41_13 - 0x41, 0x81, 0xfc, 0xff, 0xdb, 0x00, 0x00, //0x0000973f cmpl $56319, %r12d - 0x0f, 0x87, 0x17, 0xff, 0xff, 0xff, //0x00009746 ja LBB41_13 - 0x80, 0x3a, 0x5c, //0x0000974c cmpb $92, (%rdx) - 0x0f, 0x85, 0x0e, 0xff, 0xff, 0xff, //0x0000974f jne LBB41_13 - 0x41, 0x80, 0x7d, 0x07, 0x75, //0x00009755 cmpb $117, $7(%r13) - 0x0f, 0x85, 0x03, 0xff, 0xff, 0xff, //0x0000975a jne LBB41_13 - 0x49, 0x8d, 0x7d, 0x08, //0x00009760 leaq $8(%r13), %rdi - 0x48, 0x89, 0x7d, 0xd0, //0x00009764 movq %rdi, $-48(%rbp) - 0xe8, 0x33, 0x8e, 0xff, 0xff, //0x00009768 callq _unhex16_is - 0x84, 0xc0, //0x0000976d testb %al, %al - 0x0f, 0x84, 0x9a, 0x00, 0x00, 0x00, //0x0000976f je LBB41_27 - 0x48, 0x8b, 0x45, 0xd0, //0x00009775 movq $-48(%rbp), %rax - 0x8b, 0x08, //0x00009779 movl (%rax), %ecx - 0x0f, 0xc9, //0x0000977b bswapl %ecx - 0x89, 0xc8, //0x0000977d movl %ecx, %eax - 0xc1, 0xe8, 0x04, //0x0000977f shrl $4, %eax - 0xf7, 0xd0, //0x00009782 notl %eax - 0x25, 0x01, 0x01, 0x01, 0x01, //0x00009784 andl $16843009, %eax - 0x8d, 0x04, 0xc0, //0x00009789 leal (%rax,%rax,8), %eax - 0x81, 0xe1, 0x0f, 0x0f, 0x0f, 0x0f, //0x0000978c andl $252645135, %ecx - 0x01, 0xc1, //0x00009792 addl %eax, %ecx - 0x89, 0xc8, //0x00009794 movl %ecx, %eax - 0xc1, 0xe8, 0x04, //0x00009796 shrl $4, %eax - 0x09, 0xc8, //0x00009799 orl %ecx, %eax - 0x89, 0xc1, //0x0000979b movl %eax, %ecx - 0x81, 0xe1, 0x00, 0x00, 0xfc, 0x00, //0x0000979d andl $16515072, %ecx - 0x81, 0xf9, 0x00, 0x00, 0xdc, 0x00, //0x000097a3 cmpl $14417920, %ecx - 0x0f, 0x85, 0x6c, 0x00, 0x00, 0x00, //0x000097a9 jne LBB41_28 - 0x89, 0xc1, //0x000097af movl %eax, %ecx - 0xc1, 0xe9, 0x08, //0x000097b1 shrl $8, %ecx - 0x81, 0xe1, 0x00, 0xff, 0x00, 0x00, //0x000097b4 andl $65280, %ecx - 0x0f, 0xb6, 0xc0, //0x000097ba movzbl %al, %eax - 0x09, 0xc8, //0x000097bd orl %ecx, %eax - 0x41, 0xc1, 0xe4, 0x0a, //0x000097bf shll $10, %r12d - 0x42, 0x8d, 0x0c, 0x20, //0x000097c3 leal (%rax,%r12), %ecx - 0x44, 0x01, 0xe0, //0x000097c7 addl %r12d, %eax - 0x05, 0x00, 0x24, 0xa0, 0xfc, //0x000097ca addl $-56613888, %eax - 0x89, 0xc2, //0x000097cf movl %eax, %edx - 0xc1, 0xea, 0x12, //0x000097d1 shrl $18, %edx - 0x80, 0xca, 0xf0, //0x000097d4 orb $-16, %dl - 0x41, 0x88, 0x16, //0x000097d7 movb %dl, (%r14) - 0x89, 0xc2, //0x000097da movl %eax, %edx - 0xc1, 0xea, 0x0c, //0x000097dc shrl $12, %edx - 0x80, 0xe2, 0x3f, //0x000097df andb $63, %dl - 0x80, 0xca, 0x80, //0x000097e2 orb $-128, %dl - 0x41, 0x88, 0x56, 0x01, //0x000097e5 movb %dl, $1(%r14) - 0xc1, 0xe8, 0x06, //0x000097e9 shrl $6, %eax - 0x24, 0x3f, //0x000097ec andb $63, %al - 0x0c, 0x80, //0x000097ee orb $-128, %al - 0x41, 0x88, 0x46, 0x02, //0x000097f0 movb %al, $2(%r14) - 0x80, 0xe1, 0x3f, //0x000097f4 andb $63, %cl - 0x80, 0xc9, 0x80, //0x000097f7 orb $-128, %cl - 0x41, 0x88, 0x4e, 0x03, //0x000097fa movb %cl, $3(%r14) - 0x49, 0x83, 0xc5, 0x0c, //0x000097fe addq $12, %r13 - 0x4d, 0x89, 0x2f, //0x00009802 movq %r13, (%r15) - 0xbb, 0x04, 0x00, 0x00, 0x00, //0x00009805 movl $4, %ebx - 0xe9, 0x54, 0xfe, 0xff, 0xff, //0x0000980a jmp LBB41_13 - //0x0000980f LBB41_27 - 0x48, 0x8b, 0x45, 0xd0, //0x0000980f movq $-48(%rbp), %rax - 0x49, 0x89, 0x07, //0x00009813 movq %rax, (%r15) - 0xe9, 0x41, 0xfe, 0xff, 0xff, //0x00009816 jmp LBB41_12 - //0x0000981b LBB41_28 - 0x48, 0x8b, 0x45, 0xd0, //0x0000981b movq $-48(%rbp), %rax - 0x49, 0x89, 0x07, //0x0000981f movq %rax, (%r15) - 0xe9, 0x3c, 0xfe, 0xff, 0xff, //0x00009822 jmp LBB41_13 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00009827 .p2align 4, 0x00 - //0x00009830 _POW10_M128_TAB - 0x53, 0xe4, 0x60, 0xcd, 0x69, 0xc8, 0x32, 0x17, //0x00009830 .quad 1671618768450675795 - 0x88, 0x02, 0x1c, 0x08, 0xa0, 0xd5, 0x8f, 0xfa, //0x00009838 .quad -391859759250406776 - 0xb4, 0x8e, 0x5c, 0x20, 0x42, 0xbd, 0x7f, 0x0e, //0x00009840 .quad 1044761730281672372 - 0x95, 0x81, 0x11, 0x05, 0x84, 0xe5, 0x99, 0x9c, //0x00009848 .quad -7162441377172586091 - 0x61, 0xb2, 0x73, 0xa8, 0x92, 0xac, 0x1f, 0x52, //0x00009850 .quad 5917638181279478369 - 0xfa, 0xe1, 0x55, 0x06, 0xe5, 0x5e, 0xc0, 0xc3, //0x00009858 .quad -4341365703038344710 - 0xf9, 0x9e, 0x90, 0x52, 0xb7, 0x97, 0xa7, 0xe6, //0x00009860 .quad -1826324310255427847 - 0x78, 0x5a, 0xeb, 0x47, 0x9e, 0x76, 0xb0, 0xf4, //0x00009868 .quad -815021110370542984 - 0x5c, 0x63, 0x9a, 0x93, 0xd2, 0xbe, 0x28, 0x90, //0x00009870 .quad -8058981721550724260 - 0x8b, 0x18, 0xf3, 0xec, 0x22, 0x4a, 0xee, 0x98, //0x00009878 .quad -7426917221622671221 - 0x33, 0xfc, 0x80, 0x38, 0x87, 0xee, 0x32, 0x74, //0x00009880 .quad 8373016921771146291 - 0xae, 0xde, 0x2f, 0xa8, 0xab, 0xdc, 0x29, 0xbf, //0x00009888 .quad -4671960508600951122 - 0x3f, 0x3b, 0xa1, 0x06, 0x29, 0xaa, 0x3f, 0x11, //0x00009890 .quad 1242899115359157055 - 0x5a, 0xd6, 0x3b, 0x92, 0xd6, 0x53, 0xf4, 0xee, //0x00009898 .quad -1228264617323800998 - 0x07, 0xc5, 0x24, 0xa4, 0x59, 0xca, 0xc7, 0x4a, //0x000098a0 .quad 5388497965526861063 - 0xf8, 0x65, 0x65, 0x1b, 0x66, 0xb4, 0x58, 0x95, //0x000098a8 .quad -7685194413468457480 - 0x49, 0xf6, 0x2d, 0x0d, 0xf0, 0xbc, 0x79, 0x5d, //0x000098b0 .quad 6735622456908576329 - 0x76, 0xbf, 0x3e, 0xa2, 0x7f, 0xe1, 0xae, 0xba, //0x000098b8 .quad -4994806998408183946 - 0xdc, 0x73, 0x79, 0x10, 0x2c, 0x2c, 0xd8, 0xf4, //0x000098c0 .quad -803843965719055396 - 0x53, 0x6f, 0xce, 0x8a, 0xdf, 0x99, 0x5a, 0xe9, //0x000098c8 .quad -1631822729582842029 - 0x69, 0xe8, 0x4b, 0x8a, 0x9b, 0x1b, 0x07, 0x79, //0x000098d0 .quad 8720969558280366185 - 0x94, 0x05, 0xc1, 0xb6, 0x2b, 0xa0, 0xd8, 0x91, //0x000098d8 .quad -7937418233630358124 - 0x84, 0xe2, 0xde, 0x6c, 0x82, 0xe2, 0x48, 0x97, //0x000098e0 .quad -7545532125859093884 - 0xf9, 0x46, 0x71, 0xa4, 0x36, 0xc8, 0x4e, 0xb6, //0x000098e8 .quad -5310086773610559751 - 0x25, 0x9b, 0x16, 0x08, 0x23, 0x1b, 0x1b, 0xfd, //0x000098f0 .quad -208543120469091547 - 0xb7, 0x98, 0x8d, 0x4d, 0x44, 0x7a, 0xe2, 0xe3, //0x000098f8 .quad -2025922448585811785 - 0xf7, 0x20, 0x0e, 0xe5, 0xf5, 0xf0, 0x30, 0xfe, //0x00009900 .quad -130339450293182217 - 0x72, 0x7f, 0x78, 0xb0, 0x6a, 0x8c, 0x6d, 0x8e, //0x00009908 .quad -8183730558007214222 - 0x35, 0xa9, 0x51, 0x5e, 0x33, 0x2d, 0xbd, 0xbd, //0x00009910 .quad -4774610331293865675 - 0x4f, 0x9f, 0x96, 0x5c, 0x85, 0xef, 0x08, 0xb2, //0x00009918 .quad -5617977179081629873 - 0x82, 0x13, 0xe6, 0x35, 0x80, 0x78, 0x2c, 0xad, //0x00009920 .quad -5968262914117332094 - 0x23, 0x47, 0xbc, 0xb3, 0x66, 0x2b, 0x8b, 0xde, //0x00009928 .quad -2410785455424649437 - 0x31, 0xcc, 0xaf, 0x21, 0x50, 0xcb, 0x3b, 0x4c, //0x00009930 .quad 5493207715531443249 - 0x76, 0xac, 0x55, 0x30, 0x20, 0xfb, 0x16, 0x8b, //0x00009938 .quad -8424269937281487754 - 0x3d, 0xbf, 0x1b, 0x2a, 0x24, 0xbe, 0x4a, 0xdf, //0x00009940 .quad -2356862392440471747 - 0x93, 0x17, 0x6b, 0x3c, 0xe8, 0xb9, 0xdc, 0xad, //0x00009948 .quad -5918651403174471789 - 0x0d, 0xaf, 0xa2, 0x34, 0xad, 0x6d, 0x1d, 0xd7, //0x00009950 .quad -2946077990550589683 - 0x78, 0xdd, 0x85, 0x4b, 0x62, 0xe8, 0x53, 0xd9, //0x00009958 .quad -2786628235540701832 - 0x68, 0xad, 0xe5, 0x40, 0x8c, 0x64, 0x72, 0x86, //0x00009960 .quad -8758827771735200408 - 0x6b, 0xaa, 0x33, 0x6f, 0x3d, 0x71, 0xd4, 0x87, //0x00009968 .quad -8659171674854020501 - 0xc2, 0x18, 0x1f, 0x51, 0xaf, 0xfd, 0x0e, 0x68, //0x00009970 .quad 7498209359040551106 - 0x06, 0x95, 0x00, 0xcb, 0x8c, 0x8d, 0xc9, 0xa9, //0x00009978 .quad -6212278575140137722 - 0xf2, 0xde, 0x66, 0x25, 0x1b, 0xbd, 0x12, 0x02, //0x00009980 .quad 149389661945913074 - 0x48, 0xba, 0xc0, 0xfd, 0xef, 0xf0, 0x3b, 0xd4, //0x00009988 .quad -3153662200497784248 - 0x57, 0x4b, 0x60, 0xf7, 0x30, 0xb6, 0x4b, 0x01, //0x00009990 .quad 93368538716195671 - 0x6d, 0x74, 0x98, 0xfe, 0x95, 0x76, 0xa5, 0x84, //0x00009998 .quad -8888567902952197011 - 0x2d, 0x5e, 0x38, 0x35, 0xbd, 0xa3, 0x9e, 0x41, //0x000099a0 .quad 4728396691822632493 - 0x88, 0x91, 0x3e, 0x7e, 0x3b, 0xd4, 0xce, 0xa5, //0x000099a8 .quad -6499023860262858360 - 0xb9, 0x75, 0x86, 0x82, 0xac, 0x4c, 0x06, 0x52, //0x000099b0 .quad 5910495864778290617 - 0xea, 0x35, 0xce, 0x5d, 0x4a, 0x89, 0x42, 0xcf, //0x000099b8 .quad -3512093806901185046 - 0x93, 0x09, 0x94, 0xd1, 0xeb, 0xef, 0x43, 0x73, //0x000099c0 .quad 8305745933913819539 - 0xb2, 0xe1, 0xa0, 0x7a, 0xce, 0x95, 0x89, 0x81, //0x000099c8 .quad -9112587656954322510 - 0xf8, 0x0b, 0xf9, 0xc5, 0xe6, 0xeb, 0x14, 0x10, //0x000099d0 .quad 1158810380537498616 - 0x1f, 0x1a, 0x49, 0x19, 0x42, 0xfb, 0xeb, 0xa1, //0x000099d8 .quad -6779048552765515233 - 0xf6, 0x4e, 0x77, 0x77, 0xe0, 0x26, 0x1a, 0xd4, //0x000099e0 .quad -3163173042755514634 - 0xa6, 0x60, 0x9b, 0x9f, 0x12, 0xfa, 0x66, 0xca, //0x000099e8 .quad -3862124672529506138 - 0xb4, 0x22, 0x55, 0x95, 0x98, 0xb0, 0x20, 0x89, //0x000099f0 .quad -8565652321871781196 - 0xd0, 0x38, 0x82, 0x47, 0x97, 0xb8, 0x00, 0xfd, //0x000099f8 .quad -215969822234494768 - 0xb0, 0x35, 0x55, 0x5d, 0x5f, 0x6e, 0xb4, 0x55, //0x00009a00 .quad 6175682344898606512 - 0x82, 0x63, 0xb1, 0x8c, 0x5e, 0x73, 0x20, 0x9e, //0x00009a08 .quad -7052510166537641086 - 0x1d, 0x83, 0xaa, 0x34, 0xf7, 0x89, 0x21, 0xeb, //0x00009a10 .quad -1503769105731517667 - 0x62, 0xbc, 0xdd, 0x2f, 0x36, 0x90, 0xa8, 0xc5, //0x00009a18 .quad -4203951689744663454 - 0xe4, 0x23, 0xd5, 0x01, 0x75, 0xec, 0xe9, 0xa5, //0x00009a20 .quad -6491397400591784988 - 0x7b, 0x2b, 0xd5, 0xbb, 0x43, 0xb4, 0x12, 0xf7, //0x00009a28 .quad -643253593753441413 - 0x6e, 0x36, 0x25, 0x21, 0xc9, 0x33, 0xb2, 0x47, //0x00009a30 .quad 5166248661484910190 - 0x2d, 0x3b, 0x65, 0x55, 0xaa, 0xb0, 0x6b, 0x9a, //0x00009a38 .quad -7319562523736982739 - 0x0a, 0x84, 0x6e, 0x69, 0xbb, 0xc0, 0x9e, 0x99, //0x00009a40 .quad -7377247228426025974 - 0xf8, 0x89, 0xbe, 0xea, 0xd4, 0x9c, 0x06, 0xc1, //0x00009a48 .quad -4537767136243840520 - 0x0d, 0x25, 0xca, 0x43, 0xea, 0x70, 0x06, 0xc0, //0x00009a50 .quad -4609873017105144563 - 0x76, 0x2c, 0x6e, 0x25, 0x0a, 0x44, 0x48, 0xf1, //0x00009a58 .quad -1060522901877412746 - 0x28, 0x57, 0x5e, 0x6a, 0x92, 0x06, 0x04, 0x38, //0x00009a60 .quad 4036358391950366504 - 0xca, 0xdb, 0x64, 0x57, 0x86, 0x2a, 0xcd, 0x96, //0x00009a68 .quad -7580355841314464822 - 0xf2, 0xec, 0xf5, 0x04, 0x37, 0x08, 0x05, 0xc6, //0x00009a70 .quad -4177924046916817678 - 0xbc, 0x12, 0x3e, 0xed, 0x27, 0x75, 0x80, 0xbc, //0x00009a78 .quad -4863758783215693124 - 0x2e, 0x68, 0x33, 0xc6, 0x44, 0x4a, 0x86, 0xf7, //0x00009a80 .quad -610719040218634194 - 0x6b, 0x97, 0x8d, 0xe8, 0x71, 0x92, 0xa0, 0xeb, //0x00009a88 .quad -1468012460592228501 - 0x1d, 0x21, 0xe0, 0xfb, 0x6a, 0xee, 0xb3, 0x7a, //0x00009a90 .quad 8841672636718129437 - 0xa3, 0x7e, 0x58, 0x31, 0x87, 0x5b, 0x44, 0x93, //0x00009a98 .quad -7835036815511224669 - 0x64, 0x29, 0xd8, 0xba, 0x05, 0xea, 0x60, 0x59, //0x00009aa0 .quad 6440404777470273892 - 0x4c, 0x9e, 0xae, 0xfd, 0x68, 0x72, 0x15, 0xb8, //0x00009aa8 .quad -5182110000961642932 - 0xbd, 0x33, 0x8e, 0x29, 0x87, 0x24, 0xb9, 0x6f, //0x00009ab0 .quad 8050505971837842365 - 0xdf, 0x45, 0x1a, 0x3d, 0x03, 0xcf, 0x1a, 0xe6, //0x00009ab8 .quad -1865951482774665761 - 0x56, 0xe0, 0xf8, 0x79, 0xd4, 0xb6, 0xd3, 0xa5, //0x00009ac0 .quad -6497648813669818282 - 0xab, 0x6b, 0x30, 0x06, 0x62, 0xc1, 0xd0, 0x8f, //0x00009ac8 .quad -8083748704375247957 - 0x6c, 0x18, 0x77, 0x98, 0x89, 0xa4, 0x48, 0x8f, //0x00009ad0 .quad -8122061017087272852 - 0x96, 0x86, 0xbc, 0x87, 0xba, 0xf1, 0xc4, 0xb3, //0x00009ad8 .quad -5492999862041672042 - 0x87, 0xde, 0x94, 0xfe, 0xab, 0xcd, 0x1a, 0x33, //0x00009ae0 .quad 3682481783923072647 - 0x3c, 0xa8, 0xab, 0x29, 0x29, 0x2e, 0xb6, 0xe0, //0x00009ae8 .quad -2254563809124702148 - 0x14, 0x0b, 0x1d, 0x7f, 0x8b, 0xc0, 0xf0, 0x9f, //0x00009af0 .quad -6921820921902855404 - 0x25, 0x49, 0x0b, 0xba, 0xd9, 0xdc, 0x71, 0x8c, //0x00009af8 .quad -8326631408344020699 - 0xd9, 0x4d, 0xe4, 0x5e, 0xae, 0xf0, 0xec, 0x07, //0x00009b00 .quad 571095884476206553 - 0x6f, 0x1b, 0x8e, 0x28, 0x10, 0x54, 0x8e, 0xaf, //0x00009b08 .quad -5796603242002637969 - 0x50, 0x61, 0x9d, 0xf6, 0xd9, 0x2c, 0xe8, 0xc9, //0x00009b10 .quad -3897816162832129712 - 0x4a, 0xa2, 0xb1, 0x32, 0x14, 0xe9, 0x71, 0xdb, //0x00009b18 .quad -2634068034075909558 - 0xd2, 0x5c, 0x22, 0x3a, 0x08, 0x1c, 0x31, 0xbe, //0x00009b20 .quad -4741978110983775022 - 0x6e, 0x05, 0xaf, 0x9f, 0xac, 0x31, 0x27, 0x89, //0x00009b28 .quad -8563821548938525330 - 0x06, 0xf4, 0xaa, 0x48, 0x0a, 0x63, 0xbd, 0x6d, //0x00009b30 .quad 7907585416552444934 - 0xca, 0xc6, 0x9a, 0xc7, 0x17, 0xfe, 0x70, 0xab, //0x00009b38 .quad -6093090917745768758 - 0x08, 0xb1, 0xd5, 0xda, 0xcc, 0xbb, 0x2c, 0x09, //0x00009b40 .quad 661109733835780360 - 0x7d, 0x78, 0x81, 0xb9, 0x9d, 0x3d, 0x4d, 0xd6, //0x00009b48 .quad -3004677628754823043 - 0xa5, 0x8e, 0xc5, 0x08, 0x60, 0xf5, 0xbb, 0x25, //0x00009b50 .quad 2719036592861056677 - 0x4e, 0xeb, 0xf0, 0x93, 0x82, 0x46, 0xf0, 0x85, //0x00009b58 .quad -8795452545612846258 - 0x4e, 0xf2, 0xf6, 0x0a, 0xb8, 0xf2, 0x2a, 0xaf, //0x00009b60 .quad -5824576295778454962 - 0x21, 0x26, 0xed, 0x38, 0x23, 0x58, 0x6c, 0xa7, //0x00009b68 .quad -6382629663588669919 - 0xe1, 0xae, 0xb4, 0x0d, 0x66, 0xaf, 0xf5, 0x1a, //0x00009b70 .quad 1942651667131707105 - 0xaa, 0x6f, 0x28, 0x07, 0x2c, 0x6e, 0x47, 0xd1, //0x00009b78 .quad -3366601061058449494 - 0x4d, 0xed, 0x90, 0xc8, 0x9f, 0x8d, 0xd9, 0x50, //0x00009b80 .quad 5825843310384704845 - 0xca, 0x45, 0x79, 0x84, 0xdb, 0xa4, 0xcc, 0x82, //0x00009b88 .quad -9021654690802612790 - 0xa0, 0x28, 0xb5, 0xba, 0x07, 0xf1, 0x0f, 0xe5, //0x00009b90 .quad -1941067898873894752 - 0x3c, 0x97, 0x97, 0x65, 0x12, 0xce, 0x7f, 0xa3, //0x00009b98 .quad -6665382345075878084 - 0xc8, 0x72, 0x62, 0xa9, 0x49, 0xed, 0x53, 0x1e, //0x00009ba0 .quad 2185351144835019464 - 0x0c, 0x7d, 0xfd, 0xfe, 0x96, 0xc1, 0x5f, 0xcc, //0x00009ba8 .quad -3720041912917459700 - 0x7a, 0x0f, 0xbb, 0x13, 0x9c, 0xe8, 0xe8, 0x25, //0x00009bb0 .quad 2731688931043774330 - 0x4f, 0xdc, 0xbc, 0xbe, 0xfc, 0xb1, 0x77, 0xff, //0x00009bb8 .quad -38366372719436721 - 0xac, 0xe9, 0x54, 0x8c, 0x61, 0x91, 0xb1, 0x77, //0x00009bc0 .quad 8624834609543440812 - 0xb1, 0x09, 0x36, 0xf7, 0x3d, 0xcf, 0xaa, 0x9f, //0x00009bc8 .quad -6941508010590729807 - 0x17, 0x24, 0x6a, 0xef, 0xb9, 0xf5, 0x9d, 0xd5, //0x00009bd0 .quad -3054014793352862697 - 0x1d, 0x8c, 0x03, 0x75, 0x0d, 0x83, 0x95, 0xc7, //0x00009bd8 .quad -4065198994811024355 - 0x1d, 0xad, 0x44, 0x6b, 0x28, 0x73, 0x05, 0x4b, //0x00009be0 .quad 5405853545163697437 - 0x25, 0x6f, 0x44, 0xd2, 0xd0, 0xe3, 0x7a, 0xf9, //0x00009be8 .quad -469812725086392539 - 0x32, 0xec, 0x0a, 0x43, 0xf9, 0x67, 0xe3, 0x4e, //0x00009bf0 .quad 5684501474941004850 - 0x77, 0xc5, 0x6a, 0x83, 0x62, 0xce, 0xec, 0x9b, //0x00009bf8 .quad -7211161980820077193 - 0x3f, 0xa7, 0xcd, 0x93, 0xf7, 0x41, 0x9c, 0x22, //0x00009c00 .quad 2493940825248868159 - 0xd5, 0x76, 0x45, 0x24, 0xfb, 0x01, 0xe8, 0xc2, //0x00009c08 .quad -4402266457597708587 - 0x0f, 0x11, 0xc1, 0x78, 0x75, 0x52, 0x43, 0x6b, //0x00009c10 .quad 7729112049988473103 - 0x8a, 0xd4, 0x56, 0xed, 0x79, 0x02, 0xa2, 0xf3, //0x00009c18 .quad -891147053569747830 - 0xa9, 0xaa, 0x78, 0x6b, 0x89, 0x13, 0x0a, 0x83, //0x00009c20 .quad -9004363024039368023 - 0xd6, 0x44, 0x56, 0x34, 0x8c, 0x41, 0x45, 0x98, //0x00009c28 .quad -7474495936122174250 - 0x53, 0xd5, 0x56, 0xc6, 0x6b, 0x98, 0xcc, 0x23, //0x00009c30 .quad 2579604275232953683 - 0x0c, 0xd6, 0x6b, 0x41, 0xef, 0x91, 0x56, 0xbe, //0x00009c38 .quad -4731433901725329908 - 0xa8, 0x8a, 0xec, 0xb7, 0x86, 0xbe, 0xbf, 0x2c, //0x00009c40 .quad 3224505344041192104 - 0x8f, 0xcb, 0xc6, 0x11, 0x6b, 0x36, 0xec, 0xed, //0x00009c48 .quad -1302606358729274481 - 0xa9, 0xd6, 0xf3, 0x32, 0x14, 0xd7, 0xf7, 0x7b, //0x00009c50 .quad 8932844867666826921 - 0x39, 0x3f, 0x1c, 0xeb, 0x02, 0xa2, 0xb3, 0x94, //0x00009c58 .quad -7731658001846878407 - 0x53, 0xcc, 0xb0, 0x3f, 0xd9, 0xcc, 0xf5, 0xda, //0x00009c60 .quad -2669001970698630061 - 0x07, 0x4f, 0xe3, 0xa5, 0x83, 0x8a, 0xe0, 0xb9, //0x00009c68 .quad -5052886483881210105 - 0x68, 0xff, 0x9c, 0x8f, 0x0f, 0x40, 0xb3, 0xd1, //0x00009c70 .quad -3336252463373287576 - 0xc9, 0x22, 0x5c, 0x8f, 0x24, 0xad, 0x58, 0xe8, //0x00009c78 .quad -1704422086424124727 - 0xa1, 0x1f, 0xc2, 0xb9, 0x09, 0x08, 0x10, 0x23, //0x00009c80 .quad 2526528228819083169 - 0xbe, 0x95, 0x99, 0xd9, 0x36, 0x6c, 0x37, 0x91, //0x00009c88 .quad -7982792831656159810 - 0x8a, 0xa7, 0x32, 0x28, 0x0c, 0x0a, 0xd4, 0xab, //0x00009c90 .quad -6065211750830921846 - 0x2d, 0xfb, 0xff, 0x8f, 0x44, 0x47, 0x85, 0xb5, //0x00009c98 .quad -5366805021142811859 - 0x6c, 0x51, 0x3f, 0x32, 0x8f, 0x0c, 0xc9, 0x16, //0x00009ca0 .quad 1641857348316123500 - 0xf9, 0xf9, 0xff, 0xb3, 0x15, 0x99, 0xe6, 0xe2, //0x00009ca8 .quad -2096820258001126919 - 0xe3, 0x92, 0x67, 0x7f, 0xd9, 0xa7, 0x3d, 0xae, //0x00009cb0 .quad -5891368184943504669 - 0x3b, 0xfc, 0x7f, 0x90, 0xad, 0x1f, 0xd0, 0x8d, //0x00009cb8 .quad -8228041688891786181 - 0x9c, 0x77, 0x41, 0xdf, 0xcf, 0x11, 0xcd, 0x99, //0x00009cc0 .quad -7364210231179380836 - 0x4a, 0xfb, 0x9f, 0xf4, 0x98, 0x27, 0x44, 0xb1, //0x00009cc8 .quad -5673366092687344822 - 0x83, 0xd5, 0x11, 0xd7, 0x43, 0x56, 0x40, 0x40, //0x00009cd0 .quad 4629795266307937667 - 0x1d, 0xfa, 0xc7, 0x31, 0x7f, 0x31, 0x95, 0xdd, //0x00009cd8 .quad -2480021597431793123 - 0x72, 0x25, 0x6b, 0x66, 0xea, 0x35, 0x28, 0x48, //0x00009ce0 .quad 5199465050656154994 - 0x52, 0xfc, 0x1c, 0x7f, 0xef, 0x3e, 0x7d, 0x8a, //0x00009ce8 .quad -8467542526035952558 - 0xcf, 0xee, 0x05, 0x00, 0x65, 0x43, 0x32, 0xda, //0x00009cf0 .quad -2724040723534582065 - 0x66, 0x3b, 0xe4, 0x5e, 0xab, 0x8e, 0x1c, 0xad, //0x00009cf8 .quad -5972742139117552794 - 0x82, 0x6a, 0x07, 0x40, 0x3e, 0xd4, 0xbe, 0x90, //0x00009d00 .quad -8016736922845615486 - 0x40, 0x4a, 0x9d, 0x36, 0x56, 0xb2, 0x63, 0xd8, //0x00009d08 .quad -2854241655469553088 - 0x91, 0xa2, 0x04, 0xe8, 0xa6, 0x44, 0x77, 0x5a, //0x00009d10 .quad 6518754469289960081 - 0x68, 0x4e, 0x22, 0xe2, 0x75, 0x4f, 0x3e, 0x87, //0x00009d18 .quad -8701430062309552536 - 0x36, 0xcb, 0x05, 0xa2, 0xd0, 0x15, 0x15, 0x71, //0x00009d20 .quad 8148443086612450102 - 0x02, 0xe2, 0xaa, 0x5a, 0x53, 0xe3, 0x0d, 0xa9, //0x00009d28 .quad -6265101559459552766 - 0x03, 0x3e, 0x87, 0xca, 0x44, 0x5b, 0x5a, 0x0d, //0x00009d30 .quad 962181821410786819 - 0x83, 0x9a, 0x55, 0x31, 0x28, 0x5c, 0x51, 0xd3, //0x00009d38 .quad -3219690930897053053 - 0xc2, 0x86, 0x94, 0xfe, 0x0a, 0x79, 0x58, 0xe8, //0x00009d40 .quad -1704479370831952190 - 0x91, 0x80, 0xd5, 0x1e, 0x99, 0xd9, 0x12, 0x84, //0x00009d48 .quad -8929835859451740015 - 0x72, 0xa8, 0x39, 0xbe, 0x4d, 0x97, 0x6e, 0x62, //0x00009d50 .quad 7092772823314835570 - 0xb6, 0xe0, 0x8a, 0x66, 0xff, 0x8f, 0x17, 0xa5, //0x00009d58 .quad -6550608805887287114 - 0x8f, 0x12, 0xc8, 0x2d, 0x21, 0x3d, 0x0a, 0xfb, //0x00009d60 .quad -357406007711231345 - 0xe3, 0x98, 0x2d, 0x40, 0xff, 0x73, 0x5d, 0xce, //0x00009d68 .quad -3576574988931720989 - 0x99, 0x0b, 0x9d, 0xbc, 0x34, 0x66, 0xe6, 0x7c, //0x00009d70 .quad 8999993282035256217 - 0x8e, 0x7f, 0x1c, 0x88, 0x7f, 0x68, 0xfa, 0x80, //0x00009d78 .quad -9152888395723407474 - 0x80, 0x4e, 0xc4, 0xeb, 0xc1, 0xff, 0x1f, 0x1c, //0x00009d80 .quad 2026619565689294464 - 0x72, 0x9f, 0x23, 0x6a, 0x9f, 0x02, 0x39, 0xa1, //0x00009d88 .quad -6829424476226871438 - 0x20, 0x62, 0xb5, 0x66, 0xb2, 0xff, 0x27, 0xa3, //0x00009d90 .quad -6690097579743157728 - 0x4e, 0x87, 0xac, 0x44, 0x47, 0x43, 0x87, 0xc9, //0x00009d98 .quad -3925094576856201394 - 0xa8, 0xba, 0x62, 0x00, 0x9f, 0xff, 0xf1, 0x4b, //0x00009da0 .quad 5472436080603216552 - 0x22, 0xa9, 0xd7, 0x15, 0x19, 0x14, 0xe9, 0xfb, //0x00009da8 .quad -294682202642863838 - 0xa9, 0xb4, 0x3d, 0x60, 0xc3, 0x3f, 0x77, 0x6f, //0x00009db0 .quad 8031958568804398249 - 0xb5, 0xc9, 0xa6, 0xad, 0x8f, 0xac, 0x71, 0x9d, //0x00009db8 .quad -7101705404292871755 - 0xd3, 0x21, 0x4d, 0x38, 0xb4, 0x0f, 0x55, 0xcb, //0x00009dc0 .quad -3795109844276665901 - 0x22, 0x7c, 0x10, 0x99, 0xb3, 0x17, 0xce, 0xc4, //0x00009dc8 .quad -4265445736938701790 - 0x48, 0x6a, 0x60, 0x46, 0xa1, 0x53, 0x2a, 0x7e, //0x00009dd0 .quad 9091170749936331336 - 0x2b, 0x9b, 0x54, 0x7f, 0xa0, 0x9d, 0x01, 0xf6, //0x00009dd8 .quad -720121152745989333 - 0x6d, 0x42, 0xfc, 0xcb, 0x44, 0x74, 0xda, 0x2e, //0x00009de0 .quad 3376138709496513133 - 0xfb, 0xe0, 0x94, 0x4f, 0x84, 0x02, 0xc1, 0x99, //0x00009de8 .quad -7367604748107325189 - 0x08, 0x53, 0xfb, 0xfe, 0x55, 0x11, 0x91, 0xfa, //0x00009df0 .quad -391512631556746488 - 0x39, 0x19, 0x7a, 0x63, 0x25, 0x43, 0x31, 0xc0, //0x00009df8 .quad -4597819916706768583 - 0xca, 0x27, 0xba, 0x7e, 0xab, 0x55, 0x35, 0x79, //0x00009e00 .quad 8733981247408842698 - 0x88, 0x9f, 0x58, 0xbc, 0xee, 0x93, 0x3d, 0xf0, //0x00009e08 .quad -1135588877456072824 - 0xde, 0x58, 0x34, 0x2f, 0x8b, 0x55, 0xc1, 0x4b, //0x00009e10 .quad 5458738279630526686 - 0xb5, 0x63, 0xb7, 0x35, 0x75, 0x7c, 0x26, 0x96, //0x00009e18 .quad -7627272076051127371 - 0x16, 0x6f, 0x01, 0xfb, 0xed, 0xaa, 0xb1, 0x9e, //0x00009e20 .quad -7011635205744005354 - 0xa2, 0x3c, 0x25, 0x83, 0x92, 0x1b, 0xb0, 0xbb, //0x00009e28 .quad -4922404076636521310 - 0xdc, 0xca, 0xc1, 0x79, 0xa9, 0x15, 0x5e, 0x46, //0x00009e30 .quad 5070514048102157020 - 0xcb, 0x8b, 0xee, 0x23, 0x77, 0x22, 0x9c, 0xea, //0x00009e38 .quad -1541319077368263733 - 0xc9, 0x1e, 0x19, 0xec, 0x89, 0xcd, 0xfa, 0x0b, //0x00009e40 .quad 863228270850154185 - 0x5f, 0x17, 0x75, 0x76, 0x8a, 0x95, 0xa1, 0x92, //0x00009e48 .quad -7880853450996246689 - 0x7b, 0x66, 0x1f, 0x67, 0xec, 0x80, 0xf9, 0xce, //0x00009e50 .quad -3532650679864695173 - 0x36, 0x5d, 0x12, 0x14, 0xed, 0xfa, 0x49, 0xb7, //0x00009e58 .quad -5239380795317920458 - 0x1a, 0x40, 0xe7, 0x80, 0x27, 0xe1, 0xb7, 0x82, //0x00009e60 .quad -9027499368258256870 - 0x84, 0xf4, 0x16, 0x59, 0xa8, 0x79, 0x1c, 0xe5, //0x00009e68 .quad -1937539975720012668 - 0x10, 0x88, 0x90, 0xb0, 0xb8, 0xec, 0xb2, 0xd1, //0x00009e70 .quad -3336344095947716592 - 0xd2, 0x58, 0xae, 0x37, 0x09, 0xcc, 0x31, 0x8f, //0x00009e78 .quad -8128491512466089774 - 0x15, 0xaa, 0xb4, 0xdc, 0xe6, 0xa7, 0x1f, 0x86, //0x00009e80 .quad -8782116138362033643 - 0x07, 0xef, 0x99, 0x85, 0x0b, 0x3f, 0xfe, 0xb2, //0x00009e88 .quad -5548928372155224313 - 0x9a, 0xd4, 0xe1, 0x93, 0xe0, 0x91, 0xa7, 0x67, //0x00009e90 .quad 7469098900757009562 - 0xc9, 0x6a, 0x00, 0x67, 0xce, 0xce, 0xbd, 0xdf, //0x00009e98 .quad -2324474446766642487 - 0xe0, 0x24, 0x6d, 0x5c, 0x2c, 0xbb, 0xc8, 0xe0, //0x00009ea0 .quad -2249342214667950880 - 0xbd, 0x42, 0x60, 0x00, 0x41, 0xa1, 0xd6, 0x8b, //0x00009ea8 .quad -8370325556870233411 - 0x18, 0x6e, 0x88, 0x73, 0xf7, 0xe9, 0xfa, 0x58, //0x00009eb0 .quad 6411694268519837208 - 0x6d, 0x53, 0x78, 0x40, 0x91, 0x49, 0xcc, 0xae, //0x00009eb8 .quad -5851220927660403859 - 0x9e, 0x89, 0x6a, 0x50, 0x75, 0xa4, 0x39, 0xaf, //0x00009ec0 .quad -5820440219632367202 - 0x48, 0x68, 0x96, 0x90, 0xf5, 0x5b, 0x7f, 0xda, //0x00009ec8 .quad -2702340141148116920 - 0x03, 0x96, 0x42, 0x52, 0xc9, 0x06, 0x84, 0x6d, //0x00009ed0 .quad 7891439908798240259 - 0x2d, 0x01, 0x5e, 0x7a, 0x79, 0x99, 0x8f, 0x88, //0x00009ed8 .quad -8606491615858654931 - 0x83, 0x3b, 0xd3, 0xa6, 0x7b, 0x08, 0xe5, 0xc8, //0x00009ee0 .quad -3970758169284363389 - 0x78, 0x81, 0xf5, 0xd8, 0xd7, 0x7f, 0xb3, 0xaa, //0x00009ee8 .quad -6146428501395930760 - 0x64, 0x0a, 0x88, 0x90, 0x9a, 0x4a, 0x1e, 0xfb, //0x00009ef0 .quad -351761693178066332 - 0xd6, 0xe1, 0x32, 0xcf, 0xcd, 0x5f, 0x60, 0xd5, //0x00009ef8 .quad -3071349608317525546 - 0x7f, 0x06, 0x55, 0x9a, 0xa0, 0xee, 0xf2, 0x5c, //0x00009f00 .quad 6697677969404790399 - 0x26, 0xcd, 0x7f, 0xa1, 0xe0, 0x3b, 0x5c, 0x85, //0x00009f08 .quad -8837122532839535322 - 0x1e, 0x48, 0xea, 0xc0, 0x48, 0xaa, 0x2f, 0xf4, //0x00009f10 .quad -851274575098787810 - 0x6f, 0xc0, 0xdf, 0xc9, 0xd8, 0x4a, 0xb3, 0xa6, //0x00009f18 .quad -6434717147622031249 - 0x26, 0xda, 0x24, 0xf1, 0xda, 0x94, 0x3b, 0xf1, //0x00009f20 .quad -1064093218873484762 - 0x8b, 0xb0, 0x57, 0xfc, 0x8e, 0x1d, 0x60, 0xd0, //0x00009f28 .quad -3431710416100151157 - 0x58, 0x08, 0xb7, 0xd6, 0x08, 0x3d, 0xc5, 0x76, //0x00009f30 .quad 8558313775058847832 - 0x57, 0xce, 0xb6, 0x5d, 0x79, 0x12, 0x3c, 0x82, //0x00009f38 .quad -9062348037703676329 - 0x6e, 0xca, 0x64, 0x0c, 0x4b, 0x8c, 0x76, 0x54, //0x00009f40 .quad 6086206200396171886 - 0xed, 0x81, 0x24, 0xb5, 0x17, 0x17, 0xcb, 0xa2, //0x00009f48 .quad -6716249028702207507 - 0x09, 0xfd, 0x7d, 0xcf, 0x5d, 0x2f, 0x94, 0xa9, //0x00009f50 .quad -6227300304786948855 - 0x68, 0xa2, 0x6d, 0xa2, 0xdd, 0xdc, 0x7d, 0xcb, //0x00009f58 .quad -3783625267450371480 - 0x4c, 0x7c, 0x5d, 0x43, 0x35, 0x3b, 0xf9, 0xd3, //0x00009f60 .quad -3172439362556298164 - 0x02, 0x0b, 0x09, 0x0b, 0x15, 0x54, 0x5d, 0xfe, //0x00009f68 .quad -117845565885576446 - 0xaf, 0x6d, 0x1a, 0x4a, 0x01, 0xc5, 0x7b, 0xc4, //0x00009f70 .quad -4288617610811380305 - 0xe1, 0xa6, 0xe5, 0x26, 0x8d, 0x54, 0xfa, 0x9e, //0x00009f78 .quad -6991182506319567135 - 0x1b, 0x09, 0xa1, 0x9c, 0x41, 0xb6, 0x9a, 0x35, //0x00009f80 .quad 3862600023340550427 - 0x9a, 0x10, 0x9f, 0x70, 0xb0, 0xe9, 0xb8, 0xc6, //0x00009f88 .quad -4127292114472071014 - 0x62, 0x4b, 0xc9, 0x03, 0xd2, 0x63, 0x01, 0xc3, //0x00009f90 .quad -4395122007679087774 - 0xc0, 0xd4, 0xc6, 0x8c, 0x1c, 0x24, 0x67, 0xf8, //0x00009f98 .quad -547429124662700864 - 0x1d, 0xcf, 0x5d, 0x42, 0x63, 0xde, 0xe0, 0x79, //0x00009fa0 .quad 8782263791269039901 - 0xf8, 0x44, 0xfc, 0xd7, 0x91, 0x76, 0x40, 0x9b, //0x00009fa8 .quad -7259672230555269896 - 0xe4, 0x42, 0xf5, 0x12, 0xfc, 0x15, 0x59, 0x98, //0x00009fb0 .quad -7468914334623251740 - 0x36, 0x56, 0xfb, 0x4d, 0x36, 0x94, 0x10, 0xc2, //0x00009fb8 .quad -4462904269766699466 - 0x9d, 0x93, 0xb2, 0x17, 0x7b, 0x5b, 0x6f, 0x3e, //0x00009fc0 .quad 4498915137003099037 - 0xc4, 0x2b, 0x7a, 0xe1, 0x43, 0xb9, 0x94, 0xf2, //0x00009fc8 .quad -966944318780986428 - 0x42, 0x9c, 0xcf, 0xee, 0x2c, 0x99, 0x05, 0xa7, //0x00009fd0 .quad -6411550076227838910 - 0x5a, 0x5b, 0xec, 0x6c, 0xca, 0xf3, 0x9c, 0x97, //0x00009fd8 .quad -7521869226879198374 - 0x53, 0x83, 0x83, 0x2a, 0x78, 0xff, 0xc6, 0x50, //0x00009fe0 .quad 5820620459997365075 - 0x31, 0x72, 0x27, 0x08, 0xbd, 0x30, 0x84, 0xbd, //0x00009fe8 .quad -4790650515171610063 - 0x28, 0x64, 0x24, 0x35, 0x56, 0xbf, 0xf8, 0xa4, //0x00009ff0 .quad -6559282480285457368 - 0xbd, 0x4e, 0x31, 0x4a, 0xec, 0x3c, 0xe5, 0xec, //0x00009ff8 .quad -1376627125537124675 - 0x99, 0xbe, 0x36, 0xe1, 0x95, 0x77, 0x1b, 0x87, //0x0000a000 .quad -8711237568605798759 - 0x36, 0xd1, 0x5e, 0xae, 0x13, 0x46, 0x0f, 0x94, //0x0000a008 .quad -7777920981101784778 - 0x3f, 0x6e, 0x84, 0x59, 0x7b, 0x55, 0xe2, 0x28, //0x0000a010 .quad 2946011094524915263 - 0x84, 0x85, 0xf6, 0x99, 0x98, 0x17, 0x13, 0xb9, //0x0000a018 .quad -5110715207949843068 - 0xcf, 0x89, 0xe5, 0x2f, 0xda, 0xea, 0x1a, 0x33, //0x0000a020 .quad 3682513868156144079 - 0xe5, 0x26, 0x74, 0xc0, 0x7e, 0xdd, 0x57, 0xe7, //0x0000a028 .quad -1776707991509915931 - 0x21, 0x76, 0xef, 0x5d, 0xc8, 0xd2, 0xf0, 0x3f, //0x0000a030 .quad 4607414176811284001 - 0x4f, 0x98, 0x48, 0x38, 0x6f, 0xea, 0x96, 0x90, //0x0000a038 .quad -8027971522334779313 - 0xa9, 0x53, 0x6b, 0x75, 0x7a, 0x07, 0xed, 0x0f, //0x0000a040 .quad 1147581702586717097 - 0x63, 0xbe, 0x5a, 0x06, 0x0b, 0xa5, 0xbc, 0xb4, //0x0000a048 .quad -5423278384491086237 - 0x94, 0x28, 0xc6, 0x12, 0x59, 0x49, 0xe8, 0xd3, //0x0000a050 .quad -3177208890193991532 - 0xfb, 0x6d, 0xf1, 0xc7, 0x4d, 0xce, 0xeb, 0xe1, //0x0000a058 .quad -2167411962186469893 - 0x5c, 0xd9, 0xbb, 0xab, 0xd7, 0x2d, 0x71, 0x64, //0x0000a060 .quad 7237616480483531100 - 0xbd, 0xe4, 0xf6, 0x9c, 0xf0, 0x60, 0x33, 0x8d, //0x0000a068 .quad -8272161504007625539 - 0xb3, 0xcf, 0xaa, 0x96, 0x4d, 0x79, 0x8d, 0xbd, //0x0000a070 .quad -4788037454677749837 - 0xec, 0x9d, 0x34, 0xc4, 0x2c, 0x39, 0x80, 0xb0, //0x0000a078 .quad -5728515861582144020 - 0xa0, 0x83, 0x55, 0xfc, 0xa0, 0xd7, 0xf0, 0xec, //0x0000a080 .quad -1373360799919799392 - 0x67, 0xc5, 0x41, 0xf5, 0x77, 0x47, 0xa0, 0xdc, //0x0000a088 .quad -2548958808550292121 - 0x44, 0x72, 0xb5, 0x9d, 0xc4, 0x86, 0x16, 0xf4, //0x0000a090 .quad -858350499949874620 - 0x60, 0x1b, 0x49, 0xf9, 0xaa, 0x2c, 0xe4, 0x89, //0x0000a098 .quad -8510628282985014432 - 0xd5, 0xce, 0x22, 0xc5, 0x75, 0x28, 0x1c, 0x31, //0x0000a0a0 .quad 3538747893490044629 - 0x39, 0x62, 0x9b, 0xb7, 0xd5, 0x37, 0x5d, 0xac, //0x0000a0a8 .quad -6026599335303880135 - 0x8b, 0x82, 0x6b, 0x36, 0x93, 0x32, 0x63, 0x7d, //0x0000a0b0 .quad 9035120885289943691 - 0xc7, 0x3a, 0x82, 0x25, 0xcb, 0x85, 0x74, 0xd7, //0x0000a0b8 .quad -2921563150702462265 - 0x97, 0x31, 0x03, 0x02, 0x9c, 0xff, 0x5d, 0xae, //0x0000a0c0 .quad -5882264492762254953 - 0xbc, 0x64, 0x71, 0xf7, 0x9e, 0xd3, 0xa8, 0x86, //0x0000a0c8 .quad -8743505996830120772 - 0xfc, 0xfd, 0x83, 0x02, 0x83, 0x7f, 0xf5, 0xd9, //0x0000a0d0 .quad -2741144597525430788 - 0xeb, 0xbd, 0x4d, 0xb5, 0x86, 0x08, 0x53, 0xa8, //0x0000a0d8 .quad -6317696477610263061 - 0x7b, 0xfd, 0x24, 0xc3, 0x63, 0xdf, 0x72, 0xd0, //0x0000a0e0 .quad -3426430746906788485 - 0x66, 0x2d, 0xa1, 0x62, 0xa8, 0xca, 0x67, 0xd2, //0x0000a0e8 .quad -3285434578585440922 - 0x6d, 0x1e, 0xf7, 0x59, 0x9e, 0xcb, 0x47, 0x42, //0x0000a0f0 .quad 4776009810824339053 - 0x60, 0xbc, 0xa4, 0x3d, 0xa9, 0xde, 0x80, 0x83, //0x0000a0f8 .quad -8970925639256982432 - 0x08, 0xe6, 0x74, 0xf0, 0x85, 0xbe, 0xd9, 0x52, //0x0000a100 .quad 5970012263530423816 - 0x78, 0xeb, 0x0d, 0x8d, 0x53, 0x16, 0x61, 0xa4, //0x0000a108 .quad -6601971030643840136 - 0x8b, 0x1f, 0x92, 0x6c, 0x27, 0x2e, 0x90, 0x67, //0x0000a110 .quad 7462515329413029771 - 0x56, 0x66, 0x51, 0x70, 0xe8, 0x5b, 0x79, 0xcd, //0x0000a118 .quad -3640777769877412266 - 0xb6, 0x53, 0xdb, 0xa3, 0xd8, 0x1c, 0xba, 0x00, //0x0000a120 .quad 52386062455755702 - 0xf6, 0xdf, 0x32, 0x46, 0x71, 0xd9, 0x6b, 0x80, //0x0000a128 .quad -9193015133814464522 - 0xa4, 0x28, 0xd2, 0xcc, 0x0e, 0xa4, 0xe8, 0x80, //0x0000a130 .quad -9157889458785081180 - 0xf3, 0x97, 0xbf, 0x97, 0xcd, 0xcf, 0x86, 0xa0, //0x0000a138 .quad -6879582898840692749 - 0xcd, 0xb2, 0x06, 0x80, 0x12, 0xcd, 0x22, 0x61, //0x0000a140 .quad 6999382250228200141 - 0xf0, 0x7d, 0xaf, 0xfd, 0xc0, 0x83, 0xa8, 0xc8, //0x0000a148 .quad -3987792605123478032 - 0x81, 0x5f, 0x08, 0x20, 0x57, 0x80, 0x6b, 0x79, //0x0000a150 .quad 8749227812785250177 - 0x6c, 0x5d, 0x1b, 0x3d, 0xb1, 0xa4, 0xd2, 0xfa, //0x0000a158 .quad -373054737976959636 - 0xb0, 0x3b, 0x05, 0x74, 0x36, 0x30, 0xe3, 0xcb, //0x0000a160 .quad -3755104653863994448 - 0x63, 0x1a, 0x31, 0xc6, 0xee, 0xa6, 0xc3, 0x9c, //0x0000a168 .quad -7150688238876681629 - 0x9c, 0x8a, 0x06, 0x11, 0x44, 0xfc, 0xdb, 0xbe, //0x0000a170 .quad -4693880817329993060 - 0xfc, 0x60, 0xbd, 0x77, 0xaa, 0x90, 0xf4, 0xc3, //0x0000a178 .quad -4326674280168464132 - 0x44, 0x2d, 0x48, 0x15, 0x55, 0xfb, 0x92, 0xee, //0x0000a180 .quad -1255665003235103420 - 0x3b, 0xb9, 0xac, 0x15, 0xd5, 0xb4, 0xf1, 0xf4, //0x0000a188 .quad -796656831783192261 - 0x4a, 0x1c, 0x4d, 0x2d, 0x15, 0xdd, 0x1b, 0x75, //0x0000a190 .quad 8438581409832836170 - 0xc5, 0xf3, 0x8b, 0x2d, 0x05, 0x11, 0x17, 0x99, //0x0000a198 .quad -7415439547505577019 - 0x5d, 0x63, 0xa0, 0x78, 0x5a, 0xd4, 0x62, 0xd2, //0x0000a1a0 .quad -3286831292991118499 - 0xb6, 0xf0, 0xee, 0x78, 0x46, 0xd5, 0x5c, 0xbf, //0x0000a1a8 .quad -4657613415954583370 - 0x34, 0x7c, 0xc8, 0x16, 0x71, 0x89, 0xfb, 0x86, //0x0000a1b0 .quad -8720225134666286028 - 0xe4, 0xac, 0x2a, 0x17, 0x98, 0x0a, 0x34, 0xef, //0x0000a1b8 .quad -1210330751515841308 - 0xa0, 0x4d, 0x3d, 0xae, 0xe6, 0x35, 0x5d, 0xd4, //0x0000a1c0 .quad -3144297699952734816 - 0x0e, 0xac, 0x7a, 0x0e, 0x9f, 0x86, 0x80, 0x95, //0x0000a1c8 .quad -7673985747338482674 - 0x09, 0xa1, 0xcc, 0x59, 0x60, 0x83, 0x74, 0x89, //0x0000a1d0 .quad -8542058143368306423 - 0x12, 0x57, 0x19, 0xd2, 0x46, 0xa8, 0xe0, 0xba, //0x0000a1d8 .quad -4980796165745715438 - 0x4b, 0xc9, 0x3f, 0x70, 0x38, 0xa4, 0xd1, 0x2b, //0x0000a1e0 .quad 3157485376071780683 - 0xd7, 0xac, 0x9f, 0x86, 0x58, 0xd2, 0x98, 0xe9, //0x0000a1e8 .quad -1614309188754756393 - 0xcf, 0xdd, 0x27, 0x46, 0xa3, 0x06, 0x63, 0x7b, //0x0000a1f0 .quad 8890957387685944783 - 0x06, 0xcc, 0x23, 0x54, 0x77, 0x83, 0xff, 0x91, //0x0000a1f8 .quad -7926472270612804602 - 0x42, 0xd5, 0xb1, 0x17, 0x4c, 0xc8, 0x3b, 0x1a, //0x0000a200 .quad 1890324697752655170 - 0x08, 0xbf, 0x2c, 0x29, 0x55, 0x64, 0x7f, 0xb6, //0x0000a208 .quad -5296404319838617848 - 0x93, 0x4a, 0x9e, 0x1d, 0x5f, 0xba, 0xca, 0x20, //0x0000a210 .quad 2362905872190818963 - 0xca, 0xee, 0x77, 0x73, 0x6a, 0x3d, 0x1f, 0xe4, //0x0000a218 .quad -2008819381370884406 - 0x9c, 0xee, 0x82, 0x72, 0x7b, 0xb4, 0x7e, 0x54, //0x0000a220 .quad 6088502188546649756 - 0x3e, 0xf5, 0x2a, 0x88, 0x62, 0x86, 0x93, 0x8e, //0x0000a228 .quad -8173041140997884610 - 0x43, 0xaa, 0x23, 0x4f, 0x9a, 0x61, 0x9e, 0xe9, //0x0000a230 .quad -1612744301171463613 - 0x8d, 0xb2, 0x35, 0x2a, 0xfb, 0x67, 0x38, 0xb2, //0x0000a238 .quad -5604615407819967859 - 0xd4, 0x94, 0xec, 0xe2, 0x00, 0xfa, 0x05, 0x64, //0x0000a240 .quad 7207441660390446292 - 0x31, 0x1f, 0xc3, 0xf4, 0xf9, 0x81, 0xc6, 0xde, //0x0000a248 .quad -2394083241347571919 - 0x04, 0xdd, 0xd3, 0x8d, 0x40, 0xbc, 0x83, 0xde, //0x0000a250 .quad -2412877989897052924 - 0x7e, 0xf3, 0xf9, 0x38, 0x3c, 0x11, 0x3c, 0x8b, //0x0000a258 .quad -8413831053483314306 - 0x45, 0xd4, 0x48, 0xb1, 0x50, 0xab, 0x24, 0x96, //0x0000a260 .quad -7627783505798704059 - 0x5e, 0x70, 0x38, 0x47, 0x8b, 0x15, 0x0b, 0xae, //0x0000a268 .quad -5905602798426754978 - 0x57, 0x09, 0x9b, 0xdd, 0x24, 0xd6, 0xad, 0x3b, //0x0000a270 .quad 4300328673033783639 - 0x76, 0x8c, 0x06, 0x19, 0xee, 0xda, 0x8d, 0xd9, //0x0000a278 .quad -2770317479606055818 - 0xd6, 0xe5, 0x80, 0x0a, 0xd7, 0xa5, 0x4c, 0xe5, //0x0000a280 .quad -1923980597781273130 - 0xc9, 0x17, 0xa4, 0xcf, 0xd4, 0xa8, 0xf8, 0x87, //0x0000a288 .quad -8648977452394866743 - 0x4c, 0x1f, 0x21, 0xcd, 0x4c, 0xcf, 0x9f, 0x5e, //0x0000a290 .quad 6818396289628184396 - 0xbc, 0x1d, 0x8d, 0x03, 0x0a, 0xd3, 0xf6, 0xa9, //0x0000a298 .quad -6199535797066195524 - 0x1f, 0x67, 0x69, 0x00, 0x20, 0xc3, 0x47, 0x76, //0x0000a2a0 .quad 8522995362035230495 - 0x2b, 0x65, 0x70, 0x84, 0xcc, 0x87, 0x74, 0xd4, //0x0000a2a8 .quad -3137733727905356501 - 0x73, 0xe0, 0x41, 0x00, 0xf4, 0xd9, 0xec, 0x29, //0x0000a2b0 .quad 3021029092058325107 - 0x3b, 0x3f, 0xc6, 0xd2, 0xdf, 0xd4, 0xc8, 0x84, //0x0000a2b8 .quad -8878612607581929669 - 0x90, 0x58, 0x52, 0x00, 0x71, 0x10, 0x68, 0xf4, //0x0000a2c0 .quad -835399653354481520 - 0x09, 0xcf, 0x77, 0xc7, 0x17, 0x0a, 0xfb, 0xa5, //0x0000a2c8 .quad -6486579741050024183 - 0xb4, 0xee, 0x66, 0x40, 0x8d, 0x14, 0x82, 0x71, //0x0000a2d0 .quad 8179122470161673908 - 0xcc, 0xc2, 0x55, 0xb9, 0x9d, 0xcc, 0x79, 0xcf, //0x0000a2d8 .quad -3496538657885142324 - 0x30, 0x55, 0x40, 0x48, 0xd8, 0x4c, 0xf1, 0xc6, //0x0000a2e0 .quad -4111420493003729616 - 0xbf, 0x99, 0xd5, 0x93, 0xe2, 0x1f, 0xac, 0x81, //0x0000a2e8 .quad -9102865688819295809 - 0x7c, 0x6a, 0x50, 0x5a, 0x0e, 0xa0, 0xad, 0xb8, //0x0000a2f0 .quad -5139275616254662020 - 0x2f, 0x00, 0xcb, 0x38, 0xdb, 0x27, 0x17, 0xa2, //0x0000a2f8 .quad -6766896092596731857 - 0x1c, 0x85, 0xe4, 0xf0, 0x11, 0x08, 0xd9, 0xa6, //0x0000a300 .quad -6424094520318327524 - 0x3b, 0xc0, 0xfd, 0x06, 0xd2, 0xf1, 0x9c, 0xca, //0x0000a308 .quad -3846934097318526917 - 0x63, 0xa6, 0x1d, 0x6d, 0x16, 0x4a, 0x8f, 0x90, //0x0000a310 .quad -8030118150397909405 - 0x4a, 0x30, 0xbd, 0x88, 0x46, 0x2e, 0x44, 0xfd, //0x0000a318 .quad -196981603220770742 - 0xfe, 0x87, 0x32, 0x04, 0x4e, 0x8e, 0x59, 0x9a, //0x0000a320 .quad -7324666853212387330 - 0x2e, 0x3e, 0x76, 0x15, 0xec, 0x9c, 0x4a, 0x9e, //0x0000a328 .quad -7040642529654063570 - 0xfd, 0x29, 0x3f, 0x85, 0xe1, 0xf1, 0xef, 0x40, //0x0000a330 .quad 4679224488766679549 - 0xba, 0xcd, 0xd3, 0x1a, 0x27, 0x44, 0xdd, 0xc5, //0x0000a338 .quad -4189117143640191558 - 0x7c, 0xf4, 0x8e, 0xe6, 0x59, 0xee, 0x2b, 0xd1, //0x0000a340 .quad -3374341425896426372 - 0x28, 0xc1, 0x88, 0xe1, 0x30, 0x95, 0x54, 0xf7, //0x0000a348 .quad -624710411122851544 - 0xce, 0x58, 0x19, 0x30, 0xf8, 0x74, 0xbb, 0x82, //0x0000a350 .quad -9026492418826348338 - 0xb9, 0x78, 0xf5, 0x8c, 0x3e, 0xdd, 0x94, 0x9a, //0x0000a358 .quad -7307973034592864071 - 0x01, 0xaf, 0x1f, 0x3c, 0x36, 0x52, 0x6a, 0xe3, //0x0000a360 .quad -2059743486678159615 - 0xe7, 0xd6, 0x32, 0x30, 0x8e, 0x14, 0x3a, 0xc1, //0x0000a368 .quad -4523280274813692185 - 0xc1, 0x9a, 0x27, 0xcb, 0xc3, 0xe6, 0x44, 0xdc, //0x0000a370 .quad -2574679358347699519 - 0xa1, 0x8c, 0x3f, 0xbc, 0xb1, 0x99, 0x88, 0xf1, //0x0000a378 .quad -1042414325089727327 - 0xb9, 0xc0, 0xf8, 0x5e, 0x3a, 0x10, 0xab, 0x29, //0x0000a380 .quad 3002511419460075705 - 0xe5, 0xb7, 0xa7, 0x15, 0x0f, 0x60, 0xf5, 0x96, //0x0000a388 .quad -7569037980822161435 - 0xe7, 0xf0, 0xb6, 0xf6, 0x48, 0xd4, 0x15, 0x74, //0x0000a390 .quad 8364825292752482535 - 0xde, 0xa5, 0x11, 0xdb, 0x12, 0xb8, 0xb2, 0xbc, //0x0000a398 .quad -4849611457600313890 - 0x21, 0xad, 0x64, 0x34, 0x5b, 0x49, 0x1b, 0x11, //0x0000a3a0 .quad 1232659579085827361 - 0x56, 0x0f, 0xd6, 0x91, 0x17, 0x66, 0xdf, 0xeb, //0x0000a3a8 .quad -1450328303573004458 - 0x34, 0xec, 0xbe, 0x00, 0xd9, 0x0d, 0xb1, 0xca, //0x0000a3b0 .quad -3841273781498745804 - 0x95, 0xc9, 0x25, 0xbb, 0xce, 0x9f, 0x6b, 0x93, //0x0000a3b8 .quad -7823984217374209643 - 0x42, 0xa7, 0xee, 0x40, 0x4f, 0x51, 0x5d, 0x3d, //0x0000a3c0 .quad 4421779809981343554 - 0xfb, 0x3b, 0xef, 0x69, 0xc2, 0x87, 0x46, 0xb8, //0x0000a3c8 .quad -5168294253290374149 - 0x12, 0x51, 0x2a, 0x11, 0xa3, 0xa5, 0xb4, 0x0c, //0x0000a3d0 .quad 915538744049291538 - 0xfa, 0x0a, 0x6b, 0x04, 0xb3, 0x29, 0x58, 0xe6, //0x0000a3d8 .quad -1848681798185579782 - 0xab, 0x72, 0xba, 0xea, 0x85, 0xe7, 0xf0, 0x47, //0x0000a3e0 .quad 5183897733458195115 - 0xdc, 0xe6, 0xc2, 0xe2, 0x0f, 0x1a, 0xf7, 0x8f, //0x0000a3e8 .quad -8072955151507069220 - 0x56, 0x0f, 0x69, 0x65, 0x67, 0x21, 0xed, 0x59, //0x0000a3f0 .quad 6479872166822743894 - 0x93, 0xa0, 0x73, 0xdb, 0x93, 0xe0, 0xf4, 0xb3, //0x0000a3f8 .quad -5479507920956448621 - 0x2c, 0x53, 0xc3, 0x3e, 0xc1, 0x69, 0x68, 0x30, //0x0000a400 .quad 3488154190101041964 - 0xb8, 0x88, 0x50, 0xd2, 0xb8, 0x18, 0xf2, 0xe0, //0x0000a408 .quad -2237698882768172872 - 0xfb, 0x13, 0x3a, 0xc7, 0x18, 0x42, 0x41, 0x1e, //0x0000a410 .quad 2180096368813151227 - 0x73, 0x55, 0x72, 0x83, 0x73, 0x4f, 0x97, 0x8c, //0x0000a418 .quad -8316090829371189901 - 0xfa, 0x98, 0x08, 0xf9, 0x9e, 0x92, 0xd1, 0xe5, //0x0000a420 .quad -1886565557410948870 - 0xcf, 0xea, 0x4e, 0x64, 0x50, 0x23, 0xbd, 0xaf, //0x0000a428 .quad -5783427518286599473 - 0x39, 0xbf, 0x4a, 0xb7, 0x46, 0xf7, 0x45, 0xdf, //0x0000a430 .quad -2358206946763686087 - 0x83, 0xa5, 0x62, 0x7d, 0x24, 0x6c, 0xac, 0xdb, //0x0000a438 .quad -2617598379430861437 - 0x83, 0xb7, 0x8e, 0x32, 0x8c, 0xba, 0x8b, 0x6b, //0x0000a440 .quad 7749492695127472003 - 0x72, 0xa7, 0x5d, 0xce, 0x96, 0xc3, 0x4b, 0x89, //0x0000a448 .quad -8553528014785370254 - 0x64, 0x65, 0x32, 0x3f, 0x2f, 0xa9, 0x6e, 0x06, //0x0000a450 .quad 463493832054564196 - 0x4f, 0x11, 0xf5, 0x81, 0x7c, 0xb4, 0x9e, 0xab, //0x0000a458 .quad -6080224000054324913 - 0xbd, 0xfe, 0xfe, 0x0e, 0x7b, 0x53, 0x0a, 0xc8, //0x0000a460 .quad -4032318728359182659 - 0xa2, 0x55, 0x72, 0xa2, 0x9b, 0x61, 0x86, 0xd6, //0x0000a468 .quad -2988593981640518238 - 0x36, 0x5f, 0x5f, 0xe9, 0x2c, 0x74, 0x06, 0xbd, //0x0000a470 .quad -4826042214438183114 - 0x85, 0x75, 0x87, 0x45, 0x01, 0xfd, 0x13, 0x86, //0x0000a478 .quad -8785400266166405755 - 0x04, 0x37, 0xb7, 0x23, 0x38, 0x11, 0x48, 0x2c, //0x0000a480 .quad 3190819268807046916 - 0xe7, 0x52, 0xe9, 0x96, 0x41, 0xfc, 0x98, 0xa7, //0x0000a488 .quad -6370064314280619289 - 0xc5, 0x04, 0xa5, 0x2c, 0x86, 0x15, 0x5a, 0xf7, //0x0000a490 .quad -623161932418579259 - 0xa0, 0xa7, 0xa3, 0xfc, 0x51, 0x3b, 0x7f, 0xd1, //0x0000a498 .quad -3350894374423386208 - 0xfb, 0x22, 0xe7, 0xdb, 0x73, 0x4d, 0x98, 0x9a, //0x0000a4a0 .quad -7307005235402693893 - 0xc4, 0x48, 0xe6, 0x3d, 0x13, 0x85, 0xef, 0x82, //0x0000a4a8 .quad -9011838011655698236 - 0xba, 0xeb, 0xe0, 0xd2, 0xd0, 0x60, 0x3e, 0xc1, //0x0000a4b0 .quad -4522070525825979462 - 0xf5, 0xda, 0x5f, 0x0d, 0x58, 0x66, 0xab, 0xa3, //0x0000a4b8 .quad -6653111496142234891 - 0xa8, 0x26, 0x99, 0x07, 0x05, 0xf9, 0x8d, 0x31, //0x0000a4c0 .quad 3570783879572301480 - 0xb3, 0xd1, 0xb7, 0x10, 0xee, 0x3f, 0x96, 0xcc, //0x0000a4c8 .quad -3704703351750405709 - 0x52, 0x70, 0x7f, 0x49, 0x46, 0x77, 0xf1, 0xfd, //0x0000a4d0 .quad -148206168962011054 - 0x1f, 0xc6, 0xe5, 0x94, 0xe9, 0xcf, 0xbb, 0xff, //0x0000a4d8 .quad -19193171260619233 - 0x33, 0xa6, 0xef, 0xed, 0x8b, 0xea, 0xb6, 0xfe, //0x0000a4e0 .quad -92628855601256909 - 0xd3, 0x9b, 0x0f, 0xfd, 0xf1, 0x61, 0xd5, 0x9f, //0x0000a4e8 .quad -6929524759678968877 - 0xc0, 0x8f, 0x6b, 0xe9, 0x2e, 0xa5, 0x64, 0xfe, //0x0000a4f0 .quad -115786069501571136 - 0xc8, 0x82, 0x53, 0x7c, 0x6e, 0xba, 0xca, 0xc7, //0x0000a4f8 .quad -4050219931171323192 - 0xb0, 0x73, 0xc6, 0xa3, 0x7a, 0xce, 0xfd, 0x3d, //0x0000a500 .quad 4466953431550423984 - 0x7b, 0x63, 0x68, 0x1b, 0x0a, 0x69, 0xbd, 0xf9, //0x0000a508 .quad -451088895536766085 - 0x4e, 0x08, 0x5c, 0xa6, 0x0c, 0xa1, 0xbe, 0x06, //0x0000a510 .quad 486002885505321038 - 0x2d, 0x3e, 0x21, 0x51, 0xa6, 0x61, 0x16, 0x9c, //0x0000a518 .quad -7199459587351560659 - 0x62, 0x0a, 0xf3, 0xcf, 0x4f, 0x49, 0x6e, 0x48, //0x0000a520 .quad 5219189625309039202 - 0xb8, 0x8d, 0x69, 0xe5, 0x0f, 0xfa, 0x1b, 0xc3, //0x0000a528 .quad -4387638465762062920 - 0xfa, 0xcc, 0xef, 0xc3, 0xa3, 0xdb, 0x89, 0x5a, //0x0000a530 .quad 6523987031636299002 - 0x26, 0xf1, 0xc3, 0xde, 0x93, 0xf8, 0xe2, 0xf3, //0x0000a538 .quad -872862063775190746 - 0x1c, 0xe0, 0x75, 0x5a, 0x46, 0x29, 0x96, 0xf8, //0x0000a540 .quad -534194123654701028 - 0xb7, 0x76, 0x3a, 0x6b, 0x5c, 0xdb, 0x6d, 0x98, //0x0000a548 .quad -7463067817500576073 - 0x23, 0x58, 0x13, 0xf1, 0x97, 0xb3, 0xbb, 0xf6, //0x0000a550 .quad -667742654568376285 - 0x65, 0x14, 0x09, 0x86, 0x33, 0x52, 0x89, 0xbe, //0x0000a558 .quad -4717148753448332187 - 0x2c, 0x2e, 0x58, 0xed, 0x7d, 0xa0, 0x6a, 0x74, //0x0000a560 .quad 8388693718644305452 - 0x7f, 0x59, 0x8b, 0x67, 0xc0, 0xa6, 0x2b, 0xee, //0x0000a568 .quad -1284749923383027329 - 0xdc, 0x1c, 0x57, 0xb4, 0x4e, 0xa4, 0xc2, 0xa8, //0x0000a570 .quad -6286281471915778852 - 0xef, 0x17, 0xb7, 0x40, 0x38, 0x48, 0xdb, 0x94, //0x0000a578 .quad -7720497729755473937 - 0x13, 0xe4, 0x6c, 0x61, 0x62, 0x4d, 0xf3, 0x92, //0x0000a580 .quad -7857851839894723565 - 0xeb, 0xdd, 0xe4, 0x50, 0x46, 0x1a, 0x12, 0xba, //0x0000a588 .quad -5038936143766954517 - 0x17, 0x1d, 0xc8, 0xf9, 0xba, 0x20, 0xb0, 0x77, //0x0000a590 .quad 8624429273841147159 - 0x66, 0x15, 0x1e, 0xe5, 0xd7, 0xa0, 0x96, 0xe8, //0x0000a598 .quad -1686984161281305242 - 0x2e, 0x12, 0x1d, 0xdc, 0x74, 0x14, 0xce, 0x0a, //0x0000a5a0 .quad 778582277723329070 - 0x60, 0xcd, 0x32, 0xef, 0x86, 0x24, 0x5e, 0x91, //0x0000a5a8 .quad -7971894128441897632 - 0xba, 0x56, 0x24, 0x13, 0x92, 0x99, 0x81, 0x0d, //0x0000a5b0 .quad 973227847154161338 - 0xb8, 0x80, 0xff, 0xaa, 0xa8, 0xad, 0xb5, 0xb5, //0x0000a5b8 .quad -5353181642124984136 - 0x69, 0x6c, 0xed, 0x97, 0xf6, 0xff, 0xe1, 0x10, //0x0000a5c0 .quad 1216534808942701673 - 0xe6, 0x60, 0xbf, 0xd5, 0x12, 0x19, 0x23, 0xe3, //0x0000a5c8 .quad -2079791034228842266 - 0xc1, 0x63, 0xf4, 0x1e, 0xfa, 0x3f, 0x8d, 0xca, //0x0000a5d0 .quad -3851351762838199359 - 0x8f, 0x9c, 0x97, 0xc5, 0xab, 0xef, 0xf5, 0x8d, //0x0000a5d8 .quad -8217398424034108273 - 0xb2, 0x7c, 0xb1, 0xa6, 0xf8, 0x8f, 0x30, 0xbd, //0x0000a5e0 .quad -4814189703547749198 - 0xb3, 0x83, 0xfd, 0xb6, 0x96, 0x6b, 0x73, 0xb1, //0x0000a5e8 .quad -5660062011615247437 - 0xde, 0xdb, 0x5d, 0xd0, 0xf6, 0xb3, 0x7c, 0xac, //0x0000a5f0 .quad -6017737129434686498 - 0xa0, 0xe4, 0xbc, 0x64, 0x7c, 0x46, 0xd0, 0xdd, //0x0000a5f8 .quad -2463391496091671392 - 0x6b, 0xa9, 0x3a, 0x42, 0x7a, 0xf0, 0xcd, 0x6b, //0x0000a600 .quad 7768129340171790699 - 0xe4, 0x0e, 0xf6, 0xbe, 0x0d, 0x2c, 0xa2, 0x8a, //0x0000a608 .quad -8457148712698376476 - 0xc6, 0x53, 0xc9, 0xd2, 0x98, 0x6c, 0xc1, 0x86, //0x0000a610 .quad -8736582398494813242 - 0x9d, 0x92, 0xb3, 0x2e, 0x11, 0xb7, 0x4a, 0xad, //0x0000a618 .quad -5959749872445582691 - 0xb7, 0xa8, 0x7b, 0x07, 0xbf, 0xc7, 0x71, 0xe8, //0x0000a620 .quad -1697355961263740745 - 0x44, 0x77, 0x60, 0x7a, 0xd5, 0x64, 0x9d, 0xd8, //0x0000a628 .quad -2838001322129590460 - 0x72, 0x49, 0xad, 0x64, 0xd7, 0x1c, 0x47, 0x11, //0x0000a630 .quad 1244995533423855986 - 0x8b, 0x4a, 0x7c, 0x6c, 0x05, 0x5f, 0x62, 0x87, //0x0000a638 .quad -8691279853972075893 - 0xcf, 0x9b, 0xd8, 0x3d, 0x0d, 0xe4, 0x98, 0xd5, //0x0000a640 .quad -3055441601647567921 - 0x2d, 0x5d, 0x9b, 0xc7, 0xc6, 0xf6, 0x3a, 0xa9, //0x0000a648 .quad -6252413799037706963 - 0xc3, 0xc2, 0x4e, 0x8d, 0x10, 0x1d, 0xff, 0x4a, //0x0000a650 .quad 5404070034795315907 - 0x79, 0x34, 0x82, 0x79, 0x78, 0xb4, 0x89, 0xd3, //0x0000a658 .quad -3203831230369745799 - 0xba, 0x39, 0x51, 0x58, 0x2a, 0x72, 0xdf, 0xce, //0x0000a660 .quad -3539985255894009414 - 0xcb, 0x60, 0xf1, 0x4b, 0xcb, 0x10, 0x36, 0x84, //0x0000a668 .quad -8919923546622172981 - 0x28, 0x88, 0x65, 0xee, 0xb4, 0x4e, 0x97, 0xc2, //0x0000a670 .quad -4424981569867511768 - 0xfe, 0xb8, 0xed, 0x1e, 0xfe, 0x94, 0x43, 0xa5, //0x0000a678 .quad -6538218414850328322 - 0x32, 0xea, 0xfe, 0x29, 0x62, 0x22, 0x3d, 0x73, //0x0000a680 .quad 8303831092947774002 - 0x3e, 0x27, 0xa9, 0xa6, 0x3d, 0x7a, 0x94, 0xce, //0x0000a688 .quad -3561087000135522498 - 0x5f, 0x52, 0x3f, 0x5a, 0x7d, 0x35, 0x06, 0x08, //0x0000a690 .quad 578208414664970847 - 0x87, 0xb8, 0x29, 0x88, 0x66, 0xcc, 0x1c, 0x81, //0x0000a698 .quad -9143208402725783417 - 0xf7, 0x26, 0xcf, 0xb0, 0xdc, 0xc2, 0x07, 0xca, //0x0000a6a0 .quad -3888925500096174345 - 0xa8, 0x26, 0x34, 0x2a, 0x80, 0xff, 0x63, 0xa1, //0x0000a6a8 .quad -6817324484979841368 - 0xb5, 0xf0, 0x02, 0xdd, 0x93, 0xb3, 0x89, 0xfc, //0x0000a6b0 .quad -249470856692830027 - 0x52, 0x30, 0xc1, 0x34, 0x60, 0xff, 0xbc, 0xc9, //0x0000a6b8 .quad -3909969587797413806 - 0xe2, 0xac, 0x43, 0xd4, 0x78, 0x20, 0xac, 0xbb, //0x0000a6c0 .quad -4923524589293425438 - 0x67, 0x7c, 0xf1, 0x41, 0x38, 0x3f, 0x2c, 0xfc, //0x0000a6c8 .quad -275775966319379353 - 0x0d, 0x4c, 0xaa, 0x84, 0x4b, 0x94, 0x4b, 0xd5, //0x0000a6d0 .quad -3077202868308390899 - 0xc0, 0xed, 0x36, 0x29, 0x83, 0xa7, 0x9b, 0x9d, //0x0000a6d8 .quad -7089889006590693952 - 0x11, 0xdf, 0xd4, 0x65, 0x5e, 0x79, 0x9e, 0x0a, //0x0000a6e0 .quad 765182433041899281 - 0x31, 0xa9, 0x84, 0xf3, 0x63, 0x91, 0x02, 0xc5, //0x0000a6e8 .quad -4250675239810979535 - 0xd5, 0x16, 0x4a, 0xff, 0xb5, 0x17, 0x46, 0x4d, //0x0000a6f0 .quad 5568164059729762005 - 0x7d, 0xd3, 0x65, 0xf0, 0xbc, 0x35, 0x43, 0xf6, //0x0000a6f8 .quad -701658031336336515 - 0x45, 0x4e, 0x8e, 0xbf, 0xd1, 0xce, 0x4b, 0x50, //0x0000a700 .quad 5785945546544795205 - 0x2e, 0xa4, 0x3f, 0x16, 0x96, 0x01, 0xea, 0x99, //0x0000a708 .quad -7356065297226292178 - 0xd6, 0xe1, 0x71, 0x2f, 0x86, 0xc2, 0x5e, 0xe4, //0x0000a710 .quad -1990940103673781802 - 0x39, 0x8d, 0xcf, 0x9b, 0xfb, 0x81, 0x64, 0xc0, //0x0000a718 .quad -4583395603105477319 - 0x4c, 0x5a, 0x4e, 0xbb, 0x27, 0x73, 0x76, 0x5d, //0x0000a720 .quad 6734696907262548556 - 0x88, 0x70, 0xc3, 0x82, 0x7a, 0xa2, 0x7d, 0xf0, //0x0000a728 .quad -1117558485454458744 - 0x6f, 0xf8, 0x10, 0xd5, 0xf8, 0x07, 0x6a, 0x3a, //0x0000a730 .quad 4209185567039092847 - 0x55, 0x26, 0xba, 0x91, 0x8c, 0x85, 0x4e, 0x96, //0x0000a738 .quad -7616003081050118571 - 0x8b, 0x36, 0x55, 0x0a, 0xf7, 0x89, 0x04, 0x89, //0x0000a740 .quad -8573576096483297653 - 0xea, 0xaf, 0x28, 0xb6, 0xef, 0x26, 0xe2, 0xbb, //0x0000a748 .quad -4908317832885260310 - 0x2e, 0x84, 0xea, 0xcc, 0x74, 0xac, 0x45, 0x2b, //0x0000a750 .quad 3118087934678041646 - 0xe5, 0xdb, 0xb2, 0xa3, 0xab, 0xb0, 0xda, 0xea, //0x0000a758 .quad -1523711272679187483 - 0x9d, 0x92, 0x12, 0x00, 0xc9, 0x8b, 0x0b, 0x3b, //0x0000a760 .quad 4254647968387469981 - 0x6f, 0xc9, 0x4f, 0x46, 0x6b, 0xae, 0xc8, 0x92, //0x0000a768 .quad -7869848573065574033 - 0x44, 0x37, 0x17, 0x40, 0xbb, 0x6e, 0xce, 0x09, //0x0000a770 .quad 706623942056949572 - 0xcb, 0xbb, 0xe3, 0x17, 0x06, 0xda, 0x7a, 0xb7, //0x0000a778 .quad -5225624697904579637 - 0x15, 0x05, 0x1d, 0x10, 0x6a, 0x0a, 0x42, 0xcc, //0x0000a780 .quad -3728406090856200939 - 0xbd, 0xaa, 0xdc, 0x9d, 0x87, 0x90, 0x59, 0xe5, //0x0000a788 .quad -1920344853953336643 - 0x2d, 0x23, 0x12, 0x4a, 0x82, 0x46, 0xa9, 0x9f, //0x0000a790 .quad -6941939825212513491 - 0xb6, 0xea, 0xa9, 0xc2, 0x54, 0xfa, 0x57, 0x8f, //0x0000a798 .quad -8117744561361917258 - 0xf9, 0xab, 0x96, 0xdc, 0x22, 0x98, 0x93, 0x47, //0x0000a7a0 .quad 5157633273766521849 - 0x64, 0x65, 0x54, 0xf3, 0xe9, 0xf8, 0x2d, 0xb3, //0x0000a7a8 .quad -5535494683275008668 - 0xf7, 0x56, 0xbc, 0x93, 0x2b, 0x7e, 0x78, 0x59, //0x0000a7b0 .quad 6447041592208152311 - 0xbd, 0x7e, 0x29, 0x70, 0x24, 0x77, 0xf9, 0xdf, //0x0000a7b8 .quad -2307682335666372931 - 0x5a, 0xb6, 0x55, 0x3c, 0xdb, 0x4e, 0xeb, 0x57, //0x0000a7c0 .quad 6335244004343789146 - 0x36, 0xef, 0x19, 0xc6, 0x76, 0xea, 0xfb, 0x8b, //0x0000a7c8 .quad -8359830487432564938 - 0xf1, 0x23, 0x6b, 0x0b, 0x92, 0x22, 0xe6, 0xed, //0x0000a7d0 .quad -1304317031425039375 - 0x03, 0x6b, 0xa0, 0x77, 0x14, 0xe5, 0xfa, 0xae, //0x0000a7d8 .quad -5838102090863318269 - 0xed, 0xec, 0x45, 0x8e, 0x36, 0xab, 0x5f, 0xe9, //0x0000a7e0 .quad -1630396289281299219 - 0xc4, 0x85, 0x88, 0x95, 0x59, 0x9e, 0xb9, 0xda, //0x0000a7e8 .quad -2685941595151759932 - 0x14, 0xb4, 0xeb, 0x18, 0x02, 0xcb, 0xdb, 0x11, //0x0000a7f0 .quad 1286845328412881940 - 0x9b, 0x53, 0x75, 0xfd, 0xf7, 0x02, 0xb4, 0x88, //0x0000a7f8 .quad -8596242524610931813 - 0x19, 0xa1, 0x26, 0x9f, 0xc2, 0xbd, 0x52, 0xd6, //0x0000a800 .quad -3003129357911285479 - 0x81, 0xa8, 0xd2, 0xfc, 0xb5, 0x03, 0xe1, 0xaa, //0x0000a808 .quad -6133617137336276863 - 0x5f, 0x49, 0xf0, 0x46, 0x33, 0x6d, 0xe7, 0x4b, //0x0000a810 .quad 5469460339465668959 - 0xa2, 0x52, 0x07, 0x7c, 0xa3, 0x44, 0x99, 0xd5, //0x0000a818 .quad -3055335403242958174 - 0xdb, 0x2d, 0x56, 0x0c, 0x40, 0xa4, 0x70, 0x6f, //0x0000a820 .quad 8030098730593431003 - 0xa5, 0x93, 0x84, 0x2d, 0xe6, 0xca, 0x7f, 0x85, //0x0000a828 .quad -8827113654667930715 - 0x52, 0xb9, 0x6b, 0x0f, 0x50, 0xcd, 0x4c, 0xcb, //0x0000a830 .quad -3797434642040374958 - 0x8e, 0xb8, 0xe5, 0xb8, 0x9f, 0xbd, 0xdf, 0xa6, //0x0000a838 .quad -6422206049907525490 - 0xa7, 0xa7, 0x46, 0x13, 0xa4, 0x00, 0x20, 0x7e, //0x0000a840 .quad 9088264752731695015 - 0xb2, 0x26, 0x1f, 0xa7, 0x07, 0xad, 0x97, 0xd0, //0x0000a848 .quad -3416071543957018958 - 0xc8, 0x28, 0x0c, 0x8c, 0x66, 0x00, 0xd4, 0x8e, //0x0000a850 .quad -8154892584824854328 - 0x2f, 0x78, 0x73, 0xc8, 0x24, 0xcc, 0x5e, 0x82, //0x0000a858 .quad -9052573742614218705 - 0xfa, 0x32, 0x0f, 0x2f, 0x80, 0x00, 0x89, 0x72, //0x0000a860 .quad 8253128342678483706 - 0x3b, 0x56, 0x90, 0xfa, 0x2d, 0x7f, 0xf6, 0xa2, //0x0000a868 .quad -6704031159840385477 - 0xb9, 0xff, 0xd2, 0x3a, 0xa0, 0x40, 0x2b, 0x4f, //0x0000a870 .quad 5704724409920716729 - 0xca, 0x6b, 0x34, 0x79, 0xf9, 0x1e, 0xb4, 0xcb, //0x0000a878 .quad -3768352931373093942 - 0xa8, 0xbf, 0x87, 0x49, 0xc8, 0x10, 0xf6, 0xe2, //0x0000a880 .quad -2092466524453879896 - 0xbc, 0x86, 0x81, 0xd7, 0xb7, 0x26, 0xa1, 0xfe, //0x0000a888 .quad -98755145788979524 - 0xc9, 0xd7, 0xf4, 0x2d, 0x7d, 0xca, 0xd9, 0x0d, //0x0000a890 .quad 998051431430019017 - 0x36, 0xf4, 0xb0, 0xe6, 0x32, 0xb8, 0x24, 0x9f, //0x0000a898 .quad -6979250993759194058 - 0xbb, 0x0d, 0x72, 0x79, 0x1c, 0x3d, 0x50, 0x91, //0x0000a8a0 .quad -7975807747567252037 - 0x43, 0x31, 0x5d, 0xa0, 0x3f, 0xe6, 0xed, 0xc6, //0x0000a8a8 .quad -4112377723771604669 - 0x2a, 0x91, 0xce, 0x97, 0x63, 0x4c, 0xa4, 0x75, //0x0000a8b0 .quad 8476984389250486570 - 0x94, 0x7d, 0x74, 0x88, 0xcf, 0x5f, 0xa9, 0xf8, //0x0000a8b8 .quad -528786136287117932 - 0xba, 0x1a, 0xe1, 0x3e, 0xbe, 0xaf, 0x86, 0xc9, //0x0000a8c0 .quad -3925256793573221702 - 0x7c, 0xce, 0x48, 0xb5, 0xe1, 0xdb, 0x69, 0x9b, //0x0000a8c8 .quad -7248020362820530564 - 0x68, 0x61, 0x99, 0xce, 0xad, 0x5b, 0xe8, 0xfb, //0x0000a8d0 .quad -294884973539139224 - 0x1b, 0x02, 0x9b, 0x22, 0xda, 0x52, 0x44, 0xc2, //0x0000a8d8 .quad -4448339435098275301 - 0xc3, 0xb9, 0x3f, 0x42, 0x99, 0x72, 0xe2, 0xfa, //0x0000a8e0 .quad -368606216923924029 - 0xa2, 0xc2, 0x41, 0xab, 0x90, 0x67, 0xd5, 0xf2, //0x0000a8e8 .quad -948738275445456222 - 0x1a, 0xd4, 0x67, 0xc9, 0x9f, 0x87, 0xcd, 0xdc, //0x0000a8f0 .quad -2536221894791146470 - 0xa5, 0x19, 0x09, 0x6b, 0xba, 0x60, 0xc5, 0x97, //0x0000a8f8 .quad -7510490449794491995 - 0x20, 0xc9, 0xc1, 0xbb, 0x87, 0xe9, 0x00, 0x54, //0x0000a900 .quad 6053094668365842720 - 0x0f, 0x60, 0xcb, 0x05, 0xe9, 0xb8, 0xb6, 0xbd, //0x0000a908 .quad -4776427043815727089 - 0x68, 0x3b, 0xb2, 0xaa, 0xe9, 0x23, 0x01, 0x29, //0x0000a910 .quad 2954682317029915496 - 0x13, 0x38, 0x3e, 0x47, 0x23, 0x67, 0x24, 0xed, //0x0000a918 .quad -1358847786342270957 - 0x21, 0x65, 0xaf, 0x0a, 0x72, 0xb6, 0xa0, 0xf9, //0x0000a920 .quad -459166561069996767 - 0x0b, 0xe3, 0x86, 0x0c, 0x76, 0xc0, 0x36, 0x94, //0x0000a928 .quad -7766808894105001205 - 0x69, 0x3e, 0x5b, 0x8d, 0x0e, 0xe4, 0x08, 0xf8, //0x0000a930 .quad -573958201337495959 - 0xce, 0x9b, 0xa8, 0x8f, 0x93, 0x70, 0x44, 0xb9, //0x0000a938 .quad -5096825099203863602 - 0x04, 0x0e, 0xb2, 0x30, 0x12, 0x1d, 0x0b, 0xb6, //0x0000a940 .quad -5329133770099257852 - 0xc2, 0xc2, 0x92, 0x73, 0xb8, 0x8c, 0x95, 0xe7, //0x0000a948 .quad -1759345355577441598 - 0xc2, 0x48, 0x6f, 0x5e, 0x2b, 0xf2, 0xc6, 0xb1, //0x0000a950 .quad -5636551615525730110 - 0xb9, 0xb9, 0x3b, 0x48, 0xf3, 0x77, 0xbd, 0x90, //0x0000a958 .quad -8017119874876982855 - 0xf3, 0x1a, 0x0b, 0x36, 0xb6, 0xae, 0x38, 0x1e, //0x0000a960 .quad 2177682517447613171 - 0x28, 0xa8, 0x4a, 0x1a, 0xf0, 0xd5, 0xec, 0xb4, //0x0000a968 .quad -5409713825168840664 - 0xb0, 0xe1, 0x8d, 0xc3, 0x63, 0xda, 0xc6, 0x25, //0x0000a970 .quad 2722103146809516464 - 0x32, 0x52, 0xdd, 0x20, 0x6c, 0x0b, 0x28, 0xe2, //0x0000a978 .quad -2150456263033662926 - 0x0e, 0xad, 0x38, 0x5a, 0x7e, 0x48, 0x9c, 0x57, //0x0000a980 .quad 6313000485183335694 - 0x5f, 0x53, 0x8a, 0x94, 0x23, 0x07, 0x59, 0x8d, //0x0000a988 .quad -8261564192037121185 - 0x51, 0xd8, 0xc6, 0xf0, 0x9d, 0x5a, 0x83, 0x2d, //0x0000a990 .quad 3279564588051781713 - 0x37, 0xe8, 0xac, 0x79, 0xec, 0x48, 0xaf, 0xb0, //0x0000a998 .quad -5715269221619013577 - 0x65, 0x8e, 0xf8, 0x6c, 0x45, 0x31, 0xe4, 0xf8, //0x0000a9a0 .quad -512230283362660763 - 0x44, 0x22, 0x18, 0x98, 0x27, 0x1b, 0xdb, 0xdc, //0x0000a9a8 .quad -2532400508596379068 - 0xff, 0x58, 0x1b, 0x64, 0xcb, 0x9e, 0x8e, 0x1b, //0x0000a9b0 .quad 1985699082112030975 - 0x6b, 0x15, 0x0f, 0xbf, 0xf8, 0xf0, 0x08, 0x8a, //0x0000a9b8 .quad -8500279345513818773 - 0x3f, 0x2f, 0x22, 0x3d, 0x7e, 0x46, 0x72, 0xe2, //0x0000a9c0 .quad -2129562165787349185 - 0xc5, 0xda, 0xd2, 0xee, 0x36, 0x2d, 0x8b, 0xac, //0x0000a9c8 .quad -6013663163464885563 - 0x0f, 0xbb, 0x6a, 0xcc, 0x1d, 0xd8, 0x0e, 0x5b, //0x0000a9d0 .quad 6561419329620589327 - 0x77, 0x91, 0x87, 0xaa, 0x84, 0xf8, 0xad, 0xd7, //0x0000a9d8 .quad -2905392935903719049 - 0xe9, 0xb4, 0xc2, 0x9f, 0x12, 0x47, 0xe9, 0x98, //0x0000a9e0 .quad -7428327965055601431 - 0xea, 0xba, 0x94, 0xea, 0x52, 0xbb, 0xcc, 0x86, //0x0000a9e8 .quad -8733399612580906262 - 0x24, 0x62, 0xb3, 0x47, 0xd7, 0x98, 0x23, 0x3f, //0x0000a9f0 .quad 4549648098962661924 - 0xa5, 0xe9, 0x39, 0xa5, 0x27, 0xea, 0x7f, 0xa8, //0x0000a9f8 .quad -6305063497298744923 - 0xad, 0x3a, 0xa0, 0x19, 0x0d, 0x7f, 0xec, 0x8e, //0x0000aa00 .quad -8147997931578836307 - 0x0e, 0x64, 0x88, 0x8e, 0xb1, 0xe4, 0x9f, 0xd2, //0x0000aa08 .quad -3269643353196043250 - 0xac, 0x24, 0x04, 0x30, 0x68, 0xcf, 0x53, 0x19, //0x0000aa10 .quad 1825030320404309164 - 0x89, 0x3e, 0x15, 0xf9, 0xee, 0xee, 0xa3, 0x83, //0x0000aa18 .quad -8961056123388608887 - 0xd7, 0x2d, 0x05, 0x3c, 0x42, 0xc3, 0xa8, 0x5f, //0x0000aa20 .quad 6892973918932774359 - 0x2b, 0x8e, 0x5a, 0xb7, 0xaa, 0xea, 0x8c, 0xa4, //0x0000aa28 .quad -6589634135808373205 - 0x4d, 0x79, 0x06, 0xcb, 0x12, 0xf4, 0x92, 0x37, //0x0000aa30 .quad 4004531380238580045 - 0xb6, 0x31, 0x31, 0x65, 0x55, 0x25, 0xb0, 0xcd, //0x0000aa38 .quad -3625356651333078602 - 0xd0, 0x0b, 0xe4, 0xbe, 0x8b, 0xd8, 0xbb, 0xe2, //0x0000aa40 .quad -2108853905778275376 - 0x11, 0xbf, 0x3e, 0x5f, 0x55, 0x17, 0x8e, 0x80, //0x0000aa48 .quad -9183376934724255983 - 0xc4, 0x0e, 0x9d, 0xae, 0xae, 0xce, 0x6a, 0x5b, //0x0000aa50 .quad 6587304654631931588 - 0xd6, 0x6e, 0x0e, 0xb7, 0x2a, 0x9d, 0xb1, 0xa0, //0x0000aa58 .quad -6867535149977932074 - 0x75, 0x52, 0x44, 0x5a, 0x5a, 0x82, 0x45, 0xf2, //0x0000aa60 .quad -989241218564861323 - 0x8b, 0x0a, 0xd2, 0x64, 0x75, 0x04, 0xde, 0xc8, //0x0000aa68 .quad -3972732919045027189 - 0x12, 0x67, 0xd5, 0xf0, 0xf0, 0xe2, 0xd6, 0xee, //0x0000aa70 .quad -1236551523206076654 - 0x2e, 0x8d, 0x06, 0xbe, 0x92, 0x85, 0x15, 0xfb, //0x0000aa78 .quad -354230130378896082 - 0x6b, 0x60, 0x85, 0x96, 0xd6, 0x4d, 0x46, 0x55, //0x0000aa80 .quad 6144684325637283947 - 0x3d, 0x18, 0xc4, 0xb6, 0x7b, 0x73, 0xed, 0x9c, //0x0000aa88 .quad -7138922859127891907 - 0x86, 0xb8, 0x26, 0x3c, 0x4c, 0xe1, 0x97, 0xaa, //0x0000aa90 .quad -6154202648235558778 - 0x4c, 0x1e, 0x75, 0xa4, 0x5a, 0xd0, 0x28, 0xc4, //0x0000aa98 .quad -4311967555482476980 - 0xa8, 0x66, 0x30, 0x4b, 0x9f, 0xd9, 0x3d, 0xd5, //0x0000aaa0 .quad -3081067291867060568 - 0xdf, 0x65, 0x92, 0x4d, 0x71, 0x04, 0x33, 0xf5, //0x0000aaa8 .quad -778273425925708321 - 0x29, 0x40, 0xfe, 0x8e, 0x03, 0xa8, 0x46, 0xe5, //0x0000aab0 .quad -1925667057416912855 - 0xab, 0x7f, 0x7b, 0xd0, 0xc6, 0xe2, 0x3f, 0x99, //0x0000aab8 .quad -7403949918844649557 - 0x33, 0xd0, 0xbd, 0x72, 0x04, 0x52, 0x98, 0xde, //0x0000aac0 .quad -2407083821771141069 - 0x96, 0x5f, 0x9a, 0x84, 0x78, 0xdb, 0x8f, 0xbf, //0x0000aac8 .quad -4643251380128424042 - 0x40, 0x44, 0x6d, 0x8f, 0x85, 0x66, 0x3e, 0x96, //0x0000aad0 .quad -7620540795641314240 - 0x7c, 0xf7, 0xc0, 0xa5, 0x56, 0xd2, 0x73, 0xef, //0x0000aad8 .quad -1192378206733142148 - 0xa8, 0x4a, 0xa4, 0x79, 0x13, 0x00, 0xe7, 0xdd, //0x0000aae0 .quad -2456994988062127448 - 0xad, 0x9a, 0x98, 0x27, 0x76, 0x63, 0xa8, 0x95, //0x0000aae8 .quad -7662765406849295699 - 0x52, 0x5d, 0x0d, 0x58, 0x18, 0xc0, 0x60, 0x55, //0x0000aaf0 .quad 6152128301777116498 - 0x59, 0xc1, 0x7e, 0xb1, 0x53, 0x7c, 0x12, 0xbb, //0x0000aaf8 .quad -4966770740134231719 - 0xa6, 0xb4, 0x10, 0x6e, 0x1e, 0xf0, 0xb8, 0xaa, //0x0000ab00 .quad -6144897678060768090 - 0xaf, 0x71, 0xde, 0x9d, 0x68, 0x1b, 0xd7, 0xe9, //0x0000ab08 .quad -1596777406740401745 - 0xe8, 0x70, 0xca, 0x04, 0x13, 0x96, 0xb3, 0xca, //0x0000ab10 .quad -3840561048787980056 - 0x0d, 0x07, 0xab, 0x62, 0x21, 0x71, 0x26, 0x92, //0x0000ab18 .quad -7915514906853832947 - 0x22, 0x0d, 0xfd, 0xc5, 0x97, 0x7b, 0x60, 0x3d, //0x0000ab20 .quad 4422670725869800738 - 0xd1, 0xc8, 0x55, 0xbb, 0x69, 0x0d, 0xb0, 0xb6, //0x0000ab28 .quad -5282707615139903279 - 0x6a, 0x50, 0x7c, 0xb7, 0x7d, 0x9a, 0xb8, 0x8c, //0x0000ab30 .quad -8306719647944912790 - 0x05, 0x3b, 0x2b, 0x2a, 0xc4, 0x10, 0x5c, 0xe4, //0x0000ab38 .quad -1991698500497491195 - 0x42, 0xb2, 0xad, 0x92, 0x8e, 0x60, 0xf3, 0x77, //0x0000ab40 .quad 8643358275316593218 - 0xe3, 0x04, 0x5b, 0x9a, 0x7a, 0x8a, 0xb9, 0x8e, //0x0000ab48 .quad -8162340590452013853 - 0xd3, 0x1e, 0x59, 0x37, 0xb2, 0x38, 0xf0, 0x55, //0x0000ab50 .quad 6192511825718353619 - 0x1c, 0xc6, 0xf1, 0x40, 0x19, 0xed, 0x67, 0xb2, //0x0000ab58 .quad -5591239719637629412 - 0x88, 0x66, 0x2f, 0xc5, 0xde, 0x46, 0x6c, 0x6b, //0x0000ab60 .quad 7740639782147942024 - 0xa3, 0x37, 0x2e, 0x91, 0x5f, 0xe8, 0x01, 0xdf, //0x0000ab68 .quad -2377363631119648861 - 0x15, 0xa0, 0x3d, 0x3b, 0x4b, 0xac, 0x23, 0x23, //0x0000ab70 .quad 2532056854628769813 - 0xc6, 0xe2, 0xbc, 0xba, 0x3b, 0x31, 0x61, 0x8b, //0x0000ab78 .quad -8403381297090862394 - 0x1a, 0x08, 0x0d, 0x0a, 0x5e, 0x97, 0xec, 0xab, //0x0000ab80 .quad -6058300968568813542 - 0x77, 0x1b, 0x6c, 0xa9, 0x8a, 0x7d, 0x39, 0xae, //0x0000ab88 .quad -5892540602936190089 - 0x21, 0x4a, 0x90, 0x8c, 0x35, 0xbd, 0xe7, 0x96, //0x0000ab90 .quad -7572876210711016927 - 0x55, 0x22, 0xc7, 0x53, 0xed, 0xdc, 0xc7, 0xd9, //0x0000ab98 .quad -2753989735242849707 - 0x54, 0x2e, 0xda, 0x77, 0x41, 0xd6, 0x50, 0x7e, //0x0000aba0 .quad 9102010423587778132 - 0x75, 0x75, 0x5c, 0x54, 0x14, 0xea, 0x1c, 0x88, //0x0000aba8 .quad -8638772612167862923 - 0xe9, 0xb9, 0xd0, 0xd5, 0xd1, 0x0b, 0xe5, 0xdd, //0x0000abb0 .quad -2457545025797441047 - 0xd2, 0x92, 0x73, 0x69, 0x99, 0x24, 0x24, 0xaa, //0x0000abb8 .quad -6186779746782440750 - 0x64, 0xe8, 0x44, 0x4b, 0xc6, 0x4e, 0x5e, 0x95, //0x0000abc0 .quad -7683617300674189212 - 0x87, 0x77, 0xd0, 0xc3, 0xbf, 0x2d, 0xad, 0xd4, //0x0000abc8 .quad -3121788665050663033 - 0x3e, 0x11, 0x0b, 0xef, 0x3b, 0xf1, 0x5a, 0xbd, //0x0000abd0 .quad -4802260812921368258 - 0xb4, 0x4a, 0x62, 0xda, 0x97, 0x3c, 0xec, 0x84, //0x0000abd8 .quad -8868646943297746252 - 0x8e, 0xd5, 0xcd, 0xea, 0x8a, 0xad, 0xb1, 0xec, //0x0000abe0 .quad -1391139997724322418 - 0x61, 0xdd, 0xfa, 0xd0, 0xbd, 0x4b, 0x27, 0xa6, //0x0000abe8 .quad -6474122660694794911 - 0xf2, 0x4a, 0x81, 0xa5, 0xed, 0x18, 0xde, 0x67, //0x0000abf0 .quad 7484447039699372786 - 0xba, 0x94, 0x39, 0x45, 0xad, 0x1e, 0xb1, 0xcf, //0x0000abf8 .quad -3480967307441105734 - 0xd7, 0xce, 0x70, 0x87, 0x94, 0xcf, 0xea, 0x80, //0x0000ac00 .quad -9157278655470055721 - 0xf4, 0xfc, 0x43, 0x4b, 0x2c, 0xb3, 0xce, 0x81, //0x0000ac08 .quad -9093133594791772940 - 0x8d, 0x02, 0x4d, 0xa9, 0x79, 0x83, 0x25, 0xa1, //0x0000ac10 .quad -6834912300910181747 - 0x31, 0xfc, 0x14, 0x5e, 0xf7, 0x5f, 0x42, 0xa2, //0x0000ac18 .quad -6754730975062328271 - 0x30, 0x43, 0xa0, 0x13, 0x58, 0xe4, 0x6e, 0x09, //0x0000ac20 .quad 679731660717048624 - 0x3e, 0x3b, 0x9a, 0x35, 0xf5, 0xf7, 0xd2, 0xca, //0x0000ac28 .quad -3831727700400522434 - 0xfc, 0x53, 0x88, 0x18, 0x6e, 0x9d, 0xca, 0x8b, //0x0000ac30 .quad -8373707460958465028 - 0x0d, 0xca, 0x00, 0x83, 0xf2, 0xb5, 0x87, 0xfd, //0x0000ac38 .quad -177973607073265139 - 0x7d, 0x34, 0x55, 0xcf, 0x64, 0xa2, 0x5e, 0x77, //0x0000ac40 .quad 8601490892183123069 - 0x48, 0x7e, 0xe0, 0x91, 0xb7, 0xd1, 0x74, 0x9e, //0x0000ac48 .quad -7028762532061872568 - 0x9d, 0x81, 0x2a, 0x03, 0xfe, 0x4a, 0x36, 0x95, //0x0000ac50 .quad -7694880458480647779 - 0xda, 0x9d, 0x58, 0x76, 0x25, 0x06, 0x12, 0xc6, //0x0000ac58 .quad -4174267146649952806 - 0x04, 0x22, 0xf5, 0x83, 0xbd, 0xdd, 0x83, 0x3a, //0x0000ac60 .quad 4216457482181353988 - 0x51, 0xc5, 0xee, 0xd3, 0xae, 0x87, 0x96, 0xf7, //0x0000ac68 .quad -606147914885053103 - 0x42, 0x35, 0x79, 0x72, 0x96, 0x6a, 0x92, 0xc4, //0x0000ac70 .quad -4282243101277735614 - 0x52, 0x3b, 0x75, 0x44, 0xcd, 0x14, 0xbe, 0x9a, //0x0000ac78 .quad -7296371474444240046 - 0x93, 0x82, 0x17, 0x0f, 0x3c, 0x05, 0xb7, 0x75, //0x0000ac80 .quad 8482254178684994195 - 0x27, 0x8a, 0x92, 0x95, 0x00, 0x9a, 0x6d, 0xc1, //0x0000ac88 .quad -4508778324627912153 - 0x38, 0x63, 0xdd, 0x12, 0x8b, 0xc6, 0x24, 0x53, //0x0000ac90 .quad 5991131704928854840 - 0xb1, 0x2c, 0xf7, 0xba, 0x80, 0x00, 0xc9, 0xf1, //0x0000ac98 .quad -1024286887357502287 - 0x03, 0x5e, 0xca, 0xeb, 0x16, 0xfc, 0xf6, 0xd3, //0x0000aca0 .quad -3173071712060547581 - 0xee, 0x7b, 0xda, 0x74, 0x50, 0xa0, 0x1d, 0x97, //0x0000aca8 .quad -7557708332239520786 - 0x84, 0xf5, 0xbc, 0xa6, 0x1c, 0xbb, 0xf4, 0x88, //0x0000acb0 .quad -8578025658503072380 - 0xea, 0x1a, 0x11, 0x92, 0x64, 0x08, 0xe5, 0xbc, //0x0000acb8 .quad -4835449396872013078 - 0xe5, 0x32, 0x6c, 0xd0, 0xe3, 0xe9, 0x31, 0x2b, //0x0000acc0 .quad 3112525982153323237 - 0xa5, 0x61, 0x95, 0xb6, 0x7d, 0x4a, 0x1e, 0xec, //0x0000acc8 .quad -1432625727662628443 - 0xcf, 0x9f, 0x43, 0x62, 0x2e, 0x32, 0xff, 0x3a, //0x0000acd0 .quad 4251171748059520975 - 0x07, 0x5d, 0x1d, 0x92, 0x8e, 0xee, 0x92, 0x93, //0x0000acd8 .quad -7812920107430224633 - 0xc2, 0x87, 0xd4, 0xfa, 0xb9, 0xfe, 0xbe, 0x09, //0x0000ace0 .quad 702278666647013314 - 0x49, 0xb4, 0xa4, 0x36, 0x32, 0xaa, 0x77, 0xb8, //0x0000ace8 .quad -5154464115860392887 - 0xb3, 0xa9, 0x89, 0x79, 0x68, 0xbe, 0x2e, 0x4c, //0x0000acf0 .quad 5489534351736154547 - 0x5b, 0xe1, 0x4d, 0xc4, 0xbe, 0x94, 0x95, 0xe6, //0x0000acf8 .quad -1831394126398103205 - 0x10, 0x0a, 0xf6, 0x4b, 0x01, 0x37, 0x9d, 0x0f, //0x0000ad00 .quad 1125115960621402640 - 0xd9, 0xac, 0xb0, 0x3a, 0xf7, 0x7c, 0x1d, 0x90, //0x0000ad08 .quad -8062150356639896359 - 0x94, 0x8c, 0xf3, 0x9e, 0xc1, 0x84, 0x84, 0x53, //0x0000ad10 .quad 6018080969204141204 - 0x0f, 0xd8, 0x5c, 0x09, 0x35, 0xdc, 0x24, 0xb4, //0x0000ad18 .quad -5466001927372482545 - 0xb9, 0x6f, 0xb0, 0x06, 0xf2, 0xa5, 0x65, 0x28, //0x0000ad20 .quad 2910915193077788601 - 0x13, 0x0e, 0xb4, 0x4b, 0x42, 0x13, 0x2e, 0xe1, //0x0000ad28 .quad -2220816390788215277 - 0xd3, 0x45, 0x2e, 0x44, 0xb7, 0x87, 0x3f, 0xf9, //0x0000ad30 .quad -486521013540076077 - 0xcb, 0x88, 0x50, 0x6f, 0x09, 0xcc, 0xbc, 0x8c, //0x0000ad38 .quad -8305539271883716405 - 0x48, 0xd7, 0x39, 0x15, 0xa5, 0x69, 0x8f, 0xf7, //0x0000ad40 .quad -608151266925095096 - 0xfe, 0xaa, 0x24, 0xcb, 0x0b, 0xff, 0xeb, 0xaf, //0x0000ad48 .quad -5770238071427257602 - 0x1b, 0x4d, 0x88, 0x5a, 0x0e, 0x44, 0x73, 0xb5, //0x0000ad50 .quad -5371875102083756773 - 0xbe, 0xd5, 0xed, 0xbd, 0xce, 0xfe, 0xe6, 0xdb, //0x0000ad58 .quad -2601111570856684098 - 0x30, 0x30, 0x95, 0xf8, 0x88, 0x0a, 0x68, 0x31, //0x0000ad60 .quad 3560107088838733872 - 0x97, 0xa5, 0xb4, 0x36, 0x41, 0x5f, 0x70, 0x89, //0x0000ad68 .quad -8543223759426509417 - 0x3d, 0x7c, 0xba, 0x36, 0x2b, 0x0d, 0xc2, 0xfd, //0x0000ad70 .quad -161552157378970563 - 0xfc, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x0000ad78 .quad -6067343680855748868 - 0x4c, 0x1b, 0x69, 0x04, 0x76, 0x90, 0x32, 0x3d, //0x0000ad80 .quad 4409745821703674700 - 0xbc, 0x42, 0x7a, 0xe5, 0xd5, 0x94, 0xbf, 0xd6, //0x0000ad88 .quad -2972493582642298180 - 0x0f, 0xb1, 0xc1, 0xc2, 0x49, 0x9a, 0x3f, 0xa6, //0x0000ad90 .quad -6467280898289979121 - 0xb5, 0x69, 0x6c, 0xaf, 0x05, 0xbd, 0x37, 0x86, //0x0000ad98 .quad -8775337516792518219 - 0x53, 0x1d, 0x72, 0x33, 0xdc, 0x80, 0xcf, 0x0f, //0x0000ada0 .quad 1139270913992301907 - 0x23, 0x84, 0x47, 0x1b, 0x47, 0xac, 0xc5, 0xa7, //0x0000ada8 .quad -6357485877563259869 - 0xa8, 0xa4, 0x4e, 0x40, 0x13, 0x61, 0xc3, 0xd3, //0x0000adb0 .quad -3187597375937010520 - 0x2b, 0x65, 0x19, 0xe2, 0x58, 0x17, 0xb7, 0xd1, //0x0000adb8 .quad -3335171328526686933 - 0xe9, 0x26, 0x31, 0x08, 0xac, 0x1c, 0x5a, 0x64, //0x0000adc0 .quad 7231123676894144233 - 0x3b, 0xdf, 0x4f, 0x8d, 0x97, 0x6e, 0x12, 0x83, //0x0000adc8 .quad -9002011107970261189 - 0xa3, 0x70, 0x3d, 0x0a, 0xd7, 0xa3, 0x70, 0x3d, //0x0000add0 .quad 4427218577690292387 - 0x0a, 0xd7, 0xa3, 0x70, 0x3d, 0x0a, 0xd7, 0xa3, //0x0000add8 .quad -6640827866535438582 - 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x0000ade0 QUAD $0xcccccccccccccccc; QUAD $0xcccccccccccccccc // .space 16, '\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000adf0 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x0000adf8 .quad -9223372036854775808 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ae00 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, //0x0000ae08 .quad -6917529027641081856 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ae10 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc8, //0x0000ae18 .quad -4035225266123964416 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ae20 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, //0x0000ae28 .quad -432345564227567616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ae30 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x9c, //0x0000ae38 .quad -7187745005283311616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ae40 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0xc3, //0x0000ae48 .quad -4372995238176751616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ae50 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0xf4, //0x0000ae58 .quad -854558029293551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ae60 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x96, 0x98, //0x0000ae68 .quad -7451627795949551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ae70 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xbc, 0xbe, //0x0000ae78 .quad -4702848726509551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ae80 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x6b, 0xee, //0x0000ae88 .quad -1266874889709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ae90 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0xf9, 0x02, 0x95, //0x0000ae98 .quad -7709325833709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000aea0 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x40, 0xb7, 0x43, 0xba, //0x0000aea8 .quad -5024971273709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000aeb0 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x10, 0xa5, 0xd4, 0xe8, //0x0000aeb8 .quad -1669528073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000aec0 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x2a, 0xe7, 0x84, 0x91, //0x0000aec8 .quad -7960984073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000aed0 .quad 0 - 0x00, 0x00, 0x00, 0x80, 0xf4, 0x20, 0xe6, 0xb5, //0x0000aed8 .quad -5339544073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000aee0 .quad 0 - 0x00, 0x00, 0x00, 0xa0, 0x31, 0xa9, 0x5f, 0xe3, //0x0000aee8 .quad -2062744073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000aef0 .quad 0 - 0x00, 0x00, 0x00, 0x04, 0xbf, 0xc9, 0x1b, 0x8e, //0x0000aef8 .quad -8206744073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000af00 .quad 0 - 0x00, 0x00, 0x00, 0xc5, 0x2e, 0xbc, 0xa2, 0xb1, //0x0000af08 .quad -5646744073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000af10 .quad 0 - 0x00, 0x00, 0x40, 0x76, 0x3a, 0x6b, 0x0b, 0xde, //0x0000af18 .quad -2446744073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000af20 .quad 0 - 0x00, 0x00, 0xe8, 0x89, 0x04, 0x23, 0xc7, 0x8a, //0x0000af28 .quad -8446744073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000af30 .quad 0 - 0x00, 0x00, 0x62, 0xac, 0xc5, 0xeb, 0x78, 0xad, //0x0000af38 .quad -5946744073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000af40 .quad 0 - 0x00, 0x80, 0x7a, 0x17, 0xb7, 0x26, 0xd7, 0xd8, //0x0000af48 .quad -2821744073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000af50 .quad 0 - 0x00, 0x90, 0xac, 0x6e, 0x32, 0x78, 0x86, 0x87, //0x0000af58 .quad -8681119073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000af60 .quad 0 - 0x00, 0xb4, 0x57, 0x0a, 0x3f, 0x16, 0x68, 0xa9, //0x0000af68 .quad -6239712823709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000af70 .quad 0 - 0x00, 0xa1, 0xed, 0xcc, 0xce, 0x1b, 0xc2, 0xd3, //0x0000af78 .quad -3187955011209551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000af80 .quad 0 - 0xa0, 0x84, 0x14, 0x40, 0x61, 0x51, 0x59, 0x84, //0x0000af88 .quad -8910000909647051616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000af90 .quad 0 - 0xc8, 0xa5, 0x19, 0x90, 0xb9, 0xa5, 0x6f, 0xa5, //0x0000af98 .quad -6525815118631426616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000afa0 .quad 0 - 0x3a, 0x0f, 0x20, 0xf4, 0x27, 0x8f, 0xcb, 0xce, //0x0000afa8 .quad -3545582879861895366 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, //0x0000afb0 .quad 4611686018427387904 - 0x84, 0x09, 0x94, 0xf8, 0x78, 0x39, 0x3f, 0x81, //0x0000afb8 .quad -9133518327554766460 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, //0x0000afc0 .quad 5764607523034234880 - 0xe5, 0x0b, 0xb9, 0x36, 0xd7, 0x07, 0x8f, 0xa1, //0x0000afc8 .quad -6805211891016070171 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa4, //0x0000afd0 .quad -6629298651489370112 - 0xde, 0x4e, 0x67, 0x04, 0xcd, 0xc9, 0xf2, 0xc9, //0x0000afd8 .quad -3894828845342699810 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4d, //0x0000afe0 .quad 5548434740920451072 - 0x96, 0x22, 0x81, 0x45, 0x40, 0x7c, 0x6f, 0xfc, //0x0000afe8 .quad -256850038250986858 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xf0, //0x0000aff0 .quad -1143914305352105984 - 0x9d, 0xb5, 0x70, 0x2b, 0xa8, 0xad, 0xc5, 0x9d, //0x0000aff8 .quad -7078060301547948643 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x6c, //0x0000b000 .quad 7793479155164643328 - 0x05, 0xe3, 0x4c, 0x36, 0x12, 0x19, 0x37, 0xc5, //0x0000b008 .quad -4235889358507547899 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0xc7, //0x0000b010 .quad -4093209111326359552 - 0xc6, 0x1b, 0xe0, 0xc3, 0x56, 0xdf, 0x84, 0xf6, //0x0000b018 .quad -683175679707046970 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7f, 0x3c, //0x0000b020 .quad 4359273333062107136 - 0x5c, 0x11, 0x6c, 0x3a, 0x96, 0x0b, 0x13, 0x9a, //0x0000b028 .quad -7344513827457986212 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x9f, 0x4b, //0x0000b030 .quad 5449091666327633920 - 0xb3, 0x15, 0x07, 0xc9, 0x7b, 0xce, 0x97, 0xc0, //0x0000b038 .quad -4568956265895094861 - 0x00, 0x00, 0x00, 0x00, 0x00, 0xd4, 0x86, 0x1e, //0x0000b040 .quad 2199678564482154496 - 0x20, 0xdb, 0x48, 0xbb, 0x1a, 0xc2, 0xbd, 0xf0, //0x0000b048 .quad -1099509313941480672 - 0x00, 0x00, 0x00, 0x00, 0x80, 0x44, 0x14, 0x13, //0x0000b050 .quad 1374799102801346560 - 0xf4, 0x88, 0x0d, 0xb5, 0x50, 0x99, 0x76, 0x96, //0x0000b058 .quad -7604722348854507276 - 0x00, 0x00, 0x00, 0x00, 0xa0, 0x55, 0xd9, 0x17, //0x0000b060 .quad 1718498878501683200 - 0x31, 0xeb, 0x50, 0xe2, 0xa4, 0x3f, 0x14, 0xbc, //0x0000b068 .quad -4894216917640746191 - 0x00, 0x00, 0x00, 0x00, 0x08, 0xab, 0xcf, 0x5d, //0x0000b070 .quad 6759809616554491904 - 0xfd, 0x25, 0xe5, 0x1a, 0x8e, 0x4f, 0x19, 0xeb, //0x0000b078 .quad -1506085128623544835 - 0x00, 0x00, 0x00, 0x00, 0xe5, 0xca, 0xa1, 0x5a, //0x0000b080 .quad 6530724019560251392 - 0xbe, 0x37, 0xcf, 0xd0, 0xb8, 0xd1, 0xef, 0x92, //0x0000b088 .quad -7858832233030797378 - 0x00, 0x00, 0x00, 0x40, 0x9e, 0x3d, 0x4a, 0xf1, //0x0000b090 .quad -1059967012404461568 - 0xad, 0x05, 0x03, 0x05, 0x27, 0xc6, 0xab, 0xb7, //0x0000b098 .quad -5211854272861108819 - 0x00, 0x00, 0x00, 0xd0, 0x05, 0xcd, 0x9c, 0x6d, //0x0000b0a0 .quad 7898413271349198848 - 0x19, 0xc7, 0x43, 0xc6, 0xb0, 0xb7, 0x96, 0xe5, //0x0000b0a8 .quad -1903131822648998119 - 0x00, 0x00, 0x00, 0xa2, 0x23, 0x00, 0x82, 0xe4, //0x0000b0b0 .quad -1981020733047832576 - 0x6f, 0x5c, 0xea, 0x7b, 0xce, 0x32, 0x7e, 0x8f, //0x0000b0b8 .quad -8106986416796705681 - 0x00, 0x00, 0x80, 0x8a, 0x2c, 0x80, 0xa2, 0xdd, //0x0000b0c0 .quad -2476275916309790720 - 0x8b, 0xf3, 0xe4, 0x1a, 0x82, 0xbf, 0x5d, 0xb3, //0x0000b0c8 .quad -5522047002568494197 - 0x00, 0x00, 0x20, 0xad, 0x37, 0x20, 0x0b, 0xd5, //0x0000b0d0 .quad -3095344895387238400 - 0x6e, 0x30, 0x9e, 0xa1, 0x62, 0x2f, 0x35, 0xe0, //0x0000b0d8 .quad -2290872734783229842 - 0x00, 0x00, 0x34, 0xcc, 0x22, 0xf4, 0x26, 0x45, //0x0000b0e0 .quad 4982938468024057856 - 0x45, 0xde, 0x02, 0xa5, 0x9d, 0x3d, 0x21, 0x8c, //0x0000b0e8 .quad -8349324486880600507 - 0x00, 0x00, 0x41, 0x7f, 0x2b, 0xb1, 0x70, 0x96, //0x0000b0f0 .quad -7606384970252091392 - 0xd6, 0x95, 0x43, 0x0e, 0x05, 0x8d, 0x29, 0xaf, //0x0000b0f8 .quad -5824969590173362730 - 0x00, 0x40, 0x11, 0x5f, 0x76, 0xdd, 0x0c, 0x3c, //0x0000b100 .quad 4327076842467049472 - 0x4c, 0x7b, 0xd4, 0x51, 0x46, 0xf0, 0xf3, 0xda, //0x0000b108 .quad -2669525969289315508 - 0x00, 0xc8, 0x6a, 0xfb, 0x69, 0x0a, 0x88, 0xa5, //0x0000b110 .quad -6518949010312869888 - 0x0f, 0xcd, 0x24, 0xf3, 0x2b, 0x76, 0xd8, 0x88, //0x0000b118 .quad -8585982758446904049 - 0x00, 0x7a, 0x45, 0x7a, 0x04, 0x0d, 0xea, 0x8e, //0x0000b120 .quad -8148686262891087360 - 0x53, 0x00, 0xee, 0xef, 0xb6, 0x93, 0x0e, 0xab, //0x0000b128 .quad -6120792429631242157 - 0x80, 0xd8, 0xd6, 0x98, 0x45, 0x90, 0xa4, 0x72, //0x0000b130 .quad 8260886245095692416 - 0x68, 0x80, 0xe9, 0xab, 0xa4, 0x38, 0xd2, 0xd5, //0x0000b138 .quad -3039304518611664792 - 0x50, 0x47, 0x86, 0x7f, 0x2b, 0xda, 0xa6, 0x47, //0x0000b140 .quad 5163053903184807760 - 0x41, 0xf0, 0x71, 0xeb, 0x66, 0x63, 0xa3, 0x85, //0x0000b148 .quad -8817094351773372351 - 0x24, 0xd9, 0x67, 0x5f, 0xb6, 0x90, 0x90, 0x99, //0x0000b150 .quad -7381240676301154012 - 0x51, 0x6c, 0x4e, 0xa6, 0x40, 0x3c, 0x0c, 0xa7, //0x0000b158 .quad -6409681921289327535 - 0x6d, 0xcf, 0x41, 0xf7, 0xe3, 0xb4, 0xf4, 0xff, //0x0000b160 .quad -3178808521666707 - 0x65, 0x07, 0xe2, 0xcf, 0x50, 0x4b, 0xcf, 0xd0, //0x0000b168 .quad -3400416383184271515 - 0xa4, 0x21, 0x89, 0x7a, 0x0e, 0xf1, 0xf8, 0xbf, //0x0000b170 .quad -4613672773753429596 - 0x9f, 0x44, 0xed, 0x81, 0x12, 0x8f, 0x81, 0x82, //0x0000b178 .quad -9042789267131251553 - 0x0d, 0x6a, 0x2b, 0x19, 0x52, 0x2d, 0xf7, 0xaf, //0x0000b180 .quad -5767090967191786995 - 0xc7, 0x95, 0x68, 0x22, 0xd7, 0xf2, 0x21, 0xa3, //0x0000b188 .quad -6691800565486676537 - 0x90, 0x44, 0x76, 0x9f, 0xa6, 0xf8, 0xf4, 0x9b, //0x0000b190 .quad -7208863708989733744 - 0x39, 0xbb, 0x02, 0xeb, 0x8c, 0x6f, 0xea, 0xcb, //0x0000b198 .quad -3753064688430957767 - 0xb4, 0xd5, 0x53, 0x47, 0xd0, 0x36, 0xf2, 0x02, //0x0000b1a0 .quad 212292400617608628 - 0x08, 0x6a, 0xc3, 0x25, 0x70, 0x0b, 0xe5, 0xfe, //0x0000b1a8 .quad -79644842111309304 - 0x90, 0x65, 0x94, 0x2c, 0x42, 0x62, 0xd7, 0x01, //0x0000b1b0 .quad 132682750386005392 - 0x45, 0x22, 0x9a, 0x17, 0x26, 0x27, 0x4f, 0x9f, //0x0000b1b8 .quad -6967307053960650171 - 0xf5, 0x7e, 0xb9, 0xb7, 0xd2, 0x3a, 0x4d, 0x42, //0x0000b1c0 .quad 4777539456409894645 - 0xd6, 0xaa, 0x80, 0x9d, 0xef, 0xf0, 0x22, 0xc7, //0x0000b1c8 .quad -4097447799023424810 - 0xb2, 0xde, 0xa7, 0x65, 0x87, 0x89, 0xe0, 0xd2, //0x0000b1d0 .quad -3251447716342407502 - 0x8b, 0xd5, 0xe0, 0x84, 0x2b, 0xad, 0xeb, 0xf8, //0x0000b1d8 .quad -510123730351893109 - 0x2f, 0xeb, 0x88, 0x9f, 0xf4, 0x55, 0xcc, 0x63, //0x0000b1e0 .quad 7191217214140771119 - 0x77, 0x85, 0x0c, 0x33, 0x3b, 0x4c, 0x93, 0x9b, //0x0000b1e8 .quad -7236356359111015049 - 0xfb, 0x25, 0x6b, 0xc7, 0x71, 0x6b, 0xbf, 0x3c, //0x0000b1f0 .quad 4377335499248575995 - 0xd5, 0xa6, 0xcf, 0xff, 0x49, 0x1f, 0x78, 0xc2, //0x0000b1f8 .quad -4433759430461380907 - 0x7a, 0xef, 0x45, 0x39, 0x4e, 0x46, 0xef, 0x8b, //0x0000b200 .quad -8363388681221443718 - 0x8a, 0x90, 0xc3, 0x7f, 0x1c, 0x27, 0x16, 0xf3, //0x0000b208 .quad -930513269649338230 - 0xac, 0xb5, 0xcb, 0xe3, 0xf0, 0x8b, 0x75, 0x97, //0x0000b210 .quad -7532960934977096276 - 0x56, 0x3a, 0xda, 0xcf, 0x71, 0xd8, 0xed, 0x97, //0x0000b218 .quad -7499099821171918250 - 0x17, 0xa3, 0xbe, 0x1c, 0xed, 0xee, 0x52, 0x3d, //0x0000b220 .quad 4418856886560793367 - 0xec, 0xc8, 0xd0, 0x43, 0x8e, 0x4e, 0xe9, 0xbd, //0x0000b228 .quad -4762188758037509908 - 0xdd, 0x4b, 0xee, 0x63, 0xa8, 0xaa, 0xa7, 0x4c, //0x0000b230 .quad 5523571108200991709 - 0x27, 0xfb, 0xc4, 0xd4, 0x31, 0xa2, 0x63, 0xed, //0x0000b238 .quad -1341049929119499481 - 0x6a, 0xef, 0x74, 0x3e, 0xa9, 0xca, 0xe8, 0x8f, //0x0000b240 .quad -8076983103442849942 - 0xf8, 0x1c, 0xfb, 0x24, 0x5f, 0x45, 0x5e, 0x94, //0x0000b248 .quad -7755685233340769032 - 0x44, 0x2b, 0x12, 0x8e, 0x53, 0xfd, 0xe2, 0xb3, //0x0000b250 .quad -5484542860876174524 - 0x36, 0xe4, 0x39, 0xee, 0xb6, 0xd6, 0x75, 0xb9, //0x0000b258 .quad -5082920523248573386 - 0x16, 0xb6, 0x96, 0x71, 0xa8, 0xbc, 0xdb, 0x60, //0x0000b260 .quad 6979379479186945558 - 0x44, 0x5d, 0xc8, 0xa9, 0x64, 0x4c, 0xd3, 0xe7, //0x0000b268 .quad -1741964635633328828 - 0xcd, 0x31, 0xfe, 0x46, 0xe9, 0x55, 0x89, 0xbc, //0x0000b270 .quad -4861259862362934835 - 0x4a, 0x3a, 0x1d, 0xea, 0xbe, 0x0f, 0xe4, 0x90, //0x0000b278 .quad -8006256924911912374 - 0x41, 0xbe, 0xbd, 0x98, 0x63, 0xab, 0xab, 0x6b, //0x0000b280 .quad 7758483227328495169 - 0xdd, 0x88, 0xa4, 0xa4, 0xae, 0x13, 0x1d, 0xb5, //0x0000b288 .quad -5396135137712502563 - 0xd1, 0x2d, 0xed, 0x7e, 0x3c, 0x96, 0x96, 0xc6, //0x0000b290 .quad -4136954021121544751 - 0x14, 0xab, 0xcd, 0x4d, 0x9a, 0x58, 0x64, 0xe2, //0x0000b298 .quad -2133482903713240300 - 0xa2, 0x3c, 0x54, 0xcf, 0xe5, 0x1d, 0x1e, 0xfc, //0x0000b2a0 .quad -279753253987271518 - 0xec, 0x8a, 0xa0, 0x70, 0x60, 0xb7, 0x7e, 0x8d, //0x0000b2a8 .quad -8250955842461857044 - 0xcb, 0x4b, 0x29, 0x43, 0x5f, 0xa5, 0x25, 0x3b, //0x0000b2b0 .quad 4261994450943298507 - 0xa8, 0xad, 0xc8, 0x8c, 0x38, 0x65, 0xde, 0xb0, //0x0000b2b8 .quad -5702008784649933400 - 0xbe, 0x9e, 0xf3, 0x13, 0xb7, 0x0e, 0xef, 0x49, //0x0000b2c0 .quad 5327493063679123134 - 0x12, 0xd9, 0xfa, 0xaf, 0x86, 0xfe, 0x15, 0xdd, //0x0000b2c8 .quad -2515824962385028846 - 0x37, 0x43, 0x78, 0x6c, 0x32, 0x69, 0x35, 0x6e, //0x0000b2d0 .quad 7941369183226839863 - 0xab, 0xc7, 0xfc, 0x2d, 0x14, 0xbf, 0x2d, 0x8a, //0x0000b2d8 .quad -8489919629131724885 - 0x04, 0x54, 0x96, 0x07, 0x7f, 0xc3, 0xc2, 0x49, //0x0000b2e0 .quad 5315025460606161924 - 0x96, 0xf9, 0x7b, 0x39, 0xd9, 0x2e, 0xb9, 0xac, //0x0000b2e8 .quad -6000713517987268202 - 0x06, 0xe9, 0x7b, 0xc9, 0x5e, 0x74, 0x33, 0xdc, //0x0000b2f0 .quad -2579590211097073402 - 0xfb, 0xf7, 0xda, 0x87, 0x8f, 0x7a, 0xe7, 0xd7, //0x0000b2f8 .quad -2889205879056697349 - 0xa3, 0x71, 0xed, 0x3d, 0xbb, 0x28, 0xa0, 0x69, //0x0000b300 .quad 7611128154919104931 - 0xfd, 0xda, 0xe8, 0xb4, 0x99, 0xac, 0xf0, 0x86, //0x0000b308 .quad -8723282702051517699 - 0x0c, 0xce, 0x68, 0x0d, 0xea, 0x32, 0x08, 0xc4, //0x0000b310 .quad -4321147861633282548 - 0xbc, 0x11, 0x23, 0x22, 0xc0, 0xd7, 0xac, 0xa8, //0x0000b318 .quad -6292417359137009220 - 0x90, 0x01, 0xc3, 0x90, 0xa4, 0x3f, 0x0a, 0xf5, //0x0000b320 .quad -789748808614215280 - 0x2b, 0xd6, 0xab, 0x2a, 0xb0, 0x0d, 0xd8, 0xd2, //0x0000b328 .quad -3253835680493873621 - 0xfa, 0xe0, 0x79, 0xda, 0xc6, 0x67, 0x26, 0x79, //0x0000b330 .quad 8729779031470891258 - 0xdb, 0x65, 0xab, 0x1a, 0x8e, 0x08, 0xc7, 0x83, //0x0000b338 .quad -8951176327949752869 - 0x38, 0x59, 0x18, 0x91, 0xb8, 0x01, 0x70, 0x57, //0x0000b340 .quad 6300537770911226168 - 0x52, 0x3f, 0x56, 0xa1, 0xb1, 0xca, 0xb8, 0xa4, //0x0000b348 .quad -6577284391509803182 - 0x86, 0x6f, 0x5e, 0xb5, 0x26, 0x02, 0x4c, 0xed, //0x0000b350 .quad -1347699823215743098 - 0x26, 0xcf, 0xab, 0x09, 0x5e, 0xfd, 0xe6, 0xcd, //0x0000b358 .quad -3609919470959866074 - 0xb4, 0x05, 0x5b, 0x31, 0x58, 0x81, 0x4f, 0x54, //0x0000b360 .quad 6075216638131242420 - 0x78, 0x61, 0x0b, 0xc6, 0x5a, 0x5e, 0xb0, 0x80, //0x0000b368 .quad -9173728696990998152 - 0x21, 0xc7, 0xb1, 0x3d, 0xae, 0x61, 0x63, 0x69, //0x0000b370 .quad 7594020797664053025 - 0xd6, 0x39, 0x8e, 0x77, 0xf1, 0x75, 0xdc, 0xa0, //0x0000b378 .quad -6855474852811359786 - 0xe9, 0x38, 0x1e, 0xcd, 0x19, 0x3a, 0xbc, 0x03, //0x0000b380 .quad 269153960225290473 - 0x4c, 0xc8, 0x71, 0xd5, 0x6d, 0x93, 0x13, 0xc9, //0x0000b388 .quad -3957657547586811828 - 0x23, 0xc7, 0x65, 0x40, 0xa0, 0x48, 0xab, 0x04, //0x0000b390 .quad 336442450281613091 - 0x5f, 0x3a, 0xce, 0x4a, 0x49, 0x78, 0x58, 0xfb, //0x0000b398 .quad -335385916056126881 - 0x76, 0x9c, 0x3f, 0x28, 0x64, 0x0d, 0xeb, 0x62, //0x0000b3a0 .quad 7127805559067090038 - 0x7b, 0xe4, 0xc0, 0xce, 0x2d, 0x4b, 0x17, 0x9d, //0x0000b3a8 .quad -7127145225176161157 - 0x94, 0x83, 0x4f, 0x32, 0xbd, 0xd0, 0xa5, 0x3b, //0x0000b3b0 .quad 4298070930406474644 - 0x9a, 0x1d, 0x71, 0x42, 0xf9, 0x1d, 0x5d, 0xc4, //0x0000b3b8 .quad -4297245513042813542 - 0x79, 0x64, 0xe3, 0x7e, 0xec, 0x44, 0x8f, 0xca, //0x0000b3c0 .quad -3850783373846682503 - 0x00, 0x65, 0x0d, 0x93, 0x77, 0x65, 0x74, 0xf5, //0x0000b3c8 .quad -759870872876129024 - 0xcb, 0x1e, 0x4e, 0xcf, 0x13, 0x8b, 0x99, 0x7e, //0x0000b3d0 .quad 9122475437414293195 - 0x20, 0x5f, 0xe8, 0xbb, 0x6a, 0xbf, 0x68, 0x99, //0x0000b3d8 .quad -7392448323188662496 - 0x7e, 0xa6, 0x21, 0xc3, 0xd8, 0xed, 0x3f, 0x9e, //0x0000b3e0 .quad -7043649776941685122 - 0xe8, 0x76, 0xe2, 0x6a, 0x45, 0xef, 0xc2, 0xbf, //0x0000b3e8 .quad -4628874385558440216 - 0x1e, 0x10, 0xea, 0xf3, 0x4e, 0xe9, 0xcf, 0xc5, //0x0000b3f0 .quad -4192876202749718498 - 0xa2, 0x14, 0x9b, 0xc5, 0x16, 0xab, 0xb3, 0xef, //0x0000b3f8 .quad -1174406963520662366 - 0x12, 0x4a, 0x72, 0x58, 0xd1, 0xf1, 0xa1, 0xbb, //0x0000b400 .quad -4926390635932268014 - 0xe5, 0xec, 0x80, 0x3b, 0xee, 0x4a, 0xd0, 0x95, //0x0000b408 .quad -7651533379841495835 - 0x97, 0xdc, 0x8e, 0xae, 0x45, 0x6e, 0x8a, 0x2a, //0x0000b410 .quad 3065383741939440791 - 0x1f, 0x28, 0x61, 0xca, 0xa9, 0x5d, 0x44, 0xbb, //0x0000b418 .quad -4952730706374481889 - 0xbd, 0x93, 0x32, 0x1a, 0xd7, 0x09, 0x2d, 0xf5, //0x0000b420 .quad -779956341003086915 - 0x26, 0x72, 0xf9, 0x3c, 0x14, 0x75, 0x15, 0xea, //0x0000b428 .quad -1579227364540714458 - 0x56, 0x9c, 0x5f, 0x70, 0x26, 0x26, 0x3c, 0x59, //0x0000b430 .quad 6430056314514152534 - 0x58, 0xe7, 0x1b, 0xa6, 0x2c, 0x69, 0x4d, 0x92, //0x0000b438 .quad -7904546130479028392 - 0x6c, 0x83, 0x77, 0x0c, 0xb0, 0x2f, 0x8b, 0x6f, //0x0000b440 .quad 8037570393142690668 - 0x2e, 0xe1, 0xa2, 0xcf, 0x77, 0xc3, 0xe0, 0xb6, //0x0000b448 .quad -5268996644671397586 - 0x47, 0x64, 0x95, 0x0f, 0x9c, 0xfb, 0x6d, 0x0b, //0x0000b450 .quad 823590954573587527 - 0x7a, 0x99, 0x8b, 0xc3, 0x55, 0xf4, 0x98, 0xe4, //0x0000b458 .quad -1974559787411859078 - 0xac, 0x5e, 0xbd, 0x89, 0x41, 0xbd, 0x24, 0x47, //0x0000b460 .quad 5126430365035880108 - 0xec, 0x3f, 0x37, 0x9a, 0xb5, 0x98, 0xdf, 0x8e, //0x0000b468 .quad -8151628894773493780 - 0x57, 0xb6, 0x2c, 0xec, 0x91, 0xec, 0xed, 0x58, //0x0000b470 .quad 6408037956294850135 - 0xe7, 0x0f, 0xc5, 0x00, 0xe3, 0x7e, 0x97, 0xb2, //0x0000b478 .quad -5577850100039479321 - 0xed, 0xe3, 0x37, 0x67, 0xb6, 0x67, 0x29, 0x2f, //0x0000b480 .quad 3398361426941174765 - 0xe1, 0x53, 0xf6, 0xc0, 0x9b, 0x5e, 0x3d, 0xdf, //0x0000b488 .quad -2360626606621961247 - 0x74, 0xee, 0x82, 0x00, 0xd2, 0xe0, 0x79, 0xbd, //0x0000b490 .quad -4793553135802847628 - 0x6c, 0xf4, 0x99, 0x58, 0x21, 0x5b, 0x86, 0x8b, //0x0000b498 .quad -8392920656779807636 - 0x11, 0xaa, 0xa3, 0x80, 0x06, 0x59, 0xd8, 0xec, //0x0000b4a0 .quad -1380255401326171631 - 0x87, 0x71, 0xc0, 0xae, 0xe9, 0xf1, 0x67, 0xae, //0x0000b4a8 .quad -5879464802547371641 - 0x95, 0x94, 0xcc, 0x20, 0x48, 0x6f, 0x0e, 0xe8, //0x0000b4b0 .quad -1725319251657714539 - 0xe9, 0x8d, 0x70, 0x1a, 0x64, 0xee, 0x01, 0xda, //0x0000b4b8 .quad -2737644984756826647 - 0xdd, 0xdc, 0x7f, 0x14, 0x8d, 0x05, 0x09, 0x31, //0x0000b4c0 .quad 3533361486141316317 - 0xb2, 0x58, 0x86, 0x90, 0xfe, 0x34, 0x41, 0x88, //0x0000b4c8 .quad -8628557143114098510 - 0x15, 0xd4, 0x9f, 0x59, 0xf0, 0x46, 0x4b, 0xbd, //0x0000b4d0 .quad -4806670179178130411 - 0xde, 0xee, 0xa7, 0x34, 0x3e, 0x82, 0x51, 0xaa, //0x0000b4d8 .quad -6174010410465235234 - 0x1a, 0xc9, 0x07, 0x70, 0xac, 0x18, 0x9e, 0x6c, //0x0000b4e0 .quad 7826720331309500698 - 0x96, 0xea, 0xd1, 0xc1, 0xcd, 0xe2, 0xe5, 0xd4, //0x0000b4e8 .quad -3105826994654156138 - 0xb0, 0xdd, 0x04, 0xc6, 0x6b, 0xcf, 0xe2, 0x03, //0x0000b4f0 .quad 280014188641050032 - 0x9e, 0x32, 0x23, 0x99, 0xc0, 0xad, 0x0f, 0x85, //0x0000b4f8 .quad -8858670899299929442 - 0x1c, 0x15, 0x86, 0xb7, 0x46, 0x83, 0xdb, 0x84, //0x0000b500 .quad -8873354301053463268 - 0x45, 0xff, 0x6b, 0xbf, 0x30, 0x99, 0x53, 0xa6, //0x0000b508 .quad -6461652605697523899 - 0x63, 0x9a, 0x67, 0x65, 0x18, 0x64, 0x12, 0xe6, //0x0000b510 .quad -1868320839462053277 - 0x16, 0xff, 0x46, 0xef, 0x7c, 0x7f, 0xe8, 0xcf, //0x0000b518 .quad -3465379738694516970 - 0x7e, 0xc0, 0x60, 0x3f, 0x8f, 0x7e, 0xcb, 0x4f, //0x0000b520 .quad 5749828502977298558 - 0x6e, 0x5f, 0x8c, 0x15, 0xae, 0x4f, 0xf1, 0x81, //0x0000b528 .quad -9083391364325154962 - 0x9d, 0xf0, 0x38, 0x0f, 0x33, 0x5e, 0xbe, 0xe3, //0x0000b530 .quad -2036086408133152611 - 0x49, 0x77, 0xef, 0x9a, 0x99, 0xa3, 0x6d, 0xa2, //0x0000b538 .quad -6742553186979055799 - 0xc5, 0x2c, 0x07, 0xd3, 0xbf, 0xf5, 0xad, 0x5c, //0x0000b540 .quad 6678264026688335045 - 0x1c, 0x55, 0xab, 0x01, 0x80, 0x0c, 0x09, 0xcb, //0x0000b548 .quad -3816505465296431844 - 0xf6, 0xf7, 0xc8, 0xc7, 0x2f, 0x73, 0xd9, 0x73, //0x0000b550 .quad 8347830033360418806 - 0x63, 0x2a, 0x16, 0x02, 0xa0, 0x4f, 0xcb, 0xfd, //0x0000b558 .quad -158945813193151901 - 0xfa, 0x9a, 0xdd, 0xdc, 0xfd, 0xe7, 0x67, 0x28, //0x0000b560 .quad 2911550761636567802 - 0x7e, 0xda, 0x4d, 0x01, 0xc4, 0x11, 0x9f, 0x9e, //0x0000b568 .quad -7016870160886801794 - 0xb8, 0x01, 0x15, 0x54, 0xfd, 0xe1, 0x81, 0xb2, //0x0000b570 .quad -5583933584809066056 - 0x1d, 0x51, 0xa1, 0x01, 0x35, 0xd6, 0x46, 0xc6, //0x0000b578 .quad -4159401682681114339 - 0x26, 0x42, 0x1a, 0xa9, 0x7c, 0x5a, 0x22, 0x1f, //0x0000b580 .quad 2243455055843443238 - 0x65, 0xa5, 0x09, 0x42, 0xc2, 0x8b, 0xd8, 0xf7, //0x0000b588 .quad -587566084924005019 - 0x58, 0x69, 0xb0, 0xe9, 0x8d, 0x78, 0x75, 0x33, //0x0000b590 .quad 3708002419115845976 - 0x5f, 0x07, 0x46, 0x69, 0x59, 0x57, 0xe7, 0x9a, //0x0000b598 .quad -7284757830718584993 - 0xae, 0x83, 0x1c, 0x64, 0xb1, 0xd6, 0x52, 0x00, //0x0000b5a0 .quad 23317005467419566 - 0x37, 0x89, 0x97, 0xc3, 0x2f, 0x2d, 0xa1, 0xc1, //0x0000b5a8 .quad -4494261269970843337 - 0x9a, 0xa4, 0x23, 0xbd, 0x5d, 0x8c, 0x67, 0xc0, //0x0000b5b0 .quad -4582539761593113446 - 0x84, 0x6b, 0x7d, 0xb4, 0x7b, 0x78, 0x09, 0xf2, //0x0000b5b8 .quad -1006140569036166268 - 0xe0, 0x46, 0x36, 0x96, 0xba, 0xb7, 0x40, 0xf8, //0x0000b5c0 .quad -558244341782001952 - 0x32, 0x63, 0xce, 0x50, 0x4d, 0xeb, 0x45, 0x97, //0x0000b5c8 .quad -7546366883288685774 - 0x98, 0xd8, 0xc3, 0x3b, 0xa9, 0xe5, 0x50, 0xb6, //0x0000b5d0 .quad -5309491445654890344 - 0xff, 0xfb, 0x01, 0xa5, 0x20, 0x66, 0x17, 0xbd, //0x0000b5d8 .quad -4821272585683469313 - 0xbe, 0xce, 0xb4, 0x8a, 0x13, 0x1f, 0xe5, 0xa3, //0x0000b5e0 .quad -6636864307068612930 - 0xff, 0x7a, 0x42, 0xce, 0xa8, 0x3f, 0x5d, 0xec, //0x0000b5e8 .quad -1414904713676948737 - 0x37, 0x01, 0xb1, 0x36, 0x6c, 0x33, 0x6f, 0xc6, //0x0000b5f0 .quad -4148040191917883081 - 0xdf, 0x8c, 0xe9, 0x80, 0xc9, 0x47, 0xba, 0x93, //0x0000b5f8 .quad -7801844473689174817 - 0x84, 0x41, 0x5d, 0x44, 0x47, 0x00, 0x0b, 0xb8, //0x0000b600 .quad -5185050239897353852 - 0x17, 0xf0, 0x23, 0xe1, 0xbb, 0xd9, 0xa8, 0xb8, //0x0000b608 .quad -5140619573684080617 - 0xe5, 0x91, 0x74, 0x15, 0x59, 0xc0, 0x0d, 0xa6, //0x0000b610 .quad -6481312799871692315 - 0x1d, 0xec, 0x6c, 0xd9, 0x2a, 0x10, 0xd3, 0xe6, //0x0000b618 .quad -1814088448677712867 - 0x2f, 0xdb, 0x68, 0xad, 0x37, 0x98, 0xc8, 0x87, //0x0000b620 .quad -8662506518347195601 - 0x92, 0x13, 0xe4, 0xc7, 0x1a, 0xea, 0x43, 0x90, //0x0000b628 .quad -8051334308064652398 - 0xfb, 0x11, 0xc3, 0x98, 0x45, 0xbe, 0xba, 0x29, //0x0000b630 .quad 3006924907348169211 - 0x77, 0x18, 0xdd, 0x79, 0xa1, 0xe4, 0x54, 0xb4, //0x0000b638 .quad -5452481866653427593 - 0x7a, 0xd6, 0xf3, 0xfe, 0xd6, 0x6d, 0x29, 0xf4, //0x0000b640 .quad -853029884242176390 - 0x94, 0x5e, 0x54, 0xd8, 0xc9, 0x1d, 0x6a, 0xe1, //0x0000b648 .quad -2203916314889396588 - 0x0c, 0x66, 0x58, 0x5f, 0xa6, 0xe4, 0x99, 0x18, //0x0000b650 .quad 1772699331562333708 - 0x1d, 0xbb, 0x34, 0x27, 0x9e, 0x52, 0xe2, 0x8c, //0x0000b658 .quad -8294976724446954723 - 0x8f, 0x7f, 0x2e, 0xf7, 0xcf, 0x5d, 0xc0, 0x5e, //0x0000b660 .quad 6827560182880305039 - 0xe4, 0xe9, 0x01, 0xb1, 0x45, 0xe7, 0x1a, 0xb0, //0x0000b668 .quad -5757034887131305500 - 0x73, 0x1f, 0xfa, 0xf4, 0x43, 0x75, 0x70, 0x76, //0x0000b670 .quad 8534450228600381299 - 0x5d, 0x64, 0x42, 0x1d, 0x17, 0xa1, 0x21, 0xdc, //0x0000b678 .quad -2584607590486743971 - 0xa8, 0x53, 0x1c, 0x79, 0x4a, 0x49, 0x06, 0x6a, //0x0000b680 .quad 7639874402088932264 - 0xba, 0x7e, 0x49, 0x72, 0xae, 0x04, 0x95, 0x89, //0x0000b688 .quad -8532908771695296838 - 0x92, 0x68, 0x63, 0x17, 0x9d, 0xdb, 0x87, 0x04, //0x0000b690 .quad 326470965756389522 - 0x69, 0xde, 0xdb, 0x0e, 0xda, 0x45, 0xfa, 0xab, //0x0000b698 .quad -6054449946191733143 - 0xb6, 0x42, 0x3c, 0x5d, 0x84, 0xd2, 0xa9, 0x45, //0x0000b6a0 .quad 5019774725622874806 - 0x03, 0xd6, 0x92, 0x92, 0x50, 0xd7, 0xf8, 0xd6, //0x0000b6a8 .quad -2956376414312278525 - 0xb2, 0xa9, 0x45, 0xba, 0x92, 0x23, 0x8a, 0x0b, //0x0000b6b0 .quad 831516194300602802 - 0xc2, 0xc5, 0x9b, 0x5b, 0x92, 0x86, 0x5b, 0x86, //0x0000b6b8 .quad -8765264286586255934 - 0x1e, 0x14, 0xd7, 0x68, 0x77, 0xac, 0x6c, 0x8e, //0x0000b6c0 .quad -8183976793979022306 - 0x32, 0xb7, 0x82, 0xf2, 0x36, 0x68, 0xf2, 0xa7, //0x0000b6c8 .quad -6344894339805432014 - 0x26, 0xd9, 0x0c, 0x43, 0x95, 0xd7, 0x07, 0x32, //0x0000b6d0 .quad 3605087062808385830 - 0xff, 0x64, 0x23, 0xaf, 0x44, 0x02, 0xef, 0xd1, //0x0000b6d8 .quad -3319431906329402113 - 0xb8, 0x07, 0xe8, 0x49, 0xbd, 0xe6, 0x44, 0x7f, //0x0000b6e0 .quad 9170708441896323000 - 0x1f, 0x1f, 0x76, 0xed, 0x6a, 0x61, 0x35, 0x83, //0x0000b6e8 .quad -8992173969096958177 - 0xa6, 0x09, 0x62, 0x9c, 0x6c, 0x20, 0x16, 0x5f, //0x0000b6f0 .quad 6851699533943015846 - 0xe7, 0xa6, 0xd3, 0xa8, 0xc5, 0xb9, 0x02, 0xa4, //0x0000b6f8 .quad -6628531442943809817 - 0x0f, 0x8c, 0x7a, 0xc3, 0x87, 0xa8, 0xdb, 0x36, //0x0000b700 .quad 3952938399001381903 - 0xa1, 0x90, 0x08, 0x13, 0x37, 0x68, 0x03, 0xcd, //0x0000b708 .quad -3673978285252374367 - 0x89, 0x97, 0x2c, 0xda, 0x54, 0x49, 0x49, 0xc2, //0x0000b710 .quad -4446942528265218167 - 0x64, 0x5a, 0xe5, 0x6b, 0x22, 0x21, 0x22, 0x80, //0x0000b718 .quad -9213765455923815836 - 0x6c, 0xbd, 0xb7, 0x10, 0xaa, 0x9b, 0xdb, 0xf2, //0x0000b720 .quad -946992141904134804 - 0xfd, 0xb0, 0xde, 0x06, 0x6b, 0xa9, 0x2a, 0xa0, //0x0000b728 .quad -6905520801477381891 - 0xc7, 0xac, 0xe5, 0x94, 0x94, 0x82, 0x92, 0x6f, //0x0000b730 .quad 8039631859474607303 - 0x3d, 0x5d, 0x96, 0xc8, 0xc5, 0x53, 0x35, 0xc8, //0x0000b738 .quad -4020214983419339459 - 0xf9, 0x17, 0x1f, 0xba, 0x39, 0x23, 0x77, 0xcb, //0x0000b740 .quad -3785518230938904583 - 0x8c, 0xf4, 0xbb, 0x3a, 0xb7, 0xa8, 0x42, 0xfa, //0x0000b748 .quad -413582710846786420 - 0xfb, 0x6e, 0x53, 0x14, 0x04, 0x76, 0x2a, 0xff, //0x0000b750 .quad -60105885123121413 - 0xd7, 0x78, 0xb5, 0x84, 0x72, 0xa9, 0x69, 0x9c, //0x0000b758 .quad -7176018221920323369 - 0xba, 0x4a, 0x68, 0x19, 0x85, 0x13, 0xf5, 0xfe, //0x0000b760 .quad -75132356403901766 - 0x0d, 0xd7, 0xe2, 0x25, 0xcf, 0x13, 0x84, 0xc3, //0x0000b768 .quad -4358336758973016307 - 0x69, 0x5d, 0xc2, 0x5f, 0x66, 0x58, 0xb2, 0x7e, //0x0000b770 .quad 9129456591349898601 - 0xd1, 0x8c, 0x5b, 0xef, 0xc2, 0x18, 0x65, 0xf4, //0x0000b778 .quad -836234930288882479 - 0x61, 0x7a, 0xd9, 0xfb, 0x3f, 0x77, 0x2f, 0xef, //0x0000b780 .quad -1211618658047395231 - 0x02, 0x38, 0x99, 0xd5, 0x79, 0x2f, 0xbf, 0x98, //0x0000b788 .quad -7440175859071633406 - 0xfa, 0xd8, 0xcf, 0xfa, 0x0f, 0x55, 0xfb, 0xaa, //0x0000b790 .quad -6126209340986631942 - 0x03, 0x86, 0xff, 0x4a, 0x58, 0xfb, 0xee, 0xbe, //0x0000b798 .quad -4688533805412153853 - 0x38, 0xcf, 0x83, 0xf9, 0x53, 0x2a, 0xba, 0x95, //0x0000b7a0 .quad -7657761676233289928 - 0x84, 0x67, 0xbf, 0x5d, 0x2e, 0xba, 0xaa, 0xee, //0x0000b7a8 .quad -1248981238337804412 - 0x83, 0x61, 0xf2, 0x7b, 0x74, 0x5a, 0x94, 0xdd, //0x0000b7b0 .quad -2480258038432112253 - 0xb2, 0xa0, 0x97, 0xfa, 0x5c, 0xb4, 0x2a, 0x95, //0x0000b7b8 .quad -7698142301602209614 - 0xe4, 0xf9, 0xee, 0x9a, 0x11, 0x71, 0xf9, 0x94, //0x0000b7c0 .quad -7712008566467528220 - 0xdf, 0x88, 0x3d, 0x39, 0x74, 0x61, 0x75, 0xba, //0x0000b7c8 .quad -5010991858575374113 - 0x5d, 0xb8, 0xaa, 0x01, 0x56, 0xcd, 0x37, 0x7a, //0x0000b7d0 .quad 8806733365625141341 - 0x17, 0xeb, 0x8c, 0x47, 0xd1, 0xb9, 0x12, 0xe9, //0x0000b7d8 .quad -1652053804791829737 - 0x3a, 0xb3, 0x0a, 0xc1, 0x55, 0xe0, 0x62, 0xac, //0x0000b7e0 .quad -6025006692552756422 - 0xee, 0x12, 0xb8, 0xcc, 0x22, 0xb4, 0xab, 0x91, //0x0000b7e8 .quad -7950062655635975442 - 0x09, 0x60, 0x4d, 0x31, 0x6b, 0x98, 0x7b, 0x57, //0x0000b7f0 .quad 6303799689591218185 - 0xaa, 0x17, 0xe6, 0x7f, 0x2b, 0xa1, 0x16, 0xb6, //0x0000b7f8 .quad -5325892301117581398 - 0x0b, 0xb8, 0xa0, 0xfd, 0x85, 0x7e, 0x5a, 0xed, //0x0000b800 .quad -1343622424865753077 - 0x94, 0x9d, 0xdf, 0x5f, 0x76, 0x49, 0x9c, 0xe3, //0x0000b808 .quad -2045679357969588844 - 0x07, 0x73, 0x84, 0xbe, 0x13, 0x8f, 0x58, 0x14, //0x0000b810 .quad 1466078993672598279 - 0x7d, 0xc2, 0xeb, 0xfb, 0xe9, 0xad, 0x41, 0x8e, //0x0000b818 .quad -8196078626372074883 - 0xc8, 0x8f, 0x25, 0xae, 0xd8, 0xb2, 0x6e, 0x59, //0x0000b820 .quad 6444284760518135752 - 0x1c, 0xb3, 0xe6, 0x7a, 0x64, 0x19, 0xd2, 0xb1, //0x0000b828 .quad -5633412264537705700 - 0xbb, 0xf3, 0xae, 0xd9, 0x8e, 0x5f, 0xca, 0x6f, //0x0000b830 .quad 8055355950647669691 - 0xe3, 0x5f, 0xa0, 0x99, 0xbd, 0x9f, 0x46, 0xde, //0x0000b838 .quad -2430079312244744221 - 0x54, 0x58, 0x0d, 0x48, 0xb9, 0x7b, 0xde, 0x25, //0x0000b840 .quad 2728754459941099604 - 0xee, 0x3b, 0x04, 0x80, 0xd6, 0x23, 0xec, 0x8a, //0x0000b848 .quad -8436328597794046994 - 0x6a, 0xae, 0x10, 0x9a, 0xa7, 0x1a, 0x56, 0xaf, //0x0000b850 .quad -5812428961928401302 - 0xe9, 0x4a, 0x05, 0x20, 0xcc, 0x2c, 0xa7, 0xad, //0x0000b858 .quad -5933724728815170839 - 0x04, 0xda, 0x94, 0x80, 0x51, 0xa1, 0x2b, 0x1b, //0x0000b860 .quad 1957835834444274180 - 0xa4, 0x9d, 0x06, 0x28, 0xff, 0xf7, 0x10, 0xd9, //0x0000b868 .quad -2805469892591575644 - 0x42, 0x08, 0x5d, 0xf0, 0xd2, 0x44, 0xfb, 0x90, //0x0000b870 .quad -7999724640327104446 - 0x86, 0x22, 0x04, 0x79, 0xff, 0x9a, 0xaa, 0x87, //0x0000b878 .quad -8670947710510816634 - 0x53, 0x4a, 0x74, 0xac, 0x07, 0x16, 0x3a, 0x35, //0x0000b880 .quad 3835402254873283155 - 0x28, 0x2b, 0x45, 0x57, 0xbf, 0x41, 0x95, 0xa9, //0x0000b888 .quad -6226998619711132888 - 0xe8, 0x5c, 0x91, 0x97, 0x89, 0x9b, 0x88, 0x42, //0x0000b890 .quad 4794252818591603944 - 0xf2, 0x75, 0x16, 0x2d, 0x2f, 0x92, 0xfa, 0xd3, //0x0000b898 .quad -3172062256211528206 - 0x11, 0xda, 0xba, 0xfe, 0x35, 0x61, 0x95, 0x69, //0x0000b8a0 .quad 7608094030047140369 - 0xb7, 0x09, 0x2e, 0x7c, 0x5d, 0x9b, 0x7c, 0x84, //0x0000b8a8 .quad -8900067937773286985 - 0x95, 0x90, 0x69, 0x7e, 0x83, 0xb9, 0xfa, 0x43, //0x0000b8b0 .quad 4898431519131537557 - 0x25, 0x8c, 0x39, 0xdb, 0x34, 0xc2, 0x9b, 0xa5, //0x0000b8b8 .quad -6513398903789220827 - 0xbb, 0xf4, 0x03, 0x5e, 0xe4, 0x67, 0xf9, 0x94, //0x0000b8c0 .quad -7712018656367741765 - 0x2e, 0xef, 0x07, 0x12, 0xc2, 0xb2, 0x02, 0xcf, //0x0000b8c8 .quad -3530062611309138130 - 0xf5, 0x78, 0xc2, 0xba, 0xee, 0xe0, 0x1b, 0x1d, //0x0000b8d0 .quad 2097517367411243253 - 0x7d, 0xf5, 0x44, 0x4b, 0xb9, 0xaf, 0x61, 0x81, //0x0000b8d8 .quad -9123818159709293187 - 0x32, 0x17, 0x73, 0x69, 0x2a, 0xd9, 0x62, 0x64, //0x0000b8e0 .quad 7233582727691441970 - 0xdc, 0x32, 0x16, 0x9e, 0xa7, 0x1b, 0xba, 0xa1, //0x0000b8e8 .quad -6793086681209228580 - 0xfe, 0xdc, 0xcf, 0x03, 0x75, 0x8f, 0x7b, 0x7d, //0x0000b8f0 .quad 9041978409614302462 - 0x93, 0xbf, 0x9b, 0x85, 0x91, 0xa2, 0x28, 0xca, //0x0000b8f8 .quad -3879672333084147821 - 0x3e, 0xd4, 0xc3, 0x44, 0x52, 0x73, 0xda, 0x5c, //0x0000b900 .quad 6690786993590490174 - 0x78, 0xaf, 0x02, 0xe7, 0x35, 0xcb, 0xb2, 0xfc, //0x0000b908 .quad -237904397927796872 - 0xa7, 0x64, 0xfa, 0x6a, 0x13, 0x88, 0x08, 0x3a, //0x0000b910 .quad 4181741870994056359 - 0xab, 0xad, 0x61, 0xb0, 0x01, 0xbf, 0xef, 0x9d, //0x0000b918 .quad -7066219276345954901 - 0xd0, 0xfd, 0xb8, 0x45, 0x18, 0xaa, 0x8a, 0x08, //0x0000b920 .quad 615491320315182544 - 0x16, 0x19, 0x7a, 0x1c, 0xc2, 0xae, 0x6b, 0xc5, //0x0000b928 .quad -4221088077005055722 - 0x45, 0x3d, 0x27, 0x57, 0x9e, 0x54, 0xad, 0x8a, //0x0000b930 .quad -8454007886460797627 - 0x5b, 0x9f, 0x98, 0xa3, 0x72, 0x9a, 0xc6, 0xf6, //0x0000b938 .quad -664674077828931749 - 0x4b, 0x86, 0x78, 0xf6, 0xe2, 0x54, 0xac, 0x36, //0x0000b940 .quad 3939617107816777291 - 0x99, 0x63, 0x3f, 0xa6, 0x87, 0x20, 0x3c, 0x9a, //0x0000b948 .quad -7332950326284164199 - 0xdd, 0xa7, 0x16, 0xb4, 0x1b, 0x6a, 0x57, 0x84, //0x0000b950 .quad -8910536670511192099 - 0x7f, 0x3c, 0xcf, 0x8f, 0xa9, 0x28, 0xcb, 0xc0, //0x0000b958 .quad -4554501889427817345 - 0xd5, 0x51, 0x1c, 0xa1, 0xa2, 0x44, 0x6d, 0x65, //0x0000b960 .quad 7308573235570561493 - 0x9f, 0x0b, 0xc3, 0xf3, 0xd3, 0xf2, 0xfd, 0xf0, //0x0000b968 .quad -1081441343357383777 - 0x25, 0xb3, 0xb1, 0xa4, 0xe5, 0x4a, 0x64, 0x9f, //0x0000b970 .quad -6961356773836868827 - 0x43, 0xe7, 0x59, 0x78, 0xc4, 0xb7, 0x9e, 0x96, //0x0000b978 .quad -7593429867239446717 - 0xee, 0x1f, 0xde, 0x0d, 0x9f, 0x5d, 0x3d, 0x87, //0x0000b980 .quad -8701695967296086034 - 0x14, 0x61, 0x70, 0x96, 0xb5, 0x65, 0x46, 0xbc, //0x0000b988 .quad -4880101315621920492 - 0xea, 0xa7, 0x55, 0xd1, 0x06, 0xb5, 0x0c, 0xa9, //0x0000b990 .quad -6265433940692719638 - 0x59, 0x79, 0x0c, 0xfc, 0x22, 0xff, 0x57, 0xeb, //0x0000b998 .quad -1488440626100012711 - 0xf2, 0x88, 0xd5, 0x42, 0x24, 0xf1, 0xa7, 0x09, //0x0000b9a0 .quad 695789805494438130 - 0xd8, 0xcb, 0x87, 0xdd, 0x75, 0xff, 0x16, 0x93, //0x0000b9a8 .quad -7847804418953589800 - 0x2f, 0xeb, 0x8a, 0x53, 0x6d, 0xed, 0x11, 0x0c, //0x0000b9b0 .quad 869737256868047663 - 0xce, 0xbe, 0xe9, 0x54, 0x53, 0xbf, 0xdc, 0xb7, //0x0000b9b8 .quad -5198069505264599346 - 0xfa, 0xa5, 0x6d, 0xa8, 0xc8, 0x68, 0x16, 0x8f, //0x0000b9c0 .quad -8136200465769716230 - 0x81, 0x2e, 0x24, 0x2a, 0x28, 0xef, 0xd3, 0xe5, //0x0000b9c8 .quad -1885900863153361279 - 0xbc, 0x87, 0x44, 0x69, 0x7d, 0x01, 0x6e, 0xf9, //0x0000b9d0 .quad -473439272678684740 - 0x10, 0x9d, 0x56, 0x1a, 0x79, 0x75, 0xa4, 0x8f, //0x0000b9d8 .quad -8096217067111932656 - 0xac, 0xa9, 0x95, 0xc3, 0xdc, 0x81, 0xc9, 0x37, //0x0000b9e0 .quad 4019886927579031980 - 0x55, 0x44, 0xec, 0x60, 0xd7, 0x92, 0x8d, 0xb3, //0x0000b9e8 .quad -5508585315462527915 - 0x17, 0x14, 0x7b, 0xf4, 0x53, 0xe2, 0xbb, 0x85, //0x0000b9f0 .quad -8810199395808373737 - 0x6a, 0x55, 0x27, 0x39, 0x8d, 0xf7, 0x70, 0xe0, //0x0000b9f8 .quad -2274045625900771990 - 0x8e, 0xec, 0xcc, 0x78, 0x74, 0x6d, 0x95, 0x93, //0x0000ba00 .quad -7812217631593927538 - 0x62, 0x95, 0xb8, 0x43, 0xb8, 0x9a, 0x46, 0x8c, //0x0000ba08 .quad -8338807543829064350 - 0xb2, 0x27, 0x00, 0x97, 0xd1, 0xc8, 0x7a, 0x38, //0x0000ba10 .quad 4069786015789754290 - 0xbb, 0xba, 0xa6, 0x54, 0x66, 0x41, 0x58, 0xaf, //0x0000ba18 .quad -5811823411358942533 - 0x9e, 0x31, 0xc0, 0xfc, 0x05, 0x7b, 0x99, 0x06, //0x0000ba20 .quad 475546501309804958 - 0x6a, 0x69, 0xd0, 0xe9, 0xbf, 0x51, 0x2e, 0xdb, //0x0000ba28 .quad -2653093245771290262 - 0x03, 0x1f, 0xf8, 0xbd, 0xe3, 0xec, 0x1f, 0x44, //0x0000ba30 .quad 4908902581746016003 - 0xe2, 0x41, 0x22, 0xf2, 0x17, 0xf3, 0xfc, 0x88, //0x0000ba38 .quad -8575712306248138270 - 0xc3, 0x26, 0x76, 0xad, 0x1c, 0xe8, 0x27, 0xd5, //0x0000ba40 .quad -3087243809672255805 - 0x5a, 0xd2, 0xaa, 0xee, 0xdd, 0x2f, 0x3c, 0xab, //0x0000ba48 .quad -6107954364382784934 - 0x74, 0xb0, 0xd3, 0xd8, 0x23, 0xe2, 0x71, 0x8a, //0x0000ba50 .quad -8470740780517707660 - 0xf1, 0x86, 0x55, 0x6a, 0xd5, 0x3b, 0x0b, 0xd6, //0x0000ba58 .quad -3023256937051093263 - 0x49, 0x4e, 0x84, 0x67, 0x56, 0x2d, 0x87, 0xf6, //0x0000ba60 .quad -682526969396179383 - 0x56, 0x74, 0x75, 0x62, 0x65, 0x05, 0xc7, 0x85, //0x0000ba68 .quad -8807064613298015146 - 0xdb, 0x61, 0x65, 0x01, 0xac, 0xf8, 0x28, 0xb4, //0x0000ba70 .quad -5464844730172612133 - 0x6c, 0xd1, 0x12, 0xbb, 0xbe, 0xc6, 0x38, 0xa7, //0x0000ba78 .quad -6397144748195131028 - 0x52, 0xba, 0xbe, 0x01, 0xd7, 0x36, 0x33, 0xe1, //0x0000ba80 .quad -2219369894288377262 - 0xc7, 0x85, 0xd7, 0x69, 0x6e, 0xf8, 0x06, 0xd1, //0x0000ba88 .quad -3384744916816525881 - 0x73, 0x34, 0x17, 0x61, 0x46, 0x02, 0xc0, 0xec, //0x0000ba90 .quad -1387106183930235789 - 0x9c, 0xb3, 0x26, 0x02, 0x45, 0x5b, 0xa4, 0x82, //0x0000ba98 .quad -9032994600651410532 - 0x90, 0x01, 0x5d, 0xf9, 0xd7, 0x02, 0xf0, 0x27, //0x0000baa0 .quad 2877803288514593168 - 0x84, 0x60, 0xb0, 0x42, 0x16, 0x72, 0x4d, 0xa3, //0x0000baa8 .quad -6679557232386875260 - 0xf4, 0x41, 0xb4, 0xf7, 0x8d, 0x03, 0xec, 0x31, //0x0000bab0 .quad 3597254110643241460 - 0xa5, 0x78, 0x5c, 0xd3, 0x9b, 0xce, 0x20, 0xcc, //0x0000bab8 .quad -3737760522056206171 - 0x71, 0x52, 0xa1, 0x75, 0x71, 0x04, 0x67, 0x7e, //0x0000bac0 .quad 9108253656731439729 - 0xce, 0x96, 0x33, 0xc8, 0x42, 0x02, 0x29, 0xff, //0x0000bac8 .quad -60514634142869810 - 0x86, 0xd3, 0x84, 0xe9, 0xc6, 0x62, 0x00, 0x0f, //0x0000bad0 .quad 1080972517029761926 - 0x41, 0x3e, 0x20, 0xbd, 0x69, 0xa1, 0x79, 0x9f, //0x0000bad8 .quad -6955350673980375487 - 0x68, 0x08, 0xe6, 0xa3, 0x78, 0x7b, 0xc0, 0x52, //0x0000bae0 .quad 5962901664714590312 - 0xd1, 0x4d, 0x68, 0x2c, 0xc4, 0x09, 0x58, 0xc7, //0x0000bae8 .quad -4082502324048081455 - 0x82, 0x8a, 0xdf, 0xcc, 0x56, 0x9a, 0x70, 0xa7, //0x0000baf0 .quad -6381430974388925822 - 0x45, 0x61, 0x82, 0x37, 0x35, 0x0c, 0x2e, 0xf9, //0x0000baf8 .quad -491441886632713915 - 0x91, 0xb6, 0x0b, 0x40, 0x76, 0x60, 0xa6, 0x88, //0x0000bb00 .quad -8600080377420466543 - 0xcb, 0x7c, 0xb1, 0x42, 0xa1, 0xc7, 0xbc, 0x9b, //0x0000bb08 .quad -7224680206786528053 - 0x35, 0xa4, 0x0e, 0xd0, 0x93, 0xf8, 0xcf, 0x6a, //0x0000bb10 .quad 7696643601933968437 - 0xfe, 0xdb, 0x5d, 0x93, 0x89, 0xf9, 0xab, 0xc2, //0x0000bb18 .quad -4419164240055772162 - 0x43, 0x4d, 0x12, 0xc4, 0xb8, 0xf6, 0x83, 0x05, //0x0000bb20 .quad 397432465562684739 - 0xfe, 0x52, 0x35, 0xf8, 0xeb, 0xf7, 0x56, 0xf3, //0x0000bb28 .quad -912269281642327298 - 0x4a, 0x70, 0x8b, 0x7a, 0x33, 0x7a, 0x72, 0xc3, //0x0000bb30 .quad -4363290727450709942 - 0xde, 0x53, 0x21, 0x7b, 0xf3, 0x5a, 0x16, 0x98, //0x0000bb38 .quad -7487697328667536418 - 0x5c, 0x4c, 0x2e, 0x59, 0xc0, 0x18, 0x4f, 0x74, //0x0000bb40 .quad 8380944645968776284 - 0xd6, 0xa8, 0xe9, 0x59, 0xb0, 0xf1, 0x1b, 0xbe, //0x0000bb48 .quad -4747935642407032618 - 0x73, 0xdf, 0x79, 0x6f, 0xf0, 0xde, 0x62, 0x11, //0x0000bb50 .quad 1252808770606194547 - 0x0c, 0x13, 0x64, 0x70, 0x1c, 0xee, 0xa2, 0xed, //0x0000bb58 .quad -1323233534581402868 - 0xa8, 0x2b, 0xac, 0x45, 0x56, 0xcb, 0xdd, 0x8a, //0x0000bb60 .quad -8440366555225904216 - 0xe7, 0x8b, 0x3e, 0xc6, 0xd1, 0xd4, 0x85, 0x94, //0x0000bb68 .quad -7744549986754458649 - 0x92, 0x36, 0x17, 0xd7, 0x2b, 0x3e, 0x95, 0x6d, //0x0000bb70 .quad 7896285879677171346 - 0xe1, 0x2e, 0xce, 0x37, 0x06, 0x4a, 0xa7, 0xb9, //0x0000bb78 .quad -5069001465015685407 - 0x37, 0x04, 0xdd, 0xcc, 0xb6, 0x8d, 0xfa, 0xc8, //0x0000bb80 .quad -3964700705685699529 - 0x99, 0xba, 0xc1, 0xc5, 0x87, 0x1c, 0x11, 0xe8, //0x0000bb88 .quad -1724565812842218855 - 0xa2, 0x22, 0x0a, 0x40, 0x92, 0x98, 0x9c, 0x1d, //0x0000bb90 .quad 2133748077373825698 - 0xa0, 0x14, 0x99, 0xdb, 0xd4, 0xb1, 0x0a, 0x91, //0x0000bb98 .quad -7995382660667468640 - 0x4b, 0xab, 0x0c, 0xd0, 0xb6, 0xbe, 0x03, 0x25, //0x0000bba0 .quad 2667185096717282123 - 0xc8, 0x59, 0x7f, 0x12, 0x4a, 0x5e, 0x4d, 0xb5, //0x0000bba8 .quad -5382542307406947896 - 0x1d, 0xd6, 0x0f, 0x84, 0x64, 0xae, 0x44, 0x2e, //0x0000bbb0 .quad 3333981370896602653 - 0x3a, 0x30, 0x1f, 0x97, 0xdc, 0xb5, 0xa0, 0xe2, //0x0000bbb8 .quad -2116491865831296966 - 0xd2, 0xe5, 0x89, 0xd2, 0xfe, 0xec, 0xea, 0x5c, //0x0000bbc0 .quad 6695424375237764562 - 0x24, 0x7e, 0x73, 0xde, 0xa9, 0x71, 0xa4, 0x8d, //0x0000bbc8 .quad -8240336443785642460 - 0x47, 0x5f, 0x2c, 0x87, 0x3e, 0xa8, 0x25, 0x74, //0x0000bbd0 .quad 8369280469047205703 - 0xad, 0x5d, 0x10, 0x56, 0x14, 0x8e, 0x0d, 0xb1, //0x0000bbd8 .quad -5688734536304665171 - 0x19, 0x77, 0xf7, 0x28, 0x4e, 0x12, 0x2f, 0xd1, //0x0000bbe0 .quad -3373457468973156583 - 0x18, 0x75, 0x94, 0x6b, 0x99, 0xf1, 0x50, 0xdd, //0x0000bbe8 .quad -2499232151953443560 - 0x6f, 0xaa, 0x9a, 0xd9, 0x70, 0x6b, 0xbd, 0x82, //0x0000bbf0 .quad -9025939945749304721 - 0x2f, 0xc9, 0x3c, 0xe3, 0xff, 0x96, 0x52, 0x8a, //0x0000bbf8 .quad -8479549122611984081 - 0x0b, 0x55, 0x01, 0x10, 0x4d, 0xc6, 0x6c, 0x63, //0x0000bc00 .quad 7164319141522920715 - 0x7b, 0xfb, 0x0b, 0xdc, 0xbf, 0x3c, 0xe7, 0xac, //0x0000bc08 .quad -5987750384837592197 - 0x4e, 0xaa, 0x01, 0x54, 0xe0, 0xf7, 0x47, 0x3c, //0x0000bc10 .quad 4343712908476262990 - 0x5a, 0xfa, 0x0e, 0xd3, 0xef, 0x0b, 0x21, 0xd8, //0x0000bc18 .quad -2873001962619602342 - 0x71, 0x0a, 0x81, 0x34, 0xec, 0xfa, 0xac, 0x65, //0x0000bc20 .quad 7326506586225052273 - 0x78, 0x5c, 0xe9, 0xe3, 0x75, 0xa7, 0x14, 0x87, //0x0000bc28 .quad -8713155254278333320 - 0x0d, 0x4d, 0xa1, 0x41, 0xa7, 0x39, 0x18, 0x7f, //0x0000bc30 .quad 9158133232781315341 - 0x96, 0xb3, 0xe3, 0x5c, 0x53, 0xd1, 0xd9, 0xa8, //0x0000bc38 .quad -6279758049420528746 - 0x50, 0xa0, 0x09, 0x12, 0x11, 0x48, 0xde, 0x1e, //0x0000bc40 .quad 2224294504121868368 - 0x7c, 0xa0, 0x1c, 0x34, 0xa8, 0x45, 0x10, 0xd3, //0x0000bc48 .quad -3238011543348273028 - 0x32, 0x04, 0x46, 0xab, 0x0a, 0xed, 0x4a, 0x93, //0x0000bc50 .quad -7833187971778608078 - 0x4d, 0xe4, 0x91, 0x20, 0x89, 0x2b, 0xea, 0x83, //0x0000bc58 .quad -8941286242233752499 - 0x3f, 0x85, 0x17, 0x56, 0x4d, 0xa8, 0x1d, 0xf8, //0x0000bc60 .quad -568112927868484289 - 0x60, 0x5d, 0xb6, 0x68, 0x6b, 0xb6, 0xe4, 0xa4, //0x0000bc68 .quad -6564921784364802720 - 0x8e, 0x66, 0x9d, 0xab, 0x60, 0x12, 0x25, 0x36, //0x0000bc70 .quad 3901544858591782542 - 0xb9, 0xf4, 0xe3, 0x42, 0x06, 0xe4, 0x1d, 0xce, //0x0000bc78 .quad -3594466212028615495 - 0x19, 0x60, 0x42, 0x6b, 0x7c, 0x2b, 0xd7, 0xc1, //0x0000bc80 .quad -4479063491021217767 - 0xf3, 0x78, 0xce, 0xe9, 0x83, 0xae, 0xd2, 0x80, //0x0000bc88 .quad -9164070410158966541 - 0x1f, 0xf8, 0x12, 0x86, 0x5b, 0xf6, 0x4c, 0xb2, //0x0000bc90 .quad -5598829363776522209 - 0x30, 0x17, 0x42, 0xe4, 0x24, 0x5a, 0x07, 0xa1, //0x0000bc98 .quad -6843401994271320272 - 0x27, 0xb6, 0x97, 0x67, 0xf2, 0x33, 0xe0, 0xde, //0x0000bca0 .quad -2386850686293264857 - 0xfc, 0x9c, 0x52, 0x1d, 0xae, 0x30, 0x49, 0xc9, //0x0000bca8 .quad -3942566474411762436 - 0xb1, 0xa3, 0x7d, 0x01, 0xef, 0x40, 0x98, 0x16, //0x0000bcb0 .quad 1628122660560806833 - 0x3c, 0x44, 0xa7, 0xa4, 0xd9, 0x7c, 0x9b, 0xfb, //0x0000bcb8 .quad -316522074587315140 - 0x4e, 0x86, 0xee, 0x60, 0x95, 0x28, 0x1f, 0x8e, //0x0000bcc0 .quad -8205795374004271538 - 0xa5, 0x8a, 0xe8, 0x06, 0x08, 0x2e, 0x41, 0x9d, //0x0000bcc8 .quad -7115355324258153819 - 0xe2, 0x27, 0x2a, 0xb9, 0xba, 0xf2, 0xa6, 0xf1, //0x0000bcd0 .quad -1033872180650563614 - 0x4e, 0xad, 0xa2, 0x08, 0x8a, 0x79, 0x91, 0xc4, //0x0000bcd8 .quad -4282508136895304370 - 0xdb, 0xb1, 0x74, 0x67, 0x69, 0xaf, 0x10, 0xae, //0x0000bce0 .quad -5904026244240592421 - 0xa2, 0x58, 0xcb, 0x8a, 0xec, 0xd7, 0xb5, 0xf5, //0x0000bce8 .quad -741449152691742558 - 0x29, 0xef, 0xa8, 0xe0, 0xa1, 0x6d, 0xca, 0xac, //0x0000bcf0 .quad -5995859411864064215 - 0x65, 0x17, 0xbf, 0xd6, 0xf3, 0xa6, 0x91, 0x99, //0x0000bcf8 .quad -7380934748073420955 - 0xf3, 0x2a, 0xd3, 0x58, 0x0a, 0x09, 0xfd, 0x17, //0x0000bd00 .quad 1728547772024695539 - 0x3f, 0xdd, 0x6e, 0xcc, 0xb0, 0x10, 0xf6, 0xbf, //0x0000bd08 .quad -4614482416664388289 - 0xb0, 0xf5, 0x07, 0xef, 0x4c, 0x4b, 0xfc, 0xdd, //0x0000bd10 .quad -2451001303396518480 - 0x8e, 0x94, 0x8a, 0xff, 0xdc, 0x94, 0xf3, 0xef, //0x0000bd18 .quad -1156417002403097458 - 0x8e, 0xf9, 0x64, 0x15, 0x10, 0xaf, 0xbd, 0x4a, //0x0000bd20 .quad 5385653213018257806 - 0xd9, 0x9c, 0xb6, 0x1f, 0x0a, 0x3d, 0xf8, 0x95, //0x0000bd28 .quad -7640289654143017767 - 0xf1, 0x37, 0xbe, 0x1a, 0xd4, 0x1a, 0x6d, 0x9d, //0x0000bd30 .quad -7102991539009341455 - 0x0f, 0x44, 0xa4, 0xa7, 0x4c, 0x4c, 0x76, 0xbb, //0x0000bd38 .quad -4938676049251384305 - 0xed, 0xc5, 0x6d, 0x21, 0x89, 0x61, 0xc8, 0x84, //0x0000bd40 .quad -8878739423761676819 - 0x13, 0x55, 0x8d, 0xd1, 0x5f, 0xdf, 0x53, 0xea, //0x0000bd48 .quad -1561659043136842477 - 0xb4, 0x9b, 0xe4, 0xb4, 0xf5, 0x3c, 0xfd, 0x32, //0x0000bd50 .quad 3674159897003727796 - 0x2c, 0x55, 0xf8, 0xe2, 0x9b, 0x6b, 0x74, 0x92, //0x0000bd58 .quad -7893565929601608404 - 0xa1, 0xc2, 0x1d, 0x22, 0x33, 0x8c, 0xbc, 0x3f, //0x0000bd60 .quad 4592699871254659745 - 0x77, 0x6a, 0xb6, 0xdb, 0x82, 0x86, 0x11, 0xb7, //0x0000bd68 .quad -5255271393574622601 - 0x4a, 0x33, 0xa5, 0xea, 0x3f, 0xaf, 0xab, 0x0f, //0x0000bd70 .quad 1129188820640936778 - 0x15, 0x05, 0xa4, 0x92, 0x23, 0xe8, 0xd5, 0xe4, //0x0000bd78 .quad -1957403223540890347 - 0x0e, 0x40, 0xa7, 0xf2, 0x87, 0x4d, 0xcb, 0x29, //0x0000bd80 .quad 3011586022114279438 - 0x2d, 0x83, 0xa6, 0x3b, 0x16, 0xb1, 0x05, 0x8f, //0x0000bd88 .quad -8140906042354138323 - 0x12, 0x10, 0x51, 0xef, 0xe9, 0x20, 0x3e, 0x74, //0x0000bd90 .quad 8376168546070237202 - 0xf8, 0x23, 0x90, 0xca, 0x5b, 0x1d, 0xc7, 0xb2, //0x0000bd98 .quad -5564446534515285000 - 0x16, 0x54, 0x25, 0x6b, 0x24, 0xa9, 0x4d, 0x91, //0x0000bda0 .quad -7976533391121755114 - 0xf6, 0x2c, 0x34, 0xbd, 0xb2, 0xe4, 0x78, 0xdf, //0x0000bda8 .quad -2343872149716718346 - 0x8e, 0x54, 0xf7, 0xc2, 0xb6, 0x89, 0xd0, 0x1a, //0x0000bdb0 .quad 1932195658189984910 - 0x1a, 0x9c, 0x40, 0xb6, 0xef, 0x8e, 0xab, 0x8b, //0x0000bdb8 .quad -8382449121214030822 - 0xb1, 0x29, 0xb5, 0x73, 0x24, 0xac, 0x84, 0xa1, //0x0000bdc0 .quad -6808127464117294671 - 0x20, 0xc3, 0xd0, 0xa3, 0xab, 0x72, 0x96, 0xae, //0x0000bdc8 .quad -5866375383090150624 - 0x1e, 0x74, 0xa2, 0x90, 0x2d, 0xd7, 0xe5, 0xc9, //0x0000bdd0 .quad -3898473311719230434 - 0xe8, 0xf3, 0xc4, 0x8c, 0x56, 0x0f, 0x3c, 0xda, //0x0000bdd8 .quad -2721283210435300376 - 0x92, 0x88, 0x65, 0x7a, 0x7c, 0xa6, 0x2f, 0x7e, //0x0000bde0 .quad 9092669226243950738 - 0x71, 0x18, 0xfb, 0x17, 0x96, 0x89, 0x65, 0x88, //0x0000bde8 .quad -8618331034163144591 - 0xb7, 0xea, 0xfe, 0x98, 0x1b, 0x90, 0xbb, 0xdd, //0x0000bdf0 .quad -2469221522477225289 - 0x8d, 0xde, 0xf9, 0x9d, 0xfb, 0xeb, 0x7e, 0xaa, //0x0000bdf8 .quad -6161227774276542835 - 0x65, 0xa5, 0x3e, 0x7f, 0x22, 0x74, 0x2a, 0x55, //0x0000be00 .quad 6136845133758244197 - 0x31, 0x56, 0x78, 0x85, 0xfa, 0xa6, 0x1e, 0xd5, //0x0000be08 .quad -3089848699418290639 - 0x5f, 0x27, 0x87, 0x8f, 0x95, 0x88, 0x3a, 0xd5, //0x0000be10 .quad -3082000819042179233 - 0xde, 0x35, 0x6b, 0x93, 0x5c, 0x28, 0x33, 0x85, //0x0000be18 .quad -8848684464777513506 - 0x37, 0xf1, 0x68, 0xf3, 0xba, 0x2a, 0x89, 0x8a, //0x0000be20 .quad -8464187042230111945 - 0x56, 0x03, 0x46, 0xb8, 0x73, 0xf2, 0x7f, 0xa6, //0x0000be28 .quad -6449169562544503978 - 0x85, 0x2d, 0x43, 0xb0, 0x69, 0x75, 0x2b, 0x2d, //0x0000be30 .quad 3254824252494523781 - 0x2c, 0x84, 0x57, 0xa6, 0x10, 0xef, 0x1f, 0xd0, //0x0000be38 .quad -3449775934753242068 - 0x73, 0xfc, 0x29, 0x0e, 0x62, 0x29, 0x3b, 0x9c, //0x0000be40 .quad -7189106879045698445 - 0x9b, 0xb2, 0xf6, 0x67, 0x6a, 0xf5, 0x13, 0x82, //0x0000be48 .quad -9073638986861858149 - 0x8f, 0x7b, 0xb4, 0x91, 0xba, 0xf3, 0x49, 0x83, //0x0000be50 .quad -8986383598807123057 - 0x42, 0x5f, 0xf4, 0x01, 0xc5, 0xf2, 0x98, 0xa2, //0x0000be58 .quad -6730362715149934782 - 0x73, 0x9a, 0x21, 0x36, 0xa9, 0x70, 0x1c, 0x24, //0x0000be60 .quad 2602078556773259891 - 0x13, 0x77, 0x71, 0x42, 0x76, 0x2f, 0x3f, 0xcb, //0x0000be68 .quad -3801267375510030573 - 0x10, 0x01, 0xaa, 0x83, 0xd3, 0x8c, 0x23, 0xed, //0x0000be70 .quad -1359087822460813040 - 0xd7, 0xd4, 0x0d, 0xd3, 0x53, 0xfb, 0x0e, 0xfe, //0x0000be78 .quad -139898200960150313 - 0xaa, 0x40, 0x4a, 0x32, 0x04, 0x38, 0x36, 0xf4, //0x0000be80 .quad -849429889038008150 - 0x06, 0xa5, 0xe8, 0x63, 0x14, 0x5d, 0xc9, 0x9e, //0x0000be88 .quad -7004965403241175802 - 0xd5, 0xd0, 0xdc, 0x3e, 0x05, 0xc6, 0x43, 0xb1, //0x0000be90 .quad -5673473379724898091 - 0x48, 0xce, 0xe2, 0x7c, 0x59, 0xb4, 0x7b, 0xc6, //0x0000be98 .quad -4144520735624081848 - 0x0a, 0x05, 0x94, 0x8e, 0x86, 0xb7, 0x94, 0xdd, //0x0000bea0 .quad -2480155706228734710 - 0xda, 0x81, 0x1b, 0xdc, 0x6f, 0xa1, 0x1a, 0xf8, //0x0000bea8 .quad -568964901102714406 - 0x26, 0x83, 0x1c, 0x19, 0xb4, 0xf2, 0x7c, 0xca, //0x0000beb0 .quad -3855940325606653146 - 0x28, 0x31, 0x91, 0xe9, 0xe5, 0xa4, 0x10, 0x9b, //0x0000beb8 .quad -7273132090830278360 - 0xf0, 0xa3, 0x63, 0x1f, 0x61, 0x2f, 0x1c, 0xfd, //0x0000bec0 .quad -208239388580928528 - 0x72, 0x7d, 0xf5, 0x63, 0x1f, 0xce, 0xd4, 0xc1, //0x0000bec8 .quad -4479729095110460046 - 0xec, 0x8c, 0x3c, 0x67, 0x39, 0x3b, 0x63, 0xbc, //0x0000bed0 .quad -4871985254153548564 - 0xcf, 0xdc, 0xf2, 0x3c, 0xa7, 0x01, 0x4a, 0xf2, //0x0000bed8 .quad -987975350460687153 - 0x13, 0xd8, 0x85, 0xe0, 0x03, 0x05, 0xbe, 0xd5, //0x0000bee0 .quad -3044990783845967853 - 0x01, 0xca, 0x17, 0x86, 0x08, 0x41, 0x6e, 0x97, //0x0000bee8 .quad -7535013621679011327 - 0x18, 0x4e, 0xa7, 0xd8, 0x44, 0x86, 0x2d, 0x4b, //0x0000bef0 .quad 5417133557047315992 - 0x82, 0xbc, 0x9d, 0xa7, 0x4a, 0xd1, 0x49, 0xbd, //0x0000bef8 .quad -4807081008671376254 - 0x9e, 0x21, 0xd1, 0x0e, 0xd6, 0xe7, 0xf8, 0xdd, //0x0000bf00 .quad -2451955090545630818 - 0xa2, 0x2b, 0x85, 0x51, 0x9d, 0x45, 0x9c, 0xec, //0x0000bf08 .quad -1397165242411832414 - 0x03, 0xb5, 0x42, 0xc9, 0xe5, 0x90, 0xbb, 0xca, //0x0000bf10 .quad -3838314940804713213 - 0x45, 0x3b, 0xf3, 0x52, 0x82, 0xab, 0xe1, 0x93, //0x0000bf18 .quad -7790757304148477115 - 0x43, 0x62, 0x93, 0x3b, 0x1f, 0x75, 0x6a, 0x3d, //0x0000bf20 .quad 4425478360848884291 - 0x17, 0x0a, 0xb0, 0xe7, 0x62, 0x16, 0xda, 0xb8, //0x0000bf28 .quad -5126760611758208489 - 0xd4, 0x3a, 0x78, 0x0a, 0x67, 0x12, 0xc5, 0x0c, //0x0000bf30 .quad 920161932633717460 - 0x9d, 0x0c, 0x9c, 0xa1, 0xfb, 0x9b, 0x10, 0xe7, //0x0000bf38 .quad -1796764746270372707 - 0xc5, 0x24, 0x8b, 0x66, 0x80, 0x2b, 0xfb, 0x27, //0x0000bf40 .quad 2880944217109767365 - 0xe2, 0x87, 0x01, 0x45, 0x7d, 0x61, 0x6a, 0x90, //0x0000bf48 .quad -8040506994060064798 - 0xf6, 0xed, 0x2d, 0x80, 0x60, 0xf6, 0xf9, 0xb1, //0x0000bf50 .quad -5622191765467566602 - 0xda, 0xe9, 0x41, 0x96, 0xdc, 0xf9, 0x84, 0xb4, //0x0000bf58 .quad -5438947724147693094 - 0x73, 0x69, 0x39, 0xa0, 0xf8, 0x73, 0x78, 0x5e, //0x0000bf60 .quad 6807318348447705459 - 0x51, 0x64, 0xd2, 0xbb, 0x53, 0x38, 0xa6, 0xe1, //0x0000bf68 .quad -2186998636757228463 - 0xe8, 0xe1, 0x23, 0x64, 0x7b, 0x48, 0x0b, 0xdb, //0x0000bf70 .quad -2662955059861265944 - 0xb2, 0x7e, 0x63, 0x55, 0x34, 0xe3, 0x07, 0x8d, //0x0000bf78 .quad -8284403175614349646 - 0x62, 0xda, 0x2c, 0x3d, 0x9a, 0x1a, 0xce, 0x91, //0x0000bf80 .quad -7940379843253970334 - 0x5f, 0x5e, 0xbc, 0x6a, 0x01, 0xdc, 0x49, 0xb0, //0x0000bf88 .quad -5743817951090549153 - 0xfb, 0x10, 0x78, 0xcc, 0x40, 0xa1, 0x41, 0x76, //0x0000bf90 .quad 8521269269642088699 - 0xf7, 0x75, 0x6b, 0xc5, 0x01, 0x53, 0x5c, 0xdc, //0x0000bf98 .quad -2568086420435798537 - 0x9d, 0x0a, 0xcb, 0x7f, 0xc8, 0x04, 0xe9, 0xa9, //0x0000bfa0 .quad -6203421752542164323 - 0xba, 0x29, 0x63, 0x1b, 0xe1, 0xb3, 0xb9, 0x89, //0x0000bfa8 .quad -8522583040413455942 - 0x44, 0xcd, 0xbd, 0x9f, 0xfa, 0x45, 0x63, 0x54, //0x0000bfb0 .quad 6080780864604458308 - 0x29, 0xf4, 0x3b, 0x62, 0xd9, 0x20, 0x28, 0xac, //0x0000bfb8 .quad -6041542782089432023 - 0x95, 0x40, 0xad, 0x47, 0x79, 0x17, 0x7c, 0xa9, //0x0000bfc0 .quad -6234081974526590827 - 0x33, 0xf1, 0xca, 0xba, 0x0f, 0x29, 0x32, 0xd7, //0x0000bfc8 .quad -2940242459184402125 - 0x5d, 0x48, 0xcc, 0xcc, 0xab, 0x8e, 0xed, 0x49, //0x0000bfd0 .quad 5327070802775656541 - 0xc0, 0xd6, 0xbe, 0xd4, 0xa9, 0x59, 0x7f, 0x86, //0x0000bfd8 .quad -8755180564631333184 - 0x74, 0x5a, 0xff, 0xbf, 0x56, 0xf2, 0x68, 0x5c, //0x0000bfe0 .quad 6658838503469570676 - 0x70, 0x8c, 0xee, 0x49, 0x14, 0x30, 0x1f, 0xa8, //0x0000bfe8 .quad -6332289687361778576 - 0x11, 0x31, 0xff, 0x6f, 0xec, 0x2e, 0x83, 0x73, //0x0000bff0 .quad 8323548129336963345 - 0x8c, 0x2f, 0x6a, 0x5c, 0x19, 0xfc, 0x26, 0xd2, //0x0000bff8 .quad -3303676090774835316 - 0xab, 0x7e, 0xff, 0xc5, 0x53, 0xfd, 0x31, 0xc8, //0x0000c000 .quad -4021154456019173717 - 0xb7, 0x5d, 0xc2, 0xd9, 0x8f, 0x5d, 0x58, 0x83, //0x0000c008 .quad -8982326584375353929 - 0x55, 0x5e, 0x7f, 0xb7, 0xa8, 0x7c, 0x3e, 0xba, //0x0000c010 .quad -5026443070023967147 - 0x25, 0xf5, 0x32, 0xd0, 0xf3, 0x74, 0x2e, 0xa4, //0x0000c018 .quad -6616222212041804507 - 0xeb, 0x35, 0x5f, 0xe5, 0xd2, 0x1b, 0xce, 0x28, //0x0000c020 .quad 2940318199324816875 - 0x6f, 0xb2, 0x3f, 0xc4, 0x30, 0x12, 0x3a, 0xcd, //0x0000c028 .quad -3658591746624867729 - 0xb3, 0x81, 0x5b, 0xcf, 0x63, 0xd1, 0x80, 0x79, //0x0000c030 .quad 8755227902219092403 - 0x85, 0xcf, 0xa7, 0x7a, 0x5e, 0x4b, 0x44, 0x80, //0x0000c038 .quad -9204148869281624187 - 0x1f, 0x62, 0x32, 0xc3, 0xbc, 0x05, 0xe1, 0xd7, //0x0000c040 .quad -2891023177508298209 - 0x66, 0xc3, 0x51, 0x19, 0x36, 0x5e, 0x55, 0xa0, //0x0000c048 .quad -6893500068174642330 - 0xa7, 0xfa, 0xfe, 0xf3, 0x2b, 0x47, 0xd9, 0x8d, //0x0000c050 .quad -8225464990312760665 - 0x40, 0x34, 0xa6, 0x9f, 0xc3, 0xb5, 0x6a, 0xc8, //0x0000c058 .quad -4005189066790915008 - 0x51, 0xb9, 0xfe, 0xf0, 0xf6, 0x98, 0x4f, 0xb1, //0x0000c060 .quad -5670145219463562927 - 0x50, 0xc1, 0x8f, 0x87, 0x34, 0x63, 0x85, 0xfa, //0x0000c068 .quad -394800315061255856 - 0xd3, 0x33, 0x9f, 0x56, 0x9a, 0xbf, 0xd1, 0x6e, //0x0000c070 .quad 7985374283903742931 - 0xd2, 0xd8, 0xb9, 0xd4, 0x00, 0x5e, 0x93, 0x9c, //0x0000c078 .quad -7164279224554366766 - 0xc8, 0x00, 0x47, 0xec, 0x80, 0x2f, 0x86, 0x0a, //0x0000c080 .quad 758345818024902856 - 0x07, 0x4f, 0xe8, 0x09, 0x81, 0x35, 0xb8, 0xc3, //0x0000c088 .quad -4343663012265570553 - 0xfa, 0xc0, 0x58, 0x27, 0x61, 0xbb, 0x27, 0xcd, //0x0000c090 .quad -3663753745896259334 - 0xc8, 0x62, 0x62, 0x4c, 0xe1, 0x42, 0xa6, 0xf4, //0x0000c098 .quad -817892746904575288 - 0x9c, 0x78, 0x97, 0xb8, 0x1c, 0xd5, 0x38, 0x80, //0x0000c0a0 .quad -9207375118826243940 - 0xbd, 0x7d, 0xbd, 0xcf, 0xcc, 0xe9, 0xe7, 0x98, //0x0000c0a8 .quad -7428711994456441411 - 0xc3, 0x56, 0xbd, 0xe6, 0x63, 0x0a, 0x47, 0xe0, //0x0000c0b0 .quad -2285846861678029117 - 0x2c, 0xdd, 0xac, 0x03, 0x40, 0xe4, 0x21, 0xbf, //0x0000c0b8 .quad -4674203974643163860 - 0x74, 0xac, 0x6c, 0xe0, 0xfc, 0xcc, 0x58, 0x18, //0x0000c0c0 .quad 1754377441329851508 - 0x78, 0x14, 0x98, 0x04, 0x50, 0x5d, 0xea, 0xee, //0x0000c0c8 .quad -1231068949876566920 - 0xc8, 0xeb, 0x43, 0x0c, 0x1e, 0x80, 0x37, 0x0f, //0x0000c0d0 .quad 1096485900831157192 - 0xcb, 0x0c, 0xdf, 0x02, 0x52, 0x7a, 0x52, 0x95, //0x0000c0d8 .quad -7686947121313936181 - 0xba, 0xe6, 0x54, 0x8f, 0x25, 0x60, 0x05, 0xd3, //0x0000c0e0 .quad -3241078642388441414 - 0xfd, 0xcf, 0x96, 0x83, 0xe6, 0x18, 0xa7, 0xba, //0x0000c0e8 .quad -4996997883215032323 - 0x69, 0x20, 0x2a, 0xf3, 0x2e, 0xb8, 0xc6, 0x47, //0x0000c0f0 .quad 5172023733869224041 - 0xfd, 0x83, 0x7c, 0x24, 0x20, 0xdf, 0x50, 0xe9, //0x0000c0f8 .quad -1634561335591402499 - 0x41, 0x54, 0xfa, 0x57, 0x1d, 0x33, 0xdc, 0x4c, //0x0000c100 .quad 5538357842881958977 - 0x7e, 0xd2, 0xcd, 0x16, 0x74, 0x8b, 0xd2, 0x91, //0x0000c108 .quad -7939129862385708418 - 0x52, 0xe9, 0xf8, 0xad, 0xe4, 0x3f, 0x13, 0xe0, //0x0000c110 .quad -2300424733252327086 - 0x1d, 0x47, 0x81, 0x1c, 0x51, 0x2e, 0x47, 0xb6, //0x0000c118 .quad -5312226309554747619 - 0xa6, 0x23, 0x77, 0xd9, 0xdd, 0x0f, 0x18, 0x58, //0x0000c120 .quad 6347841120289366950 - 0xe5, 0x98, 0xa1, 0x63, 0xe5, 0xf9, 0xd8, 0xe3, //0x0000c128 .quad -2028596868516046619 - 0x48, 0x76, 0xea, 0xa7, 0xea, 0x09, 0x0f, 0x57, //0x0000c130 .quad 6273243709394548296 - 0x8f, 0xff, 0x44, 0x5e, 0x2f, 0x9c, 0x67, 0x8e, //0x0000c138 .quad -8185402070463610993 - 0xda, 0x13, 0xe5, 0x51, 0x65, 0xcc, 0xd2, 0x2c, //0x0000c140 .quad 3229868618315797466 - 0x73, 0x3f, 0xd6, 0x35, 0x3b, 0x83, 0x01, 0xb2, //0x0000c148 .quad -5620066569652125837 - 0xd1, 0x58, 0x5e, 0xa6, 0x7e, 0x7f, 0x07, 0xf8, //0x0000c150 .quad -574350245532641071 - 0x4f, 0xcf, 0x4b, 0x03, 0x0a, 0xe4, 0x81, 0xde, //0x0000c158 .quad -2413397193637769393 - 0x82, 0xf7, 0xfa, 0x27, 0xaf, 0xaf, 0x04, 0xfb, //0x0000c160 .quad -358968903457900670 - 0x91, 0x61, 0x0f, 0x42, 0x86, 0x2e, 0x11, 0x8b, //0x0000c168 .quad -8425902273664687727 - 0x63, 0xb5, 0xf9, 0xf1, 0x9a, 0xdb, 0xc5, 0x79, //0x0000c170 .quad 8774660907532399971 - 0xf6, 0x39, 0x93, 0xd2, 0x27, 0x7a, 0xd5, 0xad, //0x0000c178 .quad -5920691823653471754 - 0xbc, 0x22, 0x78, 0xae, 0x81, 0x52, 0x37, 0x18, //0x0000c180 .quad 1744954097560724156 - 0x74, 0x08, 0x38, 0xc7, 0xb1, 0xd8, 0x4a, 0xd9, //0x0000c188 .quad -2789178761139451788 - 0xb5, 0x15, 0x0b, 0x0d, 0x91, 0x93, 0x22, 0x8f, //0x0000c190 .quad -8132775725879323211 - 0x48, 0x05, 0x83, 0x1c, 0x6f, 0xc7, 0xce, 0x87, //0x0000c198 .quad -8660765753353239224 - 0x22, 0xdb, 0x4d, 0x50, 0x75, 0x38, 0xeb, 0xb2, //0x0000c1a0 .quad -5554283638921766110 - 0x9a, 0xc6, 0xa3, 0xe3, 0x4a, 0x79, 0xc2, 0xa9, //0x0000c1a8 .quad -6214271173264161126 - 0xeb, 0x51, 0x61, 0xa4, 0x92, 0x06, 0xa6, 0x5f, //0x0000c1b0 .quad 6892203506629956075 - 0x41, 0xb8, 0x8c, 0x9c, 0x9d, 0x17, 0x33, 0xd4, //0x0000c1b8 .quad -3156152948152813503 - 0x33, 0xd3, 0xbc, 0xa6, 0x1b, 0xc4, 0xc7, 0xdb, //0x0000c1c0 .quad -2609901835997359309 - 0x28, 0xf3, 0xd7, 0x81, 0xc2, 0xee, 0x9f, 0x84, //0x0000c1c8 .quad -8890124620236590296 - 0x00, 0x08, 0x6c, 0x90, 0x22, 0xb5, 0xb9, 0x12, //0x0000c1d0 .quad 1349308723430688768 - 0xf3, 0xef, 0x4d, 0x22, 0x73, 0xea, 0xc7, 0xa5, //0x0000c1d8 .quad -6500969756868349965 - 0x00, 0x0a, 0x87, 0x34, 0x6b, 0x22, 0x68, 0xd7, //0x0000c1e0 .quad -2925050114139026944 - 0xef, 0x6b, 0xe1, 0xea, 0x0f, 0xe5, 0x39, 0xcf, //0x0000c1e8 .quad -3514526177658049553 - 0x40, 0x66, 0xd4, 0x00, 0x83, 0x15, 0xa1, 0xe6, //0x0000c1f0 .quad -1828156321336891840 - 0x75, 0xe3, 0xcc, 0xf2, 0x29, 0x2f, 0x84, 0x81, //0x0000c1f8 .quad -9114107888677362827 - 0xd0, 0x7f, 0x09, 0xc1, 0xe3, 0x5a, 0x49, 0x60, //0x0000c200 .quad 6938176635183661008 - 0x53, 0x1c, 0x80, 0x6f, 0xf4, 0x3a, 0xe5, 0xa1, //0x0000c208 .quad -6780948842419315629 - 0xc4, 0xdf, 0x4b, 0xb1, 0x9c, 0xb1, 0x5b, 0x38, //0x0000c210 .quad 4061034775552188356 - 0x68, 0x23, 0x60, 0x8b, 0xb1, 0x89, 0x5e, 0xca, //0x0000c218 .quad -3864500034596756632 - 0xb5, 0xd7, 0x9e, 0xdd, 0x03, 0x9e, 0x72, 0x46, //0x0000c220 .quad 5076293469440235445 - 0x42, 0x2c, 0x38, 0xee, 0x1d, 0x2c, 0xf6, 0xfc, //0x0000c228 .quad -218939024818557886 - 0xd1, 0x46, 0x83, 0x6a, 0xc2, 0xa2, 0x07, 0x6c, //0x0000c230 .quad 7784369436827535057 - 0xa9, 0x1b, 0xe3, 0xb4, 0x92, 0xdb, 0x19, 0x9e, //0x0000c238 .quad -7054365918152680535 - 0x85, 0x18, 0x24, 0x05, 0x73, 0x8b, 0x09, 0xc7, //0x0000c240 .quad -4104596259247744891 - 0x93, 0xe2, 0x1b, 0x62, 0x77, 0x52, 0xa0, 0xc5, //0x0000c248 .quad -4206271379263462765 - 0xa7, 0x1e, 0x6d, 0xc6, 0x4f, 0xee, 0xcb, 0xb8, //0x0000c250 .quad -5130745324059681113 - 0x38, 0xdb, 0xa2, 0x3a, 0x15, 0x67, 0x08, 0xf7, //0x0000c258 .quad -646153205651940552 - 0x28, 0x33, 0x04, 0xdc, 0xf1, 0x74, 0x7f, 0x73, //0x0000c260 .quad 8322499218531169064 - 0x03, 0xc9, 0xa5, 0x44, 0x6d, 0x40, 0x65, 0x9a, //0x0000c268 .quad -7321374781173544701 - 0xf2, 0x3f, 0x05, 0x53, 0x2e, 0x52, 0x5f, 0x50, //0x0000c270 .quad 5791438004736573426 - 0x44, 0x3b, 0xcf, 0x95, 0x88, 0x90, 0xfe, 0xc0, //0x0000c278 .quad -4540032458039542972 - 0xef, 0x8f, 0xc6, 0xe7, 0xb9, 0x26, 0x77, 0x64, //0x0000c280 .quad 7239297505920716783 - 0x15, 0x0a, 0x43, 0xbb, 0xaa, 0x34, 0x3e, 0xf1, //0x0000c288 .quad -1063354554122040811 - 0xf5, 0x19, 0xdc, 0x30, 0x34, 0x78, 0xca, 0x5e, //0x0000c290 .quad 6830403950414141941 - 0x4d, 0xe6, 0x09, 0xb5, 0xea, 0xe0, 0xc6, 0x96, //0x0000c298 .quad -7582125623967357363 - 0x72, 0x20, 0x13, 0x3d, 0x41, 0x16, 0x7d, 0xb6, //0x0000c2a0 .quad -5297053117264486286 - 0xe0, 0x5f, 0x4c, 0x62, 0x25, 0x99, 0x78, 0xbc, //0x0000c2a8 .quad -4865971011531808800 - 0x8f, 0xe8, 0x57, 0x8c, 0xd1, 0x5b, 0x1c, 0xe4, //0x0000c2b0 .quad -2009630378153219953 - 0xd8, 0x77, 0xdf, 0xba, 0x6e, 0xbf, 0x96, 0xeb, //0x0000c2b8 .quad -1470777745987373096 - 0x59, 0xf1, 0xb6, 0xf7, 0x62, 0xb9, 0x91, 0x8e, //0x0000c2c0 .quad -8173548013986844327 - 0xe7, 0xaa, 0xcb, 0x34, 0xa5, 0x37, 0x3e, 0x93, //0x0000c2c8 .quad -7836765118883190041 - 0xb0, 0xad, 0xa4, 0xb5, 0xbb, 0x27, 0x36, 0x72, //0x0000c2d0 .quad 8229809056225996208 - 0xa1, 0x95, 0xfe, 0x81, 0x8e, 0xc5, 0x0d, 0xb8, //0x0000c2d8 .quad -5184270380176599647 - 0x1c, 0xd9, 0x0d, 0xa3, 0xaa, 0xb1, 0xc3, 0xce, //0x0000c2e0 .quad -3547796734999668452 - 0x09, 0x3b, 0x7e, 0x22, 0xf2, 0x36, 0x11, 0xe6, //0x0000c2e8 .quad -1868651956793361655 - 0xb1, 0xa7, 0xe8, 0xa5, 0x0a, 0x4f, 0x3a, 0x21, //0x0000c2f0 .quad 2394313059052595121 - 0xe6, 0xe4, 0x8e, 0x55, 0x57, 0xc2, 0xca, 0x8f, //0x0000c2f8 .quad -8085436500636932890 - 0x9d, 0xd1, 0x62, 0x4f, 0xcd, 0xe2, 0x88, 0xa9, //0x0000c300 .quad -6230480713039031907 - 0x1f, 0x9e, 0xf2, 0x2a, 0xed, 0x72, 0xbd, 0xb3, //0x0000c308 .quad -5495109607368778209 - 0x05, 0x86, 0x3b, 0xa3, 0x80, 0x1b, 0xeb, 0x93, //0x0000c310 .quad -7788100891298789883 - 0xa7, 0x45, 0xaf, 0x75, 0xa8, 0xcf, 0xac, 0xe0, //0x0000c318 .quad -2257200990783584857 - 0xc3, 0x33, 0x05, 0x66, 0x30, 0xf1, 0x72, 0xbc, //0x0000c320 .quad -4867563057061743677 - 0x88, 0x8b, 0x8d, 0x49, 0xc9, 0x01, 0x6c, 0x8c, //0x0000c328 .quad -8328279646880822392 - 0xb4, 0x80, 0x86, 0x7f, 0x7c, 0xad, 0x8f, 0xeb, //0x0000c330 .quad -1472767802899791692 - 0x6a, 0xee, 0xf0, 0x9b, 0x3b, 0x02, 0x87, 0xaf, //0x0000c338 .quad -5798663540173640086 - 0xe1, 0x20, 0x68, 0x9f, 0xdb, 0x98, 0x73, 0xa6, //0x0000c340 .quad -6452645772052127519 - 0x05, 0x2a, 0xed, 0x82, 0xca, 0xc2, 0x68, 0xdb, //0x0000c348 .quad -2636643406789662203 - 0x8c, 0x14, 0xa1, 0x43, 0x89, 0x3f, 0x08, 0x88, //0x0000c350 .quad -8644589625959967604 - 0x43, 0x3a, 0xd4, 0x91, 0xbe, 0x79, 0x21, 0x89, //0x0000c358 .quad -8565431156884620733 - 0xb0, 0x59, 0x89, 0x94, 0x6b, 0x4f, 0x0a, 0x6a, //0x0000c360 .quad 7641007041259592112 - 0xd4, 0x48, 0x49, 0x36, 0x2e, 0xd8, 0x69, 0xab, //0x0000c368 .quad -6095102927678388012 - 0x1c, 0xb0, 0xab, 0x79, 0x46, 0xe3, 0x8c, 0x84, //0x0000c370 .quad -8895485272135061476 - 0x09, 0x9b, 0xdb, 0xc3, 0x39, 0x4e, 0x44, 0xd6, //0x0000c378 .quad -3007192641170597111 - 0x11, 0x4e, 0x0b, 0x0c, 0x0c, 0x0e, 0xd8, 0xf2, //0x0000c380 .quad -947992276657025519 - 0xe5, 0x40, 0x69, 0x1a, 0xe4, 0xb0, 0xea, 0x85, //0x0000c388 .quad -8797024428372705051 - 0x95, 0x21, 0x0e, 0x0f, 0x8f, 0x11, 0x8e, 0x6f, //0x0000c390 .quad 8038381691033493909 - 0x1f, 0x91, 0x03, 0x21, 0x1d, 0x5d, 0x65, 0xa7, //0x0000c398 .quad -6384594517038493409 - 0xfb, 0xa9, 0xd1, 0xd2, 0xf2, 0x95, 0x71, 0x4b, //0x0000c3a0 .quad 5436291095364479483 - 0x67, 0x75, 0x44, 0x69, 0x64, 0xb4, 0x3e, 0xd1, //0x0000c3a8 .quad -3369057127870728857 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000c3b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - //0x0000c3c0 .p2align 4, 0x00 - //0x0000c3c0 _POW_TAB - 0x01, 0x00, 0x00, 0x00, //0x0000c3c0 .long 1 - 0x03, 0x00, 0x00, 0x00, //0x0000c3c4 .long 3 - 0x06, 0x00, 0x00, 0x00, //0x0000c3c8 .long 6 - 0x09, 0x00, 0x00, 0x00, //0x0000c3cc .long 9 - 0x0d, 0x00, 0x00, 0x00, //0x0000c3d0 .long 13 - 0x10, 0x00, 0x00, 0x00, //0x0000c3d4 .long 16 - 0x13, 0x00, 0x00, 0x00, //0x0000c3d8 .long 19 - 0x17, 0x00, 0x00, 0x00, //0x0000c3dc .long 23 - 0x1a, 0x00, 0x00, 0x00, //0x0000c3e0 .long 26 - //0x0000c3e4 .p2align 2, 0x00 - //0x0000c3e4 _MASK_USE_NUMBER - 0x02, 0x00, 0x00, 0x00, //0x0000c3e4 .long 2 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000c3e8 .p2align 4, 0x00 - //0x0000c3f0 _Digits - 0x30, 0x30, 0x30, 0x31, 0x30, 0x32, 0x30, 0x33, 0x30, 0x34, 0x30, 0x35, 0x30, 0x36, 0x30, 0x37, //0x0000c3f0 QUAD $0x3330323031303030; QUAD $0x3730363035303430 // .ascii 16, '0001020304050607' - 0x30, 0x38, 0x30, 0x39, 0x31, 0x30, 0x31, 0x31, 0x31, 0x32, 0x31, 0x33, 0x31, 0x34, 0x31, 0x35, //0x0000c400 QUAD $0x3131303139303830; QUAD $0x3531343133313231 // .ascii 16, '0809101112131415' - 0x31, 0x36, 0x31, 0x37, 0x31, 0x38, 0x31, 0x39, 0x32, 0x30, 0x32, 0x31, 0x32, 0x32, 0x32, 0x33, //0x0000c410 QUAD $0x3931383137313631; QUAD $0x3332323231323032 // .ascii 16, '1617181920212223' - 0x32, 0x34, 0x32, 0x35, 0x32, 0x36, 0x32, 0x37, 0x32, 0x38, 0x32, 0x39, 0x33, 0x30, 0x33, 0x31, //0x0000c420 QUAD $0x3732363235323432; QUAD $0x3133303339323832 // .ascii 16, '2425262728293031' - 0x33, 0x32, 0x33, 0x33, 0x33, 0x34, 0x33, 0x35, 0x33, 0x36, 0x33, 0x37, 0x33, 0x38, 0x33, 0x39, //0x0000c430 QUAD $0x3533343333333233; QUAD $0x3933383337333633 // .ascii 16, '3233343536373839' - 0x34, 0x30, 0x34, 0x31, 0x34, 0x32, 0x34, 0x33, 0x34, 0x34, 0x34, 0x35, 0x34, 0x36, 0x34, 0x37, //0x0000c440 QUAD $0x3334323431343034; QUAD $0x3734363435343434 // .ascii 16, '4041424344454647' - 0x34, 0x38, 0x34, 0x39, 0x35, 0x30, 0x35, 0x31, 0x35, 0x32, 0x35, 0x33, 0x35, 0x34, 0x35, 0x35, //0x0000c450 QUAD $0x3135303539343834; QUAD $0x3535343533353235 // .ascii 16, '4849505152535455' - 0x35, 0x36, 0x35, 0x37, 0x35, 0x38, 0x35, 0x39, 0x36, 0x30, 0x36, 0x31, 0x36, 0x32, 0x36, 0x33, //0x0000c460 QUAD $0x3935383537353635; QUAD $0x3336323631363036 // .ascii 16, '5657585960616263' - 0x36, 0x34, 0x36, 0x35, 0x36, 0x36, 0x36, 0x37, 0x36, 0x38, 0x36, 0x39, 0x37, 0x30, 0x37, 0x31, //0x0000c470 QUAD $0x3736363635363436; QUAD $0x3137303739363836 // .ascii 16, '6465666768697071' - 0x37, 0x32, 0x37, 0x33, 0x37, 0x34, 0x37, 0x35, 0x37, 0x36, 0x37, 0x37, 0x37, 0x38, 0x37, 0x39, //0x0000c480 QUAD $0x3537343733373237; QUAD $0x3937383737373637 // .ascii 16, '7273747576777879' - 0x38, 0x30, 0x38, 0x31, 0x38, 0x32, 0x38, 0x33, 0x38, 0x34, 0x38, 0x35, 0x38, 0x36, 0x38, 0x37, //0x0000c490 QUAD $0x3338323831383038; QUAD $0x3738363835383438 // .ascii 16, '8081828384858687' - 0x38, 0x38, 0x38, 0x39, 0x39, 0x30, 0x39, 0x31, 0x39, 0x32, 0x39, 0x33, 0x39, 0x34, 0x39, 0x35, //0x0000c4a0 QUAD $0x3139303939383838; QUAD $0x3539343933393239 // .ascii 16, '8889909192939495' - 0x39, 0x36, 0x39, 0x37, 0x39, 0x38, 0x39, 0x39, //0x0000c4b0 QUAD $0x3939383937393639 // .ascii 8, '96979899' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000c4b8 .p2align 4, 0x00 - //0x0000c4c0 _pow10_ceil_sig.g - 0x4f, 0xdc, 0xbc, 0xbe, 0xfc, 0xb1, 0x77, 0xff, //0x0000c4c0 .quad -38366372719436721 - 0x7b, 0x0f, 0xbb, 0x13, 0x9c, 0xe8, 0xe8, 0x25, //0x0000c4c8 .quad 2731688931043774331 - 0xb1, 0x09, 0x36, 0xf7, 0x3d, 0xcf, 0xaa, 0x9f, //0x0000c4d0 .quad -6941508010590729807 - 0xad, 0xe9, 0x54, 0x8c, 0x61, 0x91, 0xb1, 0x77, //0x0000c4d8 .quad 8624834609543440813 - 0x1d, 0x8c, 0x03, 0x75, 0x0d, 0x83, 0x95, 0xc7, //0x0000c4e0 .quad -4065198994811024355 - 0x18, 0x24, 0x6a, 0xef, 0xb9, 0xf5, 0x9d, 0xd5, //0x0000c4e8 .quad -3054014793352862696 - 0x25, 0x6f, 0x44, 0xd2, 0xd0, 0xe3, 0x7a, 0xf9, //0x0000c4f0 .quad -469812725086392539 - 0x1e, 0xad, 0x44, 0x6b, 0x28, 0x73, 0x05, 0x4b, //0x0000c4f8 .quad 5405853545163697438 - 0x77, 0xc5, 0x6a, 0x83, 0x62, 0xce, 0xec, 0x9b, //0x0000c500 .quad -7211161980820077193 - 0x33, 0xec, 0x0a, 0x43, 0xf9, 0x67, 0xe3, 0x4e, //0x0000c508 .quad 5684501474941004851 - 0xd5, 0x76, 0x45, 0x24, 0xfb, 0x01, 0xe8, 0xc2, //0x0000c510 .quad -4402266457597708587 - 0x40, 0xa7, 0xcd, 0x93, 0xf7, 0x41, 0x9c, 0x22, //0x0000c518 .quad 2493940825248868160 - 0x8a, 0xd4, 0x56, 0xed, 0x79, 0x02, 0xa2, 0xf3, //0x0000c520 .quad -891147053569747830 - 0x10, 0x11, 0xc1, 0x78, 0x75, 0x52, 0x43, 0x6b, //0x0000c528 .quad 7729112049988473104 - 0xd6, 0x44, 0x56, 0x34, 0x8c, 0x41, 0x45, 0x98, //0x0000c530 .quad -7474495936122174250 - 0xaa, 0xaa, 0x78, 0x6b, 0x89, 0x13, 0x0a, 0x83, //0x0000c538 .quad -9004363024039368022 - 0x0c, 0xd6, 0x6b, 0x41, 0xef, 0x91, 0x56, 0xbe, //0x0000c540 .quad -4731433901725329908 - 0x54, 0xd5, 0x56, 0xc6, 0x6b, 0x98, 0xcc, 0x23, //0x0000c548 .quad 2579604275232953684 - 0x8f, 0xcb, 0xc6, 0x11, 0x6b, 0x36, 0xec, 0xed, //0x0000c550 .quad -1302606358729274481 - 0xa9, 0x8a, 0xec, 0xb7, 0x86, 0xbe, 0xbf, 0x2c, //0x0000c558 .quad 3224505344041192105 - 0x39, 0x3f, 0x1c, 0xeb, 0x02, 0xa2, 0xb3, 0x94, //0x0000c560 .quad -7731658001846878407 - 0xaa, 0xd6, 0xf3, 0x32, 0x14, 0xd7, 0xf7, 0x7b, //0x0000c568 .quad 8932844867666826922 - 0x07, 0x4f, 0xe3, 0xa5, 0x83, 0x8a, 0xe0, 0xb9, //0x0000c570 .quad -5052886483881210105 - 0x54, 0xcc, 0xb0, 0x3f, 0xd9, 0xcc, 0xf5, 0xda, //0x0000c578 .quad -2669001970698630060 - 0xc9, 0x22, 0x5c, 0x8f, 0x24, 0xad, 0x58, 0xe8, //0x0000c580 .quad -1704422086424124727 - 0x69, 0xff, 0x9c, 0x8f, 0x0f, 0x40, 0xb3, 0xd1, //0x0000c588 .quad -3336252463373287575 - 0xbe, 0x95, 0x99, 0xd9, 0x36, 0x6c, 0x37, 0x91, //0x0000c590 .quad -7982792831656159810 - 0xa2, 0x1f, 0xc2, 0xb9, 0x09, 0x08, 0x10, 0x23, //0x0000c598 .quad 2526528228819083170 - 0x2d, 0xfb, 0xff, 0x8f, 0x44, 0x47, 0x85, 0xb5, //0x0000c5a0 .quad -5366805021142811859 - 0x8b, 0xa7, 0x32, 0x28, 0x0c, 0x0a, 0xd4, 0xab, //0x0000c5a8 .quad -6065211750830921845 - 0xf9, 0xf9, 0xff, 0xb3, 0x15, 0x99, 0xe6, 0xe2, //0x0000c5b0 .quad -2096820258001126919 - 0x6d, 0x51, 0x3f, 0x32, 0x8f, 0x0c, 0xc9, 0x16, //0x0000c5b8 .quad 1641857348316123501 - 0x3b, 0xfc, 0x7f, 0x90, 0xad, 0x1f, 0xd0, 0x8d, //0x0000c5c0 .quad -8228041688891786181 - 0xe4, 0x92, 0x67, 0x7f, 0xd9, 0xa7, 0x3d, 0xae, //0x0000c5c8 .quad -5891368184943504668 - 0x4a, 0xfb, 0x9f, 0xf4, 0x98, 0x27, 0x44, 0xb1, //0x0000c5d0 .quad -5673366092687344822 - 0x9d, 0x77, 0x41, 0xdf, 0xcf, 0x11, 0xcd, 0x99, //0x0000c5d8 .quad -7364210231179380835 - 0x1d, 0xfa, 0xc7, 0x31, 0x7f, 0x31, 0x95, 0xdd, //0x0000c5e0 .quad -2480021597431793123 - 0x84, 0xd5, 0x11, 0xd7, 0x43, 0x56, 0x40, 0x40, //0x0000c5e8 .quad 4629795266307937668 - 0x52, 0xfc, 0x1c, 0x7f, 0xef, 0x3e, 0x7d, 0x8a, //0x0000c5f0 .quad -8467542526035952558 - 0x73, 0x25, 0x6b, 0x66, 0xea, 0x35, 0x28, 0x48, //0x0000c5f8 .quad 5199465050656154995 - 0x66, 0x3b, 0xe4, 0x5e, 0xab, 0x8e, 0x1c, 0xad, //0x0000c600 .quad -5972742139117552794 - 0xd0, 0xee, 0x05, 0x00, 0x65, 0x43, 0x32, 0xda, //0x0000c608 .quad -2724040723534582064 - 0x40, 0x4a, 0x9d, 0x36, 0x56, 0xb2, 0x63, 0xd8, //0x0000c610 .quad -2854241655469553088 - 0x83, 0x6a, 0x07, 0x40, 0x3e, 0xd4, 0xbe, 0x90, //0x0000c618 .quad -8016736922845615485 - 0x68, 0x4e, 0x22, 0xe2, 0x75, 0x4f, 0x3e, 0x87, //0x0000c620 .quad -8701430062309552536 - 0x92, 0xa2, 0x04, 0xe8, 0xa6, 0x44, 0x77, 0x5a, //0x0000c628 .quad 6518754469289960082 - 0x02, 0xe2, 0xaa, 0x5a, 0x53, 0xe3, 0x0d, 0xa9, //0x0000c630 .quad -6265101559459552766 - 0x37, 0xcb, 0x05, 0xa2, 0xd0, 0x15, 0x15, 0x71, //0x0000c638 .quad 8148443086612450103 - 0x83, 0x9a, 0x55, 0x31, 0x28, 0x5c, 0x51, 0xd3, //0x0000c640 .quad -3219690930897053053 - 0x04, 0x3e, 0x87, 0xca, 0x44, 0x5b, 0x5a, 0x0d, //0x0000c648 .quad 962181821410786820 - 0x91, 0x80, 0xd5, 0x1e, 0x99, 0xd9, 0x12, 0x84, //0x0000c650 .quad -8929835859451740015 - 0xc3, 0x86, 0x94, 0xfe, 0x0a, 0x79, 0x58, 0xe8, //0x0000c658 .quad -1704479370831952189 - 0xb6, 0xe0, 0x8a, 0x66, 0xff, 0x8f, 0x17, 0xa5, //0x0000c660 .quad -6550608805887287114 - 0x73, 0xa8, 0x39, 0xbe, 0x4d, 0x97, 0x6e, 0x62, //0x0000c668 .quad 7092772823314835571 - 0xe3, 0x98, 0x2d, 0x40, 0xff, 0x73, 0x5d, 0xce, //0x0000c670 .quad -3576574988931720989 - 0x90, 0x12, 0xc8, 0x2d, 0x21, 0x3d, 0x0a, 0xfb, //0x0000c678 .quad -357406007711231344 - 0x8e, 0x7f, 0x1c, 0x88, 0x7f, 0x68, 0xfa, 0x80, //0x0000c680 .quad -9152888395723407474 - 0x9a, 0x0b, 0x9d, 0xbc, 0x34, 0x66, 0xe6, 0x7c, //0x0000c688 .quad 8999993282035256218 - 0x72, 0x9f, 0x23, 0x6a, 0x9f, 0x02, 0x39, 0xa1, //0x0000c690 .quad -6829424476226871438 - 0x81, 0x4e, 0xc4, 0xeb, 0xc1, 0xff, 0x1f, 0x1c, //0x0000c698 .quad 2026619565689294465 - 0x4e, 0x87, 0xac, 0x44, 0x47, 0x43, 0x87, 0xc9, //0x0000c6a0 .quad -3925094576856201394 - 0x21, 0x62, 0xb5, 0x66, 0xb2, 0xff, 0x27, 0xa3, //0x0000c6a8 .quad -6690097579743157727 - 0x22, 0xa9, 0xd7, 0x15, 0x19, 0x14, 0xe9, 0xfb, //0x0000c6b0 .quad -294682202642863838 - 0xa9, 0xba, 0x62, 0x00, 0x9f, 0xff, 0xf1, 0x4b, //0x0000c6b8 .quad 5472436080603216553 - 0xb5, 0xc9, 0xa6, 0xad, 0x8f, 0xac, 0x71, 0x9d, //0x0000c6c0 .quad -7101705404292871755 - 0xaa, 0xb4, 0x3d, 0x60, 0xc3, 0x3f, 0x77, 0x6f, //0x0000c6c8 .quad 8031958568804398250 - 0x22, 0x7c, 0x10, 0x99, 0xb3, 0x17, 0xce, 0xc4, //0x0000c6d0 .quad -4265445736938701790 - 0xd4, 0x21, 0x4d, 0x38, 0xb4, 0x0f, 0x55, 0xcb, //0x0000c6d8 .quad -3795109844276665900 - 0x2b, 0x9b, 0x54, 0x7f, 0xa0, 0x9d, 0x01, 0xf6, //0x0000c6e0 .quad -720121152745989333 - 0x49, 0x6a, 0x60, 0x46, 0xa1, 0x53, 0x2a, 0x7e, //0x0000c6e8 .quad 9091170749936331337 - 0xfb, 0xe0, 0x94, 0x4f, 0x84, 0x02, 0xc1, 0x99, //0x0000c6f0 .quad -7367604748107325189 - 0x6e, 0x42, 0xfc, 0xcb, 0x44, 0x74, 0xda, 0x2e, //0x0000c6f8 .quad 3376138709496513134 - 0x39, 0x19, 0x7a, 0x63, 0x25, 0x43, 0x31, 0xc0, //0x0000c700 .quad -4597819916706768583 - 0x09, 0x53, 0xfb, 0xfe, 0x55, 0x11, 0x91, 0xfa, //0x0000c708 .quad -391512631556746487 - 0x88, 0x9f, 0x58, 0xbc, 0xee, 0x93, 0x3d, 0xf0, //0x0000c710 .quad -1135588877456072824 - 0xcb, 0x27, 0xba, 0x7e, 0xab, 0x55, 0x35, 0x79, //0x0000c718 .quad 8733981247408842699 - 0xb5, 0x63, 0xb7, 0x35, 0x75, 0x7c, 0x26, 0x96, //0x0000c720 .quad -7627272076051127371 - 0xdf, 0x58, 0x34, 0x2f, 0x8b, 0x55, 0xc1, 0x4b, //0x0000c728 .quad 5458738279630526687 - 0xa2, 0x3c, 0x25, 0x83, 0x92, 0x1b, 0xb0, 0xbb, //0x0000c730 .quad -4922404076636521310 - 0x17, 0x6f, 0x01, 0xfb, 0xed, 0xaa, 0xb1, 0x9e, //0x0000c738 .quad -7011635205744005353 - 0xcb, 0x8b, 0xee, 0x23, 0x77, 0x22, 0x9c, 0xea, //0x0000c740 .quad -1541319077368263733 - 0xdd, 0xca, 0xc1, 0x79, 0xa9, 0x15, 0x5e, 0x46, //0x0000c748 .quad 5070514048102157021 - 0x5f, 0x17, 0x75, 0x76, 0x8a, 0x95, 0xa1, 0x92, //0x0000c750 .quad -7880853450996246689 - 0xca, 0x1e, 0x19, 0xec, 0x89, 0xcd, 0xfa, 0x0b, //0x0000c758 .quad 863228270850154186 - 0x36, 0x5d, 0x12, 0x14, 0xed, 0xfa, 0x49, 0xb7, //0x0000c760 .quad -5239380795317920458 - 0x7c, 0x66, 0x1f, 0x67, 0xec, 0x80, 0xf9, 0xce, //0x0000c768 .quad -3532650679864695172 - 0x84, 0xf4, 0x16, 0x59, 0xa8, 0x79, 0x1c, 0xe5, //0x0000c770 .quad -1937539975720012668 - 0x1b, 0x40, 0xe7, 0x80, 0x27, 0xe1, 0xb7, 0x82, //0x0000c778 .quad -9027499368258256869 - 0xd2, 0x58, 0xae, 0x37, 0x09, 0xcc, 0x31, 0x8f, //0x0000c780 .quad -8128491512466089774 - 0x11, 0x88, 0x90, 0xb0, 0xb8, 0xec, 0xb2, 0xd1, //0x0000c788 .quad -3336344095947716591 - 0x07, 0xef, 0x99, 0x85, 0x0b, 0x3f, 0xfe, 0xb2, //0x0000c790 .quad -5548928372155224313 - 0x16, 0xaa, 0xb4, 0xdc, 0xe6, 0xa7, 0x1f, 0x86, //0x0000c798 .quad -8782116138362033642 - 0xc9, 0x6a, 0x00, 0x67, 0xce, 0xce, 0xbd, 0xdf, //0x0000c7a0 .quad -2324474446766642487 - 0x9b, 0xd4, 0xe1, 0x93, 0xe0, 0x91, 0xa7, 0x67, //0x0000c7a8 .quad 7469098900757009563 - 0xbd, 0x42, 0x60, 0x00, 0x41, 0xa1, 0xd6, 0x8b, //0x0000c7b0 .quad -8370325556870233411 - 0xe1, 0x24, 0x6d, 0x5c, 0x2c, 0xbb, 0xc8, 0xe0, //0x0000c7b8 .quad -2249342214667950879 - 0x6d, 0x53, 0x78, 0x40, 0x91, 0x49, 0xcc, 0xae, //0x0000c7c0 .quad -5851220927660403859 - 0x19, 0x6e, 0x88, 0x73, 0xf7, 0xe9, 0xfa, 0x58, //0x0000c7c8 .quad 6411694268519837209 - 0x48, 0x68, 0x96, 0x90, 0xf5, 0x5b, 0x7f, 0xda, //0x0000c7d0 .quad -2702340141148116920 - 0x9f, 0x89, 0x6a, 0x50, 0x75, 0xa4, 0x39, 0xaf, //0x0000c7d8 .quad -5820440219632367201 - 0x2d, 0x01, 0x5e, 0x7a, 0x79, 0x99, 0x8f, 0x88, //0x0000c7e0 .quad -8606491615858654931 - 0x04, 0x96, 0x42, 0x52, 0xc9, 0x06, 0x84, 0x6d, //0x0000c7e8 .quad 7891439908798240260 - 0x78, 0x81, 0xf5, 0xd8, 0xd7, 0x7f, 0xb3, 0xaa, //0x0000c7f0 .quad -6146428501395930760 - 0x84, 0x3b, 0xd3, 0xa6, 0x7b, 0x08, 0xe5, 0xc8, //0x0000c7f8 .quad -3970758169284363388 - 0xd6, 0xe1, 0x32, 0xcf, 0xcd, 0x5f, 0x60, 0xd5, //0x0000c800 .quad -3071349608317525546 - 0x65, 0x0a, 0x88, 0x90, 0x9a, 0x4a, 0x1e, 0xfb, //0x0000c808 .quad -351761693178066331 - 0x26, 0xcd, 0x7f, 0xa1, 0xe0, 0x3b, 0x5c, 0x85, //0x0000c810 .quad -8837122532839535322 - 0x80, 0x06, 0x55, 0x9a, 0xa0, 0xee, 0xf2, 0x5c, //0x0000c818 .quad 6697677969404790400 - 0x6f, 0xc0, 0xdf, 0xc9, 0xd8, 0x4a, 0xb3, 0xa6, //0x0000c820 .quad -6434717147622031249 - 0x1f, 0x48, 0xea, 0xc0, 0x48, 0xaa, 0x2f, 0xf4, //0x0000c828 .quad -851274575098787809 - 0x8b, 0xb0, 0x57, 0xfc, 0x8e, 0x1d, 0x60, 0xd0, //0x0000c830 .quad -3431710416100151157 - 0x27, 0xda, 0x24, 0xf1, 0xda, 0x94, 0x3b, 0xf1, //0x0000c838 .quad -1064093218873484761 - 0x57, 0xce, 0xb6, 0x5d, 0x79, 0x12, 0x3c, 0x82, //0x0000c840 .quad -9062348037703676329 - 0x59, 0x08, 0xb7, 0xd6, 0x08, 0x3d, 0xc5, 0x76, //0x0000c848 .quad 8558313775058847833 - 0xed, 0x81, 0x24, 0xb5, 0x17, 0x17, 0xcb, 0xa2, //0x0000c850 .quad -6716249028702207507 - 0x6f, 0xca, 0x64, 0x0c, 0x4b, 0x8c, 0x76, 0x54, //0x0000c858 .quad 6086206200396171887 - 0x68, 0xa2, 0x6d, 0xa2, 0xdd, 0xdc, 0x7d, 0xcb, //0x0000c860 .quad -3783625267450371480 - 0x0a, 0xfd, 0x7d, 0xcf, 0x5d, 0x2f, 0x94, 0xa9, //0x0000c868 .quad -6227300304786948854 - 0x02, 0x0b, 0x09, 0x0b, 0x15, 0x54, 0x5d, 0xfe, //0x0000c870 .quad -117845565885576446 - 0x4d, 0x7c, 0x5d, 0x43, 0x35, 0x3b, 0xf9, 0xd3, //0x0000c878 .quad -3172439362556298163 - 0xe1, 0xa6, 0xe5, 0x26, 0x8d, 0x54, 0xfa, 0x9e, //0x0000c880 .quad -6991182506319567135 - 0xb0, 0x6d, 0x1a, 0x4a, 0x01, 0xc5, 0x7b, 0xc4, //0x0000c888 .quad -4288617610811380304 - 0x9a, 0x10, 0x9f, 0x70, 0xb0, 0xe9, 0xb8, 0xc6, //0x0000c890 .quad -4127292114472071014 - 0x1c, 0x09, 0xa1, 0x9c, 0x41, 0xb6, 0x9a, 0x35, //0x0000c898 .quad 3862600023340550428 - 0xc0, 0xd4, 0xc6, 0x8c, 0x1c, 0x24, 0x67, 0xf8, //0x0000c8a0 .quad -547429124662700864 - 0x63, 0x4b, 0xc9, 0x03, 0xd2, 0x63, 0x01, 0xc3, //0x0000c8a8 .quad -4395122007679087773 - 0xf8, 0x44, 0xfc, 0xd7, 0x91, 0x76, 0x40, 0x9b, //0x0000c8b0 .quad -7259672230555269896 - 0x1e, 0xcf, 0x5d, 0x42, 0x63, 0xde, 0xe0, 0x79, //0x0000c8b8 .quad 8782263791269039902 - 0x36, 0x56, 0xfb, 0x4d, 0x36, 0x94, 0x10, 0xc2, //0x0000c8c0 .quad -4462904269766699466 - 0xe5, 0x42, 0xf5, 0x12, 0xfc, 0x15, 0x59, 0x98, //0x0000c8c8 .quad -7468914334623251739 - 0xc4, 0x2b, 0x7a, 0xe1, 0x43, 0xb9, 0x94, 0xf2, //0x0000c8d0 .quad -966944318780986428 - 0x9e, 0x93, 0xb2, 0x17, 0x7b, 0x5b, 0x6f, 0x3e, //0x0000c8d8 .quad 4498915137003099038 - 0x5a, 0x5b, 0xec, 0x6c, 0xca, 0xf3, 0x9c, 0x97, //0x0000c8e0 .quad -7521869226879198374 - 0x43, 0x9c, 0xcf, 0xee, 0x2c, 0x99, 0x05, 0xa7, //0x0000c8e8 .quad -6411550076227838909 - 0x31, 0x72, 0x27, 0x08, 0xbd, 0x30, 0x84, 0xbd, //0x0000c8f0 .quad -4790650515171610063 - 0x54, 0x83, 0x83, 0x2a, 0x78, 0xff, 0xc6, 0x50, //0x0000c8f8 .quad 5820620459997365076 - 0xbd, 0x4e, 0x31, 0x4a, 0xec, 0x3c, 0xe5, 0xec, //0x0000c900 .quad -1376627125537124675 - 0x29, 0x64, 0x24, 0x35, 0x56, 0xbf, 0xf8, 0xa4, //0x0000c908 .quad -6559282480285457367 - 0x36, 0xd1, 0x5e, 0xae, 0x13, 0x46, 0x0f, 0x94, //0x0000c910 .quad -7777920981101784778 - 0x9a, 0xbe, 0x36, 0xe1, 0x95, 0x77, 0x1b, 0x87, //0x0000c918 .quad -8711237568605798758 - 0x84, 0x85, 0xf6, 0x99, 0x98, 0x17, 0x13, 0xb9, //0x0000c920 .quad -5110715207949843068 - 0x40, 0x6e, 0x84, 0x59, 0x7b, 0x55, 0xe2, 0x28, //0x0000c928 .quad 2946011094524915264 - 0xe5, 0x26, 0x74, 0xc0, 0x7e, 0xdd, 0x57, 0xe7, //0x0000c930 .quad -1776707991509915931 - 0xd0, 0x89, 0xe5, 0x2f, 0xda, 0xea, 0x1a, 0x33, //0x0000c938 .quad 3682513868156144080 - 0x4f, 0x98, 0x48, 0x38, 0x6f, 0xea, 0x96, 0x90, //0x0000c940 .quad -8027971522334779313 - 0x22, 0x76, 0xef, 0x5d, 0xc8, 0xd2, 0xf0, 0x3f, //0x0000c948 .quad 4607414176811284002 - 0x63, 0xbe, 0x5a, 0x06, 0x0b, 0xa5, 0xbc, 0xb4, //0x0000c950 .quad -5423278384491086237 - 0xaa, 0x53, 0x6b, 0x75, 0x7a, 0x07, 0xed, 0x0f, //0x0000c958 .quad 1147581702586717098 - 0xfb, 0x6d, 0xf1, 0xc7, 0x4d, 0xce, 0xeb, 0xe1, //0x0000c960 .quad -2167411962186469893 - 0x95, 0x28, 0xc6, 0x12, 0x59, 0x49, 0xe8, 0xd3, //0x0000c968 .quad -3177208890193991531 - 0xbd, 0xe4, 0xf6, 0x9c, 0xf0, 0x60, 0x33, 0x8d, //0x0000c970 .quad -8272161504007625539 - 0x5d, 0xd9, 0xbb, 0xab, 0xd7, 0x2d, 0x71, 0x64, //0x0000c978 .quad 7237616480483531101 - 0xec, 0x9d, 0x34, 0xc4, 0x2c, 0x39, 0x80, 0xb0, //0x0000c980 .quad -5728515861582144020 - 0xb4, 0xcf, 0xaa, 0x96, 0x4d, 0x79, 0x8d, 0xbd, //0x0000c988 .quad -4788037454677749836 - 0x67, 0xc5, 0x41, 0xf5, 0x77, 0x47, 0xa0, 0xdc, //0x0000c990 .quad -2548958808550292121 - 0xa1, 0x83, 0x55, 0xfc, 0xa0, 0xd7, 0xf0, 0xec, //0x0000c998 .quad -1373360799919799391 - 0x60, 0x1b, 0x49, 0xf9, 0xaa, 0x2c, 0xe4, 0x89, //0x0000c9a0 .quad -8510628282985014432 - 0x45, 0x72, 0xb5, 0x9d, 0xc4, 0x86, 0x16, 0xf4, //0x0000c9a8 .quad -858350499949874619 - 0x39, 0x62, 0x9b, 0xb7, 0xd5, 0x37, 0x5d, 0xac, //0x0000c9b0 .quad -6026599335303880135 - 0xd6, 0xce, 0x22, 0xc5, 0x75, 0x28, 0x1c, 0x31, //0x0000c9b8 .quad 3538747893490044630 - 0xc7, 0x3a, 0x82, 0x25, 0xcb, 0x85, 0x74, 0xd7, //0x0000c9c0 .quad -2921563150702462265 - 0x8c, 0x82, 0x6b, 0x36, 0x93, 0x32, 0x63, 0x7d, //0x0000c9c8 .quad 9035120885289943692 - 0xbc, 0x64, 0x71, 0xf7, 0x9e, 0xd3, 0xa8, 0x86, //0x0000c9d0 .quad -8743505996830120772 - 0x98, 0x31, 0x03, 0x02, 0x9c, 0xff, 0x5d, 0xae, //0x0000c9d8 .quad -5882264492762254952 - 0xeb, 0xbd, 0x4d, 0xb5, 0x86, 0x08, 0x53, 0xa8, //0x0000c9e0 .quad -6317696477610263061 - 0xfd, 0xfd, 0x83, 0x02, 0x83, 0x7f, 0xf5, 0xd9, //0x0000c9e8 .quad -2741144597525430787 - 0x66, 0x2d, 0xa1, 0x62, 0xa8, 0xca, 0x67, 0xd2, //0x0000c9f0 .quad -3285434578585440922 - 0x7c, 0xfd, 0x24, 0xc3, 0x63, 0xdf, 0x72, 0xd0, //0x0000c9f8 .quad -3426430746906788484 - 0x60, 0xbc, 0xa4, 0x3d, 0xa9, 0xde, 0x80, 0x83, //0x0000ca00 .quad -8970925639256982432 - 0x6e, 0x1e, 0xf7, 0x59, 0x9e, 0xcb, 0x47, 0x42, //0x0000ca08 .quad 4776009810824339054 - 0x78, 0xeb, 0x0d, 0x8d, 0x53, 0x16, 0x61, 0xa4, //0x0000ca10 .quad -6601971030643840136 - 0x09, 0xe6, 0x74, 0xf0, 0x85, 0xbe, 0xd9, 0x52, //0x0000ca18 .quad 5970012263530423817 - 0x56, 0x66, 0x51, 0x70, 0xe8, 0x5b, 0x79, 0xcd, //0x0000ca20 .quad -3640777769877412266 - 0x8c, 0x1f, 0x92, 0x6c, 0x27, 0x2e, 0x90, 0x67, //0x0000ca28 .quad 7462515329413029772 - 0xf6, 0xdf, 0x32, 0x46, 0x71, 0xd9, 0x6b, 0x80, //0x0000ca30 .quad -9193015133814464522 - 0xb7, 0x53, 0xdb, 0xa3, 0xd8, 0x1c, 0xba, 0x00, //0x0000ca38 .quad 52386062455755703 - 0xf3, 0x97, 0xbf, 0x97, 0xcd, 0xcf, 0x86, 0xa0, //0x0000ca40 .quad -6879582898840692749 - 0xa5, 0x28, 0xd2, 0xcc, 0x0e, 0xa4, 0xe8, 0x80, //0x0000ca48 .quad -9157889458785081179 - 0xf0, 0x7d, 0xaf, 0xfd, 0xc0, 0x83, 0xa8, 0xc8, //0x0000ca50 .quad -3987792605123478032 - 0xce, 0xb2, 0x06, 0x80, 0x12, 0xcd, 0x22, 0x61, //0x0000ca58 .quad 6999382250228200142 - 0x6c, 0x5d, 0x1b, 0x3d, 0xb1, 0xa4, 0xd2, 0xfa, //0x0000ca60 .quad -373054737976959636 - 0x82, 0x5f, 0x08, 0x20, 0x57, 0x80, 0x6b, 0x79, //0x0000ca68 .quad 8749227812785250178 - 0x63, 0x1a, 0x31, 0xc6, 0xee, 0xa6, 0xc3, 0x9c, //0x0000ca70 .quad -7150688238876681629 - 0xb1, 0x3b, 0x05, 0x74, 0x36, 0x30, 0xe3, 0xcb, //0x0000ca78 .quad -3755104653863994447 - 0xfc, 0x60, 0xbd, 0x77, 0xaa, 0x90, 0xf4, 0xc3, //0x0000ca80 .quad -4326674280168464132 - 0x9d, 0x8a, 0x06, 0x11, 0x44, 0xfc, 0xdb, 0xbe, //0x0000ca88 .quad -4693880817329993059 - 0x3b, 0xb9, 0xac, 0x15, 0xd5, 0xb4, 0xf1, 0xf4, //0x0000ca90 .quad -796656831783192261 - 0x45, 0x2d, 0x48, 0x15, 0x55, 0xfb, 0x92, 0xee, //0x0000ca98 .quad -1255665003235103419 - 0xc5, 0xf3, 0x8b, 0x2d, 0x05, 0x11, 0x17, 0x99, //0x0000caa0 .quad -7415439547505577019 - 0x4b, 0x1c, 0x4d, 0x2d, 0x15, 0xdd, 0x1b, 0x75, //0x0000caa8 .quad 8438581409832836171 - 0xb6, 0xf0, 0xee, 0x78, 0x46, 0xd5, 0x5c, 0xbf, //0x0000cab0 .quad -4657613415954583370 - 0x5e, 0x63, 0xa0, 0x78, 0x5a, 0xd4, 0x62, 0xd2, //0x0000cab8 .quad -3286831292991118498 - 0xe4, 0xac, 0x2a, 0x17, 0x98, 0x0a, 0x34, 0xef, //0x0000cac0 .quad -1210330751515841308 - 0x35, 0x7c, 0xc8, 0x16, 0x71, 0x89, 0xfb, 0x86, //0x0000cac8 .quad -8720225134666286027 - 0x0e, 0xac, 0x7a, 0x0e, 0x9f, 0x86, 0x80, 0x95, //0x0000cad0 .quad -7673985747338482674 - 0xa1, 0x4d, 0x3d, 0xae, 0xe6, 0x35, 0x5d, 0xd4, //0x0000cad8 .quad -3144297699952734815 - 0x12, 0x57, 0x19, 0xd2, 0x46, 0xa8, 0xe0, 0xba, //0x0000cae0 .quad -4980796165745715438 - 0x0a, 0xa1, 0xcc, 0x59, 0x60, 0x83, 0x74, 0x89, //0x0000cae8 .quad -8542058143368306422 - 0xd7, 0xac, 0x9f, 0x86, 0x58, 0xd2, 0x98, 0xe9, //0x0000caf0 .quad -1614309188754756393 - 0x4c, 0xc9, 0x3f, 0x70, 0x38, 0xa4, 0xd1, 0x2b, //0x0000caf8 .quad 3157485376071780684 - 0x06, 0xcc, 0x23, 0x54, 0x77, 0x83, 0xff, 0x91, //0x0000cb00 .quad -7926472270612804602 - 0xd0, 0xdd, 0x27, 0x46, 0xa3, 0x06, 0x63, 0x7b, //0x0000cb08 .quad 8890957387685944784 - 0x08, 0xbf, 0x2c, 0x29, 0x55, 0x64, 0x7f, 0xb6, //0x0000cb10 .quad -5296404319838617848 - 0x43, 0xd5, 0xb1, 0x17, 0x4c, 0xc8, 0x3b, 0x1a, //0x0000cb18 .quad 1890324697752655171 - 0xca, 0xee, 0x77, 0x73, 0x6a, 0x3d, 0x1f, 0xe4, //0x0000cb20 .quad -2008819381370884406 - 0x94, 0x4a, 0x9e, 0x1d, 0x5f, 0xba, 0xca, 0x20, //0x0000cb28 .quad 2362905872190818964 - 0x3e, 0xf5, 0x2a, 0x88, 0x62, 0x86, 0x93, 0x8e, //0x0000cb30 .quad -8173041140997884610 - 0x9d, 0xee, 0x82, 0x72, 0x7b, 0xb4, 0x7e, 0x54, //0x0000cb38 .quad 6088502188546649757 - 0x8d, 0xb2, 0x35, 0x2a, 0xfb, 0x67, 0x38, 0xb2, //0x0000cb40 .quad -5604615407819967859 - 0x44, 0xaa, 0x23, 0x4f, 0x9a, 0x61, 0x9e, 0xe9, //0x0000cb48 .quad -1612744301171463612 - 0x31, 0x1f, 0xc3, 0xf4, 0xf9, 0x81, 0xc6, 0xde, //0x0000cb50 .quad -2394083241347571919 - 0xd5, 0x94, 0xec, 0xe2, 0x00, 0xfa, 0x05, 0x64, //0x0000cb58 .quad 7207441660390446293 - 0x7e, 0xf3, 0xf9, 0x38, 0x3c, 0x11, 0x3c, 0x8b, //0x0000cb60 .quad -8413831053483314306 - 0x05, 0xdd, 0xd3, 0x8d, 0x40, 0xbc, 0x83, 0xde, //0x0000cb68 .quad -2412877989897052923 - 0x5e, 0x70, 0x38, 0x47, 0x8b, 0x15, 0x0b, 0xae, //0x0000cb70 .quad -5905602798426754978 - 0x46, 0xd4, 0x48, 0xb1, 0x50, 0xab, 0x24, 0x96, //0x0000cb78 .quad -7627783505798704058 - 0x76, 0x8c, 0x06, 0x19, 0xee, 0xda, 0x8d, 0xd9, //0x0000cb80 .quad -2770317479606055818 - 0x58, 0x09, 0x9b, 0xdd, 0x24, 0xd6, 0xad, 0x3b, //0x0000cb88 .quad 4300328673033783640 - 0xc9, 0x17, 0xa4, 0xcf, 0xd4, 0xa8, 0xf8, 0x87, //0x0000cb90 .quad -8648977452394866743 - 0xd7, 0xe5, 0x80, 0x0a, 0xd7, 0xa5, 0x4c, 0xe5, //0x0000cb98 .quad -1923980597781273129 - 0xbc, 0x1d, 0x8d, 0x03, 0x0a, 0xd3, 0xf6, 0xa9, //0x0000cba0 .quad -6199535797066195524 - 0x4d, 0x1f, 0x21, 0xcd, 0x4c, 0xcf, 0x9f, 0x5e, //0x0000cba8 .quad 6818396289628184397 - 0x2b, 0x65, 0x70, 0x84, 0xcc, 0x87, 0x74, 0xd4, //0x0000cbb0 .quad -3137733727905356501 - 0x20, 0x67, 0x69, 0x00, 0x20, 0xc3, 0x47, 0x76, //0x0000cbb8 .quad 8522995362035230496 - 0x3b, 0x3f, 0xc6, 0xd2, 0xdf, 0xd4, 0xc8, 0x84, //0x0000cbc0 .quad -8878612607581929669 - 0x74, 0xe0, 0x41, 0x00, 0xf4, 0xd9, 0xec, 0x29, //0x0000cbc8 .quad 3021029092058325108 - 0x09, 0xcf, 0x77, 0xc7, 0x17, 0x0a, 0xfb, 0xa5, //0x0000cbd0 .quad -6486579741050024183 - 0x91, 0x58, 0x52, 0x00, 0x71, 0x10, 0x68, 0xf4, //0x0000cbd8 .quad -835399653354481519 - 0xcc, 0xc2, 0x55, 0xb9, 0x9d, 0xcc, 0x79, 0xcf, //0x0000cbe0 .quad -3496538657885142324 - 0xb5, 0xee, 0x66, 0x40, 0x8d, 0x14, 0x82, 0x71, //0x0000cbe8 .quad 8179122470161673909 - 0xbf, 0x99, 0xd5, 0x93, 0xe2, 0x1f, 0xac, 0x81, //0x0000cbf0 .quad -9102865688819295809 - 0x31, 0x55, 0x40, 0x48, 0xd8, 0x4c, 0xf1, 0xc6, //0x0000cbf8 .quad -4111420493003729615 - 0x2f, 0x00, 0xcb, 0x38, 0xdb, 0x27, 0x17, 0xa2, //0x0000cc00 .quad -6766896092596731857 - 0x7d, 0x6a, 0x50, 0x5a, 0x0e, 0xa0, 0xad, 0xb8, //0x0000cc08 .quad -5139275616254662019 - 0x3b, 0xc0, 0xfd, 0x06, 0xd2, 0xf1, 0x9c, 0xca, //0x0000cc10 .quad -3846934097318526917 - 0x1d, 0x85, 0xe4, 0xf0, 0x11, 0x08, 0xd9, 0xa6, //0x0000cc18 .quad -6424094520318327523 - 0x4a, 0x30, 0xbd, 0x88, 0x46, 0x2e, 0x44, 0xfd, //0x0000cc20 .quad -196981603220770742 - 0x64, 0xa6, 0x1d, 0x6d, 0x16, 0x4a, 0x8f, 0x90, //0x0000cc28 .quad -8030118150397909404 - 0x2e, 0x3e, 0x76, 0x15, 0xec, 0x9c, 0x4a, 0x9e, //0x0000cc30 .quad -7040642529654063570 - 0xff, 0x87, 0x32, 0x04, 0x4e, 0x8e, 0x59, 0x9a, //0x0000cc38 .quad -7324666853212387329 - 0xba, 0xcd, 0xd3, 0x1a, 0x27, 0x44, 0xdd, 0xc5, //0x0000cc40 .quad -4189117143640191558 - 0xfe, 0x29, 0x3f, 0x85, 0xe1, 0xf1, 0xef, 0x40, //0x0000cc48 .quad 4679224488766679550 - 0x28, 0xc1, 0x88, 0xe1, 0x30, 0x95, 0x54, 0xf7, //0x0000cc50 .quad -624710411122851544 - 0x7d, 0xf4, 0x8e, 0xe6, 0x59, 0xee, 0x2b, 0xd1, //0x0000cc58 .quad -3374341425896426371 - 0xb9, 0x78, 0xf5, 0x8c, 0x3e, 0xdd, 0x94, 0x9a, //0x0000cc60 .quad -7307973034592864071 - 0xcf, 0x58, 0x19, 0x30, 0xf8, 0x74, 0xbb, 0x82, //0x0000cc68 .quad -9026492418826348337 - 0xe7, 0xd6, 0x32, 0x30, 0x8e, 0x14, 0x3a, 0xc1, //0x0000cc70 .quad -4523280274813692185 - 0x02, 0xaf, 0x1f, 0x3c, 0x36, 0x52, 0x6a, 0xe3, //0x0000cc78 .quad -2059743486678159614 - 0xa1, 0x8c, 0x3f, 0xbc, 0xb1, 0x99, 0x88, 0xf1, //0x0000cc80 .quad -1042414325089727327 - 0xc2, 0x9a, 0x27, 0xcb, 0xc3, 0xe6, 0x44, 0xdc, //0x0000cc88 .quad -2574679358347699518 - 0xe5, 0xb7, 0xa7, 0x15, 0x0f, 0x60, 0xf5, 0x96, //0x0000cc90 .quad -7569037980822161435 - 0xba, 0xc0, 0xf8, 0x5e, 0x3a, 0x10, 0xab, 0x29, //0x0000cc98 .quad 3002511419460075706 - 0xde, 0xa5, 0x11, 0xdb, 0x12, 0xb8, 0xb2, 0xbc, //0x0000cca0 .quad -4849611457600313890 - 0xe8, 0xf0, 0xb6, 0xf6, 0x48, 0xd4, 0x15, 0x74, //0x0000cca8 .quad 8364825292752482536 - 0x56, 0x0f, 0xd6, 0x91, 0x17, 0x66, 0xdf, 0xeb, //0x0000ccb0 .quad -1450328303573004458 - 0x22, 0xad, 0x64, 0x34, 0x5b, 0x49, 0x1b, 0x11, //0x0000ccb8 .quad 1232659579085827362 - 0x95, 0xc9, 0x25, 0xbb, 0xce, 0x9f, 0x6b, 0x93, //0x0000ccc0 .quad -7823984217374209643 - 0x35, 0xec, 0xbe, 0x00, 0xd9, 0x0d, 0xb1, 0xca, //0x0000ccc8 .quad -3841273781498745803 - 0xfb, 0x3b, 0xef, 0x69, 0xc2, 0x87, 0x46, 0xb8, //0x0000ccd0 .quad -5168294253290374149 - 0x43, 0xa7, 0xee, 0x40, 0x4f, 0x51, 0x5d, 0x3d, //0x0000ccd8 .quad 4421779809981343555 - 0xfa, 0x0a, 0x6b, 0x04, 0xb3, 0x29, 0x58, 0xe6, //0x0000cce0 .quad -1848681798185579782 - 0x13, 0x51, 0x2a, 0x11, 0xa3, 0xa5, 0xb4, 0x0c, //0x0000cce8 .quad 915538744049291539 - 0xdc, 0xe6, 0xc2, 0xe2, 0x0f, 0x1a, 0xf7, 0x8f, //0x0000ccf0 .quad -8072955151507069220 - 0xac, 0x72, 0xba, 0xea, 0x85, 0xe7, 0xf0, 0x47, //0x0000ccf8 .quad 5183897733458195116 - 0x93, 0xa0, 0x73, 0xdb, 0x93, 0xe0, 0xf4, 0xb3, //0x0000cd00 .quad -5479507920956448621 - 0x57, 0x0f, 0x69, 0x65, 0x67, 0x21, 0xed, 0x59, //0x0000cd08 .quad 6479872166822743895 - 0xb8, 0x88, 0x50, 0xd2, 0xb8, 0x18, 0xf2, 0xe0, //0x0000cd10 .quad -2237698882768172872 - 0x2d, 0x53, 0xc3, 0x3e, 0xc1, 0x69, 0x68, 0x30, //0x0000cd18 .quad 3488154190101041965 - 0x73, 0x55, 0x72, 0x83, 0x73, 0x4f, 0x97, 0x8c, //0x0000cd20 .quad -8316090829371189901 - 0xfc, 0x13, 0x3a, 0xc7, 0x18, 0x42, 0x41, 0x1e, //0x0000cd28 .quad 2180096368813151228 - 0xcf, 0xea, 0x4e, 0x64, 0x50, 0x23, 0xbd, 0xaf, //0x0000cd30 .quad -5783427518286599473 - 0xfb, 0x98, 0x08, 0xf9, 0x9e, 0x92, 0xd1, 0xe5, //0x0000cd38 .quad -1886565557410948869 - 0x83, 0xa5, 0x62, 0x7d, 0x24, 0x6c, 0xac, 0xdb, //0x0000cd40 .quad -2617598379430861437 - 0x3a, 0xbf, 0x4a, 0xb7, 0x46, 0xf7, 0x45, 0xdf, //0x0000cd48 .quad -2358206946763686086 - 0x72, 0xa7, 0x5d, 0xce, 0x96, 0xc3, 0x4b, 0x89, //0x0000cd50 .quad -8553528014785370254 - 0x84, 0xb7, 0x8e, 0x32, 0x8c, 0xba, 0x8b, 0x6b, //0x0000cd58 .quad 7749492695127472004 - 0x4f, 0x11, 0xf5, 0x81, 0x7c, 0xb4, 0x9e, 0xab, //0x0000cd60 .quad -6080224000054324913 - 0x65, 0x65, 0x32, 0x3f, 0x2f, 0xa9, 0x6e, 0x06, //0x0000cd68 .quad 463493832054564197 - 0xa2, 0x55, 0x72, 0xa2, 0x9b, 0x61, 0x86, 0xd6, //0x0000cd70 .quad -2988593981640518238 - 0xbe, 0xfe, 0xfe, 0x0e, 0x7b, 0x53, 0x0a, 0xc8, //0x0000cd78 .quad -4032318728359182658 - 0x85, 0x75, 0x87, 0x45, 0x01, 0xfd, 0x13, 0x86, //0x0000cd80 .quad -8785400266166405755 - 0x37, 0x5f, 0x5f, 0xe9, 0x2c, 0x74, 0x06, 0xbd, //0x0000cd88 .quad -4826042214438183113 - 0xe7, 0x52, 0xe9, 0x96, 0x41, 0xfc, 0x98, 0xa7, //0x0000cd90 .quad -6370064314280619289 - 0x05, 0x37, 0xb7, 0x23, 0x38, 0x11, 0x48, 0x2c, //0x0000cd98 .quad 3190819268807046917 - 0xa0, 0xa7, 0xa3, 0xfc, 0x51, 0x3b, 0x7f, 0xd1, //0x0000cda0 .quad -3350894374423386208 - 0xc6, 0x04, 0xa5, 0x2c, 0x86, 0x15, 0x5a, 0xf7, //0x0000cda8 .quad -623161932418579258 - 0xc4, 0x48, 0xe6, 0x3d, 0x13, 0x85, 0xef, 0x82, //0x0000cdb0 .quad -9011838011655698236 - 0xfc, 0x22, 0xe7, 0xdb, 0x73, 0x4d, 0x98, 0x9a, //0x0000cdb8 .quad -7307005235402693892 - 0xf5, 0xda, 0x5f, 0x0d, 0x58, 0x66, 0xab, 0xa3, //0x0000cdc0 .quad -6653111496142234891 - 0xbb, 0xeb, 0xe0, 0xd2, 0xd0, 0x60, 0x3e, 0xc1, //0x0000cdc8 .quad -4522070525825979461 - 0xb3, 0xd1, 0xb7, 0x10, 0xee, 0x3f, 0x96, 0xcc, //0x0000cdd0 .quad -3704703351750405709 - 0xa9, 0x26, 0x99, 0x07, 0x05, 0xf9, 0x8d, 0x31, //0x0000cdd8 .quad 3570783879572301481 - 0x1f, 0xc6, 0xe5, 0x94, 0xe9, 0xcf, 0xbb, 0xff, //0x0000cde0 .quad -19193171260619233 - 0x53, 0x70, 0x7f, 0x49, 0x46, 0x77, 0xf1, 0xfd, //0x0000cde8 .quad -148206168962011053 - 0xd3, 0x9b, 0x0f, 0xfd, 0xf1, 0x61, 0xd5, 0x9f, //0x0000cdf0 .quad -6929524759678968877 - 0x34, 0xa6, 0xef, 0xed, 0x8b, 0xea, 0xb6, 0xfe, //0x0000cdf8 .quad -92628855601256908 - 0xc8, 0x82, 0x53, 0x7c, 0x6e, 0xba, 0xca, 0xc7, //0x0000ce00 .quad -4050219931171323192 - 0xc1, 0x8f, 0x6b, 0xe9, 0x2e, 0xa5, 0x64, 0xfe, //0x0000ce08 .quad -115786069501571135 - 0x7b, 0x63, 0x68, 0x1b, 0x0a, 0x69, 0xbd, 0xf9, //0x0000ce10 .quad -451088895536766085 - 0xb1, 0x73, 0xc6, 0xa3, 0x7a, 0xce, 0xfd, 0x3d, //0x0000ce18 .quad 4466953431550423985 - 0x2d, 0x3e, 0x21, 0x51, 0xa6, 0x61, 0x16, 0x9c, //0x0000ce20 .quad -7199459587351560659 - 0x4f, 0x08, 0x5c, 0xa6, 0x0c, 0xa1, 0xbe, 0x06, //0x0000ce28 .quad 486002885505321039 - 0xb8, 0x8d, 0x69, 0xe5, 0x0f, 0xfa, 0x1b, 0xc3, //0x0000ce30 .quad -4387638465762062920 - 0x63, 0x0a, 0xf3, 0xcf, 0x4f, 0x49, 0x6e, 0x48, //0x0000ce38 .quad 5219189625309039203 - 0x26, 0xf1, 0xc3, 0xde, 0x93, 0xf8, 0xe2, 0xf3, //0x0000ce40 .quad -872862063775190746 - 0xfb, 0xcc, 0xef, 0xc3, 0xa3, 0xdb, 0x89, 0x5a, //0x0000ce48 .quad 6523987031636299003 - 0xb7, 0x76, 0x3a, 0x6b, 0x5c, 0xdb, 0x6d, 0x98, //0x0000ce50 .quad -7463067817500576073 - 0x1d, 0xe0, 0x75, 0x5a, 0x46, 0x29, 0x96, 0xf8, //0x0000ce58 .quad -534194123654701027 - 0x65, 0x14, 0x09, 0x86, 0x33, 0x52, 0x89, 0xbe, //0x0000ce60 .quad -4717148753448332187 - 0x24, 0x58, 0x13, 0xf1, 0x97, 0xb3, 0xbb, 0xf6, //0x0000ce68 .quad -667742654568376284 - 0x7f, 0x59, 0x8b, 0x67, 0xc0, 0xa6, 0x2b, 0xee, //0x0000ce70 .quad -1284749923383027329 - 0x2d, 0x2e, 0x58, 0xed, 0x7d, 0xa0, 0x6a, 0x74, //0x0000ce78 .quad 8388693718644305453 - 0xef, 0x17, 0xb7, 0x40, 0x38, 0x48, 0xdb, 0x94, //0x0000ce80 .quad -7720497729755473937 - 0xdd, 0x1c, 0x57, 0xb4, 0x4e, 0xa4, 0xc2, 0xa8, //0x0000ce88 .quad -6286281471915778851 - 0xeb, 0xdd, 0xe4, 0x50, 0x46, 0x1a, 0x12, 0xba, //0x0000ce90 .quad -5038936143766954517 - 0x14, 0xe4, 0x6c, 0x61, 0x62, 0x4d, 0xf3, 0x92, //0x0000ce98 .quad -7857851839894723564 - 0x66, 0x15, 0x1e, 0xe5, 0xd7, 0xa0, 0x96, 0xe8, //0x0000cea0 .quad -1686984161281305242 - 0x18, 0x1d, 0xc8, 0xf9, 0xba, 0x20, 0xb0, 0x77, //0x0000cea8 .quad 8624429273841147160 - 0x60, 0xcd, 0x32, 0xef, 0x86, 0x24, 0x5e, 0x91, //0x0000ceb0 .quad -7971894128441897632 - 0x2f, 0x12, 0x1d, 0xdc, 0x74, 0x14, 0xce, 0x0a, //0x0000ceb8 .quad 778582277723329071 - 0xb8, 0x80, 0xff, 0xaa, 0xa8, 0xad, 0xb5, 0xb5, //0x0000cec0 .quad -5353181642124984136 - 0xbb, 0x56, 0x24, 0x13, 0x92, 0x99, 0x81, 0x0d, //0x0000cec8 .quad 973227847154161339 - 0xe6, 0x60, 0xbf, 0xd5, 0x12, 0x19, 0x23, 0xe3, //0x0000ced0 .quad -2079791034228842266 - 0x6a, 0x6c, 0xed, 0x97, 0xf6, 0xff, 0xe1, 0x10, //0x0000ced8 .quad 1216534808942701674 - 0x8f, 0x9c, 0x97, 0xc5, 0xab, 0xef, 0xf5, 0x8d, //0x0000cee0 .quad -8217398424034108273 - 0xc2, 0x63, 0xf4, 0x1e, 0xfa, 0x3f, 0x8d, 0xca, //0x0000cee8 .quad -3851351762838199358 - 0xb3, 0x83, 0xfd, 0xb6, 0x96, 0x6b, 0x73, 0xb1, //0x0000cef0 .quad -5660062011615247437 - 0xb3, 0x7c, 0xb1, 0xa6, 0xf8, 0x8f, 0x30, 0xbd, //0x0000cef8 .quad -4814189703547749197 - 0xa0, 0xe4, 0xbc, 0x64, 0x7c, 0x46, 0xd0, 0xdd, //0x0000cf00 .quad -2463391496091671392 - 0xdf, 0xdb, 0x5d, 0xd0, 0xf6, 0xb3, 0x7c, 0xac, //0x0000cf08 .quad -6017737129434686497 - 0xe4, 0x0e, 0xf6, 0xbe, 0x0d, 0x2c, 0xa2, 0x8a, //0x0000cf10 .quad -8457148712698376476 - 0x6c, 0xa9, 0x3a, 0x42, 0x7a, 0xf0, 0xcd, 0x6b, //0x0000cf18 .quad 7768129340171790700 - 0x9d, 0x92, 0xb3, 0x2e, 0x11, 0xb7, 0x4a, 0xad, //0x0000cf20 .quad -5959749872445582691 - 0xc7, 0x53, 0xc9, 0xd2, 0x98, 0x6c, 0xc1, 0x86, //0x0000cf28 .quad -8736582398494813241 - 0x44, 0x77, 0x60, 0x7a, 0xd5, 0x64, 0x9d, 0xd8, //0x0000cf30 .quad -2838001322129590460 - 0xb8, 0xa8, 0x7b, 0x07, 0xbf, 0xc7, 0x71, 0xe8, //0x0000cf38 .quad -1697355961263740744 - 0x8b, 0x4a, 0x7c, 0x6c, 0x05, 0x5f, 0x62, 0x87, //0x0000cf40 .quad -8691279853972075893 - 0x73, 0x49, 0xad, 0x64, 0xd7, 0x1c, 0x47, 0x11, //0x0000cf48 .quad 1244995533423855987 - 0x2d, 0x5d, 0x9b, 0xc7, 0xc6, 0xf6, 0x3a, 0xa9, //0x0000cf50 .quad -6252413799037706963 - 0xd0, 0x9b, 0xd8, 0x3d, 0x0d, 0xe4, 0x98, 0xd5, //0x0000cf58 .quad -3055441601647567920 - 0x79, 0x34, 0x82, 0x79, 0x78, 0xb4, 0x89, 0xd3, //0x0000cf60 .quad -3203831230369745799 - 0xc4, 0xc2, 0x4e, 0x8d, 0x10, 0x1d, 0xff, 0x4a, //0x0000cf68 .quad 5404070034795315908 - 0xcb, 0x60, 0xf1, 0x4b, 0xcb, 0x10, 0x36, 0x84, //0x0000cf70 .quad -8919923546622172981 - 0xbb, 0x39, 0x51, 0x58, 0x2a, 0x72, 0xdf, 0xce, //0x0000cf78 .quad -3539985255894009413 - 0xfe, 0xb8, 0xed, 0x1e, 0xfe, 0x94, 0x43, 0xa5, //0x0000cf80 .quad -6538218414850328322 - 0x29, 0x88, 0x65, 0xee, 0xb4, 0x4e, 0x97, 0xc2, //0x0000cf88 .quad -4424981569867511767 - 0x3e, 0x27, 0xa9, 0xa6, 0x3d, 0x7a, 0x94, 0xce, //0x0000cf90 .quad -3561087000135522498 - 0x33, 0xea, 0xfe, 0x29, 0x62, 0x22, 0x3d, 0x73, //0x0000cf98 .quad 8303831092947774003 - 0x87, 0xb8, 0x29, 0x88, 0x66, 0xcc, 0x1c, 0x81, //0x0000cfa0 .quad -9143208402725783417 - 0x60, 0x52, 0x3f, 0x5a, 0x7d, 0x35, 0x06, 0x08, //0x0000cfa8 .quad 578208414664970848 - 0xa8, 0x26, 0x34, 0x2a, 0x80, 0xff, 0x63, 0xa1, //0x0000cfb0 .quad -6817324484979841368 - 0xf8, 0x26, 0xcf, 0xb0, 0xdc, 0xc2, 0x07, 0xca, //0x0000cfb8 .quad -3888925500096174344 - 0x52, 0x30, 0xc1, 0x34, 0x60, 0xff, 0xbc, 0xc9, //0x0000cfc0 .quad -3909969587797413806 - 0xb6, 0xf0, 0x02, 0xdd, 0x93, 0xb3, 0x89, 0xfc, //0x0000cfc8 .quad -249470856692830026 - 0x67, 0x7c, 0xf1, 0x41, 0x38, 0x3f, 0x2c, 0xfc, //0x0000cfd0 .quad -275775966319379353 - 0xe3, 0xac, 0x43, 0xd4, 0x78, 0x20, 0xac, 0xbb, //0x0000cfd8 .quad -4923524589293425437 - 0xc0, 0xed, 0x36, 0x29, 0x83, 0xa7, 0x9b, 0x9d, //0x0000cfe0 .quad -7089889006590693952 - 0x0e, 0x4c, 0xaa, 0x84, 0x4b, 0x94, 0x4b, 0xd5, //0x0000cfe8 .quad -3077202868308390898 - 0x31, 0xa9, 0x84, 0xf3, 0x63, 0x91, 0x02, 0xc5, //0x0000cff0 .quad -4250675239810979535 - 0x12, 0xdf, 0xd4, 0x65, 0x5e, 0x79, 0x9e, 0x0a, //0x0000cff8 .quad 765182433041899282 - 0x7d, 0xd3, 0x65, 0xf0, 0xbc, 0x35, 0x43, 0xf6, //0x0000d000 .quad -701658031336336515 - 0xd6, 0x16, 0x4a, 0xff, 0xb5, 0x17, 0x46, 0x4d, //0x0000d008 .quad 5568164059729762006 - 0x2e, 0xa4, 0x3f, 0x16, 0x96, 0x01, 0xea, 0x99, //0x0000d010 .quad -7356065297226292178 - 0x46, 0x4e, 0x8e, 0xbf, 0xd1, 0xce, 0x4b, 0x50, //0x0000d018 .quad 5785945546544795206 - 0x39, 0x8d, 0xcf, 0x9b, 0xfb, 0x81, 0x64, 0xc0, //0x0000d020 .quad -4583395603105477319 - 0xd7, 0xe1, 0x71, 0x2f, 0x86, 0xc2, 0x5e, 0xe4, //0x0000d028 .quad -1990940103673781801 - 0x88, 0x70, 0xc3, 0x82, 0x7a, 0xa2, 0x7d, 0xf0, //0x0000d030 .quad -1117558485454458744 - 0x4d, 0x5a, 0x4e, 0xbb, 0x27, 0x73, 0x76, 0x5d, //0x0000d038 .quad 6734696907262548557 - 0x55, 0x26, 0xba, 0x91, 0x8c, 0x85, 0x4e, 0x96, //0x0000d040 .quad -7616003081050118571 - 0x70, 0xf8, 0x10, 0xd5, 0xf8, 0x07, 0x6a, 0x3a, //0x0000d048 .quad 4209185567039092848 - 0xea, 0xaf, 0x28, 0xb6, 0xef, 0x26, 0xe2, 0xbb, //0x0000d050 .quad -4908317832885260310 - 0x8c, 0x36, 0x55, 0x0a, 0xf7, 0x89, 0x04, 0x89, //0x0000d058 .quad -8573576096483297652 - 0xe5, 0xdb, 0xb2, 0xa3, 0xab, 0xb0, 0xda, 0xea, //0x0000d060 .quad -1523711272679187483 - 0x2f, 0x84, 0xea, 0xcc, 0x74, 0xac, 0x45, 0x2b, //0x0000d068 .quad 3118087934678041647 - 0x6f, 0xc9, 0x4f, 0x46, 0x6b, 0xae, 0xc8, 0x92, //0x0000d070 .quad -7869848573065574033 - 0x9e, 0x92, 0x12, 0x00, 0xc9, 0x8b, 0x0b, 0x3b, //0x0000d078 .quad 4254647968387469982 - 0xcb, 0xbb, 0xe3, 0x17, 0x06, 0xda, 0x7a, 0xb7, //0x0000d080 .quad -5225624697904579637 - 0x45, 0x37, 0x17, 0x40, 0xbb, 0x6e, 0xce, 0x09, //0x0000d088 .quad 706623942056949573 - 0xbd, 0xaa, 0xdc, 0x9d, 0x87, 0x90, 0x59, 0xe5, //0x0000d090 .quad -1920344853953336643 - 0x16, 0x05, 0x1d, 0x10, 0x6a, 0x0a, 0x42, 0xcc, //0x0000d098 .quad -3728406090856200938 - 0xb6, 0xea, 0xa9, 0xc2, 0x54, 0xfa, 0x57, 0x8f, //0x0000d0a0 .quad -8117744561361917258 - 0x2e, 0x23, 0x12, 0x4a, 0x82, 0x46, 0xa9, 0x9f, //0x0000d0a8 .quad -6941939825212513490 - 0x64, 0x65, 0x54, 0xf3, 0xe9, 0xf8, 0x2d, 0xb3, //0x0000d0b0 .quad -5535494683275008668 - 0xfa, 0xab, 0x96, 0xdc, 0x22, 0x98, 0x93, 0x47, //0x0000d0b8 .quad 5157633273766521850 - 0xbd, 0x7e, 0x29, 0x70, 0x24, 0x77, 0xf9, 0xdf, //0x0000d0c0 .quad -2307682335666372931 - 0xf8, 0x56, 0xbc, 0x93, 0x2b, 0x7e, 0x78, 0x59, //0x0000d0c8 .quad 6447041592208152312 - 0x36, 0xef, 0x19, 0xc6, 0x76, 0xea, 0xfb, 0x8b, //0x0000d0d0 .quad -8359830487432564938 - 0x5b, 0xb6, 0x55, 0x3c, 0xdb, 0x4e, 0xeb, 0x57, //0x0000d0d8 .quad 6335244004343789147 - 0x03, 0x6b, 0xa0, 0x77, 0x14, 0xe5, 0xfa, 0xae, //0x0000d0e0 .quad -5838102090863318269 - 0xf2, 0x23, 0x6b, 0x0b, 0x92, 0x22, 0xe6, 0xed, //0x0000d0e8 .quad -1304317031425039374 - 0xc4, 0x85, 0x88, 0x95, 0x59, 0x9e, 0xb9, 0xda, //0x0000d0f0 .quad -2685941595151759932 - 0xee, 0xec, 0x45, 0x8e, 0x36, 0xab, 0x5f, 0xe9, //0x0000d0f8 .quad -1630396289281299218 - 0x9b, 0x53, 0x75, 0xfd, 0xf7, 0x02, 0xb4, 0x88, //0x0000d100 .quad -8596242524610931813 - 0x15, 0xb4, 0xeb, 0x18, 0x02, 0xcb, 0xdb, 0x11, //0x0000d108 .quad 1286845328412881941 - 0x81, 0xa8, 0xd2, 0xfc, 0xb5, 0x03, 0xe1, 0xaa, //0x0000d110 .quad -6133617137336276863 - 0x1a, 0xa1, 0x26, 0x9f, 0xc2, 0xbd, 0x52, 0xd6, //0x0000d118 .quad -3003129357911285478 - 0xa2, 0x52, 0x07, 0x7c, 0xa3, 0x44, 0x99, 0xd5, //0x0000d120 .quad -3055335403242958174 - 0x60, 0x49, 0xf0, 0x46, 0x33, 0x6d, 0xe7, 0x4b, //0x0000d128 .quad 5469460339465668960 - 0xa5, 0x93, 0x84, 0x2d, 0xe6, 0xca, 0x7f, 0x85, //0x0000d130 .quad -8827113654667930715 - 0xdc, 0x2d, 0x56, 0x0c, 0x40, 0xa4, 0x70, 0x6f, //0x0000d138 .quad 8030098730593431004 - 0x8e, 0xb8, 0xe5, 0xb8, 0x9f, 0xbd, 0xdf, 0xa6, //0x0000d140 .quad -6422206049907525490 - 0x53, 0xb9, 0x6b, 0x0f, 0x50, 0xcd, 0x4c, 0xcb, //0x0000d148 .quad -3797434642040374957 - 0xb2, 0x26, 0x1f, 0xa7, 0x07, 0xad, 0x97, 0xd0, //0x0000d150 .quad -3416071543957018958 - 0xa8, 0xa7, 0x46, 0x13, 0xa4, 0x00, 0x20, 0x7e, //0x0000d158 .quad 9088264752731695016 - 0x2f, 0x78, 0x73, 0xc8, 0x24, 0xcc, 0x5e, 0x82, //0x0000d160 .quad -9052573742614218705 - 0xc9, 0x28, 0x0c, 0x8c, 0x66, 0x00, 0xd4, 0x8e, //0x0000d168 .quad -8154892584824854327 - 0x3b, 0x56, 0x90, 0xfa, 0x2d, 0x7f, 0xf6, 0xa2, //0x0000d170 .quad -6704031159840385477 - 0xfb, 0x32, 0x0f, 0x2f, 0x80, 0x00, 0x89, 0x72, //0x0000d178 .quad 8253128342678483707 - 0xca, 0x6b, 0x34, 0x79, 0xf9, 0x1e, 0xb4, 0xcb, //0x0000d180 .quad -3768352931373093942 - 0xba, 0xff, 0xd2, 0x3a, 0xa0, 0x40, 0x2b, 0x4f, //0x0000d188 .quad 5704724409920716730 - 0xbc, 0x86, 0x81, 0xd7, 0xb7, 0x26, 0xa1, 0xfe, //0x0000d190 .quad -98755145788979524 - 0xa9, 0xbf, 0x87, 0x49, 0xc8, 0x10, 0xf6, 0xe2, //0x0000d198 .quad -2092466524453879895 - 0x36, 0xf4, 0xb0, 0xe6, 0x32, 0xb8, 0x24, 0x9f, //0x0000d1a0 .quad -6979250993759194058 - 0xca, 0xd7, 0xf4, 0x2d, 0x7d, 0xca, 0xd9, 0x0d, //0x0000d1a8 .quad 998051431430019018 - 0x43, 0x31, 0x5d, 0xa0, 0x3f, 0xe6, 0xed, 0xc6, //0x0000d1b0 .quad -4112377723771604669 - 0xbc, 0x0d, 0x72, 0x79, 0x1c, 0x3d, 0x50, 0x91, //0x0000d1b8 .quad -7975807747567252036 - 0x94, 0x7d, 0x74, 0x88, 0xcf, 0x5f, 0xa9, 0xf8, //0x0000d1c0 .quad -528786136287117932 - 0x2b, 0x91, 0xce, 0x97, 0x63, 0x4c, 0xa4, 0x75, //0x0000d1c8 .quad 8476984389250486571 - 0x7c, 0xce, 0x48, 0xb5, 0xe1, 0xdb, 0x69, 0x9b, //0x0000d1d0 .quad -7248020362820530564 - 0xbb, 0x1a, 0xe1, 0x3e, 0xbe, 0xaf, 0x86, 0xc9, //0x0000d1d8 .quad -3925256793573221701 - 0x1b, 0x02, 0x9b, 0x22, 0xda, 0x52, 0x44, 0xc2, //0x0000d1e0 .quad -4448339435098275301 - 0x69, 0x61, 0x99, 0xce, 0xad, 0x5b, 0xe8, 0xfb, //0x0000d1e8 .quad -294884973539139223 - 0xa2, 0xc2, 0x41, 0xab, 0x90, 0x67, 0xd5, 0xf2, //0x0000d1f0 .quad -948738275445456222 - 0xc4, 0xb9, 0x3f, 0x42, 0x99, 0x72, 0xe2, 0xfa, //0x0000d1f8 .quad -368606216923924028 - 0xa5, 0x19, 0x09, 0x6b, 0xba, 0x60, 0xc5, 0x97, //0x0000d200 .quad -7510490449794491995 - 0x1b, 0xd4, 0x67, 0xc9, 0x9f, 0x87, 0xcd, 0xdc, //0x0000d208 .quad -2536221894791146469 - 0x0f, 0x60, 0xcb, 0x05, 0xe9, 0xb8, 0xb6, 0xbd, //0x0000d210 .quad -4776427043815727089 - 0x21, 0xc9, 0xc1, 0xbb, 0x87, 0xe9, 0x00, 0x54, //0x0000d218 .quad 6053094668365842721 - 0x13, 0x38, 0x3e, 0x47, 0x23, 0x67, 0x24, 0xed, //0x0000d220 .quad -1358847786342270957 - 0x69, 0x3b, 0xb2, 0xaa, 0xe9, 0x23, 0x01, 0x29, //0x0000d228 .quad 2954682317029915497 - 0x0b, 0xe3, 0x86, 0x0c, 0x76, 0xc0, 0x36, 0x94, //0x0000d230 .quad -7766808894105001205 - 0x22, 0x65, 0xaf, 0x0a, 0x72, 0xb6, 0xa0, 0xf9, //0x0000d238 .quad -459166561069996766 - 0xce, 0x9b, 0xa8, 0x8f, 0x93, 0x70, 0x44, 0xb9, //0x0000d240 .quad -5096825099203863602 - 0x6a, 0x3e, 0x5b, 0x8d, 0x0e, 0xe4, 0x08, 0xf8, //0x0000d248 .quad -573958201337495958 - 0xc2, 0xc2, 0x92, 0x73, 0xb8, 0x8c, 0x95, 0xe7, //0x0000d250 .quad -1759345355577441598 - 0x05, 0x0e, 0xb2, 0x30, 0x12, 0x1d, 0x0b, 0xb6, //0x0000d258 .quad -5329133770099257851 - 0xb9, 0xb9, 0x3b, 0x48, 0xf3, 0x77, 0xbd, 0x90, //0x0000d260 .quad -8017119874876982855 - 0xc3, 0x48, 0x6f, 0x5e, 0x2b, 0xf2, 0xc6, 0xb1, //0x0000d268 .quad -5636551615525730109 - 0x28, 0xa8, 0x4a, 0x1a, 0xf0, 0xd5, 0xec, 0xb4, //0x0000d270 .quad -5409713825168840664 - 0xf4, 0x1a, 0x0b, 0x36, 0xb6, 0xae, 0x38, 0x1e, //0x0000d278 .quad 2177682517447613172 - 0x32, 0x52, 0xdd, 0x20, 0x6c, 0x0b, 0x28, 0xe2, //0x0000d280 .quad -2150456263033662926 - 0xb1, 0xe1, 0x8d, 0xc3, 0x63, 0xda, 0xc6, 0x25, //0x0000d288 .quad 2722103146809516465 - 0x5f, 0x53, 0x8a, 0x94, 0x23, 0x07, 0x59, 0x8d, //0x0000d290 .quad -8261564192037121185 - 0x0f, 0xad, 0x38, 0x5a, 0x7e, 0x48, 0x9c, 0x57, //0x0000d298 .quad 6313000485183335695 - 0x37, 0xe8, 0xac, 0x79, 0xec, 0x48, 0xaf, 0xb0, //0x0000d2a0 .quad -5715269221619013577 - 0x52, 0xd8, 0xc6, 0xf0, 0x9d, 0x5a, 0x83, 0x2d, //0x0000d2a8 .quad 3279564588051781714 - 0x44, 0x22, 0x18, 0x98, 0x27, 0x1b, 0xdb, 0xdc, //0x0000d2b0 .quad -2532400508596379068 - 0x66, 0x8e, 0xf8, 0x6c, 0x45, 0x31, 0xe4, 0xf8, //0x0000d2b8 .quad -512230283362660762 - 0x6b, 0x15, 0x0f, 0xbf, 0xf8, 0xf0, 0x08, 0x8a, //0x0000d2c0 .quad -8500279345513818773 - 0x00, 0x59, 0x1b, 0x64, 0xcb, 0x9e, 0x8e, 0x1b, //0x0000d2c8 .quad 1985699082112030976 - 0xc5, 0xda, 0xd2, 0xee, 0x36, 0x2d, 0x8b, 0xac, //0x0000d2d0 .quad -6013663163464885563 - 0x40, 0x2f, 0x22, 0x3d, 0x7e, 0x46, 0x72, 0xe2, //0x0000d2d8 .quad -2129562165787349184 - 0x77, 0x91, 0x87, 0xaa, 0x84, 0xf8, 0xad, 0xd7, //0x0000d2e0 .quad -2905392935903719049 - 0x10, 0xbb, 0x6a, 0xcc, 0x1d, 0xd8, 0x0e, 0x5b, //0x0000d2e8 .quad 6561419329620589328 - 0xea, 0xba, 0x94, 0xea, 0x52, 0xbb, 0xcc, 0x86, //0x0000d2f0 .quad -8733399612580906262 - 0xea, 0xb4, 0xc2, 0x9f, 0x12, 0x47, 0xe9, 0x98, //0x0000d2f8 .quad -7428327965055601430 - 0xa5, 0xe9, 0x39, 0xa5, 0x27, 0xea, 0x7f, 0xa8, //0x0000d300 .quad -6305063497298744923 - 0x25, 0x62, 0xb3, 0x47, 0xd7, 0x98, 0x23, 0x3f, //0x0000d308 .quad 4549648098962661925 - 0x0e, 0x64, 0x88, 0x8e, 0xb1, 0xe4, 0x9f, 0xd2, //0x0000d310 .quad -3269643353196043250 - 0xae, 0x3a, 0xa0, 0x19, 0x0d, 0x7f, 0xec, 0x8e, //0x0000d318 .quad -8147997931578836306 - 0x89, 0x3e, 0x15, 0xf9, 0xee, 0xee, 0xa3, 0x83, //0x0000d320 .quad -8961056123388608887 - 0xad, 0x24, 0x04, 0x30, 0x68, 0xcf, 0x53, 0x19, //0x0000d328 .quad 1825030320404309165 - 0x2b, 0x8e, 0x5a, 0xb7, 0xaa, 0xea, 0x8c, 0xa4, //0x0000d330 .quad -6589634135808373205 - 0xd8, 0x2d, 0x05, 0x3c, 0x42, 0xc3, 0xa8, 0x5f, //0x0000d338 .quad 6892973918932774360 - 0xb6, 0x31, 0x31, 0x65, 0x55, 0x25, 0xb0, 0xcd, //0x0000d340 .quad -3625356651333078602 - 0x4e, 0x79, 0x06, 0xcb, 0x12, 0xf4, 0x92, 0x37, //0x0000d348 .quad 4004531380238580046 - 0x11, 0xbf, 0x3e, 0x5f, 0x55, 0x17, 0x8e, 0x80, //0x0000d350 .quad -9183376934724255983 - 0xd1, 0x0b, 0xe4, 0xbe, 0x8b, 0xd8, 0xbb, 0xe2, //0x0000d358 .quad -2108853905778275375 - 0xd6, 0x6e, 0x0e, 0xb7, 0x2a, 0x9d, 0xb1, 0xa0, //0x0000d360 .quad -6867535149977932074 - 0xc5, 0x0e, 0x9d, 0xae, 0xae, 0xce, 0x6a, 0x5b, //0x0000d368 .quad 6587304654631931589 - 0x8b, 0x0a, 0xd2, 0x64, 0x75, 0x04, 0xde, 0xc8, //0x0000d370 .quad -3972732919045027189 - 0x76, 0x52, 0x44, 0x5a, 0x5a, 0x82, 0x45, 0xf2, //0x0000d378 .quad -989241218564861322 - 0x2e, 0x8d, 0x06, 0xbe, 0x92, 0x85, 0x15, 0xfb, //0x0000d380 .quad -354230130378896082 - 0x13, 0x67, 0xd5, 0xf0, 0xf0, 0xe2, 0xd6, 0xee, //0x0000d388 .quad -1236551523206076653 - 0x3d, 0x18, 0xc4, 0xb6, 0x7b, 0x73, 0xed, 0x9c, //0x0000d390 .quad -7138922859127891907 - 0x6c, 0x60, 0x85, 0x96, 0xd6, 0x4d, 0x46, 0x55, //0x0000d398 .quad 6144684325637283948 - 0x4c, 0x1e, 0x75, 0xa4, 0x5a, 0xd0, 0x28, 0xc4, //0x0000d3a0 .quad -4311967555482476980 - 0x87, 0xb8, 0x26, 0x3c, 0x4c, 0xe1, 0x97, 0xaa, //0x0000d3a8 .quad -6154202648235558777 - 0xdf, 0x65, 0x92, 0x4d, 0x71, 0x04, 0x33, 0xf5, //0x0000d3b0 .quad -778273425925708321 - 0xa9, 0x66, 0x30, 0x4b, 0x9f, 0xd9, 0x3d, 0xd5, //0x0000d3b8 .quad -3081067291867060567 - 0xab, 0x7f, 0x7b, 0xd0, 0xc6, 0xe2, 0x3f, 0x99, //0x0000d3c0 .quad -7403949918844649557 - 0x2a, 0x40, 0xfe, 0x8e, 0x03, 0xa8, 0x46, 0xe5, //0x0000d3c8 .quad -1925667057416912854 - 0x96, 0x5f, 0x9a, 0x84, 0x78, 0xdb, 0x8f, 0xbf, //0x0000d3d0 .quad -4643251380128424042 - 0x34, 0xd0, 0xbd, 0x72, 0x04, 0x52, 0x98, 0xde, //0x0000d3d8 .quad -2407083821771141068 - 0x7c, 0xf7, 0xc0, 0xa5, 0x56, 0xd2, 0x73, 0xef, //0x0000d3e0 .quad -1192378206733142148 - 0x41, 0x44, 0x6d, 0x8f, 0x85, 0x66, 0x3e, 0x96, //0x0000d3e8 .quad -7620540795641314239 - 0xad, 0x9a, 0x98, 0x27, 0x76, 0x63, 0xa8, 0x95, //0x0000d3f0 .quad -7662765406849295699 - 0xa9, 0x4a, 0xa4, 0x79, 0x13, 0x00, 0xe7, 0xdd, //0x0000d3f8 .quad -2456994988062127447 - 0x59, 0xc1, 0x7e, 0xb1, 0x53, 0x7c, 0x12, 0xbb, //0x0000d400 .quad -4966770740134231719 - 0x53, 0x5d, 0x0d, 0x58, 0x18, 0xc0, 0x60, 0x55, //0x0000d408 .quad 6152128301777116499 - 0xaf, 0x71, 0xde, 0x9d, 0x68, 0x1b, 0xd7, 0xe9, //0x0000d410 .quad -1596777406740401745 - 0xa7, 0xb4, 0x10, 0x6e, 0x1e, 0xf0, 0xb8, 0xaa, //0x0000d418 .quad -6144897678060768089 - 0x0d, 0x07, 0xab, 0x62, 0x21, 0x71, 0x26, 0x92, //0x0000d420 .quad -7915514906853832947 - 0xe9, 0x70, 0xca, 0x04, 0x13, 0x96, 0xb3, 0xca, //0x0000d428 .quad -3840561048787980055 - 0xd1, 0xc8, 0x55, 0xbb, 0x69, 0x0d, 0xb0, 0xb6, //0x0000d430 .quad -5282707615139903279 - 0x23, 0x0d, 0xfd, 0xc5, 0x97, 0x7b, 0x60, 0x3d, //0x0000d438 .quad 4422670725869800739 - 0x05, 0x3b, 0x2b, 0x2a, 0xc4, 0x10, 0x5c, 0xe4, //0x0000d440 .quad -1991698500497491195 - 0x6b, 0x50, 0x7c, 0xb7, 0x7d, 0x9a, 0xb8, 0x8c, //0x0000d448 .quad -8306719647944912789 - 0xe3, 0x04, 0x5b, 0x9a, 0x7a, 0x8a, 0xb9, 0x8e, //0x0000d450 .quad -8162340590452013853 - 0x43, 0xb2, 0xad, 0x92, 0x8e, 0x60, 0xf3, 0x77, //0x0000d458 .quad 8643358275316593219 - 0x1c, 0xc6, 0xf1, 0x40, 0x19, 0xed, 0x67, 0xb2, //0x0000d460 .quad -5591239719637629412 - 0xd4, 0x1e, 0x59, 0x37, 0xb2, 0x38, 0xf0, 0x55, //0x0000d468 .quad 6192511825718353620 - 0xa3, 0x37, 0x2e, 0x91, 0x5f, 0xe8, 0x01, 0xdf, //0x0000d470 .quad -2377363631119648861 - 0x89, 0x66, 0x2f, 0xc5, 0xde, 0x46, 0x6c, 0x6b, //0x0000d478 .quad 7740639782147942025 - 0xc6, 0xe2, 0xbc, 0xba, 0x3b, 0x31, 0x61, 0x8b, //0x0000d480 .quad -8403381297090862394 - 0x16, 0xa0, 0x3d, 0x3b, 0x4b, 0xac, 0x23, 0x23, //0x0000d488 .quad 2532056854628769814 - 0x77, 0x1b, 0x6c, 0xa9, 0x8a, 0x7d, 0x39, 0xae, //0x0000d490 .quad -5892540602936190089 - 0x1b, 0x08, 0x0d, 0x0a, 0x5e, 0x97, 0xec, 0xab, //0x0000d498 .quad -6058300968568813541 - 0x55, 0x22, 0xc7, 0x53, 0xed, 0xdc, 0xc7, 0xd9, //0x0000d4a0 .quad -2753989735242849707 - 0x22, 0x4a, 0x90, 0x8c, 0x35, 0xbd, 0xe7, 0x96, //0x0000d4a8 .quad -7572876210711016926 - 0x75, 0x75, 0x5c, 0x54, 0x14, 0xea, 0x1c, 0x88, //0x0000d4b0 .quad -8638772612167862923 - 0x55, 0x2e, 0xda, 0x77, 0x41, 0xd6, 0x50, 0x7e, //0x0000d4b8 .quad 9102010423587778133 - 0xd2, 0x92, 0x73, 0x69, 0x99, 0x24, 0x24, 0xaa, //0x0000d4c0 .quad -6186779746782440750 - 0xea, 0xb9, 0xd0, 0xd5, 0xd1, 0x0b, 0xe5, 0xdd, //0x0000d4c8 .quad -2457545025797441046 - 0x87, 0x77, 0xd0, 0xc3, 0xbf, 0x2d, 0xad, 0xd4, //0x0000d4d0 .quad -3121788665050663033 - 0x65, 0xe8, 0x44, 0x4b, 0xc6, 0x4e, 0x5e, 0x95, //0x0000d4d8 .quad -7683617300674189211 - 0xb4, 0x4a, 0x62, 0xda, 0x97, 0x3c, 0xec, 0x84, //0x0000d4e0 .quad -8868646943297746252 - 0x3f, 0x11, 0x0b, 0xef, 0x3b, 0xf1, 0x5a, 0xbd, //0x0000d4e8 .quad -4802260812921368257 - 0x61, 0xdd, 0xfa, 0xd0, 0xbd, 0x4b, 0x27, 0xa6, //0x0000d4f0 .quad -6474122660694794911 - 0x8f, 0xd5, 0xcd, 0xea, 0x8a, 0xad, 0xb1, 0xec, //0x0000d4f8 .quad -1391139997724322417 - 0xba, 0x94, 0x39, 0x45, 0xad, 0x1e, 0xb1, 0xcf, //0x0000d500 .quad -3480967307441105734 - 0xf3, 0x4a, 0x81, 0xa5, 0xed, 0x18, 0xde, 0x67, //0x0000d508 .quad 7484447039699372787 - 0xf4, 0xfc, 0x43, 0x4b, 0x2c, 0xb3, 0xce, 0x81, //0x0000d510 .quad -9093133594791772940 - 0xd8, 0xce, 0x70, 0x87, 0x94, 0xcf, 0xea, 0x80, //0x0000d518 .quad -9157278655470055720 - 0x31, 0xfc, 0x14, 0x5e, 0xf7, 0x5f, 0x42, 0xa2, //0x0000d520 .quad -6754730975062328271 - 0x8e, 0x02, 0x4d, 0xa9, 0x79, 0x83, 0x25, 0xa1, //0x0000d528 .quad -6834912300910181746 - 0x3e, 0x3b, 0x9a, 0x35, 0xf5, 0xf7, 0xd2, 0xca, //0x0000d530 .quad -3831727700400522434 - 0x31, 0x43, 0xa0, 0x13, 0x58, 0xe4, 0x6e, 0x09, //0x0000d538 .quad 679731660717048625 - 0x0d, 0xca, 0x00, 0x83, 0xf2, 0xb5, 0x87, 0xfd, //0x0000d540 .quad -177973607073265139 - 0xfd, 0x53, 0x88, 0x18, 0x6e, 0x9d, 0xca, 0x8b, //0x0000d548 .quad -8373707460958465027 - 0x48, 0x7e, 0xe0, 0x91, 0xb7, 0xd1, 0x74, 0x9e, //0x0000d550 .quad -7028762532061872568 - 0x7e, 0x34, 0x55, 0xcf, 0x64, 0xa2, 0x5e, 0x77, //0x0000d558 .quad 8601490892183123070 - 0xda, 0x9d, 0x58, 0x76, 0x25, 0x06, 0x12, 0xc6, //0x0000d560 .quad -4174267146649952806 - 0x9e, 0x81, 0x2a, 0x03, 0xfe, 0x4a, 0x36, 0x95, //0x0000d568 .quad -7694880458480647778 - 0x51, 0xc5, 0xee, 0xd3, 0xae, 0x87, 0x96, 0xf7, //0x0000d570 .quad -606147914885053103 - 0x05, 0x22, 0xf5, 0x83, 0xbd, 0xdd, 0x83, 0x3a, //0x0000d578 .quad 4216457482181353989 - 0x52, 0x3b, 0x75, 0x44, 0xcd, 0x14, 0xbe, 0x9a, //0x0000d580 .quad -7296371474444240046 - 0x43, 0x35, 0x79, 0x72, 0x96, 0x6a, 0x92, 0xc4, //0x0000d588 .quad -4282243101277735613 - 0x27, 0x8a, 0x92, 0x95, 0x00, 0x9a, 0x6d, 0xc1, //0x0000d590 .quad -4508778324627912153 - 0x94, 0x82, 0x17, 0x0f, 0x3c, 0x05, 0xb7, 0x75, //0x0000d598 .quad 8482254178684994196 - 0xb1, 0x2c, 0xf7, 0xba, 0x80, 0x00, 0xc9, 0xf1, //0x0000d5a0 .quad -1024286887357502287 - 0x39, 0x63, 0xdd, 0x12, 0x8b, 0xc6, 0x24, 0x53, //0x0000d5a8 .quad 5991131704928854841 - 0xee, 0x7b, 0xda, 0x74, 0x50, 0xa0, 0x1d, 0x97, //0x0000d5b0 .quad -7557708332239520786 - 0x04, 0x5e, 0xca, 0xeb, 0x16, 0xfc, 0xf6, 0xd3, //0x0000d5b8 .quad -3173071712060547580 - 0xea, 0x1a, 0x11, 0x92, 0x64, 0x08, 0xe5, 0xbc, //0x0000d5c0 .quad -4835449396872013078 - 0x85, 0xf5, 0xbc, 0xa6, 0x1c, 0xbb, 0xf4, 0x88, //0x0000d5c8 .quad -8578025658503072379 - 0xa5, 0x61, 0x95, 0xb6, 0x7d, 0x4a, 0x1e, 0xec, //0x0000d5d0 .quad -1432625727662628443 - 0xe6, 0x32, 0x6c, 0xd0, 0xe3, 0xe9, 0x31, 0x2b, //0x0000d5d8 .quad 3112525982153323238 - 0x07, 0x5d, 0x1d, 0x92, 0x8e, 0xee, 0x92, 0x93, //0x0000d5e0 .quad -7812920107430224633 - 0xd0, 0x9f, 0x43, 0x62, 0x2e, 0x32, 0xff, 0x3a, //0x0000d5e8 .quad 4251171748059520976 - 0x49, 0xb4, 0xa4, 0x36, 0x32, 0xaa, 0x77, 0xb8, //0x0000d5f0 .quad -5154464115860392887 - 0xc3, 0x87, 0xd4, 0xfa, 0xb9, 0xfe, 0xbe, 0x09, //0x0000d5f8 .quad 702278666647013315 - 0x5b, 0xe1, 0x4d, 0xc4, 0xbe, 0x94, 0x95, 0xe6, //0x0000d600 .quad -1831394126398103205 - 0xb4, 0xa9, 0x89, 0x79, 0x68, 0xbe, 0x2e, 0x4c, //0x0000d608 .quad 5489534351736154548 - 0xd9, 0xac, 0xb0, 0x3a, 0xf7, 0x7c, 0x1d, 0x90, //0x0000d610 .quad -8062150356639896359 - 0x11, 0x0a, 0xf6, 0x4b, 0x01, 0x37, 0x9d, 0x0f, //0x0000d618 .quad 1125115960621402641 - 0x0f, 0xd8, 0x5c, 0x09, 0x35, 0xdc, 0x24, 0xb4, //0x0000d620 .quad -5466001927372482545 - 0x95, 0x8c, 0xf3, 0x9e, 0xc1, 0x84, 0x84, 0x53, //0x0000d628 .quad 6018080969204141205 - 0x13, 0x0e, 0xb4, 0x4b, 0x42, 0x13, 0x2e, 0xe1, //0x0000d630 .quad -2220816390788215277 - 0xba, 0x6f, 0xb0, 0x06, 0xf2, 0xa5, 0x65, 0x28, //0x0000d638 .quad 2910915193077788602 - 0xcb, 0x88, 0x50, 0x6f, 0x09, 0xcc, 0xbc, 0x8c, //0x0000d640 .quad -8305539271883716405 - 0xd4, 0x45, 0x2e, 0x44, 0xb7, 0x87, 0x3f, 0xf9, //0x0000d648 .quad -486521013540076076 - 0xfe, 0xaa, 0x24, 0xcb, 0x0b, 0xff, 0xeb, 0xaf, //0x0000d650 .quad -5770238071427257602 - 0x49, 0xd7, 0x39, 0x15, 0xa5, 0x69, 0x8f, 0xf7, //0x0000d658 .quad -608151266925095095 - 0xbe, 0xd5, 0xed, 0xbd, 0xce, 0xfe, 0xe6, 0xdb, //0x0000d660 .quad -2601111570856684098 - 0x1c, 0x4d, 0x88, 0x5a, 0x0e, 0x44, 0x73, 0xb5, //0x0000d668 .quad -5371875102083756772 - 0x97, 0xa5, 0xb4, 0x36, 0x41, 0x5f, 0x70, 0x89, //0x0000d670 .quad -8543223759426509417 - 0x31, 0x30, 0x95, 0xf8, 0x88, 0x0a, 0x68, 0x31, //0x0000d678 .quad 3560107088838733873 - 0xfc, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x0000d680 .quad -6067343680855748868 - 0x3e, 0x7c, 0xba, 0x36, 0x2b, 0x0d, 0xc2, 0xfd, //0x0000d688 .quad -161552157378970562 - 0xbc, 0x42, 0x7a, 0xe5, 0xd5, 0x94, 0xbf, 0xd6, //0x0000d690 .quad -2972493582642298180 - 0x4d, 0x1b, 0x69, 0x04, 0x76, 0x90, 0x32, 0x3d, //0x0000d698 .quad 4409745821703674701 - 0xb5, 0x69, 0x6c, 0xaf, 0x05, 0xbd, 0x37, 0x86, //0x0000d6a0 .quad -8775337516792518219 - 0x10, 0xb1, 0xc1, 0xc2, 0x49, 0x9a, 0x3f, 0xa6, //0x0000d6a8 .quad -6467280898289979120 - 0x23, 0x84, 0x47, 0x1b, 0x47, 0xac, 0xc5, 0xa7, //0x0000d6b0 .quad -6357485877563259869 - 0x54, 0x1d, 0x72, 0x33, 0xdc, 0x80, 0xcf, 0x0f, //0x0000d6b8 .quad 1139270913992301908 - 0x2b, 0x65, 0x19, 0xe2, 0x58, 0x17, 0xb7, 0xd1, //0x0000d6c0 .quad -3335171328526686933 - 0xa9, 0xa4, 0x4e, 0x40, 0x13, 0x61, 0xc3, 0xd3, //0x0000d6c8 .quad -3187597375937010519 - 0x3b, 0xdf, 0x4f, 0x8d, 0x97, 0x6e, 0x12, 0x83, //0x0000d6d0 .quad -9002011107970261189 - 0xea, 0x26, 0x31, 0x08, 0xac, 0x1c, 0x5a, 0x64, //0x0000d6d8 .quad 7231123676894144234 - 0x0a, 0xd7, 0xa3, 0x70, 0x3d, 0x0a, 0xd7, 0xa3, //0x0000d6e0 .quad -6640827866535438582 - 0xa4, 0x70, 0x3d, 0x0a, 0xd7, 0xa3, 0x70, 0x3d, //0x0000d6e8 .quad 4427218577690292388 - 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x0000d6f0 .quad -3689348814741910324 - 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x0000d6f8 .quad -3689348814741910323 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x0000d700 .quad -9223372036854775808 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d708 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, //0x0000d710 .quad -6917529027641081856 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d718 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc8, //0x0000d720 .quad -4035225266123964416 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d728 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, //0x0000d730 .quad -432345564227567616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d738 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x9c, //0x0000d740 .quad -7187745005283311616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d748 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0xc3, //0x0000d750 .quad -4372995238176751616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d758 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0xf4, //0x0000d760 .quad -854558029293551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d768 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x96, 0x98, //0x0000d770 .quad -7451627795949551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d778 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xbc, 0xbe, //0x0000d780 .quad -4702848726509551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d788 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x6b, 0xee, //0x0000d790 .quad -1266874889709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d798 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0xf9, 0x02, 0x95, //0x0000d7a0 .quad -7709325833709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d7a8 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x40, 0xb7, 0x43, 0xba, //0x0000d7b0 .quad -5024971273709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d7b8 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x10, 0xa5, 0xd4, 0xe8, //0x0000d7c0 .quad -1669528073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d7c8 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x2a, 0xe7, 0x84, 0x91, //0x0000d7d0 .quad -7960984073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d7d8 .quad 0 - 0x00, 0x00, 0x00, 0x80, 0xf4, 0x20, 0xe6, 0xb5, //0x0000d7e0 .quad -5339544073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d7e8 .quad 0 - 0x00, 0x00, 0x00, 0xa0, 0x31, 0xa9, 0x5f, 0xe3, //0x0000d7f0 .quad -2062744073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d7f8 .quad 0 - 0x00, 0x00, 0x00, 0x04, 0xbf, 0xc9, 0x1b, 0x8e, //0x0000d800 .quad -8206744073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d808 .quad 0 - 0x00, 0x00, 0x00, 0xc5, 0x2e, 0xbc, 0xa2, 0xb1, //0x0000d810 .quad -5646744073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d818 .quad 0 - 0x00, 0x00, 0x40, 0x76, 0x3a, 0x6b, 0x0b, 0xde, //0x0000d820 .quad -2446744073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d828 .quad 0 - 0x00, 0x00, 0xe8, 0x89, 0x04, 0x23, 0xc7, 0x8a, //0x0000d830 .quad -8446744073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d838 .quad 0 - 0x00, 0x00, 0x62, 0xac, 0xc5, 0xeb, 0x78, 0xad, //0x0000d840 .quad -5946744073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d848 .quad 0 - 0x00, 0x80, 0x7a, 0x17, 0xb7, 0x26, 0xd7, 0xd8, //0x0000d850 .quad -2821744073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d858 .quad 0 - 0x00, 0x90, 0xac, 0x6e, 0x32, 0x78, 0x86, 0x87, //0x0000d860 .quad -8681119073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d868 .quad 0 - 0x00, 0xb4, 0x57, 0x0a, 0x3f, 0x16, 0x68, 0xa9, //0x0000d870 .quad -6239712823709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d878 .quad 0 - 0x00, 0xa1, 0xed, 0xcc, 0xce, 0x1b, 0xc2, 0xd3, //0x0000d880 .quad -3187955011209551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d888 .quad 0 - 0xa0, 0x84, 0x14, 0x40, 0x61, 0x51, 0x59, 0x84, //0x0000d890 .quad -8910000909647051616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d898 .quad 0 - 0xc8, 0xa5, 0x19, 0x90, 0xb9, 0xa5, 0x6f, 0xa5, //0x0000d8a0 .quad -6525815118631426616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d8a8 .quad 0 - 0x3a, 0x0f, 0x20, 0xf4, 0x27, 0x8f, 0xcb, 0xce, //0x0000d8b0 .quad -3545582879861895366 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d8b8 .quad 0 - 0x84, 0x09, 0x94, 0xf8, 0x78, 0x39, 0x3f, 0x81, //0x0000d8c0 .quad -9133518327554766460 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, //0x0000d8c8 .quad 4611686018427387904 - 0xe5, 0x0b, 0xb9, 0x36, 0xd7, 0x07, 0x8f, 0xa1, //0x0000d8d0 .quad -6805211891016070171 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, //0x0000d8d8 .quad 5764607523034234880 - 0xde, 0x4e, 0x67, 0x04, 0xcd, 0xc9, 0xf2, 0xc9, //0x0000d8e0 .quad -3894828845342699810 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa4, //0x0000d8e8 .quad -6629298651489370112 - 0x96, 0x22, 0x81, 0x45, 0x40, 0x7c, 0x6f, 0xfc, //0x0000d8f0 .quad -256850038250986858 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4d, //0x0000d8f8 .quad 5548434740920451072 - 0x9d, 0xb5, 0x70, 0x2b, 0xa8, 0xad, 0xc5, 0x9d, //0x0000d900 .quad -7078060301547948643 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xf0, //0x0000d908 .quad -1143914305352105984 - 0x05, 0xe3, 0x4c, 0x36, 0x12, 0x19, 0x37, 0xc5, //0x0000d910 .quad -4235889358507547899 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x6c, //0x0000d918 .quad 7793479155164643328 - 0xc6, 0x1b, 0xe0, 0xc3, 0x56, 0xdf, 0x84, 0xf6, //0x0000d920 .quad -683175679707046970 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0xc7, //0x0000d928 .quad -4093209111326359552 - 0x5c, 0x11, 0x6c, 0x3a, 0x96, 0x0b, 0x13, 0x9a, //0x0000d930 .quad -7344513827457986212 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7f, 0x3c, //0x0000d938 .quad 4359273333062107136 - 0xb3, 0x15, 0x07, 0xc9, 0x7b, 0xce, 0x97, 0xc0, //0x0000d940 .quad -4568956265895094861 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x9f, 0x4b, //0x0000d948 .quad 5449091666327633920 - 0x20, 0xdb, 0x48, 0xbb, 0x1a, 0xc2, 0xbd, 0xf0, //0x0000d950 .quad -1099509313941480672 - 0x00, 0x00, 0x00, 0x00, 0x00, 0xd4, 0x86, 0x1e, //0x0000d958 .quad 2199678564482154496 - 0xf4, 0x88, 0x0d, 0xb5, 0x50, 0x99, 0x76, 0x96, //0x0000d960 .quad -7604722348854507276 - 0x00, 0x00, 0x00, 0x00, 0x80, 0x44, 0x14, 0x13, //0x0000d968 .quad 1374799102801346560 - 0x31, 0xeb, 0x50, 0xe2, 0xa4, 0x3f, 0x14, 0xbc, //0x0000d970 .quad -4894216917640746191 - 0x00, 0x00, 0x00, 0x00, 0xa0, 0x55, 0xd9, 0x17, //0x0000d978 .quad 1718498878501683200 - 0xfd, 0x25, 0xe5, 0x1a, 0x8e, 0x4f, 0x19, 0xeb, //0x0000d980 .quad -1506085128623544835 - 0x00, 0x00, 0x00, 0x00, 0x08, 0xab, 0xcf, 0x5d, //0x0000d988 .quad 6759809616554491904 - 0xbe, 0x37, 0xcf, 0xd0, 0xb8, 0xd1, 0xef, 0x92, //0x0000d990 .quad -7858832233030797378 - 0x00, 0x00, 0x00, 0x00, 0xe5, 0xca, 0xa1, 0x5a, //0x0000d998 .quad 6530724019560251392 - 0xad, 0x05, 0x03, 0x05, 0x27, 0xc6, 0xab, 0xb7, //0x0000d9a0 .quad -5211854272861108819 - 0x00, 0x00, 0x00, 0x40, 0x9e, 0x3d, 0x4a, 0xf1, //0x0000d9a8 .quad -1059967012404461568 - 0x19, 0xc7, 0x43, 0xc6, 0xb0, 0xb7, 0x96, 0xe5, //0x0000d9b0 .quad -1903131822648998119 - 0x00, 0x00, 0x00, 0xd0, 0x05, 0xcd, 0x9c, 0x6d, //0x0000d9b8 .quad 7898413271349198848 - 0x6f, 0x5c, 0xea, 0x7b, 0xce, 0x32, 0x7e, 0x8f, //0x0000d9c0 .quad -8106986416796705681 - 0x00, 0x00, 0x00, 0xa2, 0x23, 0x00, 0x82, 0xe4, //0x0000d9c8 .quad -1981020733047832576 - 0x8b, 0xf3, 0xe4, 0x1a, 0x82, 0xbf, 0x5d, 0xb3, //0x0000d9d0 .quad -5522047002568494197 - 0x00, 0x00, 0x80, 0x8a, 0x2c, 0x80, 0xa2, 0xdd, //0x0000d9d8 .quad -2476275916309790720 - 0x6e, 0x30, 0x9e, 0xa1, 0x62, 0x2f, 0x35, 0xe0, //0x0000d9e0 .quad -2290872734783229842 - 0x00, 0x00, 0x20, 0xad, 0x37, 0x20, 0x0b, 0xd5, //0x0000d9e8 .quad -3095344895387238400 - 0x45, 0xde, 0x02, 0xa5, 0x9d, 0x3d, 0x21, 0x8c, //0x0000d9f0 .quad -8349324486880600507 - 0x00, 0x00, 0x34, 0xcc, 0x22, 0xf4, 0x26, 0x45, //0x0000d9f8 .quad 4982938468024057856 - 0xd6, 0x95, 0x43, 0x0e, 0x05, 0x8d, 0x29, 0xaf, //0x0000da00 .quad -5824969590173362730 - 0x00, 0x00, 0x41, 0x7f, 0x2b, 0xb1, 0x70, 0x96, //0x0000da08 .quad -7606384970252091392 - 0x4c, 0x7b, 0xd4, 0x51, 0x46, 0xf0, 0xf3, 0xda, //0x0000da10 .quad -2669525969289315508 - 0x00, 0x40, 0x11, 0x5f, 0x76, 0xdd, 0x0c, 0x3c, //0x0000da18 .quad 4327076842467049472 - 0x0f, 0xcd, 0x24, 0xf3, 0x2b, 0x76, 0xd8, 0x88, //0x0000da20 .quad -8585982758446904049 - 0x00, 0xc8, 0x6a, 0xfb, 0x69, 0x0a, 0x88, 0xa5, //0x0000da28 .quad -6518949010312869888 - 0x53, 0x00, 0xee, 0xef, 0xb6, 0x93, 0x0e, 0xab, //0x0000da30 .quad -6120792429631242157 - 0x00, 0x7a, 0x45, 0x7a, 0x04, 0x0d, 0xea, 0x8e, //0x0000da38 .quad -8148686262891087360 - 0x68, 0x80, 0xe9, 0xab, 0xa4, 0x38, 0xd2, 0xd5, //0x0000da40 .quad -3039304518611664792 - 0x80, 0xd8, 0xd6, 0x98, 0x45, 0x90, 0xa4, 0x72, //0x0000da48 .quad 8260886245095692416 - 0x41, 0xf0, 0x71, 0xeb, 0x66, 0x63, 0xa3, 0x85, //0x0000da50 .quad -8817094351773372351 - 0x50, 0x47, 0x86, 0x7f, 0x2b, 0xda, 0xa6, 0x47, //0x0000da58 .quad 5163053903184807760 - 0x51, 0x6c, 0x4e, 0xa6, 0x40, 0x3c, 0x0c, 0xa7, //0x0000da60 .quad -6409681921289327535 - 0x24, 0xd9, 0x67, 0x5f, 0xb6, 0x90, 0x90, 0x99, //0x0000da68 .quad -7381240676301154012 - 0x65, 0x07, 0xe2, 0xcf, 0x50, 0x4b, 0xcf, 0xd0, //0x0000da70 .quad -3400416383184271515 - 0x6d, 0xcf, 0x41, 0xf7, 0xe3, 0xb4, 0xf4, 0xff, //0x0000da78 .quad -3178808521666707 - 0x9f, 0x44, 0xed, 0x81, 0x12, 0x8f, 0x81, 0x82, //0x0000da80 .quad -9042789267131251553 - 0xa5, 0x21, 0x89, 0x7a, 0x0e, 0xf1, 0xf8, 0xbf, //0x0000da88 .quad -4613672773753429595 - 0xc7, 0x95, 0x68, 0x22, 0xd7, 0xf2, 0x21, 0xa3, //0x0000da90 .quad -6691800565486676537 - 0x0e, 0x6a, 0x2b, 0x19, 0x52, 0x2d, 0xf7, 0xaf, //0x0000da98 .quad -5767090967191786994 - 0x39, 0xbb, 0x02, 0xeb, 0x8c, 0x6f, 0xea, 0xcb, //0x0000daa0 .quad -3753064688430957767 - 0x91, 0x44, 0x76, 0x9f, 0xa6, 0xf8, 0xf4, 0x9b, //0x0000daa8 .quad -7208863708989733743 - 0x08, 0x6a, 0xc3, 0x25, 0x70, 0x0b, 0xe5, 0xfe, //0x0000dab0 .quad -79644842111309304 - 0xb5, 0xd5, 0x53, 0x47, 0xd0, 0x36, 0xf2, 0x02, //0x0000dab8 .quad 212292400617608629 - 0x45, 0x22, 0x9a, 0x17, 0x26, 0x27, 0x4f, 0x9f, //0x0000dac0 .quad -6967307053960650171 - 0x91, 0x65, 0x94, 0x2c, 0x42, 0x62, 0xd7, 0x01, //0x0000dac8 .quad 132682750386005393 - 0xd6, 0xaa, 0x80, 0x9d, 0xef, 0xf0, 0x22, 0xc7, //0x0000dad0 .quad -4097447799023424810 - 0xf6, 0x7e, 0xb9, 0xb7, 0xd2, 0x3a, 0x4d, 0x42, //0x0000dad8 .quad 4777539456409894646 - 0x8b, 0xd5, 0xe0, 0x84, 0x2b, 0xad, 0xeb, 0xf8, //0x0000dae0 .quad -510123730351893109 - 0xb3, 0xde, 0xa7, 0x65, 0x87, 0x89, 0xe0, 0xd2, //0x0000dae8 .quad -3251447716342407501 - 0x77, 0x85, 0x0c, 0x33, 0x3b, 0x4c, 0x93, 0x9b, //0x0000daf0 .quad -7236356359111015049 - 0x30, 0xeb, 0x88, 0x9f, 0xf4, 0x55, 0xcc, 0x63, //0x0000daf8 .quad 7191217214140771120 - 0xd5, 0xa6, 0xcf, 0xff, 0x49, 0x1f, 0x78, 0xc2, //0x0000db00 .quad -4433759430461380907 - 0xfc, 0x25, 0x6b, 0xc7, 0x71, 0x6b, 0xbf, 0x3c, //0x0000db08 .quad 4377335499248575996 - 0x8a, 0x90, 0xc3, 0x7f, 0x1c, 0x27, 0x16, 0xf3, //0x0000db10 .quad -930513269649338230 - 0x7b, 0xef, 0x45, 0x39, 0x4e, 0x46, 0xef, 0x8b, //0x0000db18 .quad -8363388681221443717 - 0x56, 0x3a, 0xda, 0xcf, 0x71, 0xd8, 0xed, 0x97, //0x0000db20 .quad -7499099821171918250 - 0xad, 0xb5, 0xcb, 0xe3, 0xf0, 0x8b, 0x75, 0x97, //0x0000db28 .quad -7532960934977096275 - 0xec, 0xc8, 0xd0, 0x43, 0x8e, 0x4e, 0xe9, 0xbd, //0x0000db30 .quad -4762188758037509908 - 0x18, 0xa3, 0xbe, 0x1c, 0xed, 0xee, 0x52, 0x3d, //0x0000db38 .quad 4418856886560793368 - 0x27, 0xfb, 0xc4, 0xd4, 0x31, 0xa2, 0x63, 0xed, //0x0000db40 .quad -1341049929119499481 - 0xde, 0x4b, 0xee, 0x63, 0xa8, 0xaa, 0xa7, 0x4c, //0x0000db48 .quad 5523571108200991710 - 0xf8, 0x1c, 0xfb, 0x24, 0x5f, 0x45, 0x5e, 0x94, //0x0000db50 .quad -7755685233340769032 - 0x6b, 0xef, 0x74, 0x3e, 0xa9, 0xca, 0xe8, 0x8f, //0x0000db58 .quad -8076983103442849941 - 0x36, 0xe4, 0x39, 0xee, 0xb6, 0xd6, 0x75, 0xb9, //0x0000db60 .quad -5082920523248573386 - 0x45, 0x2b, 0x12, 0x8e, 0x53, 0xfd, 0xe2, 0xb3, //0x0000db68 .quad -5484542860876174523 - 0x44, 0x5d, 0xc8, 0xa9, 0x64, 0x4c, 0xd3, 0xe7, //0x0000db70 .quad -1741964635633328828 - 0x17, 0xb6, 0x96, 0x71, 0xa8, 0xbc, 0xdb, 0x60, //0x0000db78 .quad 6979379479186945559 - 0x4a, 0x3a, 0x1d, 0xea, 0xbe, 0x0f, 0xe4, 0x90, //0x0000db80 .quad -8006256924911912374 - 0xce, 0x31, 0xfe, 0x46, 0xe9, 0x55, 0x89, 0xbc, //0x0000db88 .quad -4861259862362934834 - 0xdd, 0x88, 0xa4, 0xa4, 0xae, 0x13, 0x1d, 0xb5, //0x0000db90 .quad -5396135137712502563 - 0x42, 0xbe, 0xbd, 0x98, 0x63, 0xab, 0xab, 0x6b, //0x0000db98 .quad 7758483227328495170 - 0x14, 0xab, 0xcd, 0x4d, 0x9a, 0x58, 0x64, 0xe2, //0x0000dba0 .quad -2133482903713240300 - 0xd2, 0x2d, 0xed, 0x7e, 0x3c, 0x96, 0x96, 0xc6, //0x0000dba8 .quad -4136954021121544750 - 0xec, 0x8a, 0xa0, 0x70, 0x60, 0xb7, 0x7e, 0x8d, //0x0000dbb0 .quad -8250955842461857044 - 0xa3, 0x3c, 0x54, 0xcf, 0xe5, 0x1d, 0x1e, 0xfc, //0x0000dbb8 .quad -279753253987271517 - 0xa8, 0xad, 0xc8, 0x8c, 0x38, 0x65, 0xde, 0xb0, //0x0000dbc0 .quad -5702008784649933400 - 0xcc, 0x4b, 0x29, 0x43, 0x5f, 0xa5, 0x25, 0x3b, //0x0000dbc8 .quad 4261994450943298508 - 0x12, 0xd9, 0xfa, 0xaf, 0x86, 0xfe, 0x15, 0xdd, //0x0000dbd0 .quad -2515824962385028846 - 0xbf, 0x9e, 0xf3, 0x13, 0xb7, 0x0e, 0xef, 0x49, //0x0000dbd8 .quad 5327493063679123135 - 0xab, 0xc7, 0xfc, 0x2d, 0x14, 0xbf, 0x2d, 0x8a, //0x0000dbe0 .quad -8489919629131724885 - 0x38, 0x43, 0x78, 0x6c, 0x32, 0x69, 0x35, 0x6e, //0x0000dbe8 .quad 7941369183226839864 - 0x96, 0xf9, 0x7b, 0x39, 0xd9, 0x2e, 0xb9, 0xac, //0x0000dbf0 .quad -6000713517987268202 - 0x05, 0x54, 0x96, 0x07, 0x7f, 0xc3, 0xc2, 0x49, //0x0000dbf8 .quad 5315025460606161925 - 0xfb, 0xf7, 0xda, 0x87, 0x8f, 0x7a, 0xe7, 0xd7, //0x0000dc00 .quad -2889205879056697349 - 0x07, 0xe9, 0x7b, 0xc9, 0x5e, 0x74, 0x33, 0xdc, //0x0000dc08 .quad -2579590211097073401 - 0xfd, 0xda, 0xe8, 0xb4, 0x99, 0xac, 0xf0, 0x86, //0x0000dc10 .quad -8723282702051517699 - 0xa4, 0x71, 0xed, 0x3d, 0xbb, 0x28, 0xa0, 0x69, //0x0000dc18 .quad 7611128154919104932 - 0xbc, 0x11, 0x23, 0x22, 0xc0, 0xd7, 0xac, 0xa8, //0x0000dc20 .quad -6292417359137009220 - 0x0d, 0xce, 0x68, 0x0d, 0xea, 0x32, 0x08, 0xc4, //0x0000dc28 .quad -4321147861633282547 - 0x2b, 0xd6, 0xab, 0x2a, 0xb0, 0x0d, 0xd8, 0xd2, //0x0000dc30 .quad -3253835680493873621 - 0x91, 0x01, 0xc3, 0x90, 0xa4, 0x3f, 0x0a, 0xf5, //0x0000dc38 .quad -789748808614215279 - 0xdb, 0x65, 0xab, 0x1a, 0x8e, 0x08, 0xc7, 0x83, //0x0000dc40 .quad -8951176327949752869 - 0xfb, 0xe0, 0x79, 0xda, 0xc6, 0x67, 0x26, 0x79, //0x0000dc48 .quad 8729779031470891259 - 0x52, 0x3f, 0x56, 0xa1, 0xb1, 0xca, 0xb8, 0xa4, //0x0000dc50 .quad -6577284391509803182 - 0x39, 0x59, 0x18, 0x91, 0xb8, 0x01, 0x70, 0x57, //0x0000dc58 .quad 6300537770911226169 - 0x26, 0xcf, 0xab, 0x09, 0x5e, 0xfd, 0xe6, 0xcd, //0x0000dc60 .quad -3609919470959866074 - 0x87, 0x6f, 0x5e, 0xb5, 0x26, 0x02, 0x4c, 0xed, //0x0000dc68 .quad -1347699823215743097 - 0x78, 0x61, 0x0b, 0xc6, 0x5a, 0x5e, 0xb0, 0x80, //0x0000dc70 .quad -9173728696990998152 - 0xb5, 0x05, 0x5b, 0x31, 0x58, 0x81, 0x4f, 0x54, //0x0000dc78 .quad 6075216638131242421 - 0xd6, 0x39, 0x8e, 0x77, 0xf1, 0x75, 0xdc, 0xa0, //0x0000dc80 .quad -6855474852811359786 - 0x22, 0xc7, 0xb1, 0x3d, 0xae, 0x61, 0x63, 0x69, //0x0000dc88 .quad 7594020797664053026 - 0x4c, 0xc8, 0x71, 0xd5, 0x6d, 0x93, 0x13, 0xc9, //0x0000dc90 .quad -3957657547586811828 - 0xea, 0x38, 0x1e, 0xcd, 0x19, 0x3a, 0xbc, 0x03, //0x0000dc98 .quad 269153960225290474 - 0x5f, 0x3a, 0xce, 0x4a, 0x49, 0x78, 0x58, 0xfb, //0x0000dca0 .quad -335385916056126881 - 0x24, 0xc7, 0x65, 0x40, 0xa0, 0x48, 0xab, 0x04, //0x0000dca8 .quad 336442450281613092 - 0x7b, 0xe4, 0xc0, 0xce, 0x2d, 0x4b, 0x17, 0x9d, //0x0000dcb0 .quad -7127145225176161157 - 0x77, 0x9c, 0x3f, 0x28, 0x64, 0x0d, 0xeb, 0x62, //0x0000dcb8 .quad 7127805559067090039 - 0x9a, 0x1d, 0x71, 0x42, 0xf9, 0x1d, 0x5d, 0xc4, //0x0000dcc0 .quad -4297245513042813542 - 0x95, 0x83, 0x4f, 0x32, 0xbd, 0xd0, 0xa5, 0x3b, //0x0000dcc8 .quad 4298070930406474645 - 0x00, 0x65, 0x0d, 0x93, 0x77, 0x65, 0x74, 0xf5, //0x0000dcd0 .quad -759870872876129024 - 0x7a, 0x64, 0xe3, 0x7e, 0xec, 0x44, 0x8f, 0xca, //0x0000dcd8 .quad -3850783373846682502 - 0x20, 0x5f, 0xe8, 0xbb, 0x6a, 0xbf, 0x68, 0x99, //0x0000dce0 .quad -7392448323188662496 - 0xcc, 0x1e, 0x4e, 0xcf, 0x13, 0x8b, 0x99, 0x7e, //0x0000dce8 .quad 9122475437414293196 - 0xe8, 0x76, 0xe2, 0x6a, 0x45, 0xef, 0xc2, 0xbf, //0x0000dcf0 .quad -4628874385558440216 - 0x7f, 0xa6, 0x21, 0xc3, 0xd8, 0xed, 0x3f, 0x9e, //0x0000dcf8 .quad -7043649776941685121 - 0xa2, 0x14, 0x9b, 0xc5, 0x16, 0xab, 0xb3, 0xef, //0x0000dd00 .quad -1174406963520662366 - 0x1f, 0x10, 0xea, 0xf3, 0x4e, 0xe9, 0xcf, 0xc5, //0x0000dd08 .quad -4192876202749718497 - 0xe5, 0xec, 0x80, 0x3b, 0xee, 0x4a, 0xd0, 0x95, //0x0000dd10 .quad -7651533379841495835 - 0x13, 0x4a, 0x72, 0x58, 0xd1, 0xf1, 0xa1, 0xbb, //0x0000dd18 .quad -4926390635932268013 - 0x1f, 0x28, 0x61, 0xca, 0xa9, 0x5d, 0x44, 0xbb, //0x0000dd20 .quad -4952730706374481889 - 0x98, 0xdc, 0x8e, 0xae, 0x45, 0x6e, 0x8a, 0x2a, //0x0000dd28 .quad 3065383741939440792 - 0x26, 0x72, 0xf9, 0x3c, 0x14, 0x75, 0x15, 0xea, //0x0000dd30 .quad -1579227364540714458 - 0xbe, 0x93, 0x32, 0x1a, 0xd7, 0x09, 0x2d, 0xf5, //0x0000dd38 .quad -779956341003086914 - 0x58, 0xe7, 0x1b, 0xa6, 0x2c, 0x69, 0x4d, 0x92, //0x0000dd40 .quad -7904546130479028392 - 0x57, 0x9c, 0x5f, 0x70, 0x26, 0x26, 0x3c, 0x59, //0x0000dd48 .quad 6430056314514152535 - 0x2e, 0xe1, 0xa2, 0xcf, 0x77, 0xc3, 0xe0, 0xb6, //0x0000dd50 .quad -5268996644671397586 - 0x6d, 0x83, 0x77, 0x0c, 0xb0, 0x2f, 0x8b, 0x6f, //0x0000dd58 .quad 8037570393142690669 - 0x7a, 0x99, 0x8b, 0xc3, 0x55, 0xf4, 0x98, 0xe4, //0x0000dd60 .quad -1974559787411859078 - 0x48, 0x64, 0x95, 0x0f, 0x9c, 0xfb, 0x6d, 0x0b, //0x0000dd68 .quad 823590954573587528 - 0xec, 0x3f, 0x37, 0x9a, 0xb5, 0x98, 0xdf, 0x8e, //0x0000dd70 .quad -8151628894773493780 - 0xad, 0x5e, 0xbd, 0x89, 0x41, 0xbd, 0x24, 0x47, //0x0000dd78 .quad 5126430365035880109 - 0xe7, 0x0f, 0xc5, 0x00, 0xe3, 0x7e, 0x97, 0xb2, //0x0000dd80 .quad -5577850100039479321 - 0x58, 0xb6, 0x2c, 0xec, 0x91, 0xec, 0xed, 0x58, //0x0000dd88 .quad 6408037956294850136 - 0xe1, 0x53, 0xf6, 0xc0, 0x9b, 0x5e, 0x3d, 0xdf, //0x0000dd90 .quad -2360626606621961247 - 0xee, 0xe3, 0x37, 0x67, 0xb6, 0x67, 0x29, 0x2f, //0x0000dd98 .quad 3398361426941174766 - 0x6c, 0xf4, 0x99, 0x58, 0x21, 0x5b, 0x86, 0x8b, //0x0000dda0 .quad -8392920656779807636 - 0x75, 0xee, 0x82, 0x00, 0xd2, 0xe0, 0x79, 0xbd, //0x0000dda8 .quad -4793553135802847627 - 0x87, 0x71, 0xc0, 0xae, 0xe9, 0xf1, 0x67, 0xae, //0x0000ddb0 .quad -5879464802547371641 - 0x12, 0xaa, 0xa3, 0x80, 0x06, 0x59, 0xd8, 0xec, //0x0000ddb8 .quad -1380255401326171630 - 0xe9, 0x8d, 0x70, 0x1a, 0x64, 0xee, 0x01, 0xda, //0x0000ddc0 .quad -2737644984756826647 - 0x96, 0x94, 0xcc, 0x20, 0x48, 0x6f, 0x0e, 0xe8, //0x0000ddc8 .quad -1725319251657714538 - 0xb2, 0x58, 0x86, 0x90, 0xfe, 0x34, 0x41, 0x88, //0x0000ddd0 .quad -8628557143114098510 - 0xde, 0xdc, 0x7f, 0x14, 0x8d, 0x05, 0x09, 0x31, //0x0000ddd8 .quad 3533361486141316318 - 0xde, 0xee, 0xa7, 0x34, 0x3e, 0x82, 0x51, 0xaa, //0x0000dde0 .quad -6174010410465235234 - 0x16, 0xd4, 0x9f, 0x59, 0xf0, 0x46, 0x4b, 0xbd, //0x0000dde8 .quad -4806670179178130410 - 0x96, 0xea, 0xd1, 0xc1, 0xcd, 0xe2, 0xe5, 0xd4, //0x0000ddf0 .quad -3105826994654156138 - 0x1b, 0xc9, 0x07, 0x70, 0xac, 0x18, 0x9e, 0x6c, //0x0000ddf8 .quad 7826720331309500699 - 0x9e, 0x32, 0x23, 0x99, 0xc0, 0xad, 0x0f, 0x85, //0x0000de00 .quad -8858670899299929442 - 0xb1, 0xdd, 0x04, 0xc6, 0x6b, 0xcf, 0xe2, 0x03, //0x0000de08 .quad 280014188641050033 - 0x45, 0xff, 0x6b, 0xbf, 0x30, 0x99, 0x53, 0xa6, //0x0000de10 .quad -6461652605697523899 - 0x1d, 0x15, 0x86, 0xb7, 0x46, 0x83, 0xdb, 0x84, //0x0000de18 .quad -8873354301053463267 - 0x16, 0xff, 0x46, 0xef, 0x7c, 0x7f, 0xe8, 0xcf, //0x0000de20 .quad -3465379738694516970 - 0x64, 0x9a, 0x67, 0x65, 0x18, 0x64, 0x12, 0xe6, //0x0000de28 .quad -1868320839462053276 - 0x6e, 0x5f, 0x8c, 0x15, 0xae, 0x4f, 0xf1, 0x81, //0x0000de30 .quad -9083391364325154962 - 0x7f, 0xc0, 0x60, 0x3f, 0x8f, 0x7e, 0xcb, 0x4f, //0x0000de38 .quad 5749828502977298559 - 0x49, 0x77, 0xef, 0x9a, 0x99, 0xa3, 0x6d, 0xa2, //0x0000de40 .quad -6742553186979055799 - 0x9e, 0xf0, 0x38, 0x0f, 0x33, 0x5e, 0xbe, 0xe3, //0x0000de48 .quad -2036086408133152610 - 0x1c, 0x55, 0xab, 0x01, 0x80, 0x0c, 0x09, 0xcb, //0x0000de50 .quad -3816505465296431844 - 0xc6, 0x2c, 0x07, 0xd3, 0xbf, 0xf5, 0xad, 0x5c, //0x0000de58 .quad 6678264026688335046 - 0x63, 0x2a, 0x16, 0x02, 0xa0, 0x4f, 0xcb, 0xfd, //0x0000de60 .quad -158945813193151901 - 0xf7, 0xf7, 0xc8, 0xc7, 0x2f, 0x73, 0xd9, 0x73, //0x0000de68 .quad 8347830033360418807 - 0x7e, 0xda, 0x4d, 0x01, 0xc4, 0x11, 0x9f, 0x9e, //0x0000de70 .quad -7016870160886801794 - 0xfb, 0x9a, 0xdd, 0xdc, 0xfd, 0xe7, 0x67, 0x28, //0x0000de78 .quad 2911550761636567803 - 0x1d, 0x51, 0xa1, 0x01, 0x35, 0xd6, 0x46, 0xc6, //0x0000de80 .quad -4159401682681114339 - 0xb9, 0x01, 0x15, 0x54, 0xfd, 0xe1, 0x81, 0xb2, //0x0000de88 .quad -5583933584809066055 - 0x65, 0xa5, 0x09, 0x42, 0xc2, 0x8b, 0xd8, 0xf7, //0x0000de90 .quad -587566084924005019 - 0x27, 0x42, 0x1a, 0xa9, 0x7c, 0x5a, 0x22, 0x1f, //0x0000de98 .quad 2243455055843443239 - 0x5f, 0x07, 0x46, 0x69, 0x59, 0x57, 0xe7, 0x9a, //0x0000dea0 .quad -7284757830718584993 - 0x59, 0x69, 0xb0, 0xe9, 0x8d, 0x78, 0x75, 0x33, //0x0000dea8 .quad 3708002419115845977 - 0x37, 0x89, 0x97, 0xc3, 0x2f, 0x2d, 0xa1, 0xc1, //0x0000deb0 .quad -4494261269970843337 - 0xaf, 0x83, 0x1c, 0x64, 0xb1, 0xd6, 0x52, 0x00, //0x0000deb8 .quad 23317005467419567 - 0x84, 0x6b, 0x7d, 0xb4, 0x7b, 0x78, 0x09, 0xf2, //0x0000dec0 .quad -1006140569036166268 - 0x9b, 0xa4, 0x23, 0xbd, 0x5d, 0x8c, 0x67, 0xc0, //0x0000dec8 .quad -4582539761593113445 - 0x32, 0x63, 0xce, 0x50, 0x4d, 0xeb, 0x45, 0x97, //0x0000ded0 .quad -7546366883288685774 - 0xe1, 0x46, 0x36, 0x96, 0xba, 0xb7, 0x40, 0xf8, //0x0000ded8 .quad -558244341782001951 - 0xff, 0xfb, 0x01, 0xa5, 0x20, 0x66, 0x17, 0xbd, //0x0000dee0 .quad -4821272585683469313 - 0x99, 0xd8, 0xc3, 0x3b, 0xa9, 0xe5, 0x50, 0xb6, //0x0000dee8 .quad -5309491445654890343 - 0xff, 0x7a, 0x42, 0xce, 0xa8, 0x3f, 0x5d, 0xec, //0x0000def0 .quad -1414904713676948737 - 0xbf, 0xce, 0xb4, 0x8a, 0x13, 0x1f, 0xe5, 0xa3, //0x0000def8 .quad -6636864307068612929 - 0xdf, 0x8c, 0xe9, 0x80, 0xc9, 0x47, 0xba, 0x93, //0x0000df00 .quad -7801844473689174817 - 0x38, 0x01, 0xb1, 0x36, 0x6c, 0x33, 0x6f, 0xc6, //0x0000df08 .quad -4148040191917883080 - 0x17, 0xf0, 0x23, 0xe1, 0xbb, 0xd9, 0xa8, 0xb8, //0x0000df10 .quad -5140619573684080617 - 0x85, 0x41, 0x5d, 0x44, 0x47, 0x00, 0x0b, 0xb8, //0x0000df18 .quad -5185050239897353851 - 0x1d, 0xec, 0x6c, 0xd9, 0x2a, 0x10, 0xd3, 0xe6, //0x0000df20 .quad -1814088448677712867 - 0xe6, 0x91, 0x74, 0x15, 0x59, 0xc0, 0x0d, 0xa6, //0x0000df28 .quad -6481312799871692314 - 0x92, 0x13, 0xe4, 0xc7, 0x1a, 0xea, 0x43, 0x90, //0x0000df30 .quad -8051334308064652398 - 0x30, 0xdb, 0x68, 0xad, 0x37, 0x98, 0xc8, 0x87, //0x0000df38 .quad -8662506518347195600 - 0x77, 0x18, 0xdd, 0x79, 0xa1, 0xe4, 0x54, 0xb4, //0x0000df40 .quad -5452481866653427593 - 0xfc, 0x11, 0xc3, 0x98, 0x45, 0xbe, 0xba, 0x29, //0x0000df48 .quad 3006924907348169212 - 0x94, 0x5e, 0x54, 0xd8, 0xc9, 0x1d, 0x6a, 0xe1, //0x0000df50 .quad -2203916314889396588 - 0x7b, 0xd6, 0xf3, 0xfe, 0xd6, 0x6d, 0x29, 0xf4, //0x0000df58 .quad -853029884242176389 - 0x1d, 0xbb, 0x34, 0x27, 0x9e, 0x52, 0xe2, 0x8c, //0x0000df60 .quad -8294976724446954723 - 0x0d, 0x66, 0x58, 0x5f, 0xa6, 0xe4, 0x99, 0x18, //0x0000df68 .quad 1772699331562333709 - 0xe4, 0xe9, 0x01, 0xb1, 0x45, 0xe7, 0x1a, 0xb0, //0x0000df70 .quad -5757034887131305500 - 0x90, 0x7f, 0x2e, 0xf7, 0xcf, 0x5d, 0xc0, 0x5e, //0x0000df78 .quad 6827560182880305040 - 0x5d, 0x64, 0x42, 0x1d, 0x17, 0xa1, 0x21, 0xdc, //0x0000df80 .quad -2584607590486743971 - 0x74, 0x1f, 0xfa, 0xf4, 0x43, 0x75, 0x70, 0x76, //0x0000df88 .quad 8534450228600381300 - 0xba, 0x7e, 0x49, 0x72, 0xae, 0x04, 0x95, 0x89, //0x0000df90 .quad -8532908771695296838 - 0xa9, 0x53, 0x1c, 0x79, 0x4a, 0x49, 0x06, 0x6a, //0x0000df98 .quad 7639874402088932265 - 0x69, 0xde, 0xdb, 0x0e, 0xda, 0x45, 0xfa, 0xab, //0x0000dfa0 .quad -6054449946191733143 - 0x93, 0x68, 0x63, 0x17, 0x9d, 0xdb, 0x87, 0x04, //0x0000dfa8 .quad 326470965756389523 - 0x03, 0xd6, 0x92, 0x92, 0x50, 0xd7, 0xf8, 0xd6, //0x0000dfb0 .quad -2956376414312278525 - 0xb7, 0x42, 0x3c, 0x5d, 0x84, 0xd2, 0xa9, 0x45, //0x0000dfb8 .quad 5019774725622874807 - 0xc2, 0xc5, 0x9b, 0x5b, 0x92, 0x86, 0x5b, 0x86, //0x0000dfc0 .quad -8765264286586255934 - 0xb3, 0xa9, 0x45, 0xba, 0x92, 0x23, 0x8a, 0x0b, //0x0000dfc8 .quad 831516194300602803 - 0x32, 0xb7, 0x82, 0xf2, 0x36, 0x68, 0xf2, 0xa7, //0x0000dfd0 .quad -6344894339805432014 - 0x1f, 0x14, 0xd7, 0x68, 0x77, 0xac, 0x6c, 0x8e, //0x0000dfd8 .quad -8183976793979022305 - 0xff, 0x64, 0x23, 0xaf, 0x44, 0x02, 0xef, 0xd1, //0x0000dfe0 .quad -3319431906329402113 - 0x27, 0xd9, 0x0c, 0x43, 0x95, 0xd7, 0x07, 0x32, //0x0000dfe8 .quad 3605087062808385831 - 0x1f, 0x1f, 0x76, 0xed, 0x6a, 0x61, 0x35, 0x83, //0x0000dff0 .quad -8992173969096958177 - 0xb9, 0x07, 0xe8, 0x49, 0xbd, 0xe6, 0x44, 0x7f, //0x0000dff8 .quad 9170708441896323001 - 0xe7, 0xa6, 0xd3, 0xa8, 0xc5, 0xb9, 0x02, 0xa4, //0x0000e000 .quad -6628531442943809817 - 0xa7, 0x09, 0x62, 0x9c, 0x6c, 0x20, 0x16, 0x5f, //0x0000e008 .quad 6851699533943015847 - 0xa1, 0x90, 0x08, 0x13, 0x37, 0x68, 0x03, 0xcd, //0x0000e010 .quad -3673978285252374367 - 0x10, 0x8c, 0x7a, 0xc3, 0x87, 0xa8, 0xdb, 0x36, //0x0000e018 .quad 3952938399001381904 - 0x64, 0x5a, 0xe5, 0x6b, 0x22, 0x21, 0x22, 0x80, //0x0000e020 .quad -9213765455923815836 - 0x8a, 0x97, 0x2c, 0xda, 0x54, 0x49, 0x49, 0xc2, //0x0000e028 .quad -4446942528265218166 - 0xfd, 0xb0, 0xde, 0x06, 0x6b, 0xa9, 0x2a, 0xa0, //0x0000e030 .quad -6905520801477381891 - 0x6d, 0xbd, 0xb7, 0x10, 0xaa, 0x9b, 0xdb, 0xf2, //0x0000e038 .quad -946992141904134803 - 0x3d, 0x5d, 0x96, 0xc8, 0xc5, 0x53, 0x35, 0xc8, //0x0000e040 .quad -4020214983419339459 - 0xc8, 0xac, 0xe5, 0x94, 0x94, 0x82, 0x92, 0x6f, //0x0000e048 .quad 8039631859474607304 - 0x8c, 0xf4, 0xbb, 0x3a, 0xb7, 0xa8, 0x42, 0xfa, //0x0000e050 .quad -413582710846786420 - 0xfa, 0x17, 0x1f, 0xba, 0x39, 0x23, 0x77, 0xcb, //0x0000e058 .quad -3785518230938904582 - 0xd7, 0x78, 0xb5, 0x84, 0x72, 0xa9, 0x69, 0x9c, //0x0000e060 .quad -7176018221920323369 - 0xfc, 0x6e, 0x53, 0x14, 0x04, 0x76, 0x2a, 0xff, //0x0000e068 .quad -60105885123121412 - 0x0d, 0xd7, 0xe2, 0x25, 0xcf, 0x13, 0x84, 0xc3, //0x0000e070 .quad -4358336758973016307 - 0xbb, 0x4a, 0x68, 0x19, 0x85, 0x13, 0xf5, 0xfe, //0x0000e078 .quad -75132356403901765 - 0xd1, 0x8c, 0x5b, 0xef, 0xc2, 0x18, 0x65, 0xf4, //0x0000e080 .quad -836234930288882479 - 0x6a, 0x5d, 0xc2, 0x5f, 0x66, 0x58, 0xb2, 0x7e, //0x0000e088 .quad 9129456591349898602 - 0x02, 0x38, 0x99, 0xd5, 0x79, 0x2f, 0xbf, 0x98, //0x0000e090 .quad -7440175859071633406 - 0x62, 0x7a, 0xd9, 0xfb, 0x3f, 0x77, 0x2f, 0xef, //0x0000e098 .quad -1211618658047395230 - 0x03, 0x86, 0xff, 0x4a, 0x58, 0xfb, 0xee, 0xbe, //0x0000e0a0 .quad -4688533805412153853 - 0xfb, 0xd8, 0xcf, 0xfa, 0x0f, 0x55, 0xfb, 0xaa, //0x0000e0a8 .quad -6126209340986631941 - 0x84, 0x67, 0xbf, 0x5d, 0x2e, 0xba, 0xaa, 0xee, //0x0000e0b0 .quad -1248981238337804412 - 0x39, 0xcf, 0x83, 0xf9, 0x53, 0x2a, 0xba, 0x95, //0x0000e0b8 .quad -7657761676233289927 - 0xb2, 0xa0, 0x97, 0xfa, 0x5c, 0xb4, 0x2a, 0x95, //0x0000e0c0 .quad -7698142301602209614 - 0x84, 0x61, 0xf2, 0x7b, 0x74, 0x5a, 0x94, 0xdd, //0x0000e0c8 .quad -2480258038432112252 - 0xdf, 0x88, 0x3d, 0x39, 0x74, 0x61, 0x75, 0xba, //0x0000e0d0 .quad -5010991858575374113 - 0xe5, 0xf9, 0xee, 0x9a, 0x11, 0x71, 0xf9, 0x94, //0x0000e0d8 .quad -7712008566467528219 - 0x17, 0xeb, 0x8c, 0x47, 0xd1, 0xb9, 0x12, 0xe9, //0x0000e0e0 .quad -1652053804791829737 - 0x5e, 0xb8, 0xaa, 0x01, 0x56, 0xcd, 0x37, 0x7a, //0x0000e0e8 .quad 8806733365625141342 - 0xee, 0x12, 0xb8, 0xcc, 0x22, 0xb4, 0xab, 0x91, //0x0000e0f0 .quad -7950062655635975442 - 0x3b, 0xb3, 0x0a, 0xc1, 0x55, 0xe0, 0x62, 0xac, //0x0000e0f8 .quad -6025006692552756421 - 0xaa, 0x17, 0xe6, 0x7f, 0x2b, 0xa1, 0x16, 0xb6, //0x0000e100 .quad -5325892301117581398 - 0x0a, 0x60, 0x4d, 0x31, 0x6b, 0x98, 0x7b, 0x57, //0x0000e108 .quad 6303799689591218186 - 0x94, 0x9d, 0xdf, 0x5f, 0x76, 0x49, 0x9c, 0xe3, //0x0000e110 .quad -2045679357969588844 - 0x0c, 0xb8, 0xa0, 0xfd, 0x85, 0x7e, 0x5a, 0xed, //0x0000e118 .quad -1343622424865753076 - 0x7d, 0xc2, 0xeb, 0xfb, 0xe9, 0xad, 0x41, 0x8e, //0x0000e120 .quad -8196078626372074883 - 0x08, 0x73, 0x84, 0xbe, 0x13, 0x8f, 0x58, 0x14, //0x0000e128 .quad 1466078993672598280 - 0x1c, 0xb3, 0xe6, 0x7a, 0x64, 0x19, 0xd2, 0xb1, //0x0000e130 .quad -5633412264537705700 - 0xc9, 0x8f, 0x25, 0xae, 0xd8, 0xb2, 0x6e, 0x59, //0x0000e138 .quad 6444284760518135753 - 0xe3, 0x5f, 0xa0, 0x99, 0xbd, 0x9f, 0x46, 0xde, //0x0000e140 .quad -2430079312244744221 - 0xbc, 0xf3, 0xae, 0xd9, 0x8e, 0x5f, 0xca, 0x6f, //0x0000e148 .quad 8055355950647669692 - 0xee, 0x3b, 0x04, 0x80, 0xd6, 0x23, 0xec, 0x8a, //0x0000e150 .quad -8436328597794046994 - 0x55, 0x58, 0x0d, 0x48, 0xb9, 0x7b, 0xde, 0x25, //0x0000e158 .quad 2728754459941099605 - 0xe9, 0x4a, 0x05, 0x20, 0xcc, 0x2c, 0xa7, 0xad, //0x0000e160 .quad -5933724728815170839 - 0x6b, 0xae, 0x10, 0x9a, 0xa7, 0x1a, 0x56, 0xaf, //0x0000e168 .quad -5812428961928401301 - 0xa4, 0x9d, 0x06, 0x28, 0xff, 0xf7, 0x10, 0xd9, //0x0000e170 .quad -2805469892591575644 - 0x05, 0xda, 0x94, 0x80, 0x51, 0xa1, 0x2b, 0x1b, //0x0000e178 .quad 1957835834444274181 - 0x86, 0x22, 0x04, 0x79, 0xff, 0x9a, 0xaa, 0x87, //0x0000e180 .quad -8670947710510816634 - 0x43, 0x08, 0x5d, 0xf0, 0xd2, 0x44, 0xfb, 0x90, //0x0000e188 .quad -7999724640327104445 - 0x28, 0x2b, 0x45, 0x57, 0xbf, 0x41, 0x95, 0xa9, //0x0000e190 .quad -6226998619711132888 - 0x54, 0x4a, 0x74, 0xac, 0x07, 0x16, 0x3a, 0x35, //0x0000e198 .quad 3835402254873283156 - 0xf2, 0x75, 0x16, 0x2d, 0x2f, 0x92, 0xfa, 0xd3, //0x0000e1a0 .quad -3172062256211528206 - 0xe9, 0x5c, 0x91, 0x97, 0x89, 0x9b, 0x88, 0x42, //0x0000e1a8 .quad 4794252818591603945 - 0xb7, 0x09, 0x2e, 0x7c, 0x5d, 0x9b, 0x7c, 0x84, //0x0000e1b0 .quad -8900067937773286985 - 0x12, 0xda, 0xba, 0xfe, 0x35, 0x61, 0x95, 0x69, //0x0000e1b8 .quad 7608094030047140370 - 0x25, 0x8c, 0x39, 0xdb, 0x34, 0xc2, 0x9b, 0xa5, //0x0000e1c0 .quad -6513398903789220827 - 0x96, 0x90, 0x69, 0x7e, 0x83, 0xb9, 0xfa, 0x43, //0x0000e1c8 .quad 4898431519131537558 - 0x2e, 0xef, 0x07, 0x12, 0xc2, 0xb2, 0x02, 0xcf, //0x0000e1d0 .quad -3530062611309138130 - 0xbc, 0xf4, 0x03, 0x5e, 0xe4, 0x67, 0xf9, 0x94, //0x0000e1d8 .quad -7712018656367741764 - 0x7d, 0xf5, 0x44, 0x4b, 0xb9, 0xaf, 0x61, 0x81, //0x0000e1e0 .quad -9123818159709293187 - 0xf6, 0x78, 0xc2, 0xba, 0xee, 0xe0, 0x1b, 0x1d, //0x0000e1e8 .quad 2097517367411243254 - 0xdc, 0x32, 0x16, 0x9e, 0xa7, 0x1b, 0xba, 0xa1, //0x0000e1f0 .quad -6793086681209228580 - 0x33, 0x17, 0x73, 0x69, 0x2a, 0xd9, 0x62, 0x64, //0x0000e1f8 .quad 7233582727691441971 - 0x93, 0xbf, 0x9b, 0x85, 0x91, 0xa2, 0x28, 0xca, //0x0000e200 .quad -3879672333084147821 - 0xff, 0xdc, 0xcf, 0x03, 0x75, 0x8f, 0x7b, 0x7d, //0x0000e208 .quad 9041978409614302463 - 0x78, 0xaf, 0x02, 0xe7, 0x35, 0xcb, 0xb2, 0xfc, //0x0000e210 .quad -237904397927796872 - 0x3f, 0xd4, 0xc3, 0x44, 0x52, 0x73, 0xda, 0x5c, //0x0000e218 .quad 6690786993590490175 - 0xab, 0xad, 0x61, 0xb0, 0x01, 0xbf, 0xef, 0x9d, //0x0000e220 .quad -7066219276345954901 - 0xa8, 0x64, 0xfa, 0x6a, 0x13, 0x88, 0x08, 0x3a, //0x0000e228 .quad 4181741870994056360 - 0x16, 0x19, 0x7a, 0x1c, 0xc2, 0xae, 0x6b, 0xc5, //0x0000e230 .quad -4221088077005055722 - 0xd1, 0xfd, 0xb8, 0x45, 0x18, 0xaa, 0x8a, 0x08, //0x0000e238 .quad 615491320315182545 - 0x5b, 0x9f, 0x98, 0xa3, 0x72, 0x9a, 0xc6, 0xf6, //0x0000e240 .quad -664674077828931749 - 0x46, 0x3d, 0x27, 0x57, 0x9e, 0x54, 0xad, 0x8a, //0x0000e248 .quad -8454007886460797626 - 0x99, 0x63, 0x3f, 0xa6, 0x87, 0x20, 0x3c, 0x9a, //0x0000e250 .quad -7332950326284164199 - 0x4c, 0x86, 0x78, 0xf6, 0xe2, 0x54, 0xac, 0x36, //0x0000e258 .quad 3939617107816777292 - 0x7f, 0x3c, 0xcf, 0x8f, 0xa9, 0x28, 0xcb, 0xc0, //0x0000e260 .quad -4554501889427817345 - 0xde, 0xa7, 0x16, 0xb4, 0x1b, 0x6a, 0x57, 0x84, //0x0000e268 .quad -8910536670511192098 - 0x9f, 0x0b, 0xc3, 0xf3, 0xd3, 0xf2, 0xfd, 0xf0, //0x0000e270 .quad -1081441343357383777 - 0xd6, 0x51, 0x1c, 0xa1, 0xa2, 0x44, 0x6d, 0x65, //0x0000e278 .quad 7308573235570561494 - 0x43, 0xe7, 0x59, 0x78, 0xc4, 0xb7, 0x9e, 0x96, //0x0000e280 .quad -7593429867239446717 - 0x26, 0xb3, 0xb1, 0xa4, 0xe5, 0x4a, 0x64, 0x9f, //0x0000e288 .quad -6961356773836868826 - 0x14, 0x61, 0x70, 0x96, 0xb5, 0x65, 0x46, 0xbc, //0x0000e290 .quad -4880101315621920492 - 0xef, 0x1f, 0xde, 0x0d, 0x9f, 0x5d, 0x3d, 0x87, //0x0000e298 .quad -8701695967296086033 - 0x59, 0x79, 0x0c, 0xfc, 0x22, 0xff, 0x57, 0xeb, //0x0000e2a0 .quad -1488440626100012711 - 0xeb, 0xa7, 0x55, 0xd1, 0x06, 0xb5, 0x0c, 0xa9, //0x0000e2a8 .quad -6265433940692719637 - 0xd8, 0xcb, 0x87, 0xdd, 0x75, 0xff, 0x16, 0x93, //0x0000e2b0 .quad -7847804418953589800 - 0xf3, 0x88, 0xd5, 0x42, 0x24, 0xf1, 0xa7, 0x09, //0x0000e2b8 .quad 695789805494438131 - 0xce, 0xbe, 0xe9, 0x54, 0x53, 0xbf, 0xdc, 0xb7, //0x0000e2c0 .quad -5198069505264599346 - 0x30, 0xeb, 0x8a, 0x53, 0x6d, 0xed, 0x11, 0x0c, //0x0000e2c8 .quad 869737256868047664 - 0x81, 0x2e, 0x24, 0x2a, 0x28, 0xef, 0xd3, 0xe5, //0x0000e2d0 .quad -1885900863153361279 - 0xfb, 0xa5, 0x6d, 0xa8, 0xc8, 0x68, 0x16, 0x8f, //0x0000e2d8 .quad -8136200465769716229 - 0x10, 0x9d, 0x56, 0x1a, 0x79, 0x75, 0xa4, 0x8f, //0x0000e2e0 .quad -8096217067111932656 - 0xbd, 0x87, 0x44, 0x69, 0x7d, 0x01, 0x6e, 0xf9, //0x0000e2e8 .quad -473439272678684739 - 0x55, 0x44, 0xec, 0x60, 0xd7, 0x92, 0x8d, 0xb3, //0x0000e2f0 .quad -5508585315462527915 - 0xad, 0xa9, 0x95, 0xc3, 0xdc, 0x81, 0xc9, 0x37, //0x0000e2f8 .quad 4019886927579031981 - 0x6a, 0x55, 0x27, 0x39, 0x8d, 0xf7, 0x70, 0xe0, //0x0000e300 .quad -2274045625900771990 - 0x18, 0x14, 0x7b, 0xf4, 0x53, 0xe2, 0xbb, 0x85, //0x0000e308 .quad -8810199395808373736 - 0x62, 0x95, 0xb8, 0x43, 0xb8, 0x9a, 0x46, 0x8c, //0x0000e310 .quad -8338807543829064350 - 0x8f, 0xec, 0xcc, 0x78, 0x74, 0x6d, 0x95, 0x93, //0x0000e318 .quad -7812217631593927537 - 0xbb, 0xba, 0xa6, 0x54, 0x66, 0x41, 0x58, 0xaf, //0x0000e320 .quad -5811823411358942533 - 0xb3, 0x27, 0x00, 0x97, 0xd1, 0xc8, 0x7a, 0x38, //0x0000e328 .quad 4069786015789754291 - 0x6a, 0x69, 0xd0, 0xe9, 0xbf, 0x51, 0x2e, 0xdb, //0x0000e330 .quad -2653093245771290262 - 0x9f, 0x31, 0xc0, 0xfc, 0x05, 0x7b, 0x99, 0x06, //0x0000e338 .quad 475546501309804959 - 0xe2, 0x41, 0x22, 0xf2, 0x17, 0xf3, 0xfc, 0x88, //0x0000e340 .quad -8575712306248138270 - 0x04, 0x1f, 0xf8, 0xbd, 0xe3, 0xec, 0x1f, 0x44, //0x0000e348 .quad 4908902581746016004 - 0x5a, 0xd2, 0xaa, 0xee, 0xdd, 0x2f, 0x3c, 0xab, //0x0000e350 .quad -6107954364382784934 - 0xc4, 0x26, 0x76, 0xad, 0x1c, 0xe8, 0x27, 0xd5, //0x0000e358 .quad -3087243809672255804 - 0xf1, 0x86, 0x55, 0x6a, 0xd5, 0x3b, 0x0b, 0xd6, //0x0000e360 .quad -3023256937051093263 - 0x75, 0xb0, 0xd3, 0xd8, 0x23, 0xe2, 0x71, 0x8a, //0x0000e368 .quad -8470740780517707659 - 0x56, 0x74, 0x75, 0x62, 0x65, 0x05, 0xc7, 0x85, //0x0000e370 .quad -8807064613298015146 - 0x4a, 0x4e, 0x84, 0x67, 0x56, 0x2d, 0x87, 0xf6, //0x0000e378 .quad -682526969396179382 - 0x6c, 0xd1, 0x12, 0xbb, 0xbe, 0xc6, 0x38, 0xa7, //0x0000e380 .quad -6397144748195131028 - 0xdc, 0x61, 0x65, 0x01, 0xac, 0xf8, 0x28, 0xb4, //0x0000e388 .quad -5464844730172612132 - 0xc7, 0x85, 0xd7, 0x69, 0x6e, 0xf8, 0x06, 0xd1, //0x0000e390 .quad -3384744916816525881 - 0x53, 0xba, 0xbe, 0x01, 0xd7, 0x36, 0x33, 0xe1, //0x0000e398 .quad -2219369894288377261 - 0x9c, 0xb3, 0x26, 0x02, 0x45, 0x5b, 0xa4, 0x82, //0x0000e3a0 .quad -9032994600651410532 - 0x74, 0x34, 0x17, 0x61, 0x46, 0x02, 0xc0, 0xec, //0x0000e3a8 .quad -1387106183930235788 - 0x84, 0x60, 0xb0, 0x42, 0x16, 0x72, 0x4d, 0xa3, //0x0000e3b0 .quad -6679557232386875260 - 0x91, 0x01, 0x5d, 0xf9, 0xd7, 0x02, 0xf0, 0x27, //0x0000e3b8 .quad 2877803288514593169 - 0xa5, 0x78, 0x5c, 0xd3, 0x9b, 0xce, 0x20, 0xcc, //0x0000e3c0 .quad -3737760522056206171 - 0xf5, 0x41, 0xb4, 0xf7, 0x8d, 0x03, 0xec, 0x31, //0x0000e3c8 .quad 3597254110643241461 - 0xce, 0x96, 0x33, 0xc8, 0x42, 0x02, 0x29, 0xff, //0x0000e3d0 .quad -60514634142869810 - 0x72, 0x52, 0xa1, 0x75, 0x71, 0x04, 0x67, 0x7e, //0x0000e3d8 .quad 9108253656731439730 - 0x41, 0x3e, 0x20, 0xbd, 0x69, 0xa1, 0x79, 0x9f, //0x0000e3e0 .quad -6955350673980375487 - 0x87, 0xd3, 0x84, 0xe9, 0xc6, 0x62, 0x00, 0x0f, //0x0000e3e8 .quad 1080972517029761927 - 0xd1, 0x4d, 0x68, 0x2c, 0xc4, 0x09, 0x58, 0xc7, //0x0000e3f0 .quad -4082502324048081455 - 0x69, 0x08, 0xe6, 0xa3, 0x78, 0x7b, 0xc0, 0x52, //0x0000e3f8 .quad 5962901664714590313 - 0x45, 0x61, 0x82, 0x37, 0x35, 0x0c, 0x2e, 0xf9, //0x0000e400 .quad -491441886632713915 - 0x83, 0x8a, 0xdf, 0xcc, 0x56, 0x9a, 0x70, 0xa7, //0x0000e408 .quad -6381430974388925821 - 0xcb, 0x7c, 0xb1, 0x42, 0xa1, 0xc7, 0xbc, 0x9b, //0x0000e410 .quad -7224680206786528053 - 0x92, 0xb6, 0x0b, 0x40, 0x76, 0x60, 0xa6, 0x88, //0x0000e418 .quad -8600080377420466542 - 0xfe, 0xdb, 0x5d, 0x93, 0x89, 0xf9, 0xab, 0xc2, //0x0000e420 .quad -4419164240055772162 - 0x36, 0xa4, 0x0e, 0xd0, 0x93, 0xf8, 0xcf, 0x6a, //0x0000e428 .quad 7696643601933968438 - 0xfe, 0x52, 0x35, 0xf8, 0xeb, 0xf7, 0x56, 0xf3, //0x0000e430 .quad -912269281642327298 - 0x44, 0x4d, 0x12, 0xc4, 0xb8, 0xf6, 0x83, 0x05, //0x0000e438 .quad 397432465562684740 - 0xde, 0x53, 0x21, 0x7b, 0xf3, 0x5a, 0x16, 0x98, //0x0000e440 .quad -7487697328667536418 - 0x4b, 0x70, 0x8b, 0x7a, 0x33, 0x7a, 0x72, 0xc3, //0x0000e448 .quad -4363290727450709941 - 0xd6, 0xa8, 0xe9, 0x59, 0xb0, 0xf1, 0x1b, 0xbe, //0x0000e450 .quad -4747935642407032618 - 0x5d, 0x4c, 0x2e, 0x59, 0xc0, 0x18, 0x4f, 0x74, //0x0000e458 .quad 8380944645968776285 - 0x0c, 0x13, 0x64, 0x70, 0x1c, 0xee, 0xa2, 0xed, //0x0000e460 .quad -1323233534581402868 - 0x74, 0xdf, 0x79, 0x6f, 0xf0, 0xde, 0x62, 0x11, //0x0000e468 .quad 1252808770606194548 - 0xe7, 0x8b, 0x3e, 0xc6, 0xd1, 0xd4, 0x85, 0x94, //0x0000e470 .quad -7744549986754458649 - 0xa9, 0x2b, 0xac, 0x45, 0x56, 0xcb, 0xdd, 0x8a, //0x0000e478 .quad -8440366555225904215 - 0xe1, 0x2e, 0xce, 0x37, 0x06, 0x4a, 0xa7, 0xb9, //0x0000e480 .quad -5069001465015685407 - 0x93, 0x36, 0x17, 0xd7, 0x2b, 0x3e, 0x95, 0x6d, //0x0000e488 .quad 7896285879677171347 - 0x99, 0xba, 0xc1, 0xc5, 0x87, 0x1c, 0x11, 0xe8, //0x0000e490 .quad -1724565812842218855 - 0x38, 0x04, 0xdd, 0xcc, 0xb6, 0x8d, 0xfa, 0xc8, //0x0000e498 .quad -3964700705685699528 - 0xa0, 0x14, 0x99, 0xdb, 0xd4, 0xb1, 0x0a, 0x91, //0x0000e4a0 .quad -7995382660667468640 - 0xa3, 0x22, 0x0a, 0x40, 0x92, 0x98, 0x9c, 0x1d, //0x0000e4a8 .quad 2133748077373825699 - 0xc8, 0x59, 0x7f, 0x12, 0x4a, 0x5e, 0x4d, 0xb5, //0x0000e4b0 .quad -5382542307406947896 - 0x4c, 0xab, 0x0c, 0xd0, 0xb6, 0xbe, 0x03, 0x25, //0x0000e4b8 .quad 2667185096717282124 - 0x3a, 0x30, 0x1f, 0x97, 0xdc, 0xb5, 0xa0, 0xe2, //0x0000e4c0 .quad -2116491865831296966 - 0x1e, 0xd6, 0x0f, 0x84, 0x64, 0xae, 0x44, 0x2e, //0x0000e4c8 .quad 3333981370896602654 - 0x24, 0x7e, 0x73, 0xde, 0xa9, 0x71, 0xa4, 0x8d, //0x0000e4d0 .quad -8240336443785642460 - 0xd3, 0xe5, 0x89, 0xd2, 0xfe, 0xec, 0xea, 0x5c, //0x0000e4d8 .quad 6695424375237764563 - 0xad, 0x5d, 0x10, 0x56, 0x14, 0x8e, 0x0d, 0xb1, //0x0000e4e0 .quad -5688734536304665171 - 0x48, 0x5f, 0x2c, 0x87, 0x3e, 0xa8, 0x25, 0x74, //0x0000e4e8 .quad 8369280469047205704 - 0x18, 0x75, 0x94, 0x6b, 0x99, 0xf1, 0x50, 0xdd, //0x0000e4f0 .quad -2499232151953443560 - 0x1a, 0x77, 0xf7, 0x28, 0x4e, 0x12, 0x2f, 0xd1, //0x0000e4f8 .quad -3373457468973156582 - 0x2f, 0xc9, 0x3c, 0xe3, 0xff, 0x96, 0x52, 0x8a, //0x0000e500 .quad -8479549122611984081 - 0x70, 0xaa, 0x9a, 0xd9, 0x70, 0x6b, 0xbd, 0x82, //0x0000e508 .quad -9025939945749304720 - 0x7b, 0xfb, 0x0b, 0xdc, 0xbf, 0x3c, 0xe7, 0xac, //0x0000e510 .quad -5987750384837592197 - 0x0c, 0x55, 0x01, 0x10, 0x4d, 0xc6, 0x6c, 0x63, //0x0000e518 .quad 7164319141522920716 - 0x5a, 0xfa, 0x0e, 0xd3, 0xef, 0x0b, 0x21, 0xd8, //0x0000e520 .quad -2873001962619602342 - 0x4f, 0xaa, 0x01, 0x54, 0xe0, 0xf7, 0x47, 0x3c, //0x0000e528 .quad 4343712908476262991 - 0x78, 0x5c, 0xe9, 0xe3, 0x75, 0xa7, 0x14, 0x87, //0x0000e530 .quad -8713155254278333320 - 0x72, 0x0a, 0x81, 0x34, 0xec, 0xfa, 0xac, 0x65, //0x0000e538 .quad 7326506586225052274 - 0x96, 0xb3, 0xe3, 0x5c, 0x53, 0xd1, 0xd9, 0xa8, //0x0000e540 .quad -6279758049420528746 - 0x0e, 0x4d, 0xa1, 0x41, 0xa7, 0x39, 0x18, 0x7f, //0x0000e548 .quad 9158133232781315342 - 0x7c, 0xa0, 0x1c, 0x34, 0xa8, 0x45, 0x10, 0xd3, //0x0000e550 .quad -3238011543348273028 - 0x51, 0xa0, 0x09, 0x12, 0x11, 0x48, 0xde, 0x1e, //0x0000e558 .quad 2224294504121868369 - 0x4d, 0xe4, 0x91, 0x20, 0x89, 0x2b, 0xea, 0x83, //0x0000e560 .quad -8941286242233752499 - 0x33, 0x04, 0x46, 0xab, 0x0a, 0xed, 0x4a, 0x93, //0x0000e568 .quad -7833187971778608077 - 0x60, 0x5d, 0xb6, 0x68, 0x6b, 0xb6, 0xe4, 0xa4, //0x0000e570 .quad -6564921784364802720 - 0x40, 0x85, 0x17, 0x56, 0x4d, 0xa8, 0x1d, 0xf8, //0x0000e578 .quad -568112927868484288 - 0xb9, 0xf4, 0xe3, 0x42, 0x06, 0xe4, 0x1d, 0xce, //0x0000e580 .quad -3594466212028615495 - 0x8f, 0x66, 0x9d, 0xab, 0x60, 0x12, 0x25, 0x36, //0x0000e588 .quad 3901544858591782543 - 0xf3, 0x78, 0xce, 0xe9, 0x83, 0xae, 0xd2, 0x80, //0x0000e590 .quad -9164070410158966541 - 0x1a, 0x60, 0x42, 0x6b, 0x7c, 0x2b, 0xd7, 0xc1, //0x0000e598 .quad -4479063491021217766 - 0x30, 0x17, 0x42, 0xe4, 0x24, 0x5a, 0x07, 0xa1, //0x0000e5a0 .quad -6843401994271320272 - 0x20, 0xf8, 0x12, 0x86, 0x5b, 0xf6, 0x4c, 0xb2, //0x0000e5a8 .quad -5598829363776522208 - 0xfc, 0x9c, 0x52, 0x1d, 0xae, 0x30, 0x49, 0xc9, //0x0000e5b0 .quad -3942566474411762436 - 0x28, 0xb6, 0x97, 0x67, 0xf2, 0x33, 0xe0, 0xde, //0x0000e5b8 .quad -2386850686293264856 - 0x3c, 0x44, 0xa7, 0xa4, 0xd9, 0x7c, 0x9b, 0xfb, //0x0000e5c0 .quad -316522074587315140 - 0xb2, 0xa3, 0x7d, 0x01, 0xef, 0x40, 0x98, 0x16, //0x0000e5c8 .quad 1628122660560806834 - 0xa5, 0x8a, 0xe8, 0x06, 0x08, 0x2e, 0x41, 0x9d, //0x0000e5d0 .quad -7115355324258153819 - 0x4f, 0x86, 0xee, 0x60, 0x95, 0x28, 0x1f, 0x8e, //0x0000e5d8 .quad -8205795374004271537 - 0x4e, 0xad, 0xa2, 0x08, 0x8a, 0x79, 0x91, 0xc4, //0x0000e5e0 .quad -4282508136895304370 - 0xe3, 0x27, 0x2a, 0xb9, 0xba, 0xf2, 0xa6, 0xf1, //0x0000e5e8 .quad -1033872180650563613 - 0xa2, 0x58, 0xcb, 0x8a, 0xec, 0xd7, 0xb5, 0xf5, //0x0000e5f0 .quad -741449152691742558 - 0xdc, 0xb1, 0x74, 0x67, 0x69, 0xaf, 0x10, 0xae, //0x0000e5f8 .quad -5904026244240592420 - 0x65, 0x17, 0xbf, 0xd6, 0xf3, 0xa6, 0x91, 0x99, //0x0000e600 .quad -7380934748073420955 - 0x2a, 0xef, 0xa8, 0xe0, 0xa1, 0x6d, 0xca, 0xac, //0x0000e608 .quad -5995859411864064214 - 0x3f, 0xdd, 0x6e, 0xcc, 0xb0, 0x10, 0xf6, 0xbf, //0x0000e610 .quad -4614482416664388289 - 0xf4, 0x2a, 0xd3, 0x58, 0x0a, 0x09, 0xfd, 0x17, //0x0000e618 .quad 1728547772024695540 - 0x8e, 0x94, 0x8a, 0xff, 0xdc, 0x94, 0xf3, 0xef, //0x0000e620 .quad -1156417002403097458 - 0xb1, 0xf5, 0x07, 0xef, 0x4c, 0x4b, 0xfc, 0xdd, //0x0000e628 .quad -2451001303396518479 - 0xd9, 0x9c, 0xb6, 0x1f, 0x0a, 0x3d, 0xf8, 0x95, //0x0000e630 .quad -7640289654143017767 - 0x8f, 0xf9, 0x64, 0x15, 0x10, 0xaf, 0xbd, 0x4a, //0x0000e638 .quad 5385653213018257807 - 0x0f, 0x44, 0xa4, 0xa7, 0x4c, 0x4c, 0x76, 0xbb, //0x0000e640 .quad -4938676049251384305 - 0xf2, 0x37, 0xbe, 0x1a, 0xd4, 0x1a, 0x6d, 0x9d, //0x0000e648 .quad -7102991539009341454 - 0x13, 0x55, 0x8d, 0xd1, 0x5f, 0xdf, 0x53, 0xea, //0x0000e650 .quad -1561659043136842477 - 0xee, 0xc5, 0x6d, 0x21, 0x89, 0x61, 0xc8, 0x84, //0x0000e658 .quad -8878739423761676818 - 0x2c, 0x55, 0xf8, 0xe2, 0x9b, 0x6b, 0x74, 0x92, //0x0000e660 .quad -7893565929601608404 - 0xb5, 0x9b, 0xe4, 0xb4, 0xf5, 0x3c, 0xfd, 0x32, //0x0000e668 .quad 3674159897003727797 - 0x77, 0x6a, 0xb6, 0xdb, 0x82, 0x86, 0x11, 0xb7, //0x0000e670 .quad -5255271393574622601 - 0xa2, 0xc2, 0x1d, 0x22, 0x33, 0x8c, 0xbc, 0x3f, //0x0000e678 .quad 4592699871254659746 - 0x15, 0x05, 0xa4, 0x92, 0x23, 0xe8, 0xd5, 0xe4, //0x0000e680 .quad -1957403223540890347 - 0x4b, 0x33, 0xa5, 0xea, 0x3f, 0xaf, 0xab, 0x0f, //0x0000e688 .quad 1129188820640936779 - 0x2d, 0x83, 0xa6, 0x3b, 0x16, 0xb1, 0x05, 0x8f, //0x0000e690 .quad -8140906042354138323 - 0x0f, 0x40, 0xa7, 0xf2, 0x87, 0x4d, 0xcb, 0x29, //0x0000e698 .quad 3011586022114279439 - 0xf8, 0x23, 0x90, 0xca, 0x5b, 0x1d, 0xc7, 0xb2, //0x0000e6a0 .quad -5564446534515285000 - 0x13, 0x10, 0x51, 0xef, 0xe9, 0x20, 0x3e, 0x74, //0x0000e6a8 .quad 8376168546070237203 - 0xf6, 0x2c, 0x34, 0xbd, 0xb2, 0xe4, 0x78, 0xdf, //0x0000e6b0 .quad -2343872149716718346 - 0x17, 0x54, 0x25, 0x6b, 0x24, 0xa9, 0x4d, 0x91, //0x0000e6b8 .quad -7976533391121755113 - 0x1a, 0x9c, 0x40, 0xb6, 0xef, 0x8e, 0xab, 0x8b, //0x0000e6c0 .quad -8382449121214030822 - 0x8f, 0x54, 0xf7, 0xc2, 0xb6, 0x89, 0xd0, 0x1a, //0x0000e6c8 .quad 1932195658189984911 - 0x20, 0xc3, 0xd0, 0xa3, 0xab, 0x72, 0x96, 0xae, //0x0000e6d0 .quad -5866375383090150624 - 0xb2, 0x29, 0xb5, 0x73, 0x24, 0xac, 0x84, 0xa1, //0x0000e6d8 .quad -6808127464117294670 - 0xe8, 0xf3, 0xc4, 0x8c, 0x56, 0x0f, 0x3c, 0xda, //0x0000e6e0 .quad -2721283210435300376 - 0x1f, 0x74, 0xa2, 0x90, 0x2d, 0xd7, 0xe5, 0xc9, //0x0000e6e8 .quad -3898473311719230433 - 0x71, 0x18, 0xfb, 0x17, 0x96, 0x89, 0x65, 0x88, //0x0000e6f0 .quad -8618331034163144591 - 0x93, 0x88, 0x65, 0x7a, 0x7c, 0xa6, 0x2f, 0x7e, //0x0000e6f8 .quad 9092669226243950739 - 0x8d, 0xde, 0xf9, 0x9d, 0xfb, 0xeb, 0x7e, 0xaa, //0x0000e700 .quad -6161227774276542835 - 0xb8, 0xea, 0xfe, 0x98, 0x1b, 0x90, 0xbb, 0xdd, //0x0000e708 .quad -2469221522477225288 - 0x31, 0x56, 0x78, 0x85, 0xfa, 0xa6, 0x1e, 0xd5, //0x0000e710 .quad -3089848699418290639 - 0x66, 0xa5, 0x3e, 0x7f, 0x22, 0x74, 0x2a, 0x55, //0x0000e718 .quad 6136845133758244198 - 0xde, 0x35, 0x6b, 0x93, 0x5c, 0x28, 0x33, 0x85, //0x0000e720 .quad -8848684464777513506 - 0x60, 0x27, 0x87, 0x8f, 0x95, 0x88, 0x3a, 0xd5, //0x0000e728 .quad -3082000819042179232 - 0x56, 0x03, 0x46, 0xb8, 0x73, 0xf2, 0x7f, 0xa6, //0x0000e730 .quad -6449169562544503978 - 0x38, 0xf1, 0x68, 0xf3, 0xba, 0x2a, 0x89, 0x8a, //0x0000e738 .quad -8464187042230111944 - 0x2c, 0x84, 0x57, 0xa6, 0x10, 0xef, 0x1f, 0xd0, //0x0000e740 .quad -3449775934753242068 - 0x86, 0x2d, 0x43, 0xb0, 0x69, 0x75, 0x2b, 0x2d, //0x0000e748 .quad 3254824252494523782 - 0x9b, 0xb2, 0xf6, 0x67, 0x6a, 0xf5, 0x13, 0x82, //0x0000e750 .quad -9073638986861858149 - 0x74, 0xfc, 0x29, 0x0e, 0x62, 0x29, 0x3b, 0x9c, //0x0000e758 .quad -7189106879045698444 - 0x42, 0x5f, 0xf4, 0x01, 0xc5, 0xf2, 0x98, 0xa2, //0x0000e760 .quad -6730362715149934782 - 0x90, 0x7b, 0xb4, 0x91, 0xba, 0xf3, 0x49, 0x83, //0x0000e768 .quad -8986383598807123056 - 0x13, 0x77, 0x71, 0x42, 0x76, 0x2f, 0x3f, 0xcb, //0x0000e770 .quad -3801267375510030573 - 0x74, 0x9a, 0x21, 0x36, 0xa9, 0x70, 0x1c, 0x24, //0x0000e778 .quad 2602078556773259892 - 0xd7, 0xd4, 0x0d, 0xd3, 0x53, 0xfb, 0x0e, 0xfe, //0x0000e780 .quad -139898200960150313 - 0x11, 0x01, 0xaa, 0x83, 0xd3, 0x8c, 0x23, 0xed, //0x0000e788 .quad -1359087822460813039 - 0x06, 0xa5, 0xe8, 0x63, 0x14, 0x5d, 0xc9, 0x9e, //0x0000e790 .quad -7004965403241175802 - 0xab, 0x40, 0x4a, 0x32, 0x04, 0x38, 0x36, 0xf4, //0x0000e798 .quad -849429889038008149 - 0x48, 0xce, 0xe2, 0x7c, 0x59, 0xb4, 0x7b, 0xc6, //0x0000e7a0 .quad -4144520735624081848 - 0xd6, 0xd0, 0xdc, 0x3e, 0x05, 0xc6, 0x43, 0xb1, //0x0000e7a8 .quad -5673473379724898090 - 0xda, 0x81, 0x1b, 0xdc, 0x6f, 0xa1, 0x1a, 0xf8, //0x0000e7b0 .quad -568964901102714406 - 0x0b, 0x05, 0x94, 0x8e, 0x86, 0xb7, 0x94, 0xdd, //0x0000e7b8 .quad -2480155706228734709 - 0x28, 0x31, 0x91, 0xe9, 0xe5, 0xa4, 0x10, 0x9b, //0x0000e7c0 .quad -7273132090830278360 - 0x27, 0x83, 0x1c, 0x19, 0xb4, 0xf2, 0x7c, 0xca, //0x0000e7c8 .quad -3855940325606653145 - 0x72, 0x7d, 0xf5, 0x63, 0x1f, 0xce, 0xd4, 0xc1, //0x0000e7d0 .quad -4479729095110460046 - 0xf1, 0xa3, 0x63, 0x1f, 0x61, 0x2f, 0x1c, 0xfd, //0x0000e7d8 .quad -208239388580928527 - 0xcf, 0xdc, 0xf2, 0x3c, 0xa7, 0x01, 0x4a, 0xf2, //0x0000e7e0 .quad -987975350460687153 - 0xed, 0x8c, 0x3c, 0x67, 0x39, 0x3b, 0x63, 0xbc, //0x0000e7e8 .quad -4871985254153548563 - 0x01, 0xca, 0x17, 0x86, 0x08, 0x41, 0x6e, 0x97, //0x0000e7f0 .quad -7535013621679011327 - 0x14, 0xd8, 0x85, 0xe0, 0x03, 0x05, 0xbe, 0xd5, //0x0000e7f8 .quad -3044990783845967852 - 0x82, 0xbc, 0x9d, 0xa7, 0x4a, 0xd1, 0x49, 0xbd, //0x0000e800 .quad -4807081008671376254 - 0x19, 0x4e, 0xa7, 0xd8, 0x44, 0x86, 0x2d, 0x4b, //0x0000e808 .quad 5417133557047315993 - 0xa2, 0x2b, 0x85, 0x51, 0x9d, 0x45, 0x9c, 0xec, //0x0000e810 .quad -1397165242411832414 - 0x9f, 0x21, 0xd1, 0x0e, 0xd6, 0xe7, 0xf8, 0xdd, //0x0000e818 .quad -2451955090545630817 - 0x45, 0x3b, 0xf3, 0x52, 0x82, 0xab, 0xe1, 0x93, //0x0000e820 .quad -7790757304148477115 - 0x04, 0xb5, 0x42, 0xc9, 0xe5, 0x90, 0xbb, 0xca, //0x0000e828 .quad -3838314940804713212 - 0x17, 0x0a, 0xb0, 0xe7, 0x62, 0x16, 0xda, 0xb8, //0x0000e830 .quad -5126760611758208489 - 0x44, 0x62, 0x93, 0x3b, 0x1f, 0x75, 0x6a, 0x3d, //0x0000e838 .quad 4425478360848884292 - 0x9d, 0x0c, 0x9c, 0xa1, 0xfb, 0x9b, 0x10, 0xe7, //0x0000e840 .quad -1796764746270372707 - 0xd5, 0x3a, 0x78, 0x0a, 0x67, 0x12, 0xc5, 0x0c, //0x0000e848 .quad 920161932633717461 - 0xe2, 0x87, 0x01, 0x45, 0x7d, 0x61, 0x6a, 0x90, //0x0000e850 .quad -8040506994060064798 - 0xc6, 0x24, 0x8b, 0x66, 0x80, 0x2b, 0xfb, 0x27, //0x0000e858 .quad 2880944217109767366 - 0xda, 0xe9, 0x41, 0x96, 0xdc, 0xf9, 0x84, 0xb4, //0x0000e860 .quad -5438947724147693094 - 0xf7, 0xed, 0x2d, 0x80, 0x60, 0xf6, 0xf9, 0xb1, //0x0000e868 .quad -5622191765467566601 - 0x51, 0x64, 0xd2, 0xbb, 0x53, 0x38, 0xa6, 0xe1, //0x0000e870 .quad -2186998636757228463 - 0x74, 0x69, 0x39, 0xa0, 0xf8, 0x73, 0x78, 0x5e, //0x0000e878 .quad 6807318348447705460 - 0xb2, 0x7e, 0x63, 0x55, 0x34, 0xe3, 0x07, 0x8d, //0x0000e880 .quad -8284403175614349646 - 0xe9, 0xe1, 0x23, 0x64, 0x7b, 0x48, 0x0b, 0xdb, //0x0000e888 .quad -2662955059861265943 - 0x5f, 0x5e, 0xbc, 0x6a, 0x01, 0xdc, 0x49, 0xb0, //0x0000e890 .quad -5743817951090549153 - 0x63, 0xda, 0x2c, 0x3d, 0x9a, 0x1a, 0xce, 0x91, //0x0000e898 .quad -7940379843253970333 - 0xf7, 0x75, 0x6b, 0xc5, 0x01, 0x53, 0x5c, 0xdc, //0x0000e8a0 .quad -2568086420435798537 - 0xfc, 0x10, 0x78, 0xcc, 0x40, 0xa1, 0x41, 0x76, //0x0000e8a8 .quad 8521269269642088700 - 0xba, 0x29, 0x63, 0x1b, 0xe1, 0xb3, 0xb9, 0x89, //0x0000e8b0 .quad -8522583040413455942 - 0x9e, 0x0a, 0xcb, 0x7f, 0xc8, 0x04, 0xe9, 0xa9, //0x0000e8b8 .quad -6203421752542164322 - 0x29, 0xf4, 0x3b, 0x62, 0xd9, 0x20, 0x28, 0xac, //0x0000e8c0 .quad -6041542782089432023 - 0x45, 0xcd, 0xbd, 0x9f, 0xfa, 0x45, 0x63, 0x54, //0x0000e8c8 .quad 6080780864604458309 - 0x33, 0xf1, 0xca, 0xba, 0x0f, 0x29, 0x32, 0xd7, //0x0000e8d0 .quad -2940242459184402125 - 0x96, 0x40, 0xad, 0x47, 0x79, 0x17, 0x7c, 0xa9, //0x0000e8d8 .quad -6234081974526590826 - 0xc0, 0xd6, 0xbe, 0xd4, 0xa9, 0x59, 0x7f, 0x86, //0x0000e8e0 .quad -8755180564631333184 - 0x5e, 0x48, 0xcc, 0xcc, 0xab, 0x8e, 0xed, 0x49, //0x0000e8e8 .quad 5327070802775656542 - 0x70, 0x8c, 0xee, 0x49, 0x14, 0x30, 0x1f, 0xa8, //0x0000e8f0 .quad -6332289687361778576 - 0x75, 0x5a, 0xff, 0xbf, 0x56, 0xf2, 0x68, 0x5c, //0x0000e8f8 .quad 6658838503469570677 - 0x8c, 0x2f, 0x6a, 0x5c, 0x19, 0xfc, 0x26, 0xd2, //0x0000e900 .quad -3303676090774835316 - 0x12, 0x31, 0xff, 0x6f, 0xec, 0x2e, 0x83, 0x73, //0x0000e908 .quad 8323548129336963346 - 0xb7, 0x5d, 0xc2, 0xd9, 0x8f, 0x5d, 0x58, 0x83, //0x0000e910 .quad -8982326584375353929 - 0xac, 0x7e, 0xff, 0xc5, 0x53, 0xfd, 0x31, 0xc8, //0x0000e918 .quad -4021154456019173716 - 0x25, 0xf5, 0x32, 0xd0, 0xf3, 0x74, 0x2e, 0xa4, //0x0000e920 .quad -6616222212041804507 - 0x56, 0x5e, 0x7f, 0xb7, 0xa8, 0x7c, 0x3e, 0xba, //0x0000e928 .quad -5026443070023967146 - 0x6f, 0xb2, 0x3f, 0xc4, 0x30, 0x12, 0x3a, 0xcd, //0x0000e930 .quad -3658591746624867729 - 0xec, 0x35, 0x5f, 0xe5, 0xd2, 0x1b, 0xce, 0x28, //0x0000e938 .quad 2940318199324816876 - 0x85, 0xcf, 0xa7, 0x7a, 0x5e, 0x4b, 0x44, 0x80, //0x0000e940 .quad -9204148869281624187 - 0xb4, 0x81, 0x5b, 0xcf, 0x63, 0xd1, 0x80, 0x79, //0x0000e948 .quad 8755227902219092404 - 0x66, 0xc3, 0x51, 0x19, 0x36, 0x5e, 0x55, 0xa0, //0x0000e950 .quad -6893500068174642330 - 0x20, 0x62, 0x32, 0xc3, 0xbc, 0x05, 0xe1, 0xd7, //0x0000e958 .quad -2891023177508298208 - 0x40, 0x34, 0xa6, 0x9f, 0xc3, 0xb5, 0x6a, 0xc8, //0x0000e960 .quad -4005189066790915008 - 0xa8, 0xfa, 0xfe, 0xf3, 0x2b, 0x47, 0xd9, 0x8d, //0x0000e968 .quad -8225464990312760664 - 0x50, 0xc1, 0x8f, 0x87, 0x34, 0x63, 0x85, 0xfa, //0x0000e970 .quad -394800315061255856 - 0x52, 0xb9, 0xfe, 0xf0, 0xf6, 0x98, 0x4f, 0xb1, //0x0000e978 .quad -5670145219463562926 - 0xd2, 0xd8, 0xb9, 0xd4, 0x00, 0x5e, 0x93, 0x9c, //0x0000e980 .quad -7164279224554366766 - 0xd4, 0x33, 0x9f, 0x56, 0x9a, 0xbf, 0xd1, 0x6e, //0x0000e988 .quad 7985374283903742932 - 0x07, 0x4f, 0xe8, 0x09, 0x81, 0x35, 0xb8, 0xc3, //0x0000e990 .quad -4343663012265570553 - 0xc9, 0x00, 0x47, 0xec, 0x80, 0x2f, 0x86, 0x0a, //0x0000e998 .quad 758345818024902857 - 0xc8, 0x62, 0x62, 0x4c, 0xe1, 0x42, 0xa6, 0xf4, //0x0000e9a0 .quad -817892746904575288 - 0xfb, 0xc0, 0x58, 0x27, 0x61, 0xbb, 0x27, 0xcd, //0x0000e9a8 .quad -3663753745896259333 - 0xbd, 0x7d, 0xbd, 0xcf, 0xcc, 0xe9, 0xe7, 0x98, //0x0000e9b0 .quad -7428711994456441411 - 0x9d, 0x78, 0x97, 0xb8, 0x1c, 0xd5, 0x38, 0x80, //0x0000e9b8 .quad -9207375118826243939 - 0x2c, 0xdd, 0xac, 0x03, 0x40, 0xe4, 0x21, 0xbf, //0x0000e9c0 .quad -4674203974643163860 - 0xc4, 0x56, 0xbd, 0xe6, 0x63, 0x0a, 0x47, 0xe0, //0x0000e9c8 .quad -2285846861678029116 - 0x78, 0x14, 0x98, 0x04, 0x50, 0x5d, 0xea, 0xee, //0x0000e9d0 .quad -1231068949876566920 - 0x75, 0xac, 0x6c, 0xe0, 0xfc, 0xcc, 0x58, 0x18, //0x0000e9d8 .quad 1754377441329851509 - 0xcb, 0x0c, 0xdf, 0x02, 0x52, 0x7a, 0x52, 0x95, //0x0000e9e0 .quad -7686947121313936181 - 0xc9, 0xeb, 0x43, 0x0c, 0x1e, 0x80, 0x37, 0x0f, //0x0000e9e8 .quad 1096485900831157193 - 0xfd, 0xcf, 0x96, 0x83, 0xe6, 0x18, 0xa7, 0xba, //0x0000e9f0 .quad -4996997883215032323 - 0xbb, 0xe6, 0x54, 0x8f, 0x25, 0x60, 0x05, 0xd3, //0x0000e9f8 .quad -3241078642388441413 - 0xfd, 0x83, 0x7c, 0x24, 0x20, 0xdf, 0x50, 0xe9, //0x0000ea00 .quad -1634561335591402499 - 0x6a, 0x20, 0x2a, 0xf3, 0x2e, 0xb8, 0xc6, 0x47, //0x0000ea08 .quad 5172023733869224042 - 0x7e, 0xd2, 0xcd, 0x16, 0x74, 0x8b, 0xd2, 0x91, //0x0000ea10 .quad -7939129862385708418 - 0x42, 0x54, 0xfa, 0x57, 0x1d, 0x33, 0xdc, 0x4c, //0x0000ea18 .quad 5538357842881958978 - 0x1d, 0x47, 0x81, 0x1c, 0x51, 0x2e, 0x47, 0xb6, //0x0000ea20 .quad -5312226309554747619 - 0x53, 0xe9, 0xf8, 0xad, 0xe4, 0x3f, 0x13, 0xe0, //0x0000ea28 .quad -2300424733252327085 - 0xe5, 0x98, 0xa1, 0x63, 0xe5, 0xf9, 0xd8, 0xe3, //0x0000ea30 .quad -2028596868516046619 - 0xa7, 0x23, 0x77, 0xd9, 0xdd, 0x0f, 0x18, 0x58, //0x0000ea38 .quad 6347841120289366951 - 0x8f, 0xff, 0x44, 0x5e, 0x2f, 0x9c, 0x67, 0x8e, //0x0000ea40 .quad -8185402070463610993 - 0x49, 0x76, 0xea, 0xa7, 0xea, 0x09, 0x0f, 0x57, //0x0000ea48 .quad 6273243709394548297 - 0x73, 0x3f, 0xd6, 0x35, 0x3b, 0x83, 0x01, 0xb2, //0x0000ea50 .quad -5620066569652125837 - 0xdb, 0x13, 0xe5, 0x51, 0x65, 0xcc, 0xd2, 0x2c, //0x0000ea58 .quad 3229868618315797467 - 0x4f, 0xcf, 0x4b, 0x03, 0x0a, 0xe4, 0x81, 0xde, //0x0000ea60 .quad -2413397193637769393 - 0xd2, 0x58, 0x5e, 0xa6, 0x7e, 0x7f, 0x07, 0xf8, //0x0000ea68 .quad -574350245532641070 - 0x91, 0x61, 0x0f, 0x42, 0x86, 0x2e, 0x11, 0x8b, //0x0000ea70 .quad -8425902273664687727 - 0x83, 0xf7, 0xfa, 0x27, 0xaf, 0xaf, 0x04, 0xfb, //0x0000ea78 .quad -358968903457900669 - 0xf6, 0x39, 0x93, 0xd2, 0x27, 0x7a, 0xd5, 0xad, //0x0000ea80 .quad -5920691823653471754 - 0x64, 0xb5, 0xf9, 0xf1, 0x9a, 0xdb, 0xc5, 0x79, //0x0000ea88 .quad 8774660907532399972 - 0x74, 0x08, 0x38, 0xc7, 0xb1, 0xd8, 0x4a, 0xd9, //0x0000ea90 .quad -2789178761139451788 - 0xbd, 0x22, 0x78, 0xae, 0x81, 0x52, 0x37, 0x18, //0x0000ea98 .quad 1744954097560724157 - 0x48, 0x05, 0x83, 0x1c, 0x6f, 0xc7, 0xce, 0x87, //0x0000eaa0 .quad -8660765753353239224 - 0xb6, 0x15, 0x0b, 0x0d, 0x91, 0x93, 0x22, 0x8f, //0x0000eaa8 .quad -8132775725879323210 - 0x9a, 0xc6, 0xa3, 0xe3, 0x4a, 0x79, 0xc2, 0xa9, //0x0000eab0 .quad -6214271173264161126 - 0x23, 0xdb, 0x4d, 0x50, 0x75, 0x38, 0xeb, 0xb2, //0x0000eab8 .quad -5554283638921766109 - 0x41, 0xb8, 0x8c, 0x9c, 0x9d, 0x17, 0x33, 0xd4, //0x0000eac0 .quad -3156152948152813503 - 0xec, 0x51, 0x61, 0xa4, 0x92, 0x06, 0xa6, 0x5f, //0x0000eac8 .quad 6892203506629956076 - 0x28, 0xf3, 0xd7, 0x81, 0xc2, 0xee, 0x9f, 0x84, //0x0000ead0 .quad -8890124620236590296 - 0x34, 0xd3, 0xbc, 0xa6, 0x1b, 0xc4, 0xc7, 0xdb, //0x0000ead8 .quad -2609901835997359308 - 0xf3, 0xef, 0x4d, 0x22, 0x73, 0xea, 0xc7, 0xa5, //0x0000eae0 .quad -6500969756868349965 - 0x01, 0x08, 0x6c, 0x90, 0x22, 0xb5, 0xb9, 0x12, //0x0000eae8 .quad 1349308723430688769 - 0xef, 0x6b, 0xe1, 0xea, 0x0f, 0xe5, 0x39, 0xcf, //0x0000eaf0 .quad -3514526177658049553 - 0x01, 0x0a, 0x87, 0x34, 0x6b, 0x22, 0x68, 0xd7, //0x0000eaf8 .quad -2925050114139026943 - 0x75, 0xe3, 0xcc, 0xf2, 0x29, 0x2f, 0x84, 0x81, //0x0000eb00 .quad -9114107888677362827 - 0x41, 0x66, 0xd4, 0x00, 0x83, 0x15, 0xa1, 0xe6, //0x0000eb08 .quad -1828156321336891839 - 0x53, 0x1c, 0x80, 0x6f, 0xf4, 0x3a, 0xe5, 0xa1, //0x0000eb10 .quad -6780948842419315629 - 0xd1, 0x7f, 0x09, 0xc1, 0xe3, 0x5a, 0x49, 0x60, //0x0000eb18 .quad 6938176635183661009 - 0x68, 0x23, 0x60, 0x8b, 0xb1, 0x89, 0x5e, 0xca, //0x0000eb20 .quad -3864500034596756632 - 0xc5, 0xdf, 0x4b, 0xb1, 0x9c, 0xb1, 0x5b, 0x38, //0x0000eb28 .quad 4061034775552188357 - 0x42, 0x2c, 0x38, 0xee, 0x1d, 0x2c, 0xf6, 0xfc, //0x0000eb30 .quad -218939024818557886 - 0xb6, 0xd7, 0x9e, 0xdd, 0x03, 0x9e, 0x72, 0x46, //0x0000eb38 .quad 5076293469440235446 - 0xa9, 0x1b, 0xe3, 0xb4, 0x92, 0xdb, 0x19, 0x9e, //0x0000eb40 .quad -7054365918152680535 - 0xd2, 0x46, 0x83, 0x6a, 0xc2, 0xa2, 0x07, 0x6c, //0x0000eb48 .quad 7784369436827535058 - //0x0000eb50 .p2align 4, 0x00 - //0x0000eb50 _VecShiftShuffles - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, //0x0000eb50 QUAD $0x0706050403020100; QUAD $0x0f0e0d0c0b0a0908 // .ascii 16, '\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f' - 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, //0x0000eb60 QUAD $0x0807060504030201; QUAD $0xff0f0e0d0c0b0a09 // .ascii 16, '\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff' - 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, //0x0000eb70 QUAD $0x0908070605040302; QUAD $0xffff0f0e0d0c0b0a // .ascii 16, '\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff' - 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, //0x0000eb80 QUAD $0x0a09080706050403; QUAD $0xffffff0f0e0d0c0b // .ascii 16, '\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff' - 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, //0x0000eb90 QUAD $0x0b0a090807060504; QUAD $0xffffffff0f0e0d0c // .ascii 16, '\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff' - 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, //0x0000eba0 QUAD $0x0c0b0a0908070605; QUAD $0xffffffffff0f0e0d // .ascii 16, '\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff' - 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x0000ebb0 QUAD $0x0d0c0b0a09080706; QUAD $0xffffffffffff0f0e // .ascii 16, '\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff\xff' - 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x0000ebc0 QUAD $0x0e0d0c0b0a090807; QUAD $0xffffffffffffff0f // .ascii 16, '\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff\xff\xff' - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x0000ebd0 QUAD $0x0f0e0d0c0b0a0908; QUAD $0xffffffffffffffff // .ascii 16, '\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff\xff\xff\xff' - //0x0000ebe0 .p2align 4, 0x00 - //0x0000ebe0 __SingleQuoteTab - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ebe0 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x30, 0x30, 0x00, 0x00, //0x0000ebe8 QUAD $0x000030303030755c // .asciz 8, '\\u0000\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ebf0 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x30, 0x31, 0x00, 0x00, //0x0000ebf8 QUAD $0x000031303030755c // .asciz 8, '\\u0001\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ec00 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x30, 0x32, 0x00, 0x00, //0x0000ec08 QUAD $0x000032303030755c // .asciz 8, '\\u0002\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ec10 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x30, 0x33, 0x00, 0x00, //0x0000ec18 QUAD $0x000033303030755c // .asciz 8, '\\u0003\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ec20 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x30, 0x34, 0x00, 0x00, //0x0000ec28 QUAD $0x000034303030755c // .asciz 8, '\\u0004\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ec30 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x30, 0x35, 0x00, 0x00, //0x0000ec38 QUAD $0x000035303030755c // .asciz 8, '\\u0005\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ec40 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x30, 0x36, 0x00, 0x00, //0x0000ec48 QUAD $0x000036303030755c // .asciz 8, '\\u0006\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ec50 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x30, 0x37, 0x00, 0x00, //0x0000ec58 QUAD $0x000037303030755c // .asciz 8, '\\u0007\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ec60 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x30, 0x38, 0x00, 0x00, //0x0000ec68 QUAD $0x000038303030755c // .asciz 8, '\\u0008\x00\x00' - 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ec70 .quad 2 - 0x5c, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ec78 QUAD $0x000000000000745c // .asciz 8, '\\t\x00\x00\x00\x00\x00\x00' - 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ec80 .quad 2 - 0x5c, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ec88 QUAD $0x0000000000006e5c // .asciz 8, '\\n\x00\x00\x00\x00\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ec90 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x30, 0x62, 0x00, 0x00, //0x0000ec98 QUAD $0x000062303030755c // .asciz 8, '\\u000b\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eca0 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x30, 0x63, 0x00, 0x00, //0x0000eca8 QUAD $0x000063303030755c // .asciz 8, '\\u000c\x00\x00' - 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ecb0 .quad 2 - 0x5c, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ecb8 QUAD $0x000000000000725c // .asciz 8, '\\r\x00\x00\x00\x00\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ecc0 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x30, 0x65, 0x00, 0x00, //0x0000ecc8 QUAD $0x000065303030755c // .asciz 8, '\\u000e\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ecd0 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x30, 0x66, 0x00, 0x00, //0x0000ecd8 QUAD $0x000066303030755c // .asciz 8, '\\u000f\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ece0 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x31, 0x30, 0x00, 0x00, //0x0000ece8 QUAD $0x000030313030755c // .asciz 8, '\\u0010\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ecf0 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x31, 0x31, 0x00, 0x00, //0x0000ecf8 QUAD $0x000031313030755c // .asciz 8, '\\u0011\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ed00 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x31, 0x32, 0x00, 0x00, //0x0000ed08 QUAD $0x000032313030755c // .asciz 8, '\\u0012\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ed10 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x31, 0x33, 0x00, 0x00, //0x0000ed18 QUAD $0x000033313030755c // .asciz 8, '\\u0013\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ed20 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x31, 0x34, 0x00, 0x00, //0x0000ed28 QUAD $0x000034313030755c // .asciz 8, '\\u0014\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ed30 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x31, 0x35, 0x00, 0x00, //0x0000ed38 QUAD $0x000035313030755c // .asciz 8, '\\u0015\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ed40 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x31, 0x36, 0x00, 0x00, //0x0000ed48 QUAD $0x000036313030755c // .asciz 8, '\\u0016\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ed50 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x31, 0x37, 0x00, 0x00, //0x0000ed58 QUAD $0x000037313030755c // .asciz 8, '\\u0017\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ed60 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x31, 0x38, 0x00, 0x00, //0x0000ed68 QUAD $0x000038313030755c // .asciz 8, '\\u0018\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ed70 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x31, 0x39, 0x00, 0x00, //0x0000ed78 QUAD $0x000039313030755c // .asciz 8, '\\u0019\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ed80 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x31, 0x61, 0x00, 0x00, //0x0000ed88 QUAD $0x000061313030755c // .asciz 8, '\\u001a\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ed90 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x31, 0x62, 0x00, 0x00, //0x0000ed98 QUAD $0x000062313030755c // .asciz 8, '\\u001b\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eda0 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x31, 0x63, 0x00, 0x00, //0x0000eda8 QUAD $0x000063313030755c // .asciz 8, '\\u001c\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000edb0 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x31, 0x64, 0x00, 0x00, //0x0000edb8 QUAD $0x000064313030755c // .asciz 8, '\\u001d\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000edc0 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x31, 0x65, 0x00, 0x00, //0x0000edc8 QUAD $0x000065313030755c // .asciz 8, '\\u001e\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000edd0 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x31, 0x66, 0x00, 0x00, //0x0000edd8 QUAD $0x000066313030755c // .asciz 8, '\\u001f\x00\x00' + 0x89, 0xf1, //0x00008be7 movl %esi, %ecx + 0x48, 0x6b, 0xd1, 0x68, //0x00008be9 imulq $104, %rcx, %rdx + 0x48, 0x8d, 0x35, 0xec, 0x8c, 0x00, 0x00, //0x00008bed leaq $36076(%rip), %rsi /* _LSHIFT_TAB+0(%rip) */ + 0x44, 0x8b, 0x04, 0x32, //0x00008bf4 movl (%rdx,%rsi), %r8d + 0x4c, 0x8b, 0x17, //0x00008bf8 movq (%rdi), %r10 + 0x4c, 0x63, 0x4f, 0x10, //0x00008bfb movslq $16(%rdi), %r9 + 0x8a, 0x44, 0x32, 0x04, //0x00008bff movb $4(%rdx,%rsi), %al + 0x4d, 0x85, 0xc9, //0x00008c03 testq %r9, %r9 + 0x0f, 0x84, 0x36, 0x00, 0x00, 0x00, //0x00008c06 je LBB34_6 + 0x48, 0x8d, 0x54, 0x32, 0x05, //0x00008c0c leaq $5(%rdx,%rsi), %rdx + 0x31, 0xf6, //0x00008c11 xorl %esi, %esi + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008c13 .p2align 4, 0x90 + //0x00008c20 LBB34_3 + 0x84, 0xc0, //0x00008c20 testb %al, %al + 0x0f, 0x84, 0x25, 0x00, 0x00, 0x00, //0x00008c22 je LBB34_8 + 0x41, 0x38, 0x04, 0x32, //0x00008c28 cmpb %al, (%r10,%rsi) + 0x0f, 0x85, 0x89, 0x01, 0x00, 0x00, //0x00008c2c jne LBB34_5 + 0x0f, 0xb6, 0x04, 0x32, //0x00008c32 movzbl (%rdx,%rsi), %eax + 0x48, 0xff, 0xc6, //0x00008c36 incq %rsi + 0x49, 0x39, 0xf1, //0x00008c39 cmpq %rsi, %r9 + 0x0f, 0x85, 0xde, 0xff, 0xff, 0xff, //0x00008c3c jne LBB34_3 + //0x00008c42 LBB34_6 + 0x84, 0xc0, //0x00008c42 testb %al, %al + 0x0f, 0x84, 0x03, 0x00, 0x00, 0x00, //0x00008c44 je LBB34_8 + //0x00008c4a LBB34_7 + 0x41, 0xff, 0xc8, //0x00008c4a decl %r8d + //0x00008c4d LBB34_8 + 0x45, 0x85, 0xc9, //0x00008c4d testl %r9d, %r9d + 0x0f, 0x8e, 0x8c, 0x00, 0x00, 0x00, //0x00008c50 jle LBB34_23 + 0x43, 0x8d, 0x04, 0x08, //0x00008c56 leal (%r8,%r9), %eax + 0x4c, 0x63, 0xf0, //0x00008c5a movslq %eax, %r14 + 0x49, 0xff, 0xce, //0x00008c5d decq %r14 + 0x31, 0xd2, //0x00008c60 xorl %edx, %edx + 0x49, 0xbb, 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x00008c62 movabsq $-3689348814741910323, %r11 + 0x90, 0x90, 0x90, 0x90, //0x00008c6c .p2align 4, 0x90 + //0x00008c70 LBB34_10 + 0x4b, 0x0f, 0xbe, 0x74, 0x0a, 0xff, //0x00008c70 movsbq $-1(%r10,%r9), %rsi + 0x48, 0x83, 0xc6, 0xd0, //0x00008c76 addq $-48, %rsi + 0x48, 0xd3, 0xe6, //0x00008c7a shlq %cl, %rsi + 0x48, 0x01, 0xd6, //0x00008c7d addq %rdx, %rsi + 0x48, 0x89, 0xf0, //0x00008c80 movq %rsi, %rax + 0x49, 0xf7, 0xe3, //0x00008c83 mulq %r11 + 0x48, 0xc1, 0xea, 0x03, //0x00008c86 shrq $3, %rdx + 0x48, 0x8d, 0x04, 0x12, //0x00008c8a leaq (%rdx,%rdx), %rax + 0x48, 0x8d, 0x1c, 0x80, //0x00008c8e leaq (%rax,%rax,4), %rbx + 0x48, 0x89, 0xf0, //0x00008c92 movq %rsi, %rax + 0x48, 0x29, 0xd8, //0x00008c95 subq %rbx, %rax + 0x4c, 0x39, 0x77, 0x08, //0x00008c98 cmpq %r14, $8(%rdi) + 0x0f, 0x86, 0x0e, 0x00, 0x00, 0x00, //0x00008c9c jbe LBB34_16 + 0x04, 0x30, //0x00008ca2 addb $48, %al + 0x43, 0x88, 0x04, 0x32, //0x00008ca4 movb %al, (%r10,%r14) + 0xe9, 0x13, 0x00, 0x00, 0x00, //0x00008ca8 jmp LBB34_18 + 0x90, 0x90, 0x90, //0x00008cad .p2align 4, 0x90 + //0x00008cb0 LBB34_16 + 0x48, 0x85, 0xc0, //0x00008cb0 testq %rax, %rax + 0x0f, 0x84, 0x07, 0x00, 0x00, 0x00, //0x00008cb3 je LBB34_18 + 0xc7, 0x47, 0x1c, 0x01, 0x00, 0x00, 0x00, //0x00008cb9 movl $1, $28(%rdi) + //0x00008cc0 LBB34_18 + 0x49, 0x83, 0xf9, 0x02, //0x00008cc0 cmpq $2, %r9 + 0x0f, 0x8c, 0x0e, 0x00, 0x00, 0x00, //0x00008cc4 jl LBB34_12 + 0x49, 0xff, 0xc9, //0x00008cca decq %r9 + 0x4c, 0x8b, 0x17, //0x00008ccd movq (%rdi), %r10 + 0x49, 0xff, 0xce, //0x00008cd0 decq %r14 + 0xe9, 0x98, 0xff, 0xff, 0xff, //0x00008cd3 jmp LBB34_10 + //0x00008cd8 LBB34_12 + 0x48, 0x83, 0xfe, 0x0a, //0x00008cd8 cmpq $10, %rsi + 0x0f, 0x83, 0x6e, 0x00, 0x00, 0x00, //0x00008cdc jae LBB34_13 + //0x00008ce2 LBB34_23 + 0x48, 0x63, 0x4f, 0x10, //0x00008ce2 movslq $16(%rdi), %rcx + 0x49, 0x63, 0xc0, //0x00008ce6 movslq %r8d, %rax + 0x48, 0x01, 0xc8, //0x00008ce9 addq %rcx, %rax + 0x89, 0x47, 0x10, //0x00008cec movl %eax, $16(%rdi) + 0x48, 0x8b, 0x4f, 0x08, //0x00008cef movq $8(%rdi), %rcx + 0x48, 0x39, 0xc1, //0x00008cf3 cmpq %rax, %rcx + 0x0f, 0x87, 0x05, 0x00, 0x00, 0x00, //0x00008cf6 ja LBB34_25 + 0x89, 0x4f, 0x10, //0x00008cfc movl %ecx, $16(%rdi) + 0x89, 0xc8, //0x00008cff movl %ecx, %eax + //0x00008d01 LBB34_25 + 0x44, 0x01, 0x47, 0x14, //0x00008d01 addl %r8d, $20(%rdi) + 0x85, 0xc0, //0x00008d05 testl %eax, %eax + 0x0f, 0x8e, 0x36, 0x00, 0x00, 0x00, //0x00008d07 jle LBB34_29 + 0x48, 0x8b, 0x0f, //0x00008d0d movq (%rdi), %rcx + 0x89, 0xc0, //0x00008d10 movl %eax, %eax + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008d12 .p2align 4, 0x90 + //0x00008d20 LBB34_27 + 0x80, 0x7c, 0x01, 0xff, 0x30, //0x00008d20 cmpb $48, $-1(%rcx,%rax) + 0x0f, 0x85, 0x20, 0x00, 0x00, 0x00, //0x00008d25 jne LBB34_31 + 0x89, 0xc2, //0x00008d2b movl %eax, %edx + 0x48, 0xff, 0xc8, //0x00008d2d decq %rax + 0xff, 0xca, //0x00008d30 decl %edx + 0x89, 0x57, 0x10, //0x00008d32 movl %edx, $16(%rdi) + 0x48, 0x8d, 0x50, 0x01, //0x00008d35 leaq $1(%rax), %rdx + 0x48, 0x83, 0xfa, 0x01, //0x00008d39 cmpq $1, %rdx + 0x0f, 0x8f, 0xdd, 0xff, 0xff, 0xff, //0x00008d3d jg LBB34_27 + //0x00008d43 LBB34_29 + 0x85, 0xc0, //0x00008d43 testl %eax, %eax + 0x0f, 0x84, 0x64, 0x00, 0x00, 0x00, //0x00008d45 je LBB34_30 + //0x00008d4b LBB34_31 + 0x5b, //0x00008d4b popq %rbx + 0x41, 0x5e, //0x00008d4c popq %r14 + 0x5d, //0x00008d4e popq %rbp + 0xc3, //0x00008d4f retq + //0x00008d50 LBB34_13 + 0x49, 0x63, 0xf6, //0x00008d50 movslq %r14d, %rsi + 0x48, 0xff, 0xce, //0x00008d53 decq %rsi + 0xe9, 0x1a, 0x00, 0x00, 0x00, //0x00008d56 jmp LBB34_14 + 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008d5b .p2align 4, 0x90 + //0x00008d60 LBB34_15 + 0x04, 0x30, //0x00008d60 addb $48, %al + 0x48, 0x8b, 0x1f, //0x00008d62 movq (%rdi), %rbx + 0x88, 0x04, 0x33, //0x00008d65 movb %al, (%rbx,%rsi) + //0x00008d68 LBB34_22 + 0x48, 0xff, 0xce, //0x00008d68 decq %rsi + 0x48, 0x83, 0xf9, 0x09, //0x00008d6b cmpq $9, %rcx + 0x0f, 0x86, 0x6d, 0xff, 0xff, 0xff, //0x00008d6f jbe LBB34_23 + //0x00008d75 LBB34_14 + 0x48, 0x89, 0xd1, //0x00008d75 movq %rdx, %rcx + 0x48, 0x89, 0xd0, //0x00008d78 movq %rdx, %rax + 0x49, 0xf7, 0xe3, //0x00008d7b mulq %r11 + 0x48, 0xc1, 0xea, 0x03, //0x00008d7e shrq $3, %rdx + 0x48, 0x8d, 0x04, 0x12, //0x00008d82 leaq (%rdx,%rdx), %rax + 0x48, 0x8d, 0x1c, 0x80, //0x00008d86 leaq (%rax,%rax,4), %rbx + 0x48, 0x89, 0xc8, //0x00008d8a movq %rcx, %rax + 0x48, 0x29, 0xd8, //0x00008d8d subq %rbx, %rax + 0x48, 0x39, 0x77, 0x08, //0x00008d90 cmpq %rsi, $8(%rdi) + 0x0f, 0x87, 0xc6, 0xff, 0xff, 0xff, //0x00008d94 ja LBB34_15 + 0x48, 0x85, 0xc0, //0x00008d9a testq %rax, %rax + 0x0f, 0x84, 0xc5, 0xff, 0xff, 0xff, //0x00008d9d je LBB34_22 + 0xc7, 0x47, 0x1c, 0x01, 0x00, 0x00, 0x00, //0x00008da3 movl $1, $28(%rdi) + 0xe9, 0xb9, 0xff, 0xff, 0xff, //0x00008daa jmp LBB34_22 + //0x00008daf LBB34_30 + 0xc7, 0x47, 0x14, 0x00, 0x00, 0x00, 0x00, //0x00008daf movl $0, $20(%rdi) + 0x5b, //0x00008db6 popq %rbx + 0x41, 0x5e, //0x00008db7 popq %r14 + 0x5d, //0x00008db9 popq %rbp + 0xc3, //0x00008dba retq + //0x00008dbb LBB34_5 + 0x0f, 0x8c, 0x89, 0xfe, 0xff, 0xff, //0x00008dbb jl LBB34_7 + 0xe9, 0x87, 0xfe, 0xff, 0xff, //0x00008dc1 jmp LBB34_8 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008dc6 .p2align 4, 0x90 + //0x00008dd0 _right_shift + 0x55, //0x00008dd0 pushq %rbp + 0x48, 0x89, 0xe5, //0x00008dd1 movq %rsp, %rbp + 0x89, 0xf1, //0x00008dd4 movl %esi, %ecx + 0x4c, 0x63, 0x4f, 0x10, //0x00008dd6 movslq $16(%rdi), %r9 + 0x31, 0xf6, //0x00008dda xorl %esi, %esi + 0x31, 0xc0, //0x00008ddc xorl %eax, %eax + 0x90, 0x90, //0x00008dde .p2align 4, 0x90 + //0x00008de0 LBB35_1 + 0x4c, 0x39, 0xce, //0x00008de0 cmpq %r9, %rsi + 0x0f, 0x8d, 0x27, 0x01, 0x00, 0x00, //0x00008de3 jge LBB35_2 + 0x48, 0x8d, 0x04, 0x80, //0x00008de9 leaq (%rax,%rax,4), %rax + 0x48, 0x8b, 0x17, //0x00008ded movq (%rdi), %rdx + 0x48, 0x0f, 0xbe, 0x14, 0x32, //0x00008df0 movsbq (%rdx,%rsi), %rdx + 0x48, 0x8d, 0x44, 0x42, 0xd0, //0x00008df5 leaq $-48(%rdx,%rax,2), %rax + 0x48, 0xff, 0xc6, //0x00008dfa incq %rsi + 0x48, 0x89, 0xc2, //0x00008dfd movq %rax, %rdx + 0x48, 0xd3, 0xea, //0x00008e00 shrq %cl, %rdx + 0x48, 0x85, 0xd2, //0x00008e03 testq %rdx, %rdx + 0x0f, 0x84, 0xd4, 0xff, 0xff, 0xff, //0x00008e06 je LBB35_1 + //0x00008e0c LBB35_6 + 0x8b, 0x57, 0x14, //0x00008e0c movl $20(%rdi), %edx + 0x29, 0xf2, //0x00008e0f subl %esi, %edx + 0xff, 0xc2, //0x00008e11 incl %edx + 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00008e13 movq $-1, %r8 + 0x49, 0xd3, 0xe0, //0x00008e1a shlq %cl, %r8 + 0x89, 0x57, 0x14, //0x00008e1d movl %edx, $20(%rdi) + 0x49, 0xf7, 0xd0, //0x00008e20 notq %r8 + 0x45, 0x31, 0xd2, //0x00008e23 xorl %r10d, %r10d + 0x44, 0x39, 0xce, //0x00008e26 cmpl %r9d, %esi + 0x0f, 0x8d, 0x69, 0x00, 0x00, 0x00, //0x00008e29 jge LBB35_9 + 0x4c, 0x63, 0xce, //0x00008e2f movslq %esi, %r9 + 0x48, 0x8b, 0x37, //0x00008e32 movq (%rdi), %rsi + 0x45, 0x31, 0xd2, //0x00008e35 xorl %r10d, %r10d + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008e38 .p2align 4, 0x90 + //0x00008e40 LBB35_8 + 0x48, 0x89, 0xc2, //0x00008e40 movq %rax, %rdx + 0x48, 0xd3, 0xea, //0x00008e43 shrq %cl, %rdx + 0x4c, 0x21, 0xc0, //0x00008e46 andq %r8, %rax + 0x80, 0xc2, 0x30, //0x00008e49 addb $48, %dl + 0x42, 0x88, 0x14, 0x16, //0x00008e4c movb %dl, (%rsi,%r10) + 0x48, 0x8d, 0x04, 0x80, //0x00008e50 leaq (%rax,%rax,4), %rax + 0x48, 0x8b, 0x37, //0x00008e54 movq (%rdi), %rsi + 0x4a, 0x8d, 0x14, 0x0e, //0x00008e57 leaq (%rsi,%r9), %rdx + 0x49, 0x0f, 0xbe, 0x14, 0x12, //0x00008e5b movsbq (%r10,%rdx), %rdx + 0x48, 0x8d, 0x44, 0x42, 0xd0, //0x00008e60 leaq $-48(%rdx,%rax,2), %rax + 0x4c, 0x63, 0x5f, 0x10, //0x00008e65 movslq $16(%rdi), %r11 + 0x4b, 0x8d, 0x54, 0x11, 0x01, //0x00008e69 leaq $1(%r9,%r10), %rdx + 0x49, 0xff, 0xc2, //0x00008e6e incq %r10 + 0x4c, 0x39, 0xda, //0x00008e71 cmpq %r11, %rdx + 0x0f, 0x8c, 0xc6, 0xff, 0xff, 0xff, //0x00008e74 jl LBB35_8 + 0xe9, 0x19, 0x00, 0x00, 0x00, //0x00008e7a jmp LBB35_9 + 0x90, //0x00008e7f .p2align 4, 0x90 + //0x00008e80 LBB35_11 + 0x40, 0x80, 0xc6, 0x30, //0x00008e80 addb $48, %sil + 0x48, 0x8b, 0x17, //0x00008e84 movq (%rdi), %rdx + 0x42, 0x88, 0x34, 0x0a, //0x00008e87 movb %sil, (%rdx,%r9) + 0x41, 0xff, 0xc1, //0x00008e8b incl %r9d + 0x45, 0x89, 0xca, //0x00008e8e movl %r9d, %r10d + //0x00008e91 LBB35_14 + 0x48, 0x01, 0xc0, //0x00008e91 addq %rax, %rax + 0x48, 0x8d, 0x04, 0x80, //0x00008e94 leaq (%rax,%rax,4), %rax + //0x00008e98 LBB35_9 + 0x48, 0x85, 0xc0, //0x00008e98 testq %rax, %rax + 0x0f, 0x84, 0x2b, 0x00, 0x00, 0x00, //0x00008e9b je LBB35_15 + 0x48, 0x89, 0xc6, //0x00008ea1 movq %rax, %rsi + 0x48, 0xd3, 0xee, //0x00008ea4 shrq %cl, %rsi + 0x4c, 0x21, 0xc0, //0x00008ea7 andq %r8, %rax + 0x4d, 0x63, 0xca, //0x00008eaa movslq %r10d, %r9 + 0x4c, 0x39, 0x4f, 0x08, //0x00008ead cmpq %r9, $8(%rdi) + 0x0f, 0x87, 0xc9, 0xff, 0xff, 0xff, //0x00008eb1 ja LBB35_11 + 0x48, 0x85, 0xf6, //0x00008eb7 testq %rsi, %rsi + 0x0f, 0x84, 0xd1, 0xff, 0xff, 0xff, //0x00008eba je LBB35_14 + 0xc7, 0x47, 0x1c, 0x01, 0x00, 0x00, 0x00, //0x00008ec0 movl $1, $28(%rdi) + 0xe9, 0xc5, 0xff, 0xff, 0xff, //0x00008ec7 jmp LBB35_14 + //0x00008ecc LBB35_15 + 0x44, 0x89, 0x57, 0x10, //0x00008ecc movl %r10d, $16(%rdi) + 0x45, 0x85, 0xd2, //0x00008ed0 testl %r10d, %r10d + 0x0f, 0x8e, 0x2c, 0x00, 0x00, 0x00, //0x00008ed3 jle LBB35_19 + 0x48, 0x8b, 0x07, //0x00008ed9 movq (%rdi), %rax + 0x45, 0x89, 0xd2, //0x00008edc movl %r10d, %r10d + 0x90, //0x00008edf .p2align 4, 0x90 + //0x00008ee0 LBB35_17 + 0x42, 0x80, 0x7c, 0x10, 0xff, 0x30, //0x00008ee0 cmpb $48, $-1(%rax,%r10) + 0x0f, 0x85, 0x22, 0x00, 0x00, 0x00, //0x00008ee6 jne LBB35_21 + 0x44, 0x89, 0xd1, //0x00008eec movl %r10d, %ecx + 0x49, 0xff, 0xca, //0x00008eef decq %r10 + 0xff, 0xc9, //0x00008ef2 decl %ecx + 0x89, 0x4f, 0x10, //0x00008ef4 movl %ecx, $16(%rdi) + 0x49, 0x8d, 0x4a, 0x01, //0x00008ef7 leaq $1(%r10), %rcx + 0x48, 0x83, 0xf9, 0x01, //0x00008efb cmpq $1, %rcx + 0x0f, 0x8f, 0xdb, 0xff, 0xff, 0xff, //0x00008eff jg LBB35_17 + //0x00008f05 LBB35_19 + 0x45, 0x85, 0xd2, //0x00008f05 testl %r10d, %r10d + 0x0f, 0x84, 0x3e, 0x00, 0x00, 0x00, //0x00008f08 je LBB35_20 + //0x00008f0e LBB35_21 + 0x5d, //0x00008f0e popq %rbp + 0xc3, //0x00008f0f retq + //0x00008f10 LBB35_2 + 0x48, 0x85, 0xc0, //0x00008f10 testq %rax, %rax + 0x0f, 0x84, 0x3c, 0x00, 0x00, 0x00, //0x00008f13 je LBB35_22 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008f19 .p2align 4, 0x90 + 0x48, 0x89, 0xc2, //0x00008f20 movq %rax, %rdx + 0x48, 0xd3, 0xea, //0x00008f23 shrq %cl, %rdx + 0x48, 0x85, 0xd2, //0x00008f26 testq %rdx, %rdx + 0x0f, 0x85, 0xdd, 0xfe, 0xff, 0xff, //0x00008f29 jne LBB35_6 + //0x00008f2f LBB35_4 + 0x48, 0x01, 0xc0, //0x00008f2f addq %rax, %rax + 0x48, 0x8d, 0x04, 0x80, //0x00008f32 leaq (%rax,%rax,4), %rax + 0xff, 0xc6, //0x00008f36 incl %esi + 0x48, 0x89, 0xc2, //0x00008f38 movq %rax, %rdx + 0x48, 0xd3, 0xea, //0x00008f3b shrq %cl, %rdx + 0x48, 0x85, 0xd2, //0x00008f3e testq %rdx, %rdx + 0x0f, 0x84, 0xe8, 0xff, 0xff, 0xff, //0x00008f41 je LBB35_4 + 0xe9, 0xc0, 0xfe, 0xff, 0xff, //0x00008f47 jmp LBB35_6 + //0x00008f4c LBB35_20 + 0xc7, 0x47, 0x14, 0x00, 0x00, 0x00, 0x00, //0x00008f4c movl $0, $20(%rdi) + 0x5d, //0x00008f53 popq %rbp + 0xc3, //0x00008f54 retq + //0x00008f55 LBB35_22 + 0xc7, 0x47, 0x10, 0x00, 0x00, 0x00, 0x00, //0x00008f55 movl $0, $16(%rdi) + 0x5d, //0x00008f5c popq %rbp + 0xc3, //0x00008f5d retq + 0x00, 0x00, //0x00008f5e .p2align 4, 0x00 + //0x00008f60 LCPI36_0 + 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, //0x00008f60 QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' + //0x00008f70 LCPI36_1 + 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x00008f70 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + //0x00008f80 .p2align 4, 0x90 + //0x00008f80 _advance_string_default + 0x55, //0x00008f80 pushq %rbp + 0x48, 0x89, 0xe5, //0x00008f81 movq %rsp, %rbp + 0x41, 0x57, //0x00008f84 pushq %r15 + 0x41, 0x56, //0x00008f86 pushq %r14 + 0x41, 0x55, //0x00008f88 pushq %r13 + 0x41, 0x54, //0x00008f8a pushq %r12 + 0x53, //0x00008f8c pushq %rbx + 0x48, 0x83, 0xec, 0x10, //0x00008f8d subq $16, %rsp + 0x4c, 0x8b, 0x67, 0x08, //0x00008f91 movq $8(%rdi), %r12 + 0x49, 0x29, 0xf4, //0x00008f95 subq %rsi, %r12 + 0x0f, 0x84, 0x79, 0x03, 0x00, 0x00, //0x00008f98 je LBB36_17 + 0x48, 0x8b, 0x07, //0x00008f9e movq (%rdi), %rax + 0x48, 0x89, 0x45, 0xd0, //0x00008fa1 movq %rax, $-48(%rbp) + 0x48, 0x01, 0xc6, //0x00008fa5 addq %rax, %rsi + 0x48, 0x89, 0x55, 0xc8, //0x00008fa8 movq %rdx, $-56(%rbp) + 0x48, 0xc7, 0x02, 0xff, 0xff, 0xff, 0xff, //0x00008fac movq $-1, (%rdx) + 0x49, 0x83, 0xfc, 0x40, //0x00008fb3 cmpq $64, %r12 + 0x0f, 0x82, 0xfa, 0x01, 0x00, 0x00, //0x00008fb7 jb LBB36_18 + 0x45, 0x89, 0xe1, //0x00008fbd movl %r12d, %r9d + 0x41, 0x83, 0xe1, 0x3f, //0x00008fc0 andl $63, %r9d + 0x49, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x00008fc4 movq $-1, %r14 + 0x45, 0x31, 0xff, //0x00008fcb xorl %r15d, %r15d + 0xc5, 0xf9, 0x6f, 0x05, 0x8a, 0xff, 0xff, 0xff, //0x00008fce vmovdqa $-118(%rip), %xmm0 /* LCPI36_0+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x0d, 0x92, 0xff, 0xff, 0xff, //0x00008fd6 vmovdqa $-110(%rip), %xmm1 /* LCPI36_1+0(%rip) */ + 0x48, 0x8b, 0x55, 0xd0, //0x00008fde movq $-48(%rbp), %rdx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008fe2 .p2align 4, 0x90 + //0x00008ff0 LBB36_3 + 0xc5, 0xfa, 0x6f, 0x16, //0x00008ff0 vmovdqu (%rsi), %xmm2 + 0xc5, 0xfa, 0x6f, 0x5e, 0x10, //0x00008ff4 vmovdqu $16(%rsi), %xmm3 + 0xc5, 0xfa, 0x6f, 0x66, 0x20, //0x00008ff9 vmovdqu $32(%rsi), %xmm4 + 0xc5, 0xfa, 0x6f, 0x6e, 0x30, //0x00008ffe vmovdqu $48(%rsi), %xmm5 + 0xc5, 0xe9, 0x74, 0xf0, //0x00009003 vpcmpeqb %xmm0, %xmm2, %xmm6 + 0xc5, 0xf9, 0xd7, 0xde, //0x00009007 vpmovmskb %xmm6, %ebx + 0xc5, 0xe1, 0x74, 0xf0, //0x0000900b vpcmpeqb %xmm0, %xmm3, %xmm6 + 0xc5, 0xf9, 0xd7, 0xce, //0x0000900f vpmovmskb %xmm6, %ecx + 0xc5, 0xd9, 0x74, 0xf0, //0x00009013 vpcmpeqb %xmm0, %xmm4, %xmm6 + 0xc5, 0xf9, 0xd7, 0xc6, //0x00009017 vpmovmskb %xmm6, %eax + 0xc5, 0xd1, 0x74, 0xf0, //0x0000901b vpcmpeqb %xmm0, %xmm5, %xmm6 + 0xc5, 0x79, 0xd7, 0xee, //0x0000901f vpmovmskb %xmm6, %r13d + 0xc5, 0xe9, 0x74, 0xd1, //0x00009023 vpcmpeqb %xmm1, %xmm2, %xmm2 + 0xc5, 0xf9, 0xd7, 0xfa, //0x00009027 vpmovmskb %xmm2, %edi + 0xc5, 0xe1, 0x74, 0xd1, //0x0000902b vpcmpeqb %xmm1, %xmm3, %xmm2 + 0xc5, 0x79, 0xd7, 0xd2, //0x0000902f vpmovmskb %xmm2, %r10d + 0xc5, 0xd9, 0x74, 0xd1, //0x00009033 vpcmpeqb %xmm1, %xmm4, %xmm2 + 0xc5, 0x79, 0xd7, 0xda, //0x00009037 vpmovmskb %xmm2, %r11d + 0xc5, 0xd1, 0x74, 0xd1, //0x0000903b vpcmpeqb %xmm1, %xmm5, %xmm2 + 0xc5, 0x79, 0xd7, 0xc2, //0x0000903f vpmovmskb %xmm2, %r8d + 0x49, 0xc1, 0xe5, 0x30, //0x00009043 shlq $48, %r13 + 0x48, 0xc1, 0xe0, 0x20, //0x00009047 shlq $32, %rax + 0x48, 0xc1, 0xe1, 0x10, //0x0000904b shlq $16, %rcx + 0x48, 0x09, 0xcb, //0x0000904f orq %rcx, %rbx + 0x48, 0x09, 0xc3, //0x00009052 orq %rax, %rbx + 0x49, 0xc1, 0xe0, 0x30, //0x00009055 shlq $48, %r8 + 0x49, 0xc1, 0xe3, 0x20, //0x00009059 shlq $32, %r11 + 0x49, 0xc1, 0xe2, 0x10, //0x0000905d shlq $16, %r10 + 0x4c, 0x09, 0xd7, //0x00009061 orq %r10, %rdi + 0x4c, 0x09, 0xdf, //0x00009064 orq %r11, %rdi + 0x4c, 0x09, 0xc7, //0x00009067 orq %r8, %rdi + 0x0f, 0x84, 0x0a, 0x00, 0x00, 0x00, //0x0000906a je LBB36_5 + 0x49, 0x83, 0xfe, 0xff, //0x00009070 cmpq $-1, %r14 + 0x0f, 0x84, 0x2f, 0x00, 0x00, 0x00, //0x00009074 je LBB36_8 + //0x0000907a LBB36_5 + 0x4c, 0x09, 0xeb, //0x0000907a orq %r13, %rbx + 0x48, 0x89, 0xf8, //0x0000907d movq %rdi, %rax + 0x4c, 0x09, 0xf8, //0x00009080 orq %r15, %rax + 0x0f, 0x85, 0x43, 0x00, 0x00, 0x00, //0x00009083 jne LBB36_9 + //0x00009089 LBB36_6 + 0x48, 0x85, 0xdb, //0x00009089 testq %rbx, %rbx + 0x0f, 0x85, 0x0a, 0x01, 0x00, 0x00, //0x0000908c jne LBB36_15 + //0x00009092 LBB36_7 + 0x48, 0x83, 0xc6, 0x40, //0x00009092 addq $64, %rsi + 0x49, 0x83, 0xc4, 0xc0, //0x00009096 addq $-64, %r12 + 0x49, 0x83, 0xfc, 0x3f, //0x0000909a cmpq $63, %r12 + 0x0f, 0x87, 0x4c, 0xff, 0xff, 0xff, //0x0000909e ja LBB36_3 + 0xe9, 0x7a, 0x00, 0x00, 0x00, //0x000090a4 jmp LBB36_10 + //0x000090a9 LBB36_8 + 0x48, 0x89, 0xf0, //0x000090a9 movq %rsi, %rax + 0x48, 0x29, 0xd0, //0x000090ac subq %rdx, %rax + 0x4c, 0x0f, 0xbc, 0xf7, //0x000090af bsfq %rdi, %r14 + 0x49, 0x01, 0xc6, //0x000090b3 addq %rax, %r14 + 0x48, 0x8b, 0x45, 0xc8, //0x000090b6 movq $-56(%rbp), %rax + 0x4c, 0x89, 0x30, //0x000090ba movq %r14, (%rax) + 0x4c, 0x09, 0xeb, //0x000090bd orq %r13, %rbx + 0x48, 0x89, 0xf8, //0x000090c0 movq %rdi, %rax + 0x4c, 0x09, 0xf8, //0x000090c3 orq %r15, %rax + 0x0f, 0x84, 0xbd, 0xff, 0xff, 0xff, //0x000090c6 je LBB36_6 + //0x000090cc LBB36_9 + 0x4c, 0x89, 0xf8, //0x000090cc movq %r15, %rax + 0x48, 0xf7, 0xd0, //0x000090cf notq %rax + 0x48, 0x21, 0xf8, //0x000090d2 andq %rdi, %rax + 0x4c, 0x8d, 0x04, 0x00, //0x000090d5 leaq (%rax,%rax), %r8 + 0x4d, 0x09, 0xf8, //0x000090d9 orq %r15, %r8 + 0x4c, 0x89, 0xc1, //0x000090dc movq %r8, %rcx + 0x48, 0xf7, 0xd1, //0x000090df notq %rcx + 0x48, 0x21, 0xf9, //0x000090e2 andq %rdi, %rcx + 0x48, 0xbf, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x000090e5 movabsq $-6148914691236517206, %rdi + 0x48, 0x21, 0xf9, //0x000090ef andq %rdi, %rcx + 0x45, 0x31, 0xff, //0x000090f2 xorl %r15d, %r15d + 0x48, 0x01, 0xc1, //0x000090f5 addq %rax, %rcx + 0x41, 0x0f, 0x92, 0xc7, //0x000090f8 setb %r15b + 0x48, 0x01, 0xc9, //0x000090fc addq %rcx, %rcx + 0x48, 0xb8, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x000090ff movabsq $6148914691236517205, %rax + 0x48, 0x31, 0xc1, //0x00009109 xorq %rax, %rcx + 0x4c, 0x21, 0xc1, //0x0000910c andq %r8, %rcx + 0x48, 0xf7, 0xd1, //0x0000910f notq %rcx + 0x48, 0x21, 0xcb, //0x00009112 andq %rcx, %rbx + 0x48, 0x85, 0xdb, //0x00009115 testq %rbx, %rbx + 0x0f, 0x84, 0x74, 0xff, 0xff, 0xff, //0x00009118 je LBB36_7 + 0xe9, 0x79, 0x00, 0x00, 0x00, //0x0000911e jmp LBB36_15 + //0x00009123 LBB36_10 + 0x4d, 0x89, 0xcc, //0x00009123 movq %r9, %r12 + 0x49, 0x83, 0xfc, 0x20, //0x00009126 cmpq $32, %r12 + 0x0f, 0x82, 0x0b, 0x01, 0x00, 0x00, //0x0000912a jb LBB36_22 + //0x00009130 LBB36_11 + 0xc5, 0xfa, 0x6f, 0x06, //0x00009130 vmovdqu (%rsi), %xmm0 + 0xc5, 0xfa, 0x6f, 0x4e, 0x10, //0x00009134 vmovdqu $16(%rsi), %xmm1 + 0xc5, 0xf9, 0x6f, 0x15, 0x1f, 0xfe, 0xff, 0xff, //0x00009139 vmovdqa $-481(%rip), %xmm2 /* LCPI36_0+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x1d, 0x27, 0xfe, 0xff, 0xff, //0x00009141 vmovdqa $-473(%rip), %xmm3 /* LCPI36_1+0(%rip) */ + 0xc5, 0xf9, 0x74, 0xe2, //0x00009149 vpcmpeqb %xmm2, %xmm0, %xmm4 + 0xc5, 0xf9, 0xd7, 0xfc, //0x0000914d vpmovmskb %xmm4, %edi + 0xc5, 0xf1, 0x74, 0xd2, //0x00009151 vpcmpeqb %xmm2, %xmm1, %xmm2 + 0xc5, 0xf9, 0xd7, 0xda, //0x00009155 vpmovmskb %xmm2, %ebx + 0xc5, 0xf9, 0x74, 0xc3, //0x00009159 vpcmpeqb %xmm3, %xmm0, %xmm0 + 0xc5, 0xf9, 0xd7, 0xc0, //0x0000915d vpmovmskb %xmm0, %eax + 0xc5, 0xf1, 0x74, 0xc3, //0x00009161 vpcmpeqb %xmm3, %xmm1, %xmm0 + 0xc5, 0xf9, 0xd7, 0xc8, //0x00009165 vpmovmskb %xmm0, %ecx + 0x48, 0xc1, 0xe3, 0x10, //0x00009169 shlq $16, %rbx + 0x48, 0xc1, 0xe1, 0x10, //0x0000916d shlq $16, %rcx + 0x48, 0x09, 0xc8, //0x00009171 orq %rcx, %rax + 0x0f, 0x84, 0x0a, 0x00, 0x00, 0x00, //0x00009174 je LBB36_13 + 0x49, 0x83, 0xfe, 0xff, //0x0000917a cmpq $-1, %r14 + 0x0f, 0x84, 0x50, 0x00, 0x00, 0x00, //0x0000917e je LBB36_19 + //0x00009184 LBB36_13 + 0x48, 0x09, 0xfb, //0x00009184 orq %rdi, %rbx + 0x48, 0x89, 0xc1, //0x00009187 movq %rax, %rcx + 0x4c, 0x09, 0xf9, //0x0000918a orq %r15, %rcx + 0x0f, 0x85, 0x64, 0x00, 0x00, 0x00, //0x0000918d jne LBB36_20 + //0x00009193 LBB36_14 + 0x48, 0x85, 0xdb, //0x00009193 testq %rbx, %rbx + 0x0f, 0x84, 0x97, 0x00, 0x00, 0x00, //0x00009196 je LBB36_21 + //0x0000919c LBB36_15 + 0x48, 0x0f, 0xbc, 0xc3, //0x0000919c bsfq %rbx, %rax + 0x48, 0x29, 0xd6, //0x000091a0 subq %rdx, %rsi + 0x48, 0x8d, 0x44, 0x06, 0x01, //0x000091a3 leaq $1(%rsi,%rax), %rax + //0x000091a8 LBB36_16 + 0x48, 0x83, 0xc4, 0x10, //0x000091a8 addq $16, %rsp + 0x5b, //0x000091ac popq %rbx + 0x41, 0x5c, //0x000091ad popq %r12 + 0x41, 0x5d, //0x000091af popq %r13 + 0x41, 0x5e, //0x000091b1 popq %r14 + 0x41, 0x5f, //0x000091b3 popq %r15 + 0x5d, //0x000091b5 popq %rbp + 0xc3, //0x000091b6 retq + //0x000091b7 LBB36_18 + 0x49, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x000091b7 movq $-1, %r14 + 0x45, 0x31, 0xff, //0x000091be xorl %r15d, %r15d + 0x48, 0x8b, 0x55, 0xd0, //0x000091c1 movq $-48(%rbp), %rdx + 0x49, 0x83, 0xfc, 0x20, //0x000091c5 cmpq $32, %r12 + 0x0f, 0x83, 0x61, 0xff, 0xff, 0xff, //0x000091c9 jae LBB36_11 + 0xe9, 0x67, 0x00, 0x00, 0x00, //0x000091cf jmp LBB36_22 + //0x000091d4 LBB36_19 + 0x48, 0x89, 0xf1, //0x000091d4 movq %rsi, %rcx + 0x48, 0x29, 0xd1, //0x000091d7 subq %rdx, %rcx + 0x4c, 0x0f, 0xbc, 0xf0, //0x000091da bsfq %rax, %r14 + 0x49, 0x01, 0xce, //0x000091de addq %rcx, %r14 + 0x48, 0x8b, 0x4d, 0xc8, //0x000091e1 movq $-56(%rbp), %rcx + 0x4c, 0x89, 0x31, //0x000091e5 movq %r14, (%rcx) + 0x48, 0x09, 0xfb, //0x000091e8 orq %rdi, %rbx + 0x48, 0x89, 0xc1, //0x000091eb movq %rax, %rcx + 0x4c, 0x09, 0xf9, //0x000091ee orq %r15, %rcx + 0x0f, 0x84, 0x9c, 0xff, 0xff, 0xff, //0x000091f1 je LBB36_14 + //0x000091f7 LBB36_20 + 0x44, 0x89, 0xf9, //0x000091f7 movl %r15d, %ecx + 0xf7, 0xd1, //0x000091fa notl %ecx + 0x21, 0xc1, //0x000091fc andl %eax, %ecx + 0x44, 0x8d, 0x04, 0x09, //0x000091fe leal (%rcx,%rcx), %r8d + 0x45, 0x09, 0xf8, //0x00009202 orl %r15d, %r8d + 0x44, 0x89, 0xc7, //0x00009205 movl %r8d, %edi + 0xf7, 0xd7, //0x00009208 notl %edi + 0x21, 0xc7, //0x0000920a andl %eax, %edi + 0x81, 0xe7, 0xaa, 0xaa, 0xaa, 0xaa, //0x0000920c andl $-1431655766, %edi + 0x45, 0x31, 0xff, //0x00009212 xorl %r15d, %r15d + 0x01, 0xcf, //0x00009215 addl %ecx, %edi + 0x41, 0x0f, 0x92, 0xc7, //0x00009217 setb %r15b + 0x01, 0xff, //0x0000921b addl %edi, %edi + 0x81, 0xf7, 0x55, 0x55, 0x55, 0x55, //0x0000921d xorl $1431655765, %edi + 0x44, 0x21, 0xc7, //0x00009223 andl %r8d, %edi + 0xf7, 0xd7, //0x00009226 notl %edi + 0x21, 0xfb, //0x00009228 andl %edi, %ebx + 0x48, 0x85, 0xdb, //0x0000922a testq %rbx, %rbx + 0x0f, 0x85, 0x69, 0xff, 0xff, 0xff, //0x0000922d jne LBB36_15 + //0x00009233 LBB36_21 + 0x48, 0x83, 0xc6, 0x20, //0x00009233 addq $32, %rsi + 0x49, 0x83, 0xc4, 0xe0, //0x00009237 addq $-32, %r12 + //0x0000923b LBB36_22 + 0x4d, 0x85, 0xff, //0x0000923b testq %r15, %r15 + 0x0f, 0x85, 0x90, 0x00, 0x00, 0x00, //0x0000923e jne LBB36_33 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00009244 movq $-1, %rax + 0x4d, 0x85, 0xe4, //0x0000924b testq %r12, %r12 + 0x0f, 0x84, 0x54, 0xff, 0xff, 0xff, //0x0000924e je LBB36_16 + //0x00009254 LBB36_24 + 0x49, 0x89, 0xd1, //0x00009254 movq %rdx, %r9 + 0x49, 0xf7, 0xd1, //0x00009257 notq %r9 + 0x48, 0x8b, 0x4d, 0xc8, //0x0000925a movq $-56(%rbp), %rcx + //0x0000925e LBB36_25 + 0x48, 0x8d, 0x7e, 0x01, //0x0000925e leaq $1(%rsi), %rdi + 0x0f, 0xb6, 0x1e, //0x00009262 movzbl (%rsi), %ebx + 0x80, 0xfb, 0x22, //0x00009265 cmpb $34, %bl + 0x0f, 0x84, 0x5b, 0x00, 0x00, 0x00, //0x00009268 je LBB36_32 + 0x4d, 0x8d, 0x54, 0x24, 0xff, //0x0000926e leaq $-1(%r12), %r10 + 0x80, 0xfb, 0x5c, //0x00009273 cmpb $92, %bl + 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x00009276 je LBB36_28 + 0x4d, 0x89, 0xd4, //0x0000927c movq %r10, %r12 + 0x48, 0x89, 0xfe, //0x0000927f movq %rdi, %rsi + 0x4d, 0x85, 0xd2, //0x00009282 testq %r10, %r10 + 0x0f, 0x85, 0xd3, 0xff, 0xff, 0xff, //0x00009285 jne LBB36_25 + 0xe9, 0x18, 0xff, 0xff, 0xff, //0x0000928b jmp LBB36_16 + //0x00009290 LBB36_28 + 0x4d, 0x85, 0xd2, //0x00009290 testq %r10, %r10 + 0x0f, 0x84, 0x0f, 0xff, 0xff, 0xff, //0x00009293 je LBB36_16 + 0x49, 0x83, 0xfe, 0xff, //0x00009299 cmpq $-1, %r14 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x0000929d jne LBB36_31 + 0x4c, 0x01, 0xcf, //0x000092a3 addq %r9, %rdi + 0x48, 0x89, 0x39, //0x000092a6 movq %rdi, (%rcx) + 0x49, 0x89, 0xfe, //0x000092a9 movq %rdi, %r14 + //0x000092ac LBB36_31 + 0x48, 0x83, 0xc6, 0x02, //0x000092ac addq $2, %rsi + 0x49, 0x83, 0xc4, 0xfe, //0x000092b0 addq $-2, %r12 + 0x4d, 0x89, 0xe2, //0x000092b4 movq %r12, %r10 + 0x48, 0x8b, 0x55, 0xd0, //0x000092b7 movq $-48(%rbp), %rdx + 0x4d, 0x85, 0xd2, //0x000092bb testq %r10, %r10 + 0x0f, 0x85, 0x9a, 0xff, 0xff, 0xff, //0x000092be jne LBB36_25 + 0xe9, 0xdf, 0xfe, 0xff, 0xff, //0x000092c4 jmp LBB36_16 + //0x000092c9 LBB36_32 + 0x48, 0x29, 0xd7, //0x000092c9 subq %rdx, %rdi + 0x48, 0x89, 0xf8, //0x000092cc movq %rdi, %rax + 0xe9, 0xd4, 0xfe, 0xff, 0xff, //0x000092cf jmp LBB36_16 + //0x000092d4 LBB36_33 + 0x4d, 0x85, 0xe4, //0x000092d4 testq %r12, %r12 + 0x0f, 0x84, 0x3a, 0x00, 0x00, 0x00, //0x000092d7 je LBB36_17 + 0x49, 0x83, 0xfe, 0xff, //0x000092dd cmpq $-1, %r14 + 0x0f, 0x85, 0x11, 0x00, 0x00, 0x00, //0x000092e1 jne LBB36_36 + 0x4c, 0x8b, 0x75, 0xd0, //0x000092e7 movq $-48(%rbp), %r14 + 0x49, 0xf7, 0xd6, //0x000092eb notq %r14 + 0x49, 0x01, 0xf6, //0x000092ee addq %rsi, %r14 + 0x48, 0x8b, 0x45, 0xc8, //0x000092f1 movq $-56(%rbp), %rax + 0x4c, 0x89, 0x30, //0x000092f5 movq %r14, (%rax) + //0x000092f8 LBB36_36 + 0x48, 0xff, 0xc6, //0x000092f8 incq %rsi + 0x49, 0xff, 0xcc, //0x000092fb decq %r12 + 0x48, 0x8b, 0x55, 0xd0, //0x000092fe movq $-48(%rbp), %rdx + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00009302 movq $-1, %rax + 0x4d, 0x85, 0xe4, //0x00009309 testq %r12, %r12 + 0x0f, 0x85, 0x42, 0xff, 0xff, 0xff, //0x0000930c jne LBB36_24 + 0xe9, 0x91, 0xfe, 0xff, 0xff, //0x00009312 jmp LBB36_16 + //0x00009317 LBB36_17 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00009317 movq $-1, %rax + 0xe9, 0x85, 0xfe, 0xff, 0xff, //0x0000931e jmp LBB36_16 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00009323 .p2align 4, 0x00 + //0x00009330 _POW10_M128_TAB + 0x53, 0xe4, 0x60, 0xcd, 0x69, 0xc8, 0x32, 0x17, //0x00009330 .quad 1671618768450675795 + 0x88, 0x02, 0x1c, 0x08, 0xa0, 0xd5, 0x8f, 0xfa, //0x00009338 .quad -391859759250406776 + 0xb4, 0x8e, 0x5c, 0x20, 0x42, 0xbd, 0x7f, 0x0e, //0x00009340 .quad 1044761730281672372 + 0x95, 0x81, 0x11, 0x05, 0x84, 0xe5, 0x99, 0x9c, //0x00009348 .quad -7162441377172586091 + 0x61, 0xb2, 0x73, 0xa8, 0x92, 0xac, 0x1f, 0x52, //0x00009350 .quad 5917638181279478369 + 0xfa, 0xe1, 0x55, 0x06, 0xe5, 0x5e, 0xc0, 0xc3, //0x00009358 .quad -4341365703038344710 + 0xf9, 0x9e, 0x90, 0x52, 0xb7, 0x97, 0xa7, 0xe6, //0x00009360 .quad -1826324310255427847 + 0x78, 0x5a, 0xeb, 0x47, 0x9e, 0x76, 0xb0, 0xf4, //0x00009368 .quad -815021110370542984 + 0x5c, 0x63, 0x9a, 0x93, 0xd2, 0xbe, 0x28, 0x90, //0x00009370 .quad -8058981721550724260 + 0x8b, 0x18, 0xf3, 0xec, 0x22, 0x4a, 0xee, 0x98, //0x00009378 .quad -7426917221622671221 + 0x33, 0xfc, 0x80, 0x38, 0x87, 0xee, 0x32, 0x74, //0x00009380 .quad 8373016921771146291 + 0xae, 0xde, 0x2f, 0xa8, 0xab, 0xdc, 0x29, 0xbf, //0x00009388 .quad -4671960508600951122 + 0x3f, 0x3b, 0xa1, 0x06, 0x29, 0xaa, 0x3f, 0x11, //0x00009390 .quad 1242899115359157055 + 0x5a, 0xd6, 0x3b, 0x92, 0xd6, 0x53, 0xf4, 0xee, //0x00009398 .quad -1228264617323800998 + 0x07, 0xc5, 0x24, 0xa4, 0x59, 0xca, 0xc7, 0x4a, //0x000093a0 .quad 5388497965526861063 + 0xf8, 0x65, 0x65, 0x1b, 0x66, 0xb4, 0x58, 0x95, //0x000093a8 .quad -7685194413468457480 + 0x49, 0xf6, 0x2d, 0x0d, 0xf0, 0xbc, 0x79, 0x5d, //0x000093b0 .quad 6735622456908576329 + 0x76, 0xbf, 0x3e, 0xa2, 0x7f, 0xe1, 0xae, 0xba, //0x000093b8 .quad -4994806998408183946 + 0xdc, 0x73, 0x79, 0x10, 0x2c, 0x2c, 0xd8, 0xf4, //0x000093c0 .quad -803843965719055396 + 0x53, 0x6f, 0xce, 0x8a, 0xdf, 0x99, 0x5a, 0xe9, //0x000093c8 .quad -1631822729582842029 + 0x69, 0xe8, 0x4b, 0x8a, 0x9b, 0x1b, 0x07, 0x79, //0x000093d0 .quad 8720969558280366185 + 0x94, 0x05, 0xc1, 0xb6, 0x2b, 0xa0, 0xd8, 0x91, //0x000093d8 .quad -7937418233630358124 + 0x84, 0xe2, 0xde, 0x6c, 0x82, 0xe2, 0x48, 0x97, //0x000093e0 .quad -7545532125859093884 + 0xf9, 0x46, 0x71, 0xa4, 0x36, 0xc8, 0x4e, 0xb6, //0x000093e8 .quad -5310086773610559751 + 0x25, 0x9b, 0x16, 0x08, 0x23, 0x1b, 0x1b, 0xfd, //0x000093f0 .quad -208543120469091547 + 0xb7, 0x98, 0x8d, 0x4d, 0x44, 0x7a, 0xe2, 0xe3, //0x000093f8 .quad -2025922448585811785 + 0xf7, 0x20, 0x0e, 0xe5, 0xf5, 0xf0, 0x30, 0xfe, //0x00009400 .quad -130339450293182217 + 0x72, 0x7f, 0x78, 0xb0, 0x6a, 0x8c, 0x6d, 0x8e, //0x00009408 .quad -8183730558007214222 + 0x35, 0xa9, 0x51, 0x5e, 0x33, 0x2d, 0xbd, 0xbd, //0x00009410 .quad -4774610331293865675 + 0x4f, 0x9f, 0x96, 0x5c, 0x85, 0xef, 0x08, 0xb2, //0x00009418 .quad -5617977179081629873 + 0x82, 0x13, 0xe6, 0x35, 0x80, 0x78, 0x2c, 0xad, //0x00009420 .quad -5968262914117332094 + 0x23, 0x47, 0xbc, 0xb3, 0x66, 0x2b, 0x8b, 0xde, //0x00009428 .quad -2410785455424649437 + 0x31, 0xcc, 0xaf, 0x21, 0x50, 0xcb, 0x3b, 0x4c, //0x00009430 .quad 5493207715531443249 + 0x76, 0xac, 0x55, 0x30, 0x20, 0xfb, 0x16, 0x8b, //0x00009438 .quad -8424269937281487754 + 0x3d, 0xbf, 0x1b, 0x2a, 0x24, 0xbe, 0x4a, 0xdf, //0x00009440 .quad -2356862392440471747 + 0x93, 0x17, 0x6b, 0x3c, 0xe8, 0xb9, 0xdc, 0xad, //0x00009448 .quad -5918651403174471789 + 0x0d, 0xaf, 0xa2, 0x34, 0xad, 0x6d, 0x1d, 0xd7, //0x00009450 .quad -2946077990550589683 + 0x78, 0xdd, 0x85, 0x4b, 0x62, 0xe8, 0x53, 0xd9, //0x00009458 .quad -2786628235540701832 + 0x68, 0xad, 0xe5, 0x40, 0x8c, 0x64, 0x72, 0x86, //0x00009460 .quad -8758827771735200408 + 0x6b, 0xaa, 0x33, 0x6f, 0x3d, 0x71, 0xd4, 0x87, //0x00009468 .quad -8659171674854020501 + 0xc2, 0x18, 0x1f, 0x51, 0xaf, 0xfd, 0x0e, 0x68, //0x00009470 .quad 7498209359040551106 + 0x06, 0x95, 0x00, 0xcb, 0x8c, 0x8d, 0xc9, 0xa9, //0x00009478 .quad -6212278575140137722 + 0xf2, 0xde, 0x66, 0x25, 0x1b, 0xbd, 0x12, 0x02, //0x00009480 .quad 149389661945913074 + 0x48, 0xba, 0xc0, 0xfd, 0xef, 0xf0, 0x3b, 0xd4, //0x00009488 .quad -3153662200497784248 + 0x57, 0x4b, 0x60, 0xf7, 0x30, 0xb6, 0x4b, 0x01, //0x00009490 .quad 93368538716195671 + 0x6d, 0x74, 0x98, 0xfe, 0x95, 0x76, 0xa5, 0x84, //0x00009498 .quad -8888567902952197011 + 0x2d, 0x5e, 0x38, 0x35, 0xbd, 0xa3, 0x9e, 0x41, //0x000094a0 .quad 4728396691822632493 + 0x88, 0x91, 0x3e, 0x7e, 0x3b, 0xd4, 0xce, 0xa5, //0x000094a8 .quad -6499023860262858360 + 0xb9, 0x75, 0x86, 0x82, 0xac, 0x4c, 0x06, 0x52, //0x000094b0 .quad 5910495864778290617 + 0xea, 0x35, 0xce, 0x5d, 0x4a, 0x89, 0x42, 0xcf, //0x000094b8 .quad -3512093806901185046 + 0x93, 0x09, 0x94, 0xd1, 0xeb, 0xef, 0x43, 0x73, //0x000094c0 .quad 8305745933913819539 + 0xb2, 0xe1, 0xa0, 0x7a, 0xce, 0x95, 0x89, 0x81, //0x000094c8 .quad -9112587656954322510 + 0xf8, 0x0b, 0xf9, 0xc5, 0xe6, 0xeb, 0x14, 0x10, //0x000094d0 .quad 1158810380537498616 + 0x1f, 0x1a, 0x49, 0x19, 0x42, 0xfb, 0xeb, 0xa1, //0x000094d8 .quad -6779048552765515233 + 0xf6, 0x4e, 0x77, 0x77, 0xe0, 0x26, 0x1a, 0xd4, //0x000094e0 .quad -3163173042755514634 + 0xa6, 0x60, 0x9b, 0x9f, 0x12, 0xfa, 0x66, 0xca, //0x000094e8 .quad -3862124672529506138 + 0xb4, 0x22, 0x55, 0x95, 0x98, 0xb0, 0x20, 0x89, //0x000094f0 .quad -8565652321871781196 + 0xd0, 0x38, 0x82, 0x47, 0x97, 0xb8, 0x00, 0xfd, //0x000094f8 .quad -215969822234494768 + 0xb0, 0x35, 0x55, 0x5d, 0x5f, 0x6e, 0xb4, 0x55, //0x00009500 .quad 6175682344898606512 + 0x82, 0x63, 0xb1, 0x8c, 0x5e, 0x73, 0x20, 0x9e, //0x00009508 .quad -7052510166537641086 + 0x1d, 0x83, 0xaa, 0x34, 0xf7, 0x89, 0x21, 0xeb, //0x00009510 .quad -1503769105731517667 + 0x62, 0xbc, 0xdd, 0x2f, 0x36, 0x90, 0xa8, 0xc5, //0x00009518 .quad -4203951689744663454 + 0xe4, 0x23, 0xd5, 0x01, 0x75, 0xec, 0xe9, 0xa5, //0x00009520 .quad -6491397400591784988 + 0x7b, 0x2b, 0xd5, 0xbb, 0x43, 0xb4, 0x12, 0xf7, //0x00009528 .quad -643253593753441413 + 0x6e, 0x36, 0x25, 0x21, 0xc9, 0x33, 0xb2, 0x47, //0x00009530 .quad 5166248661484910190 + 0x2d, 0x3b, 0x65, 0x55, 0xaa, 0xb0, 0x6b, 0x9a, //0x00009538 .quad -7319562523736982739 + 0x0a, 0x84, 0x6e, 0x69, 0xbb, 0xc0, 0x9e, 0x99, //0x00009540 .quad -7377247228426025974 + 0xf8, 0x89, 0xbe, 0xea, 0xd4, 0x9c, 0x06, 0xc1, //0x00009548 .quad -4537767136243840520 + 0x0d, 0x25, 0xca, 0x43, 0xea, 0x70, 0x06, 0xc0, //0x00009550 .quad -4609873017105144563 + 0x76, 0x2c, 0x6e, 0x25, 0x0a, 0x44, 0x48, 0xf1, //0x00009558 .quad -1060522901877412746 + 0x28, 0x57, 0x5e, 0x6a, 0x92, 0x06, 0x04, 0x38, //0x00009560 .quad 4036358391950366504 + 0xca, 0xdb, 0x64, 0x57, 0x86, 0x2a, 0xcd, 0x96, //0x00009568 .quad -7580355841314464822 + 0xf2, 0xec, 0xf5, 0x04, 0x37, 0x08, 0x05, 0xc6, //0x00009570 .quad -4177924046916817678 + 0xbc, 0x12, 0x3e, 0xed, 0x27, 0x75, 0x80, 0xbc, //0x00009578 .quad -4863758783215693124 + 0x2e, 0x68, 0x33, 0xc6, 0x44, 0x4a, 0x86, 0xf7, //0x00009580 .quad -610719040218634194 + 0x6b, 0x97, 0x8d, 0xe8, 0x71, 0x92, 0xa0, 0xeb, //0x00009588 .quad -1468012460592228501 + 0x1d, 0x21, 0xe0, 0xfb, 0x6a, 0xee, 0xb3, 0x7a, //0x00009590 .quad 8841672636718129437 + 0xa3, 0x7e, 0x58, 0x31, 0x87, 0x5b, 0x44, 0x93, //0x00009598 .quad -7835036815511224669 + 0x64, 0x29, 0xd8, 0xba, 0x05, 0xea, 0x60, 0x59, //0x000095a0 .quad 6440404777470273892 + 0x4c, 0x9e, 0xae, 0xfd, 0x68, 0x72, 0x15, 0xb8, //0x000095a8 .quad -5182110000961642932 + 0xbd, 0x33, 0x8e, 0x29, 0x87, 0x24, 0xb9, 0x6f, //0x000095b0 .quad 8050505971837842365 + 0xdf, 0x45, 0x1a, 0x3d, 0x03, 0xcf, 0x1a, 0xe6, //0x000095b8 .quad -1865951482774665761 + 0x56, 0xe0, 0xf8, 0x79, 0xd4, 0xb6, 0xd3, 0xa5, //0x000095c0 .quad -6497648813669818282 + 0xab, 0x6b, 0x30, 0x06, 0x62, 0xc1, 0xd0, 0x8f, //0x000095c8 .quad -8083748704375247957 + 0x6c, 0x18, 0x77, 0x98, 0x89, 0xa4, 0x48, 0x8f, //0x000095d0 .quad -8122061017087272852 + 0x96, 0x86, 0xbc, 0x87, 0xba, 0xf1, 0xc4, 0xb3, //0x000095d8 .quad -5492999862041672042 + 0x87, 0xde, 0x94, 0xfe, 0xab, 0xcd, 0x1a, 0x33, //0x000095e0 .quad 3682481783923072647 + 0x3c, 0xa8, 0xab, 0x29, 0x29, 0x2e, 0xb6, 0xe0, //0x000095e8 .quad -2254563809124702148 + 0x14, 0x0b, 0x1d, 0x7f, 0x8b, 0xc0, 0xf0, 0x9f, //0x000095f0 .quad -6921820921902855404 + 0x25, 0x49, 0x0b, 0xba, 0xd9, 0xdc, 0x71, 0x8c, //0x000095f8 .quad -8326631408344020699 + 0xd9, 0x4d, 0xe4, 0x5e, 0xae, 0xf0, 0xec, 0x07, //0x00009600 .quad 571095884476206553 + 0x6f, 0x1b, 0x8e, 0x28, 0x10, 0x54, 0x8e, 0xaf, //0x00009608 .quad -5796603242002637969 + 0x50, 0x61, 0x9d, 0xf6, 0xd9, 0x2c, 0xe8, 0xc9, //0x00009610 .quad -3897816162832129712 + 0x4a, 0xa2, 0xb1, 0x32, 0x14, 0xe9, 0x71, 0xdb, //0x00009618 .quad -2634068034075909558 + 0xd2, 0x5c, 0x22, 0x3a, 0x08, 0x1c, 0x31, 0xbe, //0x00009620 .quad -4741978110983775022 + 0x6e, 0x05, 0xaf, 0x9f, 0xac, 0x31, 0x27, 0x89, //0x00009628 .quad -8563821548938525330 + 0x06, 0xf4, 0xaa, 0x48, 0x0a, 0x63, 0xbd, 0x6d, //0x00009630 .quad 7907585416552444934 + 0xca, 0xc6, 0x9a, 0xc7, 0x17, 0xfe, 0x70, 0xab, //0x00009638 .quad -6093090917745768758 + 0x08, 0xb1, 0xd5, 0xda, 0xcc, 0xbb, 0x2c, 0x09, //0x00009640 .quad 661109733835780360 + 0x7d, 0x78, 0x81, 0xb9, 0x9d, 0x3d, 0x4d, 0xd6, //0x00009648 .quad -3004677628754823043 + 0xa5, 0x8e, 0xc5, 0x08, 0x60, 0xf5, 0xbb, 0x25, //0x00009650 .quad 2719036592861056677 + 0x4e, 0xeb, 0xf0, 0x93, 0x82, 0x46, 0xf0, 0x85, //0x00009658 .quad -8795452545612846258 + 0x4e, 0xf2, 0xf6, 0x0a, 0xb8, 0xf2, 0x2a, 0xaf, //0x00009660 .quad -5824576295778454962 + 0x21, 0x26, 0xed, 0x38, 0x23, 0x58, 0x6c, 0xa7, //0x00009668 .quad -6382629663588669919 + 0xe1, 0xae, 0xb4, 0x0d, 0x66, 0xaf, 0xf5, 0x1a, //0x00009670 .quad 1942651667131707105 + 0xaa, 0x6f, 0x28, 0x07, 0x2c, 0x6e, 0x47, 0xd1, //0x00009678 .quad -3366601061058449494 + 0x4d, 0xed, 0x90, 0xc8, 0x9f, 0x8d, 0xd9, 0x50, //0x00009680 .quad 5825843310384704845 + 0xca, 0x45, 0x79, 0x84, 0xdb, 0xa4, 0xcc, 0x82, //0x00009688 .quad -9021654690802612790 + 0xa0, 0x28, 0xb5, 0xba, 0x07, 0xf1, 0x0f, 0xe5, //0x00009690 .quad -1941067898873894752 + 0x3c, 0x97, 0x97, 0x65, 0x12, 0xce, 0x7f, 0xa3, //0x00009698 .quad -6665382345075878084 + 0xc8, 0x72, 0x62, 0xa9, 0x49, 0xed, 0x53, 0x1e, //0x000096a0 .quad 2185351144835019464 + 0x0c, 0x7d, 0xfd, 0xfe, 0x96, 0xc1, 0x5f, 0xcc, //0x000096a8 .quad -3720041912917459700 + 0x7a, 0x0f, 0xbb, 0x13, 0x9c, 0xe8, 0xe8, 0x25, //0x000096b0 .quad 2731688931043774330 + 0x4f, 0xdc, 0xbc, 0xbe, 0xfc, 0xb1, 0x77, 0xff, //0x000096b8 .quad -38366372719436721 + 0xac, 0xe9, 0x54, 0x8c, 0x61, 0x91, 0xb1, 0x77, //0x000096c0 .quad 8624834609543440812 + 0xb1, 0x09, 0x36, 0xf7, 0x3d, 0xcf, 0xaa, 0x9f, //0x000096c8 .quad -6941508010590729807 + 0x17, 0x24, 0x6a, 0xef, 0xb9, 0xf5, 0x9d, 0xd5, //0x000096d0 .quad -3054014793352862697 + 0x1d, 0x8c, 0x03, 0x75, 0x0d, 0x83, 0x95, 0xc7, //0x000096d8 .quad -4065198994811024355 + 0x1d, 0xad, 0x44, 0x6b, 0x28, 0x73, 0x05, 0x4b, //0x000096e0 .quad 5405853545163697437 + 0x25, 0x6f, 0x44, 0xd2, 0xd0, 0xe3, 0x7a, 0xf9, //0x000096e8 .quad -469812725086392539 + 0x32, 0xec, 0x0a, 0x43, 0xf9, 0x67, 0xe3, 0x4e, //0x000096f0 .quad 5684501474941004850 + 0x77, 0xc5, 0x6a, 0x83, 0x62, 0xce, 0xec, 0x9b, //0x000096f8 .quad -7211161980820077193 + 0x3f, 0xa7, 0xcd, 0x93, 0xf7, 0x41, 0x9c, 0x22, //0x00009700 .quad 2493940825248868159 + 0xd5, 0x76, 0x45, 0x24, 0xfb, 0x01, 0xe8, 0xc2, //0x00009708 .quad -4402266457597708587 + 0x0f, 0x11, 0xc1, 0x78, 0x75, 0x52, 0x43, 0x6b, //0x00009710 .quad 7729112049988473103 + 0x8a, 0xd4, 0x56, 0xed, 0x79, 0x02, 0xa2, 0xf3, //0x00009718 .quad -891147053569747830 + 0xa9, 0xaa, 0x78, 0x6b, 0x89, 0x13, 0x0a, 0x83, //0x00009720 .quad -9004363024039368023 + 0xd6, 0x44, 0x56, 0x34, 0x8c, 0x41, 0x45, 0x98, //0x00009728 .quad -7474495936122174250 + 0x53, 0xd5, 0x56, 0xc6, 0x6b, 0x98, 0xcc, 0x23, //0x00009730 .quad 2579604275232953683 + 0x0c, 0xd6, 0x6b, 0x41, 0xef, 0x91, 0x56, 0xbe, //0x00009738 .quad -4731433901725329908 + 0xa8, 0x8a, 0xec, 0xb7, 0x86, 0xbe, 0xbf, 0x2c, //0x00009740 .quad 3224505344041192104 + 0x8f, 0xcb, 0xc6, 0x11, 0x6b, 0x36, 0xec, 0xed, //0x00009748 .quad -1302606358729274481 + 0xa9, 0xd6, 0xf3, 0x32, 0x14, 0xd7, 0xf7, 0x7b, //0x00009750 .quad 8932844867666826921 + 0x39, 0x3f, 0x1c, 0xeb, 0x02, 0xa2, 0xb3, 0x94, //0x00009758 .quad -7731658001846878407 + 0x53, 0xcc, 0xb0, 0x3f, 0xd9, 0xcc, 0xf5, 0xda, //0x00009760 .quad -2669001970698630061 + 0x07, 0x4f, 0xe3, 0xa5, 0x83, 0x8a, 0xe0, 0xb9, //0x00009768 .quad -5052886483881210105 + 0x68, 0xff, 0x9c, 0x8f, 0x0f, 0x40, 0xb3, 0xd1, //0x00009770 .quad -3336252463373287576 + 0xc9, 0x22, 0x5c, 0x8f, 0x24, 0xad, 0x58, 0xe8, //0x00009778 .quad -1704422086424124727 + 0xa1, 0x1f, 0xc2, 0xb9, 0x09, 0x08, 0x10, 0x23, //0x00009780 .quad 2526528228819083169 + 0xbe, 0x95, 0x99, 0xd9, 0x36, 0x6c, 0x37, 0x91, //0x00009788 .quad -7982792831656159810 + 0x8a, 0xa7, 0x32, 0x28, 0x0c, 0x0a, 0xd4, 0xab, //0x00009790 .quad -6065211750830921846 + 0x2d, 0xfb, 0xff, 0x8f, 0x44, 0x47, 0x85, 0xb5, //0x00009798 .quad -5366805021142811859 + 0x6c, 0x51, 0x3f, 0x32, 0x8f, 0x0c, 0xc9, 0x16, //0x000097a0 .quad 1641857348316123500 + 0xf9, 0xf9, 0xff, 0xb3, 0x15, 0x99, 0xe6, 0xe2, //0x000097a8 .quad -2096820258001126919 + 0xe3, 0x92, 0x67, 0x7f, 0xd9, 0xa7, 0x3d, 0xae, //0x000097b0 .quad -5891368184943504669 + 0x3b, 0xfc, 0x7f, 0x90, 0xad, 0x1f, 0xd0, 0x8d, //0x000097b8 .quad -8228041688891786181 + 0x9c, 0x77, 0x41, 0xdf, 0xcf, 0x11, 0xcd, 0x99, //0x000097c0 .quad -7364210231179380836 + 0x4a, 0xfb, 0x9f, 0xf4, 0x98, 0x27, 0x44, 0xb1, //0x000097c8 .quad -5673366092687344822 + 0x83, 0xd5, 0x11, 0xd7, 0x43, 0x56, 0x40, 0x40, //0x000097d0 .quad 4629795266307937667 + 0x1d, 0xfa, 0xc7, 0x31, 0x7f, 0x31, 0x95, 0xdd, //0x000097d8 .quad -2480021597431793123 + 0x72, 0x25, 0x6b, 0x66, 0xea, 0x35, 0x28, 0x48, //0x000097e0 .quad 5199465050656154994 + 0x52, 0xfc, 0x1c, 0x7f, 0xef, 0x3e, 0x7d, 0x8a, //0x000097e8 .quad -8467542526035952558 + 0xcf, 0xee, 0x05, 0x00, 0x65, 0x43, 0x32, 0xda, //0x000097f0 .quad -2724040723534582065 + 0x66, 0x3b, 0xe4, 0x5e, 0xab, 0x8e, 0x1c, 0xad, //0x000097f8 .quad -5972742139117552794 + 0x82, 0x6a, 0x07, 0x40, 0x3e, 0xd4, 0xbe, 0x90, //0x00009800 .quad -8016736922845615486 + 0x40, 0x4a, 0x9d, 0x36, 0x56, 0xb2, 0x63, 0xd8, //0x00009808 .quad -2854241655469553088 + 0x91, 0xa2, 0x04, 0xe8, 0xa6, 0x44, 0x77, 0x5a, //0x00009810 .quad 6518754469289960081 + 0x68, 0x4e, 0x22, 0xe2, 0x75, 0x4f, 0x3e, 0x87, //0x00009818 .quad -8701430062309552536 + 0x36, 0xcb, 0x05, 0xa2, 0xd0, 0x15, 0x15, 0x71, //0x00009820 .quad 8148443086612450102 + 0x02, 0xe2, 0xaa, 0x5a, 0x53, 0xe3, 0x0d, 0xa9, //0x00009828 .quad -6265101559459552766 + 0x03, 0x3e, 0x87, 0xca, 0x44, 0x5b, 0x5a, 0x0d, //0x00009830 .quad 962181821410786819 + 0x83, 0x9a, 0x55, 0x31, 0x28, 0x5c, 0x51, 0xd3, //0x00009838 .quad -3219690930897053053 + 0xc2, 0x86, 0x94, 0xfe, 0x0a, 0x79, 0x58, 0xe8, //0x00009840 .quad -1704479370831952190 + 0x91, 0x80, 0xd5, 0x1e, 0x99, 0xd9, 0x12, 0x84, //0x00009848 .quad -8929835859451740015 + 0x72, 0xa8, 0x39, 0xbe, 0x4d, 0x97, 0x6e, 0x62, //0x00009850 .quad 7092772823314835570 + 0xb6, 0xe0, 0x8a, 0x66, 0xff, 0x8f, 0x17, 0xa5, //0x00009858 .quad -6550608805887287114 + 0x8f, 0x12, 0xc8, 0x2d, 0x21, 0x3d, 0x0a, 0xfb, //0x00009860 .quad -357406007711231345 + 0xe3, 0x98, 0x2d, 0x40, 0xff, 0x73, 0x5d, 0xce, //0x00009868 .quad -3576574988931720989 + 0x99, 0x0b, 0x9d, 0xbc, 0x34, 0x66, 0xe6, 0x7c, //0x00009870 .quad 8999993282035256217 + 0x8e, 0x7f, 0x1c, 0x88, 0x7f, 0x68, 0xfa, 0x80, //0x00009878 .quad -9152888395723407474 + 0x80, 0x4e, 0xc4, 0xeb, 0xc1, 0xff, 0x1f, 0x1c, //0x00009880 .quad 2026619565689294464 + 0x72, 0x9f, 0x23, 0x6a, 0x9f, 0x02, 0x39, 0xa1, //0x00009888 .quad -6829424476226871438 + 0x20, 0x62, 0xb5, 0x66, 0xb2, 0xff, 0x27, 0xa3, //0x00009890 .quad -6690097579743157728 + 0x4e, 0x87, 0xac, 0x44, 0x47, 0x43, 0x87, 0xc9, //0x00009898 .quad -3925094576856201394 + 0xa8, 0xba, 0x62, 0x00, 0x9f, 0xff, 0xf1, 0x4b, //0x000098a0 .quad 5472436080603216552 + 0x22, 0xa9, 0xd7, 0x15, 0x19, 0x14, 0xe9, 0xfb, //0x000098a8 .quad -294682202642863838 + 0xa9, 0xb4, 0x3d, 0x60, 0xc3, 0x3f, 0x77, 0x6f, //0x000098b0 .quad 8031958568804398249 + 0xb5, 0xc9, 0xa6, 0xad, 0x8f, 0xac, 0x71, 0x9d, //0x000098b8 .quad -7101705404292871755 + 0xd3, 0x21, 0x4d, 0x38, 0xb4, 0x0f, 0x55, 0xcb, //0x000098c0 .quad -3795109844276665901 + 0x22, 0x7c, 0x10, 0x99, 0xb3, 0x17, 0xce, 0xc4, //0x000098c8 .quad -4265445736938701790 + 0x48, 0x6a, 0x60, 0x46, 0xa1, 0x53, 0x2a, 0x7e, //0x000098d0 .quad 9091170749936331336 + 0x2b, 0x9b, 0x54, 0x7f, 0xa0, 0x9d, 0x01, 0xf6, //0x000098d8 .quad -720121152745989333 + 0x6d, 0x42, 0xfc, 0xcb, 0x44, 0x74, 0xda, 0x2e, //0x000098e0 .quad 3376138709496513133 + 0xfb, 0xe0, 0x94, 0x4f, 0x84, 0x02, 0xc1, 0x99, //0x000098e8 .quad -7367604748107325189 + 0x08, 0x53, 0xfb, 0xfe, 0x55, 0x11, 0x91, 0xfa, //0x000098f0 .quad -391512631556746488 + 0x39, 0x19, 0x7a, 0x63, 0x25, 0x43, 0x31, 0xc0, //0x000098f8 .quad -4597819916706768583 + 0xca, 0x27, 0xba, 0x7e, 0xab, 0x55, 0x35, 0x79, //0x00009900 .quad 8733981247408842698 + 0x88, 0x9f, 0x58, 0xbc, 0xee, 0x93, 0x3d, 0xf0, //0x00009908 .quad -1135588877456072824 + 0xde, 0x58, 0x34, 0x2f, 0x8b, 0x55, 0xc1, 0x4b, //0x00009910 .quad 5458738279630526686 + 0xb5, 0x63, 0xb7, 0x35, 0x75, 0x7c, 0x26, 0x96, //0x00009918 .quad -7627272076051127371 + 0x16, 0x6f, 0x01, 0xfb, 0xed, 0xaa, 0xb1, 0x9e, //0x00009920 .quad -7011635205744005354 + 0xa2, 0x3c, 0x25, 0x83, 0x92, 0x1b, 0xb0, 0xbb, //0x00009928 .quad -4922404076636521310 + 0xdc, 0xca, 0xc1, 0x79, 0xa9, 0x15, 0x5e, 0x46, //0x00009930 .quad 5070514048102157020 + 0xcb, 0x8b, 0xee, 0x23, 0x77, 0x22, 0x9c, 0xea, //0x00009938 .quad -1541319077368263733 + 0xc9, 0x1e, 0x19, 0xec, 0x89, 0xcd, 0xfa, 0x0b, //0x00009940 .quad 863228270850154185 + 0x5f, 0x17, 0x75, 0x76, 0x8a, 0x95, 0xa1, 0x92, //0x00009948 .quad -7880853450996246689 + 0x7b, 0x66, 0x1f, 0x67, 0xec, 0x80, 0xf9, 0xce, //0x00009950 .quad -3532650679864695173 + 0x36, 0x5d, 0x12, 0x14, 0xed, 0xfa, 0x49, 0xb7, //0x00009958 .quad -5239380795317920458 + 0x1a, 0x40, 0xe7, 0x80, 0x27, 0xe1, 0xb7, 0x82, //0x00009960 .quad -9027499368258256870 + 0x84, 0xf4, 0x16, 0x59, 0xa8, 0x79, 0x1c, 0xe5, //0x00009968 .quad -1937539975720012668 + 0x10, 0x88, 0x90, 0xb0, 0xb8, 0xec, 0xb2, 0xd1, //0x00009970 .quad -3336344095947716592 + 0xd2, 0x58, 0xae, 0x37, 0x09, 0xcc, 0x31, 0x8f, //0x00009978 .quad -8128491512466089774 + 0x15, 0xaa, 0xb4, 0xdc, 0xe6, 0xa7, 0x1f, 0x86, //0x00009980 .quad -8782116138362033643 + 0x07, 0xef, 0x99, 0x85, 0x0b, 0x3f, 0xfe, 0xb2, //0x00009988 .quad -5548928372155224313 + 0x9a, 0xd4, 0xe1, 0x93, 0xe0, 0x91, 0xa7, 0x67, //0x00009990 .quad 7469098900757009562 + 0xc9, 0x6a, 0x00, 0x67, 0xce, 0xce, 0xbd, 0xdf, //0x00009998 .quad -2324474446766642487 + 0xe0, 0x24, 0x6d, 0x5c, 0x2c, 0xbb, 0xc8, 0xe0, //0x000099a0 .quad -2249342214667950880 + 0xbd, 0x42, 0x60, 0x00, 0x41, 0xa1, 0xd6, 0x8b, //0x000099a8 .quad -8370325556870233411 + 0x18, 0x6e, 0x88, 0x73, 0xf7, 0xe9, 0xfa, 0x58, //0x000099b0 .quad 6411694268519837208 + 0x6d, 0x53, 0x78, 0x40, 0x91, 0x49, 0xcc, 0xae, //0x000099b8 .quad -5851220927660403859 + 0x9e, 0x89, 0x6a, 0x50, 0x75, 0xa4, 0x39, 0xaf, //0x000099c0 .quad -5820440219632367202 + 0x48, 0x68, 0x96, 0x90, 0xf5, 0x5b, 0x7f, 0xda, //0x000099c8 .quad -2702340141148116920 + 0x03, 0x96, 0x42, 0x52, 0xc9, 0x06, 0x84, 0x6d, //0x000099d0 .quad 7891439908798240259 + 0x2d, 0x01, 0x5e, 0x7a, 0x79, 0x99, 0x8f, 0x88, //0x000099d8 .quad -8606491615858654931 + 0x83, 0x3b, 0xd3, 0xa6, 0x7b, 0x08, 0xe5, 0xc8, //0x000099e0 .quad -3970758169284363389 + 0x78, 0x81, 0xf5, 0xd8, 0xd7, 0x7f, 0xb3, 0xaa, //0x000099e8 .quad -6146428501395930760 + 0x64, 0x0a, 0x88, 0x90, 0x9a, 0x4a, 0x1e, 0xfb, //0x000099f0 .quad -351761693178066332 + 0xd6, 0xe1, 0x32, 0xcf, 0xcd, 0x5f, 0x60, 0xd5, //0x000099f8 .quad -3071349608317525546 + 0x7f, 0x06, 0x55, 0x9a, 0xa0, 0xee, 0xf2, 0x5c, //0x00009a00 .quad 6697677969404790399 + 0x26, 0xcd, 0x7f, 0xa1, 0xe0, 0x3b, 0x5c, 0x85, //0x00009a08 .quad -8837122532839535322 + 0x1e, 0x48, 0xea, 0xc0, 0x48, 0xaa, 0x2f, 0xf4, //0x00009a10 .quad -851274575098787810 + 0x6f, 0xc0, 0xdf, 0xc9, 0xd8, 0x4a, 0xb3, 0xa6, //0x00009a18 .quad -6434717147622031249 + 0x26, 0xda, 0x24, 0xf1, 0xda, 0x94, 0x3b, 0xf1, //0x00009a20 .quad -1064093218873484762 + 0x8b, 0xb0, 0x57, 0xfc, 0x8e, 0x1d, 0x60, 0xd0, //0x00009a28 .quad -3431710416100151157 + 0x58, 0x08, 0xb7, 0xd6, 0x08, 0x3d, 0xc5, 0x76, //0x00009a30 .quad 8558313775058847832 + 0x57, 0xce, 0xb6, 0x5d, 0x79, 0x12, 0x3c, 0x82, //0x00009a38 .quad -9062348037703676329 + 0x6e, 0xca, 0x64, 0x0c, 0x4b, 0x8c, 0x76, 0x54, //0x00009a40 .quad 6086206200396171886 + 0xed, 0x81, 0x24, 0xb5, 0x17, 0x17, 0xcb, 0xa2, //0x00009a48 .quad -6716249028702207507 + 0x09, 0xfd, 0x7d, 0xcf, 0x5d, 0x2f, 0x94, 0xa9, //0x00009a50 .quad -6227300304786948855 + 0x68, 0xa2, 0x6d, 0xa2, 0xdd, 0xdc, 0x7d, 0xcb, //0x00009a58 .quad -3783625267450371480 + 0x4c, 0x7c, 0x5d, 0x43, 0x35, 0x3b, 0xf9, 0xd3, //0x00009a60 .quad -3172439362556298164 + 0x02, 0x0b, 0x09, 0x0b, 0x15, 0x54, 0x5d, 0xfe, //0x00009a68 .quad -117845565885576446 + 0xaf, 0x6d, 0x1a, 0x4a, 0x01, 0xc5, 0x7b, 0xc4, //0x00009a70 .quad -4288617610811380305 + 0xe1, 0xa6, 0xe5, 0x26, 0x8d, 0x54, 0xfa, 0x9e, //0x00009a78 .quad -6991182506319567135 + 0x1b, 0x09, 0xa1, 0x9c, 0x41, 0xb6, 0x9a, 0x35, //0x00009a80 .quad 3862600023340550427 + 0x9a, 0x10, 0x9f, 0x70, 0xb0, 0xe9, 0xb8, 0xc6, //0x00009a88 .quad -4127292114472071014 + 0x62, 0x4b, 0xc9, 0x03, 0xd2, 0x63, 0x01, 0xc3, //0x00009a90 .quad -4395122007679087774 + 0xc0, 0xd4, 0xc6, 0x8c, 0x1c, 0x24, 0x67, 0xf8, //0x00009a98 .quad -547429124662700864 + 0x1d, 0xcf, 0x5d, 0x42, 0x63, 0xde, 0xe0, 0x79, //0x00009aa0 .quad 8782263791269039901 + 0xf8, 0x44, 0xfc, 0xd7, 0x91, 0x76, 0x40, 0x9b, //0x00009aa8 .quad -7259672230555269896 + 0xe4, 0x42, 0xf5, 0x12, 0xfc, 0x15, 0x59, 0x98, //0x00009ab0 .quad -7468914334623251740 + 0x36, 0x56, 0xfb, 0x4d, 0x36, 0x94, 0x10, 0xc2, //0x00009ab8 .quad -4462904269766699466 + 0x9d, 0x93, 0xb2, 0x17, 0x7b, 0x5b, 0x6f, 0x3e, //0x00009ac0 .quad 4498915137003099037 + 0xc4, 0x2b, 0x7a, 0xe1, 0x43, 0xb9, 0x94, 0xf2, //0x00009ac8 .quad -966944318780986428 + 0x42, 0x9c, 0xcf, 0xee, 0x2c, 0x99, 0x05, 0xa7, //0x00009ad0 .quad -6411550076227838910 + 0x5a, 0x5b, 0xec, 0x6c, 0xca, 0xf3, 0x9c, 0x97, //0x00009ad8 .quad -7521869226879198374 + 0x53, 0x83, 0x83, 0x2a, 0x78, 0xff, 0xc6, 0x50, //0x00009ae0 .quad 5820620459997365075 + 0x31, 0x72, 0x27, 0x08, 0xbd, 0x30, 0x84, 0xbd, //0x00009ae8 .quad -4790650515171610063 + 0x28, 0x64, 0x24, 0x35, 0x56, 0xbf, 0xf8, 0xa4, //0x00009af0 .quad -6559282480285457368 + 0xbd, 0x4e, 0x31, 0x4a, 0xec, 0x3c, 0xe5, 0xec, //0x00009af8 .quad -1376627125537124675 + 0x99, 0xbe, 0x36, 0xe1, 0x95, 0x77, 0x1b, 0x87, //0x00009b00 .quad -8711237568605798759 + 0x36, 0xd1, 0x5e, 0xae, 0x13, 0x46, 0x0f, 0x94, //0x00009b08 .quad -7777920981101784778 + 0x3f, 0x6e, 0x84, 0x59, 0x7b, 0x55, 0xe2, 0x28, //0x00009b10 .quad 2946011094524915263 + 0x84, 0x85, 0xf6, 0x99, 0x98, 0x17, 0x13, 0xb9, //0x00009b18 .quad -5110715207949843068 + 0xcf, 0x89, 0xe5, 0x2f, 0xda, 0xea, 0x1a, 0x33, //0x00009b20 .quad 3682513868156144079 + 0xe5, 0x26, 0x74, 0xc0, 0x7e, 0xdd, 0x57, 0xe7, //0x00009b28 .quad -1776707991509915931 + 0x21, 0x76, 0xef, 0x5d, 0xc8, 0xd2, 0xf0, 0x3f, //0x00009b30 .quad 4607414176811284001 + 0x4f, 0x98, 0x48, 0x38, 0x6f, 0xea, 0x96, 0x90, //0x00009b38 .quad -8027971522334779313 + 0xa9, 0x53, 0x6b, 0x75, 0x7a, 0x07, 0xed, 0x0f, //0x00009b40 .quad 1147581702586717097 + 0x63, 0xbe, 0x5a, 0x06, 0x0b, 0xa5, 0xbc, 0xb4, //0x00009b48 .quad -5423278384491086237 + 0x94, 0x28, 0xc6, 0x12, 0x59, 0x49, 0xe8, 0xd3, //0x00009b50 .quad -3177208890193991532 + 0xfb, 0x6d, 0xf1, 0xc7, 0x4d, 0xce, 0xeb, 0xe1, //0x00009b58 .quad -2167411962186469893 + 0x5c, 0xd9, 0xbb, 0xab, 0xd7, 0x2d, 0x71, 0x64, //0x00009b60 .quad 7237616480483531100 + 0xbd, 0xe4, 0xf6, 0x9c, 0xf0, 0x60, 0x33, 0x8d, //0x00009b68 .quad -8272161504007625539 + 0xb3, 0xcf, 0xaa, 0x96, 0x4d, 0x79, 0x8d, 0xbd, //0x00009b70 .quad -4788037454677749837 + 0xec, 0x9d, 0x34, 0xc4, 0x2c, 0x39, 0x80, 0xb0, //0x00009b78 .quad -5728515861582144020 + 0xa0, 0x83, 0x55, 0xfc, 0xa0, 0xd7, 0xf0, 0xec, //0x00009b80 .quad -1373360799919799392 + 0x67, 0xc5, 0x41, 0xf5, 0x77, 0x47, 0xa0, 0xdc, //0x00009b88 .quad -2548958808550292121 + 0x44, 0x72, 0xb5, 0x9d, 0xc4, 0x86, 0x16, 0xf4, //0x00009b90 .quad -858350499949874620 + 0x60, 0x1b, 0x49, 0xf9, 0xaa, 0x2c, 0xe4, 0x89, //0x00009b98 .quad -8510628282985014432 + 0xd5, 0xce, 0x22, 0xc5, 0x75, 0x28, 0x1c, 0x31, //0x00009ba0 .quad 3538747893490044629 + 0x39, 0x62, 0x9b, 0xb7, 0xd5, 0x37, 0x5d, 0xac, //0x00009ba8 .quad -6026599335303880135 + 0x8b, 0x82, 0x6b, 0x36, 0x93, 0x32, 0x63, 0x7d, //0x00009bb0 .quad 9035120885289943691 + 0xc7, 0x3a, 0x82, 0x25, 0xcb, 0x85, 0x74, 0xd7, //0x00009bb8 .quad -2921563150702462265 + 0x97, 0x31, 0x03, 0x02, 0x9c, 0xff, 0x5d, 0xae, //0x00009bc0 .quad -5882264492762254953 + 0xbc, 0x64, 0x71, 0xf7, 0x9e, 0xd3, 0xa8, 0x86, //0x00009bc8 .quad -8743505996830120772 + 0xfc, 0xfd, 0x83, 0x02, 0x83, 0x7f, 0xf5, 0xd9, //0x00009bd0 .quad -2741144597525430788 + 0xeb, 0xbd, 0x4d, 0xb5, 0x86, 0x08, 0x53, 0xa8, //0x00009bd8 .quad -6317696477610263061 + 0x7b, 0xfd, 0x24, 0xc3, 0x63, 0xdf, 0x72, 0xd0, //0x00009be0 .quad -3426430746906788485 + 0x66, 0x2d, 0xa1, 0x62, 0xa8, 0xca, 0x67, 0xd2, //0x00009be8 .quad -3285434578585440922 + 0x6d, 0x1e, 0xf7, 0x59, 0x9e, 0xcb, 0x47, 0x42, //0x00009bf0 .quad 4776009810824339053 + 0x60, 0xbc, 0xa4, 0x3d, 0xa9, 0xde, 0x80, 0x83, //0x00009bf8 .quad -8970925639256982432 + 0x08, 0xe6, 0x74, 0xf0, 0x85, 0xbe, 0xd9, 0x52, //0x00009c00 .quad 5970012263530423816 + 0x78, 0xeb, 0x0d, 0x8d, 0x53, 0x16, 0x61, 0xa4, //0x00009c08 .quad -6601971030643840136 + 0x8b, 0x1f, 0x92, 0x6c, 0x27, 0x2e, 0x90, 0x67, //0x00009c10 .quad 7462515329413029771 + 0x56, 0x66, 0x51, 0x70, 0xe8, 0x5b, 0x79, 0xcd, //0x00009c18 .quad -3640777769877412266 + 0xb6, 0x53, 0xdb, 0xa3, 0xd8, 0x1c, 0xba, 0x00, //0x00009c20 .quad 52386062455755702 + 0xf6, 0xdf, 0x32, 0x46, 0x71, 0xd9, 0x6b, 0x80, //0x00009c28 .quad -9193015133814464522 + 0xa4, 0x28, 0xd2, 0xcc, 0x0e, 0xa4, 0xe8, 0x80, //0x00009c30 .quad -9157889458785081180 + 0xf3, 0x97, 0xbf, 0x97, 0xcd, 0xcf, 0x86, 0xa0, //0x00009c38 .quad -6879582898840692749 + 0xcd, 0xb2, 0x06, 0x80, 0x12, 0xcd, 0x22, 0x61, //0x00009c40 .quad 6999382250228200141 + 0xf0, 0x7d, 0xaf, 0xfd, 0xc0, 0x83, 0xa8, 0xc8, //0x00009c48 .quad -3987792605123478032 + 0x81, 0x5f, 0x08, 0x20, 0x57, 0x80, 0x6b, 0x79, //0x00009c50 .quad 8749227812785250177 + 0x6c, 0x5d, 0x1b, 0x3d, 0xb1, 0xa4, 0xd2, 0xfa, //0x00009c58 .quad -373054737976959636 + 0xb0, 0x3b, 0x05, 0x74, 0x36, 0x30, 0xe3, 0xcb, //0x00009c60 .quad -3755104653863994448 + 0x63, 0x1a, 0x31, 0xc6, 0xee, 0xa6, 0xc3, 0x9c, //0x00009c68 .quad -7150688238876681629 + 0x9c, 0x8a, 0x06, 0x11, 0x44, 0xfc, 0xdb, 0xbe, //0x00009c70 .quad -4693880817329993060 + 0xfc, 0x60, 0xbd, 0x77, 0xaa, 0x90, 0xf4, 0xc3, //0x00009c78 .quad -4326674280168464132 + 0x44, 0x2d, 0x48, 0x15, 0x55, 0xfb, 0x92, 0xee, //0x00009c80 .quad -1255665003235103420 + 0x3b, 0xb9, 0xac, 0x15, 0xd5, 0xb4, 0xf1, 0xf4, //0x00009c88 .quad -796656831783192261 + 0x4a, 0x1c, 0x4d, 0x2d, 0x15, 0xdd, 0x1b, 0x75, //0x00009c90 .quad 8438581409832836170 + 0xc5, 0xf3, 0x8b, 0x2d, 0x05, 0x11, 0x17, 0x99, //0x00009c98 .quad -7415439547505577019 + 0x5d, 0x63, 0xa0, 0x78, 0x5a, 0xd4, 0x62, 0xd2, //0x00009ca0 .quad -3286831292991118499 + 0xb6, 0xf0, 0xee, 0x78, 0x46, 0xd5, 0x5c, 0xbf, //0x00009ca8 .quad -4657613415954583370 + 0x34, 0x7c, 0xc8, 0x16, 0x71, 0x89, 0xfb, 0x86, //0x00009cb0 .quad -8720225134666286028 + 0xe4, 0xac, 0x2a, 0x17, 0x98, 0x0a, 0x34, 0xef, //0x00009cb8 .quad -1210330751515841308 + 0xa0, 0x4d, 0x3d, 0xae, 0xe6, 0x35, 0x5d, 0xd4, //0x00009cc0 .quad -3144297699952734816 + 0x0e, 0xac, 0x7a, 0x0e, 0x9f, 0x86, 0x80, 0x95, //0x00009cc8 .quad -7673985747338482674 + 0x09, 0xa1, 0xcc, 0x59, 0x60, 0x83, 0x74, 0x89, //0x00009cd0 .quad -8542058143368306423 + 0x12, 0x57, 0x19, 0xd2, 0x46, 0xa8, 0xe0, 0xba, //0x00009cd8 .quad -4980796165745715438 + 0x4b, 0xc9, 0x3f, 0x70, 0x38, 0xa4, 0xd1, 0x2b, //0x00009ce0 .quad 3157485376071780683 + 0xd7, 0xac, 0x9f, 0x86, 0x58, 0xd2, 0x98, 0xe9, //0x00009ce8 .quad -1614309188754756393 + 0xcf, 0xdd, 0x27, 0x46, 0xa3, 0x06, 0x63, 0x7b, //0x00009cf0 .quad 8890957387685944783 + 0x06, 0xcc, 0x23, 0x54, 0x77, 0x83, 0xff, 0x91, //0x00009cf8 .quad -7926472270612804602 + 0x42, 0xd5, 0xb1, 0x17, 0x4c, 0xc8, 0x3b, 0x1a, //0x00009d00 .quad 1890324697752655170 + 0x08, 0xbf, 0x2c, 0x29, 0x55, 0x64, 0x7f, 0xb6, //0x00009d08 .quad -5296404319838617848 + 0x93, 0x4a, 0x9e, 0x1d, 0x5f, 0xba, 0xca, 0x20, //0x00009d10 .quad 2362905872190818963 + 0xca, 0xee, 0x77, 0x73, 0x6a, 0x3d, 0x1f, 0xe4, //0x00009d18 .quad -2008819381370884406 + 0x9c, 0xee, 0x82, 0x72, 0x7b, 0xb4, 0x7e, 0x54, //0x00009d20 .quad 6088502188546649756 + 0x3e, 0xf5, 0x2a, 0x88, 0x62, 0x86, 0x93, 0x8e, //0x00009d28 .quad -8173041140997884610 + 0x43, 0xaa, 0x23, 0x4f, 0x9a, 0x61, 0x9e, 0xe9, //0x00009d30 .quad -1612744301171463613 + 0x8d, 0xb2, 0x35, 0x2a, 0xfb, 0x67, 0x38, 0xb2, //0x00009d38 .quad -5604615407819967859 + 0xd4, 0x94, 0xec, 0xe2, 0x00, 0xfa, 0x05, 0x64, //0x00009d40 .quad 7207441660390446292 + 0x31, 0x1f, 0xc3, 0xf4, 0xf9, 0x81, 0xc6, 0xde, //0x00009d48 .quad -2394083241347571919 + 0x04, 0xdd, 0xd3, 0x8d, 0x40, 0xbc, 0x83, 0xde, //0x00009d50 .quad -2412877989897052924 + 0x7e, 0xf3, 0xf9, 0x38, 0x3c, 0x11, 0x3c, 0x8b, //0x00009d58 .quad -8413831053483314306 + 0x45, 0xd4, 0x48, 0xb1, 0x50, 0xab, 0x24, 0x96, //0x00009d60 .quad -7627783505798704059 + 0x5e, 0x70, 0x38, 0x47, 0x8b, 0x15, 0x0b, 0xae, //0x00009d68 .quad -5905602798426754978 + 0x57, 0x09, 0x9b, 0xdd, 0x24, 0xd6, 0xad, 0x3b, //0x00009d70 .quad 4300328673033783639 + 0x76, 0x8c, 0x06, 0x19, 0xee, 0xda, 0x8d, 0xd9, //0x00009d78 .quad -2770317479606055818 + 0xd6, 0xe5, 0x80, 0x0a, 0xd7, 0xa5, 0x4c, 0xe5, //0x00009d80 .quad -1923980597781273130 + 0xc9, 0x17, 0xa4, 0xcf, 0xd4, 0xa8, 0xf8, 0x87, //0x00009d88 .quad -8648977452394866743 + 0x4c, 0x1f, 0x21, 0xcd, 0x4c, 0xcf, 0x9f, 0x5e, //0x00009d90 .quad 6818396289628184396 + 0xbc, 0x1d, 0x8d, 0x03, 0x0a, 0xd3, 0xf6, 0xa9, //0x00009d98 .quad -6199535797066195524 + 0x1f, 0x67, 0x69, 0x00, 0x20, 0xc3, 0x47, 0x76, //0x00009da0 .quad 8522995362035230495 + 0x2b, 0x65, 0x70, 0x84, 0xcc, 0x87, 0x74, 0xd4, //0x00009da8 .quad -3137733727905356501 + 0x73, 0xe0, 0x41, 0x00, 0xf4, 0xd9, 0xec, 0x29, //0x00009db0 .quad 3021029092058325107 + 0x3b, 0x3f, 0xc6, 0xd2, 0xdf, 0xd4, 0xc8, 0x84, //0x00009db8 .quad -8878612607581929669 + 0x90, 0x58, 0x52, 0x00, 0x71, 0x10, 0x68, 0xf4, //0x00009dc0 .quad -835399653354481520 + 0x09, 0xcf, 0x77, 0xc7, 0x17, 0x0a, 0xfb, 0xa5, //0x00009dc8 .quad -6486579741050024183 + 0xb4, 0xee, 0x66, 0x40, 0x8d, 0x14, 0x82, 0x71, //0x00009dd0 .quad 8179122470161673908 + 0xcc, 0xc2, 0x55, 0xb9, 0x9d, 0xcc, 0x79, 0xcf, //0x00009dd8 .quad -3496538657885142324 + 0x30, 0x55, 0x40, 0x48, 0xd8, 0x4c, 0xf1, 0xc6, //0x00009de0 .quad -4111420493003729616 + 0xbf, 0x99, 0xd5, 0x93, 0xe2, 0x1f, 0xac, 0x81, //0x00009de8 .quad -9102865688819295809 + 0x7c, 0x6a, 0x50, 0x5a, 0x0e, 0xa0, 0xad, 0xb8, //0x00009df0 .quad -5139275616254662020 + 0x2f, 0x00, 0xcb, 0x38, 0xdb, 0x27, 0x17, 0xa2, //0x00009df8 .quad -6766896092596731857 + 0x1c, 0x85, 0xe4, 0xf0, 0x11, 0x08, 0xd9, 0xa6, //0x00009e00 .quad -6424094520318327524 + 0x3b, 0xc0, 0xfd, 0x06, 0xd2, 0xf1, 0x9c, 0xca, //0x00009e08 .quad -3846934097318526917 + 0x63, 0xa6, 0x1d, 0x6d, 0x16, 0x4a, 0x8f, 0x90, //0x00009e10 .quad -8030118150397909405 + 0x4a, 0x30, 0xbd, 0x88, 0x46, 0x2e, 0x44, 0xfd, //0x00009e18 .quad -196981603220770742 + 0xfe, 0x87, 0x32, 0x04, 0x4e, 0x8e, 0x59, 0x9a, //0x00009e20 .quad -7324666853212387330 + 0x2e, 0x3e, 0x76, 0x15, 0xec, 0x9c, 0x4a, 0x9e, //0x00009e28 .quad -7040642529654063570 + 0xfd, 0x29, 0x3f, 0x85, 0xe1, 0xf1, 0xef, 0x40, //0x00009e30 .quad 4679224488766679549 + 0xba, 0xcd, 0xd3, 0x1a, 0x27, 0x44, 0xdd, 0xc5, //0x00009e38 .quad -4189117143640191558 + 0x7c, 0xf4, 0x8e, 0xe6, 0x59, 0xee, 0x2b, 0xd1, //0x00009e40 .quad -3374341425896426372 + 0x28, 0xc1, 0x88, 0xe1, 0x30, 0x95, 0x54, 0xf7, //0x00009e48 .quad -624710411122851544 + 0xce, 0x58, 0x19, 0x30, 0xf8, 0x74, 0xbb, 0x82, //0x00009e50 .quad -9026492418826348338 + 0xb9, 0x78, 0xf5, 0x8c, 0x3e, 0xdd, 0x94, 0x9a, //0x00009e58 .quad -7307973034592864071 + 0x01, 0xaf, 0x1f, 0x3c, 0x36, 0x52, 0x6a, 0xe3, //0x00009e60 .quad -2059743486678159615 + 0xe7, 0xd6, 0x32, 0x30, 0x8e, 0x14, 0x3a, 0xc1, //0x00009e68 .quad -4523280274813692185 + 0xc1, 0x9a, 0x27, 0xcb, 0xc3, 0xe6, 0x44, 0xdc, //0x00009e70 .quad -2574679358347699519 + 0xa1, 0x8c, 0x3f, 0xbc, 0xb1, 0x99, 0x88, 0xf1, //0x00009e78 .quad -1042414325089727327 + 0xb9, 0xc0, 0xf8, 0x5e, 0x3a, 0x10, 0xab, 0x29, //0x00009e80 .quad 3002511419460075705 + 0xe5, 0xb7, 0xa7, 0x15, 0x0f, 0x60, 0xf5, 0x96, //0x00009e88 .quad -7569037980822161435 + 0xe7, 0xf0, 0xb6, 0xf6, 0x48, 0xd4, 0x15, 0x74, //0x00009e90 .quad 8364825292752482535 + 0xde, 0xa5, 0x11, 0xdb, 0x12, 0xb8, 0xb2, 0xbc, //0x00009e98 .quad -4849611457600313890 + 0x21, 0xad, 0x64, 0x34, 0x5b, 0x49, 0x1b, 0x11, //0x00009ea0 .quad 1232659579085827361 + 0x56, 0x0f, 0xd6, 0x91, 0x17, 0x66, 0xdf, 0xeb, //0x00009ea8 .quad -1450328303573004458 + 0x34, 0xec, 0xbe, 0x00, 0xd9, 0x0d, 0xb1, 0xca, //0x00009eb0 .quad -3841273781498745804 + 0x95, 0xc9, 0x25, 0xbb, 0xce, 0x9f, 0x6b, 0x93, //0x00009eb8 .quad -7823984217374209643 + 0x42, 0xa7, 0xee, 0x40, 0x4f, 0x51, 0x5d, 0x3d, //0x00009ec0 .quad 4421779809981343554 + 0xfb, 0x3b, 0xef, 0x69, 0xc2, 0x87, 0x46, 0xb8, //0x00009ec8 .quad -5168294253290374149 + 0x12, 0x51, 0x2a, 0x11, 0xa3, 0xa5, 0xb4, 0x0c, //0x00009ed0 .quad 915538744049291538 + 0xfa, 0x0a, 0x6b, 0x04, 0xb3, 0x29, 0x58, 0xe6, //0x00009ed8 .quad -1848681798185579782 + 0xab, 0x72, 0xba, 0xea, 0x85, 0xe7, 0xf0, 0x47, //0x00009ee0 .quad 5183897733458195115 + 0xdc, 0xe6, 0xc2, 0xe2, 0x0f, 0x1a, 0xf7, 0x8f, //0x00009ee8 .quad -8072955151507069220 + 0x56, 0x0f, 0x69, 0x65, 0x67, 0x21, 0xed, 0x59, //0x00009ef0 .quad 6479872166822743894 + 0x93, 0xa0, 0x73, 0xdb, 0x93, 0xe0, 0xf4, 0xb3, //0x00009ef8 .quad -5479507920956448621 + 0x2c, 0x53, 0xc3, 0x3e, 0xc1, 0x69, 0x68, 0x30, //0x00009f00 .quad 3488154190101041964 + 0xb8, 0x88, 0x50, 0xd2, 0xb8, 0x18, 0xf2, 0xe0, //0x00009f08 .quad -2237698882768172872 + 0xfb, 0x13, 0x3a, 0xc7, 0x18, 0x42, 0x41, 0x1e, //0x00009f10 .quad 2180096368813151227 + 0x73, 0x55, 0x72, 0x83, 0x73, 0x4f, 0x97, 0x8c, //0x00009f18 .quad -8316090829371189901 + 0xfa, 0x98, 0x08, 0xf9, 0x9e, 0x92, 0xd1, 0xe5, //0x00009f20 .quad -1886565557410948870 + 0xcf, 0xea, 0x4e, 0x64, 0x50, 0x23, 0xbd, 0xaf, //0x00009f28 .quad -5783427518286599473 + 0x39, 0xbf, 0x4a, 0xb7, 0x46, 0xf7, 0x45, 0xdf, //0x00009f30 .quad -2358206946763686087 + 0x83, 0xa5, 0x62, 0x7d, 0x24, 0x6c, 0xac, 0xdb, //0x00009f38 .quad -2617598379430861437 + 0x83, 0xb7, 0x8e, 0x32, 0x8c, 0xba, 0x8b, 0x6b, //0x00009f40 .quad 7749492695127472003 + 0x72, 0xa7, 0x5d, 0xce, 0x96, 0xc3, 0x4b, 0x89, //0x00009f48 .quad -8553528014785370254 + 0x64, 0x65, 0x32, 0x3f, 0x2f, 0xa9, 0x6e, 0x06, //0x00009f50 .quad 463493832054564196 + 0x4f, 0x11, 0xf5, 0x81, 0x7c, 0xb4, 0x9e, 0xab, //0x00009f58 .quad -6080224000054324913 + 0xbd, 0xfe, 0xfe, 0x0e, 0x7b, 0x53, 0x0a, 0xc8, //0x00009f60 .quad -4032318728359182659 + 0xa2, 0x55, 0x72, 0xa2, 0x9b, 0x61, 0x86, 0xd6, //0x00009f68 .quad -2988593981640518238 + 0x36, 0x5f, 0x5f, 0xe9, 0x2c, 0x74, 0x06, 0xbd, //0x00009f70 .quad -4826042214438183114 + 0x85, 0x75, 0x87, 0x45, 0x01, 0xfd, 0x13, 0x86, //0x00009f78 .quad -8785400266166405755 + 0x04, 0x37, 0xb7, 0x23, 0x38, 0x11, 0x48, 0x2c, //0x00009f80 .quad 3190819268807046916 + 0xe7, 0x52, 0xe9, 0x96, 0x41, 0xfc, 0x98, 0xa7, //0x00009f88 .quad -6370064314280619289 + 0xc5, 0x04, 0xa5, 0x2c, 0x86, 0x15, 0x5a, 0xf7, //0x00009f90 .quad -623161932418579259 + 0xa0, 0xa7, 0xa3, 0xfc, 0x51, 0x3b, 0x7f, 0xd1, //0x00009f98 .quad -3350894374423386208 + 0xfb, 0x22, 0xe7, 0xdb, 0x73, 0x4d, 0x98, 0x9a, //0x00009fa0 .quad -7307005235402693893 + 0xc4, 0x48, 0xe6, 0x3d, 0x13, 0x85, 0xef, 0x82, //0x00009fa8 .quad -9011838011655698236 + 0xba, 0xeb, 0xe0, 0xd2, 0xd0, 0x60, 0x3e, 0xc1, //0x00009fb0 .quad -4522070525825979462 + 0xf5, 0xda, 0x5f, 0x0d, 0x58, 0x66, 0xab, 0xa3, //0x00009fb8 .quad -6653111496142234891 + 0xa8, 0x26, 0x99, 0x07, 0x05, 0xf9, 0x8d, 0x31, //0x00009fc0 .quad 3570783879572301480 + 0xb3, 0xd1, 0xb7, 0x10, 0xee, 0x3f, 0x96, 0xcc, //0x00009fc8 .quad -3704703351750405709 + 0x52, 0x70, 0x7f, 0x49, 0x46, 0x77, 0xf1, 0xfd, //0x00009fd0 .quad -148206168962011054 + 0x1f, 0xc6, 0xe5, 0x94, 0xe9, 0xcf, 0xbb, 0xff, //0x00009fd8 .quad -19193171260619233 + 0x33, 0xa6, 0xef, 0xed, 0x8b, 0xea, 0xb6, 0xfe, //0x00009fe0 .quad -92628855601256909 + 0xd3, 0x9b, 0x0f, 0xfd, 0xf1, 0x61, 0xd5, 0x9f, //0x00009fe8 .quad -6929524759678968877 + 0xc0, 0x8f, 0x6b, 0xe9, 0x2e, 0xa5, 0x64, 0xfe, //0x00009ff0 .quad -115786069501571136 + 0xc8, 0x82, 0x53, 0x7c, 0x6e, 0xba, 0xca, 0xc7, //0x00009ff8 .quad -4050219931171323192 + 0xb0, 0x73, 0xc6, 0xa3, 0x7a, 0xce, 0xfd, 0x3d, //0x0000a000 .quad 4466953431550423984 + 0x7b, 0x63, 0x68, 0x1b, 0x0a, 0x69, 0xbd, 0xf9, //0x0000a008 .quad -451088895536766085 + 0x4e, 0x08, 0x5c, 0xa6, 0x0c, 0xa1, 0xbe, 0x06, //0x0000a010 .quad 486002885505321038 + 0x2d, 0x3e, 0x21, 0x51, 0xa6, 0x61, 0x16, 0x9c, //0x0000a018 .quad -7199459587351560659 + 0x62, 0x0a, 0xf3, 0xcf, 0x4f, 0x49, 0x6e, 0x48, //0x0000a020 .quad 5219189625309039202 + 0xb8, 0x8d, 0x69, 0xe5, 0x0f, 0xfa, 0x1b, 0xc3, //0x0000a028 .quad -4387638465762062920 + 0xfa, 0xcc, 0xef, 0xc3, 0xa3, 0xdb, 0x89, 0x5a, //0x0000a030 .quad 6523987031636299002 + 0x26, 0xf1, 0xc3, 0xde, 0x93, 0xf8, 0xe2, 0xf3, //0x0000a038 .quad -872862063775190746 + 0x1c, 0xe0, 0x75, 0x5a, 0x46, 0x29, 0x96, 0xf8, //0x0000a040 .quad -534194123654701028 + 0xb7, 0x76, 0x3a, 0x6b, 0x5c, 0xdb, 0x6d, 0x98, //0x0000a048 .quad -7463067817500576073 + 0x23, 0x58, 0x13, 0xf1, 0x97, 0xb3, 0xbb, 0xf6, //0x0000a050 .quad -667742654568376285 + 0x65, 0x14, 0x09, 0x86, 0x33, 0x52, 0x89, 0xbe, //0x0000a058 .quad -4717148753448332187 + 0x2c, 0x2e, 0x58, 0xed, 0x7d, 0xa0, 0x6a, 0x74, //0x0000a060 .quad 8388693718644305452 + 0x7f, 0x59, 0x8b, 0x67, 0xc0, 0xa6, 0x2b, 0xee, //0x0000a068 .quad -1284749923383027329 + 0xdc, 0x1c, 0x57, 0xb4, 0x4e, 0xa4, 0xc2, 0xa8, //0x0000a070 .quad -6286281471915778852 + 0xef, 0x17, 0xb7, 0x40, 0x38, 0x48, 0xdb, 0x94, //0x0000a078 .quad -7720497729755473937 + 0x13, 0xe4, 0x6c, 0x61, 0x62, 0x4d, 0xf3, 0x92, //0x0000a080 .quad -7857851839894723565 + 0xeb, 0xdd, 0xe4, 0x50, 0x46, 0x1a, 0x12, 0xba, //0x0000a088 .quad -5038936143766954517 + 0x17, 0x1d, 0xc8, 0xf9, 0xba, 0x20, 0xb0, 0x77, //0x0000a090 .quad 8624429273841147159 + 0x66, 0x15, 0x1e, 0xe5, 0xd7, 0xa0, 0x96, 0xe8, //0x0000a098 .quad -1686984161281305242 + 0x2e, 0x12, 0x1d, 0xdc, 0x74, 0x14, 0xce, 0x0a, //0x0000a0a0 .quad 778582277723329070 + 0x60, 0xcd, 0x32, 0xef, 0x86, 0x24, 0x5e, 0x91, //0x0000a0a8 .quad -7971894128441897632 + 0xba, 0x56, 0x24, 0x13, 0x92, 0x99, 0x81, 0x0d, //0x0000a0b0 .quad 973227847154161338 + 0xb8, 0x80, 0xff, 0xaa, 0xa8, 0xad, 0xb5, 0xb5, //0x0000a0b8 .quad -5353181642124984136 + 0x69, 0x6c, 0xed, 0x97, 0xf6, 0xff, 0xe1, 0x10, //0x0000a0c0 .quad 1216534808942701673 + 0xe6, 0x60, 0xbf, 0xd5, 0x12, 0x19, 0x23, 0xe3, //0x0000a0c8 .quad -2079791034228842266 + 0xc1, 0x63, 0xf4, 0x1e, 0xfa, 0x3f, 0x8d, 0xca, //0x0000a0d0 .quad -3851351762838199359 + 0x8f, 0x9c, 0x97, 0xc5, 0xab, 0xef, 0xf5, 0x8d, //0x0000a0d8 .quad -8217398424034108273 + 0xb2, 0x7c, 0xb1, 0xa6, 0xf8, 0x8f, 0x30, 0xbd, //0x0000a0e0 .quad -4814189703547749198 + 0xb3, 0x83, 0xfd, 0xb6, 0x96, 0x6b, 0x73, 0xb1, //0x0000a0e8 .quad -5660062011615247437 + 0xde, 0xdb, 0x5d, 0xd0, 0xf6, 0xb3, 0x7c, 0xac, //0x0000a0f0 .quad -6017737129434686498 + 0xa0, 0xe4, 0xbc, 0x64, 0x7c, 0x46, 0xd0, 0xdd, //0x0000a0f8 .quad -2463391496091671392 + 0x6b, 0xa9, 0x3a, 0x42, 0x7a, 0xf0, 0xcd, 0x6b, //0x0000a100 .quad 7768129340171790699 + 0xe4, 0x0e, 0xf6, 0xbe, 0x0d, 0x2c, 0xa2, 0x8a, //0x0000a108 .quad -8457148712698376476 + 0xc6, 0x53, 0xc9, 0xd2, 0x98, 0x6c, 0xc1, 0x86, //0x0000a110 .quad -8736582398494813242 + 0x9d, 0x92, 0xb3, 0x2e, 0x11, 0xb7, 0x4a, 0xad, //0x0000a118 .quad -5959749872445582691 + 0xb7, 0xa8, 0x7b, 0x07, 0xbf, 0xc7, 0x71, 0xe8, //0x0000a120 .quad -1697355961263740745 + 0x44, 0x77, 0x60, 0x7a, 0xd5, 0x64, 0x9d, 0xd8, //0x0000a128 .quad -2838001322129590460 + 0x72, 0x49, 0xad, 0x64, 0xd7, 0x1c, 0x47, 0x11, //0x0000a130 .quad 1244995533423855986 + 0x8b, 0x4a, 0x7c, 0x6c, 0x05, 0x5f, 0x62, 0x87, //0x0000a138 .quad -8691279853972075893 + 0xcf, 0x9b, 0xd8, 0x3d, 0x0d, 0xe4, 0x98, 0xd5, //0x0000a140 .quad -3055441601647567921 + 0x2d, 0x5d, 0x9b, 0xc7, 0xc6, 0xf6, 0x3a, 0xa9, //0x0000a148 .quad -6252413799037706963 + 0xc3, 0xc2, 0x4e, 0x8d, 0x10, 0x1d, 0xff, 0x4a, //0x0000a150 .quad 5404070034795315907 + 0x79, 0x34, 0x82, 0x79, 0x78, 0xb4, 0x89, 0xd3, //0x0000a158 .quad -3203831230369745799 + 0xba, 0x39, 0x51, 0x58, 0x2a, 0x72, 0xdf, 0xce, //0x0000a160 .quad -3539985255894009414 + 0xcb, 0x60, 0xf1, 0x4b, 0xcb, 0x10, 0x36, 0x84, //0x0000a168 .quad -8919923546622172981 + 0x28, 0x88, 0x65, 0xee, 0xb4, 0x4e, 0x97, 0xc2, //0x0000a170 .quad -4424981569867511768 + 0xfe, 0xb8, 0xed, 0x1e, 0xfe, 0x94, 0x43, 0xa5, //0x0000a178 .quad -6538218414850328322 + 0x32, 0xea, 0xfe, 0x29, 0x62, 0x22, 0x3d, 0x73, //0x0000a180 .quad 8303831092947774002 + 0x3e, 0x27, 0xa9, 0xa6, 0x3d, 0x7a, 0x94, 0xce, //0x0000a188 .quad -3561087000135522498 + 0x5f, 0x52, 0x3f, 0x5a, 0x7d, 0x35, 0x06, 0x08, //0x0000a190 .quad 578208414664970847 + 0x87, 0xb8, 0x29, 0x88, 0x66, 0xcc, 0x1c, 0x81, //0x0000a198 .quad -9143208402725783417 + 0xf7, 0x26, 0xcf, 0xb0, 0xdc, 0xc2, 0x07, 0xca, //0x0000a1a0 .quad -3888925500096174345 + 0xa8, 0x26, 0x34, 0x2a, 0x80, 0xff, 0x63, 0xa1, //0x0000a1a8 .quad -6817324484979841368 + 0xb5, 0xf0, 0x02, 0xdd, 0x93, 0xb3, 0x89, 0xfc, //0x0000a1b0 .quad -249470856692830027 + 0x52, 0x30, 0xc1, 0x34, 0x60, 0xff, 0xbc, 0xc9, //0x0000a1b8 .quad -3909969587797413806 + 0xe2, 0xac, 0x43, 0xd4, 0x78, 0x20, 0xac, 0xbb, //0x0000a1c0 .quad -4923524589293425438 + 0x67, 0x7c, 0xf1, 0x41, 0x38, 0x3f, 0x2c, 0xfc, //0x0000a1c8 .quad -275775966319379353 + 0x0d, 0x4c, 0xaa, 0x84, 0x4b, 0x94, 0x4b, 0xd5, //0x0000a1d0 .quad -3077202868308390899 + 0xc0, 0xed, 0x36, 0x29, 0x83, 0xa7, 0x9b, 0x9d, //0x0000a1d8 .quad -7089889006590693952 + 0x11, 0xdf, 0xd4, 0x65, 0x5e, 0x79, 0x9e, 0x0a, //0x0000a1e0 .quad 765182433041899281 + 0x31, 0xa9, 0x84, 0xf3, 0x63, 0x91, 0x02, 0xc5, //0x0000a1e8 .quad -4250675239810979535 + 0xd5, 0x16, 0x4a, 0xff, 0xb5, 0x17, 0x46, 0x4d, //0x0000a1f0 .quad 5568164059729762005 + 0x7d, 0xd3, 0x65, 0xf0, 0xbc, 0x35, 0x43, 0xf6, //0x0000a1f8 .quad -701658031336336515 + 0x45, 0x4e, 0x8e, 0xbf, 0xd1, 0xce, 0x4b, 0x50, //0x0000a200 .quad 5785945546544795205 + 0x2e, 0xa4, 0x3f, 0x16, 0x96, 0x01, 0xea, 0x99, //0x0000a208 .quad -7356065297226292178 + 0xd6, 0xe1, 0x71, 0x2f, 0x86, 0xc2, 0x5e, 0xe4, //0x0000a210 .quad -1990940103673781802 + 0x39, 0x8d, 0xcf, 0x9b, 0xfb, 0x81, 0x64, 0xc0, //0x0000a218 .quad -4583395603105477319 + 0x4c, 0x5a, 0x4e, 0xbb, 0x27, 0x73, 0x76, 0x5d, //0x0000a220 .quad 6734696907262548556 + 0x88, 0x70, 0xc3, 0x82, 0x7a, 0xa2, 0x7d, 0xf0, //0x0000a228 .quad -1117558485454458744 + 0x6f, 0xf8, 0x10, 0xd5, 0xf8, 0x07, 0x6a, 0x3a, //0x0000a230 .quad 4209185567039092847 + 0x55, 0x26, 0xba, 0x91, 0x8c, 0x85, 0x4e, 0x96, //0x0000a238 .quad -7616003081050118571 + 0x8b, 0x36, 0x55, 0x0a, 0xf7, 0x89, 0x04, 0x89, //0x0000a240 .quad -8573576096483297653 + 0xea, 0xaf, 0x28, 0xb6, 0xef, 0x26, 0xe2, 0xbb, //0x0000a248 .quad -4908317832885260310 + 0x2e, 0x84, 0xea, 0xcc, 0x74, 0xac, 0x45, 0x2b, //0x0000a250 .quad 3118087934678041646 + 0xe5, 0xdb, 0xb2, 0xa3, 0xab, 0xb0, 0xda, 0xea, //0x0000a258 .quad -1523711272679187483 + 0x9d, 0x92, 0x12, 0x00, 0xc9, 0x8b, 0x0b, 0x3b, //0x0000a260 .quad 4254647968387469981 + 0x6f, 0xc9, 0x4f, 0x46, 0x6b, 0xae, 0xc8, 0x92, //0x0000a268 .quad -7869848573065574033 + 0x44, 0x37, 0x17, 0x40, 0xbb, 0x6e, 0xce, 0x09, //0x0000a270 .quad 706623942056949572 + 0xcb, 0xbb, 0xe3, 0x17, 0x06, 0xda, 0x7a, 0xb7, //0x0000a278 .quad -5225624697904579637 + 0x15, 0x05, 0x1d, 0x10, 0x6a, 0x0a, 0x42, 0xcc, //0x0000a280 .quad -3728406090856200939 + 0xbd, 0xaa, 0xdc, 0x9d, 0x87, 0x90, 0x59, 0xe5, //0x0000a288 .quad -1920344853953336643 + 0x2d, 0x23, 0x12, 0x4a, 0x82, 0x46, 0xa9, 0x9f, //0x0000a290 .quad -6941939825212513491 + 0xb6, 0xea, 0xa9, 0xc2, 0x54, 0xfa, 0x57, 0x8f, //0x0000a298 .quad -8117744561361917258 + 0xf9, 0xab, 0x96, 0xdc, 0x22, 0x98, 0x93, 0x47, //0x0000a2a0 .quad 5157633273766521849 + 0x64, 0x65, 0x54, 0xf3, 0xe9, 0xf8, 0x2d, 0xb3, //0x0000a2a8 .quad -5535494683275008668 + 0xf7, 0x56, 0xbc, 0x93, 0x2b, 0x7e, 0x78, 0x59, //0x0000a2b0 .quad 6447041592208152311 + 0xbd, 0x7e, 0x29, 0x70, 0x24, 0x77, 0xf9, 0xdf, //0x0000a2b8 .quad -2307682335666372931 + 0x5a, 0xb6, 0x55, 0x3c, 0xdb, 0x4e, 0xeb, 0x57, //0x0000a2c0 .quad 6335244004343789146 + 0x36, 0xef, 0x19, 0xc6, 0x76, 0xea, 0xfb, 0x8b, //0x0000a2c8 .quad -8359830487432564938 + 0xf1, 0x23, 0x6b, 0x0b, 0x92, 0x22, 0xe6, 0xed, //0x0000a2d0 .quad -1304317031425039375 + 0x03, 0x6b, 0xa0, 0x77, 0x14, 0xe5, 0xfa, 0xae, //0x0000a2d8 .quad -5838102090863318269 + 0xed, 0xec, 0x45, 0x8e, 0x36, 0xab, 0x5f, 0xe9, //0x0000a2e0 .quad -1630396289281299219 + 0xc4, 0x85, 0x88, 0x95, 0x59, 0x9e, 0xb9, 0xda, //0x0000a2e8 .quad -2685941595151759932 + 0x14, 0xb4, 0xeb, 0x18, 0x02, 0xcb, 0xdb, 0x11, //0x0000a2f0 .quad 1286845328412881940 + 0x9b, 0x53, 0x75, 0xfd, 0xf7, 0x02, 0xb4, 0x88, //0x0000a2f8 .quad -8596242524610931813 + 0x19, 0xa1, 0x26, 0x9f, 0xc2, 0xbd, 0x52, 0xd6, //0x0000a300 .quad -3003129357911285479 + 0x81, 0xa8, 0xd2, 0xfc, 0xb5, 0x03, 0xe1, 0xaa, //0x0000a308 .quad -6133617137336276863 + 0x5f, 0x49, 0xf0, 0x46, 0x33, 0x6d, 0xe7, 0x4b, //0x0000a310 .quad 5469460339465668959 + 0xa2, 0x52, 0x07, 0x7c, 0xa3, 0x44, 0x99, 0xd5, //0x0000a318 .quad -3055335403242958174 + 0xdb, 0x2d, 0x56, 0x0c, 0x40, 0xa4, 0x70, 0x6f, //0x0000a320 .quad 8030098730593431003 + 0xa5, 0x93, 0x84, 0x2d, 0xe6, 0xca, 0x7f, 0x85, //0x0000a328 .quad -8827113654667930715 + 0x52, 0xb9, 0x6b, 0x0f, 0x50, 0xcd, 0x4c, 0xcb, //0x0000a330 .quad -3797434642040374958 + 0x8e, 0xb8, 0xe5, 0xb8, 0x9f, 0xbd, 0xdf, 0xa6, //0x0000a338 .quad -6422206049907525490 + 0xa7, 0xa7, 0x46, 0x13, 0xa4, 0x00, 0x20, 0x7e, //0x0000a340 .quad 9088264752731695015 + 0xb2, 0x26, 0x1f, 0xa7, 0x07, 0xad, 0x97, 0xd0, //0x0000a348 .quad -3416071543957018958 + 0xc8, 0x28, 0x0c, 0x8c, 0x66, 0x00, 0xd4, 0x8e, //0x0000a350 .quad -8154892584824854328 + 0x2f, 0x78, 0x73, 0xc8, 0x24, 0xcc, 0x5e, 0x82, //0x0000a358 .quad -9052573742614218705 + 0xfa, 0x32, 0x0f, 0x2f, 0x80, 0x00, 0x89, 0x72, //0x0000a360 .quad 8253128342678483706 + 0x3b, 0x56, 0x90, 0xfa, 0x2d, 0x7f, 0xf6, 0xa2, //0x0000a368 .quad -6704031159840385477 + 0xb9, 0xff, 0xd2, 0x3a, 0xa0, 0x40, 0x2b, 0x4f, //0x0000a370 .quad 5704724409920716729 + 0xca, 0x6b, 0x34, 0x79, 0xf9, 0x1e, 0xb4, 0xcb, //0x0000a378 .quad -3768352931373093942 + 0xa8, 0xbf, 0x87, 0x49, 0xc8, 0x10, 0xf6, 0xe2, //0x0000a380 .quad -2092466524453879896 + 0xbc, 0x86, 0x81, 0xd7, 0xb7, 0x26, 0xa1, 0xfe, //0x0000a388 .quad -98755145788979524 + 0xc9, 0xd7, 0xf4, 0x2d, 0x7d, 0xca, 0xd9, 0x0d, //0x0000a390 .quad 998051431430019017 + 0x36, 0xf4, 0xb0, 0xe6, 0x32, 0xb8, 0x24, 0x9f, //0x0000a398 .quad -6979250993759194058 + 0xbb, 0x0d, 0x72, 0x79, 0x1c, 0x3d, 0x50, 0x91, //0x0000a3a0 .quad -7975807747567252037 + 0x43, 0x31, 0x5d, 0xa0, 0x3f, 0xe6, 0xed, 0xc6, //0x0000a3a8 .quad -4112377723771604669 + 0x2a, 0x91, 0xce, 0x97, 0x63, 0x4c, 0xa4, 0x75, //0x0000a3b0 .quad 8476984389250486570 + 0x94, 0x7d, 0x74, 0x88, 0xcf, 0x5f, 0xa9, 0xf8, //0x0000a3b8 .quad -528786136287117932 + 0xba, 0x1a, 0xe1, 0x3e, 0xbe, 0xaf, 0x86, 0xc9, //0x0000a3c0 .quad -3925256793573221702 + 0x7c, 0xce, 0x48, 0xb5, 0xe1, 0xdb, 0x69, 0x9b, //0x0000a3c8 .quad -7248020362820530564 + 0x68, 0x61, 0x99, 0xce, 0xad, 0x5b, 0xe8, 0xfb, //0x0000a3d0 .quad -294884973539139224 + 0x1b, 0x02, 0x9b, 0x22, 0xda, 0x52, 0x44, 0xc2, //0x0000a3d8 .quad -4448339435098275301 + 0xc3, 0xb9, 0x3f, 0x42, 0x99, 0x72, 0xe2, 0xfa, //0x0000a3e0 .quad -368606216923924029 + 0xa2, 0xc2, 0x41, 0xab, 0x90, 0x67, 0xd5, 0xf2, //0x0000a3e8 .quad -948738275445456222 + 0x1a, 0xd4, 0x67, 0xc9, 0x9f, 0x87, 0xcd, 0xdc, //0x0000a3f0 .quad -2536221894791146470 + 0xa5, 0x19, 0x09, 0x6b, 0xba, 0x60, 0xc5, 0x97, //0x0000a3f8 .quad -7510490449794491995 + 0x20, 0xc9, 0xc1, 0xbb, 0x87, 0xe9, 0x00, 0x54, //0x0000a400 .quad 6053094668365842720 + 0x0f, 0x60, 0xcb, 0x05, 0xe9, 0xb8, 0xb6, 0xbd, //0x0000a408 .quad -4776427043815727089 + 0x68, 0x3b, 0xb2, 0xaa, 0xe9, 0x23, 0x01, 0x29, //0x0000a410 .quad 2954682317029915496 + 0x13, 0x38, 0x3e, 0x47, 0x23, 0x67, 0x24, 0xed, //0x0000a418 .quad -1358847786342270957 + 0x21, 0x65, 0xaf, 0x0a, 0x72, 0xb6, 0xa0, 0xf9, //0x0000a420 .quad -459166561069996767 + 0x0b, 0xe3, 0x86, 0x0c, 0x76, 0xc0, 0x36, 0x94, //0x0000a428 .quad -7766808894105001205 + 0x69, 0x3e, 0x5b, 0x8d, 0x0e, 0xe4, 0x08, 0xf8, //0x0000a430 .quad -573958201337495959 + 0xce, 0x9b, 0xa8, 0x8f, 0x93, 0x70, 0x44, 0xb9, //0x0000a438 .quad -5096825099203863602 + 0x04, 0x0e, 0xb2, 0x30, 0x12, 0x1d, 0x0b, 0xb6, //0x0000a440 .quad -5329133770099257852 + 0xc2, 0xc2, 0x92, 0x73, 0xb8, 0x8c, 0x95, 0xe7, //0x0000a448 .quad -1759345355577441598 + 0xc2, 0x48, 0x6f, 0x5e, 0x2b, 0xf2, 0xc6, 0xb1, //0x0000a450 .quad -5636551615525730110 + 0xb9, 0xb9, 0x3b, 0x48, 0xf3, 0x77, 0xbd, 0x90, //0x0000a458 .quad -8017119874876982855 + 0xf3, 0x1a, 0x0b, 0x36, 0xb6, 0xae, 0x38, 0x1e, //0x0000a460 .quad 2177682517447613171 + 0x28, 0xa8, 0x4a, 0x1a, 0xf0, 0xd5, 0xec, 0xb4, //0x0000a468 .quad -5409713825168840664 + 0xb0, 0xe1, 0x8d, 0xc3, 0x63, 0xda, 0xc6, 0x25, //0x0000a470 .quad 2722103146809516464 + 0x32, 0x52, 0xdd, 0x20, 0x6c, 0x0b, 0x28, 0xe2, //0x0000a478 .quad -2150456263033662926 + 0x0e, 0xad, 0x38, 0x5a, 0x7e, 0x48, 0x9c, 0x57, //0x0000a480 .quad 6313000485183335694 + 0x5f, 0x53, 0x8a, 0x94, 0x23, 0x07, 0x59, 0x8d, //0x0000a488 .quad -8261564192037121185 + 0x51, 0xd8, 0xc6, 0xf0, 0x9d, 0x5a, 0x83, 0x2d, //0x0000a490 .quad 3279564588051781713 + 0x37, 0xe8, 0xac, 0x79, 0xec, 0x48, 0xaf, 0xb0, //0x0000a498 .quad -5715269221619013577 + 0x65, 0x8e, 0xf8, 0x6c, 0x45, 0x31, 0xe4, 0xf8, //0x0000a4a0 .quad -512230283362660763 + 0x44, 0x22, 0x18, 0x98, 0x27, 0x1b, 0xdb, 0xdc, //0x0000a4a8 .quad -2532400508596379068 + 0xff, 0x58, 0x1b, 0x64, 0xcb, 0x9e, 0x8e, 0x1b, //0x0000a4b0 .quad 1985699082112030975 + 0x6b, 0x15, 0x0f, 0xbf, 0xf8, 0xf0, 0x08, 0x8a, //0x0000a4b8 .quad -8500279345513818773 + 0x3f, 0x2f, 0x22, 0x3d, 0x7e, 0x46, 0x72, 0xe2, //0x0000a4c0 .quad -2129562165787349185 + 0xc5, 0xda, 0xd2, 0xee, 0x36, 0x2d, 0x8b, 0xac, //0x0000a4c8 .quad -6013663163464885563 + 0x0f, 0xbb, 0x6a, 0xcc, 0x1d, 0xd8, 0x0e, 0x5b, //0x0000a4d0 .quad 6561419329620589327 + 0x77, 0x91, 0x87, 0xaa, 0x84, 0xf8, 0xad, 0xd7, //0x0000a4d8 .quad -2905392935903719049 + 0xe9, 0xb4, 0xc2, 0x9f, 0x12, 0x47, 0xe9, 0x98, //0x0000a4e0 .quad -7428327965055601431 + 0xea, 0xba, 0x94, 0xea, 0x52, 0xbb, 0xcc, 0x86, //0x0000a4e8 .quad -8733399612580906262 + 0x24, 0x62, 0xb3, 0x47, 0xd7, 0x98, 0x23, 0x3f, //0x0000a4f0 .quad 4549648098962661924 + 0xa5, 0xe9, 0x39, 0xa5, 0x27, 0xea, 0x7f, 0xa8, //0x0000a4f8 .quad -6305063497298744923 + 0xad, 0x3a, 0xa0, 0x19, 0x0d, 0x7f, 0xec, 0x8e, //0x0000a500 .quad -8147997931578836307 + 0x0e, 0x64, 0x88, 0x8e, 0xb1, 0xe4, 0x9f, 0xd2, //0x0000a508 .quad -3269643353196043250 + 0xac, 0x24, 0x04, 0x30, 0x68, 0xcf, 0x53, 0x19, //0x0000a510 .quad 1825030320404309164 + 0x89, 0x3e, 0x15, 0xf9, 0xee, 0xee, 0xa3, 0x83, //0x0000a518 .quad -8961056123388608887 + 0xd7, 0x2d, 0x05, 0x3c, 0x42, 0xc3, 0xa8, 0x5f, //0x0000a520 .quad 6892973918932774359 + 0x2b, 0x8e, 0x5a, 0xb7, 0xaa, 0xea, 0x8c, 0xa4, //0x0000a528 .quad -6589634135808373205 + 0x4d, 0x79, 0x06, 0xcb, 0x12, 0xf4, 0x92, 0x37, //0x0000a530 .quad 4004531380238580045 + 0xb6, 0x31, 0x31, 0x65, 0x55, 0x25, 0xb0, 0xcd, //0x0000a538 .quad -3625356651333078602 + 0xd0, 0x0b, 0xe4, 0xbe, 0x8b, 0xd8, 0xbb, 0xe2, //0x0000a540 .quad -2108853905778275376 + 0x11, 0xbf, 0x3e, 0x5f, 0x55, 0x17, 0x8e, 0x80, //0x0000a548 .quad -9183376934724255983 + 0xc4, 0x0e, 0x9d, 0xae, 0xae, 0xce, 0x6a, 0x5b, //0x0000a550 .quad 6587304654631931588 + 0xd6, 0x6e, 0x0e, 0xb7, 0x2a, 0x9d, 0xb1, 0xa0, //0x0000a558 .quad -6867535149977932074 + 0x75, 0x52, 0x44, 0x5a, 0x5a, 0x82, 0x45, 0xf2, //0x0000a560 .quad -989241218564861323 + 0x8b, 0x0a, 0xd2, 0x64, 0x75, 0x04, 0xde, 0xc8, //0x0000a568 .quad -3972732919045027189 + 0x12, 0x67, 0xd5, 0xf0, 0xf0, 0xe2, 0xd6, 0xee, //0x0000a570 .quad -1236551523206076654 + 0x2e, 0x8d, 0x06, 0xbe, 0x92, 0x85, 0x15, 0xfb, //0x0000a578 .quad -354230130378896082 + 0x6b, 0x60, 0x85, 0x96, 0xd6, 0x4d, 0x46, 0x55, //0x0000a580 .quad 6144684325637283947 + 0x3d, 0x18, 0xc4, 0xb6, 0x7b, 0x73, 0xed, 0x9c, //0x0000a588 .quad -7138922859127891907 + 0x86, 0xb8, 0x26, 0x3c, 0x4c, 0xe1, 0x97, 0xaa, //0x0000a590 .quad -6154202648235558778 + 0x4c, 0x1e, 0x75, 0xa4, 0x5a, 0xd0, 0x28, 0xc4, //0x0000a598 .quad -4311967555482476980 + 0xa8, 0x66, 0x30, 0x4b, 0x9f, 0xd9, 0x3d, 0xd5, //0x0000a5a0 .quad -3081067291867060568 + 0xdf, 0x65, 0x92, 0x4d, 0x71, 0x04, 0x33, 0xf5, //0x0000a5a8 .quad -778273425925708321 + 0x29, 0x40, 0xfe, 0x8e, 0x03, 0xa8, 0x46, 0xe5, //0x0000a5b0 .quad -1925667057416912855 + 0xab, 0x7f, 0x7b, 0xd0, 0xc6, 0xe2, 0x3f, 0x99, //0x0000a5b8 .quad -7403949918844649557 + 0x33, 0xd0, 0xbd, 0x72, 0x04, 0x52, 0x98, 0xde, //0x0000a5c0 .quad -2407083821771141069 + 0x96, 0x5f, 0x9a, 0x84, 0x78, 0xdb, 0x8f, 0xbf, //0x0000a5c8 .quad -4643251380128424042 + 0x40, 0x44, 0x6d, 0x8f, 0x85, 0x66, 0x3e, 0x96, //0x0000a5d0 .quad -7620540795641314240 + 0x7c, 0xf7, 0xc0, 0xa5, 0x56, 0xd2, 0x73, 0xef, //0x0000a5d8 .quad -1192378206733142148 + 0xa8, 0x4a, 0xa4, 0x79, 0x13, 0x00, 0xe7, 0xdd, //0x0000a5e0 .quad -2456994988062127448 + 0xad, 0x9a, 0x98, 0x27, 0x76, 0x63, 0xa8, 0x95, //0x0000a5e8 .quad -7662765406849295699 + 0x52, 0x5d, 0x0d, 0x58, 0x18, 0xc0, 0x60, 0x55, //0x0000a5f0 .quad 6152128301777116498 + 0x59, 0xc1, 0x7e, 0xb1, 0x53, 0x7c, 0x12, 0xbb, //0x0000a5f8 .quad -4966770740134231719 + 0xa6, 0xb4, 0x10, 0x6e, 0x1e, 0xf0, 0xb8, 0xaa, //0x0000a600 .quad -6144897678060768090 + 0xaf, 0x71, 0xde, 0x9d, 0x68, 0x1b, 0xd7, 0xe9, //0x0000a608 .quad -1596777406740401745 + 0xe8, 0x70, 0xca, 0x04, 0x13, 0x96, 0xb3, 0xca, //0x0000a610 .quad -3840561048787980056 + 0x0d, 0x07, 0xab, 0x62, 0x21, 0x71, 0x26, 0x92, //0x0000a618 .quad -7915514906853832947 + 0x22, 0x0d, 0xfd, 0xc5, 0x97, 0x7b, 0x60, 0x3d, //0x0000a620 .quad 4422670725869800738 + 0xd1, 0xc8, 0x55, 0xbb, 0x69, 0x0d, 0xb0, 0xb6, //0x0000a628 .quad -5282707615139903279 + 0x6a, 0x50, 0x7c, 0xb7, 0x7d, 0x9a, 0xb8, 0x8c, //0x0000a630 .quad -8306719647944912790 + 0x05, 0x3b, 0x2b, 0x2a, 0xc4, 0x10, 0x5c, 0xe4, //0x0000a638 .quad -1991698500497491195 + 0x42, 0xb2, 0xad, 0x92, 0x8e, 0x60, 0xf3, 0x77, //0x0000a640 .quad 8643358275316593218 + 0xe3, 0x04, 0x5b, 0x9a, 0x7a, 0x8a, 0xb9, 0x8e, //0x0000a648 .quad -8162340590452013853 + 0xd3, 0x1e, 0x59, 0x37, 0xb2, 0x38, 0xf0, 0x55, //0x0000a650 .quad 6192511825718353619 + 0x1c, 0xc6, 0xf1, 0x40, 0x19, 0xed, 0x67, 0xb2, //0x0000a658 .quad -5591239719637629412 + 0x88, 0x66, 0x2f, 0xc5, 0xde, 0x46, 0x6c, 0x6b, //0x0000a660 .quad 7740639782147942024 + 0xa3, 0x37, 0x2e, 0x91, 0x5f, 0xe8, 0x01, 0xdf, //0x0000a668 .quad -2377363631119648861 + 0x15, 0xa0, 0x3d, 0x3b, 0x4b, 0xac, 0x23, 0x23, //0x0000a670 .quad 2532056854628769813 + 0xc6, 0xe2, 0xbc, 0xba, 0x3b, 0x31, 0x61, 0x8b, //0x0000a678 .quad -8403381297090862394 + 0x1a, 0x08, 0x0d, 0x0a, 0x5e, 0x97, 0xec, 0xab, //0x0000a680 .quad -6058300968568813542 + 0x77, 0x1b, 0x6c, 0xa9, 0x8a, 0x7d, 0x39, 0xae, //0x0000a688 .quad -5892540602936190089 + 0x21, 0x4a, 0x90, 0x8c, 0x35, 0xbd, 0xe7, 0x96, //0x0000a690 .quad -7572876210711016927 + 0x55, 0x22, 0xc7, 0x53, 0xed, 0xdc, 0xc7, 0xd9, //0x0000a698 .quad -2753989735242849707 + 0x54, 0x2e, 0xda, 0x77, 0x41, 0xd6, 0x50, 0x7e, //0x0000a6a0 .quad 9102010423587778132 + 0x75, 0x75, 0x5c, 0x54, 0x14, 0xea, 0x1c, 0x88, //0x0000a6a8 .quad -8638772612167862923 + 0xe9, 0xb9, 0xd0, 0xd5, 0xd1, 0x0b, 0xe5, 0xdd, //0x0000a6b0 .quad -2457545025797441047 + 0xd2, 0x92, 0x73, 0x69, 0x99, 0x24, 0x24, 0xaa, //0x0000a6b8 .quad -6186779746782440750 + 0x64, 0xe8, 0x44, 0x4b, 0xc6, 0x4e, 0x5e, 0x95, //0x0000a6c0 .quad -7683617300674189212 + 0x87, 0x77, 0xd0, 0xc3, 0xbf, 0x2d, 0xad, 0xd4, //0x0000a6c8 .quad -3121788665050663033 + 0x3e, 0x11, 0x0b, 0xef, 0x3b, 0xf1, 0x5a, 0xbd, //0x0000a6d0 .quad -4802260812921368258 + 0xb4, 0x4a, 0x62, 0xda, 0x97, 0x3c, 0xec, 0x84, //0x0000a6d8 .quad -8868646943297746252 + 0x8e, 0xd5, 0xcd, 0xea, 0x8a, 0xad, 0xb1, 0xec, //0x0000a6e0 .quad -1391139997724322418 + 0x61, 0xdd, 0xfa, 0xd0, 0xbd, 0x4b, 0x27, 0xa6, //0x0000a6e8 .quad -6474122660694794911 + 0xf2, 0x4a, 0x81, 0xa5, 0xed, 0x18, 0xde, 0x67, //0x0000a6f0 .quad 7484447039699372786 + 0xba, 0x94, 0x39, 0x45, 0xad, 0x1e, 0xb1, 0xcf, //0x0000a6f8 .quad -3480967307441105734 + 0xd7, 0xce, 0x70, 0x87, 0x94, 0xcf, 0xea, 0x80, //0x0000a700 .quad -9157278655470055721 + 0xf4, 0xfc, 0x43, 0x4b, 0x2c, 0xb3, 0xce, 0x81, //0x0000a708 .quad -9093133594791772940 + 0x8d, 0x02, 0x4d, 0xa9, 0x79, 0x83, 0x25, 0xa1, //0x0000a710 .quad -6834912300910181747 + 0x31, 0xfc, 0x14, 0x5e, 0xf7, 0x5f, 0x42, 0xa2, //0x0000a718 .quad -6754730975062328271 + 0x30, 0x43, 0xa0, 0x13, 0x58, 0xe4, 0x6e, 0x09, //0x0000a720 .quad 679731660717048624 + 0x3e, 0x3b, 0x9a, 0x35, 0xf5, 0xf7, 0xd2, 0xca, //0x0000a728 .quad -3831727700400522434 + 0xfc, 0x53, 0x88, 0x18, 0x6e, 0x9d, 0xca, 0x8b, //0x0000a730 .quad -8373707460958465028 + 0x0d, 0xca, 0x00, 0x83, 0xf2, 0xb5, 0x87, 0xfd, //0x0000a738 .quad -177973607073265139 + 0x7d, 0x34, 0x55, 0xcf, 0x64, 0xa2, 0x5e, 0x77, //0x0000a740 .quad 8601490892183123069 + 0x48, 0x7e, 0xe0, 0x91, 0xb7, 0xd1, 0x74, 0x9e, //0x0000a748 .quad -7028762532061872568 + 0x9d, 0x81, 0x2a, 0x03, 0xfe, 0x4a, 0x36, 0x95, //0x0000a750 .quad -7694880458480647779 + 0xda, 0x9d, 0x58, 0x76, 0x25, 0x06, 0x12, 0xc6, //0x0000a758 .quad -4174267146649952806 + 0x04, 0x22, 0xf5, 0x83, 0xbd, 0xdd, 0x83, 0x3a, //0x0000a760 .quad 4216457482181353988 + 0x51, 0xc5, 0xee, 0xd3, 0xae, 0x87, 0x96, 0xf7, //0x0000a768 .quad -606147914885053103 + 0x42, 0x35, 0x79, 0x72, 0x96, 0x6a, 0x92, 0xc4, //0x0000a770 .quad -4282243101277735614 + 0x52, 0x3b, 0x75, 0x44, 0xcd, 0x14, 0xbe, 0x9a, //0x0000a778 .quad -7296371474444240046 + 0x93, 0x82, 0x17, 0x0f, 0x3c, 0x05, 0xb7, 0x75, //0x0000a780 .quad 8482254178684994195 + 0x27, 0x8a, 0x92, 0x95, 0x00, 0x9a, 0x6d, 0xc1, //0x0000a788 .quad -4508778324627912153 + 0x38, 0x63, 0xdd, 0x12, 0x8b, 0xc6, 0x24, 0x53, //0x0000a790 .quad 5991131704928854840 + 0xb1, 0x2c, 0xf7, 0xba, 0x80, 0x00, 0xc9, 0xf1, //0x0000a798 .quad -1024286887357502287 + 0x03, 0x5e, 0xca, 0xeb, 0x16, 0xfc, 0xf6, 0xd3, //0x0000a7a0 .quad -3173071712060547581 + 0xee, 0x7b, 0xda, 0x74, 0x50, 0xa0, 0x1d, 0x97, //0x0000a7a8 .quad -7557708332239520786 + 0x84, 0xf5, 0xbc, 0xa6, 0x1c, 0xbb, 0xf4, 0x88, //0x0000a7b0 .quad -8578025658503072380 + 0xea, 0x1a, 0x11, 0x92, 0x64, 0x08, 0xe5, 0xbc, //0x0000a7b8 .quad -4835449396872013078 + 0xe5, 0x32, 0x6c, 0xd0, 0xe3, 0xe9, 0x31, 0x2b, //0x0000a7c0 .quad 3112525982153323237 + 0xa5, 0x61, 0x95, 0xb6, 0x7d, 0x4a, 0x1e, 0xec, //0x0000a7c8 .quad -1432625727662628443 + 0xcf, 0x9f, 0x43, 0x62, 0x2e, 0x32, 0xff, 0x3a, //0x0000a7d0 .quad 4251171748059520975 + 0x07, 0x5d, 0x1d, 0x92, 0x8e, 0xee, 0x92, 0x93, //0x0000a7d8 .quad -7812920107430224633 + 0xc2, 0x87, 0xd4, 0xfa, 0xb9, 0xfe, 0xbe, 0x09, //0x0000a7e0 .quad 702278666647013314 + 0x49, 0xb4, 0xa4, 0x36, 0x32, 0xaa, 0x77, 0xb8, //0x0000a7e8 .quad -5154464115860392887 + 0xb3, 0xa9, 0x89, 0x79, 0x68, 0xbe, 0x2e, 0x4c, //0x0000a7f0 .quad 5489534351736154547 + 0x5b, 0xe1, 0x4d, 0xc4, 0xbe, 0x94, 0x95, 0xe6, //0x0000a7f8 .quad -1831394126398103205 + 0x10, 0x0a, 0xf6, 0x4b, 0x01, 0x37, 0x9d, 0x0f, //0x0000a800 .quad 1125115960621402640 + 0xd9, 0xac, 0xb0, 0x3a, 0xf7, 0x7c, 0x1d, 0x90, //0x0000a808 .quad -8062150356639896359 + 0x94, 0x8c, 0xf3, 0x9e, 0xc1, 0x84, 0x84, 0x53, //0x0000a810 .quad 6018080969204141204 + 0x0f, 0xd8, 0x5c, 0x09, 0x35, 0xdc, 0x24, 0xb4, //0x0000a818 .quad -5466001927372482545 + 0xb9, 0x6f, 0xb0, 0x06, 0xf2, 0xa5, 0x65, 0x28, //0x0000a820 .quad 2910915193077788601 + 0x13, 0x0e, 0xb4, 0x4b, 0x42, 0x13, 0x2e, 0xe1, //0x0000a828 .quad -2220816390788215277 + 0xd3, 0x45, 0x2e, 0x44, 0xb7, 0x87, 0x3f, 0xf9, //0x0000a830 .quad -486521013540076077 + 0xcb, 0x88, 0x50, 0x6f, 0x09, 0xcc, 0xbc, 0x8c, //0x0000a838 .quad -8305539271883716405 + 0x48, 0xd7, 0x39, 0x15, 0xa5, 0x69, 0x8f, 0xf7, //0x0000a840 .quad -608151266925095096 + 0xfe, 0xaa, 0x24, 0xcb, 0x0b, 0xff, 0xeb, 0xaf, //0x0000a848 .quad -5770238071427257602 + 0x1b, 0x4d, 0x88, 0x5a, 0x0e, 0x44, 0x73, 0xb5, //0x0000a850 .quad -5371875102083756773 + 0xbe, 0xd5, 0xed, 0xbd, 0xce, 0xfe, 0xe6, 0xdb, //0x0000a858 .quad -2601111570856684098 + 0x30, 0x30, 0x95, 0xf8, 0x88, 0x0a, 0x68, 0x31, //0x0000a860 .quad 3560107088838733872 + 0x97, 0xa5, 0xb4, 0x36, 0x41, 0x5f, 0x70, 0x89, //0x0000a868 .quad -8543223759426509417 + 0x3d, 0x7c, 0xba, 0x36, 0x2b, 0x0d, 0xc2, 0xfd, //0x0000a870 .quad -161552157378970563 + 0xfc, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x0000a878 .quad -6067343680855748868 + 0x4c, 0x1b, 0x69, 0x04, 0x76, 0x90, 0x32, 0x3d, //0x0000a880 .quad 4409745821703674700 + 0xbc, 0x42, 0x7a, 0xe5, 0xd5, 0x94, 0xbf, 0xd6, //0x0000a888 .quad -2972493582642298180 + 0x0f, 0xb1, 0xc1, 0xc2, 0x49, 0x9a, 0x3f, 0xa6, //0x0000a890 .quad -6467280898289979121 + 0xb5, 0x69, 0x6c, 0xaf, 0x05, 0xbd, 0x37, 0x86, //0x0000a898 .quad -8775337516792518219 + 0x53, 0x1d, 0x72, 0x33, 0xdc, 0x80, 0xcf, 0x0f, //0x0000a8a0 .quad 1139270913992301907 + 0x23, 0x84, 0x47, 0x1b, 0x47, 0xac, 0xc5, 0xa7, //0x0000a8a8 .quad -6357485877563259869 + 0xa8, 0xa4, 0x4e, 0x40, 0x13, 0x61, 0xc3, 0xd3, //0x0000a8b0 .quad -3187597375937010520 + 0x2b, 0x65, 0x19, 0xe2, 0x58, 0x17, 0xb7, 0xd1, //0x0000a8b8 .quad -3335171328526686933 + 0xe9, 0x26, 0x31, 0x08, 0xac, 0x1c, 0x5a, 0x64, //0x0000a8c0 .quad 7231123676894144233 + 0x3b, 0xdf, 0x4f, 0x8d, 0x97, 0x6e, 0x12, 0x83, //0x0000a8c8 .quad -9002011107970261189 + 0xa3, 0x70, 0x3d, 0x0a, 0xd7, 0xa3, 0x70, 0x3d, //0x0000a8d0 .quad 4427218577690292387 + 0x0a, 0xd7, 0xa3, 0x70, 0x3d, 0x0a, 0xd7, 0xa3, //0x0000a8d8 .quad -6640827866535438582 + 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x0000a8e0 QUAD $0xcccccccccccccccc; QUAD $0xcccccccccccccccc // .space 16, '\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000a8f0 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x0000a8f8 .quad -9223372036854775808 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000a900 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, //0x0000a908 .quad -6917529027641081856 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000a910 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc8, //0x0000a918 .quad -4035225266123964416 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000a920 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, //0x0000a928 .quad -432345564227567616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000a930 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x9c, //0x0000a938 .quad -7187745005283311616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000a940 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0xc3, //0x0000a948 .quad -4372995238176751616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000a950 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0xf4, //0x0000a958 .quad -854558029293551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000a960 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x96, 0x98, //0x0000a968 .quad -7451627795949551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000a970 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xbc, 0xbe, //0x0000a978 .quad -4702848726509551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000a980 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x6b, 0xee, //0x0000a988 .quad -1266874889709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000a990 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf9, 0x02, 0x95, //0x0000a998 .quad -7709325833709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000a9a0 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x40, 0xb7, 0x43, 0xba, //0x0000a9a8 .quad -5024971273709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000a9b0 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x10, 0xa5, 0xd4, 0xe8, //0x0000a9b8 .quad -1669528073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000a9c0 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x2a, 0xe7, 0x84, 0x91, //0x0000a9c8 .quad -7960984073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000a9d0 .quad 0 + 0x00, 0x00, 0x00, 0x80, 0xf4, 0x20, 0xe6, 0xb5, //0x0000a9d8 .quad -5339544073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000a9e0 .quad 0 + 0x00, 0x00, 0x00, 0xa0, 0x31, 0xa9, 0x5f, 0xe3, //0x0000a9e8 .quad -2062744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000a9f0 .quad 0 + 0x00, 0x00, 0x00, 0x04, 0xbf, 0xc9, 0x1b, 0x8e, //0x0000a9f8 .quad -8206744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000aa00 .quad 0 + 0x00, 0x00, 0x00, 0xc5, 0x2e, 0xbc, 0xa2, 0xb1, //0x0000aa08 .quad -5646744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000aa10 .quad 0 + 0x00, 0x00, 0x40, 0x76, 0x3a, 0x6b, 0x0b, 0xde, //0x0000aa18 .quad -2446744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000aa20 .quad 0 + 0x00, 0x00, 0xe8, 0x89, 0x04, 0x23, 0xc7, 0x8a, //0x0000aa28 .quad -8446744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000aa30 .quad 0 + 0x00, 0x00, 0x62, 0xac, 0xc5, 0xeb, 0x78, 0xad, //0x0000aa38 .quad -5946744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000aa40 .quad 0 + 0x00, 0x80, 0x7a, 0x17, 0xb7, 0x26, 0xd7, 0xd8, //0x0000aa48 .quad -2821744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000aa50 .quad 0 + 0x00, 0x90, 0xac, 0x6e, 0x32, 0x78, 0x86, 0x87, //0x0000aa58 .quad -8681119073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000aa60 .quad 0 + 0x00, 0xb4, 0x57, 0x0a, 0x3f, 0x16, 0x68, 0xa9, //0x0000aa68 .quad -6239712823709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000aa70 .quad 0 + 0x00, 0xa1, 0xed, 0xcc, 0xce, 0x1b, 0xc2, 0xd3, //0x0000aa78 .quad -3187955011209551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000aa80 .quad 0 + 0xa0, 0x84, 0x14, 0x40, 0x61, 0x51, 0x59, 0x84, //0x0000aa88 .quad -8910000909647051616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000aa90 .quad 0 + 0xc8, 0xa5, 0x19, 0x90, 0xb9, 0xa5, 0x6f, 0xa5, //0x0000aa98 .quad -6525815118631426616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000aaa0 .quad 0 + 0x3a, 0x0f, 0x20, 0xf4, 0x27, 0x8f, 0xcb, 0xce, //0x0000aaa8 .quad -3545582879861895366 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, //0x0000aab0 .quad 4611686018427387904 + 0x84, 0x09, 0x94, 0xf8, 0x78, 0x39, 0x3f, 0x81, //0x0000aab8 .quad -9133518327554766460 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, //0x0000aac0 .quad 5764607523034234880 + 0xe5, 0x0b, 0xb9, 0x36, 0xd7, 0x07, 0x8f, 0xa1, //0x0000aac8 .quad -6805211891016070171 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa4, //0x0000aad0 .quad -6629298651489370112 + 0xde, 0x4e, 0x67, 0x04, 0xcd, 0xc9, 0xf2, 0xc9, //0x0000aad8 .quad -3894828845342699810 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4d, //0x0000aae0 .quad 5548434740920451072 + 0x96, 0x22, 0x81, 0x45, 0x40, 0x7c, 0x6f, 0xfc, //0x0000aae8 .quad -256850038250986858 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xf0, //0x0000aaf0 .quad -1143914305352105984 + 0x9d, 0xb5, 0x70, 0x2b, 0xa8, 0xad, 0xc5, 0x9d, //0x0000aaf8 .quad -7078060301547948643 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x6c, //0x0000ab00 .quad 7793479155164643328 + 0x05, 0xe3, 0x4c, 0x36, 0x12, 0x19, 0x37, 0xc5, //0x0000ab08 .quad -4235889358507547899 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0xc7, //0x0000ab10 .quad -4093209111326359552 + 0xc6, 0x1b, 0xe0, 0xc3, 0x56, 0xdf, 0x84, 0xf6, //0x0000ab18 .quad -683175679707046970 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7f, 0x3c, //0x0000ab20 .quad 4359273333062107136 + 0x5c, 0x11, 0x6c, 0x3a, 0x96, 0x0b, 0x13, 0x9a, //0x0000ab28 .quad -7344513827457986212 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x9f, 0x4b, //0x0000ab30 .quad 5449091666327633920 + 0xb3, 0x15, 0x07, 0xc9, 0x7b, 0xce, 0x97, 0xc0, //0x0000ab38 .quad -4568956265895094861 + 0x00, 0x00, 0x00, 0x00, 0x00, 0xd4, 0x86, 0x1e, //0x0000ab40 .quad 2199678564482154496 + 0x20, 0xdb, 0x48, 0xbb, 0x1a, 0xc2, 0xbd, 0xf0, //0x0000ab48 .quad -1099509313941480672 + 0x00, 0x00, 0x00, 0x00, 0x80, 0x44, 0x14, 0x13, //0x0000ab50 .quad 1374799102801346560 + 0xf4, 0x88, 0x0d, 0xb5, 0x50, 0x99, 0x76, 0x96, //0x0000ab58 .quad -7604722348854507276 + 0x00, 0x00, 0x00, 0x00, 0xa0, 0x55, 0xd9, 0x17, //0x0000ab60 .quad 1718498878501683200 + 0x31, 0xeb, 0x50, 0xe2, 0xa4, 0x3f, 0x14, 0xbc, //0x0000ab68 .quad -4894216917640746191 + 0x00, 0x00, 0x00, 0x00, 0x08, 0xab, 0xcf, 0x5d, //0x0000ab70 .quad 6759809616554491904 + 0xfd, 0x25, 0xe5, 0x1a, 0x8e, 0x4f, 0x19, 0xeb, //0x0000ab78 .quad -1506085128623544835 + 0x00, 0x00, 0x00, 0x00, 0xe5, 0xca, 0xa1, 0x5a, //0x0000ab80 .quad 6530724019560251392 + 0xbe, 0x37, 0xcf, 0xd0, 0xb8, 0xd1, 0xef, 0x92, //0x0000ab88 .quad -7858832233030797378 + 0x00, 0x00, 0x00, 0x40, 0x9e, 0x3d, 0x4a, 0xf1, //0x0000ab90 .quad -1059967012404461568 + 0xad, 0x05, 0x03, 0x05, 0x27, 0xc6, 0xab, 0xb7, //0x0000ab98 .quad -5211854272861108819 + 0x00, 0x00, 0x00, 0xd0, 0x05, 0xcd, 0x9c, 0x6d, //0x0000aba0 .quad 7898413271349198848 + 0x19, 0xc7, 0x43, 0xc6, 0xb0, 0xb7, 0x96, 0xe5, //0x0000aba8 .quad -1903131822648998119 + 0x00, 0x00, 0x00, 0xa2, 0x23, 0x00, 0x82, 0xe4, //0x0000abb0 .quad -1981020733047832576 + 0x6f, 0x5c, 0xea, 0x7b, 0xce, 0x32, 0x7e, 0x8f, //0x0000abb8 .quad -8106986416796705681 + 0x00, 0x00, 0x80, 0x8a, 0x2c, 0x80, 0xa2, 0xdd, //0x0000abc0 .quad -2476275916309790720 + 0x8b, 0xf3, 0xe4, 0x1a, 0x82, 0xbf, 0x5d, 0xb3, //0x0000abc8 .quad -5522047002568494197 + 0x00, 0x00, 0x20, 0xad, 0x37, 0x20, 0x0b, 0xd5, //0x0000abd0 .quad -3095344895387238400 + 0x6e, 0x30, 0x9e, 0xa1, 0x62, 0x2f, 0x35, 0xe0, //0x0000abd8 .quad -2290872734783229842 + 0x00, 0x00, 0x34, 0xcc, 0x22, 0xf4, 0x26, 0x45, //0x0000abe0 .quad 4982938468024057856 + 0x45, 0xde, 0x02, 0xa5, 0x9d, 0x3d, 0x21, 0x8c, //0x0000abe8 .quad -8349324486880600507 + 0x00, 0x00, 0x41, 0x7f, 0x2b, 0xb1, 0x70, 0x96, //0x0000abf0 .quad -7606384970252091392 + 0xd6, 0x95, 0x43, 0x0e, 0x05, 0x8d, 0x29, 0xaf, //0x0000abf8 .quad -5824969590173362730 + 0x00, 0x40, 0x11, 0x5f, 0x76, 0xdd, 0x0c, 0x3c, //0x0000ac00 .quad 4327076842467049472 + 0x4c, 0x7b, 0xd4, 0x51, 0x46, 0xf0, 0xf3, 0xda, //0x0000ac08 .quad -2669525969289315508 + 0x00, 0xc8, 0x6a, 0xfb, 0x69, 0x0a, 0x88, 0xa5, //0x0000ac10 .quad -6518949010312869888 + 0x0f, 0xcd, 0x24, 0xf3, 0x2b, 0x76, 0xd8, 0x88, //0x0000ac18 .quad -8585982758446904049 + 0x00, 0x7a, 0x45, 0x7a, 0x04, 0x0d, 0xea, 0x8e, //0x0000ac20 .quad -8148686262891087360 + 0x53, 0x00, 0xee, 0xef, 0xb6, 0x93, 0x0e, 0xab, //0x0000ac28 .quad -6120792429631242157 + 0x80, 0xd8, 0xd6, 0x98, 0x45, 0x90, 0xa4, 0x72, //0x0000ac30 .quad 8260886245095692416 + 0x68, 0x80, 0xe9, 0xab, 0xa4, 0x38, 0xd2, 0xd5, //0x0000ac38 .quad -3039304518611664792 + 0x50, 0x47, 0x86, 0x7f, 0x2b, 0xda, 0xa6, 0x47, //0x0000ac40 .quad 5163053903184807760 + 0x41, 0xf0, 0x71, 0xeb, 0x66, 0x63, 0xa3, 0x85, //0x0000ac48 .quad -8817094351773372351 + 0x24, 0xd9, 0x67, 0x5f, 0xb6, 0x90, 0x90, 0x99, //0x0000ac50 .quad -7381240676301154012 + 0x51, 0x6c, 0x4e, 0xa6, 0x40, 0x3c, 0x0c, 0xa7, //0x0000ac58 .quad -6409681921289327535 + 0x6d, 0xcf, 0x41, 0xf7, 0xe3, 0xb4, 0xf4, 0xff, //0x0000ac60 .quad -3178808521666707 + 0x65, 0x07, 0xe2, 0xcf, 0x50, 0x4b, 0xcf, 0xd0, //0x0000ac68 .quad -3400416383184271515 + 0xa4, 0x21, 0x89, 0x7a, 0x0e, 0xf1, 0xf8, 0xbf, //0x0000ac70 .quad -4613672773753429596 + 0x9f, 0x44, 0xed, 0x81, 0x12, 0x8f, 0x81, 0x82, //0x0000ac78 .quad -9042789267131251553 + 0x0d, 0x6a, 0x2b, 0x19, 0x52, 0x2d, 0xf7, 0xaf, //0x0000ac80 .quad -5767090967191786995 + 0xc7, 0x95, 0x68, 0x22, 0xd7, 0xf2, 0x21, 0xa3, //0x0000ac88 .quad -6691800565486676537 + 0x90, 0x44, 0x76, 0x9f, 0xa6, 0xf8, 0xf4, 0x9b, //0x0000ac90 .quad -7208863708989733744 + 0x39, 0xbb, 0x02, 0xeb, 0x8c, 0x6f, 0xea, 0xcb, //0x0000ac98 .quad -3753064688430957767 + 0xb4, 0xd5, 0x53, 0x47, 0xd0, 0x36, 0xf2, 0x02, //0x0000aca0 .quad 212292400617608628 + 0x08, 0x6a, 0xc3, 0x25, 0x70, 0x0b, 0xe5, 0xfe, //0x0000aca8 .quad -79644842111309304 + 0x90, 0x65, 0x94, 0x2c, 0x42, 0x62, 0xd7, 0x01, //0x0000acb0 .quad 132682750386005392 + 0x45, 0x22, 0x9a, 0x17, 0x26, 0x27, 0x4f, 0x9f, //0x0000acb8 .quad -6967307053960650171 + 0xf5, 0x7e, 0xb9, 0xb7, 0xd2, 0x3a, 0x4d, 0x42, //0x0000acc0 .quad 4777539456409894645 + 0xd6, 0xaa, 0x80, 0x9d, 0xef, 0xf0, 0x22, 0xc7, //0x0000acc8 .quad -4097447799023424810 + 0xb2, 0xde, 0xa7, 0x65, 0x87, 0x89, 0xe0, 0xd2, //0x0000acd0 .quad -3251447716342407502 + 0x8b, 0xd5, 0xe0, 0x84, 0x2b, 0xad, 0xeb, 0xf8, //0x0000acd8 .quad -510123730351893109 + 0x2f, 0xeb, 0x88, 0x9f, 0xf4, 0x55, 0xcc, 0x63, //0x0000ace0 .quad 7191217214140771119 + 0x77, 0x85, 0x0c, 0x33, 0x3b, 0x4c, 0x93, 0x9b, //0x0000ace8 .quad -7236356359111015049 + 0xfb, 0x25, 0x6b, 0xc7, 0x71, 0x6b, 0xbf, 0x3c, //0x0000acf0 .quad 4377335499248575995 + 0xd5, 0xa6, 0xcf, 0xff, 0x49, 0x1f, 0x78, 0xc2, //0x0000acf8 .quad -4433759430461380907 + 0x7a, 0xef, 0x45, 0x39, 0x4e, 0x46, 0xef, 0x8b, //0x0000ad00 .quad -8363388681221443718 + 0x8a, 0x90, 0xc3, 0x7f, 0x1c, 0x27, 0x16, 0xf3, //0x0000ad08 .quad -930513269649338230 + 0xac, 0xb5, 0xcb, 0xe3, 0xf0, 0x8b, 0x75, 0x97, //0x0000ad10 .quad -7532960934977096276 + 0x56, 0x3a, 0xda, 0xcf, 0x71, 0xd8, 0xed, 0x97, //0x0000ad18 .quad -7499099821171918250 + 0x17, 0xa3, 0xbe, 0x1c, 0xed, 0xee, 0x52, 0x3d, //0x0000ad20 .quad 4418856886560793367 + 0xec, 0xc8, 0xd0, 0x43, 0x8e, 0x4e, 0xe9, 0xbd, //0x0000ad28 .quad -4762188758037509908 + 0xdd, 0x4b, 0xee, 0x63, 0xa8, 0xaa, 0xa7, 0x4c, //0x0000ad30 .quad 5523571108200991709 + 0x27, 0xfb, 0xc4, 0xd4, 0x31, 0xa2, 0x63, 0xed, //0x0000ad38 .quad -1341049929119499481 + 0x6a, 0xef, 0x74, 0x3e, 0xa9, 0xca, 0xe8, 0x8f, //0x0000ad40 .quad -8076983103442849942 + 0xf8, 0x1c, 0xfb, 0x24, 0x5f, 0x45, 0x5e, 0x94, //0x0000ad48 .quad -7755685233340769032 + 0x44, 0x2b, 0x12, 0x8e, 0x53, 0xfd, 0xe2, 0xb3, //0x0000ad50 .quad -5484542860876174524 + 0x36, 0xe4, 0x39, 0xee, 0xb6, 0xd6, 0x75, 0xb9, //0x0000ad58 .quad -5082920523248573386 + 0x16, 0xb6, 0x96, 0x71, 0xa8, 0xbc, 0xdb, 0x60, //0x0000ad60 .quad 6979379479186945558 + 0x44, 0x5d, 0xc8, 0xa9, 0x64, 0x4c, 0xd3, 0xe7, //0x0000ad68 .quad -1741964635633328828 + 0xcd, 0x31, 0xfe, 0x46, 0xe9, 0x55, 0x89, 0xbc, //0x0000ad70 .quad -4861259862362934835 + 0x4a, 0x3a, 0x1d, 0xea, 0xbe, 0x0f, 0xe4, 0x90, //0x0000ad78 .quad -8006256924911912374 + 0x41, 0xbe, 0xbd, 0x98, 0x63, 0xab, 0xab, 0x6b, //0x0000ad80 .quad 7758483227328495169 + 0xdd, 0x88, 0xa4, 0xa4, 0xae, 0x13, 0x1d, 0xb5, //0x0000ad88 .quad -5396135137712502563 + 0xd1, 0x2d, 0xed, 0x7e, 0x3c, 0x96, 0x96, 0xc6, //0x0000ad90 .quad -4136954021121544751 + 0x14, 0xab, 0xcd, 0x4d, 0x9a, 0x58, 0x64, 0xe2, //0x0000ad98 .quad -2133482903713240300 + 0xa2, 0x3c, 0x54, 0xcf, 0xe5, 0x1d, 0x1e, 0xfc, //0x0000ada0 .quad -279753253987271518 + 0xec, 0x8a, 0xa0, 0x70, 0x60, 0xb7, 0x7e, 0x8d, //0x0000ada8 .quad -8250955842461857044 + 0xcb, 0x4b, 0x29, 0x43, 0x5f, 0xa5, 0x25, 0x3b, //0x0000adb0 .quad 4261994450943298507 + 0xa8, 0xad, 0xc8, 0x8c, 0x38, 0x65, 0xde, 0xb0, //0x0000adb8 .quad -5702008784649933400 + 0xbe, 0x9e, 0xf3, 0x13, 0xb7, 0x0e, 0xef, 0x49, //0x0000adc0 .quad 5327493063679123134 + 0x12, 0xd9, 0xfa, 0xaf, 0x86, 0xfe, 0x15, 0xdd, //0x0000adc8 .quad -2515824962385028846 + 0x37, 0x43, 0x78, 0x6c, 0x32, 0x69, 0x35, 0x6e, //0x0000add0 .quad 7941369183226839863 + 0xab, 0xc7, 0xfc, 0x2d, 0x14, 0xbf, 0x2d, 0x8a, //0x0000add8 .quad -8489919629131724885 + 0x04, 0x54, 0x96, 0x07, 0x7f, 0xc3, 0xc2, 0x49, //0x0000ade0 .quad 5315025460606161924 + 0x96, 0xf9, 0x7b, 0x39, 0xd9, 0x2e, 0xb9, 0xac, //0x0000ade8 .quad -6000713517987268202 + 0x06, 0xe9, 0x7b, 0xc9, 0x5e, 0x74, 0x33, 0xdc, //0x0000adf0 .quad -2579590211097073402 + 0xfb, 0xf7, 0xda, 0x87, 0x8f, 0x7a, 0xe7, 0xd7, //0x0000adf8 .quad -2889205879056697349 + 0xa3, 0x71, 0xed, 0x3d, 0xbb, 0x28, 0xa0, 0x69, //0x0000ae00 .quad 7611128154919104931 + 0xfd, 0xda, 0xe8, 0xb4, 0x99, 0xac, 0xf0, 0x86, //0x0000ae08 .quad -8723282702051517699 + 0x0c, 0xce, 0x68, 0x0d, 0xea, 0x32, 0x08, 0xc4, //0x0000ae10 .quad -4321147861633282548 + 0xbc, 0x11, 0x23, 0x22, 0xc0, 0xd7, 0xac, 0xa8, //0x0000ae18 .quad -6292417359137009220 + 0x90, 0x01, 0xc3, 0x90, 0xa4, 0x3f, 0x0a, 0xf5, //0x0000ae20 .quad -789748808614215280 + 0x2b, 0xd6, 0xab, 0x2a, 0xb0, 0x0d, 0xd8, 0xd2, //0x0000ae28 .quad -3253835680493873621 + 0xfa, 0xe0, 0x79, 0xda, 0xc6, 0x67, 0x26, 0x79, //0x0000ae30 .quad 8729779031470891258 + 0xdb, 0x65, 0xab, 0x1a, 0x8e, 0x08, 0xc7, 0x83, //0x0000ae38 .quad -8951176327949752869 + 0x38, 0x59, 0x18, 0x91, 0xb8, 0x01, 0x70, 0x57, //0x0000ae40 .quad 6300537770911226168 + 0x52, 0x3f, 0x56, 0xa1, 0xb1, 0xca, 0xb8, 0xa4, //0x0000ae48 .quad -6577284391509803182 + 0x86, 0x6f, 0x5e, 0xb5, 0x26, 0x02, 0x4c, 0xed, //0x0000ae50 .quad -1347699823215743098 + 0x26, 0xcf, 0xab, 0x09, 0x5e, 0xfd, 0xe6, 0xcd, //0x0000ae58 .quad -3609919470959866074 + 0xb4, 0x05, 0x5b, 0x31, 0x58, 0x81, 0x4f, 0x54, //0x0000ae60 .quad 6075216638131242420 + 0x78, 0x61, 0x0b, 0xc6, 0x5a, 0x5e, 0xb0, 0x80, //0x0000ae68 .quad -9173728696990998152 + 0x21, 0xc7, 0xb1, 0x3d, 0xae, 0x61, 0x63, 0x69, //0x0000ae70 .quad 7594020797664053025 + 0xd6, 0x39, 0x8e, 0x77, 0xf1, 0x75, 0xdc, 0xa0, //0x0000ae78 .quad -6855474852811359786 + 0xe9, 0x38, 0x1e, 0xcd, 0x19, 0x3a, 0xbc, 0x03, //0x0000ae80 .quad 269153960225290473 + 0x4c, 0xc8, 0x71, 0xd5, 0x6d, 0x93, 0x13, 0xc9, //0x0000ae88 .quad -3957657547586811828 + 0x23, 0xc7, 0x65, 0x40, 0xa0, 0x48, 0xab, 0x04, //0x0000ae90 .quad 336442450281613091 + 0x5f, 0x3a, 0xce, 0x4a, 0x49, 0x78, 0x58, 0xfb, //0x0000ae98 .quad -335385916056126881 + 0x76, 0x9c, 0x3f, 0x28, 0x64, 0x0d, 0xeb, 0x62, //0x0000aea0 .quad 7127805559067090038 + 0x7b, 0xe4, 0xc0, 0xce, 0x2d, 0x4b, 0x17, 0x9d, //0x0000aea8 .quad -7127145225176161157 + 0x94, 0x83, 0x4f, 0x32, 0xbd, 0xd0, 0xa5, 0x3b, //0x0000aeb0 .quad 4298070930406474644 + 0x9a, 0x1d, 0x71, 0x42, 0xf9, 0x1d, 0x5d, 0xc4, //0x0000aeb8 .quad -4297245513042813542 + 0x79, 0x64, 0xe3, 0x7e, 0xec, 0x44, 0x8f, 0xca, //0x0000aec0 .quad -3850783373846682503 + 0x00, 0x65, 0x0d, 0x93, 0x77, 0x65, 0x74, 0xf5, //0x0000aec8 .quad -759870872876129024 + 0xcb, 0x1e, 0x4e, 0xcf, 0x13, 0x8b, 0x99, 0x7e, //0x0000aed0 .quad 9122475437414293195 + 0x20, 0x5f, 0xe8, 0xbb, 0x6a, 0xbf, 0x68, 0x99, //0x0000aed8 .quad -7392448323188662496 + 0x7e, 0xa6, 0x21, 0xc3, 0xd8, 0xed, 0x3f, 0x9e, //0x0000aee0 .quad -7043649776941685122 + 0xe8, 0x76, 0xe2, 0x6a, 0x45, 0xef, 0xc2, 0xbf, //0x0000aee8 .quad -4628874385558440216 + 0x1e, 0x10, 0xea, 0xf3, 0x4e, 0xe9, 0xcf, 0xc5, //0x0000aef0 .quad -4192876202749718498 + 0xa2, 0x14, 0x9b, 0xc5, 0x16, 0xab, 0xb3, 0xef, //0x0000aef8 .quad -1174406963520662366 + 0x12, 0x4a, 0x72, 0x58, 0xd1, 0xf1, 0xa1, 0xbb, //0x0000af00 .quad -4926390635932268014 + 0xe5, 0xec, 0x80, 0x3b, 0xee, 0x4a, 0xd0, 0x95, //0x0000af08 .quad -7651533379841495835 + 0x97, 0xdc, 0x8e, 0xae, 0x45, 0x6e, 0x8a, 0x2a, //0x0000af10 .quad 3065383741939440791 + 0x1f, 0x28, 0x61, 0xca, 0xa9, 0x5d, 0x44, 0xbb, //0x0000af18 .quad -4952730706374481889 + 0xbd, 0x93, 0x32, 0x1a, 0xd7, 0x09, 0x2d, 0xf5, //0x0000af20 .quad -779956341003086915 + 0x26, 0x72, 0xf9, 0x3c, 0x14, 0x75, 0x15, 0xea, //0x0000af28 .quad -1579227364540714458 + 0x56, 0x9c, 0x5f, 0x70, 0x26, 0x26, 0x3c, 0x59, //0x0000af30 .quad 6430056314514152534 + 0x58, 0xe7, 0x1b, 0xa6, 0x2c, 0x69, 0x4d, 0x92, //0x0000af38 .quad -7904546130479028392 + 0x6c, 0x83, 0x77, 0x0c, 0xb0, 0x2f, 0x8b, 0x6f, //0x0000af40 .quad 8037570393142690668 + 0x2e, 0xe1, 0xa2, 0xcf, 0x77, 0xc3, 0xe0, 0xb6, //0x0000af48 .quad -5268996644671397586 + 0x47, 0x64, 0x95, 0x0f, 0x9c, 0xfb, 0x6d, 0x0b, //0x0000af50 .quad 823590954573587527 + 0x7a, 0x99, 0x8b, 0xc3, 0x55, 0xf4, 0x98, 0xe4, //0x0000af58 .quad -1974559787411859078 + 0xac, 0x5e, 0xbd, 0x89, 0x41, 0xbd, 0x24, 0x47, //0x0000af60 .quad 5126430365035880108 + 0xec, 0x3f, 0x37, 0x9a, 0xb5, 0x98, 0xdf, 0x8e, //0x0000af68 .quad -8151628894773493780 + 0x57, 0xb6, 0x2c, 0xec, 0x91, 0xec, 0xed, 0x58, //0x0000af70 .quad 6408037956294850135 + 0xe7, 0x0f, 0xc5, 0x00, 0xe3, 0x7e, 0x97, 0xb2, //0x0000af78 .quad -5577850100039479321 + 0xed, 0xe3, 0x37, 0x67, 0xb6, 0x67, 0x29, 0x2f, //0x0000af80 .quad 3398361426941174765 + 0xe1, 0x53, 0xf6, 0xc0, 0x9b, 0x5e, 0x3d, 0xdf, //0x0000af88 .quad -2360626606621961247 + 0x74, 0xee, 0x82, 0x00, 0xd2, 0xe0, 0x79, 0xbd, //0x0000af90 .quad -4793553135802847628 + 0x6c, 0xf4, 0x99, 0x58, 0x21, 0x5b, 0x86, 0x8b, //0x0000af98 .quad -8392920656779807636 + 0x11, 0xaa, 0xa3, 0x80, 0x06, 0x59, 0xd8, 0xec, //0x0000afa0 .quad -1380255401326171631 + 0x87, 0x71, 0xc0, 0xae, 0xe9, 0xf1, 0x67, 0xae, //0x0000afa8 .quad -5879464802547371641 + 0x95, 0x94, 0xcc, 0x20, 0x48, 0x6f, 0x0e, 0xe8, //0x0000afb0 .quad -1725319251657714539 + 0xe9, 0x8d, 0x70, 0x1a, 0x64, 0xee, 0x01, 0xda, //0x0000afb8 .quad -2737644984756826647 + 0xdd, 0xdc, 0x7f, 0x14, 0x8d, 0x05, 0x09, 0x31, //0x0000afc0 .quad 3533361486141316317 + 0xb2, 0x58, 0x86, 0x90, 0xfe, 0x34, 0x41, 0x88, //0x0000afc8 .quad -8628557143114098510 + 0x15, 0xd4, 0x9f, 0x59, 0xf0, 0x46, 0x4b, 0xbd, //0x0000afd0 .quad -4806670179178130411 + 0xde, 0xee, 0xa7, 0x34, 0x3e, 0x82, 0x51, 0xaa, //0x0000afd8 .quad -6174010410465235234 + 0x1a, 0xc9, 0x07, 0x70, 0xac, 0x18, 0x9e, 0x6c, //0x0000afe0 .quad 7826720331309500698 + 0x96, 0xea, 0xd1, 0xc1, 0xcd, 0xe2, 0xe5, 0xd4, //0x0000afe8 .quad -3105826994654156138 + 0xb0, 0xdd, 0x04, 0xc6, 0x6b, 0xcf, 0xe2, 0x03, //0x0000aff0 .quad 280014188641050032 + 0x9e, 0x32, 0x23, 0x99, 0xc0, 0xad, 0x0f, 0x85, //0x0000aff8 .quad -8858670899299929442 + 0x1c, 0x15, 0x86, 0xb7, 0x46, 0x83, 0xdb, 0x84, //0x0000b000 .quad -8873354301053463268 + 0x45, 0xff, 0x6b, 0xbf, 0x30, 0x99, 0x53, 0xa6, //0x0000b008 .quad -6461652605697523899 + 0x63, 0x9a, 0x67, 0x65, 0x18, 0x64, 0x12, 0xe6, //0x0000b010 .quad -1868320839462053277 + 0x16, 0xff, 0x46, 0xef, 0x7c, 0x7f, 0xe8, 0xcf, //0x0000b018 .quad -3465379738694516970 + 0x7e, 0xc0, 0x60, 0x3f, 0x8f, 0x7e, 0xcb, 0x4f, //0x0000b020 .quad 5749828502977298558 + 0x6e, 0x5f, 0x8c, 0x15, 0xae, 0x4f, 0xf1, 0x81, //0x0000b028 .quad -9083391364325154962 + 0x9d, 0xf0, 0x38, 0x0f, 0x33, 0x5e, 0xbe, 0xe3, //0x0000b030 .quad -2036086408133152611 + 0x49, 0x77, 0xef, 0x9a, 0x99, 0xa3, 0x6d, 0xa2, //0x0000b038 .quad -6742553186979055799 + 0xc5, 0x2c, 0x07, 0xd3, 0xbf, 0xf5, 0xad, 0x5c, //0x0000b040 .quad 6678264026688335045 + 0x1c, 0x55, 0xab, 0x01, 0x80, 0x0c, 0x09, 0xcb, //0x0000b048 .quad -3816505465296431844 + 0xf6, 0xf7, 0xc8, 0xc7, 0x2f, 0x73, 0xd9, 0x73, //0x0000b050 .quad 8347830033360418806 + 0x63, 0x2a, 0x16, 0x02, 0xa0, 0x4f, 0xcb, 0xfd, //0x0000b058 .quad -158945813193151901 + 0xfa, 0x9a, 0xdd, 0xdc, 0xfd, 0xe7, 0x67, 0x28, //0x0000b060 .quad 2911550761636567802 + 0x7e, 0xda, 0x4d, 0x01, 0xc4, 0x11, 0x9f, 0x9e, //0x0000b068 .quad -7016870160886801794 + 0xb8, 0x01, 0x15, 0x54, 0xfd, 0xe1, 0x81, 0xb2, //0x0000b070 .quad -5583933584809066056 + 0x1d, 0x51, 0xa1, 0x01, 0x35, 0xd6, 0x46, 0xc6, //0x0000b078 .quad -4159401682681114339 + 0x26, 0x42, 0x1a, 0xa9, 0x7c, 0x5a, 0x22, 0x1f, //0x0000b080 .quad 2243455055843443238 + 0x65, 0xa5, 0x09, 0x42, 0xc2, 0x8b, 0xd8, 0xf7, //0x0000b088 .quad -587566084924005019 + 0x58, 0x69, 0xb0, 0xe9, 0x8d, 0x78, 0x75, 0x33, //0x0000b090 .quad 3708002419115845976 + 0x5f, 0x07, 0x46, 0x69, 0x59, 0x57, 0xe7, 0x9a, //0x0000b098 .quad -7284757830718584993 + 0xae, 0x83, 0x1c, 0x64, 0xb1, 0xd6, 0x52, 0x00, //0x0000b0a0 .quad 23317005467419566 + 0x37, 0x89, 0x97, 0xc3, 0x2f, 0x2d, 0xa1, 0xc1, //0x0000b0a8 .quad -4494261269970843337 + 0x9a, 0xa4, 0x23, 0xbd, 0x5d, 0x8c, 0x67, 0xc0, //0x0000b0b0 .quad -4582539761593113446 + 0x84, 0x6b, 0x7d, 0xb4, 0x7b, 0x78, 0x09, 0xf2, //0x0000b0b8 .quad -1006140569036166268 + 0xe0, 0x46, 0x36, 0x96, 0xba, 0xb7, 0x40, 0xf8, //0x0000b0c0 .quad -558244341782001952 + 0x32, 0x63, 0xce, 0x50, 0x4d, 0xeb, 0x45, 0x97, //0x0000b0c8 .quad -7546366883288685774 + 0x98, 0xd8, 0xc3, 0x3b, 0xa9, 0xe5, 0x50, 0xb6, //0x0000b0d0 .quad -5309491445654890344 + 0xff, 0xfb, 0x01, 0xa5, 0x20, 0x66, 0x17, 0xbd, //0x0000b0d8 .quad -4821272585683469313 + 0xbe, 0xce, 0xb4, 0x8a, 0x13, 0x1f, 0xe5, 0xa3, //0x0000b0e0 .quad -6636864307068612930 + 0xff, 0x7a, 0x42, 0xce, 0xa8, 0x3f, 0x5d, 0xec, //0x0000b0e8 .quad -1414904713676948737 + 0x37, 0x01, 0xb1, 0x36, 0x6c, 0x33, 0x6f, 0xc6, //0x0000b0f0 .quad -4148040191917883081 + 0xdf, 0x8c, 0xe9, 0x80, 0xc9, 0x47, 0xba, 0x93, //0x0000b0f8 .quad -7801844473689174817 + 0x84, 0x41, 0x5d, 0x44, 0x47, 0x00, 0x0b, 0xb8, //0x0000b100 .quad -5185050239897353852 + 0x17, 0xf0, 0x23, 0xe1, 0xbb, 0xd9, 0xa8, 0xb8, //0x0000b108 .quad -5140619573684080617 + 0xe5, 0x91, 0x74, 0x15, 0x59, 0xc0, 0x0d, 0xa6, //0x0000b110 .quad -6481312799871692315 + 0x1d, 0xec, 0x6c, 0xd9, 0x2a, 0x10, 0xd3, 0xe6, //0x0000b118 .quad -1814088448677712867 + 0x2f, 0xdb, 0x68, 0xad, 0x37, 0x98, 0xc8, 0x87, //0x0000b120 .quad -8662506518347195601 + 0x92, 0x13, 0xe4, 0xc7, 0x1a, 0xea, 0x43, 0x90, //0x0000b128 .quad -8051334308064652398 + 0xfb, 0x11, 0xc3, 0x98, 0x45, 0xbe, 0xba, 0x29, //0x0000b130 .quad 3006924907348169211 + 0x77, 0x18, 0xdd, 0x79, 0xa1, 0xe4, 0x54, 0xb4, //0x0000b138 .quad -5452481866653427593 + 0x7a, 0xd6, 0xf3, 0xfe, 0xd6, 0x6d, 0x29, 0xf4, //0x0000b140 .quad -853029884242176390 + 0x94, 0x5e, 0x54, 0xd8, 0xc9, 0x1d, 0x6a, 0xe1, //0x0000b148 .quad -2203916314889396588 + 0x0c, 0x66, 0x58, 0x5f, 0xa6, 0xe4, 0x99, 0x18, //0x0000b150 .quad 1772699331562333708 + 0x1d, 0xbb, 0x34, 0x27, 0x9e, 0x52, 0xe2, 0x8c, //0x0000b158 .quad -8294976724446954723 + 0x8f, 0x7f, 0x2e, 0xf7, 0xcf, 0x5d, 0xc0, 0x5e, //0x0000b160 .quad 6827560182880305039 + 0xe4, 0xe9, 0x01, 0xb1, 0x45, 0xe7, 0x1a, 0xb0, //0x0000b168 .quad -5757034887131305500 + 0x73, 0x1f, 0xfa, 0xf4, 0x43, 0x75, 0x70, 0x76, //0x0000b170 .quad 8534450228600381299 + 0x5d, 0x64, 0x42, 0x1d, 0x17, 0xa1, 0x21, 0xdc, //0x0000b178 .quad -2584607590486743971 + 0xa8, 0x53, 0x1c, 0x79, 0x4a, 0x49, 0x06, 0x6a, //0x0000b180 .quad 7639874402088932264 + 0xba, 0x7e, 0x49, 0x72, 0xae, 0x04, 0x95, 0x89, //0x0000b188 .quad -8532908771695296838 + 0x92, 0x68, 0x63, 0x17, 0x9d, 0xdb, 0x87, 0x04, //0x0000b190 .quad 326470965756389522 + 0x69, 0xde, 0xdb, 0x0e, 0xda, 0x45, 0xfa, 0xab, //0x0000b198 .quad -6054449946191733143 + 0xb6, 0x42, 0x3c, 0x5d, 0x84, 0xd2, 0xa9, 0x45, //0x0000b1a0 .quad 5019774725622874806 + 0x03, 0xd6, 0x92, 0x92, 0x50, 0xd7, 0xf8, 0xd6, //0x0000b1a8 .quad -2956376414312278525 + 0xb2, 0xa9, 0x45, 0xba, 0x92, 0x23, 0x8a, 0x0b, //0x0000b1b0 .quad 831516194300602802 + 0xc2, 0xc5, 0x9b, 0x5b, 0x92, 0x86, 0x5b, 0x86, //0x0000b1b8 .quad -8765264286586255934 + 0x1e, 0x14, 0xd7, 0x68, 0x77, 0xac, 0x6c, 0x8e, //0x0000b1c0 .quad -8183976793979022306 + 0x32, 0xb7, 0x82, 0xf2, 0x36, 0x68, 0xf2, 0xa7, //0x0000b1c8 .quad -6344894339805432014 + 0x26, 0xd9, 0x0c, 0x43, 0x95, 0xd7, 0x07, 0x32, //0x0000b1d0 .quad 3605087062808385830 + 0xff, 0x64, 0x23, 0xaf, 0x44, 0x02, 0xef, 0xd1, //0x0000b1d8 .quad -3319431906329402113 + 0xb8, 0x07, 0xe8, 0x49, 0xbd, 0xe6, 0x44, 0x7f, //0x0000b1e0 .quad 9170708441896323000 + 0x1f, 0x1f, 0x76, 0xed, 0x6a, 0x61, 0x35, 0x83, //0x0000b1e8 .quad -8992173969096958177 + 0xa6, 0x09, 0x62, 0x9c, 0x6c, 0x20, 0x16, 0x5f, //0x0000b1f0 .quad 6851699533943015846 + 0xe7, 0xa6, 0xd3, 0xa8, 0xc5, 0xb9, 0x02, 0xa4, //0x0000b1f8 .quad -6628531442943809817 + 0x0f, 0x8c, 0x7a, 0xc3, 0x87, 0xa8, 0xdb, 0x36, //0x0000b200 .quad 3952938399001381903 + 0xa1, 0x90, 0x08, 0x13, 0x37, 0x68, 0x03, 0xcd, //0x0000b208 .quad -3673978285252374367 + 0x89, 0x97, 0x2c, 0xda, 0x54, 0x49, 0x49, 0xc2, //0x0000b210 .quad -4446942528265218167 + 0x64, 0x5a, 0xe5, 0x6b, 0x22, 0x21, 0x22, 0x80, //0x0000b218 .quad -9213765455923815836 + 0x6c, 0xbd, 0xb7, 0x10, 0xaa, 0x9b, 0xdb, 0xf2, //0x0000b220 .quad -946992141904134804 + 0xfd, 0xb0, 0xde, 0x06, 0x6b, 0xa9, 0x2a, 0xa0, //0x0000b228 .quad -6905520801477381891 + 0xc7, 0xac, 0xe5, 0x94, 0x94, 0x82, 0x92, 0x6f, //0x0000b230 .quad 8039631859474607303 + 0x3d, 0x5d, 0x96, 0xc8, 0xc5, 0x53, 0x35, 0xc8, //0x0000b238 .quad -4020214983419339459 + 0xf9, 0x17, 0x1f, 0xba, 0x39, 0x23, 0x77, 0xcb, //0x0000b240 .quad -3785518230938904583 + 0x8c, 0xf4, 0xbb, 0x3a, 0xb7, 0xa8, 0x42, 0xfa, //0x0000b248 .quad -413582710846786420 + 0xfb, 0x6e, 0x53, 0x14, 0x04, 0x76, 0x2a, 0xff, //0x0000b250 .quad -60105885123121413 + 0xd7, 0x78, 0xb5, 0x84, 0x72, 0xa9, 0x69, 0x9c, //0x0000b258 .quad -7176018221920323369 + 0xba, 0x4a, 0x68, 0x19, 0x85, 0x13, 0xf5, 0xfe, //0x0000b260 .quad -75132356403901766 + 0x0d, 0xd7, 0xe2, 0x25, 0xcf, 0x13, 0x84, 0xc3, //0x0000b268 .quad -4358336758973016307 + 0x69, 0x5d, 0xc2, 0x5f, 0x66, 0x58, 0xb2, 0x7e, //0x0000b270 .quad 9129456591349898601 + 0xd1, 0x8c, 0x5b, 0xef, 0xc2, 0x18, 0x65, 0xf4, //0x0000b278 .quad -836234930288882479 + 0x61, 0x7a, 0xd9, 0xfb, 0x3f, 0x77, 0x2f, 0xef, //0x0000b280 .quad -1211618658047395231 + 0x02, 0x38, 0x99, 0xd5, 0x79, 0x2f, 0xbf, 0x98, //0x0000b288 .quad -7440175859071633406 + 0xfa, 0xd8, 0xcf, 0xfa, 0x0f, 0x55, 0xfb, 0xaa, //0x0000b290 .quad -6126209340986631942 + 0x03, 0x86, 0xff, 0x4a, 0x58, 0xfb, 0xee, 0xbe, //0x0000b298 .quad -4688533805412153853 + 0x38, 0xcf, 0x83, 0xf9, 0x53, 0x2a, 0xba, 0x95, //0x0000b2a0 .quad -7657761676233289928 + 0x84, 0x67, 0xbf, 0x5d, 0x2e, 0xba, 0xaa, 0xee, //0x0000b2a8 .quad -1248981238337804412 + 0x83, 0x61, 0xf2, 0x7b, 0x74, 0x5a, 0x94, 0xdd, //0x0000b2b0 .quad -2480258038432112253 + 0xb2, 0xa0, 0x97, 0xfa, 0x5c, 0xb4, 0x2a, 0x95, //0x0000b2b8 .quad -7698142301602209614 + 0xe4, 0xf9, 0xee, 0x9a, 0x11, 0x71, 0xf9, 0x94, //0x0000b2c0 .quad -7712008566467528220 + 0xdf, 0x88, 0x3d, 0x39, 0x74, 0x61, 0x75, 0xba, //0x0000b2c8 .quad -5010991858575374113 + 0x5d, 0xb8, 0xaa, 0x01, 0x56, 0xcd, 0x37, 0x7a, //0x0000b2d0 .quad 8806733365625141341 + 0x17, 0xeb, 0x8c, 0x47, 0xd1, 0xb9, 0x12, 0xe9, //0x0000b2d8 .quad -1652053804791829737 + 0x3a, 0xb3, 0x0a, 0xc1, 0x55, 0xe0, 0x62, 0xac, //0x0000b2e0 .quad -6025006692552756422 + 0xee, 0x12, 0xb8, 0xcc, 0x22, 0xb4, 0xab, 0x91, //0x0000b2e8 .quad -7950062655635975442 + 0x09, 0x60, 0x4d, 0x31, 0x6b, 0x98, 0x7b, 0x57, //0x0000b2f0 .quad 6303799689591218185 + 0xaa, 0x17, 0xe6, 0x7f, 0x2b, 0xa1, 0x16, 0xb6, //0x0000b2f8 .quad -5325892301117581398 + 0x0b, 0xb8, 0xa0, 0xfd, 0x85, 0x7e, 0x5a, 0xed, //0x0000b300 .quad -1343622424865753077 + 0x94, 0x9d, 0xdf, 0x5f, 0x76, 0x49, 0x9c, 0xe3, //0x0000b308 .quad -2045679357969588844 + 0x07, 0x73, 0x84, 0xbe, 0x13, 0x8f, 0x58, 0x14, //0x0000b310 .quad 1466078993672598279 + 0x7d, 0xc2, 0xeb, 0xfb, 0xe9, 0xad, 0x41, 0x8e, //0x0000b318 .quad -8196078626372074883 + 0xc8, 0x8f, 0x25, 0xae, 0xd8, 0xb2, 0x6e, 0x59, //0x0000b320 .quad 6444284760518135752 + 0x1c, 0xb3, 0xe6, 0x7a, 0x64, 0x19, 0xd2, 0xb1, //0x0000b328 .quad -5633412264537705700 + 0xbb, 0xf3, 0xae, 0xd9, 0x8e, 0x5f, 0xca, 0x6f, //0x0000b330 .quad 8055355950647669691 + 0xe3, 0x5f, 0xa0, 0x99, 0xbd, 0x9f, 0x46, 0xde, //0x0000b338 .quad -2430079312244744221 + 0x54, 0x58, 0x0d, 0x48, 0xb9, 0x7b, 0xde, 0x25, //0x0000b340 .quad 2728754459941099604 + 0xee, 0x3b, 0x04, 0x80, 0xd6, 0x23, 0xec, 0x8a, //0x0000b348 .quad -8436328597794046994 + 0x6a, 0xae, 0x10, 0x9a, 0xa7, 0x1a, 0x56, 0xaf, //0x0000b350 .quad -5812428961928401302 + 0xe9, 0x4a, 0x05, 0x20, 0xcc, 0x2c, 0xa7, 0xad, //0x0000b358 .quad -5933724728815170839 + 0x04, 0xda, 0x94, 0x80, 0x51, 0xa1, 0x2b, 0x1b, //0x0000b360 .quad 1957835834444274180 + 0xa4, 0x9d, 0x06, 0x28, 0xff, 0xf7, 0x10, 0xd9, //0x0000b368 .quad -2805469892591575644 + 0x42, 0x08, 0x5d, 0xf0, 0xd2, 0x44, 0xfb, 0x90, //0x0000b370 .quad -7999724640327104446 + 0x86, 0x22, 0x04, 0x79, 0xff, 0x9a, 0xaa, 0x87, //0x0000b378 .quad -8670947710510816634 + 0x53, 0x4a, 0x74, 0xac, 0x07, 0x16, 0x3a, 0x35, //0x0000b380 .quad 3835402254873283155 + 0x28, 0x2b, 0x45, 0x57, 0xbf, 0x41, 0x95, 0xa9, //0x0000b388 .quad -6226998619711132888 + 0xe8, 0x5c, 0x91, 0x97, 0x89, 0x9b, 0x88, 0x42, //0x0000b390 .quad 4794252818591603944 + 0xf2, 0x75, 0x16, 0x2d, 0x2f, 0x92, 0xfa, 0xd3, //0x0000b398 .quad -3172062256211528206 + 0x11, 0xda, 0xba, 0xfe, 0x35, 0x61, 0x95, 0x69, //0x0000b3a0 .quad 7608094030047140369 + 0xb7, 0x09, 0x2e, 0x7c, 0x5d, 0x9b, 0x7c, 0x84, //0x0000b3a8 .quad -8900067937773286985 + 0x95, 0x90, 0x69, 0x7e, 0x83, 0xb9, 0xfa, 0x43, //0x0000b3b0 .quad 4898431519131537557 + 0x25, 0x8c, 0x39, 0xdb, 0x34, 0xc2, 0x9b, 0xa5, //0x0000b3b8 .quad -6513398903789220827 + 0xbb, 0xf4, 0x03, 0x5e, 0xe4, 0x67, 0xf9, 0x94, //0x0000b3c0 .quad -7712018656367741765 + 0x2e, 0xef, 0x07, 0x12, 0xc2, 0xb2, 0x02, 0xcf, //0x0000b3c8 .quad -3530062611309138130 + 0xf5, 0x78, 0xc2, 0xba, 0xee, 0xe0, 0x1b, 0x1d, //0x0000b3d0 .quad 2097517367411243253 + 0x7d, 0xf5, 0x44, 0x4b, 0xb9, 0xaf, 0x61, 0x81, //0x0000b3d8 .quad -9123818159709293187 + 0x32, 0x17, 0x73, 0x69, 0x2a, 0xd9, 0x62, 0x64, //0x0000b3e0 .quad 7233582727691441970 + 0xdc, 0x32, 0x16, 0x9e, 0xa7, 0x1b, 0xba, 0xa1, //0x0000b3e8 .quad -6793086681209228580 + 0xfe, 0xdc, 0xcf, 0x03, 0x75, 0x8f, 0x7b, 0x7d, //0x0000b3f0 .quad 9041978409614302462 + 0x93, 0xbf, 0x9b, 0x85, 0x91, 0xa2, 0x28, 0xca, //0x0000b3f8 .quad -3879672333084147821 + 0x3e, 0xd4, 0xc3, 0x44, 0x52, 0x73, 0xda, 0x5c, //0x0000b400 .quad 6690786993590490174 + 0x78, 0xaf, 0x02, 0xe7, 0x35, 0xcb, 0xb2, 0xfc, //0x0000b408 .quad -237904397927796872 + 0xa7, 0x64, 0xfa, 0x6a, 0x13, 0x88, 0x08, 0x3a, //0x0000b410 .quad 4181741870994056359 + 0xab, 0xad, 0x61, 0xb0, 0x01, 0xbf, 0xef, 0x9d, //0x0000b418 .quad -7066219276345954901 + 0xd0, 0xfd, 0xb8, 0x45, 0x18, 0xaa, 0x8a, 0x08, //0x0000b420 .quad 615491320315182544 + 0x16, 0x19, 0x7a, 0x1c, 0xc2, 0xae, 0x6b, 0xc5, //0x0000b428 .quad -4221088077005055722 + 0x45, 0x3d, 0x27, 0x57, 0x9e, 0x54, 0xad, 0x8a, //0x0000b430 .quad -8454007886460797627 + 0x5b, 0x9f, 0x98, 0xa3, 0x72, 0x9a, 0xc6, 0xf6, //0x0000b438 .quad -664674077828931749 + 0x4b, 0x86, 0x78, 0xf6, 0xe2, 0x54, 0xac, 0x36, //0x0000b440 .quad 3939617107816777291 + 0x99, 0x63, 0x3f, 0xa6, 0x87, 0x20, 0x3c, 0x9a, //0x0000b448 .quad -7332950326284164199 + 0xdd, 0xa7, 0x16, 0xb4, 0x1b, 0x6a, 0x57, 0x84, //0x0000b450 .quad -8910536670511192099 + 0x7f, 0x3c, 0xcf, 0x8f, 0xa9, 0x28, 0xcb, 0xc0, //0x0000b458 .quad -4554501889427817345 + 0xd5, 0x51, 0x1c, 0xa1, 0xa2, 0x44, 0x6d, 0x65, //0x0000b460 .quad 7308573235570561493 + 0x9f, 0x0b, 0xc3, 0xf3, 0xd3, 0xf2, 0xfd, 0xf0, //0x0000b468 .quad -1081441343357383777 + 0x25, 0xb3, 0xb1, 0xa4, 0xe5, 0x4a, 0x64, 0x9f, //0x0000b470 .quad -6961356773836868827 + 0x43, 0xe7, 0x59, 0x78, 0xc4, 0xb7, 0x9e, 0x96, //0x0000b478 .quad -7593429867239446717 + 0xee, 0x1f, 0xde, 0x0d, 0x9f, 0x5d, 0x3d, 0x87, //0x0000b480 .quad -8701695967296086034 + 0x14, 0x61, 0x70, 0x96, 0xb5, 0x65, 0x46, 0xbc, //0x0000b488 .quad -4880101315621920492 + 0xea, 0xa7, 0x55, 0xd1, 0x06, 0xb5, 0x0c, 0xa9, //0x0000b490 .quad -6265433940692719638 + 0x59, 0x79, 0x0c, 0xfc, 0x22, 0xff, 0x57, 0xeb, //0x0000b498 .quad -1488440626100012711 + 0xf2, 0x88, 0xd5, 0x42, 0x24, 0xf1, 0xa7, 0x09, //0x0000b4a0 .quad 695789805494438130 + 0xd8, 0xcb, 0x87, 0xdd, 0x75, 0xff, 0x16, 0x93, //0x0000b4a8 .quad -7847804418953589800 + 0x2f, 0xeb, 0x8a, 0x53, 0x6d, 0xed, 0x11, 0x0c, //0x0000b4b0 .quad 869737256868047663 + 0xce, 0xbe, 0xe9, 0x54, 0x53, 0xbf, 0xdc, 0xb7, //0x0000b4b8 .quad -5198069505264599346 + 0xfa, 0xa5, 0x6d, 0xa8, 0xc8, 0x68, 0x16, 0x8f, //0x0000b4c0 .quad -8136200465769716230 + 0x81, 0x2e, 0x24, 0x2a, 0x28, 0xef, 0xd3, 0xe5, //0x0000b4c8 .quad -1885900863153361279 + 0xbc, 0x87, 0x44, 0x69, 0x7d, 0x01, 0x6e, 0xf9, //0x0000b4d0 .quad -473439272678684740 + 0x10, 0x9d, 0x56, 0x1a, 0x79, 0x75, 0xa4, 0x8f, //0x0000b4d8 .quad -8096217067111932656 + 0xac, 0xa9, 0x95, 0xc3, 0xdc, 0x81, 0xc9, 0x37, //0x0000b4e0 .quad 4019886927579031980 + 0x55, 0x44, 0xec, 0x60, 0xd7, 0x92, 0x8d, 0xb3, //0x0000b4e8 .quad -5508585315462527915 + 0x17, 0x14, 0x7b, 0xf4, 0x53, 0xe2, 0xbb, 0x85, //0x0000b4f0 .quad -8810199395808373737 + 0x6a, 0x55, 0x27, 0x39, 0x8d, 0xf7, 0x70, 0xe0, //0x0000b4f8 .quad -2274045625900771990 + 0x8e, 0xec, 0xcc, 0x78, 0x74, 0x6d, 0x95, 0x93, //0x0000b500 .quad -7812217631593927538 + 0x62, 0x95, 0xb8, 0x43, 0xb8, 0x9a, 0x46, 0x8c, //0x0000b508 .quad -8338807543829064350 + 0xb2, 0x27, 0x00, 0x97, 0xd1, 0xc8, 0x7a, 0x38, //0x0000b510 .quad 4069786015789754290 + 0xbb, 0xba, 0xa6, 0x54, 0x66, 0x41, 0x58, 0xaf, //0x0000b518 .quad -5811823411358942533 + 0x9e, 0x31, 0xc0, 0xfc, 0x05, 0x7b, 0x99, 0x06, //0x0000b520 .quad 475546501309804958 + 0x6a, 0x69, 0xd0, 0xe9, 0xbf, 0x51, 0x2e, 0xdb, //0x0000b528 .quad -2653093245771290262 + 0x03, 0x1f, 0xf8, 0xbd, 0xe3, 0xec, 0x1f, 0x44, //0x0000b530 .quad 4908902581746016003 + 0xe2, 0x41, 0x22, 0xf2, 0x17, 0xf3, 0xfc, 0x88, //0x0000b538 .quad -8575712306248138270 + 0xc3, 0x26, 0x76, 0xad, 0x1c, 0xe8, 0x27, 0xd5, //0x0000b540 .quad -3087243809672255805 + 0x5a, 0xd2, 0xaa, 0xee, 0xdd, 0x2f, 0x3c, 0xab, //0x0000b548 .quad -6107954364382784934 + 0x74, 0xb0, 0xd3, 0xd8, 0x23, 0xe2, 0x71, 0x8a, //0x0000b550 .quad -8470740780517707660 + 0xf1, 0x86, 0x55, 0x6a, 0xd5, 0x3b, 0x0b, 0xd6, //0x0000b558 .quad -3023256937051093263 + 0x49, 0x4e, 0x84, 0x67, 0x56, 0x2d, 0x87, 0xf6, //0x0000b560 .quad -682526969396179383 + 0x56, 0x74, 0x75, 0x62, 0x65, 0x05, 0xc7, 0x85, //0x0000b568 .quad -8807064613298015146 + 0xdb, 0x61, 0x65, 0x01, 0xac, 0xf8, 0x28, 0xb4, //0x0000b570 .quad -5464844730172612133 + 0x6c, 0xd1, 0x12, 0xbb, 0xbe, 0xc6, 0x38, 0xa7, //0x0000b578 .quad -6397144748195131028 + 0x52, 0xba, 0xbe, 0x01, 0xd7, 0x36, 0x33, 0xe1, //0x0000b580 .quad -2219369894288377262 + 0xc7, 0x85, 0xd7, 0x69, 0x6e, 0xf8, 0x06, 0xd1, //0x0000b588 .quad -3384744916816525881 + 0x73, 0x34, 0x17, 0x61, 0x46, 0x02, 0xc0, 0xec, //0x0000b590 .quad -1387106183930235789 + 0x9c, 0xb3, 0x26, 0x02, 0x45, 0x5b, 0xa4, 0x82, //0x0000b598 .quad -9032994600651410532 + 0x90, 0x01, 0x5d, 0xf9, 0xd7, 0x02, 0xf0, 0x27, //0x0000b5a0 .quad 2877803288514593168 + 0x84, 0x60, 0xb0, 0x42, 0x16, 0x72, 0x4d, 0xa3, //0x0000b5a8 .quad -6679557232386875260 + 0xf4, 0x41, 0xb4, 0xf7, 0x8d, 0x03, 0xec, 0x31, //0x0000b5b0 .quad 3597254110643241460 + 0xa5, 0x78, 0x5c, 0xd3, 0x9b, 0xce, 0x20, 0xcc, //0x0000b5b8 .quad -3737760522056206171 + 0x71, 0x52, 0xa1, 0x75, 0x71, 0x04, 0x67, 0x7e, //0x0000b5c0 .quad 9108253656731439729 + 0xce, 0x96, 0x33, 0xc8, 0x42, 0x02, 0x29, 0xff, //0x0000b5c8 .quad -60514634142869810 + 0x86, 0xd3, 0x84, 0xe9, 0xc6, 0x62, 0x00, 0x0f, //0x0000b5d0 .quad 1080972517029761926 + 0x41, 0x3e, 0x20, 0xbd, 0x69, 0xa1, 0x79, 0x9f, //0x0000b5d8 .quad -6955350673980375487 + 0x68, 0x08, 0xe6, 0xa3, 0x78, 0x7b, 0xc0, 0x52, //0x0000b5e0 .quad 5962901664714590312 + 0xd1, 0x4d, 0x68, 0x2c, 0xc4, 0x09, 0x58, 0xc7, //0x0000b5e8 .quad -4082502324048081455 + 0x82, 0x8a, 0xdf, 0xcc, 0x56, 0x9a, 0x70, 0xa7, //0x0000b5f0 .quad -6381430974388925822 + 0x45, 0x61, 0x82, 0x37, 0x35, 0x0c, 0x2e, 0xf9, //0x0000b5f8 .quad -491441886632713915 + 0x91, 0xb6, 0x0b, 0x40, 0x76, 0x60, 0xa6, 0x88, //0x0000b600 .quad -8600080377420466543 + 0xcb, 0x7c, 0xb1, 0x42, 0xa1, 0xc7, 0xbc, 0x9b, //0x0000b608 .quad -7224680206786528053 + 0x35, 0xa4, 0x0e, 0xd0, 0x93, 0xf8, 0xcf, 0x6a, //0x0000b610 .quad 7696643601933968437 + 0xfe, 0xdb, 0x5d, 0x93, 0x89, 0xf9, 0xab, 0xc2, //0x0000b618 .quad -4419164240055772162 + 0x43, 0x4d, 0x12, 0xc4, 0xb8, 0xf6, 0x83, 0x05, //0x0000b620 .quad 397432465562684739 + 0xfe, 0x52, 0x35, 0xf8, 0xeb, 0xf7, 0x56, 0xf3, //0x0000b628 .quad -912269281642327298 + 0x4a, 0x70, 0x8b, 0x7a, 0x33, 0x7a, 0x72, 0xc3, //0x0000b630 .quad -4363290727450709942 + 0xde, 0x53, 0x21, 0x7b, 0xf3, 0x5a, 0x16, 0x98, //0x0000b638 .quad -7487697328667536418 + 0x5c, 0x4c, 0x2e, 0x59, 0xc0, 0x18, 0x4f, 0x74, //0x0000b640 .quad 8380944645968776284 + 0xd6, 0xa8, 0xe9, 0x59, 0xb0, 0xf1, 0x1b, 0xbe, //0x0000b648 .quad -4747935642407032618 + 0x73, 0xdf, 0x79, 0x6f, 0xf0, 0xde, 0x62, 0x11, //0x0000b650 .quad 1252808770606194547 + 0x0c, 0x13, 0x64, 0x70, 0x1c, 0xee, 0xa2, 0xed, //0x0000b658 .quad -1323233534581402868 + 0xa8, 0x2b, 0xac, 0x45, 0x56, 0xcb, 0xdd, 0x8a, //0x0000b660 .quad -8440366555225904216 + 0xe7, 0x8b, 0x3e, 0xc6, 0xd1, 0xd4, 0x85, 0x94, //0x0000b668 .quad -7744549986754458649 + 0x92, 0x36, 0x17, 0xd7, 0x2b, 0x3e, 0x95, 0x6d, //0x0000b670 .quad 7896285879677171346 + 0xe1, 0x2e, 0xce, 0x37, 0x06, 0x4a, 0xa7, 0xb9, //0x0000b678 .quad -5069001465015685407 + 0x37, 0x04, 0xdd, 0xcc, 0xb6, 0x8d, 0xfa, 0xc8, //0x0000b680 .quad -3964700705685699529 + 0x99, 0xba, 0xc1, 0xc5, 0x87, 0x1c, 0x11, 0xe8, //0x0000b688 .quad -1724565812842218855 + 0xa2, 0x22, 0x0a, 0x40, 0x92, 0x98, 0x9c, 0x1d, //0x0000b690 .quad 2133748077373825698 + 0xa0, 0x14, 0x99, 0xdb, 0xd4, 0xb1, 0x0a, 0x91, //0x0000b698 .quad -7995382660667468640 + 0x4b, 0xab, 0x0c, 0xd0, 0xb6, 0xbe, 0x03, 0x25, //0x0000b6a0 .quad 2667185096717282123 + 0xc8, 0x59, 0x7f, 0x12, 0x4a, 0x5e, 0x4d, 0xb5, //0x0000b6a8 .quad -5382542307406947896 + 0x1d, 0xd6, 0x0f, 0x84, 0x64, 0xae, 0x44, 0x2e, //0x0000b6b0 .quad 3333981370896602653 + 0x3a, 0x30, 0x1f, 0x97, 0xdc, 0xb5, 0xa0, 0xe2, //0x0000b6b8 .quad -2116491865831296966 + 0xd2, 0xe5, 0x89, 0xd2, 0xfe, 0xec, 0xea, 0x5c, //0x0000b6c0 .quad 6695424375237764562 + 0x24, 0x7e, 0x73, 0xde, 0xa9, 0x71, 0xa4, 0x8d, //0x0000b6c8 .quad -8240336443785642460 + 0x47, 0x5f, 0x2c, 0x87, 0x3e, 0xa8, 0x25, 0x74, //0x0000b6d0 .quad 8369280469047205703 + 0xad, 0x5d, 0x10, 0x56, 0x14, 0x8e, 0x0d, 0xb1, //0x0000b6d8 .quad -5688734536304665171 + 0x19, 0x77, 0xf7, 0x28, 0x4e, 0x12, 0x2f, 0xd1, //0x0000b6e0 .quad -3373457468973156583 + 0x18, 0x75, 0x94, 0x6b, 0x99, 0xf1, 0x50, 0xdd, //0x0000b6e8 .quad -2499232151953443560 + 0x6f, 0xaa, 0x9a, 0xd9, 0x70, 0x6b, 0xbd, 0x82, //0x0000b6f0 .quad -9025939945749304721 + 0x2f, 0xc9, 0x3c, 0xe3, 0xff, 0x96, 0x52, 0x8a, //0x0000b6f8 .quad -8479549122611984081 + 0x0b, 0x55, 0x01, 0x10, 0x4d, 0xc6, 0x6c, 0x63, //0x0000b700 .quad 7164319141522920715 + 0x7b, 0xfb, 0x0b, 0xdc, 0xbf, 0x3c, 0xe7, 0xac, //0x0000b708 .quad -5987750384837592197 + 0x4e, 0xaa, 0x01, 0x54, 0xe0, 0xf7, 0x47, 0x3c, //0x0000b710 .quad 4343712908476262990 + 0x5a, 0xfa, 0x0e, 0xd3, 0xef, 0x0b, 0x21, 0xd8, //0x0000b718 .quad -2873001962619602342 + 0x71, 0x0a, 0x81, 0x34, 0xec, 0xfa, 0xac, 0x65, //0x0000b720 .quad 7326506586225052273 + 0x78, 0x5c, 0xe9, 0xe3, 0x75, 0xa7, 0x14, 0x87, //0x0000b728 .quad -8713155254278333320 + 0x0d, 0x4d, 0xa1, 0x41, 0xa7, 0x39, 0x18, 0x7f, //0x0000b730 .quad 9158133232781315341 + 0x96, 0xb3, 0xe3, 0x5c, 0x53, 0xd1, 0xd9, 0xa8, //0x0000b738 .quad -6279758049420528746 + 0x50, 0xa0, 0x09, 0x12, 0x11, 0x48, 0xde, 0x1e, //0x0000b740 .quad 2224294504121868368 + 0x7c, 0xa0, 0x1c, 0x34, 0xa8, 0x45, 0x10, 0xd3, //0x0000b748 .quad -3238011543348273028 + 0x32, 0x04, 0x46, 0xab, 0x0a, 0xed, 0x4a, 0x93, //0x0000b750 .quad -7833187971778608078 + 0x4d, 0xe4, 0x91, 0x20, 0x89, 0x2b, 0xea, 0x83, //0x0000b758 .quad -8941286242233752499 + 0x3f, 0x85, 0x17, 0x56, 0x4d, 0xa8, 0x1d, 0xf8, //0x0000b760 .quad -568112927868484289 + 0x60, 0x5d, 0xb6, 0x68, 0x6b, 0xb6, 0xe4, 0xa4, //0x0000b768 .quad -6564921784364802720 + 0x8e, 0x66, 0x9d, 0xab, 0x60, 0x12, 0x25, 0x36, //0x0000b770 .quad 3901544858591782542 + 0xb9, 0xf4, 0xe3, 0x42, 0x06, 0xe4, 0x1d, 0xce, //0x0000b778 .quad -3594466212028615495 + 0x19, 0x60, 0x42, 0x6b, 0x7c, 0x2b, 0xd7, 0xc1, //0x0000b780 .quad -4479063491021217767 + 0xf3, 0x78, 0xce, 0xe9, 0x83, 0xae, 0xd2, 0x80, //0x0000b788 .quad -9164070410158966541 + 0x1f, 0xf8, 0x12, 0x86, 0x5b, 0xf6, 0x4c, 0xb2, //0x0000b790 .quad -5598829363776522209 + 0x30, 0x17, 0x42, 0xe4, 0x24, 0x5a, 0x07, 0xa1, //0x0000b798 .quad -6843401994271320272 + 0x27, 0xb6, 0x97, 0x67, 0xf2, 0x33, 0xe0, 0xde, //0x0000b7a0 .quad -2386850686293264857 + 0xfc, 0x9c, 0x52, 0x1d, 0xae, 0x30, 0x49, 0xc9, //0x0000b7a8 .quad -3942566474411762436 + 0xb1, 0xa3, 0x7d, 0x01, 0xef, 0x40, 0x98, 0x16, //0x0000b7b0 .quad 1628122660560806833 + 0x3c, 0x44, 0xa7, 0xa4, 0xd9, 0x7c, 0x9b, 0xfb, //0x0000b7b8 .quad -316522074587315140 + 0x4e, 0x86, 0xee, 0x60, 0x95, 0x28, 0x1f, 0x8e, //0x0000b7c0 .quad -8205795374004271538 + 0xa5, 0x8a, 0xe8, 0x06, 0x08, 0x2e, 0x41, 0x9d, //0x0000b7c8 .quad -7115355324258153819 + 0xe2, 0x27, 0x2a, 0xb9, 0xba, 0xf2, 0xa6, 0xf1, //0x0000b7d0 .quad -1033872180650563614 + 0x4e, 0xad, 0xa2, 0x08, 0x8a, 0x79, 0x91, 0xc4, //0x0000b7d8 .quad -4282508136895304370 + 0xdb, 0xb1, 0x74, 0x67, 0x69, 0xaf, 0x10, 0xae, //0x0000b7e0 .quad -5904026244240592421 + 0xa2, 0x58, 0xcb, 0x8a, 0xec, 0xd7, 0xb5, 0xf5, //0x0000b7e8 .quad -741449152691742558 + 0x29, 0xef, 0xa8, 0xe0, 0xa1, 0x6d, 0xca, 0xac, //0x0000b7f0 .quad -5995859411864064215 + 0x65, 0x17, 0xbf, 0xd6, 0xf3, 0xa6, 0x91, 0x99, //0x0000b7f8 .quad -7380934748073420955 + 0xf3, 0x2a, 0xd3, 0x58, 0x0a, 0x09, 0xfd, 0x17, //0x0000b800 .quad 1728547772024695539 + 0x3f, 0xdd, 0x6e, 0xcc, 0xb0, 0x10, 0xf6, 0xbf, //0x0000b808 .quad -4614482416664388289 + 0xb0, 0xf5, 0x07, 0xef, 0x4c, 0x4b, 0xfc, 0xdd, //0x0000b810 .quad -2451001303396518480 + 0x8e, 0x94, 0x8a, 0xff, 0xdc, 0x94, 0xf3, 0xef, //0x0000b818 .quad -1156417002403097458 + 0x8e, 0xf9, 0x64, 0x15, 0x10, 0xaf, 0xbd, 0x4a, //0x0000b820 .quad 5385653213018257806 + 0xd9, 0x9c, 0xb6, 0x1f, 0x0a, 0x3d, 0xf8, 0x95, //0x0000b828 .quad -7640289654143017767 + 0xf1, 0x37, 0xbe, 0x1a, 0xd4, 0x1a, 0x6d, 0x9d, //0x0000b830 .quad -7102991539009341455 + 0x0f, 0x44, 0xa4, 0xa7, 0x4c, 0x4c, 0x76, 0xbb, //0x0000b838 .quad -4938676049251384305 + 0xed, 0xc5, 0x6d, 0x21, 0x89, 0x61, 0xc8, 0x84, //0x0000b840 .quad -8878739423761676819 + 0x13, 0x55, 0x8d, 0xd1, 0x5f, 0xdf, 0x53, 0xea, //0x0000b848 .quad -1561659043136842477 + 0xb4, 0x9b, 0xe4, 0xb4, 0xf5, 0x3c, 0xfd, 0x32, //0x0000b850 .quad 3674159897003727796 + 0x2c, 0x55, 0xf8, 0xe2, 0x9b, 0x6b, 0x74, 0x92, //0x0000b858 .quad -7893565929601608404 + 0xa1, 0xc2, 0x1d, 0x22, 0x33, 0x8c, 0xbc, 0x3f, //0x0000b860 .quad 4592699871254659745 + 0x77, 0x6a, 0xb6, 0xdb, 0x82, 0x86, 0x11, 0xb7, //0x0000b868 .quad -5255271393574622601 + 0x4a, 0x33, 0xa5, 0xea, 0x3f, 0xaf, 0xab, 0x0f, //0x0000b870 .quad 1129188820640936778 + 0x15, 0x05, 0xa4, 0x92, 0x23, 0xe8, 0xd5, 0xe4, //0x0000b878 .quad -1957403223540890347 + 0x0e, 0x40, 0xa7, 0xf2, 0x87, 0x4d, 0xcb, 0x29, //0x0000b880 .quad 3011586022114279438 + 0x2d, 0x83, 0xa6, 0x3b, 0x16, 0xb1, 0x05, 0x8f, //0x0000b888 .quad -8140906042354138323 + 0x12, 0x10, 0x51, 0xef, 0xe9, 0x20, 0x3e, 0x74, //0x0000b890 .quad 8376168546070237202 + 0xf8, 0x23, 0x90, 0xca, 0x5b, 0x1d, 0xc7, 0xb2, //0x0000b898 .quad -5564446534515285000 + 0x16, 0x54, 0x25, 0x6b, 0x24, 0xa9, 0x4d, 0x91, //0x0000b8a0 .quad -7976533391121755114 + 0xf6, 0x2c, 0x34, 0xbd, 0xb2, 0xe4, 0x78, 0xdf, //0x0000b8a8 .quad -2343872149716718346 + 0x8e, 0x54, 0xf7, 0xc2, 0xb6, 0x89, 0xd0, 0x1a, //0x0000b8b0 .quad 1932195658189984910 + 0x1a, 0x9c, 0x40, 0xb6, 0xef, 0x8e, 0xab, 0x8b, //0x0000b8b8 .quad -8382449121214030822 + 0xb1, 0x29, 0xb5, 0x73, 0x24, 0xac, 0x84, 0xa1, //0x0000b8c0 .quad -6808127464117294671 + 0x20, 0xc3, 0xd0, 0xa3, 0xab, 0x72, 0x96, 0xae, //0x0000b8c8 .quad -5866375383090150624 + 0x1e, 0x74, 0xa2, 0x90, 0x2d, 0xd7, 0xe5, 0xc9, //0x0000b8d0 .quad -3898473311719230434 + 0xe8, 0xf3, 0xc4, 0x8c, 0x56, 0x0f, 0x3c, 0xda, //0x0000b8d8 .quad -2721283210435300376 + 0x92, 0x88, 0x65, 0x7a, 0x7c, 0xa6, 0x2f, 0x7e, //0x0000b8e0 .quad 9092669226243950738 + 0x71, 0x18, 0xfb, 0x17, 0x96, 0x89, 0x65, 0x88, //0x0000b8e8 .quad -8618331034163144591 + 0xb7, 0xea, 0xfe, 0x98, 0x1b, 0x90, 0xbb, 0xdd, //0x0000b8f0 .quad -2469221522477225289 + 0x8d, 0xde, 0xf9, 0x9d, 0xfb, 0xeb, 0x7e, 0xaa, //0x0000b8f8 .quad -6161227774276542835 + 0x65, 0xa5, 0x3e, 0x7f, 0x22, 0x74, 0x2a, 0x55, //0x0000b900 .quad 6136845133758244197 + 0x31, 0x56, 0x78, 0x85, 0xfa, 0xa6, 0x1e, 0xd5, //0x0000b908 .quad -3089848699418290639 + 0x5f, 0x27, 0x87, 0x8f, 0x95, 0x88, 0x3a, 0xd5, //0x0000b910 .quad -3082000819042179233 + 0xde, 0x35, 0x6b, 0x93, 0x5c, 0x28, 0x33, 0x85, //0x0000b918 .quad -8848684464777513506 + 0x37, 0xf1, 0x68, 0xf3, 0xba, 0x2a, 0x89, 0x8a, //0x0000b920 .quad -8464187042230111945 + 0x56, 0x03, 0x46, 0xb8, 0x73, 0xf2, 0x7f, 0xa6, //0x0000b928 .quad -6449169562544503978 + 0x85, 0x2d, 0x43, 0xb0, 0x69, 0x75, 0x2b, 0x2d, //0x0000b930 .quad 3254824252494523781 + 0x2c, 0x84, 0x57, 0xa6, 0x10, 0xef, 0x1f, 0xd0, //0x0000b938 .quad -3449775934753242068 + 0x73, 0xfc, 0x29, 0x0e, 0x62, 0x29, 0x3b, 0x9c, //0x0000b940 .quad -7189106879045698445 + 0x9b, 0xb2, 0xf6, 0x67, 0x6a, 0xf5, 0x13, 0x82, //0x0000b948 .quad -9073638986861858149 + 0x8f, 0x7b, 0xb4, 0x91, 0xba, 0xf3, 0x49, 0x83, //0x0000b950 .quad -8986383598807123057 + 0x42, 0x5f, 0xf4, 0x01, 0xc5, 0xf2, 0x98, 0xa2, //0x0000b958 .quad -6730362715149934782 + 0x73, 0x9a, 0x21, 0x36, 0xa9, 0x70, 0x1c, 0x24, //0x0000b960 .quad 2602078556773259891 + 0x13, 0x77, 0x71, 0x42, 0x76, 0x2f, 0x3f, 0xcb, //0x0000b968 .quad -3801267375510030573 + 0x10, 0x01, 0xaa, 0x83, 0xd3, 0x8c, 0x23, 0xed, //0x0000b970 .quad -1359087822460813040 + 0xd7, 0xd4, 0x0d, 0xd3, 0x53, 0xfb, 0x0e, 0xfe, //0x0000b978 .quad -139898200960150313 + 0xaa, 0x40, 0x4a, 0x32, 0x04, 0x38, 0x36, 0xf4, //0x0000b980 .quad -849429889038008150 + 0x06, 0xa5, 0xe8, 0x63, 0x14, 0x5d, 0xc9, 0x9e, //0x0000b988 .quad -7004965403241175802 + 0xd5, 0xd0, 0xdc, 0x3e, 0x05, 0xc6, 0x43, 0xb1, //0x0000b990 .quad -5673473379724898091 + 0x48, 0xce, 0xe2, 0x7c, 0x59, 0xb4, 0x7b, 0xc6, //0x0000b998 .quad -4144520735624081848 + 0x0a, 0x05, 0x94, 0x8e, 0x86, 0xb7, 0x94, 0xdd, //0x0000b9a0 .quad -2480155706228734710 + 0xda, 0x81, 0x1b, 0xdc, 0x6f, 0xa1, 0x1a, 0xf8, //0x0000b9a8 .quad -568964901102714406 + 0x26, 0x83, 0x1c, 0x19, 0xb4, 0xf2, 0x7c, 0xca, //0x0000b9b0 .quad -3855940325606653146 + 0x28, 0x31, 0x91, 0xe9, 0xe5, 0xa4, 0x10, 0x9b, //0x0000b9b8 .quad -7273132090830278360 + 0xf0, 0xa3, 0x63, 0x1f, 0x61, 0x2f, 0x1c, 0xfd, //0x0000b9c0 .quad -208239388580928528 + 0x72, 0x7d, 0xf5, 0x63, 0x1f, 0xce, 0xd4, 0xc1, //0x0000b9c8 .quad -4479729095110460046 + 0xec, 0x8c, 0x3c, 0x67, 0x39, 0x3b, 0x63, 0xbc, //0x0000b9d0 .quad -4871985254153548564 + 0xcf, 0xdc, 0xf2, 0x3c, 0xa7, 0x01, 0x4a, 0xf2, //0x0000b9d8 .quad -987975350460687153 + 0x13, 0xd8, 0x85, 0xe0, 0x03, 0x05, 0xbe, 0xd5, //0x0000b9e0 .quad -3044990783845967853 + 0x01, 0xca, 0x17, 0x86, 0x08, 0x41, 0x6e, 0x97, //0x0000b9e8 .quad -7535013621679011327 + 0x18, 0x4e, 0xa7, 0xd8, 0x44, 0x86, 0x2d, 0x4b, //0x0000b9f0 .quad 5417133557047315992 + 0x82, 0xbc, 0x9d, 0xa7, 0x4a, 0xd1, 0x49, 0xbd, //0x0000b9f8 .quad -4807081008671376254 + 0x9e, 0x21, 0xd1, 0x0e, 0xd6, 0xe7, 0xf8, 0xdd, //0x0000ba00 .quad -2451955090545630818 + 0xa2, 0x2b, 0x85, 0x51, 0x9d, 0x45, 0x9c, 0xec, //0x0000ba08 .quad -1397165242411832414 + 0x03, 0xb5, 0x42, 0xc9, 0xe5, 0x90, 0xbb, 0xca, //0x0000ba10 .quad -3838314940804713213 + 0x45, 0x3b, 0xf3, 0x52, 0x82, 0xab, 0xe1, 0x93, //0x0000ba18 .quad -7790757304148477115 + 0x43, 0x62, 0x93, 0x3b, 0x1f, 0x75, 0x6a, 0x3d, //0x0000ba20 .quad 4425478360848884291 + 0x17, 0x0a, 0xb0, 0xe7, 0x62, 0x16, 0xda, 0xb8, //0x0000ba28 .quad -5126760611758208489 + 0xd4, 0x3a, 0x78, 0x0a, 0x67, 0x12, 0xc5, 0x0c, //0x0000ba30 .quad 920161932633717460 + 0x9d, 0x0c, 0x9c, 0xa1, 0xfb, 0x9b, 0x10, 0xe7, //0x0000ba38 .quad -1796764746270372707 + 0xc5, 0x24, 0x8b, 0x66, 0x80, 0x2b, 0xfb, 0x27, //0x0000ba40 .quad 2880944217109767365 + 0xe2, 0x87, 0x01, 0x45, 0x7d, 0x61, 0x6a, 0x90, //0x0000ba48 .quad -8040506994060064798 + 0xf6, 0xed, 0x2d, 0x80, 0x60, 0xf6, 0xf9, 0xb1, //0x0000ba50 .quad -5622191765467566602 + 0xda, 0xe9, 0x41, 0x96, 0xdc, 0xf9, 0x84, 0xb4, //0x0000ba58 .quad -5438947724147693094 + 0x73, 0x69, 0x39, 0xa0, 0xf8, 0x73, 0x78, 0x5e, //0x0000ba60 .quad 6807318348447705459 + 0x51, 0x64, 0xd2, 0xbb, 0x53, 0x38, 0xa6, 0xe1, //0x0000ba68 .quad -2186998636757228463 + 0xe8, 0xe1, 0x23, 0x64, 0x7b, 0x48, 0x0b, 0xdb, //0x0000ba70 .quad -2662955059861265944 + 0xb2, 0x7e, 0x63, 0x55, 0x34, 0xe3, 0x07, 0x8d, //0x0000ba78 .quad -8284403175614349646 + 0x62, 0xda, 0x2c, 0x3d, 0x9a, 0x1a, 0xce, 0x91, //0x0000ba80 .quad -7940379843253970334 + 0x5f, 0x5e, 0xbc, 0x6a, 0x01, 0xdc, 0x49, 0xb0, //0x0000ba88 .quad -5743817951090549153 + 0xfb, 0x10, 0x78, 0xcc, 0x40, 0xa1, 0x41, 0x76, //0x0000ba90 .quad 8521269269642088699 + 0xf7, 0x75, 0x6b, 0xc5, 0x01, 0x53, 0x5c, 0xdc, //0x0000ba98 .quad -2568086420435798537 + 0x9d, 0x0a, 0xcb, 0x7f, 0xc8, 0x04, 0xe9, 0xa9, //0x0000baa0 .quad -6203421752542164323 + 0xba, 0x29, 0x63, 0x1b, 0xe1, 0xb3, 0xb9, 0x89, //0x0000baa8 .quad -8522583040413455942 + 0x44, 0xcd, 0xbd, 0x9f, 0xfa, 0x45, 0x63, 0x54, //0x0000bab0 .quad 6080780864604458308 + 0x29, 0xf4, 0x3b, 0x62, 0xd9, 0x20, 0x28, 0xac, //0x0000bab8 .quad -6041542782089432023 + 0x95, 0x40, 0xad, 0x47, 0x79, 0x17, 0x7c, 0xa9, //0x0000bac0 .quad -6234081974526590827 + 0x33, 0xf1, 0xca, 0xba, 0x0f, 0x29, 0x32, 0xd7, //0x0000bac8 .quad -2940242459184402125 + 0x5d, 0x48, 0xcc, 0xcc, 0xab, 0x8e, 0xed, 0x49, //0x0000bad0 .quad 5327070802775656541 + 0xc0, 0xd6, 0xbe, 0xd4, 0xa9, 0x59, 0x7f, 0x86, //0x0000bad8 .quad -8755180564631333184 + 0x74, 0x5a, 0xff, 0xbf, 0x56, 0xf2, 0x68, 0x5c, //0x0000bae0 .quad 6658838503469570676 + 0x70, 0x8c, 0xee, 0x49, 0x14, 0x30, 0x1f, 0xa8, //0x0000bae8 .quad -6332289687361778576 + 0x11, 0x31, 0xff, 0x6f, 0xec, 0x2e, 0x83, 0x73, //0x0000baf0 .quad 8323548129336963345 + 0x8c, 0x2f, 0x6a, 0x5c, 0x19, 0xfc, 0x26, 0xd2, //0x0000baf8 .quad -3303676090774835316 + 0xab, 0x7e, 0xff, 0xc5, 0x53, 0xfd, 0x31, 0xc8, //0x0000bb00 .quad -4021154456019173717 + 0xb7, 0x5d, 0xc2, 0xd9, 0x8f, 0x5d, 0x58, 0x83, //0x0000bb08 .quad -8982326584375353929 + 0x55, 0x5e, 0x7f, 0xb7, 0xa8, 0x7c, 0x3e, 0xba, //0x0000bb10 .quad -5026443070023967147 + 0x25, 0xf5, 0x32, 0xd0, 0xf3, 0x74, 0x2e, 0xa4, //0x0000bb18 .quad -6616222212041804507 + 0xeb, 0x35, 0x5f, 0xe5, 0xd2, 0x1b, 0xce, 0x28, //0x0000bb20 .quad 2940318199324816875 + 0x6f, 0xb2, 0x3f, 0xc4, 0x30, 0x12, 0x3a, 0xcd, //0x0000bb28 .quad -3658591746624867729 + 0xb3, 0x81, 0x5b, 0xcf, 0x63, 0xd1, 0x80, 0x79, //0x0000bb30 .quad 8755227902219092403 + 0x85, 0xcf, 0xa7, 0x7a, 0x5e, 0x4b, 0x44, 0x80, //0x0000bb38 .quad -9204148869281624187 + 0x1f, 0x62, 0x32, 0xc3, 0xbc, 0x05, 0xe1, 0xd7, //0x0000bb40 .quad -2891023177508298209 + 0x66, 0xc3, 0x51, 0x19, 0x36, 0x5e, 0x55, 0xa0, //0x0000bb48 .quad -6893500068174642330 + 0xa7, 0xfa, 0xfe, 0xf3, 0x2b, 0x47, 0xd9, 0x8d, //0x0000bb50 .quad -8225464990312760665 + 0x40, 0x34, 0xa6, 0x9f, 0xc3, 0xb5, 0x6a, 0xc8, //0x0000bb58 .quad -4005189066790915008 + 0x51, 0xb9, 0xfe, 0xf0, 0xf6, 0x98, 0x4f, 0xb1, //0x0000bb60 .quad -5670145219463562927 + 0x50, 0xc1, 0x8f, 0x87, 0x34, 0x63, 0x85, 0xfa, //0x0000bb68 .quad -394800315061255856 + 0xd3, 0x33, 0x9f, 0x56, 0x9a, 0xbf, 0xd1, 0x6e, //0x0000bb70 .quad 7985374283903742931 + 0xd2, 0xd8, 0xb9, 0xd4, 0x00, 0x5e, 0x93, 0x9c, //0x0000bb78 .quad -7164279224554366766 + 0xc8, 0x00, 0x47, 0xec, 0x80, 0x2f, 0x86, 0x0a, //0x0000bb80 .quad 758345818024902856 + 0x07, 0x4f, 0xe8, 0x09, 0x81, 0x35, 0xb8, 0xc3, //0x0000bb88 .quad -4343663012265570553 + 0xfa, 0xc0, 0x58, 0x27, 0x61, 0xbb, 0x27, 0xcd, //0x0000bb90 .quad -3663753745896259334 + 0xc8, 0x62, 0x62, 0x4c, 0xe1, 0x42, 0xa6, 0xf4, //0x0000bb98 .quad -817892746904575288 + 0x9c, 0x78, 0x97, 0xb8, 0x1c, 0xd5, 0x38, 0x80, //0x0000bba0 .quad -9207375118826243940 + 0xbd, 0x7d, 0xbd, 0xcf, 0xcc, 0xe9, 0xe7, 0x98, //0x0000bba8 .quad -7428711994456441411 + 0xc3, 0x56, 0xbd, 0xe6, 0x63, 0x0a, 0x47, 0xe0, //0x0000bbb0 .quad -2285846861678029117 + 0x2c, 0xdd, 0xac, 0x03, 0x40, 0xe4, 0x21, 0xbf, //0x0000bbb8 .quad -4674203974643163860 + 0x74, 0xac, 0x6c, 0xe0, 0xfc, 0xcc, 0x58, 0x18, //0x0000bbc0 .quad 1754377441329851508 + 0x78, 0x14, 0x98, 0x04, 0x50, 0x5d, 0xea, 0xee, //0x0000bbc8 .quad -1231068949876566920 + 0xc8, 0xeb, 0x43, 0x0c, 0x1e, 0x80, 0x37, 0x0f, //0x0000bbd0 .quad 1096485900831157192 + 0xcb, 0x0c, 0xdf, 0x02, 0x52, 0x7a, 0x52, 0x95, //0x0000bbd8 .quad -7686947121313936181 + 0xba, 0xe6, 0x54, 0x8f, 0x25, 0x60, 0x05, 0xd3, //0x0000bbe0 .quad -3241078642388441414 + 0xfd, 0xcf, 0x96, 0x83, 0xe6, 0x18, 0xa7, 0xba, //0x0000bbe8 .quad -4996997883215032323 + 0x69, 0x20, 0x2a, 0xf3, 0x2e, 0xb8, 0xc6, 0x47, //0x0000bbf0 .quad 5172023733869224041 + 0xfd, 0x83, 0x7c, 0x24, 0x20, 0xdf, 0x50, 0xe9, //0x0000bbf8 .quad -1634561335591402499 + 0x41, 0x54, 0xfa, 0x57, 0x1d, 0x33, 0xdc, 0x4c, //0x0000bc00 .quad 5538357842881958977 + 0x7e, 0xd2, 0xcd, 0x16, 0x74, 0x8b, 0xd2, 0x91, //0x0000bc08 .quad -7939129862385708418 + 0x52, 0xe9, 0xf8, 0xad, 0xe4, 0x3f, 0x13, 0xe0, //0x0000bc10 .quad -2300424733252327086 + 0x1d, 0x47, 0x81, 0x1c, 0x51, 0x2e, 0x47, 0xb6, //0x0000bc18 .quad -5312226309554747619 + 0xa6, 0x23, 0x77, 0xd9, 0xdd, 0x0f, 0x18, 0x58, //0x0000bc20 .quad 6347841120289366950 + 0xe5, 0x98, 0xa1, 0x63, 0xe5, 0xf9, 0xd8, 0xe3, //0x0000bc28 .quad -2028596868516046619 + 0x48, 0x76, 0xea, 0xa7, 0xea, 0x09, 0x0f, 0x57, //0x0000bc30 .quad 6273243709394548296 + 0x8f, 0xff, 0x44, 0x5e, 0x2f, 0x9c, 0x67, 0x8e, //0x0000bc38 .quad -8185402070463610993 + 0xda, 0x13, 0xe5, 0x51, 0x65, 0xcc, 0xd2, 0x2c, //0x0000bc40 .quad 3229868618315797466 + 0x73, 0x3f, 0xd6, 0x35, 0x3b, 0x83, 0x01, 0xb2, //0x0000bc48 .quad -5620066569652125837 + 0xd1, 0x58, 0x5e, 0xa6, 0x7e, 0x7f, 0x07, 0xf8, //0x0000bc50 .quad -574350245532641071 + 0x4f, 0xcf, 0x4b, 0x03, 0x0a, 0xe4, 0x81, 0xde, //0x0000bc58 .quad -2413397193637769393 + 0x82, 0xf7, 0xfa, 0x27, 0xaf, 0xaf, 0x04, 0xfb, //0x0000bc60 .quad -358968903457900670 + 0x91, 0x61, 0x0f, 0x42, 0x86, 0x2e, 0x11, 0x8b, //0x0000bc68 .quad -8425902273664687727 + 0x63, 0xb5, 0xf9, 0xf1, 0x9a, 0xdb, 0xc5, 0x79, //0x0000bc70 .quad 8774660907532399971 + 0xf6, 0x39, 0x93, 0xd2, 0x27, 0x7a, 0xd5, 0xad, //0x0000bc78 .quad -5920691823653471754 + 0xbc, 0x22, 0x78, 0xae, 0x81, 0x52, 0x37, 0x18, //0x0000bc80 .quad 1744954097560724156 + 0x74, 0x08, 0x38, 0xc7, 0xb1, 0xd8, 0x4a, 0xd9, //0x0000bc88 .quad -2789178761139451788 + 0xb5, 0x15, 0x0b, 0x0d, 0x91, 0x93, 0x22, 0x8f, //0x0000bc90 .quad -8132775725879323211 + 0x48, 0x05, 0x83, 0x1c, 0x6f, 0xc7, 0xce, 0x87, //0x0000bc98 .quad -8660765753353239224 + 0x22, 0xdb, 0x4d, 0x50, 0x75, 0x38, 0xeb, 0xb2, //0x0000bca0 .quad -5554283638921766110 + 0x9a, 0xc6, 0xa3, 0xe3, 0x4a, 0x79, 0xc2, 0xa9, //0x0000bca8 .quad -6214271173264161126 + 0xeb, 0x51, 0x61, 0xa4, 0x92, 0x06, 0xa6, 0x5f, //0x0000bcb0 .quad 6892203506629956075 + 0x41, 0xb8, 0x8c, 0x9c, 0x9d, 0x17, 0x33, 0xd4, //0x0000bcb8 .quad -3156152948152813503 + 0x33, 0xd3, 0xbc, 0xa6, 0x1b, 0xc4, 0xc7, 0xdb, //0x0000bcc0 .quad -2609901835997359309 + 0x28, 0xf3, 0xd7, 0x81, 0xc2, 0xee, 0x9f, 0x84, //0x0000bcc8 .quad -8890124620236590296 + 0x00, 0x08, 0x6c, 0x90, 0x22, 0xb5, 0xb9, 0x12, //0x0000bcd0 .quad 1349308723430688768 + 0xf3, 0xef, 0x4d, 0x22, 0x73, 0xea, 0xc7, 0xa5, //0x0000bcd8 .quad -6500969756868349965 + 0x00, 0x0a, 0x87, 0x34, 0x6b, 0x22, 0x68, 0xd7, //0x0000bce0 .quad -2925050114139026944 + 0xef, 0x6b, 0xe1, 0xea, 0x0f, 0xe5, 0x39, 0xcf, //0x0000bce8 .quad -3514526177658049553 + 0x40, 0x66, 0xd4, 0x00, 0x83, 0x15, 0xa1, 0xe6, //0x0000bcf0 .quad -1828156321336891840 + 0x75, 0xe3, 0xcc, 0xf2, 0x29, 0x2f, 0x84, 0x81, //0x0000bcf8 .quad -9114107888677362827 + 0xd0, 0x7f, 0x09, 0xc1, 0xe3, 0x5a, 0x49, 0x60, //0x0000bd00 .quad 6938176635183661008 + 0x53, 0x1c, 0x80, 0x6f, 0xf4, 0x3a, 0xe5, 0xa1, //0x0000bd08 .quad -6780948842419315629 + 0xc4, 0xdf, 0x4b, 0xb1, 0x9c, 0xb1, 0x5b, 0x38, //0x0000bd10 .quad 4061034775552188356 + 0x68, 0x23, 0x60, 0x8b, 0xb1, 0x89, 0x5e, 0xca, //0x0000bd18 .quad -3864500034596756632 + 0xb5, 0xd7, 0x9e, 0xdd, 0x03, 0x9e, 0x72, 0x46, //0x0000bd20 .quad 5076293469440235445 + 0x42, 0x2c, 0x38, 0xee, 0x1d, 0x2c, 0xf6, 0xfc, //0x0000bd28 .quad -218939024818557886 + 0xd1, 0x46, 0x83, 0x6a, 0xc2, 0xa2, 0x07, 0x6c, //0x0000bd30 .quad 7784369436827535057 + 0xa9, 0x1b, 0xe3, 0xb4, 0x92, 0xdb, 0x19, 0x9e, //0x0000bd38 .quad -7054365918152680535 + 0x85, 0x18, 0x24, 0x05, 0x73, 0x8b, 0x09, 0xc7, //0x0000bd40 .quad -4104596259247744891 + 0x93, 0xe2, 0x1b, 0x62, 0x77, 0x52, 0xa0, 0xc5, //0x0000bd48 .quad -4206271379263462765 + 0xa7, 0x1e, 0x6d, 0xc6, 0x4f, 0xee, 0xcb, 0xb8, //0x0000bd50 .quad -5130745324059681113 + 0x38, 0xdb, 0xa2, 0x3a, 0x15, 0x67, 0x08, 0xf7, //0x0000bd58 .quad -646153205651940552 + 0x28, 0x33, 0x04, 0xdc, 0xf1, 0x74, 0x7f, 0x73, //0x0000bd60 .quad 8322499218531169064 + 0x03, 0xc9, 0xa5, 0x44, 0x6d, 0x40, 0x65, 0x9a, //0x0000bd68 .quad -7321374781173544701 + 0xf2, 0x3f, 0x05, 0x53, 0x2e, 0x52, 0x5f, 0x50, //0x0000bd70 .quad 5791438004736573426 + 0x44, 0x3b, 0xcf, 0x95, 0x88, 0x90, 0xfe, 0xc0, //0x0000bd78 .quad -4540032458039542972 + 0xef, 0x8f, 0xc6, 0xe7, 0xb9, 0x26, 0x77, 0x64, //0x0000bd80 .quad 7239297505920716783 + 0x15, 0x0a, 0x43, 0xbb, 0xaa, 0x34, 0x3e, 0xf1, //0x0000bd88 .quad -1063354554122040811 + 0xf5, 0x19, 0xdc, 0x30, 0x34, 0x78, 0xca, 0x5e, //0x0000bd90 .quad 6830403950414141941 + 0x4d, 0xe6, 0x09, 0xb5, 0xea, 0xe0, 0xc6, 0x96, //0x0000bd98 .quad -7582125623967357363 + 0x72, 0x20, 0x13, 0x3d, 0x41, 0x16, 0x7d, 0xb6, //0x0000bda0 .quad -5297053117264486286 + 0xe0, 0x5f, 0x4c, 0x62, 0x25, 0x99, 0x78, 0xbc, //0x0000bda8 .quad -4865971011531808800 + 0x8f, 0xe8, 0x57, 0x8c, 0xd1, 0x5b, 0x1c, 0xe4, //0x0000bdb0 .quad -2009630378153219953 + 0xd8, 0x77, 0xdf, 0xba, 0x6e, 0xbf, 0x96, 0xeb, //0x0000bdb8 .quad -1470777745987373096 + 0x59, 0xf1, 0xb6, 0xf7, 0x62, 0xb9, 0x91, 0x8e, //0x0000bdc0 .quad -8173548013986844327 + 0xe7, 0xaa, 0xcb, 0x34, 0xa5, 0x37, 0x3e, 0x93, //0x0000bdc8 .quad -7836765118883190041 + 0xb0, 0xad, 0xa4, 0xb5, 0xbb, 0x27, 0x36, 0x72, //0x0000bdd0 .quad 8229809056225996208 + 0xa1, 0x95, 0xfe, 0x81, 0x8e, 0xc5, 0x0d, 0xb8, //0x0000bdd8 .quad -5184270380176599647 + 0x1c, 0xd9, 0x0d, 0xa3, 0xaa, 0xb1, 0xc3, 0xce, //0x0000bde0 .quad -3547796734999668452 + 0x09, 0x3b, 0x7e, 0x22, 0xf2, 0x36, 0x11, 0xe6, //0x0000bde8 .quad -1868651956793361655 + 0xb1, 0xa7, 0xe8, 0xa5, 0x0a, 0x4f, 0x3a, 0x21, //0x0000bdf0 .quad 2394313059052595121 + 0xe6, 0xe4, 0x8e, 0x55, 0x57, 0xc2, 0xca, 0x8f, //0x0000bdf8 .quad -8085436500636932890 + 0x9d, 0xd1, 0x62, 0x4f, 0xcd, 0xe2, 0x88, 0xa9, //0x0000be00 .quad -6230480713039031907 + 0x1f, 0x9e, 0xf2, 0x2a, 0xed, 0x72, 0xbd, 0xb3, //0x0000be08 .quad -5495109607368778209 + 0x05, 0x86, 0x3b, 0xa3, 0x80, 0x1b, 0xeb, 0x93, //0x0000be10 .quad -7788100891298789883 + 0xa7, 0x45, 0xaf, 0x75, 0xa8, 0xcf, 0xac, 0xe0, //0x0000be18 .quad -2257200990783584857 + 0xc3, 0x33, 0x05, 0x66, 0x30, 0xf1, 0x72, 0xbc, //0x0000be20 .quad -4867563057061743677 + 0x88, 0x8b, 0x8d, 0x49, 0xc9, 0x01, 0x6c, 0x8c, //0x0000be28 .quad -8328279646880822392 + 0xb4, 0x80, 0x86, 0x7f, 0x7c, 0xad, 0x8f, 0xeb, //0x0000be30 .quad -1472767802899791692 + 0x6a, 0xee, 0xf0, 0x9b, 0x3b, 0x02, 0x87, 0xaf, //0x0000be38 .quad -5798663540173640086 + 0xe1, 0x20, 0x68, 0x9f, 0xdb, 0x98, 0x73, 0xa6, //0x0000be40 .quad -6452645772052127519 + 0x05, 0x2a, 0xed, 0x82, 0xca, 0xc2, 0x68, 0xdb, //0x0000be48 .quad -2636643406789662203 + 0x8c, 0x14, 0xa1, 0x43, 0x89, 0x3f, 0x08, 0x88, //0x0000be50 .quad -8644589625959967604 + 0x43, 0x3a, 0xd4, 0x91, 0xbe, 0x79, 0x21, 0x89, //0x0000be58 .quad -8565431156884620733 + 0xb0, 0x59, 0x89, 0x94, 0x6b, 0x4f, 0x0a, 0x6a, //0x0000be60 .quad 7641007041259592112 + 0xd4, 0x48, 0x49, 0x36, 0x2e, 0xd8, 0x69, 0xab, //0x0000be68 .quad -6095102927678388012 + 0x1c, 0xb0, 0xab, 0x79, 0x46, 0xe3, 0x8c, 0x84, //0x0000be70 .quad -8895485272135061476 + 0x09, 0x9b, 0xdb, 0xc3, 0x39, 0x4e, 0x44, 0xd6, //0x0000be78 .quad -3007192641170597111 + 0x11, 0x4e, 0x0b, 0x0c, 0x0c, 0x0e, 0xd8, 0xf2, //0x0000be80 .quad -947992276657025519 + 0xe5, 0x40, 0x69, 0x1a, 0xe4, 0xb0, 0xea, 0x85, //0x0000be88 .quad -8797024428372705051 + 0x95, 0x21, 0x0e, 0x0f, 0x8f, 0x11, 0x8e, 0x6f, //0x0000be90 .quad 8038381691033493909 + 0x1f, 0x91, 0x03, 0x21, 0x1d, 0x5d, 0x65, 0xa7, //0x0000be98 .quad -6384594517038493409 + 0xfb, 0xa9, 0xd1, 0xd2, 0xf2, 0x95, 0x71, 0x4b, //0x0000bea0 .quad 5436291095364479483 + 0x67, 0x75, 0x44, 0x69, 0x64, 0xb4, 0x3e, 0xd1, //0x0000bea8 .quad -3369057127870728857 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000beb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + //0x0000bec0 .p2align 4, 0x00 + //0x0000bec0 _POW_TAB + 0x01, 0x00, 0x00, 0x00, //0x0000bec0 .long 1 + 0x03, 0x00, 0x00, 0x00, //0x0000bec4 .long 3 + 0x06, 0x00, 0x00, 0x00, //0x0000bec8 .long 6 + 0x09, 0x00, 0x00, 0x00, //0x0000becc .long 9 + 0x0d, 0x00, 0x00, 0x00, //0x0000bed0 .long 13 + 0x10, 0x00, 0x00, 0x00, //0x0000bed4 .long 16 + 0x13, 0x00, 0x00, 0x00, //0x0000bed8 .long 19 + 0x17, 0x00, 0x00, 0x00, //0x0000bedc .long 23 + 0x1a, 0x00, 0x00, 0x00, //0x0000bee0 .long 26 + //0x0000bee4 .p2align 2, 0x00 + //0x0000bee4 _MASK_USE_NUMBER + 0x02, 0x00, 0x00, 0x00, //0x0000bee4 .long 2 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000bee8 .p2align 4, 0x00 + //0x0000bef0 _Digits + 0x30, 0x30, 0x30, 0x31, 0x30, 0x32, 0x30, 0x33, 0x30, 0x34, 0x30, 0x35, 0x30, 0x36, 0x30, 0x37, //0x0000bef0 QUAD $0x3330323031303030; QUAD $0x3730363035303430 // .ascii 16, '0001020304050607' + 0x30, 0x38, 0x30, 0x39, 0x31, 0x30, 0x31, 0x31, 0x31, 0x32, 0x31, 0x33, 0x31, 0x34, 0x31, 0x35, //0x0000bf00 QUAD $0x3131303139303830; QUAD $0x3531343133313231 // .ascii 16, '0809101112131415' + 0x31, 0x36, 0x31, 0x37, 0x31, 0x38, 0x31, 0x39, 0x32, 0x30, 0x32, 0x31, 0x32, 0x32, 0x32, 0x33, //0x0000bf10 QUAD $0x3931383137313631; QUAD $0x3332323231323032 // .ascii 16, '1617181920212223' + 0x32, 0x34, 0x32, 0x35, 0x32, 0x36, 0x32, 0x37, 0x32, 0x38, 0x32, 0x39, 0x33, 0x30, 0x33, 0x31, //0x0000bf20 QUAD $0x3732363235323432; QUAD $0x3133303339323832 // .ascii 16, '2425262728293031' + 0x33, 0x32, 0x33, 0x33, 0x33, 0x34, 0x33, 0x35, 0x33, 0x36, 0x33, 0x37, 0x33, 0x38, 0x33, 0x39, //0x0000bf30 QUAD $0x3533343333333233; QUAD $0x3933383337333633 // .ascii 16, '3233343536373839' + 0x34, 0x30, 0x34, 0x31, 0x34, 0x32, 0x34, 0x33, 0x34, 0x34, 0x34, 0x35, 0x34, 0x36, 0x34, 0x37, //0x0000bf40 QUAD $0x3334323431343034; QUAD $0x3734363435343434 // .ascii 16, '4041424344454647' + 0x34, 0x38, 0x34, 0x39, 0x35, 0x30, 0x35, 0x31, 0x35, 0x32, 0x35, 0x33, 0x35, 0x34, 0x35, 0x35, //0x0000bf50 QUAD $0x3135303539343834; QUAD $0x3535343533353235 // .ascii 16, '4849505152535455' + 0x35, 0x36, 0x35, 0x37, 0x35, 0x38, 0x35, 0x39, 0x36, 0x30, 0x36, 0x31, 0x36, 0x32, 0x36, 0x33, //0x0000bf60 QUAD $0x3935383537353635; QUAD $0x3336323631363036 // .ascii 16, '5657585960616263' + 0x36, 0x34, 0x36, 0x35, 0x36, 0x36, 0x36, 0x37, 0x36, 0x38, 0x36, 0x39, 0x37, 0x30, 0x37, 0x31, //0x0000bf70 QUAD $0x3736363635363436; QUAD $0x3137303739363836 // .ascii 16, '6465666768697071' + 0x37, 0x32, 0x37, 0x33, 0x37, 0x34, 0x37, 0x35, 0x37, 0x36, 0x37, 0x37, 0x37, 0x38, 0x37, 0x39, //0x0000bf80 QUAD $0x3537343733373237; QUAD $0x3937383737373637 // .ascii 16, '7273747576777879' + 0x38, 0x30, 0x38, 0x31, 0x38, 0x32, 0x38, 0x33, 0x38, 0x34, 0x38, 0x35, 0x38, 0x36, 0x38, 0x37, //0x0000bf90 QUAD $0x3338323831383038; QUAD $0x3738363835383438 // .ascii 16, '8081828384858687' + 0x38, 0x38, 0x38, 0x39, 0x39, 0x30, 0x39, 0x31, 0x39, 0x32, 0x39, 0x33, 0x39, 0x34, 0x39, 0x35, //0x0000bfa0 QUAD $0x3139303939383838; QUAD $0x3539343933393239 // .ascii 16, '8889909192939495' + 0x39, 0x36, 0x39, 0x37, 0x39, 0x38, 0x39, 0x39, //0x0000bfb0 QUAD $0x3939383937393639 // .ascii 8, '96979899' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000bfb8 .p2align 4, 0x00 + //0x0000bfc0 _pow10_ceil_sig.g + 0x4f, 0xdc, 0xbc, 0xbe, 0xfc, 0xb1, 0x77, 0xff, //0x0000bfc0 .quad -38366372719436721 + 0x7b, 0x0f, 0xbb, 0x13, 0x9c, 0xe8, 0xe8, 0x25, //0x0000bfc8 .quad 2731688931043774331 + 0xb1, 0x09, 0x36, 0xf7, 0x3d, 0xcf, 0xaa, 0x9f, //0x0000bfd0 .quad -6941508010590729807 + 0xad, 0xe9, 0x54, 0x8c, 0x61, 0x91, 0xb1, 0x77, //0x0000bfd8 .quad 8624834609543440813 + 0x1d, 0x8c, 0x03, 0x75, 0x0d, 0x83, 0x95, 0xc7, //0x0000bfe0 .quad -4065198994811024355 + 0x18, 0x24, 0x6a, 0xef, 0xb9, 0xf5, 0x9d, 0xd5, //0x0000bfe8 .quad -3054014793352862696 + 0x25, 0x6f, 0x44, 0xd2, 0xd0, 0xe3, 0x7a, 0xf9, //0x0000bff0 .quad -469812725086392539 + 0x1e, 0xad, 0x44, 0x6b, 0x28, 0x73, 0x05, 0x4b, //0x0000bff8 .quad 5405853545163697438 + 0x77, 0xc5, 0x6a, 0x83, 0x62, 0xce, 0xec, 0x9b, //0x0000c000 .quad -7211161980820077193 + 0x33, 0xec, 0x0a, 0x43, 0xf9, 0x67, 0xe3, 0x4e, //0x0000c008 .quad 5684501474941004851 + 0xd5, 0x76, 0x45, 0x24, 0xfb, 0x01, 0xe8, 0xc2, //0x0000c010 .quad -4402266457597708587 + 0x40, 0xa7, 0xcd, 0x93, 0xf7, 0x41, 0x9c, 0x22, //0x0000c018 .quad 2493940825248868160 + 0x8a, 0xd4, 0x56, 0xed, 0x79, 0x02, 0xa2, 0xf3, //0x0000c020 .quad -891147053569747830 + 0x10, 0x11, 0xc1, 0x78, 0x75, 0x52, 0x43, 0x6b, //0x0000c028 .quad 7729112049988473104 + 0xd6, 0x44, 0x56, 0x34, 0x8c, 0x41, 0x45, 0x98, //0x0000c030 .quad -7474495936122174250 + 0xaa, 0xaa, 0x78, 0x6b, 0x89, 0x13, 0x0a, 0x83, //0x0000c038 .quad -9004363024039368022 + 0x0c, 0xd6, 0x6b, 0x41, 0xef, 0x91, 0x56, 0xbe, //0x0000c040 .quad -4731433901725329908 + 0x54, 0xd5, 0x56, 0xc6, 0x6b, 0x98, 0xcc, 0x23, //0x0000c048 .quad 2579604275232953684 + 0x8f, 0xcb, 0xc6, 0x11, 0x6b, 0x36, 0xec, 0xed, //0x0000c050 .quad -1302606358729274481 + 0xa9, 0x8a, 0xec, 0xb7, 0x86, 0xbe, 0xbf, 0x2c, //0x0000c058 .quad 3224505344041192105 + 0x39, 0x3f, 0x1c, 0xeb, 0x02, 0xa2, 0xb3, 0x94, //0x0000c060 .quad -7731658001846878407 + 0xaa, 0xd6, 0xf3, 0x32, 0x14, 0xd7, 0xf7, 0x7b, //0x0000c068 .quad 8932844867666826922 + 0x07, 0x4f, 0xe3, 0xa5, 0x83, 0x8a, 0xe0, 0xb9, //0x0000c070 .quad -5052886483881210105 + 0x54, 0xcc, 0xb0, 0x3f, 0xd9, 0xcc, 0xf5, 0xda, //0x0000c078 .quad -2669001970698630060 + 0xc9, 0x22, 0x5c, 0x8f, 0x24, 0xad, 0x58, 0xe8, //0x0000c080 .quad -1704422086424124727 + 0x69, 0xff, 0x9c, 0x8f, 0x0f, 0x40, 0xb3, 0xd1, //0x0000c088 .quad -3336252463373287575 + 0xbe, 0x95, 0x99, 0xd9, 0x36, 0x6c, 0x37, 0x91, //0x0000c090 .quad -7982792831656159810 + 0xa2, 0x1f, 0xc2, 0xb9, 0x09, 0x08, 0x10, 0x23, //0x0000c098 .quad 2526528228819083170 + 0x2d, 0xfb, 0xff, 0x8f, 0x44, 0x47, 0x85, 0xb5, //0x0000c0a0 .quad -5366805021142811859 + 0x8b, 0xa7, 0x32, 0x28, 0x0c, 0x0a, 0xd4, 0xab, //0x0000c0a8 .quad -6065211750830921845 + 0xf9, 0xf9, 0xff, 0xb3, 0x15, 0x99, 0xe6, 0xe2, //0x0000c0b0 .quad -2096820258001126919 + 0x6d, 0x51, 0x3f, 0x32, 0x8f, 0x0c, 0xc9, 0x16, //0x0000c0b8 .quad 1641857348316123501 + 0x3b, 0xfc, 0x7f, 0x90, 0xad, 0x1f, 0xd0, 0x8d, //0x0000c0c0 .quad -8228041688891786181 + 0xe4, 0x92, 0x67, 0x7f, 0xd9, 0xa7, 0x3d, 0xae, //0x0000c0c8 .quad -5891368184943504668 + 0x4a, 0xfb, 0x9f, 0xf4, 0x98, 0x27, 0x44, 0xb1, //0x0000c0d0 .quad -5673366092687344822 + 0x9d, 0x77, 0x41, 0xdf, 0xcf, 0x11, 0xcd, 0x99, //0x0000c0d8 .quad -7364210231179380835 + 0x1d, 0xfa, 0xc7, 0x31, 0x7f, 0x31, 0x95, 0xdd, //0x0000c0e0 .quad -2480021597431793123 + 0x84, 0xd5, 0x11, 0xd7, 0x43, 0x56, 0x40, 0x40, //0x0000c0e8 .quad 4629795266307937668 + 0x52, 0xfc, 0x1c, 0x7f, 0xef, 0x3e, 0x7d, 0x8a, //0x0000c0f0 .quad -8467542526035952558 + 0x73, 0x25, 0x6b, 0x66, 0xea, 0x35, 0x28, 0x48, //0x0000c0f8 .quad 5199465050656154995 + 0x66, 0x3b, 0xe4, 0x5e, 0xab, 0x8e, 0x1c, 0xad, //0x0000c100 .quad -5972742139117552794 + 0xd0, 0xee, 0x05, 0x00, 0x65, 0x43, 0x32, 0xda, //0x0000c108 .quad -2724040723534582064 + 0x40, 0x4a, 0x9d, 0x36, 0x56, 0xb2, 0x63, 0xd8, //0x0000c110 .quad -2854241655469553088 + 0x83, 0x6a, 0x07, 0x40, 0x3e, 0xd4, 0xbe, 0x90, //0x0000c118 .quad -8016736922845615485 + 0x68, 0x4e, 0x22, 0xe2, 0x75, 0x4f, 0x3e, 0x87, //0x0000c120 .quad -8701430062309552536 + 0x92, 0xa2, 0x04, 0xe8, 0xa6, 0x44, 0x77, 0x5a, //0x0000c128 .quad 6518754469289960082 + 0x02, 0xe2, 0xaa, 0x5a, 0x53, 0xe3, 0x0d, 0xa9, //0x0000c130 .quad -6265101559459552766 + 0x37, 0xcb, 0x05, 0xa2, 0xd0, 0x15, 0x15, 0x71, //0x0000c138 .quad 8148443086612450103 + 0x83, 0x9a, 0x55, 0x31, 0x28, 0x5c, 0x51, 0xd3, //0x0000c140 .quad -3219690930897053053 + 0x04, 0x3e, 0x87, 0xca, 0x44, 0x5b, 0x5a, 0x0d, //0x0000c148 .quad 962181821410786820 + 0x91, 0x80, 0xd5, 0x1e, 0x99, 0xd9, 0x12, 0x84, //0x0000c150 .quad -8929835859451740015 + 0xc3, 0x86, 0x94, 0xfe, 0x0a, 0x79, 0x58, 0xe8, //0x0000c158 .quad -1704479370831952189 + 0xb6, 0xe0, 0x8a, 0x66, 0xff, 0x8f, 0x17, 0xa5, //0x0000c160 .quad -6550608805887287114 + 0x73, 0xa8, 0x39, 0xbe, 0x4d, 0x97, 0x6e, 0x62, //0x0000c168 .quad 7092772823314835571 + 0xe3, 0x98, 0x2d, 0x40, 0xff, 0x73, 0x5d, 0xce, //0x0000c170 .quad -3576574988931720989 + 0x90, 0x12, 0xc8, 0x2d, 0x21, 0x3d, 0x0a, 0xfb, //0x0000c178 .quad -357406007711231344 + 0x8e, 0x7f, 0x1c, 0x88, 0x7f, 0x68, 0xfa, 0x80, //0x0000c180 .quad -9152888395723407474 + 0x9a, 0x0b, 0x9d, 0xbc, 0x34, 0x66, 0xe6, 0x7c, //0x0000c188 .quad 8999993282035256218 + 0x72, 0x9f, 0x23, 0x6a, 0x9f, 0x02, 0x39, 0xa1, //0x0000c190 .quad -6829424476226871438 + 0x81, 0x4e, 0xc4, 0xeb, 0xc1, 0xff, 0x1f, 0x1c, //0x0000c198 .quad 2026619565689294465 + 0x4e, 0x87, 0xac, 0x44, 0x47, 0x43, 0x87, 0xc9, //0x0000c1a0 .quad -3925094576856201394 + 0x21, 0x62, 0xb5, 0x66, 0xb2, 0xff, 0x27, 0xa3, //0x0000c1a8 .quad -6690097579743157727 + 0x22, 0xa9, 0xd7, 0x15, 0x19, 0x14, 0xe9, 0xfb, //0x0000c1b0 .quad -294682202642863838 + 0xa9, 0xba, 0x62, 0x00, 0x9f, 0xff, 0xf1, 0x4b, //0x0000c1b8 .quad 5472436080603216553 + 0xb5, 0xc9, 0xa6, 0xad, 0x8f, 0xac, 0x71, 0x9d, //0x0000c1c0 .quad -7101705404292871755 + 0xaa, 0xb4, 0x3d, 0x60, 0xc3, 0x3f, 0x77, 0x6f, //0x0000c1c8 .quad 8031958568804398250 + 0x22, 0x7c, 0x10, 0x99, 0xb3, 0x17, 0xce, 0xc4, //0x0000c1d0 .quad -4265445736938701790 + 0xd4, 0x21, 0x4d, 0x38, 0xb4, 0x0f, 0x55, 0xcb, //0x0000c1d8 .quad -3795109844276665900 + 0x2b, 0x9b, 0x54, 0x7f, 0xa0, 0x9d, 0x01, 0xf6, //0x0000c1e0 .quad -720121152745989333 + 0x49, 0x6a, 0x60, 0x46, 0xa1, 0x53, 0x2a, 0x7e, //0x0000c1e8 .quad 9091170749936331337 + 0xfb, 0xe0, 0x94, 0x4f, 0x84, 0x02, 0xc1, 0x99, //0x0000c1f0 .quad -7367604748107325189 + 0x6e, 0x42, 0xfc, 0xcb, 0x44, 0x74, 0xda, 0x2e, //0x0000c1f8 .quad 3376138709496513134 + 0x39, 0x19, 0x7a, 0x63, 0x25, 0x43, 0x31, 0xc0, //0x0000c200 .quad -4597819916706768583 + 0x09, 0x53, 0xfb, 0xfe, 0x55, 0x11, 0x91, 0xfa, //0x0000c208 .quad -391512631556746487 + 0x88, 0x9f, 0x58, 0xbc, 0xee, 0x93, 0x3d, 0xf0, //0x0000c210 .quad -1135588877456072824 + 0xcb, 0x27, 0xba, 0x7e, 0xab, 0x55, 0x35, 0x79, //0x0000c218 .quad 8733981247408842699 + 0xb5, 0x63, 0xb7, 0x35, 0x75, 0x7c, 0x26, 0x96, //0x0000c220 .quad -7627272076051127371 + 0xdf, 0x58, 0x34, 0x2f, 0x8b, 0x55, 0xc1, 0x4b, //0x0000c228 .quad 5458738279630526687 + 0xa2, 0x3c, 0x25, 0x83, 0x92, 0x1b, 0xb0, 0xbb, //0x0000c230 .quad -4922404076636521310 + 0x17, 0x6f, 0x01, 0xfb, 0xed, 0xaa, 0xb1, 0x9e, //0x0000c238 .quad -7011635205744005353 + 0xcb, 0x8b, 0xee, 0x23, 0x77, 0x22, 0x9c, 0xea, //0x0000c240 .quad -1541319077368263733 + 0xdd, 0xca, 0xc1, 0x79, 0xa9, 0x15, 0x5e, 0x46, //0x0000c248 .quad 5070514048102157021 + 0x5f, 0x17, 0x75, 0x76, 0x8a, 0x95, 0xa1, 0x92, //0x0000c250 .quad -7880853450996246689 + 0xca, 0x1e, 0x19, 0xec, 0x89, 0xcd, 0xfa, 0x0b, //0x0000c258 .quad 863228270850154186 + 0x36, 0x5d, 0x12, 0x14, 0xed, 0xfa, 0x49, 0xb7, //0x0000c260 .quad -5239380795317920458 + 0x7c, 0x66, 0x1f, 0x67, 0xec, 0x80, 0xf9, 0xce, //0x0000c268 .quad -3532650679864695172 + 0x84, 0xf4, 0x16, 0x59, 0xa8, 0x79, 0x1c, 0xe5, //0x0000c270 .quad -1937539975720012668 + 0x1b, 0x40, 0xe7, 0x80, 0x27, 0xe1, 0xb7, 0x82, //0x0000c278 .quad -9027499368258256869 + 0xd2, 0x58, 0xae, 0x37, 0x09, 0xcc, 0x31, 0x8f, //0x0000c280 .quad -8128491512466089774 + 0x11, 0x88, 0x90, 0xb0, 0xb8, 0xec, 0xb2, 0xd1, //0x0000c288 .quad -3336344095947716591 + 0x07, 0xef, 0x99, 0x85, 0x0b, 0x3f, 0xfe, 0xb2, //0x0000c290 .quad -5548928372155224313 + 0x16, 0xaa, 0xb4, 0xdc, 0xe6, 0xa7, 0x1f, 0x86, //0x0000c298 .quad -8782116138362033642 + 0xc9, 0x6a, 0x00, 0x67, 0xce, 0xce, 0xbd, 0xdf, //0x0000c2a0 .quad -2324474446766642487 + 0x9b, 0xd4, 0xe1, 0x93, 0xe0, 0x91, 0xa7, 0x67, //0x0000c2a8 .quad 7469098900757009563 + 0xbd, 0x42, 0x60, 0x00, 0x41, 0xa1, 0xd6, 0x8b, //0x0000c2b0 .quad -8370325556870233411 + 0xe1, 0x24, 0x6d, 0x5c, 0x2c, 0xbb, 0xc8, 0xe0, //0x0000c2b8 .quad -2249342214667950879 + 0x6d, 0x53, 0x78, 0x40, 0x91, 0x49, 0xcc, 0xae, //0x0000c2c0 .quad -5851220927660403859 + 0x19, 0x6e, 0x88, 0x73, 0xf7, 0xe9, 0xfa, 0x58, //0x0000c2c8 .quad 6411694268519837209 + 0x48, 0x68, 0x96, 0x90, 0xf5, 0x5b, 0x7f, 0xda, //0x0000c2d0 .quad -2702340141148116920 + 0x9f, 0x89, 0x6a, 0x50, 0x75, 0xa4, 0x39, 0xaf, //0x0000c2d8 .quad -5820440219632367201 + 0x2d, 0x01, 0x5e, 0x7a, 0x79, 0x99, 0x8f, 0x88, //0x0000c2e0 .quad -8606491615858654931 + 0x04, 0x96, 0x42, 0x52, 0xc9, 0x06, 0x84, 0x6d, //0x0000c2e8 .quad 7891439908798240260 + 0x78, 0x81, 0xf5, 0xd8, 0xd7, 0x7f, 0xb3, 0xaa, //0x0000c2f0 .quad -6146428501395930760 + 0x84, 0x3b, 0xd3, 0xa6, 0x7b, 0x08, 0xe5, 0xc8, //0x0000c2f8 .quad -3970758169284363388 + 0xd6, 0xe1, 0x32, 0xcf, 0xcd, 0x5f, 0x60, 0xd5, //0x0000c300 .quad -3071349608317525546 + 0x65, 0x0a, 0x88, 0x90, 0x9a, 0x4a, 0x1e, 0xfb, //0x0000c308 .quad -351761693178066331 + 0x26, 0xcd, 0x7f, 0xa1, 0xe0, 0x3b, 0x5c, 0x85, //0x0000c310 .quad -8837122532839535322 + 0x80, 0x06, 0x55, 0x9a, 0xa0, 0xee, 0xf2, 0x5c, //0x0000c318 .quad 6697677969404790400 + 0x6f, 0xc0, 0xdf, 0xc9, 0xd8, 0x4a, 0xb3, 0xa6, //0x0000c320 .quad -6434717147622031249 + 0x1f, 0x48, 0xea, 0xc0, 0x48, 0xaa, 0x2f, 0xf4, //0x0000c328 .quad -851274575098787809 + 0x8b, 0xb0, 0x57, 0xfc, 0x8e, 0x1d, 0x60, 0xd0, //0x0000c330 .quad -3431710416100151157 + 0x27, 0xda, 0x24, 0xf1, 0xda, 0x94, 0x3b, 0xf1, //0x0000c338 .quad -1064093218873484761 + 0x57, 0xce, 0xb6, 0x5d, 0x79, 0x12, 0x3c, 0x82, //0x0000c340 .quad -9062348037703676329 + 0x59, 0x08, 0xb7, 0xd6, 0x08, 0x3d, 0xc5, 0x76, //0x0000c348 .quad 8558313775058847833 + 0xed, 0x81, 0x24, 0xb5, 0x17, 0x17, 0xcb, 0xa2, //0x0000c350 .quad -6716249028702207507 + 0x6f, 0xca, 0x64, 0x0c, 0x4b, 0x8c, 0x76, 0x54, //0x0000c358 .quad 6086206200396171887 + 0x68, 0xa2, 0x6d, 0xa2, 0xdd, 0xdc, 0x7d, 0xcb, //0x0000c360 .quad -3783625267450371480 + 0x0a, 0xfd, 0x7d, 0xcf, 0x5d, 0x2f, 0x94, 0xa9, //0x0000c368 .quad -6227300304786948854 + 0x02, 0x0b, 0x09, 0x0b, 0x15, 0x54, 0x5d, 0xfe, //0x0000c370 .quad -117845565885576446 + 0x4d, 0x7c, 0x5d, 0x43, 0x35, 0x3b, 0xf9, 0xd3, //0x0000c378 .quad -3172439362556298163 + 0xe1, 0xa6, 0xe5, 0x26, 0x8d, 0x54, 0xfa, 0x9e, //0x0000c380 .quad -6991182506319567135 + 0xb0, 0x6d, 0x1a, 0x4a, 0x01, 0xc5, 0x7b, 0xc4, //0x0000c388 .quad -4288617610811380304 + 0x9a, 0x10, 0x9f, 0x70, 0xb0, 0xe9, 0xb8, 0xc6, //0x0000c390 .quad -4127292114472071014 + 0x1c, 0x09, 0xa1, 0x9c, 0x41, 0xb6, 0x9a, 0x35, //0x0000c398 .quad 3862600023340550428 + 0xc0, 0xd4, 0xc6, 0x8c, 0x1c, 0x24, 0x67, 0xf8, //0x0000c3a0 .quad -547429124662700864 + 0x63, 0x4b, 0xc9, 0x03, 0xd2, 0x63, 0x01, 0xc3, //0x0000c3a8 .quad -4395122007679087773 + 0xf8, 0x44, 0xfc, 0xd7, 0x91, 0x76, 0x40, 0x9b, //0x0000c3b0 .quad -7259672230555269896 + 0x1e, 0xcf, 0x5d, 0x42, 0x63, 0xde, 0xe0, 0x79, //0x0000c3b8 .quad 8782263791269039902 + 0x36, 0x56, 0xfb, 0x4d, 0x36, 0x94, 0x10, 0xc2, //0x0000c3c0 .quad -4462904269766699466 + 0xe5, 0x42, 0xf5, 0x12, 0xfc, 0x15, 0x59, 0x98, //0x0000c3c8 .quad -7468914334623251739 + 0xc4, 0x2b, 0x7a, 0xe1, 0x43, 0xb9, 0x94, 0xf2, //0x0000c3d0 .quad -966944318780986428 + 0x9e, 0x93, 0xb2, 0x17, 0x7b, 0x5b, 0x6f, 0x3e, //0x0000c3d8 .quad 4498915137003099038 + 0x5a, 0x5b, 0xec, 0x6c, 0xca, 0xf3, 0x9c, 0x97, //0x0000c3e0 .quad -7521869226879198374 + 0x43, 0x9c, 0xcf, 0xee, 0x2c, 0x99, 0x05, 0xa7, //0x0000c3e8 .quad -6411550076227838909 + 0x31, 0x72, 0x27, 0x08, 0xbd, 0x30, 0x84, 0xbd, //0x0000c3f0 .quad -4790650515171610063 + 0x54, 0x83, 0x83, 0x2a, 0x78, 0xff, 0xc6, 0x50, //0x0000c3f8 .quad 5820620459997365076 + 0xbd, 0x4e, 0x31, 0x4a, 0xec, 0x3c, 0xe5, 0xec, //0x0000c400 .quad -1376627125537124675 + 0x29, 0x64, 0x24, 0x35, 0x56, 0xbf, 0xf8, 0xa4, //0x0000c408 .quad -6559282480285457367 + 0x36, 0xd1, 0x5e, 0xae, 0x13, 0x46, 0x0f, 0x94, //0x0000c410 .quad -7777920981101784778 + 0x9a, 0xbe, 0x36, 0xe1, 0x95, 0x77, 0x1b, 0x87, //0x0000c418 .quad -8711237568605798758 + 0x84, 0x85, 0xf6, 0x99, 0x98, 0x17, 0x13, 0xb9, //0x0000c420 .quad -5110715207949843068 + 0x40, 0x6e, 0x84, 0x59, 0x7b, 0x55, 0xe2, 0x28, //0x0000c428 .quad 2946011094524915264 + 0xe5, 0x26, 0x74, 0xc0, 0x7e, 0xdd, 0x57, 0xe7, //0x0000c430 .quad -1776707991509915931 + 0xd0, 0x89, 0xe5, 0x2f, 0xda, 0xea, 0x1a, 0x33, //0x0000c438 .quad 3682513868156144080 + 0x4f, 0x98, 0x48, 0x38, 0x6f, 0xea, 0x96, 0x90, //0x0000c440 .quad -8027971522334779313 + 0x22, 0x76, 0xef, 0x5d, 0xc8, 0xd2, 0xf0, 0x3f, //0x0000c448 .quad 4607414176811284002 + 0x63, 0xbe, 0x5a, 0x06, 0x0b, 0xa5, 0xbc, 0xb4, //0x0000c450 .quad -5423278384491086237 + 0xaa, 0x53, 0x6b, 0x75, 0x7a, 0x07, 0xed, 0x0f, //0x0000c458 .quad 1147581702586717098 + 0xfb, 0x6d, 0xf1, 0xc7, 0x4d, 0xce, 0xeb, 0xe1, //0x0000c460 .quad -2167411962186469893 + 0x95, 0x28, 0xc6, 0x12, 0x59, 0x49, 0xe8, 0xd3, //0x0000c468 .quad -3177208890193991531 + 0xbd, 0xe4, 0xf6, 0x9c, 0xf0, 0x60, 0x33, 0x8d, //0x0000c470 .quad -8272161504007625539 + 0x5d, 0xd9, 0xbb, 0xab, 0xd7, 0x2d, 0x71, 0x64, //0x0000c478 .quad 7237616480483531101 + 0xec, 0x9d, 0x34, 0xc4, 0x2c, 0x39, 0x80, 0xb0, //0x0000c480 .quad -5728515861582144020 + 0xb4, 0xcf, 0xaa, 0x96, 0x4d, 0x79, 0x8d, 0xbd, //0x0000c488 .quad -4788037454677749836 + 0x67, 0xc5, 0x41, 0xf5, 0x77, 0x47, 0xa0, 0xdc, //0x0000c490 .quad -2548958808550292121 + 0xa1, 0x83, 0x55, 0xfc, 0xa0, 0xd7, 0xf0, 0xec, //0x0000c498 .quad -1373360799919799391 + 0x60, 0x1b, 0x49, 0xf9, 0xaa, 0x2c, 0xe4, 0x89, //0x0000c4a0 .quad -8510628282985014432 + 0x45, 0x72, 0xb5, 0x9d, 0xc4, 0x86, 0x16, 0xf4, //0x0000c4a8 .quad -858350499949874619 + 0x39, 0x62, 0x9b, 0xb7, 0xd5, 0x37, 0x5d, 0xac, //0x0000c4b0 .quad -6026599335303880135 + 0xd6, 0xce, 0x22, 0xc5, 0x75, 0x28, 0x1c, 0x31, //0x0000c4b8 .quad 3538747893490044630 + 0xc7, 0x3a, 0x82, 0x25, 0xcb, 0x85, 0x74, 0xd7, //0x0000c4c0 .quad -2921563150702462265 + 0x8c, 0x82, 0x6b, 0x36, 0x93, 0x32, 0x63, 0x7d, //0x0000c4c8 .quad 9035120885289943692 + 0xbc, 0x64, 0x71, 0xf7, 0x9e, 0xd3, 0xa8, 0x86, //0x0000c4d0 .quad -8743505996830120772 + 0x98, 0x31, 0x03, 0x02, 0x9c, 0xff, 0x5d, 0xae, //0x0000c4d8 .quad -5882264492762254952 + 0xeb, 0xbd, 0x4d, 0xb5, 0x86, 0x08, 0x53, 0xa8, //0x0000c4e0 .quad -6317696477610263061 + 0xfd, 0xfd, 0x83, 0x02, 0x83, 0x7f, 0xf5, 0xd9, //0x0000c4e8 .quad -2741144597525430787 + 0x66, 0x2d, 0xa1, 0x62, 0xa8, 0xca, 0x67, 0xd2, //0x0000c4f0 .quad -3285434578585440922 + 0x7c, 0xfd, 0x24, 0xc3, 0x63, 0xdf, 0x72, 0xd0, //0x0000c4f8 .quad -3426430746906788484 + 0x60, 0xbc, 0xa4, 0x3d, 0xa9, 0xde, 0x80, 0x83, //0x0000c500 .quad -8970925639256982432 + 0x6e, 0x1e, 0xf7, 0x59, 0x9e, 0xcb, 0x47, 0x42, //0x0000c508 .quad 4776009810824339054 + 0x78, 0xeb, 0x0d, 0x8d, 0x53, 0x16, 0x61, 0xa4, //0x0000c510 .quad -6601971030643840136 + 0x09, 0xe6, 0x74, 0xf0, 0x85, 0xbe, 0xd9, 0x52, //0x0000c518 .quad 5970012263530423817 + 0x56, 0x66, 0x51, 0x70, 0xe8, 0x5b, 0x79, 0xcd, //0x0000c520 .quad -3640777769877412266 + 0x8c, 0x1f, 0x92, 0x6c, 0x27, 0x2e, 0x90, 0x67, //0x0000c528 .quad 7462515329413029772 + 0xf6, 0xdf, 0x32, 0x46, 0x71, 0xd9, 0x6b, 0x80, //0x0000c530 .quad -9193015133814464522 + 0xb7, 0x53, 0xdb, 0xa3, 0xd8, 0x1c, 0xba, 0x00, //0x0000c538 .quad 52386062455755703 + 0xf3, 0x97, 0xbf, 0x97, 0xcd, 0xcf, 0x86, 0xa0, //0x0000c540 .quad -6879582898840692749 + 0xa5, 0x28, 0xd2, 0xcc, 0x0e, 0xa4, 0xe8, 0x80, //0x0000c548 .quad -9157889458785081179 + 0xf0, 0x7d, 0xaf, 0xfd, 0xc0, 0x83, 0xa8, 0xc8, //0x0000c550 .quad -3987792605123478032 + 0xce, 0xb2, 0x06, 0x80, 0x12, 0xcd, 0x22, 0x61, //0x0000c558 .quad 6999382250228200142 + 0x6c, 0x5d, 0x1b, 0x3d, 0xb1, 0xa4, 0xd2, 0xfa, //0x0000c560 .quad -373054737976959636 + 0x82, 0x5f, 0x08, 0x20, 0x57, 0x80, 0x6b, 0x79, //0x0000c568 .quad 8749227812785250178 + 0x63, 0x1a, 0x31, 0xc6, 0xee, 0xa6, 0xc3, 0x9c, //0x0000c570 .quad -7150688238876681629 + 0xb1, 0x3b, 0x05, 0x74, 0x36, 0x30, 0xe3, 0xcb, //0x0000c578 .quad -3755104653863994447 + 0xfc, 0x60, 0xbd, 0x77, 0xaa, 0x90, 0xf4, 0xc3, //0x0000c580 .quad -4326674280168464132 + 0x9d, 0x8a, 0x06, 0x11, 0x44, 0xfc, 0xdb, 0xbe, //0x0000c588 .quad -4693880817329993059 + 0x3b, 0xb9, 0xac, 0x15, 0xd5, 0xb4, 0xf1, 0xf4, //0x0000c590 .quad -796656831783192261 + 0x45, 0x2d, 0x48, 0x15, 0x55, 0xfb, 0x92, 0xee, //0x0000c598 .quad -1255665003235103419 + 0xc5, 0xf3, 0x8b, 0x2d, 0x05, 0x11, 0x17, 0x99, //0x0000c5a0 .quad -7415439547505577019 + 0x4b, 0x1c, 0x4d, 0x2d, 0x15, 0xdd, 0x1b, 0x75, //0x0000c5a8 .quad 8438581409832836171 + 0xb6, 0xf0, 0xee, 0x78, 0x46, 0xd5, 0x5c, 0xbf, //0x0000c5b0 .quad -4657613415954583370 + 0x5e, 0x63, 0xa0, 0x78, 0x5a, 0xd4, 0x62, 0xd2, //0x0000c5b8 .quad -3286831292991118498 + 0xe4, 0xac, 0x2a, 0x17, 0x98, 0x0a, 0x34, 0xef, //0x0000c5c0 .quad -1210330751515841308 + 0x35, 0x7c, 0xc8, 0x16, 0x71, 0x89, 0xfb, 0x86, //0x0000c5c8 .quad -8720225134666286027 + 0x0e, 0xac, 0x7a, 0x0e, 0x9f, 0x86, 0x80, 0x95, //0x0000c5d0 .quad -7673985747338482674 + 0xa1, 0x4d, 0x3d, 0xae, 0xe6, 0x35, 0x5d, 0xd4, //0x0000c5d8 .quad -3144297699952734815 + 0x12, 0x57, 0x19, 0xd2, 0x46, 0xa8, 0xe0, 0xba, //0x0000c5e0 .quad -4980796165745715438 + 0x0a, 0xa1, 0xcc, 0x59, 0x60, 0x83, 0x74, 0x89, //0x0000c5e8 .quad -8542058143368306422 + 0xd7, 0xac, 0x9f, 0x86, 0x58, 0xd2, 0x98, 0xe9, //0x0000c5f0 .quad -1614309188754756393 + 0x4c, 0xc9, 0x3f, 0x70, 0x38, 0xa4, 0xd1, 0x2b, //0x0000c5f8 .quad 3157485376071780684 + 0x06, 0xcc, 0x23, 0x54, 0x77, 0x83, 0xff, 0x91, //0x0000c600 .quad -7926472270612804602 + 0xd0, 0xdd, 0x27, 0x46, 0xa3, 0x06, 0x63, 0x7b, //0x0000c608 .quad 8890957387685944784 + 0x08, 0xbf, 0x2c, 0x29, 0x55, 0x64, 0x7f, 0xb6, //0x0000c610 .quad -5296404319838617848 + 0x43, 0xd5, 0xb1, 0x17, 0x4c, 0xc8, 0x3b, 0x1a, //0x0000c618 .quad 1890324697752655171 + 0xca, 0xee, 0x77, 0x73, 0x6a, 0x3d, 0x1f, 0xe4, //0x0000c620 .quad -2008819381370884406 + 0x94, 0x4a, 0x9e, 0x1d, 0x5f, 0xba, 0xca, 0x20, //0x0000c628 .quad 2362905872190818964 + 0x3e, 0xf5, 0x2a, 0x88, 0x62, 0x86, 0x93, 0x8e, //0x0000c630 .quad -8173041140997884610 + 0x9d, 0xee, 0x82, 0x72, 0x7b, 0xb4, 0x7e, 0x54, //0x0000c638 .quad 6088502188546649757 + 0x8d, 0xb2, 0x35, 0x2a, 0xfb, 0x67, 0x38, 0xb2, //0x0000c640 .quad -5604615407819967859 + 0x44, 0xaa, 0x23, 0x4f, 0x9a, 0x61, 0x9e, 0xe9, //0x0000c648 .quad -1612744301171463612 + 0x31, 0x1f, 0xc3, 0xf4, 0xf9, 0x81, 0xc6, 0xde, //0x0000c650 .quad -2394083241347571919 + 0xd5, 0x94, 0xec, 0xe2, 0x00, 0xfa, 0x05, 0x64, //0x0000c658 .quad 7207441660390446293 + 0x7e, 0xf3, 0xf9, 0x38, 0x3c, 0x11, 0x3c, 0x8b, //0x0000c660 .quad -8413831053483314306 + 0x05, 0xdd, 0xd3, 0x8d, 0x40, 0xbc, 0x83, 0xde, //0x0000c668 .quad -2412877989897052923 + 0x5e, 0x70, 0x38, 0x47, 0x8b, 0x15, 0x0b, 0xae, //0x0000c670 .quad -5905602798426754978 + 0x46, 0xd4, 0x48, 0xb1, 0x50, 0xab, 0x24, 0x96, //0x0000c678 .quad -7627783505798704058 + 0x76, 0x8c, 0x06, 0x19, 0xee, 0xda, 0x8d, 0xd9, //0x0000c680 .quad -2770317479606055818 + 0x58, 0x09, 0x9b, 0xdd, 0x24, 0xd6, 0xad, 0x3b, //0x0000c688 .quad 4300328673033783640 + 0xc9, 0x17, 0xa4, 0xcf, 0xd4, 0xa8, 0xf8, 0x87, //0x0000c690 .quad -8648977452394866743 + 0xd7, 0xe5, 0x80, 0x0a, 0xd7, 0xa5, 0x4c, 0xe5, //0x0000c698 .quad -1923980597781273129 + 0xbc, 0x1d, 0x8d, 0x03, 0x0a, 0xd3, 0xf6, 0xa9, //0x0000c6a0 .quad -6199535797066195524 + 0x4d, 0x1f, 0x21, 0xcd, 0x4c, 0xcf, 0x9f, 0x5e, //0x0000c6a8 .quad 6818396289628184397 + 0x2b, 0x65, 0x70, 0x84, 0xcc, 0x87, 0x74, 0xd4, //0x0000c6b0 .quad -3137733727905356501 + 0x20, 0x67, 0x69, 0x00, 0x20, 0xc3, 0x47, 0x76, //0x0000c6b8 .quad 8522995362035230496 + 0x3b, 0x3f, 0xc6, 0xd2, 0xdf, 0xd4, 0xc8, 0x84, //0x0000c6c0 .quad -8878612607581929669 + 0x74, 0xe0, 0x41, 0x00, 0xf4, 0xd9, 0xec, 0x29, //0x0000c6c8 .quad 3021029092058325108 + 0x09, 0xcf, 0x77, 0xc7, 0x17, 0x0a, 0xfb, 0xa5, //0x0000c6d0 .quad -6486579741050024183 + 0x91, 0x58, 0x52, 0x00, 0x71, 0x10, 0x68, 0xf4, //0x0000c6d8 .quad -835399653354481519 + 0xcc, 0xc2, 0x55, 0xb9, 0x9d, 0xcc, 0x79, 0xcf, //0x0000c6e0 .quad -3496538657885142324 + 0xb5, 0xee, 0x66, 0x40, 0x8d, 0x14, 0x82, 0x71, //0x0000c6e8 .quad 8179122470161673909 + 0xbf, 0x99, 0xd5, 0x93, 0xe2, 0x1f, 0xac, 0x81, //0x0000c6f0 .quad -9102865688819295809 + 0x31, 0x55, 0x40, 0x48, 0xd8, 0x4c, 0xf1, 0xc6, //0x0000c6f8 .quad -4111420493003729615 + 0x2f, 0x00, 0xcb, 0x38, 0xdb, 0x27, 0x17, 0xa2, //0x0000c700 .quad -6766896092596731857 + 0x7d, 0x6a, 0x50, 0x5a, 0x0e, 0xa0, 0xad, 0xb8, //0x0000c708 .quad -5139275616254662019 + 0x3b, 0xc0, 0xfd, 0x06, 0xd2, 0xf1, 0x9c, 0xca, //0x0000c710 .quad -3846934097318526917 + 0x1d, 0x85, 0xe4, 0xf0, 0x11, 0x08, 0xd9, 0xa6, //0x0000c718 .quad -6424094520318327523 + 0x4a, 0x30, 0xbd, 0x88, 0x46, 0x2e, 0x44, 0xfd, //0x0000c720 .quad -196981603220770742 + 0x64, 0xa6, 0x1d, 0x6d, 0x16, 0x4a, 0x8f, 0x90, //0x0000c728 .quad -8030118150397909404 + 0x2e, 0x3e, 0x76, 0x15, 0xec, 0x9c, 0x4a, 0x9e, //0x0000c730 .quad -7040642529654063570 + 0xff, 0x87, 0x32, 0x04, 0x4e, 0x8e, 0x59, 0x9a, //0x0000c738 .quad -7324666853212387329 + 0xba, 0xcd, 0xd3, 0x1a, 0x27, 0x44, 0xdd, 0xc5, //0x0000c740 .quad -4189117143640191558 + 0xfe, 0x29, 0x3f, 0x85, 0xe1, 0xf1, 0xef, 0x40, //0x0000c748 .quad 4679224488766679550 + 0x28, 0xc1, 0x88, 0xe1, 0x30, 0x95, 0x54, 0xf7, //0x0000c750 .quad -624710411122851544 + 0x7d, 0xf4, 0x8e, 0xe6, 0x59, 0xee, 0x2b, 0xd1, //0x0000c758 .quad -3374341425896426371 + 0xb9, 0x78, 0xf5, 0x8c, 0x3e, 0xdd, 0x94, 0x9a, //0x0000c760 .quad -7307973034592864071 + 0xcf, 0x58, 0x19, 0x30, 0xf8, 0x74, 0xbb, 0x82, //0x0000c768 .quad -9026492418826348337 + 0xe7, 0xd6, 0x32, 0x30, 0x8e, 0x14, 0x3a, 0xc1, //0x0000c770 .quad -4523280274813692185 + 0x02, 0xaf, 0x1f, 0x3c, 0x36, 0x52, 0x6a, 0xe3, //0x0000c778 .quad -2059743486678159614 + 0xa1, 0x8c, 0x3f, 0xbc, 0xb1, 0x99, 0x88, 0xf1, //0x0000c780 .quad -1042414325089727327 + 0xc2, 0x9a, 0x27, 0xcb, 0xc3, 0xe6, 0x44, 0xdc, //0x0000c788 .quad -2574679358347699518 + 0xe5, 0xb7, 0xa7, 0x15, 0x0f, 0x60, 0xf5, 0x96, //0x0000c790 .quad -7569037980822161435 + 0xba, 0xc0, 0xf8, 0x5e, 0x3a, 0x10, 0xab, 0x29, //0x0000c798 .quad 3002511419460075706 + 0xde, 0xa5, 0x11, 0xdb, 0x12, 0xb8, 0xb2, 0xbc, //0x0000c7a0 .quad -4849611457600313890 + 0xe8, 0xf0, 0xb6, 0xf6, 0x48, 0xd4, 0x15, 0x74, //0x0000c7a8 .quad 8364825292752482536 + 0x56, 0x0f, 0xd6, 0x91, 0x17, 0x66, 0xdf, 0xeb, //0x0000c7b0 .quad -1450328303573004458 + 0x22, 0xad, 0x64, 0x34, 0x5b, 0x49, 0x1b, 0x11, //0x0000c7b8 .quad 1232659579085827362 + 0x95, 0xc9, 0x25, 0xbb, 0xce, 0x9f, 0x6b, 0x93, //0x0000c7c0 .quad -7823984217374209643 + 0x35, 0xec, 0xbe, 0x00, 0xd9, 0x0d, 0xb1, 0xca, //0x0000c7c8 .quad -3841273781498745803 + 0xfb, 0x3b, 0xef, 0x69, 0xc2, 0x87, 0x46, 0xb8, //0x0000c7d0 .quad -5168294253290374149 + 0x43, 0xa7, 0xee, 0x40, 0x4f, 0x51, 0x5d, 0x3d, //0x0000c7d8 .quad 4421779809981343555 + 0xfa, 0x0a, 0x6b, 0x04, 0xb3, 0x29, 0x58, 0xe6, //0x0000c7e0 .quad -1848681798185579782 + 0x13, 0x51, 0x2a, 0x11, 0xa3, 0xa5, 0xb4, 0x0c, //0x0000c7e8 .quad 915538744049291539 + 0xdc, 0xe6, 0xc2, 0xe2, 0x0f, 0x1a, 0xf7, 0x8f, //0x0000c7f0 .quad -8072955151507069220 + 0xac, 0x72, 0xba, 0xea, 0x85, 0xe7, 0xf0, 0x47, //0x0000c7f8 .quad 5183897733458195116 + 0x93, 0xa0, 0x73, 0xdb, 0x93, 0xe0, 0xf4, 0xb3, //0x0000c800 .quad -5479507920956448621 + 0x57, 0x0f, 0x69, 0x65, 0x67, 0x21, 0xed, 0x59, //0x0000c808 .quad 6479872166822743895 + 0xb8, 0x88, 0x50, 0xd2, 0xb8, 0x18, 0xf2, 0xe0, //0x0000c810 .quad -2237698882768172872 + 0x2d, 0x53, 0xc3, 0x3e, 0xc1, 0x69, 0x68, 0x30, //0x0000c818 .quad 3488154190101041965 + 0x73, 0x55, 0x72, 0x83, 0x73, 0x4f, 0x97, 0x8c, //0x0000c820 .quad -8316090829371189901 + 0xfc, 0x13, 0x3a, 0xc7, 0x18, 0x42, 0x41, 0x1e, //0x0000c828 .quad 2180096368813151228 + 0xcf, 0xea, 0x4e, 0x64, 0x50, 0x23, 0xbd, 0xaf, //0x0000c830 .quad -5783427518286599473 + 0xfb, 0x98, 0x08, 0xf9, 0x9e, 0x92, 0xd1, 0xe5, //0x0000c838 .quad -1886565557410948869 + 0x83, 0xa5, 0x62, 0x7d, 0x24, 0x6c, 0xac, 0xdb, //0x0000c840 .quad -2617598379430861437 + 0x3a, 0xbf, 0x4a, 0xb7, 0x46, 0xf7, 0x45, 0xdf, //0x0000c848 .quad -2358206946763686086 + 0x72, 0xa7, 0x5d, 0xce, 0x96, 0xc3, 0x4b, 0x89, //0x0000c850 .quad -8553528014785370254 + 0x84, 0xb7, 0x8e, 0x32, 0x8c, 0xba, 0x8b, 0x6b, //0x0000c858 .quad 7749492695127472004 + 0x4f, 0x11, 0xf5, 0x81, 0x7c, 0xb4, 0x9e, 0xab, //0x0000c860 .quad -6080224000054324913 + 0x65, 0x65, 0x32, 0x3f, 0x2f, 0xa9, 0x6e, 0x06, //0x0000c868 .quad 463493832054564197 + 0xa2, 0x55, 0x72, 0xa2, 0x9b, 0x61, 0x86, 0xd6, //0x0000c870 .quad -2988593981640518238 + 0xbe, 0xfe, 0xfe, 0x0e, 0x7b, 0x53, 0x0a, 0xc8, //0x0000c878 .quad -4032318728359182658 + 0x85, 0x75, 0x87, 0x45, 0x01, 0xfd, 0x13, 0x86, //0x0000c880 .quad -8785400266166405755 + 0x37, 0x5f, 0x5f, 0xe9, 0x2c, 0x74, 0x06, 0xbd, //0x0000c888 .quad -4826042214438183113 + 0xe7, 0x52, 0xe9, 0x96, 0x41, 0xfc, 0x98, 0xa7, //0x0000c890 .quad -6370064314280619289 + 0x05, 0x37, 0xb7, 0x23, 0x38, 0x11, 0x48, 0x2c, //0x0000c898 .quad 3190819268807046917 + 0xa0, 0xa7, 0xa3, 0xfc, 0x51, 0x3b, 0x7f, 0xd1, //0x0000c8a0 .quad -3350894374423386208 + 0xc6, 0x04, 0xa5, 0x2c, 0x86, 0x15, 0x5a, 0xf7, //0x0000c8a8 .quad -623161932418579258 + 0xc4, 0x48, 0xe6, 0x3d, 0x13, 0x85, 0xef, 0x82, //0x0000c8b0 .quad -9011838011655698236 + 0xfc, 0x22, 0xe7, 0xdb, 0x73, 0x4d, 0x98, 0x9a, //0x0000c8b8 .quad -7307005235402693892 + 0xf5, 0xda, 0x5f, 0x0d, 0x58, 0x66, 0xab, 0xa3, //0x0000c8c0 .quad -6653111496142234891 + 0xbb, 0xeb, 0xe0, 0xd2, 0xd0, 0x60, 0x3e, 0xc1, //0x0000c8c8 .quad -4522070525825979461 + 0xb3, 0xd1, 0xb7, 0x10, 0xee, 0x3f, 0x96, 0xcc, //0x0000c8d0 .quad -3704703351750405709 + 0xa9, 0x26, 0x99, 0x07, 0x05, 0xf9, 0x8d, 0x31, //0x0000c8d8 .quad 3570783879572301481 + 0x1f, 0xc6, 0xe5, 0x94, 0xe9, 0xcf, 0xbb, 0xff, //0x0000c8e0 .quad -19193171260619233 + 0x53, 0x70, 0x7f, 0x49, 0x46, 0x77, 0xf1, 0xfd, //0x0000c8e8 .quad -148206168962011053 + 0xd3, 0x9b, 0x0f, 0xfd, 0xf1, 0x61, 0xd5, 0x9f, //0x0000c8f0 .quad -6929524759678968877 + 0x34, 0xa6, 0xef, 0xed, 0x8b, 0xea, 0xb6, 0xfe, //0x0000c8f8 .quad -92628855601256908 + 0xc8, 0x82, 0x53, 0x7c, 0x6e, 0xba, 0xca, 0xc7, //0x0000c900 .quad -4050219931171323192 + 0xc1, 0x8f, 0x6b, 0xe9, 0x2e, 0xa5, 0x64, 0xfe, //0x0000c908 .quad -115786069501571135 + 0x7b, 0x63, 0x68, 0x1b, 0x0a, 0x69, 0xbd, 0xf9, //0x0000c910 .quad -451088895536766085 + 0xb1, 0x73, 0xc6, 0xa3, 0x7a, 0xce, 0xfd, 0x3d, //0x0000c918 .quad 4466953431550423985 + 0x2d, 0x3e, 0x21, 0x51, 0xa6, 0x61, 0x16, 0x9c, //0x0000c920 .quad -7199459587351560659 + 0x4f, 0x08, 0x5c, 0xa6, 0x0c, 0xa1, 0xbe, 0x06, //0x0000c928 .quad 486002885505321039 + 0xb8, 0x8d, 0x69, 0xe5, 0x0f, 0xfa, 0x1b, 0xc3, //0x0000c930 .quad -4387638465762062920 + 0x63, 0x0a, 0xf3, 0xcf, 0x4f, 0x49, 0x6e, 0x48, //0x0000c938 .quad 5219189625309039203 + 0x26, 0xf1, 0xc3, 0xde, 0x93, 0xf8, 0xe2, 0xf3, //0x0000c940 .quad -872862063775190746 + 0xfb, 0xcc, 0xef, 0xc3, 0xa3, 0xdb, 0x89, 0x5a, //0x0000c948 .quad 6523987031636299003 + 0xb7, 0x76, 0x3a, 0x6b, 0x5c, 0xdb, 0x6d, 0x98, //0x0000c950 .quad -7463067817500576073 + 0x1d, 0xe0, 0x75, 0x5a, 0x46, 0x29, 0x96, 0xf8, //0x0000c958 .quad -534194123654701027 + 0x65, 0x14, 0x09, 0x86, 0x33, 0x52, 0x89, 0xbe, //0x0000c960 .quad -4717148753448332187 + 0x24, 0x58, 0x13, 0xf1, 0x97, 0xb3, 0xbb, 0xf6, //0x0000c968 .quad -667742654568376284 + 0x7f, 0x59, 0x8b, 0x67, 0xc0, 0xa6, 0x2b, 0xee, //0x0000c970 .quad -1284749923383027329 + 0x2d, 0x2e, 0x58, 0xed, 0x7d, 0xa0, 0x6a, 0x74, //0x0000c978 .quad 8388693718644305453 + 0xef, 0x17, 0xb7, 0x40, 0x38, 0x48, 0xdb, 0x94, //0x0000c980 .quad -7720497729755473937 + 0xdd, 0x1c, 0x57, 0xb4, 0x4e, 0xa4, 0xc2, 0xa8, //0x0000c988 .quad -6286281471915778851 + 0xeb, 0xdd, 0xe4, 0x50, 0x46, 0x1a, 0x12, 0xba, //0x0000c990 .quad -5038936143766954517 + 0x14, 0xe4, 0x6c, 0x61, 0x62, 0x4d, 0xf3, 0x92, //0x0000c998 .quad -7857851839894723564 + 0x66, 0x15, 0x1e, 0xe5, 0xd7, 0xa0, 0x96, 0xe8, //0x0000c9a0 .quad -1686984161281305242 + 0x18, 0x1d, 0xc8, 0xf9, 0xba, 0x20, 0xb0, 0x77, //0x0000c9a8 .quad 8624429273841147160 + 0x60, 0xcd, 0x32, 0xef, 0x86, 0x24, 0x5e, 0x91, //0x0000c9b0 .quad -7971894128441897632 + 0x2f, 0x12, 0x1d, 0xdc, 0x74, 0x14, 0xce, 0x0a, //0x0000c9b8 .quad 778582277723329071 + 0xb8, 0x80, 0xff, 0xaa, 0xa8, 0xad, 0xb5, 0xb5, //0x0000c9c0 .quad -5353181642124984136 + 0xbb, 0x56, 0x24, 0x13, 0x92, 0x99, 0x81, 0x0d, //0x0000c9c8 .quad 973227847154161339 + 0xe6, 0x60, 0xbf, 0xd5, 0x12, 0x19, 0x23, 0xe3, //0x0000c9d0 .quad -2079791034228842266 + 0x6a, 0x6c, 0xed, 0x97, 0xf6, 0xff, 0xe1, 0x10, //0x0000c9d8 .quad 1216534808942701674 + 0x8f, 0x9c, 0x97, 0xc5, 0xab, 0xef, 0xf5, 0x8d, //0x0000c9e0 .quad -8217398424034108273 + 0xc2, 0x63, 0xf4, 0x1e, 0xfa, 0x3f, 0x8d, 0xca, //0x0000c9e8 .quad -3851351762838199358 + 0xb3, 0x83, 0xfd, 0xb6, 0x96, 0x6b, 0x73, 0xb1, //0x0000c9f0 .quad -5660062011615247437 + 0xb3, 0x7c, 0xb1, 0xa6, 0xf8, 0x8f, 0x30, 0xbd, //0x0000c9f8 .quad -4814189703547749197 + 0xa0, 0xe4, 0xbc, 0x64, 0x7c, 0x46, 0xd0, 0xdd, //0x0000ca00 .quad -2463391496091671392 + 0xdf, 0xdb, 0x5d, 0xd0, 0xf6, 0xb3, 0x7c, 0xac, //0x0000ca08 .quad -6017737129434686497 + 0xe4, 0x0e, 0xf6, 0xbe, 0x0d, 0x2c, 0xa2, 0x8a, //0x0000ca10 .quad -8457148712698376476 + 0x6c, 0xa9, 0x3a, 0x42, 0x7a, 0xf0, 0xcd, 0x6b, //0x0000ca18 .quad 7768129340171790700 + 0x9d, 0x92, 0xb3, 0x2e, 0x11, 0xb7, 0x4a, 0xad, //0x0000ca20 .quad -5959749872445582691 + 0xc7, 0x53, 0xc9, 0xd2, 0x98, 0x6c, 0xc1, 0x86, //0x0000ca28 .quad -8736582398494813241 + 0x44, 0x77, 0x60, 0x7a, 0xd5, 0x64, 0x9d, 0xd8, //0x0000ca30 .quad -2838001322129590460 + 0xb8, 0xa8, 0x7b, 0x07, 0xbf, 0xc7, 0x71, 0xe8, //0x0000ca38 .quad -1697355961263740744 + 0x8b, 0x4a, 0x7c, 0x6c, 0x05, 0x5f, 0x62, 0x87, //0x0000ca40 .quad -8691279853972075893 + 0x73, 0x49, 0xad, 0x64, 0xd7, 0x1c, 0x47, 0x11, //0x0000ca48 .quad 1244995533423855987 + 0x2d, 0x5d, 0x9b, 0xc7, 0xc6, 0xf6, 0x3a, 0xa9, //0x0000ca50 .quad -6252413799037706963 + 0xd0, 0x9b, 0xd8, 0x3d, 0x0d, 0xe4, 0x98, 0xd5, //0x0000ca58 .quad -3055441601647567920 + 0x79, 0x34, 0x82, 0x79, 0x78, 0xb4, 0x89, 0xd3, //0x0000ca60 .quad -3203831230369745799 + 0xc4, 0xc2, 0x4e, 0x8d, 0x10, 0x1d, 0xff, 0x4a, //0x0000ca68 .quad 5404070034795315908 + 0xcb, 0x60, 0xf1, 0x4b, 0xcb, 0x10, 0x36, 0x84, //0x0000ca70 .quad -8919923546622172981 + 0xbb, 0x39, 0x51, 0x58, 0x2a, 0x72, 0xdf, 0xce, //0x0000ca78 .quad -3539985255894009413 + 0xfe, 0xb8, 0xed, 0x1e, 0xfe, 0x94, 0x43, 0xa5, //0x0000ca80 .quad -6538218414850328322 + 0x29, 0x88, 0x65, 0xee, 0xb4, 0x4e, 0x97, 0xc2, //0x0000ca88 .quad -4424981569867511767 + 0x3e, 0x27, 0xa9, 0xa6, 0x3d, 0x7a, 0x94, 0xce, //0x0000ca90 .quad -3561087000135522498 + 0x33, 0xea, 0xfe, 0x29, 0x62, 0x22, 0x3d, 0x73, //0x0000ca98 .quad 8303831092947774003 + 0x87, 0xb8, 0x29, 0x88, 0x66, 0xcc, 0x1c, 0x81, //0x0000caa0 .quad -9143208402725783417 + 0x60, 0x52, 0x3f, 0x5a, 0x7d, 0x35, 0x06, 0x08, //0x0000caa8 .quad 578208414664970848 + 0xa8, 0x26, 0x34, 0x2a, 0x80, 0xff, 0x63, 0xa1, //0x0000cab0 .quad -6817324484979841368 + 0xf8, 0x26, 0xcf, 0xb0, 0xdc, 0xc2, 0x07, 0xca, //0x0000cab8 .quad -3888925500096174344 + 0x52, 0x30, 0xc1, 0x34, 0x60, 0xff, 0xbc, 0xc9, //0x0000cac0 .quad -3909969587797413806 + 0xb6, 0xf0, 0x02, 0xdd, 0x93, 0xb3, 0x89, 0xfc, //0x0000cac8 .quad -249470856692830026 + 0x67, 0x7c, 0xf1, 0x41, 0x38, 0x3f, 0x2c, 0xfc, //0x0000cad0 .quad -275775966319379353 + 0xe3, 0xac, 0x43, 0xd4, 0x78, 0x20, 0xac, 0xbb, //0x0000cad8 .quad -4923524589293425437 + 0xc0, 0xed, 0x36, 0x29, 0x83, 0xa7, 0x9b, 0x9d, //0x0000cae0 .quad -7089889006590693952 + 0x0e, 0x4c, 0xaa, 0x84, 0x4b, 0x94, 0x4b, 0xd5, //0x0000cae8 .quad -3077202868308390898 + 0x31, 0xa9, 0x84, 0xf3, 0x63, 0x91, 0x02, 0xc5, //0x0000caf0 .quad -4250675239810979535 + 0x12, 0xdf, 0xd4, 0x65, 0x5e, 0x79, 0x9e, 0x0a, //0x0000caf8 .quad 765182433041899282 + 0x7d, 0xd3, 0x65, 0xf0, 0xbc, 0x35, 0x43, 0xf6, //0x0000cb00 .quad -701658031336336515 + 0xd6, 0x16, 0x4a, 0xff, 0xb5, 0x17, 0x46, 0x4d, //0x0000cb08 .quad 5568164059729762006 + 0x2e, 0xa4, 0x3f, 0x16, 0x96, 0x01, 0xea, 0x99, //0x0000cb10 .quad -7356065297226292178 + 0x46, 0x4e, 0x8e, 0xbf, 0xd1, 0xce, 0x4b, 0x50, //0x0000cb18 .quad 5785945546544795206 + 0x39, 0x8d, 0xcf, 0x9b, 0xfb, 0x81, 0x64, 0xc0, //0x0000cb20 .quad -4583395603105477319 + 0xd7, 0xe1, 0x71, 0x2f, 0x86, 0xc2, 0x5e, 0xe4, //0x0000cb28 .quad -1990940103673781801 + 0x88, 0x70, 0xc3, 0x82, 0x7a, 0xa2, 0x7d, 0xf0, //0x0000cb30 .quad -1117558485454458744 + 0x4d, 0x5a, 0x4e, 0xbb, 0x27, 0x73, 0x76, 0x5d, //0x0000cb38 .quad 6734696907262548557 + 0x55, 0x26, 0xba, 0x91, 0x8c, 0x85, 0x4e, 0x96, //0x0000cb40 .quad -7616003081050118571 + 0x70, 0xf8, 0x10, 0xd5, 0xf8, 0x07, 0x6a, 0x3a, //0x0000cb48 .quad 4209185567039092848 + 0xea, 0xaf, 0x28, 0xb6, 0xef, 0x26, 0xe2, 0xbb, //0x0000cb50 .quad -4908317832885260310 + 0x8c, 0x36, 0x55, 0x0a, 0xf7, 0x89, 0x04, 0x89, //0x0000cb58 .quad -8573576096483297652 + 0xe5, 0xdb, 0xb2, 0xa3, 0xab, 0xb0, 0xda, 0xea, //0x0000cb60 .quad -1523711272679187483 + 0x2f, 0x84, 0xea, 0xcc, 0x74, 0xac, 0x45, 0x2b, //0x0000cb68 .quad 3118087934678041647 + 0x6f, 0xc9, 0x4f, 0x46, 0x6b, 0xae, 0xc8, 0x92, //0x0000cb70 .quad -7869848573065574033 + 0x9e, 0x92, 0x12, 0x00, 0xc9, 0x8b, 0x0b, 0x3b, //0x0000cb78 .quad 4254647968387469982 + 0xcb, 0xbb, 0xe3, 0x17, 0x06, 0xda, 0x7a, 0xb7, //0x0000cb80 .quad -5225624697904579637 + 0x45, 0x37, 0x17, 0x40, 0xbb, 0x6e, 0xce, 0x09, //0x0000cb88 .quad 706623942056949573 + 0xbd, 0xaa, 0xdc, 0x9d, 0x87, 0x90, 0x59, 0xe5, //0x0000cb90 .quad -1920344853953336643 + 0x16, 0x05, 0x1d, 0x10, 0x6a, 0x0a, 0x42, 0xcc, //0x0000cb98 .quad -3728406090856200938 + 0xb6, 0xea, 0xa9, 0xc2, 0x54, 0xfa, 0x57, 0x8f, //0x0000cba0 .quad -8117744561361917258 + 0x2e, 0x23, 0x12, 0x4a, 0x82, 0x46, 0xa9, 0x9f, //0x0000cba8 .quad -6941939825212513490 + 0x64, 0x65, 0x54, 0xf3, 0xe9, 0xf8, 0x2d, 0xb3, //0x0000cbb0 .quad -5535494683275008668 + 0xfa, 0xab, 0x96, 0xdc, 0x22, 0x98, 0x93, 0x47, //0x0000cbb8 .quad 5157633273766521850 + 0xbd, 0x7e, 0x29, 0x70, 0x24, 0x77, 0xf9, 0xdf, //0x0000cbc0 .quad -2307682335666372931 + 0xf8, 0x56, 0xbc, 0x93, 0x2b, 0x7e, 0x78, 0x59, //0x0000cbc8 .quad 6447041592208152312 + 0x36, 0xef, 0x19, 0xc6, 0x76, 0xea, 0xfb, 0x8b, //0x0000cbd0 .quad -8359830487432564938 + 0x5b, 0xb6, 0x55, 0x3c, 0xdb, 0x4e, 0xeb, 0x57, //0x0000cbd8 .quad 6335244004343789147 + 0x03, 0x6b, 0xa0, 0x77, 0x14, 0xe5, 0xfa, 0xae, //0x0000cbe0 .quad -5838102090863318269 + 0xf2, 0x23, 0x6b, 0x0b, 0x92, 0x22, 0xe6, 0xed, //0x0000cbe8 .quad -1304317031425039374 + 0xc4, 0x85, 0x88, 0x95, 0x59, 0x9e, 0xb9, 0xda, //0x0000cbf0 .quad -2685941595151759932 + 0xee, 0xec, 0x45, 0x8e, 0x36, 0xab, 0x5f, 0xe9, //0x0000cbf8 .quad -1630396289281299218 + 0x9b, 0x53, 0x75, 0xfd, 0xf7, 0x02, 0xb4, 0x88, //0x0000cc00 .quad -8596242524610931813 + 0x15, 0xb4, 0xeb, 0x18, 0x02, 0xcb, 0xdb, 0x11, //0x0000cc08 .quad 1286845328412881941 + 0x81, 0xa8, 0xd2, 0xfc, 0xb5, 0x03, 0xe1, 0xaa, //0x0000cc10 .quad -6133617137336276863 + 0x1a, 0xa1, 0x26, 0x9f, 0xc2, 0xbd, 0x52, 0xd6, //0x0000cc18 .quad -3003129357911285478 + 0xa2, 0x52, 0x07, 0x7c, 0xa3, 0x44, 0x99, 0xd5, //0x0000cc20 .quad -3055335403242958174 + 0x60, 0x49, 0xf0, 0x46, 0x33, 0x6d, 0xe7, 0x4b, //0x0000cc28 .quad 5469460339465668960 + 0xa5, 0x93, 0x84, 0x2d, 0xe6, 0xca, 0x7f, 0x85, //0x0000cc30 .quad -8827113654667930715 + 0xdc, 0x2d, 0x56, 0x0c, 0x40, 0xa4, 0x70, 0x6f, //0x0000cc38 .quad 8030098730593431004 + 0x8e, 0xb8, 0xe5, 0xb8, 0x9f, 0xbd, 0xdf, 0xa6, //0x0000cc40 .quad -6422206049907525490 + 0x53, 0xb9, 0x6b, 0x0f, 0x50, 0xcd, 0x4c, 0xcb, //0x0000cc48 .quad -3797434642040374957 + 0xb2, 0x26, 0x1f, 0xa7, 0x07, 0xad, 0x97, 0xd0, //0x0000cc50 .quad -3416071543957018958 + 0xa8, 0xa7, 0x46, 0x13, 0xa4, 0x00, 0x20, 0x7e, //0x0000cc58 .quad 9088264752731695016 + 0x2f, 0x78, 0x73, 0xc8, 0x24, 0xcc, 0x5e, 0x82, //0x0000cc60 .quad -9052573742614218705 + 0xc9, 0x28, 0x0c, 0x8c, 0x66, 0x00, 0xd4, 0x8e, //0x0000cc68 .quad -8154892584824854327 + 0x3b, 0x56, 0x90, 0xfa, 0x2d, 0x7f, 0xf6, 0xa2, //0x0000cc70 .quad -6704031159840385477 + 0xfb, 0x32, 0x0f, 0x2f, 0x80, 0x00, 0x89, 0x72, //0x0000cc78 .quad 8253128342678483707 + 0xca, 0x6b, 0x34, 0x79, 0xf9, 0x1e, 0xb4, 0xcb, //0x0000cc80 .quad -3768352931373093942 + 0xba, 0xff, 0xd2, 0x3a, 0xa0, 0x40, 0x2b, 0x4f, //0x0000cc88 .quad 5704724409920716730 + 0xbc, 0x86, 0x81, 0xd7, 0xb7, 0x26, 0xa1, 0xfe, //0x0000cc90 .quad -98755145788979524 + 0xa9, 0xbf, 0x87, 0x49, 0xc8, 0x10, 0xf6, 0xe2, //0x0000cc98 .quad -2092466524453879895 + 0x36, 0xf4, 0xb0, 0xe6, 0x32, 0xb8, 0x24, 0x9f, //0x0000cca0 .quad -6979250993759194058 + 0xca, 0xd7, 0xf4, 0x2d, 0x7d, 0xca, 0xd9, 0x0d, //0x0000cca8 .quad 998051431430019018 + 0x43, 0x31, 0x5d, 0xa0, 0x3f, 0xe6, 0xed, 0xc6, //0x0000ccb0 .quad -4112377723771604669 + 0xbc, 0x0d, 0x72, 0x79, 0x1c, 0x3d, 0x50, 0x91, //0x0000ccb8 .quad -7975807747567252036 + 0x94, 0x7d, 0x74, 0x88, 0xcf, 0x5f, 0xa9, 0xf8, //0x0000ccc0 .quad -528786136287117932 + 0x2b, 0x91, 0xce, 0x97, 0x63, 0x4c, 0xa4, 0x75, //0x0000ccc8 .quad 8476984389250486571 + 0x7c, 0xce, 0x48, 0xb5, 0xe1, 0xdb, 0x69, 0x9b, //0x0000ccd0 .quad -7248020362820530564 + 0xbb, 0x1a, 0xe1, 0x3e, 0xbe, 0xaf, 0x86, 0xc9, //0x0000ccd8 .quad -3925256793573221701 + 0x1b, 0x02, 0x9b, 0x22, 0xda, 0x52, 0x44, 0xc2, //0x0000cce0 .quad -4448339435098275301 + 0x69, 0x61, 0x99, 0xce, 0xad, 0x5b, 0xe8, 0xfb, //0x0000cce8 .quad -294884973539139223 + 0xa2, 0xc2, 0x41, 0xab, 0x90, 0x67, 0xd5, 0xf2, //0x0000ccf0 .quad -948738275445456222 + 0xc4, 0xb9, 0x3f, 0x42, 0x99, 0x72, 0xe2, 0xfa, //0x0000ccf8 .quad -368606216923924028 + 0xa5, 0x19, 0x09, 0x6b, 0xba, 0x60, 0xc5, 0x97, //0x0000cd00 .quad -7510490449794491995 + 0x1b, 0xd4, 0x67, 0xc9, 0x9f, 0x87, 0xcd, 0xdc, //0x0000cd08 .quad -2536221894791146469 + 0x0f, 0x60, 0xcb, 0x05, 0xe9, 0xb8, 0xb6, 0xbd, //0x0000cd10 .quad -4776427043815727089 + 0x21, 0xc9, 0xc1, 0xbb, 0x87, 0xe9, 0x00, 0x54, //0x0000cd18 .quad 6053094668365842721 + 0x13, 0x38, 0x3e, 0x47, 0x23, 0x67, 0x24, 0xed, //0x0000cd20 .quad -1358847786342270957 + 0x69, 0x3b, 0xb2, 0xaa, 0xe9, 0x23, 0x01, 0x29, //0x0000cd28 .quad 2954682317029915497 + 0x0b, 0xe3, 0x86, 0x0c, 0x76, 0xc0, 0x36, 0x94, //0x0000cd30 .quad -7766808894105001205 + 0x22, 0x65, 0xaf, 0x0a, 0x72, 0xb6, 0xa0, 0xf9, //0x0000cd38 .quad -459166561069996766 + 0xce, 0x9b, 0xa8, 0x8f, 0x93, 0x70, 0x44, 0xb9, //0x0000cd40 .quad -5096825099203863602 + 0x6a, 0x3e, 0x5b, 0x8d, 0x0e, 0xe4, 0x08, 0xf8, //0x0000cd48 .quad -573958201337495958 + 0xc2, 0xc2, 0x92, 0x73, 0xb8, 0x8c, 0x95, 0xe7, //0x0000cd50 .quad -1759345355577441598 + 0x05, 0x0e, 0xb2, 0x30, 0x12, 0x1d, 0x0b, 0xb6, //0x0000cd58 .quad -5329133770099257851 + 0xb9, 0xb9, 0x3b, 0x48, 0xf3, 0x77, 0xbd, 0x90, //0x0000cd60 .quad -8017119874876982855 + 0xc3, 0x48, 0x6f, 0x5e, 0x2b, 0xf2, 0xc6, 0xb1, //0x0000cd68 .quad -5636551615525730109 + 0x28, 0xa8, 0x4a, 0x1a, 0xf0, 0xd5, 0xec, 0xb4, //0x0000cd70 .quad -5409713825168840664 + 0xf4, 0x1a, 0x0b, 0x36, 0xb6, 0xae, 0x38, 0x1e, //0x0000cd78 .quad 2177682517447613172 + 0x32, 0x52, 0xdd, 0x20, 0x6c, 0x0b, 0x28, 0xe2, //0x0000cd80 .quad -2150456263033662926 + 0xb1, 0xe1, 0x8d, 0xc3, 0x63, 0xda, 0xc6, 0x25, //0x0000cd88 .quad 2722103146809516465 + 0x5f, 0x53, 0x8a, 0x94, 0x23, 0x07, 0x59, 0x8d, //0x0000cd90 .quad -8261564192037121185 + 0x0f, 0xad, 0x38, 0x5a, 0x7e, 0x48, 0x9c, 0x57, //0x0000cd98 .quad 6313000485183335695 + 0x37, 0xe8, 0xac, 0x79, 0xec, 0x48, 0xaf, 0xb0, //0x0000cda0 .quad -5715269221619013577 + 0x52, 0xd8, 0xc6, 0xf0, 0x9d, 0x5a, 0x83, 0x2d, //0x0000cda8 .quad 3279564588051781714 + 0x44, 0x22, 0x18, 0x98, 0x27, 0x1b, 0xdb, 0xdc, //0x0000cdb0 .quad -2532400508596379068 + 0x66, 0x8e, 0xf8, 0x6c, 0x45, 0x31, 0xe4, 0xf8, //0x0000cdb8 .quad -512230283362660762 + 0x6b, 0x15, 0x0f, 0xbf, 0xf8, 0xf0, 0x08, 0x8a, //0x0000cdc0 .quad -8500279345513818773 + 0x00, 0x59, 0x1b, 0x64, 0xcb, 0x9e, 0x8e, 0x1b, //0x0000cdc8 .quad 1985699082112030976 + 0xc5, 0xda, 0xd2, 0xee, 0x36, 0x2d, 0x8b, 0xac, //0x0000cdd0 .quad -6013663163464885563 + 0x40, 0x2f, 0x22, 0x3d, 0x7e, 0x46, 0x72, 0xe2, //0x0000cdd8 .quad -2129562165787349184 + 0x77, 0x91, 0x87, 0xaa, 0x84, 0xf8, 0xad, 0xd7, //0x0000cde0 .quad -2905392935903719049 + 0x10, 0xbb, 0x6a, 0xcc, 0x1d, 0xd8, 0x0e, 0x5b, //0x0000cde8 .quad 6561419329620589328 + 0xea, 0xba, 0x94, 0xea, 0x52, 0xbb, 0xcc, 0x86, //0x0000cdf0 .quad -8733399612580906262 + 0xea, 0xb4, 0xc2, 0x9f, 0x12, 0x47, 0xe9, 0x98, //0x0000cdf8 .quad -7428327965055601430 + 0xa5, 0xe9, 0x39, 0xa5, 0x27, 0xea, 0x7f, 0xa8, //0x0000ce00 .quad -6305063497298744923 + 0x25, 0x62, 0xb3, 0x47, 0xd7, 0x98, 0x23, 0x3f, //0x0000ce08 .quad 4549648098962661925 + 0x0e, 0x64, 0x88, 0x8e, 0xb1, 0xe4, 0x9f, 0xd2, //0x0000ce10 .quad -3269643353196043250 + 0xae, 0x3a, 0xa0, 0x19, 0x0d, 0x7f, 0xec, 0x8e, //0x0000ce18 .quad -8147997931578836306 + 0x89, 0x3e, 0x15, 0xf9, 0xee, 0xee, 0xa3, 0x83, //0x0000ce20 .quad -8961056123388608887 + 0xad, 0x24, 0x04, 0x30, 0x68, 0xcf, 0x53, 0x19, //0x0000ce28 .quad 1825030320404309165 + 0x2b, 0x8e, 0x5a, 0xb7, 0xaa, 0xea, 0x8c, 0xa4, //0x0000ce30 .quad -6589634135808373205 + 0xd8, 0x2d, 0x05, 0x3c, 0x42, 0xc3, 0xa8, 0x5f, //0x0000ce38 .quad 6892973918932774360 + 0xb6, 0x31, 0x31, 0x65, 0x55, 0x25, 0xb0, 0xcd, //0x0000ce40 .quad -3625356651333078602 + 0x4e, 0x79, 0x06, 0xcb, 0x12, 0xf4, 0x92, 0x37, //0x0000ce48 .quad 4004531380238580046 + 0x11, 0xbf, 0x3e, 0x5f, 0x55, 0x17, 0x8e, 0x80, //0x0000ce50 .quad -9183376934724255983 + 0xd1, 0x0b, 0xe4, 0xbe, 0x8b, 0xd8, 0xbb, 0xe2, //0x0000ce58 .quad -2108853905778275375 + 0xd6, 0x6e, 0x0e, 0xb7, 0x2a, 0x9d, 0xb1, 0xa0, //0x0000ce60 .quad -6867535149977932074 + 0xc5, 0x0e, 0x9d, 0xae, 0xae, 0xce, 0x6a, 0x5b, //0x0000ce68 .quad 6587304654631931589 + 0x8b, 0x0a, 0xd2, 0x64, 0x75, 0x04, 0xde, 0xc8, //0x0000ce70 .quad -3972732919045027189 + 0x76, 0x52, 0x44, 0x5a, 0x5a, 0x82, 0x45, 0xf2, //0x0000ce78 .quad -989241218564861322 + 0x2e, 0x8d, 0x06, 0xbe, 0x92, 0x85, 0x15, 0xfb, //0x0000ce80 .quad -354230130378896082 + 0x13, 0x67, 0xd5, 0xf0, 0xf0, 0xe2, 0xd6, 0xee, //0x0000ce88 .quad -1236551523206076653 + 0x3d, 0x18, 0xc4, 0xb6, 0x7b, 0x73, 0xed, 0x9c, //0x0000ce90 .quad -7138922859127891907 + 0x6c, 0x60, 0x85, 0x96, 0xd6, 0x4d, 0x46, 0x55, //0x0000ce98 .quad 6144684325637283948 + 0x4c, 0x1e, 0x75, 0xa4, 0x5a, 0xd0, 0x28, 0xc4, //0x0000cea0 .quad -4311967555482476980 + 0x87, 0xb8, 0x26, 0x3c, 0x4c, 0xe1, 0x97, 0xaa, //0x0000cea8 .quad -6154202648235558777 + 0xdf, 0x65, 0x92, 0x4d, 0x71, 0x04, 0x33, 0xf5, //0x0000ceb0 .quad -778273425925708321 + 0xa9, 0x66, 0x30, 0x4b, 0x9f, 0xd9, 0x3d, 0xd5, //0x0000ceb8 .quad -3081067291867060567 + 0xab, 0x7f, 0x7b, 0xd0, 0xc6, 0xe2, 0x3f, 0x99, //0x0000cec0 .quad -7403949918844649557 + 0x2a, 0x40, 0xfe, 0x8e, 0x03, 0xa8, 0x46, 0xe5, //0x0000cec8 .quad -1925667057416912854 + 0x96, 0x5f, 0x9a, 0x84, 0x78, 0xdb, 0x8f, 0xbf, //0x0000ced0 .quad -4643251380128424042 + 0x34, 0xd0, 0xbd, 0x72, 0x04, 0x52, 0x98, 0xde, //0x0000ced8 .quad -2407083821771141068 + 0x7c, 0xf7, 0xc0, 0xa5, 0x56, 0xd2, 0x73, 0xef, //0x0000cee0 .quad -1192378206733142148 + 0x41, 0x44, 0x6d, 0x8f, 0x85, 0x66, 0x3e, 0x96, //0x0000cee8 .quad -7620540795641314239 + 0xad, 0x9a, 0x98, 0x27, 0x76, 0x63, 0xa8, 0x95, //0x0000cef0 .quad -7662765406849295699 + 0xa9, 0x4a, 0xa4, 0x79, 0x13, 0x00, 0xe7, 0xdd, //0x0000cef8 .quad -2456994988062127447 + 0x59, 0xc1, 0x7e, 0xb1, 0x53, 0x7c, 0x12, 0xbb, //0x0000cf00 .quad -4966770740134231719 + 0x53, 0x5d, 0x0d, 0x58, 0x18, 0xc0, 0x60, 0x55, //0x0000cf08 .quad 6152128301777116499 + 0xaf, 0x71, 0xde, 0x9d, 0x68, 0x1b, 0xd7, 0xe9, //0x0000cf10 .quad -1596777406740401745 + 0xa7, 0xb4, 0x10, 0x6e, 0x1e, 0xf0, 0xb8, 0xaa, //0x0000cf18 .quad -6144897678060768089 + 0x0d, 0x07, 0xab, 0x62, 0x21, 0x71, 0x26, 0x92, //0x0000cf20 .quad -7915514906853832947 + 0xe9, 0x70, 0xca, 0x04, 0x13, 0x96, 0xb3, 0xca, //0x0000cf28 .quad -3840561048787980055 + 0xd1, 0xc8, 0x55, 0xbb, 0x69, 0x0d, 0xb0, 0xb6, //0x0000cf30 .quad -5282707615139903279 + 0x23, 0x0d, 0xfd, 0xc5, 0x97, 0x7b, 0x60, 0x3d, //0x0000cf38 .quad 4422670725869800739 + 0x05, 0x3b, 0x2b, 0x2a, 0xc4, 0x10, 0x5c, 0xe4, //0x0000cf40 .quad -1991698500497491195 + 0x6b, 0x50, 0x7c, 0xb7, 0x7d, 0x9a, 0xb8, 0x8c, //0x0000cf48 .quad -8306719647944912789 + 0xe3, 0x04, 0x5b, 0x9a, 0x7a, 0x8a, 0xb9, 0x8e, //0x0000cf50 .quad -8162340590452013853 + 0x43, 0xb2, 0xad, 0x92, 0x8e, 0x60, 0xf3, 0x77, //0x0000cf58 .quad 8643358275316593219 + 0x1c, 0xc6, 0xf1, 0x40, 0x19, 0xed, 0x67, 0xb2, //0x0000cf60 .quad -5591239719637629412 + 0xd4, 0x1e, 0x59, 0x37, 0xb2, 0x38, 0xf0, 0x55, //0x0000cf68 .quad 6192511825718353620 + 0xa3, 0x37, 0x2e, 0x91, 0x5f, 0xe8, 0x01, 0xdf, //0x0000cf70 .quad -2377363631119648861 + 0x89, 0x66, 0x2f, 0xc5, 0xde, 0x46, 0x6c, 0x6b, //0x0000cf78 .quad 7740639782147942025 + 0xc6, 0xe2, 0xbc, 0xba, 0x3b, 0x31, 0x61, 0x8b, //0x0000cf80 .quad -8403381297090862394 + 0x16, 0xa0, 0x3d, 0x3b, 0x4b, 0xac, 0x23, 0x23, //0x0000cf88 .quad 2532056854628769814 + 0x77, 0x1b, 0x6c, 0xa9, 0x8a, 0x7d, 0x39, 0xae, //0x0000cf90 .quad -5892540602936190089 + 0x1b, 0x08, 0x0d, 0x0a, 0x5e, 0x97, 0xec, 0xab, //0x0000cf98 .quad -6058300968568813541 + 0x55, 0x22, 0xc7, 0x53, 0xed, 0xdc, 0xc7, 0xd9, //0x0000cfa0 .quad -2753989735242849707 + 0x22, 0x4a, 0x90, 0x8c, 0x35, 0xbd, 0xe7, 0x96, //0x0000cfa8 .quad -7572876210711016926 + 0x75, 0x75, 0x5c, 0x54, 0x14, 0xea, 0x1c, 0x88, //0x0000cfb0 .quad -8638772612167862923 + 0x55, 0x2e, 0xda, 0x77, 0x41, 0xd6, 0x50, 0x7e, //0x0000cfb8 .quad 9102010423587778133 + 0xd2, 0x92, 0x73, 0x69, 0x99, 0x24, 0x24, 0xaa, //0x0000cfc0 .quad -6186779746782440750 + 0xea, 0xb9, 0xd0, 0xd5, 0xd1, 0x0b, 0xe5, 0xdd, //0x0000cfc8 .quad -2457545025797441046 + 0x87, 0x77, 0xd0, 0xc3, 0xbf, 0x2d, 0xad, 0xd4, //0x0000cfd0 .quad -3121788665050663033 + 0x65, 0xe8, 0x44, 0x4b, 0xc6, 0x4e, 0x5e, 0x95, //0x0000cfd8 .quad -7683617300674189211 + 0xb4, 0x4a, 0x62, 0xda, 0x97, 0x3c, 0xec, 0x84, //0x0000cfe0 .quad -8868646943297746252 + 0x3f, 0x11, 0x0b, 0xef, 0x3b, 0xf1, 0x5a, 0xbd, //0x0000cfe8 .quad -4802260812921368257 + 0x61, 0xdd, 0xfa, 0xd0, 0xbd, 0x4b, 0x27, 0xa6, //0x0000cff0 .quad -6474122660694794911 + 0x8f, 0xd5, 0xcd, 0xea, 0x8a, 0xad, 0xb1, 0xec, //0x0000cff8 .quad -1391139997724322417 + 0xba, 0x94, 0x39, 0x45, 0xad, 0x1e, 0xb1, 0xcf, //0x0000d000 .quad -3480967307441105734 + 0xf3, 0x4a, 0x81, 0xa5, 0xed, 0x18, 0xde, 0x67, //0x0000d008 .quad 7484447039699372787 + 0xf4, 0xfc, 0x43, 0x4b, 0x2c, 0xb3, 0xce, 0x81, //0x0000d010 .quad -9093133594791772940 + 0xd8, 0xce, 0x70, 0x87, 0x94, 0xcf, 0xea, 0x80, //0x0000d018 .quad -9157278655470055720 + 0x31, 0xfc, 0x14, 0x5e, 0xf7, 0x5f, 0x42, 0xa2, //0x0000d020 .quad -6754730975062328271 + 0x8e, 0x02, 0x4d, 0xa9, 0x79, 0x83, 0x25, 0xa1, //0x0000d028 .quad -6834912300910181746 + 0x3e, 0x3b, 0x9a, 0x35, 0xf5, 0xf7, 0xd2, 0xca, //0x0000d030 .quad -3831727700400522434 + 0x31, 0x43, 0xa0, 0x13, 0x58, 0xe4, 0x6e, 0x09, //0x0000d038 .quad 679731660717048625 + 0x0d, 0xca, 0x00, 0x83, 0xf2, 0xb5, 0x87, 0xfd, //0x0000d040 .quad -177973607073265139 + 0xfd, 0x53, 0x88, 0x18, 0x6e, 0x9d, 0xca, 0x8b, //0x0000d048 .quad -8373707460958465027 + 0x48, 0x7e, 0xe0, 0x91, 0xb7, 0xd1, 0x74, 0x9e, //0x0000d050 .quad -7028762532061872568 + 0x7e, 0x34, 0x55, 0xcf, 0x64, 0xa2, 0x5e, 0x77, //0x0000d058 .quad 8601490892183123070 + 0xda, 0x9d, 0x58, 0x76, 0x25, 0x06, 0x12, 0xc6, //0x0000d060 .quad -4174267146649952806 + 0x9e, 0x81, 0x2a, 0x03, 0xfe, 0x4a, 0x36, 0x95, //0x0000d068 .quad -7694880458480647778 + 0x51, 0xc5, 0xee, 0xd3, 0xae, 0x87, 0x96, 0xf7, //0x0000d070 .quad -606147914885053103 + 0x05, 0x22, 0xf5, 0x83, 0xbd, 0xdd, 0x83, 0x3a, //0x0000d078 .quad 4216457482181353989 + 0x52, 0x3b, 0x75, 0x44, 0xcd, 0x14, 0xbe, 0x9a, //0x0000d080 .quad -7296371474444240046 + 0x43, 0x35, 0x79, 0x72, 0x96, 0x6a, 0x92, 0xc4, //0x0000d088 .quad -4282243101277735613 + 0x27, 0x8a, 0x92, 0x95, 0x00, 0x9a, 0x6d, 0xc1, //0x0000d090 .quad -4508778324627912153 + 0x94, 0x82, 0x17, 0x0f, 0x3c, 0x05, 0xb7, 0x75, //0x0000d098 .quad 8482254178684994196 + 0xb1, 0x2c, 0xf7, 0xba, 0x80, 0x00, 0xc9, 0xf1, //0x0000d0a0 .quad -1024286887357502287 + 0x39, 0x63, 0xdd, 0x12, 0x8b, 0xc6, 0x24, 0x53, //0x0000d0a8 .quad 5991131704928854841 + 0xee, 0x7b, 0xda, 0x74, 0x50, 0xa0, 0x1d, 0x97, //0x0000d0b0 .quad -7557708332239520786 + 0x04, 0x5e, 0xca, 0xeb, 0x16, 0xfc, 0xf6, 0xd3, //0x0000d0b8 .quad -3173071712060547580 + 0xea, 0x1a, 0x11, 0x92, 0x64, 0x08, 0xe5, 0xbc, //0x0000d0c0 .quad -4835449396872013078 + 0x85, 0xf5, 0xbc, 0xa6, 0x1c, 0xbb, 0xf4, 0x88, //0x0000d0c8 .quad -8578025658503072379 + 0xa5, 0x61, 0x95, 0xb6, 0x7d, 0x4a, 0x1e, 0xec, //0x0000d0d0 .quad -1432625727662628443 + 0xe6, 0x32, 0x6c, 0xd0, 0xe3, 0xe9, 0x31, 0x2b, //0x0000d0d8 .quad 3112525982153323238 + 0x07, 0x5d, 0x1d, 0x92, 0x8e, 0xee, 0x92, 0x93, //0x0000d0e0 .quad -7812920107430224633 + 0xd0, 0x9f, 0x43, 0x62, 0x2e, 0x32, 0xff, 0x3a, //0x0000d0e8 .quad 4251171748059520976 + 0x49, 0xb4, 0xa4, 0x36, 0x32, 0xaa, 0x77, 0xb8, //0x0000d0f0 .quad -5154464115860392887 + 0xc3, 0x87, 0xd4, 0xfa, 0xb9, 0xfe, 0xbe, 0x09, //0x0000d0f8 .quad 702278666647013315 + 0x5b, 0xe1, 0x4d, 0xc4, 0xbe, 0x94, 0x95, 0xe6, //0x0000d100 .quad -1831394126398103205 + 0xb4, 0xa9, 0x89, 0x79, 0x68, 0xbe, 0x2e, 0x4c, //0x0000d108 .quad 5489534351736154548 + 0xd9, 0xac, 0xb0, 0x3a, 0xf7, 0x7c, 0x1d, 0x90, //0x0000d110 .quad -8062150356639896359 + 0x11, 0x0a, 0xf6, 0x4b, 0x01, 0x37, 0x9d, 0x0f, //0x0000d118 .quad 1125115960621402641 + 0x0f, 0xd8, 0x5c, 0x09, 0x35, 0xdc, 0x24, 0xb4, //0x0000d120 .quad -5466001927372482545 + 0x95, 0x8c, 0xf3, 0x9e, 0xc1, 0x84, 0x84, 0x53, //0x0000d128 .quad 6018080969204141205 + 0x13, 0x0e, 0xb4, 0x4b, 0x42, 0x13, 0x2e, 0xe1, //0x0000d130 .quad -2220816390788215277 + 0xba, 0x6f, 0xb0, 0x06, 0xf2, 0xa5, 0x65, 0x28, //0x0000d138 .quad 2910915193077788602 + 0xcb, 0x88, 0x50, 0x6f, 0x09, 0xcc, 0xbc, 0x8c, //0x0000d140 .quad -8305539271883716405 + 0xd4, 0x45, 0x2e, 0x44, 0xb7, 0x87, 0x3f, 0xf9, //0x0000d148 .quad -486521013540076076 + 0xfe, 0xaa, 0x24, 0xcb, 0x0b, 0xff, 0xeb, 0xaf, //0x0000d150 .quad -5770238071427257602 + 0x49, 0xd7, 0x39, 0x15, 0xa5, 0x69, 0x8f, 0xf7, //0x0000d158 .quad -608151266925095095 + 0xbe, 0xd5, 0xed, 0xbd, 0xce, 0xfe, 0xe6, 0xdb, //0x0000d160 .quad -2601111570856684098 + 0x1c, 0x4d, 0x88, 0x5a, 0x0e, 0x44, 0x73, 0xb5, //0x0000d168 .quad -5371875102083756772 + 0x97, 0xa5, 0xb4, 0x36, 0x41, 0x5f, 0x70, 0x89, //0x0000d170 .quad -8543223759426509417 + 0x31, 0x30, 0x95, 0xf8, 0x88, 0x0a, 0x68, 0x31, //0x0000d178 .quad 3560107088838733873 + 0xfc, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x0000d180 .quad -6067343680855748868 + 0x3e, 0x7c, 0xba, 0x36, 0x2b, 0x0d, 0xc2, 0xfd, //0x0000d188 .quad -161552157378970562 + 0xbc, 0x42, 0x7a, 0xe5, 0xd5, 0x94, 0xbf, 0xd6, //0x0000d190 .quad -2972493582642298180 + 0x4d, 0x1b, 0x69, 0x04, 0x76, 0x90, 0x32, 0x3d, //0x0000d198 .quad 4409745821703674701 + 0xb5, 0x69, 0x6c, 0xaf, 0x05, 0xbd, 0x37, 0x86, //0x0000d1a0 .quad -8775337516792518219 + 0x10, 0xb1, 0xc1, 0xc2, 0x49, 0x9a, 0x3f, 0xa6, //0x0000d1a8 .quad -6467280898289979120 + 0x23, 0x84, 0x47, 0x1b, 0x47, 0xac, 0xc5, 0xa7, //0x0000d1b0 .quad -6357485877563259869 + 0x54, 0x1d, 0x72, 0x33, 0xdc, 0x80, 0xcf, 0x0f, //0x0000d1b8 .quad 1139270913992301908 + 0x2b, 0x65, 0x19, 0xe2, 0x58, 0x17, 0xb7, 0xd1, //0x0000d1c0 .quad -3335171328526686933 + 0xa9, 0xa4, 0x4e, 0x40, 0x13, 0x61, 0xc3, 0xd3, //0x0000d1c8 .quad -3187597375937010519 + 0x3b, 0xdf, 0x4f, 0x8d, 0x97, 0x6e, 0x12, 0x83, //0x0000d1d0 .quad -9002011107970261189 + 0xea, 0x26, 0x31, 0x08, 0xac, 0x1c, 0x5a, 0x64, //0x0000d1d8 .quad 7231123676894144234 + 0x0a, 0xd7, 0xa3, 0x70, 0x3d, 0x0a, 0xd7, 0xa3, //0x0000d1e0 .quad -6640827866535438582 + 0xa4, 0x70, 0x3d, 0x0a, 0xd7, 0xa3, 0x70, 0x3d, //0x0000d1e8 .quad 4427218577690292388 + 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x0000d1f0 .quad -3689348814741910324 + 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x0000d1f8 .quad -3689348814741910323 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x0000d200 .quad -9223372036854775808 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d208 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, //0x0000d210 .quad -6917529027641081856 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d218 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc8, //0x0000d220 .quad -4035225266123964416 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d228 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, //0x0000d230 .quad -432345564227567616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d238 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x9c, //0x0000d240 .quad -7187745005283311616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d248 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0xc3, //0x0000d250 .quad -4372995238176751616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d258 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0xf4, //0x0000d260 .quad -854558029293551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d268 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x96, 0x98, //0x0000d270 .quad -7451627795949551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d278 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xbc, 0xbe, //0x0000d280 .quad -4702848726509551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d288 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x6b, 0xee, //0x0000d290 .quad -1266874889709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d298 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf9, 0x02, 0x95, //0x0000d2a0 .quad -7709325833709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d2a8 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x40, 0xb7, 0x43, 0xba, //0x0000d2b0 .quad -5024971273709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d2b8 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x10, 0xa5, 0xd4, 0xe8, //0x0000d2c0 .quad -1669528073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d2c8 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x2a, 0xe7, 0x84, 0x91, //0x0000d2d0 .quad -7960984073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d2d8 .quad 0 + 0x00, 0x00, 0x00, 0x80, 0xf4, 0x20, 0xe6, 0xb5, //0x0000d2e0 .quad -5339544073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d2e8 .quad 0 + 0x00, 0x00, 0x00, 0xa0, 0x31, 0xa9, 0x5f, 0xe3, //0x0000d2f0 .quad -2062744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d2f8 .quad 0 + 0x00, 0x00, 0x00, 0x04, 0xbf, 0xc9, 0x1b, 0x8e, //0x0000d300 .quad -8206744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d308 .quad 0 + 0x00, 0x00, 0x00, 0xc5, 0x2e, 0xbc, 0xa2, 0xb1, //0x0000d310 .quad -5646744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d318 .quad 0 + 0x00, 0x00, 0x40, 0x76, 0x3a, 0x6b, 0x0b, 0xde, //0x0000d320 .quad -2446744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d328 .quad 0 + 0x00, 0x00, 0xe8, 0x89, 0x04, 0x23, 0xc7, 0x8a, //0x0000d330 .quad -8446744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d338 .quad 0 + 0x00, 0x00, 0x62, 0xac, 0xc5, 0xeb, 0x78, 0xad, //0x0000d340 .quad -5946744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d348 .quad 0 + 0x00, 0x80, 0x7a, 0x17, 0xb7, 0x26, 0xd7, 0xd8, //0x0000d350 .quad -2821744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d358 .quad 0 + 0x00, 0x90, 0xac, 0x6e, 0x32, 0x78, 0x86, 0x87, //0x0000d360 .quad -8681119073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d368 .quad 0 + 0x00, 0xb4, 0x57, 0x0a, 0x3f, 0x16, 0x68, 0xa9, //0x0000d370 .quad -6239712823709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d378 .quad 0 + 0x00, 0xa1, 0xed, 0xcc, 0xce, 0x1b, 0xc2, 0xd3, //0x0000d380 .quad -3187955011209551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d388 .quad 0 + 0xa0, 0x84, 0x14, 0x40, 0x61, 0x51, 0x59, 0x84, //0x0000d390 .quad -8910000909647051616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d398 .quad 0 + 0xc8, 0xa5, 0x19, 0x90, 0xb9, 0xa5, 0x6f, 0xa5, //0x0000d3a0 .quad -6525815118631426616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d3a8 .quad 0 + 0x3a, 0x0f, 0x20, 0xf4, 0x27, 0x8f, 0xcb, 0xce, //0x0000d3b0 .quad -3545582879861895366 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d3b8 .quad 0 + 0x84, 0x09, 0x94, 0xf8, 0x78, 0x39, 0x3f, 0x81, //0x0000d3c0 .quad -9133518327554766460 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, //0x0000d3c8 .quad 4611686018427387904 + 0xe5, 0x0b, 0xb9, 0x36, 0xd7, 0x07, 0x8f, 0xa1, //0x0000d3d0 .quad -6805211891016070171 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, //0x0000d3d8 .quad 5764607523034234880 + 0xde, 0x4e, 0x67, 0x04, 0xcd, 0xc9, 0xf2, 0xc9, //0x0000d3e0 .quad -3894828845342699810 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa4, //0x0000d3e8 .quad -6629298651489370112 + 0x96, 0x22, 0x81, 0x45, 0x40, 0x7c, 0x6f, 0xfc, //0x0000d3f0 .quad -256850038250986858 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4d, //0x0000d3f8 .quad 5548434740920451072 + 0x9d, 0xb5, 0x70, 0x2b, 0xa8, 0xad, 0xc5, 0x9d, //0x0000d400 .quad -7078060301547948643 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xf0, //0x0000d408 .quad -1143914305352105984 + 0x05, 0xe3, 0x4c, 0x36, 0x12, 0x19, 0x37, 0xc5, //0x0000d410 .quad -4235889358507547899 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x6c, //0x0000d418 .quad 7793479155164643328 + 0xc6, 0x1b, 0xe0, 0xc3, 0x56, 0xdf, 0x84, 0xf6, //0x0000d420 .quad -683175679707046970 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0xc7, //0x0000d428 .quad -4093209111326359552 + 0x5c, 0x11, 0x6c, 0x3a, 0x96, 0x0b, 0x13, 0x9a, //0x0000d430 .quad -7344513827457986212 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7f, 0x3c, //0x0000d438 .quad 4359273333062107136 + 0xb3, 0x15, 0x07, 0xc9, 0x7b, 0xce, 0x97, 0xc0, //0x0000d440 .quad -4568956265895094861 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x9f, 0x4b, //0x0000d448 .quad 5449091666327633920 + 0x20, 0xdb, 0x48, 0xbb, 0x1a, 0xc2, 0xbd, 0xf0, //0x0000d450 .quad -1099509313941480672 + 0x00, 0x00, 0x00, 0x00, 0x00, 0xd4, 0x86, 0x1e, //0x0000d458 .quad 2199678564482154496 + 0xf4, 0x88, 0x0d, 0xb5, 0x50, 0x99, 0x76, 0x96, //0x0000d460 .quad -7604722348854507276 + 0x00, 0x00, 0x00, 0x00, 0x80, 0x44, 0x14, 0x13, //0x0000d468 .quad 1374799102801346560 + 0x31, 0xeb, 0x50, 0xe2, 0xa4, 0x3f, 0x14, 0xbc, //0x0000d470 .quad -4894216917640746191 + 0x00, 0x00, 0x00, 0x00, 0xa0, 0x55, 0xd9, 0x17, //0x0000d478 .quad 1718498878501683200 + 0xfd, 0x25, 0xe5, 0x1a, 0x8e, 0x4f, 0x19, 0xeb, //0x0000d480 .quad -1506085128623544835 + 0x00, 0x00, 0x00, 0x00, 0x08, 0xab, 0xcf, 0x5d, //0x0000d488 .quad 6759809616554491904 + 0xbe, 0x37, 0xcf, 0xd0, 0xb8, 0xd1, 0xef, 0x92, //0x0000d490 .quad -7858832233030797378 + 0x00, 0x00, 0x00, 0x00, 0xe5, 0xca, 0xa1, 0x5a, //0x0000d498 .quad 6530724019560251392 + 0xad, 0x05, 0x03, 0x05, 0x27, 0xc6, 0xab, 0xb7, //0x0000d4a0 .quad -5211854272861108819 + 0x00, 0x00, 0x00, 0x40, 0x9e, 0x3d, 0x4a, 0xf1, //0x0000d4a8 .quad -1059967012404461568 + 0x19, 0xc7, 0x43, 0xc6, 0xb0, 0xb7, 0x96, 0xe5, //0x0000d4b0 .quad -1903131822648998119 + 0x00, 0x00, 0x00, 0xd0, 0x05, 0xcd, 0x9c, 0x6d, //0x0000d4b8 .quad 7898413271349198848 + 0x6f, 0x5c, 0xea, 0x7b, 0xce, 0x32, 0x7e, 0x8f, //0x0000d4c0 .quad -8106986416796705681 + 0x00, 0x00, 0x00, 0xa2, 0x23, 0x00, 0x82, 0xe4, //0x0000d4c8 .quad -1981020733047832576 + 0x8b, 0xf3, 0xe4, 0x1a, 0x82, 0xbf, 0x5d, 0xb3, //0x0000d4d0 .quad -5522047002568494197 + 0x00, 0x00, 0x80, 0x8a, 0x2c, 0x80, 0xa2, 0xdd, //0x0000d4d8 .quad -2476275916309790720 + 0x6e, 0x30, 0x9e, 0xa1, 0x62, 0x2f, 0x35, 0xe0, //0x0000d4e0 .quad -2290872734783229842 + 0x00, 0x00, 0x20, 0xad, 0x37, 0x20, 0x0b, 0xd5, //0x0000d4e8 .quad -3095344895387238400 + 0x45, 0xde, 0x02, 0xa5, 0x9d, 0x3d, 0x21, 0x8c, //0x0000d4f0 .quad -8349324486880600507 + 0x00, 0x00, 0x34, 0xcc, 0x22, 0xf4, 0x26, 0x45, //0x0000d4f8 .quad 4982938468024057856 + 0xd6, 0x95, 0x43, 0x0e, 0x05, 0x8d, 0x29, 0xaf, //0x0000d500 .quad -5824969590173362730 + 0x00, 0x00, 0x41, 0x7f, 0x2b, 0xb1, 0x70, 0x96, //0x0000d508 .quad -7606384970252091392 + 0x4c, 0x7b, 0xd4, 0x51, 0x46, 0xf0, 0xf3, 0xda, //0x0000d510 .quad -2669525969289315508 + 0x00, 0x40, 0x11, 0x5f, 0x76, 0xdd, 0x0c, 0x3c, //0x0000d518 .quad 4327076842467049472 + 0x0f, 0xcd, 0x24, 0xf3, 0x2b, 0x76, 0xd8, 0x88, //0x0000d520 .quad -8585982758446904049 + 0x00, 0xc8, 0x6a, 0xfb, 0x69, 0x0a, 0x88, 0xa5, //0x0000d528 .quad -6518949010312869888 + 0x53, 0x00, 0xee, 0xef, 0xb6, 0x93, 0x0e, 0xab, //0x0000d530 .quad -6120792429631242157 + 0x00, 0x7a, 0x45, 0x7a, 0x04, 0x0d, 0xea, 0x8e, //0x0000d538 .quad -8148686262891087360 + 0x68, 0x80, 0xe9, 0xab, 0xa4, 0x38, 0xd2, 0xd5, //0x0000d540 .quad -3039304518611664792 + 0x80, 0xd8, 0xd6, 0x98, 0x45, 0x90, 0xa4, 0x72, //0x0000d548 .quad 8260886245095692416 + 0x41, 0xf0, 0x71, 0xeb, 0x66, 0x63, 0xa3, 0x85, //0x0000d550 .quad -8817094351773372351 + 0x50, 0x47, 0x86, 0x7f, 0x2b, 0xda, 0xa6, 0x47, //0x0000d558 .quad 5163053903184807760 + 0x51, 0x6c, 0x4e, 0xa6, 0x40, 0x3c, 0x0c, 0xa7, //0x0000d560 .quad -6409681921289327535 + 0x24, 0xd9, 0x67, 0x5f, 0xb6, 0x90, 0x90, 0x99, //0x0000d568 .quad -7381240676301154012 + 0x65, 0x07, 0xe2, 0xcf, 0x50, 0x4b, 0xcf, 0xd0, //0x0000d570 .quad -3400416383184271515 + 0x6d, 0xcf, 0x41, 0xf7, 0xe3, 0xb4, 0xf4, 0xff, //0x0000d578 .quad -3178808521666707 + 0x9f, 0x44, 0xed, 0x81, 0x12, 0x8f, 0x81, 0x82, //0x0000d580 .quad -9042789267131251553 + 0xa5, 0x21, 0x89, 0x7a, 0x0e, 0xf1, 0xf8, 0xbf, //0x0000d588 .quad -4613672773753429595 + 0xc7, 0x95, 0x68, 0x22, 0xd7, 0xf2, 0x21, 0xa3, //0x0000d590 .quad -6691800565486676537 + 0x0e, 0x6a, 0x2b, 0x19, 0x52, 0x2d, 0xf7, 0xaf, //0x0000d598 .quad -5767090967191786994 + 0x39, 0xbb, 0x02, 0xeb, 0x8c, 0x6f, 0xea, 0xcb, //0x0000d5a0 .quad -3753064688430957767 + 0x91, 0x44, 0x76, 0x9f, 0xa6, 0xf8, 0xf4, 0x9b, //0x0000d5a8 .quad -7208863708989733743 + 0x08, 0x6a, 0xc3, 0x25, 0x70, 0x0b, 0xe5, 0xfe, //0x0000d5b0 .quad -79644842111309304 + 0xb5, 0xd5, 0x53, 0x47, 0xd0, 0x36, 0xf2, 0x02, //0x0000d5b8 .quad 212292400617608629 + 0x45, 0x22, 0x9a, 0x17, 0x26, 0x27, 0x4f, 0x9f, //0x0000d5c0 .quad -6967307053960650171 + 0x91, 0x65, 0x94, 0x2c, 0x42, 0x62, 0xd7, 0x01, //0x0000d5c8 .quad 132682750386005393 + 0xd6, 0xaa, 0x80, 0x9d, 0xef, 0xf0, 0x22, 0xc7, //0x0000d5d0 .quad -4097447799023424810 + 0xf6, 0x7e, 0xb9, 0xb7, 0xd2, 0x3a, 0x4d, 0x42, //0x0000d5d8 .quad 4777539456409894646 + 0x8b, 0xd5, 0xe0, 0x84, 0x2b, 0xad, 0xeb, 0xf8, //0x0000d5e0 .quad -510123730351893109 + 0xb3, 0xde, 0xa7, 0x65, 0x87, 0x89, 0xe0, 0xd2, //0x0000d5e8 .quad -3251447716342407501 + 0x77, 0x85, 0x0c, 0x33, 0x3b, 0x4c, 0x93, 0x9b, //0x0000d5f0 .quad -7236356359111015049 + 0x30, 0xeb, 0x88, 0x9f, 0xf4, 0x55, 0xcc, 0x63, //0x0000d5f8 .quad 7191217214140771120 + 0xd5, 0xa6, 0xcf, 0xff, 0x49, 0x1f, 0x78, 0xc2, //0x0000d600 .quad -4433759430461380907 + 0xfc, 0x25, 0x6b, 0xc7, 0x71, 0x6b, 0xbf, 0x3c, //0x0000d608 .quad 4377335499248575996 + 0x8a, 0x90, 0xc3, 0x7f, 0x1c, 0x27, 0x16, 0xf3, //0x0000d610 .quad -930513269649338230 + 0x7b, 0xef, 0x45, 0x39, 0x4e, 0x46, 0xef, 0x8b, //0x0000d618 .quad -8363388681221443717 + 0x56, 0x3a, 0xda, 0xcf, 0x71, 0xd8, 0xed, 0x97, //0x0000d620 .quad -7499099821171918250 + 0xad, 0xb5, 0xcb, 0xe3, 0xf0, 0x8b, 0x75, 0x97, //0x0000d628 .quad -7532960934977096275 + 0xec, 0xc8, 0xd0, 0x43, 0x8e, 0x4e, 0xe9, 0xbd, //0x0000d630 .quad -4762188758037509908 + 0x18, 0xa3, 0xbe, 0x1c, 0xed, 0xee, 0x52, 0x3d, //0x0000d638 .quad 4418856886560793368 + 0x27, 0xfb, 0xc4, 0xd4, 0x31, 0xa2, 0x63, 0xed, //0x0000d640 .quad -1341049929119499481 + 0xde, 0x4b, 0xee, 0x63, 0xa8, 0xaa, 0xa7, 0x4c, //0x0000d648 .quad 5523571108200991710 + 0xf8, 0x1c, 0xfb, 0x24, 0x5f, 0x45, 0x5e, 0x94, //0x0000d650 .quad -7755685233340769032 + 0x6b, 0xef, 0x74, 0x3e, 0xa9, 0xca, 0xe8, 0x8f, //0x0000d658 .quad -8076983103442849941 + 0x36, 0xe4, 0x39, 0xee, 0xb6, 0xd6, 0x75, 0xb9, //0x0000d660 .quad -5082920523248573386 + 0x45, 0x2b, 0x12, 0x8e, 0x53, 0xfd, 0xe2, 0xb3, //0x0000d668 .quad -5484542860876174523 + 0x44, 0x5d, 0xc8, 0xa9, 0x64, 0x4c, 0xd3, 0xe7, //0x0000d670 .quad -1741964635633328828 + 0x17, 0xb6, 0x96, 0x71, 0xa8, 0xbc, 0xdb, 0x60, //0x0000d678 .quad 6979379479186945559 + 0x4a, 0x3a, 0x1d, 0xea, 0xbe, 0x0f, 0xe4, 0x90, //0x0000d680 .quad -8006256924911912374 + 0xce, 0x31, 0xfe, 0x46, 0xe9, 0x55, 0x89, 0xbc, //0x0000d688 .quad -4861259862362934834 + 0xdd, 0x88, 0xa4, 0xa4, 0xae, 0x13, 0x1d, 0xb5, //0x0000d690 .quad -5396135137712502563 + 0x42, 0xbe, 0xbd, 0x98, 0x63, 0xab, 0xab, 0x6b, //0x0000d698 .quad 7758483227328495170 + 0x14, 0xab, 0xcd, 0x4d, 0x9a, 0x58, 0x64, 0xe2, //0x0000d6a0 .quad -2133482903713240300 + 0xd2, 0x2d, 0xed, 0x7e, 0x3c, 0x96, 0x96, 0xc6, //0x0000d6a8 .quad -4136954021121544750 + 0xec, 0x8a, 0xa0, 0x70, 0x60, 0xb7, 0x7e, 0x8d, //0x0000d6b0 .quad -8250955842461857044 + 0xa3, 0x3c, 0x54, 0xcf, 0xe5, 0x1d, 0x1e, 0xfc, //0x0000d6b8 .quad -279753253987271517 + 0xa8, 0xad, 0xc8, 0x8c, 0x38, 0x65, 0xde, 0xb0, //0x0000d6c0 .quad -5702008784649933400 + 0xcc, 0x4b, 0x29, 0x43, 0x5f, 0xa5, 0x25, 0x3b, //0x0000d6c8 .quad 4261994450943298508 + 0x12, 0xd9, 0xfa, 0xaf, 0x86, 0xfe, 0x15, 0xdd, //0x0000d6d0 .quad -2515824962385028846 + 0xbf, 0x9e, 0xf3, 0x13, 0xb7, 0x0e, 0xef, 0x49, //0x0000d6d8 .quad 5327493063679123135 + 0xab, 0xc7, 0xfc, 0x2d, 0x14, 0xbf, 0x2d, 0x8a, //0x0000d6e0 .quad -8489919629131724885 + 0x38, 0x43, 0x78, 0x6c, 0x32, 0x69, 0x35, 0x6e, //0x0000d6e8 .quad 7941369183226839864 + 0x96, 0xf9, 0x7b, 0x39, 0xd9, 0x2e, 0xb9, 0xac, //0x0000d6f0 .quad -6000713517987268202 + 0x05, 0x54, 0x96, 0x07, 0x7f, 0xc3, 0xc2, 0x49, //0x0000d6f8 .quad 5315025460606161925 + 0xfb, 0xf7, 0xda, 0x87, 0x8f, 0x7a, 0xe7, 0xd7, //0x0000d700 .quad -2889205879056697349 + 0x07, 0xe9, 0x7b, 0xc9, 0x5e, 0x74, 0x33, 0xdc, //0x0000d708 .quad -2579590211097073401 + 0xfd, 0xda, 0xe8, 0xb4, 0x99, 0xac, 0xf0, 0x86, //0x0000d710 .quad -8723282702051517699 + 0xa4, 0x71, 0xed, 0x3d, 0xbb, 0x28, 0xa0, 0x69, //0x0000d718 .quad 7611128154919104932 + 0xbc, 0x11, 0x23, 0x22, 0xc0, 0xd7, 0xac, 0xa8, //0x0000d720 .quad -6292417359137009220 + 0x0d, 0xce, 0x68, 0x0d, 0xea, 0x32, 0x08, 0xc4, //0x0000d728 .quad -4321147861633282547 + 0x2b, 0xd6, 0xab, 0x2a, 0xb0, 0x0d, 0xd8, 0xd2, //0x0000d730 .quad -3253835680493873621 + 0x91, 0x01, 0xc3, 0x90, 0xa4, 0x3f, 0x0a, 0xf5, //0x0000d738 .quad -789748808614215279 + 0xdb, 0x65, 0xab, 0x1a, 0x8e, 0x08, 0xc7, 0x83, //0x0000d740 .quad -8951176327949752869 + 0xfb, 0xe0, 0x79, 0xda, 0xc6, 0x67, 0x26, 0x79, //0x0000d748 .quad 8729779031470891259 + 0x52, 0x3f, 0x56, 0xa1, 0xb1, 0xca, 0xb8, 0xa4, //0x0000d750 .quad -6577284391509803182 + 0x39, 0x59, 0x18, 0x91, 0xb8, 0x01, 0x70, 0x57, //0x0000d758 .quad 6300537770911226169 + 0x26, 0xcf, 0xab, 0x09, 0x5e, 0xfd, 0xe6, 0xcd, //0x0000d760 .quad -3609919470959866074 + 0x87, 0x6f, 0x5e, 0xb5, 0x26, 0x02, 0x4c, 0xed, //0x0000d768 .quad -1347699823215743097 + 0x78, 0x61, 0x0b, 0xc6, 0x5a, 0x5e, 0xb0, 0x80, //0x0000d770 .quad -9173728696990998152 + 0xb5, 0x05, 0x5b, 0x31, 0x58, 0x81, 0x4f, 0x54, //0x0000d778 .quad 6075216638131242421 + 0xd6, 0x39, 0x8e, 0x77, 0xf1, 0x75, 0xdc, 0xa0, //0x0000d780 .quad -6855474852811359786 + 0x22, 0xc7, 0xb1, 0x3d, 0xae, 0x61, 0x63, 0x69, //0x0000d788 .quad 7594020797664053026 + 0x4c, 0xc8, 0x71, 0xd5, 0x6d, 0x93, 0x13, 0xc9, //0x0000d790 .quad -3957657547586811828 + 0xea, 0x38, 0x1e, 0xcd, 0x19, 0x3a, 0xbc, 0x03, //0x0000d798 .quad 269153960225290474 + 0x5f, 0x3a, 0xce, 0x4a, 0x49, 0x78, 0x58, 0xfb, //0x0000d7a0 .quad -335385916056126881 + 0x24, 0xc7, 0x65, 0x40, 0xa0, 0x48, 0xab, 0x04, //0x0000d7a8 .quad 336442450281613092 + 0x7b, 0xe4, 0xc0, 0xce, 0x2d, 0x4b, 0x17, 0x9d, //0x0000d7b0 .quad -7127145225176161157 + 0x77, 0x9c, 0x3f, 0x28, 0x64, 0x0d, 0xeb, 0x62, //0x0000d7b8 .quad 7127805559067090039 + 0x9a, 0x1d, 0x71, 0x42, 0xf9, 0x1d, 0x5d, 0xc4, //0x0000d7c0 .quad -4297245513042813542 + 0x95, 0x83, 0x4f, 0x32, 0xbd, 0xd0, 0xa5, 0x3b, //0x0000d7c8 .quad 4298070930406474645 + 0x00, 0x65, 0x0d, 0x93, 0x77, 0x65, 0x74, 0xf5, //0x0000d7d0 .quad -759870872876129024 + 0x7a, 0x64, 0xe3, 0x7e, 0xec, 0x44, 0x8f, 0xca, //0x0000d7d8 .quad -3850783373846682502 + 0x20, 0x5f, 0xe8, 0xbb, 0x6a, 0xbf, 0x68, 0x99, //0x0000d7e0 .quad -7392448323188662496 + 0xcc, 0x1e, 0x4e, 0xcf, 0x13, 0x8b, 0x99, 0x7e, //0x0000d7e8 .quad 9122475437414293196 + 0xe8, 0x76, 0xe2, 0x6a, 0x45, 0xef, 0xc2, 0xbf, //0x0000d7f0 .quad -4628874385558440216 + 0x7f, 0xa6, 0x21, 0xc3, 0xd8, 0xed, 0x3f, 0x9e, //0x0000d7f8 .quad -7043649776941685121 + 0xa2, 0x14, 0x9b, 0xc5, 0x16, 0xab, 0xb3, 0xef, //0x0000d800 .quad -1174406963520662366 + 0x1f, 0x10, 0xea, 0xf3, 0x4e, 0xe9, 0xcf, 0xc5, //0x0000d808 .quad -4192876202749718497 + 0xe5, 0xec, 0x80, 0x3b, 0xee, 0x4a, 0xd0, 0x95, //0x0000d810 .quad -7651533379841495835 + 0x13, 0x4a, 0x72, 0x58, 0xd1, 0xf1, 0xa1, 0xbb, //0x0000d818 .quad -4926390635932268013 + 0x1f, 0x28, 0x61, 0xca, 0xa9, 0x5d, 0x44, 0xbb, //0x0000d820 .quad -4952730706374481889 + 0x98, 0xdc, 0x8e, 0xae, 0x45, 0x6e, 0x8a, 0x2a, //0x0000d828 .quad 3065383741939440792 + 0x26, 0x72, 0xf9, 0x3c, 0x14, 0x75, 0x15, 0xea, //0x0000d830 .quad -1579227364540714458 + 0xbe, 0x93, 0x32, 0x1a, 0xd7, 0x09, 0x2d, 0xf5, //0x0000d838 .quad -779956341003086914 + 0x58, 0xe7, 0x1b, 0xa6, 0x2c, 0x69, 0x4d, 0x92, //0x0000d840 .quad -7904546130479028392 + 0x57, 0x9c, 0x5f, 0x70, 0x26, 0x26, 0x3c, 0x59, //0x0000d848 .quad 6430056314514152535 + 0x2e, 0xe1, 0xa2, 0xcf, 0x77, 0xc3, 0xe0, 0xb6, //0x0000d850 .quad -5268996644671397586 + 0x6d, 0x83, 0x77, 0x0c, 0xb0, 0x2f, 0x8b, 0x6f, //0x0000d858 .quad 8037570393142690669 + 0x7a, 0x99, 0x8b, 0xc3, 0x55, 0xf4, 0x98, 0xe4, //0x0000d860 .quad -1974559787411859078 + 0x48, 0x64, 0x95, 0x0f, 0x9c, 0xfb, 0x6d, 0x0b, //0x0000d868 .quad 823590954573587528 + 0xec, 0x3f, 0x37, 0x9a, 0xb5, 0x98, 0xdf, 0x8e, //0x0000d870 .quad -8151628894773493780 + 0xad, 0x5e, 0xbd, 0x89, 0x41, 0xbd, 0x24, 0x47, //0x0000d878 .quad 5126430365035880109 + 0xe7, 0x0f, 0xc5, 0x00, 0xe3, 0x7e, 0x97, 0xb2, //0x0000d880 .quad -5577850100039479321 + 0x58, 0xb6, 0x2c, 0xec, 0x91, 0xec, 0xed, 0x58, //0x0000d888 .quad 6408037956294850136 + 0xe1, 0x53, 0xf6, 0xc0, 0x9b, 0x5e, 0x3d, 0xdf, //0x0000d890 .quad -2360626606621961247 + 0xee, 0xe3, 0x37, 0x67, 0xb6, 0x67, 0x29, 0x2f, //0x0000d898 .quad 3398361426941174766 + 0x6c, 0xf4, 0x99, 0x58, 0x21, 0x5b, 0x86, 0x8b, //0x0000d8a0 .quad -8392920656779807636 + 0x75, 0xee, 0x82, 0x00, 0xd2, 0xe0, 0x79, 0xbd, //0x0000d8a8 .quad -4793553135802847627 + 0x87, 0x71, 0xc0, 0xae, 0xe9, 0xf1, 0x67, 0xae, //0x0000d8b0 .quad -5879464802547371641 + 0x12, 0xaa, 0xa3, 0x80, 0x06, 0x59, 0xd8, 0xec, //0x0000d8b8 .quad -1380255401326171630 + 0xe9, 0x8d, 0x70, 0x1a, 0x64, 0xee, 0x01, 0xda, //0x0000d8c0 .quad -2737644984756826647 + 0x96, 0x94, 0xcc, 0x20, 0x48, 0x6f, 0x0e, 0xe8, //0x0000d8c8 .quad -1725319251657714538 + 0xb2, 0x58, 0x86, 0x90, 0xfe, 0x34, 0x41, 0x88, //0x0000d8d0 .quad -8628557143114098510 + 0xde, 0xdc, 0x7f, 0x14, 0x8d, 0x05, 0x09, 0x31, //0x0000d8d8 .quad 3533361486141316318 + 0xde, 0xee, 0xa7, 0x34, 0x3e, 0x82, 0x51, 0xaa, //0x0000d8e0 .quad -6174010410465235234 + 0x16, 0xd4, 0x9f, 0x59, 0xf0, 0x46, 0x4b, 0xbd, //0x0000d8e8 .quad -4806670179178130410 + 0x96, 0xea, 0xd1, 0xc1, 0xcd, 0xe2, 0xe5, 0xd4, //0x0000d8f0 .quad -3105826994654156138 + 0x1b, 0xc9, 0x07, 0x70, 0xac, 0x18, 0x9e, 0x6c, //0x0000d8f8 .quad 7826720331309500699 + 0x9e, 0x32, 0x23, 0x99, 0xc0, 0xad, 0x0f, 0x85, //0x0000d900 .quad -8858670899299929442 + 0xb1, 0xdd, 0x04, 0xc6, 0x6b, 0xcf, 0xe2, 0x03, //0x0000d908 .quad 280014188641050033 + 0x45, 0xff, 0x6b, 0xbf, 0x30, 0x99, 0x53, 0xa6, //0x0000d910 .quad -6461652605697523899 + 0x1d, 0x15, 0x86, 0xb7, 0x46, 0x83, 0xdb, 0x84, //0x0000d918 .quad -8873354301053463267 + 0x16, 0xff, 0x46, 0xef, 0x7c, 0x7f, 0xe8, 0xcf, //0x0000d920 .quad -3465379738694516970 + 0x64, 0x9a, 0x67, 0x65, 0x18, 0x64, 0x12, 0xe6, //0x0000d928 .quad -1868320839462053276 + 0x6e, 0x5f, 0x8c, 0x15, 0xae, 0x4f, 0xf1, 0x81, //0x0000d930 .quad -9083391364325154962 + 0x7f, 0xc0, 0x60, 0x3f, 0x8f, 0x7e, 0xcb, 0x4f, //0x0000d938 .quad 5749828502977298559 + 0x49, 0x77, 0xef, 0x9a, 0x99, 0xa3, 0x6d, 0xa2, //0x0000d940 .quad -6742553186979055799 + 0x9e, 0xf0, 0x38, 0x0f, 0x33, 0x5e, 0xbe, 0xe3, //0x0000d948 .quad -2036086408133152610 + 0x1c, 0x55, 0xab, 0x01, 0x80, 0x0c, 0x09, 0xcb, //0x0000d950 .quad -3816505465296431844 + 0xc6, 0x2c, 0x07, 0xd3, 0xbf, 0xf5, 0xad, 0x5c, //0x0000d958 .quad 6678264026688335046 + 0x63, 0x2a, 0x16, 0x02, 0xa0, 0x4f, 0xcb, 0xfd, //0x0000d960 .quad -158945813193151901 + 0xf7, 0xf7, 0xc8, 0xc7, 0x2f, 0x73, 0xd9, 0x73, //0x0000d968 .quad 8347830033360418807 + 0x7e, 0xda, 0x4d, 0x01, 0xc4, 0x11, 0x9f, 0x9e, //0x0000d970 .quad -7016870160886801794 + 0xfb, 0x9a, 0xdd, 0xdc, 0xfd, 0xe7, 0x67, 0x28, //0x0000d978 .quad 2911550761636567803 + 0x1d, 0x51, 0xa1, 0x01, 0x35, 0xd6, 0x46, 0xc6, //0x0000d980 .quad -4159401682681114339 + 0xb9, 0x01, 0x15, 0x54, 0xfd, 0xe1, 0x81, 0xb2, //0x0000d988 .quad -5583933584809066055 + 0x65, 0xa5, 0x09, 0x42, 0xc2, 0x8b, 0xd8, 0xf7, //0x0000d990 .quad -587566084924005019 + 0x27, 0x42, 0x1a, 0xa9, 0x7c, 0x5a, 0x22, 0x1f, //0x0000d998 .quad 2243455055843443239 + 0x5f, 0x07, 0x46, 0x69, 0x59, 0x57, 0xe7, 0x9a, //0x0000d9a0 .quad -7284757830718584993 + 0x59, 0x69, 0xb0, 0xe9, 0x8d, 0x78, 0x75, 0x33, //0x0000d9a8 .quad 3708002419115845977 + 0x37, 0x89, 0x97, 0xc3, 0x2f, 0x2d, 0xa1, 0xc1, //0x0000d9b0 .quad -4494261269970843337 + 0xaf, 0x83, 0x1c, 0x64, 0xb1, 0xd6, 0x52, 0x00, //0x0000d9b8 .quad 23317005467419567 + 0x84, 0x6b, 0x7d, 0xb4, 0x7b, 0x78, 0x09, 0xf2, //0x0000d9c0 .quad -1006140569036166268 + 0x9b, 0xa4, 0x23, 0xbd, 0x5d, 0x8c, 0x67, 0xc0, //0x0000d9c8 .quad -4582539761593113445 + 0x32, 0x63, 0xce, 0x50, 0x4d, 0xeb, 0x45, 0x97, //0x0000d9d0 .quad -7546366883288685774 + 0xe1, 0x46, 0x36, 0x96, 0xba, 0xb7, 0x40, 0xf8, //0x0000d9d8 .quad -558244341782001951 + 0xff, 0xfb, 0x01, 0xa5, 0x20, 0x66, 0x17, 0xbd, //0x0000d9e0 .quad -4821272585683469313 + 0x99, 0xd8, 0xc3, 0x3b, 0xa9, 0xe5, 0x50, 0xb6, //0x0000d9e8 .quad -5309491445654890343 + 0xff, 0x7a, 0x42, 0xce, 0xa8, 0x3f, 0x5d, 0xec, //0x0000d9f0 .quad -1414904713676948737 + 0xbf, 0xce, 0xb4, 0x8a, 0x13, 0x1f, 0xe5, 0xa3, //0x0000d9f8 .quad -6636864307068612929 + 0xdf, 0x8c, 0xe9, 0x80, 0xc9, 0x47, 0xba, 0x93, //0x0000da00 .quad -7801844473689174817 + 0x38, 0x01, 0xb1, 0x36, 0x6c, 0x33, 0x6f, 0xc6, //0x0000da08 .quad -4148040191917883080 + 0x17, 0xf0, 0x23, 0xe1, 0xbb, 0xd9, 0xa8, 0xb8, //0x0000da10 .quad -5140619573684080617 + 0x85, 0x41, 0x5d, 0x44, 0x47, 0x00, 0x0b, 0xb8, //0x0000da18 .quad -5185050239897353851 + 0x1d, 0xec, 0x6c, 0xd9, 0x2a, 0x10, 0xd3, 0xe6, //0x0000da20 .quad -1814088448677712867 + 0xe6, 0x91, 0x74, 0x15, 0x59, 0xc0, 0x0d, 0xa6, //0x0000da28 .quad -6481312799871692314 + 0x92, 0x13, 0xe4, 0xc7, 0x1a, 0xea, 0x43, 0x90, //0x0000da30 .quad -8051334308064652398 + 0x30, 0xdb, 0x68, 0xad, 0x37, 0x98, 0xc8, 0x87, //0x0000da38 .quad -8662506518347195600 + 0x77, 0x18, 0xdd, 0x79, 0xa1, 0xe4, 0x54, 0xb4, //0x0000da40 .quad -5452481866653427593 + 0xfc, 0x11, 0xc3, 0x98, 0x45, 0xbe, 0xba, 0x29, //0x0000da48 .quad 3006924907348169212 + 0x94, 0x5e, 0x54, 0xd8, 0xc9, 0x1d, 0x6a, 0xe1, //0x0000da50 .quad -2203916314889396588 + 0x7b, 0xd6, 0xf3, 0xfe, 0xd6, 0x6d, 0x29, 0xf4, //0x0000da58 .quad -853029884242176389 + 0x1d, 0xbb, 0x34, 0x27, 0x9e, 0x52, 0xe2, 0x8c, //0x0000da60 .quad -8294976724446954723 + 0x0d, 0x66, 0x58, 0x5f, 0xa6, 0xe4, 0x99, 0x18, //0x0000da68 .quad 1772699331562333709 + 0xe4, 0xe9, 0x01, 0xb1, 0x45, 0xe7, 0x1a, 0xb0, //0x0000da70 .quad -5757034887131305500 + 0x90, 0x7f, 0x2e, 0xf7, 0xcf, 0x5d, 0xc0, 0x5e, //0x0000da78 .quad 6827560182880305040 + 0x5d, 0x64, 0x42, 0x1d, 0x17, 0xa1, 0x21, 0xdc, //0x0000da80 .quad -2584607590486743971 + 0x74, 0x1f, 0xfa, 0xf4, 0x43, 0x75, 0x70, 0x76, //0x0000da88 .quad 8534450228600381300 + 0xba, 0x7e, 0x49, 0x72, 0xae, 0x04, 0x95, 0x89, //0x0000da90 .quad -8532908771695296838 + 0xa9, 0x53, 0x1c, 0x79, 0x4a, 0x49, 0x06, 0x6a, //0x0000da98 .quad 7639874402088932265 + 0x69, 0xde, 0xdb, 0x0e, 0xda, 0x45, 0xfa, 0xab, //0x0000daa0 .quad -6054449946191733143 + 0x93, 0x68, 0x63, 0x17, 0x9d, 0xdb, 0x87, 0x04, //0x0000daa8 .quad 326470965756389523 + 0x03, 0xd6, 0x92, 0x92, 0x50, 0xd7, 0xf8, 0xd6, //0x0000dab0 .quad -2956376414312278525 + 0xb7, 0x42, 0x3c, 0x5d, 0x84, 0xd2, 0xa9, 0x45, //0x0000dab8 .quad 5019774725622874807 + 0xc2, 0xc5, 0x9b, 0x5b, 0x92, 0x86, 0x5b, 0x86, //0x0000dac0 .quad -8765264286586255934 + 0xb3, 0xa9, 0x45, 0xba, 0x92, 0x23, 0x8a, 0x0b, //0x0000dac8 .quad 831516194300602803 + 0x32, 0xb7, 0x82, 0xf2, 0x36, 0x68, 0xf2, 0xa7, //0x0000dad0 .quad -6344894339805432014 + 0x1f, 0x14, 0xd7, 0x68, 0x77, 0xac, 0x6c, 0x8e, //0x0000dad8 .quad -8183976793979022305 + 0xff, 0x64, 0x23, 0xaf, 0x44, 0x02, 0xef, 0xd1, //0x0000dae0 .quad -3319431906329402113 + 0x27, 0xd9, 0x0c, 0x43, 0x95, 0xd7, 0x07, 0x32, //0x0000dae8 .quad 3605087062808385831 + 0x1f, 0x1f, 0x76, 0xed, 0x6a, 0x61, 0x35, 0x83, //0x0000daf0 .quad -8992173969096958177 + 0xb9, 0x07, 0xe8, 0x49, 0xbd, 0xe6, 0x44, 0x7f, //0x0000daf8 .quad 9170708441896323001 + 0xe7, 0xa6, 0xd3, 0xa8, 0xc5, 0xb9, 0x02, 0xa4, //0x0000db00 .quad -6628531442943809817 + 0xa7, 0x09, 0x62, 0x9c, 0x6c, 0x20, 0x16, 0x5f, //0x0000db08 .quad 6851699533943015847 + 0xa1, 0x90, 0x08, 0x13, 0x37, 0x68, 0x03, 0xcd, //0x0000db10 .quad -3673978285252374367 + 0x10, 0x8c, 0x7a, 0xc3, 0x87, 0xa8, 0xdb, 0x36, //0x0000db18 .quad 3952938399001381904 + 0x64, 0x5a, 0xe5, 0x6b, 0x22, 0x21, 0x22, 0x80, //0x0000db20 .quad -9213765455923815836 + 0x8a, 0x97, 0x2c, 0xda, 0x54, 0x49, 0x49, 0xc2, //0x0000db28 .quad -4446942528265218166 + 0xfd, 0xb0, 0xde, 0x06, 0x6b, 0xa9, 0x2a, 0xa0, //0x0000db30 .quad -6905520801477381891 + 0x6d, 0xbd, 0xb7, 0x10, 0xaa, 0x9b, 0xdb, 0xf2, //0x0000db38 .quad -946992141904134803 + 0x3d, 0x5d, 0x96, 0xc8, 0xc5, 0x53, 0x35, 0xc8, //0x0000db40 .quad -4020214983419339459 + 0xc8, 0xac, 0xe5, 0x94, 0x94, 0x82, 0x92, 0x6f, //0x0000db48 .quad 8039631859474607304 + 0x8c, 0xf4, 0xbb, 0x3a, 0xb7, 0xa8, 0x42, 0xfa, //0x0000db50 .quad -413582710846786420 + 0xfa, 0x17, 0x1f, 0xba, 0x39, 0x23, 0x77, 0xcb, //0x0000db58 .quad -3785518230938904582 + 0xd7, 0x78, 0xb5, 0x84, 0x72, 0xa9, 0x69, 0x9c, //0x0000db60 .quad -7176018221920323369 + 0xfc, 0x6e, 0x53, 0x14, 0x04, 0x76, 0x2a, 0xff, //0x0000db68 .quad -60105885123121412 + 0x0d, 0xd7, 0xe2, 0x25, 0xcf, 0x13, 0x84, 0xc3, //0x0000db70 .quad -4358336758973016307 + 0xbb, 0x4a, 0x68, 0x19, 0x85, 0x13, 0xf5, 0xfe, //0x0000db78 .quad -75132356403901765 + 0xd1, 0x8c, 0x5b, 0xef, 0xc2, 0x18, 0x65, 0xf4, //0x0000db80 .quad -836234930288882479 + 0x6a, 0x5d, 0xc2, 0x5f, 0x66, 0x58, 0xb2, 0x7e, //0x0000db88 .quad 9129456591349898602 + 0x02, 0x38, 0x99, 0xd5, 0x79, 0x2f, 0xbf, 0x98, //0x0000db90 .quad -7440175859071633406 + 0x62, 0x7a, 0xd9, 0xfb, 0x3f, 0x77, 0x2f, 0xef, //0x0000db98 .quad -1211618658047395230 + 0x03, 0x86, 0xff, 0x4a, 0x58, 0xfb, 0xee, 0xbe, //0x0000dba0 .quad -4688533805412153853 + 0xfb, 0xd8, 0xcf, 0xfa, 0x0f, 0x55, 0xfb, 0xaa, //0x0000dba8 .quad -6126209340986631941 + 0x84, 0x67, 0xbf, 0x5d, 0x2e, 0xba, 0xaa, 0xee, //0x0000dbb0 .quad -1248981238337804412 + 0x39, 0xcf, 0x83, 0xf9, 0x53, 0x2a, 0xba, 0x95, //0x0000dbb8 .quad -7657761676233289927 + 0xb2, 0xa0, 0x97, 0xfa, 0x5c, 0xb4, 0x2a, 0x95, //0x0000dbc0 .quad -7698142301602209614 + 0x84, 0x61, 0xf2, 0x7b, 0x74, 0x5a, 0x94, 0xdd, //0x0000dbc8 .quad -2480258038432112252 + 0xdf, 0x88, 0x3d, 0x39, 0x74, 0x61, 0x75, 0xba, //0x0000dbd0 .quad -5010991858575374113 + 0xe5, 0xf9, 0xee, 0x9a, 0x11, 0x71, 0xf9, 0x94, //0x0000dbd8 .quad -7712008566467528219 + 0x17, 0xeb, 0x8c, 0x47, 0xd1, 0xb9, 0x12, 0xe9, //0x0000dbe0 .quad -1652053804791829737 + 0x5e, 0xb8, 0xaa, 0x01, 0x56, 0xcd, 0x37, 0x7a, //0x0000dbe8 .quad 8806733365625141342 + 0xee, 0x12, 0xb8, 0xcc, 0x22, 0xb4, 0xab, 0x91, //0x0000dbf0 .quad -7950062655635975442 + 0x3b, 0xb3, 0x0a, 0xc1, 0x55, 0xe0, 0x62, 0xac, //0x0000dbf8 .quad -6025006692552756421 + 0xaa, 0x17, 0xe6, 0x7f, 0x2b, 0xa1, 0x16, 0xb6, //0x0000dc00 .quad -5325892301117581398 + 0x0a, 0x60, 0x4d, 0x31, 0x6b, 0x98, 0x7b, 0x57, //0x0000dc08 .quad 6303799689591218186 + 0x94, 0x9d, 0xdf, 0x5f, 0x76, 0x49, 0x9c, 0xe3, //0x0000dc10 .quad -2045679357969588844 + 0x0c, 0xb8, 0xa0, 0xfd, 0x85, 0x7e, 0x5a, 0xed, //0x0000dc18 .quad -1343622424865753076 + 0x7d, 0xc2, 0xeb, 0xfb, 0xe9, 0xad, 0x41, 0x8e, //0x0000dc20 .quad -8196078626372074883 + 0x08, 0x73, 0x84, 0xbe, 0x13, 0x8f, 0x58, 0x14, //0x0000dc28 .quad 1466078993672598280 + 0x1c, 0xb3, 0xe6, 0x7a, 0x64, 0x19, 0xd2, 0xb1, //0x0000dc30 .quad -5633412264537705700 + 0xc9, 0x8f, 0x25, 0xae, 0xd8, 0xb2, 0x6e, 0x59, //0x0000dc38 .quad 6444284760518135753 + 0xe3, 0x5f, 0xa0, 0x99, 0xbd, 0x9f, 0x46, 0xde, //0x0000dc40 .quad -2430079312244744221 + 0xbc, 0xf3, 0xae, 0xd9, 0x8e, 0x5f, 0xca, 0x6f, //0x0000dc48 .quad 8055355950647669692 + 0xee, 0x3b, 0x04, 0x80, 0xd6, 0x23, 0xec, 0x8a, //0x0000dc50 .quad -8436328597794046994 + 0x55, 0x58, 0x0d, 0x48, 0xb9, 0x7b, 0xde, 0x25, //0x0000dc58 .quad 2728754459941099605 + 0xe9, 0x4a, 0x05, 0x20, 0xcc, 0x2c, 0xa7, 0xad, //0x0000dc60 .quad -5933724728815170839 + 0x6b, 0xae, 0x10, 0x9a, 0xa7, 0x1a, 0x56, 0xaf, //0x0000dc68 .quad -5812428961928401301 + 0xa4, 0x9d, 0x06, 0x28, 0xff, 0xf7, 0x10, 0xd9, //0x0000dc70 .quad -2805469892591575644 + 0x05, 0xda, 0x94, 0x80, 0x51, 0xa1, 0x2b, 0x1b, //0x0000dc78 .quad 1957835834444274181 + 0x86, 0x22, 0x04, 0x79, 0xff, 0x9a, 0xaa, 0x87, //0x0000dc80 .quad -8670947710510816634 + 0x43, 0x08, 0x5d, 0xf0, 0xd2, 0x44, 0xfb, 0x90, //0x0000dc88 .quad -7999724640327104445 + 0x28, 0x2b, 0x45, 0x57, 0xbf, 0x41, 0x95, 0xa9, //0x0000dc90 .quad -6226998619711132888 + 0x54, 0x4a, 0x74, 0xac, 0x07, 0x16, 0x3a, 0x35, //0x0000dc98 .quad 3835402254873283156 + 0xf2, 0x75, 0x16, 0x2d, 0x2f, 0x92, 0xfa, 0xd3, //0x0000dca0 .quad -3172062256211528206 + 0xe9, 0x5c, 0x91, 0x97, 0x89, 0x9b, 0x88, 0x42, //0x0000dca8 .quad 4794252818591603945 + 0xb7, 0x09, 0x2e, 0x7c, 0x5d, 0x9b, 0x7c, 0x84, //0x0000dcb0 .quad -8900067937773286985 + 0x12, 0xda, 0xba, 0xfe, 0x35, 0x61, 0x95, 0x69, //0x0000dcb8 .quad 7608094030047140370 + 0x25, 0x8c, 0x39, 0xdb, 0x34, 0xc2, 0x9b, 0xa5, //0x0000dcc0 .quad -6513398903789220827 + 0x96, 0x90, 0x69, 0x7e, 0x83, 0xb9, 0xfa, 0x43, //0x0000dcc8 .quad 4898431519131537558 + 0x2e, 0xef, 0x07, 0x12, 0xc2, 0xb2, 0x02, 0xcf, //0x0000dcd0 .quad -3530062611309138130 + 0xbc, 0xf4, 0x03, 0x5e, 0xe4, 0x67, 0xf9, 0x94, //0x0000dcd8 .quad -7712018656367741764 + 0x7d, 0xf5, 0x44, 0x4b, 0xb9, 0xaf, 0x61, 0x81, //0x0000dce0 .quad -9123818159709293187 + 0xf6, 0x78, 0xc2, 0xba, 0xee, 0xe0, 0x1b, 0x1d, //0x0000dce8 .quad 2097517367411243254 + 0xdc, 0x32, 0x16, 0x9e, 0xa7, 0x1b, 0xba, 0xa1, //0x0000dcf0 .quad -6793086681209228580 + 0x33, 0x17, 0x73, 0x69, 0x2a, 0xd9, 0x62, 0x64, //0x0000dcf8 .quad 7233582727691441971 + 0x93, 0xbf, 0x9b, 0x85, 0x91, 0xa2, 0x28, 0xca, //0x0000dd00 .quad -3879672333084147821 + 0xff, 0xdc, 0xcf, 0x03, 0x75, 0x8f, 0x7b, 0x7d, //0x0000dd08 .quad 9041978409614302463 + 0x78, 0xaf, 0x02, 0xe7, 0x35, 0xcb, 0xb2, 0xfc, //0x0000dd10 .quad -237904397927796872 + 0x3f, 0xd4, 0xc3, 0x44, 0x52, 0x73, 0xda, 0x5c, //0x0000dd18 .quad 6690786993590490175 + 0xab, 0xad, 0x61, 0xb0, 0x01, 0xbf, 0xef, 0x9d, //0x0000dd20 .quad -7066219276345954901 + 0xa8, 0x64, 0xfa, 0x6a, 0x13, 0x88, 0x08, 0x3a, //0x0000dd28 .quad 4181741870994056360 + 0x16, 0x19, 0x7a, 0x1c, 0xc2, 0xae, 0x6b, 0xc5, //0x0000dd30 .quad -4221088077005055722 + 0xd1, 0xfd, 0xb8, 0x45, 0x18, 0xaa, 0x8a, 0x08, //0x0000dd38 .quad 615491320315182545 + 0x5b, 0x9f, 0x98, 0xa3, 0x72, 0x9a, 0xc6, 0xf6, //0x0000dd40 .quad -664674077828931749 + 0x46, 0x3d, 0x27, 0x57, 0x9e, 0x54, 0xad, 0x8a, //0x0000dd48 .quad -8454007886460797626 + 0x99, 0x63, 0x3f, 0xa6, 0x87, 0x20, 0x3c, 0x9a, //0x0000dd50 .quad -7332950326284164199 + 0x4c, 0x86, 0x78, 0xf6, 0xe2, 0x54, 0xac, 0x36, //0x0000dd58 .quad 3939617107816777292 + 0x7f, 0x3c, 0xcf, 0x8f, 0xa9, 0x28, 0xcb, 0xc0, //0x0000dd60 .quad -4554501889427817345 + 0xde, 0xa7, 0x16, 0xb4, 0x1b, 0x6a, 0x57, 0x84, //0x0000dd68 .quad -8910536670511192098 + 0x9f, 0x0b, 0xc3, 0xf3, 0xd3, 0xf2, 0xfd, 0xf0, //0x0000dd70 .quad -1081441343357383777 + 0xd6, 0x51, 0x1c, 0xa1, 0xa2, 0x44, 0x6d, 0x65, //0x0000dd78 .quad 7308573235570561494 + 0x43, 0xe7, 0x59, 0x78, 0xc4, 0xb7, 0x9e, 0x96, //0x0000dd80 .quad -7593429867239446717 + 0x26, 0xb3, 0xb1, 0xa4, 0xe5, 0x4a, 0x64, 0x9f, //0x0000dd88 .quad -6961356773836868826 + 0x14, 0x61, 0x70, 0x96, 0xb5, 0x65, 0x46, 0xbc, //0x0000dd90 .quad -4880101315621920492 + 0xef, 0x1f, 0xde, 0x0d, 0x9f, 0x5d, 0x3d, 0x87, //0x0000dd98 .quad -8701695967296086033 + 0x59, 0x79, 0x0c, 0xfc, 0x22, 0xff, 0x57, 0xeb, //0x0000dda0 .quad -1488440626100012711 + 0xeb, 0xa7, 0x55, 0xd1, 0x06, 0xb5, 0x0c, 0xa9, //0x0000dda8 .quad -6265433940692719637 + 0xd8, 0xcb, 0x87, 0xdd, 0x75, 0xff, 0x16, 0x93, //0x0000ddb0 .quad -7847804418953589800 + 0xf3, 0x88, 0xd5, 0x42, 0x24, 0xf1, 0xa7, 0x09, //0x0000ddb8 .quad 695789805494438131 + 0xce, 0xbe, 0xe9, 0x54, 0x53, 0xbf, 0xdc, 0xb7, //0x0000ddc0 .quad -5198069505264599346 + 0x30, 0xeb, 0x8a, 0x53, 0x6d, 0xed, 0x11, 0x0c, //0x0000ddc8 .quad 869737256868047664 + 0x81, 0x2e, 0x24, 0x2a, 0x28, 0xef, 0xd3, 0xe5, //0x0000ddd0 .quad -1885900863153361279 + 0xfb, 0xa5, 0x6d, 0xa8, 0xc8, 0x68, 0x16, 0x8f, //0x0000ddd8 .quad -8136200465769716229 + 0x10, 0x9d, 0x56, 0x1a, 0x79, 0x75, 0xa4, 0x8f, //0x0000dde0 .quad -8096217067111932656 + 0xbd, 0x87, 0x44, 0x69, 0x7d, 0x01, 0x6e, 0xf9, //0x0000dde8 .quad -473439272678684739 + 0x55, 0x44, 0xec, 0x60, 0xd7, 0x92, 0x8d, 0xb3, //0x0000ddf0 .quad -5508585315462527915 + 0xad, 0xa9, 0x95, 0xc3, 0xdc, 0x81, 0xc9, 0x37, //0x0000ddf8 .quad 4019886927579031981 + 0x6a, 0x55, 0x27, 0x39, 0x8d, 0xf7, 0x70, 0xe0, //0x0000de00 .quad -2274045625900771990 + 0x18, 0x14, 0x7b, 0xf4, 0x53, 0xe2, 0xbb, 0x85, //0x0000de08 .quad -8810199395808373736 + 0x62, 0x95, 0xb8, 0x43, 0xb8, 0x9a, 0x46, 0x8c, //0x0000de10 .quad -8338807543829064350 + 0x8f, 0xec, 0xcc, 0x78, 0x74, 0x6d, 0x95, 0x93, //0x0000de18 .quad -7812217631593927537 + 0xbb, 0xba, 0xa6, 0x54, 0x66, 0x41, 0x58, 0xaf, //0x0000de20 .quad -5811823411358942533 + 0xb3, 0x27, 0x00, 0x97, 0xd1, 0xc8, 0x7a, 0x38, //0x0000de28 .quad 4069786015789754291 + 0x6a, 0x69, 0xd0, 0xe9, 0xbf, 0x51, 0x2e, 0xdb, //0x0000de30 .quad -2653093245771290262 + 0x9f, 0x31, 0xc0, 0xfc, 0x05, 0x7b, 0x99, 0x06, //0x0000de38 .quad 475546501309804959 + 0xe2, 0x41, 0x22, 0xf2, 0x17, 0xf3, 0xfc, 0x88, //0x0000de40 .quad -8575712306248138270 + 0x04, 0x1f, 0xf8, 0xbd, 0xe3, 0xec, 0x1f, 0x44, //0x0000de48 .quad 4908902581746016004 + 0x5a, 0xd2, 0xaa, 0xee, 0xdd, 0x2f, 0x3c, 0xab, //0x0000de50 .quad -6107954364382784934 + 0xc4, 0x26, 0x76, 0xad, 0x1c, 0xe8, 0x27, 0xd5, //0x0000de58 .quad -3087243809672255804 + 0xf1, 0x86, 0x55, 0x6a, 0xd5, 0x3b, 0x0b, 0xd6, //0x0000de60 .quad -3023256937051093263 + 0x75, 0xb0, 0xd3, 0xd8, 0x23, 0xe2, 0x71, 0x8a, //0x0000de68 .quad -8470740780517707659 + 0x56, 0x74, 0x75, 0x62, 0x65, 0x05, 0xc7, 0x85, //0x0000de70 .quad -8807064613298015146 + 0x4a, 0x4e, 0x84, 0x67, 0x56, 0x2d, 0x87, 0xf6, //0x0000de78 .quad -682526969396179382 + 0x6c, 0xd1, 0x12, 0xbb, 0xbe, 0xc6, 0x38, 0xa7, //0x0000de80 .quad -6397144748195131028 + 0xdc, 0x61, 0x65, 0x01, 0xac, 0xf8, 0x28, 0xb4, //0x0000de88 .quad -5464844730172612132 + 0xc7, 0x85, 0xd7, 0x69, 0x6e, 0xf8, 0x06, 0xd1, //0x0000de90 .quad -3384744916816525881 + 0x53, 0xba, 0xbe, 0x01, 0xd7, 0x36, 0x33, 0xe1, //0x0000de98 .quad -2219369894288377261 + 0x9c, 0xb3, 0x26, 0x02, 0x45, 0x5b, 0xa4, 0x82, //0x0000dea0 .quad -9032994600651410532 + 0x74, 0x34, 0x17, 0x61, 0x46, 0x02, 0xc0, 0xec, //0x0000dea8 .quad -1387106183930235788 + 0x84, 0x60, 0xb0, 0x42, 0x16, 0x72, 0x4d, 0xa3, //0x0000deb0 .quad -6679557232386875260 + 0x91, 0x01, 0x5d, 0xf9, 0xd7, 0x02, 0xf0, 0x27, //0x0000deb8 .quad 2877803288514593169 + 0xa5, 0x78, 0x5c, 0xd3, 0x9b, 0xce, 0x20, 0xcc, //0x0000dec0 .quad -3737760522056206171 + 0xf5, 0x41, 0xb4, 0xf7, 0x8d, 0x03, 0xec, 0x31, //0x0000dec8 .quad 3597254110643241461 + 0xce, 0x96, 0x33, 0xc8, 0x42, 0x02, 0x29, 0xff, //0x0000ded0 .quad -60514634142869810 + 0x72, 0x52, 0xa1, 0x75, 0x71, 0x04, 0x67, 0x7e, //0x0000ded8 .quad 9108253656731439730 + 0x41, 0x3e, 0x20, 0xbd, 0x69, 0xa1, 0x79, 0x9f, //0x0000dee0 .quad -6955350673980375487 + 0x87, 0xd3, 0x84, 0xe9, 0xc6, 0x62, 0x00, 0x0f, //0x0000dee8 .quad 1080972517029761927 + 0xd1, 0x4d, 0x68, 0x2c, 0xc4, 0x09, 0x58, 0xc7, //0x0000def0 .quad -4082502324048081455 + 0x69, 0x08, 0xe6, 0xa3, 0x78, 0x7b, 0xc0, 0x52, //0x0000def8 .quad 5962901664714590313 + 0x45, 0x61, 0x82, 0x37, 0x35, 0x0c, 0x2e, 0xf9, //0x0000df00 .quad -491441886632713915 + 0x83, 0x8a, 0xdf, 0xcc, 0x56, 0x9a, 0x70, 0xa7, //0x0000df08 .quad -6381430974388925821 + 0xcb, 0x7c, 0xb1, 0x42, 0xa1, 0xc7, 0xbc, 0x9b, //0x0000df10 .quad -7224680206786528053 + 0x92, 0xb6, 0x0b, 0x40, 0x76, 0x60, 0xa6, 0x88, //0x0000df18 .quad -8600080377420466542 + 0xfe, 0xdb, 0x5d, 0x93, 0x89, 0xf9, 0xab, 0xc2, //0x0000df20 .quad -4419164240055772162 + 0x36, 0xa4, 0x0e, 0xd0, 0x93, 0xf8, 0xcf, 0x6a, //0x0000df28 .quad 7696643601933968438 + 0xfe, 0x52, 0x35, 0xf8, 0xeb, 0xf7, 0x56, 0xf3, //0x0000df30 .quad -912269281642327298 + 0x44, 0x4d, 0x12, 0xc4, 0xb8, 0xf6, 0x83, 0x05, //0x0000df38 .quad 397432465562684740 + 0xde, 0x53, 0x21, 0x7b, 0xf3, 0x5a, 0x16, 0x98, //0x0000df40 .quad -7487697328667536418 + 0x4b, 0x70, 0x8b, 0x7a, 0x33, 0x7a, 0x72, 0xc3, //0x0000df48 .quad -4363290727450709941 + 0xd6, 0xa8, 0xe9, 0x59, 0xb0, 0xf1, 0x1b, 0xbe, //0x0000df50 .quad -4747935642407032618 + 0x5d, 0x4c, 0x2e, 0x59, 0xc0, 0x18, 0x4f, 0x74, //0x0000df58 .quad 8380944645968776285 + 0x0c, 0x13, 0x64, 0x70, 0x1c, 0xee, 0xa2, 0xed, //0x0000df60 .quad -1323233534581402868 + 0x74, 0xdf, 0x79, 0x6f, 0xf0, 0xde, 0x62, 0x11, //0x0000df68 .quad 1252808770606194548 + 0xe7, 0x8b, 0x3e, 0xc6, 0xd1, 0xd4, 0x85, 0x94, //0x0000df70 .quad -7744549986754458649 + 0xa9, 0x2b, 0xac, 0x45, 0x56, 0xcb, 0xdd, 0x8a, //0x0000df78 .quad -8440366555225904215 + 0xe1, 0x2e, 0xce, 0x37, 0x06, 0x4a, 0xa7, 0xb9, //0x0000df80 .quad -5069001465015685407 + 0x93, 0x36, 0x17, 0xd7, 0x2b, 0x3e, 0x95, 0x6d, //0x0000df88 .quad 7896285879677171347 + 0x99, 0xba, 0xc1, 0xc5, 0x87, 0x1c, 0x11, 0xe8, //0x0000df90 .quad -1724565812842218855 + 0x38, 0x04, 0xdd, 0xcc, 0xb6, 0x8d, 0xfa, 0xc8, //0x0000df98 .quad -3964700705685699528 + 0xa0, 0x14, 0x99, 0xdb, 0xd4, 0xb1, 0x0a, 0x91, //0x0000dfa0 .quad -7995382660667468640 + 0xa3, 0x22, 0x0a, 0x40, 0x92, 0x98, 0x9c, 0x1d, //0x0000dfa8 .quad 2133748077373825699 + 0xc8, 0x59, 0x7f, 0x12, 0x4a, 0x5e, 0x4d, 0xb5, //0x0000dfb0 .quad -5382542307406947896 + 0x4c, 0xab, 0x0c, 0xd0, 0xb6, 0xbe, 0x03, 0x25, //0x0000dfb8 .quad 2667185096717282124 + 0x3a, 0x30, 0x1f, 0x97, 0xdc, 0xb5, 0xa0, 0xe2, //0x0000dfc0 .quad -2116491865831296966 + 0x1e, 0xd6, 0x0f, 0x84, 0x64, 0xae, 0x44, 0x2e, //0x0000dfc8 .quad 3333981370896602654 + 0x24, 0x7e, 0x73, 0xde, 0xa9, 0x71, 0xa4, 0x8d, //0x0000dfd0 .quad -8240336443785642460 + 0xd3, 0xe5, 0x89, 0xd2, 0xfe, 0xec, 0xea, 0x5c, //0x0000dfd8 .quad 6695424375237764563 + 0xad, 0x5d, 0x10, 0x56, 0x14, 0x8e, 0x0d, 0xb1, //0x0000dfe0 .quad -5688734536304665171 + 0x48, 0x5f, 0x2c, 0x87, 0x3e, 0xa8, 0x25, 0x74, //0x0000dfe8 .quad 8369280469047205704 + 0x18, 0x75, 0x94, 0x6b, 0x99, 0xf1, 0x50, 0xdd, //0x0000dff0 .quad -2499232151953443560 + 0x1a, 0x77, 0xf7, 0x28, 0x4e, 0x12, 0x2f, 0xd1, //0x0000dff8 .quad -3373457468973156582 + 0x2f, 0xc9, 0x3c, 0xe3, 0xff, 0x96, 0x52, 0x8a, //0x0000e000 .quad -8479549122611984081 + 0x70, 0xaa, 0x9a, 0xd9, 0x70, 0x6b, 0xbd, 0x82, //0x0000e008 .quad -9025939945749304720 + 0x7b, 0xfb, 0x0b, 0xdc, 0xbf, 0x3c, 0xe7, 0xac, //0x0000e010 .quad -5987750384837592197 + 0x0c, 0x55, 0x01, 0x10, 0x4d, 0xc6, 0x6c, 0x63, //0x0000e018 .quad 7164319141522920716 + 0x5a, 0xfa, 0x0e, 0xd3, 0xef, 0x0b, 0x21, 0xd8, //0x0000e020 .quad -2873001962619602342 + 0x4f, 0xaa, 0x01, 0x54, 0xe0, 0xf7, 0x47, 0x3c, //0x0000e028 .quad 4343712908476262991 + 0x78, 0x5c, 0xe9, 0xe3, 0x75, 0xa7, 0x14, 0x87, //0x0000e030 .quad -8713155254278333320 + 0x72, 0x0a, 0x81, 0x34, 0xec, 0xfa, 0xac, 0x65, //0x0000e038 .quad 7326506586225052274 + 0x96, 0xb3, 0xe3, 0x5c, 0x53, 0xd1, 0xd9, 0xa8, //0x0000e040 .quad -6279758049420528746 + 0x0e, 0x4d, 0xa1, 0x41, 0xa7, 0x39, 0x18, 0x7f, //0x0000e048 .quad 9158133232781315342 + 0x7c, 0xa0, 0x1c, 0x34, 0xa8, 0x45, 0x10, 0xd3, //0x0000e050 .quad -3238011543348273028 + 0x51, 0xa0, 0x09, 0x12, 0x11, 0x48, 0xde, 0x1e, //0x0000e058 .quad 2224294504121868369 + 0x4d, 0xe4, 0x91, 0x20, 0x89, 0x2b, 0xea, 0x83, //0x0000e060 .quad -8941286242233752499 + 0x33, 0x04, 0x46, 0xab, 0x0a, 0xed, 0x4a, 0x93, //0x0000e068 .quad -7833187971778608077 + 0x60, 0x5d, 0xb6, 0x68, 0x6b, 0xb6, 0xe4, 0xa4, //0x0000e070 .quad -6564921784364802720 + 0x40, 0x85, 0x17, 0x56, 0x4d, 0xa8, 0x1d, 0xf8, //0x0000e078 .quad -568112927868484288 + 0xb9, 0xf4, 0xe3, 0x42, 0x06, 0xe4, 0x1d, 0xce, //0x0000e080 .quad -3594466212028615495 + 0x8f, 0x66, 0x9d, 0xab, 0x60, 0x12, 0x25, 0x36, //0x0000e088 .quad 3901544858591782543 + 0xf3, 0x78, 0xce, 0xe9, 0x83, 0xae, 0xd2, 0x80, //0x0000e090 .quad -9164070410158966541 + 0x1a, 0x60, 0x42, 0x6b, 0x7c, 0x2b, 0xd7, 0xc1, //0x0000e098 .quad -4479063491021217766 + 0x30, 0x17, 0x42, 0xe4, 0x24, 0x5a, 0x07, 0xa1, //0x0000e0a0 .quad -6843401994271320272 + 0x20, 0xf8, 0x12, 0x86, 0x5b, 0xf6, 0x4c, 0xb2, //0x0000e0a8 .quad -5598829363776522208 + 0xfc, 0x9c, 0x52, 0x1d, 0xae, 0x30, 0x49, 0xc9, //0x0000e0b0 .quad -3942566474411762436 + 0x28, 0xb6, 0x97, 0x67, 0xf2, 0x33, 0xe0, 0xde, //0x0000e0b8 .quad -2386850686293264856 + 0x3c, 0x44, 0xa7, 0xa4, 0xd9, 0x7c, 0x9b, 0xfb, //0x0000e0c0 .quad -316522074587315140 + 0xb2, 0xa3, 0x7d, 0x01, 0xef, 0x40, 0x98, 0x16, //0x0000e0c8 .quad 1628122660560806834 + 0xa5, 0x8a, 0xe8, 0x06, 0x08, 0x2e, 0x41, 0x9d, //0x0000e0d0 .quad -7115355324258153819 + 0x4f, 0x86, 0xee, 0x60, 0x95, 0x28, 0x1f, 0x8e, //0x0000e0d8 .quad -8205795374004271537 + 0x4e, 0xad, 0xa2, 0x08, 0x8a, 0x79, 0x91, 0xc4, //0x0000e0e0 .quad -4282508136895304370 + 0xe3, 0x27, 0x2a, 0xb9, 0xba, 0xf2, 0xa6, 0xf1, //0x0000e0e8 .quad -1033872180650563613 + 0xa2, 0x58, 0xcb, 0x8a, 0xec, 0xd7, 0xb5, 0xf5, //0x0000e0f0 .quad -741449152691742558 + 0xdc, 0xb1, 0x74, 0x67, 0x69, 0xaf, 0x10, 0xae, //0x0000e0f8 .quad -5904026244240592420 + 0x65, 0x17, 0xbf, 0xd6, 0xf3, 0xa6, 0x91, 0x99, //0x0000e100 .quad -7380934748073420955 + 0x2a, 0xef, 0xa8, 0xe0, 0xa1, 0x6d, 0xca, 0xac, //0x0000e108 .quad -5995859411864064214 + 0x3f, 0xdd, 0x6e, 0xcc, 0xb0, 0x10, 0xf6, 0xbf, //0x0000e110 .quad -4614482416664388289 + 0xf4, 0x2a, 0xd3, 0x58, 0x0a, 0x09, 0xfd, 0x17, //0x0000e118 .quad 1728547772024695540 + 0x8e, 0x94, 0x8a, 0xff, 0xdc, 0x94, 0xf3, 0xef, //0x0000e120 .quad -1156417002403097458 + 0xb1, 0xf5, 0x07, 0xef, 0x4c, 0x4b, 0xfc, 0xdd, //0x0000e128 .quad -2451001303396518479 + 0xd9, 0x9c, 0xb6, 0x1f, 0x0a, 0x3d, 0xf8, 0x95, //0x0000e130 .quad -7640289654143017767 + 0x8f, 0xf9, 0x64, 0x15, 0x10, 0xaf, 0xbd, 0x4a, //0x0000e138 .quad 5385653213018257807 + 0x0f, 0x44, 0xa4, 0xa7, 0x4c, 0x4c, 0x76, 0xbb, //0x0000e140 .quad -4938676049251384305 + 0xf2, 0x37, 0xbe, 0x1a, 0xd4, 0x1a, 0x6d, 0x9d, //0x0000e148 .quad -7102991539009341454 + 0x13, 0x55, 0x8d, 0xd1, 0x5f, 0xdf, 0x53, 0xea, //0x0000e150 .quad -1561659043136842477 + 0xee, 0xc5, 0x6d, 0x21, 0x89, 0x61, 0xc8, 0x84, //0x0000e158 .quad -8878739423761676818 + 0x2c, 0x55, 0xf8, 0xe2, 0x9b, 0x6b, 0x74, 0x92, //0x0000e160 .quad -7893565929601608404 + 0xb5, 0x9b, 0xe4, 0xb4, 0xf5, 0x3c, 0xfd, 0x32, //0x0000e168 .quad 3674159897003727797 + 0x77, 0x6a, 0xb6, 0xdb, 0x82, 0x86, 0x11, 0xb7, //0x0000e170 .quad -5255271393574622601 + 0xa2, 0xc2, 0x1d, 0x22, 0x33, 0x8c, 0xbc, 0x3f, //0x0000e178 .quad 4592699871254659746 + 0x15, 0x05, 0xa4, 0x92, 0x23, 0xe8, 0xd5, 0xe4, //0x0000e180 .quad -1957403223540890347 + 0x4b, 0x33, 0xa5, 0xea, 0x3f, 0xaf, 0xab, 0x0f, //0x0000e188 .quad 1129188820640936779 + 0x2d, 0x83, 0xa6, 0x3b, 0x16, 0xb1, 0x05, 0x8f, //0x0000e190 .quad -8140906042354138323 + 0x0f, 0x40, 0xa7, 0xf2, 0x87, 0x4d, 0xcb, 0x29, //0x0000e198 .quad 3011586022114279439 + 0xf8, 0x23, 0x90, 0xca, 0x5b, 0x1d, 0xc7, 0xb2, //0x0000e1a0 .quad -5564446534515285000 + 0x13, 0x10, 0x51, 0xef, 0xe9, 0x20, 0x3e, 0x74, //0x0000e1a8 .quad 8376168546070237203 + 0xf6, 0x2c, 0x34, 0xbd, 0xb2, 0xe4, 0x78, 0xdf, //0x0000e1b0 .quad -2343872149716718346 + 0x17, 0x54, 0x25, 0x6b, 0x24, 0xa9, 0x4d, 0x91, //0x0000e1b8 .quad -7976533391121755113 + 0x1a, 0x9c, 0x40, 0xb6, 0xef, 0x8e, 0xab, 0x8b, //0x0000e1c0 .quad -8382449121214030822 + 0x8f, 0x54, 0xf7, 0xc2, 0xb6, 0x89, 0xd0, 0x1a, //0x0000e1c8 .quad 1932195658189984911 + 0x20, 0xc3, 0xd0, 0xa3, 0xab, 0x72, 0x96, 0xae, //0x0000e1d0 .quad -5866375383090150624 + 0xb2, 0x29, 0xb5, 0x73, 0x24, 0xac, 0x84, 0xa1, //0x0000e1d8 .quad -6808127464117294670 + 0xe8, 0xf3, 0xc4, 0x8c, 0x56, 0x0f, 0x3c, 0xda, //0x0000e1e0 .quad -2721283210435300376 + 0x1f, 0x74, 0xa2, 0x90, 0x2d, 0xd7, 0xe5, 0xc9, //0x0000e1e8 .quad -3898473311719230433 + 0x71, 0x18, 0xfb, 0x17, 0x96, 0x89, 0x65, 0x88, //0x0000e1f0 .quad -8618331034163144591 + 0x93, 0x88, 0x65, 0x7a, 0x7c, 0xa6, 0x2f, 0x7e, //0x0000e1f8 .quad 9092669226243950739 + 0x8d, 0xde, 0xf9, 0x9d, 0xfb, 0xeb, 0x7e, 0xaa, //0x0000e200 .quad -6161227774276542835 + 0xb8, 0xea, 0xfe, 0x98, 0x1b, 0x90, 0xbb, 0xdd, //0x0000e208 .quad -2469221522477225288 + 0x31, 0x56, 0x78, 0x85, 0xfa, 0xa6, 0x1e, 0xd5, //0x0000e210 .quad -3089848699418290639 + 0x66, 0xa5, 0x3e, 0x7f, 0x22, 0x74, 0x2a, 0x55, //0x0000e218 .quad 6136845133758244198 + 0xde, 0x35, 0x6b, 0x93, 0x5c, 0x28, 0x33, 0x85, //0x0000e220 .quad -8848684464777513506 + 0x60, 0x27, 0x87, 0x8f, 0x95, 0x88, 0x3a, 0xd5, //0x0000e228 .quad -3082000819042179232 + 0x56, 0x03, 0x46, 0xb8, 0x73, 0xf2, 0x7f, 0xa6, //0x0000e230 .quad -6449169562544503978 + 0x38, 0xf1, 0x68, 0xf3, 0xba, 0x2a, 0x89, 0x8a, //0x0000e238 .quad -8464187042230111944 + 0x2c, 0x84, 0x57, 0xa6, 0x10, 0xef, 0x1f, 0xd0, //0x0000e240 .quad -3449775934753242068 + 0x86, 0x2d, 0x43, 0xb0, 0x69, 0x75, 0x2b, 0x2d, //0x0000e248 .quad 3254824252494523782 + 0x9b, 0xb2, 0xf6, 0x67, 0x6a, 0xf5, 0x13, 0x82, //0x0000e250 .quad -9073638986861858149 + 0x74, 0xfc, 0x29, 0x0e, 0x62, 0x29, 0x3b, 0x9c, //0x0000e258 .quad -7189106879045698444 + 0x42, 0x5f, 0xf4, 0x01, 0xc5, 0xf2, 0x98, 0xa2, //0x0000e260 .quad -6730362715149934782 + 0x90, 0x7b, 0xb4, 0x91, 0xba, 0xf3, 0x49, 0x83, //0x0000e268 .quad -8986383598807123056 + 0x13, 0x77, 0x71, 0x42, 0x76, 0x2f, 0x3f, 0xcb, //0x0000e270 .quad -3801267375510030573 + 0x74, 0x9a, 0x21, 0x36, 0xa9, 0x70, 0x1c, 0x24, //0x0000e278 .quad 2602078556773259892 + 0xd7, 0xd4, 0x0d, 0xd3, 0x53, 0xfb, 0x0e, 0xfe, //0x0000e280 .quad -139898200960150313 + 0x11, 0x01, 0xaa, 0x83, 0xd3, 0x8c, 0x23, 0xed, //0x0000e288 .quad -1359087822460813039 + 0x06, 0xa5, 0xe8, 0x63, 0x14, 0x5d, 0xc9, 0x9e, //0x0000e290 .quad -7004965403241175802 + 0xab, 0x40, 0x4a, 0x32, 0x04, 0x38, 0x36, 0xf4, //0x0000e298 .quad -849429889038008149 + 0x48, 0xce, 0xe2, 0x7c, 0x59, 0xb4, 0x7b, 0xc6, //0x0000e2a0 .quad -4144520735624081848 + 0xd6, 0xd0, 0xdc, 0x3e, 0x05, 0xc6, 0x43, 0xb1, //0x0000e2a8 .quad -5673473379724898090 + 0xda, 0x81, 0x1b, 0xdc, 0x6f, 0xa1, 0x1a, 0xf8, //0x0000e2b0 .quad -568964901102714406 + 0x0b, 0x05, 0x94, 0x8e, 0x86, 0xb7, 0x94, 0xdd, //0x0000e2b8 .quad -2480155706228734709 + 0x28, 0x31, 0x91, 0xe9, 0xe5, 0xa4, 0x10, 0x9b, //0x0000e2c0 .quad -7273132090830278360 + 0x27, 0x83, 0x1c, 0x19, 0xb4, 0xf2, 0x7c, 0xca, //0x0000e2c8 .quad -3855940325606653145 + 0x72, 0x7d, 0xf5, 0x63, 0x1f, 0xce, 0xd4, 0xc1, //0x0000e2d0 .quad -4479729095110460046 + 0xf1, 0xa3, 0x63, 0x1f, 0x61, 0x2f, 0x1c, 0xfd, //0x0000e2d8 .quad -208239388580928527 + 0xcf, 0xdc, 0xf2, 0x3c, 0xa7, 0x01, 0x4a, 0xf2, //0x0000e2e0 .quad -987975350460687153 + 0xed, 0x8c, 0x3c, 0x67, 0x39, 0x3b, 0x63, 0xbc, //0x0000e2e8 .quad -4871985254153548563 + 0x01, 0xca, 0x17, 0x86, 0x08, 0x41, 0x6e, 0x97, //0x0000e2f0 .quad -7535013621679011327 + 0x14, 0xd8, 0x85, 0xe0, 0x03, 0x05, 0xbe, 0xd5, //0x0000e2f8 .quad -3044990783845967852 + 0x82, 0xbc, 0x9d, 0xa7, 0x4a, 0xd1, 0x49, 0xbd, //0x0000e300 .quad -4807081008671376254 + 0x19, 0x4e, 0xa7, 0xd8, 0x44, 0x86, 0x2d, 0x4b, //0x0000e308 .quad 5417133557047315993 + 0xa2, 0x2b, 0x85, 0x51, 0x9d, 0x45, 0x9c, 0xec, //0x0000e310 .quad -1397165242411832414 + 0x9f, 0x21, 0xd1, 0x0e, 0xd6, 0xe7, 0xf8, 0xdd, //0x0000e318 .quad -2451955090545630817 + 0x45, 0x3b, 0xf3, 0x52, 0x82, 0xab, 0xe1, 0x93, //0x0000e320 .quad -7790757304148477115 + 0x04, 0xb5, 0x42, 0xc9, 0xe5, 0x90, 0xbb, 0xca, //0x0000e328 .quad -3838314940804713212 + 0x17, 0x0a, 0xb0, 0xe7, 0x62, 0x16, 0xda, 0xb8, //0x0000e330 .quad -5126760611758208489 + 0x44, 0x62, 0x93, 0x3b, 0x1f, 0x75, 0x6a, 0x3d, //0x0000e338 .quad 4425478360848884292 + 0x9d, 0x0c, 0x9c, 0xa1, 0xfb, 0x9b, 0x10, 0xe7, //0x0000e340 .quad -1796764746270372707 + 0xd5, 0x3a, 0x78, 0x0a, 0x67, 0x12, 0xc5, 0x0c, //0x0000e348 .quad 920161932633717461 + 0xe2, 0x87, 0x01, 0x45, 0x7d, 0x61, 0x6a, 0x90, //0x0000e350 .quad -8040506994060064798 + 0xc6, 0x24, 0x8b, 0x66, 0x80, 0x2b, 0xfb, 0x27, //0x0000e358 .quad 2880944217109767366 + 0xda, 0xe9, 0x41, 0x96, 0xdc, 0xf9, 0x84, 0xb4, //0x0000e360 .quad -5438947724147693094 + 0xf7, 0xed, 0x2d, 0x80, 0x60, 0xf6, 0xf9, 0xb1, //0x0000e368 .quad -5622191765467566601 + 0x51, 0x64, 0xd2, 0xbb, 0x53, 0x38, 0xa6, 0xe1, //0x0000e370 .quad -2186998636757228463 + 0x74, 0x69, 0x39, 0xa0, 0xf8, 0x73, 0x78, 0x5e, //0x0000e378 .quad 6807318348447705460 + 0xb2, 0x7e, 0x63, 0x55, 0x34, 0xe3, 0x07, 0x8d, //0x0000e380 .quad -8284403175614349646 + 0xe9, 0xe1, 0x23, 0x64, 0x7b, 0x48, 0x0b, 0xdb, //0x0000e388 .quad -2662955059861265943 + 0x5f, 0x5e, 0xbc, 0x6a, 0x01, 0xdc, 0x49, 0xb0, //0x0000e390 .quad -5743817951090549153 + 0x63, 0xda, 0x2c, 0x3d, 0x9a, 0x1a, 0xce, 0x91, //0x0000e398 .quad -7940379843253970333 + 0xf7, 0x75, 0x6b, 0xc5, 0x01, 0x53, 0x5c, 0xdc, //0x0000e3a0 .quad -2568086420435798537 + 0xfc, 0x10, 0x78, 0xcc, 0x40, 0xa1, 0x41, 0x76, //0x0000e3a8 .quad 8521269269642088700 + 0xba, 0x29, 0x63, 0x1b, 0xe1, 0xb3, 0xb9, 0x89, //0x0000e3b0 .quad -8522583040413455942 + 0x9e, 0x0a, 0xcb, 0x7f, 0xc8, 0x04, 0xe9, 0xa9, //0x0000e3b8 .quad -6203421752542164322 + 0x29, 0xf4, 0x3b, 0x62, 0xd9, 0x20, 0x28, 0xac, //0x0000e3c0 .quad -6041542782089432023 + 0x45, 0xcd, 0xbd, 0x9f, 0xfa, 0x45, 0x63, 0x54, //0x0000e3c8 .quad 6080780864604458309 + 0x33, 0xf1, 0xca, 0xba, 0x0f, 0x29, 0x32, 0xd7, //0x0000e3d0 .quad -2940242459184402125 + 0x96, 0x40, 0xad, 0x47, 0x79, 0x17, 0x7c, 0xa9, //0x0000e3d8 .quad -6234081974526590826 + 0xc0, 0xd6, 0xbe, 0xd4, 0xa9, 0x59, 0x7f, 0x86, //0x0000e3e0 .quad -8755180564631333184 + 0x5e, 0x48, 0xcc, 0xcc, 0xab, 0x8e, 0xed, 0x49, //0x0000e3e8 .quad 5327070802775656542 + 0x70, 0x8c, 0xee, 0x49, 0x14, 0x30, 0x1f, 0xa8, //0x0000e3f0 .quad -6332289687361778576 + 0x75, 0x5a, 0xff, 0xbf, 0x56, 0xf2, 0x68, 0x5c, //0x0000e3f8 .quad 6658838503469570677 + 0x8c, 0x2f, 0x6a, 0x5c, 0x19, 0xfc, 0x26, 0xd2, //0x0000e400 .quad -3303676090774835316 + 0x12, 0x31, 0xff, 0x6f, 0xec, 0x2e, 0x83, 0x73, //0x0000e408 .quad 8323548129336963346 + 0xb7, 0x5d, 0xc2, 0xd9, 0x8f, 0x5d, 0x58, 0x83, //0x0000e410 .quad -8982326584375353929 + 0xac, 0x7e, 0xff, 0xc5, 0x53, 0xfd, 0x31, 0xc8, //0x0000e418 .quad -4021154456019173716 + 0x25, 0xf5, 0x32, 0xd0, 0xf3, 0x74, 0x2e, 0xa4, //0x0000e420 .quad -6616222212041804507 + 0x56, 0x5e, 0x7f, 0xb7, 0xa8, 0x7c, 0x3e, 0xba, //0x0000e428 .quad -5026443070023967146 + 0x6f, 0xb2, 0x3f, 0xc4, 0x30, 0x12, 0x3a, 0xcd, //0x0000e430 .quad -3658591746624867729 + 0xec, 0x35, 0x5f, 0xe5, 0xd2, 0x1b, 0xce, 0x28, //0x0000e438 .quad 2940318199324816876 + 0x85, 0xcf, 0xa7, 0x7a, 0x5e, 0x4b, 0x44, 0x80, //0x0000e440 .quad -9204148869281624187 + 0xb4, 0x81, 0x5b, 0xcf, 0x63, 0xd1, 0x80, 0x79, //0x0000e448 .quad 8755227902219092404 + 0x66, 0xc3, 0x51, 0x19, 0x36, 0x5e, 0x55, 0xa0, //0x0000e450 .quad -6893500068174642330 + 0x20, 0x62, 0x32, 0xc3, 0xbc, 0x05, 0xe1, 0xd7, //0x0000e458 .quad -2891023177508298208 + 0x40, 0x34, 0xa6, 0x9f, 0xc3, 0xb5, 0x6a, 0xc8, //0x0000e460 .quad -4005189066790915008 + 0xa8, 0xfa, 0xfe, 0xf3, 0x2b, 0x47, 0xd9, 0x8d, //0x0000e468 .quad -8225464990312760664 + 0x50, 0xc1, 0x8f, 0x87, 0x34, 0x63, 0x85, 0xfa, //0x0000e470 .quad -394800315061255856 + 0x52, 0xb9, 0xfe, 0xf0, 0xf6, 0x98, 0x4f, 0xb1, //0x0000e478 .quad -5670145219463562926 + 0xd2, 0xd8, 0xb9, 0xd4, 0x00, 0x5e, 0x93, 0x9c, //0x0000e480 .quad -7164279224554366766 + 0xd4, 0x33, 0x9f, 0x56, 0x9a, 0xbf, 0xd1, 0x6e, //0x0000e488 .quad 7985374283903742932 + 0x07, 0x4f, 0xe8, 0x09, 0x81, 0x35, 0xb8, 0xc3, //0x0000e490 .quad -4343663012265570553 + 0xc9, 0x00, 0x47, 0xec, 0x80, 0x2f, 0x86, 0x0a, //0x0000e498 .quad 758345818024902857 + 0xc8, 0x62, 0x62, 0x4c, 0xe1, 0x42, 0xa6, 0xf4, //0x0000e4a0 .quad -817892746904575288 + 0xfb, 0xc0, 0x58, 0x27, 0x61, 0xbb, 0x27, 0xcd, //0x0000e4a8 .quad -3663753745896259333 + 0xbd, 0x7d, 0xbd, 0xcf, 0xcc, 0xe9, 0xe7, 0x98, //0x0000e4b0 .quad -7428711994456441411 + 0x9d, 0x78, 0x97, 0xb8, 0x1c, 0xd5, 0x38, 0x80, //0x0000e4b8 .quad -9207375118826243939 + 0x2c, 0xdd, 0xac, 0x03, 0x40, 0xe4, 0x21, 0xbf, //0x0000e4c0 .quad -4674203974643163860 + 0xc4, 0x56, 0xbd, 0xe6, 0x63, 0x0a, 0x47, 0xe0, //0x0000e4c8 .quad -2285846861678029116 + 0x78, 0x14, 0x98, 0x04, 0x50, 0x5d, 0xea, 0xee, //0x0000e4d0 .quad -1231068949876566920 + 0x75, 0xac, 0x6c, 0xe0, 0xfc, 0xcc, 0x58, 0x18, //0x0000e4d8 .quad 1754377441329851509 + 0xcb, 0x0c, 0xdf, 0x02, 0x52, 0x7a, 0x52, 0x95, //0x0000e4e0 .quad -7686947121313936181 + 0xc9, 0xeb, 0x43, 0x0c, 0x1e, 0x80, 0x37, 0x0f, //0x0000e4e8 .quad 1096485900831157193 + 0xfd, 0xcf, 0x96, 0x83, 0xe6, 0x18, 0xa7, 0xba, //0x0000e4f0 .quad -4996997883215032323 + 0xbb, 0xe6, 0x54, 0x8f, 0x25, 0x60, 0x05, 0xd3, //0x0000e4f8 .quad -3241078642388441413 + 0xfd, 0x83, 0x7c, 0x24, 0x20, 0xdf, 0x50, 0xe9, //0x0000e500 .quad -1634561335591402499 + 0x6a, 0x20, 0x2a, 0xf3, 0x2e, 0xb8, 0xc6, 0x47, //0x0000e508 .quad 5172023733869224042 + 0x7e, 0xd2, 0xcd, 0x16, 0x74, 0x8b, 0xd2, 0x91, //0x0000e510 .quad -7939129862385708418 + 0x42, 0x54, 0xfa, 0x57, 0x1d, 0x33, 0xdc, 0x4c, //0x0000e518 .quad 5538357842881958978 + 0x1d, 0x47, 0x81, 0x1c, 0x51, 0x2e, 0x47, 0xb6, //0x0000e520 .quad -5312226309554747619 + 0x53, 0xe9, 0xf8, 0xad, 0xe4, 0x3f, 0x13, 0xe0, //0x0000e528 .quad -2300424733252327085 + 0xe5, 0x98, 0xa1, 0x63, 0xe5, 0xf9, 0xd8, 0xe3, //0x0000e530 .quad -2028596868516046619 + 0xa7, 0x23, 0x77, 0xd9, 0xdd, 0x0f, 0x18, 0x58, //0x0000e538 .quad 6347841120289366951 + 0x8f, 0xff, 0x44, 0x5e, 0x2f, 0x9c, 0x67, 0x8e, //0x0000e540 .quad -8185402070463610993 + 0x49, 0x76, 0xea, 0xa7, 0xea, 0x09, 0x0f, 0x57, //0x0000e548 .quad 6273243709394548297 + 0x73, 0x3f, 0xd6, 0x35, 0x3b, 0x83, 0x01, 0xb2, //0x0000e550 .quad -5620066569652125837 + 0xdb, 0x13, 0xe5, 0x51, 0x65, 0xcc, 0xd2, 0x2c, //0x0000e558 .quad 3229868618315797467 + 0x4f, 0xcf, 0x4b, 0x03, 0x0a, 0xe4, 0x81, 0xde, //0x0000e560 .quad -2413397193637769393 + 0xd2, 0x58, 0x5e, 0xa6, 0x7e, 0x7f, 0x07, 0xf8, //0x0000e568 .quad -574350245532641070 + 0x91, 0x61, 0x0f, 0x42, 0x86, 0x2e, 0x11, 0x8b, //0x0000e570 .quad -8425902273664687727 + 0x83, 0xf7, 0xfa, 0x27, 0xaf, 0xaf, 0x04, 0xfb, //0x0000e578 .quad -358968903457900669 + 0xf6, 0x39, 0x93, 0xd2, 0x27, 0x7a, 0xd5, 0xad, //0x0000e580 .quad -5920691823653471754 + 0x64, 0xb5, 0xf9, 0xf1, 0x9a, 0xdb, 0xc5, 0x79, //0x0000e588 .quad 8774660907532399972 + 0x74, 0x08, 0x38, 0xc7, 0xb1, 0xd8, 0x4a, 0xd9, //0x0000e590 .quad -2789178761139451788 + 0xbd, 0x22, 0x78, 0xae, 0x81, 0x52, 0x37, 0x18, //0x0000e598 .quad 1744954097560724157 + 0x48, 0x05, 0x83, 0x1c, 0x6f, 0xc7, 0xce, 0x87, //0x0000e5a0 .quad -8660765753353239224 + 0xb6, 0x15, 0x0b, 0x0d, 0x91, 0x93, 0x22, 0x8f, //0x0000e5a8 .quad -8132775725879323210 + 0x9a, 0xc6, 0xa3, 0xe3, 0x4a, 0x79, 0xc2, 0xa9, //0x0000e5b0 .quad -6214271173264161126 + 0x23, 0xdb, 0x4d, 0x50, 0x75, 0x38, 0xeb, 0xb2, //0x0000e5b8 .quad -5554283638921766109 + 0x41, 0xb8, 0x8c, 0x9c, 0x9d, 0x17, 0x33, 0xd4, //0x0000e5c0 .quad -3156152948152813503 + 0xec, 0x51, 0x61, 0xa4, 0x92, 0x06, 0xa6, 0x5f, //0x0000e5c8 .quad 6892203506629956076 + 0x28, 0xf3, 0xd7, 0x81, 0xc2, 0xee, 0x9f, 0x84, //0x0000e5d0 .quad -8890124620236590296 + 0x34, 0xd3, 0xbc, 0xa6, 0x1b, 0xc4, 0xc7, 0xdb, //0x0000e5d8 .quad -2609901835997359308 + 0xf3, 0xef, 0x4d, 0x22, 0x73, 0xea, 0xc7, 0xa5, //0x0000e5e0 .quad -6500969756868349965 + 0x01, 0x08, 0x6c, 0x90, 0x22, 0xb5, 0xb9, 0x12, //0x0000e5e8 .quad 1349308723430688769 + 0xef, 0x6b, 0xe1, 0xea, 0x0f, 0xe5, 0x39, 0xcf, //0x0000e5f0 .quad -3514526177658049553 + 0x01, 0x0a, 0x87, 0x34, 0x6b, 0x22, 0x68, 0xd7, //0x0000e5f8 .quad -2925050114139026943 + 0x75, 0xe3, 0xcc, 0xf2, 0x29, 0x2f, 0x84, 0x81, //0x0000e600 .quad -9114107888677362827 + 0x41, 0x66, 0xd4, 0x00, 0x83, 0x15, 0xa1, 0xe6, //0x0000e608 .quad -1828156321336891839 + 0x53, 0x1c, 0x80, 0x6f, 0xf4, 0x3a, 0xe5, 0xa1, //0x0000e610 .quad -6780948842419315629 + 0xd1, 0x7f, 0x09, 0xc1, 0xe3, 0x5a, 0x49, 0x60, //0x0000e618 .quad 6938176635183661009 + 0x68, 0x23, 0x60, 0x8b, 0xb1, 0x89, 0x5e, 0xca, //0x0000e620 .quad -3864500034596756632 + 0xc5, 0xdf, 0x4b, 0xb1, 0x9c, 0xb1, 0x5b, 0x38, //0x0000e628 .quad 4061034775552188357 + 0x42, 0x2c, 0x38, 0xee, 0x1d, 0x2c, 0xf6, 0xfc, //0x0000e630 .quad -218939024818557886 + 0xb6, 0xd7, 0x9e, 0xdd, 0x03, 0x9e, 0x72, 0x46, //0x0000e638 .quad 5076293469440235446 + 0xa9, 0x1b, 0xe3, 0xb4, 0x92, 0xdb, 0x19, 0x9e, //0x0000e640 .quad -7054365918152680535 + 0xd2, 0x46, 0x83, 0x6a, 0xc2, 0xa2, 0x07, 0x6c, //0x0000e648 .quad 7784369436827535058 + //0x0000e650 .p2align 4, 0x00 + //0x0000e650 _VecShiftShuffles + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, //0x0000e650 QUAD $0x0706050403020100; QUAD $0x0f0e0d0c0b0a0908 // .ascii 16, '\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f' + 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, //0x0000e660 QUAD $0x0807060504030201; QUAD $0xff0f0e0d0c0b0a09 // .ascii 16, '\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff' + 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, //0x0000e670 QUAD $0x0908070605040302; QUAD $0xffff0f0e0d0c0b0a // .ascii 16, '\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff' + 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, //0x0000e680 QUAD $0x0a09080706050403; QUAD $0xffffff0f0e0d0c0b // .ascii 16, '\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff' + 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, //0x0000e690 QUAD $0x0b0a090807060504; QUAD $0xffffffff0f0e0d0c // .ascii 16, '\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff' + 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, //0x0000e6a0 QUAD $0x0c0b0a0908070605; QUAD $0xffffffffff0f0e0d // .ascii 16, '\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff' + 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x0000e6b0 QUAD $0x0d0c0b0a09080706; QUAD $0xffffffffffff0f0e // .ascii 16, '\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff\xff' + 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x0000e6c0 QUAD $0x0e0d0c0b0a090807; QUAD $0xffffffffffffff0f // .ascii 16, '\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff\xff\xff' + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x0000e6d0 QUAD $0x0f0e0d0c0b0a0908; QUAD $0xffffffffffffffff // .ascii 16, '\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff\xff\xff\xff' + //0x0000e6e0 .p2align 4, 0x00 + //0x0000e6e0 __SingleQuoteTab + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e6e0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x30, 0x00, 0x00, //0x0000e6e8 QUAD $0x000030303030755c // .asciz 8, '\\u0000\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e6f0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x31, 0x00, 0x00, //0x0000e6f8 QUAD $0x000031303030755c // .asciz 8, '\\u0001\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e700 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x32, 0x00, 0x00, //0x0000e708 QUAD $0x000032303030755c // .asciz 8, '\\u0002\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e710 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x33, 0x00, 0x00, //0x0000e718 QUAD $0x000033303030755c // .asciz 8, '\\u0003\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e720 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x34, 0x00, 0x00, //0x0000e728 QUAD $0x000034303030755c // .asciz 8, '\\u0004\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e730 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x35, 0x00, 0x00, //0x0000e738 QUAD $0x000035303030755c // .asciz 8, '\\u0005\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e740 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x36, 0x00, 0x00, //0x0000e748 QUAD $0x000036303030755c // .asciz 8, '\\u0006\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e750 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x37, 0x00, 0x00, //0x0000e758 QUAD $0x000037303030755c // .asciz 8, '\\u0007\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e760 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x38, 0x00, 0x00, //0x0000e768 QUAD $0x000038303030755c // .asciz 8, '\\u0008\x00\x00' + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e770 .quad 2 + 0x5c, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e778 QUAD $0x000000000000745c // .asciz 8, '\\t\x00\x00\x00\x00\x00\x00' + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e780 .quad 2 + 0x5c, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e788 QUAD $0x0000000000006e5c // .asciz 8, '\\n\x00\x00\x00\x00\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e790 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x62, 0x00, 0x00, //0x0000e798 QUAD $0x000062303030755c // .asciz 8, '\\u000b\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e7a0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x63, 0x00, 0x00, //0x0000e7a8 QUAD $0x000063303030755c // .asciz 8, '\\u000c\x00\x00' + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e7b0 .quad 2 + 0x5c, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e7b8 QUAD $0x000000000000725c // .asciz 8, '\\r\x00\x00\x00\x00\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e7c0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x65, 0x00, 0x00, //0x0000e7c8 QUAD $0x000065303030755c // .asciz 8, '\\u000e\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e7d0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x66, 0x00, 0x00, //0x0000e7d8 QUAD $0x000066303030755c // .asciz 8, '\\u000f\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e7e0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x30, 0x00, 0x00, //0x0000e7e8 QUAD $0x000030313030755c // .asciz 8, '\\u0010\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e7f0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x31, 0x00, 0x00, //0x0000e7f8 QUAD $0x000031313030755c // .asciz 8, '\\u0011\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e800 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x32, 0x00, 0x00, //0x0000e808 QUAD $0x000032313030755c // .asciz 8, '\\u0012\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e810 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x33, 0x00, 0x00, //0x0000e818 QUAD $0x000033313030755c // .asciz 8, '\\u0013\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e820 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x34, 0x00, 0x00, //0x0000e828 QUAD $0x000034313030755c // .asciz 8, '\\u0014\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e830 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x35, 0x00, 0x00, //0x0000e838 QUAD $0x000035313030755c // .asciz 8, '\\u0015\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e840 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x36, 0x00, 0x00, //0x0000e848 QUAD $0x000036313030755c // .asciz 8, '\\u0016\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e850 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x37, 0x00, 0x00, //0x0000e858 QUAD $0x000037313030755c // .asciz 8, '\\u0017\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e860 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x38, 0x00, 0x00, //0x0000e868 QUAD $0x000038313030755c // .asciz 8, '\\u0018\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e870 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x39, 0x00, 0x00, //0x0000e878 QUAD $0x000039313030755c // .asciz 8, '\\u0019\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e880 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x61, 0x00, 0x00, //0x0000e888 QUAD $0x000061313030755c // .asciz 8, '\\u001a\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e890 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x62, 0x00, 0x00, //0x0000e898 QUAD $0x000062313030755c // .asciz 8, '\\u001b\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e8a0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x63, 0x00, 0x00, //0x0000e8a8 QUAD $0x000063313030755c // .asciz 8, '\\u001c\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e8b0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x64, 0x00, 0x00, //0x0000e8b8 QUAD $0x000064313030755c // .asciz 8, '\\u001d\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e8c0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x65, 0x00, 0x00, //0x0000e8c8 QUAD $0x000065313030755c // .asciz 8, '\\u001e\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e8d0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x66, 0x00, 0x00, //0x0000e8d8 QUAD $0x000066313030755c // .asciz 8, '\\u001f\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e8e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e8f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e900 .quad 2 + 0x5c, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e908 QUAD $0x000000000000225c // .asciz 8, '\\"\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e910 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e920 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e930 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e940 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e950 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e960 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e970 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e980 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e990 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e9a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e9b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e9c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e9d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e9e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e9f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ea00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ea10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ea20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ea30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ea40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ea50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ea60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ea70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ea80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ea90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eaa0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eab0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eac0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ead0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eae0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eaf0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eb00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eb10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eb20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eb30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eb40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eb50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eb60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eb70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eb80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eb90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eba0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ebb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ebc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ebd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ebe0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ebf0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ec00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ec10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ec20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ec30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ec40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ec50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ec60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ec70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ec80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ec90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eca0 .quad 2 + 0x5c, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eca8 QUAD $0x0000000000005c5c // .asciz 8, '\\\\\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ecb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ecc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ecd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ece0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ecf0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ed00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ed10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ed20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ed30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ed40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ed50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ed60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ed70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ed80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ed90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eda0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000edb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000edc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000edd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ede0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000edf0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ee00 .quad 2 - 0x5c, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ee08 QUAD $0x000000000000225c // .asciz 8, '\\"\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ee00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ee10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ee20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ee30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' @@ -13134,8 +12815,7 @@ var Text__native_entry__ = []byte{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f170 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f180 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f190 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f1a0 .quad 2 - 0x5c, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f1a8 QUAD $0x0000000000005c5c // .asciz 8, '\\\\\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f1a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f1b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f1c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f1d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' @@ -13219,41 +12899,76 @@ var Text__native_entry__ = []byte{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f6b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f6c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f6d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f6e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f6f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f700 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f710 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f720 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f730 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f740 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f750 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f760 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f770 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f780 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f790 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f7a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f7b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f7c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f7d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f7e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f7f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f800 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f810 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f820 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f830 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f840 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f850 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f860 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f870 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f880 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f890 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f8a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f8b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f8c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f8d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + //0x0000f6e0 .p2align 4, 0x00 + //0x0000f6e0 __DoubleQuoteTab + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f6e0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x30, 0x00, //0x0000f6e8 QUAD $0x0030303030755c5c // .asciz 8, '\\\\u0000\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f6f0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x31, 0x00, //0x0000f6f8 QUAD $0x0031303030755c5c // .asciz 8, '\\\\u0001\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f700 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x32, 0x00, //0x0000f708 QUAD $0x0032303030755c5c // .asciz 8, '\\\\u0002\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f710 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x33, 0x00, //0x0000f718 QUAD $0x0033303030755c5c // .asciz 8, '\\\\u0003\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f720 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x34, 0x00, //0x0000f728 QUAD $0x0034303030755c5c // .asciz 8, '\\\\u0004\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f730 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x35, 0x00, //0x0000f738 QUAD $0x0035303030755c5c // .asciz 8, '\\\\u0005\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f740 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x36, 0x00, //0x0000f748 QUAD $0x0036303030755c5c // .asciz 8, '\\\\u0006\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f750 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x37, 0x00, //0x0000f758 QUAD $0x0037303030755c5c // .asciz 8, '\\\\u0007\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f760 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x38, 0x00, //0x0000f768 QUAD $0x0038303030755c5c // .asciz 8, '\\\\u0008\x00' + 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f770 .quad 3 + 0x5c, 0x5c, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f778 QUAD $0x0000000000745c5c // .asciz 8, '\\\\t\x00\x00\x00\x00\x00' + 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f780 .quad 3 + 0x5c, 0x5c, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f788 QUAD $0x00000000006e5c5c // .asciz 8, '\\\\n\x00\x00\x00\x00\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f790 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x62, 0x00, //0x0000f798 QUAD $0x0062303030755c5c // .asciz 8, '\\\\u000b\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f7a0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x63, 0x00, //0x0000f7a8 QUAD $0x0063303030755c5c // .asciz 8, '\\\\u000c\x00' + 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f7b0 .quad 3 + 0x5c, 0x5c, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f7b8 QUAD $0x0000000000725c5c // .asciz 8, '\\\\r\x00\x00\x00\x00\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f7c0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x65, 0x00, //0x0000f7c8 QUAD $0x0065303030755c5c // .asciz 8, '\\\\u000e\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f7d0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x66, 0x00, //0x0000f7d8 QUAD $0x0066303030755c5c // .asciz 8, '\\\\u000f\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f7e0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x30, 0x00, //0x0000f7e8 QUAD $0x0030313030755c5c // .asciz 8, '\\\\u0010\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f7f0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x31, 0x00, //0x0000f7f8 QUAD $0x0031313030755c5c // .asciz 8, '\\\\u0011\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f800 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x32, 0x00, //0x0000f808 QUAD $0x0032313030755c5c // .asciz 8, '\\\\u0012\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f810 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x33, 0x00, //0x0000f818 QUAD $0x0033313030755c5c // .asciz 8, '\\\\u0013\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f820 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x34, 0x00, //0x0000f828 QUAD $0x0034313030755c5c // .asciz 8, '\\\\u0014\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f830 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x35, 0x00, //0x0000f838 QUAD $0x0035313030755c5c // .asciz 8, '\\\\u0015\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f840 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x36, 0x00, //0x0000f848 QUAD $0x0036313030755c5c // .asciz 8, '\\\\u0016\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f850 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x37, 0x00, //0x0000f858 QUAD $0x0037313030755c5c // .asciz 8, '\\\\u0017\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f860 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x38, 0x00, //0x0000f868 QUAD $0x0038313030755c5c // .asciz 8, '\\\\u0018\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f870 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x39, 0x00, //0x0000f878 QUAD $0x0039313030755c5c // .asciz 8, '\\\\u0019\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f880 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x61, 0x00, //0x0000f888 QUAD $0x0061313030755c5c // .asciz 8, '\\\\u001a\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f890 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x62, 0x00, //0x0000f898 QUAD $0x0062313030755c5c // .asciz 8, '\\\\u001b\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f8a0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x63, 0x00, //0x0000f8a8 QUAD $0x0063313030755c5c // .asciz 8, '\\\\u001c\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f8b0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x64, 0x00, //0x0000f8b8 QUAD $0x0064313030755c5c // .asciz 8, '\\\\u001d\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f8c0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x65, 0x00, //0x0000f8c8 QUAD $0x0065313030755c5c // .asciz 8, '\\\\u001e\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f8d0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x66, 0x00, //0x0000f8d8 QUAD $0x0066313030755c5c // .asciz 8, '\\\\u001f\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f8e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f8f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f900 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f900 .quad 4 + 0x5c, 0x5c, 0x5c, 0x22, 0x00, 0x00, 0x00, 0x00, //0x0000f908 QUAD $0x00000000225c5c5c // .asciz 8, '\\\\\\"\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f910 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f920 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f930 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' @@ -13299,76 +13014,42 @@ var Text__native_entry__ = []byte{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fbb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fbc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fbd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - //0x0000fbe0 .p2align 4, 0x00 - //0x0000fbe0 __DoubleQuoteTab - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fbe0 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x30, 0x00, //0x0000fbe8 QUAD $0x0030303030755c5c // .asciz 8, '\\\\u0000\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fbf0 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x31, 0x00, //0x0000fbf8 QUAD $0x0031303030755c5c // .asciz 8, '\\\\u0001\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fc00 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x32, 0x00, //0x0000fc08 QUAD $0x0032303030755c5c // .asciz 8, '\\\\u0002\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fc10 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x33, 0x00, //0x0000fc18 QUAD $0x0033303030755c5c // .asciz 8, '\\\\u0003\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fc20 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x34, 0x00, //0x0000fc28 QUAD $0x0034303030755c5c // .asciz 8, '\\\\u0004\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fc30 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x35, 0x00, //0x0000fc38 QUAD $0x0035303030755c5c // .asciz 8, '\\\\u0005\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fc40 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x36, 0x00, //0x0000fc48 QUAD $0x0036303030755c5c // .asciz 8, '\\\\u0006\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fc50 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x37, 0x00, //0x0000fc58 QUAD $0x0037303030755c5c // .asciz 8, '\\\\u0007\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fc60 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x38, 0x00, //0x0000fc68 QUAD $0x0038303030755c5c // .asciz 8, '\\\\u0008\x00' - 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fc70 .quad 3 - 0x5c, 0x5c, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fc78 QUAD $0x0000000000745c5c // .asciz 8, '\\\\t\x00\x00\x00\x00\x00' - 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fc80 .quad 3 - 0x5c, 0x5c, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fc88 QUAD $0x00000000006e5c5c // .asciz 8, '\\\\n\x00\x00\x00\x00\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fc90 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x62, 0x00, //0x0000fc98 QUAD $0x0062303030755c5c // .asciz 8, '\\\\u000b\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fca0 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x63, 0x00, //0x0000fca8 QUAD $0x0063303030755c5c // .asciz 8, '\\\\u000c\x00' - 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fcb0 .quad 3 - 0x5c, 0x5c, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fcb8 QUAD $0x0000000000725c5c // .asciz 8, '\\\\r\x00\x00\x00\x00\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fcc0 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x65, 0x00, //0x0000fcc8 QUAD $0x0065303030755c5c // .asciz 8, '\\\\u000e\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fcd0 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x66, 0x00, //0x0000fcd8 QUAD $0x0066303030755c5c // .asciz 8, '\\\\u000f\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fce0 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x30, 0x00, //0x0000fce8 QUAD $0x0030313030755c5c // .asciz 8, '\\\\u0010\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fcf0 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x31, 0x00, //0x0000fcf8 QUAD $0x0031313030755c5c // .asciz 8, '\\\\u0011\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fd00 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x32, 0x00, //0x0000fd08 QUAD $0x0032313030755c5c // .asciz 8, '\\\\u0012\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fd10 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x33, 0x00, //0x0000fd18 QUAD $0x0033313030755c5c // .asciz 8, '\\\\u0013\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fd20 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x34, 0x00, //0x0000fd28 QUAD $0x0034313030755c5c // .asciz 8, '\\\\u0014\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fd30 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x35, 0x00, //0x0000fd38 QUAD $0x0035313030755c5c // .asciz 8, '\\\\u0015\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fd40 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x36, 0x00, //0x0000fd48 QUAD $0x0036313030755c5c // .asciz 8, '\\\\u0016\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fd50 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x37, 0x00, //0x0000fd58 QUAD $0x0037313030755c5c // .asciz 8, '\\\\u0017\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fd60 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x38, 0x00, //0x0000fd68 QUAD $0x0038313030755c5c // .asciz 8, '\\\\u0018\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fd70 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x39, 0x00, //0x0000fd78 QUAD $0x0039313030755c5c // .asciz 8, '\\\\u0019\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fd80 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x61, 0x00, //0x0000fd88 QUAD $0x0061313030755c5c // .asciz 8, '\\\\u001a\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fd90 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x62, 0x00, //0x0000fd98 QUAD $0x0062313030755c5c // .asciz 8, '\\\\u001b\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fda0 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x63, 0x00, //0x0000fda8 QUAD $0x0063313030755c5c // .asciz 8, '\\\\u001c\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fdb0 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x64, 0x00, //0x0000fdb8 QUAD $0x0064313030755c5c // .asciz 8, '\\\\u001d\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fdc0 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x65, 0x00, //0x0000fdc8 QUAD $0x0065313030755c5c // .asciz 8, '\\\\u001e\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fdd0 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x66, 0x00, //0x0000fdd8 QUAD $0x0066313030755c5c // .asciz 8, '\\\\u001f\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fbe0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fbf0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fc00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fc10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fc20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fc30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fc40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fc50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fc60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fc70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fc80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fc90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fca0 .quad 4 + 0x5c, 0x5c, 0x5c, 0x5c, 0x00, 0x00, 0x00, 0x00, //0x0000fca8 QUAD $0x000000005c5c5c5c // .asciz 8, '\\\\\\\\\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fcb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fcc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fcd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fce0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fcf0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fd00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fd10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fd20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fd30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fd40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fd50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fd60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fd70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fd80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fd90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fda0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fdb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fdc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fdd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fde0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fdf0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fe00 .quad 4 - 0x5c, 0x5c, 0x5c, 0x22, 0x00, 0x00, 0x00, 0x00, //0x0000fe08 QUAD $0x00000000225c5c5c // .asciz 8, '\\\\\\"\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fe00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fe10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fe20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fe30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' @@ -13426,8 +13107,7 @@ var Text__native_entry__ = []byte{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010170 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010180 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010190 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000101a0 .quad 4 - 0x5c, 0x5c, 0x5c, 0x5c, 0x00, 0x00, 0x00, 0x00, //0x000101a8 QUAD $0x000000005c5c5c5c // .asciz 8, '\\\\\\\\\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000101a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000101b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000101c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000101d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' @@ -13511,38 +13191,46 @@ var Text__native_entry__ = []byte{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000106b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000106c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000106d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000106e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000106f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010700 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010710 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010720 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010730 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010740 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010750 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010760 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010770 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010780 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010790 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000107a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000107b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000107c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000107d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000107e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000107f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010800 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010810 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010820 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010830 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010840 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010850 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010860 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010870 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010880 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010890 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000108a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000108b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000108c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000108d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + //0x000106e0 .p2align 4, 0x00 + //0x000106e0 __EscTab + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, //0x000106e0 QUAD $0x0101010101010101; QUAD $0x0101010101010101 // .ascii 16, '\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01' + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, //0x000106f0 QUAD $0x0101010101010101; QUAD $0x0101010101010101 // .ascii 16, '\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01' + 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010700 QUAD $0x0000000000010000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010710 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010720 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, //0x00010730 QUAD $0x0000000000000000; LONG $0x00000000; BYTE $0x01 // .ascii 13, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001073d QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001074d QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001075d QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001076d QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001077d QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001078d QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001079d QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000107ad QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000107bd QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000107cd QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, //0x000107dd WORD $0x0000; BYTE $0x00 // .space 3, '\x00\x00\x00' + //0x000107e0 .p2align 4, 0x00 + //0x000107e0 __UnquoteTab + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000107e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000107f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2f, //0x00010800 QUAD $0x0000000000220000; QUAD $0x2f00000000000000 // .ascii 16, '\x00\x00"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00/' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010810 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010820 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, //0x00010830 QUAD $0x0000000000000000; QUAD $0x0000005c00000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\\\x00\x00\x00' + 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, //0x00010840 QUAD $0x000c000000080000; QUAD $0x000a000000000000 // .ascii 16, '\x00\x00\x08\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\n\x00' + 0x00, 0x00, 0x0d, 0x00, 0x09, 0xff, //0x00010850 LONG $0x000d0000; WORD $0xff09 // .ascii 6, '\x00\x00\r\x00\t\xff' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010856 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010866 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010876 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010886 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010896 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000108a6 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000108b6 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000108c6 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000108d6 QUAD $0x0000000000000000; WORD $0x0000 // .space 10, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + //0x000108e0 .p2align 4, 0x00 + //0x000108e0 __HtmlQuoteTab 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000108e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000108f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010900 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' @@ -13581,7 +13269,8 @@ var Text__native_entry__ = []byte{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010b10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010b20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010b30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010b40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010b40 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x32, 0x36, 0x00, 0x00, //0x00010b48 QUAD $0x000036323030755c // .asciz 8, '\\u0026\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010b50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010b60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010b70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' @@ -13591,46 +13280,40 @@ var Text__native_entry__ = []byte{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010bb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010bc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010bd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - //0x00010be0 .p2align 4, 0x00 - //0x00010be0 __EscTab - 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, //0x00010be0 QUAD $0x0101010101010101; QUAD $0x0101010101010101 // .ascii 16, '\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01' - 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, //0x00010bf0 QUAD $0x0101010101010101; QUAD $0x0101010101010101 // .ascii 16, '\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01' - 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010c00 QUAD $0x0000000000010000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010c10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010c20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, //0x00010c30 QUAD $0x0000000000000000; LONG $0x00000000; BYTE $0x01 // .ascii 13, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010c3d QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010c4d QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010c5d QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010c6d QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010c7d QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010c8d QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010c9d QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010cad QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010cbd QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010ccd QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, //0x00010cdd WORD $0x0000; BYTE $0x00 // .space 3, '\x00\x00\x00' - //0x00010ce0 .p2align 4, 0x00 - //0x00010ce0 __UnquoteTab - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010ce0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010cf0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2f, //0x00010d00 QUAD $0x0000000000220000; QUAD $0x2f00000000000000 // .ascii 16, '\x00\x00"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00/' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010d10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010d20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, //0x00010d30 QUAD $0x0000000000000000; QUAD $0x0000005c00000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\\\x00\x00\x00' - 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, //0x00010d40 QUAD $0x000c000000080000; QUAD $0x000a000000000000 // .ascii 16, '\x00\x00\x08\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\n\x00' - 0x00, 0x00, 0x0d, 0x00, 0x09, 0xff, //0x00010d50 LONG $0x000d0000; WORD $0xff09 // .ascii 6, '\x00\x00\r\x00\t\xff' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010d56 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010d66 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010d76 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010d86 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010d96 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010da6 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010db6 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010dc6 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010dd6 QUAD $0x0000000000000000; WORD $0x0000 // .space 10, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - //0x00010de0 .p2align 4, 0x00 - //0x00010de0 __HtmlQuoteTab + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010be0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010bf0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010c00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010c10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010c20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010c30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010c40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010c50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010c60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010c70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010c80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010c90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010ca0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x33, 0x63, 0x00, 0x00, //0x00010ca8 QUAD $0x000063333030755c // .asciz 8, '\\u003c\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010cb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010cc0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x33, 0x65, 0x00, 0x00, //0x00010cc8 QUAD $0x000065333030755c // .asciz 8, '\\u003e\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010cd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010ce0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010cf0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010d00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010d10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010d20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010d30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010d40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010d50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010d60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010d70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010d80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010d90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010da0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010db0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010dc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010dd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010de0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010df0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010e00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' @@ -13669,8 +13352,7 @@ var Text__native_entry__ = []byte{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011010 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011020 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011030 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011040 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x32, 0x36, 0x00, 0x00, //0x00011048 QUAD $0x000036323030755c // .asciz 8, '\\u0026\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011040 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011050 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011060 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011070 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' @@ -13692,11 +13374,9 @@ var Text__native_entry__ = []byte{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011170 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011180 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011190 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000111a0 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x33, 0x63, 0x00, 0x00, //0x000111a8 QUAD $0x000063333030755c // .asciz 8, '\\u003c\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000111a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000111b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000111c0 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x33, 0x65, 0x00, 0x00, //0x000111c8 QUAD $0x000065333030755c // .asciz 8, '\\u003e\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000111c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000111d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000111e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000111f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' @@ -13722,8 +13402,10 @@ var Text__native_entry__ = []byte{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011330 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011340 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011350 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011360 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011370 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011360 .quad 6 + 0x5c, 0x75, 0x32, 0x30, 0x32, 0x38, 0x00, 0x00, //0x00011368 QUAD $0x000038323032755c // .asciz 8, '\\u2028\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011370 .quad 6 + 0x5c, 0x75, 0x32, 0x30, 0x32, 0x39, 0x00, 0x00, //0x00011378 QUAD $0x000039323032755c // .asciz 8, '\\u2029\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011380 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011390 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000113a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' @@ -13802,687 +13484,605 @@ var Text__native_entry__ = []byte{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011830 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011840 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011850 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011860 .quad 6 - 0x5c, 0x75, 0x32, 0x30, 0x32, 0x38, 0x00, 0x00, //0x00011868 QUAD $0x000038323032755c // .asciz 8, '\\u2028\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011870 .quad 6 - 0x5c, 0x75, 0x32, 0x30, 0x32, 0x39, 0x00, 0x00, //0x00011878 QUAD $0x000039323032755c // .asciz 8, '\\u2029\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011860 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011870 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011880 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011890 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000118a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000118b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000118c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000118d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + //0x000118e0 .p2align 4, 0x00 + //0x000118e0 _LSHIFT_TAB 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000118e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000118f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011900 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011910 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011920 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011930 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011940 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011950 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011960 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011970 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011980 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011990 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000119a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000119b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000119c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000119d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000119e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000119f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011a00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011a10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011a20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011a30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011a40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011a50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011a60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011a70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011a80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011a90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011aa0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011ab0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011ac0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011ad0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011ae0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011af0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011b00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011b10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011b20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011b30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011b40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011b50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011b60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011b70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011b80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011b90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011ba0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011bb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011bc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011bd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011be0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011bf0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011c00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011c10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011c20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011c30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011c40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011c50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011c60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011c70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011c80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011c90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011ca0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011cb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011cc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011cd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011ce0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011cf0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011d00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011d10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011d20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011d30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011d40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011d50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011d60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011d70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011d80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011d90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011da0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011db0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011dc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011dd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - //0x00011de0 .p2align 4, 0x00 - //0x00011de0 _LSHIFT_TAB - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011de0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011df0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011e00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011e10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011e20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011e30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011e40 QUAD $0x0000000000000000 // .space 8, '\x00\x00\x00\x00\x00\x00\x00\x00' - 0x01, 0x00, 0x00, 0x00, //0x00011e48 .long 1 - 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011e4c QUAD $0x0000000000000035; QUAD $0x0000000000000000 // .asciz 16, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011940 QUAD $0x0000000000000000 // .space 8, '\x00\x00\x00\x00\x00\x00\x00\x00' + 0x01, 0x00, 0x00, 0x00, //0x00011948 .long 1 + 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001194c QUAD $0x0000000000000035; QUAD $0x0000000000000000 // .asciz 16, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001195c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001196c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001197c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001198c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001199c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000119ac LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x01, 0x00, 0x00, 0x00, //0x000119b0 .long 1 + 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000119b4 QUAD $0x0000000000003532; QUAD $0x0000000000000000 // .asciz 16, '25\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000119c4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000119d4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000119e4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000119f4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011a04 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00011a14 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x01, 0x00, 0x00, 0x00, //0x00011a18 .long 1 + 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011a1c QUAD $0x0000000000353231; QUAD $0x0000000000000000 // .asciz 16, '125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011a2c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011a3c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011a4c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011a5c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011a6c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00011a7c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x02, 0x00, 0x00, 0x00, //0x00011a80 .long 2 + 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011a84 QUAD $0x0000000000353236; QUAD $0x0000000000000000 // .asciz 16, '625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011a94 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011aa4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011ab4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011ac4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011ad4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00011ae4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x02, 0x00, 0x00, 0x00, //0x00011ae8 .long 2 + 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011aec QUAD $0x0000000035323133; QUAD $0x0000000000000000 // .asciz 16, '3125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011afc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011b0c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011b1c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011b2c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011b3c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00011b4c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x02, 0x00, 0x00, 0x00, //0x00011b50 .long 2 + 0x31, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011b54 QUAD $0x0000003532363531; QUAD $0x0000000000000000 // .asciz 16, '15625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011b64 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011b74 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011b84 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011b94 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011ba4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00011bb4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x03, 0x00, 0x00, 0x00, //0x00011bb8 .long 3 + 0x37, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011bbc QUAD $0x0000003532313837; QUAD $0x0000000000000000 // .asciz 16, '78125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011bcc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011bdc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011bec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011bfc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011c0c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00011c1c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x03, 0x00, 0x00, 0x00, //0x00011c20 .long 3 + 0x33, 0x39, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011c24 QUAD $0x0000353236303933; QUAD $0x0000000000000000 // .asciz 16, '390625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011c34 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011c44 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011c54 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011c64 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011c74 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00011c84 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x03, 0x00, 0x00, 0x00, //0x00011c88 .long 3 + 0x31, 0x39, 0x35, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011c8c QUAD $0x0035323133353931; QUAD $0x0000000000000000 // .asciz 16, '1953125\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011c9c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011cac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011cbc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011ccc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011cdc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00011cec LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x04, 0x00, 0x00, 0x00, //0x00011cf0 .long 4 + 0x39, 0x37, 0x36, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011cf4 QUAD $0x0035323635363739; QUAD $0x0000000000000000 // .asciz 16, '9765625\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011d04 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011d14 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011d24 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011d34 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011d44 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00011d54 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x04, 0x00, 0x00, 0x00, //0x00011d58 .long 4 + 0x34, 0x38, 0x38, 0x32, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011d5c QUAD $0x3532313832383834; QUAD $0x0000000000000000 // .asciz 16, '48828125\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011d6c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011d7c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011d8c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011d9c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011dac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00011dbc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x04, 0x00, 0x00, 0x00, //0x00011dc0 .long 4 + 0x32, 0x34, 0x34, 0x31, 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011dc4 QUAD $0x3236303431343432; QUAD $0x0000000000000035 // .asciz 16, '244140625\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011dd4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011de4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011df4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011e04 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011e14 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00011e24 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x04, 0x00, 0x00, 0x00, //0x00011e28 .long 4 + 0x31, 0x32, 0x32, 0x30, 0x37, 0x30, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011e2c QUAD $0x3133303730323231; QUAD $0x0000000000003532 // .asciz 16, '1220703125\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011e3c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011e4c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011e5c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011e6c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011e7c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011e8c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011e9c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00011eac LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x01, 0x00, 0x00, 0x00, //0x00011eb0 .long 1 - 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011eb4 QUAD $0x0000000000003532; QUAD $0x0000000000000000 // .asciz 16, '25\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00011e8c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x05, 0x00, 0x00, 0x00, //0x00011e90 .long 5 + 0x36, 0x31, 0x30, 0x33, 0x35, 0x31, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011e94 QUAD $0x3635313533303136; QUAD $0x0000000000003532 // .asciz 16, '6103515625\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011ea4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011eb4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011ec4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011ed4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011ee4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011ef4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011f04 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00011f14 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x01, 0x00, 0x00, 0x00, //0x00011f18 .long 1 - 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011f1c QUAD $0x0000000000353231; QUAD $0x0000000000000000 // .asciz 16, '125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00011ef4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x05, 0x00, 0x00, 0x00, //0x00011ef8 .long 5 + 0x33, 0x30, 0x35, 0x31, 0x37, 0x35, 0x37, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011efc QUAD $0x3837353731353033; QUAD $0x0000000000353231 // .asciz 16, '30517578125\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011f0c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011f1c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011f2c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011f3c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011f4c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011f5c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011f6c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00011f7c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x02, 0x00, 0x00, 0x00, //0x00011f80 .long 2 - 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011f84 QUAD $0x0000000000353236; QUAD $0x0000000000000000 // .asciz 16, '625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00011f5c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x05, 0x00, 0x00, 0x00, //0x00011f60 .long 5 + 0x31, 0x35, 0x32, 0x35, 0x38, 0x37, 0x38, 0x39, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, //0x00011f64 QUAD $0x3938373835323531; QUAD $0x0000000035323630 // .asciz 16, '152587890625\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011f74 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011f84 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011f94 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011fa4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011fb4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011fc4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011fd4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00011fe4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x02, 0x00, 0x00, 0x00, //0x00011fe8 .long 2 - 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011fec QUAD $0x0000000035323133; QUAD $0x0000000000000000 // .asciz 16, '3125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00011fc4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x06, 0x00, 0x00, 0x00, //0x00011fc8 .long 6 + 0x37, 0x36, 0x32, 0x39, 0x33, 0x39, 0x34, 0x35, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, //0x00011fcc QUAD $0x3534393339323637; QUAD $0x0000000035323133 // .asciz 16, '762939453125\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011fdc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011fec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011ffc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001200c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001201c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001202c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001203c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x0001204c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x02, 0x00, 0x00, 0x00, //0x00012050 .long 2 - 0x31, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012054 QUAD $0x0000003532363531; QUAD $0x0000000000000000 // .asciz 16, '15625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0001202c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x06, 0x00, 0x00, 0x00, //0x00012030 .long 6 + 0x33, 0x38, 0x31, 0x34, 0x36, 0x39, 0x37, 0x32, 0x36, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, //0x00012034 QUAD $0x3237393634313833; QUAD $0x0000003532363536 // .asciz 16, '3814697265625\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012044 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012054 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012064 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012074 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012084 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012094 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000120a4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x000120b4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x03, 0x00, 0x00, 0x00, //0x000120b8 .long 3 - 0x37, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000120bc QUAD $0x0000003532313837; QUAD $0x0000000000000000 // .asciz 16, '78125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012094 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x06, 0x00, 0x00, 0x00, //0x00012098 .long 6 + 0x31, 0x39, 0x30, 0x37, 0x33, 0x34, 0x38, 0x36, 0x33, 0x32, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, //0x0001209c QUAD $0x3638343337303931; QUAD $0x0000353231383233 // .asciz 16, '19073486328125\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000120ac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000120bc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000120cc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000120dc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000120ec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000120fc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001210c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x0001211c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x03, 0x00, 0x00, 0x00, //0x00012120 .long 3 - 0x33, 0x39, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012124 QUAD $0x0000353236303933; QUAD $0x0000000000000000 // .asciz 16, '390625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000120fc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x07, 0x00, 0x00, 0x00, //0x00012100 .long 7 + 0x39, 0x35, 0x33, 0x36, 0x37, 0x34, 0x33, 0x31, 0x36, 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, //0x00012104 QUAD $0x3133343736333539; QUAD $0x0000353236303436 // .asciz 16, '95367431640625\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012114 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012124 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012134 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012144 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012154 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012164 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012174 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00012184 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x03, 0x00, 0x00, 0x00, //0x00012188 .long 3 - 0x31, 0x39, 0x35, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001218c QUAD $0x0035323133353931; QUAD $0x0000000000000000 // .asciz 16, '1953125\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012164 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x07, 0x00, 0x00, 0x00, //0x00012168 .long 7 + 0x34, 0x37, 0x36, 0x38, 0x33, 0x37, 0x31, 0x35, 0x38, 0x32, 0x30, 0x33, 0x31, 0x32, 0x35, 0x00, //0x0001216c QUAD $0x3531373338363734; QUAD $0x0035323133303238 // .asciz 16, '476837158203125\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001217c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001218c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001219c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000121ac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000121bc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000121cc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000121dc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x000121ec LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x04, 0x00, 0x00, 0x00, //0x000121f0 .long 4 - 0x39, 0x37, 0x36, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000121f4 QUAD $0x0035323635363739; QUAD $0x0000000000000000 // .asciz 16, '9765625\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000121cc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x07, 0x00, 0x00, 0x00, //0x000121d0 .long 7 + 0x32, 0x33, 0x38, 0x34, 0x31, 0x38, 0x35, 0x37, 0x39, 0x31, 0x30, 0x31, 0x35, 0x36, 0x32, 0x35, //0x000121d4 QUAD $0x3735383134383332; QUAD $0x3532363531303139 // .asciz 16, '2384185791015625' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000121e4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000121f4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012204 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012214 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012224 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012234 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012244 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00012254 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x04, 0x00, 0x00, 0x00, //0x00012258 .long 4 - 0x34, 0x38, 0x38, 0x32, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001225c QUAD $0x3532313832383834; QUAD $0x0000000000000000 // .asciz 16, '48828125\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012234 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x07, 0x00, 0x00, 0x00, //0x00012238 .long 7 + 0x31, 0x31, 0x39, 0x32, 0x30, 0x39, 0x32, 0x38, 0x39, 0x35, 0x35, 0x30, 0x37, 0x38, 0x31, 0x32, //0x0001223c QUAD $0x3832393032393131; QUAD $0x3231383730353539 // .asciz 16, '1192092895507812' + 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001224c QUAD $0x0000000000000035; QUAD $0x0000000000000000 // .asciz 16, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001225c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001226c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001227c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001228c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001229c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000122ac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x000122bc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x04, 0x00, 0x00, 0x00, //0x000122c0 .long 4 - 0x32, 0x34, 0x34, 0x31, 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000122c4 QUAD $0x3236303431343432; QUAD $0x0000000000000035 // .asciz 16, '244140625\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0001229c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x08, 0x00, 0x00, 0x00, //0x000122a0 .long 8 + 0x35, 0x39, 0x36, 0x30, 0x34, 0x36, 0x34, 0x34, 0x37, 0x37, 0x35, 0x33, 0x39, 0x30, 0x36, 0x32, //0x000122a4 QUAD $0x3434363430363935; QUAD $0x3236303933353737 // .asciz 16, '5960464477539062' + 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000122b4 QUAD $0x0000000000000035; QUAD $0x0000000000000000 // .asciz 16, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000122c4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000122d4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000122e4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000122f4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012304 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012314 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00012324 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x04, 0x00, 0x00, 0x00, //0x00012328 .long 4 - 0x31, 0x32, 0x32, 0x30, 0x37, 0x30, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001232c QUAD $0x3133303730323231; QUAD $0x0000000000003532 // .asciz 16, '1220703125\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012304 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x08, 0x00, 0x00, 0x00, //0x00012308 .long 8 + 0x32, 0x39, 0x38, 0x30, 0x32, 0x33, 0x32, 0x32, 0x33, 0x38, 0x37, 0x36, 0x39, 0x35, 0x33, 0x31, //0x0001230c QUAD $0x3232333230383932; QUAD $0x3133353936373833 // .asciz 16, '2980232238769531' + 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001231c QUAD $0x0000000000003532; QUAD $0x0000000000000000 // .asciz 16, '25\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001232c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001233c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001234c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001235c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001236c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001237c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x0001238c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x05, 0x00, 0x00, 0x00, //0x00012390 .long 5 - 0x36, 0x31, 0x30, 0x33, 0x35, 0x31, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012394 QUAD $0x3635313533303136; QUAD $0x0000000000003532 // .asciz 16, '6103515625\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0001236c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x08, 0x00, 0x00, 0x00, //0x00012370 .long 8 + 0x31, 0x34, 0x39, 0x30, 0x31, 0x31, 0x36, 0x31, 0x31, 0x39, 0x33, 0x38, 0x34, 0x37, 0x36, 0x35, //0x00012374 QUAD $0x3136313130393431; QUAD $0x3536373438333931 // .asciz 16, '1490116119384765' + 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012384 QUAD $0x0000000000353236; QUAD $0x0000000000000000 // .asciz 16, '625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012394 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000123a4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000123b4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000123c4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000123d4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000123e4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x000123f4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x05, 0x00, 0x00, 0x00, //0x000123f8 .long 5 - 0x33, 0x30, 0x35, 0x31, 0x37, 0x35, 0x37, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000123fc QUAD $0x3837353731353033; QUAD $0x0000000000353231 // .asciz 16, '30517578125\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000123d4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x09, 0x00, 0x00, 0x00, //0x000123d8 .long 9 + 0x37, 0x34, 0x35, 0x30, 0x35, 0x38, 0x30, 0x35, 0x39, 0x36, 0x39, 0x32, 0x33, 0x38, 0x32, 0x38, //0x000123dc QUAD $0x3530383530353437; QUAD $0x3832383332393639 // .asciz 16, '7450580596923828' + 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000123ec QUAD $0x0000000000353231; QUAD $0x0000000000000000 // .asciz 16, '125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000123fc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001240c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001241c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001242c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001243c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001244c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x0001245c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x05, 0x00, 0x00, 0x00, //0x00012460 .long 5 - 0x31, 0x35, 0x32, 0x35, 0x38, 0x37, 0x38, 0x39, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, //0x00012464 QUAD $0x3938373835323531; QUAD $0x0000000035323630 // .asciz 16, '152587890625\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0001243c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x09, 0x00, 0x00, 0x00, //0x00012440 .long 9 + 0x33, 0x37, 0x32, 0x35, 0x32, 0x39, 0x30, 0x32, 0x39, 0x38, 0x34, 0x36, 0x31, 0x39, 0x31, 0x34, //0x00012444 QUAD $0x3230393235323733; QUAD $0x3431393136343839 // .asciz 16, '3725290298461914' + 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012454 QUAD $0x0000000035323630; QUAD $0x0000000000000000 // .asciz 16, '0625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012464 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012474 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012484 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012494 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000124a4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000124b4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x000124c4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x06, 0x00, 0x00, 0x00, //0x000124c8 .long 6 - 0x37, 0x36, 0x32, 0x39, 0x33, 0x39, 0x34, 0x35, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, //0x000124cc QUAD $0x3534393339323637; QUAD $0x0000000035323133 // .asciz 16, '762939453125\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000124a4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x09, 0x00, 0x00, 0x00, //0x000124a8 .long 9 + 0x31, 0x38, 0x36, 0x32, 0x36, 0x34, 0x35, 0x31, 0x34, 0x39, 0x32, 0x33, 0x30, 0x39, 0x35, 0x37, //0x000124ac QUAD $0x3135343632363831; QUAD $0x3735393033323934 // .asciz 16, '1862645149230957' + 0x30, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000124bc QUAD $0x0000003532313330; QUAD $0x0000000000000000 // .asciz 16, '03125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000124cc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000124dc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000124ec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000124fc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001250c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001251c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x0001252c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x06, 0x00, 0x00, 0x00, //0x00012530 .long 6 - 0x33, 0x38, 0x31, 0x34, 0x36, 0x39, 0x37, 0x32, 0x36, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, //0x00012534 QUAD $0x3237393634313833; QUAD $0x0000003532363536 // .asciz 16, '3814697265625\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0001250c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0a, 0x00, 0x00, 0x00, //0x00012510 .long 10 + 0x39, 0x33, 0x31, 0x33, 0x32, 0x32, 0x35, 0x37, 0x34, 0x36, 0x31, 0x35, 0x34, 0x37, 0x38, 0x35, //0x00012514 QUAD $0x3735323233313339; QUAD $0x3538373435313634 // .asciz 16, '9313225746154785' + 0x31, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012524 QUAD $0x0000003532363531; QUAD $0x0000000000000000 // .asciz 16, '15625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012534 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012544 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012554 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012564 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012574 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012584 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00012594 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x06, 0x00, 0x00, 0x00, //0x00012598 .long 6 - 0x31, 0x39, 0x30, 0x37, 0x33, 0x34, 0x38, 0x36, 0x33, 0x32, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, //0x0001259c QUAD $0x3638343337303931; QUAD $0x0000353231383233 // .asciz 16, '19073486328125\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012574 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0a, 0x00, 0x00, 0x00, //0x00012578 .long 10 + 0x34, 0x36, 0x35, 0x36, 0x36, 0x31, 0x32, 0x38, 0x37, 0x33, 0x30, 0x37, 0x37, 0x33, 0x39, 0x32, //0x0001257c QUAD $0x3832313636353634; QUAD $0x3239333737303337 // .asciz 16, '4656612873077392' + 0x35, 0x37, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001258c QUAD $0x0000353231383735; QUAD $0x0000000000000000 // .asciz 16, '578125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001259c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000125ac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000125bc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000125cc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000125dc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000125ec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x000125fc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x07, 0x00, 0x00, 0x00, //0x00012600 .long 7 - 0x39, 0x35, 0x33, 0x36, 0x37, 0x34, 0x33, 0x31, 0x36, 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, //0x00012604 QUAD $0x3133343736333539; QUAD $0x0000353236303436 // .asciz 16, '95367431640625\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000125dc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0a, 0x00, 0x00, 0x00, //0x000125e0 .long 10 + 0x32, 0x33, 0x32, 0x38, 0x33, 0x30, 0x36, 0x34, 0x33, 0x36, 0x35, 0x33, 0x38, 0x36, 0x39, 0x36, //0x000125e4 QUAD $0x3436303338323332; QUAD $0x3639363833353633 // .asciz 16, '2328306436538696' + 0x32, 0x38, 0x39, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000125f4 QUAD $0x0035323630393832; QUAD $0x0000000000000000 // .asciz 16, '2890625\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012604 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012614 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012624 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012634 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012644 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012654 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00012664 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x07, 0x00, 0x00, 0x00, //0x00012668 .long 7 - 0x34, 0x37, 0x36, 0x38, 0x33, 0x37, 0x31, 0x35, 0x38, 0x32, 0x30, 0x33, 0x31, 0x32, 0x35, 0x00, //0x0001266c QUAD $0x3531373338363734; QUAD $0x0035323133303238 // .asciz 16, '476837158203125\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012644 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0a, 0x00, 0x00, 0x00, //0x00012648 .long 10 + 0x31, 0x31, 0x36, 0x34, 0x31, 0x35, 0x33, 0x32, 0x31, 0x38, 0x32, 0x36, 0x39, 0x33, 0x34, 0x38, //0x0001264c QUAD $0x3233353134363131; QUAD $0x3834333936323831 // .asciz 16, '1164153218269348' + 0x31, 0x34, 0x34, 0x35, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001265c QUAD $0x3532313335343431; QUAD $0x0000000000000000 // .asciz 16, '14453125\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001266c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001267c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001268c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001269c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000126ac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000126bc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x000126cc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x07, 0x00, 0x00, 0x00, //0x000126d0 .long 7 - 0x32, 0x33, 0x38, 0x34, 0x31, 0x38, 0x35, 0x37, 0x39, 0x31, 0x30, 0x31, 0x35, 0x36, 0x32, 0x35, //0x000126d4 QUAD $0x3735383134383332; QUAD $0x3532363531303139 // .asciz 16, '2384185791015625' + 0x00, 0x00, 0x00, 0x00, //0x000126ac LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0b, 0x00, 0x00, 0x00, //0x000126b0 .long 11 + 0x35, 0x38, 0x32, 0x30, 0x37, 0x36, 0x36, 0x30, 0x39, 0x31, 0x33, 0x34, 0x36, 0x37, 0x34, 0x30, //0x000126b4 QUAD $0x3036363730323835; QUAD $0x3034373634333139 // .asciz 16, '5820766091346740' + 0x37, 0x32, 0x32, 0x36, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000126c4 QUAD $0x3532363536323237; QUAD $0x0000000000000000 // .asciz 16, '72265625\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000126d4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000126e4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000126f4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012704 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012714 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012724 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00012734 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x07, 0x00, 0x00, 0x00, //0x00012738 .long 7 - 0x31, 0x31, 0x39, 0x32, 0x30, 0x39, 0x32, 0x38, 0x39, 0x35, 0x35, 0x30, 0x37, 0x38, 0x31, 0x32, //0x0001273c QUAD $0x3832393032393131; QUAD $0x3231383730353539 // .asciz 16, '1192092895507812' - 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001274c QUAD $0x0000000000000035; QUAD $0x0000000000000000 // .asciz 16, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012714 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0b, 0x00, 0x00, 0x00, //0x00012718 .long 11 + 0x32, 0x39, 0x31, 0x30, 0x33, 0x38, 0x33, 0x30, 0x34, 0x35, 0x36, 0x37, 0x33, 0x33, 0x37, 0x30, //0x0001271c QUAD $0x3033383330313932; QUAD $0x3037333337363534 // .asciz 16, '2910383045673370' + 0x33, 0x36, 0x31, 0x33, 0x32, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001272c QUAD $0x3231383233313633; QUAD $0x0000000000000035 // .asciz 16, '361328125\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001273c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001274c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001275c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001276c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001277c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001278c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x0001279c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x08, 0x00, 0x00, 0x00, //0x000127a0 .long 8 - 0x35, 0x39, 0x36, 0x30, 0x34, 0x36, 0x34, 0x34, 0x37, 0x37, 0x35, 0x33, 0x39, 0x30, 0x36, 0x32, //0x000127a4 QUAD $0x3434363430363935; QUAD $0x3236303933353737 // .asciz 16, '5960464477539062' - 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000127b4 QUAD $0x0000000000000035; QUAD $0x0000000000000000 // .asciz 16, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0001277c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0b, 0x00, 0x00, 0x00, //0x00012780 .long 11 + 0x31, 0x34, 0x35, 0x35, 0x31, 0x39, 0x31, 0x35, 0x32, 0x32, 0x38, 0x33, 0x36, 0x36, 0x38, 0x35, //0x00012784 QUAD $0x3531393135353431; QUAD $0x3538363633383232 // .asciz 16, '1455191522836685' + 0x31, 0x38, 0x30, 0x36, 0x36, 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012794 QUAD $0x3630343636303831; QUAD $0x0000000000003532 // .asciz 16, '1806640625\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000127a4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000127b4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000127c4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000127d4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000127e4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000127f4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00012804 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x08, 0x00, 0x00, 0x00, //0x00012808 .long 8 - 0x32, 0x39, 0x38, 0x30, 0x32, 0x33, 0x32, 0x32, 0x33, 0x38, 0x37, 0x36, 0x39, 0x35, 0x33, 0x31, //0x0001280c QUAD $0x3232333230383932; QUAD $0x3133353936373833 // .asciz 16, '2980232238769531' - 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001281c QUAD $0x0000000000003532; QUAD $0x0000000000000000 // .asciz 16, '25\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000127e4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0c, 0x00, 0x00, 0x00, //0x000127e8 .long 12 + 0x37, 0x32, 0x37, 0x35, 0x39, 0x35, 0x37, 0x36, 0x31, 0x34, 0x31, 0x38, 0x33, 0x34, 0x32, 0x35, //0x000127ec QUAD $0x3637353935373237; QUAD $0x3532343338313431 // .asciz 16, '7275957614183425' + 0x39, 0x30, 0x33, 0x33, 0x32, 0x30, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000127fc QUAD $0x3133303233333039; QUAD $0x0000000000003532 // .asciz 16, '9033203125\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001280c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001281c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001282c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001283c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001284c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001285c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x0001286c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x08, 0x00, 0x00, 0x00, //0x00012870 .long 8 - 0x31, 0x34, 0x39, 0x30, 0x31, 0x31, 0x36, 0x31, 0x31, 0x39, 0x33, 0x38, 0x34, 0x37, 0x36, 0x35, //0x00012874 QUAD $0x3136313130393431; QUAD $0x3536373438333931 // .asciz 16, '1490116119384765' - 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012884 QUAD $0x0000000000353236; QUAD $0x0000000000000000 // .asciz 16, '625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0001284c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0c, 0x00, 0x00, 0x00, //0x00012850 .long 12 + 0x33, 0x36, 0x33, 0x37, 0x39, 0x37, 0x38, 0x38, 0x30, 0x37, 0x30, 0x39, 0x31, 0x37, 0x31, 0x32, //0x00012854 QUAD $0x3838373937333633; QUAD $0x3231373139303730 // .asciz 16, '3637978807091712' + 0x39, 0x35, 0x31, 0x36, 0x36, 0x30, 0x31, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012864 QUAD $0x3531303636313539; QUAD $0x0000000000353236 // .asciz 16, '95166015625\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012874 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012884 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012894 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000128a4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000128b4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000128c4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x000128d4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x09, 0x00, 0x00, 0x00, //0x000128d8 .long 9 - 0x37, 0x34, 0x35, 0x30, 0x35, 0x38, 0x30, 0x35, 0x39, 0x36, 0x39, 0x32, 0x33, 0x38, 0x32, 0x38, //0x000128dc QUAD $0x3530383530353437; QUAD $0x3832383332393639 // .asciz 16, '7450580596923828' - 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000128ec QUAD $0x0000000000353231; QUAD $0x0000000000000000 // .asciz 16, '125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000128b4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0c, 0x00, 0x00, 0x00, //0x000128b8 .long 12 + 0x31, 0x38, 0x31, 0x38, 0x39, 0x38, 0x39, 0x34, 0x30, 0x33, 0x35, 0x34, 0x35, 0x38, 0x35, 0x36, //0x000128bc QUAD $0x3439383938313831; QUAD $0x3635383534353330 // .asciz 16, '1818989403545856' + 0x34, 0x37, 0x35, 0x38, 0x33, 0x30, 0x30, 0x37, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, //0x000128cc QUAD $0x3730303338353734; QUAD $0x0000000035323138 // .asciz 16, '475830078125\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000128dc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000128ec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000128fc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001290c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001291c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001292c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x0001293c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x09, 0x00, 0x00, 0x00, //0x00012940 .long 9 - 0x33, 0x37, 0x32, 0x35, 0x32, 0x39, 0x30, 0x32, 0x39, 0x38, 0x34, 0x36, 0x31, 0x39, 0x31, 0x34, //0x00012944 QUAD $0x3230393235323733; QUAD $0x3431393136343839 // .asciz 16, '3725290298461914' - 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012954 QUAD $0x0000000035323630; QUAD $0x0000000000000000 // .asciz 16, '0625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0001291c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0d, 0x00, 0x00, 0x00, //0x00012920 .long 13 + 0x39, 0x30, 0x39, 0x34, 0x39, 0x34, 0x37, 0x30, 0x31, 0x37, 0x37, 0x32, 0x39, 0x32, 0x38, 0x32, //0x00012924 QUAD $0x3037343934393039; QUAD $0x3238323932373731 // .asciz 16, '9094947017729282' + 0x33, 0x37, 0x39, 0x31, 0x35, 0x30, 0x33, 0x39, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, //0x00012934 QUAD $0x3933303531393733; QUAD $0x0000000035323630 // .asciz 16, '379150390625\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012944 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012954 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012964 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012974 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012984 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012994 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x000129a4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x09, 0x00, 0x00, 0x00, //0x000129a8 .long 9 - 0x31, 0x38, 0x36, 0x32, 0x36, 0x34, 0x35, 0x31, 0x34, 0x39, 0x32, 0x33, 0x30, 0x39, 0x35, 0x37, //0x000129ac QUAD $0x3135343632363831; QUAD $0x3735393033323934 // .asciz 16, '1862645149230957' - 0x30, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000129bc QUAD $0x0000003532313330; QUAD $0x0000000000000000 // .asciz 16, '03125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012984 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0d, 0x00, 0x00, 0x00, //0x00012988 .long 13 + 0x34, 0x35, 0x34, 0x37, 0x34, 0x37, 0x33, 0x35, 0x30, 0x38, 0x38, 0x36, 0x34, 0x36, 0x34, 0x31, //0x0001298c QUAD $0x3533373437343534; QUAD $0x3134363436383830 // .asciz 16, '4547473508864641' + 0x31, 0x38, 0x39, 0x35, 0x37, 0x35, 0x31, 0x39, 0x35, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, //0x0001299c QUAD $0x3931353735393831; QUAD $0x0000003532313335 // .asciz 16, '1895751953125\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000129ac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000129bc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000129cc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000129dc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000129ec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000129fc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00012a0c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0a, 0x00, 0x00, 0x00, //0x00012a10 .long 10 - 0x39, 0x33, 0x31, 0x33, 0x32, 0x32, 0x35, 0x37, 0x34, 0x36, 0x31, 0x35, 0x34, 0x37, 0x38, 0x35, //0x00012a14 QUAD $0x3735323233313339; QUAD $0x3538373435313634 // .asciz 16, '9313225746154785' - 0x31, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012a24 QUAD $0x0000003532363531; QUAD $0x0000000000000000 // .asciz 16, '15625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000129ec LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0d, 0x00, 0x00, 0x00, //0x000129f0 .long 13 + 0x32, 0x32, 0x37, 0x33, 0x37, 0x33, 0x36, 0x37, 0x35, 0x34, 0x34, 0x33, 0x32, 0x33, 0x32, 0x30, //0x000129f4 QUAD $0x3736333733373232; QUAD $0x3032333233343435 // .asciz 16, '2273736754432320' + 0x35, 0x39, 0x34, 0x37, 0x38, 0x37, 0x35, 0x39, 0x37, 0x36, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, //0x00012a04 QUAD $0x3935373837343935; QUAD $0x0000353236353637 // .asciz 16, '59478759765625\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012a14 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012a24 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012a34 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012a44 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012a54 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012a64 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00012a74 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0a, 0x00, 0x00, 0x00, //0x00012a78 .long 10 - 0x34, 0x36, 0x35, 0x36, 0x36, 0x31, 0x32, 0x38, 0x37, 0x33, 0x30, 0x37, 0x37, 0x33, 0x39, 0x32, //0x00012a7c QUAD $0x3832313636353634; QUAD $0x3239333737303337 // .asciz 16, '4656612873077392' - 0x35, 0x37, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012a8c QUAD $0x0000353231383735; QUAD $0x0000000000000000 // .asciz 16, '578125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012a54 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0d, 0x00, 0x00, 0x00, //0x00012a58 .long 13 + 0x31, 0x31, 0x33, 0x36, 0x38, 0x36, 0x38, 0x33, 0x37, 0x37, 0x32, 0x31, 0x36, 0x31, 0x36, 0x30, //0x00012a5c QUAD $0x3338363836333131; QUAD $0x3036313631323737 // .asciz 16, '1136868377216160' + 0x32, 0x39, 0x37, 0x33, 0x39, 0x33, 0x37, 0x39, 0x38, 0x38, 0x32, 0x38, 0x31, 0x32, 0x35, 0x00, //0x00012a6c QUAD $0x3937333933373932; QUAD $0x0035323138323838 // .asciz 16, '297393798828125\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012a7c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012a8c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012a9c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012aac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012abc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012acc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00012adc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0a, 0x00, 0x00, 0x00, //0x00012ae0 .long 10 - 0x32, 0x33, 0x32, 0x38, 0x33, 0x30, 0x36, 0x34, 0x33, 0x36, 0x35, 0x33, 0x38, 0x36, 0x39, 0x36, //0x00012ae4 QUAD $0x3436303338323332; QUAD $0x3639363833353633 // .asciz 16, '2328306436538696' - 0x32, 0x38, 0x39, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012af4 QUAD $0x0035323630393832; QUAD $0x0000000000000000 // .asciz 16, '2890625\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012abc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0e, 0x00, 0x00, 0x00, //0x00012ac0 .long 14 + 0x35, 0x36, 0x38, 0x34, 0x33, 0x34, 0x31, 0x38, 0x38, 0x36, 0x30, 0x38, 0x30, 0x38, 0x30, 0x31, //0x00012ac4 QUAD $0x3831343334383635; QUAD $0x3130383038303638 // .asciz 16, '5684341886080801' + 0x34, 0x38, 0x36, 0x39, 0x36, 0x38, 0x39, 0x39, 0x34, 0x31, 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, //0x00012ad4 QUAD $0x3939383639363834; QUAD $0x0035323630343134 // .asciz 16, '486968994140625\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012ae4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012af4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012b04 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012b14 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012b24 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012b34 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00012b44 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0a, 0x00, 0x00, 0x00, //0x00012b48 .long 10 - 0x31, 0x31, 0x36, 0x34, 0x31, 0x35, 0x33, 0x32, 0x31, 0x38, 0x32, 0x36, 0x39, 0x33, 0x34, 0x38, //0x00012b4c QUAD $0x3233353134363131; QUAD $0x3834333936323831 // .asciz 16, '1164153218269348' - 0x31, 0x34, 0x34, 0x35, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012b5c QUAD $0x3532313335343431; QUAD $0x0000000000000000 // .asciz 16, '14453125\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012b24 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0e, 0x00, 0x00, 0x00, //0x00012b28 .long 14 + 0x32, 0x38, 0x34, 0x32, 0x31, 0x37, 0x30, 0x39, 0x34, 0x33, 0x30, 0x34, 0x30, 0x34, 0x30, 0x30, //0x00012b2c QUAD $0x3930373132343832; QUAD $0x3030343034303334 // .asciz 16, '2842170943040400' + 0x37, 0x34, 0x33, 0x34, 0x38, 0x34, 0x34, 0x39, 0x37, 0x30, 0x37, 0x30, 0x33, 0x31, 0x32, 0x35, //0x00012b3c QUAD $0x3934343834333437; QUAD $0x3532313330373037 // .asciz 16, '7434844970703125' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012b4c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012b5c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012b6c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012b7c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012b8c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012b9c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00012bac LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0b, 0x00, 0x00, 0x00, //0x00012bb0 .long 11 - 0x35, 0x38, 0x32, 0x30, 0x37, 0x36, 0x36, 0x30, 0x39, 0x31, 0x33, 0x34, 0x36, 0x37, 0x34, 0x30, //0x00012bb4 QUAD $0x3036363730323835; QUAD $0x3034373634333139 // .asciz 16, '5820766091346740' - 0x37, 0x32, 0x32, 0x36, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012bc4 QUAD $0x3532363536323237; QUAD $0x0000000000000000 // .asciz 16, '72265625\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012b8c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0e, 0x00, 0x00, 0x00, //0x00012b90 .long 14 + 0x31, 0x34, 0x32, 0x31, 0x30, 0x38, 0x35, 0x34, 0x37, 0x31, 0x35, 0x32, 0x30, 0x32, 0x30, 0x30, //0x00012b94 QUAD $0x3435383031323431; QUAD $0x3030323032353137 // .asciz 16, '1421085471520200' + 0x33, 0x37, 0x31, 0x37, 0x34, 0x32, 0x32, 0x34, 0x38, 0x35, 0x33, 0x35, 0x31, 0x35, 0x36, 0x32, //0x00012ba4 QUAD $0x3432323437313733; QUAD $0x3236353135333538 // .asciz 16, '3717422485351562' + 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012bb4 QUAD $0x0000000000000035; QUAD $0x0000000000000000 // .asciz 16, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012bc4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012bd4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012be4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012bf4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012c04 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00012c14 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0b, 0x00, 0x00, 0x00, //0x00012c18 .long 11 - 0x32, 0x39, 0x31, 0x30, 0x33, 0x38, 0x33, 0x30, 0x34, 0x35, 0x36, 0x37, 0x33, 0x33, 0x37, 0x30, //0x00012c1c QUAD $0x3033383330313932; QUAD $0x3037333337363534 // .asciz 16, '2910383045673370' - 0x33, 0x36, 0x31, 0x33, 0x32, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012c2c QUAD $0x3231383233313633; QUAD $0x0000000000000035 // .asciz 16, '361328125\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012bf4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0f, 0x00, 0x00, 0x00, //0x00012bf8 .long 15 + 0x37, 0x31, 0x30, 0x35, 0x34, 0x32, 0x37, 0x33, 0x35, 0x37, 0x36, 0x30, 0x31, 0x30, 0x30, 0x31, //0x00012bfc QUAD $0x3337323435303137; QUAD $0x3130303130363735 // .asciz 16, '7105427357601001' + 0x38, 0x35, 0x38, 0x37, 0x31, 0x31, 0x32, 0x34, 0x32, 0x36, 0x37, 0x35, 0x37, 0x38, 0x31, 0x32, //0x00012c0c QUAD $0x3432313137383538; QUAD $0x3231383735373632 // .asciz 16, '8587112426757812' + 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012c1c QUAD $0x0000000000000035; QUAD $0x0000000000000000 // .asciz 16, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012c2c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012c3c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012c4c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012c5c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012c6c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00012c7c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0b, 0x00, 0x00, 0x00, //0x00012c80 .long 11 - 0x31, 0x34, 0x35, 0x35, 0x31, 0x39, 0x31, 0x35, 0x32, 0x32, 0x38, 0x33, 0x36, 0x36, 0x38, 0x35, //0x00012c84 QUAD $0x3531393135353431; QUAD $0x3538363633383232 // .asciz 16, '1455191522836685' - 0x31, 0x38, 0x30, 0x36, 0x36, 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012c94 QUAD $0x3630343636303831; QUAD $0x0000000000003532 // .asciz 16, '1806640625\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012c5c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0f, 0x00, 0x00, 0x00, //0x00012c60 .long 15 + 0x33, 0x35, 0x35, 0x32, 0x37, 0x31, 0x33, 0x36, 0x37, 0x38, 0x38, 0x30, 0x30, 0x35, 0x30, 0x30, //0x00012c64 QUAD $0x3633313732353533; QUAD $0x3030353030383837 // .asciz 16, '3552713678800500' + 0x39, 0x32, 0x39, 0x33, 0x35, 0x35, 0x36, 0x32, 0x31, 0x33, 0x33, 0x37, 0x38, 0x39, 0x30, 0x36, //0x00012c74 QUAD $0x3236353533393239; QUAD $0x3630393837333331 // .asciz 16, '9293556213378906' + 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012c84 QUAD $0x0000000000003532; QUAD $0x0000000000000000 // .asciz 16, '25\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012c94 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012ca4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012cb4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012cc4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012cd4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00012ce4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0c, 0x00, 0x00, 0x00, //0x00012ce8 .long 12 - 0x37, 0x32, 0x37, 0x35, 0x39, 0x35, 0x37, 0x36, 0x31, 0x34, 0x31, 0x38, 0x33, 0x34, 0x32, 0x35, //0x00012cec QUAD $0x3637353935373237; QUAD $0x3532343338313431 // .asciz 16, '7275957614183425' - 0x39, 0x30, 0x33, 0x33, 0x32, 0x30, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012cfc QUAD $0x3133303233333039; QUAD $0x0000000000003532 // .asciz 16, '9033203125\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012cc4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0f, 0x00, 0x00, 0x00, //0x00012cc8 .long 15 + 0x31, 0x37, 0x37, 0x36, 0x33, 0x35, 0x36, 0x38, 0x33, 0x39, 0x34, 0x30, 0x30, 0x32, 0x35, 0x30, //0x00012ccc QUAD $0x3836353336373731; QUAD $0x3035323030343933 // .asciz 16, '1776356839400250' + 0x34, 0x36, 0x34, 0x36, 0x37, 0x37, 0x38, 0x31, 0x30, 0x36, 0x36, 0x38, 0x39, 0x34, 0x35, 0x33, //0x00012cdc QUAD $0x3138373736343634; QUAD $0x3335343938363630 // .asciz 16, '4646778106689453' + 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012cec QUAD $0x0000000000353231; QUAD $0x0000000000000000 // .asciz 16, '125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012cfc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012d0c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012d1c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012d2c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012d3c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00012d4c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0c, 0x00, 0x00, 0x00, //0x00012d50 .long 12 - 0x33, 0x36, 0x33, 0x37, 0x39, 0x37, 0x38, 0x38, 0x30, 0x37, 0x30, 0x39, 0x31, 0x37, 0x31, 0x32, //0x00012d54 QUAD $0x3838373937333633; QUAD $0x3231373139303730 // .asciz 16, '3637978807091712' - 0x39, 0x35, 0x31, 0x36, 0x36, 0x30, 0x31, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012d64 QUAD $0x3531303636313539; QUAD $0x0000000000353236 // .asciz 16, '95166015625\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012d2c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x10, 0x00, 0x00, 0x00, //0x00012d30 .long 16 + 0x38, 0x38, 0x38, 0x31, 0x37, 0x38, 0x34, 0x31, 0x39, 0x37, 0x30, 0x30, 0x31, 0x32, 0x35, 0x32, //0x00012d34 QUAD $0x3134383731383838; QUAD $0x3235323130303739 // .asciz 16, '8881784197001252' + 0x33, 0x32, 0x33, 0x33, 0x38, 0x39, 0x30, 0x35, 0x33, 0x33, 0x34, 0x34, 0x37, 0x32, 0x36, 0x35, //0x00012d44 QUAD $0x3530393833333233; QUAD $0x3536323734343333 // .asciz 16, '3233890533447265' + 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012d54 QUAD $0x0000000000353236; QUAD $0x0000000000000000 // .asciz 16, '625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012d64 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012d74 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012d84 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012d94 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012da4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00012db4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0c, 0x00, 0x00, 0x00, //0x00012db8 .long 12 - 0x31, 0x38, 0x31, 0x38, 0x39, 0x38, 0x39, 0x34, 0x30, 0x33, 0x35, 0x34, 0x35, 0x38, 0x35, 0x36, //0x00012dbc QUAD $0x3439383938313831; QUAD $0x3635383534353330 // .asciz 16, '1818989403545856' - 0x34, 0x37, 0x35, 0x38, 0x33, 0x30, 0x30, 0x37, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, //0x00012dcc QUAD $0x3730303338353734; QUAD $0x0000000035323138 // .asciz 16, '475830078125\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012d94 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x10, 0x00, 0x00, 0x00, //0x00012d98 .long 16 + 0x34, 0x34, 0x34, 0x30, 0x38, 0x39, 0x32, 0x30, 0x39, 0x38, 0x35, 0x30, 0x30, 0x36, 0x32, 0x36, //0x00012d9c QUAD $0x3032393830343434; QUAD $0x3632363030353839 // .asciz 16, '4440892098500626' + 0x31, 0x36, 0x31, 0x36, 0x39, 0x34, 0x35, 0x32, 0x36, 0x36, 0x37, 0x32, 0x33, 0x36, 0x33, 0x32, //0x00012dac QUAD $0x3235343936313631; QUAD $0x3233363332373636 // .asciz 16, '1616945266723632' + 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012dbc QUAD $0x0000000035323138; QUAD $0x0000000000000000 // .asciz 16, '8125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012dcc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012ddc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012dec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012dfc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012e0c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00012e1c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0d, 0x00, 0x00, 0x00, //0x00012e20 .long 13 - 0x39, 0x30, 0x39, 0x34, 0x39, 0x34, 0x37, 0x30, 0x31, 0x37, 0x37, 0x32, 0x39, 0x32, 0x38, 0x32, //0x00012e24 QUAD $0x3037343934393039; QUAD $0x3238323932373731 // .asciz 16, '9094947017729282' - 0x33, 0x37, 0x39, 0x31, 0x35, 0x30, 0x33, 0x39, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, //0x00012e34 QUAD $0x3933303531393733; QUAD $0x0000000035323630 // .asciz 16, '379150390625\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012dfc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x10, 0x00, 0x00, 0x00, //0x00012e00 .long 16 + 0x32, 0x32, 0x32, 0x30, 0x34, 0x34, 0x36, 0x30, 0x34, 0x39, 0x32, 0x35, 0x30, 0x33, 0x31, 0x33, //0x00012e04 QUAD $0x3036343430323232; QUAD $0x3331333035323934 // .asciz 16, '2220446049250313' + 0x30, 0x38, 0x30, 0x38, 0x34, 0x37, 0x32, 0x36, 0x33, 0x33, 0x33, 0x36, 0x31, 0x38, 0x31, 0x36, //0x00012e14 QUAD $0x3632373438303830; QUAD $0x3631383136333333 // .asciz 16, '0808472633361816' + 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012e24 QUAD $0x0000003532363034; QUAD $0x0000000000000000 // .asciz 16, '40625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012e34 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012e44 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012e54 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012e64 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012e74 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00012e84 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0d, 0x00, 0x00, 0x00, //0x00012e88 .long 13 - 0x34, 0x35, 0x34, 0x37, 0x34, 0x37, 0x33, 0x35, 0x30, 0x38, 0x38, 0x36, 0x34, 0x36, 0x34, 0x31, //0x00012e8c QUAD $0x3533373437343534; QUAD $0x3134363436383830 // .asciz 16, '4547473508864641' - 0x31, 0x38, 0x39, 0x35, 0x37, 0x35, 0x31, 0x39, 0x35, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, //0x00012e9c QUAD $0x3931353735393831; QUAD $0x0000003532313335 // .asciz 16, '1895751953125\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012e64 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x10, 0x00, 0x00, 0x00, //0x00012e68 .long 16 + 0x31, 0x31, 0x31, 0x30, 0x32, 0x32, 0x33, 0x30, 0x32, 0x34, 0x36, 0x32, 0x35, 0x31, 0x35, 0x36, //0x00012e6c QUAD $0x3033323230313131; QUAD $0x3635313532363432 // .asciz 16, '1110223024625156' + 0x35, 0x34, 0x30, 0x34, 0x32, 0x33, 0x36, 0x33, 0x31, 0x36, 0x36, 0x38, 0x30, 0x39, 0x30, 0x38, //0x00012e7c QUAD $0x3336333234303435; QUAD $0x3830393038363631 // .asciz 16, '5404236316680908' + 0x32, 0x30, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012e8c QUAD $0x0000353231333032; QUAD $0x0000000000000000 // .asciz 16, '203125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012e9c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012eac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012ebc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012ecc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012edc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00012eec LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0d, 0x00, 0x00, 0x00, //0x00012ef0 .long 13 - 0x32, 0x32, 0x37, 0x33, 0x37, 0x33, 0x36, 0x37, 0x35, 0x34, 0x34, 0x33, 0x32, 0x33, 0x32, 0x30, //0x00012ef4 QUAD $0x3736333733373232; QUAD $0x3032333233343435 // .asciz 16, '2273736754432320' - 0x35, 0x39, 0x34, 0x37, 0x38, 0x37, 0x35, 0x39, 0x37, 0x36, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, //0x00012f04 QUAD $0x3935373837343935; QUAD $0x0000353236353637 // .asciz 16, '59478759765625\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012ecc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x11, 0x00, 0x00, 0x00, //0x00012ed0 .long 17 + 0x35, 0x35, 0x35, 0x31, 0x31, 0x31, 0x35, 0x31, 0x32, 0x33, 0x31, 0x32, 0x35, 0x37, 0x38, 0x32, //0x00012ed4 QUAD $0x3135313131353535; QUAD $0x3238373532313332 // .asciz 16, '5551115123125782' + 0x37, 0x30, 0x32, 0x31, 0x31, 0x38, 0x31, 0x35, 0x38, 0x33, 0x34, 0x30, 0x34, 0x35, 0x34, 0x31, //0x00012ee4 QUAD $0x3531383131323037; QUAD $0x3134353430343338 // .asciz 16, '7021181583404541' + 0x30, 0x31, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012ef4 QUAD $0x0000353236353130; QUAD $0x0000000000000000 // .asciz 16, '015625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012f04 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012f14 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012f24 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012f34 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012f44 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00012f54 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0d, 0x00, 0x00, 0x00, //0x00012f58 .long 13 - 0x31, 0x31, 0x33, 0x36, 0x38, 0x36, 0x38, 0x33, 0x37, 0x37, 0x32, 0x31, 0x36, 0x31, 0x36, 0x30, //0x00012f5c QUAD $0x3338363836333131; QUAD $0x3036313631323737 // .asciz 16, '1136868377216160' - 0x32, 0x39, 0x37, 0x33, 0x39, 0x33, 0x37, 0x39, 0x38, 0x38, 0x32, 0x38, 0x31, 0x32, 0x35, 0x00, //0x00012f6c QUAD $0x3937333933373932; QUAD $0x0035323138323838 // .asciz 16, '297393798828125\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012f34 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x11, 0x00, 0x00, 0x00, //0x00012f38 .long 17 + 0x32, 0x37, 0x37, 0x35, 0x35, 0x35, 0x37, 0x35, 0x36, 0x31, 0x35, 0x36, 0x32, 0x38, 0x39, 0x31, //0x00012f3c QUAD $0x3537353535373732; QUAD $0x3139383236353136 // .asciz 16, '2775557561562891' + 0x33, 0x35, 0x31, 0x30, 0x35, 0x39, 0x30, 0x37, 0x39, 0x31, 0x37, 0x30, 0x32, 0x32, 0x37, 0x30, //0x00012f4c QUAD $0x3730393530313533; QUAD $0x3037323230373139 // .asciz 16, '3510590791702270' + 0x35, 0x30, 0x37, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012f5c QUAD $0x0035323138373035; QUAD $0x0000000000000000 // .asciz 16, '5078125\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012f6c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012f7c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012f8c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012f9c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012fac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00012fbc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0e, 0x00, 0x00, 0x00, //0x00012fc0 .long 14 - 0x35, 0x36, 0x38, 0x34, 0x33, 0x34, 0x31, 0x38, 0x38, 0x36, 0x30, 0x38, 0x30, 0x38, 0x30, 0x31, //0x00012fc4 QUAD $0x3831343334383635; QUAD $0x3130383038303638 // .asciz 16, '5684341886080801' - 0x34, 0x38, 0x36, 0x39, 0x36, 0x38, 0x39, 0x39, 0x34, 0x31, 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, //0x00012fd4 QUAD $0x3939383639363834; QUAD $0x0035323630343134 // .asciz 16, '486968994140625\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012f9c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x11, 0x00, 0x00, 0x00, //0x00012fa0 .long 17 + 0x31, 0x33, 0x38, 0x37, 0x37, 0x37, 0x38, 0x37, 0x38, 0x30, 0x37, 0x38, 0x31, 0x34, 0x34, 0x35, //0x00012fa4 QUAD $0x3738373737383331; QUAD $0x3534343138373038 // .asciz 16, '1387778780781445' + 0x36, 0x37, 0x35, 0x35, 0x32, 0x39, 0x35, 0x33, 0x39, 0x35, 0x38, 0x35, 0x31, 0x31, 0x33, 0x35, //0x00012fb4 QUAD $0x3335393235353736; QUAD $0x3533313135383539 // .asciz 16, '6755295395851135' + 0x32, 0x35, 0x33, 0x39, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012fc4 QUAD $0x3532363039333532; QUAD $0x0000000000000000 // .asciz 16, '25390625\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012fd4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012fe4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012ff4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013004 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013014 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00013024 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0e, 0x00, 0x00, 0x00, //0x00013028 .long 14 - 0x32, 0x38, 0x34, 0x32, 0x31, 0x37, 0x30, 0x39, 0x34, 0x33, 0x30, 0x34, 0x30, 0x34, 0x30, 0x30, //0x0001302c QUAD $0x3930373132343832; QUAD $0x3030343034303334 // .asciz 16, '2842170943040400' - 0x37, 0x34, 0x33, 0x34, 0x38, 0x34, 0x34, 0x39, 0x37, 0x30, 0x37, 0x30, 0x33, 0x31, 0x32, 0x35, //0x0001303c QUAD $0x3934343834333437; QUAD $0x3532313330373037 // .asciz 16, '7434844970703125' + 0x00, 0x00, 0x00, 0x00, //0x00013004 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x12, 0x00, 0x00, 0x00, //0x00013008 .long 18 + 0x36, 0x39, 0x33, 0x38, 0x38, 0x39, 0x33, 0x39, 0x30, 0x33, 0x39, 0x30, 0x37, 0x32, 0x32, 0x38, //0x0001300c QUAD $0x3933393838333936; QUAD $0x3832323730393330 // .asciz 16, '6938893903907228' + 0x33, 0x37, 0x37, 0x36, 0x34, 0x37, 0x36, 0x39, 0x37, 0x39, 0x32, 0x35, 0x35, 0x36, 0x37, 0x36, //0x0001301c QUAD $0x3936373436373733; QUAD $0x3637363535323937 // .asciz 16, '3776476979255676' + 0x32, 0x36, 0x39, 0x35, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001302c QUAD $0x3532313335393632; QUAD $0x0000000000000000 // .asciz 16, '26953125\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001303c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001304c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001305c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001306c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001307c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x0001308c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0e, 0x00, 0x00, 0x00, //0x00013090 .long 14 - 0x31, 0x34, 0x32, 0x31, 0x30, 0x38, 0x35, 0x34, 0x37, 0x31, 0x35, 0x32, 0x30, 0x32, 0x30, 0x30, //0x00013094 QUAD $0x3435383031323431; QUAD $0x3030323032353137 // .asciz 16, '1421085471520200' - 0x33, 0x37, 0x31, 0x37, 0x34, 0x32, 0x32, 0x34, 0x38, 0x35, 0x33, 0x35, 0x31, 0x35, 0x36, 0x32, //0x000130a4 QUAD $0x3432323437313733; QUAD $0x3236353135333538 // .asciz 16, '3717422485351562' - 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000130b4 QUAD $0x0000000000000035; QUAD $0x0000000000000000 // .asciz 16, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0001306c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x12, 0x00, 0x00, 0x00, //0x00013070 .long 18 + 0x33, 0x34, 0x36, 0x39, 0x34, 0x34, 0x36, 0x39, 0x35, 0x31, 0x39, 0x35, 0x33, 0x36, 0x31, 0x34, //0x00013074 QUAD $0x3936343439363433; QUAD $0x3431363335393135 // .asciz 16, '3469446951953614' + 0x31, 0x38, 0x38, 0x38, 0x32, 0x33, 0x38, 0x34, 0x38, 0x39, 0x36, 0x32, 0x37, 0x38, 0x33, 0x38, //0x00013084 QUAD $0x3438333238383831; QUAD $0x3833383732363938 // .asciz 16, '1888238489627838' + 0x31, 0x33, 0x34, 0x37, 0x36, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013094 QUAD $0x3236353637343331; QUAD $0x0000000000000035 // .asciz 16, '134765625\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000130a4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000130b4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000130c4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000130d4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000130e4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x000130f4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0f, 0x00, 0x00, 0x00, //0x000130f8 .long 15 - 0x37, 0x31, 0x30, 0x35, 0x34, 0x32, 0x37, 0x33, 0x35, 0x37, 0x36, 0x30, 0x31, 0x30, 0x30, 0x31, //0x000130fc QUAD $0x3337323435303137; QUAD $0x3130303130363735 // .asciz 16, '7105427357601001' - 0x38, 0x35, 0x38, 0x37, 0x31, 0x31, 0x32, 0x34, 0x32, 0x36, 0x37, 0x35, 0x37, 0x38, 0x31, 0x32, //0x0001310c QUAD $0x3432313137383538; QUAD $0x3231383735373632 // .asciz 16, '8587112426757812' - 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001311c QUAD $0x0000000000000035; QUAD $0x0000000000000000 // .asciz 16, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000130d4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x12, 0x00, 0x00, 0x00, //0x000130d8 .long 18 + 0x31, 0x37, 0x33, 0x34, 0x37, 0x32, 0x33, 0x34, 0x37, 0x35, 0x39, 0x37, 0x36, 0x38, 0x30, 0x37, //0x000130dc QUAD $0x3433323734333731; QUAD $0x3730383637393537 // .asciz 16, '1734723475976807' + 0x30, 0x39, 0x34, 0x34, 0x31, 0x31, 0x39, 0x32, 0x34, 0x34, 0x38, 0x31, 0x33, 0x39, 0x31, 0x39, //0x000130ec QUAD $0x3239313134343930; QUAD $0x3931393331383434 // .asciz 16, '0944119244813919' + 0x30, 0x36, 0x37, 0x33, 0x38, 0x32, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000130fc QUAD $0x3138323833373630; QUAD $0x0000000000003532 // .asciz 16, '0673828125\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001310c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001311c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001312c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001313c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001314c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x0001315c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0f, 0x00, 0x00, 0x00, //0x00013160 .long 15 - 0x33, 0x35, 0x35, 0x32, 0x37, 0x31, 0x33, 0x36, 0x37, 0x38, 0x38, 0x30, 0x30, 0x35, 0x30, 0x30, //0x00013164 QUAD $0x3633313732353533; QUAD $0x3030353030383837 // .asciz 16, '3552713678800500' - 0x39, 0x32, 0x39, 0x33, 0x35, 0x35, 0x36, 0x32, 0x31, 0x33, 0x33, 0x37, 0x38, 0x39, 0x30, 0x36, //0x00013174 QUAD $0x3236353533393239; QUAD $0x3630393837333331 // .asciz 16, '9293556213378906' - 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013184 QUAD $0x0000000000003532; QUAD $0x0000000000000000 // .asciz 16, '25\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0001313c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x13, 0x00, 0x00, 0x00, //0x00013140 .long 19 + 0x38, 0x36, 0x37, 0x33, 0x36, 0x31, 0x37, 0x33, 0x37, 0x39, 0x38, 0x38, 0x34, 0x30, 0x33, 0x35, //0x00013144 QUAD $0x3337313633373638; QUAD $0x3533303438383937 // .asciz 16, '8673617379884035' + 0x34, 0x37, 0x32, 0x30, 0x35, 0x39, 0x36, 0x32, 0x32, 0x34, 0x30, 0x36, 0x39, 0x35, 0x39, 0x35, //0x00013154 QUAD $0x3236393530323734; QUAD $0x3539353936303432 // .asciz 16, '4720596224069595' + 0x33, 0x33, 0x36, 0x39, 0x31, 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013164 QUAD $0x3630343139363333; QUAD $0x0000000000003532 // .asciz 16, '3369140625\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013174 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013184 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013194 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000131a4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000131b4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x000131c4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0f, 0x00, 0x00, 0x00, //0x000131c8 .long 15 - 0x31, 0x37, 0x37, 0x36, 0x33, 0x35, 0x36, 0x38, 0x33, 0x39, 0x34, 0x30, 0x30, 0x32, 0x35, 0x30, //0x000131cc QUAD $0x3836353336373731; QUAD $0x3035323030343933 // .asciz 16, '1776356839400250' - 0x34, 0x36, 0x34, 0x36, 0x37, 0x37, 0x38, 0x31, 0x30, 0x36, 0x36, 0x38, 0x39, 0x34, 0x35, 0x33, //0x000131dc QUAD $0x3138373736343634; QUAD $0x3335343938363630 // .asciz 16, '4646778106689453' - 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000131ec QUAD $0x0000000000353231; QUAD $0x0000000000000000 // .asciz 16, '125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000131fc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001320c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001321c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x0001322c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x10, 0x00, 0x00, 0x00, //0x00013230 .long 16 - 0x38, 0x38, 0x38, 0x31, 0x37, 0x38, 0x34, 0x31, 0x39, 0x37, 0x30, 0x30, 0x31, 0x32, 0x35, 0x32, //0x00013234 QUAD $0x3134383731383838; QUAD $0x3235323130303739 // .asciz 16, '8881784197001252' - 0x33, 0x32, 0x33, 0x33, 0x38, 0x39, 0x30, 0x35, 0x33, 0x33, 0x34, 0x34, 0x37, 0x32, 0x36, 0x35, //0x00013244 QUAD $0x3530393833333233; QUAD $0x3536323734343333 // .asciz 16, '3233890533447265' - 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013254 QUAD $0x0000000000353236; QUAD $0x0000000000000000 // .asciz 16, '625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013264 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013274 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013284 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00013294 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x10, 0x00, 0x00, 0x00, //0x00013298 .long 16 - 0x34, 0x34, 0x34, 0x30, 0x38, 0x39, 0x32, 0x30, 0x39, 0x38, 0x35, 0x30, 0x30, 0x36, 0x32, 0x36, //0x0001329c QUAD $0x3032393830343434; QUAD $0x3632363030353839 // .asciz 16, '4440892098500626' - 0x31, 0x36, 0x31, 0x36, 0x39, 0x34, 0x35, 0x32, 0x36, 0x36, 0x37, 0x32, 0x33, 0x36, 0x33, 0x32, //0x000132ac QUAD $0x3235343936313631; QUAD $0x3233363332373636 // .asciz 16, '1616945266723632' - 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000132bc QUAD $0x0000000035323138; QUAD $0x0000000000000000 // .asciz 16, '8125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000132cc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000132dc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000132ec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x000132fc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x10, 0x00, 0x00, 0x00, //0x00013300 .long 16 - 0x32, 0x32, 0x32, 0x30, 0x34, 0x34, 0x36, 0x30, 0x34, 0x39, 0x32, 0x35, 0x30, 0x33, 0x31, 0x33, //0x00013304 QUAD $0x3036343430323232; QUAD $0x3331333035323934 // .asciz 16, '2220446049250313' - 0x30, 0x38, 0x30, 0x38, 0x34, 0x37, 0x32, 0x36, 0x33, 0x33, 0x33, 0x36, 0x31, 0x38, 0x31, 0x36, //0x00013314 QUAD $0x3632373438303830; QUAD $0x3631383136333333 // .asciz 16, '0808472633361816' - 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013324 QUAD $0x0000003532363034; QUAD $0x0000000000000000 // .asciz 16, '40625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013334 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013344 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013354 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00013364 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x10, 0x00, 0x00, 0x00, //0x00013368 .long 16 - 0x31, 0x31, 0x31, 0x30, 0x32, 0x32, 0x33, 0x30, 0x32, 0x34, 0x36, 0x32, 0x35, 0x31, 0x35, 0x36, //0x0001336c QUAD $0x3033323230313131; QUAD $0x3635313532363432 // .asciz 16, '1110223024625156' - 0x35, 0x34, 0x30, 0x34, 0x32, 0x33, 0x36, 0x33, 0x31, 0x36, 0x36, 0x38, 0x30, 0x39, 0x30, 0x38, //0x0001337c QUAD $0x3336333234303435; QUAD $0x3830393038363631 // .asciz 16, '5404236316680908' - 0x32, 0x30, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001338c QUAD $0x0000353231333032; QUAD $0x0000000000000000 // .asciz 16, '203125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001339c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000133ac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000133bc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x000133cc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x11, 0x00, 0x00, 0x00, //0x000133d0 .long 17 - 0x35, 0x35, 0x35, 0x31, 0x31, 0x31, 0x35, 0x31, 0x32, 0x33, 0x31, 0x32, 0x35, 0x37, 0x38, 0x32, //0x000133d4 QUAD $0x3135313131353535; QUAD $0x3238373532313332 // .asciz 16, '5551115123125782' - 0x37, 0x30, 0x32, 0x31, 0x31, 0x38, 0x31, 0x35, 0x38, 0x33, 0x34, 0x30, 0x34, 0x35, 0x34, 0x31, //0x000133e4 QUAD $0x3531383131323037; QUAD $0x3134353430343338 // .asciz 16, '7021181583404541' - 0x30, 0x31, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000133f4 QUAD $0x0000353236353130; QUAD $0x0000000000000000 // .asciz 16, '015625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013404 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013414 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013424 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00013434 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x11, 0x00, 0x00, 0x00, //0x00013438 .long 17 - 0x32, 0x37, 0x37, 0x35, 0x35, 0x35, 0x37, 0x35, 0x36, 0x31, 0x35, 0x36, 0x32, 0x38, 0x39, 0x31, //0x0001343c QUAD $0x3537353535373732; QUAD $0x3139383236353136 // .asciz 16, '2775557561562891' - 0x33, 0x35, 0x31, 0x30, 0x35, 0x39, 0x30, 0x37, 0x39, 0x31, 0x37, 0x30, 0x32, 0x32, 0x37, 0x30, //0x0001344c QUAD $0x3730393530313533; QUAD $0x3037323230373139 // .asciz 16, '3510590791702270' - 0x35, 0x30, 0x37, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001345c QUAD $0x0035323138373035; QUAD $0x0000000000000000 // .asciz 16, '5078125\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001346c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001347c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001348c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x0001349c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x11, 0x00, 0x00, 0x00, //0x000134a0 .long 17 - 0x31, 0x33, 0x38, 0x37, 0x37, 0x37, 0x38, 0x37, 0x38, 0x30, 0x37, 0x38, 0x31, 0x34, 0x34, 0x35, //0x000134a4 QUAD $0x3738373737383331; QUAD $0x3534343138373038 // .asciz 16, '1387778780781445' - 0x36, 0x37, 0x35, 0x35, 0x32, 0x39, 0x35, 0x33, 0x39, 0x35, 0x38, 0x35, 0x31, 0x31, 0x33, 0x35, //0x000134b4 QUAD $0x3335393235353736; QUAD $0x3533313135383539 // .asciz 16, '6755295395851135' - 0x32, 0x35, 0x33, 0x39, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000134c4 QUAD $0x3532363039333532; QUAD $0x0000000000000000 // .asciz 16, '25390625\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000134d4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000134e4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000134f4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00013504 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x12, 0x00, 0x00, 0x00, //0x00013508 .long 18 - 0x36, 0x39, 0x33, 0x38, 0x38, 0x39, 0x33, 0x39, 0x30, 0x33, 0x39, 0x30, 0x37, 0x32, 0x32, 0x38, //0x0001350c QUAD $0x3933393838333936; QUAD $0x3832323730393330 // .asciz 16, '6938893903907228' - 0x33, 0x37, 0x37, 0x36, 0x34, 0x37, 0x36, 0x39, 0x37, 0x39, 0x32, 0x35, 0x35, 0x36, 0x37, 0x36, //0x0001351c QUAD $0x3936373436373733; QUAD $0x3637363535323937 // .asciz 16, '3776476979255676' - 0x32, 0x36, 0x39, 0x35, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001352c QUAD $0x3532313335393632; QUAD $0x0000000000000000 // .asciz 16, '26953125\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001353c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001354c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001355c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x0001356c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x12, 0x00, 0x00, 0x00, //0x00013570 .long 18 - 0x33, 0x34, 0x36, 0x39, 0x34, 0x34, 0x36, 0x39, 0x35, 0x31, 0x39, 0x35, 0x33, 0x36, 0x31, 0x34, //0x00013574 QUAD $0x3936343439363433; QUAD $0x3431363335393135 // .asciz 16, '3469446951953614' - 0x31, 0x38, 0x38, 0x38, 0x32, 0x33, 0x38, 0x34, 0x38, 0x39, 0x36, 0x32, 0x37, 0x38, 0x33, 0x38, //0x00013584 QUAD $0x3438333238383831; QUAD $0x3833383732363938 // .asciz 16, '1888238489627838' - 0x31, 0x33, 0x34, 0x37, 0x36, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013594 QUAD $0x3236353637343331; QUAD $0x0000000000000035 // .asciz 16, '134765625\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000135a4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000135b4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000135c4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x000135d4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x12, 0x00, 0x00, 0x00, //0x000135d8 .long 18 - 0x31, 0x37, 0x33, 0x34, 0x37, 0x32, 0x33, 0x34, 0x37, 0x35, 0x39, 0x37, 0x36, 0x38, 0x30, 0x37, //0x000135dc QUAD $0x3433323734333731; QUAD $0x3730383637393537 // .asciz 16, '1734723475976807' - 0x30, 0x39, 0x34, 0x34, 0x31, 0x31, 0x39, 0x32, 0x34, 0x34, 0x38, 0x31, 0x33, 0x39, 0x31, 0x39, //0x000135ec QUAD $0x3239313134343930; QUAD $0x3931393331383434 // .asciz 16, '0944119244813919' - 0x30, 0x36, 0x37, 0x33, 0x38, 0x32, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000135fc QUAD $0x3138323833373630; QUAD $0x0000000000003532 // .asciz 16, '0673828125\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001360c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001361c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001362c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x0001363c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x13, 0x00, 0x00, 0x00, //0x00013640 .long 19 - 0x38, 0x36, 0x37, 0x33, 0x36, 0x31, 0x37, 0x33, 0x37, 0x39, 0x38, 0x38, 0x34, 0x30, 0x33, 0x35, //0x00013644 QUAD $0x3337313633373638; QUAD $0x3533303438383937 // .asciz 16, '8673617379884035' - 0x34, 0x37, 0x32, 0x30, 0x35, 0x39, 0x36, 0x32, 0x32, 0x34, 0x30, 0x36, 0x39, 0x35, 0x39, 0x35, //0x00013654 QUAD $0x3236393530323734; QUAD $0x3539353936303432 // .asciz 16, '4720596224069595' - 0x33, 0x33, 0x36, 0x39, 0x31, 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013664 QUAD $0x3630343139363333; QUAD $0x0000000000003532 // .asciz 16, '3369140625\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013674 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013684 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013694 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x000136a4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000136a8 .p2align 4, 0x00 - //0x000136b0 _P10_TAB - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x3f, //0x000136b0 .quad 0x3ff0000000000000 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x40, //0x000136b8 .quad 0x4024000000000000 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x59, 0x40, //0x000136c0 .quad 0x4059000000000000 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x8f, 0x40, //0x000136c8 .quad 0x408f400000000000 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0xc3, 0x40, //0x000136d0 .quad 0x40c3880000000000 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x6a, 0xf8, 0x40, //0x000136d8 .quad 0x40f86a0000000000 - 0x00, 0x00, 0x00, 0x00, 0x80, 0x84, 0x2e, 0x41, //0x000136e0 .quad 0x412e848000000000 - 0x00, 0x00, 0x00, 0x00, 0xd0, 0x12, 0x63, 0x41, //0x000136e8 .quad 0x416312d000000000 - 0x00, 0x00, 0x00, 0x00, 0x84, 0xd7, 0x97, 0x41, //0x000136f0 .quad 0x4197d78400000000 - 0x00, 0x00, 0x00, 0x00, 0x65, 0xcd, 0xcd, 0x41, //0x000136f8 .quad 0x41cdcd6500000000 - 0x00, 0x00, 0x00, 0x20, 0x5f, 0xa0, 0x02, 0x42, //0x00013700 .quad 0x4202a05f20000000 - 0x00, 0x00, 0x00, 0xe8, 0x76, 0x48, 0x37, 0x42, //0x00013708 .quad 0x42374876e8000000 - 0x00, 0x00, 0x00, 0xa2, 0x94, 0x1a, 0x6d, 0x42, //0x00013710 .quad 0x426d1a94a2000000 - 0x00, 0x00, 0x40, 0xe5, 0x9c, 0x30, 0xa2, 0x42, //0x00013718 .quad 0x42a2309ce5400000 - 0x00, 0x00, 0x90, 0x1e, 0xc4, 0xbc, 0xd6, 0x42, //0x00013720 .quad 0x42d6bcc41e900000 - 0x00, 0x00, 0x34, 0x26, 0xf5, 0x6b, 0x0c, 0x43, //0x00013728 .quad 0x430c6bf526340000 - 0x00, 0x80, 0xe0, 0x37, 0x79, 0xc3, 0x41, 0x43, //0x00013730 .quad 0x4341c37937e08000 - 0x00, 0xa0, 0xd8, 0x85, 0x57, 0x34, 0x76, 0x43, //0x00013738 .quad 0x4376345785d8a000 - 0x00, 0xc8, 0x4e, 0x67, 0x6d, 0xc1, 0xab, 0x43, //0x00013740 .quad 0x43abc16d674ec800 - 0x00, 0x3d, 0x91, 0x60, 0xe4, 0x58, 0xe1, 0x43, //0x00013748 .quad 0x43e158e460913d00 - 0x40, 0x8c, 0xb5, 0x78, 0x1d, 0xaf, 0x15, 0x44, //0x00013750 .quad 0x4415af1d78b58c40 - 0x50, 0xef, 0xe2, 0xd6, 0xe4, 0x1a, 0x4b, 0x44, //0x00013758 .quad 0x444b1ae4d6e2ef50 - 0x92, 0xd5, 0x4d, 0x06, 0xcf, 0xf0, 0x80, 0x44, //0x00013760 .quad 0x4480f0cf064dd592 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013768 .p2align 4, 0x00 - //0x00013770 _pow10_ceil_sig_f32.g - 0xf5, 0xfc, 0x43, 0x4b, 0x2c, 0xb3, 0xce, 0x81, //0x00013770 .quad -9093133594791772939 - 0x32, 0xfc, 0x14, 0x5e, 0xf7, 0x5f, 0x42, 0xa2, //0x00013778 .quad -6754730975062328270 - 0x3f, 0x3b, 0x9a, 0x35, 0xf5, 0xf7, 0xd2, 0xca, //0x00013780 .quad -3831727700400522433 - 0x0e, 0xca, 0x00, 0x83, 0xf2, 0xb5, 0x87, 0xfd, //0x00013788 .quad -177973607073265138 - 0x49, 0x7e, 0xe0, 0x91, 0xb7, 0xd1, 0x74, 0x9e, //0x00013790 .quad -7028762532061872567 - 0xdb, 0x9d, 0x58, 0x76, 0x25, 0x06, 0x12, 0xc6, //0x00013798 .quad -4174267146649952805 - 0x52, 0xc5, 0xee, 0xd3, 0xae, 0x87, 0x96, 0xf7, //0x000137a0 .quad -606147914885053102 - 0x53, 0x3b, 0x75, 0x44, 0xcd, 0x14, 0xbe, 0x9a, //0x000137a8 .quad -7296371474444240045 - 0x28, 0x8a, 0x92, 0x95, 0x00, 0x9a, 0x6d, 0xc1, //0x000137b0 .quad -4508778324627912152 - 0xb2, 0x2c, 0xf7, 0xba, 0x80, 0x00, 0xc9, 0xf1, //0x000137b8 .quad -1024286887357502286 - 0xef, 0x7b, 0xda, 0x74, 0x50, 0xa0, 0x1d, 0x97, //0x000137c0 .quad -7557708332239520785 - 0xeb, 0x1a, 0x11, 0x92, 0x64, 0x08, 0xe5, 0xbc, //0x000137c8 .quad -4835449396872013077 - 0xa6, 0x61, 0x95, 0xb6, 0x7d, 0x4a, 0x1e, 0xec, //0x000137d0 .quad -1432625727662628442 - 0x08, 0x5d, 0x1d, 0x92, 0x8e, 0xee, 0x92, 0x93, //0x000137d8 .quad -7812920107430224632 - 0x4a, 0xb4, 0xa4, 0x36, 0x32, 0xaa, 0x77, 0xb8, //0x000137e0 .quad -5154464115860392886 - 0x5c, 0xe1, 0x4d, 0xc4, 0xbe, 0x94, 0x95, 0xe6, //0x000137e8 .quad -1831394126398103204 - 0xda, 0xac, 0xb0, 0x3a, 0xf7, 0x7c, 0x1d, 0x90, //0x000137f0 .quad -8062150356639896358 - 0x10, 0xd8, 0x5c, 0x09, 0x35, 0xdc, 0x24, 0xb4, //0x000137f8 .quad -5466001927372482544 - 0x14, 0x0e, 0xb4, 0x4b, 0x42, 0x13, 0x2e, 0xe1, //0x00013800 .quad -2220816390788215276 - 0xcc, 0x88, 0x50, 0x6f, 0x09, 0xcc, 0xbc, 0x8c, //0x00013808 .quad -8305539271883716404 - 0xff, 0xaa, 0x24, 0xcb, 0x0b, 0xff, 0xeb, 0xaf, //0x00013810 .quad -5770238071427257601 - 0xbf, 0xd5, 0xed, 0xbd, 0xce, 0xfe, 0xe6, 0xdb, //0x00013818 .quad -2601111570856684097 - 0x98, 0xa5, 0xb4, 0x36, 0x41, 0x5f, 0x70, 0x89, //0x00013820 .quad -8543223759426509416 - 0xfd, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x00013828 .quad -6067343680855748867 - 0xbd, 0x42, 0x7a, 0xe5, 0xd5, 0x94, 0xbf, 0xd6, //0x00013830 .quad -2972493582642298179 - 0xb6, 0x69, 0x6c, 0xaf, 0x05, 0xbd, 0x37, 0x86, //0x00013838 .quad -8775337516792518218 - 0x24, 0x84, 0x47, 0x1b, 0x47, 0xac, 0xc5, 0xa7, //0x00013840 .quad -6357485877563259868 - 0x2c, 0x65, 0x19, 0xe2, 0x58, 0x17, 0xb7, 0xd1, //0x00013848 .quad -3335171328526686932 - 0x3c, 0xdf, 0x4f, 0x8d, 0x97, 0x6e, 0x12, 0x83, //0x00013850 .quad -9002011107970261188 - 0x0b, 0xd7, 0xa3, 0x70, 0x3d, 0x0a, 0xd7, 0xa3, //0x00013858 .quad -6640827866535438581 - 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x00013860 .quad -3689348814741910323 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x00013868 .quad -9223372036854775808 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, //0x00013870 .quad -6917529027641081856 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc8, //0x00013878 .quad -4035225266123964416 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, //0x00013880 .quad -432345564227567616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x9c, //0x00013888 .quad -7187745005283311616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0xc3, //0x00013890 .quad -4372995238176751616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0xf4, //0x00013898 .quad -854558029293551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x96, 0x98, //0x000138a0 .quad -7451627795949551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xbc, 0xbe, //0x000138a8 .quad -4702848726509551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x6b, 0xee, //0x000138b0 .quad -1266874889709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0xf9, 0x02, 0x95, //0x000138b8 .quad -7709325833709551616 - 0x00, 0x00, 0x00, 0x00, 0x40, 0xb7, 0x43, 0xba, //0x000138c0 .quad -5024971273709551616 - 0x00, 0x00, 0x00, 0x00, 0x10, 0xa5, 0xd4, 0xe8, //0x000138c8 .quad -1669528073709551616 - 0x00, 0x00, 0x00, 0x00, 0x2a, 0xe7, 0x84, 0x91, //0x000138d0 .quad -7960984073709551616 - 0x00, 0x00, 0x00, 0x80, 0xf4, 0x20, 0xe6, 0xb5, //0x000138d8 .quad -5339544073709551616 - 0x00, 0x00, 0x00, 0xa0, 0x31, 0xa9, 0x5f, 0xe3, //0x000138e0 .quad -2062744073709551616 - 0x00, 0x00, 0x00, 0x04, 0xbf, 0xc9, 0x1b, 0x8e, //0x000138e8 .quad -8206744073709551616 - 0x00, 0x00, 0x00, 0xc5, 0x2e, 0xbc, 0xa2, 0xb1, //0x000138f0 .quad -5646744073709551616 - 0x00, 0x00, 0x40, 0x76, 0x3a, 0x6b, 0x0b, 0xde, //0x000138f8 .quad -2446744073709551616 - 0x00, 0x00, 0xe8, 0x89, 0x04, 0x23, 0xc7, 0x8a, //0x00013900 .quad -8446744073709551616 - 0x00, 0x00, 0x62, 0xac, 0xc5, 0xeb, 0x78, 0xad, //0x00013908 .quad -5946744073709551616 - 0x00, 0x80, 0x7a, 0x17, 0xb7, 0x26, 0xd7, 0xd8, //0x00013910 .quad -2821744073709551616 - 0x00, 0x90, 0xac, 0x6e, 0x32, 0x78, 0x86, 0x87, //0x00013918 .quad -8681119073709551616 - 0x00, 0xb4, 0x57, 0x0a, 0x3f, 0x16, 0x68, 0xa9, //0x00013920 .quad -6239712823709551616 - 0x00, 0xa1, 0xed, 0xcc, 0xce, 0x1b, 0xc2, 0xd3, //0x00013928 .quad -3187955011209551616 - 0xa0, 0x84, 0x14, 0x40, 0x61, 0x51, 0x59, 0x84, //0x00013930 .quad -8910000909647051616 - 0xc8, 0xa5, 0x19, 0x90, 0xb9, 0xa5, 0x6f, 0xa5, //0x00013938 .quad -6525815118631426616 - 0x3a, 0x0f, 0x20, 0xf4, 0x27, 0x8f, 0xcb, 0xce, //0x00013940 .quad -3545582879861895366 - 0x85, 0x09, 0x94, 0xf8, 0x78, 0x39, 0x3f, 0x81, //0x00013948 .quad -9133518327554766459 - 0xe6, 0x0b, 0xb9, 0x36, 0xd7, 0x07, 0x8f, 0xa1, //0x00013950 .quad -6805211891016070170 - 0xdf, 0x4e, 0x67, 0x04, 0xcd, 0xc9, 0xf2, 0xc9, //0x00013958 .quad -3894828845342699809 - 0x97, 0x22, 0x81, 0x45, 0x40, 0x7c, 0x6f, 0xfc, //0x00013960 .quad -256850038250986857 - 0x9e, 0xb5, 0x70, 0x2b, 0xa8, 0xad, 0xc5, 0x9d, //0x00013968 .quad -7078060301547948642 - 0x06, 0xe3, 0x4c, 0x36, 0x12, 0x19, 0x37, 0xc5, //0x00013970 .quad -4235889358507547898 - 0xc7, 0x1b, 0xe0, 0xc3, 0x56, 0xdf, 0x84, 0xf6, //0x00013978 .quad -683175679707046969 - 0x5d, 0x11, 0x6c, 0x3a, 0x96, 0x0b, 0x13, 0x9a, //0x00013980 .quad -7344513827457986211 - 0xb4, 0x15, 0x07, 0xc9, 0x7b, 0xce, 0x97, 0xc0, //0x00013988 .quad -4568956265895094860 - 0x21, 0xdb, 0x48, 0xbb, 0x1a, 0xc2, 0xbd, 0xf0, //0x00013990 .quad -1099509313941480671 - 0xf5, 0x88, 0x0d, 0xb5, 0x50, 0x99, 0x76, 0x96, //0x00013998 .quad -7604722348854507275 - 0x32, 0xeb, 0x50, 0xe2, 0xa4, 0x3f, 0x14, 0xbc, //0x000139a0 .quad -4894216917640746190 - 0xfe, 0x25, 0xe5, 0x1a, 0x8e, 0x4f, 0x19, 0xeb, //0x000139a8 .quad -1506085128623544834 - 0xbf, 0x37, 0xcf, 0xd0, 0xb8, 0xd1, 0xef, 0x92, //0x000139b0 .quad -7858832233030797377 - 0xae, 0x05, 0x03, 0x05, 0x27, 0xc6, 0xab, 0xb7, //0x000139b8 .quad -5211854272861108818 - 0x1a, 0xc7, 0x43, 0xc6, 0xb0, 0xb7, 0x96, 0xe5, //0x000139c0 .quad -1903131822648998118 - 0x70, 0x5c, 0xea, 0x7b, 0xce, 0x32, 0x7e, 0x8f, //0x000139c8 .quad -8106986416796705680 - 0x8c, 0xf3, 0xe4, 0x1a, 0x82, 0xbf, 0x5d, 0xb3, //0x000139d0 .quad -5522047002568494196 + 0x00, 0x00, 0x00, 0x00, //0x000131a4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000131a8 .p2align 4, 0x00 + //0x000131b0 _P10_TAB + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x3f, //0x000131b0 .quad 4607182418800017408 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x40, //0x000131b8 .quad 4621819117588971520 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x59, 0x40, //0x000131c0 .quad 4636737291354636288 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x8f, 0x40, //0x000131c8 .quad 4652007308841189376 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0xc3, 0x40, //0x000131d0 .quad 4666723172467343360 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x6a, 0xf8, 0x40, //0x000131d8 .quad 4681608360884174848 + 0x00, 0x00, 0x00, 0x00, 0x80, 0x84, 0x2e, 0x41, //0x000131e0 .quad 4696837146684686336 + 0x00, 0x00, 0x00, 0x00, 0xd0, 0x12, 0x63, 0x41, //0x000131e8 .quad 4711630319722168320 + 0x00, 0x00, 0x00, 0x00, 0x84, 0xd7, 0x97, 0x41, //0x000131f0 .quad 4726483295884279808 + 0x00, 0x00, 0x00, 0x00, 0x65, 0xcd, 0xcd, 0x41, //0x000131f8 .quad 4741671816366391296 + 0x00, 0x00, 0x00, 0x20, 0x5f, 0xa0, 0x02, 0x42, //0x00013200 .quad 4756540486875873280 + 0x00, 0x00, 0x00, 0xe8, 0x76, 0x48, 0x37, 0x42, //0x00013208 .quad 4771362005757984768 + 0x00, 0x00, 0x00, 0xa2, 0x94, 0x1a, 0x6d, 0x42, //0x00013210 .quad 4786511204640096256 + 0x00, 0x00, 0x40, 0xe5, 0x9c, 0x30, 0xa2, 0x42, //0x00013218 .quad 4801453603149578240 + 0x00, 0x00, 0x90, 0x1e, 0xc4, 0xbc, 0xd6, 0x42, //0x00013220 .quad 4816244402031689728 + 0x00, 0x00, 0x34, 0x26, 0xf5, 0x6b, 0x0c, 0x43, //0x00013228 .quad 4831355200913801216 + 0x00, 0x80, 0xe0, 0x37, 0x79, 0xc3, 0x41, 0x43, //0x00013230 .quad 4846369599423283200 + 0x00, 0xa0, 0xd8, 0x85, 0x57, 0x34, 0x76, 0x43, //0x00013238 .quad 4861130398305394688 + 0x00, 0xc8, 0x4e, 0x67, 0x6d, 0xc1, 0xab, 0x43, //0x00013240 .quad 4876203697187506176 + 0x00, 0x3d, 0x91, 0x60, 0xe4, 0x58, 0xe1, 0x43, //0x00013248 .quad 4891288408196988160 + 0x40, 0x8c, 0xb5, 0x78, 0x1d, 0xaf, 0x15, 0x44, //0x00013250 .quad 4906019910204099648 + 0x50, 0xef, 0xe2, 0xd6, 0xe4, 0x1a, 0x4b, 0x44, //0x00013258 .quad 4921056587992461136 + 0x92, 0xd5, 0x4d, 0x06, 0xcf, 0xf0, 0x80, 0x44, //0x00013260 .quad 4936209963552724370 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013268 .p2align 4, 0x00 + //0x00013270 _pow10_ceil_sig_f32.g + 0xf5, 0xfc, 0x43, 0x4b, 0x2c, 0xb3, 0xce, 0x81, //0x00013270 .quad -9093133594791772939 + 0x32, 0xfc, 0x14, 0x5e, 0xf7, 0x5f, 0x42, 0xa2, //0x00013278 .quad -6754730975062328270 + 0x3f, 0x3b, 0x9a, 0x35, 0xf5, 0xf7, 0xd2, 0xca, //0x00013280 .quad -3831727700400522433 + 0x0e, 0xca, 0x00, 0x83, 0xf2, 0xb5, 0x87, 0xfd, //0x00013288 .quad -177973607073265138 + 0x49, 0x7e, 0xe0, 0x91, 0xb7, 0xd1, 0x74, 0x9e, //0x00013290 .quad -7028762532061872567 + 0xdb, 0x9d, 0x58, 0x76, 0x25, 0x06, 0x12, 0xc6, //0x00013298 .quad -4174267146649952805 + 0x52, 0xc5, 0xee, 0xd3, 0xae, 0x87, 0x96, 0xf7, //0x000132a0 .quad -606147914885053102 + 0x53, 0x3b, 0x75, 0x44, 0xcd, 0x14, 0xbe, 0x9a, //0x000132a8 .quad -7296371474444240045 + 0x28, 0x8a, 0x92, 0x95, 0x00, 0x9a, 0x6d, 0xc1, //0x000132b0 .quad -4508778324627912152 + 0xb2, 0x2c, 0xf7, 0xba, 0x80, 0x00, 0xc9, 0xf1, //0x000132b8 .quad -1024286887357502286 + 0xef, 0x7b, 0xda, 0x74, 0x50, 0xa0, 0x1d, 0x97, //0x000132c0 .quad -7557708332239520785 + 0xeb, 0x1a, 0x11, 0x92, 0x64, 0x08, 0xe5, 0xbc, //0x000132c8 .quad -4835449396872013077 + 0xa6, 0x61, 0x95, 0xb6, 0x7d, 0x4a, 0x1e, 0xec, //0x000132d0 .quad -1432625727662628442 + 0x08, 0x5d, 0x1d, 0x92, 0x8e, 0xee, 0x92, 0x93, //0x000132d8 .quad -7812920107430224632 + 0x4a, 0xb4, 0xa4, 0x36, 0x32, 0xaa, 0x77, 0xb8, //0x000132e0 .quad -5154464115860392886 + 0x5c, 0xe1, 0x4d, 0xc4, 0xbe, 0x94, 0x95, 0xe6, //0x000132e8 .quad -1831394126398103204 + 0xda, 0xac, 0xb0, 0x3a, 0xf7, 0x7c, 0x1d, 0x90, //0x000132f0 .quad -8062150356639896358 + 0x10, 0xd8, 0x5c, 0x09, 0x35, 0xdc, 0x24, 0xb4, //0x000132f8 .quad -5466001927372482544 + 0x14, 0x0e, 0xb4, 0x4b, 0x42, 0x13, 0x2e, 0xe1, //0x00013300 .quad -2220816390788215276 + 0xcc, 0x88, 0x50, 0x6f, 0x09, 0xcc, 0xbc, 0x8c, //0x00013308 .quad -8305539271883716404 + 0xff, 0xaa, 0x24, 0xcb, 0x0b, 0xff, 0xeb, 0xaf, //0x00013310 .quad -5770238071427257601 + 0xbf, 0xd5, 0xed, 0xbd, 0xce, 0xfe, 0xe6, 0xdb, //0x00013318 .quad -2601111570856684097 + 0x98, 0xa5, 0xb4, 0x36, 0x41, 0x5f, 0x70, 0x89, //0x00013320 .quad -8543223759426509416 + 0xfd, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x00013328 .quad -6067343680855748867 + 0xbd, 0x42, 0x7a, 0xe5, 0xd5, 0x94, 0xbf, 0xd6, //0x00013330 .quad -2972493582642298179 + 0xb6, 0x69, 0x6c, 0xaf, 0x05, 0xbd, 0x37, 0x86, //0x00013338 .quad -8775337516792518218 + 0x24, 0x84, 0x47, 0x1b, 0x47, 0xac, 0xc5, 0xa7, //0x00013340 .quad -6357485877563259868 + 0x2c, 0x65, 0x19, 0xe2, 0x58, 0x17, 0xb7, 0xd1, //0x00013348 .quad -3335171328526686932 + 0x3c, 0xdf, 0x4f, 0x8d, 0x97, 0x6e, 0x12, 0x83, //0x00013350 .quad -9002011107970261188 + 0x0b, 0xd7, 0xa3, 0x70, 0x3d, 0x0a, 0xd7, 0xa3, //0x00013358 .quad -6640827866535438581 + 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x00013360 .quad -3689348814741910323 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x00013368 .quad -9223372036854775808 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, //0x00013370 .quad -6917529027641081856 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc8, //0x00013378 .quad -4035225266123964416 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, //0x00013380 .quad -432345564227567616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x9c, //0x00013388 .quad -7187745005283311616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0xc3, //0x00013390 .quad -4372995238176751616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0xf4, //0x00013398 .quad -854558029293551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x96, 0x98, //0x000133a0 .quad -7451627795949551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xbc, 0xbe, //0x000133a8 .quad -4702848726509551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x6b, 0xee, //0x000133b0 .quad -1266874889709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf9, 0x02, 0x95, //0x000133b8 .quad -7709325833709551616 + 0x00, 0x00, 0x00, 0x00, 0x40, 0xb7, 0x43, 0xba, //0x000133c0 .quad -5024971273709551616 + 0x00, 0x00, 0x00, 0x00, 0x10, 0xa5, 0xd4, 0xe8, //0x000133c8 .quad -1669528073709551616 + 0x00, 0x00, 0x00, 0x00, 0x2a, 0xe7, 0x84, 0x91, //0x000133d0 .quad -7960984073709551616 + 0x00, 0x00, 0x00, 0x80, 0xf4, 0x20, 0xe6, 0xb5, //0x000133d8 .quad -5339544073709551616 + 0x00, 0x00, 0x00, 0xa0, 0x31, 0xa9, 0x5f, 0xe3, //0x000133e0 .quad -2062744073709551616 + 0x00, 0x00, 0x00, 0x04, 0xbf, 0xc9, 0x1b, 0x8e, //0x000133e8 .quad -8206744073709551616 + 0x00, 0x00, 0x00, 0xc5, 0x2e, 0xbc, 0xa2, 0xb1, //0x000133f0 .quad -5646744073709551616 + 0x00, 0x00, 0x40, 0x76, 0x3a, 0x6b, 0x0b, 0xde, //0x000133f8 .quad -2446744073709551616 + 0x00, 0x00, 0xe8, 0x89, 0x04, 0x23, 0xc7, 0x8a, //0x00013400 .quad -8446744073709551616 + 0x00, 0x00, 0x62, 0xac, 0xc5, 0xeb, 0x78, 0xad, //0x00013408 .quad -5946744073709551616 + 0x00, 0x80, 0x7a, 0x17, 0xb7, 0x26, 0xd7, 0xd8, //0x00013410 .quad -2821744073709551616 + 0x00, 0x90, 0xac, 0x6e, 0x32, 0x78, 0x86, 0x87, //0x00013418 .quad -8681119073709551616 + 0x00, 0xb4, 0x57, 0x0a, 0x3f, 0x16, 0x68, 0xa9, //0x00013420 .quad -6239712823709551616 + 0x00, 0xa1, 0xed, 0xcc, 0xce, 0x1b, 0xc2, 0xd3, //0x00013428 .quad -3187955011209551616 + 0xa0, 0x84, 0x14, 0x40, 0x61, 0x51, 0x59, 0x84, //0x00013430 .quad -8910000909647051616 + 0xc8, 0xa5, 0x19, 0x90, 0xb9, 0xa5, 0x6f, 0xa5, //0x00013438 .quad -6525815118631426616 + 0x3a, 0x0f, 0x20, 0xf4, 0x27, 0x8f, 0xcb, 0xce, //0x00013440 .quad -3545582879861895366 + 0x85, 0x09, 0x94, 0xf8, 0x78, 0x39, 0x3f, 0x81, //0x00013448 .quad -9133518327554766459 + 0xe6, 0x0b, 0xb9, 0x36, 0xd7, 0x07, 0x8f, 0xa1, //0x00013450 .quad -6805211891016070170 + 0xdf, 0x4e, 0x67, 0x04, 0xcd, 0xc9, 0xf2, 0xc9, //0x00013458 .quad -3894828845342699809 + 0x97, 0x22, 0x81, 0x45, 0x40, 0x7c, 0x6f, 0xfc, //0x00013460 .quad -256850038250986857 + 0x9e, 0xb5, 0x70, 0x2b, 0xa8, 0xad, 0xc5, 0x9d, //0x00013468 .quad -7078060301547948642 + 0x06, 0xe3, 0x4c, 0x36, 0x12, 0x19, 0x37, 0xc5, //0x00013470 .quad -4235889358507547898 + 0xc7, 0x1b, 0xe0, 0xc3, 0x56, 0xdf, 0x84, 0xf6, //0x00013478 .quad -683175679707046969 + 0x5d, 0x11, 0x6c, 0x3a, 0x96, 0x0b, 0x13, 0x9a, //0x00013480 .quad -7344513827457986211 + 0xb4, 0x15, 0x07, 0xc9, 0x7b, 0xce, 0x97, 0xc0, //0x00013488 .quad -4568956265895094860 + 0x21, 0xdb, 0x48, 0xbb, 0x1a, 0xc2, 0xbd, 0xf0, //0x00013490 .quad -1099509313941480671 + 0xf5, 0x88, 0x0d, 0xb5, 0x50, 0x99, 0x76, 0x96, //0x00013498 .quad -7604722348854507275 + 0x32, 0xeb, 0x50, 0xe2, 0xa4, 0x3f, 0x14, 0xbc, //0x000134a0 .quad -4894216917640746190 + 0xfe, 0x25, 0xe5, 0x1a, 0x8e, 0x4f, 0x19, 0xeb, //0x000134a8 .quad -1506085128623544834 + 0xbf, 0x37, 0xcf, 0xd0, 0xb8, 0xd1, 0xef, 0x92, //0x000134b0 .quad -7858832233030797377 + 0xae, 0x05, 0x03, 0x05, 0x27, 0xc6, 0xab, 0xb7, //0x000134b8 .quad -5211854272861108818 + 0x1a, 0xc7, 0x43, 0xc6, 0xb0, 0xb7, 0x96, 0xe5, //0x000134c0 .quad -1903131822648998118 + 0x70, 0x5c, 0xea, 0x7b, 0xce, 0x32, 0x7e, 0x8f, //0x000134c8 .quad -8106986416796705680 + 0x8c, 0xf3, 0xe4, 0x1a, 0x82, 0xbf, 0x5d, 0xb3, //0x000134d0 .quad -5522047002568494196 } diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx2/native_amd64.go b/vendor/github.com/bytedance/sonic/internal/native/avx2/native_amd64.go index 1a4ea0ae3..b05a28ef2 100644 --- a/vendor/github.com/bytedance/sonic/internal/native/avx2/native_amd64.go +++ b/vendor/github.com/bytedance/sonic/internal/native/avx2/native_amd64.go @@ -1,3 +1,6 @@ +// +build amd64 + + // Code generated by Makefile, DO NOT EDIT. // Code generated by Makefile, DO NOT EDIT. @@ -71,8 +74,6 @@ var ( __validate_utf8 func(s unsafe.Pointer, p unsafe.Pointer, m unsafe.Pointer) (ret int) __validate_utf8_fast func(s unsafe.Pointer) (ret int) - - __fsm_exec func(m unsafe.Pointer, s unsafe.Pointer, p unsafe.Pointer, flags uint64) (ret int) ) //go:nosplit @@ -185,7 +186,3 @@ func validate_utf8_fast(s *string) (ret int) { return __validate_utf8_fast(rt.NoEscape(unsafe.Pointer(s))) } -//go:nosplit -func fsm_exec(m *types.StateMachine, s *string, p *int, flags uint64) (ret int) { - return __fsm_exec(rt.NoEscape(unsafe.Pointer(m)), rt.NoEscape(unsafe.Pointer(s)), rt.NoEscape(unsafe.Pointer(p)), flags) -} diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx2/native_subr_amd64.go b/vendor/github.com/bytedance/sonic/internal/native/avx2/native_subr_amd64.go index 577d30a3a..90f7be732 100644 --- a/vendor/github.com/bytedance/sonic/internal/native/avx2/native_subr_amd64.go +++ b/vendor/github.com/bytedance/sonic/internal/native/avx2/native_subr_amd64.go @@ -8,120 +8,114 @@ import ( ) const ( - _entry__f32toa = 34640 - _entry__f64toa = 368 - _entry__format_significand = 39440 - _entry__format_integer = 3616 - _entry__fsm_exec = 22128 - _entry__advance_ns = 17856 - _entry__advance_string = 18592 - _entry__advance_string_default = 41024 - _entry__do_skip_number = 24624 - _entry__get_by_path = 29616 - _entry__skip_one_fast = 26736 - _entry__unescape = 41824 - _entry__unhex16_is = 11376 - _entry__html_escape = 11712 - _entry__i64toa = 4048 - _entry__u64toa = 4320 + _entry__f32toa = 34656 + _entry__f64toa = 320 + _entry__format_significand = 38880 + _entry__format_integer = 3168 + _entry__get_by_path = 28896 + _entry__fsm_exec = 21072 + _entry__advance_ns = 16928 + _entry__advance_string = 17664 + _entry__advance_string_default = 40320 + _entry__do_skip_number = 23696 + _entry__skip_one_fast = 25968 + _entry__html_escape = 10560 + _entry__i64toa = 3600 + _entry__u64toa = 3712 _entry__lspace = 64 - _entry__quote = 5872 - _entry__skip_array = 22080 - _entry__skip_number = 26128 - _entry__skip_object = 24048 - _entry__skip_one = 26304 - _entry__unquote = 8816 - _entry__validate_one = 26368 - _entry__validate_utf8 = 30960 - _entry__validate_utf8_fast = 31920 - _entry__value = 16320 - _entry__vnumber = 19680 - _entry__atof_eisel_lemire64 = 13760 - _entry__atof_native = 15712 - _entry__decimal_to_f64 = 14240 - _entry__left_shift = 39920 - _entry__right_shift = 40464 - _entry__vsigned = 21328 - _entry__vstring = 18352 - _entry__vunsigned = 21696 + _entry__quote = 5104 + _entry__skip_array = 21024 + _entry__skip_number = 25392 + _entry__skip_object = 23088 + _entry__skip_one = 25552 + _entry__unquote = 7888 + _entry__validate_one = 25600 + _entry__validate_utf8 = 31072 + _entry__validate_utf8_fast = 32016 + _entry__value = 15376 + _entry__vnumber = 18800 + _entry__atof_eisel_lemire64 = 12624 + _entry__atof_native = 14768 + _entry__decimal_to_f64 = 13056 + _entry__right_shift = 39840 + _entry__left_shift = 39344 + _entry__vsigned = 20352 + _entry__vstring = 17424 + _entry__vunsigned = 20672 ) const ( - _stack__f32toa = 64 + _stack__f32toa = 48 _stack__f64toa = 80 _stack__format_significand = 24 _stack__format_integer = 16 - _stack__fsm_exec = 136 + _stack__get_by_path = 272 + _stack__fsm_exec = 144 _stack__advance_ns = 8 - _stack__advance_string = 48 + _stack__advance_string = 56 _stack__advance_string_default = 48 - _stack__do_skip_number = 40 - _stack__get_by_path = 304 + _stack__do_skip_number = 48 _stack__skip_one_fast = 184 - _stack__unescape = 64 - _stack__unhex16_is = 8 _stack__html_escape = 72 _stack__i64toa = 16 _stack__u64toa = 8 _stack__lspace = 8 - _stack__quote = 72 - _stack__skip_array = 144 - _stack__skip_number = 96 - _stack__skip_object = 144 - _stack__skip_one = 144 - _stack__unquote = 112 - _stack__validate_one = 144 + _stack__quote = 56 + _stack__skip_array = 152 + _stack__skip_number = 104 + _stack__skip_object = 152 + _stack__skip_one = 152 + _stack__unquote = 72 + _stack__validate_one = 152 _stack__validate_utf8 = 48 _stack__validate_utf8_fast = 176 - _stack__value = 352 - _stack__vnumber = 264 - _stack__atof_eisel_lemire64 = 40 - _stack__atof_native = 144 - _stack__decimal_to_f64 = 88 - _stack__left_shift = 32 - _stack__right_shift = 16 + _stack__value = 328 + _stack__vnumber = 240 + _stack__atof_eisel_lemire64 = 32 + _stack__atof_native = 136 + _stack__decimal_to_f64 = 80 + _stack__right_shift = 8 + _stack__left_shift = 24 _stack__vsigned = 16 - _stack__vstring = 104 - _stack__vunsigned = 24 + _stack__vstring = 112 + _stack__vunsigned = 8 ) const ( - _size__f32toa = 3792 - _size__f64toa = 3248 - _size__format_significand = 480 + _size__f32toa = 3392 + _size__f64toa = 2848 + _size__format_significand = 464 _size__format_integer = 432 - _size__fsm_exec = 1380 + _size__get_by_path = 2176 + _size__fsm_exec = 1468 _size__advance_ns = 496 - _size__advance_string = 1040 - _size__advance_string_default = 800 - _size__do_skip_number = 1300 - _size__get_by_path = 1344 - _size__skip_one_fast = 2360 - _size__unescape = 704 - _size__unhex16_is = 144 - _size__html_escape = 2048 - _size__i64toa = 272 - _size__u64toa = 1408 - _size__lspace = 256 - _size__quote = 2896 + _size__advance_string = 1088 + _size__advance_string_default = 768 + _size__do_skip_number = 1360 + _size__skip_one_fast = 2428 + _size__html_escape = 2064 + _size__i64toa = 48 + _size__u64toa = 1248 + _size__lspace = 224 + _size__quote = 2736 _size__skip_array = 48 _size__skip_number = 160 _size__skip_object = 48 _size__skip_one = 48 - _size__unquote = 2560 + _size__unquote = 2480 _size__validate_one = 64 - _size__validate_utf8 = 688 - _size__validate_utf8_fast = 2672 - _size__value = 992 - _size__vnumber = 1648 - _size__atof_eisel_lemire64 = 416 + _size__validate_utf8 = 672 + _size__validate_utf8_fast = 2608 + _size__value = 1000 + _size__vnumber = 1552 + _size__atof_eisel_lemire64 = 368 _size__atof_native = 608 - _size__decimal_to_f64 = 1472 - _size__left_shift = 544 - _size__right_shift = 496 - _size__vsigned = 368 + _size__decimal_to_f64 = 1712 + _size__right_shift = 416 + _size__left_shift = 496 + _size__vsigned = 320 _size__vstring = 144 - _size__vunsigned = 368 + _size__vunsigned = 336 ) var ( @@ -132,16 +126,14 @@ var ( {8, 24}, {10, 32}, {12, 40}, - {13, 48}, - {3734, 64}, - {3738, 48}, - {3739, 40}, - {3741, 32}, - {3743, 24}, - {3745, 16}, - {3747, 8}, - {3751, 0}, - {3781, 64}, + {3350, 48}, + {3351, 40}, + {3353, 32}, + {3355, 24}, + {3357, 16}, + {3359, 8}, + {3363, 0}, + {3385, 48}, } _pcsp__f64toa = [][2]uint32{ {1, 0}, @@ -151,24 +143,24 @@ var ( {10, 32}, {12, 40}, {13, 48}, - {3124, 56}, - {3128, 48}, - {3129, 40}, - {3131, 32}, - {3133, 24}, - {3135, 16}, - {3137, 8}, - {3141, 0}, - {3234, 56}, + {2788, 56}, + {2792, 48}, + {2793, 40}, + {2795, 32}, + {2797, 24}, + {2799, 16}, + {2801, 8}, + {2805, 0}, + {2843, 56}, } _pcsp__format_significand = [][2]uint32{ {1, 0}, {4, 8}, {6, 16}, - {468, 24}, - {469, 16}, - {471, 8}, - {473, 0}, + {452, 24}, + {453, 16}, + {455, 8}, + {457, 0}, } _pcsp__format_integer = [][2]uint32{ {1, 0}, @@ -180,6 +172,24 @@ var ( {424, 8}, {426, 0}, } + _pcsp__get_by_path = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {2049, 88}, + {2053, 48}, + {2054, 40}, + {2056, 32}, + {2058, 24}, + {2060, 16}, + {2062, 8}, + {2063, 0}, + {2170, 88}, + } _pcsp__fsm_exec = [][2]uint32{ {1, 0}, {4, 8}, @@ -188,23 +198,22 @@ var ( {10, 32}, {12, 40}, {13, 48}, - {1017, 88}, - {1021, 48}, - {1022, 40}, - {1024, 32}, - {1026, 24}, - {1028, 16}, - {1030, 8}, - {1031, 0}, - {1380, 88}, + {1157, 88}, + {1161, 48}, + {1162, 40}, + {1164, 32}, + {1166, 24}, + {1168, 16}, + {1170, 8}, + {1171, 0}, + {1468, 88}, } _pcsp__advance_ns = [][2]uint32{ {1, 0}, - {442, 8}, - {446, 0}, - {467, 8}, - {471, 0}, - {489, 8}, + {453, 8}, + {457, 0}, + {481, 8}, + {486, 0}, } _pcsp__advance_string = [][2]uint32{ {14, 0}, @@ -213,14 +222,16 @@ var ( {22, 24}, {24, 32}, {26, 40}, - {396, 48}, - {397, 40}, - {399, 32}, - {401, 24}, - {403, 16}, - {405, 8}, - {409, 0}, - {1031, 48}, + {27, 48}, + {433, 56}, + {437, 48}, + {438, 40}, + {440, 32}, + {442, 24}, + {444, 16}, + {446, 8}, + {450, 0}, + {1078, 56}, } _pcsp__advance_string_default = [][2]uint32{ {1, 0}, @@ -229,46 +240,30 @@ var ( {8, 24}, {10, 32}, {12, 40}, - {314, 48}, - {315, 40}, - {317, 32}, - {319, 24}, - {321, 16}, - {323, 8}, - {327, 0}, - {786, 48}, + {332, 48}, + {333, 40}, + {335, 32}, + {337, 24}, + {339, 16}, + {341, 8}, + {345, 0}, + {757, 48}, } _pcsp__do_skip_number = [][2]uint32{ - {1, 0}, - {4, 8}, - {6, 16}, - {8, 24}, - {10, 32}, - {1253, 40}, - {1254, 32}, - {1256, 24}, - {1258, 16}, - {1260, 8}, - {1264, 0}, - {1300, 40}, - } - _pcsp__get_by_path = [][2]uint32{ {1, 0}, {4, 8}, {6, 16}, {8, 24}, {10, 32}, {12, 40}, - {13, 48}, - {1293, 120}, - {1297, 48}, - {1298, 40}, - {1300, 32}, - {1302, 24}, - {1304, 16}, - {1306, 8}, - {1307, 0}, - {1344, 120}, + {1274, 48}, + {1275, 40}, + {1277, 32}, + {1279, 24}, + {1281, 16}, + {1283, 8}, + {1287, 0}, + {1360, 48}, } _pcsp__skip_one_fast = [][2]uint32{ {1, 0}, @@ -278,43 +273,14 @@ var ( {10, 32}, {12, 40}, {13, 48}, - {396, 176}, - {397, 168}, - {399, 160}, - {401, 152}, - {403, 144}, - {405, 136}, - {409, 128}, - {2360, 176}, - } - _pcsp__unescape = [][2]uint32{ - {1, 0}, - {4, 8}, - {6, 16}, - {8, 24}, - {10, 32}, - {12, 40}, - {13, 48}, - {246, 56}, - {250, 48}, - {251, 40}, - {253, 32}, - {255, 24}, - {257, 16}, - {259, 8}, - {260, 0}, - {695, 56}, - } - _pcsp__unhex16_is = [][2]uint32{ - {1, 0}, - {35, 8}, - {36, 0}, - {62, 8}, - {63, 0}, - {97, 8}, - {98, 0}, - {121, 8}, - {123, 0}, + {418, 176}, + {419, 168}, + {421, 160}, + {423, 152}, + {425, 144}, + {427, 136}, + {431, 128}, + {2428, 176}, } _pcsp__html_escape = [][2]uint32{ {1, 0}, @@ -324,52 +290,39 @@ var ( {10, 32}, {12, 40}, {13, 48}, - {2017, 72}, - {2021, 48}, - {2022, 40}, - {2024, 32}, - {2026, 24}, - {2028, 16}, - {2030, 8}, - {2035, 0}, + {2045, 72}, + {2049, 48}, + {2050, 40}, + {2052, 32}, + {2054, 24}, + {2056, 16}, + {2058, 8}, + {2063, 0}, } _pcsp__i64toa = [][2]uint32{ - {1, 0}, - {171, 8}, - {172, 0}, - {207, 8}, - {208, 0}, - {222, 8}, - {223, 0}, - {247, 8}, - {248, 0}, - {253, 8}, - {259, 0}, + {14, 0}, + {34, 8}, + {36, 0}, } _pcsp__u64toa = [][2]uint32{ - {13, 0}, - {162, 8}, - {163, 0}, - {175, 8}, - {240, 0}, - {498, 8}, - {499, 0}, - {519, 8}, - {592, 0}, - {852, 8}, - {928, 0}, - {1376, 8}, - {1378, 0}, + {1, 0}, + {161, 8}, + {162, 0}, + {457, 8}, + {458, 0}, + {758, 8}, + {759, 0}, + {1225, 8}, + {1227, 0}, } _pcsp__lspace = [][2]uint32{ {1, 0}, - {186, 8}, - {190, 0}, - {199, 8}, - {203, 0}, - {210, 8}, - {214, 0}, - {232, 8}, + {184, 8}, + {188, 0}, + {204, 8}, + {208, 0}, + {215, 8}, + {220, 0}, } _pcsp__quote = [][2]uint32{ {1, 0}, @@ -379,15 +332,15 @@ var ( {10, 32}, {12, 40}, {13, 48}, - {2828, 72}, - {2832, 48}, - {2833, 40}, - {2835, 32}, - {2837, 24}, - {2839, 16}, - {2841, 8}, - {2845, 0}, - {2876, 72}, + {2687, 56}, + {2691, 48}, + {2692, 40}, + {2694, 32}, + {2696, 24}, + {2698, 16}, + {2700, 8}, + {2704, 0}, + {2731, 56}, } _pcsp__skip_array = [][2]uint32{ {1, 0}, @@ -419,8 +372,8 @@ var ( } _pcsp__skip_one = [][2]uint32{ {1, 0}, - {28, 8}, - {34, 0}, + {30, 8}, + {36, 0}, } _pcsp__unquote = [][2]uint32{ {1, 0}, @@ -430,20 +383,20 @@ var ( {10, 32}, {12, 40}, {13, 48}, - {1836, 104}, - {1840, 48}, - {1841, 40}, - {1843, 32}, - {1845, 24}, - {1847, 16}, - {1849, 8}, - {1853, 0}, - {2554, 104}, + {79, 72}, + {83, 48}, + {84, 40}, + {86, 32}, + {88, 24}, + {90, 16}, + {92, 8}, + {96, 0}, + {2464, 72}, } _pcsp__validate_one = [][2]uint32{ {1, 0}, - {33, 8}, - {39, 0}, + {35, 8}, + {41, 0}, } _pcsp__validate_utf8 = [][2]uint32{ {1, 0}, @@ -452,26 +405,26 @@ var ( {8, 24}, {10, 32}, {11, 40}, - {639, 48}, - {643, 40}, - {644, 32}, - {646, 24}, - {648, 16}, - {650, 8}, - {651, 0}, - {682, 48}, + {623, 48}, + {627, 40}, + {628, 32}, + {630, 24}, + {632, 16}, + {634, 8}, + {635, 0}, + {666, 48}, } _pcsp__validate_utf8_fast = [][2]uint32{ {1, 0}, {4, 8}, {5, 16}, - {1706, 176}, - {1707, 168}, - {1711, 160}, - {2003, 176}, - {2004, 168}, - {2008, 160}, - {2656, 176}, + {1738, 176}, + {1739, 168}, + {1743, 160}, + {2018, 176}, + {2019, 168}, + {2023, 160}, + {2600, 176}, } _pcsp__value = [][2]uint32{ {1, 0}, @@ -481,14 +434,14 @@ var ( {10, 32}, {12, 40}, {13, 48}, - {974, 88}, - {978, 48}, - {979, 40}, - {981, 32}, - {983, 24}, - {985, 16}, - {987, 8}, - {992, 0}, + {982, 88}, + {986, 48}, + {987, 40}, + {989, 32}, + {991, 24}, + {993, 16}, + {995, 8}, + {1000, 0}, } _pcsp__vnumber = [][2]uint32{ {1, 0}, @@ -498,36 +451,34 @@ var ( {10, 32}, {12, 40}, {13, 48}, - {150, 120}, - {154, 48}, - {155, 40}, - {157, 32}, - {159, 24}, - {161, 16}, - {163, 8}, - {164, 0}, - {1638, 120}, + {803, 104}, + {807, 48}, + {808, 40}, + {810, 32}, + {812, 24}, + {814, 16}, + {816, 8}, + {817, 0}, + {1547, 104}, } _pcsp__atof_eisel_lemire64 = [][2]uint32{ {1, 0}, {4, 8}, {6, 16}, {8, 24}, - {10, 32}, - {315, 40}, - {316, 32}, - {318, 24}, - {320, 16}, - {322, 8}, - {323, 0}, - {387, 40}, + {292, 32}, + {293, 24}, + {295, 16}, + {297, 8}, + {298, 0}, + {362, 32}, } _pcsp__atof_native = [][2]uint32{ {1, 0}, {4, 8}, - {596, 56}, - {600, 8}, - {602, 0}, + {587, 56}, + {591, 8}, + {593, 0}, } _pcsp__decimal_to_f64 = [][2]uint32{ {1, 0}, @@ -537,62 +488,60 @@ var ( {10, 32}, {12, 40}, {13, 48}, - {1431, 56}, - {1435, 48}, - {1436, 40}, - {1438, 32}, - {1440, 24}, - {1442, 16}, - {1444, 8}, - {1448, 0}, - {1460, 56}, + {1673, 56}, + {1677, 48}, + {1678, 40}, + {1680, 32}, + {1682, 24}, + {1684, 16}, + {1686, 8}, + {1690, 0}, + {1702, 56}, } - _pcsp__left_shift = [][2]uint32{ + _pcsp__right_shift = [][2]uint32{ {1, 0}, - {4, 8}, - {6, 16}, - {8, 24}, - {418, 32}, - {419, 24}, - {421, 16}, - {423, 8}, - {424, 0}, - {539, 32}, + {318, 8}, + {319, 0}, + {387, 8}, + {388, 0}, + {396, 8}, + {398, 0}, } - _pcsp__right_shift = [][2]uint32{ + _pcsp__left_shift = [][2]uint32{ {1, 0}, {4, 8}, - {452, 16}, - {453, 8}, - {454, 0}, - {462, 16}, - {463, 8}, - {464, 0}, - {472, 16}, + {6, 16}, + {363, 24}, + {364, 16}, + {366, 8}, + {367, 0}, + {470, 24}, + {471, 16}, {473, 8}, - {475, 0}, + {474, 0}, + {486, 24}, } _pcsp__vsigned = [][2]uint32{ {1, 0}, {4, 8}, - {113, 16}, - {114, 8}, - {115, 0}, - {126, 16}, - {127, 8}, - {128, 0}, - {278, 16}, - {279, 8}, - {280, 0}, - {284, 16}, - {285, 8}, - {286, 0}, - {340, 16}, - {341, 8}, - {342, 0}, - {353, 16}, - {354, 8}, - {356, 0}, + {112, 16}, + {113, 8}, + {114, 0}, + {125, 16}, + {126, 8}, + {127, 0}, + {260, 16}, + {261, 8}, + {262, 0}, + {266, 16}, + {267, 8}, + {268, 0}, + {306, 16}, + {307, 8}, + {308, 0}, + {316, 16}, + {317, 8}, + {319, 0}, } _pcsp__vstring = [][2]uint32{ {1, 0}, @@ -611,32 +560,18 @@ var ( } _pcsp__vunsigned = [][2]uint32{ {1, 0}, - {4, 8}, - {6, 16}, - {74, 24}, - {75, 16}, - {77, 8}, - {78, 0}, - {89, 24}, - {90, 16}, - {92, 8}, - {93, 0}, - {116, 24}, - {117, 16}, - {119, 8}, - {120, 0}, - {281, 24}, - {282, 16}, - {284, 8}, - {285, 0}, - {336, 24}, - {337, 16}, - {339, 8}, - {340, 0}, - {348, 24}, - {349, 16}, - {351, 8}, - {353, 0}, + {71, 8}, + {72, 0}, + {83, 8}, + {84, 0}, + {107, 8}, + {108, 0}, + {273, 8}, + {274, 0}, + {312, 8}, + {313, 0}, + {320, 8}, + {322, 0}, } ) @@ -646,15 +581,13 @@ var Funcs = []loader.CFunc{ {"_f64toa", _entry__f64toa, _size__f64toa, _stack__f64toa, _pcsp__f64toa}, {"_format_significand", _entry__format_significand, _size__format_significand, _stack__format_significand, _pcsp__format_significand}, {"_format_integer", _entry__format_integer, _size__format_integer, _stack__format_integer, _pcsp__format_integer}, + {"_get_by_path", _entry__get_by_path, _size__get_by_path, _stack__get_by_path, _pcsp__get_by_path}, {"_fsm_exec", _entry__fsm_exec, _size__fsm_exec, _stack__fsm_exec, _pcsp__fsm_exec}, {"_advance_ns", _entry__advance_ns, _size__advance_ns, _stack__advance_ns, _pcsp__advance_ns}, {"_advance_string", _entry__advance_string, _size__advance_string, _stack__advance_string, _pcsp__advance_string}, {"_advance_string_default", _entry__advance_string_default, _size__advance_string_default, _stack__advance_string_default, _pcsp__advance_string_default}, {"_do_skip_number", _entry__do_skip_number, _size__do_skip_number, _stack__do_skip_number, _pcsp__do_skip_number}, - {"_get_by_path", _entry__get_by_path, _size__get_by_path, _stack__get_by_path, _pcsp__get_by_path}, {"_skip_one_fast", _entry__skip_one_fast, _size__skip_one_fast, _stack__skip_one_fast, _pcsp__skip_one_fast}, - {"_unescape", _entry__unescape, _size__unescape, _stack__unescape, _pcsp__unescape}, - {"_unhex16_is", _entry__unhex16_is, _size__unhex16_is, _stack__unhex16_is, _pcsp__unhex16_is}, {"_html_escape", _entry__html_escape, _size__html_escape, _stack__html_escape, _pcsp__html_escape}, {"_i64toa", _entry__i64toa, _size__i64toa, _stack__i64toa, _pcsp__i64toa}, {"_u64toa", _entry__u64toa, _size__u64toa, _stack__u64toa, _pcsp__u64toa}, @@ -673,8 +606,8 @@ var Funcs = []loader.CFunc{ {"_atof_eisel_lemire64", _entry__atof_eisel_lemire64, _size__atof_eisel_lemire64, _stack__atof_eisel_lemire64, _pcsp__atof_eisel_lemire64}, {"_atof_native", _entry__atof_native, _size__atof_native, _stack__atof_native, _pcsp__atof_native}, {"_decimal_to_f64", _entry__decimal_to_f64, _size__decimal_to_f64, _stack__decimal_to_f64, _pcsp__decimal_to_f64}, - {"_left_shift", _entry__left_shift, _size__left_shift, _stack__left_shift, _pcsp__left_shift}, {"_right_shift", _entry__right_shift, _size__right_shift, _stack__right_shift, _pcsp__right_shift}, + {"_left_shift", _entry__left_shift, _size__left_shift, _stack__left_shift, _pcsp__left_shift}, {"_vsigned", _entry__vsigned, _size__vsigned, _stack__vsigned, _pcsp__vsigned}, {"_vstring", _entry__vstring, _size__vstring, _stack__vstring, _pcsp__vstring}, {"_vunsigned", _entry__vunsigned, _size__vunsigned, _stack__vunsigned, _pcsp__vunsigned}, diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx2/native_text_amd64.go b/vendor/github.com/bytedance/sonic/internal/native/avx2/native_text_amd64.go index 0609d519c..f00494936 100644 --- a/vendor/github.com/bytedance/sonic/internal/native/avx2/native_text_amd64.go +++ b/vendor/github.com/bytedance/sonic/internal/native/avx2/native_text_amd64.go @@ -45,13737 +45,13466 @@ var Text__native_entry__ = []byte{ //0x00000040 _lspace 0x55, //0x00000040 pushq %rbp 0x48, 0x89, 0xe5, //0x00000041 movq %rsp, %rbp - 0x48, 0x89, 0xd0, //0x00000044 movq %rdx, %rax - 0x48, 0x89, 0xf1, //0x00000047 movq %rsi, %rcx - 0x48, 0x29, 0xd1, //0x0000004a subq %rdx, %rcx - 0x48, 0x83, 0xf9, 0x20, //0x0000004d cmpq $32, %rcx - 0x0f, 0x82, 0xc0, 0x00, 0x00, 0x00, //0x00000051 jb LBB0_1 - 0x48, 0x89, 0xc1, //0x00000057 movq %rax, %rcx - 0x48, 0xf7, 0xd9, //0x0000005a negq %rcx - 0xc5, 0xfd, 0x6f, 0x05, 0xbb, 0xff, 0xff, 0xff, //0x0000005d vmovdqa $-69(%rip), %ymm0 /* LCPI0_0+0(%rip) */ - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000065 .p2align 4, 0x90 - //0x00000070 LBB0_10 - 0xc5, 0xfe, 0x6f, 0x0c, 0x07, //0x00000070 vmovdqu (%rdi,%rax), %ymm1 - 0xc4, 0xe2, 0x7d, 0x00, 0xd1, //0x00000075 vpshufb %ymm1, %ymm0, %ymm2 - 0xc5, 0xf5, 0x74, 0xca, //0x0000007a vpcmpeqb %ymm2, %ymm1, %ymm1 - 0xc5, 0xfd, 0xd7, 0xd1, //0x0000007e vpmovmskb %ymm1, %edx - 0x83, 0xfa, 0xff, //0x00000082 cmpl $-1, %edx - 0x0f, 0x85, 0x74, 0x00, 0x00, 0x00, //0x00000085 jne LBB0_11 - 0x48, 0x83, 0xc0, 0x20, //0x0000008b addq $32, %rax - 0x48, 0x8d, 0x14, 0x0e, //0x0000008f leaq (%rsi,%rcx), %rdx - 0x48, 0x83, 0xc2, 0xe0, //0x00000093 addq $-32, %rdx - 0x48, 0x83, 0xc1, 0xe0, //0x00000097 addq $-32, %rcx - 0x48, 0x83, 0xfa, 0x1f, //0x0000009b cmpq $31, %rdx - 0x0f, 0x87, 0xcb, 0xff, 0xff, 0xff, //0x0000009f ja LBB0_10 - 0x48, 0x89, 0xf8, //0x000000a5 movq %rdi, %rax - 0x48, 0x29, 0xc8, //0x000000a8 subq %rcx, %rax - 0x48, 0x01, 0xce, //0x000000ab addq %rcx, %rsi - 0x48, 0x89, 0xf1, //0x000000ae movq %rsi, %rcx - 0x48, 0x85, 0xc9, //0x000000b1 testq %rcx, %rcx - 0x0f, 0x84, 0x3d, 0x00, 0x00, 0x00, //0x000000b4 je LBB0_14 - //0x000000ba LBB0_5 - 0x4c, 0x8d, 0x04, 0x08, //0x000000ba leaq (%rax,%rcx), %r8 - 0x31, 0xd2, //0x000000be xorl %edx, %edx - 0x49, 0xb9, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x000000c0 movabsq $4294977024, %r9 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000000ca .p2align 4, 0x90 - //0x000000d0 LBB0_6 - 0x0f, 0xbe, 0x34, 0x10, //0x000000d0 movsbl (%rax,%rdx), %esi - 0x83, 0xfe, 0x20, //0x000000d4 cmpl $32, %esi - 0x0f, 0x87, 0x2f, 0x00, 0x00, 0x00, //0x000000d7 ja LBB0_8 - 0x49, 0x0f, 0xa3, 0xf1, //0x000000dd btq %rsi, %r9 - 0x0f, 0x83, 0x25, 0x00, 0x00, 0x00, //0x000000e1 jae LBB0_8 - 0x48, 0x83, 0xc2, 0x01, //0x000000e7 addq $1, %rdx - 0x48, 0x39, 0xd1, //0x000000eb cmpq %rdx, %rcx - 0x0f, 0x85, 0xdc, 0xff, 0xff, 0xff, //0x000000ee jne LBB0_6 - 0x4c, 0x89, 0xc0, //0x000000f4 movq %r8, %rax - //0x000000f7 LBB0_14 - 0x48, 0x29, 0xf8, //0x000000f7 subq %rdi, %rax - 0x5d, //0x000000fa popq %rbp - 0xc5, 0xf8, 0x77, //0x000000fb vzeroupper - 0xc3, //0x000000fe retq - //0x000000ff LBB0_11 - 0xf7, 0xd2, //0x000000ff notl %edx - 0x0f, 0xbc, 0xc2, //0x00000101 bsfl %edx, %eax - 0x48, 0x29, 0xc8, //0x00000104 subq %rcx, %rax - 0x5d, //0x00000107 popq %rbp - 0xc5, 0xf8, 0x77, //0x00000108 vzeroupper - 0xc3, //0x0000010b retq - //0x0000010c LBB0_8 - 0x48, 0x29, 0xf8, //0x0000010c subq %rdi, %rax - 0x48, 0x01, 0xd0, //0x0000010f addq %rdx, %rax - 0x5d, //0x00000112 popq %rbp - 0xc5, 0xf8, 0x77, //0x00000113 vzeroupper - 0xc3, //0x00000116 retq - //0x00000117 LBB0_1 - 0x48, 0x01, 0xf8, //0x00000117 addq %rdi, %rax - 0x48, 0x85, 0xc9, //0x0000011a testq %rcx, %rcx - 0x0f, 0x85, 0x97, 0xff, 0xff, 0xff, //0x0000011d jne LBB0_5 - 0xe9, 0xcf, 0xff, 0xff, 0xff, //0x00000123 jmp LBB0_14 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000128 .p2align 5, 0x00 - //0x00000140 LCPI1_0 - 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, //0x00000140 QUAD $0x3030303030303030; QUAD $0x3030303030303030 // .space 16, '0000000000000000' - 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, //0x00000150 QUAD $0x3030303030303030; QUAD $0x3030303030303030 // .space 16, '0000000000000000' - //0x00000160 .p2align 4, 0x00 - //0x00000160 LCPI1_1 - 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, //0x00000160 QUAD $0x3030303030303030; QUAD $0x3030303030303030 // .space 16, '0000000000000000' - //0x00000170 .p2align 4, 0x90 - //0x00000170 _f64toa - 0x55, //0x00000170 pushq %rbp - 0x48, 0x89, 0xe5, //0x00000171 movq %rsp, %rbp - 0x41, 0x57, //0x00000174 pushq %r15 - 0x41, 0x56, //0x00000176 pushq %r14 - 0x41, 0x55, //0x00000178 pushq %r13 - 0x41, 0x54, //0x0000017a pushq %r12 - 0x53, //0x0000017c pushq %rbx - 0x50, //0x0000017d pushq %rax - 0xc4, 0xe1, 0xf9, 0x7e, 0xc2, //0x0000017e vmovq %xmm0, %rdx - 0x48, 0x89, 0xd0, //0x00000183 movq %rdx, %rax - 0x48, 0xc1, 0xe8, 0x34, //0x00000186 shrq $52, %rax - 0x25, 0xff, 0x07, 0x00, 0x00, //0x0000018a andl $2047, %eax - 0x3d, 0xff, 0x07, 0x00, 0x00, //0x0000018f cmpl $2047, %eax - 0x0f, 0x84, 0x4e, 0x0c, 0x00, 0x00, //0x00000194 je LBB1_130 - 0x48, 0x89, 0xfe, //0x0000019a movq %rdi, %rsi - 0xc6, 0x07, 0x2d, //0x0000019d movb $45, (%rdi) - 0x49, 0x89, 0xd5, //0x000001a0 movq %rdx, %r13 - 0x49, 0xc1, 0xed, 0x3f, //0x000001a3 shrq $63, %r13 - 0x4e, 0x8d, 0x3c, 0x2f, //0x000001a7 leaq (%rdi,%r13), %r15 - 0x48, 0x8d, 0x0c, 0x55, 0x00, 0x00, 0x00, 0x00, //0x000001ab leaq (,%rdx,2), %rcx - 0x48, 0x85, 0xc9, //0x000001b3 testq %rcx, %rcx - 0x0f, 0x84, 0x85, 0x02, 0x00, 0x00, //0x000001b6 je LBB1_6 - 0x48, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, //0x000001bc movabsq $4503599627370495, %rdi - 0x48, 0x21, 0xfa, //0x000001c6 andq %rdi, %rdx - 0x85, 0xc0, //0x000001c9 testl %eax, %eax - 0x0f, 0x84, 0x1e, 0x0c, 0x00, 0x00, //0x000001cb je LBB1_131 - 0x48, 0x83, 0xc7, 0x01, //0x000001d1 addq $1, %rdi - 0x48, 0x09, 0xd7, //0x000001d5 orq %rdx, %rdi - 0x44, 0x8d, 0x88, 0xcd, 0xfb, 0xff, 0xff, //0x000001d8 leal $-1075(%rax), %r9d - 0x8d, 0x88, 0x01, 0xfc, 0xff, 0xff, //0x000001df leal $-1023(%rax), %ecx - 0x83, 0xf9, 0x34, //0x000001e5 cmpl $52, %ecx - 0x0f, 0x87, 0x1d, 0x00, 0x00, 0x00, //0x000001e8 ja LBB1_7 - 0xb9, 0x33, 0x04, 0x00, 0x00, //0x000001ee movl $1075, %ecx - 0x29, 0xc1, //0x000001f3 subl %eax, %ecx - 0x48, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x000001f5 movq $-1, %rbx - 0x48, 0xd3, 0xe3, //0x000001fc shlq %cl, %rbx - 0x48, 0xf7, 0xd3, //0x000001ff notq %rbx - 0x48, 0x85, 0xdf, //0x00000202 testq %rbx, %rdi - 0x0f, 0x84, 0x0a, 0x04, 0x00, 0x00, //0x00000205 je LBB1_43 - //0x0000020b LBB1_7 - 0x48, 0x89, 0x75, 0xd0, //0x0000020b movq %rsi, $-48(%rbp) - //0x0000020f LBB1_8 - 0x48, 0x85, 0xd2, //0x0000020f testq %rdx, %rdx - 0x0f, 0x94, 0xc1, //0x00000212 sete %cl - 0x83, 0xf8, 0x02, //0x00000215 cmpl $2, %eax - 0x0f, 0x93, 0xc0, //0x00000218 setae %al - 0x20, 0xc8, //0x0000021b andb %cl, %al - 0x4c, 0x8d, 0x04, 0xbd, 0x00, 0x00, 0x00, 0x00, //0x0000021d leaq (,%rdi,4), %r8 - 0x0f, 0xb6, 0xc0, //0x00000225 movzbl %al, %eax - 0x41, 0x69, 0xc9, 0x13, 0x44, 0x13, 0x00, //0x00000228 imull $1262611, %r9d, %ecx - 0x44, 0x8d, 0x91, 0x01, 0x01, 0xf8, 0xff, //0x0000022f leal $-524031(%rcx), %r10d - 0x84, 0xc0, //0x00000236 testb %al, %al - 0x44, 0x0f, 0x44, 0xd1, //0x00000238 cmovel %ecx, %r10d - 0x48, 0x8d, 0x1c, 0xb8, //0x0000023c leaq (%rax,%rdi,4), %rbx - 0x48, 0x83, 0xc3, 0xfe, //0x00000240 addq $-2, %rbx - 0x41, 0xc1, 0xfa, 0x16, //0x00000244 sarl $22, %r10d - 0x41, 0x69, 0xca, 0xb1, 0x6c, 0xe5, 0xff, //0x00000248 imull $-1741647, %r10d, %ecx - 0xc1, 0xe9, 0x13, //0x0000024f shrl $19, %ecx - 0x44, 0x01, 0xc9, //0x00000252 addl %r9d, %ecx - 0xbe, 0x24, 0x01, 0x00, 0x00, //0x00000255 movl $292, %esi - 0x44, 0x29, 0xd6, //0x0000025a subl %r10d, %esi - 0x48, 0xc1, 0xe6, 0x04, //0x0000025d shlq $4, %rsi - 0x80, 0xc1, 0x01, //0x00000261 addb $1, %cl - 0x48, 0xd3, 0xe3, //0x00000264 shlq %cl, %rbx - 0x4c, 0x8d, 0x1d, 0x42, 0xd0, 0x00, 0x00, //0x00000267 leaq $53314(%rip), %r11 /* _pow10_ceil_sig.g+0(%rip) */ - 0x4e, 0x8b, 0x64, 0x1e, 0x08, //0x0000026e movq $8(%rsi,%r11), %r12 - 0x48, 0x89, 0xd8, //0x00000273 movq %rbx, %rax - 0x49, 0xf7, 0xe4, //0x00000276 mulq %r12 - 0x49, 0x89, 0xd1, //0x00000279 movq %rdx, %r9 - 0x4e, 0x8b, 0x34, 0x1e, //0x0000027c movq (%rsi,%r11), %r14 - 0x48, 0x89, 0xd8, //0x00000280 movq %rbx, %rax - 0x49, 0xf7, 0xe6, //0x00000283 mulq %r14 - 0x48, 0x89, 0xd3, //0x00000286 movq %rdx, %rbx - 0x4c, 0x01, 0xc8, //0x00000289 addq %r9, %rax - 0x48, 0x83, 0xd3, 0x00, //0x0000028c adcq $0, %rbx - 0x45, 0x31, 0xdb, //0x00000290 xorl %r11d, %r11d - 0x48, 0x83, 0xf8, 0x02, //0x00000293 cmpq $2, %rax - 0x41, 0x0f, 0x93, 0xc3, //0x00000297 setae %r11b - 0x49, 0xd3, 0xe0, //0x0000029b shlq %cl, %r8 - 0x48, 0x8d, 0x34, 0xbd, 0x02, 0x00, 0x00, 0x00, //0x0000029e leaq $2(,%rdi,4), %rsi - 0x4c, 0x89, 0xc0, //0x000002a6 movq %r8, %rax - 0x49, 0xf7, 0xe4, //0x000002a9 mulq %r12 - 0x49, 0x89, 0xd1, //0x000002ac movq %rdx, %r9 - 0x49, 0x09, 0xdb, //0x000002af orq %rbx, %r11 - 0x4c, 0x89, 0xc0, //0x000002b2 movq %r8, %rax - 0x49, 0xf7, 0xe6, //0x000002b5 mulq %r14 - 0x49, 0x89, 0xd0, //0x000002b8 movq %rdx, %r8 - 0x4c, 0x01, 0xc8, //0x000002bb addq %r9, %rax - 0x49, 0x83, 0xd0, 0x00, //0x000002be adcq $0, %r8 - 0x31, 0xdb, //0x000002c2 xorl %ebx, %ebx - 0x48, 0x83, 0xf8, 0x02, //0x000002c4 cmpq $2, %rax - 0x0f, 0x93, 0xc3, //0x000002c8 setae %bl - 0x48, 0xd3, 0xe6, //0x000002cb shlq %cl, %rsi - 0x48, 0x89, 0xf0, //0x000002ce movq %rsi, %rax - 0x49, 0xf7, 0xe4, //0x000002d1 mulq %r12 - 0x48, 0x89, 0xd1, //0x000002d4 movq %rdx, %rcx - 0x48, 0x89, 0xf0, //0x000002d7 movq %rsi, %rax - 0x49, 0xf7, 0xe6, //0x000002da mulq %r14 - 0x4c, 0x09, 0xc3, //0x000002dd orq %r8, %rbx - 0x48, 0x01, 0xc8, //0x000002e0 addq %rcx, %rax - 0x48, 0x83, 0xd2, 0x00, //0x000002e3 adcq $0, %rdx - 0x31, 0xc9, //0x000002e7 xorl %ecx, %ecx - 0x48, 0x83, 0xf8, 0x02, //0x000002e9 cmpq $2, %rax - 0x0f, 0x93, 0xc1, //0x000002ed setae %cl - 0x48, 0x09, 0xd1, //0x000002f0 orq %rdx, %rcx - 0x83, 0xe7, 0x01, //0x000002f3 andl $1, %edi - 0x49, 0x01, 0xfb, //0x000002f6 addq %rdi, %r11 - 0x48, 0x29, 0xf9, //0x000002f9 subq %rdi, %rcx - 0x48, 0x83, 0xfb, 0x28, //0x000002fc cmpq $40, %rbx - 0x0f, 0x82, 0x43, 0x00, 0x00, 0x00, //0x00000300 jb LBB1_10 - 0x48, 0xba, 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x00000306 movabsq $-3689348814741910323, %rdx - 0x4c, 0x89, 0xc0, //0x00000310 movq %r8, %rax - 0x48, 0xf7, 0xe2, //0x00000313 mulq %rdx - 0x48, 0x89, 0xd7, //0x00000316 movq %rdx, %rdi - 0x48, 0xc1, 0xef, 0x05, //0x00000319 shrq $5, %rdi - 0x48, 0x8d, 0x04, 0xfd, 0x00, 0x00, 0x00, 0x00, //0x0000031d leaq (,%rdi,8), %rax - 0x48, 0x8d, 0x14, 0x80, //0x00000325 leaq (%rax,%rax,4), %rdx - 0x49, 0x39, 0xd3, //0x00000329 cmpq %rdx, %r11 - 0x40, 0x0f, 0x97, 0xc6, //0x0000032c seta %sil - 0x48, 0x8d, 0x14, 0x80, //0x00000330 leaq (%rax,%rax,4), %rdx - 0x48, 0x83, 0xc2, 0x28, //0x00000334 addq $40, %rdx - 0x31, 0xc0, //0x00000338 xorl %eax, %eax - 0x48, 0x39, 0xca, //0x0000033a cmpq %rcx, %rdx - 0x0f, 0x96, 0xc2, //0x0000033d setbe %dl - 0x40, 0x38, 0xd6, //0x00000340 cmpb %dl, %sil - 0x0f, 0x84, 0xa3, 0x02, 0x00, 0x00, //0x00000343 je LBB1_22 - //0x00000349 LBB1_10 - 0x4c, 0x89, 0xc6, //0x00000349 movq %r8, %rsi - 0x48, 0xc1, 0xee, 0x02, //0x0000034c shrq $2, %rsi - 0x4c, 0x89, 0xc2, //0x00000350 movq %r8, %rdx - 0x48, 0x83, 0xe2, 0xfc, //0x00000353 andq $-4, %rdx - 0x49, 0x39, 0xd3, //0x00000357 cmpq %rdx, %r11 - 0x41, 0x0f, 0x97, 0xc1, //0x0000035a seta %r9b - 0x48, 0x8d, 0x7a, 0x04, //0x0000035e leaq $4(%rdx), %rdi - 0x48, 0x39, 0xcf, //0x00000362 cmpq %rcx, %rdi - 0x0f, 0x96, 0xc0, //0x00000365 setbe %al - 0x44, 0x30, 0xc8, //0x00000368 xorb %r9b, %al - 0x0f, 0x84, 0xe3, 0x00, 0x00, 0x00, //0x0000036b je LBB1_14 - 0x48, 0x83, 0xca, 0x02, //0x00000371 orq $2, %rdx - 0xbf, 0x01, 0x00, 0x00, 0x00, //0x00000375 movl $1, %edi - 0x48, 0x39, 0xd3, //0x0000037a cmpq %rdx, %rbx - 0x0f, 0x87, 0x0e, 0x00, 0x00, 0x00, //0x0000037d ja LBB1_13 - 0x0f, 0x94, 0xc0, //0x00000383 sete %al - 0x41, 0xc0, 0xe8, 0x02, //0x00000386 shrb $2, %r8b - 0x41, 0x20, 0xc0, //0x0000038a andb %al, %r8b - 0x41, 0x0f, 0xb6, 0xf8, //0x0000038d movzbl %r8b, %edi - //0x00000391 LBB1_13 - 0x48, 0x01, 0xf7, //0x00000391 addq %rsi, %rdi - 0x49, 0xbc, 0x80, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, //0x00000394 movabsq $8589934464, %r12 - 0x49, 0x8d, 0x84, 0x24, 0x7f, 0xe4, 0x0b, 0x54, //0x0000039e leaq $1410065535(%r12), %rax - 0x48, 0x39, 0xc7, //0x000003a6 cmpq %rax, %rdi - 0x0f, 0x86, 0xca, 0x00, 0x00, 0x00, //0x000003a9 jbe LBB1_23 - //0x000003af LBB1_15 - 0x48, 0x89, 0xf8, //0x000003af movq %rdi, %rax - 0x48, 0xc1, 0xe8, 0x0b, //0x000003b2 shrq $11, %rax - 0xba, 0x0b, 0x00, 0x00, 0x00, //0x000003b6 movl $11, %edx - 0x48, 0x3d, 0xdd, 0x0e, 0xe9, 0x02, //0x000003bb cmpq $48828125, %rax - 0x0f, 0x82, 0x3c, 0x01, 0x00, 0x00, //0x000003c1 jb LBB1_31 - 0x48, 0x89, 0xf8, //0x000003c7 movq %rdi, %rax - 0x48, 0xc1, 0xe8, 0x0c, //0x000003ca shrq $12, %rax - 0xba, 0x0c, 0x00, 0x00, 0x00, //0x000003ce movl $12, %edx - 0x48, 0x3d, 0x51, 0x4a, 0x8d, 0x0e, //0x000003d3 cmpq $244140625, %rax - 0x0f, 0x82, 0x24, 0x01, 0x00, 0x00, //0x000003d9 jb LBB1_31 - 0x48, 0x89, 0xf8, //0x000003df movq %rdi, %rax - 0x48, 0xc1, 0xe8, 0x0d, //0x000003e2 shrq $13, %rax - 0xba, 0x0d, 0x00, 0x00, 0x00, //0x000003e6 movl $13, %edx - 0x48, 0x3d, 0x95, 0x73, 0xc2, 0x48, //0x000003eb cmpq $1220703125, %rax - 0x0f, 0x82, 0x0c, 0x01, 0x00, 0x00, //0x000003f1 jb LBB1_31 - 0xba, 0x0e, 0x00, 0x00, 0x00, //0x000003f7 movl $14, %edx - 0x48, 0xb8, 0x00, 0x40, 0x7a, 0x10, 0xf3, 0x5a, 0x00, 0x00, //0x000003fc movabsq $100000000000000, %rax - 0x48, 0x39, 0xc7, //0x00000406 cmpq %rax, %rdi - 0x0f, 0x82, 0xf4, 0x00, 0x00, 0x00, //0x00000409 jb LBB1_31 - 0xba, 0x0f, 0x00, 0x00, 0x00, //0x0000040f movl $15, %edx - 0x48, 0xb8, 0x00, 0x80, 0xc6, 0xa4, 0x7e, 0x8d, 0x03, 0x00, //0x00000414 movabsq $1000000000000000, %rax - 0x48, 0x39, 0xc7, //0x0000041e cmpq %rax, %rdi - 0x0f, 0x82, 0xdc, 0x00, 0x00, 0x00, //0x00000421 jb LBB1_31 - 0x48, 0xb8, 0x00, 0x00, 0xc1, 0x6f, 0xf2, 0x86, 0x23, 0x00, //0x00000427 movabsq $10000000000000000, %rax - 0x48, 0x39, 0xc7, //0x00000431 cmpq %rax, %rdi - 0xba, 0x11, 0x00, 0x00, 0x00, //0x00000434 movl $17, %edx - //0x00000439 LBB1_21 - 0x83, 0xda, 0x00, //0x00000439 sbbl $0, %edx - 0xe9, 0xc2, 0x00, 0x00, 0x00, //0x0000043c jmp LBB1_31 - //0x00000441 LBB1_6 - 0x41, 0xc6, 0x07, 0x30, //0x00000441 movb $48, (%r15) - 0x41, 0x29, 0xf7, //0x00000445 subl %esi, %r15d - 0x41, 0x83, 0xc7, 0x01, //0x00000448 addl $1, %r15d - 0x44, 0x89, 0xfb, //0x0000044c movl %r15d, %ebx - 0xe9, 0x4e, 0x09, 0x00, 0x00, //0x0000044f jmp LBB1_128 - //0x00000454 LBB1_14 - 0x48, 0x39, 0xf9, //0x00000454 cmpq %rdi, %rcx - 0x48, 0x83, 0xde, 0xff, //0x00000457 sbbq $-1, %rsi - 0x48, 0x89, 0xf7, //0x0000045b movq %rsi, %rdi - 0x49, 0xbc, 0x80, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, //0x0000045e movabsq $8589934464, %r12 - 0x49, 0x8d, 0x84, 0x24, 0x7f, 0xe4, 0x0b, 0x54, //0x00000468 leaq $1410065535(%r12), %rax - 0x48, 0x39, 0xc7, //0x00000470 cmpq %rax, %rdi - 0x0f, 0x87, 0x36, 0xff, 0xff, 0xff, //0x00000473 ja LBB1_15 - //0x00000479 LBB1_23 - 0xba, 0x01, 0x00, 0x00, 0x00, //0x00000479 movl $1, %edx - 0x48, 0x83, 0xff, 0x0a, //0x0000047e cmpq $10, %rdi - 0x0f, 0x82, 0x7b, 0x00, 0x00, 0x00, //0x00000482 jb LBB1_31 - 0xba, 0x02, 0x00, 0x00, 0x00, //0x00000488 movl $2, %edx - 0x48, 0x83, 0xff, 0x64, //0x0000048d cmpq $100, %rdi - 0x0f, 0x82, 0x6c, 0x00, 0x00, 0x00, //0x00000491 jb LBB1_31 - 0xba, 0x03, 0x00, 0x00, 0x00, //0x00000497 movl $3, %edx - 0x48, 0x81, 0xff, 0xe8, 0x03, 0x00, 0x00, //0x0000049c cmpq $1000, %rdi - 0x0f, 0x82, 0x5a, 0x00, 0x00, 0x00, //0x000004a3 jb LBB1_31 - 0xba, 0x04, 0x00, 0x00, 0x00, //0x000004a9 movl $4, %edx - 0x48, 0x81, 0xff, 0x10, 0x27, 0x00, 0x00, //0x000004ae cmpq $10000, %rdi - 0x0f, 0x82, 0x48, 0x00, 0x00, 0x00, //0x000004b5 jb LBB1_31 - 0xba, 0x05, 0x00, 0x00, 0x00, //0x000004bb movl $5, %edx - 0x48, 0x81, 0xff, 0xa0, 0x86, 0x01, 0x00, //0x000004c0 cmpq $100000, %rdi - 0x0f, 0x82, 0x36, 0x00, 0x00, 0x00, //0x000004c7 jb LBB1_31 - 0xba, 0x06, 0x00, 0x00, 0x00, //0x000004cd movl $6, %edx - 0x48, 0x81, 0xff, 0x40, 0x42, 0x0f, 0x00, //0x000004d2 cmpq $1000000, %rdi - 0x0f, 0x82, 0x24, 0x00, 0x00, 0x00, //0x000004d9 jb LBB1_31 - 0xba, 0x07, 0x00, 0x00, 0x00, //0x000004df movl $7, %edx - 0x48, 0x81, 0xff, 0x80, 0x96, 0x98, 0x00, //0x000004e4 cmpq $10000000, %rdi - 0x0f, 0x82, 0x12, 0x00, 0x00, 0x00, //0x000004eb jb LBB1_31 - 0xba, 0x08, 0x00, 0x00, 0x00, //0x000004f1 movl $8, %edx - 0x48, 0x81, 0xff, 0x00, 0xe1, 0xf5, 0x05, //0x000004f6 cmpq $100000000, %rdi - 0x0f, 0x83, 0xd4, 0x08, 0x00, 0x00, //0x000004fd jae LBB1_129 - //0x00000503 LBB1_31 - 0x46, 0x8d, 0x34, 0x12, //0x00000503 leal (%rdx,%r10), %r14d - 0x42, 0x8d, 0x04, 0x12, //0x00000507 leal (%rdx,%r10), %eax - 0x83, 0xc0, 0x05, //0x0000050b addl $5, %eax - 0x83, 0xf8, 0x1b, //0x0000050e cmpl $27, %eax - 0x0f, 0x82, 0x99, 0x00, 0x00, 0x00, //0x00000511 jb LBB1_39 - 0x4d, 0x8d, 0x67, 0x01, //0x00000517 leaq $1(%r15), %r12 - 0x4c, 0x89, 0xe6, //0x0000051b movq %r12, %rsi - 0xe8, 0xed, 0x94, 0x00, 0x00, //0x0000051e callq _format_significand - 0x48, 0x89, 0xc3, //0x00000523 movq %rax, %rbx - 0x48, 0x8b, 0x7d, 0xd0, //0x00000526 movq $-48(%rbp), %rdi - 0x48, 0x29, 0xf8, //0x0000052a subq %rdi, %rax - 0x4c, 0x29, 0xe8, //0x0000052d subq %r13, %rax - //0x00000530 .p2align 4, 0x90 - //0x00000530 LBB1_33 - 0x48, 0x83, 0xc0, 0xff, //0x00000530 addq $-1, %rax - 0x80, 0x7b, 0xff, 0x30, //0x00000534 cmpb $48, $-1(%rbx) - 0x48, 0x8d, 0x5b, 0xff, //0x00000538 leaq $-1(%rbx), %rbx - 0x0f, 0x84, 0xee, 0xff, 0xff, 0xff, //0x0000053c je LBB1_33 - 0x41, 0x8a, 0x4f, 0x01, //0x00000542 movb $1(%r15), %cl - 0x41, 0x88, 0x0f, //0x00000546 movb %cl, (%r15) - 0x48, 0x83, 0xf8, 0x02, //0x00000549 cmpq $2, %rax - 0x0f, 0x8c, 0x09, 0x00, 0x00, 0x00, //0x0000054d jl LBB1_36 - 0x48, 0x83, 0xc3, 0x01, //0x00000553 addq $1, %rbx - 0x41, 0xc6, 0x04, 0x24, 0x2e, //0x00000557 movb $46, (%r12) - //0x0000055c LBB1_36 - 0xc6, 0x03, 0x65, //0x0000055c movb $101, (%rbx) - 0x45, 0x85, 0xf6, //0x0000055f testl %r14d, %r14d - 0x0f, 0x8e, 0x5e, 0x01, 0x00, 0x00, //0x00000562 jle LBB1_51 - 0x41, 0x83, 0xc6, 0xff, //0x00000568 addl $-1, %r14d - 0xc6, 0x43, 0x01, 0x2b, //0x0000056c movb $43, $1(%rbx) - 0x44, 0x89, 0xf0, //0x00000570 movl %r14d, %eax - 0x83, 0xf8, 0x64, //0x00000573 cmpl $100, %eax - 0x0f, 0x8c, 0x5f, 0x01, 0x00, 0x00, //0x00000576 jl LBB1_52 - //0x0000057c LBB1_38 - 0x89, 0xc1, //0x0000057c movl %eax, %ecx - 0xba, 0xcd, 0xcc, 0xcc, 0xcc, //0x0000057e movl $3435973837, %edx - 0x48, 0x0f, 0xaf, 0xd1, //0x00000583 imulq %rcx, %rdx - 0x48, 0xc1, 0xea, 0x23, //0x00000587 shrq $35, %rdx - 0x8d, 0x0c, 0x12, //0x0000058b leal (%rdx,%rdx), %ecx - 0x8d, 0x0c, 0x89, //0x0000058e leal (%rcx,%rcx,4), %ecx - 0x29, 0xc8, //0x00000591 subl %ecx, %eax - 0x48, 0x8d, 0x0d, 0x46, 0xcc, 0x00, 0x00, //0x00000593 leaq $52294(%rip), %rcx /* _Digits+0(%rip) */ - 0x0f, 0xb7, 0x0c, 0x51, //0x0000059a movzwl (%rcx,%rdx,2), %ecx - 0x66, 0x89, 0x4b, 0x02, //0x0000059e movw %cx, $2(%rbx) - 0x0c, 0x30, //0x000005a2 orb $48, %al - 0x88, 0x43, 0x04, //0x000005a4 movb %al, $4(%rbx) - 0x48, 0x83, 0xc3, 0x05, //0x000005a7 addq $5, %rbx - 0xe9, 0xf0, 0x07, 0x00, 0x00, //0x000005ab jmp LBB1_127 - //0x000005b0 LBB1_39 - 0x45, 0x85, 0xd2, //0x000005b0 testl %r10d, %r10d - 0x0f, 0x88, 0x45, 0x01, 0x00, 0x00, //0x000005b3 js LBB1_54 - 0x4d, 0x63, 0xf6, //0x000005b9 movslq %r14d, %r14 - 0x4b, 0x8d, 0x1c, 0x37, //0x000005bc leaq (%r15,%r14), %rbx - 0x4c, 0x89, 0xfe, //0x000005c0 movq %r15, %rsi - 0xe8, 0x58, 0x08, 0x00, 0x00, //0x000005c3 callq _format_integer - 0x48, 0x39, 0xd8, //0x000005c8 cmpq %rbx, %rax - 0x0f, 0x83, 0xcb, 0x07, 0x00, 0x00, //0x000005cb jae LBB1_104 - 0x4d, 0x01, 0xf7, //0x000005d1 addq %r14, %r15 - 0x4d, 0x89, 0xf8, //0x000005d4 movq %r15, %r8 - 0x49, 0x29, 0xc0, //0x000005d7 subq %rax, %r8 - 0x49, 0x83, 0xf8, 0x10, //0x000005da cmpq $16, %r8 - 0x0f, 0x83, 0x2a, 0x02, 0x00, 0x00, //0x000005de jae LBB1_70 - //0x000005e4 LBB1_42 - 0x48, 0x89, 0xc1, //0x000005e4 movq %rax, %rcx - 0xe9, 0xaf, 0x03, 0x00, 0x00, //0x000005e7 jmp LBB1_86 - //0x000005ec LBB1_22 - 0x88, 0xd0, //0x000005ec movb %dl, %al - 0x48, 0x01, 0xc7, //0x000005ee addq %rax, %rdi - 0x41, 0x83, 0xc2, 0x01, //0x000005f1 addl $1, %r10d - 0x49, 0xbc, 0x80, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, //0x000005f5 movabsq $8589934464, %r12 - 0x49, 0x8d, 0x84, 0x24, 0x7f, 0xe4, 0x0b, 0x54, //0x000005ff leaq $1410065535(%r12), %rax - 0x48, 0x39, 0xc7, //0x00000607 cmpq %rax, %rdi - 0x0f, 0x87, 0x9f, 0xfd, 0xff, 0xff, //0x0000060a ja LBB1_15 - 0xe9, 0x64, 0xfe, 0xff, 0xff, //0x00000610 jmp LBB1_23 - //0x00000615 LBB1_43 - 0x48, 0xd3, 0xef, //0x00000615 shrq %cl, %rdi - 0x48, 0xb8, 0x80, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, //0x00000618 movabsq $8589934464, %rax - 0x48, 0x05, 0x7f, 0xe4, 0x0b, 0x54, //0x00000622 addq $1410065535, %rax - 0x49, 0x89, 0xf6, //0x00000628 movq %rsi, %r14 - 0x48, 0x39, 0xc7, //0x0000062b cmpq %rax, %rdi - 0x0f, 0x86, 0x3d, 0x01, 0x00, 0x00, //0x0000062e jbe LBB1_61 - 0x48, 0x89, 0xf8, //0x00000634 movq %rdi, %rax - 0x48, 0xc1, 0xe8, 0x0b, //0x00000637 shrq $11, %rax - 0xba, 0x0b, 0x00, 0x00, 0x00, //0x0000063b movl $11, %edx - 0x48, 0x3d, 0xdd, 0x0e, 0xe9, 0x02, //0x00000640 cmpq $48828125, %rax - 0x0f, 0x82, 0xaf, 0x01, 0x00, 0x00, //0x00000646 jb LBB1_69 - 0x48, 0x89, 0xf8, //0x0000064c movq %rdi, %rax - 0x48, 0xc1, 0xe8, 0x0c, //0x0000064f shrq $12, %rax - 0xba, 0x0c, 0x00, 0x00, 0x00, //0x00000653 movl $12, %edx - 0x48, 0x3d, 0x51, 0x4a, 0x8d, 0x0e, //0x00000658 cmpq $244140625, %rax - 0x0f, 0x82, 0x97, 0x01, 0x00, 0x00, //0x0000065e jb LBB1_69 - 0x48, 0x89, 0xf8, //0x00000664 movq %rdi, %rax - 0x48, 0xc1, 0xe8, 0x0d, //0x00000667 shrq $13, %rax - 0xba, 0x0d, 0x00, 0x00, 0x00, //0x0000066b movl $13, %edx - 0x48, 0x3d, 0x95, 0x73, 0xc2, 0x48, //0x00000670 cmpq $1220703125, %rax - 0x0f, 0x82, 0x7f, 0x01, 0x00, 0x00, //0x00000676 jb LBB1_69 - 0xba, 0x0e, 0x00, 0x00, 0x00, //0x0000067c movl $14, %edx - 0x48, 0xb8, 0x00, 0x40, 0x7a, 0x10, 0xf3, 0x5a, 0x00, 0x00, //0x00000681 movabsq $100000000000000, %rax - 0x48, 0x39, 0xc7, //0x0000068b cmpq %rax, %rdi - 0x0f, 0x82, 0x67, 0x01, 0x00, 0x00, //0x0000068e jb LBB1_69 - 0xba, 0x0f, 0x00, 0x00, 0x00, //0x00000694 movl $15, %edx - 0x48, 0xb8, 0x00, 0x80, 0xc6, 0xa4, 0x7e, 0x8d, 0x03, 0x00, //0x00000699 movabsq $1000000000000000, %rax - 0x48, 0x39, 0xc7, //0x000006a3 cmpq %rax, %rdi - 0x0f, 0x82, 0x4f, 0x01, 0x00, 0x00, //0x000006a6 jb LBB1_69 - 0x48, 0xb8, 0x00, 0x00, 0xc1, 0x6f, 0xf2, 0x86, 0x23, 0x00, //0x000006ac movabsq $10000000000000000, %rax - 0x48, 0x39, 0xc7, //0x000006b6 cmpq %rax, %rdi - 0xba, 0x11, 0x00, 0x00, 0x00, //0x000006b9 movl $17, %edx - //0x000006be LBB1_50 - 0x83, 0xda, 0x00, //0x000006be sbbl $0, %edx - 0xe9, 0x35, 0x01, 0x00, 0x00, //0x000006c1 jmp LBB1_69 - //0x000006c6 LBB1_51 - 0xc6, 0x43, 0x01, 0x2d, //0x000006c6 movb $45, $1(%rbx) - 0xb8, 0x01, 0x00, 0x00, 0x00, //0x000006ca movl $1, %eax - 0x44, 0x29, 0xf0, //0x000006cf subl %r14d, %eax - 0x83, 0xf8, 0x64, //0x000006d2 cmpl $100, %eax - 0x0f, 0x8d, 0xa1, 0xfe, 0xff, 0xff, //0x000006d5 jge LBB1_38 - //0x000006db LBB1_52 - 0x83, 0xf8, 0x0a, //0x000006db cmpl $10, %eax - 0x0f, 0x8c, 0x7f, 0x00, 0x00, 0x00, //0x000006de jl LBB1_60 - 0x89, 0xc0, //0x000006e4 movl %eax, %eax - 0x48, 0x8d, 0x0d, 0xf3, 0xca, 0x00, 0x00, //0x000006e6 leaq $51955(%rip), %rcx /* _Digits+0(%rip) */ - 0x0f, 0xb7, 0x04, 0x41, //0x000006ed movzwl (%rcx,%rax,2), %eax - 0x66, 0x89, 0x43, 0x02, //0x000006f1 movw %ax, $2(%rbx) - 0x48, 0x83, 0xc3, 0x04, //0x000006f5 addq $4, %rbx - 0xe9, 0xa2, 0x06, 0x00, 0x00, //0x000006f9 jmp LBB1_127 - //0x000006fe LBB1_54 - 0x45, 0x85, 0xf6, //0x000006fe testl %r14d, %r14d - 0x0f, 0x8f, 0xda, 0x03, 0x00, 0x00, //0x00000701 jg LBB1_97 - 0x66, 0x41, 0xc7, 0x07, 0x30, 0x2e, //0x00000707 movw $11824, (%r15) - 0x49, 0x83, 0xc7, 0x02, //0x0000070d addq $2, %r15 - 0x45, 0x85, 0xf6, //0x00000711 testl %r14d, %r14d - 0x0f, 0x89, 0xc7, 0x03, 0x00, 0x00, //0x00000714 jns LBB1_97 - 0x41, 0x89, 0xd0, //0x0000071a movl %edx, %r8d - 0x41, 0xf7, 0xd0, //0x0000071d notl %r8d - 0x45, 0x29, 0xd0, //0x00000720 subl %r10d, %r8d - 0x31, 0xc0, //0x00000723 xorl %eax, %eax - 0x41, 0x83, 0xf8, 0x7f, //0x00000725 cmpl $127, %r8d - 0x0f, 0x82, 0x94, 0x03, 0x00, 0x00, //0x00000729 jb LBB1_95 - 0x49, 0x83, 0xc0, 0x01, //0x0000072f addq $1, %r8 - 0x4c, 0x89, 0xc0, //0x00000733 movq %r8, %rax - 0x4c, 0x21, 0xe0, //0x00000736 andq %r12, %rax - 0x48, 0x8d, 0x48, 0x80, //0x00000739 leaq $-128(%rax), %rcx - 0x48, 0x89, 0xce, //0x0000073d movq %rcx, %rsi - 0x48, 0xc1, 0xee, 0x07, //0x00000740 shrq $7, %rsi - 0x48, 0x83, 0xc6, 0x01, //0x00000744 addq $1, %rsi - 0x41, 0x89, 0xf1, //0x00000748 movl %esi, %r9d - 0x41, 0x83, 0xe1, 0x03, //0x0000074b andl $3, %r9d - 0x48, 0x81, 0xf9, 0x80, 0x01, 0x00, 0x00, //0x0000074f cmpq $384, %rcx - 0x0f, 0x83, 0x61, 0x02, 0x00, 0x00, //0x00000756 jae LBB1_89 - 0x31, 0xc9, //0x0000075c xorl %ecx, %ecx - 0xe9, 0x0b, 0x03, 0x00, 0x00, //0x0000075e jmp LBB1_91 - //0x00000763 LBB1_60 - 0x04, 0x30, //0x00000763 addb $48, %al - 0x88, 0x43, 0x02, //0x00000765 movb %al, $2(%rbx) - 0x48, 0x83, 0xc3, 0x03, //0x00000768 addq $3, %rbx - 0xe9, 0x2f, 0x06, 0x00, 0x00, //0x0000076c jmp LBB1_127 - //0x00000771 LBB1_61 - 0xba, 0x01, 0x00, 0x00, 0x00, //0x00000771 movl $1, %edx - 0x48, 0x83, 0xff, 0x0a, //0x00000776 cmpq $10, %rdi - 0x0f, 0x82, 0x7b, 0x00, 0x00, 0x00, //0x0000077a jb LBB1_69 - 0xba, 0x02, 0x00, 0x00, 0x00, //0x00000780 movl $2, %edx - 0x48, 0x83, 0xff, 0x64, //0x00000785 cmpq $100, %rdi - 0x0f, 0x82, 0x6c, 0x00, 0x00, 0x00, //0x00000789 jb LBB1_69 - 0xba, 0x03, 0x00, 0x00, 0x00, //0x0000078f movl $3, %edx - 0x48, 0x81, 0xff, 0xe8, 0x03, 0x00, 0x00, //0x00000794 cmpq $1000, %rdi - 0x0f, 0x82, 0x5a, 0x00, 0x00, 0x00, //0x0000079b jb LBB1_69 - 0xba, 0x04, 0x00, 0x00, 0x00, //0x000007a1 movl $4, %edx - 0x48, 0x81, 0xff, 0x10, 0x27, 0x00, 0x00, //0x000007a6 cmpq $10000, %rdi - 0x0f, 0x82, 0x48, 0x00, 0x00, 0x00, //0x000007ad jb LBB1_69 - 0xba, 0x05, 0x00, 0x00, 0x00, //0x000007b3 movl $5, %edx - 0x48, 0x81, 0xff, 0xa0, 0x86, 0x01, 0x00, //0x000007b8 cmpq $100000, %rdi - 0x0f, 0x82, 0x36, 0x00, 0x00, 0x00, //0x000007bf jb LBB1_69 - 0xba, 0x06, 0x00, 0x00, 0x00, //0x000007c5 movl $6, %edx - 0x48, 0x81, 0xff, 0x40, 0x42, 0x0f, 0x00, //0x000007ca cmpq $1000000, %rdi - 0x0f, 0x82, 0x24, 0x00, 0x00, 0x00, //0x000007d1 jb LBB1_69 - 0xba, 0x07, 0x00, 0x00, 0x00, //0x000007d7 movl $7, %edx - 0x48, 0x81, 0xff, 0x80, 0x96, 0x98, 0x00, //0x000007dc cmpq $10000000, %rdi - 0x0f, 0x82, 0x12, 0x00, 0x00, 0x00, //0x000007e3 jb LBB1_69 - 0xba, 0x08, 0x00, 0x00, 0x00, //0x000007e9 movl $8, %edx - 0x48, 0x81, 0xff, 0x00, 0xe1, 0xf5, 0x05, //0x000007ee cmpq $100000000, %rdi - 0x0f, 0x83, 0x06, 0x06, 0x00, 0x00, //0x000007f5 jae LBB1_132 - //0x000007fb LBB1_69 - 0x4c, 0x89, 0xfe, //0x000007fb movq %r15, %rsi - 0xe8, 0x1d, 0x06, 0x00, 0x00, //0x000007fe callq _format_integer - 0x48, 0x89, 0xc3, //0x00000803 movq %rax, %rbx - 0x44, 0x29, 0xf3, //0x00000806 subl %r14d, %ebx - 0xe9, 0x94, 0x05, 0x00, 0x00, //0x00000809 jmp LBB1_128 - //0x0000080e LBB1_70 - 0x49, 0x81, 0xf8, 0x80, 0x00, 0x00, 0x00, //0x0000080e cmpq $128, %r8 - 0x0f, 0x83, 0x07, 0x00, 0x00, 0x00, //0x00000815 jae LBB1_72 - 0x31, 0xd2, //0x0000081b xorl %edx, %edx - 0xe9, 0x45, 0x01, 0x00, 0x00, //0x0000081d jmp LBB1_82 - //0x00000822 LBB1_72 - 0x4c, 0x89, 0xc2, //0x00000822 movq %r8, %rdx - 0x48, 0x83, 0xe2, 0x80, //0x00000825 andq $-128, %rdx - 0x48, 0x8d, 0x4a, 0x80, //0x00000829 leaq $-128(%rdx), %rcx - 0x48, 0x89, 0xcf, //0x0000082d movq %rcx, %rdi - 0x48, 0xc1, 0xef, 0x07, //0x00000830 shrq $7, %rdi - 0x48, 0x83, 0xc7, 0x01, //0x00000834 addq $1, %rdi - 0x89, 0xfe, //0x00000838 movl %edi, %esi - 0x83, 0xe6, 0x03, //0x0000083a andl $3, %esi - 0x48, 0x81, 0xf9, 0x80, 0x01, 0x00, 0x00, //0x0000083d cmpq $384, %rcx - 0x0f, 0x83, 0x07, 0x00, 0x00, 0x00, //0x00000844 jae LBB1_74 - 0x31, 0xc9, //0x0000084a xorl %ecx, %ecx - 0xe9, 0xb3, 0x00, 0x00, 0x00, //0x0000084c jmp LBB1_76 - //0x00000851 LBB1_74 - 0x48, 0x83, 0xe7, 0xfc, //0x00000851 andq $-4, %rdi - 0x48, 0xf7, 0xdf, //0x00000855 negq %rdi - 0x31, 0xc9, //0x00000858 xorl %ecx, %ecx - 0xc5, 0xfd, 0x6f, 0x05, 0xde, 0xf8, 0xff, 0xff, //0x0000085a vmovdqa $-1826(%rip), %ymm0 /* LCPI1_0+0(%rip) */ - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000862 .p2align 4, 0x90 - //0x00000870 LBB1_75 - 0xc5, 0xfe, 0x7f, 0x04, 0x08, //0x00000870 vmovdqu %ymm0, (%rax,%rcx) - 0xc5, 0xfe, 0x7f, 0x44, 0x08, 0x20, //0x00000875 vmovdqu %ymm0, $32(%rax,%rcx) - 0xc5, 0xfe, 0x7f, 0x44, 0x08, 0x40, //0x0000087b vmovdqu %ymm0, $64(%rax,%rcx) - 0xc5, 0xfe, 0x7f, 0x44, 0x08, 0x60, //0x00000881 vmovdqu %ymm0, $96(%rax,%rcx) - 0xc5, 0xfe, 0x7f, 0x84, 0x08, 0x80, 0x00, 0x00, 0x00, //0x00000887 vmovdqu %ymm0, $128(%rax,%rcx) - 0xc5, 0xfe, 0x7f, 0x84, 0x08, 0xa0, 0x00, 0x00, 0x00, //0x00000890 vmovdqu %ymm0, $160(%rax,%rcx) - 0xc5, 0xfe, 0x7f, 0x84, 0x08, 0xc0, 0x00, 0x00, 0x00, //0x00000899 vmovdqu %ymm0, $192(%rax,%rcx) - 0xc5, 0xfe, 0x7f, 0x84, 0x08, 0xe0, 0x00, 0x00, 0x00, //0x000008a2 vmovdqu %ymm0, $224(%rax,%rcx) - 0xc5, 0xfe, 0x7f, 0x84, 0x08, 0x00, 0x01, 0x00, 0x00, //0x000008ab vmovdqu %ymm0, $256(%rax,%rcx) - 0xc5, 0xfe, 0x7f, 0x84, 0x08, 0x20, 0x01, 0x00, 0x00, //0x000008b4 vmovdqu %ymm0, $288(%rax,%rcx) - 0xc5, 0xfe, 0x7f, 0x84, 0x08, 0x40, 0x01, 0x00, 0x00, //0x000008bd vmovdqu %ymm0, $320(%rax,%rcx) - 0xc5, 0xfe, 0x7f, 0x84, 0x08, 0x60, 0x01, 0x00, 0x00, //0x000008c6 vmovdqu %ymm0, $352(%rax,%rcx) - 0xc5, 0xfe, 0x7f, 0x84, 0x08, 0x80, 0x01, 0x00, 0x00, //0x000008cf vmovdqu %ymm0, $384(%rax,%rcx) - 0xc5, 0xfe, 0x7f, 0x84, 0x08, 0xa0, 0x01, 0x00, 0x00, //0x000008d8 vmovdqu %ymm0, $416(%rax,%rcx) - 0xc5, 0xfe, 0x7f, 0x84, 0x08, 0xc0, 0x01, 0x00, 0x00, //0x000008e1 vmovdqu %ymm0, $448(%rax,%rcx) - 0xc5, 0xfe, 0x7f, 0x84, 0x08, 0xe0, 0x01, 0x00, 0x00, //0x000008ea vmovdqu %ymm0, $480(%rax,%rcx) - 0x48, 0x81, 0xc1, 0x00, 0x02, 0x00, 0x00, //0x000008f3 addq $512, %rcx - 0x48, 0x83, 0xc7, 0x04, //0x000008fa addq $4, %rdi - 0x0f, 0x85, 0x6c, 0xff, 0xff, 0xff, //0x000008fe jne LBB1_75 - //0x00000904 LBB1_76 - 0x48, 0x85, 0xf6, //0x00000904 testq %rsi, %rsi - 0x0f, 0x84, 0x47, 0x00, 0x00, 0x00, //0x00000907 je LBB1_79 - 0x48, 0x01, 0xc1, //0x0000090d addq %rax, %rcx - 0x48, 0x83, 0xc1, 0x60, //0x00000910 addq $96, %rcx - 0x48, 0xc1, 0xe6, 0x07, //0x00000914 shlq $7, %rsi - 0x31, 0xff, //0x00000918 xorl %edi, %edi - 0xc5, 0xfd, 0x6f, 0x05, 0x1e, 0xf8, 0xff, 0xff, //0x0000091a vmovdqa $-2018(%rip), %ymm0 /* LCPI1_0+0(%rip) */ - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000922 .p2align 4, 0x90 - //0x00000930 LBB1_78 - 0xc5, 0xfe, 0x7f, 0x44, 0x39, 0xa0, //0x00000930 vmovdqu %ymm0, $-96(%rcx,%rdi) - 0xc5, 0xfe, 0x7f, 0x44, 0x39, 0xc0, //0x00000936 vmovdqu %ymm0, $-64(%rcx,%rdi) - 0xc5, 0xfe, 0x7f, 0x44, 0x39, 0xe0, //0x0000093c vmovdqu %ymm0, $-32(%rcx,%rdi) - 0xc5, 0xfe, 0x7f, 0x04, 0x39, //0x00000942 vmovdqu %ymm0, (%rcx,%rdi) - 0x48, 0x83, 0xef, 0x80, //0x00000947 subq $-128, %rdi - 0x48, 0x39, 0xfe, //0x0000094b cmpq %rdi, %rsi - 0x0f, 0x85, 0xdc, 0xff, 0xff, 0xff, //0x0000094e jne LBB1_78 - //0x00000954 LBB1_79 - 0x49, 0x39, 0xd0, //0x00000954 cmpq %rdx, %r8 - 0x0f, 0x84, 0x3f, 0x04, 0x00, 0x00, //0x00000957 je LBB1_104 - 0x41, 0xf6, 0xc0, 0x70, //0x0000095d testb $112, %r8b - 0x0f, 0x84, 0x4e, 0x00, 0x00, 0x00, //0x00000961 je LBB1_88 - //0x00000967 LBB1_82 - 0x4c, 0x89, 0xc6, //0x00000967 movq %r8, %rsi - 0x48, 0x83, 0xe6, 0xf0, //0x0000096a andq $-16, %rsi - 0x48, 0x89, 0xc1, //0x0000096e movq %rax, %rcx - 0x48, 0x01, 0xf1, //0x00000971 addq %rsi, %rcx - 0xc5, 0xf9, 0x6f, 0x05, 0xe4, 0xf7, 0xff, 0xff, //0x00000974 vmovdqa $-2076(%rip), %xmm0 /* LCPI1_1+0(%rip) */ - 0x90, 0x90, 0x90, 0x90, //0x0000097c .p2align 4, 0x90 - //0x00000980 LBB1_83 - 0xc5, 0xfa, 0x7f, 0x04, 0x10, //0x00000980 vmovdqu %xmm0, (%rax,%rdx) - 0x48, 0x83, 0xc2, 0x10, //0x00000985 addq $16, %rdx - 0x48, 0x39, 0xd6, //0x00000989 cmpq %rdx, %rsi - 0x0f, 0x85, 0xee, 0xff, 0xff, 0xff, //0x0000098c jne LBB1_83 - 0x49, 0x39, 0xf0, //0x00000992 cmpq %rsi, %r8 - 0x0f, 0x84, 0x01, 0x04, 0x00, 0x00, //0x00000995 je LBB1_104 - //0x0000099b LBB1_86 - 0x48, 0x8b, 0x7d, 0xd0, //0x0000099b movq $-48(%rbp), %rdi - 0x90, //0x0000099f .p2align 4, 0x90 - //0x000009a0 LBB1_87 - 0xc6, 0x01, 0x30, //0x000009a0 movb $48, (%rcx) - 0x48, 0x83, 0xc1, 0x01, //0x000009a3 addq $1, %rcx - 0x4c, 0x39, 0xf9, //0x000009a7 cmpq %r15, %rcx - 0x0f, 0x85, 0xf0, 0xff, 0xff, 0xff, //0x000009aa jne LBB1_87 - 0xe9, 0xeb, 0x03, 0x00, 0x00, //0x000009b0 jmp LBB1_127 - //0x000009b5 LBB1_88 - 0x48, 0x01, 0xd0, //0x000009b5 addq %rdx, %rax - 0xe9, 0x27, 0xfc, 0xff, 0xff, //0x000009b8 jmp LBB1_42 - //0x000009bd LBB1_89 - 0x48, 0x8b, 0x4d, 0xd0, //0x000009bd movq $-48(%rbp), %rcx - 0x4a, 0x8d, 0x1c, 0x29, //0x000009c1 leaq (%rcx,%r13), %rbx - 0x48, 0x81, 0xc3, 0xe2, 0x01, 0x00, 0x00, //0x000009c5 addq $482, %rbx - 0x48, 0x83, 0xe6, 0xfc, //0x000009cc andq $-4, %rsi - 0x48, 0xf7, 0xde, //0x000009d0 negq %rsi - 0x31, 0xc9, //0x000009d3 xorl %ecx, %ecx - 0xc5, 0xfd, 0x6f, 0x05, 0x63, 0xf7, 0xff, 0xff, //0x000009d5 vmovdqa $-2205(%rip), %ymm0 /* LCPI1_0+0(%rip) */ - //0x000009dd LBB1_90 - 0xc5, 0xfe, 0x7f, 0x84, 0x0b, 0x20, 0xfe, 0xff, 0xff, //0x000009dd vmovdqu %ymm0, $-480(%rbx,%rcx) - 0xc5, 0xfe, 0x7f, 0x84, 0x0b, 0x40, 0xfe, 0xff, 0xff, //0x000009e6 vmovdqu %ymm0, $-448(%rbx,%rcx) - 0xc5, 0xfe, 0x7f, 0x84, 0x0b, 0x60, 0xfe, 0xff, 0xff, //0x000009ef vmovdqu %ymm0, $-416(%rbx,%rcx) - 0xc5, 0xfe, 0x7f, 0x84, 0x0b, 0x80, 0xfe, 0xff, 0xff, //0x000009f8 vmovdqu %ymm0, $-384(%rbx,%rcx) - 0xc5, 0xfe, 0x7f, 0x84, 0x0b, 0xa0, 0xfe, 0xff, 0xff, //0x00000a01 vmovdqu %ymm0, $-352(%rbx,%rcx) - 0xc5, 0xfe, 0x7f, 0x84, 0x0b, 0xc0, 0xfe, 0xff, 0xff, //0x00000a0a vmovdqu %ymm0, $-320(%rbx,%rcx) - 0xc5, 0xfe, 0x7f, 0x84, 0x0b, 0xe0, 0xfe, 0xff, 0xff, //0x00000a13 vmovdqu %ymm0, $-288(%rbx,%rcx) - 0xc5, 0xfe, 0x7f, 0x84, 0x0b, 0x00, 0xff, 0xff, 0xff, //0x00000a1c vmovdqu %ymm0, $-256(%rbx,%rcx) - 0xc5, 0xfe, 0x7f, 0x84, 0x0b, 0x20, 0xff, 0xff, 0xff, //0x00000a25 vmovdqu %ymm0, $-224(%rbx,%rcx) - 0xc5, 0xfe, 0x7f, 0x84, 0x0b, 0x40, 0xff, 0xff, 0xff, //0x00000a2e vmovdqu %ymm0, $-192(%rbx,%rcx) - 0xc5, 0xfe, 0x7f, 0x84, 0x0b, 0x60, 0xff, 0xff, 0xff, //0x00000a37 vmovdqu %ymm0, $-160(%rbx,%rcx) - 0xc5, 0xfe, 0x7f, 0x44, 0x0b, 0x80, //0x00000a40 vmovdqu %ymm0, $-128(%rbx,%rcx) - 0xc5, 0xfe, 0x7f, 0x44, 0x0b, 0xa0, //0x00000a46 vmovdqu %ymm0, $-96(%rbx,%rcx) - 0xc5, 0xfe, 0x7f, 0x44, 0x0b, 0xc0, //0x00000a4c vmovdqu %ymm0, $-64(%rbx,%rcx) - 0xc5, 0xfe, 0x7f, 0x44, 0x0b, 0xe0, //0x00000a52 vmovdqu %ymm0, $-32(%rbx,%rcx) - 0xc5, 0xfe, 0x7f, 0x04, 0x0b, //0x00000a58 vmovdqu %ymm0, (%rbx,%rcx) - 0x48, 0x81, 0xc1, 0x00, 0x02, 0x00, 0x00, //0x00000a5d addq $512, %rcx - 0x48, 0x83, 0xc6, 0x04, //0x00000a64 addq $4, %rsi - 0x0f, 0x85, 0x6f, 0xff, 0xff, 0xff, //0x00000a68 jne LBB1_90 - //0x00000a6e LBB1_91 - 0x4d, 0x85, 0xc9, //0x00000a6e testq %r9, %r9 - 0x0f, 0x84, 0x40, 0x00, 0x00, 0x00, //0x00000a71 je LBB1_94 - 0x4c, 0x01, 0xe9, //0x00000a77 addq %r13, %rcx - 0x48, 0x8b, 0x75, 0xd0, //0x00000a7a movq $-48(%rbp), %rsi - 0x48, 0x01, 0xf1, //0x00000a7e addq %rsi, %rcx - 0x48, 0x83, 0xc1, 0x62, //0x00000a81 addq $98, %rcx - 0x49, 0xc1, 0xe1, 0x07, //0x00000a85 shlq $7, %r9 - 0x31, 0xf6, //0x00000a89 xorl %esi, %esi - 0xc5, 0xfd, 0x6f, 0x05, 0xad, 0xf6, 0xff, 0xff, //0x00000a8b vmovdqa $-2387(%rip), %ymm0 /* LCPI1_0+0(%rip) */ - //0x00000a93 LBB1_93 - 0xc5, 0xfe, 0x7f, 0x44, 0x31, 0xa0, //0x00000a93 vmovdqu %ymm0, $-96(%rcx,%rsi) - 0xc5, 0xfe, 0x7f, 0x44, 0x31, 0xc0, //0x00000a99 vmovdqu %ymm0, $-64(%rcx,%rsi) - 0xc5, 0xfe, 0x7f, 0x44, 0x31, 0xe0, //0x00000a9f vmovdqu %ymm0, $-32(%rcx,%rsi) - 0xc5, 0xfe, 0x7f, 0x04, 0x31, //0x00000aa5 vmovdqu %ymm0, (%rcx,%rsi) - 0x48, 0x83, 0xee, 0x80, //0x00000aaa subq $-128, %rsi - 0x49, 0x39, 0xf1, //0x00000aae cmpq %rsi, %r9 - 0x0f, 0x85, 0xdc, 0xff, 0xff, 0xff, //0x00000ab1 jne LBB1_93 - //0x00000ab7 LBB1_94 - 0x49, 0x01, 0xc7, //0x00000ab7 addq %rax, %r15 - 0x49, 0x39, 0xc0, //0x00000aba cmpq %rax, %r8 - 0x0f, 0x84, 0x1e, 0x00, 0x00, 0x00, //0x00000abd je LBB1_97 - //0x00000ac3 LBB1_95 - 0x44, 0x01, 0xf0, //0x00000ac3 addl %r14d, %eax - 0xf7, 0xd8, //0x00000ac6 negl %eax - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000ac8 .p2align 4, 0x90 - //0x00000ad0 LBB1_96 - 0x41, 0xc6, 0x07, 0x30, //0x00000ad0 movb $48, (%r15) - 0x49, 0x83, 0xc7, 0x01, //0x00000ad4 addq $1, %r15 - 0x83, 0xc0, 0xff, //0x00000ad8 addl $-1, %eax - 0x0f, 0x85, 0xef, 0xff, 0xff, 0xff, //0x00000adb jne LBB1_96 - //0x00000ae1 LBB1_97 - 0x4c, 0x89, 0xfe, //0x00000ae1 movq %r15, %rsi - 0xc5, 0xf8, 0x77, //0x00000ae4 vzeroupper - 0xe8, 0x24, 0x8f, 0x00, 0x00, //0x00000ae7 callq _format_significand - 0x89, 0xc2, //0x00000aec movl %eax, %edx - 0x44, 0x28, 0xfa, //0x00000aee subb %r15b, %dl - 0x44, 0x28, 0xf2, //0x00000af1 subb %r14b, %dl - 0x80, 0xc2, 0x01, //0x00000af4 addb $1, %dl - 0x41, 0x89, 0xc2, //0x00000af7 movl %eax, %r10d - 0x45, 0x29, 0xf2, //0x00000afa subl %r14d, %r10d - 0x45, 0x29, 0xfa, //0x00000afd subl %r15d, %r10d - 0x41, 0x83, 0xc2, 0x01, //0x00000b00 addl $1, %r10d - 0x47, 0x8d, 0x04, 0x3e, //0x00000b04 leal (%r14,%r15), %r8d - 0x41, 0x89, 0xc1, //0x00000b08 movl %eax, %r9d - 0x41, 0xf7, 0xd1, //0x00000b0b notl %r9d - 0x45, 0x01, 0xc1, //0x00000b0e addl %r8d, %r9d - 0x41, 0x29, 0xc0, //0x00000b11 subl %eax, %r8d - 0x41, 0x83, 0xc0, 0xfe, //0x00000b14 addl $-2, %r8d - 0x31, 0xc9, //0x00000b18 xorl %ecx, %ecx - 0x44, 0x89, 0xc7, //0x00000b1a movl %r8d, %edi - 0x48, 0x89, 0xc3, //0x00000b1d movq %rax, %rbx - //0x00000b20 .p2align 4, 0x90 - //0x00000b20 LBB1_98 - 0x48, 0x83, 0xc3, 0xff, //0x00000b20 addq $-1, %rbx - 0x80, 0xc2, 0x03, //0x00000b24 addb $3, %dl - 0x83, 0xc7, 0x01, //0x00000b27 addl $1, %edi - 0x80, 0x7c, 0x08, 0xff, 0x30, //0x00000b2a cmpb $48, $-1(%rax,%rcx) - 0x48, 0x8d, 0x49, 0xff, //0x00000b2f leaq $-1(%rcx), %rcx - 0x0f, 0x84, 0xe7, 0xff, 0xff, 0xff, //0x00000b33 je LBB1_98 - 0x48, 0x8d, 0x1c, 0x08, //0x00000b39 leaq (%rax,%rcx), %rbx - 0x48, 0x83, 0xc3, 0x01, //0x00000b3d addq $1, %rbx - 0x45, 0x85, 0xf6, //0x00000b41 testl %r14d, %r14d - 0x0f, 0x8e, 0x52, 0x02, 0x00, 0x00, //0x00000b44 jle LBB1_104 - 0x89, 0xc6, //0x00000b4a movl %eax, %esi - 0x44, 0x29, 0xfe, //0x00000b4c subl %r15d, %esi - 0x01, 0xce, //0x00000b4f addl %ecx, %esi - 0x83, 0xc6, 0x01, //0x00000b51 addl $1, %esi - 0x41, 0x39, 0xf6, //0x00000b54 cmpl %esi, %r14d - 0x0f, 0x8d, 0x27, 0x00, 0x00, 0x00, //0x00000b57 jge LBB1_105 - 0x45, 0x89, 0xd1, //0x00000b5d movl %r10d, %r9d - 0x49, 0x8d, 0x34, 0x09, //0x00000b60 leaq (%r9,%rcx), %rsi - 0x85, 0xf6, //0x00000b64 testl %esi, %esi - 0x0f, 0x8e, 0xdd, 0x00, 0x00, 0x00, //0x00000b66 jle LBB1_116 - 0x41, 0x89, 0xf0, //0x00000b6c movl %esi, %r8d - 0x49, 0x8d, 0x58, 0xff, //0x00000b6f leaq $-1(%r8), %rbx - 0x48, 0x83, 0xfb, 0x03, //0x00000b73 cmpq $3, %rbx - 0x0f, 0x83, 0x66, 0x00, 0x00, 0x00, //0x00000b77 jae LBB1_110 - 0x31, 0xdb, //0x00000b7d xorl %ebx, %ebx - 0xe9, 0x88, 0x00, 0x00, 0x00, //0x00000b7f jmp LBB1_113 - //0x00000b84 LBB1_105 - 0x44, 0x89, 0xca, //0x00000b84 movl %r9d, %edx - 0x48, 0x29, 0xca, //0x00000b87 subq %rcx, %rdx - 0x85, 0xd2, //0x00000b8a testl %edx, %edx - 0x0f, 0x8e, 0x0a, 0x02, 0x00, 0x00, //0x00000b8c jle LBB1_104 - 0x45, 0x89, 0xc3, //0x00000b92 movl %r8d, %r11d - 0x4d, 0x89, 0xd8, //0x00000b95 movq %r11, %r8 - 0x49, 0x29, 0xc8, //0x00000b98 subq %rcx, %r8 - 0x31, 0xf6, //0x00000b9b xorl %esi, %esi - 0x41, 0x83, 0xf8, 0x7f, //0x00000b9d cmpl $127, %r8d - 0x0f, 0x82, 0x12, 0x02, 0x00, 0x00, //0x00000ba1 jb LBB1_125 - 0x49, 0x29, 0xcb, //0x00000ba7 subq %rcx, %r11 - 0x45, 0x89, 0xc0, //0x00000baa movl %r8d, %r8d - 0x49, 0x83, 0xc0, 0x01, //0x00000bad addq $1, %r8 - 0x4d, 0x21, 0xc4, //0x00000bb1 andq %r8, %r12 - 0x41, 0x89, 0xf9, //0x00000bb4 movl %edi, %r9d - 0x49, 0x83, 0xc1, 0x01, //0x00000bb7 addq $1, %r9 - 0x49, 0x83, 0xe1, 0x80, //0x00000bbb andq $-128, %r9 - 0x49, 0x8d, 0x74, 0x24, 0x80, //0x00000bbf leaq $-128(%r12), %rsi - 0x49, 0x89, 0xf2, //0x00000bc4 movq %rsi, %r10 - 0x49, 0xc1, 0xea, 0x07, //0x00000bc7 shrq $7, %r10 - 0x49, 0x83, 0xc2, 0x01, //0x00000bcb addq $1, %r10 - 0x48, 0x81, 0xfe, 0x80, 0x01, 0x00, 0x00, //0x00000bcf cmpq $384, %rsi - 0x0f, 0x83, 0x86, 0x00, 0x00, 0x00, //0x00000bd6 jae LBB1_117 - 0x31, 0xff, //0x00000bdc xorl %edi, %edi - 0xe9, 0x40, 0x01, 0x00, 0x00, //0x00000bde jmp LBB1_119 - //0x00000be3 LBB1_110 - 0x49, 0x01, 0xc9, //0x00000be3 addq %rcx, %r9 - 0x41, 0x83, 0xe1, 0xfc, //0x00000be6 andl $-4, %r9d - 0x49, 0xf7, 0xd9, //0x00000bea negq %r9 - 0x31, 0xdb, //0x00000bed xorl %ebx, %ebx - 0x90, //0x00000bef .p2align 4, 0x90 - //0x00000bf0 LBB1_111 - 0x48, 0x8d, 0x34, 0x18, //0x00000bf0 leaq (%rax,%rbx), %rsi - 0x8b, 0x7c, 0x31, 0xfd, //0x00000bf4 movl $-3(%rcx,%rsi), %edi - 0x89, 0x7c, 0x31, 0xfe, //0x00000bf8 movl %edi, $-2(%rcx,%rsi) - 0x48, 0x83, 0xc3, 0xfc, //0x00000bfc addq $-4, %rbx - 0x49, 0x39, 0xd9, //0x00000c00 cmpq %rbx, %r9 - 0x0f, 0x85, 0xe7, 0xff, 0xff, 0xff, //0x00000c03 jne LBB1_111 - 0x48, 0xf7, 0xdb, //0x00000c09 negq %rbx - //0x00000c0c LBB1_113 - 0x41, 0xf6, 0xc0, 0x03, //0x00000c0c testb $3, %r8b - 0x0f, 0x84, 0x33, 0x00, 0x00, 0x00, //0x00000c10 je LBB1_116 - 0x44, 0x0f, 0xb6, 0xc2, //0x00000c16 movzbl %dl, %r8d - 0x41, 0x83, 0xe0, 0x03, //0x00000c1a andl $3, %r8d - 0x49, 0xf7, 0xd8, //0x00000c1e negq %r8 - 0x48, 0x89, 0xc6, //0x00000c21 movq %rax, %rsi - 0x48, 0x29, 0xde, //0x00000c24 subq %rbx, %rsi - 0x31, 0xff, //0x00000c27 xorl %edi, %edi - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000c29 .p2align 4, 0x90 - //0x00000c30 LBB1_115 - 0x48, 0x8d, 0x1c, 0x3e, //0x00000c30 leaq (%rsi,%rdi), %rbx - 0x0f, 0xb6, 0x14, 0x19, //0x00000c34 movzbl (%rcx,%rbx), %edx - 0x88, 0x54, 0x19, 0x01, //0x00000c38 movb %dl, $1(%rcx,%rbx) - 0x48, 0x83, 0xc7, 0xff, //0x00000c3c addq $-1, %rdi - 0x49, 0x39, 0xf8, //0x00000c40 cmpq %rdi, %r8 - 0x0f, 0x85, 0xe7, 0xff, 0xff, 0xff, //0x00000c43 jne LBB1_115 - //0x00000c49 LBB1_116 - 0x49, 0x63, 0xd6, //0x00000c49 movslq %r14d, %rdx - 0x41, 0xc6, 0x04, 0x17, 0x2e, //0x00000c4c movb $46, (%r15,%rdx) - 0x48, 0x8d, 0x1c, 0x08, //0x00000c51 leaq (%rax,%rcx), %rbx - 0x48, 0x83, 0xc3, 0x02, //0x00000c55 addq $2, %rbx - 0x48, 0x8b, 0x7d, 0xd0, //0x00000c59 movq $-48(%rbp), %rdi - 0xe9, 0x3e, 0x01, 0x00, 0x00, //0x00000c5d jmp LBB1_127 - //0x00000c62 LBB1_117 - 0x44, 0x89, 0xdb, //0x00000c62 movl %r11d, %ebx - 0x48, 0x83, 0xc3, 0x01, //0x00000c65 addq $1, %rbx - 0x48, 0x83, 0xe3, 0x80, //0x00000c69 andq $-128, %rbx - 0x48, 0x83, 0xc3, 0x80, //0x00000c6d addq $-128, %rbx - 0x48, 0xc1, 0xeb, 0x07, //0x00000c71 shrq $7, %rbx - 0x48, 0x83, 0xc3, 0x01, //0x00000c75 addq $1, %rbx - 0x48, 0x83, 0xe3, 0xfc, //0x00000c79 andq $-4, %rbx - 0x48, 0xf7, 0xdb, //0x00000c7d negq %rbx - 0x31, 0xff, //0x00000c80 xorl %edi, %edi - 0xc5, 0xfd, 0x6f, 0x05, 0xb6, 0xf4, 0xff, 0xff, //0x00000c82 vmovdqa $-2890(%rip), %ymm0 /* LCPI1_0+0(%rip) */ - //0x00000c8a LBB1_118 - 0x48, 0x8d, 0x34, 0x38, //0x00000c8a leaq (%rax,%rdi), %rsi - 0xc5, 0xfe, 0x7f, 0x44, 0x31, 0x01, //0x00000c8e vmovdqu %ymm0, $1(%rcx,%rsi) - 0xc5, 0xfe, 0x7f, 0x44, 0x31, 0x21, //0x00000c94 vmovdqu %ymm0, $33(%rcx,%rsi) - 0xc5, 0xfe, 0x7f, 0x44, 0x31, 0x41, //0x00000c9a vmovdqu %ymm0, $65(%rcx,%rsi) - 0xc5, 0xfe, 0x7f, 0x44, 0x31, 0x61, //0x00000ca0 vmovdqu %ymm0, $97(%rcx,%rsi) - 0xc5, 0xfe, 0x7f, 0x84, 0x31, 0x81, 0x00, 0x00, 0x00, //0x00000ca6 vmovdqu %ymm0, $129(%rcx,%rsi) - 0xc5, 0xfe, 0x7f, 0x84, 0x31, 0xa1, 0x00, 0x00, 0x00, //0x00000caf vmovdqu %ymm0, $161(%rcx,%rsi) - 0xc5, 0xfe, 0x7f, 0x84, 0x31, 0xc1, 0x00, 0x00, 0x00, //0x00000cb8 vmovdqu %ymm0, $193(%rcx,%rsi) - 0xc5, 0xfe, 0x7f, 0x84, 0x31, 0xe1, 0x00, 0x00, 0x00, //0x00000cc1 vmovdqu %ymm0, $225(%rcx,%rsi) - 0xc5, 0xfe, 0x7f, 0x84, 0x31, 0x01, 0x01, 0x00, 0x00, //0x00000cca vmovdqu %ymm0, $257(%rcx,%rsi) - 0xc5, 0xfe, 0x7f, 0x84, 0x31, 0x21, 0x01, 0x00, 0x00, //0x00000cd3 vmovdqu %ymm0, $289(%rcx,%rsi) - 0xc5, 0xfe, 0x7f, 0x84, 0x31, 0x41, 0x01, 0x00, 0x00, //0x00000cdc vmovdqu %ymm0, $321(%rcx,%rsi) - 0xc5, 0xfe, 0x7f, 0x84, 0x31, 0x61, 0x01, 0x00, 0x00, //0x00000ce5 vmovdqu %ymm0, $353(%rcx,%rsi) - 0xc5, 0xfe, 0x7f, 0x84, 0x31, 0x81, 0x01, 0x00, 0x00, //0x00000cee vmovdqu %ymm0, $385(%rcx,%rsi) - 0xc5, 0xfe, 0x7f, 0x84, 0x31, 0xa1, 0x01, 0x00, 0x00, //0x00000cf7 vmovdqu %ymm0, $417(%rcx,%rsi) - 0xc5, 0xfe, 0x7f, 0x84, 0x31, 0xc1, 0x01, 0x00, 0x00, //0x00000d00 vmovdqu %ymm0, $449(%rcx,%rsi) - 0xc5, 0xfe, 0x7f, 0x84, 0x31, 0xe1, 0x01, 0x00, 0x00, //0x00000d09 vmovdqu %ymm0, $481(%rcx,%rsi) - 0x48, 0x81, 0xc7, 0x00, 0x02, 0x00, 0x00, //0x00000d12 addq $512, %rdi - 0x48, 0x83, 0xc3, 0x04, //0x00000d19 addq $4, %rbx - 0x0f, 0x85, 0x67, 0xff, 0xff, 0xff, //0x00000d1d jne LBB1_118 - //0x00000d23 LBB1_119 - 0x49, 0x01, 0xc1, //0x00000d23 addq %rax, %r9 - 0x41, 0xf6, 0xc2, 0x03, //0x00000d26 testb $3, %r10b - 0x0f, 0x84, 0x5b, 0x00, 0x00, 0x00, //0x00000d2a je LBB1_122 - 0x41, 0x83, 0xc3, 0x01, //0x00000d30 addl $1, %r11d - 0x41, 0x81, 0xe3, 0x80, 0x01, 0x00, 0x00, //0x00000d34 andl $384, %r11d - 0x41, 0x83, 0xc3, 0x80, //0x00000d3b addl $-128, %r11d - 0x41, 0xc1, 0xeb, 0x07, //0x00000d3f shrl $7, %r11d - 0x41, 0x80, 0xc3, 0x01, //0x00000d43 addb $1, %r11b - 0x41, 0x0f, 0xb6, 0xf3, //0x00000d47 movzbl %r11b, %esi - 0x83, 0xe6, 0x03, //0x00000d4b andl $3, %esi - 0x48, 0xc1, 0xe6, 0x07, //0x00000d4e shlq $7, %rsi - 0x48, 0x01, 0xf8, //0x00000d52 addq %rdi, %rax - 0x48, 0x83, 0xc0, 0x61, //0x00000d55 addq $97, %rax - 0x31, 0xff, //0x00000d59 xorl %edi, %edi - 0xc5, 0xfd, 0x6f, 0x05, 0xdd, 0xf3, 0xff, 0xff, //0x00000d5b vmovdqa $-3107(%rip), %ymm0 /* LCPI1_0+0(%rip) */ - //0x00000d63 LBB1_121 - 0x48, 0x8d, 0x1c, 0x38, //0x00000d63 leaq (%rax,%rdi), %rbx - 0xc5, 0xfe, 0x7f, 0x44, 0x19, 0xa0, //0x00000d67 vmovdqu %ymm0, $-96(%rcx,%rbx) - 0xc5, 0xfe, 0x7f, 0x44, 0x19, 0xc0, //0x00000d6d vmovdqu %ymm0, $-64(%rcx,%rbx) - 0xc5, 0xfe, 0x7f, 0x44, 0x19, 0xe0, //0x00000d73 vmovdqu %ymm0, $-32(%rcx,%rbx) - 0xc5, 0xfe, 0x7f, 0x04, 0x19, //0x00000d79 vmovdqu %ymm0, (%rcx,%rbx) - 0x48, 0x83, 0xef, 0x80, //0x00000d7e subq $-128, %rdi - 0x48, 0x39, 0xfe, //0x00000d82 cmpq %rdi, %rsi - 0x0f, 0x85, 0xd8, 0xff, 0xff, 0xff, //0x00000d85 jne LBB1_121 - //0x00000d8b LBB1_122 - 0x4a, 0x8d, 0x1c, 0x09, //0x00000d8b leaq (%rcx,%r9), %rbx - 0x48, 0x83, 0xc3, 0x01, //0x00000d8f addq $1, %rbx - 0x4d, 0x39, 0xe0, //0x00000d93 cmpq %r12, %r8 - 0x0f, 0x85, 0x1a, 0x00, 0x00, 0x00, //0x00000d96 jne LBB1_124 - //0x00000d9c LBB1_104 - 0x48, 0x8b, 0x7d, 0xd0, //0x00000d9c movq $-48(%rbp), %rdi - //0x00000da0 LBB1_127 - 0x29, 0xfb, //0x00000da0 subl %edi, %ebx - //0x00000da2 LBB1_128 - 0x89, 0xd8, //0x00000da2 movl %ebx, %eax - 0x48, 0x83, 0xc4, 0x08, //0x00000da4 addq $8, %rsp - 0x5b, //0x00000da8 popq %rbx - 0x41, 0x5c, //0x00000da9 popq %r12 - 0x41, 0x5d, //0x00000dab popq %r13 - 0x41, 0x5e, //0x00000dad popq %r14 - 0x41, 0x5f, //0x00000daf popq %r15 - 0x5d, //0x00000db1 popq %rbp - 0xc5, 0xf8, 0x77, //0x00000db2 vzeroupper - 0xc3, //0x00000db5 retq - //0x00000db6 LBB1_124 - 0x44, 0x89, 0xe6, //0x00000db6 movl %r12d, %esi - //0x00000db9 LBB1_125 - 0x48, 0x8b, 0x7d, 0xd0, //0x00000db9 movq $-48(%rbp), %rdi - 0x90, 0x90, 0x90, //0x00000dbd .p2align 4, 0x90 - //0x00000dc0 LBB1_126 - 0xc6, 0x03, 0x30, //0x00000dc0 movb $48, (%rbx) - 0x48, 0x83, 0xc3, 0x01, //0x00000dc3 addq $1, %rbx - 0x83, 0xc6, 0x01, //0x00000dc7 addl $1, %esi - 0x39, 0xd6, //0x00000dca cmpl %edx, %esi - 0x0f, 0x8c, 0xee, 0xff, 0xff, 0xff, //0x00000dcc jl LBB1_126 - 0xe9, 0xc9, 0xff, 0xff, 0xff, //0x00000dd2 jmp LBB1_127 - //0x00000dd7 LBB1_129 - 0x48, 0x81, 0xff, 0x00, 0xca, 0x9a, 0x3b, //0x00000dd7 cmpq $1000000000, %rdi - 0xba, 0x0a, 0x00, 0x00, 0x00, //0x00000dde movl $10, %edx - 0xe9, 0x51, 0xf6, 0xff, 0xff, //0x00000de3 jmp LBB1_21 - //0x00000de8 LBB1_130 - 0x31, 0xdb, //0x00000de8 xorl %ebx, %ebx - 0xe9, 0xb3, 0xff, 0xff, 0xff, //0x00000dea jmp LBB1_128 - //0x00000def LBB1_131 - 0x48, 0x89, 0x75, 0xd0, //0x00000def movq %rsi, $-48(%rbp) - 0x41, 0xb9, 0xce, 0xfb, 0xff, 0xff, //0x00000df3 movl $-1074, %r9d - 0x48, 0x89, 0xd7, //0x00000df9 movq %rdx, %rdi - 0xe9, 0x0e, 0xf4, 0xff, 0xff, //0x00000dfc jmp LBB1_8 - //0x00000e01 LBB1_132 - 0x48, 0x81, 0xff, 0x00, 0xca, 0x9a, 0x3b, //0x00000e01 cmpq $1000000000, %rdi - 0xba, 0x0a, 0x00, 0x00, 0x00, //0x00000e08 movl $10, %edx - 0xe9, 0xac, 0xf8, 0xff, 0xff, //0x00000e0d jmp LBB1_50 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000e12 .p2align 4, 0x90 - //0x00000e20 _format_integer - 0x55, //0x00000e20 pushq %rbp - 0x48, 0x89, 0xe5, //0x00000e21 movq %rsp, %rbp - 0x53, //0x00000e24 pushq %rbx - 0x41, 0x89, 0xd0, //0x00000e25 movl %edx, %r8d - 0x49, 0x01, 0xf0, //0x00000e28 addq %rsi, %r8 - 0x48, 0x89, 0xf8, //0x00000e2b movq %rdi, %rax - 0x48, 0xc1, 0xe8, 0x20, //0x00000e2e shrq $32, %rax - 0x0f, 0x85, 0x16, 0x00, 0x00, 0x00, //0x00000e32 jne LBB2_2 - 0x4d, 0x89, 0xc3, //0x00000e38 movq %r8, %r11 - 0x81, 0xff, 0x10, 0x27, 0x00, 0x00, //0x00000e3b cmpl $10000, %edi - 0x0f, 0x83, 0xc3, 0x00, 0x00, 0x00, //0x00000e41 jae LBB2_5 - //0x00000e47 LBB2_4 - 0x89, 0xfa, //0x00000e47 movl %edi, %edx - 0xe9, 0x1a, 0x01, 0x00, 0x00, //0x00000e49 jmp LBB2_7 - //0x00000e4e LBB2_2 - 0x48, 0xb9, 0xfd, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x00000e4e movabsq $-6067343680855748867, %rcx - 0x48, 0x89, 0xf8, //0x00000e58 movq %rdi, %rax - 0x48, 0xf7, 0xe1, //0x00000e5b mulq %rcx - 0x48, 0xc1, 0xea, 0x1a, //0x00000e5e shrq $26, %rdx - 0x69, 0xca, 0x00, 0x1f, 0x0a, 0xfa, //0x00000e62 imull $-100000000, %edx, %ecx - 0x01, 0xf9, //0x00000e68 addl %edi, %ecx - 0x41, 0xb9, 0x59, 0x17, 0xb7, 0xd1, //0x00000e6a movl $3518437209, %r9d - 0x48, 0x89, 0xc8, //0x00000e70 movq %rcx, %rax - 0x49, 0x0f, 0xaf, 0xc1, //0x00000e73 imulq %r9, %rax - 0x48, 0xc1, 0xe8, 0x2d, //0x00000e77 shrq $45, %rax - 0x69, 0xf8, 0x10, 0x27, 0x00, 0x00, //0x00000e7b imull $10000, %eax, %edi - 0x29, 0xf9, //0x00000e81 subl %edi, %ecx - 0x48, 0x89, 0xc7, //0x00000e83 movq %rax, %rdi - 0x49, 0x0f, 0xaf, 0xf9, //0x00000e86 imulq %r9, %rdi - 0x48, 0xc1, 0xef, 0x2d, //0x00000e8a shrq $45, %rdi - 0x69, 0xff, 0x10, 0x27, 0x00, 0x00, //0x00000e8e imull $10000, %edi, %edi - 0x29, 0xf8, //0x00000e94 subl %edi, %eax - 0x0f, 0xb7, 0xf9, //0x00000e96 movzwl %cx, %edi - 0xc1, 0xef, 0x02, //0x00000e99 shrl $2, %edi - 0x44, 0x69, 0xcf, 0x7b, 0x14, 0x00, 0x00, //0x00000e9c imull $5243, %edi, %r9d - 0x41, 0xc1, 0xe9, 0x11, //0x00000ea3 shrl $17, %r9d - 0x41, 0x6b, 0xf9, 0x64, //0x00000ea7 imull $100, %r9d, %edi - 0x29, 0xf9, //0x00000eab subl %edi, %ecx - 0x44, 0x0f, 0xb7, 0xd1, //0x00000ead movzwl %cx, %r10d - 0x0f, 0xb7, 0xf8, //0x00000eb1 movzwl %ax, %edi - 0xc1, 0xef, 0x02, //0x00000eb4 shrl $2, %edi - 0x69, 0xff, 0x7b, 0x14, 0x00, 0x00, //0x00000eb7 imull $5243, %edi, %edi - 0xc1, 0xef, 0x11, //0x00000ebd shrl $17, %edi - 0x6b, 0xcf, 0x64, //0x00000ec0 imull $100, %edi, %ecx - 0x29, 0xc8, //0x00000ec3 subl %ecx, %eax - 0x44, 0x0f, 0xb7, 0xd8, //0x00000ec5 movzwl %ax, %r11d - 0x48, 0x8d, 0x0d, 0x10, 0xc3, 0x00, 0x00, //0x00000ec9 leaq $49936(%rip), %rcx /* _Digits+0(%rip) */ - 0x42, 0x0f, 0xb7, 0x04, 0x51, //0x00000ed0 movzwl (%rcx,%r10,2), %eax - 0x66, 0x41, 0x89, 0x40, 0xfe, //0x00000ed5 movw %ax, $-2(%r8) - 0x42, 0x0f, 0xb7, 0x04, 0x49, //0x00000eda movzwl (%rcx,%r9,2), %eax - 0x66, 0x41, 0x89, 0x40, 0xfc, //0x00000edf movw %ax, $-4(%r8) - 0x42, 0x0f, 0xb7, 0x04, 0x59, //0x00000ee4 movzwl (%rcx,%r11,2), %eax - 0x66, 0x41, 0x89, 0x40, 0xfa, //0x00000ee9 movw %ax, $-6(%r8) - 0x4d, 0x8d, 0x58, 0xf8, //0x00000eee leaq $-8(%r8), %r11 - 0x0f, 0xb7, 0x0c, 0x79, //0x00000ef2 movzwl (%rcx,%rdi,2), %ecx - 0x66, 0x41, 0x89, 0x48, 0xf8, //0x00000ef6 movw %cx, $-8(%r8) - 0x48, 0x89, 0xd7, //0x00000efb movq %rdx, %rdi - 0x81, 0xff, 0x10, 0x27, 0x00, 0x00, //0x00000efe cmpl $10000, %edi - 0x0f, 0x82, 0x3d, 0xff, 0xff, 0xff, //0x00000f04 jb LBB2_4 - //0x00000f0a LBB2_5 - 0x41, 0xb9, 0x59, 0x17, 0xb7, 0xd1, //0x00000f0a movl $3518437209, %r9d - 0x4c, 0x8d, 0x15, 0xc9, 0xc2, 0x00, 0x00, //0x00000f10 leaq $49865(%rip), %r10 /* _Digits+0(%rip) */ - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000f17 .p2align 4, 0x90 - //0x00000f20 LBB2_6 - 0x89, 0xfa, //0x00000f20 movl %edi, %edx - 0x49, 0x0f, 0xaf, 0xd1, //0x00000f22 imulq %r9, %rdx - 0x48, 0xc1, 0xea, 0x2d, //0x00000f26 shrq $45, %rdx - 0x69, 0xca, 0xf0, 0xd8, 0xff, 0xff, //0x00000f2a imull $-10000, %edx, %ecx - 0x01, 0xf9, //0x00000f30 addl %edi, %ecx - 0x48, 0x69, 0xc1, 0x1f, 0x85, 0xeb, 0x51, //0x00000f32 imulq $1374389535, %rcx, %rax - 0x48, 0xc1, 0xe8, 0x25, //0x00000f39 shrq $37, %rax - 0x6b, 0xd8, 0x64, //0x00000f3d imull $100, %eax, %ebx - 0x29, 0xd9, //0x00000f40 subl %ebx, %ecx - 0x41, 0x0f, 0xb7, 0x0c, 0x4a, //0x00000f42 movzwl (%r10,%rcx,2), %ecx - 0x66, 0x41, 0x89, 0x4b, 0xfe, //0x00000f47 movw %cx, $-2(%r11) - 0x41, 0x0f, 0xb7, 0x04, 0x42, //0x00000f4c movzwl (%r10,%rax,2), %eax - 0x66, 0x41, 0x89, 0x43, 0xfc, //0x00000f51 movw %ax, $-4(%r11) - 0x49, 0x83, 0xc3, 0xfc, //0x00000f56 addq $-4, %r11 - 0x81, 0xff, 0xff, 0xe0, 0xf5, 0x05, //0x00000f5a cmpl $99999999, %edi - 0x89, 0xd7, //0x00000f60 movl %edx, %edi - 0x0f, 0x87, 0xb8, 0xff, 0xff, 0xff, //0x00000f62 ja LBB2_6 - //0x00000f68 LBB2_7 - 0x83, 0xfa, 0x64, //0x00000f68 cmpl $100, %edx - 0x0f, 0x82, 0x2d, 0x00, 0x00, 0x00, //0x00000f6b jb LBB2_9 - 0x0f, 0xb7, 0xc2, //0x00000f71 movzwl %dx, %eax - 0xc1, 0xe8, 0x02, //0x00000f74 shrl $2, %eax - 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x00000f77 imull $5243, %eax, %eax - 0xc1, 0xe8, 0x11, //0x00000f7d shrl $17, %eax - 0x6b, 0xc8, 0x64, //0x00000f80 imull $100, %eax, %ecx - 0x29, 0xca, //0x00000f83 subl %ecx, %edx - 0x0f, 0xb7, 0xca, //0x00000f85 movzwl %dx, %ecx - 0x48, 0x8d, 0x15, 0x51, 0xc2, 0x00, 0x00, //0x00000f88 leaq $49745(%rip), %rdx /* _Digits+0(%rip) */ - 0x0f, 0xb7, 0x0c, 0x4a, //0x00000f8f movzwl (%rdx,%rcx,2), %ecx - 0x66, 0x41, 0x89, 0x4b, 0xfe, //0x00000f93 movw %cx, $-2(%r11) - 0x49, 0x83, 0xc3, 0xfe, //0x00000f98 addq $-2, %r11 - 0x89, 0xc2, //0x00000f9c movl %eax, %edx - //0x00000f9e LBB2_9 - 0x83, 0xfa, 0x0a, //0x00000f9e cmpl $10, %edx - 0x0f, 0x82, 0x18, 0x00, 0x00, 0x00, //0x00000fa1 jb LBB2_11 - 0x89, 0xd0, //0x00000fa7 movl %edx, %eax - 0x48, 0x8d, 0x0d, 0x30, 0xc2, 0x00, 0x00, //0x00000fa9 leaq $49712(%rip), %rcx /* _Digits+0(%rip) */ - 0x0f, 0xb7, 0x04, 0x41, //0x00000fb0 movzwl (%rcx,%rax,2), %eax - 0x66, 0x41, 0x89, 0x43, 0xfe, //0x00000fb4 movw %ax, $-2(%r11) - 0x4c, 0x89, 0xc0, //0x00000fb9 movq %r8, %rax - 0x5b, //0x00000fbc popq %rbx - 0x5d, //0x00000fbd popq %rbp - 0xc3, //0x00000fbe retq - //0x00000fbf LBB2_11 - 0x80, 0xc2, 0x30, //0x00000fbf addb $48, %dl - 0x88, 0x16, //0x00000fc2 movb %dl, (%rsi) - 0x4c, 0x89, 0xc0, //0x00000fc4 movq %r8, %rax - 0x5b, //0x00000fc7 popq %rbx - 0x5d, //0x00000fc8 popq %rbp - 0xc3, //0x00000fc9 retq - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000fca .p2align 4, 0x90 - //0x00000fd0 _i64toa - 0x55, //0x00000fd0 pushq %rbp - 0x48, 0x89, 0xe5, //0x00000fd1 movq %rsp, %rbp - 0x48, 0x85, 0xf6, //0x00000fd4 testq %rsi, %rsi - 0x0f, 0x88, 0xb0, 0x00, 0x00, 0x00, //0x00000fd7 js LBB3_12 - 0x48, 0x81, 0xfe, 0x0f, 0x27, 0x00, 0x00, //0x00000fdd cmpq $9999, %rsi - 0x0f, 0x87, 0xb7, 0x00, 0x00, 0x00, //0x00000fe4 ja LBB3_9 - 0x0f, 0xb7, 0xc6, //0x00000fea movzwl %si, %eax - 0xc1, 0xe8, 0x02, //0x00000fed shrl $2, %eax - 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x00000ff0 imull $5243, %eax, %eax - 0xc1, 0xe8, 0x11, //0x00000ff6 shrl $17, %eax - 0x48, 0x8d, 0x14, 0x00, //0x00000ff9 leaq (%rax,%rax), %rdx - 0x6b, 0xc0, 0x64, //0x00000ffd imull $100, %eax, %eax - 0x89, 0xf1, //0x00001000 movl %esi, %ecx - 0x29, 0xc1, //0x00001002 subl %eax, %ecx - 0x0f, 0xb7, 0xc9, //0x00001004 movzwl %cx, %ecx - 0x48, 0x01, 0xc9, //0x00001007 addq %rcx, %rcx - 0x81, 0xfe, 0xe8, 0x03, 0x00, 0x00, //0x0000100a cmpl $1000, %esi - 0x0f, 0x82, 0x16, 0x00, 0x00, 0x00, //0x00001010 jb LBB3_4 - 0x48, 0x8d, 0x05, 0xc3, 0xc1, 0x00, 0x00, //0x00001016 leaq $49603(%rip), %rax /* _Digits+0(%rip) */ - 0x8a, 0x04, 0x02, //0x0000101d movb (%rdx,%rax), %al - 0x88, 0x07, //0x00001020 movb %al, (%rdi) - 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00001022 movl $1, %eax - 0xe9, 0x0b, 0x00, 0x00, 0x00, //0x00001027 jmp LBB3_5 - //0x0000102c LBB3_4 - 0x31, 0xc0, //0x0000102c xorl %eax, %eax - 0x83, 0xfe, 0x64, //0x0000102e cmpl $100, %esi - 0x0f, 0x82, 0x46, 0x00, 0x00, 0x00, //0x00001031 jb LBB3_6 - //0x00001037 LBB3_5 - 0x0f, 0xb7, 0xd2, //0x00001037 movzwl %dx, %edx - 0x48, 0x83, 0xca, 0x01, //0x0000103a orq $1, %rdx - 0x48, 0x8d, 0x35, 0x9b, 0xc1, 0x00, 0x00, //0x0000103e leaq $49563(%rip), %rsi /* _Digits+0(%rip) */ - 0x8a, 0x14, 0x32, //0x00001045 movb (%rdx,%rsi), %dl - 0x89, 0xc6, //0x00001048 movl %eax, %esi - 0x83, 0xc0, 0x01, //0x0000104a addl $1, %eax - 0x88, 0x14, 0x37, //0x0000104d movb %dl, (%rdi,%rsi) - //0x00001050 LBB3_7 - 0x48, 0x8d, 0x15, 0x89, 0xc1, 0x00, 0x00, //0x00001050 leaq $49545(%rip), %rdx /* _Digits+0(%rip) */ - 0x8a, 0x14, 0x11, //0x00001057 movb (%rcx,%rdx), %dl - 0x89, 0xc6, //0x0000105a movl %eax, %esi - 0x83, 0xc0, 0x01, //0x0000105c addl $1, %eax - 0x88, 0x14, 0x37, //0x0000105f movb %dl, (%rdi,%rsi) - //0x00001062 LBB3_8 - 0x0f, 0xb7, 0xc9, //0x00001062 movzwl %cx, %ecx - 0x48, 0x83, 0xc9, 0x01, //0x00001065 orq $1, %rcx - 0x48, 0x8d, 0x15, 0x70, 0xc1, 0x00, 0x00, //0x00001069 leaq $49520(%rip), %rdx /* _Digits+0(%rip) */ - 0x8a, 0x0c, 0x11, //0x00001070 movb (%rcx,%rdx), %cl - 0x89, 0xc2, //0x00001073 movl %eax, %edx - 0x83, 0xc0, 0x01, //0x00001075 addl $1, %eax - 0x88, 0x0c, 0x17, //0x00001078 movb %cl, (%rdi,%rdx) - 0x5d, //0x0000107b popq %rbp - 0xc3, //0x0000107c retq - //0x0000107d LBB3_6 - 0x31, 0xc0, //0x0000107d xorl %eax, %eax - 0x83, 0xfe, 0x0a, //0x0000107f cmpl $10, %esi - 0x0f, 0x83, 0xc8, 0xff, 0xff, 0xff, //0x00001082 jae LBB3_7 - 0xe9, 0xd5, 0xff, 0xff, 0xff, //0x00001088 jmp LBB3_8 - //0x0000108d LBB3_12 - 0xc6, 0x07, 0x2d, //0x0000108d movb $45, (%rdi) - 0x48, 0x83, 0xc7, 0x01, //0x00001090 addq $1, %rdi - 0x48, 0xf7, 0xde, //0x00001094 negq %rsi - 0xe8, 0x44, 0x00, 0x00, 0x00, //0x00001097 callq _u64toa - 0x83, 0xc0, 0x01, //0x0000109c addl $1, %eax - 0x5d, //0x0000109f popq %rbp - 0xc3, //0x000010a0 retq - //0x000010a1 LBB3_9 - 0x48, 0x81, 0xfe, 0xff, 0xe0, 0xf5, 0x05, //0x000010a1 cmpq $99999999, %rsi - 0x0f, 0x87, 0x06, 0x00, 0x00, 0x00, //0x000010a8 ja LBB3_10 - 0x5d, //0x000010ae popq %rbp - 0xe9, 0x1c, 0x01, 0x00, 0x00, //0x000010af jmp _u32toa_medium - //0x000010b4 LBB3_10 - 0x48, 0xb8, 0xff, 0xff, 0xc0, 0x6f, 0xf2, 0x86, 0x23, 0x00, //0x000010b4 movabsq $9999999999999999, %rax - 0x48, 0x39, 0xc6, //0x000010be cmpq %rax, %rsi - 0x0f, 0x87, 0x06, 0x00, 0x00, 0x00, //0x000010c1 ja LBB3_11 - 0x5d, //0x000010c7 popq %rbp - 0xe9, 0x63, 0x02, 0x00, 0x00, //0x000010c8 jmp _u64toa_large_sse2 - //0x000010cd LBB3_11 - 0x5d, //0x000010cd popq %rbp - 0xe9, 0xad, 0x03, 0x00, 0x00, //0x000010ce jmp _u64toa_xlarge_sse2 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000010d3 .p2align 4, 0x90 - //0x000010e0 _u64toa - 0x48, 0x81, 0xfe, 0x0f, 0x27, 0x00, 0x00, //0x000010e0 cmpq $9999, %rsi - 0x0f, 0x87, 0xa7, 0x00, 0x00, 0x00, //0x000010e7 ja LBB4_8 - 0x55, //0x000010ed pushq %rbp - 0x48, 0x89, 0xe5, //0x000010ee movq %rsp, %rbp - 0x0f, 0xb7, 0xc6, //0x000010f1 movzwl %si, %eax - 0xc1, 0xe8, 0x02, //0x000010f4 shrl $2, %eax - 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x000010f7 imull $5243, %eax, %eax - 0xc1, 0xe8, 0x11, //0x000010fd shrl $17, %eax - 0x48, 0x8d, 0x14, 0x00, //0x00001100 leaq (%rax,%rax), %rdx - 0x6b, 0xc0, 0x64, //0x00001104 imull $100, %eax, %eax - 0x89, 0xf1, //0x00001107 movl %esi, %ecx - 0x29, 0xc1, //0x00001109 subl %eax, %ecx - 0x0f, 0xb7, 0xc9, //0x0000110b movzwl %cx, %ecx - 0x48, 0x01, 0xc9, //0x0000110e addq %rcx, %rcx - 0x81, 0xfe, 0xe8, 0x03, 0x00, 0x00, //0x00001111 cmpl $1000, %esi - 0x0f, 0x82, 0x16, 0x00, 0x00, 0x00, //0x00001117 jb LBB4_3 - 0x48, 0x8d, 0x05, 0xbc, 0xc0, 0x00, 0x00, //0x0000111d leaq $49340(%rip), %rax /* _Digits+0(%rip) */ - 0x8a, 0x04, 0x02, //0x00001124 movb (%rdx,%rax), %al - 0x88, 0x07, //0x00001127 movb %al, (%rdi) - 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00001129 movl $1, %eax - 0xe9, 0x0b, 0x00, 0x00, 0x00, //0x0000112e jmp LBB4_4 - //0x00001133 LBB4_3 - 0x31, 0xc0, //0x00001133 xorl %eax, %eax - 0x83, 0xfe, 0x64, //0x00001135 cmpl $100, %esi - 0x0f, 0x82, 0x46, 0x00, 0x00, 0x00, //0x00001138 jb LBB4_5 - //0x0000113e LBB4_4 - 0x0f, 0xb7, 0xd2, //0x0000113e movzwl %dx, %edx - 0x48, 0x83, 0xca, 0x01, //0x00001141 orq $1, %rdx - 0x48, 0x8d, 0x35, 0x94, 0xc0, 0x00, 0x00, //0x00001145 leaq $49300(%rip), %rsi /* _Digits+0(%rip) */ - 0x8a, 0x14, 0x32, //0x0000114c movb (%rdx,%rsi), %dl - 0x89, 0xc6, //0x0000114f movl %eax, %esi - 0x83, 0xc0, 0x01, //0x00001151 addl $1, %eax - 0x88, 0x14, 0x37, //0x00001154 movb %dl, (%rdi,%rsi) - //0x00001157 LBB4_6 - 0x48, 0x8d, 0x15, 0x82, 0xc0, 0x00, 0x00, //0x00001157 leaq $49282(%rip), %rdx /* _Digits+0(%rip) */ - 0x8a, 0x14, 0x11, //0x0000115e movb (%rcx,%rdx), %dl - 0x89, 0xc6, //0x00001161 movl %eax, %esi - 0x83, 0xc0, 0x01, //0x00001163 addl $1, %eax - 0x88, 0x14, 0x37, //0x00001166 movb %dl, (%rdi,%rsi) - //0x00001169 LBB4_7 - 0x0f, 0xb7, 0xc9, //0x00001169 movzwl %cx, %ecx - 0x48, 0x83, 0xc9, 0x01, //0x0000116c orq $1, %rcx - 0x48, 0x8d, 0x15, 0x69, 0xc0, 0x00, 0x00, //0x00001170 leaq $49257(%rip), %rdx /* _Digits+0(%rip) */ - 0x8a, 0x0c, 0x11, //0x00001177 movb (%rcx,%rdx), %cl - 0x89, 0xc2, //0x0000117a movl %eax, %edx - 0x83, 0xc0, 0x01, //0x0000117c addl $1, %eax - 0x88, 0x0c, 0x17, //0x0000117f movb %cl, (%rdi,%rdx) - 0x5d, //0x00001182 popq %rbp - 0xc3, //0x00001183 retq - //0x00001184 LBB4_5 - 0x31, 0xc0, //0x00001184 xorl %eax, %eax - 0x83, 0xfe, 0x0a, //0x00001186 cmpl $10, %esi - 0x0f, 0x83, 0xc8, 0xff, 0xff, 0xff, //0x00001189 jae LBB4_6 - 0xe9, 0xd5, 0xff, 0xff, 0xff, //0x0000118f jmp LBB4_7 - //0x00001194 LBB4_8 - 0x48, 0x81, 0xfe, 0xff, 0xe0, 0xf5, 0x05, //0x00001194 cmpq $99999999, %rsi - 0x0f, 0x87, 0x05, 0x00, 0x00, 0x00, //0x0000119b ja LBB4_9 - 0xe9, 0x2a, 0x00, 0x00, 0x00, //0x000011a1 jmp _u32toa_medium - //0x000011a6 LBB4_9 - 0x48, 0xb8, 0xff, 0xff, 0xc0, 0x6f, 0xf2, 0x86, 0x23, 0x00, //0x000011a6 movabsq $9999999999999999, %rax - 0x48, 0x39, 0xc6, //0x000011b0 cmpq %rax, %rsi - 0x0f, 0x87, 0x05, 0x00, 0x00, 0x00, //0x000011b3 ja LBB4_10 - 0xe9, 0x72, 0x01, 0x00, 0x00, //0x000011b9 jmp _u64toa_large_sse2 - //0x000011be LBB4_10 - 0xe9, 0xbd, 0x02, 0x00, 0x00, //0x000011be jmp _u64toa_xlarge_sse2 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000011c3 .p2align 4, 0x90 - //0x000011d0 _u32toa_medium - 0x55, //0x000011d0 pushq %rbp - 0x48, 0x89, 0xe5, //0x000011d1 movq %rsp, %rbp - 0x89, 0xf2, //0x000011d4 movl %esi, %edx - 0xb9, 0x59, 0x17, 0xb7, 0xd1, //0x000011d6 movl $3518437209, %ecx - 0x48, 0x0f, 0xaf, 0xca, //0x000011db imulq %rdx, %rcx - 0x48, 0xc1, 0xe9, 0x2d, //0x000011df shrq $45, %rcx - 0x44, 0x69, 0xc1, 0x10, 0x27, 0x00, 0x00, //0x000011e3 imull $10000, %ecx, %r8d - 0x89, 0xf0, //0x000011ea movl %esi, %eax - 0x44, 0x29, 0xc0, //0x000011ec subl %r8d, %eax - 0x4c, 0x69, 0xd2, 0x83, 0xde, 0x1b, 0x43, //0x000011ef imulq $1125899907, %rdx, %r10 - 0x49, 0xc1, 0xea, 0x31, //0x000011f6 shrq $49, %r10 - 0x41, 0x83, 0xe2, 0xfe, //0x000011fa andl $-2, %r10d - 0x48, 0x69, 0xd1, 0x1f, 0x85, 0xeb, 0x51, //0x000011fe imulq $1374389535, %rcx, %rdx - 0x48, 0xc1, 0xea, 0x25, //0x00001205 shrq $37, %rdx - 0x6b, 0xd2, 0x64, //0x00001209 imull $100, %edx, %edx - 0x29, 0xd1, //0x0000120c subl %edx, %ecx - 0x48, 0x01, 0xc9, //0x0000120e addq %rcx, %rcx - 0x0f, 0xb7, 0xd0, //0x00001211 movzwl %ax, %edx - 0xc1, 0xea, 0x02, //0x00001214 shrl $2, %edx - 0x69, 0xd2, 0x7b, 0x14, 0x00, 0x00, //0x00001217 imull $5243, %edx, %edx - 0xc1, 0xea, 0x11, //0x0000121d shrl $17, %edx - 0x4c, 0x8d, 0x04, 0x12, //0x00001220 leaq (%rdx,%rdx), %r8 - 0x6b, 0xd2, 0x64, //0x00001224 imull $100, %edx, %edx - 0x29, 0xd0, //0x00001227 subl %edx, %eax - 0x44, 0x0f, 0xb7, 0xc8, //0x00001229 movzwl %ax, %r9d - 0x4d, 0x01, 0xc9, //0x0000122d addq %r9, %r9 - 0x81, 0xfe, 0x80, 0x96, 0x98, 0x00, //0x00001230 cmpl $10000000, %esi - 0x0f, 0x82, 0x17, 0x00, 0x00, 0x00, //0x00001236 jb LBB5_2 - 0x48, 0x8d, 0x05, 0x9d, 0xbf, 0x00, 0x00, //0x0000123c leaq $49053(%rip), %rax /* _Digits+0(%rip) */ - 0x41, 0x8a, 0x04, 0x02, //0x00001243 movb (%r10,%rax), %al - 0x88, 0x07, //0x00001247 movb %al, (%rdi) - 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00001249 movl $1, %eax - 0xe9, 0x0e, 0x00, 0x00, 0x00, //0x0000124e jmp LBB5_3 - //0x00001253 LBB5_2 - 0x31, 0xc0, //0x00001253 xorl %eax, %eax - 0x81, 0xfe, 0x40, 0x42, 0x0f, 0x00, //0x00001255 cmpl $1000000, %esi - 0x0f, 0x82, 0x73, 0x00, 0x00, 0x00, //0x0000125b jb LBB5_4 - //0x00001261 LBB5_3 - 0x44, 0x89, 0xd2, //0x00001261 movl %r10d, %edx - 0x48, 0x83, 0xca, 0x01, //0x00001264 orq $1, %rdx - 0x48, 0x8d, 0x35, 0x71, 0xbf, 0x00, 0x00, //0x00001268 leaq $49009(%rip), %rsi /* _Digits+0(%rip) */ - 0x8a, 0x14, 0x32, //0x0000126f movb (%rdx,%rsi), %dl - 0x89, 0xc6, //0x00001272 movl %eax, %esi - 0x83, 0xc0, 0x01, //0x00001274 addl $1, %eax - 0x88, 0x14, 0x37, //0x00001277 movb %dl, (%rdi,%rsi) - //0x0000127a LBB5_5 - 0x48, 0x8d, 0x15, 0x5f, 0xbf, 0x00, 0x00, //0x0000127a leaq $48991(%rip), %rdx /* _Digits+0(%rip) */ - 0x8a, 0x14, 0x11, //0x00001281 movb (%rcx,%rdx), %dl - 0x89, 0xc6, //0x00001284 movl %eax, %esi - 0x83, 0xc0, 0x01, //0x00001286 addl $1, %eax - 0x88, 0x14, 0x37, //0x00001289 movb %dl, (%rdi,%rsi) - //0x0000128c LBB5_6 - 0x89, 0xc9, //0x0000128c movl %ecx, %ecx - 0x48, 0x83, 0xc9, 0x01, //0x0000128e orq $1, %rcx - 0x48, 0x8d, 0x15, 0x47, 0xbf, 0x00, 0x00, //0x00001292 leaq $48967(%rip), %rdx /* _Digits+0(%rip) */ - 0x8a, 0x0c, 0x11, //0x00001299 movb (%rcx,%rdx), %cl - 0x89, 0xc6, //0x0000129c movl %eax, %esi - 0x88, 0x0c, 0x37, //0x0000129e movb %cl, (%rdi,%rsi) - 0x41, 0x8a, 0x0c, 0x10, //0x000012a1 movb (%r8,%rdx), %cl - 0x88, 0x4c, 0x37, 0x01, //0x000012a5 movb %cl, $1(%rdi,%rsi) - 0x41, 0x0f, 0xb7, 0xc8, //0x000012a9 movzwl %r8w, %ecx - 0x48, 0x83, 0xc9, 0x01, //0x000012ad orq $1, %rcx - 0x8a, 0x0c, 0x11, //0x000012b1 movb (%rcx,%rdx), %cl - 0x88, 0x4c, 0x37, 0x02, //0x000012b4 movb %cl, $2(%rdi,%rsi) - 0x41, 0x8a, 0x0c, 0x11, //0x000012b8 movb (%r9,%rdx), %cl - 0x88, 0x4c, 0x37, 0x03, //0x000012bc movb %cl, $3(%rdi,%rsi) - 0x41, 0x0f, 0xb7, 0xc9, //0x000012c0 movzwl %r9w, %ecx - 0x48, 0x83, 0xc9, 0x01, //0x000012c4 orq $1, %rcx - 0x8a, 0x0c, 0x11, //0x000012c8 movb (%rcx,%rdx), %cl - 0x83, 0xc0, 0x05, //0x000012cb addl $5, %eax - 0x88, 0x4c, 0x37, 0x04, //0x000012ce movb %cl, $4(%rdi,%rsi) - 0x5d, //0x000012d2 popq %rbp - 0xc3, //0x000012d3 retq - //0x000012d4 LBB5_4 - 0x31, 0xc0, //0x000012d4 xorl %eax, %eax - 0x81, 0xfe, 0xa0, 0x86, 0x01, 0x00, //0x000012d6 cmpl $100000, %esi - 0x0f, 0x83, 0x98, 0xff, 0xff, 0xff, //0x000012dc jae LBB5_5 - 0xe9, 0xa5, 0xff, 0xff, 0xff, //0x000012e2 jmp LBB5_6 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000012e7 .p2align 4, 0x00 - //0x000012f0 LCPI6_0 - 0x59, 0x17, 0xb7, 0xd1, 0x00, 0x00, 0x00, 0x00, //0x000012f0 .quad 3518437209 - 0x59, 0x17, 0xb7, 0xd1, 0x00, 0x00, 0x00, 0x00, //0x000012f8 .quad 3518437209 - //0x00001300 LCPI6_3 - 0x0a, 0x00, //0x00001300 .word 10 - 0x0a, 0x00, //0x00001302 .word 10 - 0x0a, 0x00, //0x00001304 .word 10 - 0x0a, 0x00, //0x00001306 .word 10 - 0x0a, 0x00, //0x00001308 .word 10 - 0x0a, 0x00, //0x0000130a .word 10 - 0x0a, 0x00, //0x0000130c .word 10 - 0x0a, 0x00, //0x0000130e .word 10 - //0x00001310 LCPI6_4 - 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, //0x00001310 QUAD $0x3030303030303030; QUAD $0x3030303030303030 // .space 16, '0000000000000000' - //0x00001320 .p2align 3, 0x00 - //0x00001320 LCPI6_1 - 0xc5, 0x20, 0x7b, 0x14, 0x34, 0x33, 0x00, 0x80, //0x00001320 .quad -9223315738079846203 - //0x00001328 LCPI6_2 - 0x80, 0x00, 0x00, 0x08, 0x00, 0x20, 0x00, 0x80, //0x00001328 .quad -9223336852348469120 - //0x00001330 .p2align 4, 0x90 - //0x00001330 _u64toa_large_sse2 - 0x55, //0x00001330 pushq %rbp - 0x48, 0x89, 0xe5, //0x00001331 movq %rsp, %rbp - 0x48, 0xb9, 0xfd, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x00001334 movabsq $-6067343680855748867, %rcx - 0x48, 0x89, 0xf0, //0x0000133e movq %rsi, %rax - 0x48, 0xf7, 0xe1, //0x00001341 mulq %rcx - 0x48, 0xc1, 0xea, 0x1a, //0x00001344 shrq $26, %rdx - 0x69, 0xc2, 0x00, 0xe1, 0xf5, 0x05, //0x00001348 imull $100000000, %edx, %eax - 0x29, 0xc6, //0x0000134e subl %eax, %esi - 0xc5, 0xf9, 0x6e, 0xc2, //0x00001350 vmovd %edx, %xmm0 - 0xc5, 0xf9, 0x6f, 0x0d, 0x94, 0xff, 0xff, 0xff, //0x00001354 vmovdqa $-108(%rip), %xmm1 /* LCPI6_0+0(%rip) */ - 0xc5, 0xf9, 0xf4, 0xd1, //0x0000135c vpmuludq %xmm1, %xmm0, %xmm2 - 0xc5, 0xe9, 0x73, 0xd2, 0x2d, //0x00001360 vpsrlq $45, %xmm2, %xmm2 - 0xb8, 0x10, 0x27, 0x00, 0x00, //0x00001365 movl $10000, %eax - 0xc4, 0xe1, 0xf9, 0x6e, 0xd8, //0x0000136a vmovq %rax, %xmm3 - 0xc5, 0xe9, 0xf4, 0xe3, //0x0000136f vpmuludq %xmm3, %xmm2, %xmm4 - 0xc5, 0xf9, 0xfa, 0xc4, //0x00001373 vpsubd %xmm4, %xmm0, %xmm0 - 0xc5, 0xe9, 0x61, 0xc0, //0x00001377 vpunpcklwd %xmm0, %xmm2, %xmm0 - 0xc5, 0xf9, 0x73, 0xf0, 0x02, //0x0000137b vpsllq $2, %xmm0, %xmm0 - 0xc5, 0xfb, 0x70, 0xc0, 0x50, //0x00001380 vpshuflw $80, %xmm0, %xmm0 - 0xc5, 0xf9, 0x70, 0xc0, 0x50, //0x00001385 vpshufd $80, %xmm0, %xmm0 - 0xc4, 0xe2, 0x79, 0x59, 0x15, 0x8d, 0xff, 0xff, 0xff, //0x0000138a vpbroadcastq $-115(%rip), %xmm2 /* LCPI6_1+0(%rip) */ - 0xc4, 0xe2, 0x79, 0x59, 0x25, 0x8c, 0xff, 0xff, 0xff, //0x00001393 vpbroadcastq $-116(%rip), %xmm4 /* LCPI6_2+0(%rip) */ - 0xc5, 0xf9, 0xe4, 0xc2, //0x0000139c vpmulhuw %xmm2, %xmm0, %xmm0 - 0xc5, 0xf9, 0xe4, 0xc4, //0x000013a0 vpmulhuw %xmm4, %xmm0, %xmm0 - 0xc5, 0xf9, 0x6f, 0x2d, 0x54, 0xff, 0xff, 0xff, //0x000013a4 vmovdqa $-172(%rip), %xmm5 /* LCPI6_3+0(%rip) */ - 0xc5, 0xf9, 0xd5, 0xf5, //0x000013ac vpmullw %xmm5, %xmm0, %xmm6 - 0xc5, 0xc9, 0x73, 0xf6, 0x10, //0x000013b0 vpsllq $16, %xmm6, %xmm6 - 0xc5, 0xf9, 0xf9, 0xc6, //0x000013b5 vpsubw %xmm6, %xmm0, %xmm0 - 0xc5, 0xf9, 0x6e, 0xf6, //0x000013b9 vmovd %esi, %xmm6 - 0xc5, 0xc9, 0xf4, 0xc9, //0x000013bd vpmuludq %xmm1, %xmm6, %xmm1 - 0xc5, 0xf1, 0x73, 0xd1, 0x2d, //0x000013c1 vpsrlq $45, %xmm1, %xmm1 - 0xc5, 0xf1, 0xf4, 0xdb, //0x000013c6 vpmuludq %xmm3, %xmm1, %xmm3 - 0xc5, 0xc9, 0xfa, 0xdb, //0x000013ca vpsubd %xmm3, %xmm6, %xmm3 - 0xc5, 0xf1, 0x61, 0xcb, //0x000013ce vpunpcklwd %xmm3, %xmm1, %xmm1 - 0xc5, 0xf1, 0x73, 0xf1, 0x02, //0x000013d2 vpsllq $2, %xmm1, %xmm1 - 0xc5, 0xfb, 0x70, 0xc9, 0x50, //0x000013d7 vpshuflw $80, %xmm1, %xmm1 - 0xc5, 0xf9, 0x70, 0xc9, 0x50, //0x000013dc vpshufd $80, %xmm1, %xmm1 - 0xc5, 0xf1, 0xe4, 0xca, //0x000013e1 vpmulhuw %xmm2, %xmm1, %xmm1 - 0xc5, 0xf1, 0xe4, 0xcc, //0x000013e5 vpmulhuw %xmm4, %xmm1, %xmm1 - 0xc5, 0xf1, 0xd5, 0xd5, //0x000013e9 vpmullw %xmm5, %xmm1, %xmm2 - 0xc5, 0xe9, 0x73, 0xf2, 0x10, //0x000013ed vpsllq $16, %xmm2, %xmm2 - 0xc5, 0xf1, 0xf9, 0xca, //0x000013f2 vpsubw %xmm2, %xmm1, %xmm1 - 0xc5, 0xf9, 0x67, 0xc1, //0x000013f6 vpackuswb %xmm1, %xmm0, %xmm0 - 0xc5, 0xf9, 0xfc, 0x0d, 0x0e, 0xff, 0xff, 0xff, //0x000013fa vpaddb $-242(%rip), %xmm0, %xmm1 /* LCPI6_4+0(%rip) */ - 0xc5, 0xe9, 0xef, 0xd2, //0x00001402 vpxor %xmm2, %xmm2, %xmm2 - 0xc5, 0xf9, 0x74, 0xc2, //0x00001406 vpcmpeqb %xmm2, %xmm0, %xmm0 - 0xc5, 0xf9, 0xd7, 0xc0, //0x0000140a vpmovmskb %xmm0, %eax - 0xf7, 0xd0, //0x0000140e notl %eax - 0x0d, 0x00, 0x80, 0x00, 0x00, //0x00001410 orl $32768, %eax - 0x0f, 0xbc, 0xc8, //0x00001415 bsfl %eax, %ecx - 0xb8, 0x10, 0x00, 0x00, 0x00, //0x00001418 movl $16, %eax - 0x29, 0xc8, //0x0000141d subl %ecx, %eax - 0x48, 0xc1, 0xe1, 0x04, //0x0000141f shlq $4, %rcx - 0x48, 0x8d, 0x15, 0x16, 0xe5, 0x00, 0x00, //0x00001423 leaq $58646(%rip), %rdx /* _VecShiftShuffles+0(%rip) */ - 0xc4, 0xe2, 0x71, 0x00, 0x04, 0x11, //0x0000142a vpshufb (%rcx,%rdx), %xmm1, %xmm0 - 0xc5, 0xfa, 0x7f, 0x07, //0x00001430 vmovdqu %xmm0, (%rdi) - 0x5d, //0x00001434 popq %rbp - 0xc3, //0x00001435 retq - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001436 .p2align 4, 0x00 - //0x00001440 LCPI7_0 - 0x59, 0x17, 0xb7, 0xd1, 0x00, 0x00, 0x00, 0x00, //0x00001440 .quad 3518437209 - 0x59, 0x17, 0xb7, 0xd1, 0x00, 0x00, 0x00, 0x00, //0x00001448 .quad 3518437209 - //0x00001450 LCPI7_3 - 0x0a, 0x00, //0x00001450 .word 10 - 0x0a, 0x00, //0x00001452 .word 10 - 0x0a, 0x00, //0x00001454 .word 10 - 0x0a, 0x00, //0x00001456 .word 10 - 0x0a, 0x00, //0x00001458 .word 10 - 0x0a, 0x00, //0x0000145a .word 10 - 0x0a, 0x00, //0x0000145c .word 10 - 0x0a, 0x00, //0x0000145e .word 10 - //0x00001460 LCPI7_4 - 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, //0x00001460 QUAD $0x3030303030303030; QUAD $0x3030303030303030 // .space 16, '0000000000000000' - //0x00001470 .p2align 3, 0x00 - //0x00001470 LCPI7_1 - 0xc5, 0x20, 0x7b, 0x14, 0x34, 0x33, 0x00, 0x80, //0x00001470 .quad -9223315738079846203 - //0x00001478 LCPI7_2 - 0x80, 0x00, 0x00, 0x08, 0x00, 0x20, 0x00, 0x80, //0x00001478 .quad -9223336852348469120 - //0x00001480 .p2align 4, 0x90 - //0x00001480 _u64toa_xlarge_sse2 - 0x55, //0x00001480 pushq %rbp - 0x48, 0x89, 0xe5, //0x00001481 movq %rsp, %rbp - 0x48, 0xb9, 0x57, 0x78, 0x13, 0xb1, 0x2f, 0x65, 0xa5, 0x39, //0x00001484 movabsq $4153837486827862103, %rcx - 0x48, 0x89, 0xf0, //0x0000148e movq %rsi, %rax - 0x48, 0xf7, 0xe1, //0x00001491 mulq %rcx - 0x48, 0xc1, 0xea, 0x33, //0x00001494 shrq $51, %rdx - 0x48, 0xb8, 0x00, 0x00, 0xc1, 0x6f, 0xf2, 0x86, 0x23, 0x00, //0x00001498 movabsq $10000000000000000, %rax - 0x48, 0x0f, 0xaf, 0xc2, //0x000014a2 imulq %rdx, %rax - 0x48, 0x29, 0xc6, //0x000014a6 subq %rax, %rsi - 0x83, 0xfa, 0x09, //0x000014a9 cmpl $9, %edx - 0x0f, 0x87, 0x0f, 0x00, 0x00, 0x00, //0x000014ac ja LBB7_2 - 0x80, 0xc2, 0x30, //0x000014b2 addb $48, %dl - 0x88, 0x17, //0x000014b5 movb %dl, (%rdi) - 0xb9, 0x01, 0x00, 0x00, 0x00, //0x000014b7 movl $1, %ecx - 0xe9, 0xa5, 0x00, 0x00, 0x00, //0x000014bc jmp LBB7_7 - //0x000014c1 LBB7_2 - 0x83, 0xfa, 0x63, //0x000014c1 cmpl $99, %edx - 0x0f, 0x87, 0x1a, 0x00, 0x00, 0x00, //0x000014c4 ja LBB7_4 - 0x89, 0xd0, //0x000014ca movl %edx, %eax - 0x48, 0x8d, 0x0d, 0x0d, 0xbd, 0x00, 0x00, //0x000014cc leaq $48397(%rip), %rcx /* _Digits+0(%rip) */ - 0x0f, 0xb7, 0x04, 0x41, //0x000014d3 movzwl (%rcx,%rax,2), %eax - 0x66, 0x89, 0x07, //0x000014d7 movw %ax, (%rdi) - 0xb9, 0x02, 0x00, 0x00, 0x00, //0x000014da movl $2, %ecx - 0xe9, 0x82, 0x00, 0x00, 0x00, //0x000014df jmp LBB7_7 - //0x000014e4 LBB7_4 - 0x89, 0xd0, //0x000014e4 movl %edx, %eax - 0xc1, 0xe8, 0x02, //0x000014e6 shrl $2, %eax - 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x000014e9 imull $5243, %eax, %eax - 0xc1, 0xe8, 0x11, //0x000014ef shrl $17, %eax - 0x81, 0xfa, 0xe7, 0x03, 0x00, 0x00, //0x000014f2 cmpl $999, %edx - 0x0f, 0x87, 0x37, 0x00, 0x00, 0x00, //0x000014f8 ja LBB7_6 - 0x83, 0xc0, 0x30, //0x000014fe addl $48, %eax - 0x88, 0x07, //0x00001501 movb %al, (%rdi) - 0x0f, 0xb7, 0xc2, //0x00001503 movzwl %dx, %eax - 0x89, 0xc1, //0x00001506 movl %eax, %ecx - 0xc1, 0xe9, 0x02, //0x00001508 shrl $2, %ecx - 0x69, 0xc9, 0x7b, 0x14, 0x00, 0x00, //0x0000150b imull $5243, %ecx, %ecx - 0xc1, 0xe9, 0x11, //0x00001511 shrl $17, %ecx - 0x6b, 0xc9, 0x64, //0x00001514 imull $100, %ecx, %ecx - 0x29, 0xc8, //0x00001517 subl %ecx, %eax - 0x0f, 0xb7, 0xc0, //0x00001519 movzwl %ax, %eax - 0x48, 0x8d, 0x0d, 0xbd, 0xbc, 0x00, 0x00, //0x0000151c leaq $48317(%rip), %rcx /* _Digits+0(%rip) */ - 0x0f, 0xb7, 0x04, 0x41, //0x00001523 movzwl (%rcx,%rax,2), %eax - 0x66, 0x89, 0x47, 0x01, //0x00001527 movw %ax, $1(%rdi) - 0xb9, 0x03, 0x00, 0x00, 0x00, //0x0000152b movl $3, %ecx - 0xe9, 0x31, 0x00, 0x00, 0x00, //0x00001530 jmp LBB7_7 - //0x00001535 LBB7_6 - 0x6b, 0xc8, 0x64, //0x00001535 imull $100, %eax, %ecx - 0x29, 0xca, //0x00001538 subl %ecx, %edx - 0x0f, 0xb7, 0xc0, //0x0000153a movzwl %ax, %eax - 0x48, 0x8d, 0x0d, 0x9c, 0xbc, 0x00, 0x00, //0x0000153d leaq $48284(%rip), %rcx /* _Digits+0(%rip) */ - 0x0f, 0xb7, 0x04, 0x41, //0x00001544 movzwl (%rcx,%rax,2), %eax - 0x66, 0x89, 0x07, //0x00001548 movw %ax, (%rdi) - 0x0f, 0xb7, 0xc2, //0x0000154b movzwl %dx, %eax - 0x8a, 0x14, 0x41, //0x0000154e movb (%rcx,%rax,2), %dl - 0x48, 0x01, 0xc0, //0x00001551 addq %rax, %rax - 0x88, 0x57, 0x02, //0x00001554 movb %dl, $2(%rdi) - 0x0f, 0xb7, 0xc0, //0x00001557 movzwl %ax, %eax - 0x8a, 0x44, 0x08, 0x01, //0x0000155a movb $1(%rax,%rcx), %al - 0x88, 0x47, 0x03, //0x0000155e movb %al, $3(%rdi) - 0xb9, 0x04, 0x00, 0x00, 0x00, //0x00001561 movl $4, %ecx - //0x00001566 LBB7_7 - 0x48, 0xba, 0xfd, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x00001566 movabsq $-6067343680855748867, %rdx - 0x48, 0x89, 0xf0, //0x00001570 movq %rsi, %rax - 0x48, 0xf7, 0xe2, //0x00001573 mulq %rdx - 0x48, 0xc1, 0xea, 0x1a, //0x00001576 shrq $26, %rdx - 0xc5, 0xf9, 0x6e, 0xc2, //0x0000157a vmovd %edx, %xmm0 - 0xc5, 0xf9, 0x6f, 0x0d, 0xba, 0xfe, 0xff, 0xff, //0x0000157e vmovdqa $-326(%rip), %xmm1 /* LCPI7_0+0(%rip) */ - 0xc5, 0xf9, 0xf4, 0xd1, //0x00001586 vpmuludq %xmm1, %xmm0, %xmm2 - 0xc5, 0xe9, 0x73, 0xd2, 0x2d, //0x0000158a vpsrlq $45, %xmm2, %xmm2 - 0xb8, 0x10, 0x27, 0x00, 0x00, //0x0000158f movl $10000, %eax - 0xc4, 0xe1, 0xf9, 0x6e, 0xd8, //0x00001594 vmovq %rax, %xmm3 - 0xc5, 0xe9, 0xf4, 0xe3, //0x00001599 vpmuludq %xmm3, %xmm2, %xmm4 - 0xc5, 0xf9, 0xfa, 0xc4, //0x0000159d vpsubd %xmm4, %xmm0, %xmm0 - 0xc5, 0xe9, 0x61, 0xc0, //0x000015a1 vpunpcklwd %xmm0, %xmm2, %xmm0 - 0xc5, 0xf9, 0x73, 0xf0, 0x02, //0x000015a5 vpsllq $2, %xmm0, %xmm0 - 0xc5, 0xfb, 0x70, 0xc0, 0x50, //0x000015aa vpshuflw $80, %xmm0, %xmm0 - 0xc4, 0xe2, 0x79, 0x59, 0x15, 0xb8, 0xfe, 0xff, 0xff, //0x000015af vpbroadcastq $-328(%rip), %xmm2 /* LCPI7_1+0(%rip) */ - 0xc5, 0xf9, 0x70, 0xc0, 0x50, //0x000015b8 vpshufd $80, %xmm0, %xmm0 - 0xc5, 0xf9, 0xe4, 0xc2, //0x000015bd vpmulhuw %xmm2, %xmm0, %xmm0 - 0xc4, 0xe2, 0x79, 0x59, 0x25, 0xae, 0xfe, 0xff, 0xff, //0x000015c1 vpbroadcastq $-338(%rip), %xmm4 /* LCPI7_2+0(%rip) */ - 0xc5, 0xf9, 0xe4, 0xc4, //0x000015ca vpmulhuw %xmm4, %xmm0, %xmm0 - 0xc5, 0xf9, 0x6f, 0x2d, 0x7a, 0xfe, 0xff, 0xff, //0x000015ce vmovdqa $-390(%rip), %xmm5 /* LCPI7_3+0(%rip) */ - 0xc5, 0xf9, 0xd5, 0xf5, //0x000015d6 vpmullw %xmm5, %xmm0, %xmm6 - 0xc5, 0xc9, 0x73, 0xf6, 0x10, //0x000015da vpsllq $16, %xmm6, %xmm6 - 0xc5, 0xf9, 0xf9, 0xc6, //0x000015df vpsubw %xmm6, %xmm0, %xmm0 - 0x69, 0xc2, 0x00, 0xe1, 0xf5, 0x05, //0x000015e3 imull $100000000, %edx, %eax - 0x29, 0xc6, //0x000015e9 subl %eax, %esi - 0xc5, 0xf9, 0x6e, 0xf6, //0x000015eb vmovd %esi, %xmm6 - 0xc5, 0xc9, 0xf4, 0xc9, //0x000015ef vpmuludq %xmm1, %xmm6, %xmm1 - 0xc5, 0xf1, 0x73, 0xd1, 0x2d, //0x000015f3 vpsrlq $45, %xmm1, %xmm1 - 0xc5, 0xf1, 0xf4, 0xdb, //0x000015f8 vpmuludq %xmm3, %xmm1, %xmm3 - 0xc5, 0xc9, 0xfa, 0xdb, //0x000015fc vpsubd %xmm3, %xmm6, %xmm3 - 0xc5, 0xf1, 0x61, 0xcb, //0x00001600 vpunpcklwd %xmm3, %xmm1, %xmm1 - 0xc5, 0xf1, 0x73, 0xf1, 0x02, //0x00001604 vpsllq $2, %xmm1, %xmm1 - 0xc5, 0xfb, 0x70, 0xc9, 0x50, //0x00001609 vpshuflw $80, %xmm1, %xmm1 - 0xc5, 0xf9, 0x70, 0xc9, 0x50, //0x0000160e vpshufd $80, %xmm1, %xmm1 - 0xc5, 0xf1, 0xe4, 0xca, //0x00001613 vpmulhuw %xmm2, %xmm1, %xmm1 - 0xc5, 0xf1, 0xe4, 0xcc, //0x00001617 vpmulhuw %xmm4, %xmm1, %xmm1 - 0xc5, 0xf1, 0xd5, 0xd5, //0x0000161b vpmullw %xmm5, %xmm1, %xmm2 - 0xc5, 0xe9, 0x73, 0xf2, 0x10, //0x0000161f vpsllq $16, %xmm2, %xmm2 - 0xc5, 0xf1, 0xf9, 0xca, //0x00001624 vpsubw %xmm2, %xmm1, %xmm1 - 0xc5, 0xf9, 0x67, 0xc1, //0x00001628 vpackuswb %xmm1, %xmm0, %xmm0 - 0xc5, 0xf9, 0xfc, 0x05, 0x2c, 0xfe, 0xff, 0xff, //0x0000162c vpaddb $-468(%rip), %xmm0, %xmm0 /* LCPI7_4+0(%rip) */ - 0x89, 0xc8, //0x00001634 movl %ecx, %eax - 0xc5, 0xfa, 0x7f, 0x04, 0x07, //0x00001636 vmovdqu %xmm0, (%rdi,%rax) - 0x83, 0xc9, 0x10, //0x0000163b orl $16, %ecx - 0x89, 0xc8, //0x0000163e movl %ecx, %eax - 0x5d, //0x00001640 popq %rbp - 0xc3, //0x00001641 retq - 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, //0x00001642 .p2align 5, 0x00 - //0x00001660 LCPI8_0 - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x00001660 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x00001670 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' - //0x00001680 LCPI8_1 - 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, //0x00001680 QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' - 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, //0x00001690 QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' - //0x000016a0 LCPI8_2 - 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x000016a0 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' - 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x000016b0 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' - //0x000016c0 .p2align 4, 0x00 - //0x000016c0 LCPI8_3 - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x000016c0 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' - //0x000016d0 LCPI8_4 - 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, //0x000016d0 QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' - //0x000016e0 LCPI8_5 - 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x000016e0 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' - //0x000016f0 .p2align 4, 0x90 - //0x000016f0 _quote - 0x55, //0x000016f0 pushq %rbp - 0x48, 0x89, 0xe5, //0x000016f1 movq %rsp, %rbp - 0x41, 0x57, //0x000016f4 pushq %r15 - 0x41, 0x56, //0x000016f6 pushq %r14 - 0x41, 0x55, //0x000016f8 pushq %r13 - 0x41, 0x54, //0x000016fa pushq %r12 - 0x53, //0x000016fc pushq %rbx - 0x48, 0x83, 0xec, 0x18, //0x000016fd subq $24, %rsp - 0x49, 0x89, 0xcf, //0x00001701 movq %rcx, %r15 - 0x49, 0x89, 0xf6, //0x00001704 movq %rsi, %r14 - 0x4c, 0x8b, 0x11, //0x00001707 movq (%rcx), %r10 - 0x41, 0xf6, 0xc0, 0x01, //0x0000170a testb $1, %r8b - 0x48, 0x8d, 0x05, 0xbb, 0xe2, 0x00, 0x00, //0x0000170e leaq $58043(%rip), %rax /* __SingleQuoteTab+0(%rip) */ - 0x4c, 0x8d, 0x05, 0xb4, 0xf2, 0x00, 0x00, //0x00001715 leaq $62132(%rip), %r8 /* __DoubleQuoteTab+0(%rip) */ - 0x4c, 0x0f, 0x44, 0xc0, //0x0000171c cmoveq %rax, %r8 - 0x48, 0x8d, 0x04, 0xf5, 0x00, 0x00, 0x00, 0x00, //0x00001720 leaq (,%rsi,8), %rax - 0x49, 0x39, 0xc2, //0x00001728 cmpq %rax, %r10 - 0x0f, 0x8d, 0x52, 0x07, 0x00, 0x00, //0x0000172b jge LBB8_93 - 0x49, 0x89, 0xd1, //0x00001731 movq %rdx, %r9 - 0x49, 0x89, 0xfb, //0x00001734 movq %rdi, %r11 - 0x4d, 0x85, 0xf6, //0x00001737 testq %r14, %r14 - 0x0f, 0x84, 0x95, 0x0a, 0x00, 0x00, //0x0000173a je LBB8_125 - 0xc5, 0xfd, 0x6f, 0x25, 0x18, 0xff, 0xff, 0xff, //0x00001740 vmovdqa $-232(%rip), %ymm4 /* LCPI8_0+0(%rip) */ - 0xc5, 0xfd, 0x6f, 0x2d, 0x30, 0xff, 0xff, 0xff, //0x00001748 vmovdqa $-208(%rip), %ymm5 /* LCPI8_1+0(%rip) */ - 0xc5, 0xfd, 0x6f, 0x35, 0x48, 0xff, 0xff, 0xff, //0x00001750 vmovdqa $-184(%rip), %ymm6 /* LCPI8_2+0(%rip) */ - 0xc4, 0x41, 0x3d, 0x76, 0xc0, //0x00001758 vpcmpeqd %ymm8, %ymm8, %ymm8 - 0x48, 0x89, 0xf9, //0x0000175d movq %rdi, %rcx - 0x48, 0x89, 0x55, 0xc0, //0x00001760 movq %rdx, $-64(%rbp) - 0x49, 0x89, 0xd1, //0x00001764 movq %rdx, %r9 - //0x00001767 LBB8_3 - 0x49, 0x89, 0xcd, //0x00001767 movq %rcx, %r13 - 0x49, 0x83, 0xfe, 0x20, //0x0000176a cmpq $32, %r14 - 0x0f, 0x9d, 0xc1, //0x0000176e setge %cl - 0x4c, 0x89, 0xe8, //0x00001771 movq %r13, %rax - 0x4c, 0x89, 0xd3, //0x00001774 movq %r10, %rbx - 0x4d, 0x89, 0xcc, //0x00001777 movq %r9, %r12 - 0x4d, 0x89, 0xf3, //0x0000177a movq %r14, %r11 - 0x0f, 0x8c, 0x82, 0x00, 0x00, 0x00, //0x0000177d jl LBB8_10 - 0x49, 0x83, 0xfa, 0x20, //0x00001783 cmpq $32, %r10 - 0x0f, 0x8c, 0x78, 0x00, 0x00, 0x00, //0x00001787 jl LBB8_10 - 0x45, 0x31, 0xe4, //0x0000178d xorl %r12d, %r12d - 0x4c, 0x89, 0xf6, //0x00001790 movq %r14, %rsi - 0x4c, 0x89, 0xd2, //0x00001793 movq %r10, %rdx - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001796 .p2align 4, 0x90 - //0x000017a0 LBB8_6 - 0xc4, 0xa1, 0x7e, 0x6f, 0x04, 0x20, //0x000017a0 vmovdqu (%rax,%r12), %ymm0 - 0xc5, 0xdd, 0x64, 0xc8, //0x000017a6 vpcmpgtb %ymm0, %ymm4, %ymm1 - 0xc5, 0xfd, 0x74, 0xd5, //0x000017aa vpcmpeqb %ymm5, %ymm0, %ymm2 - 0xc5, 0xfd, 0x74, 0xde, //0x000017ae vpcmpeqb %ymm6, %ymm0, %ymm3 - 0xc5, 0xe5, 0xeb, 0xd2, //0x000017b2 vpor %ymm2, %ymm3, %ymm2 - 0xc4, 0x81, 0x7e, 0x7f, 0x04, 0x21, //0x000017b6 vmovdqu %ymm0, (%r9,%r12) - 0xc4, 0xc1, 0x7d, 0x64, 0xc0, //0x000017bc vpcmpgtb %ymm8, %ymm0, %ymm0 - 0xc5, 0xf5, 0xdb, 0xc0, //0x000017c1 vpand %ymm0, %ymm1, %ymm0 - 0xc5, 0xed, 0xeb, 0xc0, //0x000017c5 vpor %ymm0, %ymm2, %ymm0 - 0xc5, 0xfd, 0xd7, 0xc8, //0x000017c9 vpmovmskb %ymm0, %ecx - 0x85, 0xc9, //0x000017cd testl %ecx, %ecx - 0x0f, 0x85, 0xfd, 0x01, 0x00, 0x00, //0x000017cf jne LBB8_20 - 0x4c, 0x8d, 0x5e, 0xe0, //0x000017d5 leaq $-32(%rsi), %r11 - 0x48, 0x8d, 0x5a, 0xe0, //0x000017d9 leaq $-32(%rdx), %rbx - 0x49, 0x83, 0xc4, 0x20, //0x000017dd addq $32, %r12 - 0x48, 0x83, 0xfe, 0x40, //0x000017e1 cmpq $64, %rsi - 0x0f, 0x9d, 0xc1, //0x000017e5 setge %cl - 0x0f, 0x8c, 0x10, 0x00, 0x00, 0x00, //0x000017e8 jl LBB8_9 - 0x4c, 0x89, 0xde, //0x000017ee movq %r11, %rsi - 0x48, 0x83, 0xfa, 0x3f, //0x000017f1 cmpq $63, %rdx - 0x48, 0x89, 0xda, //0x000017f5 movq %rbx, %rdx - 0x0f, 0x8f, 0xa2, 0xff, 0xff, 0xff, //0x000017f8 jg LBB8_6 - //0x000017fe LBB8_9 - 0x4e, 0x8d, 0x2c, 0x20, //0x000017fe leaq (%rax,%r12), %r13 - 0x4d, 0x01, 0xcc, //0x00001802 addq %r9, %r12 - //0x00001805 LBB8_10 - 0x84, 0xc9, //0x00001805 testb %cl, %cl - 0x0f, 0x84, 0x89, 0x00, 0x00, 0x00, //0x00001807 je LBB8_14 - 0x4c, 0x89, 0xf6, //0x0000180d movq %r14, %rsi - 0xc4, 0xc1, 0x7e, 0x6f, 0x45, 0x00, //0x00001810 vmovdqu (%r13), %ymm0 - 0xc5, 0xdd, 0x64, 0xc8, //0x00001816 vpcmpgtb %ymm0, %ymm4, %ymm1 - 0xc5, 0xfd, 0x74, 0xd5, //0x0000181a vpcmpeqb %ymm5, %ymm0, %ymm2 - 0xc5, 0xfd, 0x74, 0xde, //0x0000181e vpcmpeqb %ymm6, %ymm0, %ymm3 - 0xc5, 0xe5, 0xeb, 0xd2, //0x00001822 vpor %ymm2, %ymm3, %ymm2 - 0xc4, 0xc1, 0x7d, 0x64, 0xc0, //0x00001826 vpcmpgtb %ymm8, %ymm0, %ymm0 - 0xc5, 0xf5, 0xdb, 0xc0, //0x0000182b vpand %ymm0, %ymm1, %ymm0 - 0xc5, 0xed, 0xeb, 0xc0, //0x0000182f vpor %ymm0, %ymm2, %ymm0 - 0xc5, 0xfd, 0xd7, 0xc8, //0x00001833 vpmovmskb %ymm0, %ecx - 0x48, 0xba, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00001837 movabsq $4294967296, %rdx - 0x48, 0x09, 0xd1, //0x00001841 orq %rdx, %rcx - 0x4c, 0x0f, 0xbc, 0xf1, //0x00001844 bsfq %rcx, %r14 - 0xc4, 0xc1, 0x7a, 0x6f, 0x45, 0x00, //0x00001848 vmovdqu (%r13), %xmm0 - 0xc4, 0xe3, 0xf9, 0x16, 0xc1, 0x01, //0x0000184e vpextrq $1, %xmm0, %rcx - 0xc4, 0xe1, 0xf9, 0x7e, 0xc2, //0x00001854 vmovq %xmm0, %rdx - 0x49, 0x39, 0xde, //0x00001859 cmpq %rbx, %r14 - 0x0f, 0x8e, 0x7f, 0x01, 0x00, 0x00, //0x0000185c jle LBB8_21 - 0x48, 0x83, 0xfb, 0x10, //0x00001862 cmpq $16, %rbx - 0x49, 0x89, 0xc3, //0x00001866 movq %rax, %r11 - 0x0f, 0x82, 0xbe, 0x01, 0x00, 0x00, //0x00001869 jb LBB8_24 - 0x49, 0x89, 0x14, 0x24, //0x0000186f movq %rdx, (%r12) - 0x49, 0x89, 0x4c, 0x24, 0x08, //0x00001873 movq %rcx, $8(%r12) - 0x49, 0x8d, 0x4d, 0x10, //0x00001878 leaq $16(%r13), %rcx - 0x49, 0x83, 0xc4, 0x10, //0x0000187c addq $16, %r12 - 0x48, 0x8d, 0x53, 0xf0, //0x00001880 leaq $-16(%rbx), %rdx - 0x49, 0x89, 0xf6, //0x00001884 movq %rsi, %r14 - 0x48, 0x83, 0xfa, 0x08, //0x00001887 cmpq $8, %rdx - 0x0f, 0x83, 0xaf, 0x01, 0x00, 0x00, //0x0000188b jae LBB8_25 - 0xe9, 0xbd, 0x01, 0x00, 0x00, //0x00001891 jmp LBB8_26 - //0x00001896 LBB8_14 - 0xc5, 0xf8, 0x77, //0x00001896 vzeroupper - 0x49, 0x83, 0xfb, 0x10, //0x00001899 cmpq $16, %r11 - 0x0f, 0x9d, 0xc2, //0x0000189d setge %dl - 0x4c, 0x89, 0x7d, 0xc8, //0x000018a0 movq %r15, $-56(%rbp) - 0x4c, 0x89, 0x75, 0xd0, //0x000018a4 movq %r14, $-48(%rbp) - 0x0f, 0x8c, 0x17, 0x02, 0x00, 0x00, //0x000018a8 jl LBB8_31 - 0x48, 0x83, 0xfb, 0x10, //0x000018ae cmpq $16, %rbx - 0xc5, 0xf9, 0x6f, 0x3d, 0x06, 0xfe, 0xff, 0xff, //0x000018b2 vmovdqa $-506(%rip), %xmm7 /* LCPI8_3+0(%rip) */ - 0xc5, 0x79, 0x6f, 0x0d, 0x0e, 0xfe, 0xff, 0xff, //0x000018ba vmovdqa $-498(%rip), %xmm9 /* LCPI8_4+0(%rip) */ - 0xc5, 0x79, 0x6f, 0x15, 0x16, 0xfe, 0xff, 0xff, //0x000018c2 vmovdqa $-490(%rip), %xmm10 /* LCPI8_5+0(%rip) */ - 0xc4, 0x41, 0x21, 0x76, 0xdb, //0x000018ca vpcmpeqd %xmm11, %xmm11, %xmm11 - 0x0f, 0x8c, 0x3d, 0x02, 0x00, 0x00, //0x000018cf jl LBB8_36 - 0x48, 0x89, 0xc1, //0x000018d5 movq %rax, %rcx - 0x4c, 0x29, 0xe9, //0x000018d8 subq %r13, %rcx - 0xc5, 0xfd, 0x6f, 0x25, 0x7d, 0xfd, 0xff, 0xff, //0x000018db vmovdqa $-643(%rip), %ymm4 /* LCPI8_0+0(%rip) */ - 0xc5, 0xfd, 0x6f, 0x2d, 0x95, 0xfd, 0xff, 0xff, //0x000018e3 vmovdqa $-619(%rip), %ymm5 /* LCPI8_1+0(%rip) */ - 0xc5, 0xfd, 0x6f, 0x35, 0xad, 0xfd, 0xff, 0xff, //0x000018eb vmovdqa $-595(%rip), %ymm6 /* LCPI8_2+0(%rip) */ - 0xc4, 0x41, 0x3d, 0x76, 0xc0, //0x000018f3 vpcmpeqd %ymm8, %ymm8, %ymm8 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000018f8 .p2align 4, 0x90 - //0x00001900 LBB8_17 - 0xc4, 0xc1, 0x7a, 0x6f, 0x45, 0x00, //0x00001900 vmovdqu (%r13), %xmm0 - 0xc5, 0xc1, 0x64, 0xc8, //0x00001906 vpcmpgtb %xmm0, %xmm7, %xmm1 - 0xc5, 0xb1, 0x74, 0xd0, //0x0000190a vpcmpeqb %xmm0, %xmm9, %xmm2 - 0xc5, 0xa9, 0x74, 0xd8, //0x0000190e vpcmpeqb %xmm0, %xmm10, %xmm3 - 0xc5, 0xe1, 0xeb, 0xd2, //0x00001912 vpor %xmm2, %xmm3, %xmm2 - 0xc4, 0xc1, 0x7a, 0x7f, 0x04, 0x24, //0x00001916 vmovdqu %xmm0, (%r12) - 0xc4, 0xc1, 0x79, 0x64, 0xc3, //0x0000191c vpcmpgtb %xmm11, %xmm0, %xmm0 - 0xc5, 0xf1, 0xdb, 0xc0, //0x00001921 vpand %xmm0, %xmm1, %xmm0 - 0xc5, 0xe9, 0xeb, 0xc0, //0x00001925 vpor %xmm0, %xmm2, %xmm0 - 0xc5, 0xf9, 0xd7, 0xd0, //0x00001929 vpmovmskb %xmm0, %edx - 0x85, 0xd2, //0x0000192d testl %edx, %edx - 0x0f, 0x85, 0xdd, 0x00, 0x00, 0x00, //0x0000192f jne LBB8_23 - 0x49, 0x83, 0xc5, 0x10, //0x00001935 addq $16, %r13 - 0x49, 0x83, 0xc4, 0x10, //0x00001939 addq $16, %r12 - 0x4d, 0x8d, 0x7b, 0xf0, //0x0000193d leaq $-16(%r11), %r15 - 0x4c, 0x8d, 0x73, 0xf0, //0x00001941 leaq $-16(%rbx), %r14 - 0x49, 0x83, 0xfb, 0x20, //0x00001945 cmpq $32, %r11 - 0x0f, 0x9d, 0xc2, //0x00001949 setge %dl - 0x0f, 0x8c, 0x14, 0x00, 0x00, 0x00, //0x0000194c jl LBB8_32 - 0x48, 0x83, 0xc1, 0xf0, //0x00001952 addq $-16, %rcx - 0x4d, 0x89, 0xfb, //0x00001956 movq %r15, %r11 - 0x48, 0x83, 0xfb, 0x1f, //0x00001959 cmpq $31, %rbx - 0x4c, 0x89, 0xf3, //0x0000195d movq %r14, %rbx - 0x0f, 0x8f, 0x9a, 0xff, 0xff, 0xff, //0x00001960 jg LBB8_17 - //0x00001966 LBB8_32 - 0x84, 0xd2, //0x00001966 testb %dl, %dl - 0x0f, 0x84, 0xcf, 0x01, 0x00, 0x00, //0x00001968 je LBB8_37 - //0x0000196e LBB8_33 - 0xc4, 0xc1, 0x7a, 0x6f, 0x45, 0x00, //0x0000196e vmovdqu (%r13), %xmm0 - 0xc5, 0xc1, 0x64, 0xc8, //0x00001974 vpcmpgtb %xmm0, %xmm7, %xmm1 - 0xc5, 0xb1, 0x74, 0xd0, //0x00001978 vpcmpeqb %xmm0, %xmm9, %xmm2 - 0xc5, 0xa9, 0x74, 0xd8, //0x0000197c vpcmpeqb %xmm0, %xmm10, %xmm3 - 0xc5, 0xe1, 0xeb, 0xd2, //0x00001980 vpor %xmm2, %xmm3, %xmm2 - 0xc4, 0xc1, 0x79, 0x64, 0xdb, //0x00001984 vpcmpgtb %xmm11, %xmm0, %xmm3 - 0xc5, 0xf1, 0xdb, 0xcb, //0x00001989 vpand %xmm3, %xmm1, %xmm1 - 0xc5, 0xe9, 0xeb, 0xc9, //0x0000198d vpor %xmm1, %xmm2, %xmm1 - 0xc5, 0xf9, 0xd7, 0xc9, //0x00001991 vpmovmskb %xmm1, %ecx - 0x81, 0xc9, 0x00, 0x00, 0x01, 0x00, //0x00001995 orl $65536, %ecx - 0x0f, 0xbc, 0xd9, //0x0000199b bsfl %ecx, %ebx - 0xc4, 0xe1, 0xf9, 0x7e, 0xc1, //0x0000199e vmovq %xmm0, %rcx - 0x49, 0x39, 0xde, //0x000019a3 cmpq %rbx, %r14 - 0x49, 0x89, 0xc3, //0x000019a6 movq %rax, %r11 - 0x0f, 0x8d, 0xb4, 0x02, 0x00, 0x00, //0x000019a9 jge LBB8_57 - 0x49, 0x83, 0xfe, 0x08, //0x000019af cmpq $8, %r14 - 0x4c, 0x8b, 0x7d, 0xc8, //0x000019b3 movq $-56(%rbp), %r15 - 0x0f, 0x82, 0xe3, 0x02, 0x00, 0x00, //0x000019b7 jb LBB8_62 - 0x49, 0x89, 0x0c, 0x24, //0x000019bd movq %rcx, (%r12) - 0x49, 0x8d, 0x4d, 0x08, //0x000019c1 leaq $8(%r13), %rcx - 0x49, 0x83, 0xc4, 0x08, //0x000019c5 addq $8, %r12 - 0x49, 0x8d, 0x56, 0xf8, //0x000019c9 leaq $-8(%r14), %rdx - 0xe9, 0xd4, 0x02, 0x00, 0x00, //0x000019cd jmp LBB8_63 - //0x000019d2 LBB8_20 - 0x49, 0x89, 0xc3, //0x000019d2 movq %rax, %r11 - 0x44, 0x0f, 0xbc, 0xe9, //0x000019d5 bsfl %ecx, %r13d - 0x4d, 0x01, 0xe5, //0x000019d9 addq %r12, %r13 - 0xe9, 0x8f, 0x03, 0x00, 0x00, //0x000019dc jmp LBB8_75 - //0x000019e1 LBB8_21 - 0x41, 0x83, 0xfe, 0x10, //0x000019e1 cmpl $16, %r14d - 0x49, 0x89, 0xc3, //0x000019e5 movq %rax, %r11 - 0x0f, 0x82, 0xe3, 0x01, 0x00, 0x00, //0x000019e8 jb LBB8_46 - 0x49, 0x89, 0x14, 0x24, //0x000019ee movq %rdx, (%r12) - 0x49, 0x89, 0x4c, 0x24, 0x08, //0x000019f2 movq %rcx, $8(%r12) - 0x49, 0x8d, 0x5d, 0x10, //0x000019f7 leaq $16(%r13), %rbx - 0x49, 0x83, 0xc4, 0x10, //0x000019fb addq $16, %r12 - 0x49, 0x8d, 0x4e, 0xf0, //0x000019ff leaq $-16(%r14), %rcx - 0x48, 0x83, 0xf9, 0x08, //0x00001a03 cmpq $8, %rcx - 0x0f, 0x83, 0xd4, 0x01, 0x00, 0x00, //0x00001a07 jae LBB8_47 - 0xe9, 0xe2, 0x01, 0x00, 0x00, //0x00001a0d jmp LBB8_48 - //0x00001a12 LBB8_23 - 0x66, 0x0f, 0xbc, 0xd2, //0x00001a12 bsfw %dx, %dx - 0x44, 0x0f, 0xb7, 0xea, //0x00001a16 movzwl %dx, %r13d - 0x49, 0x29, 0xcd, //0x00001a1a subq %rcx, %r13 - 0x4c, 0x8b, 0x7d, 0xc8, //0x00001a1d movq $-56(%rbp), %r15 - 0x4c, 0x8b, 0x75, 0xd0, //0x00001a21 movq $-48(%rbp), %r14 - 0x49, 0x89, 0xc3, //0x00001a25 movq %rax, %r11 - 0xe9, 0x43, 0x03, 0x00, 0x00, //0x00001a28 jmp LBB8_75 - //0x00001a2d LBB8_24 - 0x4c, 0x89, 0xe9, //0x00001a2d movq %r13, %rcx - 0x48, 0x89, 0xda, //0x00001a30 movq %rbx, %rdx - 0x49, 0x89, 0xf6, //0x00001a33 movq %rsi, %r14 - 0x48, 0x83, 0xfa, 0x08, //0x00001a36 cmpq $8, %rdx - 0x0f, 0x82, 0x13, 0x00, 0x00, 0x00, //0x00001a3a jb LBB8_26 - //0x00001a40 LBB8_25 - 0x48, 0x8b, 0x31, //0x00001a40 movq (%rcx), %rsi - 0x49, 0x89, 0x34, 0x24, //0x00001a43 movq %rsi, (%r12) - 0x48, 0x83, 0xc1, 0x08, //0x00001a47 addq $8, %rcx - 0x49, 0x83, 0xc4, 0x08, //0x00001a4b addq $8, %r12 - 0x48, 0x83, 0xc2, 0xf8, //0x00001a4f addq $-8, %rdx - //0x00001a53 LBB8_26 - 0x48, 0x83, 0xfa, 0x04, //0x00001a53 cmpq $4, %rdx - 0x0f, 0x8c, 0x3c, 0x00, 0x00, 0x00, //0x00001a57 jl LBB8_27 - 0x8b, 0x31, //0x00001a5d movl (%rcx), %esi - 0x41, 0x89, 0x34, 0x24, //0x00001a5f movl %esi, (%r12) - 0x48, 0x83, 0xc1, 0x04, //0x00001a63 addq $4, %rcx - 0x49, 0x83, 0xc4, 0x04, //0x00001a67 addq $4, %r12 - 0x48, 0x83, 0xc2, 0xfc, //0x00001a6b addq $-4, %rdx - 0x48, 0x83, 0xfa, 0x02, //0x00001a6f cmpq $2, %rdx - 0x0f, 0x83, 0x2a, 0x00, 0x00, 0x00, //0x00001a73 jae LBB8_54 - //0x00001a79 LBB8_28 - 0x48, 0x85, 0xd2, //0x00001a79 testq %rdx, %rdx - 0x0f, 0x84, 0x06, 0x00, 0x00, 0x00, //0x00001a7c je LBB8_30 - //0x00001a82 LBB8_29 - 0x8a, 0x09, //0x00001a82 movb (%rcx), %cl - 0x41, 0x88, 0x0c, 0x24, //0x00001a84 movb %cl, (%r12) - //0x00001a88 LBB8_30 - 0x4c, 0x01, 0xeb, //0x00001a88 addq %r13, %rbx - 0x48, 0xf7, 0xd3, //0x00001a8b notq %rbx - 0x4c, 0x01, 0xdb, //0x00001a8e addq %r11, %rbx - 0x49, 0x89, 0xdd, //0x00001a91 movq %rbx, %r13 - 0xe9, 0xd7, 0x02, 0x00, 0x00, //0x00001a94 jmp LBB8_75 - //0x00001a99 LBB8_27 - 0x48, 0x83, 0xfa, 0x02, //0x00001a99 cmpq $2, %rdx - 0x0f, 0x82, 0xd6, 0xff, 0xff, 0xff, //0x00001a9d jb LBB8_28 - //0x00001aa3 LBB8_54 - 0x0f, 0xb7, 0x31, //0x00001aa3 movzwl (%rcx), %esi - 0x66, 0x41, 0x89, 0x34, 0x24, //0x00001aa6 movw %si, (%r12) - 0x48, 0x83, 0xc1, 0x02, //0x00001aab addq $2, %rcx - 0x49, 0x83, 0xc4, 0x02, //0x00001aaf addq $2, %r12 - 0x48, 0x83, 0xc2, 0xfe, //0x00001ab3 addq $-2, %rdx - 0x48, 0x85, 0xd2, //0x00001ab7 testq %rdx, %rdx - 0x0f, 0x85, 0xc2, 0xff, 0xff, 0xff, //0x00001aba jne LBB8_29 - 0xe9, 0xc3, 0xff, 0xff, 0xff, //0x00001ac0 jmp LBB8_30 - //0x00001ac5 LBB8_31 - 0x49, 0x89, 0xde, //0x00001ac5 movq %rbx, %r14 - 0x4d, 0x89, 0xdf, //0x00001ac8 movq %r11, %r15 - 0xc5, 0xfd, 0x6f, 0x25, 0x8d, 0xfb, 0xff, 0xff, //0x00001acb vmovdqa $-1139(%rip), %ymm4 /* LCPI8_0+0(%rip) */ - 0xc5, 0xfd, 0x6f, 0x2d, 0xa5, 0xfb, 0xff, 0xff, //0x00001ad3 vmovdqa $-1115(%rip), %ymm5 /* LCPI8_1+0(%rip) */ - 0xc5, 0xfd, 0x6f, 0x35, 0xbd, 0xfb, 0xff, 0xff, //0x00001adb vmovdqa $-1091(%rip), %ymm6 /* LCPI8_2+0(%rip) */ - 0xc4, 0x41, 0x3d, 0x76, 0xc0, //0x00001ae3 vpcmpeqd %ymm8, %ymm8, %ymm8 - 0xc5, 0xf9, 0x6f, 0x3d, 0xd0, 0xfb, 0xff, 0xff, //0x00001ae8 vmovdqa $-1072(%rip), %xmm7 /* LCPI8_3+0(%rip) */ - 0xc5, 0x79, 0x6f, 0x0d, 0xd8, 0xfb, 0xff, 0xff, //0x00001af0 vmovdqa $-1064(%rip), %xmm9 /* LCPI8_4+0(%rip) */ - 0xc5, 0x79, 0x6f, 0x15, 0xe0, 0xfb, 0xff, 0xff, //0x00001af8 vmovdqa $-1056(%rip), %xmm10 /* LCPI8_5+0(%rip) */ - 0xc4, 0x41, 0x21, 0x76, 0xdb, //0x00001b00 vpcmpeqd %xmm11, %xmm11, %xmm11 - 0x84, 0xd2, //0x00001b05 testb %dl, %dl - 0x0f, 0x84, 0x30, 0x00, 0x00, 0x00, //0x00001b07 je LBB8_37 - 0xe9, 0x5c, 0xfe, 0xff, 0xff, //0x00001b0d jmp LBB8_33 - //0x00001b12 LBB8_36 - 0x49, 0x89, 0xde, //0x00001b12 movq %rbx, %r14 - 0x4d, 0x89, 0xdf, //0x00001b15 movq %r11, %r15 - 0xc5, 0xfd, 0x6f, 0x25, 0x40, 0xfb, 0xff, 0xff, //0x00001b18 vmovdqa $-1216(%rip), %ymm4 /* LCPI8_0+0(%rip) */ - 0xc5, 0xfd, 0x6f, 0x2d, 0x58, 0xfb, 0xff, 0xff, //0x00001b20 vmovdqa $-1192(%rip), %ymm5 /* LCPI8_1+0(%rip) */ - 0xc5, 0xfd, 0x6f, 0x35, 0x70, 0xfb, 0xff, 0xff, //0x00001b28 vmovdqa $-1168(%rip), %ymm6 /* LCPI8_2+0(%rip) */ - 0xc4, 0x41, 0x3d, 0x76, 0xc0, //0x00001b30 vpcmpeqd %ymm8, %ymm8, %ymm8 - 0x84, 0xd2, //0x00001b35 testb %dl, %dl - 0x0f, 0x85, 0x31, 0xfe, 0xff, 0xff, //0x00001b37 jne LBB8_33 - //0x00001b3d LBB8_37 - 0x4d, 0x85, 0xff, //0x00001b3d testq %r15, %r15 - 0x49, 0x89, 0xc3, //0x00001b40 movq %rax, %r11 - 0x0f, 0x8e, 0x66, 0x00, 0x00, 0x00, //0x00001b43 jle LBB8_44 - 0x4d, 0x85, 0xf6, //0x00001b49 testq %r14, %r14 - 0x0f, 0x8e, 0x5d, 0x00, 0x00, 0x00, //0x00001b4c jle LBB8_44 - 0x31, 0xd2, //0x00001b52 xorl %edx, %edx - 0x31, 0xc9, //0x00001b54 xorl %ecx, %ecx - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001b56 .p2align 4, 0x90 - //0x00001b60 LBB8_40 - 0x41, 0x0f, 0xb6, 0x5c, 0x15, 0x00, //0x00001b60 movzbl (%r13,%rdx), %ebx - 0x48, 0x89, 0xde, //0x00001b66 movq %rbx, %rsi - 0x48, 0xc1, 0xe6, 0x04, //0x00001b69 shlq $4, %rsi - 0x48, 0x8d, 0x05, 0x5c, 0xde, 0x00, 0x00, //0x00001b6d leaq $56924(%rip), %rax /* __SingleQuoteTab+0(%rip) */ - 0x48, 0x83, 0x3c, 0x06, 0x00, //0x00001b74 cmpq $0, (%rsi,%rax) - 0x0f, 0x85, 0x12, 0x01, 0x00, 0x00, //0x00001b79 jne LBB8_61 - 0x49, 0x8d, 0x04, 0x0f, //0x00001b7f leaq (%r15,%rcx), %rax - 0x41, 0x88, 0x1c, 0x14, //0x00001b83 movb %bl, (%r12,%rdx) - 0x48, 0x8d, 0x71, 0xff, //0x00001b87 leaq $-1(%rcx), %rsi - 0x48, 0x83, 0xf8, 0x02, //0x00001b8b cmpq $2, %rax - 0x0f, 0x8c, 0x14, 0x00, 0x00, 0x00, //0x00001b8f jl LBB8_43 - 0x4c, 0x01, 0xf1, //0x00001b95 addq %r14, %rcx - 0x48, 0x83, 0xc2, 0x01, //0x00001b98 addq $1, %rdx - 0x48, 0x83, 0xf9, 0x01, //0x00001b9c cmpq $1, %rcx - 0x48, 0x89, 0xf1, //0x00001ba0 movq %rsi, %rcx - 0x0f, 0x8f, 0xb7, 0xff, 0xff, 0xff, //0x00001ba3 jg LBB8_40 - //0x00001ba9 LBB8_43 - 0x49, 0x29, 0xf5, //0x00001ba9 subq %rsi, %r13 - 0x49, 0x01, 0xf7, //0x00001bac addq %rsi, %r15 - //0x00001baf LBB8_44 - 0x4d, 0x85, 0xff, //0x00001baf testq %r15, %r15 - 0x4c, 0x8b, 0x75, 0xd0, //0x00001bb2 movq $-48(%rbp), %r14 - 0x49, 0xbc, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, //0x00001bb6 movabsq $12884901889, %r12 - 0x0f, 0x84, 0xbf, 0x00, 0x00, 0x00, //0x00001bc0 je LBB8_59 - 0x49, 0xf7, 0xd5, //0x00001bc6 notq %r13 - 0x4d, 0x01, 0xdd, //0x00001bc9 addq %r11, %r13 - 0xe9, 0xb7, 0x00, 0x00, 0x00, //0x00001bcc jmp LBB8_60 - //0x00001bd1 LBB8_46 - 0x4c, 0x89, 0xeb, //0x00001bd1 movq %r13, %rbx - 0x4c, 0x89, 0xf1, //0x00001bd4 movq %r14, %rcx - 0x48, 0x83, 0xf9, 0x08, //0x00001bd7 cmpq $8, %rcx - 0x0f, 0x82, 0x13, 0x00, 0x00, 0x00, //0x00001bdb jb LBB8_48 - //0x00001be1 LBB8_47 - 0x48, 0x8b, 0x13, //0x00001be1 movq (%rbx), %rdx - 0x49, 0x89, 0x14, 0x24, //0x00001be4 movq %rdx, (%r12) - 0x48, 0x83, 0xc3, 0x08, //0x00001be8 addq $8, %rbx - 0x49, 0x83, 0xc4, 0x08, //0x00001bec addq $8, %r12 - 0x48, 0x83, 0xc1, 0xf8, //0x00001bf0 addq $-8, %rcx - //0x00001bf4 LBB8_48 - 0x48, 0x83, 0xf9, 0x04, //0x00001bf4 cmpq $4, %rcx - 0x0f, 0x8c, 0x39, 0x00, 0x00, 0x00, //0x00001bf8 jl LBB8_49 - 0x8b, 0x13, //0x00001bfe movl (%rbx), %edx - 0x41, 0x89, 0x14, 0x24, //0x00001c00 movl %edx, (%r12) - 0x48, 0x83, 0xc3, 0x04, //0x00001c04 addq $4, %rbx - 0x49, 0x83, 0xc4, 0x04, //0x00001c08 addq $4, %r12 - 0x48, 0x83, 0xc1, 0xfc, //0x00001c0c addq $-4, %rcx - 0x48, 0x83, 0xf9, 0x02, //0x00001c10 cmpq $2, %rcx - 0x0f, 0x83, 0x27, 0x00, 0x00, 0x00, //0x00001c14 jae LBB8_56 - //0x00001c1a LBB8_50 - 0x48, 0x85, 0xc9, //0x00001c1a testq %rcx, %rcx - 0x0f, 0x84, 0x06, 0x00, 0x00, 0x00, //0x00001c1d je LBB8_52 - //0x00001c23 LBB8_51 - 0x8a, 0x0b, //0x00001c23 movb (%rbx), %cl - 0x41, 0x88, 0x0c, 0x24, //0x00001c25 movb %cl, (%r12) - //0x00001c29 LBB8_52 - 0x4d, 0x29, 0xdd, //0x00001c29 subq %r11, %r13 - 0x4d, 0x01, 0xf5, //0x00001c2c addq %r14, %r13 - 0x49, 0x89, 0xf6, //0x00001c2f movq %rsi, %r14 - 0xe9, 0x39, 0x01, 0x00, 0x00, //0x00001c32 jmp LBB8_75 - //0x00001c37 LBB8_49 - 0x48, 0x83, 0xf9, 0x02, //0x00001c37 cmpq $2, %rcx - 0x0f, 0x82, 0xd9, 0xff, 0xff, 0xff, //0x00001c3b jb LBB8_50 - //0x00001c41 LBB8_56 - 0x0f, 0xb7, 0x13, //0x00001c41 movzwl (%rbx), %edx - 0x66, 0x41, 0x89, 0x14, 0x24, //0x00001c44 movw %dx, (%r12) - 0x48, 0x83, 0xc3, 0x02, //0x00001c49 addq $2, %rbx - 0x49, 0x83, 0xc4, 0x02, //0x00001c4d addq $2, %r12 - 0x48, 0x83, 0xc1, 0xfe, //0x00001c51 addq $-2, %rcx - 0x48, 0x85, 0xc9, //0x00001c55 testq %rcx, %rcx - 0x0f, 0x85, 0xc5, 0xff, 0xff, 0xff, //0x00001c58 jne LBB8_51 - 0xe9, 0xc6, 0xff, 0xff, 0xff, //0x00001c5e jmp LBB8_52 - //0x00001c63 LBB8_57 - 0x83, 0xfb, 0x08, //0x00001c63 cmpl $8, %ebx - 0x4c, 0x8b, 0x7d, 0xc8, //0x00001c66 movq $-56(%rbp), %r15 - 0x0f, 0x82, 0xac, 0x00, 0x00, 0x00, //0x00001c6a jb LBB8_69 - 0x49, 0x89, 0x0c, 0x24, //0x00001c70 movq %rcx, (%r12) - 0x49, 0x8d, 0x55, 0x08, //0x00001c74 leaq $8(%r13), %rdx - 0x49, 0x83, 0xc4, 0x08, //0x00001c78 addq $8, %r12 - 0x48, 0x8d, 0x4b, 0xf8, //0x00001c7c leaq $-8(%rbx), %rcx - 0xe9, 0x9d, 0x00, 0x00, 0x00, //0x00001c80 jmp LBB8_70 - //0x00001c85 LBB8_59 - 0x4d, 0x29, 0xdd, //0x00001c85 subq %r11, %r13 - //0x00001c88 LBB8_60 - 0x4c, 0x8b, 0x7d, 0xc8, //0x00001c88 movq $-56(%rbp), %r15 - 0xe9, 0xe9, 0x00, 0x00, 0x00, //0x00001c8c jmp LBB8_76 - //0x00001c91 LBB8_61 - 0x4d, 0x29, 0xdd, //0x00001c91 subq %r11, %r13 - 0x49, 0x29, 0xcd, //0x00001c94 subq %rcx, %r13 - 0x4c, 0x8b, 0x7d, 0xc8, //0x00001c97 movq $-56(%rbp), %r15 - 0xe9, 0x47, 0x00, 0x00, 0x00, //0x00001c9b jmp LBB8_68 - //0x00001ca0 LBB8_62 - 0x4c, 0x89, 0xe9, //0x00001ca0 movq %r13, %rcx - 0x4c, 0x89, 0xf2, //0x00001ca3 movq %r14, %rdx - //0x00001ca6 LBB8_63 - 0x48, 0x83, 0xfa, 0x04, //0x00001ca6 cmpq $4, %rdx - 0x0f, 0x8c, 0x40, 0x00, 0x00, 0x00, //0x00001caa jl LBB8_64 - 0x8b, 0x31, //0x00001cb0 movl (%rcx), %esi - 0x41, 0x89, 0x34, 0x24, //0x00001cb2 movl %esi, (%r12) - 0x48, 0x83, 0xc1, 0x04, //0x00001cb6 addq $4, %rcx - 0x49, 0x83, 0xc4, 0x04, //0x00001cba addq $4, %r12 - 0x48, 0x83, 0xc2, 0xfc, //0x00001cbe addq $-4, %rdx - 0x48, 0x83, 0xfa, 0x02, //0x00001cc2 cmpq $2, %rdx - 0x0f, 0x83, 0x2e, 0x00, 0x00, 0x00, //0x00001cc6 jae LBB8_90 - //0x00001ccc LBB8_65 - 0x48, 0x85, 0xd2, //0x00001ccc testq %rdx, %rdx - 0x0f, 0x84, 0x06, 0x00, 0x00, 0x00, //0x00001ccf je LBB8_67 - //0x00001cd5 LBB8_66 - 0x8a, 0x09, //0x00001cd5 movb (%rcx), %cl - 0x41, 0x88, 0x0c, 0x24, //0x00001cd7 movb %cl, (%r12) - //0x00001cdb LBB8_67 - 0x4d, 0x01, 0xee, //0x00001cdb addq %r13, %r14 - 0x49, 0xf7, 0xd6, //0x00001cde notq %r14 - 0x4d, 0x01, 0xde, //0x00001ce1 addq %r11, %r14 - 0x4d, 0x89, 0xf5, //0x00001ce4 movq %r14, %r13 - //0x00001ce7 LBB8_68 - 0x4c, 0x8b, 0x75, 0xd0, //0x00001ce7 movq $-48(%rbp), %r14 - 0xe9, 0x80, 0x00, 0x00, 0x00, //0x00001ceb jmp LBB8_75 - //0x00001cf0 LBB8_64 - 0x48, 0x83, 0xfa, 0x02, //0x00001cf0 cmpq $2, %rdx - 0x0f, 0x82, 0xd2, 0xff, 0xff, 0xff, //0x00001cf4 jb LBB8_65 - //0x00001cfa LBB8_90 - 0x0f, 0xb7, 0x31, //0x00001cfa movzwl (%rcx), %esi - 0x66, 0x41, 0x89, 0x34, 0x24, //0x00001cfd movw %si, (%r12) - 0x48, 0x83, 0xc1, 0x02, //0x00001d02 addq $2, %rcx - 0x49, 0x83, 0xc4, 0x02, //0x00001d06 addq $2, %r12 - 0x48, 0x83, 0xc2, 0xfe, //0x00001d0a addq $-2, %rdx - 0x48, 0x85, 0xd2, //0x00001d0e testq %rdx, %rdx - 0x0f, 0x85, 0xbe, 0xff, 0xff, 0xff, //0x00001d11 jne LBB8_66 - 0xe9, 0xbf, 0xff, 0xff, 0xff, //0x00001d17 jmp LBB8_67 - //0x00001d1c LBB8_69 - 0x4c, 0x89, 0xea, //0x00001d1c movq %r13, %rdx - 0x48, 0x89, 0xd9, //0x00001d1f movq %rbx, %rcx - //0x00001d22 LBB8_70 - 0x4c, 0x8b, 0x75, 0xd0, //0x00001d22 movq $-48(%rbp), %r14 - 0x48, 0x83, 0xf9, 0x04, //0x00001d26 cmpq $4, %rcx - 0x0f, 0x8c, 0x27, 0x01, 0x00, 0x00, //0x00001d2a jl LBB8_71 - 0x8b, 0x32, //0x00001d30 movl (%rdx), %esi - 0x41, 0x89, 0x34, 0x24, //0x00001d32 movl %esi, (%r12) - 0x48, 0x83, 0xc2, 0x04, //0x00001d36 addq $4, %rdx - 0x49, 0x83, 0xc4, 0x04, //0x00001d3a addq $4, %r12 - 0x48, 0x83, 0xc1, 0xfc, //0x00001d3e addq $-4, %rcx - 0x48, 0x83, 0xf9, 0x02, //0x00001d42 cmpq $2, %rcx - 0x0f, 0x83, 0x15, 0x01, 0x00, 0x00, //0x00001d46 jae LBB8_92 - //0x00001d4c LBB8_72 - 0x48, 0x85, 0xc9, //0x00001d4c testq %rcx, %rcx - 0x0f, 0x84, 0x06, 0x00, 0x00, 0x00, //0x00001d4f je LBB8_74 - //0x00001d55 LBB8_73 - 0x8a, 0x0a, //0x00001d55 movb (%rdx), %cl - 0x41, 0x88, 0x0c, 0x24, //0x00001d57 movb %cl, (%r12) - //0x00001d5b LBB8_74 - 0x4d, 0x29, 0xdd, //0x00001d5b subq %r11, %r13 - 0x49, 0x01, 0xdd, //0x00001d5e addq %rbx, %r13 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001d61 .p2align 4, 0x90 - //0x00001d70 LBB8_75 - 0x49, 0xbc, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, //0x00001d70 movabsq $12884901889, %r12 - //0x00001d7a LBB8_76 - 0x4d, 0x85, 0xed, //0x00001d7a testq %r13, %r13 - 0x0f, 0x88, 0x8b, 0x04, 0x00, 0x00, //0x00001d7d js LBB8_128 - 0x4d, 0x01, 0xe9, //0x00001d83 addq %r13, %r9 - 0x4d, 0x39, 0xee, //0x00001d86 cmpq %r13, %r14 - 0x0f, 0x84, 0x3f, 0x04, 0x00, 0x00, //0x00001d89 je LBB8_124 - 0x4d, 0x29, 0xea, //0x00001d8f subq %r13, %r10 - 0xe9, 0x19, 0x00, 0x00, 0x00, //0x00001d92 jmp LBB8_80 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001d97 .p2align 4, 0x90 - //0x00001da0 LBB8_79 - 0x49, 0x01, 0xc9, //0x00001da0 addq %rcx, %r9 - 0x49, 0x83, 0xc5, 0x01, //0x00001da3 addq $1, %r13 - 0x4d, 0x39, 0xee, //0x00001da7 cmpq %r13, %r14 - 0x0f, 0x84, 0x1e, 0x04, 0x00, 0x00, //0x00001daa je LBB8_124 - //0x00001db0 LBB8_80 - 0x43, 0x0f, 0xb6, 0x34, 0x2b, //0x00001db0 movzbl (%r11,%r13), %esi - 0x48, 0xc1, 0xe6, 0x04, //0x00001db5 shlq $4, %rsi - 0x49, 0x8b, 0x1c, 0x30, //0x00001db9 movq (%r8,%rsi), %rbx - 0x85, 0xdb, //0x00001dbd testl %ebx, %ebx - 0x0f, 0x84, 0x80, 0x00, 0x00, 0x00, //0x00001dbf je LBB8_88 - 0x48, 0x63, 0xcb, //0x00001dc5 movslq %ebx, %rcx - 0x49, 0x29, 0xca, //0x00001dc8 subq %rcx, %r10 - 0x0f, 0x8c, 0x15, 0x04, 0x00, 0x00, //0x00001dcb jl LBB8_126 - 0x48, 0xc1, 0xe3, 0x20, //0x00001dd1 shlq $32, %rbx - 0x49, 0x8d, 0x14, 0x30, //0x00001dd5 leaq (%r8,%rsi), %rdx - 0x48, 0x83, 0xc2, 0x08, //0x00001dd9 addq $8, %rdx - 0x4c, 0x39, 0xe3, //0x00001ddd cmpq %r12, %rbx - 0x0f, 0x8c, 0x2a, 0x00, 0x00, 0x00, //0x00001de0 jl LBB8_84 - 0x8b, 0x02, //0x00001de6 movl (%rdx), %eax - 0x41, 0x89, 0x01, //0x00001de8 movl %eax, (%r9) - 0x49, 0x8d, 0x14, 0x30, //0x00001deb leaq (%r8,%rsi), %rdx - 0x48, 0x83, 0xc2, 0x0c, //0x00001def addq $12, %rdx - 0x49, 0x8d, 0x71, 0x04, //0x00001df3 leaq $4(%r9), %rsi - 0x48, 0x8d, 0x59, 0xfc, //0x00001df7 leaq $-4(%rcx), %rbx - 0x48, 0x83, 0xfb, 0x02, //0x00001dfb cmpq $2, %rbx - 0x0f, 0x83, 0x1b, 0x00, 0x00, 0x00, //0x00001dff jae LBB8_85 - 0xe9, 0x28, 0x00, 0x00, 0x00, //0x00001e05 jmp LBB8_86 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001e0a .p2align 4, 0x90 - //0x00001e10 LBB8_84 - 0x4c, 0x89, 0xce, //0x00001e10 movq %r9, %rsi - 0x48, 0x89, 0xcb, //0x00001e13 movq %rcx, %rbx - 0x48, 0x83, 0xfb, 0x02, //0x00001e16 cmpq $2, %rbx - 0x0f, 0x82, 0x12, 0x00, 0x00, 0x00, //0x00001e1a jb LBB8_86 - //0x00001e20 LBB8_85 - 0x0f, 0xb7, 0x02, //0x00001e20 movzwl (%rdx), %eax - 0x66, 0x89, 0x06, //0x00001e23 movw %ax, (%rsi) - 0x48, 0x83, 0xc2, 0x02, //0x00001e26 addq $2, %rdx - 0x48, 0x83, 0xc6, 0x02, //0x00001e2a addq $2, %rsi - 0x48, 0x83, 0xc3, 0xfe, //0x00001e2e addq $-2, %rbx - //0x00001e32 LBB8_86 - 0x48, 0x85, 0xdb, //0x00001e32 testq %rbx, %rbx - 0x0f, 0x84, 0x65, 0xff, 0xff, 0xff, //0x00001e35 je LBB8_79 - 0x0f, 0xb6, 0x02, //0x00001e3b movzbl (%rdx), %eax - 0x88, 0x06, //0x00001e3e movb %al, (%rsi) - 0xe9, 0x5b, 0xff, 0xff, 0xff, //0x00001e40 jmp LBB8_79 - //0x00001e45 LBB8_88 - 0x4b, 0x8d, 0x0c, 0x2b, //0x00001e45 leaq (%r11,%r13), %rcx - 0x4d, 0x29, 0xee, //0x00001e49 subq %r13, %r14 - 0x0f, 0x85, 0x15, 0xf9, 0xff, 0xff, //0x00001e4c jne LBB8_3 - 0xe9, 0x77, 0x03, 0x00, 0x00, //0x00001e52 jmp LBB8_124 - //0x00001e57 LBB8_71 - 0x48, 0x83, 0xf9, 0x02, //0x00001e57 cmpq $2, %rcx - 0x0f, 0x82, 0xeb, 0xfe, 0xff, 0xff, //0x00001e5b jb LBB8_72 - //0x00001e61 LBB8_92 - 0x0f, 0xb7, 0x32, //0x00001e61 movzwl (%rdx), %esi - 0x66, 0x41, 0x89, 0x34, 0x24, //0x00001e64 movw %si, (%r12) - 0x48, 0x83, 0xc2, 0x02, //0x00001e69 addq $2, %rdx - 0x49, 0x83, 0xc4, 0x02, //0x00001e6d addq $2, %r12 - 0x48, 0x83, 0xc1, 0xfe, //0x00001e71 addq $-2, %rcx - 0x48, 0x85, 0xc9, //0x00001e75 testq %rcx, %rcx - 0x0f, 0x85, 0xd7, 0xfe, 0xff, 0xff, //0x00001e78 jne LBB8_73 - 0xe9, 0xd8, 0xfe, 0xff, 0xff, //0x00001e7e jmp LBB8_74 - //0x00001e83 LBB8_93 - 0x4c, 0x8d, 0x0d, 0x46, 0xfb, 0x00, 0x00, //0x00001e83 leaq $64326(%rip), %r9 /* __EscTab+0(%rip) */ - 0xc5, 0x7d, 0x6f, 0x15, 0xce, 0xf7, 0xff, 0xff, //0x00001e8a vmovdqa $-2098(%rip), %ymm10 /* LCPI8_0+0(%rip) */ - 0xc5, 0x7d, 0x6f, 0x0d, 0xe6, 0xf7, 0xff, 0xff, //0x00001e92 vmovdqa $-2074(%rip), %ymm9 /* LCPI8_1+0(%rip) */ - 0xc5, 0x7d, 0x6f, 0x1d, 0xfe, 0xf7, 0xff, 0xff, //0x00001e9a vmovdqa $-2050(%rip), %ymm11 /* LCPI8_2+0(%rip) */ - 0xc4, 0x41, 0x3d, 0x76, 0xc0, //0x00001ea2 vpcmpeqd %ymm8, %ymm8, %ymm8 - 0x48, 0x89, 0xd3, //0x00001ea7 movq %rdx, %rbx - 0x4c, 0x89, 0xf6, //0x00001eaa movq %r14, %rsi - //0x00001ead LBB8_94 - 0x48, 0x83, 0xfe, 0x10, //0x00001ead cmpq $16, %rsi - 0x0f, 0x8d, 0x19, 0x01, 0x00, 0x00, //0x00001eb1 jge LBB8_95 - //0x00001eb7 LBB8_100 - 0x48, 0x83, 0xfe, 0x08, //0x00001eb7 cmpq $8, %rsi - 0x0f, 0x8c, 0x7b, 0x00, 0x00, 0x00, //0x00001ebb jl LBB8_104 - //0x00001ec1 LBB8_101 - 0x0f, 0xb6, 0x07, //0x00001ec1 movzbl (%rdi), %eax - 0x0f, 0xb6, 0x4f, 0x01, //0x00001ec4 movzbl $1(%rdi), %ecx - 0x42, 0x8a, 0x0c, 0x09, //0x00001ec8 movb (%rcx,%r9), %cl - 0x00, 0xc9, //0x00001ecc addb %cl, %cl - 0x42, 0x0a, 0x0c, 0x08, //0x00001ece orb (%rax,%r9), %cl - 0x0f, 0xb6, 0x47, 0x02, //0x00001ed2 movzbl $2(%rdi), %eax - 0x46, 0x8a, 0x14, 0x08, //0x00001ed6 movb (%rax,%r9), %r10b - 0x41, 0xc0, 0xe2, 0x02, //0x00001eda shlb $2, %r10b - 0x41, 0x08, 0xca, //0x00001ede orb %cl, %r10b - 0x0f, 0xb6, 0x47, 0x03, //0x00001ee1 movzbl $3(%rdi), %eax - 0x42, 0x8a, 0x04, 0x08, //0x00001ee5 movb (%rax,%r9), %al - 0xc0, 0xe0, 0x03, //0x00001ee9 shlb $3, %al - 0x44, 0x08, 0xd0, //0x00001eec orb %r10b, %al - 0x48, 0x8b, 0x0f, //0x00001eef movq (%rdi), %rcx - 0x48, 0x89, 0x0b, //0x00001ef2 movq %rcx, (%rbx) - 0x0f, 0x85, 0x94, 0x02, 0x00, 0x00, //0x00001ef5 jne LBB8_121 - 0x0f, 0xb6, 0x47, 0x04, //0x00001efb movzbl $4(%rdi), %eax - 0x0f, 0xb6, 0x4f, 0x05, //0x00001eff movzbl $5(%rdi), %ecx - 0x42, 0x8a, 0x0c, 0x09, //0x00001f03 movb (%rcx,%r9), %cl - 0x00, 0xc9, //0x00001f07 addb %cl, %cl - 0x42, 0x0a, 0x0c, 0x08, //0x00001f09 orb (%rax,%r9), %cl - 0x0f, 0xb6, 0x47, 0x06, //0x00001f0d movzbl $6(%rdi), %eax - 0x46, 0x8a, 0x14, 0x08, //0x00001f11 movb (%rax,%r9), %r10b - 0x41, 0xc0, 0xe2, 0x02, //0x00001f15 shlb $2, %r10b - 0x41, 0x08, 0xca, //0x00001f19 orb %cl, %r10b - 0x0f, 0xb6, 0x47, 0x07, //0x00001f1c movzbl $7(%rdi), %eax - 0x42, 0x8a, 0x04, 0x08, //0x00001f20 movb (%rax,%r9), %al - 0xc0, 0xe0, 0x03, //0x00001f24 shlb $3, %al - 0x44, 0x08, 0xd0, //0x00001f27 orb %r10b, %al - 0x0f, 0x85, 0x73, 0x02, 0x00, 0x00, //0x00001f2a jne LBB8_122 - 0x48, 0x83, 0xc3, 0x08, //0x00001f30 addq $8, %rbx - 0x48, 0x83, 0xc7, 0x08, //0x00001f34 addq $8, %rdi - 0x48, 0x83, 0xc6, 0xf8, //0x00001f38 addq $-8, %rsi - //0x00001f3c LBB8_104 - 0x48, 0x83, 0xfe, 0x04, //0x00001f3c cmpq $4, %rsi - 0x0f, 0x8c, 0x44, 0x00, 0x00, 0x00, //0x00001f40 jl LBB8_107 - 0x0f, 0xb6, 0x07, //0x00001f46 movzbl (%rdi), %eax - 0x0f, 0xb6, 0x4f, 0x01, //0x00001f49 movzbl $1(%rdi), %ecx - 0x42, 0x8a, 0x0c, 0x09, //0x00001f4d movb (%rcx,%r9), %cl - 0x00, 0xc9, //0x00001f51 addb %cl, %cl - 0x42, 0x0a, 0x0c, 0x08, //0x00001f53 orb (%rax,%r9), %cl - 0x0f, 0xb6, 0x47, 0x02, //0x00001f57 movzbl $2(%rdi), %eax - 0x46, 0x8a, 0x14, 0x08, //0x00001f5b movb (%rax,%r9), %r10b - 0x41, 0xc0, 0xe2, 0x02, //0x00001f5f shlb $2, %r10b - 0x41, 0x08, 0xca, //0x00001f63 orb %cl, %r10b - 0x0f, 0xb6, 0x47, 0x03, //0x00001f66 movzbl $3(%rdi), %eax - 0x42, 0x8a, 0x04, 0x08, //0x00001f6a movb (%rax,%r9), %al - 0xc0, 0xe0, 0x03, //0x00001f6e shlb $3, %al - 0x44, 0x08, 0xd0, //0x00001f71 orb %r10b, %al - 0x8b, 0x0f, //0x00001f74 movl (%rdi), %ecx - 0x89, 0x0b, //0x00001f76 movl %ecx, (%rbx) - 0x0f, 0x85, 0x11, 0x02, 0x00, 0x00, //0x00001f78 jne LBB8_121 - 0x48, 0x83, 0xc3, 0x04, //0x00001f7e addq $4, %rbx - 0x48, 0x83, 0xc7, 0x04, //0x00001f82 addq $4, %rdi - 0x48, 0x83, 0xc6, 0xfc, //0x00001f86 addq $-4, %rsi - //0x00001f8a LBB8_107 - 0x48, 0x85, 0xf6, //0x00001f8a testq %rsi, %rsi - 0x0f, 0x8e, 0x30, 0x02, 0x00, 0x00, //0x00001f8d jle LBB8_123 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001f93 .p2align 4, 0x90 - //0x00001fa0 LBB8_108 - 0x0f, 0xb6, 0x07, //0x00001fa0 movzbl (%rdi), %eax - 0x42, 0x80, 0x3c, 0x08, 0x00, //0x00001fa3 cmpb $0, (%rax,%r9) - 0x0f, 0x85, 0x95, 0x01, 0x00, 0x00, //0x00001fa8 jne LBB8_118 - 0x48, 0x83, 0xc7, 0x01, //0x00001fae addq $1, %rdi - 0x88, 0x03, //0x00001fb2 movb %al, (%rbx) - 0x48, 0x83, 0xc3, 0x01, //0x00001fb4 addq $1, %rbx - 0x48, 0x8d, 0x46, 0xff, //0x00001fb8 leaq $-1(%rsi), %rax - 0x48, 0x83, 0xfe, 0x01, //0x00001fbc cmpq $1, %rsi - 0x48, 0x89, 0xc6, //0x00001fc0 movq %rax, %rsi - 0x0f, 0x8f, 0xd7, 0xff, 0xff, 0xff, //0x00001fc3 jg LBB8_108 - 0xe9, 0xf5, 0x01, 0x00, 0x00, //0x00001fc9 jmp LBB8_123 - 0x90, 0x90, //0x00001fce .p2align 4, 0x90 - //0x00001fd0 LBB8_95 - 0x48, 0x83, 0xfe, 0x20, //0x00001fd0 cmpq $32, %rsi - 0x0f, 0x8c, 0x9f, 0x00, 0x00, 0x00, //0x00001fd4 jl LBB8_110 - 0x48, 0x89, 0xf1, //0x00001fda movq %rsi, %rcx - 0x90, 0x90, 0x90, //0x00001fdd .p2align 4, 0x90 - //0x00001fe0 LBB8_97 - 0xc5, 0xfe, 0x6f, 0x07, //0x00001fe0 vmovdqu (%rdi), %ymm0 - 0xc5, 0xad, 0x64, 0xc8, //0x00001fe4 vpcmpgtb %ymm0, %ymm10, %ymm1 - 0xc5, 0xb5, 0x74, 0xd0, //0x00001fe8 vpcmpeqb %ymm0, %ymm9, %ymm2 - 0xc5, 0xa5, 0x74, 0xd8, //0x00001fec vpcmpeqb %ymm0, %ymm11, %ymm3 - 0xc5, 0xe5, 0xeb, 0xd2, //0x00001ff0 vpor %ymm2, %ymm3, %ymm2 - 0xc5, 0xfe, 0x7f, 0x03, //0x00001ff4 vmovdqu %ymm0, (%rbx) - 0xc4, 0xc1, 0x7d, 0x64, 0xc0, //0x00001ff8 vpcmpgtb %ymm8, %ymm0, %ymm0 - 0xc5, 0xf5, 0xdb, 0xc0, //0x00001ffd vpand %ymm0, %ymm1, %ymm0 - 0xc5, 0xed, 0xeb, 0xc0, //0x00002001 vpor %ymm0, %ymm2, %ymm0 - 0xc5, 0xfd, 0xd7, 0xc0, //0x00002005 vpmovmskb %ymm0, %eax - 0x85, 0xc0, //0x00002009 testl %eax, %eax - 0x0f, 0x85, 0x23, 0x01, 0x00, 0x00, //0x0000200b jne LBB8_116 - 0x48, 0x83, 0xc7, 0x20, //0x00002011 addq $32, %rdi - 0x48, 0x83, 0xc3, 0x20, //0x00002015 addq $32, %rbx - 0x48, 0x8d, 0x71, 0xe0, //0x00002019 leaq $-32(%rcx), %rsi - 0x48, 0x83, 0xf9, 0x3f, //0x0000201d cmpq $63, %rcx - 0x48, 0x89, 0xf1, //0x00002021 movq %rsi, %rcx - 0x0f, 0x8f, 0xb6, 0xff, 0xff, 0xff, //0x00002024 jg LBB8_97 - 0xc5, 0xf8, 0x77, //0x0000202a vzeroupper - 0xc4, 0x41, 0x3d, 0x76, 0xc0, //0x0000202d vpcmpeqd %ymm8, %ymm8, %ymm8 - 0xc5, 0x7d, 0x6f, 0x1d, 0x66, 0xf6, 0xff, 0xff, //0x00002032 vmovdqa $-2458(%rip), %ymm11 /* LCPI8_2+0(%rip) */ - 0xc5, 0x7d, 0x6f, 0x0d, 0x3e, 0xf6, 0xff, 0xff, //0x0000203a vmovdqa $-2498(%rip), %ymm9 /* LCPI8_1+0(%rip) */ - 0xc5, 0x7d, 0x6f, 0x15, 0x16, 0xf6, 0xff, 0xff, //0x00002042 vmovdqa $-2538(%rip), %ymm10 /* LCPI8_0+0(%rip) */ - 0x48, 0x8d, 0x46, 0x20, //0x0000204a leaq $32(%rsi), %rax - 0x48, 0x83, 0xf8, 0x30, //0x0000204e cmpq $48, %rax - 0xc5, 0xf9, 0x6f, 0x3d, 0x66, 0xf6, 0xff, 0xff, //0x00002052 vmovdqa $-2458(%rip), %xmm7 /* LCPI8_3+0(%rip) */ - 0xc5, 0xf9, 0x6f, 0x2d, 0x6e, 0xf6, 0xff, 0xff, //0x0000205a vmovdqa $-2450(%rip), %xmm5 /* LCPI8_4+0(%rip) */ - 0xc5, 0xf9, 0x6f, 0x25, 0x76, 0xf6, 0xff, 0xff, //0x00002062 vmovdqa $-2442(%rip), %xmm4 /* LCPI8_5+0(%rip) */ - 0xc5, 0xc9, 0x76, 0xf6, //0x0000206a vpcmpeqd %xmm6, %xmm6, %xmm6 - 0x0f, 0x8d, 0x41, 0x00, 0x00, 0x00, //0x0000206e jge LBB8_111 - 0xe9, 0x3e, 0xfe, 0xff, 0xff, //0x00002074 jmp LBB8_100 - //0x00002079 LBB8_110 - 0xc5, 0xf8, 0x77, //0x00002079 vzeroupper - 0xc4, 0x41, 0x3d, 0x76, 0xc0, //0x0000207c vpcmpeqd %ymm8, %ymm8, %ymm8 - 0xc5, 0x7d, 0x6f, 0x1d, 0x17, 0xf6, 0xff, 0xff, //0x00002081 vmovdqa $-2537(%rip), %ymm11 /* LCPI8_2+0(%rip) */ - 0xc5, 0x7d, 0x6f, 0x0d, 0xef, 0xf5, 0xff, 0xff, //0x00002089 vmovdqa $-2577(%rip), %ymm9 /* LCPI8_1+0(%rip) */ - 0xc5, 0x7d, 0x6f, 0x15, 0xc7, 0xf5, 0xff, 0xff, //0x00002091 vmovdqa $-2617(%rip), %ymm10 /* LCPI8_0+0(%rip) */ - 0xc5, 0xf9, 0x6f, 0x3d, 0x1f, 0xf6, 0xff, 0xff, //0x00002099 vmovdqa $-2529(%rip), %xmm7 /* LCPI8_3+0(%rip) */ - 0xc5, 0xf9, 0x6f, 0x2d, 0x27, 0xf6, 0xff, 0xff, //0x000020a1 vmovdqa $-2521(%rip), %xmm5 /* LCPI8_4+0(%rip) */ - 0xc5, 0xf9, 0x6f, 0x25, 0x2f, 0xf6, 0xff, 0xff, //0x000020a9 vmovdqa $-2513(%rip), %xmm4 /* LCPI8_5+0(%rip) */ - 0xc5, 0xc9, 0x76, 0xf6, //0x000020b1 vpcmpeqd %xmm6, %xmm6, %xmm6 - //0x000020b5 LBB8_111 - 0x48, 0x89, 0xf1, //0x000020b5 movq %rsi, %rcx - 0x48, 0xf7, 0xd9, //0x000020b8 negq %rcx - 0x48, 0x83, 0xc6, 0x10, //0x000020bb addq $16, %rsi - 0x90, //0x000020bf .p2align 4, 0x90 - //0x000020c0 LBB8_112 - 0xc5, 0xfa, 0x6f, 0x07, //0x000020c0 vmovdqu (%rdi), %xmm0 - 0xc5, 0xc1, 0x64, 0xc8, //0x000020c4 vpcmpgtb %xmm0, %xmm7, %xmm1 - 0xc5, 0xf9, 0x74, 0xd5, //0x000020c8 vpcmpeqb %xmm5, %xmm0, %xmm2 - 0xc5, 0xf9, 0x74, 0xdc, //0x000020cc vpcmpeqb %xmm4, %xmm0, %xmm3 - 0xc5, 0xe1, 0xeb, 0xd2, //0x000020d0 vpor %xmm2, %xmm3, %xmm2 - 0xc5, 0xfa, 0x7f, 0x03, //0x000020d4 vmovdqu %xmm0, (%rbx) - 0xc5, 0xf9, 0x64, 0xc6, //0x000020d8 vpcmpgtb %xmm6, %xmm0, %xmm0 - 0xc5, 0xf1, 0xdb, 0xc0, //0x000020dc vpand %xmm0, %xmm1, %xmm0 - 0xc5, 0xe9, 0xeb, 0xc0, //0x000020e0 vpor %xmm0, %xmm2, %xmm0 - 0xc5, 0xf9, 0xd7, 0xc0, //0x000020e4 vpmovmskb %xmm0, %eax - 0x85, 0xc0, //0x000020e8 testl %eax, %eax - 0x0f, 0x85, 0x2f, 0x00, 0x00, 0x00, //0x000020ea jne LBB8_115 - 0x48, 0x83, 0xc7, 0x10, //0x000020f0 addq $16, %rdi - 0x48, 0x83, 0xc3, 0x10, //0x000020f4 addq $16, %rbx - 0x48, 0x83, 0xc1, 0x10, //0x000020f8 addq $16, %rcx - 0x48, 0x83, 0xc6, 0xf0, //0x000020fc addq $-16, %rsi - 0x48, 0x83, 0xfe, 0x1f, //0x00002100 cmpq $31, %rsi - 0x0f, 0x8f, 0xb6, 0xff, 0xff, 0xff, //0x00002104 jg LBB8_112 - 0x48, 0xf7, 0xd9, //0x0000210a negq %rcx - 0x48, 0x89, 0xce, //0x0000210d movq %rcx, %rsi - 0x48, 0x83, 0xfe, 0x08, //0x00002110 cmpq $8, %rsi - 0x0f, 0x8d, 0xa7, 0xfd, 0xff, 0xff, //0x00002114 jge LBB8_101 - 0xe9, 0x1d, 0xfe, 0xff, 0xff, //0x0000211a jmp LBB8_104 - //0x0000211f LBB8_115 - 0x66, 0x0f, 0xbc, 0xc0, //0x0000211f bsfw %ax, %ax - 0x0f, 0xb7, 0xc0, //0x00002123 movzwl %ax, %eax - 0x48, 0x01, 0xc7, //0x00002126 addq %rax, %rdi - 0x48, 0x01, 0xc1, //0x00002129 addq %rax, %rcx - 0x48, 0xf7, 0xd9, //0x0000212c negq %rcx - 0xe9, 0x09, 0x00, 0x00, 0x00, //0x0000212f jmp LBB8_117 - //0x00002134 LBB8_116 - 0x0f, 0xbc, 0xc0, //0x00002134 bsfl %eax, %eax - 0x48, 0x01, 0xc7, //0x00002137 addq %rax, %rdi - 0x48, 0x29, 0xc1, //0x0000213a subq %rax, %rcx - //0x0000213d LBB8_117 - 0x48, 0x01, 0xc3, //0x0000213d addq %rax, %rbx - 0x48, 0x89, 0xce, //0x00002140 movq %rcx, %rsi - //0x00002143 LBB8_118 - 0x8a, 0x07, //0x00002143 movb (%rdi), %al - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002145 .p2align 4, 0x90 - //0x00002150 LBB8_119 - 0x48, 0x89, 0xd9, //0x00002150 movq %rbx, %rcx - 0x0f, 0xb6, 0xc0, //0x00002153 movzbl %al, %eax - 0x48, 0xc1, 0xe0, 0x04, //0x00002156 shlq $4, %rax - 0x49, 0x63, 0x1c, 0x00, //0x0000215a movslq (%r8,%rax), %rbx - 0x49, 0x8b, 0x44, 0x00, 0x08, //0x0000215e movq $8(%r8,%rax), %rax - 0x48, 0x89, 0x01, //0x00002163 movq %rax, (%rcx) - 0x48, 0x01, 0xcb, //0x00002166 addq %rcx, %rbx - 0x48, 0x83, 0xfe, 0x02, //0x00002169 cmpq $2, %rsi - 0x0f, 0x8c, 0x50, 0x00, 0x00, 0x00, //0x0000216d jl LBB8_123 - 0x0f, 0xb6, 0x47, 0x01, //0x00002173 movzbl $1(%rdi), %eax - 0x48, 0x83, 0xc7, 0x01, //0x00002177 addq $1, %rdi - 0x48, 0x83, 0xc6, 0xff, //0x0000217b addq $-1, %rsi - 0x42, 0x80, 0x3c, 0x08, 0x00, //0x0000217f cmpb $0, (%rax,%r9) - 0x0f, 0x85, 0xc6, 0xff, 0xff, 0xff, //0x00002184 jne LBB8_119 - 0xe9, 0x1e, 0xfd, 0xff, 0xff, //0x0000218a jmp LBB8_94 - //0x0000218f LBB8_121 - 0x0f, 0xb6, 0xc0, //0x0000218f movzbl %al, %eax - 0x0f, 0xbc, 0xc0, //0x00002192 bsfl %eax, %eax - 0x48, 0x01, 0xc7, //0x00002195 addq %rax, %rdi - 0x48, 0x29, 0xc6, //0x00002198 subq %rax, %rsi - 0x48, 0x01, 0xc3, //0x0000219b addq %rax, %rbx - 0xe9, 0xa0, 0xff, 0xff, 0xff, //0x0000219e jmp LBB8_118 - //0x000021a3 LBB8_122 - 0x0f, 0xb6, 0xc0, //0x000021a3 movzbl %al, %eax - 0x0f, 0xbc, 0xc0, //0x000021a6 bsfl %eax, %eax - 0x48, 0x8d, 0x48, 0x04, //0x000021a9 leaq $4(%rax), %rcx - 0x48, 0x01, 0xc7, //0x000021ad addq %rax, %rdi - 0x48, 0x83, 0xc7, 0x04, //0x000021b0 addq $4, %rdi - 0x48, 0x29, 0xce, //0x000021b4 subq %rcx, %rsi - 0x48, 0x01, 0xc3, //0x000021b7 addq %rax, %rbx - 0x48, 0x83, 0xc3, 0x04, //0x000021ba addq $4, %rbx - 0xe9, 0x80, 0xff, 0xff, 0xff, //0x000021be jmp LBB8_118 - //0x000021c3 LBB8_123 - 0x48, 0x29, 0xd3, //0x000021c3 subq %rdx, %rbx - 0x49, 0x89, 0x1f, //0x000021c6 movq %rbx, (%r15) - 0xe9, 0x2b, 0x00, 0x00, 0x00, //0x000021c9 jmp LBB8_127 - //0x000021ce LBB8_124 - 0x4d, 0x01, 0xeb, //0x000021ce addq %r13, %r11 - 0x48, 0x8b, 0x55, 0xc0, //0x000021d1 movq $-64(%rbp), %rdx - //0x000021d5 LBB8_125 - 0x49, 0x29, 0xd1, //0x000021d5 subq %rdx, %r9 - 0x4d, 0x89, 0x0f, //0x000021d8 movq %r9, (%r15) - 0x49, 0x29, 0xfb, //0x000021db subq %rdi, %r11 - 0x4d, 0x89, 0xde, //0x000021de movq %r11, %r14 - 0xe9, 0x13, 0x00, 0x00, 0x00, //0x000021e1 jmp LBB8_127 - //0x000021e6 LBB8_126 - 0x4c, 0x2b, 0x4d, 0xc0, //0x000021e6 subq $-64(%rbp), %r9 - 0x4d, 0x89, 0x0f, //0x000021ea movq %r9, (%r15) - 0x4c, 0x29, 0xdf, //0x000021ed subq %r11, %rdi - 0x49, 0xf7, 0xd5, //0x000021f0 notq %r13 - 0x49, 0x01, 0xfd, //0x000021f3 addq %rdi, %r13 - 0x4d, 0x89, 0xee, //0x000021f6 movq %r13, %r14 - //0x000021f9 LBB8_127 - 0x4c, 0x89, 0xf0, //0x000021f9 movq %r14, %rax - 0x48, 0x83, 0xc4, 0x18, //0x000021fc addq $24, %rsp - 0x5b, //0x00002200 popq %rbx - 0x41, 0x5c, //0x00002201 popq %r12 - 0x41, 0x5d, //0x00002203 popq %r13 - 0x41, 0x5e, //0x00002205 popq %r14 - 0x41, 0x5f, //0x00002207 popq %r15 - 0x5d, //0x00002209 popq %rbp - 0xc5, 0xf8, 0x77, //0x0000220a vzeroupper - 0xc3, //0x0000220d retq - //0x0000220e LBB8_128 - 0x48, 0x8b, 0x45, 0xc0, //0x0000220e movq $-64(%rbp), %rax - 0x4c, 0x01, 0xe8, //0x00002212 addq %r13, %rax - 0x48, 0xf7, 0xd0, //0x00002215 notq %rax - 0x4c, 0x01, 0xc8, //0x00002218 addq %r9, %rax - 0x49, 0x89, 0x07, //0x0000221b movq %rax, (%r15) - 0x4c, 0x29, 0xdf, //0x0000221e subq %r11, %rdi - 0x4c, 0x01, 0xef, //0x00002221 addq %r13, %rdi - 0x49, 0x89, 0xfe, //0x00002224 movq %rdi, %r14 - 0xe9, 0xcd, 0xff, 0xff, 0xff, //0x00002227 jmp LBB8_127 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000222c .p2align 5, 0x00 - //0x00002240 LCPI9_0 - 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x00002240 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' - 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x00002250 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' - //0x00002260 .p2align 4, 0x00 - //0x00002260 LCPI9_1 - 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x00002260 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' - //0x00002270 .p2align 4, 0x90 - //0x00002270 _unquote - 0x55, //0x00002270 pushq %rbp - 0x48, 0x89, 0xe5, //0x00002271 movq %rsp, %rbp - 0x41, 0x57, //0x00002274 pushq %r15 - 0x41, 0x56, //0x00002276 pushq %r14 - 0x41, 0x55, //0x00002278 pushq %r13 - 0x41, 0x54, //0x0000227a pushq %r12 - 0x53, //0x0000227c pushq %rbx - 0x48, 0x83, 0xec, 0x38, //0x0000227d subq $56, %rsp - 0x48, 0x85, 0xf6, //0x00002281 testq %rsi, %rsi - 0x0f, 0x84, 0x03, 0x07, 0x00, 0x00, //0x00002284 je LBB9_1 - 0x48, 0x89, 0x4d, 0xd0, //0x0000228a movq %rcx, $-48(%rbp) - 0x4c, 0x89, 0xc0, //0x0000228e movq %r8, %rax - 0x4c, 0x89, 0x45, 0xa8, //0x00002291 movq %r8, $-88(%rbp) - 0x4d, 0x89, 0xc2, //0x00002295 movq %r8, %r10 - 0x41, 0x83, 0xe2, 0x01, //0x00002298 andl $1, %r10d - 0x4c, 0x8d, 0x05, 0x2d, 0xf8, 0x00, 0x00, //0x0000229c leaq $63533(%rip), %r8 /* __UnquoteTab+0(%rip) */ - 0xc5, 0xfd, 0x6f, 0x0d, 0x95, 0xff, 0xff, 0xff, //0x000022a3 vmovdqa $-107(%rip), %ymm1 /* LCPI9_0+0(%rip) */ - 0xc5, 0xf9, 0x6f, 0x15, 0xad, 0xff, 0xff, 0xff, //0x000022ab vmovdqa $-83(%rip), %xmm2 /* LCPI9_1+0(%rip) */ - 0x49, 0x89, 0xff, //0x000022b3 movq %rdi, %r15 - 0x49, 0x89, 0xf5, //0x000022b6 movq %rsi, %r13 - 0x49, 0x89, 0xd4, //0x000022b9 movq %rdx, %r12 - 0xe9, 0x1f, 0x02, 0x00, 0x00, //0x000022bc jmp LBB9_4 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000022c1 .p2align 4, 0x90 - //0x000022d0 LBB9_65 - 0x41, 0x81, 0xfe, 0xff, 0x07, 0x00, 0x00, //0x000022d0 cmpl $2047, %r14d - 0x0f, 0x86, 0x76, 0x05, 0x00, 0x00, //0x000022d7 jbe LBB9_73 - 0x44, 0x89, 0xf0, //0x000022dd movl %r14d, %eax - 0x25, 0x00, 0xf8, 0xff, 0xff, //0x000022e0 andl $-2048, %eax - 0x3d, 0x00, 0xd8, 0x00, 0x00, //0x000022e5 cmpl $55296, %eax - 0x0f, 0x85, 0x20, 0x05, 0x00, 0x00, //0x000022ea jne LBB9_76 - 0x4d, 0x85, 0xd2, //0x000022f0 testq %r10, %r10 - 0x48, 0x89, 0x7d, 0xc8, //0x000022f3 movq %rdi, $-56(%rbp) - 0x48, 0x89, 0x75, 0xc0, //0x000022f7 movq %rsi, $-64(%rbp) - 0x0f, 0x85, 0xe1, 0x00, 0x00, 0x00, //0x000022fb jne LBB9_68 - 0x4c, 0x89, 0x55, 0xb8, //0x00002301 movq %r10, $-72(%rbp) - 0x48, 0x89, 0x55, 0xb0, //0x00002305 movq %rdx, $-80(%rbp) - 0x49, 0x83, 0xfd, 0x06, //0x00002309 cmpq $6, %r13 - 0x0f, 0x8c, 0xfc, 0x00, 0x00, 0x00, //0x0000230d jl LBB9_100 - //0x00002313 LBB9_97 - 0x41, 0x81, 0xfe, 0xff, 0xdb, 0x00, 0x00, //0x00002313 cmpl $56319, %r14d - 0x0f, 0x87, 0xef, 0x00, 0x00, 0x00, //0x0000231a ja LBB9_100 - 0x41, 0x80, 0x3f, 0x5c, //0x00002320 cmpb $92, (%r15) - 0x0f, 0x85, 0xe5, 0x00, 0x00, 0x00, //0x00002324 jne LBB9_100 - 0x41, 0x80, 0x7f, 0x01, 0x75, //0x0000232a cmpb $117, $1(%r15) - 0x0f, 0x85, 0xda, 0x00, 0x00, 0x00, //0x0000232f jne LBB9_100 - 0x49, 0x8d, 0x7f, 0x02, //0x00002335 leaq $2(%r15), %rdi - 0xc5, 0xf8, 0x77, //0x00002339 vzeroupper - 0xe8, 0x2f, 0x09, 0x00, 0x00, //0x0000233c callq _unhex16_is - 0x84, 0xc0, //0x00002341 testb %al, %al - 0x0f, 0x84, 0x00, 0x08, 0x00, 0x00, //0x00002343 je LBB9_106 - 0x41, 0x8b, 0x47, 0x02, //0x00002349 movl $2(%r15), %eax - 0x0f, 0xc8, //0x0000234d bswapl %eax - 0x89, 0xc1, //0x0000234f movl %eax, %ecx - 0xc1, 0xe9, 0x04, //0x00002351 shrl $4, %ecx - 0xf7, 0xd1, //0x00002354 notl %ecx - 0x81, 0xe1, 0x01, 0x01, 0x01, 0x01, //0x00002356 andl $16843009, %ecx - 0x8d, 0x0c, 0xc9, //0x0000235c leal (%rcx,%rcx,8), %ecx - 0x25, 0x0f, 0x0f, 0x0f, 0x0f, //0x0000235f andl $252645135, %eax - 0x01, 0xc8, //0x00002364 addl %ecx, %eax - 0x89, 0xc1, //0x00002366 movl %eax, %ecx - 0xc1, 0xe9, 0x04, //0x00002368 shrl $4, %ecx - 0x09, 0xc1, //0x0000236b orl %eax, %ecx - 0x89, 0xc8, //0x0000236d movl %ecx, %eax - 0xc1, 0xe8, 0x08, //0x0000236f shrl $8, %eax - 0x25, 0x00, 0xff, 0x00, 0x00, //0x00002372 andl $65280, %eax - 0x0f, 0xb6, 0xd9, //0x00002377 movzbl %cl, %ebx - 0x09, 0xc3, //0x0000237a orl %eax, %ebx - 0x49, 0x83, 0xc7, 0x06, //0x0000237c addq $6, %r15 - 0x49, 0x83, 0xc5, 0xfa, //0x00002380 addq $-6, %r13 - 0x81, 0xe1, 0x00, 0x00, 0xfc, 0x00, //0x00002384 andl $16515072, %ecx - 0x81, 0xf9, 0x00, 0x00, 0xdc, 0x00, //0x0000238a cmpl $14417920, %ecx - 0x48, 0x8b, 0x7d, 0xc8, //0x00002390 movq $-56(%rbp), %rdi - 0x48, 0x8b, 0x55, 0xb0, //0x00002394 movq $-80(%rbp), %rdx - 0x48, 0x8b, 0x75, 0xc0, //0x00002398 movq $-64(%rbp), %rsi - 0x4c, 0x8d, 0x05, 0x2d, 0xf7, 0x00, 0x00, //0x0000239c leaq $63277(%rip), %r8 /* __UnquoteTab+0(%rip) */ - 0xc5, 0xfd, 0x6f, 0x0d, 0x95, 0xfe, 0xff, 0xff, //0x000023a3 vmovdqa $-363(%rip), %ymm1 /* LCPI9_0+0(%rip) */ - 0xc5, 0xf9, 0x6f, 0x15, 0xad, 0xfe, 0xff, 0xff, //0x000023ab vmovdqa $-339(%rip), %xmm2 /* LCPI9_1+0(%rip) */ - 0x0f, 0x84, 0x76, 0x00, 0x00, 0x00, //0x000023b3 je LBB9_117 - 0x66, 0x41, 0xc7, 0x04, 0x24, 0xef, 0xbf, //0x000023b9 movw $-16401, (%r12) - 0x41, 0xc6, 0x44, 0x24, 0x02, 0xbd, //0x000023c0 movb $-67, $2(%r12) - 0x49, 0x83, 0xc4, 0x03, //0x000023c6 addq $3, %r12 - 0x41, 0x89, 0xde, //0x000023ca movl %ebx, %r14d - 0x81, 0xfb, 0x80, 0x00, 0x00, 0x00, //0x000023cd cmpl $128, %ebx - 0x4c, 0x8b, 0x55, 0xb8, //0x000023d3 movq $-72(%rbp), %r10 - 0x0f, 0x83, 0xf3, 0xfe, 0xff, 0xff, //0x000023d7 jae LBB9_65 - 0xe9, 0xe7, 0x03, 0x00, 0x00, //0x000023dd jmp LBB9_119 - //0x000023e2 LBB9_68 - 0x4d, 0x85, 0xed, //0x000023e2 testq %r13, %r13 - 0x0f, 0x8e, 0x38, 0x07, 0x00, 0x00, //0x000023e5 jle LBB9_69 - 0x41, 0x80, 0x3f, 0x5c, //0x000023eb cmpb $92, (%r15) - 0x0f, 0x85, 0xb9, 0x00, 0x00, 0x00, //0x000023ef jne LBB9_102 - 0x49, 0x83, 0xc5, 0xff, //0x000023f5 addq $-1, %r13 - 0x49, 0x83, 0xc7, 0x01, //0x000023f9 addq $1, %r15 - 0x4c, 0x89, 0x55, 0xb8, //0x000023fd movq %r10, $-72(%rbp) - 0x48, 0x89, 0x55, 0xb0, //0x00002401 movq %rdx, $-80(%rbp) - 0x49, 0x83, 0xfd, 0x06, //0x00002405 cmpq $6, %r13 - 0x0f, 0x8d, 0x04, 0xff, 0xff, 0xff, //0x00002409 jge LBB9_97 - //0x0000240f LBB9_100 - 0xf6, 0x45, 0xa8, 0x02, //0x0000240f testb $2, $-88(%rbp) - 0x0f, 0x84, 0x52, 0x05, 0x00, 0x00, //0x00002413 je LBB9_83 - 0x66, 0x41, 0xc7, 0x04, 0x24, 0xef, 0xbf, //0x00002419 movw $-16401, (%r12) - 0x41, 0xc6, 0x44, 0x24, 0x02, 0xbd, //0x00002420 movb $-67, $2(%r12) - 0x49, 0x83, 0xc4, 0x03, //0x00002426 addq $3, %r12 - 0xe9, 0x4a, 0x00, 0x00, 0x00, //0x0000242a jmp LBB9_92 - //0x0000242f LBB9_117 - 0x89, 0xd8, //0x0000242f movl %ebx, %eax - 0x44, 0x89, 0xf3, //0x00002431 movl %r14d, %ebx - //0x00002434 LBB9_91 - 0xc1, 0xe3, 0x0a, //0x00002434 shll $10, %ebx - 0x89, 0xc1, //0x00002437 movl %eax, %ecx - 0x01, 0xd9, //0x00002439 addl %ebx, %ecx - 0x01, 0xd8, //0x0000243b addl %ebx, %eax - 0x05, 0x00, 0x24, 0xa0, 0xfc, //0x0000243d addl $-56613888, %eax - 0x89, 0xc2, //0x00002442 movl %eax, %edx - 0xc1, 0xea, 0x12, //0x00002444 shrl $18, %edx - 0x80, 0xca, 0xf0, //0x00002447 orb $-16, %dl - 0x41, 0x88, 0x14, 0x24, //0x0000244a movb %dl, (%r12) - 0x89, 0xc2, //0x0000244e movl %eax, %edx - 0xc1, 0xea, 0x0c, //0x00002450 shrl $12, %edx - 0x80, 0xe2, 0x3f, //0x00002453 andb $63, %dl - 0x80, 0xca, 0x80, //0x00002456 orb $-128, %dl - 0x41, 0x88, 0x54, 0x24, 0x01, //0x00002459 movb %dl, $1(%r12) - 0xc1, 0xe8, 0x06, //0x0000245e shrl $6, %eax - 0x24, 0x3f, //0x00002461 andb $63, %al - 0x0c, 0x80, //0x00002463 orb $-128, %al - 0x41, 0x88, 0x44, 0x24, 0x02, //0x00002465 movb %al, $2(%r12) - 0x80, 0xe1, 0x3f, //0x0000246a andb $63, %cl - 0x80, 0xc9, 0x80, //0x0000246d orb $-128, %cl - 0x41, 0x88, 0x4c, 0x24, 0x03, //0x00002470 movb %cl, $3(%r12) - 0x49, 0x83, 0xc4, 0x04, //0x00002475 addq $4, %r12 - //0x00002479 LBB9_92 - 0x48, 0x8b, 0x7d, 0xc8, //0x00002479 movq $-56(%rbp), %rdi - 0x48, 0x8b, 0x55, 0xb0, //0x0000247d movq $-80(%rbp), %rdx - 0x4c, 0x8b, 0x55, 0xb8, //0x00002481 movq $-72(%rbp), %r10 - 0x48, 0x8b, 0x75, 0xc0, //0x00002485 movq $-64(%rbp), %rsi - 0x4c, 0x8d, 0x05, 0x40, 0xf6, 0x00, 0x00, //0x00002489 leaq $63040(%rip), %r8 /* __UnquoteTab+0(%rip) */ - 0xc5, 0xfd, 0x6f, 0x0d, 0xa8, 0xfd, 0xff, 0xff, //0x00002490 vmovdqa $-600(%rip), %ymm1 /* LCPI9_0+0(%rip) */ - 0xc5, 0xf9, 0x6f, 0x15, 0xc0, 0xfd, 0xff, 0xff, //0x00002498 vmovdqa $-576(%rip), %xmm2 /* LCPI9_1+0(%rip) */ - 0x4d, 0x85, 0xed, //0x000024a0 testq %r13, %r13 - 0x0f, 0x85, 0x37, 0x00, 0x00, 0x00, //0x000024a3 jne LBB9_4 - 0xe9, 0x2f, 0x06, 0x00, 0x00, //0x000024a9 jmp LBB9_126 - //0x000024ae LBB9_102 - 0xf6, 0x45, 0xa8, 0x02, //0x000024ae testb $2, $-88(%rbp) - 0x0f, 0x84, 0x9b, 0x07, 0x00, 0x00, //0x000024b2 je LBB9_103 - 0x66, 0x41, 0xc7, 0x04, 0x24, 0xef, 0xbf, //0x000024b8 movw $-16401, (%r12) - 0x41, 0xc6, 0x44, 0x24, 0x02, 0xbd, //0x000024bf movb $-67, $2(%r12) - 0x49, 0x83, 0xc4, 0x03, //0x000024c5 addq $3, %r12 - 0x48, 0x8b, 0x7d, 0xc8, //0x000024c9 movq $-56(%rbp), %rdi - 0x48, 0x8b, 0x75, 0xc0, //0x000024cd movq $-64(%rbp), %rsi - 0x4d, 0x85, 0xed, //0x000024d1 testq %r13, %r13 - 0x0f, 0x84, 0x03, 0x06, 0x00, 0x00, //0x000024d4 je LBB9_126 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000024da .p2align 4, 0x90 - //0x000024e0 LBB9_4 - 0x41, 0x80, 0x3f, 0x5c, //0x000024e0 cmpb $92, (%r15) - 0x0f, 0x85, 0x16, 0x00, 0x00, 0x00, //0x000024e4 jne LBB9_6 - 0x45, 0x31, 0xc9, //0x000024ea xorl %r9d, %r9d - 0xe9, 0x5e, 0x01, 0x00, 0x00, //0x000024ed jmp LBB9_24 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000024f2 .p2align 4, 0x90 - //0x00002500 LBB9_6 - 0x4c, 0x89, 0xeb, //0x00002500 movq %r13, %rbx - 0x4c, 0x89, 0xe1, //0x00002503 movq %r12, %rcx - 0x4d, 0x89, 0xf9, //0x00002506 movq %r15, %r9 - 0x49, 0x83, 0xfd, 0x20, //0x00002509 cmpq $32, %r13 - 0x0f, 0x8c, 0x45, 0x00, 0x00, 0x00, //0x0000250d jl LBB9_12 - 0x31, 0xc9, //0x00002513 xorl %ecx, %ecx - 0x4c, 0x89, 0xe8, //0x00002515 movq %r13, %rax - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002518 .p2align 4, 0x90 - //0x00002520 LBB9_8 - 0xc4, 0xc1, 0x7e, 0x6f, 0x04, 0x0f, //0x00002520 vmovdqu (%r15,%rcx), %ymm0 - 0xc4, 0xc1, 0x7e, 0x7f, 0x04, 0x0c, //0x00002526 vmovdqu %ymm0, (%r12,%rcx) - 0xc5, 0xfd, 0x74, 0xc1, //0x0000252c vpcmpeqb %ymm1, %ymm0, %ymm0 - 0xc5, 0xfd, 0xd7, 0xd8, //0x00002530 vpmovmskb %ymm0, %ebx - 0x85, 0xdb, //0x00002534 testl %ebx, %ebx - 0x0f, 0x85, 0xdc, 0x00, 0x00, 0x00, //0x00002536 jne LBB9_9 - 0x48, 0x8d, 0x58, 0xe0, //0x0000253c leaq $-32(%rax), %rbx - 0x48, 0x83, 0xc1, 0x20, //0x00002540 addq $32, %rcx - 0x48, 0x83, 0xf8, 0x3f, //0x00002544 cmpq $63, %rax - 0x48, 0x89, 0xd8, //0x00002548 movq %rbx, %rax - 0x0f, 0x8f, 0xcf, 0xff, 0xff, 0xff, //0x0000254b jg LBB9_8 - 0x4d, 0x8d, 0x0c, 0x0f, //0x00002551 leaq (%r15,%rcx), %r9 - 0x4c, 0x01, 0xe1, //0x00002555 addq %r12, %rcx - //0x00002558 LBB9_12 - 0xc5, 0xf8, 0x77, //0x00002558 vzeroupper - 0x48, 0x83, 0xfb, 0x10, //0x0000255b cmpq $16, %rbx - 0x0f, 0x8c, 0x56, 0x00, 0x00, 0x00, //0x0000255f jl LBB9_13 - 0x4d, 0x89, 0xfb, //0x00002565 movq %r15, %r11 - 0x4d, 0x29, 0xcb, //0x00002568 subq %r9, %r11 - 0xc5, 0xfd, 0x6f, 0x0d, 0xcd, 0xfc, 0xff, 0xff, //0x0000256b vmovdqa $-819(%rip), %ymm1 /* LCPI9_0+0(%rip) */ - 0xc5, 0xf9, 0x6f, 0x15, 0xe5, 0xfc, 0xff, 0xff, //0x00002573 vmovdqa $-795(%rip), %xmm2 /* LCPI9_1+0(%rip) */ - 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000257b .p2align 4, 0x90 - //0x00002580 LBB9_19 - 0xc4, 0xc1, 0x7a, 0x6f, 0x01, //0x00002580 vmovdqu (%r9), %xmm0 - 0xc5, 0xfa, 0x7f, 0x01, //0x00002585 vmovdqu %xmm0, (%rcx) - 0xc5, 0xf9, 0x74, 0xc2, //0x00002589 vpcmpeqb %xmm2, %xmm0, %xmm0 - 0xc5, 0xf9, 0xd7, 0xc0, //0x0000258d vpmovmskb %xmm0, %eax - 0x85, 0xc0, //0x00002591 testl %eax, %eax - 0x0f, 0x85, 0x95, 0x00, 0x00, 0x00, //0x00002593 jne LBB9_20 - 0x49, 0x83, 0xc1, 0x10, //0x00002599 addq $16, %r9 - 0x48, 0x83, 0xc1, 0x10, //0x0000259d addq $16, %rcx - 0x4c, 0x8d, 0x73, 0xf0, //0x000025a1 leaq $-16(%rbx), %r14 - 0x49, 0x83, 0xc3, 0xf0, //0x000025a5 addq $-16, %r11 - 0x48, 0x83, 0xfb, 0x1f, //0x000025a9 cmpq $31, %rbx - 0x4c, 0x89, 0xf3, //0x000025ad movq %r14, %rbx - 0x0f, 0x8f, 0xca, 0xff, 0xff, 0xff, //0x000025b0 jg LBB9_19 - 0xe9, 0x13, 0x00, 0x00, 0x00, //0x000025b6 jmp LBB9_14 - //0x000025bb LBB9_13 - 0x49, 0x89, 0xde, //0x000025bb movq %rbx, %r14 - 0xc5, 0xfd, 0x6f, 0x0d, 0x7a, 0xfc, 0xff, 0xff, //0x000025be vmovdqa $-902(%rip), %ymm1 /* LCPI9_0+0(%rip) */ - 0xc5, 0xf9, 0x6f, 0x15, 0x92, 0xfc, 0xff, 0xff, //0x000025c6 vmovdqa $-878(%rip), %xmm2 /* LCPI9_1+0(%rip) */ - //0x000025ce LBB9_14 - 0x4d, 0x85, 0xf6, //0x000025ce testq %r14, %r14 - 0x0f, 0x84, 0xbc, 0x03, 0x00, 0x00, //0x000025d1 je LBB9_2 - 0x31, 0xc0, //0x000025d7 xorl %eax, %eax - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000025d9 .p2align 4, 0x90 - //0x000025e0 LBB9_16 - 0x41, 0x0f, 0xb6, 0x1c, 0x01, //0x000025e0 movzbl (%r9,%rax), %ebx - 0x80, 0xfb, 0x5c, //0x000025e5 cmpb $92, %bl - 0x0f, 0x84, 0x15, 0x00, 0x00, 0x00, //0x000025e8 je LBB9_22 - 0x88, 0x1c, 0x01, //0x000025ee movb %bl, (%rcx,%rax) - 0x48, 0x83, 0xc0, 0x01, //0x000025f1 addq $1, %rax - 0x49, 0x39, 0xc6, //0x000025f5 cmpq %rax, %r14 - 0x0f, 0x85, 0xe2, 0xff, 0xff, 0xff, //0x000025f8 jne LBB9_16 - 0xe9, 0x90, 0x03, 0x00, 0x00, //0x000025fe jmp LBB9_2 - //0x00002603 LBB9_22 - 0x4d, 0x29, 0xf9, //0x00002603 subq %r15, %r9 - 0x49, 0x01, 0xc1, //0x00002606 addq %rax, %r9 - 0x49, 0x83, 0xf9, 0xff, //0x00002609 cmpq $-1, %r9 - 0x0f, 0x85, 0x3d, 0x00, 0x00, 0x00, //0x0000260d jne LBB9_24 - 0xe9, 0x7b, 0x03, 0x00, 0x00, //0x00002613 jmp LBB9_2 - //0x00002618 LBB9_9 - 0x44, 0x0f, 0xbc, 0xcb, //0x00002618 bsfl %ebx, %r9d - 0x49, 0x01, 0xc9, //0x0000261c addq %rcx, %r9 - 0x49, 0x83, 0xf9, 0xff, //0x0000261f cmpq $-1, %r9 - 0x0f, 0x85, 0x27, 0x00, 0x00, 0x00, //0x00002623 jne LBB9_24 - 0xe9, 0x65, 0x03, 0x00, 0x00, //0x00002629 jmp LBB9_2 - //0x0000262e LBB9_20 - 0x66, 0x0f, 0xbc, 0xc0, //0x0000262e bsfw %ax, %ax - 0x44, 0x0f, 0xb7, 0xc8, //0x00002632 movzwl %ax, %r9d - 0x4d, 0x29, 0xd9, //0x00002636 subq %r11, %r9 - 0x49, 0x83, 0xf9, 0xff, //0x00002639 cmpq $-1, %r9 - 0x0f, 0x84, 0x50, 0x03, 0x00, 0x00, //0x0000263d je LBB9_2 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002643 .p2align 4, 0x90 - //0x00002650 LBB9_24 - 0x49, 0x8d, 0x49, 0x02, //0x00002650 leaq $2(%r9), %rcx - 0x49, 0x29, 0xcd, //0x00002654 subq %rcx, %r13 - 0x0f, 0x88, 0x6d, 0x04, 0x00, 0x00, //0x00002657 js LBB9_25 - 0x4d, 0x01, 0xcf, //0x0000265d addq %r9, %r15 - 0x49, 0x83, 0xc7, 0x02, //0x00002660 addq $2, %r15 - 0x4d, 0x85, 0xd2, //0x00002664 testq %r10, %r10 - 0x0f, 0x85, 0x03, 0x01, 0x00, 0x00, //0x00002667 jne LBB9_27 - //0x0000266d LBB9_38 - 0x4d, 0x01, 0xcc, //0x0000266d addq %r9, %r12 - 0x41, 0x0f, 0xb6, 0x47, 0xff, //0x00002670 movzbl $-1(%r15), %eax - 0x42, 0x8a, 0x04, 0x00, //0x00002675 movb (%rax,%r8), %al - 0x3c, 0xff, //0x00002679 cmpb $-1, %al - 0x0f, 0x84, 0x1f, 0x00, 0x00, 0x00, //0x0000267b je LBB9_42 - 0x84, 0xc0, //0x00002681 testb %al, %al - 0x0f, 0x84, 0x5c, 0x04, 0x00, 0x00, //0x00002683 je LBB9_40 - 0x41, 0x88, 0x04, 0x24, //0x00002689 movb %al, (%r12) - 0x49, 0x83, 0xc4, 0x01, //0x0000268d addq $1, %r12 - 0x4d, 0x85, 0xed, //0x00002691 testq %r13, %r13 - 0x0f, 0x85, 0x46, 0xfe, 0xff, 0xff, //0x00002694 jne LBB9_4 - 0xe9, 0x3e, 0x04, 0x00, 0x00, //0x0000269a jmp LBB9_126 - 0x90, //0x0000269f .p2align 4, 0x90 - //0x000026a0 LBB9_42 - 0x49, 0x83, 0xfd, 0x03, //0x000026a0 cmpq $3, %r13 - 0x0f, 0x8e, 0x20, 0x04, 0x00, 0x00, //0x000026a4 jle LBB9_25 - 0x41, 0x8b, 0x1f, //0x000026aa movl (%r15), %ebx - 0x89, 0xd9, //0x000026ad movl %ebx, %ecx - 0xf7, 0xd1, //0x000026af notl %ecx - 0x8d, 0x83, 0xd0, 0xcf, 0xcf, 0xcf, //0x000026b1 leal $-808464432(%rbx), %eax - 0x81, 0xe1, 0x80, 0x80, 0x80, 0x80, //0x000026b7 andl $-2139062144, %ecx - 0x85, 0xc1, //0x000026bd testl %eax, %ecx - 0x0f, 0x85, 0xe9, 0x02, 0x00, 0x00, //0x000026bf jne LBB9_47 - 0x8d, 0x83, 0x19, 0x19, 0x19, 0x19, //0x000026c5 leal $421075225(%rbx), %eax - 0x09, 0xd8, //0x000026cb orl %ebx, %eax - 0xa9, 0x80, 0x80, 0x80, 0x80, //0x000026cd testl $-2139062144, %eax - 0x0f, 0x85, 0xd6, 0x02, 0x00, 0x00, //0x000026d2 jne LBB9_47 - 0x89, 0xd8, //0x000026d8 movl %ebx, %eax - 0x25, 0x7f, 0x7f, 0x7f, 0x7f, //0x000026da andl $2139062143, %eax - 0x41, 0xbb, 0xc0, 0xc0, 0xc0, 0xc0, //0x000026df movl $-1061109568, %r11d - 0x41, 0x29, 0xc3, //0x000026e5 subl %eax, %r11d - 0x44, 0x8d, 0x88, 0x46, 0x46, 0x46, 0x46, //0x000026e8 leal $1179010630(%rax), %r9d - 0x41, 0x21, 0xcb, //0x000026ef andl %ecx, %r11d - 0x45, 0x85, 0xcb, //0x000026f2 testl %r9d, %r11d - 0x0f, 0x85, 0xb3, 0x02, 0x00, 0x00, //0x000026f5 jne LBB9_47 - 0x41, 0xb9, 0xe0, 0xe0, 0xe0, 0xe0, //0x000026fb movl $-522133280, %r9d - 0x41, 0x29, 0xc1, //0x00002701 subl %eax, %r9d - 0x05, 0x39, 0x39, 0x39, 0x39, //0x00002704 addl $960051513, %eax - 0x44, 0x21, 0xc9, //0x00002709 andl %r9d, %ecx - 0x85, 0xc1, //0x0000270c testl %eax, %ecx - 0x0f, 0x85, 0x9a, 0x02, 0x00, 0x00, //0x0000270e jne LBB9_47 - 0x0f, 0xcb, //0x00002714 bswapl %ebx - 0x89, 0xd9, //0x00002716 movl %ebx, %ecx - 0xc1, 0xe9, 0x04, //0x00002718 shrl $4, %ecx - 0xf7, 0xd1, //0x0000271b notl %ecx - 0x81, 0xe1, 0x01, 0x01, 0x01, 0x01, //0x0000271d andl $16843009, %ecx - 0x8d, 0x0c, 0xc9, //0x00002723 leal (%rcx,%rcx,8), %ecx - 0x81, 0xe3, 0x0f, 0x0f, 0x0f, 0x0f, //0x00002726 andl $252645135, %ebx - 0x01, 0xcb, //0x0000272c addl %ecx, %ebx - 0x89, 0xd9, //0x0000272e movl %ebx, %ecx - 0xc1, 0xe9, 0x04, //0x00002730 shrl $4, %ecx - 0x09, 0xd9, //0x00002733 orl %ebx, %ecx - 0x89, 0xc8, //0x00002735 movl %ecx, %eax - 0xc1, 0xe8, 0x08, //0x00002737 shrl $8, %eax - 0x25, 0x00, 0xff, 0x00, 0x00, //0x0000273a andl $65280, %eax - 0x0f, 0xb6, 0xd9, //0x0000273f movzbl %cl, %ebx - 0x09, 0xc3, //0x00002742 orl %eax, %ebx - 0x4d, 0x8d, 0x4f, 0x04, //0x00002744 leaq $4(%r15), %r9 - 0x49, 0x8d, 0x45, 0xfc, //0x00002748 leaq $-4(%r13), %rax - 0x81, 0xfb, 0x80, 0x00, 0x00, 0x00, //0x0000274c cmpl $128, %ebx - 0x0f, 0x82, 0x6b, 0x00, 0x00, 0x00, //0x00002752 jb LBB9_62 - 0xf6, 0x45, 0xa8, 0x02, //0x00002758 testb $2, $-88(%rbp) - 0x0f, 0x84, 0x7d, 0x00, 0x00, 0x00, //0x0000275c je LBB9_71 - 0x4d, 0x89, 0xcf, //0x00002762 movq %r9, %r15 - 0x41, 0x89, 0xde, //0x00002765 movl %ebx, %r14d - 0x49, 0x89, 0xc5, //0x00002768 movq %rax, %r13 - 0xe9, 0x60, 0xfb, 0xff, 0xff, //0x0000276b jmp LBB9_65 - //0x00002770 LBB9_27 - 0x45, 0x85, 0xed, //0x00002770 testl %r13d, %r13d - 0x0f, 0x84, 0x51, 0x03, 0x00, 0x00, //0x00002773 je LBB9_25 - 0x41, 0x80, 0x7f, 0xff, 0x5c, //0x00002779 cmpb $92, $-1(%r15) - 0x0f, 0x85, 0x7a, 0x03, 0x00, 0x00, //0x0000277e jne LBB9_29 - 0x41, 0x80, 0x3f, 0x5c, //0x00002784 cmpb $92, (%r15) - 0x0f, 0x85, 0x28, 0x00, 0x00, 0x00, //0x00002788 jne LBB9_37 - 0x41, 0x83, 0xfd, 0x01, //0x0000278e cmpl $1, %r13d - 0x0f, 0x8e, 0x32, 0x03, 0x00, 0x00, //0x00002792 jle LBB9_25 - 0x41, 0x8a, 0x4f, 0x01, //0x00002798 movb $1(%r15), %cl - 0x80, 0xf9, 0x22, //0x0000279c cmpb $34, %cl - 0x0f, 0x84, 0x09, 0x00, 0x00, 0x00, //0x0000279f je LBB9_36 - 0x80, 0xf9, 0x5c, //0x000027a5 cmpb $92, %cl - 0x0f, 0x85, 0x69, 0x03, 0x00, 0x00, //0x000027a8 jne LBB9_35 - //0x000027ae LBB9_36 - 0x49, 0x83, 0xc7, 0x01, //0x000027ae addq $1, %r15 - 0x49, 0x83, 0xc5, 0xff, //0x000027b2 addq $-1, %r13 - //0x000027b6 LBB9_37 - 0x49, 0x83, 0xc7, 0x01, //0x000027b6 addq $1, %r15 - 0x49, 0x83, 0xc5, 0xff, //0x000027ba addq $-1, %r13 - 0xe9, 0xaa, 0xfe, 0xff, 0xff, //0x000027be jmp LBB9_38 - //0x000027c3 LBB9_62 - 0x49, 0x89, 0xc5, //0x000027c3 movq %rax, %r13 - 0x4d, 0x89, 0xcf, //0x000027c6 movq %r9, %r15 - //0x000027c9 LBB9_119 - 0x41, 0x88, 0x1c, 0x24, //0x000027c9 movb %bl, (%r12) - 0x49, 0x83, 0xc4, 0x01, //0x000027cd addq $1, %r12 - 0x4d, 0x85, 0xed, //0x000027d1 testq %r13, %r13 - 0x0f, 0x85, 0x06, 0xfd, 0xff, 0xff, //0x000027d4 jne LBB9_4 - 0xe9, 0xfe, 0x02, 0x00, 0x00, //0x000027da jmp LBB9_126 - //0x000027df LBB9_71 - 0x81, 0xfb, 0x00, 0x08, 0x00, 0x00, //0x000027df cmpl $2048, %ebx - 0x0f, 0x82, 0x5f, 0x00, 0x00, 0x00, //0x000027e5 jb LBB9_72 - 0x81, 0xe1, 0x00, 0x00, 0xf8, 0x00, //0x000027eb andl $16252928, %ecx - 0x81, 0xf9, 0x00, 0x00, 0xd8, 0x00, //0x000027f1 cmpl $14155776, %ecx - 0x0f, 0x84, 0x81, 0x00, 0x00, 0x00, //0x000027f7 je LBB9_77 - 0x49, 0x89, 0xc5, //0x000027fd movq %rax, %r13 - 0x41, 0x89, 0xde, //0x00002800 movl %ebx, %r14d - 0x4d, 0x89, 0xcf, //0x00002803 movq %r9, %r15 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002806 .p2align 4, 0x90 - //0x00002810 LBB9_76 - 0x44, 0x89, 0xf0, //0x00002810 movl %r14d, %eax - 0xc1, 0xe8, 0x0c, //0x00002813 shrl $12, %eax - 0x0c, 0xe0, //0x00002816 orb $-32, %al - 0x41, 0x88, 0x04, 0x24, //0x00002818 movb %al, (%r12) - 0x44, 0x89, 0xf0, //0x0000281c movl %r14d, %eax - 0xc1, 0xe8, 0x06, //0x0000281f shrl $6, %eax - 0x24, 0x3f, //0x00002822 andb $63, %al - 0x0c, 0x80, //0x00002824 orb $-128, %al - 0x41, 0x88, 0x44, 0x24, 0x01, //0x00002826 movb %al, $1(%r12) - 0x41, 0x80, 0xe6, 0x3f, //0x0000282b andb $63, %r14b - 0x41, 0x80, 0xce, 0x80, //0x0000282f orb $-128, %r14b - 0x45, 0x88, 0x74, 0x24, 0x02, //0x00002833 movb %r14b, $2(%r12) - 0x49, 0x83, 0xc4, 0x03, //0x00002838 addq $3, %r12 - 0x4d, 0x85, 0xed, //0x0000283c testq %r13, %r13 - 0x0f, 0x85, 0x9b, 0xfc, 0xff, 0xff, //0x0000283f jne LBB9_4 - 0xe9, 0x93, 0x02, 0x00, 0x00, //0x00002845 jmp LBB9_126 - //0x0000284a LBB9_72 - 0x49, 0x89, 0xc5, //0x0000284a movq %rax, %r13 - 0x41, 0x89, 0xde, //0x0000284d movl %ebx, %r14d - 0x4d, 0x89, 0xcf, //0x00002850 movq %r9, %r15 - //0x00002853 LBB9_73 - 0x44, 0x89, 0xf0, //0x00002853 movl %r14d, %eax - 0xc1, 0xe8, 0x06, //0x00002856 shrl $6, %eax - 0x0c, 0xc0, //0x00002859 orb $-64, %al - 0x41, 0x88, 0x04, 0x24, //0x0000285b movb %al, (%r12) - 0x41, 0x80, 0xe6, 0x3f, //0x0000285f andb $63, %r14b - 0x41, 0x80, 0xce, 0x80, //0x00002863 orb $-128, %r14b - 0x45, 0x88, 0x74, 0x24, 0x01, //0x00002867 movb %r14b, $1(%r12) - 0x49, 0x83, 0xc4, 0x02, //0x0000286c addq $2, %r12 - 0x4d, 0x85, 0xed, //0x00002870 testq %r13, %r13 - 0x0f, 0x85, 0x67, 0xfc, 0xff, 0xff, //0x00002873 jne LBB9_4 - 0xe9, 0x5f, 0x02, 0x00, 0x00, //0x00002879 jmp LBB9_126 - //0x0000287e LBB9_77 - 0x48, 0x89, 0x45, 0xa0, //0x0000287e movq %rax, $-96(%rbp) - 0x4d, 0x89, 0xce, //0x00002882 movq %r9, %r14 - 0x48, 0x89, 0x75, 0xc0, //0x00002885 movq %rsi, $-64(%rbp) - 0x48, 0x89, 0x55, 0xb0, //0x00002889 movq %rdx, $-80(%rbp) - 0x48, 0x89, 0x7d, 0xc8, //0x0000288d movq %rdi, $-56(%rbp) - 0x4c, 0x89, 0x55, 0xb8, //0x00002891 movq %r10, $-72(%rbp) - 0x4d, 0x85, 0xd2, //0x00002895 testq %r10, %r10 - 0x0f, 0x85, 0x9c, 0x00, 0x00, 0x00, //0x00002898 jne LBB9_78 - 0x48, 0x83, 0x7d, 0xa0, 0x06, //0x0000289e cmpq $6, $-96(%rbp) - 0x0f, 0x8c, 0xbf, 0x00, 0x00, 0x00, //0x000028a3 jl LBB9_82 - //0x000028a9 LBB9_84 - 0x81, 0xfb, 0xff, 0xdb, 0x00, 0x00, //0x000028a9 cmpl $56319, %ebx - 0x0f, 0x87, 0xb3, 0x00, 0x00, 0x00, //0x000028af ja LBB9_82 - 0x41, 0x80, 0x3e, 0x5c, //0x000028b5 cmpb $92, (%r14) - 0x0f, 0x85, 0xa9, 0x00, 0x00, 0x00, //0x000028b9 jne LBB9_82 - 0x41, 0x80, 0x7e, 0x01, 0x75, //0x000028bf cmpb $117, $1(%r14) - 0x0f, 0x85, 0x9e, 0x00, 0x00, 0x00, //0x000028c4 jne LBB9_82 - 0x49, 0x8d, 0x7e, 0x02, //0x000028ca leaq $2(%r14), %rdi - 0xc5, 0xf8, 0x77, //0x000028ce vzeroupper - 0xe8, 0x9a, 0x03, 0x00, 0x00, //0x000028d1 callq _unhex16_is - 0x84, 0xc0, //0x000028d6 testb %al, %al - 0x0f, 0x84, 0x68, 0x02, 0x00, 0x00, //0x000028d8 je LBB9_88 - 0x4d, 0x89, 0xf7, //0x000028de movq %r14, %r15 - 0x41, 0x8b, 0x4e, 0x02, //0x000028e1 movl $2(%r14), %ecx - 0x0f, 0xc9, //0x000028e5 bswapl %ecx - 0x89, 0xc8, //0x000028e7 movl %ecx, %eax - 0xc1, 0xe8, 0x04, //0x000028e9 shrl $4, %eax - 0xf7, 0xd0, //0x000028ec notl %eax - 0x25, 0x01, 0x01, 0x01, 0x01, //0x000028ee andl $16843009, %eax - 0x8d, 0x04, 0xc0, //0x000028f3 leal (%rax,%rax,8), %eax - 0x81, 0xe1, 0x0f, 0x0f, 0x0f, 0x0f, //0x000028f6 andl $252645135, %ecx - 0x01, 0xc1, //0x000028fc addl %eax, %ecx - 0x89, 0xc8, //0x000028fe movl %ecx, %eax - 0xc1, 0xe8, 0x04, //0x00002900 shrl $4, %eax - 0x09, 0xc8, //0x00002903 orl %ecx, %eax - 0x49, 0x83, 0xc7, 0x06, //0x00002905 addq $6, %r15 - 0x89, 0xc1, //0x00002909 movl %eax, %ecx - 0x81, 0xe1, 0x00, 0x00, 0xfc, 0x00, //0x0000290b andl $16515072, %ecx - 0x81, 0xf9, 0x00, 0x00, 0xdc, 0x00, //0x00002911 cmpl $14417920, %ecx - 0x0f, 0x85, 0x16, 0x03, 0x00, 0x00, //0x00002917 jne LBB9_120 - 0x89, 0xc1, //0x0000291d movl %eax, %ecx - 0xc1, 0xe9, 0x08, //0x0000291f shrl $8, %ecx - 0x81, 0xe1, 0x00, 0xff, 0x00, 0x00, //0x00002922 andl $65280, %ecx - 0x0f, 0xb6, 0xc0, //0x00002928 movzbl %al, %eax - 0x09, 0xc8, //0x0000292b orl %ecx, %eax - 0x4c, 0x8b, 0x6d, 0xa0, //0x0000292d movq $-96(%rbp), %r13 - 0x49, 0x83, 0xc5, 0xfa, //0x00002931 addq $-6, %r13 - 0xe9, 0xfa, 0xfa, 0xff, 0xff, //0x00002935 jmp LBB9_91 - //0x0000293a LBB9_78 - 0x49, 0x83, 0xfd, 0x05, //0x0000293a cmpq $5, %r13 - 0x0f, 0x8c, 0xf8, 0x02, 0x00, 0x00, //0x0000293e jl LBB9_93 - 0x41, 0x80, 0x3e, 0x5c, //0x00002944 cmpb $92, (%r14) - 0x0f, 0x85, 0x08, 0x03, 0x00, 0x00, //0x00002948 jne LBB9_104 - 0x49, 0x83, 0xc5, 0xfb, //0x0000294e addq $-5, %r13 - 0x49, 0x83, 0xc7, 0x05, //0x00002952 addq $5, %r15 - 0x4c, 0x89, 0x6d, 0xa0, //0x00002956 movq %r13, $-96(%rbp) - 0x4d, 0x89, 0xfe, //0x0000295a movq %r15, %r14 - 0x48, 0x83, 0x7d, 0xa0, 0x06, //0x0000295d cmpq $6, $-96(%rbp) - 0x0f, 0x8d, 0x41, 0xff, 0xff, 0xff, //0x00002962 jge LBB9_84 - //0x00002968 LBB9_82 - 0x4d, 0x89, 0xf7, //0x00002968 movq %r14, %r15 - //0x0000296b LBB9_83 - 0x48, 0x8b, 0x45, 0xb8, //0x0000296b movq $-72(%rbp), %rax - 0x48, 0x03, 0x45, 0xc8, //0x0000296f addq $-56(%rbp), %rax - 0x49, 0x29, 0xc7, //0x00002973 subq %rax, %r15 - //0x00002976 LBB9_121 - 0x49, 0x83, 0xc7, 0xfc, //0x00002976 addq $-4, %r15 - 0x48, 0x8b, 0x45, 0xd0, //0x0000297a movq $-48(%rbp), %rax - 0x4c, 0x89, 0x38, //0x0000297e movq %r15, (%rax) - //0x00002981 LBB9_122 - 0x49, 0xc7, 0xc4, 0xfc, 0xff, 0xff, 0xff, //0x00002981 movq $-4, %r12 - 0xe9, 0x0c, 0x00, 0x00, 0x00, //0x00002988 jmp LBB9_123 - //0x0000298d LBB9_1 - 0x45, 0x31, 0xed, //0x0000298d xorl %r13d, %r13d - 0x49, 0x89, 0xd4, //0x00002990 movq %rdx, %r12 - //0x00002993 LBB9_2 - 0x4d, 0x01, 0xec, //0x00002993 addq %r13, %r12 - 0x49, 0x29, 0xd4, //0x00002996 subq %rdx, %r12 - //0x00002999 LBB9_123 - 0x4c, 0x89, 0xe0, //0x00002999 movq %r12, %rax - 0x48, 0x83, 0xc4, 0x38, //0x0000299c addq $56, %rsp - 0x5b, //0x000029a0 popq %rbx - 0x41, 0x5c, //0x000029a1 popq %r12 - 0x41, 0x5d, //0x000029a3 popq %r13 - 0x41, 0x5e, //0x000029a5 popq %r14 - 0x41, 0x5f, //0x000029a7 popq %r15 - 0x5d, //0x000029a9 popq %rbp - 0xc5, 0xf8, 0x77, //0x000029aa vzeroupper - 0xc3, //0x000029ad retq - //0x000029ae LBB9_47 - 0x4c, 0x89, 0xf8, //0x000029ae movq %r15, %rax - 0x48, 0x29, 0xf8, //0x000029b1 subq %rdi, %rax - 0x48, 0x8b, 0x75, 0xd0, //0x000029b4 movq $-48(%rbp), %rsi - 0x48, 0x89, 0x06, //0x000029b8 movq %rax, (%rsi) - 0x41, 0x8a, 0x0f, //0x000029bb movb (%r15), %cl - 0x8d, 0x51, 0xd0, //0x000029be leal $-48(%rcx), %edx - 0x80, 0xfa, 0x0a, //0x000029c1 cmpb $10, %dl - 0x0f, 0x82, 0x2a, 0x00, 0x00, 0x00, //0x000029c4 jb LBB9_50 - 0x49, 0xc7, 0xc4, 0xfe, 0xff, 0xff, 0xff, //0x000029ca movq $-2, %r12 - 0x80, 0xc1, 0xbf, //0x000029d1 addb $-65, %cl - 0x80, 0xf9, 0x25, //0x000029d4 cmpb $37, %cl - 0x0f, 0x87, 0xbc, 0xff, 0xff, 0xff, //0x000029d7 ja LBB9_123 - 0x0f, 0xb6, 0xc9, //0x000029dd movzbl %cl, %ecx - 0x48, 0xba, 0x3f, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, //0x000029e0 movabsq $270582939711, %rdx - 0x48, 0x0f, 0xa3, 0xca, //0x000029ea btq %rcx, %rdx - 0x0f, 0x83, 0xa5, 0xff, 0xff, 0xff, //0x000029ee jae LBB9_123 - //0x000029f4 LBB9_50 - 0x48, 0x8d, 0x48, 0x01, //0x000029f4 leaq $1(%rax), %rcx - 0x48, 0x89, 0x0e, //0x000029f8 movq %rcx, (%rsi) - 0x41, 0x8a, 0x4f, 0x01, //0x000029fb movb $1(%r15), %cl - 0x8d, 0x51, 0xd0, //0x000029ff leal $-48(%rcx), %edx - 0x80, 0xfa, 0x09, //0x00002a02 cmpb $9, %dl - 0x0f, 0x86, 0x2a, 0x00, 0x00, 0x00, //0x00002a05 jbe LBB9_53 - 0x49, 0xc7, 0xc4, 0xfe, 0xff, 0xff, 0xff, //0x00002a0b movq $-2, %r12 - 0x80, 0xc1, 0xbf, //0x00002a12 addb $-65, %cl - 0x80, 0xf9, 0x25, //0x00002a15 cmpb $37, %cl - 0x0f, 0x87, 0x7b, 0xff, 0xff, 0xff, //0x00002a18 ja LBB9_123 - 0x0f, 0xb6, 0xc9, //0x00002a1e movzbl %cl, %ecx - 0x48, 0xba, 0x3f, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, //0x00002a21 movabsq $270582939711, %rdx - 0x48, 0x0f, 0xa3, 0xca, //0x00002a2b btq %rcx, %rdx - 0x0f, 0x83, 0x64, 0xff, 0xff, 0xff, //0x00002a2f jae LBB9_123 - //0x00002a35 LBB9_53 - 0x48, 0x8d, 0x48, 0x02, //0x00002a35 leaq $2(%rax), %rcx - 0x48, 0x89, 0x0e, //0x00002a39 movq %rcx, (%rsi) - 0x41, 0x8a, 0x4f, 0x02, //0x00002a3c movb $2(%r15), %cl - 0x8d, 0x51, 0xd0, //0x00002a40 leal $-48(%rcx), %edx - 0x80, 0xfa, 0x0a, //0x00002a43 cmpb $10, %dl - 0x0f, 0x82, 0x2a, 0x00, 0x00, 0x00, //0x00002a46 jb LBB9_56 - 0x49, 0xc7, 0xc4, 0xfe, 0xff, 0xff, 0xff, //0x00002a4c movq $-2, %r12 - 0x80, 0xc1, 0xbf, //0x00002a53 addb $-65, %cl - 0x80, 0xf9, 0x25, //0x00002a56 cmpb $37, %cl - 0x0f, 0x87, 0x3a, 0xff, 0xff, 0xff, //0x00002a59 ja LBB9_123 - 0x0f, 0xb6, 0xc9, //0x00002a5f movzbl %cl, %ecx - 0x48, 0xba, 0x3f, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, //0x00002a62 movabsq $270582939711, %rdx - 0x48, 0x0f, 0xa3, 0xca, //0x00002a6c btq %rcx, %rdx - 0x0f, 0x83, 0x23, 0xff, 0xff, 0xff, //0x00002a70 jae LBB9_123 - //0x00002a76 LBB9_56 - 0x48, 0x8d, 0x48, 0x03, //0x00002a76 leaq $3(%rax), %rcx - 0x48, 0x89, 0x0e, //0x00002a7a movq %rcx, (%rsi) - 0x41, 0x8a, 0x4f, 0x03, //0x00002a7d movb $3(%r15), %cl - 0x8d, 0x51, 0xd0, //0x00002a81 leal $-48(%rcx), %edx - 0x80, 0xfa, 0x0a, //0x00002a84 cmpb $10, %dl - 0x0f, 0x82, 0x2a, 0x00, 0x00, 0x00, //0x00002a87 jb LBB9_60 - //0x00002a8d LBB9_58 - 0x49, 0xc7, 0xc4, 0xfe, 0xff, 0xff, 0xff, //0x00002a8d movq $-2, %r12 - 0x80, 0xc1, 0xbf, //0x00002a94 addb $-65, %cl - 0x80, 0xf9, 0x25, //0x00002a97 cmpb $37, %cl - 0x0f, 0x87, 0xf9, 0xfe, 0xff, 0xff, //0x00002a9a ja LBB9_123 - 0x0f, 0xb6, 0xc9, //0x00002aa0 movzbl %cl, %ecx - 0x48, 0xba, 0x3f, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, //0x00002aa3 movabsq $270582939711, %rdx - 0x48, 0x0f, 0xa3, 0xca, //0x00002aad btq %rcx, %rdx - 0x0f, 0x83, 0xe2, 0xfe, 0xff, 0xff, //0x00002ab1 jae LBB9_123 - //0x00002ab7 LBB9_60 - 0x48, 0x83, 0xc0, 0x04, //0x00002ab7 addq $4, %rax - 0x48, 0x89, 0x06, //0x00002abb movq %rax, (%rsi) - 0x49, 0xc7, 0xc4, 0xfe, 0xff, 0xff, 0xff, //0x00002abe movq $-2, %r12 - 0xe9, 0xcf, 0xfe, 0xff, 0xff, //0x00002ac5 jmp LBB9_123 - //0x00002aca LBB9_25 - 0x48, 0x8b, 0x45, 0xd0, //0x00002aca movq $-48(%rbp), %rax - 0x48, 0x89, 0x30, //0x00002ace movq %rsi, (%rax) - 0x49, 0xc7, 0xc4, 0xff, 0xff, 0xff, 0xff, //0x00002ad1 movq $-1, %r12 - 0xe9, 0xbc, 0xfe, 0xff, 0xff, //0x00002ad8 jmp LBB9_123 - //0x00002add LBB9_126 - 0x45, 0x31, 0xed, //0x00002add xorl %r13d, %r13d - 0xe9, 0xae, 0xfe, 0xff, 0xff, //0x00002ae0 jmp LBB9_2 - //0x00002ae5 LBB9_40 - 0x48, 0xf7, 0xd7, //0x00002ae5 notq %rdi - 0x49, 0x01, 0xff, //0x00002ae8 addq %rdi, %r15 - 0x48, 0x8b, 0x45, 0xd0, //0x00002aeb movq $-48(%rbp), %rax - 0x4c, 0x89, 0x38, //0x00002aef movq %r15, (%rax) - 0x49, 0xc7, 0xc4, 0xfd, 0xff, 0xff, 0xff, //0x00002af2 movq $-3, %r12 - 0xe9, 0x9b, 0xfe, 0xff, 0xff, //0x00002af9 jmp LBB9_123 - //0x00002afe LBB9_29 - 0x48, 0xf7, 0xd7, //0x00002afe notq %rdi - 0x49, 0x01, 0xff, //0x00002b01 addq %rdi, %r15 - //0x00002b04 LBB9_30 - 0x48, 0x8b, 0x45, 0xd0, //0x00002b04 movq $-48(%rbp), %rax - 0x4c, 0x89, 0x38, //0x00002b08 movq %r15, (%rax) - 0x49, 0xc7, 0xc4, 0xfe, 0xff, 0xff, 0xff, //0x00002b0b movq $-2, %r12 - 0xe9, 0x82, 0xfe, 0xff, 0xff, //0x00002b12 jmp LBB9_123 - //0x00002b17 LBB9_35 - 0x49, 0x29, 0xff, //0x00002b17 subq %rdi, %r15 - 0x49, 0x83, 0xc7, 0x01, //0x00002b1a addq $1, %r15 - 0xe9, 0xe1, 0xff, 0xff, 0xff, //0x00002b1e jmp LBB9_30 - //0x00002b23 LBB9_69 - 0xf6, 0x45, 0xa8, 0x02, //0x00002b23 testb $2, $-88(%rbp) - 0x0f, 0x84, 0x0f, 0x01, 0x00, 0x00, //0x00002b27 je LBB9_93 - 0x66, 0x41, 0xc7, 0x04, 0x24, 0xef, 0xbf, //0x00002b2d movw $-16401, (%r12) - 0x41, 0xc6, 0x44, 0x24, 0x02, 0xbd, //0x00002b34 movb $-67, $2(%r12) - 0x49, 0x83, 0xc4, 0x03, //0x00002b3a addq $3, %r12 - 0x45, 0x31, 0xed, //0x00002b3e xorl %r13d, %r13d - 0xe9, 0x4d, 0xfe, 0xff, 0xff, //0x00002b41 jmp LBB9_2 - //0x00002b46 LBB9_88 - 0x4d, 0x89, 0xf7, //0x00002b46 movq %r14, %r15 - //0x00002b49 LBB9_106 - 0x4c, 0x89, 0xf8, //0x00002b49 movq %r15, %rax - 0x48, 0x2b, 0x45, 0xc8, //0x00002b4c subq $-56(%rbp), %rax - 0x48, 0x83, 0xc0, 0x02, //0x00002b50 addq $2, %rax - 0x48, 0x8b, 0x75, 0xd0, //0x00002b54 movq $-48(%rbp), %rsi - 0x48, 0x89, 0x06, //0x00002b58 movq %rax, (%rsi) - 0x41, 0x8a, 0x4f, 0x02, //0x00002b5b movb $2(%r15), %cl - 0x8d, 0x51, 0xd0, //0x00002b5f leal $-48(%rcx), %edx - 0x80, 0xfa, 0x0a, //0x00002b62 cmpb $10, %dl - 0x0f, 0x82, 0x2a, 0x00, 0x00, 0x00, //0x00002b65 jb LBB9_109 - 0x49, 0xc7, 0xc4, 0xfe, 0xff, 0xff, 0xff, //0x00002b6b movq $-2, %r12 - 0x80, 0xc1, 0xbf, //0x00002b72 addb $-65, %cl - 0x80, 0xf9, 0x25, //0x00002b75 cmpb $37, %cl - 0x0f, 0x87, 0x1b, 0xfe, 0xff, 0xff, //0x00002b78 ja LBB9_123 - 0x0f, 0xb6, 0xc9, //0x00002b7e movzbl %cl, %ecx - 0x48, 0xba, 0x3f, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, //0x00002b81 movabsq $270582939711, %rdx - 0x48, 0x0f, 0xa3, 0xca, //0x00002b8b btq %rcx, %rdx - 0x0f, 0x83, 0x04, 0xfe, 0xff, 0xff, //0x00002b8f jae LBB9_123 - //0x00002b95 LBB9_109 - 0x48, 0x8d, 0x48, 0x01, //0x00002b95 leaq $1(%rax), %rcx - 0x48, 0x89, 0x0e, //0x00002b99 movq %rcx, (%rsi) - 0x41, 0x8a, 0x4f, 0x03, //0x00002b9c movb $3(%r15), %cl - 0x8d, 0x51, 0xd0, //0x00002ba0 leal $-48(%rcx), %edx - 0x80, 0xfa, 0x09, //0x00002ba3 cmpb $9, %dl - 0x0f, 0x86, 0x2a, 0x00, 0x00, 0x00, //0x00002ba6 jbe LBB9_112 - 0x49, 0xc7, 0xc4, 0xfe, 0xff, 0xff, 0xff, //0x00002bac movq $-2, %r12 - 0x80, 0xc1, 0xbf, //0x00002bb3 addb $-65, %cl - 0x80, 0xf9, 0x25, //0x00002bb6 cmpb $37, %cl - 0x0f, 0x87, 0xda, 0xfd, 0xff, 0xff, //0x00002bb9 ja LBB9_123 - 0x0f, 0xb6, 0xc9, //0x00002bbf movzbl %cl, %ecx - 0x48, 0xba, 0x3f, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, //0x00002bc2 movabsq $270582939711, %rdx - 0x48, 0x0f, 0xa3, 0xca, //0x00002bcc btq %rcx, %rdx - 0x0f, 0x83, 0xc3, 0xfd, 0xff, 0xff, //0x00002bd0 jae LBB9_123 - //0x00002bd6 LBB9_112 - 0x48, 0x8d, 0x48, 0x02, //0x00002bd6 leaq $2(%rax), %rcx - 0x48, 0x89, 0x0e, //0x00002bda movq %rcx, (%rsi) - 0x41, 0x8a, 0x4f, 0x04, //0x00002bdd movb $4(%r15), %cl - 0x8d, 0x51, 0xd0, //0x00002be1 leal $-48(%rcx), %edx - 0x80, 0xfa, 0x0a, //0x00002be4 cmpb $10, %dl - 0x0f, 0x82, 0x2a, 0x00, 0x00, 0x00, //0x00002be7 jb LBB9_115 - 0x49, 0xc7, 0xc4, 0xfe, 0xff, 0xff, 0xff, //0x00002bed movq $-2, %r12 - 0x80, 0xc1, 0xbf, //0x00002bf4 addb $-65, %cl - 0x80, 0xf9, 0x25, //0x00002bf7 cmpb $37, %cl - 0x0f, 0x87, 0x99, 0xfd, 0xff, 0xff, //0x00002bfa ja LBB9_123 - 0x0f, 0xb6, 0xc9, //0x00002c00 movzbl %cl, %ecx - 0x48, 0xba, 0x3f, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, //0x00002c03 movabsq $270582939711, %rdx - 0x48, 0x0f, 0xa3, 0xca, //0x00002c0d btq %rcx, %rdx - 0x0f, 0x83, 0x82, 0xfd, 0xff, 0xff, //0x00002c11 jae LBB9_123 - //0x00002c17 LBB9_115 - 0x48, 0x8d, 0x48, 0x03, //0x00002c17 leaq $3(%rax), %rcx - 0x48, 0x89, 0x0e, //0x00002c1b movq %rcx, (%rsi) - 0x41, 0x8a, 0x4f, 0x05, //0x00002c1e movb $5(%r15), %cl - 0x8d, 0x51, 0xd0, //0x00002c22 leal $-48(%rcx), %edx - 0x80, 0xfa, 0x0a, //0x00002c25 cmpb $10, %dl - 0x0f, 0x83, 0x5f, 0xfe, 0xff, 0xff, //0x00002c28 jae LBB9_58 - 0xe9, 0x84, 0xfe, 0xff, 0xff, //0x00002c2e jmp LBB9_60 - //0x00002c33 LBB9_120 - 0x4c, 0x2b, 0x7d, 0xc8, //0x00002c33 subq $-56(%rbp), %r15 - 0xe9, 0x3a, 0xfd, 0xff, 0xff, //0x00002c37 jmp LBB9_121 - //0x00002c3c LBB9_93 - 0x48, 0x8b, 0x45, 0xd0, //0x00002c3c movq $-48(%rbp), %rax - 0x48, 0x8b, 0x4d, 0xc0, //0x00002c40 movq $-64(%rbp), %rcx - 0x48, 0x89, 0x08, //0x00002c44 movq %rcx, (%rax) - 0x49, 0xc7, 0xc4, 0xff, 0xff, 0xff, 0xff, //0x00002c47 movq $-1, %r12 - 0xe9, 0x46, 0xfd, 0xff, 0xff, //0x00002c4e jmp LBB9_123 - //0x00002c53 LBB9_103 - 0x4d, 0x89, 0xfe, //0x00002c53 movq %r15, %r14 - //0x00002c56 LBB9_104 - 0x4c, 0x2b, 0x75, 0xc8, //0x00002c56 subq $-56(%rbp), %r14 - 0x49, 0x83, 0xc6, 0xfc, //0x00002c5a addq $-4, %r14 - 0x48, 0x8b, 0x45, 0xd0, //0x00002c5e movq $-48(%rbp), %rax - 0x4c, 0x89, 0x30, //0x00002c62 movq %r14, (%rax) - 0xe9, 0x17, 0xfd, 0xff, 0xff, //0x00002c65 jmp LBB9_122 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002c6a .p2align 4, 0x90 - //0x00002c70 _unhex16_is - 0x55, //0x00002c70 pushq %rbp - 0x48, 0x89, 0xe5, //0x00002c71 movq %rsp, %rbp - 0x8b, 0x07, //0x00002c74 movl (%rdi), %eax - 0x89, 0xc1, //0x00002c76 movl %eax, %ecx - 0xf7, 0xd1, //0x00002c78 notl %ecx - 0x8d, 0x90, 0xd0, 0xcf, 0xcf, 0xcf, //0x00002c7a leal $-808464432(%rax), %edx - 0x81, 0xe1, 0x80, 0x80, 0x80, 0x80, //0x00002c80 andl $-2139062144, %ecx - 0x85, 0xd1, //0x00002c86 testl %edx, %ecx - 0x0f, 0x84, 0x07, 0x00, 0x00, 0x00, //0x00002c88 je LBB10_2 - 0x31, 0xc0, //0x00002c8e xorl %eax, %eax - 0x0f, 0xb6, 0xc0, //0x00002c90 movzbl %al, %eax - 0x5d, //0x00002c93 popq %rbp - 0xc3, //0x00002c94 retq - //0x00002c95 LBB10_2 - 0x8d, 0x90, 0x19, 0x19, 0x19, 0x19, //0x00002c95 leal $421075225(%rax), %edx - 0x09, 0xc2, //0x00002c9b orl %eax, %edx - 0xf7, 0xc2, 0x80, 0x80, 0x80, 0x80, //0x00002c9d testl $-2139062144, %edx - 0x0f, 0x84, 0x07, 0x00, 0x00, 0x00, //0x00002ca3 je LBB10_4 - 0x31, 0xc0, //0x00002ca9 xorl %eax, %eax - 0x0f, 0xb6, 0xc0, //0x00002cab movzbl %al, %eax - 0x5d, //0x00002cae popq %rbp - 0xc3, //0x00002caf retq - //0x00002cb0 LBB10_4 - 0x25, 0x7f, 0x7f, 0x7f, 0x7f, //0x00002cb0 andl $2139062143, %eax - 0xba, 0xc0, 0xc0, 0xc0, 0xc0, //0x00002cb5 movl $-1061109568, %edx - 0x29, 0xc2, //0x00002cba subl %eax, %edx - 0x8d, 0xb0, 0x46, 0x46, 0x46, 0x46, //0x00002cbc leal $1179010630(%rax), %esi - 0x21, 0xca, //0x00002cc2 andl %ecx, %edx - 0x85, 0xf2, //0x00002cc4 testl %esi, %edx - 0x0f, 0x84, 0x07, 0x00, 0x00, 0x00, //0x00002cc6 je LBB10_6 - 0x31, 0xc0, //0x00002ccc xorl %eax, %eax - 0x0f, 0xb6, 0xc0, //0x00002cce movzbl %al, %eax - 0x5d, //0x00002cd1 popq %rbp - 0xc3, //0x00002cd2 retq - //0x00002cd3 LBB10_6 - 0xba, 0xe0, 0xe0, 0xe0, 0xe0, //0x00002cd3 movl $-522133280, %edx - 0x29, 0xc2, //0x00002cd8 subl %eax, %edx - 0x05, 0x39, 0x39, 0x39, 0x39, //0x00002cda addl $960051513, %eax - 0x21, 0xd1, //0x00002cdf andl %edx, %ecx - 0x85, 0xc1, //0x00002ce1 testl %eax, %ecx - 0x0f, 0x94, 0xc0, //0x00002ce3 sete %al - 0x0f, 0xb6, 0xc0, //0x00002ce6 movzbl %al, %eax - 0x5d, //0x00002ce9 popq %rbp - 0xc3, //0x00002cea retq - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002ceb .p2align 5, 0x00 - //0x00002d00 LCPI11_0 - 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, //0x00002d00 QUAD $0x2626262626262626; QUAD $0x2626262626262626 // .space 16, '&&&&&&&&&&&&&&&&' - 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, //0x00002d10 QUAD $0x2626262626262626; QUAD $0x2626262626262626 // .space 16, '&&&&&&&&&&&&&&&&' - //0x00002d20 LCPI11_1 - 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, //0x00002d20 QUAD $0xe2e2e2e2e2e2e2e2; QUAD $0xe2e2e2e2e2e2e2e2 // .space 16, '\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2' - 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, //0x00002d30 QUAD $0xe2e2e2e2e2e2e2e2; QUAD $0xe2e2e2e2e2e2e2e2 // .space 16, '\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2' - //0x00002d40 LCPI11_2 - 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, //0x00002d40 QUAD $0xfdfdfdfdfdfdfdfd; QUAD $0xfdfdfdfdfdfdfdfd // .space 16, '\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd' - 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, //0x00002d50 QUAD $0xfdfdfdfdfdfdfdfd; QUAD $0xfdfdfdfdfdfdfdfd // .space 16, '\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd' - //0x00002d60 LCPI11_3 - 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, //0x00002d60 QUAD $0x3c3c3c3c3c3c3c3c; QUAD $0x3c3c3c3c3c3c3c3c // .space 16, '<<<<<<<<<<<<<<<<' - 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, //0x00002d70 QUAD $0x3c3c3c3c3c3c3c3c; QUAD $0x3c3c3c3c3c3c3c3c // .space 16, '<<<<<<<<<<<<<<<<' - //0x00002d80 .p2align 4, 0x00 - //0x00002d80 LCPI11_4 - 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, //0x00002d80 QUAD $0x2626262626262626; QUAD $0x2626262626262626 // .space 16, '&&&&&&&&&&&&&&&&' - //0x00002d90 LCPI11_5 - 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, //0x00002d90 QUAD $0xe2e2e2e2e2e2e2e2; QUAD $0xe2e2e2e2e2e2e2e2 // .space 16, '\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2' - //0x00002da0 LCPI11_6 - 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, //0x00002da0 QUAD $0xfdfdfdfdfdfdfdfd; QUAD $0xfdfdfdfdfdfdfdfd // .space 16, '\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd' - //0x00002db0 LCPI11_7 - 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, //0x00002db0 QUAD $0x3c3c3c3c3c3c3c3c; QUAD $0x3c3c3c3c3c3c3c3c // .space 16, '<<<<<<<<<<<<<<<<' - //0x00002dc0 .p2align 4, 0x90 - //0x00002dc0 _html_escape - 0x55, //0x00002dc0 pushq %rbp - 0x48, 0x89, 0xe5, //0x00002dc1 movq %rsp, %rbp - 0x41, 0x57, //0x00002dc4 pushq %r15 - 0x41, 0x56, //0x00002dc6 pushq %r14 - 0x41, 0x55, //0x00002dc8 pushq %r13 - 0x41, 0x54, //0x00002dca pushq %r12 - 0x53, //0x00002dcc pushq %rbx - 0x48, 0x83, 0xec, 0x18, //0x00002dcd subq $24, %rsp - 0x48, 0x89, 0x4d, 0xc0, //0x00002dd1 movq %rcx, $-64(%rbp) - 0x49, 0x89, 0xd7, //0x00002dd5 movq %rdx, %r15 - 0x48, 0x89, 0x55, 0xc8, //0x00002dd8 movq %rdx, $-56(%rbp) - 0x48, 0x89, 0x7d, 0xd0, //0x00002ddc movq %rdi, $-48(%rbp) - 0x48, 0x89, 0xf8, //0x00002de0 movq %rdi, %rax - 0x48, 0x85, 0xf6, //0x00002de3 testq %rsi, %rsi - 0x0f, 0x8e, 0x8c, 0x07, 0x00, 0x00, //0x00002de6 jle LBB11_106 - 0x48, 0x8b, 0x45, 0xc0, //0x00002dec movq $-64(%rbp), %rax - 0x4c, 0x8b, 0x08, //0x00002df0 movq (%rax), %r9 - 0xc5, 0xfd, 0x6f, 0x1d, 0x05, 0xff, 0xff, 0xff, //0x00002df3 vmovdqa $-251(%rip), %ymm3 /* LCPI11_0+0(%rip) */ - 0xc5, 0xfd, 0x6f, 0x25, 0x1d, 0xff, 0xff, 0xff, //0x00002dfb vmovdqa $-227(%rip), %ymm4 /* LCPI11_1+0(%rip) */ - 0xc5, 0xfd, 0x6f, 0x2d, 0x35, 0xff, 0xff, 0xff, //0x00002e03 vmovdqa $-203(%rip), %ymm5 /* LCPI11_2+0(%rip) */ - 0xc5, 0xfd, 0x6f, 0x35, 0x4d, 0xff, 0xff, 0xff, //0x00002e0b vmovdqa $-179(%rip), %ymm6 /* LCPI11_3+0(%rip) */ - 0x4c, 0x8d, 0x35, 0xb6, 0xed, 0x00, 0x00, //0x00002e13 leaq $60854(%rip), %r14 /* __HtmlQuoteTab+0(%rip) */ - 0x4c, 0x8b, 0x5d, 0xd0, //0x00002e1a movq $-48(%rbp), %r11 - 0x4c, 0x8b, 0x7d, 0xc8, //0x00002e1e movq $-56(%rbp), %r15 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002e22 .p2align 4, 0x90 - //0x00002e30 LBB11_2 - 0x4d, 0x85, 0xc9, //0x00002e30 testq %r9, %r9 - 0x0f, 0x8e, 0x5e, 0x07, 0x00, 0x00, //0x00002e33 jle LBB11_3 - 0x48, 0x83, 0xfe, 0x20, //0x00002e39 cmpq $32, %rsi - 0x0f, 0x9d, 0xc1, //0x00002e3d setge %cl - 0x4c, 0x89, 0xc8, //0x00002e40 movq %r9, %rax - 0x4d, 0x89, 0xf8, //0x00002e43 movq %r15, %r8 - 0x49, 0x89, 0xf2, //0x00002e46 movq %rsi, %r10 - 0x4d, 0x89, 0xdc, //0x00002e49 movq %r11, %r12 - 0x0f, 0x8c, 0x7e, 0x00, 0x00, 0x00, //0x00002e4c jl LBB11_12 - 0x49, 0x83, 0xf9, 0x20, //0x00002e52 cmpq $32, %r9 - 0x0f, 0x8c, 0x74, 0x00, 0x00, 0x00, //0x00002e56 jl LBB11_12 - 0x45, 0x31, 0xc0, //0x00002e5c xorl %r8d, %r8d - 0x48, 0x89, 0xf3, //0x00002e5f movq %rsi, %rbx - 0x4c, 0x89, 0xcf, //0x00002e62 movq %r9, %rdi - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002e65 .p2align 4, 0x90 - //0x00002e70 LBB11_7 - 0xc4, 0x81, 0x7e, 0x6f, 0x04, 0x03, //0x00002e70 vmovdqu (%r11,%r8), %ymm0 - 0xc5, 0xfd, 0x74, 0xcb, //0x00002e76 vpcmpeqb %ymm3, %ymm0, %ymm1 - 0xc5, 0xfd, 0x74, 0xd4, //0x00002e7a vpcmpeqb %ymm4, %ymm0, %ymm2 - 0xc5, 0xed, 0xeb, 0xc9, //0x00002e7e vpor %ymm1, %ymm2, %ymm1 - 0xc5, 0xfd, 0xdb, 0xd5, //0x00002e82 vpand %ymm5, %ymm0, %ymm2 - 0xc5, 0xed, 0x74, 0xd6, //0x00002e86 vpcmpeqb %ymm6, %ymm2, %ymm2 - 0xc5, 0xf5, 0xeb, 0xca, //0x00002e8a vpor %ymm2, %ymm1, %ymm1 - 0xc4, 0x81, 0x7e, 0x7f, 0x04, 0x07, //0x00002e8e vmovdqu %ymm0, (%r15,%r8) - 0xc5, 0xfd, 0xd7, 0xc1, //0x00002e94 vpmovmskb %ymm1, %eax - 0x85, 0xc0, //0x00002e98 testl %eax, %eax - 0x0f, 0x85, 0x90, 0x01, 0x00, 0x00, //0x00002e9a jne LBB11_8 - 0x4c, 0x8d, 0x53, 0xe0, //0x00002ea0 leaq $-32(%rbx), %r10 - 0x48, 0x8d, 0x47, 0xe0, //0x00002ea4 leaq $-32(%rdi), %rax - 0x49, 0x83, 0xc0, 0x20, //0x00002ea8 addq $32, %r8 - 0x48, 0x83, 0xfb, 0x40, //0x00002eac cmpq $64, %rbx - 0x0f, 0x9d, 0xc1, //0x00002eb0 setge %cl - 0x0f, 0x8c, 0x10, 0x00, 0x00, 0x00, //0x00002eb3 jl LBB11_11 - 0x4c, 0x89, 0xd3, //0x00002eb9 movq %r10, %rbx - 0x48, 0x83, 0xff, 0x3f, //0x00002ebc cmpq $63, %rdi - 0x48, 0x89, 0xc7, //0x00002ec0 movq %rax, %rdi - 0x0f, 0x8f, 0xa7, 0xff, 0xff, 0xff, //0x00002ec3 jg LBB11_7 - //0x00002ec9 LBB11_11 - 0x4f, 0x8d, 0x24, 0x03, //0x00002ec9 leaq (%r11,%r8), %r12 - 0x4d, 0x01, 0xf8, //0x00002ecd addq %r15, %r8 - //0x00002ed0 LBB11_12 - 0x84, 0xc9, //0x00002ed0 testb %cl, %cl - 0x0f, 0x84, 0x88, 0x00, 0x00, 0x00, //0x00002ed2 je LBB11_38 - 0xc4, 0xc1, 0x7e, 0x6f, 0x04, 0x24, //0x00002ed8 vmovdqu (%r12), %ymm0 - 0xc5, 0xfd, 0x74, 0xcb, //0x00002ede vpcmpeqb %ymm3, %ymm0, %ymm1 - 0xc5, 0xfd, 0x74, 0xd4, //0x00002ee2 vpcmpeqb %ymm4, %ymm0, %ymm2 - 0xc5, 0xed, 0xeb, 0xc9, //0x00002ee6 vpor %ymm1, %ymm2, %ymm1 - 0xc5, 0xfd, 0xdb, 0xc5, //0x00002eea vpand %ymm5, %ymm0, %ymm0 - 0xc5, 0xfd, 0x74, 0xc6, //0x00002eee vpcmpeqb %ymm6, %ymm0, %ymm0 - 0xc5, 0xf5, 0xeb, 0xc0, //0x00002ef2 vpor %ymm0, %ymm1, %ymm0 - 0xc5, 0xfd, 0xd7, 0xc8, //0x00002ef6 vpmovmskb %ymm0, %ecx - 0x48, 0xba, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00002efa movabsq $4294967296, %rdx - 0x48, 0x09, 0xd1, //0x00002f04 orq %rdx, %rcx - 0x4c, 0x0f, 0xbc, 0xe9, //0x00002f07 bsfq %rcx, %r13 - 0xc4, 0xc1, 0x7a, 0x6f, 0x04, 0x24, //0x00002f0b vmovdqu (%r12), %xmm0 - 0xc4, 0xe3, 0xf9, 0x16, 0xc1, 0x01, //0x00002f11 vpextrq $1, %xmm0, %rcx - 0xc4, 0xe1, 0xf9, 0x7e, 0xc7, //0x00002f17 vmovq %xmm0, %rdi - 0x49, 0x39, 0xc5, //0x00002f1c cmpq %rax, %r13 - 0x0f, 0x8e, 0x17, 0x01, 0x00, 0x00, //0x00002f1f jle LBB11_14 - 0x48, 0x83, 0xf8, 0x10, //0x00002f25 cmpq $16, %rax - 0x0f, 0x82, 0x4a, 0x01, 0x00, 0x00, //0x00002f29 jb LBB11_27 - 0x49, 0x89, 0x38, //0x00002f2f movq %rdi, (%r8) - 0x49, 0x89, 0x48, 0x08, //0x00002f32 movq %rcx, $8(%r8) - 0x4d, 0x8d, 0x54, 0x24, 0x10, //0x00002f36 leaq $16(%r12), %r10 - 0x49, 0x83, 0xc0, 0x10, //0x00002f3b addq $16, %r8 - 0x4c, 0x8d, 0x70, 0xf0, //0x00002f3f leaq $-16(%rax), %r14 - 0x49, 0x83, 0xfe, 0x08, //0x00002f43 cmpq $8, %r14 - 0x0f, 0x83, 0x3c, 0x01, 0x00, 0x00, //0x00002f47 jae LBB11_30 - 0xe9, 0x49, 0x01, 0x00, 0x00, //0x00002f4d jmp LBB11_31 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002f52 .p2align 4, 0x90 - //0x00002f60 LBB11_38 - 0xc5, 0xf8, 0x77, //0x00002f60 vzeroupper - 0x49, 0x83, 0xfa, 0x10, //0x00002f63 cmpq $16, %r10 - 0x0f, 0x9d, 0xc1, //0x00002f67 setge %cl - 0x0f, 0x8c, 0x5f, 0x01, 0x00, 0x00, //0x00002f6a jl LBB11_39 - 0x48, 0x83, 0xf8, 0x10, //0x00002f70 cmpq $16, %rax - 0xc5, 0xf9, 0x6f, 0x3d, 0x04, 0xfe, 0xff, 0xff, //0x00002f74 vmovdqa $-508(%rip), %xmm7 /* LCPI11_4+0(%rip) */ - 0xc5, 0x79, 0x6f, 0x05, 0x0c, 0xfe, 0xff, 0xff, //0x00002f7c vmovdqa $-500(%rip), %xmm8 /* LCPI11_5+0(%rip) */ - 0xc5, 0x79, 0x6f, 0x0d, 0x14, 0xfe, 0xff, 0xff, //0x00002f84 vmovdqa $-492(%rip), %xmm9 /* LCPI11_6+0(%rip) */ - 0xc5, 0x79, 0x6f, 0x15, 0x1c, 0xfe, 0xff, 0xff, //0x00002f8c vmovdqa $-484(%rip), %xmm10 /* LCPI11_7+0(%rip) */ - 0x0f, 0x8c, 0xeb, 0x01, 0x00, 0x00, //0x00002f94 jl LBB11_41 - 0x4c, 0x89, 0xdf, //0x00002f9a movq %r11, %rdi - 0x4c, 0x29, 0xe7, //0x00002f9d subq %r12, %rdi - 0xc5, 0xfd, 0x6f, 0x1d, 0x58, 0xfd, 0xff, 0xff, //0x00002fa0 vmovdqa $-680(%rip), %ymm3 /* LCPI11_0+0(%rip) */ - 0xc5, 0xfd, 0x6f, 0x25, 0x70, 0xfd, 0xff, 0xff, //0x00002fa8 vmovdqa $-656(%rip), %ymm4 /* LCPI11_1+0(%rip) */ - 0xc5, 0xfd, 0x6f, 0x2d, 0x88, 0xfd, 0xff, 0xff, //0x00002fb0 vmovdqa $-632(%rip), %ymm5 /* LCPI11_2+0(%rip) */ - 0xc5, 0xfd, 0x6f, 0x35, 0xa0, 0xfd, 0xff, 0xff, //0x00002fb8 vmovdqa $-608(%rip), %ymm6 /* LCPI11_3+0(%rip) */ - //0x00002fc0 .p2align 4, 0x90 - //0x00002fc0 LBB11_43 - 0xc4, 0xc1, 0x7a, 0x6f, 0x04, 0x24, //0x00002fc0 vmovdqu (%r12), %xmm0 - 0xc5, 0xf9, 0x74, 0xcf, //0x00002fc6 vpcmpeqb %xmm7, %xmm0, %xmm1 - 0xc5, 0xb9, 0x74, 0xd0, //0x00002fca vpcmpeqb %xmm0, %xmm8, %xmm2 - 0xc5, 0xe9, 0xeb, 0xc9, //0x00002fce vpor %xmm1, %xmm2, %xmm1 - 0xc5, 0xb1, 0xdb, 0xd0, //0x00002fd2 vpand %xmm0, %xmm9, %xmm2 - 0xc5, 0xa9, 0x74, 0xd2, //0x00002fd6 vpcmpeqb %xmm2, %xmm10, %xmm2 - 0xc5, 0xf1, 0xeb, 0xca, //0x00002fda vpor %xmm2, %xmm1, %xmm1 - 0xc4, 0xc1, 0x7a, 0x7f, 0x00, //0x00002fde vmovdqu %xmm0, (%r8) - 0xc5, 0xf9, 0xd7, 0xc9, //0x00002fe3 vpmovmskb %xmm1, %ecx - 0x85, 0xc9, //0x00002fe7 testl %ecx, %ecx - 0x0f, 0x85, 0x7a, 0x00, 0x00, 0x00, //0x00002fe9 jne LBB11_44 - 0x49, 0x83, 0xc4, 0x10, //0x00002fef addq $16, %r12 - 0x49, 0x83, 0xc0, 0x10, //0x00002ff3 addq $16, %r8 - 0x4d, 0x8d, 0x72, 0xf0, //0x00002ff7 leaq $-16(%r10), %r14 - 0x4c, 0x8d, 0x68, 0xf0, //0x00002ffb leaq $-16(%rax), %r13 - 0x49, 0x83, 0xfa, 0x20, //0x00002fff cmpq $32, %r10 - 0x0f, 0x9d, 0xc1, //0x00003003 setge %cl - 0x0f, 0x8c, 0x09, 0x01, 0x00, 0x00, //0x00003006 jl LBB11_47 - 0x48, 0x83, 0xc7, 0xf0, //0x0000300c addq $-16, %rdi - 0x4d, 0x89, 0xf2, //0x00003010 movq %r14, %r10 - 0x48, 0x83, 0xf8, 0x1f, //0x00003013 cmpq $31, %rax - 0x4c, 0x89, 0xe8, //0x00003017 movq %r13, %rax - 0x0f, 0x8f, 0xa0, 0xff, 0xff, 0xff, //0x0000301a jg LBB11_43 - 0xe9, 0xf0, 0x00, 0x00, 0x00, //0x00003020 jmp LBB11_47 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003025 .p2align 4, 0x90 - //0x00003030 LBB11_8 - 0x44, 0x0f, 0xbc, 0xe0, //0x00003030 bsfl %eax, %r12d - 0x4d, 0x01, 0xc4, //0x00003034 addq %r8, %r12 - 0xe9, 0xeb, 0x03, 0x00, 0x00, //0x00003037 jmp LBB11_83 - //0x0000303c LBB11_14 - 0x41, 0x83, 0xfd, 0x10, //0x0000303c cmpl $16, %r13d - 0x0f, 0x82, 0xfb, 0x01, 0x00, 0x00, //0x00003040 jb LBB11_15 - 0x49, 0x89, 0x38, //0x00003046 movq %rdi, (%r8) - 0x49, 0x89, 0x48, 0x08, //0x00003049 movq %rcx, $8(%r8) - 0x4d, 0x8d, 0x54, 0x24, 0x10, //0x0000304d leaq $16(%r12), %r10 - 0x49, 0x83, 0xc0, 0x10, //0x00003052 addq $16, %r8 - 0x49, 0x8d, 0x45, 0xf0, //0x00003056 leaq $-16(%r13), %rax - 0x48, 0x83, 0xf8, 0x08, //0x0000305a cmpq $8, %rax - 0x0f, 0x83, 0xed, 0x01, 0x00, 0x00, //0x0000305e jae LBB11_18 - 0xe9, 0xfa, 0x01, 0x00, 0x00, //0x00003064 jmp LBB11_19 - //0x00003069 LBB11_44 - 0x66, 0x0f, 0xbc, 0xc1, //0x00003069 bsfw %cx, %ax - 0x44, 0x0f, 0xb7, 0xe0, //0x0000306d movzwl %ax, %r12d - 0x49, 0x29, 0xfc, //0x00003071 subq %rdi, %r12 - 0xe9, 0xa7, 0x03, 0x00, 0x00, //0x00003074 jmp LBB11_82 - //0x00003079 LBB11_27 - 0x4d, 0x89, 0xe2, //0x00003079 movq %r12, %r10 - 0x49, 0x89, 0xc6, //0x0000307c movq %rax, %r14 - 0x49, 0x83, 0xfe, 0x08, //0x0000307f cmpq $8, %r14 - 0x0f, 0x82, 0x12, 0x00, 0x00, 0x00, //0x00003083 jb LBB11_31 - //0x00003089 LBB11_30 - 0x49, 0x8b, 0x0a, //0x00003089 movq (%r10), %rcx - 0x49, 0x89, 0x08, //0x0000308c movq %rcx, (%r8) - 0x49, 0x83, 0xc2, 0x08, //0x0000308f addq $8, %r10 - 0x49, 0x83, 0xc0, 0x08, //0x00003093 addq $8, %r8 - 0x49, 0x83, 0xc6, 0xf8, //0x00003097 addq $-8, %r14 - //0x0000309b LBB11_31 - 0x49, 0x83, 0xfe, 0x04, //0x0000309b cmpq $4, %r14 - 0x0f, 0x8d, 0xec, 0x01, 0x00, 0x00, //0x0000309f jge LBB11_32 - 0x49, 0x83, 0xfe, 0x02, //0x000030a5 cmpq $2, %r14 - 0x0f, 0x83, 0xfe, 0x01, 0x00, 0x00, //0x000030a9 jae LBB11_34 - //0x000030af LBB11_35 - 0x4d, 0x85, 0xf6, //0x000030af testq %r14, %r14 - 0x0f, 0x84, 0x06, 0x00, 0x00, 0x00, //0x000030b2 je LBB11_37 - //0x000030b8 LBB11_36 - 0x41, 0x8a, 0x0a, //0x000030b8 movb (%r10), %cl - 0x41, 0x88, 0x08, //0x000030bb movb %cl, (%r8) - //0x000030be LBB11_37 - 0x4c, 0x01, 0xe0, //0x000030be addq %r12, %rax - 0x48, 0xf7, 0xd0, //0x000030c1 notq %rax - 0x4c, 0x01, 0xd8, //0x000030c4 addq %r11, %rax - 0x49, 0x89, 0xc4, //0x000030c7 movq %rax, %r12 - 0xe9, 0x51, 0x03, 0x00, 0x00, //0x000030ca jmp LBB11_82 - //0x000030cf LBB11_39 - 0x49, 0x89, 0xc5, //0x000030cf movq %rax, %r13 - 0x4d, 0x89, 0xd6, //0x000030d2 movq %r10, %r14 - 0xc5, 0xfd, 0x6f, 0x1d, 0x23, 0xfc, 0xff, 0xff, //0x000030d5 vmovdqa $-989(%rip), %ymm3 /* LCPI11_0+0(%rip) */ - 0xc5, 0xfd, 0x6f, 0x25, 0x3b, 0xfc, 0xff, 0xff, //0x000030dd vmovdqa $-965(%rip), %ymm4 /* LCPI11_1+0(%rip) */ - 0xc5, 0xfd, 0x6f, 0x2d, 0x53, 0xfc, 0xff, 0xff, //0x000030e5 vmovdqa $-941(%rip), %ymm5 /* LCPI11_2+0(%rip) */ - 0xc5, 0xfd, 0x6f, 0x35, 0x6b, 0xfc, 0xff, 0xff, //0x000030ed vmovdqa $-917(%rip), %ymm6 /* LCPI11_3+0(%rip) */ - 0xc5, 0xf9, 0x6f, 0x3d, 0x83, 0xfc, 0xff, 0xff, //0x000030f5 vmovdqa $-893(%rip), %xmm7 /* LCPI11_4+0(%rip) */ - 0xc5, 0x79, 0x6f, 0x05, 0x8b, 0xfc, 0xff, 0xff, //0x000030fd vmovdqa $-885(%rip), %xmm8 /* LCPI11_5+0(%rip) */ - 0xc5, 0x79, 0x6f, 0x0d, 0x93, 0xfc, 0xff, 0xff, //0x00003105 vmovdqa $-877(%rip), %xmm9 /* LCPI11_6+0(%rip) */ - 0xc5, 0x79, 0x6f, 0x15, 0x9b, 0xfc, 0xff, 0xff, //0x0000310d vmovdqa $-869(%rip), %xmm10 /* LCPI11_7+0(%rip) */ - //0x00003115 LBB11_47 - 0x84, 0xc9, //0x00003115 testb %cl, %cl - 0x0f, 0x84, 0x96, 0x00, 0x00, 0x00, //0x00003117 je LBB11_48 - //0x0000311d LBB11_58 - 0xc4, 0xc1, 0x7a, 0x6f, 0x04, 0x24, //0x0000311d vmovdqu (%r12), %xmm0 - 0xc5, 0xf9, 0x74, 0xcf, //0x00003123 vpcmpeqb %xmm7, %xmm0, %xmm1 - 0xc5, 0xb9, 0x74, 0xd0, //0x00003127 vpcmpeqb %xmm0, %xmm8, %xmm2 - 0xc5, 0xe9, 0xeb, 0xc9, //0x0000312b vpor %xmm1, %xmm2, %xmm1 - 0xc5, 0xb1, 0xdb, 0xd0, //0x0000312f vpand %xmm0, %xmm9, %xmm2 - 0xc5, 0xa9, 0x74, 0xd2, //0x00003133 vpcmpeqb %xmm2, %xmm10, %xmm2 - 0xc5, 0xf1, 0xeb, 0xca, //0x00003137 vpor %xmm2, %xmm1, %xmm1 - 0xc5, 0xf9, 0xd7, 0xc1, //0x0000313b vpmovmskb %xmm1, %eax - 0x0d, 0x00, 0x00, 0x01, 0x00, //0x0000313f orl $65536, %eax - 0x0f, 0xbc, 0xc0, //0x00003144 bsfl %eax, %eax - 0xc4, 0xe1, 0xf9, 0x7e, 0xc1, //0x00003147 vmovq %xmm0, %rcx - 0x49, 0x39, 0xc5, //0x0000314c cmpq %rax, %r13 - 0x0f, 0x8d, 0xb8, 0x01, 0x00, 0x00, //0x0000314f jge LBB11_59 - 0x49, 0x83, 0xfd, 0x08, //0x00003155 cmpq $8, %r13 - 0x4c, 0x8d, 0x35, 0x70, 0xea, 0x00, 0x00, //0x00003159 leaq $60016(%rip), %r14 /* __HtmlQuoteTab+0(%rip) */ - 0x0f, 0x82, 0xe1, 0x01, 0x00, 0x00, //0x00003160 jb LBB11_70 - 0x49, 0x89, 0x08, //0x00003166 movq %rcx, (%r8) - 0x49, 0x8d, 0x44, 0x24, 0x08, //0x00003169 leaq $8(%r12), %rax - 0x49, 0x83, 0xc0, 0x08, //0x0000316e addq $8, %r8 - 0x49, 0x8d, 0x7d, 0xf8, //0x00003172 leaq $-8(%r13), %rdi - 0x48, 0x83, 0xff, 0x04, //0x00003176 cmpq $4, %rdi - 0x0f, 0x8d, 0xd7, 0x01, 0x00, 0x00, //0x0000317a jge LBB11_73 - 0xe9, 0xe3, 0x01, 0x00, 0x00, //0x00003180 jmp LBB11_74 - //0x00003185 LBB11_41 - 0x49, 0x89, 0xc5, //0x00003185 movq %rax, %r13 - 0x4d, 0x89, 0xd6, //0x00003188 movq %r10, %r14 - 0xc5, 0xfd, 0x6f, 0x1d, 0x6d, 0xfb, 0xff, 0xff, //0x0000318b vmovdqa $-1171(%rip), %ymm3 /* LCPI11_0+0(%rip) */ - 0xc5, 0xfd, 0x6f, 0x25, 0x85, 0xfb, 0xff, 0xff, //0x00003193 vmovdqa $-1147(%rip), %ymm4 /* LCPI11_1+0(%rip) */ - 0xc5, 0xfd, 0x6f, 0x2d, 0x9d, 0xfb, 0xff, 0xff, //0x0000319b vmovdqa $-1123(%rip), %ymm5 /* LCPI11_2+0(%rip) */ - 0xc5, 0xfd, 0x6f, 0x35, 0xb5, 0xfb, 0xff, 0xff, //0x000031a3 vmovdqa $-1099(%rip), %ymm6 /* LCPI11_3+0(%rip) */ - 0x84, 0xc9, //0x000031ab testb %cl, %cl - 0x0f, 0x85, 0x6a, 0xff, 0xff, 0xff, //0x000031ad jne LBB11_58 - //0x000031b3 LBB11_48 - 0x4d, 0x85, 0xf6, //0x000031b3 testq %r14, %r14 - 0x0f, 0x8e, 0x71, 0x00, 0x00, 0x00, //0x000031b6 jle LBB11_56 - 0x4d, 0x85, 0xed, //0x000031bc testq %r13, %r13 - 0x0f, 0x8e, 0x68, 0x00, 0x00, 0x00, //0x000031bf jle LBB11_56 - 0x31, 0xc9, //0x000031c5 xorl %ecx, %ecx - 0x31, 0xc0, //0x000031c7 xorl %eax, %eax - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000031c9 .p2align 4, 0x90 - //0x000031d0 LBB11_51 - 0x41, 0x0f, 0xb6, 0x3c, 0x0c, //0x000031d0 movzbl (%r12,%rcx), %edi - 0x48, 0x83, 0xff, 0x3e, //0x000031d5 cmpq $62, %rdi - 0x0f, 0x87, 0x14, 0x00, 0x00, 0x00, //0x000031d9 ja LBB11_52 - 0x48, 0xba, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x50, //0x000031df movabsq $5764607797912141824, %rdx - 0x48, 0x0f, 0xa3, 0xfa, //0x000031e9 btq %rdi, %rdx - 0x0f, 0x82, 0x49, 0x01, 0x00, 0x00, //0x000031ed jb LBB11_80 - //0x000031f3 LBB11_52 - 0x40, 0x80, 0xff, 0xe2, //0x000031f3 cmpb $-30, %dil - 0x0f, 0x84, 0x3f, 0x01, 0x00, 0x00, //0x000031f7 je LBB11_80 - 0x49, 0x8d, 0x14, 0x06, //0x000031fd leaq (%r14,%rax), %rdx - 0x41, 0x88, 0x3c, 0x08, //0x00003201 movb %dil, (%r8,%rcx) - 0x48, 0x8d, 0x78, 0xff, //0x00003205 leaq $-1(%rax), %rdi - 0x48, 0x83, 0xfa, 0x02, //0x00003209 cmpq $2, %rdx - 0x0f, 0x8c, 0x14, 0x00, 0x00, 0x00, //0x0000320d jl LBB11_55 - 0x4c, 0x01, 0xe8, //0x00003213 addq %r13, %rax - 0x48, 0x83, 0xc1, 0x01, //0x00003216 addq $1, %rcx - 0x48, 0x83, 0xf8, 0x01, //0x0000321a cmpq $1, %rax - 0x48, 0x89, 0xf8, //0x0000321e movq %rdi, %rax - 0x0f, 0x8f, 0xa9, 0xff, 0xff, 0xff, //0x00003221 jg LBB11_51 - //0x00003227 LBB11_55 - 0x49, 0x29, 0xfc, //0x00003227 subq %rdi, %r12 - 0x49, 0x01, 0xfe, //0x0000322a addq %rdi, %r14 - //0x0000322d LBB11_56 - 0x4d, 0x85, 0xf6, //0x0000322d testq %r14, %r14 - 0x0f, 0x84, 0xe4, 0x01, 0x00, 0x00, //0x00003230 je LBB11_57 - 0x49, 0xf7, 0xd4, //0x00003236 notq %r12 - 0x4d, 0x01, 0xdc, //0x00003239 addq %r11, %r12 - 0xe9, 0xdf, 0x01, 0x00, 0x00, //0x0000323c jmp LBB11_82 - //0x00003241 LBB11_15 - 0x4d, 0x89, 0xe2, //0x00003241 movq %r12, %r10 - 0x4c, 0x89, 0xe8, //0x00003244 movq %r13, %rax - 0x48, 0x83, 0xf8, 0x08, //0x00003247 cmpq $8, %rax - 0x0f, 0x82, 0x12, 0x00, 0x00, 0x00, //0x0000324b jb LBB11_19 - //0x00003251 LBB11_18 - 0x49, 0x8b, 0x0a, //0x00003251 movq (%r10), %rcx - 0x49, 0x89, 0x08, //0x00003254 movq %rcx, (%r8) - 0x49, 0x83, 0xc2, 0x08, //0x00003257 addq $8, %r10 - 0x49, 0x83, 0xc0, 0x08, //0x0000325b addq $8, %r8 - 0x48, 0x83, 0xc0, 0xf8, //0x0000325f addq $-8, %rax - //0x00003263 LBB11_19 - 0x48, 0x83, 0xf8, 0x04, //0x00003263 cmpq $4, %rax - 0x0f, 0x8d, 0x62, 0x00, 0x00, 0x00, //0x00003267 jge LBB11_20 - 0x48, 0x83, 0xf8, 0x02, //0x0000326d cmpq $2, %rax - 0x0f, 0x83, 0x74, 0x00, 0x00, 0x00, //0x00003271 jae LBB11_22 - //0x00003277 LBB11_23 - 0x48, 0x85, 0xc0, //0x00003277 testq %rax, %rax - 0x0f, 0x84, 0x06, 0x00, 0x00, 0x00, //0x0000327a je LBB11_25 - //0x00003280 LBB11_24 - 0x41, 0x8a, 0x02, //0x00003280 movb (%r10), %al - 0x41, 0x88, 0x00, //0x00003283 movb %al, (%r8) - //0x00003286 LBB11_25 - 0x4d, 0x29, 0xdc, //0x00003286 subq %r11, %r12 - 0x4d, 0x01, 0xec, //0x00003289 addq %r13, %r12 - 0xe9, 0x96, 0x01, 0x00, 0x00, //0x0000328c jmp LBB11_83 - //0x00003291 LBB11_32 - 0x41, 0x8b, 0x0a, //0x00003291 movl (%r10), %ecx - 0x41, 0x89, 0x08, //0x00003294 movl %ecx, (%r8) - 0x49, 0x83, 0xc2, 0x04, //0x00003297 addq $4, %r10 - 0x49, 0x83, 0xc0, 0x04, //0x0000329b addq $4, %r8 - 0x49, 0x83, 0xc6, 0xfc, //0x0000329f addq $-4, %r14 - 0x49, 0x83, 0xfe, 0x02, //0x000032a3 cmpq $2, %r14 - 0x0f, 0x82, 0x02, 0xfe, 0xff, 0xff, //0x000032a7 jb LBB11_35 - //0x000032ad LBB11_34 - 0x41, 0x0f, 0xb7, 0x0a, //0x000032ad movzwl (%r10), %ecx - 0x66, 0x41, 0x89, 0x08, //0x000032b1 movw %cx, (%r8) - 0x49, 0x83, 0xc2, 0x02, //0x000032b5 addq $2, %r10 - 0x49, 0x83, 0xc0, 0x02, //0x000032b9 addq $2, %r8 - 0x49, 0x83, 0xc6, 0xfe, //0x000032bd addq $-2, %r14 - 0x4d, 0x85, 0xf6, //0x000032c1 testq %r14, %r14 - 0x0f, 0x85, 0xee, 0xfd, 0xff, 0xff, //0x000032c4 jne LBB11_36 - 0xe9, 0xef, 0xfd, 0xff, 0xff, //0x000032ca jmp LBB11_37 - //0x000032cf LBB11_20 - 0x41, 0x8b, 0x0a, //0x000032cf movl (%r10), %ecx - 0x41, 0x89, 0x08, //0x000032d2 movl %ecx, (%r8) - 0x49, 0x83, 0xc2, 0x04, //0x000032d5 addq $4, %r10 - 0x49, 0x83, 0xc0, 0x04, //0x000032d9 addq $4, %r8 - 0x48, 0x83, 0xc0, 0xfc, //0x000032dd addq $-4, %rax - 0x48, 0x83, 0xf8, 0x02, //0x000032e1 cmpq $2, %rax - 0x0f, 0x82, 0x8c, 0xff, 0xff, 0xff, //0x000032e5 jb LBB11_23 - //0x000032eb LBB11_22 - 0x41, 0x0f, 0xb7, 0x0a, //0x000032eb movzwl (%r10), %ecx - 0x66, 0x41, 0x89, 0x08, //0x000032ef movw %cx, (%r8) - 0x49, 0x83, 0xc2, 0x02, //0x000032f3 addq $2, %r10 - 0x49, 0x83, 0xc0, 0x02, //0x000032f7 addq $2, %r8 - 0x48, 0x83, 0xc0, 0xfe, //0x000032fb addq $-2, %rax - 0x48, 0x85, 0xc0, //0x000032ff testq %rax, %rax - 0x0f, 0x85, 0x78, 0xff, 0xff, 0xff, //0x00003302 jne LBB11_24 - 0xe9, 0x79, 0xff, 0xff, 0xff, //0x00003308 jmp LBB11_25 - //0x0000330d LBB11_59 - 0x83, 0xf8, 0x08, //0x0000330d cmpl $8, %eax - 0x4c, 0x8d, 0x35, 0xb9, 0xe8, 0x00, 0x00, //0x00003310 leaq $59577(%rip), %r14 /* __HtmlQuoteTab+0(%rip) */ - 0x0f, 0x82, 0x74, 0x00, 0x00, 0x00, //0x00003317 jb LBB11_60 - 0x49, 0x89, 0x08, //0x0000331d movq %rcx, (%r8) - 0x4d, 0x8d, 0x54, 0x24, 0x08, //0x00003320 leaq $8(%r12), %r10 - 0x49, 0x83, 0xc0, 0x08, //0x00003325 addq $8, %r8 - 0x48, 0x8d, 0x78, 0xf8, //0x00003329 leaq $-8(%rax), %rdi - 0x48, 0x83, 0xff, 0x04, //0x0000332d cmpq $4, %rdi - 0x0f, 0x8d, 0x6a, 0x00, 0x00, 0x00, //0x00003331 jge LBB11_63 - 0xe9, 0x77, 0x00, 0x00, 0x00, //0x00003337 jmp LBB11_64 - //0x0000333c LBB11_80 - 0x4d, 0x29, 0xdc, //0x0000333c subq %r11, %r12 - 0x49, 0x29, 0xc4, //0x0000333f subq %rax, %r12 - 0xe9, 0xd9, 0x00, 0x00, 0x00, //0x00003342 jmp LBB11_82 - //0x00003347 LBB11_70 - 0x4c, 0x89, 0xe0, //0x00003347 movq %r12, %rax - 0x4c, 0x89, 0xef, //0x0000334a movq %r13, %rdi - 0x48, 0x83, 0xff, 0x04, //0x0000334d cmpq $4, %rdi - 0x0f, 0x8c, 0x11, 0x00, 0x00, 0x00, //0x00003351 jl LBB11_74 - //0x00003357 LBB11_73 - 0x8b, 0x08, //0x00003357 movl (%rax), %ecx - 0x41, 0x89, 0x08, //0x00003359 movl %ecx, (%r8) - 0x48, 0x83, 0xc0, 0x04, //0x0000335c addq $4, %rax - 0x49, 0x83, 0xc0, 0x04, //0x00003360 addq $4, %r8 - 0x48, 0x83, 0xc7, 0xfc, //0x00003364 addq $-4, %rdi - //0x00003368 LBB11_74 - 0x48, 0x83, 0xff, 0x02, //0x00003368 cmpq $2, %rdi - 0x0f, 0x83, 0x65, 0x00, 0x00, 0x00, //0x0000336c jae LBB11_75 - 0x48, 0x85, 0xff, //0x00003372 testq %rdi, %rdi - 0x0f, 0x84, 0x05, 0x00, 0x00, 0x00, //0x00003375 je LBB11_78 - //0x0000337b LBB11_77 - 0x8a, 0x00, //0x0000337b movb (%rax), %al - 0x41, 0x88, 0x00, //0x0000337d movb %al, (%r8) - //0x00003380 LBB11_78 - 0x4d, 0x01, 0xe5, //0x00003380 addq %r12, %r13 - 0x49, 0xf7, 0xd5, //0x00003383 notq %r13 - 0x4d, 0x01, 0xdd, //0x00003386 addq %r11, %r13 - 0x4d, 0x89, 0xec, //0x00003389 movq %r13, %r12 - 0xe9, 0x96, 0x00, 0x00, 0x00, //0x0000338c jmp LBB11_83 - //0x00003391 LBB11_60 - 0x4d, 0x89, 0xe2, //0x00003391 movq %r12, %r10 - 0x48, 0x89, 0xc7, //0x00003394 movq %rax, %rdi - 0x48, 0x83, 0xff, 0x04, //0x00003397 cmpq $4, %rdi - 0x0f, 0x8c, 0x12, 0x00, 0x00, 0x00, //0x0000339b jl LBB11_64 - //0x000033a1 LBB11_63 - 0x41, 0x8b, 0x0a, //0x000033a1 movl (%r10), %ecx - 0x41, 0x89, 0x08, //0x000033a4 movl %ecx, (%r8) - 0x49, 0x83, 0xc2, 0x04, //0x000033a7 addq $4, %r10 - 0x49, 0x83, 0xc0, 0x04, //0x000033ab addq $4, %r8 - 0x48, 0x83, 0xc7, 0xfc, //0x000033af addq $-4, %rdi - //0x000033b3 LBB11_64 - 0x48, 0x83, 0xff, 0x02, //0x000033b3 cmpq $2, %rdi - 0x0f, 0x83, 0x3b, 0x00, 0x00, 0x00, //0x000033b7 jae LBB11_65 - 0x48, 0x85, 0xff, //0x000033bd testq %rdi, %rdi - 0x0f, 0x84, 0x06, 0x00, 0x00, 0x00, //0x000033c0 je LBB11_68 - //0x000033c6 LBB11_67 - 0x41, 0x8a, 0x0a, //0x000033c6 movb (%r10), %cl - 0x41, 0x88, 0x08, //0x000033c9 movb %cl, (%r8) - //0x000033cc LBB11_68 - 0x4d, 0x29, 0xdc, //0x000033cc subq %r11, %r12 - 0x49, 0x01, 0xc4, //0x000033cf addq %rax, %r12 - 0xe9, 0x50, 0x00, 0x00, 0x00, //0x000033d2 jmp LBB11_83 - //0x000033d7 LBB11_75 - 0x0f, 0xb7, 0x08, //0x000033d7 movzwl (%rax), %ecx - 0x66, 0x41, 0x89, 0x08, //0x000033da movw %cx, (%r8) - 0x48, 0x83, 0xc0, 0x02, //0x000033de addq $2, %rax - 0x49, 0x83, 0xc0, 0x02, //0x000033e2 addq $2, %r8 - 0x48, 0x83, 0xc7, 0xfe, //0x000033e6 addq $-2, %rdi - 0x48, 0x85, 0xff, //0x000033ea testq %rdi, %rdi - 0x0f, 0x85, 0x88, 0xff, 0xff, 0xff, //0x000033ed jne LBB11_77 - 0xe9, 0x88, 0xff, 0xff, 0xff, //0x000033f3 jmp LBB11_78 - //0x000033f8 LBB11_65 - 0x41, 0x0f, 0xb7, 0x0a, //0x000033f8 movzwl (%r10), %ecx - 0x66, 0x41, 0x89, 0x08, //0x000033fc movw %cx, (%r8) - 0x49, 0x83, 0xc2, 0x02, //0x00003400 addq $2, %r10 - 0x49, 0x83, 0xc0, 0x02, //0x00003404 addq $2, %r8 - 0x48, 0x83, 0xc7, 0xfe, //0x00003408 addq $-2, %rdi - 0x48, 0x85, 0xff, //0x0000340c testq %rdi, %rdi - 0x0f, 0x85, 0xb1, 0xff, 0xff, 0xff, //0x0000340f jne LBB11_67 - 0xe9, 0xb2, 0xff, 0xff, 0xff, //0x00003415 jmp LBB11_68 - //0x0000341a LBB11_57 - 0x4d, 0x29, 0xdc, //0x0000341a subq %r11, %r12 - 0x90, 0x90, 0x90, //0x0000341d .p2align 4, 0x90 - //0x00003420 LBB11_82 - 0x4c, 0x8d, 0x35, 0xa9, 0xe7, 0x00, 0x00, //0x00003420 leaq $59305(%rip), %r14 /* __HtmlQuoteTab+0(%rip) */ - //0x00003427 LBB11_83 - 0x4d, 0x85, 0xe4, //0x00003427 testq %r12, %r12 - 0x0f, 0x88, 0x22, 0x01, 0x00, 0x00, //0x0000342a js LBB11_84 - 0x4d, 0x01, 0xe3, //0x00003430 addq %r12, %r11 - 0x4d, 0x01, 0xe7, //0x00003433 addq %r12, %r15 - 0x4c, 0x29, 0xe6, //0x00003436 subq %r12, %rsi - 0x0f, 0x8e, 0x36, 0x01, 0x00, 0x00, //0x00003439 jle LBB11_86 - 0x4d, 0x29, 0xe1, //0x0000343f subq %r12, %r9 - 0x41, 0x8a, 0x0b, //0x00003442 movb (%r11), %cl - 0x80, 0xf9, 0xe2, //0x00003445 cmpb $-30, %cl - 0x0f, 0x84, 0xb5, 0x00, 0x00, 0x00, //0x00003448 je LBB11_89 - 0x4c, 0x89, 0xd8, //0x0000344e movq %r11, %rax - //0x00003451 LBB11_93 - 0x0f, 0xb6, 0xf9, //0x00003451 movzbl %cl, %edi - 0x48, 0xc1, 0xe7, 0x04, //0x00003454 shlq $4, %rdi - 0x4a, 0x8b, 0x14, 0x37, //0x00003458 movq (%rdi,%r14), %rdx - 0x48, 0x63, 0xda, //0x0000345c movslq %edx, %rbx - 0x49, 0x29, 0xd9, //0x0000345f subq %rbx, %r9 - 0x0f, 0x8c, 0x24, 0x01, 0x00, 0x00, //0x00003462 jl LBB11_94 - 0x48, 0xc1, 0xe2, 0x20, //0x00003468 shlq $32, %rdx - 0x4e, 0x8d, 0x04, 0x37, //0x0000346c leaq (%rdi,%r14), %r8 - 0x49, 0x83, 0xc0, 0x08, //0x00003470 addq $8, %r8 - 0x48, 0xb9, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, //0x00003474 movabsq $12884901889, %rcx - 0x48, 0x39, 0xca, //0x0000347e cmpq %rcx, %rdx - 0x0f, 0x8c, 0x29, 0x00, 0x00, 0x00, //0x00003481 jl LBB11_98 - 0x41, 0x8b, 0x08, //0x00003487 movl (%r8), %ecx - 0x41, 0x89, 0x0f, //0x0000348a movl %ecx, (%r15) - 0x4e, 0x8d, 0x04, 0x37, //0x0000348d leaq (%rdi,%r14), %r8 - 0x49, 0x83, 0xc0, 0x0c, //0x00003491 addq $12, %r8 - 0x4d, 0x8d, 0x57, 0x04, //0x00003495 leaq $4(%r15), %r10 - 0x48, 0x8d, 0x7b, 0xfc, //0x00003499 leaq $-4(%rbx), %rdi - 0x48, 0x83, 0xff, 0x02, //0x0000349d cmpq $2, %rdi - 0x0f, 0x83, 0x19, 0x00, 0x00, 0x00, //0x000034a1 jae LBB11_101 - 0xe9, 0x28, 0x00, 0x00, 0x00, //0x000034a7 jmp LBB11_102 - 0x90, 0x90, 0x90, 0x90, //0x000034ac .p2align 4, 0x90 - //0x000034b0 LBB11_98 - 0x4d, 0x89, 0xfa, //0x000034b0 movq %r15, %r10 - 0x48, 0x89, 0xdf, //0x000034b3 movq %rbx, %rdi - 0x48, 0x83, 0xff, 0x02, //0x000034b6 cmpq $2, %rdi - 0x0f, 0x82, 0x14, 0x00, 0x00, 0x00, //0x000034ba jb LBB11_102 - //0x000034c0 LBB11_101 - 0x41, 0x0f, 0xb7, 0x10, //0x000034c0 movzwl (%r8), %edx - 0x66, 0x41, 0x89, 0x12, //0x000034c4 movw %dx, (%r10) - 0x49, 0x83, 0xc0, 0x02, //0x000034c8 addq $2, %r8 - 0x49, 0x83, 0xc2, 0x02, //0x000034cc addq $2, %r10 - 0x48, 0x83, 0xc7, 0xfe, //0x000034d0 addq $-2, %rdi - //0x000034d4 LBB11_102 - 0x48, 0x85, 0xff, //0x000034d4 testq %rdi, %rdi - 0x0f, 0x84, 0x06, 0x00, 0x00, 0x00, //0x000034d7 je LBB11_104 - 0x41, 0x8a, 0x08, //0x000034dd movb (%r8), %cl - 0x41, 0x88, 0x0a, //0x000034e0 movb %cl, (%r10) - //0x000034e3 LBB11_104 - 0x49, 0x01, 0xdf, //0x000034e3 addq %rbx, %r15 - //0x000034e6 LBB11_105 - 0x48, 0x83, 0xc0, 0x01, //0x000034e6 addq $1, %rax - 0x48, 0x8d, 0x4e, 0xff, //0x000034ea leaq $-1(%rsi), %rcx - 0x49, 0x89, 0xc3, //0x000034ee movq %rax, %r11 - 0x48, 0x83, 0xfe, 0x01, //0x000034f1 cmpq $1, %rsi - 0x48, 0x89, 0xce, //0x000034f5 movq %rcx, %rsi - 0x0f, 0x8f, 0x32, 0xf9, 0xff, 0xff, //0x000034f8 jg LBB11_2 - 0xe9, 0x75, 0x00, 0x00, 0x00, //0x000034fe jmp LBB11_106 - //0x00003503 LBB11_89 - 0x48, 0x83, 0xfe, 0x03, //0x00003503 cmpq $3, %rsi - 0x0f, 0x8c, 0x28, 0x00, 0x00, 0x00, //0x00003507 jl LBB11_95 - 0x41, 0x80, 0x7b, 0x01, 0x80, //0x0000350d cmpb $-128, $1(%r11) - 0x0f, 0x85, 0x1d, 0x00, 0x00, 0x00, //0x00003512 jne LBB11_95 - 0x41, 0x8a, 0x4b, 0x02, //0x00003518 movb $2(%r11), %cl - 0x89, 0xc8, //0x0000351c movl %ecx, %eax - 0x24, 0xfe, //0x0000351e andb $-2, %al - 0x3c, 0xa8, //0x00003520 cmpb $-88, %al - 0x0f, 0x85, 0x0d, 0x00, 0x00, 0x00, //0x00003522 jne LBB11_95 - 0x49, 0x8d, 0x43, 0x02, //0x00003528 leaq $2(%r11), %rax - 0x48, 0x83, 0xc6, 0xfe, //0x0000352c addq $-2, %rsi - 0xe9, 0x1c, 0xff, 0xff, 0xff, //0x00003530 jmp LBB11_93 - //0x00003535 LBB11_95 - 0x4d, 0x85, 0xc9, //0x00003535 testq %r9, %r9 - 0x0f, 0x8e, 0x59, 0x00, 0x00, 0x00, //0x00003538 jle LBB11_3 - 0x41, 0xc6, 0x07, 0xe2, //0x0000353e movb $-30, (%r15) - 0x49, 0x83, 0xc7, 0x01, //0x00003542 addq $1, %r15 - 0x49, 0x83, 0xc1, 0xff, //0x00003546 addq $-1, %r9 - 0x4c, 0x89, 0xd8, //0x0000354a movq %r11, %rax - 0xe9, 0x94, 0xff, 0xff, 0xff, //0x0000354d jmp LBB11_105 - //0x00003552 LBB11_84 - 0x48, 0x8b, 0x4d, 0xc8, //0x00003552 movq $-56(%rbp), %rcx - 0x4c, 0x01, 0xe1, //0x00003556 addq %r12, %rcx - 0x48, 0xf7, 0xd1, //0x00003559 notq %rcx - 0x4c, 0x01, 0xf9, //0x0000355c addq %r15, %rcx - 0x48, 0x8b, 0x45, 0xc0, //0x0000355f movq $-64(%rbp), %rax - 0x48, 0x89, 0x08, //0x00003563 movq %rcx, (%rax) - 0x48, 0x8b, 0x45, 0xd0, //0x00003566 movq $-48(%rbp), %rax - 0x4c, 0x29, 0xd8, //0x0000356a subq %r11, %rax - 0x4c, 0x01, 0xe0, //0x0000356d addq %r12, %rax - 0xe9, 0x2c, 0x00, 0x00, 0x00, //0x00003570 jmp LBB11_107 - //0x00003575 LBB11_86 - 0x4c, 0x89, 0xd8, //0x00003575 movq %r11, %rax - //0x00003578 LBB11_106 - 0x4c, 0x2b, 0x7d, 0xc8, //0x00003578 subq $-56(%rbp), %r15 - 0x48, 0x8b, 0x4d, 0xc0, //0x0000357c movq $-64(%rbp), %rcx - 0x4c, 0x89, 0x39, //0x00003580 movq %r15, (%rcx) - 0x48, 0x2b, 0x45, 0xd0, //0x00003583 subq $-48(%rbp), %rax - 0xe9, 0x15, 0x00, 0x00, 0x00, //0x00003587 jmp LBB11_107 - //0x0000358c LBB11_94 - 0x4c, 0x2b, 0x7d, 0xc8, //0x0000358c subq $-56(%rbp), %r15 - 0x48, 0x8b, 0x45, 0xc0, //0x00003590 movq $-64(%rbp), %rax - 0x4c, 0x89, 0x38, //0x00003594 movq %r15, (%rax) - //0x00003597 LBB11_3 - 0x49, 0xf7, 0xd3, //0x00003597 notq %r11 - 0x4c, 0x03, 0x5d, 0xd0, //0x0000359a addq $-48(%rbp), %r11 - 0x4c, 0x89, 0xd8, //0x0000359e movq %r11, %rax - //0x000035a1 LBB11_107 - 0x48, 0x83, 0xc4, 0x18, //0x000035a1 addq $24, %rsp - 0x5b, //0x000035a5 popq %rbx - 0x41, 0x5c, //0x000035a6 popq %r12 - 0x41, 0x5d, //0x000035a8 popq %r13 - 0x41, 0x5e, //0x000035aa popq %r14 - 0x41, 0x5f, //0x000035ac popq %r15 - 0x5d, //0x000035ae popq %rbp - 0xc5, 0xf8, 0x77, //0x000035af vzeroupper - 0xc3, //0x000035b2 retq - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000035b3 .p2align 4, 0x90 - //0x000035c0 _atof_eisel_lemire64 - 0x55, //0x000035c0 pushq %rbp - 0x48, 0x89, 0xe5, //0x000035c1 movq %rsp, %rbp - 0x41, 0x57, //0x000035c4 pushq %r15 - 0x41, 0x56, //0x000035c6 pushq %r14 - 0x41, 0x54, //0x000035c8 pushq %r12 - 0x53, //0x000035ca pushq %rbx - 0x8d, 0x86, 0x5c, 0x01, 0x00, 0x00, //0x000035cb leal $348(%rsi), %eax - 0x3d, 0xb7, 0x02, 0x00, 0x00, //0x000035d1 cmpl $695, %eax - 0x0f, 0x87, 0x1d, 0x01, 0x00, 0x00, //0x000035d6 ja LBB12_1 - 0x49, 0x89, 0xc8, //0x000035dc movq %rcx, %r8 - 0x41, 0x89, 0xd1, //0x000035df movl %edx, %r9d - 0x48, 0x85, 0xff, //0x000035e2 testq %rdi, %rdi - 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x000035e5 je LBB12_4 - 0x4c, 0x0f, 0xbd, 0xd7, //0x000035eb bsrq %rdi, %r10 - 0x49, 0x83, 0xf2, 0x3f, //0x000035ef xorq $63, %r10 - 0xe9, 0x06, 0x00, 0x00, 0x00, //0x000035f3 jmp LBB12_5 - //0x000035f8 LBB12_4 - 0x41, 0xba, 0x40, 0x00, 0x00, 0x00, //0x000035f8 movl $64, %r10d - //0x000035fe LBB12_5 - 0x44, 0x89, 0xd1, //0x000035fe movl %r10d, %ecx - 0x48, 0xd3, 0xe7, //0x00003601 shlq %cl, %rdi - 0x89, 0xc1, //0x00003604 movl %eax, %ecx - 0x48, 0xc1, 0xe1, 0x04, //0x00003606 shlq $4, %rcx - 0x4c, 0x8d, 0x25, 0x0f, 0x70, 0x00, 0x00, //0x0000360a leaq $28687(%rip), %r12 /* _POW10_M128_TAB+0(%rip) */ - 0x48, 0x89, 0xf8, //0x00003611 movq %rdi, %rax - 0x4a, 0xf7, 0x64, 0x21, 0x08, //0x00003614 mulq $8(%rcx,%r12) - 0x49, 0x89, 0xc7, //0x00003619 movq %rax, %r15 - 0x49, 0x89, 0xd3, //0x0000361c movq %rdx, %r11 - 0x44, 0x89, 0xdb, //0x0000361f movl %r11d, %ebx - 0x81, 0xe3, 0xff, 0x01, 0x00, 0x00, //0x00003622 andl $511, %ebx - 0x48, 0x81, 0xfb, 0xff, 0x01, 0x00, 0x00, //0x00003628 cmpq $511, %rbx - 0x0f, 0x85, 0x52, 0x00, 0x00, 0x00, //0x0000362f jne LBB12_11 - 0x49, 0x89, 0xfe, //0x00003635 movq %rdi, %r14 - 0x49, 0xf7, 0xd6, //0x00003638 notq %r14 - 0x4c, 0x89, 0xfa, //0x0000363b movq %r15, %rdx - 0x4d, 0x39, 0xf7, //0x0000363e cmpq %r14, %r15 - 0x0f, 0x86, 0x43, 0x00, 0x00, 0x00, //0x00003641 jbe LBB12_13 - 0x48, 0x89, 0xf8, //0x00003647 movq %rdi, %rax - 0x4a, 0xf7, 0x24, 0x21, //0x0000364a mulq (%rcx,%r12) - 0x4c, 0x01, 0xfa, //0x0000364e addq %r15, %rdx - 0x49, 0x83, 0xd3, 0x00, //0x00003651 adcq $0, %r11 - 0x44, 0x89, 0xd9, //0x00003655 movl %r11d, %ecx - 0xf7, 0xd1, //0x00003658 notl %ecx - 0xf7, 0xc1, 0xff, 0x01, 0x00, 0x00, //0x0000365a testl $511, %ecx - 0x0f, 0x85, 0x13, 0x00, 0x00, 0x00, //0x00003660 jne LBB12_12 - 0x48, 0x83, 0xfa, 0xff, //0x00003666 cmpq $-1, %rdx - 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x0000366a jne LBB12_12 - 0x4c, 0x39, 0xf0, //0x00003670 cmpq %r14, %rax - 0x0f, 0x87, 0x80, 0x00, 0x00, 0x00, //0x00003673 ja LBB12_1 - //0x00003679 LBB12_12 - 0x44, 0x89, 0xdb, //0x00003679 movl %r11d, %ebx - 0x81, 0xe3, 0xff, 0x01, 0x00, 0x00, //0x0000367c andl $511, %ebx - 0xe9, 0x03, 0x00, 0x00, 0x00, //0x00003682 jmp LBB12_13 - //0x00003687 LBB12_11 - 0x4c, 0x89, 0xfa, //0x00003687 movq %r15, %rdx - //0x0000368a LBB12_13 - 0x4c, 0x89, 0xd8, //0x0000368a movq %r11, %rax - 0x48, 0xc1, 0xe8, 0x3f, //0x0000368d shrq $63, %rax - 0x8d, 0x48, 0x09, //0x00003691 leal $9(%rax), %ecx - 0x49, 0xd3, 0xeb, //0x00003694 shrq %cl, %r11 - 0x48, 0x85, 0xd2, //0x00003697 testq %rdx, %rdx - 0x0f, 0x85, 0x18, 0x00, 0x00, 0x00, //0x0000369a jne LBB12_17 - 0x48, 0x85, 0xdb, //0x000036a0 testq %rbx, %rbx - 0x0f, 0x85, 0x0f, 0x00, 0x00, 0x00, //0x000036a3 jne LBB12_17 - 0x44, 0x89, 0xd9, //0x000036a9 movl %r11d, %ecx - 0x83, 0xe1, 0x03, //0x000036ac andl $3, %ecx - 0x83, 0xf9, 0x01, //0x000036af cmpl $1, %ecx - 0x0f, 0x84, 0x41, 0x00, 0x00, 0x00, //0x000036b2 je LBB12_1 - //0x000036b8 LBB12_17 - 0x69, 0xce, 0x6a, 0x52, 0x03, 0x00, //0x000036b8 imull $217706, %esi, %ecx - 0xc1, 0xf9, 0x10, //0x000036be sarl $16, %ecx - 0x81, 0xc1, 0x3f, 0x04, 0x00, 0x00, //0x000036c1 addl $1087, %ecx - 0x48, 0x63, 0xf1, //0x000036c7 movslq %ecx, %rsi - 0x4c, 0x29, 0xd6, //0x000036ca subq %r10, %rsi - 0x44, 0x89, 0xda, //0x000036cd movl %r11d, %edx - 0x83, 0xe2, 0x01, //0x000036d0 andl $1, %edx - 0x4c, 0x01, 0xda, //0x000036d3 addq %r11, %rdx - 0x48, 0x89, 0xd1, //0x000036d6 movq %rdx, %rcx - 0x48, 0xc1, 0xe9, 0x36, //0x000036d9 shrq $54, %rcx - 0x48, 0x01, 0xf0, //0x000036dd addq %rsi, %rax - 0x48, 0x83, 0xf9, 0x01, //0x000036e0 cmpq $1, %rcx - 0x48, 0x83, 0xd8, 0x00, //0x000036e4 sbbq $0, %rax - 0x48, 0x8d, 0x70, 0xff, //0x000036e8 leaq $-1(%rax), %rsi - 0x48, 0x81, 0xfe, 0xfd, 0x07, 0x00, 0x00, //0x000036ec cmpq $2045, %rsi - 0x0f, 0x86, 0x0b, 0x00, 0x00, 0x00, //0x000036f3 jbe LBB12_19 - //0x000036f9 LBB12_1 - 0x31, 0xc0, //0x000036f9 xorl %eax, %eax - //0x000036fb LBB12_20 - 0x5b, //0x000036fb popq %rbx - 0x41, 0x5c, //0x000036fc popq %r12 - 0x41, 0x5e, //0x000036fe popq %r14 - 0x41, 0x5f, //0x00003700 popq %r15 - 0x5d, //0x00003702 popq %rbp - 0xc3, //0x00003703 retq - //0x00003704 LBB12_19 - 0x48, 0x83, 0xf9, 0x01, //0x00003704 cmpq $1, %rcx - 0xb1, 0x02, //0x00003708 movb $2, %cl - 0x80, 0xd9, 0x00, //0x0000370a sbbb $0, %cl - 0x48, 0xd3, 0xea, //0x0000370d shrq %cl, %rdx - 0x48, 0xc1, 0xe0, 0x34, //0x00003710 shlq $52, %rax - 0x48, 0xb9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, //0x00003714 movabsq $4503599627370495, %rcx - 0x48, 0x21, 0xd1, //0x0000371e andq %rdx, %rcx - 0x48, 0x09, 0xc1, //0x00003721 orq %rax, %rcx - 0x48, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x00003724 movabsq $-9223372036854775808, %rax - 0x48, 0x09, 0xc8, //0x0000372e orq %rcx, %rax - 0x41, 0x83, 0xf9, 0xff, //0x00003731 cmpl $-1, %r9d - 0x48, 0x0f, 0x45, 0xc1, //0x00003735 cmovneq %rcx, %rax - 0x49, 0x89, 0x00, //0x00003739 movq %rax, (%r8) - 0xb0, 0x01, //0x0000373c movb $1, %al - 0xe9, 0xb8, 0xff, 0xff, 0xff, //0x0000373e jmp LBB12_20 - 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, //0x00003743 .p2align 5, 0x00 - //0x00003760 LCPI13_0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00003760 QUAD $0x0000000000000000 // .space 8, '\x00\x00\x00\x00\x00\x00\x00\x00' - 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00003768 .quad 1 - 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00003770 .quad 1 - 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00003778 .quad 1 - //0x00003780 .p2align 3, 0x00 - //0x00003780 LCPI13_1 - 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00003780 .quad 1 - //0x00003788 LCPI13_2 - 0x10, 0x27, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00003788 .quad 10000 - //0x00003790 LCPI13_3 - 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00003790 .quad 10 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003798 .p2align 4, 0x90 - //0x000037a0 _decimal_to_f64 - 0x55, //0x000037a0 pushq %rbp - 0x48, 0x89, 0xe5, //0x000037a1 movq %rsp, %rbp - 0x41, 0x57, //0x000037a4 pushq %r15 - 0x41, 0x56, //0x000037a6 pushq %r14 - 0x41, 0x55, //0x000037a8 pushq %r13 - 0x41, 0x54, //0x000037aa pushq %r12 - 0x53, //0x000037ac pushq %rbx - 0x50, //0x000037ad pushq %rax - 0x48, 0x89, 0xf3, //0x000037ae movq %rsi, %rbx - 0x49, 0x89, 0xff, //0x000037b1 movq %rdi, %r15 - 0x49, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, //0x000037b4 movabsq $4503599627370496, %r13 - 0x83, 0x7f, 0x10, 0x00, //0x000037be cmpl $0, $16(%rdi) - 0x0f, 0x84, 0x2f, 0x00, 0x00, 0x00, //0x000037c2 je LBB13_4 - 0x49, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x7f, //0x000037c8 movabsq $9218868437227405312, %r14 - 0x41, 0x8b, 0x47, 0x14, //0x000037d2 movl $20(%r15), %eax - 0x45, 0x31, 0xe4, //0x000037d6 xorl %r12d, %r12d - 0x3d, 0x36, 0x01, 0x00, 0x00, //0x000037d9 cmpl $310, %eax - 0x0f, 0x8f, 0x2e, 0x05, 0x00, 0x00, //0x000037de jg LBB13_69 - 0x3d, 0xb6, 0xfe, 0xff, 0xff, //0x000037e4 cmpl $-330, %eax - 0x0f, 0x8d, 0x13, 0x00, 0x00, 0x00, //0x000037e9 jge LBB13_5 - 0x45, 0x31, 0xf6, //0x000037ef xorl %r14d, %r14d - 0xe9, 0x1b, 0x05, 0x00, 0x00, //0x000037f2 jmp LBB13_69 - //0x000037f7 LBB13_4 - 0x45, 0x31, 0xf6, //0x000037f7 xorl %r14d, %r14d - 0x45, 0x31, 0xe4, //0x000037fa xorl %r12d, %r12d - 0xe9, 0x10, 0x05, 0x00, 0x00, //0x000037fd jmp LBB13_69 - //0x00003802 LBB13_5 - 0x85, 0xc0, //0x00003802 testl %eax, %eax - 0x48, 0x89, 0x5d, 0xd0, //0x00003804 movq %rbx, $-48(%rbp) - 0x0f, 0x8e, 0x5a, 0x00, 0x00, 0x00, //0x00003808 jle LBB13_12 - 0x45, 0x31, 0xe4, //0x0000380e xorl %r12d, %r12d - 0x4c, 0x8d, 0x35, 0x98, 0x99, 0x00, 0x00, //0x00003811 leaq $39320(%rip), %r14 /* _POW_TAB+0(%rip) */ - 0xe9, 0x2d, 0x00, 0x00, 0x00, //0x00003818 jmp LBB13_8 - 0x90, 0x90, 0x90, //0x0000381d .p2align 4, 0x90 - //0x00003820 LBB13_10 - 0x89, 0xc0, //0x00003820 movl %eax, %eax - 0x41, 0x8b, 0x1c, 0x86, //0x00003822 movl (%r14,%rax,4), %ebx - 0x41, 0x83, 0x7f, 0x10, 0x00, //0x00003826 cmpl $0, $16(%r15) - 0x0f, 0x84, 0x0a, 0x00, 0x00, 0x00, //0x0000382b je LBB13_7 - //0x00003831 LBB13_11 - 0x4c, 0x89, 0xff, //0x00003831 movq %r15, %rdi - 0x89, 0xde, //0x00003834 movl %ebx, %esi - 0xe8, 0xd5, 0x65, 0x00, 0x00, //0x00003836 callq _right_shift - //0x0000383b LBB13_7 - 0x41, 0x01, 0xdc, //0x0000383b addl %ebx, %r12d - 0x41, 0x8b, 0x47, 0x14, //0x0000383e movl $20(%r15), %eax - 0x85, 0xc0, //0x00003842 testl %eax, %eax - 0x0f, 0x8e, 0x1e, 0x00, 0x00, 0x00, //0x00003844 jle LBB13_12 - //0x0000384a LBB13_8 - 0x83, 0xf8, 0x08, //0x0000384a cmpl $8, %eax - 0x0f, 0x8e, 0xcd, 0xff, 0xff, 0xff, //0x0000384d jle LBB13_10 - 0xbb, 0x1b, 0x00, 0x00, 0x00, //0x00003853 movl $27, %ebx - 0x41, 0x83, 0x7f, 0x10, 0x00, //0x00003858 cmpl $0, $16(%r15) - 0x0f, 0x85, 0xce, 0xff, 0xff, 0xff, //0x0000385d jne LBB13_11 - 0xe9, 0xd3, 0xff, 0xff, 0xff, //0x00003863 jmp LBB13_7 - //0x00003868 LBB13_12 - 0x4c, 0x8d, 0x35, 0x41, 0x99, 0x00, 0x00, //0x00003868 leaq $39233(%rip), %r14 /* _POW_TAB+0(%rip) */ - 0xe9, 0x2d, 0x00, 0x00, 0x00, //0x0000386f jmp LBB13_14 - //0x00003874 LBB13_18 - 0xbb, 0x1b, 0x00, 0x00, 0x00, //0x00003874 movl $27, %ebx - 0x41, 0x83, 0x7f, 0x10, 0x00, //0x00003879 cmpl $0, $16(%r15) - 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x0000387e je LBB13_13 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003884 .p2align 4, 0x90 - //0x00003890 LBB13_20 - 0x4c, 0x89, 0xff, //0x00003890 movq %r15, %rdi - 0x89, 0xde, //0x00003893 movl %ebx, %esi - 0xe8, 0x56, 0x63, 0x00, 0x00, //0x00003895 callq _left_shift - 0x41, 0x8b, 0x47, 0x14, //0x0000389a movl $20(%r15), %eax - //0x0000389e LBB13_13 - 0x41, 0x29, 0xdc, //0x0000389e subl %ebx, %r12d - //0x000038a1 LBB13_14 - 0x85, 0xc0, //0x000038a1 testl %eax, %eax - 0x0f, 0x88, 0x17, 0x00, 0x00, 0x00, //0x000038a3 js LBB13_17 - 0x0f, 0x85, 0x32, 0x00, 0x00, 0x00, //0x000038a9 jne LBB13_21 - 0x49, 0x8b, 0x0f, //0x000038af movq (%r15), %rcx - 0x80, 0x39, 0x35, //0x000038b2 cmpb $53, (%rcx) - 0x0f, 0x8c, 0x0e, 0x00, 0x00, 0x00, //0x000038b5 jl LBB13_19 - 0xe9, 0x21, 0x00, 0x00, 0x00, //0x000038bb jmp LBB13_21 - //0x000038c0 .p2align 4, 0x90 - //0x000038c0 LBB13_17 - 0x83, 0xf8, 0xf8, //0x000038c0 cmpl $-8, %eax - 0x0f, 0x8c, 0xab, 0xff, 0xff, 0xff, //0x000038c3 jl LBB13_18 - //0x000038c9 LBB13_19 - 0x89, 0xc1, //0x000038c9 movl %eax, %ecx - 0xf7, 0xd9, //0x000038cb negl %ecx - 0x41, 0x8b, 0x1c, 0x8e, //0x000038cd movl (%r14,%rcx,4), %ebx - 0x41, 0x83, 0x7f, 0x10, 0x00, //0x000038d1 cmpl $0, $16(%r15) - 0x0f, 0x85, 0xb4, 0xff, 0xff, 0xff, //0x000038d6 jne LBB13_20 - 0xe9, 0xbd, 0xff, 0xff, 0xff, //0x000038dc jmp LBB13_13 - //0x000038e1 LBB13_21 - 0x41, 0x81, 0xfc, 0x02, 0xfc, 0xff, 0xff, //0x000038e1 cmpl $-1022, %r12d - 0x0f, 0x8f, 0x56, 0x00, 0x00, 0x00, //0x000038e8 jg LBB13_27 - 0x41, 0x83, 0x7f, 0x10, 0x00, //0x000038ee cmpl $0, $16(%r15) - 0x48, 0x8b, 0x5d, 0xd0, //0x000038f3 movq $-48(%rbp), %rbx - 0x0f, 0x84, 0x64, 0x00, 0x00, 0x00, //0x000038f7 je LBB13_29 - 0x41, 0x81, 0xfc, 0xc6, 0xfb, 0xff, 0xff, //0x000038fd cmpl $-1082, %r12d - 0x0f, 0x8f, 0x62, 0x00, 0x00, 0x00, //0x00003904 jg LBB13_30 - 0x41, 0x81, 0xc4, 0xc1, 0x03, 0x00, 0x00, //0x0000390a addl $961, %r12d - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003911 .p2align 4, 0x90 - //0x00003920 LBB13_25 - 0x4c, 0x89, 0xff, //0x00003920 movq %r15, %rdi - 0xbe, 0x3c, 0x00, 0x00, 0x00, //0x00003923 movl $60, %esi - 0xe8, 0xe3, 0x64, 0x00, 0x00, //0x00003928 callq _right_shift - 0x41, 0x83, 0xc4, 0x3c, //0x0000392d addl $60, %r12d - 0x41, 0x83, 0xfc, 0x88, //0x00003931 cmpl $-120, %r12d - 0x0f, 0x8c, 0xe5, 0xff, 0xff, 0xff, //0x00003935 jl LBB13_25 - 0x41, 0x83, 0xc4, 0x3c, //0x0000393b addl $60, %r12d - 0xe9, 0x2f, 0x00, 0x00, 0x00, //0x0000393f jmp LBB13_31 - //0x00003944 LBB13_27 - 0x41, 0x81, 0xfc, 0x00, 0x04, 0x00, 0x00, //0x00003944 cmpl $1024, %r12d - 0x48, 0x8b, 0x5d, 0xd0, //0x0000394b movq $-48(%rbp), %rbx - 0x0f, 0x8f, 0x85, 0x03, 0x00, 0x00, //0x0000394f jg LBB13_66 - 0x41, 0x83, 0xc4, 0xff, //0x00003955 addl $-1, %r12d - 0x45, 0x89, 0xe6, //0x00003959 movl %r12d, %r14d - 0xe9, 0x26, 0x00, 0x00, 0x00, //0x0000395c jmp LBB13_32 - //0x00003961 LBB13_29 - 0x41, 0xbe, 0x02, 0xfc, 0xff, 0xff, //0x00003961 movl $-1022, %r14d - 0xe9, 0x33, 0x00, 0x00, 0x00, //0x00003967 jmp LBB13_34 - //0x0000396c LBB13_30 - 0x41, 0x81, 0xc4, 0xfd, 0x03, 0x00, 0x00, //0x0000396c addl $1021, %r12d - //0x00003973 LBB13_31 - 0x41, 0xf7, 0xdc, //0x00003973 negl %r12d - 0x4c, 0x89, 0xff, //0x00003976 movq %r15, %rdi - 0x44, 0x89, 0xe6, //0x00003979 movl %r12d, %esi - 0xe8, 0x8f, 0x64, 0x00, 0x00, //0x0000397c callq _right_shift - 0x41, 0xbe, 0x02, 0xfc, 0xff, 0xff, //0x00003981 movl $-1022, %r14d - //0x00003987 LBB13_32 - 0x41, 0x83, 0x7f, 0x10, 0x00, //0x00003987 cmpl $0, $16(%r15) - 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x0000398c je LBB13_34 - 0x4c, 0x89, 0xff, //0x00003992 movq %r15, %rdi - 0xbe, 0x35, 0x00, 0x00, 0x00, //0x00003995 movl $53, %esi - 0xe8, 0x51, 0x62, 0x00, 0x00, //0x0000399a callq _left_shift - //0x0000399f LBB13_34 - 0x41, 0x8b, 0x47, 0x14, //0x0000399f movl $20(%r15), %eax - 0x49, 0xc7, 0xc4, 0xff, 0xff, 0xff, 0xff, //0x000039a3 movq $-1, %r12 - 0x83, 0xf8, 0x14, //0x000039aa cmpl $20, %eax - 0x0f, 0x8f, 0x40, 0x03, 0x00, 0x00, //0x000039ad jg LBB13_68 - 0x85, 0xc0, //0x000039b3 testl %eax, %eax - 0x0f, 0x8e, 0x57, 0x00, 0x00, 0x00, //0x000039b5 jle LBB13_40 - 0x41, 0x8b, 0x57, 0x10, //0x000039bb movl $16(%r15), %edx - 0x31, 0xf6, //0x000039bf xorl %esi, %esi - 0x85, 0xd2, //0x000039c1 testl %edx, %edx - 0x0f, 0x4e, 0xd6, //0x000039c3 cmovlel %esi, %edx - 0x4c, 0x8d, 0x48, 0xff, //0x000039c6 leaq $-1(%rax), %r9 - 0x49, 0x39, 0xd1, //0x000039ca cmpq %rdx, %r9 - 0x4c, 0x0f, 0x43, 0xca, //0x000039cd cmovaeq %rdx, %r9 - 0x45, 0x8d, 0x41, 0x01, //0x000039d1 leal $1(%r9), %r8d - 0x45, 0x31, 0xe4, //0x000039d5 xorl %r12d, %r12d - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000039d8 .p2align 4, 0x90 - //0x000039e0 LBB13_37 - 0x48, 0x39, 0xf2, //0x000039e0 cmpq %rsi, %rdx - 0x0f, 0x84, 0x2f, 0x00, 0x00, 0x00, //0x000039e3 je LBB13_41 - 0x4b, 0x8d, 0x3c, 0xa4, //0x000039e9 leaq (%r12,%r12,4), %rdi - 0x49, 0x8b, 0x0f, //0x000039ed movq (%r15), %rcx - 0x48, 0x0f, 0xbe, 0x0c, 0x31, //0x000039f0 movsbq (%rcx,%rsi), %rcx - 0x4c, 0x8d, 0x24, 0x79, //0x000039f5 leaq (%rcx,%rdi,2), %r12 - 0x49, 0x83, 0xc4, 0xd0, //0x000039f9 addq $-48, %r12 - 0x48, 0x83, 0xc6, 0x01, //0x000039fd addq $1, %rsi - 0x48, 0x39, 0xf0, //0x00003a01 cmpq %rsi, %rax - 0x0f, 0x85, 0xd6, 0xff, 0xff, 0xff, //0x00003a04 jne LBB13_37 - 0x45, 0x89, 0xc1, //0x00003a0a movl %r8d, %r9d - 0xe9, 0x06, 0x00, 0x00, 0x00, //0x00003a0d jmp LBB13_41 - //0x00003a12 LBB13_40 - 0x45, 0x31, 0xc9, //0x00003a12 xorl %r9d, %r9d - 0x45, 0x31, 0xe4, //0x00003a15 xorl %r12d, %r12d - //0x00003a18 LBB13_41 - 0x44, 0x39, 0xc8, //0x00003a18 cmpl %r9d, %eax - 0x0f, 0x8e, 0x3f, 0x02, 0x00, 0x00, //0x00003a1b jle LBB13_54 - 0x89, 0xc2, //0x00003a21 movl %eax, %edx - 0x44, 0x29, 0xca, //0x00003a23 subl %r9d, %edx - 0x83, 0xfa, 0x10, //0x00003a26 cmpl $16, %edx - 0x0f, 0x82, 0x1c, 0x02, 0x00, 0x00, //0x00003a29 jb LBB13_52 - 0x41, 0x89, 0xd0, //0x00003a2f movl %edx, %r8d - 0xc5, 0xf9, 0x6f, 0x05, 0x26, 0xfd, 0xff, 0xff, //0x00003a32 vmovdqa $-730(%rip), %xmm0 /* LCPI13_0+0(%rip) */ - 0xc4, 0xc3, 0xf9, 0x22, 0xc4, 0x00, //0x00003a3a vpinsrq $0, %r12, %xmm0, %xmm0 - 0x41, 0x83, 0xe0, 0xf0, //0x00003a40 andl $-16, %r8d - 0xc4, 0xe3, 0x7d, 0x02, 0x05, 0x12, 0xfd, 0xff, 0xff, 0xf0, //0x00003a44 vpblendd $240, $-750(%rip), %ymm0, %ymm0 /* LCPI13_0+0(%rip) */ - 0x41, 0x8d, 0x48, 0xf0, //0x00003a4e leal $-16(%r8), %ecx - 0x89, 0xcf, //0x00003a52 movl %ecx, %edi - 0xc1, 0xef, 0x04, //0x00003a54 shrl $4, %edi - 0x83, 0xc7, 0x01, //0x00003a57 addl $1, %edi - 0x89, 0xfe, //0x00003a5a movl %edi, %esi - 0x83, 0xe6, 0x03, //0x00003a5c andl $3, %esi - 0x83, 0xf9, 0x30, //0x00003a5f cmpl $48, %ecx - 0x0f, 0x83, 0x16, 0x00, 0x00, 0x00, //0x00003a62 jae LBB13_45 - 0xc4, 0xe2, 0x7d, 0x59, 0x15, 0x0f, 0xfd, 0xff, 0xff, //0x00003a68 vpbroadcastq $-753(%rip), %ymm2 /* LCPI13_1+0(%rip) */ - 0xc5, 0xfd, 0x6f, 0xda, //0x00003a71 vmovdqa %ymm2, %ymm3 - 0xc5, 0xfd, 0x6f, 0xca, //0x00003a75 vmovdqa %ymm2, %ymm1 - 0xe9, 0x83, 0x00, 0x00, 0x00, //0x00003a79 jmp LBB13_47 - //0x00003a7e LBB13_45 - 0x83, 0xe7, 0xfc, //0x00003a7e andl $-4, %edi - 0xf7, 0xdf, //0x00003a81 negl %edi - 0xc4, 0xe2, 0x7d, 0x59, 0x15, 0xf4, 0xfc, 0xff, 0xff, //0x00003a83 vpbroadcastq $-780(%rip), %ymm2 /* LCPI13_1+0(%rip) */ - 0xc4, 0xe2, 0x7d, 0x59, 0x25, 0xf3, 0xfc, 0xff, 0xff, //0x00003a8c vpbroadcastq $-781(%rip), %ymm4 /* LCPI13_2+0(%rip) */ - 0xc5, 0xfd, 0x6f, 0xda, //0x00003a95 vmovdqa %ymm2, %ymm3 - 0xc5, 0xfd, 0x6f, 0xca, //0x00003a99 vmovdqa %ymm2, %ymm1 - 0x90, 0x90, 0x90, //0x00003a9d .p2align 4, 0x90 - //0x00003aa0 LBB13_46 - 0xc5, 0xfd, 0xf4, 0xec, //0x00003aa0 vpmuludq %ymm4, %ymm0, %ymm5 - 0xc5, 0xfd, 0x73, 0xd0, 0x20, //0x00003aa4 vpsrlq $32, %ymm0, %ymm0 - 0xc5, 0xfd, 0xf4, 0xc4, //0x00003aa9 vpmuludq %ymm4, %ymm0, %ymm0 - 0xc5, 0xfd, 0x73, 0xf0, 0x20, //0x00003aad vpsllq $32, %ymm0, %ymm0 - 0xc5, 0xd5, 0xd4, 0xc0, //0x00003ab2 vpaddq %ymm0, %ymm5, %ymm0 - 0xc5, 0xed, 0xf4, 0xec, //0x00003ab6 vpmuludq %ymm4, %ymm2, %ymm5 - 0xc5, 0xed, 0x73, 0xd2, 0x20, //0x00003aba vpsrlq $32, %ymm2, %ymm2 - 0xc5, 0xed, 0xf4, 0xd4, //0x00003abf vpmuludq %ymm4, %ymm2, %ymm2 - 0xc5, 0xed, 0x73, 0xf2, 0x20, //0x00003ac3 vpsllq $32, %ymm2, %ymm2 - 0xc5, 0xd5, 0xd4, 0xd2, //0x00003ac8 vpaddq %ymm2, %ymm5, %ymm2 - 0xc5, 0xe5, 0xf4, 0xec, //0x00003acc vpmuludq %ymm4, %ymm3, %ymm5 - 0xc5, 0xe5, 0x73, 0xd3, 0x20, //0x00003ad0 vpsrlq $32, %ymm3, %ymm3 - 0xc5, 0xe5, 0xf4, 0xdc, //0x00003ad5 vpmuludq %ymm4, %ymm3, %ymm3 - 0xc5, 0xe5, 0x73, 0xf3, 0x20, //0x00003ad9 vpsllq $32, %ymm3, %ymm3 - 0xc5, 0xd5, 0xd4, 0xdb, //0x00003ade vpaddq %ymm3, %ymm5, %ymm3 - 0xc5, 0xf5, 0xf4, 0xec, //0x00003ae2 vpmuludq %ymm4, %ymm1, %ymm5 - 0xc5, 0xf5, 0x73, 0xd1, 0x20, //0x00003ae6 vpsrlq $32, %ymm1, %ymm1 - 0xc5, 0xf5, 0xf4, 0xcc, //0x00003aeb vpmuludq %ymm4, %ymm1, %ymm1 - 0xc5, 0xf5, 0x73, 0xf1, 0x20, //0x00003aef vpsllq $32, %ymm1, %ymm1 - 0xc5, 0xd5, 0xd4, 0xc9, //0x00003af4 vpaddq %ymm1, %ymm5, %ymm1 - 0x83, 0xc7, 0x04, //0x00003af8 addl $4, %edi - 0x0f, 0x85, 0x9f, 0xff, 0xff, 0xff, //0x00003afb jne LBB13_46 - //0x00003b01 LBB13_47 - 0x85, 0xf6, //0x00003b01 testl %esi, %esi - 0x0f, 0x84, 0x77, 0x00, 0x00, 0x00, //0x00003b03 je LBB13_50 - 0xf7, 0xde, //0x00003b09 negl %esi - 0xc4, 0xe2, 0x7d, 0x59, 0x25, 0x7c, 0xfc, 0xff, 0xff, //0x00003b0b vpbroadcastq $-900(%rip), %ymm4 /* LCPI13_3+0(%rip) */ - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003b14 .p2align 4, 0x90 - //0x00003b20 LBB13_49 - 0xc5, 0xfd, 0xf4, 0xec, //0x00003b20 vpmuludq %ymm4, %ymm0, %ymm5 - 0xc5, 0xfd, 0x73, 0xd0, 0x20, //0x00003b24 vpsrlq $32, %ymm0, %ymm0 - 0xc5, 0xfd, 0xf4, 0xc4, //0x00003b29 vpmuludq %ymm4, %ymm0, %ymm0 - 0xc5, 0xfd, 0x73, 0xf0, 0x20, //0x00003b2d vpsllq $32, %ymm0, %ymm0 - 0xc5, 0xd5, 0xd4, 0xc0, //0x00003b32 vpaddq %ymm0, %ymm5, %ymm0 - 0xc5, 0xed, 0xf4, 0xec, //0x00003b36 vpmuludq %ymm4, %ymm2, %ymm5 - 0xc5, 0xed, 0x73, 0xd2, 0x20, //0x00003b3a vpsrlq $32, %ymm2, %ymm2 - 0xc5, 0xed, 0xf4, 0xd4, //0x00003b3f vpmuludq %ymm4, %ymm2, %ymm2 - 0xc5, 0xed, 0x73, 0xf2, 0x20, //0x00003b43 vpsllq $32, %ymm2, %ymm2 - 0xc5, 0xd5, 0xd4, 0xd2, //0x00003b48 vpaddq %ymm2, %ymm5, %ymm2 - 0xc5, 0xe5, 0xf4, 0xec, //0x00003b4c vpmuludq %ymm4, %ymm3, %ymm5 - 0xc5, 0xe5, 0x73, 0xd3, 0x20, //0x00003b50 vpsrlq $32, %ymm3, %ymm3 - 0xc5, 0xe5, 0xf4, 0xdc, //0x00003b55 vpmuludq %ymm4, %ymm3, %ymm3 - 0xc5, 0xe5, 0x73, 0xf3, 0x20, //0x00003b59 vpsllq $32, %ymm3, %ymm3 - 0xc5, 0xd5, 0xd4, 0xdb, //0x00003b5e vpaddq %ymm3, %ymm5, %ymm3 - 0xc5, 0xf5, 0xf4, 0xec, //0x00003b62 vpmuludq %ymm4, %ymm1, %ymm5 - 0xc5, 0xf5, 0x73, 0xd1, 0x20, //0x00003b66 vpsrlq $32, %ymm1, %ymm1 - 0xc5, 0xf5, 0xf4, 0xcc, //0x00003b6b vpmuludq %ymm4, %ymm1, %ymm1 - 0xc5, 0xf5, 0x73, 0xf1, 0x20, //0x00003b6f vpsllq $32, %ymm1, %ymm1 - 0xc5, 0xd5, 0xd4, 0xc9, //0x00003b74 vpaddq %ymm1, %ymm5, %ymm1 - 0xff, 0xc6, //0x00003b78 incl %esi - 0x0f, 0x85, 0xa0, 0xff, 0xff, 0xff, //0x00003b7a jne LBB13_49 - //0x00003b80 LBB13_50 - 0xc5, 0xdd, 0x73, 0xd2, 0x20, //0x00003b80 vpsrlq $32, %ymm2, %ymm4 - 0xc5, 0xdd, 0xf4, 0xe0, //0x00003b85 vpmuludq %ymm0, %ymm4, %ymm4 - 0xc5, 0xd5, 0x73, 0xd0, 0x20, //0x00003b89 vpsrlq $32, %ymm0, %ymm5 - 0xc5, 0xed, 0xf4, 0xed, //0x00003b8e vpmuludq %ymm5, %ymm2, %ymm5 - 0xc5, 0xd5, 0xd4, 0xe4, //0x00003b92 vpaddq %ymm4, %ymm5, %ymm4 - 0xc5, 0xdd, 0x73, 0xf4, 0x20, //0x00003b96 vpsllq $32, %ymm4, %ymm4 - 0xc5, 0xed, 0xf4, 0xc0, //0x00003b9b vpmuludq %ymm0, %ymm2, %ymm0 - 0xc5, 0xfd, 0xd4, 0xc4, //0x00003b9f vpaddq %ymm4, %ymm0, %ymm0 - 0xc5, 0xed, 0x73, 0xd3, 0x20, //0x00003ba3 vpsrlq $32, %ymm3, %ymm2 - 0xc5, 0xed, 0xf4, 0xd0, //0x00003ba8 vpmuludq %ymm0, %ymm2, %ymm2 - 0xc5, 0xdd, 0x73, 0xd0, 0x20, //0x00003bac vpsrlq $32, %ymm0, %ymm4 - 0xc5, 0xe5, 0xf4, 0xe4, //0x00003bb1 vpmuludq %ymm4, %ymm3, %ymm4 - 0xc5, 0xdd, 0xd4, 0xd2, //0x00003bb5 vpaddq %ymm2, %ymm4, %ymm2 - 0xc5, 0xed, 0x73, 0xf2, 0x20, //0x00003bb9 vpsllq $32, %ymm2, %ymm2 - 0xc5, 0xe5, 0xf4, 0xc0, //0x00003bbe vpmuludq %ymm0, %ymm3, %ymm0 - 0xc5, 0xfd, 0xd4, 0xc2, //0x00003bc2 vpaddq %ymm2, %ymm0, %ymm0 - 0xc5, 0xed, 0x73, 0xd1, 0x20, //0x00003bc6 vpsrlq $32, %ymm1, %ymm2 - 0xc5, 0xed, 0xf4, 0xd0, //0x00003bcb vpmuludq %ymm0, %ymm2, %ymm2 - 0xc5, 0xe5, 0x73, 0xd0, 0x20, //0x00003bcf vpsrlq $32, %ymm0, %ymm3 - 0xc5, 0xf5, 0xf4, 0xdb, //0x00003bd4 vpmuludq %ymm3, %ymm1, %ymm3 - 0xc5, 0xe5, 0xd4, 0xd2, //0x00003bd8 vpaddq %ymm2, %ymm3, %ymm2 - 0xc5, 0xed, 0x73, 0xf2, 0x20, //0x00003bdc vpsllq $32, %ymm2, %ymm2 - 0xc5, 0xf5, 0xf4, 0xc0, //0x00003be1 vpmuludq %ymm0, %ymm1, %ymm0 - 0xc5, 0xfd, 0xd4, 0xc2, //0x00003be5 vpaddq %ymm2, %ymm0, %ymm0 - 0xc4, 0xe3, 0x7d, 0x39, 0xc1, 0x01, //0x00003be9 vextracti128 $1, %ymm0, %xmm1 - 0xc5, 0xe9, 0x73, 0xd0, 0x20, //0x00003bef vpsrlq $32, %xmm0, %xmm2 - 0xc5, 0xe9, 0xf4, 0xd1, //0x00003bf4 vpmuludq %xmm1, %xmm2, %xmm2 - 0xc5, 0xe1, 0x73, 0xd1, 0x20, //0x00003bf8 vpsrlq $32, %xmm1, %xmm3 - 0xc5, 0xf9, 0xf4, 0xdb, //0x00003bfd vpmuludq %xmm3, %xmm0, %xmm3 - 0xc5, 0xe1, 0xd4, 0xd2, //0x00003c01 vpaddq %xmm2, %xmm3, %xmm2 - 0xc5, 0xe9, 0x73, 0xf2, 0x20, //0x00003c05 vpsllq $32, %xmm2, %xmm2 - 0xc5, 0xf9, 0xf4, 0xc1, //0x00003c0a vpmuludq %xmm1, %xmm0, %xmm0 - 0xc5, 0xf9, 0xd4, 0xc2, //0x00003c0e vpaddq %xmm2, %xmm0, %xmm0 - 0xc5, 0xf9, 0x70, 0xc8, 0xee, //0x00003c12 vpshufd $238, %xmm0, %xmm1 - 0xc5, 0xe9, 0x73, 0xd0, 0x20, //0x00003c17 vpsrlq $32, %xmm0, %xmm2 - 0xc5, 0xe9, 0xf4, 0xd1, //0x00003c1c vpmuludq %xmm1, %xmm2, %xmm2 - 0xc5, 0xf9, 0x70, 0xd8, 0xff, //0x00003c20 vpshufd $255, %xmm0, %xmm3 - 0xc5, 0xf9, 0xf4, 0xdb, //0x00003c25 vpmuludq %xmm3, %xmm0, %xmm3 - 0xc5, 0xe1, 0xd4, 0xd2, //0x00003c29 vpaddq %xmm2, %xmm3, %xmm2 - 0xc5, 0xe9, 0x73, 0xf2, 0x20, //0x00003c2d vpsllq $32, %xmm2, %xmm2 - 0xc5, 0xf9, 0xf4, 0xc1, //0x00003c32 vpmuludq %xmm1, %xmm0, %xmm0 - 0xc5, 0xf9, 0xd4, 0xc2, //0x00003c36 vpaddq %xmm2, %xmm0, %xmm0 - 0xc4, 0xc1, 0xf9, 0x7e, 0xc4, //0x00003c3a vmovq %xmm0, %r12 - 0x44, 0x39, 0xc2, //0x00003c3f cmpl %r8d, %edx - 0x0f, 0x84, 0x18, 0x00, 0x00, 0x00, //0x00003c42 je LBB13_54 - 0x45, 0x01, 0xc1, //0x00003c48 addl %r8d, %r9d - //0x00003c4b LBB13_52 - 0x89, 0xc2, //0x00003c4b movl %eax, %edx - 0x44, 0x29, 0xca, //0x00003c4d subl %r9d, %edx - //0x00003c50 .p2align 4, 0x90 - //0x00003c50 LBB13_53 - 0x4d, 0x01, 0xe4, //0x00003c50 addq %r12, %r12 - 0x4f, 0x8d, 0x24, 0xa4, //0x00003c53 leaq (%r12,%r12,4), %r12 - 0x83, 0xc2, 0xff, //0x00003c57 addl $-1, %edx - 0x0f, 0x85, 0xf0, 0xff, 0xff, 0xff, //0x00003c5a jne LBB13_53 - //0x00003c60 LBB13_54 - 0x85, 0xc0, //0x00003c60 testl %eax, %eax - 0x0f, 0x88, 0x4a, 0x00, 0x00, 0x00, //0x00003c62 js LBB13_62 - 0x41, 0x8b, 0x4f, 0x10, //0x00003c68 movl $16(%r15), %ecx - 0x39, 0xc1, //0x00003c6c cmpl %eax, %ecx - 0x0f, 0x8e, 0x3e, 0x00, 0x00, 0x00, //0x00003c6e jle LBB13_62 - 0x49, 0x8b, 0x37, //0x00003c74 movq (%r15), %rsi - 0x8a, 0x14, 0x06, //0x00003c77 movb (%rsi,%rax), %dl - 0x80, 0xfa, 0x35, //0x00003c7a cmpb $53, %dl - 0x0f, 0x85, 0xc6, 0x00, 0x00, 0x00, //0x00003c7d jne LBB13_63 - 0x8d, 0x78, 0x01, //0x00003c83 leal $1(%rax), %edi - 0x39, 0xcf, //0x00003c86 cmpl %ecx, %edi - 0x0f, 0x85, 0xbb, 0x00, 0x00, 0x00, //0x00003c88 jne LBB13_63 - 0x41, 0x83, 0x7f, 0x1c, 0x00, //0x00003c8e cmpl $0, $28(%r15) - 0x0f, 0x95, 0xc1, //0x00003c93 setne %cl - 0x0f, 0x85, 0x18, 0x00, 0x00, 0x00, //0x00003c96 jne LBB13_64 - 0x85, 0xc0, //0x00003c9c testl %eax, %eax - 0x0f, 0x8e, 0x10, 0x00, 0x00, 0x00, //0x00003c9e jle LBB13_64 - 0x83, 0xc0, 0xff, //0x00003ca4 addl $-1, %eax - 0x8a, 0x0c, 0x06, //0x00003ca7 movb (%rsi,%rax), %cl - 0x80, 0xe1, 0x01, //0x00003caa andb $1, %cl - 0xe9, 0x02, 0x00, 0x00, 0x00, //0x00003cad jmp LBB13_64 - //0x00003cb2 LBB13_62 - 0x31, 0xc9, //0x00003cb2 xorl %ecx, %ecx - //0x00003cb4 LBB13_64 - 0x0f, 0xb6, 0xc1, //0x00003cb4 movzbl %cl, %eax - 0x49, 0x01, 0xc4, //0x00003cb7 addq %rax, %r12 - 0x48, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, //0x00003cba movabsq $9007199254740992, %rax - 0x49, 0x39, 0xc4, //0x00003cc4 cmpq %rax, %r12 - 0x0f, 0x85, 0x26, 0x00, 0x00, 0x00, //0x00003cc7 jne LBB13_68 - 0x41, 0x81, 0xfe, 0xfe, 0x03, 0x00, 0x00, //0x00003ccd cmpl $1022, %r14d - 0x0f, 0x8e, 0x12, 0x00, 0x00, 0x00, //0x00003cd4 jle LBB13_67 - //0x00003cda LBB13_66 - 0x45, 0x31, 0xe4, //0x00003cda xorl %r12d, %r12d - 0x49, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x7f, //0x00003cdd movabsq $9218868437227405312, %r14 - 0xe9, 0x26, 0x00, 0x00, 0x00, //0x00003ce7 jmp LBB13_69 - //0x00003cec LBB13_67 - 0x41, 0x83, 0xc6, 0x01, //0x00003cec addl $1, %r14d - 0x4d, 0x89, 0xec, //0x00003cf0 movq %r13, %r12 - //0x00003cf3 LBB13_68 - 0x4c, 0x89, 0xe0, //0x00003cf3 movq %r12, %rax - 0x4c, 0x21, 0xe8, //0x00003cf6 andq %r13, %rax - 0x41, 0x81, 0xc6, 0xff, 0x03, 0x00, 0x00, //0x00003cf9 addl $1023, %r14d - 0x41, 0x81, 0xe6, 0xff, 0x07, 0x00, 0x00, //0x00003d00 andl $2047, %r14d - 0x49, 0xc1, 0xe6, 0x34, //0x00003d07 shlq $52, %r14 - 0x48, 0x85, 0xc0, //0x00003d0b testq %rax, %rax - 0x4c, 0x0f, 0x44, 0xf0, //0x00003d0e cmoveq %rax, %r14 - //0x00003d12 LBB13_69 - 0x49, 0x83, 0xc5, 0xff, //0x00003d12 addq $-1, %r13 - 0x4d, 0x21, 0xe5, //0x00003d16 andq %r12, %r13 - 0x4d, 0x09, 0xf5, //0x00003d19 orq %r14, %r13 - 0x48, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x00003d1c movabsq $-9223372036854775808, %rax - 0x4c, 0x09, 0xe8, //0x00003d26 orq %r13, %rax - 0x41, 0x83, 0x7f, 0x18, 0x00, //0x00003d29 cmpl $0, $24(%r15) - 0x49, 0x0f, 0x44, 0xc5, //0x00003d2e cmoveq %r13, %rax - 0x48, 0x89, 0x03, //0x00003d32 movq %rax, (%rbx) - 0x31, 0xc0, //0x00003d35 xorl %eax, %eax - 0x48, 0x83, 0xc4, 0x08, //0x00003d37 addq $8, %rsp - 0x5b, //0x00003d3b popq %rbx - 0x41, 0x5c, //0x00003d3c popq %r12 - 0x41, 0x5d, //0x00003d3e popq %r13 - 0x41, 0x5e, //0x00003d40 popq %r14 - 0x41, 0x5f, //0x00003d42 popq %r15 - 0x5d, //0x00003d44 popq %rbp - 0xc5, 0xf8, 0x77, //0x00003d45 vzeroupper - 0xc3, //0x00003d48 retq - //0x00003d49 LBB13_63 - 0x80, 0xfa, 0x35, //0x00003d49 cmpb $53, %dl - 0x0f, 0x9d, 0xc1, //0x00003d4c setge %cl - 0xe9, 0x60, 0xff, 0xff, 0xff, //0x00003d4f jmp LBB13_64 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003d54 .p2align 4, 0x90 - //0x00003d60 _atof_native - 0x55, //0x00003d60 pushq %rbp - 0x48, 0x89, 0xe5, //0x00003d61 movq %rsp, %rbp - 0x48, 0x83, 0xec, 0x30, //0x00003d64 subq $48, %rsp - 0x48, 0xc7, 0x45, 0xd8, 0x00, 0x00, 0x00, 0x00, //0x00003d68 movq $0, $-40(%rbp) - 0x48, 0x89, 0x55, 0xe0, //0x00003d70 movq %rdx, $-32(%rbp) - 0x48, 0x89, 0x4d, 0xe8, //0x00003d74 movq %rcx, $-24(%rbp) - 0x48, 0x85, 0xc9, //0x00003d78 testq %rcx, %rcx - 0x0f, 0x84, 0x45, 0x00, 0x00, 0x00, //0x00003d7b je LBB14_5 - 0xc6, 0x02, 0x00, //0x00003d81 movb $0, (%rdx) - 0x48, 0x83, 0xf9, 0x01, //0x00003d84 cmpq $1, %rcx - 0x0f, 0x84, 0x38, 0x00, 0x00, 0x00, //0x00003d88 je LBB14_5 - 0xc6, 0x42, 0x01, 0x00, //0x00003d8e movb $0, $1(%rdx) - 0x48, 0x83, 0x7d, 0xe8, 0x03, //0x00003d92 cmpq $3, $-24(%rbp) - 0x0f, 0x82, 0x29, 0x00, 0x00, 0x00, //0x00003d97 jb LBB14_5 - 0xb8, 0x02, 0x00, 0x00, 0x00, //0x00003d9d movl $2, %eax - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003da2 .p2align 4, 0x90 - //0x00003db0 LBB14_4 - 0x48, 0x8b, 0x4d, 0xe0, //0x00003db0 movq $-32(%rbp), %rcx - 0xc6, 0x04, 0x01, 0x00, //0x00003db4 movb $0, (%rcx,%rax) - 0x48, 0x83, 0xc0, 0x01, //0x00003db8 addq $1, %rax - 0x48, 0x39, 0x45, 0xe8, //0x00003dbc cmpq %rax, $-24(%rbp) - 0x0f, 0x87, 0xea, 0xff, 0xff, 0xff, //0x00003dc0 ja LBB14_4 - //0x00003dc6 LBB14_5 - 0xc5, 0xf8, 0x57, 0xc0, //0x00003dc6 vxorps %xmm0, %xmm0, %xmm0 - 0xc5, 0xf8, 0x11, 0x45, 0xf0, //0x00003dca vmovups %xmm0, $-16(%rbp) - 0x31, 0xd2, //0x00003dcf xorl %edx, %edx - 0x80, 0x3f, 0x2d, //0x00003dd1 cmpb $45, (%rdi) - 0x0f, 0x85, 0x1a, 0x00, 0x00, 0x00, //0x00003dd4 jne LBB14_7 - 0xc7, 0x45, 0xf8, 0x01, 0x00, 0x00, 0x00, //0x00003dda movl $1, $-8(%rbp) - 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00003de1 movl $1, %eax - 0x48, 0x39, 0xf0, //0x00003de6 cmpq %rsi, %rax - 0x0f, 0x8c, 0x10, 0x00, 0x00, 0x00, //0x00003de9 jl LBB14_8 - 0xe9, 0xab, 0x01, 0x00, 0x00, //0x00003def jmp LBB14_39 - //0x00003df4 LBB14_7 - 0x31, 0xc0, //0x00003df4 xorl %eax, %eax - 0x48, 0x39, 0xf0, //0x00003df6 cmpq %rsi, %rax - 0x0f, 0x8d, 0xa0, 0x01, 0x00, 0x00, //0x00003df9 jge LBB14_39 - //0x00003dff LBB14_8 - 0x41, 0xb3, 0x01, //0x00003dff movb $1, %r11b - 0x45, 0x31, 0xc9, //0x00003e02 xorl %r9d, %r9d - 0x45, 0x31, 0xd2, //0x00003e05 xorl %r10d, %r10d - 0x45, 0x31, 0xc0, //0x00003e08 xorl %r8d, %r8d - 0xe9, 0x24, 0x00, 0x00, 0x00, //0x00003e0b jmp LBB14_12 - //0x00003e10 LBB14_20 - 0xc7, 0x45, 0xfc, 0x01, 0x00, 0x00, 0x00, //0x00003e10 movl $1, $-4(%rbp) - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003e17 .p2align 4, 0x90 - //0x00003e20 LBB14_11 - 0x48, 0x83, 0xc0, 0x01, //0x00003e20 addq $1, %rax - 0x48, 0x39, 0xf0, //0x00003e24 cmpq %rsi, %rax - 0x41, 0x0f, 0x9c, 0xc3, //0x00003e27 setl %r11b - 0x48, 0x39, 0xc6, //0x00003e2b cmpq %rax, %rsi - 0x0f, 0x84, 0x91, 0x00, 0x00, 0x00, //0x00003e2e je LBB14_22 - //0x00003e34 LBB14_12 - 0x0f, 0xb6, 0x0c, 0x07, //0x00003e34 movzbl (%rdi,%rax), %ecx - 0x8d, 0x51, 0xd0, //0x00003e38 leal $-48(%rcx), %edx - 0x80, 0xfa, 0x09, //0x00003e3b cmpb $9, %dl - 0x0f, 0x87, 0x2c, 0x00, 0x00, 0x00, //0x00003e3e ja LBB14_17 - 0x80, 0xf9, 0x30, //0x00003e44 cmpb $48, %cl - 0x0f, 0x85, 0x43, 0x00, 0x00, 0x00, //0x00003e47 jne LBB14_19 - 0x45, 0x85, 0xd2, //0x00003e4d testl %r10d, %r10d - 0x0f, 0x84, 0x63, 0x00, 0x00, 0x00, //0x00003e50 je LBB14_21 - 0x4d, 0x63, 0xd9, //0x00003e56 movslq %r9d, %r11 - 0x4c, 0x39, 0x5d, 0xe8, //0x00003e59 cmpq %r11, $-24(%rbp) - 0x0f, 0x87, 0x3a, 0x00, 0x00, 0x00, //0x00003e5d ja LBB14_9 - 0xe9, 0x49, 0x00, 0x00, 0x00, //0x00003e63 jmp LBB14_10 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003e68 .p2align 4, 0x90 - //0x00003e70 LBB14_17 - 0x80, 0xf9, 0x2e, //0x00003e70 cmpb $46, %cl - 0x0f, 0x85, 0x4f, 0x00, 0x00, 0x00, //0x00003e73 jne LBB14_23 - 0x44, 0x89, 0x55, 0xf4, //0x00003e79 movl %r10d, $-12(%rbp) - 0x41, 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00003e7d movl $1, %r8d - 0xe9, 0x98, 0xff, 0xff, 0xff, //0x00003e83 jmp LBB14_11 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003e88 .p2align 4, 0x90 - //0x00003e90 LBB14_19 - 0x4d, 0x63, 0xda, //0x00003e90 movslq %r10d, %r11 - 0x4c, 0x39, 0x5d, 0xe8, //0x00003e93 cmpq %r11, $-24(%rbp) - 0x0f, 0x86, 0x73, 0xff, 0xff, 0xff, //0x00003e97 jbe LBB14_20 - //0x00003e9d LBB14_9 - 0x48, 0x8b, 0x55, 0xe0, //0x00003e9d movq $-32(%rbp), %rdx - 0x42, 0x88, 0x0c, 0x1a, //0x00003ea1 movb %cl, (%rdx,%r11) - 0x44, 0x8b, 0x4d, 0xf0, //0x00003ea5 movl $-16(%rbp), %r9d - 0x41, 0x83, 0xc1, 0x01, //0x00003ea9 addl $1, %r9d - 0x44, 0x89, 0x4d, 0xf0, //0x00003ead movl %r9d, $-16(%rbp) - //0x00003eb1 LBB14_10 - 0x45, 0x89, 0xca, //0x00003eb1 movl %r9d, %r10d - 0xe9, 0x67, 0xff, 0xff, 0xff, //0x00003eb4 jmp LBB14_11 - //0x00003eb9 LBB14_21 - 0x83, 0x45, 0xf4, 0xff, //0x00003eb9 addl $-1, $-12(%rbp) - 0x45, 0x31, 0xd2, //0x00003ebd xorl %r10d, %r10d - 0xe9, 0x5b, 0xff, 0xff, 0xff, //0x00003ec0 jmp LBB14_11 - //0x00003ec5 LBB14_22 - 0x48, 0x89, 0xf0, //0x00003ec5 movq %rsi, %rax - //0x00003ec8 LBB14_23 - 0x45, 0x85, 0xc0, //0x00003ec8 testl %r8d, %r8d - 0x0f, 0x84, 0x0f, 0x00, 0x00, 0x00, //0x00003ecb je LBB14_25 - 0x41, 0xf6, 0xc3, 0x01, //0x00003ed1 testb $1, %r11b - 0x0f, 0x85, 0x13, 0x00, 0x00, 0x00, //0x00003ed5 jne LBB14_26 - 0xe9, 0xc2, 0x00, 0x00, 0x00, //0x00003edb jmp LBB14_40 - //0x00003ee0 LBB14_25 - 0x44, 0x89, 0x4d, 0xf4, //0x00003ee0 movl %r9d, $-12(%rbp) - 0x41, 0xf6, 0xc3, 0x01, //0x00003ee4 testb $1, %r11b - 0x0f, 0x84, 0xb4, 0x00, 0x00, 0x00, //0x00003ee8 je LBB14_40 - //0x00003eee LBB14_26 - 0x89, 0xc2, //0x00003eee movl %eax, %edx - 0x8a, 0x0c, 0x17, //0x00003ef0 movb (%rdi,%rdx), %cl - 0x80, 0xc9, 0x20, //0x00003ef3 orb $32, %cl - 0x80, 0xf9, 0x65, //0x00003ef6 cmpb $101, %cl - 0x0f, 0x85, 0xa3, 0x00, 0x00, 0x00, //0x00003ef9 jne LBB14_40 - 0x8a, 0x4c, 0x17, 0x01, //0x00003eff movb $1(%rdi,%rdx), %cl - 0x80, 0xf9, 0x2d, //0x00003f03 cmpb $45, %cl - 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x00003f06 je LBB14_30 - 0x41, 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00003f0c movl $1, %r8d - 0x80, 0xf9, 0x2b, //0x00003f12 cmpb $43, %cl - 0x0f, 0x85, 0x26, 0x00, 0x00, 0x00, //0x00003f15 jne LBB14_32 - 0x83, 0xc0, 0x02, //0x00003f1b addl $2, %eax - 0xe9, 0x09, 0x00, 0x00, 0x00, //0x00003f1e jmp LBB14_31 - //0x00003f23 LBB14_30 - 0x83, 0xc0, 0x02, //0x00003f23 addl $2, %eax - 0x41, 0xb8, 0xff, 0xff, 0xff, 0xff, //0x00003f26 movl $-1, %r8d - //0x00003f2c LBB14_31 - 0x89, 0xc2, //0x00003f2c movl %eax, %edx - 0x48, 0x63, 0xc2, //0x00003f2e movslq %edx, %rax - 0x31, 0xd2, //0x00003f31 xorl %edx, %edx - 0x48, 0x39, 0xf0, //0x00003f33 cmpq %rsi, %rax - 0x0f, 0x8c, 0x17, 0x00, 0x00, 0x00, //0x00003f36 jl LBB14_33 - 0xe9, 0x57, 0x00, 0x00, 0x00, //0x00003f3c jmp LBB14_38 - //0x00003f41 LBB14_32 - 0x48, 0x83, 0xc2, 0x01, //0x00003f41 addq $1, %rdx - 0x48, 0x63, 0xc2, //0x00003f45 movslq %edx, %rax - 0x31, 0xd2, //0x00003f48 xorl %edx, %edx - 0x48, 0x39, 0xf0, //0x00003f4a cmpq %rsi, %rax - 0x0f, 0x8d, 0x45, 0x00, 0x00, 0x00, //0x00003f4d jge LBB14_38 - //0x00003f53 LBB14_33 - 0x31, 0xd2, //0x00003f53 xorl %edx, %edx - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003f55 .p2align 4, 0x90 - //0x00003f60 LBB14_34 - 0x0f, 0xbe, 0x0c, 0x07, //0x00003f60 movsbl (%rdi,%rax), %ecx - 0x83, 0xf9, 0x30, //0x00003f64 cmpl $48, %ecx - 0x0f, 0x8c, 0x2b, 0x00, 0x00, 0x00, //0x00003f67 jl LBB14_38 - 0x80, 0xf9, 0x39, //0x00003f6d cmpb $57, %cl - 0x0f, 0x8f, 0x22, 0x00, 0x00, 0x00, //0x00003f70 jg LBB14_38 - 0x81, 0xfa, 0x0f, 0x27, 0x00, 0x00, //0x00003f76 cmpl $9999, %edx - 0x0f, 0x8f, 0x16, 0x00, 0x00, 0x00, //0x00003f7c jg LBB14_38 - 0x8d, 0x14, 0x92, //0x00003f82 leal (%rdx,%rdx,4), %edx - 0x8d, 0x14, 0x51, //0x00003f85 leal (%rcx,%rdx,2), %edx - 0x83, 0xc2, 0xd0, //0x00003f88 addl $-48, %edx - 0x48, 0x83, 0xc0, 0x01, //0x00003f8b addq $1, %rax - 0x48, 0x39, 0xc6, //0x00003f8f cmpq %rax, %rsi - 0x0f, 0x85, 0xc8, 0xff, 0xff, 0xff, //0x00003f92 jne LBB14_34 - //0x00003f98 LBB14_38 - 0x41, 0x0f, 0xaf, 0xd0, //0x00003f98 imull %r8d, %edx - 0x03, 0x55, 0xf4, //0x00003f9c addl $-12(%rbp), %edx - //0x00003f9f LBB14_39 - 0x89, 0x55, 0xf4, //0x00003f9f movl %edx, $-12(%rbp) - //0x00003fa2 LBB14_40 - 0x48, 0x8d, 0x7d, 0xe0, //0x00003fa2 leaq $-32(%rbp), %rdi - 0x48, 0x8d, 0x75, 0xd8, //0x00003fa6 leaq $-40(%rbp), %rsi - 0xe8, 0xf1, 0xf7, 0xff, 0xff, //0x00003faa callq _decimal_to_f64 - 0xc5, 0xfb, 0x10, 0x45, 0xd8, //0x00003faf vmovsd $-40(%rbp), %xmm0 - 0x48, 0x83, 0xc4, 0x30, //0x00003fb4 addq $48, %rsp - 0x5d, //0x00003fb8 popq %rbp - 0xc3, //0x00003fb9 retq - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003fba .p2align 4, 0x90 - //0x00003fc0 _value - 0x55, //0x00003fc0 pushq %rbp - 0x48, 0x89, 0xe5, //0x00003fc1 movq %rsp, %rbp - 0x41, 0x57, //0x00003fc4 pushq %r15 - 0x41, 0x56, //0x00003fc6 pushq %r14 - 0x41, 0x55, //0x00003fc8 pushq %r13 - 0x41, 0x54, //0x00003fca pushq %r12 - 0x53, //0x00003fcc pushq %rbx - 0x48, 0x83, 0xec, 0x28, //0x00003fcd subq $40, %rsp - 0x4d, 0x89, 0xc7, //0x00003fd1 movq %r8, %r15 - 0x49, 0x89, 0xce, //0x00003fd4 movq %rcx, %r14 - 0x48, 0x89, 0xf3, //0x00003fd7 movq %rsi, %rbx - 0x49, 0x89, 0xfc, //0x00003fda movq %rdi, %r12 - 0x48, 0x89, 0x55, 0xd0, //0x00003fdd movq %rdx, $-48(%rbp) - 0x48, 0x89, 0x7d, 0xb0, //0x00003fe1 movq %rdi, $-80(%rbp) - 0x48, 0x89, 0x75, 0xb8, //0x00003fe5 movq %rsi, $-72(%rbp) - 0x48, 0x8d, 0x55, 0xd0, //0x00003fe9 leaq $-48(%rbp), %rdx - 0xe8, 0xce, 0x05, 0x00, 0x00, //0x00003fed callq _advance_ns - 0x0f, 0xbe, 0xc0, //0x00003ff2 movsbl %al, %eax - 0x83, 0xf8, 0x7d, //0x00003ff5 cmpl $125, %eax - 0x0f, 0x87, 0xbc, 0x00, 0x00, 0x00, //0x00003ff8 ja LBB15_10 - 0x48, 0x8d, 0x0d, 0x9b, 0x03, 0x00, 0x00, //0x00003ffe leaq $923(%rip), %rcx /* LJTI15_0+0(%rip) */ - 0x48, 0x63, 0x04, 0x81, //0x00004005 movslq (%rcx,%rax,4), %rax - 0x48, 0x01, 0xc8, //0x00004009 addq %rcx, %rax - 0xff, 0xe0, //0x0000400c jmpq *%rax - //0x0000400e LBB15_2 - 0x4c, 0x89, 0x75, 0xc8, //0x0000400e movq %r14, $-56(%rbp) - 0x4c, 0x8b, 0x75, 0xd0, //0x00004012 movq $-48(%rbp), %r14 - 0x4d, 0x8d, 0x6e, 0xff, //0x00004016 leaq $-1(%r14), %r13 - 0x4c, 0x89, 0x6d, 0xd0, //0x0000401a movq %r13, $-48(%rbp) - 0x41, 0xf6, 0xc7, 0x02, //0x0000401e testb $2, %r15b - 0x0f, 0x85, 0x1a, 0x00, 0x00, 0x00, //0x00004022 jne LBB15_4 - 0x48, 0x8d, 0x7d, 0xb0, //0x00004028 leaq $-80(%rbp), %rdi - 0x48, 0x8d, 0x75, 0xd0, //0x0000402c leaq $-48(%rbp), %rsi - 0x48, 0x8b, 0x55, 0xc8, //0x00004030 movq $-56(%rbp), %rdx - 0xe8, 0xa7, 0x0c, 0x00, 0x00, //0x00004034 callq _vnumber - 0x4c, 0x8b, 0x7d, 0xd0, //0x00004039 movq $-48(%rbp), %r15 - 0xe9, 0x49, 0x03, 0x00, 0x00, //0x0000403d jmp LBB15_55 - //0x00004042 LBB15_4 - 0x4c, 0x29, 0xeb, //0x00004042 subq %r13, %rbx - 0x31, 0xc0, //0x00004045 xorl %eax, %eax - 0x43, 0x80, 0x3c, 0x2c, 0x2d, //0x00004047 cmpb $45, (%r12,%r13) - 0x4f, 0x8d, 0x3c, 0x2c, //0x0000404c leaq (%r12,%r13), %r15 - 0x0f, 0x94, 0xc0, //0x00004050 sete %al - 0x49, 0x01, 0xc7, //0x00004053 addq %rax, %r15 - 0x48, 0x29, 0xc3, //0x00004056 subq %rax, %rbx - 0x0f, 0x84, 0x02, 0x03, 0x00, 0x00, //0x00004059 je LBB15_51 - 0x41, 0x8a, 0x07, //0x0000405f movb (%r15), %al - 0x04, 0xd0, //0x00004062 addb $-48, %al - 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x00004064 movq $-2, %rcx - 0x3c, 0x09, //0x0000406b cmpb $9, %al - 0x0f, 0x87, 0x07, 0x03, 0x00, 0x00, //0x0000406d ja LBB15_53 - 0x4c, 0x89, 0xff, //0x00004073 movq %r15, %rdi - 0x48, 0x89, 0xde, //0x00004076 movq %rbx, %rsi - 0xe8, 0xb2, 0x1f, 0x00, 0x00, //0x00004079 callq _do_skip_number - 0x48, 0x85, 0xc0, //0x0000407e testq %rax, %rax - 0x0f, 0x88, 0xe6, 0x02, 0x00, 0x00, //0x00004081 js LBB15_52 - 0x49, 0x01, 0xc7, //0x00004087 addq %rax, %r15 - 0x4d, 0x29, 0xe7, //0x0000408a subq %r12, %r15 - 0x4d, 0x85, 0xf6, //0x0000408d testq %r14, %r14 - 0x0f, 0x8e, 0xee, 0x02, 0x00, 0x00, //0x00004090 jle LBB15_54 - 0x48, 0x8b, 0x45, 0xc8, //0x00004096 movq $-56(%rbp), %rax - 0x48, 0xc7, 0x00, 0x08, 0x00, 0x00, 0x00, //0x0000409a movq $8, (%rax) - 0x4c, 0x89, 0x68, 0x18, //0x000040a1 movq %r13, $24(%rax) - 0xe9, 0xe1, 0x02, 0x00, 0x00, //0x000040a5 jmp LBB15_55 - //0x000040aa LBB15_9 - 0x49, 0xc7, 0x06, 0x01, 0x00, 0x00, 0x00, //0x000040aa movq $1, (%r14) - 0x4c, 0x8b, 0x7d, 0xd0, //0x000040b1 movq $-48(%rbp), %r15 - 0xe9, 0xd1, 0x02, 0x00, 0x00, //0x000040b5 jmp LBB15_55 - //0x000040ba LBB15_10 - 0x49, 0xc7, 0x06, 0xfe, 0xff, 0xff, 0xff, //0x000040ba movq $-2, (%r14) - 0x4c, 0x8b, 0x7d, 0xd0, //0x000040c1 movq $-48(%rbp), %r15 - 0x49, 0x83, 0xc7, 0xff, //0x000040c5 addq $-1, %r15 - 0xe9, 0xbd, 0x02, 0x00, 0x00, //0x000040c9 jmp LBB15_55 - //0x000040ce LBB15_11 - 0x48, 0xc7, 0x45, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000040ce movq $-1, $-64(%rbp) - 0x4c, 0x8b, 0x65, 0xd0, //0x000040d6 movq $-48(%rbp), %r12 - 0x48, 0x8d, 0x7d, 0xb0, //0x000040da leaq $-80(%rbp), %rdi - 0x48, 0x8d, 0x55, 0xc0, //0x000040de leaq $-64(%rbp), %rdx - 0x4c, 0x89, 0xe6, //0x000040e2 movq %r12, %rsi - 0x4c, 0x89, 0xf9, //0x000040e5 movq %r15, %rcx - 0xe8, 0xb3, 0x07, 0x00, 0x00, //0x000040e8 callq _advance_string - 0x49, 0x89, 0xc7, //0x000040ed movq %rax, %r15 - 0x48, 0x85, 0xc0, //0x000040f0 testq %rax, %rax - 0x0f, 0x88, 0x6e, 0x01, 0x00, 0x00, //0x000040f3 js LBB15_33 - 0x4c, 0x89, 0x7d, 0xd0, //0x000040f9 movq %r15, $-48(%rbp) - 0x4d, 0x89, 0x66, 0x10, //0x000040fd movq %r12, $16(%r14) - 0x48, 0x8b, 0x45, 0xc0, //0x00004101 movq $-64(%rbp), %rax - 0x4c, 0x39, 0xf8, //0x00004105 cmpq %r15, %rax - 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00004108 movq $-1, %rcx - 0x48, 0x0f, 0x4c, 0xc8, //0x0000410f cmovlq %rax, %rcx - 0x49, 0x89, 0x4e, 0x18, //0x00004113 movq %rcx, $24(%r14) - 0xb8, 0x07, 0x00, 0x00, 0x00, //0x00004117 movl $7, %eax - 0x49, 0x89, 0x06, //0x0000411c movq %rax, (%r14) - 0xe9, 0x67, 0x02, 0x00, 0x00, //0x0000411f jmp LBB15_55 - //0x00004124 LBB15_13 - 0x45, 0x85, 0xff, //0x00004124 testl %r15d, %r15d - 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00004127 movq $-2, %rax - 0xb9, 0x0b, 0x00, 0x00, 0x00, //0x0000412e movl $11, %ecx - 0xe9, 0x15, 0x01, 0x00, 0x00, //0x00004133 jmp LBB15_32 - //0x00004138 LBB15_14 - 0x45, 0x85, 0xff, //0x00004138 testl %r15d, %r15d - 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x0000413b movq $-2, %rax - 0xb9, 0x0a, 0x00, 0x00, 0x00, //0x00004142 movl $10, %ecx - 0xe9, 0x01, 0x01, 0x00, 0x00, //0x00004147 jmp LBB15_32 - //0x0000414c LBB15_15 - 0x49, 0xc7, 0x06, 0x05, 0x00, 0x00, 0x00, //0x0000414c movq $5, (%r14) - 0x4c, 0x8b, 0x7d, 0xd0, //0x00004153 movq $-48(%rbp), %r15 - 0xe9, 0x2f, 0x02, 0x00, 0x00, //0x00004157 jmp LBB15_55 - //0x0000415c LBB15_16 - 0x45, 0x85, 0xff, //0x0000415c testl %r15d, %r15d - 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x0000415f movq $-2, %rax - 0xb9, 0x0c, 0x00, 0x00, 0x00, //0x00004166 movl $12, %ecx - 0xe9, 0xdd, 0x00, 0x00, 0x00, //0x0000416b jmp LBB15_32 - //0x00004170 LBB15_17 - 0x4c, 0x8b, 0x7d, 0xd0, //0x00004170 movq $-48(%rbp), %r15 - 0x48, 0x8d, 0x4b, 0xfc, //0x00004174 leaq $-4(%rbx), %rcx - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00004178 movq $-1, %rax - 0x49, 0x39, 0xcf, //0x0000417f cmpq %rcx, %r15 - 0x0f, 0x87, 0x1c, 0x00, 0x00, 0x00, //0x00004182 ja LBB15_20 - 0x43, 0x8b, 0x0c, 0x3c, //0x00004188 movl (%r12,%r15), %ecx - 0x81, 0xf9, 0x61, 0x6c, 0x73, 0x65, //0x0000418c cmpl $1702063201, %ecx - 0x0f, 0x85, 0xde, 0x00, 0x00, 0x00, //0x00004192 jne LBB15_34 - 0x49, 0x83, 0xc7, 0x04, //0x00004198 addq $4, %r15 - 0xb8, 0x04, 0x00, 0x00, 0x00, //0x0000419c movl $4, %eax - 0x4c, 0x89, 0xfb, //0x000041a1 movq %r15, %rbx - //0x000041a4 LBB15_20 - 0x48, 0x89, 0x5d, 0xd0, //0x000041a4 movq %rbx, $-48(%rbp) - 0x49, 0x89, 0xdf, //0x000041a8 movq %rbx, %r15 - //0x000041ab LBB15_21 - 0x49, 0x89, 0x06, //0x000041ab movq %rax, (%r14) - 0xe9, 0xd8, 0x01, 0x00, 0x00, //0x000041ae jmp LBB15_55 - //0x000041b3 LBB15_22 - 0x4c, 0x8b, 0x7d, 0xd0, //0x000041b3 movq $-48(%rbp), %r15 - 0x48, 0x8d, 0x4b, 0xfd, //0x000041b7 leaq $-3(%rbx), %rcx - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000041bb movq $-1, %rax - 0x49, 0x39, 0xcf, //0x000041c2 cmpq %rcx, %r15 - 0x0f, 0x87, 0x54, 0x00, 0x00, 0x00, //0x000041c5 ja LBB15_26 - 0x43, 0x8b, 0x4c, 0x3c, 0xff, //0x000041cb movl $-1(%r12,%r15), %ecx - 0x81, 0xf9, 0x6e, 0x75, 0x6c, 0x6c, //0x000041d0 cmpl $1819047278, %ecx - 0x0f, 0x85, 0xe0, 0x00, 0x00, 0x00, //0x000041d6 jne LBB15_38 - 0x49, 0x83, 0xc7, 0x03, //0x000041dc addq $3, %r15 - 0xb8, 0x02, 0x00, 0x00, 0x00, //0x000041e0 movl $2, %eax - 0xe9, 0x32, 0x00, 0x00, 0x00, //0x000041e5 jmp LBB15_25 - //0x000041ea LBB15_27 - 0x4c, 0x8b, 0x7d, 0xd0, //0x000041ea movq $-48(%rbp), %r15 - 0x48, 0x8d, 0x4b, 0xfd, //0x000041ee leaq $-3(%rbx), %rcx - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000041f2 movq $-1, %rax - 0x49, 0x39, 0xcf, //0x000041f9 cmpq %rcx, %r15 - 0x0f, 0x87, 0x1d, 0x00, 0x00, 0x00, //0x000041fc ja LBB15_26 - 0x43, 0x8b, 0x4c, 0x3c, 0xff, //0x00004202 movl $-1(%r12,%r15), %ecx - 0x81, 0xf9, 0x74, 0x72, 0x75, 0x65, //0x00004207 cmpl $1702195828, %ecx - 0x0f, 0x85, 0xdd, 0x00, 0x00, 0x00, //0x0000420d jne LBB15_42 - 0x49, 0x83, 0xc7, 0x03, //0x00004213 addq $3, %r15 - 0xb8, 0x03, 0x00, 0x00, 0x00, //0x00004217 movl $3, %eax - //0x0000421c LBB15_25 - 0x4c, 0x89, 0xfb, //0x0000421c movq %r15, %rbx - //0x0000421f LBB15_26 - 0x48, 0x89, 0x5d, 0xd0, //0x0000421f movq %rbx, $-48(%rbp) - 0x49, 0x89, 0xdf, //0x00004223 movq %rbx, %r15 - 0x49, 0x89, 0x06, //0x00004226 movq %rax, (%r14) - 0xe9, 0x5d, 0x01, 0x00, 0x00, //0x00004229 jmp LBB15_55 - //0x0000422e LBB15_30 - 0x49, 0xc7, 0x06, 0x06, 0x00, 0x00, 0x00, //0x0000422e movq $6, (%r14) - 0x4c, 0x8b, 0x7d, 0xd0, //0x00004235 movq $-48(%rbp), %r15 - 0xe9, 0x4d, 0x01, 0x00, 0x00, //0x00004239 jmp LBB15_55 - //0x0000423e LBB15_31 - 0x45, 0x85, 0xff, //0x0000423e testl %r15d, %r15d - 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00004241 movq $-2, %rax - 0xb9, 0x0d, 0x00, 0x00, 0x00, //0x00004248 movl $13, %ecx - //0x0000424d LBB15_32 - 0x48, 0x0f, 0x49, 0xc8, //0x0000424d cmovnsq %rax, %rcx - 0x49, 0x89, 0x0e, //0x00004251 movq %rcx, (%r14) - 0x41, 0xc1, 0xff, 0x1f, //0x00004254 sarl $31, %r15d - 0x41, 0xf7, 0xd7, //0x00004258 notl %r15d - 0x4d, 0x63, 0xff, //0x0000425b movslq %r15d, %r15 - 0x4c, 0x03, 0x7d, 0xd0, //0x0000425e addq $-48(%rbp), %r15 - 0xe9, 0x24, 0x01, 0x00, 0x00, //0x00004262 jmp LBB15_55 - //0x00004267 LBB15_33 - 0x48, 0x89, 0x5d, 0xd0, //0x00004267 movq %rbx, $-48(%rbp) - 0x4d, 0x89, 0x3e, //0x0000426b movq %r15, (%r14) - 0x49, 0x89, 0xdf, //0x0000426e movq %rbx, %r15 - 0xe9, 0x15, 0x01, 0x00, 0x00, //0x00004271 jmp LBB15_55 - //0x00004276 LBB15_34 - 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00004276 movq $-2, %rax - 0x80, 0xf9, 0x61, //0x0000427d cmpb $97, %cl - 0x0f, 0x85, 0x25, 0xff, 0xff, 0xff, //0x00004280 jne LBB15_21 - 0x43, 0x80, 0x7c, 0x3c, 0x01, 0x6c, //0x00004286 cmpb $108, $1(%r12,%r15) - 0x0f, 0x85, 0xaf, 0x00, 0x00, 0x00, //0x0000428c jne LBB15_48 - 0x43, 0x80, 0x7c, 0x3c, 0x02, 0x73, //0x00004292 cmpb $115, $2(%r12,%r15) - 0x0f, 0x85, 0xb3, 0x00, 0x00, 0x00, //0x00004298 jne LBB15_50 - 0x31, 0xc9, //0x0000429e xorl %ecx, %ecx - 0x43, 0x80, 0x7c, 0x27, 0x03, 0x65, //0x000042a0 cmpb $101, $3(%r15,%r12) - 0x0f, 0x94, 0xc1, //0x000042a6 sete %cl - 0x49, 0x01, 0xcf, //0x000042a9 addq %rcx, %r15 - 0x49, 0x83, 0xc7, 0x03, //0x000042ac addq $3, %r15 - 0x4c, 0x89, 0x7d, 0xd0, //0x000042b0 movq %r15, $-48(%rbp) - 0x49, 0x89, 0x06, //0x000042b4 movq %rax, (%r14) - 0xe9, 0xcf, 0x00, 0x00, 0x00, //0x000042b7 jmp LBB15_55 - //0x000042bc LBB15_38 - 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x000042bc movq $-2, %rax - 0x80, 0xf9, 0x6e, //0x000042c3 cmpb $110, %cl - 0x0f, 0x85, 0x69, 0x00, 0x00, 0x00, //0x000042c6 jne LBB15_47 - 0x43, 0x80, 0x3c, 0x3c, 0x75, //0x000042cc cmpb $117, (%r12,%r15) - 0x0f, 0x85, 0x6e, 0x00, 0x00, 0x00, //0x000042d1 jne LBB15_49 - 0x43, 0x80, 0x7c, 0x3c, 0x01, 0x6c, //0x000042d7 cmpb $108, $1(%r12,%r15) - 0x0f, 0x85, 0x5e, 0x00, 0x00, 0x00, //0x000042dd jne LBB15_48 - 0x31, 0xc9, //0x000042e3 xorl %ecx, %ecx - 0x43, 0x80, 0x7c, 0x27, 0x02, 0x6c, //0x000042e5 cmpb $108, $2(%r15,%r12) - 0xe9, 0x2f, 0x00, 0x00, 0x00, //0x000042eb jmp LBB15_46 - //0x000042f0 LBB15_42 - 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x000042f0 movq $-2, %rax - 0x80, 0xf9, 0x74, //0x000042f7 cmpb $116, %cl - 0x0f, 0x85, 0x35, 0x00, 0x00, 0x00, //0x000042fa jne LBB15_47 - 0x43, 0x80, 0x3c, 0x3c, 0x72, //0x00004300 cmpb $114, (%r12,%r15) - 0x0f, 0x85, 0x3a, 0x00, 0x00, 0x00, //0x00004305 jne LBB15_49 - 0x43, 0x80, 0x7c, 0x3c, 0x01, 0x75, //0x0000430b cmpb $117, $1(%r12,%r15) - 0x0f, 0x85, 0x2a, 0x00, 0x00, 0x00, //0x00004311 jne LBB15_48 - 0x31, 0xc9, //0x00004317 xorl %ecx, %ecx - 0x43, 0x80, 0x7c, 0x27, 0x02, 0x65, //0x00004319 cmpb $101, $2(%r15,%r12) - //0x0000431f LBB15_46 - 0x0f, 0x94, 0xc1, //0x0000431f sete %cl - 0x49, 0x01, 0xcf, //0x00004322 addq %rcx, %r15 - 0x49, 0x83, 0xc7, 0x02, //0x00004325 addq $2, %r15 - 0x4c, 0x89, 0x7d, 0xd0, //0x00004329 movq %r15, $-48(%rbp) - 0x49, 0x89, 0x06, //0x0000432d movq %rax, (%r14) - 0xe9, 0x56, 0x00, 0x00, 0x00, //0x00004330 jmp LBB15_55 - //0x00004335 LBB15_47 - 0x49, 0x83, 0xc7, 0xff, //0x00004335 addq $-1, %r15 - 0x49, 0x89, 0x06, //0x00004339 movq %rax, (%r14) - 0xe9, 0x4a, 0x00, 0x00, 0x00, //0x0000433c jmp LBB15_55 - //0x00004341 LBB15_48 - 0x49, 0x83, 0xc7, 0x01, //0x00004341 addq $1, %r15 - //0x00004345 LBB15_49 - 0x4c, 0x89, 0x7d, 0xd0, //0x00004345 movq %r15, $-48(%rbp) - 0x49, 0x89, 0x06, //0x00004349 movq %rax, (%r14) - 0xe9, 0x3a, 0x00, 0x00, 0x00, //0x0000434c jmp LBB15_55 - //0x00004351 LBB15_50 - 0x49, 0x83, 0xc7, 0x02, //0x00004351 addq $2, %r15 - 0x4c, 0x89, 0x7d, 0xd0, //0x00004355 movq %r15, $-48(%rbp) - 0x49, 0x89, 0x06, //0x00004359 movq %rax, (%r14) - 0xe9, 0x2a, 0x00, 0x00, 0x00, //0x0000435c jmp LBB15_55 - //0x00004361 LBB15_51 - 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00004361 movq $-1, %rcx - 0xe9, 0x0d, 0x00, 0x00, 0x00, //0x00004368 jmp LBB15_53 - //0x0000436d LBB15_52 - 0x48, 0xf7, 0xd0, //0x0000436d notq %rax - 0x49, 0x01, 0xc7, //0x00004370 addq %rax, %r15 - 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x00004373 movq $-2, %rcx - //0x0000437a LBB15_53 - 0x4d, 0x29, 0xe7, //0x0000437a subq %r12, %r15 - 0x4c, 0x89, 0x7d, 0xd0, //0x0000437d movq %r15, $-48(%rbp) - 0x49, 0x89, 0xcd, //0x00004381 movq %rcx, %r13 - //0x00004384 LBB15_54 - 0x48, 0x8b, 0x45, 0xc8, //0x00004384 movq $-56(%rbp), %rax - 0x4c, 0x89, 0x28, //0x00004388 movq %r13, (%rax) - //0x0000438b LBB15_55 - 0x4c, 0x89, 0xf8, //0x0000438b movq %r15, %rax - 0x48, 0x83, 0xc4, 0x28, //0x0000438e addq $40, %rsp - 0x5b, //0x00004392 popq %rbx - 0x41, 0x5c, //0x00004393 popq %r12 - 0x41, 0x5d, //0x00004395 popq %r13 - 0x41, 0x5e, //0x00004397 popq %r14 - 0x41, 0x5f, //0x00004399 popq %r15 - 0x5d, //0x0000439b popq %rbp - 0xc3, //0x0000439c retq - 0x90, 0x90, 0x90, //0x0000439d .p2align 2, 0x90 - // // .set L15_0_set_9, LBB15_9-LJTI15_0 - // // .set L15_0_set_10, LBB15_10-LJTI15_0 - // // .set L15_0_set_11, LBB15_11-LJTI15_0 - // // .set L15_0_set_13, LBB15_13-LJTI15_0 - // // .set L15_0_set_2, LBB15_2-LJTI15_0 - // // .set L15_0_set_14, LBB15_14-LJTI15_0 - // // .set L15_0_set_15, LBB15_15-LJTI15_0 - // // .set L15_0_set_16, LBB15_16-LJTI15_0 - // // .set L15_0_set_17, LBB15_17-LJTI15_0 - // // .set L15_0_set_22, LBB15_22-LJTI15_0 - // // .set L15_0_set_27, LBB15_27-LJTI15_0 - // // .set L15_0_set_30, LBB15_30-LJTI15_0 - // // .set L15_0_set_31, LBB15_31-LJTI15_0 - //0x000043a0 LJTI15_0 - 0x0a, 0xfd, 0xff, 0xff, //0x000043a0 .long L15_0_set_9 - 0x1a, 0xfd, 0xff, 0xff, //0x000043a4 .long L15_0_set_10 - 0x1a, 0xfd, 0xff, 0xff, //0x000043a8 .long L15_0_set_10 - 0x1a, 0xfd, 0xff, 0xff, //0x000043ac .long L15_0_set_10 - 0x1a, 0xfd, 0xff, 0xff, //0x000043b0 .long L15_0_set_10 - 0x1a, 0xfd, 0xff, 0xff, //0x000043b4 .long L15_0_set_10 - 0x1a, 0xfd, 0xff, 0xff, //0x000043b8 .long L15_0_set_10 - 0x1a, 0xfd, 0xff, 0xff, //0x000043bc .long L15_0_set_10 - 0x1a, 0xfd, 0xff, 0xff, //0x000043c0 .long L15_0_set_10 - 0x1a, 0xfd, 0xff, 0xff, //0x000043c4 .long L15_0_set_10 - 0x1a, 0xfd, 0xff, 0xff, //0x000043c8 .long L15_0_set_10 - 0x1a, 0xfd, 0xff, 0xff, //0x000043cc .long L15_0_set_10 - 0x1a, 0xfd, 0xff, 0xff, //0x000043d0 .long L15_0_set_10 - 0x1a, 0xfd, 0xff, 0xff, //0x000043d4 .long L15_0_set_10 - 0x1a, 0xfd, 0xff, 0xff, //0x000043d8 .long L15_0_set_10 - 0x1a, 0xfd, 0xff, 0xff, //0x000043dc .long L15_0_set_10 - 0x1a, 0xfd, 0xff, 0xff, //0x000043e0 .long L15_0_set_10 - 0x1a, 0xfd, 0xff, 0xff, //0x000043e4 .long L15_0_set_10 - 0x1a, 0xfd, 0xff, 0xff, //0x000043e8 .long L15_0_set_10 - 0x1a, 0xfd, 0xff, 0xff, //0x000043ec .long L15_0_set_10 - 0x1a, 0xfd, 0xff, 0xff, //0x000043f0 .long L15_0_set_10 - 0x1a, 0xfd, 0xff, 0xff, //0x000043f4 .long L15_0_set_10 - 0x1a, 0xfd, 0xff, 0xff, //0x000043f8 .long L15_0_set_10 - 0x1a, 0xfd, 0xff, 0xff, //0x000043fc .long L15_0_set_10 - 0x1a, 0xfd, 0xff, 0xff, //0x00004400 .long L15_0_set_10 - 0x1a, 0xfd, 0xff, 0xff, //0x00004404 .long L15_0_set_10 - 0x1a, 0xfd, 0xff, 0xff, //0x00004408 .long L15_0_set_10 - 0x1a, 0xfd, 0xff, 0xff, //0x0000440c .long L15_0_set_10 - 0x1a, 0xfd, 0xff, 0xff, //0x00004410 .long L15_0_set_10 - 0x1a, 0xfd, 0xff, 0xff, //0x00004414 .long L15_0_set_10 - 0x1a, 0xfd, 0xff, 0xff, //0x00004418 .long L15_0_set_10 - 0x1a, 0xfd, 0xff, 0xff, //0x0000441c .long L15_0_set_10 - 0x1a, 0xfd, 0xff, 0xff, //0x00004420 .long L15_0_set_10 - 0x1a, 0xfd, 0xff, 0xff, //0x00004424 .long L15_0_set_10 - 0x2e, 0xfd, 0xff, 0xff, //0x00004428 .long L15_0_set_11 - 0x1a, 0xfd, 0xff, 0xff, //0x0000442c .long L15_0_set_10 - 0x1a, 0xfd, 0xff, 0xff, //0x00004430 .long L15_0_set_10 - 0x1a, 0xfd, 0xff, 0xff, //0x00004434 .long L15_0_set_10 - 0x1a, 0xfd, 0xff, 0xff, //0x00004438 .long L15_0_set_10 - 0x1a, 0xfd, 0xff, 0xff, //0x0000443c .long L15_0_set_10 - 0x1a, 0xfd, 0xff, 0xff, //0x00004440 .long L15_0_set_10 - 0x1a, 0xfd, 0xff, 0xff, //0x00004444 .long L15_0_set_10 - 0x1a, 0xfd, 0xff, 0xff, //0x00004448 .long L15_0_set_10 - 0x1a, 0xfd, 0xff, 0xff, //0x0000444c .long L15_0_set_10 - 0x84, 0xfd, 0xff, 0xff, //0x00004450 .long L15_0_set_13 - 0x6e, 0xfc, 0xff, 0xff, //0x00004454 .long L15_0_set_2 - 0x1a, 0xfd, 0xff, 0xff, //0x00004458 .long L15_0_set_10 - 0x1a, 0xfd, 0xff, 0xff, //0x0000445c .long L15_0_set_10 - 0x6e, 0xfc, 0xff, 0xff, //0x00004460 .long L15_0_set_2 - 0x6e, 0xfc, 0xff, 0xff, //0x00004464 .long L15_0_set_2 - 0x6e, 0xfc, 0xff, 0xff, //0x00004468 .long L15_0_set_2 - 0x6e, 0xfc, 0xff, 0xff, //0x0000446c .long L15_0_set_2 - 0x6e, 0xfc, 0xff, 0xff, //0x00004470 .long L15_0_set_2 - 0x6e, 0xfc, 0xff, 0xff, //0x00004474 .long L15_0_set_2 - 0x6e, 0xfc, 0xff, 0xff, //0x00004478 .long L15_0_set_2 - 0x6e, 0xfc, 0xff, 0xff, //0x0000447c .long L15_0_set_2 - 0x6e, 0xfc, 0xff, 0xff, //0x00004480 .long L15_0_set_2 - 0x6e, 0xfc, 0xff, 0xff, //0x00004484 .long L15_0_set_2 - 0x98, 0xfd, 0xff, 0xff, //0x00004488 .long L15_0_set_14 - 0x1a, 0xfd, 0xff, 0xff, //0x0000448c .long L15_0_set_10 - 0x1a, 0xfd, 0xff, 0xff, //0x00004490 .long L15_0_set_10 - 0x1a, 0xfd, 0xff, 0xff, //0x00004494 .long L15_0_set_10 - 0x1a, 0xfd, 0xff, 0xff, //0x00004498 .long L15_0_set_10 - 0x1a, 0xfd, 0xff, 0xff, //0x0000449c .long L15_0_set_10 - 0x1a, 0xfd, 0xff, 0xff, //0x000044a0 .long L15_0_set_10 - 0x1a, 0xfd, 0xff, 0xff, //0x000044a4 .long L15_0_set_10 - 0x1a, 0xfd, 0xff, 0xff, //0x000044a8 .long L15_0_set_10 - 0x1a, 0xfd, 0xff, 0xff, //0x000044ac .long L15_0_set_10 - 0x1a, 0xfd, 0xff, 0xff, //0x000044b0 .long L15_0_set_10 - 0x1a, 0xfd, 0xff, 0xff, //0x000044b4 .long L15_0_set_10 - 0x1a, 0xfd, 0xff, 0xff, //0x000044b8 .long L15_0_set_10 - 0x1a, 0xfd, 0xff, 0xff, //0x000044bc .long L15_0_set_10 - 0x1a, 0xfd, 0xff, 0xff, //0x000044c0 .long L15_0_set_10 - 0x1a, 0xfd, 0xff, 0xff, //0x000044c4 .long L15_0_set_10 - 0x1a, 0xfd, 0xff, 0xff, //0x000044c8 .long L15_0_set_10 - 0x1a, 0xfd, 0xff, 0xff, //0x000044cc .long L15_0_set_10 - 0x1a, 0xfd, 0xff, 0xff, //0x000044d0 .long L15_0_set_10 - 0x1a, 0xfd, 0xff, 0xff, //0x000044d4 .long L15_0_set_10 - 0x1a, 0xfd, 0xff, 0xff, //0x000044d8 .long L15_0_set_10 - 0x1a, 0xfd, 0xff, 0xff, //0x000044dc .long L15_0_set_10 - 0x1a, 0xfd, 0xff, 0xff, //0x000044e0 .long L15_0_set_10 - 0x1a, 0xfd, 0xff, 0xff, //0x000044e4 .long L15_0_set_10 - 0x1a, 0xfd, 0xff, 0xff, //0x000044e8 .long L15_0_set_10 - 0x1a, 0xfd, 0xff, 0xff, //0x000044ec .long L15_0_set_10 - 0x1a, 0xfd, 0xff, 0xff, //0x000044f0 .long L15_0_set_10 - 0x1a, 0xfd, 0xff, 0xff, //0x000044f4 .long L15_0_set_10 - 0x1a, 0xfd, 0xff, 0xff, //0x000044f8 .long L15_0_set_10 - 0x1a, 0xfd, 0xff, 0xff, //0x000044fc .long L15_0_set_10 - 0x1a, 0xfd, 0xff, 0xff, //0x00004500 .long L15_0_set_10 - 0x1a, 0xfd, 0xff, 0xff, //0x00004504 .long L15_0_set_10 - 0x1a, 0xfd, 0xff, 0xff, //0x00004508 .long L15_0_set_10 - 0xac, 0xfd, 0xff, 0xff, //0x0000450c .long L15_0_set_15 - 0x1a, 0xfd, 0xff, 0xff, //0x00004510 .long L15_0_set_10 - 0xbc, 0xfd, 0xff, 0xff, //0x00004514 .long L15_0_set_16 - 0x1a, 0xfd, 0xff, 0xff, //0x00004518 .long L15_0_set_10 - 0x1a, 0xfd, 0xff, 0xff, //0x0000451c .long L15_0_set_10 - 0x1a, 0xfd, 0xff, 0xff, //0x00004520 .long L15_0_set_10 - 0x1a, 0xfd, 0xff, 0xff, //0x00004524 .long L15_0_set_10 - 0x1a, 0xfd, 0xff, 0xff, //0x00004528 .long L15_0_set_10 - 0x1a, 0xfd, 0xff, 0xff, //0x0000452c .long L15_0_set_10 - 0x1a, 0xfd, 0xff, 0xff, //0x00004530 .long L15_0_set_10 - 0x1a, 0xfd, 0xff, 0xff, //0x00004534 .long L15_0_set_10 - 0xd0, 0xfd, 0xff, 0xff, //0x00004538 .long L15_0_set_17 - 0x1a, 0xfd, 0xff, 0xff, //0x0000453c .long L15_0_set_10 - 0x1a, 0xfd, 0xff, 0xff, //0x00004540 .long L15_0_set_10 - 0x1a, 0xfd, 0xff, 0xff, //0x00004544 .long L15_0_set_10 - 0x1a, 0xfd, 0xff, 0xff, //0x00004548 .long L15_0_set_10 - 0x1a, 0xfd, 0xff, 0xff, //0x0000454c .long L15_0_set_10 - 0x1a, 0xfd, 0xff, 0xff, //0x00004550 .long L15_0_set_10 - 0x1a, 0xfd, 0xff, 0xff, //0x00004554 .long L15_0_set_10 - 0x13, 0xfe, 0xff, 0xff, //0x00004558 .long L15_0_set_22 - 0x1a, 0xfd, 0xff, 0xff, //0x0000455c .long L15_0_set_10 - 0x1a, 0xfd, 0xff, 0xff, //0x00004560 .long L15_0_set_10 - 0x1a, 0xfd, 0xff, 0xff, //0x00004564 .long L15_0_set_10 - 0x1a, 0xfd, 0xff, 0xff, //0x00004568 .long L15_0_set_10 - 0x1a, 0xfd, 0xff, 0xff, //0x0000456c .long L15_0_set_10 - 0x4a, 0xfe, 0xff, 0xff, //0x00004570 .long L15_0_set_27 - 0x1a, 0xfd, 0xff, 0xff, //0x00004574 .long L15_0_set_10 - 0x1a, 0xfd, 0xff, 0xff, //0x00004578 .long L15_0_set_10 - 0x1a, 0xfd, 0xff, 0xff, //0x0000457c .long L15_0_set_10 - 0x1a, 0xfd, 0xff, 0xff, //0x00004580 .long L15_0_set_10 - 0x1a, 0xfd, 0xff, 0xff, //0x00004584 .long L15_0_set_10 - 0x1a, 0xfd, 0xff, 0xff, //0x00004588 .long L15_0_set_10 - 0x8e, 0xfe, 0xff, 0xff, //0x0000458c .long L15_0_set_30 - 0x1a, 0xfd, 0xff, 0xff, //0x00004590 .long L15_0_set_10 - 0x9e, 0xfe, 0xff, 0xff, //0x00004594 .long L15_0_set_31 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004598 .p2align 5, 0x00 - //0x000045a0 LCPI16_0 - 0x20, //0x000045a0 .byte 32 - 0x00, //0x000045a1 .byte 0 - 0x00, //0x000045a2 .byte 0 - 0x00, //0x000045a3 .byte 0 - 0x00, //0x000045a4 .byte 0 - 0x00, //0x000045a5 .byte 0 - 0x00, //0x000045a6 .byte 0 - 0x00, //0x000045a7 .byte 0 - 0x00, //0x000045a8 .byte 0 - 0x09, //0x000045a9 .byte 9 - 0x0a, //0x000045aa .byte 10 - 0x00, //0x000045ab .byte 0 - 0x00, //0x000045ac .byte 0 - 0x0d, //0x000045ad .byte 13 - 0x00, //0x000045ae .byte 0 - 0x00, //0x000045af .byte 0 - 0x20, //0x000045b0 .byte 32 - 0x00, //0x000045b1 .byte 0 - 0x00, //0x000045b2 .byte 0 - 0x00, //0x000045b3 .byte 0 - 0x00, //0x000045b4 .byte 0 - 0x00, //0x000045b5 .byte 0 - 0x00, //0x000045b6 .byte 0 - 0x00, //0x000045b7 .byte 0 - 0x00, //0x000045b8 .byte 0 - 0x09, //0x000045b9 .byte 9 - 0x0a, //0x000045ba .byte 10 - 0x00, //0x000045bb .byte 0 - 0x00, //0x000045bc .byte 0 - 0x0d, //0x000045bd .byte 13 - 0x00, //0x000045be .byte 0 - 0x00, //0x000045bf .byte 0 - //0x000045c0 .p2align 4, 0x90 - //0x000045c0 _advance_ns - 0x55, //0x000045c0 pushq %rbp - 0x48, 0x89, 0xe5, //0x000045c1 movq %rsp, %rbp - 0x4c, 0x8b, 0x02, //0x000045c4 movq (%rdx), %r8 - 0x49, 0x39, 0xf0, //0x000045c7 cmpq %rsi, %r8 - 0x0f, 0x83, 0x26, 0x00, 0x00, 0x00, //0x000045ca jae LBB16_6 - 0x42, 0x8a, 0x04, 0x07, //0x000045d0 movb (%rdi,%r8), %al - 0x3c, 0x0d, //0x000045d4 cmpb $13, %al - 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x000045d6 je LBB16_6 - 0x3c, 0x20, //0x000045dc cmpb $32, %al - 0x0f, 0x84, 0x12, 0x00, 0x00, 0x00, //0x000045de je LBB16_6 - 0x04, 0xf7, //0x000045e4 addb $-9, %al - 0x3c, 0x01, //0x000045e6 cmpb $1, %al - 0x0f, 0x86, 0x08, 0x00, 0x00, 0x00, //0x000045e8 jbe LBB16_6 - 0x4d, 0x89, 0xc3, //0x000045ee movq %r8, %r11 - 0xe9, 0x76, 0x01, 0x00, 0x00, //0x000045f1 jmp LBB16_5 - //0x000045f6 LBB16_6 - 0x4d, 0x8d, 0x58, 0x01, //0x000045f6 leaq $1(%r8), %r11 - 0x49, 0x39, 0xf3, //0x000045fa cmpq %rsi, %r11 - 0x0f, 0x83, 0x22, 0x00, 0x00, 0x00, //0x000045fd jae LBB16_10 - 0x42, 0x8a, 0x0c, 0x1f, //0x00004603 movb (%rdi,%r11), %cl - 0x80, 0xf9, 0x0d, //0x00004607 cmpb $13, %cl - 0x0f, 0x84, 0x15, 0x00, 0x00, 0x00, //0x0000460a je LBB16_10 - 0x80, 0xf9, 0x20, //0x00004610 cmpb $32, %cl - 0x0f, 0x84, 0x0c, 0x00, 0x00, 0x00, //0x00004613 je LBB16_10 - 0x80, 0xc1, 0xf7, //0x00004619 addb $-9, %cl - 0x80, 0xf9, 0x01, //0x0000461c cmpb $1, %cl - 0x0f, 0x87, 0x47, 0x01, 0x00, 0x00, //0x0000461f ja LBB16_5 - //0x00004625 LBB16_10 - 0x4d, 0x8d, 0x58, 0x02, //0x00004625 leaq $2(%r8), %r11 - 0x49, 0x39, 0xf3, //0x00004629 cmpq %rsi, %r11 - 0x0f, 0x83, 0x22, 0x00, 0x00, 0x00, //0x0000462c jae LBB16_14 - 0x42, 0x8a, 0x0c, 0x1f, //0x00004632 movb (%rdi,%r11), %cl - 0x80, 0xf9, 0x0d, //0x00004636 cmpb $13, %cl - 0x0f, 0x84, 0x15, 0x00, 0x00, 0x00, //0x00004639 je LBB16_14 - 0x80, 0xf9, 0x20, //0x0000463f cmpb $32, %cl - 0x0f, 0x84, 0x0c, 0x00, 0x00, 0x00, //0x00004642 je LBB16_14 - 0x80, 0xc1, 0xf7, //0x00004648 addb $-9, %cl - 0x80, 0xf9, 0x01, //0x0000464b cmpb $1, %cl - 0x0f, 0x87, 0x18, 0x01, 0x00, 0x00, //0x0000464e ja LBB16_5 - //0x00004654 LBB16_14 - 0x4d, 0x8d, 0x58, 0x03, //0x00004654 leaq $3(%r8), %r11 - 0x49, 0x39, 0xf3, //0x00004658 cmpq %rsi, %r11 - 0x0f, 0x83, 0x22, 0x00, 0x00, 0x00, //0x0000465b jae LBB16_18 - 0x42, 0x8a, 0x0c, 0x1f, //0x00004661 movb (%rdi,%r11), %cl - 0x80, 0xf9, 0x0d, //0x00004665 cmpb $13, %cl - 0x0f, 0x84, 0x15, 0x00, 0x00, 0x00, //0x00004668 je LBB16_18 - 0x80, 0xf9, 0x20, //0x0000466e cmpb $32, %cl - 0x0f, 0x84, 0x0c, 0x00, 0x00, 0x00, //0x00004671 je LBB16_18 - 0x80, 0xc1, 0xf7, //0x00004677 addb $-9, %cl - 0x80, 0xf9, 0x01, //0x0000467a cmpb $1, %cl - 0x0f, 0x87, 0xe9, 0x00, 0x00, 0x00, //0x0000467d ja LBB16_5 - //0x00004683 LBB16_18 - 0x4d, 0x8d, 0x58, 0x04, //0x00004683 leaq $4(%r8), %r11 - 0x49, 0x39, 0xf3, //0x00004687 cmpq %rsi, %r11 - 0x0f, 0x83, 0xc2, 0x00, 0x00, 0x00, //0x0000468a jae LBB16_19 - 0x48, 0x89, 0xf1, //0x00004690 movq %rsi, %rcx - 0x4c, 0x29, 0xd9, //0x00004693 subq %r11, %rcx - 0x48, 0x83, 0xf9, 0x20, //0x00004696 cmpq $32, %rcx - 0x0f, 0x82, 0xf8, 0x00, 0x00, 0x00, //0x0000469a jb LBB16_21 - 0x48, 0xc7, 0xc1, 0xfc, 0xff, 0xff, 0xff, //0x000046a0 movq $-4, %rcx - 0x4c, 0x29, 0xc1, //0x000046a7 subq %r8, %rcx - 0xc5, 0xfd, 0x6f, 0x05, 0xee, 0xfe, 0xff, 0xff, //0x000046aa vmovdqa $-274(%rip), %ymm0 /* LCPI16_0+0(%rip) */ - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000046b2 .p2align 4, 0x90 - //0x000046c0 LBB16_30 - 0xc4, 0xa1, 0x7e, 0x6f, 0x0c, 0x1f, //0x000046c0 vmovdqu (%rdi,%r11), %ymm1 - 0xc4, 0xe2, 0x7d, 0x00, 0xd1, //0x000046c6 vpshufb %ymm1, %ymm0, %ymm2 - 0xc5, 0xf5, 0x74, 0xca, //0x000046cb vpcmpeqb %ymm2, %ymm1, %ymm1 - 0xc5, 0xfd, 0xd7, 0xc1, //0x000046cf vpmovmskb %ymm1, %eax - 0x83, 0xf8, 0xff, //0x000046d3 cmpl $-1, %eax - 0x0f, 0x85, 0x7e, 0x00, 0x00, 0x00, //0x000046d6 jne LBB16_31 - 0x49, 0x83, 0xc3, 0x20, //0x000046dc addq $32, %r11 - 0x48, 0x8d, 0x04, 0x0e, //0x000046e0 leaq (%rsi,%rcx), %rax - 0x48, 0x83, 0xc0, 0xe0, //0x000046e4 addq $-32, %rax - 0x48, 0x83, 0xc1, 0xe0, //0x000046e8 addq $-32, %rcx - 0x48, 0x83, 0xf8, 0x1f, //0x000046ec cmpq $31, %rax - 0x0f, 0x87, 0xca, 0xff, 0xff, 0xff, //0x000046f0 ja LBB16_30 - 0x49, 0x89, 0xfb, //0x000046f6 movq %rdi, %r11 - 0x49, 0x29, 0xcb, //0x000046f9 subq %rcx, %r11 - 0x48, 0x01, 0xf1, //0x000046fc addq %rsi, %rcx - 0x48, 0x85, 0xc9, //0x000046ff testq %rcx, %rcx - 0x0f, 0x84, 0x39, 0x00, 0x00, 0x00, //0x00004702 je LBB16_34 - //0x00004708 LBB16_25 - 0x4d, 0x8d, 0x0c, 0x0b, //0x00004708 leaq (%r11,%rcx), %r9 - 0x45, 0x31, 0xc0, //0x0000470c xorl %r8d, %r8d - 0x49, 0xba, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x0000470f movabsq $4294977024, %r10 - //0x00004719 LBB16_26 - 0x43, 0x0f, 0xbe, 0x04, 0x03, //0x00004719 movsbl (%r11,%r8), %eax - 0x83, 0xf8, 0x20, //0x0000471e cmpl $32, %eax - 0x0f, 0x87, 0x58, 0x00, 0x00, 0x00, //0x00004721 ja LBB16_28 - 0x49, 0x0f, 0xa3, 0xc2, //0x00004727 btq %rax, %r10 - 0x0f, 0x83, 0x4e, 0x00, 0x00, 0x00, //0x0000472b jae LBB16_28 - 0x49, 0x83, 0xc0, 0x01, //0x00004731 addq $1, %r8 - 0x4c, 0x39, 0xc1, //0x00004735 cmpq %r8, %rcx - 0x0f, 0x85, 0xdb, 0xff, 0xff, 0xff, //0x00004738 jne LBB16_26 - 0x4d, 0x89, 0xcb, //0x0000473e movq %r9, %r11 - //0x00004741 LBB16_34 - 0x49, 0x29, 0xfb, //0x00004741 subq %rdi, %r11 - 0x49, 0x39, 0xf3, //0x00004744 cmpq %rsi, %r11 - 0x0f, 0x82, 0x1f, 0x00, 0x00, 0x00, //0x00004747 jb LBB16_5 - 0xe9, 0x3c, 0x00, 0x00, 0x00, //0x0000474d jmp LBB16_36 - //0x00004752 LBB16_19 - 0x4c, 0x89, 0x1a, //0x00004752 movq %r11, (%rdx) - 0xe9, 0x34, 0x00, 0x00, 0x00, //0x00004755 jmp LBB16_36 - //0x0000475a LBB16_31 - 0xf7, 0xd0, //0x0000475a notl %eax - 0x44, 0x0f, 0xbc, 0xd8, //0x0000475c bsfl %eax, %r11d - 0x49, 0x29, 0xcb, //0x00004760 subq %rcx, %r11 - 0x49, 0x39, 0xf3, //0x00004763 cmpq %rsi, %r11 - 0x0f, 0x83, 0x22, 0x00, 0x00, 0x00, //0x00004766 jae LBB16_36 - //0x0000476c LBB16_5 - 0x49, 0x8d, 0x43, 0x01, //0x0000476c leaq $1(%r11), %rax - 0x48, 0x89, 0x02, //0x00004770 movq %rax, (%rdx) - 0x42, 0x8a, 0x04, 0x1f, //0x00004773 movb (%rdi,%r11), %al - 0x0f, 0xbe, 0xc0, //0x00004777 movsbl %al, %eax - 0x5d, //0x0000477a popq %rbp - 0xc5, 0xf8, 0x77, //0x0000477b vzeroupper - 0xc3, //0x0000477e retq - //0x0000477f LBB16_28 - 0x49, 0x29, 0xfb, //0x0000477f subq %rdi, %r11 - 0x4d, 0x01, 0xc3, //0x00004782 addq %r8, %r11 - 0x49, 0x39, 0xf3, //0x00004785 cmpq %rsi, %r11 - 0x0f, 0x82, 0xde, 0xff, 0xff, 0xff, //0x00004788 jb LBB16_5 - //0x0000478e LBB16_36 - 0x31, 0xc0, //0x0000478e xorl %eax, %eax - 0x0f, 0xbe, 0xc0, //0x00004790 movsbl %al, %eax - 0x5d, //0x00004793 popq %rbp - 0xc5, 0xf8, 0x77, //0x00004794 vzeroupper - 0xc3, //0x00004797 retq - //0x00004798 LBB16_21 - 0x49, 0x01, 0xfb, //0x00004798 addq %rdi, %r11 - 0x48, 0x85, 0xc9, //0x0000479b testq %rcx, %rcx - 0x0f, 0x85, 0x64, 0xff, 0xff, 0xff, //0x0000479e jne LBB16_25 - 0xe9, 0x98, 0xff, 0xff, 0xff, //0x000047a4 jmp LBB16_34 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000047a9 .p2align 4, 0x90 - //0x000047b0 _vstring - 0x55, //0x000047b0 pushq %rbp - 0x48, 0x89, 0xe5, //0x000047b1 movq %rsp, %rbp - 0x41, 0x57, //0x000047b4 pushq %r15 - 0x41, 0x56, //0x000047b6 pushq %r14 - 0x41, 0x54, //0x000047b8 pushq %r12 - 0x53, //0x000047ba pushq %rbx - 0x48, 0x83, 0xec, 0x10, //0x000047bb subq $16, %rsp - 0x49, 0x89, 0xd6, //0x000047bf movq %rdx, %r14 - 0x48, 0x89, 0xf3, //0x000047c2 movq %rsi, %rbx - 0x49, 0x89, 0xff, //0x000047c5 movq %rdi, %r15 - 0x48, 0xc7, 0x45, 0xd8, 0xff, 0xff, 0xff, 0xff, //0x000047c8 movq $-1, $-40(%rbp) - 0x4c, 0x8b, 0x26, //0x000047d0 movq (%rsi), %r12 - 0x48, 0x8d, 0x55, 0xd8, //0x000047d3 leaq $-40(%rbp), %rdx - 0x4c, 0x89, 0xe6, //0x000047d7 movq %r12, %rsi - 0xe8, 0xc1, 0x00, 0x00, 0x00, //0x000047da callq _advance_string - 0x48, 0x85, 0xc0, //0x000047df testq %rax, %rax - 0x0f, 0x88, 0x27, 0x00, 0x00, 0x00, //0x000047e2 js LBB17_1 - 0x48, 0x89, 0x03, //0x000047e8 movq %rax, (%rbx) - 0x4d, 0x89, 0x66, 0x10, //0x000047eb movq %r12, $16(%r14) - 0x48, 0x8b, 0x4d, 0xd8, //0x000047ef movq $-40(%rbp), %rcx - 0x48, 0x39, 0xc1, //0x000047f3 cmpq %rax, %rcx - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000047f6 movq $-1, %rax - 0x48, 0x0f, 0x4c, 0xc1, //0x000047fd cmovlq %rcx, %rax - 0x49, 0x89, 0x46, 0x18, //0x00004801 movq %rax, $24(%r14) - 0xb8, 0x07, 0x00, 0x00, 0x00, //0x00004805 movl $7, %eax - 0xe9, 0x07, 0x00, 0x00, 0x00, //0x0000480a jmp LBB17_3 - //0x0000480f LBB17_1 - 0x49, 0x8b, 0x4f, 0x08, //0x0000480f movq $8(%r15), %rcx - 0x48, 0x89, 0x0b, //0x00004813 movq %rcx, (%rbx) - //0x00004816 LBB17_3 - 0x49, 0x89, 0x06, //0x00004816 movq %rax, (%r14) - 0x48, 0x83, 0xc4, 0x10, //0x00004819 addq $16, %rsp - 0x5b, //0x0000481d popq %rbx - 0x41, 0x5c, //0x0000481e popq %r12 - 0x41, 0x5e, //0x00004820 popq %r14 - 0x41, 0x5f, //0x00004822 popq %r15 - 0x5d, //0x00004824 popq %rbp - 0xc3, //0x00004825 retq - 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, //0x00004826 .p2align 5, 0x00 - //0x00004840 LCPI18_0 - 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, //0x00004840 QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' - 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, //0x00004850 QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' - //0x00004860 LCPI18_1 - 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x00004860 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' - 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x00004870 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' - //0x00004880 LCPI18_2 - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x00004880 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x00004890 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' - //0x000048a0 .p2align 4, 0x90 - //0x000048a0 _advance_string - 0xf6, 0xc1, 0x20, //0x000048a0 testb $32, %cl - 0x0f, 0x85, 0x05, 0x00, 0x00, 0x00, //0x000048a3 jne LBB18_2 - 0xe9, 0x92, 0x57, 0x00, 0x00, //0x000048a9 jmp _advance_string_default - //0x000048ae LBB18_2 - 0x55, //0x000048ae pushq %rbp - 0x48, 0x89, 0xe5, //0x000048af movq %rsp, %rbp - 0x41, 0x57, //0x000048b2 pushq %r15 - 0x41, 0x56, //0x000048b4 pushq %r14 - 0x41, 0x55, //0x000048b6 pushq %r13 - 0x41, 0x54, //0x000048b8 pushq %r12 - 0x53, //0x000048ba pushq %rbx - 0x4c, 0x8b, 0x7f, 0x08, //0x000048bb movq $8(%rdi), %r15 - 0x49, 0x29, 0xf7, //0x000048bf subq %rsi, %r15 - 0x0f, 0x84, 0xc1, 0x03, 0x00, 0x00, //0x000048c2 je LBB18_27 - 0x4c, 0x8b, 0x1f, //0x000048c8 movq (%rdi), %r11 - 0x48, 0xc7, 0x02, 0xff, 0xff, 0xff, 0xff, //0x000048cb movq $-1, (%rdx) - 0x49, 0x83, 0xff, 0x40, //0x000048d2 cmpq $64, %r15 - 0x0f, 0x82, 0x09, 0x02, 0x00, 0x00, //0x000048d6 jb LBB18_28 - 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000048dc movq $-1, %r8 - 0x45, 0x31, 0xf6, //0x000048e3 xorl %r14d, %r14d - 0xc5, 0xfd, 0x6f, 0x05, 0x52, 0xff, 0xff, 0xff, //0x000048e6 vmovdqa $-174(%rip), %ymm0 /* LCPI18_0+0(%rip) */ - 0xc5, 0xfd, 0x6f, 0x0d, 0x6a, 0xff, 0xff, 0xff, //0x000048ee vmovdqa $-150(%rip), %ymm1 /* LCPI18_1+0(%rip) */ - 0xc5, 0xfd, 0x6f, 0x15, 0x82, 0xff, 0xff, 0xff, //0x000048f6 vmovdqa $-126(%rip), %ymm2 /* LCPI18_2+0(%rip) */ - 0xc5, 0xe5, 0x76, 0xdb, //0x000048fe vpcmpeqd %ymm3, %ymm3, %ymm3 - 0x49, 0xb9, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x00004902 movabsq $-6148914691236517206, %r9 - 0x49, 0xba, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x0000490c movabsq $6148914691236517205, %r10 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00004916 .p2align 4, 0x90 - //0x00004920 LBB18_5 - 0xc4, 0xc1, 0x7e, 0x6f, 0x24, 0x33, //0x00004920 vmovdqu (%r11,%rsi), %ymm4 - 0xc4, 0xc1, 0x7e, 0x6f, 0x6c, 0x33, 0x20, //0x00004926 vmovdqu $32(%r11,%rsi), %ymm5 - 0xc5, 0xdd, 0x74, 0xf0, //0x0000492d vpcmpeqb %ymm0, %ymm4, %ymm6 - 0xc5, 0x7d, 0xd7, 0xe6, //0x00004931 vpmovmskb %ymm6, %r12d - 0xc5, 0xd5, 0x74, 0xf0, //0x00004935 vpcmpeqb %ymm0, %ymm5, %ymm6 - 0xc5, 0xfd, 0xd7, 0xce, //0x00004939 vpmovmskb %ymm6, %ecx - 0xc5, 0xdd, 0x74, 0xf1, //0x0000493d vpcmpeqb %ymm1, %ymm4, %ymm6 - 0xc5, 0xfd, 0xd7, 0xc6, //0x00004941 vpmovmskb %ymm6, %eax - 0xc5, 0xd5, 0x74, 0xf1, //0x00004945 vpcmpeqb %ymm1, %ymm5, %ymm6 - 0xc5, 0xfd, 0xd7, 0xde, //0x00004949 vpmovmskb %ymm6, %ebx - 0xc5, 0xed, 0x64, 0xf5, //0x0000494d vpcmpgtb %ymm5, %ymm2, %ymm6 - 0xc5, 0xd5, 0x64, 0xeb, //0x00004951 vpcmpgtb %ymm3, %ymm5, %ymm5 - 0xc5, 0xcd, 0xdb, 0xed, //0x00004955 vpand %ymm5, %ymm6, %ymm5 - 0xc5, 0xfd, 0xd7, 0xfd, //0x00004959 vpmovmskb %ymm5, %edi - 0x48, 0xc1, 0xe1, 0x20, //0x0000495d shlq $32, %rcx - 0x49, 0x09, 0xcc, //0x00004961 orq %rcx, %r12 - 0x48, 0xc1, 0xe3, 0x20, //0x00004964 shlq $32, %rbx - 0x48, 0xc1, 0xe7, 0x20, //0x00004968 shlq $32, %rdi - 0x48, 0x09, 0xd8, //0x0000496c orq %rbx, %rax - 0x0f, 0x85, 0x48, 0x00, 0x00, 0x00, //0x0000496f jne LBB18_11 - 0x4d, 0x85, 0xf6, //0x00004975 testq %r14, %r14 - 0x0f, 0x85, 0x53, 0x00, 0x00, 0x00, //0x00004978 jne LBB18_13 - 0x45, 0x31, 0xf6, //0x0000497e xorl %r14d, %r14d - //0x00004981 LBB18_8 - 0xc5, 0xed, 0x64, 0xec, //0x00004981 vpcmpgtb %ymm4, %ymm2, %ymm5 - 0xc5, 0xdd, 0x64, 0xe3, //0x00004985 vpcmpgtb %ymm3, %ymm4, %ymm4 - 0xc5, 0xd5, 0xdb, 0xe4, //0x00004989 vpand %ymm4, %ymm5, %ymm4 - 0xc5, 0xfd, 0xd7, 0xc4, //0x0000498d vpmovmskb %ymm4, %eax - 0x48, 0x09, 0xc7, //0x00004991 orq %rax, %rdi - 0x4d, 0x85, 0xe4, //0x00004994 testq %r12, %r12 - 0x0f, 0x85, 0x6e, 0x00, 0x00, 0x00, //0x00004997 jne LBB18_14 - 0x48, 0x85, 0xff, //0x0000499d testq %rdi, %rdi - 0x0f, 0x85, 0xb4, 0x00, 0x00, 0x00, //0x000049a0 jne LBB18_20 - 0x49, 0x83, 0xc7, 0xc0, //0x000049a6 addq $-64, %r15 - 0x48, 0x83, 0xc6, 0x40, //0x000049aa addq $64, %rsi - 0x49, 0x83, 0xff, 0x3f, //0x000049ae cmpq $63, %r15 - 0x0f, 0x87, 0x68, 0xff, 0xff, 0xff, //0x000049b2 ja LBB18_5 - 0xe9, 0xbd, 0x00, 0x00, 0x00, //0x000049b8 jmp LBB18_22 - //0x000049bd LBB18_11 - 0x49, 0x83, 0xf8, 0xff, //0x000049bd cmpq $-1, %r8 - 0x0f, 0x85, 0x0a, 0x00, 0x00, 0x00, //0x000049c1 jne LBB18_13 - 0x4c, 0x0f, 0xbc, 0xc0, //0x000049c7 bsfq %rax, %r8 - 0x49, 0x01, 0xf0, //0x000049cb addq %rsi, %r8 - 0x4c, 0x89, 0x02, //0x000049ce movq %r8, (%rdx) - //0x000049d1 LBB18_13 - 0x4c, 0x89, 0xf1, //0x000049d1 movq %r14, %rcx - 0x48, 0xf7, 0xd1, //0x000049d4 notq %rcx - 0x48, 0x21, 0xc1, //0x000049d7 andq %rax, %rcx - 0x4c, 0x8d, 0x2c, 0x09, //0x000049da leaq (%rcx,%rcx), %r13 - 0x4d, 0x09, 0xf5, //0x000049de orq %r14, %r13 - 0x4c, 0x89, 0xeb, //0x000049e1 movq %r13, %rbx - 0x48, 0xf7, 0xd3, //0x000049e4 notq %rbx - 0x48, 0x21, 0xc3, //0x000049e7 andq %rax, %rbx - 0x4c, 0x21, 0xcb, //0x000049ea andq %r9, %rbx - 0x45, 0x31, 0xf6, //0x000049ed xorl %r14d, %r14d - 0x48, 0x01, 0xcb, //0x000049f0 addq %rcx, %rbx - 0x41, 0x0f, 0x92, 0xc6, //0x000049f3 setb %r14b - 0x48, 0x01, 0xdb, //0x000049f7 addq %rbx, %rbx - 0x4c, 0x31, 0xd3, //0x000049fa xorq %r10, %rbx - 0x4c, 0x21, 0xeb, //0x000049fd andq %r13, %rbx - 0x48, 0xf7, 0xd3, //0x00004a00 notq %rbx - 0x49, 0x21, 0xdc, //0x00004a03 andq %rbx, %r12 - 0xe9, 0x76, 0xff, 0xff, 0xff, //0x00004a06 jmp LBB18_8 - //0x00004a0b LBB18_14 - 0x49, 0x0f, 0xbc, 0xc4, //0x00004a0b bsfq %r12, %rax - 0x48, 0x85, 0xff, //0x00004a0f testq %rdi, %rdi - 0x0f, 0x84, 0x22, 0x00, 0x00, 0x00, //0x00004a12 je LBB18_18 - 0x48, 0x0f, 0xbc, 0xcf, //0x00004a18 bsfq %rdi, %rcx - 0x48, 0x39, 0xc1, //0x00004a1c cmpq %rax, %rcx - 0x0f, 0x82, 0x23, 0x00, 0x00, 0x00, //0x00004a1f jb LBB18_19 - //0x00004a25 LBB18_16 - 0x48, 0x01, 0xf0, //0x00004a25 addq %rsi, %rax - 0x48, 0x83, 0xc0, 0x01, //0x00004a28 addq $1, %rax - //0x00004a2c LBB18_17 - 0x5b, //0x00004a2c popq %rbx - 0x41, 0x5c, //0x00004a2d popq %r12 - 0x41, 0x5d, //0x00004a2f popq %r13 - 0x41, 0x5e, //0x00004a31 popq %r14 - 0x41, 0x5f, //0x00004a33 popq %r15 - 0x5d, //0x00004a35 popq %rbp - 0xc5, 0xf8, 0x77, //0x00004a36 vzeroupper - 0xc3, //0x00004a39 retq - //0x00004a3a LBB18_18 - 0xb9, 0x40, 0x00, 0x00, 0x00, //0x00004a3a movl $64, %ecx - 0x48, 0x39, 0xc1, //0x00004a3f cmpq %rax, %rcx - 0x0f, 0x83, 0xdd, 0xff, 0xff, 0xff, //0x00004a42 jae LBB18_16 - //0x00004a48 LBB18_19 - 0x48, 0x01, 0xf1, //0x00004a48 addq %rsi, %rcx - 0x48, 0x89, 0x0a, //0x00004a4b movq %rcx, (%rdx) - 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00004a4e movq $-2, %rax - 0xe9, 0xd2, 0xff, 0xff, 0xff, //0x00004a55 jmp LBB18_17 - //0x00004a5a LBB18_20 - 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00004a5a movq $-2, %rax - 0x49, 0x83, 0xf8, 0xff, //0x00004a61 cmpq $-1, %r8 - 0x0f, 0x85, 0xc1, 0xff, 0xff, 0xff, //0x00004a65 jne LBB18_17 - 0x48, 0x0f, 0xbc, 0xcf, //0x00004a6b bsfq %rdi, %rcx - 0x48, 0x01, 0xf1, //0x00004a6f addq %rsi, %rcx - 0x48, 0x89, 0x0a, //0x00004a72 movq %rcx, (%rdx) - 0xe9, 0xb2, 0xff, 0xff, 0xff, //0x00004a75 jmp LBB18_17 - //0x00004a7a LBB18_22 - 0x4c, 0x01, 0xde, //0x00004a7a addq %r11, %rsi - 0x49, 0x83, 0xff, 0x20, //0x00004a7d cmpq $32, %r15 - 0x0f, 0x82, 0x16, 0x01, 0x00, 0x00, //0x00004a81 jb LBB18_38 - //0x00004a87 LBB18_23 - 0xc5, 0xfe, 0x6f, 0x06, //0x00004a87 vmovdqu (%rsi), %ymm0 - 0xc5, 0xfd, 0x74, 0x0d, 0xad, 0xfd, 0xff, 0xff, //0x00004a8b vpcmpeqb $-595(%rip), %ymm0, %ymm1 /* LCPI18_0+0(%rip) */ - 0xc5, 0xfd, 0x74, 0x15, 0xc5, 0xfd, 0xff, 0xff, //0x00004a93 vpcmpeqb $-571(%rip), %ymm0, %ymm2 /* LCPI18_1+0(%rip) */ - 0xc5, 0x7d, 0xd7, 0xc9, //0x00004a9b vpmovmskb %ymm1, %r9d - 0xc5, 0xfd, 0xd7, 0xc2, //0x00004a9f vpmovmskb %ymm2, %eax - 0xc5, 0xfd, 0x6f, 0x0d, 0xd5, 0xfd, 0xff, 0xff, //0x00004aa3 vmovdqa $-555(%rip), %ymm1 /* LCPI18_2+0(%rip) */ - 0xc5, 0xf5, 0x64, 0xc8, //0x00004aab vpcmpgtb %ymm0, %ymm1, %ymm1 - 0xc5, 0xed, 0x76, 0xd2, //0x00004aaf vpcmpeqd %ymm2, %ymm2, %ymm2 - 0xc5, 0xfd, 0x64, 0xc2, //0x00004ab3 vpcmpgtb %ymm2, %ymm0, %ymm0 - 0xc5, 0xf5, 0xdb, 0xc0, //0x00004ab7 vpand %ymm0, %ymm1, %ymm0 - 0x85, 0xc0, //0x00004abb testl %eax, %eax - 0x0f, 0x85, 0x3e, 0x00, 0x00, 0x00, //0x00004abd jne LBB18_29 - 0x4d, 0x85, 0xf6, //0x00004ac3 testq %r14, %r14 - 0x0f, 0x85, 0x4f, 0x00, 0x00, 0x00, //0x00004ac6 jne LBB18_31 - 0x45, 0x31, 0xf6, //0x00004acc xorl %r14d, %r14d - 0xc5, 0xfd, 0xd7, 0xd8, //0x00004acf vpmovmskb %ymm0, %ebx - 0x4d, 0x85, 0xc9, //0x00004ad3 testq %r9, %r9 - 0x0f, 0x84, 0x7c, 0x00, 0x00, 0x00, //0x00004ad6 je LBB18_32 - //0x00004adc LBB18_26 - 0x4d, 0x0f, 0xbc, 0xd1, //0x00004adc bsfq %r9, %r10 - 0xe9, 0x79, 0x00, 0x00, 0x00, //0x00004ae0 jmp LBB18_33 - //0x00004ae5 LBB18_28 - 0x4c, 0x01, 0xde, //0x00004ae5 addq %r11, %rsi - 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00004ae8 movq $-1, %r8 - 0x45, 0x31, 0xf6, //0x00004aef xorl %r14d, %r14d - 0x49, 0x83, 0xff, 0x20, //0x00004af2 cmpq $32, %r15 - 0x0f, 0x83, 0x8b, 0xff, 0xff, 0xff, //0x00004af6 jae LBB18_23 - 0xe9, 0x9c, 0x00, 0x00, 0x00, //0x00004afc jmp LBB18_38 - //0x00004b01 LBB18_29 - 0x49, 0x83, 0xf8, 0xff, //0x00004b01 cmpq $-1, %r8 - 0x0f, 0x85, 0x10, 0x00, 0x00, 0x00, //0x00004b05 jne LBB18_31 - 0x48, 0x89, 0xf1, //0x00004b0b movq %rsi, %rcx - 0x4c, 0x29, 0xd9, //0x00004b0e subq %r11, %rcx - 0x4c, 0x0f, 0xbc, 0xc0, //0x00004b11 bsfq %rax, %r8 - 0x49, 0x01, 0xc8, //0x00004b15 addq %rcx, %r8 - 0x4c, 0x89, 0x02, //0x00004b18 movq %r8, (%rdx) - //0x00004b1b LBB18_31 - 0x44, 0x89, 0xf1, //0x00004b1b movl %r14d, %ecx - 0xf7, 0xd1, //0x00004b1e notl %ecx - 0x21, 0xc1, //0x00004b20 andl %eax, %ecx - 0x8d, 0x3c, 0x09, //0x00004b22 leal (%rcx,%rcx), %edi - 0x41, 0x8d, 0x1c, 0x4e, //0x00004b25 leal (%r14,%rcx,2), %ebx - 0xf7, 0xd7, //0x00004b29 notl %edi - 0x21, 0xc7, //0x00004b2b andl %eax, %edi - 0x81, 0xe7, 0xaa, 0xaa, 0xaa, 0xaa, //0x00004b2d andl $-1431655766, %edi - 0x45, 0x31, 0xf6, //0x00004b33 xorl %r14d, %r14d - 0x01, 0xcf, //0x00004b36 addl %ecx, %edi - 0x41, 0x0f, 0x92, 0xc6, //0x00004b38 setb %r14b - 0x01, 0xff, //0x00004b3c addl %edi, %edi - 0x81, 0xf7, 0x55, 0x55, 0x55, 0x55, //0x00004b3e xorl $1431655765, %edi - 0x21, 0xdf, //0x00004b44 andl %ebx, %edi - 0xf7, 0xd7, //0x00004b46 notl %edi - 0x41, 0x21, 0xf9, //0x00004b48 andl %edi, %r9d - 0xc5, 0xfd, 0xd7, 0xd8, //0x00004b4b vpmovmskb %ymm0, %ebx - 0x4d, 0x85, 0xc9, //0x00004b4f testq %r9, %r9 - 0x0f, 0x85, 0x84, 0xff, 0xff, 0xff, //0x00004b52 jne LBB18_26 - //0x00004b58 LBB18_32 - 0x41, 0xba, 0x40, 0x00, 0x00, 0x00, //0x00004b58 movl $64, %r10d - //0x00004b5e LBB18_33 - 0x0f, 0xbc, 0xfb, //0x00004b5e bsfl %ebx, %edi - 0x85, 0xdb, //0x00004b61 testl %ebx, %ebx - 0xb8, 0x40, 0x00, 0x00, 0x00, //0x00004b63 movl $64, %eax - 0x0f, 0x45, 0xc7, //0x00004b68 cmovnel %edi, %eax - 0x4d, 0x85, 0xc9, //0x00004b6b testq %r9, %r9 - 0x0f, 0x84, 0x19, 0x00, 0x00, 0x00, //0x00004b6e je LBB18_36 - 0x4c, 0x29, 0xde, //0x00004b74 subq %r11, %rsi - 0x49, 0x39, 0xc2, //0x00004b77 cmpq %rax, %r10 - 0x0f, 0x87, 0xae, 0x00, 0x00, 0x00, //0x00004b7a ja LBB18_49 - 0x4a, 0x8d, 0x04, 0x16, //0x00004b80 leaq (%rsi,%r10), %rax - 0x48, 0x83, 0xc0, 0x01, //0x00004b84 addq $1, %rax - 0xe9, 0x9f, 0xfe, 0xff, 0xff, //0x00004b88 jmp LBB18_17 - //0x00004b8d LBB18_36 - 0x85, 0xdb, //0x00004b8d testl %ebx, %ebx - 0x0f, 0x85, 0xa1, 0x00, 0x00, 0x00, //0x00004b8f jne LBB18_50 - 0x48, 0x83, 0xc6, 0x20, //0x00004b95 addq $32, %rsi - 0x49, 0x83, 0xc7, 0xe0, //0x00004b99 addq $-32, %r15 - //0x00004b9d LBB18_38 - 0x4d, 0x85, 0xf6, //0x00004b9d testq %r14, %r14 - 0x0f, 0x85, 0xa7, 0x00, 0x00, 0x00, //0x00004ba0 jne LBB18_51 - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00004ba6 movq $-1, %rax - 0x4d, 0x85, 0xff, //0x00004bad testq %r15, %r15 - 0x0f, 0x84, 0x76, 0xfe, 0xff, 0xff, //0x00004bb0 je LBB18_17 - //0x00004bb6 LBB18_40 - 0x0f, 0xb6, 0x1e, //0x00004bb6 movzbl (%rsi), %ebx - 0x80, 0xfb, 0x22, //0x00004bb9 cmpb $34, %bl - 0x0f, 0x84, 0x5d, 0x00, 0x00, 0x00, //0x00004bbc je LBB18_48 - 0x80, 0xfb, 0x5c, //0x00004bc2 cmpb $92, %bl - 0x0f, 0x84, 0x26, 0x00, 0x00, 0x00, //0x00004bc5 je LBB18_45 - 0x80, 0xfb, 0x1f, //0x00004bcb cmpb $31, %bl - 0x0f, 0x86, 0xc1, 0x00, 0x00, 0x00, //0x00004bce jbe LBB18_55 - 0x48, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, //0x00004bd4 movq $-1, %rdi - 0xbb, 0x01, 0x00, 0x00, 0x00, //0x00004bdb movl $1, %ebx - //0x00004be0 LBB18_44 - 0x48, 0x01, 0xde, //0x00004be0 addq %rbx, %rsi - 0x49, 0x01, 0xff, //0x00004be3 addq %rdi, %r15 - 0x0f, 0x85, 0xca, 0xff, 0xff, 0xff, //0x00004be6 jne LBB18_40 - 0xe9, 0x3b, 0xfe, 0xff, 0xff, //0x00004bec jmp LBB18_17 - //0x00004bf1 LBB18_45 - 0x49, 0x83, 0xff, 0x01, //0x00004bf1 cmpq $1, %r15 - 0x0f, 0x84, 0x31, 0xfe, 0xff, 0xff, //0x00004bf5 je LBB18_17 - 0x48, 0xc7, 0xc7, 0xfe, 0xff, 0xff, 0xff, //0x00004bfb movq $-2, %rdi - 0xbb, 0x02, 0x00, 0x00, 0x00, //0x00004c02 movl $2, %ebx - 0x49, 0x83, 0xf8, 0xff, //0x00004c07 cmpq $-1, %r8 - 0x0f, 0x85, 0xcf, 0xff, 0xff, 0xff, //0x00004c0b jne LBB18_44 - 0x49, 0x89, 0xf0, //0x00004c11 movq %rsi, %r8 - 0x4d, 0x29, 0xd8, //0x00004c14 subq %r11, %r8 - 0x4c, 0x89, 0x02, //0x00004c17 movq %r8, (%rdx) - 0xe9, 0xc1, 0xff, 0xff, 0xff, //0x00004c1a jmp LBB18_44 - //0x00004c1f LBB18_48 - 0x4c, 0x29, 0xde, //0x00004c1f subq %r11, %rsi - 0x48, 0x83, 0xc6, 0x01, //0x00004c22 addq $1, %rsi - 0x48, 0x89, 0xf0, //0x00004c26 movq %rsi, %rax - 0xe9, 0xfe, 0xfd, 0xff, 0xff, //0x00004c29 jmp LBB18_17 - //0x00004c2e LBB18_49 - 0x48, 0x01, 0xc6, //0x00004c2e addq %rax, %rsi - 0xe9, 0x62, 0x00, 0x00, 0x00, //0x00004c31 jmp LBB18_56 - //0x00004c36 LBB18_50 - 0x4c, 0x29, 0xde, //0x00004c36 subq %r11, %rsi - 0x89, 0xf8, //0x00004c39 movl %edi, %eax - 0x48, 0x01, 0xf0, //0x00004c3b addq %rsi, %rax - 0x48, 0x89, 0x02, //0x00004c3e movq %rax, (%rdx) - 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00004c41 movq $-2, %rax - 0xe9, 0xdf, 0xfd, 0xff, 0xff, //0x00004c48 jmp LBB18_17 - //0x00004c4d LBB18_51 - 0x4d, 0x85, 0xff, //0x00004c4d testq %r15, %r15 - 0x0f, 0x84, 0x33, 0x00, 0x00, 0x00, //0x00004c50 je LBB18_27 - 0x49, 0x83, 0xf8, 0xff, //0x00004c56 cmpq $-1, %r8 - 0x0f, 0x85, 0x0c, 0x00, 0x00, 0x00, //0x00004c5a jne LBB18_54 - 0x4d, 0x89, 0xd8, //0x00004c60 movq %r11, %r8 - 0x49, 0xf7, 0xd0, //0x00004c63 notq %r8 - 0x49, 0x01, 0xf0, //0x00004c66 addq %rsi, %r8 - 0x4c, 0x89, 0x02, //0x00004c69 movq %r8, (%rdx) - //0x00004c6c LBB18_54 - 0x48, 0x83, 0xc6, 0x01, //0x00004c6c addq $1, %rsi - 0x49, 0x83, 0xc7, 0xff, //0x00004c70 addq $-1, %r15 - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00004c74 movq $-1, %rax - 0x4d, 0x85, 0xff, //0x00004c7b testq %r15, %r15 - 0x0f, 0x85, 0x32, 0xff, 0xff, 0xff, //0x00004c7e jne LBB18_40 - 0xe9, 0xa3, 0xfd, 0xff, 0xff, //0x00004c84 jmp LBB18_17 - //0x00004c89 LBB18_27 - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00004c89 movq $-1, %rax - 0xe9, 0x97, 0xfd, 0xff, 0xff, //0x00004c90 jmp LBB18_17 - //0x00004c95 LBB18_55 - 0x4c, 0x29, 0xde, //0x00004c95 subq %r11, %rsi - //0x00004c98 LBB18_56 - 0x48, 0x89, 0x32, //0x00004c98 movq %rsi, (%rdx) - 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00004c9b movq $-2, %rax - 0xe9, 0x85, 0xfd, 0xff, 0xff, //0x00004ca2 jmp LBB18_17 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004ca7 .p2align 4, 0x00 - //0x00004cb0 LCPI19_0 - 0x00, 0x00, 0x30, 0x43, //0x00004cb0 .long 1127219200 - 0x00, 0x00, 0x30, 0x45, //0x00004cb4 .long 1160773632 - 0x00, 0x00, 0x00, 0x00, //0x00004cb8 .long 0 - 0x00, 0x00, 0x00, 0x00, //0x00004cbc .long 0 - //0x00004cc0 LCPI19_1 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x43, //0x00004cc0 .quad 0x4330000000000000 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x45, //0x00004cc8 .quad 0x4530000000000000 - //0x00004cd0 .p2align 3, 0x00 - //0x00004cd0 LCPI19_2 - 0x00, 0x00, 0x34, 0x26, 0xf5, 0x6b, 0x0c, 0x43, //0x00004cd0 .quad 0x430c6bf526340000 - //0x00004cd8 LCPI19_3 - 0x00, 0x00, 0x34, 0x26, 0xf5, 0x6b, 0x0c, 0xc3, //0x00004cd8 .quad 0xc30c6bf526340000 - //0x00004ce0 .p2align 4, 0x90 - //0x00004ce0 _vnumber - 0x55, //0x00004ce0 pushq %rbp - 0x48, 0x89, 0xe5, //0x00004ce1 movq %rsp, %rbp - 0x41, 0x57, //0x00004ce4 pushq %r15 - 0x41, 0x56, //0x00004ce6 pushq %r14 - 0x41, 0x55, //0x00004ce8 pushq %r13 - 0x41, 0x54, //0x00004cea pushq %r12 - 0x53, //0x00004cec pushq %rbx - 0x48, 0x83, 0xec, 0x48, //0x00004ced subq $72, %rsp - 0x49, 0x89, 0xd6, //0x00004cf1 movq %rdx, %r14 - 0x48, 0x8b, 0x06, //0x00004cf4 movq (%rsi), %rax - 0x4c, 0x8b, 0x3f, //0x00004cf7 movq (%rdi), %r15 - 0x4c, 0x8b, 0x6f, 0x08, //0x00004cfa movq $8(%rdi), %r13 - 0x4c, 0x8b, 0x5a, 0x20, //0x00004cfe movq $32(%rdx), %r11 - 0x48, 0x8b, 0x5a, 0x28, //0x00004d02 movq $40(%rdx), %rbx - 0x48, 0xc7, 0x02, 0x09, 0x00, 0x00, 0x00, //0x00004d06 movq $9, (%rdx) - 0xc5, 0xf9, 0x57, 0xc0, //0x00004d0d vxorpd %xmm0, %xmm0, %xmm0 - 0xc5, 0xf9, 0x11, 0x42, 0x08, //0x00004d11 vmovupd %xmm0, $8(%rdx) - 0x48, 0x8b, 0x0e, //0x00004d16 movq (%rsi), %rcx - 0x48, 0x89, 0x4a, 0x18, //0x00004d19 movq %rcx, $24(%rdx) - 0x4c, 0x39, 0xe8, //0x00004d1d cmpq %r13, %rax - 0x0f, 0x83, 0x46, 0x00, 0x00, 0x00, //0x00004d20 jae LBB19_6 - 0x41, 0x8a, 0x3c, 0x07, //0x00004d26 movb (%r15,%rax), %dil - 0x41, 0xba, 0x01, 0x00, 0x00, 0x00, //0x00004d2a movl $1, %r10d - 0x40, 0x80, 0xff, 0x2d, //0x00004d30 cmpb $45, %dil - 0x0f, 0x85, 0x17, 0x00, 0x00, 0x00, //0x00004d34 jne LBB19_4 - 0x48, 0x83, 0xc0, 0x01, //0x00004d3a addq $1, %rax - 0x4c, 0x39, 0xe8, //0x00004d3e cmpq %r13, %rax - 0x0f, 0x83, 0x25, 0x00, 0x00, 0x00, //0x00004d41 jae LBB19_6 - 0x41, 0x8a, 0x3c, 0x07, //0x00004d47 movb (%r15,%rax), %dil - 0x41, 0xba, 0xff, 0xff, 0xff, 0xff, //0x00004d4b movl $-1, %r10d - //0x00004d51 LBB19_4 - 0x8d, 0x4f, 0xd0, //0x00004d51 leal $-48(%rdi), %ecx - 0x80, 0xf9, 0x0a, //0x00004d54 cmpb $10, %cl - 0x0f, 0x82, 0x28, 0x00, 0x00, 0x00, //0x00004d57 jb LBB19_9 - 0x48, 0x89, 0x06, //0x00004d5d movq %rax, (%rsi) - 0x49, 0xc7, 0x06, 0xfe, 0xff, 0xff, 0xff, //0x00004d60 movq $-2, (%r14) - 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x00004d67 jmp LBB19_8 - //0x00004d6c LBB19_6 - 0x4c, 0x89, 0x2e, //0x00004d6c movq %r13, (%rsi) - //0x00004d6f LBB19_7 - 0x49, 0xc7, 0x06, 0xff, 0xff, 0xff, 0xff, //0x00004d6f movq $-1, (%r14) - //0x00004d76 LBB19_8 - 0x48, 0x83, 0xc4, 0x48, //0x00004d76 addq $72, %rsp - 0x5b, //0x00004d7a popq %rbx - 0x41, 0x5c, //0x00004d7b popq %r12 - 0x41, 0x5d, //0x00004d7d popq %r13 - 0x41, 0x5e, //0x00004d7f popq %r14 - 0x41, 0x5f, //0x00004d81 popq %r15 - 0x5d, //0x00004d83 popq %rbp - 0xc3, //0x00004d84 retq - //0x00004d85 LBB19_9 - 0x40, 0x80, 0xff, 0x30, //0x00004d85 cmpb $48, %dil - 0x0f, 0x85, 0x35, 0x00, 0x00, 0x00, //0x00004d89 jne LBB19_13 - 0x4c, 0x8d, 0x48, 0x01, //0x00004d8f leaq $1(%rax), %r9 - 0x4c, 0x39, 0xe8, //0x00004d93 cmpq %r13, %rax - 0x0f, 0x83, 0xcd, 0x00, 0x00, 0x00, //0x00004d96 jae LBB19_22 - 0x43, 0x8a, 0x14, 0x0f, //0x00004d9c movb (%r15,%r9), %dl - 0x80, 0xc2, 0xd2, //0x00004da0 addb $-46, %dl - 0x80, 0xfa, 0x37, //0x00004da3 cmpb $55, %dl - 0x0f, 0x87, 0xbd, 0x00, 0x00, 0x00, //0x00004da6 ja LBB19_22 - 0x44, 0x0f, 0xb6, 0xc2, //0x00004dac movzbl %dl, %r8d - 0x48, 0xba, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, //0x00004db0 movabsq $36028797027352577, %rdx - 0x4c, 0x0f, 0xa3, 0xc2, //0x00004dba btq %r8, %rdx - 0x0f, 0x83, 0xa5, 0x00, 0x00, 0x00, //0x00004dbe jae LBB19_22 - //0x00004dc4 LBB19_13 - 0x4c, 0x39, 0xe8, //0x00004dc4 cmpq %r13, %rax - 0x4c, 0x89, 0x5d, 0x98, //0x00004dc7 movq %r11, $-104(%rbp) - 0x48, 0x89, 0x5d, 0xa0, //0x00004dcb movq %rbx, $-96(%rbp) - 0x48, 0x89, 0x75, 0xc8, //0x00004dcf movq %rsi, $-56(%rbp) - 0x0f, 0x83, 0x7e, 0x00, 0x00, 0x00, //0x00004dd3 jae LBB19_21 - 0x80, 0xf9, 0x09, //0x00004dd9 cmpb $9, %cl - 0x44, 0x89, 0x55, 0xbc, //0x00004ddc movl %r10d, $-68(%rbp) - 0xb1, 0x01, //0x00004de0 movb $1, %cl - 0x0f, 0x87, 0x89, 0x00, 0x00, 0x00, //0x00004de2 ja LBB19_23 - 0x89, 0x4d, 0xd4, //0x00004de8 movl %ecx, $-44(%rbp) - 0x41, 0xb9, 0xd0, 0xff, 0xff, 0xff, //0x00004deb movl $4294967248, %r9d - 0x4d, 0x8d, 0x55, 0xff, //0x00004df1 leaq $-1(%r13), %r10 - 0x31, 0xc9, //0x00004df5 xorl %ecx, %ecx - 0x45, 0x31, 0xc0, //0x00004df7 xorl %r8d, %r8d - 0x45, 0x31, 0xe4, //0x00004dfa xorl %r12d, %r12d - 0x90, 0x90, 0x90, //0x00004dfd .p2align 4, 0x90 - //0x00004e00 LBB19_16 - 0x41, 0x83, 0xf8, 0x12, //0x00004e00 cmpl $18, %r8d - 0x0f, 0x8f, 0x26, 0x00, 0x00, 0x00, //0x00004e04 jg LBB19_18 - 0x4b, 0x8d, 0x14, 0xa4, //0x00004e0a leaq (%r12,%r12,4), %rdx - 0x40, 0x0f, 0xbe, 0xff, //0x00004e0e movsbl %dil, %edi - 0x44, 0x01, 0xcf, //0x00004e12 addl %r9d, %edi - 0x4c, 0x8d, 0x24, 0x57, //0x00004e15 leaq (%rdi,%rdx,2), %r12 - 0x41, 0x83, 0xc0, 0x01, //0x00004e19 addl $1, %r8d - 0xe9, 0x11, 0x00, 0x00, 0x00, //0x00004e1d jmp LBB19_19 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00004e22 .p2align 4, 0x90 - //0x00004e30 LBB19_18 - 0x83, 0xc1, 0x01, //0x00004e30 addl $1, %ecx - //0x00004e33 LBB19_19 - 0x49, 0x39, 0xc2, //0x00004e33 cmpq %rax, %r10 - 0x0f, 0x84, 0x7a, 0x00, 0x00, 0x00, //0x00004e36 je LBB19_28 - 0x41, 0x0f, 0xb6, 0x7c, 0x07, 0x01, //0x00004e3c movzbl $1(%r15,%rax), %edi - 0x8d, 0x57, 0xd0, //0x00004e42 leal $-48(%rdi), %edx - 0x48, 0x83, 0xc0, 0x01, //0x00004e45 addq $1, %rax - 0x80, 0xfa, 0x0a, //0x00004e49 cmpb $10, %dl - 0x0f, 0x82, 0xae, 0xff, 0xff, 0xff, //0x00004e4c jb LBB19_16 - 0xe9, 0x25, 0x00, 0x00, 0x00, //0x00004e52 jmp LBB19_24 - //0x00004e57 LBB19_21 - 0xb1, 0x01, //0x00004e57 movb $1, %cl - 0x89, 0x4d, 0xd4, //0x00004e59 movl %ecx, $-44(%rbp) - 0x31, 0xc9, //0x00004e5c xorl %ecx, %ecx - 0x45, 0x31, 0xc0, //0x00004e5e xorl %r8d, %r8d - 0x45, 0x31, 0xe4, //0x00004e61 xorl %r12d, %r12d - 0xe9, 0x54, 0x00, 0x00, 0x00, //0x00004e64 jmp LBB19_30 - //0x00004e69 LBB19_22 - 0x4c, 0x89, 0x0e, //0x00004e69 movq %r9, (%rsi) - 0xe9, 0x05, 0xff, 0xff, 0xff, //0x00004e6c jmp LBB19_8 - //0x00004e71 LBB19_23 - 0x89, 0x4d, 0xd4, //0x00004e71 movl %ecx, $-44(%rbp) - 0x45, 0x31, 0xe4, //0x00004e74 xorl %r12d, %r12d - 0x45, 0x31, 0xc0, //0x00004e77 xorl %r8d, %r8d - 0x31, 0xc9, //0x00004e7a xorl %ecx, %ecx - //0x00004e7c LBB19_24 - 0x40, 0x80, 0xff, 0x2e, //0x00004e7c cmpb $46, %dil - 0x0f, 0x85, 0x33, 0x00, 0x00, 0x00, //0x00004e80 jne LBB19_29 - 0x48, 0x83, 0xc0, 0x01, //0x00004e86 addq $1, %rax - 0x49, 0xc7, 0x06, 0x08, 0x00, 0x00, 0x00, //0x00004e8a movq $8, (%r14) - 0x4c, 0x39, 0xe8, //0x00004e91 cmpq %r13, %rax - 0x0f, 0x83, 0x70, 0x02, 0x00, 0x00, //0x00004e94 jae LBB19_68 - 0x41, 0x8a, 0x14, 0x07, //0x00004e9a movb (%r15,%rax), %dl - 0x80, 0xc2, 0xd0, //0x00004e9e addb $-48, %dl - 0x80, 0xfa, 0x0a, //0x00004ea1 cmpb $10, %dl - 0x0f, 0x83, 0x17, 0x04, 0x00, 0x00, //0x00004ea4 jae LBB19_92 - 0xc7, 0x45, 0xd4, 0x00, 0x00, 0x00, 0x00, //0x00004eaa movl $0, $-44(%rbp) - 0xe9, 0x03, 0x00, 0x00, 0x00, //0x00004eb1 jmp LBB19_29 - //0x00004eb6 LBB19_28 - 0x4c, 0x89, 0xe8, //0x00004eb6 movq %r13, %rax - //0x00004eb9 LBB19_29 - 0x44, 0x8b, 0x55, 0xbc, //0x00004eb9 movl $-68(%rbp), %r10d - //0x00004ebd LBB19_30 - 0x45, 0x31, 0xdb, //0x00004ebd xorl %r11d, %r11d - 0x85, 0xc9, //0x00004ec0 testl %ecx, %ecx - 0x41, 0x0f, 0x9f, 0xc3, //0x00004ec2 setg %r11b - 0x4d, 0x85, 0xe4, //0x00004ec6 testq %r12, %r12 - 0x0f, 0x85, 0x56, 0x00, 0x00, 0x00, //0x00004ec9 jne LBB19_39 - 0x85, 0xc9, //0x00004ecf testl %ecx, %ecx - 0x0f, 0x85, 0x4e, 0x00, 0x00, 0x00, //0x00004ed1 jne LBB19_39 - 0x4c, 0x39, 0xe8, //0x00004ed7 cmpq %r13, %rax - 0x0f, 0x83, 0x3d, 0x00, 0x00, 0x00, //0x00004eda jae LBB19_37 - 0x89, 0xc6, //0x00004ee0 movl %eax, %esi - 0x44, 0x29, 0xee, //0x00004ee2 subl %r13d, %esi - 0x45, 0x31, 0xc0, //0x00004ee5 xorl %r8d, %r8d - 0x31, 0xc9, //0x00004ee8 xorl %ecx, %ecx - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00004eea .p2align 4, 0x90 - //0x00004ef0 LBB19_34 - 0x41, 0x80, 0x3c, 0x07, 0x30, //0x00004ef0 cmpb $48, (%r15,%rax) - 0x0f, 0x85, 0x27, 0x00, 0x00, 0x00, //0x00004ef5 jne LBB19_38 - 0x48, 0x83, 0xc0, 0x01, //0x00004efb addq $1, %rax - 0x83, 0xc1, 0xff, //0x00004eff addl $-1, %ecx - 0x49, 0x39, 0xc5, //0x00004f02 cmpq %rax, %r13 - 0x0f, 0x85, 0xe5, 0xff, 0xff, 0xff, //0x00004f05 jne LBB19_34 - 0x45, 0x31, 0xe4, //0x00004f0b xorl %r12d, %r12d - 0x80, 0x7d, 0xd4, 0x00, //0x00004f0e cmpb $0, $-44(%rbp) - 0x0f, 0x85, 0x26, 0x01, 0x00, 0x00, //0x00004f12 jne LBB19_58 - 0xe9, 0x55, 0x01, 0x00, 0x00, //0x00004f18 jmp LBB19_62 - //0x00004f1d LBB19_37 - 0x31, 0xc9, //0x00004f1d xorl %ecx, %ecx - 0x45, 0x31, 0xc0, //0x00004f1f xorl %r8d, %r8d - //0x00004f22 LBB19_38 - 0x45, 0x31, 0xe4, //0x00004f22 xorl %r12d, %r12d - //0x00004f25 LBB19_39 - 0x4c, 0x39, 0xe8, //0x00004f25 cmpq %r13, %rax - 0x0f, 0x83, 0x4f, 0x00, 0x00, 0x00, //0x00004f28 jae LBB19_45 - 0x41, 0x83, 0xf8, 0x12, //0x00004f2e cmpl $18, %r8d - 0x0f, 0x8f, 0x45, 0x00, 0x00, 0x00, //0x00004f32 jg LBB19_45 - 0x41, 0xb9, 0xd0, 0xff, 0xff, 0xff, //0x00004f38 movl $4294967248, %r9d - 0x90, 0x90, //0x00004f3e .p2align 4, 0x90 - //0x00004f40 LBB19_42 - 0x41, 0x0f, 0xb6, 0x3c, 0x07, //0x00004f40 movzbl (%r15,%rax), %edi - 0x8d, 0x57, 0xd0, //0x00004f45 leal $-48(%rdi), %edx - 0x80, 0xfa, 0x09, //0x00004f48 cmpb $9, %dl - 0x0f, 0x87, 0x2c, 0x00, 0x00, 0x00, //0x00004f4b ja LBB19_45 - 0x4b, 0x8d, 0x14, 0xa4, //0x00004f51 leaq (%r12,%r12,4), %rdx - 0x44, 0x01, 0xcf, //0x00004f55 addl %r9d, %edi - 0x4c, 0x8d, 0x24, 0x57, //0x00004f58 leaq (%rdi,%rdx,2), %r12 - 0x83, 0xc1, 0xff, //0x00004f5c addl $-1, %ecx - 0x48, 0x83, 0xc0, 0x01, //0x00004f5f addq $1, %rax - 0x4c, 0x39, 0xe8, //0x00004f63 cmpq %r13, %rax - 0x0f, 0x83, 0x11, 0x00, 0x00, 0x00, //0x00004f66 jae LBB19_45 - 0x41, 0x8d, 0x50, 0x01, //0x00004f6c leal $1(%r8), %edx - 0x41, 0x83, 0xf8, 0x12, //0x00004f70 cmpl $18, %r8d - 0x41, 0x89, 0xd0, //0x00004f74 movl %edx, %r8d - 0x0f, 0x8c, 0xc3, 0xff, 0xff, 0xff, //0x00004f77 jl LBB19_42 - //0x00004f7d LBB19_45 - 0x4c, 0x39, 0xe8, //0x00004f7d cmpq %r13, %rax - 0x0f, 0x83, 0xa9, 0x00, 0x00, 0x00, //0x00004f80 jae LBB19_57 - 0x41, 0x8a, 0x14, 0x07, //0x00004f86 movb (%r15,%rax), %dl - 0x8d, 0x72, 0xd0, //0x00004f8a leal $-48(%rdx), %esi - 0x40, 0x80, 0xfe, 0x09, //0x00004f8d cmpb $9, %sil - 0x0f, 0x87, 0x2f, 0x00, 0x00, 0x00, //0x00004f91 ja LBB19_51 - 0x49, 0x8d, 0x75, 0xff, //0x00004f97 leaq $-1(%r13), %rsi - 0x90, 0x90, 0x90, 0x90, 0x90, //0x00004f9b .p2align 4, 0x90 - //0x00004fa0 LBB19_48 - 0x48, 0x39, 0xc6, //0x00004fa0 cmpq %rax, %rsi - 0x0f, 0x84, 0x6d, 0x01, 0x00, 0x00, //0x00004fa3 je LBB19_69 - 0x41, 0x0f, 0xb6, 0x54, 0x07, 0x01, //0x00004fa9 movzbl $1(%r15,%rax), %edx - 0x8d, 0x7a, 0xd0, //0x00004faf leal $-48(%rdx), %edi - 0x48, 0x83, 0xc0, 0x01, //0x00004fb2 addq $1, %rax - 0x40, 0x80, 0xff, 0x09, //0x00004fb6 cmpb $9, %dil - 0x0f, 0x86, 0xe0, 0xff, 0xff, 0xff, //0x00004fba jbe LBB19_48 - 0x41, 0xbb, 0x01, 0x00, 0x00, 0x00, //0x00004fc0 movl $1, %r11d - //0x00004fc6 LBB19_51 - 0x80, 0xca, 0x20, //0x00004fc6 orb $32, %dl - 0x80, 0xfa, 0x65, //0x00004fc9 cmpb $101, %dl - 0x0f, 0x85, 0x5d, 0x00, 0x00, 0x00, //0x00004fcc jne LBB19_57 - 0x48, 0x8d, 0x50, 0x01, //0x00004fd2 leaq $1(%rax), %rdx - 0x49, 0xc7, 0x06, 0x08, 0x00, 0x00, 0x00, //0x00004fd6 movq $8, (%r14) - 0x4c, 0x39, 0xea, //0x00004fdd cmpq %r13, %rdx - 0x0f, 0x83, 0x24, 0x01, 0x00, 0x00, //0x00004fe0 jae LBB19_68 - 0x44, 0x89, 0x5d, 0xd4, //0x00004fe6 movl %r11d, $-44(%rbp) - 0x41, 0x8a, 0x34, 0x17, //0x00004fea movb (%r15,%rdx), %sil - 0x40, 0x80, 0xfe, 0x2d, //0x00004fee cmpb $45, %sil - 0x0f, 0x84, 0x10, 0x00, 0x00, 0x00, //0x00004ff2 je LBB19_55 - 0x41, 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00004ff8 movl $1, %r8d - 0x40, 0x80, 0xfe, 0x2b, //0x00004ffe cmpb $43, %sil - 0x0f, 0x85, 0xa9, 0x02, 0x00, 0x00, //0x00005002 jne LBB19_90 - //0x00005008 LBB19_55 - 0x48, 0x83, 0xc0, 0x02, //0x00005008 addq $2, %rax - 0x4c, 0x39, 0xe8, //0x0000500c cmpq %r13, %rax - 0x0f, 0x83, 0xf5, 0x00, 0x00, 0x00, //0x0000500f jae LBB19_68 - 0x31, 0xd2, //0x00005015 xorl %edx, %edx - 0x40, 0x80, 0xfe, 0x2b, //0x00005017 cmpb $43, %sil - 0x0f, 0x94, 0xc2, //0x0000501b sete %dl - 0x44, 0x8d, 0x04, 0x12, //0x0000501e leal (%rdx,%rdx), %r8d - 0x41, 0x83, 0xc0, 0xff, //0x00005022 addl $-1, %r8d - 0x41, 0x8a, 0x34, 0x07, //0x00005026 movb (%r15,%rax), %sil - 0xe9, 0x85, 0x02, 0x00, 0x00, //0x0000502a jmp LBB19_91 - //0x0000502f LBB19_57 - 0x89, 0xce, //0x0000502f movl %ecx, %esi - 0x49, 0x89, 0xc5, //0x00005031 movq %rax, %r13 - 0x80, 0x7d, 0xd4, 0x00, //0x00005034 cmpb $0, $-44(%rbp) - 0x0f, 0x84, 0x34, 0x00, 0x00, 0x00, //0x00005038 je LBB19_62 - //0x0000503e LBB19_58 - 0x85, 0xf6, //0x0000503e testl %esi, %esi - 0x0f, 0x85, 0x25, 0x00, 0x00, 0x00, //0x00005040 jne LBB19_61 - 0x48, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x00005046 movabsq $-9223372036854775808, %rax - 0x49, 0x63, 0xca, //0x00005050 movslq %r10d, %rcx - 0x4d, 0x85, 0xe4, //0x00005053 testq %r12, %r12 - 0x0f, 0x89, 0xed, 0x00, 0x00, 0x00, //0x00005056 jns LBB19_72 - 0x4c, 0x89, 0xe2, //0x0000505c movq %r12, %rdx - 0x48, 0x21, 0xca, //0x0000505f andq %rcx, %rdx - 0x48, 0x39, 0xc2, //0x00005062 cmpq %rax, %rdx - 0x0f, 0x84, 0xde, 0x00, 0x00, 0x00, //0x00005065 je LBB19_72 - //0x0000506b LBB19_61 - 0x49, 0xc7, 0x06, 0x08, 0x00, 0x00, 0x00, //0x0000506b movq $8, (%r14) - //0x00005072 LBB19_62 - 0x48, 0xc7, 0x45, 0xb0, 0x00, 0x00, 0x00, 0x00, //0x00005072 movq $0, $-80(%rbp) - 0xc4, 0xc1, 0xf9, 0x6e, 0xc4, //0x0000507a vmovq %r12, %xmm0 - 0xc5, 0xf9, 0x62, 0x05, 0x29, 0xfc, 0xff, 0xff, //0x0000507f vpunpckldq $-983(%rip), %xmm0, %xmm0 /* LCPI19_0+0(%rip) */ - 0xc5, 0xf9, 0x5c, 0x05, 0x31, 0xfc, 0xff, 0xff, //0x00005087 vsubpd $-975(%rip), %xmm0, %xmm0 /* LCPI19_1+0(%rip) */ - 0xc4, 0xe3, 0x79, 0x05, 0xc8, 0x01, //0x0000508f vpermilpd $1, %xmm0, %xmm1 - 0xc5, 0xf3, 0x58, 0xc0, //0x00005095 vaddsd %xmm0, %xmm1, %xmm0 - 0xc5, 0xfb, 0x11, 0x45, 0xc0, //0x00005099 vmovsd %xmm0, $-64(%rbp) - 0x4c, 0x89, 0xe0, //0x0000509e movq %r12, %rax - 0x48, 0xc1, 0xe8, 0x34, //0x000050a1 shrq $52, %rax - 0x0f, 0x85, 0x23, 0x01, 0x00, 0x00, //0x000050a5 jne LBB19_78 - 0xc4, 0xe1, 0xf9, 0x7e, 0xc1, //0x000050ab vmovq %xmm0, %rcx - 0x44, 0x89, 0xd0, //0x000050b0 movl %r10d, %eax - 0xc1, 0xe8, 0x1f, //0x000050b3 shrl $31, %eax - 0x48, 0xc1, 0xe0, 0x3f, //0x000050b6 shlq $63, %rax - 0x48, 0x09, 0xc8, //0x000050ba orq %rcx, %rax - 0x48, 0x89, 0x45, 0xc0, //0x000050bd movq %rax, $-64(%rbp) - 0x85, 0xf6, //0x000050c1 testl %esi, %esi - 0x0f, 0x84, 0xa6, 0x01, 0x00, 0x00, //0x000050c3 je LBB19_85 - 0x4d, 0x85, 0xe4, //0x000050c9 testq %r12, %r12 - 0x0f, 0x84, 0x9d, 0x01, 0x00, 0x00, //0x000050cc je LBB19_85 - 0xc4, 0xe1, 0xf9, 0x6e, 0xc0, //0x000050d2 vmovq %rax, %xmm0 - 0x8d, 0x46, 0xff, //0x000050d7 leal $-1(%rsi), %eax - 0x83, 0xf8, 0x24, //0x000050da cmpl $36, %eax - 0x0f, 0x87, 0x4a, 0x00, 0x00, 0x00, //0x000050dd ja LBB19_70 - 0x83, 0xfe, 0x17, //0x000050e3 cmpl $23, %esi - 0x0f, 0x8c, 0x9f, 0x00, 0x00, 0x00, //0x000050e6 jl LBB19_73 - 0x8d, 0x46, 0xea, //0x000050ec leal $-22(%rsi), %eax - 0x48, 0x8d, 0x0d, 0xaa, 0xf3, 0x00, 0x00, //0x000050ef leaq $62378(%rip), %rcx /* _P10_TAB+0(%rip) */ - 0xc5, 0xfb, 0x59, 0x04, 0xc1, //0x000050f6 vmulsd (%rcx,%rax,8), %xmm0, %xmm0 - 0xc5, 0xfb, 0x11, 0x45, 0xc0, //0x000050fb vmovsd %xmm0, $-64(%rbp) - 0xb8, 0x16, 0x00, 0x00, 0x00, //0x00005100 movl $22, %eax - 0xe9, 0x83, 0x00, 0x00, 0x00, //0x00005105 jmp LBB19_74 - //0x0000510a LBB19_68 - 0x48, 0x8b, 0x45, 0xc8, //0x0000510a movq $-56(%rbp), %rax - 0x4c, 0x89, 0x28, //0x0000510e movq %r13, (%rax) - 0xe9, 0x59, 0xfc, 0xff, 0xff, //0x00005111 jmp LBB19_7 - //0x00005116 LBB19_69 - 0x41, 0xbb, 0x01, 0x00, 0x00, 0x00, //0x00005116 movl $1, %r11d - 0x89, 0xce, //0x0000511c movl %ecx, %esi - 0x80, 0x7d, 0xd4, 0x00, //0x0000511e cmpb $0, $-44(%rbp) - 0x0f, 0x85, 0x16, 0xff, 0xff, 0xff, //0x00005122 jne LBB19_58 - 0xe9, 0x45, 0xff, 0xff, 0xff, //0x00005128 jmp LBB19_62 - //0x0000512d LBB19_70 - 0x83, 0xfe, 0xea, //0x0000512d cmpl $-22, %esi - 0x0f, 0x82, 0x98, 0x00, 0x00, 0x00, //0x00005130 jb LBB19_78 - 0xf7, 0xde, //0x00005136 negl %esi - 0x48, 0x8d, 0x05, 0x61, 0xf3, 0x00, 0x00, //0x00005138 leaq $62305(%rip), %rax /* _P10_TAB+0(%rip) */ - 0xc5, 0xfb, 0x5e, 0x04, 0xf0, //0x0000513f vdivsd (%rax,%rsi,8), %xmm0, %xmm0 - 0xe9, 0x72, 0x00, 0x00, 0x00, //0x00005144 jmp LBB19_77 - //0x00005149 LBB19_72 - 0xc4, 0xc1, 0xf9, 0x6e, 0xc4, //0x00005149 vmovq %r12, %xmm0 - 0x4c, 0x0f, 0xaf, 0xe1, //0x0000514e imulq %rcx, %r12 - 0xc5, 0xf9, 0x62, 0x05, 0x56, 0xfb, 0xff, 0xff, //0x00005152 vpunpckldq $-1194(%rip), %xmm0, %xmm0 /* LCPI19_0+0(%rip) */ - 0xc5, 0xf9, 0x5c, 0x05, 0x5e, 0xfb, 0xff, 0xff, //0x0000515a vsubpd $-1186(%rip), %xmm0, %xmm0 /* LCPI19_1+0(%rip) */ - 0x4d, 0x89, 0x66, 0x10, //0x00005162 movq %r12, $16(%r14) - 0xc4, 0xe3, 0x79, 0x05, 0xc8, 0x01, //0x00005166 vpermilpd $1, %xmm0, %xmm1 - 0xc5, 0xf3, 0x58, 0xc0, //0x0000516c vaddsd %xmm0, %xmm1, %xmm0 - 0x48, 0x21, 0xc8, //0x00005170 andq %rcx, %rax - 0xc4, 0xe1, 0xf9, 0x7e, 0xc1, //0x00005173 vmovq %xmm0, %rcx - 0x48, 0x09, 0xc1, //0x00005178 orq %rax, %rcx - 0x49, 0x89, 0x4e, 0x08, //0x0000517b movq %rcx, $8(%r14) - 0x48, 0x8b, 0x45, 0xc8, //0x0000517f movq $-56(%rbp), %rax - 0x4c, 0x89, 0x28, //0x00005183 movq %r13, (%rax) - 0xe9, 0xeb, 0xfb, 0xff, 0xff, //0x00005186 jmp LBB19_8 - //0x0000518b LBB19_73 - 0x89, 0xf0, //0x0000518b movl %esi, %eax - //0x0000518d LBB19_74 - 0xc5, 0xf9, 0x2e, 0x05, 0x3b, 0xfb, 0xff, 0xff, //0x0000518d vucomisd $-1221(%rip), %xmm0 /* LCPI19_2+0(%rip) */ - 0x0f, 0x87, 0x33, 0x00, 0x00, 0x00, //0x00005195 ja LBB19_78 - 0xc5, 0xfb, 0x10, 0x0d, 0x35, 0xfb, 0xff, 0xff, //0x0000519b vmovsd $-1227(%rip), %xmm1 /* LCPI19_3+0(%rip) */ - 0xc5, 0xf9, 0x2e, 0xc8, //0x000051a3 vucomisd %xmm0, %xmm1 - 0x0f, 0x87, 0x21, 0x00, 0x00, 0x00, //0x000051a7 ja LBB19_78 - 0x89, 0xc0, //0x000051ad movl %eax, %eax - 0x48, 0x8d, 0x0d, 0xea, 0xf2, 0x00, 0x00, //0x000051af leaq $62186(%rip), %rcx /* _P10_TAB+0(%rip) */ - 0xc5, 0xfb, 0x59, 0x04, 0xc1, //0x000051b6 vmulsd (%rcx,%rax,8), %xmm0, %xmm0 - //0x000051bb LBB19_77 - 0x48, 0x8b, 0x5d, 0xc8, //0x000051bb movq $-56(%rbp), %rbx - 0xc5, 0xfb, 0x11, 0x45, 0xc0, //0x000051bf vmovsd %xmm0, $-64(%rbp) - 0xc4, 0xe1, 0xf9, 0x7e, 0xc0, //0x000051c4 vmovq %xmm0, %rax - 0xe9, 0xa5, 0x00, 0x00, 0x00, //0x000051c9 jmp LBB19_86 - //0x000051ce LBB19_78 - 0x44, 0x89, 0x5d, 0xd4, //0x000051ce movl %r11d, $-44(%rbp) - 0x48, 0x8d, 0x4d, 0xc0, //0x000051d2 leaq $-64(%rbp), %rcx - 0x4c, 0x89, 0xe7, //0x000051d6 movq %r12, %rdi - 0x44, 0x89, 0xd2, //0x000051d9 movl %r10d, %edx - 0x44, 0x89, 0xd3, //0x000051dc movl %r10d, %ebx - 0x48, 0x89, 0x75, 0xa8, //0x000051df movq %rsi, $-88(%rbp) - 0xe8, 0xd8, 0xe3, 0xff, 0xff, //0x000051e3 callq _atof_eisel_lemire64 - 0x84, 0xc0, //0x000051e8 testb %al, %al - 0x0f, 0x84, 0x4c, 0x00, 0x00, 0x00, //0x000051ea je LBB19_83 - 0x48, 0x8b, 0x75, 0xa8, //0x000051f0 movq $-88(%rbp), %rsi - 0x83, 0x7d, 0xd4, 0x00, //0x000051f4 cmpl $0, $-44(%rbp) - 0x0f, 0x84, 0x6d, 0x00, 0x00, 0x00, //0x000051f8 je LBB19_84 - 0x89, 0xda, //0x000051fe movl %ebx, %edx - 0x49, 0x83, 0xc4, 0x01, //0x00005200 addq $1, %r12 - 0x48, 0x8d, 0x4d, 0xb0, //0x00005204 leaq $-80(%rbp), %rcx - 0x4c, 0x89, 0xe7, //0x00005208 movq %r12, %rdi - 0xe8, 0xb0, 0xe3, 0xff, 0xff, //0x0000520b callq _atof_eisel_lemire64 - 0x84, 0xc0, //0x00005210 testb %al, %al - 0x0f, 0x84, 0x24, 0x00, 0x00, 0x00, //0x00005212 je LBB19_83 - 0xc5, 0xfb, 0x10, 0x4d, 0xb0, //0x00005218 vmovsd $-80(%rbp), %xmm1 - 0xc5, 0xfb, 0x10, 0x45, 0xc0, //0x0000521d vmovsd $-64(%rbp), %xmm0 - 0xc5, 0xf9, 0x2e, 0xc8, //0x00005222 vucomisd %xmm0, %xmm1 - 0x0f, 0x85, 0x10, 0x00, 0x00, 0x00, //0x00005226 jne LBB19_83 - 0x0f, 0x8a, 0x0a, 0x00, 0x00, 0x00, //0x0000522c jp LBB19_83 - 0xc4, 0xe1, 0xf9, 0x7e, 0xc0, //0x00005232 vmovq %xmm0, %rax - 0xe9, 0x33, 0x00, 0x00, 0x00, //0x00005237 jmp LBB19_85 - //0x0000523c LBB19_83 - 0x48, 0x8b, 0x5d, 0xc8, //0x0000523c movq $-56(%rbp), %rbx - 0x48, 0x8b, 0x03, //0x00005240 movq (%rbx), %rax - 0x49, 0x01, 0xc7, //0x00005243 addq %rax, %r15 - 0x4c, 0x89, 0xee, //0x00005246 movq %r13, %rsi - 0x48, 0x29, 0xc6, //0x00005249 subq %rax, %rsi - 0x4c, 0x89, 0xff, //0x0000524c movq %r15, %rdi - 0x48, 0x8b, 0x55, 0x98, //0x0000524f movq $-104(%rbp), %rdx - 0x48, 0x8b, 0x4d, 0xa0, //0x00005253 movq $-96(%rbp), %rcx - 0xe8, 0x04, 0xeb, 0xff, 0xff, //0x00005257 callq _atof_native - 0xc5, 0xfb, 0x11, 0x45, 0xc0, //0x0000525c vmovsd %xmm0, $-64(%rbp) - 0xc4, 0xe1, 0xf9, 0x7e, 0xc0, //0x00005261 vmovq %xmm0, %rax - 0xe9, 0x0d, 0x00, 0x00, 0x00, //0x00005266 jmp LBB19_87 - //0x0000526b LBB19_84 - 0x48, 0x8b, 0x45, 0xc0, //0x0000526b movq $-64(%rbp), %rax - //0x0000526f LBB19_85 - 0x48, 0x8b, 0x5d, 0xc8, //0x0000526f movq $-56(%rbp), %rbx - //0x00005273 LBB19_86 - 0xc4, 0xe1, 0xf9, 0x6e, 0xc0, //0x00005273 vmovq %rax, %xmm0 - //0x00005278 LBB19_87 - 0x48, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x00005278 movabsq $-9223372036854775808, %rcx - 0x48, 0x83, 0xc1, 0xff, //0x00005282 addq $-1, %rcx - 0x48, 0x21, 0xc1, //0x00005286 andq %rax, %rcx - 0x48, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x7f, //0x00005289 movabsq $9218868437227405312, %rax - 0x48, 0x39, 0xc1, //0x00005293 cmpq %rax, %rcx - 0x0f, 0x85, 0x07, 0x00, 0x00, 0x00, //0x00005296 jne LBB19_89 - 0x49, 0xc7, 0x06, 0xf8, 0xff, 0xff, 0xff, //0x0000529c movq $-8, (%r14) - //0x000052a3 LBB19_89 - 0xc4, 0xc1, 0x7b, 0x11, 0x46, 0x08, //0x000052a3 vmovsd %xmm0, $8(%r14) - 0x4c, 0x89, 0x2b, //0x000052a9 movq %r13, (%rbx) - 0xe9, 0xc5, 0xfa, 0xff, 0xff, //0x000052ac jmp LBB19_8 - //0x000052b1 LBB19_90 - 0x48, 0x89, 0xd0, //0x000052b1 movq %rdx, %rax - //0x000052b4 LBB19_91 - 0x8d, 0x7e, 0xd0, //0x000052b4 leal $-48(%rsi), %edi - 0x40, 0x80, 0xff, 0x09, //0x000052b7 cmpb $9, %dil - 0x0f, 0x86, 0x13, 0x00, 0x00, 0x00, //0x000052bb jbe LBB19_93 - //0x000052c1 LBB19_92 - 0x48, 0x8b, 0x4d, 0xc8, //0x000052c1 movq $-56(%rbp), %rcx - 0x48, 0x89, 0x01, //0x000052c5 movq %rax, (%rcx) - 0x49, 0xc7, 0x06, 0xfe, 0xff, 0xff, 0xff, //0x000052c8 movq $-2, (%r14) - 0xe9, 0xa2, 0xfa, 0xff, 0xff, //0x000052cf jmp LBB19_8 - //0x000052d4 LBB19_93 - 0x4c, 0x39, 0xe8, //0x000052d4 cmpq %r13, %rax - 0x0f, 0x83, 0x4a, 0x00, 0x00, 0x00, //0x000052d7 jae LBB19_99 - 0x40, 0x80, 0xff, 0x09, //0x000052dd cmpb $9, %dil - 0x0f, 0x87, 0x40, 0x00, 0x00, 0x00, //0x000052e1 ja LBB19_99 - 0x4d, 0x8d, 0x4d, 0xff, //0x000052e7 leaq $-1(%r13), %r9 - 0x31, 0xff, //0x000052eb xorl %edi, %edi - //0x000052ed LBB19_96 - 0x89, 0xfa, //0x000052ed movl %edi, %edx - 0x40, 0x0f, 0xb6, 0xf6, //0x000052ef movzbl %sil, %esi - 0x81, 0xff, 0x10, 0x27, 0x00, 0x00, //0x000052f3 cmpl $10000, %edi - 0x8d, 0x3c, 0x92, //0x000052f9 leal (%rdx,%rdx,4), %edi - 0x8d, 0x7c, 0x7e, 0xd0, //0x000052fc leal $-48(%rsi,%rdi,2), %edi - 0x0f, 0x4d, 0xfa, //0x00005300 cmovgel %edx, %edi - 0x49, 0x39, 0xc1, //0x00005303 cmpq %rax, %r9 - 0x0f, 0x84, 0x22, 0x00, 0x00, 0x00, //0x00005306 je LBB19_100 - 0x41, 0x0f, 0xb6, 0x74, 0x07, 0x01, //0x0000530c movzbl $1(%r15,%rax), %esi - 0x8d, 0x56, 0xd0, //0x00005312 leal $-48(%rsi), %edx - 0x48, 0x83, 0xc0, 0x01, //0x00005315 addq $1, %rax - 0x80, 0xfa, 0x0a, //0x00005319 cmpb $10, %dl - 0x0f, 0x82, 0xcb, 0xff, 0xff, 0xff, //0x0000531c jb LBB19_96 - 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x00005322 jmp LBB19_101 - //0x00005327 LBB19_99 - 0x31, 0xff, //0x00005327 xorl %edi, %edi - 0xe9, 0x03, 0x00, 0x00, 0x00, //0x00005329 jmp LBB19_101 - //0x0000532e LBB19_100 - 0x4c, 0x89, 0xe8, //0x0000532e movq %r13, %rax - //0x00005331 LBB19_101 - 0x48, 0x89, 0xfe, //0x00005331 movq %rdi, %rsi - 0x41, 0x0f, 0xaf, 0xf0, //0x00005334 imull %r8d, %esi - 0x01, 0xce, //0x00005338 addl %ecx, %esi - 0x49, 0x89, 0xc5, //0x0000533a movq %rax, %r13 - 0x44, 0x8b, 0x5d, 0xd4, //0x0000533d movl $-44(%rbp), %r11d - 0xe9, 0x2c, 0xfd, 0xff, 0xff, //0x00005341 jmp LBB19_62 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00005346 .p2align 4, 0x90 - //0x00005350 _vsigned - 0x55, //0x00005350 pushq %rbp - 0x48, 0x89, 0xe5, //0x00005351 movq %rsp, %rbp - 0x53, //0x00005354 pushq %rbx - 0x48, 0x8b, 0x06, //0x00005355 movq (%rsi), %rax - 0x4c, 0x8b, 0x0f, //0x00005358 movq (%rdi), %r9 - 0x4c, 0x8b, 0x5f, 0x08, //0x0000535b movq $8(%rdi), %r11 - 0x48, 0xc7, 0x02, 0x09, 0x00, 0x00, 0x00, //0x0000535f movq $9, (%rdx) - 0xc5, 0xf8, 0x57, 0xc0, //0x00005366 vxorps %xmm0, %xmm0, %xmm0 - 0xc5, 0xf8, 0x11, 0x42, 0x08, //0x0000536a vmovups %xmm0, $8(%rdx) - 0x48, 0x8b, 0x0e, //0x0000536f movq (%rsi), %rcx - 0x48, 0x89, 0x4a, 0x18, //0x00005372 movq %rcx, $24(%rdx) - 0x4c, 0x39, 0xd8, //0x00005376 cmpq %r11, %rax - 0x0f, 0x83, 0x45, 0x00, 0x00, 0x00, //0x00005379 jae LBB20_1 - 0x41, 0x8a, 0x0c, 0x01, //0x0000537f movb (%r9,%rax), %cl - 0x41, 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00005383 movl $1, %r8d - 0x80, 0xf9, 0x2d, //0x00005389 cmpb $45, %cl - 0x0f, 0x85, 0x18, 0x00, 0x00, 0x00, //0x0000538c jne LBB20_5 - 0x48, 0x83, 0xc0, 0x01, //0x00005392 addq $1, %rax - 0x4c, 0x39, 0xd8, //0x00005396 cmpq %r11, %rax - 0x0f, 0x83, 0x25, 0x00, 0x00, 0x00, //0x00005399 jae LBB20_1 - 0x41, 0x8a, 0x0c, 0x01, //0x0000539f movb (%r9,%rax), %cl - 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000053a3 movq $-1, %r8 - //0x000053aa LBB20_5 - 0x8d, 0x79, 0xd0, //0x000053aa leal $-48(%rcx), %edi - 0x40, 0x80, 0xff, 0x0a, //0x000053ad cmpb $10, %dil - 0x0f, 0x82, 0x1a, 0x00, 0x00, 0x00, //0x000053b1 jb LBB20_7 - 0x48, 0x89, 0x06, //0x000053b7 movq %rax, (%rsi) - 0x48, 0xc7, 0x02, 0xfe, 0xff, 0xff, 0xff, //0x000053ba movq $-2, (%rdx) - 0x5b, //0x000053c1 popq %rbx - 0x5d, //0x000053c2 popq %rbp - 0xc3, //0x000053c3 retq - //0x000053c4 LBB20_1 - 0x4c, 0x89, 0x1e, //0x000053c4 movq %r11, (%rsi) - 0x48, 0xc7, 0x02, 0xff, 0xff, 0xff, 0xff, //0x000053c7 movq $-1, (%rdx) - 0x5b, //0x000053ce popq %rbx - 0x5d, //0x000053cf popq %rbp - 0xc3, //0x000053d0 retq - //0x000053d1 LBB20_7 - 0x80, 0xf9, 0x30, //0x000053d1 cmpb $48, %cl - 0x0f, 0x85, 0x35, 0x00, 0x00, 0x00, //0x000053d4 jne LBB20_12 - 0x48, 0x8d, 0x78, 0x01, //0x000053da leaq $1(%rax), %rdi - 0x4c, 0x39, 0xd8, //0x000053de cmpq %r11, %rax - 0x0f, 0x83, 0x82, 0x00, 0x00, 0x00, //0x000053e1 jae LBB20_11 - 0x41, 0x8a, 0x0c, 0x39, //0x000053e7 movb (%r9,%rdi), %cl - 0x80, 0xc1, 0xd2, //0x000053eb addb $-46, %cl - 0x80, 0xf9, 0x37, //0x000053ee cmpb $55, %cl - 0x0f, 0x87, 0x72, 0x00, 0x00, 0x00, //0x000053f1 ja LBB20_11 - 0x44, 0x0f, 0xb6, 0xd1, //0x000053f7 movzbl %cl, %r10d - 0x48, 0xb9, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, //0x000053fb movabsq $36028797027352577, %rcx - 0x4c, 0x0f, 0xa3, 0xd1, //0x00005405 btq %r10, %rcx - 0x0f, 0x83, 0x5a, 0x00, 0x00, 0x00, //0x00005409 jae LBB20_11 - //0x0000540f LBB20_12 - 0x4c, 0x39, 0xd8, //0x0000540f cmpq %r11, %rax - 0x4d, 0x89, 0xda, //0x00005412 movq %r11, %r10 - 0x4c, 0x0f, 0x47, 0xd0, //0x00005415 cmovaq %rax, %r10 - 0x31, 0xc9, //0x00005419 xorl %ecx, %ecx - 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000541b .p2align 4, 0x90 - //0x00005420 LBB20_13 - 0x49, 0x39, 0xc2, //0x00005420 cmpq %rax, %r10 - 0x0f, 0x84, 0x81, 0x00, 0x00, 0x00, //0x00005423 je LBB20_23 - 0x49, 0x0f, 0xbe, 0x3c, 0x01, //0x00005429 movsbq (%r9,%rax), %rdi - 0x8d, 0x5f, 0xd0, //0x0000542e leal $-48(%rdi), %ebx - 0x80, 0xfb, 0x09, //0x00005431 cmpb $9, %bl - 0x0f, 0x87, 0x35, 0x00, 0x00, 0x00, //0x00005434 ja LBB20_18 - 0x48, 0x6b, 0xc9, 0x0a, //0x0000543a imulq $10, %rcx, %rcx - 0x0f, 0x80, 0x14, 0x00, 0x00, 0x00, //0x0000543e jo LBB20_17 - 0x48, 0x83, 0xc0, 0x01, //0x00005444 addq $1, %rax - 0x83, 0xc7, 0xd0, //0x00005448 addl $-48, %edi - 0x49, 0x0f, 0xaf, 0xf8, //0x0000544b imulq %r8, %rdi - 0x48, 0x01, 0xf9, //0x0000544f addq %rdi, %rcx - 0x0f, 0x81, 0xc8, 0xff, 0xff, 0xff, //0x00005452 jno LBB20_13 - //0x00005458 LBB20_17 - 0x48, 0x83, 0xc0, 0xff, //0x00005458 addq $-1, %rax - 0x48, 0x89, 0x06, //0x0000545c movq %rax, (%rsi) - 0x48, 0xc7, 0x02, 0xfb, 0xff, 0xff, 0xff, //0x0000545f movq $-5, (%rdx) - 0x5b, //0x00005466 popq %rbx - 0x5d, //0x00005467 popq %rbp - 0xc3, //0x00005468 retq - //0x00005469 LBB20_11 - 0x48, 0x89, 0x3e, //0x00005469 movq %rdi, (%rsi) - 0x5b, //0x0000546c popq %rbx - 0x5d, //0x0000546d popq %rbp - 0xc3, //0x0000546e retq - //0x0000546f LBB20_18 - 0x4c, 0x39, 0xd8, //0x0000546f cmpq %r11, %rax - 0x0f, 0x83, 0x2f, 0x00, 0x00, 0x00, //0x00005472 jae LBB20_22 - 0x41, 0x8a, 0x3c, 0x01, //0x00005478 movb (%r9,%rax), %dil - 0x40, 0x80, 0xff, 0x2e, //0x0000547c cmpb $46, %dil - 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x00005480 je LBB20_25 - 0x40, 0x80, 0xff, 0x45, //0x00005486 cmpb $69, %dil - 0x0f, 0x84, 0x0a, 0x00, 0x00, 0x00, //0x0000548a je LBB20_25 - 0x40, 0x80, 0xff, 0x65, //0x00005490 cmpb $101, %dil - 0x0f, 0x85, 0x0d, 0x00, 0x00, 0x00, //0x00005494 jne LBB20_22 - //0x0000549a LBB20_25 - 0x48, 0x89, 0x06, //0x0000549a movq %rax, (%rsi) - 0x48, 0xc7, 0x02, 0xfa, 0xff, 0xff, 0xff, //0x0000549d movq $-6, (%rdx) - 0x5b, //0x000054a4 popq %rbx - 0x5d, //0x000054a5 popq %rbp - 0xc3, //0x000054a6 retq - //0x000054a7 LBB20_22 - 0x49, 0x89, 0xc2, //0x000054a7 movq %rax, %r10 - //0x000054aa LBB20_23 - 0x4c, 0x89, 0x16, //0x000054aa movq %r10, (%rsi) - 0x48, 0x89, 0x4a, 0x10, //0x000054ad movq %rcx, $16(%rdx) - 0x5b, //0x000054b1 popq %rbx - 0x5d, //0x000054b2 popq %rbp - 0xc3, //0x000054b3 retq - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000054b4 .p2align 4, 0x90 - //0x000054c0 _vunsigned - 0x55, //0x000054c0 pushq %rbp - 0x48, 0x89, 0xe5, //0x000054c1 movq %rsp, %rbp - 0x41, 0x56, //0x000054c4 pushq %r14 - 0x53, //0x000054c6 pushq %rbx - 0x49, 0x89, 0xd0, //0x000054c7 movq %rdx, %r8 - 0x48, 0x8b, 0x0e, //0x000054ca movq (%rsi), %rcx - 0x4c, 0x8b, 0x0f, //0x000054cd movq (%rdi), %r9 - 0x4c, 0x8b, 0x77, 0x08, //0x000054d0 movq $8(%rdi), %r14 - 0x48, 0xc7, 0x02, 0x09, 0x00, 0x00, 0x00, //0x000054d4 movq $9, (%rdx) - 0xc5, 0xf8, 0x57, 0xc0, //0x000054db vxorps %xmm0, %xmm0, %xmm0 - 0xc5, 0xf8, 0x11, 0x42, 0x08, //0x000054df vmovups %xmm0, $8(%rdx) - 0x48, 0x8b, 0x06, //0x000054e4 movq (%rsi), %rax - 0x48, 0x89, 0x42, 0x18, //0x000054e7 movq %rax, $24(%rdx) - 0x4c, 0x39, 0xf1, //0x000054eb cmpq %r14, %rcx - 0x0f, 0x83, 0x1b, 0x00, 0x00, 0x00, //0x000054ee jae LBB21_1 - 0x41, 0x8a, 0x04, 0x09, //0x000054f4 movb (%r9,%rcx), %al - 0x3c, 0x2d, //0x000054f8 cmpb $45, %al - 0x0f, 0x85, 0x1e, 0x00, 0x00, 0x00, //0x000054fa jne LBB21_4 - //0x00005500 LBB21_3 - 0x48, 0x89, 0x0e, //0x00005500 movq %rcx, (%rsi) - 0x49, 0xc7, 0x00, 0xfa, 0xff, 0xff, 0xff, //0x00005503 movq $-6, (%r8) - 0x5b, //0x0000550a popq %rbx - 0x41, 0x5e, //0x0000550b popq %r14 - 0x5d, //0x0000550d popq %rbp - 0xc3, //0x0000550e retq - //0x0000550f LBB21_1 - 0x4c, 0x89, 0x36, //0x0000550f movq %r14, (%rsi) - 0x49, 0xc7, 0x00, 0xff, 0xff, 0xff, 0xff, //0x00005512 movq $-1, (%r8) - 0x5b, //0x00005519 popq %rbx - 0x41, 0x5e, //0x0000551a popq %r14 - 0x5d, //0x0000551c popq %rbp - 0xc3, //0x0000551d retq - //0x0000551e LBB21_4 - 0x8d, 0x50, 0xd0, //0x0000551e leal $-48(%rax), %edx - 0x80, 0xfa, 0x0a, //0x00005521 cmpb $10, %dl - 0x0f, 0x82, 0x0f, 0x00, 0x00, 0x00, //0x00005524 jb LBB21_6 - 0x48, 0x89, 0x0e, //0x0000552a movq %rcx, (%rsi) - 0x49, 0xc7, 0x00, 0xfe, 0xff, 0xff, 0xff, //0x0000552d movq $-2, (%r8) - 0x5b, //0x00005534 popq %rbx - 0x41, 0x5e, //0x00005535 popq %r14 - 0x5d, //0x00005537 popq %rbp - 0xc3, //0x00005538 retq - //0x00005539 LBB21_6 - 0x3c, 0x30, //0x00005539 cmpb $48, %al - 0x0f, 0x85, 0x26, 0x00, 0x00, 0x00, //0x0000553b jne LBB21_10 - 0x41, 0x8a, 0x44, 0x09, 0x01, //0x00005541 movb $1(%r9,%rcx), %al - 0x04, 0xd2, //0x00005546 addb $-46, %al - 0x3c, 0x37, //0x00005548 cmpb $55, %al - 0x0f, 0x87, 0xc5, 0x00, 0x00, 0x00, //0x0000554a ja LBB21_9 - 0x0f, 0xb6, 0xc0, //0x00005550 movzbl %al, %eax - 0x48, 0xba, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, //0x00005553 movabsq $36028797027352577, %rdx - 0x48, 0x0f, 0xa3, 0xc2, //0x0000555d btq %rax, %rdx - 0x0f, 0x83, 0xae, 0x00, 0x00, 0x00, //0x00005561 jae LBB21_9 - //0x00005567 LBB21_10 - 0x49, 0x39, 0xce, //0x00005567 cmpq %rcx, %r14 - 0x49, 0x89, 0xca, //0x0000556a movq %rcx, %r10 - 0x4d, 0x0f, 0x47, 0xd6, //0x0000556d cmovaq %r14, %r10 - 0x31, 0xc0, //0x00005571 xorl %eax, %eax - 0x41, 0xbb, 0x0a, 0x00, 0x00, 0x00, //0x00005573 movl $10, %r11d - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00005579 .p2align 4, 0x90 - //0x00005580 LBB21_11 - 0x49, 0x39, 0xca, //0x00005580 cmpq %rcx, %r10 - 0x0f, 0x84, 0x80, 0x00, 0x00, 0x00, //0x00005583 je LBB21_22 - 0x41, 0x0f, 0xbe, 0x1c, 0x09, //0x00005589 movsbl (%r9,%rcx), %ebx - 0x8d, 0x53, 0xd0, //0x0000558e leal $-48(%rbx), %edx - 0x80, 0xfa, 0x09, //0x00005591 cmpb $9, %dl - 0x0f, 0x87, 0x44, 0x00, 0x00, 0x00, //0x00005594 ja LBB21_17 - 0x49, 0xf7, 0xe3, //0x0000559a mulq %r11 - 0x0f, 0x80, 0x28, 0x00, 0x00, 0x00, //0x0000559d jo LBB21_16 - 0x48, 0x83, 0xc1, 0x01, //0x000055a3 addq $1, %rcx - 0x83, 0xc3, 0xd0, //0x000055a7 addl $-48, %ebx - 0x31, 0xff, //0x000055aa xorl %edi, %edi - 0x48, 0x01, 0xd8, //0x000055ac addq %rbx, %rax - 0x40, 0x0f, 0x92, 0xc7, //0x000055af setb %dil - 0x48, 0x89, 0xfa, //0x000055b3 movq %rdi, %rdx - 0x48, 0xf7, 0xda, //0x000055b6 negq %rdx - 0x48, 0x31, 0xd7, //0x000055b9 xorq %rdx, %rdi - 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x000055bc jne LBB21_16 - 0x48, 0x85, 0xd2, //0x000055c2 testq %rdx, %rdx - 0x0f, 0x89, 0xb5, 0xff, 0xff, 0xff, //0x000055c5 jns LBB21_11 - //0x000055cb LBB21_16 - 0x48, 0x83, 0xc1, 0xff, //0x000055cb addq $-1, %rcx - 0x48, 0x89, 0x0e, //0x000055cf movq %rcx, (%rsi) - 0x49, 0xc7, 0x00, 0xfb, 0xff, 0xff, 0xff, //0x000055d2 movq $-5, (%r8) - 0x5b, //0x000055d9 popq %rbx - 0x41, 0x5e, //0x000055da popq %r14 - 0x5d, //0x000055dc popq %rbp - 0xc3, //0x000055dd retq - //0x000055de LBB21_17 - 0x4c, 0x39, 0xf1, //0x000055de cmpq %r14, %rcx - 0x0f, 0x83, 0x1f, 0x00, 0x00, 0x00, //0x000055e1 jae LBB21_21 - 0x41, 0x8a, 0x14, 0x09, //0x000055e7 movb (%r9,%rcx), %dl - 0x80, 0xfa, 0x2e, //0x000055eb cmpb $46, %dl - 0x0f, 0x84, 0x0c, 0xff, 0xff, 0xff, //0x000055ee je LBB21_3 - 0x80, 0xfa, 0x45, //0x000055f4 cmpb $69, %dl - 0x0f, 0x84, 0x03, 0xff, 0xff, 0xff, //0x000055f7 je LBB21_3 - 0x80, 0xfa, 0x65, //0x000055fd cmpb $101, %dl - 0x0f, 0x84, 0xfa, 0xfe, 0xff, 0xff, //0x00005600 je LBB21_3 - //0x00005606 LBB21_21 - 0x49, 0x89, 0xca, //0x00005606 movq %rcx, %r10 - //0x00005609 LBB21_22 - 0x4c, 0x89, 0x16, //0x00005609 movq %r10, (%rsi) - 0x49, 0x89, 0x40, 0x10, //0x0000560c movq %rax, $16(%r8) - 0x5b, //0x00005610 popq %rbx - 0x41, 0x5e, //0x00005611 popq %r14 - 0x5d, //0x00005613 popq %rbp - 0xc3, //0x00005614 retq - //0x00005615 LBB21_9 - 0x48, 0x83, 0xc1, 0x01, //0x00005615 addq $1, %rcx - 0x48, 0x89, 0x0e, //0x00005619 movq %rcx, (%rsi) - 0x5b, //0x0000561c popq %rbx - 0x41, 0x5e, //0x0000561d popq %r14 - 0x5d, //0x0000561f popq %rbp - 0xc3, //0x00005620 retq - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005621 .p2align 4, 0x00 - //0x00005630 LCPI22_0 - 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005630 .quad 1 - 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005638 .quad 5 - //0x00005640 .p2align 4, 0x90 - //0x00005640 _skip_array - 0x55, //0x00005640 pushq %rbp - 0x48, 0x89, 0xe5, //0x00005641 movq %rsp, %rbp - 0x48, 0x89, 0xd0, //0x00005644 movq %rdx, %rax - 0x48, 0x89, 0xf2, //0x00005647 movq %rsi, %rdx - 0x48, 0x89, 0xfe, //0x0000564a movq %rdi, %rsi - 0xc5, 0xf8, 0x28, 0x05, 0xdb, 0xff, 0xff, 0xff, //0x0000564d vmovaps $-37(%rip), %xmm0 /* LCPI22_0+0(%rip) */ - 0xc5, 0xf8, 0x11, 0x00, //0x00005655 vmovups %xmm0, (%rax) - 0x48, 0x89, 0xc7, //0x00005659 movq %rax, %rdi - 0x5d, //0x0000565c popq %rbp - 0xe9, 0x0e, 0x00, 0x00, 0x00, //0x0000565d jmp _fsm_exec - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00005662 .p2align 4, 0x90 - //0x00005670 _fsm_exec - 0x55, //0x00005670 pushq %rbp - 0x48, 0x89, 0xe5, //0x00005671 movq %rsp, %rbp - 0x41, 0x57, //0x00005674 pushq %r15 - 0x41, 0x56, //0x00005676 pushq %r14 - 0x41, 0x55, //0x00005678 pushq %r13 - 0x41, 0x54, //0x0000567a pushq %r12 - 0x53, //0x0000567c pushq %rbx - 0x48, 0x83, 0xec, 0x28, //0x0000567d subq $40, %rsp - 0x48, 0x89, 0x4d, 0xb8, //0x00005681 movq %rcx, $-72(%rbp) - 0x48, 0x83, 0x3f, 0x00, //0x00005685 cmpq $0, (%rdi) - 0x0f, 0x84, 0xd0, 0x03, 0x00, 0x00, //0x00005689 je LBB23_63 - 0x49, 0x89, 0xd0, //0x0000568f movq %rdx, %r8 - 0x49, 0x89, 0xfd, //0x00005692 movq %rdi, %r13 - 0x48, 0x89, 0x75, 0xc8, //0x00005695 movq %rsi, $-56(%rbp) - 0x48, 0x8d, 0x46, 0x08, //0x00005699 leaq $8(%rsi), %rax - 0x48, 0x89, 0x45, 0xc0, //0x0000569d movq %rax, $-64(%rbp) - 0x49, 0xc7, 0xc4, 0xff, 0xff, 0xff, 0xff, //0x000056a1 movq $-1, %r12 - 0xe9, 0x23, 0x00, 0x00, 0x00, //0x000056a8 jmp LBB23_5 - //0x000056ad LBB23_2 - 0x48, 0x8d, 0x48, 0x03, //0x000056ad leaq $3(%rax), %rcx - 0x49, 0x89, 0x08, //0x000056b1 movq %rcx, (%r8) - 0x48, 0x85, 0xc0, //0x000056b4 testq %rax, %rax - 0x0f, 0x8e, 0xa9, 0x03, 0x00, 0x00, //0x000056b7 jle LBB23_75 - 0x90, 0x90, 0x90, //0x000056bd .p2align 4, 0x90 - //0x000056c0 LBB23_3 - 0x49, 0x8b, 0x4d, 0x00, //0x000056c0 movq (%r13), %rcx - 0x4d, 0x89, 0xe6, //0x000056c4 movq %r12, %r14 - 0x48, 0x85, 0xc9, //0x000056c7 testq %rcx, %rcx - 0x0f, 0x84, 0x96, 0x03, 0x00, 0x00, //0x000056ca je LBB23_75 - //0x000056d0 LBB23_5 - 0x4c, 0x8b, 0x75, 0xc8, //0x000056d0 movq $-56(%rbp), %r14 - 0x49, 0x8b, 0x3e, //0x000056d4 movq (%r14), %rdi - 0x49, 0x8b, 0x76, 0x08, //0x000056d7 movq $8(%r14), %rsi - 0x4c, 0x89, 0xc3, //0x000056db movq %r8, %rbx - 0x4c, 0x89, 0xc2, //0x000056de movq %r8, %rdx - 0xe8, 0xda, 0xee, 0xff, 0xff, //0x000056e1 callq _advance_ns - 0x84, 0xc0, //0x000056e6 testb %al, %al - 0x0f, 0x84, 0x71, 0x03, 0x00, 0x00, //0x000056e8 je LBB23_63 - 0x49, 0x83, 0xfc, 0xff, //0x000056ee cmpq $-1, %r12 - 0x49, 0x89, 0xd8, //0x000056f2 movq %rbx, %r8 - 0x0f, 0x85, 0x07, 0x00, 0x00, 0x00, //0x000056f5 jne LBB23_8 - 0x4d, 0x8b, 0x20, //0x000056fb movq (%r8), %r12 - 0x49, 0x83, 0xc4, 0xff, //0x000056fe addq $-1, %r12 - //0x00005702 LBB23_8 - 0x0f, 0xbe, 0xf0, //0x00005702 movsbl %al, %esi - 0x49, 0x8b, 0x55, 0x00, //0x00005705 movq (%r13), %rdx - 0x48, 0x8d, 0x4a, 0xff, //0x00005709 leaq $-1(%rdx), %rcx - 0x41, 0x8b, 0x7c, 0xd5, 0x00, //0x0000570d movl (%r13,%rdx,8), %edi - 0x83, 0xc7, 0xff, //0x00005712 addl $-1, %edi - 0x83, 0xff, 0x05, //0x00005715 cmpl $5, %edi - 0x0f, 0x87, 0x27, 0x00, 0x00, 0x00, //0x00005718 ja LBB23_13 - 0x48, 0x8d, 0x1d, 0xaf, 0x04, 0x00, 0x00, //0x0000571e leaq $1199(%rip), %rbx /* LJTI23_0+0(%rip) */ - 0x48, 0x63, 0x3c, 0xbb, //0x00005725 movslq (%rbx,%rdi,4), %rdi - 0x48, 0x01, 0xdf, //0x00005729 addq %rbx, %rdi - 0xff, 0xe7, //0x0000572c jmpq *%rdi - //0x0000572e LBB23_10 - 0x83, 0xfe, 0x2c, //0x0000572e cmpl $44, %esi - 0x0f, 0x84, 0x55, 0x01, 0x00, 0x00, //0x00005731 je LBB23_30 - 0x83, 0xfe, 0x5d, //0x00005737 cmpl $93, %esi - 0x0f, 0x84, 0x37, 0x01, 0x00, 0x00, //0x0000573a je LBB23_12 - 0xe9, 0x70, 0x03, 0x00, 0x00, //0x00005740 jmp LBB23_68 - //0x00005745 LBB23_13 - 0x49, 0x89, 0x4d, 0x00, //0x00005745 movq %rcx, (%r13) - 0x83, 0xfe, 0x7b, //0x00005749 cmpl $123, %esi - 0x0f, 0x86, 0xb3, 0x00, 0x00, 0x00, //0x0000574c jbe LBB23_25 - 0xe9, 0x5e, 0x03, 0x00, 0x00, //0x00005752 jmp LBB23_68 - //0x00005757 LBB23_14 - 0x83, 0xfe, 0x2c, //0x00005757 cmpl $44, %esi - 0x0f, 0x85, 0x0e, 0x01, 0x00, 0x00, //0x0000575a jne LBB23_15 - 0x48, 0x81, 0xfa, 0xff, 0x0f, 0x00, 0x00, //0x00005760 cmpq $4095, %rdx - 0x0f, 0x8f, 0x0b, 0x03, 0x00, 0x00, //0x00005767 jg LBB23_69 - 0x48, 0x8d, 0x42, 0x01, //0x0000576d leaq $1(%rdx), %rax - 0x49, 0x89, 0x45, 0x00, //0x00005771 movq %rax, (%r13) - 0x49, 0xc7, 0x44, 0xd5, 0x08, 0x03, 0x00, 0x00, 0x00, //0x00005775 movq $3, $8(%r13,%rdx,8) - 0xe9, 0x3d, 0xff, 0xff, 0xff, //0x0000577e jmp LBB23_3 - //0x00005783 LBB23_16 - 0x3c, 0x22, //0x00005783 cmpb $34, %al - 0x0f, 0x85, 0x2a, 0x03, 0x00, 0x00, //0x00005785 jne LBB23_68 - 0x49, 0xc7, 0x44, 0xd5, 0x00, 0x04, 0x00, 0x00, 0x00, //0x0000578b movq $4, (%r13,%rdx,8) - 0x48, 0xc7, 0x45, 0xd0, 0xff, 0xff, 0xff, 0xff, //0x00005794 movq $-1, $-48(%rbp) - 0x4d, 0x8b, 0x38, //0x0000579c movq (%r8), %r15 - 0x4c, 0x89, 0xf7, //0x0000579f movq %r14, %rdi - //0x000057a2 LBB23_18 - 0x4c, 0x89, 0xfe, //0x000057a2 movq %r15, %rsi - 0x48, 0x8d, 0x55, 0xd0, //0x000057a5 leaq $-48(%rbp), %rdx - 0x48, 0x8b, 0x4d, 0xb8, //0x000057a9 movq $-72(%rbp), %rcx - 0x4c, 0x89, 0xc3, //0x000057ad movq %r8, %rbx - 0xe8, 0xeb, 0xf0, 0xff, 0xff, //0x000057b0 callq _advance_string - 0x49, 0x89, 0xc6, //0x000057b5 movq %rax, %r14 - 0x48, 0x85, 0xc0, //0x000057b8 testq %rax, %rax - 0x0f, 0x88, 0xc3, 0x02, 0x00, 0x00, //0x000057bb js LBB23_64 - 0x4c, 0x89, 0x33, //0x000057c1 movq %r14, (%rbx) - 0x4d, 0x85, 0xff, //0x000057c4 testq %r15, %r15 - 0x49, 0x89, 0xd8, //0x000057c7 movq %rbx, %r8 - 0x0f, 0x8f, 0xf0, 0xfe, 0xff, 0xff, //0x000057ca jg LBB23_3 - 0xe9, 0xc7, 0x02, 0x00, 0x00, //0x000057d0 jmp LBB23_20 - //0x000057d5 LBB23_21 - 0x3c, 0x3a, //0x000057d5 cmpb $58, %al - 0x0f, 0x85, 0xd8, 0x02, 0x00, 0x00, //0x000057d7 jne LBB23_68 - 0x49, 0xc7, 0x44, 0xd5, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000057dd movq $0, (%r13,%rdx,8) - 0xe9, 0xd5, 0xfe, 0xff, 0xff, //0x000057e6 jmp LBB23_3 - //0x000057eb LBB23_23 - 0x3c, 0x5d, //0x000057eb cmpb $93, %al - 0x0f, 0x84, 0x84, 0x00, 0x00, 0x00, //0x000057ed je LBB23_12 - 0x49, 0xc7, 0x44, 0xd5, 0x00, 0x01, 0x00, 0x00, 0x00, //0x000057f3 movq $1, (%r13,%rdx,8) - 0x83, 0xfe, 0x7b, //0x000057fc cmpl $123, %esi - 0x0f, 0x87, 0xb0, 0x02, 0x00, 0x00, //0x000057ff ja LBB23_68 - //0x00005805 LBB23_25 - 0x89, 0xf0, //0x00005805 movl %esi, %eax - 0x48, 0x8d, 0x0d, 0xde, 0x03, 0x00, 0x00, //0x00005807 leaq $990(%rip), %rcx /* LJTI23_1+0(%rip) */ - 0x48, 0x63, 0x04, 0x81, //0x0000580e movslq (%rcx,%rax,4), %rax - 0x48, 0x01, 0xc8, //0x00005812 addq %rcx, %rax - 0x49, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x00005815 movq $-1, %r14 - 0xff, 0xe0, //0x0000581c jmpq *%rax - //0x0000581e LBB23_28 - 0x4c, 0x89, 0xc3, //0x0000581e movq %r8, %rbx - 0x4d, 0x8b, 0x38, //0x00005821 movq (%r8), %r15 - 0x4d, 0x8d, 0x77, 0xff, //0x00005824 leaq $-1(%r15), %r14 - 0x48, 0x8b, 0x45, 0xc8, //0x00005828 movq $-56(%rbp), %rax - 0x48, 0x8b, 0x38, //0x0000582c movq (%rax), %rdi - 0x4c, 0x01, 0xf7, //0x0000582f addq %r14, %rdi - 0x48, 0x8b, 0x70, 0x08, //0x00005832 movq $8(%rax), %rsi - 0x4c, 0x29, 0xf6, //0x00005836 subq %r14, %rsi - 0xe8, 0xf2, 0x07, 0x00, 0x00, //0x00005839 callq _do_skip_number - 0x48, 0x85, 0xc0, //0x0000583e testq %rax, %rax - 0x0f, 0x88, 0x61, 0x02, 0x00, 0x00, //0x00005841 js LBB23_65 - 0x48, 0x8b, 0x0b, //0x00005847 movq (%rbx), %rcx - 0x48, 0x01, 0xc8, //0x0000584a addq %rcx, %rax - 0x48, 0x83, 0xc0, 0xff, //0x0000584d addq $-1, %rax - 0x48, 0x89, 0x03, //0x00005851 movq %rax, (%rbx) - 0x4d, 0x85, 0xff, //0x00005854 testq %r15, %r15 - 0x49, 0x89, 0xd8, //0x00005857 movq %rbx, %r8 - 0x0f, 0x8f, 0x60, 0xfe, 0xff, 0xff, //0x0000585a jg LBB23_3 - 0xe9, 0x01, 0x02, 0x00, 0x00, //0x00005860 jmp LBB23_75 - //0x00005865 LBB23_26 - 0x83, 0xfe, 0x22, //0x00005865 cmpl $34, %esi - 0x0f, 0x84, 0x41, 0x00, 0x00, 0x00, //0x00005868 je LBB23_34 - //0x0000586e LBB23_15 - 0x83, 0xfe, 0x7d, //0x0000586e cmpl $125, %esi - 0x0f, 0x85, 0x3e, 0x02, 0x00, 0x00, //0x00005871 jne LBB23_68 - //0x00005877 LBB23_12 - 0x49, 0x89, 0x4d, 0x00, //0x00005877 movq %rcx, (%r13) - 0x4d, 0x89, 0xe6, //0x0000587b movq %r12, %r14 - 0x48, 0x85, 0xc9, //0x0000587e testq %rcx, %rcx - 0x0f, 0x85, 0x49, 0xfe, 0xff, 0xff, //0x00005881 jne LBB23_5 - 0xe9, 0xda, 0x01, 0x00, 0x00, //0x00005887 jmp LBB23_75 - //0x0000588c LBB23_30 - 0x48, 0x81, 0xfa, 0xff, 0x0f, 0x00, 0x00, //0x0000588c cmpq $4095, %rdx - 0x0f, 0x8f, 0xdf, 0x01, 0x00, 0x00, //0x00005893 jg LBB23_69 - 0x48, 0x8d, 0x42, 0x01, //0x00005899 leaq $1(%rdx), %rax - 0x49, 0x89, 0x45, 0x00, //0x0000589d movq %rax, (%r13) - 0x49, 0xc7, 0x44, 0xd5, 0x08, 0x00, 0x00, 0x00, 0x00, //0x000058a1 movq $0, $8(%r13,%rdx,8) - 0xe9, 0x11, 0xfe, 0xff, 0xff, //0x000058aa jmp LBB23_3 - //0x000058af LBB23_34 - 0x49, 0xc7, 0x44, 0xd5, 0x00, 0x02, 0x00, 0x00, 0x00, //0x000058af movq $2, (%r13,%rdx,8) - 0x48, 0xc7, 0x45, 0xd0, 0xff, 0xff, 0xff, 0xff, //0x000058b8 movq $-1, $-48(%rbp) - 0x4d, 0x8b, 0x38, //0x000058c0 movq (%r8), %r15 - 0x4c, 0x89, 0xf7, //0x000058c3 movq %r14, %rdi - 0x4c, 0x89, 0xfe, //0x000058c6 movq %r15, %rsi - 0x48, 0x8d, 0x55, 0xd0, //0x000058c9 leaq $-48(%rbp), %rdx - 0x48, 0x8b, 0x4d, 0xb8, //0x000058cd movq $-72(%rbp), %rcx - 0x4c, 0x89, 0xc3, //0x000058d1 movq %r8, %rbx - 0xe8, 0xc7, 0xef, 0xff, 0xff, //0x000058d4 callq _advance_string - 0x49, 0x89, 0xc6, //0x000058d9 movq %rax, %r14 - 0x48, 0x85, 0xc0, //0x000058dc testq %rax, %rax - 0x0f, 0x88, 0x9f, 0x01, 0x00, 0x00, //0x000058df js LBB23_64 - 0x4c, 0x89, 0x33, //0x000058e5 movq %r14, (%rbx) - 0x4d, 0x85, 0xff, //0x000058e8 testq %r15, %r15 - 0x0f, 0x8e, 0xab, 0x01, 0x00, 0x00, //0x000058eb jle LBB23_20 - 0x49, 0x8b, 0x45, 0x00, //0x000058f1 movq (%r13), %rax - 0x48, 0x3d, 0xff, 0x0f, 0x00, 0x00, //0x000058f5 cmpq $4095, %rax - 0x0f, 0x8f, 0x77, 0x01, 0x00, 0x00, //0x000058fb jg LBB23_69 - 0x49, 0x89, 0xd8, //0x00005901 movq %rbx, %r8 - 0x48, 0x8d, 0x48, 0x01, //0x00005904 leaq $1(%rax), %rcx - 0x49, 0x89, 0x4d, 0x00, //0x00005908 movq %rcx, (%r13) - 0x49, 0xc7, 0x44, 0xc5, 0x08, 0x04, 0x00, 0x00, 0x00, //0x0000590c movq $4, $8(%r13,%rax,8) - 0xe9, 0xa6, 0xfd, 0xff, 0xff, //0x00005915 jmp LBB23_3 - //0x0000591a LBB23_38 - 0x48, 0xc7, 0x45, 0xd0, 0xff, 0xff, 0xff, 0xff, //0x0000591a movq $-1, $-48(%rbp) - 0x4d, 0x8b, 0x38, //0x00005922 movq (%r8), %r15 - 0x48, 0x8b, 0x7d, 0xc8, //0x00005925 movq $-56(%rbp), %rdi - 0xe9, 0x74, 0xfe, 0xff, 0xff, //0x00005929 jmp LBB23_18 - //0x0000592e LBB23_39 - 0x4d, 0x8b, 0x30, //0x0000592e movq (%r8), %r14 - 0x48, 0x8b, 0x45, 0xc8, //0x00005931 movq $-56(%rbp), %rax - 0x48, 0x8b, 0x38, //0x00005935 movq (%rax), %rdi - 0x4c, 0x01, 0xf7, //0x00005938 addq %r14, %rdi - 0x48, 0x8b, 0x70, 0x08, //0x0000593b movq $8(%rax), %rsi - 0x4c, 0x29, 0xf6, //0x0000593f subq %r14, %rsi - 0x4c, 0x89, 0xc3, //0x00005942 movq %r8, %rbx - 0xe8, 0xe6, 0x06, 0x00, 0x00, //0x00005945 callq _do_skip_number - 0x48, 0x85, 0xc0, //0x0000594a testq %rax, %rax - 0x0f, 0x88, 0x7d, 0x01, 0x00, 0x00, //0x0000594d js LBB23_67 - 0x48, 0x01, 0x03, //0x00005953 addq %rax, (%rbx) - 0x4d, 0x85, 0xf6, //0x00005956 testq %r14, %r14 - 0x49, 0x89, 0xd8, //0x00005959 movq %rbx, %r8 - 0x0f, 0x8f, 0x5e, 0xfd, 0xff, 0xff, //0x0000595c jg LBB23_3 - 0xe9, 0x74, 0x01, 0x00, 0x00, //0x00005962 jmp LBB23_41 - //0x00005967 LBB23_42 - 0x49, 0x8b, 0x45, 0x00, //0x00005967 movq (%r13), %rax - 0x48, 0x3d, 0xff, 0x0f, 0x00, 0x00, //0x0000596b cmpq $4095, %rax - 0x0f, 0x8f, 0x01, 0x01, 0x00, 0x00, //0x00005971 jg LBB23_69 - 0x48, 0x8d, 0x48, 0x01, //0x00005977 leaq $1(%rax), %rcx - 0x49, 0x89, 0x4d, 0x00, //0x0000597b movq %rcx, (%r13) - 0x49, 0xc7, 0x44, 0xc5, 0x08, 0x05, 0x00, 0x00, 0x00, //0x0000597f movq $5, $8(%r13,%rax,8) - 0xe9, 0x33, 0xfd, 0xff, 0xff, //0x00005988 jmp LBB23_3 - //0x0000598d LBB23_44 - 0x49, 0x8b, 0x00, //0x0000598d movq (%r8), %rax - 0x48, 0x8b, 0x4d, 0xc0, //0x00005990 movq $-64(%rbp), %rcx - 0x48, 0x8b, 0x09, //0x00005994 movq (%rcx), %rcx - 0x48, 0x8d, 0x51, 0xfc, //0x00005997 leaq $-4(%rcx), %rdx - 0x48, 0x39, 0xd0, //0x0000599b cmpq %rdx, %rax - 0x0f, 0x87, 0x1d, 0x01, 0x00, 0x00, //0x0000599e ja LBB23_66 - 0x48, 0x8b, 0x4d, 0xc8, //0x000059a4 movq $-56(%rbp), %rcx - 0x48, 0x8b, 0x09, //0x000059a8 movq (%rcx), %rcx - 0x8b, 0x14, 0x01, //0x000059ab movl (%rcx,%rax), %edx - 0x81, 0xfa, 0x61, 0x6c, 0x73, 0x65, //0x000059ae cmpl $1702063201, %edx - 0x0f, 0x85, 0x2a, 0x01, 0x00, 0x00, //0x000059b4 jne LBB23_70 - 0x48, 0x8d, 0x48, 0x04, //0x000059ba leaq $4(%rax), %rcx - 0x49, 0x89, 0x08, //0x000059be movq %rcx, (%r8) - 0x48, 0x85, 0xc0, //0x000059c1 testq %rax, %rax - 0x0f, 0x8f, 0xf6, 0xfc, 0xff, 0xff, //0x000059c4 jg LBB23_3 - 0xe9, 0xf6, 0x01, 0x00, 0x00, //0x000059ca jmp LBB23_47 - //0x000059cf LBB23_48 - 0x49, 0x8b, 0x00, //0x000059cf movq (%r8), %rax - 0x48, 0x8b, 0x4d, 0xc0, //0x000059d2 movq $-64(%rbp), %rcx - 0x48, 0x8b, 0x09, //0x000059d6 movq (%rcx), %rcx - 0x48, 0x8d, 0x51, 0xfd, //0x000059d9 leaq $-3(%rcx), %rdx - 0x48, 0x39, 0xd0, //0x000059dd cmpq %rdx, %rax - 0x0f, 0x87, 0xdb, 0x00, 0x00, 0x00, //0x000059e0 ja LBB23_66 - 0x48, 0x8b, 0x4d, 0xc8, //0x000059e6 movq $-56(%rbp), %rcx - 0x48, 0x8b, 0x09, //0x000059ea movq (%rcx), %rcx - 0x4c, 0x8d, 0x70, 0xff, //0x000059ed leaq $-1(%rax), %r14 - 0x81, 0x7c, 0x01, 0xff, 0x6e, 0x75, 0x6c, 0x6c, //0x000059f1 cmpl $1819047278, $-1(%rcx,%rax) - 0x0f, 0x84, 0xae, 0xfc, 0xff, 0xff, //0x000059f9 je LBB23_2 - 0xe9, 0x32, 0x01, 0x00, 0x00, //0x000059ff jmp LBB23_50 - //0x00005a04 LBB23_54 - 0x49, 0x8b, 0x00, //0x00005a04 movq (%r8), %rax - 0x48, 0x8b, 0x4d, 0xc0, //0x00005a07 movq $-64(%rbp), %rcx - 0x48, 0x8b, 0x09, //0x00005a0b movq (%rcx), %rcx - 0x48, 0x8d, 0x51, 0xfd, //0x00005a0e leaq $-3(%rcx), %rdx - 0x48, 0x39, 0xd0, //0x00005a12 cmpq %rdx, %rax - 0x0f, 0x87, 0xa6, 0x00, 0x00, 0x00, //0x00005a15 ja LBB23_66 - 0x48, 0x8b, 0x4d, 0xc8, //0x00005a1b movq $-56(%rbp), %rcx - 0x48, 0x8b, 0x09, //0x00005a1f movq (%rcx), %rcx - 0x4c, 0x8d, 0x70, 0xff, //0x00005a22 leaq $-1(%rax), %r14 - 0x81, 0x7c, 0x01, 0xff, 0x74, 0x72, 0x75, 0x65, //0x00005a26 cmpl $1702195828, $-1(%rcx,%rax) - 0x0f, 0x84, 0x79, 0xfc, 0xff, 0xff, //0x00005a2e je LBB23_2 - 0xe9, 0x41, 0x01, 0x00, 0x00, //0x00005a34 jmp LBB23_56 - //0x00005a39 LBB23_61 - 0x49, 0x8b, 0x45, 0x00, //0x00005a39 movq (%r13), %rax - 0x48, 0x3d, 0xff, 0x0f, 0x00, 0x00, //0x00005a3d cmpq $4095, %rax - 0x0f, 0x8f, 0x2f, 0x00, 0x00, 0x00, //0x00005a43 jg LBB23_69 - 0x48, 0x8d, 0x48, 0x01, //0x00005a49 leaq $1(%rax), %rcx - 0x49, 0x89, 0x4d, 0x00, //0x00005a4d movq %rcx, (%r13) - 0x49, 0xc7, 0x44, 0xc5, 0x08, 0x06, 0x00, 0x00, 0x00, //0x00005a51 movq $6, $8(%r13,%rax,8) - 0xe9, 0x61, 0xfc, 0xff, 0xff, //0x00005a5a jmp LBB23_3 - //0x00005a5f LBB23_63 - 0x49, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x00005a5f movq $-1, %r14 - //0x00005a66 LBB23_75 - 0x4c, 0x89, 0xf0, //0x00005a66 movq %r14, %rax - 0x48, 0x83, 0xc4, 0x28, //0x00005a69 addq $40, %rsp - 0x5b, //0x00005a6d popq %rbx - 0x41, 0x5c, //0x00005a6e popq %r12 - 0x41, 0x5d, //0x00005a70 popq %r13 - 0x41, 0x5e, //0x00005a72 popq %r14 - 0x41, 0x5f, //0x00005a74 popq %r15 - 0x5d, //0x00005a76 popq %rbp - 0xc3, //0x00005a77 retq - //0x00005a78 LBB23_69 - 0x49, 0xc7, 0xc6, 0xf9, 0xff, 0xff, 0xff, //0x00005a78 movq $-7, %r14 - 0xe9, 0xe2, 0xff, 0xff, 0xff, //0x00005a7f jmp LBB23_75 - //0x00005a84 LBB23_64 - 0x49, 0x83, 0xfe, 0xff, //0x00005a84 cmpq $-1, %r14 - 0x48, 0x8d, 0x45, 0xd0, //0x00005a88 leaq $-48(%rbp), %rax - 0x48, 0x0f, 0x44, 0x45, 0xc0, //0x00005a8c cmoveq $-64(%rbp), %rax - 0x48, 0x8b, 0x00, //0x00005a91 movq (%rax), %rax - 0x48, 0x89, 0x03, //0x00005a94 movq %rax, (%rbx) - 0xe9, 0xca, 0xff, 0xff, 0xff, //0x00005a97 jmp LBB23_75 - //0x00005a9c LBB23_20 - 0x49, 0x83, 0xc7, 0xff, //0x00005a9c addq $-1, %r15 - 0x4d, 0x89, 0xfe, //0x00005aa0 movq %r15, %r14 - 0xe9, 0xbe, 0xff, 0xff, 0xff, //0x00005aa3 jmp LBB23_75 - //0x00005aa8 LBB23_65 - 0x48, 0x8b, 0x0b, //0x00005aa8 movq (%rbx), %rcx - 0x48, 0x29, 0xc1, //0x00005aab subq %rax, %rcx - 0x48, 0x83, 0xc1, 0xfe, //0x00005aae addq $-2, %rcx - 0x48, 0x89, 0x0b, //0x00005ab2 movq %rcx, (%rbx) - //0x00005ab5 LBB23_68 - 0x49, 0xc7, 0xc6, 0xfe, 0xff, 0xff, 0xff, //0x00005ab5 movq $-2, %r14 - 0xe9, 0xa5, 0xff, 0xff, 0xff, //0x00005abc jmp LBB23_75 - //0x00005ac1 LBB23_66 - 0x49, 0x89, 0x08, //0x00005ac1 movq %rcx, (%r8) - 0x49, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x00005ac4 movq $-1, %r14 - 0xe9, 0x96, 0xff, 0xff, 0xff, //0x00005acb jmp LBB23_75 - //0x00005ad0 LBB23_67 - 0x48, 0xf7, 0xd0, //0x00005ad0 notq %rax - 0x48, 0x01, 0x03, //0x00005ad3 addq %rax, (%rbx) - 0xe9, 0xda, 0xff, 0xff, 0xff, //0x00005ad6 jmp LBB23_68 - //0x00005adb LBB23_41 - 0x49, 0x83, 0xc6, 0xff, //0x00005adb addq $-1, %r14 - 0xe9, 0x82, 0xff, 0xff, 0xff, //0x00005adf jmp LBB23_75 - //0x00005ae4 LBB23_70 - 0x49, 0xc7, 0xc6, 0xfe, 0xff, 0xff, 0xff, //0x00005ae4 movq $-2, %r14 - 0x80, 0xfa, 0x61, //0x00005aeb cmpb $97, %dl - 0x0f, 0x85, 0x72, 0xff, 0xff, 0xff, //0x00005aee jne LBB23_75 - 0x48, 0x8d, 0x50, 0x01, //0x00005af4 leaq $1(%rax), %rdx - 0x49, 0x89, 0x10, //0x00005af8 movq %rdx, (%r8) - 0x80, 0x7c, 0x01, 0x01, 0x6c, //0x00005afb cmpb $108, $1(%rcx,%rax) - 0x0f, 0x85, 0x60, 0xff, 0xff, 0xff, //0x00005b00 jne LBB23_75 - 0x48, 0x8d, 0x50, 0x02, //0x00005b06 leaq $2(%rax), %rdx - 0x49, 0x89, 0x10, //0x00005b0a movq %rdx, (%r8) - 0x80, 0x7c, 0x01, 0x02, 0x73, //0x00005b0d cmpb $115, $2(%rcx,%rax) - 0x0f, 0x85, 0x4e, 0xff, 0xff, 0xff, //0x00005b12 jne LBB23_75 - 0x48, 0x8d, 0x50, 0x03, //0x00005b18 leaq $3(%rax), %rdx - 0x49, 0x89, 0x10, //0x00005b1c movq %rdx, (%r8) - 0x80, 0x7c, 0x01, 0x03, 0x65, //0x00005b1f cmpb $101, $3(%rcx,%rax) - 0x0f, 0x85, 0x3c, 0xff, 0xff, 0xff, //0x00005b24 jne LBB23_75 - 0x48, 0x83, 0xc0, 0x04, //0x00005b2a addq $4, %rax - 0x49, 0x89, 0x00, //0x00005b2e movq %rax, (%r8) - 0xe9, 0x30, 0xff, 0xff, 0xff, //0x00005b31 jmp LBB23_75 - //0x00005b36 LBB23_50 - 0x4d, 0x89, 0x30, //0x00005b36 movq %r14, (%r8) - 0x42, 0x80, 0x3c, 0x31, 0x6e, //0x00005b39 cmpb $110, (%rcx,%r14) - 0x0f, 0x85, 0x71, 0xff, 0xff, 0xff, //0x00005b3e jne LBB23_68 - 0x49, 0x89, 0x00, //0x00005b44 movq %rax, (%r8) - 0x80, 0x3c, 0x01, 0x75, //0x00005b47 cmpb $117, (%rcx,%rax) - 0x0f, 0x85, 0x64, 0xff, 0xff, 0xff, //0x00005b4b jne LBB23_68 - 0x48, 0x8d, 0x50, 0x01, //0x00005b51 leaq $1(%rax), %rdx - 0x49, 0x89, 0x10, //0x00005b55 movq %rdx, (%r8) - 0x80, 0x7c, 0x01, 0x01, 0x6c, //0x00005b58 cmpb $108, $1(%rcx,%rax) - 0x0f, 0x85, 0x52, 0xff, 0xff, 0xff, //0x00005b5d jne LBB23_68 - 0x48, 0x8d, 0x50, 0x02, //0x00005b63 leaq $2(%rax), %rdx - 0x49, 0x89, 0x10, //0x00005b67 movq %rdx, (%r8) - 0x80, 0x7c, 0x01, 0x02, 0x6c, //0x00005b6a cmpb $108, $2(%rcx,%rax) - 0x0f, 0x84, 0x44, 0x00, 0x00, 0x00, //0x00005b6f je LBB23_60 - 0xe9, 0x3b, 0xff, 0xff, 0xff, //0x00005b75 jmp LBB23_68 - //0x00005b7a LBB23_56 - 0x4d, 0x89, 0x30, //0x00005b7a movq %r14, (%r8) - 0x42, 0x80, 0x3c, 0x31, 0x74, //0x00005b7d cmpb $116, (%rcx,%r14) - 0x0f, 0x85, 0x2d, 0xff, 0xff, 0xff, //0x00005b82 jne LBB23_68 - 0x49, 0x89, 0x00, //0x00005b88 movq %rax, (%r8) - 0x80, 0x3c, 0x01, 0x72, //0x00005b8b cmpb $114, (%rcx,%rax) - 0x0f, 0x85, 0x20, 0xff, 0xff, 0xff, //0x00005b8f jne LBB23_68 - 0x48, 0x8d, 0x50, 0x01, //0x00005b95 leaq $1(%rax), %rdx - 0x49, 0x89, 0x10, //0x00005b99 movq %rdx, (%r8) - 0x80, 0x7c, 0x01, 0x01, 0x75, //0x00005b9c cmpb $117, $1(%rcx,%rax) - 0x0f, 0x85, 0x0e, 0xff, 0xff, 0xff, //0x00005ba1 jne LBB23_68 - 0x48, 0x8d, 0x50, 0x02, //0x00005ba7 leaq $2(%rax), %rdx - 0x49, 0x89, 0x10, //0x00005bab movq %rdx, (%r8) - 0x80, 0x7c, 0x01, 0x02, 0x65, //0x00005bae cmpb $101, $2(%rcx,%rax) - 0x0f, 0x85, 0xfc, 0xfe, 0xff, 0xff, //0x00005bb3 jne LBB23_68 - //0x00005bb9 LBB23_60 - 0x48, 0x83, 0xc0, 0x03, //0x00005bb9 addq $3, %rax - 0x49, 0x89, 0x00, //0x00005bbd movq %rax, (%r8) - 0xe9, 0xf0, 0xfe, 0xff, 0xff, //0x00005bc0 jmp LBB23_68 - //0x00005bc5 LBB23_47 - 0x48, 0x83, 0xc0, 0xff, //0x00005bc5 addq $-1, %rax - 0x49, 0x89, 0xc6, //0x00005bc9 movq %rax, %r14 - 0xe9, 0x95, 0xfe, 0xff, 0xff, //0x00005bcc jmp LBB23_75 - 0x90, 0x90, 0x90, //0x00005bd1 .p2align 2, 0x90 - // // .set L23_0_set_10, LBB23_10-LJTI23_0 - // // .set L23_0_set_14, LBB23_14-LJTI23_0 - // // .set L23_0_set_16, LBB23_16-LJTI23_0 - // // .set L23_0_set_21, LBB23_21-LJTI23_0 - // // .set L23_0_set_23, LBB23_23-LJTI23_0 - // // .set L23_0_set_26, LBB23_26-LJTI23_0 - //0x00005bd4 LJTI23_0 - 0x5a, 0xfb, 0xff, 0xff, //0x00005bd4 .long L23_0_set_10 - 0x83, 0xfb, 0xff, 0xff, //0x00005bd8 .long L23_0_set_14 - 0xaf, 0xfb, 0xff, 0xff, //0x00005bdc .long L23_0_set_16 - 0x01, 0xfc, 0xff, 0xff, //0x00005be0 .long L23_0_set_21 - 0x17, 0xfc, 0xff, 0xff, //0x00005be4 .long L23_0_set_23 - 0x91, 0xfc, 0xff, 0xff, //0x00005be8 .long L23_0_set_26 - // // .set L23_1_set_75, LBB23_75-LJTI23_1 - // // .set L23_1_set_68, LBB23_68-LJTI23_1 - // // .set L23_1_set_38, LBB23_38-LJTI23_1 - // // .set L23_1_set_39, LBB23_39-LJTI23_1 - // // .set L23_1_set_28, LBB23_28-LJTI23_1 - // // .set L23_1_set_42, LBB23_42-LJTI23_1 - // // .set L23_1_set_44, LBB23_44-LJTI23_1 - // // .set L23_1_set_48, LBB23_48-LJTI23_1 - // // .set L23_1_set_54, LBB23_54-LJTI23_1 - // // .set L23_1_set_61, LBB23_61-LJTI23_1 - //0x00005bec LJTI23_1 - 0x7a, 0xfe, 0xff, 0xff, //0x00005bec .long L23_1_set_75 - 0xc9, 0xfe, 0xff, 0xff, //0x00005bf0 .long L23_1_set_68 - 0xc9, 0xfe, 0xff, 0xff, //0x00005bf4 .long L23_1_set_68 - 0xc9, 0xfe, 0xff, 0xff, //0x00005bf8 .long L23_1_set_68 - 0xc9, 0xfe, 0xff, 0xff, //0x00005bfc .long L23_1_set_68 - 0xc9, 0xfe, 0xff, 0xff, //0x00005c00 .long L23_1_set_68 - 0xc9, 0xfe, 0xff, 0xff, //0x00005c04 .long L23_1_set_68 - 0xc9, 0xfe, 0xff, 0xff, //0x00005c08 .long L23_1_set_68 - 0xc9, 0xfe, 0xff, 0xff, //0x00005c0c .long L23_1_set_68 - 0xc9, 0xfe, 0xff, 0xff, //0x00005c10 .long L23_1_set_68 - 0xc9, 0xfe, 0xff, 0xff, //0x00005c14 .long L23_1_set_68 - 0xc9, 0xfe, 0xff, 0xff, //0x00005c18 .long L23_1_set_68 - 0xc9, 0xfe, 0xff, 0xff, //0x00005c1c .long L23_1_set_68 - 0xc9, 0xfe, 0xff, 0xff, //0x00005c20 .long L23_1_set_68 - 0xc9, 0xfe, 0xff, 0xff, //0x00005c24 .long L23_1_set_68 - 0xc9, 0xfe, 0xff, 0xff, //0x00005c28 .long L23_1_set_68 - 0xc9, 0xfe, 0xff, 0xff, //0x00005c2c .long L23_1_set_68 - 0xc9, 0xfe, 0xff, 0xff, //0x00005c30 .long L23_1_set_68 - 0xc9, 0xfe, 0xff, 0xff, //0x00005c34 .long L23_1_set_68 - 0xc9, 0xfe, 0xff, 0xff, //0x00005c38 .long L23_1_set_68 - 0xc9, 0xfe, 0xff, 0xff, //0x00005c3c .long L23_1_set_68 - 0xc9, 0xfe, 0xff, 0xff, //0x00005c40 .long L23_1_set_68 - 0xc9, 0xfe, 0xff, 0xff, //0x00005c44 .long L23_1_set_68 - 0xc9, 0xfe, 0xff, 0xff, //0x00005c48 .long L23_1_set_68 - 0xc9, 0xfe, 0xff, 0xff, //0x00005c4c .long L23_1_set_68 - 0xc9, 0xfe, 0xff, 0xff, //0x00005c50 .long L23_1_set_68 - 0xc9, 0xfe, 0xff, 0xff, //0x00005c54 .long L23_1_set_68 - 0xc9, 0xfe, 0xff, 0xff, //0x00005c58 .long L23_1_set_68 - 0xc9, 0xfe, 0xff, 0xff, //0x00005c5c .long L23_1_set_68 - 0xc9, 0xfe, 0xff, 0xff, //0x00005c60 .long L23_1_set_68 - 0xc9, 0xfe, 0xff, 0xff, //0x00005c64 .long L23_1_set_68 - 0xc9, 0xfe, 0xff, 0xff, //0x00005c68 .long L23_1_set_68 - 0xc9, 0xfe, 0xff, 0xff, //0x00005c6c .long L23_1_set_68 - 0xc9, 0xfe, 0xff, 0xff, //0x00005c70 .long L23_1_set_68 - 0x2e, 0xfd, 0xff, 0xff, //0x00005c74 .long L23_1_set_38 - 0xc9, 0xfe, 0xff, 0xff, //0x00005c78 .long L23_1_set_68 - 0xc9, 0xfe, 0xff, 0xff, //0x00005c7c .long L23_1_set_68 - 0xc9, 0xfe, 0xff, 0xff, //0x00005c80 .long L23_1_set_68 - 0xc9, 0xfe, 0xff, 0xff, //0x00005c84 .long L23_1_set_68 - 0xc9, 0xfe, 0xff, 0xff, //0x00005c88 .long L23_1_set_68 - 0xc9, 0xfe, 0xff, 0xff, //0x00005c8c .long L23_1_set_68 - 0xc9, 0xfe, 0xff, 0xff, //0x00005c90 .long L23_1_set_68 - 0xc9, 0xfe, 0xff, 0xff, //0x00005c94 .long L23_1_set_68 - 0xc9, 0xfe, 0xff, 0xff, //0x00005c98 .long L23_1_set_68 - 0xc9, 0xfe, 0xff, 0xff, //0x00005c9c .long L23_1_set_68 - 0x42, 0xfd, 0xff, 0xff, //0x00005ca0 .long L23_1_set_39 - 0xc9, 0xfe, 0xff, 0xff, //0x00005ca4 .long L23_1_set_68 - 0xc9, 0xfe, 0xff, 0xff, //0x00005ca8 .long L23_1_set_68 - 0x32, 0xfc, 0xff, 0xff, //0x00005cac .long L23_1_set_28 - 0x32, 0xfc, 0xff, 0xff, //0x00005cb0 .long L23_1_set_28 - 0x32, 0xfc, 0xff, 0xff, //0x00005cb4 .long L23_1_set_28 - 0x32, 0xfc, 0xff, 0xff, //0x00005cb8 .long L23_1_set_28 - 0x32, 0xfc, 0xff, 0xff, //0x00005cbc .long L23_1_set_28 - 0x32, 0xfc, 0xff, 0xff, //0x00005cc0 .long L23_1_set_28 - 0x32, 0xfc, 0xff, 0xff, //0x00005cc4 .long L23_1_set_28 - 0x32, 0xfc, 0xff, 0xff, //0x00005cc8 .long L23_1_set_28 - 0x32, 0xfc, 0xff, 0xff, //0x00005ccc .long L23_1_set_28 - 0x32, 0xfc, 0xff, 0xff, //0x00005cd0 .long L23_1_set_28 - 0xc9, 0xfe, 0xff, 0xff, //0x00005cd4 .long L23_1_set_68 - 0xc9, 0xfe, 0xff, 0xff, //0x00005cd8 .long L23_1_set_68 - 0xc9, 0xfe, 0xff, 0xff, //0x00005cdc .long L23_1_set_68 - 0xc9, 0xfe, 0xff, 0xff, //0x00005ce0 .long L23_1_set_68 - 0xc9, 0xfe, 0xff, 0xff, //0x00005ce4 .long L23_1_set_68 - 0xc9, 0xfe, 0xff, 0xff, //0x00005ce8 .long L23_1_set_68 - 0xc9, 0xfe, 0xff, 0xff, //0x00005cec .long L23_1_set_68 - 0xc9, 0xfe, 0xff, 0xff, //0x00005cf0 .long L23_1_set_68 - 0xc9, 0xfe, 0xff, 0xff, //0x00005cf4 .long L23_1_set_68 - 0xc9, 0xfe, 0xff, 0xff, //0x00005cf8 .long L23_1_set_68 - 0xc9, 0xfe, 0xff, 0xff, //0x00005cfc .long L23_1_set_68 - 0xc9, 0xfe, 0xff, 0xff, //0x00005d00 .long L23_1_set_68 - 0xc9, 0xfe, 0xff, 0xff, //0x00005d04 .long L23_1_set_68 - 0xc9, 0xfe, 0xff, 0xff, //0x00005d08 .long L23_1_set_68 - 0xc9, 0xfe, 0xff, 0xff, //0x00005d0c .long L23_1_set_68 - 0xc9, 0xfe, 0xff, 0xff, //0x00005d10 .long L23_1_set_68 - 0xc9, 0xfe, 0xff, 0xff, //0x00005d14 .long L23_1_set_68 - 0xc9, 0xfe, 0xff, 0xff, //0x00005d18 .long L23_1_set_68 - 0xc9, 0xfe, 0xff, 0xff, //0x00005d1c .long L23_1_set_68 - 0xc9, 0xfe, 0xff, 0xff, //0x00005d20 .long L23_1_set_68 - 0xc9, 0xfe, 0xff, 0xff, //0x00005d24 .long L23_1_set_68 - 0xc9, 0xfe, 0xff, 0xff, //0x00005d28 .long L23_1_set_68 - 0xc9, 0xfe, 0xff, 0xff, //0x00005d2c .long L23_1_set_68 - 0xc9, 0xfe, 0xff, 0xff, //0x00005d30 .long L23_1_set_68 - 0xc9, 0xfe, 0xff, 0xff, //0x00005d34 .long L23_1_set_68 - 0xc9, 0xfe, 0xff, 0xff, //0x00005d38 .long L23_1_set_68 - 0xc9, 0xfe, 0xff, 0xff, //0x00005d3c .long L23_1_set_68 - 0xc9, 0xfe, 0xff, 0xff, //0x00005d40 .long L23_1_set_68 - 0xc9, 0xfe, 0xff, 0xff, //0x00005d44 .long L23_1_set_68 - 0xc9, 0xfe, 0xff, 0xff, //0x00005d48 .long L23_1_set_68 - 0xc9, 0xfe, 0xff, 0xff, //0x00005d4c .long L23_1_set_68 - 0xc9, 0xfe, 0xff, 0xff, //0x00005d50 .long L23_1_set_68 - 0xc9, 0xfe, 0xff, 0xff, //0x00005d54 .long L23_1_set_68 - 0x7b, 0xfd, 0xff, 0xff, //0x00005d58 .long L23_1_set_42 - 0xc9, 0xfe, 0xff, 0xff, //0x00005d5c .long L23_1_set_68 - 0xc9, 0xfe, 0xff, 0xff, //0x00005d60 .long L23_1_set_68 - 0xc9, 0xfe, 0xff, 0xff, //0x00005d64 .long L23_1_set_68 - 0xc9, 0xfe, 0xff, 0xff, //0x00005d68 .long L23_1_set_68 - 0xc9, 0xfe, 0xff, 0xff, //0x00005d6c .long L23_1_set_68 - 0xc9, 0xfe, 0xff, 0xff, //0x00005d70 .long L23_1_set_68 - 0xc9, 0xfe, 0xff, 0xff, //0x00005d74 .long L23_1_set_68 - 0xc9, 0xfe, 0xff, 0xff, //0x00005d78 .long L23_1_set_68 - 0xc9, 0xfe, 0xff, 0xff, //0x00005d7c .long L23_1_set_68 - 0xc9, 0xfe, 0xff, 0xff, //0x00005d80 .long L23_1_set_68 - 0xa1, 0xfd, 0xff, 0xff, //0x00005d84 .long L23_1_set_44 - 0xc9, 0xfe, 0xff, 0xff, //0x00005d88 .long L23_1_set_68 - 0xc9, 0xfe, 0xff, 0xff, //0x00005d8c .long L23_1_set_68 - 0xc9, 0xfe, 0xff, 0xff, //0x00005d90 .long L23_1_set_68 - 0xc9, 0xfe, 0xff, 0xff, //0x00005d94 .long L23_1_set_68 - 0xc9, 0xfe, 0xff, 0xff, //0x00005d98 .long L23_1_set_68 - 0xc9, 0xfe, 0xff, 0xff, //0x00005d9c .long L23_1_set_68 - 0xc9, 0xfe, 0xff, 0xff, //0x00005da0 .long L23_1_set_68 - 0xe3, 0xfd, 0xff, 0xff, //0x00005da4 .long L23_1_set_48 - 0xc9, 0xfe, 0xff, 0xff, //0x00005da8 .long L23_1_set_68 - 0xc9, 0xfe, 0xff, 0xff, //0x00005dac .long L23_1_set_68 - 0xc9, 0xfe, 0xff, 0xff, //0x00005db0 .long L23_1_set_68 - 0xc9, 0xfe, 0xff, 0xff, //0x00005db4 .long L23_1_set_68 - 0xc9, 0xfe, 0xff, 0xff, //0x00005db8 .long L23_1_set_68 - 0x18, 0xfe, 0xff, 0xff, //0x00005dbc .long L23_1_set_54 - 0xc9, 0xfe, 0xff, 0xff, //0x00005dc0 .long L23_1_set_68 - 0xc9, 0xfe, 0xff, 0xff, //0x00005dc4 .long L23_1_set_68 - 0xc9, 0xfe, 0xff, 0xff, //0x00005dc8 .long L23_1_set_68 - 0xc9, 0xfe, 0xff, 0xff, //0x00005dcc .long L23_1_set_68 - 0xc9, 0xfe, 0xff, 0xff, //0x00005dd0 .long L23_1_set_68 - 0xc9, 0xfe, 0xff, 0xff, //0x00005dd4 .long L23_1_set_68 - 0x4d, 0xfe, 0xff, 0xff, //0x00005dd8 .long L23_1_set_61 - 0x00, 0x00, 0x00, 0x00, //0x00005ddc .p2align 4, 0x00 - //0x00005de0 LCPI24_0 - 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005de0 .quad 1 - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005de8 .quad 6 - //0x00005df0 .p2align 4, 0x90 - //0x00005df0 _skip_object - 0x55, //0x00005df0 pushq %rbp - 0x48, 0x89, 0xe5, //0x00005df1 movq %rsp, %rbp - 0x48, 0x89, 0xd0, //0x00005df4 movq %rdx, %rax - 0x48, 0x89, 0xf2, //0x00005df7 movq %rsi, %rdx - 0x48, 0x89, 0xfe, //0x00005dfa movq %rdi, %rsi - 0xc5, 0xf8, 0x28, 0x05, 0xdb, 0xff, 0xff, 0xff, //0x00005dfd vmovaps $-37(%rip), %xmm0 /* LCPI24_0+0(%rip) */ - 0xc5, 0xf8, 0x11, 0x00, //0x00005e05 vmovups %xmm0, (%rax) - 0x48, 0x89, 0xc7, //0x00005e09 movq %rax, %rdi - 0x5d, //0x00005e0c popq %rbp - 0xe9, 0x5e, 0xf8, 0xff, 0xff, //0x00005e0d jmp _fsm_exec - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00005e12 .p2align 4, 0x90 - //0x00005e20 _skip_string - 0x55, //0x00005e20 pushq %rbp - 0x48, 0x89, 0xe5, //0x00005e21 movq %rsp, %rbp - 0x41, 0x57, //0x00005e24 pushq %r15 - 0x41, 0x56, //0x00005e26 pushq %r14 - 0x41, 0x54, //0x00005e28 pushq %r12 - 0x53, //0x00005e2a pushq %rbx - 0x48, 0x83, 0xec, 0x10, //0x00005e2b subq $16, %rsp - 0x48, 0x89, 0xd1, //0x00005e2f movq %rdx, %rcx - 0x49, 0x89, 0xf6, //0x00005e32 movq %rsi, %r14 - 0x49, 0x89, 0xff, //0x00005e35 movq %rdi, %r15 - 0x48, 0xc7, 0x45, 0xd8, 0xff, 0xff, 0xff, 0xff, //0x00005e38 movq $-1, $-40(%rbp) - 0x48, 0x8b, 0x1e, //0x00005e40 movq (%rsi), %rbx - 0x4c, 0x8d, 0x65, 0xd8, //0x00005e43 leaq $-40(%rbp), %r12 - 0x48, 0x89, 0xde, //0x00005e47 movq %rbx, %rsi - 0x4c, 0x89, 0xe2, //0x00005e4a movq %r12, %rdx - 0xe8, 0x4e, 0xea, 0xff, 0xff, //0x00005e4d callq _advance_string - 0x48, 0x85, 0xc0, //0x00005e52 testq %rax, %rax - 0x0f, 0x88, 0x0f, 0x00, 0x00, 0x00, //0x00005e55 js LBB25_1 - 0x48, 0x83, 0xc3, 0xff, //0x00005e5b addq $-1, %rbx - 0x48, 0x89, 0xc1, //0x00005e5f movq %rax, %rcx - 0x48, 0x89, 0xd8, //0x00005e62 movq %rbx, %rax - 0xe9, 0x10, 0x00, 0x00, 0x00, //0x00005e65 jmp LBB25_3 - //0x00005e6a LBB25_1 - 0x49, 0x83, 0xc7, 0x08, //0x00005e6a addq $8, %r15 - 0x48, 0x83, 0xf8, 0xff, //0x00005e6e cmpq $-1, %rax - 0x4d, 0x0f, 0x44, 0xe7, //0x00005e72 cmoveq %r15, %r12 - 0x49, 0x8b, 0x0c, 0x24, //0x00005e76 movq (%r12), %rcx - //0x00005e7a LBB25_3 - 0x49, 0x89, 0x0e, //0x00005e7a movq %rcx, (%r14) - 0x48, 0x83, 0xc4, 0x10, //0x00005e7d addq $16, %rsp - 0x5b, //0x00005e81 popq %rbx - 0x41, 0x5c, //0x00005e82 popq %r12 - 0x41, 0x5e, //0x00005e84 popq %r14 - 0x41, 0x5f, //0x00005e86 popq %r15 - 0x5d, //0x00005e88 popq %rbp - 0xc3, //0x00005e89 retq - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00005e8a .p2align 4, 0x90 - //0x00005e90 _skip_negative - 0x55, //0x00005e90 pushq %rbp - 0x48, 0x89, 0xe5, //0x00005e91 movq %rsp, %rbp - 0x41, 0x56, //0x00005e94 pushq %r14 - 0x53, //0x00005e96 pushq %rbx - 0x49, 0x89, 0xf6, //0x00005e97 movq %rsi, %r14 - 0x48, 0x8b, 0x1e, //0x00005e9a movq (%rsi), %rbx - 0x48, 0x8b, 0x07, //0x00005e9d movq (%rdi), %rax - 0x48, 0x01, 0xd8, //0x00005ea0 addq %rbx, %rax - 0x48, 0x8b, 0x77, 0x08, //0x00005ea3 movq $8(%rdi), %rsi - 0x48, 0x29, 0xde, //0x00005ea7 subq %rbx, %rsi - 0x48, 0x89, 0xc7, //0x00005eaa movq %rax, %rdi - 0xe8, 0x7e, 0x01, 0x00, 0x00, //0x00005ead callq _do_skip_number - 0x48, 0x85, 0xc0, //0x00005eb2 testq %rax, %rax - 0x0f, 0x88, 0x0c, 0x00, 0x00, 0x00, //0x00005eb5 js LBB26_1 - 0x49, 0x01, 0x06, //0x00005ebb addq %rax, (%r14) - 0x48, 0x83, 0xc3, 0xff, //0x00005ebe addq $-1, %rbx - 0xe9, 0x0d, 0x00, 0x00, 0x00, //0x00005ec2 jmp LBB26_3 - //0x00005ec7 LBB26_1 - 0x48, 0xf7, 0xd0, //0x00005ec7 notq %rax - 0x49, 0x01, 0x06, //0x00005eca addq %rax, (%r14) - 0x48, 0xc7, 0xc3, 0xfe, 0xff, 0xff, 0xff, //0x00005ecd movq $-2, %rbx - //0x00005ed4 LBB26_3 - 0x48, 0x89, 0xd8, //0x00005ed4 movq %rbx, %rax - 0x5b, //0x00005ed7 popq %rbx - 0x41, 0x5e, //0x00005ed8 popq %r14 - 0x5d, //0x00005eda popq %rbp - 0xc3, //0x00005edb retq - 0x00, 0x00, 0x00, 0x00, //0x00005edc .p2align 5, 0x00 - //0x00005ee0 LCPI27_0 - 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, //0x00005ee0 QUAD $0x2f2f2f2f2f2f2f2f; QUAD $0x2f2f2f2f2f2f2f2f // .space 16, '////////////////' - 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, //0x00005ef0 QUAD $0x2f2f2f2f2f2f2f2f; QUAD $0x2f2f2f2f2f2f2f2f // .space 16, '////////////////' - //0x00005f00 LCPI27_1 - 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, //0x00005f00 QUAD $0x3a3a3a3a3a3a3a3a; QUAD $0x3a3a3a3a3a3a3a3a // .space 16, '::::::::::::::::' - 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, //0x00005f10 QUAD $0x3a3a3a3a3a3a3a3a; QUAD $0x3a3a3a3a3a3a3a3a // .space 16, '::::::::::::::::' - //0x00005f20 LCPI27_2 - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, //0x00005f20 QUAD $0x2b2b2b2b2b2b2b2b; QUAD $0x2b2b2b2b2b2b2b2b // .space 16, '++++++++++++++++' - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, //0x00005f30 QUAD $0x2b2b2b2b2b2b2b2b; QUAD $0x2b2b2b2b2b2b2b2b // .space 16, '++++++++++++++++' - //0x00005f40 LCPI27_3 - 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, //0x00005f40 QUAD $0x2d2d2d2d2d2d2d2d; QUAD $0x2d2d2d2d2d2d2d2d // .space 16, '----------------' - 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, //0x00005f50 QUAD $0x2d2d2d2d2d2d2d2d; QUAD $0x2d2d2d2d2d2d2d2d // .space 16, '----------------' - //0x00005f60 LCPI27_4 - 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, //0x00005f60 QUAD $0xdfdfdfdfdfdfdfdf; QUAD $0xdfdfdfdfdfdfdfdf // .space 16, '\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf' - 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, //0x00005f70 QUAD $0xdfdfdfdfdfdfdfdf; QUAD $0xdfdfdfdfdfdfdfdf // .space 16, '\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf' - //0x00005f80 LCPI27_5 - 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, //0x00005f80 QUAD $0x2e2e2e2e2e2e2e2e; QUAD $0x2e2e2e2e2e2e2e2e // .space 16, '................' - 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, //0x00005f90 QUAD $0x2e2e2e2e2e2e2e2e; QUAD $0x2e2e2e2e2e2e2e2e // .space 16, '................' - //0x00005fa0 LCPI27_6 - 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, //0x00005fa0 QUAD $0x4545454545454545; QUAD $0x4545454545454545 // .space 16, 'EEEEEEEEEEEEEEEE' - 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, //0x00005fb0 QUAD $0x4545454545454545; QUAD $0x4545454545454545 // .space 16, 'EEEEEEEEEEEEEEEE' - //0x00005fc0 .p2align 4, 0x00 - //0x00005fc0 LCPI27_7 - 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, //0x00005fc0 QUAD $0x2f2f2f2f2f2f2f2f; QUAD $0x2f2f2f2f2f2f2f2f // .space 16, '////////////////' - //0x00005fd0 LCPI27_8 - 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, //0x00005fd0 QUAD $0x3a3a3a3a3a3a3a3a; QUAD $0x3a3a3a3a3a3a3a3a // .space 16, '::::::::::::::::' - //0x00005fe0 LCPI27_9 - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, //0x00005fe0 QUAD $0x2b2b2b2b2b2b2b2b; QUAD $0x2b2b2b2b2b2b2b2b // .space 16, '++++++++++++++++' - //0x00005ff0 LCPI27_10 - 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, //0x00005ff0 QUAD $0x2d2d2d2d2d2d2d2d; QUAD $0x2d2d2d2d2d2d2d2d // .space 16, '----------------' - //0x00006000 LCPI27_11 - 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, //0x00006000 QUAD $0xdfdfdfdfdfdfdfdf; QUAD $0xdfdfdfdfdfdfdfdf // .space 16, '\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf' - //0x00006010 LCPI27_12 - 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, //0x00006010 QUAD $0x2e2e2e2e2e2e2e2e; QUAD $0x2e2e2e2e2e2e2e2e // .space 16, '................' - //0x00006020 LCPI27_13 - 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, //0x00006020 QUAD $0x4545454545454545; QUAD $0x4545454545454545 // .space 16, 'EEEEEEEEEEEEEEEE' - //0x00006030 .p2align 4, 0x90 - //0x00006030 _do_skip_number - 0x55, //0x00006030 pushq %rbp - 0x48, 0x89, 0xe5, //0x00006031 movq %rsp, %rbp - 0x41, 0x57, //0x00006034 pushq %r15 - 0x41, 0x56, //0x00006036 pushq %r14 - 0x41, 0x54, //0x00006038 pushq %r12 - 0x53, //0x0000603a pushq %rbx - 0x48, 0x85, 0xf6, //0x0000603b testq %rsi, %rsi - 0x0f, 0x84, 0xa5, 0x03, 0x00, 0x00, //0x0000603e je LBB27_1 - 0x80, 0x3f, 0x30, //0x00006044 cmpb $48, (%rdi) - 0x0f, 0x85, 0x35, 0x00, 0x00, 0x00, //0x00006047 jne LBB27_6 - 0xb8, 0x01, 0x00, 0x00, 0x00, //0x0000604d movl $1, %eax - 0x48, 0x83, 0xfe, 0x01, //0x00006052 cmpq $1, %rsi - 0x0f, 0x84, 0xb9, 0x04, 0x00, 0x00, //0x00006056 je LBB27_81 - 0x8a, 0x4f, 0x01, //0x0000605c movb $1(%rdi), %cl - 0x80, 0xc1, 0xd2, //0x0000605f addb $-46, %cl - 0x80, 0xf9, 0x37, //0x00006062 cmpb $55, %cl - 0x0f, 0x87, 0xaa, 0x04, 0x00, 0x00, //0x00006065 ja LBB27_81 - 0x0f, 0xb6, 0xc9, //0x0000606b movzbl %cl, %ecx - 0x48, 0xba, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, //0x0000606e movabsq $36028797027352577, %rdx - 0x48, 0x0f, 0xa3, 0xca, //0x00006078 btq %rcx, %rdx - 0x0f, 0x83, 0x93, 0x04, 0x00, 0x00, //0x0000607c jae LBB27_81 - //0x00006082 LBB27_6 - 0x49, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00006082 movq $-1, %r9 - 0x48, 0x83, 0xfe, 0x20, //0x00006089 cmpq $32, %rsi - 0x0f, 0x82, 0x8e, 0x04, 0x00, 0x00, //0x0000608d jb LBB27_7 - 0x31, 0xc0, //0x00006093 xorl %eax, %eax - 0xc5, 0xfd, 0x6f, 0x05, 0x43, 0xfe, 0xff, 0xff, //0x00006095 vmovdqa $-445(%rip), %ymm0 /* LCPI27_0+0(%rip) */ - 0xc5, 0xfd, 0x6f, 0x0d, 0x5b, 0xfe, 0xff, 0xff, //0x0000609d vmovdqa $-421(%rip), %ymm1 /* LCPI27_1+0(%rip) */ - 0xc5, 0xfd, 0x6f, 0x15, 0x73, 0xfe, 0xff, 0xff, //0x000060a5 vmovdqa $-397(%rip), %ymm2 /* LCPI27_2+0(%rip) */ - 0xc5, 0xfd, 0x6f, 0x1d, 0x8b, 0xfe, 0xff, 0xff, //0x000060ad vmovdqa $-373(%rip), %ymm3 /* LCPI27_3+0(%rip) */ - 0xc5, 0xfd, 0x6f, 0x25, 0xa3, 0xfe, 0xff, 0xff, //0x000060b5 vmovdqa $-349(%rip), %ymm4 /* LCPI27_4+0(%rip) */ - 0xc5, 0xfd, 0x6f, 0x2d, 0xbb, 0xfe, 0xff, 0xff, //0x000060bd vmovdqa $-325(%rip), %ymm5 /* LCPI27_5+0(%rip) */ - 0xc5, 0xfd, 0x6f, 0x35, 0xd3, 0xfe, 0xff, 0xff, //0x000060c5 vmovdqa $-301(%rip), %ymm6 /* LCPI27_6+0(%rip) */ - 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000060cd movq $-1, %r8 - 0x49, 0xc7, 0xc2, 0xff, 0xff, 0xff, 0xff, //0x000060d4 movq $-1, %r10 - 0x90, 0x90, 0x90, 0x90, 0x90, //0x000060db .p2align 4, 0x90 - //0x000060e0 LBB27_9 - 0xc5, 0xfe, 0x6f, 0x3c, 0x07, //0x000060e0 vmovdqu (%rdi,%rax), %ymm7 - 0xc5, 0x45, 0x64, 0xc0, //0x000060e5 vpcmpgtb %ymm0, %ymm7, %ymm8 - 0xc5, 0x75, 0x64, 0xcf, //0x000060e9 vpcmpgtb %ymm7, %ymm1, %ymm9 - 0xc4, 0x41, 0x35, 0xdb, 0xc0, //0x000060ed vpand %ymm8, %ymm9, %ymm8 - 0xc5, 0x45, 0x74, 0xca, //0x000060f2 vpcmpeqb %ymm2, %ymm7, %ymm9 - 0xc5, 0x45, 0x74, 0xd3, //0x000060f6 vpcmpeqb %ymm3, %ymm7, %ymm10 - 0xc4, 0x41, 0x2d, 0xeb, 0xc9, //0x000060fa vpor %ymm9, %ymm10, %ymm9 - 0xc5, 0x45, 0xdb, 0xd4, //0x000060ff vpand %ymm4, %ymm7, %ymm10 - 0xc5, 0x2d, 0x74, 0xd6, //0x00006103 vpcmpeqb %ymm6, %ymm10, %ymm10 - 0xc5, 0xc5, 0x74, 0xfd, //0x00006107 vpcmpeqb %ymm5, %ymm7, %ymm7 - 0xc5, 0xfd, 0xd7, 0xd7, //0x0000610b vpmovmskb %ymm7, %edx - 0xc4, 0x41, 0x7d, 0xd7, 0xfa, //0x0000610f vpmovmskb %ymm10, %r15d - 0xc4, 0x41, 0x7d, 0xd7, 0xd9, //0x00006114 vpmovmskb %ymm9, %r11d - 0xc5, 0xbd, 0xeb, 0xff, //0x00006119 vpor %ymm7, %ymm8, %ymm7 - 0xc4, 0x41, 0x2d, 0xeb, 0xc1, //0x0000611d vpor %ymm9, %ymm10, %ymm8 - 0xc5, 0xbd, 0xeb, 0xff, //0x00006122 vpor %ymm7, %ymm8, %ymm7 - 0xc5, 0xfd, 0xd7, 0xcf, //0x00006126 vpmovmskb %ymm7, %ecx - 0x48, 0xf7, 0xd1, //0x0000612a notq %rcx - 0x4c, 0x0f, 0xbc, 0xf1, //0x0000612d bsfq %rcx, %r14 - 0x41, 0x83, 0xfe, 0x20, //0x00006131 cmpl $32, %r14d - 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x00006135 je LBB27_11 - 0xbb, 0xff, 0xff, 0xff, 0xff, //0x0000613b movl $-1, %ebx - 0x44, 0x89, 0xf1, //0x00006140 movl %r14d, %ecx - 0xd3, 0xe3, //0x00006143 shll %cl, %ebx - 0xf7, 0xd3, //0x00006145 notl %ebx - 0x21, 0xda, //0x00006147 andl %ebx, %edx - 0x41, 0x21, 0xdf, //0x00006149 andl %ebx, %r15d - 0x44, 0x21, 0xdb, //0x0000614c andl %r11d, %ebx - 0x41, 0x89, 0xdb, //0x0000614f movl %ebx, %r11d - //0x00006152 LBB27_11 - 0x8d, 0x4a, 0xff, //0x00006152 leal $-1(%rdx), %ecx - 0x21, 0xd1, //0x00006155 andl %edx, %ecx - 0x0f, 0x85, 0x85, 0x03, 0x00, 0x00, //0x00006157 jne LBB27_12 - 0x41, 0x8d, 0x4f, 0xff, //0x0000615d leal $-1(%r15), %ecx - 0x44, 0x21, 0xf9, //0x00006161 andl %r15d, %ecx - 0x0f, 0x85, 0x78, 0x03, 0x00, 0x00, //0x00006164 jne LBB27_12 - 0x41, 0x8d, 0x4b, 0xff, //0x0000616a leal $-1(%r11), %ecx - 0x44, 0x21, 0xd9, //0x0000616e andl %r11d, %ecx - 0x0f, 0x85, 0x6b, 0x03, 0x00, 0x00, //0x00006171 jne LBB27_12 - 0x85, 0xd2, //0x00006177 testl %edx, %edx - 0x0f, 0x84, 0x13, 0x00, 0x00, 0x00, //0x00006179 je LBB27_19 - 0x0f, 0xbc, 0xca, //0x0000617f bsfl %edx, %ecx - 0x49, 0x83, 0xfa, 0xff, //0x00006182 cmpq $-1, %r10 - 0x0f, 0x85, 0x5e, 0x03, 0x00, 0x00, //0x00006186 jne LBB27_82 - 0x48, 0x01, 0xc1, //0x0000618c addq %rax, %rcx - 0x49, 0x89, 0xca, //0x0000618f movq %rcx, %r10 - //0x00006192 LBB27_19 - 0x45, 0x85, 0xff, //0x00006192 testl %r15d, %r15d - 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x00006195 je LBB27_22 - 0x41, 0x0f, 0xbc, 0xcf, //0x0000619b bsfl %r15d, %ecx - 0x49, 0x83, 0xf8, 0xff, //0x0000619f cmpq $-1, %r8 - 0x0f, 0x85, 0x41, 0x03, 0x00, 0x00, //0x000061a3 jne LBB27_82 - 0x48, 0x01, 0xc1, //0x000061a9 addq %rax, %rcx - 0x49, 0x89, 0xc8, //0x000061ac movq %rcx, %r8 - //0x000061af LBB27_22 - 0x45, 0x85, 0xdb, //0x000061af testl %r11d, %r11d - 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x000061b2 je LBB27_25 - 0x41, 0x0f, 0xbc, 0xcb, //0x000061b8 bsfl %r11d, %ecx - 0x49, 0x83, 0xf9, 0xff, //0x000061bc cmpq $-1, %r9 - 0x0f, 0x85, 0x24, 0x03, 0x00, 0x00, //0x000061c0 jne LBB27_82 - 0x48, 0x01, 0xc1, //0x000061c6 addq %rax, %rcx - 0x49, 0x89, 0xc9, //0x000061c9 movq %rcx, %r9 - //0x000061cc LBB27_25 - 0x41, 0x83, 0xfe, 0x20, //0x000061cc cmpl $32, %r14d - 0x0f, 0x85, 0x1f, 0x02, 0x00, 0x00, //0x000061d0 jne LBB27_83 - 0x48, 0x83, 0xc6, 0xe0, //0x000061d6 addq $-32, %rsi - 0x48, 0x83, 0xc0, 0x20, //0x000061da addq $32, %rax - 0x48, 0x83, 0xfe, 0x1f, //0x000061de cmpq $31, %rsi - 0x0f, 0x87, 0xf8, 0xfe, 0xff, 0xff, //0x000061e2 ja LBB27_9 - 0xc5, 0xf8, 0x77, //0x000061e8 vzeroupper - 0x48, 0x01, 0xf8, //0x000061eb addq %rdi, %rax - 0x49, 0x89, 0xc6, //0x000061ee movq %rax, %r14 - 0x48, 0x83, 0xfe, 0x10, //0x000061f1 cmpq $16, %rsi - 0x0f, 0x82, 0x50, 0x01, 0x00, 0x00, //0x000061f5 jb LBB27_49 - //0x000061fb LBB27_29 - 0x4d, 0x89, 0xf3, //0x000061fb movq %r14, %r11 - 0x49, 0x29, 0xfb, //0x000061fe subq %rdi, %r11 - 0x31, 0xc0, //0x00006201 xorl %eax, %eax - 0xc5, 0x79, 0x6f, 0x05, 0xb5, 0xfd, 0xff, 0xff, //0x00006203 vmovdqa $-587(%rip), %xmm8 /* LCPI27_7+0(%rip) */ - 0xc5, 0x79, 0x6f, 0x0d, 0xbd, 0xfd, 0xff, 0xff, //0x0000620b vmovdqa $-579(%rip), %xmm9 /* LCPI27_8+0(%rip) */ - 0xc5, 0x79, 0x6f, 0x15, 0xc5, 0xfd, 0xff, 0xff, //0x00006213 vmovdqa $-571(%rip), %xmm10 /* LCPI27_9+0(%rip) */ - 0xc5, 0x79, 0x6f, 0x1d, 0xcd, 0xfd, 0xff, 0xff, //0x0000621b vmovdqa $-563(%rip), %xmm11 /* LCPI27_10+0(%rip) */ - 0xc5, 0xf9, 0x6f, 0x25, 0xd5, 0xfd, 0xff, 0xff, //0x00006223 vmovdqa $-555(%rip), %xmm4 /* LCPI27_11+0(%rip) */ - 0xc5, 0xf9, 0x6f, 0x2d, 0xdd, 0xfd, 0xff, 0xff, //0x0000622b vmovdqa $-547(%rip), %xmm5 /* LCPI27_12+0(%rip) */ - 0xc5, 0xf9, 0x6f, 0x35, 0xe5, 0xfd, 0xff, 0xff, //0x00006233 vmovdqa $-539(%rip), %xmm6 /* LCPI27_13+0(%rip) */ - 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000623b .p2align 4, 0x90 - //0x00006240 LBB27_30 - 0xc4, 0xc1, 0x7a, 0x6f, 0x3c, 0x06, //0x00006240 vmovdqu (%r14,%rax), %xmm7 - 0xc4, 0xc1, 0x41, 0x64, 0xc0, //0x00006246 vpcmpgtb %xmm8, %xmm7, %xmm0 - 0xc5, 0xb1, 0x64, 0xcf, //0x0000624b vpcmpgtb %xmm7, %xmm9, %xmm1 - 0xc5, 0xf9, 0xdb, 0xc1, //0x0000624f vpand %xmm1, %xmm0, %xmm0 - 0xc5, 0xa9, 0x74, 0xcf, //0x00006253 vpcmpeqb %xmm7, %xmm10, %xmm1 - 0xc5, 0xa1, 0x74, 0xd7, //0x00006257 vpcmpeqb %xmm7, %xmm11, %xmm2 - 0xc5, 0xe9, 0xeb, 0xc9, //0x0000625b vpor %xmm1, %xmm2, %xmm1 - 0xc5, 0xc1, 0xdb, 0xd4, //0x0000625f vpand %xmm4, %xmm7, %xmm2 - 0xc5, 0xe9, 0x74, 0xd6, //0x00006263 vpcmpeqb %xmm6, %xmm2, %xmm2 - 0xc5, 0xc1, 0x74, 0xfd, //0x00006267 vpcmpeqb %xmm5, %xmm7, %xmm7 - 0xc5, 0xe9, 0xeb, 0xdf, //0x0000626b vpor %xmm7, %xmm2, %xmm3 - 0xc5, 0xf1, 0xeb, 0xc0, //0x0000626f vpor %xmm0, %xmm1, %xmm0 - 0xc5, 0xe1, 0xeb, 0xc0, //0x00006273 vpor %xmm0, %xmm3, %xmm0 - 0xc5, 0xf9, 0xd7, 0xd7, //0x00006277 vpmovmskb %xmm7, %edx - 0xc5, 0x79, 0xd7, 0xe2, //0x0000627b vpmovmskb %xmm2, %r12d - 0xc5, 0x79, 0xd7, 0xf9, //0x0000627f vpmovmskb %xmm1, %r15d - 0xc5, 0xf9, 0xd7, 0xc8, //0x00006283 vpmovmskb %xmm0, %ecx - 0xf7, 0xd1, //0x00006287 notl %ecx - 0x0f, 0xbc, 0xc9, //0x00006289 bsfl %ecx, %ecx - 0x83, 0xf9, 0x10, //0x0000628c cmpl $16, %ecx - 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x0000628f je LBB27_32 - 0xbb, 0xff, 0xff, 0xff, 0xff, //0x00006295 movl $-1, %ebx - 0xd3, 0xe3, //0x0000629a shll %cl, %ebx - 0xf7, 0xd3, //0x0000629c notl %ebx - 0x21, 0xda, //0x0000629e andl %ebx, %edx - 0x41, 0x21, 0xdc, //0x000062a0 andl %ebx, %r12d - 0x44, 0x21, 0xfb, //0x000062a3 andl %r15d, %ebx - 0x41, 0x89, 0xdf, //0x000062a6 movl %ebx, %r15d - //0x000062a9 LBB27_32 - 0x8d, 0x5a, 0xff, //0x000062a9 leal $-1(%rdx), %ebx - 0x21, 0xd3, //0x000062ac andl %edx, %ebx - 0x0f, 0x85, 0x43, 0x02, 0x00, 0x00, //0x000062ae jne LBB27_33 - 0x41, 0x8d, 0x5c, 0x24, 0xff, //0x000062b4 leal $-1(%r12), %ebx - 0x44, 0x21, 0xe3, //0x000062b9 andl %r12d, %ebx - 0x0f, 0x85, 0x35, 0x02, 0x00, 0x00, //0x000062bc jne LBB27_33 - 0x41, 0x8d, 0x5f, 0xff, //0x000062c2 leal $-1(%r15), %ebx - 0x44, 0x21, 0xfb, //0x000062c6 andl %r15d, %ebx - 0x0f, 0x85, 0x28, 0x02, 0x00, 0x00, //0x000062c9 jne LBB27_33 - 0x85, 0xd2, //0x000062cf testl %edx, %edx - 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x000062d1 je LBB27_40 - 0x0f, 0xbc, 0xd2, //0x000062d7 bsfl %edx, %edx - 0x49, 0x83, 0xfa, 0xff, //0x000062da cmpq $-1, %r10 - 0x0f, 0x85, 0x23, 0x02, 0x00, 0x00, //0x000062de jne LBB27_84 - 0x4c, 0x01, 0xda, //0x000062e4 addq %r11, %rdx - 0x48, 0x01, 0xc2, //0x000062e7 addq %rax, %rdx - 0x49, 0x89, 0xd2, //0x000062ea movq %rdx, %r10 - //0x000062ed LBB27_40 - 0x45, 0x85, 0xe4, //0x000062ed testl %r12d, %r12d - 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x000062f0 je LBB27_43 - 0x41, 0x0f, 0xbc, 0xd4, //0x000062f6 bsfl %r12d, %edx - 0x49, 0x83, 0xf8, 0xff, //0x000062fa cmpq $-1, %r8 - 0x0f, 0x85, 0x03, 0x02, 0x00, 0x00, //0x000062fe jne LBB27_84 - 0x4c, 0x01, 0xda, //0x00006304 addq %r11, %rdx - 0x48, 0x01, 0xc2, //0x00006307 addq %rax, %rdx - 0x49, 0x89, 0xd0, //0x0000630a movq %rdx, %r8 - //0x0000630d LBB27_43 - 0x45, 0x85, 0xff, //0x0000630d testl %r15d, %r15d - 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x00006310 je LBB27_46 - 0x41, 0x0f, 0xbc, 0xd7, //0x00006316 bsfl %r15d, %edx - 0x49, 0x83, 0xf9, 0xff, //0x0000631a cmpq $-1, %r9 - 0x0f, 0x85, 0xe3, 0x01, 0x00, 0x00, //0x0000631e jne LBB27_84 - 0x4c, 0x01, 0xda, //0x00006324 addq %r11, %rdx - 0x48, 0x01, 0xc2, //0x00006327 addq %rax, %rdx - 0x49, 0x89, 0xd1, //0x0000632a movq %rdx, %r9 - //0x0000632d LBB27_46 - 0x83, 0xf9, 0x10, //0x0000632d cmpl $16, %ecx - 0x0f, 0x85, 0xdd, 0x00, 0x00, 0x00, //0x00006330 jne LBB27_65 - 0x48, 0x83, 0xc6, 0xf0, //0x00006336 addq $-16, %rsi - 0x48, 0x83, 0xc0, 0x10, //0x0000633a addq $16, %rax - 0x48, 0x83, 0xfe, 0x0f, //0x0000633e cmpq $15, %rsi - 0x0f, 0x87, 0xf8, 0xfe, 0xff, 0xff, //0x00006342 ja LBB27_30 - 0x49, 0x01, 0xc6, //0x00006348 addq %rax, %r14 - //0x0000634b LBB27_49 - 0x48, 0x85, 0xf6, //0x0000634b testq %rsi, %rsi - 0x0f, 0x84, 0xc7, 0x00, 0x00, 0x00, //0x0000634e je LBB27_67 - 0x4d, 0x8d, 0x1c, 0x36, //0x00006354 leaq (%r14,%rsi), %r11 - 0x4c, 0x89, 0xf2, //0x00006358 movq %r14, %rdx - 0x48, 0x29, 0xfa, //0x0000635b subq %rdi, %rdx - 0x31, 0xc0, //0x0000635e xorl %eax, %eax - 0x4c, 0x8d, 0x3d, 0xdd, 0x01, 0x00, 0x00, //0x00006360 leaq $477(%rip), %r15 /* LJTI27_0+0(%rip) */ - 0xe9, 0x31, 0x00, 0x00, 0x00, //0x00006367 jmp LBB27_51 - //0x0000636c LBB27_53 - 0x83, 0xf9, 0x65, //0x0000636c cmpl $101, %ecx - 0x0f, 0x85, 0xa3, 0x00, 0x00, 0x00, //0x0000636f jne LBB27_66 - //0x00006375 LBB27_54 - 0x49, 0x83, 0xf8, 0xff, //0x00006375 cmpq $-1, %r8 - 0x0f, 0x85, 0x80, 0x01, 0x00, 0x00, //0x00006379 jne LBB27_59 - 0x4c, 0x8d, 0x04, 0x02, //0x0000637f leaq (%rdx,%rax), %r8 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00006383 .p2align 4, 0x90 - //0x00006390 LBB27_63 - 0x48, 0x83, 0xc0, 0x01, //0x00006390 addq $1, %rax - 0x48, 0x39, 0xc6, //0x00006394 cmpq %rax, %rsi - 0x0f, 0x84, 0x2d, 0x01, 0x00, 0x00, //0x00006397 je LBB27_64 - //0x0000639d LBB27_51 - 0x41, 0x0f, 0xbe, 0x0c, 0x06, //0x0000639d movsbl (%r14,%rax), %ecx - 0x8d, 0x59, 0xd0, //0x000063a2 leal $-48(%rcx), %ebx - 0x83, 0xfb, 0x0a, //0x000063a5 cmpl $10, %ebx - 0x0f, 0x82, 0xe2, 0xff, 0xff, 0xff, //0x000063a8 jb LBB27_63 - 0x8d, 0x59, 0xd5, //0x000063ae leal $-43(%rcx), %ebx - 0x83, 0xfb, 0x1a, //0x000063b1 cmpl $26, %ebx - 0x0f, 0x87, 0xb2, 0xff, 0xff, 0xff, //0x000063b4 ja LBB27_53 - 0x49, 0x63, 0x0c, 0x9f, //0x000063ba movslq (%r15,%rbx,4), %rcx - 0x4c, 0x01, 0xf9, //0x000063be addq %r15, %rcx - 0xff, 0xe1, //0x000063c1 jmpq *%rcx - //0x000063c3 LBB27_61 - 0x49, 0x83, 0xf9, 0xff, //0x000063c3 cmpq $-1, %r9 - 0x0f, 0x85, 0x32, 0x01, 0x00, 0x00, //0x000063c7 jne LBB27_59 - 0x4c, 0x8d, 0x0c, 0x02, //0x000063cd leaq (%rdx,%rax), %r9 - 0xe9, 0xba, 0xff, 0xff, 0xff, //0x000063d1 jmp LBB27_63 - //0x000063d6 LBB27_57 - 0x49, 0x83, 0xfa, 0xff, //0x000063d6 cmpq $-1, %r10 - 0x0f, 0x85, 0x1f, 0x01, 0x00, 0x00, //0x000063da jne LBB27_59 - 0x4c, 0x8d, 0x14, 0x02, //0x000063e0 leaq (%rdx,%rax), %r10 - 0xe9, 0xa7, 0xff, 0xff, 0xff, //0x000063e4 jmp LBB27_63 - //0x000063e9 LBB27_1 - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000063e9 movq $-1, %rax - 0xe9, 0x20, 0x01, 0x00, 0x00, //0x000063f0 jmp LBB27_81 - //0x000063f5 LBB27_83 - 0x49, 0x01, 0xc6, //0x000063f5 addq %rax, %r14 - 0x49, 0x01, 0xfe, //0x000063f8 addq %rdi, %r14 - 0xc5, 0xf8, 0x77, //0x000063fb vzeroupper - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000063fe movq $-1, %rax - 0x4d, 0x85, 0xd2, //0x00006405 testq %r10, %r10 - 0x0f, 0x85, 0x1d, 0x00, 0x00, 0x00, //0x00006408 jne LBB27_68 - 0xe9, 0x02, 0x01, 0x00, 0x00, //0x0000640e jmp LBB27_81 - //0x00006413 LBB27_65 - 0x89, 0xc9, //0x00006413 movl %ecx, %ecx - 0x49, 0x01, 0xce, //0x00006415 addq %rcx, %r14 - //0x00006418 LBB27_66 - 0x49, 0x01, 0xc6, //0x00006418 addq %rax, %r14 - //0x0000641b LBB27_67 - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x0000641b movq $-1, %rax - 0x4d, 0x85, 0xd2, //0x00006422 testq %r10, %r10 - 0x0f, 0x84, 0xea, 0x00, 0x00, 0x00, //0x00006425 je LBB27_81 - //0x0000642b LBB27_68 - 0x4d, 0x85, 0xc9, //0x0000642b testq %r9, %r9 - 0x0f, 0x84, 0xe1, 0x00, 0x00, 0x00, //0x0000642e je LBB27_81 - 0x4d, 0x85, 0xc0, //0x00006434 testq %r8, %r8 - 0x0f, 0x84, 0xd8, 0x00, 0x00, 0x00, //0x00006437 je LBB27_81 - 0x49, 0x29, 0xfe, //0x0000643d subq %rdi, %r14 - 0x49, 0x8d, 0x46, 0xff, //0x00006440 leaq $-1(%r14), %rax - 0x49, 0x39, 0xc2, //0x00006444 cmpq %rax, %r10 - 0x0f, 0x84, 0x33, 0x00, 0x00, 0x00, //0x00006447 je LBB27_73 - 0x49, 0x39, 0xc1, //0x0000644d cmpq %rax, %r9 - 0x0f, 0x84, 0x2a, 0x00, 0x00, 0x00, //0x00006450 je LBB27_73 - 0x49, 0x39, 0xc0, //0x00006456 cmpq %rax, %r8 - 0x0f, 0x84, 0x21, 0x00, 0x00, 0x00, //0x00006459 je LBB27_73 - 0x4d, 0x85, 0xc9, //0x0000645f testq %r9, %r9 - 0x0f, 0x8e, 0x23, 0x00, 0x00, 0x00, //0x00006462 jle LBB27_77 - 0x49, 0x8d, 0x41, 0xff, //0x00006468 leaq $-1(%r9), %rax - 0x49, 0x39, 0xc0, //0x0000646c cmpq %rax, %r8 - 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x0000646f je LBB27_77 - 0x49, 0xf7, 0xd1, //0x00006475 notq %r9 - 0x4c, 0x89, 0xc8, //0x00006478 movq %r9, %rax - 0xe9, 0x95, 0x00, 0x00, 0x00, //0x0000647b jmp LBB27_81 - //0x00006480 LBB27_73 - 0x49, 0xf7, 0xde, //0x00006480 negq %r14 - 0x4c, 0x89, 0xf0, //0x00006483 movq %r14, %rax - 0xe9, 0x8a, 0x00, 0x00, 0x00, //0x00006486 jmp LBB27_81 - //0x0000648b LBB27_77 - 0x4c, 0x89, 0xd0, //0x0000648b movq %r10, %rax - 0x4c, 0x09, 0xc0, //0x0000648e orq %r8, %rax - 0x0f, 0x99, 0xc0, //0x00006491 setns %al - 0x0f, 0x88, 0x14, 0x00, 0x00, 0x00, //0x00006494 js LBB27_80 - 0x4d, 0x39, 0xc2, //0x0000649a cmpq %r8, %r10 - 0x0f, 0x8c, 0x0b, 0x00, 0x00, 0x00, //0x0000649d jl LBB27_80 - 0x49, 0xf7, 0xd2, //0x000064a3 notq %r10 - 0x4c, 0x89, 0xd0, //0x000064a6 movq %r10, %rax - 0xe9, 0x67, 0x00, 0x00, 0x00, //0x000064a9 jmp LBB27_81 - //0x000064ae LBB27_80 - 0x49, 0x8d, 0x48, 0xff, //0x000064ae leaq $-1(%r8), %rcx - 0x49, 0x39, 0xca, //0x000064b2 cmpq %rcx, %r10 - 0x49, 0xf7, 0xd0, //0x000064b5 notq %r8 - 0x4d, 0x0f, 0x45, 0xc6, //0x000064b8 cmovneq %r14, %r8 - 0x84, 0xc0, //0x000064bc testb %al, %al - 0x4d, 0x0f, 0x44, 0xc6, //0x000064be cmoveq %r14, %r8 - 0x4c, 0x89, 0xc0, //0x000064c2 movq %r8, %rax - 0xe9, 0x4b, 0x00, 0x00, 0x00, //0x000064c5 jmp LBB27_81 - //0x000064ca LBB27_64 - 0x4d, 0x89, 0xde, //0x000064ca movq %r11, %r14 - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000064cd movq $-1, %rax - 0x4d, 0x85, 0xd2, //0x000064d4 testq %r10, %r10 - 0x0f, 0x85, 0x4e, 0xff, 0xff, 0xff, //0x000064d7 jne LBB27_68 - 0xe9, 0x33, 0x00, 0x00, 0x00, //0x000064dd jmp LBB27_81 - //0x000064e2 LBB27_12 - 0x0f, 0xbc, 0xc9, //0x000064e2 bsfl %ecx, %ecx - 0xe9, 0x02, 0x00, 0x00, 0x00, //0x000064e5 jmp LBB27_13 - //0x000064ea LBB27_82 - 0x89, 0xc9, //0x000064ea movl %ecx, %ecx - //0x000064ec LBB27_13 - 0x48, 0xf7, 0xd0, //0x000064ec notq %rax - 0x48, 0x29, 0xc8, //0x000064ef subq %rcx, %rax - 0xe9, 0x1e, 0x00, 0x00, 0x00, //0x000064f2 jmp LBB27_81 - //0x000064f7 LBB27_33 - 0x0f, 0xbc, 0xcb, //0x000064f7 bsfl %ebx, %ecx - 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x000064fa jmp LBB27_34 - //0x000064ff LBB27_59 - 0x4c, 0x29, 0xf7, //0x000064ff subq %r14, %rdi - 0xe9, 0x08, 0x00, 0x00, 0x00, //0x00006502 jmp LBB27_60 - //0x00006507 LBB27_84 - 0x89, 0xd1, //0x00006507 movl %edx, %ecx - //0x00006509 LBB27_34 - 0x4c, 0x29, 0xf7, //0x00006509 subq %r14, %rdi - 0x48, 0x29, 0xcf, //0x0000650c subq %rcx, %rdi - //0x0000650f LBB27_60 - 0x48, 0xf7, 0xd0, //0x0000650f notq %rax - 0x48, 0x01, 0xf8, //0x00006512 addq %rdi, %rax - //0x00006515 LBB27_81 - 0x5b, //0x00006515 popq %rbx - 0x41, 0x5c, //0x00006516 popq %r12 - 0x41, 0x5e, //0x00006518 popq %r14 - 0x41, 0x5f, //0x0000651a popq %r15 - 0x5d, //0x0000651c popq %rbp - 0xc5, 0xf8, 0x77, //0x0000651d vzeroupper - 0xc3, //0x00006520 retq - //0x00006521 LBB27_7 - 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00006521 movq $-1, %r8 - 0x49, 0xc7, 0xc2, 0xff, 0xff, 0xff, 0xff, //0x00006528 movq $-1, %r10 - 0x49, 0x89, 0xfe, //0x0000652f movq %rdi, %r14 - 0x48, 0x83, 0xfe, 0x10, //0x00006532 cmpq $16, %rsi - 0x0f, 0x83, 0xbf, 0xfc, 0xff, 0xff, //0x00006536 jae LBB27_29 - 0xe9, 0x0a, 0xfe, 0xff, 0xff, //0x0000653c jmp LBB27_49 - 0x90, 0x90, 0x90, //0x00006541 .p2align 2, 0x90 - // // .set L27_0_set_61, LBB27_61-LJTI27_0 - // // .set L27_0_set_66, LBB27_66-LJTI27_0 - // // .set L27_0_set_57, LBB27_57-LJTI27_0 - // // .set L27_0_set_54, LBB27_54-LJTI27_0 - //0x00006544 LJTI27_0 - 0x7f, 0xfe, 0xff, 0xff, //0x00006544 .long L27_0_set_61 - 0xd4, 0xfe, 0xff, 0xff, //0x00006548 .long L27_0_set_66 - 0x7f, 0xfe, 0xff, 0xff, //0x0000654c .long L27_0_set_61 - 0x92, 0xfe, 0xff, 0xff, //0x00006550 .long L27_0_set_57 - 0xd4, 0xfe, 0xff, 0xff, //0x00006554 .long L27_0_set_66 - 0xd4, 0xfe, 0xff, 0xff, //0x00006558 .long L27_0_set_66 - 0xd4, 0xfe, 0xff, 0xff, //0x0000655c .long L27_0_set_66 - 0xd4, 0xfe, 0xff, 0xff, //0x00006560 .long L27_0_set_66 - 0xd4, 0xfe, 0xff, 0xff, //0x00006564 .long L27_0_set_66 - 0xd4, 0xfe, 0xff, 0xff, //0x00006568 .long L27_0_set_66 - 0xd4, 0xfe, 0xff, 0xff, //0x0000656c .long L27_0_set_66 - 0xd4, 0xfe, 0xff, 0xff, //0x00006570 .long L27_0_set_66 - 0xd4, 0xfe, 0xff, 0xff, //0x00006574 .long L27_0_set_66 - 0xd4, 0xfe, 0xff, 0xff, //0x00006578 .long L27_0_set_66 - 0xd4, 0xfe, 0xff, 0xff, //0x0000657c .long L27_0_set_66 - 0xd4, 0xfe, 0xff, 0xff, //0x00006580 .long L27_0_set_66 - 0xd4, 0xfe, 0xff, 0xff, //0x00006584 .long L27_0_set_66 - 0xd4, 0xfe, 0xff, 0xff, //0x00006588 .long L27_0_set_66 - 0xd4, 0xfe, 0xff, 0xff, //0x0000658c .long L27_0_set_66 - 0xd4, 0xfe, 0xff, 0xff, //0x00006590 .long L27_0_set_66 - 0xd4, 0xfe, 0xff, 0xff, //0x00006594 .long L27_0_set_66 - 0xd4, 0xfe, 0xff, 0xff, //0x00006598 .long L27_0_set_66 - 0xd4, 0xfe, 0xff, 0xff, //0x0000659c .long L27_0_set_66 - 0xd4, 0xfe, 0xff, 0xff, //0x000065a0 .long L27_0_set_66 - 0xd4, 0xfe, 0xff, 0xff, //0x000065a4 .long L27_0_set_66 - 0xd4, 0xfe, 0xff, 0xff, //0x000065a8 .long L27_0_set_66 - 0x31, 0xfe, 0xff, 0xff, //0x000065ac .long L27_0_set_54 - //0x000065b0 .p2align 4, 0x90 - //0x000065b0 _skip_positive - 0x55, //0x000065b0 pushq %rbp - 0x48, 0x89, 0xe5, //0x000065b1 movq %rsp, %rbp - 0x41, 0x56, //0x000065b4 pushq %r14 - 0x53, //0x000065b6 pushq %rbx - 0x49, 0x89, 0xf6, //0x000065b7 movq %rsi, %r14 - 0x48, 0x8b, 0x1e, //0x000065ba movq (%rsi), %rbx - 0x48, 0x83, 0xc3, 0xff, //0x000065bd addq $-1, %rbx - 0x48, 0x8b, 0x07, //0x000065c1 movq (%rdi), %rax - 0x48, 0x01, 0xd8, //0x000065c4 addq %rbx, %rax - 0x48, 0x8b, 0x77, 0x08, //0x000065c7 movq $8(%rdi), %rsi - 0x48, 0x29, 0xde, //0x000065cb subq %rbx, %rsi - 0x48, 0x89, 0xc7, //0x000065ce movq %rax, %rdi - 0xe8, 0x5a, 0xfa, 0xff, 0xff, //0x000065d1 callq _do_skip_number - 0x48, 0x85, 0xc0, //0x000065d6 testq %rax, %rax - 0x0f, 0x88, 0x0f, 0x00, 0x00, 0x00, //0x000065d9 js LBB28_1 - 0x49, 0x8b, 0x0e, //0x000065df movq (%r14), %rcx - 0x48, 0x01, 0xc1, //0x000065e2 addq %rax, %rcx - 0x48, 0x83, 0xc1, 0xff, //0x000065e5 addq $-1, %rcx - 0xe9, 0x11, 0x00, 0x00, 0x00, //0x000065e9 jmp LBB28_3 - //0x000065ee LBB28_1 - 0x49, 0x8b, 0x0e, //0x000065ee movq (%r14), %rcx - 0x48, 0x29, 0xc1, //0x000065f1 subq %rax, %rcx - 0x48, 0x83, 0xc1, 0xfe, //0x000065f4 addq $-2, %rcx - 0x48, 0xc7, 0xc3, 0xfe, 0xff, 0xff, 0xff, //0x000065f8 movq $-2, %rbx - //0x000065ff LBB28_3 - 0x49, 0x89, 0x0e, //0x000065ff movq %rcx, (%r14) - 0x48, 0x89, 0xd8, //0x00006602 movq %rbx, %rax - 0x5b, //0x00006605 popq %rbx - 0x41, 0x5e, //0x00006606 popq %r14 - 0x5d, //0x00006608 popq %rbp - 0xc3, //0x00006609 retq - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000660a .p2align 4, 0x90 - //0x00006610 _skip_number - 0x55, //0x00006610 pushq %rbp - 0x48, 0x89, 0xe5, //0x00006611 movq %rsp, %rbp - 0x41, 0x57, //0x00006614 pushq %r15 - 0x41, 0x56, //0x00006616 pushq %r14 - 0x41, 0x55, //0x00006618 pushq %r13 - 0x41, 0x54, //0x0000661a pushq %r12 - 0x53, //0x0000661c pushq %rbx - 0x50, //0x0000661d pushq %rax - 0x49, 0x89, 0xf6, //0x0000661e movq %rsi, %r14 - 0x4c, 0x8b, 0x27, //0x00006621 movq (%rdi), %r12 - 0x48, 0x8b, 0x77, 0x08, //0x00006624 movq $8(%rdi), %rsi - 0x4d, 0x8b, 0x2e, //0x00006628 movq (%r14), %r13 - 0x4c, 0x29, 0xee, //0x0000662b subq %r13, %rsi - 0x31, 0xc0, //0x0000662e xorl %eax, %eax - 0x43, 0x80, 0x3c, 0x2c, 0x2d, //0x00006630 cmpb $45, (%r12,%r13) - 0x4b, 0x8d, 0x1c, 0x2c, //0x00006635 leaq (%r12,%r13), %rbx - 0x0f, 0x94, 0xc0, //0x00006639 sete %al - 0x48, 0x01, 0xc3, //0x0000663c addq %rax, %rbx - 0x48, 0x29, 0xc6, //0x0000663f subq %rax, %rsi - 0x0f, 0x84, 0x42, 0x00, 0x00, 0x00, //0x00006642 je LBB29_1 - 0x8a, 0x03, //0x00006648 movb (%rbx), %al - 0x04, 0xd0, //0x0000664a addb $-48, %al - 0x49, 0xc7, 0xc7, 0xfe, 0xff, 0xff, 0xff, //0x0000664c movq $-2, %r15 - 0x3c, 0x09, //0x00006653 cmpb $9, %al - 0x0f, 0x87, 0x17, 0x00, 0x00, 0x00, //0x00006655 ja LBB29_6 - 0x48, 0x89, 0xdf, //0x0000665b movq %rbx, %rdi - 0xe8, 0xcd, 0xf9, 0xff, 0xff, //0x0000665e callq _do_skip_number - 0x48, 0x85, 0xc0, //0x00006663 testq %rax, %rax - 0x0f, 0x88, 0x2a, 0x00, 0x00, 0x00, //0x00006666 js LBB29_4 - 0x48, 0x01, 0xc3, //0x0000666c addq %rax, %rbx - 0x4d, 0x89, 0xef, //0x0000666f movq %r13, %r15 - //0x00006672 LBB29_6 - 0x4c, 0x29, 0xe3, //0x00006672 subq %r12, %rbx - 0x49, 0x89, 0x1e, //0x00006675 movq %rbx, (%r14) - 0x4c, 0x89, 0xf8, //0x00006678 movq %r15, %rax - 0x48, 0x83, 0xc4, 0x08, //0x0000667b addq $8, %rsp - 0x5b, //0x0000667f popq %rbx - 0x41, 0x5c, //0x00006680 popq %r12 - 0x41, 0x5d, //0x00006682 popq %r13 - 0x41, 0x5e, //0x00006684 popq %r14 - 0x41, 0x5f, //0x00006686 popq %r15 - 0x5d, //0x00006688 popq %rbp - 0xc3, //0x00006689 retq - //0x0000668a LBB29_1 - 0x49, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, //0x0000668a movq $-1, %r15 - 0xe9, 0xdc, 0xff, 0xff, 0xff, //0x00006691 jmp LBB29_6 - //0x00006696 LBB29_4 - 0x48, 0xf7, 0xd0, //0x00006696 notq %rax - 0x48, 0x01, 0xc3, //0x00006699 addq %rax, %rbx - 0xe9, 0xd1, 0xff, 0xff, 0xff, //0x0000669c jmp LBB29_6 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000066a1 .p2align 4, 0x00 - //0x000066b0 LCPI30_0 - 0x01, 0x00, 0x00, 0x00, //0x000066b0 .long 1 - 0x00, 0x00, 0x00, 0x00, //0x000066b4 .long 0 - 0x00, 0x00, 0x00, 0x00, //0x000066b8 .long 0 - 0x00, 0x00, 0x00, 0x00, //0x000066bc .long 0 - //0x000066c0 .p2align 4, 0x90 - //0x000066c0 _skip_one - 0x55, //0x000066c0 pushq %rbp - 0x48, 0x89, 0xe5, //0x000066c1 movq %rsp, %rbp - 0x48, 0x89, 0xd0, //0x000066c4 movq %rdx, %rax - 0x48, 0x89, 0xf2, //0x000066c7 movq %rsi, %rdx - 0x48, 0x89, 0xfe, //0x000066ca movq %rdi, %rsi - 0xc5, 0xf8, 0x28, 0x05, 0xdb, 0xff, 0xff, 0xff, //0x000066cd vmovaps $-37(%rip), %xmm0 /* LCPI30_0+0(%rip) */ - 0xc5, 0xf8, 0x11, 0x00, //0x000066d5 vmovups %xmm0, (%rax) - 0x48, 0x89, 0xc7, //0x000066d9 movq %rax, %rdi - 0x5d, //0x000066dc popq %rbp - 0xe9, 0x8e, 0xef, 0xff, 0xff, //0x000066dd jmp _fsm_exec - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000066e2 .p2align 4, 0x00 - //0x000066f0 LCPI31_0 - 0x01, 0x00, 0x00, 0x00, //0x000066f0 .long 1 - 0x00, 0x00, 0x00, 0x00, //0x000066f4 .long 0 - 0x00, 0x00, 0x00, 0x00, //0x000066f8 .long 0 - 0x00, 0x00, 0x00, 0x00, //0x000066fc .long 0 - //0x00006700 .p2align 4, 0x90 - //0x00006700 _validate_one - 0x55, //0x00006700 pushq %rbp - 0x48, 0x89, 0xe5, //0x00006701 movq %rsp, %rbp - 0x48, 0x89, 0xd0, //0x00006704 movq %rdx, %rax - 0x48, 0x89, 0xf2, //0x00006707 movq %rsi, %rdx - 0x48, 0x89, 0xfe, //0x0000670a movq %rdi, %rsi - 0xc5, 0xf8, 0x28, 0x05, 0xdb, 0xff, 0xff, 0xff, //0x0000670d vmovaps $-37(%rip), %xmm0 /* LCPI31_0+0(%rip) */ - 0xc5, 0xf8, 0x11, 0x00, //0x00006715 vmovups %xmm0, (%rax) - 0xb9, 0x20, 0x00, 0x00, 0x00, //0x00006719 movl $32, %ecx - 0x48, 0x89, 0xc7, //0x0000671e movq %rax, %rdi - 0x5d, //0x00006721 popq %rbp - 0xe9, 0x49, 0xef, 0xff, 0xff, //0x00006722 jmp _fsm_exec - 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, //0x00006727 .p2align 5, 0x00 - //0x00006740 LCPI32_0 - 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, //0x00006740 QUAD $0x2c2c2c2c2c2c2c2c; QUAD $0x2c2c2c2c2c2c2c2c // .space 16, ',,,,,,,,,,,,,,,,' - 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, //0x00006750 QUAD $0x2c2c2c2c2c2c2c2c; QUAD $0x2c2c2c2c2c2c2c2c // .space 16, ',,,,,,,,,,,,,,,,' - //0x00006760 LCPI32_1 - 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, //0x00006760 QUAD $0xdfdfdfdfdfdfdfdf; QUAD $0xdfdfdfdfdfdfdfdf // .space 16, '\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf' - 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, //0x00006770 QUAD $0xdfdfdfdfdfdfdfdf; QUAD $0xdfdfdfdfdfdfdfdf // .space 16, '\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf' - //0x00006780 LCPI32_2 - 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, //0x00006780 QUAD $0x5d5d5d5d5d5d5d5d; QUAD $0x5d5d5d5d5d5d5d5d // .space 16, ']]]]]]]]]]]]]]]]' - 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, //0x00006790 QUAD $0x5d5d5d5d5d5d5d5d; QUAD $0x5d5d5d5d5d5d5d5d // .space 16, ']]]]]]]]]]]]]]]]' - //0x000067a0 LCPI32_6 - 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, //0x000067a0 QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' - 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, //0x000067b0 QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' - //0x000067c0 LCPI32_7 - 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x000067c0 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' - 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x000067d0 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' - //0x000067e0 LCPI32_8 - 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, //0x000067e0 QUAD $0x7b7b7b7b7b7b7b7b; QUAD $0x7b7b7b7b7b7b7b7b // .space 16, '{{{{{{{{{{{{{{{{' - 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, //0x000067f0 QUAD $0x7b7b7b7b7b7b7b7b; QUAD $0x7b7b7b7b7b7b7b7b // .space 16, '{{{{{{{{{{{{{{{{' - //0x00006800 LCPI32_9 - 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, //0x00006800 QUAD $0x7d7d7d7d7d7d7d7d; QUAD $0x7d7d7d7d7d7d7d7d // .space 16, '}}}}}}}}}}}}}}}}' - 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, //0x00006810 QUAD $0x7d7d7d7d7d7d7d7d; QUAD $0x7d7d7d7d7d7d7d7d // .space 16, '}}}}}}}}}}}}}}}}' - //0x00006820 LCPI32_10 - 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, //0x00006820 QUAD $0x5b5b5b5b5b5b5b5b; QUAD $0x5b5b5b5b5b5b5b5b // .space 16, '[[[[[[[[[[[[[[[[' - 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, //0x00006830 QUAD $0x5b5b5b5b5b5b5b5b; QUAD $0x5b5b5b5b5b5b5b5b // .space 16, '[[[[[[[[[[[[[[[[' - //0x00006840 .p2align 4, 0x00 - //0x00006840 LCPI32_3 - 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, //0x00006840 QUAD $0x2c2c2c2c2c2c2c2c; QUAD $0x2c2c2c2c2c2c2c2c // .space 16, ',,,,,,,,,,,,,,,,' - //0x00006850 LCPI32_4 - 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, //0x00006850 QUAD $0xdfdfdfdfdfdfdfdf; QUAD $0xdfdfdfdfdfdfdfdf // .space 16, '\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf' - //0x00006860 LCPI32_5 - 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, //0x00006860 QUAD $0x5d5d5d5d5d5d5d5d; QUAD $0x5d5d5d5d5d5d5d5d // .space 16, ']]]]]]]]]]]]]]]]' - //0x00006870 .p2align 4, 0x90 - //0x00006870 _skip_one_fast - 0x55, //0x00006870 pushq %rbp - 0x48, 0x89, 0xe5, //0x00006871 movq %rsp, %rbp - 0x41, 0x57, //0x00006874 pushq %r15 - 0x41, 0x56, //0x00006876 pushq %r14 - 0x41, 0x55, //0x00006878 pushq %r13 - 0x41, 0x54, //0x0000687a pushq %r12 - 0x53, //0x0000687c pushq %rbx - 0x48, 0x81, 0xec, 0x80, 0x00, 0x00, 0x00, //0x0000687d subq $128, %rsp - 0x49, 0x89, 0xf6, //0x00006884 movq %rsi, %r14 - 0x49, 0x89, 0xff, //0x00006887 movq %rdi, %r15 - 0x48, 0x8b, 0x3f, //0x0000688a movq (%rdi), %rdi - 0x49, 0x8b, 0x77, 0x08, //0x0000688d movq $8(%r15), %rsi - 0x4c, 0x89, 0xf2, //0x00006891 movq %r14, %rdx - 0xe8, 0x27, 0xdd, 0xff, 0xff, //0x00006894 callq _advance_ns - 0x49, 0x8b, 0x16, //0x00006899 movq (%r14), %rdx - 0x4c, 0x8d, 0x62, 0xff, //0x0000689c leaq $-1(%rdx), %r12 - 0x0f, 0xbe, 0xc8, //0x000068a0 movsbl %al, %ecx - 0x83, 0xf9, 0x7b, //0x000068a3 cmpl $123, %ecx - 0x0f, 0x87, 0x71, 0x01, 0x00, 0x00, //0x000068a6 ja LBB32_23 - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000068ac movq $-1, %rax - 0x48, 0x8d, 0x35, 0xee, 0x08, 0x00, 0x00, //0x000068b3 leaq $2286(%rip), %rsi /* LJTI32_0+0(%rip) */ - 0x48, 0x63, 0x0c, 0x8e, //0x000068ba movslq (%rsi,%rcx,4), %rcx - 0x48, 0x01, 0xf1, //0x000068be addq %rsi, %rcx - 0xff, 0xe1, //0x000068c1 jmpq *%rcx - //0x000068c3 LBB32_2 - 0x49, 0x8b, 0x07, //0x000068c3 movq (%r15), %rax - 0x49, 0x8b, 0x77, 0x08, //0x000068c6 movq $8(%r15), %rsi - 0x48, 0x89, 0xf1, //0x000068ca movq %rsi, %rcx - 0x48, 0x29, 0xd1, //0x000068cd subq %rdx, %rcx - 0x48, 0x83, 0xf9, 0x20, //0x000068d0 cmpq $32, %rcx - 0x0f, 0x82, 0x17, 0x08, 0x00, 0x00, //0x000068d4 jb LBB32_87 - 0x48, 0x89, 0xd1, //0x000068da movq %rdx, %rcx - 0x48, 0xf7, 0xd9, //0x000068dd negq %rcx - 0xc5, 0xfd, 0x6f, 0x05, 0x58, 0xfe, 0xff, 0xff, //0x000068e0 vmovdqa $-424(%rip), %ymm0 /* LCPI32_0+0(%rip) */ - 0xc5, 0xfd, 0x6f, 0x0d, 0x70, 0xfe, 0xff, 0xff, //0x000068e8 vmovdqa $-400(%rip), %ymm1 /* LCPI32_1+0(%rip) */ - 0xc5, 0xfd, 0x6f, 0x15, 0x88, 0xfe, 0xff, 0xff, //0x000068f0 vmovdqa $-376(%rip), %ymm2 /* LCPI32_2+0(%rip) */ - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000068f8 .p2align 4, 0x90 - //0x00006900 LBB32_4 - 0xc5, 0xfe, 0x6f, 0x1c, 0x10, //0x00006900 vmovdqu (%rax,%rdx), %ymm3 - 0xc5, 0xe5, 0x74, 0xe0, //0x00006905 vpcmpeqb %ymm0, %ymm3, %ymm4 - 0xc5, 0xe5, 0xdb, 0xd9, //0x00006909 vpand %ymm1, %ymm3, %ymm3 - 0xc5, 0xe5, 0x74, 0xda, //0x0000690d vpcmpeqb %ymm2, %ymm3, %ymm3 - 0xc5, 0xe5, 0xeb, 0xdc, //0x00006911 vpor %ymm4, %ymm3, %ymm3 - 0xc5, 0xfd, 0xd7, 0xfb, //0x00006915 vpmovmskb %ymm3, %edi - 0x85, 0xff, //0x00006919 testl %edi, %edi - 0x0f, 0x85, 0xcb, 0x00, 0x00, 0x00, //0x0000691b jne LBB32_18 - 0x48, 0x83, 0xc2, 0x20, //0x00006921 addq $32, %rdx - 0x48, 0x8d, 0x3c, 0x0e, //0x00006925 leaq (%rsi,%rcx), %rdi - 0x48, 0x83, 0xc7, 0xe0, //0x00006929 addq $-32, %rdi - 0x48, 0x83, 0xc1, 0xe0, //0x0000692d addq $-32, %rcx - 0x48, 0x83, 0xff, 0x1f, //0x00006931 cmpq $31, %rdi - 0x0f, 0x87, 0xc5, 0xff, 0xff, 0xff, //0x00006935 ja LBB32_4 - 0x48, 0x89, 0xc2, //0x0000693b movq %rax, %rdx - 0x48, 0x29, 0xca, //0x0000693e subq %rcx, %rdx - 0x48, 0x01, 0xce, //0x00006941 addq %rcx, %rsi - 0x48, 0x89, 0xf1, //0x00006944 movq %rsi, %rcx - 0x48, 0x83, 0xf9, 0x10, //0x00006947 cmpq $16, %rcx - 0x0f, 0x82, 0x55, 0x00, 0x00, 0x00, //0x0000694b jb LBB32_10 - //0x00006951 LBB32_7 - 0x48, 0x89, 0xc6, //0x00006951 movq %rax, %rsi - 0x48, 0x29, 0xd6, //0x00006954 subq %rdx, %rsi - 0xc5, 0xf9, 0x6f, 0x05, 0xe1, 0xfe, 0xff, 0xff, //0x00006957 vmovdqa $-287(%rip), %xmm0 /* LCPI32_3+0(%rip) */ - 0xc5, 0xf9, 0x6f, 0x0d, 0xe9, 0xfe, 0xff, 0xff, //0x0000695f vmovdqa $-279(%rip), %xmm1 /* LCPI32_4+0(%rip) */ - 0xc5, 0xf9, 0x6f, 0x15, 0xf1, 0xfe, 0xff, 0xff, //0x00006967 vmovdqa $-271(%rip), %xmm2 /* LCPI32_5+0(%rip) */ - 0x90, //0x0000696f .p2align 4, 0x90 - //0x00006970 LBB32_8 - 0xc5, 0xfa, 0x6f, 0x1a, //0x00006970 vmovdqu (%rdx), %xmm3 - 0xc5, 0xe1, 0x74, 0xe0, //0x00006974 vpcmpeqb %xmm0, %xmm3, %xmm4 - 0xc5, 0xe1, 0xdb, 0xd9, //0x00006978 vpand %xmm1, %xmm3, %xmm3 - 0xc5, 0xe1, 0x74, 0xda, //0x0000697c vpcmpeqb %xmm2, %xmm3, %xmm3 - 0xc5, 0xe1, 0xeb, 0xdc, //0x00006980 vpor %xmm4, %xmm3, %xmm3 - 0xc5, 0xf9, 0xd7, 0xfb, //0x00006984 vpmovmskb %xmm3, %edi - 0x85, 0xff, //0x00006988 testl %edi, %edi - 0x0f, 0x85, 0x35, 0x07, 0x00, 0x00, //0x0000698a jne LBB32_86 - 0x48, 0x83, 0xc2, 0x10, //0x00006990 addq $16, %rdx - 0x48, 0x83, 0xc1, 0xf0, //0x00006994 addq $-16, %rcx - 0x48, 0x83, 0xc6, 0xf0, //0x00006998 addq $-16, %rsi - 0x48, 0x83, 0xf9, 0x0f, //0x0000699c cmpq $15, %rcx - 0x0f, 0x87, 0xca, 0xff, 0xff, 0xff, //0x000069a0 ja LBB32_8 - //0x000069a6 LBB32_10 - 0x48, 0x85, 0xc9, //0x000069a6 testq %rcx, %rcx - 0x0f, 0x84, 0x35, 0x00, 0x00, 0x00, //0x000069a9 je LBB32_17 - 0x48, 0x8d, 0x3c, 0x0a, //0x000069af leaq (%rdx,%rcx), %rdi - 0x31, 0xf6, //0x000069b3 xorl %esi, %esi - //0x000069b5 LBB32_12 - 0x0f, 0xb6, 0x1c, 0x32, //0x000069b5 movzbl (%rdx,%rsi), %ebx - 0x80, 0xfb, 0x2c, //0x000069b9 cmpb $44, %bl - 0x0f, 0x84, 0x41, 0x07, 0x00, 0x00, //0x000069bc je LBB32_88 - 0x80, 0xfb, 0x7d, //0x000069c2 cmpb $125, %bl - 0x0f, 0x84, 0x38, 0x07, 0x00, 0x00, //0x000069c5 je LBB32_88 - 0x80, 0xfb, 0x5d, //0x000069cb cmpb $93, %bl - 0x0f, 0x84, 0x2f, 0x07, 0x00, 0x00, //0x000069ce je LBB32_88 - 0x48, 0x83, 0xc6, 0x01, //0x000069d4 addq $1, %rsi - 0x48, 0x39, 0xf1, //0x000069d8 cmpq %rsi, %rcx - 0x0f, 0x85, 0xd4, 0xff, 0xff, 0xff, //0x000069db jne LBB32_12 - 0x48, 0x89, 0xfa, //0x000069e1 movq %rdi, %rdx - //0x000069e4 LBB32_17 - 0x48, 0x29, 0xc2, //0x000069e4 subq %rax, %rdx - 0xe9, 0xe2, 0x03, 0x00, 0x00, //0x000069e7 jmp LBB32_59 - //0x000069ec LBB32_18 - 0x0f, 0xbc, 0xc7, //0x000069ec bsfl %edi, %eax - 0x48, 0x29, 0xc8, //0x000069ef subq %rcx, %rax - //0x000069f2 LBB32_19 - 0x49, 0x89, 0x06, //0x000069f2 movq %rax, (%r14) - //0x000069f5 LBB32_20 - 0x4c, 0x89, 0xe0, //0x000069f5 movq %r12, %rax - //0x000069f8 LBB32_21 - 0x48, 0x8d, 0x65, 0xd8, //0x000069f8 leaq $-40(%rbp), %rsp - 0x5b, //0x000069fc popq %rbx - 0x41, 0x5c, //0x000069fd popq %r12 - 0x41, 0x5d, //0x000069ff popq %r13 - 0x41, 0x5e, //0x00006a01 popq %r14 - 0x41, 0x5f, //0x00006a03 popq %r15 - 0x5d, //0x00006a05 popq %rbp - 0xc5, 0xf8, 0x77, //0x00006a06 vzeroupper - 0xc3, //0x00006a09 retq - //0x00006a0a LBB32_22 - 0x48, 0x83, 0xc2, 0x03, //0x00006a0a addq $3, %rdx - 0x49, 0x3b, 0x57, 0x08, //0x00006a0e cmpq $8(%r15), %rdx - 0x0f, 0x87, 0xe0, 0xff, 0xff, 0xff, //0x00006a12 ja LBB32_21 - 0xe9, 0xb1, 0x03, 0x00, 0x00, //0x00006a18 jmp LBB32_59 - //0x00006a1d LBB32_23 - 0x4d, 0x89, 0x26, //0x00006a1d movq %r12, (%r14) - 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00006a20 movq $-2, %rax - 0xe9, 0xcc, 0xff, 0xff, 0xff, //0x00006a27 jmp LBB32_21 - //0x00006a2c LBB32_24 - 0x49, 0x8b, 0x0f, //0x00006a2c movq (%r15), %rcx - 0x4d, 0x8b, 0x57, 0x08, //0x00006a2f movq $8(%r15), %r10 - 0x48, 0x89, 0x4c, 0x24, 0x18, //0x00006a33 movq %rcx, $24(%rsp) - 0x4c, 0x8d, 0x0c, 0x11, //0x00006a38 leaq (%rcx,%rdx), %r9 - 0x49, 0x29, 0xd2, //0x00006a3c subq %rdx, %r10 - 0x49, 0x83, 0xfa, 0x20, //0x00006a3f cmpq $32, %r10 - 0x0f, 0x8c, 0x9a, 0x06, 0x00, 0x00, //0x00006a43 jl LBB32_33 - 0xbe, 0x20, 0x00, 0x00, 0x00, //0x00006a49 movl $32, %esi - 0x45, 0x31, 0xed, //0x00006a4e xorl %r13d, %r13d - 0xc5, 0xfd, 0x6f, 0x05, 0x47, 0xfd, 0xff, 0xff, //0x00006a51 vmovdqa $-697(%rip), %ymm0 /* LCPI32_6+0(%rip) */ - 0xc5, 0xfd, 0x6f, 0x0d, 0x5f, 0xfd, 0xff, 0xff, //0x00006a59 vmovdqa $-673(%rip), %ymm1 /* LCPI32_7+0(%rip) */ - 0x45, 0x31, 0xff, //0x00006a61 xorl %r15d, %r15d - 0xe9, 0x5e, 0x00, 0x00, 0x00, //0x00006a64 jmp LBB32_26 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00006a69 .p2align 4, 0x90 - //0x00006a70 LBB32_29 - 0x44, 0x89, 0xf9, //0x00006a70 movl %r15d, %ecx - 0xf7, 0xd1, //0x00006a73 notl %ecx - 0x21, 0xf9, //0x00006a75 andl %edi, %ecx - 0x44, 0x8d, 0x04, 0x09, //0x00006a77 leal (%rcx,%rcx), %r8d - 0x45, 0x09, 0xf8, //0x00006a7b orl %r15d, %r8d - 0x44, 0x89, 0xc3, //0x00006a7e movl %r8d, %ebx - 0xf7, 0xd3, //0x00006a81 notl %ebx - 0x21, 0xfb, //0x00006a83 andl %edi, %ebx - 0x81, 0xe3, 0xaa, 0xaa, 0xaa, 0xaa, //0x00006a85 andl $-1431655766, %ebx - 0x45, 0x31, 0xff, //0x00006a8b xorl %r15d, %r15d - 0x01, 0xcb, //0x00006a8e addl %ecx, %ebx - 0x41, 0x0f, 0x92, 0xc7, //0x00006a90 setb %r15b - 0x01, 0xdb, //0x00006a94 addl %ebx, %ebx - 0x81, 0xf3, 0x55, 0x55, 0x55, 0x55, //0x00006a96 xorl $1431655765, %ebx - 0x44, 0x21, 0xc3, //0x00006a9c andl %r8d, %ebx - 0xf7, 0xd3, //0x00006a9f notl %ebx - 0x41, 0x21, 0xdb, //0x00006aa1 andl %ebx, %r11d - 0x4d, 0x85, 0xdb, //0x00006aa4 testq %r11, %r11 - 0x0f, 0x85, 0x4d, 0x00, 0x00, 0x00, //0x00006aa7 jne LBB32_85 - //0x00006aad LBB32_30 - 0x49, 0x83, 0xc5, 0x20, //0x00006aad addq $32, %r13 - 0x49, 0x8d, 0x0c, 0x32, //0x00006ab1 leaq (%r10,%rsi), %rcx - 0x48, 0x83, 0xc1, 0xe0, //0x00006ab5 addq $-32, %rcx - 0x48, 0x83, 0xc6, 0xe0, //0x00006ab9 addq $-32, %rsi - 0x48, 0x83, 0xf9, 0x3f, //0x00006abd cmpq $63, %rcx - 0x0f, 0x8e, 0x0d, 0x06, 0x00, 0x00, //0x00006ac1 jle LBB32_31 - //0x00006ac7 LBB32_26 - 0xc4, 0x81, 0x7e, 0x6f, 0x14, 0x29, //0x00006ac7 vmovdqu (%r9,%r13), %ymm2 - 0xc5, 0xed, 0x74, 0xd8, //0x00006acd vpcmpeqb %ymm0, %ymm2, %ymm3 - 0xc5, 0x7d, 0xd7, 0xdb, //0x00006ad1 vpmovmskb %ymm3, %r11d - 0xc5, 0xed, 0x74, 0xd1, //0x00006ad5 vpcmpeqb %ymm1, %ymm2, %ymm2 - 0xc5, 0xfd, 0xd7, 0xfa, //0x00006ad9 vpmovmskb %ymm2, %edi - 0x85, 0xff, //0x00006add testl %edi, %edi - 0x0f, 0x85, 0x8b, 0xff, 0xff, 0xff, //0x00006adf jne LBB32_29 - 0x4d, 0x85, 0xff, //0x00006ae5 testq %r15, %r15 - 0x0f, 0x85, 0x82, 0xff, 0xff, 0xff, //0x00006ae8 jne LBB32_29 - 0x45, 0x31, 0xff, //0x00006aee xorl %r15d, %r15d - 0x4d, 0x85, 0xdb, //0x00006af1 testq %r11, %r11 - 0x0f, 0x84, 0xb3, 0xff, 0xff, 0xff, //0x00006af4 je LBB32_30 - //0x00006afa LBB32_85 - 0x41, 0x0f, 0xbc, 0xc3, //0x00006afa bsfl %r11d, %eax - 0x48, 0x01, 0xd0, //0x00006afe addq %rdx, %rax - 0x4c, 0x01, 0xe8, //0x00006b01 addq %r13, %rax - 0x48, 0x83, 0xc0, 0x01, //0x00006b04 addq $1, %rax - 0xe9, 0xe5, 0xfe, 0xff, 0xff, //0x00006b08 jmp LBB32_19 - //0x00006b0d LBB32_34 - 0x49, 0x8b, 0x4f, 0x08, //0x00006b0d movq $8(%r15), %rcx - 0x48, 0x29, 0xd1, //0x00006b11 subq %rdx, %rcx - 0x49, 0x03, 0x17, //0x00006b14 addq (%r15), %rdx - 0x45, 0x31, 0xc9, //0x00006b17 xorl %r9d, %r9d - 0xc5, 0xfd, 0x6f, 0x05, 0x9e, 0xfc, 0xff, 0xff, //0x00006b1a vmovdqa $-866(%rip), %ymm0 /* LCPI32_7+0(%rip) */ - 0xc5, 0xfd, 0x6f, 0x0d, 0x76, 0xfc, 0xff, 0xff, //0x00006b22 vmovdqa $-906(%rip), %ymm1 /* LCPI32_6+0(%rip) */ - 0xc5, 0xe9, 0x76, 0xd2, //0x00006b2a vpcmpeqd %xmm2, %xmm2, %xmm2 - 0xc5, 0xfd, 0x6f, 0x1d, 0xea, 0xfc, 0xff, 0xff, //0x00006b2e vmovdqa $-790(%rip), %ymm3 /* LCPI32_10+0(%rip) */ - 0xc5, 0xfd, 0x6f, 0x25, 0x42, 0xfc, 0xff, 0xff, //0x00006b36 vmovdqa $-958(%rip), %ymm4 /* LCPI32_2+0(%rip) */ - 0xc4, 0x41, 0x30, 0x57, 0xc9, //0x00006b3e vxorps %xmm9, %xmm9, %xmm9 - 0x45, 0x31, 0xd2, //0x00006b43 xorl %r10d, %r10d - 0x45, 0x31, 0xc0, //0x00006b46 xorl %r8d, %r8d - 0x31, 0xf6, //0x00006b49 xorl %esi, %esi - 0xe9, 0x1c, 0x00, 0x00, 0x00, //0x00006b4b jmp LBB32_36 - //0x00006b50 LBB32_35 - 0x49, 0xc1, 0xfd, 0x3f, //0x00006b50 sarq $63, %r13 - 0xf3, 0x49, 0x0f, 0xb8, 0xcb, //0x00006b54 popcntq %r11, %rcx - 0x49, 0x01, 0xc8, //0x00006b59 addq %rcx, %r8 - 0x48, 0x83, 0xc2, 0x40, //0x00006b5c addq $64, %rdx - 0x48, 0x8b, 0x4c, 0x24, 0x18, //0x00006b60 movq $24(%rsp), %rcx - 0x48, 0x83, 0xc1, 0xc0, //0x00006b65 addq $-64, %rcx - 0x4d, 0x89, 0xe9, //0x00006b69 movq %r13, %r9 - //0x00006b6c LBB32_36 - 0x48, 0x83, 0xf9, 0x40, //0x00006b6c cmpq $64, %rcx - 0x48, 0x89, 0x4c, 0x24, 0x18, //0x00006b70 movq %rcx, $24(%rsp) - 0x0f, 0x8c, 0x22, 0x01, 0x00, 0x00, //0x00006b75 jl LBB32_43 - //0x00006b7b LBB32_37 - 0xc5, 0xfe, 0x6f, 0x3a, //0x00006b7b vmovdqu (%rdx), %ymm7 - 0xc5, 0xfe, 0x6f, 0x72, 0x20, //0x00006b7f vmovdqu $32(%rdx), %ymm6 - 0xc5, 0x45, 0x74, 0xc0, //0x00006b84 vpcmpeqb %ymm0, %ymm7, %ymm8 - 0xc4, 0xc1, 0x7d, 0xd7, 0xc8, //0x00006b88 vpmovmskb %ymm8, %ecx - 0xc5, 0x4d, 0x74, 0xc0, //0x00006b8d vpcmpeqb %ymm0, %ymm6, %ymm8 - 0xc4, 0xc1, 0x7d, 0xd7, 0xf8, //0x00006b91 vpmovmskb %ymm8, %edi - 0x48, 0xc1, 0xe7, 0x20, //0x00006b96 shlq $32, %rdi - 0x48, 0x09, 0xf9, //0x00006b9a orq %rdi, %rcx - 0x48, 0x89, 0xcf, //0x00006b9d movq %rcx, %rdi - 0x4c, 0x09, 0xd7, //0x00006ba0 orq %r10, %rdi - 0x0f, 0x85, 0x0f, 0x00, 0x00, 0x00, //0x00006ba3 jne LBB32_39 - 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00006ba9 movq $-1, %rcx - 0x45, 0x31, 0xd2, //0x00006bb0 xorl %r10d, %r10d - 0xe9, 0x46, 0x00, 0x00, 0x00, //0x00006bb3 jmp LBB32_40 - //0x00006bb8 LBB32_39 - 0x4c, 0x89, 0xd7, //0x00006bb8 movq %r10, %rdi - 0x48, 0xf7, 0xd7, //0x00006bbb notq %rdi - 0x48, 0x21, 0xcf, //0x00006bbe andq %rcx, %rdi - 0x4c, 0x8d, 0x2c, 0x3f, //0x00006bc1 leaq (%rdi,%rdi), %r13 - 0x4d, 0x09, 0xd5, //0x00006bc5 orq %r10, %r13 - 0x4d, 0x89, 0xea, //0x00006bc8 movq %r13, %r10 - 0x49, 0xf7, 0xd2, //0x00006bcb notq %r10 - 0x48, 0xbb, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x00006bce movabsq $-6148914691236517206, %rbx - 0x48, 0x21, 0xd9, //0x00006bd8 andq %rbx, %rcx - 0x4c, 0x21, 0xd1, //0x00006bdb andq %r10, %rcx - 0x45, 0x31, 0xd2, //0x00006bde xorl %r10d, %r10d - 0x48, 0x01, 0xf9, //0x00006be1 addq %rdi, %rcx - 0x41, 0x0f, 0x92, 0xc2, //0x00006be4 setb %r10b - 0x48, 0x01, 0xc9, //0x00006be8 addq %rcx, %rcx - 0x48, 0xbf, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00006beb movabsq $6148914691236517205, %rdi - 0x48, 0x31, 0xf9, //0x00006bf5 xorq %rdi, %rcx - 0x4c, 0x21, 0xe9, //0x00006bf8 andq %r13, %rcx - 0x48, 0xf7, 0xd1, //0x00006bfb notq %rcx - //0x00006bfe LBB32_40 - 0xc5, 0x4d, 0x74, 0xc1, //0x00006bfe vpcmpeqb %ymm1, %ymm6, %ymm8 - 0xc4, 0xc1, 0x7d, 0xd7, 0xf8, //0x00006c02 vpmovmskb %ymm8, %edi - 0x48, 0xc1, 0xe7, 0x20, //0x00006c07 shlq $32, %rdi - 0xc5, 0x45, 0x74, 0xc1, //0x00006c0b vpcmpeqb %ymm1, %ymm7, %ymm8 - 0xc4, 0xc1, 0x7d, 0xd7, 0xd8, //0x00006c0f vpmovmskb %ymm8, %ebx - 0x48, 0x09, 0xfb, //0x00006c14 orq %rdi, %rbx - 0x48, 0x21, 0xcb, //0x00006c17 andq %rcx, %rbx - 0xc4, 0xe1, 0xf9, 0x6e, 0xeb, //0x00006c1a vmovq %rbx, %xmm5 - 0xc4, 0xe3, 0x51, 0x44, 0xea, 0x00, //0x00006c1f vpclmulqdq $0, %xmm2, %xmm5, %xmm5 - 0xc4, 0xc1, 0xf9, 0x7e, 0xed, //0x00006c25 vmovq %xmm5, %r13 - 0x4d, 0x31, 0xcd, //0x00006c2a xorq %r9, %r13 - 0xc5, 0xc5, 0x74, 0xeb, //0x00006c2d vpcmpeqb %ymm3, %ymm7, %ymm5 - 0xc5, 0x7d, 0xd7, 0xdd, //0x00006c31 vpmovmskb %ymm5, %r11d - 0xc5, 0xcd, 0x74, 0xeb, //0x00006c35 vpcmpeqb %ymm3, %ymm6, %ymm5 - 0xc5, 0xfd, 0xd7, 0xfd, //0x00006c39 vpmovmskb %ymm5, %edi - 0x48, 0xc1, 0xe7, 0x20, //0x00006c3d shlq $32, %rdi - 0x49, 0x09, 0xfb, //0x00006c41 orq %rdi, %r11 - 0x4d, 0x89, 0xe9, //0x00006c44 movq %r13, %r9 - 0x49, 0xf7, 0xd1, //0x00006c47 notq %r9 - 0x4d, 0x21, 0xcb, //0x00006c4a andq %r9, %r11 - 0xc5, 0xc5, 0x74, 0xec, //0x00006c4d vpcmpeqb %ymm4, %ymm7, %ymm5 - 0xc5, 0xfd, 0xd7, 0xfd, //0x00006c51 vpmovmskb %ymm5, %edi - 0xc5, 0xcd, 0x74, 0xec, //0x00006c55 vpcmpeqb %ymm4, %ymm6, %ymm5 - 0xc5, 0xfd, 0xd7, 0xdd, //0x00006c59 vpmovmskb %ymm5, %ebx - 0x48, 0xc1, 0xe3, 0x20, //0x00006c5d shlq $32, %rbx - 0x48, 0x09, 0xdf, //0x00006c61 orq %rbx, %rdi - 0x4c, 0x21, 0xcf, //0x00006c64 andq %r9, %rdi - 0x0f, 0x84, 0xe3, 0xfe, 0xff, 0xff, //0x00006c67 je LBB32_35 - 0x90, 0x90, 0x90, //0x00006c6d .p2align 4, 0x90 - //0x00006c70 LBB32_41 - 0x48, 0x8d, 0x4f, 0xff, //0x00006c70 leaq $-1(%rdi), %rcx - 0x48, 0x89, 0xcb, //0x00006c74 movq %rcx, %rbx - 0x4c, 0x21, 0xdb, //0x00006c77 andq %r11, %rbx - 0xf3, 0x48, 0x0f, 0xb8, 0xdb, //0x00006c7a popcntq %rbx, %rbx - 0x4c, 0x01, 0xc3, //0x00006c7f addq %r8, %rbx - 0x48, 0x39, 0xf3, //0x00006c82 cmpq %rsi, %rbx - 0x0f, 0x86, 0x05, 0x04, 0x00, 0x00, //0x00006c85 jbe LBB32_84 - 0x48, 0x83, 0xc6, 0x01, //0x00006c8b addq $1, %rsi - 0x48, 0x21, 0xcf, //0x00006c8f andq %rcx, %rdi - 0x0f, 0x85, 0xd8, 0xff, 0xff, 0xff, //0x00006c92 jne LBB32_41 - 0xe9, 0xb3, 0xfe, 0xff, 0xff, //0x00006c98 jmp LBB32_35 - //0x00006c9d LBB32_43 - 0x48, 0x85, 0xc9, //0x00006c9d testq %rcx, %rcx - 0x0f, 0x8e, 0x68, 0x04, 0x00, 0x00, //0x00006ca0 jle LBB32_89 - 0xc5, 0x7c, 0x11, 0x4c, 0x24, 0x40, //0x00006ca6 vmovups %ymm9, $64(%rsp) - 0xc5, 0x7c, 0x11, 0x4c, 0x24, 0x20, //0x00006cac vmovups %ymm9, $32(%rsp) - 0x89, 0xd1, //0x00006cb2 movl %edx, %ecx - 0x81, 0xe1, 0xff, 0x0f, 0x00, 0x00, //0x00006cb4 andl $4095, %ecx - 0x81, 0xf9, 0xc1, 0x0f, 0x00, 0x00, //0x00006cba cmpl $4033, %ecx - 0x0f, 0x82, 0xb5, 0xfe, 0xff, 0xff, //0x00006cc0 jb LBB32_37 - 0x48, 0x83, 0x7c, 0x24, 0x18, 0x20, //0x00006cc6 cmpq $32, $24(%rsp) - 0x0f, 0x82, 0x21, 0x00, 0x00, 0x00, //0x00006ccc jb LBB32_47 - 0xc5, 0xfc, 0x10, 0x2a, //0x00006cd2 vmovups (%rdx), %ymm5 - 0xc5, 0xfc, 0x11, 0x6c, 0x24, 0x20, //0x00006cd6 vmovups %ymm5, $32(%rsp) - 0x48, 0x83, 0xc2, 0x20, //0x00006cdc addq $32, %rdx - 0x48, 0x8b, 0x4c, 0x24, 0x18, //0x00006ce0 movq $24(%rsp), %rcx - 0x48, 0x8d, 0x59, 0xe0, //0x00006ce5 leaq $-32(%rcx), %rbx - 0x48, 0x8d, 0x7c, 0x24, 0x40, //0x00006ce9 leaq $64(%rsp), %rdi - 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x00006cee jmp LBB32_48 - //0x00006cf3 LBB32_47 - 0x48, 0x8d, 0x7c, 0x24, 0x20, //0x00006cf3 leaq $32(%rsp), %rdi - 0x48, 0x8b, 0x5c, 0x24, 0x18, //0x00006cf8 movq $24(%rsp), %rbx - //0x00006cfd LBB32_48 - 0x48, 0x83, 0xfb, 0x10, //0x00006cfd cmpq $16, %rbx - 0x0f, 0x82, 0x58, 0x00, 0x00, 0x00, //0x00006d01 jb LBB32_49 - 0xc5, 0xf8, 0x10, 0x2a, //0x00006d07 vmovups (%rdx), %xmm5 - 0xc5, 0xf8, 0x11, 0x2f, //0x00006d0b vmovups %xmm5, (%rdi) - 0x48, 0x83, 0xc2, 0x10, //0x00006d0f addq $16, %rdx - 0x48, 0x83, 0xc7, 0x10, //0x00006d13 addq $16, %rdi - 0x48, 0x83, 0xc3, 0xf0, //0x00006d17 addq $-16, %rbx - 0x48, 0x83, 0xfb, 0x08, //0x00006d1b cmpq $8, %rbx - 0x0f, 0x83, 0x44, 0x00, 0x00, 0x00, //0x00006d1f jae LBB32_54 - //0x00006d25 LBB32_50 - 0x48, 0x83, 0xfb, 0x04, //0x00006d25 cmpq $4, %rbx - 0x0f, 0x8c, 0x56, 0x00, 0x00, 0x00, //0x00006d29 jl LBB32_51 - //0x00006d2f LBB32_55 - 0x8b, 0x0a, //0x00006d2f movl (%rdx), %ecx - 0x89, 0x0f, //0x00006d31 movl %ecx, (%rdi) - 0x48, 0x83, 0xc2, 0x04, //0x00006d33 addq $4, %rdx - 0x48, 0x83, 0xc7, 0x04, //0x00006d37 addq $4, %rdi - 0x48, 0x83, 0xc3, 0xfc, //0x00006d3b addq $-4, %rbx - 0x48, 0x83, 0xfb, 0x02, //0x00006d3f cmpq $2, %rbx - 0x0f, 0x83, 0x46, 0x00, 0x00, 0x00, //0x00006d43 jae LBB32_56 - //0x00006d49 LBB32_52 - 0x48, 0x89, 0xd1, //0x00006d49 movq %rdx, %rcx - 0x48, 0x8d, 0x54, 0x24, 0x20, //0x00006d4c leaq $32(%rsp), %rdx - 0x48, 0x85, 0xdb, //0x00006d51 testq %rbx, %rbx - 0x0f, 0x85, 0x58, 0x00, 0x00, 0x00, //0x00006d54 jne LBB32_57 - 0xe9, 0x1c, 0xfe, 0xff, 0xff, //0x00006d5a jmp LBB32_37 - //0x00006d5f LBB32_49 - 0x48, 0x83, 0xfb, 0x08, //0x00006d5f cmpq $8, %rbx - 0x0f, 0x82, 0xbc, 0xff, 0xff, 0xff, //0x00006d63 jb LBB32_50 - //0x00006d69 LBB32_54 - 0x48, 0x8b, 0x0a, //0x00006d69 movq (%rdx), %rcx - 0x48, 0x89, 0x0f, //0x00006d6c movq %rcx, (%rdi) - 0x48, 0x83, 0xc2, 0x08, //0x00006d6f addq $8, %rdx - 0x48, 0x83, 0xc7, 0x08, //0x00006d73 addq $8, %rdi - 0x48, 0x83, 0xc3, 0xf8, //0x00006d77 addq $-8, %rbx - 0x48, 0x83, 0xfb, 0x04, //0x00006d7b cmpq $4, %rbx - 0x0f, 0x8d, 0xaa, 0xff, 0xff, 0xff, //0x00006d7f jge LBB32_55 - //0x00006d85 LBB32_51 - 0x48, 0x83, 0xfb, 0x02, //0x00006d85 cmpq $2, %rbx - 0x0f, 0x82, 0xba, 0xff, 0xff, 0xff, //0x00006d89 jb LBB32_52 - //0x00006d8f LBB32_56 - 0x0f, 0xb7, 0x0a, //0x00006d8f movzwl (%rdx), %ecx - 0x66, 0x89, 0x0f, //0x00006d92 movw %cx, (%rdi) - 0x48, 0x83, 0xc2, 0x02, //0x00006d95 addq $2, %rdx - 0x48, 0x83, 0xc7, 0x02, //0x00006d99 addq $2, %rdi - 0x48, 0x83, 0xc3, 0xfe, //0x00006d9d addq $-2, %rbx - 0x48, 0x89, 0xd1, //0x00006da1 movq %rdx, %rcx - 0x48, 0x8d, 0x54, 0x24, 0x20, //0x00006da4 leaq $32(%rsp), %rdx - 0x48, 0x85, 0xdb, //0x00006da9 testq %rbx, %rbx - 0x0f, 0x84, 0xc9, 0xfd, 0xff, 0xff, //0x00006dac je LBB32_37 - //0x00006db2 LBB32_57 - 0x8a, 0x09, //0x00006db2 movb (%rcx), %cl - 0x88, 0x0f, //0x00006db4 movb %cl, (%rdi) - 0x48, 0x8d, 0x54, 0x24, 0x20, //0x00006db6 leaq $32(%rsp), %rdx - 0xe9, 0xbb, 0xfd, 0xff, 0xff, //0x00006dbb jmp LBB32_37 - //0x00006dc0 LBB32_58 - 0x48, 0x83, 0xc2, 0x04, //0x00006dc0 addq $4, %rdx - 0x49, 0x3b, 0x57, 0x08, //0x00006dc4 cmpq $8(%r15), %rdx - 0x0f, 0x87, 0x2a, 0xfc, 0xff, 0xff, //0x00006dc8 ja LBB32_21 - //0x00006dce LBB32_59 - 0x49, 0x89, 0x16, //0x00006dce movq %rdx, (%r14) - 0xe9, 0x1f, 0xfc, 0xff, 0xff, //0x00006dd1 jmp LBB32_20 - //0x00006dd6 LBB32_60 - 0x49, 0x8b, 0x4f, 0x08, //0x00006dd6 movq $8(%r15), %rcx - 0x48, 0x29, 0xd1, //0x00006dda subq %rdx, %rcx - 0x49, 0x03, 0x17, //0x00006ddd addq (%r15), %rdx - 0x45, 0x31, 0xc9, //0x00006de0 xorl %r9d, %r9d - 0xc5, 0xfd, 0x6f, 0x05, 0xd5, 0xf9, 0xff, 0xff, //0x00006de3 vmovdqa $-1579(%rip), %ymm0 /* LCPI32_7+0(%rip) */ - 0xc5, 0xfd, 0x6f, 0x0d, 0xad, 0xf9, 0xff, 0xff, //0x00006deb vmovdqa $-1619(%rip), %ymm1 /* LCPI32_6+0(%rip) */ - 0xc5, 0xe9, 0x76, 0xd2, //0x00006df3 vpcmpeqd %xmm2, %xmm2, %xmm2 - 0xc5, 0xfd, 0x6f, 0x1d, 0xe1, 0xf9, 0xff, 0xff, //0x00006df7 vmovdqa $-1567(%rip), %ymm3 /* LCPI32_8+0(%rip) */ - 0xc5, 0xfd, 0x6f, 0x25, 0xf9, 0xf9, 0xff, 0xff, //0x00006dff vmovdqa $-1543(%rip), %ymm4 /* LCPI32_9+0(%rip) */ - 0xc4, 0x41, 0x30, 0x57, 0xc9, //0x00006e07 vxorps %xmm9, %xmm9, %xmm9 - 0x45, 0x31, 0xd2, //0x00006e0c xorl %r10d, %r10d - 0x45, 0x31, 0xc0, //0x00006e0f xorl %r8d, %r8d - 0x31, 0xf6, //0x00006e12 xorl %esi, %esi - 0xe9, 0x1c, 0x00, 0x00, 0x00, //0x00006e14 jmp LBB32_62 - //0x00006e19 LBB32_61 - 0x49, 0xc1, 0xfd, 0x3f, //0x00006e19 sarq $63, %r13 - 0xf3, 0x49, 0x0f, 0xb8, 0xcb, //0x00006e1d popcntq %r11, %rcx - 0x49, 0x01, 0xc8, //0x00006e22 addq %rcx, %r8 - 0x48, 0x83, 0xc2, 0x40, //0x00006e25 addq $64, %rdx - 0x48, 0x8b, 0x4c, 0x24, 0x18, //0x00006e29 movq $24(%rsp), %rcx - 0x48, 0x83, 0xc1, 0xc0, //0x00006e2e addq $-64, %rcx - 0x4d, 0x89, 0xe9, //0x00006e32 movq %r13, %r9 - //0x00006e35 LBB32_62 - 0x48, 0x83, 0xf9, 0x40, //0x00006e35 cmpq $64, %rcx - 0x48, 0x89, 0x4c, 0x24, 0x18, //0x00006e39 movq %rcx, $24(%rsp) - 0x0f, 0x8c, 0x29, 0x01, 0x00, 0x00, //0x00006e3e jl LBB32_69 - //0x00006e44 LBB32_63 - 0xc5, 0xfe, 0x6f, 0x3a, //0x00006e44 vmovdqu (%rdx), %ymm7 - 0xc5, 0xfe, 0x6f, 0x72, 0x20, //0x00006e48 vmovdqu $32(%rdx), %ymm6 - 0xc5, 0x45, 0x74, 0xc0, //0x00006e4d vpcmpeqb %ymm0, %ymm7, %ymm8 - 0xc4, 0xc1, 0x7d, 0xd7, 0xc8, //0x00006e51 vpmovmskb %ymm8, %ecx - 0xc5, 0x4d, 0x74, 0xc0, //0x00006e56 vpcmpeqb %ymm0, %ymm6, %ymm8 - 0xc4, 0xc1, 0x7d, 0xd7, 0xf8, //0x00006e5a vpmovmskb %ymm8, %edi - 0x48, 0xc1, 0xe7, 0x20, //0x00006e5f shlq $32, %rdi - 0x48, 0x09, 0xf9, //0x00006e63 orq %rdi, %rcx - 0x48, 0x89, 0xcf, //0x00006e66 movq %rcx, %rdi - 0x4c, 0x09, 0xd7, //0x00006e69 orq %r10, %rdi - 0x0f, 0x85, 0x0f, 0x00, 0x00, 0x00, //0x00006e6c jne LBB32_65 - 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00006e72 movq $-1, %rcx - 0x45, 0x31, 0xd2, //0x00006e79 xorl %r10d, %r10d - 0xe9, 0x46, 0x00, 0x00, 0x00, //0x00006e7c jmp LBB32_66 - //0x00006e81 LBB32_65 - 0x4c, 0x89, 0xd7, //0x00006e81 movq %r10, %rdi - 0x48, 0xf7, 0xd7, //0x00006e84 notq %rdi - 0x48, 0x21, 0xcf, //0x00006e87 andq %rcx, %rdi - 0x4c, 0x8d, 0x2c, 0x3f, //0x00006e8a leaq (%rdi,%rdi), %r13 - 0x4d, 0x09, 0xd5, //0x00006e8e orq %r10, %r13 - 0x4d, 0x89, 0xea, //0x00006e91 movq %r13, %r10 - 0x49, 0xf7, 0xd2, //0x00006e94 notq %r10 - 0x48, 0xbb, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x00006e97 movabsq $-6148914691236517206, %rbx - 0x48, 0x21, 0xd9, //0x00006ea1 andq %rbx, %rcx - 0x4c, 0x21, 0xd1, //0x00006ea4 andq %r10, %rcx - 0x45, 0x31, 0xd2, //0x00006ea7 xorl %r10d, %r10d - 0x48, 0x01, 0xf9, //0x00006eaa addq %rdi, %rcx - 0x41, 0x0f, 0x92, 0xc2, //0x00006ead setb %r10b - 0x48, 0x01, 0xc9, //0x00006eb1 addq %rcx, %rcx - 0x48, 0xbf, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00006eb4 movabsq $6148914691236517205, %rdi - 0x48, 0x31, 0xf9, //0x00006ebe xorq %rdi, %rcx - 0x4c, 0x21, 0xe9, //0x00006ec1 andq %r13, %rcx - 0x48, 0xf7, 0xd1, //0x00006ec4 notq %rcx - //0x00006ec7 LBB32_66 - 0xc5, 0x4d, 0x74, 0xc1, //0x00006ec7 vpcmpeqb %ymm1, %ymm6, %ymm8 - 0xc4, 0xc1, 0x7d, 0xd7, 0xf8, //0x00006ecb vpmovmskb %ymm8, %edi - 0x48, 0xc1, 0xe7, 0x20, //0x00006ed0 shlq $32, %rdi - 0xc5, 0x45, 0x74, 0xc1, //0x00006ed4 vpcmpeqb %ymm1, %ymm7, %ymm8 - 0xc4, 0xc1, 0x7d, 0xd7, 0xd8, //0x00006ed8 vpmovmskb %ymm8, %ebx - 0x48, 0x09, 0xfb, //0x00006edd orq %rdi, %rbx - 0x48, 0x21, 0xcb, //0x00006ee0 andq %rcx, %rbx - 0xc4, 0xe1, 0xf9, 0x6e, 0xeb, //0x00006ee3 vmovq %rbx, %xmm5 - 0xc4, 0xe3, 0x51, 0x44, 0xea, 0x00, //0x00006ee8 vpclmulqdq $0, %xmm2, %xmm5, %xmm5 - 0xc4, 0xc1, 0xf9, 0x7e, 0xed, //0x00006eee vmovq %xmm5, %r13 - 0x4d, 0x31, 0xcd, //0x00006ef3 xorq %r9, %r13 - 0xc5, 0xc5, 0x74, 0xeb, //0x00006ef6 vpcmpeqb %ymm3, %ymm7, %ymm5 - 0xc5, 0x7d, 0xd7, 0xdd, //0x00006efa vpmovmskb %ymm5, %r11d - 0xc5, 0xcd, 0x74, 0xeb, //0x00006efe vpcmpeqb %ymm3, %ymm6, %ymm5 - 0xc5, 0xfd, 0xd7, 0xfd, //0x00006f02 vpmovmskb %ymm5, %edi - 0x48, 0xc1, 0xe7, 0x20, //0x00006f06 shlq $32, %rdi - 0x49, 0x09, 0xfb, //0x00006f0a orq %rdi, %r11 - 0x4d, 0x89, 0xe9, //0x00006f0d movq %r13, %r9 - 0x49, 0xf7, 0xd1, //0x00006f10 notq %r9 - 0x4d, 0x21, 0xcb, //0x00006f13 andq %r9, %r11 - 0xc5, 0xc5, 0x74, 0xec, //0x00006f16 vpcmpeqb %ymm4, %ymm7, %ymm5 - 0xc5, 0xfd, 0xd7, 0xfd, //0x00006f1a vpmovmskb %ymm5, %edi - 0xc5, 0xcd, 0x74, 0xec, //0x00006f1e vpcmpeqb %ymm4, %ymm6, %ymm5 - 0xc5, 0xfd, 0xd7, 0xdd, //0x00006f22 vpmovmskb %ymm5, %ebx - 0x48, 0xc1, 0xe3, 0x20, //0x00006f26 shlq $32, %rbx - 0x48, 0x09, 0xdf, //0x00006f2a orq %rbx, %rdi - 0x4c, 0x21, 0xcf, //0x00006f2d andq %r9, %rdi - 0x0f, 0x84, 0xe3, 0xfe, 0xff, 0xff, //0x00006f30 je LBB32_61 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00006f36 .p2align 4, 0x90 - //0x00006f40 LBB32_67 - 0x48, 0x8d, 0x4f, 0xff, //0x00006f40 leaq $-1(%rdi), %rcx - 0x48, 0x89, 0xcb, //0x00006f44 movq %rcx, %rbx - 0x4c, 0x21, 0xdb, //0x00006f47 andq %r11, %rbx - 0xf3, 0x48, 0x0f, 0xb8, 0xdb, //0x00006f4a popcntq %rbx, %rbx - 0x4c, 0x01, 0xc3, //0x00006f4f addq %r8, %rbx - 0x48, 0x39, 0xf3, //0x00006f52 cmpq %rsi, %rbx - 0x0f, 0x86, 0x35, 0x01, 0x00, 0x00, //0x00006f55 jbe LBB32_84 - 0x48, 0x83, 0xc6, 0x01, //0x00006f5b addq $1, %rsi - 0x48, 0x21, 0xcf, //0x00006f5f andq %rcx, %rdi - 0x0f, 0x85, 0xd8, 0xff, 0xff, 0xff, //0x00006f62 jne LBB32_67 - 0xe9, 0xac, 0xfe, 0xff, 0xff, //0x00006f68 jmp LBB32_61 - //0x00006f6d LBB32_69 - 0x48, 0x85, 0xc9, //0x00006f6d testq %rcx, %rcx - 0x0f, 0x8e, 0x98, 0x01, 0x00, 0x00, //0x00006f70 jle LBB32_89 - 0xc5, 0x7c, 0x11, 0x4c, 0x24, 0x40, //0x00006f76 vmovups %ymm9, $64(%rsp) - 0xc5, 0x7c, 0x11, 0x4c, 0x24, 0x20, //0x00006f7c vmovups %ymm9, $32(%rsp) - 0x89, 0xd1, //0x00006f82 movl %edx, %ecx - 0x81, 0xe1, 0xff, 0x0f, 0x00, 0x00, //0x00006f84 andl $4095, %ecx - 0x81, 0xf9, 0xc1, 0x0f, 0x00, 0x00, //0x00006f8a cmpl $4033, %ecx - 0x0f, 0x82, 0xae, 0xfe, 0xff, 0xff, //0x00006f90 jb LBB32_63 - 0x48, 0x83, 0x7c, 0x24, 0x18, 0x20, //0x00006f96 cmpq $32, $24(%rsp) - 0x0f, 0x82, 0x21, 0x00, 0x00, 0x00, //0x00006f9c jb LBB32_73 - 0xc5, 0xfc, 0x10, 0x2a, //0x00006fa2 vmovups (%rdx), %ymm5 - 0xc5, 0xfc, 0x11, 0x6c, 0x24, 0x20, //0x00006fa6 vmovups %ymm5, $32(%rsp) - 0x48, 0x83, 0xc2, 0x20, //0x00006fac addq $32, %rdx - 0x48, 0x8b, 0x4c, 0x24, 0x18, //0x00006fb0 movq $24(%rsp), %rcx - 0x48, 0x8d, 0x59, 0xe0, //0x00006fb5 leaq $-32(%rcx), %rbx - 0x48, 0x8d, 0x7c, 0x24, 0x40, //0x00006fb9 leaq $64(%rsp), %rdi - 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x00006fbe jmp LBB32_74 - //0x00006fc3 LBB32_73 - 0x48, 0x8d, 0x7c, 0x24, 0x20, //0x00006fc3 leaq $32(%rsp), %rdi - 0x48, 0x8b, 0x5c, 0x24, 0x18, //0x00006fc8 movq $24(%rsp), %rbx - //0x00006fcd LBB32_74 - 0x48, 0x83, 0xfb, 0x10, //0x00006fcd cmpq $16, %rbx - 0x0f, 0x82, 0x58, 0x00, 0x00, 0x00, //0x00006fd1 jb LBB32_75 - 0xc5, 0xf8, 0x10, 0x2a, //0x00006fd7 vmovups (%rdx), %xmm5 - 0xc5, 0xf8, 0x11, 0x2f, //0x00006fdb vmovups %xmm5, (%rdi) - 0x48, 0x83, 0xc2, 0x10, //0x00006fdf addq $16, %rdx - 0x48, 0x83, 0xc7, 0x10, //0x00006fe3 addq $16, %rdi - 0x48, 0x83, 0xc3, 0xf0, //0x00006fe7 addq $-16, %rbx - 0x48, 0x83, 0xfb, 0x08, //0x00006feb cmpq $8, %rbx - 0x0f, 0x83, 0x44, 0x00, 0x00, 0x00, //0x00006fef jae LBB32_80 - //0x00006ff5 LBB32_76 - 0x48, 0x83, 0xfb, 0x04, //0x00006ff5 cmpq $4, %rbx - 0x0f, 0x8c, 0x56, 0x00, 0x00, 0x00, //0x00006ff9 jl LBB32_77 - //0x00006fff LBB32_81 - 0x8b, 0x0a, //0x00006fff movl (%rdx), %ecx - 0x89, 0x0f, //0x00007001 movl %ecx, (%rdi) - 0x48, 0x83, 0xc2, 0x04, //0x00007003 addq $4, %rdx - 0x48, 0x83, 0xc7, 0x04, //0x00007007 addq $4, %rdi - 0x48, 0x83, 0xc3, 0xfc, //0x0000700b addq $-4, %rbx - 0x48, 0x83, 0xfb, 0x02, //0x0000700f cmpq $2, %rbx - 0x0f, 0x83, 0x46, 0x00, 0x00, 0x00, //0x00007013 jae LBB32_82 - //0x00007019 LBB32_78 - 0x48, 0x89, 0xd1, //0x00007019 movq %rdx, %rcx - 0x48, 0x8d, 0x54, 0x24, 0x20, //0x0000701c leaq $32(%rsp), %rdx - 0x48, 0x85, 0xdb, //0x00007021 testq %rbx, %rbx - 0x0f, 0x85, 0x58, 0x00, 0x00, 0x00, //0x00007024 jne LBB32_83 - 0xe9, 0x15, 0xfe, 0xff, 0xff, //0x0000702a jmp LBB32_63 - //0x0000702f LBB32_75 - 0x48, 0x83, 0xfb, 0x08, //0x0000702f cmpq $8, %rbx - 0x0f, 0x82, 0xbc, 0xff, 0xff, 0xff, //0x00007033 jb LBB32_76 - //0x00007039 LBB32_80 - 0x48, 0x8b, 0x0a, //0x00007039 movq (%rdx), %rcx - 0x48, 0x89, 0x0f, //0x0000703c movq %rcx, (%rdi) - 0x48, 0x83, 0xc2, 0x08, //0x0000703f addq $8, %rdx - 0x48, 0x83, 0xc7, 0x08, //0x00007043 addq $8, %rdi - 0x48, 0x83, 0xc3, 0xf8, //0x00007047 addq $-8, %rbx - 0x48, 0x83, 0xfb, 0x04, //0x0000704b cmpq $4, %rbx - 0x0f, 0x8d, 0xaa, 0xff, 0xff, 0xff, //0x0000704f jge LBB32_81 - //0x00007055 LBB32_77 - 0x48, 0x83, 0xfb, 0x02, //0x00007055 cmpq $2, %rbx - 0x0f, 0x82, 0xba, 0xff, 0xff, 0xff, //0x00007059 jb LBB32_78 - //0x0000705f LBB32_82 - 0x0f, 0xb7, 0x0a, //0x0000705f movzwl (%rdx), %ecx - 0x66, 0x89, 0x0f, //0x00007062 movw %cx, (%rdi) - 0x48, 0x83, 0xc2, 0x02, //0x00007065 addq $2, %rdx - 0x48, 0x83, 0xc7, 0x02, //0x00007069 addq $2, %rdi - 0x48, 0x83, 0xc3, 0xfe, //0x0000706d addq $-2, %rbx - 0x48, 0x89, 0xd1, //0x00007071 movq %rdx, %rcx - 0x48, 0x8d, 0x54, 0x24, 0x20, //0x00007074 leaq $32(%rsp), %rdx - 0x48, 0x85, 0xdb, //0x00007079 testq %rbx, %rbx - 0x0f, 0x84, 0xc2, 0xfd, 0xff, 0xff, //0x0000707c je LBB32_63 - //0x00007082 LBB32_83 - 0x8a, 0x09, //0x00007082 movb (%rcx), %cl - 0x88, 0x0f, //0x00007084 movb %cl, (%rdi) - 0x48, 0x8d, 0x54, 0x24, 0x20, //0x00007086 leaq $32(%rsp), %rdx - 0xe9, 0xb4, 0xfd, 0xff, 0xff, //0x0000708b jmp LBB32_63 - //0x00007090 LBB32_84 - 0x49, 0x8b, 0x47, 0x08, //0x00007090 movq $8(%r15), %rax - 0x48, 0x0f, 0xbc, 0xcf, //0x00007094 bsfq %rdi, %rcx - 0x48, 0x2b, 0x4c, 0x24, 0x18, //0x00007098 subq $24(%rsp), %rcx - 0x48, 0x01, 0xc8, //0x0000709d addq %rcx, %rax - 0x48, 0x83, 0xc0, 0x01, //0x000070a0 addq $1, %rax - 0x49, 0x89, 0x06, //0x000070a4 movq %rax, (%r14) - 0x49, 0x8b, 0x4f, 0x08, //0x000070a7 movq $8(%r15), %rcx - 0x48, 0x39, 0xc8, //0x000070ab cmpq %rcx, %rax - 0x48, 0x0f, 0x47, 0xc1, //0x000070ae cmovaq %rcx, %rax - 0x49, 0x89, 0x06, //0x000070b2 movq %rax, (%r14) - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000070b5 movq $-1, %rax - 0x4c, 0x0f, 0x47, 0xe0, //0x000070bc cmovaq %rax, %r12 - 0xe9, 0x30, 0xf9, 0xff, 0xff, //0x000070c0 jmp LBB32_20 - //0x000070c5 LBB32_86 - 0x66, 0x0f, 0xbc, 0xc7, //0x000070c5 bsfw %di, %ax - 0x0f, 0xb7, 0xc0, //0x000070c9 movzwl %ax, %eax - 0x48, 0x29, 0xf0, //0x000070cc subq %rsi, %rax - 0xe9, 0x1e, 0xf9, 0xff, 0xff, //0x000070cf jmp LBB32_19 - //0x000070d4 LBB32_31 - 0x4d, 0x85, 0xff, //0x000070d4 testq %r15, %r15 - 0x0f, 0x85, 0x3d, 0x00, 0x00, 0x00, //0x000070d7 jne LBB32_90 - 0x4d, 0x01, 0xe9, //0x000070dd addq %r13, %r9 - 0x4d, 0x29, 0xea, //0x000070e0 subq %r13, %r10 - //0x000070e3 LBB32_33 - 0x4d, 0x85, 0xd2, //0x000070e3 testq %r10, %r10 - 0x0f, 0x8f, 0x71, 0x00, 0x00, 0x00, //0x000070e6 jg LBB32_94 - 0xe9, 0x07, 0xf9, 0xff, 0xff, //0x000070ec jmp LBB32_21 - //0x000070f1 LBB32_87 - 0x48, 0x01, 0xc2, //0x000070f1 addq %rax, %rdx - 0x48, 0x83, 0xf9, 0x10, //0x000070f4 cmpq $16, %rcx - 0x0f, 0x83, 0x53, 0xf8, 0xff, 0xff, //0x000070f8 jae LBB32_7 - 0xe9, 0xa3, 0xf8, 0xff, 0xff, //0x000070fe jmp LBB32_10 - //0x00007103 LBB32_88 - 0x48, 0x29, 0xc2, //0x00007103 subq %rax, %rdx - 0x48, 0x01, 0xf2, //0x00007106 addq %rsi, %rdx - 0xe9, 0xc0, 0xfc, 0xff, 0xff, //0x00007109 jmp LBB32_59 - //0x0000710e LBB32_89 - 0x49, 0x8b, 0x4f, 0x08, //0x0000710e movq $8(%r15), %rcx - 0x49, 0x89, 0x0e, //0x00007112 movq %rcx, (%r14) - 0xe9, 0xde, 0xf8, 0xff, 0xff, //0x00007115 jmp LBB32_21 - //0x0000711a LBB32_90 - 0x4d, 0x39, 0xea, //0x0000711a cmpq %r13, %r10 - 0x0f, 0x84, 0xd5, 0xf8, 0xff, 0xff, //0x0000711d je LBB32_21 - 0x4d, 0x01, 0xe9, //0x00007123 addq %r13, %r9 - 0x49, 0x83, 0xc1, 0x01, //0x00007126 addq $1, %r9 - 0x49, 0xf7, 0xd5, //0x0000712a notq %r13 - 0x4d, 0x01, 0xea, //0x0000712d addq %r13, %r10 - 0x4d, 0x85, 0xd2, //0x00007130 testq %r10, %r10 - 0x0f, 0x8f, 0x24, 0x00, 0x00, 0x00, //0x00007133 jg LBB32_94 - 0xe9, 0xba, 0xf8, 0xff, 0xff, //0x00007139 jmp LBB32_21 - //0x0000713e LBB32_92 - 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x0000713e movq $-2, %rcx - 0xb8, 0x02, 0x00, 0x00, 0x00, //0x00007145 movl $2, %eax - 0x49, 0x01, 0xc1, //0x0000714a addq %rax, %r9 - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x0000714d movq $-1, %rax - 0x49, 0x01, 0xca, //0x00007154 addq %rcx, %r10 - 0x0f, 0x8e, 0x9b, 0xf8, 0xff, 0xff, //0x00007157 jle LBB32_21 - //0x0000715d LBB32_94 - 0x41, 0x0f, 0xb6, 0x01, //0x0000715d movzbl (%r9), %eax - 0x3c, 0x5c, //0x00007161 cmpb $92, %al - 0x0f, 0x84, 0xd5, 0xff, 0xff, 0xff, //0x00007163 je LBB32_92 - 0x3c, 0x22, //0x00007169 cmpb $34, %al - 0x0f, 0x84, 0x24, 0x00, 0x00, 0x00, //0x0000716b je LBB32_97 - 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00007171 movq $-1, %rcx - 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00007178 movl $1, %eax - 0x49, 0x01, 0xc1, //0x0000717d addq %rax, %r9 - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00007180 movq $-1, %rax - 0x49, 0x01, 0xca, //0x00007187 addq %rcx, %r10 - 0x0f, 0x8f, 0xcd, 0xff, 0xff, 0xff, //0x0000718a jg LBB32_94 - 0xe9, 0x63, 0xf8, 0xff, 0xff, //0x00007190 jmp LBB32_21 - //0x00007195 LBB32_97 - 0x4c, 0x2b, 0x4c, 0x24, 0x18, //0x00007195 subq $24(%rsp), %r9 - 0x49, 0x83, 0xc1, 0x01, //0x0000719a addq $1, %r9 - 0x4d, 0x89, 0x0e, //0x0000719e movq %r9, (%r14) - 0xe9, 0x4f, 0xf8, 0xff, 0xff, //0x000071a1 jmp LBB32_20 - 0x90, 0x90, //0x000071a6 .p2align 2, 0x90 - // // .set L32_0_set_21, LBB32_21-LJTI32_0 - // // .set L32_0_set_23, LBB32_23-LJTI32_0 - // // .set L32_0_set_24, LBB32_24-LJTI32_0 - // // .set L32_0_set_2, LBB32_2-LJTI32_0 - // // .set L32_0_set_34, LBB32_34-LJTI32_0 - // // .set L32_0_set_58, LBB32_58-LJTI32_0 - // // .set L32_0_set_22, LBB32_22-LJTI32_0 - // // .set L32_0_set_60, LBB32_60-LJTI32_0 - //0x000071a8 LJTI32_0 - 0x50, 0xf8, 0xff, 0xff, //0x000071a8 .long L32_0_set_21 - 0x75, 0xf8, 0xff, 0xff, //0x000071ac .long L32_0_set_23 - 0x75, 0xf8, 0xff, 0xff, //0x000071b0 .long L32_0_set_23 - 0x75, 0xf8, 0xff, 0xff, //0x000071b4 .long L32_0_set_23 - 0x75, 0xf8, 0xff, 0xff, //0x000071b8 .long L32_0_set_23 - 0x75, 0xf8, 0xff, 0xff, //0x000071bc .long L32_0_set_23 - 0x75, 0xf8, 0xff, 0xff, //0x000071c0 .long L32_0_set_23 - 0x75, 0xf8, 0xff, 0xff, //0x000071c4 .long L32_0_set_23 - 0x75, 0xf8, 0xff, 0xff, //0x000071c8 .long L32_0_set_23 - 0x75, 0xf8, 0xff, 0xff, //0x000071cc .long L32_0_set_23 - 0x75, 0xf8, 0xff, 0xff, //0x000071d0 .long L32_0_set_23 - 0x75, 0xf8, 0xff, 0xff, //0x000071d4 .long L32_0_set_23 - 0x75, 0xf8, 0xff, 0xff, //0x000071d8 .long L32_0_set_23 - 0x75, 0xf8, 0xff, 0xff, //0x000071dc .long L32_0_set_23 - 0x75, 0xf8, 0xff, 0xff, //0x000071e0 .long L32_0_set_23 - 0x75, 0xf8, 0xff, 0xff, //0x000071e4 .long L32_0_set_23 - 0x75, 0xf8, 0xff, 0xff, //0x000071e8 .long L32_0_set_23 - 0x75, 0xf8, 0xff, 0xff, //0x000071ec .long L32_0_set_23 - 0x75, 0xf8, 0xff, 0xff, //0x000071f0 .long L32_0_set_23 - 0x75, 0xf8, 0xff, 0xff, //0x000071f4 .long L32_0_set_23 - 0x75, 0xf8, 0xff, 0xff, //0x000071f8 .long L32_0_set_23 - 0x75, 0xf8, 0xff, 0xff, //0x000071fc .long L32_0_set_23 - 0x75, 0xf8, 0xff, 0xff, //0x00007200 .long L32_0_set_23 - 0x75, 0xf8, 0xff, 0xff, //0x00007204 .long L32_0_set_23 - 0x75, 0xf8, 0xff, 0xff, //0x00007208 .long L32_0_set_23 - 0x75, 0xf8, 0xff, 0xff, //0x0000720c .long L32_0_set_23 - 0x75, 0xf8, 0xff, 0xff, //0x00007210 .long L32_0_set_23 - 0x75, 0xf8, 0xff, 0xff, //0x00007214 .long L32_0_set_23 - 0x75, 0xf8, 0xff, 0xff, //0x00007218 .long L32_0_set_23 - 0x75, 0xf8, 0xff, 0xff, //0x0000721c .long L32_0_set_23 - 0x75, 0xf8, 0xff, 0xff, //0x00007220 .long L32_0_set_23 - 0x75, 0xf8, 0xff, 0xff, //0x00007224 .long L32_0_set_23 - 0x75, 0xf8, 0xff, 0xff, //0x00007228 .long L32_0_set_23 - 0x75, 0xf8, 0xff, 0xff, //0x0000722c .long L32_0_set_23 - 0x84, 0xf8, 0xff, 0xff, //0x00007230 .long L32_0_set_24 - 0x75, 0xf8, 0xff, 0xff, //0x00007234 .long L32_0_set_23 - 0x75, 0xf8, 0xff, 0xff, //0x00007238 .long L32_0_set_23 - 0x75, 0xf8, 0xff, 0xff, //0x0000723c .long L32_0_set_23 - 0x75, 0xf8, 0xff, 0xff, //0x00007240 .long L32_0_set_23 - 0x75, 0xf8, 0xff, 0xff, //0x00007244 .long L32_0_set_23 - 0x75, 0xf8, 0xff, 0xff, //0x00007248 .long L32_0_set_23 - 0x75, 0xf8, 0xff, 0xff, //0x0000724c .long L32_0_set_23 - 0x75, 0xf8, 0xff, 0xff, //0x00007250 .long L32_0_set_23 - 0x75, 0xf8, 0xff, 0xff, //0x00007254 .long L32_0_set_23 - 0x75, 0xf8, 0xff, 0xff, //0x00007258 .long L32_0_set_23 - 0x1b, 0xf7, 0xff, 0xff, //0x0000725c .long L32_0_set_2 - 0x75, 0xf8, 0xff, 0xff, //0x00007260 .long L32_0_set_23 - 0x75, 0xf8, 0xff, 0xff, //0x00007264 .long L32_0_set_23 - 0x1b, 0xf7, 0xff, 0xff, //0x00007268 .long L32_0_set_2 - 0x1b, 0xf7, 0xff, 0xff, //0x0000726c .long L32_0_set_2 - 0x1b, 0xf7, 0xff, 0xff, //0x00007270 .long L32_0_set_2 - 0x1b, 0xf7, 0xff, 0xff, //0x00007274 .long L32_0_set_2 - 0x1b, 0xf7, 0xff, 0xff, //0x00007278 .long L32_0_set_2 - 0x1b, 0xf7, 0xff, 0xff, //0x0000727c .long L32_0_set_2 - 0x1b, 0xf7, 0xff, 0xff, //0x00007280 .long L32_0_set_2 - 0x1b, 0xf7, 0xff, 0xff, //0x00007284 .long L32_0_set_2 - 0x1b, 0xf7, 0xff, 0xff, //0x00007288 .long L32_0_set_2 - 0x1b, 0xf7, 0xff, 0xff, //0x0000728c .long L32_0_set_2 - 0x75, 0xf8, 0xff, 0xff, //0x00007290 .long L32_0_set_23 - 0x75, 0xf8, 0xff, 0xff, //0x00007294 .long L32_0_set_23 - 0x75, 0xf8, 0xff, 0xff, //0x00007298 .long L32_0_set_23 - 0x75, 0xf8, 0xff, 0xff, //0x0000729c .long L32_0_set_23 - 0x75, 0xf8, 0xff, 0xff, //0x000072a0 .long L32_0_set_23 - 0x75, 0xf8, 0xff, 0xff, //0x000072a4 .long L32_0_set_23 - 0x75, 0xf8, 0xff, 0xff, //0x000072a8 .long L32_0_set_23 - 0x75, 0xf8, 0xff, 0xff, //0x000072ac .long L32_0_set_23 - 0x75, 0xf8, 0xff, 0xff, //0x000072b0 .long L32_0_set_23 - 0x75, 0xf8, 0xff, 0xff, //0x000072b4 .long L32_0_set_23 - 0x75, 0xf8, 0xff, 0xff, //0x000072b8 .long L32_0_set_23 - 0x75, 0xf8, 0xff, 0xff, //0x000072bc .long L32_0_set_23 - 0x75, 0xf8, 0xff, 0xff, //0x000072c0 .long L32_0_set_23 - 0x75, 0xf8, 0xff, 0xff, //0x000072c4 .long L32_0_set_23 - 0x75, 0xf8, 0xff, 0xff, //0x000072c8 .long L32_0_set_23 - 0x75, 0xf8, 0xff, 0xff, //0x000072cc .long L32_0_set_23 - 0x75, 0xf8, 0xff, 0xff, //0x000072d0 .long L32_0_set_23 - 0x75, 0xf8, 0xff, 0xff, //0x000072d4 .long L32_0_set_23 - 0x75, 0xf8, 0xff, 0xff, //0x000072d8 .long L32_0_set_23 - 0x75, 0xf8, 0xff, 0xff, //0x000072dc .long L32_0_set_23 - 0x75, 0xf8, 0xff, 0xff, //0x000072e0 .long L32_0_set_23 - 0x75, 0xf8, 0xff, 0xff, //0x000072e4 .long L32_0_set_23 - 0x75, 0xf8, 0xff, 0xff, //0x000072e8 .long L32_0_set_23 - 0x75, 0xf8, 0xff, 0xff, //0x000072ec .long L32_0_set_23 - 0x75, 0xf8, 0xff, 0xff, //0x000072f0 .long L32_0_set_23 - 0x75, 0xf8, 0xff, 0xff, //0x000072f4 .long L32_0_set_23 - 0x75, 0xf8, 0xff, 0xff, //0x000072f8 .long L32_0_set_23 - 0x75, 0xf8, 0xff, 0xff, //0x000072fc .long L32_0_set_23 - 0x75, 0xf8, 0xff, 0xff, //0x00007300 .long L32_0_set_23 - 0x75, 0xf8, 0xff, 0xff, //0x00007304 .long L32_0_set_23 - 0x75, 0xf8, 0xff, 0xff, //0x00007308 .long L32_0_set_23 - 0x75, 0xf8, 0xff, 0xff, //0x0000730c .long L32_0_set_23 - 0x75, 0xf8, 0xff, 0xff, //0x00007310 .long L32_0_set_23 - 0x65, 0xf9, 0xff, 0xff, //0x00007314 .long L32_0_set_34 - 0x75, 0xf8, 0xff, 0xff, //0x00007318 .long L32_0_set_23 - 0x75, 0xf8, 0xff, 0xff, //0x0000731c .long L32_0_set_23 - 0x75, 0xf8, 0xff, 0xff, //0x00007320 .long L32_0_set_23 - 0x75, 0xf8, 0xff, 0xff, //0x00007324 .long L32_0_set_23 - 0x75, 0xf8, 0xff, 0xff, //0x00007328 .long L32_0_set_23 - 0x75, 0xf8, 0xff, 0xff, //0x0000732c .long L32_0_set_23 - 0x75, 0xf8, 0xff, 0xff, //0x00007330 .long L32_0_set_23 - 0x75, 0xf8, 0xff, 0xff, //0x00007334 .long L32_0_set_23 - 0x75, 0xf8, 0xff, 0xff, //0x00007338 .long L32_0_set_23 - 0x75, 0xf8, 0xff, 0xff, //0x0000733c .long L32_0_set_23 - 0x18, 0xfc, 0xff, 0xff, //0x00007340 .long L32_0_set_58 - 0x75, 0xf8, 0xff, 0xff, //0x00007344 .long L32_0_set_23 - 0x75, 0xf8, 0xff, 0xff, //0x00007348 .long L32_0_set_23 - 0x75, 0xf8, 0xff, 0xff, //0x0000734c .long L32_0_set_23 - 0x75, 0xf8, 0xff, 0xff, //0x00007350 .long L32_0_set_23 - 0x75, 0xf8, 0xff, 0xff, //0x00007354 .long L32_0_set_23 - 0x75, 0xf8, 0xff, 0xff, //0x00007358 .long L32_0_set_23 - 0x75, 0xf8, 0xff, 0xff, //0x0000735c .long L32_0_set_23 - 0x62, 0xf8, 0xff, 0xff, //0x00007360 .long L32_0_set_22 - 0x75, 0xf8, 0xff, 0xff, //0x00007364 .long L32_0_set_23 - 0x75, 0xf8, 0xff, 0xff, //0x00007368 .long L32_0_set_23 - 0x75, 0xf8, 0xff, 0xff, //0x0000736c .long L32_0_set_23 - 0x75, 0xf8, 0xff, 0xff, //0x00007370 .long L32_0_set_23 - 0x75, 0xf8, 0xff, 0xff, //0x00007374 .long L32_0_set_23 - 0x62, 0xf8, 0xff, 0xff, //0x00007378 .long L32_0_set_22 - 0x75, 0xf8, 0xff, 0xff, //0x0000737c .long L32_0_set_23 - 0x75, 0xf8, 0xff, 0xff, //0x00007380 .long L32_0_set_23 - 0x75, 0xf8, 0xff, 0xff, //0x00007384 .long L32_0_set_23 - 0x75, 0xf8, 0xff, 0xff, //0x00007388 .long L32_0_set_23 - 0x75, 0xf8, 0xff, 0xff, //0x0000738c .long L32_0_set_23 - 0x75, 0xf8, 0xff, 0xff, //0x00007390 .long L32_0_set_23 - 0x2e, 0xfc, 0xff, 0xff, //0x00007394 .long L32_0_set_60 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007398 .p2align 4, 0x00 - //0x000073a0 LCPI33_0 - 0x01, 0x00, 0x00, 0x00, //0x000073a0 .long 1 - 0x00, 0x00, 0x00, 0x00, //0x000073a4 .long 0 - 0x00, 0x00, 0x00, 0x00, //0x000073a8 .long 0 - 0x00, 0x00, 0x00, 0x00, //0x000073ac .long 0 - //0x000073b0 .p2align 4, 0x90 - //0x000073b0 _get_by_path - 0x55, //0x000073b0 pushq %rbp - 0x48, 0x89, 0xe5, //0x000073b1 movq %rsp, %rbp - 0x41, 0x57, //0x000073b4 pushq %r15 - 0x41, 0x56, //0x000073b6 pushq %r14 - 0x41, 0x55, //0x000073b8 pushq %r13 - 0x41, 0x54, //0x000073ba pushq %r12 - 0x53, //0x000073bc pushq %rbx - 0x48, 0x83, 0xec, 0x48, //0x000073bd subq $72, %rsp - 0x49, 0x89, 0xf5, //0x000073c1 movq %rsi, %r13 - 0x49, 0x89, 0xff, //0x000073c4 movq %rdi, %r15 - 0x48, 0x8b, 0x42, 0x08, //0x000073c7 movq $8(%rdx), %rax - 0x48, 0x85, 0xc0, //0x000073cb testq %rax, %rax - 0x0f, 0x84, 0x95, 0x04, 0x00, 0x00, //0x000073ce je LBB33_69 - 0x4c, 0x8b, 0x32, //0x000073d4 movq (%rdx), %r14 - 0x48, 0xc1, 0xe0, 0x04, //0x000073d7 shlq $4, %rax - 0x4c, 0x01, 0xf0, //0x000073db addq %r14, %rax - 0x48, 0x89, 0x4d, 0x98, //0x000073de movq %rcx, $-104(%rbp) - 0x48, 0x89, 0x45, 0xa0, //0x000073e2 movq %rax, $-96(%rbp) - //0x000073e6 LBB33_2 - 0x49, 0x8b, 0x3f, //0x000073e6 movq (%r15), %rdi - 0x49, 0x8b, 0x77, 0x08, //0x000073e9 movq $8(%r15), %rsi - 0x4c, 0x89, 0xea, //0x000073ed movq %r13, %rdx - 0xe8, 0xcb, 0xd1, 0xff, 0xff, //0x000073f0 callq _advance_ns - 0x49, 0x8b, 0x0e, //0x000073f5 movq (%r14), %rcx - 0x48, 0x85, 0xc9, //0x000073f8 testq %rcx, %rcx - 0x0f, 0x84, 0xcb, 0x04, 0x00, 0x00, //0x000073fb je LBB33_75 - 0x8a, 0x49, 0x17, //0x00007401 movb $23(%rcx), %cl - 0x80, 0xe1, 0x1f, //0x00007404 andb $31, %cl - 0x80, 0xf9, 0x02, //0x00007407 cmpb $2, %cl - 0x0f, 0x84, 0xd0, 0x03, 0x00, 0x00, //0x0000740a je LBB33_62 - 0x80, 0xf9, 0x18, //0x00007410 cmpb $24, %cl - 0x0f, 0x85, 0xb3, 0x04, 0x00, 0x00, //0x00007413 jne LBB33_75 - 0x3c, 0x7b, //0x00007419 cmpb $123, %al - 0x4c, 0x89, 0x75, 0xd0, //0x0000741b movq %r14, $-48(%rbp) - 0x0f, 0x85, 0x89, 0x04, 0x00, 0x00, //0x0000741f jne LBB33_73 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007425 .p2align 4, 0x90 - //0x00007430 LBB33_6 - 0x49, 0x8b, 0x3f, //0x00007430 movq (%r15), %rdi - 0x49, 0x8b, 0x77, 0x08, //0x00007433 movq $8(%r15), %rsi - 0x4c, 0x89, 0xea, //0x00007437 movq %r13, %rdx - 0xe8, 0x81, 0xd1, 0xff, 0xff, //0x0000743a callq _advance_ns - 0x3c, 0x22, //0x0000743f cmpb $34, %al - 0x0f, 0x85, 0x46, 0x04, 0x00, 0x00, //0x00007441 jne LBB33_70 - 0x49, 0x8b, 0x46, 0x08, //0x00007447 movq $8(%r14), %rax - 0x4c, 0x8b, 0x20, //0x0000744b movq (%rax), %r12 - 0x4c, 0x8b, 0x70, 0x08, //0x0000744e movq $8(%rax), %r14 - 0x48, 0xc7, 0x45, 0xb0, 0xff, 0xff, 0xff, 0xff, //0x00007452 movq $-1, $-80(%rbp) - 0x4c, 0x89, 0xeb, //0x0000745a movq %r13, %rbx - 0x4d, 0x8b, 0x6d, 0x00, //0x0000745d movq (%r13), %r13 - 0x4c, 0x89, 0xff, //0x00007461 movq %r15, %rdi - 0x4c, 0x89, 0xee, //0x00007464 movq %r13, %rsi - 0x48, 0x8d, 0x55, 0xb0, //0x00007467 leaq $-80(%rbp), %rdx - 0xe8, 0xd0, 0x2b, 0x00, 0x00, //0x0000746b callq _advance_string_default - 0x48, 0x85, 0xc0, //0x00007470 testq %rax, %rax - 0x0f, 0x88, 0x64, 0x04, 0x00, 0x00, //0x00007473 js LBB33_76 - 0x49, 0x89, 0xd9, //0x00007479 movq %rbx, %r9 - 0x48, 0x89, 0x03, //0x0000747c movq %rax, (%rbx) - 0x48, 0x8b, 0x4d, 0xb0, //0x0000747f movq $-80(%rbp), %rcx - 0x48, 0x83, 0xf9, 0xff, //0x00007483 cmpq $-1, %rcx - 0x0f, 0x84, 0x09, 0x00, 0x00, 0x00, //0x00007487 je LBB33_10 - 0x48, 0x39, 0xc1, //0x0000748d cmpq %rax, %rcx - 0x0f, 0x8e, 0xff, 0x01, 0x00, 0x00, //0x00007490 jle LBB33_38 - //0x00007496 LBB33_10 - 0x4d, 0x89, 0xe2, //0x00007496 movq %r12, %r10 - 0x4c, 0x89, 0xe9, //0x00007499 movq %r13, %rcx - 0x48, 0xf7, 0xd1, //0x0000749c notq %rcx - 0x48, 0x01, 0xc8, //0x0000749f addq %rcx, %rax - 0x41, 0xbc, 0x01, 0x00, 0x00, 0x00, //0x000074a2 movl $1, %r12d - 0x48, 0x89, 0xc1, //0x000074a8 movq %rax, %rcx - 0x4c, 0x09, 0xf1, //0x000074ab orq %r14, %rcx - 0x0f, 0x84, 0x90, 0x01, 0x00, 0x00, //0x000074ae je LBB33_34 - 0x4c, 0x39, 0xf0, //0x000074b4 cmpq %r14, %rax - 0x0f, 0x85, 0x63, 0x00, 0x00, 0x00, //0x000074b7 jne LBB33_15 - 0x4d, 0x03, 0x2f, //0x000074bd addq (%r15), %r13 - 0x31, 0xc9, //0x000074c0 xorl %ecx, %ecx - 0x4c, 0x89, 0xeb, //0x000074c2 movq %r13, %rbx - 0x4c, 0x89, 0xd7, //0x000074c5 movq %r10, %rdi - 0x4c, 0x89, 0xf0, //0x000074c8 movq %r14, %rax - 0x4c, 0x89, 0xd2, //0x000074cb movq %r10, %rdx - 0x4c, 0x89, 0xee, //0x000074ce movq %r13, %rsi - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000074d1 .p2align 4, 0x90 - //0x000074e0 LBB33_13 - 0x48, 0x83, 0xf8, 0x20, //0x000074e0 cmpq $32, %rax - 0x0f, 0x82, 0x3e, 0x00, 0x00, 0x00, //0x000074e4 jb LBB33_16 - 0xc5, 0xfe, 0x6f, 0x06, //0x000074ea vmovdqu (%rsi), %ymm0 - 0xc5, 0xfd, 0x74, 0x02, //0x000074ee vpcmpeqb (%rdx), %ymm0, %ymm0 - 0xc5, 0x7d, 0xd7, 0xc0, //0x000074f2 vpmovmskb %ymm0, %r8d - 0x48, 0x83, 0xc6, 0x20, //0x000074f6 addq $32, %rsi - 0x48, 0x83, 0xc2, 0x20, //0x000074fa addq $32, %rdx - 0x48, 0x83, 0xc0, 0xe0, //0x000074fe addq $-32, %rax - 0x48, 0x83, 0xc7, 0x20, //0x00007502 addq $32, %rdi - 0x48, 0x83, 0xc3, 0x20, //0x00007506 addq $32, %rbx - 0x48, 0x83, 0xc1, 0x20, //0x0000750a addq $32, %rcx - 0x41, 0x83, 0xf8, 0xff, //0x0000750e cmpl $-1, %r8d - 0x0f, 0x84, 0xc8, 0xff, 0xff, 0xff, //0x00007512 je LBB33_13 - 0xe9, 0x80, 0x00, 0x00, 0x00, //0x00007518 jmp LBB33_22 - 0x90, 0x90, 0x90, //0x0000751d .p2align 4, 0x90 - //0x00007520 LBB33_15 - 0x45, 0x31, 0xe4, //0x00007520 xorl %r12d, %r12d - 0xe9, 0x1c, 0x01, 0x00, 0x00, //0x00007523 jmp LBB33_34 - //0x00007528 LBB33_16 - 0x81, 0xe3, 0xff, 0x0f, 0x00, 0x00, //0x00007528 andl $4095, %ebx - 0x81, 0xfb, 0xe0, 0x0f, 0x00, 0x00, //0x0000752e cmpl $4064, %ebx - 0x0f, 0x87, 0x36, 0x00, 0x00, 0x00, //0x00007534 ja LBB33_20 - 0x81, 0xe7, 0xff, 0x0f, 0x00, 0x00, //0x0000753a andl $4095, %edi - 0x81, 0xff, 0xe1, 0x0f, 0x00, 0x00, //0x00007540 cmpl $4065, %edi - 0x0f, 0x83, 0x24, 0x00, 0x00, 0x00, //0x00007546 jae LBB33_20 - 0xc5, 0xfe, 0x6f, 0x06, //0x0000754c vmovdqu (%rsi), %ymm0 - 0xc5, 0xfd, 0x74, 0x02, //0x00007550 vpcmpeqb (%rdx), %ymm0, %ymm0 - 0xc5, 0xfd, 0xd7, 0xc8, //0x00007554 vpmovmskb %ymm0, %ecx - 0x83, 0xf9, 0xff, //0x00007558 cmpl $-1, %ecx - 0x0f, 0x84, 0x9f, 0x00, 0x00, 0x00, //0x0000755b je LBB33_32 - 0xf7, 0xd1, //0x00007561 notl %ecx - 0x0f, 0xbc, 0xc9, //0x00007563 bsfl %ecx, %ecx - 0xe9, 0x8a, 0x00, 0x00, 0x00, //0x00007566 jmp LBB33_27 - 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000756b .p2align 4, 0x90 - //0x00007570 LBB33_20 - 0x48, 0x83, 0xf8, 0x10, //0x00007570 cmpq $16, %rax - 0x0f, 0x82, 0x2a, 0x00, 0x00, 0x00, //0x00007574 jb LBB33_23 - 0xc4, 0xc1, 0x7a, 0x6f, 0x44, 0x0d, 0x00, //0x0000757a vmovdqu (%r13,%rcx), %xmm0 - 0xc4, 0xc1, 0x79, 0x74, 0x04, 0x0a, //0x00007581 vpcmpeqb (%r10,%rcx), %xmm0, %xmm0 - 0xc5, 0xf9, 0xd7, 0xd0, //0x00007587 vpmovmskb %xmm0, %edx - 0x48, 0x83, 0xc0, 0xf0, //0x0000758b addq $-16, %rax - 0x48, 0x83, 0xc1, 0x10, //0x0000758f addq $16, %rcx - 0x66, 0x83, 0xfa, 0xff, //0x00007593 cmpw $-1, %dx - 0x0f, 0x84, 0xd3, 0xff, 0xff, 0xff, //0x00007597 je LBB33_20 - //0x0000759d LBB33_22 - 0x31, 0xc0, //0x0000759d xorl %eax, %eax - 0xe9, 0x9c, 0x00, 0x00, 0x00, //0x0000759f jmp LBB33_33 - //0x000075a4 LBB33_23 - 0x44, 0x89, 0xea, //0x000075a4 movl %r13d, %edx - 0x01, 0xca, //0x000075a7 addl %ecx, %edx - 0x81, 0xe2, 0xff, 0x0f, 0x00, 0x00, //0x000075a9 andl $4095, %edx - 0x81, 0xfa, 0xf0, 0x0f, 0x00, 0x00, //0x000075af cmpl $4080, %edx - 0x0f, 0x87, 0x4c, 0x00, 0x00, 0x00, //0x000075b5 ja LBB33_29 - 0x41, 0x8d, 0x14, 0x0a, //0x000075bb leal (%r10,%rcx), %edx - 0x81, 0xe2, 0xff, 0x0f, 0x00, 0x00, //0x000075bf andl $4095, %edx - 0x81, 0xfa, 0xf1, 0x0f, 0x00, 0x00, //0x000075c5 cmpl $4081, %edx - 0x0f, 0x83, 0x36, 0x00, 0x00, 0x00, //0x000075cb jae LBB33_29 - 0xc4, 0xc1, 0x7a, 0x6f, 0x44, 0x0d, 0x00, //0x000075d1 vmovdqu (%r13,%rcx), %xmm0 - 0xc4, 0xc1, 0x79, 0x74, 0x04, 0x0a, //0x000075d8 vpcmpeqb (%r10,%rcx), %xmm0, %xmm0 - 0xc5, 0xf9, 0xd7, 0xc8, //0x000075de vpmovmskb %xmm0, %ecx - 0x66, 0x83, 0xf9, 0xff, //0x000075e2 cmpw $-1, %cx - 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x000075e6 je LBB33_32 - 0xf7, 0xd1, //0x000075ec notl %ecx - 0x66, 0x0f, 0xbc, 0xc9, //0x000075ee bsfw %cx, %cx - 0x0f, 0xb7, 0xc9, //0x000075f2 movzwl %cx, %ecx - //0x000075f5 LBB33_27 - 0x48, 0x39, 0xc8, //0x000075f5 cmpq %rcx, %rax - 0x0f, 0x96, 0xc0, //0x000075f8 setbe %al - 0xe9, 0x40, 0x00, 0x00, 0x00, //0x000075fb jmp LBB33_33 - //0x00007600 LBB33_32 - 0xb0, 0x01, //0x00007600 movb $1, %al - 0xe9, 0x39, 0x00, 0x00, 0x00, //0x00007602 jmp LBB33_33 - //0x00007607 LBB33_29 - 0xb0, 0x01, //0x00007607 movb $1, %al - 0x49, 0x39, 0xce, //0x00007609 cmpq %rcx, %r14 - 0x0f, 0x84, 0x2e, 0x00, 0x00, 0x00, //0x0000760c je LBB33_33 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007612 .p2align 4, 0x90 - //0x00007620 LBB33_30 - 0x41, 0x0f, 0xb6, 0x44, 0x0d, 0x00, //0x00007620 movzbl (%r13,%rcx), %eax - 0x41, 0x3a, 0x04, 0x0a, //0x00007626 cmpb (%r10,%rcx), %al - 0x0f, 0x94, 0xc0, //0x0000762a sete %al - 0x0f, 0x85, 0x0d, 0x00, 0x00, 0x00, //0x0000762d jne LBB33_33 - 0x48, 0x83, 0xc1, 0x01, //0x00007633 addq $1, %rcx - 0x49, 0x39, 0xce, //0x00007637 cmpq %rcx, %r14 - 0x0f, 0x85, 0xe0, 0xff, 0xff, 0xff, //0x0000763a jne LBB33_30 - //0x00007640 .p2align 4, 0x90 - //0x00007640 LBB33_33 - 0x44, 0x0f, 0xb6, 0xe0, //0x00007640 movzbl %al, %r12d - //0x00007644 LBB33_34 - 0x4d, 0x89, 0xcd, //0x00007644 movq %r9, %r13 - 0x4c, 0x8b, 0x75, 0xd0, //0x00007647 movq $-48(%rbp), %r14 - //0x0000764b LBB33_35 - 0x49, 0x8b, 0x3f, //0x0000764b movq (%r15), %rdi - 0x49, 0x8b, 0x77, 0x08, //0x0000764e movq $8(%r15), %rsi - 0x4c, 0x89, 0xea, //0x00007652 movq %r13, %rdx - 0xc5, 0xf8, 0x77, //0x00007655 vzeroupper - 0xe8, 0x63, 0xcf, 0xff, 0xff, //0x00007658 callq _advance_ns - 0x3c, 0x3a, //0x0000765d cmpb $58, %al - 0x0f, 0x85, 0x49, 0x02, 0x00, 0x00, //0x0000765f jne LBB33_73 - 0x4d, 0x85, 0xe4, //0x00007665 testq %r12, %r12 - 0x0f, 0x85, 0xe6, 0x01, 0x00, 0x00, //0x00007668 jne LBB33_68 - 0x4c, 0x89, 0xff, //0x0000766e movq %r15, %rdi - 0x4c, 0x89, 0xee, //0x00007671 movq %r13, %rsi - 0xe8, 0xf7, 0xf1, 0xff, 0xff, //0x00007674 callq _skip_one_fast - 0x49, 0x8b, 0x3f, //0x00007679 movq (%r15), %rdi - 0x49, 0x8b, 0x77, 0x08, //0x0000767c movq $8(%r15), %rsi - 0x4c, 0x89, 0xea, //0x00007680 movq %r13, %rdx - 0xe8, 0x38, 0xcf, 0xff, 0xff, //0x00007683 callq _advance_ns - 0x3c, 0x2c, //0x00007688 cmpb $44, %al - 0x0f, 0x84, 0xa0, 0xfd, 0xff, 0xff, //0x0000768a je LBB33_6 - 0xe9, 0xf8, 0x01, 0x00, 0x00, //0x00007690 jmp LBB33_70 - //0x00007695 LBB33_38 - 0x48, 0xc7, 0x45, 0xc0, 0x00, 0x00, 0x00, 0x00, //0x00007695 movq $0, $-64(%rbp) - 0x49, 0x8b, 0x17, //0x0000769d movq (%r15), %rdx - 0x4a, 0x8d, 0x0c, 0x2a, //0x000076a0 leaq (%rdx,%r13), %rcx - 0x48, 0x89, 0x4d, 0xc8, //0x000076a4 movq %rcx, $-56(%rbp) - 0x48, 0x8d, 0x34, 0x02, //0x000076a8 leaq (%rdx,%rax), %rsi - 0x48, 0x83, 0xc6, 0xff, //0x000076ac addq $-1, %rsi - 0x48, 0x83, 0xc0, 0xff, //0x000076b0 addq $-1, %rax - 0x4b, 0x8d, 0x3c, 0x34, //0x000076b4 leaq (%r12,%r14), %rdi - 0x49, 0x39, 0xc5, //0x000076b8 cmpq %rax, %r13 - 0x48, 0x8d, 0x55, 0xc0, //0x000076bb leaq $-64(%rbp), %rdx - 0x0f, 0x8d, 0xd8, 0x00, 0x00, 0x00, //0x000076bf jge LBB33_55 - 0x4d, 0x85, 0xf6, //0x000076c5 testq %r14, %r14 - 0x4d, 0x89, 0xcd, //0x000076c8 movq %r9, %r13 - 0x0f, 0x8e, 0xcf, 0x00, 0x00, 0x00, //0x000076cb jle LBB33_56 - 0x4c, 0x8b, 0x75, 0xd0, //0x000076d1 movq $-48(%rbp), %r14 - 0x48, 0x89, 0x75, 0xb8, //0x000076d5 movq %rsi, $-72(%rbp) - 0x48, 0x89, 0x7d, 0xa8, //0x000076d9 movq %rdi, $-88(%rbp) - //0x000076dd LBB33_41 - 0x8a, 0x01, //0x000076dd movb (%rcx), %al - 0x3c, 0x5c, //0x000076df cmpb $92, %al - 0x0f, 0x85, 0x70, 0x00, 0x00, 0x00, //0x000076e1 jne LBB33_48 - 0x4c, 0x89, 0xe3, //0x000076e7 movq %r12, %rbx - 0x48, 0x8d, 0x7d, 0xc8, //0x000076ea leaq $-56(%rbp), %rdi - 0xe8, 0x6d, 0x2c, 0x00, 0x00, //0x000076ee callq _unescape - 0x49, 0x89, 0xc4, //0x000076f3 movq %rax, %r12 - 0x48, 0x85, 0xc0, //0x000076f6 testq %rax, %rax - 0x0f, 0x88, 0xc5, 0x00, 0x00, 0x00, //0x000076f9 js LBB33_59 - 0x49, 0x8d, 0x04, 0x2c, //0x000076ff leaq (%r12,%rbp), %rax - 0x48, 0x83, 0xc0, 0xc0, //0x00007703 addq $-64, %rax - 0x49, 0x89, 0xdc, //0x00007707 movq %rbx, %r12 - 0x48, 0x8b, 0x7d, 0xa8, //0x0000770a movq $-88(%rbp), %rdi - 0x48, 0x8d, 0x55, 0xc0, //0x0000770e leaq $-64(%rbp), %rdx - 0x48, 0x39, 0xfb, //0x00007712 cmpq %rdi, %rbx - 0x0f, 0x83, 0x57, 0x00, 0x00, 0x00, //0x00007715 jae LBB33_50 - 0x48, 0x39, 0xd0, //0x0000771b cmpq %rdx, %rax - 0x48, 0x8b, 0x75, 0xb8, //0x0000771e movq $-72(%rbp), %rsi - 0x48, 0x89, 0xd1, //0x00007722 movq %rdx, %rcx - 0x0f, 0x86, 0x4e, 0x00, 0x00, 0x00, //0x00007725 jbe LBB33_51 - //0x0000772b LBB33_45 - 0x41, 0x0f, 0xb6, 0x1c, 0x24, //0x0000772b movzbl (%r12), %ebx - 0x3a, 0x19, //0x00007730 cmpb (%rcx), %bl - 0x0f, 0x85, 0x41, 0x00, 0x00, 0x00, //0x00007732 jne LBB33_51 - 0x49, 0x83, 0xc4, 0x01, //0x00007738 addq $1, %r12 - 0x48, 0x83, 0xc1, 0x01, //0x0000773c addq $1, %rcx - 0x49, 0x39, 0xfc, //0x00007740 cmpq %rdi, %r12 - 0x0f, 0x83, 0x30, 0x00, 0x00, 0x00, //0x00007743 jae LBB33_51 - 0x48, 0x39, 0xc1, //0x00007749 cmpq %rax, %rcx - 0x0f, 0x82, 0xd9, 0xff, 0xff, 0xff, //0x0000774c jb LBB33_45 - 0xe9, 0x22, 0x00, 0x00, 0x00, //0x00007752 jmp LBB33_51 - //0x00007757 LBB33_48 - 0x41, 0x3a, 0x04, 0x24, //0x00007757 cmpb (%r12), %al - 0x0f, 0x85, 0x5b, 0x00, 0x00, 0x00, //0x0000775b jne LBB33_61 - 0x48, 0x83, 0xc1, 0x01, //0x00007761 addq $1, %rcx - 0x48, 0x89, 0x4d, 0xc8, //0x00007765 movq %rcx, $-56(%rbp) - 0x49, 0x83, 0xc4, 0x01, //0x00007769 addq $1, %r12 - 0xe9, 0x14, 0x00, 0x00, 0x00, //0x0000776d jmp LBB33_53 - //0x00007772 LBB33_50 - 0x48, 0x89, 0xd1, //0x00007772 movq %rdx, %rcx - 0x48, 0x8b, 0x75, 0xb8, //0x00007775 movq $-72(%rbp), %rsi - //0x00007779 LBB33_51 - 0x48, 0x39, 0xc1, //0x00007779 cmpq %rax, %rcx - 0x0f, 0x85, 0x3a, 0x00, 0x00, 0x00, //0x0000777c jne LBB33_61 - 0x48, 0x8b, 0x4d, 0xc8, //0x00007782 movq $-56(%rbp), %rcx - //0x00007786 LBB33_53 - 0x48, 0x39, 0xf1, //0x00007786 cmpq %rsi, %rcx - 0x0f, 0x83, 0x15, 0x00, 0x00, 0x00, //0x00007789 jae LBB33_57 - 0x49, 0x39, 0xfc, //0x0000778f cmpq %rdi, %r12 - 0x0f, 0x82, 0x45, 0xff, 0xff, 0xff, //0x00007792 jb LBB33_41 - 0xe9, 0x07, 0x00, 0x00, 0x00, //0x00007798 jmp LBB33_57 - //0x0000779d LBB33_55 - 0x4d, 0x89, 0xcd, //0x0000779d movq %r9, %r13 - //0x000077a0 LBB33_56 - 0x4c, 0x8b, 0x75, 0xd0, //0x000077a0 movq $-48(%rbp), %r14 - //0x000077a4 LBB33_57 - 0x48, 0x31, 0xf1, //0x000077a4 xorq %rsi, %rcx - 0x49, 0x31, 0xfc, //0x000077a7 xorq %rdi, %r12 - 0x4c, 0x89, 0xe0, //0x000077aa movq %r12, %rax - 0x45, 0x31, 0xe4, //0x000077ad xorl %r12d, %r12d - 0x48, 0x09, 0xc8, //0x000077b0 orq %rcx, %rax - 0x41, 0x0f, 0x94, 0xc4, //0x000077b3 sete %r12b - 0xe9, 0x13, 0x00, 0x00, 0x00, //0x000077b7 jmp LBB33_58 - //0x000077bc LBB33_61 - 0x45, 0x31, 0xe4, //0x000077bc xorl %r12d, %r12d - 0xe9, 0x0b, 0x00, 0x00, 0x00, //0x000077bf jmp LBB33_58 - //0x000077c4 LBB33_59 - 0x48, 0x8b, 0x45, 0xc8, //0x000077c4 movq $-56(%rbp), %rax - 0x49, 0x2b, 0x07, //0x000077c8 subq (%r15), %rax - 0x49, 0x89, 0x45, 0x00, //0x000077cb movq %rax, (%r13) - //0x000077cf LBB33_58 - 0x4d, 0x85, 0xe4, //0x000077cf testq %r12, %r12 - 0x0f, 0x89, 0x73, 0xfe, 0xff, 0xff, //0x000077d2 jns LBB33_35 - 0xe9, 0xdd, 0x00, 0x00, 0x00, //0x000077d8 jmp LBB33_74 - 0x90, 0x90, 0x90, //0x000077dd .p2align 4, 0x90 - //0x000077e0 LBB33_62 - 0x3c, 0x5b, //0x000077e0 cmpb $91, %al - 0x0f, 0x85, 0xc6, 0x00, 0x00, 0x00, //0x000077e2 jne LBB33_73 - 0x49, 0x8b, 0x46, 0x08, //0x000077e8 movq $8(%r14), %rax - 0x48, 0x8b, 0x18, //0x000077ec movq (%rax), %rbx - 0x48, 0x85, 0xdb, //0x000077ef testq %rbx, %rbx - 0x0f, 0x88, 0xd4, 0x00, 0x00, 0x00, //0x000077f2 js LBB33_75 - 0x49, 0x8b, 0x3f, //0x000077f8 movq (%r15), %rdi - 0x49, 0x8b, 0x77, 0x08, //0x000077fb movq $8(%r15), %rsi - 0x4c, 0x89, 0xea, //0x000077ff movq %r13, %rdx - 0xe8, 0xb9, 0xcd, 0xff, 0xff, //0x00007802 callq _advance_ns - 0x3c, 0x5d, //0x00007807 cmpb $93, %al - 0x0f, 0x84, 0x86, 0x00, 0x00, 0x00, //0x00007809 je LBB33_71 - 0x49, 0x83, 0x45, 0x00, 0xff, //0x0000780f addq $-1, (%r13) - 0x48, 0x83, 0xc3, 0x01, //0x00007814 addq $1, %rbx - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007818 .p2align 4, 0x90 - //0x00007820 LBB33_66 - 0x48, 0x83, 0xc3, 0xff, //0x00007820 addq $-1, %rbx - 0x48, 0x85, 0xdb, //0x00007824 testq %rbx, %rbx - 0x0f, 0x8e, 0x27, 0x00, 0x00, 0x00, //0x00007827 jle LBB33_68 - 0x4c, 0x89, 0xff, //0x0000782d movq %r15, %rdi - 0x4c, 0x89, 0xee, //0x00007830 movq %r13, %rsi - 0xe8, 0x38, 0xf0, 0xff, 0xff, //0x00007833 callq _skip_one_fast - 0x49, 0x8b, 0x3f, //0x00007838 movq (%r15), %rdi - 0x49, 0x8b, 0x77, 0x08, //0x0000783b movq $8(%r15), %rsi - 0x4c, 0x89, 0xea, //0x0000783f movq %r13, %rdx - 0xe8, 0x79, 0xcd, 0xff, 0xff, //0x00007842 callq _advance_ns - 0x3c, 0x2c, //0x00007847 cmpb $44, %al - 0x0f, 0x84, 0xd1, 0xff, 0xff, 0xff, //0x00007849 je LBB33_66 - 0xe9, 0x52, 0x00, 0x00, 0x00, //0x0000784f jmp LBB33_72 - //0x00007854 LBB33_68 - 0x49, 0x83, 0xc6, 0x10, //0x00007854 addq $16, %r14 - 0x48, 0x8b, 0x45, 0xa0, //0x00007858 movq $-96(%rbp), %rax - 0x49, 0x39, 0xc6, //0x0000785c cmpq %rax, %r14 - 0x48, 0x8b, 0x4d, 0x98, //0x0000785f movq $-104(%rbp), %rcx - 0x0f, 0x85, 0x7d, 0xfb, 0xff, 0xff, //0x00007863 jne LBB33_2 - //0x00007869 LBB33_69 - 0xc5, 0xf9, 0x6f, 0x05, 0x2f, 0xfb, 0xff, 0xff, //0x00007869 vmovdqa $-1233(%rip), %xmm0 /* LCPI33_0+0(%rip) */ - 0xc5, 0xfa, 0x7f, 0x01, //0x00007871 vmovdqu %xmm0, (%rcx) - 0x48, 0x89, 0xcf, //0x00007875 movq %rcx, %rdi - 0x4c, 0x89, 0xfe, //0x00007878 movq %r15, %rsi - 0x4c, 0x89, 0xea, //0x0000787b movq %r13, %rdx - 0x31, 0xc9, //0x0000787e xorl %ecx, %ecx - 0xe8, 0xeb, 0xdd, 0xff, 0xff, //0x00007880 callq _fsm_exec - 0x49, 0x89, 0xc4, //0x00007885 movq %rax, %r12 - 0xe9, 0x2d, 0x00, 0x00, 0x00, //0x00007888 jmp LBB33_74 - //0x0000788d LBB33_70 - 0x3c, 0x7d, //0x0000788d cmpb $125, %al - 0x0f, 0x85, 0x19, 0x00, 0x00, 0x00, //0x0000788f jne LBB33_73 - //0x00007895 LBB33_71 - 0x49, 0x83, 0x45, 0x00, 0xff, //0x00007895 addq $-1, (%r13) - 0x49, 0xc7, 0xc4, 0xdf, 0xff, 0xff, 0xff, //0x0000789a movq $-33, %r12 - 0xe9, 0x14, 0x00, 0x00, 0x00, //0x000078a1 jmp LBB33_74 - //0x000078a6 LBB33_72 - 0x3c, 0x5d, //0x000078a6 cmpb $93, %al - 0x0f, 0x84, 0xe7, 0xff, 0xff, 0xff, //0x000078a8 je LBB33_71 - //0x000078ae LBB33_73 - 0x49, 0x83, 0x45, 0x00, 0xff, //0x000078ae addq $-1, (%r13) - 0x49, 0xc7, 0xc4, 0xfe, 0xff, 0xff, 0xff, //0x000078b3 movq $-2, %r12 - //0x000078ba LBB33_74 - 0x4c, 0x89, 0xe0, //0x000078ba movq %r12, %rax - 0x48, 0x83, 0xc4, 0x48, //0x000078bd addq $72, %rsp - 0x5b, //0x000078c1 popq %rbx - 0x41, 0x5c, //0x000078c2 popq %r12 - 0x41, 0x5d, //0x000078c4 popq %r13 - 0x41, 0x5e, //0x000078c6 popq %r14 - 0x41, 0x5f, //0x000078c8 popq %r15 - 0x5d, //0x000078ca popq %rbp - 0xc3, //0x000078cb retq - //0x000078cc LBB33_75 - 0x49, 0x83, 0x45, 0x00, 0xff, //0x000078cc addq $-1, (%r13) - 0x49, 0xc7, 0xc4, 0xde, 0xff, 0xff, 0xff, //0x000078d1 movq $-34, %r12 - 0xe9, 0xdd, 0xff, 0xff, 0xff, //0x000078d8 jmp LBB33_74 - //0x000078dd LBB33_76 - 0x49, 0x8b, 0x47, 0x08, //0x000078dd movq $8(%r15), %rax - 0x48, 0x89, 0x03, //0x000078e1 movq %rax, (%rbx) - 0x49, 0xc7, 0xc4, 0xff, 0xff, 0xff, 0xff, //0x000078e4 movq $-1, %r12 - 0xe9, 0xca, 0xff, 0xff, 0xff, //0x000078eb jmp LBB33_74 - //0x000078f0 .p2align 4, 0x90 - //0x000078f0 _validate_utf8 - 0x55, //0x000078f0 pushq %rbp - 0x48, 0x89, 0xe5, //0x000078f1 movq %rsp, %rbp - 0x41, 0x57, //0x000078f4 pushq %r15 - 0x41, 0x56, //0x000078f6 pushq %r14 - 0x41, 0x54, //0x000078f8 pushq %r12 - 0x53, //0x000078fa pushq %rbx - 0x50, //0x000078fb pushq %rax - 0x4c, 0x8b, 0x17, //0x000078fc movq (%rdi), %r10 - 0x4c, 0x8b, 0x5f, 0x08, //0x000078ff movq $8(%rdi), %r11 - 0x48, 0x8b, 0x0e, //0x00007903 movq (%rsi), %rcx - 0x4c, 0x01, 0xd1, //0x00007906 addq %r10, %rcx - 0x4f, 0x8d, 0x04, 0x1a, //0x00007909 leaq (%r10,%r11), %r8 - 0x49, 0x83, 0xc0, 0xfd, //0x0000790d addq $-3, %r8 - 0xe9, 0x0d, 0x00, 0x00, 0x00, //0x00007911 jmp LBB34_1 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007916 .p2align 4, 0x90 - //0x00007920 LBB34_19 - 0x48, 0x01, 0xd9, //0x00007920 addq %rbx, %rcx - //0x00007923 LBB34_1 - 0x4c, 0x39, 0xc1, //0x00007923 cmpq %r8, %rcx - 0x0f, 0x83, 0xe1, 0x00, 0x00, 0x00, //0x00007926 jae LBB34_2 - 0xbb, 0x01, 0x00, 0x00, 0x00, //0x0000792c movl $1, %ebx - 0x80, 0x39, 0x00, //0x00007931 cmpb $0, (%rcx) - 0x0f, 0x89, 0xe6, 0xff, 0xff, 0xff, //0x00007934 jns LBB34_19 - 0x8b, 0x01, //0x0000793a movl (%rcx), %eax - 0x89, 0xc7, //0x0000793c movl %eax, %edi - 0x81, 0xe7, 0xf0, 0xc0, 0xc0, 0x00, //0x0000793e andl $12632304, %edi - 0x81, 0xff, 0xe0, 0x80, 0x80, 0x00, //0x00007944 cmpl $8421600, %edi - 0x0f, 0x85, 0x30, 0x00, 0x00, 0x00, //0x0000794a jne LBB34_10 - 0x89, 0xc7, //0x00007950 movl %eax, %edi - 0x81, 0xe7, 0x0f, 0x20, 0x00, 0x00, //0x00007952 andl $8207, %edi - 0x81, 0xff, 0x0d, 0x20, 0x00, 0x00, //0x00007958 cmpl $8205, %edi - 0x0f, 0x84, 0x1c, 0x00, 0x00, 0x00, //0x0000795e je LBB34_10 - 0xbb, 0x03, 0x00, 0x00, 0x00, //0x00007964 movl $3, %ebx - 0x85, 0xff, //0x00007969 testl %edi, %edi - 0x0f, 0x85, 0xaf, 0xff, 0xff, 0xff, //0x0000796b jne LBB34_19 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007971 .p2align 4, 0x90 - //0x00007980 LBB34_10 - 0x89, 0xc7, //0x00007980 movl %eax, %edi - 0x81, 0xe7, 0xe0, 0xc0, 0x00, 0x00, //0x00007982 andl $49376, %edi - 0x81, 0xff, 0xc0, 0x80, 0x00, 0x00, //0x00007988 cmpl $32960, %edi - 0x0f, 0x85, 0x10, 0x00, 0x00, 0x00, //0x0000798e jne LBB34_12 - 0x89, 0xc7, //0x00007994 movl %eax, %edi - 0xbb, 0x02, 0x00, 0x00, 0x00, //0x00007996 movl $2, %ebx - 0x83, 0xe7, 0x1e, //0x0000799b andl $30, %edi - 0x0f, 0x85, 0x7c, 0xff, 0xff, 0xff, //0x0000799e jne LBB34_19 - //0x000079a4 LBB34_12 - 0x89, 0xc7, //0x000079a4 movl %eax, %edi - 0x81, 0xe7, 0xf8, 0xc0, 0xc0, 0xc0, //0x000079a6 andl $-1061109512, %edi - 0x81, 0xff, 0xf0, 0x80, 0x80, 0x80, //0x000079ac cmpl $-2139062032, %edi - 0x0f, 0x85, 0x26, 0x00, 0x00, 0x00, //0x000079b2 jne LBB34_16 - 0x89, 0xc7, //0x000079b8 movl %eax, %edi - 0x81, 0xe7, 0x07, 0x30, 0x00, 0x00, //0x000079ba andl $12295, %edi - 0x0f, 0x84, 0x18, 0x00, 0x00, 0x00, //0x000079c0 je LBB34_16 - 0xbb, 0x04, 0x00, 0x00, 0x00, //0x000079c6 movl $4, %ebx - 0xa8, 0x04, //0x000079cb testb $4, %al - 0x0f, 0x84, 0x4d, 0xff, 0xff, 0xff, //0x000079cd je LBB34_19 - 0x25, 0x03, 0x30, 0x00, 0x00, //0x000079d3 andl $12291, %eax - 0x0f, 0x84, 0x42, 0xff, 0xff, 0xff, //0x000079d8 je LBB34_19 - //0x000079de LBB34_16 - 0x48, 0x89, 0xcf, //0x000079de movq %rcx, %rdi - 0x4c, 0x29, 0xd7, //0x000079e1 subq %r10, %rdi - 0x48, 0x8b, 0x1a, //0x000079e4 movq (%rdx), %rbx - 0x48, 0x81, 0xfb, 0x00, 0x10, 0x00, 0x00, //0x000079e7 cmpq $4096, %rbx - 0x0f, 0x83, 0x97, 0x01, 0x00, 0x00, //0x000079ee jae LBB34_17 - 0x48, 0x63, 0xc7, //0x000079f4 movslq %edi, %rax - 0x48, 0x8d, 0x7b, 0x01, //0x000079f7 leaq $1(%rbx), %rdi - 0x48, 0x89, 0x3a, //0x000079fb movq %rdi, (%rdx) - 0x48, 0x89, 0x44, 0xda, 0x08, //0x000079fe movq %rax, $8(%rdx,%rbx,8) - 0xbb, 0x01, 0x00, 0x00, 0x00, //0x00007a03 movl $1, %ebx - 0xe9, 0x13, 0xff, 0xff, 0xff, //0x00007a08 jmp LBB34_19 - //0x00007a0d LBB34_2 - 0x4d, 0x01, 0xd3, //0x00007a0d addq %r10, %r11 - 0x4c, 0x39, 0xd9, //0x00007a10 cmpq %r11, %rcx - 0x0f, 0x83, 0x4e, 0x01, 0x00, 0x00, //0x00007a13 jae LBB34_36 - 0x4c, 0x8d, 0x45, 0xdc, //0x00007a19 leaq $-36(%rbp), %r8 - 0x4c, 0x8d, 0x4d, 0xda, //0x00007a1d leaq $-38(%rbp), %r9 - 0xe9, 0x17, 0x00, 0x00, 0x00, //0x00007a21 jmp LBB34_4 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007a26 .p2align 4, 0x90 - //0x00007a30 LBB34_5 - 0x48, 0x83, 0xc1, 0x01, //0x00007a30 addq $1, %rcx - 0x4c, 0x39, 0xd9, //0x00007a34 cmpq %r11, %rcx - 0x0f, 0x83, 0x2a, 0x01, 0x00, 0x00, //0x00007a37 jae LBB34_36 - //0x00007a3d LBB34_4 - 0x80, 0x39, 0x00, //0x00007a3d cmpb $0, (%rcx) - 0x0f, 0x89, 0xea, 0xff, 0xff, 0xff, //0x00007a40 jns LBB34_5 - 0xc6, 0x45, 0xdc, 0x00, //0x00007a46 movb $0, $-36(%rbp) - 0xc6, 0x45, 0xda, 0x00, //0x00007a4a movb $0, $-38(%rbp) - 0x4c, 0x89, 0xdb, //0x00007a4e movq %r11, %rbx - 0x48, 0x29, 0xcb, //0x00007a51 subq %rcx, %rbx - 0x48, 0x83, 0xfb, 0x02, //0x00007a54 cmpq $2, %rbx - 0x0f, 0x82, 0x35, 0x00, 0x00, 0x00, //0x00007a58 jb LBB34_21 - 0x44, 0x0f, 0xb6, 0x21, //0x00007a5e movzbl (%rcx), %r12d - 0x44, 0x0f, 0xb6, 0x71, 0x01, //0x00007a62 movzbl $1(%rcx), %r14d - 0x44, 0x88, 0x65, 0xdc, //0x00007a67 movb %r12b, $-36(%rbp) - 0x4c, 0x8d, 0x79, 0x02, //0x00007a6b leaq $2(%rcx), %r15 - 0x48, 0x83, 0xc3, 0xfe, //0x00007a6f addq $-2, %rbx - 0x4c, 0x89, 0xcf, //0x00007a73 movq %r9, %rdi - 0x48, 0x85, 0xdb, //0x00007a76 testq %rbx, %rbx - 0x0f, 0x84, 0x29, 0x00, 0x00, 0x00, //0x00007a79 je LBB34_24 - //0x00007a7f LBB34_25 - 0x41, 0x0f, 0xb6, 0x07, //0x00007a7f movzbl (%r15), %eax - 0x88, 0x07, //0x00007a83 movb %al, (%rdi) - 0x44, 0x0f, 0xb6, 0x65, 0xdc, //0x00007a85 movzbl $-36(%rbp), %r12d - 0x0f, 0xb6, 0x7d, 0xda, //0x00007a8a movzbl $-38(%rbp), %edi - 0xe9, 0x17, 0x00, 0x00, 0x00, //0x00007a8e jmp LBB34_26 - //0x00007a93 LBB34_21 - 0x45, 0x31, 0xe4, //0x00007a93 xorl %r12d, %r12d - 0x45, 0x31, 0xf6, //0x00007a96 xorl %r14d, %r14d - 0x4c, 0x89, 0xc7, //0x00007a99 movq %r8, %rdi - 0x49, 0x89, 0xcf, //0x00007a9c movq %rcx, %r15 - 0x48, 0x85, 0xdb, //0x00007a9f testq %rbx, %rbx - 0x0f, 0x85, 0xd7, 0xff, 0xff, 0xff, //0x00007aa2 jne LBB34_25 - //0x00007aa8 LBB34_24 - 0x31, 0xff, //0x00007aa8 xorl %edi, %edi - //0x00007aaa LBB34_26 - 0x40, 0x0f, 0xb6, 0xc7, //0x00007aaa movzbl %dil, %eax - 0xc1, 0xe0, 0x10, //0x00007aae shll $16, %eax - 0x41, 0x0f, 0xb6, 0xde, //0x00007ab1 movzbl %r14b, %ebx - 0xc1, 0xe3, 0x08, //0x00007ab5 shll $8, %ebx - 0x09, 0xc3, //0x00007ab8 orl %eax, %ebx - 0x41, 0x0f, 0xb6, 0xfc, //0x00007aba movzbl %r12b, %edi - 0x09, 0xdf, //0x00007abe orl %ebx, %edi - 0x89, 0xf8, //0x00007ac0 movl %edi, %eax - 0x25, 0xf0, 0xc0, 0xc0, 0x00, //0x00007ac2 andl $12632304, %eax - 0x3d, 0xe0, 0x80, 0x80, 0x00, //0x00007ac7 cmpl $8421600, %eax - 0x0f, 0x85, 0x2e, 0x00, 0x00, 0x00, //0x00007acc jne LBB34_29 - 0x89, 0xf8, //0x00007ad2 movl %edi, %eax - 0x25, 0x0f, 0x20, 0x00, 0x00, //0x00007ad4 andl $8207, %eax - 0x3d, 0x0d, 0x20, 0x00, 0x00, //0x00007ad9 cmpl $8205, %eax - 0x0f, 0x84, 0x1c, 0x00, 0x00, 0x00, //0x00007ade je LBB34_29 - 0xbb, 0x03, 0x00, 0x00, 0x00, //0x00007ae4 movl $3, %ebx - 0x85, 0xc0, //0x00007ae9 testl %eax, %eax - 0x0f, 0x85, 0x30, 0x00, 0x00, 0x00, //0x00007aeb jne LBB34_34 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007af1 .p2align 4, 0x90 - //0x00007b00 LBB34_29 - 0x41, 0xf6, 0xc4, 0x1e, //0x00007b00 testb $30, %r12b - 0x0f, 0x84, 0x28, 0x00, 0x00, 0x00, //0x00007b04 je LBB34_31 - 0x81, 0xe7, 0xe0, 0xc0, 0x00, 0x00, //0x00007b0a andl $49376, %edi - 0xbb, 0x02, 0x00, 0x00, 0x00, //0x00007b10 movl $2, %ebx - 0x81, 0xff, 0xc0, 0x80, 0x00, 0x00, //0x00007b15 cmpl $32960, %edi - 0x0f, 0x85, 0x11, 0x00, 0x00, 0x00, //0x00007b1b jne LBB34_31 - //0x00007b21 LBB34_34 - 0x48, 0x01, 0xd9, //0x00007b21 addq %rbx, %rcx - 0x4c, 0x39, 0xd9, //0x00007b24 cmpq %r11, %rcx - 0x0f, 0x82, 0x10, 0xff, 0xff, 0xff, //0x00007b27 jb LBB34_4 - 0xe9, 0x35, 0x00, 0x00, 0x00, //0x00007b2d jmp LBB34_36 - //0x00007b32 LBB34_31 - 0x48, 0x89, 0xc8, //0x00007b32 movq %rcx, %rax - 0x4c, 0x29, 0xd0, //0x00007b35 subq %r10, %rax - 0x48, 0x8b, 0x3a, //0x00007b38 movq (%rdx), %rdi - 0x48, 0x81, 0xff, 0x00, 0x10, 0x00, 0x00, //0x00007b3b cmpq $4096, %rdi - 0x0f, 0x83, 0x34, 0x00, 0x00, 0x00, //0x00007b42 jae LBB34_32 - 0x48, 0x98, //0x00007b48 cltq - 0x48, 0x8d, 0x5f, 0x01, //0x00007b4a leaq $1(%rdi), %rbx - 0x48, 0x89, 0x1a, //0x00007b4e movq %rbx, (%rdx) - 0x48, 0x89, 0x44, 0xfa, 0x08, //0x00007b51 movq %rax, $8(%rdx,%rdi,8) - 0xbb, 0x01, 0x00, 0x00, 0x00, //0x00007b56 movl $1, %ebx - 0x48, 0x01, 0xd9, //0x00007b5b addq %rbx, %rcx - 0x4c, 0x39, 0xd9, //0x00007b5e cmpq %r11, %rcx - 0x0f, 0x82, 0xd6, 0xfe, 0xff, 0xff, //0x00007b61 jb LBB34_4 - //0x00007b67 LBB34_36 - 0x4c, 0x29, 0xd1, //0x00007b67 subq %r10, %rcx - 0x48, 0x89, 0x0e, //0x00007b6a movq %rcx, (%rsi) - 0x31, 0xc0, //0x00007b6d xorl %eax, %eax - //0x00007b6f LBB34_37 - 0x48, 0x83, 0xc4, 0x08, //0x00007b6f addq $8, %rsp - 0x5b, //0x00007b73 popq %rbx - 0x41, 0x5c, //0x00007b74 popq %r12 - 0x41, 0x5e, //0x00007b76 popq %r14 - 0x41, 0x5f, //0x00007b78 popq %r15 - 0x5d, //0x00007b7a popq %rbp - 0xc3, //0x00007b7b retq - //0x00007b7c LBB34_32 - 0x48, 0x89, 0x06, //0x00007b7c movq %rax, (%rsi) - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00007b7f movq $-1, %rax - 0xe9, 0xe4, 0xff, 0xff, 0xff, //0x00007b86 jmp LBB34_37 - //0x00007b8b LBB34_17 - 0x48, 0x89, 0x3e, //0x00007b8b movq %rdi, (%rsi) - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00007b8e movq $-1, %rax - 0xe9, 0xd5, 0xff, 0xff, 0xff, //0x00007b95 jmp LBB34_37 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007b9a .p2align 5, 0x00 - //0x00007ba0 LCPI35_0 - 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, //0x00007ba0 QUAD $0x0f0f0f0f0f0f0f0f; QUAD $0x0f0f0f0f0f0f0f0f // .space 16, '\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f' - 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, //0x00007bb0 QUAD $0x0f0f0f0f0f0f0f0f; QUAD $0x0f0f0f0f0f0f0f0f // .space 16, '\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f' - //0x00007bc0 LCPI35_1 - 0x02, //0x00007bc0 .byte 2 - 0x02, //0x00007bc1 .byte 2 - 0x02, //0x00007bc2 .byte 2 - 0x02, //0x00007bc3 .byte 2 - 0x02, //0x00007bc4 .byte 2 - 0x02, //0x00007bc5 .byte 2 - 0x02, //0x00007bc6 .byte 2 - 0x02, //0x00007bc7 .byte 2 - 0x80, //0x00007bc8 .byte 128 - 0x80, //0x00007bc9 .byte 128 - 0x80, //0x00007bca .byte 128 - 0x80, //0x00007bcb .byte 128 - 0x21, //0x00007bcc .byte 33 - 0x01, //0x00007bcd .byte 1 - 0x15, //0x00007bce .byte 21 - 0x49, //0x00007bcf .byte 73 - 0x02, //0x00007bd0 .byte 2 - 0x02, //0x00007bd1 .byte 2 - 0x02, //0x00007bd2 .byte 2 - 0x02, //0x00007bd3 .byte 2 - 0x02, //0x00007bd4 .byte 2 - 0x02, //0x00007bd5 .byte 2 - 0x02, //0x00007bd6 .byte 2 - 0x02, //0x00007bd7 .byte 2 - 0x80, //0x00007bd8 .byte 128 - 0x80, //0x00007bd9 .byte 128 - 0x80, //0x00007bda .byte 128 - 0x80, //0x00007bdb .byte 128 - 0x21, //0x00007bdc .byte 33 - 0x01, //0x00007bdd .byte 1 - 0x15, //0x00007bde .byte 21 - 0x49, //0x00007bdf .byte 73 - //0x00007be0 LCPI35_2 - 0xe7, //0x00007be0 .byte 231 - 0xa3, //0x00007be1 .byte 163 - 0x83, //0x00007be2 .byte 131 - 0x83, //0x00007be3 .byte 131 - 0x8b, //0x00007be4 .byte 139 - 0xcb, //0x00007be5 .byte 203 - 0xcb, //0x00007be6 .byte 203 - 0xcb, //0x00007be7 .byte 203 - 0xcb, //0x00007be8 .byte 203 - 0xcb, //0x00007be9 .byte 203 - 0xcb, //0x00007bea .byte 203 - 0xcb, //0x00007beb .byte 203 - 0xcb, //0x00007bec .byte 203 - 0xdb, //0x00007bed .byte 219 - 0xcb, //0x00007bee .byte 203 - 0xcb, //0x00007bef .byte 203 - 0xe7, //0x00007bf0 .byte 231 - 0xa3, //0x00007bf1 .byte 163 - 0x83, //0x00007bf2 .byte 131 - 0x83, //0x00007bf3 .byte 131 - 0x8b, //0x00007bf4 .byte 139 - 0xcb, //0x00007bf5 .byte 203 - 0xcb, //0x00007bf6 .byte 203 - 0xcb, //0x00007bf7 .byte 203 - 0xcb, //0x00007bf8 .byte 203 - 0xcb, //0x00007bf9 .byte 203 - 0xcb, //0x00007bfa .byte 203 - 0xcb, //0x00007bfb .byte 203 - 0xcb, //0x00007bfc .byte 203 - 0xdb, //0x00007bfd .byte 219 - 0xcb, //0x00007bfe .byte 203 - 0xcb, //0x00007bff .byte 203 - //0x00007c00 LCPI35_3 - 0x01, //0x00007c00 .byte 1 - 0x01, //0x00007c01 .byte 1 - 0x01, //0x00007c02 .byte 1 - 0x01, //0x00007c03 .byte 1 - 0x01, //0x00007c04 .byte 1 - 0x01, //0x00007c05 .byte 1 - 0x01, //0x00007c06 .byte 1 - 0x01, //0x00007c07 .byte 1 - 0xe6, //0x00007c08 .byte 230 - 0xae, //0x00007c09 .byte 174 - 0xba, //0x00007c0a .byte 186 - 0xba, //0x00007c0b .byte 186 - 0x01, //0x00007c0c .byte 1 - 0x01, //0x00007c0d .byte 1 - 0x01, //0x00007c0e .byte 1 - 0x01, //0x00007c0f .byte 1 - 0x01, //0x00007c10 .byte 1 - 0x01, //0x00007c11 .byte 1 - 0x01, //0x00007c12 .byte 1 - 0x01, //0x00007c13 .byte 1 - 0x01, //0x00007c14 .byte 1 - 0x01, //0x00007c15 .byte 1 - 0x01, //0x00007c16 .byte 1 - 0x01, //0x00007c17 .byte 1 - 0xe6, //0x00007c18 .byte 230 - 0xae, //0x00007c19 .byte 174 - 0xba, //0x00007c1a .byte 186 - 0xba, //0x00007c1b .byte 186 - 0x01, //0x00007c1c .byte 1 - 0x01, //0x00007c1d .byte 1 - 0x01, //0x00007c1e .byte 1 - 0x01, //0x00007c1f .byte 1 - //0x00007c20 LCPI35_4 - 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, //0x00007c20 QUAD $0xdfdfdfdfdfdfdfdf; QUAD $0xdfdfdfdfdfdfdfdf // .space 16, '\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf' - 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, //0x00007c30 QUAD $0xdfdfdfdfdfdfdfdf; QUAD $0xdfdfdfdfdfdfdfdf // .space 16, '\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf' - //0x00007c40 LCPI35_5 - 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, //0x00007c40 QUAD $0xefefefefefefefef; QUAD $0xefefefefefefefef // .space 16, '\xef\xef\xef\xef\xef\xef\xef\xef\xef\xef\xef\xef\xef\xef\xef\xef' - 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, //0x00007c50 QUAD $0xefefefefefefefef; QUAD $0xefefefefefefefef // .space 16, '\xef\xef\xef\xef\xef\xef\xef\xef\xef\xef\xef\xef\xef\xef\xef\xef' - //0x00007c60 LCPI35_7 - 0xff, //0x00007c60 .byte 255 - 0xff, //0x00007c61 .byte 255 - 0xff, //0x00007c62 .byte 255 - 0xff, //0x00007c63 .byte 255 - 0xff, //0x00007c64 .byte 255 - 0xff, //0x00007c65 .byte 255 - 0xff, //0x00007c66 .byte 255 - 0xff, //0x00007c67 .byte 255 - 0xff, //0x00007c68 .byte 255 - 0xff, //0x00007c69 .byte 255 - 0xff, //0x00007c6a .byte 255 - 0xff, //0x00007c6b .byte 255 - 0xff, //0x00007c6c .byte 255 - 0xff, //0x00007c6d .byte 255 - 0xff, //0x00007c6e .byte 255 - 0xff, //0x00007c6f .byte 255 - 0xff, //0x00007c70 .byte 255 - 0xff, //0x00007c71 .byte 255 - 0xff, //0x00007c72 .byte 255 - 0xff, //0x00007c73 .byte 255 - 0xff, //0x00007c74 .byte 255 - 0xff, //0x00007c75 .byte 255 - 0xff, //0x00007c76 .byte 255 - 0xff, //0x00007c77 .byte 255 - 0xff, //0x00007c78 .byte 255 - 0xff, //0x00007c79 .byte 255 - 0xff, //0x00007c7a .byte 255 - 0xff, //0x00007c7b .byte 255 - 0xff, //0x00007c7c .byte 255 - 0xef, //0x00007c7d .byte 239 - 0xdf, //0x00007c7e .byte 223 - 0xbf, //0x00007c7f .byte 191 - //0x00007c80 LCPI35_8 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007c80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007c90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - //0x00007ca0 .p2align 3, 0x00 - //0x00007ca0 LCPI35_6 - 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, //0x00007ca0 .quad -9187201950435737472 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007ca8 .p2align 4, 0x90 - //0x00007cb0 _validate_utf8_fast - 0x55, //0x00007cb0 pushq %rbp - 0x48, 0x89, 0xe5, //0x00007cb1 movq %rsp, %rbp - 0x53, //0x00007cb4 pushq %rbx - 0x48, 0x81, 0xec, 0xa0, 0x00, 0x00, 0x00, //0x00007cb5 subq $160, %rsp - 0x4c, 0x8b, 0x57, 0x08, //0x00007cbc movq $8(%rdi), %r10 - 0x4d, 0x85, 0xd2, //0x00007cc0 testq %r10, %r10 - 0x0f, 0x84, 0xb4, 0x07, 0x00, 0x00, //0x00007cc3 je LBB35_28 - 0x4c, 0x8b, 0x0f, //0x00007cc9 movq (%rdi), %r9 - 0x4d, 0x01, 0xca, //0x00007ccc addq %r9, %r10 - 0x49, 0x8d, 0x72, 0x80, //0x00007ccf leaq $-128(%r10), %rsi - 0xc5, 0xf1, 0xef, 0xc9, //0x00007cd3 vpxor %xmm1, %xmm1, %xmm1 - 0xc5, 0xe9, 0xef, 0xd2, //0x00007cd7 vpxor %xmm2, %xmm2, %xmm2 - 0xc5, 0xf9, 0xef, 0xc0, //0x00007cdb vpxor %xmm0, %xmm0, %xmm0 - 0x4c, 0x89, 0xc8, //0x00007cdf movq %r9, %rax - 0x4c, 0x39, 0xce, //0x00007ce2 cmpq %r9, %rsi - 0x0f, 0x86, 0x6a, 0x03, 0x00, 0x00, //0x00007ce5 jbe LBB35_12 - 0xc5, 0xfd, 0x6f, 0x25, 0xad, 0xfe, 0xff, 0xff, //0x00007ceb vmovdqa $-339(%rip), %ymm4 /* LCPI35_0+0(%rip) */ - 0xc5, 0xfd, 0x6f, 0x35, 0xe5, 0xfe, 0xff, 0xff, //0x00007cf3 vmovdqa $-283(%rip), %ymm6 /* LCPI35_2+0(%rip) */ - 0xc5, 0xfd, 0x6f, 0x3d, 0xfd, 0xfe, 0xff, 0xff, //0x00007cfb vmovdqa $-259(%rip), %ymm7 /* LCPI35_3+0(%rip) */ - 0xc5, 0x7d, 0x6f, 0x05, 0x15, 0xff, 0xff, 0xff, //0x00007d03 vmovdqa $-235(%rip), %ymm8 /* LCPI35_4+0(%rip) */ - 0xc5, 0x7d, 0x6f, 0x0d, 0x2d, 0xff, 0xff, 0xff, //0x00007d0b vmovdqa $-211(%rip), %ymm9 /* LCPI35_5+0(%rip) */ - 0xc5, 0x7d, 0x6f, 0x15, 0x45, 0xff, 0xff, 0xff, //0x00007d13 vmovdqa $-187(%rip), %ymm10 /* LCPI35_7+0(%rip) */ - 0x4c, 0x89, 0xc8, //0x00007d1b movq %r9, %rax - 0xc5, 0xf9, 0xef, 0xc0, //0x00007d1e vpxor %xmm0, %xmm0, %xmm0 - 0xc5, 0xe9, 0xef, 0xd2, //0x00007d22 vpxor %xmm2, %xmm2, %xmm2 - 0xc5, 0xf1, 0xef, 0xc9, //0x00007d26 vpxor %xmm1, %xmm1, %xmm1 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007d2a .p2align 4, 0x90 - //0x00007d30 LBB35_3 - 0xc5, 0x7e, 0x6f, 0x38, //0x00007d30 vmovdqu (%rax), %ymm15 - 0xc5, 0x7e, 0x6f, 0x68, 0x20, //0x00007d34 vmovdqu $32(%rax), %ymm13 - 0xc5, 0x7e, 0x6f, 0x60, 0x40, //0x00007d39 vmovdqu $64(%rax), %ymm12 - 0xc5, 0x7e, 0x6f, 0x58, 0x60, //0x00007d3e vmovdqu $96(%rax), %ymm11 - 0xc4, 0xc1, 0x15, 0xeb, 0xdf, //0x00007d43 vpor %ymm15, %ymm13, %ymm3 - 0xc4, 0x41, 0x25, 0xeb, 0xf4, //0x00007d48 vpor %ymm12, %ymm11, %ymm14 - 0xc5, 0x8d, 0xeb, 0xeb, //0x00007d4d vpor %ymm3, %ymm14, %ymm5 - 0xc5, 0xfd, 0xd7, 0xcd, //0x00007d51 vpmovmskb %ymm5, %ecx - 0x85, 0xc9, //0x00007d55 testl %ecx, %ecx - 0x0f, 0x85, 0x16, 0x00, 0x00, 0x00, //0x00007d57 jne LBB35_6 - 0xc5, 0xf5, 0xeb, 0xc0, //0x00007d5d vpor %ymm0, %ymm1, %ymm0 - //0x00007d61 LBB35_5 - 0x48, 0x83, 0xe8, 0x80, //0x00007d61 subq $-128, %rax - 0x48, 0x39, 0xf0, //0x00007d65 cmpq %rsi, %rax - 0x0f, 0x82, 0xc2, 0xff, 0xff, 0xff, //0x00007d68 jb LBB35_3 - 0xe9, 0xe2, 0x02, 0x00, 0x00, //0x00007d6e jmp LBB35_12 - //0x00007d73 LBB35_6 - 0xc5, 0xfd, 0xd7, 0xcb, //0x00007d73 vpmovmskb %ymm3, %ecx - 0x85, 0xc9, //0x00007d77 testl %ecx, %ecx - 0x0f, 0x85, 0xf0, 0x00, 0x00, 0x00, //0x00007d79 jne LBB35_9 - 0xc5, 0xf5, 0xeb, 0xc0, //0x00007d7f vpor %ymm0, %ymm1, %ymm0 - 0xc4, 0xc3, 0x6d, 0x46, 0xcc, 0x21, //0x00007d83 vperm2i128 $33, %ymm12, %ymm2, %ymm1 - 0xc4, 0xe3, 0x1d, 0x0f, 0xd1, 0x0f, //0x00007d89 vpalignr $15, %ymm1, %ymm12, %ymm2 - 0xc5, 0xe5, 0x71, 0xd2, 0x04, //0x00007d8f vpsrlw $4, %ymm2, %ymm3 - 0xc5, 0xe5, 0xdb, 0xdc, //0x00007d94 vpand %ymm4, %ymm3, %ymm3 - 0xc5, 0x7d, 0x6f, 0x35, 0x20, 0xfe, 0xff, 0xff, //0x00007d98 vmovdqa $-480(%rip), %ymm14 /* LCPI35_1+0(%rip) */ - 0xc4, 0xe2, 0x0d, 0x00, 0xdb, //0x00007da0 vpshufb %ymm3, %ymm14, %ymm3 - 0xc5, 0xed, 0xdb, 0xd4, //0x00007da5 vpand %ymm4, %ymm2, %ymm2 - 0xc4, 0xe2, 0x4d, 0x00, 0xd2, //0x00007da9 vpshufb %ymm2, %ymm6, %ymm2 - 0xc4, 0xc1, 0x55, 0x71, 0xd4, 0x04, //0x00007dae vpsrlw $4, %ymm12, %ymm5 - 0xc5, 0xd5, 0xdb, 0xec, //0x00007db4 vpand %ymm4, %ymm5, %ymm5 - 0xc4, 0xe2, 0x45, 0x00, 0xed, //0x00007db8 vpshufb %ymm5, %ymm7, %ymm5 - 0xc5, 0xed, 0xdb, 0xd5, //0x00007dbd vpand %ymm5, %ymm2, %ymm2 - 0xc5, 0xe5, 0xdb, 0xd2, //0x00007dc1 vpand %ymm2, %ymm3, %ymm2 - 0xc4, 0xe3, 0x1d, 0x0f, 0xd9, 0x0e, //0x00007dc5 vpalignr $14, %ymm1, %ymm12, %ymm3 - 0xc4, 0xe3, 0x1d, 0x0f, 0xc9, 0x0d, //0x00007dcb vpalignr $13, %ymm1, %ymm12, %ymm1 - 0xc4, 0xc1, 0x65, 0xd8, 0xd8, //0x00007dd1 vpsubusb %ymm8, %ymm3, %ymm3 - 0xc4, 0xc1, 0x75, 0xd8, 0xc9, //0x00007dd6 vpsubusb %ymm9, %ymm1, %ymm1 - 0xc5, 0xf5, 0xeb, 0xcb, //0x00007ddb vpor %ymm3, %ymm1, %ymm1 - 0xc4, 0x41, 0x11, 0xef, 0xed, //0x00007ddf vpxor %xmm13, %xmm13, %xmm13 - 0xc5, 0x95, 0x74, 0xc9, //0x00007de4 vpcmpeqb %ymm1, %ymm13, %ymm1 - 0xc4, 0xe2, 0x7d, 0x59, 0x1d, 0xaf, 0xfe, 0xff, 0xff, //0x00007de8 vpbroadcastq $-337(%rip), %ymm3 /* LCPI35_6+0(%rip) */ - 0xc5, 0xf5, 0xdf, 0xcb, //0x00007df1 vpandn %ymm3, %ymm1, %ymm1 - 0xc5, 0xf5, 0xef, 0xca, //0x00007df5 vpxor %ymm2, %ymm1, %ymm1 - 0xc5, 0xfd, 0xeb, 0xc1, //0x00007df9 vpor %ymm1, %ymm0, %ymm0 - 0xc4, 0xc3, 0x1d, 0x46, 0xcb, 0x21, //0x00007dfd vperm2i128 $33, %ymm11, %ymm12, %ymm1 - 0xc4, 0xe3, 0x25, 0x0f, 0xd1, 0x0f, //0x00007e03 vpalignr $15, %ymm1, %ymm11, %ymm2 - 0xc5, 0xd5, 0x71, 0xd2, 0x04, //0x00007e09 vpsrlw $4, %ymm2, %ymm5 - 0xc5, 0xd5, 0xdb, 0xec, //0x00007e0e vpand %ymm4, %ymm5, %ymm5 - 0xc4, 0xe2, 0x0d, 0x00, 0xed, //0x00007e12 vpshufb %ymm5, %ymm14, %ymm5 - 0xc5, 0xed, 0xdb, 0xd4, //0x00007e17 vpand %ymm4, %ymm2, %ymm2 - 0xc4, 0xe2, 0x4d, 0x00, 0xd2, //0x00007e1b vpshufb %ymm2, %ymm6, %ymm2 - 0xc4, 0xc1, 0x1d, 0x71, 0xd3, 0x04, //0x00007e20 vpsrlw $4, %ymm11, %ymm12 - 0xc5, 0x1d, 0xdb, 0xe4, //0x00007e26 vpand %ymm4, %ymm12, %ymm12 - 0xc4, 0x42, 0x45, 0x00, 0xe4, //0x00007e2a vpshufb %ymm12, %ymm7, %ymm12 - 0xc5, 0x9d, 0xdb, 0xd2, //0x00007e2f vpand %ymm2, %ymm12, %ymm2 - 0xc5, 0xd5, 0xdb, 0xd2, //0x00007e33 vpand %ymm2, %ymm5, %ymm2 - 0xc4, 0xe3, 0x25, 0x0f, 0xe9, 0x0e, //0x00007e37 vpalignr $14, %ymm1, %ymm11, %ymm5 - 0xc4, 0xe3, 0x25, 0x0f, 0xc9, 0x0d, //0x00007e3d vpalignr $13, %ymm1, %ymm11, %ymm1 - 0xc4, 0xc1, 0x55, 0xd8, 0xe8, //0x00007e43 vpsubusb %ymm8, %ymm5, %ymm5 - 0xc4, 0xc1, 0x75, 0xd8, 0xc9, //0x00007e48 vpsubusb %ymm9, %ymm1, %ymm1 - 0xc5, 0xf5, 0xeb, 0xcd, //0x00007e4d vpor %ymm5, %ymm1, %ymm1 - 0xc5, 0x95, 0x74, 0xc9, //0x00007e51 vpcmpeqb %ymm1, %ymm13, %ymm1 - 0xc5, 0xf5, 0xdf, 0xcb, //0x00007e55 vpandn %ymm3, %ymm1, %ymm1 - 0xc5, 0xf5, 0xef, 0xca, //0x00007e59 vpxor %ymm2, %ymm1, %ymm1 - //0x00007e5d LBB35_8 - 0xc5, 0xfd, 0xeb, 0xc1, //0x00007e5d vpor %ymm1, %ymm0, %ymm0 - 0xc4, 0xc1, 0x25, 0xd8, 0xca, //0x00007e61 vpsubusb %ymm10, %ymm11, %ymm1 - 0xc5, 0x7d, 0x7f, 0xda, //0x00007e66 vmovdqa %ymm11, %ymm2 - 0xe9, 0xf2, 0xfe, 0xff, 0xff, //0x00007e6a jmp LBB35_5 - //0x00007e6f LBB35_9 - 0xc4, 0xc3, 0x6d, 0x46, 0xcf, 0x21, //0x00007e6f vperm2i128 $33, %ymm15, %ymm2, %ymm1 - 0xc4, 0xe3, 0x05, 0x0f, 0xd1, 0x0f, //0x00007e75 vpalignr $15, %ymm1, %ymm15, %ymm2 - 0xc5, 0xe5, 0x71, 0xd2, 0x04, //0x00007e7b vpsrlw $4, %ymm2, %ymm3 - 0xc5, 0xe5, 0xdb, 0xdc, //0x00007e80 vpand %ymm4, %ymm3, %ymm3 - 0xc5, 0xfd, 0x6f, 0x2d, 0x34, 0xfd, 0xff, 0xff, //0x00007e84 vmovdqa $-716(%rip), %ymm5 /* LCPI35_1+0(%rip) */ - 0xc4, 0xe2, 0x55, 0x00, 0xdb, //0x00007e8c vpshufb %ymm3, %ymm5, %ymm3 - 0xc5, 0xed, 0xdb, 0xd4, //0x00007e91 vpand %ymm4, %ymm2, %ymm2 - 0xc4, 0xe2, 0x4d, 0x00, 0xd2, //0x00007e95 vpshufb %ymm2, %ymm6, %ymm2 - 0xc4, 0xc1, 0x55, 0x71, 0xd7, 0x04, //0x00007e9a vpsrlw $4, %ymm15, %ymm5 - 0xc5, 0xd5, 0xdb, 0xec, //0x00007ea0 vpand %ymm4, %ymm5, %ymm5 - 0xc4, 0xe2, 0x45, 0x00, 0xed, //0x00007ea4 vpshufb %ymm5, %ymm7, %ymm5 - 0xc5, 0xed, 0xdb, 0xd5, //0x00007ea9 vpand %ymm5, %ymm2, %ymm2 - 0xc5, 0xe5, 0xdb, 0xd2, //0x00007ead vpand %ymm2, %ymm3, %ymm2 - 0xc4, 0xe3, 0x05, 0x0f, 0xd9, 0x0e, //0x00007eb1 vpalignr $14, %ymm1, %ymm15, %ymm3 - 0xc4, 0xe3, 0x05, 0x0f, 0xc9, 0x0d, //0x00007eb7 vpalignr $13, %ymm1, %ymm15, %ymm1 - 0xc4, 0xc1, 0x65, 0xd8, 0xd8, //0x00007ebd vpsubusb %ymm8, %ymm3, %ymm3 - 0xc4, 0xc1, 0x75, 0xd8, 0xc9, //0x00007ec2 vpsubusb %ymm9, %ymm1, %ymm1 - 0xc5, 0xf5, 0xeb, 0xcb, //0x00007ec7 vpor %ymm3, %ymm1, %ymm1 - 0xc5, 0xe1, 0xef, 0xdb, //0x00007ecb vpxor %xmm3, %xmm3, %xmm3 - 0xc5, 0xf5, 0x74, 0xdb, //0x00007ecf vpcmpeqb %ymm3, %ymm1, %ymm3 - 0xc4, 0xe2, 0x7d, 0x59, 0x0d, 0xc4, 0xfd, 0xff, 0xff, //0x00007ed3 vpbroadcastq $-572(%rip), %ymm1 /* LCPI35_6+0(%rip) */ - 0xc5, 0xe5, 0xdf, 0xd9, //0x00007edc vpandn %ymm1, %ymm3, %ymm3 - 0xc5, 0xe5, 0xef, 0xd2, //0x00007ee0 vpxor %ymm2, %ymm3, %ymm2 - 0xc5, 0xfe, 0x7f, 0x54, 0x24, 0x60, //0x00007ee4 vmovdqu %ymm2, $96(%rsp) - 0xc4, 0xc3, 0x05, 0x46, 0xdd, 0x21, //0x00007eea vperm2i128 $33, %ymm13, %ymm15, %ymm3 - 0xc4, 0xe3, 0x15, 0x0f, 0xeb, 0x0f, //0x00007ef0 vpalignr $15, %ymm3, %ymm13, %ymm5 - 0xc5, 0x85, 0x71, 0xd5, 0x04, //0x00007ef6 vpsrlw $4, %ymm5, %ymm15 - 0xc5, 0x05, 0xdb, 0xfc, //0x00007efb vpand %ymm4, %ymm15, %ymm15 - 0xc5, 0xfd, 0x6f, 0x15, 0xb9, 0xfc, 0xff, 0xff, //0x00007eff vmovdqa $-839(%rip), %ymm2 /* LCPI35_1+0(%rip) */ - 0xc4, 0x42, 0x6d, 0x00, 0xff, //0x00007f07 vpshufb %ymm15, %ymm2, %ymm15 - 0xc5, 0xd5, 0xdb, 0xec, //0x00007f0c vpand %ymm4, %ymm5, %ymm5 - 0xc4, 0xe2, 0x4d, 0x00, 0xed, //0x00007f10 vpshufb %ymm5, %ymm6, %ymm5 - 0xc4, 0xc1, 0x6d, 0x71, 0xd5, 0x04, //0x00007f15 vpsrlw $4, %ymm13, %ymm2 - 0xc5, 0xed, 0xdb, 0xd4, //0x00007f1b vpand %ymm4, %ymm2, %ymm2 - 0xc4, 0xe2, 0x45, 0x00, 0xd2, //0x00007f1f vpshufb %ymm2, %ymm7, %ymm2 - 0xc5, 0xd5, 0xdb, 0xd2, //0x00007f24 vpand %ymm2, %ymm5, %ymm2 - 0xc5, 0x85, 0xdb, 0xd2, //0x00007f28 vpand %ymm2, %ymm15, %ymm2 - 0xc4, 0xe3, 0x15, 0x0f, 0xeb, 0x0e, //0x00007f2c vpalignr $14, %ymm3, %ymm13, %ymm5 - 0xc4, 0xe3, 0x15, 0x0f, 0xdb, 0x0d, //0x00007f32 vpalignr $13, %ymm3, %ymm13, %ymm3 - 0xc4, 0xc1, 0x55, 0xd8, 0xe8, //0x00007f38 vpsubusb %ymm8, %ymm5, %ymm5 - 0xc4, 0xc1, 0x65, 0xd8, 0xd9, //0x00007f3d vpsubusb %ymm9, %ymm3, %ymm3 - 0xc5, 0xe5, 0xeb, 0xdd, //0x00007f42 vpor %ymm5, %ymm3, %ymm3 - 0xc5, 0xe5, 0x74, 0x1d, 0x32, 0xfd, 0xff, 0xff, //0x00007f46 vpcmpeqb $-718(%rip), %ymm3, %ymm3 /* LCPI35_8+0(%rip) */ - 0xc5, 0xe5, 0xdf, 0xd9, //0x00007f4e vpandn %ymm1, %ymm3, %ymm3 - 0xc5, 0xe5, 0xef, 0xd2, //0x00007f52 vpxor %ymm2, %ymm3, %ymm2 - 0xc5, 0xfd, 0xeb, 0x44, 0x24, 0x60, //0x00007f56 vpor $96(%rsp), %ymm0, %ymm0 - 0xc5, 0xfd, 0xeb, 0xc2, //0x00007f5c vpor %ymm2, %ymm0, %ymm0 - 0xc4, 0xc1, 0x7d, 0xd7, 0xce, //0x00007f60 vpmovmskb %ymm14, %ecx - 0x85, 0xc9, //0x00007f65 testl %ecx, %ecx - 0x0f, 0x84, 0xd6, 0x00, 0x00, 0x00, //0x00007f67 je LBB35_11 - 0xc4, 0xc3, 0x15, 0x46, 0xd4, 0x21, //0x00007f6d vperm2i128 $33, %ymm12, %ymm13, %ymm2 - 0xc4, 0xe3, 0x1d, 0x0f, 0xda, 0x0f, //0x00007f73 vpalignr $15, %ymm2, %ymm12, %ymm3 - 0xc5, 0xd5, 0x71, 0xd3, 0x04, //0x00007f79 vpsrlw $4, %ymm3, %ymm5 - 0xc5, 0xd5, 0xdb, 0xec, //0x00007f7e vpand %ymm4, %ymm5, %ymm5 - 0xc5, 0x7d, 0x6f, 0x3d, 0x36, 0xfc, 0xff, 0xff, //0x00007f82 vmovdqa $-970(%rip), %ymm15 /* LCPI35_1+0(%rip) */ - 0xc4, 0xe2, 0x05, 0x00, 0xed, //0x00007f8a vpshufb %ymm5, %ymm15, %ymm5 - 0xc5, 0xe5, 0xdb, 0xdc, //0x00007f8f vpand %ymm4, %ymm3, %ymm3 - 0xc4, 0xe2, 0x4d, 0x00, 0xdb, //0x00007f93 vpshufb %ymm3, %ymm6, %ymm3 - 0xc4, 0xc1, 0x15, 0x71, 0xd4, 0x04, //0x00007f98 vpsrlw $4, %ymm12, %ymm13 - 0xc5, 0x15, 0xdb, 0xec, //0x00007f9e vpand %ymm4, %ymm13, %ymm13 - 0xc4, 0x42, 0x45, 0x00, 0xed, //0x00007fa2 vpshufb %ymm13, %ymm7, %ymm13 - 0xc5, 0x95, 0xdb, 0xdb, //0x00007fa7 vpand %ymm3, %ymm13, %ymm3 - 0xc5, 0xd5, 0xdb, 0xdb, //0x00007fab vpand %ymm3, %ymm5, %ymm3 - 0xc4, 0xe3, 0x1d, 0x0f, 0xea, 0x0e, //0x00007faf vpalignr $14, %ymm2, %ymm12, %ymm5 - 0xc4, 0xe3, 0x1d, 0x0f, 0xd2, 0x0d, //0x00007fb5 vpalignr $13, %ymm2, %ymm12, %ymm2 - 0xc4, 0xc1, 0x55, 0xd8, 0xe8, //0x00007fbb vpsubusb %ymm8, %ymm5, %ymm5 - 0xc4, 0xc1, 0x6d, 0xd8, 0xd1, //0x00007fc0 vpsubusb %ymm9, %ymm2, %ymm2 - 0xc5, 0xed, 0xeb, 0xd5, //0x00007fc5 vpor %ymm5, %ymm2, %ymm2 - 0xc4, 0x41, 0x09, 0xef, 0xf6, //0x00007fc9 vpxor %xmm14, %xmm14, %xmm14 - 0xc5, 0x8d, 0x74, 0xd2, //0x00007fce vpcmpeqb %ymm2, %ymm14, %ymm2 - 0xc5, 0xed, 0xdf, 0xd1, //0x00007fd2 vpandn %ymm1, %ymm2, %ymm2 - 0xc5, 0xed, 0xef, 0xd3, //0x00007fd6 vpxor %ymm3, %ymm2, %ymm2 - 0xc4, 0xc3, 0x1d, 0x46, 0xdb, 0x21, //0x00007fda vperm2i128 $33, %ymm11, %ymm12, %ymm3 - 0xc4, 0xe3, 0x25, 0x0f, 0xeb, 0x0f, //0x00007fe0 vpalignr $15, %ymm3, %ymm11, %ymm5 - 0xc5, 0x9d, 0x71, 0xd5, 0x04, //0x00007fe6 vpsrlw $4, %ymm5, %ymm12 - 0xc5, 0x1d, 0xdb, 0xe4, //0x00007feb vpand %ymm4, %ymm12, %ymm12 - 0xc4, 0x42, 0x05, 0x00, 0xe4, //0x00007fef vpshufb %ymm12, %ymm15, %ymm12 - 0xc5, 0xd5, 0xdb, 0xec, //0x00007ff4 vpand %ymm4, %ymm5, %ymm5 - 0xc4, 0xe2, 0x4d, 0x00, 0xed, //0x00007ff8 vpshufb %ymm5, %ymm6, %ymm5 - 0xc4, 0xc1, 0x15, 0x71, 0xd3, 0x04, //0x00007ffd vpsrlw $4, %ymm11, %ymm13 - 0xc5, 0x15, 0xdb, 0xec, //0x00008003 vpand %ymm4, %ymm13, %ymm13 - 0xc4, 0x42, 0x45, 0x00, 0xed, //0x00008007 vpshufb %ymm13, %ymm7, %ymm13 - 0xc5, 0x95, 0xdb, 0xed, //0x0000800c vpand %ymm5, %ymm13, %ymm5 - 0xc5, 0x9d, 0xdb, 0xed, //0x00008010 vpand %ymm5, %ymm12, %ymm5 - 0xc4, 0x63, 0x25, 0x0f, 0xe3, 0x0e, //0x00008014 vpalignr $14, %ymm3, %ymm11, %ymm12 - 0xc4, 0xe3, 0x25, 0x0f, 0xdb, 0x0d, //0x0000801a vpalignr $13, %ymm3, %ymm11, %ymm3 - 0xc4, 0x41, 0x1d, 0xd8, 0xe0, //0x00008020 vpsubusb %ymm8, %ymm12, %ymm12 - 0xc4, 0xc1, 0x65, 0xd8, 0xd9, //0x00008025 vpsubusb %ymm9, %ymm3, %ymm3 - 0xc5, 0x9d, 0xeb, 0xdb, //0x0000802a vpor %ymm3, %ymm12, %ymm3 - 0xc5, 0x8d, 0x74, 0xdb, //0x0000802e vpcmpeqb %ymm3, %ymm14, %ymm3 - 0xc5, 0xe5, 0xdf, 0xc9, //0x00008032 vpandn %ymm1, %ymm3, %ymm1 - 0xc5, 0xf5, 0xef, 0xcd, //0x00008036 vpxor %ymm5, %ymm1, %ymm1 - 0xc5, 0xed, 0xeb, 0xc0, //0x0000803a vpor %ymm0, %ymm2, %ymm0 - 0xe9, 0x1a, 0xfe, 0xff, 0xff, //0x0000803e jmp LBB35_8 - //0x00008043 LBB35_11 - 0xc4, 0xc1, 0x15, 0xd8, 0xca, //0x00008043 vpsubusb %ymm10, %ymm13, %ymm1 - 0xc5, 0xfd, 0xeb, 0xc1, //0x00008048 vpor %ymm1, %ymm0, %ymm0 - 0xc5, 0x7d, 0x7f, 0xea, //0x0000804c vmovdqa %ymm13, %ymm2 - 0xe9, 0x0c, 0xfd, 0xff, 0xff, //0x00008050 jmp LBB35_5 - //0x00008055 LBB35_12 - 0x49, 0x8d, 0x72, 0xc0, //0x00008055 leaq $-64(%r10), %rsi - 0x48, 0x39, 0xf0, //0x00008059 cmpq %rsi, %rax - 0x0f, 0x83, 0x59, 0x01, 0x00, 0x00, //0x0000805c jae LBB35_17 - 0xc5, 0xfd, 0x6f, 0x1d, 0x36, 0xfb, 0xff, 0xff, //0x00008062 vmovdqa $-1226(%rip), %ymm3 /* LCPI35_0+0(%rip) */ - 0xc5, 0xfd, 0x6f, 0x25, 0x4e, 0xfb, 0xff, 0xff, //0x0000806a vmovdqa $-1202(%rip), %ymm4 /* LCPI35_1+0(%rip) */ - 0xc5, 0xfd, 0x6f, 0x2d, 0x66, 0xfb, 0xff, 0xff, //0x00008072 vmovdqa $-1178(%rip), %ymm5 /* LCPI35_2+0(%rip) */ - 0xc5, 0xfd, 0x6f, 0x35, 0x7e, 0xfb, 0xff, 0xff, //0x0000807a vmovdqa $-1154(%rip), %ymm6 /* LCPI35_3+0(%rip) */ - 0xc5, 0xfd, 0x6f, 0x3d, 0x96, 0xfb, 0xff, 0xff, //0x00008082 vmovdqa $-1130(%rip), %ymm7 /* LCPI35_4+0(%rip) */ - 0xc5, 0x7d, 0x6f, 0x05, 0xae, 0xfb, 0xff, 0xff, //0x0000808a vmovdqa $-1106(%rip), %ymm8 /* LCPI35_5+0(%rip) */ - 0xc4, 0x41, 0x31, 0xef, 0xc9, //0x00008092 vpxor %xmm9, %xmm9, %xmm9 - 0xc5, 0x7d, 0x6f, 0x15, 0xc1, 0xfb, 0xff, 0xff, //0x00008097 vmovdqa $-1087(%rip), %ymm10 /* LCPI35_7+0(%rip) */ - 0x90, //0x0000809f .p2align 4, 0x90 - //0x000080a0 LBB35_14 - 0xc5, 0x7e, 0x6f, 0x20, //0x000080a0 vmovdqu (%rax), %ymm12 - 0xc5, 0x7e, 0x6f, 0x58, 0x20, //0x000080a4 vmovdqu $32(%rax), %ymm11 - 0xc4, 0x41, 0x25, 0xeb, 0xec, //0x000080a9 vpor %ymm12, %ymm11, %ymm13 - 0xc4, 0xc1, 0x7d, 0xd7, 0xcd, //0x000080ae vpmovmskb %ymm13, %ecx - 0x85, 0xc9, //0x000080b3 testl %ecx, %ecx - 0x0f, 0x85, 0x16, 0x00, 0x00, 0x00, //0x000080b5 jne LBB35_16 - 0xc5, 0xf5, 0xeb, 0xc0, //0x000080bb vpor %ymm0, %ymm1, %ymm0 - 0x48, 0x83, 0xc0, 0x40, //0x000080bf addq $64, %rax - 0x48, 0x39, 0xf0, //0x000080c3 cmpq %rsi, %rax - 0x0f, 0x82, 0xd4, 0xff, 0xff, 0xff, //0x000080c6 jb LBB35_14 - 0xe9, 0xea, 0x00, 0x00, 0x00, //0x000080cc jmp LBB35_17 - //0x000080d1 LBB35_16 - 0xc4, 0xc3, 0x6d, 0x46, 0xcc, 0x21, //0x000080d1 vperm2i128 $33, %ymm12, %ymm2, %ymm1 - 0xc4, 0xe3, 0x1d, 0x0f, 0xd1, 0x0f, //0x000080d7 vpalignr $15, %ymm1, %ymm12, %ymm2 - 0xc5, 0x95, 0x71, 0xd2, 0x04, //0x000080dd vpsrlw $4, %ymm2, %ymm13 - 0xc5, 0x15, 0xdb, 0xeb, //0x000080e2 vpand %ymm3, %ymm13, %ymm13 - 0xc4, 0x42, 0x5d, 0x00, 0xed, //0x000080e6 vpshufb %ymm13, %ymm4, %ymm13 - 0xc5, 0xed, 0xdb, 0xd3, //0x000080eb vpand %ymm3, %ymm2, %ymm2 - 0xc4, 0xe2, 0x55, 0x00, 0xd2, //0x000080ef vpshufb %ymm2, %ymm5, %ymm2 - 0xc4, 0xc1, 0x0d, 0x71, 0xd4, 0x04, //0x000080f4 vpsrlw $4, %ymm12, %ymm14 - 0xc5, 0x0d, 0xdb, 0xf3, //0x000080fa vpand %ymm3, %ymm14, %ymm14 - 0xc4, 0x42, 0x4d, 0x00, 0xf6, //0x000080fe vpshufb %ymm14, %ymm6, %ymm14 - 0xc5, 0x8d, 0xdb, 0xd2, //0x00008103 vpand %ymm2, %ymm14, %ymm2 - 0xc5, 0x95, 0xdb, 0xd2, //0x00008107 vpand %ymm2, %ymm13, %ymm2 - 0xc4, 0x63, 0x1d, 0x0f, 0xe9, 0x0e, //0x0000810b vpalignr $14, %ymm1, %ymm12, %ymm13 - 0xc4, 0xe3, 0x1d, 0x0f, 0xc9, 0x0d, //0x00008111 vpalignr $13, %ymm1, %ymm12, %ymm1 - 0xc5, 0x15, 0xd8, 0xef, //0x00008117 vpsubusb %ymm7, %ymm13, %ymm13 - 0xc4, 0xc1, 0x75, 0xd8, 0xc8, //0x0000811b vpsubusb %ymm8, %ymm1, %ymm1 - 0xc5, 0x95, 0xeb, 0xc9, //0x00008120 vpor %ymm1, %ymm13, %ymm1 - 0xc5, 0xb5, 0x74, 0xc9, //0x00008124 vpcmpeqb %ymm1, %ymm9, %ymm1 - 0xc4, 0x62, 0x7d, 0x59, 0x2d, 0x6f, 0xfb, 0xff, 0xff, //0x00008128 vpbroadcastq $-1169(%rip), %ymm13 /* LCPI35_6+0(%rip) */ - 0xc4, 0xc1, 0x75, 0xdf, 0xcd, //0x00008131 vpandn %ymm13, %ymm1, %ymm1 - 0xc5, 0xf5, 0xef, 0xca, //0x00008136 vpxor %ymm2, %ymm1, %ymm1 - 0xc4, 0xc3, 0x1d, 0x46, 0xd3, 0x21, //0x0000813a vperm2i128 $33, %ymm11, %ymm12, %ymm2 - 0xc4, 0x63, 0x25, 0x0f, 0xe2, 0x0f, //0x00008140 vpalignr $15, %ymm2, %ymm11, %ymm12 - 0xc4, 0xc1, 0x0d, 0x71, 0xd4, 0x04, //0x00008146 vpsrlw $4, %ymm12, %ymm14 - 0xc5, 0x0d, 0xdb, 0xf3, //0x0000814c vpand %ymm3, %ymm14, %ymm14 - 0xc4, 0x42, 0x5d, 0x00, 0xf6, //0x00008150 vpshufb %ymm14, %ymm4, %ymm14 - 0xc5, 0x1d, 0xdb, 0xe3, //0x00008155 vpand %ymm3, %ymm12, %ymm12 - 0xc4, 0x42, 0x55, 0x00, 0xe4, //0x00008159 vpshufb %ymm12, %ymm5, %ymm12 - 0xc4, 0xc1, 0x05, 0x71, 0xd3, 0x04, //0x0000815e vpsrlw $4, %ymm11, %ymm15 - 0xc5, 0x05, 0xdb, 0xfb, //0x00008164 vpand %ymm3, %ymm15, %ymm15 - 0xc4, 0x42, 0x4d, 0x00, 0xff, //0x00008168 vpshufb %ymm15, %ymm6, %ymm15 - 0xc4, 0x41, 0x1d, 0xdb, 0xe7, //0x0000816d vpand %ymm15, %ymm12, %ymm12 - 0xc4, 0x41, 0x0d, 0xdb, 0xe4, //0x00008172 vpand %ymm12, %ymm14, %ymm12 - 0xc4, 0x63, 0x25, 0x0f, 0xf2, 0x0e, //0x00008177 vpalignr $14, %ymm2, %ymm11, %ymm14 - 0xc4, 0xe3, 0x25, 0x0f, 0xd2, 0x0d, //0x0000817d vpalignr $13, %ymm2, %ymm11, %ymm2 - 0xc5, 0x0d, 0xd8, 0xf7, //0x00008183 vpsubusb %ymm7, %ymm14, %ymm14 - 0xc4, 0xc1, 0x6d, 0xd8, 0xd0, //0x00008187 vpsubusb %ymm8, %ymm2, %ymm2 - 0xc5, 0x8d, 0xeb, 0xd2, //0x0000818c vpor %ymm2, %ymm14, %ymm2 - 0xc5, 0xb5, 0x74, 0xd2, //0x00008190 vpcmpeqb %ymm2, %ymm9, %ymm2 - 0xc4, 0xc1, 0x6d, 0xdf, 0xd5, //0x00008194 vpandn %ymm13, %ymm2, %ymm2 - 0xc5, 0x9d, 0xef, 0xd2, //0x00008199 vpxor %ymm2, %ymm12, %ymm2 - 0xc5, 0xf5, 0xeb, 0xc0, //0x0000819d vpor %ymm0, %ymm1, %ymm0 - 0xc5, 0xfd, 0xeb, 0xc2, //0x000081a1 vpor %ymm2, %ymm0, %ymm0 - 0xc4, 0xc1, 0x25, 0xd8, 0xca, //0x000081a5 vpsubusb %ymm10, %ymm11, %ymm1 - 0xc5, 0x7d, 0x7f, 0xda, //0x000081aa vmovdqa %ymm11, %ymm2 - 0x48, 0x83, 0xc0, 0x40, //0x000081ae addq $64, %rax - 0x48, 0x39, 0xf0, //0x000081b2 cmpq %rsi, %rax - 0x0f, 0x82, 0xe5, 0xfe, 0xff, 0xff, //0x000081b5 jb LBB35_14 - //0x000081bb LBB35_17 - 0xc5, 0xe1, 0xef, 0xdb, //0x000081bb vpxor %xmm3, %xmm3, %xmm3 - 0xc5, 0xfe, 0x7f, 0x5c, 0x24, 0x40, //0x000081bf vmovdqu %ymm3, $64(%rsp) - 0xc5, 0xfe, 0x7f, 0x5c, 0x24, 0x20, //0x000081c5 vmovdqu %ymm3, $32(%rsp) - 0xc5, 0xd9, 0xef, 0xe4, //0x000081cb vpxor %xmm4, %xmm4, %xmm4 - 0x4c, 0x39, 0xd0, //0x000081cf cmpq %r10, %rax - 0x0f, 0x83, 0x78, 0x00, 0x00, 0x00, //0x000081d2 jae LBB35_25 - 0x4c, 0x89, 0xd7, //0x000081d8 movq %r10, %rdi - 0x48, 0x29, 0xc7, //0x000081db subq %rax, %rdi - 0x48, 0x83, 0xff, 0x10, //0x000081de cmpq $16, %rdi - 0x0f, 0x82, 0x23, 0x00, 0x00, 0x00, //0x000081e2 jb LBB35_21 - 0x48, 0x8d, 0x0c, 0x38, //0x000081e8 leaq (%rax,%rdi), %rcx - 0x48, 0x8d, 0x54, 0x24, 0x20, //0x000081ec leaq $32(%rsp), %rdx - 0x48, 0x39, 0xca, //0x000081f1 cmpq %rcx, %rdx - 0x0f, 0x83, 0x8f, 0x02, 0x00, 0x00, //0x000081f4 jae LBB35_29 - 0x48, 0x8d, 0x0c, 0x3c, //0x000081fa leaq (%rsp,%rdi), %rcx - 0x48, 0x83, 0xc1, 0x20, //0x000081fe addq $32, %rcx - 0x48, 0x39, 0xc8, //0x00008202 cmpq %rcx, %rax - 0x0f, 0x83, 0x7e, 0x02, 0x00, 0x00, //0x00008205 jae LBB35_29 - //0x0000820b LBB35_21 - 0x31, 0xf6, //0x0000820b xorl %esi, %esi - 0x48, 0x89, 0xc1, //0x0000820d movq %rax, %rcx - //0x00008210 LBB35_22 - 0x48, 0x8d, 0x14, 0x34, //0x00008210 leaq (%rsp,%rsi), %rdx - 0x48, 0x83, 0xc2, 0x20, //0x00008214 addq $32, %rdx - 0x4c, 0x89, 0xd7, //0x00008218 movq %r10, %rdi - 0x48, 0x29, 0xf7, //0x0000821b subq %rsi, %rdi - 0x48, 0x29, 0xc7, //0x0000821e subq %rax, %rdi - 0x31, 0xc0, //0x00008221 xorl %eax, %eax - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008223 .p2align 4, 0x90 - //0x00008230 LBB35_23 - 0x0f, 0xb6, 0x1c, 0x01, //0x00008230 movzbl (%rcx,%rax), %ebx - 0x88, 0x1c, 0x02, //0x00008234 movb %bl, (%rdx,%rax) - 0x48, 0x83, 0xc0, 0x01, //0x00008237 addq $1, %rax - 0x48, 0x39, 0xc7, //0x0000823b cmpq %rax, %rdi - 0x0f, 0x85, 0xec, 0xff, 0xff, 0xff, //0x0000823e jne LBB35_23 - //0x00008244 LBB35_24 - 0xc5, 0xfe, 0x6f, 0x64, 0x24, 0x20, //0x00008244 vmovdqu $32(%rsp), %ymm4 - 0xc5, 0xfe, 0x6f, 0x5c, 0x24, 0x40, //0x0000824a vmovdqu $64(%rsp), %ymm3 - //0x00008250 LBB35_25 - 0xc5, 0xdd, 0xeb, 0xeb, //0x00008250 vpor %ymm3, %ymm4, %ymm5 - 0xc5, 0xfd, 0xd7, 0xc5, //0x00008254 vpmovmskb %ymm5, %eax - 0x85, 0xc0, //0x00008258 testl %eax, %eax - 0x0f, 0x85, 0x8f, 0x03, 0x00, 0x00, //0x0000825a jne LBB35_43 - 0xc5, 0xfd, 0xeb, 0xc1, //0x00008260 vpor %ymm1, %ymm0, %ymm0 - 0xc5, 0xfd, 0xeb, 0xc1, //0x00008264 vpor %ymm1, %ymm0, %ymm0 - 0xc4, 0xe2, 0x7d, 0x17, 0xc0, //0x00008268 vptest %ymm0, %ymm0 - 0x0f, 0x84, 0x0a, 0x02, 0x00, 0x00, //0x0000826d je LBB35_28 - //0x00008273 LBB35_44 - 0x49, 0x8d, 0x72, 0xfd, //0x00008273 leaq $-3(%r10), %rsi - 0x4c, 0x89, 0xc8, //0x00008277 movq %r9, %rax - 0x4c, 0x39, 0xce, //0x0000827a cmpq %r9, %rsi - 0x0f, 0x86, 0xdd, 0x00, 0x00, 0x00, //0x0000827d jbe LBB35_58 - 0x4c, 0x89, 0xc8, //0x00008283 movq %r9, %rax - 0xe9, 0x11, 0x00, 0x00, 0x00, //0x00008286 jmp LBB35_47 - 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000828b .p2align 4, 0x90 - //0x00008290 LBB35_46 - 0x48, 0x01, 0xd0, //0x00008290 addq %rdx, %rax - 0x48, 0x39, 0xf0, //0x00008293 cmpq %rsi, %rax - 0x0f, 0x83, 0xc4, 0x00, 0x00, 0x00, //0x00008296 jae LBB35_58 - //0x0000829c LBB35_47 - 0xba, 0x01, 0x00, 0x00, 0x00, //0x0000829c movl $1, %edx - 0x80, 0x38, 0x00, //0x000082a1 cmpb $0, (%rax) - 0x0f, 0x89, 0xe6, 0xff, 0xff, 0xff, //0x000082a4 jns LBB35_46 - 0x8b, 0x08, //0x000082aa movl (%rax), %ecx - 0x89, 0xca, //0x000082ac movl %ecx, %edx - 0x81, 0xe2, 0xf0, 0xc0, 0xc0, 0x00, //0x000082ae andl $12632304, %edx - 0x81, 0xfa, 0xe0, 0x80, 0x80, 0x00, //0x000082b4 cmpl $8421600, %edx - 0x0f, 0x85, 0x30, 0x00, 0x00, 0x00, //0x000082ba jne LBB35_51 - 0x89, 0xcf, //0x000082c0 movl %ecx, %edi - 0x81, 0xe7, 0x0f, 0x20, 0x00, 0x00, //0x000082c2 andl $8207, %edi - 0x81, 0xff, 0x0d, 0x20, 0x00, 0x00, //0x000082c8 cmpl $8205, %edi - 0x0f, 0x84, 0x1c, 0x00, 0x00, 0x00, //0x000082ce je LBB35_51 - 0xba, 0x03, 0x00, 0x00, 0x00, //0x000082d4 movl $3, %edx - 0x85, 0xff, //0x000082d9 testl %edi, %edi - 0x0f, 0x85, 0xaf, 0xff, 0xff, 0xff, //0x000082db jne LBB35_46 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000082e1 .p2align 4, 0x90 - //0x000082f0 LBB35_51 - 0x89, 0xca, //0x000082f0 movl %ecx, %edx - 0x81, 0xe2, 0xe0, 0xc0, 0x00, 0x00, //0x000082f2 andl $49376, %edx - 0x81, 0xfa, 0xc0, 0x80, 0x00, 0x00, //0x000082f8 cmpl $32960, %edx - 0x0f, 0x85, 0x10, 0x00, 0x00, 0x00, //0x000082fe jne LBB35_53 - 0x89, 0xcf, //0x00008304 movl %ecx, %edi - 0xba, 0x02, 0x00, 0x00, 0x00, //0x00008306 movl $2, %edx - 0x83, 0xe7, 0x1e, //0x0000830b andl $30, %edi - 0x0f, 0x85, 0x7c, 0xff, 0xff, 0xff, //0x0000830e jne LBB35_46 - //0x00008314 LBB35_53 - 0x89, 0xca, //0x00008314 movl %ecx, %edx - 0x81, 0xe2, 0xf8, 0xc0, 0xc0, 0xc0, //0x00008316 andl $-1061109512, %edx - 0x81, 0xfa, 0xf0, 0x80, 0x80, 0x80, //0x0000831c cmpl $-2139062032, %edx - 0x0f, 0x85, 0x28, 0x00, 0x00, 0x00, //0x00008322 jne LBB35_57 - 0x89, 0xca, //0x00008328 movl %ecx, %edx - 0x81, 0xe2, 0x07, 0x30, 0x00, 0x00, //0x0000832a andl $12295, %edx - 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x00008330 je LBB35_57 - 0xba, 0x04, 0x00, 0x00, 0x00, //0x00008336 movl $4, %edx - 0xf6, 0xc1, 0x04, //0x0000833b testb $4, %cl - 0x0f, 0x84, 0x4c, 0xff, 0xff, 0xff, //0x0000833e je LBB35_46 - 0x81, 0xe1, 0x03, 0x30, 0x00, 0x00, //0x00008344 andl $12291, %ecx - 0x0f, 0x84, 0x40, 0xff, 0xff, 0xff, //0x0000834a je LBB35_46 - //0x00008350 LBB35_57 - 0x48, 0xf7, 0xd0, //0x00008350 notq %rax - 0x4c, 0x01, 0xc8, //0x00008353 addq %r9, %rax - 0x48, 0x8d, 0x65, 0xf8, //0x00008356 leaq $-8(%rbp), %rsp - 0x5b, //0x0000835a popq %rbx - 0x5d, //0x0000835b popq %rbp - 0xc5, 0xf8, 0x77, //0x0000835c vzeroupper - 0xc3, //0x0000835f retq - //0x00008360 LBB35_58 - 0x4c, 0x39, 0xd0, //0x00008360 cmpq %r10, %rax - 0x0f, 0x83, 0x14, 0x01, 0x00, 0x00, //0x00008363 jae LBB35_28 - 0x4c, 0x8d, 0x44, 0x24, 0x20, //0x00008369 leaq $32(%rsp), %r8 - 0x4c, 0x8d, 0x5c, 0x24, 0x1e, //0x0000836e leaq $30(%rsp), %r11 - 0xe9, 0x15, 0x00, 0x00, 0x00, //0x00008373 jmp LBB35_61 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008378 .p2align 4, 0x90 - //0x00008380 LBB35_60 - 0x48, 0x83, 0xc0, 0x01, //0x00008380 addq $1, %rax - 0x4c, 0x39, 0xd0, //0x00008384 cmpq %r10, %rax - 0x0f, 0x83, 0xf0, 0x00, 0x00, 0x00, //0x00008387 jae LBB35_28 - //0x0000838d LBB35_61 - 0x80, 0x38, 0x00, //0x0000838d cmpb $0, (%rax) - 0x0f, 0x89, 0xea, 0xff, 0xff, 0xff, //0x00008390 jns LBB35_60 - 0xc6, 0x44, 0x24, 0x20, 0x00, //0x00008396 movb $0, $32(%rsp) - 0xc6, 0x44, 0x24, 0x1e, 0x00, //0x0000839b movb $0, $30(%rsp) - 0x4c, 0x89, 0xd2, //0x000083a0 movq %r10, %rdx - 0x48, 0x29, 0xc2, //0x000083a3 subq %rax, %rdx - 0x48, 0x83, 0xfa, 0x02, //0x000083a6 cmpq $2, %rdx - 0x0f, 0x82, 0x34, 0x00, 0x00, 0x00, //0x000083aa jb LBB35_65 - 0x0f, 0xb6, 0x30, //0x000083b0 movzbl (%rax), %esi - 0x0f, 0xb6, 0x48, 0x01, //0x000083b3 movzbl $1(%rax), %ecx - 0x40, 0x88, 0x74, 0x24, 0x20, //0x000083b7 movb %sil, $32(%rsp) - 0x48, 0x8d, 0x78, 0x02, //0x000083bc leaq $2(%rax), %rdi - 0x48, 0x83, 0xc2, 0xfe, //0x000083c0 addq $-2, %rdx - 0x4c, 0x89, 0xdb, //0x000083c4 movq %r11, %rbx - 0x48, 0x85, 0xd2, //0x000083c7 testq %rdx, %rdx - 0x0f, 0x84, 0x27, 0x00, 0x00, 0x00, //0x000083ca je LBB35_66 - //0x000083d0 LBB35_64 - 0x0f, 0xb6, 0x17, //0x000083d0 movzbl (%rdi), %edx - 0x88, 0x13, //0x000083d3 movb %dl, (%rbx) - 0x0f, 0xb6, 0x74, 0x24, 0x20, //0x000083d5 movzbl $32(%rsp), %esi - 0x0f, 0xb6, 0x54, 0x24, 0x1e, //0x000083da movzbl $30(%rsp), %edx - 0xe9, 0x15, 0x00, 0x00, 0x00, //0x000083df jmp LBB35_67 - //0x000083e4 LBB35_65 - 0x31, 0xf6, //0x000083e4 xorl %esi, %esi - 0x31, 0xc9, //0x000083e6 xorl %ecx, %ecx - 0x4c, 0x89, 0xc3, //0x000083e8 movq %r8, %rbx - 0x48, 0x89, 0xc7, //0x000083eb movq %rax, %rdi - 0x48, 0x85, 0xd2, //0x000083ee testq %rdx, %rdx - 0x0f, 0x85, 0xd9, 0xff, 0xff, 0xff, //0x000083f1 jne LBB35_64 - //0x000083f7 LBB35_66 - 0x31, 0xd2, //0x000083f7 xorl %edx, %edx - //0x000083f9 LBB35_67 - 0x0f, 0xb6, 0xd2, //0x000083f9 movzbl %dl, %edx - 0xc1, 0xe2, 0x10, //0x000083fc shll $16, %edx - 0x0f, 0xb6, 0xf9, //0x000083ff movzbl %cl, %edi - 0xc1, 0xe7, 0x08, //0x00008402 shll $8, %edi - 0x09, 0xd7, //0x00008405 orl %edx, %edi - 0x40, 0x0f, 0xb6, 0xce, //0x00008407 movzbl %sil, %ecx - 0x09, 0xf9, //0x0000840b orl %edi, %ecx - 0x89, 0xca, //0x0000840d movl %ecx, %edx - 0x81, 0xe2, 0xf0, 0xc0, 0xc0, 0x00, //0x0000840f andl $12632304, %edx - 0x81, 0xfa, 0xe0, 0x80, 0x80, 0x00, //0x00008415 cmpl $8421600, %edx - 0x0f, 0x85, 0x2f, 0x00, 0x00, 0x00, //0x0000841b jne LBB35_70 - 0x89, 0xcf, //0x00008421 movl %ecx, %edi - 0x81, 0xe7, 0x0f, 0x20, 0x00, 0x00, //0x00008423 andl $8207, %edi - 0x81, 0xff, 0x0d, 0x20, 0x00, 0x00, //0x00008429 cmpl $8205, %edi - 0x0f, 0x84, 0x1b, 0x00, 0x00, 0x00, //0x0000842f je LBB35_70 - 0xba, 0x03, 0x00, 0x00, 0x00, //0x00008435 movl $3, %edx - 0x85, 0xff, //0x0000843a testl %edi, %edi - 0x0f, 0x85, 0x2f, 0x00, 0x00, 0x00, //0x0000843c jne LBB35_72 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008442 .p2align 4, 0x90 - //0x00008450 LBB35_70 - 0x40, 0xf6, 0xc6, 0x1e, //0x00008450 testb $30, %sil - 0x0f, 0x84, 0xf6, 0xfe, 0xff, 0xff, //0x00008454 je LBB35_57 - 0x81, 0xe1, 0xe0, 0xc0, 0x00, 0x00, //0x0000845a andl $49376, %ecx - 0xba, 0x02, 0x00, 0x00, 0x00, //0x00008460 movl $2, %edx - 0x81, 0xf9, 0xc0, 0x80, 0x00, 0x00, //0x00008465 cmpl $32960, %ecx - 0x0f, 0x85, 0xdf, 0xfe, 0xff, 0xff, //0x0000846b jne LBB35_57 - //0x00008471 LBB35_72 - 0x48, 0x01, 0xd0, //0x00008471 addq %rdx, %rax - 0x4c, 0x39, 0xd0, //0x00008474 cmpq %r10, %rax - 0x0f, 0x82, 0x10, 0xff, 0xff, 0xff, //0x00008477 jb LBB35_61 - //0x0000847d LBB35_28 - 0x31, 0xc0, //0x0000847d xorl %eax, %eax - 0x48, 0x8d, 0x65, 0xf8, //0x0000847f leaq $-8(%rbp), %rsp - 0x5b, //0x00008483 popq %rbx - 0x5d, //0x00008484 popq %rbp - 0xc5, 0xf8, 0x77, //0x00008485 vzeroupper - 0xc3, //0x00008488 retq - //0x00008489 LBB35_29 - 0x48, 0x81, 0xff, 0x80, 0x00, 0x00, 0x00, //0x00008489 cmpq $128, %rdi - 0x0f, 0x83, 0x07, 0x00, 0x00, 0x00, //0x00008490 jae LBB35_31 - 0x31, 0xf6, //0x00008496 xorl %esi, %esi - 0xe9, 0x14, 0x01, 0x00, 0x00, //0x00008498 jmp LBB35_39 - //0x0000849d LBB35_31 - 0x48, 0x89, 0xfe, //0x0000849d movq %rdi, %rsi - 0x48, 0x83, 0xe6, 0x80, //0x000084a0 andq $-128, %rsi - 0x48, 0x8d, 0x4e, 0x80, //0x000084a4 leaq $-128(%rsi), %rcx - 0x49, 0x89, 0xc8, //0x000084a8 movq %rcx, %r8 - 0x49, 0xc1, 0xe8, 0x07, //0x000084ab shrq $7, %r8 - 0x49, 0x83, 0xc0, 0x01, //0x000084af addq $1, %r8 - 0x48, 0x85, 0xc9, //0x000084b3 testq %rcx, %rcx - 0x0f, 0x84, 0xa4, 0x00, 0x00, 0x00, //0x000084b6 je LBB35_34 - 0x4c, 0x89, 0xc2, //0x000084bc movq %r8, %rdx - 0x48, 0x83, 0xe2, 0xfe, //0x000084bf andq $-2, %rdx - 0x48, 0xf7, 0xda, //0x000084c3 negq %rdx - 0x31, 0xc9, //0x000084c6 xorl %ecx, %ecx - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000084c8 .p2align 4, 0x90 - //0x000084d0 LBB35_33 - 0xc5, 0xfc, 0x10, 0x1c, 0x08, //0x000084d0 vmovups (%rax,%rcx), %ymm3 - 0xc5, 0xfc, 0x10, 0x64, 0x08, 0x20, //0x000084d5 vmovups $32(%rax,%rcx), %ymm4 - 0xc5, 0xfc, 0x10, 0x6c, 0x08, 0x40, //0x000084db vmovups $64(%rax,%rcx), %ymm5 - 0xc5, 0xfc, 0x10, 0x74, 0x08, 0x60, //0x000084e1 vmovups $96(%rax,%rcx), %ymm6 - 0xc5, 0xfc, 0x11, 0x5c, 0x0c, 0x20, //0x000084e7 vmovups %ymm3, $32(%rsp,%rcx) - 0xc5, 0xfc, 0x11, 0x64, 0x0c, 0x40, //0x000084ed vmovups %ymm4, $64(%rsp,%rcx) - 0xc5, 0xfc, 0x11, 0x6c, 0x0c, 0x60, //0x000084f3 vmovups %ymm5, $96(%rsp,%rcx) - 0xc5, 0xfc, 0x11, 0xb4, 0x0c, 0x80, 0x00, 0x00, 0x00, //0x000084f9 vmovups %ymm6, $128(%rsp,%rcx) - 0xc5, 0xfe, 0x6f, 0x9c, 0x08, 0x80, 0x00, 0x00, 0x00, //0x00008502 vmovdqu $128(%rax,%rcx), %ymm3 - 0xc5, 0xfe, 0x6f, 0xa4, 0x08, 0xa0, 0x00, 0x00, 0x00, //0x0000850b vmovdqu $160(%rax,%rcx), %ymm4 - 0xc5, 0xfe, 0x6f, 0xac, 0x08, 0xc0, 0x00, 0x00, 0x00, //0x00008514 vmovdqu $192(%rax,%rcx), %ymm5 - 0xc5, 0xfe, 0x6f, 0xb4, 0x08, 0xe0, 0x00, 0x00, 0x00, //0x0000851d vmovdqu $224(%rax,%rcx), %ymm6 - 0xc5, 0xfe, 0x7f, 0x9c, 0x0c, 0xa0, 0x00, 0x00, 0x00, //0x00008526 vmovdqu %ymm3, $160(%rsp,%rcx) - 0xc5, 0xfe, 0x7f, 0xa4, 0x0c, 0xc0, 0x00, 0x00, 0x00, //0x0000852f vmovdqu %ymm4, $192(%rsp,%rcx) - 0xc5, 0xfe, 0x7f, 0xac, 0x0c, 0xe0, 0x00, 0x00, 0x00, //0x00008538 vmovdqu %ymm5, $224(%rsp,%rcx) - 0xc5, 0xfe, 0x7f, 0xb4, 0x0c, 0x00, 0x01, 0x00, 0x00, //0x00008541 vmovdqu %ymm6, $256(%rsp,%rcx) - 0x48, 0x81, 0xc1, 0x00, 0x01, 0x00, 0x00, //0x0000854a addq $256, %rcx - 0x48, 0x83, 0xc2, 0x02, //0x00008551 addq $2, %rdx - 0x0f, 0x85, 0x75, 0xff, 0xff, 0xff, //0x00008555 jne LBB35_33 - 0xe9, 0x02, 0x00, 0x00, 0x00, //0x0000855b jmp LBB35_35 - //0x00008560 LBB35_34 - 0x31, 0xc9, //0x00008560 xorl %ecx, %ecx - //0x00008562 LBB35_35 - 0x41, 0xf6, 0xc0, 0x01, //0x00008562 testb $1, %r8b - 0x0f, 0x84, 0x32, 0x00, 0x00, 0x00, //0x00008566 je LBB35_37 - 0xc5, 0xfe, 0x6f, 0x1c, 0x08, //0x0000856c vmovdqu (%rax,%rcx), %ymm3 - 0xc5, 0xfe, 0x6f, 0x64, 0x08, 0x20, //0x00008571 vmovdqu $32(%rax,%rcx), %ymm4 - 0xc5, 0xfe, 0x6f, 0x6c, 0x08, 0x40, //0x00008577 vmovdqu $64(%rax,%rcx), %ymm5 - 0xc5, 0xfe, 0x6f, 0x74, 0x08, 0x60, //0x0000857d vmovdqu $96(%rax,%rcx), %ymm6 - 0xc5, 0xfe, 0x7f, 0x5c, 0x0c, 0x20, //0x00008583 vmovdqu %ymm3, $32(%rsp,%rcx) - 0xc5, 0xfe, 0x7f, 0x64, 0x0c, 0x40, //0x00008589 vmovdqu %ymm4, $64(%rsp,%rcx) - 0xc5, 0xfe, 0x7f, 0x6c, 0x0c, 0x60, //0x0000858f vmovdqu %ymm5, $96(%rsp,%rcx) - 0xc5, 0xfe, 0x7f, 0xb4, 0x0c, 0x80, 0x00, 0x00, 0x00, //0x00008595 vmovdqu %ymm6, $128(%rsp,%rcx) - //0x0000859e LBB35_37 - 0x48, 0x39, 0xf7, //0x0000859e cmpq %rsi, %rdi - 0x0f, 0x84, 0x9d, 0xfc, 0xff, 0xff, //0x000085a1 je LBB35_24 - 0x40, 0xf6, 0xc7, 0x70, //0x000085a7 testb $112, %dil - 0x0f, 0x84, 0x35, 0x00, 0x00, 0x00, //0x000085ab je LBB35_42 - //0x000085b1 LBB35_39 - 0x48, 0x89, 0xf2, //0x000085b1 movq %rsi, %rdx - 0x48, 0x89, 0xfe, //0x000085b4 movq %rdi, %rsi - 0x48, 0x83, 0xe6, 0xf0, //0x000085b7 andq $-16, %rsi - 0x48, 0x8d, 0x0c, 0x30, //0x000085bb leaq (%rax,%rsi), %rcx - 0x90, //0x000085bf .p2align 4, 0x90 - //0x000085c0 LBB35_40 - 0xc5, 0xfa, 0x6f, 0x1c, 0x10, //0x000085c0 vmovdqu (%rax,%rdx), %xmm3 - 0xc5, 0xfa, 0x7f, 0x5c, 0x14, 0x20, //0x000085c5 vmovdqu %xmm3, $32(%rsp,%rdx) - 0x48, 0x83, 0xc2, 0x10, //0x000085cb addq $16, %rdx - 0x48, 0x39, 0xd6, //0x000085cf cmpq %rdx, %rsi - 0x0f, 0x85, 0xe8, 0xff, 0xff, 0xff, //0x000085d2 jne LBB35_40 - 0x48, 0x39, 0xf7, //0x000085d8 cmpq %rsi, %rdi - 0x0f, 0x85, 0x2f, 0xfc, 0xff, 0xff, //0x000085db jne LBB35_22 - 0xe9, 0x5e, 0xfc, 0xff, 0xff, //0x000085e1 jmp LBB35_24 - //0x000085e6 LBB35_42 - 0x48, 0x8d, 0x0c, 0x30, //0x000085e6 leaq (%rax,%rsi), %rcx - 0xe9, 0x21, 0xfc, 0xff, 0xff, //0x000085ea jmp LBB35_22 - //0x000085ef LBB35_43 - 0xc4, 0xe3, 0x6d, 0x46, 0xd4, 0x21, //0x000085ef vperm2i128 $33, %ymm4, %ymm2, %ymm2 - 0xc4, 0xe3, 0x5d, 0x0f, 0xea, 0x0f, //0x000085f5 vpalignr $15, %ymm2, %ymm4, %ymm5 - 0xc5, 0xcd, 0x71, 0xd5, 0x04, //0x000085fb vpsrlw $4, %ymm5, %ymm6 - 0xc5, 0xfd, 0x6f, 0x0d, 0x98, 0xf5, 0xff, 0xff, //0x00008600 vmovdqa $-2664(%rip), %ymm1 /* LCPI35_0+0(%rip) */ - 0xc5, 0xcd, 0xdb, 0xf1, //0x00008608 vpand %ymm1, %ymm6, %ymm6 - 0xc5, 0xfd, 0x6f, 0x3d, 0xac, 0xf5, 0xff, 0xff, //0x0000860c vmovdqa $-2644(%rip), %ymm7 /* LCPI35_1+0(%rip) */ - 0xc4, 0xe2, 0x45, 0x00, 0xf6, //0x00008614 vpshufb %ymm6, %ymm7, %ymm6 - 0xc5, 0xd5, 0xdb, 0xe9, //0x00008619 vpand %ymm1, %ymm5, %ymm5 - 0xc5, 0x7d, 0x6f, 0x05, 0xbb, 0xf5, 0xff, 0xff, //0x0000861d vmovdqa $-2629(%rip), %ymm8 /* LCPI35_2+0(%rip) */ - 0xc4, 0xe2, 0x3d, 0x00, 0xed, //0x00008625 vpshufb %ymm5, %ymm8, %ymm5 - 0xc5, 0xb5, 0x71, 0xd4, 0x04, //0x0000862a vpsrlw $4, %ymm4, %ymm9 - 0xc5, 0x35, 0xdb, 0xc9, //0x0000862f vpand %ymm1, %ymm9, %ymm9 - 0xc5, 0x7d, 0x6f, 0x15, 0xc5, 0xf5, 0xff, 0xff, //0x00008633 vmovdqa $-2619(%rip), %ymm10 /* LCPI35_3+0(%rip) */ - 0xc4, 0x42, 0x2d, 0x00, 0xc9, //0x0000863b vpshufb %ymm9, %ymm10, %ymm9 - 0xc5, 0xb5, 0xdb, 0xed, //0x00008640 vpand %ymm5, %ymm9, %ymm5 - 0xc5, 0xcd, 0xdb, 0xed, //0x00008644 vpand %ymm5, %ymm6, %ymm5 - 0xc4, 0xe3, 0x5d, 0x0f, 0xf2, 0x0e, //0x00008648 vpalignr $14, %ymm2, %ymm4, %ymm6 - 0xc4, 0xe3, 0x5d, 0x0f, 0xd2, 0x0d, //0x0000864e vpalignr $13, %ymm2, %ymm4, %ymm2 - 0xc5, 0x7d, 0x6f, 0x0d, 0xc4, 0xf5, 0xff, 0xff, //0x00008654 vmovdqa $-2620(%rip), %ymm9 /* LCPI35_4+0(%rip) */ - 0xc4, 0xc1, 0x4d, 0xd8, 0xf1, //0x0000865c vpsubusb %ymm9, %ymm6, %ymm6 - 0xc5, 0x7d, 0x6f, 0x1d, 0xd7, 0xf5, 0xff, 0xff, //0x00008661 vmovdqa $-2601(%rip), %ymm11 /* LCPI35_5+0(%rip) */ - 0xc4, 0xc1, 0x6d, 0xd8, 0xd3, //0x00008669 vpsubusb %ymm11, %ymm2, %ymm2 - 0xc5, 0xed, 0xeb, 0xd6, //0x0000866e vpor %ymm6, %ymm2, %ymm2 - 0xc5, 0xc9, 0xef, 0xf6, //0x00008672 vpxor %xmm6, %xmm6, %xmm6 - 0xc5, 0xed, 0x74, 0xd6, //0x00008676 vpcmpeqb %ymm6, %ymm2, %ymm2 - 0xc4, 0x62, 0x7d, 0x59, 0x25, 0x1d, 0xf6, 0xff, 0xff, //0x0000867a vpbroadcastq $-2531(%rip), %ymm12 /* LCPI35_6+0(%rip) */ - 0xc4, 0xc1, 0x6d, 0xdf, 0xd4, //0x00008683 vpandn %ymm12, %ymm2, %ymm2 - 0xc5, 0xed, 0xef, 0xd5, //0x00008688 vpxor %ymm5, %ymm2, %ymm2 - 0xc4, 0xe3, 0x5d, 0x46, 0xe3, 0x21, //0x0000868c vperm2i128 $33, %ymm3, %ymm4, %ymm4 - 0xc4, 0xe3, 0x65, 0x0f, 0xec, 0x0f, //0x00008692 vpalignr $15, %ymm4, %ymm3, %ymm5 - 0xc5, 0x95, 0x71, 0xd5, 0x04, //0x00008698 vpsrlw $4, %ymm5, %ymm13 - 0xc5, 0x15, 0xdb, 0xe9, //0x0000869d vpand %ymm1, %ymm13, %ymm13 - 0xc4, 0xc2, 0x45, 0x00, 0xfd, //0x000086a1 vpshufb %ymm13, %ymm7, %ymm7 - 0xc5, 0xd5, 0xdb, 0xe9, //0x000086a6 vpand %ymm1, %ymm5, %ymm5 - 0xc4, 0xe2, 0x3d, 0x00, 0xed, //0x000086aa vpshufb %ymm5, %ymm8, %ymm5 - 0xc5, 0xbd, 0x71, 0xd3, 0x04, //0x000086af vpsrlw $4, %ymm3, %ymm8 - 0xc5, 0xbd, 0xdb, 0xc9, //0x000086b4 vpand %ymm1, %ymm8, %ymm1 - 0xc4, 0xe2, 0x2d, 0x00, 0xc9, //0x000086b8 vpshufb %ymm1, %ymm10, %ymm1 - 0xc5, 0xd5, 0xdb, 0xc9, //0x000086bd vpand %ymm1, %ymm5, %ymm1 - 0xc5, 0xc5, 0xdb, 0xc9, //0x000086c1 vpand %ymm1, %ymm7, %ymm1 - 0xc4, 0xe3, 0x65, 0x0f, 0xec, 0x0e, //0x000086c5 vpalignr $14, %ymm4, %ymm3, %ymm5 - 0xc4, 0xe3, 0x65, 0x0f, 0xe4, 0x0d, //0x000086cb vpalignr $13, %ymm4, %ymm3, %ymm4 - 0xc4, 0xc1, 0x55, 0xd8, 0xe9, //0x000086d1 vpsubusb %ymm9, %ymm5, %ymm5 - 0xc4, 0xc1, 0x5d, 0xd8, 0xe3, //0x000086d6 vpsubusb %ymm11, %ymm4, %ymm4 - 0xc5, 0xdd, 0xeb, 0xe5, //0x000086db vpor %ymm5, %ymm4, %ymm4 - 0xc5, 0xdd, 0x74, 0xe6, //0x000086df vpcmpeqb %ymm6, %ymm4, %ymm4 - 0xc4, 0xc1, 0x5d, 0xdf, 0xe4, //0x000086e3 vpandn %ymm12, %ymm4, %ymm4 - 0xc5, 0xdd, 0xef, 0xc9, //0x000086e8 vpxor %ymm1, %ymm4, %ymm1 - 0xc5, 0xed, 0xeb, 0xc0, //0x000086ec vpor %ymm0, %ymm2, %ymm0 - 0xc5, 0xfd, 0xeb, 0xc1, //0x000086f0 vpor %ymm1, %ymm0, %ymm0 - 0xc5, 0xe5, 0xd8, 0x0d, 0x64, 0xf5, 0xff, 0xff, //0x000086f4 vpsubusb $-2716(%rip), %ymm3, %ymm1 /* LCPI35_7+0(%rip) */ - 0xc5, 0xfd, 0xeb, 0xc1, //0x000086fc vpor %ymm1, %ymm0, %ymm0 - 0xc4, 0xe2, 0x7d, 0x17, 0xc0, //0x00008700 vptest %ymm0, %ymm0 - 0x0f, 0x84, 0x72, 0xfd, 0xff, 0xff, //0x00008705 je LBB35_28 - 0xe9, 0x63, 0xfb, 0xff, 0xff, //0x0000870b jmp LBB35_44 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00008710 .p2align 5, 0x00 - //0x00008720 LCPI36_0 - 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, //0x00008720 QUAD $0x3030303030303030; QUAD $0x3030303030303030 // .space 16, '0000000000000000' - 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, //0x00008730 QUAD $0x3030303030303030; QUAD $0x3030303030303030 // .space 16, '0000000000000000' - //0x00008740 .p2align 4, 0x00 - //0x00008740 LCPI36_1 + 0x48, 0x8d, 0x04, 0x17, //0x00000044 leaq (%rdi,%rdx), %rax + 0x49, 0x89, 0xf1, //0x00000048 movq %rsi, %r9 + 0x49, 0x29, 0xd1, //0x0000004b subq %rdx, %r9 + 0x49, 0x83, 0xf9, 0x20, //0x0000004e cmpq $32, %r9 + 0x0f, 0x82, 0x5a, 0x00, 0x00, 0x00, //0x00000052 jb LBB0_4 + 0x48, 0x29, 0xd6, //0x00000058 subq %rdx, %rsi + 0x48, 0x83, 0xc6, 0xe0, //0x0000005b addq $-32, %rsi + 0x48, 0x89, 0xf1, //0x0000005f movq %rsi, %rcx + 0x48, 0x83, 0xe1, 0xe0, //0x00000062 andq $-32, %rcx + 0x48, 0x01, 0xd1, //0x00000066 addq %rdx, %rcx + 0x4c, 0x8d, 0x44, 0x0f, 0x20, //0x00000069 leaq $32(%rdi,%rcx), %r8 + 0x83, 0xe6, 0x1f, //0x0000006e andl $31, %esi + 0xc5, 0xfd, 0x6f, 0x05, 0xa7, 0xff, 0xff, 0xff, //0x00000071 vmovdqa $-89(%rip), %ymm0 /* LCPI0_0+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000079 .p2align 4, 0x90 + //0x00000080 LBB0_2 + 0xc5, 0xfe, 0x6f, 0x08, //0x00000080 vmovdqu (%rax), %ymm1 + 0xc4, 0xe2, 0x7d, 0x00, 0xd1, //0x00000084 vpshufb %ymm1, %ymm0, %ymm2 + 0xc5, 0xf5, 0x74, 0xca, //0x00000089 vpcmpeqb %ymm2, %ymm1, %ymm1 + 0xc5, 0xfd, 0xd7, 0xd1, //0x0000008d vpmovmskb %ymm1, %edx + 0x83, 0xfa, 0xff, //0x00000091 cmpl $-1, %edx + 0x0f, 0x85, 0x63, 0x00, 0x00, 0x00, //0x00000094 jne LBB0_3 + 0x48, 0x83, 0xc0, 0x20, //0x0000009a addq $32, %rax + 0x49, 0x83, 0xc1, 0xe0, //0x0000009e addq $-32, %r9 + 0x49, 0x83, 0xf9, 0x1f, //0x000000a2 cmpq $31, %r9 + 0x0f, 0x87, 0xd4, 0xff, 0xff, 0xff, //0x000000a6 ja LBB0_2 + 0x49, 0x89, 0xf1, //0x000000ac movq %rsi, %r9 + 0x4c, 0x89, 0xc0, //0x000000af movq %r8, %rax + //0x000000b2 LBB0_4 + 0x4d, 0x85, 0xc9, //0x000000b2 testq %r9, %r9 + 0x0f, 0x84, 0x3a, 0x00, 0x00, 0x00, //0x000000b5 je LBB0_13 + 0x4e, 0x8d, 0x04, 0x08, //0x000000bb leaq (%rax,%r9), %r8 + 0x48, 0xff, 0xc0, //0x000000bf incq %rax + 0x48, 0xbe, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x000000c2 movabsq $4294977024, %rsi + //0x000000cc LBB0_6 + 0x0f, 0xbe, 0x50, 0xff, //0x000000cc movsbl $-1(%rax), %edx + 0x83, 0xfa, 0x20, //0x000000d0 cmpl $32, %edx + 0x0f, 0x87, 0x38, 0x00, 0x00, 0x00, //0x000000d3 ja LBB0_8 + 0x48, 0x0f, 0xa3, 0xd6, //0x000000d9 btq %rdx, %rsi + 0x0f, 0x83, 0x2e, 0x00, 0x00, 0x00, //0x000000dd jae LBB0_8 + 0x49, 0xff, 0xc9, //0x000000e3 decq %r9 + 0x48, 0xff, 0xc0, //0x000000e6 incq %rax + 0x4d, 0x85, 0xc9, //0x000000e9 testq %r9, %r9 + 0x0f, 0x85, 0xda, 0xff, 0xff, 0xff, //0x000000ec jne LBB0_6 + 0x4c, 0x89, 0xc0, //0x000000f2 movq %r8, %rax + //0x000000f5 LBB0_13 + 0x48, 0x29, 0xf8, //0x000000f5 subq %rdi, %rax + 0x5d, //0x000000f8 popq %rbp + 0xc5, 0xf8, 0x77, //0x000000f9 vzeroupper + 0xc3, //0x000000fc retq + //0x000000fd LBB0_3 + 0x48, 0x29, 0xf8, //0x000000fd subq %rdi, %rax + 0xf7, 0xd2, //0x00000100 notl %edx + 0x48, 0x63, 0xca, //0x00000102 movslq %edx, %rcx + 0x48, 0x0f, 0xbc, 0xc9, //0x00000105 bsfq %rcx, %rcx + 0x48, 0x01, 0xc8, //0x00000109 addq %rcx, %rax + 0x5d, //0x0000010c popq %rbp + 0xc5, 0xf8, 0x77, //0x0000010d vzeroupper + 0xc3, //0x00000110 retq + //0x00000111 LBB0_8 + 0x48, 0xf7, 0xd7, //0x00000111 notq %rdi + 0x48, 0x01, 0xf8, //0x00000114 addq %rdi, %rax + 0x5d, //0x00000117 popq %rbp + 0xc5, 0xf8, 0x77, //0x00000118 vzeroupper + 0xc3, //0x0000011b retq + 0x00, 0x00, 0x00, 0x00, //0x0000011c .p2align 5, 0x00 + //0x00000120 LCPI1_0 + 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, //0x00000120 QUAD $0x3030303030303030; QUAD $0x3030303030303030 // .space 16, '0000000000000000' + 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, //0x00000130 QUAD $0x3030303030303030; QUAD $0x3030303030303030 // .space 16, '0000000000000000' + //0x00000140 .p2align 4, 0x90 + //0x00000140 _f64toa + 0x55, //0x00000140 pushq %rbp + 0x48, 0x89, 0xe5, //0x00000141 movq %rsp, %rbp + 0x41, 0x57, //0x00000144 pushq %r15 + 0x41, 0x56, //0x00000146 pushq %r14 + 0x41, 0x55, //0x00000148 pushq %r13 + 0x41, 0x54, //0x0000014a pushq %r12 + 0x53, //0x0000014c pushq %rbx + 0x50, //0x0000014d pushq %rax + 0xc4, 0xe1, 0xf9, 0x7e, 0xc2, //0x0000014e vmovq %xmm0, %rdx + 0x48, 0x89, 0xd0, //0x00000153 movq %rdx, %rax + 0x48, 0xc1, 0xe8, 0x34, //0x00000156 shrq $52, %rax + 0x25, 0xff, 0x07, 0x00, 0x00, //0x0000015a andl $2047, %eax + 0x3d, 0xff, 0x07, 0x00, 0x00, //0x0000015f cmpl $2047, %eax + 0x0f, 0x84, 0xcc, 0x0a, 0x00, 0x00, //0x00000164 je LBB1_114 + 0x49, 0x89, 0xfe, //0x0000016a movq %rdi, %r14 + 0xc6, 0x07, 0x2d, //0x0000016d movb $45, (%rdi) + 0x49, 0x89, 0xd4, //0x00000170 movq %rdx, %r12 + 0x49, 0xc1, 0xec, 0x3f, //0x00000173 shrq $63, %r12 + 0x4e, 0x8d, 0x3c, 0x27, //0x00000177 leaq (%rdi,%r12), %r15 + 0x48, 0x8d, 0x0c, 0x55, 0x00, 0x00, 0x00, 0x00, //0x0000017b leaq (,%rdx,2), %rcx + 0x48, 0x85, 0xc9, //0x00000183 testq %rcx, %rcx + 0x0f, 0x84, 0x75, 0x02, 0x00, 0x00, //0x00000186 je LBB1_19 + 0x48, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, //0x0000018c movabsq $4503599627370495, %rdi + 0x48, 0x21, 0xfa, //0x00000196 andq %rdi, %rdx + 0x85, 0xc0, //0x00000199 testl %eax, %eax + 0x0f, 0x84, 0x9c, 0x0a, 0x00, 0x00, //0x0000019b je LBB1_115 + 0x48, 0xff, 0xc7, //0x000001a1 incq %rdi + 0x48, 0x09, 0xd7, //0x000001a4 orq %rdx, %rdi + 0x8d, 0x98, 0xcd, 0xfb, 0xff, 0xff, //0x000001a7 leal $-1075(%rax), %ebx + 0x8d, 0x88, 0x01, 0xfc, 0xff, 0xff, //0x000001ad leal $-1023(%rax), %ecx + 0x83, 0xf9, 0x34, //0x000001b3 cmpl $52, %ecx + 0x0f, 0x87, 0x1d, 0x00, 0x00, 0x00, //0x000001b6 ja LBB1_5 + 0xb9, 0x33, 0x04, 0x00, 0x00, //0x000001bc movl $1075, %ecx + 0x29, 0xc1, //0x000001c1 subl %eax, %ecx + 0x48, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x000001c3 movq $-1, %rsi + 0x48, 0xd3, 0xe6, //0x000001ca shlq %cl, %rsi + 0x48, 0xf7, 0xd6, //0x000001cd notq %rsi + 0x48, 0x85, 0xf7, //0x000001d0 testq %rsi, %rdi + 0x0f, 0x84, 0x10, 0x04, 0x00, 0x00, //0x000001d3 je LBB1_43 + //0x000001d9 LBB1_5 + 0x48, 0x85, 0xd2, //0x000001d9 testq %rdx, %rdx + 0x0f, 0x94, 0xc1, //0x000001dc sete %cl + 0x83, 0xf8, 0x01, //0x000001df cmpl $1, %eax + 0x0f, 0x97, 0xc0, //0x000001e2 seta %al + 0x20, 0xc8, //0x000001e5 andb %cl, %al + 0x0f, 0xb6, 0xc0, //0x000001e7 movzbl %al, %eax + 0x48, 0x8d, 0x74, 0xb8, 0xfe, //0x000001ea leaq $-2(%rax,%rdi,4), %rsi + 0x44, 0x69, 0xcb, 0x13, 0x44, 0x13, 0x00, //0x000001ef imull $1262611, %ebx, %r9d + 0x31, 0xc9, //0x000001f6 xorl %ecx, %ecx + 0x84, 0xc0, //0x000001f8 testb %al, %al + 0xb8, 0xff, 0xfe, 0x07, 0x00, //0x000001fa movl $524031, %eax + 0x0f, 0x44, 0xc1, //0x000001ff cmovel %ecx, %eax + 0x41, 0x29, 0xc1, //0x00000202 subl %eax, %r9d + 0x41, 0xc1, 0xf9, 0x16, //0x00000205 sarl $22, %r9d + 0x41, 0x69, 0xc9, 0xb1, 0x6c, 0xe5, 0xff, //0x00000209 imull $-1741647, %r9d, %ecx + 0xc1, 0xe9, 0x13, //0x00000210 shrl $19, %ecx + 0x01, 0xd9, //0x00000213 addl %ebx, %ecx + 0xb8, 0x24, 0x01, 0x00, 0x00, //0x00000215 movl $292, %eax + 0x44, 0x29, 0xc8, //0x0000021a subl %r9d, %eax + 0x48, 0x98, //0x0000021d cltq + 0x48, 0xc1, 0xe0, 0x04, //0x0000021f shlq $4, %rax + 0x48, 0x8d, 0x15, 0xe6, 0xca, 0x00, 0x00, //0x00000223 leaq $51942(%rip), %rdx /* _pow10_ceil_sig.g+0(%rip) */ + 0x4c, 0x8b, 0x1c, 0x10, //0x0000022a movq (%rax,%rdx), %r11 + 0x4c, 0x8b, 0x6c, 0x10, 0x08, //0x0000022e movq $8(%rax,%rdx), %r13 + 0xfe, 0xc1, //0x00000233 incb %cl + 0x48, 0xd3, 0xe6, //0x00000235 shlq %cl, %rsi + 0x48, 0x89, 0xf0, //0x00000238 movq %rsi, %rax + 0x49, 0xf7, 0xe5, //0x0000023b mulq %r13 + 0x48, 0x89, 0xd3, //0x0000023e movq %rdx, %rbx + 0x48, 0x89, 0xf0, //0x00000241 movq %rsi, %rax + 0x49, 0xf7, 0xe3, //0x00000244 mulq %r11 + 0x48, 0x8d, 0x34, 0xbd, 0x00, 0x00, 0x00, 0x00, //0x00000247 leaq (,%rdi,4), %rsi + 0x48, 0x01, 0xd8, //0x0000024f addq %rbx, %rax + 0x48, 0x83, 0xd2, 0x00, //0x00000252 adcq $0, %rdx + 0x31, 0xdb, //0x00000256 xorl %ebx, %ebx + 0x48, 0x83, 0xf8, 0x01, //0x00000258 cmpq $1, %rax + 0x0f, 0x97, 0xc3, //0x0000025c seta %bl + 0x48, 0x09, 0xd3, //0x0000025f orq %rdx, %rbx + 0x48, 0xd3, 0xe6, //0x00000262 shlq %cl, %rsi + 0x48, 0x89, 0xf0, //0x00000265 movq %rsi, %rax + 0x49, 0xf7, 0xe5, //0x00000268 mulq %r13 + 0x49, 0x89, 0xd2, //0x0000026b movq %rdx, %r10 + 0x48, 0x89, 0xf0, //0x0000026e movq %rsi, %rax + 0x49, 0xf7, 0xe3, //0x00000271 mulq %r11 + 0x49, 0x89, 0xd0, //0x00000274 movq %rdx, %r8 + 0x48, 0x8d, 0x34, 0xbd, 0x02, 0x00, 0x00, 0x00, //0x00000277 leaq $2(,%rdi,4), %rsi + 0x4c, 0x01, 0xd0, //0x0000027f addq %r10, %rax + 0x49, 0x83, 0xd0, 0x00, //0x00000282 adcq $0, %r8 + 0x45, 0x31, 0xd2, //0x00000286 xorl %r10d, %r10d + 0x48, 0x83, 0xf8, 0x01, //0x00000289 cmpq $1, %rax + 0x41, 0x0f, 0x97, 0xc2, //0x0000028d seta %r10b + 0x4d, 0x09, 0xc2, //0x00000291 orq %r8, %r10 + 0x48, 0xd3, 0xe6, //0x00000294 shlq %cl, %rsi + 0x48, 0x89, 0xf0, //0x00000297 movq %rsi, %rax + 0x49, 0xf7, 0xe5, //0x0000029a mulq %r13 + 0x48, 0x89, 0xd1, //0x0000029d movq %rdx, %rcx + 0x48, 0x89, 0xf0, //0x000002a0 movq %rsi, %rax + 0x49, 0xf7, 0xe3, //0x000002a3 mulq %r11 + 0x48, 0x01, 0xc8, //0x000002a6 addq %rcx, %rax + 0x48, 0x83, 0xd2, 0x00, //0x000002a9 adcq $0, %rdx + 0x31, 0xc9, //0x000002ad xorl %ecx, %ecx + 0x48, 0x83, 0xf8, 0x01, //0x000002af cmpq $1, %rax + 0x0f, 0x97, 0xc1, //0x000002b3 seta %cl + 0x48, 0x09, 0xd1, //0x000002b6 orq %rdx, %rcx + 0x83, 0xe7, 0x01, //0x000002b9 andl $1, %edi + 0x48, 0x01, 0xfb, //0x000002bc addq %rdi, %rbx + 0x48, 0x29, 0xf9, //0x000002bf subq %rdi, %rcx + 0x49, 0x83, 0xfa, 0x28, //0x000002c2 cmpq $40, %r10 + 0x0f, 0x82, 0x01, 0x01, 0x00, 0x00, //0x000002c6 jb LBB1_17 + 0x48, 0xba, 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x000002cc movabsq $-3689348814741910323, %rdx + 0x4c, 0x89, 0xc0, //0x000002d6 movq %r8, %rax + 0x48, 0xf7, 0xe2, //0x000002d9 mulq %rdx + 0x48, 0x89, 0xd7, //0x000002dc movq %rdx, %rdi + 0x48, 0xc1, 0xef, 0x05, //0x000002df shrq $5, %rdi + 0x48, 0x8d, 0x04, 0xfd, 0x00, 0x00, 0x00, 0x00, //0x000002e3 leaq (,%rdi,8), %rax + 0x48, 0x8d, 0x14, 0x80, //0x000002eb leaq (%rax,%rax,4), %rdx + 0x48, 0x39, 0xd3, //0x000002ef cmpq %rdx, %rbx + 0x40, 0x0f, 0x96, 0xc6, //0x000002f2 setbe %sil + 0x48, 0x8d, 0x44, 0x80, 0x28, //0x000002f6 leaq $40(%rax,%rax,4), %rax + 0x48, 0x39, 0xc8, //0x000002fb cmpq %rcx, %rax + 0x0f, 0x96, 0xc2, //0x000002fe setbe %dl + 0x40, 0x38, 0xd6, //0x00000301 cmpb %dl, %sil + 0x0f, 0x84, 0xc3, 0x00, 0x00, 0x00, //0x00000304 je LBB1_17 + 0x31, 0xd2, //0x0000030a xorl %edx, %edx + 0x48, 0x39, 0xc8, //0x0000030c cmpq %rcx, %rax + 0x0f, 0x96, 0xc2, //0x0000030f setbe %dl + 0x48, 0x01, 0xd7, //0x00000312 addq %rdx, %rdi + 0x41, 0xff, 0xc1, //0x00000315 incl %r9d + 0x48, 0xbb, 0x80, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, //0x00000318 movabsq $8589934464, %rbx + 0x48, 0x8d, 0x83, 0x7f, 0xe4, 0x0b, 0x54, //0x00000322 leaq $1410065535(%rbx), %rax + 0x48, 0x39, 0xc7, //0x00000329 cmpq %rax, %rdi + 0x0f, 0x87, 0x1e, 0x01, 0x00, 0x00, //0x0000032c ja LBB1_23 + //0x00000332 LBB1_8 + 0xba, 0x01, 0x00, 0x00, 0x00, //0x00000332 movl $1, %edx + 0x48, 0x83, 0xff, 0x0a, //0x00000337 cmpq $10, %rdi + 0x0f, 0x82, 0x9c, 0x01, 0x00, 0x00, //0x0000033b jb LBB1_30 + 0xba, 0x02, 0x00, 0x00, 0x00, //0x00000341 movl $2, %edx + 0x48, 0x83, 0xff, 0x64, //0x00000346 cmpq $100, %rdi + 0x0f, 0x82, 0x8d, 0x01, 0x00, 0x00, //0x0000034a jb LBB1_30 + 0xba, 0x03, 0x00, 0x00, 0x00, //0x00000350 movl $3, %edx + 0x48, 0x81, 0xff, 0xe8, 0x03, 0x00, 0x00, //0x00000355 cmpq $1000, %rdi + 0x0f, 0x82, 0x7b, 0x01, 0x00, 0x00, //0x0000035c jb LBB1_30 + 0xba, 0x04, 0x00, 0x00, 0x00, //0x00000362 movl $4, %edx + 0x48, 0x81, 0xff, 0x10, 0x27, 0x00, 0x00, //0x00000367 cmpq $10000, %rdi + 0x0f, 0x82, 0x69, 0x01, 0x00, 0x00, //0x0000036e jb LBB1_30 + 0xba, 0x05, 0x00, 0x00, 0x00, //0x00000374 movl $5, %edx + 0x48, 0x81, 0xff, 0xa0, 0x86, 0x01, 0x00, //0x00000379 cmpq $100000, %rdi + 0x0f, 0x82, 0x57, 0x01, 0x00, 0x00, //0x00000380 jb LBB1_30 + 0xba, 0x06, 0x00, 0x00, 0x00, //0x00000386 movl $6, %edx + 0x48, 0x81, 0xff, 0x40, 0x42, 0x0f, 0x00, //0x0000038b cmpq $1000000, %rdi + 0x0f, 0x82, 0x45, 0x01, 0x00, 0x00, //0x00000392 jb LBB1_30 + 0xba, 0x07, 0x00, 0x00, 0x00, //0x00000398 movl $7, %edx + 0x48, 0x81, 0xff, 0x80, 0x96, 0x98, 0x00, //0x0000039d cmpq $10000000, %rdi + 0x0f, 0x82, 0x33, 0x01, 0x00, 0x00, //0x000003a4 jb LBB1_30 + 0xba, 0x08, 0x00, 0x00, 0x00, //0x000003aa movl $8, %edx + 0x48, 0x81, 0xff, 0x00, 0xe1, 0xf5, 0x05, //0x000003af cmpq $100000000, %rdi + 0x0f, 0x82, 0x21, 0x01, 0x00, 0x00, //0x000003b6 jb LBB1_30 + 0x48, 0x81, 0xff, 0x00, 0xca, 0x9a, 0x3b, //0x000003bc cmpq $1000000000, %rdi + 0xba, 0x0a, 0x00, 0x00, 0x00, //0x000003c3 movl $10, %edx + 0xe9, 0x0d, 0x01, 0x00, 0x00, //0x000003c8 jmp LBB1_29 + //0x000003cd LBB1_17 + 0x4d, 0x89, 0xc3, //0x000003cd movq %r8, %r11 + 0x49, 0xc1, 0xeb, 0x02, //0x000003d0 shrq $2, %r11 + 0x4c, 0x89, 0xc2, //0x000003d4 movq %r8, %rdx + 0x48, 0x83, 0xe2, 0xfc, //0x000003d7 andq $-4, %rdx + 0x48, 0x39, 0xd3, //0x000003db cmpq %rdx, %rbx + 0x0f, 0x96, 0xc3, //0x000003de setbe %bl + 0x48, 0x8d, 0x72, 0x04, //0x000003e1 leaq $4(%rdx), %rsi + 0x48, 0x39, 0xce, //0x000003e5 cmpq %rcx, %rsi + 0x0f, 0x96, 0xc0, //0x000003e8 setbe %al + 0x38, 0xc3, //0x000003eb cmpb %al, %bl + 0x0f, 0x84, 0x20, 0x00, 0x00, 0x00, //0x000003ed je LBB1_20 + 0x31, 0xff, //0x000003f3 xorl %edi, %edi + 0x48, 0x39, 0xce, //0x000003f5 cmpq %rcx, %rsi + 0x40, 0x0f, 0x96, 0xc7, //0x000003f8 setbe %dil + 0xe9, 0x32, 0x00, 0x00, 0x00, //0x000003fc jmp LBB1_22 + //0x00000401 LBB1_19 + 0x41, 0xc6, 0x07, 0x30, //0x00000401 movb $48, (%r15) + 0x45, 0x29, 0xf7, //0x00000405 subl %r14d, %r15d + 0x41, 0xff, 0xc7, //0x00000408 incl %r15d + 0x44, 0x89, 0xfb, //0x0000040b movl %r15d, %ebx + 0xe9, 0x0f, 0x08, 0x00, 0x00, //0x0000040e jmp LBB1_113 + //0x00000413 LBB1_20 + 0x48, 0x83, 0xca, 0x02, //0x00000413 orq $2, %rdx + 0xbf, 0x01, 0x00, 0x00, 0x00, //0x00000417 movl $1, %edi + 0x49, 0x39, 0xd2, //0x0000041c cmpq %rdx, %r10 + 0x0f, 0x87, 0x0e, 0x00, 0x00, 0x00, //0x0000041f ja LBB1_22 + 0x0f, 0x94, 0xc0, //0x00000425 sete %al + 0x41, 0xc0, 0xe8, 0x02, //0x00000428 shrb $2, %r8b + 0x41, 0x20, 0xc0, //0x0000042c andb %al, %r8b + 0x41, 0x0f, 0xb6, 0xf8, //0x0000042f movzbl %r8b, %edi + //0x00000433 LBB1_22 + 0x4c, 0x01, 0xdf, //0x00000433 addq %r11, %rdi + 0x48, 0xbb, 0x80, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, //0x00000436 movabsq $8589934464, %rbx + 0x48, 0x8d, 0x83, 0x7f, 0xe4, 0x0b, 0x54, //0x00000440 leaq $1410065535(%rbx), %rax + 0x48, 0x39, 0xc7, //0x00000447 cmpq %rax, %rdi + 0x0f, 0x86, 0xe2, 0xfe, 0xff, 0xff, //0x0000044a jbe LBB1_8 + //0x00000450 LBB1_23 + 0x48, 0x89, 0xf8, //0x00000450 movq %rdi, %rax + 0x48, 0xc1, 0xe8, 0x0b, //0x00000453 shrq $11, %rax + 0xba, 0x0b, 0x00, 0x00, 0x00, //0x00000457 movl $11, %edx + 0x48, 0x3d, 0xdd, 0x0e, 0xe9, 0x02, //0x0000045c cmpq $48828125, %rax + 0x0f, 0x82, 0x75, 0x00, 0x00, 0x00, //0x00000462 jb LBB1_30 + 0x48, 0x89, 0xf8, //0x00000468 movq %rdi, %rax + 0x48, 0xc1, 0xe8, 0x0c, //0x0000046b shrq $12, %rax + 0xba, 0x0c, 0x00, 0x00, 0x00, //0x0000046f movl $12, %edx + 0x48, 0x3d, 0x51, 0x4a, 0x8d, 0x0e, //0x00000474 cmpq $244140625, %rax + 0x0f, 0x82, 0x5d, 0x00, 0x00, 0x00, //0x0000047a jb LBB1_30 + 0x48, 0x89, 0xf8, //0x00000480 movq %rdi, %rax + 0x48, 0xc1, 0xe8, 0x0d, //0x00000483 shrq $13, %rax + 0xba, 0x0d, 0x00, 0x00, 0x00, //0x00000487 movl $13, %edx + 0x48, 0x3d, 0x95, 0x73, 0xc2, 0x48, //0x0000048c cmpq $1220703125, %rax + 0x0f, 0x82, 0x45, 0x00, 0x00, 0x00, //0x00000492 jb LBB1_30 + 0xba, 0x0e, 0x00, 0x00, 0x00, //0x00000498 movl $14, %edx + 0x48, 0xb8, 0x00, 0x40, 0x7a, 0x10, 0xf3, 0x5a, 0x00, 0x00, //0x0000049d movabsq $100000000000000, %rax + 0x48, 0x39, 0xc7, //0x000004a7 cmpq %rax, %rdi + 0x0f, 0x82, 0x2d, 0x00, 0x00, 0x00, //0x000004aa jb LBB1_30 + 0xba, 0x0f, 0x00, 0x00, 0x00, //0x000004b0 movl $15, %edx + 0x48, 0xb8, 0x00, 0x80, 0xc6, 0xa4, 0x7e, 0x8d, 0x03, 0x00, //0x000004b5 movabsq $1000000000000000, %rax + 0x48, 0x39, 0xc7, //0x000004bf cmpq %rax, %rdi + 0x0f, 0x82, 0x15, 0x00, 0x00, 0x00, //0x000004c2 jb LBB1_30 + 0x48, 0xb8, 0x00, 0x00, 0xc1, 0x6f, 0xf2, 0x86, 0x23, 0x00, //0x000004c8 movabsq $10000000000000000, %rax + 0x48, 0x39, 0xc7, //0x000004d2 cmpq %rax, %rdi + 0xba, 0x11, 0x00, 0x00, 0x00, //0x000004d5 movl $17, %edx + //0x000004da LBB1_29 + 0x83, 0xda, 0x00, //0x000004da sbbl $0, %edx + //0x000004dd LBB1_30 + 0x46, 0x8d, 0x2c, 0x0a, //0x000004dd leal (%rdx,%r9), %r13d + 0x42, 0x8d, 0x44, 0x0a, 0x05, //0x000004e1 leal $5(%rdx,%r9), %eax + 0x83, 0xf8, 0x1b, //0x000004e6 cmpl $27, %eax + 0x0f, 0x82, 0x95, 0x00, 0x00, 0x00, //0x000004e9 jb LBB1_38 + 0x4d, 0x8d, 0x67, 0x01, //0x000004ef leaq $1(%r15), %r12 + 0x4c, 0x89, 0xe6, //0x000004f3 movq %r12, %rsi + 0xe8, 0xe5, 0x92, 0x00, 0x00, //0x000004f6 callq _format_significand + 0x48, 0x89, 0xc3, //0x000004fb movq %rax, %rbx + 0x90, 0x90, //0x000004fe .p2align 4, 0x90 + //0x00000500 LBB1_32 + 0x80, 0x7b, 0xff, 0x30, //0x00000500 cmpb $48, $-1(%rbx) + 0x48, 0x8d, 0x5b, 0xff, //0x00000504 leaq $-1(%rbx), %rbx + 0x0f, 0x84, 0xf2, 0xff, 0xff, 0xff, //0x00000508 je LBB1_32 + 0x41, 0x8a, 0x47, 0x01, //0x0000050e movb $1(%r15), %al + 0x41, 0x88, 0x07, //0x00000512 movb %al, (%r15) + 0x48, 0x8d, 0x43, 0x01, //0x00000515 leaq $1(%rbx), %rax + 0x48, 0x89, 0xc1, //0x00000519 movq %rax, %rcx + 0x4c, 0x29, 0xe1, //0x0000051c subq %r12, %rcx + 0x48, 0x83, 0xf9, 0x02, //0x0000051f cmpq $2, %rcx + 0x0f, 0x8c, 0x08, 0x00, 0x00, 0x00, //0x00000523 jl LBB1_35 + 0x41, 0xc6, 0x04, 0x24, 0x2e, //0x00000529 movb $46, (%r12) + 0x48, 0x89, 0xc3, //0x0000052e movq %rax, %rbx + //0x00000531 LBB1_35 + 0xc6, 0x03, 0x65, //0x00000531 movb $101, (%rbx) + 0x45, 0x85, 0xed, //0x00000534 testl %r13d, %r13d + 0x0f, 0x8e, 0x5a, 0x01, 0x00, 0x00, //0x00000537 jle LBB1_51 + 0x41, 0xff, 0xcd, //0x0000053d decl %r13d + 0xc6, 0x43, 0x01, 0x2b, //0x00000540 movb $43, $1(%rbx) + 0x44, 0x89, 0xe8, //0x00000544 movl %r13d, %eax + 0x83, 0xf8, 0x64, //0x00000547 cmpl $100, %eax + 0x0f, 0x8c, 0x5c, 0x01, 0x00, 0x00, //0x0000054a jl LBB1_52 + //0x00000550 LBB1_37 + 0x89, 0xc1, //0x00000550 movl %eax, %ecx + 0xba, 0xcd, 0xcc, 0xcc, 0xcc, //0x00000552 movl $3435973837, %edx + 0x48, 0x0f, 0xaf, 0xd1, //0x00000557 imulq %rcx, %rdx + 0x48, 0xc1, 0xea, 0x23, //0x0000055b shrq $35, %rdx + 0x8d, 0x0c, 0x12, //0x0000055f leal (%rdx,%rdx), %ecx + 0x8d, 0x0c, 0x89, //0x00000562 leal (%rcx,%rcx,4), %ecx + 0x29, 0xc8, //0x00000565 subl %ecx, %eax + 0x48, 0x8d, 0x0d, 0xd2, 0xc6, 0x00, 0x00, //0x00000567 leaq $50898(%rip), %rcx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x0c, 0x51, //0x0000056e movzwl (%rcx,%rdx,2), %ecx + 0x66, 0x89, 0x4b, 0x02, //0x00000572 movw %cx, $2(%rbx) + 0x0c, 0x30, //0x00000576 orb $48, %al + 0x88, 0x43, 0x04, //0x00000578 movb %al, $4(%rbx) + 0x48, 0x83, 0xc3, 0x05, //0x0000057b addq $5, %rbx + 0xe9, 0x9b, 0x06, 0x00, 0x00, //0x0000057f jmp LBB1_112 + //0x00000584 LBB1_38 + 0x45, 0x85, 0xc9, //0x00000584 testl %r9d, %r9d + 0x0f, 0x88, 0x42, 0x01, 0x00, 0x00, //0x00000587 js LBB1_54 + 0x4d, 0x63, 0xed, //0x0000058d movslq %r13d, %r13 + 0x4b, 0x8d, 0x1c, 0x2f, //0x00000590 leaq (%r15,%r13), %rbx + 0x4c, 0x89, 0xfe, //0x00000594 movq %r15, %rsi + 0xe8, 0xc4, 0x06, 0x00, 0x00, //0x00000597 callq _format_integer + 0x48, 0x39, 0xd8, //0x0000059c cmpq %rbx, %rax + 0x0f, 0x83, 0x7a, 0x06, 0x00, 0x00, //0x0000059f jae LBB1_112 + 0x4d, 0x01, 0xec, //0x000005a5 addq %r13, %r12 + 0x49, 0x29, 0xc4, //0x000005a8 subq %rax, %r12 + 0x4d, 0x01, 0xf4, //0x000005ab addq %r14, %r12 + 0x49, 0x81, 0xfc, 0x80, 0x00, 0x00, 0x00, //0x000005ae cmpq $128, %r12 + 0x0f, 0x82, 0x15, 0x03, 0x00, 0x00, //0x000005b5 jb LBB1_76 + 0x4c, 0x89, 0xe1, //0x000005bb movq %r12, %rcx + 0x48, 0x83, 0xe1, 0x80, //0x000005be andq $-128, %rcx + 0x48, 0x8d, 0x79, 0x80, //0x000005c2 leaq $-128(%rcx), %rdi + 0x48, 0x89, 0xfe, //0x000005c6 movq %rdi, %rsi + 0x48, 0xc1, 0xee, 0x07, //0x000005c9 shrq $7, %rsi + 0x48, 0xff, 0xc6, //0x000005cd incq %rsi + 0x89, 0xf2, //0x000005d0 movl %esi, %edx + 0x83, 0xe2, 0x03, //0x000005d2 andl $3, %edx + 0x48, 0x81, 0xff, 0x80, 0x01, 0x00, 0x00, //0x000005d5 cmpq $384, %rdi + 0x0f, 0x83, 0xf8, 0x01, 0x00, 0x00, //0x000005dc jae LBB1_69 + 0x31, 0xff, //0x000005e2 xorl %edi, %edi + 0xe9, 0x9b, 0x02, 0x00, 0x00, //0x000005e4 jmp LBB1_71 + //0x000005e9 LBB1_43 + 0x48, 0xd3, 0xef, //0x000005e9 shrq %cl, %rdi + 0x48, 0xb8, 0x80, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, //0x000005ec movabsq $8589934464, %rax + 0x48, 0x05, 0x7f, 0xe4, 0x0b, 0x54, //0x000005f6 addq $1410065535, %rax + 0x48, 0x39, 0xc7, //0x000005fc cmpq %rax, %rdi + 0x0f, 0x86, 0x3b, 0x01, 0x00, 0x00, //0x000005ff jbe LBB1_60 + 0x48, 0x89, 0xf8, //0x00000605 movq %rdi, %rax + 0x48, 0xc1, 0xe8, 0x0b, //0x00000608 shrq $11, %rax + 0xba, 0x0b, 0x00, 0x00, 0x00, //0x0000060c movl $11, %edx + 0x48, 0x3d, 0xdd, 0x0e, 0xe9, 0x02, //0x00000611 cmpq $48828125, %rax + 0x0f, 0x82, 0xad, 0x01, 0x00, 0x00, //0x00000617 jb LBB1_68 + 0x48, 0x89, 0xf8, //0x0000061d movq %rdi, %rax + 0x48, 0xc1, 0xe8, 0x0c, //0x00000620 shrq $12, %rax + 0xba, 0x0c, 0x00, 0x00, 0x00, //0x00000624 movl $12, %edx + 0x48, 0x3d, 0x51, 0x4a, 0x8d, 0x0e, //0x00000629 cmpq $244140625, %rax + 0x0f, 0x82, 0x95, 0x01, 0x00, 0x00, //0x0000062f jb LBB1_68 + 0x48, 0x89, 0xf8, //0x00000635 movq %rdi, %rax + 0x48, 0xc1, 0xe8, 0x0d, //0x00000638 shrq $13, %rax + 0xba, 0x0d, 0x00, 0x00, 0x00, //0x0000063c movl $13, %edx + 0x48, 0x3d, 0x95, 0x73, 0xc2, 0x48, //0x00000641 cmpq $1220703125, %rax + 0x0f, 0x82, 0x7d, 0x01, 0x00, 0x00, //0x00000647 jb LBB1_68 + 0xba, 0x0e, 0x00, 0x00, 0x00, //0x0000064d movl $14, %edx + 0x48, 0xb8, 0x00, 0x40, 0x7a, 0x10, 0xf3, 0x5a, 0x00, 0x00, //0x00000652 movabsq $100000000000000, %rax + 0x48, 0x39, 0xc7, //0x0000065c cmpq %rax, %rdi + 0x0f, 0x82, 0x65, 0x01, 0x00, 0x00, //0x0000065f jb LBB1_68 + 0xba, 0x0f, 0x00, 0x00, 0x00, //0x00000665 movl $15, %edx + 0x48, 0xb8, 0x00, 0x80, 0xc6, 0xa4, 0x7e, 0x8d, 0x03, 0x00, //0x0000066a movabsq $1000000000000000, %rax + 0x48, 0x39, 0xc7, //0x00000674 cmpq %rax, %rdi + 0x0f, 0x82, 0x4d, 0x01, 0x00, 0x00, //0x00000677 jb LBB1_68 + 0x48, 0xb8, 0x00, 0x00, 0xc1, 0x6f, 0xf2, 0x86, 0x23, 0x00, //0x0000067d movabsq $10000000000000000, %rax + 0x48, 0x39, 0xc7, //0x00000687 cmpq %rax, %rdi + 0xba, 0x11, 0x00, 0x00, 0x00, //0x0000068a movl $17, %edx + //0x0000068f LBB1_50 + 0x83, 0xda, 0x00, //0x0000068f sbbl $0, %edx + 0xe9, 0x33, 0x01, 0x00, 0x00, //0x00000692 jmp LBB1_68 + //0x00000697 LBB1_51 + 0xc6, 0x43, 0x01, 0x2d, //0x00000697 movb $45, $1(%rbx) + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x0000069b movl $1, %eax + 0x44, 0x29, 0xe8, //0x000006a0 subl %r13d, %eax + 0x83, 0xf8, 0x64, //0x000006a3 cmpl $100, %eax + 0x0f, 0x8d, 0xa4, 0xfe, 0xff, 0xff, //0x000006a6 jge LBB1_37 + //0x000006ac LBB1_52 + 0x83, 0xf8, 0x0a, //0x000006ac cmpl $10, %eax + 0x0f, 0x8c, 0x7d, 0x00, 0x00, 0x00, //0x000006af jl LBB1_59 + 0x48, 0x98, //0x000006b5 cltq + 0x48, 0x8d, 0x0d, 0x82, 0xc5, 0x00, 0x00, //0x000006b7 leaq $50562(%rip), %rcx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x04, 0x41, //0x000006be movzwl (%rcx,%rax,2), %eax + 0x66, 0x89, 0x43, 0x02, //0x000006c2 movw %ax, $2(%rbx) + 0x48, 0x83, 0xc3, 0x04, //0x000006c6 addq $4, %rbx + 0xe9, 0x50, 0x05, 0x00, 0x00, //0x000006ca jmp LBB1_112 + //0x000006cf LBB1_54 + 0x45, 0x85, 0xed, //0x000006cf testl %r13d, %r13d + 0x0f, 0x8f, 0x19, 0x03, 0x00, 0x00, //0x000006d2 jg LBB1_85 + 0x66, 0x41, 0xc7, 0x07, 0x30, 0x2e, //0x000006d8 movw $11824, (%r15) + 0x49, 0x83, 0xc7, 0x02, //0x000006de addq $2, %r15 + 0x45, 0x85, 0xed, //0x000006e2 testl %r13d, %r13d + 0x0f, 0x89, 0x06, 0x03, 0x00, 0x00, //0x000006e5 jns LBB1_85 + 0x31, 0xc0, //0x000006eb xorl %eax, %eax + 0x41, 0x83, 0xfd, 0x80, //0x000006ed cmpl $-128, %r13d + 0x0f, 0x87, 0xe1, 0x02, 0x00, 0x00, //0x000006f1 ja LBB1_83 + 0x45, 0x89, 0xe8, //0x000006f7 movl %r13d, %r8d + 0x41, 0xf7, 0xd0, //0x000006fa notl %r8d + 0x49, 0xff, 0xc0, //0x000006fd incq %r8 + 0x4c, 0x89, 0xc0, //0x00000700 movq %r8, %rax + 0x49, 0x89, 0xda, //0x00000703 movq %rbx, %r10 + 0x48, 0x21, 0xd8, //0x00000706 andq %rbx, %rax + 0x48, 0x8d, 0x48, 0x80, //0x00000709 leaq $-128(%rax), %rcx + 0x48, 0x89, 0xcb, //0x0000070d movq %rcx, %rbx + 0x48, 0xc1, 0xeb, 0x07, //0x00000710 shrq $7, %rbx + 0x48, 0xff, 0xc3, //0x00000714 incq %rbx + 0x41, 0x89, 0xd9, //0x00000717 movl %ebx, %r9d + 0x41, 0x83, 0xe1, 0x03, //0x0000071a andl $3, %r9d + 0x48, 0x81, 0xf9, 0x80, 0x01, 0x00, 0x00, //0x0000071e cmpq $384, %rcx + 0x0f, 0x83, 0xb9, 0x01, 0x00, 0x00, //0x00000725 jae LBB1_77 + 0x31, 0xdb, //0x0000072b xorl %ebx, %ebx + 0xe9, 0x5b, 0x02, 0x00, 0x00, //0x0000072d jmp LBB1_79 + //0x00000732 LBB1_59 + 0x04, 0x30, //0x00000732 addb $48, %al + 0x88, 0x43, 0x02, //0x00000734 movb %al, $2(%rbx) + 0x48, 0x83, 0xc3, 0x03, //0x00000737 addq $3, %rbx + 0xe9, 0xdf, 0x04, 0x00, 0x00, //0x0000073b jmp LBB1_112 + //0x00000740 LBB1_60 + 0xba, 0x01, 0x00, 0x00, 0x00, //0x00000740 movl $1, %edx + 0x48, 0x83, 0xff, 0x0a, //0x00000745 cmpq $10, %rdi + 0x0f, 0x82, 0x7b, 0x00, 0x00, 0x00, //0x00000749 jb LBB1_68 + 0xba, 0x02, 0x00, 0x00, 0x00, //0x0000074f movl $2, %edx + 0x48, 0x83, 0xff, 0x64, //0x00000754 cmpq $100, %rdi + 0x0f, 0x82, 0x6c, 0x00, 0x00, 0x00, //0x00000758 jb LBB1_68 + 0xba, 0x03, 0x00, 0x00, 0x00, //0x0000075e movl $3, %edx + 0x48, 0x81, 0xff, 0xe8, 0x03, 0x00, 0x00, //0x00000763 cmpq $1000, %rdi + 0x0f, 0x82, 0x5a, 0x00, 0x00, 0x00, //0x0000076a jb LBB1_68 + 0xba, 0x04, 0x00, 0x00, 0x00, //0x00000770 movl $4, %edx + 0x48, 0x81, 0xff, 0x10, 0x27, 0x00, 0x00, //0x00000775 cmpq $10000, %rdi + 0x0f, 0x82, 0x48, 0x00, 0x00, 0x00, //0x0000077c jb LBB1_68 + 0xba, 0x05, 0x00, 0x00, 0x00, //0x00000782 movl $5, %edx + 0x48, 0x81, 0xff, 0xa0, 0x86, 0x01, 0x00, //0x00000787 cmpq $100000, %rdi + 0x0f, 0x82, 0x36, 0x00, 0x00, 0x00, //0x0000078e jb LBB1_68 + 0xba, 0x06, 0x00, 0x00, 0x00, //0x00000794 movl $6, %edx + 0x48, 0x81, 0xff, 0x40, 0x42, 0x0f, 0x00, //0x00000799 cmpq $1000000, %rdi + 0x0f, 0x82, 0x24, 0x00, 0x00, 0x00, //0x000007a0 jb LBB1_68 + 0xba, 0x07, 0x00, 0x00, 0x00, //0x000007a6 movl $7, %edx + 0x48, 0x81, 0xff, 0x80, 0x96, 0x98, 0x00, //0x000007ab cmpq $10000000, %rdi + 0x0f, 0x82, 0x12, 0x00, 0x00, 0x00, //0x000007b2 jb LBB1_68 + 0xba, 0x08, 0x00, 0x00, 0x00, //0x000007b8 movl $8, %edx + 0x48, 0x81, 0xff, 0x00, 0xe1, 0xf5, 0x05, //0x000007bd cmpq $100000000, %rdi + 0x0f, 0x83, 0x80, 0x04, 0x00, 0x00, //0x000007c4 jae LBB1_116 + //0x000007ca LBB1_68 + 0x4c, 0x89, 0xfe, //0x000007ca movq %r15, %rsi + 0xe8, 0x8e, 0x04, 0x00, 0x00, //0x000007cd callq _format_integer + 0x48, 0x89, 0xc3, //0x000007d2 movq %rax, %rbx + 0xe9, 0x45, 0x04, 0x00, 0x00, //0x000007d5 jmp LBB1_112 + //0x000007da LBB1_69 + 0x48, 0x29, 0xd6, //0x000007da subq %rdx, %rsi + 0x31, 0xff, //0x000007dd xorl %edi, %edi + 0xc5, 0xfd, 0x6f, 0x05, 0x39, 0xf9, 0xff, 0xff, //0x000007df vmovdqa $-1735(%rip), %ymm0 /* LCPI1_0+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000007e7 .p2align 4, 0x90 + //0x000007f0 LBB1_70 + 0xc5, 0xfe, 0x7f, 0x04, 0x38, //0x000007f0 vmovdqu %ymm0, (%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x44, 0x38, 0x20, //0x000007f5 vmovdqu %ymm0, $32(%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x44, 0x38, 0x40, //0x000007fb vmovdqu %ymm0, $64(%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x44, 0x38, 0x60, //0x00000801 vmovdqu %ymm0, $96(%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0x80, 0x00, 0x00, 0x00, //0x00000807 vmovdqu %ymm0, $128(%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0xa0, 0x00, 0x00, 0x00, //0x00000810 vmovdqu %ymm0, $160(%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0xc0, 0x00, 0x00, 0x00, //0x00000819 vmovdqu %ymm0, $192(%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0xe0, 0x00, 0x00, 0x00, //0x00000822 vmovdqu %ymm0, $224(%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0x00, 0x01, 0x00, 0x00, //0x0000082b vmovdqu %ymm0, $256(%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0x20, 0x01, 0x00, 0x00, //0x00000834 vmovdqu %ymm0, $288(%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0x40, 0x01, 0x00, 0x00, //0x0000083d vmovdqu %ymm0, $320(%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0x60, 0x01, 0x00, 0x00, //0x00000846 vmovdqu %ymm0, $352(%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0x80, 0x01, 0x00, 0x00, //0x0000084f vmovdqu %ymm0, $384(%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0xa0, 0x01, 0x00, 0x00, //0x00000858 vmovdqu %ymm0, $416(%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0xc0, 0x01, 0x00, 0x00, //0x00000861 vmovdqu %ymm0, $448(%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0xe0, 0x01, 0x00, 0x00, //0x0000086a vmovdqu %ymm0, $480(%rax,%rdi) + 0x48, 0x81, 0xc7, 0x00, 0x02, 0x00, 0x00, //0x00000873 addq $512, %rdi + 0x48, 0x83, 0xc6, 0xfc, //0x0000087a addq $-4, %rsi + 0x0f, 0x85, 0x6c, 0xff, 0xff, 0xff, //0x0000087e jne LBB1_70 + //0x00000884 LBB1_71 + 0x48, 0x85, 0xd2, //0x00000884 testq %rdx, %rdx + 0x0f, 0x84, 0x33, 0x00, 0x00, 0x00, //0x00000887 je LBB1_74 + 0x48, 0x8d, 0x74, 0x07, 0x60, //0x0000088d leaq $96(%rdi,%rax), %rsi + 0x48, 0xf7, 0xda, //0x00000892 negq %rdx + 0xc5, 0xfd, 0x6f, 0x05, 0x83, 0xf8, 0xff, 0xff, //0x00000895 vmovdqa $-1917(%rip), %ymm0 /* LCPI1_0+0(%rip) */ + 0x90, 0x90, 0x90, //0x0000089d .p2align 4, 0x90 + //0x000008a0 LBB1_73 + 0xc5, 0xfe, 0x7f, 0x46, 0xa0, //0x000008a0 vmovdqu %ymm0, $-96(%rsi) + 0xc5, 0xfe, 0x7f, 0x46, 0xc0, //0x000008a5 vmovdqu %ymm0, $-64(%rsi) + 0xc5, 0xfe, 0x7f, 0x46, 0xe0, //0x000008aa vmovdqu %ymm0, $-32(%rsi) + 0xc5, 0xfe, 0x7f, 0x06, //0x000008af vmovdqu %ymm0, (%rsi) + 0x48, 0x83, 0xee, 0x80, //0x000008b3 subq $-128, %rsi + 0x48, 0xff, 0xc2, //0x000008b7 incq %rdx + 0x0f, 0x85, 0xe0, 0xff, 0xff, 0xff, //0x000008ba jne LBB1_73 + //0x000008c0 LBB1_74 + 0x4c, 0x39, 0xe1, //0x000008c0 cmpq %r12, %rcx + 0x0f, 0x84, 0x56, 0x03, 0x00, 0x00, //0x000008c3 je LBB1_112 + 0x48, 0x01, 0xc8, //0x000008c9 addq %rcx, %rax + 0x90, 0x90, 0x90, 0x90, //0x000008cc .p2align 4, 0x90 + //0x000008d0 LBB1_76 + 0xc6, 0x00, 0x30, //0x000008d0 movb $48, (%rax) + 0x48, 0xff, 0xc0, //0x000008d3 incq %rax + 0x48, 0x39, 0xc3, //0x000008d6 cmpq %rax, %rbx + 0x0f, 0x85, 0xf1, 0xff, 0xff, 0xff, //0x000008d9 jne LBB1_76 + 0xe9, 0x3b, 0x03, 0x00, 0x00, //0x000008df jmp LBB1_112 + //0x000008e4 LBB1_77 + 0x4b, 0x8d, 0x8c, 0x34, 0xe2, 0x01, 0x00, 0x00, //0x000008e4 leaq $482(%r12,%r14), %rcx + 0x4c, 0x89, 0xce, //0x000008ec movq %r9, %rsi + 0x48, 0x29, 0xde, //0x000008ef subq %rbx, %rsi + 0x31, 0xdb, //0x000008f2 xorl %ebx, %ebx + 0xc5, 0xfd, 0x6f, 0x05, 0x24, 0xf8, 0xff, 0xff, //0x000008f4 vmovdqa $-2012(%rip), %ymm0 /* LCPI1_0+0(%rip) */ + //0x000008fc LBB1_78 + 0xc5, 0xfe, 0x7f, 0x84, 0x19, 0x20, 0xfe, 0xff, 0xff, //0x000008fc vmovdqu %ymm0, $-480(%rcx,%rbx) + 0xc5, 0xfe, 0x7f, 0x84, 0x19, 0x40, 0xfe, 0xff, 0xff, //0x00000905 vmovdqu %ymm0, $-448(%rcx,%rbx) + 0xc5, 0xfe, 0x7f, 0x84, 0x19, 0x60, 0xfe, 0xff, 0xff, //0x0000090e vmovdqu %ymm0, $-416(%rcx,%rbx) + 0xc5, 0xfe, 0x7f, 0x84, 0x19, 0x80, 0xfe, 0xff, 0xff, //0x00000917 vmovdqu %ymm0, $-384(%rcx,%rbx) + 0xc5, 0xfe, 0x7f, 0x84, 0x19, 0xa0, 0xfe, 0xff, 0xff, //0x00000920 vmovdqu %ymm0, $-352(%rcx,%rbx) + 0xc5, 0xfe, 0x7f, 0x84, 0x19, 0xc0, 0xfe, 0xff, 0xff, //0x00000929 vmovdqu %ymm0, $-320(%rcx,%rbx) + 0xc5, 0xfe, 0x7f, 0x84, 0x19, 0xe0, 0xfe, 0xff, 0xff, //0x00000932 vmovdqu %ymm0, $-288(%rcx,%rbx) + 0xc5, 0xfe, 0x7f, 0x84, 0x19, 0x00, 0xff, 0xff, 0xff, //0x0000093b vmovdqu %ymm0, $-256(%rcx,%rbx) + 0xc5, 0xfe, 0x7f, 0x84, 0x19, 0x20, 0xff, 0xff, 0xff, //0x00000944 vmovdqu %ymm0, $-224(%rcx,%rbx) + 0xc5, 0xfe, 0x7f, 0x84, 0x19, 0x40, 0xff, 0xff, 0xff, //0x0000094d vmovdqu %ymm0, $-192(%rcx,%rbx) + 0xc5, 0xfe, 0x7f, 0x84, 0x19, 0x60, 0xff, 0xff, 0xff, //0x00000956 vmovdqu %ymm0, $-160(%rcx,%rbx) + 0xc5, 0xfe, 0x7f, 0x44, 0x19, 0x80, //0x0000095f vmovdqu %ymm0, $-128(%rcx,%rbx) + 0xc5, 0xfe, 0x7f, 0x44, 0x19, 0xa0, //0x00000965 vmovdqu %ymm0, $-96(%rcx,%rbx) + 0xc5, 0xfe, 0x7f, 0x44, 0x19, 0xc0, //0x0000096b vmovdqu %ymm0, $-64(%rcx,%rbx) + 0xc5, 0xfe, 0x7f, 0x44, 0x19, 0xe0, //0x00000971 vmovdqu %ymm0, $-32(%rcx,%rbx) + 0xc5, 0xfe, 0x7f, 0x04, 0x19, //0x00000977 vmovdqu %ymm0, (%rcx,%rbx) + 0x48, 0x81, 0xc3, 0x00, 0x02, 0x00, 0x00, //0x0000097c addq $512, %rbx + 0x48, 0x83, 0xc6, 0x04, //0x00000983 addq $4, %rsi + 0x0f, 0x85, 0x6f, 0xff, 0xff, 0xff, //0x00000987 jne LBB1_78 + //0x0000098d LBB1_79 + 0x4d, 0x85, 0xc9, //0x0000098d testq %r9, %r9 + 0x0f, 0x84, 0x33, 0x00, 0x00, 0x00, //0x00000990 je LBB1_82 + 0x4c, 0x01, 0xe3, //0x00000996 addq %r12, %rbx + 0x49, 0x8d, 0x4c, 0x1e, 0x62, //0x00000999 leaq $98(%r14,%rbx), %rcx + 0x49, 0xf7, 0xd9, //0x0000099e negq %r9 + 0xc5, 0xfd, 0x6f, 0x05, 0x77, 0xf7, 0xff, 0xff, //0x000009a1 vmovdqa $-2185(%rip), %ymm0 /* LCPI1_0+0(%rip) */ + //0x000009a9 LBB1_81 + 0xc5, 0xfe, 0x7f, 0x41, 0xa0, //0x000009a9 vmovdqu %ymm0, $-96(%rcx) + 0xc5, 0xfe, 0x7f, 0x41, 0xc0, //0x000009ae vmovdqu %ymm0, $-64(%rcx) + 0xc5, 0xfe, 0x7f, 0x41, 0xe0, //0x000009b3 vmovdqu %ymm0, $-32(%rcx) + 0xc5, 0xfe, 0x7f, 0x01, //0x000009b8 vmovdqu %ymm0, (%rcx) + 0x48, 0x83, 0xe9, 0x80, //0x000009bc subq $-128, %rcx + 0x49, 0xff, 0xc1, //0x000009c0 incq %r9 + 0x0f, 0x85, 0xe0, 0xff, 0xff, 0xff, //0x000009c3 jne LBB1_81 + //0x000009c9 LBB1_82 + 0x49, 0x01, 0xc7, //0x000009c9 addq %rax, %r15 + 0x49, 0x39, 0xc0, //0x000009cc cmpq %rax, %r8 + 0x4c, 0x89, 0xd3, //0x000009cf movq %r10, %rbx + 0x0f, 0x84, 0x19, 0x00, 0x00, 0x00, //0x000009d2 je LBB1_85 + //0x000009d8 LBB1_83 + 0x44, 0x89, 0xe9, //0x000009d8 movl %r13d, %ecx + 0xf7, 0xd9, //0x000009db negl %ecx + 0x90, 0x90, 0x90, //0x000009dd .p2align 4, 0x90 + //0x000009e0 LBB1_84 + 0x41, 0xc6, 0x07, 0x30, //0x000009e0 movb $48, (%r15) + 0x49, 0xff, 0xc7, //0x000009e4 incq %r15 + 0xff, 0xc0, //0x000009e7 incl %eax + 0x39, 0xc8, //0x000009e9 cmpl %ecx, %eax + 0x0f, 0x8c, 0xef, 0xff, 0xff, 0xff, //0x000009eb jl LBB1_84 + //0x000009f1 LBB1_85 + 0x4c, 0x89, 0xfe, //0x000009f1 movq %r15, %rsi + 0xc5, 0xf8, 0x77, //0x000009f4 vzeroupper + 0xe8, 0xe4, 0x8d, 0x00, 0x00, //0x000009f7 callq _format_significand + 0x90, 0x90, 0x90, 0x90, //0x000009fc .p2align 4, 0x90 + //0x00000a00 LBB1_86 + 0x80, 0x78, 0xff, 0x30, //0x00000a00 cmpb $48, $-1(%rax) + 0x48, 0x8d, 0x40, 0xff, //0x00000a04 leaq $-1(%rax), %rax + 0x0f, 0x84, 0xf2, 0xff, 0xff, 0xff, //0x00000a08 je LBB1_86 + 0x48, 0x8d, 0x48, 0x01, //0x00000a0e leaq $1(%rax), %rcx + 0x45, 0x85, 0xed, //0x00000a12 testl %r13d, %r13d + 0x0f, 0x8e, 0x83, 0x00, 0x00, 0x00, //0x00000a15 jle LBB1_91 + 0x89, 0xca, //0x00000a1b movl %ecx, %edx + 0x44, 0x29, 0xfa, //0x00000a1d subl %r15d, %edx + 0x41, 0x39, 0xd5, //0x00000a20 cmpl %edx, %r13d + 0x0f, 0x8d, 0x21, 0x00, 0x00, 0x00, //0x00000a23 jge LBB1_92 + 0x43, 0x8d, 0x54, 0x3d, 0x00, //0x00000a29 leal (%r13,%r15), %edx + 0x29, 0xd1, //0x00000a2e subl %edx, %ecx + 0x48, 0x8d, 0x71, 0xff, //0x00000a30 leaq $-1(%rcx), %rsi + 0x89, 0xca, //0x00000a34 movl %ecx, %edx + 0x83, 0xe2, 0x03, //0x00000a36 andl $3, %edx + 0x48, 0x83, 0xfe, 0x03, //0x00000a39 cmpq $3, %rsi + 0x0f, 0x83, 0x63, 0x00, 0x00, 0x00, //0x00000a3d jae LBB1_96 + 0x31, 0xc9, //0x00000a43 xorl %ecx, %ecx + 0xe9, 0x7e, 0x00, 0x00, 0x00, //0x00000a45 jmp LBB1_99 + //0x00000a4a LBB1_92 + 0x0f, 0x8e, 0x4e, 0x00, 0x00, 0x00, //0x00000a4a jle LBB1_91 + 0x48, 0x89, 0xde, //0x00000a50 movq %rbx, %rsi + 0x45, 0x01, 0xfd, //0x00000a53 addl %r15d, %r13d + 0x41, 0x89, 0xc8, //0x00000a56 movl %ecx, %r8d + 0x41, 0xf7, 0xd0, //0x00000a59 notl %r8d + 0x45, 0x01, 0xe8, //0x00000a5c addl %r13d, %r8d + 0x31, 0xd2, //0x00000a5f xorl %edx, %edx + 0x48, 0x89, 0xcb, //0x00000a61 movq %rcx, %rbx + 0x41, 0x83, 0xf8, 0x7e, //0x00000a64 cmpl $126, %r8d + 0x0f, 0x86, 0x8f, 0x01, 0x00, 0x00, //0x00000a68 jbe LBB1_110 + 0x49, 0xff, 0xc0, //0x00000a6e incq %r8 + 0x48, 0x89, 0xf3, //0x00000a71 movq %rsi, %rbx + 0x4c, 0x21, 0xc3, //0x00000a74 andq %r8, %rbx + 0x48, 0x8d, 0x73, 0x80, //0x00000a77 leaq $-128(%rbx), %rsi + 0x48, 0x89, 0xf7, //0x00000a7b movq %rsi, %rdi + 0x48, 0xc1, 0xef, 0x07, //0x00000a7e shrq $7, %rdi + 0x48, 0xff, 0xc7, //0x00000a82 incq %rdi + 0x89, 0xfa, //0x00000a85 movl %edi, %edx + 0x83, 0xe2, 0x03, //0x00000a87 andl $3, %edx + 0x48, 0x81, 0xfe, 0x80, 0x01, 0x00, 0x00, //0x00000a8a cmpq $384, %rsi + 0x0f, 0x83, 0x75, 0x00, 0x00, 0x00, //0x00000a91 jae LBB1_104 + 0x31, 0xff, //0x00000a97 xorl %edi, %edi + 0xe9, 0x13, 0x01, 0x00, 0x00, //0x00000a99 jmp LBB1_106 + //0x00000a9e LBB1_91 + 0x48, 0x89, 0xcb, //0x00000a9e movq %rcx, %rbx + 0xe9, 0x79, 0x01, 0x00, 0x00, //0x00000aa1 jmp LBB1_112 + //0x00000aa6 LBB1_96 + 0x48, 0x89, 0xd6, //0x00000aa6 movq %rdx, %rsi + 0x48, 0x29, 0xce, //0x00000aa9 subq %rcx, %rsi + 0x31, 0xc9, //0x00000aac xorl %ecx, %ecx + 0x90, 0x90, //0x00000aae .p2align 4, 0x90 + //0x00000ab0 LBB1_97 + 0x8b, 0x7c, 0x08, 0xfd, //0x00000ab0 movl $-3(%rax,%rcx), %edi + 0x89, 0x7c, 0x08, 0xfe, //0x00000ab4 movl %edi, $-2(%rax,%rcx) + 0x48, 0x83, 0xc1, 0xfc, //0x00000ab8 addq $-4, %rcx + 0x48, 0x39, 0xce, //0x00000abc cmpq %rcx, %rsi + 0x0f, 0x85, 0xeb, 0xff, 0xff, 0xff, //0x00000abf jne LBB1_97 + 0x48, 0xf7, 0xd9, //0x00000ac5 negq %rcx + //0x00000ac8 LBB1_99 + 0x48, 0x85, 0xd2, //0x00000ac8 testq %rdx, %rdx + 0x0f, 0x84, 0x27, 0x00, 0x00, 0x00, //0x00000acb je LBB1_102 + 0x48, 0xf7, 0xd9, //0x00000ad1 negq %rcx + 0x48, 0xf7, 0xda, //0x00000ad4 negq %rdx + 0x31, 0xf6, //0x00000ad7 xorl %esi, %esi + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000ad9 .p2align 4, 0x90 + //0x00000ae0 LBB1_101 + 0x48, 0x8d, 0x3c, 0x31, //0x00000ae0 leaq (%rcx,%rsi), %rdi + 0x0f, 0xb6, 0x1c, 0x38, //0x00000ae4 movzbl (%rax,%rdi), %ebx + 0x88, 0x5c, 0x38, 0x01, //0x00000ae8 movb %bl, $1(%rax,%rdi) + 0x48, 0xff, 0xce, //0x00000aec decq %rsi + 0x48, 0x39, 0xf2, //0x00000aef cmpq %rsi, %rdx + 0x0f, 0x85, 0xe8, 0xff, 0xff, 0xff, //0x00000af2 jne LBB1_101 + //0x00000af8 LBB1_102 + 0x49, 0x63, 0xcd, //0x00000af8 movslq %r13d, %rcx + 0x41, 0xc6, 0x04, 0x0f, 0x2e, //0x00000afb movb $46, (%r15,%rcx) + 0x48, 0x83, 0xc0, 0x02, //0x00000b00 addq $2, %rax + 0x48, 0x89, 0xc3, //0x00000b04 movq %rax, %rbx + 0xe9, 0x13, 0x01, 0x00, 0x00, //0x00000b07 jmp LBB1_112 + //0x00000b0c LBB1_104 + 0x48, 0x89, 0xd6, //0x00000b0c movq %rdx, %rsi + 0x48, 0x29, 0xfe, //0x00000b0f subq %rdi, %rsi + 0x31, 0xff, //0x00000b12 xorl %edi, %edi + 0xc5, 0xfd, 0x6f, 0x05, 0x04, 0xf6, 0xff, 0xff, //0x00000b14 vmovdqa $-2556(%rip), %ymm0 /* LCPI1_0+0(%rip) */ + //0x00000b1c LBB1_105 + 0xc5, 0xfe, 0x7f, 0x44, 0x38, 0x01, //0x00000b1c vmovdqu %ymm0, $1(%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x44, 0x38, 0x21, //0x00000b22 vmovdqu %ymm0, $33(%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x44, 0x38, 0x41, //0x00000b28 vmovdqu %ymm0, $65(%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x44, 0x38, 0x61, //0x00000b2e vmovdqu %ymm0, $97(%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0x81, 0x00, 0x00, 0x00, //0x00000b34 vmovdqu %ymm0, $129(%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0xa1, 0x00, 0x00, 0x00, //0x00000b3d vmovdqu %ymm0, $161(%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0xc1, 0x00, 0x00, 0x00, //0x00000b46 vmovdqu %ymm0, $193(%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0xe1, 0x00, 0x00, 0x00, //0x00000b4f vmovdqu %ymm0, $225(%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0x01, 0x01, 0x00, 0x00, //0x00000b58 vmovdqu %ymm0, $257(%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0x21, 0x01, 0x00, 0x00, //0x00000b61 vmovdqu %ymm0, $289(%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0x41, 0x01, 0x00, 0x00, //0x00000b6a vmovdqu %ymm0, $321(%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0x61, 0x01, 0x00, 0x00, //0x00000b73 vmovdqu %ymm0, $353(%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0x81, 0x01, 0x00, 0x00, //0x00000b7c vmovdqu %ymm0, $385(%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0xa1, 0x01, 0x00, 0x00, //0x00000b85 vmovdqu %ymm0, $417(%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0xc1, 0x01, 0x00, 0x00, //0x00000b8e vmovdqu %ymm0, $449(%rax,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0xe1, 0x01, 0x00, 0x00, //0x00000b97 vmovdqu %ymm0, $481(%rax,%rdi) + 0x48, 0x81, 0xc7, 0x00, 0x02, 0x00, 0x00, //0x00000ba0 addq $512, %rdi + 0x48, 0x83, 0xc6, 0x04, //0x00000ba7 addq $4, %rsi + 0x0f, 0x85, 0x6b, 0xff, 0xff, 0xff, //0x00000bab jne LBB1_105 + //0x00000bb1 LBB1_106 + 0x48, 0x89, 0xde, //0x00000bb1 movq %rbx, %rsi + 0x48, 0x8d, 0x5c, 0x18, 0x01, //0x00000bb4 leaq $1(%rax,%rbx), %rbx + 0x48, 0x85, 0xd2, //0x00000bb9 testq %rdx, %rdx + 0x0f, 0x84, 0x30, 0x00, 0x00, 0x00, //0x00000bbc je LBB1_109 + 0x48, 0x8d, 0x44, 0x38, 0x61, //0x00000bc2 leaq $97(%rax,%rdi), %rax + 0x48, 0xf7, 0xda, //0x00000bc7 negq %rdx + 0xc5, 0xfd, 0x6f, 0x05, 0x4e, 0xf5, 0xff, 0xff, //0x00000bca vmovdqa $-2738(%rip), %ymm0 /* LCPI1_0+0(%rip) */ + //0x00000bd2 LBB1_108 + 0xc5, 0xfe, 0x7f, 0x40, 0xa0, //0x00000bd2 vmovdqu %ymm0, $-96(%rax) + 0xc5, 0xfe, 0x7f, 0x40, 0xc0, //0x00000bd7 vmovdqu %ymm0, $-64(%rax) + 0xc5, 0xfe, 0x7f, 0x40, 0xe0, //0x00000bdc vmovdqu %ymm0, $-32(%rax) + 0xc5, 0xfe, 0x7f, 0x00, //0x00000be1 vmovdqu %ymm0, (%rax) + 0x48, 0x83, 0xe8, 0x80, //0x00000be5 subq $-128, %rax + 0x48, 0xff, 0xc2, //0x00000be9 incq %rdx + 0x0f, 0x85, 0xe0, 0xff, 0xff, 0xff, //0x00000bec jne LBB1_108 + //0x00000bf2 LBB1_109 + 0x89, 0xf2, //0x00000bf2 movl %esi, %edx + 0x49, 0x39, 0xf0, //0x00000bf4 cmpq %rsi, %r8 + 0x0f, 0x84, 0x22, 0x00, 0x00, 0x00, //0x00000bf7 je LBB1_112 + //0x00000bfd LBB1_110 + 0x41, 0x29, 0xd5, //0x00000bfd subl %edx, %r13d + 0x41, 0x29, 0xcd, //0x00000c00 subl %ecx, %r13d + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000c03 .p2align 4, 0x90 + //0x00000c10 LBB1_111 + 0xc6, 0x03, 0x30, //0x00000c10 movb $48, (%rbx) + 0x48, 0xff, 0xc3, //0x00000c13 incq %rbx + 0x41, 0xff, 0xcd, //0x00000c16 decl %r13d + 0x0f, 0x85, 0xf1, 0xff, 0xff, 0xff, //0x00000c19 jne LBB1_111 + //0x00000c1f LBB1_112 + 0x44, 0x29, 0xf3, //0x00000c1f subl %r14d, %ebx + //0x00000c22 LBB1_113 + 0x89, 0xd8, //0x00000c22 movl %ebx, %eax + 0x48, 0x83, 0xc4, 0x08, //0x00000c24 addq $8, %rsp + 0x5b, //0x00000c28 popq %rbx + 0x41, 0x5c, //0x00000c29 popq %r12 + 0x41, 0x5d, //0x00000c2b popq %r13 + 0x41, 0x5e, //0x00000c2d popq %r14 + 0x41, 0x5f, //0x00000c2f popq %r15 + 0x5d, //0x00000c31 popq %rbp + 0xc5, 0xf8, 0x77, //0x00000c32 vzeroupper + 0xc3, //0x00000c35 retq + //0x00000c36 LBB1_114 + 0x31, 0xdb, //0x00000c36 xorl %ebx, %ebx + 0xe9, 0xe5, 0xff, 0xff, 0xff, //0x00000c38 jmp LBB1_113 + //0x00000c3d LBB1_115 + 0xbb, 0xce, 0xfb, 0xff, 0xff, //0x00000c3d movl $-1074, %ebx + 0x48, 0x89, 0xd7, //0x00000c42 movq %rdx, %rdi + 0xe9, 0x8f, 0xf5, 0xff, 0xff, //0x00000c45 jmp LBB1_5 + //0x00000c4a LBB1_116 + 0x48, 0x81, 0xff, 0x00, 0xca, 0x9a, 0x3b, //0x00000c4a cmpq $1000000000, %rdi + 0xba, 0x0a, 0x00, 0x00, 0x00, //0x00000c51 movl $10, %edx + 0xe9, 0x34, 0xfa, 0xff, 0xff, //0x00000c56 jmp LBB1_50 + 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000c5b .p2align 4, 0x90 + //0x00000c60 _format_integer + 0x55, //0x00000c60 pushq %rbp + 0x48, 0x89, 0xe5, //0x00000c61 movq %rsp, %rbp + 0x53, //0x00000c64 pushq %rbx + 0x41, 0x89, 0xd0, //0x00000c65 movl %edx, %r8d + 0x49, 0x01, 0xf0, //0x00000c68 addq %rsi, %r8 + 0x48, 0x89, 0xf8, //0x00000c6b movq %rdi, %rax + 0x48, 0xc1, 0xe8, 0x20, //0x00000c6e shrq $32, %rax + 0x0f, 0x84, 0xc3, 0x00, 0x00, 0x00, //0x00000c72 je LBB2_1 + 0x48, 0xb9, 0xfd, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x00000c78 movabsq $-6067343680855748867, %rcx + 0x48, 0x89, 0xf8, //0x00000c82 movq %rdi, %rax + 0x48, 0xf7, 0xe1, //0x00000c85 mulq %rcx + 0x48, 0xc1, 0xea, 0x1a, //0x00000c88 shrq $26, %rdx + 0x69, 0xca, 0x00, 0x1f, 0x0a, 0xfa, //0x00000c8c imull $-100000000, %edx, %ecx + 0x01, 0xf9, //0x00000c92 addl %edi, %ecx + 0x41, 0xb9, 0x59, 0x17, 0xb7, 0xd1, //0x00000c94 movl $3518437209, %r9d + 0x48, 0x89, 0xc8, //0x00000c9a movq %rcx, %rax + 0x49, 0x0f, 0xaf, 0xc1, //0x00000c9d imulq %r9, %rax + 0x48, 0xc1, 0xe8, 0x2d, //0x00000ca1 shrq $45, %rax + 0x69, 0xf8, 0x10, 0x27, 0x00, 0x00, //0x00000ca5 imull $10000, %eax, %edi + 0x29, 0xf9, //0x00000cab subl %edi, %ecx + 0x48, 0x89, 0xc7, //0x00000cad movq %rax, %rdi + 0x49, 0x0f, 0xaf, 0xf9, //0x00000cb0 imulq %r9, %rdi + 0x48, 0xc1, 0xef, 0x2d, //0x00000cb4 shrq $45, %rdi + 0x69, 0xff, 0x10, 0x27, 0x00, 0x00, //0x00000cb8 imull $10000, %edi, %edi + 0x29, 0xf8, //0x00000cbe subl %edi, %eax + 0x0f, 0xb7, 0xf9, //0x00000cc0 movzwl %cx, %edi + 0xc1, 0xef, 0x02, //0x00000cc3 shrl $2, %edi + 0x44, 0x69, 0xcf, 0x7b, 0x14, 0x00, 0x00, //0x00000cc6 imull $5243, %edi, %r9d + 0x41, 0xc1, 0xe9, 0x11, //0x00000ccd shrl $17, %r9d + 0x41, 0x6b, 0xf9, 0x64, //0x00000cd1 imull $100, %r9d, %edi + 0x29, 0xf9, //0x00000cd5 subl %edi, %ecx + 0x44, 0x0f, 0xb7, 0xd1, //0x00000cd7 movzwl %cx, %r10d + 0x0f, 0xb7, 0xf8, //0x00000cdb movzwl %ax, %edi + 0xc1, 0xef, 0x02, //0x00000cde shrl $2, %edi + 0x69, 0xff, 0x7b, 0x14, 0x00, 0x00, //0x00000ce1 imull $5243, %edi, %edi + 0xc1, 0xef, 0x11, //0x00000ce7 shrl $17, %edi + 0x6b, 0xcf, 0x64, //0x00000cea imull $100, %edi, %ecx + 0x29, 0xc8, //0x00000ced subl %ecx, %eax + 0x44, 0x0f, 0xb7, 0xd8, //0x00000cef movzwl %ax, %r11d + 0x48, 0x8d, 0x0d, 0x46, 0xbf, 0x00, 0x00, //0x00000cf3 leaq $48966(%rip), %rcx /* _Digits+0(%rip) */ + 0x42, 0x0f, 0xb7, 0x04, 0x51, //0x00000cfa movzwl (%rcx,%r10,2), %eax + 0x66, 0x41, 0x89, 0x40, 0xfe, //0x00000cff movw %ax, $-2(%r8) + 0x42, 0x0f, 0xb7, 0x04, 0x49, //0x00000d04 movzwl (%rcx,%r9,2), %eax + 0x66, 0x41, 0x89, 0x40, 0xfc, //0x00000d09 movw %ax, $-4(%r8) + 0x42, 0x0f, 0xb7, 0x04, 0x59, //0x00000d0e movzwl (%rcx,%r11,2), %eax + 0x66, 0x41, 0x89, 0x40, 0xfa, //0x00000d13 movw %ax, $-6(%r8) + 0x4d, 0x8d, 0x58, 0xf8, //0x00000d18 leaq $-8(%r8), %r11 + 0x0f, 0xb7, 0x0c, 0x79, //0x00000d1c movzwl (%rcx,%rdi,2), %ecx + 0x66, 0x41, 0x89, 0x48, 0xf8, //0x00000d20 movw %cx, $-8(%r8) + 0x48, 0x89, 0xd7, //0x00000d25 movq %rdx, %rdi + 0x81, 0xff, 0x10, 0x27, 0x00, 0x00, //0x00000d28 cmpl $10000, %edi + 0x0f, 0x83, 0x16, 0x00, 0x00, 0x00, //0x00000d2e jae LBB2_5 + //0x00000d34 LBB2_4 + 0x89, 0xfa, //0x00000d34 movl %edi, %edx + 0xe9, 0x6d, 0x00, 0x00, 0x00, //0x00000d36 jmp LBB2_7 + //0x00000d3b LBB2_1 + 0x4d, 0x89, 0xc3, //0x00000d3b movq %r8, %r11 + 0x81, 0xff, 0x10, 0x27, 0x00, 0x00, //0x00000d3e cmpl $10000, %edi + 0x0f, 0x82, 0xea, 0xff, 0xff, 0xff, //0x00000d44 jb LBB2_4 + //0x00000d4a LBB2_5 + 0x41, 0xb9, 0x59, 0x17, 0xb7, 0xd1, //0x00000d4a movl $3518437209, %r9d + 0x4c, 0x8d, 0x15, 0xe9, 0xbe, 0x00, 0x00, //0x00000d50 leaq $48873(%rip), %r10 /* _Digits+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000d57 .p2align 4, 0x90 + //0x00000d60 LBB2_6 + 0x89, 0xfa, //0x00000d60 movl %edi, %edx + 0x49, 0x0f, 0xaf, 0xd1, //0x00000d62 imulq %r9, %rdx + 0x48, 0xc1, 0xea, 0x2d, //0x00000d66 shrq $45, %rdx + 0x69, 0xca, 0xf0, 0xd8, 0xff, 0xff, //0x00000d6a imull $-10000, %edx, %ecx + 0x01, 0xf9, //0x00000d70 addl %edi, %ecx + 0x48, 0x69, 0xc1, 0x1f, 0x85, 0xeb, 0x51, //0x00000d72 imulq $1374389535, %rcx, %rax + 0x48, 0xc1, 0xe8, 0x25, //0x00000d79 shrq $37, %rax + 0x6b, 0xd8, 0x64, //0x00000d7d imull $100, %eax, %ebx + 0x29, 0xd9, //0x00000d80 subl %ebx, %ecx + 0x41, 0x0f, 0xb7, 0x0c, 0x4a, //0x00000d82 movzwl (%r10,%rcx,2), %ecx + 0x66, 0x41, 0x89, 0x4b, 0xfe, //0x00000d87 movw %cx, $-2(%r11) + 0x41, 0x0f, 0xb7, 0x04, 0x42, //0x00000d8c movzwl (%r10,%rax,2), %eax + 0x66, 0x41, 0x89, 0x43, 0xfc, //0x00000d91 movw %ax, $-4(%r11) + 0x49, 0x83, 0xc3, 0xfc, //0x00000d96 addq $-4, %r11 + 0x81, 0xff, 0xff, 0xe0, 0xf5, 0x05, //0x00000d9a cmpl $99999999, %edi + 0x89, 0xd7, //0x00000da0 movl %edx, %edi + 0x0f, 0x87, 0xb8, 0xff, 0xff, 0xff, //0x00000da2 ja LBB2_6 + //0x00000da8 LBB2_7 + 0x83, 0xfa, 0x64, //0x00000da8 cmpl $100, %edx + 0x0f, 0x82, 0x2d, 0x00, 0x00, 0x00, //0x00000dab jb LBB2_9 + 0x0f, 0xb7, 0xc2, //0x00000db1 movzwl %dx, %eax + 0xc1, 0xe8, 0x02, //0x00000db4 shrl $2, %eax + 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x00000db7 imull $5243, %eax, %eax + 0xc1, 0xe8, 0x11, //0x00000dbd shrl $17, %eax + 0x6b, 0xc8, 0x64, //0x00000dc0 imull $100, %eax, %ecx + 0x29, 0xca, //0x00000dc3 subl %ecx, %edx + 0x0f, 0xb7, 0xca, //0x00000dc5 movzwl %dx, %ecx + 0x48, 0x8d, 0x15, 0x71, 0xbe, 0x00, 0x00, //0x00000dc8 leaq $48753(%rip), %rdx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x0c, 0x4a, //0x00000dcf movzwl (%rdx,%rcx,2), %ecx + 0x66, 0x41, 0x89, 0x4b, 0xfe, //0x00000dd3 movw %cx, $-2(%r11) + 0x49, 0x83, 0xc3, 0xfe, //0x00000dd8 addq $-2, %r11 + 0x89, 0xc2, //0x00000ddc movl %eax, %edx + //0x00000dde LBB2_9 + 0x83, 0xfa, 0x0a, //0x00000dde cmpl $10, %edx + 0x0f, 0x82, 0x18, 0x00, 0x00, 0x00, //0x00000de1 jb LBB2_11 + 0x89, 0xd0, //0x00000de7 movl %edx, %eax + 0x48, 0x8d, 0x0d, 0x50, 0xbe, 0x00, 0x00, //0x00000de9 leaq $48720(%rip), %rcx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x04, 0x41, //0x00000df0 movzwl (%rcx,%rax,2), %eax + 0x66, 0x41, 0x89, 0x43, 0xfe, //0x00000df4 movw %ax, $-2(%r11) + 0x4c, 0x89, 0xc0, //0x00000df9 movq %r8, %rax + 0x5b, //0x00000dfc popq %rbx + 0x5d, //0x00000dfd popq %rbp + 0xc3, //0x00000dfe retq + //0x00000dff LBB2_11 + 0x80, 0xc2, 0x30, //0x00000dff addb $48, %dl + 0x88, 0x16, //0x00000e02 movb %dl, (%rsi) + 0x4c, 0x89, 0xc0, //0x00000e04 movq %r8, %rax + 0x5b, //0x00000e07 popq %rbx + 0x5d, //0x00000e08 popq %rbp + 0xc3, //0x00000e09 retq + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000e0a .p2align 4, 0x90 + //0x00000e10 _i64toa + 0x48, 0x85, 0xf6, //0x00000e10 testq %rsi, %rsi + 0x0f, 0x88, 0x05, 0x00, 0x00, 0x00, //0x00000e13 js LBB3_1 + 0xe9, 0x62, 0x00, 0x00, 0x00, //0x00000e19 jmp _u64toa + //0x00000e1e LBB3_1 + 0x55, //0x00000e1e pushq %rbp + 0x48, 0x89, 0xe5, //0x00000e1f movq %rsp, %rbp + 0xc6, 0x07, 0x2d, //0x00000e22 movb $45, (%rdi) + 0x48, 0xff, 0xc7, //0x00000e25 incq %rdi + 0x48, 0xf7, 0xde, //0x00000e28 negq %rsi + 0xe8, 0x50, 0x00, 0x00, 0x00, //0x00000e2b callq _u64toa + 0xff, 0xc0, //0x00000e30 incl %eax + 0x5d, //0x00000e32 popq %rbp + 0xc3, //0x00000e33 retq + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000e34 .p2align 4, 0x00 + //0x00000e40 LCPI4_0 + 0x59, 0x17, 0xb7, 0xd1, 0x00, 0x00, 0x00, 0x00, //0x00000e40 .quad 3518437209 + 0x59, 0x17, 0xb7, 0xd1, 0x00, 0x00, 0x00, 0x00, //0x00000e48 .quad 3518437209 + //0x00000e50 LCPI4_3 + 0x0a, 0x00, //0x00000e50 .word 10 + 0x0a, 0x00, //0x00000e52 .word 10 + 0x0a, 0x00, //0x00000e54 .word 10 + 0x0a, 0x00, //0x00000e56 .word 10 + 0x0a, 0x00, //0x00000e58 .word 10 + 0x0a, 0x00, //0x00000e5a .word 10 + 0x0a, 0x00, //0x00000e5c .word 10 + 0x0a, 0x00, //0x00000e5e .word 10 + //0x00000e60 LCPI4_4 + 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, //0x00000e60 QUAD $0x3030303030303030; QUAD $0x3030303030303030 // .space 16, '0000000000000000' + //0x00000e70 .p2align 3, 0x00 + //0x00000e70 LCPI4_1 + 0xc5, 0x20, 0x7b, 0x14, 0x34, 0x33, 0x00, 0x80, //0x00000e70 .quad -9223315738079846203 + //0x00000e78 LCPI4_2 + 0x80, 0x00, 0x00, 0x08, 0x00, 0x20, 0x00, 0x80, //0x00000e78 .quad -9223336852348469120 + //0x00000e80 .p2align 4, 0x90 + //0x00000e80 _u64toa + 0x55, //0x00000e80 pushq %rbp + 0x48, 0x89, 0xe5, //0x00000e81 movq %rsp, %rbp + 0x48, 0x81, 0xfe, 0x0f, 0x27, 0x00, 0x00, //0x00000e84 cmpq $9999, %rsi + 0x0f, 0x87, 0xa2, 0x00, 0x00, 0x00, //0x00000e8b ja LBB4_8 + 0x0f, 0xb7, 0xc6, //0x00000e91 movzwl %si, %eax + 0xc1, 0xe8, 0x02, //0x00000e94 shrl $2, %eax + 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x00000e97 imull $5243, %eax, %eax + 0xc1, 0xe8, 0x11, //0x00000e9d shrl $17, %eax + 0x48, 0x8d, 0x14, 0x00, //0x00000ea0 leaq (%rax,%rax), %rdx + 0x6b, 0xc0, 0x64, //0x00000ea4 imull $100, %eax, %eax + 0x89, 0xf1, //0x00000ea7 movl %esi, %ecx + 0x29, 0xc1, //0x00000ea9 subl %eax, %ecx + 0x0f, 0xb7, 0xc1, //0x00000eab movzwl %cx, %eax + 0x48, 0x01, 0xc0, //0x00000eae addq %rax, %rax + 0x81, 0xfe, 0xe8, 0x03, 0x00, 0x00, //0x00000eb1 cmpl $1000, %esi + 0x0f, 0x82, 0x16, 0x00, 0x00, 0x00, //0x00000eb7 jb LBB4_3 + 0x48, 0x8d, 0x0d, 0x7c, 0xbd, 0x00, 0x00, //0x00000ebd leaq $48508(%rip), %rcx /* _Digits+0(%rip) */ + 0x8a, 0x0c, 0x0a, //0x00000ec4 movb (%rdx,%rcx), %cl + 0x88, 0x0f, //0x00000ec7 movb %cl, (%rdi) + 0xb9, 0x01, 0x00, 0x00, 0x00, //0x00000ec9 movl $1, %ecx + 0xe9, 0x0b, 0x00, 0x00, 0x00, //0x00000ece jmp LBB4_4 + //0x00000ed3 LBB4_3 + 0x31, 0xc9, //0x00000ed3 xorl %ecx, %ecx + 0x83, 0xfe, 0x64, //0x00000ed5 cmpl $100, %esi + 0x0f, 0x82, 0x45, 0x00, 0x00, 0x00, //0x00000ed8 jb LBB4_5 + //0x00000ede LBB4_4 + 0x0f, 0xb7, 0xd2, //0x00000ede movzwl %dx, %edx + 0x48, 0x83, 0xca, 0x01, //0x00000ee1 orq $1, %rdx + 0x48, 0x8d, 0x35, 0x54, 0xbd, 0x00, 0x00, //0x00000ee5 leaq $48468(%rip), %rsi /* _Digits+0(%rip) */ + 0x8a, 0x14, 0x32, //0x00000eec movb (%rdx,%rsi), %dl + 0x89, 0xce, //0x00000eef movl %ecx, %esi + 0xff, 0xc1, //0x00000ef1 incl %ecx + 0x88, 0x14, 0x37, //0x00000ef3 movb %dl, (%rdi,%rsi) + //0x00000ef6 LBB4_6 + 0x48, 0x8d, 0x15, 0x43, 0xbd, 0x00, 0x00, //0x00000ef6 leaq $48451(%rip), %rdx /* _Digits+0(%rip) */ + 0x8a, 0x14, 0x10, //0x00000efd movb (%rax,%rdx), %dl + 0x89, 0xce, //0x00000f00 movl %ecx, %esi + 0xff, 0xc1, //0x00000f02 incl %ecx + 0x88, 0x14, 0x37, //0x00000f04 movb %dl, (%rdi,%rsi) + //0x00000f07 LBB4_7 + 0x0f, 0xb7, 0xc0, //0x00000f07 movzwl %ax, %eax + 0x48, 0x83, 0xc8, 0x01, //0x00000f0a orq $1, %rax + 0x48, 0x8d, 0x15, 0x2b, 0xbd, 0x00, 0x00, //0x00000f0e leaq $48427(%rip), %rdx /* _Digits+0(%rip) */ + 0x8a, 0x04, 0x10, //0x00000f15 movb (%rax,%rdx), %al + 0x89, 0xca, //0x00000f18 movl %ecx, %edx + 0xff, 0xc1, //0x00000f1a incl %ecx + 0x88, 0x04, 0x17, //0x00000f1c movb %al, (%rdi,%rdx) + 0x89, 0xc8, //0x00000f1f movl %ecx, %eax + 0x5d, //0x00000f21 popq %rbp + 0xc3, //0x00000f22 retq + //0x00000f23 LBB4_5 + 0x31, 0xc9, //0x00000f23 xorl %ecx, %ecx + 0x83, 0xfe, 0x0a, //0x00000f25 cmpl $10, %esi + 0x0f, 0x83, 0xc8, 0xff, 0xff, 0xff, //0x00000f28 jae LBB4_6 + 0xe9, 0xd4, 0xff, 0xff, 0xff, //0x00000f2e jmp LBB4_7 + //0x00000f33 LBB4_8 + 0x48, 0x81, 0xfe, 0xff, 0xe0, 0xf5, 0x05, //0x00000f33 cmpq $99999999, %rsi + 0x0f, 0x87, 0x1e, 0x01, 0x00, 0x00, //0x00000f3a ja LBB4_16 + 0x89, 0xf0, //0x00000f40 movl %esi, %eax + 0xba, 0x59, 0x17, 0xb7, 0xd1, //0x00000f42 movl $3518437209, %edx + 0x48, 0x0f, 0xaf, 0xd0, //0x00000f47 imulq %rax, %rdx + 0x48, 0xc1, 0xea, 0x2d, //0x00000f4b shrq $45, %rdx + 0x44, 0x69, 0xc2, 0x10, 0x27, 0x00, 0x00, //0x00000f4f imull $10000, %edx, %r8d + 0x89, 0xf1, //0x00000f56 movl %esi, %ecx + 0x44, 0x29, 0xc1, //0x00000f58 subl %r8d, %ecx + 0x4c, 0x69, 0xd0, 0x83, 0xde, 0x1b, 0x43, //0x00000f5b imulq $1125899907, %rax, %r10 + 0x49, 0xc1, 0xea, 0x31, //0x00000f62 shrq $49, %r10 + 0x41, 0x83, 0xe2, 0xfe, //0x00000f66 andl $-2, %r10d + 0x0f, 0xb7, 0xc2, //0x00000f6a movzwl %dx, %eax + 0xc1, 0xe8, 0x02, //0x00000f6d shrl $2, %eax + 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x00000f70 imull $5243, %eax, %eax + 0xc1, 0xe8, 0x11, //0x00000f76 shrl $17, %eax + 0x6b, 0xc0, 0x64, //0x00000f79 imull $100, %eax, %eax + 0x29, 0xc2, //0x00000f7c subl %eax, %edx + 0x44, 0x0f, 0xb7, 0xca, //0x00000f7e movzwl %dx, %r9d + 0x4d, 0x01, 0xc9, //0x00000f82 addq %r9, %r9 + 0x0f, 0xb7, 0xc1, //0x00000f85 movzwl %cx, %eax + 0xc1, 0xe8, 0x02, //0x00000f88 shrl $2, %eax + 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x00000f8b imull $5243, %eax, %eax + 0xc1, 0xe8, 0x11, //0x00000f91 shrl $17, %eax + 0x4c, 0x8d, 0x04, 0x00, //0x00000f94 leaq (%rax,%rax), %r8 + 0x6b, 0xc0, 0x64, //0x00000f98 imull $100, %eax, %eax + 0x29, 0xc1, //0x00000f9b subl %eax, %ecx + 0x44, 0x0f, 0xb7, 0xd9, //0x00000f9d movzwl %cx, %r11d + 0x4d, 0x01, 0xdb, //0x00000fa1 addq %r11, %r11 + 0x81, 0xfe, 0x80, 0x96, 0x98, 0x00, //0x00000fa4 cmpl $10000000, %esi + 0x0f, 0x82, 0x17, 0x00, 0x00, 0x00, //0x00000faa jb LBB4_11 + 0x48, 0x8d, 0x05, 0x89, 0xbc, 0x00, 0x00, //0x00000fb0 leaq $48265(%rip), %rax /* _Digits+0(%rip) */ + 0x41, 0x8a, 0x04, 0x02, //0x00000fb7 movb (%r10,%rax), %al + 0x88, 0x07, //0x00000fbb movb %al, (%rdi) + 0xb9, 0x01, 0x00, 0x00, 0x00, //0x00000fbd movl $1, %ecx + 0xe9, 0x0e, 0x00, 0x00, 0x00, //0x00000fc2 jmp LBB4_12 + //0x00000fc7 LBB4_11 + 0x31, 0xc9, //0x00000fc7 xorl %ecx, %ecx + 0x81, 0xfe, 0x40, 0x42, 0x0f, 0x00, //0x00000fc9 cmpl $1000000, %esi + 0x0f, 0x82, 0x76, 0x00, 0x00, 0x00, //0x00000fcf jb LBB4_13 + //0x00000fd5 LBB4_12 + 0x44, 0x89, 0xd0, //0x00000fd5 movl %r10d, %eax + 0x48, 0x83, 0xc8, 0x01, //0x00000fd8 orq $1, %rax + 0x48, 0x8d, 0x35, 0x5d, 0xbc, 0x00, 0x00, //0x00000fdc leaq $48221(%rip), %rsi /* _Digits+0(%rip) */ + 0x8a, 0x04, 0x30, //0x00000fe3 movb (%rax,%rsi), %al + 0x89, 0xce, //0x00000fe6 movl %ecx, %esi + 0xff, 0xc1, //0x00000fe8 incl %ecx + 0x88, 0x04, 0x37, //0x00000fea movb %al, (%rdi,%rsi) + //0x00000fed LBB4_14 + 0x48, 0x8d, 0x05, 0x4c, 0xbc, 0x00, 0x00, //0x00000fed leaq $48204(%rip), %rax /* _Digits+0(%rip) */ + 0x41, 0x8a, 0x04, 0x01, //0x00000ff4 movb (%r9,%rax), %al + 0x89, 0xce, //0x00000ff8 movl %ecx, %esi + 0xff, 0xc1, //0x00000ffa incl %ecx + 0x88, 0x04, 0x37, //0x00000ffc movb %al, (%rdi,%rsi) + //0x00000fff LBB4_15 + 0x41, 0x0f, 0xb7, 0xc1, //0x00000fff movzwl %r9w, %eax + 0x48, 0x83, 0xc8, 0x01, //0x00001003 orq $1, %rax + 0x48, 0x8d, 0x35, 0x32, 0xbc, 0x00, 0x00, //0x00001007 leaq $48178(%rip), %rsi /* _Digits+0(%rip) */ + 0x8a, 0x04, 0x30, //0x0000100e movb (%rax,%rsi), %al + 0x89, 0xca, //0x00001011 movl %ecx, %edx + 0x88, 0x04, 0x3a, //0x00001013 movb %al, (%rdx,%rdi) + 0x41, 0x8a, 0x04, 0x30, //0x00001016 movb (%r8,%rsi), %al + 0x88, 0x44, 0x3a, 0x01, //0x0000101a movb %al, $1(%rdx,%rdi) + 0x41, 0x0f, 0xb7, 0xc0, //0x0000101e movzwl %r8w, %eax + 0x48, 0x83, 0xc8, 0x01, //0x00001022 orq $1, %rax + 0x8a, 0x04, 0x30, //0x00001026 movb (%rax,%rsi), %al + 0x88, 0x44, 0x3a, 0x02, //0x00001029 movb %al, $2(%rdx,%rdi) + 0x41, 0x8a, 0x04, 0x33, //0x0000102d movb (%r11,%rsi), %al + 0x88, 0x44, 0x3a, 0x03, //0x00001031 movb %al, $3(%rdx,%rdi) + 0x41, 0x0f, 0xb7, 0xc3, //0x00001035 movzwl %r11w, %eax + 0x48, 0x83, 0xc8, 0x01, //0x00001039 orq $1, %rax + 0x8a, 0x04, 0x30, //0x0000103d movb (%rax,%rsi), %al + 0x83, 0xc1, 0x05, //0x00001040 addl $5, %ecx + 0x88, 0x44, 0x3a, 0x04, //0x00001043 movb %al, $4(%rdx,%rdi) + 0x89, 0xc8, //0x00001047 movl %ecx, %eax + 0x5d, //0x00001049 popq %rbp + 0xc3, //0x0000104a retq + //0x0000104b LBB4_13 + 0x31, 0xc9, //0x0000104b xorl %ecx, %ecx + 0x81, 0xfe, 0xa0, 0x86, 0x01, 0x00, //0x0000104d cmpl $100000, %esi + 0x0f, 0x83, 0x94, 0xff, 0xff, 0xff, //0x00001053 jae LBB4_14 + 0xe9, 0xa1, 0xff, 0xff, 0xff, //0x00001059 jmp LBB4_15 + //0x0000105e LBB4_16 + 0x48, 0xb8, 0xff, 0xff, 0xc0, 0x6f, 0xf2, 0x86, 0x23, 0x00, //0x0000105e movabsq $9999999999999999, %rax + 0x48, 0x39, 0xc6, //0x00001068 cmpq %rax, %rsi + 0x0f, 0x87, 0x07, 0x01, 0x00, 0x00, //0x0000106b ja LBB4_18 + 0x48, 0xb9, 0xfd, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x00001071 movabsq $-6067343680855748867, %rcx + 0x48, 0x89, 0xf0, //0x0000107b movq %rsi, %rax + 0x48, 0xf7, 0xe1, //0x0000107e mulq %rcx + 0x48, 0xc1, 0xea, 0x1a, //0x00001081 shrq $26, %rdx + 0x69, 0xc2, 0x00, 0xe1, 0xf5, 0x05, //0x00001085 imull $100000000, %edx, %eax + 0x29, 0xc6, //0x0000108b subl %eax, %esi + 0xc5, 0xf9, 0x6e, 0xc2, //0x0000108d vmovd %edx, %xmm0 + 0xc5, 0xf9, 0x6f, 0x0d, 0xa7, 0xfd, 0xff, 0xff, //0x00001091 vmovdqa $-601(%rip), %xmm1 /* LCPI4_0+0(%rip) */ + 0xc5, 0xf9, 0xf4, 0xd1, //0x00001099 vpmuludq %xmm1, %xmm0, %xmm2 + 0xc5, 0xe9, 0x73, 0xd2, 0x2d, //0x0000109d vpsrlq $45, %xmm2, %xmm2 + 0xb8, 0x10, 0x27, 0x00, 0x00, //0x000010a2 movl $10000, %eax + 0xc4, 0xe1, 0xf9, 0x6e, 0xd8, //0x000010a7 vmovq %rax, %xmm3 + 0xc5, 0xe9, 0xf4, 0xe3, //0x000010ac vpmuludq %xmm3, %xmm2, %xmm4 + 0xc5, 0xf9, 0xfa, 0xc4, //0x000010b0 vpsubd %xmm4, %xmm0, %xmm0 + 0xc5, 0xe9, 0x61, 0xc0, //0x000010b4 vpunpcklwd %xmm0, %xmm2, %xmm0 + 0xc5, 0xf9, 0x73, 0xf0, 0x02, //0x000010b8 vpsllq $2, %xmm0, %xmm0 + 0xc5, 0xfb, 0x70, 0xc0, 0x50, //0x000010bd vpshuflw $80, %xmm0, %xmm0 + 0xc5, 0xf9, 0x70, 0xc0, 0x50, //0x000010c2 vpshufd $80, %xmm0, %xmm0 + 0xc4, 0xe2, 0x79, 0x59, 0x15, 0xa0, 0xfd, 0xff, 0xff, //0x000010c7 vpbroadcastq $-608(%rip), %xmm2 /* LCPI4_1+0(%rip) */ + 0xc4, 0xe2, 0x79, 0x59, 0x25, 0x9f, 0xfd, 0xff, 0xff, //0x000010d0 vpbroadcastq $-609(%rip), %xmm4 /* LCPI4_2+0(%rip) */ + 0xc5, 0xf9, 0xe4, 0xc2, //0x000010d9 vpmulhuw %xmm2, %xmm0, %xmm0 + 0xc5, 0xf9, 0xe4, 0xc4, //0x000010dd vpmulhuw %xmm4, %xmm0, %xmm0 + 0xc5, 0xf9, 0x6f, 0x2d, 0x67, 0xfd, 0xff, 0xff, //0x000010e1 vmovdqa $-665(%rip), %xmm5 /* LCPI4_3+0(%rip) */ + 0xc5, 0xf9, 0xd5, 0xf5, //0x000010e9 vpmullw %xmm5, %xmm0, %xmm6 + 0xc5, 0xc9, 0x73, 0xf6, 0x10, //0x000010ed vpsllq $16, %xmm6, %xmm6 + 0xc5, 0xf9, 0xf9, 0xc6, //0x000010f2 vpsubw %xmm6, %xmm0, %xmm0 + 0xc5, 0xf9, 0x6e, 0xf6, //0x000010f6 vmovd %esi, %xmm6 + 0xc5, 0xc9, 0xf4, 0xc9, //0x000010fa vpmuludq %xmm1, %xmm6, %xmm1 + 0xc5, 0xf1, 0x73, 0xd1, 0x2d, //0x000010fe vpsrlq $45, %xmm1, %xmm1 + 0xc5, 0xf1, 0xf4, 0xdb, //0x00001103 vpmuludq %xmm3, %xmm1, %xmm3 + 0xc5, 0xc9, 0xfa, 0xdb, //0x00001107 vpsubd %xmm3, %xmm6, %xmm3 + 0xc5, 0xf1, 0x61, 0xcb, //0x0000110b vpunpcklwd %xmm3, %xmm1, %xmm1 + 0xc5, 0xf1, 0x73, 0xf1, 0x02, //0x0000110f vpsllq $2, %xmm1, %xmm1 + 0xc5, 0xfb, 0x70, 0xc9, 0x50, //0x00001114 vpshuflw $80, %xmm1, %xmm1 + 0xc5, 0xf9, 0x70, 0xc9, 0x50, //0x00001119 vpshufd $80, %xmm1, %xmm1 + 0xc5, 0xf1, 0xe4, 0xca, //0x0000111e vpmulhuw %xmm2, %xmm1, %xmm1 + 0xc5, 0xf1, 0xe4, 0xcc, //0x00001122 vpmulhuw %xmm4, %xmm1, %xmm1 + 0xc5, 0xf1, 0xd5, 0xd5, //0x00001126 vpmullw %xmm5, %xmm1, %xmm2 + 0xc5, 0xe9, 0x73, 0xf2, 0x10, //0x0000112a vpsllq $16, %xmm2, %xmm2 + 0xc5, 0xf1, 0xf9, 0xca, //0x0000112f vpsubw %xmm2, %xmm1, %xmm1 + 0xc5, 0xf9, 0x67, 0xc1, //0x00001133 vpackuswb %xmm1, %xmm0, %xmm0 + 0xc5, 0xf9, 0xfc, 0x0d, 0x21, 0xfd, 0xff, 0xff, //0x00001137 vpaddb $-735(%rip), %xmm0, %xmm1 /* LCPI4_4+0(%rip) */ + 0xc5, 0xe9, 0xef, 0xd2, //0x0000113f vpxor %xmm2, %xmm2, %xmm2 + 0xc5, 0xf9, 0x74, 0xc2, //0x00001143 vpcmpeqb %xmm2, %xmm0, %xmm0 + 0xc5, 0xf9, 0xd7, 0xc0, //0x00001147 vpmovmskb %xmm0, %eax + 0x0d, 0x00, 0x80, 0x00, 0x00, //0x0000114b orl $32768, %eax + 0x35, 0xff, 0x7f, 0xff, 0xff, //0x00001150 xorl $-32769, %eax + 0x0f, 0xbc, 0xc0, //0x00001155 bsfl %eax, %eax + 0xb9, 0x10, 0x00, 0x00, 0x00, //0x00001158 movl $16, %ecx + 0x29, 0xc1, //0x0000115d subl %eax, %ecx + 0x48, 0xc1, 0xe0, 0x04, //0x0000115f shlq $4, %rax + 0x48, 0x8d, 0x15, 0x36, 0xe2, 0x00, 0x00, //0x00001163 leaq $57910(%rip), %rdx /* _VecShiftShuffles+0(%rip) */ + 0xc4, 0xe2, 0x71, 0x00, 0x04, 0x10, //0x0000116a vpshufb (%rax,%rdx), %xmm1, %xmm0 + 0xc5, 0xfa, 0x7f, 0x07, //0x00001170 vmovdqu %xmm0, (%rdi) + 0x89, 0xc8, //0x00001174 movl %ecx, %eax + 0x5d, //0x00001176 popq %rbp + 0xc3, //0x00001177 retq + //0x00001178 LBB4_18 + 0x48, 0xb9, 0x57, 0x78, 0x13, 0xb1, 0x2f, 0x65, 0xa5, 0x39, //0x00001178 movabsq $4153837486827862103, %rcx + 0x48, 0x89, 0xf0, //0x00001182 movq %rsi, %rax + 0x48, 0xf7, 0xe1, //0x00001185 mulq %rcx + 0x48, 0xc1, 0xea, 0x33, //0x00001188 shrq $51, %rdx + 0x48, 0xb8, 0x00, 0x00, 0xc1, 0x6f, 0xf2, 0x86, 0x23, 0x00, //0x0000118c movabsq $10000000000000000, %rax + 0x48, 0x0f, 0xaf, 0xc2, //0x00001196 imulq %rdx, %rax + 0x48, 0x29, 0xc6, //0x0000119a subq %rax, %rsi + 0x83, 0xfa, 0x09, //0x0000119d cmpl $9, %edx + 0x0f, 0x87, 0x0f, 0x00, 0x00, 0x00, //0x000011a0 ja LBB4_20 + 0x80, 0xc2, 0x30, //0x000011a6 addb $48, %dl + 0x88, 0x17, //0x000011a9 movb %dl, (%rdi) + 0xb9, 0x01, 0x00, 0x00, 0x00, //0x000011ab movl $1, %ecx + 0xe9, 0xba, 0x00, 0x00, 0x00, //0x000011b0 jmp LBB4_25 + //0x000011b5 LBB4_20 + 0x83, 0xfa, 0x63, //0x000011b5 cmpl $99, %edx + 0x0f, 0x87, 0x1f, 0x00, 0x00, 0x00, //0x000011b8 ja LBB4_22 + 0x89, 0xd0, //0x000011be movl %edx, %eax + 0x48, 0x8d, 0x0d, 0x79, 0xba, 0x00, 0x00, //0x000011c0 leaq $47737(%rip), %rcx /* _Digits+0(%rip) */ + 0x8a, 0x14, 0x41, //0x000011c7 movb (%rcx,%rax,2), %dl + 0x8a, 0x44, 0x41, 0x01, //0x000011ca movb $1(%rcx,%rax,2), %al + 0x88, 0x17, //0x000011ce movb %dl, (%rdi) + 0x88, 0x47, 0x01, //0x000011d0 movb %al, $1(%rdi) + 0xb9, 0x02, 0x00, 0x00, 0x00, //0x000011d3 movl $2, %ecx + 0xe9, 0x92, 0x00, 0x00, 0x00, //0x000011d8 jmp LBB4_25 + //0x000011dd LBB4_22 + 0x89, 0xd0, //0x000011dd movl %edx, %eax + 0xc1, 0xe8, 0x02, //0x000011df shrl $2, %eax + 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x000011e2 imull $5243, %eax, %eax + 0xc1, 0xe8, 0x11, //0x000011e8 shrl $17, %eax + 0x81, 0xfa, 0xe7, 0x03, 0x00, 0x00, //0x000011eb cmpl $999, %edx + 0x0f, 0x87, 0x3c, 0x00, 0x00, 0x00, //0x000011f1 ja LBB4_24 + 0x83, 0xc0, 0x30, //0x000011f7 addl $48, %eax + 0x88, 0x07, //0x000011fa movb %al, (%rdi) + 0x0f, 0xb7, 0xc2, //0x000011fc movzwl %dx, %eax + 0x89, 0xc1, //0x000011ff movl %eax, %ecx + 0xc1, 0xe9, 0x02, //0x00001201 shrl $2, %ecx + 0x69, 0xc9, 0x7b, 0x14, 0x00, 0x00, //0x00001204 imull $5243, %ecx, %ecx + 0xc1, 0xe9, 0x11, //0x0000120a shrl $17, %ecx + 0x6b, 0xc9, 0x64, //0x0000120d imull $100, %ecx, %ecx + 0x29, 0xc8, //0x00001210 subl %ecx, %eax + 0x0f, 0xb7, 0xc0, //0x00001212 movzwl %ax, %eax + 0x48, 0x8d, 0x0d, 0x24, 0xba, 0x00, 0x00, //0x00001215 leaq $47652(%rip), %rcx /* _Digits+0(%rip) */ + 0x8a, 0x14, 0x41, //0x0000121c movb (%rcx,%rax,2), %dl + 0x8a, 0x44, 0x41, 0x01, //0x0000121f movb $1(%rcx,%rax,2), %al + 0x88, 0x57, 0x01, //0x00001223 movb %dl, $1(%rdi) + 0x88, 0x47, 0x02, //0x00001226 movb %al, $2(%rdi) + 0xb9, 0x03, 0x00, 0x00, 0x00, //0x00001229 movl $3, %ecx + 0xe9, 0x3c, 0x00, 0x00, 0x00, //0x0000122e jmp LBB4_25 + //0x00001233 LBB4_24 + 0x6b, 0xc8, 0x64, //0x00001233 imull $100, %eax, %ecx + 0x29, 0xca, //0x00001236 subl %ecx, %edx + 0x0f, 0xb7, 0xc0, //0x00001238 movzwl %ax, %eax + 0x4c, 0x8d, 0x05, 0xfe, 0xb9, 0x00, 0x00, //0x0000123b leaq $47614(%rip), %r8 /* _Digits+0(%rip) */ + 0x41, 0x8a, 0x0c, 0x40, //0x00001242 movb (%r8,%rax,2), %cl + 0x41, 0x8a, 0x44, 0x40, 0x01, //0x00001246 movb $1(%r8,%rax,2), %al + 0x88, 0x0f, //0x0000124b movb %cl, (%rdi) + 0x88, 0x47, 0x01, //0x0000124d movb %al, $1(%rdi) + 0x0f, 0xb7, 0xc2, //0x00001250 movzwl %dx, %eax + 0x41, 0x8a, 0x0c, 0x40, //0x00001253 movb (%r8,%rax,2), %cl + 0x48, 0x01, 0xc0, //0x00001257 addq %rax, %rax + 0x88, 0x4f, 0x02, //0x0000125a movb %cl, $2(%rdi) + 0x83, 0xc8, 0x01, //0x0000125d orl $1, %eax + 0x0f, 0xb7, 0xc0, //0x00001260 movzwl %ax, %eax + 0x42, 0x8a, 0x04, 0x00, //0x00001263 movb (%rax,%r8), %al + 0x88, 0x47, 0x03, //0x00001267 movb %al, $3(%rdi) + 0xb9, 0x04, 0x00, 0x00, 0x00, //0x0000126a movl $4, %ecx + //0x0000126f LBB4_25 + 0x48, 0xba, 0xfd, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x0000126f movabsq $-6067343680855748867, %rdx + 0x48, 0x89, 0xf0, //0x00001279 movq %rsi, %rax + 0x48, 0xf7, 0xe2, //0x0000127c mulq %rdx + 0x48, 0xc1, 0xea, 0x1a, //0x0000127f shrq $26, %rdx + 0xc5, 0xf9, 0x6e, 0xc2, //0x00001283 vmovd %edx, %xmm0 + 0xc5, 0xf9, 0x6f, 0x0d, 0xb1, 0xfb, 0xff, 0xff, //0x00001287 vmovdqa $-1103(%rip), %xmm1 /* LCPI4_0+0(%rip) */ + 0xc5, 0xf9, 0xf4, 0xd1, //0x0000128f vpmuludq %xmm1, %xmm0, %xmm2 + 0xc5, 0xe9, 0x73, 0xd2, 0x2d, //0x00001293 vpsrlq $45, %xmm2, %xmm2 + 0xb8, 0x10, 0x27, 0x00, 0x00, //0x00001298 movl $10000, %eax + 0xc4, 0xe1, 0xf9, 0x6e, 0xd8, //0x0000129d vmovq %rax, %xmm3 + 0xc5, 0xe9, 0xf4, 0xe3, //0x000012a2 vpmuludq %xmm3, %xmm2, %xmm4 + 0xc5, 0xf9, 0xfa, 0xc4, //0x000012a6 vpsubd %xmm4, %xmm0, %xmm0 + 0xc5, 0xe9, 0x61, 0xc0, //0x000012aa vpunpcklwd %xmm0, %xmm2, %xmm0 + 0xc5, 0xf9, 0x73, 0xf0, 0x02, //0x000012ae vpsllq $2, %xmm0, %xmm0 + 0xc5, 0xfb, 0x70, 0xc0, 0x50, //0x000012b3 vpshuflw $80, %xmm0, %xmm0 + 0xc4, 0xe2, 0x79, 0x59, 0x15, 0xaf, 0xfb, 0xff, 0xff, //0x000012b8 vpbroadcastq $-1105(%rip), %xmm2 /* LCPI4_1+0(%rip) */ + 0xc5, 0xf9, 0x70, 0xc0, 0x50, //0x000012c1 vpshufd $80, %xmm0, %xmm0 + 0xc5, 0xf9, 0xe4, 0xc2, //0x000012c6 vpmulhuw %xmm2, %xmm0, %xmm0 + 0xc4, 0xe2, 0x79, 0x59, 0x25, 0xa5, 0xfb, 0xff, 0xff, //0x000012ca vpbroadcastq $-1115(%rip), %xmm4 /* LCPI4_2+0(%rip) */ + 0xc5, 0xf9, 0xe4, 0xc4, //0x000012d3 vpmulhuw %xmm4, %xmm0, %xmm0 + 0xc5, 0xf9, 0x6f, 0x2d, 0x71, 0xfb, 0xff, 0xff, //0x000012d7 vmovdqa $-1167(%rip), %xmm5 /* LCPI4_3+0(%rip) */ + 0xc5, 0xf9, 0xd5, 0xf5, //0x000012df vpmullw %xmm5, %xmm0, %xmm6 + 0xc5, 0xc9, 0x73, 0xf6, 0x10, //0x000012e3 vpsllq $16, %xmm6, %xmm6 + 0xc5, 0xf9, 0xf9, 0xc6, //0x000012e8 vpsubw %xmm6, %xmm0, %xmm0 + 0x69, 0xc2, 0x00, 0xe1, 0xf5, 0x05, //0x000012ec imull $100000000, %edx, %eax + 0x29, 0xc6, //0x000012f2 subl %eax, %esi + 0xc5, 0xf9, 0x6e, 0xf6, //0x000012f4 vmovd %esi, %xmm6 + 0xc5, 0xc9, 0xf4, 0xc9, //0x000012f8 vpmuludq %xmm1, %xmm6, %xmm1 + 0xc5, 0xf1, 0x73, 0xd1, 0x2d, //0x000012fc vpsrlq $45, %xmm1, %xmm1 + 0xc5, 0xf1, 0xf4, 0xdb, //0x00001301 vpmuludq %xmm3, %xmm1, %xmm3 + 0xc5, 0xc9, 0xfa, 0xdb, //0x00001305 vpsubd %xmm3, %xmm6, %xmm3 + 0xc5, 0xf1, 0x61, 0xcb, //0x00001309 vpunpcklwd %xmm3, %xmm1, %xmm1 + 0xc5, 0xf1, 0x73, 0xf1, 0x02, //0x0000130d vpsllq $2, %xmm1, %xmm1 + 0xc5, 0xfb, 0x70, 0xc9, 0x50, //0x00001312 vpshuflw $80, %xmm1, %xmm1 + 0xc5, 0xf9, 0x70, 0xc9, 0x50, //0x00001317 vpshufd $80, %xmm1, %xmm1 + 0xc5, 0xf1, 0xe4, 0xca, //0x0000131c vpmulhuw %xmm2, %xmm1, %xmm1 + 0xc5, 0xf1, 0xe4, 0xcc, //0x00001320 vpmulhuw %xmm4, %xmm1, %xmm1 + 0xc5, 0xf1, 0xd5, 0xd5, //0x00001324 vpmullw %xmm5, %xmm1, %xmm2 + 0xc5, 0xe9, 0x73, 0xf2, 0x10, //0x00001328 vpsllq $16, %xmm2, %xmm2 + 0xc5, 0xf1, 0xf9, 0xca, //0x0000132d vpsubw %xmm2, %xmm1, %xmm1 + 0xc5, 0xf9, 0x67, 0xc1, //0x00001331 vpackuswb %xmm1, %xmm0, %xmm0 + 0xc5, 0xf9, 0xfc, 0x05, 0x23, 0xfb, 0xff, 0xff, //0x00001335 vpaddb $-1245(%rip), %xmm0, %xmm0 /* LCPI4_4+0(%rip) */ + 0x89, 0xc8, //0x0000133d movl %ecx, %eax + 0xc5, 0xfa, 0x7f, 0x04, 0x07, //0x0000133f vmovdqu %xmm0, (%rdi,%rax) + 0x83, 0xc9, 0x10, //0x00001344 orl $16, %ecx + 0x89, 0xc8, //0x00001347 movl %ecx, %eax + 0x5d, //0x00001349 popq %rbp + 0xc3, //0x0000134a retq + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000134b .p2align 5, 0x00 + //0x00001360 LCPI5_0 + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x00001360 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x00001370 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' + //0x00001380 LCPI5_1 + 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, //0x00001380 QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' + 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, //0x00001390 QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' + //0x000013a0 LCPI5_2 + 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x000013a0 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x000013b0 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + //0x000013c0 .p2align 4, 0x00 + //0x000013c0 LCPI5_3 + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x000013c0 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' + //0x000013d0 LCPI5_4 + 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, //0x000013d0 QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' + //0x000013e0 LCPI5_5 + 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x000013e0 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + //0x000013f0 .p2align 4, 0x90 + //0x000013f0 _quote + 0x55, //0x000013f0 pushq %rbp + 0x48, 0x89, 0xe5, //0x000013f1 movq %rsp, %rbp + 0x41, 0x57, //0x000013f4 pushq %r15 + 0x41, 0x56, //0x000013f6 pushq %r14 + 0x41, 0x55, //0x000013f8 pushq %r13 + 0x41, 0x54, //0x000013fa pushq %r12 + 0x53, //0x000013fc pushq %rbx + 0x50, //0x000013fd pushq %rax + 0x49, 0x89, 0xcf, //0x000013fe movq %rcx, %r15 + 0x49, 0x89, 0xf6, //0x00001401 movq %rsi, %r14 + 0x4c, 0x8b, 0x09, //0x00001404 movq (%rcx), %r9 + 0x41, 0xf6, 0xc0, 0x01, //0x00001407 testb $1, %r8b + 0x48, 0x8d, 0x05, 0x1e, 0xe0, 0x00, 0x00, //0x0000140b leaq $57374(%rip), %rax /* __SingleQuoteTab+0(%rip) */ + 0x4c, 0x8d, 0x05, 0x17, 0xf0, 0x00, 0x00, //0x00001412 leaq $61463(%rip), %r8 /* __DoubleQuoteTab+0(%rip) */ + 0x4c, 0x0f, 0x44, 0xc0, //0x00001419 cmoveq %rax, %r8 + 0x48, 0x8d, 0x04, 0xf5, 0x00, 0x00, 0x00, 0x00, //0x0000141d leaq (,%rsi,8), %rax + 0x49, 0x39, 0xc1, //0x00001425 cmpq %rax, %r9 + 0x0f, 0x8d, 0xd8, 0x06, 0x00, 0x00, //0x00001428 jge LBB5_86 + 0x49, 0x89, 0xd4, //0x0000142e movq %rdx, %r12 + 0x49, 0x89, 0xfb, //0x00001431 movq %rdi, %r11 + 0x4d, 0x85, 0xf6, //0x00001434 testq %r14, %r14 + 0x0f, 0x84, 0x12, 0x0a, 0x00, 0x00, //0x00001437 je LBB5_118 + 0xc5, 0xfd, 0x6f, 0x25, 0x1b, 0xff, 0xff, 0xff, //0x0000143d vmovdqa $-229(%rip), %ymm4 /* LCPI5_0+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x2d, 0x33, 0xff, 0xff, 0xff, //0x00001445 vmovdqa $-205(%rip), %ymm5 /* LCPI5_1+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x35, 0x4b, 0xff, 0xff, 0xff, //0x0000144d vmovdqa $-181(%rip), %ymm6 /* LCPI5_2+0(%rip) */ + 0xc4, 0x41, 0x3d, 0x76, 0xc0, //0x00001455 vpcmpeqd %ymm8, %ymm8, %ymm8 + 0x49, 0x89, 0xfb, //0x0000145a movq %rdi, %r11 + 0x49, 0x89, 0xd4, //0x0000145d movq %rdx, %r12 + 0x48, 0x89, 0x55, 0xd0, //0x00001460 movq %rdx, $-48(%rbp) + //0x00001464 LBB5_3 + 0x49, 0x83, 0xfe, 0x1f, //0x00001464 cmpq $31, %r14 + 0x0f, 0x9f, 0xc1, //0x00001468 setg %cl + 0x4d, 0x89, 0xca, //0x0000146b movq %r9, %r10 + 0x4c, 0x89, 0xe6, //0x0000146e movq %r12, %rsi + 0x4c, 0x89, 0xf0, //0x00001471 movq %r14, %rax + 0x4d, 0x89, 0xdd, //0x00001474 movq %r11, %r13 + 0x49, 0x83, 0xf9, 0x20, //0x00001477 cmpq $32, %r9 + 0x0f, 0x8c, 0x8f, 0x00, 0x00, 0x00, //0x0000147b jl LBB5_9 + 0x49, 0x83, 0xfe, 0x20, //0x00001481 cmpq $32, %r14 + 0x0f, 0x8c, 0x85, 0x00, 0x00, 0x00, //0x00001485 jl LBB5_9 + 0x4d, 0x89, 0xdd, //0x0000148b movq %r11, %r13 + 0x4c, 0x89, 0xf0, //0x0000148e movq %r14, %rax + 0x4c, 0x89, 0xe6, //0x00001491 movq %r12, %rsi + 0x4c, 0x89, 0xcb, //0x00001494 movq %r9, %rbx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001497 .p2align 4, 0x90 + //0x000014a0 LBB5_6 + 0xc4, 0xc1, 0x7e, 0x6f, 0x45, 0x00, //0x000014a0 vmovdqu (%r13), %ymm0 + 0xc5, 0xdd, 0x64, 0xc8, //0x000014a6 vpcmpgtb %ymm0, %ymm4, %ymm1 + 0xc5, 0xfd, 0x74, 0xd5, //0x000014aa vpcmpeqb %ymm5, %ymm0, %ymm2 + 0xc5, 0xfd, 0x74, 0xde, //0x000014ae vpcmpeqb %ymm6, %ymm0, %ymm3 + 0xc5, 0xe5, 0xeb, 0xd2, //0x000014b2 vpor %ymm2, %ymm3, %ymm2 + 0xc5, 0xfe, 0x7f, 0x06, //0x000014b6 vmovdqu %ymm0, (%rsi) + 0xc4, 0xc1, 0x7d, 0x64, 0xc0, //0x000014ba vpcmpgtb %ymm8, %ymm0, %ymm0 + 0xc5, 0xfd, 0xdb, 0xc1, //0x000014bf vpand %ymm1, %ymm0, %ymm0 + 0xc5, 0xed, 0xeb, 0xc0, //0x000014c3 vpor %ymm0, %ymm2, %ymm0 + 0xc5, 0xfd, 0xd7, 0xc8, //0x000014c7 vpmovmskb %ymm0, %ecx + 0x85, 0xc9, //0x000014cb testl %ecx, %ecx + 0x0f, 0x85, 0xf7, 0x01, 0x00, 0x00, //0x000014cd jne LBB5_19 + 0x49, 0x83, 0xc5, 0x20, //0x000014d3 addq $32, %r13 + 0x48, 0x83, 0xc6, 0x20, //0x000014d7 addq $32, %rsi + 0x4c, 0x8d, 0x53, 0xe0, //0x000014db leaq $-32(%rbx), %r10 + 0x48, 0x83, 0xf8, 0x3f, //0x000014df cmpq $63, %rax + 0x0f, 0x9f, 0xc1, //0x000014e3 setg %cl + 0x48, 0x83, 0xf8, 0x40, //0x000014e6 cmpq $64, %rax + 0x48, 0x8d, 0x40, 0xe0, //0x000014ea leaq $-32(%rax), %rax + 0x0f, 0x8c, 0x1c, 0x00, 0x00, 0x00, //0x000014ee jl LBB5_9 + 0x48, 0x83, 0xfb, 0x3f, //0x000014f4 cmpq $63, %rbx + 0x4c, 0x89, 0xd3, //0x000014f8 movq %r10, %rbx + 0x0f, 0x8f, 0x9f, 0xff, 0xff, 0xff, //0x000014fb jg LBB5_6 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001501 .p2align 4, 0x90 + //0x00001510 LBB5_9 + 0x84, 0xc9, //0x00001510 testb %cl, %cl + 0x0f, 0x84, 0x7e, 0x00, 0x00, 0x00, //0x00001512 je LBB5_13 + 0xc4, 0xc1, 0x7e, 0x6f, 0x45, 0x00, //0x00001518 vmovdqu (%r13), %ymm0 + 0xc5, 0xdd, 0x64, 0xc8, //0x0000151e vpcmpgtb %ymm0, %ymm4, %ymm1 + 0xc5, 0xfd, 0x74, 0xd5, //0x00001522 vpcmpeqb %ymm5, %ymm0, %ymm2 + 0xc5, 0xfd, 0x74, 0xde, //0x00001526 vpcmpeqb %ymm6, %ymm0, %ymm3 + 0xc5, 0xe5, 0xeb, 0xd2, //0x0000152a vpor %ymm2, %ymm3, %ymm2 + 0xc4, 0xc1, 0x7d, 0x64, 0xc0, //0x0000152e vpcmpgtb %ymm8, %ymm0, %ymm0 + 0xc5, 0xfd, 0xdb, 0xc1, //0x00001533 vpand %ymm1, %ymm0, %ymm0 + 0xc5, 0xed, 0xeb, 0xc0, //0x00001537 vpor %ymm0, %ymm2, %ymm0 + 0xc5, 0xfd, 0xd7, 0xc0, //0x0000153b vpmovmskb %ymm0, %eax + 0x48, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x0000153f movabsq $4294967296, %rcx + 0x48, 0x09, 0xc8, //0x00001549 orq %rcx, %rax + 0x48, 0x0f, 0xbc, 0xc8, //0x0000154c bsfq %rax, %rcx + 0xc4, 0xc1, 0x7a, 0x6f, 0x45, 0x00, //0x00001550 vmovdqu (%r13), %xmm0 + 0xc4, 0xe3, 0xf9, 0x16, 0xc0, 0x01, //0x00001556 vpextrq $1, %xmm0, %rax + 0xc4, 0xe1, 0xf9, 0x7e, 0xc3, //0x0000155c vmovq %xmm0, %rbx + 0x4c, 0x39, 0xd1, //0x00001561 cmpq %r10, %rcx + 0x0f, 0x8e, 0x6f, 0x01, 0x00, 0x00, //0x00001564 jle LBB5_20 + 0x49, 0x83, 0xfa, 0x10, //0x0000156a cmpq $16, %r10 + 0x0f, 0x82, 0xa5, 0x01, 0x00, 0x00, //0x0000156e jb LBB5_23 + 0x48, 0x89, 0x1e, //0x00001574 movq %rbx, (%rsi) + 0x48, 0x89, 0x46, 0x08, //0x00001577 movq %rax, $8(%rsi) + 0x49, 0x8d, 0x4d, 0x10, //0x0000157b leaq $16(%r13), %rcx + 0x48, 0x83, 0xc6, 0x10, //0x0000157f addq $16, %rsi + 0x49, 0x8d, 0x42, 0xf0, //0x00001583 leaq $-16(%r10), %rax + 0x48, 0x83, 0xf8, 0x08, //0x00001587 cmpq $8, %rax + 0x0f, 0x83, 0x98, 0x01, 0x00, 0x00, //0x0000158b jae LBB5_24 + 0xe9, 0xa5, 0x01, 0x00, 0x00, //0x00001591 jmp LBB5_25 + //0x00001596 LBB5_13 + 0x4c, 0x89, 0xfa, //0x00001596 movq %r15, %rdx + 0xc5, 0xf8, 0x77, //0x00001599 vzeroupper + 0x48, 0x83, 0xf8, 0x0f, //0x0000159c cmpq $15, %rax + 0x41, 0x0f, 0x9f, 0xc7, //0x000015a0 setg %r15b + 0x49, 0x83, 0xfa, 0x10, //0x000015a4 cmpq $16, %r10 + 0x0f, 0x8c, 0xf6, 0x01, 0x00, 0x00, //0x000015a8 jl LBB5_30 + 0x48, 0x83, 0xf8, 0x10, //0x000015ae cmpq $16, %rax + 0xc5, 0xf9, 0x6f, 0x3d, 0x06, 0xfe, 0xff, 0xff, //0x000015b2 vmovdqa $-506(%rip), %xmm7 /* LCPI5_3+0(%rip) */ + 0xc5, 0x79, 0x6f, 0x0d, 0x0e, 0xfe, 0xff, 0xff, //0x000015ba vmovdqa $-498(%rip), %xmm9 /* LCPI5_4+0(%rip) */ + 0xc5, 0x79, 0x6f, 0x15, 0x16, 0xfe, 0xff, 0xff, //0x000015c2 vmovdqa $-490(%rip), %xmm10 /* LCPI5_5+0(%rip) */ + 0xc4, 0x41, 0x21, 0x76, 0xdb, //0x000015ca vpcmpeqd %xmm11, %xmm11, %xmm11 + 0x0f, 0x8c, 0x1a, 0x02, 0x00, 0x00, //0x000015cf jl LBB5_35 + 0xc5, 0xfd, 0x6f, 0x25, 0x83, 0xfd, 0xff, 0xff, //0x000015d5 vmovdqa $-637(%rip), %ymm4 /* LCPI5_0+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x2d, 0x9b, 0xfd, 0xff, 0xff, //0x000015dd vmovdqa $-613(%rip), %ymm5 /* LCPI5_1+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x35, 0xb3, 0xfd, 0xff, 0xff, //0x000015e5 vmovdqa $-589(%rip), %ymm6 /* LCPI5_2+0(%rip) */ + 0xc4, 0x41, 0x3d, 0x76, 0xc0, //0x000015ed vpcmpeqd %ymm8, %ymm8, %ymm8 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000015f2 .p2align 4, 0x90 + //0x00001600 LBB5_16 + 0xc4, 0xc1, 0x7a, 0x6f, 0x45, 0x00, //0x00001600 vmovdqu (%r13), %xmm0 + 0xc5, 0xc1, 0x64, 0xc8, //0x00001606 vpcmpgtb %xmm0, %xmm7, %xmm1 + 0xc5, 0xb1, 0x74, 0xd0, //0x0000160a vpcmpeqb %xmm0, %xmm9, %xmm2 + 0xc5, 0xa9, 0x74, 0xd8, //0x0000160e vpcmpeqb %xmm0, %xmm10, %xmm3 + 0xc5, 0xe1, 0xeb, 0xd2, //0x00001612 vpor %xmm2, %xmm3, %xmm2 + 0xc5, 0xfa, 0x7f, 0x06, //0x00001616 vmovdqu %xmm0, (%rsi) + 0xc4, 0xc1, 0x79, 0x64, 0xc3, //0x0000161a vpcmpgtb %xmm11, %xmm0, %xmm0 + 0xc5, 0xf9, 0xdb, 0xc1, //0x0000161f vpand %xmm1, %xmm0, %xmm0 + 0xc5, 0xe9, 0xeb, 0xc0, //0x00001623 vpor %xmm0, %xmm2, %xmm0 + 0xc5, 0xf9, 0xd7, 0xc8, //0x00001627 vpmovmskb %xmm0, %ecx + 0x66, 0x85, 0xc9, //0x0000162b testw %cx, %cx + 0x0f, 0x85, 0xd0, 0x00, 0x00, 0x00, //0x0000162e jne LBB5_22 + 0x49, 0x83, 0xc5, 0x10, //0x00001634 addq $16, %r13 + 0x48, 0x83, 0xc6, 0x10, //0x00001638 addq $16, %rsi + 0x49, 0x8d, 0x4a, 0xf0, //0x0000163c leaq $-16(%r10), %rcx + 0x48, 0x83, 0xf8, 0x1f, //0x00001640 cmpq $31, %rax + 0x41, 0x0f, 0x9f, 0xc7, //0x00001644 setg %r15b + 0x48, 0x83, 0xf8, 0x20, //0x00001648 cmpq $32, %rax + 0x48, 0x8d, 0x40, 0xf0, //0x0000164c leaq $-16(%rax), %rax + 0x0f, 0x8c, 0x0d, 0x00, 0x00, 0x00, //0x00001650 jl LBB5_31 + 0x49, 0x83, 0xfa, 0x1f, //0x00001656 cmpq $31, %r10 + 0x49, 0x89, 0xca, //0x0000165a movq %rcx, %r10 + 0x0f, 0x8f, 0x9d, 0xff, 0xff, 0xff, //0x0000165d jg LBB5_16 + //0x00001663 LBB5_31 + 0x45, 0x84, 0xff, //0x00001663 testb %r15b, %r15b + 0x0f, 0x84, 0xac, 0x01, 0x00, 0x00, //0x00001666 je LBB5_36 + //0x0000166c LBB5_32 + 0xc4, 0xc1, 0x7a, 0x6f, 0x45, 0x00, //0x0000166c vmovdqu (%r13), %xmm0 + 0xc5, 0xc1, 0x64, 0xc8, //0x00001672 vpcmpgtb %xmm0, %xmm7, %xmm1 + 0xc5, 0xb1, 0x74, 0xd0, //0x00001676 vpcmpeqb %xmm0, %xmm9, %xmm2 + 0xc5, 0xa9, 0x74, 0xd8, //0x0000167a vpcmpeqb %xmm0, %xmm10, %xmm3 + 0xc5, 0xe1, 0xeb, 0xd2, //0x0000167e vpor %xmm2, %xmm3, %xmm2 + 0xc4, 0xc1, 0x79, 0x64, 0xdb, //0x00001682 vpcmpgtb %xmm11, %xmm0, %xmm3 + 0xc5, 0xe1, 0xdb, 0xc9, //0x00001687 vpand %xmm1, %xmm3, %xmm1 + 0xc5, 0xe9, 0xeb, 0xc9, //0x0000168b vpor %xmm1, %xmm2, %xmm1 + 0xc5, 0xf9, 0xd7, 0xc1, //0x0000168f vpmovmskb %xmm1, %eax + 0x0d, 0x00, 0x00, 0x01, 0x00, //0x00001693 orl $65536, %eax + 0x0f, 0xbc, 0xd8, //0x00001698 bsfl %eax, %ebx + 0xc4, 0xe1, 0xf9, 0x7e, 0xc0, //0x0000169b vmovq %xmm0, %rax + 0x48, 0x39, 0xd9, //0x000016a0 cmpq %rbx, %rcx + 0x49, 0x89, 0xd7, //0x000016a3 movq %rdx, %r15 + 0x0f, 0x8d, 0x68, 0x02, 0x00, 0x00, //0x000016a6 jge LBB5_53 + 0x48, 0x83, 0xf9, 0x08, //0x000016ac cmpq $8, %rcx + 0x0f, 0x82, 0x83, 0x02, 0x00, 0x00, //0x000016b0 jb LBB5_56 + 0x48, 0x89, 0x06, //0x000016b6 movq %rax, (%rsi) + 0x49, 0x8d, 0x45, 0x08, //0x000016b9 leaq $8(%r13), %rax + 0x48, 0x83, 0xc6, 0x08, //0x000016bd addq $8, %rsi + 0x48, 0x8d, 0x59, 0xf8, //0x000016c1 leaq $-8(%rcx), %rbx + 0xe9, 0x75, 0x02, 0x00, 0x00, //0x000016c5 jmp LBB5_57 + //0x000016ca LBB5_19 + 0x4d, 0x29, 0xdd, //0x000016ca subq %r11, %r13 + 0x44, 0x0f, 0xbc, 0xd1, //0x000016cd bsfl %ecx, %r10d + 0x4d, 0x01, 0xea, //0x000016d1 addq %r13, %r10 + 0xe9, 0x14, 0x03, 0x00, 0x00, //0x000016d4 jmp LBB5_69 + //0x000016d9 LBB5_20 + 0x83, 0xf9, 0x10, //0x000016d9 cmpl $16, %ecx + 0x0f, 0x82, 0xaa, 0x01, 0x00, 0x00, //0x000016dc jb LBB5_42 + 0x48, 0x89, 0x1e, //0x000016e2 movq %rbx, (%rsi) + 0x48, 0x89, 0x46, 0x08, //0x000016e5 movq %rax, $8(%rsi) + 0x49, 0x8d, 0x5d, 0x10, //0x000016e9 leaq $16(%r13), %rbx + 0x48, 0x83, 0xc6, 0x10, //0x000016ed addq $16, %rsi + 0x48, 0x8d, 0x41, 0xf0, //0x000016f1 leaq $-16(%rcx), %rax + 0x48, 0x83, 0xf8, 0x08, //0x000016f5 cmpq $8, %rax + 0x0f, 0x83, 0x9d, 0x01, 0x00, 0x00, //0x000016f9 jae LBB5_43 + 0xe9, 0xaa, 0x01, 0x00, 0x00, //0x000016ff jmp LBB5_44 + //0x00001704 LBB5_22 + 0x0f, 0xb7, 0xc1, //0x00001704 movzwl %cx, %eax + 0x4d, 0x29, 0xdd, //0x00001707 subq %r11, %r13 + 0x44, 0x0f, 0xbc, 0xd0, //0x0000170a bsfl %eax, %r10d + 0x4d, 0x01, 0xea, //0x0000170e addq %r13, %r10 + 0x49, 0x89, 0xd7, //0x00001711 movq %rdx, %r15 + 0xe9, 0xd4, 0x02, 0x00, 0x00, //0x00001714 jmp LBB5_69 + //0x00001719 LBB5_23 + 0x4c, 0x89, 0xe9, //0x00001719 movq %r13, %rcx + 0x4c, 0x89, 0xd0, //0x0000171c movq %r10, %rax + 0x48, 0x83, 0xf8, 0x08, //0x0000171f cmpq $8, %rax + 0x0f, 0x82, 0x12, 0x00, 0x00, 0x00, //0x00001723 jb LBB5_25 + //0x00001729 LBB5_24 + 0x48, 0x8b, 0x11, //0x00001729 movq (%rcx), %rdx + 0x48, 0x89, 0x16, //0x0000172c movq %rdx, (%rsi) + 0x48, 0x83, 0xc1, 0x08, //0x0000172f addq $8, %rcx + 0x48, 0x83, 0xc6, 0x08, //0x00001733 addq $8, %rsi + 0x48, 0x83, 0xc0, 0xf8, //0x00001737 addq $-8, %rax + //0x0000173b LBB5_25 + 0x48, 0x83, 0xf8, 0x04, //0x0000173b cmpq $4, %rax + 0x0f, 0x8c, 0x35, 0x00, 0x00, 0x00, //0x0000173f jl LBB5_26 + 0x8b, 0x11, //0x00001745 movl (%rcx), %edx + 0x89, 0x16, //0x00001747 movl %edx, (%rsi) + 0x48, 0x83, 0xc1, 0x04, //0x00001749 addq $4, %rcx + 0x48, 0x83, 0xc6, 0x04, //0x0000174d addq $4, %rsi + 0x48, 0x83, 0xc0, 0xfc, //0x00001751 addq $-4, %rax + 0x48, 0x83, 0xf8, 0x02, //0x00001755 cmpq $2, %rax + 0x0f, 0x83, 0x25, 0x00, 0x00, 0x00, //0x00001759 jae LBB5_50 + //0x0000175f LBB5_27 + 0x48, 0x85, 0xc0, //0x0000175f testq %rax, %rax + 0x0f, 0x84, 0x04, 0x00, 0x00, 0x00, //0x00001762 je LBB5_29 + //0x00001768 LBB5_28 + 0x8a, 0x01, //0x00001768 movb (%rcx), %al + 0x88, 0x06, //0x0000176a movb %al, (%rsi) + //0x0000176c LBB5_29 + 0x4d, 0x29, 0xda, //0x0000176c subq %r11, %r10 + 0x4d, 0x01, 0xea, //0x0000176f addq %r13, %r10 + 0x49, 0xf7, 0xd2, //0x00001772 notq %r10 + 0xe9, 0x73, 0x02, 0x00, 0x00, //0x00001775 jmp LBB5_69 + //0x0000177a LBB5_26 + 0x48, 0x83, 0xf8, 0x02, //0x0000177a cmpq $2, %rax + 0x0f, 0x82, 0xdb, 0xff, 0xff, 0xff, //0x0000177e jb LBB5_27 + //0x00001784 LBB5_50 + 0x0f, 0xb7, 0x11, //0x00001784 movzwl (%rcx), %edx + 0x66, 0x89, 0x16, //0x00001787 movw %dx, (%rsi) + 0x48, 0x83, 0xc1, 0x02, //0x0000178a addq $2, %rcx + 0x48, 0x83, 0xc6, 0x02, //0x0000178e addq $2, %rsi + 0x48, 0x83, 0xc0, 0xfe, //0x00001792 addq $-2, %rax + 0x48, 0x85, 0xc0, //0x00001796 testq %rax, %rax + 0x0f, 0x85, 0xc9, 0xff, 0xff, 0xff, //0x00001799 jne LBB5_28 + 0xe9, 0xc8, 0xff, 0xff, 0xff, //0x0000179f jmp LBB5_29 + //0x000017a4 LBB5_30 + 0x4c, 0x89, 0xd1, //0x000017a4 movq %r10, %rcx + 0xc5, 0xfd, 0x6f, 0x25, 0xb1, 0xfb, 0xff, 0xff, //0x000017a7 vmovdqa $-1103(%rip), %ymm4 /* LCPI5_0+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x2d, 0xc9, 0xfb, 0xff, 0xff, //0x000017af vmovdqa $-1079(%rip), %ymm5 /* LCPI5_1+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x35, 0xe1, 0xfb, 0xff, 0xff, //0x000017b7 vmovdqa $-1055(%rip), %ymm6 /* LCPI5_2+0(%rip) */ + 0xc4, 0x41, 0x3d, 0x76, 0xc0, //0x000017bf vpcmpeqd %ymm8, %ymm8, %ymm8 + 0xc5, 0xf9, 0x6f, 0x3d, 0xf4, 0xfb, 0xff, 0xff, //0x000017c4 vmovdqa $-1036(%rip), %xmm7 /* LCPI5_3+0(%rip) */ + 0xc5, 0x79, 0x6f, 0x0d, 0xfc, 0xfb, 0xff, 0xff, //0x000017cc vmovdqa $-1028(%rip), %xmm9 /* LCPI5_4+0(%rip) */ + 0xc5, 0x79, 0x6f, 0x15, 0x04, 0xfc, 0xff, 0xff, //0x000017d4 vmovdqa $-1020(%rip), %xmm10 /* LCPI5_5+0(%rip) */ + 0xc4, 0x41, 0x21, 0x76, 0xdb, //0x000017dc vpcmpeqd %xmm11, %xmm11, %xmm11 + 0x45, 0x84, 0xff, //0x000017e1 testb %r15b, %r15b + 0x0f, 0x84, 0x2e, 0x00, 0x00, 0x00, //0x000017e4 je LBB5_36 + 0xe9, 0x7d, 0xfe, 0xff, 0xff, //0x000017ea jmp LBB5_32 + //0x000017ef LBB5_35 + 0x4c, 0x89, 0xd1, //0x000017ef movq %r10, %rcx + 0xc5, 0xfd, 0x6f, 0x25, 0x66, 0xfb, 0xff, 0xff, //0x000017f2 vmovdqa $-1178(%rip), %ymm4 /* LCPI5_0+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x2d, 0x7e, 0xfb, 0xff, 0xff, //0x000017fa vmovdqa $-1154(%rip), %ymm5 /* LCPI5_1+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x35, 0x96, 0xfb, 0xff, 0xff, //0x00001802 vmovdqa $-1130(%rip), %ymm6 /* LCPI5_2+0(%rip) */ + 0xc4, 0x41, 0x3d, 0x76, 0xc0, //0x0000180a vpcmpeqd %ymm8, %ymm8, %ymm8 + 0x45, 0x84, 0xff, //0x0000180f testb %r15b, %r15b + 0x0f, 0x85, 0x54, 0xfe, 0xff, 0xff, //0x00001812 jne LBB5_32 + //0x00001818 LBB5_36 + 0x48, 0x85, 0xc9, //0x00001818 testq %rcx, %rcx + 0x49, 0x89, 0xd7, //0x0000181b movq %rdx, %r15 + 0x4c, 0x8d, 0x15, 0x0b, 0xdc, 0x00, 0x00, //0x0000181e leaq $56331(%rip), %r10 /* __SingleQuoteTab+0(%rip) */ + 0x0f, 0x8e, 0x50, 0x00, 0x00, 0x00, //0x00001825 jle LBB5_41 + 0x48, 0x85, 0xc0, //0x0000182b testq %rax, %rax + 0x0f, 0x8e, 0x47, 0x00, 0x00, 0x00, //0x0000182e jle LBB5_41 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001834 .p2align 4, 0x90 + //0x00001840 LBB5_38 + 0x41, 0x0f, 0xb6, 0x5d, 0x00, //0x00001840 movzbl (%r13), %ebx + 0x48, 0x89, 0xda, //0x00001845 movq %rbx, %rdx + 0x48, 0xc1, 0xe2, 0x04, //0x00001848 shlq $4, %rdx + 0x4a, 0x83, 0x3c, 0x12, 0x00, //0x0000184c cmpq $0, (%rdx,%r10) + 0x0f, 0x85, 0xda, 0x00, 0x00, 0x00, //0x00001851 jne LBB5_55 + 0x49, 0xff, 0xc5, //0x00001857 incq %r13 + 0x88, 0x1e, //0x0000185a movb %bl, (%rsi) + 0x48, 0x83, 0xf8, 0x02, //0x0000185c cmpq $2, %rax + 0x48, 0x8d, 0x40, 0xff, //0x00001860 leaq $-1(%rax), %rax + 0x0f, 0x8c, 0x11, 0x00, 0x00, 0x00, //0x00001864 jl LBB5_41 + 0x48, 0xff, 0xc6, //0x0000186a incq %rsi + 0x48, 0x83, 0xf9, 0x01, //0x0000186d cmpq $1, %rcx + 0x48, 0x8d, 0x49, 0xff, //0x00001871 leaq $-1(%rcx), %rcx + 0x0f, 0x8f, 0xc5, 0xff, 0xff, 0xff, //0x00001875 jg LBB5_38 + //0x0000187b LBB5_41 + 0x4d, 0x29, 0xdd, //0x0000187b subq %r11, %r13 + 0x48, 0xf7, 0xd8, //0x0000187e negq %rax + 0x4d, 0x19, 0xd2, //0x00001881 sbbq %r10, %r10 + 0x4d, 0x31, 0xea, //0x00001884 xorq %r13, %r10 + 0xe9, 0x61, 0x01, 0x00, 0x00, //0x00001887 jmp LBB5_69 + //0x0000188c LBB5_42 + 0x4c, 0x89, 0xeb, //0x0000188c movq %r13, %rbx + 0x48, 0x89, 0xc8, //0x0000188f movq %rcx, %rax + 0x48, 0x83, 0xf8, 0x08, //0x00001892 cmpq $8, %rax + 0x0f, 0x82, 0x12, 0x00, 0x00, 0x00, //0x00001896 jb LBB5_44 + //0x0000189c LBB5_43 + 0x48, 0x8b, 0x13, //0x0000189c movq (%rbx), %rdx + 0x48, 0x89, 0x16, //0x0000189f movq %rdx, (%rsi) + 0x48, 0x83, 0xc3, 0x08, //0x000018a2 addq $8, %rbx + 0x48, 0x83, 0xc6, 0x08, //0x000018a6 addq $8, %rsi + 0x48, 0x83, 0xc0, 0xf8, //0x000018aa addq $-8, %rax + //0x000018ae LBB5_44 + 0x48, 0x83, 0xf8, 0x04, //0x000018ae cmpq $4, %rax + 0x0f, 0x8c, 0x32, 0x00, 0x00, 0x00, //0x000018b2 jl LBB5_45 + 0x8b, 0x13, //0x000018b8 movl (%rbx), %edx + 0x89, 0x16, //0x000018ba movl %edx, (%rsi) + 0x48, 0x83, 0xc3, 0x04, //0x000018bc addq $4, %rbx + 0x48, 0x83, 0xc6, 0x04, //0x000018c0 addq $4, %rsi + 0x48, 0x83, 0xc0, 0xfc, //0x000018c4 addq $-4, %rax + 0x48, 0x83, 0xf8, 0x02, //0x000018c8 cmpq $2, %rax + 0x0f, 0x83, 0x22, 0x00, 0x00, 0x00, //0x000018cc jae LBB5_52 + //0x000018d2 LBB5_46 + 0x48, 0x85, 0xc0, //0x000018d2 testq %rax, %rax + 0x0f, 0x84, 0x04, 0x00, 0x00, 0x00, //0x000018d5 je LBB5_48 + //0x000018db LBB5_47 + 0x8a, 0x03, //0x000018db movb (%rbx), %al + 0x88, 0x06, //0x000018dd movb %al, (%rsi) + //0x000018df LBB5_48 + 0x4d, 0x29, 0xdd, //0x000018df subq %r11, %r13 + 0x49, 0x01, 0xcd, //0x000018e2 addq %rcx, %r13 + 0xe9, 0x00, 0x01, 0x00, 0x00, //0x000018e5 jmp LBB5_68 + //0x000018ea LBB5_45 + 0x48, 0x83, 0xf8, 0x02, //0x000018ea cmpq $2, %rax + 0x0f, 0x82, 0xde, 0xff, 0xff, 0xff, //0x000018ee jb LBB5_46 + //0x000018f4 LBB5_52 + 0x0f, 0xb7, 0x13, //0x000018f4 movzwl (%rbx), %edx + 0x66, 0x89, 0x16, //0x000018f7 movw %dx, (%rsi) + 0x48, 0x83, 0xc3, 0x02, //0x000018fa addq $2, %rbx + 0x48, 0x83, 0xc6, 0x02, //0x000018fe addq $2, %rsi + 0x48, 0x83, 0xc0, 0xfe, //0x00001902 addq $-2, %rax + 0x48, 0x85, 0xc0, //0x00001906 testq %rax, %rax + 0x0f, 0x85, 0xcc, 0xff, 0xff, 0xff, //0x00001909 jne LBB5_47 + 0xe9, 0xcb, 0xff, 0xff, 0xff, //0x0000190f jmp LBB5_48 + //0x00001914 LBB5_53 + 0x83, 0xfb, 0x08, //0x00001914 cmpl $8, %ebx + 0x0f, 0x82, 0x8e, 0x00, 0x00, 0x00, //0x00001917 jb LBB5_62 + 0x48, 0x89, 0x06, //0x0000191d movq %rax, (%rsi) + 0x4d, 0x8d, 0x55, 0x08, //0x00001920 leaq $8(%r13), %r10 + 0x48, 0x83, 0xc6, 0x08, //0x00001924 addq $8, %rsi + 0x48, 0x8d, 0x43, 0xf8, //0x00001928 leaq $-8(%rbx), %rax + 0xe9, 0x80, 0x00, 0x00, 0x00, //0x0000192c jmp LBB5_63 + //0x00001931 LBB5_55 + 0x4d, 0x29, 0xdd, //0x00001931 subq %r11, %r13 + 0xe9, 0xb1, 0x00, 0x00, 0x00, //0x00001934 jmp LBB5_68 + //0x00001939 LBB5_56 + 0x4c, 0x89, 0xe8, //0x00001939 movq %r13, %rax + 0x48, 0x89, 0xcb, //0x0000193c movq %rcx, %rbx + //0x0000193f LBB5_57 + 0x48, 0x83, 0xfb, 0x04, //0x0000193f cmpq $4, %rbx + 0x0f, 0x8c, 0x38, 0x00, 0x00, 0x00, //0x00001943 jl LBB5_58 + 0x8b, 0x10, //0x00001949 movl (%rax), %edx + 0x89, 0x16, //0x0000194b movl %edx, (%rsi) + 0x48, 0x83, 0xc0, 0x04, //0x0000194d addq $4, %rax + 0x48, 0x83, 0xc6, 0x04, //0x00001951 addq $4, %rsi + 0x48, 0x83, 0xc3, 0xfc, //0x00001955 addq $-4, %rbx + 0x48, 0x83, 0xfb, 0x02, //0x00001959 cmpq $2, %rbx + 0x0f, 0x83, 0x28, 0x00, 0x00, 0x00, //0x0000195d jae LBB5_83 + //0x00001963 LBB5_59 + 0x48, 0x85, 0xdb, //0x00001963 testq %rbx, %rbx + 0x0f, 0x84, 0x04, 0x00, 0x00, 0x00, //0x00001966 je LBB5_61 + //0x0000196c LBB5_60 + 0x8a, 0x00, //0x0000196c movb (%rax), %al + 0x88, 0x06, //0x0000196e movb %al, (%rsi) + //0x00001970 LBB5_61 + 0x4c, 0x29, 0xd9, //0x00001970 subq %r11, %rcx + 0x4c, 0x01, 0xe9, //0x00001973 addq %r13, %rcx + 0x48, 0xf7, 0xd1, //0x00001976 notq %rcx + 0x49, 0x89, 0xca, //0x00001979 movq %rcx, %r10 + 0xe9, 0x6c, 0x00, 0x00, 0x00, //0x0000197c jmp LBB5_69 + //0x00001981 LBB5_58 + 0x48, 0x83, 0xfb, 0x02, //0x00001981 cmpq $2, %rbx + 0x0f, 0x82, 0xd8, 0xff, 0xff, 0xff, //0x00001985 jb LBB5_59 + //0x0000198b LBB5_83 + 0x0f, 0xb7, 0x10, //0x0000198b movzwl (%rax), %edx + 0x66, 0x89, 0x16, //0x0000198e movw %dx, (%rsi) + 0x48, 0x83, 0xc0, 0x02, //0x00001991 addq $2, %rax + 0x48, 0x83, 0xc6, 0x02, //0x00001995 addq $2, %rsi + 0x48, 0x83, 0xc3, 0xfe, //0x00001999 addq $-2, %rbx + 0x48, 0x85, 0xdb, //0x0000199d testq %rbx, %rbx + 0x0f, 0x85, 0xc6, 0xff, 0xff, 0xff, //0x000019a0 jne LBB5_60 + 0xe9, 0xc5, 0xff, 0xff, 0xff, //0x000019a6 jmp LBB5_61 + //0x000019ab LBB5_62 + 0x4d, 0x89, 0xea, //0x000019ab movq %r13, %r10 + 0x48, 0x89, 0xd8, //0x000019ae movq %rbx, %rax + //0x000019b1 LBB5_63 + 0x48, 0x83, 0xf8, 0x04, //0x000019b1 cmpq $4, %rax + 0x0f, 0x8c, 0x20, 0x01, 0x00, 0x00, //0x000019b5 jl LBB5_64 + 0x41, 0x8b, 0x0a, //0x000019bb movl (%r10), %ecx + 0x89, 0x0e, //0x000019be movl %ecx, (%rsi) + 0x49, 0x83, 0xc2, 0x04, //0x000019c0 addq $4, %r10 + 0x48, 0x83, 0xc6, 0x04, //0x000019c4 addq $4, %rsi + 0x48, 0x83, 0xc0, 0xfc, //0x000019c8 addq $-4, %rax + 0x48, 0x83, 0xf8, 0x02, //0x000019cc cmpq $2, %rax + 0x0f, 0x83, 0x0f, 0x01, 0x00, 0x00, //0x000019d0 jae LBB5_85 + //0x000019d6 LBB5_65 + 0x48, 0x85, 0xc0, //0x000019d6 testq %rax, %rax + 0x0f, 0x84, 0x05, 0x00, 0x00, 0x00, //0x000019d9 je LBB5_67 + //0x000019df LBB5_66 + 0x41, 0x8a, 0x02, //0x000019df movb (%r10), %al + 0x88, 0x06, //0x000019e2 movb %al, (%rsi) + //0x000019e4 LBB5_67 + 0x4d, 0x29, 0xdd, //0x000019e4 subq %r11, %r13 + 0x49, 0x01, 0xdd, //0x000019e7 addq %rbx, %r13 + //0x000019ea LBB5_68 + 0x4d, 0x89, 0xea, //0x000019ea movq %r13, %r10 + //0x000019ed LBB5_69 + 0x4d, 0x85, 0xd2, //0x000019ed testq %r10, %r10 + 0x48, 0x8b, 0x55, 0xd0, //0x000019f0 movq $-48(%rbp), %rdx + 0x49, 0xbd, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, //0x000019f4 movabsq $12884901889, %r13 + 0x0f, 0x88, 0x7d, 0x04, 0x00, 0x00, //0x000019fe js LBB5_122 + 0x4d, 0x01, 0xd3, //0x00001a04 addq %r10, %r11 + 0x4d, 0x01, 0xd4, //0x00001a07 addq %r10, %r12 + 0x4d, 0x39, 0xd6, //0x00001a0a cmpq %r10, %r14 + 0x0f, 0x84, 0x3c, 0x04, 0x00, 0x00, //0x00001a0d je LBB5_118 + 0x4d, 0x29, 0xd1, //0x00001a13 subq %r10, %r9 + 0x4d, 0x29, 0xf2, //0x00001a16 subq %r14, %r10 + 0xe9, 0x11, 0x00, 0x00, 0x00, //0x00001a19 jmp LBB5_73 + 0x90, 0x90, //0x00001a1e .p2align 4, 0x90 + //0x00001a20 LBB5_72 + 0x49, 0xff, 0xc3, //0x00001a20 incq %r11 + 0x49, 0x01, 0xc4, //0x00001a23 addq %rax, %r12 + 0x49, 0xff, 0xc2, //0x00001a26 incq %r10 + 0x0f, 0x84, 0x20, 0x04, 0x00, 0x00, //0x00001a29 je LBB5_118 + //0x00001a2f LBB5_73 + 0x41, 0x0f, 0xb6, 0x33, //0x00001a2f movzbl (%r11), %esi + 0x48, 0xc1, 0xe6, 0x04, //0x00001a33 shlq $4, %rsi + 0x49, 0x8b, 0x1c, 0x30, //0x00001a37 movq (%r8,%rsi), %rbx + 0x85, 0xdb, //0x00001a3b testl %ebx, %ebx + 0x0f, 0x84, 0x84, 0x00, 0x00, 0x00, //0x00001a3d je LBB5_81 + 0x48, 0x63, 0xc3, //0x00001a43 movslq %ebx, %rax + 0x49, 0x29, 0xc1, //0x00001a46 subq %rax, %r9 + 0x0f, 0x8c, 0x0e, 0x04, 0x00, 0x00, //0x00001a49 jl LBB5_119 + 0x48, 0xc1, 0xe3, 0x20, //0x00001a4f shlq $32, %rbx + 0x49, 0x8d, 0x4c, 0x30, 0x08, //0x00001a53 leaq $8(%r8,%rsi), %rcx + 0x4c, 0x39, 0xeb, //0x00001a58 cmpq %r13, %rbx + 0x0f, 0x8c, 0x2f, 0x00, 0x00, 0x00, //0x00001a5b jl LBB5_77 + 0x8b, 0x09, //0x00001a61 movl (%rcx), %ecx + 0x41, 0x89, 0x0c, 0x24, //0x00001a63 movl %ecx, (%r12) + 0x49, 0x8d, 0x4c, 0x30, 0x0c, //0x00001a67 leaq $12(%r8,%rsi), %rcx + 0x4d, 0x8d, 0x74, 0x24, 0x04, //0x00001a6c leaq $4(%r12), %r14 + 0x48, 0x8d, 0x58, 0xfc, //0x00001a71 leaq $-4(%rax), %rbx + 0x48, 0x83, 0xfb, 0x02, //0x00001a75 cmpq $2, %rbx + 0x0f, 0x83, 0x21, 0x00, 0x00, 0x00, //0x00001a79 jae LBB5_78 + 0xe9, 0x2f, 0x00, 0x00, 0x00, //0x00001a7f jmp LBB5_79 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001a84 .p2align 4, 0x90 + //0x00001a90 LBB5_77 + 0x4d, 0x89, 0xe6, //0x00001a90 movq %r12, %r14 + 0x48, 0x89, 0xc3, //0x00001a93 movq %rax, %rbx + 0x48, 0x83, 0xfb, 0x02, //0x00001a96 cmpq $2, %rbx + 0x0f, 0x82, 0x13, 0x00, 0x00, 0x00, //0x00001a9a jb LBB5_79 + //0x00001aa0 LBB5_78 + 0x0f, 0xb7, 0x31, //0x00001aa0 movzwl (%rcx), %esi + 0x66, 0x41, 0x89, 0x36, //0x00001aa3 movw %si, (%r14) + 0x48, 0x83, 0xc1, 0x02, //0x00001aa7 addq $2, %rcx + 0x49, 0x83, 0xc6, 0x02, //0x00001aab addq $2, %r14 + 0x48, 0x83, 0xc3, 0xfe, //0x00001aaf addq $-2, %rbx + //0x00001ab3 LBB5_79 + 0x48, 0x85, 0xdb, //0x00001ab3 testq %rbx, %rbx + 0x0f, 0x84, 0x64, 0xff, 0xff, 0xff, //0x00001ab6 je LBB5_72 + 0x0f, 0xb6, 0x09, //0x00001abc movzbl (%rcx), %ecx + 0x41, 0x88, 0x0e, //0x00001abf movb %cl, (%r14) + 0xe9, 0x59, 0xff, 0xff, 0xff, //0x00001ac2 jmp LBB5_72 + //0x00001ac7 LBB5_81 + 0x4d, 0x89, 0xd6, //0x00001ac7 movq %r10, %r14 + 0x49, 0xf7, 0xde, //0x00001aca negq %r14 + 0x4d, 0x85, 0xd2, //0x00001acd testq %r10, %r10 + 0x0f, 0x85, 0x8e, 0xf9, 0xff, 0xff, //0x00001ad0 jne LBB5_3 + 0xe9, 0x74, 0x03, 0x00, 0x00, //0x00001ad6 jmp LBB5_118 + //0x00001adb LBB5_64 + 0x48, 0x83, 0xf8, 0x02, //0x00001adb cmpq $2, %rax + 0x0f, 0x82, 0xf1, 0xfe, 0xff, 0xff, //0x00001adf jb LBB5_65 + //0x00001ae5 LBB5_85 + 0x41, 0x0f, 0xb7, 0x0a, //0x00001ae5 movzwl (%r10), %ecx + 0x66, 0x89, 0x0e, //0x00001ae9 movw %cx, (%rsi) + 0x49, 0x83, 0xc2, 0x02, //0x00001aec addq $2, %r10 + 0x48, 0x83, 0xc6, 0x02, //0x00001af0 addq $2, %rsi + 0x48, 0x83, 0xc0, 0xfe, //0x00001af4 addq $-2, %rax + 0x48, 0x85, 0xc0, //0x00001af8 testq %rax, %rax + 0x0f, 0x85, 0xde, 0xfe, 0xff, 0xff, //0x00001afb jne LBB5_66 + 0xe9, 0xde, 0xfe, 0xff, 0xff, //0x00001b01 jmp LBB5_67 + //0x00001b06 LBB5_86 + 0x4c, 0x8d, 0x0d, 0x23, 0xf9, 0x00, 0x00, //0x00001b06 leaq $63779(%rip), %r9 /* __EscTab+0(%rip) */ + 0xc5, 0x7d, 0x6f, 0x15, 0x4b, 0xf8, 0xff, 0xff, //0x00001b0d vmovdqa $-1973(%rip), %ymm10 /* LCPI5_0+0(%rip) */ + 0xc5, 0x7d, 0x6f, 0x0d, 0x63, 0xf8, 0xff, 0xff, //0x00001b15 vmovdqa $-1949(%rip), %ymm9 /* LCPI5_1+0(%rip) */ + 0xc5, 0x7d, 0x6f, 0x1d, 0x7b, 0xf8, 0xff, 0xff, //0x00001b1d vmovdqa $-1925(%rip), %ymm11 /* LCPI5_2+0(%rip) */ + 0xc4, 0x41, 0x3d, 0x76, 0xc0, //0x00001b25 vpcmpeqd %ymm8, %ymm8, %ymm8 + 0x48, 0x89, 0xd3, //0x00001b2a movq %rdx, %rbx + 0x4d, 0x89, 0xf2, //0x00001b2d movq %r14, %r10 + //0x00001b30 LBB5_87 + 0x49, 0x83, 0xfa, 0x10, //0x00001b30 cmpq $16, %r10 + 0x0f, 0x8d, 0x26, 0x01, 0x00, 0x00, //0x00001b34 jge LBB5_88 + //0x00001b3a LBB5_93 + 0x49, 0x83, 0xfa, 0x08, //0x00001b3a cmpq $8, %r10 + 0x0f, 0x8c, 0x85, 0x00, 0x00, 0x00, //0x00001b3e jl LBB5_97 + //0x00001b44 LBB5_94 + 0x0f, 0xb6, 0x07, //0x00001b44 movzbl (%rdi), %eax + 0x42, 0x0f, 0xb6, 0x04, 0x08, //0x00001b47 movzbl (%rax,%r9), %eax + 0x0f, 0xb6, 0x4f, 0x01, //0x00001b4c movzbl $1(%rdi), %ecx + 0x42, 0x0f, 0xb6, 0x0c, 0x09, //0x00001b50 movzbl (%rcx,%r9), %ecx + 0x01, 0xc9, //0x00001b55 addl %ecx, %ecx + 0x09, 0xc1, //0x00001b57 orl %eax, %ecx + 0x0f, 0xb6, 0x47, 0x02, //0x00001b59 movzbl $2(%rdi), %eax + 0x42, 0x0f, 0xb6, 0x34, 0x08, //0x00001b5d movzbl (%rax,%r9), %esi + 0xc1, 0xe6, 0x02, //0x00001b62 shll $2, %esi + 0x0f, 0xb6, 0x47, 0x03, //0x00001b65 movzbl $3(%rdi), %eax + 0x42, 0x0f, 0xb6, 0x04, 0x08, //0x00001b69 movzbl (%rax,%r9), %eax + 0xc1, 0xe0, 0x03, //0x00001b6e shll $3, %eax + 0x09, 0xf0, //0x00001b71 orl %esi, %eax + 0x09, 0xc8, //0x00001b73 orl %ecx, %eax + 0x48, 0x8b, 0x0f, //0x00001b75 movq (%rdi), %rcx + 0x48, 0x89, 0x0b, //0x00001b78 movq %rcx, (%rbx) + 0x84, 0xc0, //0x00001b7b testb %al, %al + 0x0f, 0x85, 0x9a, 0x02, 0x00, 0x00, //0x00001b7d jne LBB5_115 + 0x0f, 0xb6, 0x47, 0x04, //0x00001b83 movzbl $4(%rdi), %eax + 0x42, 0x0f, 0xb6, 0x04, 0x08, //0x00001b87 movzbl (%rax,%r9), %eax + 0x0f, 0xb6, 0x4f, 0x05, //0x00001b8c movzbl $5(%rdi), %ecx + 0x42, 0x0f, 0xb6, 0x0c, 0x09, //0x00001b90 movzbl (%rcx,%r9), %ecx + 0x01, 0xc9, //0x00001b95 addl %ecx, %ecx + 0x09, 0xc1, //0x00001b97 orl %eax, %ecx + 0x0f, 0xb6, 0x47, 0x06, //0x00001b99 movzbl $6(%rdi), %eax + 0x42, 0x0f, 0xb6, 0x34, 0x08, //0x00001b9d movzbl (%rax,%r9), %esi + 0xc1, 0xe6, 0x02, //0x00001ba2 shll $2, %esi + 0x0f, 0xb6, 0x47, 0x07, //0x00001ba5 movzbl $7(%rdi), %eax + 0x42, 0x0f, 0xb6, 0x04, 0x08, //0x00001ba9 movzbl (%rax,%r9), %eax + 0xc1, 0xe0, 0x03, //0x00001bae shll $3, %eax + 0x09, 0xf0, //0x00001bb1 orl %esi, %eax + 0x09, 0xc8, //0x00001bb3 orl %ecx, %eax + 0x84, 0xc0, //0x00001bb5 testb %al, %al + 0x0f, 0x85, 0x6e, 0x02, 0x00, 0x00, //0x00001bb7 jne LBB5_116 + 0x48, 0x83, 0xc3, 0x08, //0x00001bbd addq $8, %rbx + 0x48, 0x83, 0xc7, 0x08, //0x00001bc1 addq $8, %rdi + 0x49, 0x83, 0xc2, 0xf8, //0x00001bc5 addq $-8, %r10 + //0x00001bc9 LBB5_97 + 0x49, 0x83, 0xfa, 0x04, //0x00001bc9 cmpq $4, %r10 + 0x0f, 0x8c, 0x49, 0x00, 0x00, 0x00, //0x00001bcd jl LBB5_100 + 0x0f, 0xb6, 0x07, //0x00001bd3 movzbl (%rdi), %eax + 0x42, 0x0f, 0xb6, 0x04, 0x08, //0x00001bd6 movzbl (%rax,%r9), %eax + 0x0f, 0xb6, 0x4f, 0x01, //0x00001bdb movzbl $1(%rdi), %ecx + 0x42, 0x0f, 0xb6, 0x0c, 0x09, //0x00001bdf movzbl (%rcx,%r9), %ecx + 0x01, 0xc9, //0x00001be4 addl %ecx, %ecx + 0x09, 0xc1, //0x00001be6 orl %eax, %ecx + 0x0f, 0xb6, 0x47, 0x02, //0x00001be8 movzbl $2(%rdi), %eax + 0x42, 0x0f, 0xb6, 0x34, 0x08, //0x00001bec movzbl (%rax,%r9), %esi + 0xc1, 0xe6, 0x02, //0x00001bf1 shll $2, %esi + 0x0f, 0xb6, 0x47, 0x03, //0x00001bf4 movzbl $3(%rdi), %eax + 0x42, 0x0f, 0xb6, 0x04, 0x08, //0x00001bf8 movzbl (%rax,%r9), %eax + 0xc1, 0xe0, 0x03, //0x00001bfd shll $3, %eax + 0x09, 0xf0, //0x00001c00 orl %esi, %eax + 0x09, 0xc8, //0x00001c02 orl %ecx, %eax + 0x8b, 0x0f, //0x00001c04 movl (%rdi), %ecx + 0x89, 0x0b, //0x00001c06 movl %ecx, (%rbx) + 0x84, 0xc0, //0x00001c08 testb %al, %al + 0x0f, 0x85, 0x0d, 0x02, 0x00, 0x00, //0x00001c0a jne LBB5_115 + 0x48, 0x83, 0xc3, 0x04, //0x00001c10 addq $4, %rbx + 0x48, 0x83, 0xc7, 0x04, //0x00001c14 addq $4, %rdi + 0x49, 0x83, 0xc2, 0xfc, //0x00001c18 addq $-4, %r10 + //0x00001c1c LBB5_100 + 0x4d, 0x85, 0xd2, //0x00001c1c testq %r10, %r10 + 0x0f, 0x8e, 0x1f, 0x02, 0x00, 0x00, //0x00001c1f jle LBB5_117 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001c25 .p2align 4, 0x90 + //0x00001c30 LBB5_101 + 0x0f, 0xb6, 0x07, //0x00001c30 movzbl (%rdi), %eax + 0x42, 0x80, 0x3c, 0x08, 0x00, //0x00001c33 cmpb $0, (%rax,%r9) + 0x0f, 0x85, 0x94, 0x01, 0x00, 0x00, //0x00001c38 jne LBB5_112 + 0x48, 0xff, 0xc7, //0x00001c3e incq %rdi + 0x88, 0x03, //0x00001c41 movb %al, (%rbx) + 0x48, 0xff, 0xc3, //0x00001c43 incq %rbx + 0x49, 0x83, 0xfa, 0x01, //0x00001c46 cmpq $1, %r10 + 0x4d, 0x8d, 0x52, 0xff, //0x00001c4a leaq $-1(%r10), %r10 + 0x0f, 0x8f, 0xdc, 0xff, 0xff, 0xff, //0x00001c4e jg LBB5_101 + 0xe9, 0xeb, 0x01, 0x00, 0x00, //0x00001c54 jmp LBB5_117 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001c59 .p2align 4, 0x90 + //0x00001c60 LBB5_88 + 0x49, 0x83, 0xfa, 0x20, //0x00001c60 cmpq $32, %r10 + 0x0f, 0x8c, 0x9f, 0x00, 0x00, 0x00, //0x00001c64 jl LBB5_103 + 0x49, 0x8d, 0x4a, 0x20, //0x00001c6a leaq $32(%r10), %rcx + 0x31, 0xc0, //0x00001c6e xorl %eax, %eax + //0x00001c70 .p2align 4, 0x90 + //0x00001c70 LBB5_90 + 0xc5, 0xfe, 0x6f, 0x04, 0x07, //0x00001c70 vmovdqu (%rdi,%rax), %ymm0 + 0xc5, 0xad, 0x64, 0xc8, //0x00001c75 vpcmpgtb %ymm0, %ymm10, %ymm1 + 0xc5, 0xb5, 0x74, 0xd0, //0x00001c79 vpcmpeqb %ymm0, %ymm9, %ymm2 + 0xc5, 0xa5, 0x74, 0xd8, //0x00001c7d vpcmpeqb %ymm0, %ymm11, %ymm3 + 0xc5, 0xe5, 0xeb, 0xd2, //0x00001c81 vpor %ymm2, %ymm3, %ymm2 + 0xc5, 0xfe, 0x7f, 0x04, 0x03, //0x00001c85 vmovdqu %ymm0, (%rbx,%rax) + 0xc4, 0xc1, 0x7d, 0x64, 0xc0, //0x00001c8a vpcmpgtb %ymm8, %ymm0, %ymm0 + 0xc5, 0xfd, 0xdb, 0xc1, //0x00001c8f vpand %ymm1, %ymm0, %ymm0 + 0xc5, 0xed, 0xeb, 0xc0, //0x00001c93 vpor %ymm0, %ymm2, %ymm0 + 0xc5, 0xfd, 0xd7, 0xf0, //0x00001c97 vpmovmskb %ymm0, %esi + 0x85, 0xf6, //0x00001c9b testl %esi, %esi + 0x0f, 0x85, 0x1a, 0x01, 0x00, 0x00, //0x00001c9d jne LBB5_109 + 0x48, 0x83, 0xc0, 0x20, //0x00001ca3 addq $32, %rax + 0x48, 0x83, 0xc1, 0xe0, //0x00001ca7 addq $-32, %rcx + 0x48, 0x83, 0xf9, 0x3f, //0x00001cab cmpq $63, %rcx + 0x0f, 0x8f, 0xbb, 0xff, 0xff, 0xff, //0x00001caf jg LBB5_90 + 0xc5, 0xf8, 0x77, //0x00001cb5 vzeroupper + 0xc4, 0x41, 0x3d, 0x76, 0xc0, //0x00001cb8 vpcmpeqd %ymm8, %ymm8, %ymm8 + 0xc5, 0x7d, 0x6f, 0x1d, 0xdb, 0xf6, 0xff, 0xff, //0x00001cbd vmovdqa $-2341(%rip), %ymm11 /* LCPI5_2+0(%rip) */ + 0xc5, 0x7d, 0x6f, 0x0d, 0xb3, 0xf6, 0xff, 0xff, //0x00001cc5 vmovdqa $-2381(%rip), %ymm9 /* LCPI5_1+0(%rip) */ + 0xc5, 0x7d, 0x6f, 0x15, 0x8b, 0xf6, 0xff, 0xff, //0x00001ccd vmovdqa $-2421(%rip), %ymm10 /* LCPI5_0+0(%rip) */ + 0x48, 0x01, 0xc7, //0x00001cd5 addq %rax, %rdi + 0x49, 0x29, 0xc2, //0x00001cd8 subq %rax, %r10 + 0x48, 0x01, 0xc3, //0x00001cdb addq %rax, %rbx + 0x48, 0x83, 0xf9, 0x30, //0x00001cde cmpq $48, %rcx + 0xc5, 0xf9, 0x6f, 0x3d, 0xd6, 0xf6, 0xff, 0xff, //0x00001ce2 vmovdqa $-2346(%rip), %xmm7 /* LCPI5_3+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x2d, 0xde, 0xf6, 0xff, 0xff, //0x00001cea vmovdqa $-2338(%rip), %xmm5 /* LCPI5_4+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x25, 0xe6, 0xf6, 0xff, 0xff, //0x00001cf2 vmovdqa $-2330(%rip), %xmm4 /* LCPI5_5+0(%rip) */ + 0xc5, 0xc9, 0x76, 0xf6, //0x00001cfa vpcmpeqd %xmm6, %xmm6, %xmm6 + 0x0f, 0x8d, 0x41, 0x00, 0x00, 0x00, //0x00001cfe jge LBB5_104 + 0xe9, 0x31, 0xfe, 0xff, 0xff, //0x00001d04 jmp LBB5_93 + //0x00001d09 LBB5_103 + 0xc5, 0xf8, 0x77, //0x00001d09 vzeroupper + 0xc4, 0x41, 0x3d, 0x76, 0xc0, //0x00001d0c vpcmpeqd %ymm8, %ymm8, %ymm8 + 0xc5, 0x7d, 0x6f, 0x1d, 0x87, 0xf6, 0xff, 0xff, //0x00001d11 vmovdqa $-2425(%rip), %ymm11 /* LCPI5_2+0(%rip) */ + 0xc5, 0x7d, 0x6f, 0x0d, 0x5f, 0xf6, 0xff, 0xff, //0x00001d19 vmovdqa $-2465(%rip), %ymm9 /* LCPI5_1+0(%rip) */ + 0xc5, 0x7d, 0x6f, 0x15, 0x37, 0xf6, 0xff, 0xff, //0x00001d21 vmovdqa $-2505(%rip), %ymm10 /* LCPI5_0+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x3d, 0x8f, 0xf6, 0xff, 0xff, //0x00001d29 vmovdqa $-2417(%rip), %xmm7 /* LCPI5_3+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x2d, 0x97, 0xf6, 0xff, 0xff, //0x00001d31 vmovdqa $-2409(%rip), %xmm5 /* LCPI5_4+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x25, 0x9f, 0xf6, 0xff, 0xff, //0x00001d39 vmovdqa $-2401(%rip), %xmm4 /* LCPI5_5+0(%rip) */ + 0xc5, 0xc9, 0x76, 0xf6, //0x00001d41 vpcmpeqd %xmm6, %xmm6, %xmm6 + //0x00001d45 LBB5_104 + 0xb9, 0x10, 0x00, 0x00, 0x00, //0x00001d45 movl $16, %ecx + 0x31, 0xc0, //0x00001d4a xorl %eax, %eax + 0x90, 0x90, 0x90, 0x90, //0x00001d4c .p2align 4, 0x90 + //0x00001d50 LBB5_105 + 0xc5, 0xfa, 0x6f, 0x04, 0x07, //0x00001d50 vmovdqu (%rdi,%rax), %xmm0 + 0xc5, 0xc1, 0x64, 0xc8, //0x00001d55 vpcmpgtb %xmm0, %xmm7, %xmm1 + 0xc5, 0xf9, 0x74, 0xd5, //0x00001d59 vpcmpeqb %xmm5, %xmm0, %xmm2 + 0xc5, 0xf9, 0x74, 0xdc, //0x00001d5d vpcmpeqb %xmm4, %xmm0, %xmm3 + 0xc5, 0xe1, 0xeb, 0xd2, //0x00001d61 vpor %xmm2, %xmm3, %xmm2 + 0xc5, 0xfa, 0x7f, 0x04, 0x03, //0x00001d65 vmovdqu %xmm0, (%rbx,%rax) + 0xc5, 0xf9, 0x64, 0xc6, //0x00001d6a vpcmpgtb %xmm6, %xmm0, %xmm0 + 0xc5, 0xf9, 0xdb, 0xc1, //0x00001d6e vpand %xmm1, %xmm0, %xmm0 + 0xc5, 0xe9, 0xeb, 0xc0, //0x00001d72 vpor %xmm0, %xmm2, %xmm0 + 0xc5, 0xf9, 0xd7, 0xf0, //0x00001d76 vpmovmskb %xmm0, %esi + 0x66, 0x85, 0xf6, //0x00001d7a testw %si, %si + 0x0f, 0x85, 0x2f, 0x00, 0x00, 0x00, //0x00001d7d jne LBB5_108 + 0x48, 0x83, 0xc0, 0x10, //0x00001d83 addq $16, %rax + 0x49, 0x8d, 0x74, 0x0a, 0xf0, //0x00001d87 leaq $-16(%r10,%rcx), %rsi + 0x48, 0x83, 0xc1, 0xf0, //0x00001d8c addq $-16, %rcx + 0x48, 0x83, 0xfe, 0x1f, //0x00001d90 cmpq $31, %rsi + 0x0f, 0x8f, 0xb6, 0xff, 0xff, 0xff, //0x00001d94 jg LBB5_105 + 0x48, 0x01, 0xc7, //0x00001d9a addq %rax, %rdi + 0x49, 0x29, 0xc2, //0x00001d9d subq %rax, %r10 + 0x48, 0x01, 0xc3, //0x00001da0 addq %rax, %rbx + 0x49, 0x83, 0xfa, 0x08, //0x00001da3 cmpq $8, %r10 + 0x0f, 0x8d, 0x97, 0xfd, 0xff, 0xff, //0x00001da7 jge LBB5_94 + 0xe9, 0x17, 0xfe, 0xff, 0xff, //0x00001dad jmp LBB5_97 + //0x00001db2 LBB5_108 + 0x0f, 0xb7, 0xce, //0x00001db2 movzwl %si, %ecx + 0x0f, 0xbc, 0xc9, //0x00001db5 bsfl %ecx, %ecx + 0xe9, 0x03, 0x00, 0x00, 0x00, //0x00001db8 jmp LBB5_110 + //0x00001dbd LBB5_109 + 0x0f, 0xbc, 0xce, //0x00001dbd bsfl %esi, %ecx + //0x00001dc0 LBB5_110 + 0x48, 0x01, 0xcf, //0x00001dc0 addq %rcx, %rdi + 0x48, 0x01, 0xc7, //0x00001dc3 addq %rax, %rdi + 0x49, 0x29, 0xca, //0x00001dc6 subq %rcx, %r10 + 0x49, 0x29, 0xc2, //0x00001dc9 subq %rax, %r10 + 0x48, 0x01, 0xcb, //0x00001dcc addq %rcx, %rbx + //0x00001dcf LBB5_111 + 0x48, 0x01, 0xc3, //0x00001dcf addq %rax, %rbx + //0x00001dd2 LBB5_112 + 0x8a, 0x07, //0x00001dd2 movb (%rdi), %al + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001dd4 .p2align 4, 0x90 + //0x00001de0 LBB5_113 + 0x48, 0x89, 0xd9, //0x00001de0 movq %rbx, %rcx + 0x0f, 0xb6, 0xc0, //0x00001de3 movzbl %al, %eax + 0x48, 0xc1, 0xe0, 0x04, //0x00001de6 shlq $4, %rax + 0x49, 0x63, 0x1c, 0x00, //0x00001dea movslq (%r8,%rax), %rbx + 0x49, 0x8b, 0x44, 0x00, 0x08, //0x00001dee movq $8(%r8,%rax), %rax + 0x48, 0x89, 0x01, //0x00001df3 movq %rax, (%rcx) + 0x48, 0x01, 0xcb, //0x00001df6 addq %rcx, %rbx + 0x49, 0x83, 0xfa, 0x02, //0x00001df9 cmpq $2, %r10 + 0x0f, 0x8c, 0x41, 0x00, 0x00, 0x00, //0x00001dfd jl LBB5_117 + 0x49, 0xff, 0xca, //0x00001e03 decq %r10 + 0x0f, 0xb6, 0x47, 0x01, //0x00001e06 movzbl $1(%rdi), %eax + 0x48, 0xff, 0xc7, //0x00001e0a incq %rdi + 0x42, 0x80, 0x3c, 0x08, 0x00, //0x00001e0d cmpb $0, (%rax,%r9) + 0x0f, 0x85, 0xc8, 0xff, 0xff, 0xff, //0x00001e12 jne LBB5_113 + 0xe9, 0x13, 0xfd, 0xff, 0xff, //0x00001e18 jmp LBB5_87 + //0x00001e1d LBB5_115 + 0x0f, 0xbc, 0xc0, //0x00001e1d bsfl %eax, %eax + 0x48, 0x01, 0xc7, //0x00001e20 addq %rax, %rdi + 0x49, 0x29, 0xc2, //0x00001e23 subq %rax, %r10 + 0xe9, 0xa4, 0xff, 0xff, 0xff, //0x00001e26 jmp LBB5_111 + //0x00001e2b LBB5_116 + 0x0f, 0xbc, 0xc0, //0x00001e2b bsfl %eax, %eax + 0x48, 0x8d, 0x48, 0x04, //0x00001e2e leaq $4(%rax), %rcx + 0x48, 0x8d, 0x7c, 0x07, 0x04, //0x00001e32 leaq $4(%rdi,%rax), %rdi + 0x49, 0x29, 0xca, //0x00001e37 subq %rcx, %r10 + 0x48, 0x8d, 0x5c, 0x03, 0x04, //0x00001e3a leaq $4(%rbx,%rax), %rbx + 0xe9, 0x8e, 0xff, 0xff, 0xff, //0x00001e3f jmp LBB5_112 + //0x00001e44 LBB5_117 + 0x48, 0x29, 0xd3, //0x00001e44 subq %rdx, %rbx + 0x49, 0x89, 0x1f, //0x00001e47 movq %rbx, (%r15) + 0xe9, 0x1d, 0x00, 0x00, 0x00, //0x00001e4a jmp LBB5_121 + //0x00001e4f LBB5_118 + 0x49, 0x29, 0xd4, //0x00001e4f subq %rdx, %r12 + 0x4d, 0x89, 0x27, //0x00001e52 movq %r12, (%r15) + 0x49, 0x29, 0xfb, //0x00001e55 subq %rdi, %r11 + 0xe9, 0x0c, 0x00, 0x00, 0x00, //0x00001e58 jmp LBB5_120 + //0x00001e5d LBB5_119 + 0x49, 0x29, 0xd4, //0x00001e5d subq %rdx, %r12 + 0x4d, 0x89, 0x27, //0x00001e60 movq %r12, (%r15) + 0x49, 0xf7, 0xd3, //0x00001e63 notq %r11 + 0x49, 0x01, 0xfb, //0x00001e66 addq %rdi, %r11 + //0x00001e69 LBB5_120 + 0x4d, 0x89, 0xde, //0x00001e69 movq %r11, %r14 + //0x00001e6c LBB5_121 + 0x4c, 0x89, 0xf0, //0x00001e6c movq %r14, %rax + 0x48, 0x83, 0xc4, 0x08, //0x00001e6f addq $8, %rsp + 0x5b, //0x00001e73 popq %rbx + 0x41, 0x5c, //0x00001e74 popq %r12 + 0x41, 0x5d, //0x00001e76 popq %r13 + 0x41, 0x5e, //0x00001e78 popq %r14 + 0x41, 0x5f, //0x00001e7a popq %r15 + 0x5d, //0x00001e7c popq %rbp + 0xc5, 0xf8, 0x77, //0x00001e7d vzeroupper + 0xc3, //0x00001e80 retq + //0x00001e81 LBB5_122 + 0x49, 0x29, 0xd4, //0x00001e81 subq %rdx, %r12 + 0x49, 0xf7, 0xd2, //0x00001e84 notq %r10 + 0x4d, 0x01, 0xd4, //0x00001e87 addq %r10, %r12 + 0x4d, 0x89, 0x27, //0x00001e8a movq %r12, (%r15) + 0x49, 0x29, 0xfb, //0x00001e8d subq %rdi, %r11 + 0x4d, 0x01, 0xd3, //0x00001e90 addq %r10, %r11 + 0x49, 0xf7, 0xd3, //0x00001e93 notq %r11 + 0xe9, 0xce, 0xff, 0xff, 0xff, //0x00001e96 jmp LBB5_120 + 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001e9b .p2align 5, 0x00 + //0x00001ea0 LCPI6_0 + 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x00001ea0 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x00001eb0 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + //0x00001ec0 .p2align 4, 0x00 + //0x00001ec0 LCPI6_1 + 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x00001ec0 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + //0x00001ed0 .p2align 4, 0x90 + //0x00001ed0 _unquote + 0x55, //0x00001ed0 pushq %rbp + 0x48, 0x89, 0xe5, //0x00001ed1 movq %rsp, %rbp + 0x41, 0x57, //0x00001ed4 pushq %r15 + 0x41, 0x56, //0x00001ed6 pushq %r14 + 0x41, 0x55, //0x00001ed8 pushq %r13 + 0x41, 0x54, //0x00001eda pushq %r12 + 0x53, //0x00001edc pushq %rbx + 0x48, 0x83, 0xec, 0x18, //0x00001edd subq $24, %rsp + 0x48, 0x85, 0xf6, //0x00001ee1 testq %rsi, %rsi + 0x0f, 0x84, 0x29, 0x00, 0x00, 0x00, //0x00001ee4 je LBB6_2 + 0x48, 0x89, 0x4d, 0xd0, //0x00001eea movq %rcx, $-48(%rbp) + 0x45, 0x89, 0xc2, //0x00001eee movl %r8d, %r10d + 0x41, 0x83, 0xe2, 0x01, //0x00001ef1 andl $1, %r10d + 0xc5, 0xfd, 0x6f, 0x0d, 0xa3, 0xff, 0xff, 0xff, //0x00001ef5 vmovdqa $-93(%rip), %ymm1 /* LCPI6_0+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x15, 0xbb, 0xff, 0xff, 0xff, //0x00001efd vmovdqa $-69(%rip), %xmm2 /* LCPI6_1+0(%rip) */ + 0x49, 0x89, 0xf9, //0x00001f05 movq %rdi, %r9 + 0x49, 0x89, 0xf5, //0x00001f08 movq %rsi, %r13 + 0x48, 0x89, 0xd0, //0x00001f0b movq %rdx, %rax + 0xe9, 0x59, 0x00, 0x00, 0x00, //0x00001f0e jmp LBB6_8 + //0x00001f13 LBB6_2 + 0x45, 0x31, 0xed, //0x00001f13 xorl %r13d, %r13d + 0x48, 0x89, 0xd0, //0x00001f16 movq %rdx, %rax + //0x00001f19 LBB6_3 + 0x4c, 0x01, 0xe8, //0x00001f19 addq %r13, %rax + 0x48, 0x29, 0xd0, //0x00001f1c subq %rdx, %rax + //0x00001f1f LBB6_4 + 0x48, 0x83, 0xc4, 0x18, //0x00001f1f addq $24, %rsp + 0x5b, //0x00001f23 popq %rbx + 0x41, 0x5c, //0x00001f24 popq %r12 + 0x41, 0x5d, //0x00001f26 popq %r13 + 0x41, 0x5e, //0x00001f28 popq %r14 + 0x41, 0x5f, //0x00001f2a popq %r15 + 0x5d, //0x00001f2c popq %rbp + 0xc5, 0xf8, 0x77, //0x00001f2d vzeroupper + 0xc3, //0x00001f30 retq + //0x00001f31 LBB6_5 + 0x4f, 0x8d, 0x4c, 0x21, 0x04, //0x00001f31 leaq $4(%r9,%r12), %r9 + 0x44, 0x89, 0xf9, //0x00001f36 movl %r15d, %ecx + 0xc1, 0xe9, 0x06, //0x00001f39 shrl $6, %ecx + 0x80, 0xc9, 0xc0, //0x00001f3c orb $-64, %cl + 0x88, 0x08, //0x00001f3f movb %cl, (%rax) + 0x41, 0x80, 0xe7, 0x3f, //0x00001f41 andb $63, %r15b + 0x41, 0x80, 0xcf, 0x80, //0x00001f45 orb $-128, %r15b + 0x44, 0x88, 0x78, 0x01, //0x00001f49 movb %r15b, $1(%rax) + 0x48, 0x83, 0xc0, 0x02, //0x00001f4d addq $2, %rax + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001f51 .p2align 4, 0x90 + //0x00001f60 LBB6_6 + 0x4d, 0x89, 0xf5, //0x00001f60 movq %r14, %r13 + //0x00001f63 LBB6_7 + 0x4d, 0x85, 0xed, //0x00001f63 testq %r13, %r13 + 0x0f, 0x84, 0x9d, 0x07, 0x00, 0x00, //0x00001f66 je LBB6_101 + //0x00001f6c LBB6_8 + 0x41, 0x80, 0x39, 0x5c, //0x00001f6c cmpb $92, (%r9) + 0x0f, 0x85, 0x0a, 0x00, 0x00, 0x00, //0x00001f70 jne LBB6_10 + 0x31, 0xdb, //0x00001f76 xorl %ebx, %ebx + 0xe9, 0x43, 0x01, 0x00, 0x00, //0x00001f78 jmp LBB6_24 + 0x90, 0x90, 0x90, //0x00001f7d .p2align 4, 0x90 + //0x00001f80 LBB6_10 + 0x4d, 0x89, 0xec, //0x00001f80 movq %r13, %r12 + 0x49, 0x89, 0xc7, //0x00001f83 movq %rax, %r15 + 0x4d, 0x89, 0xce, //0x00001f86 movq %r9, %r14 + 0x49, 0x83, 0xfd, 0x20, //0x00001f89 cmpq $32, %r13 + 0x0f, 0x8c, 0x3e, 0x00, 0x00, 0x00, //0x00001f8d jl LBB6_14 + 0x4d, 0x89, 0xce, //0x00001f93 movq %r9, %r14 + 0x49, 0x89, 0xc7, //0x00001f96 movq %rax, %r15 + 0x4d, 0x89, 0xec, //0x00001f99 movq %r13, %r12 + 0x90, 0x90, 0x90, 0x90, //0x00001f9c .p2align 4, 0x90 + //0x00001fa0 LBB6_12 + 0xc4, 0xc1, 0x7e, 0x6f, 0x06, //0x00001fa0 vmovdqu (%r14), %ymm0 + 0xc4, 0xc1, 0x7e, 0x7f, 0x07, //0x00001fa5 vmovdqu %ymm0, (%r15) + 0xc5, 0xfd, 0x74, 0xc1, //0x00001faa vpcmpeqb %ymm1, %ymm0, %ymm0 + 0xc5, 0xfd, 0xd7, 0xd8, //0x00001fae vpmovmskb %ymm0, %ebx + 0x85, 0xdb, //0x00001fb2 testl %ebx, %ebx + 0x0f, 0x85, 0xc2, 0x00, 0x00, 0x00, //0x00001fb4 jne LBB6_22 + 0x49, 0x83, 0xc6, 0x20, //0x00001fba addq $32, %r14 + 0x49, 0x83, 0xc7, 0x20, //0x00001fbe addq $32, %r15 + 0x49, 0x83, 0xfc, 0x3f, //0x00001fc2 cmpq $63, %r12 + 0x4d, 0x8d, 0x64, 0x24, 0xe0, //0x00001fc6 leaq $-32(%r12), %r12 + 0x0f, 0x8f, 0xcf, 0xff, 0xff, 0xff, //0x00001fcb jg LBB6_12 + //0x00001fd1 LBB6_14 + 0xc5, 0xf8, 0x77, //0x00001fd1 vzeroupper + 0xc5, 0xf9, 0x6f, 0x15, 0xe4, 0xfe, 0xff, 0xff, //0x00001fd4 vmovdqa $-284(%rip), %xmm2 /* LCPI6_1+0(%rip) */ + 0x49, 0x83, 0xfc, 0x10, //0x00001fdc cmpq $16, %r12 + 0x0f, 0x8c, 0x3c, 0x00, 0x00, 0x00, //0x00001fe0 jl LBB6_17 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001fe6 .p2align 4, 0x90 + //0x00001ff0 LBB6_15 + 0xc4, 0xc1, 0x7a, 0x6f, 0x06, //0x00001ff0 vmovdqu (%r14), %xmm0 + 0xc4, 0xc1, 0x7a, 0x7f, 0x07, //0x00001ff5 vmovdqu %xmm0, (%r15) + 0xc5, 0xf9, 0x74, 0xc2, //0x00001ffa vpcmpeqb %xmm2, %xmm0, %xmm0 + 0xc5, 0xf9, 0xd7, 0xd8, //0x00001ffe vpmovmskb %xmm0, %ebx + 0x66, 0x85, 0xdb, //0x00002002 testw %bx, %bx + 0x0f, 0x85, 0x8d, 0x00, 0x00, 0x00, //0x00002005 jne LBB6_23 + 0x49, 0x83, 0xc6, 0x10, //0x0000200b addq $16, %r14 + 0x49, 0x83, 0xc7, 0x10, //0x0000200f addq $16, %r15 + 0x49, 0x83, 0xfc, 0x1f, //0x00002013 cmpq $31, %r12 + 0x4d, 0x8d, 0x64, 0x24, 0xf0, //0x00002017 leaq $-16(%r12), %r12 + 0x0f, 0x8f, 0xce, 0xff, 0xff, 0xff, //0x0000201c jg LBB6_15 + //0x00002022 LBB6_17 + 0x4d, 0x85, 0xe4, //0x00002022 testq %r12, %r12 + 0x0f, 0x84, 0xee, 0xfe, 0xff, 0xff, //0x00002025 je LBB6_3 + 0x31, 0xdb, //0x0000202b xorl %ebx, %ebx + 0xc5, 0xfd, 0x6f, 0x0d, 0x6b, 0xfe, 0xff, 0xff, //0x0000202d vmovdqa $-405(%rip), %ymm1 /* LCPI6_0+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002035 .p2align 4, 0x90 + //0x00002040 LBB6_19 + 0x45, 0x0f, 0xb6, 0x1c, 0x1e, //0x00002040 movzbl (%r14,%rbx), %r11d + 0x41, 0x80, 0xfb, 0x5c, //0x00002045 cmpb $92, %r11b + 0x0f, 0x84, 0x15, 0x00, 0x00, 0x00, //0x00002049 je LBB6_21 + 0x45, 0x88, 0x1c, 0x1f, //0x0000204f movb %r11b, (%r15,%rbx) + 0x48, 0xff, 0xc3, //0x00002053 incq %rbx + 0x49, 0x39, 0xdc, //0x00002056 cmpq %rbx, %r12 + 0x0f, 0x85, 0xe1, 0xff, 0xff, 0xff, //0x00002059 jne LBB6_19 + 0xe9, 0xb5, 0xfe, 0xff, 0xff, //0x0000205f jmp LBB6_3 + //0x00002064 LBB6_21 + 0x49, 0x01, 0xde, //0x00002064 addq %rbx, %r14 + 0x4d, 0x29, 0xce, //0x00002067 subq %r9, %r14 + 0x4c, 0x89, 0xf3, //0x0000206a movq %r14, %rbx + 0x48, 0x83, 0xfb, 0xff, //0x0000206d cmpq $-1, %rbx + 0x0f, 0x85, 0x49, 0x00, 0x00, 0x00, //0x00002071 jne LBB6_24 + 0xe9, 0x9d, 0xfe, 0xff, 0xff, //0x00002077 jmp LBB6_3 + //0x0000207c LBB6_22 + 0x48, 0x63, 0xdb, //0x0000207c movslq %ebx, %rbx + 0x4d, 0x29, 0xce, //0x0000207f subq %r9, %r14 + 0x48, 0x0f, 0xbc, 0xdb, //0x00002082 bsfq %rbx, %rbx + 0x4c, 0x01, 0xf3, //0x00002086 addq %r14, %rbx + 0x48, 0x83, 0xfb, 0xff, //0x00002089 cmpq $-1, %rbx + 0x0f, 0x85, 0x2d, 0x00, 0x00, 0x00, //0x0000208d jne LBB6_24 + 0xe9, 0x81, 0xfe, 0xff, 0xff, //0x00002093 jmp LBB6_3 + //0x00002098 LBB6_23 + 0x0f, 0xb7, 0xdb, //0x00002098 movzwl %bx, %ebx + 0x4d, 0x29, 0xce, //0x0000209b subq %r9, %r14 + 0x48, 0x0f, 0xbc, 0xdb, //0x0000209e bsfq %rbx, %rbx + 0x4c, 0x01, 0xf3, //0x000020a2 addq %r14, %rbx + 0xc5, 0xfd, 0x6f, 0x0d, 0xf3, 0xfd, 0xff, 0xff, //0x000020a5 vmovdqa $-525(%rip), %ymm1 /* LCPI6_0+0(%rip) */ + 0x48, 0x83, 0xfb, 0xff, //0x000020ad cmpq $-1, %rbx + 0x0f, 0x84, 0x62, 0xfe, 0xff, 0xff, //0x000020b1 je LBB6_3 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000020b7 .p2align 4, 0x90 + //0x000020c0 LBB6_24 + 0x48, 0x8d, 0x4b, 0x02, //0x000020c0 leaq $2(%rbx), %rcx + 0x49, 0x29, 0xcd, //0x000020c4 subq %rcx, %r13 + 0x0f, 0x88, 0x10, 0x06, 0x00, 0x00, //0x000020c7 js LBB6_99 + 0x4d, 0x8d, 0x4c, 0x19, 0x02, //0x000020cd leaq $2(%r9,%rbx), %r9 + 0x4d, 0x85, 0xd2, //0x000020d2 testq %r10, %r10 + 0x0f, 0x85, 0x09, 0x04, 0x00, 0x00, //0x000020d5 jne LBB6_67 + //0x000020db LBB6_26 + 0x48, 0x01, 0xd8, //0x000020db addq %rbx, %rax + 0x41, 0x0f, 0xb6, 0x49, 0xff, //0x000020de movzbl $-1(%r9), %ecx + 0x48, 0x8d, 0x1d, 0x46, 0xf4, 0x00, 0x00, //0x000020e3 leaq $62534(%rip), %rbx /* __UnquoteTab+0(%rip) */ + 0x8a, 0x1c, 0x19, //0x000020ea movb (%rcx,%rbx), %bl + 0x80, 0xfb, 0xff, //0x000020ed cmpb $-1, %bl + 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x000020f0 je LBB6_29 + 0x84, 0xdb, //0x000020f6 testb %bl, %bl + 0x0f, 0x84, 0xf2, 0x05, 0x00, 0x00, //0x000020f8 je LBB6_100 + 0x88, 0x18, //0x000020fe movb %bl, (%rax) + 0x48, 0xff, 0xc0, //0x00002100 incq %rax + 0xe9, 0x5b, 0xfe, 0xff, 0xff, //0x00002103 jmp LBB6_7 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002108 .p2align 4, 0x90 + //0x00002110 LBB6_29 + 0x49, 0x83, 0xfd, 0x03, //0x00002110 cmpq $3, %r13 + 0x0f, 0x8e, 0xc3, 0x05, 0x00, 0x00, //0x00002114 jle LBB6_99 + 0x45, 0x8b, 0x31, //0x0000211a movl (%r9), %r14d + 0x45, 0x89, 0xf7, //0x0000211d movl %r14d, %r15d + 0x41, 0xf7, 0xd7, //0x00002120 notl %r15d + 0x41, 0x8d, 0x8e, 0xd0, 0xcf, 0xcf, 0xcf, //0x00002123 leal $-808464432(%r14), %ecx + 0x41, 0x81, 0xe7, 0x80, 0x80, 0x80, 0x80, //0x0000212a andl $-2139062144, %r15d + 0x41, 0x85, 0xcf, //0x00002131 testl %ecx, %r15d + 0x0f, 0x85, 0xe7, 0x04, 0x00, 0x00, //0x00002134 jne LBB6_90 + 0x41, 0x8d, 0x8e, 0x19, 0x19, 0x19, 0x19, //0x0000213a leal $421075225(%r14), %ecx + 0x44, 0x09, 0xf1, //0x00002141 orl %r14d, %ecx + 0xf7, 0xc1, 0x80, 0x80, 0x80, 0x80, //0x00002144 testl $-2139062144, %ecx + 0x0f, 0x85, 0xd1, 0x04, 0x00, 0x00, //0x0000214a jne LBB6_90 + 0x44, 0x89, 0xf3, //0x00002150 movl %r14d, %ebx + 0x81, 0xe3, 0x7f, 0x7f, 0x7f, 0x7f, //0x00002153 andl $2139062143, %ebx + 0xb9, 0xc0, 0xc0, 0xc0, 0xc0, //0x00002159 movl $-1061109568, %ecx + 0x29, 0xd9, //0x0000215e subl %ebx, %ecx + 0x44, 0x8d, 0x9b, 0x46, 0x46, 0x46, 0x46, //0x00002160 leal $1179010630(%rbx), %r11d + 0x44, 0x21, 0xf9, //0x00002167 andl %r15d, %ecx + 0x44, 0x85, 0xd9, //0x0000216a testl %r11d, %ecx + 0x0f, 0x85, 0xae, 0x04, 0x00, 0x00, //0x0000216d jne LBB6_90 + 0xb9, 0xe0, 0xe0, 0xe0, 0xe0, //0x00002173 movl $-522133280, %ecx + 0x29, 0xd9, //0x00002178 subl %ebx, %ecx + 0x81, 0xc3, 0x39, 0x39, 0x39, 0x39, //0x0000217a addl $960051513, %ebx + 0x41, 0x21, 0xcf, //0x00002180 andl %ecx, %r15d + 0x41, 0x85, 0xdf, //0x00002183 testl %ebx, %r15d + 0x0f, 0x85, 0x95, 0x04, 0x00, 0x00, //0x00002186 jne LBB6_90 + 0x41, 0x0f, 0xce, //0x0000218c bswapl %r14d + 0x44, 0x89, 0xf1, //0x0000218f movl %r14d, %ecx + 0xc1, 0xe9, 0x04, //0x00002192 shrl $4, %ecx + 0xf7, 0xd1, //0x00002195 notl %ecx + 0x81, 0xe1, 0x01, 0x01, 0x01, 0x01, //0x00002197 andl $16843009, %ecx + 0x8d, 0x0c, 0xc9, //0x0000219d leal (%rcx,%rcx,8), %ecx + 0x41, 0x81, 0xe6, 0x0f, 0x0f, 0x0f, 0x0f, //0x000021a0 andl $252645135, %r14d + 0x41, 0x01, 0xce, //0x000021a7 addl %ecx, %r14d + 0x44, 0x89, 0xf1, //0x000021aa movl %r14d, %ecx + 0xc1, 0xe9, 0x04, //0x000021ad shrl $4, %ecx + 0x44, 0x09, 0xf1, //0x000021b0 orl %r14d, %ecx + 0x44, 0x0f, 0xb6, 0xf9, //0x000021b3 movzbl %cl, %r15d + 0xc1, 0xe9, 0x08, //0x000021b7 shrl $8, %ecx + 0x81, 0xe1, 0x00, 0xff, 0x00, 0x00, //0x000021ba andl $65280, %ecx + 0x41, 0x09, 0xcf, //0x000021c0 orl %ecx, %r15d + 0x4d, 0x8d, 0x75, 0xfc, //0x000021c3 leaq $-4(%r13), %r14 + 0x41, 0x81, 0xff, 0x80, 0x00, 0x00, 0x00, //0x000021c7 cmpl $128, %r15d + 0x0f, 0x82, 0x61, 0x03, 0x00, 0x00, //0x000021ce jb LBB6_75 + 0x45, 0x31, 0xe4, //0x000021d4 xorl %r12d, %r12d + 0x4d, 0x85, 0xd2, //0x000021d7 testq %r10, %r10 + 0x0f, 0x84, 0x70, 0x01, 0x00, 0x00, //0x000021da je LBB6_51 + //0x000021e0 LBB6_36 + 0x41, 0x81, 0xff, 0x00, 0x08, 0x00, 0x00, //0x000021e0 cmpl $2048, %r15d + 0x0f, 0x82, 0x44, 0xfd, 0xff, 0xff, //0x000021e7 jb LBB6_5 + 0x44, 0x89, 0xf9, //0x000021ed movl %r15d, %ecx + 0x81, 0xe1, 0x00, 0xf8, 0xff, 0xff, //0x000021f0 andl $-2048, %ecx + 0x81, 0xf9, 0x00, 0xd8, 0x00, 0x00, //0x000021f6 cmpl $55296, %ecx + 0x0f, 0x85, 0xae, 0x02, 0x00, 0x00, //0x000021fc jne LBB6_65 + 0x4d, 0x85, 0xf6, //0x00002202 testq %r14, %r14 + 0x0f, 0x8e, 0x61, 0x03, 0x00, 0x00, //0x00002205 jle LBB6_80 + 0x43, 0x80, 0x7c, 0x21, 0x04, 0x5c, //0x0000220b cmpb $92, $4(%r9,%r12) + 0x0f, 0x85, 0x64, 0x03, 0x00, 0x00, //0x00002211 jne LBB6_81 + 0x41, 0x81, 0xff, 0xff, 0xdb, 0x00, 0x00, //0x00002217 cmpl $56319, %r15d + 0x0f, 0x87, 0x2a, 0x03, 0x00, 0x00, //0x0000221e ja LBB6_78 + 0x49, 0x83, 0xfe, 0x07, //0x00002224 cmpq $7, %r14 + 0x0f, 0x8c, 0x20, 0x03, 0x00, 0x00, //0x00002228 jl LBB6_78 + 0x43, 0x80, 0x7c, 0x21, 0x05, 0x5c, //0x0000222e cmpb $92, $5(%r9,%r12) + 0x0f, 0x85, 0x14, 0x03, 0x00, 0x00, //0x00002234 jne LBB6_78 + 0x43, 0x80, 0x7c, 0x21, 0x06, 0x75, //0x0000223a cmpb $117, $6(%r9,%r12) + 0x0f, 0x85, 0x08, 0x03, 0x00, 0x00, //0x00002240 jne LBB6_78 + 0x47, 0x8b, 0x5c, 0x21, 0x07, //0x00002246 movl $7(%r9,%r12), %r11d + 0x44, 0x89, 0xdb, //0x0000224b movl %r11d, %ebx + 0xf7, 0xd3, //0x0000224e notl %ebx + 0x41, 0x8d, 0x8b, 0xd0, 0xcf, 0xcf, 0xcf, //0x00002250 leal $-808464432(%r11), %ecx + 0x81, 0xe3, 0x80, 0x80, 0x80, 0x80, //0x00002257 andl $-2139062144, %ebx + 0x89, 0x5d, 0xcc, //0x0000225d movl %ebx, $-52(%rbp) + 0x85, 0xcb, //0x00002260 testl %ecx, %ebx + 0x0f, 0x85, 0xbe, 0x04, 0x00, 0x00, //0x00002262 jne LBB6_104 + 0x41, 0x8d, 0x8b, 0x19, 0x19, 0x19, 0x19, //0x00002268 leal $421075225(%r11), %ecx + 0x44, 0x09, 0xd9, //0x0000226f orl %r11d, %ecx + 0xf7, 0xc1, 0x80, 0x80, 0x80, 0x80, //0x00002272 testl $-2139062144, %ecx + 0x0f, 0x85, 0xa8, 0x04, 0x00, 0x00, //0x00002278 jne LBB6_104 + 0x44, 0x89, 0xdb, //0x0000227e movl %r11d, %ebx + 0x81, 0xe3, 0x7f, 0x7f, 0x7f, 0x7f, //0x00002281 andl $2139062143, %ebx + 0xb9, 0xc0, 0xc0, 0xc0, 0xc0, //0x00002287 movl $-1061109568, %ecx + 0x29, 0xd9, //0x0000228c subl %ebx, %ecx + 0x4c, 0x89, 0x5d, 0xc0, //0x0000228e movq %r11, $-64(%rbp) + 0x44, 0x8d, 0x9b, 0x46, 0x46, 0x46, 0x46, //0x00002292 leal $1179010630(%rbx), %r11d + 0x23, 0x4d, 0xcc, //0x00002299 andl $-52(%rbp), %ecx + 0x44, 0x85, 0xd9, //0x0000229c testl %r11d, %ecx + 0x4c, 0x8b, 0x5d, 0xc0, //0x0000229f movq $-64(%rbp), %r11 + 0x0f, 0x85, 0x7d, 0x04, 0x00, 0x00, //0x000022a3 jne LBB6_104 + 0xb9, 0xe0, 0xe0, 0xe0, 0xe0, //0x000022a9 movl $-522133280, %ecx + 0x29, 0xd9, //0x000022ae subl %ebx, %ecx + 0x89, 0x4d, 0xc8, //0x000022b0 movl %ecx, $-56(%rbp) + 0x81, 0xc3, 0x39, 0x39, 0x39, 0x39, //0x000022b3 addl $960051513, %ebx + 0x8b, 0x4d, 0xcc, //0x000022b9 movl $-52(%rbp), %ecx + 0x23, 0x4d, 0xc8, //0x000022bc andl $-56(%rbp), %ecx + 0x85, 0xd9, //0x000022bf testl %ebx, %ecx + 0x0f, 0x85, 0x5f, 0x04, 0x00, 0x00, //0x000022c1 jne LBB6_104 + 0x41, 0x0f, 0xcb, //0x000022c7 bswapl %r11d + 0x44, 0x89, 0xd9, //0x000022ca movl %r11d, %ecx + 0xc1, 0xe9, 0x04, //0x000022cd shrl $4, %ecx + 0xf7, 0xd1, //0x000022d0 notl %ecx + 0x81, 0xe1, 0x01, 0x01, 0x01, 0x01, //0x000022d2 andl $16843009, %ecx + 0x8d, 0x0c, 0xc9, //0x000022d8 leal (%rcx,%rcx,8), %ecx + 0x41, 0x81, 0xe3, 0x0f, 0x0f, 0x0f, 0x0f, //0x000022db andl $252645135, %r11d + 0x41, 0x01, 0xcb, //0x000022e2 addl %ecx, %r11d + 0x44, 0x89, 0xd9, //0x000022e5 movl %r11d, %ecx + 0xc1, 0xe9, 0x04, //0x000022e8 shrl $4, %ecx + 0x44, 0x09, 0xd9, //0x000022eb orl %r11d, %ecx + 0x89, 0xcb, //0x000022ee movl %ecx, %ebx + 0xc1, 0xeb, 0x08, //0x000022f0 shrl $8, %ebx + 0x81, 0xe3, 0x00, 0xff, 0x00, 0x00, //0x000022f3 andl $65280, %ebx + 0x44, 0x0f, 0xb6, 0xd9, //0x000022f9 movzbl %cl, %r11d + 0x41, 0x09, 0xdb, //0x000022fd orl %ebx, %r11d + 0x81, 0xe1, 0x00, 0x00, 0xfc, 0x00, //0x00002300 andl $16515072, %ecx + 0x81, 0xf9, 0x00, 0x00, 0xdc, 0x00, //0x00002306 cmpl $14417920, %ecx + 0x0f, 0x84, 0x97, 0x02, 0x00, 0x00, //0x0000230c je LBB6_85 + 0x41, 0xf6, 0xc0, 0x02, //0x00002312 testb $2, %r8b + 0x0f, 0x84, 0x1d, 0x05, 0x00, 0x00, //0x00002316 je LBB6_119 + 0x49, 0x83, 0xc6, 0xf9, //0x0000231c addq $-7, %r14 + 0x66, 0xc7, 0x00, 0xef, 0xbf, //0x00002320 movw $-16401, (%rax) + 0xc6, 0x40, 0x02, 0xbd, //0x00002325 movb $-67, $2(%rax) + 0x48, 0x83, 0xc0, 0x03, //0x00002329 addq $3, %rax + 0x49, 0x83, 0xc4, 0x07, //0x0000232d addq $7, %r12 + 0x45, 0x89, 0xdf, //0x00002331 movl %r11d, %r15d + 0x41, 0x83, 0xfb, 0x7f, //0x00002334 cmpl $127, %r11d + 0x0f, 0x87, 0xa2, 0xfe, 0xff, 0xff, //0x00002338 ja LBB6_36 + 0xe9, 0x59, 0x01, 0x00, 0x00, //0x0000233e jmp LBB6_64 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002343 .p2align 4, 0x90 + //0x00002350 LBB6_51 + 0x41, 0x81, 0xff, 0x00, 0x08, 0x00, 0x00, //0x00002350 cmpl $2048, %r15d + 0x0f, 0x82, 0xd4, 0xfb, 0xff, 0xff, //0x00002357 jb LBB6_5 + 0x44, 0x89, 0xf9, //0x0000235d movl %r15d, %ecx + 0x81, 0xe1, 0x00, 0xf8, 0xff, 0xff, //0x00002360 andl $-2048, %ecx + 0x81, 0xf9, 0x00, 0xd8, 0x00, 0x00, //0x00002366 cmpl $55296, %ecx + 0x0f, 0x85, 0x3e, 0x01, 0x00, 0x00, //0x0000236c jne LBB6_65 + 0x41, 0x81, 0xff, 0xff, 0xdb, 0x00, 0x00, //0x00002372 cmpl $56319, %r15d + 0x0f, 0x87, 0xc5, 0x01, 0x00, 0x00, //0x00002379 ja LBB6_77 + 0x49, 0x83, 0xfe, 0x06, //0x0000237f cmpq $6, %r14 + 0x0f, 0x8c, 0xbb, 0x01, 0x00, 0x00, //0x00002383 jl LBB6_77 + 0x43, 0x80, 0x7c, 0x21, 0x04, 0x5c, //0x00002389 cmpb $92, $4(%r9,%r12) + 0x0f, 0x85, 0xaf, 0x01, 0x00, 0x00, //0x0000238f jne LBB6_77 + 0x43, 0x80, 0x7c, 0x21, 0x05, 0x75, //0x00002395 cmpb $117, $5(%r9,%r12) + 0x0f, 0x85, 0xa3, 0x01, 0x00, 0x00, //0x0000239b jne LBB6_77 + 0x47, 0x8b, 0x5c, 0x21, 0x06, //0x000023a1 movl $6(%r9,%r12), %r11d + 0x44, 0x89, 0xdb, //0x000023a6 movl %r11d, %ebx + 0xf7, 0xd3, //0x000023a9 notl %ebx + 0x41, 0x8d, 0x8b, 0xd0, 0xcf, 0xcf, 0xcf, //0x000023ab leal $-808464432(%r11), %ecx + 0x81, 0xe3, 0x80, 0x80, 0x80, 0x80, //0x000023b2 andl $-2139062144, %ebx + 0x89, 0x5d, 0xcc, //0x000023b8 movl %ebx, $-52(%rbp) + 0x85, 0xcb, //0x000023bb testl %ecx, %ebx + 0x0f, 0x85, 0x59, 0x03, 0x00, 0x00, //0x000023bd jne LBB6_103 + 0x41, 0x8d, 0x8b, 0x19, 0x19, 0x19, 0x19, //0x000023c3 leal $421075225(%r11), %ecx + 0x44, 0x09, 0xd9, //0x000023ca orl %r11d, %ecx + 0xf7, 0xc1, 0x80, 0x80, 0x80, 0x80, //0x000023cd testl $-2139062144, %ecx + 0x0f, 0x85, 0x43, 0x03, 0x00, 0x00, //0x000023d3 jne LBB6_103 + 0x44, 0x89, 0xdb, //0x000023d9 movl %r11d, %ebx + 0x81, 0xe3, 0x7f, 0x7f, 0x7f, 0x7f, //0x000023dc andl $2139062143, %ebx + 0xb9, 0xc0, 0xc0, 0xc0, 0xc0, //0x000023e2 movl $-1061109568, %ecx + 0x29, 0xd9, //0x000023e7 subl %ebx, %ecx + 0x4c, 0x89, 0x5d, 0xc0, //0x000023e9 movq %r11, $-64(%rbp) + 0x44, 0x8d, 0x9b, 0x46, 0x46, 0x46, 0x46, //0x000023ed leal $1179010630(%rbx), %r11d + 0x23, 0x4d, 0xcc, //0x000023f4 andl $-52(%rbp), %ecx + 0x44, 0x85, 0xd9, //0x000023f7 testl %r11d, %ecx + 0x4c, 0x8b, 0x5d, 0xc0, //0x000023fa movq $-64(%rbp), %r11 + 0x0f, 0x85, 0x18, 0x03, 0x00, 0x00, //0x000023fe jne LBB6_103 + 0xb9, 0xe0, 0xe0, 0xe0, 0xe0, //0x00002404 movl $-522133280, %ecx + 0x29, 0xd9, //0x00002409 subl %ebx, %ecx + 0x89, 0x4d, 0xc8, //0x0000240b movl %ecx, $-56(%rbp) + 0x81, 0xc3, 0x39, 0x39, 0x39, 0x39, //0x0000240e addl $960051513, %ebx + 0x8b, 0x4d, 0xcc, //0x00002414 movl $-52(%rbp), %ecx + 0x23, 0x4d, 0xc8, //0x00002417 andl $-56(%rbp), %ecx + 0x85, 0xd9, //0x0000241a testl %ebx, %ecx + 0x0f, 0x85, 0xfa, 0x02, 0x00, 0x00, //0x0000241c jne LBB6_103 + 0x41, 0x0f, 0xcb, //0x00002422 bswapl %r11d + 0x44, 0x89, 0xd9, //0x00002425 movl %r11d, %ecx + 0xc1, 0xe9, 0x04, //0x00002428 shrl $4, %ecx + 0xf7, 0xd1, //0x0000242b notl %ecx + 0x81, 0xe1, 0x01, 0x01, 0x01, 0x01, //0x0000242d andl $16843009, %ecx + 0x8d, 0x0c, 0xc9, //0x00002433 leal (%rcx,%rcx,8), %ecx + 0x41, 0x81, 0xe3, 0x0f, 0x0f, 0x0f, 0x0f, //0x00002436 andl $252645135, %r11d + 0x41, 0x01, 0xcb, //0x0000243d addl %ecx, %r11d + 0x44, 0x89, 0xd9, //0x00002440 movl %r11d, %ecx + 0xc1, 0xe9, 0x04, //0x00002443 shrl $4, %ecx + 0x44, 0x09, 0xd9, //0x00002446 orl %r11d, %ecx + 0x89, 0xcb, //0x00002449 movl %ecx, %ebx + 0xc1, 0xeb, 0x08, //0x0000244b shrl $8, %ebx + 0x81, 0xe3, 0x00, 0xff, 0x00, 0x00, //0x0000244e andl $65280, %ebx + 0x44, 0x0f, 0xb6, 0xd9, //0x00002454 movzbl %cl, %r11d + 0x41, 0x09, 0xdb, //0x00002458 orl %ebx, %r11d + 0x81, 0xe1, 0x00, 0x00, 0xfc, 0x00, //0x0000245b andl $16515072, %ecx + 0x81, 0xf9, 0x00, 0x00, 0xdc, 0x00, //0x00002461 cmpl $14417920, %ecx + 0x0f, 0x84, 0x2b, 0x01, 0x00, 0x00, //0x00002467 je LBB6_84 + 0x41, 0xf6, 0xc0, 0x02, //0x0000246d testb $2, %r8b + 0x0f, 0x84, 0xb8, 0x03, 0x00, 0x00, //0x00002471 je LBB6_118 + 0x49, 0x83, 0xc6, 0xfa, //0x00002477 addq $-6, %r14 + 0x66, 0xc7, 0x00, 0xef, 0xbf, //0x0000247b movw $-16401, (%rax) + 0xc6, 0x40, 0x02, 0xbd, //0x00002480 movb $-67, $2(%rax) + 0x48, 0x83, 0xc0, 0x03, //0x00002484 addq $3, %rax + 0x49, 0x83, 0xc4, 0x06, //0x00002488 addq $6, %r12 + 0x45, 0x89, 0xdf, //0x0000248c movl %r11d, %r15d + 0x41, 0x81, 0xfb, 0x80, 0x00, 0x00, 0x00, //0x0000248f cmpl $128, %r11d + 0x0f, 0x83, 0xb4, 0xfe, 0xff, 0xff, //0x00002496 jae LBB6_51 + //0x0000249c LBB6_64 + 0x4f, 0x8d, 0x4c, 0x21, 0x04, //0x0000249c leaq $4(%r9,%r12), %r9 + 0x45, 0x89, 0xdf, //0x000024a1 movl %r11d, %r15d + 0xe9, 0x90, 0x00, 0x00, 0x00, //0x000024a4 jmp LBB6_76 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000024a9 .p2align 4, 0x90 + //0x000024b0 LBB6_65 + 0x4f, 0x8d, 0x4c, 0x21, 0x04, //0x000024b0 leaq $4(%r9,%r12), %r9 + 0x44, 0x89, 0xf9, //0x000024b5 movl %r15d, %ecx + 0xc1, 0xe9, 0x0c, //0x000024b8 shrl $12, %ecx + 0x80, 0xc9, 0xe0, //0x000024bb orb $-32, %cl + 0x88, 0x08, //0x000024be movb %cl, (%rax) + 0x44, 0x89, 0xf9, //0x000024c0 movl %r15d, %ecx + 0xc1, 0xe9, 0x06, //0x000024c3 shrl $6, %ecx + 0x80, 0xe1, 0x3f, //0x000024c6 andb $63, %cl + 0x80, 0xc9, 0x80, //0x000024c9 orb $-128, %cl + 0x88, 0x48, 0x01, //0x000024cc movb %cl, $1(%rax) + 0x41, 0x80, 0xe7, 0x3f, //0x000024cf andb $63, %r15b + 0x41, 0x80, 0xcf, 0x80, //0x000024d3 orb $-128, %r15b + 0x44, 0x88, 0x78, 0x02, //0x000024d7 movb %r15b, $2(%rax) + //0x000024db LBB6_66 + 0x48, 0x83, 0xc0, 0x03, //0x000024db addq $3, %rax + 0xe9, 0x7c, 0xfa, 0xff, 0xff, //0x000024df jmp LBB6_6 + //0x000024e4 LBB6_67 + 0x45, 0x85, 0xed, //0x000024e4 testl %r13d, %r13d + 0x0f, 0x84, 0xf0, 0x01, 0x00, 0x00, //0x000024e7 je LBB6_99 + 0x41, 0x80, 0x79, 0xff, 0x5c, //0x000024ed cmpb $92, $-1(%r9) + 0x0f, 0x85, 0x19, 0x02, 0x00, 0x00, //0x000024f2 jne LBB6_102 + 0x41, 0x80, 0x39, 0x5c, //0x000024f8 cmpb $92, (%r9) + 0x0f, 0x85, 0x28, 0x00, 0x00, 0x00, //0x000024fc jne LBB6_74 + 0x41, 0x83, 0xfd, 0x01, //0x00002502 cmpl $1, %r13d + 0x0f, 0x8e, 0xd1, 0x01, 0x00, 0x00, //0x00002506 jle LBB6_99 + 0x45, 0x8a, 0x59, 0x01, //0x0000250c movb $1(%r9), %r11b + 0x41, 0x80, 0xfb, 0x22, //0x00002510 cmpb $34, %r11b + 0x0f, 0x84, 0x0a, 0x00, 0x00, 0x00, //0x00002514 je LBB6_73 + 0x41, 0x80, 0xfb, 0x5c, //0x0000251a cmpb $92, %r11b + 0x0f, 0x85, 0xd8, 0x02, 0x00, 0x00, //0x0000251e jne LBB6_114 + //0x00002524 LBB6_73 + 0x49, 0xff, 0xc1, //0x00002524 incq %r9 + 0x49, 0xff, 0xcd, //0x00002527 decq %r13 + //0x0000252a LBB6_74 + 0x49, 0xff, 0xc1, //0x0000252a incq %r9 + 0x49, 0xff, 0xcd, //0x0000252d decq %r13 + 0xe9, 0xa6, 0xfb, 0xff, 0xff, //0x00002530 jmp LBB6_26 + //0x00002535 LBB6_75 + 0x49, 0x83, 0xc1, 0x04, //0x00002535 addq $4, %r9 + //0x00002539 LBB6_76 + 0x44, 0x88, 0x38, //0x00002539 movb %r15b, (%rax) + 0x48, 0xff, 0xc0, //0x0000253c incq %rax + 0xe9, 0x1c, 0xfa, 0xff, 0xff, //0x0000253f jmp LBB6_6 + //0x00002544 LBB6_77 + 0x4f, 0x8d, 0x4c, 0x21, 0x04, //0x00002544 leaq $4(%r9,%r12), %r9 + 0xe9, 0x0f, 0x00, 0x00, 0x00, //0x00002549 jmp LBB6_79 + //0x0000254e LBB6_78 + 0x4f, 0x8d, 0x4c, 0x21, 0x05, //0x0000254e leaq $5(%r9,%r12), %r9 + 0x4d, 0x29, 0xe5, //0x00002553 subq %r12, %r13 + 0x49, 0x83, 0xc5, 0xfb, //0x00002556 addq $-5, %r13 + 0x4d, 0x89, 0xee, //0x0000255a movq %r13, %r14 + //0x0000255d LBB6_79 + 0x41, 0xf6, 0xc0, 0x02, //0x0000255d testb $2, %r8b + 0x0f, 0x85, 0x23, 0x00, 0x00, 0x00, //0x00002561 jne LBB6_83 + 0xe9, 0xec, 0x02, 0x00, 0x00, //0x00002567 jmp LBB6_121 + //0x0000256c LBB6_80 + 0x41, 0xf6, 0xc0, 0x02, //0x0000256c testb $2, %r8b + 0x0f, 0x85, 0x0f, 0x00, 0x00, 0x00, //0x00002570 jne LBB6_82 + 0xe9, 0x62, 0x01, 0x00, 0x00, //0x00002576 jmp LBB6_99 + //0x0000257b LBB6_81 + 0x41, 0xf6, 0xc0, 0x02, //0x0000257b testb $2, %r8b + 0x0f, 0x84, 0xe0, 0x02, 0x00, 0x00, //0x0000257f je LBB6_122 + //0x00002585 LBB6_82 + 0x4f, 0x8d, 0x4c, 0x21, 0x04, //0x00002585 leaq $4(%r9,%r12), %r9 + //0x0000258a LBB6_83 + 0x66, 0xc7, 0x00, 0xef, 0xbf, //0x0000258a movw $-16401, (%rax) + 0xc6, 0x40, 0x02, 0xbd, //0x0000258f movb $-67, $2(%rax) + 0xe9, 0x43, 0xff, 0xff, 0xff, //0x00002593 jmp LBB6_66 + //0x00002598 LBB6_84 + 0x4f, 0x8d, 0x4c, 0x21, 0x0a, //0x00002598 leaq $10(%r9,%r12), %r9 + 0x4d, 0x29, 0xe5, //0x0000259d subq %r12, %r13 + 0x49, 0x83, 0xc5, 0xf6, //0x000025a0 addq $-10, %r13 + 0xe9, 0x0c, 0x00, 0x00, 0x00, //0x000025a4 jmp LBB6_86 + //0x000025a9 LBB6_85 + 0x4f, 0x8d, 0x4c, 0x21, 0x0b, //0x000025a9 leaq $11(%r9,%r12), %r9 + 0x4d, 0x29, 0xe5, //0x000025ae subq %r12, %r13 + 0x49, 0x83, 0xc5, 0xf5, //0x000025b1 addq $-11, %r13 + //0x000025b5 LBB6_86 + 0x41, 0xc1, 0xe7, 0x0a, //0x000025b5 shll $10, %r15d + 0x43, 0x8d, 0x9c, 0x1f, 0x00, 0x24, 0xa0, 0xfc, //0x000025b9 leal $-56613888(%r15,%r11), %ebx + 0x81, 0xfb, 0x00, 0x00, 0x11, 0x00, //0x000025c1 cmpl $1114112, %ebx + 0x0f, 0x82, 0x1c, 0x00, 0x00, 0x00, //0x000025c7 jb LBB6_89 + 0x41, 0xf6, 0xc0, 0x02, //0x000025cd testb $2, %r8b + 0x0f, 0x84, 0x3e, 0x02, 0x00, 0x00, //0x000025d1 je LBB6_116 + 0x66, 0xc7, 0x00, 0xef, 0xbf, //0x000025d7 movw $-16401, (%rax) + 0xc6, 0x40, 0x02, 0xbd, //0x000025dc movb $-67, $2(%rax) + 0x48, 0x83, 0xc0, 0x03, //0x000025e0 addq $3, %rax + 0xe9, 0x7a, 0xf9, 0xff, 0xff, //0x000025e4 jmp LBB6_7 + //0x000025e9 LBB6_89 + 0x89, 0xd9, //0x000025e9 movl %ebx, %ecx + 0xc1, 0xe9, 0x12, //0x000025eb shrl $18, %ecx + 0x80, 0xc9, 0xf0, //0x000025ee orb $-16, %cl + 0x88, 0x08, //0x000025f1 movb %cl, (%rax) + 0x89, 0xd9, //0x000025f3 movl %ebx, %ecx + 0xc1, 0xe9, 0x0c, //0x000025f5 shrl $12, %ecx + 0x80, 0xe1, 0x3f, //0x000025f8 andb $63, %cl + 0x80, 0xc9, 0x80, //0x000025fb orb $-128, %cl + 0x88, 0x48, 0x01, //0x000025fe movb %cl, $1(%rax) + 0x89, 0xd9, //0x00002601 movl %ebx, %ecx + 0xc1, 0xe9, 0x06, //0x00002603 shrl $6, %ecx + 0x80, 0xe1, 0x3f, //0x00002606 andb $63, %cl + 0x80, 0xc9, 0x80, //0x00002609 orb $-128, %cl + 0x88, 0x48, 0x02, //0x0000260c movb %cl, $2(%rax) + 0x80, 0xe3, 0x3f, //0x0000260f andb $63, %bl + 0x80, 0xcb, 0x80, //0x00002612 orb $-128, %bl + 0x88, 0x58, 0x03, //0x00002615 movb %bl, $3(%rax) + 0x48, 0x83, 0xc0, 0x04, //0x00002618 addq $4, %rax + 0xe9, 0x42, 0xf9, 0xff, 0xff, //0x0000261c jmp LBB6_7 + //0x00002621 LBB6_90 + 0x4c, 0x89, 0xca, //0x00002621 movq %r9, %rdx + 0x48, 0x29, 0xfa, //0x00002624 subq %rdi, %rdx + 0x48, 0x8b, 0x7d, 0xd0, //0x00002627 movq $-48(%rbp), %rdi + 0x48, 0x89, 0x17, //0x0000262b movq %rdx, (%rdi) + 0x41, 0x8a, 0x31, //0x0000262e movb (%r9), %sil + 0x8d, 0x4e, 0xd0, //0x00002631 leal $-48(%rsi), %ecx + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00002634 movq $-2, %rax + 0x80, 0xf9, 0x0a, //0x0000263b cmpb $10, %cl + 0x0f, 0x82, 0x12, 0x00, 0x00, 0x00, //0x0000263e jb LBB6_92 + 0x40, 0x80, 0xe6, 0xdf, //0x00002644 andb $-33, %sil + 0x40, 0x80, 0xc6, 0xbf, //0x00002648 addb $-65, %sil + 0x40, 0x80, 0xfe, 0x05, //0x0000264c cmpb $5, %sil + 0x0f, 0x87, 0xc9, 0xf8, 0xff, 0xff, //0x00002650 ja LBB6_4 + //0x00002656 LBB6_92 + 0x48, 0x8d, 0x4a, 0x01, //0x00002656 leaq $1(%rdx), %rcx + 0x48, 0x89, 0x0f, //0x0000265a movq %rcx, (%rdi) + 0x41, 0x8a, 0x71, 0x01, //0x0000265d movb $1(%r9), %sil + 0x8d, 0x4e, 0xd0, //0x00002661 leal $-48(%rsi), %ecx + 0x80, 0xf9, 0x0a, //0x00002664 cmpb $10, %cl + 0x0f, 0x82, 0x12, 0x00, 0x00, 0x00, //0x00002667 jb LBB6_94 + 0x40, 0x80, 0xe6, 0xdf, //0x0000266d andb $-33, %sil + 0x40, 0x80, 0xc6, 0xbf, //0x00002671 addb $-65, %sil + 0x40, 0x80, 0xfe, 0x05, //0x00002675 cmpb $5, %sil + 0x0f, 0x87, 0xa0, 0xf8, 0xff, 0xff, //0x00002679 ja LBB6_4 + //0x0000267f LBB6_94 + 0x48, 0x8d, 0x4a, 0x02, //0x0000267f leaq $2(%rdx), %rcx + 0x48, 0x89, 0x0f, //0x00002683 movq %rcx, (%rdi) + 0x41, 0x8a, 0x71, 0x02, //0x00002686 movb $2(%r9), %sil + 0x8d, 0x4e, 0xd0, //0x0000268a leal $-48(%rsi), %ecx + 0x80, 0xf9, 0x0a, //0x0000268d cmpb $10, %cl + 0x0f, 0x82, 0x12, 0x00, 0x00, 0x00, //0x00002690 jb LBB6_96 + 0x40, 0x80, 0xe6, 0xdf, //0x00002696 andb $-33, %sil + 0x40, 0x80, 0xc6, 0xbf, //0x0000269a addb $-65, %sil + 0x40, 0x80, 0xfe, 0x05, //0x0000269e cmpb $5, %sil + 0x0f, 0x87, 0x77, 0xf8, 0xff, 0xff, //0x000026a2 ja LBB6_4 + //0x000026a8 LBB6_96 + 0x48, 0x8d, 0x4a, 0x03, //0x000026a8 leaq $3(%rdx), %rcx + 0x48, 0x89, 0x0f, //0x000026ac movq %rcx, (%rdi) + 0x41, 0x8a, 0x71, 0x03, //0x000026af movb $3(%r9), %sil + 0x8d, 0x4e, 0xd0, //0x000026b3 leal $-48(%rsi), %ecx + 0x80, 0xf9, 0x0a, //0x000026b6 cmpb $10, %cl + 0x0f, 0x82, 0x12, 0x00, 0x00, 0x00, //0x000026b9 jb LBB6_98 + 0x40, 0x80, 0xe6, 0xdf, //0x000026bf andb $-33, %sil + 0x40, 0x80, 0xc6, 0xbf, //0x000026c3 addb $-65, %sil + 0x40, 0x80, 0xfe, 0x05, //0x000026c7 cmpb $5, %sil + 0x0f, 0x87, 0x4e, 0xf8, 0xff, 0xff, //0x000026cb ja LBB6_4 + //0x000026d1 LBB6_98 + 0x48, 0x83, 0xc2, 0x04, //0x000026d1 addq $4, %rdx + 0x48, 0x89, 0x17, //0x000026d5 movq %rdx, (%rdi) + 0xe9, 0x42, 0xf8, 0xff, 0xff, //0x000026d8 jmp LBB6_4 + //0x000026dd LBB6_99 + 0x48, 0x8b, 0x45, 0xd0, //0x000026dd movq $-48(%rbp), %rax + 0x48, 0x89, 0x30, //0x000026e1 movq %rsi, (%rax) + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000026e4 movq $-1, %rax + 0xe9, 0x2f, 0xf8, 0xff, 0xff, //0x000026eb jmp LBB6_4 + //0x000026f0 LBB6_100 + 0x48, 0xf7, 0xd7, //0x000026f0 notq %rdi + 0x49, 0x01, 0xf9, //0x000026f3 addq %rdi, %r9 + 0x48, 0x8b, 0x45, 0xd0, //0x000026f6 movq $-48(%rbp), %rax + 0x4c, 0x89, 0x08, //0x000026fa movq %r9, (%rax) + 0x48, 0xc7, 0xc0, 0xfd, 0xff, 0xff, 0xff, //0x000026fd movq $-3, %rax + 0xe9, 0x16, 0xf8, 0xff, 0xff, //0x00002704 jmp LBB6_4 + //0x00002709 LBB6_101 + 0x45, 0x31, 0xed, //0x00002709 xorl %r13d, %r13d + 0xe9, 0x08, 0xf8, 0xff, 0xff, //0x0000270c jmp LBB6_3 + //0x00002711 LBB6_102 + 0x48, 0xf7, 0xd7, //0x00002711 notq %rdi + 0x49, 0x01, 0xf9, //0x00002714 addq %rdi, %r9 + 0xe9, 0xe6, 0x00, 0x00, 0x00, //0x00002717 jmp LBB6_115 + //0x0000271c LBB6_103 + 0x4b, 0x8d, 0x74, 0x21, 0x04, //0x0000271c leaq $4(%r9,%r12), %rsi + 0xe9, 0x05, 0x00, 0x00, 0x00, //0x00002721 jmp LBB6_105 + //0x00002726 LBB6_104 + 0x4b, 0x8d, 0x74, 0x21, 0x05, //0x00002726 leaq $5(%r9,%r12), %rsi + //0x0000272b LBB6_105 + 0x48, 0x89, 0xf2, //0x0000272b movq %rsi, %rdx + 0x48, 0x29, 0xfa, //0x0000272e subq %rdi, %rdx + 0x48, 0x83, 0xc2, 0x02, //0x00002731 addq $2, %rdx + 0x48, 0x8b, 0x45, 0xd0, //0x00002735 movq $-48(%rbp), %rax + 0x48, 0x89, 0x10, //0x00002739 movq %rdx, (%rax) + 0x40, 0x8a, 0x7e, 0x02, //0x0000273c movb $2(%rsi), %dil + 0x8d, 0x4f, 0xd0, //0x00002740 leal $-48(%rdi), %ecx + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00002743 movq $-2, %rax + 0x80, 0xf9, 0x0a, //0x0000274a cmpb $10, %cl + 0x0f, 0x82, 0x12, 0x00, 0x00, 0x00, //0x0000274d jb LBB6_107 + 0x40, 0x80, 0xe7, 0xdf, //0x00002753 andb $-33, %dil + 0x40, 0x80, 0xc7, 0xbf, //0x00002757 addb $-65, %dil + 0x40, 0x80, 0xff, 0x05, //0x0000275b cmpb $5, %dil + 0x0f, 0x87, 0xba, 0xf7, 0xff, 0xff, //0x0000275f ja LBB6_4 + //0x00002765 LBB6_107 + 0x48, 0x8d, 0x4a, 0x01, //0x00002765 leaq $1(%rdx), %rcx + 0x48, 0x8b, 0x7d, 0xd0, //0x00002769 movq $-48(%rbp), %rdi + 0x48, 0x89, 0x0f, //0x0000276d movq %rcx, (%rdi) + 0x40, 0x8a, 0x7e, 0x03, //0x00002770 movb $3(%rsi), %dil + 0x8d, 0x4f, 0xd0, //0x00002774 leal $-48(%rdi), %ecx + 0x80, 0xf9, 0x0a, //0x00002777 cmpb $10, %cl + 0x0f, 0x82, 0x12, 0x00, 0x00, 0x00, //0x0000277a jb LBB6_109 + 0x40, 0x80, 0xe7, 0xdf, //0x00002780 andb $-33, %dil + 0x40, 0x80, 0xc7, 0xbf, //0x00002784 addb $-65, %dil + 0x40, 0x80, 0xff, 0x05, //0x00002788 cmpb $5, %dil + 0x0f, 0x87, 0x8d, 0xf7, 0xff, 0xff, //0x0000278c ja LBB6_4 + //0x00002792 LBB6_109 + 0x48, 0x8d, 0x4a, 0x02, //0x00002792 leaq $2(%rdx), %rcx + 0x48, 0x8b, 0x7d, 0xd0, //0x00002796 movq $-48(%rbp), %rdi + 0x48, 0x89, 0x0f, //0x0000279a movq %rcx, (%rdi) + 0x40, 0x8a, 0x7e, 0x04, //0x0000279d movb $4(%rsi), %dil + 0x8d, 0x4f, 0xd0, //0x000027a1 leal $-48(%rdi), %ecx + 0x80, 0xf9, 0x0a, //0x000027a4 cmpb $10, %cl + 0x0f, 0x82, 0x12, 0x00, 0x00, 0x00, //0x000027a7 jb LBB6_111 + 0x40, 0x80, 0xe7, 0xdf, //0x000027ad andb $-33, %dil + 0x40, 0x80, 0xc7, 0xbf, //0x000027b1 addb $-65, %dil + 0x40, 0x80, 0xff, 0x05, //0x000027b5 cmpb $5, %dil + 0x0f, 0x87, 0x60, 0xf7, 0xff, 0xff, //0x000027b9 ja LBB6_4 + //0x000027bf LBB6_111 + 0x48, 0x8d, 0x4a, 0x03, //0x000027bf leaq $3(%rdx), %rcx + 0x48, 0x8b, 0x7d, 0xd0, //0x000027c3 movq $-48(%rbp), %rdi + 0x48, 0x89, 0x0f, //0x000027c7 movq %rcx, (%rdi) + 0x40, 0x8a, 0x76, 0x05, //0x000027ca movb $5(%rsi), %sil + 0x8d, 0x4e, 0xd0, //0x000027ce leal $-48(%rsi), %ecx + 0x80, 0xf9, 0x0a, //0x000027d1 cmpb $10, %cl + 0x0f, 0x82, 0x12, 0x00, 0x00, 0x00, //0x000027d4 jb LBB6_113 + 0x40, 0x80, 0xe6, 0xdf, //0x000027da andb $-33, %sil + 0x40, 0x80, 0xc6, 0xbf, //0x000027de addb $-65, %sil + 0x40, 0x80, 0xfe, 0x05, //0x000027e2 cmpb $5, %sil + 0x0f, 0x87, 0x33, 0xf7, 0xff, 0xff, //0x000027e6 ja LBB6_4 + //0x000027ec LBB6_113 + 0x48, 0x83, 0xc2, 0x04, //0x000027ec addq $4, %rdx + 0x48, 0x8b, 0x4d, 0xd0, //0x000027f0 movq $-48(%rbp), %rcx + 0x48, 0x89, 0x11, //0x000027f4 movq %rdx, (%rcx) + 0xe9, 0x23, 0xf7, 0xff, 0xff, //0x000027f7 jmp LBB6_4 + //0x000027fc LBB6_114 + 0x49, 0x29, 0xf9, //0x000027fc subq %rdi, %r9 + 0x49, 0xff, 0xc1, //0x000027ff incq %r9 + //0x00002802 LBB6_115 + 0x48, 0x8b, 0x45, 0xd0, //0x00002802 movq $-48(%rbp), %rax + 0x4c, 0x89, 0x08, //0x00002806 movq %r9, (%rax) + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00002809 movq $-2, %rax + 0xe9, 0x0a, 0xf7, 0xff, 0xff, //0x00002810 jmp LBB6_4 + //0x00002815 LBB6_116 + 0x49, 0x29, 0xf9, //0x00002815 subq %rdi, %r9 + 0x49, 0x83, 0xc1, 0xfc, //0x00002818 addq $-4, %r9 + //0x0000281c LBB6_117 + 0x48, 0x8b, 0x45, 0xd0, //0x0000281c movq $-48(%rbp), %rax + 0x4c, 0x89, 0x08, //0x00002820 movq %r9, (%rax) + 0x48, 0xc7, 0xc0, 0xfc, 0xff, 0xff, 0xff, //0x00002823 movq $-4, %rax + 0xe9, 0xf0, 0xf6, 0xff, 0xff, //0x0000282a jmp LBB6_4 + //0x0000282f LBB6_118 + 0x4b, 0x8d, 0x44, 0x21, 0x0a, //0x0000282f leaq $10(%r9,%r12), %rax + 0xe9, 0x05, 0x00, 0x00, 0x00, //0x00002834 jmp LBB6_120 + //0x00002839 LBB6_119 + 0x4b, 0x8d, 0x44, 0x21, 0x0b, //0x00002839 leaq $11(%r9,%r12), %rax + //0x0000283e LBB6_120 + 0x48, 0x29, 0xf8, //0x0000283e subq %rdi, %rax + 0x48, 0x83, 0xc0, 0xfc, //0x00002841 addq $-4, %rax + 0x48, 0x8b, 0x4d, 0xd0, //0x00002845 movq $-48(%rbp), %rcx + 0x48, 0x89, 0x01, //0x00002849 movq %rax, (%rcx) + 0x48, 0xc7, 0xc0, 0xfc, 0xff, 0xff, 0xff, //0x0000284c movq $-4, %rax + 0xe9, 0xc7, 0xf6, 0xff, 0xff, //0x00002853 jmp LBB6_4 + //0x00002858 LBB6_121 + 0x49, 0x8d, 0x44, 0x3a, 0x04, //0x00002858 leaq $4(%r10,%rdi), %rax + 0x49, 0x29, 0xc1, //0x0000285d subq %rax, %r9 + 0xe9, 0xb7, 0xff, 0xff, 0xff, //0x00002860 jmp LBB6_117 + //0x00002865 LBB6_122 + 0x4d, 0x01, 0xe1, //0x00002865 addq %r12, %r9 + 0x49, 0x29, 0xf9, //0x00002868 subq %rdi, %r9 + 0xe9, 0xac, 0xff, 0xff, 0xff, //0x0000286b jmp LBB6_117 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002870 .p2align 5, 0x00 + //0x00002880 LCPI7_0 + 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, //0x00002880 QUAD $0x2626262626262626; QUAD $0x2626262626262626 // .space 16, '&&&&&&&&&&&&&&&&' + 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, //0x00002890 QUAD $0x2626262626262626; QUAD $0x2626262626262626 // .space 16, '&&&&&&&&&&&&&&&&' + //0x000028a0 LCPI7_1 + 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, //0x000028a0 QUAD $0xe2e2e2e2e2e2e2e2; QUAD $0xe2e2e2e2e2e2e2e2 // .space 16, '\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2' + 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, //0x000028b0 QUAD $0xe2e2e2e2e2e2e2e2; QUAD $0xe2e2e2e2e2e2e2e2 // .space 16, '\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2' + //0x000028c0 LCPI7_2 + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, //0x000028c0 QUAD $0x0202020202020202; QUAD $0x0202020202020202 // .space 16, '\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02' + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, //0x000028d0 QUAD $0x0202020202020202; QUAD $0x0202020202020202 // .space 16, '\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02' + //0x000028e0 LCPI7_3 + 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, //0x000028e0 QUAD $0x3e3e3e3e3e3e3e3e; QUAD $0x3e3e3e3e3e3e3e3e // .space 16, '>>>>>>>>>>>>>>>>' + 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, //0x000028f0 QUAD $0x3e3e3e3e3e3e3e3e; QUAD $0x3e3e3e3e3e3e3e3e // .space 16, '>>>>>>>>>>>>>>>>' + //0x00002900 .p2align 4, 0x00 + //0x00002900 LCPI7_4 + 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, //0x00002900 QUAD $0x2626262626262626; QUAD $0x2626262626262626 // .space 16, '&&&&&&&&&&&&&&&&' + //0x00002910 LCPI7_5 + 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, //0x00002910 QUAD $0xe2e2e2e2e2e2e2e2; QUAD $0xe2e2e2e2e2e2e2e2 // .space 16, '\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2' + //0x00002920 LCPI7_6 + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, //0x00002920 QUAD $0x0202020202020202; QUAD $0x0202020202020202 // .space 16, '\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02' + //0x00002930 LCPI7_7 + 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, //0x00002930 QUAD $0x3e3e3e3e3e3e3e3e; QUAD $0x3e3e3e3e3e3e3e3e // .space 16, '>>>>>>>>>>>>>>>>' + //0x00002940 .p2align 4, 0x90 + //0x00002940 _html_escape + 0x55, //0x00002940 pushq %rbp + 0x48, 0x89, 0xe5, //0x00002941 movq %rsp, %rbp + 0x41, 0x57, //0x00002944 pushq %r15 + 0x41, 0x56, //0x00002946 pushq %r14 + 0x41, 0x55, //0x00002948 pushq %r13 + 0x41, 0x54, //0x0000294a pushq %r12 + 0x53, //0x0000294c pushq %rbx + 0x48, 0x83, 0xec, 0x18, //0x0000294d subq $24, %rsp + 0x48, 0x89, 0x4d, 0xc0, //0x00002951 movq %rcx, $-64(%rbp) + 0x49, 0x89, 0xd7, //0x00002955 movq %rdx, %r15 + 0x48, 0x89, 0x55, 0xc8, //0x00002958 movq %rdx, $-56(%rbp) + 0x48, 0x89, 0x7d, 0xd0, //0x0000295c movq %rdi, $-48(%rbp) + 0x48, 0x89, 0xf8, //0x00002960 movq %rdi, %rax + 0x48, 0x85, 0xf6, //0x00002963 testq %rsi, %rsi + 0x0f, 0x8e, 0xa8, 0x07, 0x00, 0x00, //0x00002966 jle LBB7_94 + 0x49, 0x89, 0xf2, //0x0000296c movq %rsi, %r10 + 0x48, 0x8b, 0x45, 0xc0, //0x0000296f movq $-64(%rbp), %rax + 0x4c, 0x8b, 0x08, //0x00002973 movq (%rax), %r9 + 0xc5, 0xfd, 0x6f, 0x1d, 0x02, 0xff, 0xff, 0xff, //0x00002976 vmovdqa $-254(%rip), %ymm3 /* LCPI7_0+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x25, 0x1a, 0xff, 0xff, 0xff, //0x0000297e vmovdqa $-230(%rip), %ymm4 /* LCPI7_1+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x2d, 0x32, 0xff, 0xff, 0xff, //0x00002986 vmovdqa $-206(%rip), %ymm5 /* LCPI7_2+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x35, 0x4a, 0xff, 0xff, 0xff, //0x0000298e vmovdqa $-182(%rip), %ymm6 /* LCPI7_3+0(%rip) */ + 0x4c, 0x8d, 0x35, 0x93, 0xec, 0x00, 0x00, //0x00002996 leaq $60563(%rip), %r14 /* __HtmlQuoteTab+0(%rip) */ + 0x48, 0xbf, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, //0x0000299d movabsq $12884901889, %rdi + 0x4c, 0x8b, 0x65, 0xd0, //0x000029a7 movq $-48(%rbp), %r12 + 0x4c, 0x8b, 0x7d, 0xc8, //0x000029ab movq $-56(%rbp), %r15 + 0x90, //0x000029af .p2align 4, 0x90 + //0x000029b0 LBB7_2 + 0x4d, 0x85, 0xc9, //0x000029b0 testq %r9, %r9 + 0x0f, 0x8e, 0x7a, 0x07, 0x00, 0x00, //0x000029b3 jle LBB7_96 + 0x49, 0x83, 0xfa, 0x1f, //0x000029b9 cmpq $31, %r10 + 0x0f, 0x9f, 0xc3, //0x000029bd setg %bl + 0x4c, 0x89, 0xc8, //0x000029c0 movq %r9, %rax + 0x4d, 0x89, 0xf8, //0x000029c3 movq %r15, %r8 + 0x4c, 0x89, 0xd6, //0x000029c6 movq %r10, %rsi + 0x4d, 0x89, 0xe5, //0x000029c9 movq %r12, %r13 + 0x49, 0x83, 0xf9, 0x20, //0x000029cc cmpq $32, %r9 + 0x0f, 0x8c, 0x7a, 0x00, 0x00, 0x00, //0x000029d0 jl LBB7_9 + 0x49, 0x83, 0xfa, 0x20, //0x000029d6 cmpq $32, %r10 + 0x0f, 0x8c, 0x70, 0x00, 0x00, 0x00, //0x000029da jl LBB7_9 + 0x4d, 0x89, 0xe5, //0x000029e0 movq %r12, %r13 + 0x4c, 0x89, 0xd6, //0x000029e3 movq %r10, %rsi + 0x4d, 0x89, 0xf8, //0x000029e6 movq %r15, %r8 + 0x4c, 0x89, 0xca, //0x000029e9 movq %r9, %rdx + 0x90, 0x90, 0x90, 0x90, //0x000029ec .p2align 4, 0x90 + //0x000029f0 LBB7_6 + 0xc4, 0xc1, 0x7e, 0x6f, 0x45, 0x00, //0x000029f0 vmovdqu (%r13), %ymm0 + 0xc5, 0xfd, 0x74, 0xcb, //0x000029f6 vpcmpeqb %ymm3, %ymm0, %ymm1 + 0xc5, 0xfd, 0x74, 0xd4, //0x000029fa vpcmpeqb %ymm4, %ymm0, %ymm2 + 0xc5, 0xed, 0xeb, 0xc9, //0x000029fe vpor %ymm1, %ymm2, %ymm1 + 0xc5, 0xfd, 0xeb, 0xd5, //0x00002a02 vpor %ymm5, %ymm0, %ymm2 + 0xc5, 0xed, 0x74, 0xd6, //0x00002a06 vpcmpeqb %ymm6, %ymm2, %ymm2 + 0xc5, 0xf5, 0xeb, 0xca, //0x00002a0a vpor %ymm2, %ymm1, %ymm1 + 0xc4, 0xc1, 0x7e, 0x7f, 0x00, //0x00002a0e vmovdqu %ymm0, (%r8) + 0xc5, 0xfd, 0xd7, 0xc1, //0x00002a13 vpmovmskb %ymm1, %eax + 0x85, 0xc0, //0x00002a17 testl %eax, %eax + 0x0f, 0x85, 0x01, 0x02, 0x00, 0x00, //0x00002a19 jne LBB7_19 + 0x49, 0x83, 0xc5, 0x20, //0x00002a1f addq $32, %r13 + 0x49, 0x83, 0xc0, 0x20, //0x00002a23 addq $32, %r8 + 0x48, 0x8d, 0x42, 0xe0, //0x00002a27 leaq $-32(%rdx), %rax + 0x48, 0x83, 0xfe, 0x3f, //0x00002a2b cmpq $63, %rsi + 0x0f, 0x9f, 0xc3, //0x00002a2f setg %bl + 0x48, 0x83, 0xfe, 0x40, //0x00002a32 cmpq $64, %rsi + 0x48, 0x8d, 0x76, 0xe0, //0x00002a36 leaq $-32(%rsi), %rsi + 0x0f, 0x8c, 0x10, 0x00, 0x00, 0x00, //0x00002a3a jl LBB7_9 + 0x48, 0x83, 0xfa, 0x3f, //0x00002a40 cmpq $63, %rdx + 0x48, 0x89, 0xc2, //0x00002a44 movq %rax, %rdx + 0x0f, 0x8f, 0xa3, 0xff, 0xff, 0xff, //0x00002a47 jg LBB7_6 + 0x90, 0x90, 0x90, //0x00002a4d .p2align 4, 0x90 + //0x00002a50 LBB7_9 + 0x84, 0xdb, //0x00002a50 testb %bl, %bl + 0x0f, 0x84, 0x88, 0x00, 0x00, 0x00, //0x00002a52 je LBB7_13 + 0xc4, 0xc1, 0x7e, 0x6f, 0x45, 0x00, //0x00002a58 vmovdqu (%r13), %ymm0 + 0xc5, 0xfd, 0x74, 0xcb, //0x00002a5e vpcmpeqb %ymm3, %ymm0, %ymm1 + 0xc5, 0xfd, 0x74, 0xd4, //0x00002a62 vpcmpeqb %ymm4, %ymm0, %ymm2 + 0xc5, 0xed, 0xeb, 0xc9, //0x00002a66 vpor %ymm1, %ymm2, %ymm1 + 0xc5, 0xfd, 0xeb, 0xc5, //0x00002a6a vpor %ymm5, %ymm0, %ymm0 + 0xc5, 0xfd, 0x74, 0xc6, //0x00002a6e vpcmpeqb %ymm6, %ymm0, %ymm0 + 0xc5, 0xf5, 0xeb, 0xc0, //0x00002a72 vpor %ymm0, %ymm1, %ymm0 + 0xc5, 0xfd, 0xd7, 0xc8, //0x00002a76 vpmovmskb %ymm0, %ecx + 0x48, 0xba, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00002a7a movabsq $4294967296, %rdx + 0x48, 0x09, 0xd1, //0x00002a84 orq %rdx, %rcx + 0x4c, 0x0f, 0xbc, 0xd9, //0x00002a87 bsfq %rcx, %r11 + 0xc4, 0xc1, 0x7a, 0x6f, 0x45, 0x00, //0x00002a8b vmovdqu (%r13), %xmm0 + 0xc4, 0xe3, 0xf9, 0x16, 0xc1, 0x01, //0x00002a91 vpextrq $1, %xmm0, %rcx + 0xc4, 0xe1, 0xf9, 0x7e, 0xc2, //0x00002a97 vmovq %xmm0, %rdx + 0x49, 0x39, 0xc3, //0x00002a9c cmpq %rax, %r11 + 0x0f, 0x8e, 0x92, 0x01, 0x00, 0x00, //0x00002a9f jle LBB7_20 + 0x48, 0x83, 0xf8, 0x10, //0x00002aa5 cmpq $16, %rax + 0x0f, 0x82, 0xd1, 0x01, 0x00, 0x00, //0x00002aa9 jb LBB7_23 + 0x49, 0x89, 0x10, //0x00002aaf movq %rdx, (%r8) + 0x49, 0x89, 0x48, 0x08, //0x00002ab2 movq %rcx, $8(%r8) + 0x4d, 0x8d, 0x5d, 0x10, //0x00002ab6 leaq $16(%r13), %r11 + 0x49, 0x83, 0xc0, 0x10, //0x00002aba addq $16, %r8 + 0x48, 0x8d, 0x70, 0xf0, //0x00002abe leaq $-16(%rax), %rsi + 0x48, 0x83, 0xfe, 0x08, //0x00002ac2 cmpq $8, %rsi + 0x0f, 0x83, 0xc4, 0x01, 0x00, 0x00, //0x00002ac6 jae LBB7_24 + 0xe9, 0xd1, 0x01, 0x00, 0x00, //0x00002acc jmp LBB7_25 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002ad1 .p2align 4, 0x90 + //0x00002ae0 LBB7_13 + 0x4c, 0x89, 0xf2, //0x00002ae0 movq %r14, %rdx + 0xc5, 0xf8, 0x77, //0x00002ae3 vzeroupper + 0x48, 0x83, 0xfe, 0x0f, //0x00002ae6 cmpq $15, %rsi + 0x41, 0x0f, 0x9f, 0xc6, //0x00002aea setg %r14b + 0x48, 0x83, 0xf8, 0x10, //0x00002aee cmpq $16, %rax + 0x0f, 0x8c, 0x22, 0x02, 0x00, 0x00, //0x00002af2 jl LBB7_30 + 0x48, 0x83, 0xfe, 0x10, //0x00002af8 cmpq $16, %rsi + 0xc5, 0xf9, 0x6f, 0x3d, 0xfc, 0xfd, 0xff, 0xff, //0x00002afc vmovdqa $-516(%rip), %xmm7 /* LCPI7_4+0(%rip) */ + 0xc5, 0x79, 0x6f, 0x05, 0x04, 0xfe, 0xff, 0xff, //0x00002b04 vmovdqa $-508(%rip), %xmm8 /* LCPI7_5+0(%rip) */ + 0xc5, 0x79, 0x6f, 0x0d, 0x0c, 0xfe, 0xff, 0xff, //0x00002b0c vmovdqa $-500(%rip), %xmm9 /* LCPI7_6+0(%rip) */ + 0xc5, 0x79, 0x6f, 0x15, 0x14, 0xfe, 0xff, 0xff, //0x00002b14 vmovdqa $-492(%rip), %xmm10 /* LCPI7_7+0(%rip) */ + 0x0f, 0x8c, 0x49, 0x02, 0x00, 0x00, //0x00002b1c jl LBB7_35 + 0xc5, 0xfd, 0x6f, 0x1d, 0x56, 0xfd, 0xff, 0xff, //0x00002b22 vmovdqa $-682(%rip), %ymm3 /* LCPI7_0+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x25, 0x6e, 0xfd, 0xff, 0xff, //0x00002b2a vmovdqa $-658(%rip), %ymm4 /* LCPI7_1+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x2d, 0x86, 0xfd, 0xff, 0xff, //0x00002b32 vmovdqa $-634(%rip), %ymm5 /* LCPI7_2+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x35, 0x9e, 0xfd, 0xff, 0xff, //0x00002b3a vmovdqa $-610(%rip), %ymm6 /* LCPI7_3+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002b42 .p2align 4, 0x90 + //0x00002b50 LBB7_16 + 0xc4, 0xc1, 0x7a, 0x6f, 0x45, 0x00, //0x00002b50 vmovdqu (%r13), %xmm0 + 0xc5, 0xf9, 0x74, 0xcf, //0x00002b56 vpcmpeqb %xmm7, %xmm0, %xmm1 + 0xc5, 0xb9, 0x74, 0xd0, //0x00002b5a vpcmpeqb %xmm0, %xmm8, %xmm2 + 0xc5, 0xe9, 0xeb, 0xc9, //0x00002b5e vpor %xmm1, %xmm2, %xmm1 + 0xc5, 0xb1, 0xeb, 0xd0, //0x00002b62 vpor %xmm0, %xmm9, %xmm2 + 0xc5, 0xa9, 0x74, 0xd2, //0x00002b66 vpcmpeqb %xmm2, %xmm10, %xmm2 + 0xc5, 0xf1, 0xeb, 0xca, //0x00002b6a vpor %xmm2, %xmm1, %xmm1 + 0xc4, 0xc1, 0x7a, 0x7f, 0x00, //0x00002b6e vmovdqu %xmm0, (%r8) + 0xc5, 0xf9, 0xd7, 0xc9, //0x00002b73 vpmovmskb %xmm1, %ecx + 0x66, 0x85, 0xc9, //0x00002b77 testw %cx, %cx + 0x0f, 0x85, 0xe3, 0x00, 0x00, 0x00, //0x00002b7a jne LBB7_22 + 0x49, 0x83, 0xc5, 0x10, //0x00002b80 addq $16, %r13 + 0x49, 0x83, 0xc0, 0x10, //0x00002b84 addq $16, %r8 + 0x4c, 0x8d, 0x58, 0xf0, //0x00002b88 leaq $-16(%rax), %r11 + 0x48, 0x83, 0xfe, 0x1f, //0x00002b8c cmpq $31, %rsi + 0x41, 0x0f, 0x9f, 0xc6, //0x00002b90 setg %r14b + 0x48, 0x83, 0xfe, 0x20, //0x00002b94 cmpq $32, %rsi + 0x48, 0x8d, 0x76, 0xf0, //0x00002b98 leaq $-16(%rsi), %rsi + 0x0f, 0x8c, 0x0e, 0x00, 0x00, 0x00, //0x00002b9c jl LBB7_31 + 0x48, 0x83, 0xf8, 0x1f, //0x00002ba2 cmpq $31, %rax + 0x4c, 0x89, 0xd8, //0x00002ba6 movq %r11, %rax + 0x0f, 0x8f, 0xa1, 0xff, 0xff, 0xff, //0x00002ba9 jg LBB7_16 + 0x90, //0x00002baf .p2align 4, 0x90 + //0x00002bb0 LBB7_31 + 0x45, 0x84, 0xf6, //0x00002bb0 testb %r14b, %r14b + 0x0f, 0x84, 0xde, 0x01, 0x00, 0x00, //0x00002bb3 je LBB7_36 + //0x00002bb9 LBB7_32 + 0xc4, 0xc1, 0x7a, 0x6f, 0x45, 0x00, //0x00002bb9 vmovdqu (%r13), %xmm0 + 0xc5, 0xf9, 0x74, 0xcf, //0x00002bbf vpcmpeqb %xmm7, %xmm0, %xmm1 + 0xc5, 0xb9, 0x74, 0xd0, //0x00002bc3 vpcmpeqb %xmm0, %xmm8, %xmm2 + 0xc5, 0xe9, 0xeb, 0xc9, //0x00002bc7 vpor %xmm1, %xmm2, %xmm1 + 0xc5, 0xb1, 0xeb, 0xd0, //0x00002bcb vpor %xmm0, %xmm9, %xmm2 + 0xc5, 0xa9, 0x74, 0xd2, //0x00002bcf vpcmpeqb %xmm2, %xmm10, %xmm2 + 0xc5, 0xf1, 0xeb, 0xca, //0x00002bd3 vpor %xmm2, %xmm1, %xmm1 + 0xc5, 0xf9, 0xd7, 0xc1, //0x00002bd7 vpmovmskb %xmm1, %eax + 0x0d, 0x00, 0x00, 0x01, 0x00, //0x00002bdb orl $65536, %eax + 0x44, 0x0f, 0xbc, 0xf0, //0x00002be0 bsfl %eax, %r14d + 0xc4, 0xe1, 0xf9, 0x7e, 0xc0, //0x00002be4 vmovq %xmm0, %rax + 0x4d, 0x39, 0xf3, //0x00002be9 cmpq %r14, %r11 + 0x0f, 0x8d, 0xaa, 0x02, 0x00, 0x00, //0x00002bec jge LBB7_55 + 0x49, 0x83, 0xfb, 0x08, //0x00002bf2 cmpq $8, %r11 + 0x0f, 0x82, 0xdc, 0x02, 0x00, 0x00, //0x00002bf6 jb LBB7_58 + 0x49, 0x89, 0x00, //0x00002bfc movq %rax, (%r8) + 0x49, 0x8d, 0x45, 0x08, //0x00002bff leaq $8(%r13), %rax + 0x49, 0x83, 0xc0, 0x08, //0x00002c03 addq $8, %r8 + 0x49, 0x8d, 0x73, 0xf8, //0x00002c07 leaq $-8(%r11), %rsi + 0x49, 0x89, 0xd6, //0x00002c0b movq %rdx, %r14 + 0x48, 0x83, 0xfe, 0x04, //0x00002c0e cmpq $4, %rsi + 0x0f, 0x8d, 0xd3, 0x02, 0x00, 0x00, //0x00002c12 jge LBB7_59 + 0xe9, 0xdf, 0x02, 0x00, 0x00, //0x00002c18 jmp LBB7_60 + 0x90, 0x90, 0x90, //0x00002c1d .p2align 4, 0x90 + //0x00002c20 LBB7_19 + 0x4d, 0x29, 0xe5, //0x00002c20 subq %r12, %r13 + 0x0f, 0xbc, 0xc0, //0x00002c23 bsfl %eax, %eax + 0x4c, 0x01, 0xe8, //0x00002c26 addq %r13, %rax + 0x48, 0x85, 0xc0, //0x00002c29 testq %rax, %rax + 0x0f, 0x89, 0xae, 0x03, 0x00, 0x00, //0x00002c2c jns LBB7_72 + 0xe9, 0xba, 0x04, 0x00, 0x00, //0x00002c32 jmp LBB7_92 + //0x00002c37 LBB7_20 + 0x41, 0x83, 0xfb, 0x10, //0x00002c37 cmpl $16, %r11d + 0x0f, 0x82, 0xc4, 0x01, 0x00, 0x00, //0x00002c3b jb LBB7_43 + 0x49, 0x89, 0x10, //0x00002c41 movq %rdx, (%r8) + 0x49, 0x89, 0x48, 0x08, //0x00002c44 movq %rcx, $8(%r8) + 0x49, 0x8d, 0x45, 0x10, //0x00002c48 leaq $16(%r13), %rax + 0x49, 0x83, 0xc0, 0x10, //0x00002c4c addq $16, %r8 + 0x49, 0x8d, 0x73, 0xf0, //0x00002c50 leaq $-16(%r11), %rsi + 0x48, 0x83, 0xfe, 0x08, //0x00002c54 cmpq $8, %rsi + 0x0f, 0x83, 0xb7, 0x01, 0x00, 0x00, //0x00002c58 jae LBB7_44 + 0xe9, 0xc4, 0x01, 0x00, 0x00, //0x00002c5e jmp LBB7_45 + //0x00002c63 LBB7_22 + 0x0f, 0xb7, 0xc1, //0x00002c63 movzwl %cx, %eax + 0x4d, 0x29, 0xe5, //0x00002c66 subq %r12, %r13 + 0x0f, 0xbc, 0xc0, //0x00002c69 bsfl %eax, %eax + 0x4c, 0x01, 0xe8, //0x00002c6c addq %r13, %rax + 0x49, 0x89, 0xd6, //0x00002c6f movq %rdx, %r14 + 0x48, 0x85, 0xc0, //0x00002c72 testq %rax, %rax + 0x0f, 0x89, 0x65, 0x03, 0x00, 0x00, //0x00002c75 jns LBB7_72 + 0xe9, 0x71, 0x04, 0x00, 0x00, //0x00002c7b jmp LBB7_92 + //0x00002c80 LBB7_23 + 0x4d, 0x89, 0xeb, //0x00002c80 movq %r13, %r11 + 0x48, 0x89, 0xc6, //0x00002c83 movq %rax, %rsi + 0x48, 0x83, 0xfe, 0x08, //0x00002c86 cmpq $8, %rsi + 0x0f, 0x82, 0x12, 0x00, 0x00, 0x00, //0x00002c8a jb LBB7_25 + //0x00002c90 LBB7_24 + 0x49, 0x8b, 0x0b, //0x00002c90 movq (%r11), %rcx + 0x49, 0x89, 0x08, //0x00002c93 movq %rcx, (%r8) + 0x49, 0x83, 0xc3, 0x08, //0x00002c96 addq $8, %r11 + 0x49, 0x83, 0xc0, 0x08, //0x00002c9a addq $8, %r8 + 0x48, 0x83, 0xc6, 0xf8, //0x00002c9e addq $-8, %rsi + //0x00002ca2 LBB7_25 + 0x48, 0x83, 0xfe, 0x04, //0x00002ca2 cmpq $4, %rsi + 0x0f, 0x8c, 0x42, 0x00, 0x00, 0x00, //0x00002ca6 jl LBB7_26 + 0x41, 0x8b, 0x0b, //0x00002cac movl (%r11), %ecx + 0x41, 0x89, 0x08, //0x00002caf movl %ecx, (%r8) + 0x49, 0x83, 0xc3, 0x04, //0x00002cb2 addq $4, %r11 + 0x49, 0x83, 0xc0, 0x04, //0x00002cb6 addq $4, %r8 + 0x48, 0x83, 0xc6, 0xfc, //0x00002cba addq $-4, %rsi + 0x48, 0x83, 0xfe, 0x02, //0x00002cbe cmpq $2, %rsi + 0x0f, 0x83, 0x30, 0x00, 0x00, 0x00, //0x00002cc2 jae LBB7_52 + //0x00002cc8 LBB7_27 + 0x48, 0x85, 0xf6, //0x00002cc8 testq %rsi, %rsi + 0x0f, 0x84, 0x06, 0x00, 0x00, 0x00, //0x00002ccb je LBB7_29 + //0x00002cd1 LBB7_28 + 0x41, 0x8a, 0x0b, //0x00002cd1 movb (%r11), %cl + 0x41, 0x88, 0x08, //0x00002cd4 movb %cl, (%r8) + //0x00002cd7 LBB7_29 + 0x4c, 0x29, 0xe0, //0x00002cd7 subq %r12, %rax + 0x4c, 0x01, 0xe8, //0x00002cda addq %r13, %rax + 0x48, 0xf7, 0xd0, //0x00002cdd notq %rax + 0x48, 0x85, 0xc0, //0x00002ce0 testq %rax, %rax + 0x0f, 0x89, 0xf7, 0x02, 0x00, 0x00, //0x00002ce3 jns LBB7_72 + 0xe9, 0x03, 0x04, 0x00, 0x00, //0x00002ce9 jmp LBB7_92 + //0x00002cee LBB7_26 + 0x48, 0x83, 0xfe, 0x02, //0x00002cee cmpq $2, %rsi + 0x0f, 0x82, 0xd0, 0xff, 0xff, 0xff, //0x00002cf2 jb LBB7_27 + //0x00002cf8 LBB7_52 + 0x41, 0x0f, 0xb7, 0x0b, //0x00002cf8 movzwl (%r11), %ecx + 0x66, 0x41, 0x89, 0x08, //0x00002cfc movw %cx, (%r8) + 0x49, 0x83, 0xc3, 0x02, //0x00002d00 addq $2, %r11 + 0x49, 0x83, 0xc0, 0x02, //0x00002d04 addq $2, %r8 + 0x48, 0x83, 0xc6, 0xfe, //0x00002d08 addq $-2, %rsi + 0x48, 0x85, 0xf6, //0x00002d0c testq %rsi, %rsi + 0x0f, 0x85, 0xbc, 0xff, 0xff, 0xff, //0x00002d0f jne LBB7_28 + 0xe9, 0xbd, 0xff, 0xff, 0xff, //0x00002d15 jmp LBB7_29 + //0x00002d1a LBB7_30 + 0x49, 0x89, 0xc3, //0x00002d1a movq %rax, %r11 + 0xc5, 0xfd, 0x6f, 0x1d, 0x5b, 0xfb, 0xff, 0xff, //0x00002d1d vmovdqa $-1189(%rip), %ymm3 /* LCPI7_0+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x25, 0x73, 0xfb, 0xff, 0xff, //0x00002d25 vmovdqa $-1165(%rip), %ymm4 /* LCPI7_1+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x2d, 0x8b, 0xfb, 0xff, 0xff, //0x00002d2d vmovdqa $-1141(%rip), %ymm5 /* LCPI7_2+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x35, 0xa3, 0xfb, 0xff, 0xff, //0x00002d35 vmovdqa $-1117(%rip), %ymm6 /* LCPI7_3+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x3d, 0xbb, 0xfb, 0xff, 0xff, //0x00002d3d vmovdqa $-1093(%rip), %xmm7 /* LCPI7_4+0(%rip) */ + 0xc5, 0x79, 0x6f, 0x05, 0xc3, 0xfb, 0xff, 0xff, //0x00002d45 vmovdqa $-1085(%rip), %xmm8 /* LCPI7_5+0(%rip) */ + 0xc5, 0x79, 0x6f, 0x0d, 0xcb, 0xfb, 0xff, 0xff, //0x00002d4d vmovdqa $-1077(%rip), %xmm9 /* LCPI7_6+0(%rip) */ + 0xc5, 0x79, 0x6f, 0x15, 0xd3, 0xfb, 0xff, 0xff, //0x00002d55 vmovdqa $-1069(%rip), %xmm10 /* LCPI7_7+0(%rip) */ + 0x45, 0x84, 0xf6, //0x00002d5d testb %r14b, %r14b + 0x0f, 0x84, 0x31, 0x00, 0x00, 0x00, //0x00002d60 je LBB7_36 + 0xe9, 0x4e, 0xfe, 0xff, 0xff, //0x00002d66 jmp LBB7_32 + //0x00002d6b LBB7_35 + 0x49, 0x89, 0xc3, //0x00002d6b movq %rax, %r11 + 0xc5, 0xfd, 0x6f, 0x1d, 0x0a, 0xfb, 0xff, 0xff, //0x00002d6e vmovdqa $-1270(%rip), %ymm3 /* LCPI7_0+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x25, 0x22, 0xfb, 0xff, 0xff, //0x00002d76 vmovdqa $-1246(%rip), %ymm4 /* LCPI7_1+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x2d, 0x3a, 0xfb, 0xff, 0xff, //0x00002d7e vmovdqa $-1222(%rip), %ymm5 /* LCPI7_2+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x35, 0x52, 0xfb, 0xff, 0xff, //0x00002d86 vmovdqa $-1198(%rip), %ymm6 /* LCPI7_3+0(%rip) */ + 0x45, 0x84, 0xf6, //0x00002d8e testb %r14b, %r14b + 0x0f, 0x85, 0x22, 0xfe, 0xff, 0xff, //0x00002d91 jne LBB7_32 + //0x00002d97 LBB7_36 + 0x4d, 0x85, 0xdb, //0x00002d97 testq %r11, %r11 + 0x0f, 0x8e, 0xaf, 0x01, 0x00, 0x00, //0x00002d9a jle LBB7_64 + 0x48, 0x85, 0xf6, //0x00002da0 testq %rsi, %rsi + 0x49, 0x89, 0xd6, //0x00002da3 movq %rdx, %r14 + 0x0f, 0x8e, 0xa6, 0x01, 0x00, 0x00, //0x00002da6 jle LBB7_65 + 0x90, 0x90, 0x90, 0x90, //0x00002dac .p2align 4, 0x90 + //0x00002db0 LBB7_38 + 0x41, 0x0f, 0xb6, 0x45, 0x00, //0x00002db0 movzbl (%r13), %eax + 0x48, 0x83, 0xf8, 0x3e, //0x00002db5 cmpq $62, %rax + 0x0f, 0x87, 0x14, 0x00, 0x00, 0x00, //0x00002db9 ja LBB7_40 + 0x48, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x50, //0x00002dbf movabsq $5764607797912141824, %rcx + 0x48, 0x0f, 0xa3, 0xc1, //0x00002dc9 btq %rax, %rcx + 0x0f, 0x82, 0xf1, 0x00, 0x00, 0x00, //0x00002dcd jb LBB7_57 + //0x00002dd3 LBB7_40 + 0x3c, 0xe2, //0x00002dd3 cmpb $-30, %al + 0x0f, 0x84, 0xe9, 0x00, 0x00, 0x00, //0x00002dd5 je LBB7_57 + 0x49, 0xff, 0xc5, //0x00002ddb incq %r13 + 0x41, 0x88, 0x00, //0x00002dde movb %al, (%r8) + 0x48, 0x83, 0xfe, 0x02, //0x00002de1 cmpq $2, %rsi + 0x48, 0x8d, 0x76, 0xff, //0x00002de5 leaq $-1(%rsi), %rsi + 0x0f, 0x8c, 0x63, 0x01, 0x00, 0x00, //0x00002de9 jl LBB7_65 + 0x49, 0xff, 0xc0, //0x00002def incq %r8 + 0x49, 0x83, 0xfb, 0x01, //0x00002df2 cmpq $1, %r11 + 0x4d, 0x8d, 0x5b, 0xff, //0x00002df6 leaq $-1(%r11), %r11 + 0x0f, 0x8f, 0xb0, 0xff, 0xff, 0xff, //0x00002dfa jg LBB7_38 + 0xe9, 0x4d, 0x01, 0x00, 0x00, //0x00002e00 jmp LBB7_65 + //0x00002e05 LBB7_43 + 0x4c, 0x89, 0xe8, //0x00002e05 movq %r13, %rax + 0x4c, 0x89, 0xde, //0x00002e08 movq %r11, %rsi + 0x48, 0x83, 0xfe, 0x08, //0x00002e0b cmpq $8, %rsi + 0x0f, 0x82, 0x12, 0x00, 0x00, 0x00, //0x00002e0f jb LBB7_45 + //0x00002e15 LBB7_44 + 0x48, 0x8b, 0x08, //0x00002e15 movq (%rax), %rcx + 0x49, 0x89, 0x08, //0x00002e18 movq %rcx, (%r8) + 0x48, 0x83, 0xc0, 0x08, //0x00002e1b addq $8, %rax + 0x49, 0x83, 0xc0, 0x08, //0x00002e1f addq $8, %r8 + 0x48, 0x83, 0xc6, 0xf8, //0x00002e23 addq $-8, %rsi + //0x00002e27 LBB7_45 + 0x48, 0x83, 0xfe, 0x04, //0x00002e27 cmpq $4, %rsi + 0x0f, 0x8c, 0x40, 0x00, 0x00, 0x00, //0x00002e2b jl LBB7_46 + 0x8b, 0x08, //0x00002e31 movl (%rax), %ecx + 0x41, 0x89, 0x08, //0x00002e33 movl %ecx, (%r8) + 0x48, 0x83, 0xc0, 0x04, //0x00002e36 addq $4, %rax + 0x49, 0x83, 0xc0, 0x04, //0x00002e3a addq $4, %r8 + 0x48, 0x83, 0xc6, 0xfc, //0x00002e3e addq $-4, %rsi + 0x48, 0x83, 0xfe, 0x02, //0x00002e42 cmpq $2, %rsi + 0x0f, 0x83, 0x2f, 0x00, 0x00, 0x00, //0x00002e46 jae LBB7_54 + //0x00002e4c LBB7_47 + 0x48, 0x85, 0xf6, //0x00002e4c testq %rsi, %rsi + 0x0f, 0x84, 0x05, 0x00, 0x00, 0x00, //0x00002e4f je LBB7_49 + //0x00002e55 LBB7_48 + 0x8a, 0x00, //0x00002e55 movb (%rax), %al + 0x41, 0x88, 0x00, //0x00002e57 movb %al, (%r8) + //0x00002e5a LBB7_49 + 0x4d, 0x29, 0xe5, //0x00002e5a subq %r12, %r13 + 0x4d, 0x01, 0xdd, //0x00002e5d addq %r11, %r13 + 0x4c, 0x89, 0xe8, //0x00002e60 movq %r13, %rax + 0x48, 0x85, 0xc0, //0x00002e63 testq %rax, %rax + 0x0f, 0x89, 0x74, 0x01, 0x00, 0x00, //0x00002e66 jns LBB7_72 + 0xe9, 0x80, 0x02, 0x00, 0x00, //0x00002e6c jmp LBB7_92 + //0x00002e71 LBB7_46 + 0x48, 0x83, 0xfe, 0x02, //0x00002e71 cmpq $2, %rsi + 0x0f, 0x82, 0xd1, 0xff, 0xff, 0xff, //0x00002e75 jb LBB7_47 + //0x00002e7b LBB7_54 + 0x0f, 0xb7, 0x08, //0x00002e7b movzwl (%rax), %ecx + 0x66, 0x41, 0x89, 0x08, //0x00002e7e movw %cx, (%r8) + 0x48, 0x83, 0xc0, 0x02, //0x00002e82 addq $2, %rax + 0x49, 0x83, 0xc0, 0x02, //0x00002e86 addq $2, %r8 + 0x48, 0x83, 0xc6, 0xfe, //0x00002e8a addq $-2, %rsi + 0x48, 0x85, 0xf6, //0x00002e8e testq %rsi, %rsi + 0x0f, 0x85, 0xbe, 0xff, 0xff, 0xff, //0x00002e91 jne LBB7_48 + 0xe9, 0xbe, 0xff, 0xff, 0xff, //0x00002e97 jmp LBB7_49 + //0x00002e9c LBB7_55 + 0x41, 0x83, 0xfe, 0x08, //0x00002e9c cmpl $8, %r14d + 0x0f, 0x82, 0xc6, 0x00, 0x00, 0x00, //0x00002ea0 jb LBB7_66 + 0x49, 0x89, 0x00, //0x00002ea6 movq %rax, (%r8) + 0x49, 0x8d, 0x75, 0x08, //0x00002ea9 leaq $8(%r13), %rsi + 0x49, 0x83, 0xc0, 0x08, //0x00002ead addq $8, %r8 + 0x49, 0x8d, 0x46, 0xf8, //0x00002eb1 leaq $-8(%r14), %rax + 0x48, 0x83, 0xf8, 0x04, //0x00002eb5 cmpq $4, %rax + 0x0f, 0x8d, 0xbd, 0x00, 0x00, 0x00, //0x00002eb9 jge LBB7_67 + 0xe9, 0xc9, 0x00, 0x00, 0x00, //0x00002ebf jmp LBB7_68 + //0x00002ec4 LBB7_57 + 0x4d, 0x29, 0xe5, //0x00002ec4 subq %r12, %r13 + 0x4c, 0x89, 0xe8, //0x00002ec7 movq %r13, %rax + 0x48, 0x85, 0xc0, //0x00002eca testq %rax, %rax + 0x0f, 0x89, 0x0d, 0x01, 0x00, 0x00, //0x00002ecd jns LBB7_72 + 0xe9, 0x19, 0x02, 0x00, 0x00, //0x00002ed3 jmp LBB7_92 + //0x00002ed8 LBB7_58 + 0x4c, 0x89, 0xe8, //0x00002ed8 movq %r13, %rax + 0x4c, 0x89, 0xde, //0x00002edb movq %r11, %rsi + 0x49, 0x89, 0xd6, //0x00002ede movq %rdx, %r14 + 0x48, 0x83, 0xfe, 0x04, //0x00002ee1 cmpq $4, %rsi + 0x0f, 0x8c, 0x11, 0x00, 0x00, 0x00, //0x00002ee5 jl LBB7_60 + //0x00002eeb LBB7_59 + 0x8b, 0x08, //0x00002eeb movl (%rax), %ecx + 0x41, 0x89, 0x08, //0x00002eed movl %ecx, (%r8) + 0x48, 0x83, 0xc0, 0x04, //0x00002ef0 addq $4, %rax + 0x49, 0x83, 0xc0, 0x04, //0x00002ef4 addq $4, %r8 + 0x48, 0x83, 0xc6, 0xfc, //0x00002ef8 addq $-4, %rsi + //0x00002efc LBB7_60 + 0x48, 0x83, 0xfe, 0x02, //0x00002efc cmpq $2, %rsi + 0x0f, 0x82, 0x21, 0x00, 0x00, 0x00, //0x00002f00 jb LBB7_61 + 0x0f, 0xb7, 0x08, //0x00002f06 movzwl (%rax), %ecx + 0x66, 0x41, 0x89, 0x08, //0x00002f09 movw %cx, (%r8) + 0x48, 0x83, 0xc0, 0x02, //0x00002f0d addq $2, %rax + 0x49, 0x83, 0xc0, 0x02, //0x00002f11 addq $2, %r8 + 0x48, 0x83, 0xc6, 0xfe, //0x00002f15 addq $-2, %rsi + 0x48, 0x85, 0xf6, //0x00002f19 testq %rsi, %rsi + 0x0f, 0x85, 0x0e, 0x00, 0x00, 0x00, //0x00002f1c jne LBB7_62 + 0xe9, 0x0e, 0x00, 0x00, 0x00, //0x00002f22 jmp LBB7_63 + //0x00002f27 LBB7_61 + 0x48, 0x85, 0xf6, //0x00002f27 testq %rsi, %rsi + 0x0f, 0x84, 0x05, 0x00, 0x00, 0x00, //0x00002f2a je LBB7_63 + //0x00002f30 LBB7_62 + 0x8a, 0x00, //0x00002f30 movb (%rax), %al + 0x41, 0x88, 0x00, //0x00002f32 movb %al, (%r8) + //0x00002f35 LBB7_63 + 0x4d, 0x29, 0xe3, //0x00002f35 subq %r12, %r11 + 0x4d, 0x01, 0xeb, //0x00002f38 addq %r13, %r11 + 0x49, 0xf7, 0xd3, //0x00002f3b notq %r11 + 0x4c, 0x89, 0xd8, //0x00002f3e movq %r11, %rax + 0x48, 0x85, 0xc0, //0x00002f41 testq %rax, %rax + 0x0f, 0x89, 0x96, 0x00, 0x00, 0x00, //0x00002f44 jns LBB7_72 + 0xe9, 0xa2, 0x01, 0x00, 0x00, //0x00002f4a jmp LBB7_92 + //0x00002f4f LBB7_64 + 0x49, 0x89, 0xd6, //0x00002f4f movq %rdx, %r14 + //0x00002f52 LBB7_65 + 0x4d, 0x29, 0xe5, //0x00002f52 subq %r12, %r13 + 0x48, 0xf7, 0xde, //0x00002f55 negq %rsi + 0x48, 0x19, 0xc0, //0x00002f58 sbbq %rax, %rax + 0x4c, 0x31, 0xe8, //0x00002f5b xorq %r13, %rax + 0x48, 0x85, 0xc0, //0x00002f5e testq %rax, %rax + 0x0f, 0x89, 0x79, 0x00, 0x00, 0x00, //0x00002f61 jns LBB7_72 + 0xe9, 0x85, 0x01, 0x00, 0x00, //0x00002f67 jmp LBB7_92 + //0x00002f6c LBB7_66 + 0x4c, 0x89, 0xee, //0x00002f6c movq %r13, %rsi + 0x4c, 0x89, 0xf0, //0x00002f6f movq %r14, %rax + 0x48, 0x83, 0xf8, 0x04, //0x00002f72 cmpq $4, %rax + 0x0f, 0x8c, 0x11, 0x00, 0x00, 0x00, //0x00002f76 jl LBB7_68 + //0x00002f7c LBB7_67 + 0x8b, 0x0e, //0x00002f7c movl (%rsi), %ecx + 0x41, 0x89, 0x08, //0x00002f7e movl %ecx, (%r8) + 0x48, 0x83, 0xc6, 0x04, //0x00002f81 addq $4, %rsi + 0x49, 0x83, 0xc0, 0x04, //0x00002f85 addq $4, %r8 + 0x48, 0x83, 0xc0, 0xfc, //0x00002f89 addq $-4, %rax + //0x00002f8d LBB7_68 + 0x48, 0x83, 0xf8, 0x02, //0x00002f8d cmpq $2, %rax + 0x0f, 0x82, 0x21, 0x00, 0x00, 0x00, //0x00002f91 jb LBB7_69 + 0x0f, 0xb7, 0x0e, //0x00002f97 movzwl (%rsi), %ecx + 0x66, 0x41, 0x89, 0x08, //0x00002f9a movw %cx, (%r8) + 0x48, 0x83, 0xc6, 0x02, //0x00002f9e addq $2, %rsi + 0x49, 0x83, 0xc0, 0x02, //0x00002fa2 addq $2, %r8 + 0x48, 0x83, 0xc0, 0xfe, //0x00002fa6 addq $-2, %rax + 0x48, 0x85, 0xc0, //0x00002faa testq %rax, %rax + 0x0f, 0x85, 0x0e, 0x00, 0x00, 0x00, //0x00002fad jne LBB7_70 + 0xe9, 0x0e, 0x00, 0x00, 0x00, //0x00002fb3 jmp LBB7_71 + //0x00002fb8 LBB7_69 + 0x48, 0x85, 0xc0, //0x00002fb8 testq %rax, %rax + 0x0f, 0x84, 0x05, 0x00, 0x00, 0x00, //0x00002fbb je LBB7_71 + //0x00002fc1 LBB7_70 + 0x8a, 0x06, //0x00002fc1 movb (%rsi), %al + 0x41, 0x88, 0x00, //0x00002fc3 movb %al, (%r8) + //0x00002fc6 LBB7_71 + 0x4d, 0x29, 0xe5, //0x00002fc6 subq %r12, %r13 + 0x4d, 0x01, 0xf5, //0x00002fc9 addq %r14, %r13 + 0x4c, 0x89, 0xe8, //0x00002fcc movq %r13, %rax + 0x49, 0x89, 0xd6, //0x00002fcf movq %rdx, %r14 + 0x48, 0x85, 0xc0, //0x00002fd2 testq %rax, %rax + 0x0f, 0x88, 0x16, 0x01, 0x00, 0x00, //0x00002fd5 js LBB7_92 + 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002fdb .p2align 4, 0x90 + //0x00002fe0 LBB7_72 + 0x49, 0x01, 0xc4, //0x00002fe0 addq %rax, %r12 + 0x49, 0x01, 0xc7, //0x00002fe3 addq %rax, %r15 + 0x49, 0x29, 0xc2, //0x00002fe6 subq %rax, %r10 + 0x0f, 0x8e, 0x22, 0x01, 0x00, 0x00, //0x00002fe9 jle LBB7_93 + 0x49, 0x29, 0xc1, //0x00002fef subq %rax, %r9 + 0x41, 0x8a, 0x0c, 0x24, //0x00002ff2 movb (%r12), %cl + 0x80, 0xf9, 0xe2, //0x00002ff6 cmpb $-30, %cl + 0x0f, 0x84, 0xa2, 0x00, 0x00, 0x00, //0x00002ff9 je LBB7_86 + 0x4c, 0x89, 0xe0, //0x00002fff movq %r12, %rax + //0x00003002 LBB7_75 + 0x0f, 0xb6, 0xc9, //0x00003002 movzbl %cl, %ecx + 0x48, 0xc1, 0xe1, 0x04, //0x00003005 shlq $4, %rcx + 0x4a, 0x8b, 0x14, 0x31, //0x00003009 movq (%rcx,%r14), %rdx + 0x48, 0x63, 0xf2, //0x0000300d movslq %edx, %rsi + 0x49, 0x29, 0xf1, //0x00003010 subq %rsi, %r9 + 0x0f, 0x8c, 0x0f, 0x01, 0x00, 0x00, //0x00003013 jl LBB7_95 + 0x48, 0xc1, 0xe2, 0x20, //0x00003019 shlq $32, %rdx + 0x4a, 0x8d, 0x5c, 0x31, 0x08, //0x0000301d leaq $8(%rcx,%r14), %rbx + 0x48, 0x39, 0xfa, //0x00003022 cmpq %rdi, %rdx + 0x0f, 0x8c, 0x25, 0x00, 0x00, 0x00, //0x00003025 jl LBB7_78 + 0x8b, 0x13, //0x0000302b movl (%rbx), %edx + 0x41, 0x89, 0x17, //0x0000302d movl %edx, (%r15) + 0x4a, 0x8d, 0x5c, 0x31, 0x0c, //0x00003030 leaq $12(%rcx,%r14), %rbx + 0x49, 0x8d, 0x57, 0x04, //0x00003035 leaq $4(%r15), %rdx + 0x48, 0x8d, 0x4e, 0xfc, //0x00003039 leaq $-4(%rsi), %rcx + 0x48, 0x83, 0xf9, 0x02, //0x0000303d cmpq $2, %rcx + 0x0f, 0x83, 0x19, 0x00, 0x00, 0x00, //0x00003041 jae LBB7_79 + 0xe9, 0x2c, 0x00, 0x00, 0x00, //0x00003047 jmp LBB7_80 + 0x90, 0x90, 0x90, 0x90, //0x0000304c .p2align 4, 0x90 + //0x00003050 LBB7_78 + 0x4c, 0x89, 0xfa, //0x00003050 movq %r15, %rdx + 0x48, 0x89, 0xf1, //0x00003053 movq %rsi, %rcx + 0x48, 0x83, 0xf9, 0x02, //0x00003056 cmpq $2, %rcx + 0x0f, 0x82, 0x18, 0x00, 0x00, 0x00, //0x0000305a jb LBB7_80 + //0x00003060 LBB7_79 + 0x49, 0x89, 0xf8, //0x00003060 movq %rdi, %r8 + 0x0f, 0xb7, 0x3b, //0x00003063 movzwl (%rbx), %edi + 0x66, 0x89, 0x3a, //0x00003066 movw %di, (%rdx) + 0x4c, 0x89, 0xc7, //0x00003069 movq %r8, %rdi + 0x48, 0x83, 0xc3, 0x02, //0x0000306c addq $2, %rbx + 0x48, 0x83, 0xc2, 0x02, //0x00003070 addq $2, %rdx + 0x48, 0x83, 0xc1, 0xfe, //0x00003074 addq $-2, %rcx + //0x00003078 LBB7_80 + 0x48, 0x85, 0xc9, //0x00003078 testq %rcx, %rcx + 0x0f, 0x84, 0x04, 0x00, 0x00, 0x00, //0x0000307b je LBB7_82 + 0x8a, 0x0b, //0x00003081 movb (%rbx), %cl + 0x88, 0x0a, //0x00003083 movb %cl, (%rdx) + //0x00003085 LBB7_82 + 0x49, 0x01, 0xf7, //0x00003085 addq %rsi, %r15 + //0x00003088 LBB7_83 + 0x48, 0xff, 0xc0, //0x00003088 incq %rax + 0x49, 0x89, 0xc4, //0x0000308b movq %rax, %r12 + 0x49, 0x83, 0xfa, 0x01, //0x0000308e cmpq $1, %r10 + 0x4d, 0x8d, 0x52, 0xff, //0x00003092 leaq $-1(%r10), %r10 + 0x0f, 0x8f, 0x14, 0xf9, 0xff, 0xff, //0x00003096 jg LBB7_2 + 0xe9, 0x73, 0x00, 0x00, 0x00, //0x0000309c jmp LBB7_94 + //0x000030a1 LBB7_86 + 0x49, 0x83, 0xfa, 0x03, //0x000030a1 cmpq $3, %r10 + 0x0f, 0x8c, 0x2b, 0x00, 0x00, 0x00, //0x000030a5 jl LBB7_90 + 0x41, 0x80, 0x7c, 0x24, 0x01, 0x80, //0x000030ab cmpb $-128, $1(%r12) + 0x0f, 0x85, 0x1f, 0x00, 0x00, 0x00, //0x000030b1 jne LBB7_90 + 0x41, 0x8a, 0x4c, 0x24, 0x02, //0x000030b7 movb $2(%r12), %cl + 0x89, 0xc8, //0x000030bc movl %ecx, %eax + 0x24, 0xfe, //0x000030be andb $-2, %al + 0x3c, 0xa8, //0x000030c0 cmpb $-88, %al + 0x0f, 0x85, 0x0e, 0x00, 0x00, 0x00, //0x000030c2 jne LBB7_90 + 0x49, 0x8d, 0x44, 0x24, 0x02, //0x000030c8 leaq $2(%r12), %rax + 0x49, 0x83, 0xc2, 0xfe, //0x000030cd addq $-2, %r10 + 0xe9, 0x2c, 0xff, 0xff, 0xff, //0x000030d1 jmp LBB7_75 + //0x000030d6 LBB7_90 + 0x4d, 0x85, 0xc9, //0x000030d6 testq %r9, %r9 + 0x0f, 0x8e, 0x54, 0x00, 0x00, 0x00, //0x000030d9 jle LBB7_96 + 0x41, 0xc6, 0x07, 0xe2, //0x000030df movb $-30, (%r15) + 0x49, 0xff, 0xc7, //0x000030e3 incq %r15 + 0x49, 0xff, 0xc9, //0x000030e6 decq %r9 + 0x4c, 0x89, 0xe0, //0x000030e9 movq %r12, %rax + 0xe9, 0x97, 0xff, 0xff, 0xff, //0x000030ec jmp LBB7_83 + //0x000030f1 LBB7_92 + 0x4c, 0x2b, 0x7d, 0xc8, //0x000030f1 subq $-56(%rbp), %r15 + 0x48, 0xf7, 0xd0, //0x000030f5 notq %rax + 0x49, 0x01, 0xc7, //0x000030f8 addq %rax, %r15 + 0x48, 0x8b, 0x4d, 0xc0, //0x000030fb movq $-64(%rbp), %rcx + 0x4c, 0x89, 0x39, //0x000030ff movq %r15, (%rcx) + 0x4c, 0x2b, 0x65, 0xd0, //0x00003102 subq $-48(%rbp), %r12 + 0x49, 0x01, 0xc4, //0x00003106 addq %rax, %r12 + 0x49, 0xf7, 0xd4, //0x00003109 notq %r12 + 0xe9, 0x29, 0x00, 0x00, 0x00, //0x0000310c jmp LBB7_97 + //0x00003111 LBB7_93 + 0x4c, 0x89, 0xe0, //0x00003111 movq %r12, %rax + //0x00003114 LBB7_94 + 0x4c, 0x2b, 0x7d, 0xc8, //0x00003114 subq $-56(%rbp), %r15 + 0x48, 0x8b, 0x4d, 0xc0, //0x00003118 movq $-64(%rbp), %rcx + 0x4c, 0x89, 0x39, //0x0000311c movq %r15, (%rcx) + 0x48, 0x2b, 0x45, 0xd0, //0x0000311f subq $-48(%rbp), %rax + 0xe9, 0x15, 0x00, 0x00, 0x00, //0x00003123 jmp LBB7_98 + //0x00003128 LBB7_95 + 0x4c, 0x2b, 0x7d, 0xc8, //0x00003128 subq $-56(%rbp), %r15 + 0x48, 0x8b, 0x45, 0xc0, //0x0000312c movq $-64(%rbp), %rax + 0x4c, 0x89, 0x38, //0x00003130 movq %r15, (%rax) + //0x00003133 LBB7_96 + 0x49, 0xf7, 0xd4, //0x00003133 notq %r12 + 0x4c, 0x03, 0x65, 0xd0, //0x00003136 addq $-48(%rbp), %r12 + //0x0000313a LBB7_97 + 0x4c, 0x89, 0xe0, //0x0000313a movq %r12, %rax + //0x0000313d LBB7_98 + 0x48, 0x83, 0xc4, 0x18, //0x0000313d addq $24, %rsp + 0x5b, //0x00003141 popq %rbx + 0x41, 0x5c, //0x00003142 popq %r12 + 0x41, 0x5d, //0x00003144 popq %r13 + 0x41, 0x5e, //0x00003146 popq %r14 + 0x41, 0x5f, //0x00003148 popq %r15 + 0x5d, //0x0000314a popq %rbp + 0xc5, 0xf8, 0x77, //0x0000314b vzeroupper + 0xc3, //0x0000314e retq + 0x90, //0x0000314f .p2align 4, 0x90 + //0x00003150 _atof_eisel_lemire64 + 0x55, //0x00003150 pushq %rbp + 0x48, 0x89, 0xe5, //0x00003151 movq %rsp, %rbp + 0x41, 0x57, //0x00003154 pushq %r15 + 0x41, 0x56, //0x00003156 pushq %r14 + 0x53, //0x00003158 pushq %rbx + 0x8d, 0x86, 0x5c, 0x01, 0x00, 0x00, //0x00003159 leal $348(%rsi), %eax + 0x3d, 0xb7, 0x02, 0x00, 0x00, //0x0000315f cmpl $695, %eax + 0x0f, 0x87, 0x08, 0x01, 0x00, 0x00, //0x00003164 ja LBB8_1 + 0x49, 0x89, 0xc8, //0x0000316a movq %rcx, %r8 + 0x41, 0x89, 0xd1, //0x0000316d movl %edx, %r9d + 0x48, 0x85, 0xff, //0x00003170 testq %rdi, %rdi + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x00003173 je LBB8_4 + 0x4c, 0x0f, 0xbd, 0xd7, //0x00003179 bsrq %rdi, %r10 + 0x49, 0x83, 0xf2, 0x3f, //0x0000317d xorq $63, %r10 + 0xe9, 0x06, 0x00, 0x00, 0x00, //0x00003181 jmp LBB8_5 + //0x00003186 LBB8_4 + 0x41, 0xba, 0x40, 0x00, 0x00, 0x00, //0x00003186 movl $64, %r10d + //0x0000318c LBB8_5 + 0x44, 0x89, 0xd1, //0x0000318c movl %r10d, %ecx + 0x48, 0xd3, 0xe7, //0x0000318f shlq %cl, %rdi + 0x89, 0xc1, //0x00003192 movl %eax, %ecx + 0x48, 0xc1, 0xe1, 0x04, //0x00003194 shlq $4, %rcx + 0x4c, 0x8d, 0x3d, 0xe1, 0x6e, 0x00, 0x00, //0x00003198 leaq $28385(%rip), %r15 /* _POW10_M128_TAB+0(%rip) */ + 0x48, 0x89, 0xf8, //0x0000319f movq %rdi, %rax + 0x4a, 0xf7, 0x64, 0x39, 0x08, //0x000031a2 mulq $8(%rcx,%r15) + 0x49, 0x89, 0xc3, //0x000031a7 movq %rax, %r11 + 0x49, 0x89, 0xd6, //0x000031aa movq %rdx, %r14 + 0x81, 0xe2, 0xff, 0x01, 0x00, 0x00, //0x000031ad andl $511, %edx + 0x48, 0x89, 0xfb, //0x000031b3 movq %rdi, %rbx + 0x48, 0xf7, 0xd3, //0x000031b6 notq %rbx + 0x48, 0x39, 0xd8, //0x000031b9 cmpq %rbx, %rax + 0x0f, 0x86, 0x42, 0x00, 0x00, 0x00, //0x000031bc jbe LBB8_11 + 0x81, 0xfa, 0xff, 0x01, 0x00, 0x00, //0x000031c2 cmpl $511, %edx + 0x0f, 0x85, 0x36, 0x00, 0x00, 0x00, //0x000031c8 jne LBB8_11 + 0x48, 0x89, 0xf8, //0x000031ce movq %rdi, %rax + 0x4a, 0xf7, 0x24, 0x39, //0x000031d1 mulq (%rcx,%r15) + 0x49, 0x01, 0xd3, //0x000031d5 addq %rdx, %r11 + 0x49, 0x83, 0xd6, 0x00, //0x000031d8 adcq $0, %r14 + 0x44, 0x89, 0xf2, //0x000031dc movl %r14d, %edx + 0x81, 0xe2, 0xff, 0x01, 0x00, 0x00, //0x000031df andl $511, %edx + 0x48, 0x39, 0xd8, //0x000031e5 cmpq %rbx, %rax + 0x0f, 0x86, 0x16, 0x00, 0x00, 0x00, //0x000031e8 jbe LBB8_11 + 0x49, 0x83, 0xfb, 0xff, //0x000031ee cmpq $-1, %r11 + 0x0f, 0x85, 0x0c, 0x00, 0x00, 0x00, //0x000031f2 jne LBB8_11 + 0x81, 0xfa, 0xff, 0x01, 0x00, 0x00, //0x000031f8 cmpl $511, %edx + 0x0f, 0x84, 0x6e, 0x00, 0x00, 0x00, //0x000031fe je LBB8_1 + //0x00003204 LBB8_11 + 0x4c, 0x89, 0xf7, //0x00003204 movq %r14, %rdi + 0x48, 0xc1, 0xef, 0x3f, //0x00003207 shrq $63, %rdi + 0x8d, 0x4f, 0x09, //0x0000320b leal $9(%rdi), %ecx + 0x49, 0xd3, 0xee, //0x0000320e shrq %cl, %r14 + 0x4c, 0x09, 0xda, //0x00003211 orq %r11, %rdx + 0x0f, 0x85, 0x0f, 0x00, 0x00, 0x00, //0x00003214 jne LBB8_14 + 0x44, 0x89, 0xf0, //0x0000321a movl %r14d, %eax + 0x83, 0xe0, 0x03, //0x0000321d andl $3, %eax + 0x83, 0xf8, 0x01, //0x00003220 cmpl $1, %eax + 0x0f, 0x84, 0x49, 0x00, 0x00, 0x00, //0x00003223 je LBB8_1 + //0x00003229 LBB8_14 + 0x69, 0xc6, 0x6a, 0x52, 0x03, 0x00, //0x00003229 imull $217706, %esi, %eax + 0xc1, 0xf8, 0x10, //0x0000322f sarl $16, %eax + 0x05, 0x3f, 0x04, 0x00, 0x00, //0x00003232 addl $1087, %eax + 0x48, 0x98, //0x00003237 cltq + 0x4c, 0x29, 0xd0, //0x00003239 subq %r10, %rax + 0x48, 0x83, 0xf7, 0x01, //0x0000323c xorq $1, %rdi + 0x48, 0x29, 0xf8, //0x00003240 subq %rdi, %rax + 0x44, 0x89, 0xf2, //0x00003243 movl %r14d, %edx + 0x83, 0xe2, 0x01, //0x00003246 andl $1, %edx + 0x4c, 0x01, 0xf2, //0x00003249 addq %r14, %rdx + 0x48, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, //0x0000324c movabsq $126100789566373888, %rcx + 0x48, 0x21, 0xd1, //0x00003256 andq %rdx, %rcx + 0x48, 0x83, 0xf9, 0x01, //0x00003259 cmpq $1, %rcx + 0x48, 0x83, 0xd8, 0xff, //0x0000325d sbbq $-1, %rax + 0x48, 0x8d, 0x70, 0xff, //0x00003261 leaq $-1(%rax), %rsi + 0x48, 0x81, 0xfe, 0xfd, 0x07, 0x00, 0x00, //0x00003265 cmpq $2045, %rsi + 0x0f, 0x86, 0x09, 0x00, 0x00, 0x00, //0x0000326c jbe LBB8_16 + //0x00003272 LBB8_1 + 0x31, 0xc0, //0x00003272 xorl %eax, %eax + //0x00003274 LBB8_17 + 0x5b, //0x00003274 popq %rbx + 0x41, 0x5e, //0x00003275 popq %r14 + 0x41, 0x5f, //0x00003277 popq %r15 + 0x5d, //0x00003279 popq %rbp + 0xc3, //0x0000327a retq + //0x0000327b LBB8_16 + 0x48, 0x83, 0xf9, 0x01, //0x0000327b cmpq $1, %rcx + 0xb1, 0x02, //0x0000327f movb $2, %cl + 0x80, 0xd9, 0x00, //0x00003281 sbbb $0, %cl + 0x48, 0xd3, 0xea, //0x00003284 shrq %cl, %rdx + 0x48, 0xc1, 0xe0, 0x34, //0x00003287 shlq $52, %rax + 0x48, 0xb9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, //0x0000328b movabsq $4503599627370495, %rcx + 0x48, 0x21, 0xd1, //0x00003295 andq %rdx, %rcx + 0x48, 0x09, 0xc1, //0x00003298 orq %rax, %rcx + 0x48, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x0000329b movabsq $-9223372036854775808, %rax + 0x48, 0x09, 0xc8, //0x000032a5 orq %rcx, %rax + 0x41, 0x83, 0xf9, 0xff, //0x000032a8 cmpl $-1, %r9d + 0x48, 0x0f, 0x45, 0xc1, //0x000032ac cmovneq %rcx, %rax + 0x49, 0x89, 0x00, //0x000032b0 movq %rax, (%r8) + 0xb0, 0x01, //0x000032b3 movb $1, %al + 0xe9, 0xba, 0xff, 0xff, 0xff, //0x000032b5 jmp LBB8_17 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000032ba .p2align 5, 0x00 + //0x000032c0 LCPI9_0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000032c0 QUAD $0x0000000000000000 // .space 8, '\x00\x00\x00\x00\x00\x00\x00\x00' + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000032c8 .quad 1 + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000032d0 .quad 1 + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000032d8 .quad 1 + //0x000032e0 .p2align 3, 0x00 + //0x000032e0 LCPI9_1 + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000032e0 .quad 1 + //0x000032e8 LCPI9_2 + 0x10, 0x27, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000032e8 .quad 10000 + //0x000032f0 LCPI9_3 + 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000032f0 .quad 10 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000032f8 .p2align 4, 0x90 + //0x00003300 _decimal_to_f64 + 0x55, //0x00003300 pushq %rbp + 0x48, 0x89, 0xe5, //0x00003301 movq %rsp, %rbp + 0x41, 0x57, //0x00003304 pushq %r15 + 0x41, 0x56, //0x00003306 pushq %r14 + 0x41, 0x55, //0x00003308 pushq %r13 + 0x41, 0x54, //0x0000330a pushq %r12 + 0x53, //0x0000330c pushq %rbx + 0x50, //0x0000330d pushq %rax + 0x49, 0x89, 0xf5, //0x0000330e movq %rsi, %r13 + 0x49, 0x89, 0xfc, //0x00003311 movq %rdi, %r12 + 0x48, 0xbb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, //0x00003314 movabsq $4503599627370496, %rbx + 0x83, 0x7f, 0x10, 0x00, //0x0000331e cmpl $0, $16(%rdi) + 0x0f, 0x84, 0x30, 0x00, 0x00, 0x00, //0x00003322 je LBB9_4 + 0x49, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x7f, //0x00003328 movabsq $9218868437227405312, %r14 + 0x41, 0x8b, 0x44, 0x24, 0x14, //0x00003332 movl $20(%r12), %eax + 0x45, 0x31, 0xff, //0x00003337 xorl %r15d, %r15d + 0x3d, 0x36, 0x01, 0x00, 0x00, //0x0000333a cmpl $310, %eax + 0x0f, 0x8f, 0x1e, 0x06, 0x00, 0x00, //0x0000333f jg LBB9_84 + 0x3d, 0xb6, 0xfe, 0xff, 0xff, //0x00003345 cmpl $-330, %eax + 0x0f, 0x8d, 0x13, 0x00, 0x00, 0x00, //0x0000334a jge LBB9_5 + 0x45, 0x31, 0xf6, //0x00003350 xorl %r14d, %r14d + 0xe9, 0x0b, 0x06, 0x00, 0x00, //0x00003353 jmp LBB9_84 + //0x00003358 LBB9_4 + 0x45, 0x31, 0xf6, //0x00003358 xorl %r14d, %r14d + 0x45, 0x31, 0xff, //0x0000335b xorl %r15d, %r15d + 0xe9, 0x00, 0x06, 0x00, 0x00, //0x0000335e jmp LBB9_84 + //0x00003363 LBB9_5 + 0x85, 0xc0, //0x00003363 testl %eax, %eax + 0x4c, 0x89, 0x6d, 0xd0, //0x00003365 movq %r13, $-48(%rbp) + 0x0f, 0x8e, 0xd0, 0x00, 0x00, 0x00, //0x00003369 jle LBB9_20 + 0x45, 0x31, 0xff, //0x0000336f xorl %r15d, %r15d + 0x4c, 0x8d, 0x2d, 0x97, 0x98, 0x00, 0x00, //0x00003372 leaq $39063(%rip), %r13 /* _POW_TAB+0(%rip) */ + 0xe9, 0x1e, 0x00, 0x00, 0x00, //0x00003379 jmp LBB9_9 + 0x90, 0x90, //0x0000337e .p2align 4, 0x90 + //0x00003380 LBB9_7 + 0xf7, 0xdb, //0x00003380 negl %ebx + 0x4c, 0x89, 0xe7, //0x00003382 movq %r12, %rdi + 0x89, 0xde, //0x00003385 movl %ebx, %esi + 0xe8, 0x14, 0x68, 0x00, 0x00, //0x00003387 callq _right_shift + //0x0000338c LBB9_8 + 0x45, 0x01, 0xf7, //0x0000338c addl %r14d, %r15d + 0x41, 0x8b, 0x44, 0x24, 0x14, //0x0000338f movl $20(%r12), %eax + 0x85, 0xc0, //0x00003394 testl %eax, %eax + 0x0f, 0x8e, 0xa3, 0x00, 0x00, 0x00, //0x00003396 jle LBB9_20 + //0x0000339c LBB9_9 + 0x41, 0xbe, 0x1b, 0x00, 0x00, 0x00, //0x0000339c movl $27, %r14d + 0x83, 0xf8, 0x08, //0x000033a2 cmpl $8, %eax + 0x0f, 0x8f, 0x07, 0x00, 0x00, 0x00, //0x000033a5 jg LBB9_11 + 0x89, 0xc0, //0x000033ab movl %eax, %eax + 0x45, 0x8b, 0x74, 0x85, 0x00, //0x000033ad movl (%r13,%rax,4), %r14d + //0x000033b2 LBB9_11 + 0x45, 0x85, 0xf6, //0x000033b2 testl %r14d, %r14d + 0x0f, 0x84, 0xd1, 0xff, 0xff, 0xff, //0x000033b5 je LBB9_8 + 0x41, 0x83, 0x7c, 0x24, 0x10, 0x00, //0x000033bb cmpl $0, $16(%r12) + 0x0f, 0x84, 0xc5, 0xff, 0xff, 0xff, //0x000033c1 je LBB9_8 + 0x44, 0x89, 0xf3, //0x000033c7 movl %r14d, %ebx + 0xf7, 0xdb, //0x000033ca negl %ebx + 0x45, 0x85, 0xf6, //0x000033cc testl %r14d, %r14d + 0x0f, 0x88, 0x2b, 0x00, 0x00, 0x00, //0x000033cf js LBB9_16 + 0x41, 0x83, 0xfe, 0x3d, //0x000033d5 cmpl $61, %r14d + 0x0f, 0x8c, 0xa1, 0xff, 0xff, 0xff, //0x000033d9 jl LBB9_7 + 0x90, //0x000033df .p2align 4, 0x90 + //0x000033e0 LBB9_15 + 0x4c, 0x89, 0xe7, //0x000033e0 movq %r12, %rdi + 0xbe, 0x3c, 0x00, 0x00, 0x00, //0x000033e3 movl $60, %esi + 0xe8, 0xb3, 0x67, 0x00, 0x00, //0x000033e8 callq _right_shift + 0x8d, 0x43, 0x3c, //0x000033ed leal $60(%rbx), %eax + 0x83, 0xfb, 0x88, //0x000033f0 cmpl $-120, %ebx + 0x89, 0xc3, //0x000033f3 movl %eax, %ebx + 0x0f, 0x8c, 0xe5, 0xff, 0xff, 0xff, //0x000033f5 jl LBB9_15 + 0xe9, 0x80, 0xff, 0xff, 0xff, //0x000033fb jmp LBB9_7 + //0x00003400 LBB9_16 + 0x41, 0x83, 0xfe, 0xc3, //0x00003400 cmpl $-61, %r14d + 0x0f, 0x8f, 0x26, 0x00, 0x00, 0x00, //0x00003404 jg LBB9_18 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000340a .p2align 4, 0x90 + //0x00003410 LBB9_17 + 0x4c, 0x89, 0xe7, //0x00003410 movq %r12, %rdi + 0xbe, 0x3c, 0x00, 0x00, 0x00, //0x00003413 movl $60, %esi + 0xe8, 0x93, 0x65, 0x00, 0x00, //0x00003418 callq _left_shift + 0x8d, 0x73, 0xc4, //0x0000341d leal $-60(%rbx), %esi + 0x83, 0xfb, 0x78, //0x00003420 cmpl $120, %ebx + 0x89, 0xf3, //0x00003423 movl %esi, %ebx + 0x0f, 0x8f, 0xe5, 0xff, 0xff, 0xff, //0x00003425 jg LBB9_17 + 0xe9, 0x02, 0x00, 0x00, 0x00, //0x0000342b jmp LBB9_19 + //0x00003430 LBB9_18 + 0x89, 0xde, //0x00003430 movl %ebx, %esi + //0x00003432 LBB9_19 + 0x4c, 0x89, 0xe7, //0x00003432 movq %r12, %rdi + 0xe8, 0x76, 0x65, 0x00, 0x00, //0x00003435 callq _left_shift + 0xe9, 0x4d, 0xff, 0xff, 0xff, //0x0000343a jmp LBB9_8 + //0x0000343f LBB9_20 + 0x4c, 0x8d, 0x35, 0xca, 0x97, 0x00, 0x00, //0x0000343f leaq $38858(%rip), %r14 /* _POW_TAB+0(%rip) */ + 0xe9, 0x15, 0x00, 0x00, 0x00, //0x00003446 jmp LBB9_23 + 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000344b .p2align 4, 0x90 + //0x00003450 LBB9_21 + 0x4c, 0x89, 0xe7, //0x00003450 movq %r12, %rdi + 0xe8, 0x58, 0x65, 0x00, 0x00, //0x00003453 callq _left_shift + //0x00003458 LBB9_22 + 0x45, 0x29, 0xef, //0x00003458 subl %r13d, %r15d + 0x41, 0x8b, 0x44, 0x24, 0x14, //0x0000345b movl $20(%r12), %eax + //0x00003460 LBB9_23 + 0x85, 0xc0, //0x00003460 testl %eax, %eax + 0x0f, 0x88, 0x18, 0x00, 0x00, 0x00, //0x00003462 js LBB9_26 + 0x0f, 0x85, 0xbe, 0x00, 0x00, 0x00, //0x00003468 jne LBB9_37 + 0x49, 0x8b, 0x0c, 0x24, //0x0000346e movq (%r12), %rcx + 0x80, 0x39, 0x35, //0x00003472 cmpb $53, (%rcx) + 0x0f, 0x8c, 0x14, 0x00, 0x00, 0x00, //0x00003475 jl LBB9_27 + 0xe9, 0xac, 0x00, 0x00, 0x00, //0x0000347b jmp LBB9_37 + //0x00003480 .p2align 4, 0x90 + //0x00003480 LBB9_26 + 0x41, 0xbd, 0x1b, 0x00, 0x00, 0x00, //0x00003480 movl $27, %r13d + 0x83, 0xf8, 0xf8, //0x00003486 cmpl $-8, %eax + 0x0f, 0x8c, 0x08, 0x00, 0x00, 0x00, //0x00003489 jl LBB9_28 + //0x0000348f LBB9_27 + 0xf7, 0xd8, //0x0000348f negl %eax + 0x48, 0x98, //0x00003491 cltq + 0x45, 0x8b, 0x2c, 0x86, //0x00003493 movl (%r14,%rax,4), %r13d + //0x00003497 LBB9_28 + 0x45, 0x85, 0xed, //0x00003497 testl %r13d, %r13d + 0x0f, 0x84, 0xb8, 0xff, 0xff, 0xff, //0x0000349a je LBB9_22 + 0x41, 0x83, 0x7c, 0x24, 0x10, 0x00, //0x000034a0 cmpl $0, $16(%r12) + 0x0f, 0x84, 0xac, 0xff, 0xff, 0xff, //0x000034a6 je LBB9_22 + 0x45, 0x85, 0xed, //0x000034ac testl %r13d, %r13d + 0x0f, 0x8e, 0x3b, 0x00, 0x00, 0x00, //0x000034af jle LBB9_34 + 0x44, 0x89, 0xee, //0x000034b5 movl %r13d, %esi + 0x41, 0x83, 0xfd, 0x3d, //0x000034b8 cmpl $61, %r13d + 0x0f, 0x8c, 0x8e, 0xff, 0xff, 0xff, //0x000034bc jl LBB9_21 + 0x44, 0x89, 0xeb, //0x000034c2 movl %r13d, %ebx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000034c5 .p2align 4, 0x90 + //0x000034d0 LBB9_33 + 0x4c, 0x89, 0xe7, //0x000034d0 movq %r12, %rdi + 0xbe, 0x3c, 0x00, 0x00, 0x00, //0x000034d3 movl $60, %esi + 0xe8, 0xd3, 0x64, 0x00, 0x00, //0x000034d8 callq _left_shift + 0x8d, 0x73, 0xc4, //0x000034dd leal $-60(%rbx), %esi + 0x83, 0xfb, 0x78, //0x000034e0 cmpl $120, %ebx + 0x89, 0xf3, //0x000034e3 movl %esi, %ebx + 0x0f, 0x8f, 0xe5, 0xff, 0xff, 0xff, //0x000034e5 jg LBB9_33 + 0xe9, 0x60, 0xff, 0xff, 0xff, //0x000034eb jmp LBB9_21 + //0x000034f0 LBB9_34 + 0x44, 0x89, 0xeb, //0x000034f0 movl %r13d, %ebx + 0x41, 0x83, 0xfd, 0xc3, //0x000034f3 cmpl $-61, %r13d + 0x0f, 0x8f, 0x1e, 0x00, 0x00, 0x00, //0x000034f7 jg LBB9_36 + 0x90, 0x90, 0x90, //0x000034fd .p2align 4, 0x90 + //0x00003500 LBB9_35 + 0x4c, 0x89, 0xe7, //0x00003500 movq %r12, %rdi + 0xbe, 0x3c, 0x00, 0x00, 0x00, //0x00003503 movl $60, %esi + 0xe8, 0x93, 0x66, 0x00, 0x00, //0x00003508 callq _right_shift + 0x8d, 0x43, 0x3c, //0x0000350d leal $60(%rbx), %eax + 0x83, 0xfb, 0x88, //0x00003510 cmpl $-120, %ebx + 0x89, 0xc3, //0x00003513 movl %eax, %ebx + 0x0f, 0x8c, 0xe5, 0xff, 0xff, 0xff, //0x00003515 jl LBB9_35 + //0x0000351b LBB9_36 + 0xf7, 0xdb, //0x0000351b negl %ebx + 0x4c, 0x89, 0xe7, //0x0000351d movq %r12, %rdi + 0x89, 0xde, //0x00003520 movl %ebx, %esi + 0xe8, 0x79, 0x66, 0x00, 0x00, //0x00003522 callq _right_shift + 0xe9, 0x2c, 0xff, 0xff, 0xff, //0x00003527 jmp LBB9_22 + //0x0000352c LBB9_37 + 0x41, 0x81, 0xff, 0x02, 0xfc, 0xff, 0xff, //0x0000352c cmpl $-1022, %r15d + 0x0f, 0x8f, 0x5b, 0x00, 0x00, 0x00, //0x00003533 jg LBB9_43 + 0x41, 0x83, 0x7c, 0x24, 0x10, 0x00, //0x00003539 cmpl $0, $16(%r12) + 0x4c, 0x8b, 0x6d, 0xd0, //0x0000353f movq $-48(%rbp), %r13 + 0x48, 0xbb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, //0x00003543 movabsq $4503599627370496, %rbx + 0x0f, 0x84, 0x67, 0x00, 0x00, 0x00, //0x0000354d je LBB9_45 + 0x41, 0x81, 0xff, 0xc6, 0xfb, 0xff, 0xff, //0x00003553 cmpl $-1082, %r15d + 0x0f, 0x8f, 0x65, 0x00, 0x00, 0x00, //0x0000355a jg LBB9_46 + 0x41, 0x81, 0xc7, 0xc1, 0x03, 0x00, 0x00, //0x00003560 addl $961, %r15d + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003567 .p2align 4, 0x90 + //0x00003570 LBB9_41 + 0x4c, 0x89, 0xe7, //0x00003570 movq %r12, %rdi + 0xbe, 0x3c, 0x00, 0x00, 0x00, //0x00003573 movl $60, %esi + 0xe8, 0x23, 0x66, 0x00, 0x00, //0x00003578 callq _right_shift + 0x41, 0x83, 0xc7, 0x3c, //0x0000357d addl $60, %r15d + 0x41, 0x83, 0xff, 0x88, //0x00003581 cmpl $-120, %r15d + 0x0f, 0x8c, 0xe5, 0xff, 0xff, 0xff, //0x00003585 jl LBB9_41 + 0x41, 0x83, 0xc7, 0x3c, //0x0000358b addl $60, %r15d + 0xe9, 0x38, 0x00, 0x00, 0x00, //0x0000358f jmp LBB9_47 + //0x00003594 LBB9_43 + 0x41, 0x81, 0xff, 0x00, 0x04, 0x00, 0x00, //0x00003594 cmpl $1024, %r15d + 0x4c, 0x8b, 0x6d, 0xd0, //0x0000359b movq $-48(%rbp), %r13 + 0x48, 0xbb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, //0x0000359f movabsq $4503599627370496, %rbx + 0x0f, 0x8f, 0x7d, 0x03, 0x00, 0x00, //0x000035a9 jg LBB9_81 + 0x41, 0xff, 0xcf, //0x000035af decl %r15d + 0x45, 0x89, 0xfe, //0x000035b2 movl %r15d, %r14d + 0xe9, 0x26, 0x00, 0x00, 0x00, //0x000035b5 jmp LBB9_48 + //0x000035ba LBB9_45 + 0x41, 0xbe, 0x02, 0xfc, 0xff, 0xff, //0x000035ba movl $-1022, %r14d + 0xe9, 0x34, 0x00, 0x00, 0x00, //0x000035c0 jmp LBB9_50 + //0x000035c5 LBB9_46 + 0x41, 0x81, 0xc7, 0xfd, 0x03, 0x00, 0x00, //0x000035c5 addl $1021, %r15d + //0x000035cc LBB9_47 + 0x41, 0xf7, 0xdf, //0x000035cc negl %r15d + 0x4c, 0x89, 0xe7, //0x000035cf movq %r12, %rdi + 0x44, 0x89, 0xfe, //0x000035d2 movl %r15d, %esi + 0xe8, 0xc6, 0x65, 0x00, 0x00, //0x000035d5 callq _right_shift + 0x41, 0xbe, 0x02, 0xfc, 0xff, 0xff, //0x000035da movl $-1022, %r14d + //0x000035e0 LBB9_48 + 0x41, 0x83, 0x7c, 0x24, 0x10, 0x00, //0x000035e0 cmpl $0, $16(%r12) + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x000035e6 je LBB9_50 + 0x4c, 0x89, 0xe7, //0x000035ec movq %r12, %rdi + 0xbe, 0x35, 0x00, 0x00, 0x00, //0x000035ef movl $53, %esi + 0xe8, 0xb7, 0x63, 0x00, 0x00, //0x000035f4 callq _left_shift + //0x000035f9 LBB9_50 + 0x4d, 0x63, 0x54, 0x24, 0x14, //0x000035f9 movslq $20(%r12), %r10 + 0x49, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, //0x000035fe movq $-1, %r15 + 0x49, 0x83, 0xfa, 0x14, //0x00003605 cmpq $20, %r10 + 0x0f, 0x8f, 0x35, 0x03, 0x00, 0x00, //0x00003609 jg LBB9_83 + 0x44, 0x89, 0xd1, //0x0000360f movl %r10d, %ecx + 0x45, 0x85, 0xd2, //0x00003612 testl %r10d, %r10d + 0x0f, 0x8e, 0x41, 0x00, 0x00, 0x00, //0x00003615 jle LBB9_55 + 0x49, 0x63, 0x74, 0x24, 0x10, //0x0000361b movslq $16(%r12), %rsi + 0x31, 0xd2, //0x00003620 xorl %edx, %edx + 0x45, 0x31, 0xff, //0x00003622 xorl %r15d, %r15d + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003625 .p2align 4, 0x90 + //0x00003630 LBB9_53 + 0x48, 0x39, 0xf2, //0x00003630 cmpq %rsi, %rdx + 0x0f, 0x8d, 0x28, 0x00, 0x00, 0x00, //0x00003633 jge LBB9_56 + 0x4b, 0x8d, 0x04, 0xbf, //0x00003639 leaq (%r15,%r15,4), %rax + 0x49, 0x8b, 0x3c, 0x24, //0x0000363d movq (%r12), %rdi + 0x48, 0x0f, 0xbe, 0x3c, 0x17, //0x00003641 movsbq (%rdi,%rdx), %rdi + 0x4c, 0x8d, 0x7c, 0x47, 0xd0, //0x00003646 leaq $-48(%rdi,%rax,2), %r15 + 0x48, 0xff, 0xc2, //0x0000364b incq %rdx + 0x48, 0x39, 0xd1, //0x0000364e cmpq %rdx, %rcx + 0x0f, 0x85, 0xd9, 0xff, 0xff, 0xff, //0x00003651 jne LBB9_53 + 0xe9, 0x05, 0x00, 0x00, 0x00, //0x00003657 jmp LBB9_56 + //0x0000365c LBB9_55 + 0x31, 0xd2, //0x0000365c xorl %edx, %edx + 0x45, 0x31, 0xff, //0x0000365e xorl %r15d, %r15d + //0x00003661 LBB9_56 + 0x39, 0xd1, //0x00003661 cmpl %edx, %ecx + 0x0f, 0x8e, 0x46, 0x02, 0x00, 0x00, //0x00003663 jle LBB9_69 + 0x45, 0x89, 0xd1, //0x00003669 movl %r10d, %r9d + 0x41, 0x29, 0xd1, //0x0000366c subl %edx, %r9d + 0x41, 0x83, 0xf9, 0x10, //0x0000366f cmpl $16, %r9d + 0x0f, 0x82, 0x22, 0x02, 0x00, 0x00, //0x00003673 jb LBB9_67 + 0x45, 0x89, 0xc8, //0x00003679 movl %r9d, %r8d + 0xc5, 0xf9, 0x6f, 0x05, 0x3c, 0xfc, 0xff, 0xff, //0x0000367c vmovdqa $-964(%rip), %xmm0 /* LCPI9_0+0(%rip) */ + 0xc4, 0xc3, 0xf9, 0x22, 0xc7, 0x00, //0x00003684 vpinsrq $0, %r15, %xmm0, %xmm0 + 0x41, 0x83, 0xe0, 0xf0, //0x0000368a andl $-16, %r8d + 0xc4, 0xe3, 0x7d, 0x02, 0x05, 0x28, 0xfc, 0xff, 0xff, 0xf0, //0x0000368e vpblendd $240, $-984(%rip), %ymm0, %ymm0 /* LCPI9_0+0(%rip) */ + 0x41, 0x8d, 0x78, 0xf0, //0x00003698 leal $-16(%r8), %edi + 0x89, 0xf8, //0x0000369c movl %edi, %eax + 0xc1, 0xe8, 0x04, //0x0000369e shrl $4, %eax + 0xff, 0xc0, //0x000036a1 incl %eax + 0x89, 0xc6, //0x000036a3 movl %eax, %esi + 0x83, 0xe6, 0x03, //0x000036a5 andl $3, %esi + 0x83, 0xff, 0x30, //0x000036a8 cmpl $48, %edi + 0x0f, 0x83, 0x16, 0x00, 0x00, 0x00, //0x000036ab jae LBB9_60 + 0xc4, 0xe2, 0x7d, 0x59, 0x15, 0x26, 0xfc, 0xff, 0xff, //0x000036b1 vpbroadcastq $-986(%rip), %ymm2 /* LCPI9_1+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0xda, //0x000036ba vmovdqa %ymm2, %ymm3 + 0xc5, 0xfd, 0x6f, 0xca, //0x000036be vmovdqa %ymm2, %ymm1 + 0xe9, 0x8a, 0x00, 0x00, 0x00, //0x000036c2 jmp LBB9_62 + //0x000036c7 LBB9_60 + 0x89, 0xf7, //0x000036c7 movl %esi, %edi + 0x29, 0xc7, //0x000036c9 subl %eax, %edi + 0xc4, 0xe2, 0x7d, 0x59, 0x15, 0x0c, 0xfc, 0xff, 0xff, //0x000036cb vpbroadcastq $-1012(%rip), %ymm2 /* LCPI9_1+0(%rip) */ + 0xc4, 0xe2, 0x7d, 0x59, 0x25, 0x0b, 0xfc, 0xff, 0xff, //0x000036d4 vpbroadcastq $-1013(%rip), %ymm4 /* LCPI9_2+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0xda, //0x000036dd vmovdqa %ymm2, %ymm3 + 0xc5, 0xfd, 0x6f, 0xca, //0x000036e1 vmovdqa %ymm2, %ymm1 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000036e5 .p2align 4, 0x90 + //0x000036f0 LBB9_61 + 0xc5, 0xfd, 0xf4, 0xec, //0x000036f0 vpmuludq %ymm4, %ymm0, %ymm5 + 0xc5, 0xfd, 0x73, 0xd0, 0x20, //0x000036f4 vpsrlq $32, %ymm0, %ymm0 + 0xc5, 0xfd, 0xf4, 0xc4, //0x000036f9 vpmuludq %ymm4, %ymm0, %ymm0 + 0xc5, 0xfd, 0x73, 0xf0, 0x20, //0x000036fd vpsllq $32, %ymm0, %ymm0 + 0xc5, 0xd5, 0xd4, 0xc0, //0x00003702 vpaddq %ymm0, %ymm5, %ymm0 + 0xc5, 0xed, 0xf4, 0xec, //0x00003706 vpmuludq %ymm4, %ymm2, %ymm5 + 0xc5, 0xed, 0x73, 0xd2, 0x20, //0x0000370a vpsrlq $32, %ymm2, %ymm2 + 0xc5, 0xed, 0xf4, 0xd4, //0x0000370f vpmuludq %ymm4, %ymm2, %ymm2 + 0xc5, 0xed, 0x73, 0xf2, 0x20, //0x00003713 vpsllq $32, %ymm2, %ymm2 + 0xc5, 0xd5, 0xd4, 0xd2, //0x00003718 vpaddq %ymm2, %ymm5, %ymm2 + 0xc5, 0xe5, 0xf4, 0xec, //0x0000371c vpmuludq %ymm4, %ymm3, %ymm5 + 0xc5, 0xe5, 0x73, 0xd3, 0x20, //0x00003720 vpsrlq $32, %ymm3, %ymm3 + 0xc5, 0xe5, 0xf4, 0xdc, //0x00003725 vpmuludq %ymm4, %ymm3, %ymm3 + 0xc5, 0xe5, 0x73, 0xf3, 0x20, //0x00003729 vpsllq $32, %ymm3, %ymm3 + 0xc5, 0xd5, 0xd4, 0xdb, //0x0000372e vpaddq %ymm3, %ymm5, %ymm3 + 0xc5, 0xf5, 0xf4, 0xec, //0x00003732 vpmuludq %ymm4, %ymm1, %ymm5 + 0xc5, 0xf5, 0x73, 0xd1, 0x20, //0x00003736 vpsrlq $32, %ymm1, %ymm1 + 0xc5, 0xf5, 0xf4, 0xcc, //0x0000373b vpmuludq %ymm4, %ymm1, %ymm1 + 0xc5, 0xf5, 0x73, 0xf1, 0x20, //0x0000373f vpsllq $32, %ymm1, %ymm1 + 0xc5, 0xd5, 0xd4, 0xc9, //0x00003744 vpaddq %ymm1, %ymm5, %ymm1 + 0x83, 0xc7, 0x04, //0x00003748 addl $4, %edi + 0x0f, 0x85, 0x9f, 0xff, 0xff, 0xff, //0x0000374b jne LBB9_61 + //0x00003751 LBB9_62 + 0x85, 0xf6, //0x00003751 testl %esi, %esi + 0x0f, 0x84, 0x77, 0x00, 0x00, 0x00, //0x00003753 je LBB9_65 + 0xf7, 0xde, //0x00003759 negl %esi + 0xc4, 0xe2, 0x7d, 0x59, 0x25, 0x8c, 0xfb, 0xff, 0xff, //0x0000375b vpbroadcastq $-1140(%rip), %ymm4 /* LCPI9_3+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003764 .p2align 4, 0x90 + //0x00003770 LBB9_64 + 0xc5, 0xfd, 0xf4, 0xec, //0x00003770 vpmuludq %ymm4, %ymm0, %ymm5 + 0xc5, 0xfd, 0x73, 0xd0, 0x20, //0x00003774 vpsrlq $32, %ymm0, %ymm0 + 0xc5, 0xfd, 0xf4, 0xc4, //0x00003779 vpmuludq %ymm4, %ymm0, %ymm0 + 0xc5, 0xfd, 0x73, 0xf0, 0x20, //0x0000377d vpsllq $32, %ymm0, %ymm0 + 0xc5, 0xd5, 0xd4, 0xc0, //0x00003782 vpaddq %ymm0, %ymm5, %ymm0 + 0xc5, 0xed, 0xf4, 0xec, //0x00003786 vpmuludq %ymm4, %ymm2, %ymm5 + 0xc5, 0xed, 0x73, 0xd2, 0x20, //0x0000378a vpsrlq $32, %ymm2, %ymm2 + 0xc5, 0xed, 0xf4, 0xd4, //0x0000378f vpmuludq %ymm4, %ymm2, %ymm2 + 0xc5, 0xed, 0x73, 0xf2, 0x20, //0x00003793 vpsllq $32, %ymm2, %ymm2 + 0xc5, 0xd5, 0xd4, 0xd2, //0x00003798 vpaddq %ymm2, %ymm5, %ymm2 + 0xc5, 0xe5, 0xf4, 0xec, //0x0000379c vpmuludq %ymm4, %ymm3, %ymm5 + 0xc5, 0xe5, 0x73, 0xd3, 0x20, //0x000037a0 vpsrlq $32, %ymm3, %ymm3 + 0xc5, 0xe5, 0xf4, 0xdc, //0x000037a5 vpmuludq %ymm4, %ymm3, %ymm3 + 0xc5, 0xe5, 0x73, 0xf3, 0x20, //0x000037a9 vpsllq $32, %ymm3, %ymm3 + 0xc5, 0xd5, 0xd4, 0xdb, //0x000037ae vpaddq %ymm3, %ymm5, %ymm3 + 0xc5, 0xf5, 0xf4, 0xec, //0x000037b2 vpmuludq %ymm4, %ymm1, %ymm5 + 0xc5, 0xf5, 0x73, 0xd1, 0x20, //0x000037b6 vpsrlq $32, %ymm1, %ymm1 + 0xc5, 0xf5, 0xf4, 0xcc, //0x000037bb vpmuludq %ymm4, %ymm1, %ymm1 + 0xc5, 0xf5, 0x73, 0xf1, 0x20, //0x000037bf vpsllq $32, %ymm1, %ymm1 + 0xc5, 0xd5, 0xd4, 0xc9, //0x000037c4 vpaddq %ymm1, %ymm5, %ymm1 + 0xff, 0xc6, //0x000037c8 incl %esi + 0x0f, 0x85, 0xa0, 0xff, 0xff, 0xff, //0x000037ca jne LBB9_64 + //0x000037d0 LBB9_65 + 0xc5, 0xdd, 0x73, 0xd2, 0x20, //0x000037d0 vpsrlq $32, %ymm2, %ymm4 + 0xc5, 0xdd, 0xf4, 0xe0, //0x000037d5 vpmuludq %ymm0, %ymm4, %ymm4 + 0xc5, 0xd5, 0x73, 0xd0, 0x20, //0x000037d9 vpsrlq $32, %ymm0, %ymm5 + 0xc5, 0xed, 0xf4, 0xed, //0x000037de vpmuludq %ymm5, %ymm2, %ymm5 + 0xc5, 0xd5, 0xd4, 0xe4, //0x000037e2 vpaddq %ymm4, %ymm5, %ymm4 + 0xc5, 0xdd, 0x73, 0xf4, 0x20, //0x000037e6 vpsllq $32, %ymm4, %ymm4 + 0xc5, 0xed, 0xf4, 0xc0, //0x000037eb vpmuludq %ymm0, %ymm2, %ymm0 + 0xc5, 0xfd, 0xd4, 0xc4, //0x000037ef vpaddq %ymm4, %ymm0, %ymm0 + 0xc5, 0xed, 0x73, 0xd3, 0x20, //0x000037f3 vpsrlq $32, %ymm3, %ymm2 + 0xc5, 0xed, 0xf4, 0xd0, //0x000037f8 vpmuludq %ymm0, %ymm2, %ymm2 + 0xc5, 0xdd, 0x73, 0xd0, 0x20, //0x000037fc vpsrlq $32, %ymm0, %ymm4 + 0xc5, 0xe5, 0xf4, 0xe4, //0x00003801 vpmuludq %ymm4, %ymm3, %ymm4 + 0xc5, 0xdd, 0xd4, 0xd2, //0x00003805 vpaddq %ymm2, %ymm4, %ymm2 + 0xc5, 0xed, 0x73, 0xf2, 0x20, //0x00003809 vpsllq $32, %ymm2, %ymm2 + 0xc5, 0xe5, 0xf4, 0xc0, //0x0000380e vpmuludq %ymm0, %ymm3, %ymm0 + 0xc5, 0xfd, 0xd4, 0xc2, //0x00003812 vpaddq %ymm2, %ymm0, %ymm0 + 0xc5, 0xed, 0x73, 0xd1, 0x20, //0x00003816 vpsrlq $32, %ymm1, %ymm2 + 0xc5, 0xed, 0xf4, 0xd0, //0x0000381b vpmuludq %ymm0, %ymm2, %ymm2 + 0xc5, 0xe5, 0x73, 0xd0, 0x20, //0x0000381f vpsrlq $32, %ymm0, %ymm3 + 0xc5, 0xf5, 0xf4, 0xdb, //0x00003824 vpmuludq %ymm3, %ymm1, %ymm3 + 0xc5, 0xe5, 0xd4, 0xd2, //0x00003828 vpaddq %ymm2, %ymm3, %ymm2 + 0xc5, 0xed, 0x73, 0xf2, 0x20, //0x0000382c vpsllq $32, %ymm2, %ymm2 + 0xc5, 0xf5, 0xf4, 0xc0, //0x00003831 vpmuludq %ymm0, %ymm1, %ymm0 + 0xc5, 0xfd, 0xd4, 0xc2, //0x00003835 vpaddq %ymm2, %ymm0, %ymm0 + 0xc4, 0xe3, 0x7d, 0x39, 0xc1, 0x01, //0x00003839 vextracti128 $1, %ymm0, %xmm1 + 0xc5, 0xe9, 0x73, 0xd0, 0x20, //0x0000383f vpsrlq $32, %xmm0, %xmm2 + 0xc5, 0xe9, 0xf4, 0xd1, //0x00003844 vpmuludq %xmm1, %xmm2, %xmm2 + 0xc5, 0xe1, 0x73, 0xd1, 0x20, //0x00003848 vpsrlq $32, %xmm1, %xmm3 + 0xc5, 0xf9, 0xf4, 0xdb, //0x0000384d vpmuludq %xmm3, %xmm0, %xmm3 + 0xc5, 0xe1, 0xd4, 0xd2, //0x00003851 vpaddq %xmm2, %xmm3, %xmm2 + 0xc5, 0xe9, 0x73, 0xf2, 0x20, //0x00003855 vpsllq $32, %xmm2, %xmm2 + 0xc5, 0xf9, 0xf4, 0xc1, //0x0000385a vpmuludq %xmm1, %xmm0, %xmm0 + 0xc5, 0xf9, 0xd4, 0xc2, //0x0000385e vpaddq %xmm2, %xmm0, %xmm0 + 0xc5, 0xf9, 0x70, 0xc8, 0x4e, //0x00003862 vpshufd $78, %xmm0, %xmm1 + 0xc5, 0xe9, 0x73, 0xd0, 0x20, //0x00003867 vpsrlq $32, %xmm0, %xmm2 + 0xc5, 0xe9, 0xf4, 0xd1, //0x0000386c vpmuludq %xmm1, %xmm2, %xmm2 + 0xc5, 0xe1, 0x73, 0xd8, 0x0c, //0x00003870 vpsrldq $12, %xmm0, %xmm3 + 0xc5, 0xf9, 0xf4, 0xdb, //0x00003875 vpmuludq %xmm3, %xmm0, %xmm3 + 0xc5, 0xe1, 0xd4, 0xd2, //0x00003879 vpaddq %xmm2, %xmm3, %xmm2 + 0xc5, 0xe9, 0x73, 0xf2, 0x20, //0x0000387d vpsllq $32, %xmm2, %xmm2 + 0xc5, 0xf9, 0xf4, 0xc1, //0x00003882 vpmuludq %xmm1, %xmm0, %xmm0 + 0xc5, 0xf9, 0xd4, 0xc2, //0x00003886 vpaddq %xmm2, %xmm0, %xmm0 + 0xc4, 0xc1, 0xf9, 0x7e, 0xc7, //0x0000388a vmovq %xmm0, %r15 + 0x45, 0x39, 0xc1, //0x0000388f cmpl %r8d, %r9d + 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x00003892 je LBB9_69 + 0x44, 0x01, 0xc2, //0x00003898 addl %r8d, %edx + //0x0000389b LBB9_67 + 0x89, 0xce, //0x0000389b movl %ecx, %esi + 0x29, 0xd6, //0x0000389d subl %edx, %esi + 0x90, //0x0000389f .p2align 4, 0x90 + //0x000038a0 LBB9_68 + 0x4d, 0x01, 0xff, //0x000038a0 addq %r15, %r15 + 0x4f, 0x8d, 0x3c, 0xbf, //0x000038a3 leaq (%r15,%r15,4), %r15 + 0xff, 0xce, //0x000038a7 decl %esi + 0x0f, 0x85, 0xf1, 0xff, 0xff, 0xff, //0x000038a9 jne LBB9_68 + //0x000038af LBB9_69 + 0x85, 0xc9, //0x000038af testl %ecx, %ecx + 0x0f, 0x88, 0x4d, 0x00, 0x00, 0x00, //0x000038b1 js LBB9_77 + 0x41, 0x8b, 0x44, 0x24, 0x10, //0x000038b7 movl $16(%r12), %eax + 0x39, 0xc8, //0x000038bc cmpl %ecx, %eax + 0x0f, 0x8e, 0x40, 0x00, 0x00, 0x00, //0x000038be jle LBB9_77 + 0x49, 0x8b, 0x34, 0x24, //0x000038c4 movq (%r12), %rsi + 0x8a, 0x14, 0x0e, //0x000038c8 movb (%rsi,%rcx), %dl + 0x41, 0x8d, 0x7a, 0x01, //0x000038cb leal $1(%r10), %edi + 0x39, 0xc7, //0x000038cf cmpl %eax, %edi + 0x0f, 0x85, 0xc4, 0x00, 0x00, 0x00, //0x000038d1 jne LBB9_78 + 0x80, 0xfa, 0x35, //0x000038d7 cmpb $53, %dl + 0x0f, 0x85, 0xbb, 0x00, 0x00, 0x00, //0x000038da jne LBB9_78 + 0x41, 0x83, 0x7c, 0x24, 0x1c, 0x00, //0x000038e0 cmpl $0, $28(%r12) + 0x0f, 0x95, 0xc2, //0x000038e6 setne %dl + 0x0f, 0x85, 0x17, 0x00, 0x00, 0x00, //0x000038e9 jne LBB9_79 + 0x85, 0xc9, //0x000038ef testl %ecx, %ecx + 0x0f, 0x8e, 0x0f, 0x00, 0x00, 0x00, //0x000038f1 jle LBB9_79 + 0x41, 0x8a, 0x54, 0x32, 0xff, //0x000038f7 movb $-1(%r10,%rsi), %dl + 0x80, 0xe2, 0x01, //0x000038fc andb $1, %dl + 0xe9, 0x02, 0x00, 0x00, 0x00, //0x000038ff jmp LBB9_79 + //0x00003904 LBB9_77 + 0x31, 0xd2, //0x00003904 xorl %edx, %edx + //0x00003906 LBB9_79 + 0x0f, 0xb6, 0xc2, //0x00003906 movzbl %dl, %eax + 0x49, 0x01, 0xc7, //0x00003909 addq %rax, %r15 + 0x48, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, //0x0000390c movabsq $9007199254740992, %rax + 0x49, 0x39, 0xc7, //0x00003916 cmpq %rax, %r15 + 0x0f, 0x85, 0x25, 0x00, 0x00, 0x00, //0x00003919 jne LBB9_83 + 0x41, 0x81, 0xfe, 0xfe, 0x03, 0x00, 0x00, //0x0000391f cmpl $1022, %r14d + 0x0f, 0x8e, 0x12, 0x00, 0x00, 0x00, //0x00003926 jle LBB9_82 + //0x0000392c LBB9_81 + 0x45, 0x31, 0xff, //0x0000392c xorl %r15d, %r15d + 0x49, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x7f, //0x0000392f movabsq $9218868437227405312, %r14 + 0xe9, 0x25, 0x00, 0x00, 0x00, //0x00003939 jmp LBB9_84 + //0x0000393e LBB9_82 + 0x41, 0xff, 0xc6, //0x0000393e incl %r14d + 0x49, 0x89, 0xdf, //0x00003941 movq %rbx, %r15 + //0x00003944 LBB9_83 + 0x4c, 0x89, 0xf8, //0x00003944 movq %r15, %rax + 0x48, 0x21, 0xd8, //0x00003947 andq %rbx, %rax + 0x41, 0x81, 0xc6, 0xff, 0x03, 0x00, 0x00, //0x0000394a addl $1023, %r14d + 0x41, 0x81, 0xe6, 0xff, 0x07, 0x00, 0x00, //0x00003951 andl $2047, %r14d + 0x49, 0xc1, 0xe6, 0x34, //0x00003958 shlq $52, %r14 + 0x48, 0x85, 0xc0, //0x0000395c testq %rax, %rax + 0x4c, 0x0f, 0x44, 0xf0, //0x0000395f cmoveq %rax, %r14 + //0x00003963 LBB9_84 + 0x48, 0xff, 0xcb, //0x00003963 decq %rbx + 0x4c, 0x21, 0xfb, //0x00003966 andq %r15, %rbx + 0x4c, 0x09, 0xf3, //0x00003969 orq %r14, %rbx + 0x48, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x0000396c movabsq $-9223372036854775808, %rax + 0x48, 0x09, 0xd8, //0x00003976 orq %rbx, %rax + 0x41, 0x83, 0x7c, 0x24, 0x18, 0x00, //0x00003979 cmpl $0, $24(%r12) + 0x48, 0x0f, 0x44, 0xc3, //0x0000397f cmoveq %rbx, %rax + 0x49, 0x89, 0x45, 0x00, //0x00003983 movq %rax, (%r13) + 0x31, 0xc0, //0x00003987 xorl %eax, %eax + 0x48, 0x83, 0xc4, 0x08, //0x00003989 addq $8, %rsp + 0x5b, //0x0000398d popq %rbx + 0x41, 0x5c, //0x0000398e popq %r12 + 0x41, 0x5d, //0x00003990 popq %r13 + 0x41, 0x5e, //0x00003992 popq %r14 + 0x41, 0x5f, //0x00003994 popq %r15 + 0x5d, //0x00003996 popq %rbp + 0xc5, 0xf8, 0x77, //0x00003997 vzeroupper + 0xc3, //0x0000399a retq + //0x0000399b LBB9_78 + 0x80, 0xfa, 0x34, //0x0000399b cmpb $52, %dl + 0x0f, 0x9f, 0xc2, //0x0000399e setg %dl + 0xe9, 0x60, 0xff, 0xff, 0xff, //0x000039a1 jmp LBB9_79 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000039a6 .p2align 4, 0x90 + //0x000039b0 _atof_native + 0x55, //0x000039b0 pushq %rbp + 0x48, 0x89, 0xe5, //0x000039b1 movq %rsp, %rbp + 0x48, 0x83, 0xec, 0x30, //0x000039b4 subq $48, %rsp + 0x48, 0xc7, 0x45, 0xd8, 0x00, 0x00, 0x00, 0x00, //0x000039b8 movq $0, $-40(%rbp) + 0x48, 0x89, 0x55, 0xe0, //0x000039c0 movq %rdx, $-32(%rbp) + 0x48, 0x89, 0x4d, 0xe8, //0x000039c4 movq %rcx, $-24(%rbp) + 0x48, 0x85, 0xc9, //0x000039c8 testq %rcx, %rcx + 0x0f, 0x84, 0x44, 0x00, 0x00, 0x00, //0x000039cb je LBB10_5 + 0xc6, 0x02, 0x00, //0x000039d1 movb $0, (%rdx) + 0x48, 0x83, 0xf9, 0x01, //0x000039d4 cmpq $1, %rcx + 0x0f, 0x84, 0x37, 0x00, 0x00, 0x00, //0x000039d8 je LBB10_5 + 0xc6, 0x42, 0x01, 0x00, //0x000039de movb $0, $1(%rdx) + 0x48, 0x83, 0x7d, 0xe8, 0x03, //0x000039e2 cmpq $3, $-24(%rbp) + 0x0f, 0x82, 0x28, 0x00, 0x00, 0x00, //0x000039e7 jb LBB10_5 + 0xb8, 0x02, 0x00, 0x00, 0x00, //0x000039ed movl $2, %eax + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000039f2 .p2align 4, 0x90 + //0x00003a00 LBB10_4 + 0x48, 0x8b, 0x4d, 0xe0, //0x00003a00 movq $-32(%rbp), %rcx + 0xc6, 0x04, 0x01, 0x00, //0x00003a04 movb $0, (%rcx,%rax) + 0x48, 0xff, 0xc0, //0x00003a08 incq %rax + 0x48, 0x39, 0x45, 0xe8, //0x00003a0b cmpq %rax, $-24(%rbp) + 0x0f, 0x87, 0xeb, 0xff, 0xff, 0xff, //0x00003a0f ja LBB10_4 + //0x00003a15 LBB10_5 + 0xc5, 0xf8, 0x57, 0xc0, //0x00003a15 vxorps %xmm0, %xmm0, %xmm0 + 0xc5, 0xf8, 0x11, 0x45, 0xf0, //0x00003a19 vmovups %xmm0, $-16(%rbp) + 0x80, 0x3f, 0x2d, //0x00003a1e cmpb $45, (%rdi) + 0x0f, 0x85, 0x21, 0x00, 0x00, 0x00, //0x00003a21 jne LBB10_6 + 0xc7, 0x45, 0xf8, 0x01, 0x00, 0x00, 0x00, //0x00003a27 movl $1, $-8(%rbp) + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00003a2e movl $1, %eax + 0x48, 0x39, 0xf0, //0x00003a33 cmpq %rsi, %rax + 0x0f, 0x8c, 0x17, 0x00, 0x00, 0x00, //0x00003a36 jl LBB10_9 + //0x00003a3c LBB10_41 + 0xc7, 0x45, 0xf4, 0x00, 0x00, 0x00, 0x00, //0x00003a3c movl $0, $-12(%rbp) + 0xe9, 0xa1, 0x01, 0x00, 0x00, //0x00003a43 jmp LBB10_40 + //0x00003a48 LBB10_6 + 0x31, 0xc0, //0x00003a48 xorl %eax, %eax + 0x48, 0x39, 0xf0, //0x00003a4a cmpq %rsi, %rax + 0x0f, 0x8d, 0xe9, 0xff, 0xff, 0xff, //0x00003a4d jge LBB10_41 + //0x00003a53 LBB10_9 + 0x41, 0xb3, 0x01, //0x00003a53 movb $1, %r11b + 0x45, 0x31, 0xc9, //0x00003a56 xorl %r9d, %r9d + 0x45, 0x31, 0xd2, //0x00003a59 xorl %r10d, %r10d + 0x45, 0x31, 0xc0, //0x00003a5c xorl %r8d, %r8d + 0xe9, 0x25, 0x00, 0x00, 0x00, //0x00003a5f jmp LBB10_10 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003a64 .p2align 4, 0x90 + //0x00003a70 LBB10_13 + 0xff, 0x4d, 0xf4, //0x00003a70 decl $-12(%rbp) + 0x45, 0x31, 0xd2, //0x00003a73 xorl %r10d, %r10d + //0x00003a76 LBB10_22 + 0x48, 0xff, 0xc0, //0x00003a76 incq %rax + 0x48, 0x39, 0xf0, //0x00003a79 cmpq %rsi, %rax + 0x41, 0x0f, 0x9c, 0xc3, //0x00003a7c setl %r11b + 0x48, 0x39, 0xc6, //0x00003a80 cmpq %rax, %rsi + 0x0f, 0x84, 0x8f, 0x00, 0x00, 0x00, //0x00003a83 je LBB10_23 + //0x00003a89 LBB10_10 + 0x0f, 0xb6, 0x0c, 0x07, //0x00003a89 movzbl (%rdi,%rax), %ecx + 0x8d, 0x51, 0xd0, //0x00003a8d leal $-48(%rcx), %edx + 0x80, 0xfa, 0x09, //0x00003a90 cmpb $9, %dl + 0x0f, 0x87, 0x47, 0x00, 0x00, 0x00, //0x00003a93 ja LBB10_19 + 0x45, 0x85, 0xd2, //0x00003a99 testl %r10d, %r10d + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00003a9c jne LBB10_14 + 0x80, 0xf9, 0x30, //0x00003aa2 cmpb $48, %cl + 0x0f, 0x84, 0xc5, 0xff, 0xff, 0xff, //0x00003aa5 je LBB10_13 + //0x00003aab LBB10_14 + 0x4d, 0x63, 0xd1, //0x00003aab movslq %r9d, %r10 + 0x4c, 0x39, 0x55, 0xe8, //0x00003aae cmpq %r10, $-24(%rbp) + 0x0f, 0x86, 0x40, 0x00, 0x00, 0x00, //0x00003ab2 jbe LBB10_16 + 0x48, 0x8b, 0x55, 0xe0, //0x00003ab8 movq $-32(%rbp), %rdx + 0x42, 0x88, 0x0c, 0x12, //0x00003abc movb %cl, (%rdx,%r10) + 0x44, 0x8b, 0x4d, 0xf0, //0x00003ac0 movl $-16(%rbp), %r9d + 0x41, 0xff, 0xc1, //0x00003ac4 incl %r9d + 0x44, 0x89, 0x4d, 0xf0, //0x00003ac7 movl %r9d, $-16(%rbp) + 0x45, 0x89, 0xca, //0x00003acb movl %r9d, %r10d + 0xe9, 0xa3, 0xff, 0xff, 0xff, //0x00003ace jmp LBB10_22 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003ad3 .p2align 4, 0x90 + //0x00003ae0 LBB10_19 + 0x80, 0xf9, 0x2e, //0x00003ae0 cmpb $46, %cl + 0x0f, 0x85, 0x80, 0x00, 0x00, 0x00, //0x00003ae3 jne LBB10_20 + 0x44, 0x89, 0x55, 0xf4, //0x00003ae9 movl %r10d, $-12(%rbp) + 0x41, 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00003aed movl $1, %r8d + 0xe9, 0x7e, 0xff, 0xff, 0xff, //0x00003af3 jmp LBB10_22 + //0x00003af8 LBB10_16 + 0x80, 0xf9, 0x30, //0x00003af8 cmpb $48, %cl + 0x0f, 0x85, 0x08, 0x00, 0x00, 0x00, //0x00003afb jne LBB10_18 + 0x45, 0x89, 0xca, //0x00003b01 movl %r9d, %r10d + 0xe9, 0x6d, 0xff, 0xff, 0xff, //0x00003b04 jmp LBB10_22 + //0x00003b09 LBB10_18 + 0xc7, 0x45, 0xfc, 0x01, 0x00, 0x00, 0x00, //0x00003b09 movl $1, $-4(%rbp) + 0x45, 0x89, 0xca, //0x00003b10 movl %r9d, %r10d + 0xe9, 0x5e, 0xff, 0xff, 0xff, //0x00003b13 jmp LBB10_22 + //0x00003b18 LBB10_23 + 0x89, 0xf1, //0x00003b18 movl %esi, %ecx + 0x48, 0x89, 0xf0, //0x00003b1a movq %rsi, %rax + 0x45, 0x85, 0xc0, //0x00003b1d testl %r8d, %r8d + 0x0f, 0x85, 0x04, 0x00, 0x00, 0x00, //0x00003b20 jne LBB10_26 + //0x00003b26 LBB10_25 + 0x44, 0x89, 0x4d, 0xf4, //0x00003b26 movl %r9d, $-12(%rbp) + //0x00003b2a LBB10_26 + 0x41, 0xf6, 0xc3, 0x01, //0x00003b2a testb $1, %r11b + 0x0f, 0x84, 0xb5, 0x00, 0x00, 0x00, //0x00003b2e je LBB10_40 + 0x8a, 0x0c, 0x0f, //0x00003b34 movb (%rdi,%rcx), %cl + 0x80, 0xc9, 0x20, //0x00003b37 orb $32, %cl + 0x80, 0xf9, 0x65, //0x00003b3a cmpb $101, %cl + 0x0f, 0x85, 0xa6, 0x00, 0x00, 0x00, //0x00003b3d jne LBB10_40 + 0x89, 0xc2, //0x00003b43 movl %eax, %edx + 0x8a, 0x4c, 0x17, 0x01, //0x00003b45 movb $1(%rdi,%rdx), %cl + 0x80, 0xf9, 0x2d, //0x00003b49 cmpb $45, %cl + 0x0f, 0x84, 0x28, 0x00, 0x00, 0x00, //0x00003b4c je LBB10_32 + 0x41, 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00003b52 movl $1, %r8d + 0x80, 0xf9, 0x2b, //0x00003b58 cmpb $43, %cl + 0x0f, 0x85, 0x38, 0x00, 0x00, 0x00, //0x00003b5b jne LBB10_30 + 0x83, 0xc0, 0x02, //0x00003b61 addl $2, %eax + 0xe9, 0x1a, 0x00, 0x00, 0x00, //0x00003b64 jmp LBB10_33 + //0x00003b69 LBB10_20 + 0x48, 0x89, 0xc1, //0x00003b69 movq %rax, %rcx + 0x45, 0x85, 0xc0, //0x00003b6c testl %r8d, %r8d + 0x0f, 0x85, 0xb5, 0xff, 0xff, 0xff, //0x00003b6f jne LBB10_26 + 0xe9, 0xac, 0xff, 0xff, 0xff, //0x00003b75 jmp LBB10_25 + //0x00003b7a LBB10_32 + 0x83, 0xc0, 0x02, //0x00003b7a addl $2, %eax + 0x41, 0xb8, 0xff, 0xff, 0xff, 0xff, //0x00003b7d movl $-1, %r8d + //0x00003b83 LBB10_33 + 0x89, 0xc2, //0x00003b83 movl %eax, %edx + 0x48, 0x63, 0xd2, //0x00003b85 movslq %edx, %rdx + 0x45, 0x31, 0xc9, //0x00003b88 xorl %r9d, %r9d + 0x48, 0x39, 0xf2, //0x00003b8b cmpq %rsi, %rdx + 0x0f, 0x8c, 0x17, 0x00, 0x00, 0x00, //0x00003b8e jl LBB10_35 + 0xe9, 0x48, 0x00, 0x00, 0x00, //0x00003b94 jmp LBB10_39 + //0x00003b99 LBB10_30 + 0x48, 0xff, 0xc2, //0x00003b99 incq %rdx + 0x48, 0x63, 0xd2, //0x00003b9c movslq %edx, %rdx + 0x45, 0x31, 0xc9, //0x00003b9f xorl %r9d, %r9d + 0x48, 0x39, 0xf2, //0x00003ba2 cmpq %rsi, %rdx + 0x0f, 0x8d, 0x36, 0x00, 0x00, 0x00, //0x00003ba5 jge LBB10_39 + //0x00003bab LBB10_35 + 0x45, 0x31, 0xc9, //0x00003bab xorl %r9d, %r9d + 0x90, 0x90, //0x00003bae .p2align 4, 0x90 + //0x00003bb0 LBB10_36 + 0x41, 0x81, 0xf9, 0x0f, 0x27, 0x00, 0x00, //0x00003bb0 cmpl $9999, %r9d + 0x0f, 0x8f, 0x24, 0x00, 0x00, 0x00, //0x00003bb7 jg LBB10_39 + 0x0f, 0xb6, 0x0c, 0x17, //0x00003bbd movzbl (%rdi,%rdx), %ecx + 0x8d, 0x41, 0xd0, //0x00003bc1 leal $-48(%rcx), %eax + 0x3c, 0x09, //0x00003bc4 cmpb $9, %al + 0x0f, 0x87, 0x15, 0x00, 0x00, 0x00, //0x00003bc6 ja LBB10_39 + 0x43, 0x8d, 0x04, 0x89, //0x00003bcc leal (%r9,%r9,4), %eax + 0x44, 0x8d, 0x4c, 0x41, 0xd0, //0x00003bd0 leal $-48(%rcx,%rax,2), %r9d + 0x48, 0xff, 0xc2, //0x00003bd5 incq %rdx + 0x48, 0x39, 0xd6, //0x00003bd8 cmpq %rdx, %rsi + 0x0f, 0x85, 0xcf, 0xff, 0xff, 0xff, //0x00003bdb jne LBB10_36 + //0x00003be1 LBB10_39 + 0x45, 0x0f, 0xaf, 0xc8, //0x00003be1 imull %r8d, %r9d + 0x44, 0x01, 0x4d, 0xf4, //0x00003be5 addl %r9d, $-12(%rbp) + //0x00003be9 LBB10_40 + 0x48, 0x8d, 0x7d, 0xe0, //0x00003be9 leaq $-32(%rbp), %rdi + 0x48, 0x8d, 0x75, 0xd8, //0x00003bed leaq $-40(%rbp), %rsi + 0xe8, 0x0a, 0xf7, 0xff, 0xff, //0x00003bf1 callq _decimal_to_f64 + 0xc5, 0xfb, 0x10, 0x45, 0xd8, //0x00003bf6 vmovsd $-40(%rbp), %xmm0 + 0x48, 0x83, 0xc4, 0x30, //0x00003bfb addq $48, %rsp + 0x5d, //0x00003bff popq %rbp + 0xc3, //0x00003c00 retq + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003c01 .p2align 4, 0x90 + //0x00003c10 _value + 0x55, //0x00003c10 pushq %rbp + 0x48, 0x89, 0xe5, //0x00003c11 movq %rsp, %rbp + 0x41, 0x57, //0x00003c14 pushq %r15 + 0x41, 0x56, //0x00003c16 pushq %r14 + 0x41, 0x55, //0x00003c18 pushq %r13 + 0x41, 0x54, //0x00003c1a pushq %r12 + 0x53, //0x00003c1c pushq %rbx + 0x48, 0x83, 0xec, 0x28, //0x00003c1d subq $40, %rsp + 0x4d, 0x89, 0xc4, //0x00003c21 movq %r8, %r12 + 0x49, 0x89, 0xce, //0x00003c24 movq %rcx, %r14 + 0x48, 0x89, 0xf3, //0x00003c27 movq %rsi, %rbx + 0x49, 0x89, 0xff, //0x00003c2a movq %rdi, %r15 + 0x48, 0x89, 0x55, 0xd0, //0x00003c2d movq %rdx, $-48(%rbp) + 0x48, 0x89, 0x7d, 0xb0, //0x00003c31 movq %rdi, $-80(%rbp) + 0x48, 0x89, 0x75, 0xb8, //0x00003c35 movq %rsi, $-72(%rbp) + 0x48, 0x8d, 0x55, 0xd0, //0x00003c39 leaq $-48(%rbp), %rdx + 0xe8, 0xde, 0x05, 0x00, 0x00, //0x00003c3d callq _advance_ns + 0x0f, 0xbe, 0xc0, //0x00003c42 movsbl %al, %eax + 0x83, 0xf8, 0x7d, //0x00003c45 cmpl $125, %eax + 0x0f, 0x87, 0xbd, 0x00, 0x00, 0x00, //0x00003c48 ja LBB11_10 + 0x48, 0x8d, 0x0d, 0xa3, 0x03, 0x00, 0x00, //0x00003c4e leaq $931(%rip), %rcx /* LJTI11_0+0(%rip) */ + 0x48, 0x63, 0x04, 0x81, //0x00003c55 movslq (%rcx,%rax,4), %rax + 0x48, 0x01, 0xc8, //0x00003c59 addq %rcx, %rax + 0xff, 0xe0, //0x00003c5c jmpq *%rax + //0x00003c5e LBB11_2 + 0x4c, 0x89, 0x75, 0xc8, //0x00003c5e movq %r14, $-56(%rbp) + 0x4c, 0x8b, 0x75, 0xd0, //0x00003c62 movq $-48(%rbp), %r14 + 0x4d, 0x8d, 0x6e, 0xff, //0x00003c66 leaq $-1(%r14), %r13 + 0x4c, 0x89, 0x6d, 0xd0, //0x00003c6a movq %r13, $-48(%rbp) + 0x41, 0xf6, 0xc4, 0x02, //0x00003c6e testb $2, %r12b + 0x0f, 0x85, 0x1a, 0x00, 0x00, 0x00, //0x00003c72 jne LBB11_4 + 0x48, 0x8d, 0x7d, 0xb0, //0x00003c78 leaq $-80(%rbp), %rdi + 0x48, 0x8d, 0x75, 0xd0, //0x00003c7c leaq $-48(%rbp), %rsi + 0x48, 0x8b, 0x55, 0xc8, //0x00003c80 movq $-56(%rbp), %rdx + 0xe8, 0xe7, 0x0c, 0x00, 0x00, //0x00003c84 callq _vnumber + 0x48, 0x8b, 0x5d, 0xd0, //0x00003c89 movq $-48(%rbp), %rbx + 0xe9, 0x51, 0x03, 0x00, 0x00, //0x00003c8d jmp LBB11_58 + //0x00003c92 LBB11_4 + 0x4c, 0x29, 0xeb, //0x00003c92 subq %r13, %rbx + 0x31, 0xc0, //0x00003c95 xorl %eax, %eax + 0x43, 0x80, 0x3c, 0x2f, 0x2d, //0x00003c97 cmpb $45, (%r15,%r13) + 0x4f, 0x8d, 0x24, 0x2f, //0x00003c9c leaq (%r15,%r13), %r12 + 0x0f, 0x94, 0xc0, //0x00003ca0 sete %al + 0x49, 0x01, 0xc4, //0x00003ca3 addq %rax, %r12 + 0x48, 0x29, 0xc3, //0x00003ca6 subq %rax, %rbx + 0x0f, 0x84, 0x03, 0x03, 0x00, 0x00, //0x00003ca9 je LBB11_53 + 0x41, 0x8a, 0x04, 0x24, //0x00003caf movb (%r12), %al + 0x04, 0xd0, //0x00003cb3 addb $-48, %al + 0x3c, 0x0a, //0x00003cb5 cmpb $10, %al + 0x0f, 0x83, 0x0e, 0x03, 0x00, 0x00, //0x00003cb7 jae LBB11_55 + 0x4c, 0x89, 0xe7, //0x00003cbd movq %r12, %rdi + 0x48, 0x89, 0xde, //0x00003cc0 movq %rbx, %rsi + 0xe8, 0xc8, 0x1f, 0x00, 0x00, //0x00003cc3 callq _do_skip_number + 0x48, 0x85, 0xc0, //0x00003cc8 testq %rax, %rax + 0x0f, 0x88, 0xf4, 0x02, 0x00, 0x00, //0x00003ccb js LBB11_54 + 0x49, 0x01, 0xc4, //0x00003cd1 addq %rax, %r12 + 0x4c, 0x89, 0xe3, //0x00003cd4 movq %r12, %rbx + 0x4c, 0x29, 0xfb, //0x00003cd7 subq %r15, %rbx + 0x48, 0x89, 0x5d, 0xd0, //0x00003cda movq %rbx, $-48(%rbp) + 0x4d, 0x85, 0xf6, //0x00003cde testq %r14, %r14 + 0x0f, 0x8e, 0xf5, 0x02, 0x00, 0x00, //0x00003ce1 jle LBB11_57 + 0x48, 0x8b, 0x45, 0xc8, //0x00003ce7 movq $-56(%rbp), %rax + 0x48, 0xc7, 0x00, 0x08, 0x00, 0x00, 0x00, //0x00003ceb movq $8, (%rax) + 0x4c, 0x89, 0x68, 0x18, //0x00003cf2 movq %r13, $24(%rax) + 0xe9, 0xe8, 0x02, 0x00, 0x00, //0x00003cf6 jmp LBB11_58 + //0x00003cfb LBB11_9 + 0x49, 0xc7, 0x06, 0x01, 0x00, 0x00, 0x00, //0x00003cfb movq $1, (%r14) + 0x48, 0x8b, 0x5d, 0xd0, //0x00003d02 movq $-48(%rbp), %rbx + 0xe9, 0xd8, 0x02, 0x00, 0x00, //0x00003d06 jmp LBB11_58 + //0x00003d0b LBB11_10 + 0x49, 0xc7, 0x06, 0xfe, 0xff, 0xff, 0xff, //0x00003d0b movq $-2, (%r14) + 0x48, 0x8b, 0x5d, 0xd0, //0x00003d12 movq $-48(%rbp), %rbx + 0x48, 0xff, 0xcb, //0x00003d16 decq %rbx + 0xe9, 0xc5, 0x02, 0x00, 0x00, //0x00003d19 jmp LBB11_58 + //0x00003d1e LBB11_11 + 0x48, 0xc7, 0x45, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00003d1e movq $-1, $-64(%rbp) + 0x4c, 0x8b, 0x7d, 0xd0, //0x00003d26 movq $-48(%rbp), %r15 + 0x48, 0x8d, 0x7d, 0xb0, //0x00003d2a leaq $-80(%rbp), %rdi + 0x48, 0x8d, 0x55, 0xc0, //0x00003d2e leaq $-64(%rbp), %rdx + 0x4c, 0x89, 0xfe, //0x00003d32 movq %r15, %rsi + 0x4c, 0x89, 0xe1, //0x00003d35 movq %r12, %rcx + 0xe8, 0xc3, 0x07, 0x00, 0x00, //0x00003d38 callq _advance_string + 0x48, 0x85, 0xc0, //0x00003d3d testq %rax, %rax + 0x0f, 0x88, 0x60, 0x02, 0x00, 0x00, //0x00003d40 js LBB11_47 + 0x48, 0x89, 0x45, 0xd0, //0x00003d46 movq %rax, $-48(%rbp) + 0x4d, 0x89, 0x7e, 0x10, //0x00003d4a movq %r15, $16(%r14) + 0x48, 0x8b, 0x4d, 0xc0, //0x00003d4e movq $-64(%rbp), %rcx + 0x48, 0x39, 0xc1, //0x00003d52 cmpq %rax, %rcx + 0x48, 0xc7, 0xc2, 0xff, 0xff, 0xff, 0xff, //0x00003d55 movq $-1, %rdx + 0x48, 0x0f, 0x4c, 0xd1, //0x00003d5c cmovlq %rcx, %rdx + 0x49, 0x89, 0x56, 0x18, //0x00003d60 movq %rdx, $24(%r14) + 0xb9, 0x07, 0x00, 0x00, 0x00, //0x00003d64 movl $7, %ecx + 0x49, 0x89, 0x0e, //0x00003d69 movq %rcx, (%r14) + 0x48, 0x89, 0xc3, //0x00003d6c movq %rax, %rbx + 0xe9, 0x6f, 0x02, 0x00, 0x00, //0x00003d6f jmp LBB11_58 + //0x00003d74 LBB11_13 + 0x31, 0xc0, //0x00003d74 xorl %eax, %eax + 0x45, 0x85, 0xe4, //0x00003d76 testl %r12d, %r12d + 0xb9, 0x0b, 0x00, 0x00, 0x00, //0x00003d79 movl $11, %ecx + 0xe9, 0xc4, 0x00, 0x00, 0x00, //0x00003d7e jmp LBB11_26 + //0x00003d83 LBB11_14 + 0x31, 0xc0, //0x00003d83 xorl %eax, %eax + 0x45, 0x85, 0xe4, //0x00003d85 testl %r12d, %r12d + 0xb9, 0x0a, 0x00, 0x00, 0x00, //0x00003d88 movl $10, %ecx + 0xe9, 0xb5, 0x00, 0x00, 0x00, //0x00003d8d jmp LBB11_26 + //0x00003d92 LBB11_15 + 0x49, 0xc7, 0x06, 0x05, 0x00, 0x00, 0x00, //0x00003d92 movq $5, (%r14) + 0x48, 0x8b, 0x5d, 0xd0, //0x00003d99 movq $-48(%rbp), %rbx + 0xe9, 0x41, 0x02, 0x00, 0x00, //0x00003d9d jmp LBB11_58 + //0x00003da2 LBB11_16 + 0x31, 0xc0, //0x00003da2 xorl %eax, %eax + 0x45, 0x85, 0xe4, //0x00003da4 testl %r12d, %r12d + 0xb9, 0x0c, 0x00, 0x00, 0x00, //0x00003da7 movl $12, %ecx + 0xe9, 0x96, 0x00, 0x00, 0x00, //0x00003dac jmp LBB11_26 + //0x00003db1 LBB11_17 + 0x48, 0x8b, 0x4d, 0xd0, //0x00003db1 movq $-48(%rbp), %rcx + 0x48, 0x8d, 0x43, 0xfc, //0x00003db5 leaq $-4(%rbx), %rax + 0x48, 0x39, 0xc1, //0x00003db9 cmpq %rax, %rcx + 0x0f, 0x86, 0xa2, 0x00, 0x00, 0x00, //0x00003dbc jbe LBB11_27 + 0x48, 0x89, 0x5d, 0xd0, //0x00003dc2 movq %rbx, $-48(%rbp) + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00003dc6 movq $-1, %rax + 0x49, 0x89, 0x06, //0x00003dcd movq %rax, (%r14) + 0xe9, 0x0e, 0x02, 0x00, 0x00, //0x00003dd0 jmp LBB11_58 + //0x00003dd5 LBB11_19 + 0x48, 0x8b, 0x45, 0xd0, //0x00003dd5 movq $-48(%rbp), %rax + 0x48, 0x8d, 0x4b, 0xfd, //0x00003dd9 leaq $-3(%rbx), %rcx + 0x48, 0x39, 0xc8, //0x00003ddd cmpq %rcx, %rax + 0x0f, 0x87, 0x34, 0x00, 0x00, 0x00, //0x00003de0 ja LBB11_20 + 0x41, 0x8b, 0x54, 0x07, 0xff, //0x00003de6 movl $-1(%r15,%rax), %edx + 0x81, 0xfa, 0x6e, 0x75, 0x6c, 0x6c, //0x00003deb cmpl $1819047278, %edx + 0x0f, 0x85, 0xb8, 0x00, 0x00, 0x00, //0x00003df1 jne LBB11_35 + 0x48, 0x83, 0xc0, 0x03, //0x00003df7 addq $3, %rax + 0x48, 0x89, 0x45, 0xd0, //0x00003dfb movq %rax, $-48(%rbp) + 0xb9, 0x02, 0x00, 0x00, 0x00, //0x00003dff movl $2, %ecx + 0xe9, 0x8b, 0x01, 0x00, 0x00, //0x00003e04 jmp LBB11_50 + //0x00003e09 LBB11_21 + 0x48, 0x8b, 0x45, 0xd0, //0x00003e09 movq $-48(%rbp), %rax + 0x48, 0x8d, 0x4b, 0xfd, //0x00003e0d leaq $-3(%rbx), %rcx + 0x48, 0x39, 0xc8, //0x00003e11 cmpq %rcx, %rax + 0x0f, 0x86, 0x72, 0x00, 0x00, 0x00, //0x00003e14 jbe LBB11_22 + //0x00003e1a LBB11_20 + 0x48, 0x89, 0x5d, 0xd0, //0x00003e1a movq %rbx, $-48(%rbp) + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00003e1e movq $-1, %rcx + 0x49, 0x89, 0x0e, //0x00003e25 movq %rcx, (%r14) + 0xe9, 0xb6, 0x01, 0x00, 0x00, //0x00003e28 jmp LBB11_58 + //0x00003e2d LBB11_24 + 0x49, 0xc7, 0x06, 0x06, 0x00, 0x00, 0x00, //0x00003e2d movq $6, (%r14) + 0x48, 0x8b, 0x5d, 0xd0, //0x00003e34 movq $-48(%rbp), %rbx + 0xe9, 0xa6, 0x01, 0x00, 0x00, //0x00003e38 jmp LBB11_58 + //0x00003e3d LBB11_25 + 0x31, 0xc0, //0x00003e3d xorl %eax, %eax + 0x45, 0x85, 0xe4, //0x00003e3f testl %r12d, %r12d + 0xb9, 0x0d, 0x00, 0x00, 0x00, //0x00003e42 movl $13, %ecx + //0x00003e47 LBB11_26 + 0x48, 0xc7, 0xc2, 0xfe, 0xff, 0xff, 0xff, //0x00003e47 movq $-2, %rdx + 0x48, 0x0f, 0x48, 0xd1, //0x00003e4e cmovsq %rcx, %rdx + 0x0f, 0x99, 0xc0, //0x00003e52 setns %al + 0x49, 0x89, 0x16, //0x00003e55 movq %rdx, (%r14) + 0x48, 0x8b, 0x5d, 0xd0, //0x00003e58 movq $-48(%rbp), %rbx + 0x48, 0x29, 0xc3, //0x00003e5c subq %rax, %rbx + 0xe9, 0x7f, 0x01, 0x00, 0x00, //0x00003e5f jmp LBB11_58 + //0x00003e64 LBB11_27 + 0x41, 0x8b, 0x14, 0x0f, //0x00003e64 movl (%r15,%rcx), %edx + 0x81, 0xfa, 0x61, 0x6c, 0x73, 0x65, //0x00003e68 cmpl $1702063201, %edx + 0x0f, 0x85, 0x81, 0x00, 0x00, 0x00, //0x00003e6e jne LBB11_31 + 0x48, 0x83, 0xc1, 0x04, //0x00003e74 addq $4, %rcx + 0x48, 0x89, 0x4d, 0xd0, //0x00003e78 movq %rcx, $-48(%rbp) + 0xb8, 0x04, 0x00, 0x00, 0x00, //0x00003e7c movl $4, %eax + 0x48, 0x89, 0xcb, //0x00003e81 movq %rcx, %rbx + 0x49, 0x89, 0x06, //0x00003e84 movq %rax, (%r14) + 0xe9, 0x57, 0x01, 0x00, 0x00, //0x00003e87 jmp LBB11_58 + //0x00003e8c LBB11_22 + 0x41, 0x8b, 0x54, 0x07, 0xff, //0x00003e8c movl $-1(%r15,%rax), %edx + 0x81, 0xfa, 0x74, 0x72, 0x75, 0x65, //0x00003e91 cmpl $1702195828, %edx + 0x0f, 0x85, 0x97, 0x00, 0x00, 0x00, //0x00003e97 jne LBB11_39 + 0x48, 0x83, 0xc0, 0x03, //0x00003e9d addq $3, %rax + 0x48, 0x89, 0x45, 0xd0, //0x00003ea1 movq %rax, $-48(%rbp) + 0xb9, 0x03, 0x00, 0x00, 0x00, //0x00003ea5 movl $3, %ecx + 0xe9, 0xe5, 0x00, 0x00, 0x00, //0x00003eaa jmp LBB11_50 + //0x00003eaf LBB11_35 + 0x48, 0x8d, 0x58, 0xff, //0x00003eaf leaq $-1(%rax), %rbx + 0x48, 0x89, 0x5d, 0xd0, //0x00003eb3 movq %rbx, $-48(%rbp) + 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x00003eb7 movq $-2, %rcx + 0x80, 0xfa, 0x6e, //0x00003ebe cmpb $110, %dl + 0x0f, 0x85, 0xd0, 0x00, 0x00, 0x00, //0x00003ec1 jne LBB11_51 + 0x41, 0x80, 0x3c, 0x07, 0x75, //0x00003ec7 cmpb $117, (%r15,%rax) + 0x0f, 0x85, 0xbe, 0x00, 0x00, 0x00, //0x00003ecc jne LBB11_49 + 0x41, 0x80, 0x7c, 0x07, 0x01, 0x6c, //0x00003ed2 cmpb $108, $1(%r15,%rax) + 0x0f, 0x85, 0xaf, 0x00, 0x00, 0x00, //0x00003ed8 jne LBB11_48 + 0x41, 0x80, 0x7c, 0x07, 0x02, 0x6c, //0x00003ede cmpb $108, $2(%r15,%rax) + 0x48, 0x8d, 0x50, 0x03, //0x00003ee4 leaq $3(%rax), %rdx + 0x48, 0x8d, 0x40, 0x02, //0x00003ee8 leaq $2(%rax), %rax + 0x48, 0x0f, 0x44, 0xc2, //0x00003eec cmoveq %rdx, %rax + 0xe9, 0x9b, 0x00, 0x00, 0x00, //0x00003ef0 jmp LBB11_49 + //0x00003ef5 LBB11_31 + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00003ef5 movq $-2, %rax + 0x80, 0xfa, 0x61, //0x00003efc cmpb $97, %dl + 0x0f, 0x85, 0x75, 0x00, 0x00, 0x00, //0x00003eff jne LBB11_43 + 0x41, 0x80, 0x7c, 0x0f, 0x01, 0x6c, //0x00003f05 cmpb $108, $1(%r15,%rcx) + 0x0f, 0x85, 0x74, 0x00, 0x00, 0x00, //0x00003f0b jne LBB11_44 + 0x41, 0x80, 0x7c, 0x0f, 0x02, 0x73, //0x00003f11 cmpb $115, $2(%r15,%rcx) + 0x0f, 0x85, 0x82, 0x00, 0x00, 0x00, //0x00003f17 jne LBB11_45 + 0x41, 0x80, 0x7c, 0x0f, 0x03, 0x65, //0x00003f1d cmpb $101, $3(%r15,%rcx) + 0x48, 0x8d, 0x51, 0x04, //0x00003f23 leaq $4(%rcx), %rdx + 0x48, 0x8d, 0x59, 0x03, //0x00003f27 leaq $3(%rcx), %rbx + 0x48, 0x0f, 0x44, 0xda, //0x00003f2b cmoveq %rdx, %rbx + 0xe9, 0x72, 0x00, 0x00, 0x00, //0x00003f2f jmp LBB11_47 + //0x00003f34 LBB11_39 + 0x48, 0x8d, 0x58, 0xff, //0x00003f34 leaq $-1(%rax), %rbx + 0x48, 0x89, 0x5d, 0xd0, //0x00003f38 movq %rbx, $-48(%rbp) + 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x00003f3c movq $-2, %rcx + 0x80, 0xfa, 0x74, //0x00003f43 cmpb $116, %dl + 0x0f, 0x85, 0x4b, 0x00, 0x00, 0x00, //0x00003f46 jne LBB11_51 + 0x41, 0x80, 0x3c, 0x07, 0x72, //0x00003f4c cmpb $114, (%r15,%rax) + 0x0f, 0x85, 0x39, 0x00, 0x00, 0x00, //0x00003f51 jne LBB11_49 + 0x41, 0x80, 0x7c, 0x07, 0x01, 0x75, //0x00003f57 cmpb $117, $1(%r15,%rax) + 0x0f, 0x85, 0x2a, 0x00, 0x00, 0x00, //0x00003f5d jne LBB11_48 + 0x41, 0x80, 0x7c, 0x07, 0x02, 0x65, //0x00003f63 cmpb $101, $2(%r15,%rax) + 0x48, 0x8d, 0x50, 0x03, //0x00003f69 leaq $3(%rax), %rdx + 0x48, 0x8d, 0x40, 0x02, //0x00003f6d leaq $2(%rax), %rax + 0x48, 0x0f, 0x44, 0xc2, //0x00003f71 cmoveq %rdx, %rax + 0xe9, 0x16, 0x00, 0x00, 0x00, //0x00003f75 jmp LBB11_49 + //0x00003f7a LBB11_43 + 0x48, 0x89, 0xcb, //0x00003f7a movq %rcx, %rbx + 0x49, 0x89, 0x06, //0x00003f7d movq %rax, (%r14) + 0xe9, 0x5e, 0x00, 0x00, 0x00, //0x00003f80 jmp LBB11_58 + //0x00003f85 LBB11_44 + 0x48, 0xff, 0xc1, //0x00003f85 incq %rcx + 0xe9, 0x16, 0x00, 0x00, 0x00, //0x00003f88 jmp LBB11_46 + //0x00003f8d LBB11_48 + 0x48, 0xff, 0xc0, //0x00003f8d incq %rax + //0x00003f90 LBB11_49 + 0x48, 0x89, 0x45, 0xd0, //0x00003f90 movq %rax, $-48(%rbp) + //0x00003f94 LBB11_50 + 0x48, 0x89, 0xc3, //0x00003f94 movq %rax, %rbx + //0x00003f97 LBB11_51 + 0x49, 0x89, 0x0e, //0x00003f97 movq %rcx, (%r14) + 0xe9, 0x44, 0x00, 0x00, 0x00, //0x00003f9a jmp LBB11_58 + //0x00003f9f LBB11_45 + 0x48, 0x83, 0xc1, 0x02, //0x00003f9f addq $2, %rcx + //0x00003fa3 LBB11_46 + 0x48, 0x89, 0xcb, //0x00003fa3 movq %rcx, %rbx + //0x00003fa6 LBB11_47 + 0x48, 0x89, 0x5d, 0xd0, //0x00003fa6 movq %rbx, $-48(%rbp) + 0x49, 0x89, 0x06, //0x00003faa movq %rax, (%r14) + 0xe9, 0x31, 0x00, 0x00, 0x00, //0x00003fad jmp LBB11_58 + //0x00003fb2 LBB11_53 + 0x4d, 0x29, 0xfc, //0x00003fb2 subq %r15, %r12 + 0x4c, 0x89, 0x65, 0xd0, //0x00003fb5 movq %r12, $-48(%rbp) + 0x49, 0xc7, 0xc5, 0xff, 0xff, 0xff, 0xff, //0x00003fb9 movq $-1, %r13 + 0xe9, 0x14, 0x00, 0x00, 0x00, //0x00003fc0 jmp LBB11_56 + //0x00003fc5 LBB11_54 + 0x48, 0xf7, 0xd0, //0x00003fc5 notq %rax + 0x49, 0x01, 0xc4, //0x00003fc8 addq %rax, %r12 + //0x00003fcb LBB11_55 + 0x4d, 0x29, 0xfc, //0x00003fcb subq %r15, %r12 + 0x4c, 0x89, 0x65, 0xd0, //0x00003fce movq %r12, $-48(%rbp) + 0x49, 0xc7, 0xc5, 0xfe, 0xff, 0xff, 0xff, //0x00003fd2 movq $-2, %r13 + //0x00003fd9 LBB11_56 + 0x4c, 0x89, 0xe3, //0x00003fd9 movq %r12, %rbx + //0x00003fdc LBB11_57 + 0x48, 0x8b, 0x45, 0xc8, //0x00003fdc movq $-56(%rbp), %rax + 0x4c, 0x89, 0x28, //0x00003fe0 movq %r13, (%rax) + //0x00003fe3 LBB11_58 + 0x48, 0x89, 0xd8, //0x00003fe3 movq %rbx, %rax + 0x48, 0x83, 0xc4, 0x28, //0x00003fe6 addq $40, %rsp + 0x5b, //0x00003fea popq %rbx + 0x41, 0x5c, //0x00003feb popq %r12 + 0x41, 0x5d, //0x00003fed popq %r13 + 0x41, 0x5e, //0x00003fef popq %r14 + 0x41, 0x5f, //0x00003ff1 popq %r15 + 0x5d, //0x00003ff3 popq %rbp + 0xc3, //0x00003ff4 retq + 0x90, 0x90, 0x90, //0x00003ff5 .p2align 2, 0x90 + // // .set L11_0_set_9, LBB11_9-LJTI11_0 + // // .set L11_0_set_10, LBB11_10-LJTI11_0 + // // .set L11_0_set_11, LBB11_11-LJTI11_0 + // // .set L11_0_set_13, LBB11_13-LJTI11_0 + // // .set L11_0_set_2, LBB11_2-LJTI11_0 + // // .set L11_0_set_14, LBB11_14-LJTI11_0 + // // .set L11_0_set_15, LBB11_15-LJTI11_0 + // // .set L11_0_set_16, LBB11_16-LJTI11_0 + // // .set L11_0_set_17, LBB11_17-LJTI11_0 + // // .set L11_0_set_19, LBB11_19-LJTI11_0 + // // .set L11_0_set_21, LBB11_21-LJTI11_0 + // // .set L11_0_set_24, LBB11_24-LJTI11_0 + // // .set L11_0_set_25, LBB11_25-LJTI11_0 + //0x00003ff8 LJTI11_0 + 0x03, 0xfd, 0xff, 0xff, //0x00003ff8 .long L11_0_set_9 + 0x13, 0xfd, 0xff, 0xff, //0x00003ffc .long L11_0_set_10 + 0x13, 0xfd, 0xff, 0xff, //0x00004000 .long L11_0_set_10 + 0x13, 0xfd, 0xff, 0xff, //0x00004004 .long L11_0_set_10 + 0x13, 0xfd, 0xff, 0xff, //0x00004008 .long L11_0_set_10 + 0x13, 0xfd, 0xff, 0xff, //0x0000400c .long L11_0_set_10 + 0x13, 0xfd, 0xff, 0xff, //0x00004010 .long L11_0_set_10 + 0x13, 0xfd, 0xff, 0xff, //0x00004014 .long L11_0_set_10 + 0x13, 0xfd, 0xff, 0xff, //0x00004018 .long L11_0_set_10 + 0x13, 0xfd, 0xff, 0xff, //0x0000401c .long L11_0_set_10 + 0x13, 0xfd, 0xff, 0xff, //0x00004020 .long L11_0_set_10 + 0x13, 0xfd, 0xff, 0xff, //0x00004024 .long L11_0_set_10 + 0x13, 0xfd, 0xff, 0xff, //0x00004028 .long L11_0_set_10 + 0x13, 0xfd, 0xff, 0xff, //0x0000402c .long L11_0_set_10 + 0x13, 0xfd, 0xff, 0xff, //0x00004030 .long L11_0_set_10 + 0x13, 0xfd, 0xff, 0xff, //0x00004034 .long L11_0_set_10 + 0x13, 0xfd, 0xff, 0xff, //0x00004038 .long L11_0_set_10 + 0x13, 0xfd, 0xff, 0xff, //0x0000403c .long L11_0_set_10 + 0x13, 0xfd, 0xff, 0xff, //0x00004040 .long L11_0_set_10 + 0x13, 0xfd, 0xff, 0xff, //0x00004044 .long L11_0_set_10 + 0x13, 0xfd, 0xff, 0xff, //0x00004048 .long L11_0_set_10 + 0x13, 0xfd, 0xff, 0xff, //0x0000404c .long L11_0_set_10 + 0x13, 0xfd, 0xff, 0xff, //0x00004050 .long L11_0_set_10 + 0x13, 0xfd, 0xff, 0xff, //0x00004054 .long L11_0_set_10 + 0x13, 0xfd, 0xff, 0xff, //0x00004058 .long L11_0_set_10 + 0x13, 0xfd, 0xff, 0xff, //0x0000405c .long L11_0_set_10 + 0x13, 0xfd, 0xff, 0xff, //0x00004060 .long L11_0_set_10 + 0x13, 0xfd, 0xff, 0xff, //0x00004064 .long L11_0_set_10 + 0x13, 0xfd, 0xff, 0xff, //0x00004068 .long L11_0_set_10 + 0x13, 0xfd, 0xff, 0xff, //0x0000406c .long L11_0_set_10 + 0x13, 0xfd, 0xff, 0xff, //0x00004070 .long L11_0_set_10 + 0x13, 0xfd, 0xff, 0xff, //0x00004074 .long L11_0_set_10 + 0x13, 0xfd, 0xff, 0xff, //0x00004078 .long L11_0_set_10 + 0x13, 0xfd, 0xff, 0xff, //0x0000407c .long L11_0_set_10 + 0x26, 0xfd, 0xff, 0xff, //0x00004080 .long L11_0_set_11 + 0x13, 0xfd, 0xff, 0xff, //0x00004084 .long L11_0_set_10 + 0x13, 0xfd, 0xff, 0xff, //0x00004088 .long L11_0_set_10 + 0x13, 0xfd, 0xff, 0xff, //0x0000408c .long L11_0_set_10 + 0x13, 0xfd, 0xff, 0xff, //0x00004090 .long L11_0_set_10 + 0x13, 0xfd, 0xff, 0xff, //0x00004094 .long L11_0_set_10 + 0x13, 0xfd, 0xff, 0xff, //0x00004098 .long L11_0_set_10 + 0x13, 0xfd, 0xff, 0xff, //0x0000409c .long L11_0_set_10 + 0x13, 0xfd, 0xff, 0xff, //0x000040a0 .long L11_0_set_10 + 0x13, 0xfd, 0xff, 0xff, //0x000040a4 .long L11_0_set_10 + 0x7c, 0xfd, 0xff, 0xff, //0x000040a8 .long L11_0_set_13 + 0x66, 0xfc, 0xff, 0xff, //0x000040ac .long L11_0_set_2 + 0x13, 0xfd, 0xff, 0xff, //0x000040b0 .long L11_0_set_10 + 0x13, 0xfd, 0xff, 0xff, //0x000040b4 .long L11_0_set_10 + 0x66, 0xfc, 0xff, 0xff, //0x000040b8 .long L11_0_set_2 + 0x66, 0xfc, 0xff, 0xff, //0x000040bc .long L11_0_set_2 + 0x66, 0xfc, 0xff, 0xff, //0x000040c0 .long L11_0_set_2 + 0x66, 0xfc, 0xff, 0xff, //0x000040c4 .long L11_0_set_2 + 0x66, 0xfc, 0xff, 0xff, //0x000040c8 .long L11_0_set_2 + 0x66, 0xfc, 0xff, 0xff, //0x000040cc .long L11_0_set_2 + 0x66, 0xfc, 0xff, 0xff, //0x000040d0 .long L11_0_set_2 + 0x66, 0xfc, 0xff, 0xff, //0x000040d4 .long L11_0_set_2 + 0x66, 0xfc, 0xff, 0xff, //0x000040d8 .long L11_0_set_2 + 0x66, 0xfc, 0xff, 0xff, //0x000040dc .long L11_0_set_2 + 0x8b, 0xfd, 0xff, 0xff, //0x000040e0 .long L11_0_set_14 + 0x13, 0xfd, 0xff, 0xff, //0x000040e4 .long L11_0_set_10 + 0x13, 0xfd, 0xff, 0xff, //0x000040e8 .long L11_0_set_10 + 0x13, 0xfd, 0xff, 0xff, //0x000040ec .long L11_0_set_10 + 0x13, 0xfd, 0xff, 0xff, //0x000040f0 .long L11_0_set_10 + 0x13, 0xfd, 0xff, 0xff, //0x000040f4 .long L11_0_set_10 + 0x13, 0xfd, 0xff, 0xff, //0x000040f8 .long L11_0_set_10 + 0x13, 0xfd, 0xff, 0xff, //0x000040fc .long L11_0_set_10 + 0x13, 0xfd, 0xff, 0xff, //0x00004100 .long L11_0_set_10 + 0x13, 0xfd, 0xff, 0xff, //0x00004104 .long L11_0_set_10 + 0x13, 0xfd, 0xff, 0xff, //0x00004108 .long L11_0_set_10 + 0x13, 0xfd, 0xff, 0xff, //0x0000410c .long L11_0_set_10 + 0x13, 0xfd, 0xff, 0xff, //0x00004110 .long L11_0_set_10 + 0x13, 0xfd, 0xff, 0xff, //0x00004114 .long L11_0_set_10 + 0x13, 0xfd, 0xff, 0xff, //0x00004118 .long L11_0_set_10 + 0x13, 0xfd, 0xff, 0xff, //0x0000411c .long L11_0_set_10 + 0x13, 0xfd, 0xff, 0xff, //0x00004120 .long L11_0_set_10 + 0x13, 0xfd, 0xff, 0xff, //0x00004124 .long L11_0_set_10 + 0x13, 0xfd, 0xff, 0xff, //0x00004128 .long L11_0_set_10 + 0x13, 0xfd, 0xff, 0xff, //0x0000412c .long L11_0_set_10 + 0x13, 0xfd, 0xff, 0xff, //0x00004130 .long L11_0_set_10 + 0x13, 0xfd, 0xff, 0xff, //0x00004134 .long L11_0_set_10 + 0x13, 0xfd, 0xff, 0xff, //0x00004138 .long L11_0_set_10 + 0x13, 0xfd, 0xff, 0xff, //0x0000413c .long L11_0_set_10 + 0x13, 0xfd, 0xff, 0xff, //0x00004140 .long L11_0_set_10 + 0x13, 0xfd, 0xff, 0xff, //0x00004144 .long L11_0_set_10 + 0x13, 0xfd, 0xff, 0xff, //0x00004148 .long L11_0_set_10 + 0x13, 0xfd, 0xff, 0xff, //0x0000414c .long L11_0_set_10 + 0x13, 0xfd, 0xff, 0xff, //0x00004150 .long L11_0_set_10 + 0x13, 0xfd, 0xff, 0xff, //0x00004154 .long L11_0_set_10 + 0x13, 0xfd, 0xff, 0xff, //0x00004158 .long L11_0_set_10 + 0x13, 0xfd, 0xff, 0xff, //0x0000415c .long L11_0_set_10 + 0x13, 0xfd, 0xff, 0xff, //0x00004160 .long L11_0_set_10 + 0x9a, 0xfd, 0xff, 0xff, //0x00004164 .long L11_0_set_15 + 0x13, 0xfd, 0xff, 0xff, //0x00004168 .long L11_0_set_10 + 0xaa, 0xfd, 0xff, 0xff, //0x0000416c .long L11_0_set_16 + 0x13, 0xfd, 0xff, 0xff, //0x00004170 .long L11_0_set_10 + 0x13, 0xfd, 0xff, 0xff, //0x00004174 .long L11_0_set_10 + 0x13, 0xfd, 0xff, 0xff, //0x00004178 .long L11_0_set_10 + 0x13, 0xfd, 0xff, 0xff, //0x0000417c .long L11_0_set_10 + 0x13, 0xfd, 0xff, 0xff, //0x00004180 .long L11_0_set_10 + 0x13, 0xfd, 0xff, 0xff, //0x00004184 .long L11_0_set_10 + 0x13, 0xfd, 0xff, 0xff, //0x00004188 .long L11_0_set_10 + 0x13, 0xfd, 0xff, 0xff, //0x0000418c .long L11_0_set_10 + 0xb9, 0xfd, 0xff, 0xff, //0x00004190 .long L11_0_set_17 + 0x13, 0xfd, 0xff, 0xff, //0x00004194 .long L11_0_set_10 + 0x13, 0xfd, 0xff, 0xff, //0x00004198 .long L11_0_set_10 + 0x13, 0xfd, 0xff, 0xff, //0x0000419c .long L11_0_set_10 + 0x13, 0xfd, 0xff, 0xff, //0x000041a0 .long L11_0_set_10 + 0x13, 0xfd, 0xff, 0xff, //0x000041a4 .long L11_0_set_10 + 0x13, 0xfd, 0xff, 0xff, //0x000041a8 .long L11_0_set_10 + 0x13, 0xfd, 0xff, 0xff, //0x000041ac .long L11_0_set_10 + 0xdd, 0xfd, 0xff, 0xff, //0x000041b0 .long L11_0_set_19 + 0x13, 0xfd, 0xff, 0xff, //0x000041b4 .long L11_0_set_10 + 0x13, 0xfd, 0xff, 0xff, //0x000041b8 .long L11_0_set_10 + 0x13, 0xfd, 0xff, 0xff, //0x000041bc .long L11_0_set_10 + 0x13, 0xfd, 0xff, 0xff, //0x000041c0 .long L11_0_set_10 + 0x13, 0xfd, 0xff, 0xff, //0x000041c4 .long L11_0_set_10 + 0x11, 0xfe, 0xff, 0xff, //0x000041c8 .long L11_0_set_21 + 0x13, 0xfd, 0xff, 0xff, //0x000041cc .long L11_0_set_10 + 0x13, 0xfd, 0xff, 0xff, //0x000041d0 .long L11_0_set_10 + 0x13, 0xfd, 0xff, 0xff, //0x000041d4 .long L11_0_set_10 + 0x13, 0xfd, 0xff, 0xff, //0x000041d8 .long L11_0_set_10 + 0x13, 0xfd, 0xff, 0xff, //0x000041dc .long L11_0_set_10 + 0x13, 0xfd, 0xff, 0xff, //0x000041e0 .long L11_0_set_10 + 0x35, 0xfe, 0xff, 0xff, //0x000041e4 .long L11_0_set_24 + 0x13, 0xfd, 0xff, 0xff, //0x000041e8 .long L11_0_set_10 + 0x45, 0xfe, 0xff, 0xff, //0x000041ec .long L11_0_set_25 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000041f0 .p2align 5, 0x00 + //0x00004200 LCPI12_0 + 0x20, //0x00004200 .byte 32 + 0x00, //0x00004201 .byte 0 + 0x00, //0x00004202 .byte 0 + 0x00, //0x00004203 .byte 0 + 0x00, //0x00004204 .byte 0 + 0x00, //0x00004205 .byte 0 + 0x00, //0x00004206 .byte 0 + 0x00, //0x00004207 .byte 0 + 0x00, //0x00004208 .byte 0 + 0x09, //0x00004209 .byte 9 + 0x0a, //0x0000420a .byte 10 + 0x00, //0x0000420b .byte 0 + 0x00, //0x0000420c .byte 0 + 0x0d, //0x0000420d .byte 13 + 0x00, //0x0000420e .byte 0 + 0x00, //0x0000420f .byte 0 + 0x20, //0x00004210 .byte 32 + 0x00, //0x00004211 .byte 0 + 0x00, //0x00004212 .byte 0 + 0x00, //0x00004213 .byte 0 + 0x00, //0x00004214 .byte 0 + 0x00, //0x00004215 .byte 0 + 0x00, //0x00004216 .byte 0 + 0x00, //0x00004217 .byte 0 + 0x00, //0x00004218 .byte 0 + 0x09, //0x00004219 .byte 9 + 0x0a, //0x0000421a .byte 10 + 0x00, //0x0000421b .byte 0 + 0x00, //0x0000421c .byte 0 + 0x0d, //0x0000421d .byte 13 + 0x00, //0x0000421e .byte 0 + 0x00, //0x0000421f .byte 0 + //0x00004220 .p2align 4, 0x90 + //0x00004220 _advance_ns + 0x55, //0x00004220 pushq %rbp + 0x48, 0x89, 0xe5, //0x00004221 movq %rsp, %rbp + 0x4c, 0x8b, 0x02, //0x00004224 movq (%rdx), %r8 + 0x49, 0x39, 0xf0, //0x00004227 cmpq %rsi, %r8 + 0x0f, 0x83, 0x26, 0x00, 0x00, 0x00, //0x0000422a jae LBB12_6 + 0x42, 0x8a, 0x04, 0x07, //0x00004230 movb (%rdi,%r8), %al + 0x3c, 0x0d, //0x00004234 cmpb $13, %al + 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x00004236 je LBB12_6 + 0x3c, 0x20, //0x0000423c cmpb $32, %al + 0x0f, 0x84, 0x12, 0x00, 0x00, 0x00, //0x0000423e je LBB12_6 + 0x04, 0xf7, //0x00004244 addb $-9, %al + 0x3c, 0x01, //0x00004246 cmpb $1, %al + 0x0f, 0x86, 0x08, 0x00, 0x00, 0x00, //0x00004248 jbe LBB12_6 + 0x4d, 0x89, 0xc2, //0x0000424e movq %r8, %r10 + 0xe9, 0x81, 0x01, 0x00, 0x00, //0x00004251 jmp LBB12_5 + //0x00004256 LBB12_6 + 0x4d, 0x8d, 0x50, 0x01, //0x00004256 leaq $1(%r8), %r10 + 0x49, 0x39, 0xf2, //0x0000425a cmpq %rsi, %r10 + 0x0f, 0x83, 0x22, 0x00, 0x00, 0x00, //0x0000425d jae LBB12_10 + 0x42, 0x8a, 0x0c, 0x17, //0x00004263 movb (%rdi,%r10), %cl + 0x80, 0xf9, 0x0d, //0x00004267 cmpb $13, %cl + 0x0f, 0x84, 0x15, 0x00, 0x00, 0x00, //0x0000426a je LBB12_10 + 0x80, 0xf9, 0x20, //0x00004270 cmpb $32, %cl + 0x0f, 0x84, 0x0c, 0x00, 0x00, 0x00, //0x00004273 je LBB12_10 + 0x80, 0xc1, 0xf7, //0x00004279 addb $-9, %cl + 0x80, 0xf9, 0x01, //0x0000427c cmpb $1, %cl + 0x0f, 0x87, 0x52, 0x01, 0x00, 0x00, //0x0000427f ja LBB12_5 + //0x00004285 LBB12_10 + 0x4d, 0x8d, 0x50, 0x02, //0x00004285 leaq $2(%r8), %r10 + 0x49, 0x39, 0xf2, //0x00004289 cmpq %rsi, %r10 + 0x0f, 0x83, 0x22, 0x00, 0x00, 0x00, //0x0000428c jae LBB12_14 + 0x42, 0x8a, 0x0c, 0x17, //0x00004292 movb (%rdi,%r10), %cl + 0x80, 0xf9, 0x0d, //0x00004296 cmpb $13, %cl + 0x0f, 0x84, 0x15, 0x00, 0x00, 0x00, //0x00004299 je LBB12_14 + 0x80, 0xf9, 0x20, //0x0000429f cmpb $32, %cl + 0x0f, 0x84, 0x0c, 0x00, 0x00, 0x00, //0x000042a2 je LBB12_14 + 0x80, 0xc1, 0xf7, //0x000042a8 addb $-9, %cl + 0x80, 0xf9, 0x01, //0x000042ab cmpb $1, %cl + 0x0f, 0x87, 0x23, 0x01, 0x00, 0x00, //0x000042ae ja LBB12_5 + //0x000042b4 LBB12_14 + 0x4d, 0x8d, 0x50, 0x03, //0x000042b4 leaq $3(%r8), %r10 + 0x49, 0x39, 0xf2, //0x000042b8 cmpq %rsi, %r10 + 0x0f, 0x83, 0x22, 0x00, 0x00, 0x00, //0x000042bb jae LBB12_18 + 0x42, 0x8a, 0x0c, 0x17, //0x000042c1 movb (%rdi,%r10), %cl + 0x80, 0xf9, 0x0d, //0x000042c5 cmpb $13, %cl + 0x0f, 0x84, 0x15, 0x00, 0x00, 0x00, //0x000042c8 je LBB12_18 + 0x80, 0xf9, 0x20, //0x000042ce cmpb $32, %cl + 0x0f, 0x84, 0x0c, 0x00, 0x00, 0x00, //0x000042d1 je LBB12_18 + 0x80, 0xc1, 0xf7, //0x000042d7 addb $-9, %cl + 0x80, 0xf9, 0x01, //0x000042da cmpb $1, %cl + 0x0f, 0x87, 0xf4, 0x00, 0x00, 0x00, //0x000042dd ja LBB12_5 + //0x000042e3 LBB12_18 + 0x49, 0x8d, 0x40, 0x04, //0x000042e3 leaq $4(%r8), %rax + 0x48, 0x39, 0xf0, //0x000042e7 cmpq %rsi, %rax + 0x0f, 0x83, 0xc8, 0x00, 0x00, 0x00, //0x000042ea jae LBB12_19 + 0x4c, 0x8d, 0x14, 0x07, //0x000042f0 leaq (%rdi,%rax), %r10 + 0x48, 0x89, 0xf1, //0x000042f4 movq %rsi, %rcx + 0x48, 0x29, 0xc1, //0x000042f7 subq %rax, %rcx + 0x48, 0x83, 0xf9, 0x20, //0x000042fa cmpq $32, %rcx + 0x0f, 0x82, 0x5f, 0x00, 0x00, 0x00, //0x000042fe jb LBB12_24 + 0x49, 0x89, 0xf1, //0x00004304 movq %rsi, %r9 + 0x4d, 0x29, 0xc1, //0x00004307 subq %r8, %r9 + 0x49, 0x83, 0xc1, 0xdc, //0x0000430a addq $-36, %r9 + 0x4c, 0x89, 0xc8, //0x0000430e movq %r9, %rax + 0x48, 0x83, 0xe0, 0xe0, //0x00004311 andq $-32, %rax + 0x4c, 0x01, 0xc0, //0x00004315 addq %r8, %rax + 0x4c, 0x8d, 0x44, 0x07, 0x24, //0x00004318 leaq $36(%rdi,%rax), %r8 + 0x41, 0x83, 0xe1, 0x1f, //0x0000431d andl $31, %r9d + 0xc5, 0xfd, 0x6f, 0x05, 0xd7, 0xfe, 0xff, 0xff, //0x00004321 vmovdqa $-297(%rip), %ymm0 /* LCPI12_0+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00004329 .p2align 4, 0x90 + //0x00004330 LBB12_22 + 0xc4, 0xc1, 0x7e, 0x6f, 0x0a, //0x00004330 vmovdqu (%r10), %ymm1 + 0xc4, 0xe2, 0x7d, 0x00, 0xd1, //0x00004335 vpshufb %ymm1, %ymm0, %ymm2 + 0xc5, 0xf5, 0x74, 0xca, //0x0000433a vpcmpeqb %ymm2, %ymm1, %ymm1 + 0xc5, 0xfd, 0xd7, 0xc1, //0x0000433e vpmovmskb %ymm1, %eax + 0x83, 0xf8, 0xff, //0x00004342 cmpl $-1, %eax + 0x0f, 0x85, 0x75, 0x00, 0x00, 0x00, //0x00004345 jne LBB12_23 + 0x49, 0x83, 0xc2, 0x20, //0x0000434b addq $32, %r10 + 0x48, 0x83, 0xc1, 0xe0, //0x0000434f addq $-32, %rcx + 0x48, 0x83, 0xf9, 0x1f, //0x00004353 cmpq $31, %rcx + 0x0f, 0x87, 0xd3, 0xff, 0xff, 0xff, //0x00004357 ja LBB12_22 + 0x4c, 0x89, 0xc9, //0x0000435d movq %r9, %rcx + 0x4d, 0x89, 0xc2, //0x00004360 movq %r8, %r10 + //0x00004363 LBB12_24 + 0x48, 0x85, 0xc9, //0x00004363 testq %rcx, %rcx + 0x0f, 0x84, 0x3b, 0x00, 0x00, 0x00, //0x00004366 je LBB12_33 + 0x4d, 0x8d, 0x04, 0x0a, //0x0000436c leaq (%r10,%rcx), %r8 + 0x49, 0xff, 0xc2, //0x00004370 incq %r10 + 0x49, 0xb9, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00004373 movabsq $4294977024, %r9 + //0x0000437d LBB12_26 + 0x41, 0x0f, 0xbe, 0x42, 0xff, //0x0000437d movsbl $-1(%r10), %eax + 0x83, 0xf8, 0x20, //0x00004382 cmpl $32, %eax + 0x0f, 0x87, 0x5f, 0x00, 0x00, 0x00, //0x00004385 ja LBB12_28 + 0x49, 0x0f, 0xa3, 0xc1, //0x0000438b btq %rax, %r9 + 0x0f, 0x83, 0x55, 0x00, 0x00, 0x00, //0x0000438f jae LBB12_28 + 0x48, 0xff, 0xc9, //0x00004395 decq %rcx + 0x49, 0xff, 0xc2, //0x00004398 incq %r10 + 0x48, 0x85, 0xc9, //0x0000439b testq %rcx, %rcx + 0x0f, 0x85, 0xd9, 0xff, 0xff, 0xff, //0x0000439e jne LBB12_26 + 0x4d, 0x89, 0xc2, //0x000043a4 movq %r8, %r10 + //0x000043a7 LBB12_33 + 0x49, 0x29, 0xfa, //0x000043a7 subq %rdi, %r10 + 0x49, 0x39, 0xf2, //0x000043aa cmpq %rsi, %r10 + 0x0f, 0x82, 0x24, 0x00, 0x00, 0x00, //0x000043ad jb LBB12_5 + 0xe9, 0x44, 0x00, 0x00, 0x00, //0x000043b3 jmp LBB12_35 + //0x000043b8 LBB12_19 + 0x48, 0x89, 0x02, //0x000043b8 movq %rax, (%rdx) + 0xe9, 0x3c, 0x00, 0x00, 0x00, //0x000043bb jmp LBB12_35 + //0x000043c0 LBB12_23 + 0x49, 0x29, 0xfa, //0x000043c0 subq %rdi, %r10 + 0xf7, 0xd0, //0x000043c3 notl %eax + 0x48, 0x98, //0x000043c5 cltq + 0x48, 0x0f, 0xbc, 0xc0, //0x000043c7 bsfq %rax, %rax + 0x49, 0x01, 0xc2, //0x000043cb addq %rax, %r10 + 0x49, 0x39, 0xf2, //0x000043ce cmpq %rsi, %r10 + 0x0f, 0x83, 0x25, 0x00, 0x00, 0x00, //0x000043d1 jae LBB12_35 + //0x000043d7 LBB12_5 + 0x49, 0x8d, 0x42, 0x01, //0x000043d7 leaq $1(%r10), %rax + 0x48, 0x89, 0x02, //0x000043db movq %rax, (%rdx) + 0x42, 0x8a, 0x04, 0x17, //0x000043de movb (%rdi,%r10), %al + 0x0f, 0xbe, 0xc0, //0x000043e2 movsbl %al, %eax + 0x5d, //0x000043e5 popq %rbp + 0xc5, 0xf8, 0x77, //0x000043e6 vzeroupper + 0xc3, //0x000043e9 retq + //0x000043ea LBB12_28 + 0x48, 0x89, 0xf8, //0x000043ea movq %rdi, %rax + 0x48, 0xf7, 0xd0, //0x000043ed notq %rax + 0x49, 0x01, 0xc2, //0x000043f0 addq %rax, %r10 + 0x49, 0x39, 0xf2, //0x000043f3 cmpq %rsi, %r10 + 0x0f, 0x82, 0xdb, 0xff, 0xff, 0xff, //0x000043f6 jb LBB12_5 + //0x000043fc LBB12_35 + 0x31, 0xc0, //0x000043fc xorl %eax, %eax + 0x0f, 0xbe, 0xc0, //0x000043fe movsbl %al, %eax + 0x5d, //0x00004401 popq %rbp + 0xc5, 0xf8, 0x77, //0x00004402 vzeroupper + 0xc3, //0x00004405 retq + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00004406 .p2align 4, 0x90 + //0x00004410 _vstring + 0x55, //0x00004410 pushq %rbp + 0x48, 0x89, 0xe5, //0x00004411 movq %rsp, %rbp + 0x41, 0x57, //0x00004414 pushq %r15 + 0x41, 0x56, //0x00004416 pushq %r14 + 0x41, 0x54, //0x00004418 pushq %r12 + 0x53, //0x0000441a pushq %rbx + 0x48, 0x83, 0xec, 0x10, //0x0000441b subq $16, %rsp + 0x49, 0x89, 0xd6, //0x0000441f movq %rdx, %r14 + 0x48, 0x89, 0xf3, //0x00004422 movq %rsi, %rbx + 0x49, 0x89, 0xff, //0x00004425 movq %rdi, %r15 + 0x48, 0xc7, 0x45, 0xd8, 0xff, 0xff, 0xff, 0xff, //0x00004428 movq $-1, $-40(%rbp) + 0x4c, 0x8b, 0x26, //0x00004430 movq (%rsi), %r12 + 0x48, 0x8d, 0x55, 0xd8, //0x00004433 leaq $-40(%rbp), %rdx + 0x4c, 0x89, 0xe6, //0x00004437 movq %r12, %rsi + 0xe8, 0xc1, 0x00, 0x00, 0x00, //0x0000443a callq _advance_string + 0x48, 0x85, 0xc0, //0x0000443f testq %rax, %rax + 0x0f, 0x88, 0x27, 0x00, 0x00, 0x00, //0x00004442 js LBB13_1 + 0x48, 0x89, 0x03, //0x00004448 movq %rax, (%rbx) + 0x4d, 0x89, 0x66, 0x10, //0x0000444b movq %r12, $16(%r14) + 0x48, 0x8b, 0x4d, 0xd8, //0x0000444f movq $-40(%rbp), %rcx + 0x48, 0x39, 0xc1, //0x00004453 cmpq %rax, %rcx + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00004456 movq $-1, %rax + 0x48, 0x0f, 0x4c, 0xc1, //0x0000445d cmovlq %rcx, %rax + 0x49, 0x89, 0x46, 0x18, //0x00004461 movq %rax, $24(%r14) + 0xb8, 0x07, 0x00, 0x00, 0x00, //0x00004465 movl $7, %eax + 0xe9, 0x07, 0x00, 0x00, 0x00, //0x0000446a jmp LBB13_3 + //0x0000446f LBB13_1 + 0x49, 0x8b, 0x4f, 0x08, //0x0000446f movq $8(%r15), %rcx + 0x48, 0x89, 0x0b, //0x00004473 movq %rcx, (%rbx) + //0x00004476 LBB13_3 + 0x49, 0x89, 0x06, //0x00004476 movq %rax, (%r14) + 0x48, 0x83, 0xc4, 0x10, //0x00004479 addq $16, %rsp + 0x5b, //0x0000447d popq %rbx + 0x41, 0x5c, //0x0000447e popq %r12 + 0x41, 0x5e, //0x00004480 popq %r14 + 0x41, 0x5f, //0x00004482 popq %r15 + 0x5d, //0x00004484 popq %rbp + 0xc3, //0x00004485 retq + 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, //0x00004486 .p2align 5, 0x00 + //0x000044a0 LCPI14_0 + 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, //0x000044a0 QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' + 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, //0x000044b0 QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' + //0x000044c0 LCPI14_1 + 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x000044c0 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x000044d0 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + //0x000044e0 LCPI14_2 + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x000044e0 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x000044f0 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' + //0x00004500 .p2align 4, 0x90 + //0x00004500 _advance_string + 0xf6, 0xc1, 0x20, //0x00004500 testb $32, %cl + 0x0f, 0x85, 0x05, 0x00, 0x00, 0x00, //0x00004503 jne LBB14_2 + 0xe9, 0x72, 0x58, 0x00, 0x00, //0x00004509 jmp _advance_string_default + //0x0000450e LBB14_2 + 0x55, //0x0000450e pushq %rbp + 0x48, 0x89, 0xe5, //0x0000450f movq %rsp, %rbp + 0x41, 0x57, //0x00004512 pushq %r15 + 0x41, 0x56, //0x00004514 pushq %r14 + 0x41, 0x55, //0x00004516 pushq %r13 + 0x41, 0x54, //0x00004518 pushq %r12 + 0x53, //0x0000451a pushq %rbx + 0x50, //0x0000451b pushq %rax + 0x4c, 0x8b, 0x67, 0x08, //0x0000451c movq $8(%rdi), %r12 + 0x49, 0x29, 0xf4, //0x00004520 subq %rsi, %r12 + 0x0f, 0x84, 0xef, 0x03, 0x00, 0x00, //0x00004523 je LBB14_42 + 0x4c, 0x8b, 0x07, //0x00004529 movq (%rdi), %r8 + 0x4c, 0x01, 0xc6, //0x0000452c addq %r8, %rsi + 0x48, 0xc7, 0x02, 0xff, 0xff, 0xff, 0xff, //0x0000452f movq $-1, (%rdx) + 0x49, 0x83, 0xfc, 0x40, //0x00004536 cmpq $64, %r12 + 0x0f, 0x82, 0x02, 0x03, 0x00, 0x00, //0x0000453a jb LBB14_43 + 0x45, 0x89, 0xe1, //0x00004540 movl %r12d, %r9d + 0x41, 0x83, 0xe1, 0x3f, //0x00004543 andl $63, %r9d + 0x49, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x00004547 movq $-1, %r14 + 0x45, 0x31, 0xff, //0x0000454e xorl %r15d, %r15d + 0xc5, 0xfd, 0x6f, 0x05, 0x47, 0xff, 0xff, 0xff, //0x00004551 vmovdqa $-185(%rip), %ymm0 /* LCPI14_0+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x0d, 0x5f, 0xff, 0xff, 0xff, //0x00004559 vmovdqa $-161(%rip), %ymm1 /* LCPI14_1+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x15, 0x77, 0xff, 0xff, 0xff, //0x00004561 vmovdqa $-137(%rip), %ymm2 /* LCPI14_2+0(%rip) */ + 0xc5, 0xe5, 0x76, 0xdb, //0x00004569 vpcmpeqd %ymm3, %ymm3, %ymm3 + 0x49, 0xbb, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x0000456d movabsq $6148914691236517205, %r11 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00004577 .p2align 4, 0x90 + //0x00004580 LBB14_5 + 0xc5, 0xfe, 0x6f, 0x26, //0x00004580 vmovdqu (%rsi), %ymm4 + 0xc5, 0xfe, 0x6f, 0x6e, 0x20, //0x00004584 vmovdqu $32(%rsi), %ymm5 + 0xc5, 0xdd, 0x74, 0xf0, //0x00004589 vpcmpeqb %ymm0, %ymm4, %ymm6 + 0xc5, 0xfd, 0xd7, 0xc6, //0x0000458d vpmovmskb %ymm6, %eax + 0xc5, 0xd5, 0x74, 0xf0, //0x00004591 vpcmpeqb %ymm0, %ymm5, %ymm6 + 0xc5, 0xfd, 0xd7, 0xfe, //0x00004595 vpmovmskb %ymm6, %edi + 0xc5, 0xdd, 0x74, 0xf1, //0x00004599 vpcmpeqb %ymm1, %ymm4, %ymm6 + 0xc5, 0xfd, 0xd7, 0xce, //0x0000459d vpmovmskb %ymm6, %ecx + 0xc5, 0xd5, 0x74, 0xf1, //0x000045a1 vpcmpeqb %ymm1, %ymm5, %ymm6 + 0xc5, 0x7d, 0xd7, 0xd6, //0x000045a5 vpmovmskb %ymm6, %r10d + 0xc5, 0xed, 0x64, 0xf4, //0x000045a9 vpcmpgtb %ymm4, %ymm2, %ymm6 + 0xc5, 0xdd, 0x64, 0xe3, //0x000045ad vpcmpgtb %ymm3, %ymm4, %ymm4 + 0xc5, 0xdd, 0xdb, 0xe6, //0x000045b1 vpand %ymm6, %ymm4, %ymm4 + 0xc5, 0x7d, 0xd7, 0xec, //0x000045b5 vpmovmskb %ymm4, %r13d + 0xc5, 0xed, 0x64, 0xe5, //0x000045b9 vpcmpgtb %ymm5, %ymm2, %ymm4 + 0xc5, 0xd5, 0x64, 0xeb, //0x000045bd vpcmpgtb %ymm3, %ymm5, %ymm5 + 0xc5, 0xd5, 0xdb, 0xe4, //0x000045c1 vpand %ymm4, %ymm5, %ymm4 + 0xc5, 0xfd, 0xd7, 0xdc, //0x000045c5 vpmovmskb %ymm4, %ebx + 0x48, 0xc1, 0xe7, 0x20, //0x000045c9 shlq $32, %rdi + 0x49, 0xc1, 0xe2, 0x20, //0x000045cd shlq $32, %r10 + 0x4c, 0x09, 0xd1, //0x000045d1 orq %r10, %rcx + 0x49, 0x83, 0xfe, 0xff, //0x000045d4 cmpq $-1, %r14 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x000045d8 jne LBB14_7 + 0x48, 0x85, 0xc9, //0x000045de testq %rcx, %rcx + 0x0f, 0x85, 0x93, 0x00, 0x00, 0x00, //0x000045e1 jne LBB14_12 + //0x000045e7 LBB14_7 + 0x48, 0xc1, 0xe3, 0x20, //0x000045e7 shlq $32, %rbx + 0x48, 0x09, 0xc7, //0x000045eb orq %rax, %rdi + 0x48, 0x89, 0xc8, //0x000045ee movq %rcx, %rax + 0x4c, 0x09, 0xf8, //0x000045f1 orq %r15, %rax + 0x0f, 0x85, 0x2c, 0x00, 0x00, 0x00, //0x000045f4 jne LBB14_11 + 0x4c, 0x09, 0xeb, //0x000045fa orq %r13, %rbx + 0x48, 0x85, 0xff, //0x000045fd testq %rdi, %rdi + 0x0f, 0x85, 0x89, 0x00, 0x00, 0x00, //0x00004600 jne LBB14_13 + //0x00004606 LBB14_9 + 0x48, 0x85, 0xdb, //0x00004606 testq %rbx, %rbx + 0x0f, 0x85, 0xd7, 0x00, 0x00, 0x00, //0x00004609 jne LBB14_19 + 0x48, 0x83, 0xc6, 0x40, //0x0000460f addq $64, %rsi + 0x49, 0x83, 0xc4, 0xc0, //0x00004613 addq $-64, %r12 + 0x49, 0x83, 0xfc, 0x3f, //0x00004617 cmpq $63, %r12 + 0x0f, 0x87, 0x5f, 0xff, 0xff, 0xff, //0x0000461b ja LBB14_5 + 0xe9, 0xe3, 0x00, 0x00, 0x00, //0x00004621 jmp LBB14_21 + //0x00004626 LBB14_11 + 0x4c, 0x89, 0xf8, //0x00004626 movq %r15, %rax + 0x48, 0xf7, 0xd0, //0x00004629 notq %rax + 0x48, 0x21, 0xc8, //0x0000462c andq %rcx, %rax + 0x48, 0x89, 0x45, 0xd0, //0x0000462f movq %rax, $-48(%rbp) + 0x48, 0x01, 0xc0, //0x00004633 addq %rax, %rax + 0x4c, 0x09, 0xf8, //0x00004636 orq %r15, %rax + 0x49, 0x89, 0xc2, //0x00004639 movq %rax, %r10 + 0x49, 0xf7, 0xd2, //0x0000463c notq %r10 + 0x49, 0x21, 0xca, //0x0000463f andq %rcx, %r10 + 0x48, 0xb9, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x00004642 movabsq $-6148914691236517206, %rcx + 0x49, 0x21, 0xca, //0x0000464c andq %rcx, %r10 + 0x45, 0x31, 0xff, //0x0000464f xorl %r15d, %r15d + 0x4c, 0x03, 0x55, 0xd0, //0x00004652 addq $-48(%rbp), %r10 + 0x41, 0x0f, 0x92, 0xc7, //0x00004656 setb %r15b + 0x4d, 0x01, 0xd2, //0x0000465a addq %r10, %r10 + 0x4d, 0x31, 0xda, //0x0000465d xorq %r11, %r10 + 0x49, 0x21, 0xc2, //0x00004660 andq %rax, %r10 + 0x49, 0xf7, 0xd2, //0x00004663 notq %r10 + 0x4c, 0x21, 0xd7, //0x00004666 andq %r10, %rdi + 0x4c, 0x09, 0xeb, //0x00004669 orq %r13, %rbx + 0x48, 0x85, 0xff, //0x0000466c testq %rdi, %rdi + 0x0f, 0x84, 0x91, 0xff, 0xff, 0xff, //0x0000466f je LBB14_9 + 0xe9, 0x15, 0x00, 0x00, 0x00, //0x00004675 jmp LBB14_13 + //0x0000467a LBB14_12 + 0x49, 0x89, 0xf2, //0x0000467a movq %rsi, %r10 + 0x4d, 0x29, 0xc2, //0x0000467d subq %r8, %r10 + 0x4c, 0x0f, 0xbc, 0xf1, //0x00004680 bsfq %rcx, %r14 + 0x4d, 0x01, 0xd6, //0x00004684 addq %r10, %r14 + 0x4c, 0x89, 0x32, //0x00004687 movq %r14, (%rdx) + 0xe9, 0x58, 0xff, 0xff, 0xff, //0x0000468a jmp LBB14_7 + //0x0000468f LBB14_13 + 0x48, 0x0f, 0xbc, 0xc7, //0x0000468f bsfq %rdi, %rax + 0x48, 0x85, 0xdb, //0x00004693 testq %rbx, %rbx + 0x0f, 0x84, 0x27, 0x00, 0x00, 0x00, //0x00004696 je LBB14_17 + 0x48, 0x0f, 0xbc, 0xcb, //0x0000469c bsfq %rbx, %rcx + 0x4c, 0x29, 0xc6, //0x000046a0 subq %r8, %rsi + 0x48, 0x39, 0xc1, //0x000046a3 cmpq %rax, %rcx + 0x0f, 0x82, 0x28, 0x00, 0x00, 0x00, //0x000046a6 jb LBB14_18 + //0x000046ac LBB14_15 + 0x48, 0x8d, 0x44, 0x06, 0x01, //0x000046ac leaq $1(%rsi,%rax), %rax + //0x000046b1 LBB14_16 + 0x48, 0x83, 0xc4, 0x08, //0x000046b1 addq $8, %rsp + 0x5b, //0x000046b5 popq %rbx + 0x41, 0x5c, //0x000046b6 popq %r12 + 0x41, 0x5d, //0x000046b8 popq %r13 + 0x41, 0x5e, //0x000046ba popq %r14 + 0x41, 0x5f, //0x000046bc popq %r15 + 0x5d, //0x000046be popq %rbp + 0xc5, 0xf8, 0x77, //0x000046bf vzeroupper + 0xc3, //0x000046c2 retq + //0x000046c3 LBB14_17 + 0xb9, 0x40, 0x00, 0x00, 0x00, //0x000046c3 movl $64, %ecx + 0x4c, 0x29, 0xc6, //0x000046c8 subq %r8, %rsi + 0x48, 0x39, 0xc1, //0x000046cb cmpq %rax, %rcx + 0x0f, 0x83, 0xd8, 0xff, 0xff, 0xff, //0x000046ce jae LBB14_15 + //0x000046d4 LBB14_18 + 0x48, 0x01, 0xf1, //0x000046d4 addq %rsi, %rcx + 0x48, 0x89, 0x0a, //0x000046d7 movq %rcx, (%rdx) + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x000046da movq $-2, %rax + 0xe9, 0xcb, 0xff, 0xff, 0xff, //0x000046e1 jmp LBB14_16 + //0x000046e6 LBB14_19 + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x000046e6 movq $-2, %rax + 0x49, 0x83, 0xfe, 0xff, //0x000046ed cmpq $-1, %r14 + 0x0f, 0x85, 0xba, 0xff, 0xff, 0xff, //0x000046f1 jne LBB14_16 + 0x48, 0x0f, 0xbc, 0xcb, //0x000046f7 bsfq %rbx, %rcx + 0x4c, 0x29, 0xc6, //0x000046fb subq %r8, %rsi + 0x48, 0x01, 0xce, //0x000046fe addq %rcx, %rsi + 0x48, 0x89, 0x32, //0x00004701 movq %rsi, (%rdx) + 0xe9, 0xa8, 0xff, 0xff, 0xff, //0x00004704 jmp LBB14_16 + //0x00004709 LBB14_21 + 0x4d, 0x89, 0xcc, //0x00004709 movq %r9, %r12 + 0x49, 0x83, 0xfc, 0x20, //0x0000470c cmpq $32, %r12 + 0x0f, 0x82, 0x9c, 0x00, 0x00, 0x00, //0x00004710 jb LBB14_31 + //0x00004716 LBB14_22 + 0xc5, 0xfe, 0x6f, 0x06, //0x00004716 vmovdqu (%rsi), %ymm0 + 0xc5, 0xfd, 0x74, 0x0d, 0x7e, 0xfd, 0xff, 0xff, //0x0000471a vpcmpeqb $-642(%rip), %ymm0, %ymm1 /* LCPI14_0+0(%rip) */ + 0xc5, 0x7d, 0xd7, 0xc9, //0x00004722 vpmovmskb %ymm1, %r9d + 0xc5, 0xfd, 0x74, 0x0d, 0x92, 0xfd, 0xff, 0xff, //0x00004726 vpcmpeqb $-622(%rip), %ymm0, %ymm1 /* LCPI14_1+0(%rip) */ + 0xc5, 0xfd, 0xd7, 0xc1, //0x0000472e vpmovmskb %ymm1, %eax + 0xc5, 0xfd, 0x6f, 0x0d, 0xa6, 0xfd, 0xff, 0xff, //0x00004732 vmovdqa $-602(%rip), %ymm1 /* LCPI14_2+0(%rip) */ + 0xc5, 0xf5, 0x64, 0xc8, //0x0000473a vpcmpgtb %ymm0, %ymm1, %ymm1 + 0xc5, 0xed, 0x76, 0xd2, //0x0000473e vpcmpeqd %ymm2, %ymm2, %ymm2 + 0xc5, 0xfd, 0x64, 0xc2, //0x00004742 vpcmpgtb %ymm2, %ymm0, %ymm0 + 0xc5, 0xfd, 0xdb, 0xc1, //0x00004746 vpand %ymm1, %ymm0, %ymm0 + 0xc5, 0xfd, 0xd7, 0xf8, //0x0000474a vpmovmskb %ymm0, %edi + 0x85, 0xc0, //0x0000474e testl %eax, %eax + 0x0f, 0x85, 0x05, 0x01, 0x00, 0x00, //0x00004750 jne LBB14_44 + 0x4d, 0x85, 0xff, //0x00004756 testq %r15, %r15 + 0x0f, 0x85, 0x16, 0x01, 0x00, 0x00, //0x00004759 jne LBB14_46 + 0x45, 0x31, 0xff, //0x0000475f xorl %r15d, %r15d + 0xb8, 0x40, 0x00, 0x00, 0x00, //0x00004762 movl $64, %eax + 0xb9, 0x40, 0x00, 0x00, 0x00, //0x00004767 movl $64, %ecx + 0x4d, 0x85, 0xc9, //0x0000476c testq %r9, %r9 + 0x0f, 0x84, 0x04, 0x00, 0x00, 0x00, //0x0000476f je LBB14_26 + //0x00004775 LBB14_25 + 0x49, 0x0f, 0xbc, 0xc9, //0x00004775 bsfq %r9, %rcx + //0x00004779 LBB14_26 + 0x48, 0x0f, 0xbc, 0xdf, //0x00004779 bsfq %rdi, %rbx + 0x85, 0xff, //0x0000477d testl %edi, %edi + 0x48, 0x0f, 0x45, 0xc3, //0x0000477f cmovneq %rbx, %rax + 0x4d, 0x85, 0xc9, //0x00004783 testq %r9, %r9 + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00004786 je LBB14_29 + 0x4c, 0x29, 0xc6, //0x0000478c subq %r8, %rsi + 0x48, 0x39, 0xc8, //0x0000478f cmpq %rcx, %rax + 0x0f, 0x82, 0x29, 0x01, 0x00, 0x00, //0x00004792 jb LBB14_47 + 0x48, 0x8d, 0x44, 0x0e, 0x01, //0x00004798 leaq $1(%rsi,%rcx), %rax + 0xe9, 0x0f, 0xff, 0xff, 0xff, //0x0000479d jmp LBB14_16 + //0x000047a2 LBB14_29 + 0x85, 0xff, //0x000047a2 testl %edi, %edi + 0x0f, 0x85, 0x29, 0x01, 0x00, 0x00, //0x000047a4 jne LBB14_48 + 0x48, 0x83, 0xc6, 0x20, //0x000047aa addq $32, %rsi + 0x49, 0x83, 0xc4, 0xe0, //0x000047ae addq $-32, %r12 + //0x000047b2 LBB14_31 + 0x4d, 0x85, 0xff, //0x000047b2 testq %r15, %r15 + 0x0f, 0x85, 0x23, 0x01, 0x00, 0x00, //0x000047b5 jne LBB14_49 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000047bb movq $-1, %rax + 0x4d, 0x85, 0xe4, //0x000047c2 testq %r12, %r12 + 0x0f, 0x84, 0xe6, 0xfe, 0xff, 0xff, //0x000047c5 je LBB14_16 + //0x000047cb LBB14_33 + 0x0f, 0xb6, 0x0e, //0x000047cb movzbl (%rsi), %ecx + 0x80, 0xf9, 0x22, //0x000047ce cmpb $34, %cl + 0x0f, 0x84, 0x5d, 0x00, 0x00, 0x00, //0x000047d1 je LBB14_41 + 0x80, 0xf9, 0x5c, //0x000047d7 cmpb $92, %cl + 0x0f, 0x84, 0x26, 0x00, 0x00, 0x00, //0x000047da je LBB14_38 + 0x80, 0xf9, 0x1f, //0x000047e0 cmpb $31, %cl + 0x0f, 0x86, 0x3b, 0x01, 0x00, 0x00, //0x000047e3 jbe LBB14_53 + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x000047e9 movq $-1, %rcx + 0xbf, 0x01, 0x00, 0x00, 0x00, //0x000047f0 movl $1, %edi + //0x000047f5 LBB14_37 + 0x48, 0x01, 0xfe, //0x000047f5 addq %rdi, %rsi + 0x49, 0x01, 0xcc, //0x000047f8 addq %rcx, %r12 + 0x0f, 0x85, 0xca, 0xff, 0xff, 0xff, //0x000047fb jne LBB14_33 + 0xe9, 0xab, 0xfe, 0xff, 0xff, //0x00004801 jmp LBB14_16 + //0x00004806 LBB14_38 + 0x49, 0x83, 0xfc, 0x01, //0x00004806 cmpq $1, %r12 + 0x0f, 0x84, 0xa1, 0xfe, 0xff, 0xff, //0x0000480a je LBB14_16 + 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x00004810 movq $-2, %rcx + 0xbf, 0x02, 0x00, 0x00, 0x00, //0x00004817 movl $2, %edi + 0x49, 0x83, 0xfe, 0xff, //0x0000481c cmpq $-1, %r14 + 0x0f, 0x85, 0xcf, 0xff, 0xff, 0xff, //0x00004820 jne LBB14_37 + 0x49, 0x89, 0xf6, //0x00004826 movq %rsi, %r14 + 0x4d, 0x29, 0xc6, //0x00004829 subq %r8, %r14 + 0x4c, 0x89, 0x32, //0x0000482c movq %r14, (%rdx) + 0xe9, 0xc1, 0xff, 0xff, 0xff, //0x0000482f jmp LBB14_37 + //0x00004834 LBB14_41 + 0x4c, 0x29, 0xc6, //0x00004834 subq %r8, %rsi + 0x48, 0xff, 0xc6, //0x00004837 incq %rsi + 0x48, 0x89, 0xf0, //0x0000483a movq %rsi, %rax + 0xe9, 0x6f, 0xfe, 0xff, 0xff, //0x0000483d jmp LBB14_16 + //0x00004842 LBB14_43 + 0x49, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x00004842 movq $-1, %r14 + 0x45, 0x31, 0xff, //0x00004849 xorl %r15d, %r15d + 0x49, 0x83, 0xfc, 0x20, //0x0000484c cmpq $32, %r12 + 0x0f, 0x83, 0xc0, 0xfe, 0xff, 0xff, //0x00004850 jae LBB14_22 + 0xe9, 0x57, 0xff, 0xff, 0xff, //0x00004856 jmp LBB14_31 + //0x0000485b LBB14_44 + 0x49, 0x83, 0xfe, 0xff, //0x0000485b cmpq $-1, %r14 + 0x0f, 0x85, 0x10, 0x00, 0x00, 0x00, //0x0000485f jne LBB14_46 + 0x48, 0x89, 0xf1, //0x00004865 movq %rsi, %rcx + 0x4c, 0x29, 0xc1, //0x00004868 subq %r8, %rcx + 0x4c, 0x0f, 0xbc, 0xf0, //0x0000486b bsfq %rax, %r14 + 0x49, 0x01, 0xce, //0x0000486f addq %rcx, %r14 + 0x4c, 0x89, 0x32, //0x00004872 movq %r14, (%rdx) + //0x00004875 LBB14_46 + 0x44, 0x89, 0xf9, //0x00004875 movl %r15d, %ecx + 0xf7, 0xd1, //0x00004878 notl %ecx + 0x21, 0xc1, //0x0000487a andl %eax, %ecx + 0x44, 0x8d, 0x14, 0x09, //0x0000487c leal (%rcx,%rcx), %r10d + 0x45, 0x09, 0xfa, //0x00004880 orl %r15d, %r10d + 0x44, 0x89, 0xd3, //0x00004883 movl %r10d, %ebx + 0xf7, 0xd3, //0x00004886 notl %ebx + 0x21, 0xc3, //0x00004888 andl %eax, %ebx + 0x81, 0xe3, 0xaa, 0xaa, 0xaa, 0xaa, //0x0000488a andl $-1431655766, %ebx + 0x45, 0x31, 0xff, //0x00004890 xorl %r15d, %r15d + 0x01, 0xcb, //0x00004893 addl %ecx, %ebx + 0x41, 0x0f, 0x92, 0xc7, //0x00004895 setb %r15b + 0x01, 0xdb, //0x00004899 addl %ebx, %ebx + 0x81, 0xf3, 0x55, 0x55, 0x55, 0x55, //0x0000489b xorl $1431655765, %ebx + 0x44, 0x21, 0xd3, //0x000048a1 andl %r10d, %ebx + 0xf7, 0xd3, //0x000048a4 notl %ebx + 0x41, 0x21, 0xd9, //0x000048a6 andl %ebx, %r9d + 0xb8, 0x40, 0x00, 0x00, 0x00, //0x000048a9 movl $64, %eax + 0xb9, 0x40, 0x00, 0x00, 0x00, //0x000048ae movl $64, %ecx + 0x4d, 0x85, 0xc9, //0x000048b3 testq %r9, %r9 + 0x0f, 0x85, 0xb9, 0xfe, 0xff, 0xff, //0x000048b6 jne LBB14_25 + 0xe9, 0xb8, 0xfe, 0xff, 0xff, //0x000048bc jmp LBB14_26 + //0x000048c1 LBB14_47 + 0x48, 0x01, 0xf0, //0x000048c1 addq %rsi, %rax + 0x48, 0x89, 0x02, //0x000048c4 movq %rax, (%rdx) + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x000048c7 movq $-2, %rax + 0xe9, 0xde, 0xfd, 0xff, 0xff, //0x000048ce jmp LBB14_16 + //0x000048d3 LBB14_48 + 0x4c, 0x29, 0xc6, //0x000048d3 subq %r8, %rsi + 0x48, 0x01, 0xde, //0x000048d6 addq %rbx, %rsi + 0xe9, 0x49, 0x00, 0x00, 0x00, //0x000048d9 jmp LBB14_54 + //0x000048de LBB14_49 + 0x4d, 0x85, 0xe4, //0x000048de testq %r12, %r12 + 0x0f, 0x84, 0x31, 0x00, 0x00, 0x00, //0x000048e1 je LBB14_42 + 0x49, 0x83, 0xfe, 0xff, //0x000048e7 cmpq $-1, %r14 + 0x0f, 0x85, 0x0c, 0x00, 0x00, 0x00, //0x000048eb jne LBB14_52 + 0x4d, 0x89, 0xc6, //0x000048f1 movq %r8, %r14 + 0x49, 0xf7, 0xd6, //0x000048f4 notq %r14 + 0x49, 0x01, 0xf6, //0x000048f7 addq %rsi, %r14 + 0x4c, 0x89, 0x32, //0x000048fa movq %r14, (%rdx) + //0x000048fd LBB14_52 + 0x48, 0xff, 0xc6, //0x000048fd incq %rsi + 0x49, 0xff, 0xcc, //0x00004900 decq %r12 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00004903 movq $-1, %rax + 0x4d, 0x85, 0xe4, //0x0000490a testq %r12, %r12 + 0x0f, 0x85, 0xb8, 0xfe, 0xff, 0xff, //0x0000490d jne LBB14_33 + 0xe9, 0x99, 0xfd, 0xff, 0xff, //0x00004913 jmp LBB14_16 + //0x00004918 LBB14_42 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00004918 movq $-1, %rax + 0xe9, 0x8d, 0xfd, 0xff, 0xff, //0x0000491f jmp LBB14_16 + //0x00004924 LBB14_53 + 0x4c, 0x29, 0xc6, //0x00004924 subq %r8, %rsi + //0x00004927 LBB14_54 + 0x48, 0x89, 0x32, //0x00004927 movq %rsi, (%rdx) + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x0000492a movq $-2, %rax + 0xe9, 0x7b, 0xfd, 0xff, 0xff, //0x00004931 jmp LBB14_16 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004936 .p2align 4, 0x00 + //0x00004940 LCPI15_0 + 0x00, 0x00, 0x30, 0x43, //0x00004940 .long 1127219200 + 0x00, 0x00, 0x30, 0x45, //0x00004944 .long 1160773632 + 0x00, 0x00, 0x00, 0x00, //0x00004948 .long 0 + 0x00, 0x00, 0x00, 0x00, //0x0000494c .long 0 + //0x00004950 LCPI15_1 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x43, //0x00004950 .quad 4841369599423283200 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x45, //0x00004958 .quad 4985484787499139072 + //0x00004960 .p2align 3, 0x00 + //0x00004960 LCPI15_2 + 0x00, 0x00, 0x34, 0x26, 0xf5, 0x6b, 0x0c, 0x43, //0x00004960 .quad 4831355200913801216 + //0x00004968 LCPI15_3 + 0x00, 0x00, 0x34, 0x26, 0xf5, 0x6b, 0x0c, 0xc3, //0x00004968 .quad -4392016835940974592 + //0x00004970 .p2align 4, 0x90 + //0x00004970 _vnumber + 0x55, //0x00004970 pushq %rbp + 0x48, 0x89, 0xe5, //0x00004971 movq %rsp, %rbp + 0x41, 0x57, //0x00004974 pushq %r15 + 0x41, 0x56, //0x00004976 pushq %r14 + 0x41, 0x55, //0x00004978 pushq %r13 + 0x41, 0x54, //0x0000497a pushq %r12 + 0x53, //0x0000497c pushq %rbx + 0x48, 0x83, 0xec, 0x38, //0x0000497d subq $56, %rsp + 0x48, 0x89, 0xd3, //0x00004981 movq %rdx, %rbx + 0x49, 0x89, 0xf6, //0x00004984 movq %rsi, %r14 + 0x48, 0xc7, 0x45, 0xd0, 0x00, 0x00, 0x00, 0x00, //0x00004987 movq $0, $-48(%rbp) + 0x48, 0x8b, 0x06, //0x0000498f movq (%rsi), %rax + 0x4c, 0x8b, 0x3f, //0x00004992 movq (%rdi), %r15 + 0x4c, 0x8b, 0x6f, 0x08, //0x00004995 movq $8(%rdi), %r13 + 0x4c, 0x8b, 0x52, 0x20, //0x00004999 movq $32(%rdx), %r10 + 0x4c, 0x8b, 0x5a, 0x28, //0x0000499d movq $40(%rdx), %r11 + 0x48, 0xc7, 0x02, 0x09, 0x00, 0x00, 0x00, //0x000049a1 movq $9, (%rdx) + 0xc5, 0xf9, 0x57, 0xc0, //0x000049a8 vxorpd %xmm0, %xmm0, %xmm0 + 0xc5, 0xf9, 0x11, 0x42, 0x08, //0x000049ac vmovupd %xmm0, $8(%rdx) + 0x48, 0x8b, 0x0e, //0x000049b1 movq (%rsi), %rcx + 0x48, 0x89, 0x4a, 0x18, //0x000049b4 movq %rcx, $24(%rdx) + 0x4c, 0x39, 0xe8, //0x000049b8 cmpq %r13, %rax + 0x0f, 0x83, 0xc8, 0x02, 0x00, 0x00, //0x000049bb jae LBB15_52 + 0x41, 0x8a, 0x3c, 0x07, //0x000049c1 movb (%r15,%rax), %dil + 0x41, 0xb9, 0x01, 0x00, 0x00, 0x00, //0x000049c5 movl $1, %r9d + 0x40, 0x80, 0xff, 0x2d, //0x000049cb cmpb $45, %dil + 0x0f, 0x85, 0x16, 0x00, 0x00, 0x00, //0x000049cf jne LBB15_4 + 0x48, 0xff, 0xc0, //0x000049d5 incq %rax + 0x4c, 0x39, 0xe8, //0x000049d8 cmpq %r13, %rax + 0x0f, 0x83, 0xa8, 0x02, 0x00, 0x00, //0x000049db jae LBB15_52 + 0x41, 0x8a, 0x3c, 0x07, //0x000049e1 movb (%r15,%rax), %dil + 0x41, 0xb9, 0xff, 0xff, 0xff, 0xff, //0x000049e5 movl $-1, %r9d + //0x000049eb LBB15_4 + 0x8d, 0x4f, 0xd0, //0x000049eb leal $-48(%rdi), %ecx + 0x80, 0xf9, 0x0a, //0x000049ee cmpb $10, %cl + 0x0f, 0x82, 0x0f, 0x00, 0x00, 0x00, //0x000049f1 jb LBB15_6 + //0x000049f7 LBB15_5 + 0x49, 0x89, 0x06, //0x000049f7 movq %rax, (%r14) + 0x48, 0xc7, 0x03, 0xfe, 0xff, 0xff, 0xff, //0x000049fa movq $-2, (%rbx) + 0xe9, 0x8d, 0x02, 0x00, 0x00, //0x00004a01 jmp LBB15_53 + //0x00004a06 LBB15_6 + 0x40, 0x80, 0xff, 0x30, //0x00004a06 cmpb $48, %dil + 0x0f, 0x85, 0x35, 0x00, 0x00, 0x00, //0x00004a0a jne LBB15_10 + 0x48, 0x8d, 0x70, 0x01, //0x00004a10 leaq $1(%rax), %rsi + 0x4c, 0x39, 0xe8, //0x00004a14 cmpq %r13, %rax + 0x0f, 0x83, 0xa4, 0x00, 0x00, 0x00, //0x00004a17 jae LBB15_19 + 0x41, 0x8a, 0x14, 0x37, //0x00004a1d movb (%r15,%rsi), %dl + 0x80, 0xc2, 0xd2, //0x00004a21 addb $-46, %dl + 0x80, 0xfa, 0x37, //0x00004a24 cmpb $55, %dl + 0x0f, 0x87, 0x94, 0x00, 0x00, 0x00, //0x00004a27 ja LBB15_19 + 0x44, 0x0f, 0xb6, 0xc2, //0x00004a2d movzbl %dl, %r8d + 0x48, 0xba, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, //0x00004a31 movabsq $36028797027352577, %rdx + 0x4c, 0x0f, 0xa3, 0xc2, //0x00004a3b btq %r8, %rdx + 0x0f, 0x83, 0x7c, 0x00, 0x00, 0x00, //0x00004a3f jae LBB15_19 + //0x00004a45 LBB15_10 + 0x4c, 0x39, 0xe8, //0x00004a45 cmpq %r13, %rax + 0x0f, 0x83, 0x67, 0x00, 0x00, 0x00, //0x00004a48 jae LBB15_18 + 0x80, 0xf9, 0x09, //0x00004a4e cmpb $9, %cl + 0x0f, 0x87, 0x72, 0x00, 0x00, 0x00, //0x00004a51 ja LBB15_20 + 0x4d, 0x8d, 0x45, 0xff, //0x00004a57 leaq $-1(%r13), %r8 + 0x31, 0xc9, //0x00004a5b xorl %ecx, %ecx + 0x31, 0xf6, //0x00004a5d xorl %esi, %esi + 0x45, 0x31, 0xe4, //0x00004a5f xorl %r12d, %r12d + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00004a62 .p2align 4, 0x90 + //0x00004a70 LBB15_13 + 0x83, 0xfe, 0x12, //0x00004a70 cmpl $18, %esi + 0x0f, 0x8f, 0x17, 0x00, 0x00, 0x00, //0x00004a73 jg LBB15_15 + 0x48, 0x0f, 0xbe, 0xff, //0x00004a79 movsbq %dil, %rdi + 0x4b, 0x8d, 0x14, 0xa4, //0x00004a7d leaq (%r12,%r12,4), %rdx + 0x4c, 0x8d, 0x64, 0x57, 0xd0, //0x00004a81 leaq $-48(%rdi,%rdx,2), %r12 + 0xff, 0xc6, //0x00004a86 incl %esi + 0xe9, 0x05, 0x00, 0x00, 0x00, //0x00004a88 jmp LBB15_16 + 0x90, 0x90, 0x90, //0x00004a8d .p2align 4, 0x90 + //0x00004a90 LBB15_15 + 0xff, 0xc1, //0x00004a90 incl %ecx + //0x00004a92 LBB15_16 + 0x49, 0x39, 0xc0, //0x00004a92 cmpq %rax, %r8 + 0x0f, 0x84, 0x7d, 0x00, 0x00, 0x00, //0x00004a95 je LBB15_24 + 0x41, 0x0f, 0xb6, 0x7c, 0x07, 0x01, //0x00004a9b movzbl $1(%r15,%rax), %edi + 0x48, 0xff, 0xc0, //0x00004aa1 incq %rax + 0x8d, 0x57, 0xd0, //0x00004aa4 leal $-48(%rdi), %edx + 0x80, 0xfa, 0x0a, //0x00004aa7 cmpb $10, %dl + 0x0f, 0x82, 0xc0, 0xff, 0xff, 0xff, //0x00004aaa jb LBB15_13 + 0xe9, 0x1b, 0x00, 0x00, 0x00, //0x00004ab0 jmp LBB15_21 + //0x00004ab5 LBB15_18 + 0x31, 0xc9, //0x00004ab5 xorl %ecx, %ecx + 0x31, 0xf6, //0x00004ab7 xorl %esi, %esi + 0x45, 0x31, 0xe4, //0x00004ab9 xorl %r12d, %r12d + 0xe9, 0x5a, 0x00, 0x00, 0x00, //0x00004abc jmp LBB15_25 + //0x00004ac1 LBB15_19 + 0x49, 0x89, 0x36, //0x00004ac1 movq %rsi, (%r14) + 0xe9, 0xca, 0x01, 0x00, 0x00, //0x00004ac4 jmp LBB15_53 + //0x00004ac9 LBB15_20 + 0x45, 0x31, 0xe4, //0x00004ac9 xorl %r12d, %r12d + 0x31, 0xf6, //0x00004acc xorl %esi, %esi + 0x31, 0xc9, //0x00004ace xorl %ecx, %ecx + //0x00004ad0 LBB15_21 + 0x31, 0xd2, //0x00004ad0 xorl %edx, %edx + 0x85, 0xc9, //0x00004ad2 testl %ecx, %ecx + 0x0f, 0x9f, 0xc2, //0x00004ad4 setg %dl + 0x89, 0x55, 0xcc, //0x00004ad7 movl %edx, $-52(%rbp) + 0x41, 0xb8, 0x09, 0x00, 0x00, 0x00, //0x00004ada movl $9, %r8d + 0x40, 0x80, 0xff, 0x2e, //0x00004ae0 cmpb $46, %dil + 0x0f, 0x85, 0x41, 0x00, 0x00, 0x00, //0x00004ae4 jne LBB15_26 + 0x48, 0xff, 0xc0, //0x00004aea incq %rax + 0x48, 0xc7, 0x03, 0x08, 0x00, 0x00, 0x00, //0x00004aed movq $8, (%rbx) + 0x4c, 0x39, 0xe8, //0x00004af4 cmpq %r13, %rax + 0x0f, 0x83, 0x8c, 0x01, 0x00, 0x00, //0x00004af7 jae LBB15_52 + 0x41, 0x8a, 0x14, 0x07, //0x00004afd movb (%r15,%rax), %dl + 0x80, 0xc2, 0xd0, //0x00004b01 addb $-48, %dl + 0x41, 0xb8, 0x08, 0x00, 0x00, 0x00, //0x00004b04 movl $8, %r8d + 0x80, 0xfa, 0x0a, //0x00004b0a cmpb $10, %dl + 0x0f, 0x83, 0xe4, 0xfe, 0xff, 0xff, //0x00004b0d jae LBB15_5 + 0xe9, 0x13, 0x00, 0x00, 0x00, //0x00004b13 jmp LBB15_26 + //0x00004b18 LBB15_24 + 0x4c, 0x89, 0xe8, //0x00004b18 movq %r13, %rax + //0x00004b1b LBB15_25 + 0x31, 0xd2, //0x00004b1b xorl %edx, %edx + 0x85, 0xc9, //0x00004b1d testl %ecx, %ecx + 0x0f, 0x9f, 0xc2, //0x00004b1f setg %dl + 0x89, 0x55, 0xcc, //0x00004b22 movl %edx, $-52(%rbp) + 0x41, 0xb8, 0x09, 0x00, 0x00, 0x00, //0x00004b25 movl $9, %r8d + //0x00004b2b LBB15_26 + 0x85, 0xc9, //0x00004b2b testl %ecx, %ecx + 0x0f, 0x85, 0x4f, 0x00, 0x00, 0x00, //0x00004b2d jne LBB15_35 + 0x4d, 0x85, 0xe4, //0x00004b33 testq %r12, %r12 + 0x0f, 0x85, 0x46, 0x00, 0x00, 0x00, //0x00004b36 jne LBB15_35 + 0x4c, 0x39, 0xe8, //0x00004b3c cmpq %r13, %rax + 0x0f, 0x83, 0x36, 0x00, 0x00, 0x00, //0x00004b3f jae LBB15_33 + 0x89, 0xc7, //0x00004b45 movl %eax, %edi + 0x44, 0x29, 0xef, //0x00004b47 subl %r13d, %edi + 0x31, 0xf6, //0x00004b4a xorl %esi, %esi + 0x31, 0xc9, //0x00004b4c xorl %ecx, %ecx + 0x90, 0x90, //0x00004b4e .p2align 4, 0x90 + //0x00004b50 LBB15_30 + 0x41, 0x80, 0x3c, 0x07, 0x30, //0x00004b50 cmpb $48, (%r15,%rax) + 0x0f, 0x85, 0x24, 0x00, 0x00, 0x00, //0x00004b55 jne LBB15_34 + 0x48, 0xff, 0xc0, //0x00004b5b incq %rax + 0xff, 0xc9, //0x00004b5e decl %ecx + 0x49, 0x39, 0xc5, //0x00004b60 cmpq %rax, %r13 + 0x0f, 0x85, 0xe7, 0xff, 0xff, 0xff, //0x00004b63 jne LBB15_30 + 0x45, 0x31, 0xe4, //0x00004b69 xorl %r12d, %r12d + 0x41, 0x83, 0xf8, 0x09, //0x00004b6c cmpl $9, %r8d + 0x0f, 0x84, 0x3b, 0x01, 0x00, 0x00, //0x00004b70 je LBB15_55 + 0xe9, 0x6a, 0x01, 0x00, 0x00, //0x00004b76 jmp LBB15_59 + //0x00004b7b LBB15_33 + 0x31, 0xc9, //0x00004b7b xorl %ecx, %ecx + 0x31, 0xf6, //0x00004b7d xorl %esi, %esi + //0x00004b7f LBB15_34 + 0x45, 0x31, 0xe4, //0x00004b7f xorl %r12d, %r12d + //0x00004b82 LBB15_35 + 0x4c, 0x39, 0xe8, //0x00004b82 cmpq %r13, %rax + 0x0f, 0x83, 0x4b, 0x00, 0x00, 0x00, //0x00004b85 jae LBB15_40 + 0x83, 0xfe, 0x12, //0x00004b8b cmpl $18, %esi + 0x0f, 0x8f, 0x42, 0x00, 0x00, 0x00, //0x00004b8e jg LBB15_40 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00004b94 .p2align 4, 0x90 + //0x00004ba0 LBB15_37 + 0x41, 0x0f, 0xb6, 0x3c, 0x07, //0x00004ba0 movzbl (%r15,%rax), %edi + 0x8d, 0x57, 0xd0, //0x00004ba5 leal $-48(%rdi), %edx + 0x80, 0xfa, 0x09, //0x00004ba8 cmpb $9, %dl + 0x0f, 0x87, 0x25, 0x00, 0x00, 0x00, //0x00004bab ja LBB15_40 + 0x4b, 0x8d, 0x14, 0xa4, //0x00004bb1 leaq (%r12,%r12,4), %rdx + 0x4c, 0x8d, 0x64, 0x57, 0xd0, //0x00004bb5 leaq $-48(%rdi,%rdx,2), %r12 + 0xff, 0xc9, //0x00004bba decl %ecx + 0x48, 0xff, 0xc0, //0x00004bbc incq %rax + 0x4c, 0x39, 0xe8, //0x00004bbf cmpq %r13, %rax + 0x0f, 0x83, 0x0e, 0x00, 0x00, 0x00, //0x00004bc2 jae LBB15_40 + 0x8d, 0x56, 0x01, //0x00004bc8 leal $1(%rsi), %edx + 0x83, 0xfe, 0x12, //0x00004bcb cmpl $18, %esi + 0x89, 0xd6, //0x00004bce movl %edx, %esi + 0x0f, 0x8c, 0xca, 0xff, 0xff, 0xff, //0x00004bd0 jl LBB15_37 + //0x00004bd6 LBB15_40 + 0x4c, 0x39, 0xe8, //0x00004bd6 cmpq %r13, %rax + 0x0f, 0x83, 0xc3, 0x00, 0x00, 0x00, //0x00004bd9 jae LBB15_54 + 0x41, 0x8a, 0x34, 0x07, //0x00004bdf movb (%r15,%rax), %sil + 0x8d, 0x56, 0xd0, //0x00004be3 leal $-48(%rsi), %edx + 0x80, 0xfa, 0x09, //0x00004be6 cmpb $9, %dl + 0x0f, 0x87, 0x36, 0x00, 0x00, 0x00, //0x00004be9 ja LBB15_46 + 0x49, 0x8d, 0x7d, 0xff, //0x00004bef leaq $-1(%r13), %rdi + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00004bf3 .p2align 4, 0x90 + //0x00004c00 LBB15_43 + 0x48, 0x39, 0xc7, //0x00004c00 cmpq %rax, %rdi + 0x0f, 0x84, 0x40, 0x02, 0x00, 0x00, //0x00004c03 je LBB15_76 + 0x41, 0x0f, 0xb6, 0x74, 0x07, 0x01, //0x00004c09 movzbl $1(%r15,%rax), %esi + 0x48, 0xff, 0xc0, //0x00004c0f incq %rax + 0x8d, 0x56, 0xd0, //0x00004c12 leal $-48(%rsi), %edx + 0x80, 0xfa, 0x09, //0x00004c15 cmpb $9, %dl + 0x0f, 0x86, 0xe2, 0xff, 0xff, 0xff, //0x00004c18 jbe LBB15_43 + 0xc7, 0x45, 0xcc, 0x01, 0x00, 0x00, 0x00, //0x00004c1e movl $1, $-52(%rbp) + //0x00004c25 LBB15_46 + 0x40, 0x80, 0xce, 0x20, //0x00004c25 orb $32, %sil + 0x40, 0x80, 0xfe, 0x65, //0x00004c29 cmpb $101, %sil + 0x0f, 0x85, 0x6f, 0x00, 0x00, 0x00, //0x00004c2d jne LBB15_54 + 0x48, 0x8d, 0x78, 0x01, //0x00004c33 leaq $1(%rax), %rdi + 0x48, 0xc7, 0x03, 0x08, 0x00, 0x00, 0x00, //0x00004c37 movq $8, (%rbx) + 0x4c, 0x39, 0xef, //0x00004c3e cmpq %r13, %rdi + 0x0f, 0x83, 0x42, 0x00, 0x00, 0x00, //0x00004c41 jae LBB15_52 + 0x41, 0x8a, 0x34, 0x3f, //0x00004c47 movb (%r15,%rdi), %sil + 0x40, 0x80, 0xfe, 0x2d, //0x00004c4b cmpb $45, %sil + 0x0f, 0x84, 0x10, 0x00, 0x00, 0x00, //0x00004c4f je LBB15_50 + 0x41, 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00004c55 movl $1, %r8d + 0x40, 0x80, 0xfe, 0x2b, //0x00004c5b cmpb $43, %sil + 0x0f, 0x85, 0x94, 0x02, 0x00, 0x00, //0x00004c5f jne LBB15_85 + //0x00004c65 LBB15_50 + 0x48, 0x83, 0xc0, 0x02, //0x00004c65 addq $2, %rax + 0x4c, 0x39, 0xe8, //0x00004c69 cmpq %r13, %rax + 0x0f, 0x83, 0x17, 0x00, 0x00, 0x00, //0x00004c6c jae LBB15_52 + 0x31, 0xd2, //0x00004c72 xorl %edx, %edx + 0x40, 0x80, 0xfe, 0x2b, //0x00004c74 cmpb $43, %sil + 0x0f, 0x94, 0xc2, //0x00004c78 sete %dl + 0x44, 0x8d, 0x44, 0x12, 0xff, //0x00004c7b leal $-1(%rdx,%rdx), %r8d + 0x41, 0x8a, 0x34, 0x07, //0x00004c80 movb (%r15,%rax), %sil + 0xe9, 0x73, 0x02, 0x00, 0x00, //0x00004c84 jmp LBB15_86 + //0x00004c89 LBB15_52 + 0x4d, 0x89, 0x2e, //0x00004c89 movq %r13, (%r14) + 0x48, 0xc7, 0x03, 0xff, 0xff, 0xff, 0xff, //0x00004c8c movq $-1, (%rbx) + //0x00004c93 LBB15_53 + 0x48, 0x83, 0xc4, 0x38, //0x00004c93 addq $56, %rsp + 0x5b, //0x00004c97 popq %rbx + 0x41, 0x5c, //0x00004c98 popq %r12 + 0x41, 0x5d, //0x00004c9a popq %r13 + 0x41, 0x5e, //0x00004c9c popq %r14 + 0x41, 0x5f, //0x00004c9e popq %r15 + 0x5d, //0x00004ca0 popq %rbp + 0xc3, //0x00004ca1 retq + //0x00004ca2 LBB15_54 + 0x89, 0xcf, //0x00004ca2 movl %ecx, %edi + 0x49, 0x89, 0xc5, //0x00004ca4 movq %rax, %r13 + 0x41, 0x83, 0xf8, 0x09, //0x00004ca7 cmpl $9, %r8d + 0x0f, 0x85, 0x34, 0x00, 0x00, 0x00, //0x00004cab jne LBB15_59 + //0x00004cb1 LBB15_55 + 0x85, 0xff, //0x00004cb1 testl %edi, %edi + 0x0f, 0x85, 0x25, 0x00, 0x00, 0x00, //0x00004cb3 jne LBB15_58 + 0x48, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x00004cb9 movabsq $-9223372036854775808, %rax + 0x49, 0x63, 0xc9, //0x00004cc3 movslq %r9d, %rcx + 0x4d, 0x85, 0xe4, //0x00004cc6 testq %r12, %r12 + 0x0f, 0x89, 0xba, 0x01, 0x00, 0x00, //0x00004cc9 jns LBB15_80 + 0x4c, 0x89, 0xe2, //0x00004ccf movq %r12, %rdx + 0x48, 0x21, 0xca, //0x00004cd2 andq %rcx, %rdx + 0x48, 0x39, 0xc2, //0x00004cd5 cmpq %rax, %rdx + 0x0f, 0x84, 0xab, 0x01, 0x00, 0x00, //0x00004cd8 je LBB15_80 + //0x00004cde LBB15_58 + 0x48, 0xc7, 0x03, 0x08, 0x00, 0x00, 0x00, //0x00004cde movq $8, (%rbx) + //0x00004ce5 LBB15_59 + 0x48, 0xc7, 0x45, 0xc0, 0x00, 0x00, 0x00, 0x00, //0x00004ce5 movq $0, $-64(%rbp) + 0xc4, 0xc1, 0xf9, 0x6e, 0xc4, //0x00004ced vmovq %r12, %xmm0 + 0xc5, 0xf9, 0x62, 0x05, 0x46, 0xfc, 0xff, 0xff, //0x00004cf2 vpunpckldq $-954(%rip), %xmm0, %xmm0 /* LCPI15_0+0(%rip) */ + 0xc5, 0xf9, 0x5c, 0x05, 0x4e, 0xfc, 0xff, 0xff, //0x00004cfa vsubpd $-946(%rip), %xmm0, %xmm0 /* LCPI15_1+0(%rip) */ + 0xc4, 0xe3, 0x79, 0x05, 0xc8, 0x01, //0x00004d02 vpermilpd $1, %xmm0, %xmm1 + 0xc5, 0xf3, 0x58, 0xc0, //0x00004d08 vaddsd %xmm0, %xmm1, %xmm0 + 0xc5, 0xfb, 0x11, 0x45, 0xd0, //0x00004d0c vmovsd %xmm0, $-48(%rbp) + 0x4c, 0x89, 0xe0, //0x00004d11 movq %r12, %rax + 0x48, 0xc1, 0xe8, 0x34, //0x00004d14 shrq $52, %rax + 0x0f, 0x84, 0xc8, 0x00, 0x00, 0x00, //0x00004d18 je LBB15_71 + //0x00004d1e LBB15_60 + 0x4c, 0x89, 0x5d, 0xb0, //0x00004d1e movq %r11, $-80(%rbp) + 0x4c, 0x89, 0x55, 0xa8, //0x00004d22 movq %r10, $-88(%rbp) + 0x48, 0x8d, 0x4d, 0xd0, //0x00004d26 leaq $-48(%rbp), %rcx + 0x48, 0x89, 0xfe, //0x00004d2a movq %rdi, %rsi + 0x4c, 0x89, 0xe7, //0x00004d2d movq %r12, %rdi + 0x48, 0x89, 0x75, 0xb8, //0x00004d30 movq %rsi, $-72(%rbp) + 0x44, 0x89, 0xca, //0x00004d34 movl %r9d, %edx + 0x44, 0x89, 0x4d, 0xc8, //0x00004d37 movl %r9d, $-56(%rbp) + 0xe8, 0x10, 0xe4, 0xff, 0xff, //0x00004d3b callq _atof_eisel_lemire64 + 0x84, 0xc0, //0x00004d40 testb %al, %al + 0x0f, 0x84, 0x42, 0x00, 0x00, 0x00, //0x00004d42 je LBB15_64 + 0x48, 0x8b, 0x75, 0xb8, //0x00004d48 movq $-72(%rbp), %rsi + 0x8b, 0x55, 0xc8, //0x00004d4c movl $-56(%rbp), %edx + 0x83, 0x7d, 0xcc, 0x00, //0x00004d4f cmpl $0, $-52(%rbp) + 0x0f, 0x84, 0x27, 0x01, 0x00, 0x00, //0x00004d53 je LBB15_79 + 0x49, 0xff, 0xc4, //0x00004d59 incq %r12 + 0x48, 0x8d, 0x4d, 0xc0, //0x00004d5c leaq $-64(%rbp), %rcx + 0x4c, 0x89, 0xe7, //0x00004d60 movq %r12, %rdi + 0xe8, 0xe8, 0xe3, 0xff, 0xff, //0x00004d63 callq _atof_eisel_lemire64 + 0x84, 0xc0, //0x00004d68 testb %al, %al + 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x00004d6a je LBB15_64 + 0xc5, 0xfb, 0x10, 0x4d, 0xc0, //0x00004d70 vmovsd $-64(%rbp), %xmm1 + 0xc5, 0xfb, 0x10, 0x45, 0xd0, //0x00004d75 vmovsd $-48(%rbp), %xmm0 + 0xc5, 0xf9, 0x2e, 0xc8, //0x00004d7a vucomisd %xmm0, %xmm1 + 0x0f, 0x85, 0x06, 0x00, 0x00, 0x00, //0x00004d7e jne LBB15_64 + 0x0f, 0x8b, 0x21, 0x00, 0x00, 0x00, //0x00004d84 jnp LBB15_66 + //0x00004d8a LBB15_64 + 0x49, 0x8b, 0x06, //0x00004d8a movq (%r14), %rax + 0x49, 0x01, 0xc7, //0x00004d8d addq %rax, %r15 + 0x4c, 0x89, 0xee, //0x00004d90 movq %r13, %rsi + 0x48, 0x29, 0xc6, //0x00004d93 subq %rax, %rsi + 0x4c, 0x89, 0xff, //0x00004d96 movq %r15, %rdi + 0x48, 0x8b, 0x55, 0xa8, //0x00004d99 movq $-88(%rbp), %rdx + 0x48, 0x8b, 0x4d, 0xb0, //0x00004d9d movq $-80(%rbp), %rcx + 0xe8, 0x0a, 0xec, 0xff, 0xff, //0x00004da1 callq _atof_native + //0x00004da6 LBB15_65 + 0xc5, 0xfb, 0x11, 0x45, 0xd0, //0x00004da6 vmovsd %xmm0, $-48(%rbp) + //0x00004dab LBB15_66 + 0xc4, 0xe1, 0xf9, 0x7e, 0xc0, //0x00004dab vmovq %xmm0, %rax + //0x00004db0 LBB15_67 + 0x48, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x00004db0 movabsq $-9223372036854775808, %rcx + 0x48, 0xff, 0xc9, //0x00004dba decq %rcx + 0x48, 0x21, 0xc1, //0x00004dbd andq %rax, %rcx + 0x48, 0xba, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x7f, //0x00004dc0 movabsq $9218868437227405312, %rdx + 0x48, 0x39, 0xd1, //0x00004dca cmpq %rdx, %rcx + 0x0f, 0x85, 0x07, 0x00, 0x00, 0x00, //0x00004dcd jne LBB15_69 + 0x48, 0xc7, 0x03, 0xf8, 0xff, 0xff, 0xff, //0x00004dd3 movq $-8, (%rbx) + //0x00004dda LBB15_69 + 0x48, 0x89, 0x43, 0x08, //0x00004dda movq %rax, $8(%rbx) + //0x00004dde LBB15_70 + 0x4d, 0x89, 0x2e, //0x00004dde movq %r13, (%r14) + 0xe9, 0xad, 0xfe, 0xff, 0xff, //0x00004de1 jmp LBB15_53 + //0x00004de6 LBB15_71 + 0xc4, 0xe1, 0xf9, 0x7e, 0xc1, //0x00004de6 vmovq %xmm0, %rcx + 0x44, 0x89, 0xc8, //0x00004deb movl %r9d, %eax + 0xc1, 0xe8, 0x1f, //0x00004dee shrl $31, %eax + 0x48, 0xc1, 0xe0, 0x3f, //0x00004df1 shlq $63, %rax + 0x48, 0x09, 0xc8, //0x00004df5 orq %rcx, %rax + 0x48, 0x89, 0x45, 0xd0, //0x00004df8 movq %rax, $-48(%rbp) + 0x4d, 0x85, 0xe4, //0x00004dfc testq %r12, %r12 + 0x0f, 0x84, 0xab, 0xff, 0xff, 0xff, //0x00004dff je LBB15_67 + 0x85, 0xff, //0x00004e05 testl %edi, %edi + 0x0f, 0x84, 0xa3, 0xff, 0xff, 0xff, //0x00004e07 je LBB15_67 + 0xc4, 0xe1, 0xf9, 0x6e, 0xc0, //0x00004e0d vmovq %rax, %xmm0 + 0x8d, 0x47, 0xff, //0x00004e12 leal $-1(%rdi), %eax + 0x83, 0xf8, 0x24, //0x00004e15 cmpl $36, %eax + 0x0f, 0x87, 0x43, 0x00, 0x00, 0x00, //0x00004e18 ja LBB15_77 + 0x83, 0xff, 0x17, //0x00004e1e cmpl $23, %edi + 0x0f, 0x8c, 0x9d, 0x00, 0x00, 0x00, //0x00004e21 jl LBB15_81 + 0x48, 0x63, 0xc7, //0x00004e27 movslq %edi, %rax + 0x48, 0x8d, 0x0d, 0xcf, 0xf0, 0x00, 0x00, //0x00004e2a leaq $61647(%rip), %rcx /* _P10_TAB+0(%rip) */ + 0xc5, 0xfb, 0x59, 0x84, 0xc1, 0x50, 0xff, 0xff, 0xff, //0x00004e31 vmulsd $-176(%rcx,%rax,8), %xmm0, %xmm0 + 0xc5, 0xfb, 0x11, 0x45, 0xd0, //0x00004e3a vmovsd %xmm0, $-48(%rbp) + 0xb8, 0x16, 0x00, 0x00, 0x00, //0x00004e3f movl $22, %eax + 0xe9, 0x7d, 0x00, 0x00, 0x00, //0x00004e44 jmp LBB15_82 + //0x00004e49 LBB15_76 + 0xc7, 0x45, 0xcc, 0x01, 0x00, 0x00, 0x00, //0x00004e49 movl $1, $-52(%rbp) + 0x89, 0xcf, //0x00004e50 movl %ecx, %edi + 0x41, 0x83, 0xf8, 0x09, //0x00004e52 cmpl $9, %r8d + 0x0f, 0x84, 0x55, 0xfe, 0xff, 0xff, //0x00004e56 je LBB15_55 + 0xe9, 0x84, 0xfe, 0xff, 0xff, //0x00004e5c jmp LBB15_59 + //0x00004e61 LBB15_77 + 0x83, 0xff, 0xea, //0x00004e61 cmpl $-22, %edi + 0x0f, 0x82, 0xb4, 0xfe, 0xff, 0xff, //0x00004e64 jb LBB15_60 + 0xf7, 0xdf, //0x00004e6a negl %edi + 0x48, 0x63, 0xc7, //0x00004e6c movslq %edi, %rax + 0x48, 0x8d, 0x0d, 0x8a, 0xf0, 0x00, 0x00, //0x00004e6f leaq $61578(%rip), %rcx /* _P10_TAB+0(%rip) */ + 0xc5, 0xfb, 0x5e, 0x04, 0xc1, //0x00004e76 vdivsd (%rcx,%rax,8), %xmm0, %xmm0 + 0xe9, 0x26, 0xff, 0xff, 0xff, //0x00004e7b jmp LBB15_65 + //0x00004e80 LBB15_79 + 0x48, 0x8b, 0x45, 0xd0, //0x00004e80 movq $-48(%rbp), %rax + 0xe9, 0x27, 0xff, 0xff, 0xff, //0x00004e84 jmp LBB15_67 + //0x00004e89 LBB15_80 + 0xc4, 0xc1, 0xf9, 0x6e, 0xc4, //0x00004e89 vmovq %r12, %xmm0 + 0x4c, 0x0f, 0xaf, 0xe1, //0x00004e8e imulq %rcx, %r12 + 0xc5, 0xf9, 0x62, 0x05, 0xa6, 0xfa, 0xff, 0xff, //0x00004e92 vpunpckldq $-1370(%rip), %xmm0, %xmm0 /* LCPI15_0+0(%rip) */ + 0xc5, 0xf9, 0x5c, 0x05, 0xae, 0xfa, 0xff, 0xff, //0x00004e9a vsubpd $-1362(%rip), %xmm0, %xmm0 /* LCPI15_1+0(%rip) */ + 0x4c, 0x89, 0x63, 0x10, //0x00004ea2 movq %r12, $16(%rbx) + 0xc4, 0xe3, 0x79, 0x05, 0xc8, 0x01, //0x00004ea6 vpermilpd $1, %xmm0, %xmm1 + 0xc5, 0xf3, 0x58, 0xc0, //0x00004eac vaddsd %xmm0, %xmm1, %xmm0 + 0x48, 0x21, 0xc8, //0x00004eb0 andq %rcx, %rax + 0xc4, 0xe1, 0xf9, 0x7e, 0xc1, //0x00004eb3 vmovq %xmm0, %rcx + 0x48, 0x09, 0xc1, //0x00004eb8 orq %rax, %rcx + 0x48, 0x89, 0x4b, 0x08, //0x00004ebb movq %rcx, $8(%rbx) + 0xe9, 0x1a, 0xff, 0xff, 0xff, //0x00004ebf jmp LBB15_70 + //0x00004ec4 LBB15_81 + 0x89, 0xf8, //0x00004ec4 movl %edi, %eax + //0x00004ec6 LBB15_82 + 0xc5, 0xf9, 0x2e, 0x05, 0x92, 0xfa, 0xff, 0xff, //0x00004ec6 vucomisd $-1390(%rip), %xmm0 /* LCPI15_2+0(%rip) */ + 0x0f, 0x87, 0x4a, 0xfe, 0xff, 0xff, //0x00004ece ja LBB15_60 + 0xc5, 0xfb, 0x10, 0x0d, 0x8c, 0xfa, 0xff, 0xff, //0x00004ed4 vmovsd $-1396(%rip), %xmm1 /* LCPI15_3+0(%rip) */ + 0xc5, 0xf9, 0x2e, 0xc8, //0x00004edc vucomisd %xmm0, %xmm1 + 0x0f, 0x87, 0x38, 0xfe, 0xff, 0xff, //0x00004ee0 ja LBB15_60 + 0x89, 0xc0, //0x00004ee6 movl %eax, %eax + 0x48, 0x8d, 0x0d, 0x11, 0xf0, 0x00, 0x00, //0x00004ee8 leaq $61457(%rip), %rcx /* _P10_TAB+0(%rip) */ + 0xc5, 0xfb, 0x59, 0x04, 0xc1, //0x00004eef vmulsd (%rcx,%rax,8), %xmm0, %xmm0 + 0xe9, 0xad, 0xfe, 0xff, 0xff, //0x00004ef4 jmp LBB15_65 + //0x00004ef9 LBB15_85 + 0x48, 0x89, 0xf8, //0x00004ef9 movq %rdi, %rax + //0x00004efc LBB15_86 + 0x8d, 0x7e, 0xd0, //0x00004efc leal $-48(%rsi), %edi + 0x40, 0x80, 0xff, 0x09, //0x00004eff cmpb $9, %dil + 0x0f, 0x87, 0xee, 0xfa, 0xff, 0xff, //0x00004f03 ja LBB15_5 + 0x44, 0x89, 0x4d, 0xc8, //0x00004f09 movl %r9d, $-56(%rbp) + 0x4c, 0x39, 0xe8, //0x00004f0d cmpq %r13, %rax + 0x0f, 0x83, 0x49, 0x00, 0x00, 0x00, //0x00004f10 jae LBB15_93 + 0x40, 0x80, 0xff, 0x09, //0x00004f16 cmpb $9, %dil + 0x0f, 0x87, 0x3f, 0x00, 0x00, 0x00, //0x00004f1a ja LBB15_93 + 0x4d, 0x8d, 0x4d, 0xff, //0x00004f20 leaq $-1(%r13), %r9 + 0x31, 0xff, //0x00004f24 xorl %edi, %edi + //0x00004f26 LBB15_90 + 0x89, 0xfa, //0x00004f26 movl %edi, %edx + 0x81, 0xff, 0x10, 0x27, 0x00, 0x00, //0x00004f28 cmpl $10000, %edi + 0x8d, 0x3c, 0x92, //0x00004f2e leal (%rdx,%rdx,4), %edi + 0x40, 0x0f, 0xb6, 0xf6, //0x00004f31 movzbl %sil, %esi + 0x8d, 0x7c, 0x7e, 0xd0, //0x00004f35 leal $-48(%rsi,%rdi,2), %edi + 0x0f, 0x4d, 0xfa, //0x00004f39 cmovgel %edx, %edi + 0x49, 0x39, 0xc1, //0x00004f3c cmpq %rax, %r9 + 0x0f, 0x84, 0x21, 0x00, 0x00, 0x00, //0x00004f3f je LBB15_94 + 0x41, 0x0f, 0xb6, 0x74, 0x07, 0x01, //0x00004f45 movzbl $1(%r15,%rax), %esi + 0x48, 0xff, 0xc0, //0x00004f4b incq %rax + 0x8d, 0x56, 0xd0, //0x00004f4e leal $-48(%rsi), %edx + 0x80, 0xfa, 0x0a, //0x00004f51 cmpb $10, %dl + 0x0f, 0x82, 0xcc, 0xff, 0xff, 0xff, //0x00004f54 jb LBB15_90 + 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x00004f5a jmp LBB15_95 + //0x00004f5f LBB15_93 + 0x31, 0xff, //0x00004f5f xorl %edi, %edi + 0xe9, 0x03, 0x00, 0x00, 0x00, //0x00004f61 jmp LBB15_95 + //0x00004f66 LBB15_94 + 0x4c, 0x89, 0xe8, //0x00004f66 movq %r13, %rax + //0x00004f69 LBB15_95 + 0x41, 0x0f, 0xaf, 0xf8, //0x00004f69 imull %r8d, %edi + 0x01, 0xcf, //0x00004f6d addl %ecx, %edi + 0x49, 0x89, 0xc5, //0x00004f6f movq %rax, %r13 + 0x44, 0x8b, 0x4d, 0xc8, //0x00004f72 movl $-56(%rbp), %r9d + 0xe9, 0x6a, 0xfd, 0xff, 0xff, //0x00004f76 jmp LBB15_59 + 0x90, 0x90, 0x90, 0x90, 0x90, //0x00004f7b .p2align 4, 0x90 + //0x00004f80 _vsigned + 0x55, //0x00004f80 pushq %rbp + 0x48, 0x89, 0xe5, //0x00004f81 movq %rsp, %rbp + 0x53, //0x00004f84 pushq %rbx + 0x48, 0x8b, 0x1e, //0x00004f85 movq (%rsi), %rbx + 0x4c, 0x8b, 0x07, //0x00004f88 movq (%rdi), %r8 + 0x4c, 0x8b, 0x57, 0x08, //0x00004f8b movq $8(%rdi), %r10 + 0x48, 0xc7, 0x02, 0x09, 0x00, 0x00, 0x00, //0x00004f8f movq $9, (%rdx) + 0xc5, 0xf8, 0x57, 0xc0, //0x00004f96 vxorps %xmm0, %xmm0, %xmm0 + 0xc5, 0xf8, 0x11, 0x42, 0x08, //0x00004f9a vmovups %xmm0, $8(%rdx) + 0x48, 0x8b, 0x0e, //0x00004f9f movq (%rsi), %rcx + 0x48, 0x89, 0x4a, 0x18, //0x00004fa2 movq %rcx, $24(%rdx) + 0x4c, 0x39, 0xd3, //0x00004fa6 cmpq %r10, %rbx + 0x0f, 0x83, 0x44, 0x00, 0x00, 0x00, //0x00004fa9 jae LBB16_1 + 0x41, 0x8a, 0x0c, 0x18, //0x00004faf movb (%r8,%rbx), %cl + 0x41, 0xb9, 0x01, 0x00, 0x00, 0x00, //0x00004fb3 movl $1, %r9d + 0x80, 0xf9, 0x2d, //0x00004fb9 cmpb $45, %cl + 0x0f, 0x85, 0x17, 0x00, 0x00, 0x00, //0x00004fbc jne LBB16_5 + 0x48, 0xff, 0xc3, //0x00004fc2 incq %rbx + 0x4c, 0x39, 0xd3, //0x00004fc5 cmpq %r10, %rbx + 0x0f, 0x83, 0x25, 0x00, 0x00, 0x00, //0x00004fc8 jae LBB16_1 + 0x41, 0x8a, 0x0c, 0x18, //0x00004fce movb (%r8,%rbx), %cl + 0x49, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00004fd2 movq $-1, %r9 + //0x00004fd9 LBB16_5 + 0x8d, 0x79, 0xd0, //0x00004fd9 leal $-48(%rcx), %edi + 0x40, 0x80, 0xff, 0x0a, //0x00004fdc cmpb $10, %dil + 0x0f, 0x82, 0x1a, 0x00, 0x00, 0x00, //0x00004fe0 jb LBB16_7 + 0x48, 0x89, 0x1e, //0x00004fe6 movq %rbx, (%rsi) + 0x48, 0xc7, 0x02, 0xfe, 0xff, 0xff, 0xff, //0x00004fe9 movq $-2, (%rdx) + 0x5b, //0x00004ff0 popq %rbx + 0x5d, //0x00004ff1 popq %rbp + 0xc3, //0x00004ff2 retq + //0x00004ff3 LBB16_1 + 0x4c, 0x89, 0x16, //0x00004ff3 movq %r10, (%rsi) + 0x48, 0xc7, 0x02, 0xff, 0xff, 0xff, 0xff, //0x00004ff6 movq $-1, (%rdx) + 0x5b, //0x00004ffd popq %rbx + 0x5d, //0x00004ffe popq %rbp + 0xc3, //0x00004fff retq + //0x00005000 LBB16_7 + 0x80, 0xf9, 0x30, //0x00005000 cmpb $48, %cl + 0x0f, 0x85, 0x35, 0x00, 0x00, 0x00, //0x00005003 jne LBB16_8 + 0x48, 0x8d, 0x7b, 0x01, //0x00005009 leaq $1(%rbx), %rdi + 0x4c, 0x39, 0xd3, //0x0000500d cmpq %r10, %rbx + 0x0f, 0x83, 0x71, 0x00, 0x00, 0x00, //0x00005010 jae LBB16_17 + 0x41, 0x8a, 0x0c, 0x38, //0x00005016 movb (%r8,%rdi), %cl + 0x80, 0xc1, 0xd2, //0x0000501a addb $-46, %cl + 0x80, 0xf9, 0x37, //0x0000501d cmpb $55, %cl + 0x0f, 0x87, 0x61, 0x00, 0x00, 0x00, //0x00005020 ja LBB16_17 + 0x44, 0x0f, 0xb6, 0xd9, //0x00005026 movzbl %cl, %r11d + 0x48, 0xb9, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, //0x0000502a movabsq $36028797027352577, %rcx + 0x4c, 0x0f, 0xa3, 0xd9, //0x00005034 btq %r11, %rcx + 0x0f, 0x83, 0x49, 0x00, 0x00, 0x00, //0x00005038 jae LBB16_17 + //0x0000503e LBB16_8 + 0x31, 0xff, //0x0000503e xorl %edi, %edi + //0x00005040 .p2align 4, 0x90 + //0x00005040 LBB16_9 + 0x4c, 0x39, 0xd3, //0x00005040 cmpq %r10, %rbx + 0x0f, 0x83, 0x6c, 0x00, 0x00, 0x00, //0x00005043 jae LBB16_22 + 0x49, 0x0f, 0xbe, 0x0c, 0x18, //0x00005049 movsbq (%r8,%rbx), %rcx + 0x8d, 0x41, 0xd0, //0x0000504e leal $-48(%rcx), %eax + 0x3c, 0x09, //0x00005051 cmpb $9, %al + 0x0f, 0x87, 0x34, 0x00, 0x00, 0x00, //0x00005053 ja LBB16_18 + 0x48, 0x6b, 0xff, 0x0a, //0x00005059 imulq $10, %rdi, %rdi + 0x0f, 0x80, 0x14, 0x00, 0x00, 0x00, //0x0000505d jo LBB16_13 + 0x48, 0xff, 0xc3, //0x00005063 incq %rbx + 0x48, 0x83, 0xc1, 0xd0, //0x00005066 addq $-48, %rcx + 0x49, 0x0f, 0xaf, 0xc9, //0x0000506a imulq %r9, %rcx + 0x48, 0x01, 0xcf, //0x0000506e addq %rcx, %rdi + 0x0f, 0x81, 0xc9, 0xff, 0xff, 0xff, //0x00005071 jno LBB16_9 + //0x00005077 LBB16_13 + 0x48, 0xff, 0xcb, //0x00005077 decq %rbx + 0x48, 0x89, 0x1e, //0x0000507a movq %rbx, (%rsi) + 0x48, 0xc7, 0x02, 0xfb, 0xff, 0xff, 0xff, //0x0000507d movq $-5, (%rdx) + 0x5b, //0x00005084 popq %rbx + 0x5d, //0x00005085 popq %rbp + 0xc3, //0x00005086 retq + //0x00005087 LBB16_17 + 0x48, 0x89, 0x3e, //0x00005087 movq %rdi, (%rsi) + 0x5b, //0x0000508a popq %rbx + 0x5d, //0x0000508b popq %rbp + 0xc3, //0x0000508c retq + //0x0000508d LBB16_18 + 0x80, 0xf9, 0x65, //0x0000508d cmpb $101, %cl + 0x0f, 0x84, 0x12, 0x00, 0x00, 0x00, //0x00005090 je LBB16_21 + 0x80, 0xf9, 0x45, //0x00005096 cmpb $69, %cl + 0x0f, 0x84, 0x09, 0x00, 0x00, 0x00, //0x00005099 je LBB16_21 + 0x80, 0xf9, 0x2e, //0x0000509f cmpb $46, %cl + 0x0f, 0x85, 0x0d, 0x00, 0x00, 0x00, //0x000050a2 jne LBB16_22 + //0x000050a8 LBB16_21 + 0x48, 0x89, 0x1e, //0x000050a8 movq %rbx, (%rsi) + 0x48, 0xc7, 0x02, 0xfa, 0xff, 0xff, 0xff, //0x000050ab movq $-6, (%rdx) + 0x5b, //0x000050b2 popq %rbx + 0x5d, //0x000050b3 popq %rbp + 0xc3, //0x000050b4 retq + //0x000050b5 LBB16_22 + 0x48, 0x89, 0x1e, //0x000050b5 movq %rbx, (%rsi) + 0x48, 0x89, 0x7a, 0x10, //0x000050b8 movq %rdi, $16(%rdx) + 0x5b, //0x000050bc popq %rbx + 0x5d, //0x000050bd popq %rbp + 0xc3, //0x000050be retq + 0x90, //0x000050bf .p2align 4, 0x90 + //0x000050c0 _vunsigned + 0x55, //0x000050c0 pushq %rbp + 0x48, 0x89, 0xe5, //0x000050c1 movq %rsp, %rbp + 0x49, 0x89, 0xd0, //0x000050c4 movq %rdx, %r8 + 0x48, 0x8b, 0x0e, //0x000050c7 movq (%rsi), %rcx + 0x4c, 0x8b, 0x0f, //0x000050ca movq (%rdi), %r9 + 0x4c, 0x8b, 0x5f, 0x08, //0x000050cd movq $8(%rdi), %r11 + 0x48, 0xc7, 0x02, 0x09, 0x00, 0x00, 0x00, //0x000050d1 movq $9, (%rdx) + 0xc5, 0xf8, 0x57, 0xc0, //0x000050d8 vxorps %xmm0, %xmm0, %xmm0 + 0xc5, 0xf8, 0x11, 0x42, 0x08, //0x000050dc vmovups %xmm0, $8(%rdx) + 0x48, 0x8b, 0x06, //0x000050e1 movq (%rsi), %rax + 0x48, 0x89, 0x42, 0x18, //0x000050e4 movq %rax, $24(%rdx) + 0x4c, 0x39, 0xd9, //0x000050e8 cmpq %r11, %rcx + 0x0f, 0x83, 0x18, 0x00, 0x00, 0x00, //0x000050eb jae LBB17_1 + 0x41, 0x8a, 0x04, 0x09, //0x000050f1 movb (%r9,%rcx), %al + 0x3c, 0x2d, //0x000050f5 cmpb $45, %al + 0x0f, 0x85, 0x18, 0x00, 0x00, 0x00, //0x000050f7 jne LBB17_4 + //0x000050fd LBB17_3 + 0x48, 0x89, 0x0e, //0x000050fd movq %rcx, (%rsi) + 0x49, 0xc7, 0x00, 0xfa, 0xff, 0xff, 0xff, //0x00005100 movq $-6, (%r8) + 0x5d, //0x00005107 popq %rbp + 0xc3, //0x00005108 retq + //0x00005109 LBB17_1 + 0x4c, 0x89, 0x1e, //0x00005109 movq %r11, (%rsi) + 0x49, 0xc7, 0x00, 0xff, 0xff, 0xff, 0xff, //0x0000510c movq $-1, (%r8) + 0x5d, //0x00005113 popq %rbp + 0xc3, //0x00005114 retq + //0x00005115 LBB17_4 + 0x8d, 0x50, 0xd0, //0x00005115 leal $-48(%rax), %edx + 0x80, 0xfa, 0x0a, //0x00005118 cmpb $10, %dl + 0x0f, 0x82, 0x0c, 0x00, 0x00, 0x00, //0x0000511b jb LBB17_6 + 0x48, 0x89, 0x0e, //0x00005121 movq %rcx, (%rsi) + 0x49, 0xc7, 0x00, 0xfe, 0xff, 0xff, 0xff, //0x00005124 movq $-2, (%r8) + 0x5d, //0x0000512b popq %rbp + 0xc3, //0x0000512c retq + //0x0000512d LBB17_6 + 0x3c, 0x30, //0x0000512d cmpb $48, %al + 0x0f, 0x85, 0x26, 0x00, 0x00, 0x00, //0x0000512f jne LBB17_7 + 0x41, 0x8a, 0x44, 0x09, 0x01, //0x00005135 movb $1(%r9,%rcx), %al + 0x04, 0xd2, //0x0000513a addb $-46, %al + 0x3c, 0x37, //0x0000513c cmpb $55, %al + 0x0f, 0x87, 0xb6, 0x00, 0x00, 0x00, //0x0000513e ja LBB17_16 + 0x0f, 0xb6, 0xc0, //0x00005144 movzbl %al, %eax + 0x48, 0xba, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, //0x00005147 movabsq $36028797027352577, %rdx + 0x48, 0x0f, 0xa3, 0xc2, //0x00005151 btq %rax, %rdx + 0x0f, 0x83, 0x9f, 0x00, 0x00, 0x00, //0x00005155 jae LBB17_16 + //0x0000515b LBB17_7 + 0x31, 0xc0, //0x0000515b xorl %eax, %eax + 0x41, 0xba, 0x0a, 0x00, 0x00, 0x00, //0x0000515d movl $10, %r10d + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00005163 .p2align 4, 0x90 + //0x00005170 LBB17_8 + 0x4c, 0x39, 0xd9, //0x00005170 cmpq %r11, %rcx + 0x0f, 0x83, 0x78, 0x00, 0x00, 0x00, //0x00005173 jae LBB17_20 + 0x41, 0x0f, 0xbe, 0x3c, 0x09, //0x00005179 movsbl (%r9,%rcx), %edi + 0x8d, 0x57, 0xd0, //0x0000517e leal $-48(%rdi), %edx + 0x80, 0xfa, 0x09, //0x00005181 cmpb $9, %dl + 0x0f, 0x87, 0x49, 0x00, 0x00, 0x00, //0x00005184 ja LBB17_17 + 0x49, 0xf7, 0xe2, //0x0000518a mulq %r10 + 0x0f, 0x80, 0x31, 0x00, 0x00, 0x00, //0x0000518d jo LBB17_13 + 0x48, 0xff, 0xc1, //0x00005193 incq %rcx + 0x83, 0xc7, 0xd0, //0x00005196 addl $-48, %edi + 0x48, 0x63, 0xd7, //0x00005199 movslq %edi, %rdx + 0x48, 0x89, 0xd7, //0x0000519c movq %rdx, %rdi + 0x48, 0xc1, 0xff, 0x3f, //0x0000519f sarq $63, %rdi + 0x48, 0x01, 0xd0, //0x000051a3 addq %rdx, %rax + 0x48, 0x83, 0xd7, 0x00, //0x000051a6 adcq $0, %rdi + 0x89, 0xfa, //0x000051aa movl %edi, %edx + 0x83, 0xe2, 0x01, //0x000051ac andl $1, %edx + 0x48, 0xf7, 0xda, //0x000051af negq %rdx + 0x48, 0x31, 0xd7, //0x000051b2 xorq %rdx, %rdi + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x000051b5 jne LBB17_13 + 0x48, 0x85, 0xd2, //0x000051bb testq %rdx, %rdx + 0x0f, 0x89, 0xac, 0xff, 0xff, 0xff, //0x000051be jns LBB17_8 + //0x000051c4 LBB17_13 + 0x48, 0xff, 0xc9, //0x000051c4 decq %rcx + 0x48, 0x89, 0x0e, //0x000051c7 movq %rcx, (%rsi) + 0x49, 0xc7, 0x00, 0xfb, 0xff, 0xff, 0xff, //0x000051ca movq $-5, (%r8) + 0x5d, //0x000051d1 popq %rbp + 0xc3, //0x000051d2 retq + //0x000051d3 LBB17_17 + 0x40, 0x80, 0xff, 0x65, //0x000051d3 cmpb $101, %dil + 0x0f, 0x84, 0x20, 0xff, 0xff, 0xff, //0x000051d7 je LBB17_3 + 0x40, 0x80, 0xff, 0x45, //0x000051dd cmpb $69, %dil + 0x0f, 0x84, 0x16, 0xff, 0xff, 0xff, //0x000051e1 je LBB17_3 + 0x40, 0x80, 0xff, 0x2e, //0x000051e7 cmpb $46, %dil + 0x0f, 0x84, 0x0c, 0xff, 0xff, 0xff, //0x000051eb je LBB17_3 + //0x000051f1 LBB17_20 + 0x48, 0x89, 0x0e, //0x000051f1 movq %rcx, (%rsi) + 0x49, 0x89, 0x40, 0x10, //0x000051f4 movq %rax, $16(%r8) + 0x5d, //0x000051f8 popq %rbp + 0xc3, //0x000051f9 retq + //0x000051fa LBB17_16 + 0x48, 0xff, 0xc1, //0x000051fa incq %rcx + 0x48, 0x89, 0x0e, //0x000051fd movq %rcx, (%rsi) + 0x5d, //0x00005200 popq %rbp + 0xc3, //0x00005201 retq + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005202 .p2align 4, 0x00 + //0x00005210 LCPI18_0 + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005210 .quad 1 + 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005218 .quad 5 + //0x00005220 .p2align 4, 0x90 + //0x00005220 _skip_array + 0x55, //0x00005220 pushq %rbp + 0x48, 0x89, 0xe5, //0x00005221 movq %rsp, %rbp + 0x48, 0x89, 0xd0, //0x00005224 movq %rdx, %rax + 0x48, 0x89, 0xf2, //0x00005227 movq %rsi, %rdx + 0x48, 0x89, 0xfe, //0x0000522a movq %rdi, %rsi + 0xc5, 0xf8, 0x28, 0x05, 0xdb, 0xff, 0xff, 0xff, //0x0000522d vmovaps $-37(%rip), %xmm0 /* LCPI18_0+0(%rip) */ + 0xc5, 0xf8, 0x11, 0x00, //0x00005235 vmovups %xmm0, (%rax) + 0x48, 0x89, 0xc7, //0x00005239 movq %rax, %rdi + 0x5d, //0x0000523c popq %rbp + 0xe9, 0x0e, 0x00, 0x00, 0x00, //0x0000523d jmp _fsm_exec + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00005242 .p2align 4, 0x90 + //0x00005250 _fsm_exec + 0x55, //0x00005250 pushq %rbp + 0x48, 0x89, 0xe5, //0x00005251 movq %rsp, %rbp + 0x41, 0x57, //0x00005254 pushq %r15 + 0x41, 0x56, //0x00005256 pushq %r14 + 0x41, 0x55, //0x00005258 pushq %r13 + 0x41, 0x54, //0x0000525a pushq %r12 + 0x53, //0x0000525c pushq %rbx + 0x48, 0x83, 0xec, 0x28, //0x0000525d subq $40, %rsp + 0x48, 0x89, 0x4d, 0xb8, //0x00005261 movq %rcx, $-72(%rbp) + 0x48, 0x83, 0x3f, 0x00, //0x00005265 cmpq $0, (%rdi) + 0x0f, 0x84, 0x14, 0x04, 0x00, 0x00, //0x00005269 je LBB19_2 + 0x49, 0x89, 0xd0, //0x0000526f movq %rdx, %r8 + 0x49, 0x89, 0xfd, //0x00005272 movq %rdi, %r13 + 0x48, 0x89, 0x75, 0xc8, //0x00005275 movq %rsi, $-56(%rbp) + 0x48, 0x8d, 0x46, 0x08, //0x00005279 leaq $8(%rsi), %rax + 0x48, 0x89, 0x45, 0xc0, //0x0000527d movq %rax, $-64(%rbp) + 0x49, 0xc7, 0xc4, 0xff, 0xff, 0xff, 0xff, //0x00005281 movq $-1, %r12 + 0xe9, 0x23, 0x00, 0x00, 0x00, //0x00005288 jmp LBB19_4 + //0x0000528d LBB19_3 + 0x48, 0x8d, 0x48, 0x03, //0x0000528d leaq $3(%rax), %rcx + 0x49, 0x89, 0x08, //0x00005291 movq %rcx, (%r8) + 0x48, 0x85, 0xc0, //0x00005294 testq %rax, %rax + 0x0f, 0x8e, 0x56, 0x04, 0x00, 0x00, //0x00005297 jle LBB19_62 + 0x90, 0x90, 0x90, //0x0000529d .p2align 4, 0x90 + //0x000052a0 LBB19_39 + 0x49, 0x8b, 0x55, 0x00, //0x000052a0 movq (%r13), %rdx + 0x4d, 0x89, 0xe6, //0x000052a4 movq %r12, %r14 + 0x48, 0x85, 0xd2, //0x000052a7 testq %rdx, %rdx + 0x0f, 0x84, 0x22, 0x04, 0x00, 0x00, //0x000052aa je LBB19_65 + //0x000052b0 LBB19_4 + 0x48, 0x8b, 0x5d, 0xc8, //0x000052b0 movq $-56(%rbp), %rbx + 0x48, 0x8b, 0x3b, //0x000052b4 movq (%rbx), %rdi + 0x48, 0x8b, 0x73, 0x08, //0x000052b7 movq $8(%rbx), %rsi + 0x4d, 0x89, 0xc7, //0x000052bb movq %r8, %r15 + 0x4c, 0x89, 0xc2, //0x000052be movq %r8, %rdx + 0xe8, 0x5a, 0xef, 0xff, 0xff, //0x000052c1 callq _advance_ns + 0x84, 0xc0, //0x000052c6 testb %al, %al + 0x0f, 0x84, 0xb5, 0x03, 0x00, 0x00, //0x000052c8 je LBB19_2 + 0x49, 0x8b, 0x4d, 0x00, //0x000052ce movq (%r13), %rcx + 0x41, 0x8b, 0x7c, 0xcd, 0x00, //0x000052d2 movl (%r13,%rcx,8), %edi + 0x49, 0x83, 0xfc, 0xff, //0x000052d7 cmpq $-1, %r12 + 0x4d, 0x89, 0xf8, //0x000052db movq %r15, %r8 + 0x0f, 0x85, 0x06, 0x00, 0x00, 0x00, //0x000052de jne LBB19_7 + 0x4d, 0x8b, 0x20, //0x000052e4 movq (%r8), %r12 + 0x49, 0xff, 0xcc, //0x000052e7 decq %r12 + //0x000052ea LBB19_7 + 0x44, 0x0f, 0xbe, 0xc8, //0x000052ea movsbl %al, %r9d + 0x48, 0x8d, 0x51, 0xff, //0x000052ee leaq $-1(%rcx), %rdx + 0xff, 0xcf, //0x000052f2 decl %edi + 0x83, 0xff, 0x05, //0x000052f4 cmpl $5, %edi + 0x0f, 0x87, 0x39, 0x00, 0x00, 0x00, //0x000052f7 ja LBB19_12 + 0x48, 0x8d, 0x35, 0x08, 0x05, 0x00, 0x00, //0x000052fd leaq $1288(%rip), %rsi /* LJTI19_0+0(%rip) */ + 0x48, 0x63, 0x3c, 0xbe, //0x00005304 movslq (%rsi,%rdi,4), %rdi + 0x48, 0x01, 0xf7, //0x00005308 addq %rsi, %rdi + 0xff, 0xe7, //0x0000530b jmpq *%rdi + //0x0000530d LBB19_9 + 0x41, 0x83, 0xf9, 0x2c, //0x0000530d cmpl $44, %r9d + 0x0f, 0x84, 0x7b, 0x01, 0x00, 0x00, //0x00005311 je LBB19_31 + 0x41, 0x83, 0xf9, 0x5d, //0x00005317 cmpl $93, %r9d + 0x0f, 0x85, 0xaa, 0x03, 0x00, 0x00, //0x0000531b jne LBB19_64 + 0x49, 0x89, 0x55, 0x00, //0x00005321 movq %rdx, (%r13) + 0x4d, 0x89, 0xe6, //0x00005325 movq %r12, %r14 + 0x48, 0x85, 0xd2, //0x00005328 testq %rdx, %rdx + 0x0f, 0x85, 0x7f, 0xff, 0xff, 0xff, //0x0000532b jne LBB19_4 + 0xe9, 0x9c, 0x03, 0x00, 0x00, //0x00005331 jmp LBB19_65 + //0x00005336 LBB19_12 + 0x49, 0x89, 0x55, 0x00, //0x00005336 movq %rdx, (%r13) + 0x41, 0x83, 0xf9, 0x7b, //0x0000533a cmpl $123, %r9d + 0x0f, 0x86, 0xef, 0x00, 0x00, 0x00, //0x0000533e jbe LBB19_28 + 0xe9, 0x82, 0x03, 0x00, 0x00, //0x00005344 jmp LBB19_64 + //0x00005349 LBB19_13 + 0x41, 0x83, 0xf9, 0x2c, //0x00005349 cmpl $44, %r9d + 0x0f, 0x84, 0x62, 0x01, 0x00, 0x00, //0x0000534d je LBB19_33 + 0x41, 0x83, 0xf9, 0x7d, //0x00005353 cmpl $125, %r9d + 0x0f, 0x85, 0x6e, 0x03, 0x00, 0x00, //0x00005357 jne LBB19_64 + 0x49, 0x89, 0x55, 0x00, //0x0000535d movq %rdx, (%r13) + 0x4d, 0x89, 0xe6, //0x00005361 movq %r12, %r14 + 0x48, 0x85, 0xd2, //0x00005364 testq %rdx, %rdx + 0x0f, 0x85, 0x43, 0xff, 0xff, 0xff, //0x00005367 jne LBB19_4 + 0xe9, 0x60, 0x03, 0x00, 0x00, //0x0000536d jmp LBB19_65 + //0x00005372 LBB19_16 + 0x3c, 0x22, //0x00005372 cmpb $34, %al + 0x0f, 0x85, 0x51, 0x03, 0x00, 0x00, //0x00005374 jne LBB19_64 + 0x49, 0xc7, 0x44, 0xcd, 0x00, 0x04, 0x00, 0x00, 0x00, //0x0000537a movq $4, (%r13,%rcx,8) + 0x48, 0xc7, 0x45, 0xd0, 0xff, 0xff, 0xff, 0xff, //0x00005383 movq $-1, $-48(%rbp) + 0x4d, 0x8b, 0x38, //0x0000538b movq (%r8), %r15 + 0x48, 0x89, 0xdf, //0x0000538e movq %rbx, %rdi + //0x00005391 LBB19_18 + 0x4c, 0x89, 0xfe, //0x00005391 movq %r15, %rsi + 0x48, 0x8d, 0x55, 0xd0, //0x00005394 leaq $-48(%rbp), %rdx + 0x48, 0x8b, 0x4d, 0xb8, //0x00005398 movq $-72(%rbp), %rcx + 0x4c, 0x89, 0xc3, //0x0000539c movq %r8, %rbx + 0xe8, 0x5c, 0xf1, 0xff, 0xff, //0x0000539f callq _advance_string + 0x49, 0x89, 0xc6, //0x000053a4 movq %rax, %r14 + 0x48, 0x85, 0xc0, //0x000053a7 testq %rax, %rax + 0x0f, 0x88, 0xeb, 0x02, 0x00, 0x00, //0x000053aa js LBB19_55 + 0x4c, 0x89, 0x33, //0x000053b0 movq %r14, (%rbx) + 0x4d, 0x85, 0xff, //0x000053b3 testq %r15, %r15 + 0x49, 0x89, 0xd8, //0x000053b6 movq %rbx, %r8 + 0x0f, 0x8f, 0xe1, 0xfe, 0xff, 0xff, //0x000053b9 jg LBB19_39 + 0xe9, 0xef, 0x02, 0x00, 0x00, //0x000053bf jmp LBB19_56 + //0x000053c4 LBB19_20 + 0x3c, 0x3a, //0x000053c4 cmpb $58, %al + 0x0f, 0x85, 0xff, 0x02, 0x00, 0x00, //0x000053c6 jne LBB19_64 + 0x49, 0xc7, 0x44, 0xcd, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000053cc movq $0, (%r13,%rcx,8) + 0xe9, 0xc6, 0xfe, 0xff, 0xff, //0x000053d5 jmp LBB19_39 + //0x000053da LBB19_22 + 0x3c, 0x5d, //0x000053da cmpb $93, %al + 0x0f, 0x85, 0x3e, 0x00, 0x00, 0x00, //0x000053dc jne LBB19_27 + 0x49, 0x89, 0x55, 0x00, //0x000053e2 movq %rdx, (%r13) + 0x4d, 0x89, 0xe6, //0x000053e6 movq %r12, %r14 + 0x48, 0x85, 0xd2, //0x000053e9 testq %rdx, %rdx + 0x0f, 0x85, 0xbe, 0xfe, 0xff, 0xff, //0x000053ec jne LBB19_4 + 0xe9, 0xdb, 0x02, 0x00, 0x00, //0x000053f2 jmp LBB19_65 + //0x000053f7 LBB19_24 + 0x41, 0x83, 0xf9, 0x22, //0x000053f7 cmpl $34, %r9d + 0x0f, 0x84, 0xd7, 0x00, 0x00, 0x00, //0x000053fb je LBB19_35 + 0x41, 0x83, 0xf9, 0x7d, //0x00005401 cmpl $125, %r9d + 0x0f, 0x85, 0xc0, 0x02, 0x00, 0x00, //0x00005405 jne LBB19_64 + 0x49, 0x89, 0x55, 0x00, //0x0000540b movq %rdx, (%r13) + 0x4d, 0x89, 0xe6, //0x0000540f movq %r12, %r14 + 0x48, 0x85, 0xd2, //0x00005412 testq %rdx, %rdx + 0x0f, 0x85, 0x95, 0xfe, 0xff, 0xff, //0x00005415 jne LBB19_4 + 0xe9, 0xb2, 0x02, 0x00, 0x00, //0x0000541b jmp LBB19_65 + //0x00005420 LBB19_27 + 0x49, 0xc7, 0x44, 0xcd, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00005420 movq $1, (%r13,%rcx,8) + 0x41, 0x83, 0xf9, 0x7b, //0x00005429 cmpl $123, %r9d + 0x0f, 0x87, 0x98, 0x02, 0x00, 0x00, //0x0000542d ja LBB19_64 + //0x00005433 LBB19_28 + 0x44, 0x89, 0xc8, //0x00005433 movl %r9d, %eax + 0x48, 0x8d, 0x0d, 0xe7, 0x03, 0x00, 0x00, //0x00005436 leaq $999(%rip), %rcx /* LJTI19_1+0(%rip) */ + 0x48, 0x63, 0x04, 0x81, //0x0000543d movslq (%rcx,%rax,4), %rax + 0x48, 0x01, 0xc8, //0x00005441 addq %rcx, %rax + 0x49, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x00005444 movq $-1, %r14 + 0xff, 0xe0, //0x0000544b jmpq *%rax + //0x0000544d LBB19_29 + 0x4c, 0x89, 0xc3, //0x0000544d movq %r8, %rbx + 0x4d, 0x8b, 0x38, //0x00005450 movq (%r8), %r15 + 0x4d, 0x8d, 0x77, 0xff, //0x00005453 leaq $-1(%r15), %r14 + 0x48, 0x8b, 0x45, 0xc8, //0x00005457 movq $-56(%rbp), %rax + 0x48, 0x8b, 0x38, //0x0000545b movq (%rax), %rdi + 0x4c, 0x01, 0xf7, //0x0000545e addq %r14, %rdi + 0x48, 0x8b, 0x70, 0x08, //0x00005461 movq $8(%rax), %rsi + 0x4c, 0x29, 0xf6, //0x00005465 subq %r14, %rsi + 0xe8, 0x23, 0x08, 0x00, 0x00, //0x00005468 callq _do_skip_number + 0x48, 0x85, 0xc0, //0x0000546d testq %rax, %rax + 0x0f, 0x88, 0x48, 0x02, 0x00, 0x00, //0x00005470 js LBB19_57 + 0x48, 0x8b, 0x0b, //0x00005476 movq (%rbx), %rcx + 0x48, 0x8d, 0x44, 0x08, 0xff, //0x00005479 leaq $-1(%rax,%rcx), %rax + 0x48, 0x89, 0x03, //0x0000547e movq %rax, (%rbx) + 0x4d, 0x85, 0xff, //0x00005481 testq %r15, %r15 + 0x49, 0x89, 0xd8, //0x00005484 movq %rbx, %r8 + 0x0f, 0x8f, 0x13, 0xfe, 0xff, 0xff, //0x00005487 jg LBB19_39 + 0xe9, 0x40, 0x02, 0x00, 0x00, //0x0000548d jmp LBB19_65 + //0x00005492 LBB19_31 + 0x48, 0x81, 0xf9, 0xff, 0x0f, 0x00, 0x00, //0x00005492 cmpq $4095, %rcx + 0x0f, 0x8f, 0xf0, 0x01, 0x00, 0x00, //0x00005499 jg LBB19_58 + 0x48, 0x8d, 0x41, 0x01, //0x0000549f leaq $1(%rcx), %rax + 0x49, 0x89, 0x45, 0x00, //0x000054a3 movq %rax, (%r13) + 0x49, 0xc7, 0x44, 0xcd, 0x08, 0x00, 0x00, 0x00, 0x00, //0x000054a7 movq $0, $8(%r13,%rcx,8) + 0xe9, 0xeb, 0xfd, 0xff, 0xff, //0x000054b0 jmp LBB19_39 + //0x000054b5 LBB19_33 + 0x48, 0x81, 0xf9, 0xff, 0x0f, 0x00, 0x00, //0x000054b5 cmpq $4095, %rcx + 0x0f, 0x8f, 0xcd, 0x01, 0x00, 0x00, //0x000054bc jg LBB19_58 + 0x48, 0x8d, 0x41, 0x01, //0x000054c2 leaq $1(%rcx), %rax + 0x49, 0x89, 0x45, 0x00, //0x000054c6 movq %rax, (%r13) + 0x49, 0xc7, 0x44, 0xcd, 0x08, 0x03, 0x00, 0x00, 0x00, //0x000054ca movq $3, $8(%r13,%rcx,8) + 0xe9, 0xc8, 0xfd, 0xff, 0xff, //0x000054d3 jmp LBB19_39 + //0x000054d8 LBB19_35 + 0x49, 0xc7, 0x44, 0xcd, 0x00, 0x02, 0x00, 0x00, 0x00, //0x000054d8 movq $2, (%r13,%rcx,8) + 0x48, 0xc7, 0x45, 0xd0, 0xff, 0xff, 0xff, 0xff, //0x000054e1 movq $-1, $-48(%rbp) + 0x4d, 0x8b, 0x38, //0x000054e9 movq (%r8), %r15 + 0x48, 0x89, 0xdf, //0x000054ec movq %rbx, %rdi + 0x4c, 0x89, 0xfe, //0x000054ef movq %r15, %rsi + 0x48, 0x8d, 0x55, 0xd0, //0x000054f2 leaq $-48(%rbp), %rdx + 0x48, 0x8b, 0x4d, 0xb8, //0x000054f6 movq $-72(%rbp), %rcx + 0x4c, 0x89, 0xc3, //0x000054fa movq %r8, %rbx + 0xe8, 0xfe, 0xef, 0xff, 0xff, //0x000054fd callq _advance_string + 0x49, 0x89, 0xc6, //0x00005502 movq %rax, %r14 + 0x48, 0x85, 0xc0, //0x00005505 testq %rax, %rax + 0x0f, 0x88, 0x8d, 0x01, 0x00, 0x00, //0x00005508 js LBB19_55 + 0x4c, 0x89, 0x33, //0x0000550e movq %r14, (%rbx) + 0x4d, 0x85, 0xff, //0x00005511 testq %r15, %r15 + 0x0f, 0x8e, 0x99, 0x01, 0x00, 0x00, //0x00005514 jle LBB19_56 + 0x49, 0x8b, 0x45, 0x00, //0x0000551a movq (%r13), %rax + 0x48, 0x3d, 0xff, 0x0f, 0x00, 0x00, //0x0000551e cmpq $4095, %rax + 0x0f, 0x8f, 0x65, 0x01, 0x00, 0x00, //0x00005524 jg LBB19_58 + 0x49, 0x89, 0xd8, //0x0000552a movq %rbx, %r8 + 0x48, 0x8d, 0x48, 0x01, //0x0000552d leaq $1(%rax), %rcx + 0x49, 0x89, 0x4d, 0x00, //0x00005531 movq %rcx, (%r13) + 0x49, 0xc7, 0x44, 0xc5, 0x08, 0x04, 0x00, 0x00, 0x00, //0x00005535 movq $4, $8(%r13,%rax,8) + 0xe9, 0x5d, 0xfd, 0xff, 0xff, //0x0000553e jmp LBB19_39 + //0x00005543 LBB19_40 + 0x48, 0xc7, 0x45, 0xd0, 0xff, 0xff, 0xff, 0xff, //0x00005543 movq $-1, $-48(%rbp) + 0x4d, 0x8b, 0x38, //0x0000554b movq (%r8), %r15 + 0x48, 0x8b, 0x7d, 0xc8, //0x0000554e movq $-56(%rbp), %rdi + 0xe9, 0x3a, 0xfe, 0xff, 0xff, //0x00005552 jmp LBB19_18 + //0x00005557 LBB19_41 + 0x4d, 0x8b, 0x30, //0x00005557 movq (%r8), %r14 + 0x48, 0x8b, 0x45, 0xc8, //0x0000555a movq $-56(%rbp), %rax + 0x48, 0x8b, 0x38, //0x0000555e movq (%rax), %rdi + 0x4c, 0x01, 0xf7, //0x00005561 addq %r14, %rdi + 0x48, 0x8b, 0x70, 0x08, //0x00005564 movq $8(%rax), %rsi + 0x4c, 0x29, 0xf6, //0x00005568 subq %r14, %rsi + 0xe8, 0x20, 0x07, 0x00, 0x00, //0x0000556b callq _do_skip_number + 0x4d, 0x89, 0xf8, //0x00005570 movq %r15, %r8 + 0x49, 0x8b, 0x0f, //0x00005573 movq (%r15), %rcx + 0x48, 0x85, 0xc0, //0x00005576 testq %rax, %rax + 0x0f, 0x88, 0x7f, 0x01, 0x00, 0x00, //0x00005579 js LBB19_63 + 0x48, 0x01, 0xc1, //0x0000557f addq %rax, %rcx + 0x49, 0x89, 0x08, //0x00005582 movq %rcx, (%r8) + 0x4d, 0x85, 0xf6, //0x00005585 testq %r14, %r14 + 0x0f, 0x8f, 0x12, 0xfd, 0xff, 0xff, //0x00005588 jg LBB19_39 + 0xe9, 0x79, 0x01, 0x00, 0x00, //0x0000558e jmp LBB19_68 + //0x00005593 LBB19_43 + 0x49, 0x8b, 0x45, 0x00, //0x00005593 movq (%r13), %rax + 0x48, 0x3d, 0xff, 0x0f, 0x00, 0x00, //0x00005597 cmpq $4095, %rax + 0x0f, 0x8f, 0xec, 0x00, 0x00, 0x00, //0x0000559d jg LBB19_58 + 0x48, 0x8d, 0x48, 0x01, //0x000055a3 leaq $1(%rax), %rcx + 0x49, 0x89, 0x4d, 0x00, //0x000055a7 movq %rcx, (%r13) + 0x49, 0xc7, 0x44, 0xc5, 0x08, 0x05, 0x00, 0x00, 0x00, //0x000055ab movq $5, $8(%r13,%rax,8) + 0xe9, 0xe7, 0xfc, 0xff, 0xff, //0x000055b4 jmp LBB19_39 + //0x000055b9 LBB19_45 + 0x49, 0x8b, 0x00, //0x000055b9 movq (%r8), %rax + 0x48, 0x8b, 0x4d, 0xc0, //0x000055bc movq $-64(%rbp), %rcx + 0x48, 0x8b, 0x09, //0x000055c0 movq (%rcx), %rcx + 0x48, 0x8d, 0x51, 0xfc, //0x000055c3 leaq $-4(%rcx), %rdx + 0x48, 0x39, 0xd0, //0x000055c7 cmpq %rdx, %rax + 0x0f, 0x87, 0x14, 0x01, 0x00, 0x00, //0x000055ca ja LBB19_61 + 0x48, 0x8b, 0x4d, 0xc8, //0x000055d0 movq $-56(%rbp), %rcx + 0x48, 0x8b, 0x09, //0x000055d4 movq (%rcx), %rcx + 0x8b, 0x14, 0x01, //0x000055d7 movl (%rcx,%rax), %edx + 0x81, 0xfa, 0x61, 0x6c, 0x73, 0x65, //0x000055da cmpl $1702063201, %edx + 0x0f, 0x85, 0xd3, 0x01, 0x00, 0x00, //0x000055e0 jne LBB19_78 + 0x48, 0x8d, 0x48, 0x04, //0x000055e6 leaq $4(%rax), %rcx + 0x49, 0x89, 0x08, //0x000055ea movq %rcx, (%r8) + 0x48, 0x85, 0xc0, //0x000055ed testq %rax, %rax + 0x0f, 0x8f, 0xaa, 0xfc, 0xff, 0xff, //0x000055f0 jg LBB19_39 + 0xe9, 0xf8, 0x00, 0x00, 0x00, //0x000055f6 jmp LBB19_62 + //0x000055fb LBB19_48 + 0x49, 0x8b, 0x00, //0x000055fb movq (%r8), %rax + 0x48, 0x8b, 0x4d, 0xc0, //0x000055fe movq $-64(%rbp), %rcx + 0x48, 0x8b, 0x09, //0x00005602 movq (%rcx), %rcx + 0x48, 0x8d, 0x51, 0xfd, //0x00005605 leaq $-3(%rcx), %rdx + 0x48, 0x39, 0xd0, //0x00005609 cmpq %rdx, %rax + 0x0f, 0x87, 0xd2, 0x00, 0x00, 0x00, //0x0000560c ja LBB19_61 + 0x48, 0x8b, 0x4d, 0xc8, //0x00005612 movq $-56(%rbp), %rcx + 0x48, 0x8b, 0x09, //0x00005616 movq (%rcx), %rcx + 0x81, 0x7c, 0x01, 0xff, 0x6e, 0x75, 0x6c, 0x6c, //0x00005619 cmpl $1819047278, $-1(%rcx,%rax) + 0x0f, 0x84, 0x66, 0xfc, 0xff, 0xff, //0x00005621 je LBB19_3 + 0xe9, 0xe8, 0x00, 0x00, 0x00, //0x00005627 jmp LBB19_69 + //0x0000562c LBB19_50 + 0x49, 0x8b, 0x00, //0x0000562c movq (%r8), %rax + 0x48, 0x8b, 0x4d, 0xc0, //0x0000562f movq $-64(%rbp), %rcx + 0x48, 0x8b, 0x09, //0x00005633 movq (%rcx), %rcx + 0x48, 0x8d, 0x51, 0xfd, //0x00005636 leaq $-3(%rcx), %rdx + 0x48, 0x39, 0xd0, //0x0000563a cmpq %rdx, %rax + 0x0f, 0x87, 0xa1, 0x00, 0x00, 0x00, //0x0000563d ja LBB19_61 + 0x48, 0x8b, 0x4d, 0xc8, //0x00005643 movq $-56(%rbp), %rcx + 0x48, 0x8b, 0x09, //0x00005647 movq (%rcx), %rcx + 0x81, 0x7c, 0x01, 0xff, 0x74, 0x72, 0x75, 0x65, //0x0000564a cmpl $1702195828, $-1(%rcx,%rax) + 0x0f, 0x84, 0x35, 0xfc, 0xff, 0xff, //0x00005652 je LBB19_3 + 0xe9, 0x06, 0x01, 0x00, 0x00, //0x00005658 jmp LBB19_73 + //0x0000565d LBB19_52 + 0x49, 0x8b, 0x45, 0x00, //0x0000565d movq (%r13), %rax + 0x48, 0x3d, 0xff, 0x0f, 0x00, 0x00, //0x00005661 cmpq $4095, %rax + 0x0f, 0x8f, 0x22, 0x00, 0x00, 0x00, //0x00005667 jg LBB19_58 + 0x48, 0x8d, 0x48, 0x01, //0x0000566d leaq $1(%rax), %rcx + 0x49, 0x89, 0x4d, 0x00, //0x00005671 movq %rcx, (%r13) + 0x49, 0xc7, 0x44, 0xc5, 0x08, 0x06, 0x00, 0x00, 0x00, //0x00005675 movq $6, $8(%r13,%rax,8) + 0xe9, 0x1d, 0xfc, 0xff, 0xff, //0x0000567e jmp LBB19_39 + //0x00005683 LBB19_2 + 0x49, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x00005683 movq $-1, %r14 + 0xe9, 0x43, 0x00, 0x00, 0x00, //0x0000568a jmp LBB19_65 + //0x0000568f LBB19_58 + 0x49, 0xc7, 0xc6, 0xf9, 0xff, 0xff, 0xff, //0x0000568f movq $-7, %r14 + 0xe9, 0x37, 0x00, 0x00, 0x00, //0x00005696 jmp LBB19_65 + //0x0000569b LBB19_55 + 0x49, 0x83, 0xfe, 0xff, //0x0000569b cmpq $-1, %r14 + 0x48, 0x8d, 0x45, 0xd0, //0x0000569f leaq $-48(%rbp), %rax + 0x48, 0x0f, 0x44, 0x45, 0xc0, //0x000056a3 cmoveq $-64(%rbp), %rax + 0x48, 0x8b, 0x00, //0x000056a8 movq (%rax), %rax + 0x48, 0x89, 0x03, //0x000056ab movq %rax, (%rbx) + 0xe9, 0x1f, 0x00, 0x00, 0x00, //0x000056ae jmp LBB19_65 + //0x000056b3 LBB19_56 + 0x49, 0xff, 0xcf, //0x000056b3 decq %r15 + 0x4d, 0x89, 0xfe, //0x000056b6 movq %r15, %r14 + 0xe9, 0x14, 0x00, 0x00, 0x00, //0x000056b9 jmp LBB19_65 + //0x000056be LBB19_57 + 0x48, 0x8b, 0x0b, //0x000056be movq (%rbx), %rcx + 0x48, 0x29, 0xc1, //0x000056c1 subq %rax, %rcx + 0x48, 0x83, 0xc1, 0xfe, //0x000056c4 addq $-2, %rcx + 0x48, 0x89, 0x0b, //0x000056c8 movq %rcx, (%rbx) + //0x000056cb LBB19_64 + 0x49, 0xc7, 0xc6, 0xfe, 0xff, 0xff, 0xff, //0x000056cb movq $-2, %r14 + //0x000056d2 LBB19_65 + 0x4c, 0x89, 0xf0, //0x000056d2 movq %r14, %rax + 0x48, 0x83, 0xc4, 0x28, //0x000056d5 addq $40, %rsp + 0x5b, //0x000056d9 popq %rbx + 0x41, 0x5c, //0x000056da popq %r12 + 0x41, 0x5d, //0x000056dc popq %r13 + 0x41, 0x5e, //0x000056de popq %r14 + 0x41, 0x5f, //0x000056e0 popq %r15 + 0x5d, //0x000056e2 popq %rbp + 0xc3, //0x000056e3 retq + //0x000056e4 LBB19_61 + 0x49, 0x89, 0x08, //0x000056e4 movq %rcx, (%r8) + 0x49, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x000056e7 movq $-1, %r14 + 0xe9, 0xdf, 0xff, 0xff, 0xff, //0x000056ee jmp LBB19_65 + //0x000056f3 LBB19_62 + 0x48, 0xff, 0xc8, //0x000056f3 decq %rax + 0x49, 0x89, 0xc6, //0x000056f6 movq %rax, %r14 + 0xe9, 0xd4, 0xff, 0xff, 0xff, //0x000056f9 jmp LBB19_65 + //0x000056fe LBB19_63 + 0x48, 0xf7, 0xd0, //0x000056fe notq %rax + 0x48, 0x01, 0xc1, //0x00005701 addq %rax, %rcx + 0x49, 0x89, 0x08, //0x00005704 movq %rcx, (%r8) + 0xe9, 0xbf, 0xff, 0xff, 0xff, //0x00005707 jmp LBB19_64 + //0x0000570c LBB19_68 + 0x49, 0xff, 0xce, //0x0000570c decq %r14 + 0xe9, 0xbe, 0xff, 0xff, 0xff, //0x0000570f jmp LBB19_65 + //0x00005714 LBB19_69 + 0x48, 0x8d, 0x50, 0xff, //0x00005714 leaq $-1(%rax), %rdx + 0x49, 0x89, 0x10, //0x00005718 movq %rdx, (%r8) + 0x49, 0xc7, 0xc6, 0xfe, 0xff, 0xff, 0xff, //0x0000571b movq $-2, %r14 + 0x80, 0x7c, 0x01, 0xff, 0x6e, //0x00005722 cmpb $110, $-1(%rcx,%rax) + 0x0f, 0x85, 0xa5, 0xff, 0xff, 0xff, //0x00005727 jne LBB19_65 + 0x49, 0x89, 0x00, //0x0000572d movq %rax, (%r8) + 0x80, 0x3c, 0x01, 0x75, //0x00005730 cmpb $117, (%rcx,%rax) + 0x0f, 0x85, 0x98, 0xff, 0xff, 0xff, //0x00005734 jne LBB19_65 + 0x48, 0x8d, 0x50, 0x01, //0x0000573a leaq $1(%rax), %rdx + 0x49, 0x89, 0x10, //0x0000573e movq %rdx, (%r8) + 0x80, 0x7c, 0x01, 0x01, 0x6c, //0x00005741 cmpb $108, $1(%rcx,%rax) + 0x0f, 0x85, 0x86, 0xff, 0xff, 0xff, //0x00005746 jne LBB19_65 + 0x48, 0x8d, 0x50, 0x02, //0x0000574c leaq $2(%rax), %rdx + 0x49, 0x89, 0x10, //0x00005750 movq %rdx, (%r8) + 0x80, 0x7c, 0x01, 0x02, 0x6c, //0x00005753 cmpb $108, $2(%rcx,%rax) + 0x0f, 0x85, 0x74, 0xff, 0xff, 0xff, //0x00005758 jne LBB19_65 + 0xe9, 0x4a, 0x00, 0x00, 0x00, //0x0000575e jmp LBB19_77 + //0x00005763 LBB19_73 + 0x48, 0x8d, 0x50, 0xff, //0x00005763 leaq $-1(%rax), %rdx + 0x49, 0x89, 0x10, //0x00005767 movq %rdx, (%r8) + 0x49, 0xc7, 0xc6, 0xfe, 0xff, 0xff, 0xff, //0x0000576a movq $-2, %r14 + 0x80, 0x7c, 0x01, 0xff, 0x74, //0x00005771 cmpb $116, $-1(%rcx,%rax) + 0x0f, 0x85, 0x56, 0xff, 0xff, 0xff, //0x00005776 jne LBB19_65 + 0x49, 0x89, 0x00, //0x0000577c movq %rax, (%r8) + 0x80, 0x3c, 0x01, 0x72, //0x0000577f cmpb $114, (%rcx,%rax) + 0x0f, 0x85, 0x49, 0xff, 0xff, 0xff, //0x00005783 jne LBB19_65 + 0x48, 0x8d, 0x50, 0x01, //0x00005789 leaq $1(%rax), %rdx + 0x49, 0x89, 0x10, //0x0000578d movq %rdx, (%r8) + 0x80, 0x7c, 0x01, 0x01, 0x75, //0x00005790 cmpb $117, $1(%rcx,%rax) + 0x0f, 0x85, 0x37, 0xff, 0xff, 0xff, //0x00005795 jne LBB19_65 + 0x48, 0x8d, 0x50, 0x02, //0x0000579b leaq $2(%rax), %rdx + 0x49, 0x89, 0x10, //0x0000579f movq %rdx, (%r8) + 0x80, 0x7c, 0x01, 0x02, 0x65, //0x000057a2 cmpb $101, $2(%rcx,%rax) + 0x0f, 0x85, 0x25, 0xff, 0xff, 0xff, //0x000057a7 jne LBB19_65 + //0x000057ad LBB19_77 + 0x48, 0x83, 0xc0, 0x03, //0x000057ad addq $3, %rax + 0x49, 0x89, 0x00, //0x000057b1 movq %rax, (%r8) + 0xe9, 0x19, 0xff, 0xff, 0xff, //0x000057b4 jmp LBB19_65 + //0x000057b9 LBB19_78 + 0x49, 0xc7, 0xc6, 0xfe, 0xff, 0xff, 0xff, //0x000057b9 movq $-2, %r14 + 0x80, 0xfa, 0x61, //0x000057c0 cmpb $97, %dl + 0x0f, 0x85, 0x09, 0xff, 0xff, 0xff, //0x000057c3 jne LBB19_65 + 0x48, 0x8d, 0x50, 0x01, //0x000057c9 leaq $1(%rax), %rdx + 0x49, 0x89, 0x10, //0x000057cd movq %rdx, (%r8) + 0x80, 0x7c, 0x01, 0x01, 0x6c, //0x000057d0 cmpb $108, $1(%rcx,%rax) + 0x0f, 0x85, 0xf7, 0xfe, 0xff, 0xff, //0x000057d5 jne LBB19_65 + 0x48, 0x8d, 0x50, 0x02, //0x000057db leaq $2(%rax), %rdx + 0x49, 0x89, 0x10, //0x000057df movq %rdx, (%r8) + 0x80, 0x7c, 0x01, 0x02, 0x73, //0x000057e2 cmpb $115, $2(%rcx,%rax) + 0x0f, 0x85, 0xe5, 0xfe, 0xff, 0xff, //0x000057e7 jne LBB19_65 + 0x48, 0x8d, 0x50, 0x03, //0x000057ed leaq $3(%rax), %rdx + 0x49, 0x89, 0x10, //0x000057f1 movq %rdx, (%r8) + 0x80, 0x7c, 0x01, 0x03, 0x65, //0x000057f4 cmpb $101, $3(%rcx,%rax) + 0x0f, 0x85, 0xd3, 0xfe, 0xff, 0xff, //0x000057f9 jne LBB19_65 + 0x48, 0x83, 0xc0, 0x04, //0x000057ff addq $4, %rax + 0x49, 0x89, 0x00, //0x00005803 movq %rax, (%r8) + 0xe9, 0xc7, 0xfe, 0xff, 0xff, //0x00005806 jmp LBB19_65 + 0x90, //0x0000580b .p2align 2, 0x90 + // // .set L19_0_set_9, LBB19_9-LJTI19_0 + // // .set L19_0_set_13, LBB19_13-LJTI19_0 + // // .set L19_0_set_16, LBB19_16-LJTI19_0 + // // .set L19_0_set_20, LBB19_20-LJTI19_0 + // // .set L19_0_set_22, LBB19_22-LJTI19_0 + // // .set L19_0_set_24, LBB19_24-LJTI19_0 + //0x0000580c LJTI19_0 + 0x01, 0xfb, 0xff, 0xff, //0x0000580c .long L19_0_set_9 + 0x3d, 0xfb, 0xff, 0xff, //0x00005810 .long L19_0_set_13 + 0x66, 0xfb, 0xff, 0xff, //0x00005814 .long L19_0_set_16 + 0xb8, 0xfb, 0xff, 0xff, //0x00005818 .long L19_0_set_20 + 0xce, 0xfb, 0xff, 0xff, //0x0000581c .long L19_0_set_22 + 0xeb, 0xfb, 0xff, 0xff, //0x00005820 .long L19_0_set_24 + // // .set L19_1_set_65, LBB19_65-LJTI19_1 + // // .set L19_1_set_64, LBB19_64-LJTI19_1 + // // .set L19_1_set_40, LBB19_40-LJTI19_1 + // // .set L19_1_set_41, LBB19_41-LJTI19_1 + // // .set L19_1_set_29, LBB19_29-LJTI19_1 + // // .set L19_1_set_43, LBB19_43-LJTI19_1 + // // .set L19_1_set_45, LBB19_45-LJTI19_1 + // // .set L19_1_set_48, LBB19_48-LJTI19_1 + // // .set L19_1_set_50, LBB19_50-LJTI19_1 + // // .set L19_1_set_52, LBB19_52-LJTI19_1 + //0x00005824 LJTI19_1 + 0xae, 0xfe, 0xff, 0xff, //0x00005824 .long L19_1_set_65 + 0xa7, 0xfe, 0xff, 0xff, //0x00005828 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x0000582c .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x00005830 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x00005834 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x00005838 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x0000583c .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x00005840 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x00005844 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x00005848 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x0000584c .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x00005850 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x00005854 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x00005858 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x0000585c .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x00005860 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x00005864 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x00005868 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x0000586c .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x00005870 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x00005874 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x00005878 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x0000587c .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x00005880 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x00005884 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x00005888 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x0000588c .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x00005890 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x00005894 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x00005898 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x0000589c .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x000058a0 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x000058a4 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x000058a8 .long L19_1_set_64 + 0x1f, 0xfd, 0xff, 0xff, //0x000058ac .long L19_1_set_40 + 0xa7, 0xfe, 0xff, 0xff, //0x000058b0 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x000058b4 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x000058b8 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x000058bc .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x000058c0 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x000058c4 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x000058c8 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x000058cc .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x000058d0 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x000058d4 .long L19_1_set_64 + 0x33, 0xfd, 0xff, 0xff, //0x000058d8 .long L19_1_set_41 + 0xa7, 0xfe, 0xff, 0xff, //0x000058dc .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x000058e0 .long L19_1_set_64 + 0x29, 0xfc, 0xff, 0xff, //0x000058e4 .long L19_1_set_29 + 0x29, 0xfc, 0xff, 0xff, //0x000058e8 .long L19_1_set_29 + 0x29, 0xfc, 0xff, 0xff, //0x000058ec .long L19_1_set_29 + 0x29, 0xfc, 0xff, 0xff, //0x000058f0 .long L19_1_set_29 + 0x29, 0xfc, 0xff, 0xff, //0x000058f4 .long L19_1_set_29 + 0x29, 0xfc, 0xff, 0xff, //0x000058f8 .long L19_1_set_29 + 0x29, 0xfc, 0xff, 0xff, //0x000058fc .long L19_1_set_29 + 0x29, 0xfc, 0xff, 0xff, //0x00005900 .long L19_1_set_29 + 0x29, 0xfc, 0xff, 0xff, //0x00005904 .long L19_1_set_29 + 0x29, 0xfc, 0xff, 0xff, //0x00005908 .long L19_1_set_29 + 0xa7, 0xfe, 0xff, 0xff, //0x0000590c .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x00005910 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x00005914 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x00005918 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x0000591c .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x00005920 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x00005924 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x00005928 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x0000592c .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x00005930 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x00005934 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x00005938 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x0000593c .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x00005940 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x00005944 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x00005948 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x0000594c .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x00005950 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x00005954 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x00005958 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x0000595c .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x00005960 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x00005964 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x00005968 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x0000596c .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x00005970 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x00005974 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x00005978 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x0000597c .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x00005980 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x00005984 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x00005988 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x0000598c .long L19_1_set_64 + 0x6f, 0xfd, 0xff, 0xff, //0x00005990 .long L19_1_set_43 + 0xa7, 0xfe, 0xff, 0xff, //0x00005994 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x00005998 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x0000599c .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x000059a0 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x000059a4 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x000059a8 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x000059ac .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x000059b0 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x000059b4 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x000059b8 .long L19_1_set_64 + 0x95, 0xfd, 0xff, 0xff, //0x000059bc .long L19_1_set_45 + 0xa7, 0xfe, 0xff, 0xff, //0x000059c0 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x000059c4 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x000059c8 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x000059cc .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x000059d0 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x000059d4 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x000059d8 .long L19_1_set_64 + 0xd7, 0xfd, 0xff, 0xff, //0x000059dc .long L19_1_set_48 + 0xa7, 0xfe, 0xff, 0xff, //0x000059e0 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x000059e4 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x000059e8 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x000059ec .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x000059f0 .long L19_1_set_64 + 0x08, 0xfe, 0xff, 0xff, //0x000059f4 .long L19_1_set_50 + 0xa7, 0xfe, 0xff, 0xff, //0x000059f8 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x000059fc .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x00005a00 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x00005a04 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x00005a08 .long L19_1_set_64 + 0xa7, 0xfe, 0xff, 0xff, //0x00005a0c .long L19_1_set_64 + 0x39, 0xfe, 0xff, 0xff, //0x00005a10 .long L19_1_set_52 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005a14 .p2align 4, 0x00 + //0x00005a20 LCPI20_0 + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005a20 .quad 1 + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005a28 .quad 6 + //0x00005a30 .p2align 4, 0x90 + //0x00005a30 _skip_object + 0x55, //0x00005a30 pushq %rbp + 0x48, 0x89, 0xe5, //0x00005a31 movq %rsp, %rbp + 0x48, 0x89, 0xd0, //0x00005a34 movq %rdx, %rax + 0x48, 0x89, 0xf2, //0x00005a37 movq %rsi, %rdx + 0x48, 0x89, 0xfe, //0x00005a3a movq %rdi, %rsi + 0xc5, 0xf8, 0x28, 0x05, 0xdb, 0xff, 0xff, 0xff, //0x00005a3d vmovaps $-37(%rip), %xmm0 /* LCPI20_0+0(%rip) */ + 0xc5, 0xf8, 0x11, 0x00, //0x00005a45 vmovups %xmm0, (%rax) + 0x48, 0x89, 0xc7, //0x00005a49 movq %rax, %rdi + 0x5d, //0x00005a4c popq %rbp + 0xe9, 0xfe, 0xf7, 0xff, 0xff, //0x00005a4d jmp _fsm_exec + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00005a52 .p2align 4, 0x90 + //0x00005a60 _skip_string + 0x55, //0x00005a60 pushq %rbp + 0x48, 0x89, 0xe5, //0x00005a61 movq %rsp, %rbp + 0x41, 0x57, //0x00005a64 pushq %r15 + 0x41, 0x56, //0x00005a66 pushq %r14 + 0x41, 0x54, //0x00005a68 pushq %r12 + 0x53, //0x00005a6a pushq %rbx + 0x48, 0x83, 0xec, 0x10, //0x00005a6b subq $16, %rsp + 0x48, 0x89, 0xd1, //0x00005a6f movq %rdx, %rcx + 0x49, 0x89, 0xf6, //0x00005a72 movq %rsi, %r14 + 0x49, 0x89, 0xff, //0x00005a75 movq %rdi, %r15 + 0x48, 0xc7, 0x45, 0xd8, 0xff, 0xff, 0xff, 0xff, //0x00005a78 movq $-1, $-40(%rbp) + 0x48, 0x8b, 0x1e, //0x00005a80 movq (%rsi), %rbx + 0x4c, 0x8d, 0x65, 0xd8, //0x00005a83 leaq $-40(%rbp), %r12 + 0x48, 0x89, 0xde, //0x00005a87 movq %rbx, %rsi + 0x4c, 0x89, 0xe2, //0x00005a8a movq %r12, %rdx + 0xe8, 0x6e, 0xea, 0xff, 0xff, //0x00005a8d callq _advance_string + 0x48, 0x85, 0xc0, //0x00005a92 testq %rax, %rax + 0x0f, 0x88, 0x0e, 0x00, 0x00, 0x00, //0x00005a95 js LBB21_1 + 0x48, 0xff, 0xcb, //0x00005a9b decq %rbx + 0x48, 0x89, 0xc1, //0x00005a9e movq %rax, %rcx + 0x48, 0x89, 0xd8, //0x00005aa1 movq %rbx, %rax + 0xe9, 0x10, 0x00, 0x00, 0x00, //0x00005aa4 jmp LBB21_3 + //0x00005aa9 LBB21_1 + 0x49, 0x83, 0xc7, 0x08, //0x00005aa9 addq $8, %r15 + 0x48, 0x83, 0xf8, 0xff, //0x00005aad cmpq $-1, %rax + 0x4d, 0x0f, 0x44, 0xe7, //0x00005ab1 cmoveq %r15, %r12 + 0x49, 0x8b, 0x0c, 0x24, //0x00005ab5 movq (%r12), %rcx + //0x00005ab9 LBB21_3 + 0x49, 0x89, 0x0e, //0x00005ab9 movq %rcx, (%r14) + 0x48, 0x83, 0xc4, 0x10, //0x00005abc addq $16, %rsp + 0x5b, //0x00005ac0 popq %rbx + 0x41, 0x5c, //0x00005ac1 popq %r12 + 0x41, 0x5e, //0x00005ac3 popq %r14 + 0x41, 0x5f, //0x00005ac5 popq %r15 + 0x5d, //0x00005ac7 popq %rbp + 0xc3, //0x00005ac8 retq + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00005ac9 .p2align 4, 0x90 + //0x00005ad0 _skip_negative + 0x55, //0x00005ad0 pushq %rbp + 0x48, 0x89, 0xe5, //0x00005ad1 movq %rsp, %rbp + 0x41, 0x56, //0x00005ad4 pushq %r14 + 0x53, //0x00005ad6 pushq %rbx + 0x49, 0x89, 0xf6, //0x00005ad7 movq %rsi, %r14 + 0x48, 0x8b, 0x1e, //0x00005ada movq (%rsi), %rbx + 0x48, 0x8b, 0x07, //0x00005add movq (%rdi), %rax + 0x48, 0x01, 0xd8, //0x00005ae0 addq %rbx, %rax + 0x48, 0x8b, 0x77, 0x08, //0x00005ae3 movq $8(%rdi), %rsi + 0x48, 0x29, 0xde, //0x00005ae7 subq %rbx, %rsi + 0x48, 0x89, 0xc7, //0x00005aea movq %rax, %rdi + 0xe8, 0x9e, 0x01, 0x00, 0x00, //0x00005aed callq _do_skip_number + 0x49, 0x8b, 0x0e, //0x00005af2 movq (%r14), %rcx + 0x48, 0x85, 0xc0, //0x00005af5 testq %rax, %rax + 0x0f, 0x88, 0x0e, 0x00, 0x00, 0x00, //0x00005af8 js LBB22_1 + 0x48, 0x01, 0xc1, //0x00005afe addq %rax, %rcx + 0x49, 0x89, 0x0e, //0x00005b01 movq %rcx, (%r14) + 0x48, 0xff, 0xcb, //0x00005b04 decq %rbx + 0xe9, 0x10, 0x00, 0x00, 0x00, //0x00005b07 jmp LBB22_3 + //0x00005b0c LBB22_1 + 0x48, 0xf7, 0xd0, //0x00005b0c notq %rax + 0x48, 0x01, 0xc1, //0x00005b0f addq %rax, %rcx + 0x49, 0x89, 0x0e, //0x00005b12 movq %rcx, (%r14) + 0x48, 0xc7, 0xc3, 0xfe, 0xff, 0xff, 0xff, //0x00005b15 movq $-2, %rbx + //0x00005b1c LBB22_3 + 0x48, 0x89, 0xd8, //0x00005b1c movq %rbx, %rax + 0x5b, //0x00005b1f popq %rbx + 0x41, 0x5e, //0x00005b20 popq %r14 + 0x5d, //0x00005b22 popq %rbp + 0xc3, //0x00005b23 retq + 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, //0x00005b24 .p2align 5, 0x00 + //0x00005b40 LCPI23_0 + 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, //0x00005b40 QUAD $0x2f2f2f2f2f2f2f2f; QUAD $0x2f2f2f2f2f2f2f2f // .space 16, '////////////////' + 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, //0x00005b50 QUAD $0x2f2f2f2f2f2f2f2f; QUAD $0x2f2f2f2f2f2f2f2f // .space 16, '////////////////' + //0x00005b60 LCPI23_1 + 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, //0x00005b60 QUAD $0x3a3a3a3a3a3a3a3a; QUAD $0x3a3a3a3a3a3a3a3a // .space 16, '::::::::::::::::' + 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, //0x00005b70 QUAD $0x3a3a3a3a3a3a3a3a; QUAD $0x3a3a3a3a3a3a3a3a // .space 16, '::::::::::::::::' + //0x00005b80 LCPI23_2 + 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, //0x00005b80 QUAD $0x2b2b2b2b2b2b2b2b; QUAD $0x2b2b2b2b2b2b2b2b // .space 16, '++++++++++++++++' + 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, //0x00005b90 QUAD $0x2b2b2b2b2b2b2b2b; QUAD $0x2b2b2b2b2b2b2b2b // .space 16, '++++++++++++++++' + //0x00005ba0 LCPI23_3 + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, //0x00005ba0 QUAD $0x2d2d2d2d2d2d2d2d; QUAD $0x2d2d2d2d2d2d2d2d // .space 16, '----------------' + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, //0x00005bb0 QUAD $0x2d2d2d2d2d2d2d2d; QUAD $0x2d2d2d2d2d2d2d2d // .space 16, '----------------' + //0x00005bc0 LCPI23_4 + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x00005bc0 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x00005bd0 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' + //0x00005be0 LCPI23_5 + 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, //0x00005be0 QUAD $0x2e2e2e2e2e2e2e2e; QUAD $0x2e2e2e2e2e2e2e2e // .space 16, '................' + 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, //0x00005bf0 QUAD $0x2e2e2e2e2e2e2e2e; QUAD $0x2e2e2e2e2e2e2e2e // .space 16, '................' + //0x00005c00 LCPI23_6 + 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, //0x00005c00 QUAD $0x6565656565656565; QUAD $0x6565656565656565 // .space 16, 'eeeeeeeeeeeeeeee' + 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, //0x00005c10 QUAD $0x6565656565656565; QUAD $0x6565656565656565 // .space 16, 'eeeeeeeeeeeeeeee' + //0x00005c20 .p2align 4, 0x00 + //0x00005c20 LCPI23_7 + 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, //0x00005c20 QUAD $0x2f2f2f2f2f2f2f2f; QUAD $0x2f2f2f2f2f2f2f2f // .space 16, '////////////////' + //0x00005c30 LCPI23_8 + 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, //0x00005c30 QUAD $0x3a3a3a3a3a3a3a3a; QUAD $0x3a3a3a3a3a3a3a3a // .space 16, '::::::::::::::::' + //0x00005c40 LCPI23_9 + 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, //0x00005c40 QUAD $0x2b2b2b2b2b2b2b2b; QUAD $0x2b2b2b2b2b2b2b2b // .space 16, '++++++++++++++++' + //0x00005c50 LCPI23_10 + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, //0x00005c50 QUAD $0x2d2d2d2d2d2d2d2d; QUAD $0x2d2d2d2d2d2d2d2d // .space 16, '----------------' + //0x00005c60 LCPI23_11 + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x00005c60 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' + //0x00005c70 LCPI23_12 + 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, //0x00005c70 QUAD $0x2e2e2e2e2e2e2e2e; QUAD $0x2e2e2e2e2e2e2e2e // .space 16, '................' + //0x00005c80 LCPI23_13 + 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, //0x00005c80 QUAD $0x6565656565656565; QUAD $0x6565656565656565 // .space 16, 'eeeeeeeeeeeeeeee' + //0x00005c90 .p2align 4, 0x90 + //0x00005c90 _do_skip_number + 0x55, //0x00005c90 pushq %rbp + 0x48, 0x89, 0xe5, //0x00005c91 movq %rsp, %rbp + 0x41, 0x57, //0x00005c94 pushq %r15 + 0x41, 0x56, //0x00005c96 pushq %r14 + 0x41, 0x55, //0x00005c98 pushq %r13 + 0x41, 0x54, //0x00005c9a pushq %r12 + 0x53, //0x00005c9c pushq %rbx + 0x48, 0x85, 0xf6, //0x00005c9d testq %rsi, %rsi + 0x0f, 0x84, 0xe4, 0x03, 0x00, 0x00, //0x00005ca0 je LBB23_53 + 0x80, 0x3f, 0x30, //0x00005ca6 cmpb $48, (%rdi) + 0x0f, 0x85, 0x33, 0x00, 0x00, 0x00, //0x00005ca9 jne LBB23_5 + 0xba, 0x01, 0x00, 0x00, 0x00, //0x00005caf movl $1, %edx + 0x48, 0x83, 0xfe, 0x01, //0x00005cb4 cmpq $1, %rsi + 0x0f, 0x84, 0xc9, 0x04, 0x00, 0x00, //0x00005cb8 je LBB23_73 + 0x8a, 0x47, 0x01, //0x00005cbe movb $1(%rdi), %al + 0x04, 0xd2, //0x00005cc1 addb $-46, %al + 0x3c, 0x37, //0x00005cc3 cmpb $55, %al + 0x0f, 0x87, 0xbc, 0x04, 0x00, 0x00, //0x00005cc5 ja LBB23_73 + 0x0f, 0xb6, 0xc0, //0x00005ccb movzbl %al, %eax + 0x48, 0xb9, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, //0x00005cce movabsq $36028797027352577, %rcx + 0x48, 0x0f, 0xa3, 0xc1, //0x00005cd8 btq %rax, %rcx + 0x0f, 0x83, 0xa5, 0x04, 0x00, 0x00, //0x00005cdc jae LBB23_73 + //0x00005ce2 LBB23_5 + 0x48, 0x83, 0xfe, 0x20, //0x00005ce2 cmpq $32, %rsi + 0x0f, 0x82, 0xcc, 0x04, 0x00, 0x00, //0x00005ce6 jb LBB23_76 + 0x4c, 0x8d, 0x5e, 0xe0, //0x00005cec leaq $-32(%rsi), %r11 + 0x4c, 0x89, 0xd8, //0x00005cf0 movq %r11, %rax + 0x48, 0x83, 0xe0, 0xe0, //0x00005cf3 andq $-32, %rax + 0x4c, 0x8d, 0x54, 0x38, 0x20, //0x00005cf7 leaq $32(%rax,%rdi), %r10 + 0x41, 0x83, 0xe3, 0x1f, //0x00005cfc andl $31, %r11d + 0x49, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00005d00 movq $-1, %r9 + 0xc5, 0xfd, 0x6f, 0x05, 0x31, 0xfe, 0xff, 0xff, //0x00005d07 vmovdqa $-463(%rip), %ymm0 /* LCPI23_0+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x0d, 0x49, 0xfe, 0xff, 0xff, //0x00005d0f vmovdqa $-439(%rip), %ymm1 /* LCPI23_1+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x15, 0x61, 0xfe, 0xff, 0xff, //0x00005d17 vmovdqa $-415(%rip), %ymm2 /* LCPI23_2+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x1d, 0x79, 0xfe, 0xff, 0xff, //0x00005d1f vmovdqa $-391(%rip), %ymm3 /* LCPI23_3+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x25, 0x91, 0xfe, 0xff, 0xff, //0x00005d27 vmovdqa $-367(%rip), %ymm4 /* LCPI23_4+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x2d, 0xa9, 0xfe, 0xff, 0xff, //0x00005d2f vmovdqa $-343(%rip), %ymm5 /* LCPI23_5+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x35, 0xc1, 0xfe, 0xff, 0xff, //0x00005d37 vmovdqa $-319(%rip), %ymm6 /* LCPI23_6+0(%rip) */ + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00005d3f movq $-1, %rax + 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00005d46 movq $-1, %r8 + 0x49, 0x89, 0xfe, //0x00005d4d movq %rdi, %r14 + //0x00005d50 .p2align 4, 0x90 + //0x00005d50 LBB23_7 + 0xc4, 0xc1, 0x7e, 0x6f, 0x3e, //0x00005d50 vmovdqu (%r14), %ymm7 + 0xc5, 0x45, 0x64, 0xc0, //0x00005d55 vpcmpgtb %ymm0, %ymm7, %ymm8 + 0xc5, 0x75, 0x64, 0xcf, //0x00005d59 vpcmpgtb %ymm7, %ymm1, %ymm9 + 0xc4, 0x41, 0x3d, 0xdb, 0xc1, //0x00005d5d vpand %ymm9, %ymm8, %ymm8 + 0xc5, 0x45, 0x74, 0xca, //0x00005d62 vpcmpeqb %ymm2, %ymm7, %ymm9 + 0xc5, 0x45, 0x74, 0xd3, //0x00005d66 vpcmpeqb %ymm3, %ymm7, %ymm10 + 0xc4, 0x41, 0x2d, 0xeb, 0xc9, //0x00005d6a vpor %ymm9, %ymm10, %ymm9 + 0xc5, 0x45, 0xeb, 0xd4, //0x00005d6f vpor %ymm4, %ymm7, %ymm10 + 0xc5, 0x2d, 0x74, 0xd6, //0x00005d73 vpcmpeqb %ymm6, %ymm10, %ymm10 + 0xc5, 0xc5, 0x74, 0xfd, //0x00005d77 vpcmpeqb %ymm5, %ymm7, %ymm7 + 0xc5, 0xfd, 0xd7, 0xd7, //0x00005d7b vpmovmskb %ymm7, %edx + 0xc4, 0x41, 0x7d, 0xd7, 0xe2, //0x00005d7f vpmovmskb %ymm10, %r12d + 0xc4, 0x41, 0x7d, 0xd7, 0xf9, //0x00005d84 vpmovmskb %ymm9, %r15d + 0xc5, 0xad, 0xeb, 0xff, //0x00005d89 vpor %ymm7, %ymm10, %ymm7 + 0xc4, 0x41, 0x35, 0xeb, 0xc0, //0x00005d8d vpor %ymm8, %ymm9, %ymm8 + 0xc5, 0xbd, 0xeb, 0xff, //0x00005d92 vpor %ymm7, %ymm8, %ymm7 + 0xc5, 0xfd, 0xd7, 0xcf, //0x00005d96 vpmovmskb %ymm7, %ecx + 0x48, 0xf7, 0xd1, //0x00005d9a notq %rcx + 0x48, 0x0f, 0xbc, 0xc9, //0x00005d9d bsfq %rcx, %rcx + 0x83, 0xf9, 0x20, //0x00005da1 cmpl $32, %ecx + 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x00005da4 je LBB23_9 + 0xbb, 0xff, 0xff, 0xff, 0xff, //0x00005daa movl $-1, %ebx + 0xd3, 0xe3, //0x00005daf shll %cl, %ebx + 0xf7, 0xd3, //0x00005db1 notl %ebx + 0x21, 0xda, //0x00005db3 andl %ebx, %edx + 0x41, 0x21, 0xdc, //0x00005db5 andl %ebx, %r12d + 0x44, 0x21, 0xfb, //0x00005db8 andl %r15d, %ebx + 0x41, 0x89, 0xdf, //0x00005dbb movl %ebx, %r15d + //0x00005dbe LBB23_9 + 0x8d, 0x5a, 0xff, //0x00005dbe leal $-1(%rdx), %ebx + 0x21, 0xd3, //0x00005dc1 andl %edx, %ebx + 0x0f, 0x85, 0xa4, 0x03, 0x00, 0x00, //0x00005dc3 jne LBB23_70 + 0x41, 0x8d, 0x5c, 0x24, 0xff, //0x00005dc9 leal $-1(%r12), %ebx + 0x44, 0x21, 0xe3, //0x00005dce andl %r12d, %ebx + 0x0f, 0x85, 0x96, 0x03, 0x00, 0x00, //0x00005dd1 jne LBB23_70 + 0x41, 0x8d, 0x5f, 0xff, //0x00005dd7 leal $-1(%r15), %ebx + 0x44, 0x21, 0xfb, //0x00005ddb andl %r15d, %ebx + 0x0f, 0x85, 0x89, 0x03, 0x00, 0x00, //0x00005dde jne LBB23_70 + 0x85, 0xd2, //0x00005de4 testl %edx, %edx + 0x0f, 0x84, 0x19, 0x00, 0x00, 0x00, //0x00005de6 je LBB23_15 + 0x4c, 0x89, 0xf3, //0x00005dec movq %r14, %rbx + 0x48, 0x29, 0xfb, //0x00005def subq %rdi, %rbx + 0x0f, 0xbc, 0xd2, //0x00005df2 bsfl %edx, %edx + 0x48, 0x01, 0xda, //0x00005df5 addq %rbx, %rdx + 0x49, 0x83, 0xf8, 0xff, //0x00005df8 cmpq $-1, %r8 + 0x0f, 0x85, 0x82, 0x03, 0x00, 0x00, //0x00005dfc jne LBB23_72 + 0x49, 0x89, 0xd0, //0x00005e02 movq %rdx, %r8 + //0x00005e05 LBB23_15 + 0x45, 0x85, 0xe4, //0x00005e05 testl %r12d, %r12d + 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x00005e08 je LBB23_18 + 0x4c, 0x89, 0xf3, //0x00005e0e movq %r14, %rbx + 0x48, 0x29, 0xfb, //0x00005e11 subq %rdi, %rbx + 0x41, 0x0f, 0xbc, 0xd4, //0x00005e14 bsfl %r12d, %edx + 0x48, 0x01, 0xda, //0x00005e18 addq %rbx, %rdx + 0x48, 0x83, 0xf8, 0xff, //0x00005e1b cmpq $-1, %rax + 0x0f, 0x85, 0x5f, 0x03, 0x00, 0x00, //0x00005e1f jne LBB23_72 + 0x48, 0x89, 0xd0, //0x00005e25 movq %rdx, %rax + //0x00005e28 LBB23_18 + 0x45, 0x85, 0xff, //0x00005e28 testl %r15d, %r15d + 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x00005e2b je LBB23_21 + 0x4c, 0x89, 0xf3, //0x00005e31 movq %r14, %rbx + 0x48, 0x29, 0xfb, //0x00005e34 subq %rdi, %rbx + 0x41, 0x0f, 0xbc, 0xd7, //0x00005e37 bsfl %r15d, %edx + 0x48, 0x01, 0xda, //0x00005e3b addq %rbx, %rdx + 0x49, 0x83, 0xf9, 0xff, //0x00005e3e cmpq $-1, %r9 + 0x0f, 0x85, 0x3c, 0x03, 0x00, 0x00, //0x00005e42 jne LBB23_72 + 0x49, 0x89, 0xd1, //0x00005e48 movq %rdx, %r9 + //0x00005e4b LBB23_21 + 0x83, 0xf9, 0x20, //0x00005e4b cmpl $32, %ecx + 0x0f, 0x85, 0x42, 0x02, 0x00, 0x00, //0x00005e4e jne LBB23_54 + 0x49, 0x83, 0xc6, 0x20, //0x00005e54 addq $32, %r14 + 0x48, 0x83, 0xc6, 0xe0, //0x00005e58 addq $-32, %rsi + 0x48, 0x83, 0xfe, 0x1f, //0x00005e5c cmpq $31, %rsi + 0x0f, 0x87, 0xea, 0xfe, 0xff, 0xff, //0x00005e60 ja LBB23_7 + 0xc5, 0xf8, 0x77, //0x00005e66 vzeroupper + 0x4c, 0x89, 0xde, //0x00005e69 movq %r11, %rsi + 0x48, 0x83, 0xfe, 0x10, //0x00005e6c cmpq $16, %rsi + 0x0f, 0x82, 0x72, 0x01, 0x00, 0x00, //0x00005e70 jb LBB23_42 + //0x00005e76 LBB23_24 + 0x4c, 0x8d, 0x76, 0xf0, //0x00005e76 leaq $-16(%rsi), %r14 + 0x4c, 0x89, 0xf1, //0x00005e7a movq %r14, %rcx + 0x48, 0x83, 0xe1, 0xf0, //0x00005e7d andq $-16, %rcx + 0x4e, 0x8d, 0x5c, 0x11, 0x10, //0x00005e81 leaq $16(%rcx,%r10), %r11 + 0x41, 0x83, 0xe6, 0x0f, //0x00005e86 andl $15, %r14d + 0xc5, 0x79, 0x6f, 0x05, 0x8e, 0xfd, 0xff, 0xff, //0x00005e8a vmovdqa $-626(%rip), %xmm8 /* LCPI23_7+0(%rip) */ + 0xc5, 0x79, 0x6f, 0x0d, 0x96, 0xfd, 0xff, 0xff, //0x00005e92 vmovdqa $-618(%rip), %xmm9 /* LCPI23_8+0(%rip) */ + 0xc5, 0x79, 0x6f, 0x15, 0x9e, 0xfd, 0xff, 0xff, //0x00005e9a vmovdqa $-610(%rip), %xmm10 /* LCPI23_9+0(%rip) */ + 0xc5, 0x79, 0x6f, 0x1d, 0xa6, 0xfd, 0xff, 0xff, //0x00005ea2 vmovdqa $-602(%rip), %xmm11 /* LCPI23_10+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x25, 0xae, 0xfd, 0xff, 0xff, //0x00005eaa vmovdqa $-594(%rip), %xmm4 /* LCPI23_11+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x2d, 0xb6, 0xfd, 0xff, 0xff, //0x00005eb2 vmovdqa $-586(%rip), %xmm5 /* LCPI23_12+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x35, 0xbe, 0xfd, 0xff, 0xff, //0x00005eba vmovdqa $-578(%rip), %xmm6 /* LCPI23_13+0(%rip) */ + 0x41, 0xbf, 0xff, 0xff, 0xff, 0xff, //0x00005ec2 movl $4294967295, %r15d + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00005ec8 .p2align 4, 0x90 + //0x00005ed0 LBB23_25 + 0xc4, 0xc1, 0x7a, 0x6f, 0x3a, //0x00005ed0 vmovdqu (%r10), %xmm7 + 0xc4, 0xc1, 0x41, 0x64, 0xc0, //0x00005ed5 vpcmpgtb %xmm8, %xmm7, %xmm0 + 0xc5, 0xb1, 0x64, 0xcf, //0x00005eda vpcmpgtb %xmm7, %xmm9, %xmm1 + 0xc5, 0xf9, 0xdb, 0xc1, //0x00005ede vpand %xmm1, %xmm0, %xmm0 + 0xc5, 0xa9, 0x74, 0xcf, //0x00005ee2 vpcmpeqb %xmm7, %xmm10, %xmm1 + 0xc5, 0xa1, 0x74, 0xd7, //0x00005ee6 vpcmpeqb %xmm7, %xmm11, %xmm2 + 0xc5, 0xe9, 0xeb, 0xc9, //0x00005eea vpor %xmm1, %xmm2, %xmm1 + 0xc5, 0xc1, 0xeb, 0xd4, //0x00005eee vpor %xmm4, %xmm7, %xmm2 + 0xc5, 0xe9, 0x74, 0xd6, //0x00005ef2 vpcmpeqb %xmm6, %xmm2, %xmm2 + 0xc5, 0xc1, 0x74, 0xfd, //0x00005ef6 vpcmpeqb %xmm5, %xmm7, %xmm7 + 0xc5, 0xe9, 0xeb, 0xdf, //0x00005efa vpor %xmm7, %xmm2, %xmm3 + 0xc5, 0xf1, 0xeb, 0xc0, //0x00005efe vpor %xmm0, %xmm1, %xmm0 + 0xc5, 0xe1, 0xeb, 0xc0, //0x00005f02 vpor %xmm0, %xmm3, %xmm0 + 0xc5, 0xf9, 0xd7, 0xd7, //0x00005f06 vpmovmskb %xmm7, %edx + 0xc5, 0x79, 0xd7, 0xea, //0x00005f0a vpmovmskb %xmm2, %r13d + 0xc5, 0x79, 0xd7, 0xe1, //0x00005f0e vpmovmskb %xmm1, %r12d + 0xc5, 0xf9, 0xd7, 0xc8, //0x00005f12 vpmovmskb %xmm0, %ecx + 0x4c, 0x31, 0xf9, //0x00005f16 xorq %r15, %rcx + 0x48, 0x0f, 0xbc, 0xc9, //0x00005f19 bsfq %rcx, %rcx + 0x83, 0xf9, 0x10, //0x00005f1d cmpl $16, %ecx + 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x00005f20 je LBB23_27 + 0xbb, 0xff, 0xff, 0xff, 0xff, //0x00005f26 movl $-1, %ebx + 0xd3, 0xe3, //0x00005f2b shll %cl, %ebx + 0xf7, 0xd3, //0x00005f2d notl %ebx + 0x21, 0xda, //0x00005f2f andl %ebx, %edx + 0x41, 0x21, 0xdd, //0x00005f31 andl %ebx, %r13d + 0x44, 0x21, 0xe3, //0x00005f34 andl %r12d, %ebx + 0x41, 0x89, 0xdc, //0x00005f37 movl %ebx, %r12d + //0x00005f3a LBB23_27 + 0x8d, 0x5a, 0xff, //0x00005f3a leal $-1(%rdx), %ebx + 0x21, 0xd3, //0x00005f3d andl %edx, %ebx + 0x0f, 0x85, 0x36, 0x02, 0x00, 0x00, //0x00005f3f jne LBB23_71 + 0x41, 0x8d, 0x5d, 0xff, //0x00005f45 leal $-1(%r13), %ebx + 0x44, 0x21, 0xeb, //0x00005f49 andl %r13d, %ebx + 0x0f, 0x85, 0x29, 0x02, 0x00, 0x00, //0x00005f4c jne LBB23_71 + 0x41, 0x8d, 0x5c, 0x24, 0xff, //0x00005f52 leal $-1(%r12), %ebx + 0x44, 0x21, 0xe3, //0x00005f57 andl %r12d, %ebx + 0x0f, 0x85, 0x1b, 0x02, 0x00, 0x00, //0x00005f5a jne LBB23_71 + 0x85, 0xd2, //0x00005f60 testl %edx, %edx + 0x0f, 0x84, 0x19, 0x00, 0x00, 0x00, //0x00005f62 je LBB23_33 + 0x4c, 0x89, 0xd3, //0x00005f68 movq %r10, %rbx + 0x48, 0x29, 0xfb, //0x00005f6b subq %rdi, %rbx + 0x0f, 0xbc, 0xd2, //0x00005f6e bsfl %edx, %edx + 0x48, 0x01, 0xda, //0x00005f71 addq %rbx, %rdx + 0x49, 0x83, 0xf8, 0xff, //0x00005f74 cmpq $-1, %r8 + 0x0f, 0x85, 0x06, 0x02, 0x00, 0x00, //0x00005f78 jne LBB23_72 + 0x49, 0x89, 0xd0, //0x00005f7e movq %rdx, %r8 + //0x00005f81 LBB23_33 + 0x45, 0x85, 0xed, //0x00005f81 testl %r13d, %r13d + 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x00005f84 je LBB23_36 + 0x4c, 0x89, 0xd3, //0x00005f8a movq %r10, %rbx + 0x48, 0x29, 0xfb, //0x00005f8d subq %rdi, %rbx + 0x41, 0x0f, 0xbc, 0xd5, //0x00005f90 bsfl %r13d, %edx + 0x48, 0x01, 0xda, //0x00005f94 addq %rbx, %rdx + 0x48, 0x83, 0xf8, 0xff, //0x00005f97 cmpq $-1, %rax + 0x0f, 0x85, 0xe3, 0x01, 0x00, 0x00, //0x00005f9b jne LBB23_72 + 0x48, 0x89, 0xd0, //0x00005fa1 movq %rdx, %rax + //0x00005fa4 LBB23_36 + 0x45, 0x85, 0xe4, //0x00005fa4 testl %r12d, %r12d + 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x00005fa7 je LBB23_39 + 0x4c, 0x89, 0xd3, //0x00005fad movq %r10, %rbx + 0x48, 0x29, 0xfb, //0x00005fb0 subq %rdi, %rbx + 0x41, 0x0f, 0xbc, 0xd4, //0x00005fb3 bsfl %r12d, %edx + 0x48, 0x01, 0xda, //0x00005fb7 addq %rbx, %rdx + 0x49, 0x83, 0xf9, 0xff, //0x00005fba cmpq $-1, %r9 + 0x0f, 0x85, 0xc0, 0x01, 0x00, 0x00, //0x00005fbe jne LBB23_72 + 0x49, 0x89, 0xd1, //0x00005fc4 movq %rdx, %r9 + //0x00005fc7 LBB23_39 + 0x83, 0xf9, 0x10, //0x00005fc7 cmpl $16, %ecx + 0x0f, 0x85, 0xe4, 0x00, 0x00, 0x00, //0x00005fca jne LBB23_55 + 0x49, 0x83, 0xc2, 0x10, //0x00005fd0 addq $16, %r10 + 0x48, 0x83, 0xc6, 0xf0, //0x00005fd4 addq $-16, %rsi + 0x48, 0x83, 0xfe, 0x0f, //0x00005fd8 cmpq $15, %rsi + 0x0f, 0x87, 0xee, 0xfe, 0xff, 0xff, //0x00005fdc ja LBB23_25 + 0x4c, 0x89, 0xf6, //0x00005fe2 movq %r14, %rsi + 0x4d, 0x89, 0xda, //0x00005fe5 movq %r11, %r10 + //0x00005fe8 LBB23_42 + 0x48, 0x85, 0xf6, //0x00005fe8 testq %rsi, %rsi + 0x0f, 0x84, 0xc6, 0x00, 0x00, 0x00, //0x00005feb je LBB23_56 + 0x4d, 0x8d, 0x1c, 0x32, //0x00005ff1 leaq (%r10,%rsi), %r11 + 0x48, 0x8d, 0x1d, 0xe4, 0x01, 0x00, 0x00, //0x00005ff5 leaq $484(%rip), %rbx /* LJTI23_0+0(%rip) */ + 0xe9, 0x1b, 0x00, 0x00, 0x00, //0x00005ffc jmp LBB23_45 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00006001 .p2align 4, 0x90 + //0x00006010 LBB23_44 + 0x49, 0x89, 0xca, //0x00006010 movq %rcx, %r10 + 0x48, 0xff, 0xce, //0x00006013 decq %rsi + 0x0f, 0x84, 0x7c, 0x01, 0x00, 0x00, //0x00006016 je LBB23_75 + //0x0000601c LBB23_45 + 0x41, 0x0f, 0xbe, 0x12, //0x0000601c movsbl (%r10), %edx + 0x83, 0xc2, 0xd5, //0x00006020 addl $-43, %edx + 0x83, 0xfa, 0x3a, //0x00006023 cmpl $58, %edx + 0x0f, 0x87, 0x8b, 0x00, 0x00, 0x00, //0x00006026 ja LBB23_56 + 0x49, 0x8d, 0x4a, 0x01, //0x0000602c leaq $1(%r10), %rcx + 0x48, 0x63, 0x14, 0x93, //0x00006030 movslq (%rbx,%rdx,4), %rdx + 0x48, 0x01, 0xda, //0x00006034 addq %rbx, %rdx + 0xff, 0xe2, //0x00006037 jmpq *%rdx + //0x00006039 LBB23_47 + 0x48, 0x89, 0xca, //0x00006039 movq %rcx, %rdx + 0x48, 0x29, 0xfa, //0x0000603c subq %rdi, %rdx + 0x49, 0x83, 0xf9, 0xff, //0x0000603f cmpq $-1, %r9 + 0x0f, 0x85, 0x67, 0x01, 0x00, 0x00, //0x00006043 jne LBB23_79 + 0x48, 0xff, 0xca, //0x00006049 decq %rdx + 0x49, 0x89, 0xd1, //0x0000604c movq %rdx, %r9 + 0xe9, 0xbc, 0xff, 0xff, 0xff, //0x0000604f jmp LBB23_44 + //0x00006054 LBB23_49 + 0x48, 0x89, 0xca, //0x00006054 movq %rcx, %rdx + 0x48, 0x29, 0xfa, //0x00006057 subq %rdi, %rdx + 0x48, 0x83, 0xf8, 0xff, //0x0000605a cmpq $-1, %rax + 0x0f, 0x85, 0x4c, 0x01, 0x00, 0x00, //0x0000605e jne LBB23_79 + 0x48, 0xff, 0xca, //0x00006064 decq %rdx + 0x48, 0x89, 0xd0, //0x00006067 movq %rdx, %rax + 0xe9, 0xa1, 0xff, 0xff, 0xff, //0x0000606a jmp LBB23_44 + //0x0000606f LBB23_51 + 0x48, 0x89, 0xca, //0x0000606f movq %rcx, %rdx + 0x48, 0x29, 0xfa, //0x00006072 subq %rdi, %rdx + 0x49, 0x83, 0xf8, 0xff, //0x00006075 cmpq $-1, %r8 + 0x0f, 0x85, 0x31, 0x01, 0x00, 0x00, //0x00006079 jne LBB23_79 + 0x48, 0xff, 0xca, //0x0000607f decq %rdx + 0x49, 0x89, 0xd0, //0x00006082 movq %rdx, %r8 + 0xe9, 0x86, 0xff, 0xff, 0xff, //0x00006085 jmp LBB23_44 + //0x0000608a LBB23_53 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x0000608a movq $-1, %rax + 0xe9, 0xf4, 0x00, 0x00, 0x00, //0x00006091 jmp LBB23_74 + //0x00006096 LBB23_54 + 0x49, 0x01, 0xce, //0x00006096 addq %rcx, %r14 + 0xc5, 0xf8, 0x77, //0x00006099 vzeroupper + 0x4d, 0x89, 0xf2, //0x0000609c movq %r14, %r10 + 0x48, 0xc7, 0xc2, 0xff, 0xff, 0xff, 0xff, //0x0000609f movq $-1, %rdx + 0x48, 0x85, 0xc0, //0x000060a6 testq %rax, %rax + 0x0f, 0x85, 0x18, 0x00, 0x00, 0x00, //0x000060a9 jne LBB23_57 + 0xe9, 0xd3, 0x00, 0x00, 0x00, //0x000060af jmp LBB23_73 + //0x000060b4 LBB23_55 + 0x49, 0x01, 0xca, //0x000060b4 addq %rcx, %r10 + //0x000060b7 LBB23_56 + 0x48, 0xc7, 0xc2, 0xff, 0xff, 0xff, 0xff, //0x000060b7 movq $-1, %rdx + 0x48, 0x85, 0xc0, //0x000060be testq %rax, %rax + 0x0f, 0x84, 0xc0, 0x00, 0x00, 0x00, //0x000060c1 je LBB23_73 + //0x000060c7 LBB23_57 + 0x4d, 0x85, 0xc9, //0x000060c7 testq %r9, %r9 + 0x0f, 0x84, 0xb7, 0x00, 0x00, 0x00, //0x000060ca je LBB23_73 + 0x4d, 0x85, 0xc0, //0x000060d0 testq %r8, %r8 + 0x0f, 0x84, 0xae, 0x00, 0x00, 0x00, //0x000060d3 je LBB23_73 + 0x49, 0x29, 0xfa, //0x000060d9 subq %rdi, %r10 + 0x49, 0x8d, 0x4a, 0xff, //0x000060dc leaq $-1(%r10), %rcx + 0x48, 0x39, 0xc8, //0x000060e0 cmpq %rcx, %rax + 0x0f, 0x84, 0x36, 0x00, 0x00, 0x00, //0x000060e3 je LBB23_65 + 0x49, 0x39, 0xc8, //0x000060e9 cmpq %rcx, %r8 + 0x0f, 0x84, 0x2d, 0x00, 0x00, 0x00, //0x000060ec je LBB23_65 + 0x49, 0x39, 0xc9, //0x000060f2 cmpq %rcx, %r9 + 0x0f, 0x84, 0x24, 0x00, 0x00, 0x00, //0x000060f5 je LBB23_65 + 0x4d, 0x85, 0xc9, //0x000060fb testq %r9, %r9 + 0x0f, 0x8e, 0x29, 0x00, 0x00, 0x00, //0x000060fe jle LBB23_66 + 0x49, 0x8d, 0x49, 0xff, //0x00006104 leaq $-1(%r9), %rcx + 0x48, 0x39, 0xc8, //0x00006108 cmpq %rcx, %rax + 0x0f, 0x84, 0x1c, 0x00, 0x00, 0x00, //0x0000610b je LBB23_66 + 0x49, 0xf7, 0xd1, //0x00006111 notq %r9 + 0x4c, 0x89, 0xca, //0x00006114 movq %r9, %rdx + 0x4c, 0x89, 0xc8, //0x00006117 movq %r9, %rax + 0xe9, 0x6b, 0x00, 0x00, 0x00, //0x0000611a jmp LBB23_74 + //0x0000611f LBB23_65 + 0x49, 0xf7, 0xda, //0x0000611f negq %r10 + 0x4c, 0x89, 0xd2, //0x00006122 movq %r10, %rdx + 0x4c, 0x89, 0xd0, //0x00006125 movq %r10, %rax + 0xe9, 0x5d, 0x00, 0x00, 0x00, //0x00006128 jmp LBB23_74 + //0x0000612d LBB23_66 + 0x4c, 0x89, 0xc1, //0x0000612d movq %r8, %rcx + 0x48, 0x09, 0xc1, //0x00006130 orq %rax, %rcx + 0x49, 0x39, 0xc0, //0x00006133 cmpq %rax, %r8 + 0x0f, 0x8c, 0x17, 0x00, 0x00, 0x00, //0x00006136 jl LBB23_69 + 0x48, 0x85, 0xc9, //0x0000613c testq %rcx, %rcx + 0x0f, 0x88, 0x0e, 0x00, 0x00, 0x00, //0x0000613f js LBB23_69 + 0x49, 0xf7, 0xd0, //0x00006145 notq %r8 + 0x4c, 0x89, 0xc2, //0x00006148 movq %r8, %rdx + 0x4c, 0x89, 0xc0, //0x0000614b movq %r8, %rax + 0xe9, 0x37, 0x00, 0x00, 0x00, //0x0000614e jmp LBB23_74 + //0x00006153 LBB23_69 + 0x48, 0x85, 0xc9, //0x00006153 testq %rcx, %rcx + 0x48, 0x8d, 0x48, 0xff, //0x00006156 leaq $-1(%rax), %rcx + 0x48, 0xf7, 0xd0, //0x0000615a notq %rax + 0x49, 0x0f, 0x48, 0xc2, //0x0000615d cmovsq %r10, %rax + 0x49, 0x39, 0xc8, //0x00006161 cmpq %rcx, %r8 + 0x49, 0x0f, 0x45, 0xc2, //0x00006164 cmovneq %r10, %rax + 0xe9, 0x1d, 0x00, 0x00, 0x00, //0x00006168 jmp LBB23_74 + //0x0000616d LBB23_70 + 0x49, 0x29, 0xfe, //0x0000616d subq %rdi, %r14 + 0x0f, 0xbc, 0xd3, //0x00006170 bsfl %ebx, %edx + 0x4c, 0x01, 0xf2, //0x00006173 addq %r14, %rdx + 0xe9, 0x09, 0x00, 0x00, 0x00, //0x00006176 jmp LBB23_72 + //0x0000617b LBB23_71 + 0x49, 0x29, 0xfa, //0x0000617b subq %rdi, %r10 + 0x0f, 0xbc, 0xd3, //0x0000617e bsfl %ebx, %edx + 0x4c, 0x01, 0xd2, //0x00006181 addq %r10, %rdx + //0x00006184 LBB23_72 + 0x48, 0xf7, 0xd2, //0x00006184 notq %rdx + //0x00006187 LBB23_73 + 0x48, 0x89, 0xd0, //0x00006187 movq %rdx, %rax + //0x0000618a LBB23_74 + 0x5b, //0x0000618a popq %rbx + 0x41, 0x5c, //0x0000618b popq %r12 + 0x41, 0x5d, //0x0000618d popq %r13 + 0x41, 0x5e, //0x0000618f popq %r14 + 0x41, 0x5f, //0x00006191 popq %r15 + 0x5d, //0x00006193 popq %rbp + 0xc5, 0xf8, 0x77, //0x00006194 vzeroupper + 0xc3, //0x00006197 retq + //0x00006198 LBB23_75 + 0x4d, 0x89, 0xda, //0x00006198 movq %r11, %r10 + 0x48, 0xc7, 0xc2, 0xff, 0xff, 0xff, 0xff, //0x0000619b movq $-1, %rdx + 0x48, 0x85, 0xc0, //0x000061a2 testq %rax, %rax + 0x0f, 0x85, 0x1c, 0xff, 0xff, 0xff, //0x000061a5 jne LBB23_57 + 0xe9, 0xd7, 0xff, 0xff, 0xff, //0x000061ab jmp LBB23_73 + //0x000061b0 LBB23_79 + 0x48, 0xf7, 0xda, //0x000061b0 negq %rdx + 0xe9, 0xcf, 0xff, 0xff, 0xff, //0x000061b3 jmp LBB23_73 + //0x000061b8 LBB23_76 + 0x49, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x000061b8 movq $-1, %r9 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000061bf movq $-1, %rax + 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000061c6 movq $-1, %r8 + 0x49, 0x89, 0xfa, //0x000061cd movq %rdi, %r10 + 0x48, 0x83, 0xfe, 0x10, //0x000061d0 cmpq $16, %rsi + 0x0f, 0x83, 0x9c, 0xfc, 0xff, 0xff, //0x000061d4 jae LBB23_24 + 0xe9, 0x09, 0xfe, 0xff, 0xff, //0x000061da jmp LBB23_42 + 0x90, //0x000061df .p2align 2, 0x90 + // // .set L23_0_set_47, LBB23_47-LJTI23_0 + // // .set L23_0_set_56, LBB23_56-LJTI23_0 + // // .set L23_0_set_51, LBB23_51-LJTI23_0 + // // .set L23_0_set_44, LBB23_44-LJTI23_0 + // // .set L23_0_set_49, LBB23_49-LJTI23_0 + //0x000061e0 LJTI23_0 + 0x59, 0xfe, 0xff, 0xff, //0x000061e0 .long L23_0_set_47 + 0xd7, 0xfe, 0xff, 0xff, //0x000061e4 .long L23_0_set_56 + 0x59, 0xfe, 0xff, 0xff, //0x000061e8 .long L23_0_set_47 + 0x8f, 0xfe, 0xff, 0xff, //0x000061ec .long L23_0_set_51 + 0xd7, 0xfe, 0xff, 0xff, //0x000061f0 .long L23_0_set_56 + 0x30, 0xfe, 0xff, 0xff, //0x000061f4 .long L23_0_set_44 + 0x30, 0xfe, 0xff, 0xff, //0x000061f8 .long L23_0_set_44 + 0x30, 0xfe, 0xff, 0xff, //0x000061fc .long L23_0_set_44 + 0x30, 0xfe, 0xff, 0xff, //0x00006200 .long L23_0_set_44 + 0x30, 0xfe, 0xff, 0xff, //0x00006204 .long L23_0_set_44 + 0x30, 0xfe, 0xff, 0xff, //0x00006208 .long L23_0_set_44 + 0x30, 0xfe, 0xff, 0xff, //0x0000620c .long L23_0_set_44 + 0x30, 0xfe, 0xff, 0xff, //0x00006210 .long L23_0_set_44 + 0x30, 0xfe, 0xff, 0xff, //0x00006214 .long L23_0_set_44 + 0x30, 0xfe, 0xff, 0xff, //0x00006218 .long L23_0_set_44 + 0xd7, 0xfe, 0xff, 0xff, //0x0000621c .long L23_0_set_56 + 0xd7, 0xfe, 0xff, 0xff, //0x00006220 .long L23_0_set_56 + 0xd7, 0xfe, 0xff, 0xff, //0x00006224 .long L23_0_set_56 + 0xd7, 0xfe, 0xff, 0xff, //0x00006228 .long L23_0_set_56 + 0xd7, 0xfe, 0xff, 0xff, //0x0000622c .long L23_0_set_56 + 0xd7, 0xfe, 0xff, 0xff, //0x00006230 .long L23_0_set_56 + 0xd7, 0xfe, 0xff, 0xff, //0x00006234 .long L23_0_set_56 + 0xd7, 0xfe, 0xff, 0xff, //0x00006238 .long L23_0_set_56 + 0xd7, 0xfe, 0xff, 0xff, //0x0000623c .long L23_0_set_56 + 0xd7, 0xfe, 0xff, 0xff, //0x00006240 .long L23_0_set_56 + 0xd7, 0xfe, 0xff, 0xff, //0x00006244 .long L23_0_set_56 + 0x74, 0xfe, 0xff, 0xff, //0x00006248 .long L23_0_set_49 + 0xd7, 0xfe, 0xff, 0xff, //0x0000624c .long L23_0_set_56 + 0xd7, 0xfe, 0xff, 0xff, //0x00006250 .long L23_0_set_56 + 0xd7, 0xfe, 0xff, 0xff, //0x00006254 .long L23_0_set_56 + 0xd7, 0xfe, 0xff, 0xff, //0x00006258 .long L23_0_set_56 + 0xd7, 0xfe, 0xff, 0xff, //0x0000625c .long L23_0_set_56 + 0xd7, 0xfe, 0xff, 0xff, //0x00006260 .long L23_0_set_56 + 0xd7, 0xfe, 0xff, 0xff, //0x00006264 .long L23_0_set_56 + 0xd7, 0xfe, 0xff, 0xff, //0x00006268 .long L23_0_set_56 + 0xd7, 0xfe, 0xff, 0xff, //0x0000626c .long L23_0_set_56 + 0xd7, 0xfe, 0xff, 0xff, //0x00006270 .long L23_0_set_56 + 0xd7, 0xfe, 0xff, 0xff, //0x00006274 .long L23_0_set_56 + 0xd7, 0xfe, 0xff, 0xff, //0x00006278 .long L23_0_set_56 + 0xd7, 0xfe, 0xff, 0xff, //0x0000627c .long L23_0_set_56 + 0xd7, 0xfe, 0xff, 0xff, //0x00006280 .long L23_0_set_56 + 0xd7, 0xfe, 0xff, 0xff, //0x00006284 .long L23_0_set_56 + 0xd7, 0xfe, 0xff, 0xff, //0x00006288 .long L23_0_set_56 + 0xd7, 0xfe, 0xff, 0xff, //0x0000628c .long L23_0_set_56 + 0xd7, 0xfe, 0xff, 0xff, //0x00006290 .long L23_0_set_56 + 0xd7, 0xfe, 0xff, 0xff, //0x00006294 .long L23_0_set_56 + 0xd7, 0xfe, 0xff, 0xff, //0x00006298 .long L23_0_set_56 + 0xd7, 0xfe, 0xff, 0xff, //0x0000629c .long L23_0_set_56 + 0xd7, 0xfe, 0xff, 0xff, //0x000062a0 .long L23_0_set_56 + 0xd7, 0xfe, 0xff, 0xff, //0x000062a4 .long L23_0_set_56 + 0xd7, 0xfe, 0xff, 0xff, //0x000062a8 .long L23_0_set_56 + 0xd7, 0xfe, 0xff, 0xff, //0x000062ac .long L23_0_set_56 + 0xd7, 0xfe, 0xff, 0xff, //0x000062b0 .long L23_0_set_56 + 0xd7, 0xfe, 0xff, 0xff, //0x000062b4 .long L23_0_set_56 + 0xd7, 0xfe, 0xff, 0xff, //0x000062b8 .long L23_0_set_56 + 0xd7, 0xfe, 0xff, 0xff, //0x000062bc .long L23_0_set_56 + 0xd7, 0xfe, 0xff, 0xff, //0x000062c0 .long L23_0_set_56 + 0xd7, 0xfe, 0xff, 0xff, //0x000062c4 .long L23_0_set_56 + 0x74, 0xfe, 0xff, 0xff, //0x000062c8 .long L23_0_set_49 + 0x90, 0x90, 0x90, 0x90, //0x000062cc .p2align 4, 0x90 + //0x000062d0 _skip_positive + 0x55, //0x000062d0 pushq %rbp + 0x48, 0x89, 0xe5, //0x000062d1 movq %rsp, %rbp + 0x41, 0x56, //0x000062d4 pushq %r14 + 0x53, //0x000062d6 pushq %rbx + 0x49, 0x89, 0xf6, //0x000062d7 movq %rsi, %r14 + 0x48, 0x8b, 0x1e, //0x000062da movq (%rsi), %rbx + 0x48, 0xff, 0xcb, //0x000062dd decq %rbx + 0x48, 0x8b, 0x07, //0x000062e0 movq (%rdi), %rax + 0x48, 0x01, 0xd8, //0x000062e3 addq %rbx, %rax + 0x48, 0x8b, 0x77, 0x08, //0x000062e6 movq $8(%rdi), %rsi + 0x48, 0x29, 0xde, //0x000062ea subq %rbx, %rsi + 0x48, 0x89, 0xc7, //0x000062ed movq %rax, %rdi + 0xe8, 0x9b, 0xf9, 0xff, 0xff, //0x000062f0 callq _do_skip_number + 0x48, 0x85, 0xc0, //0x000062f5 testq %rax, %rax + 0x0f, 0x88, 0x0d, 0x00, 0x00, 0x00, //0x000062f8 js LBB24_1 + 0x49, 0x8b, 0x0e, //0x000062fe movq (%r14), %rcx + 0x48, 0x8d, 0x4c, 0x08, 0xff, //0x00006301 leaq $-1(%rax,%rcx), %rcx + 0xe9, 0x11, 0x00, 0x00, 0x00, //0x00006306 jmp LBB24_3 + //0x0000630b LBB24_1 + 0x49, 0x8b, 0x0e, //0x0000630b movq (%r14), %rcx + 0x48, 0x29, 0xc1, //0x0000630e subq %rax, %rcx + 0x48, 0x83, 0xc1, 0xfe, //0x00006311 addq $-2, %rcx + 0x48, 0xc7, 0xc3, 0xfe, 0xff, 0xff, 0xff, //0x00006315 movq $-2, %rbx + //0x0000631c LBB24_3 + 0x49, 0x89, 0x0e, //0x0000631c movq %rcx, (%r14) + 0x48, 0x89, 0xd8, //0x0000631f movq %rbx, %rax + 0x5b, //0x00006322 popq %rbx + 0x41, 0x5e, //0x00006323 popq %r14 + 0x5d, //0x00006325 popq %rbp + 0xc3, //0x00006326 retq + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00006327 .p2align 4, 0x90 + //0x00006330 _skip_number + 0x55, //0x00006330 pushq %rbp + 0x48, 0x89, 0xe5, //0x00006331 movq %rsp, %rbp + 0x41, 0x57, //0x00006334 pushq %r15 + 0x41, 0x56, //0x00006336 pushq %r14 + 0x41, 0x55, //0x00006338 pushq %r13 + 0x41, 0x54, //0x0000633a pushq %r12 + 0x53, //0x0000633c pushq %rbx + 0x50, //0x0000633d pushq %rax + 0x49, 0x89, 0xf6, //0x0000633e movq %rsi, %r14 + 0x4c, 0x8b, 0x27, //0x00006341 movq (%rdi), %r12 + 0x48, 0x8b, 0x77, 0x08, //0x00006344 movq $8(%rdi), %rsi + 0x4d, 0x8b, 0x2e, //0x00006348 movq (%r14), %r13 + 0x4c, 0x29, 0xee, //0x0000634b subq %r13, %rsi + 0x31, 0xc0, //0x0000634e xorl %eax, %eax + 0x43, 0x80, 0x3c, 0x2c, 0x2d, //0x00006350 cmpb $45, (%r12,%r13) + 0x4b, 0x8d, 0x1c, 0x2c, //0x00006355 leaq (%r12,%r13), %rbx + 0x0f, 0x94, 0xc0, //0x00006359 sete %al + 0x48, 0x01, 0xc3, //0x0000635c addq %rax, %rbx + 0x48, 0x29, 0xc6, //0x0000635f subq %rax, %rsi + 0x0f, 0x84, 0x42, 0x00, 0x00, 0x00, //0x00006362 je LBB25_1 + 0x8a, 0x03, //0x00006368 movb (%rbx), %al + 0x04, 0xd0, //0x0000636a addb $-48, %al + 0x49, 0xc7, 0xc7, 0xfe, 0xff, 0xff, 0xff, //0x0000636c movq $-2, %r15 + 0x3c, 0x09, //0x00006373 cmpb $9, %al + 0x0f, 0x87, 0x17, 0x00, 0x00, 0x00, //0x00006375 ja LBB25_6 + 0x48, 0x89, 0xdf, //0x0000637b movq %rbx, %rdi + 0xe8, 0x0d, 0xf9, 0xff, 0xff, //0x0000637e callq _do_skip_number + 0x48, 0x85, 0xc0, //0x00006383 testq %rax, %rax + 0x0f, 0x88, 0x2a, 0x00, 0x00, 0x00, //0x00006386 js LBB25_4 + 0x48, 0x01, 0xc3, //0x0000638c addq %rax, %rbx + 0x4d, 0x89, 0xef, //0x0000638f movq %r13, %r15 + //0x00006392 LBB25_6 + 0x4c, 0x29, 0xe3, //0x00006392 subq %r12, %rbx + 0x49, 0x89, 0x1e, //0x00006395 movq %rbx, (%r14) + 0x4c, 0x89, 0xf8, //0x00006398 movq %r15, %rax + 0x48, 0x83, 0xc4, 0x08, //0x0000639b addq $8, %rsp + 0x5b, //0x0000639f popq %rbx + 0x41, 0x5c, //0x000063a0 popq %r12 + 0x41, 0x5d, //0x000063a2 popq %r13 + 0x41, 0x5e, //0x000063a4 popq %r14 + 0x41, 0x5f, //0x000063a6 popq %r15 + 0x5d, //0x000063a8 popq %rbp + 0xc3, //0x000063a9 retq + //0x000063aa LBB25_1 + 0x49, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, //0x000063aa movq $-1, %r15 + 0xe9, 0xdc, 0xff, 0xff, 0xff, //0x000063b1 jmp LBB25_6 + //0x000063b6 LBB25_4 + 0x48, 0xf7, 0xd0, //0x000063b6 notq %rax + 0x48, 0x01, 0xc3, //0x000063b9 addq %rax, %rbx + 0xe9, 0xd1, 0xff, 0xff, 0xff, //0x000063bc jmp LBB25_6 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000063c1 .p2align 4, 0x90 + //0x000063d0 _skip_one + 0x55, //0x000063d0 pushq %rbp + 0x48, 0x89, 0xe5, //0x000063d1 movq %rsp, %rbp + 0x48, 0x89, 0xd0, //0x000063d4 movq %rdx, %rax + 0x48, 0x89, 0xf2, //0x000063d7 movq %rsi, %rdx + 0x48, 0x89, 0xfe, //0x000063da movq %rdi, %rsi + 0xbf, 0x01, 0x00, 0x00, 0x00, //0x000063dd movl $1, %edi + 0xc4, 0xe1, 0xf9, 0x6e, 0xc7, //0x000063e2 vmovq %rdi, %xmm0 + 0xc5, 0xfa, 0x7f, 0x00, //0x000063e7 vmovdqu %xmm0, (%rax) + 0x48, 0x89, 0xc7, //0x000063eb movq %rax, %rdi + 0x5d, //0x000063ee popq %rbp + 0xe9, 0x5c, 0xee, 0xff, 0xff, //0x000063ef jmp _fsm_exec + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000063f4 .p2align 4, 0x90 + //0x00006400 _validate_one + 0x55, //0x00006400 pushq %rbp + 0x48, 0x89, 0xe5, //0x00006401 movq %rsp, %rbp + 0x48, 0x89, 0xd0, //0x00006404 movq %rdx, %rax + 0x48, 0x89, 0xf2, //0x00006407 movq %rsi, %rdx + 0x48, 0x89, 0xfe, //0x0000640a movq %rdi, %rsi + 0xb9, 0x01, 0x00, 0x00, 0x00, //0x0000640d movl $1, %ecx + 0xc4, 0xe1, 0xf9, 0x6e, 0xc1, //0x00006412 vmovq %rcx, %xmm0 + 0xc5, 0xfa, 0x7f, 0x00, //0x00006417 vmovdqu %xmm0, (%rax) + 0xb9, 0x20, 0x00, 0x00, 0x00, //0x0000641b movl $32, %ecx + 0x48, 0x89, 0xc7, //0x00006420 movq %rax, %rdi + 0x5d, //0x00006423 popq %rbp + 0xe9, 0x27, 0xee, 0xff, 0xff, //0x00006424 jmp _fsm_exec + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006429 .p2align 5, 0x00 + //0x00006440 LCPI28_0 + 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, //0x00006440 QUAD $0x2c2c2c2c2c2c2c2c; QUAD $0x2c2c2c2c2c2c2c2c // .space 16, ',,,,,,,,,,,,,,,,' + 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, //0x00006450 QUAD $0x2c2c2c2c2c2c2c2c; QUAD $0x2c2c2c2c2c2c2c2c // .space 16, ',,,,,,,,,,,,,,,,' + //0x00006460 LCPI28_1 + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x00006460 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x00006470 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' + //0x00006480 LCPI28_2 + 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, //0x00006480 QUAD $0x7d7d7d7d7d7d7d7d; QUAD $0x7d7d7d7d7d7d7d7d // .space 16, '}}}}}}}}}}}}}}}}' + 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, //0x00006490 QUAD $0x7d7d7d7d7d7d7d7d; QUAD $0x7d7d7d7d7d7d7d7d // .space 16, '}}}}}}}}}}}}}}}}' + //0x000064a0 LCPI28_6 + 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, //0x000064a0 QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' + 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, //0x000064b0 QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' + //0x000064c0 LCPI28_7 + 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x000064c0 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x000064d0 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + //0x000064e0 LCPI28_8 + 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, //0x000064e0 QUAD $0x7b7b7b7b7b7b7b7b; QUAD $0x7b7b7b7b7b7b7b7b // .space 16, '{{{{{{{{{{{{{{{{' + 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, //0x000064f0 QUAD $0x7b7b7b7b7b7b7b7b; QUAD $0x7b7b7b7b7b7b7b7b // .space 16, '{{{{{{{{{{{{{{{{' + //0x00006500 LCPI28_9 + 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, //0x00006500 QUAD $0x5b5b5b5b5b5b5b5b; QUAD $0x5b5b5b5b5b5b5b5b // .space 16, '[[[[[[[[[[[[[[[[' + 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, //0x00006510 QUAD $0x5b5b5b5b5b5b5b5b; QUAD $0x5b5b5b5b5b5b5b5b // .space 16, '[[[[[[[[[[[[[[[[' + //0x00006520 LCPI28_10 + 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, //0x00006520 QUAD $0x5d5d5d5d5d5d5d5d; QUAD $0x5d5d5d5d5d5d5d5d // .space 16, ']]]]]]]]]]]]]]]]' + 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, //0x00006530 QUAD $0x5d5d5d5d5d5d5d5d; QUAD $0x5d5d5d5d5d5d5d5d // .space 16, ']]]]]]]]]]]]]]]]' + //0x00006540 .p2align 4, 0x00 + //0x00006540 LCPI28_3 + 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, //0x00006540 QUAD $0x2c2c2c2c2c2c2c2c; QUAD $0x2c2c2c2c2c2c2c2c // .space 16, ',,,,,,,,,,,,,,,,' + //0x00006550 LCPI28_4 + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x00006550 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' + //0x00006560 LCPI28_5 + 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, //0x00006560 QUAD $0x7d7d7d7d7d7d7d7d; QUAD $0x7d7d7d7d7d7d7d7d // .space 16, '}}}}}}}}}}}}}}}}' + //0x00006570 .p2align 4, 0x90 + //0x00006570 _skip_one_fast + 0x55, //0x00006570 pushq %rbp + 0x48, 0x89, 0xe5, //0x00006571 movq %rsp, %rbp + 0x41, 0x57, //0x00006574 pushq %r15 + 0x41, 0x56, //0x00006576 pushq %r14 + 0x41, 0x55, //0x00006578 pushq %r13 + 0x41, 0x54, //0x0000657a pushq %r12 + 0x53, //0x0000657c pushq %rbx + 0x48, 0x81, 0xec, 0x80, 0x00, 0x00, 0x00, //0x0000657d subq $128, %rsp + 0x49, 0x89, 0xf6, //0x00006584 movq %rsi, %r14 + 0x49, 0x89, 0xff, //0x00006587 movq %rdi, %r15 + 0x48, 0x8b, 0x3f, //0x0000658a movq (%rdi), %rdi + 0x49, 0x8b, 0x77, 0x08, //0x0000658d movq $8(%r15), %rsi + 0x4c, 0x89, 0xf2, //0x00006591 movq %r14, %rdx + 0xe8, 0x87, 0xdc, 0xff, 0xff, //0x00006594 callq _advance_ns + 0x4d, 0x8b, 0x0e, //0x00006599 movq (%r14), %r9 + 0x4d, 0x8d, 0x41, 0xff, //0x0000659c leaq $-1(%r9), %r8 + 0x0f, 0xbe, 0xc8, //0x000065a0 movsbl %al, %ecx + 0x83, 0xf9, 0x7b, //0x000065a3 cmpl $123, %ecx + 0x0f, 0x87, 0x87, 0x01, 0x00, 0x00, //0x000065a6 ja LBB28_26 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000065ac movq $-1, %rax + 0x48, 0x8d, 0x35, 0x32, 0x09, 0x00, 0x00, //0x000065b3 leaq $2354(%rip), %rsi /* LJTI28_0+0(%rip) */ + 0x48, 0x63, 0x0c, 0x8e, //0x000065ba movslq (%rsi,%rcx,4), %rcx + 0x48, 0x01, 0xf1, //0x000065be addq %rsi, %rcx + 0xff, 0xe1, //0x000065c1 jmpq *%rcx + //0x000065c3 LBB28_2 + 0x49, 0x8b, 0x07, //0x000065c3 movq (%r15), %rax + 0x49, 0x8b, 0x7f, 0x08, //0x000065c6 movq $8(%r15), %rdi + 0x48, 0x89, 0xfe, //0x000065ca movq %rdi, %rsi + 0x4c, 0x29, 0xce, //0x000065cd subq %r9, %rsi + 0x4a, 0x8d, 0x0c, 0x08, //0x000065d0 leaq (%rax,%r9), %rcx + 0x48, 0x83, 0xfe, 0x20, //0x000065d4 cmpq $32, %rsi + 0x0f, 0x82, 0x6a, 0x00, 0x00, 0x00, //0x000065d8 jb LBB28_7 + 0x4c, 0x29, 0xcf, //0x000065de subq %r9, %rdi + 0x48, 0x83, 0xc7, 0xe0, //0x000065e1 addq $-32, %rdi + 0x48, 0x89, 0xfa, //0x000065e5 movq %rdi, %rdx + 0x48, 0x83, 0xe2, 0xe0, //0x000065e8 andq $-32, %rdx + 0x4c, 0x01, 0xca, //0x000065ec addq %r9, %rdx + 0x48, 0x8d, 0x54, 0x10, 0x20, //0x000065ef leaq $32(%rax,%rdx), %rdx + 0x83, 0xe7, 0x1f, //0x000065f4 andl $31, %edi + 0xc5, 0xfd, 0x6f, 0x05, 0x41, 0xfe, 0xff, 0xff, //0x000065f7 vmovdqa $-447(%rip), %ymm0 /* LCPI28_0+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x0d, 0x59, 0xfe, 0xff, 0xff, //0x000065ff vmovdqa $-423(%rip), %ymm1 /* LCPI28_1+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x15, 0x71, 0xfe, 0xff, 0xff, //0x00006607 vmovdqa $-399(%rip), %ymm2 /* LCPI28_2+0(%rip) */ + 0x90, //0x0000660f .p2align 4, 0x90 + //0x00006610 LBB28_4 + 0xc5, 0xfe, 0x6f, 0x19, //0x00006610 vmovdqu (%rcx), %ymm3 + 0xc5, 0xe5, 0x74, 0xe0, //0x00006614 vpcmpeqb %ymm0, %ymm3, %ymm4 + 0xc5, 0xe5, 0xeb, 0xd9, //0x00006618 vpor %ymm1, %ymm3, %ymm3 + 0xc5, 0xe5, 0x74, 0xda, //0x0000661c vpcmpeqb %ymm2, %ymm3, %ymm3 + 0xc5, 0xe5, 0xeb, 0xdc, //0x00006620 vpor %ymm4, %ymm3, %ymm3 + 0xc5, 0xfd, 0xd7, 0xdb, //0x00006624 vpmovmskb %ymm3, %ebx + 0x85, 0xdb, //0x00006628 testl %ebx, %ebx + 0x0f, 0x85, 0xcb, 0x00, 0x00, 0x00, //0x0000662a jne LBB28_20 + 0x48, 0x83, 0xc1, 0x20, //0x00006630 addq $32, %rcx + 0x48, 0x83, 0xc6, 0xe0, //0x00006634 addq $-32, %rsi + 0x48, 0x83, 0xfe, 0x1f, //0x00006638 cmpq $31, %rsi + 0x0f, 0x87, 0xce, 0xff, 0xff, 0xff, //0x0000663c ja LBB28_4 + 0x48, 0x89, 0xfe, //0x00006642 movq %rdi, %rsi + 0x48, 0x89, 0xd1, //0x00006645 movq %rdx, %rcx + //0x00006648 LBB28_7 + 0x48, 0x83, 0xfe, 0x10, //0x00006648 cmpq $16, %rsi + 0x0f, 0x82, 0x67, 0x00, 0x00, 0x00, //0x0000664c jb LBB28_12 + 0x48, 0x8d, 0x56, 0xf0, //0x00006652 leaq $-16(%rsi), %rdx + 0x48, 0x89, 0xd7, //0x00006656 movq %rdx, %rdi + 0x48, 0x83, 0xe7, 0xf0, //0x00006659 andq $-16, %rdi + 0x48, 0x8d, 0x7c, 0x0f, 0x10, //0x0000665d leaq $16(%rdi,%rcx), %rdi + 0x83, 0xe2, 0x0f, //0x00006662 andl $15, %edx + 0xc5, 0xf9, 0x6f, 0x05, 0xd3, 0xfe, 0xff, 0xff, //0x00006665 vmovdqa $-301(%rip), %xmm0 /* LCPI28_3+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x0d, 0xdb, 0xfe, 0xff, 0xff, //0x0000666d vmovdqa $-293(%rip), %xmm1 /* LCPI28_4+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x15, 0xe3, 0xfe, 0xff, 0xff, //0x00006675 vmovdqa $-285(%rip), %xmm2 /* LCPI28_5+0(%rip) */ + 0x90, 0x90, 0x90, //0x0000667d .p2align 4, 0x90 + //0x00006680 LBB28_9 + 0xc5, 0xfa, 0x6f, 0x19, //0x00006680 vmovdqu (%rcx), %xmm3 + 0xc5, 0xe1, 0x74, 0xe0, //0x00006684 vpcmpeqb %xmm0, %xmm3, %xmm4 + 0xc5, 0xe1, 0xeb, 0xd9, //0x00006688 vpor %xmm1, %xmm3, %xmm3 + 0xc5, 0xe1, 0x74, 0xda, //0x0000668c vpcmpeqb %xmm2, %xmm3, %xmm3 + 0xc5, 0xe1, 0xeb, 0xdc, //0x00006690 vpor %xmm4, %xmm3, %xmm3 + 0xc5, 0xf9, 0xd7, 0xdb, //0x00006694 vpmovmskb %xmm3, %ebx + 0x66, 0x85, 0xdb, //0x00006698 testw %bx, %bx + 0x0f, 0x85, 0xa0, 0x07, 0x00, 0x00, //0x0000669b jne LBB28_92 + 0x48, 0x83, 0xc1, 0x10, //0x000066a1 addq $16, %rcx + 0x48, 0x83, 0xc6, 0xf0, //0x000066a5 addq $-16, %rsi + 0x48, 0x83, 0xfe, 0x0f, //0x000066a9 cmpq $15, %rsi + 0x0f, 0x87, 0xcd, 0xff, 0xff, 0xff, //0x000066ad ja LBB28_9 + 0x48, 0x89, 0xd6, //0x000066b3 movq %rdx, %rsi + 0x48, 0x89, 0xf9, //0x000066b6 movq %rdi, %rcx + //0x000066b9 LBB28_12 + 0x48, 0x85, 0xf6, //0x000066b9 testq %rsi, %rsi + 0x0f, 0x84, 0x31, 0x00, 0x00, 0x00, //0x000066bc je LBB28_19 + 0x48, 0x8d, 0x14, 0x31, //0x000066c2 leaq (%rcx,%rsi), %rdx + //0x000066c6 LBB28_14 + 0x0f, 0xb6, 0x19, //0x000066c6 movzbl (%rcx), %ebx + 0x80, 0xfb, 0x2c, //0x000066c9 cmpb $44, %bl + 0x0f, 0x84, 0x21, 0x00, 0x00, 0x00, //0x000066cc je LBB28_19 + 0x80, 0xfb, 0x7d, //0x000066d2 cmpb $125, %bl + 0x0f, 0x84, 0x18, 0x00, 0x00, 0x00, //0x000066d5 je LBB28_19 + 0x80, 0xfb, 0x5d, //0x000066db cmpb $93, %bl + 0x0f, 0x84, 0x0f, 0x00, 0x00, 0x00, //0x000066de je LBB28_19 + 0x48, 0xff, 0xc1, //0x000066e4 incq %rcx + 0x48, 0xff, 0xce, //0x000066e7 decq %rsi + 0x0f, 0x85, 0xd6, 0xff, 0xff, 0xff, //0x000066ea jne LBB28_14 + 0x48, 0x89, 0xd1, //0x000066f0 movq %rdx, %rcx + //0x000066f3 LBB28_19 + 0x48, 0x29, 0xc1, //0x000066f3 subq %rax, %rcx + 0xe9, 0x0d, 0x00, 0x00, 0x00, //0x000066f6 jmp LBB28_22 + //0x000066fb LBB28_20 + 0x48, 0x63, 0xd3, //0x000066fb movslq %ebx, %rdx + //0x000066fe LBB28_21 + 0x48, 0x0f, 0xbc, 0xd2, //0x000066fe bsfq %rdx, %rdx + 0x48, 0x29, 0xc1, //0x00006702 subq %rax, %rcx + 0x48, 0x01, 0xd1, //0x00006705 addq %rdx, %rcx + //0x00006708 LBB28_22 + 0x49, 0x89, 0x0e, //0x00006708 movq %rcx, (%r14) + //0x0000670b LBB28_23 + 0x4c, 0x89, 0xc0, //0x0000670b movq %r8, %rax + //0x0000670e LBB28_24 + 0x48, 0x8d, 0x65, 0xd8, //0x0000670e leaq $-40(%rbp), %rsp + 0x5b, //0x00006712 popq %rbx + 0x41, 0x5c, //0x00006713 popq %r12 + 0x41, 0x5d, //0x00006715 popq %r13 + 0x41, 0x5e, //0x00006717 popq %r14 + 0x41, 0x5f, //0x00006719 popq %r15 + 0x5d, //0x0000671b popq %rbp + 0xc5, 0xf8, 0x77, //0x0000671c vzeroupper + 0xc3, //0x0000671f retq + //0x00006720 LBB28_25 + 0x49, 0x83, 0xc1, 0x03, //0x00006720 addq $3, %r9 + 0x4d, 0x3b, 0x4f, 0x08, //0x00006724 cmpq $8(%r15), %r9 + 0x0f, 0x87, 0xe0, 0xff, 0xff, 0xff, //0x00006728 ja LBB28_24 + 0xe9, 0xcf, 0x03, 0x00, 0x00, //0x0000672e jmp LBB28_62 + //0x00006733 LBB28_26 + 0x4d, 0x89, 0x06, //0x00006733 movq %r8, (%r14) + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00006736 movq $-2, %rax + 0xe9, 0xcc, 0xff, 0xff, 0xff, //0x0000673d jmp LBB28_24 + //0x00006742 LBB28_27 + 0x4d, 0x89, 0xc4, //0x00006742 movq %r8, %r12 + 0x49, 0x8b, 0x0f, //0x00006745 movq (%r15), %rcx + 0x4d, 0x8b, 0x5f, 0x08, //0x00006748 movq $8(%r15), %r11 + 0x48, 0x89, 0x4c, 0x24, 0x10, //0x0000674c movq %rcx, $16(%rsp) + 0x4e, 0x8d, 0x3c, 0x09, //0x00006751 leaq (%rcx,%r9), %r15 + 0x4d, 0x29, 0xcb, //0x00006755 subq %r9, %r11 + 0x49, 0x83, 0xfb, 0x20, //0x00006758 cmpq $32, %r11 + 0x0f, 0x8c, 0xf6, 0x06, 0x00, 0x00, //0x0000675c jl LBB28_36 + 0xbb, 0x20, 0x00, 0x00, 0x00, //0x00006762 movl $32, %ebx + 0x41, 0xb9, 0xff, 0xff, 0xff, 0xff, //0x00006767 movl $4294967295, %r9d + 0x31, 0xd2, //0x0000676d xorl %edx, %edx + 0xc5, 0xfd, 0x6f, 0x05, 0x29, 0xfd, 0xff, 0xff, //0x0000676f vmovdqa $-727(%rip), %ymm0 /* LCPI28_6+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x0d, 0x41, 0xfd, 0xff, 0xff, //0x00006777 vmovdqa $-703(%rip), %ymm1 /* LCPI28_7+0(%rip) */ + 0x45, 0x8d, 0x91, 0xab, 0xaa, 0xaa, 0xaa, //0x0000677f leal $-1431655765(%r9), %r10d + 0x31, 0xff, //0x00006786 xorl %edi, %edi + 0xe9, 0x58, 0x00, 0x00, 0x00, //0x00006788 jmp LBB28_29 + 0x90, 0x90, 0x90, //0x0000678d .p2align 4, 0x90 + //0x00006790 LBB28_32 + 0x89, 0xfe, //0x00006790 movl %edi, %esi + 0x44, 0x31, 0xce, //0x00006792 xorl %r9d, %esi + 0x21, 0xce, //0x00006795 andl %ecx, %esi + 0x44, 0x8d, 0x04, 0x36, //0x00006797 leal (%rsi,%rsi), %r8d + 0x41, 0x09, 0xf8, //0x0000679b orl %edi, %r8d + 0x44, 0x89, 0xc1, //0x0000679e movl %r8d, %ecx + 0x44, 0x31, 0xd1, //0x000067a1 xorl %r10d, %ecx + 0x21, 0xf1, //0x000067a4 andl %esi, %ecx + 0x81, 0xe1, 0xaa, 0xaa, 0xaa, 0xaa, //0x000067a6 andl $-1431655766, %ecx + 0x31, 0xff, //0x000067ac xorl %edi, %edi + 0x01, 0xf1, //0x000067ae addl %esi, %ecx + 0x40, 0x0f, 0x92, 0xc7, //0x000067b0 setb %dil + 0x01, 0xc9, //0x000067b4 addl %ecx, %ecx + 0x81, 0xf1, 0x55, 0x55, 0x55, 0x55, //0x000067b6 xorl $1431655765, %ecx + 0x44, 0x21, 0xc1, //0x000067bc andl %r8d, %ecx + 0x44, 0x31, 0xc9, //0x000067bf xorl %r9d, %ecx + 0x41, 0x21, 0xcd, //0x000067c2 andl %ecx, %r13d + 0x45, 0x85, 0xed, //0x000067c5 testl %r13d, %r13d + 0x0f, 0x85, 0x49, 0x00, 0x00, 0x00, //0x000067c8 jne LBB28_90 + //0x000067ce LBB28_33 + 0x48, 0x83, 0xc2, 0x20, //0x000067ce addq $32, %rdx + 0x49, 0x8d, 0x4c, 0x1b, 0xe0, //0x000067d2 leaq $-32(%r11,%rbx), %rcx + 0x48, 0x83, 0xc3, 0xe0, //0x000067d7 addq $-32, %rbx + 0x48, 0x83, 0xf9, 0x3f, //0x000067db cmpq $63, %rcx + 0x0f, 0x8e, 0x64, 0x06, 0x00, 0x00, //0x000067df jle LBB28_34 + //0x000067e5 LBB28_29 + 0xc4, 0xc1, 0x7e, 0x6f, 0x14, 0x17, //0x000067e5 vmovdqu (%r15,%rdx), %ymm2 + 0xc5, 0xed, 0x74, 0xd8, //0x000067eb vpcmpeqb %ymm0, %ymm2, %ymm3 + 0xc5, 0x7d, 0xd7, 0xeb, //0x000067ef vpmovmskb %ymm3, %r13d + 0xc5, 0xed, 0x74, 0xd1, //0x000067f3 vpcmpeqb %ymm1, %ymm2, %ymm2 + 0xc5, 0xfd, 0xd7, 0xca, //0x000067f7 vpmovmskb %ymm2, %ecx + 0x48, 0x85, 0xff, //0x000067fb testq %rdi, %rdi + 0x0f, 0x85, 0x8c, 0xff, 0xff, 0xff, //0x000067fe jne LBB28_32 + 0x85, 0xc9, //0x00006804 testl %ecx, %ecx + 0x0f, 0x85, 0x84, 0xff, 0xff, 0xff, //0x00006806 jne LBB28_32 + 0x31, 0xff, //0x0000680c xorl %edi, %edi + 0x45, 0x85, 0xed, //0x0000680e testl %r13d, %r13d + 0x0f, 0x84, 0xb7, 0xff, 0xff, 0xff, //0x00006811 je LBB28_33 + //0x00006817 LBB28_90 + 0x49, 0x0f, 0xbc, 0xc5, //0x00006817 bsfq %r13, %rax + 0x49, 0x01, 0xc7, //0x0000681b addq %rax, %r15 + 0x49, 0x01, 0xd7, //0x0000681e addq %rdx, %r15 + //0x00006821 LBB28_91 + 0x4c, 0x2b, 0x7c, 0x24, 0x10, //0x00006821 subq $16(%rsp), %r15 + 0x49, 0xff, 0xc7, //0x00006826 incq %r15 + 0x4d, 0x89, 0x3e, //0x00006829 movq %r15, (%r14) + 0x4c, 0x89, 0xe0, //0x0000682c movq %r12, %rax + 0xe9, 0xda, 0xfe, 0xff, 0xff, //0x0000682f jmp LBB28_24 + //0x00006834 LBB28_37 + 0x4d, 0x89, 0xc4, //0x00006834 movq %r8, %r12 + 0x49, 0x8b, 0x4f, 0x08, //0x00006837 movq $8(%r15), %rcx + 0x4c, 0x29, 0xc9, //0x0000683b subq %r9, %rcx + 0x4d, 0x03, 0x0f, //0x0000683e addq (%r15), %r9 + 0x31, 0xd2, //0x00006841 xorl %edx, %edx + 0xc5, 0xfd, 0x6f, 0x05, 0x55, 0xfc, 0xff, 0xff, //0x00006843 vmovdqa $-939(%rip), %ymm0 /* LCPI28_6+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x0d, 0x6d, 0xfc, 0xff, 0xff, //0x0000684b vmovdqa $-915(%rip), %ymm1 /* LCPI28_7+0(%rip) */ + 0xc5, 0xe9, 0x76, 0xd2, //0x00006853 vpcmpeqd %xmm2, %xmm2, %xmm2 + 0xc5, 0xfd, 0x6f, 0x1d, 0xa1, 0xfc, 0xff, 0xff, //0x00006857 vmovdqa $-863(%rip), %ymm3 /* LCPI28_9+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x25, 0xb9, 0xfc, 0xff, 0xff, //0x0000685f vmovdqa $-839(%rip), %ymm4 /* LCPI28_10+0(%rip) */ + 0xc4, 0x41, 0x30, 0x57, 0xc9, //0x00006867 vxorps %xmm9, %xmm9, %xmm9 + 0x45, 0x31, 0xd2, //0x0000686c xorl %r10d, %r10d + 0x45, 0x31, 0xc0, //0x0000686f xorl %r8d, %r8d + 0x31, 0xf6, //0x00006872 xorl %esi, %esi + 0xe9, 0x1c, 0x00, 0x00, 0x00, //0x00006874 jmp LBB28_39 + //0x00006879 LBB28_38 + 0x49, 0xc1, 0xfd, 0x3f, //0x00006879 sarq $63, %r13 + 0xf3, 0x48, 0x0f, 0xb8, 0xc9, //0x0000687d popcntq %rcx, %rcx + 0x49, 0x01, 0xc8, //0x00006882 addq %rcx, %r8 + 0x49, 0x83, 0xc1, 0x40, //0x00006885 addq $64, %r9 + 0x48, 0x8b, 0x4c, 0x24, 0x10, //0x00006889 movq $16(%rsp), %rcx + 0x48, 0x83, 0xc1, 0xc0, //0x0000688e addq $-64, %rcx + 0x4c, 0x89, 0xea, //0x00006892 movq %r13, %rdx + //0x00006895 LBB28_39 + 0x48, 0x83, 0xf9, 0x40, //0x00006895 cmpq $64, %rcx + 0x48, 0x89, 0x4c, 0x24, 0x10, //0x00006899 movq %rcx, $16(%rsp) + 0x0f, 0x8c, 0x28, 0x01, 0x00, 0x00, //0x0000689e jl LBB28_46 + //0x000068a4 LBB28_40 + 0xc4, 0xc1, 0x7e, 0x6f, 0x39, //0x000068a4 vmovdqu (%r9), %ymm7 + 0xc4, 0xc1, 0x7e, 0x6f, 0x71, 0x20, //0x000068a9 vmovdqu $32(%r9), %ymm6 + 0xc5, 0x45, 0x74, 0xc0, //0x000068af vpcmpeqb %ymm0, %ymm7, %ymm8 + 0xc4, 0x41, 0x7d, 0xd7, 0xe8, //0x000068b3 vpmovmskb %ymm8, %r13d + 0xc5, 0x4d, 0x74, 0xc0, //0x000068b8 vpcmpeqb %ymm0, %ymm6, %ymm8 + 0xc4, 0xc1, 0x7d, 0xd7, 0xf8, //0x000068bc vpmovmskb %ymm8, %edi + 0x48, 0xc1, 0xe7, 0x20, //0x000068c1 shlq $32, %rdi + 0x49, 0x09, 0xfd, //0x000068c5 orq %rdi, %r13 + 0xc5, 0x45, 0x74, 0xc1, //0x000068c8 vpcmpeqb %ymm1, %ymm7, %ymm8 + 0xc4, 0xc1, 0x7d, 0xd7, 0xf8, //0x000068cc vpmovmskb %ymm8, %edi + 0xc5, 0x4d, 0x74, 0xc1, //0x000068d1 vpcmpeqb %ymm1, %ymm6, %ymm8 + 0xc4, 0xc1, 0x7d, 0xd7, 0xd8, //0x000068d5 vpmovmskb %ymm8, %ebx + 0x48, 0xc1, 0xe3, 0x20, //0x000068da shlq $32, %rbx + 0x48, 0x09, 0xdf, //0x000068de orq %rbx, %rdi + 0x48, 0x89, 0xfb, //0x000068e1 movq %rdi, %rbx + 0x4c, 0x09, 0xd3, //0x000068e4 orq %r10, %rbx + 0x0f, 0x84, 0x51, 0x00, 0x00, 0x00, //0x000068e7 je LBB28_42 + 0x4c, 0x89, 0xd3, //0x000068ed movq %r10, %rbx + 0x48, 0xf7, 0xd3, //0x000068f0 notq %rbx + 0x48, 0x21, 0xfb, //0x000068f3 andq %rdi, %rbx + 0x4c, 0x8d, 0x1c, 0x1b, //0x000068f6 leaq (%rbx,%rbx), %r11 + 0x4d, 0x09, 0xd3, //0x000068fa orq %r10, %r11 + 0x49, 0x89, 0xd2, //0x000068fd movq %rdx, %r10 + 0x4c, 0x89, 0xda, //0x00006900 movq %r11, %rdx + 0x48, 0xb9, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x00006903 movabsq $-6148914691236517206, %rcx + 0x48, 0x31, 0xca, //0x0000690d xorq %rcx, %rdx + 0x48, 0x21, 0xcf, //0x00006910 andq %rcx, %rdi + 0x48, 0x21, 0xd7, //0x00006913 andq %rdx, %rdi + 0x4c, 0x89, 0xd2, //0x00006916 movq %r10, %rdx + 0x45, 0x31, 0xd2, //0x00006919 xorl %r10d, %r10d + 0x48, 0x01, 0xdf, //0x0000691c addq %rbx, %rdi + 0x41, 0x0f, 0x92, 0xc2, //0x0000691f setb %r10b + 0x48, 0x01, 0xff, //0x00006923 addq %rdi, %rdi + 0x48, 0xb9, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00006926 movabsq $6148914691236517205, %rcx + 0x48, 0x31, 0xcf, //0x00006930 xorq %rcx, %rdi + 0x4c, 0x21, 0xdf, //0x00006933 andq %r11, %rdi + 0x48, 0xf7, 0xd7, //0x00006936 notq %rdi + 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x00006939 jmp LBB28_43 + //0x0000693e LBB28_42 + 0x48, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, //0x0000693e movq $-1, %rdi + 0x45, 0x31, 0xd2, //0x00006945 xorl %r10d, %r10d + //0x00006948 LBB28_43 + 0x4c, 0x21, 0xef, //0x00006948 andq %r13, %rdi + 0xc4, 0xe1, 0xf9, 0x6e, 0xef, //0x0000694b vmovq %rdi, %xmm5 + 0xc4, 0xe3, 0x51, 0x44, 0xea, 0x00, //0x00006950 vpclmulqdq $0, %xmm2, %xmm5, %xmm5 + 0xc4, 0xc1, 0xf9, 0x7e, 0xed, //0x00006956 vmovq %xmm5, %r13 + 0x49, 0x31, 0xd5, //0x0000695b xorq %rdx, %r13 + 0xc5, 0xc5, 0x74, 0xeb, //0x0000695e vpcmpeqb %ymm3, %ymm7, %ymm5 + 0xc5, 0xfd, 0xd7, 0xcd, //0x00006962 vpmovmskb %ymm5, %ecx + 0xc5, 0xcd, 0x74, 0xeb, //0x00006966 vpcmpeqb %ymm3, %ymm6, %ymm5 + 0xc5, 0xfd, 0xd7, 0xd5, //0x0000696a vpmovmskb %ymm5, %edx + 0x48, 0xc1, 0xe2, 0x20, //0x0000696e shlq $32, %rdx + 0x48, 0x09, 0xd1, //0x00006972 orq %rdx, %rcx + 0x4c, 0x89, 0xea, //0x00006975 movq %r13, %rdx + 0x48, 0xf7, 0xd2, //0x00006978 notq %rdx + 0x48, 0x21, 0xd1, //0x0000697b andq %rdx, %rcx + 0xc5, 0xc5, 0x74, 0xec, //0x0000697e vpcmpeqb %ymm4, %ymm7, %ymm5 + 0xc5, 0xfd, 0xd7, 0xfd, //0x00006982 vpmovmskb %ymm5, %edi + 0xc5, 0xcd, 0x74, 0xec, //0x00006986 vpcmpeqb %ymm4, %ymm6, %ymm5 + 0xc5, 0xfd, 0xd7, 0xdd, //0x0000698a vpmovmskb %ymm5, %ebx + 0x48, 0xc1, 0xe3, 0x20, //0x0000698e shlq $32, %rbx + 0x48, 0x09, 0xdf, //0x00006992 orq %rbx, %rdi + 0x48, 0x21, 0xd7, //0x00006995 andq %rdx, %rdi + 0x0f, 0x84, 0xdb, 0xfe, 0xff, 0xff, //0x00006998 je LBB28_38 + 0x90, 0x90, //0x0000699e .p2align 4, 0x90 + //0x000069a0 LBB28_44 + 0x48, 0x8d, 0x5f, 0xff, //0x000069a0 leaq $-1(%rdi), %rbx + 0x48, 0x89, 0xda, //0x000069a4 movq %rbx, %rdx + 0x48, 0x21, 0xca, //0x000069a7 andq %rcx, %rdx + 0xf3, 0x48, 0x0f, 0xb8, 0xd2, //0x000069aa popcntq %rdx, %rdx + 0x4c, 0x01, 0xc2, //0x000069af addq %r8, %rdx + 0x48, 0x39, 0xf2, //0x000069b2 cmpq %rsi, %rdx + 0x0f, 0x86, 0x19, 0x04, 0x00, 0x00, //0x000069b5 jbe LBB28_87 + 0x48, 0xff, 0xc6, //0x000069bb incq %rsi + 0x48, 0x21, 0xdf, //0x000069be andq %rbx, %rdi + 0x0f, 0x85, 0xd9, 0xff, 0xff, 0xff, //0x000069c1 jne LBB28_44 + 0xe9, 0xad, 0xfe, 0xff, 0xff, //0x000069c7 jmp LBB28_38 + //0x000069cc LBB28_46 + 0x48, 0x85, 0xc9, //0x000069cc testq %rcx, %rcx + 0x0f, 0x8e, 0x91, 0x04, 0x00, 0x00, //0x000069cf jle LBB28_93 + 0xc5, 0x7c, 0x11, 0x4c, 0x24, 0x40, //0x000069d5 vmovups %ymm9, $64(%rsp) + 0xc5, 0x7c, 0x11, 0x4c, 0x24, 0x20, //0x000069db vmovups %ymm9, $32(%rsp) + 0x44, 0x89, 0xc9, //0x000069e1 movl %r9d, %ecx + 0x81, 0xe1, 0xff, 0x0f, 0x00, 0x00, //0x000069e4 andl $4095, %ecx + 0x81, 0xf9, 0xc1, 0x0f, 0x00, 0x00, //0x000069ea cmpl $4033, %ecx + 0x0f, 0x82, 0xae, 0xfe, 0xff, 0xff, //0x000069f0 jb LBB28_40 + 0x48, 0x83, 0x7c, 0x24, 0x10, 0x20, //0x000069f6 cmpq $32, $16(%rsp) + 0x0f, 0x82, 0x22, 0x00, 0x00, 0x00, //0x000069fc jb LBB28_50 + 0xc4, 0xc1, 0x7c, 0x10, 0x29, //0x00006a02 vmovups (%r9), %ymm5 + 0xc5, 0xfc, 0x11, 0x6c, 0x24, 0x20, //0x00006a07 vmovups %ymm5, $32(%rsp) + 0x49, 0x83, 0xc1, 0x20, //0x00006a0d addq $32, %r9 + 0x48, 0x8b, 0x4c, 0x24, 0x10, //0x00006a11 movq $16(%rsp), %rcx + 0x48, 0x8d, 0x59, 0xe0, //0x00006a16 leaq $-32(%rcx), %rbx + 0x48, 0x8d, 0x7c, 0x24, 0x40, //0x00006a1a leaq $64(%rsp), %rdi + 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x00006a1f jmp LBB28_51 + //0x00006a24 LBB28_50 + 0x48, 0x8d, 0x7c, 0x24, 0x20, //0x00006a24 leaq $32(%rsp), %rdi + 0x48, 0x8b, 0x5c, 0x24, 0x10, //0x00006a29 movq $16(%rsp), %rbx + //0x00006a2e LBB28_51 + 0x48, 0x83, 0xfb, 0x10, //0x00006a2e cmpq $16, %rbx + 0x0f, 0x82, 0x5a, 0x00, 0x00, 0x00, //0x00006a32 jb LBB28_52 + 0xc4, 0xc1, 0x78, 0x10, 0x29, //0x00006a38 vmovups (%r9), %xmm5 + 0xc5, 0xf8, 0x11, 0x2f, //0x00006a3d vmovups %xmm5, (%rdi) + 0x49, 0x83, 0xc1, 0x10, //0x00006a41 addq $16, %r9 + 0x48, 0x83, 0xc7, 0x10, //0x00006a45 addq $16, %rdi + 0x48, 0x83, 0xc3, 0xf0, //0x00006a49 addq $-16, %rbx + 0x48, 0x83, 0xfb, 0x08, //0x00006a4d cmpq $8, %rbx + 0x0f, 0x83, 0x45, 0x00, 0x00, 0x00, //0x00006a51 jae LBB28_57 + //0x00006a57 LBB28_53 + 0x48, 0x83, 0xfb, 0x04, //0x00006a57 cmpq $4, %rbx + 0x0f, 0x8c, 0x57, 0x00, 0x00, 0x00, //0x00006a5b jl LBB28_54 + //0x00006a61 LBB28_58 + 0x41, 0x8b, 0x09, //0x00006a61 movl (%r9), %ecx + 0x89, 0x0f, //0x00006a64 movl %ecx, (%rdi) + 0x49, 0x83, 0xc1, 0x04, //0x00006a66 addq $4, %r9 + 0x48, 0x83, 0xc7, 0x04, //0x00006a6a addq $4, %rdi + 0x48, 0x83, 0xc3, 0xfc, //0x00006a6e addq $-4, %rbx + 0x48, 0x83, 0xfb, 0x02, //0x00006a72 cmpq $2, %rbx + 0x0f, 0x83, 0x46, 0x00, 0x00, 0x00, //0x00006a76 jae LBB28_59 + //0x00006a7c LBB28_55 + 0x4c, 0x89, 0xc9, //0x00006a7c movq %r9, %rcx + 0x4c, 0x8d, 0x4c, 0x24, 0x20, //0x00006a7f leaq $32(%rsp), %r9 + 0x48, 0x85, 0xdb, //0x00006a84 testq %rbx, %rbx + 0x0f, 0x85, 0x59, 0x00, 0x00, 0x00, //0x00006a87 jne LBB28_60 + 0xe9, 0x12, 0xfe, 0xff, 0xff, //0x00006a8d jmp LBB28_40 + //0x00006a92 LBB28_52 + 0x48, 0x83, 0xfb, 0x08, //0x00006a92 cmpq $8, %rbx + 0x0f, 0x82, 0xbb, 0xff, 0xff, 0xff, //0x00006a96 jb LBB28_53 + //0x00006a9c LBB28_57 + 0x49, 0x8b, 0x09, //0x00006a9c movq (%r9), %rcx + 0x48, 0x89, 0x0f, //0x00006a9f movq %rcx, (%rdi) + 0x49, 0x83, 0xc1, 0x08, //0x00006aa2 addq $8, %r9 + 0x48, 0x83, 0xc7, 0x08, //0x00006aa6 addq $8, %rdi + 0x48, 0x83, 0xc3, 0xf8, //0x00006aaa addq $-8, %rbx + 0x48, 0x83, 0xfb, 0x04, //0x00006aae cmpq $4, %rbx + 0x0f, 0x8d, 0xa9, 0xff, 0xff, 0xff, //0x00006ab2 jge LBB28_58 + //0x00006ab8 LBB28_54 + 0x48, 0x83, 0xfb, 0x02, //0x00006ab8 cmpq $2, %rbx + 0x0f, 0x82, 0xba, 0xff, 0xff, 0xff, //0x00006abc jb LBB28_55 + //0x00006ac2 LBB28_59 + 0x41, 0x0f, 0xb7, 0x09, //0x00006ac2 movzwl (%r9), %ecx + 0x66, 0x89, 0x0f, //0x00006ac6 movw %cx, (%rdi) + 0x49, 0x83, 0xc1, 0x02, //0x00006ac9 addq $2, %r9 + 0x48, 0x83, 0xc7, 0x02, //0x00006acd addq $2, %rdi + 0x48, 0x83, 0xc3, 0xfe, //0x00006ad1 addq $-2, %rbx + 0x4c, 0x89, 0xc9, //0x00006ad5 movq %r9, %rcx + 0x4c, 0x8d, 0x4c, 0x24, 0x20, //0x00006ad8 leaq $32(%rsp), %r9 + 0x48, 0x85, 0xdb, //0x00006add testq %rbx, %rbx + 0x0f, 0x84, 0xbe, 0xfd, 0xff, 0xff, //0x00006ae0 je LBB28_40 + //0x00006ae6 LBB28_60 + 0x8a, 0x09, //0x00006ae6 movb (%rcx), %cl + 0x88, 0x0f, //0x00006ae8 movb %cl, (%rdi) + 0x4c, 0x8d, 0x4c, 0x24, 0x20, //0x00006aea leaq $32(%rsp), %r9 + 0xe9, 0xb0, 0xfd, 0xff, 0xff, //0x00006aef jmp LBB28_40 + //0x00006af4 LBB28_61 + 0x49, 0x83, 0xc1, 0x04, //0x00006af4 addq $4, %r9 + 0x4d, 0x3b, 0x4f, 0x08, //0x00006af8 cmpq $8(%r15), %r9 + 0x0f, 0x87, 0x0c, 0xfc, 0xff, 0xff, //0x00006afc ja LBB28_24 + //0x00006b02 LBB28_62 + 0x4d, 0x89, 0x0e, //0x00006b02 movq %r9, (%r14) + 0xe9, 0x01, 0xfc, 0xff, 0xff, //0x00006b05 jmp LBB28_23 + //0x00006b0a LBB28_63 + 0x4c, 0x89, 0x44, 0x24, 0x18, //0x00006b0a movq %r8, $24(%rsp) + 0x49, 0x8b, 0x4f, 0x08, //0x00006b0f movq $8(%r15), %rcx + 0x4c, 0x29, 0xc9, //0x00006b13 subq %r9, %rcx + 0x4d, 0x03, 0x0f, //0x00006b16 addq (%r15), %r9 + 0x45, 0x31, 0xe4, //0x00006b19 xorl %r12d, %r12d + 0xc5, 0xfd, 0x6f, 0x05, 0x7c, 0xf9, 0xff, 0xff, //0x00006b1c vmovdqa $-1668(%rip), %ymm0 /* LCPI28_6+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x0d, 0x94, 0xf9, 0xff, 0xff, //0x00006b24 vmovdqa $-1644(%rip), %ymm1 /* LCPI28_7+0(%rip) */ + 0xc5, 0xe9, 0x76, 0xd2, //0x00006b2c vpcmpeqd %xmm2, %xmm2, %xmm2 + 0xc5, 0xfd, 0x6f, 0x1d, 0xa8, 0xf9, 0xff, 0xff, //0x00006b30 vmovdqa $-1624(%rip), %ymm3 /* LCPI28_8+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x25, 0x40, 0xf9, 0xff, 0xff, //0x00006b38 vmovdqa $-1728(%rip), %ymm4 /* LCPI28_2+0(%rip) */ + 0xc4, 0x41, 0x30, 0x57, 0xc9, //0x00006b40 vxorps %xmm9, %xmm9, %xmm9 + 0x45, 0x31, 0xd2, //0x00006b45 xorl %r10d, %r10d + 0x45, 0x31, 0xc0, //0x00006b48 xorl %r8d, %r8d + 0x31, 0xf6, //0x00006b4b xorl %esi, %esi + 0xe9, 0x1c, 0x00, 0x00, 0x00, //0x00006b4d jmp LBB28_65 + //0x00006b52 LBB28_64 + 0x49, 0xc1, 0xfd, 0x3f, //0x00006b52 sarq $63, %r13 + 0xf3, 0x48, 0x0f, 0xb8, 0xc9, //0x00006b56 popcntq %rcx, %rcx + 0x49, 0x01, 0xc8, //0x00006b5b addq %rcx, %r8 + 0x49, 0x83, 0xc1, 0x40, //0x00006b5e addq $64, %r9 + 0x48, 0x8b, 0x4c, 0x24, 0x10, //0x00006b62 movq $16(%rsp), %rcx + 0x48, 0x83, 0xc1, 0xc0, //0x00006b67 addq $-64, %rcx + 0x4d, 0x89, 0xec, //0x00006b6b movq %r13, %r12 + //0x00006b6e LBB28_65 + 0x48, 0x83, 0xf9, 0x40, //0x00006b6e cmpq $64, %rcx + 0x48, 0x89, 0x4c, 0x24, 0x10, //0x00006b72 movq %rcx, $16(%rsp) + 0x0f, 0x8c, 0x2f, 0x01, 0x00, 0x00, //0x00006b77 jl LBB28_72 + //0x00006b7d LBB28_66 + 0xc4, 0xc1, 0x7e, 0x6f, 0x39, //0x00006b7d vmovdqu (%r9), %ymm7 + 0xc4, 0xc1, 0x7e, 0x6f, 0x71, 0x20, //0x00006b82 vmovdqu $32(%r9), %ymm6 + 0xc5, 0x45, 0x74, 0xc0, //0x00006b88 vpcmpeqb %ymm0, %ymm7, %ymm8 + 0xc4, 0x41, 0x7d, 0xd7, 0xe8, //0x00006b8c vpmovmskb %ymm8, %r13d + 0xc5, 0x4d, 0x74, 0xc0, //0x00006b91 vpcmpeqb %ymm0, %ymm6, %ymm8 + 0xc4, 0xc1, 0x7d, 0xd7, 0xf8, //0x00006b95 vpmovmskb %ymm8, %edi + 0x48, 0xc1, 0xe7, 0x20, //0x00006b9a shlq $32, %rdi + 0x49, 0x09, 0xfd, //0x00006b9e orq %rdi, %r13 + 0xc5, 0x45, 0x74, 0xc1, //0x00006ba1 vpcmpeqb %ymm1, %ymm7, %ymm8 + 0xc4, 0xc1, 0x7d, 0xd7, 0xf8, //0x00006ba5 vpmovmskb %ymm8, %edi + 0xc5, 0x4d, 0x74, 0xc1, //0x00006baa vpcmpeqb %ymm1, %ymm6, %ymm8 + 0xc4, 0xc1, 0x7d, 0xd7, 0xd8, //0x00006bae vpmovmskb %ymm8, %ebx + 0x48, 0xc1, 0xe3, 0x20, //0x00006bb3 shlq $32, %rbx + 0x48, 0x09, 0xdf, //0x00006bb7 orq %rbx, %rdi + 0x48, 0x89, 0xfb, //0x00006bba movq %rdi, %rbx + 0x4c, 0x09, 0xd3, //0x00006bbd orq %r10, %rbx + 0x0f, 0x84, 0x4b, 0x00, 0x00, 0x00, //0x00006bc0 je LBB28_68 + 0x4c, 0x89, 0xd3, //0x00006bc6 movq %r10, %rbx + 0x48, 0xf7, 0xd3, //0x00006bc9 notq %rbx + 0x48, 0x21, 0xfb, //0x00006bcc andq %rdi, %rbx + 0x4c, 0x8d, 0x1c, 0x1b, //0x00006bcf leaq (%rbx,%rbx), %r11 + 0x4d, 0x09, 0xd3, //0x00006bd3 orq %r10, %r11 + 0x4c, 0x89, 0xda, //0x00006bd6 movq %r11, %rdx + 0x48, 0xb9, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x00006bd9 movabsq $-6148914691236517206, %rcx + 0x48, 0x31, 0xca, //0x00006be3 xorq %rcx, %rdx + 0x48, 0x21, 0xcf, //0x00006be6 andq %rcx, %rdi + 0x48, 0x21, 0xd7, //0x00006be9 andq %rdx, %rdi + 0x45, 0x31, 0xd2, //0x00006bec xorl %r10d, %r10d + 0x48, 0x01, 0xdf, //0x00006bef addq %rbx, %rdi + 0x41, 0x0f, 0x92, 0xc2, //0x00006bf2 setb %r10b + 0x48, 0x01, 0xff, //0x00006bf6 addq %rdi, %rdi + 0x48, 0xb9, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00006bf9 movabsq $6148914691236517205, %rcx + 0x48, 0x31, 0xcf, //0x00006c03 xorq %rcx, %rdi + 0x4c, 0x21, 0xdf, //0x00006c06 andq %r11, %rdi + 0x48, 0xf7, 0xd7, //0x00006c09 notq %rdi + 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x00006c0c jmp LBB28_69 + //0x00006c11 LBB28_68 + 0x48, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, //0x00006c11 movq $-1, %rdi + 0x45, 0x31, 0xd2, //0x00006c18 xorl %r10d, %r10d + //0x00006c1b LBB28_69 + 0x4c, 0x21, 0xef, //0x00006c1b andq %r13, %rdi + 0xc4, 0xe1, 0xf9, 0x6e, 0xef, //0x00006c1e vmovq %rdi, %xmm5 + 0xc4, 0xe3, 0x51, 0x44, 0xea, 0x00, //0x00006c23 vpclmulqdq $0, %xmm2, %xmm5, %xmm5 + 0xc4, 0xc1, 0xf9, 0x7e, 0xed, //0x00006c29 vmovq %xmm5, %r13 + 0x4d, 0x31, 0xe5, //0x00006c2e xorq %r12, %r13 + 0xc5, 0xc5, 0x74, 0xeb, //0x00006c31 vpcmpeqb %ymm3, %ymm7, %ymm5 + 0xc5, 0xfd, 0xd7, 0xcd, //0x00006c35 vpmovmskb %ymm5, %ecx + 0xc5, 0xcd, 0x74, 0xeb, //0x00006c39 vpcmpeqb %ymm3, %ymm6, %ymm5 + 0xc5, 0xfd, 0xd7, 0xd5, //0x00006c3d vpmovmskb %ymm5, %edx + 0x48, 0xc1, 0xe2, 0x20, //0x00006c41 shlq $32, %rdx + 0x48, 0x09, 0xd1, //0x00006c45 orq %rdx, %rcx + 0x4c, 0x89, 0xea, //0x00006c48 movq %r13, %rdx + 0x48, 0xf7, 0xd2, //0x00006c4b notq %rdx + 0x48, 0x21, 0xd1, //0x00006c4e andq %rdx, %rcx + 0xc5, 0xc5, 0x74, 0xec, //0x00006c51 vpcmpeqb %ymm4, %ymm7, %ymm5 + 0xc5, 0xfd, 0xd7, 0xfd, //0x00006c55 vpmovmskb %ymm5, %edi + 0xc5, 0xcd, 0x74, 0xec, //0x00006c59 vpcmpeqb %ymm4, %ymm6, %ymm5 + 0xc5, 0xfd, 0xd7, 0xdd, //0x00006c5d vpmovmskb %ymm5, %ebx + 0x48, 0xc1, 0xe3, 0x20, //0x00006c61 shlq $32, %rbx + 0x48, 0x09, 0xdf, //0x00006c65 orq %rbx, %rdi + 0x48, 0x21, 0xd7, //0x00006c68 andq %rdx, %rdi + 0x0f, 0x84, 0xe1, 0xfe, 0xff, 0xff, //0x00006c6b je LBB28_64 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00006c71 .p2align 4, 0x90 + //0x00006c80 LBB28_70 + 0x48, 0x8d, 0x5f, 0xff, //0x00006c80 leaq $-1(%rdi), %rbx + 0x48, 0x89, 0xda, //0x00006c84 movq %rbx, %rdx + 0x48, 0x21, 0xca, //0x00006c87 andq %rcx, %rdx + 0xf3, 0x48, 0x0f, 0xb8, 0xd2, //0x00006c8a popcntq %rdx, %rdx + 0x4c, 0x01, 0xc2, //0x00006c8f addq %r8, %rdx + 0x48, 0x39, 0xf2, //0x00006c92 cmpq %rsi, %rdx + 0x0f, 0x86, 0x6b, 0x01, 0x00, 0x00, //0x00006c95 jbe LBB28_88 + 0x48, 0xff, 0xc6, //0x00006c9b incq %rsi + 0x48, 0x21, 0xdf, //0x00006c9e andq %rbx, %rdi + 0x0f, 0x85, 0xd9, 0xff, 0xff, 0xff, //0x00006ca1 jne LBB28_70 + 0xe9, 0xa6, 0xfe, 0xff, 0xff, //0x00006ca7 jmp LBB28_64 + //0x00006cac LBB28_72 + 0x48, 0x85, 0xc9, //0x00006cac testq %rcx, %rcx + 0x0f, 0x8e, 0xb1, 0x01, 0x00, 0x00, //0x00006caf jle LBB28_93 + 0xc5, 0x7c, 0x11, 0x4c, 0x24, 0x40, //0x00006cb5 vmovups %ymm9, $64(%rsp) + 0xc5, 0x7c, 0x11, 0x4c, 0x24, 0x20, //0x00006cbb vmovups %ymm9, $32(%rsp) + 0x44, 0x89, 0xc9, //0x00006cc1 movl %r9d, %ecx + 0x81, 0xe1, 0xff, 0x0f, 0x00, 0x00, //0x00006cc4 andl $4095, %ecx + 0x81, 0xf9, 0xc1, 0x0f, 0x00, 0x00, //0x00006cca cmpl $4033, %ecx + 0x0f, 0x82, 0xa7, 0xfe, 0xff, 0xff, //0x00006cd0 jb LBB28_66 + 0x48, 0x83, 0x7c, 0x24, 0x10, 0x20, //0x00006cd6 cmpq $32, $16(%rsp) + 0x0f, 0x82, 0x22, 0x00, 0x00, 0x00, //0x00006cdc jb LBB28_76 + 0xc4, 0xc1, 0x7c, 0x10, 0x29, //0x00006ce2 vmovups (%r9), %ymm5 + 0xc5, 0xfc, 0x11, 0x6c, 0x24, 0x20, //0x00006ce7 vmovups %ymm5, $32(%rsp) + 0x49, 0x83, 0xc1, 0x20, //0x00006ced addq $32, %r9 + 0x48, 0x8b, 0x4c, 0x24, 0x10, //0x00006cf1 movq $16(%rsp), %rcx + 0x48, 0x8d, 0x59, 0xe0, //0x00006cf6 leaq $-32(%rcx), %rbx + 0x48, 0x8d, 0x7c, 0x24, 0x40, //0x00006cfa leaq $64(%rsp), %rdi + 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x00006cff jmp LBB28_77 + //0x00006d04 LBB28_76 + 0x48, 0x8d, 0x7c, 0x24, 0x20, //0x00006d04 leaq $32(%rsp), %rdi + 0x48, 0x8b, 0x5c, 0x24, 0x10, //0x00006d09 movq $16(%rsp), %rbx + //0x00006d0e LBB28_77 + 0x48, 0x83, 0xfb, 0x10, //0x00006d0e cmpq $16, %rbx + 0x0f, 0x82, 0x5a, 0x00, 0x00, 0x00, //0x00006d12 jb LBB28_78 + 0xc4, 0xc1, 0x78, 0x10, 0x29, //0x00006d18 vmovups (%r9), %xmm5 + 0xc5, 0xf8, 0x11, 0x2f, //0x00006d1d vmovups %xmm5, (%rdi) + 0x49, 0x83, 0xc1, 0x10, //0x00006d21 addq $16, %r9 + 0x48, 0x83, 0xc7, 0x10, //0x00006d25 addq $16, %rdi + 0x48, 0x83, 0xc3, 0xf0, //0x00006d29 addq $-16, %rbx + 0x48, 0x83, 0xfb, 0x08, //0x00006d2d cmpq $8, %rbx + 0x0f, 0x83, 0x45, 0x00, 0x00, 0x00, //0x00006d31 jae LBB28_83 + //0x00006d37 LBB28_79 + 0x48, 0x83, 0xfb, 0x04, //0x00006d37 cmpq $4, %rbx + 0x0f, 0x8c, 0x57, 0x00, 0x00, 0x00, //0x00006d3b jl LBB28_80 + //0x00006d41 LBB28_84 + 0x41, 0x8b, 0x09, //0x00006d41 movl (%r9), %ecx + 0x89, 0x0f, //0x00006d44 movl %ecx, (%rdi) + 0x49, 0x83, 0xc1, 0x04, //0x00006d46 addq $4, %r9 + 0x48, 0x83, 0xc7, 0x04, //0x00006d4a addq $4, %rdi + 0x48, 0x83, 0xc3, 0xfc, //0x00006d4e addq $-4, %rbx + 0x48, 0x83, 0xfb, 0x02, //0x00006d52 cmpq $2, %rbx + 0x0f, 0x83, 0x46, 0x00, 0x00, 0x00, //0x00006d56 jae LBB28_85 + //0x00006d5c LBB28_81 + 0x4c, 0x89, 0xc9, //0x00006d5c movq %r9, %rcx + 0x4c, 0x8d, 0x4c, 0x24, 0x20, //0x00006d5f leaq $32(%rsp), %r9 + 0x48, 0x85, 0xdb, //0x00006d64 testq %rbx, %rbx + 0x0f, 0x85, 0x59, 0x00, 0x00, 0x00, //0x00006d67 jne LBB28_86 + 0xe9, 0x0b, 0xfe, 0xff, 0xff, //0x00006d6d jmp LBB28_66 + //0x00006d72 LBB28_78 + 0x48, 0x83, 0xfb, 0x08, //0x00006d72 cmpq $8, %rbx + 0x0f, 0x82, 0xbb, 0xff, 0xff, 0xff, //0x00006d76 jb LBB28_79 + //0x00006d7c LBB28_83 + 0x49, 0x8b, 0x09, //0x00006d7c movq (%r9), %rcx + 0x48, 0x89, 0x0f, //0x00006d7f movq %rcx, (%rdi) + 0x49, 0x83, 0xc1, 0x08, //0x00006d82 addq $8, %r9 + 0x48, 0x83, 0xc7, 0x08, //0x00006d86 addq $8, %rdi + 0x48, 0x83, 0xc3, 0xf8, //0x00006d8a addq $-8, %rbx + 0x48, 0x83, 0xfb, 0x04, //0x00006d8e cmpq $4, %rbx + 0x0f, 0x8d, 0xa9, 0xff, 0xff, 0xff, //0x00006d92 jge LBB28_84 + //0x00006d98 LBB28_80 + 0x48, 0x83, 0xfb, 0x02, //0x00006d98 cmpq $2, %rbx + 0x0f, 0x82, 0xba, 0xff, 0xff, 0xff, //0x00006d9c jb LBB28_81 + //0x00006da2 LBB28_85 + 0x41, 0x0f, 0xb7, 0x09, //0x00006da2 movzwl (%r9), %ecx + 0x66, 0x89, 0x0f, //0x00006da6 movw %cx, (%rdi) + 0x49, 0x83, 0xc1, 0x02, //0x00006da9 addq $2, %r9 + 0x48, 0x83, 0xc7, 0x02, //0x00006dad addq $2, %rdi + 0x48, 0x83, 0xc3, 0xfe, //0x00006db1 addq $-2, %rbx + 0x4c, 0x89, 0xc9, //0x00006db5 movq %r9, %rcx + 0x4c, 0x8d, 0x4c, 0x24, 0x20, //0x00006db8 leaq $32(%rsp), %r9 + 0x48, 0x85, 0xdb, //0x00006dbd testq %rbx, %rbx + 0x0f, 0x84, 0xb7, 0xfd, 0xff, 0xff, //0x00006dc0 je LBB28_66 + //0x00006dc6 LBB28_86 + 0x8a, 0x09, //0x00006dc6 movb (%rcx), %cl + 0x88, 0x0f, //0x00006dc8 movb %cl, (%rdi) + 0x4c, 0x8d, 0x4c, 0x24, 0x20, //0x00006dca leaq $32(%rsp), %r9 + 0xe9, 0xa9, 0xfd, 0xff, 0xff, //0x00006dcf jmp LBB28_66 + //0x00006dd4 LBB28_87 + 0x49, 0x8b, 0x47, 0x08, //0x00006dd4 movq $8(%r15), %rax + 0x48, 0x0f, 0xbc, 0xcf, //0x00006dd8 bsfq %rdi, %rcx + 0x48, 0x2b, 0x4c, 0x24, 0x10, //0x00006ddc subq $16(%rsp), %rcx + 0x48, 0x8d, 0x44, 0x01, 0x01, //0x00006de1 leaq $1(%rcx,%rax), %rax + 0x49, 0x89, 0x06, //0x00006de6 movq %rax, (%r14) + 0x49, 0x8b, 0x4f, 0x08, //0x00006de9 movq $8(%r15), %rcx + 0x48, 0x39, 0xc8, //0x00006ded cmpq %rcx, %rax + 0x48, 0x0f, 0x47, 0xc1, //0x00006df0 cmovaq %rcx, %rax + 0x49, 0x89, 0x06, //0x00006df4 movq %rax, (%r14) + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00006df7 movq $-1, %rax + 0x4c, 0x89, 0xe1, //0x00006dfe movq %r12, %rcx + 0xe9, 0x2f, 0x00, 0x00, 0x00, //0x00006e01 jmp LBB28_89 + //0x00006e06 LBB28_88 + 0x49, 0x8b, 0x47, 0x08, //0x00006e06 movq $8(%r15), %rax + 0x48, 0x0f, 0xbc, 0xcf, //0x00006e0a bsfq %rdi, %rcx + 0x48, 0x2b, 0x4c, 0x24, 0x10, //0x00006e0e subq $16(%rsp), %rcx + 0x48, 0x8d, 0x44, 0x01, 0x01, //0x00006e13 leaq $1(%rcx,%rax), %rax + 0x49, 0x89, 0x06, //0x00006e18 movq %rax, (%r14) + 0x49, 0x8b, 0x4f, 0x08, //0x00006e1b movq $8(%r15), %rcx + 0x48, 0x39, 0xc8, //0x00006e1f cmpq %rcx, %rax + 0x48, 0x0f, 0x47, 0xc1, //0x00006e22 cmovaq %rcx, %rax + 0x49, 0x89, 0x06, //0x00006e26 movq %rax, (%r14) + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00006e29 movq $-1, %rax + 0x48, 0x8b, 0x4c, 0x24, 0x18, //0x00006e30 movq $24(%rsp), %rcx + //0x00006e35 LBB28_89 + 0x48, 0x0f, 0x47, 0xc8, //0x00006e35 cmovaq %rax, %rcx + 0x48, 0x89, 0xc8, //0x00006e39 movq %rcx, %rax + 0xe9, 0xcd, 0xf8, 0xff, 0xff, //0x00006e3c jmp LBB28_24 + //0x00006e41 LBB28_92 + 0x0f, 0xb7, 0xd3, //0x00006e41 movzwl %bx, %edx + 0xe9, 0xb5, 0xf8, 0xff, 0xff, //0x00006e44 jmp LBB28_21 + //0x00006e49 LBB28_34 + 0x48, 0x85, 0xff, //0x00006e49 testq %rdi, %rdi + 0x0f, 0x85, 0x20, 0x00, 0x00, 0x00, //0x00006e4c jne LBB28_94 + 0x49, 0x01, 0xd7, //0x00006e52 addq %rdx, %r15 + 0x49, 0x29, 0xd3, //0x00006e55 subq %rdx, %r11 + //0x00006e58 LBB28_36 + 0x4d, 0x85, 0xdb, //0x00006e58 testq %r11, %r11 + 0x0f, 0x8f, 0x52, 0x00, 0x00, 0x00, //0x00006e5b jg LBB28_98 + 0xe9, 0xa8, 0xf8, 0xff, 0xff, //0x00006e61 jmp LBB28_24 + //0x00006e66 LBB28_93 + 0x49, 0x8b, 0x4f, 0x08, //0x00006e66 movq $8(%r15), %rcx + 0x49, 0x89, 0x0e, //0x00006e6a movq %rcx, (%r14) + 0xe9, 0x9c, 0xf8, 0xff, 0xff, //0x00006e6d jmp LBB28_24 + //0x00006e72 LBB28_94 + 0x49, 0x39, 0xd3, //0x00006e72 cmpq %rdx, %r11 + 0x0f, 0x84, 0x93, 0xf8, 0xff, 0xff, //0x00006e75 je LBB28_24 + 0x4d, 0x8d, 0x7c, 0x17, 0x01, //0x00006e7b leaq $1(%r15,%rdx), %r15 + 0x48, 0xf7, 0xd2, //0x00006e80 notq %rdx + 0x49, 0x01, 0xd3, //0x00006e83 addq %rdx, %r11 + 0x4d, 0x85, 0xdb, //0x00006e86 testq %r11, %r11 + 0x0f, 0x8f, 0x24, 0x00, 0x00, 0x00, //0x00006e89 jg LBB28_98 + 0xe9, 0x7a, 0xf8, 0xff, 0xff, //0x00006e8f jmp LBB28_24 + //0x00006e94 LBB28_96 + 0x48, 0xc7, 0xc2, 0xfe, 0xff, 0xff, 0xff, //0x00006e94 movq $-2, %rdx + 0xb8, 0x02, 0x00, 0x00, 0x00, //0x00006e9b movl $2, %eax + 0x49, 0x01, 0xc7, //0x00006ea0 addq %rax, %r15 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00006ea3 movq $-1, %rax + 0x49, 0x01, 0xd3, //0x00006eaa addq %rdx, %r11 + 0x0f, 0x8e, 0x5b, 0xf8, 0xff, 0xff, //0x00006ead jle LBB28_24 + //0x00006eb3 LBB28_98 + 0x41, 0x0f, 0xb6, 0x07, //0x00006eb3 movzbl (%r15), %eax + 0x3c, 0x5c, //0x00006eb7 cmpb $92, %al + 0x0f, 0x84, 0xd5, 0xff, 0xff, 0xff, //0x00006eb9 je LBB28_96 + 0x3c, 0x22, //0x00006ebf cmpb $34, %al + 0x0f, 0x84, 0x5a, 0xf9, 0xff, 0xff, //0x00006ec1 je LBB28_91 + 0x48, 0xc7, 0xc2, 0xff, 0xff, 0xff, 0xff, //0x00006ec7 movq $-1, %rdx + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00006ece movl $1, %eax + 0x49, 0x01, 0xc7, //0x00006ed3 addq %rax, %r15 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00006ed6 movq $-1, %rax + 0x49, 0x01, 0xd3, //0x00006edd addq %rdx, %r11 + 0x0f, 0x8f, 0xcd, 0xff, 0xff, 0xff, //0x00006ee0 jg LBB28_98 + 0xe9, 0x23, 0xf8, 0xff, 0xff, //0x00006ee6 jmp LBB28_24 + 0x90, //0x00006eeb .p2align 2, 0x90 + // // .set L28_0_set_24, LBB28_24-LJTI28_0 + // // .set L28_0_set_26, LBB28_26-LJTI28_0 + // // .set L28_0_set_27, LBB28_27-LJTI28_0 + // // .set L28_0_set_2, LBB28_2-LJTI28_0 + // // .set L28_0_set_37, LBB28_37-LJTI28_0 + // // .set L28_0_set_61, LBB28_61-LJTI28_0 + // // .set L28_0_set_25, LBB28_25-LJTI28_0 + // // .set L28_0_set_63, LBB28_63-LJTI28_0 + //0x00006eec LJTI28_0 + 0x22, 0xf8, 0xff, 0xff, //0x00006eec .long L28_0_set_24 + 0x47, 0xf8, 0xff, 0xff, //0x00006ef0 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00006ef4 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00006ef8 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00006efc .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00006f00 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00006f04 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00006f08 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00006f0c .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00006f10 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00006f14 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00006f18 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00006f1c .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00006f20 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00006f24 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00006f28 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00006f2c .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00006f30 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00006f34 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00006f38 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00006f3c .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00006f40 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00006f44 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00006f48 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00006f4c .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00006f50 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00006f54 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00006f58 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00006f5c .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00006f60 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00006f64 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00006f68 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00006f6c .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00006f70 .long L28_0_set_26 + 0x56, 0xf8, 0xff, 0xff, //0x00006f74 .long L28_0_set_27 + 0x47, 0xf8, 0xff, 0xff, //0x00006f78 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00006f7c .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00006f80 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00006f84 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00006f88 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00006f8c .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00006f90 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00006f94 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00006f98 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00006f9c .long L28_0_set_26 + 0xd7, 0xf6, 0xff, 0xff, //0x00006fa0 .long L28_0_set_2 + 0x47, 0xf8, 0xff, 0xff, //0x00006fa4 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00006fa8 .long L28_0_set_26 + 0xd7, 0xf6, 0xff, 0xff, //0x00006fac .long L28_0_set_2 + 0xd7, 0xf6, 0xff, 0xff, //0x00006fb0 .long L28_0_set_2 + 0xd7, 0xf6, 0xff, 0xff, //0x00006fb4 .long L28_0_set_2 + 0xd7, 0xf6, 0xff, 0xff, //0x00006fb8 .long L28_0_set_2 + 0xd7, 0xf6, 0xff, 0xff, //0x00006fbc .long L28_0_set_2 + 0xd7, 0xf6, 0xff, 0xff, //0x00006fc0 .long L28_0_set_2 + 0xd7, 0xf6, 0xff, 0xff, //0x00006fc4 .long L28_0_set_2 + 0xd7, 0xf6, 0xff, 0xff, //0x00006fc8 .long L28_0_set_2 + 0xd7, 0xf6, 0xff, 0xff, //0x00006fcc .long L28_0_set_2 + 0xd7, 0xf6, 0xff, 0xff, //0x00006fd0 .long L28_0_set_2 + 0x47, 0xf8, 0xff, 0xff, //0x00006fd4 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00006fd8 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00006fdc .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00006fe0 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00006fe4 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00006fe8 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00006fec .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00006ff0 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00006ff4 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00006ff8 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00006ffc .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00007000 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00007004 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00007008 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x0000700c .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00007010 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00007014 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00007018 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x0000701c .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00007020 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00007024 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00007028 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x0000702c .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00007030 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00007034 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00007038 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x0000703c .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00007040 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00007044 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00007048 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x0000704c .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00007050 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00007054 .long L28_0_set_26 + 0x48, 0xf9, 0xff, 0xff, //0x00007058 .long L28_0_set_37 + 0x47, 0xf8, 0xff, 0xff, //0x0000705c .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00007060 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00007064 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00007068 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x0000706c .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00007070 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00007074 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00007078 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x0000707c .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00007080 .long L28_0_set_26 + 0x08, 0xfc, 0xff, 0xff, //0x00007084 .long L28_0_set_61 + 0x47, 0xf8, 0xff, 0xff, //0x00007088 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x0000708c .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00007090 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00007094 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x00007098 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x0000709c .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x000070a0 .long L28_0_set_26 + 0x34, 0xf8, 0xff, 0xff, //0x000070a4 .long L28_0_set_25 + 0x47, 0xf8, 0xff, 0xff, //0x000070a8 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x000070ac .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x000070b0 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x000070b4 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x000070b8 .long L28_0_set_26 + 0x34, 0xf8, 0xff, 0xff, //0x000070bc .long L28_0_set_25 + 0x47, 0xf8, 0xff, 0xff, //0x000070c0 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x000070c4 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x000070c8 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x000070cc .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x000070d0 .long L28_0_set_26 + 0x47, 0xf8, 0xff, 0xff, //0x000070d4 .long L28_0_set_26 + 0x1e, 0xfc, 0xff, 0xff, //0x000070d8 .long L28_0_set_63 + 0x90, 0x90, 0x90, 0x90, //0x000070dc .p2align 4, 0x90 + //0x000070e0 _get_by_path + 0x55, //0x000070e0 pushq %rbp + 0x48, 0x89, 0xe5, //0x000070e1 movq %rsp, %rbp + 0x41, 0x57, //0x000070e4 pushq %r15 + 0x41, 0x56, //0x000070e6 pushq %r14 + 0x41, 0x55, //0x000070e8 pushq %r13 + 0x41, 0x54, //0x000070ea pushq %r12 + 0x53, //0x000070ec pushq %rbx + 0x48, 0x83, 0xec, 0x28, //0x000070ed subq $40, %rsp + 0x49, 0x89, 0xf7, //0x000070f1 movq %rsi, %r15 + 0x49, 0x89, 0xfd, //0x000070f4 movq %rdi, %r13 + 0x48, 0x8b, 0x42, 0x08, //0x000070f7 movq $8(%rdx), %rax + 0x48, 0x85, 0xc0, //0x000070fb testq %rax, %rax + 0x0f, 0x84, 0x91, 0x07, 0x00, 0x00, //0x000070fe je LBB29_98 + 0x4c, 0x8b, 0x32, //0x00007104 movq (%rdx), %r14 + 0x48, 0xc1, 0xe0, 0x04, //0x00007107 shlq $4, %rax + 0x4c, 0x01, 0xf0, //0x0000710b addq %r14, %rax + 0x48, 0x89, 0x4d, 0xb0, //0x0000710e movq %rcx, $-80(%rbp) + 0x48, 0x89, 0x45, 0xb8, //0x00007112 movq %rax, $-72(%rbp) + //0x00007116 LBB29_2 + 0x49, 0x8b, 0x7d, 0x00, //0x00007116 movq (%r13), %rdi + 0x49, 0x8b, 0x75, 0x08, //0x0000711a movq $8(%r13), %rsi + 0x4c, 0x89, 0xfa, //0x0000711e movq %r15, %rdx + 0xe8, 0xfa, 0xd0, 0xff, 0xff, //0x00007121 callq _advance_ns + 0x49, 0x8b, 0x0e, //0x00007126 movq (%r14), %rcx + 0x48, 0x85, 0xc9, //0x00007129 testq %rcx, %rcx + 0x0f, 0x84, 0xbe, 0x07, 0x00, 0x00, //0x0000712c je LBB29_104 + 0x8a, 0x49, 0x17, //0x00007132 movb $23(%rcx), %cl + 0x80, 0xe1, 0x1f, //0x00007135 andb $31, %cl + 0x80, 0xf9, 0x02, //0x00007138 cmpb $2, %cl + 0x0f, 0x84, 0xbf, 0x06, 0x00, 0x00, //0x0000713b je LBB29_91 + 0x80, 0xf9, 0x18, //0x00007141 cmpb $24, %cl + 0x0f, 0x85, 0xa6, 0x07, 0x00, 0x00, //0x00007144 jne LBB29_104 + 0x3c, 0x7b, //0x0000714a cmpb $123, %al + 0x4c, 0x89, 0x75, 0xc8, //0x0000714c movq %r14, $-56(%rbp) + 0x0f, 0x85, 0x81, 0x07, 0x00, 0x00, //0x00007150 jne LBB29_102 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007156 .p2align 4, 0x90 + //0x00007160 LBB29_6 + 0x49, 0x8b, 0x7d, 0x00, //0x00007160 movq (%r13), %rdi + 0x49, 0x8b, 0x75, 0x08, //0x00007164 movq $8(%r13), %rsi + 0x4c, 0x89, 0xfa, //0x00007168 movq %r15, %rdx + 0xe8, 0xb0, 0xd0, 0xff, 0xff, //0x0000716b callq _advance_ns + 0x3c, 0x22, //0x00007170 cmpb $34, %al + 0x0f, 0x85, 0x40, 0x07, 0x00, 0x00, //0x00007172 jne LBB29_99 + 0x49, 0x8b, 0x46, 0x08, //0x00007178 movq $8(%r14), %rax + 0x4c, 0x8b, 0x30, //0x0000717c movq (%rax), %r14 + 0x4c, 0x8b, 0x60, 0x08, //0x0000717f movq $8(%rax), %r12 + 0x48, 0xc7, 0x45, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00007183 movq $-1, $-64(%rbp) + 0x49, 0x8b, 0x1f, //0x0000718b movq (%r15), %rbx + 0x4c, 0x89, 0xef, //0x0000718e movq %r13, %rdi + 0x48, 0x89, 0xde, //0x00007191 movq %rbx, %rsi + 0x48, 0x8d, 0x55, 0xc0, //0x00007194 leaq $-64(%rbp), %rdx + 0xe8, 0xe3, 0x2b, 0x00, 0x00, //0x00007198 callq _advance_string_default + 0x48, 0x85, 0xc0, //0x0000719d testq %rax, %rax + 0x0f, 0x88, 0x59, 0x07, 0x00, 0x00, //0x000071a0 js LBB29_105 + 0x49, 0x89, 0x07, //0x000071a6 movq %rax, (%r15) + 0x48, 0x8b, 0x4d, 0xc0, //0x000071a9 movq $-64(%rbp), %rcx + 0x48, 0x83, 0xf9, 0xff, //0x000071ad cmpq $-1, %rcx + 0x0f, 0x84, 0x09, 0x00, 0x00, 0x00, //0x000071b1 je LBB29_10 + 0x48, 0x39, 0xc1, //0x000071b7 cmpq %rax, %rcx + 0x0f, 0x8e, 0x70, 0x02, 0x00, 0x00, //0x000071ba jle LBB29_45 + //0x000071c0 LBB29_10 + 0x48, 0x89, 0xd9, //0x000071c0 movq %rbx, %rcx + 0x48, 0xf7, 0xd1, //0x000071c3 notq %rcx + 0x48, 0x01, 0xc8, //0x000071c6 addq %rcx, %rax + 0x48, 0x89, 0xc1, //0x000071c9 movq %rax, %rcx + 0x4c, 0x09, 0xe1, //0x000071cc orq %r12, %rcx + 0x0f, 0x84, 0xcb, 0x00, 0x00, 0x00, //0x000071cf je LBB29_21 + 0x4c, 0x39, 0xe0, //0x000071d5 cmpq %r12, %rax + 0x0f, 0x85, 0xd2, 0x00, 0x00, 0x00, //0x000071d8 jne LBB29_22 + 0x49, 0x03, 0x5d, 0x00, //0x000071de addq (%r13), %rbx + 0x49, 0x83, 0xfc, 0x20, //0x000071e2 cmpq $32, %r12 + 0x0f, 0x82, 0x57, 0x00, 0x00, 0x00, //0x000071e6 jb LBB29_17 + 0x49, 0x8d, 0x44, 0x24, 0xe0, //0x000071ec leaq $-32(%r12), %rax + 0x48, 0x89, 0xc2, //0x000071f1 movq %rax, %rdx + 0x48, 0x83, 0xe2, 0xe0, //0x000071f4 andq $-32, %rdx + 0x48, 0x8d, 0x4c, 0x13, 0x20, //0x000071f8 leaq $32(%rbx,%rdx), %rcx + 0x49, 0x8d, 0x54, 0x16, 0x20, //0x000071fd leaq $32(%r14,%rdx), %rdx + 0x83, 0xe0, 0x1f, //0x00007202 andl $31, %eax + 0x31, 0xf6, //0x00007205 xorl %esi, %esi + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007207 .p2align 4, 0x90 + //0x00007210 LBB29_14 + 0xc5, 0xfe, 0x6f, 0x04, 0x33, //0x00007210 vmovdqu (%rbx,%rsi), %ymm0 + 0xc4, 0xc1, 0x7d, 0x74, 0x04, 0x36, //0x00007215 vpcmpeqb (%r14,%rsi), %ymm0, %ymm0 + 0xc5, 0xfd, 0xd7, 0xf8, //0x0000721b vpmovmskb %ymm0, %edi + 0x83, 0xff, 0xff, //0x0000721f cmpl $-1, %edi + 0x0f, 0x85, 0x08, 0x01, 0x00, 0x00, //0x00007222 jne LBB29_28 + 0x49, 0x83, 0xc4, 0xe0, //0x00007228 addq $-32, %r12 + 0x48, 0x83, 0xc6, 0x20, //0x0000722c addq $32, %rsi + 0x49, 0x83, 0xfc, 0x1f, //0x00007230 cmpq $31, %r12 + 0x0f, 0x87, 0xd6, 0xff, 0xff, 0xff, //0x00007234 ja LBB29_14 + 0x49, 0x89, 0xc4, //0x0000723a movq %rax, %r12 + 0x49, 0x89, 0xd6, //0x0000723d movq %rdx, %r14 + 0x48, 0x89, 0xcb, //0x00007240 movq %rcx, %rbx + //0x00007243 LBB29_17 + 0x89, 0xde, //0x00007243 movl %ebx, %esi + 0x81, 0xe6, 0xff, 0x0f, 0x00, 0x00, //0x00007245 andl $4095, %esi + 0x44, 0x89, 0xf7, //0x0000724b movl %r14d, %edi + 0x81, 0xe7, 0xff, 0x0f, 0x00, 0x00, //0x0000724e andl $4095, %edi + 0x48, 0x81, 0xff, 0xe0, 0x0f, 0x00, 0x00, //0x00007254 cmpq $4064, %rdi + 0x0f, 0x87, 0x5a, 0x00, 0x00, 0x00, //0x0000725b ja LBB29_23 + 0x81, 0xfe, 0xe1, 0x0f, 0x00, 0x00, //0x00007261 cmpl $4065, %esi + 0x0f, 0x83, 0x4e, 0x00, 0x00, 0x00, //0x00007267 jae LBB29_23 + 0xc5, 0xfe, 0x6f, 0x03, //0x0000726d vmovdqu (%rbx), %ymm0 + 0xc4, 0xc1, 0x7d, 0x74, 0x06, //0x00007271 vpcmpeqb (%r14), %ymm0, %ymm0 + 0xc5, 0xfd, 0xd7, 0xc0, //0x00007276 vpmovmskb %ymm0, %eax + 0x83, 0xf8, 0xff, //0x0000727a cmpl $-1, %eax + 0x0f, 0x84, 0x08, 0x01, 0x00, 0x00, //0x0000727d je LBB29_33 + 0xf7, 0xd0, //0x00007283 notl %eax + 0x48, 0x0f, 0xbc, 0xc0, //0x00007285 bsfq %rax, %rax + 0x4c, 0x39, 0xe0, //0x00007289 cmpq %r12, %rax + 0x40, 0x0f, 0x93, 0xc6, //0x0000728c setae %sil + 0x4c, 0x8b, 0x75, 0xc8, //0x00007290 movq $-56(%rbp), %r14 + 0xe9, 0x47, 0x01, 0x00, 0x00, //0x00007294 jmp LBB29_40 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007299 .p2align 4, 0x90 + //0x000072a0 LBB29_21 + 0xbb, 0x01, 0x00, 0x00, 0x00, //0x000072a0 movl $1, %ebx + 0x4c, 0x8b, 0x75, 0xc8, //0x000072a5 movq $-56(%rbp), %r14 + 0xe9, 0x36, 0x01, 0x00, 0x00, //0x000072a9 jmp LBB29_41 + 0x90, 0x90, //0x000072ae .p2align 4, 0x90 + //0x000072b0 LBB29_22 + 0x31, 0xdb, //0x000072b0 xorl %ebx, %ebx + 0x4c, 0x8b, 0x75, 0xc8, //0x000072b2 movq $-56(%rbp), %r14 + 0xe9, 0x29, 0x01, 0x00, 0x00, //0x000072b6 jmp LBB29_41 + //0x000072bb LBB29_23 + 0x49, 0x83, 0xfc, 0x10, //0x000072bb cmpq $16, %r12 + 0x0f, 0x82, 0x76, 0x00, 0x00, 0x00, //0x000072bf jb LBB29_29 + 0x49, 0x8d, 0x44, 0x24, 0xf0, //0x000072c5 leaq $-16(%r12), %rax + 0x48, 0x89, 0xc1, //0x000072ca movq %rax, %rcx + 0x48, 0x83, 0xe1, 0xf0, //0x000072cd andq $-16, %rcx + 0x48, 0x8d, 0x54, 0x0b, 0x10, //0x000072d1 leaq $16(%rbx,%rcx), %rdx + 0x49, 0x8d, 0x4c, 0x0e, 0x10, //0x000072d6 leaq $16(%r14,%rcx), %rcx + 0x83, 0xe0, 0x0f, //0x000072db andl $15, %eax + 0x31, 0xf6, //0x000072de xorl %esi, %esi + //0x000072e0 .p2align 4, 0x90 + //0x000072e0 LBB29_25 + 0xc5, 0xfa, 0x6f, 0x04, 0x33, //0x000072e0 vmovdqu (%rbx,%rsi), %xmm0 + 0xc4, 0xc1, 0x79, 0x74, 0x04, 0x36, //0x000072e5 vpcmpeqb (%r14,%rsi), %xmm0, %xmm0 + 0xc5, 0xf9, 0xd7, 0xf8, //0x000072eb vpmovmskb %xmm0, %edi + 0x66, 0x83, 0xff, 0xff, //0x000072ef cmpw $-1, %di + 0x0f, 0x85, 0x37, 0x00, 0x00, 0x00, //0x000072f3 jne LBB29_28 + 0x49, 0x83, 0xc4, 0xf0, //0x000072f9 addq $-16, %r12 + 0x48, 0x83, 0xc6, 0x10, //0x000072fd addq $16, %rsi + 0x49, 0x83, 0xfc, 0x0f, //0x00007301 cmpq $15, %r12 + 0x0f, 0x87, 0xd5, 0xff, 0xff, 0xff, //0x00007305 ja LBB29_25 + 0x89, 0xd6, //0x0000730b movl %edx, %esi + 0x81, 0xe6, 0xff, 0x0f, 0x00, 0x00, //0x0000730d andl $4095, %esi + 0x89, 0xcf, //0x00007313 movl %ecx, %edi + 0x81, 0xe7, 0xff, 0x0f, 0x00, 0x00, //0x00007315 andl $4095, %edi + 0x81, 0xff, 0xf0, 0x0f, 0x00, 0x00, //0x0000731b cmpl $4080, %edi + 0x4c, 0x8b, 0x75, 0xc8, //0x00007321 movq $-56(%rbp), %r14 + 0x0f, 0x86, 0x29, 0x00, 0x00, 0x00, //0x00007325 jbe LBB29_30 + 0xe9, 0x67, 0x00, 0x00, 0x00, //0x0000732b jmp LBB29_34 + //0x00007330 LBB29_28 + 0x31, 0xf6, //0x00007330 xorl %esi, %esi + 0x4c, 0x8b, 0x75, 0xc8, //0x00007332 movq $-56(%rbp), %r14 + 0xe9, 0xa5, 0x00, 0x00, 0x00, //0x00007336 jmp LBB29_40 + //0x0000733b LBB29_29 + 0x4c, 0x89, 0xe0, //0x0000733b movq %r12, %rax + 0x4c, 0x89, 0xf1, //0x0000733e movq %r14, %rcx + 0x48, 0x89, 0xda, //0x00007341 movq %rbx, %rdx + 0x81, 0xff, 0xf0, 0x0f, 0x00, 0x00, //0x00007344 cmpl $4080, %edi + 0x4c, 0x8b, 0x75, 0xc8, //0x0000734a movq $-56(%rbp), %r14 + 0x0f, 0x87, 0x43, 0x00, 0x00, 0x00, //0x0000734e ja LBB29_34 + //0x00007354 LBB29_30 + 0x81, 0xfe, 0xf1, 0x0f, 0x00, 0x00, //0x00007354 cmpl $4081, %esi + 0x0f, 0x83, 0x37, 0x00, 0x00, 0x00, //0x0000735a jae LBB29_34 + 0xc5, 0xfa, 0x6f, 0x02, //0x00007360 vmovdqu (%rdx), %xmm0 + 0xc5, 0xf9, 0x74, 0x01, //0x00007364 vpcmpeqb (%rcx), %xmm0, %xmm0 + 0xc5, 0xf9, 0xd7, 0xc8, //0x00007368 vpmovmskb %xmm0, %ecx + 0x66, 0x83, 0xf9, 0xff, //0x0000736c cmpw $-1, %cx + 0x0f, 0x84, 0x58, 0x00, 0x00, 0x00, //0x00007370 je LBB29_38 + 0xf7, 0xd1, //0x00007376 notl %ecx + 0x0f, 0xb7, 0xc9, //0x00007378 movzwl %cx, %ecx + 0x48, 0x0f, 0xbc, 0xc9, //0x0000737b bsfq %rcx, %rcx + 0x48, 0x39, 0xc1, //0x0000737f cmpq %rax, %rcx + 0x40, 0x0f, 0x93, 0xc6, //0x00007382 setae %sil + 0xe9, 0x55, 0x00, 0x00, 0x00, //0x00007386 jmp LBB29_40 + //0x0000738b LBB29_33 + 0x40, 0xb6, 0x01, //0x0000738b movb $1, %sil + 0x4c, 0x8b, 0x75, 0xc8, //0x0000738e movq $-56(%rbp), %r14 + 0xe9, 0x49, 0x00, 0x00, 0x00, //0x00007392 jmp LBB29_40 + //0x00007397 LBB29_34 + 0x40, 0xb6, 0x01, //0x00007397 movb $1, %sil + 0x48, 0x85, 0xc0, //0x0000739a testq %rax, %rax + 0x0f, 0x84, 0x3d, 0x00, 0x00, 0x00, //0x0000739d je LBB29_40 + 0x31, 0xff, //0x000073a3 xorl %edi, %edi + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000073a5 .p2align 4, 0x90 + //0x000073b0 LBB29_36 + 0x0f, 0xb6, 0x1c, 0x3a, //0x000073b0 movzbl (%rdx,%rdi), %ebx + 0x3a, 0x1c, 0x39, //0x000073b4 cmpb (%rcx,%rdi), %bl + 0x0f, 0x85, 0x19, 0x00, 0x00, 0x00, //0x000073b7 jne LBB29_39 + 0x48, 0xff, 0xc7, //0x000073bd incq %rdi + 0x48, 0x39, 0xf8, //0x000073c0 cmpq %rdi, %rax + 0x0f, 0x85, 0xe7, 0xff, 0xff, 0xff, //0x000073c3 jne LBB29_36 + 0xe9, 0x12, 0x00, 0x00, 0x00, //0x000073c9 jmp LBB29_40 + //0x000073ce LBB29_38 + 0x40, 0xb6, 0x01, //0x000073ce movb $1, %sil + 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x000073d1 jmp LBB29_40 + //0x000073d6 LBB29_39 + 0x31, 0xf6, //0x000073d6 xorl %esi, %esi + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000073d8 .p2align 4, 0x90 + //0x000073e0 LBB29_40 + 0x40, 0x0f, 0xb6, 0xde, //0x000073e0 movzbl %sil, %ebx + //0x000073e4 LBB29_41 + 0x49, 0x8b, 0x7d, 0x00, //0x000073e4 movq (%r13), %rdi + //0x000073e8 LBB29_42 + 0x49, 0x8b, 0x75, 0x08, //0x000073e8 movq $8(%r13), %rsi + 0x4c, 0x89, 0xfa, //0x000073ec movq %r15, %rdx + 0xc5, 0xf8, 0x77, //0x000073ef vzeroupper + 0xe8, 0x29, 0xce, 0xff, 0xff, //0x000073f2 callq _advance_ns + 0x3c, 0x3a, //0x000073f7 cmpb $58, %al + 0x0f, 0x85, 0xd8, 0x04, 0x00, 0x00, //0x000073f9 jne LBB29_102 + 0x48, 0x85, 0xdb, //0x000073ff testq %rbx, %rbx + 0x0f, 0x85, 0x78, 0x04, 0x00, 0x00, //0x00007402 jne LBB29_97 + 0x4c, 0x89, 0xef, //0x00007408 movq %r13, %rdi + 0x4c, 0x89, 0xfe, //0x0000740b movq %r15, %rsi + 0xe8, 0x5d, 0xf1, 0xff, 0xff, //0x0000740e callq _skip_one_fast + 0x49, 0x8b, 0x7d, 0x00, //0x00007413 movq (%r13), %rdi + 0x49, 0x8b, 0x75, 0x08, //0x00007417 movq $8(%r13), %rsi + 0x4c, 0x89, 0xfa, //0x0000741b movq %r15, %rdx + 0xe8, 0xfd, 0xcd, 0xff, 0xff, //0x0000741e callq _advance_ns + 0x3c, 0x2c, //0x00007423 cmpb $44, %al + 0x0f, 0x84, 0x35, 0xfd, 0xff, 0xff, //0x00007425 je LBB29_6 + 0xe9, 0x88, 0x04, 0x00, 0x00, //0x0000742b jmp LBB29_99 + //0x00007430 LBB29_45 + 0x48, 0xc7, 0x45, 0xd0, 0x00, 0x00, 0x00, 0x00, //0x00007430 movq $0, $-48(%rbp) + 0x49, 0x8b, 0x7d, 0x00, //0x00007438 movq (%r13), %rdi + 0x48, 0x01, 0xfb, //0x0000743c addq %rdi, %rbx + 0x4c, 0x8d, 0x44, 0x07, 0xff, //0x0000743f leaq $-1(%rdi,%rax), %r8 + 0x4f, 0x8d, 0x14, 0x26, //0x00007444 leaq (%r14,%r12), %r10 + 0x4d, 0x85, 0xe4, //0x00007448 testq %r12, %r12 + 0x0f, 0x8e, 0x85, 0x03, 0x00, 0x00, //0x0000744b jle LBB29_89 + 0x49, 0x39, 0xd8, //0x00007451 cmpq %rbx, %r8 + 0x0f, 0x86, 0x7c, 0x03, 0x00, 0x00, //0x00007454 jbe LBB29_89 + //0x0000745a LBB29_47 + 0x8a, 0x03, //0x0000745a movb (%rbx), %al + 0x3c, 0x5c, //0x0000745c cmpb $92, %al + 0x0f, 0x85, 0x58, 0x00, 0x00, 0x00, //0x0000745e jne LBB29_52 + 0x4c, 0x89, 0xc1, //0x00007464 movq %r8, %rcx + 0x48, 0x29, 0xd9, //0x00007467 subq %rbx, %rcx + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x0000746a movq $-1, %rax + 0x48, 0x85, 0xc9, //0x00007471 testq %rcx, %rcx + 0x0f, 0x8e, 0xba, 0x04, 0x00, 0x00, //0x00007474 jle LBB29_109 + 0x0f, 0xb6, 0x53, 0x01, //0x0000747a movzbl $1(%rbx), %edx + 0x48, 0x8d, 0x35, 0xab, 0xa0, 0x00, 0x00, //0x0000747e leaq $41131(%rip), %rsi /* __UnquoteTab+0(%rip) */ + 0x44, 0x8a, 0x1c, 0x32, //0x00007485 movb (%rdx,%rsi), %r11b + 0x41, 0x80, 0xfb, 0xff, //0x00007489 cmpb $-1, %r11b + 0x0f, 0x84, 0x3d, 0x00, 0x00, 0x00, //0x0000748d je LBB29_54 + 0x45, 0x84, 0xdb, //0x00007493 testb %r11b, %r11b + 0x0f, 0x84, 0x86, 0x04, 0x00, 0x00, //0x00007496 je LBB29_107 + 0x44, 0x88, 0x5d, 0xd0, //0x0000749c movb %r11b, $-48(%rbp) + 0x48, 0x83, 0xc3, 0x02, //0x000074a0 addq $2, %rbx + 0xb9, 0x01, 0x00, 0x00, 0x00, //0x000074a4 movl $1, %ecx + 0x4c, 0x8d, 0x4c, 0x0d, 0xd0, //0x000074a9 leaq $-48(%rbp,%rcx), %r9 + 0x4d, 0x39, 0xd6, //0x000074ae cmpq %r10, %r14 + 0x0f, 0x82, 0x2c, 0x01, 0x00, 0x00, //0x000074b1 jb LBB29_65 + 0xe9, 0xfb, 0x02, 0x00, 0x00, //0x000074b7 jmp LBB29_73 + //0x000074bc LBB29_52 + 0x41, 0x3a, 0x06, //0x000074bc cmpb (%r14), %al + 0x0f, 0x85, 0x28, 0x03, 0x00, 0x00, //0x000074bf jne LBB29_90 + 0x48, 0xff, 0xc3, //0x000074c5 incq %rbx + 0x49, 0xff, 0xc6, //0x000074c8 incq %r14 + 0xe9, 0xf4, 0x02, 0x00, 0x00, //0x000074cb jmp LBB29_75 + //0x000074d0 LBB29_54 + 0x48, 0x83, 0xf9, 0x03, //0x000074d0 cmpq $3, %rcx + 0x0f, 0x8e, 0x57, 0x04, 0x00, 0x00, //0x000074d4 jle LBB29_108 + 0x8b, 0x43, 0x02, //0x000074da movl $2(%rbx), %eax + 0x89, 0xc2, //0x000074dd movl %eax, %edx + 0xf7, 0xd2, //0x000074df notl %edx + 0x8d, 0xb0, 0xd0, 0xcf, 0xcf, 0xcf, //0x000074e1 leal $-808464432(%rax), %esi + 0x81, 0xe2, 0x80, 0x80, 0x80, 0x80, //0x000074e7 andl $-2139062144, %edx + 0x85, 0xf2, //0x000074ed testl %esi, %edx + 0x0f, 0x85, 0x1d, 0x04, 0x00, 0x00, //0x000074ef jne LBB29_106 + 0x8d, 0xb0, 0x19, 0x19, 0x19, 0x19, //0x000074f5 leal $421075225(%rax), %esi + 0x09, 0xc6, //0x000074fb orl %eax, %esi + 0xf7, 0xc6, 0x80, 0x80, 0x80, 0x80, //0x000074fd testl $-2139062144, %esi + 0x0f, 0x85, 0x09, 0x04, 0x00, 0x00, //0x00007503 jne LBB29_106 + 0x89, 0xc6, //0x00007509 movl %eax, %esi + 0x81, 0xe6, 0x7f, 0x7f, 0x7f, 0x7f, //0x0000750b andl $2139062143, %esi + 0x41, 0xb9, 0xc0, 0xc0, 0xc0, 0xc0, //0x00007511 movl $-1061109568, %r9d + 0x41, 0x29, 0xf1, //0x00007517 subl %esi, %r9d + 0x44, 0x8d, 0x9e, 0x46, 0x46, 0x46, 0x46, //0x0000751a leal $1179010630(%rsi), %r11d + 0x41, 0x21, 0xd1, //0x00007521 andl %edx, %r9d + 0x45, 0x85, 0xd9, //0x00007524 testl %r11d, %r9d + 0x0f, 0x85, 0xe5, 0x03, 0x00, 0x00, //0x00007527 jne LBB29_106 + 0x41, 0xb9, 0xe0, 0xe0, 0xe0, 0xe0, //0x0000752d movl $-522133280, %r9d + 0x41, 0x29, 0xf1, //0x00007533 subl %esi, %r9d + 0x81, 0xc6, 0x39, 0x39, 0x39, 0x39, //0x00007536 addl $960051513, %esi + 0x44, 0x21, 0xca, //0x0000753c andl %r9d, %edx + 0x85, 0xf2, //0x0000753f testl %esi, %edx + 0x0f, 0x85, 0xcb, 0x03, 0x00, 0x00, //0x00007541 jne LBB29_106 + 0x0f, 0xc8, //0x00007547 bswapl %eax + 0x89, 0xc2, //0x00007549 movl %eax, %edx + 0xc1, 0xea, 0x04, //0x0000754b shrl $4, %edx + 0xf7, 0xd2, //0x0000754e notl %edx + 0x81, 0xe2, 0x01, 0x01, 0x01, 0x01, //0x00007550 andl $16843009, %edx + 0x8d, 0x14, 0xd2, //0x00007556 leal (%rdx,%rdx,8), %edx + 0x25, 0x0f, 0x0f, 0x0f, 0x0f, //0x00007559 andl $252645135, %eax + 0x01, 0xd0, //0x0000755e addl %edx, %eax + 0x41, 0x89, 0xc3, //0x00007560 movl %eax, %r11d + 0x41, 0xc1, 0xeb, 0x04, //0x00007563 shrl $4, %r11d + 0x41, 0x09, 0xc3, //0x00007567 orl %eax, %r11d + 0x44, 0x89, 0xde, //0x0000756a movl %r11d, %esi + 0xc1, 0xee, 0x08, //0x0000756d shrl $8, %esi + 0x81, 0xe6, 0x00, 0xff, 0x00, 0x00, //0x00007570 andl $65280, %esi + 0x41, 0x0f, 0xb6, 0xc3, //0x00007576 movzbl %r11b, %eax + 0x09, 0xf0, //0x0000757a orl %esi, %eax + 0x4c, 0x8d, 0x4b, 0x06, //0x0000757c leaq $6(%rbx), %r9 + 0x83, 0xf8, 0x7f, //0x00007580 cmpl $127, %eax + 0x0f, 0x86, 0xab, 0x00, 0x00, 0x00, //0x00007583 jbe LBB29_77 + 0x3d, 0xff, 0x07, 0x00, 0x00, //0x00007589 cmpl $2047, %eax + 0x0f, 0x86, 0xbf, 0x00, 0x00, 0x00, //0x0000758e jbe LBB29_78 + 0x44, 0x89, 0xda, //0x00007594 movl %r11d, %edx + 0x81, 0xe2, 0x00, 0x00, 0xf8, 0x00, //0x00007597 andl $16252928, %edx + 0x81, 0xfa, 0x00, 0x00, 0xd8, 0x00, //0x0000759d cmpl $14155776, %edx + 0x0f, 0x84, 0xdc, 0x00, 0x00, 0x00, //0x000075a3 je LBB29_79 + 0xc1, 0xee, 0x0c, //0x000075a9 shrl $12, %esi + 0x40, 0x80, 0xce, 0xe0, //0x000075ac orb $-32, %sil + 0x40, 0x88, 0x75, 0xd0, //0x000075b0 movb %sil, $-48(%rbp) + 0xc1, 0xe8, 0x06, //0x000075b4 shrl $6, %eax + 0x24, 0x3f, //0x000075b7 andb $63, %al + 0x0c, 0x80, //0x000075b9 orb $-128, %al + 0x88, 0x45, 0xd1, //0x000075bb movb %al, $-47(%rbp) + 0x41, 0x80, 0xe3, 0x3f, //0x000075be andb $63, %r11b + 0x41, 0x80, 0xcb, 0x80, //0x000075c2 orb $-128, %r11b + 0x44, 0x88, 0x5d, 0xd2, //0x000075c6 movb %r11b, $-46(%rbp) + 0xb9, 0x03, 0x00, 0x00, 0x00, //0x000075ca movl $3, %ecx + 0x41, 0x89, 0xf3, //0x000075cf movl %esi, %r11d + 0x4c, 0x89, 0xcb, //0x000075d2 movq %r9, %rbx + 0x4c, 0x8d, 0x4c, 0x0d, 0xd0, //0x000075d5 leaq $-48(%rbp,%rcx), %r9 + 0x4d, 0x39, 0xd6, //0x000075da cmpq %r10, %r14 + 0x0f, 0x83, 0xd4, 0x01, 0x00, 0x00, //0x000075dd jae LBB29_73 + //0x000075e3 LBB29_65 + 0x48, 0x8d, 0x45, 0xd0, //0x000075e3 leaq $-48(%rbp), %rax + 0x49, 0x39, 0xc1, //0x000075e7 cmpq %rax, %r9 + 0x0f, 0x86, 0xc7, 0x01, 0x00, 0x00, //0x000075ea jbe LBB29_73 + 0x45, 0x38, 0x1e, //0x000075f0 cmpb %r11b, (%r14) + 0x0f, 0x85, 0xbe, 0x01, 0x00, 0x00, //0x000075f3 jne LBB29_73 + 0x49, 0xff, 0xc6, //0x000075f9 incq %r14 + 0x48, 0x8d, 0x55, 0xd1, //0x000075fc leaq $-47(%rbp), %rdx + 0x4c, 0x89, 0xf6, //0x00007600 movq %r14, %rsi + //0x00007603 LBB29_68 + 0x49, 0x89, 0xf6, //0x00007603 movq %rsi, %r14 + 0x48, 0x89, 0xd1, //0x00007606 movq %rdx, %rcx + 0x4c, 0x39, 0xca, //0x00007609 cmpq %r9, %rdx + 0x0f, 0x83, 0xa9, 0x01, 0x00, 0x00, //0x0000760c jae LBB29_74 + 0x4d, 0x39, 0xd6, //0x00007612 cmpq %r10, %r14 + 0x0f, 0x83, 0xa0, 0x01, 0x00, 0x00, //0x00007615 jae LBB29_74 + 0x41, 0x0f, 0xb6, 0x06, //0x0000761b movzbl (%r14), %eax + 0x49, 0x8d, 0x76, 0x01, //0x0000761f leaq $1(%r14), %rsi + 0x48, 0x8d, 0x51, 0x01, //0x00007623 leaq $1(%rcx), %rdx + 0x3a, 0x01, //0x00007627 cmpb (%rcx), %al + 0x0f, 0x84, 0xd4, 0xff, 0xff, 0xff, //0x00007629 je LBB29_68 + 0xe9, 0x87, 0x01, 0x00, 0x00, //0x0000762f jmp LBB29_74 + //0x00007634 LBB29_77 + 0x44, 0x88, 0x5d, 0xd0, //0x00007634 movb %r11b, $-48(%rbp) + 0xb9, 0x01, 0x00, 0x00, 0x00, //0x00007638 movl $1, %ecx + 0x4c, 0x89, 0xcb, //0x0000763d movq %r9, %rbx + 0x4c, 0x8d, 0x4c, 0x0d, 0xd0, //0x00007640 leaq $-48(%rbp,%rcx), %r9 + 0x4d, 0x39, 0xd6, //0x00007645 cmpq %r10, %r14 + 0x0f, 0x82, 0x95, 0xff, 0xff, 0xff, //0x00007648 jb LBB29_65 + 0xe9, 0x64, 0x01, 0x00, 0x00, //0x0000764e jmp LBB29_73 + //0x00007653 LBB29_78 + 0xc1, 0xe8, 0x06, //0x00007653 shrl $6, %eax + 0x0c, 0xc0, //0x00007656 orb $-64, %al + 0x88, 0x45, 0xd0, //0x00007658 movb %al, $-48(%rbp) + 0x41, 0x80, 0xe3, 0x3f, //0x0000765b andb $63, %r11b + 0x41, 0x80, 0xcb, 0x80, //0x0000765f orb $-128, %r11b + 0x44, 0x88, 0x5d, 0xd1, //0x00007663 movb %r11b, $-47(%rbp) + 0xb9, 0x02, 0x00, 0x00, 0x00, //0x00007667 movl $2, %ecx + 0x41, 0x89, 0xc3, //0x0000766c movl %eax, %r11d + 0x4c, 0x89, 0xcb, //0x0000766f movq %r9, %rbx + 0x4c, 0x8d, 0x4c, 0x0d, 0xd0, //0x00007672 leaq $-48(%rbp,%rcx), %r9 + 0x4d, 0x39, 0xd6, //0x00007677 cmpq %r10, %r14 + 0x0f, 0x82, 0x63, 0xff, 0xff, 0xff, //0x0000767a jb LBB29_65 + 0xe9, 0x32, 0x01, 0x00, 0x00, //0x00007680 jmp LBB29_73 + //0x00007685 LBB29_79 + 0x48, 0x83, 0xf9, 0x06, //0x00007685 cmpq $6, %rcx + 0x0f, 0x8c, 0xbc, 0x02, 0x00, 0x00, //0x00007689 jl LBB29_111 + 0x3d, 0xff, 0xdb, 0x00, 0x00, //0x0000768f cmpl $56319, %eax + 0x0f, 0x87, 0xb1, 0x02, 0x00, 0x00, //0x00007694 ja LBB29_111 + 0x41, 0x80, 0x39, 0x5c, //0x0000769a cmpb $92, (%r9) + 0x0f, 0x85, 0xa7, 0x02, 0x00, 0x00, //0x0000769e jne LBB29_111 + 0x80, 0x7b, 0x07, 0x75, //0x000076a4 cmpb $117, $7(%rbx) + 0x0f, 0x85, 0x9d, 0x02, 0x00, 0x00, //0x000076a8 jne LBB29_111 + 0x4c, 0x8d, 0x4b, 0x08, //0x000076ae leaq $8(%rbx), %r9 + 0x8b, 0x4b, 0x08, //0x000076b2 movl $8(%rbx), %ecx + 0x89, 0xca, //0x000076b5 movl %ecx, %edx + 0xf7, 0xd2, //0x000076b7 notl %edx + 0x8d, 0xb1, 0xd0, 0xcf, 0xcf, 0xcf, //0x000076b9 leal $-808464432(%rcx), %esi + 0x81, 0xe2, 0x80, 0x80, 0x80, 0x80, //0x000076bf andl $-2139062144, %edx + 0x85, 0xf2, //0x000076c5 testl %esi, %edx + 0x0f, 0x85, 0x72, 0x02, 0x00, 0x00, //0x000076c7 jne LBB29_110 + 0x8d, 0xb1, 0x19, 0x19, 0x19, 0x19, //0x000076cd leal $421075225(%rcx), %esi + 0x09, 0xce, //0x000076d3 orl %ecx, %esi + 0xf7, 0xc6, 0x80, 0x80, 0x80, 0x80, //0x000076d5 testl $-2139062144, %esi + 0x0f, 0x85, 0x5e, 0x02, 0x00, 0x00, //0x000076db jne LBB29_110 + 0x89, 0xce, //0x000076e1 movl %ecx, %esi + 0x81, 0xe6, 0x7f, 0x7f, 0x7f, 0x7f, //0x000076e3 andl $2139062143, %esi + 0x41, 0xbb, 0xc0, 0xc0, 0xc0, 0xc0, //0x000076e9 movl $-1061109568, %r11d + 0x41, 0x29, 0xf3, //0x000076ef subl %esi, %r11d + 0x44, 0x8d, 0xa6, 0x46, 0x46, 0x46, 0x46, //0x000076f2 leal $1179010630(%rsi), %r12d + 0x41, 0x21, 0xd3, //0x000076f9 andl %edx, %r11d + 0x45, 0x85, 0xe3, //0x000076fc testl %r12d, %r11d + 0x0f, 0x85, 0x3a, 0x02, 0x00, 0x00, //0x000076ff jne LBB29_110 + 0x41, 0xbb, 0xe0, 0xe0, 0xe0, 0xe0, //0x00007705 movl $-522133280, %r11d + 0x41, 0x29, 0xf3, //0x0000770b subl %esi, %r11d + 0x81, 0xc6, 0x39, 0x39, 0x39, 0x39, //0x0000770e addl $960051513, %esi + 0x44, 0x21, 0xda, //0x00007714 andl %r11d, %edx + 0x85, 0xf2, //0x00007717 testl %esi, %edx + 0x0f, 0x85, 0x20, 0x02, 0x00, 0x00, //0x00007719 jne LBB29_110 + 0x0f, 0xc9, //0x0000771f bswapl %ecx + 0x89, 0xca, //0x00007721 movl %ecx, %edx + 0xc1, 0xea, 0x04, //0x00007723 shrl $4, %edx + 0xf7, 0xd2, //0x00007726 notl %edx + 0x81, 0xe2, 0x01, 0x01, 0x01, 0x01, //0x00007728 andl $16843009, %edx + 0x8d, 0x14, 0xd2, //0x0000772e leal (%rdx,%rdx,8), %edx + 0x81, 0xe1, 0x0f, 0x0f, 0x0f, 0x0f, //0x00007731 andl $252645135, %ecx + 0x01, 0xd1, //0x00007737 addl %edx, %ecx + 0x89, 0xca, //0x00007739 movl %ecx, %edx + 0xc1, 0xea, 0x04, //0x0000773b shrl $4, %edx + 0x09, 0xca, //0x0000773e orl %ecx, %edx + 0x89, 0xd1, //0x00007740 movl %edx, %ecx + 0x81, 0xe1, 0x00, 0x00, 0xfc, 0x00, //0x00007742 andl $16515072, %ecx + 0x81, 0xf9, 0x00, 0x00, 0xdc, 0x00, //0x00007748 cmpl $14417920, %ecx + 0x0f, 0x85, 0xf7, 0x01, 0x00, 0x00, //0x0000774e jne LBB29_111 + 0x89, 0xd1, //0x00007754 movl %edx, %ecx + 0xc1, 0xe9, 0x08, //0x00007756 shrl $8, %ecx + 0x81, 0xe1, 0x00, 0xff, 0x00, 0x00, //0x00007759 andl $65280, %ecx + 0x0f, 0xb6, 0xd2, //0x0000775f movzbl %dl, %edx + 0x09, 0xca, //0x00007762 orl %ecx, %edx + 0xc1, 0xe0, 0x0a, //0x00007764 shll $10, %eax + 0x8d, 0x84, 0x10, 0x00, 0x24, 0xa0, 0xfc, //0x00007767 leal $-56613888(%rax,%rdx), %eax + 0x41, 0x89, 0xc3, //0x0000776e movl %eax, %r11d + 0x41, 0xc1, 0xeb, 0x12, //0x00007771 shrl $18, %r11d + 0x41, 0x80, 0xcb, 0xf0, //0x00007775 orb $-16, %r11b + 0x44, 0x88, 0x5d, 0xd0, //0x00007779 movb %r11b, $-48(%rbp) + 0x89, 0xc1, //0x0000777d movl %eax, %ecx + 0xc1, 0xe9, 0x0c, //0x0000777f shrl $12, %ecx + 0x80, 0xe1, 0x3f, //0x00007782 andb $63, %cl + 0x80, 0xc9, 0x80, //0x00007785 orb $-128, %cl + 0x88, 0x4d, 0xd1, //0x00007788 movb %cl, $-47(%rbp) + 0x89, 0xc1, //0x0000778b movl %eax, %ecx + 0xc1, 0xe9, 0x06, //0x0000778d shrl $6, %ecx + 0x80, 0xe1, 0x3f, //0x00007790 andb $63, %cl + 0x80, 0xc9, 0x80, //0x00007793 orb $-128, %cl + 0x88, 0x4d, 0xd2, //0x00007796 movb %cl, $-46(%rbp) + 0x24, 0x3f, //0x00007799 andb $63, %al + 0x0c, 0x80, //0x0000779b orb $-128, %al + 0x88, 0x45, 0xd3, //0x0000779d movb %al, $-45(%rbp) + 0x48, 0x83, 0xc3, 0x0c, //0x000077a0 addq $12, %rbx + 0xb9, 0x04, 0x00, 0x00, 0x00, //0x000077a4 movl $4, %ecx + 0x4c, 0x8d, 0x4c, 0x0d, 0xd0, //0x000077a9 leaq $-48(%rbp,%rcx), %r9 + 0x4d, 0x39, 0xd6, //0x000077ae cmpq %r10, %r14 + 0x0f, 0x82, 0x2c, 0xfe, 0xff, 0xff, //0x000077b1 jb LBB29_65 + //0x000077b7 LBB29_73 + 0x48, 0x8d, 0x4d, 0xd0, //0x000077b7 leaq $-48(%rbp), %rcx + //0x000077bb LBB29_74 + 0x4c, 0x39, 0xc9, //0x000077bb cmpq %r9, %rcx + 0x0f, 0x85, 0x29, 0x00, 0x00, 0x00, //0x000077be jne LBB29_90 + //0x000077c4 LBB29_75 + 0x49, 0x39, 0xd8, //0x000077c4 cmpq %rbx, %r8 + 0x0f, 0x86, 0x09, 0x00, 0x00, 0x00, //0x000077c7 jbe LBB29_89 + 0x4d, 0x39, 0xd6, //0x000077cd cmpq %r10, %r14 + 0x0f, 0x82, 0x84, 0xfc, 0xff, 0xff, //0x000077d0 jb LBB29_47 + //0x000077d6 LBB29_89 + 0x49, 0x31, 0xd8, //0x000077d6 xorq %rbx, %r8 + 0x4d, 0x31, 0xd6, //0x000077d9 xorq %r10, %r14 + 0x31, 0xdb, //0x000077dc xorl %ebx, %ebx + 0x4d, 0x09, 0xc6, //0x000077de orq %r8, %r14 + 0x0f, 0x94, 0xc3, //0x000077e1 sete %bl + 0x4c, 0x8b, 0x75, 0xc8, //0x000077e4 movq $-56(%rbp), %r14 + 0xe9, 0xfb, 0xfb, 0xff, 0xff, //0x000077e8 jmp LBB29_42 + //0x000077ed LBB29_90 + 0x31, 0xdb, //0x000077ed xorl %ebx, %ebx + 0x4c, 0x8b, 0x75, 0xc8, //0x000077ef movq $-56(%rbp), %r14 + 0xe9, 0xf0, 0xfb, 0xff, 0xff, //0x000077f3 jmp LBB29_42 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000077f8 .p2align 4, 0x90 + //0x00007800 LBB29_91 + 0x3c, 0x5b, //0x00007800 cmpb $91, %al + 0x0f, 0x85, 0xcf, 0x00, 0x00, 0x00, //0x00007802 jne LBB29_102 + 0x49, 0x8b, 0x46, 0x08, //0x00007808 movq $8(%r14), %rax + 0x48, 0x8b, 0x18, //0x0000780c movq (%rax), %rbx + 0x48, 0x85, 0xdb, //0x0000780f testq %rbx, %rbx + 0x0f, 0x88, 0xd8, 0x00, 0x00, 0x00, //0x00007812 js LBB29_104 + 0x49, 0x8b, 0x7d, 0x00, //0x00007818 movq (%r13), %rdi + 0x49, 0x8b, 0x75, 0x08, //0x0000781c movq $8(%r13), %rsi + 0x4c, 0x89, 0xfa, //0x00007820 movq %r15, %rdx + 0xe8, 0xf8, 0xc9, 0xff, 0xff, //0x00007823 callq _advance_ns + 0x3c, 0x5d, //0x00007828 cmpb $93, %al + 0x0f, 0x84, 0x90, 0x00, 0x00, 0x00, //0x0000782a je LBB29_100 + 0x49, 0xff, 0x0f, //0x00007830 decq (%r15) + 0x48, 0xff, 0xc3, //0x00007833 incq %rbx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007836 .p2align 4, 0x90 + //0x00007840 LBB29_95 + 0x48, 0xff, 0xcb, //0x00007840 decq %rbx + 0x48, 0x85, 0xdb, //0x00007843 testq %rbx, %rbx + 0x0f, 0x8e, 0x34, 0x00, 0x00, 0x00, //0x00007846 jle LBB29_97 + 0x4c, 0x89, 0xef, //0x0000784c movq %r13, %rdi + 0x4c, 0x89, 0xfe, //0x0000784f movq %r15, %rsi + 0xe8, 0x19, 0xed, 0xff, 0xff, //0x00007852 callq _skip_one_fast + 0x49, 0x8b, 0x7d, 0x00, //0x00007857 movq (%r13), %rdi + 0x49, 0x8b, 0x75, 0x08, //0x0000785b movq $8(%r13), %rsi + 0x4c, 0x89, 0xfa, //0x0000785f movq %r15, %rdx + 0xe8, 0xb9, 0xc9, 0xff, 0xff, //0x00007862 callq _advance_ns + 0x3c, 0x2c, //0x00007867 cmpb $44, %al + 0x0f, 0x84, 0xd1, 0xff, 0xff, 0xff, //0x00007869 je LBB29_95 + 0xe9, 0x5b, 0x00, 0x00, 0x00, //0x0000786f jmp LBB29_101 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007874 .p2align 4, 0x90 + //0x00007880 LBB29_97 + 0x49, 0x83, 0xc6, 0x10, //0x00007880 addq $16, %r14 + 0x48, 0x8b, 0x45, 0xb8, //0x00007884 movq $-72(%rbp), %rax + 0x49, 0x39, 0xc6, //0x00007888 cmpq %rax, %r14 + 0x48, 0x8b, 0x4d, 0xb0, //0x0000788b movq $-80(%rbp), %rcx + 0x0f, 0x85, 0x81, 0xf8, 0xff, 0xff, //0x0000788f jne LBB29_2 + //0x00007895 LBB29_98 + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00007895 movl $1, %eax + 0xc4, 0xe1, 0xf9, 0x6e, 0xc0, //0x0000789a vmovq %rax, %xmm0 + 0xc5, 0xfa, 0x7f, 0x01, //0x0000789f vmovdqu %xmm0, (%rcx) + 0x48, 0x89, 0xcf, //0x000078a3 movq %rcx, %rdi + 0x4c, 0x89, 0xee, //0x000078a6 movq %r13, %rsi + 0x4c, 0x89, 0xfa, //0x000078a9 movq %r15, %rdx + 0x31, 0xc9, //0x000078ac xorl %ecx, %ecx + 0xe8, 0x9d, 0xd9, 0xff, 0xff, //0x000078ae callq _fsm_exec + 0xe9, 0x29, 0x00, 0x00, 0x00, //0x000078b3 jmp LBB29_103 + //0x000078b8 LBB29_99 + 0x3c, 0x7d, //0x000078b8 cmpb $125, %al + 0x0f, 0x85, 0x17, 0x00, 0x00, 0x00, //0x000078ba jne LBB29_102 + //0x000078c0 LBB29_100 + 0x49, 0xff, 0x0f, //0x000078c0 decq (%r15) + 0x48, 0xc7, 0xc0, 0xdf, 0xff, 0xff, 0xff, //0x000078c3 movq $-33, %rax + 0xe9, 0x12, 0x00, 0x00, 0x00, //0x000078ca jmp LBB29_103 + //0x000078cf LBB29_101 + 0x3c, 0x5d, //0x000078cf cmpb $93, %al + 0x0f, 0x84, 0xe9, 0xff, 0xff, 0xff, //0x000078d1 je LBB29_100 + //0x000078d7 LBB29_102 + 0x49, 0xff, 0x0f, //0x000078d7 decq (%r15) + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x000078da movq $-2, %rax + //0x000078e1 LBB29_103 + 0x48, 0x83, 0xc4, 0x28, //0x000078e1 addq $40, %rsp + 0x5b, //0x000078e5 popq %rbx + 0x41, 0x5c, //0x000078e6 popq %r12 + 0x41, 0x5d, //0x000078e8 popq %r13 + 0x41, 0x5e, //0x000078ea popq %r14 + 0x41, 0x5f, //0x000078ec popq %r15 + 0x5d, //0x000078ee popq %rbp + 0xc3, //0x000078ef retq + //0x000078f0 LBB29_104 + 0x49, 0xff, 0x0f, //0x000078f0 decq (%r15) + 0x48, 0xc7, 0xc0, 0xde, 0xff, 0xff, 0xff, //0x000078f3 movq $-34, %rax + 0xe9, 0xe2, 0xff, 0xff, 0xff, //0x000078fa jmp LBB29_103 + //0x000078ff LBB29_105 + 0x49, 0x8b, 0x45, 0x08, //0x000078ff movq $8(%r13), %rax + 0x49, 0x89, 0x07, //0x00007903 movq %rax, (%r15) + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00007906 movq $-1, %rax + 0xe9, 0xcf, 0xff, 0xff, 0xff, //0x0000790d jmp LBB29_103 + //0x00007912 LBB29_106 + 0x48, 0x83, 0xc3, 0x02, //0x00007912 addq $2, %rbx + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00007916 movq $-2, %rax + 0xe9, 0x12, 0x00, 0x00, 0x00, //0x0000791d jmp LBB29_109 + //0x00007922 LBB29_107 + 0x48, 0xff, 0xc3, //0x00007922 incq %rbx + 0x48, 0xc7, 0xc0, 0xfd, 0xff, 0xff, 0xff, //0x00007925 movq $-3, %rax + 0xe9, 0x03, 0x00, 0x00, 0x00, //0x0000792c jmp LBB29_109 + //0x00007931 LBB29_108 + 0x48, 0xff, 0xc3, //0x00007931 incq %rbx + //0x00007934 LBB29_109 + 0x48, 0x29, 0xfb, //0x00007934 subq %rdi, %rbx + 0x49, 0x89, 0x1f, //0x00007937 movq %rbx, (%r15) + 0xe9, 0xa2, 0xff, 0xff, 0xff, //0x0000793a jmp LBB29_103 + //0x0000793f LBB29_110 + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x0000793f movq $-2, %rax + 0xe9, 0x07, 0x00, 0x00, 0x00, //0x00007946 jmp LBB29_112 + //0x0000794b LBB29_111 + 0x48, 0xc7, 0xc0, 0xfc, 0xff, 0xff, 0xff, //0x0000794b movq $-4, %rax + //0x00007952 LBB29_112 + 0x4c, 0x89, 0xcb, //0x00007952 movq %r9, %rbx + 0xe9, 0xda, 0xff, 0xff, 0xff, //0x00007955 jmp LBB29_109 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000795a .p2align 4, 0x90 + //0x00007960 _validate_utf8 + 0x55, //0x00007960 pushq %rbp + 0x48, 0x89, 0xe5, //0x00007961 movq %rsp, %rbp + 0x41, 0x57, //0x00007964 pushq %r15 + 0x41, 0x56, //0x00007966 pushq %r14 + 0x41, 0x54, //0x00007968 pushq %r12 + 0x53, //0x0000796a pushq %rbx + 0x50, //0x0000796b pushq %rax + 0x4c, 0x8b, 0x17, //0x0000796c movq (%rdi), %r10 + 0x4c, 0x8b, 0x5f, 0x08, //0x0000796f movq $8(%rdi), %r11 + 0x48, 0x8b, 0x0e, //0x00007973 movq (%rsi), %rcx + 0x4c, 0x01, 0xd1, //0x00007976 addq %r10, %rcx + 0x4f, 0x8d, 0x44, 0x1a, 0xfd, //0x00007979 leaq $-3(%r10,%r11), %r8 + 0xe9, 0x10, 0x00, 0x00, 0x00, //0x0000797e jmp LBB30_1 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007983 .p2align 4, 0x90 + //0x00007990 LBB30_19 + 0x48, 0x01, 0xd9, //0x00007990 addq %rbx, %rcx + //0x00007993 LBB30_1 + 0x4c, 0x39, 0xc1, //0x00007993 cmpq %r8, %rcx + 0x0f, 0x83, 0xe1, 0x00, 0x00, 0x00, //0x00007996 jae LBB30_2 + 0xbb, 0x01, 0x00, 0x00, 0x00, //0x0000799c movl $1, %ebx + 0x80, 0x39, 0x00, //0x000079a1 cmpb $0, (%rcx) + 0x0f, 0x89, 0xe6, 0xff, 0xff, 0xff, //0x000079a4 jns LBB30_19 + 0x8b, 0x01, //0x000079aa movl (%rcx), %eax + 0x89, 0xc7, //0x000079ac movl %eax, %edi + 0x81, 0xe7, 0xf0, 0xc0, 0xc0, 0x00, //0x000079ae andl $12632304, %edi + 0x81, 0xff, 0xe0, 0x80, 0x80, 0x00, //0x000079b4 cmpl $8421600, %edi + 0x0f, 0x85, 0x30, 0x00, 0x00, 0x00, //0x000079ba jne LBB30_10 + 0x89, 0xc7, //0x000079c0 movl %eax, %edi + 0x81, 0xe7, 0x0f, 0x20, 0x00, 0x00, //0x000079c2 andl $8207, %edi + 0x81, 0xff, 0x0d, 0x20, 0x00, 0x00, //0x000079c8 cmpl $8205, %edi + 0x0f, 0x84, 0x1c, 0x00, 0x00, 0x00, //0x000079ce je LBB30_10 + 0xbb, 0x03, 0x00, 0x00, 0x00, //0x000079d4 movl $3, %ebx + 0x85, 0xff, //0x000079d9 testl %edi, %edi + 0x0f, 0x85, 0xaf, 0xff, 0xff, 0xff, //0x000079db jne LBB30_19 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000079e1 .p2align 4, 0x90 + //0x000079f0 LBB30_10 + 0x89, 0xc7, //0x000079f0 movl %eax, %edi + 0x81, 0xe7, 0xe0, 0xc0, 0x00, 0x00, //0x000079f2 andl $49376, %edi + 0x81, 0xff, 0xc0, 0x80, 0x00, 0x00, //0x000079f8 cmpl $32960, %edi + 0x0f, 0x85, 0x10, 0x00, 0x00, 0x00, //0x000079fe jne LBB30_12 + 0x89, 0xc7, //0x00007a04 movl %eax, %edi + 0xbb, 0x02, 0x00, 0x00, 0x00, //0x00007a06 movl $2, %ebx + 0x83, 0xe7, 0x1e, //0x00007a0b andl $30, %edi + 0x0f, 0x85, 0x7c, 0xff, 0xff, 0xff, //0x00007a0e jne LBB30_19 + //0x00007a14 LBB30_12 + 0x89, 0xc7, //0x00007a14 movl %eax, %edi + 0x81, 0xe7, 0xf8, 0xc0, 0xc0, 0xc0, //0x00007a16 andl $-1061109512, %edi + 0x81, 0xff, 0xf0, 0x80, 0x80, 0x80, //0x00007a1c cmpl $-2139062032, %edi + 0x0f, 0x85, 0x26, 0x00, 0x00, 0x00, //0x00007a22 jne LBB30_16 + 0x89, 0xc7, //0x00007a28 movl %eax, %edi + 0x81, 0xe7, 0x07, 0x30, 0x00, 0x00, //0x00007a2a andl $12295, %edi + 0x0f, 0x84, 0x18, 0x00, 0x00, 0x00, //0x00007a30 je LBB30_16 + 0xbb, 0x04, 0x00, 0x00, 0x00, //0x00007a36 movl $4, %ebx + 0xa8, 0x04, //0x00007a3b testb $4, %al + 0x0f, 0x84, 0x4d, 0xff, 0xff, 0xff, //0x00007a3d je LBB30_19 + 0x25, 0x03, 0x30, 0x00, 0x00, //0x00007a43 andl $12291, %eax + 0x0f, 0x84, 0x42, 0xff, 0xff, 0xff, //0x00007a48 je LBB30_19 + //0x00007a4e LBB30_16 + 0x48, 0x89, 0xcf, //0x00007a4e movq %rcx, %rdi + 0x4c, 0x29, 0xd7, //0x00007a51 subq %r10, %rdi + 0x48, 0x8b, 0x1a, //0x00007a54 movq (%rdx), %rbx + 0x48, 0x81, 0xfb, 0x00, 0x10, 0x00, 0x00, //0x00007a57 cmpq $4096, %rbx + 0x0f, 0x83, 0x87, 0x01, 0x00, 0x00, //0x00007a5e jae LBB30_17 + 0x48, 0x63, 0xc7, //0x00007a64 movslq %edi, %rax + 0x48, 0x8d, 0x7b, 0x01, //0x00007a67 leaq $1(%rbx), %rdi + 0x48, 0x89, 0x3a, //0x00007a6b movq %rdi, (%rdx) + 0x48, 0x89, 0x44, 0xda, 0x08, //0x00007a6e movq %rax, $8(%rdx,%rbx,8) + 0xbb, 0x01, 0x00, 0x00, 0x00, //0x00007a73 movl $1, %ebx + 0xe9, 0x13, 0xff, 0xff, 0xff, //0x00007a78 jmp LBB30_19 + //0x00007a7d LBB30_2 + 0x4d, 0x01, 0xd3, //0x00007a7d addq %r10, %r11 + 0x4c, 0x39, 0xd9, //0x00007a80 cmpq %r11, %rcx + 0x0f, 0x83, 0x3e, 0x01, 0x00, 0x00, //0x00007a83 jae LBB30_36 + 0x4c, 0x8d, 0x45, 0xdc, //0x00007a89 leaq $-36(%rbp), %r8 + 0x4c, 0x8d, 0x4d, 0xda, //0x00007a8d leaq $-38(%rbp), %r9 + 0xe9, 0x16, 0x00, 0x00, 0x00, //0x00007a91 jmp LBB30_4 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007a96 .p2align 4, 0x90 + //0x00007aa0 LBB30_5 + 0x48, 0xff, 0xc1, //0x00007aa0 incq %rcx + 0x4c, 0x39, 0xd9, //0x00007aa3 cmpq %r11, %rcx + 0x0f, 0x83, 0x1b, 0x01, 0x00, 0x00, //0x00007aa6 jae LBB30_36 + //0x00007aac LBB30_4 + 0x80, 0x39, 0x00, //0x00007aac cmpb $0, (%rcx) + 0x0f, 0x89, 0xeb, 0xff, 0xff, 0xff, //0x00007aaf jns LBB30_5 + 0xc6, 0x45, 0xdc, 0x00, //0x00007ab5 movb $0, $-36(%rbp) + 0xc6, 0x45, 0xda, 0x00, //0x00007ab9 movb $0, $-38(%rbp) + 0x4c, 0x89, 0xdb, //0x00007abd movq %r11, %rbx + 0x48, 0x29, 0xcb, //0x00007ac0 subq %rcx, %rbx + 0x48, 0x83, 0xfb, 0x02, //0x00007ac3 cmpq $2, %rbx + 0x0f, 0x82, 0x35, 0x00, 0x00, 0x00, //0x00007ac7 jb LBB30_21 + 0x44, 0x0f, 0xb6, 0x21, //0x00007acd movzbl (%rcx), %r12d + 0x44, 0x0f, 0xb6, 0x71, 0x01, //0x00007ad1 movzbl $1(%rcx), %r14d + 0x44, 0x88, 0x65, 0xdc, //0x00007ad6 movb %r12b, $-36(%rbp) + 0x4c, 0x8d, 0x79, 0x02, //0x00007ada leaq $2(%rcx), %r15 + 0x48, 0x83, 0xc3, 0xfe, //0x00007ade addq $-2, %rbx + 0x4c, 0x89, 0xcf, //0x00007ae2 movq %r9, %rdi + 0x48, 0x85, 0xdb, //0x00007ae5 testq %rbx, %rbx + 0x0f, 0x84, 0x29, 0x00, 0x00, 0x00, //0x00007ae8 je LBB30_24 + //0x00007aee LBB30_25 + 0x41, 0x0f, 0xb6, 0x07, //0x00007aee movzbl (%r15), %eax + 0x88, 0x07, //0x00007af2 movb %al, (%rdi) + 0x44, 0x0f, 0xb6, 0x65, 0xdc, //0x00007af4 movzbl $-36(%rbp), %r12d + 0x0f, 0xb6, 0x7d, 0xda, //0x00007af9 movzbl $-38(%rbp), %edi + 0xe9, 0x17, 0x00, 0x00, 0x00, //0x00007afd jmp LBB30_26 + //0x00007b02 LBB30_21 + 0x45, 0x31, 0xe4, //0x00007b02 xorl %r12d, %r12d + 0x45, 0x31, 0xf6, //0x00007b05 xorl %r14d, %r14d + 0x4c, 0x89, 0xc7, //0x00007b08 movq %r8, %rdi + 0x49, 0x89, 0xcf, //0x00007b0b movq %rcx, %r15 + 0x48, 0x85, 0xdb, //0x00007b0e testq %rbx, %rbx + 0x0f, 0x85, 0xd7, 0xff, 0xff, 0xff, //0x00007b11 jne LBB30_25 + //0x00007b17 LBB30_24 + 0x31, 0xff, //0x00007b17 xorl %edi, %edi + //0x00007b19 LBB30_26 + 0x40, 0x0f, 0xb6, 0xc7, //0x00007b19 movzbl %dil, %eax + 0xc1, 0xe0, 0x10, //0x00007b1d shll $16, %eax + 0x41, 0x0f, 0xb6, 0xde, //0x00007b20 movzbl %r14b, %ebx + 0xc1, 0xe3, 0x08, //0x00007b24 shll $8, %ebx + 0x41, 0x0f, 0xb6, 0xfc, //0x00007b27 movzbl %r12b, %edi + 0x09, 0xdf, //0x00007b2b orl %ebx, %edi + 0x09, 0xf8, //0x00007b2d orl %edi, %eax + 0x25, 0xf0, 0xc0, 0xc0, 0x00, //0x00007b2f andl $12632304, %eax + 0x3d, 0xe0, 0x80, 0x80, 0x00, //0x00007b34 cmpl $8421600, %eax + 0x0f, 0x85, 0x21, 0x00, 0x00, 0x00, //0x00007b39 jne LBB30_29 + 0x89, 0xf8, //0x00007b3f movl %edi, %eax + 0x25, 0x0f, 0x20, 0x00, 0x00, //0x00007b41 andl $8207, %eax + 0x3d, 0x0d, 0x20, 0x00, 0x00, //0x00007b46 cmpl $8205, %eax + 0x0f, 0x84, 0x0f, 0x00, 0x00, 0x00, //0x00007b4b je LBB30_29 + 0xbb, 0x03, 0x00, 0x00, 0x00, //0x00007b51 movl $3, %ebx + 0x85, 0xc0, //0x00007b56 testl %eax, %eax + 0x0f, 0x85, 0x23, 0x00, 0x00, 0x00, //0x00007b58 jne LBB30_34 + 0x90, 0x90, //0x00007b5e .p2align 4, 0x90 + //0x00007b60 LBB30_29 + 0x41, 0xf6, 0xc4, 0x1e, //0x00007b60 testb $30, %r12b + 0x0f, 0x84, 0x28, 0x00, 0x00, 0x00, //0x00007b64 je LBB30_31 + 0x81, 0xe7, 0xe0, 0xc0, 0x00, 0x00, //0x00007b6a andl $49376, %edi + 0xbb, 0x02, 0x00, 0x00, 0x00, //0x00007b70 movl $2, %ebx + 0x81, 0xff, 0xc0, 0x80, 0x00, 0x00, //0x00007b75 cmpl $32960, %edi + 0x0f, 0x85, 0x11, 0x00, 0x00, 0x00, //0x00007b7b jne LBB30_31 + //0x00007b81 LBB30_34 + 0x48, 0x01, 0xd9, //0x00007b81 addq %rbx, %rcx + 0x4c, 0x39, 0xd9, //0x00007b84 cmpq %r11, %rcx + 0x0f, 0x82, 0x1f, 0xff, 0xff, 0xff, //0x00007b87 jb LBB30_4 + 0xe9, 0x35, 0x00, 0x00, 0x00, //0x00007b8d jmp LBB30_36 + //0x00007b92 LBB30_31 + 0x48, 0x89, 0xc8, //0x00007b92 movq %rcx, %rax + 0x4c, 0x29, 0xd0, //0x00007b95 subq %r10, %rax + 0x48, 0x8b, 0x3a, //0x00007b98 movq (%rdx), %rdi + 0x48, 0x81, 0xff, 0x00, 0x10, 0x00, 0x00, //0x00007b9b cmpq $4096, %rdi + 0x0f, 0x83, 0x34, 0x00, 0x00, 0x00, //0x00007ba2 jae LBB30_32 + 0x48, 0x98, //0x00007ba8 cltq + 0x48, 0x8d, 0x5f, 0x01, //0x00007baa leaq $1(%rdi), %rbx + 0x48, 0x89, 0x1a, //0x00007bae movq %rbx, (%rdx) + 0x48, 0x89, 0x44, 0xfa, 0x08, //0x00007bb1 movq %rax, $8(%rdx,%rdi,8) + 0xbb, 0x01, 0x00, 0x00, 0x00, //0x00007bb6 movl $1, %ebx + 0x48, 0x01, 0xd9, //0x00007bbb addq %rbx, %rcx + 0x4c, 0x39, 0xd9, //0x00007bbe cmpq %r11, %rcx + 0x0f, 0x82, 0xe5, 0xfe, 0xff, 0xff, //0x00007bc1 jb LBB30_4 + //0x00007bc7 LBB30_36 + 0x4c, 0x29, 0xd1, //0x00007bc7 subq %r10, %rcx + 0x48, 0x89, 0x0e, //0x00007bca movq %rcx, (%rsi) + 0x31, 0xc0, //0x00007bcd xorl %eax, %eax + //0x00007bcf LBB30_37 + 0x48, 0x83, 0xc4, 0x08, //0x00007bcf addq $8, %rsp + 0x5b, //0x00007bd3 popq %rbx + 0x41, 0x5c, //0x00007bd4 popq %r12 + 0x41, 0x5e, //0x00007bd6 popq %r14 + 0x41, 0x5f, //0x00007bd8 popq %r15 + 0x5d, //0x00007bda popq %rbp + 0xc3, //0x00007bdb retq + //0x00007bdc LBB30_32 + 0x48, 0x89, 0x06, //0x00007bdc movq %rax, (%rsi) + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00007bdf movq $-1, %rax + 0xe9, 0xe4, 0xff, 0xff, 0xff, //0x00007be6 jmp LBB30_37 + //0x00007beb LBB30_17 + 0x48, 0x89, 0x3e, //0x00007beb movq %rdi, (%rsi) + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00007bee movq $-1, %rax + 0xe9, 0xd5, 0xff, 0xff, 0xff, //0x00007bf5 jmp LBB30_37 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007bfa .p2align 5, 0x00 + //0x00007c00 LCPI31_0 + 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, //0x00007c00 QUAD $0x0f0f0f0f0f0f0f0f; QUAD $0x0f0f0f0f0f0f0f0f // .space 16, '\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f' + 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, //0x00007c10 QUAD $0x0f0f0f0f0f0f0f0f; QUAD $0x0f0f0f0f0f0f0f0f // .space 16, '\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f' + //0x00007c20 LCPI31_1 + 0x02, //0x00007c20 .byte 2 + 0x02, //0x00007c21 .byte 2 + 0x02, //0x00007c22 .byte 2 + 0x02, //0x00007c23 .byte 2 + 0x02, //0x00007c24 .byte 2 + 0x02, //0x00007c25 .byte 2 + 0x02, //0x00007c26 .byte 2 + 0x02, //0x00007c27 .byte 2 + 0x80, //0x00007c28 .byte 128 + 0x80, //0x00007c29 .byte 128 + 0x80, //0x00007c2a .byte 128 + 0x80, //0x00007c2b .byte 128 + 0x21, //0x00007c2c .byte 33 + 0x01, //0x00007c2d .byte 1 + 0x15, //0x00007c2e .byte 21 + 0x49, //0x00007c2f .byte 73 + 0x02, //0x00007c30 .byte 2 + 0x02, //0x00007c31 .byte 2 + 0x02, //0x00007c32 .byte 2 + 0x02, //0x00007c33 .byte 2 + 0x02, //0x00007c34 .byte 2 + 0x02, //0x00007c35 .byte 2 + 0x02, //0x00007c36 .byte 2 + 0x02, //0x00007c37 .byte 2 + 0x80, //0x00007c38 .byte 128 + 0x80, //0x00007c39 .byte 128 + 0x80, //0x00007c3a .byte 128 + 0x80, //0x00007c3b .byte 128 + 0x21, //0x00007c3c .byte 33 + 0x01, //0x00007c3d .byte 1 + 0x15, //0x00007c3e .byte 21 + 0x49, //0x00007c3f .byte 73 + //0x00007c40 LCPI31_2 + 0xe7, //0x00007c40 .byte 231 + 0xa3, //0x00007c41 .byte 163 + 0x83, //0x00007c42 .byte 131 + 0x83, //0x00007c43 .byte 131 + 0x8b, //0x00007c44 .byte 139 + 0xcb, //0x00007c45 .byte 203 + 0xcb, //0x00007c46 .byte 203 + 0xcb, //0x00007c47 .byte 203 + 0xcb, //0x00007c48 .byte 203 + 0xcb, //0x00007c49 .byte 203 + 0xcb, //0x00007c4a .byte 203 + 0xcb, //0x00007c4b .byte 203 + 0xcb, //0x00007c4c .byte 203 + 0xdb, //0x00007c4d .byte 219 + 0xcb, //0x00007c4e .byte 203 + 0xcb, //0x00007c4f .byte 203 + 0xe7, //0x00007c50 .byte 231 + 0xa3, //0x00007c51 .byte 163 + 0x83, //0x00007c52 .byte 131 + 0x83, //0x00007c53 .byte 131 + 0x8b, //0x00007c54 .byte 139 + 0xcb, //0x00007c55 .byte 203 + 0xcb, //0x00007c56 .byte 203 + 0xcb, //0x00007c57 .byte 203 + 0xcb, //0x00007c58 .byte 203 + 0xcb, //0x00007c59 .byte 203 + 0xcb, //0x00007c5a .byte 203 + 0xcb, //0x00007c5b .byte 203 + 0xcb, //0x00007c5c .byte 203 + 0xdb, //0x00007c5d .byte 219 + 0xcb, //0x00007c5e .byte 203 + 0xcb, //0x00007c5f .byte 203 + //0x00007c60 LCPI31_3 + 0x01, //0x00007c60 .byte 1 + 0x01, //0x00007c61 .byte 1 + 0x01, //0x00007c62 .byte 1 + 0x01, //0x00007c63 .byte 1 + 0x01, //0x00007c64 .byte 1 + 0x01, //0x00007c65 .byte 1 + 0x01, //0x00007c66 .byte 1 + 0x01, //0x00007c67 .byte 1 + 0xe6, //0x00007c68 .byte 230 + 0xae, //0x00007c69 .byte 174 + 0xba, //0x00007c6a .byte 186 + 0xba, //0x00007c6b .byte 186 + 0x01, //0x00007c6c .byte 1 + 0x01, //0x00007c6d .byte 1 + 0x01, //0x00007c6e .byte 1 + 0x01, //0x00007c6f .byte 1 + 0x01, //0x00007c70 .byte 1 + 0x01, //0x00007c71 .byte 1 + 0x01, //0x00007c72 .byte 1 + 0x01, //0x00007c73 .byte 1 + 0x01, //0x00007c74 .byte 1 + 0x01, //0x00007c75 .byte 1 + 0x01, //0x00007c76 .byte 1 + 0x01, //0x00007c77 .byte 1 + 0xe6, //0x00007c78 .byte 230 + 0xae, //0x00007c79 .byte 174 + 0xba, //0x00007c7a .byte 186 + 0xba, //0x00007c7b .byte 186 + 0x01, //0x00007c7c .byte 1 + 0x01, //0x00007c7d .byte 1 + 0x01, //0x00007c7e .byte 1 + 0x01, //0x00007c7f .byte 1 + //0x00007c80 LCPI31_4 + 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, //0x00007c80 QUAD $0xdfdfdfdfdfdfdfdf; QUAD $0xdfdfdfdfdfdfdfdf // .space 16, '\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf' + 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, //0x00007c90 QUAD $0xdfdfdfdfdfdfdfdf; QUAD $0xdfdfdfdfdfdfdfdf // .space 16, '\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf' + //0x00007ca0 LCPI31_5 + 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, //0x00007ca0 QUAD $0xefefefefefefefef; QUAD $0xefefefefefefefef // .space 16, '\xef\xef\xef\xef\xef\xef\xef\xef\xef\xef\xef\xef\xef\xef\xef\xef' + 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, //0x00007cb0 QUAD $0xefefefefefefefef; QUAD $0xefefefefefefefef // .space 16, '\xef\xef\xef\xef\xef\xef\xef\xef\xef\xef\xef\xef\xef\xef\xef\xef' + //0x00007cc0 LCPI31_7 + 0xff, //0x00007cc0 .byte 255 + 0xff, //0x00007cc1 .byte 255 + 0xff, //0x00007cc2 .byte 255 + 0xff, //0x00007cc3 .byte 255 + 0xff, //0x00007cc4 .byte 255 + 0xff, //0x00007cc5 .byte 255 + 0xff, //0x00007cc6 .byte 255 + 0xff, //0x00007cc7 .byte 255 + 0xff, //0x00007cc8 .byte 255 + 0xff, //0x00007cc9 .byte 255 + 0xff, //0x00007cca .byte 255 + 0xff, //0x00007ccb .byte 255 + 0xff, //0x00007ccc .byte 255 + 0xff, //0x00007ccd .byte 255 + 0xff, //0x00007cce .byte 255 + 0xff, //0x00007ccf .byte 255 + 0xff, //0x00007cd0 .byte 255 + 0xff, //0x00007cd1 .byte 255 + 0xff, //0x00007cd2 .byte 255 + 0xff, //0x00007cd3 .byte 255 + 0xff, //0x00007cd4 .byte 255 + 0xff, //0x00007cd5 .byte 255 + 0xff, //0x00007cd6 .byte 255 + 0xff, //0x00007cd7 .byte 255 + 0xff, //0x00007cd8 .byte 255 + 0xff, //0x00007cd9 .byte 255 + 0xff, //0x00007cda .byte 255 + 0xff, //0x00007cdb .byte 255 + 0xff, //0x00007cdc .byte 255 + 0xef, //0x00007cdd .byte 239 + 0xdf, //0x00007cde .byte 223 + 0xbf, //0x00007cdf .byte 191 + //0x00007ce0 LCPI31_8 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007ce0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007cf0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + //0x00007d00 .p2align 3, 0x00 + //0x00007d00 LCPI31_6 + 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, //0x00007d00 .quad -9187201950435737472 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007d08 .p2align 4, 0x90 + //0x00007d10 _validate_utf8_fast + 0x55, //0x00007d10 pushq %rbp + 0x48, 0x89, 0xe5, //0x00007d11 movq %rsp, %rbp + 0x53, //0x00007d14 pushq %rbx + 0x48, 0x81, 0xec, 0xa0, 0x00, 0x00, 0x00, //0x00007d15 subq $160, %rsp + 0x48, 0x8b, 0x47, 0x08, //0x00007d1c movq $8(%rdi), %rax + 0x48, 0x85, 0xc0, //0x00007d20 testq %rax, %rax + 0x0f, 0x84, 0xc3, 0x07, 0x00, 0x00, //0x00007d23 je LBB31_12 + 0x4c, 0x8b, 0x07, //0x00007d29 movq (%rdi), %r8 + 0x4d, 0x8d, 0x0c, 0x00, //0x00007d2c leaq (%r8,%rax), %r9 + 0x49, 0x8d, 0x79, 0x80, //0x00007d30 leaq $-128(%r9), %rdi + 0xc5, 0xf1, 0xef, 0xc9, //0x00007d34 vpxor %xmm1, %xmm1, %xmm1 + 0xc5, 0xe9, 0xef, 0xd2, //0x00007d38 vpxor %xmm2, %xmm2, %xmm2 + 0xc5, 0xf9, 0xef, 0xc0, //0x00007d3c vpxor %xmm0, %xmm0, %xmm0 + 0x4c, 0x89, 0xc2, //0x00007d40 movq %r8, %rdx + 0x4c, 0x39, 0xc7, //0x00007d43 cmpq %r8, %rdi + 0x0f, 0x86, 0x70, 0x03, 0x00, 0x00, //0x00007d46 jbe LBB31_14 + 0x48, 0x8d, 0x50, 0xff, //0x00007d4c leaq $-1(%rax), %rdx + 0xc5, 0xfd, 0x6f, 0x25, 0xa8, 0xfe, 0xff, 0xff, //0x00007d50 vmovdqa $-344(%rip), %ymm4 /* LCPI31_0+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x35, 0xe0, 0xfe, 0xff, 0xff, //0x00007d58 vmovdqa $-288(%rip), %ymm6 /* LCPI31_2+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x3d, 0xf8, 0xfe, 0xff, 0xff, //0x00007d60 vmovdqa $-264(%rip), %ymm7 /* LCPI31_3+0(%rip) */ + 0xc5, 0x7d, 0x6f, 0x05, 0x10, 0xff, 0xff, 0xff, //0x00007d68 vmovdqa $-240(%rip), %ymm8 /* LCPI31_4+0(%rip) */ + 0xc5, 0x7d, 0x6f, 0x0d, 0x28, 0xff, 0xff, 0xff, //0x00007d70 vmovdqa $-216(%rip), %ymm9 /* LCPI31_5+0(%rip) */ + 0xc5, 0x7d, 0x6f, 0x15, 0x40, 0xff, 0xff, 0xff, //0x00007d78 vmovdqa $-192(%rip), %ymm10 /* LCPI31_7+0(%rip) */ + 0x4c, 0x89, 0xc1, //0x00007d80 movq %r8, %rcx + 0xc5, 0xf9, 0xef, 0xc0, //0x00007d83 vpxor %xmm0, %xmm0, %xmm0 + 0xc5, 0xe9, 0xef, 0xd2, //0x00007d87 vpxor %xmm2, %xmm2, %xmm2 + 0xc5, 0xf1, 0xef, 0xc9, //0x00007d8b vpxor %xmm1, %xmm1, %xmm1 + 0x90, //0x00007d8f .p2align 4, 0x90 + //0x00007d90 LBB31_3 + 0xc5, 0x7e, 0x6f, 0x39, //0x00007d90 vmovdqu (%rcx), %ymm15 + 0xc5, 0x7e, 0x6f, 0x69, 0x20, //0x00007d94 vmovdqu $32(%rcx), %ymm13 + 0xc5, 0x7e, 0x6f, 0x61, 0x40, //0x00007d99 vmovdqu $64(%rcx), %ymm12 + 0xc5, 0x7e, 0x6f, 0x59, 0x60, //0x00007d9e vmovdqu $96(%rcx), %ymm11 + 0xc4, 0xc1, 0x15, 0xeb, 0xdf, //0x00007da3 vpor %ymm15, %ymm13, %ymm3 + 0xc4, 0x41, 0x25, 0xeb, 0xf4, //0x00007da8 vpor %ymm12, %ymm11, %ymm14 + 0xc5, 0x8d, 0xeb, 0xeb, //0x00007dad vpor %ymm3, %ymm14, %ymm5 + 0xc5, 0xfd, 0xd7, 0xf5, //0x00007db1 vpmovmskb %ymm5, %esi + 0x85, 0xf6, //0x00007db5 testl %esi, %esi + 0x0f, 0x85, 0x16, 0x00, 0x00, 0x00, //0x00007db7 jne LBB31_6 + 0xc5, 0xf5, 0xeb, 0xc0, //0x00007dbd vpor %ymm0, %ymm1, %ymm0 + //0x00007dc1 LBB31_5 + 0x48, 0x83, 0xe9, 0x80, //0x00007dc1 subq $-128, %rcx + 0x48, 0x39, 0xf9, //0x00007dc5 cmpq %rdi, %rcx + 0x0f, 0x82, 0xc2, 0xff, 0xff, 0xff, //0x00007dc8 jb LBB31_3 + 0xe9, 0xe2, 0x02, 0x00, 0x00, //0x00007dce jmp LBB31_13 + //0x00007dd3 LBB31_6 + 0xc5, 0xfd, 0xd7, 0xf3, //0x00007dd3 vpmovmskb %ymm3, %esi + 0x85, 0xf6, //0x00007dd7 testl %esi, %esi + 0x0f, 0x85, 0xf0, 0x00, 0x00, 0x00, //0x00007dd9 jne LBB31_9 + 0xc5, 0xf5, 0xeb, 0xc0, //0x00007ddf vpor %ymm0, %ymm1, %ymm0 + 0xc4, 0xc3, 0x6d, 0x46, 0xcc, 0x21, //0x00007de3 vperm2i128 $33, %ymm12, %ymm2, %ymm1 + 0xc4, 0xe3, 0x1d, 0x0f, 0xd1, 0x0f, //0x00007de9 vpalignr $15, %ymm1, %ymm12, %ymm2 + 0xc5, 0xe5, 0x71, 0xd2, 0x04, //0x00007def vpsrlw $4, %ymm2, %ymm3 + 0xc5, 0xe5, 0xdb, 0xdc, //0x00007df4 vpand %ymm4, %ymm3, %ymm3 + 0xc5, 0x7d, 0x6f, 0x35, 0x20, 0xfe, 0xff, 0xff, //0x00007df8 vmovdqa $-480(%rip), %ymm14 /* LCPI31_1+0(%rip) */ + 0xc4, 0xe2, 0x0d, 0x00, 0xdb, //0x00007e00 vpshufb %ymm3, %ymm14, %ymm3 + 0xc5, 0xed, 0xdb, 0xd4, //0x00007e05 vpand %ymm4, %ymm2, %ymm2 + 0xc4, 0xe2, 0x4d, 0x00, 0xd2, //0x00007e09 vpshufb %ymm2, %ymm6, %ymm2 + 0xc4, 0xc1, 0x55, 0x71, 0xd4, 0x04, //0x00007e0e vpsrlw $4, %ymm12, %ymm5 + 0xc5, 0xd5, 0xdb, 0xec, //0x00007e14 vpand %ymm4, %ymm5, %ymm5 + 0xc4, 0xe2, 0x45, 0x00, 0xed, //0x00007e18 vpshufb %ymm5, %ymm7, %ymm5 + 0xc5, 0xed, 0xdb, 0xd5, //0x00007e1d vpand %ymm5, %ymm2, %ymm2 + 0xc5, 0xe5, 0xdb, 0xd2, //0x00007e21 vpand %ymm2, %ymm3, %ymm2 + 0xc4, 0xe3, 0x1d, 0x0f, 0xd9, 0x0e, //0x00007e25 vpalignr $14, %ymm1, %ymm12, %ymm3 + 0xc4, 0xe3, 0x1d, 0x0f, 0xc9, 0x0d, //0x00007e2b vpalignr $13, %ymm1, %ymm12, %ymm1 + 0xc4, 0xc1, 0x65, 0xd8, 0xd8, //0x00007e31 vpsubusb %ymm8, %ymm3, %ymm3 + 0xc4, 0xc1, 0x75, 0xd8, 0xc9, //0x00007e36 vpsubusb %ymm9, %ymm1, %ymm1 + 0xc5, 0xf5, 0xeb, 0xcb, //0x00007e3b vpor %ymm3, %ymm1, %ymm1 + 0xc4, 0x41, 0x11, 0xef, 0xed, //0x00007e3f vpxor %xmm13, %xmm13, %xmm13 + 0xc5, 0x95, 0x74, 0xc9, //0x00007e44 vpcmpeqb %ymm1, %ymm13, %ymm1 + 0xc4, 0xe2, 0x7d, 0x59, 0x1d, 0xaf, 0xfe, 0xff, 0xff, //0x00007e48 vpbroadcastq $-337(%rip), %ymm3 /* LCPI31_6+0(%rip) */ + 0xc5, 0xf5, 0xdf, 0xcb, //0x00007e51 vpandn %ymm3, %ymm1, %ymm1 + 0xc5, 0xf5, 0xef, 0xca, //0x00007e55 vpxor %ymm2, %ymm1, %ymm1 + 0xc5, 0xfd, 0xeb, 0xc1, //0x00007e59 vpor %ymm1, %ymm0, %ymm0 + 0xc4, 0xc3, 0x1d, 0x46, 0xcb, 0x21, //0x00007e5d vperm2i128 $33, %ymm11, %ymm12, %ymm1 + 0xc4, 0xe3, 0x25, 0x0f, 0xd1, 0x0f, //0x00007e63 vpalignr $15, %ymm1, %ymm11, %ymm2 + 0xc5, 0xd5, 0x71, 0xd2, 0x04, //0x00007e69 vpsrlw $4, %ymm2, %ymm5 + 0xc5, 0xd5, 0xdb, 0xec, //0x00007e6e vpand %ymm4, %ymm5, %ymm5 + 0xc4, 0xe2, 0x0d, 0x00, 0xed, //0x00007e72 vpshufb %ymm5, %ymm14, %ymm5 + 0xc5, 0xed, 0xdb, 0xd4, //0x00007e77 vpand %ymm4, %ymm2, %ymm2 + 0xc4, 0xe2, 0x4d, 0x00, 0xd2, //0x00007e7b vpshufb %ymm2, %ymm6, %ymm2 + 0xc4, 0xc1, 0x1d, 0x71, 0xd3, 0x04, //0x00007e80 vpsrlw $4, %ymm11, %ymm12 + 0xc5, 0x1d, 0xdb, 0xe4, //0x00007e86 vpand %ymm4, %ymm12, %ymm12 + 0xc4, 0x42, 0x45, 0x00, 0xe4, //0x00007e8a vpshufb %ymm12, %ymm7, %ymm12 + 0xc5, 0x9d, 0xdb, 0xd2, //0x00007e8f vpand %ymm2, %ymm12, %ymm2 + 0xc5, 0xd5, 0xdb, 0xd2, //0x00007e93 vpand %ymm2, %ymm5, %ymm2 + 0xc4, 0xe3, 0x25, 0x0f, 0xe9, 0x0e, //0x00007e97 vpalignr $14, %ymm1, %ymm11, %ymm5 + 0xc4, 0xe3, 0x25, 0x0f, 0xc9, 0x0d, //0x00007e9d vpalignr $13, %ymm1, %ymm11, %ymm1 + 0xc4, 0xc1, 0x55, 0xd8, 0xe8, //0x00007ea3 vpsubusb %ymm8, %ymm5, %ymm5 + 0xc4, 0xc1, 0x75, 0xd8, 0xc9, //0x00007ea8 vpsubusb %ymm9, %ymm1, %ymm1 + 0xc5, 0xf5, 0xeb, 0xcd, //0x00007ead vpor %ymm5, %ymm1, %ymm1 + 0xc5, 0x95, 0x74, 0xc9, //0x00007eb1 vpcmpeqb %ymm1, %ymm13, %ymm1 + 0xc5, 0xf5, 0xdf, 0xcb, //0x00007eb5 vpandn %ymm3, %ymm1, %ymm1 + 0xc5, 0xf5, 0xef, 0xca, //0x00007eb9 vpxor %ymm2, %ymm1, %ymm1 + //0x00007ebd LBB31_8 + 0xc5, 0xfd, 0xeb, 0xc1, //0x00007ebd vpor %ymm1, %ymm0, %ymm0 + 0xc4, 0xc1, 0x25, 0xd8, 0xca, //0x00007ec1 vpsubusb %ymm10, %ymm11, %ymm1 + 0xc5, 0x7d, 0x7f, 0xda, //0x00007ec6 vmovdqa %ymm11, %ymm2 + 0xe9, 0xf2, 0xfe, 0xff, 0xff, //0x00007eca jmp LBB31_5 + //0x00007ecf LBB31_9 + 0xc4, 0xc3, 0x6d, 0x46, 0xcf, 0x21, //0x00007ecf vperm2i128 $33, %ymm15, %ymm2, %ymm1 + 0xc4, 0xe3, 0x05, 0x0f, 0xd1, 0x0f, //0x00007ed5 vpalignr $15, %ymm1, %ymm15, %ymm2 + 0xc5, 0xe5, 0x71, 0xd2, 0x04, //0x00007edb vpsrlw $4, %ymm2, %ymm3 + 0xc5, 0xe5, 0xdb, 0xdc, //0x00007ee0 vpand %ymm4, %ymm3, %ymm3 + 0xc5, 0xfd, 0x6f, 0x2d, 0x34, 0xfd, 0xff, 0xff, //0x00007ee4 vmovdqa $-716(%rip), %ymm5 /* LCPI31_1+0(%rip) */ + 0xc4, 0xe2, 0x55, 0x00, 0xdb, //0x00007eec vpshufb %ymm3, %ymm5, %ymm3 + 0xc5, 0xed, 0xdb, 0xd4, //0x00007ef1 vpand %ymm4, %ymm2, %ymm2 + 0xc4, 0xe2, 0x4d, 0x00, 0xd2, //0x00007ef5 vpshufb %ymm2, %ymm6, %ymm2 + 0xc4, 0xc1, 0x55, 0x71, 0xd7, 0x04, //0x00007efa vpsrlw $4, %ymm15, %ymm5 + 0xc5, 0xd5, 0xdb, 0xec, //0x00007f00 vpand %ymm4, %ymm5, %ymm5 + 0xc4, 0xe2, 0x45, 0x00, 0xed, //0x00007f04 vpshufb %ymm5, %ymm7, %ymm5 + 0xc5, 0xed, 0xdb, 0xd5, //0x00007f09 vpand %ymm5, %ymm2, %ymm2 + 0xc5, 0xe5, 0xdb, 0xd2, //0x00007f0d vpand %ymm2, %ymm3, %ymm2 + 0xc4, 0xe3, 0x05, 0x0f, 0xd9, 0x0e, //0x00007f11 vpalignr $14, %ymm1, %ymm15, %ymm3 + 0xc4, 0xe3, 0x05, 0x0f, 0xc9, 0x0d, //0x00007f17 vpalignr $13, %ymm1, %ymm15, %ymm1 + 0xc4, 0xc1, 0x65, 0xd8, 0xd8, //0x00007f1d vpsubusb %ymm8, %ymm3, %ymm3 + 0xc4, 0xc1, 0x75, 0xd8, 0xc9, //0x00007f22 vpsubusb %ymm9, %ymm1, %ymm1 + 0xc5, 0xf5, 0xeb, 0xcb, //0x00007f27 vpor %ymm3, %ymm1, %ymm1 + 0xc5, 0xe1, 0xef, 0xdb, //0x00007f2b vpxor %xmm3, %xmm3, %xmm3 + 0xc5, 0xf5, 0x74, 0xdb, //0x00007f2f vpcmpeqb %ymm3, %ymm1, %ymm3 + 0xc4, 0xe2, 0x7d, 0x59, 0x0d, 0xc4, 0xfd, 0xff, 0xff, //0x00007f33 vpbroadcastq $-572(%rip), %ymm1 /* LCPI31_6+0(%rip) */ + 0xc5, 0xe5, 0xdf, 0xd9, //0x00007f3c vpandn %ymm1, %ymm3, %ymm3 + 0xc5, 0xe5, 0xef, 0xd2, //0x00007f40 vpxor %ymm2, %ymm3, %ymm2 + 0xc5, 0xfe, 0x7f, 0x54, 0x24, 0x60, //0x00007f44 vmovdqu %ymm2, $96(%rsp) + 0xc4, 0xc3, 0x05, 0x46, 0xdd, 0x21, //0x00007f4a vperm2i128 $33, %ymm13, %ymm15, %ymm3 + 0xc4, 0xe3, 0x15, 0x0f, 0xeb, 0x0f, //0x00007f50 vpalignr $15, %ymm3, %ymm13, %ymm5 + 0xc5, 0x85, 0x71, 0xd5, 0x04, //0x00007f56 vpsrlw $4, %ymm5, %ymm15 + 0xc5, 0x05, 0xdb, 0xfc, //0x00007f5b vpand %ymm4, %ymm15, %ymm15 + 0xc5, 0xfd, 0x6f, 0x15, 0xb9, 0xfc, 0xff, 0xff, //0x00007f5f vmovdqa $-839(%rip), %ymm2 /* LCPI31_1+0(%rip) */ + 0xc4, 0x42, 0x6d, 0x00, 0xff, //0x00007f67 vpshufb %ymm15, %ymm2, %ymm15 + 0xc5, 0xd5, 0xdb, 0xec, //0x00007f6c vpand %ymm4, %ymm5, %ymm5 + 0xc4, 0xe2, 0x4d, 0x00, 0xed, //0x00007f70 vpshufb %ymm5, %ymm6, %ymm5 + 0xc4, 0xc1, 0x6d, 0x71, 0xd5, 0x04, //0x00007f75 vpsrlw $4, %ymm13, %ymm2 + 0xc5, 0xed, 0xdb, 0xd4, //0x00007f7b vpand %ymm4, %ymm2, %ymm2 + 0xc4, 0xe2, 0x45, 0x00, 0xd2, //0x00007f7f vpshufb %ymm2, %ymm7, %ymm2 + 0xc5, 0xd5, 0xdb, 0xd2, //0x00007f84 vpand %ymm2, %ymm5, %ymm2 + 0xc5, 0x85, 0xdb, 0xd2, //0x00007f88 vpand %ymm2, %ymm15, %ymm2 + 0xc4, 0xe3, 0x15, 0x0f, 0xeb, 0x0e, //0x00007f8c vpalignr $14, %ymm3, %ymm13, %ymm5 + 0xc4, 0xe3, 0x15, 0x0f, 0xdb, 0x0d, //0x00007f92 vpalignr $13, %ymm3, %ymm13, %ymm3 + 0xc4, 0xc1, 0x55, 0xd8, 0xe8, //0x00007f98 vpsubusb %ymm8, %ymm5, %ymm5 + 0xc4, 0xc1, 0x65, 0xd8, 0xd9, //0x00007f9d vpsubusb %ymm9, %ymm3, %ymm3 + 0xc5, 0xe5, 0xeb, 0xdd, //0x00007fa2 vpor %ymm5, %ymm3, %ymm3 + 0xc5, 0xe5, 0x74, 0x1d, 0x32, 0xfd, 0xff, 0xff, //0x00007fa6 vpcmpeqb $-718(%rip), %ymm3, %ymm3 /* LCPI31_8+0(%rip) */ + 0xc5, 0xe5, 0xdf, 0xd9, //0x00007fae vpandn %ymm1, %ymm3, %ymm3 + 0xc5, 0xe5, 0xef, 0xd2, //0x00007fb2 vpxor %ymm2, %ymm3, %ymm2 + 0xc5, 0xfd, 0xeb, 0x44, 0x24, 0x60, //0x00007fb6 vpor $96(%rsp), %ymm0, %ymm0 + 0xc5, 0xfd, 0xeb, 0xc2, //0x00007fbc vpor %ymm2, %ymm0, %ymm0 + 0xc4, 0xc1, 0x7d, 0xd7, 0xf6, //0x00007fc0 vpmovmskb %ymm14, %esi + 0x85, 0xf6, //0x00007fc5 testl %esi, %esi + 0x0f, 0x84, 0xd6, 0x00, 0x00, 0x00, //0x00007fc7 je LBB31_11 + 0xc4, 0xc3, 0x15, 0x46, 0xd4, 0x21, //0x00007fcd vperm2i128 $33, %ymm12, %ymm13, %ymm2 + 0xc4, 0xe3, 0x1d, 0x0f, 0xda, 0x0f, //0x00007fd3 vpalignr $15, %ymm2, %ymm12, %ymm3 + 0xc5, 0xd5, 0x71, 0xd3, 0x04, //0x00007fd9 vpsrlw $4, %ymm3, %ymm5 + 0xc5, 0xd5, 0xdb, 0xec, //0x00007fde vpand %ymm4, %ymm5, %ymm5 + 0xc5, 0x7d, 0x6f, 0x3d, 0x36, 0xfc, 0xff, 0xff, //0x00007fe2 vmovdqa $-970(%rip), %ymm15 /* LCPI31_1+0(%rip) */ + 0xc4, 0xe2, 0x05, 0x00, 0xed, //0x00007fea vpshufb %ymm5, %ymm15, %ymm5 + 0xc5, 0xe5, 0xdb, 0xdc, //0x00007fef vpand %ymm4, %ymm3, %ymm3 + 0xc4, 0xe2, 0x4d, 0x00, 0xdb, //0x00007ff3 vpshufb %ymm3, %ymm6, %ymm3 + 0xc4, 0xc1, 0x15, 0x71, 0xd4, 0x04, //0x00007ff8 vpsrlw $4, %ymm12, %ymm13 + 0xc5, 0x15, 0xdb, 0xec, //0x00007ffe vpand %ymm4, %ymm13, %ymm13 + 0xc4, 0x42, 0x45, 0x00, 0xed, //0x00008002 vpshufb %ymm13, %ymm7, %ymm13 + 0xc5, 0x95, 0xdb, 0xdb, //0x00008007 vpand %ymm3, %ymm13, %ymm3 + 0xc5, 0xd5, 0xdb, 0xdb, //0x0000800b vpand %ymm3, %ymm5, %ymm3 + 0xc4, 0xe3, 0x1d, 0x0f, 0xea, 0x0e, //0x0000800f vpalignr $14, %ymm2, %ymm12, %ymm5 + 0xc4, 0xe3, 0x1d, 0x0f, 0xd2, 0x0d, //0x00008015 vpalignr $13, %ymm2, %ymm12, %ymm2 + 0xc4, 0xc1, 0x55, 0xd8, 0xe8, //0x0000801b vpsubusb %ymm8, %ymm5, %ymm5 + 0xc4, 0xc1, 0x6d, 0xd8, 0xd1, //0x00008020 vpsubusb %ymm9, %ymm2, %ymm2 + 0xc5, 0xed, 0xeb, 0xd5, //0x00008025 vpor %ymm5, %ymm2, %ymm2 + 0xc4, 0x41, 0x09, 0xef, 0xf6, //0x00008029 vpxor %xmm14, %xmm14, %xmm14 + 0xc5, 0x8d, 0x74, 0xd2, //0x0000802e vpcmpeqb %ymm2, %ymm14, %ymm2 + 0xc5, 0xed, 0xdf, 0xd1, //0x00008032 vpandn %ymm1, %ymm2, %ymm2 + 0xc5, 0xed, 0xef, 0xd3, //0x00008036 vpxor %ymm3, %ymm2, %ymm2 + 0xc4, 0xc3, 0x1d, 0x46, 0xdb, 0x21, //0x0000803a vperm2i128 $33, %ymm11, %ymm12, %ymm3 + 0xc4, 0xe3, 0x25, 0x0f, 0xeb, 0x0f, //0x00008040 vpalignr $15, %ymm3, %ymm11, %ymm5 + 0xc5, 0x9d, 0x71, 0xd5, 0x04, //0x00008046 vpsrlw $4, %ymm5, %ymm12 + 0xc5, 0x1d, 0xdb, 0xe4, //0x0000804b vpand %ymm4, %ymm12, %ymm12 + 0xc4, 0x42, 0x05, 0x00, 0xe4, //0x0000804f vpshufb %ymm12, %ymm15, %ymm12 + 0xc5, 0xd5, 0xdb, 0xec, //0x00008054 vpand %ymm4, %ymm5, %ymm5 + 0xc4, 0xe2, 0x4d, 0x00, 0xed, //0x00008058 vpshufb %ymm5, %ymm6, %ymm5 + 0xc4, 0xc1, 0x15, 0x71, 0xd3, 0x04, //0x0000805d vpsrlw $4, %ymm11, %ymm13 + 0xc5, 0x15, 0xdb, 0xec, //0x00008063 vpand %ymm4, %ymm13, %ymm13 + 0xc4, 0x42, 0x45, 0x00, 0xed, //0x00008067 vpshufb %ymm13, %ymm7, %ymm13 + 0xc5, 0x95, 0xdb, 0xed, //0x0000806c vpand %ymm5, %ymm13, %ymm5 + 0xc5, 0x9d, 0xdb, 0xed, //0x00008070 vpand %ymm5, %ymm12, %ymm5 + 0xc4, 0x63, 0x25, 0x0f, 0xe3, 0x0e, //0x00008074 vpalignr $14, %ymm3, %ymm11, %ymm12 + 0xc4, 0xe3, 0x25, 0x0f, 0xdb, 0x0d, //0x0000807a vpalignr $13, %ymm3, %ymm11, %ymm3 + 0xc4, 0x41, 0x1d, 0xd8, 0xe0, //0x00008080 vpsubusb %ymm8, %ymm12, %ymm12 + 0xc4, 0xc1, 0x65, 0xd8, 0xd9, //0x00008085 vpsubusb %ymm9, %ymm3, %ymm3 + 0xc5, 0x9d, 0xeb, 0xdb, //0x0000808a vpor %ymm3, %ymm12, %ymm3 + 0xc5, 0x8d, 0x74, 0xdb, //0x0000808e vpcmpeqb %ymm3, %ymm14, %ymm3 + 0xc5, 0xe5, 0xdf, 0xc9, //0x00008092 vpandn %ymm1, %ymm3, %ymm1 + 0xc5, 0xf5, 0xef, 0xcd, //0x00008096 vpxor %ymm5, %ymm1, %ymm1 + 0xc5, 0xed, 0xeb, 0xc0, //0x0000809a vpor %ymm0, %ymm2, %ymm0 + 0xe9, 0x1a, 0xfe, 0xff, 0xff, //0x0000809e jmp LBB31_8 + //0x000080a3 LBB31_11 + 0xc4, 0xc1, 0x15, 0xd8, 0xca, //0x000080a3 vpsubusb %ymm10, %ymm13, %ymm1 + 0xc5, 0xfd, 0xeb, 0xc1, //0x000080a8 vpor %ymm1, %ymm0, %ymm0 + 0xc5, 0x7d, 0x7f, 0xea, //0x000080ac vmovdqa %ymm13, %ymm2 + 0xe9, 0x0c, 0xfd, 0xff, 0xff, //0x000080b0 jmp LBB31_5 + //0x000080b5 LBB31_13 + 0x48, 0x83, 0xe2, 0x80, //0x000080b5 andq $-128, %rdx + 0x4c, 0x01, 0xc2, //0x000080b9 addq %r8, %rdx + //0x000080bc LBB31_14 + 0x49, 0x8d, 0x49, 0xc0, //0x000080bc leaq $-64(%r9), %rcx + 0x48, 0x39, 0xca, //0x000080c0 cmpq %rcx, %rdx + 0x0f, 0x83, 0x79, 0x01, 0x00, 0x00, //0x000080c3 jae LBB31_20 + 0x48, 0x89, 0xc6, //0x000080c9 movq %rax, %rsi + 0x48, 0x29, 0xd6, //0x000080cc subq %rdx, %rsi + 0x4a, 0x8d, 0x7c, 0x06, 0xff, //0x000080cf leaq $-1(%rsi,%r8), %rdi + 0xc5, 0xfd, 0x6f, 0x1d, 0x24, 0xfb, 0xff, 0xff, //0x000080d4 vmovdqa $-1244(%rip), %ymm3 /* LCPI31_0+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x25, 0x3c, 0xfb, 0xff, 0xff, //0x000080dc vmovdqa $-1220(%rip), %ymm4 /* LCPI31_1+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x2d, 0x54, 0xfb, 0xff, 0xff, //0x000080e4 vmovdqa $-1196(%rip), %ymm5 /* LCPI31_2+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x35, 0x6c, 0xfb, 0xff, 0xff, //0x000080ec vmovdqa $-1172(%rip), %ymm6 /* LCPI31_3+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x3d, 0x84, 0xfb, 0xff, 0xff, //0x000080f4 vmovdqa $-1148(%rip), %ymm7 /* LCPI31_4+0(%rip) */ + 0xc5, 0x7d, 0x6f, 0x05, 0x9c, 0xfb, 0xff, 0xff, //0x000080fc vmovdqa $-1124(%rip), %ymm8 /* LCPI31_5+0(%rip) */ + 0xc4, 0x41, 0x31, 0xef, 0xc9, //0x00008104 vpxor %xmm9, %xmm9, %xmm9 + 0xc5, 0x7d, 0x6f, 0x15, 0xaf, 0xfb, 0xff, 0xff, //0x00008109 vmovdqa $-1105(%rip), %ymm10 /* LCPI31_7+0(%rip) */ + 0x48, 0x89, 0xd6, //0x00008111 movq %rdx, %rsi + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008114 .p2align 4, 0x90 + //0x00008120 LBB31_16 + 0xc5, 0x7e, 0x6f, 0x26, //0x00008120 vmovdqu (%rsi), %ymm12 + 0xc5, 0x7e, 0x6f, 0x5e, 0x20, //0x00008124 vmovdqu $32(%rsi), %ymm11 + 0xc4, 0x41, 0x25, 0xeb, 0xec, //0x00008129 vpor %ymm12, %ymm11, %ymm13 + 0xc4, 0xc1, 0x7d, 0xd7, 0xdd, //0x0000812e vpmovmskb %ymm13, %ebx + 0x85, 0xdb, //0x00008133 testl %ebx, %ebx + 0x0f, 0x85, 0x16, 0x00, 0x00, 0x00, //0x00008135 jne LBB31_18 + 0xc5, 0xf5, 0xeb, 0xc0, //0x0000813b vpor %ymm0, %ymm1, %ymm0 + 0x48, 0x83, 0xc6, 0x40, //0x0000813f addq $64, %rsi + 0x48, 0x39, 0xce, //0x00008143 cmpq %rcx, %rsi + 0x0f, 0x82, 0xd4, 0xff, 0xff, 0xff, //0x00008146 jb LBB31_16 + 0xe9, 0xea, 0x00, 0x00, 0x00, //0x0000814c jmp LBB31_19 + //0x00008151 LBB31_18 + 0xc4, 0xc3, 0x6d, 0x46, 0xcc, 0x21, //0x00008151 vperm2i128 $33, %ymm12, %ymm2, %ymm1 + 0xc4, 0xe3, 0x1d, 0x0f, 0xd1, 0x0f, //0x00008157 vpalignr $15, %ymm1, %ymm12, %ymm2 + 0xc5, 0x95, 0x71, 0xd2, 0x04, //0x0000815d vpsrlw $4, %ymm2, %ymm13 + 0xc5, 0x15, 0xdb, 0xeb, //0x00008162 vpand %ymm3, %ymm13, %ymm13 + 0xc4, 0x42, 0x5d, 0x00, 0xed, //0x00008166 vpshufb %ymm13, %ymm4, %ymm13 + 0xc5, 0xed, 0xdb, 0xd3, //0x0000816b vpand %ymm3, %ymm2, %ymm2 + 0xc4, 0xe2, 0x55, 0x00, 0xd2, //0x0000816f vpshufb %ymm2, %ymm5, %ymm2 + 0xc4, 0xc1, 0x0d, 0x71, 0xd4, 0x04, //0x00008174 vpsrlw $4, %ymm12, %ymm14 + 0xc5, 0x0d, 0xdb, 0xf3, //0x0000817a vpand %ymm3, %ymm14, %ymm14 + 0xc4, 0x42, 0x4d, 0x00, 0xf6, //0x0000817e vpshufb %ymm14, %ymm6, %ymm14 + 0xc5, 0x8d, 0xdb, 0xd2, //0x00008183 vpand %ymm2, %ymm14, %ymm2 + 0xc5, 0x95, 0xdb, 0xd2, //0x00008187 vpand %ymm2, %ymm13, %ymm2 + 0xc4, 0x63, 0x1d, 0x0f, 0xe9, 0x0e, //0x0000818b vpalignr $14, %ymm1, %ymm12, %ymm13 + 0xc4, 0xe3, 0x1d, 0x0f, 0xc9, 0x0d, //0x00008191 vpalignr $13, %ymm1, %ymm12, %ymm1 + 0xc5, 0x15, 0xd8, 0xef, //0x00008197 vpsubusb %ymm7, %ymm13, %ymm13 + 0xc4, 0xc1, 0x75, 0xd8, 0xc8, //0x0000819b vpsubusb %ymm8, %ymm1, %ymm1 + 0xc5, 0x95, 0xeb, 0xc9, //0x000081a0 vpor %ymm1, %ymm13, %ymm1 + 0xc5, 0xb5, 0x74, 0xc9, //0x000081a4 vpcmpeqb %ymm1, %ymm9, %ymm1 + 0xc4, 0x62, 0x7d, 0x59, 0x2d, 0x4f, 0xfb, 0xff, 0xff, //0x000081a8 vpbroadcastq $-1201(%rip), %ymm13 /* LCPI31_6+0(%rip) */ + 0xc4, 0xc1, 0x75, 0xdf, 0xcd, //0x000081b1 vpandn %ymm13, %ymm1, %ymm1 + 0xc5, 0xf5, 0xef, 0xca, //0x000081b6 vpxor %ymm2, %ymm1, %ymm1 + 0xc4, 0xc3, 0x1d, 0x46, 0xd3, 0x21, //0x000081ba vperm2i128 $33, %ymm11, %ymm12, %ymm2 + 0xc4, 0x63, 0x25, 0x0f, 0xe2, 0x0f, //0x000081c0 vpalignr $15, %ymm2, %ymm11, %ymm12 + 0xc4, 0xc1, 0x0d, 0x71, 0xd4, 0x04, //0x000081c6 vpsrlw $4, %ymm12, %ymm14 + 0xc5, 0x0d, 0xdb, 0xf3, //0x000081cc vpand %ymm3, %ymm14, %ymm14 + 0xc4, 0x42, 0x5d, 0x00, 0xf6, //0x000081d0 vpshufb %ymm14, %ymm4, %ymm14 + 0xc5, 0x1d, 0xdb, 0xe3, //0x000081d5 vpand %ymm3, %ymm12, %ymm12 + 0xc4, 0x42, 0x55, 0x00, 0xe4, //0x000081d9 vpshufb %ymm12, %ymm5, %ymm12 + 0xc4, 0xc1, 0x05, 0x71, 0xd3, 0x04, //0x000081de vpsrlw $4, %ymm11, %ymm15 + 0xc5, 0x05, 0xdb, 0xfb, //0x000081e4 vpand %ymm3, %ymm15, %ymm15 + 0xc4, 0x42, 0x4d, 0x00, 0xff, //0x000081e8 vpshufb %ymm15, %ymm6, %ymm15 + 0xc4, 0x41, 0x1d, 0xdb, 0xe7, //0x000081ed vpand %ymm15, %ymm12, %ymm12 + 0xc4, 0x41, 0x0d, 0xdb, 0xe4, //0x000081f2 vpand %ymm12, %ymm14, %ymm12 + 0xc4, 0x63, 0x25, 0x0f, 0xf2, 0x0e, //0x000081f7 vpalignr $14, %ymm2, %ymm11, %ymm14 + 0xc4, 0xe3, 0x25, 0x0f, 0xd2, 0x0d, //0x000081fd vpalignr $13, %ymm2, %ymm11, %ymm2 + 0xc5, 0x0d, 0xd8, 0xf7, //0x00008203 vpsubusb %ymm7, %ymm14, %ymm14 + 0xc4, 0xc1, 0x6d, 0xd8, 0xd0, //0x00008207 vpsubusb %ymm8, %ymm2, %ymm2 + 0xc5, 0x8d, 0xeb, 0xd2, //0x0000820c vpor %ymm2, %ymm14, %ymm2 + 0xc5, 0xb5, 0x74, 0xd2, //0x00008210 vpcmpeqb %ymm2, %ymm9, %ymm2 + 0xc4, 0xc1, 0x6d, 0xdf, 0xd5, //0x00008214 vpandn %ymm13, %ymm2, %ymm2 + 0xc5, 0x9d, 0xef, 0xd2, //0x00008219 vpxor %ymm2, %ymm12, %ymm2 + 0xc5, 0xf5, 0xeb, 0xc0, //0x0000821d vpor %ymm0, %ymm1, %ymm0 + 0xc5, 0xfd, 0xeb, 0xc2, //0x00008221 vpor %ymm2, %ymm0, %ymm0 + 0xc4, 0xc1, 0x25, 0xd8, 0xca, //0x00008225 vpsubusb %ymm10, %ymm11, %ymm1 + 0xc5, 0x7d, 0x7f, 0xda, //0x0000822a vmovdqa %ymm11, %ymm2 + 0x48, 0x83, 0xc6, 0x40, //0x0000822e addq $64, %rsi + 0x48, 0x39, 0xce, //0x00008232 cmpq %rcx, %rsi + 0x0f, 0x82, 0xe5, 0xfe, 0xff, 0xff, //0x00008235 jb LBB31_16 + //0x0000823b LBB31_19 + 0x48, 0x83, 0xe7, 0xc0, //0x0000823b andq $-64, %rdi + 0x48, 0x01, 0xfa, //0x0000823f addq %rdi, %rdx + //0x00008242 LBB31_20 + 0xc5, 0xe1, 0xef, 0xdb, //0x00008242 vpxor %xmm3, %xmm3, %xmm3 + 0xc5, 0xfe, 0x7f, 0x5c, 0x24, 0x40, //0x00008246 vmovdqu %ymm3, $64(%rsp) + 0xc5, 0xfe, 0x7f, 0x5c, 0x24, 0x20, //0x0000824c vmovdqu %ymm3, $32(%rsp) + 0xc5, 0xd9, 0xef, 0xe4, //0x00008252 vpxor %xmm4, %xmm4, %xmm4 + 0x4c, 0x39, 0xca, //0x00008256 cmpq %r9, %rdx + 0x0f, 0x83, 0x70, 0x00, 0x00, 0x00, //0x00008259 jae LBB31_36 + 0x48, 0x89, 0xc1, //0x0000825f movq %rax, %rcx + 0x48, 0x29, 0xd1, //0x00008262 subq %rdx, %rcx + 0x4d, 0x8d, 0x1c, 0x08, //0x00008265 leaq (%r8,%rcx), %r11 + 0x49, 0x81, 0xfb, 0x80, 0x00, 0x00, 0x00, //0x00008269 cmpq $128, %r11 + 0x0f, 0x82, 0x1f, 0x00, 0x00, 0x00, //0x00008270 jb LBB31_22 + 0x48, 0x8d, 0x74, 0x24, 0x20, //0x00008276 leaq $32(%rsp), %rsi + 0x4c, 0x39, 0xce, //0x0000827b cmpq %r9, %rsi + 0x0f, 0x83, 0x74, 0x02, 0x00, 0x00, //0x0000827e jae LBB31_26 + 0x48, 0x8d, 0x4c, 0x0c, 0x20, //0x00008284 leaq $32(%rsp,%rcx), %rcx + 0x4c, 0x01, 0xc1, //0x00008289 addq %r8, %rcx + 0x48, 0x39, 0xca, //0x0000828c cmpq %rcx, %rdx + 0x0f, 0x83, 0x63, 0x02, 0x00, 0x00, //0x0000828f jae LBB31_26 + //0x00008295 LBB31_22 + 0x31, 0xc9, //0x00008295 xorl %ecx, %ecx + //0x00008297 LBB31_33 + 0x48, 0x8d, 0x4c, 0x0c, 0x20, //0x00008297 leaq $32(%rsp,%rcx), %rcx + 0x48, 0x29, 0xd0, //0x0000829c subq %rdx, %rax + 0x4c, 0x01, 0xc0, //0x0000829f addq %r8, %rax + 0x31, 0xf6, //0x000082a2 xorl %esi, %esi + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000082a4 .p2align 4, 0x90 + //0x000082b0 LBB31_34 + 0x0f, 0xb6, 0x1c, 0x32, //0x000082b0 movzbl (%rdx,%rsi), %ebx + 0x88, 0x1c, 0x31, //0x000082b4 movb %bl, (%rcx,%rsi) + 0x48, 0xff, 0xc6, //0x000082b7 incq %rsi + 0x48, 0x39, 0xf0, //0x000082ba cmpq %rsi, %rax + 0x0f, 0x85, 0xed, 0xff, 0xff, 0xff, //0x000082bd jne LBB31_34 + //0x000082c3 LBB31_35 + 0xc5, 0xfe, 0x6f, 0x64, 0x24, 0x20, //0x000082c3 vmovdqu $32(%rsp), %ymm4 + 0xc5, 0xfe, 0x6f, 0x5c, 0x24, 0x40, //0x000082c9 vmovdqu $64(%rsp), %ymm3 + //0x000082cf LBB31_36 + 0xc5, 0xdd, 0xeb, 0xeb, //0x000082cf vpor %ymm3, %ymm4, %ymm5 + 0xc5, 0xfd, 0xd7, 0xc5, //0x000082d3 vpmovmskb %ymm5, %eax + 0x85, 0xc0, //0x000082d7 testl %eax, %eax + 0x0f, 0x85, 0x38, 0x03, 0x00, 0x00, //0x000082d9 jne LBB31_40 + 0xc5, 0xfd, 0xeb, 0xc1, //0x000082df vpor %ymm1, %ymm0, %ymm0 + 0xc5, 0xfd, 0xeb, 0xc1, //0x000082e3 vpor %ymm1, %ymm0, %ymm0 + 0xc4, 0xe2, 0x7d, 0x17, 0xc0, //0x000082e7 vptest %ymm0, %ymm0 + 0x0f, 0x84, 0xfa, 0x01, 0x00, 0x00, //0x000082ec je LBB31_12 + //0x000082f2 LBB31_41 + 0x49, 0x8d, 0x49, 0xfd, //0x000082f2 leaq $-3(%r9), %rcx + 0x4c, 0x89, 0xc0, //0x000082f6 movq %r8, %rax + 0x49, 0x39, 0xc8, //0x000082f9 cmpq %rcx, %r8 + 0x0f, 0x83, 0xde, 0x00, 0x00, 0x00, //0x000082fc jae LBB31_55 + 0x4c, 0x89, 0xc0, //0x00008302 movq %r8, %rax + 0xe9, 0x12, 0x00, 0x00, 0x00, //0x00008305 jmp LBB31_44 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000830a .p2align 4, 0x90 + //0x00008310 LBB31_43 + 0x48, 0x01, 0xf0, //0x00008310 addq %rsi, %rax + 0x48, 0x39, 0xc8, //0x00008313 cmpq %rcx, %rax + 0x0f, 0x83, 0xc4, 0x00, 0x00, 0x00, //0x00008316 jae LBB31_55 + //0x0000831c LBB31_44 + 0xbe, 0x01, 0x00, 0x00, 0x00, //0x0000831c movl $1, %esi + 0x80, 0x38, 0x00, //0x00008321 cmpb $0, (%rax) + 0x0f, 0x89, 0xe6, 0xff, 0xff, 0xff, //0x00008324 jns LBB31_43 + 0x8b, 0x10, //0x0000832a movl (%rax), %edx + 0x89, 0xd6, //0x0000832c movl %edx, %esi + 0x81, 0xe6, 0xf0, 0xc0, 0xc0, 0x00, //0x0000832e andl $12632304, %esi + 0x81, 0xfe, 0xe0, 0x80, 0x80, 0x00, //0x00008334 cmpl $8421600, %esi + 0x0f, 0x85, 0x30, 0x00, 0x00, 0x00, //0x0000833a jne LBB31_48 + 0x89, 0xd7, //0x00008340 movl %edx, %edi + 0x81, 0xe7, 0x0f, 0x20, 0x00, 0x00, //0x00008342 andl $8207, %edi + 0x81, 0xff, 0x0d, 0x20, 0x00, 0x00, //0x00008348 cmpl $8205, %edi + 0x0f, 0x84, 0x1c, 0x00, 0x00, 0x00, //0x0000834e je LBB31_48 + 0xbe, 0x03, 0x00, 0x00, 0x00, //0x00008354 movl $3, %esi + 0x85, 0xff, //0x00008359 testl %edi, %edi + 0x0f, 0x85, 0xaf, 0xff, 0xff, 0xff, //0x0000835b jne LBB31_43 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008361 .p2align 4, 0x90 + //0x00008370 LBB31_48 + 0x89, 0xd6, //0x00008370 movl %edx, %esi + 0x81, 0xe6, 0xe0, 0xc0, 0x00, 0x00, //0x00008372 andl $49376, %esi + 0x81, 0xfe, 0xc0, 0x80, 0x00, 0x00, //0x00008378 cmpl $32960, %esi + 0x0f, 0x85, 0x10, 0x00, 0x00, 0x00, //0x0000837e jne LBB31_50 + 0x89, 0xd7, //0x00008384 movl %edx, %edi + 0xbe, 0x02, 0x00, 0x00, 0x00, //0x00008386 movl $2, %esi + 0x83, 0xe7, 0x1e, //0x0000838b andl $30, %edi + 0x0f, 0x85, 0x7c, 0xff, 0xff, 0xff, //0x0000838e jne LBB31_43 + //0x00008394 LBB31_50 + 0x89, 0xd6, //0x00008394 movl %edx, %esi + 0x81, 0xe6, 0xf8, 0xc0, 0xc0, 0xc0, //0x00008396 andl $-1061109512, %esi + 0x81, 0xfe, 0xf0, 0x80, 0x80, 0x80, //0x0000839c cmpl $-2139062032, %esi + 0x0f, 0x85, 0x28, 0x00, 0x00, 0x00, //0x000083a2 jne LBB31_54 + 0x89, 0xd6, //0x000083a8 movl %edx, %esi + 0x81, 0xe6, 0x07, 0x30, 0x00, 0x00, //0x000083aa andl $12295, %esi + 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x000083b0 je LBB31_54 + 0xbe, 0x04, 0x00, 0x00, 0x00, //0x000083b6 movl $4, %esi + 0xf6, 0xc2, 0x04, //0x000083bb testb $4, %dl + 0x0f, 0x84, 0x4c, 0xff, 0xff, 0xff, //0x000083be je LBB31_43 + 0x81, 0xe2, 0x03, 0x30, 0x00, 0x00, //0x000083c4 andl $12291, %edx + 0x0f, 0x84, 0x40, 0xff, 0xff, 0xff, //0x000083ca je LBB31_43 + //0x000083d0 LBB31_54 + 0x48, 0xf7, 0xd0, //0x000083d0 notq %rax + 0x4c, 0x01, 0xc0, //0x000083d3 addq %r8, %rax + 0x48, 0x8d, 0x65, 0xf8, //0x000083d6 leaq $-8(%rbp), %rsp + 0x5b, //0x000083da popq %rbx + 0x5d, //0x000083db popq %rbp + 0xc5, 0xf8, 0x77, //0x000083dc vzeroupper + 0xc3, //0x000083df retq + //0x000083e0 LBB31_55 + 0x4c, 0x39, 0xc8, //0x000083e0 cmpq %r9, %rax + 0x0f, 0x83, 0x03, 0x01, 0x00, 0x00, //0x000083e3 jae LBB31_12 + 0x4c, 0x8d, 0x54, 0x24, 0x20, //0x000083e9 leaq $32(%rsp), %r10 + 0x4c, 0x8d, 0x5c, 0x24, 0x1e, //0x000083ee leaq $30(%rsp), %r11 + 0xe9, 0x14, 0x00, 0x00, 0x00, //0x000083f3 jmp LBB31_58 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000083f8 .p2align 4, 0x90 + //0x00008400 LBB31_57 + 0x48, 0xff, 0xc0, //0x00008400 incq %rax + 0x4c, 0x39, 0xc8, //0x00008403 cmpq %r9, %rax + 0x0f, 0x83, 0xe0, 0x00, 0x00, 0x00, //0x00008406 jae LBB31_12 + //0x0000840c LBB31_58 + 0x80, 0x38, 0x00, //0x0000840c cmpb $0, (%rax) + 0x0f, 0x89, 0xeb, 0xff, 0xff, 0xff, //0x0000840f jns LBB31_57 + 0xc6, 0x44, 0x24, 0x20, 0x00, //0x00008415 movb $0, $32(%rsp) + 0xc6, 0x44, 0x24, 0x1e, 0x00, //0x0000841a movb $0, $30(%rsp) + 0x4c, 0x89, 0xc9, //0x0000841f movq %r9, %rcx + 0x48, 0x29, 0xc1, //0x00008422 subq %rax, %rcx + 0x48, 0x83, 0xf9, 0x02, //0x00008425 cmpq $2, %rcx + 0x0f, 0x82, 0x33, 0x00, 0x00, 0x00, //0x00008429 jb LBB31_62 + 0x0f, 0xb6, 0x10, //0x0000842f movzbl (%rax), %edx + 0x0f, 0xb6, 0x78, 0x01, //0x00008432 movzbl $1(%rax), %edi + 0x88, 0x54, 0x24, 0x20, //0x00008436 movb %dl, $32(%rsp) + 0x48, 0x8d, 0x70, 0x02, //0x0000843a leaq $2(%rax), %rsi + 0x48, 0x83, 0xc1, 0xfe, //0x0000843e addq $-2, %rcx + 0x4c, 0x89, 0xdb, //0x00008442 movq %r11, %rbx + 0x48, 0x85, 0xc9, //0x00008445 testq %rcx, %rcx + 0x0f, 0x84, 0x27, 0x00, 0x00, 0x00, //0x00008448 je LBB31_63 + //0x0000844e LBB31_61 + 0x0f, 0xb6, 0x0e, //0x0000844e movzbl (%rsi), %ecx + 0x88, 0x0b, //0x00008451 movb %cl, (%rbx) + 0x0f, 0xb6, 0x54, 0x24, 0x20, //0x00008453 movzbl $32(%rsp), %edx + 0x0f, 0xb6, 0x4c, 0x24, 0x1e, //0x00008458 movzbl $30(%rsp), %ecx + 0xe9, 0x15, 0x00, 0x00, 0x00, //0x0000845d jmp LBB31_64 + //0x00008462 LBB31_62 + 0x31, 0xd2, //0x00008462 xorl %edx, %edx + 0x31, 0xff, //0x00008464 xorl %edi, %edi + 0x4c, 0x89, 0xd3, //0x00008466 movq %r10, %rbx + 0x48, 0x89, 0xc6, //0x00008469 movq %rax, %rsi + 0x48, 0x85, 0xc9, //0x0000846c testq %rcx, %rcx + 0x0f, 0x85, 0xd9, 0xff, 0xff, 0xff, //0x0000846f jne LBB31_61 + //0x00008475 LBB31_63 + 0x31, 0xc9, //0x00008475 xorl %ecx, %ecx + //0x00008477 LBB31_64 + 0x0f, 0xb6, 0xf1, //0x00008477 movzbl %cl, %esi + 0xc1, 0xe6, 0x10, //0x0000847a shll $16, %esi + 0x40, 0x0f, 0xb6, 0xff, //0x0000847d movzbl %dil, %edi + 0xc1, 0xe7, 0x08, //0x00008481 shll $8, %edi + 0x0f, 0xb6, 0xca, //0x00008484 movzbl %dl, %ecx + 0x09, 0xf9, //0x00008487 orl %edi, %ecx + 0x09, 0xce, //0x00008489 orl %ecx, %esi + 0x81, 0xe6, 0xf0, 0xc0, 0xc0, 0x00, //0x0000848b andl $12632304, %esi + 0x81, 0xfe, 0xe0, 0x80, 0x80, 0x00, //0x00008491 cmpl $8421600, %esi + 0x0f, 0x85, 0x23, 0x00, 0x00, 0x00, //0x00008497 jne LBB31_67 + 0x89, 0xcf, //0x0000849d movl %ecx, %edi + 0x81, 0xe7, 0x0f, 0x20, 0x00, 0x00, //0x0000849f andl $8207, %edi + 0x81, 0xff, 0x0d, 0x20, 0x00, 0x00, //0x000084a5 cmpl $8205, %edi + 0x0f, 0x84, 0x0f, 0x00, 0x00, 0x00, //0x000084ab je LBB31_67 + 0xbe, 0x03, 0x00, 0x00, 0x00, //0x000084b1 movl $3, %esi + 0x85, 0xff, //0x000084b6 testl %edi, %edi + 0x0f, 0x85, 0x22, 0x00, 0x00, 0x00, //0x000084b8 jne LBB31_69 + 0x90, 0x90, //0x000084be .p2align 4, 0x90 + //0x000084c0 LBB31_67 + 0xf6, 0xc2, 0x1e, //0x000084c0 testb $30, %dl + 0x0f, 0x84, 0x07, 0xff, 0xff, 0xff, //0x000084c3 je LBB31_54 + 0x81, 0xe1, 0xe0, 0xc0, 0x00, 0x00, //0x000084c9 andl $49376, %ecx + 0xbe, 0x02, 0x00, 0x00, 0x00, //0x000084cf movl $2, %esi + 0x81, 0xf9, 0xc0, 0x80, 0x00, 0x00, //0x000084d4 cmpl $32960, %ecx + 0x0f, 0x85, 0xf0, 0xfe, 0xff, 0xff, //0x000084da jne LBB31_54 + //0x000084e0 LBB31_69 + 0x48, 0x01, 0xf0, //0x000084e0 addq %rsi, %rax + 0x4c, 0x39, 0xc8, //0x000084e3 cmpq %r9, %rax + 0x0f, 0x82, 0x20, 0xff, 0xff, 0xff, //0x000084e6 jb LBB31_58 + //0x000084ec LBB31_12 + 0x31, 0xc0, //0x000084ec xorl %eax, %eax + 0x48, 0x8d, 0x65, 0xf8, //0x000084ee leaq $-8(%rbp), %rsp + 0x5b, //0x000084f2 popq %rbx + 0x5d, //0x000084f3 popq %rbp + 0xc5, 0xf8, 0x77, //0x000084f4 vzeroupper + 0xc3, //0x000084f7 retq + //0x000084f8 LBB31_26 + 0x4c, 0x89, 0xd9, //0x000084f8 movq %r11, %rcx + 0x48, 0x83, 0xe1, 0x80, //0x000084fb andq $-128, %rcx + 0x48, 0x8d, 0x79, 0x80, //0x000084ff leaq $-128(%rcx), %rdi + 0x48, 0x89, 0xfe, //0x00008503 movq %rdi, %rsi + 0x48, 0xc1, 0xee, 0x07, //0x00008506 shrq $7, %rsi + 0x48, 0xff, 0xc6, //0x0000850a incq %rsi + 0x41, 0x89, 0xf2, //0x0000850d movl %esi, %r10d + 0x41, 0x83, 0xe2, 0x01, //0x00008510 andl $1, %r10d + 0x48, 0x85, 0xff, //0x00008514 testq %rdi, %rdi + 0x0f, 0x84, 0xea, 0x00, 0x00, 0x00, //0x00008517 je LBB31_39 + 0x4c, 0x29, 0xd6, //0x0000851d subq %r10, %rsi + 0x31, 0xff, //0x00008520 xorl %edi, %edi + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008522 .p2align 4, 0x90 + //0x00008530 LBB31_28 + 0xc5, 0xfc, 0x10, 0x1c, 0x3a, //0x00008530 vmovups (%rdx,%rdi), %ymm3 + 0xc5, 0xfc, 0x10, 0x64, 0x3a, 0x20, //0x00008535 vmovups $32(%rdx,%rdi), %ymm4 + 0xc5, 0xfc, 0x10, 0x6c, 0x3a, 0x40, //0x0000853b vmovups $64(%rdx,%rdi), %ymm5 + 0xc5, 0xfc, 0x10, 0x74, 0x3a, 0x60, //0x00008541 vmovups $96(%rdx,%rdi), %ymm6 + 0xc5, 0xfc, 0x11, 0x5c, 0x3c, 0x20, //0x00008547 vmovups %ymm3, $32(%rsp,%rdi) + 0xc5, 0xfc, 0x11, 0x64, 0x3c, 0x40, //0x0000854d vmovups %ymm4, $64(%rsp,%rdi) + 0xc5, 0xfc, 0x11, 0x6c, 0x3c, 0x60, //0x00008553 vmovups %ymm5, $96(%rsp,%rdi) + 0xc5, 0xfc, 0x11, 0xb4, 0x3c, 0x80, 0x00, 0x00, 0x00, //0x00008559 vmovups %ymm6, $128(%rsp,%rdi) + 0xc5, 0xfe, 0x6f, 0x9c, 0x3a, 0x80, 0x00, 0x00, 0x00, //0x00008562 vmovdqu $128(%rdx,%rdi), %ymm3 + 0xc5, 0xfe, 0x6f, 0xa4, 0x3a, 0xa0, 0x00, 0x00, 0x00, //0x0000856b vmovdqu $160(%rdx,%rdi), %ymm4 + 0xc5, 0xfe, 0x6f, 0xac, 0x3a, 0xc0, 0x00, 0x00, 0x00, //0x00008574 vmovdqu $192(%rdx,%rdi), %ymm5 + 0xc5, 0xfe, 0x6f, 0xb4, 0x3a, 0xe0, 0x00, 0x00, 0x00, //0x0000857d vmovdqu $224(%rdx,%rdi), %ymm6 + 0xc5, 0xfe, 0x7f, 0x9c, 0x3c, 0xa0, 0x00, 0x00, 0x00, //0x00008586 vmovdqu %ymm3, $160(%rsp,%rdi) + 0xc5, 0xfe, 0x7f, 0xa4, 0x3c, 0xc0, 0x00, 0x00, 0x00, //0x0000858f vmovdqu %ymm4, $192(%rsp,%rdi) + 0xc5, 0xfe, 0x7f, 0xac, 0x3c, 0xe0, 0x00, 0x00, 0x00, //0x00008598 vmovdqu %ymm5, $224(%rsp,%rdi) + 0xc5, 0xfe, 0x7f, 0xb4, 0x3c, 0x00, 0x01, 0x00, 0x00, //0x000085a1 vmovdqu %ymm6, $256(%rsp,%rdi) + 0x48, 0x81, 0xc7, 0x00, 0x01, 0x00, 0x00, //0x000085aa addq $256, %rdi + 0x48, 0x83, 0xc6, 0xfe, //0x000085b1 addq $-2, %rsi + 0x0f, 0x85, 0x75, 0xff, 0xff, 0xff, //0x000085b5 jne LBB31_28 + 0x4d, 0x85, 0xd2, //0x000085bb testq %r10, %r10 + 0x0f, 0x84, 0x32, 0x00, 0x00, 0x00, //0x000085be je LBB31_31 + //0x000085c4 LBB31_30 + 0xc5, 0xfe, 0x6f, 0x1c, 0x3a, //0x000085c4 vmovdqu (%rdx,%rdi), %ymm3 + 0xc5, 0xfe, 0x6f, 0x64, 0x3a, 0x20, //0x000085c9 vmovdqu $32(%rdx,%rdi), %ymm4 + 0xc5, 0xfe, 0x6f, 0x6c, 0x3a, 0x40, //0x000085cf vmovdqu $64(%rdx,%rdi), %ymm5 + 0xc5, 0xfe, 0x6f, 0x74, 0x3a, 0x60, //0x000085d5 vmovdqu $96(%rdx,%rdi), %ymm6 + 0xc5, 0xfe, 0x7f, 0x5c, 0x3c, 0x20, //0x000085db vmovdqu %ymm3, $32(%rsp,%rdi) + 0xc5, 0xfe, 0x7f, 0x64, 0x3c, 0x40, //0x000085e1 vmovdqu %ymm4, $64(%rsp,%rdi) + 0xc5, 0xfe, 0x7f, 0x6c, 0x3c, 0x60, //0x000085e7 vmovdqu %ymm5, $96(%rsp,%rdi) + 0xc5, 0xfe, 0x7f, 0xb4, 0x3c, 0x80, 0x00, 0x00, 0x00, //0x000085ed vmovdqu %ymm6, $128(%rsp,%rdi) + //0x000085f6 LBB31_31 + 0x4c, 0x39, 0xd9, //0x000085f6 cmpq %r11, %rcx + 0x0f, 0x84, 0xc4, 0xfc, 0xff, 0xff, //0x000085f9 je LBB31_35 + 0x48, 0x01, 0xca, //0x000085ff addq %rcx, %rdx + 0xe9, 0x90, 0xfc, 0xff, 0xff, //0x00008602 jmp LBB31_33 + //0x00008607 LBB31_39 + 0x31, 0xff, //0x00008607 xorl %edi, %edi + 0x4d, 0x85, 0xd2, //0x00008609 testq %r10, %r10 + 0x0f, 0x85, 0xb2, 0xff, 0xff, 0xff, //0x0000860c jne LBB31_30 + 0xe9, 0xdf, 0xff, 0xff, 0xff, //0x00008612 jmp LBB31_31 + //0x00008617 LBB31_40 + 0xc4, 0xe3, 0x6d, 0x46, 0xd4, 0x21, //0x00008617 vperm2i128 $33, %ymm4, %ymm2, %ymm2 + 0xc4, 0xe3, 0x5d, 0x0f, 0xea, 0x0f, //0x0000861d vpalignr $15, %ymm2, %ymm4, %ymm5 + 0xc5, 0xcd, 0x71, 0xd5, 0x04, //0x00008623 vpsrlw $4, %ymm5, %ymm6 + 0xc5, 0xfd, 0x6f, 0x0d, 0xd0, 0xf5, 0xff, 0xff, //0x00008628 vmovdqa $-2608(%rip), %ymm1 /* LCPI31_0+0(%rip) */ + 0xc5, 0xcd, 0xdb, 0xf1, //0x00008630 vpand %ymm1, %ymm6, %ymm6 + 0xc5, 0xfd, 0x6f, 0x3d, 0xe4, 0xf5, 0xff, 0xff, //0x00008634 vmovdqa $-2588(%rip), %ymm7 /* LCPI31_1+0(%rip) */ + 0xc4, 0xe2, 0x45, 0x00, 0xf6, //0x0000863c vpshufb %ymm6, %ymm7, %ymm6 + 0xc5, 0xd5, 0xdb, 0xe9, //0x00008641 vpand %ymm1, %ymm5, %ymm5 + 0xc5, 0x7d, 0x6f, 0x05, 0xf3, 0xf5, 0xff, 0xff, //0x00008645 vmovdqa $-2573(%rip), %ymm8 /* LCPI31_2+0(%rip) */ + 0xc4, 0xe2, 0x3d, 0x00, 0xed, //0x0000864d vpshufb %ymm5, %ymm8, %ymm5 + 0xc5, 0xb5, 0x71, 0xd4, 0x04, //0x00008652 vpsrlw $4, %ymm4, %ymm9 + 0xc5, 0x35, 0xdb, 0xc9, //0x00008657 vpand %ymm1, %ymm9, %ymm9 + 0xc5, 0x7d, 0x6f, 0x15, 0xfd, 0xf5, 0xff, 0xff, //0x0000865b vmovdqa $-2563(%rip), %ymm10 /* LCPI31_3+0(%rip) */ + 0xc4, 0x42, 0x2d, 0x00, 0xc9, //0x00008663 vpshufb %ymm9, %ymm10, %ymm9 + 0xc5, 0xb5, 0xdb, 0xed, //0x00008668 vpand %ymm5, %ymm9, %ymm5 + 0xc5, 0xcd, 0xdb, 0xed, //0x0000866c vpand %ymm5, %ymm6, %ymm5 + 0xc4, 0xe3, 0x5d, 0x0f, 0xf2, 0x0e, //0x00008670 vpalignr $14, %ymm2, %ymm4, %ymm6 + 0xc4, 0xe3, 0x5d, 0x0f, 0xd2, 0x0d, //0x00008676 vpalignr $13, %ymm2, %ymm4, %ymm2 + 0xc5, 0x7d, 0x6f, 0x0d, 0xfc, 0xf5, 0xff, 0xff, //0x0000867c vmovdqa $-2564(%rip), %ymm9 /* LCPI31_4+0(%rip) */ + 0xc4, 0xc1, 0x4d, 0xd8, 0xf1, //0x00008684 vpsubusb %ymm9, %ymm6, %ymm6 + 0xc5, 0x7d, 0x6f, 0x1d, 0x0f, 0xf6, 0xff, 0xff, //0x00008689 vmovdqa $-2545(%rip), %ymm11 /* LCPI31_5+0(%rip) */ + 0xc4, 0xc1, 0x6d, 0xd8, 0xd3, //0x00008691 vpsubusb %ymm11, %ymm2, %ymm2 + 0xc5, 0xed, 0xeb, 0xd6, //0x00008696 vpor %ymm6, %ymm2, %ymm2 + 0xc5, 0xc9, 0xef, 0xf6, //0x0000869a vpxor %xmm6, %xmm6, %xmm6 + 0xc5, 0xed, 0x74, 0xd6, //0x0000869e vpcmpeqb %ymm6, %ymm2, %ymm2 + 0xc4, 0x62, 0x7d, 0x59, 0x25, 0x55, 0xf6, 0xff, 0xff, //0x000086a2 vpbroadcastq $-2475(%rip), %ymm12 /* LCPI31_6+0(%rip) */ + 0xc4, 0xc1, 0x6d, 0xdf, 0xd4, //0x000086ab vpandn %ymm12, %ymm2, %ymm2 + 0xc5, 0xed, 0xef, 0xd5, //0x000086b0 vpxor %ymm5, %ymm2, %ymm2 + 0xc4, 0xe3, 0x5d, 0x46, 0xe3, 0x21, //0x000086b4 vperm2i128 $33, %ymm3, %ymm4, %ymm4 + 0xc4, 0xe3, 0x65, 0x0f, 0xec, 0x0f, //0x000086ba vpalignr $15, %ymm4, %ymm3, %ymm5 + 0xc5, 0x95, 0x71, 0xd5, 0x04, //0x000086c0 vpsrlw $4, %ymm5, %ymm13 + 0xc5, 0x15, 0xdb, 0xe9, //0x000086c5 vpand %ymm1, %ymm13, %ymm13 + 0xc4, 0xc2, 0x45, 0x00, 0xfd, //0x000086c9 vpshufb %ymm13, %ymm7, %ymm7 + 0xc5, 0xd5, 0xdb, 0xe9, //0x000086ce vpand %ymm1, %ymm5, %ymm5 + 0xc4, 0xe2, 0x3d, 0x00, 0xed, //0x000086d2 vpshufb %ymm5, %ymm8, %ymm5 + 0xc5, 0xbd, 0x71, 0xd3, 0x04, //0x000086d7 vpsrlw $4, %ymm3, %ymm8 + 0xc5, 0xbd, 0xdb, 0xc9, //0x000086dc vpand %ymm1, %ymm8, %ymm1 + 0xc4, 0xe2, 0x2d, 0x00, 0xc9, //0x000086e0 vpshufb %ymm1, %ymm10, %ymm1 + 0xc5, 0xd5, 0xdb, 0xc9, //0x000086e5 vpand %ymm1, %ymm5, %ymm1 + 0xc5, 0xc5, 0xdb, 0xc9, //0x000086e9 vpand %ymm1, %ymm7, %ymm1 + 0xc4, 0xe3, 0x65, 0x0f, 0xec, 0x0e, //0x000086ed vpalignr $14, %ymm4, %ymm3, %ymm5 + 0xc4, 0xe3, 0x65, 0x0f, 0xe4, 0x0d, //0x000086f3 vpalignr $13, %ymm4, %ymm3, %ymm4 + 0xc4, 0xc1, 0x55, 0xd8, 0xe9, //0x000086f9 vpsubusb %ymm9, %ymm5, %ymm5 + 0xc4, 0xc1, 0x5d, 0xd8, 0xe3, //0x000086fe vpsubusb %ymm11, %ymm4, %ymm4 + 0xc5, 0xdd, 0xeb, 0xe5, //0x00008703 vpor %ymm5, %ymm4, %ymm4 + 0xc5, 0xdd, 0x74, 0xe6, //0x00008707 vpcmpeqb %ymm6, %ymm4, %ymm4 + 0xc4, 0xc1, 0x5d, 0xdf, 0xe4, //0x0000870b vpandn %ymm12, %ymm4, %ymm4 + 0xc5, 0xdd, 0xef, 0xc9, //0x00008710 vpxor %ymm1, %ymm4, %ymm1 + 0xc5, 0xed, 0xeb, 0xc0, //0x00008714 vpor %ymm0, %ymm2, %ymm0 + 0xc5, 0xfd, 0xeb, 0xc1, //0x00008718 vpor %ymm1, %ymm0, %ymm0 + 0xc5, 0xe5, 0xd8, 0x0d, 0x9c, 0xf5, 0xff, 0xff, //0x0000871c vpsubusb $-2660(%rip), %ymm3, %ymm1 /* LCPI31_7+0(%rip) */ + 0xc5, 0xfd, 0xeb, 0xc1, //0x00008724 vpor %ymm1, %ymm0, %ymm0 + 0xc4, 0xe2, 0x7d, 0x17, 0xc0, //0x00008728 vptest %ymm0, %ymm0 + 0x0f, 0x84, 0xb9, 0xfd, 0xff, 0xff, //0x0000872d je LBB31_12 + 0xe9, 0xba, 0xfb, 0xff, 0xff, //0x00008733 jmp LBB31_41 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00008738 .p2align 5, 0x00 + //0x00008740 LCPI32_0 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, //0x00008740 QUAD $0x3030303030303030; QUAD $0x3030303030303030 // .space 16, '0000000000000000' - //0x00008750 .p2align 4, 0x90 - //0x00008750 _f32toa - 0x55, //0x00008750 pushq %rbp - 0x48, 0x89, 0xe5, //0x00008751 movq %rsp, %rbp - 0x41, 0x57, //0x00008754 pushq %r15 - 0x41, 0x56, //0x00008756 pushq %r14 - 0x41, 0x55, //0x00008758 pushq %r13 - 0x41, 0x54, //0x0000875a pushq %r12 - 0x53, //0x0000875c pushq %rbx - 0x48, 0x83, 0xec, 0x10, //0x0000875d subq $16, %rsp - 0xc5, 0xf9, 0x7e, 0xc0, //0x00008761 vmovd %xmm0, %eax - 0x89, 0xc1, //0x00008765 movl %eax, %ecx - 0xc1, 0xe9, 0x17, //0x00008767 shrl $23, %ecx - 0x0f, 0xb6, 0xd1, //0x0000876a movzbl %cl, %edx - 0x81, 0xfa, 0xff, 0x00, 0x00, 0x00, //0x0000876d cmpl $255, %edx - 0x0f, 0x84, 0x7f, 0x0e, 0x00, 0x00, //0x00008773 je LBB36_1 - 0xc6, 0x07, 0x2d, //0x00008779 movb $45, (%rdi) - 0x41, 0x89, 0xc2, //0x0000877c movl %eax, %r10d - 0x41, 0xc1, 0xea, 0x1f, //0x0000877f shrl $31, %r10d - 0x4e, 0x8d, 0x0c, 0x17, //0x00008783 leaq (%rdi,%r10), %r9 - 0xa9, 0xff, 0xff, 0xff, 0x7f, //0x00008787 testl $2147483647, %eax - 0x0f, 0x84, 0xa9, 0x01, 0x00, 0x00, //0x0000878c je LBB36_3 - 0x25, 0xff, 0xff, 0x7f, 0x00, //0x00008792 andl $8388607, %eax - 0x85, 0xd2, //0x00008797 testl %edx, %edx - 0x0f, 0x84, 0x60, 0x0e, 0x00, 0x00, //0x00008799 je LBB36_5 - 0x44, 0x8d, 0x98, 0x00, 0x00, 0x80, 0x00, //0x0000879f leal $8388608(%rax), %r11d - 0x44, 0x8d, 0x82, 0x6a, 0xff, 0xff, 0xff, //0x000087a6 leal $-150(%rdx), %r8d - 0x8d, 0x4a, 0x81, //0x000087ad leal $-127(%rdx), %ecx - 0x83, 0xf9, 0x17, //0x000087b0 cmpl $23, %ecx - 0x0f, 0x87, 0x1c, 0x00, 0x00, 0x00, //0x000087b3 ja LBB36_10 - 0xb9, 0x96, 0x00, 0x00, 0x00, //0x000087b9 movl $150, %ecx - 0x29, 0xd1, //0x000087be subl %edx, %ecx - 0x48, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x000087c0 movq $-1, %rsi - 0x48, 0xd3, 0xe6, //0x000087c7 shlq %cl, %rsi - 0xf7, 0xd6, //0x000087ca notl %esi - 0x44, 0x85, 0xde, //0x000087cc testl %r11d, %esi - 0x0f, 0x84, 0x22, 0x03, 0x00, 0x00, //0x000087cf je LBB36_12 - //0x000087d5 LBB36_10 - 0x4c, 0x89, 0x4d, 0xc8, //0x000087d5 movq %r9, $-56(%rbp) - 0x48, 0x89, 0x7d, 0xd0, //0x000087d9 movq %rdi, $-48(%rbp) - //0x000087dd LBB36_6 - 0x45, 0x89, 0xdf, //0x000087dd movl %r11d, %r15d - 0x41, 0x83, 0xe7, 0x01, //0x000087e0 andl $1, %r15d - 0x85, 0xc0, //0x000087e4 testl %eax, %eax - 0x0f, 0x94, 0xc0, //0x000087e6 sete %al - 0x83, 0xfa, 0x02, //0x000087e9 cmpl $2, %edx - 0x0f, 0x93, 0xc1, //0x000087ec setae %cl - 0x20, 0xc1, //0x000087ef andb %al, %cl - 0x0f, 0xb6, 0xc9, //0x000087f1 movzbl %cl, %ecx - 0x45, 0x89, 0xd9, //0x000087f4 movl %r11d, %r9d - 0x41, 0xc1, 0xe1, 0x02, //0x000087f7 shll $2, %r9d - 0x42, 0x8d, 0x04, 0x99, //0x000087fb leal (%rcx,%r11,4), %eax - 0x83, 0xc0, 0xfe, //0x000087ff addl $-2, %eax - 0x41, 0x69, 0xd0, 0x13, 0x44, 0x13, 0x00, //0x00008802 imull $1262611, %r8d, %edx - 0x44, 0x8d, 0xb2, 0x01, 0x01, 0xf8, 0xff, //0x00008809 leal $-524031(%rdx), %r14d - 0x84, 0xc9, //0x00008810 testb %cl, %cl - 0x44, 0x0f, 0x44, 0xf2, //0x00008812 cmovel %edx, %r14d - 0x41, 0xc1, 0xfe, 0x16, //0x00008816 sarl $22, %r14d - 0x41, 0x69, 0xce, 0xb1, 0x6c, 0xe5, 0xff, //0x0000881a imull $-1741647, %r14d, %ecx - 0xc1, 0xe9, 0x13, //0x00008821 shrl $19, %ecx - 0x44, 0x01, 0xc1, //0x00008824 addl %r8d, %ecx - 0xba, 0x1f, 0x00, 0x00, 0x00, //0x00008827 movl $31, %edx - 0x44, 0x29, 0xf2, //0x0000882c subl %r14d, %edx - 0x80, 0xc1, 0x01, //0x0000882f addb $1, %cl - 0xd3, 0xe0, //0x00008832 shll %cl, %eax - 0x48, 0x8d, 0x35, 0x25, 0xbd, 0x00, 0x00, //0x00008834 leaq $48421(%rip), %rsi /* _pow10_ceil_sig_f32.g+0(%rip) */ - 0x4c, 0x8b, 0x2c, 0xd6, //0x0000883b movq (%rsi,%rdx,8), %r13 - 0x49, 0xf7, 0xe5, //0x0000883f mulq %r13 - 0x49, 0x89, 0xd0, //0x00008842 movq %rdx, %r8 + 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, //0x00008750 QUAD $0x3030303030303030; QUAD $0x3030303030303030 // .space 16, '0000000000000000' + //0x00008760 .p2align 4, 0x90 + //0x00008760 _f32toa + 0x55, //0x00008760 pushq %rbp + 0x48, 0x89, 0xe5, //0x00008761 movq %rsp, %rbp + 0x41, 0x57, //0x00008764 pushq %r15 + 0x41, 0x56, //0x00008766 pushq %r14 + 0x41, 0x55, //0x00008768 pushq %r13 + 0x41, 0x54, //0x0000876a pushq %r12 + 0x53, //0x0000876c pushq %rbx + 0xc5, 0xf9, 0x7e, 0xc0, //0x0000876d vmovd %xmm0, %eax + 0x89, 0xc1, //0x00008771 movl %eax, %ecx + 0xc1, 0xe9, 0x17, //0x00008773 shrl $23, %ecx + 0x0f, 0xb6, 0xd9, //0x00008776 movzbl %cl, %ebx + 0x81, 0xfb, 0xff, 0x00, 0x00, 0x00, //0x00008779 cmpl $255, %ebx + 0x0f, 0x84, 0xff, 0x0c, 0x00, 0x00, //0x0000877f je LBB32_139 + 0xc6, 0x07, 0x2d, //0x00008785 movb $45, (%rdi) + 0x41, 0x89, 0xc1, //0x00008788 movl %eax, %r9d + 0x41, 0xc1, 0xe9, 0x1f, //0x0000878b shrl $31, %r9d + 0x4e, 0x8d, 0x04, 0x0f, //0x0000878f leaq (%rdi,%r9), %r8 + 0xa9, 0xff, 0xff, 0xff, 0x7f, //0x00008793 testl $2147483647, %eax + 0x0f, 0x84, 0xc6, 0x01, 0x00, 0x00, //0x00008798 je LBB32_14 + 0x25, 0xff, 0xff, 0x7f, 0x00, //0x0000879e andl $8388607, %eax + 0x85, 0xdb, //0x000087a3 testl %ebx, %ebx + 0x0f, 0x84, 0xe1, 0x0c, 0x00, 0x00, //0x000087a5 je LBB32_140 + 0x8d, 0xb0, 0x00, 0x00, 0x80, 0x00, //0x000087ab leal $8388608(%rax), %esi + 0x44, 0x8d, 0xbb, 0x6a, 0xff, 0xff, 0xff, //0x000087b1 leal $-150(%rbx), %r15d + 0x8d, 0x4b, 0x81, //0x000087b8 leal $-127(%rbx), %ecx + 0x83, 0xf9, 0x17, //0x000087bb cmpl $23, %ecx + 0x0f, 0x87, 0x1b, 0x00, 0x00, 0x00, //0x000087be ja LBB32_5 + 0xb9, 0x96, 0x00, 0x00, 0x00, //0x000087c4 movl $150, %ecx + 0x29, 0xd9, //0x000087c9 subl %ebx, %ecx + 0x48, 0xc7, 0xc2, 0xff, 0xff, 0xff, 0xff, //0x000087cb movq $-1, %rdx + 0x48, 0xd3, 0xe2, //0x000087d2 shlq %cl, %rdx + 0xf7, 0xd2, //0x000087d5 notl %edx + 0x85, 0xf2, //0x000087d7 testl %esi, %edx + 0x0f, 0x84, 0x12, 0x04, 0x00, 0x00, //0x000087d9 je LBB32_32 + //0x000087df LBB32_5 + 0x41, 0x89, 0xf6, //0x000087df movl %esi, %r14d + 0x41, 0x83, 0xe6, 0x01, //0x000087e2 andl $1, %r14d + 0x85, 0xc0, //0x000087e6 testl %eax, %eax + 0x0f, 0x94, 0xc0, //0x000087e8 sete %al + 0x83, 0xfb, 0x01, //0x000087eb cmpl $1, %ebx + 0x0f, 0x97, 0xc1, //0x000087ee seta %cl + 0x20, 0xc1, //0x000087f1 andb %al, %cl + 0x0f, 0xb6, 0xc9, //0x000087f3 movzbl %cl, %ecx + 0x41, 0x89, 0xf2, //0x000087f6 movl %esi, %r10d + 0x41, 0xc1, 0xe2, 0x02, //0x000087f9 shll $2, %r10d + 0x8d, 0x44, 0xb1, 0xfe, //0x000087fd leal $-2(%rcx,%rsi,4), %eax + 0x45, 0x69, 0xdf, 0x13, 0x44, 0x13, 0x00, //0x00008801 imull $1262611, %r15d, %r11d + 0x31, 0xd2, //0x00008808 xorl %edx, %edx + 0x84, 0xc9, //0x0000880a testb %cl, %cl + 0xb9, 0xff, 0xfe, 0x07, 0x00, //0x0000880c movl $524031, %ecx + 0x0f, 0x44, 0xca, //0x00008811 cmovel %edx, %ecx + 0x41, 0x29, 0xcb, //0x00008814 subl %ecx, %r11d + 0x41, 0xc1, 0xfb, 0x16, //0x00008817 sarl $22, %r11d + 0x41, 0x69, 0xcb, 0xb1, 0x6c, 0xe5, 0xff, //0x0000881b imull $-1741647, %r11d, %ecx + 0xc1, 0xe9, 0x13, //0x00008822 shrl $19, %ecx + 0x44, 0x01, 0xf9, //0x00008825 addl %r15d, %ecx + 0xba, 0x1f, 0x00, 0x00, 0x00, //0x00008828 movl $31, %edx + 0x44, 0x29, 0xda, //0x0000882d subl %r11d, %edx + 0x48, 0x63, 0xd2, //0x00008830 movslq %edx, %rdx + 0x48, 0x8d, 0x1d, 0x86, 0xb7, 0x00, 0x00, //0x00008833 leaq $46982(%rip), %rbx /* _pow10_ceil_sig_f32.g+0(%rip) */ + 0xfe, 0xc1, //0x0000883a incb %cl + 0xd3, 0xe0, //0x0000883c shll %cl, %eax + 0x4c, 0x8b, 0x24, 0xd3, //0x0000883e movq (%rbx,%rdx,8), %r12 + 0x49, 0xf7, 0xe4, //0x00008842 mulq %r12 0x48, 0xc1, 0xe8, 0x20, //0x00008845 shrq $32, %rax - 0x45, 0x31, 0xe4, //0x00008849 xorl %r12d, %r12d - 0x83, 0xf8, 0x02, //0x0000884c cmpl $2, %eax - 0x41, 0x0f, 0x93, 0xc4, //0x0000884f setae %r12b - 0x41, 0xd3, 0xe1, //0x00008853 shll %cl, %r9d - 0x46, 0x8d, 0x1c, 0x9d, 0x02, 0x00, 0x00, 0x00, //0x00008856 leal $2(,%r11,4), %r11d - 0x4c, 0x89, 0xc8, //0x0000885e movq %r9, %rax - 0x49, 0xf7, 0xe5, //0x00008861 mulq %r13 - 0x49, 0x89, 0xd1, //0x00008864 movq %rdx, %r9 - 0x45, 0x09, 0xc4, //0x00008867 orl %r8d, %r12d - 0x48, 0xc1, 0xe8, 0x20, //0x0000886a shrq $32, %rax - 0x31, 0xdb, //0x0000886e xorl %ebx, %ebx - 0x83, 0xf8, 0x02, //0x00008870 cmpl $2, %eax - 0x0f, 0x93, 0xc3, //0x00008873 setae %bl - 0x41, 0xd3, 0xe3, //0x00008876 shll %cl, %r11d - 0x44, 0x09, 0xcb, //0x00008879 orl %r9d, %ebx - 0x4c, 0x89, 0xd8, //0x0000887c movq %r11, %rax - 0x49, 0xf7, 0xe5, //0x0000887f mulq %r13 - 0x48, 0xc1, 0xe8, 0x20, //0x00008882 shrq $32, %rax - 0x31, 0xc9, //0x00008886 xorl %ecx, %ecx - 0x83, 0xf8, 0x02, //0x00008888 cmpl $2, %eax - 0x0f, 0x93, 0xc1, //0x0000888b setae %cl - 0x09, 0xd1, //0x0000888e orl %edx, %ecx - 0x45, 0x01, 0xfc, //0x00008890 addl %r15d, %r12d - 0x44, 0x29, 0xf9, //0x00008893 subl %r15d, %ecx - 0x83, 0xfb, 0x28, //0x00008896 cmpl $40, %ebx - 0x0f, 0x82, 0x42, 0x00, 0x00, 0x00, //0x00008899 jb LBB36_31 - 0x44, 0x89, 0xc8, //0x0000889f movl %r9d, %eax - 0xba, 0xcd, 0xcc, 0xcc, 0xcc, //0x000088a2 movl $3435973837, %edx - 0x48, 0x0f, 0xaf, 0xd0, //0x000088a7 imulq %rax, %rdx - 0x48, 0xc1, 0xea, 0x25, //0x000088ab shrq $37, %rdx - 0x44, 0x89, 0xe0, //0x000088af movl %r12d, %eax - 0x48, 0x8d, 0x34, 0xd5, 0x00, 0x00, 0x00, 0x00, //0x000088b2 leaq (,%rdx,8), %rsi - 0x48, 0x8d, 0x3c, 0xb6, //0x000088ba leaq (%rsi,%rsi,4), %rdi - 0x48, 0x39, 0xc7, //0x000088be cmpq %rax, %rdi - 0x41, 0x0f, 0x92, 0xc3, //0x000088c1 setb %r11b - 0x48, 0x8d, 0x34, 0xb6, //0x000088c5 leaq (%rsi,%rsi,4), %rsi - 0x48, 0x83, 0xc6, 0x28, //0x000088c9 addq $40, %rsi - 0x89, 0xcf, //0x000088cd movl %ecx, %edi - 0x31, 0xc0, //0x000088cf xorl %eax, %eax - 0x48, 0x39, 0xfe, //0x000088d1 cmpq %rdi, %rsi - 0x41, 0x0f, 0x96, 0xc0, //0x000088d4 setbe %r8b - 0x45, 0x38, 0xc3, //0x000088d8 cmpb %r8b, %r11b - 0x0f, 0x84, 0xb7, 0x00, 0x00, 0x00, //0x000088db je LBB36_8 - //0x000088e1 LBB36_31 - 0x4d, 0x89, 0xc8, //0x000088e1 movq %r9, %r8 - 0x49, 0xc1, 0xe8, 0x02, //0x000088e4 shrq $2, %r8 - 0x44, 0x89, 0xca, //0x000088e8 movl %r9d, %edx - 0x83, 0xe2, 0xfc, //0x000088eb andl $-4, %edx - 0x41, 0x39, 0xd4, //0x000088ee cmpl %edx, %r12d - 0x40, 0x0f, 0x97, 0xc6, //0x000088f1 seta %sil - 0x8d, 0x7a, 0x04, //0x000088f5 leal $4(%rdx), %edi - 0x39, 0xcf, //0x000088f8 cmpl %ecx, %edi - 0x0f, 0x96, 0xc0, //0x000088fa setbe %al - 0x40, 0x30, 0xf0, //0x000088fd xorb %sil, %al - 0x0f, 0x84, 0x48, 0x00, 0x00, 0x00, //0x00008900 je LBB36_32 - 0x83, 0xca, 0x02, //0x00008906 orl $2, %edx - 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00008909 movl $1, %eax - 0x39, 0xd3, //0x0000890e cmpl %edx, %ebx - 0x4c, 0x8b, 0x65, 0xc8, //0x00008910 movq $-56(%rbp), %r12 - 0x0f, 0x87, 0x0e, 0x00, 0x00, 0x00, //0x00008914 ja LBB36_35 - 0x0f, 0x94, 0xc0, //0x0000891a sete %al - 0x41, 0xc0, 0xe9, 0x02, //0x0000891d shrb $2, %r9b - 0x41, 0x20, 0xc1, //0x00008921 andb %al, %r9b - 0x41, 0x0f, 0xb6, 0xc1, //0x00008924 movzbl %r9b, %eax - //0x00008928 LBB36_35 - 0x44, 0x01, 0xc0, //0x00008928 addl %r8d, %eax - 0x3d, 0xa0, 0x86, 0x01, 0x00, //0x0000892b cmpl $100000, %eax - 0x0f, 0x83, 0x30, 0x00, 0x00, 0x00, //0x00008930 jae LBB36_37 - 0xe9, 0x75, 0x00, 0x00, 0x00, //0x00008936 jmp LBB36_40 - //0x0000893b LBB36_3 - 0x41, 0xc6, 0x01, 0x30, //0x0000893b movb $48, (%r9) - 0x41, 0x29, 0xf9, //0x0000893f subl %edi, %r9d - 0x41, 0x83, 0xc1, 0x01, //0x00008942 addl $1, %r9d - 0x44, 0x89, 0xc8, //0x00008946 movl %r9d, %eax - 0xe9, 0x98, 0x0c, 0x00, 0x00, //0x00008949 jmp LBB36_156 - //0x0000894e LBB36_32 - 0x39, 0xf9, //0x0000894e cmpl %edi, %ecx - 0x41, 0x83, 0xd8, 0xff, //0x00008950 sbbl $-1, %r8d - 0x44, 0x89, 0xc0, //0x00008954 movl %r8d, %eax - 0x4c, 0x8b, 0x65, 0xc8, //0x00008957 movq $-56(%rbp), %r12 - 0x3d, 0xa0, 0x86, 0x01, 0x00, //0x0000895b cmpl $100000, %eax - 0x0f, 0x82, 0x4a, 0x00, 0x00, 0x00, //0x00008960 jb LBB36_40 - //0x00008966 LBB36_37 - 0x41, 0xbd, 0x06, 0x00, 0x00, 0x00, //0x00008966 movl $6, %r13d - 0x3d, 0x40, 0x42, 0x0f, 0x00, //0x0000896c cmpl $1000000, %eax - 0x0f, 0x82, 0x77, 0x00, 0x00, 0x00, //0x00008971 jb LBB36_45 - 0x41, 0xbd, 0x07, 0x00, 0x00, 0x00, //0x00008977 movl $7, %r13d - 0x3d, 0x80, 0x96, 0x98, 0x00, //0x0000897d cmpl $10000000, %eax - 0x0f, 0x82, 0x66, 0x00, 0x00, 0x00, //0x00008982 jb LBB36_45 - 0x3d, 0x00, 0xe1, 0xf5, 0x05, //0x00008988 cmpl $100000000, %eax - 0x41, 0xbd, 0x09, 0x00, 0x00, 0x00, //0x0000898d movl $9, %r13d - 0xe9, 0x52, 0x00, 0x00, 0x00, //0x00008993 jmp LBB36_44 - //0x00008998 LBB36_8 - 0x44, 0x88, 0xc0, //0x00008998 movb %r8b, %al - 0x01, 0xd0, //0x0000899b addl %edx, %eax - 0x41, 0x83, 0xc6, 0x01, //0x0000899d addl $1, %r14d - 0x4c, 0x8b, 0x65, 0xc8, //0x000089a1 movq $-56(%rbp), %r12 - 0x3d, 0xa0, 0x86, 0x01, 0x00, //0x000089a5 cmpl $100000, %eax - 0x0f, 0x83, 0xb6, 0xff, 0xff, 0xff, //0x000089aa jae LBB36_37 - //0x000089b0 LBB36_40 - 0x41, 0xbd, 0x01, 0x00, 0x00, 0x00, //0x000089b0 movl $1, %r13d - 0x83, 0xf8, 0x0a, //0x000089b6 cmpl $10, %eax - 0x0f, 0x82, 0x2f, 0x00, 0x00, 0x00, //0x000089b9 jb LBB36_45 - 0x41, 0xbd, 0x02, 0x00, 0x00, 0x00, //0x000089bf movl $2, %r13d - 0x83, 0xf8, 0x64, //0x000089c5 cmpl $100, %eax - 0x0f, 0x82, 0x20, 0x00, 0x00, 0x00, //0x000089c8 jb LBB36_45 - 0x41, 0xbd, 0x03, 0x00, 0x00, 0x00, //0x000089ce movl $3, %r13d - 0x3d, 0xe8, 0x03, 0x00, 0x00, //0x000089d4 cmpl $1000, %eax - 0x0f, 0x82, 0x0f, 0x00, 0x00, 0x00, //0x000089d9 jb LBB36_45 - 0x3d, 0x10, 0x27, 0x00, 0x00, //0x000089df cmpl $10000, %eax - 0x41, 0xbd, 0x05, 0x00, 0x00, 0x00, //0x000089e4 movl $5, %r13d - //0x000089ea LBB36_44 - 0x41, 0x83, 0xdd, 0x00, //0x000089ea sbbl $0, %r13d - //0x000089ee LBB36_45 - 0x47, 0x8d, 0x0c, 0x2e, //0x000089ee leal (%r14,%r13), %r9d - 0x43, 0x8d, 0x0c, 0x2e, //0x000089f2 leal (%r14,%r13), %ecx - 0x83, 0xc1, 0x05, //0x000089f6 addl $5, %ecx - 0x83, 0xf9, 0x1b, //0x000089f9 cmpl $27, %ecx - 0x0f, 0x82, 0x6d, 0x00, 0x00, 0x00, //0x000089fc jb LBB36_70 - 0x44, 0x89, 0xea, //0x00008a02 movl %r13d, %edx - 0x49, 0x8d, 0x0c, 0x14, //0x00008a05 leaq (%r12,%rdx), %rcx - 0x48, 0x83, 0xc1, 0x01, //0x00008a09 addq $1, %rcx - 0x3d, 0x10, 0x27, 0x00, 0x00, //0x00008a0d cmpl $10000, %eax - 0x0f, 0x82, 0xc6, 0x00, 0x00, 0x00, //0x00008a12 jb LBB36_47 - 0x89, 0xc6, //0x00008a18 movl %eax, %esi - 0xbb, 0x59, 0x17, 0xb7, 0xd1, //0x00008a1a movl $3518437209, %ebx - 0x48, 0x0f, 0xaf, 0xde, //0x00008a1f imulq %rsi, %rbx - 0x48, 0xc1, 0xeb, 0x2d, //0x00008a23 shrq $45, %rbx - 0x44, 0x69, 0xc3, 0xf0, 0xd8, 0xff, 0xff, //0x00008a27 imull $-10000, %ebx, %r8d - 0x41, 0x01, 0xc0, //0x00008a2e addl %eax, %r8d - 0x4c, 0x8b, 0x6d, 0xd0, //0x00008a31 movq $-48(%rbp), %r13 - 0x0f, 0x84, 0x48, 0x03, 0x00, 0x00, //0x00008a35 je LBB36_49 - 0x44, 0x89, 0xc0, //0x00008a3b movl %r8d, %eax - 0x48, 0x69, 0xc0, 0x1f, 0x85, 0xeb, 0x51, //0x00008a3e imulq $1374389535, %rax, %rax - 0x48, 0xc1, 0xe8, 0x25, //0x00008a45 shrq $37, %rax - 0x6b, 0xf0, 0x64, //0x00008a49 imull $100, %eax, %esi - 0x41, 0x29, 0xf0, //0x00008a4c subl %esi, %r8d - 0x48, 0x8d, 0x35, 0x8a, 0x47, 0x00, 0x00, //0x00008a4f leaq $18314(%rip), %rsi /* _Digits+0(%rip) */ - 0x42, 0x0f, 0xb7, 0x3c, 0x46, //0x00008a56 movzwl (%rsi,%r8,2), %edi - 0x66, 0x89, 0x79, 0xfe, //0x00008a5b movw %di, $-2(%rcx) - 0x0f, 0xb7, 0x04, 0x46, //0x00008a5f movzwl (%rsi,%rax,2), %eax - 0x66, 0x89, 0x41, 0xfc, //0x00008a63 movw %ax, $-4(%rcx) - 0x45, 0x31, 0xc0, //0x00008a67 xorl %r8d, %r8d - 0xe9, 0x1a, 0x03, 0x00, 0x00, //0x00008a6a jmp LBB36_51 - //0x00008a6f LBB36_70 - 0x45, 0x89, 0xe8, //0x00008a6f movl %r13d, %r8d - 0x45, 0x85, 0xf6, //0x00008a72 testl %r14d, %r14d - 0x0f, 0x88, 0x1c, 0x01, 0x00, 0x00, //0x00008a75 js LBB36_71 - 0x4b, 0x8d, 0x14, 0x04, //0x00008a7b leaq (%r12,%r8), %rdx - 0x3d, 0x10, 0x27, 0x00, 0x00, //0x00008a7f cmpl $10000, %eax - 0x0f, 0x82, 0x77, 0x01, 0x00, 0x00, //0x00008a84 jb LBB36_124 - 0x89, 0xc1, //0x00008a8a movl %eax, %ecx - 0xbe, 0x59, 0x17, 0xb7, 0xd1, //0x00008a8c movl $3518437209, %esi - 0x48, 0x0f, 0xaf, 0xf1, //0x00008a91 imulq %rcx, %rsi - 0x48, 0xc1, 0xee, 0x2d, //0x00008a95 shrq $45, %rsi - 0x69, 0xce, 0xf0, 0xd8, 0xff, 0xff, //0x00008a99 imull $-10000, %esi, %ecx - 0x01, 0xc1, //0x00008a9f addl %eax, %ecx - 0x48, 0x69, 0xc1, 0x1f, 0x85, 0xeb, 0x51, //0x00008aa1 imulq $1374389535, %rcx, %rax - 0x48, 0xc1, 0xe8, 0x25, //0x00008aa8 shrq $37, %rax - 0x6b, 0xf8, 0x64, //0x00008aac imull $100, %eax, %edi - 0x29, 0xf9, //0x00008aaf subl %edi, %ecx - 0x48, 0x8d, 0x3d, 0x28, 0x47, 0x00, 0x00, //0x00008ab1 leaq $18216(%rip), %rdi /* _Digits+0(%rip) */ - 0x0f, 0xb7, 0x0c, 0x4f, //0x00008ab8 movzwl (%rdi,%rcx,2), %ecx - 0x66, 0x89, 0x4a, 0xfe, //0x00008abc movw %cx, $-2(%rdx) - 0x48, 0x8d, 0x4a, 0xfc, //0x00008ac0 leaq $-4(%rdx), %rcx - 0x0f, 0xb7, 0x04, 0x47, //0x00008ac4 movzwl (%rdi,%rax,2), %eax - 0x66, 0x89, 0x42, 0xfc, //0x00008ac8 movw %ax, $-4(%rdx) - 0x89, 0xf0, //0x00008acc movl %esi, %eax - 0x83, 0xf8, 0x64, //0x00008ace cmpl $100, %eax - 0x0f, 0x83, 0x36, 0x01, 0x00, 0x00, //0x00008ad1 jae LBB36_128 - //0x00008ad7 LBB36_127 - 0x89, 0xc3, //0x00008ad7 movl %eax, %ebx - 0xe9, 0x70, 0x01, 0x00, 0x00, //0x00008ad9 jmp LBB36_130 - //0x00008ade LBB36_47 - 0x45, 0x31, 0xc0, //0x00008ade xorl %r8d, %r8d - 0x89, 0xc3, //0x00008ae1 movl %eax, %ebx - 0x4c, 0x8b, 0x6d, 0xd0, //0x00008ae3 movq $-48(%rbp), %r13 - 0x83, 0xfb, 0x64, //0x00008ae7 cmpl $100, %ebx - 0x0f, 0x83, 0xa6, 0x02, 0x00, 0x00, //0x00008aea jae LBB36_54 - //0x00008af0 LBB36_53 - 0x89, 0xd8, //0x00008af0 movl %ebx, %eax - 0xe9, 0xe8, 0x02, 0x00, 0x00, //0x00008af2 jmp LBB36_56 - //0x00008af7 LBB36_12 - 0x41, 0xd3, 0xeb, //0x00008af7 shrl %cl, %r11d - 0x41, 0x81, 0xfb, 0xa0, 0x86, 0x01, 0x00, //0x00008afa cmpl $100000, %r11d - 0x0f, 0x82, 0xcb, 0x01, 0x00, 0x00, //0x00008b01 jb LBB36_18 - 0xb9, 0x06, 0x00, 0x00, 0x00, //0x00008b07 movl $6, %ecx - 0x41, 0x81, 0xfb, 0x40, 0x42, 0x0f, 0x00, //0x00008b0c cmpl $1000000, %r11d - 0x0f, 0x82, 0x22, 0x00, 0x00, 0x00, //0x00008b13 jb LBB36_16 - 0xb9, 0x07, 0x00, 0x00, 0x00, //0x00008b19 movl $7, %ecx - 0x41, 0x81, 0xfb, 0x80, 0x96, 0x98, 0x00, //0x00008b1e cmpl $10000000, %r11d - 0x0f, 0x82, 0x10, 0x00, 0x00, 0x00, //0x00008b25 jb LBB36_16 - 0x41, 0x81, 0xfb, 0x00, 0xe1, 0xf5, 0x05, //0x00008b2b cmpl $100000000, %r11d - 0xb9, 0x09, 0x00, 0x00, 0x00, //0x00008b32 movl $9, %ecx - 0x48, 0x83, 0xd9, 0x00, //0x00008b37 sbbq $0, %rcx - //0x00008b3b LBB36_16 - 0x4c, 0x01, 0xc9, //0x00008b3b addq %r9, %rcx - //0x00008b3e LBB36_17 - 0x44, 0x89, 0xd8, //0x00008b3e movl %r11d, %eax - 0xba, 0x59, 0x17, 0xb7, 0xd1, //0x00008b41 movl $3518437209, %edx - 0x48, 0x0f, 0xaf, 0xd0, //0x00008b46 imulq %rax, %rdx - 0x48, 0xc1, 0xea, 0x2d, //0x00008b4a shrq $45, %rdx - 0x69, 0xc2, 0xf0, 0xd8, 0xff, 0xff, //0x00008b4e imull $-10000, %edx, %eax - 0x44, 0x01, 0xd8, //0x00008b54 addl %r11d, %eax - 0x48, 0x69, 0xf0, 0x1f, 0x85, 0xeb, 0x51, //0x00008b57 imulq $1374389535, %rax, %rsi - 0x48, 0xc1, 0xee, 0x25, //0x00008b5e shrq $37, %rsi - 0x6b, 0xde, 0x64, //0x00008b62 imull $100, %esi, %ebx - 0x29, 0xd8, //0x00008b65 subl %ebx, %eax - 0x48, 0x8d, 0x1d, 0x72, 0x46, 0x00, 0x00, //0x00008b67 leaq $18034(%rip), %rbx /* _Digits+0(%rip) */ - 0x0f, 0xb7, 0x04, 0x43, //0x00008b6e movzwl (%rbx,%rax,2), %eax - 0x66, 0x89, 0x41, 0xfe, //0x00008b72 movw %ax, $-2(%rcx) - 0x0f, 0xb7, 0x04, 0x73, //0x00008b76 movzwl (%rbx,%rsi,2), %eax - 0x66, 0x89, 0x41, 0xfc, //0x00008b7a movw %ax, $-4(%rcx) - 0x48, 0x89, 0xc8, //0x00008b7e movq %rcx, %rax - 0x48, 0x83, 0xc1, 0xfc, //0x00008b81 addq $-4, %rcx - 0x41, 0x89, 0xd3, //0x00008b85 movl %edx, %r11d - 0x41, 0x83, 0xfb, 0x64, //0x00008b88 cmpl $100, %r11d - 0x0f, 0x83, 0x80, 0x01, 0x00, 0x00, //0x00008b8c jae LBB36_25 - 0xe9, 0xbb, 0x01, 0x00, 0x00, //0x00008b92 jmp LBB36_27 - //0x00008b97 LBB36_71 - 0x45, 0x85, 0xc9, //0x00008b97 testl %r9d, %r9d - 0x0f, 0x8f, 0x62, 0x06, 0x00, 0x00, //0x00008b9a jg LBB36_84 - 0x66, 0x41, 0xc7, 0x04, 0x24, 0x30, 0x2e, //0x00008ba0 movw $11824, (%r12) - 0x49, 0x83, 0xc4, 0x02, //0x00008ba7 addq $2, %r12 - 0x45, 0x85, 0xc9, //0x00008bab testl %r9d, %r9d - 0x0f, 0x89, 0x4e, 0x06, 0x00, 0x00, //0x00008bae jns LBB36_84 - 0x45, 0x89, 0xeb, //0x00008bb4 movl %r13d, %r11d - 0x41, 0xf7, 0xd3, //0x00008bb7 notl %r11d - 0x45, 0x29, 0xf3, //0x00008bba subl %r14d, %r11d - 0x31, 0xc9, //0x00008bbd xorl %ecx, %ecx - 0x41, 0x83, 0xfb, 0x7f, //0x00008bbf cmpl $127, %r11d - 0x0f, 0x82, 0x18, 0x06, 0x00, 0x00, //0x00008bc3 jb LBB36_82 - 0x4c, 0x89, 0xe7, //0x00008bc9 movq %r12, %rdi - 0x49, 0x83, 0xc3, 0x01, //0x00008bcc addq $1, %r11 - 0x4c, 0x89, 0xd9, //0x00008bd0 movq %r11, %rcx - 0x48, 0x83, 0xe1, 0x80, //0x00008bd3 andq $-128, %rcx - 0x48, 0x8d, 0x51, 0x80, //0x00008bd7 leaq $-128(%rcx), %rdx - 0x49, 0x89, 0xd4, //0x00008bdb movq %rdx, %r12 - 0x49, 0xc1, 0xec, 0x07, //0x00008bde shrq $7, %r12 - 0x49, 0x83, 0xc4, 0x01, //0x00008be2 addq $1, %r12 - 0x45, 0x89, 0xe7, //0x00008be6 movl %r12d, %r15d - 0x41, 0x83, 0xe7, 0x03, //0x00008be9 andl $3, %r15d - 0x48, 0x81, 0xfa, 0x80, 0x01, 0x00, 0x00, //0x00008bed cmpq $384, %rdx - 0x0f, 0x83, 0xde, 0x04, 0x00, 0x00, //0x00008bf4 jae LBB36_76 - 0x31, 0xd2, //0x00008bfa xorl %edx, %edx - 0xe9, 0x88, 0x05, 0x00, 0x00, //0x00008bfc jmp LBB36_78 - //0x00008c01 LBB36_124 - 0x48, 0x89, 0xd1, //0x00008c01 movq %rdx, %rcx - 0x83, 0xf8, 0x64, //0x00008c04 cmpl $100, %eax - 0x0f, 0x82, 0xca, 0xfe, 0xff, 0xff, //0x00008c07 jb LBB36_127 - //0x00008c0d LBB36_128 - 0x48, 0x83, 0xc1, 0xff, //0x00008c0d addq $-1, %rcx - 0x4c, 0x8d, 0x1d, 0xc8, 0x45, 0x00, 0x00, //0x00008c11 leaq $17864(%rip), %r11 /* _Digits+0(%rip) */ - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008c18 .p2align 4, 0x90 - //0x00008c20 LBB36_129 - 0x89, 0xc6, //0x00008c20 movl %eax, %esi - 0x48, 0x69, 0xde, 0x1f, 0x85, 0xeb, 0x51, //0x00008c22 imulq $1374389535, %rsi, %rbx - 0x48, 0xc1, 0xeb, 0x25, //0x00008c29 shrq $37, %rbx - 0x6b, 0xf3, 0x64, //0x00008c2d imull $100, %ebx, %esi - 0x89, 0xc7, //0x00008c30 movl %eax, %edi - 0x29, 0xf7, //0x00008c32 subl %esi, %edi - 0x41, 0x0f, 0xb7, 0x34, 0x7b, //0x00008c34 movzwl (%r11,%rdi,2), %esi - 0x66, 0x89, 0x71, 0xff, //0x00008c39 movw %si, $-1(%rcx) - 0x48, 0x83, 0xc1, 0xfe, //0x00008c3d addq $-2, %rcx - 0x3d, 0x0f, 0x27, 0x00, 0x00, //0x00008c41 cmpl $9999, %eax - 0x89, 0xd8, //0x00008c46 movl %ebx, %eax - 0x0f, 0x87, 0xd2, 0xff, 0xff, 0xff, //0x00008c48 ja LBB36_129 - //0x00008c4e LBB36_130 - 0x4d, 0x63, 0xe9, //0x00008c4e movslq %r9d, %r13 - 0x83, 0xfb, 0x0a, //0x00008c51 cmpl $10, %ebx - 0x0f, 0x82, 0x23, 0x00, 0x00, 0x00, //0x00008c54 jb LBB36_132 - 0x89, 0xd8, //0x00008c5a movl %ebx, %eax - 0x48, 0x8d, 0x0d, 0x7d, 0x45, 0x00, 0x00, //0x00008c5c leaq $17789(%rip), %rcx /* _Digits+0(%rip) */ - 0x0f, 0xb7, 0x04, 0x41, //0x00008c63 movzwl (%rcx,%rax,2), %eax - 0x66, 0x41, 0x89, 0x04, 0x24, //0x00008c67 movw %ax, (%r12) - 0x4d, 0x01, 0xec, //0x00008c6c addq %r13, %r12 - 0x4d, 0x39, 0xe8, //0x00008c6f cmpq %r13, %r8 - 0x0f, 0x8c, 0x18, 0x00, 0x00, 0x00, //0x00008c72 jl LBB36_135 - 0xe9, 0xff, 0x03, 0x00, 0x00, //0x00008c78 jmp LBB36_134 - //0x00008c7d LBB36_132 - 0x80, 0xc3, 0x30, //0x00008c7d addb $48, %bl - 0x41, 0x88, 0x1c, 0x24, //0x00008c80 movb %bl, (%r12) - 0x4d, 0x01, 0xec, //0x00008c84 addq %r13, %r12 - 0x4d, 0x39, 0xe8, //0x00008c87 cmpq %r13, %r8 - 0x0f, 0x8d, 0xec, 0x03, 0x00, 0x00, //0x00008c8a jge LBB36_134 - //0x00008c90 LBB36_135 - 0x48, 0x8b, 0x45, 0xd0, //0x00008c90 movq $-48(%rbp), %rax - 0x4c, 0x01, 0xd0, //0x00008c94 addq %r10, %rax - 0x4d, 0x8d, 0x34, 0x00, //0x00008c97 leaq (%r8,%rax), %r14 - 0x49, 0x83, 0xc6, 0x01, //0x00008c9b addq $1, %r14 - 0x49, 0x01, 0xc5, //0x00008c9f addq %rax, %r13 - 0x4d, 0x39, 0xee, //0x00008ca2 cmpq %r13, %r14 - 0x4d, 0x89, 0xef, //0x00008ca5 movq %r13, %r15 - 0x4d, 0x0f, 0x47, 0xfe, //0x00008ca8 cmovaq %r14, %r15 - 0x4e, 0x8d, 0x1c, 0x00, //0x00008cac leaq (%rax,%r8), %r11 - 0x4d, 0x29, 0xdf, //0x00008cb0 subq %r11, %r15 - 0x49, 0x83, 0xff, 0x10, //0x00008cb3 cmpq $16, %r15 - 0x0f, 0x82, 0xf5, 0x03, 0x00, 0x00, //0x00008cb7 jb LBB36_152 - 0x49, 0x81, 0xff, 0x80, 0x00, 0x00, 0x00, //0x00008cbd cmpq $128, %r15 - 0x0f, 0x83, 0xf8, 0x01, 0x00, 0x00, //0x00008cc4 jae LBB36_141 - 0x45, 0x31, 0xc9, //0x00008cca xorl %r9d, %r9d - 0xe9, 0x54, 0x03, 0x00, 0x00, //0x00008ccd jmp LBB36_138 - //0x00008cd2 LBB36_18 - 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00008cd2 movl $1, %eax - 0x41, 0x83, 0xfb, 0x0a, //0x00008cd7 cmpl $10, %r11d - 0x0f, 0x82, 0x21, 0x00, 0x00, 0x00, //0x00008cdb jb LBB36_21 - 0xb8, 0x02, 0x00, 0x00, 0x00, //0x00008ce1 movl $2, %eax - 0x41, 0x83, 0xfb, 0x64, //0x00008ce6 cmpl $100, %r11d - 0x0f, 0x82, 0x12, 0x00, 0x00, 0x00, //0x00008cea jb LBB36_21 - 0xb8, 0x03, 0x00, 0x00, 0x00, //0x00008cf0 movl $3, %eax - 0x41, 0x81, 0xfb, 0xe8, 0x03, 0x00, 0x00, //0x00008cf5 cmpl $1000, %r11d - 0x0f, 0x83, 0x86, 0x03, 0x00, 0x00, //0x00008cfc jae LBB36_23 - //0x00008d02 LBB36_21 - 0x4c, 0x01, 0xc8, //0x00008d02 addq %r9, %rax - 0x48, 0x89, 0xc1, //0x00008d05 movq %rax, %rcx - 0x41, 0x83, 0xfb, 0x64, //0x00008d08 cmpl $100, %r11d - 0x0f, 0x82, 0x40, 0x00, 0x00, 0x00, //0x00008d0c jb LBB36_27 - //0x00008d12 LBB36_25 - 0x48, 0x83, 0xc1, 0xff, //0x00008d12 addq $-1, %rcx - 0x4c, 0x8d, 0x05, 0xc3, 0x44, 0x00, 0x00, //0x00008d16 leaq $17603(%rip), %r8 /* _Digits+0(%rip) */ - 0x90, 0x90, 0x90, //0x00008d1d .p2align 4, 0x90 - //0x00008d20 LBB36_26 - 0x44, 0x89, 0xde, //0x00008d20 movl %r11d, %esi - 0x44, 0x89, 0xdb, //0x00008d23 movl %r11d, %ebx - 0x4c, 0x69, 0xdb, 0x1f, 0x85, 0xeb, 0x51, //0x00008d26 imulq $1374389535, %rbx, %r11 - 0x49, 0xc1, 0xeb, 0x25, //0x00008d2d shrq $37, %r11 - 0x41, 0x6b, 0xdb, 0x64, //0x00008d31 imull $100, %r11d, %ebx - 0x89, 0xf2, //0x00008d35 movl %esi, %edx - 0x29, 0xda, //0x00008d37 subl %ebx, %edx - 0x41, 0x0f, 0xb7, 0x14, 0x50, //0x00008d39 movzwl (%r8,%rdx,2), %edx - 0x66, 0x89, 0x51, 0xff, //0x00008d3e movw %dx, $-1(%rcx) - 0x48, 0x83, 0xc1, 0xfe, //0x00008d42 addq $-2, %rcx - 0x81, 0xfe, 0x0f, 0x27, 0x00, 0x00, //0x00008d46 cmpl $9999, %esi - 0x0f, 0x87, 0xce, 0xff, 0xff, 0xff, //0x00008d4c ja LBB36_26 - //0x00008d52 LBB36_27 - 0x41, 0x83, 0xfb, 0x0a, //0x00008d52 cmpl $10, %r11d - 0x0f, 0x82, 0x19, 0x00, 0x00, 0x00, //0x00008d56 jb LBB36_29 - 0x44, 0x89, 0xd9, //0x00008d5c movl %r11d, %ecx - 0x48, 0x8d, 0x15, 0x7a, 0x44, 0x00, 0x00, //0x00008d5f leaq $17530(%rip), %rdx /* _Digits+0(%rip) */ - 0x0f, 0xb7, 0x0c, 0x4a, //0x00008d66 movzwl (%rdx,%rcx,2), %ecx - 0x66, 0x41, 0x89, 0x09, //0x00008d6a movw %cx, (%r9) - 0x29, 0xf8, //0x00008d6e subl %edi, %eax - 0xe9, 0x71, 0x08, 0x00, 0x00, //0x00008d70 jmp LBB36_156 - //0x00008d75 LBB36_29 - 0x41, 0x80, 0xc3, 0x30, //0x00008d75 addb $48, %r11b - 0x45, 0x88, 0x19, //0x00008d79 movb %r11b, (%r9) - 0x29, 0xf8, //0x00008d7c subl %edi, %eax - 0xe9, 0x63, 0x08, 0x00, 0x00, //0x00008d7e jmp LBB36_156 - //0x00008d83 LBB36_49 - 0x41, 0xb8, 0x04, 0x00, 0x00, 0x00, //0x00008d83 movl $4, %r8d - //0x00008d89 LBB36_51 - 0x48, 0x83, 0xc1, 0xfc, //0x00008d89 addq $-4, %rcx - 0x83, 0xfb, 0x64, //0x00008d8d cmpl $100, %ebx - 0x0f, 0x82, 0x5a, 0xfd, 0xff, 0xff, //0x00008d90 jb LBB36_53 - //0x00008d96 LBB36_54 - 0x48, 0x83, 0xc1, 0xff, //0x00008d96 addq $-1, %rcx - 0x4c, 0x8d, 0x1d, 0x3f, 0x44, 0x00, 0x00, //0x00008d9a leaq $17471(%rip), %r11 /* _Digits+0(%rip) */ - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008da1 .p2align 4, 0x90 - //0x00008db0 LBB36_55 - 0x89, 0xd8, //0x00008db0 movl %ebx, %eax - 0x48, 0x69, 0xc0, 0x1f, 0x85, 0xeb, 0x51, //0x00008db2 imulq $1374389535, %rax, %rax - 0x48, 0xc1, 0xe8, 0x25, //0x00008db9 shrq $37, %rax - 0x6b, 0xf0, 0x64, //0x00008dbd imull $100, %eax, %esi - 0x89, 0xdf, //0x00008dc0 movl %ebx, %edi - 0x29, 0xf7, //0x00008dc2 subl %esi, %edi - 0x41, 0x0f, 0xb7, 0x34, 0x7b, //0x00008dc4 movzwl (%r11,%rdi,2), %esi - 0x66, 0x89, 0x71, 0xff, //0x00008dc9 movw %si, $-1(%rcx) - 0x48, 0x83, 0xc1, 0xfe, //0x00008dcd addq $-2, %rcx - 0x81, 0xfb, 0x0f, 0x27, 0x00, 0x00, //0x00008dd1 cmpl $9999, %ebx - 0x89, 0xc3, //0x00008dd7 movl %eax, %ebx - 0x0f, 0x87, 0xd1, 0xff, 0xff, 0xff, //0x00008dd9 ja LBB36_55 - //0x00008ddf LBB36_56 - 0x49, 0x8d, 0x4c, 0x24, 0x01, //0x00008ddf leaq $1(%r12), %rcx - 0x83, 0xf8, 0x0a, //0x00008de4 cmpl $10, %eax - 0x0f, 0x82, 0x1f, 0x00, 0x00, 0x00, //0x00008de7 jb LBB36_58 - 0x89, 0xc6, //0x00008ded movl %eax, %esi - 0x48, 0x8d, 0x3d, 0xea, 0x43, 0x00, 0x00, //0x00008def leaq $17386(%rip), %rdi /* _Digits+0(%rip) */ - 0x8a, 0x04, 0x77, //0x00008df6 movb (%rdi,%rsi,2), %al - 0x8a, 0x5c, 0x77, 0x01, //0x00008df9 movb $1(%rdi,%rsi,2), %bl - 0x41, 0x88, 0x44, 0x24, 0x01, //0x00008dfd movb %al, $1(%r12) - 0x41, 0x88, 0x5c, 0x24, 0x02, //0x00008e02 movb %bl, $2(%r12) - 0xe9, 0x04, 0x00, 0x00, 0x00, //0x00008e07 jmp LBB36_59 - //0x00008e0c LBB36_58 - 0x04, 0x30, //0x00008e0c addb $48, %al - 0x88, 0x01, //0x00008e0e movb %al, (%rcx) - //0x00008e10 LBB36_59 - 0x4d, 0x29, 0xc2, //0x00008e10 subq %r8, %r10 - 0x4d, 0x01, 0xea, //0x00008e13 addq %r13, %r10 - 0xbb, 0x01, 0x00, 0x00, 0x00, //0x00008e16 movl $1, %ebx - 0x4c, 0x29, 0xc3, //0x00008e1b subq %r8, %rbx - 0x90, 0x90, //0x00008e1e .p2align 4, 0x90 - //0x00008e20 LBB36_60 - 0x48, 0x83, 0xc3, 0xff, //0x00008e20 addq $-1, %rbx - 0x41, 0x80, 0x3c, 0x12, 0x30, //0x00008e24 cmpb $48, (%r10,%rdx) - 0x4d, 0x8d, 0x52, 0xff, //0x00008e29 leaq $-1(%r10), %r10 - 0x0f, 0x84, 0xed, 0xff, 0xff, 0xff, //0x00008e2d je LBB36_60 - 0x41, 0x88, 0x04, 0x24, //0x00008e33 movb %al, (%r12) - 0x48, 0x01, 0xd3, //0x00008e37 addq %rdx, %rbx - 0x48, 0x83, 0xfb, 0x02, //0x00008e3a cmpq $2, %rbx - 0x0f, 0x8c, 0x46, 0x00, 0x00, 0x00, //0x00008e3e jl LBB36_62 - 0x49, 0x8d, 0x04, 0x12, //0x00008e44 leaq (%r10,%rdx), %rax - 0x48, 0x83, 0xc0, 0x02, //0x00008e48 addq $2, %rax - 0xc6, 0x01, 0x2e, //0x00008e4c movb $46, (%rcx) - 0xc6, 0x00, 0x65, //0x00008e4f movb $101, (%rax) - 0x45, 0x85, 0xc9, //0x00008e52 testl %r9d, %r9d - 0x0f, 0x8e, 0x43, 0x00, 0x00, 0x00, //0x00008e55 jle LBB36_65 - //0x00008e5b LBB36_66 - 0x41, 0x83, 0xc1, 0xff, //0x00008e5b addl $-1, %r9d - 0xc6, 0x40, 0x01, 0x2b, //0x00008e5f movb $43, $1(%rax) - 0x44, 0x89, 0xc9, //0x00008e63 movl %r9d, %ecx - 0x83, 0xf9, 0x0a, //0x00008e66 cmpl $10, %ecx - 0x0f, 0x8c, 0x44, 0x00, 0x00, 0x00, //0x00008e69 jl LBB36_69 - //0x00008e6f LBB36_68 - 0x48, 0x63, 0xc9, //0x00008e6f movslq %ecx, %rcx - 0x48, 0x8d, 0x15, 0x67, 0x43, 0x00, 0x00, //0x00008e72 leaq $17255(%rip), %rdx /* _Digits+0(%rip) */ - 0x0f, 0xb7, 0x0c, 0x4a, //0x00008e79 movzwl (%rdx,%rcx,2), %ecx - 0x66, 0x89, 0x48, 0x02, //0x00008e7d movw %cx, $2(%rax) - 0x48, 0x83, 0xc0, 0x04, //0x00008e81 addq $4, %rax - 0xe9, 0x59, 0x07, 0x00, 0x00, //0x00008e85 jmp LBB36_155 - //0x00008e8a LBB36_62 - 0x49, 0x8d, 0x04, 0x12, //0x00008e8a leaq (%r10,%rdx), %rax - 0x48, 0x83, 0xc0, 0x01, //0x00008e8e addq $1, %rax - 0xc6, 0x00, 0x65, //0x00008e92 movb $101, (%rax) - 0x45, 0x85, 0xc9, //0x00008e95 testl %r9d, %r9d - 0x0f, 0x8f, 0xbd, 0xff, 0xff, 0xff, //0x00008e98 jg LBB36_66 - //0x00008e9e LBB36_65 - 0xc6, 0x40, 0x01, 0x2d, //0x00008e9e movb $45, $1(%rax) - 0xb9, 0x01, 0x00, 0x00, 0x00, //0x00008ea2 movl $1, %ecx - 0x44, 0x29, 0xc9, //0x00008ea7 subl %r9d, %ecx - 0x83, 0xf9, 0x0a, //0x00008eaa cmpl $10, %ecx - 0x0f, 0x8d, 0xbc, 0xff, 0xff, 0xff, //0x00008ead jge LBB36_68 - //0x00008eb3 LBB36_69 - 0x80, 0xc1, 0x30, //0x00008eb3 addb $48, %cl - 0x88, 0x48, 0x02, //0x00008eb6 movb %cl, $2(%rax) - 0x48, 0x83, 0xc0, 0x03, //0x00008eb9 addq $3, %rax - 0xe9, 0x21, 0x07, 0x00, 0x00, //0x00008ebd jmp LBB36_155 - //0x00008ec2 LBB36_141 - 0x4c, 0x89, 0xe6, //0x00008ec2 movq %r12, %rsi - 0x4d, 0x89, 0xf9, //0x00008ec5 movq %r15, %r9 - 0x49, 0x83, 0xe1, 0x80, //0x00008ec8 andq $-128, %r9 - 0x49, 0x8d, 0x41, 0x80, //0x00008ecc leaq $-128(%r9), %rax - 0x48, 0x89, 0xc3, //0x00008ed0 movq %rax, %rbx - 0x48, 0xc1, 0xeb, 0x07, //0x00008ed3 shrq $7, %rbx - 0x48, 0x83, 0xc3, 0x01, //0x00008ed7 addq $1, %rbx - 0x41, 0x89, 0xdc, //0x00008edb movl %ebx, %r12d - 0x41, 0x83, 0xe4, 0x03, //0x00008ede andl $3, %r12d - 0x48, 0x3d, 0x80, 0x01, 0x00, 0x00, //0x00008ee2 cmpq $384, %rax - 0x0f, 0x83, 0x07, 0x00, 0x00, 0x00, //0x00008ee8 jae LBB36_143 - 0x31, 0xc9, //0x00008eee xorl %ecx, %ecx - 0xe9, 0xbc, 0x00, 0x00, 0x00, //0x00008ef0 jmp LBB36_145 - //0x00008ef5 LBB36_143 - 0x4b, 0x8d, 0x04, 0x02, //0x00008ef5 leaq (%r10,%r8), %rax - 0x48, 0x8b, 0x4d, 0xd0, //0x00008ef9 movq $-48(%rbp), %rcx - 0x48, 0x01, 0xc8, //0x00008efd addq %rcx, %rax - 0x48, 0x05, 0xe0, 0x01, 0x00, 0x00, //0x00008f00 addq $480, %rax - 0x48, 0x83, 0xe3, 0xfc, //0x00008f06 andq $-4, %rbx - 0x48, 0xf7, 0xdb, //0x00008f0a negq %rbx - 0x31, 0xc9, //0x00008f0d xorl %ecx, %ecx - 0xc5, 0xfd, 0x6f, 0x05, 0x09, 0xf8, 0xff, 0xff, //0x00008f0f vmovdqa $-2039(%rip), %ymm0 /* LCPI36_0+0(%rip) */ - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008f17 .p2align 4, 0x90 - //0x00008f20 LBB36_144 - 0xc5, 0xfe, 0x7f, 0x84, 0x08, 0x20, 0xfe, 0xff, 0xff, //0x00008f20 vmovdqu %ymm0, $-480(%rax,%rcx) - 0xc5, 0xfe, 0x7f, 0x84, 0x08, 0x40, 0xfe, 0xff, 0xff, //0x00008f29 vmovdqu %ymm0, $-448(%rax,%rcx) - 0xc5, 0xfe, 0x7f, 0x84, 0x08, 0x60, 0xfe, 0xff, 0xff, //0x00008f32 vmovdqu %ymm0, $-416(%rax,%rcx) - 0xc5, 0xfe, 0x7f, 0x84, 0x08, 0x80, 0xfe, 0xff, 0xff, //0x00008f3b vmovdqu %ymm0, $-384(%rax,%rcx) - 0xc5, 0xfe, 0x7f, 0x84, 0x08, 0xa0, 0xfe, 0xff, 0xff, //0x00008f44 vmovdqu %ymm0, $-352(%rax,%rcx) - 0xc5, 0xfe, 0x7f, 0x84, 0x08, 0xc0, 0xfe, 0xff, 0xff, //0x00008f4d vmovdqu %ymm0, $-320(%rax,%rcx) - 0xc5, 0xfe, 0x7f, 0x84, 0x08, 0xe0, 0xfe, 0xff, 0xff, //0x00008f56 vmovdqu %ymm0, $-288(%rax,%rcx) - 0xc5, 0xfe, 0x7f, 0x84, 0x08, 0x00, 0xff, 0xff, 0xff, //0x00008f5f vmovdqu %ymm0, $-256(%rax,%rcx) - 0xc5, 0xfe, 0x7f, 0x84, 0x08, 0x20, 0xff, 0xff, 0xff, //0x00008f68 vmovdqu %ymm0, $-224(%rax,%rcx) - 0xc5, 0xfe, 0x7f, 0x84, 0x08, 0x40, 0xff, 0xff, 0xff, //0x00008f71 vmovdqu %ymm0, $-192(%rax,%rcx) - 0xc5, 0xfe, 0x7f, 0x84, 0x08, 0x60, 0xff, 0xff, 0xff, //0x00008f7a vmovdqu %ymm0, $-160(%rax,%rcx) - 0xc5, 0xfe, 0x7f, 0x44, 0x08, 0x80, //0x00008f83 vmovdqu %ymm0, $-128(%rax,%rcx) - 0xc5, 0xfe, 0x7f, 0x44, 0x08, 0xa0, //0x00008f89 vmovdqu %ymm0, $-96(%rax,%rcx) - 0xc5, 0xfe, 0x7f, 0x44, 0x08, 0xc0, //0x00008f8f vmovdqu %ymm0, $-64(%rax,%rcx) - 0xc5, 0xfe, 0x7f, 0x44, 0x08, 0xe0, //0x00008f95 vmovdqu %ymm0, $-32(%rax,%rcx) - 0xc5, 0xfe, 0x7f, 0x04, 0x08, //0x00008f9b vmovdqu %ymm0, (%rax,%rcx) - 0x48, 0x81, 0xc1, 0x00, 0x02, 0x00, 0x00, //0x00008fa0 addq $512, %rcx - 0x48, 0x83, 0xc3, 0x04, //0x00008fa7 addq $4, %rbx - 0x0f, 0x85, 0x6f, 0xff, 0xff, 0xff, //0x00008fab jne LBB36_144 - //0x00008fb1 LBB36_145 - 0x4d, 0x85, 0xe4, //0x00008fb1 testq %r12, %r12 - 0x0f, 0x84, 0x4a, 0x00, 0x00, 0x00, //0x00008fb4 je LBB36_148 - 0x4c, 0x01, 0xd1, //0x00008fba addq %r10, %rcx - 0x4c, 0x01, 0xc1, //0x00008fbd addq %r8, %rcx - 0x48, 0x8b, 0x45, 0xd0, //0x00008fc0 movq $-48(%rbp), %rax - 0x48, 0x01, 0xc8, //0x00008fc4 addq %rcx, %rax - 0x48, 0x83, 0xc0, 0x60, //0x00008fc7 addq $96, %rax - 0x49, 0xc1, 0xe4, 0x07, //0x00008fcb shlq $7, %r12 - 0x31, 0xc9, //0x00008fcf xorl %ecx, %ecx - 0xc5, 0xfd, 0x6f, 0x05, 0x47, 0xf7, 0xff, 0xff, //0x00008fd1 vmovdqa $-2233(%rip), %ymm0 /* LCPI36_0+0(%rip) */ - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008fd9 .p2align 4, 0x90 - //0x00008fe0 LBB36_147 - 0xc5, 0xfe, 0x7f, 0x44, 0x08, 0xa0, //0x00008fe0 vmovdqu %ymm0, $-96(%rax,%rcx) - 0xc5, 0xfe, 0x7f, 0x44, 0x08, 0xc0, //0x00008fe6 vmovdqu %ymm0, $-64(%rax,%rcx) - 0xc5, 0xfe, 0x7f, 0x44, 0x08, 0xe0, //0x00008fec vmovdqu %ymm0, $-32(%rax,%rcx) - 0xc5, 0xfe, 0x7f, 0x04, 0x08, //0x00008ff2 vmovdqu %ymm0, (%rax,%rcx) - 0x48, 0x83, 0xe9, 0x80, //0x00008ff7 subq $-128, %rcx - 0x49, 0x39, 0xcc, //0x00008ffb cmpq %rcx, %r12 - 0x0f, 0x85, 0xdc, 0xff, 0xff, 0xff, //0x00008ffe jne LBB36_147 - //0x00009004 LBB36_148 - 0x4d, 0x39, 0xcf, //0x00009004 cmpq %r9, %r15 - 0x0f, 0x85, 0x0c, 0x00, 0x00, 0x00, //0x00009007 jne LBB36_150 - 0x48, 0x89, 0xf0, //0x0000900d movq %rsi, %rax - 0x4c, 0x8b, 0x6d, 0xd0, //0x00009010 movq $-48(%rbp), %r13 - 0xe9, 0xca, 0x05, 0x00, 0x00, //0x00009014 jmp LBB36_155 - //0x00009019 LBB36_150 - 0x41, 0xf6, 0xc7, 0x70, //0x00009019 testb $112, %r15b - 0x49, 0x89, 0xf4, //0x0000901d movq %rsi, %r12 - 0x0f, 0x84, 0x89, 0x00, 0x00, 0x00, //0x00009020 je LBB36_151 - //0x00009026 LBB36_138 - 0x4d, 0x39, 0xee, //0x00009026 cmpq %r13, %r14 - 0x4d, 0x0f, 0x47, 0xee, //0x00009029 cmovaq %r14, %r13 - 0x4d, 0x29, 0xdd, //0x0000902d subq %r11, %r13 - 0x4c, 0x89, 0xe8, //0x00009030 movq %r13, %rax - 0x48, 0x83, 0xe0, 0xf0, //0x00009033 andq $-16, %rax - 0x48, 0x01, 0xc2, //0x00009037 addq %rax, %rdx - 0x4d, 0x01, 0xca, //0x0000903a addq %r9, %r10 - 0x4d, 0x01, 0xc2, //0x0000903d addq %r8, %r10 - 0x4c, 0x03, 0x55, 0xd0, //0x00009040 addq $-48(%rbp), %r10 - 0x48, 0x89, 0xc1, //0x00009044 movq %rax, %rcx - 0x4c, 0x29, 0xc9, //0x00009047 subq %r9, %rcx - 0x31, 0xdb, //0x0000904a xorl %ebx, %ebx - 0xc5, 0xf9, 0x6f, 0x05, 0xec, 0xf6, 0xff, 0xff, //0x0000904c vmovdqa $-2324(%rip), %xmm0 /* LCPI36_1+0(%rip) */ - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00009054 .p2align 4, 0x90 - //0x00009060 LBB36_139 - 0xc4, 0xc1, 0x7a, 0x7f, 0x04, 0x1a, //0x00009060 vmovdqu %xmm0, (%r10,%rbx) - 0x48, 0x83, 0xc3, 0x10, //0x00009066 addq $16, %rbx - 0x48, 0x39, 0xd9, //0x0000906a cmpq %rbx, %rcx - 0x0f, 0x85, 0xed, 0xff, 0xff, 0xff, //0x0000906d jne LBB36_139 - 0x49, 0x39, 0xc5, //0x00009073 cmpq %rax, %r13 - 0x0f, 0x85, 0x36, 0x00, 0x00, 0x00, //0x00009076 jne LBB36_152 - //0x0000907c LBB36_134 - 0x4c, 0x89, 0xe0, //0x0000907c movq %r12, %rax - 0x4c, 0x8b, 0x6d, 0xd0, //0x0000907f movq $-48(%rbp), %r13 - 0xe9, 0x5b, 0x05, 0x00, 0x00, //0x00009083 jmp LBB36_155 - //0x00009088 LBB36_23 - 0x41, 0x81, 0xfb, 0x10, 0x27, 0x00, 0x00, //0x00009088 cmpl $10000, %r11d - 0x4c, 0x89, 0xc9, //0x0000908f movq %r9, %rcx - 0x48, 0x83, 0xd9, 0x00, //0x00009092 sbbq $0, %rcx - 0x48, 0x83, 0xc1, 0x05, //0x00009096 addq $5, %rcx - 0x41, 0x81, 0xfb, 0x10, 0x27, 0x00, 0x00, //0x0000909a cmpl $10000, %r11d - 0x0f, 0x83, 0x97, 0xfa, 0xff, 0xff, //0x000090a1 jae LBB36_17 - 0x48, 0x89, 0xc8, //0x000090a7 movq %rcx, %rax - 0xe9, 0x63, 0xfc, 0xff, 0xff, //0x000090aa jmp LBB36_25 - //0x000090af LBB36_151 - 0x4c, 0x01, 0xca, //0x000090af addq %r9, %rdx - //0x000090b2 LBB36_152 - 0x4c, 0x8b, 0x6d, 0xd0, //0x000090b2 movq $-48(%rbp), %r13 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000090b6 .p2align 4, 0x90 - //0x000090c0 LBB36_153 - 0xc6, 0x02, 0x30, //0x000090c0 movb $48, (%rdx) - 0x48, 0x83, 0xc2, 0x01, //0x000090c3 addq $1, %rdx - 0x4c, 0x39, 0xe2, //0x000090c7 cmpq %r12, %rdx - 0x0f, 0x82, 0xf0, 0xff, 0xff, 0xff, //0x000090ca jb LBB36_153 - 0x4c, 0x89, 0xe0, //0x000090d0 movq %r12, %rax - 0xe9, 0x0b, 0x05, 0x00, 0x00, //0x000090d3 jmp LBB36_155 - //0x000090d8 LBB36_76 - 0x48, 0x8b, 0x55, 0xd0, //0x000090d8 movq $-48(%rbp), %rdx - 0x49, 0x8d, 0x1c, 0x12, //0x000090dc leaq (%r10,%rdx), %rbx - 0x48, 0x81, 0xc3, 0xe2, 0x01, 0x00, 0x00, //0x000090e0 addq $482, %rbx - 0x49, 0x83, 0xe4, 0xfc, //0x000090e7 andq $-4, %r12 - 0x49, 0xf7, 0xdc, //0x000090eb negq %r12 - 0x31, 0xd2, //0x000090ee xorl %edx, %edx - 0xc5, 0xfd, 0x6f, 0x05, 0x28, 0xf6, 0xff, 0xff, //0x000090f0 vmovdqa $-2520(%rip), %ymm0 /* LCPI36_0+0(%rip) */ - //0x000090f8 LBB36_77 - 0xc5, 0xfe, 0x7f, 0x84, 0x13, 0x20, 0xfe, 0xff, 0xff, //0x000090f8 vmovdqu %ymm0, $-480(%rbx,%rdx) - 0xc5, 0xfe, 0x7f, 0x84, 0x13, 0x40, 0xfe, 0xff, 0xff, //0x00009101 vmovdqu %ymm0, $-448(%rbx,%rdx) - 0xc5, 0xfe, 0x7f, 0x84, 0x13, 0x60, 0xfe, 0xff, 0xff, //0x0000910a vmovdqu %ymm0, $-416(%rbx,%rdx) - 0xc5, 0xfe, 0x7f, 0x84, 0x13, 0x80, 0xfe, 0xff, 0xff, //0x00009113 vmovdqu %ymm0, $-384(%rbx,%rdx) - 0xc5, 0xfe, 0x7f, 0x84, 0x13, 0xa0, 0xfe, 0xff, 0xff, //0x0000911c vmovdqu %ymm0, $-352(%rbx,%rdx) - 0xc5, 0xfe, 0x7f, 0x84, 0x13, 0xc0, 0xfe, 0xff, 0xff, //0x00009125 vmovdqu %ymm0, $-320(%rbx,%rdx) - 0xc5, 0xfe, 0x7f, 0x84, 0x13, 0xe0, 0xfe, 0xff, 0xff, //0x0000912e vmovdqu %ymm0, $-288(%rbx,%rdx) - 0xc5, 0xfe, 0x7f, 0x84, 0x13, 0x00, 0xff, 0xff, 0xff, //0x00009137 vmovdqu %ymm0, $-256(%rbx,%rdx) - 0xc5, 0xfe, 0x7f, 0x84, 0x13, 0x20, 0xff, 0xff, 0xff, //0x00009140 vmovdqu %ymm0, $-224(%rbx,%rdx) - 0xc5, 0xfe, 0x7f, 0x84, 0x13, 0x40, 0xff, 0xff, 0xff, //0x00009149 vmovdqu %ymm0, $-192(%rbx,%rdx) - 0xc5, 0xfe, 0x7f, 0x84, 0x13, 0x60, 0xff, 0xff, 0xff, //0x00009152 vmovdqu %ymm0, $-160(%rbx,%rdx) - 0xc5, 0xfe, 0x7f, 0x44, 0x13, 0x80, //0x0000915b vmovdqu %ymm0, $-128(%rbx,%rdx) - 0xc5, 0xfe, 0x7f, 0x44, 0x13, 0xa0, //0x00009161 vmovdqu %ymm0, $-96(%rbx,%rdx) - 0xc5, 0xfe, 0x7f, 0x44, 0x13, 0xc0, //0x00009167 vmovdqu %ymm0, $-64(%rbx,%rdx) - 0xc5, 0xfe, 0x7f, 0x44, 0x13, 0xe0, //0x0000916d vmovdqu %ymm0, $-32(%rbx,%rdx) - 0xc5, 0xfe, 0x7f, 0x04, 0x13, //0x00009173 vmovdqu %ymm0, (%rbx,%rdx) - 0x48, 0x81, 0xc2, 0x00, 0x02, 0x00, 0x00, //0x00009178 addq $512, %rdx - 0x49, 0x83, 0xc4, 0x04, //0x0000917f addq $4, %r12 - 0x0f, 0x85, 0x6f, 0xff, 0xff, 0xff, //0x00009183 jne LBB36_77 - //0x00009189 LBB36_78 - 0x4d, 0x85, 0xff, //0x00009189 testq %r15, %r15 - 0x0f, 0x84, 0x40, 0x00, 0x00, 0x00, //0x0000918c je LBB36_81 - 0x4c, 0x01, 0xd2, //0x00009192 addq %r10, %rdx - 0x48, 0x8b, 0x75, 0xd0, //0x00009195 movq $-48(%rbp), %rsi - 0x48, 0x01, 0xf2, //0x00009199 addq %rsi, %rdx - 0x48, 0x83, 0xc2, 0x62, //0x0000919c addq $98, %rdx - 0x49, 0xc1, 0xe7, 0x07, //0x000091a0 shlq $7, %r15 - 0x31, 0xf6, //0x000091a4 xorl %esi, %esi - 0xc5, 0xfd, 0x6f, 0x05, 0x72, 0xf5, 0xff, 0xff, //0x000091a6 vmovdqa $-2702(%rip), %ymm0 /* LCPI36_0+0(%rip) */ - //0x000091ae LBB36_80 - 0xc5, 0xfe, 0x7f, 0x44, 0x32, 0xa0, //0x000091ae vmovdqu %ymm0, $-96(%rdx,%rsi) - 0xc5, 0xfe, 0x7f, 0x44, 0x32, 0xc0, //0x000091b4 vmovdqu %ymm0, $-64(%rdx,%rsi) - 0xc5, 0xfe, 0x7f, 0x44, 0x32, 0xe0, //0x000091ba vmovdqu %ymm0, $-32(%rdx,%rsi) - 0xc5, 0xfe, 0x7f, 0x04, 0x32, //0x000091c0 vmovdqu %ymm0, (%rdx,%rsi) - 0x48, 0x83, 0xee, 0x80, //0x000091c5 subq $-128, %rsi - 0x49, 0x39, 0xf7, //0x000091c9 cmpq %rsi, %r15 - 0x0f, 0x85, 0xdc, 0xff, 0xff, 0xff, //0x000091cc jne LBB36_80 - //0x000091d2 LBB36_81 - 0x49, 0x89, 0xfc, //0x000091d2 movq %rdi, %r12 - 0x49, 0x01, 0xcc, //0x000091d5 addq %rcx, %r12 - 0x49, 0x39, 0xcb, //0x000091d8 cmpq %rcx, %r11 - 0x0f, 0x84, 0x21, 0x00, 0x00, 0x00, //0x000091db je LBB36_84 - //0x000091e1 LBB36_82 - 0x44, 0x01, 0xc9, //0x000091e1 addl %r9d, %ecx - 0xf7, 0xd9, //0x000091e4 negl %ecx - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000091e6 .p2align 4, 0x90 - //0x000091f0 LBB36_83 - 0x41, 0xc6, 0x04, 0x24, 0x30, //0x000091f0 movb $48, (%r12) - 0x49, 0x83, 0xc4, 0x01, //0x000091f5 addq $1, %r12 - 0x83, 0xc1, 0xff, //0x000091f9 addl $-1, %ecx - 0x0f, 0x85, 0xee, 0xff, 0xff, 0xff, //0x000091fc jne LBB36_83 - //0x00009202 LBB36_84 - 0x4f, 0x8d, 0x3c, 0x04, //0x00009202 leaq (%r12,%r8), %r15 - 0x3d, 0x10, 0x27, 0x00, 0x00, //0x00009206 cmpl $10000, %eax - 0x0f, 0x82, 0x50, 0x00, 0x00, 0x00, //0x0000920b jb LBB36_85 - 0x89, 0xc2, //0x00009211 movl %eax, %edx - 0xbb, 0x59, 0x17, 0xb7, 0xd1, //0x00009213 movl $3518437209, %ebx - 0x48, 0x0f, 0xaf, 0xda, //0x00009218 imulq %rdx, %rbx - 0x48, 0xc1, 0xeb, 0x2d, //0x0000921c shrq $45, %rbx - 0x69, 0xd3, 0xf0, 0xd8, 0xff, 0xff, //0x00009220 imull $-10000, %ebx, %edx - 0x01, 0xc2, //0x00009226 addl %eax, %edx - 0x0f, 0x84, 0x4b, 0x00, 0x00, 0x00, //0x00009228 je LBB36_87 - 0x89, 0xd0, //0x0000922e movl %edx, %eax - 0x48, 0x69, 0xc0, 0x1f, 0x85, 0xeb, 0x51, //0x00009230 imulq $1374389535, %rax, %rax - 0x48, 0xc1, 0xe8, 0x25, //0x00009237 shrq $37, %rax - 0x6b, 0xf0, 0x64, //0x0000923b imull $100, %eax, %esi - 0x29, 0xf2, //0x0000923e subl %esi, %edx - 0x48, 0x8d, 0x35, 0x99, 0x3f, 0x00, 0x00, //0x00009240 leaq $16281(%rip), %rsi /* _Digits+0(%rip) */ - 0x0f, 0xb7, 0x14, 0x56, //0x00009247 movzwl (%rsi,%rdx,2), %edx - 0x66, 0x41, 0x89, 0x57, 0xfe, //0x0000924b movw %dx, $-2(%r15) - 0x0f, 0xb7, 0x04, 0x46, //0x00009250 movzwl (%rsi,%rax,2), %eax - 0x66, 0x41, 0x89, 0x47, 0xfc, //0x00009254 movw %ax, $-4(%r15) - 0x45, 0x31, 0xdb, //0x00009259 xorl %r11d, %r11d - 0xe9, 0x1e, 0x00, 0x00, 0x00, //0x0000925c jmp LBB36_89 - //0x00009261 LBB36_85 - 0x45, 0x31, 0xdb, //0x00009261 xorl %r11d, %r11d - 0x4c, 0x89, 0xfa, //0x00009264 movq %r15, %rdx - 0x89, 0xc3, //0x00009267 movl %eax, %ebx - 0x83, 0xfb, 0x64, //0x00009269 cmpl $100, %ebx - 0x0f, 0x83, 0x1a, 0x00, 0x00, 0x00, //0x0000926c jae LBB36_92 - //0x00009272 LBB36_91 - 0x89, 0xd8, //0x00009272 movl %ebx, %eax - 0xe9, 0x55, 0x00, 0x00, 0x00, //0x00009274 jmp LBB36_94 - //0x00009279 LBB36_87 - 0x41, 0xbb, 0x04, 0x00, 0x00, 0x00, //0x00009279 movl $4, %r11d - //0x0000927f LBB36_89 - 0x49, 0x8d, 0x57, 0xfc, //0x0000927f leaq $-4(%r15), %rdx - 0x83, 0xfb, 0x64, //0x00009283 cmpl $100, %ebx - 0x0f, 0x82, 0xe6, 0xff, 0xff, 0xff, //0x00009286 jb LBB36_91 - //0x0000928c LBB36_92 - 0x48, 0x83, 0xc2, 0xff, //0x0000928c addq $-1, %rdx - 0x48, 0x8d, 0x35, 0x49, 0x3f, 0x00, 0x00, //0x00009290 leaq $16201(%rip), %rsi /* _Digits+0(%rip) */ - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00009297 .p2align 4, 0x90 - //0x000092a0 LBB36_93 - 0x89, 0xd8, //0x000092a0 movl %ebx, %eax - 0x48, 0x69, 0xc0, 0x1f, 0x85, 0xeb, 0x51, //0x000092a2 imulq $1374389535, %rax, %rax - 0x48, 0xc1, 0xe8, 0x25, //0x000092a9 shrq $37, %rax - 0x6b, 0xf8, 0x64, //0x000092ad imull $100, %eax, %edi - 0x89, 0xd9, //0x000092b0 movl %ebx, %ecx - 0x29, 0xf9, //0x000092b2 subl %edi, %ecx - 0x0f, 0xb7, 0x0c, 0x4e, //0x000092b4 movzwl (%rsi,%rcx,2), %ecx - 0x66, 0x89, 0x4a, 0xff, //0x000092b8 movw %cx, $-1(%rdx) - 0x48, 0x83, 0xc2, 0xfe, //0x000092bc addq $-2, %rdx - 0x81, 0xfb, 0x0f, 0x27, 0x00, 0x00, //0x000092c0 cmpl $9999, %ebx - 0x89, 0xc3, //0x000092c6 movl %eax, %ebx - 0x0f, 0x87, 0xd2, 0xff, 0xff, 0xff, //0x000092c8 ja LBB36_93 - //0x000092ce LBB36_94 - 0x83, 0xf8, 0x0a, //0x000092ce cmpl $10, %eax - 0x0f, 0x82, 0x1a, 0x00, 0x00, 0x00, //0x000092d1 jb LBB36_96 - 0x89, 0xc0, //0x000092d7 movl %eax, %eax - 0x48, 0x8d, 0x0d, 0x00, 0x3f, 0x00, 0x00, //0x000092d9 leaq $16128(%rip), %rcx /* _Digits+0(%rip) */ - 0x0f, 0xb7, 0x04, 0x41, //0x000092e0 movzwl (%rcx,%rax,2), %eax - 0x4d, 0x89, 0xe2, //0x000092e4 movq %r12, %r10 - 0x66, 0x41, 0x89, 0x04, 0x24, //0x000092e7 movw %ax, (%r12) - 0xe9, 0x09, 0x00, 0x00, 0x00, //0x000092ec jmp LBB36_97 - //0x000092f1 LBB36_96 - 0x04, 0x30, //0x000092f1 addb $48, %al - 0x4d, 0x89, 0xe2, //0x000092f3 movq %r12, %r10 - 0x41, 0x88, 0x04, 0x24, //0x000092f6 movb %al, (%r12) - //0x000092fa LBB36_97 - 0x4d, 0x29, 0xdf, //0x000092fa subq %r11, %r15 - 0x4d, 0x29, 0xd8, //0x000092fd subq %r11, %r8 - 0x49, 0x83, 0xc0, 0x01, //0x00009300 addq $1, %r8 - 0x43, 0x8d, 0x04, 0x33, //0x00009304 leal (%r11,%r14), %eax - 0xb1, 0x01, //0x00009308 movb $1, %cl - 0x28, 0xc1, //0x0000930a subb %al, %cl - 0xba, 0x01, 0x00, 0x00, 0x00, //0x0000930c movl $1, %edx - 0x44, 0x29, 0xf2, //0x00009311 subl %r14d, %edx - 0x44, 0x29, 0xda, //0x00009314 subl %r11d, %edx - 0x47, 0x8d, 0x24, 0x1e, //0x00009317 leal (%r14,%r11), %r12d - 0x41, 0x83, 0xc4, 0xfe, //0x0000931b addl $-2, %r12d - 0x45, 0x01, 0xde, //0x0000931f addl %r11d, %r14d - 0x41, 0x83, 0xc6, 0xff, //0x00009322 addl $-1, %r14d - 0x31, 0xdb, //0x00009326 xorl %ebx, %ebx - 0x44, 0x89, 0xe6, //0x00009328 movl %r12d, %esi - 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000932b .p2align 4, 0x90 - //0x00009330 LBB36_98 - 0x80, 0xc1, 0x03, //0x00009330 addb $3, %cl - 0x83, 0xc6, 0x01, //0x00009333 addl $1, %esi - 0x41, 0x80, 0x7c, 0x1f, 0xff, 0x30, //0x00009336 cmpb $48, $-1(%r15,%rbx) - 0x48, 0x8d, 0x5b, 0xff, //0x0000933c leaq $-1(%rbx), %rbx - 0x0f, 0x84, 0xea, 0xff, 0xff, 0xff, //0x00009340 je LBB36_98 - 0x49, 0x8d, 0x04, 0x1f, //0x00009346 leaq (%r15,%rbx), %rax - 0x48, 0x83, 0xc0, 0x01, //0x0000934a addq $1, %rax - 0x45, 0x85, 0xc9, //0x0000934e testl %r9d, %r9d - 0x0f, 0x8e, 0x45, 0x00, 0x00, 0x00, //0x00009351 jle LBB36_100 - 0x45, 0x29, 0xdd, //0x00009357 subl %r11d, %r13d - 0x42, 0x8d, 0x3c, 0x2b, //0x0000935a leal (%rbx,%r13), %edi - 0x83, 0xc7, 0x01, //0x0000935e addl $1, %edi - 0x41, 0x39, 0xf9, //0x00009361 cmpl %edi, %r9d - 0x0f, 0x8d, 0x3b, 0x00, 0x00, 0x00, //0x00009364 jge LBB36_102 - 0x83, 0xc2, 0xff, //0x0000936a addl $-1, %edx - 0x48, 0x63, 0xc2, //0x0000936d movslq %edx, %rax - 0x48, 0x8d, 0x34, 0x18, //0x00009370 leaq (%rax,%rbx), %rsi - 0x48, 0x83, 0xc6, 0x01, //0x00009374 addq $1, %rsi - 0x85, 0xf6, //0x00009378 testl %esi, %esi - 0x4c, 0x8b, 0x6d, 0xd0, //0x0000937a movq $-48(%rbp), %r13 - 0x0f, 0x8e, 0xf5, 0x00, 0x00, 0x00, //0x0000937e jle LBB36_120 - 0x41, 0x89, 0xf0, //0x00009384 movl %esi, %r8d - 0x49, 0x8d, 0x50, 0xff, //0x00009387 leaq $-1(%r8), %rdx - 0x48, 0x83, 0xfa, 0x03, //0x0000938b cmpq $3, %rdx - 0x0f, 0x83, 0x7b, 0x00, 0x00, 0x00, //0x0000938f jae LBB36_121 - 0x31, 0xd2, //0x00009395 xorl %edx, %edx - 0xe9, 0xa0, 0x00, 0x00, 0x00, //0x00009397 jmp LBB36_117 - //0x0000939c LBB36_100 - 0x4c, 0x8b, 0x6d, 0xd0, //0x0000939c movq $-48(%rbp), %r13 - 0xe9, 0x3e, 0x02, 0x00, 0x00, //0x000093a0 jmp LBB36_155 - //0x000093a5 LBB36_102 - 0x45, 0x89, 0xf6, //0x000093a5 movl %r14d, %r14d - 0x49, 0x29, 0xde, //0x000093a8 subq %rbx, %r14 - 0x45, 0x85, 0xf6, //0x000093ab testl %r14d, %r14d - 0x4c, 0x8b, 0x6d, 0xd0, //0x000093ae movq $-48(%rbp), %r13 - 0x0f, 0x8e, 0x2b, 0x02, 0x00, 0x00, //0x000093b2 jle LBB36_155 - 0x45, 0x89, 0xe3, //0x000093b8 movl %r12d, %r11d - 0x4c, 0x89, 0xd9, //0x000093bb movq %r11, %rcx - 0x48, 0x29, 0xd9, //0x000093be subq %rbx, %rcx - 0x31, 0xd2, //0x000093c1 xorl %edx, %edx - 0x83, 0xf9, 0x7f, //0x000093c3 cmpl $127, %ecx - 0x0f, 0x82, 0x04, 0x02, 0x00, 0x00, //0x000093c6 jb LBB36_112 - 0x49, 0x29, 0xdb, //0x000093cc subq %rbx, %r11 - 0x41, 0x89, 0xc9, //0x000093cf movl %ecx, %r9d - 0x49, 0x83, 0xc1, 0x01, //0x000093d2 addq $1, %r9 - 0x4c, 0x89, 0xca, //0x000093d6 movq %r9, %rdx - 0x48, 0x83, 0xe2, 0x80, //0x000093d9 andq $-128, %rdx - 0x4d, 0x01, 0xc2, //0x000093dd addq %r8, %r10 - 0x89, 0xf0, //0x000093e0 movl %esi, %eax - 0x48, 0x83, 0xc0, 0x01, //0x000093e2 addq $1, %rax - 0x48, 0x83, 0xe0, 0x80, //0x000093e6 andq $-128, %rax - 0x4c, 0x01, 0xd0, //0x000093ea addq %r10, %rax - 0x48, 0x8d, 0x4a, 0x80, //0x000093ed leaq $-128(%rdx), %rcx - 0x49, 0x89, 0xc8, //0x000093f1 movq %rcx, %r8 - 0x49, 0xc1, 0xe8, 0x07, //0x000093f4 shrq $7, %r8 - 0x49, 0x83, 0xc0, 0x01, //0x000093f8 addq $1, %r8 - 0x48, 0x81, 0xf9, 0x80, 0x01, 0x00, 0x00, //0x000093fc cmpq $384, %rcx - 0x0f, 0x83, 0x85, 0x00, 0x00, 0x00, //0x00009403 jae LBB36_106 - 0x31, 0xc9, //0x00009409 xorl %ecx, %ecx - 0xe9, 0x3f, 0x01, 0x00, 0x00, //0x0000940b jmp LBB36_108 - //0x00009410 LBB36_121 - 0x83, 0xe6, 0xfc, //0x00009410 andl $-4, %esi - 0x48, 0xf7, 0xde, //0x00009413 negq %rsi - 0x31, 0xd2, //0x00009416 xorl %edx, %edx - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00009418 .p2align 4, 0x90 - //0x00009420 LBB36_122 - 0x49, 0x8d, 0x3c, 0x17, //0x00009420 leaq (%r15,%rdx), %rdi - 0x8b, 0x44, 0x3b, 0xfd, //0x00009424 movl $-3(%rbx,%rdi), %eax - 0x89, 0x44, 0x3b, 0xfe, //0x00009428 movl %eax, $-2(%rbx,%rdi) - 0x48, 0x83, 0xc2, 0xfc, //0x0000942c addq $-4, %rdx - 0x48, 0x39, 0xd6, //0x00009430 cmpq %rdx, %rsi - 0x0f, 0x85, 0xe7, 0xff, 0xff, 0xff, //0x00009433 jne LBB36_122 - 0x48, 0xf7, 0xda, //0x00009439 negq %rdx - //0x0000943c LBB36_117 - 0x41, 0xf6, 0xc0, 0x03, //0x0000943c testb $3, %r8b - 0x0f, 0x84, 0x33, 0x00, 0x00, 0x00, //0x00009440 je LBB36_120 - 0x0f, 0xb6, 0xf9, //0x00009446 movzbl %cl, %edi - 0x83, 0xe7, 0x03, //0x00009449 andl $3, %edi - 0x48, 0xf7, 0xdf, //0x0000944c negq %rdi - 0x4c, 0x89, 0xf9, //0x0000944f movq %r15, %rcx - 0x48, 0x29, 0xd1, //0x00009452 subq %rdx, %rcx - 0x31, 0xd2, //0x00009455 xorl %edx, %edx - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00009457 .p2align 4, 0x90 - //0x00009460 LBB36_119 - 0x48, 0x8d, 0x34, 0x11, //0x00009460 leaq (%rcx,%rdx), %rsi - 0x0f, 0xb6, 0x04, 0x33, //0x00009464 movzbl (%rbx,%rsi), %eax - 0x88, 0x44, 0x33, 0x01, //0x00009468 movb %al, $1(%rbx,%rsi) - 0x48, 0x83, 0xc2, 0xff, //0x0000946c addq $-1, %rdx - 0x48, 0x39, 0xd7, //0x00009470 cmpq %rdx, %rdi - 0x0f, 0x85, 0xe7, 0xff, 0xff, 0xff, //0x00009473 jne LBB36_119 - //0x00009479 LBB36_120 - 0x49, 0x63, 0xc1, //0x00009479 movslq %r9d, %rax - 0x41, 0xc6, 0x04, 0x02, 0x2e, //0x0000947c movb $46, (%r10,%rax) - 0x49, 0x8d, 0x04, 0x1f, //0x00009481 leaq (%r15,%rbx), %rax - 0x48, 0x83, 0xc0, 0x02, //0x00009485 addq $2, %rax - 0xe9, 0x55, 0x01, 0x00, 0x00, //0x00009489 jmp LBB36_155 - //0x0000948e LBB36_106 - 0x44, 0x89, 0xde, //0x0000948e movl %r11d, %esi - 0x48, 0x83, 0xc6, 0x01, //0x00009491 addq $1, %rsi - 0x48, 0x83, 0xe6, 0x80, //0x00009495 andq $-128, %rsi - 0x48, 0x83, 0xc6, 0x80, //0x00009499 addq $-128, %rsi - 0x48, 0xc1, 0xee, 0x07, //0x0000949d shrq $7, %rsi - 0x48, 0x83, 0xc6, 0x01, //0x000094a1 addq $1, %rsi - 0x48, 0x83, 0xe6, 0xfc, //0x000094a5 andq $-4, %rsi - 0x48, 0xf7, 0xde, //0x000094a9 negq %rsi - 0x31, 0xc9, //0x000094ac xorl %ecx, %ecx - 0xc5, 0xfd, 0x6f, 0x05, 0x6a, 0xf2, 0xff, 0xff, //0x000094ae vmovdqa $-3478(%rip), %ymm0 /* LCPI36_0+0(%rip) */ - //0x000094b6 LBB36_107 - 0x49, 0x8d, 0x3c, 0x0f, //0x000094b6 leaq (%r15,%rcx), %rdi - 0xc5, 0xfe, 0x7f, 0x44, 0x3b, 0x01, //0x000094ba vmovdqu %ymm0, $1(%rbx,%rdi) - 0xc5, 0xfe, 0x7f, 0x44, 0x3b, 0x21, //0x000094c0 vmovdqu %ymm0, $33(%rbx,%rdi) - 0xc5, 0xfe, 0x7f, 0x44, 0x3b, 0x41, //0x000094c6 vmovdqu %ymm0, $65(%rbx,%rdi) - 0xc5, 0xfe, 0x7f, 0x44, 0x3b, 0x61, //0x000094cc vmovdqu %ymm0, $97(%rbx,%rdi) - 0xc5, 0xfe, 0x7f, 0x84, 0x3b, 0x81, 0x00, 0x00, 0x00, //0x000094d2 vmovdqu %ymm0, $129(%rbx,%rdi) - 0xc5, 0xfe, 0x7f, 0x84, 0x3b, 0xa1, 0x00, 0x00, 0x00, //0x000094db vmovdqu %ymm0, $161(%rbx,%rdi) - 0xc5, 0xfe, 0x7f, 0x84, 0x3b, 0xc1, 0x00, 0x00, 0x00, //0x000094e4 vmovdqu %ymm0, $193(%rbx,%rdi) - 0xc5, 0xfe, 0x7f, 0x84, 0x3b, 0xe1, 0x00, 0x00, 0x00, //0x000094ed vmovdqu %ymm0, $225(%rbx,%rdi) - 0xc5, 0xfe, 0x7f, 0x84, 0x3b, 0x01, 0x01, 0x00, 0x00, //0x000094f6 vmovdqu %ymm0, $257(%rbx,%rdi) - 0xc5, 0xfe, 0x7f, 0x84, 0x3b, 0x21, 0x01, 0x00, 0x00, //0x000094ff vmovdqu %ymm0, $289(%rbx,%rdi) - 0xc5, 0xfe, 0x7f, 0x84, 0x3b, 0x41, 0x01, 0x00, 0x00, //0x00009508 vmovdqu %ymm0, $321(%rbx,%rdi) - 0xc5, 0xfe, 0x7f, 0x84, 0x3b, 0x61, 0x01, 0x00, 0x00, //0x00009511 vmovdqu %ymm0, $353(%rbx,%rdi) - 0xc5, 0xfe, 0x7f, 0x84, 0x3b, 0x81, 0x01, 0x00, 0x00, //0x0000951a vmovdqu %ymm0, $385(%rbx,%rdi) - 0xc5, 0xfe, 0x7f, 0x84, 0x3b, 0xa1, 0x01, 0x00, 0x00, //0x00009523 vmovdqu %ymm0, $417(%rbx,%rdi) - 0xc5, 0xfe, 0x7f, 0x84, 0x3b, 0xc1, 0x01, 0x00, 0x00, //0x0000952c vmovdqu %ymm0, $449(%rbx,%rdi) - 0xc5, 0xfe, 0x7f, 0x84, 0x3b, 0xe1, 0x01, 0x00, 0x00, //0x00009535 vmovdqu %ymm0, $481(%rbx,%rdi) - 0x48, 0x81, 0xc1, 0x00, 0x02, 0x00, 0x00, //0x0000953e addq $512, %rcx - 0x48, 0x83, 0xc6, 0x04, //0x00009545 addq $4, %rsi - 0x0f, 0x85, 0x67, 0xff, 0xff, 0xff, //0x00009549 jne LBB36_107 - //0x0000954f LBB36_108 - 0x48, 0x01, 0xd8, //0x0000954f addq %rbx, %rax - 0x41, 0xf6, 0xc0, 0x03, //0x00009552 testb $3, %r8b - 0x0f, 0x84, 0x5c, 0x00, 0x00, 0x00, //0x00009556 je LBB36_111 - 0x41, 0x83, 0xc3, 0x01, //0x0000955c addl $1, %r11d - 0x41, 0x81, 0xe3, 0x80, 0x01, 0x00, 0x00, //0x00009560 andl $384, %r11d - 0x41, 0x83, 0xc3, 0x80, //0x00009567 addl $-128, %r11d - 0x41, 0xc1, 0xeb, 0x07, //0x0000956b shrl $7, %r11d - 0x41, 0x80, 0xc3, 0x01, //0x0000956f addb $1, %r11b - 0x45, 0x0f, 0xb6, 0xc3, //0x00009573 movzbl %r11b, %r8d - 0x41, 0x83, 0xe0, 0x03, //0x00009577 andl $3, %r8d - 0x49, 0xc1, 0xe0, 0x07, //0x0000957b shlq $7, %r8 - 0x4c, 0x01, 0xf9, //0x0000957f addq %r15, %rcx - 0x48, 0x83, 0xc1, 0x61, //0x00009582 addq $97, %rcx - 0x31, 0xf6, //0x00009586 xorl %esi, %esi - 0xc5, 0xfd, 0x6f, 0x05, 0x90, 0xf1, 0xff, 0xff, //0x00009588 vmovdqa $-3696(%rip), %ymm0 /* LCPI36_0+0(%rip) */ - //0x00009590 LBB36_110 - 0x48, 0x8d, 0x3c, 0x31, //0x00009590 leaq (%rcx,%rsi), %rdi - 0xc5, 0xfe, 0x7f, 0x44, 0x3b, 0xa0, //0x00009594 vmovdqu %ymm0, $-96(%rbx,%rdi) - 0xc5, 0xfe, 0x7f, 0x44, 0x3b, 0xc0, //0x0000959a vmovdqu %ymm0, $-64(%rbx,%rdi) - 0xc5, 0xfe, 0x7f, 0x44, 0x3b, 0xe0, //0x000095a0 vmovdqu %ymm0, $-32(%rbx,%rdi) - 0xc5, 0xfe, 0x7f, 0x04, 0x3b, //0x000095a6 vmovdqu %ymm0, (%rbx,%rdi) - 0x48, 0x83, 0xee, 0x80, //0x000095ab subq $-128, %rsi - 0x49, 0x39, 0xf0, //0x000095af cmpq %rsi, %r8 - 0x0f, 0x85, 0xd8, 0xff, 0xff, 0xff, //0x000095b2 jne LBB36_110 - //0x000095b8 LBB36_111 - 0x49, 0x39, 0xd1, //0x000095b8 cmpq %rdx, %r9 - 0x0f, 0x84, 0x22, 0x00, 0x00, 0x00, //0x000095bb je LBB36_155 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000095c1 .p2align 4, 0x90 - //0x000095d0 LBB36_112 - 0xc6, 0x00, 0x30, //0x000095d0 movb $48, (%rax) - 0x48, 0x83, 0xc0, 0x01, //0x000095d3 addq $1, %rax - 0x83, 0xc2, 0x01, //0x000095d7 addl $1, %edx - 0x44, 0x39, 0xf2, //0x000095da cmpl %r14d, %edx - 0x0f, 0x8c, 0xed, 0xff, 0xff, 0xff, //0x000095dd jl LBB36_112 - //0x000095e3 LBB36_155 - 0x44, 0x29, 0xe8, //0x000095e3 subl %r13d, %eax - //0x000095e6 LBB36_156 - 0x48, 0x83, 0xc4, 0x10, //0x000095e6 addq $16, %rsp - 0x5b, //0x000095ea popq %rbx - 0x41, 0x5c, //0x000095eb popq %r12 - 0x41, 0x5d, //0x000095ed popq %r13 - 0x41, 0x5e, //0x000095ef popq %r14 - 0x41, 0x5f, //0x000095f1 popq %r15 - 0x5d, //0x000095f3 popq %rbp - 0xc5, 0xf8, 0x77, //0x000095f4 vzeroupper - 0xc3, //0x000095f7 retq - //0x000095f8 LBB36_1 - 0x31, 0xc0, //0x000095f8 xorl %eax, %eax - 0xe9, 0xe7, 0xff, 0xff, 0xff, //0x000095fa jmp LBB36_156 - //0x000095ff LBB36_5 - 0x4c, 0x89, 0x4d, 0xc8, //0x000095ff movq %r9, $-56(%rbp) - 0x48, 0x89, 0x7d, 0xd0, //0x00009603 movq %rdi, $-48(%rbp) - 0x41, 0xb8, 0x6b, 0xff, 0xff, 0xff, //0x00009607 movl $-149, %r8d - 0x41, 0x89, 0xc3, //0x0000960d movl %eax, %r11d - 0xe9, 0xc8, 0xf1, 0xff, 0xff, //0x00009610 jmp LBB36_6 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00009615 .p2align 4, 0x00 - //0x00009620 LCPI37_0 - 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, //0x00009620 QUAD $0x4040404040404040; QUAD $0x4040404040404040 // .space 16, '@@@@@@@@@@@@@@@@' - //0x00009630 LCPI37_1 - 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, //0x00009630 QUAD $0x5b5b5b5b5b5b5b5b; QUAD $0x5b5b5b5b5b5b5b5b // .space 16, '[[[[[[[[[[[[[[[[' - //0x00009640 LCPI37_2 - 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, //0x00009640 QUAD $0x0101010101010101; QUAD $0x0101010101010101 // .space 16, '\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01' - //0x00009650 LCPI37_6 - 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, //0x00009650 QUAD $0xbfbfbfbfbfbfbfbf; QUAD $0xbfbfbfbfbfbfbfbf // .space 16, '\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf' - //0x00009660 LCPI37_7 - 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, //0x00009660 QUAD $0x1919191919191919; QUAD $0x1919191919191919 // .space 16, '\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19' - //0x00009670 LCPI37_8 - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x00009670 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' - //0x00009680 .p2align 5, 0x00 - //0x00009680 LCPI37_3 - 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, //0x00009680 QUAD $0xbfbfbfbfbfbfbfbf; QUAD $0xbfbfbfbfbfbfbfbf // .space 16, '\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf' - 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, //0x00009690 QUAD $0xbfbfbfbfbfbfbfbf; QUAD $0xbfbfbfbfbfbfbfbf // .space 16, '\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf' - //0x000096a0 LCPI37_4 - 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, //0x000096a0 QUAD $0x1919191919191919; QUAD $0x1919191919191919 // .space 16, '\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19' - 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, //0x000096b0 QUAD $0x1919191919191919; QUAD $0x1919191919191919 // .space 16, '\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19' - //0x000096c0 LCPI37_5 - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x000096c0 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x000096d0 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' - //0x000096e0 .p2align 4, 0x90 - //0x000096e0 _to_lower - 0x55, //0x000096e0 pushq %rbp - 0x48, 0x89, 0xe5, //0x000096e1 movq %rsp, %rbp - 0x48, 0x83, 0xfa, 0x10, //0x000096e4 cmpq $16, %rdx - 0x0f, 0x82, 0xec, 0x00, 0x00, 0x00, //0x000096e8 jb LBB37_1 - 0x4c, 0x8d, 0x42, 0xf0, //0x000096ee leaq $-16(%rdx), %r8 - 0x41, 0xf6, 0xc0, 0x10, //0x000096f2 testb $16, %r8b - 0x0f, 0x84, 0x18, 0x00, 0x00, 0x00, //0x000096f6 je LBB37_6 - 0x49, 0x83, 0xf8, 0x10, //0x000096fc cmpq $16, %r8 - 0x0f, 0x83, 0x54, 0x00, 0x00, 0x00, //0x00009700 jae LBB37_8 - //0x00009706 LBB37_2 - 0x4d, 0x85, 0xc0, //0x00009706 testq %r8, %r8 - 0x0f, 0x85, 0xd7, 0x00, 0x00, 0x00, //0x00009709 jne LBB37_3 - 0xe9, 0x89, 0x01, 0x00, 0x00, //0x0000970f jmp LBB37_28 - //0x00009714 LBB37_6 - 0xc5, 0xfa, 0x6f, 0x06, //0x00009714 vmovdqu (%rsi), %xmm0 - 0xc5, 0xf9, 0x64, 0x0d, 0x00, 0xff, 0xff, 0xff, //0x00009718 vpcmpgtb $-256(%rip), %xmm0, %xmm1 /* LCPI37_0+0(%rip) */ - 0xc5, 0xf9, 0x6f, 0x15, 0x08, 0xff, 0xff, 0xff, //0x00009720 vmovdqa $-248(%rip), %xmm2 /* LCPI37_1+0(%rip) */ - 0xc5, 0xe9, 0x64, 0xd0, //0x00009728 vpcmpgtb %xmm0, %xmm2, %xmm2 - 0xc5, 0xe9, 0xdb, 0xc9, //0x0000972c vpand %xmm1, %xmm2, %xmm1 - 0xc5, 0xf1, 0xdb, 0x0d, 0x08, 0xff, 0xff, 0xff, //0x00009730 vpand $-248(%rip), %xmm1, %xmm1 /* LCPI37_2+0(%rip) */ - 0xc5, 0xf1, 0x71, 0xf1, 0x05, //0x00009738 vpsllw $5, %xmm1, %xmm1 - 0xc5, 0xf1, 0xfc, 0xc0, //0x0000973d vpaddb %xmm0, %xmm1, %xmm0 - 0xc5, 0xfa, 0x7f, 0x07, //0x00009741 vmovdqu %xmm0, (%rdi) - 0x48, 0x83, 0xc6, 0x10, //0x00009745 addq $16, %rsi - 0x48, 0x83, 0xc7, 0x10, //0x00009749 addq $16, %rdi - 0x4c, 0x89, 0xc2, //0x0000974d movq %r8, %rdx - 0x49, 0x83, 0xf8, 0x10, //0x00009750 cmpq $16, %r8 - 0x0f, 0x82, 0xac, 0xff, 0xff, 0xff, //0x00009754 jb LBB37_2 - //0x0000975a LBB37_8 - 0xc5, 0xf9, 0x6f, 0x05, 0xbe, 0xfe, 0xff, 0xff, //0x0000975a vmovdqa $-322(%rip), %xmm0 /* LCPI37_0+0(%rip) */ - 0xc5, 0xf9, 0x6f, 0x0d, 0xc6, 0xfe, 0xff, 0xff, //0x00009762 vmovdqa $-314(%rip), %xmm1 /* LCPI37_1+0(%rip) */ - 0xc5, 0xf9, 0x6f, 0x15, 0xce, 0xfe, 0xff, 0xff, //0x0000976a vmovdqa $-306(%rip), %xmm2 /* LCPI37_2+0(%rip) */ - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00009772 .p2align 4, 0x90 - //0x00009780 LBB37_9 - 0xc5, 0xfa, 0x6f, 0x1e, //0x00009780 vmovdqu (%rsi), %xmm3 - 0xc5, 0xe1, 0x64, 0xe0, //0x00009784 vpcmpgtb %xmm0, %xmm3, %xmm4 - 0xc5, 0xf1, 0x64, 0xeb, //0x00009788 vpcmpgtb %xmm3, %xmm1, %xmm5 - 0xc5, 0xd1, 0xdb, 0xe4, //0x0000978c vpand %xmm4, %xmm5, %xmm4 - 0xc5, 0xd9, 0xdb, 0xe2, //0x00009790 vpand %xmm2, %xmm4, %xmm4 - 0xc5, 0xd9, 0x71, 0xf4, 0x05, //0x00009794 vpsllw $5, %xmm4, %xmm4 - 0xc5, 0xd9, 0xfc, 0xdb, //0x00009799 vpaddb %xmm3, %xmm4, %xmm3 - 0xc5, 0xfa, 0x7f, 0x1f, //0x0000979d vmovdqu %xmm3, (%rdi) - 0xc5, 0xfa, 0x6f, 0x5e, 0x10, //0x000097a1 vmovdqu $16(%rsi), %xmm3 - 0xc5, 0xe1, 0x64, 0xe0, //0x000097a6 vpcmpgtb %xmm0, %xmm3, %xmm4 - 0xc5, 0xf1, 0x64, 0xeb, //0x000097aa vpcmpgtb %xmm3, %xmm1, %xmm5 - 0xc5, 0xd1, 0xdb, 0xe4, //0x000097ae vpand %xmm4, %xmm5, %xmm4 - 0xc5, 0xd9, 0xdb, 0xe2, //0x000097b2 vpand %xmm2, %xmm4, %xmm4 - 0xc5, 0xd9, 0x71, 0xf4, 0x05, //0x000097b6 vpsllw $5, %xmm4, %xmm4 - 0xc5, 0xd9, 0xfc, 0xdb, //0x000097bb vpaddb %xmm3, %xmm4, %xmm3 - 0xc5, 0xfa, 0x7f, 0x5f, 0x10, //0x000097bf vmovdqu %xmm3, $16(%rdi) - 0x48, 0x83, 0xc6, 0x20, //0x000097c4 addq $32, %rsi - 0x48, 0x83, 0xc7, 0x20, //0x000097c8 addq $32, %rdi - 0x48, 0x83, 0xc2, 0xe0, //0x000097cc addq $-32, %rdx - 0x48, 0x83, 0xfa, 0x0f, //0x000097d0 cmpq $15, %rdx - 0x0f, 0x87, 0xa6, 0xff, 0xff, 0xff, //0x000097d4 ja LBB37_9 - //0x000097da LBB37_1 - 0x49, 0x89, 0xd0, //0x000097da movq %rdx, %r8 - 0x4d, 0x85, 0xc0, //0x000097dd testq %r8, %r8 - 0x0f, 0x84, 0xb7, 0x00, 0x00, 0x00, //0x000097e0 je LBB37_28 - //0x000097e6 LBB37_3 - 0x49, 0x83, 0xf8, 0x10, //0x000097e6 cmpq $16, %r8 - 0x0f, 0x82, 0x1a, 0x00, 0x00, 0x00, //0x000097ea jb LBB37_4 - 0x4a, 0x8d, 0x04, 0x06, //0x000097f0 leaq (%rsi,%r8), %rax - 0x48, 0x39, 0xc7, //0x000097f4 cmpq %rax, %rdi - 0x0f, 0x83, 0xa5, 0x00, 0x00, 0x00, //0x000097f7 jae LBB37_12 - 0x4a, 0x8d, 0x04, 0x07, //0x000097fd leaq (%rdi,%r8), %rax - 0x48, 0x39, 0xc6, //0x00009801 cmpq %rax, %rsi - 0x0f, 0x83, 0x98, 0x00, 0x00, 0x00, //0x00009804 jae LBB37_12 - //0x0000980a LBB37_4 - 0x49, 0x89, 0xf3, //0x0000980a movq %rsi, %r11 - 0x4d, 0x89, 0xc1, //0x0000980d movq %r8, %r9 - 0x48, 0x89, 0xfa, //0x00009810 movq %rdi, %rdx - //0x00009813 LBB37_17 - 0x41, 0xf6, 0xc1, 0x01, //0x00009813 testb $1, %r9b - 0x0f, 0x85, 0x12, 0x00, 0x00, 0x00, //0x00009817 jne LBB37_24 - 0x4d, 0x89, 0xc8, //0x0000981d movq %r9, %r8 - 0x49, 0x83, 0xf9, 0x01, //0x00009820 cmpq $1, %r9 - 0x0f, 0x85, 0x33, 0x00, 0x00, 0x00, //0x00009824 jne LBB37_26 - 0xe9, 0x6e, 0x00, 0x00, 0x00, //0x0000982a jmp LBB37_28 - //0x0000982f LBB37_24 - 0x41, 0x0f, 0xb6, 0x03, //0x0000982f movzbl (%r11), %eax - 0x8d, 0x70, 0xbf, //0x00009833 leal $-65(%rax), %esi - 0x8d, 0x78, 0x20, //0x00009836 leal $32(%rax), %edi - 0x40, 0x80, 0xfe, 0x1a, //0x00009839 cmpb $26, %sil - 0x40, 0x0f, 0xb6, 0xf7, //0x0000983d movzbl %dil, %esi - 0x0f, 0x43, 0xf0, //0x00009841 cmovael %eax, %esi - 0x4d, 0x8d, 0x41, 0xff, //0x00009844 leaq $-1(%r9), %r8 - 0x40, 0x88, 0x32, //0x00009848 movb %sil, (%rdx) - 0x49, 0x83, 0xc3, 0x01, //0x0000984b addq $1, %r11 - 0x48, 0x83, 0xc2, 0x01, //0x0000984f addq $1, %rdx - 0x49, 0x83, 0xf9, 0x01, //0x00009853 cmpq $1, %r9 - 0x0f, 0x84, 0x40, 0x00, 0x00, 0x00, //0x00009857 je LBB37_28 - //0x0000985d LBB37_26 - 0x31, 0xf6, //0x0000985d xorl %esi, %esi - 0x90, //0x0000985f .p2align 4, 0x90 - //0x00009860 LBB37_27 - 0x41, 0x0f, 0xb6, 0x3c, 0x33, //0x00009860 movzbl (%r11,%rsi), %edi - 0x8d, 0x47, 0xbf, //0x00009865 leal $-65(%rdi), %eax - 0x8d, 0x4f, 0x20, //0x00009868 leal $32(%rdi), %ecx - 0x3c, 0x1a, //0x0000986b cmpb $26, %al - 0x0f, 0xb6, 0xc1, //0x0000986d movzbl %cl, %eax - 0x0f, 0x43, 0xc7, //0x00009870 cmovael %edi, %eax - 0x88, 0x04, 0x32, //0x00009873 movb %al, (%rdx,%rsi) - 0x41, 0x0f, 0xb6, 0x44, 0x33, 0x01, //0x00009876 movzbl $1(%r11,%rsi), %eax - 0x8d, 0x48, 0xbf, //0x0000987c leal $-65(%rax), %ecx - 0x8d, 0x78, 0x20, //0x0000987f leal $32(%rax), %edi - 0x80, 0xf9, 0x1a, //0x00009882 cmpb $26, %cl - 0x40, 0x0f, 0xb6, 0xcf, //0x00009885 movzbl %dil, %ecx - 0x0f, 0x43, 0xc8, //0x00009889 cmovael %eax, %ecx - 0x88, 0x4c, 0x32, 0x01, //0x0000988c movb %cl, $1(%rdx,%rsi) - 0x48, 0x83, 0xc6, 0x02, //0x00009890 addq $2, %rsi - 0x49, 0x39, 0xf0, //0x00009894 cmpq %rsi, %r8 - 0x0f, 0x85, 0xc3, 0xff, 0xff, 0xff, //0x00009897 jne LBB37_27 - //0x0000989d LBB37_28 - 0x5d, //0x0000989d popq %rbp - 0xc5, 0xf8, 0x77, //0x0000989e vzeroupper - 0xc3, //0x000098a1 retq - //0x000098a2 LBB37_12 - 0x49, 0x81, 0xf8, 0x80, 0x00, 0x00, 0x00, //0x000098a2 cmpq $128, %r8 - 0x0f, 0x83, 0x07, 0x00, 0x00, 0x00, //0x000098a9 jae LBB37_19 - 0x31, 0xc0, //0x000098af xorl %eax, %eax - 0xe9, 0xd3, 0x00, 0x00, 0x00, //0x000098b1 jmp LBB37_14 - //0x000098b6 LBB37_19 - 0x4c, 0x89, 0xc0, //0x000098b6 movq %r8, %rax - 0x48, 0x83, 0xe0, 0x80, //0x000098b9 andq $-128, %rax - 0x31, 0xc9, //0x000098bd xorl %ecx, %ecx - 0xc5, 0xfd, 0x6f, 0x05, 0xb9, 0xfd, 0xff, 0xff, //0x000098bf vmovdqa $-583(%rip), %ymm0 /* LCPI37_3+0(%rip) */ - 0xc5, 0xfd, 0x6f, 0x0d, 0xd1, 0xfd, 0xff, 0xff, //0x000098c7 vmovdqa $-559(%rip), %ymm1 /* LCPI37_4+0(%rip) */ - 0xc5, 0xfd, 0x6f, 0x15, 0xe9, 0xfd, 0xff, 0xff, //0x000098cf vmovdqa $-535(%rip), %ymm2 /* LCPI37_5+0(%rip) */ - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000098d7 .p2align 4, 0x90 - //0x000098e0 LBB37_20 - 0xc5, 0xfe, 0x6f, 0x1c, 0x0e, //0x000098e0 vmovdqu (%rsi,%rcx), %ymm3 - 0xc5, 0xfe, 0x6f, 0x64, 0x0e, 0x20, //0x000098e5 vmovdqu $32(%rsi,%rcx), %ymm4 - 0xc5, 0xfe, 0x6f, 0x6c, 0x0e, 0x40, //0x000098eb vmovdqu $64(%rsi,%rcx), %ymm5 - 0xc5, 0xfe, 0x6f, 0x74, 0x0e, 0x60, //0x000098f1 vmovdqu $96(%rsi,%rcx), %ymm6 - 0xc5, 0xe5, 0xfc, 0xf8, //0x000098f7 vpaddb %ymm0, %ymm3, %ymm7 - 0xc5, 0x5d, 0xfc, 0xc0, //0x000098fb vpaddb %ymm0, %ymm4, %ymm8 - 0xc5, 0x55, 0xfc, 0xc8, //0x000098ff vpaddb %ymm0, %ymm5, %ymm9 - 0xc5, 0x4d, 0xfc, 0xd0, //0x00009903 vpaddb %ymm0, %ymm6, %ymm10 - 0xc5, 0x45, 0xda, 0xd9, //0x00009907 vpminub %ymm1, %ymm7, %ymm11 - 0xc5, 0xa5, 0x74, 0xff, //0x0000990b vpcmpeqb %ymm7, %ymm11, %ymm7 - 0xc5, 0x3d, 0xda, 0xd9, //0x0000990f vpminub %ymm1, %ymm8, %ymm11 - 0xc4, 0x41, 0x3d, 0x74, 0xc3, //0x00009913 vpcmpeqb %ymm11, %ymm8, %ymm8 - 0xc5, 0x35, 0xda, 0xd9, //0x00009918 vpminub %ymm1, %ymm9, %ymm11 - 0xc4, 0x41, 0x35, 0x74, 0xcb, //0x0000991c vpcmpeqb %ymm11, %ymm9, %ymm9 - 0xc5, 0x2d, 0xda, 0xd9, //0x00009921 vpminub %ymm1, %ymm10, %ymm11 - 0xc4, 0x41, 0x2d, 0x74, 0xd3, //0x00009925 vpcmpeqb %ymm11, %ymm10, %ymm10 - 0xc5, 0x65, 0xfc, 0xda, //0x0000992a vpaddb %ymm2, %ymm3, %ymm11 - 0xc5, 0x5d, 0xfc, 0xe2, //0x0000992e vpaddb %ymm2, %ymm4, %ymm12 - 0xc5, 0x55, 0xfc, 0xea, //0x00009932 vpaddb %ymm2, %ymm5, %ymm13 - 0xc5, 0x4d, 0xfc, 0xf2, //0x00009936 vpaddb %ymm2, %ymm6, %ymm14 - 0xc4, 0xc3, 0x65, 0x4c, 0xdb, 0x70, //0x0000993a vpblendvb %ymm7, %ymm11, %ymm3, %ymm3 - 0xc4, 0xc3, 0x5d, 0x4c, 0xe4, 0x80, //0x00009940 vpblendvb %ymm8, %ymm12, %ymm4, %ymm4 - 0xc4, 0xc3, 0x55, 0x4c, 0xed, 0x90, //0x00009946 vpblendvb %ymm9, %ymm13, %ymm5, %ymm5 - 0xc4, 0xc3, 0x4d, 0x4c, 0xf6, 0xa0, //0x0000994c vpblendvb %ymm10, %ymm14, %ymm6, %ymm6 - 0xc5, 0xfe, 0x7f, 0x1c, 0x0f, //0x00009952 vmovdqu %ymm3, (%rdi,%rcx) - 0xc5, 0xfe, 0x7f, 0x64, 0x0f, 0x20, //0x00009957 vmovdqu %ymm4, $32(%rdi,%rcx) - 0xc5, 0xfe, 0x7f, 0x6c, 0x0f, 0x40, //0x0000995d vmovdqu %ymm5, $64(%rdi,%rcx) - 0xc5, 0xfe, 0x7f, 0x74, 0x0f, 0x60, //0x00009963 vmovdqu %ymm6, $96(%rdi,%rcx) - 0x48, 0x83, 0xe9, 0x80, //0x00009969 subq $-128, %rcx - 0x48, 0x39, 0xc8, //0x0000996d cmpq %rcx, %rax - 0x0f, 0x85, 0x6a, 0xff, 0xff, 0xff, //0x00009970 jne LBB37_20 - 0x49, 0x39, 0xc0, //0x00009976 cmpq %rax, %r8 - 0x0f, 0x84, 0x1e, 0xff, 0xff, 0xff, //0x00009979 je LBB37_28 - 0x41, 0xf6, 0xc0, 0x70, //0x0000997f testb $112, %r8b - 0x0f, 0x84, 0x72, 0x00, 0x00, 0x00, //0x00009983 je LBB37_23 - //0x00009989 LBB37_14 - 0x4d, 0x89, 0xc2, //0x00009989 movq %r8, %r10 - 0x49, 0x83, 0xe2, 0xf0, //0x0000998c andq $-16, %r10 - 0x4e, 0x8d, 0x1c, 0x16, //0x00009990 leaq (%rsi,%r10), %r11 - 0x45, 0x89, 0xc1, //0x00009994 movl %r8d, %r9d - 0x41, 0x83, 0xe1, 0x0f, //0x00009997 andl $15, %r9d - 0x4a, 0x8d, 0x14, 0x17, //0x0000999b leaq (%rdi,%r10), %rdx - 0xc5, 0xf9, 0x6f, 0x05, 0xa9, 0xfc, 0xff, 0xff, //0x0000999f vmovdqa $-855(%rip), %xmm0 /* LCPI37_6+0(%rip) */ - 0xc5, 0xf9, 0x6f, 0x0d, 0xb1, 0xfc, 0xff, 0xff, //0x000099a7 vmovdqa $-847(%rip), %xmm1 /* LCPI37_7+0(%rip) */ - 0xc5, 0xf9, 0x6f, 0x15, 0xb9, 0xfc, 0xff, 0xff, //0x000099af vmovdqa $-839(%rip), %xmm2 /* LCPI37_8+0(%rip) */ - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000099b7 .p2align 4, 0x90 - //0x000099c0 LBB37_15 - 0xc5, 0xfa, 0x6f, 0x1c, 0x06, //0x000099c0 vmovdqu (%rsi,%rax), %xmm3 - 0xc5, 0xe1, 0xfc, 0xe0, //0x000099c5 vpaddb %xmm0, %xmm3, %xmm4 - 0xc5, 0xd9, 0xda, 0xe9, //0x000099c9 vpminub %xmm1, %xmm4, %xmm5 - 0xc5, 0xd9, 0x74, 0xe5, //0x000099cd vpcmpeqb %xmm5, %xmm4, %xmm4 - 0xc5, 0xe1, 0xfc, 0xea, //0x000099d1 vpaddb %xmm2, %xmm3, %xmm5 - 0xc4, 0xe3, 0x61, 0x4c, 0xdd, 0x40, //0x000099d5 vpblendvb %xmm4, %xmm5, %xmm3, %xmm3 - 0xc5, 0xfa, 0x7f, 0x1c, 0x07, //0x000099db vmovdqu %xmm3, (%rdi,%rax) - 0x48, 0x83, 0xc0, 0x10, //0x000099e0 addq $16, %rax - 0x49, 0x39, 0xc2, //0x000099e4 cmpq %rax, %r10 - 0x0f, 0x85, 0xd3, 0xff, 0xff, 0xff, //0x000099e7 jne LBB37_15 - 0x4d, 0x39, 0xd0, //0x000099ed cmpq %r10, %r8 - 0x0f, 0x85, 0x1d, 0xfe, 0xff, 0xff, //0x000099f0 jne LBB37_17 - 0xe9, 0xa2, 0xfe, 0xff, 0xff, //0x000099f6 jmp LBB37_28 - //0x000099fb LBB37_23 - 0x48, 0x01, 0xc7, //0x000099fb addq %rax, %rdi - 0x41, 0x83, 0xe0, 0x7f, //0x000099fe andl $127, %r8d - 0x48, 0x01, 0xc6, //0x00009a02 addq %rax, %rsi - 0xe9, 0x00, 0xfe, 0xff, 0xff, //0x00009a05 jmp LBB37_4 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00009a0a .p2align 4, 0x90 - //0x00009a10 _format_significand - 0x55, //0x00009a10 pushq %rbp - 0x48, 0x89, 0xe5, //0x00009a11 movq %rsp, %rbp - 0x41, 0x56, //0x00009a14 pushq %r14 - 0x53, //0x00009a16 pushq %rbx - 0x4c, 0x63, 0xc2, //0x00009a17 movslq %edx, %r8 - 0x49, 0x01, 0xf0, //0x00009a1a addq %rsi, %r8 - 0x48, 0x89, 0xf8, //0x00009a1d movq %rdi, %rax - 0x48, 0xc1, 0xe8, 0x20, //0x00009a20 shrq $32, %rax - 0x0f, 0x85, 0x1c, 0x00, 0x00, 0x00, //0x00009a24 jne LBB38_2 - 0x45, 0x31, 0xc9, //0x00009a2a xorl %r9d, %r9d - 0x4d, 0x89, 0xc6, //0x00009a2d movq %r8, %r14 - 0x48, 0x89, 0xfa, //0x00009a30 movq %rdi, %rdx - 0x81, 0xfa, 0x10, 0x27, 0x00, 0x00, //0x00009a33 cmpl $10000, %edx - 0x0f, 0x83, 0xe3, 0x00, 0x00, 0x00, //0x00009a39 jae LBB38_8 - //0x00009a3f LBB38_7 - 0x89, 0xd7, //0x00009a3f movl %edx, %edi - 0xe9, 0x32, 0x01, 0x00, 0x00, //0x00009a41 jmp LBB38_10 - //0x00009a46 LBB38_2 - 0x48, 0xb9, 0xfd, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x00009a46 movabsq $-6067343680855748867, %rcx - 0x48, 0x89, 0xf8, //0x00009a50 movq %rdi, %rax - 0x48, 0xf7, 0xe1, //0x00009a53 mulq %rcx - 0x48, 0xc1, 0xea, 0x1a, //0x00009a56 shrq $26, %rdx - 0x69, 0xca, 0x00, 0x1f, 0x0a, 0xfa, //0x00009a5a imull $-100000000, %edx, %ecx - 0x01, 0xf9, //0x00009a60 addl %edi, %ecx - 0x0f, 0x84, 0xa4, 0x00, 0x00, 0x00, //0x00009a62 je LBB38_3 - 0x89, 0xc8, //0x00009a68 movl %ecx, %eax - 0x41, 0xb9, 0x59, 0x17, 0xb7, 0xd1, //0x00009a6a movl $3518437209, %r9d - 0x49, 0x0f, 0xaf, 0xc1, //0x00009a70 imulq %r9, %rax - 0x48, 0xc1, 0xe8, 0x2d, //0x00009a74 shrq $45, %rax - 0x69, 0xf8, 0x10, 0x27, 0x00, 0x00, //0x00009a78 imull $10000, %eax, %edi - 0x29, 0xf9, //0x00009a7e subl %edi, %ecx - 0x48, 0x89, 0xc7, //0x00009a80 movq %rax, %rdi - 0x49, 0x0f, 0xaf, 0xf9, //0x00009a83 imulq %r9, %rdi - 0x48, 0xc1, 0xef, 0x2d, //0x00009a87 shrq $45, %rdi - 0x69, 0xff, 0x10, 0x27, 0x00, 0x00, //0x00009a8b imull $10000, %edi, %edi - 0x29, 0xf8, //0x00009a91 subl %edi, %eax - 0x0f, 0xb7, 0xf9, //0x00009a93 movzwl %cx, %edi - 0xc1, 0xef, 0x02, //0x00009a96 shrl $2, %edi - 0x44, 0x69, 0xcf, 0x7b, 0x14, 0x00, 0x00, //0x00009a99 imull $5243, %edi, %r9d - 0x41, 0xc1, 0xe9, 0x11, //0x00009aa0 shrl $17, %r9d - 0x41, 0x6b, 0xf9, 0x64, //0x00009aa4 imull $100, %r9d, %edi - 0x29, 0xf9, //0x00009aa8 subl %edi, %ecx - 0x44, 0x0f, 0xb7, 0xd1, //0x00009aaa movzwl %cx, %r10d - 0x0f, 0xb7, 0xf8, //0x00009aae movzwl %ax, %edi - 0xc1, 0xef, 0x02, //0x00009ab1 shrl $2, %edi - 0x69, 0xff, 0x7b, 0x14, 0x00, 0x00, //0x00009ab4 imull $5243, %edi, %edi - 0xc1, 0xef, 0x11, //0x00009aba shrl $17, %edi - 0x6b, 0xcf, 0x64, //0x00009abd imull $100, %edi, %ecx - 0x29, 0xc8, //0x00009ac0 subl %ecx, %eax - 0x44, 0x0f, 0xb7, 0xd8, //0x00009ac2 movzwl %ax, %r11d - 0x48, 0x8d, 0x0d, 0x13, 0x37, 0x00, 0x00, //0x00009ac6 leaq $14099(%rip), %rcx /* _Digits+0(%rip) */ - 0x42, 0x0f, 0xb7, 0x04, 0x51, //0x00009acd movzwl (%rcx,%r10,2), %eax - 0x66, 0x41, 0x89, 0x40, 0xfe, //0x00009ad2 movw %ax, $-2(%r8) - 0x42, 0x0f, 0xb7, 0x04, 0x49, //0x00009ad7 movzwl (%rcx,%r9,2), %eax - 0x66, 0x41, 0x89, 0x40, 0xfc, //0x00009adc movw %ax, $-4(%r8) - 0x42, 0x0f, 0xb7, 0x04, 0x59, //0x00009ae1 movzwl (%rcx,%r11,2), %eax - 0x66, 0x41, 0x89, 0x40, 0xfa, //0x00009ae6 movw %ax, $-6(%r8) - 0x0f, 0xb7, 0x04, 0x79, //0x00009aeb movzwl (%rcx,%rdi,2), %eax - 0x66, 0x41, 0x89, 0x40, 0xf8, //0x00009aef movw %ax, $-8(%r8) - 0x45, 0x31, 0xc9, //0x00009af4 xorl %r9d, %r9d - 0x4d, 0x8d, 0x70, 0xf8, //0x00009af7 leaq $-8(%r8), %r14 - 0x81, 0xfa, 0x10, 0x27, 0x00, 0x00, //0x00009afb cmpl $10000, %edx - 0x0f, 0x82, 0x38, 0xff, 0xff, 0xff, //0x00009b01 jb LBB38_7 - 0xe9, 0x16, 0x00, 0x00, 0x00, //0x00009b07 jmp LBB38_8 - //0x00009b0c LBB38_3 - 0x41, 0xb9, 0x08, 0x00, 0x00, 0x00, //0x00009b0c movl $8, %r9d - 0x4d, 0x8d, 0x70, 0xf8, //0x00009b12 leaq $-8(%r8), %r14 - 0x81, 0xfa, 0x10, 0x27, 0x00, 0x00, //0x00009b16 cmpl $10000, %edx - 0x0f, 0x82, 0x1d, 0xff, 0xff, 0xff, //0x00009b1c jb LBB38_7 - //0x00009b22 LBB38_8 - 0x41, 0xba, 0x59, 0x17, 0xb7, 0xd1, //0x00009b22 movl $3518437209, %r10d - 0x4c, 0x8d, 0x1d, 0xb1, 0x36, 0x00, 0x00, //0x00009b28 leaq $14001(%rip), %r11 /* _Digits+0(%rip) */ - 0x90, //0x00009b2f .p2align 4, 0x90 - //0x00009b30 LBB38_9 - 0x89, 0xd7, //0x00009b30 movl %edx, %edi - 0x49, 0x0f, 0xaf, 0xfa, //0x00009b32 imulq %r10, %rdi - 0x48, 0xc1, 0xef, 0x2d, //0x00009b36 shrq $45, %rdi - 0x69, 0xc7, 0xf0, 0xd8, 0xff, 0xff, //0x00009b3a imull $-10000, %edi, %eax - 0x01, 0xd0, //0x00009b40 addl %edx, %eax - 0x48, 0x69, 0xd8, 0x1f, 0x85, 0xeb, 0x51, //0x00009b42 imulq $1374389535, %rax, %rbx - 0x48, 0xc1, 0xeb, 0x25, //0x00009b49 shrq $37, %rbx - 0x6b, 0xcb, 0x64, //0x00009b4d imull $100, %ebx, %ecx - 0x29, 0xc8, //0x00009b50 subl %ecx, %eax - 0x41, 0x0f, 0xb7, 0x04, 0x43, //0x00009b52 movzwl (%r11,%rax,2), %eax - 0x66, 0x41, 0x89, 0x46, 0xfe, //0x00009b57 movw %ax, $-2(%r14) - 0x41, 0x0f, 0xb7, 0x04, 0x5b, //0x00009b5c movzwl (%r11,%rbx,2), %eax - 0x66, 0x41, 0x89, 0x46, 0xfc, //0x00009b61 movw %ax, $-4(%r14) - 0x49, 0x83, 0xc6, 0xfc, //0x00009b66 addq $-4, %r14 - 0x81, 0xfa, 0xff, 0xe0, 0xf5, 0x05, //0x00009b6a cmpl $99999999, %edx - 0x89, 0xfa, //0x00009b70 movl %edi, %edx - 0x0f, 0x87, 0xb8, 0xff, 0xff, 0xff, //0x00009b72 ja LBB38_9 - //0x00009b78 LBB38_10 - 0x83, 0xff, 0x64, //0x00009b78 cmpl $100, %edi - 0x0f, 0x83, 0x20, 0x00, 0x00, 0x00, //0x00009b7b jae LBB38_11 - 0x83, 0xff, 0x0a, //0x00009b81 cmpl $10, %edi - 0x0f, 0x82, 0x4d, 0x00, 0x00, 0x00, //0x00009b84 jb LBB38_14 - //0x00009b8a LBB38_13 - 0x89, 0xf8, //0x00009b8a movl %edi, %eax - 0x48, 0x8d, 0x0d, 0x4d, 0x36, 0x00, 0x00, //0x00009b8c leaq $13901(%rip), %rcx /* _Digits+0(%rip) */ - 0x0f, 0xb7, 0x04, 0x41, //0x00009b93 movzwl (%rcx,%rax,2), %eax - 0x66, 0x41, 0x89, 0x46, 0xfe, //0x00009b97 movw %ax, $-2(%r14) - 0xe9, 0x3d, 0x00, 0x00, 0x00, //0x00009b9c jmp LBB38_15 - //0x00009ba1 LBB38_11 - 0x0f, 0xb7, 0xc7, //0x00009ba1 movzwl %di, %eax - 0xc1, 0xe8, 0x02, //0x00009ba4 shrl $2, %eax - 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x00009ba7 imull $5243, %eax, %eax - 0xc1, 0xe8, 0x11, //0x00009bad shrl $17, %eax - 0x6b, 0xc8, 0x64, //0x00009bb0 imull $100, %eax, %ecx - 0x29, 0xcf, //0x00009bb3 subl %ecx, %edi - 0x0f, 0xb7, 0xcf, //0x00009bb5 movzwl %di, %ecx - 0x48, 0x8d, 0x15, 0x21, 0x36, 0x00, 0x00, //0x00009bb8 leaq $13857(%rip), %rdx /* _Digits+0(%rip) */ - 0x0f, 0xb7, 0x0c, 0x4a, //0x00009bbf movzwl (%rdx,%rcx,2), %ecx - 0x66, 0x41, 0x89, 0x4e, 0xfe, //0x00009bc3 movw %cx, $-2(%r14) - 0x49, 0x83, 0xc6, 0xfe, //0x00009bc8 addq $-2, %r14 - 0x89, 0xc7, //0x00009bcc movl %eax, %edi - 0x83, 0xff, 0x0a, //0x00009bce cmpl $10, %edi - 0x0f, 0x83, 0xb3, 0xff, 0xff, 0xff, //0x00009bd1 jae LBB38_13 - //0x00009bd7 LBB38_14 - 0x40, 0x80, 0xc7, 0x30, //0x00009bd7 addb $48, %dil - 0x40, 0x88, 0x3e, //0x00009bdb movb %dil, (%rsi) - //0x00009bde LBB38_15 - 0x4d, 0x29, 0xc8, //0x00009bde subq %r9, %r8 - 0x4c, 0x89, 0xc0, //0x00009be1 movq %r8, %rax - 0x5b, //0x00009be4 popq %rbx - 0x41, 0x5e, //0x00009be5 popq %r14 - 0x5d, //0x00009be7 popq %rbp - 0xc3, //0x00009be8 retq - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00009be9 .p2align 4, 0x90 - //0x00009bf0 _left_shift - 0x55, //0x00009bf0 pushq %rbp - 0x48, 0x89, 0xe5, //0x00009bf1 movq %rsp, %rbp - 0x41, 0x57, //0x00009bf4 pushq %r15 - 0x41, 0x56, //0x00009bf6 pushq %r14 - 0x53, //0x00009bf8 pushq %rbx - 0x89, 0xf1, //0x00009bf9 movl %esi, %ecx - 0x4c, 0x6b, 0xf1, 0x68, //0x00009bfb imulq $104, %rcx, %r14 - 0x48, 0x8d, 0x15, 0xca, 0x8f, 0x00, 0x00, //0x00009bff leaq $36810(%rip), %rdx /* _LSHIFT_TAB+0(%rip) */ - 0x45, 0x8b, 0x04, 0x16, //0x00009c06 movl (%r14,%rdx), %r8d - 0x4c, 0x8b, 0x1f, //0x00009c0a movq (%rdi), %r11 - 0x4c, 0x63, 0x4f, 0x10, //0x00009c0d movslq $16(%rdi), %r9 - 0x45, 0x89, 0xca, //0x00009c11 movl %r9d, %r10d - 0x4d, 0x85, 0xc9, //0x00009c14 testq %r9, %r9 - 0x0f, 0x84, 0x4c, 0x00, 0x00, 0x00, //0x00009c17 je LBB39_1 - 0x49, 0x8d, 0x34, 0x16, //0x00009c1d leaq (%r14,%rdx), %rsi - 0x48, 0x83, 0xc6, 0x04, //0x00009c21 addq $4, %rsi - 0x31, 0xdb, //0x00009c25 xorl %ebx, %ebx - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00009c27 .p2align 4, 0x90 - //0x00009c30 LBB39_3 - 0x0f, 0xb6, 0x04, 0x1e, //0x00009c30 movzbl (%rsi,%rbx), %eax - 0x84, 0xc0, //0x00009c34 testb %al, %al - 0x0f, 0x84, 0x41, 0x00, 0x00, 0x00, //0x00009c36 je LBB39_10 - 0x41, 0x38, 0x04, 0x1b, //0x00009c3c cmpb %al, (%r11,%rbx) - 0x0f, 0x85, 0xba, 0x01, 0x00, 0x00, //0x00009c40 jne LBB39_5 - 0x48, 0x83, 0xc3, 0x01, //0x00009c46 addq $1, %rbx - 0x49, 0x39, 0xd9, //0x00009c4a cmpq %rbx, %r9 - 0x0f, 0x85, 0xdd, 0xff, 0xff, 0xff, //0x00009c4d jne LBB39_3 - 0x44, 0x89, 0xce, //0x00009c53 movl %r9d, %esi - 0x4c, 0x01, 0xf2, //0x00009c56 addq %r14, %rdx - 0x80, 0x7c, 0x16, 0x04, 0x00, //0x00009c59 cmpb $0, $4(%rsi,%rdx) - 0x0f, 0x85, 0x15, 0x00, 0x00, 0x00, //0x00009c5e jne LBB39_9 - 0xe9, 0x14, 0x00, 0x00, 0x00, //0x00009c64 jmp LBB39_10 - //0x00009c69 LBB39_1 - 0x31, 0xf6, //0x00009c69 xorl %esi, %esi - 0x4c, 0x01, 0xf2, //0x00009c6b addq %r14, %rdx - 0x80, 0x7c, 0x16, 0x04, 0x00, //0x00009c6e cmpb $0, $4(%rsi,%rdx) - 0x0f, 0x84, 0x04, 0x00, 0x00, 0x00, //0x00009c73 je LBB39_10 - //0x00009c79 LBB39_9 - 0x41, 0x83, 0xc0, 0xff, //0x00009c79 addl $-1, %r8d - //0x00009c7d LBB39_10 - 0x45, 0x85, 0xd2, //0x00009c7d testl %r10d, %r10d - 0x0f, 0x8e, 0xa2, 0x00, 0x00, 0x00, //0x00009c80 jle LBB39_25 - 0x43, 0x8d, 0x04, 0x10, //0x00009c86 leal (%r8,%r10), %eax - 0x4c, 0x63, 0xf8, //0x00009c8a movslq %eax, %r15 - 0x41, 0x83, 0xc1, 0xff, //0x00009c8d addl $-1, %r9d - 0x49, 0x83, 0xc7, 0xff, //0x00009c91 addq $-1, %r15 - 0x31, 0xd2, //0x00009c95 xorl %edx, %edx - 0x49, 0xbe, 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x00009c97 movabsq $-3689348814741910323, %r14 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00009ca1 .p2align 4, 0x90 - //0x00009cb0 LBB39_12 - 0x44, 0x89, 0xc8, //0x00009cb0 movl %r9d, %eax - 0x49, 0x0f, 0xbe, 0x34, 0x03, //0x00009cb3 movsbq (%r11,%rax), %rsi - 0x48, 0x83, 0xc6, 0xd0, //0x00009cb8 addq $-48, %rsi - 0x48, 0xd3, 0xe6, //0x00009cbc shlq %cl, %rsi - 0x48, 0x01, 0xd6, //0x00009cbf addq %rdx, %rsi - 0x48, 0x89, 0xf0, //0x00009cc2 movq %rsi, %rax - 0x49, 0xf7, 0xe6, //0x00009cc5 mulq %r14 - 0x48, 0xc1, 0xea, 0x03, //0x00009cc8 shrq $3, %rdx - 0x48, 0x8d, 0x04, 0x12, //0x00009ccc leaq (%rdx,%rdx), %rax - 0x48, 0x8d, 0x1c, 0x80, //0x00009cd0 leaq (%rax,%rax,4), %rbx - 0x48, 0x89, 0xf0, //0x00009cd4 movq %rsi, %rax - 0x48, 0x29, 0xd8, //0x00009cd7 subq %rbx, %rax - 0x4c, 0x39, 0x7f, 0x08, //0x00009cda cmpq %r15, $8(%rdi) - 0x0f, 0x86, 0x0c, 0x00, 0x00, 0x00, //0x00009cde jbe LBB39_18 - 0x04, 0x30, //0x00009ce4 addb $48, %al - 0x43, 0x88, 0x04, 0x3b, //0x00009ce6 movb %al, (%r11,%r15) - 0xe9, 0x11, 0x00, 0x00, 0x00, //0x00009cea jmp LBB39_20 - 0x90, //0x00009cef .p2align 4, 0x90 - //0x00009cf0 LBB39_18 - 0x48, 0x85, 0xc0, //0x00009cf0 testq %rax, %rax - 0x0f, 0x84, 0x07, 0x00, 0x00, 0x00, //0x00009cf3 je LBB39_20 - 0xc7, 0x47, 0x1c, 0x01, 0x00, 0x00, 0x00, //0x00009cf9 movl $1, $28(%rdi) - //0x00009d00 LBB39_20 - 0x49, 0x83, 0xfa, 0x02, //0x00009d00 cmpq $2, %r10 - 0x0f, 0x8c, 0x14, 0x00, 0x00, 0x00, //0x00009d04 jl LBB39_14 - 0x49, 0x83, 0xc2, 0xff, //0x00009d0a addq $-1, %r10 - 0x4c, 0x8b, 0x1f, //0x00009d0e movq (%rdi), %r11 - 0x41, 0x83, 0xc1, 0xff, //0x00009d11 addl $-1, %r9d - 0x49, 0x83, 0xc7, 0xff, //0x00009d15 addq $-1, %r15 - 0xe9, 0x92, 0xff, 0xff, 0xff, //0x00009d19 jmp LBB39_12 - //0x00009d1e LBB39_14 - 0x48, 0x83, 0xfe, 0x0a, //0x00009d1e cmpq $10, %rsi - 0x0f, 0x83, 0x71, 0x00, 0x00, 0x00, //0x00009d22 jae LBB39_15 - //0x00009d28 LBB39_25 - 0x48, 0x63, 0x4f, 0x10, //0x00009d28 movslq $16(%rdi), %rcx - 0x49, 0x63, 0xc0, //0x00009d2c movslq %r8d, %rax - 0x48, 0x01, 0xc8, //0x00009d2f addq %rcx, %rax - 0x89, 0x47, 0x10, //0x00009d32 movl %eax, $16(%rdi) - 0x48, 0x8b, 0x4f, 0x08, //0x00009d35 movq $8(%rdi), %rcx - 0x48, 0x39, 0xc1, //0x00009d39 cmpq %rax, %rcx - 0x0f, 0x87, 0x05, 0x00, 0x00, 0x00, //0x00009d3c ja LBB39_27 - 0x89, 0x4f, 0x10, //0x00009d42 movl %ecx, $16(%rdi) - 0x89, 0xc8, //0x00009d45 movl %ecx, %eax - //0x00009d47 LBB39_27 - 0x44, 0x01, 0x47, 0x14, //0x00009d47 addl %r8d, $20(%rdi) - 0x85, 0xc0, //0x00009d4b testl %eax, %eax - 0x0f, 0x8e, 0x32, 0x00, 0x00, 0x00, //0x00009d4d jle LBB39_31 - 0x48, 0x8b, 0x0f, //0x00009d53 movq (%rdi), %rcx - 0x89, 0xc2, //0x00009d56 movl %eax, %edx - 0x48, 0x83, 0xc2, 0x01, //0x00009d58 addq $1, %rdx - 0x83, 0xc0, 0xff, //0x00009d5c addl $-1, %eax - 0x90, //0x00009d5f .p2align 4, 0x90 - //0x00009d60 LBB39_29 - 0x89, 0xc6, //0x00009d60 movl %eax, %esi - 0x80, 0x3c, 0x31, 0x30, //0x00009d62 cmpb $48, (%rcx,%rsi) - 0x0f, 0x85, 0x26, 0x00, 0x00, 0x00, //0x00009d66 jne LBB39_33 - 0x89, 0x47, 0x10, //0x00009d6c movl %eax, $16(%rdi) - 0x48, 0x83, 0xc2, 0xff, //0x00009d6f addq $-1, %rdx - 0x83, 0xc0, 0xff, //0x00009d73 addl $-1, %eax - 0x48, 0x83, 0xfa, 0x01, //0x00009d76 cmpq $1, %rdx - 0x0f, 0x8f, 0xe0, 0xff, 0xff, 0xff, //0x00009d7a jg LBB39_29 - 0xe9, 0x06, 0x00, 0x00, 0x00, //0x00009d80 jmp LBB39_32 - //0x00009d85 LBB39_31 - 0x0f, 0x85, 0x07, 0x00, 0x00, 0x00, //0x00009d85 jne LBB39_33 - //0x00009d8b LBB39_32 - 0xc7, 0x47, 0x14, 0x00, 0x00, 0x00, 0x00, //0x00009d8b movl $0, $20(%rdi) - //0x00009d92 LBB39_33 - 0x5b, //0x00009d92 popq %rbx - 0x41, 0x5e, //0x00009d93 popq %r14 - 0x41, 0x5f, //0x00009d95 popq %r15 - 0x5d, //0x00009d97 popq %rbp - 0xc3, //0x00009d98 retq - //0x00009d99 LBB39_15 - 0x45, 0x01, 0xc1, //0x00009d99 addl %r8d, %r9d - 0x49, 0x63, 0xf1, //0x00009d9c movslq %r9d, %rsi - 0x48, 0x83, 0xc6, 0xff, //0x00009d9f addq $-1, %rsi - 0xe9, 0x1e, 0x00, 0x00, 0x00, //0x00009da3 jmp LBB39_16 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00009da8 .p2align 4, 0x90 - //0x00009db0 LBB39_17 - 0x04, 0x30, //0x00009db0 addb $48, %al - 0x48, 0x8b, 0x1f, //0x00009db2 movq (%rdi), %rbx - 0x88, 0x04, 0x33, //0x00009db5 movb %al, (%rbx,%rsi) - //0x00009db8 LBB39_24 - 0x48, 0x83, 0xc6, 0xff, //0x00009db8 addq $-1, %rsi - 0x48, 0x83, 0xf9, 0x09, //0x00009dbc cmpq $9, %rcx - 0x0f, 0x86, 0x62, 0xff, 0xff, 0xff, //0x00009dc0 jbe LBB39_25 - //0x00009dc6 LBB39_16 - 0x48, 0x89, 0xd1, //0x00009dc6 movq %rdx, %rcx - 0x48, 0x89, 0xd0, //0x00009dc9 movq %rdx, %rax - 0x49, 0xf7, 0xe6, //0x00009dcc mulq %r14 - 0x48, 0xc1, 0xea, 0x03, //0x00009dcf shrq $3, %rdx - 0x48, 0x8d, 0x04, 0x12, //0x00009dd3 leaq (%rdx,%rdx), %rax - 0x48, 0x8d, 0x1c, 0x80, //0x00009dd7 leaq (%rax,%rax,4), %rbx - 0x48, 0x89, 0xc8, //0x00009ddb movq %rcx, %rax - 0x48, 0x29, 0xd8, //0x00009dde subq %rbx, %rax - 0x48, 0x39, 0x77, 0x08, //0x00009de1 cmpq %rsi, $8(%rdi) - 0x0f, 0x87, 0xc5, 0xff, 0xff, 0xff, //0x00009de5 ja LBB39_17 - 0x48, 0x85, 0xc0, //0x00009deb testq %rax, %rax - 0x0f, 0x84, 0xc4, 0xff, 0xff, 0xff, //0x00009dee je LBB39_24 - 0xc7, 0x47, 0x1c, 0x01, 0x00, 0x00, 0x00, //0x00009df4 movl $1, $28(%rdi) - 0xe9, 0xb8, 0xff, 0xff, 0xff, //0x00009dfb jmp LBB39_24 - //0x00009e00 LBB39_5 - 0x0f, 0x8c, 0x73, 0xfe, 0xff, 0xff, //0x00009e00 jl LBB39_9 - 0xe9, 0x72, 0xfe, 0xff, 0xff, //0x00009e06 jmp LBB39_10 - 0x90, 0x90, 0x90, 0x90, 0x90, //0x00009e0b .p2align 4, 0x90 - //0x00009e10 _right_shift - 0x55, //0x00009e10 pushq %rbp - 0x48, 0x89, 0xe5, //0x00009e11 movq %rsp, %rbp - 0x53, //0x00009e14 pushq %rbx - 0x89, 0xf1, //0x00009e15 movl %esi, %ecx - 0x44, 0x8b, 0x47, 0x10, //0x00009e17 movl $16(%rdi), %r8d - 0x31, 0xd2, //0x00009e1b xorl %edx, %edx - 0x45, 0x85, 0xc0, //0x00009e1d testl %r8d, %r8d - 0x41, 0xbb, 0x00, 0x00, 0x00, 0x00, //0x00009e20 movl $0, %r11d - 0x45, 0x0f, 0x4f, 0xd8, //0x00009e26 cmovgl %r8d, %r11d - 0x31, 0xc0, //0x00009e2a xorl %eax, %eax - 0x90, 0x90, 0x90, 0x90, //0x00009e2c .p2align 4, 0x90 - //0x00009e30 LBB40_1 - 0x49, 0x39, 0xd3, //0x00009e30 cmpq %rdx, %r11 - 0x0f, 0x84, 0x4f, 0x01, 0x00, 0x00, //0x00009e33 je LBB40_2 - 0x48, 0x8d, 0x04, 0x80, //0x00009e39 leaq (%rax,%rax,4), %rax - 0x48, 0x8b, 0x37, //0x00009e3d movq (%rdi), %rsi - 0x48, 0x0f, 0xbe, 0x34, 0x16, //0x00009e40 movsbq (%rsi,%rdx), %rsi - 0x48, 0x8d, 0x04, 0x46, //0x00009e45 leaq (%rsi,%rax,2), %rax - 0x48, 0x83, 0xc0, 0xd0, //0x00009e49 addq $-48, %rax - 0x48, 0x83, 0xc2, 0x01, //0x00009e4d addq $1, %rdx - 0x48, 0x89, 0xc6, //0x00009e51 movq %rax, %rsi - 0x48, 0xd3, 0xee, //0x00009e54 shrq %cl, %rsi - 0x48, 0x85, 0xf6, //0x00009e57 testq %rsi, %rsi - 0x0f, 0x84, 0xd0, 0xff, 0xff, 0xff, //0x00009e5a je LBB40_1 - 0x41, 0x89, 0xd3, //0x00009e60 movl %edx, %r11d - //0x00009e63 LBB40_7 - 0x8b, 0x57, 0x14, //0x00009e63 movl $20(%rdi), %edx - 0x44, 0x29, 0xda, //0x00009e66 subl %r11d, %edx - 0x83, 0xc2, 0x01, //0x00009e69 addl $1, %edx - 0x49, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00009e6c movq $-1, %r9 - 0x49, 0xd3, 0xe1, //0x00009e73 shlq %cl, %r9 - 0x89, 0x57, 0x14, //0x00009e76 movl %edx, $20(%rdi) - 0x49, 0xf7, 0xd1, //0x00009e79 notq %r9 - 0x45, 0x31, 0xd2, //0x00009e7c xorl %r10d, %r10d - 0x45, 0x39, 0xc3, //0x00009e7f cmpl %r8d, %r11d - 0x0f, 0x8d, 0x80, 0x00, 0x00, 0x00, //0x00009e82 jge LBB40_10 - 0x4d, 0x63, 0xc3, //0x00009e88 movslq %r11d, %r8 - 0x48, 0x8b, 0x37, //0x00009e8b movq (%rdi), %rsi - 0x45, 0x31, 0xd2, //0x00009e8e xorl %r10d, %r10d - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00009e91 .p2align 4, 0x90 - //0x00009ea0 LBB40_9 - 0x48, 0x89, 0xc2, //0x00009ea0 movq %rax, %rdx - 0x48, 0xd3, 0xea, //0x00009ea3 shrq %cl, %rdx - 0x4c, 0x21, 0xc8, //0x00009ea6 andq %r9, %rax - 0x80, 0xc2, 0x30, //0x00009ea9 addb $48, %dl - 0x42, 0x88, 0x14, 0x16, //0x00009eac movb %dl, (%rsi,%r10) - 0x48, 0x8b, 0x37, //0x00009eb0 movq (%rdi), %rsi - 0x4a, 0x8d, 0x14, 0x06, //0x00009eb3 leaq (%rsi,%r8), %rdx - 0x4d, 0x0f, 0xbe, 0x1c, 0x12, //0x00009eb7 movsbq (%r10,%rdx), %r11 - 0x4b, 0x8d, 0x5c, 0x10, 0x01, //0x00009ebc leaq $1(%r8,%r10), %rbx - 0x49, 0x83, 0xc2, 0x01, //0x00009ec1 addq $1, %r10 - 0x48, 0x8d, 0x04, 0x80, //0x00009ec5 leaq (%rax,%rax,4), %rax - 0x49, 0x8d, 0x04, 0x43, //0x00009ec9 leaq (%r11,%rax,2), %rax - 0x48, 0x83, 0xc0, 0xd0, //0x00009ecd addq $-48, %rax - 0x48, 0x63, 0x57, 0x10, //0x00009ed1 movslq $16(%rdi), %rdx - 0x48, 0x39, 0xd3, //0x00009ed5 cmpq %rdx, %rbx - 0x0f, 0x8c, 0xc2, 0xff, 0xff, 0xff, //0x00009ed8 jl LBB40_9 - 0xe9, 0x25, 0x00, 0x00, 0x00, //0x00009ede jmp LBB40_10 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00009ee3 .p2align 4, 0x90 - //0x00009ef0 LBB40_12 - 0x40, 0x80, 0xc6, 0x30, //0x00009ef0 addb $48, %sil - 0x48, 0x8b, 0x1f, //0x00009ef4 movq (%rdi), %rbx - 0x40, 0x88, 0x34, 0x13, //0x00009ef7 movb %sil, (%rbx,%rdx) - 0x83, 0xc2, 0x01, //0x00009efb addl $1, %edx - 0x41, 0x89, 0xd2, //0x00009efe movl %edx, %r10d - //0x00009f01 LBB40_15 - 0x48, 0x01, 0xc0, //0x00009f01 addq %rax, %rax - 0x48, 0x8d, 0x04, 0x80, //0x00009f04 leaq (%rax,%rax,4), %rax - //0x00009f08 LBB40_10 - 0x48, 0x85, 0xc0, //0x00009f08 testq %rax, %rax - 0x0f, 0x84, 0x2b, 0x00, 0x00, 0x00, //0x00009f0b je LBB40_16 - 0x48, 0x89, 0xc6, //0x00009f11 movq %rax, %rsi - 0x48, 0xd3, 0xee, //0x00009f14 shrq %cl, %rsi - 0x4c, 0x21, 0xc8, //0x00009f17 andq %r9, %rax - 0x49, 0x63, 0xd2, //0x00009f1a movslq %r10d, %rdx - 0x48, 0x39, 0x57, 0x08, //0x00009f1d cmpq %rdx, $8(%rdi) - 0x0f, 0x87, 0xc9, 0xff, 0xff, 0xff, //0x00009f21 ja LBB40_12 - 0x48, 0x85, 0xf6, //0x00009f27 testq %rsi, %rsi - 0x0f, 0x84, 0xd1, 0xff, 0xff, 0xff, //0x00009f2a je LBB40_15 - 0xc7, 0x47, 0x1c, 0x01, 0x00, 0x00, 0x00, //0x00009f30 movl $1, $28(%rdi) - 0xe9, 0xc5, 0xff, 0xff, 0xff, //0x00009f37 jmp LBB40_15 - //0x00009f3c LBB40_16 - 0x44, 0x89, 0x57, 0x10, //0x00009f3c movl %r10d, $16(%rdi) - 0x45, 0x85, 0xd2, //0x00009f40 testl %r10d, %r10d - 0x0f, 0x8e, 0x85, 0x00, 0x00, 0x00, //0x00009f43 jle LBB40_20 - 0x48, 0x8b, 0x07, //0x00009f49 movq (%rdi), %rax - 0x44, 0x89, 0xd1, //0x00009f4c movl %r10d, %ecx - 0x48, 0x83, 0xc1, 0x01, //0x00009f4f addq $1, %rcx - 0x41, 0x83, 0xc2, 0xff, //0x00009f53 addl $-1, %r10d - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00009f57 .p2align 4, 0x90 - //0x00009f60 LBB40_18 - 0x44, 0x89, 0xd2, //0x00009f60 movl %r10d, %edx - 0x80, 0x3c, 0x10, 0x30, //0x00009f63 cmpb $48, (%rax,%rdx) - 0x0f, 0x85, 0x67, 0x00, 0x00, 0x00, //0x00009f67 jne LBB40_22 - 0x44, 0x89, 0x57, 0x10, //0x00009f6d movl %r10d, $16(%rdi) - 0x48, 0x83, 0xc1, 0xff, //0x00009f71 addq $-1, %rcx - 0x41, 0x83, 0xc2, 0xff, //0x00009f75 addl $-1, %r10d - 0x48, 0x83, 0xf9, 0x01, //0x00009f79 cmpq $1, %rcx - 0x0f, 0x8f, 0xdd, 0xff, 0xff, 0xff, //0x00009f7d jg LBB40_18 - 0xe9, 0x4f, 0x00, 0x00, 0x00, //0x00009f83 jmp LBB40_21 - //0x00009f88 LBB40_2 - 0x48, 0x85, 0xc0, //0x00009f88 testq %rax, %rax - 0x0f, 0x84, 0x50, 0x00, 0x00, 0x00, //0x00009f8b je LBB40_23 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00009f91 .p2align 4, 0x90 - 0x48, 0x89, 0xc2, //0x00009fa0 movq %rax, %rdx - 0x48, 0xd3, 0xea, //0x00009fa3 shrq %cl, %rdx - 0x48, 0x85, 0xd2, //0x00009fa6 testq %rdx, %rdx - 0x0f, 0x85, 0xb4, 0xfe, 0xff, 0xff, //0x00009fa9 jne LBB40_7 - //0x00009faf LBB40_4 - 0x48, 0x01, 0xc0, //0x00009faf addq %rax, %rax - 0x48, 0x8d, 0x04, 0x80, //0x00009fb2 leaq (%rax,%rax,4), %rax - 0x41, 0x83, 0xc3, 0x01, //0x00009fb6 addl $1, %r11d - 0x48, 0x89, 0xc2, //0x00009fba movq %rax, %rdx - 0x48, 0xd3, 0xea, //0x00009fbd shrq %cl, %rdx - 0x48, 0x85, 0xd2, //0x00009fc0 testq %rdx, %rdx - 0x0f, 0x84, 0xe6, 0xff, 0xff, 0xff, //0x00009fc3 je LBB40_4 - 0xe9, 0x95, 0xfe, 0xff, 0xff, //0x00009fc9 jmp LBB40_7 - //0x00009fce LBB40_20 - 0x0f, 0x84, 0x03, 0x00, 0x00, 0x00, //0x00009fce je LBB40_21 - //0x00009fd4 LBB40_22 - 0x5b, //0x00009fd4 popq %rbx - 0x5d, //0x00009fd5 popq %rbp - 0xc3, //0x00009fd6 retq - //0x00009fd7 LBB40_21 - 0xc7, 0x47, 0x14, 0x00, 0x00, 0x00, 0x00, //0x00009fd7 movl $0, $20(%rdi) - 0x5b, //0x00009fde popq %rbx - 0x5d, //0x00009fdf popq %rbp - 0xc3, //0x00009fe0 retq - //0x00009fe1 LBB40_23 - 0xc7, 0x47, 0x10, 0x00, 0x00, 0x00, 0x00, //0x00009fe1 movl $0, $16(%rdi) - 0x5b, //0x00009fe8 popq %rbx - 0x5d, //0x00009fe9 popq %rbp - 0xc3, //0x00009fea retq - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00009feb .p2align 5, 0x00 - //0x0000a000 LCPI41_0 - 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, //0x0000a000 QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' - 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, //0x0000a010 QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' - //0x0000a020 LCPI41_1 - 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x0000a020 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' - 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x0000a030 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' - //0x0000a040 .p2align 4, 0x90 - //0x0000a040 _advance_string_default - 0x55, //0x0000a040 pushq %rbp - 0x48, 0x89, 0xe5, //0x0000a041 movq %rsp, %rbp - 0x41, 0x57, //0x0000a044 pushq %r15 - 0x41, 0x56, //0x0000a046 pushq %r14 - 0x41, 0x55, //0x0000a048 pushq %r13 - 0x41, 0x54, //0x0000a04a pushq %r12 - 0x53, //0x0000a04c pushq %rbx - 0x4c, 0x8b, 0x7f, 0x08, //0x0000a04d movq $8(%rdi), %r15 - 0x49, 0x29, 0xf7, //0x0000a051 subq %rsi, %r15 - 0x0f, 0x84, 0xec, 0x02, 0x00, 0x00, //0x0000a054 je LBB41_17 - 0x4c, 0x8b, 0x0f, //0x0000a05a movq (%rdi), %r9 - 0x48, 0xc7, 0x02, 0xff, 0xff, 0xff, 0xff, //0x0000a05d movq $-1, (%rdx) - 0x49, 0x83, 0xff, 0x40, //0x0000a064 cmpq $64, %r15 - 0x0f, 0x82, 0x73, 0x01, 0x00, 0x00, //0x0000a068 jb LBB41_18 - 0x48, 0x89, 0xf7, //0x0000a06e movq %rsi, %rdi - 0x48, 0xf7, 0xd7, //0x0000a071 notq %rdi - 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x0000a074 movq $-1, %r8 - 0x45, 0x31, 0xf6, //0x0000a07b xorl %r14d, %r14d - 0xc5, 0xfd, 0x6f, 0x05, 0x7a, 0xff, 0xff, 0xff, //0x0000a07e vmovdqa $-134(%rip), %ymm0 /* LCPI41_0+0(%rip) */ - 0xc5, 0xfd, 0x6f, 0x0d, 0x92, 0xff, 0xff, 0xff, //0x0000a086 vmovdqa $-110(%rip), %ymm1 /* LCPI41_1+0(%rip) */ - 0x49, 0xba, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x0000a08e movabsq $-6148914691236517206, %r10 - 0x49, 0xbb, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x0000a098 movabsq $6148914691236517205, %r11 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000a0a2 .p2align 4, 0x90 - //0x0000a0b0 LBB41_3 - 0xc4, 0xc1, 0x7e, 0x6f, 0x14, 0x31, //0x0000a0b0 vmovdqu (%r9,%rsi), %ymm2 - 0xc4, 0xc1, 0x7e, 0x6f, 0x5c, 0x31, 0x20, //0x0000a0b6 vmovdqu $32(%r9,%rsi), %ymm3 - 0xc5, 0xed, 0x74, 0xe0, //0x0000a0bd vpcmpeqb %ymm0, %ymm2, %ymm4 - 0xc5, 0x7d, 0xd7, 0xe4, //0x0000a0c1 vpmovmskb %ymm4, %r12d - 0xc5, 0xe5, 0x74, 0xe0, //0x0000a0c5 vpcmpeqb %ymm0, %ymm3, %ymm4 - 0xc5, 0xfd, 0xd7, 0xcc, //0x0000a0c9 vpmovmskb %ymm4, %ecx - 0xc5, 0xed, 0x74, 0xd1, //0x0000a0cd vpcmpeqb %ymm1, %ymm2, %ymm2 - 0xc5, 0xfd, 0xd7, 0xc2, //0x0000a0d1 vpmovmskb %ymm2, %eax - 0xc5, 0xe5, 0x74, 0xd1, //0x0000a0d5 vpcmpeqb %ymm1, %ymm3, %ymm2 - 0xc5, 0xfd, 0xd7, 0xda, //0x0000a0d9 vpmovmskb %ymm2, %ebx - 0x48, 0xc1, 0xe1, 0x20, //0x0000a0dd shlq $32, %rcx - 0x49, 0x09, 0xcc, //0x0000a0e1 orq %rcx, %r12 - 0x48, 0xc1, 0xe3, 0x20, //0x0000a0e4 shlq $32, %rbx - 0x48, 0x09, 0xd8, //0x0000a0e8 orq %rbx, %rax - 0x0f, 0x85, 0x30, 0x00, 0x00, 0x00, //0x0000a0eb jne LBB41_7 - 0x4d, 0x85, 0xf6, //0x0000a0f1 testq %r14, %r14 - 0x0f, 0x85, 0x3b, 0x00, 0x00, 0x00, //0x0000a0f4 jne LBB41_9 - 0x45, 0x31, 0xf6, //0x0000a0fa xorl %r14d, %r14d - 0x4d, 0x85, 0xe4, //0x0000a0fd testq %r12, %r12 - 0x0f, 0x85, 0x6d, 0x00, 0x00, 0x00, //0x0000a100 jne LBB41_10 - //0x0000a106 LBB41_6 - 0x49, 0x83, 0xc7, 0xc0, //0x0000a106 addq $-64, %r15 - 0x48, 0x83, 0xc7, 0xc0, //0x0000a10a addq $-64, %rdi - 0x48, 0x83, 0xc6, 0x40, //0x0000a10e addq $64, %rsi - 0x49, 0x83, 0xff, 0x3f, //0x0000a112 cmpq $63, %r15 - 0x0f, 0x87, 0x94, 0xff, 0xff, 0xff, //0x0000a116 ja LBB41_3 - 0xe9, 0x67, 0x00, 0x00, 0x00, //0x0000a11c jmp LBB41_12 - //0x0000a121 LBB41_7 - 0x49, 0x83, 0xf8, 0xff, //0x0000a121 cmpq $-1, %r8 - 0x0f, 0x85, 0x0a, 0x00, 0x00, 0x00, //0x0000a125 jne LBB41_9 - 0x4c, 0x0f, 0xbc, 0xc0, //0x0000a12b bsfq %rax, %r8 - 0x49, 0x01, 0xf0, //0x0000a12f addq %rsi, %r8 - 0x4c, 0x89, 0x02, //0x0000a132 movq %r8, (%rdx) - //0x0000a135 LBB41_9 - 0x4c, 0x89, 0xf1, //0x0000a135 movq %r14, %rcx - 0x48, 0xf7, 0xd1, //0x0000a138 notq %rcx - 0x48, 0x21, 0xc1, //0x0000a13b andq %rax, %rcx - 0x4c, 0x8d, 0x2c, 0x09, //0x0000a13e leaq (%rcx,%rcx), %r13 - 0x4d, 0x09, 0xf5, //0x0000a142 orq %r14, %r13 - 0x4c, 0x89, 0xeb, //0x0000a145 movq %r13, %rbx - 0x48, 0xf7, 0xd3, //0x0000a148 notq %rbx - 0x48, 0x21, 0xc3, //0x0000a14b andq %rax, %rbx - 0x4c, 0x21, 0xd3, //0x0000a14e andq %r10, %rbx - 0x45, 0x31, 0xf6, //0x0000a151 xorl %r14d, %r14d - 0x48, 0x01, 0xcb, //0x0000a154 addq %rcx, %rbx - 0x41, 0x0f, 0x92, 0xc6, //0x0000a157 setb %r14b - 0x48, 0x01, 0xdb, //0x0000a15b addq %rbx, %rbx - 0x4c, 0x31, 0xdb, //0x0000a15e xorq %r11, %rbx - 0x4c, 0x21, 0xeb, //0x0000a161 andq %r13, %rbx - 0x48, 0xf7, 0xd3, //0x0000a164 notq %rbx - 0x49, 0x21, 0xdc, //0x0000a167 andq %rbx, %r12 - 0x4d, 0x85, 0xe4, //0x0000a16a testq %r12, %r12 - 0x0f, 0x84, 0x93, 0xff, 0xff, 0xff, //0x0000a16d je LBB41_6 - //0x0000a173 LBB41_10 - 0x49, 0x0f, 0xbc, 0xc4, //0x0000a173 bsfq %r12, %rax - 0x48, 0x29, 0xf8, //0x0000a177 subq %rdi, %rax - //0x0000a17a LBB41_11 - 0x5b, //0x0000a17a popq %rbx - 0x41, 0x5c, //0x0000a17b popq %r12 - 0x41, 0x5d, //0x0000a17d popq %r13 - 0x41, 0x5e, //0x0000a17f popq %r14 - 0x41, 0x5f, //0x0000a181 popq %r15 - 0x5d, //0x0000a183 popq %rbp - 0xc5, 0xf8, 0x77, //0x0000a184 vzeroupper - 0xc3, //0x0000a187 retq - //0x0000a188 LBB41_12 - 0x4c, 0x01, 0xce, //0x0000a188 addq %r9, %rsi - 0x49, 0x83, 0xff, 0x20, //0x0000a18b cmpq $32, %r15 - 0x0f, 0x82, 0xc3, 0x00, 0x00, 0x00, //0x0000a18f jb LBB41_23 - //0x0000a195 LBB41_13 - 0xc5, 0xfe, 0x6f, 0x06, //0x0000a195 vmovdqu (%rsi), %ymm0 - 0xc5, 0xfd, 0x74, 0x0d, 0x5f, 0xfe, 0xff, 0xff, //0x0000a199 vpcmpeqb $-417(%rip), %ymm0, %ymm1 /* LCPI41_0+0(%rip) */ - 0xc5, 0xfd, 0xd7, 0xf9, //0x0000a1a1 vpmovmskb %ymm1, %edi - 0xc5, 0xfd, 0x74, 0x05, 0x73, 0xfe, 0xff, 0xff, //0x0000a1a5 vpcmpeqb $-397(%rip), %ymm0, %ymm0 /* LCPI41_1+0(%rip) */ - 0xc5, 0xfd, 0xd7, 0xc0, //0x0000a1ad vpmovmskb %ymm0, %eax - 0x85, 0xc0, //0x0000a1b1 testl %eax, %eax - 0x0f, 0x85, 0x44, 0x00, 0x00, 0x00, //0x0000a1b3 jne LBB41_19 - 0x4d, 0x85, 0xf6, //0x0000a1b9 testq %r14, %r14 - 0x0f, 0x85, 0x55, 0x00, 0x00, 0x00, //0x0000a1bc jne LBB41_21 - 0x45, 0x31, 0xf6, //0x0000a1c2 xorl %r14d, %r14d - 0x48, 0x85, 0xff, //0x0000a1c5 testq %rdi, %rdi - 0x0f, 0x84, 0x82, 0x00, 0x00, 0x00, //0x0000a1c8 je LBB41_22 - //0x0000a1ce LBB41_16 - 0x48, 0x0f, 0xbc, 0xc7, //0x0000a1ce bsfq %rdi, %rax - 0x4c, 0x29, 0xce, //0x0000a1d2 subq %r9, %rsi - 0x48, 0x01, 0xf0, //0x0000a1d5 addq %rsi, %rax - 0x48, 0x83, 0xc0, 0x01, //0x0000a1d8 addq $1, %rax - 0xe9, 0x99, 0xff, 0xff, 0xff, //0x0000a1dc jmp LBB41_11 - //0x0000a1e1 LBB41_18 - 0x4c, 0x01, 0xce, //0x0000a1e1 addq %r9, %rsi - 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x0000a1e4 movq $-1, %r8 - 0x45, 0x31, 0xf6, //0x0000a1eb xorl %r14d, %r14d - 0x49, 0x83, 0xff, 0x20, //0x0000a1ee cmpq $32, %r15 - 0x0f, 0x83, 0x9d, 0xff, 0xff, 0xff, //0x0000a1f2 jae LBB41_13 - 0xe9, 0x5b, 0x00, 0x00, 0x00, //0x0000a1f8 jmp LBB41_23 - //0x0000a1fd LBB41_19 - 0x49, 0x83, 0xf8, 0xff, //0x0000a1fd cmpq $-1, %r8 - 0x0f, 0x85, 0x10, 0x00, 0x00, 0x00, //0x0000a201 jne LBB41_21 - 0x48, 0x89, 0xf1, //0x0000a207 movq %rsi, %rcx - 0x4c, 0x29, 0xc9, //0x0000a20a subq %r9, %rcx - 0x4c, 0x0f, 0xbc, 0xc0, //0x0000a20d bsfq %rax, %r8 - 0x49, 0x01, 0xc8, //0x0000a211 addq %rcx, %r8 - 0x4c, 0x89, 0x02, //0x0000a214 movq %r8, (%rdx) - //0x0000a217 LBB41_21 - 0x44, 0x89, 0xf1, //0x0000a217 movl %r14d, %ecx - 0xf7, 0xd1, //0x0000a21a notl %ecx - 0x21, 0xc1, //0x0000a21c andl %eax, %ecx - 0x8d, 0x1c, 0x09, //0x0000a21e leal (%rcx,%rcx), %ebx - 0x45, 0x8d, 0x14, 0x4e, //0x0000a221 leal (%r14,%rcx,2), %r10d - 0xf7, 0xd3, //0x0000a225 notl %ebx - 0x21, 0xc3, //0x0000a227 andl %eax, %ebx - 0x81, 0xe3, 0xaa, 0xaa, 0xaa, 0xaa, //0x0000a229 andl $-1431655766, %ebx - 0x45, 0x31, 0xf6, //0x0000a22f xorl %r14d, %r14d - 0x01, 0xcb, //0x0000a232 addl %ecx, %ebx - 0x41, 0x0f, 0x92, 0xc6, //0x0000a234 setb %r14b - 0x01, 0xdb, //0x0000a238 addl %ebx, %ebx - 0x81, 0xf3, 0x55, 0x55, 0x55, 0x55, //0x0000a23a xorl $1431655765, %ebx - 0x44, 0x21, 0xd3, //0x0000a240 andl %r10d, %ebx - 0xf7, 0xd3, //0x0000a243 notl %ebx - 0x21, 0xdf, //0x0000a245 andl %ebx, %edi - 0x48, 0x85, 0xff, //0x0000a247 testq %rdi, %rdi - 0x0f, 0x85, 0x7e, 0xff, 0xff, 0xff, //0x0000a24a jne LBB41_16 - //0x0000a250 LBB41_22 - 0x48, 0x83, 0xc6, 0x20, //0x0000a250 addq $32, %rsi - 0x49, 0x83, 0xc7, 0xe0, //0x0000a254 addq $-32, %r15 - //0x0000a258 LBB41_23 - 0x4d, 0x85, 0xf6, //0x0000a258 testq %r14, %r14 - 0x0f, 0x85, 0xb0, 0x00, 0x00, 0x00, //0x0000a25b jne LBB41_37 - 0x4d, 0x85, 0xff, //0x0000a261 testq %r15, %r15 - 0x0f, 0x84, 0x9c, 0x00, 0x00, 0x00, //0x0000a264 je LBB41_36 - //0x0000a26a LBB41_25 - 0x4d, 0x89, 0xca, //0x0000a26a movq %r9, %r10 - 0x49, 0xf7, 0xd2, //0x0000a26d notq %r10 - 0x49, 0x83, 0xc2, 0x01, //0x0000a270 addq $1, %r10 - //0x0000a274 LBB41_26 - 0x31, 0xc0, //0x0000a274 xorl %eax, %eax - //0x0000a276 LBB41_27 - 0x48, 0x89, 0xc7, //0x0000a276 movq %rax, %rdi - 0x0f, 0xb6, 0x1c, 0x06, //0x0000a279 movzbl (%rsi,%rax), %ebx - 0x80, 0xfb, 0x22, //0x0000a27d cmpb $34, %bl - 0x0f, 0x84, 0x79, 0x00, 0x00, 0x00, //0x0000a280 je LBB41_35 - 0x80, 0xfb, 0x5c, //0x0000a286 cmpb $92, %bl - 0x0f, 0x84, 0x12, 0x00, 0x00, 0x00, //0x0000a289 je LBB41_30 - 0x48, 0x8d, 0x47, 0x01, //0x0000a28f leaq $1(%rdi), %rax - 0x49, 0x39, 0xc7, //0x0000a293 cmpq %rax, %r15 - 0x0f, 0x85, 0xda, 0xff, 0xff, 0xff, //0x0000a296 jne LBB41_27 - 0xe9, 0x4e, 0x00, 0x00, 0x00, //0x0000a29c jmp LBB41_34 - //0x0000a2a1 LBB41_30 - 0x49, 0x8d, 0x4f, 0xff, //0x0000a2a1 leaq $-1(%r15), %rcx - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x0000a2a5 movq $-1, %rax - 0x48, 0x39, 0xf9, //0x0000a2ac cmpq %rdi, %rcx - 0x0f, 0x84, 0xc5, 0xfe, 0xff, 0xff, //0x0000a2af je LBB41_11 - 0x49, 0x83, 0xf8, 0xff, //0x0000a2b5 cmpq $-1, %r8 - 0x0f, 0x85, 0x0a, 0x00, 0x00, 0x00, //0x0000a2b9 jne LBB41_33 - 0x4d, 0x8d, 0x04, 0x32, //0x0000a2bf leaq (%r10,%rsi), %r8 - 0x49, 0x01, 0xf8, //0x0000a2c3 addq %rdi, %r8 - 0x4c, 0x89, 0x02, //0x0000a2c6 movq %r8, (%rdx) - //0x0000a2c9 LBB41_33 - 0x48, 0x01, 0xfe, //0x0000a2c9 addq %rdi, %rsi - 0x48, 0x83, 0xc6, 0x02, //0x0000a2cc addq $2, %rsi - 0x4c, 0x89, 0xf9, //0x0000a2d0 movq %r15, %rcx - 0x48, 0x29, 0xf9, //0x0000a2d3 subq %rdi, %rcx - 0x48, 0x83, 0xc1, 0xfe, //0x0000a2d6 addq $-2, %rcx - 0x49, 0x83, 0xc7, 0xfe, //0x0000a2da addq $-2, %r15 - 0x49, 0x39, 0xff, //0x0000a2de cmpq %rdi, %r15 - 0x49, 0x89, 0xcf, //0x0000a2e1 movq %rcx, %r15 - 0x0f, 0x85, 0x8a, 0xff, 0xff, 0xff, //0x0000a2e4 jne LBB41_26 - 0xe9, 0x8b, 0xfe, 0xff, 0xff, //0x0000a2ea jmp LBB41_11 - //0x0000a2ef LBB41_34 - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x0000a2ef movq $-1, %rax - 0x80, 0xfb, 0x22, //0x0000a2f6 cmpb $34, %bl - 0x0f, 0x85, 0x7b, 0xfe, 0xff, 0xff, //0x0000a2f9 jne LBB41_11 - //0x0000a2ff LBB41_35 - 0x48, 0x01, 0xfe, //0x0000a2ff addq %rdi, %rsi - 0x48, 0x83, 0xc6, 0x01, //0x0000a302 addq $1, %rsi - //0x0000a306 LBB41_36 - 0x4c, 0x29, 0xce, //0x0000a306 subq %r9, %rsi - 0x48, 0x89, 0xf0, //0x0000a309 movq %rsi, %rax - 0xe9, 0x69, 0xfe, 0xff, 0xff, //0x0000a30c jmp LBB41_11 - //0x0000a311 LBB41_37 - 0x4d, 0x85, 0xff, //0x0000a311 testq %r15, %r15 - 0x0f, 0x84, 0x2c, 0x00, 0x00, 0x00, //0x0000a314 je LBB41_17 - 0x49, 0x83, 0xf8, 0xff, //0x0000a31a cmpq $-1, %r8 - 0x0f, 0x85, 0x0c, 0x00, 0x00, 0x00, //0x0000a31e jne LBB41_40 - 0x4d, 0x89, 0xc8, //0x0000a324 movq %r9, %r8 - 0x49, 0xf7, 0xd0, //0x0000a327 notq %r8 - 0x49, 0x01, 0xf0, //0x0000a32a addq %rsi, %r8 - 0x4c, 0x89, 0x02, //0x0000a32d movq %r8, (%rdx) - //0x0000a330 LBB41_40 - 0x48, 0x83, 0xc6, 0x01, //0x0000a330 addq $1, %rsi - 0x49, 0x83, 0xc7, 0xff, //0x0000a334 addq $-1, %r15 - 0x4d, 0x85, 0xff, //0x0000a338 testq %r15, %r15 - 0x0f, 0x85, 0x29, 0xff, 0xff, 0xff, //0x0000a33b jne LBB41_25 - 0xe9, 0xc0, 0xff, 0xff, 0xff, //0x0000a341 jmp LBB41_36 - //0x0000a346 LBB41_17 - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x0000a346 movq $-1, %rax - 0xe9, 0x28, 0xfe, 0xff, 0xff, //0x0000a34d jmp LBB41_11 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000a352 .p2align 4, 0x90 - //0x0000a360 _unescape - 0x55, //0x0000a360 pushq %rbp - 0x48, 0x89, 0xe5, //0x0000a361 movq %rsp, %rbp - 0x41, 0x57, //0x0000a364 pushq %r15 - 0x41, 0x56, //0x0000a366 pushq %r14 - 0x41, 0x55, //0x0000a368 pushq %r13 - 0x41, 0x54, //0x0000a36a pushq %r12 - 0x53, //0x0000a36c pushq %rbx - 0x50, //0x0000a36d pushq %rax - 0x4c, 0x8b, 0x2f, //0x0000a36e movq (%rdi), %r13 - 0x4c, 0x29, 0xee, //0x0000a371 subq %r13, %rsi - 0x48, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x0000a374 movq $-1, %rbx - 0x48, 0x85, 0xf6, //0x0000a37b testq %rsi, %rsi - 0x0f, 0x8e, 0xcf, 0x00, 0x00, 0x00, //0x0000a37e jle LBB42_13 - 0x49, 0x89, 0xd6, //0x0000a384 movq %rdx, %r14 - 0x49, 0x89, 0xff, //0x0000a387 movq %rdi, %r15 - 0x49, 0x8d, 0x45, 0x01, //0x0000a38a leaq $1(%r13), %rax - 0x41, 0x0f, 0xb6, 0x4d, 0x01, //0x0000a38e movzbl $1(%r13), %ecx - 0x48, 0x8d, 0x15, 0x36, 0x77, 0x00, 0x00, //0x0000a393 leaq $30518(%rip), %rdx /* __UnquoteTab+0(%rip) */ - 0x8a, 0x0c, 0x11, //0x0000a39a movb (%rcx,%rdx), %cl - 0x80, 0xf9, 0xff, //0x0000a39d cmpb $-1, %cl - 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x0000a3a0 je LBB42_4 - 0x84, 0xc9, //0x0000a3a6 testb %cl, %cl - 0x0f, 0x85, 0x21, 0x00, 0x00, 0x00, //0x0000a3a8 jne LBB42_6 - 0x49, 0x89, 0x07, //0x0000a3ae movq %rax, (%r15) - 0x48, 0xc7, 0xc3, 0xfd, 0xff, 0xff, 0xff, //0x0000a3b1 movq $-3, %rbx - 0xe9, 0x96, 0x00, 0x00, 0x00, //0x0000a3b8 jmp LBB42_13 - //0x0000a3bd LBB42_4 - 0x48, 0x83, 0xfe, 0x03, //0x0000a3bd cmpq $3, %rsi - 0x0f, 0x8f, 0x19, 0x00, 0x00, 0x00, //0x0000a3c1 jg LBB42_7 - 0x49, 0x89, 0x07, //0x0000a3c7 movq %rax, (%r15) - 0xe9, 0x84, 0x00, 0x00, 0x00, //0x0000a3ca jmp LBB42_13 - //0x0000a3cf LBB42_6 - 0x41, 0x88, 0x0e, //0x0000a3cf movb %cl, (%r14) - 0x49, 0x83, 0x07, 0x02, //0x0000a3d2 addq $2, (%r15) - 0xbb, 0x01, 0x00, 0x00, 0x00, //0x0000a3d6 movl $1, %ebx - 0xe9, 0x73, 0x00, 0x00, 0x00, //0x0000a3db jmp LBB42_13 - //0x0000a3e0 LBB42_7 - 0x41, 0x8b, 0x4d, 0x02, //0x0000a3e0 movl $2(%r13), %ecx - 0x89, 0xc8, //0x0000a3e4 movl %ecx, %eax - 0xf7, 0xd0, //0x0000a3e6 notl %eax - 0x8d, 0x91, 0xd0, 0xcf, 0xcf, 0xcf, //0x0000a3e8 leal $-808464432(%rcx), %edx - 0x25, 0x80, 0x80, 0x80, 0x80, //0x0000a3ee andl $-2139062144, %eax - 0x85, 0xd0, //0x0000a3f3 testl %edx, %eax - 0x0f, 0x85, 0x4a, 0x00, 0x00, 0x00, //0x0000a3f5 jne LBB42_11 - 0x8d, 0x91, 0x19, 0x19, 0x19, 0x19, //0x0000a3fb leal $421075225(%rcx), %edx - 0x09, 0xca, //0x0000a401 orl %ecx, %edx - 0xf7, 0xc2, 0x80, 0x80, 0x80, 0x80, //0x0000a403 testl $-2139062144, %edx - 0x0f, 0x85, 0x36, 0x00, 0x00, 0x00, //0x0000a409 jne LBB42_11 - 0x89, 0xca, //0x0000a40f movl %ecx, %edx - 0x81, 0xe2, 0x7f, 0x7f, 0x7f, 0x7f, //0x0000a411 andl $2139062143, %edx - 0xbf, 0xc0, 0xc0, 0xc0, 0xc0, //0x0000a417 movl $-1061109568, %edi - 0x29, 0xd7, //0x0000a41c subl %edx, %edi - 0x8d, 0x9a, 0x46, 0x46, 0x46, 0x46, //0x0000a41e leal $1179010630(%rdx), %ebx - 0x21, 0xc7, //0x0000a424 andl %eax, %edi - 0x85, 0xdf, //0x0000a426 testl %ebx, %edi - 0x0f, 0x85, 0x17, 0x00, 0x00, 0x00, //0x0000a428 jne LBB42_11 - 0xbf, 0xe0, 0xe0, 0xe0, 0xe0, //0x0000a42e movl $-522133280, %edi - 0x29, 0xd7, //0x0000a433 subl %edx, %edi - 0x81, 0xc2, 0x39, 0x39, 0x39, 0x39, //0x0000a435 addl $960051513, %edx - 0x21, 0xf8, //0x0000a43b andl %edi, %eax - 0x85, 0xd0, //0x0000a43d testl %edx, %eax - 0x0f, 0x84, 0x20, 0x00, 0x00, 0x00, //0x0000a43f je LBB42_14 - //0x0000a445 LBB42_11 - 0x49, 0x83, 0xc5, 0x02, //0x0000a445 addq $2, %r13 - 0x4d, 0x89, 0x2f, //0x0000a449 movq %r13, (%r15) - //0x0000a44c LBB42_12 - 0x48, 0xc7, 0xc3, 0xfe, 0xff, 0xff, 0xff, //0x0000a44c movq $-2, %rbx - //0x0000a453 LBB42_13 - 0x48, 0x89, 0xd8, //0x0000a453 movq %rbx, %rax - 0x48, 0x83, 0xc4, 0x08, //0x0000a456 addq $8, %rsp - 0x5b, //0x0000a45a popq %rbx - 0x41, 0x5c, //0x0000a45b popq %r12 - 0x41, 0x5d, //0x0000a45d popq %r13 - 0x41, 0x5e, //0x0000a45f popq %r14 - 0x41, 0x5f, //0x0000a461 popq %r15 - 0x5d, //0x0000a463 popq %rbp - 0xc3, //0x0000a464 retq - //0x0000a465 LBB42_14 - 0x0f, 0xc9, //0x0000a465 bswapl %ecx - 0x89, 0xc8, //0x0000a467 movl %ecx, %eax - 0xc1, 0xe8, 0x04, //0x0000a469 shrl $4, %eax - 0xf7, 0xd0, //0x0000a46c notl %eax - 0x25, 0x01, 0x01, 0x01, 0x01, //0x0000a46e andl $16843009, %eax - 0x8d, 0x04, 0xc0, //0x0000a473 leal (%rax,%rax,8), %eax - 0x81, 0xe1, 0x0f, 0x0f, 0x0f, 0x0f, //0x0000a476 andl $252645135, %ecx - 0x01, 0xc1, //0x0000a47c addl %eax, %ecx - 0x89, 0xc8, //0x0000a47e movl %ecx, %eax - 0xc1, 0xe8, 0x04, //0x0000a480 shrl $4, %eax - 0x09, 0xc8, //0x0000a483 orl %ecx, %eax - 0x89, 0xc1, //0x0000a485 movl %eax, %ecx - 0xc1, 0xe9, 0x08, //0x0000a487 shrl $8, %ecx - 0x81, 0xe1, 0x00, 0xff, 0x00, 0x00, //0x0000a48a andl $65280, %ecx - 0x44, 0x0f, 0xb6, 0xe0, //0x0000a490 movzbl %al, %r12d - 0x41, 0x09, 0xcc, //0x0000a494 orl %ecx, %r12d - 0x49, 0x8d, 0x55, 0x06, //0x0000a497 leaq $6(%r13), %rdx - 0x49, 0x89, 0x17, //0x0000a49b movq %rdx, (%r15) - 0x41, 0x83, 0xfc, 0x7f, //0x0000a49e cmpl $127, %r12d - 0x0f, 0x86, 0x4c, 0x00, 0x00, 0x00, //0x0000a4a2 jbe LBB42_18 - 0x41, 0x81, 0xfc, 0xff, 0x07, 0x00, 0x00, //0x0000a4a8 cmpl $2047, %r12d - 0x0f, 0x86, 0x4c, 0x00, 0x00, 0x00, //0x0000a4af jbe LBB42_19 - 0x89, 0xc7, //0x0000a4b5 movl %eax, %edi - 0x81, 0xe7, 0x00, 0x00, 0xf8, 0x00, //0x0000a4b7 andl $16252928, %edi - 0x81, 0xff, 0x00, 0x00, 0xd8, 0x00, //0x0000a4bd cmpl $14155776, %edi - 0x0f, 0x84, 0x55, 0x00, 0x00, 0x00, //0x0000a4c3 je LBB42_20 - 0xc1, 0xe9, 0x0c, //0x0000a4c9 shrl $12, %ecx - 0x80, 0xc9, 0xe0, //0x0000a4cc orb $-32, %cl - 0x41, 0x88, 0x0e, //0x0000a4cf movb %cl, (%r14) - 0x41, 0xc1, 0xec, 0x06, //0x0000a4d2 shrl $6, %r12d - 0x41, 0x80, 0xe4, 0x3f, //0x0000a4d6 andb $63, %r12b - 0x41, 0x80, 0xcc, 0x80, //0x0000a4da orb $-128, %r12b - 0x45, 0x88, 0x66, 0x01, //0x0000a4de movb %r12b, $1(%r14) - 0x24, 0x3f, //0x0000a4e2 andb $63, %al - 0x0c, 0x80, //0x0000a4e4 orb $-128, %al - 0x41, 0x88, 0x46, 0x02, //0x0000a4e6 movb %al, $2(%r14) - 0xbb, 0x03, 0x00, 0x00, 0x00, //0x0000a4ea movl $3, %ebx - 0xe9, 0x5f, 0xff, 0xff, 0xff, //0x0000a4ef jmp LBB42_13 - //0x0000a4f4 LBB42_18 - 0x41, 0x88, 0x06, //0x0000a4f4 movb %al, (%r14) - 0xbb, 0x01, 0x00, 0x00, 0x00, //0x0000a4f7 movl $1, %ebx - 0xe9, 0x52, 0xff, 0xff, 0xff, //0x0000a4fc jmp LBB42_13 - //0x0000a501 LBB42_19 - 0x41, 0xc1, 0xec, 0x06, //0x0000a501 shrl $6, %r12d - 0x41, 0x80, 0xcc, 0xc0, //0x0000a505 orb $-64, %r12b - 0x45, 0x88, 0x26, //0x0000a509 movb %r12b, (%r14) - 0x24, 0x3f, //0x0000a50c andb $63, %al - 0x0c, 0x80, //0x0000a50e orb $-128, %al - 0x41, 0x88, 0x46, 0x01, //0x0000a510 movb %al, $1(%r14) - 0xbb, 0x02, 0x00, 0x00, 0x00, //0x0000a514 movl $2, %ebx - 0xe9, 0x35, 0xff, 0xff, 0xff, //0x0000a519 jmp LBB42_13 - //0x0000a51e LBB42_20 - 0x48, 0xc7, 0xc3, 0xfc, 0xff, 0xff, 0xff, //0x0000a51e movq $-4, %rbx - 0x48, 0x83, 0xfe, 0x06, //0x0000a525 cmpq $6, %rsi - 0x0f, 0x8c, 0x24, 0xff, 0xff, 0xff, //0x0000a529 jl LBB42_13 - 0x41, 0x81, 0xfc, 0xff, 0xdb, 0x00, 0x00, //0x0000a52f cmpl $56319, %r12d - 0x0f, 0x87, 0x17, 0xff, 0xff, 0xff, //0x0000a536 ja LBB42_13 - 0x80, 0x3a, 0x5c, //0x0000a53c cmpb $92, (%rdx) - 0x0f, 0x85, 0x0e, 0xff, 0xff, 0xff, //0x0000a53f jne LBB42_13 - 0x41, 0x80, 0x7d, 0x07, 0x75, //0x0000a545 cmpb $117, $7(%r13) - 0x0f, 0x85, 0x03, 0xff, 0xff, 0xff, //0x0000a54a jne LBB42_13 - 0x49, 0x8d, 0x7d, 0x08, //0x0000a550 leaq $8(%r13), %rdi - 0x48, 0x89, 0x7d, 0xd0, //0x0000a554 movq %rdi, $-48(%rbp) - 0xe8, 0x13, 0x87, 0xff, 0xff, //0x0000a558 callq _unhex16_is - 0x84, 0xc0, //0x0000a55d testb %al, %al - 0x0f, 0x84, 0x9a, 0x00, 0x00, 0x00, //0x0000a55f je LBB42_27 - 0x48, 0x8b, 0x45, 0xd0, //0x0000a565 movq $-48(%rbp), %rax - 0x8b, 0x08, //0x0000a569 movl (%rax), %ecx - 0x0f, 0xc9, //0x0000a56b bswapl %ecx - 0x89, 0xc8, //0x0000a56d movl %ecx, %eax - 0xc1, 0xe8, 0x04, //0x0000a56f shrl $4, %eax - 0xf7, 0xd0, //0x0000a572 notl %eax - 0x25, 0x01, 0x01, 0x01, 0x01, //0x0000a574 andl $16843009, %eax - 0x8d, 0x04, 0xc0, //0x0000a579 leal (%rax,%rax,8), %eax - 0x81, 0xe1, 0x0f, 0x0f, 0x0f, 0x0f, //0x0000a57c andl $252645135, %ecx - 0x01, 0xc1, //0x0000a582 addl %eax, %ecx - 0x89, 0xc8, //0x0000a584 movl %ecx, %eax - 0xc1, 0xe8, 0x04, //0x0000a586 shrl $4, %eax - 0x09, 0xc8, //0x0000a589 orl %ecx, %eax - 0x89, 0xc1, //0x0000a58b movl %eax, %ecx - 0x81, 0xe1, 0x00, 0x00, 0xfc, 0x00, //0x0000a58d andl $16515072, %ecx - 0x81, 0xf9, 0x00, 0x00, 0xdc, 0x00, //0x0000a593 cmpl $14417920, %ecx - 0x0f, 0x85, 0x6c, 0x00, 0x00, 0x00, //0x0000a599 jne LBB42_28 - 0x89, 0xc1, //0x0000a59f movl %eax, %ecx - 0xc1, 0xe9, 0x08, //0x0000a5a1 shrl $8, %ecx - 0x81, 0xe1, 0x00, 0xff, 0x00, 0x00, //0x0000a5a4 andl $65280, %ecx - 0x0f, 0xb6, 0xc0, //0x0000a5aa movzbl %al, %eax - 0x09, 0xc8, //0x0000a5ad orl %ecx, %eax - 0x41, 0xc1, 0xe4, 0x0a, //0x0000a5af shll $10, %r12d - 0x42, 0x8d, 0x0c, 0x20, //0x0000a5b3 leal (%rax,%r12), %ecx - 0x44, 0x01, 0xe0, //0x0000a5b7 addl %r12d, %eax - 0x05, 0x00, 0x24, 0xa0, 0xfc, //0x0000a5ba addl $-56613888, %eax - 0x89, 0xc2, //0x0000a5bf movl %eax, %edx - 0xc1, 0xea, 0x12, //0x0000a5c1 shrl $18, %edx - 0x80, 0xca, 0xf0, //0x0000a5c4 orb $-16, %dl - 0x41, 0x88, 0x16, //0x0000a5c7 movb %dl, (%r14) - 0x89, 0xc2, //0x0000a5ca movl %eax, %edx - 0xc1, 0xea, 0x0c, //0x0000a5cc shrl $12, %edx - 0x80, 0xe2, 0x3f, //0x0000a5cf andb $63, %dl - 0x80, 0xca, 0x80, //0x0000a5d2 orb $-128, %dl - 0x41, 0x88, 0x56, 0x01, //0x0000a5d5 movb %dl, $1(%r14) - 0xc1, 0xe8, 0x06, //0x0000a5d9 shrl $6, %eax - 0x24, 0x3f, //0x0000a5dc andb $63, %al - 0x0c, 0x80, //0x0000a5de orb $-128, %al - 0x41, 0x88, 0x46, 0x02, //0x0000a5e0 movb %al, $2(%r14) - 0x80, 0xe1, 0x3f, //0x0000a5e4 andb $63, %cl - 0x80, 0xc9, 0x80, //0x0000a5e7 orb $-128, %cl - 0x41, 0x88, 0x4e, 0x03, //0x0000a5ea movb %cl, $3(%r14) - 0x49, 0x83, 0xc5, 0x0c, //0x0000a5ee addq $12, %r13 - 0x4d, 0x89, 0x2f, //0x0000a5f2 movq %r13, (%r15) - 0xbb, 0x04, 0x00, 0x00, 0x00, //0x0000a5f5 movl $4, %ebx - 0xe9, 0x54, 0xfe, 0xff, 0xff, //0x0000a5fa jmp LBB42_13 - //0x0000a5ff LBB42_27 - 0x48, 0x8b, 0x45, 0xd0, //0x0000a5ff movq $-48(%rbp), %rax - 0x49, 0x89, 0x07, //0x0000a603 movq %rax, (%r15) - 0xe9, 0x41, 0xfe, 0xff, 0xff, //0x0000a606 jmp LBB42_12 - //0x0000a60b LBB42_28 - 0x48, 0x8b, 0x45, 0xd0, //0x0000a60b movq $-48(%rbp), %rax - 0x49, 0x89, 0x07, //0x0000a60f movq %rax, (%r15) - 0xe9, 0x3c, 0xfe, 0xff, 0xff, //0x0000a612 jmp LBB42_13 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000a617 .p2align 4, 0x00 - //0x0000a620 _POW10_M128_TAB - 0x53, 0xe4, 0x60, 0xcd, 0x69, 0xc8, 0x32, 0x17, //0x0000a620 .quad 1671618768450675795 - 0x88, 0x02, 0x1c, 0x08, 0xa0, 0xd5, 0x8f, 0xfa, //0x0000a628 .quad -391859759250406776 - 0xb4, 0x8e, 0x5c, 0x20, 0x42, 0xbd, 0x7f, 0x0e, //0x0000a630 .quad 1044761730281672372 - 0x95, 0x81, 0x11, 0x05, 0x84, 0xe5, 0x99, 0x9c, //0x0000a638 .quad -7162441377172586091 - 0x61, 0xb2, 0x73, 0xa8, 0x92, 0xac, 0x1f, 0x52, //0x0000a640 .quad 5917638181279478369 - 0xfa, 0xe1, 0x55, 0x06, 0xe5, 0x5e, 0xc0, 0xc3, //0x0000a648 .quad -4341365703038344710 - 0xf9, 0x9e, 0x90, 0x52, 0xb7, 0x97, 0xa7, 0xe6, //0x0000a650 .quad -1826324310255427847 - 0x78, 0x5a, 0xeb, 0x47, 0x9e, 0x76, 0xb0, 0xf4, //0x0000a658 .quad -815021110370542984 - 0x5c, 0x63, 0x9a, 0x93, 0xd2, 0xbe, 0x28, 0x90, //0x0000a660 .quad -8058981721550724260 - 0x8b, 0x18, 0xf3, 0xec, 0x22, 0x4a, 0xee, 0x98, //0x0000a668 .quad -7426917221622671221 - 0x33, 0xfc, 0x80, 0x38, 0x87, 0xee, 0x32, 0x74, //0x0000a670 .quad 8373016921771146291 - 0xae, 0xde, 0x2f, 0xa8, 0xab, 0xdc, 0x29, 0xbf, //0x0000a678 .quad -4671960508600951122 - 0x3f, 0x3b, 0xa1, 0x06, 0x29, 0xaa, 0x3f, 0x11, //0x0000a680 .quad 1242899115359157055 - 0x5a, 0xd6, 0x3b, 0x92, 0xd6, 0x53, 0xf4, 0xee, //0x0000a688 .quad -1228264617323800998 - 0x07, 0xc5, 0x24, 0xa4, 0x59, 0xca, 0xc7, 0x4a, //0x0000a690 .quad 5388497965526861063 - 0xf8, 0x65, 0x65, 0x1b, 0x66, 0xb4, 0x58, 0x95, //0x0000a698 .quad -7685194413468457480 - 0x49, 0xf6, 0x2d, 0x0d, 0xf0, 0xbc, 0x79, 0x5d, //0x0000a6a0 .quad 6735622456908576329 - 0x76, 0xbf, 0x3e, 0xa2, 0x7f, 0xe1, 0xae, 0xba, //0x0000a6a8 .quad -4994806998408183946 - 0xdc, 0x73, 0x79, 0x10, 0x2c, 0x2c, 0xd8, 0xf4, //0x0000a6b0 .quad -803843965719055396 - 0x53, 0x6f, 0xce, 0x8a, 0xdf, 0x99, 0x5a, 0xe9, //0x0000a6b8 .quad -1631822729582842029 - 0x69, 0xe8, 0x4b, 0x8a, 0x9b, 0x1b, 0x07, 0x79, //0x0000a6c0 .quad 8720969558280366185 - 0x94, 0x05, 0xc1, 0xb6, 0x2b, 0xa0, 0xd8, 0x91, //0x0000a6c8 .quad -7937418233630358124 - 0x84, 0xe2, 0xde, 0x6c, 0x82, 0xe2, 0x48, 0x97, //0x0000a6d0 .quad -7545532125859093884 - 0xf9, 0x46, 0x71, 0xa4, 0x36, 0xc8, 0x4e, 0xb6, //0x0000a6d8 .quad -5310086773610559751 - 0x25, 0x9b, 0x16, 0x08, 0x23, 0x1b, 0x1b, 0xfd, //0x0000a6e0 .quad -208543120469091547 - 0xb7, 0x98, 0x8d, 0x4d, 0x44, 0x7a, 0xe2, 0xe3, //0x0000a6e8 .quad -2025922448585811785 - 0xf7, 0x20, 0x0e, 0xe5, 0xf5, 0xf0, 0x30, 0xfe, //0x0000a6f0 .quad -130339450293182217 - 0x72, 0x7f, 0x78, 0xb0, 0x6a, 0x8c, 0x6d, 0x8e, //0x0000a6f8 .quad -8183730558007214222 - 0x35, 0xa9, 0x51, 0x5e, 0x33, 0x2d, 0xbd, 0xbd, //0x0000a700 .quad -4774610331293865675 - 0x4f, 0x9f, 0x96, 0x5c, 0x85, 0xef, 0x08, 0xb2, //0x0000a708 .quad -5617977179081629873 - 0x82, 0x13, 0xe6, 0x35, 0x80, 0x78, 0x2c, 0xad, //0x0000a710 .quad -5968262914117332094 - 0x23, 0x47, 0xbc, 0xb3, 0x66, 0x2b, 0x8b, 0xde, //0x0000a718 .quad -2410785455424649437 - 0x31, 0xcc, 0xaf, 0x21, 0x50, 0xcb, 0x3b, 0x4c, //0x0000a720 .quad 5493207715531443249 - 0x76, 0xac, 0x55, 0x30, 0x20, 0xfb, 0x16, 0x8b, //0x0000a728 .quad -8424269937281487754 - 0x3d, 0xbf, 0x1b, 0x2a, 0x24, 0xbe, 0x4a, 0xdf, //0x0000a730 .quad -2356862392440471747 - 0x93, 0x17, 0x6b, 0x3c, 0xe8, 0xb9, 0xdc, 0xad, //0x0000a738 .quad -5918651403174471789 - 0x0d, 0xaf, 0xa2, 0x34, 0xad, 0x6d, 0x1d, 0xd7, //0x0000a740 .quad -2946077990550589683 - 0x78, 0xdd, 0x85, 0x4b, 0x62, 0xe8, 0x53, 0xd9, //0x0000a748 .quad -2786628235540701832 - 0x68, 0xad, 0xe5, 0x40, 0x8c, 0x64, 0x72, 0x86, //0x0000a750 .quad -8758827771735200408 - 0x6b, 0xaa, 0x33, 0x6f, 0x3d, 0x71, 0xd4, 0x87, //0x0000a758 .quad -8659171674854020501 - 0xc2, 0x18, 0x1f, 0x51, 0xaf, 0xfd, 0x0e, 0x68, //0x0000a760 .quad 7498209359040551106 - 0x06, 0x95, 0x00, 0xcb, 0x8c, 0x8d, 0xc9, 0xa9, //0x0000a768 .quad -6212278575140137722 - 0xf2, 0xde, 0x66, 0x25, 0x1b, 0xbd, 0x12, 0x02, //0x0000a770 .quad 149389661945913074 - 0x48, 0xba, 0xc0, 0xfd, 0xef, 0xf0, 0x3b, 0xd4, //0x0000a778 .quad -3153662200497784248 - 0x57, 0x4b, 0x60, 0xf7, 0x30, 0xb6, 0x4b, 0x01, //0x0000a780 .quad 93368538716195671 - 0x6d, 0x74, 0x98, 0xfe, 0x95, 0x76, 0xa5, 0x84, //0x0000a788 .quad -8888567902952197011 - 0x2d, 0x5e, 0x38, 0x35, 0xbd, 0xa3, 0x9e, 0x41, //0x0000a790 .quad 4728396691822632493 - 0x88, 0x91, 0x3e, 0x7e, 0x3b, 0xd4, 0xce, 0xa5, //0x0000a798 .quad -6499023860262858360 - 0xb9, 0x75, 0x86, 0x82, 0xac, 0x4c, 0x06, 0x52, //0x0000a7a0 .quad 5910495864778290617 - 0xea, 0x35, 0xce, 0x5d, 0x4a, 0x89, 0x42, 0xcf, //0x0000a7a8 .quad -3512093806901185046 - 0x93, 0x09, 0x94, 0xd1, 0xeb, 0xef, 0x43, 0x73, //0x0000a7b0 .quad 8305745933913819539 - 0xb2, 0xe1, 0xa0, 0x7a, 0xce, 0x95, 0x89, 0x81, //0x0000a7b8 .quad -9112587656954322510 - 0xf8, 0x0b, 0xf9, 0xc5, 0xe6, 0xeb, 0x14, 0x10, //0x0000a7c0 .quad 1158810380537498616 - 0x1f, 0x1a, 0x49, 0x19, 0x42, 0xfb, 0xeb, 0xa1, //0x0000a7c8 .quad -6779048552765515233 - 0xf6, 0x4e, 0x77, 0x77, 0xe0, 0x26, 0x1a, 0xd4, //0x0000a7d0 .quad -3163173042755514634 - 0xa6, 0x60, 0x9b, 0x9f, 0x12, 0xfa, 0x66, 0xca, //0x0000a7d8 .quad -3862124672529506138 - 0xb4, 0x22, 0x55, 0x95, 0x98, 0xb0, 0x20, 0x89, //0x0000a7e0 .quad -8565652321871781196 - 0xd0, 0x38, 0x82, 0x47, 0x97, 0xb8, 0x00, 0xfd, //0x0000a7e8 .quad -215969822234494768 - 0xb0, 0x35, 0x55, 0x5d, 0x5f, 0x6e, 0xb4, 0x55, //0x0000a7f0 .quad 6175682344898606512 - 0x82, 0x63, 0xb1, 0x8c, 0x5e, 0x73, 0x20, 0x9e, //0x0000a7f8 .quad -7052510166537641086 - 0x1d, 0x83, 0xaa, 0x34, 0xf7, 0x89, 0x21, 0xeb, //0x0000a800 .quad -1503769105731517667 - 0x62, 0xbc, 0xdd, 0x2f, 0x36, 0x90, 0xa8, 0xc5, //0x0000a808 .quad -4203951689744663454 - 0xe4, 0x23, 0xd5, 0x01, 0x75, 0xec, 0xe9, 0xa5, //0x0000a810 .quad -6491397400591784988 - 0x7b, 0x2b, 0xd5, 0xbb, 0x43, 0xb4, 0x12, 0xf7, //0x0000a818 .quad -643253593753441413 - 0x6e, 0x36, 0x25, 0x21, 0xc9, 0x33, 0xb2, 0x47, //0x0000a820 .quad 5166248661484910190 - 0x2d, 0x3b, 0x65, 0x55, 0xaa, 0xb0, 0x6b, 0x9a, //0x0000a828 .quad -7319562523736982739 - 0x0a, 0x84, 0x6e, 0x69, 0xbb, 0xc0, 0x9e, 0x99, //0x0000a830 .quad -7377247228426025974 - 0xf8, 0x89, 0xbe, 0xea, 0xd4, 0x9c, 0x06, 0xc1, //0x0000a838 .quad -4537767136243840520 - 0x0d, 0x25, 0xca, 0x43, 0xea, 0x70, 0x06, 0xc0, //0x0000a840 .quad -4609873017105144563 - 0x76, 0x2c, 0x6e, 0x25, 0x0a, 0x44, 0x48, 0xf1, //0x0000a848 .quad -1060522901877412746 - 0x28, 0x57, 0x5e, 0x6a, 0x92, 0x06, 0x04, 0x38, //0x0000a850 .quad 4036358391950366504 - 0xca, 0xdb, 0x64, 0x57, 0x86, 0x2a, 0xcd, 0x96, //0x0000a858 .quad -7580355841314464822 - 0xf2, 0xec, 0xf5, 0x04, 0x37, 0x08, 0x05, 0xc6, //0x0000a860 .quad -4177924046916817678 - 0xbc, 0x12, 0x3e, 0xed, 0x27, 0x75, 0x80, 0xbc, //0x0000a868 .quad -4863758783215693124 - 0x2e, 0x68, 0x33, 0xc6, 0x44, 0x4a, 0x86, 0xf7, //0x0000a870 .quad -610719040218634194 - 0x6b, 0x97, 0x8d, 0xe8, 0x71, 0x92, 0xa0, 0xeb, //0x0000a878 .quad -1468012460592228501 - 0x1d, 0x21, 0xe0, 0xfb, 0x6a, 0xee, 0xb3, 0x7a, //0x0000a880 .quad 8841672636718129437 - 0xa3, 0x7e, 0x58, 0x31, 0x87, 0x5b, 0x44, 0x93, //0x0000a888 .quad -7835036815511224669 - 0x64, 0x29, 0xd8, 0xba, 0x05, 0xea, 0x60, 0x59, //0x0000a890 .quad 6440404777470273892 - 0x4c, 0x9e, 0xae, 0xfd, 0x68, 0x72, 0x15, 0xb8, //0x0000a898 .quad -5182110000961642932 - 0xbd, 0x33, 0x8e, 0x29, 0x87, 0x24, 0xb9, 0x6f, //0x0000a8a0 .quad 8050505971837842365 - 0xdf, 0x45, 0x1a, 0x3d, 0x03, 0xcf, 0x1a, 0xe6, //0x0000a8a8 .quad -1865951482774665761 - 0x56, 0xe0, 0xf8, 0x79, 0xd4, 0xb6, 0xd3, 0xa5, //0x0000a8b0 .quad -6497648813669818282 - 0xab, 0x6b, 0x30, 0x06, 0x62, 0xc1, 0xd0, 0x8f, //0x0000a8b8 .quad -8083748704375247957 - 0x6c, 0x18, 0x77, 0x98, 0x89, 0xa4, 0x48, 0x8f, //0x0000a8c0 .quad -8122061017087272852 - 0x96, 0x86, 0xbc, 0x87, 0xba, 0xf1, 0xc4, 0xb3, //0x0000a8c8 .quad -5492999862041672042 - 0x87, 0xde, 0x94, 0xfe, 0xab, 0xcd, 0x1a, 0x33, //0x0000a8d0 .quad 3682481783923072647 - 0x3c, 0xa8, 0xab, 0x29, 0x29, 0x2e, 0xb6, 0xe0, //0x0000a8d8 .quad -2254563809124702148 - 0x14, 0x0b, 0x1d, 0x7f, 0x8b, 0xc0, 0xf0, 0x9f, //0x0000a8e0 .quad -6921820921902855404 - 0x25, 0x49, 0x0b, 0xba, 0xd9, 0xdc, 0x71, 0x8c, //0x0000a8e8 .quad -8326631408344020699 - 0xd9, 0x4d, 0xe4, 0x5e, 0xae, 0xf0, 0xec, 0x07, //0x0000a8f0 .quad 571095884476206553 - 0x6f, 0x1b, 0x8e, 0x28, 0x10, 0x54, 0x8e, 0xaf, //0x0000a8f8 .quad -5796603242002637969 - 0x50, 0x61, 0x9d, 0xf6, 0xd9, 0x2c, 0xe8, 0xc9, //0x0000a900 .quad -3897816162832129712 - 0x4a, 0xa2, 0xb1, 0x32, 0x14, 0xe9, 0x71, 0xdb, //0x0000a908 .quad -2634068034075909558 - 0xd2, 0x5c, 0x22, 0x3a, 0x08, 0x1c, 0x31, 0xbe, //0x0000a910 .quad -4741978110983775022 - 0x6e, 0x05, 0xaf, 0x9f, 0xac, 0x31, 0x27, 0x89, //0x0000a918 .quad -8563821548938525330 - 0x06, 0xf4, 0xaa, 0x48, 0x0a, 0x63, 0xbd, 0x6d, //0x0000a920 .quad 7907585416552444934 - 0xca, 0xc6, 0x9a, 0xc7, 0x17, 0xfe, 0x70, 0xab, //0x0000a928 .quad -6093090917745768758 - 0x08, 0xb1, 0xd5, 0xda, 0xcc, 0xbb, 0x2c, 0x09, //0x0000a930 .quad 661109733835780360 - 0x7d, 0x78, 0x81, 0xb9, 0x9d, 0x3d, 0x4d, 0xd6, //0x0000a938 .quad -3004677628754823043 - 0xa5, 0x8e, 0xc5, 0x08, 0x60, 0xf5, 0xbb, 0x25, //0x0000a940 .quad 2719036592861056677 - 0x4e, 0xeb, 0xf0, 0x93, 0x82, 0x46, 0xf0, 0x85, //0x0000a948 .quad -8795452545612846258 - 0x4e, 0xf2, 0xf6, 0x0a, 0xb8, 0xf2, 0x2a, 0xaf, //0x0000a950 .quad -5824576295778454962 - 0x21, 0x26, 0xed, 0x38, 0x23, 0x58, 0x6c, 0xa7, //0x0000a958 .quad -6382629663588669919 - 0xe1, 0xae, 0xb4, 0x0d, 0x66, 0xaf, 0xf5, 0x1a, //0x0000a960 .quad 1942651667131707105 - 0xaa, 0x6f, 0x28, 0x07, 0x2c, 0x6e, 0x47, 0xd1, //0x0000a968 .quad -3366601061058449494 - 0x4d, 0xed, 0x90, 0xc8, 0x9f, 0x8d, 0xd9, 0x50, //0x0000a970 .quad 5825843310384704845 - 0xca, 0x45, 0x79, 0x84, 0xdb, 0xa4, 0xcc, 0x82, //0x0000a978 .quad -9021654690802612790 - 0xa0, 0x28, 0xb5, 0xba, 0x07, 0xf1, 0x0f, 0xe5, //0x0000a980 .quad -1941067898873894752 - 0x3c, 0x97, 0x97, 0x65, 0x12, 0xce, 0x7f, 0xa3, //0x0000a988 .quad -6665382345075878084 - 0xc8, 0x72, 0x62, 0xa9, 0x49, 0xed, 0x53, 0x1e, //0x0000a990 .quad 2185351144835019464 - 0x0c, 0x7d, 0xfd, 0xfe, 0x96, 0xc1, 0x5f, 0xcc, //0x0000a998 .quad -3720041912917459700 - 0x7a, 0x0f, 0xbb, 0x13, 0x9c, 0xe8, 0xe8, 0x25, //0x0000a9a0 .quad 2731688931043774330 - 0x4f, 0xdc, 0xbc, 0xbe, 0xfc, 0xb1, 0x77, 0xff, //0x0000a9a8 .quad -38366372719436721 - 0xac, 0xe9, 0x54, 0x8c, 0x61, 0x91, 0xb1, 0x77, //0x0000a9b0 .quad 8624834609543440812 - 0xb1, 0x09, 0x36, 0xf7, 0x3d, 0xcf, 0xaa, 0x9f, //0x0000a9b8 .quad -6941508010590729807 - 0x17, 0x24, 0x6a, 0xef, 0xb9, 0xf5, 0x9d, 0xd5, //0x0000a9c0 .quad -3054014793352862697 - 0x1d, 0x8c, 0x03, 0x75, 0x0d, 0x83, 0x95, 0xc7, //0x0000a9c8 .quad -4065198994811024355 - 0x1d, 0xad, 0x44, 0x6b, 0x28, 0x73, 0x05, 0x4b, //0x0000a9d0 .quad 5405853545163697437 - 0x25, 0x6f, 0x44, 0xd2, 0xd0, 0xe3, 0x7a, 0xf9, //0x0000a9d8 .quad -469812725086392539 - 0x32, 0xec, 0x0a, 0x43, 0xf9, 0x67, 0xe3, 0x4e, //0x0000a9e0 .quad 5684501474941004850 - 0x77, 0xc5, 0x6a, 0x83, 0x62, 0xce, 0xec, 0x9b, //0x0000a9e8 .quad -7211161980820077193 - 0x3f, 0xa7, 0xcd, 0x93, 0xf7, 0x41, 0x9c, 0x22, //0x0000a9f0 .quad 2493940825248868159 - 0xd5, 0x76, 0x45, 0x24, 0xfb, 0x01, 0xe8, 0xc2, //0x0000a9f8 .quad -4402266457597708587 - 0x0f, 0x11, 0xc1, 0x78, 0x75, 0x52, 0x43, 0x6b, //0x0000aa00 .quad 7729112049988473103 - 0x8a, 0xd4, 0x56, 0xed, 0x79, 0x02, 0xa2, 0xf3, //0x0000aa08 .quad -891147053569747830 - 0xa9, 0xaa, 0x78, 0x6b, 0x89, 0x13, 0x0a, 0x83, //0x0000aa10 .quad -9004363024039368023 - 0xd6, 0x44, 0x56, 0x34, 0x8c, 0x41, 0x45, 0x98, //0x0000aa18 .quad -7474495936122174250 - 0x53, 0xd5, 0x56, 0xc6, 0x6b, 0x98, 0xcc, 0x23, //0x0000aa20 .quad 2579604275232953683 - 0x0c, 0xd6, 0x6b, 0x41, 0xef, 0x91, 0x56, 0xbe, //0x0000aa28 .quad -4731433901725329908 - 0xa8, 0x8a, 0xec, 0xb7, 0x86, 0xbe, 0xbf, 0x2c, //0x0000aa30 .quad 3224505344041192104 - 0x8f, 0xcb, 0xc6, 0x11, 0x6b, 0x36, 0xec, 0xed, //0x0000aa38 .quad -1302606358729274481 - 0xa9, 0xd6, 0xf3, 0x32, 0x14, 0xd7, 0xf7, 0x7b, //0x0000aa40 .quad 8932844867666826921 - 0x39, 0x3f, 0x1c, 0xeb, 0x02, 0xa2, 0xb3, 0x94, //0x0000aa48 .quad -7731658001846878407 - 0x53, 0xcc, 0xb0, 0x3f, 0xd9, 0xcc, 0xf5, 0xda, //0x0000aa50 .quad -2669001970698630061 - 0x07, 0x4f, 0xe3, 0xa5, 0x83, 0x8a, 0xe0, 0xb9, //0x0000aa58 .quad -5052886483881210105 - 0x68, 0xff, 0x9c, 0x8f, 0x0f, 0x40, 0xb3, 0xd1, //0x0000aa60 .quad -3336252463373287576 - 0xc9, 0x22, 0x5c, 0x8f, 0x24, 0xad, 0x58, 0xe8, //0x0000aa68 .quad -1704422086424124727 - 0xa1, 0x1f, 0xc2, 0xb9, 0x09, 0x08, 0x10, 0x23, //0x0000aa70 .quad 2526528228819083169 - 0xbe, 0x95, 0x99, 0xd9, 0x36, 0x6c, 0x37, 0x91, //0x0000aa78 .quad -7982792831656159810 - 0x8a, 0xa7, 0x32, 0x28, 0x0c, 0x0a, 0xd4, 0xab, //0x0000aa80 .quad -6065211750830921846 - 0x2d, 0xfb, 0xff, 0x8f, 0x44, 0x47, 0x85, 0xb5, //0x0000aa88 .quad -5366805021142811859 - 0x6c, 0x51, 0x3f, 0x32, 0x8f, 0x0c, 0xc9, 0x16, //0x0000aa90 .quad 1641857348316123500 - 0xf9, 0xf9, 0xff, 0xb3, 0x15, 0x99, 0xe6, 0xe2, //0x0000aa98 .quad -2096820258001126919 - 0xe3, 0x92, 0x67, 0x7f, 0xd9, 0xa7, 0x3d, 0xae, //0x0000aaa0 .quad -5891368184943504669 - 0x3b, 0xfc, 0x7f, 0x90, 0xad, 0x1f, 0xd0, 0x8d, //0x0000aaa8 .quad -8228041688891786181 - 0x9c, 0x77, 0x41, 0xdf, 0xcf, 0x11, 0xcd, 0x99, //0x0000aab0 .quad -7364210231179380836 - 0x4a, 0xfb, 0x9f, 0xf4, 0x98, 0x27, 0x44, 0xb1, //0x0000aab8 .quad -5673366092687344822 - 0x83, 0xd5, 0x11, 0xd7, 0x43, 0x56, 0x40, 0x40, //0x0000aac0 .quad 4629795266307937667 - 0x1d, 0xfa, 0xc7, 0x31, 0x7f, 0x31, 0x95, 0xdd, //0x0000aac8 .quad -2480021597431793123 - 0x72, 0x25, 0x6b, 0x66, 0xea, 0x35, 0x28, 0x48, //0x0000aad0 .quad 5199465050656154994 - 0x52, 0xfc, 0x1c, 0x7f, 0xef, 0x3e, 0x7d, 0x8a, //0x0000aad8 .quad -8467542526035952558 - 0xcf, 0xee, 0x05, 0x00, 0x65, 0x43, 0x32, 0xda, //0x0000aae0 .quad -2724040723534582065 - 0x66, 0x3b, 0xe4, 0x5e, 0xab, 0x8e, 0x1c, 0xad, //0x0000aae8 .quad -5972742139117552794 - 0x82, 0x6a, 0x07, 0x40, 0x3e, 0xd4, 0xbe, 0x90, //0x0000aaf0 .quad -8016736922845615486 - 0x40, 0x4a, 0x9d, 0x36, 0x56, 0xb2, 0x63, 0xd8, //0x0000aaf8 .quad -2854241655469553088 - 0x91, 0xa2, 0x04, 0xe8, 0xa6, 0x44, 0x77, 0x5a, //0x0000ab00 .quad 6518754469289960081 - 0x68, 0x4e, 0x22, 0xe2, 0x75, 0x4f, 0x3e, 0x87, //0x0000ab08 .quad -8701430062309552536 - 0x36, 0xcb, 0x05, 0xa2, 0xd0, 0x15, 0x15, 0x71, //0x0000ab10 .quad 8148443086612450102 - 0x02, 0xe2, 0xaa, 0x5a, 0x53, 0xe3, 0x0d, 0xa9, //0x0000ab18 .quad -6265101559459552766 - 0x03, 0x3e, 0x87, 0xca, 0x44, 0x5b, 0x5a, 0x0d, //0x0000ab20 .quad 962181821410786819 - 0x83, 0x9a, 0x55, 0x31, 0x28, 0x5c, 0x51, 0xd3, //0x0000ab28 .quad -3219690930897053053 - 0xc2, 0x86, 0x94, 0xfe, 0x0a, 0x79, 0x58, 0xe8, //0x0000ab30 .quad -1704479370831952190 - 0x91, 0x80, 0xd5, 0x1e, 0x99, 0xd9, 0x12, 0x84, //0x0000ab38 .quad -8929835859451740015 - 0x72, 0xa8, 0x39, 0xbe, 0x4d, 0x97, 0x6e, 0x62, //0x0000ab40 .quad 7092772823314835570 - 0xb6, 0xe0, 0x8a, 0x66, 0xff, 0x8f, 0x17, 0xa5, //0x0000ab48 .quad -6550608805887287114 - 0x8f, 0x12, 0xc8, 0x2d, 0x21, 0x3d, 0x0a, 0xfb, //0x0000ab50 .quad -357406007711231345 - 0xe3, 0x98, 0x2d, 0x40, 0xff, 0x73, 0x5d, 0xce, //0x0000ab58 .quad -3576574988931720989 - 0x99, 0x0b, 0x9d, 0xbc, 0x34, 0x66, 0xe6, 0x7c, //0x0000ab60 .quad 8999993282035256217 - 0x8e, 0x7f, 0x1c, 0x88, 0x7f, 0x68, 0xfa, 0x80, //0x0000ab68 .quad -9152888395723407474 - 0x80, 0x4e, 0xc4, 0xeb, 0xc1, 0xff, 0x1f, 0x1c, //0x0000ab70 .quad 2026619565689294464 - 0x72, 0x9f, 0x23, 0x6a, 0x9f, 0x02, 0x39, 0xa1, //0x0000ab78 .quad -6829424476226871438 - 0x20, 0x62, 0xb5, 0x66, 0xb2, 0xff, 0x27, 0xa3, //0x0000ab80 .quad -6690097579743157728 - 0x4e, 0x87, 0xac, 0x44, 0x47, 0x43, 0x87, 0xc9, //0x0000ab88 .quad -3925094576856201394 - 0xa8, 0xba, 0x62, 0x00, 0x9f, 0xff, 0xf1, 0x4b, //0x0000ab90 .quad 5472436080603216552 - 0x22, 0xa9, 0xd7, 0x15, 0x19, 0x14, 0xe9, 0xfb, //0x0000ab98 .quad -294682202642863838 - 0xa9, 0xb4, 0x3d, 0x60, 0xc3, 0x3f, 0x77, 0x6f, //0x0000aba0 .quad 8031958568804398249 - 0xb5, 0xc9, 0xa6, 0xad, 0x8f, 0xac, 0x71, 0x9d, //0x0000aba8 .quad -7101705404292871755 - 0xd3, 0x21, 0x4d, 0x38, 0xb4, 0x0f, 0x55, 0xcb, //0x0000abb0 .quad -3795109844276665901 - 0x22, 0x7c, 0x10, 0x99, 0xb3, 0x17, 0xce, 0xc4, //0x0000abb8 .quad -4265445736938701790 - 0x48, 0x6a, 0x60, 0x46, 0xa1, 0x53, 0x2a, 0x7e, //0x0000abc0 .quad 9091170749936331336 - 0x2b, 0x9b, 0x54, 0x7f, 0xa0, 0x9d, 0x01, 0xf6, //0x0000abc8 .quad -720121152745989333 - 0x6d, 0x42, 0xfc, 0xcb, 0x44, 0x74, 0xda, 0x2e, //0x0000abd0 .quad 3376138709496513133 - 0xfb, 0xe0, 0x94, 0x4f, 0x84, 0x02, 0xc1, 0x99, //0x0000abd8 .quad -7367604748107325189 - 0x08, 0x53, 0xfb, 0xfe, 0x55, 0x11, 0x91, 0xfa, //0x0000abe0 .quad -391512631556746488 - 0x39, 0x19, 0x7a, 0x63, 0x25, 0x43, 0x31, 0xc0, //0x0000abe8 .quad -4597819916706768583 - 0xca, 0x27, 0xba, 0x7e, 0xab, 0x55, 0x35, 0x79, //0x0000abf0 .quad 8733981247408842698 - 0x88, 0x9f, 0x58, 0xbc, 0xee, 0x93, 0x3d, 0xf0, //0x0000abf8 .quad -1135588877456072824 - 0xde, 0x58, 0x34, 0x2f, 0x8b, 0x55, 0xc1, 0x4b, //0x0000ac00 .quad 5458738279630526686 - 0xb5, 0x63, 0xb7, 0x35, 0x75, 0x7c, 0x26, 0x96, //0x0000ac08 .quad -7627272076051127371 - 0x16, 0x6f, 0x01, 0xfb, 0xed, 0xaa, 0xb1, 0x9e, //0x0000ac10 .quad -7011635205744005354 - 0xa2, 0x3c, 0x25, 0x83, 0x92, 0x1b, 0xb0, 0xbb, //0x0000ac18 .quad -4922404076636521310 - 0xdc, 0xca, 0xc1, 0x79, 0xa9, 0x15, 0x5e, 0x46, //0x0000ac20 .quad 5070514048102157020 - 0xcb, 0x8b, 0xee, 0x23, 0x77, 0x22, 0x9c, 0xea, //0x0000ac28 .quad -1541319077368263733 - 0xc9, 0x1e, 0x19, 0xec, 0x89, 0xcd, 0xfa, 0x0b, //0x0000ac30 .quad 863228270850154185 - 0x5f, 0x17, 0x75, 0x76, 0x8a, 0x95, 0xa1, 0x92, //0x0000ac38 .quad -7880853450996246689 - 0x7b, 0x66, 0x1f, 0x67, 0xec, 0x80, 0xf9, 0xce, //0x0000ac40 .quad -3532650679864695173 - 0x36, 0x5d, 0x12, 0x14, 0xed, 0xfa, 0x49, 0xb7, //0x0000ac48 .quad -5239380795317920458 - 0x1a, 0x40, 0xe7, 0x80, 0x27, 0xe1, 0xb7, 0x82, //0x0000ac50 .quad -9027499368258256870 - 0x84, 0xf4, 0x16, 0x59, 0xa8, 0x79, 0x1c, 0xe5, //0x0000ac58 .quad -1937539975720012668 - 0x10, 0x88, 0x90, 0xb0, 0xb8, 0xec, 0xb2, 0xd1, //0x0000ac60 .quad -3336344095947716592 - 0xd2, 0x58, 0xae, 0x37, 0x09, 0xcc, 0x31, 0x8f, //0x0000ac68 .quad -8128491512466089774 - 0x15, 0xaa, 0xb4, 0xdc, 0xe6, 0xa7, 0x1f, 0x86, //0x0000ac70 .quad -8782116138362033643 - 0x07, 0xef, 0x99, 0x85, 0x0b, 0x3f, 0xfe, 0xb2, //0x0000ac78 .quad -5548928372155224313 - 0x9a, 0xd4, 0xe1, 0x93, 0xe0, 0x91, 0xa7, 0x67, //0x0000ac80 .quad 7469098900757009562 - 0xc9, 0x6a, 0x00, 0x67, 0xce, 0xce, 0xbd, 0xdf, //0x0000ac88 .quad -2324474446766642487 - 0xe0, 0x24, 0x6d, 0x5c, 0x2c, 0xbb, 0xc8, 0xe0, //0x0000ac90 .quad -2249342214667950880 - 0xbd, 0x42, 0x60, 0x00, 0x41, 0xa1, 0xd6, 0x8b, //0x0000ac98 .quad -8370325556870233411 - 0x18, 0x6e, 0x88, 0x73, 0xf7, 0xe9, 0xfa, 0x58, //0x0000aca0 .quad 6411694268519837208 - 0x6d, 0x53, 0x78, 0x40, 0x91, 0x49, 0xcc, 0xae, //0x0000aca8 .quad -5851220927660403859 - 0x9e, 0x89, 0x6a, 0x50, 0x75, 0xa4, 0x39, 0xaf, //0x0000acb0 .quad -5820440219632367202 - 0x48, 0x68, 0x96, 0x90, 0xf5, 0x5b, 0x7f, 0xda, //0x0000acb8 .quad -2702340141148116920 - 0x03, 0x96, 0x42, 0x52, 0xc9, 0x06, 0x84, 0x6d, //0x0000acc0 .quad 7891439908798240259 - 0x2d, 0x01, 0x5e, 0x7a, 0x79, 0x99, 0x8f, 0x88, //0x0000acc8 .quad -8606491615858654931 - 0x83, 0x3b, 0xd3, 0xa6, 0x7b, 0x08, 0xe5, 0xc8, //0x0000acd0 .quad -3970758169284363389 - 0x78, 0x81, 0xf5, 0xd8, 0xd7, 0x7f, 0xb3, 0xaa, //0x0000acd8 .quad -6146428501395930760 - 0x64, 0x0a, 0x88, 0x90, 0x9a, 0x4a, 0x1e, 0xfb, //0x0000ace0 .quad -351761693178066332 - 0xd6, 0xe1, 0x32, 0xcf, 0xcd, 0x5f, 0x60, 0xd5, //0x0000ace8 .quad -3071349608317525546 - 0x7f, 0x06, 0x55, 0x9a, 0xa0, 0xee, 0xf2, 0x5c, //0x0000acf0 .quad 6697677969404790399 - 0x26, 0xcd, 0x7f, 0xa1, 0xe0, 0x3b, 0x5c, 0x85, //0x0000acf8 .quad -8837122532839535322 - 0x1e, 0x48, 0xea, 0xc0, 0x48, 0xaa, 0x2f, 0xf4, //0x0000ad00 .quad -851274575098787810 - 0x6f, 0xc0, 0xdf, 0xc9, 0xd8, 0x4a, 0xb3, 0xa6, //0x0000ad08 .quad -6434717147622031249 - 0x26, 0xda, 0x24, 0xf1, 0xda, 0x94, 0x3b, 0xf1, //0x0000ad10 .quad -1064093218873484762 - 0x8b, 0xb0, 0x57, 0xfc, 0x8e, 0x1d, 0x60, 0xd0, //0x0000ad18 .quad -3431710416100151157 - 0x58, 0x08, 0xb7, 0xd6, 0x08, 0x3d, 0xc5, 0x76, //0x0000ad20 .quad 8558313775058847832 - 0x57, 0xce, 0xb6, 0x5d, 0x79, 0x12, 0x3c, 0x82, //0x0000ad28 .quad -9062348037703676329 - 0x6e, 0xca, 0x64, 0x0c, 0x4b, 0x8c, 0x76, 0x54, //0x0000ad30 .quad 6086206200396171886 - 0xed, 0x81, 0x24, 0xb5, 0x17, 0x17, 0xcb, 0xa2, //0x0000ad38 .quad -6716249028702207507 - 0x09, 0xfd, 0x7d, 0xcf, 0x5d, 0x2f, 0x94, 0xa9, //0x0000ad40 .quad -6227300304786948855 - 0x68, 0xa2, 0x6d, 0xa2, 0xdd, 0xdc, 0x7d, 0xcb, //0x0000ad48 .quad -3783625267450371480 - 0x4c, 0x7c, 0x5d, 0x43, 0x35, 0x3b, 0xf9, 0xd3, //0x0000ad50 .quad -3172439362556298164 - 0x02, 0x0b, 0x09, 0x0b, 0x15, 0x54, 0x5d, 0xfe, //0x0000ad58 .quad -117845565885576446 - 0xaf, 0x6d, 0x1a, 0x4a, 0x01, 0xc5, 0x7b, 0xc4, //0x0000ad60 .quad -4288617610811380305 - 0xe1, 0xa6, 0xe5, 0x26, 0x8d, 0x54, 0xfa, 0x9e, //0x0000ad68 .quad -6991182506319567135 - 0x1b, 0x09, 0xa1, 0x9c, 0x41, 0xb6, 0x9a, 0x35, //0x0000ad70 .quad 3862600023340550427 - 0x9a, 0x10, 0x9f, 0x70, 0xb0, 0xe9, 0xb8, 0xc6, //0x0000ad78 .quad -4127292114472071014 - 0x62, 0x4b, 0xc9, 0x03, 0xd2, 0x63, 0x01, 0xc3, //0x0000ad80 .quad -4395122007679087774 - 0xc0, 0xd4, 0xc6, 0x8c, 0x1c, 0x24, 0x67, 0xf8, //0x0000ad88 .quad -547429124662700864 - 0x1d, 0xcf, 0x5d, 0x42, 0x63, 0xde, 0xe0, 0x79, //0x0000ad90 .quad 8782263791269039901 - 0xf8, 0x44, 0xfc, 0xd7, 0x91, 0x76, 0x40, 0x9b, //0x0000ad98 .quad -7259672230555269896 - 0xe4, 0x42, 0xf5, 0x12, 0xfc, 0x15, 0x59, 0x98, //0x0000ada0 .quad -7468914334623251740 - 0x36, 0x56, 0xfb, 0x4d, 0x36, 0x94, 0x10, 0xc2, //0x0000ada8 .quad -4462904269766699466 - 0x9d, 0x93, 0xb2, 0x17, 0x7b, 0x5b, 0x6f, 0x3e, //0x0000adb0 .quad 4498915137003099037 - 0xc4, 0x2b, 0x7a, 0xe1, 0x43, 0xb9, 0x94, 0xf2, //0x0000adb8 .quad -966944318780986428 - 0x42, 0x9c, 0xcf, 0xee, 0x2c, 0x99, 0x05, 0xa7, //0x0000adc0 .quad -6411550076227838910 - 0x5a, 0x5b, 0xec, 0x6c, 0xca, 0xf3, 0x9c, 0x97, //0x0000adc8 .quad -7521869226879198374 - 0x53, 0x83, 0x83, 0x2a, 0x78, 0xff, 0xc6, 0x50, //0x0000add0 .quad 5820620459997365075 - 0x31, 0x72, 0x27, 0x08, 0xbd, 0x30, 0x84, 0xbd, //0x0000add8 .quad -4790650515171610063 - 0x28, 0x64, 0x24, 0x35, 0x56, 0xbf, 0xf8, 0xa4, //0x0000ade0 .quad -6559282480285457368 - 0xbd, 0x4e, 0x31, 0x4a, 0xec, 0x3c, 0xe5, 0xec, //0x0000ade8 .quad -1376627125537124675 - 0x99, 0xbe, 0x36, 0xe1, 0x95, 0x77, 0x1b, 0x87, //0x0000adf0 .quad -8711237568605798759 - 0x36, 0xd1, 0x5e, 0xae, 0x13, 0x46, 0x0f, 0x94, //0x0000adf8 .quad -7777920981101784778 - 0x3f, 0x6e, 0x84, 0x59, 0x7b, 0x55, 0xe2, 0x28, //0x0000ae00 .quad 2946011094524915263 - 0x84, 0x85, 0xf6, 0x99, 0x98, 0x17, 0x13, 0xb9, //0x0000ae08 .quad -5110715207949843068 - 0xcf, 0x89, 0xe5, 0x2f, 0xda, 0xea, 0x1a, 0x33, //0x0000ae10 .quad 3682513868156144079 - 0xe5, 0x26, 0x74, 0xc0, 0x7e, 0xdd, 0x57, 0xe7, //0x0000ae18 .quad -1776707991509915931 - 0x21, 0x76, 0xef, 0x5d, 0xc8, 0xd2, 0xf0, 0x3f, //0x0000ae20 .quad 4607414176811284001 - 0x4f, 0x98, 0x48, 0x38, 0x6f, 0xea, 0x96, 0x90, //0x0000ae28 .quad -8027971522334779313 - 0xa9, 0x53, 0x6b, 0x75, 0x7a, 0x07, 0xed, 0x0f, //0x0000ae30 .quad 1147581702586717097 - 0x63, 0xbe, 0x5a, 0x06, 0x0b, 0xa5, 0xbc, 0xb4, //0x0000ae38 .quad -5423278384491086237 - 0x94, 0x28, 0xc6, 0x12, 0x59, 0x49, 0xe8, 0xd3, //0x0000ae40 .quad -3177208890193991532 - 0xfb, 0x6d, 0xf1, 0xc7, 0x4d, 0xce, 0xeb, 0xe1, //0x0000ae48 .quad -2167411962186469893 - 0x5c, 0xd9, 0xbb, 0xab, 0xd7, 0x2d, 0x71, 0x64, //0x0000ae50 .quad 7237616480483531100 - 0xbd, 0xe4, 0xf6, 0x9c, 0xf0, 0x60, 0x33, 0x8d, //0x0000ae58 .quad -8272161504007625539 - 0xb3, 0xcf, 0xaa, 0x96, 0x4d, 0x79, 0x8d, 0xbd, //0x0000ae60 .quad -4788037454677749837 - 0xec, 0x9d, 0x34, 0xc4, 0x2c, 0x39, 0x80, 0xb0, //0x0000ae68 .quad -5728515861582144020 - 0xa0, 0x83, 0x55, 0xfc, 0xa0, 0xd7, 0xf0, 0xec, //0x0000ae70 .quad -1373360799919799392 - 0x67, 0xc5, 0x41, 0xf5, 0x77, 0x47, 0xa0, 0xdc, //0x0000ae78 .quad -2548958808550292121 - 0x44, 0x72, 0xb5, 0x9d, 0xc4, 0x86, 0x16, 0xf4, //0x0000ae80 .quad -858350499949874620 - 0x60, 0x1b, 0x49, 0xf9, 0xaa, 0x2c, 0xe4, 0x89, //0x0000ae88 .quad -8510628282985014432 - 0xd5, 0xce, 0x22, 0xc5, 0x75, 0x28, 0x1c, 0x31, //0x0000ae90 .quad 3538747893490044629 - 0x39, 0x62, 0x9b, 0xb7, 0xd5, 0x37, 0x5d, 0xac, //0x0000ae98 .quad -6026599335303880135 - 0x8b, 0x82, 0x6b, 0x36, 0x93, 0x32, 0x63, 0x7d, //0x0000aea0 .quad 9035120885289943691 - 0xc7, 0x3a, 0x82, 0x25, 0xcb, 0x85, 0x74, 0xd7, //0x0000aea8 .quad -2921563150702462265 - 0x97, 0x31, 0x03, 0x02, 0x9c, 0xff, 0x5d, 0xae, //0x0000aeb0 .quad -5882264492762254953 - 0xbc, 0x64, 0x71, 0xf7, 0x9e, 0xd3, 0xa8, 0x86, //0x0000aeb8 .quad -8743505996830120772 - 0xfc, 0xfd, 0x83, 0x02, 0x83, 0x7f, 0xf5, 0xd9, //0x0000aec0 .quad -2741144597525430788 - 0xeb, 0xbd, 0x4d, 0xb5, 0x86, 0x08, 0x53, 0xa8, //0x0000aec8 .quad -6317696477610263061 - 0x7b, 0xfd, 0x24, 0xc3, 0x63, 0xdf, 0x72, 0xd0, //0x0000aed0 .quad -3426430746906788485 - 0x66, 0x2d, 0xa1, 0x62, 0xa8, 0xca, 0x67, 0xd2, //0x0000aed8 .quad -3285434578585440922 - 0x6d, 0x1e, 0xf7, 0x59, 0x9e, 0xcb, 0x47, 0x42, //0x0000aee0 .quad 4776009810824339053 - 0x60, 0xbc, 0xa4, 0x3d, 0xa9, 0xde, 0x80, 0x83, //0x0000aee8 .quad -8970925639256982432 - 0x08, 0xe6, 0x74, 0xf0, 0x85, 0xbe, 0xd9, 0x52, //0x0000aef0 .quad 5970012263530423816 - 0x78, 0xeb, 0x0d, 0x8d, 0x53, 0x16, 0x61, 0xa4, //0x0000aef8 .quad -6601971030643840136 - 0x8b, 0x1f, 0x92, 0x6c, 0x27, 0x2e, 0x90, 0x67, //0x0000af00 .quad 7462515329413029771 - 0x56, 0x66, 0x51, 0x70, 0xe8, 0x5b, 0x79, 0xcd, //0x0000af08 .quad -3640777769877412266 - 0xb6, 0x53, 0xdb, 0xa3, 0xd8, 0x1c, 0xba, 0x00, //0x0000af10 .quad 52386062455755702 - 0xf6, 0xdf, 0x32, 0x46, 0x71, 0xd9, 0x6b, 0x80, //0x0000af18 .quad -9193015133814464522 - 0xa4, 0x28, 0xd2, 0xcc, 0x0e, 0xa4, 0xe8, 0x80, //0x0000af20 .quad -9157889458785081180 - 0xf3, 0x97, 0xbf, 0x97, 0xcd, 0xcf, 0x86, 0xa0, //0x0000af28 .quad -6879582898840692749 - 0xcd, 0xb2, 0x06, 0x80, 0x12, 0xcd, 0x22, 0x61, //0x0000af30 .quad 6999382250228200141 - 0xf0, 0x7d, 0xaf, 0xfd, 0xc0, 0x83, 0xa8, 0xc8, //0x0000af38 .quad -3987792605123478032 - 0x81, 0x5f, 0x08, 0x20, 0x57, 0x80, 0x6b, 0x79, //0x0000af40 .quad 8749227812785250177 - 0x6c, 0x5d, 0x1b, 0x3d, 0xb1, 0xa4, 0xd2, 0xfa, //0x0000af48 .quad -373054737976959636 - 0xb0, 0x3b, 0x05, 0x74, 0x36, 0x30, 0xe3, 0xcb, //0x0000af50 .quad -3755104653863994448 - 0x63, 0x1a, 0x31, 0xc6, 0xee, 0xa6, 0xc3, 0x9c, //0x0000af58 .quad -7150688238876681629 - 0x9c, 0x8a, 0x06, 0x11, 0x44, 0xfc, 0xdb, 0xbe, //0x0000af60 .quad -4693880817329993060 - 0xfc, 0x60, 0xbd, 0x77, 0xaa, 0x90, 0xf4, 0xc3, //0x0000af68 .quad -4326674280168464132 - 0x44, 0x2d, 0x48, 0x15, 0x55, 0xfb, 0x92, 0xee, //0x0000af70 .quad -1255665003235103420 - 0x3b, 0xb9, 0xac, 0x15, 0xd5, 0xb4, 0xf1, 0xf4, //0x0000af78 .quad -796656831783192261 - 0x4a, 0x1c, 0x4d, 0x2d, 0x15, 0xdd, 0x1b, 0x75, //0x0000af80 .quad 8438581409832836170 - 0xc5, 0xf3, 0x8b, 0x2d, 0x05, 0x11, 0x17, 0x99, //0x0000af88 .quad -7415439547505577019 - 0x5d, 0x63, 0xa0, 0x78, 0x5a, 0xd4, 0x62, 0xd2, //0x0000af90 .quad -3286831292991118499 - 0xb6, 0xf0, 0xee, 0x78, 0x46, 0xd5, 0x5c, 0xbf, //0x0000af98 .quad -4657613415954583370 - 0x34, 0x7c, 0xc8, 0x16, 0x71, 0x89, 0xfb, 0x86, //0x0000afa0 .quad -8720225134666286028 - 0xe4, 0xac, 0x2a, 0x17, 0x98, 0x0a, 0x34, 0xef, //0x0000afa8 .quad -1210330751515841308 - 0xa0, 0x4d, 0x3d, 0xae, 0xe6, 0x35, 0x5d, 0xd4, //0x0000afb0 .quad -3144297699952734816 - 0x0e, 0xac, 0x7a, 0x0e, 0x9f, 0x86, 0x80, 0x95, //0x0000afb8 .quad -7673985747338482674 - 0x09, 0xa1, 0xcc, 0x59, 0x60, 0x83, 0x74, 0x89, //0x0000afc0 .quad -8542058143368306423 - 0x12, 0x57, 0x19, 0xd2, 0x46, 0xa8, 0xe0, 0xba, //0x0000afc8 .quad -4980796165745715438 - 0x4b, 0xc9, 0x3f, 0x70, 0x38, 0xa4, 0xd1, 0x2b, //0x0000afd0 .quad 3157485376071780683 - 0xd7, 0xac, 0x9f, 0x86, 0x58, 0xd2, 0x98, 0xe9, //0x0000afd8 .quad -1614309188754756393 - 0xcf, 0xdd, 0x27, 0x46, 0xa3, 0x06, 0x63, 0x7b, //0x0000afe0 .quad 8890957387685944783 - 0x06, 0xcc, 0x23, 0x54, 0x77, 0x83, 0xff, 0x91, //0x0000afe8 .quad -7926472270612804602 - 0x42, 0xd5, 0xb1, 0x17, 0x4c, 0xc8, 0x3b, 0x1a, //0x0000aff0 .quad 1890324697752655170 - 0x08, 0xbf, 0x2c, 0x29, 0x55, 0x64, 0x7f, 0xb6, //0x0000aff8 .quad -5296404319838617848 - 0x93, 0x4a, 0x9e, 0x1d, 0x5f, 0xba, 0xca, 0x20, //0x0000b000 .quad 2362905872190818963 - 0xca, 0xee, 0x77, 0x73, 0x6a, 0x3d, 0x1f, 0xe4, //0x0000b008 .quad -2008819381370884406 - 0x9c, 0xee, 0x82, 0x72, 0x7b, 0xb4, 0x7e, 0x54, //0x0000b010 .quad 6088502188546649756 - 0x3e, 0xf5, 0x2a, 0x88, 0x62, 0x86, 0x93, 0x8e, //0x0000b018 .quad -8173041140997884610 - 0x43, 0xaa, 0x23, 0x4f, 0x9a, 0x61, 0x9e, 0xe9, //0x0000b020 .quad -1612744301171463613 - 0x8d, 0xb2, 0x35, 0x2a, 0xfb, 0x67, 0x38, 0xb2, //0x0000b028 .quad -5604615407819967859 - 0xd4, 0x94, 0xec, 0xe2, 0x00, 0xfa, 0x05, 0x64, //0x0000b030 .quad 7207441660390446292 - 0x31, 0x1f, 0xc3, 0xf4, 0xf9, 0x81, 0xc6, 0xde, //0x0000b038 .quad -2394083241347571919 - 0x04, 0xdd, 0xd3, 0x8d, 0x40, 0xbc, 0x83, 0xde, //0x0000b040 .quad -2412877989897052924 - 0x7e, 0xf3, 0xf9, 0x38, 0x3c, 0x11, 0x3c, 0x8b, //0x0000b048 .quad -8413831053483314306 - 0x45, 0xd4, 0x48, 0xb1, 0x50, 0xab, 0x24, 0x96, //0x0000b050 .quad -7627783505798704059 - 0x5e, 0x70, 0x38, 0x47, 0x8b, 0x15, 0x0b, 0xae, //0x0000b058 .quad -5905602798426754978 - 0x57, 0x09, 0x9b, 0xdd, 0x24, 0xd6, 0xad, 0x3b, //0x0000b060 .quad 4300328673033783639 - 0x76, 0x8c, 0x06, 0x19, 0xee, 0xda, 0x8d, 0xd9, //0x0000b068 .quad -2770317479606055818 - 0xd6, 0xe5, 0x80, 0x0a, 0xd7, 0xa5, 0x4c, 0xe5, //0x0000b070 .quad -1923980597781273130 - 0xc9, 0x17, 0xa4, 0xcf, 0xd4, 0xa8, 0xf8, 0x87, //0x0000b078 .quad -8648977452394866743 - 0x4c, 0x1f, 0x21, 0xcd, 0x4c, 0xcf, 0x9f, 0x5e, //0x0000b080 .quad 6818396289628184396 - 0xbc, 0x1d, 0x8d, 0x03, 0x0a, 0xd3, 0xf6, 0xa9, //0x0000b088 .quad -6199535797066195524 - 0x1f, 0x67, 0x69, 0x00, 0x20, 0xc3, 0x47, 0x76, //0x0000b090 .quad 8522995362035230495 - 0x2b, 0x65, 0x70, 0x84, 0xcc, 0x87, 0x74, 0xd4, //0x0000b098 .quad -3137733727905356501 - 0x73, 0xe0, 0x41, 0x00, 0xf4, 0xd9, 0xec, 0x29, //0x0000b0a0 .quad 3021029092058325107 - 0x3b, 0x3f, 0xc6, 0xd2, 0xdf, 0xd4, 0xc8, 0x84, //0x0000b0a8 .quad -8878612607581929669 - 0x90, 0x58, 0x52, 0x00, 0x71, 0x10, 0x68, 0xf4, //0x0000b0b0 .quad -835399653354481520 - 0x09, 0xcf, 0x77, 0xc7, 0x17, 0x0a, 0xfb, 0xa5, //0x0000b0b8 .quad -6486579741050024183 - 0xb4, 0xee, 0x66, 0x40, 0x8d, 0x14, 0x82, 0x71, //0x0000b0c0 .quad 8179122470161673908 - 0xcc, 0xc2, 0x55, 0xb9, 0x9d, 0xcc, 0x79, 0xcf, //0x0000b0c8 .quad -3496538657885142324 - 0x30, 0x55, 0x40, 0x48, 0xd8, 0x4c, 0xf1, 0xc6, //0x0000b0d0 .quad -4111420493003729616 - 0xbf, 0x99, 0xd5, 0x93, 0xe2, 0x1f, 0xac, 0x81, //0x0000b0d8 .quad -9102865688819295809 - 0x7c, 0x6a, 0x50, 0x5a, 0x0e, 0xa0, 0xad, 0xb8, //0x0000b0e0 .quad -5139275616254662020 - 0x2f, 0x00, 0xcb, 0x38, 0xdb, 0x27, 0x17, 0xa2, //0x0000b0e8 .quad -6766896092596731857 - 0x1c, 0x85, 0xe4, 0xf0, 0x11, 0x08, 0xd9, 0xa6, //0x0000b0f0 .quad -6424094520318327524 - 0x3b, 0xc0, 0xfd, 0x06, 0xd2, 0xf1, 0x9c, 0xca, //0x0000b0f8 .quad -3846934097318526917 - 0x63, 0xa6, 0x1d, 0x6d, 0x16, 0x4a, 0x8f, 0x90, //0x0000b100 .quad -8030118150397909405 - 0x4a, 0x30, 0xbd, 0x88, 0x46, 0x2e, 0x44, 0xfd, //0x0000b108 .quad -196981603220770742 - 0xfe, 0x87, 0x32, 0x04, 0x4e, 0x8e, 0x59, 0x9a, //0x0000b110 .quad -7324666853212387330 - 0x2e, 0x3e, 0x76, 0x15, 0xec, 0x9c, 0x4a, 0x9e, //0x0000b118 .quad -7040642529654063570 - 0xfd, 0x29, 0x3f, 0x85, 0xe1, 0xf1, 0xef, 0x40, //0x0000b120 .quad 4679224488766679549 - 0xba, 0xcd, 0xd3, 0x1a, 0x27, 0x44, 0xdd, 0xc5, //0x0000b128 .quad -4189117143640191558 - 0x7c, 0xf4, 0x8e, 0xe6, 0x59, 0xee, 0x2b, 0xd1, //0x0000b130 .quad -3374341425896426372 - 0x28, 0xc1, 0x88, 0xe1, 0x30, 0x95, 0x54, 0xf7, //0x0000b138 .quad -624710411122851544 - 0xce, 0x58, 0x19, 0x30, 0xf8, 0x74, 0xbb, 0x82, //0x0000b140 .quad -9026492418826348338 - 0xb9, 0x78, 0xf5, 0x8c, 0x3e, 0xdd, 0x94, 0x9a, //0x0000b148 .quad -7307973034592864071 - 0x01, 0xaf, 0x1f, 0x3c, 0x36, 0x52, 0x6a, 0xe3, //0x0000b150 .quad -2059743486678159615 - 0xe7, 0xd6, 0x32, 0x30, 0x8e, 0x14, 0x3a, 0xc1, //0x0000b158 .quad -4523280274813692185 - 0xc1, 0x9a, 0x27, 0xcb, 0xc3, 0xe6, 0x44, 0xdc, //0x0000b160 .quad -2574679358347699519 - 0xa1, 0x8c, 0x3f, 0xbc, 0xb1, 0x99, 0x88, 0xf1, //0x0000b168 .quad -1042414325089727327 - 0xb9, 0xc0, 0xf8, 0x5e, 0x3a, 0x10, 0xab, 0x29, //0x0000b170 .quad 3002511419460075705 - 0xe5, 0xb7, 0xa7, 0x15, 0x0f, 0x60, 0xf5, 0x96, //0x0000b178 .quad -7569037980822161435 - 0xe7, 0xf0, 0xb6, 0xf6, 0x48, 0xd4, 0x15, 0x74, //0x0000b180 .quad 8364825292752482535 - 0xde, 0xa5, 0x11, 0xdb, 0x12, 0xb8, 0xb2, 0xbc, //0x0000b188 .quad -4849611457600313890 - 0x21, 0xad, 0x64, 0x34, 0x5b, 0x49, 0x1b, 0x11, //0x0000b190 .quad 1232659579085827361 - 0x56, 0x0f, 0xd6, 0x91, 0x17, 0x66, 0xdf, 0xeb, //0x0000b198 .quad -1450328303573004458 - 0x34, 0xec, 0xbe, 0x00, 0xd9, 0x0d, 0xb1, 0xca, //0x0000b1a0 .quad -3841273781498745804 - 0x95, 0xc9, 0x25, 0xbb, 0xce, 0x9f, 0x6b, 0x93, //0x0000b1a8 .quad -7823984217374209643 - 0x42, 0xa7, 0xee, 0x40, 0x4f, 0x51, 0x5d, 0x3d, //0x0000b1b0 .quad 4421779809981343554 - 0xfb, 0x3b, 0xef, 0x69, 0xc2, 0x87, 0x46, 0xb8, //0x0000b1b8 .quad -5168294253290374149 - 0x12, 0x51, 0x2a, 0x11, 0xa3, 0xa5, 0xb4, 0x0c, //0x0000b1c0 .quad 915538744049291538 - 0xfa, 0x0a, 0x6b, 0x04, 0xb3, 0x29, 0x58, 0xe6, //0x0000b1c8 .quad -1848681798185579782 - 0xab, 0x72, 0xba, 0xea, 0x85, 0xe7, 0xf0, 0x47, //0x0000b1d0 .quad 5183897733458195115 - 0xdc, 0xe6, 0xc2, 0xe2, 0x0f, 0x1a, 0xf7, 0x8f, //0x0000b1d8 .quad -8072955151507069220 - 0x56, 0x0f, 0x69, 0x65, 0x67, 0x21, 0xed, 0x59, //0x0000b1e0 .quad 6479872166822743894 - 0x93, 0xa0, 0x73, 0xdb, 0x93, 0xe0, 0xf4, 0xb3, //0x0000b1e8 .quad -5479507920956448621 - 0x2c, 0x53, 0xc3, 0x3e, 0xc1, 0x69, 0x68, 0x30, //0x0000b1f0 .quad 3488154190101041964 - 0xb8, 0x88, 0x50, 0xd2, 0xb8, 0x18, 0xf2, 0xe0, //0x0000b1f8 .quad -2237698882768172872 - 0xfb, 0x13, 0x3a, 0xc7, 0x18, 0x42, 0x41, 0x1e, //0x0000b200 .quad 2180096368813151227 - 0x73, 0x55, 0x72, 0x83, 0x73, 0x4f, 0x97, 0x8c, //0x0000b208 .quad -8316090829371189901 - 0xfa, 0x98, 0x08, 0xf9, 0x9e, 0x92, 0xd1, 0xe5, //0x0000b210 .quad -1886565557410948870 - 0xcf, 0xea, 0x4e, 0x64, 0x50, 0x23, 0xbd, 0xaf, //0x0000b218 .quad -5783427518286599473 - 0x39, 0xbf, 0x4a, 0xb7, 0x46, 0xf7, 0x45, 0xdf, //0x0000b220 .quad -2358206946763686087 - 0x83, 0xa5, 0x62, 0x7d, 0x24, 0x6c, 0xac, 0xdb, //0x0000b228 .quad -2617598379430861437 - 0x83, 0xb7, 0x8e, 0x32, 0x8c, 0xba, 0x8b, 0x6b, //0x0000b230 .quad 7749492695127472003 - 0x72, 0xa7, 0x5d, 0xce, 0x96, 0xc3, 0x4b, 0x89, //0x0000b238 .quad -8553528014785370254 - 0x64, 0x65, 0x32, 0x3f, 0x2f, 0xa9, 0x6e, 0x06, //0x0000b240 .quad 463493832054564196 - 0x4f, 0x11, 0xf5, 0x81, 0x7c, 0xb4, 0x9e, 0xab, //0x0000b248 .quad -6080224000054324913 - 0xbd, 0xfe, 0xfe, 0x0e, 0x7b, 0x53, 0x0a, 0xc8, //0x0000b250 .quad -4032318728359182659 - 0xa2, 0x55, 0x72, 0xa2, 0x9b, 0x61, 0x86, 0xd6, //0x0000b258 .quad -2988593981640518238 - 0x36, 0x5f, 0x5f, 0xe9, 0x2c, 0x74, 0x06, 0xbd, //0x0000b260 .quad -4826042214438183114 - 0x85, 0x75, 0x87, 0x45, 0x01, 0xfd, 0x13, 0x86, //0x0000b268 .quad -8785400266166405755 - 0x04, 0x37, 0xb7, 0x23, 0x38, 0x11, 0x48, 0x2c, //0x0000b270 .quad 3190819268807046916 - 0xe7, 0x52, 0xe9, 0x96, 0x41, 0xfc, 0x98, 0xa7, //0x0000b278 .quad -6370064314280619289 - 0xc5, 0x04, 0xa5, 0x2c, 0x86, 0x15, 0x5a, 0xf7, //0x0000b280 .quad -623161932418579259 - 0xa0, 0xa7, 0xa3, 0xfc, 0x51, 0x3b, 0x7f, 0xd1, //0x0000b288 .quad -3350894374423386208 - 0xfb, 0x22, 0xe7, 0xdb, 0x73, 0x4d, 0x98, 0x9a, //0x0000b290 .quad -7307005235402693893 - 0xc4, 0x48, 0xe6, 0x3d, 0x13, 0x85, 0xef, 0x82, //0x0000b298 .quad -9011838011655698236 - 0xba, 0xeb, 0xe0, 0xd2, 0xd0, 0x60, 0x3e, 0xc1, //0x0000b2a0 .quad -4522070525825979462 - 0xf5, 0xda, 0x5f, 0x0d, 0x58, 0x66, 0xab, 0xa3, //0x0000b2a8 .quad -6653111496142234891 - 0xa8, 0x26, 0x99, 0x07, 0x05, 0xf9, 0x8d, 0x31, //0x0000b2b0 .quad 3570783879572301480 - 0xb3, 0xd1, 0xb7, 0x10, 0xee, 0x3f, 0x96, 0xcc, //0x0000b2b8 .quad -3704703351750405709 - 0x52, 0x70, 0x7f, 0x49, 0x46, 0x77, 0xf1, 0xfd, //0x0000b2c0 .quad -148206168962011054 - 0x1f, 0xc6, 0xe5, 0x94, 0xe9, 0xcf, 0xbb, 0xff, //0x0000b2c8 .quad -19193171260619233 - 0x33, 0xa6, 0xef, 0xed, 0x8b, 0xea, 0xb6, 0xfe, //0x0000b2d0 .quad -92628855601256909 - 0xd3, 0x9b, 0x0f, 0xfd, 0xf1, 0x61, 0xd5, 0x9f, //0x0000b2d8 .quad -6929524759678968877 - 0xc0, 0x8f, 0x6b, 0xe9, 0x2e, 0xa5, 0x64, 0xfe, //0x0000b2e0 .quad -115786069501571136 - 0xc8, 0x82, 0x53, 0x7c, 0x6e, 0xba, 0xca, 0xc7, //0x0000b2e8 .quad -4050219931171323192 - 0xb0, 0x73, 0xc6, 0xa3, 0x7a, 0xce, 0xfd, 0x3d, //0x0000b2f0 .quad 4466953431550423984 - 0x7b, 0x63, 0x68, 0x1b, 0x0a, 0x69, 0xbd, 0xf9, //0x0000b2f8 .quad -451088895536766085 - 0x4e, 0x08, 0x5c, 0xa6, 0x0c, 0xa1, 0xbe, 0x06, //0x0000b300 .quad 486002885505321038 - 0x2d, 0x3e, 0x21, 0x51, 0xa6, 0x61, 0x16, 0x9c, //0x0000b308 .quad -7199459587351560659 - 0x62, 0x0a, 0xf3, 0xcf, 0x4f, 0x49, 0x6e, 0x48, //0x0000b310 .quad 5219189625309039202 - 0xb8, 0x8d, 0x69, 0xe5, 0x0f, 0xfa, 0x1b, 0xc3, //0x0000b318 .quad -4387638465762062920 - 0xfa, 0xcc, 0xef, 0xc3, 0xa3, 0xdb, 0x89, 0x5a, //0x0000b320 .quad 6523987031636299002 - 0x26, 0xf1, 0xc3, 0xde, 0x93, 0xf8, 0xe2, 0xf3, //0x0000b328 .quad -872862063775190746 - 0x1c, 0xe0, 0x75, 0x5a, 0x46, 0x29, 0x96, 0xf8, //0x0000b330 .quad -534194123654701028 - 0xb7, 0x76, 0x3a, 0x6b, 0x5c, 0xdb, 0x6d, 0x98, //0x0000b338 .quad -7463067817500576073 - 0x23, 0x58, 0x13, 0xf1, 0x97, 0xb3, 0xbb, 0xf6, //0x0000b340 .quad -667742654568376285 - 0x65, 0x14, 0x09, 0x86, 0x33, 0x52, 0x89, 0xbe, //0x0000b348 .quad -4717148753448332187 - 0x2c, 0x2e, 0x58, 0xed, 0x7d, 0xa0, 0x6a, 0x74, //0x0000b350 .quad 8388693718644305452 - 0x7f, 0x59, 0x8b, 0x67, 0xc0, 0xa6, 0x2b, 0xee, //0x0000b358 .quad -1284749923383027329 - 0xdc, 0x1c, 0x57, 0xb4, 0x4e, 0xa4, 0xc2, 0xa8, //0x0000b360 .quad -6286281471915778852 - 0xef, 0x17, 0xb7, 0x40, 0x38, 0x48, 0xdb, 0x94, //0x0000b368 .quad -7720497729755473937 - 0x13, 0xe4, 0x6c, 0x61, 0x62, 0x4d, 0xf3, 0x92, //0x0000b370 .quad -7857851839894723565 - 0xeb, 0xdd, 0xe4, 0x50, 0x46, 0x1a, 0x12, 0xba, //0x0000b378 .quad -5038936143766954517 - 0x17, 0x1d, 0xc8, 0xf9, 0xba, 0x20, 0xb0, 0x77, //0x0000b380 .quad 8624429273841147159 - 0x66, 0x15, 0x1e, 0xe5, 0xd7, 0xa0, 0x96, 0xe8, //0x0000b388 .quad -1686984161281305242 - 0x2e, 0x12, 0x1d, 0xdc, 0x74, 0x14, 0xce, 0x0a, //0x0000b390 .quad 778582277723329070 - 0x60, 0xcd, 0x32, 0xef, 0x86, 0x24, 0x5e, 0x91, //0x0000b398 .quad -7971894128441897632 - 0xba, 0x56, 0x24, 0x13, 0x92, 0x99, 0x81, 0x0d, //0x0000b3a0 .quad 973227847154161338 - 0xb8, 0x80, 0xff, 0xaa, 0xa8, 0xad, 0xb5, 0xb5, //0x0000b3a8 .quad -5353181642124984136 - 0x69, 0x6c, 0xed, 0x97, 0xf6, 0xff, 0xe1, 0x10, //0x0000b3b0 .quad 1216534808942701673 - 0xe6, 0x60, 0xbf, 0xd5, 0x12, 0x19, 0x23, 0xe3, //0x0000b3b8 .quad -2079791034228842266 - 0xc1, 0x63, 0xf4, 0x1e, 0xfa, 0x3f, 0x8d, 0xca, //0x0000b3c0 .quad -3851351762838199359 - 0x8f, 0x9c, 0x97, 0xc5, 0xab, 0xef, 0xf5, 0x8d, //0x0000b3c8 .quad -8217398424034108273 - 0xb2, 0x7c, 0xb1, 0xa6, 0xf8, 0x8f, 0x30, 0xbd, //0x0000b3d0 .quad -4814189703547749198 - 0xb3, 0x83, 0xfd, 0xb6, 0x96, 0x6b, 0x73, 0xb1, //0x0000b3d8 .quad -5660062011615247437 - 0xde, 0xdb, 0x5d, 0xd0, 0xf6, 0xb3, 0x7c, 0xac, //0x0000b3e0 .quad -6017737129434686498 - 0xa0, 0xe4, 0xbc, 0x64, 0x7c, 0x46, 0xd0, 0xdd, //0x0000b3e8 .quad -2463391496091671392 - 0x6b, 0xa9, 0x3a, 0x42, 0x7a, 0xf0, 0xcd, 0x6b, //0x0000b3f0 .quad 7768129340171790699 - 0xe4, 0x0e, 0xf6, 0xbe, 0x0d, 0x2c, 0xa2, 0x8a, //0x0000b3f8 .quad -8457148712698376476 - 0xc6, 0x53, 0xc9, 0xd2, 0x98, 0x6c, 0xc1, 0x86, //0x0000b400 .quad -8736582398494813242 - 0x9d, 0x92, 0xb3, 0x2e, 0x11, 0xb7, 0x4a, 0xad, //0x0000b408 .quad -5959749872445582691 - 0xb7, 0xa8, 0x7b, 0x07, 0xbf, 0xc7, 0x71, 0xe8, //0x0000b410 .quad -1697355961263740745 - 0x44, 0x77, 0x60, 0x7a, 0xd5, 0x64, 0x9d, 0xd8, //0x0000b418 .quad -2838001322129590460 - 0x72, 0x49, 0xad, 0x64, 0xd7, 0x1c, 0x47, 0x11, //0x0000b420 .quad 1244995533423855986 - 0x8b, 0x4a, 0x7c, 0x6c, 0x05, 0x5f, 0x62, 0x87, //0x0000b428 .quad -8691279853972075893 - 0xcf, 0x9b, 0xd8, 0x3d, 0x0d, 0xe4, 0x98, 0xd5, //0x0000b430 .quad -3055441601647567921 - 0x2d, 0x5d, 0x9b, 0xc7, 0xc6, 0xf6, 0x3a, 0xa9, //0x0000b438 .quad -6252413799037706963 - 0xc3, 0xc2, 0x4e, 0x8d, 0x10, 0x1d, 0xff, 0x4a, //0x0000b440 .quad 5404070034795315907 - 0x79, 0x34, 0x82, 0x79, 0x78, 0xb4, 0x89, 0xd3, //0x0000b448 .quad -3203831230369745799 - 0xba, 0x39, 0x51, 0x58, 0x2a, 0x72, 0xdf, 0xce, //0x0000b450 .quad -3539985255894009414 - 0xcb, 0x60, 0xf1, 0x4b, 0xcb, 0x10, 0x36, 0x84, //0x0000b458 .quad -8919923546622172981 - 0x28, 0x88, 0x65, 0xee, 0xb4, 0x4e, 0x97, 0xc2, //0x0000b460 .quad -4424981569867511768 - 0xfe, 0xb8, 0xed, 0x1e, 0xfe, 0x94, 0x43, 0xa5, //0x0000b468 .quad -6538218414850328322 - 0x32, 0xea, 0xfe, 0x29, 0x62, 0x22, 0x3d, 0x73, //0x0000b470 .quad 8303831092947774002 - 0x3e, 0x27, 0xa9, 0xa6, 0x3d, 0x7a, 0x94, 0xce, //0x0000b478 .quad -3561087000135522498 - 0x5f, 0x52, 0x3f, 0x5a, 0x7d, 0x35, 0x06, 0x08, //0x0000b480 .quad 578208414664970847 - 0x87, 0xb8, 0x29, 0x88, 0x66, 0xcc, 0x1c, 0x81, //0x0000b488 .quad -9143208402725783417 - 0xf7, 0x26, 0xcf, 0xb0, 0xdc, 0xc2, 0x07, 0xca, //0x0000b490 .quad -3888925500096174345 - 0xa8, 0x26, 0x34, 0x2a, 0x80, 0xff, 0x63, 0xa1, //0x0000b498 .quad -6817324484979841368 - 0xb5, 0xf0, 0x02, 0xdd, 0x93, 0xb3, 0x89, 0xfc, //0x0000b4a0 .quad -249470856692830027 - 0x52, 0x30, 0xc1, 0x34, 0x60, 0xff, 0xbc, 0xc9, //0x0000b4a8 .quad -3909969587797413806 - 0xe2, 0xac, 0x43, 0xd4, 0x78, 0x20, 0xac, 0xbb, //0x0000b4b0 .quad -4923524589293425438 - 0x67, 0x7c, 0xf1, 0x41, 0x38, 0x3f, 0x2c, 0xfc, //0x0000b4b8 .quad -275775966319379353 - 0x0d, 0x4c, 0xaa, 0x84, 0x4b, 0x94, 0x4b, 0xd5, //0x0000b4c0 .quad -3077202868308390899 - 0xc0, 0xed, 0x36, 0x29, 0x83, 0xa7, 0x9b, 0x9d, //0x0000b4c8 .quad -7089889006590693952 - 0x11, 0xdf, 0xd4, 0x65, 0x5e, 0x79, 0x9e, 0x0a, //0x0000b4d0 .quad 765182433041899281 - 0x31, 0xa9, 0x84, 0xf3, 0x63, 0x91, 0x02, 0xc5, //0x0000b4d8 .quad -4250675239810979535 - 0xd5, 0x16, 0x4a, 0xff, 0xb5, 0x17, 0x46, 0x4d, //0x0000b4e0 .quad 5568164059729762005 - 0x7d, 0xd3, 0x65, 0xf0, 0xbc, 0x35, 0x43, 0xf6, //0x0000b4e8 .quad -701658031336336515 - 0x45, 0x4e, 0x8e, 0xbf, 0xd1, 0xce, 0x4b, 0x50, //0x0000b4f0 .quad 5785945546544795205 - 0x2e, 0xa4, 0x3f, 0x16, 0x96, 0x01, 0xea, 0x99, //0x0000b4f8 .quad -7356065297226292178 - 0xd6, 0xe1, 0x71, 0x2f, 0x86, 0xc2, 0x5e, 0xe4, //0x0000b500 .quad -1990940103673781802 - 0x39, 0x8d, 0xcf, 0x9b, 0xfb, 0x81, 0x64, 0xc0, //0x0000b508 .quad -4583395603105477319 - 0x4c, 0x5a, 0x4e, 0xbb, 0x27, 0x73, 0x76, 0x5d, //0x0000b510 .quad 6734696907262548556 - 0x88, 0x70, 0xc3, 0x82, 0x7a, 0xa2, 0x7d, 0xf0, //0x0000b518 .quad -1117558485454458744 - 0x6f, 0xf8, 0x10, 0xd5, 0xf8, 0x07, 0x6a, 0x3a, //0x0000b520 .quad 4209185567039092847 - 0x55, 0x26, 0xba, 0x91, 0x8c, 0x85, 0x4e, 0x96, //0x0000b528 .quad -7616003081050118571 - 0x8b, 0x36, 0x55, 0x0a, 0xf7, 0x89, 0x04, 0x89, //0x0000b530 .quad -8573576096483297653 - 0xea, 0xaf, 0x28, 0xb6, 0xef, 0x26, 0xe2, 0xbb, //0x0000b538 .quad -4908317832885260310 - 0x2e, 0x84, 0xea, 0xcc, 0x74, 0xac, 0x45, 0x2b, //0x0000b540 .quad 3118087934678041646 - 0xe5, 0xdb, 0xb2, 0xa3, 0xab, 0xb0, 0xda, 0xea, //0x0000b548 .quad -1523711272679187483 - 0x9d, 0x92, 0x12, 0x00, 0xc9, 0x8b, 0x0b, 0x3b, //0x0000b550 .quad 4254647968387469981 - 0x6f, 0xc9, 0x4f, 0x46, 0x6b, 0xae, 0xc8, 0x92, //0x0000b558 .quad -7869848573065574033 - 0x44, 0x37, 0x17, 0x40, 0xbb, 0x6e, 0xce, 0x09, //0x0000b560 .quad 706623942056949572 - 0xcb, 0xbb, 0xe3, 0x17, 0x06, 0xda, 0x7a, 0xb7, //0x0000b568 .quad -5225624697904579637 - 0x15, 0x05, 0x1d, 0x10, 0x6a, 0x0a, 0x42, 0xcc, //0x0000b570 .quad -3728406090856200939 - 0xbd, 0xaa, 0xdc, 0x9d, 0x87, 0x90, 0x59, 0xe5, //0x0000b578 .quad -1920344853953336643 - 0x2d, 0x23, 0x12, 0x4a, 0x82, 0x46, 0xa9, 0x9f, //0x0000b580 .quad -6941939825212513491 - 0xb6, 0xea, 0xa9, 0xc2, 0x54, 0xfa, 0x57, 0x8f, //0x0000b588 .quad -8117744561361917258 - 0xf9, 0xab, 0x96, 0xdc, 0x22, 0x98, 0x93, 0x47, //0x0000b590 .quad 5157633273766521849 - 0x64, 0x65, 0x54, 0xf3, 0xe9, 0xf8, 0x2d, 0xb3, //0x0000b598 .quad -5535494683275008668 - 0xf7, 0x56, 0xbc, 0x93, 0x2b, 0x7e, 0x78, 0x59, //0x0000b5a0 .quad 6447041592208152311 - 0xbd, 0x7e, 0x29, 0x70, 0x24, 0x77, 0xf9, 0xdf, //0x0000b5a8 .quad -2307682335666372931 - 0x5a, 0xb6, 0x55, 0x3c, 0xdb, 0x4e, 0xeb, 0x57, //0x0000b5b0 .quad 6335244004343789146 - 0x36, 0xef, 0x19, 0xc6, 0x76, 0xea, 0xfb, 0x8b, //0x0000b5b8 .quad -8359830487432564938 - 0xf1, 0x23, 0x6b, 0x0b, 0x92, 0x22, 0xe6, 0xed, //0x0000b5c0 .quad -1304317031425039375 - 0x03, 0x6b, 0xa0, 0x77, 0x14, 0xe5, 0xfa, 0xae, //0x0000b5c8 .quad -5838102090863318269 - 0xed, 0xec, 0x45, 0x8e, 0x36, 0xab, 0x5f, 0xe9, //0x0000b5d0 .quad -1630396289281299219 - 0xc4, 0x85, 0x88, 0x95, 0x59, 0x9e, 0xb9, 0xda, //0x0000b5d8 .quad -2685941595151759932 - 0x14, 0xb4, 0xeb, 0x18, 0x02, 0xcb, 0xdb, 0x11, //0x0000b5e0 .quad 1286845328412881940 - 0x9b, 0x53, 0x75, 0xfd, 0xf7, 0x02, 0xb4, 0x88, //0x0000b5e8 .quad -8596242524610931813 - 0x19, 0xa1, 0x26, 0x9f, 0xc2, 0xbd, 0x52, 0xd6, //0x0000b5f0 .quad -3003129357911285479 - 0x81, 0xa8, 0xd2, 0xfc, 0xb5, 0x03, 0xe1, 0xaa, //0x0000b5f8 .quad -6133617137336276863 - 0x5f, 0x49, 0xf0, 0x46, 0x33, 0x6d, 0xe7, 0x4b, //0x0000b600 .quad 5469460339465668959 - 0xa2, 0x52, 0x07, 0x7c, 0xa3, 0x44, 0x99, 0xd5, //0x0000b608 .quad -3055335403242958174 - 0xdb, 0x2d, 0x56, 0x0c, 0x40, 0xa4, 0x70, 0x6f, //0x0000b610 .quad 8030098730593431003 - 0xa5, 0x93, 0x84, 0x2d, 0xe6, 0xca, 0x7f, 0x85, //0x0000b618 .quad -8827113654667930715 - 0x52, 0xb9, 0x6b, 0x0f, 0x50, 0xcd, 0x4c, 0xcb, //0x0000b620 .quad -3797434642040374958 - 0x8e, 0xb8, 0xe5, 0xb8, 0x9f, 0xbd, 0xdf, 0xa6, //0x0000b628 .quad -6422206049907525490 - 0xa7, 0xa7, 0x46, 0x13, 0xa4, 0x00, 0x20, 0x7e, //0x0000b630 .quad 9088264752731695015 - 0xb2, 0x26, 0x1f, 0xa7, 0x07, 0xad, 0x97, 0xd0, //0x0000b638 .quad -3416071543957018958 - 0xc8, 0x28, 0x0c, 0x8c, 0x66, 0x00, 0xd4, 0x8e, //0x0000b640 .quad -8154892584824854328 - 0x2f, 0x78, 0x73, 0xc8, 0x24, 0xcc, 0x5e, 0x82, //0x0000b648 .quad -9052573742614218705 - 0xfa, 0x32, 0x0f, 0x2f, 0x80, 0x00, 0x89, 0x72, //0x0000b650 .quad 8253128342678483706 - 0x3b, 0x56, 0x90, 0xfa, 0x2d, 0x7f, 0xf6, 0xa2, //0x0000b658 .quad -6704031159840385477 - 0xb9, 0xff, 0xd2, 0x3a, 0xa0, 0x40, 0x2b, 0x4f, //0x0000b660 .quad 5704724409920716729 - 0xca, 0x6b, 0x34, 0x79, 0xf9, 0x1e, 0xb4, 0xcb, //0x0000b668 .quad -3768352931373093942 - 0xa8, 0xbf, 0x87, 0x49, 0xc8, 0x10, 0xf6, 0xe2, //0x0000b670 .quad -2092466524453879896 - 0xbc, 0x86, 0x81, 0xd7, 0xb7, 0x26, 0xa1, 0xfe, //0x0000b678 .quad -98755145788979524 - 0xc9, 0xd7, 0xf4, 0x2d, 0x7d, 0xca, 0xd9, 0x0d, //0x0000b680 .quad 998051431430019017 - 0x36, 0xf4, 0xb0, 0xe6, 0x32, 0xb8, 0x24, 0x9f, //0x0000b688 .quad -6979250993759194058 - 0xbb, 0x0d, 0x72, 0x79, 0x1c, 0x3d, 0x50, 0x91, //0x0000b690 .quad -7975807747567252037 - 0x43, 0x31, 0x5d, 0xa0, 0x3f, 0xe6, 0xed, 0xc6, //0x0000b698 .quad -4112377723771604669 - 0x2a, 0x91, 0xce, 0x97, 0x63, 0x4c, 0xa4, 0x75, //0x0000b6a0 .quad 8476984389250486570 - 0x94, 0x7d, 0x74, 0x88, 0xcf, 0x5f, 0xa9, 0xf8, //0x0000b6a8 .quad -528786136287117932 - 0xba, 0x1a, 0xe1, 0x3e, 0xbe, 0xaf, 0x86, 0xc9, //0x0000b6b0 .quad -3925256793573221702 - 0x7c, 0xce, 0x48, 0xb5, 0xe1, 0xdb, 0x69, 0x9b, //0x0000b6b8 .quad -7248020362820530564 - 0x68, 0x61, 0x99, 0xce, 0xad, 0x5b, 0xe8, 0xfb, //0x0000b6c0 .quad -294884973539139224 - 0x1b, 0x02, 0x9b, 0x22, 0xda, 0x52, 0x44, 0xc2, //0x0000b6c8 .quad -4448339435098275301 - 0xc3, 0xb9, 0x3f, 0x42, 0x99, 0x72, 0xe2, 0xfa, //0x0000b6d0 .quad -368606216923924029 - 0xa2, 0xc2, 0x41, 0xab, 0x90, 0x67, 0xd5, 0xf2, //0x0000b6d8 .quad -948738275445456222 - 0x1a, 0xd4, 0x67, 0xc9, 0x9f, 0x87, 0xcd, 0xdc, //0x0000b6e0 .quad -2536221894791146470 - 0xa5, 0x19, 0x09, 0x6b, 0xba, 0x60, 0xc5, 0x97, //0x0000b6e8 .quad -7510490449794491995 - 0x20, 0xc9, 0xc1, 0xbb, 0x87, 0xe9, 0x00, 0x54, //0x0000b6f0 .quad 6053094668365842720 - 0x0f, 0x60, 0xcb, 0x05, 0xe9, 0xb8, 0xb6, 0xbd, //0x0000b6f8 .quad -4776427043815727089 - 0x68, 0x3b, 0xb2, 0xaa, 0xe9, 0x23, 0x01, 0x29, //0x0000b700 .quad 2954682317029915496 - 0x13, 0x38, 0x3e, 0x47, 0x23, 0x67, 0x24, 0xed, //0x0000b708 .quad -1358847786342270957 - 0x21, 0x65, 0xaf, 0x0a, 0x72, 0xb6, 0xa0, 0xf9, //0x0000b710 .quad -459166561069996767 - 0x0b, 0xe3, 0x86, 0x0c, 0x76, 0xc0, 0x36, 0x94, //0x0000b718 .quad -7766808894105001205 - 0x69, 0x3e, 0x5b, 0x8d, 0x0e, 0xe4, 0x08, 0xf8, //0x0000b720 .quad -573958201337495959 - 0xce, 0x9b, 0xa8, 0x8f, 0x93, 0x70, 0x44, 0xb9, //0x0000b728 .quad -5096825099203863602 - 0x04, 0x0e, 0xb2, 0x30, 0x12, 0x1d, 0x0b, 0xb6, //0x0000b730 .quad -5329133770099257852 - 0xc2, 0xc2, 0x92, 0x73, 0xb8, 0x8c, 0x95, 0xe7, //0x0000b738 .quad -1759345355577441598 - 0xc2, 0x48, 0x6f, 0x5e, 0x2b, 0xf2, 0xc6, 0xb1, //0x0000b740 .quad -5636551615525730110 - 0xb9, 0xb9, 0x3b, 0x48, 0xf3, 0x77, 0xbd, 0x90, //0x0000b748 .quad -8017119874876982855 - 0xf3, 0x1a, 0x0b, 0x36, 0xb6, 0xae, 0x38, 0x1e, //0x0000b750 .quad 2177682517447613171 - 0x28, 0xa8, 0x4a, 0x1a, 0xf0, 0xd5, 0xec, 0xb4, //0x0000b758 .quad -5409713825168840664 - 0xb0, 0xe1, 0x8d, 0xc3, 0x63, 0xda, 0xc6, 0x25, //0x0000b760 .quad 2722103146809516464 - 0x32, 0x52, 0xdd, 0x20, 0x6c, 0x0b, 0x28, 0xe2, //0x0000b768 .quad -2150456263033662926 - 0x0e, 0xad, 0x38, 0x5a, 0x7e, 0x48, 0x9c, 0x57, //0x0000b770 .quad 6313000485183335694 - 0x5f, 0x53, 0x8a, 0x94, 0x23, 0x07, 0x59, 0x8d, //0x0000b778 .quad -8261564192037121185 - 0x51, 0xd8, 0xc6, 0xf0, 0x9d, 0x5a, 0x83, 0x2d, //0x0000b780 .quad 3279564588051781713 - 0x37, 0xe8, 0xac, 0x79, 0xec, 0x48, 0xaf, 0xb0, //0x0000b788 .quad -5715269221619013577 - 0x65, 0x8e, 0xf8, 0x6c, 0x45, 0x31, 0xe4, 0xf8, //0x0000b790 .quad -512230283362660763 - 0x44, 0x22, 0x18, 0x98, 0x27, 0x1b, 0xdb, 0xdc, //0x0000b798 .quad -2532400508596379068 - 0xff, 0x58, 0x1b, 0x64, 0xcb, 0x9e, 0x8e, 0x1b, //0x0000b7a0 .quad 1985699082112030975 - 0x6b, 0x15, 0x0f, 0xbf, 0xf8, 0xf0, 0x08, 0x8a, //0x0000b7a8 .quad -8500279345513818773 - 0x3f, 0x2f, 0x22, 0x3d, 0x7e, 0x46, 0x72, 0xe2, //0x0000b7b0 .quad -2129562165787349185 - 0xc5, 0xda, 0xd2, 0xee, 0x36, 0x2d, 0x8b, 0xac, //0x0000b7b8 .quad -6013663163464885563 - 0x0f, 0xbb, 0x6a, 0xcc, 0x1d, 0xd8, 0x0e, 0x5b, //0x0000b7c0 .quad 6561419329620589327 - 0x77, 0x91, 0x87, 0xaa, 0x84, 0xf8, 0xad, 0xd7, //0x0000b7c8 .quad -2905392935903719049 - 0xe9, 0xb4, 0xc2, 0x9f, 0x12, 0x47, 0xe9, 0x98, //0x0000b7d0 .quad -7428327965055601431 - 0xea, 0xba, 0x94, 0xea, 0x52, 0xbb, 0xcc, 0x86, //0x0000b7d8 .quad -8733399612580906262 - 0x24, 0x62, 0xb3, 0x47, 0xd7, 0x98, 0x23, 0x3f, //0x0000b7e0 .quad 4549648098962661924 - 0xa5, 0xe9, 0x39, 0xa5, 0x27, 0xea, 0x7f, 0xa8, //0x0000b7e8 .quad -6305063497298744923 - 0xad, 0x3a, 0xa0, 0x19, 0x0d, 0x7f, 0xec, 0x8e, //0x0000b7f0 .quad -8147997931578836307 - 0x0e, 0x64, 0x88, 0x8e, 0xb1, 0xe4, 0x9f, 0xd2, //0x0000b7f8 .quad -3269643353196043250 - 0xac, 0x24, 0x04, 0x30, 0x68, 0xcf, 0x53, 0x19, //0x0000b800 .quad 1825030320404309164 - 0x89, 0x3e, 0x15, 0xf9, 0xee, 0xee, 0xa3, 0x83, //0x0000b808 .quad -8961056123388608887 - 0xd7, 0x2d, 0x05, 0x3c, 0x42, 0xc3, 0xa8, 0x5f, //0x0000b810 .quad 6892973918932774359 - 0x2b, 0x8e, 0x5a, 0xb7, 0xaa, 0xea, 0x8c, 0xa4, //0x0000b818 .quad -6589634135808373205 - 0x4d, 0x79, 0x06, 0xcb, 0x12, 0xf4, 0x92, 0x37, //0x0000b820 .quad 4004531380238580045 - 0xb6, 0x31, 0x31, 0x65, 0x55, 0x25, 0xb0, 0xcd, //0x0000b828 .quad -3625356651333078602 - 0xd0, 0x0b, 0xe4, 0xbe, 0x8b, 0xd8, 0xbb, 0xe2, //0x0000b830 .quad -2108853905778275376 - 0x11, 0xbf, 0x3e, 0x5f, 0x55, 0x17, 0x8e, 0x80, //0x0000b838 .quad -9183376934724255983 - 0xc4, 0x0e, 0x9d, 0xae, 0xae, 0xce, 0x6a, 0x5b, //0x0000b840 .quad 6587304654631931588 - 0xd6, 0x6e, 0x0e, 0xb7, 0x2a, 0x9d, 0xb1, 0xa0, //0x0000b848 .quad -6867535149977932074 - 0x75, 0x52, 0x44, 0x5a, 0x5a, 0x82, 0x45, 0xf2, //0x0000b850 .quad -989241218564861323 - 0x8b, 0x0a, 0xd2, 0x64, 0x75, 0x04, 0xde, 0xc8, //0x0000b858 .quad -3972732919045027189 - 0x12, 0x67, 0xd5, 0xf0, 0xf0, 0xe2, 0xd6, 0xee, //0x0000b860 .quad -1236551523206076654 - 0x2e, 0x8d, 0x06, 0xbe, 0x92, 0x85, 0x15, 0xfb, //0x0000b868 .quad -354230130378896082 - 0x6b, 0x60, 0x85, 0x96, 0xd6, 0x4d, 0x46, 0x55, //0x0000b870 .quad 6144684325637283947 - 0x3d, 0x18, 0xc4, 0xb6, 0x7b, 0x73, 0xed, 0x9c, //0x0000b878 .quad -7138922859127891907 - 0x86, 0xb8, 0x26, 0x3c, 0x4c, 0xe1, 0x97, 0xaa, //0x0000b880 .quad -6154202648235558778 - 0x4c, 0x1e, 0x75, 0xa4, 0x5a, 0xd0, 0x28, 0xc4, //0x0000b888 .quad -4311967555482476980 - 0xa8, 0x66, 0x30, 0x4b, 0x9f, 0xd9, 0x3d, 0xd5, //0x0000b890 .quad -3081067291867060568 - 0xdf, 0x65, 0x92, 0x4d, 0x71, 0x04, 0x33, 0xf5, //0x0000b898 .quad -778273425925708321 - 0x29, 0x40, 0xfe, 0x8e, 0x03, 0xa8, 0x46, 0xe5, //0x0000b8a0 .quad -1925667057416912855 - 0xab, 0x7f, 0x7b, 0xd0, 0xc6, 0xe2, 0x3f, 0x99, //0x0000b8a8 .quad -7403949918844649557 - 0x33, 0xd0, 0xbd, 0x72, 0x04, 0x52, 0x98, 0xde, //0x0000b8b0 .quad -2407083821771141069 - 0x96, 0x5f, 0x9a, 0x84, 0x78, 0xdb, 0x8f, 0xbf, //0x0000b8b8 .quad -4643251380128424042 - 0x40, 0x44, 0x6d, 0x8f, 0x85, 0x66, 0x3e, 0x96, //0x0000b8c0 .quad -7620540795641314240 - 0x7c, 0xf7, 0xc0, 0xa5, 0x56, 0xd2, 0x73, 0xef, //0x0000b8c8 .quad -1192378206733142148 - 0xa8, 0x4a, 0xa4, 0x79, 0x13, 0x00, 0xe7, 0xdd, //0x0000b8d0 .quad -2456994988062127448 - 0xad, 0x9a, 0x98, 0x27, 0x76, 0x63, 0xa8, 0x95, //0x0000b8d8 .quad -7662765406849295699 - 0x52, 0x5d, 0x0d, 0x58, 0x18, 0xc0, 0x60, 0x55, //0x0000b8e0 .quad 6152128301777116498 - 0x59, 0xc1, 0x7e, 0xb1, 0x53, 0x7c, 0x12, 0xbb, //0x0000b8e8 .quad -4966770740134231719 - 0xa6, 0xb4, 0x10, 0x6e, 0x1e, 0xf0, 0xb8, 0xaa, //0x0000b8f0 .quad -6144897678060768090 - 0xaf, 0x71, 0xde, 0x9d, 0x68, 0x1b, 0xd7, 0xe9, //0x0000b8f8 .quad -1596777406740401745 - 0xe8, 0x70, 0xca, 0x04, 0x13, 0x96, 0xb3, 0xca, //0x0000b900 .quad -3840561048787980056 - 0x0d, 0x07, 0xab, 0x62, 0x21, 0x71, 0x26, 0x92, //0x0000b908 .quad -7915514906853832947 - 0x22, 0x0d, 0xfd, 0xc5, 0x97, 0x7b, 0x60, 0x3d, //0x0000b910 .quad 4422670725869800738 - 0xd1, 0xc8, 0x55, 0xbb, 0x69, 0x0d, 0xb0, 0xb6, //0x0000b918 .quad -5282707615139903279 - 0x6a, 0x50, 0x7c, 0xb7, 0x7d, 0x9a, 0xb8, 0x8c, //0x0000b920 .quad -8306719647944912790 - 0x05, 0x3b, 0x2b, 0x2a, 0xc4, 0x10, 0x5c, 0xe4, //0x0000b928 .quad -1991698500497491195 - 0x42, 0xb2, 0xad, 0x92, 0x8e, 0x60, 0xf3, 0x77, //0x0000b930 .quad 8643358275316593218 - 0xe3, 0x04, 0x5b, 0x9a, 0x7a, 0x8a, 0xb9, 0x8e, //0x0000b938 .quad -8162340590452013853 - 0xd3, 0x1e, 0x59, 0x37, 0xb2, 0x38, 0xf0, 0x55, //0x0000b940 .quad 6192511825718353619 - 0x1c, 0xc6, 0xf1, 0x40, 0x19, 0xed, 0x67, 0xb2, //0x0000b948 .quad -5591239719637629412 - 0x88, 0x66, 0x2f, 0xc5, 0xde, 0x46, 0x6c, 0x6b, //0x0000b950 .quad 7740639782147942024 - 0xa3, 0x37, 0x2e, 0x91, 0x5f, 0xe8, 0x01, 0xdf, //0x0000b958 .quad -2377363631119648861 - 0x15, 0xa0, 0x3d, 0x3b, 0x4b, 0xac, 0x23, 0x23, //0x0000b960 .quad 2532056854628769813 - 0xc6, 0xe2, 0xbc, 0xba, 0x3b, 0x31, 0x61, 0x8b, //0x0000b968 .quad -8403381297090862394 - 0x1a, 0x08, 0x0d, 0x0a, 0x5e, 0x97, 0xec, 0xab, //0x0000b970 .quad -6058300968568813542 - 0x77, 0x1b, 0x6c, 0xa9, 0x8a, 0x7d, 0x39, 0xae, //0x0000b978 .quad -5892540602936190089 - 0x21, 0x4a, 0x90, 0x8c, 0x35, 0xbd, 0xe7, 0x96, //0x0000b980 .quad -7572876210711016927 - 0x55, 0x22, 0xc7, 0x53, 0xed, 0xdc, 0xc7, 0xd9, //0x0000b988 .quad -2753989735242849707 - 0x54, 0x2e, 0xda, 0x77, 0x41, 0xd6, 0x50, 0x7e, //0x0000b990 .quad 9102010423587778132 - 0x75, 0x75, 0x5c, 0x54, 0x14, 0xea, 0x1c, 0x88, //0x0000b998 .quad -8638772612167862923 - 0xe9, 0xb9, 0xd0, 0xd5, 0xd1, 0x0b, 0xe5, 0xdd, //0x0000b9a0 .quad -2457545025797441047 - 0xd2, 0x92, 0x73, 0x69, 0x99, 0x24, 0x24, 0xaa, //0x0000b9a8 .quad -6186779746782440750 - 0x64, 0xe8, 0x44, 0x4b, 0xc6, 0x4e, 0x5e, 0x95, //0x0000b9b0 .quad -7683617300674189212 - 0x87, 0x77, 0xd0, 0xc3, 0xbf, 0x2d, 0xad, 0xd4, //0x0000b9b8 .quad -3121788665050663033 - 0x3e, 0x11, 0x0b, 0xef, 0x3b, 0xf1, 0x5a, 0xbd, //0x0000b9c0 .quad -4802260812921368258 - 0xb4, 0x4a, 0x62, 0xda, 0x97, 0x3c, 0xec, 0x84, //0x0000b9c8 .quad -8868646943297746252 - 0x8e, 0xd5, 0xcd, 0xea, 0x8a, 0xad, 0xb1, 0xec, //0x0000b9d0 .quad -1391139997724322418 - 0x61, 0xdd, 0xfa, 0xd0, 0xbd, 0x4b, 0x27, 0xa6, //0x0000b9d8 .quad -6474122660694794911 - 0xf2, 0x4a, 0x81, 0xa5, 0xed, 0x18, 0xde, 0x67, //0x0000b9e0 .quad 7484447039699372786 - 0xba, 0x94, 0x39, 0x45, 0xad, 0x1e, 0xb1, 0xcf, //0x0000b9e8 .quad -3480967307441105734 - 0xd7, 0xce, 0x70, 0x87, 0x94, 0xcf, 0xea, 0x80, //0x0000b9f0 .quad -9157278655470055721 - 0xf4, 0xfc, 0x43, 0x4b, 0x2c, 0xb3, 0xce, 0x81, //0x0000b9f8 .quad -9093133594791772940 - 0x8d, 0x02, 0x4d, 0xa9, 0x79, 0x83, 0x25, 0xa1, //0x0000ba00 .quad -6834912300910181747 - 0x31, 0xfc, 0x14, 0x5e, 0xf7, 0x5f, 0x42, 0xa2, //0x0000ba08 .quad -6754730975062328271 - 0x30, 0x43, 0xa0, 0x13, 0x58, 0xe4, 0x6e, 0x09, //0x0000ba10 .quad 679731660717048624 - 0x3e, 0x3b, 0x9a, 0x35, 0xf5, 0xf7, 0xd2, 0xca, //0x0000ba18 .quad -3831727700400522434 - 0xfc, 0x53, 0x88, 0x18, 0x6e, 0x9d, 0xca, 0x8b, //0x0000ba20 .quad -8373707460958465028 - 0x0d, 0xca, 0x00, 0x83, 0xf2, 0xb5, 0x87, 0xfd, //0x0000ba28 .quad -177973607073265139 - 0x7d, 0x34, 0x55, 0xcf, 0x64, 0xa2, 0x5e, 0x77, //0x0000ba30 .quad 8601490892183123069 - 0x48, 0x7e, 0xe0, 0x91, 0xb7, 0xd1, 0x74, 0x9e, //0x0000ba38 .quad -7028762532061872568 - 0x9d, 0x81, 0x2a, 0x03, 0xfe, 0x4a, 0x36, 0x95, //0x0000ba40 .quad -7694880458480647779 - 0xda, 0x9d, 0x58, 0x76, 0x25, 0x06, 0x12, 0xc6, //0x0000ba48 .quad -4174267146649952806 - 0x04, 0x22, 0xf5, 0x83, 0xbd, 0xdd, 0x83, 0x3a, //0x0000ba50 .quad 4216457482181353988 - 0x51, 0xc5, 0xee, 0xd3, 0xae, 0x87, 0x96, 0xf7, //0x0000ba58 .quad -606147914885053103 - 0x42, 0x35, 0x79, 0x72, 0x96, 0x6a, 0x92, 0xc4, //0x0000ba60 .quad -4282243101277735614 - 0x52, 0x3b, 0x75, 0x44, 0xcd, 0x14, 0xbe, 0x9a, //0x0000ba68 .quad -7296371474444240046 - 0x93, 0x82, 0x17, 0x0f, 0x3c, 0x05, 0xb7, 0x75, //0x0000ba70 .quad 8482254178684994195 - 0x27, 0x8a, 0x92, 0x95, 0x00, 0x9a, 0x6d, 0xc1, //0x0000ba78 .quad -4508778324627912153 - 0x38, 0x63, 0xdd, 0x12, 0x8b, 0xc6, 0x24, 0x53, //0x0000ba80 .quad 5991131704928854840 - 0xb1, 0x2c, 0xf7, 0xba, 0x80, 0x00, 0xc9, 0xf1, //0x0000ba88 .quad -1024286887357502287 - 0x03, 0x5e, 0xca, 0xeb, 0x16, 0xfc, 0xf6, 0xd3, //0x0000ba90 .quad -3173071712060547581 - 0xee, 0x7b, 0xda, 0x74, 0x50, 0xa0, 0x1d, 0x97, //0x0000ba98 .quad -7557708332239520786 - 0x84, 0xf5, 0xbc, 0xa6, 0x1c, 0xbb, 0xf4, 0x88, //0x0000baa0 .quad -8578025658503072380 - 0xea, 0x1a, 0x11, 0x92, 0x64, 0x08, 0xe5, 0xbc, //0x0000baa8 .quad -4835449396872013078 - 0xe5, 0x32, 0x6c, 0xd0, 0xe3, 0xe9, 0x31, 0x2b, //0x0000bab0 .quad 3112525982153323237 - 0xa5, 0x61, 0x95, 0xb6, 0x7d, 0x4a, 0x1e, 0xec, //0x0000bab8 .quad -1432625727662628443 - 0xcf, 0x9f, 0x43, 0x62, 0x2e, 0x32, 0xff, 0x3a, //0x0000bac0 .quad 4251171748059520975 - 0x07, 0x5d, 0x1d, 0x92, 0x8e, 0xee, 0x92, 0x93, //0x0000bac8 .quad -7812920107430224633 - 0xc2, 0x87, 0xd4, 0xfa, 0xb9, 0xfe, 0xbe, 0x09, //0x0000bad0 .quad 702278666647013314 - 0x49, 0xb4, 0xa4, 0x36, 0x32, 0xaa, 0x77, 0xb8, //0x0000bad8 .quad -5154464115860392887 - 0xb3, 0xa9, 0x89, 0x79, 0x68, 0xbe, 0x2e, 0x4c, //0x0000bae0 .quad 5489534351736154547 - 0x5b, 0xe1, 0x4d, 0xc4, 0xbe, 0x94, 0x95, 0xe6, //0x0000bae8 .quad -1831394126398103205 - 0x10, 0x0a, 0xf6, 0x4b, 0x01, 0x37, 0x9d, 0x0f, //0x0000baf0 .quad 1125115960621402640 - 0xd9, 0xac, 0xb0, 0x3a, 0xf7, 0x7c, 0x1d, 0x90, //0x0000baf8 .quad -8062150356639896359 - 0x94, 0x8c, 0xf3, 0x9e, 0xc1, 0x84, 0x84, 0x53, //0x0000bb00 .quad 6018080969204141204 - 0x0f, 0xd8, 0x5c, 0x09, 0x35, 0xdc, 0x24, 0xb4, //0x0000bb08 .quad -5466001927372482545 - 0xb9, 0x6f, 0xb0, 0x06, 0xf2, 0xa5, 0x65, 0x28, //0x0000bb10 .quad 2910915193077788601 - 0x13, 0x0e, 0xb4, 0x4b, 0x42, 0x13, 0x2e, 0xe1, //0x0000bb18 .quad -2220816390788215277 - 0xd3, 0x45, 0x2e, 0x44, 0xb7, 0x87, 0x3f, 0xf9, //0x0000bb20 .quad -486521013540076077 - 0xcb, 0x88, 0x50, 0x6f, 0x09, 0xcc, 0xbc, 0x8c, //0x0000bb28 .quad -8305539271883716405 - 0x48, 0xd7, 0x39, 0x15, 0xa5, 0x69, 0x8f, 0xf7, //0x0000bb30 .quad -608151266925095096 - 0xfe, 0xaa, 0x24, 0xcb, 0x0b, 0xff, 0xeb, 0xaf, //0x0000bb38 .quad -5770238071427257602 - 0x1b, 0x4d, 0x88, 0x5a, 0x0e, 0x44, 0x73, 0xb5, //0x0000bb40 .quad -5371875102083756773 - 0xbe, 0xd5, 0xed, 0xbd, 0xce, 0xfe, 0xe6, 0xdb, //0x0000bb48 .quad -2601111570856684098 - 0x30, 0x30, 0x95, 0xf8, 0x88, 0x0a, 0x68, 0x31, //0x0000bb50 .quad 3560107088838733872 - 0x97, 0xa5, 0xb4, 0x36, 0x41, 0x5f, 0x70, 0x89, //0x0000bb58 .quad -8543223759426509417 - 0x3d, 0x7c, 0xba, 0x36, 0x2b, 0x0d, 0xc2, 0xfd, //0x0000bb60 .quad -161552157378970563 - 0xfc, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x0000bb68 .quad -6067343680855748868 - 0x4c, 0x1b, 0x69, 0x04, 0x76, 0x90, 0x32, 0x3d, //0x0000bb70 .quad 4409745821703674700 - 0xbc, 0x42, 0x7a, 0xe5, 0xd5, 0x94, 0xbf, 0xd6, //0x0000bb78 .quad -2972493582642298180 - 0x0f, 0xb1, 0xc1, 0xc2, 0x49, 0x9a, 0x3f, 0xa6, //0x0000bb80 .quad -6467280898289979121 - 0xb5, 0x69, 0x6c, 0xaf, 0x05, 0xbd, 0x37, 0x86, //0x0000bb88 .quad -8775337516792518219 - 0x53, 0x1d, 0x72, 0x33, 0xdc, 0x80, 0xcf, 0x0f, //0x0000bb90 .quad 1139270913992301907 - 0x23, 0x84, 0x47, 0x1b, 0x47, 0xac, 0xc5, 0xa7, //0x0000bb98 .quad -6357485877563259869 - 0xa8, 0xa4, 0x4e, 0x40, 0x13, 0x61, 0xc3, 0xd3, //0x0000bba0 .quad -3187597375937010520 - 0x2b, 0x65, 0x19, 0xe2, 0x58, 0x17, 0xb7, 0xd1, //0x0000bba8 .quad -3335171328526686933 - 0xe9, 0x26, 0x31, 0x08, 0xac, 0x1c, 0x5a, 0x64, //0x0000bbb0 .quad 7231123676894144233 - 0x3b, 0xdf, 0x4f, 0x8d, 0x97, 0x6e, 0x12, 0x83, //0x0000bbb8 .quad -9002011107970261189 - 0xa3, 0x70, 0x3d, 0x0a, 0xd7, 0xa3, 0x70, 0x3d, //0x0000bbc0 .quad 4427218577690292387 - 0x0a, 0xd7, 0xa3, 0x70, 0x3d, 0x0a, 0xd7, 0xa3, //0x0000bbc8 .quad -6640827866535438582 - 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x0000bbd0 QUAD $0xcccccccccccccccc; QUAD $0xcccccccccccccccc // .space 16, '\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000bbe0 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x0000bbe8 .quad -9223372036854775808 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000bbf0 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, //0x0000bbf8 .quad -6917529027641081856 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000bc00 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc8, //0x0000bc08 .quad -4035225266123964416 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000bc10 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, //0x0000bc18 .quad -432345564227567616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000bc20 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x9c, //0x0000bc28 .quad -7187745005283311616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000bc30 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0xc3, //0x0000bc38 .quad -4372995238176751616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000bc40 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0xf4, //0x0000bc48 .quad -854558029293551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000bc50 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x96, 0x98, //0x0000bc58 .quad -7451627795949551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000bc60 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xbc, 0xbe, //0x0000bc68 .quad -4702848726509551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000bc70 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x6b, 0xee, //0x0000bc78 .quad -1266874889709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000bc80 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0xf9, 0x02, 0x95, //0x0000bc88 .quad -7709325833709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000bc90 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x40, 0xb7, 0x43, 0xba, //0x0000bc98 .quad -5024971273709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000bca0 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x10, 0xa5, 0xd4, 0xe8, //0x0000bca8 .quad -1669528073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000bcb0 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x2a, 0xe7, 0x84, 0x91, //0x0000bcb8 .quad -7960984073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000bcc0 .quad 0 - 0x00, 0x00, 0x00, 0x80, 0xf4, 0x20, 0xe6, 0xb5, //0x0000bcc8 .quad -5339544073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000bcd0 .quad 0 - 0x00, 0x00, 0x00, 0xa0, 0x31, 0xa9, 0x5f, 0xe3, //0x0000bcd8 .quad -2062744073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000bce0 .quad 0 - 0x00, 0x00, 0x00, 0x04, 0xbf, 0xc9, 0x1b, 0x8e, //0x0000bce8 .quad -8206744073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000bcf0 .quad 0 - 0x00, 0x00, 0x00, 0xc5, 0x2e, 0xbc, 0xa2, 0xb1, //0x0000bcf8 .quad -5646744073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000bd00 .quad 0 - 0x00, 0x00, 0x40, 0x76, 0x3a, 0x6b, 0x0b, 0xde, //0x0000bd08 .quad -2446744073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000bd10 .quad 0 - 0x00, 0x00, 0xe8, 0x89, 0x04, 0x23, 0xc7, 0x8a, //0x0000bd18 .quad -8446744073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000bd20 .quad 0 - 0x00, 0x00, 0x62, 0xac, 0xc5, 0xeb, 0x78, 0xad, //0x0000bd28 .quad -5946744073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000bd30 .quad 0 - 0x00, 0x80, 0x7a, 0x17, 0xb7, 0x26, 0xd7, 0xd8, //0x0000bd38 .quad -2821744073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000bd40 .quad 0 - 0x00, 0x90, 0xac, 0x6e, 0x32, 0x78, 0x86, 0x87, //0x0000bd48 .quad -8681119073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000bd50 .quad 0 - 0x00, 0xb4, 0x57, 0x0a, 0x3f, 0x16, 0x68, 0xa9, //0x0000bd58 .quad -6239712823709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000bd60 .quad 0 - 0x00, 0xa1, 0xed, 0xcc, 0xce, 0x1b, 0xc2, 0xd3, //0x0000bd68 .quad -3187955011209551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000bd70 .quad 0 - 0xa0, 0x84, 0x14, 0x40, 0x61, 0x51, 0x59, 0x84, //0x0000bd78 .quad -8910000909647051616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000bd80 .quad 0 - 0xc8, 0xa5, 0x19, 0x90, 0xb9, 0xa5, 0x6f, 0xa5, //0x0000bd88 .quad -6525815118631426616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000bd90 .quad 0 - 0x3a, 0x0f, 0x20, 0xf4, 0x27, 0x8f, 0xcb, 0xce, //0x0000bd98 .quad -3545582879861895366 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, //0x0000bda0 .quad 4611686018427387904 - 0x84, 0x09, 0x94, 0xf8, 0x78, 0x39, 0x3f, 0x81, //0x0000bda8 .quad -9133518327554766460 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, //0x0000bdb0 .quad 5764607523034234880 - 0xe5, 0x0b, 0xb9, 0x36, 0xd7, 0x07, 0x8f, 0xa1, //0x0000bdb8 .quad -6805211891016070171 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa4, //0x0000bdc0 .quad -6629298651489370112 - 0xde, 0x4e, 0x67, 0x04, 0xcd, 0xc9, 0xf2, 0xc9, //0x0000bdc8 .quad -3894828845342699810 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4d, //0x0000bdd0 .quad 5548434740920451072 - 0x96, 0x22, 0x81, 0x45, 0x40, 0x7c, 0x6f, 0xfc, //0x0000bdd8 .quad -256850038250986858 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xf0, //0x0000bde0 .quad -1143914305352105984 - 0x9d, 0xb5, 0x70, 0x2b, 0xa8, 0xad, 0xc5, 0x9d, //0x0000bde8 .quad -7078060301547948643 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x6c, //0x0000bdf0 .quad 7793479155164643328 - 0x05, 0xe3, 0x4c, 0x36, 0x12, 0x19, 0x37, 0xc5, //0x0000bdf8 .quad -4235889358507547899 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0xc7, //0x0000be00 .quad -4093209111326359552 - 0xc6, 0x1b, 0xe0, 0xc3, 0x56, 0xdf, 0x84, 0xf6, //0x0000be08 .quad -683175679707046970 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7f, 0x3c, //0x0000be10 .quad 4359273333062107136 - 0x5c, 0x11, 0x6c, 0x3a, 0x96, 0x0b, 0x13, 0x9a, //0x0000be18 .quad -7344513827457986212 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x9f, 0x4b, //0x0000be20 .quad 5449091666327633920 - 0xb3, 0x15, 0x07, 0xc9, 0x7b, 0xce, 0x97, 0xc0, //0x0000be28 .quad -4568956265895094861 - 0x00, 0x00, 0x00, 0x00, 0x00, 0xd4, 0x86, 0x1e, //0x0000be30 .quad 2199678564482154496 - 0x20, 0xdb, 0x48, 0xbb, 0x1a, 0xc2, 0xbd, 0xf0, //0x0000be38 .quad -1099509313941480672 - 0x00, 0x00, 0x00, 0x00, 0x80, 0x44, 0x14, 0x13, //0x0000be40 .quad 1374799102801346560 - 0xf4, 0x88, 0x0d, 0xb5, 0x50, 0x99, 0x76, 0x96, //0x0000be48 .quad -7604722348854507276 - 0x00, 0x00, 0x00, 0x00, 0xa0, 0x55, 0xd9, 0x17, //0x0000be50 .quad 1718498878501683200 - 0x31, 0xeb, 0x50, 0xe2, 0xa4, 0x3f, 0x14, 0xbc, //0x0000be58 .quad -4894216917640746191 - 0x00, 0x00, 0x00, 0x00, 0x08, 0xab, 0xcf, 0x5d, //0x0000be60 .quad 6759809616554491904 - 0xfd, 0x25, 0xe5, 0x1a, 0x8e, 0x4f, 0x19, 0xeb, //0x0000be68 .quad -1506085128623544835 - 0x00, 0x00, 0x00, 0x00, 0xe5, 0xca, 0xa1, 0x5a, //0x0000be70 .quad 6530724019560251392 - 0xbe, 0x37, 0xcf, 0xd0, 0xb8, 0xd1, 0xef, 0x92, //0x0000be78 .quad -7858832233030797378 - 0x00, 0x00, 0x00, 0x40, 0x9e, 0x3d, 0x4a, 0xf1, //0x0000be80 .quad -1059967012404461568 - 0xad, 0x05, 0x03, 0x05, 0x27, 0xc6, 0xab, 0xb7, //0x0000be88 .quad -5211854272861108819 - 0x00, 0x00, 0x00, 0xd0, 0x05, 0xcd, 0x9c, 0x6d, //0x0000be90 .quad 7898413271349198848 - 0x19, 0xc7, 0x43, 0xc6, 0xb0, 0xb7, 0x96, 0xe5, //0x0000be98 .quad -1903131822648998119 - 0x00, 0x00, 0x00, 0xa2, 0x23, 0x00, 0x82, 0xe4, //0x0000bea0 .quad -1981020733047832576 - 0x6f, 0x5c, 0xea, 0x7b, 0xce, 0x32, 0x7e, 0x8f, //0x0000bea8 .quad -8106986416796705681 - 0x00, 0x00, 0x80, 0x8a, 0x2c, 0x80, 0xa2, 0xdd, //0x0000beb0 .quad -2476275916309790720 - 0x8b, 0xf3, 0xe4, 0x1a, 0x82, 0xbf, 0x5d, 0xb3, //0x0000beb8 .quad -5522047002568494197 - 0x00, 0x00, 0x20, 0xad, 0x37, 0x20, 0x0b, 0xd5, //0x0000bec0 .quad -3095344895387238400 - 0x6e, 0x30, 0x9e, 0xa1, 0x62, 0x2f, 0x35, 0xe0, //0x0000bec8 .quad -2290872734783229842 - 0x00, 0x00, 0x34, 0xcc, 0x22, 0xf4, 0x26, 0x45, //0x0000bed0 .quad 4982938468024057856 - 0x45, 0xde, 0x02, 0xa5, 0x9d, 0x3d, 0x21, 0x8c, //0x0000bed8 .quad -8349324486880600507 - 0x00, 0x00, 0x41, 0x7f, 0x2b, 0xb1, 0x70, 0x96, //0x0000bee0 .quad -7606384970252091392 - 0xd6, 0x95, 0x43, 0x0e, 0x05, 0x8d, 0x29, 0xaf, //0x0000bee8 .quad -5824969590173362730 - 0x00, 0x40, 0x11, 0x5f, 0x76, 0xdd, 0x0c, 0x3c, //0x0000bef0 .quad 4327076842467049472 - 0x4c, 0x7b, 0xd4, 0x51, 0x46, 0xf0, 0xf3, 0xda, //0x0000bef8 .quad -2669525969289315508 - 0x00, 0xc8, 0x6a, 0xfb, 0x69, 0x0a, 0x88, 0xa5, //0x0000bf00 .quad -6518949010312869888 - 0x0f, 0xcd, 0x24, 0xf3, 0x2b, 0x76, 0xd8, 0x88, //0x0000bf08 .quad -8585982758446904049 - 0x00, 0x7a, 0x45, 0x7a, 0x04, 0x0d, 0xea, 0x8e, //0x0000bf10 .quad -8148686262891087360 - 0x53, 0x00, 0xee, 0xef, 0xb6, 0x93, 0x0e, 0xab, //0x0000bf18 .quad -6120792429631242157 - 0x80, 0xd8, 0xd6, 0x98, 0x45, 0x90, 0xa4, 0x72, //0x0000bf20 .quad 8260886245095692416 - 0x68, 0x80, 0xe9, 0xab, 0xa4, 0x38, 0xd2, 0xd5, //0x0000bf28 .quad -3039304518611664792 - 0x50, 0x47, 0x86, 0x7f, 0x2b, 0xda, 0xa6, 0x47, //0x0000bf30 .quad 5163053903184807760 - 0x41, 0xf0, 0x71, 0xeb, 0x66, 0x63, 0xa3, 0x85, //0x0000bf38 .quad -8817094351773372351 - 0x24, 0xd9, 0x67, 0x5f, 0xb6, 0x90, 0x90, 0x99, //0x0000bf40 .quad -7381240676301154012 - 0x51, 0x6c, 0x4e, 0xa6, 0x40, 0x3c, 0x0c, 0xa7, //0x0000bf48 .quad -6409681921289327535 - 0x6d, 0xcf, 0x41, 0xf7, 0xe3, 0xb4, 0xf4, 0xff, //0x0000bf50 .quad -3178808521666707 - 0x65, 0x07, 0xe2, 0xcf, 0x50, 0x4b, 0xcf, 0xd0, //0x0000bf58 .quad -3400416383184271515 - 0xa4, 0x21, 0x89, 0x7a, 0x0e, 0xf1, 0xf8, 0xbf, //0x0000bf60 .quad -4613672773753429596 - 0x9f, 0x44, 0xed, 0x81, 0x12, 0x8f, 0x81, 0x82, //0x0000bf68 .quad -9042789267131251553 - 0x0d, 0x6a, 0x2b, 0x19, 0x52, 0x2d, 0xf7, 0xaf, //0x0000bf70 .quad -5767090967191786995 - 0xc7, 0x95, 0x68, 0x22, 0xd7, 0xf2, 0x21, 0xa3, //0x0000bf78 .quad -6691800565486676537 - 0x90, 0x44, 0x76, 0x9f, 0xa6, 0xf8, 0xf4, 0x9b, //0x0000bf80 .quad -7208863708989733744 - 0x39, 0xbb, 0x02, 0xeb, 0x8c, 0x6f, 0xea, 0xcb, //0x0000bf88 .quad -3753064688430957767 - 0xb4, 0xd5, 0x53, 0x47, 0xd0, 0x36, 0xf2, 0x02, //0x0000bf90 .quad 212292400617608628 - 0x08, 0x6a, 0xc3, 0x25, 0x70, 0x0b, 0xe5, 0xfe, //0x0000bf98 .quad -79644842111309304 - 0x90, 0x65, 0x94, 0x2c, 0x42, 0x62, 0xd7, 0x01, //0x0000bfa0 .quad 132682750386005392 - 0x45, 0x22, 0x9a, 0x17, 0x26, 0x27, 0x4f, 0x9f, //0x0000bfa8 .quad -6967307053960650171 - 0xf5, 0x7e, 0xb9, 0xb7, 0xd2, 0x3a, 0x4d, 0x42, //0x0000bfb0 .quad 4777539456409894645 - 0xd6, 0xaa, 0x80, 0x9d, 0xef, 0xf0, 0x22, 0xc7, //0x0000bfb8 .quad -4097447799023424810 - 0xb2, 0xde, 0xa7, 0x65, 0x87, 0x89, 0xe0, 0xd2, //0x0000bfc0 .quad -3251447716342407502 - 0x8b, 0xd5, 0xe0, 0x84, 0x2b, 0xad, 0xeb, 0xf8, //0x0000bfc8 .quad -510123730351893109 - 0x2f, 0xeb, 0x88, 0x9f, 0xf4, 0x55, 0xcc, 0x63, //0x0000bfd0 .quad 7191217214140771119 - 0x77, 0x85, 0x0c, 0x33, 0x3b, 0x4c, 0x93, 0x9b, //0x0000bfd8 .quad -7236356359111015049 - 0xfb, 0x25, 0x6b, 0xc7, 0x71, 0x6b, 0xbf, 0x3c, //0x0000bfe0 .quad 4377335499248575995 - 0xd5, 0xa6, 0xcf, 0xff, 0x49, 0x1f, 0x78, 0xc2, //0x0000bfe8 .quad -4433759430461380907 - 0x7a, 0xef, 0x45, 0x39, 0x4e, 0x46, 0xef, 0x8b, //0x0000bff0 .quad -8363388681221443718 - 0x8a, 0x90, 0xc3, 0x7f, 0x1c, 0x27, 0x16, 0xf3, //0x0000bff8 .quad -930513269649338230 - 0xac, 0xb5, 0xcb, 0xe3, 0xf0, 0x8b, 0x75, 0x97, //0x0000c000 .quad -7532960934977096276 - 0x56, 0x3a, 0xda, 0xcf, 0x71, 0xd8, 0xed, 0x97, //0x0000c008 .quad -7499099821171918250 - 0x17, 0xa3, 0xbe, 0x1c, 0xed, 0xee, 0x52, 0x3d, //0x0000c010 .quad 4418856886560793367 - 0xec, 0xc8, 0xd0, 0x43, 0x8e, 0x4e, 0xe9, 0xbd, //0x0000c018 .quad -4762188758037509908 - 0xdd, 0x4b, 0xee, 0x63, 0xa8, 0xaa, 0xa7, 0x4c, //0x0000c020 .quad 5523571108200991709 - 0x27, 0xfb, 0xc4, 0xd4, 0x31, 0xa2, 0x63, 0xed, //0x0000c028 .quad -1341049929119499481 - 0x6a, 0xef, 0x74, 0x3e, 0xa9, 0xca, 0xe8, 0x8f, //0x0000c030 .quad -8076983103442849942 - 0xf8, 0x1c, 0xfb, 0x24, 0x5f, 0x45, 0x5e, 0x94, //0x0000c038 .quad -7755685233340769032 - 0x44, 0x2b, 0x12, 0x8e, 0x53, 0xfd, 0xe2, 0xb3, //0x0000c040 .quad -5484542860876174524 - 0x36, 0xe4, 0x39, 0xee, 0xb6, 0xd6, 0x75, 0xb9, //0x0000c048 .quad -5082920523248573386 - 0x16, 0xb6, 0x96, 0x71, 0xa8, 0xbc, 0xdb, 0x60, //0x0000c050 .quad 6979379479186945558 - 0x44, 0x5d, 0xc8, 0xa9, 0x64, 0x4c, 0xd3, 0xe7, //0x0000c058 .quad -1741964635633328828 - 0xcd, 0x31, 0xfe, 0x46, 0xe9, 0x55, 0x89, 0xbc, //0x0000c060 .quad -4861259862362934835 - 0x4a, 0x3a, 0x1d, 0xea, 0xbe, 0x0f, 0xe4, 0x90, //0x0000c068 .quad -8006256924911912374 - 0x41, 0xbe, 0xbd, 0x98, 0x63, 0xab, 0xab, 0x6b, //0x0000c070 .quad 7758483227328495169 - 0xdd, 0x88, 0xa4, 0xa4, 0xae, 0x13, 0x1d, 0xb5, //0x0000c078 .quad -5396135137712502563 - 0xd1, 0x2d, 0xed, 0x7e, 0x3c, 0x96, 0x96, 0xc6, //0x0000c080 .quad -4136954021121544751 - 0x14, 0xab, 0xcd, 0x4d, 0x9a, 0x58, 0x64, 0xe2, //0x0000c088 .quad -2133482903713240300 - 0xa2, 0x3c, 0x54, 0xcf, 0xe5, 0x1d, 0x1e, 0xfc, //0x0000c090 .quad -279753253987271518 - 0xec, 0x8a, 0xa0, 0x70, 0x60, 0xb7, 0x7e, 0x8d, //0x0000c098 .quad -8250955842461857044 - 0xcb, 0x4b, 0x29, 0x43, 0x5f, 0xa5, 0x25, 0x3b, //0x0000c0a0 .quad 4261994450943298507 - 0xa8, 0xad, 0xc8, 0x8c, 0x38, 0x65, 0xde, 0xb0, //0x0000c0a8 .quad -5702008784649933400 - 0xbe, 0x9e, 0xf3, 0x13, 0xb7, 0x0e, 0xef, 0x49, //0x0000c0b0 .quad 5327493063679123134 - 0x12, 0xd9, 0xfa, 0xaf, 0x86, 0xfe, 0x15, 0xdd, //0x0000c0b8 .quad -2515824962385028846 - 0x37, 0x43, 0x78, 0x6c, 0x32, 0x69, 0x35, 0x6e, //0x0000c0c0 .quad 7941369183226839863 - 0xab, 0xc7, 0xfc, 0x2d, 0x14, 0xbf, 0x2d, 0x8a, //0x0000c0c8 .quad -8489919629131724885 - 0x04, 0x54, 0x96, 0x07, 0x7f, 0xc3, 0xc2, 0x49, //0x0000c0d0 .quad 5315025460606161924 - 0x96, 0xf9, 0x7b, 0x39, 0xd9, 0x2e, 0xb9, 0xac, //0x0000c0d8 .quad -6000713517987268202 - 0x06, 0xe9, 0x7b, 0xc9, 0x5e, 0x74, 0x33, 0xdc, //0x0000c0e0 .quad -2579590211097073402 - 0xfb, 0xf7, 0xda, 0x87, 0x8f, 0x7a, 0xe7, 0xd7, //0x0000c0e8 .quad -2889205879056697349 - 0xa3, 0x71, 0xed, 0x3d, 0xbb, 0x28, 0xa0, 0x69, //0x0000c0f0 .quad 7611128154919104931 - 0xfd, 0xda, 0xe8, 0xb4, 0x99, 0xac, 0xf0, 0x86, //0x0000c0f8 .quad -8723282702051517699 - 0x0c, 0xce, 0x68, 0x0d, 0xea, 0x32, 0x08, 0xc4, //0x0000c100 .quad -4321147861633282548 - 0xbc, 0x11, 0x23, 0x22, 0xc0, 0xd7, 0xac, 0xa8, //0x0000c108 .quad -6292417359137009220 - 0x90, 0x01, 0xc3, 0x90, 0xa4, 0x3f, 0x0a, 0xf5, //0x0000c110 .quad -789748808614215280 - 0x2b, 0xd6, 0xab, 0x2a, 0xb0, 0x0d, 0xd8, 0xd2, //0x0000c118 .quad -3253835680493873621 - 0xfa, 0xe0, 0x79, 0xda, 0xc6, 0x67, 0x26, 0x79, //0x0000c120 .quad 8729779031470891258 - 0xdb, 0x65, 0xab, 0x1a, 0x8e, 0x08, 0xc7, 0x83, //0x0000c128 .quad -8951176327949752869 - 0x38, 0x59, 0x18, 0x91, 0xb8, 0x01, 0x70, 0x57, //0x0000c130 .quad 6300537770911226168 - 0x52, 0x3f, 0x56, 0xa1, 0xb1, 0xca, 0xb8, 0xa4, //0x0000c138 .quad -6577284391509803182 - 0x86, 0x6f, 0x5e, 0xb5, 0x26, 0x02, 0x4c, 0xed, //0x0000c140 .quad -1347699823215743098 - 0x26, 0xcf, 0xab, 0x09, 0x5e, 0xfd, 0xe6, 0xcd, //0x0000c148 .quad -3609919470959866074 - 0xb4, 0x05, 0x5b, 0x31, 0x58, 0x81, 0x4f, 0x54, //0x0000c150 .quad 6075216638131242420 - 0x78, 0x61, 0x0b, 0xc6, 0x5a, 0x5e, 0xb0, 0x80, //0x0000c158 .quad -9173728696990998152 - 0x21, 0xc7, 0xb1, 0x3d, 0xae, 0x61, 0x63, 0x69, //0x0000c160 .quad 7594020797664053025 - 0xd6, 0x39, 0x8e, 0x77, 0xf1, 0x75, 0xdc, 0xa0, //0x0000c168 .quad -6855474852811359786 - 0xe9, 0x38, 0x1e, 0xcd, 0x19, 0x3a, 0xbc, 0x03, //0x0000c170 .quad 269153960225290473 - 0x4c, 0xc8, 0x71, 0xd5, 0x6d, 0x93, 0x13, 0xc9, //0x0000c178 .quad -3957657547586811828 - 0x23, 0xc7, 0x65, 0x40, 0xa0, 0x48, 0xab, 0x04, //0x0000c180 .quad 336442450281613091 - 0x5f, 0x3a, 0xce, 0x4a, 0x49, 0x78, 0x58, 0xfb, //0x0000c188 .quad -335385916056126881 - 0x76, 0x9c, 0x3f, 0x28, 0x64, 0x0d, 0xeb, 0x62, //0x0000c190 .quad 7127805559067090038 - 0x7b, 0xe4, 0xc0, 0xce, 0x2d, 0x4b, 0x17, 0x9d, //0x0000c198 .quad -7127145225176161157 - 0x94, 0x83, 0x4f, 0x32, 0xbd, 0xd0, 0xa5, 0x3b, //0x0000c1a0 .quad 4298070930406474644 - 0x9a, 0x1d, 0x71, 0x42, 0xf9, 0x1d, 0x5d, 0xc4, //0x0000c1a8 .quad -4297245513042813542 - 0x79, 0x64, 0xe3, 0x7e, 0xec, 0x44, 0x8f, 0xca, //0x0000c1b0 .quad -3850783373846682503 - 0x00, 0x65, 0x0d, 0x93, 0x77, 0x65, 0x74, 0xf5, //0x0000c1b8 .quad -759870872876129024 - 0xcb, 0x1e, 0x4e, 0xcf, 0x13, 0x8b, 0x99, 0x7e, //0x0000c1c0 .quad 9122475437414293195 - 0x20, 0x5f, 0xe8, 0xbb, 0x6a, 0xbf, 0x68, 0x99, //0x0000c1c8 .quad -7392448323188662496 - 0x7e, 0xa6, 0x21, 0xc3, 0xd8, 0xed, 0x3f, 0x9e, //0x0000c1d0 .quad -7043649776941685122 - 0xe8, 0x76, 0xe2, 0x6a, 0x45, 0xef, 0xc2, 0xbf, //0x0000c1d8 .quad -4628874385558440216 - 0x1e, 0x10, 0xea, 0xf3, 0x4e, 0xe9, 0xcf, 0xc5, //0x0000c1e0 .quad -4192876202749718498 - 0xa2, 0x14, 0x9b, 0xc5, 0x16, 0xab, 0xb3, 0xef, //0x0000c1e8 .quad -1174406963520662366 - 0x12, 0x4a, 0x72, 0x58, 0xd1, 0xf1, 0xa1, 0xbb, //0x0000c1f0 .quad -4926390635932268014 - 0xe5, 0xec, 0x80, 0x3b, 0xee, 0x4a, 0xd0, 0x95, //0x0000c1f8 .quad -7651533379841495835 - 0x97, 0xdc, 0x8e, 0xae, 0x45, 0x6e, 0x8a, 0x2a, //0x0000c200 .quad 3065383741939440791 - 0x1f, 0x28, 0x61, 0xca, 0xa9, 0x5d, 0x44, 0xbb, //0x0000c208 .quad -4952730706374481889 - 0xbd, 0x93, 0x32, 0x1a, 0xd7, 0x09, 0x2d, 0xf5, //0x0000c210 .quad -779956341003086915 - 0x26, 0x72, 0xf9, 0x3c, 0x14, 0x75, 0x15, 0xea, //0x0000c218 .quad -1579227364540714458 - 0x56, 0x9c, 0x5f, 0x70, 0x26, 0x26, 0x3c, 0x59, //0x0000c220 .quad 6430056314514152534 - 0x58, 0xe7, 0x1b, 0xa6, 0x2c, 0x69, 0x4d, 0x92, //0x0000c228 .quad -7904546130479028392 - 0x6c, 0x83, 0x77, 0x0c, 0xb0, 0x2f, 0x8b, 0x6f, //0x0000c230 .quad 8037570393142690668 - 0x2e, 0xe1, 0xa2, 0xcf, 0x77, 0xc3, 0xe0, 0xb6, //0x0000c238 .quad -5268996644671397586 - 0x47, 0x64, 0x95, 0x0f, 0x9c, 0xfb, 0x6d, 0x0b, //0x0000c240 .quad 823590954573587527 - 0x7a, 0x99, 0x8b, 0xc3, 0x55, 0xf4, 0x98, 0xe4, //0x0000c248 .quad -1974559787411859078 - 0xac, 0x5e, 0xbd, 0x89, 0x41, 0xbd, 0x24, 0x47, //0x0000c250 .quad 5126430365035880108 - 0xec, 0x3f, 0x37, 0x9a, 0xb5, 0x98, 0xdf, 0x8e, //0x0000c258 .quad -8151628894773493780 - 0x57, 0xb6, 0x2c, 0xec, 0x91, 0xec, 0xed, 0x58, //0x0000c260 .quad 6408037956294850135 - 0xe7, 0x0f, 0xc5, 0x00, 0xe3, 0x7e, 0x97, 0xb2, //0x0000c268 .quad -5577850100039479321 - 0xed, 0xe3, 0x37, 0x67, 0xb6, 0x67, 0x29, 0x2f, //0x0000c270 .quad 3398361426941174765 - 0xe1, 0x53, 0xf6, 0xc0, 0x9b, 0x5e, 0x3d, 0xdf, //0x0000c278 .quad -2360626606621961247 - 0x74, 0xee, 0x82, 0x00, 0xd2, 0xe0, 0x79, 0xbd, //0x0000c280 .quad -4793553135802847628 - 0x6c, 0xf4, 0x99, 0x58, 0x21, 0x5b, 0x86, 0x8b, //0x0000c288 .quad -8392920656779807636 - 0x11, 0xaa, 0xa3, 0x80, 0x06, 0x59, 0xd8, 0xec, //0x0000c290 .quad -1380255401326171631 - 0x87, 0x71, 0xc0, 0xae, 0xe9, 0xf1, 0x67, 0xae, //0x0000c298 .quad -5879464802547371641 - 0x95, 0x94, 0xcc, 0x20, 0x48, 0x6f, 0x0e, 0xe8, //0x0000c2a0 .quad -1725319251657714539 - 0xe9, 0x8d, 0x70, 0x1a, 0x64, 0xee, 0x01, 0xda, //0x0000c2a8 .quad -2737644984756826647 - 0xdd, 0xdc, 0x7f, 0x14, 0x8d, 0x05, 0x09, 0x31, //0x0000c2b0 .quad 3533361486141316317 - 0xb2, 0x58, 0x86, 0x90, 0xfe, 0x34, 0x41, 0x88, //0x0000c2b8 .quad -8628557143114098510 - 0x15, 0xd4, 0x9f, 0x59, 0xf0, 0x46, 0x4b, 0xbd, //0x0000c2c0 .quad -4806670179178130411 - 0xde, 0xee, 0xa7, 0x34, 0x3e, 0x82, 0x51, 0xaa, //0x0000c2c8 .quad -6174010410465235234 - 0x1a, 0xc9, 0x07, 0x70, 0xac, 0x18, 0x9e, 0x6c, //0x0000c2d0 .quad 7826720331309500698 - 0x96, 0xea, 0xd1, 0xc1, 0xcd, 0xe2, 0xe5, 0xd4, //0x0000c2d8 .quad -3105826994654156138 - 0xb0, 0xdd, 0x04, 0xc6, 0x6b, 0xcf, 0xe2, 0x03, //0x0000c2e0 .quad 280014188641050032 - 0x9e, 0x32, 0x23, 0x99, 0xc0, 0xad, 0x0f, 0x85, //0x0000c2e8 .quad -8858670899299929442 - 0x1c, 0x15, 0x86, 0xb7, 0x46, 0x83, 0xdb, 0x84, //0x0000c2f0 .quad -8873354301053463268 - 0x45, 0xff, 0x6b, 0xbf, 0x30, 0x99, 0x53, 0xa6, //0x0000c2f8 .quad -6461652605697523899 - 0x63, 0x9a, 0x67, 0x65, 0x18, 0x64, 0x12, 0xe6, //0x0000c300 .quad -1868320839462053277 - 0x16, 0xff, 0x46, 0xef, 0x7c, 0x7f, 0xe8, 0xcf, //0x0000c308 .quad -3465379738694516970 - 0x7e, 0xc0, 0x60, 0x3f, 0x8f, 0x7e, 0xcb, 0x4f, //0x0000c310 .quad 5749828502977298558 - 0x6e, 0x5f, 0x8c, 0x15, 0xae, 0x4f, 0xf1, 0x81, //0x0000c318 .quad -9083391364325154962 - 0x9d, 0xf0, 0x38, 0x0f, 0x33, 0x5e, 0xbe, 0xe3, //0x0000c320 .quad -2036086408133152611 - 0x49, 0x77, 0xef, 0x9a, 0x99, 0xa3, 0x6d, 0xa2, //0x0000c328 .quad -6742553186979055799 - 0xc5, 0x2c, 0x07, 0xd3, 0xbf, 0xf5, 0xad, 0x5c, //0x0000c330 .quad 6678264026688335045 - 0x1c, 0x55, 0xab, 0x01, 0x80, 0x0c, 0x09, 0xcb, //0x0000c338 .quad -3816505465296431844 - 0xf6, 0xf7, 0xc8, 0xc7, 0x2f, 0x73, 0xd9, 0x73, //0x0000c340 .quad 8347830033360418806 - 0x63, 0x2a, 0x16, 0x02, 0xa0, 0x4f, 0xcb, 0xfd, //0x0000c348 .quad -158945813193151901 - 0xfa, 0x9a, 0xdd, 0xdc, 0xfd, 0xe7, 0x67, 0x28, //0x0000c350 .quad 2911550761636567802 - 0x7e, 0xda, 0x4d, 0x01, 0xc4, 0x11, 0x9f, 0x9e, //0x0000c358 .quad -7016870160886801794 - 0xb8, 0x01, 0x15, 0x54, 0xfd, 0xe1, 0x81, 0xb2, //0x0000c360 .quad -5583933584809066056 - 0x1d, 0x51, 0xa1, 0x01, 0x35, 0xd6, 0x46, 0xc6, //0x0000c368 .quad -4159401682681114339 - 0x26, 0x42, 0x1a, 0xa9, 0x7c, 0x5a, 0x22, 0x1f, //0x0000c370 .quad 2243455055843443238 - 0x65, 0xa5, 0x09, 0x42, 0xc2, 0x8b, 0xd8, 0xf7, //0x0000c378 .quad -587566084924005019 - 0x58, 0x69, 0xb0, 0xe9, 0x8d, 0x78, 0x75, 0x33, //0x0000c380 .quad 3708002419115845976 - 0x5f, 0x07, 0x46, 0x69, 0x59, 0x57, 0xe7, 0x9a, //0x0000c388 .quad -7284757830718584993 - 0xae, 0x83, 0x1c, 0x64, 0xb1, 0xd6, 0x52, 0x00, //0x0000c390 .quad 23317005467419566 - 0x37, 0x89, 0x97, 0xc3, 0x2f, 0x2d, 0xa1, 0xc1, //0x0000c398 .quad -4494261269970843337 - 0x9a, 0xa4, 0x23, 0xbd, 0x5d, 0x8c, 0x67, 0xc0, //0x0000c3a0 .quad -4582539761593113446 - 0x84, 0x6b, 0x7d, 0xb4, 0x7b, 0x78, 0x09, 0xf2, //0x0000c3a8 .quad -1006140569036166268 - 0xe0, 0x46, 0x36, 0x96, 0xba, 0xb7, 0x40, 0xf8, //0x0000c3b0 .quad -558244341782001952 - 0x32, 0x63, 0xce, 0x50, 0x4d, 0xeb, 0x45, 0x97, //0x0000c3b8 .quad -7546366883288685774 - 0x98, 0xd8, 0xc3, 0x3b, 0xa9, 0xe5, 0x50, 0xb6, //0x0000c3c0 .quad -5309491445654890344 - 0xff, 0xfb, 0x01, 0xa5, 0x20, 0x66, 0x17, 0xbd, //0x0000c3c8 .quad -4821272585683469313 - 0xbe, 0xce, 0xb4, 0x8a, 0x13, 0x1f, 0xe5, 0xa3, //0x0000c3d0 .quad -6636864307068612930 - 0xff, 0x7a, 0x42, 0xce, 0xa8, 0x3f, 0x5d, 0xec, //0x0000c3d8 .quad -1414904713676948737 - 0x37, 0x01, 0xb1, 0x36, 0x6c, 0x33, 0x6f, 0xc6, //0x0000c3e0 .quad -4148040191917883081 - 0xdf, 0x8c, 0xe9, 0x80, 0xc9, 0x47, 0xba, 0x93, //0x0000c3e8 .quad -7801844473689174817 - 0x84, 0x41, 0x5d, 0x44, 0x47, 0x00, 0x0b, 0xb8, //0x0000c3f0 .quad -5185050239897353852 - 0x17, 0xf0, 0x23, 0xe1, 0xbb, 0xd9, 0xa8, 0xb8, //0x0000c3f8 .quad -5140619573684080617 - 0xe5, 0x91, 0x74, 0x15, 0x59, 0xc0, 0x0d, 0xa6, //0x0000c400 .quad -6481312799871692315 - 0x1d, 0xec, 0x6c, 0xd9, 0x2a, 0x10, 0xd3, 0xe6, //0x0000c408 .quad -1814088448677712867 - 0x2f, 0xdb, 0x68, 0xad, 0x37, 0x98, 0xc8, 0x87, //0x0000c410 .quad -8662506518347195601 - 0x92, 0x13, 0xe4, 0xc7, 0x1a, 0xea, 0x43, 0x90, //0x0000c418 .quad -8051334308064652398 - 0xfb, 0x11, 0xc3, 0x98, 0x45, 0xbe, 0xba, 0x29, //0x0000c420 .quad 3006924907348169211 - 0x77, 0x18, 0xdd, 0x79, 0xa1, 0xe4, 0x54, 0xb4, //0x0000c428 .quad -5452481866653427593 - 0x7a, 0xd6, 0xf3, 0xfe, 0xd6, 0x6d, 0x29, 0xf4, //0x0000c430 .quad -853029884242176390 - 0x94, 0x5e, 0x54, 0xd8, 0xc9, 0x1d, 0x6a, 0xe1, //0x0000c438 .quad -2203916314889396588 - 0x0c, 0x66, 0x58, 0x5f, 0xa6, 0xe4, 0x99, 0x18, //0x0000c440 .quad 1772699331562333708 - 0x1d, 0xbb, 0x34, 0x27, 0x9e, 0x52, 0xe2, 0x8c, //0x0000c448 .quad -8294976724446954723 - 0x8f, 0x7f, 0x2e, 0xf7, 0xcf, 0x5d, 0xc0, 0x5e, //0x0000c450 .quad 6827560182880305039 - 0xe4, 0xe9, 0x01, 0xb1, 0x45, 0xe7, 0x1a, 0xb0, //0x0000c458 .quad -5757034887131305500 - 0x73, 0x1f, 0xfa, 0xf4, 0x43, 0x75, 0x70, 0x76, //0x0000c460 .quad 8534450228600381299 - 0x5d, 0x64, 0x42, 0x1d, 0x17, 0xa1, 0x21, 0xdc, //0x0000c468 .quad -2584607590486743971 - 0xa8, 0x53, 0x1c, 0x79, 0x4a, 0x49, 0x06, 0x6a, //0x0000c470 .quad 7639874402088932264 - 0xba, 0x7e, 0x49, 0x72, 0xae, 0x04, 0x95, 0x89, //0x0000c478 .quad -8532908771695296838 - 0x92, 0x68, 0x63, 0x17, 0x9d, 0xdb, 0x87, 0x04, //0x0000c480 .quad 326470965756389522 - 0x69, 0xde, 0xdb, 0x0e, 0xda, 0x45, 0xfa, 0xab, //0x0000c488 .quad -6054449946191733143 - 0xb6, 0x42, 0x3c, 0x5d, 0x84, 0xd2, 0xa9, 0x45, //0x0000c490 .quad 5019774725622874806 - 0x03, 0xd6, 0x92, 0x92, 0x50, 0xd7, 0xf8, 0xd6, //0x0000c498 .quad -2956376414312278525 - 0xb2, 0xa9, 0x45, 0xba, 0x92, 0x23, 0x8a, 0x0b, //0x0000c4a0 .quad 831516194300602802 - 0xc2, 0xc5, 0x9b, 0x5b, 0x92, 0x86, 0x5b, 0x86, //0x0000c4a8 .quad -8765264286586255934 - 0x1e, 0x14, 0xd7, 0x68, 0x77, 0xac, 0x6c, 0x8e, //0x0000c4b0 .quad -8183976793979022306 - 0x32, 0xb7, 0x82, 0xf2, 0x36, 0x68, 0xf2, 0xa7, //0x0000c4b8 .quad -6344894339805432014 - 0x26, 0xd9, 0x0c, 0x43, 0x95, 0xd7, 0x07, 0x32, //0x0000c4c0 .quad 3605087062808385830 - 0xff, 0x64, 0x23, 0xaf, 0x44, 0x02, 0xef, 0xd1, //0x0000c4c8 .quad -3319431906329402113 - 0xb8, 0x07, 0xe8, 0x49, 0xbd, 0xe6, 0x44, 0x7f, //0x0000c4d0 .quad 9170708441896323000 - 0x1f, 0x1f, 0x76, 0xed, 0x6a, 0x61, 0x35, 0x83, //0x0000c4d8 .quad -8992173969096958177 - 0xa6, 0x09, 0x62, 0x9c, 0x6c, 0x20, 0x16, 0x5f, //0x0000c4e0 .quad 6851699533943015846 - 0xe7, 0xa6, 0xd3, 0xa8, 0xc5, 0xb9, 0x02, 0xa4, //0x0000c4e8 .quad -6628531442943809817 - 0x0f, 0x8c, 0x7a, 0xc3, 0x87, 0xa8, 0xdb, 0x36, //0x0000c4f0 .quad 3952938399001381903 - 0xa1, 0x90, 0x08, 0x13, 0x37, 0x68, 0x03, 0xcd, //0x0000c4f8 .quad -3673978285252374367 - 0x89, 0x97, 0x2c, 0xda, 0x54, 0x49, 0x49, 0xc2, //0x0000c500 .quad -4446942528265218167 - 0x64, 0x5a, 0xe5, 0x6b, 0x22, 0x21, 0x22, 0x80, //0x0000c508 .quad -9213765455923815836 - 0x6c, 0xbd, 0xb7, 0x10, 0xaa, 0x9b, 0xdb, 0xf2, //0x0000c510 .quad -946992141904134804 - 0xfd, 0xb0, 0xde, 0x06, 0x6b, 0xa9, 0x2a, 0xa0, //0x0000c518 .quad -6905520801477381891 - 0xc7, 0xac, 0xe5, 0x94, 0x94, 0x82, 0x92, 0x6f, //0x0000c520 .quad 8039631859474607303 - 0x3d, 0x5d, 0x96, 0xc8, 0xc5, 0x53, 0x35, 0xc8, //0x0000c528 .quad -4020214983419339459 - 0xf9, 0x17, 0x1f, 0xba, 0x39, 0x23, 0x77, 0xcb, //0x0000c530 .quad -3785518230938904583 - 0x8c, 0xf4, 0xbb, 0x3a, 0xb7, 0xa8, 0x42, 0xfa, //0x0000c538 .quad -413582710846786420 - 0xfb, 0x6e, 0x53, 0x14, 0x04, 0x76, 0x2a, 0xff, //0x0000c540 .quad -60105885123121413 - 0xd7, 0x78, 0xb5, 0x84, 0x72, 0xa9, 0x69, 0x9c, //0x0000c548 .quad -7176018221920323369 - 0xba, 0x4a, 0x68, 0x19, 0x85, 0x13, 0xf5, 0xfe, //0x0000c550 .quad -75132356403901766 - 0x0d, 0xd7, 0xe2, 0x25, 0xcf, 0x13, 0x84, 0xc3, //0x0000c558 .quad -4358336758973016307 - 0x69, 0x5d, 0xc2, 0x5f, 0x66, 0x58, 0xb2, 0x7e, //0x0000c560 .quad 9129456591349898601 - 0xd1, 0x8c, 0x5b, 0xef, 0xc2, 0x18, 0x65, 0xf4, //0x0000c568 .quad -836234930288882479 - 0x61, 0x7a, 0xd9, 0xfb, 0x3f, 0x77, 0x2f, 0xef, //0x0000c570 .quad -1211618658047395231 - 0x02, 0x38, 0x99, 0xd5, 0x79, 0x2f, 0xbf, 0x98, //0x0000c578 .quad -7440175859071633406 - 0xfa, 0xd8, 0xcf, 0xfa, 0x0f, 0x55, 0xfb, 0xaa, //0x0000c580 .quad -6126209340986631942 - 0x03, 0x86, 0xff, 0x4a, 0x58, 0xfb, 0xee, 0xbe, //0x0000c588 .quad -4688533805412153853 - 0x38, 0xcf, 0x83, 0xf9, 0x53, 0x2a, 0xba, 0x95, //0x0000c590 .quad -7657761676233289928 - 0x84, 0x67, 0xbf, 0x5d, 0x2e, 0xba, 0xaa, 0xee, //0x0000c598 .quad -1248981238337804412 - 0x83, 0x61, 0xf2, 0x7b, 0x74, 0x5a, 0x94, 0xdd, //0x0000c5a0 .quad -2480258038432112253 - 0xb2, 0xa0, 0x97, 0xfa, 0x5c, 0xb4, 0x2a, 0x95, //0x0000c5a8 .quad -7698142301602209614 - 0xe4, 0xf9, 0xee, 0x9a, 0x11, 0x71, 0xf9, 0x94, //0x0000c5b0 .quad -7712008566467528220 - 0xdf, 0x88, 0x3d, 0x39, 0x74, 0x61, 0x75, 0xba, //0x0000c5b8 .quad -5010991858575374113 - 0x5d, 0xb8, 0xaa, 0x01, 0x56, 0xcd, 0x37, 0x7a, //0x0000c5c0 .quad 8806733365625141341 - 0x17, 0xeb, 0x8c, 0x47, 0xd1, 0xb9, 0x12, 0xe9, //0x0000c5c8 .quad -1652053804791829737 - 0x3a, 0xb3, 0x0a, 0xc1, 0x55, 0xe0, 0x62, 0xac, //0x0000c5d0 .quad -6025006692552756422 - 0xee, 0x12, 0xb8, 0xcc, 0x22, 0xb4, 0xab, 0x91, //0x0000c5d8 .quad -7950062655635975442 - 0x09, 0x60, 0x4d, 0x31, 0x6b, 0x98, 0x7b, 0x57, //0x0000c5e0 .quad 6303799689591218185 - 0xaa, 0x17, 0xe6, 0x7f, 0x2b, 0xa1, 0x16, 0xb6, //0x0000c5e8 .quad -5325892301117581398 - 0x0b, 0xb8, 0xa0, 0xfd, 0x85, 0x7e, 0x5a, 0xed, //0x0000c5f0 .quad -1343622424865753077 - 0x94, 0x9d, 0xdf, 0x5f, 0x76, 0x49, 0x9c, 0xe3, //0x0000c5f8 .quad -2045679357969588844 - 0x07, 0x73, 0x84, 0xbe, 0x13, 0x8f, 0x58, 0x14, //0x0000c600 .quad 1466078993672598279 - 0x7d, 0xc2, 0xeb, 0xfb, 0xe9, 0xad, 0x41, 0x8e, //0x0000c608 .quad -8196078626372074883 - 0xc8, 0x8f, 0x25, 0xae, 0xd8, 0xb2, 0x6e, 0x59, //0x0000c610 .quad 6444284760518135752 - 0x1c, 0xb3, 0xe6, 0x7a, 0x64, 0x19, 0xd2, 0xb1, //0x0000c618 .quad -5633412264537705700 - 0xbb, 0xf3, 0xae, 0xd9, 0x8e, 0x5f, 0xca, 0x6f, //0x0000c620 .quad 8055355950647669691 - 0xe3, 0x5f, 0xa0, 0x99, 0xbd, 0x9f, 0x46, 0xde, //0x0000c628 .quad -2430079312244744221 - 0x54, 0x58, 0x0d, 0x48, 0xb9, 0x7b, 0xde, 0x25, //0x0000c630 .quad 2728754459941099604 - 0xee, 0x3b, 0x04, 0x80, 0xd6, 0x23, 0xec, 0x8a, //0x0000c638 .quad -8436328597794046994 - 0x6a, 0xae, 0x10, 0x9a, 0xa7, 0x1a, 0x56, 0xaf, //0x0000c640 .quad -5812428961928401302 - 0xe9, 0x4a, 0x05, 0x20, 0xcc, 0x2c, 0xa7, 0xad, //0x0000c648 .quad -5933724728815170839 - 0x04, 0xda, 0x94, 0x80, 0x51, 0xa1, 0x2b, 0x1b, //0x0000c650 .quad 1957835834444274180 - 0xa4, 0x9d, 0x06, 0x28, 0xff, 0xf7, 0x10, 0xd9, //0x0000c658 .quad -2805469892591575644 - 0x42, 0x08, 0x5d, 0xf0, 0xd2, 0x44, 0xfb, 0x90, //0x0000c660 .quad -7999724640327104446 - 0x86, 0x22, 0x04, 0x79, 0xff, 0x9a, 0xaa, 0x87, //0x0000c668 .quad -8670947710510816634 - 0x53, 0x4a, 0x74, 0xac, 0x07, 0x16, 0x3a, 0x35, //0x0000c670 .quad 3835402254873283155 - 0x28, 0x2b, 0x45, 0x57, 0xbf, 0x41, 0x95, 0xa9, //0x0000c678 .quad -6226998619711132888 - 0xe8, 0x5c, 0x91, 0x97, 0x89, 0x9b, 0x88, 0x42, //0x0000c680 .quad 4794252818591603944 - 0xf2, 0x75, 0x16, 0x2d, 0x2f, 0x92, 0xfa, 0xd3, //0x0000c688 .quad -3172062256211528206 - 0x11, 0xda, 0xba, 0xfe, 0x35, 0x61, 0x95, 0x69, //0x0000c690 .quad 7608094030047140369 - 0xb7, 0x09, 0x2e, 0x7c, 0x5d, 0x9b, 0x7c, 0x84, //0x0000c698 .quad -8900067937773286985 - 0x95, 0x90, 0x69, 0x7e, 0x83, 0xb9, 0xfa, 0x43, //0x0000c6a0 .quad 4898431519131537557 - 0x25, 0x8c, 0x39, 0xdb, 0x34, 0xc2, 0x9b, 0xa5, //0x0000c6a8 .quad -6513398903789220827 - 0xbb, 0xf4, 0x03, 0x5e, 0xe4, 0x67, 0xf9, 0x94, //0x0000c6b0 .quad -7712018656367741765 - 0x2e, 0xef, 0x07, 0x12, 0xc2, 0xb2, 0x02, 0xcf, //0x0000c6b8 .quad -3530062611309138130 - 0xf5, 0x78, 0xc2, 0xba, 0xee, 0xe0, 0x1b, 0x1d, //0x0000c6c0 .quad 2097517367411243253 - 0x7d, 0xf5, 0x44, 0x4b, 0xb9, 0xaf, 0x61, 0x81, //0x0000c6c8 .quad -9123818159709293187 - 0x32, 0x17, 0x73, 0x69, 0x2a, 0xd9, 0x62, 0x64, //0x0000c6d0 .quad 7233582727691441970 - 0xdc, 0x32, 0x16, 0x9e, 0xa7, 0x1b, 0xba, 0xa1, //0x0000c6d8 .quad -6793086681209228580 - 0xfe, 0xdc, 0xcf, 0x03, 0x75, 0x8f, 0x7b, 0x7d, //0x0000c6e0 .quad 9041978409614302462 - 0x93, 0xbf, 0x9b, 0x85, 0x91, 0xa2, 0x28, 0xca, //0x0000c6e8 .quad -3879672333084147821 - 0x3e, 0xd4, 0xc3, 0x44, 0x52, 0x73, 0xda, 0x5c, //0x0000c6f0 .quad 6690786993590490174 - 0x78, 0xaf, 0x02, 0xe7, 0x35, 0xcb, 0xb2, 0xfc, //0x0000c6f8 .quad -237904397927796872 - 0xa7, 0x64, 0xfa, 0x6a, 0x13, 0x88, 0x08, 0x3a, //0x0000c700 .quad 4181741870994056359 - 0xab, 0xad, 0x61, 0xb0, 0x01, 0xbf, 0xef, 0x9d, //0x0000c708 .quad -7066219276345954901 - 0xd0, 0xfd, 0xb8, 0x45, 0x18, 0xaa, 0x8a, 0x08, //0x0000c710 .quad 615491320315182544 - 0x16, 0x19, 0x7a, 0x1c, 0xc2, 0xae, 0x6b, 0xc5, //0x0000c718 .quad -4221088077005055722 - 0x45, 0x3d, 0x27, 0x57, 0x9e, 0x54, 0xad, 0x8a, //0x0000c720 .quad -8454007886460797627 - 0x5b, 0x9f, 0x98, 0xa3, 0x72, 0x9a, 0xc6, 0xf6, //0x0000c728 .quad -664674077828931749 - 0x4b, 0x86, 0x78, 0xf6, 0xe2, 0x54, 0xac, 0x36, //0x0000c730 .quad 3939617107816777291 - 0x99, 0x63, 0x3f, 0xa6, 0x87, 0x20, 0x3c, 0x9a, //0x0000c738 .quad -7332950326284164199 - 0xdd, 0xa7, 0x16, 0xb4, 0x1b, 0x6a, 0x57, 0x84, //0x0000c740 .quad -8910536670511192099 - 0x7f, 0x3c, 0xcf, 0x8f, 0xa9, 0x28, 0xcb, 0xc0, //0x0000c748 .quad -4554501889427817345 - 0xd5, 0x51, 0x1c, 0xa1, 0xa2, 0x44, 0x6d, 0x65, //0x0000c750 .quad 7308573235570561493 - 0x9f, 0x0b, 0xc3, 0xf3, 0xd3, 0xf2, 0xfd, 0xf0, //0x0000c758 .quad -1081441343357383777 - 0x25, 0xb3, 0xb1, 0xa4, 0xe5, 0x4a, 0x64, 0x9f, //0x0000c760 .quad -6961356773836868827 - 0x43, 0xe7, 0x59, 0x78, 0xc4, 0xb7, 0x9e, 0x96, //0x0000c768 .quad -7593429867239446717 - 0xee, 0x1f, 0xde, 0x0d, 0x9f, 0x5d, 0x3d, 0x87, //0x0000c770 .quad -8701695967296086034 - 0x14, 0x61, 0x70, 0x96, 0xb5, 0x65, 0x46, 0xbc, //0x0000c778 .quad -4880101315621920492 - 0xea, 0xa7, 0x55, 0xd1, 0x06, 0xb5, 0x0c, 0xa9, //0x0000c780 .quad -6265433940692719638 - 0x59, 0x79, 0x0c, 0xfc, 0x22, 0xff, 0x57, 0xeb, //0x0000c788 .quad -1488440626100012711 - 0xf2, 0x88, 0xd5, 0x42, 0x24, 0xf1, 0xa7, 0x09, //0x0000c790 .quad 695789805494438130 - 0xd8, 0xcb, 0x87, 0xdd, 0x75, 0xff, 0x16, 0x93, //0x0000c798 .quad -7847804418953589800 - 0x2f, 0xeb, 0x8a, 0x53, 0x6d, 0xed, 0x11, 0x0c, //0x0000c7a0 .quad 869737256868047663 - 0xce, 0xbe, 0xe9, 0x54, 0x53, 0xbf, 0xdc, 0xb7, //0x0000c7a8 .quad -5198069505264599346 - 0xfa, 0xa5, 0x6d, 0xa8, 0xc8, 0x68, 0x16, 0x8f, //0x0000c7b0 .quad -8136200465769716230 - 0x81, 0x2e, 0x24, 0x2a, 0x28, 0xef, 0xd3, 0xe5, //0x0000c7b8 .quad -1885900863153361279 - 0xbc, 0x87, 0x44, 0x69, 0x7d, 0x01, 0x6e, 0xf9, //0x0000c7c0 .quad -473439272678684740 - 0x10, 0x9d, 0x56, 0x1a, 0x79, 0x75, 0xa4, 0x8f, //0x0000c7c8 .quad -8096217067111932656 - 0xac, 0xa9, 0x95, 0xc3, 0xdc, 0x81, 0xc9, 0x37, //0x0000c7d0 .quad 4019886927579031980 - 0x55, 0x44, 0xec, 0x60, 0xd7, 0x92, 0x8d, 0xb3, //0x0000c7d8 .quad -5508585315462527915 - 0x17, 0x14, 0x7b, 0xf4, 0x53, 0xe2, 0xbb, 0x85, //0x0000c7e0 .quad -8810199395808373737 - 0x6a, 0x55, 0x27, 0x39, 0x8d, 0xf7, 0x70, 0xe0, //0x0000c7e8 .quad -2274045625900771990 - 0x8e, 0xec, 0xcc, 0x78, 0x74, 0x6d, 0x95, 0x93, //0x0000c7f0 .quad -7812217631593927538 - 0x62, 0x95, 0xb8, 0x43, 0xb8, 0x9a, 0x46, 0x8c, //0x0000c7f8 .quad -8338807543829064350 - 0xb2, 0x27, 0x00, 0x97, 0xd1, 0xc8, 0x7a, 0x38, //0x0000c800 .quad 4069786015789754290 - 0xbb, 0xba, 0xa6, 0x54, 0x66, 0x41, 0x58, 0xaf, //0x0000c808 .quad -5811823411358942533 - 0x9e, 0x31, 0xc0, 0xfc, 0x05, 0x7b, 0x99, 0x06, //0x0000c810 .quad 475546501309804958 - 0x6a, 0x69, 0xd0, 0xe9, 0xbf, 0x51, 0x2e, 0xdb, //0x0000c818 .quad -2653093245771290262 - 0x03, 0x1f, 0xf8, 0xbd, 0xe3, 0xec, 0x1f, 0x44, //0x0000c820 .quad 4908902581746016003 - 0xe2, 0x41, 0x22, 0xf2, 0x17, 0xf3, 0xfc, 0x88, //0x0000c828 .quad -8575712306248138270 - 0xc3, 0x26, 0x76, 0xad, 0x1c, 0xe8, 0x27, 0xd5, //0x0000c830 .quad -3087243809672255805 - 0x5a, 0xd2, 0xaa, 0xee, 0xdd, 0x2f, 0x3c, 0xab, //0x0000c838 .quad -6107954364382784934 - 0x74, 0xb0, 0xd3, 0xd8, 0x23, 0xe2, 0x71, 0x8a, //0x0000c840 .quad -8470740780517707660 - 0xf1, 0x86, 0x55, 0x6a, 0xd5, 0x3b, 0x0b, 0xd6, //0x0000c848 .quad -3023256937051093263 - 0x49, 0x4e, 0x84, 0x67, 0x56, 0x2d, 0x87, 0xf6, //0x0000c850 .quad -682526969396179383 - 0x56, 0x74, 0x75, 0x62, 0x65, 0x05, 0xc7, 0x85, //0x0000c858 .quad -8807064613298015146 - 0xdb, 0x61, 0x65, 0x01, 0xac, 0xf8, 0x28, 0xb4, //0x0000c860 .quad -5464844730172612133 - 0x6c, 0xd1, 0x12, 0xbb, 0xbe, 0xc6, 0x38, 0xa7, //0x0000c868 .quad -6397144748195131028 - 0x52, 0xba, 0xbe, 0x01, 0xd7, 0x36, 0x33, 0xe1, //0x0000c870 .quad -2219369894288377262 - 0xc7, 0x85, 0xd7, 0x69, 0x6e, 0xf8, 0x06, 0xd1, //0x0000c878 .quad -3384744916816525881 - 0x73, 0x34, 0x17, 0x61, 0x46, 0x02, 0xc0, 0xec, //0x0000c880 .quad -1387106183930235789 - 0x9c, 0xb3, 0x26, 0x02, 0x45, 0x5b, 0xa4, 0x82, //0x0000c888 .quad -9032994600651410532 - 0x90, 0x01, 0x5d, 0xf9, 0xd7, 0x02, 0xf0, 0x27, //0x0000c890 .quad 2877803288514593168 - 0x84, 0x60, 0xb0, 0x42, 0x16, 0x72, 0x4d, 0xa3, //0x0000c898 .quad -6679557232386875260 - 0xf4, 0x41, 0xb4, 0xf7, 0x8d, 0x03, 0xec, 0x31, //0x0000c8a0 .quad 3597254110643241460 - 0xa5, 0x78, 0x5c, 0xd3, 0x9b, 0xce, 0x20, 0xcc, //0x0000c8a8 .quad -3737760522056206171 - 0x71, 0x52, 0xa1, 0x75, 0x71, 0x04, 0x67, 0x7e, //0x0000c8b0 .quad 9108253656731439729 - 0xce, 0x96, 0x33, 0xc8, 0x42, 0x02, 0x29, 0xff, //0x0000c8b8 .quad -60514634142869810 - 0x86, 0xd3, 0x84, 0xe9, 0xc6, 0x62, 0x00, 0x0f, //0x0000c8c0 .quad 1080972517029761926 - 0x41, 0x3e, 0x20, 0xbd, 0x69, 0xa1, 0x79, 0x9f, //0x0000c8c8 .quad -6955350673980375487 - 0x68, 0x08, 0xe6, 0xa3, 0x78, 0x7b, 0xc0, 0x52, //0x0000c8d0 .quad 5962901664714590312 - 0xd1, 0x4d, 0x68, 0x2c, 0xc4, 0x09, 0x58, 0xc7, //0x0000c8d8 .quad -4082502324048081455 - 0x82, 0x8a, 0xdf, 0xcc, 0x56, 0x9a, 0x70, 0xa7, //0x0000c8e0 .quad -6381430974388925822 - 0x45, 0x61, 0x82, 0x37, 0x35, 0x0c, 0x2e, 0xf9, //0x0000c8e8 .quad -491441886632713915 - 0x91, 0xb6, 0x0b, 0x40, 0x76, 0x60, 0xa6, 0x88, //0x0000c8f0 .quad -8600080377420466543 - 0xcb, 0x7c, 0xb1, 0x42, 0xa1, 0xc7, 0xbc, 0x9b, //0x0000c8f8 .quad -7224680206786528053 - 0x35, 0xa4, 0x0e, 0xd0, 0x93, 0xf8, 0xcf, 0x6a, //0x0000c900 .quad 7696643601933968437 - 0xfe, 0xdb, 0x5d, 0x93, 0x89, 0xf9, 0xab, 0xc2, //0x0000c908 .quad -4419164240055772162 - 0x43, 0x4d, 0x12, 0xc4, 0xb8, 0xf6, 0x83, 0x05, //0x0000c910 .quad 397432465562684739 - 0xfe, 0x52, 0x35, 0xf8, 0xeb, 0xf7, 0x56, 0xf3, //0x0000c918 .quad -912269281642327298 - 0x4a, 0x70, 0x8b, 0x7a, 0x33, 0x7a, 0x72, 0xc3, //0x0000c920 .quad -4363290727450709942 - 0xde, 0x53, 0x21, 0x7b, 0xf3, 0x5a, 0x16, 0x98, //0x0000c928 .quad -7487697328667536418 - 0x5c, 0x4c, 0x2e, 0x59, 0xc0, 0x18, 0x4f, 0x74, //0x0000c930 .quad 8380944645968776284 - 0xd6, 0xa8, 0xe9, 0x59, 0xb0, 0xf1, 0x1b, 0xbe, //0x0000c938 .quad -4747935642407032618 - 0x73, 0xdf, 0x79, 0x6f, 0xf0, 0xde, 0x62, 0x11, //0x0000c940 .quad 1252808770606194547 - 0x0c, 0x13, 0x64, 0x70, 0x1c, 0xee, 0xa2, 0xed, //0x0000c948 .quad -1323233534581402868 - 0xa8, 0x2b, 0xac, 0x45, 0x56, 0xcb, 0xdd, 0x8a, //0x0000c950 .quad -8440366555225904216 - 0xe7, 0x8b, 0x3e, 0xc6, 0xd1, 0xd4, 0x85, 0x94, //0x0000c958 .quad -7744549986754458649 - 0x92, 0x36, 0x17, 0xd7, 0x2b, 0x3e, 0x95, 0x6d, //0x0000c960 .quad 7896285879677171346 - 0xe1, 0x2e, 0xce, 0x37, 0x06, 0x4a, 0xa7, 0xb9, //0x0000c968 .quad -5069001465015685407 - 0x37, 0x04, 0xdd, 0xcc, 0xb6, 0x8d, 0xfa, 0xc8, //0x0000c970 .quad -3964700705685699529 - 0x99, 0xba, 0xc1, 0xc5, 0x87, 0x1c, 0x11, 0xe8, //0x0000c978 .quad -1724565812842218855 - 0xa2, 0x22, 0x0a, 0x40, 0x92, 0x98, 0x9c, 0x1d, //0x0000c980 .quad 2133748077373825698 - 0xa0, 0x14, 0x99, 0xdb, 0xd4, 0xb1, 0x0a, 0x91, //0x0000c988 .quad -7995382660667468640 - 0x4b, 0xab, 0x0c, 0xd0, 0xb6, 0xbe, 0x03, 0x25, //0x0000c990 .quad 2667185096717282123 - 0xc8, 0x59, 0x7f, 0x12, 0x4a, 0x5e, 0x4d, 0xb5, //0x0000c998 .quad -5382542307406947896 - 0x1d, 0xd6, 0x0f, 0x84, 0x64, 0xae, 0x44, 0x2e, //0x0000c9a0 .quad 3333981370896602653 - 0x3a, 0x30, 0x1f, 0x97, 0xdc, 0xb5, 0xa0, 0xe2, //0x0000c9a8 .quad -2116491865831296966 - 0xd2, 0xe5, 0x89, 0xd2, 0xfe, 0xec, 0xea, 0x5c, //0x0000c9b0 .quad 6695424375237764562 - 0x24, 0x7e, 0x73, 0xde, 0xa9, 0x71, 0xa4, 0x8d, //0x0000c9b8 .quad -8240336443785642460 - 0x47, 0x5f, 0x2c, 0x87, 0x3e, 0xa8, 0x25, 0x74, //0x0000c9c0 .quad 8369280469047205703 - 0xad, 0x5d, 0x10, 0x56, 0x14, 0x8e, 0x0d, 0xb1, //0x0000c9c8 .quad -5688734536304665171 - 0x19, 0x77, 0xf7, 0x28, 0x4e, 0x12, 0x2f, 0xd1, //0x0000c9d0 .quad -3373457468973156583 - 0x18, 0x75, 0x94, 0x6b, 0x99, 0xf1, 0x50, 0xdd, //0x0000c9d8 .quad -2499232151953443560 - 0x6f, 0xaa, 0x9a, 0xd9, 0x70, 0x6b, 0xbd, 0x82, //0x0000c9e0 .quad -9025939945749304721 - 0x2f, 0xc9, 0x3c, 0xe3, 0xff, 0x96, 0x52, 0x8a, //0x0000c9e8 .quad -8479549122611984081 - 0x0b, 0x55, 0x01, 0x10, 0x4d, 0xc6, 0x6c, 0x63, //0x0000c9f0 .quad 7164319141522920715 - 0x7b, 0xfb, 0x0b, 0xdc, 0xbf, 0x3c, 0xe7, 0xac, //0x0000c9f8 .quad -5987750384837592197 - 0x4e, 0xaa, 0x01, 0x54, 0xe0, 0xf7, 0x47, 0x3c, //0x0000ca00 .quad 4343712908476262990 - 0x5a, 0xfa, 0x0e, 0xd3, 0xef, 0x0b, 0x21, 0xd8, //0x0000ca08 .quad -2873001962619602342 - 0x71, 0x0a, 0x81, 0x34, 0xec, 0xfa, 0xac, 0x65, //0x0000ca10 .quad 7326506586225052273 - 0x78, 0x5c, 0xe9, 0xe3, 0x75, 0xa7, 0x14, 0x87, //0x0000ca18 .quad -8713155254278333320 - 0x0d, 0x4d, 0xa1, 0x41, 0xa7, 0x39, 0x18, 0x7f, //0x0000ca20 .quad 9158133232781315341 - 0x96, 0xb3, 0xe3, 0x5c, 0x53, 0xd1, 0xd9, 0xa8, //0x0000ca28 .quad -6279758049420528746 - 0x50, 0xa0, 0x09, 0x12, 0x11, 0x48, 0xde, 0x1e, //0x0000ca30 .quad 2224294504121868368 - 0x7c, 0xa0, 0x1c, 0x34, 0xa8, 0x45, 0x10, 0xd3, //0x0000ca38 .quad -3238011543348273028 - 0x32, 0x04, 0x46, 0xab, 0x0a, 0xed, 0x4a, 0x93, //0x0000ca40 .quad -7833187971778608078 - 0x4d, 0xe4, 0x91, 0x20, 0x89, 0x2b, 0xea, 0x83, //0x0000ca48 .quad -8941286242233752499 - 0x3f, 0x85, 0x17, 0x56, 0x4d, 0xa8, 0x1d, 0xf8, //0x0000ca50 .quad -568112927868484289 - 0x60, 0x5d, 0xb6, 0x68, 0x6b, 0xb6, 0xe4, 0xa4, //0x0000ca58 .quad -6564921784364802720 - 0x8e, 0x66, 0x9d, 0xab, 0x60, 0x12, 0x25, 0x36, //0x0000ca60 .quad 3901544858591782542 - 0xb9, 0xf4, 0xe3, 0x42, 0x06, 0xe4, 0x1d, 0xce, //0x0000ca68 .quad -3594466212028615495 - 0x19, 0x60, 0x42, 0x6b, 0x7c, 0x2b, 0xd7, 0xc1, //0x0000ca70 .quad -4479063491021217767 - 0xf3, 0x78, 0xce, 0xe9, 0x83, 0xae, 0xd2, 0x80, //0x0000ca78 .quad -9164070410158966541 - 0x1f, 0xf8, 0x12, 0x86, 0x5b, 0xf6, 0x4c, 0xb2, //0x0000ca80 .quad -5598829363776522209 - 0x30, 0x17, 0x42, 0xe4, 0x24, 0x5a, 0x07, 0xa1, //0x0000ca88 .quad -6843401994271320272 - 0x27, 0xb6, 0x97, 0x67, 0xf2, 0x33, 0xe0, 0xde, //0x0000ca90 .quad -2386850686293264857 - 0xfc, 0x9c, 0x52, 0x1d, 0xae, 0x30, 0x49, 0xc9, //0x0000ca98 .quad -3942566474411762436 - 0xb1, 0xa3, 0x7d, 0x01, 0xef, 0x40, 0x98, 0x16, //0x0000caa0 .quad 1628122660560806833 - 0x3c, 0x44, 0xa7, 0xa4, 0xd9, 0x7c, 0x9b, 0xfb, //0x0000caa8 .quad -316522074587315140 - 0x4e, 0x86, 0xee, 0x60, 0x95, 0x28, 0x1f, 0x8e, //0x0000cab0 .quad -8205795374004271538 - 0xa5, 0x8a, 0xe8, 0x06, 0x08, 0x2e, 0x41, 0x9d, //0x0000cab8 .quad -7115355324258153819 - 0xe2, 0x27, 0x2a, 0xb9, 0xba, 0xf2, 0xa6, 0xf1, //0x0000cac0 .quad -1033872180650563614 - 0x4e, 0xad, 0xa2, 0x08, 0x8a, 0x79, 0x91, 0xc4, //0x0000cac8 .quad -4282508136895304370 - 0xdb, 0xb1, 0x74, 0x67, 0x69, 0xaf, 0x10, 0xae, //0x0000cad0 .quad -5904026244240592421 - 0xa2, 0x58, 0xcb, 0x8a, 0xec, 0xd7, 0xb5, 0xf5, //0x0000cad8 .quad -741449152691742558 - 0x29, 0xef, 0xa8, 0xe0, 0xa1, 0x6d, 0xca, 0xac, //0x0000cae0 .quad -5995859411864064215 - 0x65, 0x17, 0xbf, 0xd6, 0xf3, 0xa6, 0x91, 0x99, //0x0000cae8 .quad -7380934748073420955 - 0xf3, 0x2a, 0xd3, 0x58, 0x0a, 0x09, 0xfd, 0x17, //0x0000caf0 .quad 1728547772024695539 - 0x3f, 0xdd, 0x6e, 0xcc, 0xb0, 0x10, 0xf6, 0xbf, //0x0000caf8 .quad -4614482416664388289 - 0xb0, 0xf5, 0x07, 0xef, 0x4c, 0x4b, 0xfc, 0xdd, //0x0000cb00 .quad -2451001303396518480 - 0x8e, 0x94, 0x8a, 0xff, 0xdc, 0x94, 0xf3, 0xef, //0x0000cb08 .quad -1156417002403097458 - 0x8e, 0xf9, 0x64, 0x15, 0x10, 0xaf, 0xbd, 0x4a, //0x0000cb10 .quad 5385653213018257806 - 0xd9, 0x9c, 0xb6, 0x1f, 0x0a, 0x3d, 0xf8, 0x95, //0x0000cb18 .quad -7640289654143017767 - 0xf1, 0x37, 0xbe, 0x1a, 0xd4, 0x1a, 0x6d, 0x9d, //0x0000cb20 .quad -7102991539009341455 - 0x0f, 0x44, 0xa4, 0xa7, 0x4c, 0x4c, 0x76, 0xbb, //0x0000cb28 .quad -4938676049251384305 - 0xed, 0xc5, 0x6d, 0x21, 0x89, 0x61, 0xc8, 0x84, //0x0000cb30 .quad -8878739423761676819 - 0x13, 0x55, 0x8d, 0xd1, 0x5f, 0xdf, 0x53, 0xea, //0x0000cb38 .quad -1561659043136842477 - 0xb4, 0x9b, 0xe4, 0xb4, 0xf5, 0x3c, 0xfd, 0x32, //0x0000cb40 .quad 3674159897003727796 - 0x2c, 0x55, 0xf8, 0xe2, 0x9b, 0x6b, 0x74, 0x92, //0x0000cb48 .quad -7893565929601608404 - 0xa1, 0xc2, 0x1d, 0x22, 0x33, 0x8c, 0xbc, 0x3f, //0x0000cb50 .quad 4592699871254659745 - 0x77, 0x6a, 0xb6, 0xdb, 0x82, 0x86, 0x11, 0xb7, //0x0000cb58 .quad -5255271393574622601 - 0x4a, 0x33, 0xa5, 0xea, 0x3f, 0xaf, 0xab, 0x0f, //0x0000cb60 .quad 1129188820640936778 - 0x15, 0x05, 0xa4, 0x92, 0x23, 0xe8, 0xd5, 0xe4, //0x0000cb68 .quad -1957403223540890347 - 0x0e, 0x40, 0xa7, 0xf2, 0x87, 0x4d, 0xcb, 0x29, //0x0000cb70 .quad 3011586022114279438 - 0x2d, 0x83, 0xa6, 0x3b, 0x16, 0xb1, 0x05, 0x8f, //0x0000cb78 .quad -8140906042354138323 - 0x12, 0x10, 0x51, 0xef, 0xe9, 0x20, 0x3e, 0x74, //0x0000cb80 .quad 8376168546070237202 - 0xf8, 0x23, 0x90, 0xca, 0x5b, 0x1d, 0xc7, 0xb2, //0x0000cb88 .quad -5564446534515285000 - 0x16, 0x54, 0x25, 0x6b, 0x24, 0xa9, 0x4d, 0x91, //0x0000cb90 .quad -7976533391121755114 - 0xf6, 0x2c, 0x34, 0xbd, 0xb2, 0xe4, 0x78, 0xdf, //0x0000cb98 .quad -2343872149716718346 - 0x8e, 0x54, 0xf7, 0xc2, 0xb6, 0x89, 0xd0, 0x1a, //0x0000cba0 .quad 1932195658189984910 - 0x1a, 0x9c, 0x40, 0xb6, 0xef, 0x8e, 0xab, 0x8b, //0x0000cba8 .quad -8382449121214030822 - 0xb1, 0x29, 0xb5, 0x73, 0x24, 0xac, 0x84, 0xa1, //0x0000cbb0 .quad -6808127464117294671 - 0x20, 0xc3, 0xd0, 0xa3, 0xab, 0x72, 0x96, 0xae, //0x0000cbb8 .quad -5866375383090150624 - 0x1e, 0x74, 0xa2, 0x90, 0x2d, 0xd7, 0xe5, 0xc9, //0x0000cbc0 .quad -3898473311719230434 - 0xe8, 0xf3, 0xc4, 0x8c, 0x56, 0x0f, 0x3c, 0xda, //0x0000cbc8 .quad -2721283210435300376 - 0x92, 0x88, 0x65, 0x7a, 0x7c, 0xa6, 0x2f, 0x7e, //0x0000cbd0 .quad 9092669226243950738 - 0x71, 0x18, 0xfb, 0x17, 0x96, 0x89, 0x65, 0x88, //0x0000cbd8 .quad -8618331034163144591 - 0xb7, 0xea, 0xfe, 0x98, 0x1b, 0x90, 0xbb, 0xdd, //0x0000cbe0 .quad -2469221522477225289 - 0x8d, 0xde, 0xf9, 0x9d, 0xfb, 0xeb, 0x7e, 0xaa, //0x0000cbe8 .quad -6161227774276542835 - 0x65, 0xa5, 0x3e, 0x7f, 0x22, 0x74, 0x2a, 0x55, //0x0000cbf0 .quad 6136845133758244197 - 0x31, 0x56, 0x78, 0x85, 0xfa, 0xa6, 0x1e, 0xd5, //0x0000cbf8 .quad -3089848699418290639 - 0x5f, 0x27, 0x87, 0x8f, 0x95, 0x88, 0x3a, 0xd5, //0x0000cc00 .quad -3082000819042179233 - 0xde, 0x35, 0x6b, 0x93, 0x5c, 0x28, 0x33, 0x85, //0x0000cc08 .quad -8848684464777513506 - 0x37, 0xf1, 0x68, 0xf3, 0xba, 0x2a, 0x89, 0x8a, //0x0000cc10 .quad -8464187042230111945 - 0x56, 0x03, 0x46, 0xb8, 0x73, 0xf2, 0x7f, 0xa6, //0x0000cc18 .quad -6449169562544503978 - 0x85, 0x2d, 0x43, 0xb0, 0x69, 0x75, 0x2b, 0x2d, //0x0000cc20 .quad 3254824252494523781 - 0x2c, 0x84, 0x57, 0xa6, 0x10, 0xef, 0x1f, 0xd0, //0x0000cc28 .quad -3449775934753242068 - 0x73, 0xfc, 0x29, 0x0e, 0x62, 0x29, 0x3b, 0x9c, //0x0000cc30 .quad -7189106879045698445 - 0x9b, 0xb2, 0xf6, 0x67, 0x6a, 0xf5, 0x13, 0x82, //0x0000cc38 .quad -9073638986861858149 - 0x8f, 0x7b, 0xb4, 0x91, 0xba, 0xf3, 0x49, 0x83, //0x0000cc40 .quad -8986383598807123057 - 0x42, 0x5f, 0xf4, 0x01, 0xc5, 0xf2, 0x98, 0xa2, //0x0000cc48 .quad -6730362715149934782 - 0x73, 0x9a, 0x21, 0x36, 0xa9, 0x70, 0x1c, 0x24, //0x0000cc50 .quad 2602078556773259891 - 0x13, 0x77, 0x71, 0x42, 0x76, 0x2f, 0x3f, 0xcb, //0x0000cc58 .quad -3801267375510030573 - 0x10, 0x01, 0xaa, 0x83, 0xd3, 0x8c, 0x23, 0xed, //0x0000cc60 .quad -1359087822460813040 - 0xd7, 0xd4, 0x0d, 0xd3, 0x53, 0xfb, 0x0e, 0xfe, //0x0000cc68 .quad -139898200960150313 - 0xaa, 0x40, 0x4a, 0x32, 0x04, 0x38, 0x36, 0xf4, //0x0000cc70 .quad -849429889038008150 - 0x06, 0xa5, 0xe8, 0x63, 0x14, 0x5d, 0xc9, 0x9e, //0x0000cc78 .quad -7004965403241175802 - 0xd5, 0xd0, 0xdc, 0x3e, 0x05, 0xc6, 0x43, 0xb1, //0x0000cc80 .quad -5673473379724898091 - 0x48, 0xce, 0xe2, 0x7c, 0x59, 0xb4, 0x7b, 0xc6, //0x0000cc88 .quad -4144520735624081848 - 0x0a, 0x05, 0x94, 0x8e, 0x86, 0xb7, 0x94, 0xdd, //0x0000cc90 .quad -2480155706228734710 - 0xda, 0x81, 0x1b, 0xdc, 0x6f, 0xa1, 0x1a, 0xf8, //0x0000cc98 .quad -568964901102714406 - 0x26, 0x83, 0x1c, 0x19, 0xb4, 0xf2, 0x7c, 0xca, //0x0000cca0 .quad -3855940325606653146 - 0x28, 0x31, 0x91, 0xe9, 0xe5, 0xa4, 0x10, 0x9b, //0x0000cca8 .quad -7273132090830278360 - 0xf0, 0xa3, 0x63, 0x1f, 0x61, 0x2f, 0x1c, 0xfd, //0x0000ccb0 .quad -208239388580928528 - 0x72, 0x7d, 0xf5, 0x63, 0x1f, 0xce, 0xd4, 0xc1, //0x0000ccb8 .quad -4479729095110460046 - 0xec, 0x8c, 0x3c, 0x67, 0x39, 0x3b, 0x63, 0xbc, //0x0000ccc0 .quad -4871985254153548564 - 0xcf, 0xdc, 0xf2, 0x3c, 0xa7, 0x01, 0x4a, 0xf2, //0x0000ccc8 .quad -987975350460687153 - 0x13, 0xd8, 0x85, 0xe0, 0x03, 0x05, 0xbe, 0xd5, //0x0000ccd0 .quad -3044990783845967853 - 0x01, 0xca, 0x17, 0x86, 0x08, 0x41, 0x6e, 0x97, //0x0000ccd8 .quad -7535013621679011327 - 0x18, 0x4e, 0xa7, 0xd8, 0x44, 0x86, 0x2d, 0x4b, //0x0000cce0 .quad 5417133557047315992 - 0x82, 0xbc, 0x9d, 0xa7, 0x4a, 0xd1, 0x49, 0xbd, //0x0000cce8 .quad -4807081008671376254 - 0x9e, 0x21, 0xd1, 0x0e, 0xd6, 0xe7, 0xf8, 0xdd, //0x0000ccf0 .quad -2451955090545630818 - 0xa2, 0x2b, 0x85, 0x51, 0x9d, 0x45, 0x9c, 0xec, //0x0000ccf8 .quad -1397165242411832414 - 0x03, 0xb5, 0x42, 0xc9, 0xe5, 0x90, 0xbb, 0xca, //0x0000cd00 .quad -3838314940804713213 - 0x45, 0x3b, 0xf3, 0x52, 0x82, 0xab, 0xe1, 0x93, //0x0000cd08 .quad -7790757304148477115 - 0x43, 0x62, 0x93, 0x3b, 0x1f, 0x75, 0x6a, 0x3d, //0x0000cd10 .quad 4425478360848884291 - 0x17, 0x0a, 0xb0, 0xe7, 0x62, 0x16, 0xda, 0xb8, //0x0000cd18 .quad -5126760611758208489 - 0xd4, 0x3a, 0x78, 0x0a, 0x67, 0x12, 0xc5, 0x0c, //0x0000cd20 .quad 920161932633717460 - 0x9d, 0x0c, 0x9c, 0xa1, 0xfb, 0x9b, 0x10, 0xe7, //0x0000cd28 .quad -1796764746270372707 - 0xc5, 0x24, 0x8b, 0x66, 0x80, 0x2b, 0xfb, 0x27, //0x0000cd30 .quad 2880944217109767365 - 0xe2, 0x87, 0x01, 0x45, 0x7d, 0x61, 0x6a, 0x90, //0x0000cd38 .quad -8040506994060064798 - 0xf6, 0xed, 0x2d, 0x80, 0x60, 0xf6, 0xf9, 0xb1, //0x0000cd40 .quad -5622191765467566602 - 0xda, 0xe9, 0x41, 0x96, 0xdc, 0xf9, 0x84, 0xb4, //0x0000cd48 .quad -5438947724147693094 - 0x73, 0x69, 0x39, 0xa0, 0xf8, 0x73, 0x78, 0x5e, //0x0000cd50 .quad 6807318348447705459 - 0x51, 0x64, 0xd2, 0xbb, 0x53, 0x38, 0xa6, 0xe1, //0x0000cd58 .quad -2186998636757228463 - 0xe8, 0xe1, 0x23, 0x64, 0x7b, 0x48, 0x0b, 0xdb, //0x0000cd60 .quad -2662955059861265944 - 0xb2, 0x7e, 0x63, 0x55, 0x34, 0xe3, 0x07, 0x8d, //0x0000cd68 .quad -8284403175614349646 - 0x62, 0xda, 0x2c, 0x3d, 0x9a, 0x1a, 0xce, 0x91, //0x0000cd70 .quad -7940379843253970334 - 0x5f, 0x5e, 0xbc, 0x6a, 0x01, 0xdc, 0x49, 0xb0, //0x0000cd78 .quad -5743817951090549153 - 0xfb, 0x10, 0x78, 0xcc, 0x40, 0xa1, 0x41, 0x76, //0x0000cd80 .quad 8521269269642088699 - 0xf7, 0x75, 0x6b, 0xc5, 0x01, 0x53, 0x5c, 0xdc, //0x0000cd88 .quad -2568086420435798537 - 0x9d, 0x0a, 0xcb, 0x7f, 0xc8, 0x04, 0xe9, 0xa9, //0x0000cd90 .quad -6203421752542164323 - 0xba, 0x29, 0x63, 0x1b, 0xe1, 0xb3, 0xb9, 0x89, //0x0000cd98 .quad -8522583040413455942 - 0x44, 0xcd, 0xbd, 0x9f, 0xfa, 0x45, 0x63, 0x54, //0x0000cda0 .quad 6080780864604458308 - 0x29, 0xf4, 0x3b, 0x62, 0xd9, 0x20, 0x28, 0xac, //0x0000cda8 .quad -6041542782089432023 - 0x95, 0x40, 0xad, 0x47, 0x79, 0x17, 0x7c, 0xa9, //0x0000cdb0 .quad -6234081974526590827 - 0x33, 0xf1, 0xca, 0xba, 0x0f, 0x29, 0x32, 0xd7, //0x0000cdb8 .quad -2940242459184402125 - 0x5d, 0x48, 0xcc, 0xcc, 0xab, 0x8e, 0xed, 0x49, //0x0000cdc0 .quad 5327070802775656541 - 0xc0, 0xd6, 0xbe, 0xd4, 0xa9, 0x59, 0x7f, 0x86, //0x0000cdc8 .quad -8755180564631333184 - 0x74, 0x5a, 0xff, 0xbf, 0x56, 0xf2, 0x68, 0x5c, //0x0000cdd0 .quad 6658838503469570676 - 0x70, 0x8c, 0xee, 0x49, 0x14, 0x30, 0x1f, 0xa8, //0x0000cdd8 .quad -6332289687361778576 - 0x11, 0x31, 0xff, 0x6f, 0xec, 0x2e, 0x83, 0x73, //0x0000cde0 .quad 8323548129336963345 - 0x8c, 0x2f, 0x6a, 0x5c, 0x19, 0xfc, 0x26, 0xd2, //0x0000cde8 .quad -3303676090774835316 - 0xab, 0x7e, 0xff, 0xc5, 0x53, 0xfd, 0x31, 0xc8, //0x0000cdf0 .quad -4021154456019173717 - 0xb7, 0x5d, 0xc2, 0xd9, 0x8f, 0x5d, 0x58, 0x83, //0x0000cdf8 .quad -8982326584375353929 - 0x55, 0x5e, 0x7f, 0xb7, 0xa8, 0x7c, 0x3e, 0xba, //0x0000ce00 .quad -5026443070023967147 - 0x25, 0xf5, 0x32, 0xd0, 0xf3, 0x74, 0x2e, 0xa4, //0x0000ce08 .quad -6616222212041804507 - 0xeb, 0x35, 0x5f, 0xe5, 0xd2, 0x1b, 0xce, 0x28, //0x0000ce10 .quad 2940318199324816875 - 0x6f, 0xb2, 0x3f, 0xc4, 0x30, 0x12, 0x3a, 0xcd, //0x0000ce18 .quad -3658591746624867729 - 0xb3, 0x81, 0x5b, 0xcf, 0x63, 0xd1, 0x80, 0x79, //0x0000ce20 .quad 8755227902219092403 - 0x85, 0xcf, 0xa7, 0x7a, 0x5e, 0x4b, 0x44, 0x80, //0x0000ce28 .quad -9204148869281624187 - 0x1f, 0x62, 0x32, 0xc3, 0xbc, 0x05, 0xe1, 0xd7, //0x0000ce30 .quad -2891023177508298209 - 0x66, 0xc3, 0x51, 0x19, 0x36, 0x5e, 0x55, 0xa0, //0x0000ce38 .quad -6893500068174642330 - 0xa7, 0xfa, 0xfe, 0xf3, 0x2b, 0x47, 0xd9, 0x8d, //0x0000ce40 .quad -8225464990312760665 - 0x40, 0x34, 0xa6, 0x9f, 0xc3, 0xb5, 0x6a, 0xc8, //0x0000ce48 .quad -4005189066790915008 - 0x51, 0xb9, 0xfe, 0xf0, 0xf6, 0x98, 0x4f, 0xb1, //0x0000ce50 .quad -5670145219463562927 - 0x50, 0xc1, 0x8f, 0x87, 0x34, 0x63, 0x85, 0xfa, //0x0000ce58 .quad -394800315061255856 - 0xd3, 0x33, 0x9f, 0x56, 0x9a, 0xbf, 0xd1, 0x6e, //0x0000ce60 .quad 7985374283903742931 - 0xd2, 0xd8, 0xb9, 0xd4, 0x00, 0x5e, 0x93, 0x9c, //0x0000ce68 .quad -7164279224554366766 - 0xc8, 0x00, 0x47, 0xec, 0x80, 0x2f, 0x86, 0x0a, //0x0000ce70 .quad 758345818024902856 - 0x07, 0x4f, 0xe8, 0x09, 0x81, 0x35, 0xb8, 0xc3, //0x0000ce78 .quad -4343663012265570553 - 0xfa, 0xc0, 0x58, 0x27, 0x61, 0xbb, 0x27, 0xcd, //0x0000ce80 .quad -3663753745896259334 - 0xc8, 0x62, 0x62, 0x4c, 0xe1, 0x42, 0xa6, 0xf4, //0x0000ce88 .quad -817892746904575288 - 0x9c, 0x78, 0x97, 0xb8, 0x1c, 0xd5, 0x38, 0x80, //0x0000ce90 .quad -9207375118826243940 - 0xbd, 0x7d, 0xbd, 0xcf, 0xcc, 0xe9, 0xe7, 0x98, //0x0000ce98 .quad -7428711994456441411 - 0xc3, 0x56, 0xbd, 0xe6, 0x63, 0x0a, 0x47, 0xe0, //0x0000cea0 .quad -2285846861678029117 - 0x2c, 0xdd, 0xac, 0x03, 0x40, 0xe4, 0x21, 0xbf, //0x0000cea8 .quad -4674203974643163860 - 0x74, 0xac, 0x6c, 0xe0, 0xfc, 0xcc, 0x58, 0x18, //0x0000ceb0 .quad 1754377441329851508 - 0x78, 0x14, 0x98, 0x04, 0x50, 0x5d, 0xea, 0xee, //0x0000ceb8 .quad -1231068949876566920 - 0xc8, 0xeb, 0x43, 0x0c, 0x1e, 0x80, 0x37, 0x0f, //0x0000cec0 .quad 1096485900831157192 - 0xcb, 0x0c, 0xdf, 0x02, 0x52, 0x7a, 0x52, 0x95, //0x0000cec8 .quad -7686947121313936181 - 0xba, 0xe6, 0x54, 0x8f, 0x25, 0x60, 0x05, 0xd3, //0x0000ced0 .quad -3241078642388441414 - 0xfd, 0xcf, 0x96, 0x83, 0xe6, 0x18, 0xa7, 0xba, //0x0000ced8 .quad -4996997883215032323 - 0x69, 0x20, 0x2a, 0xf3, 0x2e, 0xb8, 0xc6, 0x47, //0x0000cee0 .quad 5172023733869224041 - 0xfd, 0x83, 0x7c, 0x24, 0x20, 0xdf, 0x50, 0xe9, //0x0000cee8 .quad -1634561335591402499 - 0x41, 0x54, 0xfa, 0x57, 0x1d, 0x33, 0xdc, 0x4c, //0x0000cef0 .quad 5538357842881958977 - 0x7e, 0xd2, 0xcd, 0x16, 0x74, 0x8b, 0xd2, 0x91, //0x0000cef8 .quad -7939129862385708418 - 0x52, 0xe9, 0xf8, 0xad, 0xe4, 0x3f, 0x13, 0xe0, //0x0000cf00 .quad -2300424733252327086 - 0x1d, 0x47, 0x81, 0x1c, 0x51, 0x2e, 0x47, 0xb6, //0x0000cf08 .quad -5312226309554747619 - 0xa6, 0x23, 0x77, 0xd9, 0xdd, 0x0f, 0x18, 0x58, //0x0000cf10 .quad 6347841120289366950 - 0xe5, 0x98, 0xa1, 0x63, 0xe5, 0xf9, 0xd8, 0xe3, //0x0000cf18 .quad -2028596868516046619 - 0x48, 0x76, 0xea, 0xa7, 0xea, 0x09, 0x0f, 0x57, //0x0000cf20 .quad 6273243709394548296 - 0x8f, 0xff, 0x44, 0x5e, 0x2f, 0x9c, 0x67, 0x8e, //0x0000cf28 .quad -8185402070463610993 - 0xda, 0x13, 0xe5, 0x51, 0x65, 0xcc, 0xd2, 0x2c, //0x0000cf30 .quad 3229868618315797466 - 0x73, 0x3f, 0xd6, 0x35, 0x3b, 0x83, 0x01, 0xb2, //0x0000cf38 .quad -5620066569652125837 - 0xd1, 0x58, 0x5e, 0xa6, 0x7e, 0x7f, 0x07, 0xf8, //0x0000cf40 .quad -574350245532641071 - 0x4f, 0xcf, 0x4b, 0x03, 0x0a, 0xe4, 0x81, 0xde, //0x0000cf48 .quad -2413397193637769393 - 0x82, 0xf7, 0xfa, 0x27, 0xaf, 0xaf, 0x04, 0xfb, //0x0000cf50 .quad -358968903457900670 - 0x91, 0x61, 0x0f, 0x42, 0x86, 0x2e, 0x11, 0x8b, //0x0000cf58 .quad -8425902273664687727 - 0x63, 0xb5, 0xf9, 0xf1, 0x9a, 0xdb, 0xc5, 0x79, //0x0000cf60 .quad 8774660907532399971 - 0xf6, 0x39, 0x93, 0xd2, 0x27, 0x7a, 0xd5, 0xad, //0x0000cf68 .quad -5920691823653471754 - 0xbc, 0x22, 0x78, 0xae, 0x81, 0x52, 0x37, 0x18, //0x0000cf70 .quad 1744954097560724156 - 0x74, 0x08, 0x38, 0xc7, 0xb1, 0xd8, 0x4a, 0xd9, //0x0000cf78 .quad -2789178761139451788 - 0xb5, 0x15, 0x0b, 0x0d, 0x91, 0x93, 0x22, 0x8f, //0x0000cf80 .quad -8132775725879323211 - 0x48, 0x05, 0x83, 0x1c, 0x6f, 0xc7, 0xce, 0x87, //0x0000cf88 .quad -8660765753353239224 - 0x22, 0xdb, 0x4d, 0x50, 0x75, 0x38, 0xeb, 0xb2, //0x0000cf90 .quad -5554283638921766110 - 0x9a, 0xc6, 0xa3, 0xe3, 0x4a, 0x79, 0xc2, 0xa9, //0x0000cf98 .quad -6214271173264161126 - 0xeb, 0x51, 0x61, 0xa4, 0x92, 0x06, 0xa6, 0x5f, //0x0000cfa0 .quad 6892203506629956075 - 0x41, 0xb8, 0x8c, 0x9c, 0x9d, 0x17, 0x33, 0xd4, //0x0000cfa8 .quad -3156152948152813503 - 0x33, 0xd3, 0xbc, 0xa6, 0x1b, 0xc4, 0xc7, 0xdb, //0x0000cfb0 .quad -2609901835997359309 - 0x28, 0xf3, 0xd7, 0x81, 0xc2, 0xee, 0x9f, 0x84, //0x0000cfb8 .quad -8890124620236590296 - 0x00, 0x08, 0x6c, 0x90, 0x22, 0xb5, 0xb9, 0x12, //0x0000cfc0 .quad 1349308723430688768 - 0xf3, 0xef, 0x4d, 0x22, 0x73, 0xea, 0xc7, 0xa5, //0x0000cfc8 .quad -6500969756868349965 - 0x00, 0x0a, 0x87, 0x34, 0x6b, 0x22, 0x68, 0xd7, //0x0000cfd0 .quad -2925050114139026944 - 0xef, 0x6b, 0xe1, 0xea, 0x0f, 0xe5, 0x39, 0xcf, //0x0000cfd8 .quad -3514526177658049553 - 0x40, 0x66, 0xd4, 0x00, 0x83, 0x15, 0xa1, 0xe6, //0x0000cfe0 .quad -1828156321336891840 - 0x75, 0xe3, 0xcc, 0xf2, 0x29, 0x2f, 0x84, 0x81, //0x0000cfe8 .quad -9114107888677362827 - 0xd0, 0x7f, 0x09, 0xc1, 0xe3, 0x5a, 0x49, 0x60, //0x0000cff0 .quad 6938176635183661008 - 0x53, 0x1c, 0x80, 0x6f, 0xf4, 0x3a, 0xe5, 0xa1, //0x0000cff8 .quad -6780948842419315629 - 0xc4, 0xdf, 0x4b, 0xb1, 0x9c, 0xb1, 0x5b, 0x38, //0x0000d000 .quad 4061034775552188356 - 0x68, 0x23, 0x60, 0x8b, 0xb1, 0x89, 0x5e, 0xca, //0x0000d008 .quad -3864500034596756632 - 0xb5, 0xd7, 0x9e, 0xdd, 0x03, 0x9e, 0x72, 0x46, //0x0000d010 .quad 5076293469440235445 - 0x42, 0x2c, 0x38, 0xee, 0x1d, 0x2c, 0xf6, 0xfc, //0x0000d018 .quad -218939024818557886 - 0xd1, 0x46, 0x83, 0x6a, 0xc2, 0xa2, 0x07, 0x6c, //0x0000d020 .quad 7784369436827535057 - 0xa9, 0x1b, 0xe3, 0xb4, 0x92, 0xdb, 0x19, 0x9e, //0x0000d028 .quad -7054365918152680535 - 0x85, 0x18, 0x24, 0x05, 0x73, 0x8b, 0x09, 0xc7, //0x0000d030 .quad -4104596259247744891 - 0x93, 0xe2, 0x1b, 0x62, 0x77, 0x52, 0xa0, 0xc5, //0x0000d038 .quad -4206271379263462765 - 0xa7, 0x1e, 0x6d, 0xc6, 0x4f, 0xee, 0xcb, 0xb8, //0x0000d040 .quad -5130745324059681113 - 0x38, 0xdb, 0xa2, 0x3a, 0x15, 0x67, 0x08, 0xf7, //0x0000d048 .quad -646153205651940552 - 0x28, 0x33, 0x04, 0xdc, 0xf1, 0x74, 0x7f, 0x73, //0x0000d050 .quad 8322499218531169064 - 0x03, 0xc9, 0xa5, 0x44, 0x6d, 0x40, 0x65, 0x9a, //0x0000d058 .quad -7321374781173544701 - 0xf2, 0x3f, 0x05, 0x53, 0x2e, 0x52, 0x5f, 0x50, //0x0000d060 .quad 5791438004736573426 - 0x44, 0x3b, 0xcf, 0x95, 0x88, 0x90, 0xfe, 0xc0, //0x0000d068 .quad -4540032458039542972 - 0xef, 0x8f, 0xc6, 0xe7, 0xb9, 0x26, 0x77, 0x64, //0x0000d070 .quad 7239297505920716783 - 0x15, 0x0a, 0x43, 0xbb, 0xaa, 0x34, 0x3e, 0xf1, //0x0000d078 .quad -1063354554122040811 - 0xf5, 0x19, 0xdc, 0x30, 0x34, 0x78, 0xca, 0x5e, //0x0000d080 .quad 6830403950414141941 - 0x4d, 0xe6, 0x09, 0xb5, 0xea, 0xe0, 0xc6, 0x96, //0x0000d088 .quad -7582125623967357363 - 0x72, 0x20, 0x13, 0x3d, 0x41, 0x16, 0x7d, 0xb6, //0x0000d090 .quad -5297053117264486286 - 0xe0, 0x5f, 0x4c, 0x62, 0x25, 0x99, 0x78, 0xbc, //0x0000d098 .quad -4865971011531808800 - 0x8f, 0xe8, 0x57, 0x8c, 0xd1, 0x5b, 0x1c, 0xe4, //0x0000d0a0 .quad -2009630378153219953 - 0xd8, 0x77, 0xdf, 0xba, 0x6e, 0xbf, 0x96, 0xeb, //0x0000d0a8 .quad -1470777745987373096 - 0x59, 0xf1, 0xb6, 0xf7, 0x62, 0xb9, 0x91, 0x8e, //0x0000d0b0 .quad -8173548013986844327 - 0xe7, 0xaa, 0xcb, 0x34, 0xa5, 0x37, 0x3e, 0x93, //0x0000d0b8 .quad -7836765118883190041 - 0xb0, 0xad, 0xa4, 0xb5, 0xbb, 0x27, 0x36, 0x72, //0x0000d0c0 .quad 8229809056225996208 - 0xa1, 0x95, 0xfe, 0x81, 0x8e, 0xc5, 0x0d, 0xb8, //0x0000d0c8 .quad -5184270380176599647 - 0x1c, 0xd9, 0x0d, 0xa3, 0xaa, 0xb1, 0xc3, 0xce, //0x0000d0d0 .quad -3547796734999668452 - 0x09, 0x3b, 0x7e, 0x22, 0xf2, 0x36, 0x11, 0xe6, //0x0000d0d8 .quad -1868651956793361655 - 0xb1, 0xa7, 0xe8, 0xa5, 0x0a, 0x4f, 0x3a, 0x21, //0x0000d0e0 .quad 2394313059052595121 - 0xe6, 0xe4, 0x8e, 0x55, 0x57, 0xc2, 0xca, 0x8f, //0x0000d0e8 .quad -8085436500636932890 - 0x9d, 0xd1, 0x62, 0x4f, 0xcd, 0xe2, 0x88, 0xa9, //0x0000d0f0 .quad -6230480713039031907 - 0x1f, 0x9e, 0xf2, 0x2a, 0xed, 0x72, 0xbd, 0xb3, //0x0000d0f8 .quad -5495109607368778209 - 0x05, 0x86, 0x3b, 0xa3, 0x80, 0x1b, 0xeb, 0x93, //0x0000d100 .quad -7788100891298789883 - 0xa7, 0x45, 0xaf, 0x75, 0xa8, 0xcf, 0xac, 0xe0, //0x0000d108 .quad -2257200990783584857 - 0xc3, 0x33, 0x05, 0x66, 0x30, 0xf1, 0x72, 0xbc, //0x0000d110 .quad -4867563057061743677 - 0x88, 0x8b, 0x8d, 0x49, 0xc9, 0x01, 0x6c, 0x8c, //0x0000d118 .quad -8328279646880822392 - 0xb4, 0x80, 0x86, 0x7f, 0x7c, 0xad, 0x8f, 0xeb, //0x0000d120 .quad -1472767802899791692 - 0x6a, 0xee, 0xf0, 0x9b, 0x3b, 0x02, 0x87, 0xaf, //0x0000d128 .quad -5798663540173640086 - 0xe1, 0x20, 0x68, 0x9f, 0xdb, 0x98, 0x73, 0xa6, //0x0000d130 .quad -6452645772052127519 - 0x05, 0x2a, 0xed, 0x82, 0xca, 0xc2, 0x68, 0xdb, //0x0000d138 .quad -2636643406789662203 - 0x8c, 0x14, 0xa1, 0x43, 0x89, 0x3f, 0x08, 0x88, //0x0000d140 .quad -8644589625959967604 - 0x43, 0x3a, 0xd4, 0x91, 0xbe, 0x79, 0x21, 0x89, //0x0000d148 .quad -8565431156884620733 - 0xb0, 0x59, 0x89, 0x94, 0x6b, 0x4f, 0x0a, 0x6a, //0x0000d150 .quad 7641007041259592112 - 0xd4, 0x48, 0x49, 0x36, 0x2e, 0xd8, 0x69, 0xab, //0x0000d158 .quad -6095102927678388012 - 0x1c, 0xb0, 0xab, 0x79, 0x46, 0xe3, 0x8c, 0x84, //0x0000d160 .quad -8895485272135061476 - 0x09, 0x9b, 0xdb, 0xc3, 0x39, 0x4e, 0x44, 0xd6, //0x0000d168 .quad -3007192641170597111 - 0x11, 0x4e, 0x0b, 0x0c, 0x0c, 0x0e, 0xd8, 0xf2, //0x0000d170 .quad -947992276657025519 - 0xe5, 0x40, 0x69, 0x1a, 0xe4, 0xb0, 0xea, 0x85, //0x0000d178 .quad -8797024428372705051 - 0x95, 0x21, 0x0e, 0x0f, 0x8f, 0x11, 0x8e, 0x6f, //0x0000d180 .quad 8038381691033493909 - 0x1f, 0x91, 0x03, 0x21, 0x1d, 0x5d, 0x65, 0xa7, //0x0000d188 .quad -6384594517038493409 - 0xfb, 0xa9, 0xd1, 0xd2, 0xf2, 0x95, 0x71, 0x4b, //0x0000d190 .quad 5436291095364479483 - 0x67, 0x75, 0x44, 0x69, 0x64, 0xb4, 0x3e, 0xd1, //0x0000d198 .quad -3369057127870728857 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d1a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - //0x0000d1b0 .p2align 4, 0x00 - //0x0000d1b0 _POW_TAB - 0x01, 0x00, 0x00, 0x00, //0x0000d1b0 .long 1 - 0x03, 0x00, 0x00, 0x00, //0x0000d1b4 .long 3 - 0x06, 0x00, 0x00, 0x00, //0x0000d1b8 .long 6 - 0x09, 0x00, 0x00, 0x00, //0x0000d1bc .long 9 - 0x0d, 0x00, 0x00, 0x00, //0x0000d1c0 .long 13 - 0x10, 0x00, 0x00, 0x00, //0x0000d1c4 .long 16 - 0x13, 0x00, 0x00, 0x00, //0x0000d1c8 .long 19 - 0x17, 0x00, 0x00, 0x00, //0x0000d1cc .long 23 - 0x1a, 0x00, 0x00, 0x00, //0x0000d1d0 .long 26 - //0x0000d1d4 .p2align 2, 0x00 - //0x0000d1d4 _MASK_USE_NUMBER - 0x02, 0x00, 0x00, 0x00, //0x0000d1d4 .long 2 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d1d8 .p2align 4, 0x00 - //0x0000d1e0 _Digits - 0x30, 0x30, 0x30, 0x31, 0x30, 0x32, 0x30, 0x33, 0x30, 0x34, 0x30, 0x35, 0x30, 0x36, 0x30, 0x37, //0x0000d1e0 QUAD $0x3330323031303030; QUAD $0x3730363035303430 // .ascii 16, '0001020304050607' - 0x30, 0x38, 0x30, 0x39, 0x31, 0x30, 0x31, 0x31, 0x31, 0x32, 0x31, 0x33, 0x31, 0x34, 0x31, 0x35, //0x0000d1f0 QUAD $0x3131303139303830; QUAD $0x3531343133313231 // .ascii 16, '0809101112131415' - 0x31, 0x36, 0x31, 0x37, 0x31, 0x38, 0x31, 0x39, 0x32, 0x30, 0x32, 0x31, 0x32, 0x32, 0x32, 0x33, //0x0000d200 QUAD $0x3931383137313631; QUAD $0x3332323231323032 // .ascii 16, '1617181920212223' - 0x32, 0x34, 0x32, 0x35, 0x32, 0x36, 0x32, 0x37, 0x32, 0x38, 0x32, 0x39, 0x33, 0x30, 0x33, 0x31, //0x0000d210 QUAD $0x3732363235323432; QUAD $0x3133303339323832 // .ascii 16, '2425262728293031' - 0x33, 0x32, 0x33, 0x33, 0x33, 0x34, 0x33, 0x35, 0x33, 0x36, 0x33, 0x37, 0x33, 0x38, 0x33, 0x39, //0x0000d220 QUAD $0x3533343333333233; QUAD $0x3933383337333633 // .ascii 16, '3233343536373839' - 0x34, 0x30, 0x34, 0x31, 0x34, 0x32, 0x34, 0x33, 0x34, 0x34, 0x34, 0x35, 0x34, 0x36, 0x34, 0x37, //0x0000d230 QUAD $0x3334323431343034; QUAD $0x3734363435343434 // .ascii 16, '4041424344454647' - 0x34, 0x38, 0x34, 0x39, 0x35, 0x30, 0x35, 0x31, 0x35, 0x32, 0x35, 0x33, 0x35, 0x34, 0x35, 0x35, //0x0000d240 QUAD $0x3135303539343834; QUAD $0x3535343533353235 // .ascii 16, '4849505152535455' - 0x35, 0x36, 0x35, 0x37, 0x35, 0x38, 0x35, 0x39, 0x36, 0x30, 0x36, 0x31, 0x36, 0x32, 0x36, 0x33, //0x0000d250 QUAD $0x3935383537353635; QUAD $0x3336323631363036 // .ascii 16, '5657585960616263' - 0x36, 0x34, 0x36, 0x35, 0x36, 0x36, 0x36, 0x37, 0x36, 0x38, 0x36, 0x39, 0x37, 0x30, 0x37, 0x31, //0x0000d260 QUAD $0x3736363635363436; QUAD $0x3137303739363836 // .ascii 16, '6465666768697071' - 0x37, 0x32, 0x37, 0x33, 0x37, 0x34, 0x37, 0x35, 0x37, 0x36, 0x37, 0x37, 0x37, 0x38, 0x37, 0x39, //0x0000d270 QUAD $0x3537343733373237; QUAD $0x3937383737373637 // .ascii 16, '7273747576777879' - 0x38, 0x30, 0x38, 0x31, 0x38, 0x32, 0x38, 0x33, 0x38, 0x34, 0x38, 0x35, 0x38, 0x36, 0x38, 0x37, //0x0000d280 QUAD $0x3338323831383038; QUAD $0x3738363835383438 // .ascii 16, '8081828384858687' - 0x38, 0x38, 0x38, 0x39, 0x39, 0x30, 0x39, 0x31, 0x39, 0x32, 0x39, 0x33, 0x39, 0x34, 0x39, 0x35, //0x0000d290 QUAD $0x3139303939383838; QUAD $0x3539343933393239 // .ascii 16, '8889909192939495' - 0x39, 0x36, 0x39, 0x37, 0x39, 0x38, 0x39, 0x39, //0x0000d2a0 QUAD $0x3939383937393639 // .ascii 8, '96979899' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d2a8 .p2align 4, 0x00 - //0x0000d2b0 _pow10_ceil_sig.g - 0x4f, 0xdc, 0xbc, 0xbe, 0xfc, 0xb1, 0x77, 0xff, //0x0000d2b0 .quad -38366372719436721 - 0x7b, 0x0f, 0xbb, 0x13, 0x9c, 0xe8, 0xe8, 0x25, //0x0000d2b8 .quad 2731688931043774331 - 0xb1, 0x09, 0x36, 0xf7, 0x3d, 0xcf, 0xaa, 0x9f, //0x0000d2c0 .quad -6941508010590729807 - 0xad, 0xe9, 0x54, 0x8c, 0x61, 0x91, 0xb1, 0x77, //0x0000d2c8 .quad 8624834609543440813 - 0x1d, 0x8c, 0x03, 0x75, 0x0d, 0x83, 0x95, 0xc7, //0x0000d2d0 .quad -4065198994811024355 - 0x18, 0x24, 0x6a, 0xef, 0xb9, 0xf5, 0x9d, 0xd5, //0x0000d2d8 .quad -3054014793352862696 - 0x25, 0x6f, 0x44, 0xd2, 0xd0, 0xe3, 0x7a, 0xf9, //0x0000d2e0 .quad -469812725086392539 - 0x1e, 0xad, 0x44, 0x6b, 0x28, 0x73, 0x05, 0x4b, //0x0000d2e8 .quad 5405853545163697438 - 0x77, 0xc5, 0x6a, 0x83, 0x62, 0xce, 0xec, 0x9b, //0x0000d2f0 .quad -7211161980820077193 - 0x33, 0xec, 0x0a, 0x43, 0xf9, 0x67, 0xe3, 0x4e, //0x0000d2f8 .quad 5684501474941004851 - 0xd5, 0x76, 0x45, 0x24, 0xfb, 0x01, 0xe8, 0xc2, //0x0000d300 .quad -4402266457597708587 - 0x40, 0xa7, 0xcd, 0x93, 0xf7, 0x41, 0x9c, 0x22, //0x0000d308 .quad 2493940825248868160 - 0x8a, 0xd4, 0x56, 0xed, 0x79, 0x02, 0xa2, 0xf3, //0x0000d310 .quad -891147053569747830 - 0x10, 0x11, 0xc1, 0x78, 0x75, 0x52, 0x43, 0x6b, //0x0000d318 .quad 7729112049988473104 - 0xd6, 0x44, 0x56, 0x34, 0x8c, 0x41, 0x45, 0x98, //0x0000d320 .quad -7474495936122174250 - 0xaa, 0xaa, 0x78, 0x6b, 0x89, 0x13, 0x0a, 0x83, //0x0000d328 .quad -9004363024039368022 - 0x0c, 0xd6, 0x6b, 0x41, 0xef, 0x91, 0x56, 0xbe, //0x0000d330 .quad -4731433901725329908 - 0x54, 0xd5, 0x56, 0xc6, 0x6b, 0x98, 0xcc, 0x23, //0x0000d338 .quad 2579604275232953684 - 0x8f, 0xcb, 0xc6, 0x11, 0x6b, 0x36, 0xec, 0xed, //0x0000d340 .quad -1302606358729274481 - 0xa9, 0x8a, 0xec, 0xb7, 0x86, 0xbe, 0xbf, 0x2c, //0x0000d348 .quad 3224505344041192105 - 0x39, 0x3f, 0x1c, 0xeb, 0x02, 0xa2, 0xb3, 0x94, //0x0000d350 .quad -7731658001846878407 - 0xaa, 0xd6, 0xf3, 0x32, 0x14, 0xd7, 0xf7, 0x7b, //0x0000d358 .quad 8932844867666826922 - 0x07, 0x4f, 0xe3, 0xa5, 0x83, 0x8a, 0xe0, 0xb9, //0x0000d360 .quad -5052886483881210105 - 0x54, 0xcc, 0xb0, 0x3f, 0xd9, 0xcc, 0xf5, 0xda, //0x0000d368 .quad -2669001970698630060 - 0xc9, 0x22, 0x5c, 0x8f, 0x24, 0xad, 0x58, 0xe8, //0x0000d370 .quad -1704422086424124727 - 0x69, 0xff, 0x9c, 0x8f, 0x0f, 0x40, 0xb3, 0xd1, //0x0000d378 .quad -3336252463373287575 - 0xbe, 0x95, 0x99, 0xd9, 0x36, 0x6c, 0x37, 0x91, //0x0000d380 .quad -7982792831656159810 - 0xa2, 0x1f, 0xc2, 0xb9, 0x09, 0x08, 0x10, 0x23, //0x0000d388 .quad 2526528228819083170 - 0x2d, 0xfb, 0xff, 0x8f, 0x44, 0x47, 0x85, 0xb5, //0x0000d390 .quad -5366805021142811859 - 0x8b, 0xa7, 0x32, 0x28, 0x0c, 0x0a, 0xd4, 0xab, //0x0000d398 .quad -6065211750830921845 - 0xf9, 0xf9, 0xff, 0xb3, 0x15, 0x99, 0xe6, 0xe2, //0x0000d3a0 .quad -2096820258001126919 - 0x6d, 0x51, 0x3f, 0x32, 0x8f, 0x0c, 0xc9, 0x16, //0x0000d3a8 .quad 1641857348316123501 - 0x3b, 0xfc, 0x7f, 0x90, 0xad, 0x1f, 0xd0, 0x8d, //0x0000d3b0 .quad -8228041688891786181 - 0xe4, 0x92, 0x67, 0x7f, 0xd9, 0xa7, 0x3d, 0xae, //0x0000d3b8 .quad -5891368184943504668 - 0x4a, 0xfb, 0x9f, 0xf4, 0x98, 0x27, 0x44, 0xb1, //0x0000d3c0 .quad -5673366092687344822 - 0x9d, 0x77, 0x41, 0xdf, 0xcf, 0x11, 0xcd, 0x99, //0x0000d3c8 .quad -7364210231179380835 - 0x1d, 0xfa, 0xc7, 0x31, 0x7f, 0x31, 0x95, 0xdd, //0x0000d3d0 .quad -2480021597431793123 - 0x84, 0xd5, 0x11, 0xd7, 0x43, 0x56, 0x40, 0x40, //0x0000d3d8 .quad 4629795266307937668 - 0x52, 0xfc, 0x1c, 0x7f, 0xef, 0x3e, 0x7d, 0x8a, //0x0000d3e0 .quad -8467542526035952558 - 0x73, 0x25, 0x6b, 0x66, 0xea, 0x35, 0x28, 0x48, //0x0000d3e8 .quad 5199465050656154995 - 0x66, 0x3b, 0xe4, 0x5e, 0xab, 0x8e, 0x1c, 0xad, //0x0000d3f0 .quad -5972742139117552794 - 0xd0, 0xee, 0x05, 0x00, 0x65, 0x43, 0x32, 0xda, //0x0000d3f8 .quad -2724040723534582064 - 0x40, 0x4a, 0x9d, 0x36, 0x56, 0xb2, 0x63, 0xd8, //0x0000d400 .quad -2854241655469553088 - 0x83, 0x6a, 0x07, 0x40, 0x3e, 0xd4, 0xbe, 0x90, //0x0000d408 .quad -8016736922845615485 - 0x68, 0x4e, 0x22, 0xe2, 0x75, 0x4f, 0x3e, 0x87, //0x0000d410 .quad -8701430062309552536 - 0x92, 0xa2, 0x04, 0xe8, 0xa6, 0x44, 0x77, 0x5a, //0x0000d418 .quad 6518754469289960082 - 0x02, 0xe2, 0xaa, 0x5a, 0x53, 0xe3, 0x0d, 0xa9, //0x0000d420 .quad -6265101559459552766 - 0x37, 0xcb, 0x05, 0xa2, 0xd0, 0x15, 0x15, 0x71, //0x0000d428 .quad 8148443086612450103 - 0x83, 0x9a, 0x55, 0x31, 0x28, 0x5c, 0x51, 0xd3, //0x0000d430 .quad -3219690930897053053 - 0x04, 0x3e, 0x87, 0xca, 0x44, 0x5b, 0x5a, 0x0d, //0x0000d438 .quad 962181821410786820 - 0x91, 0x80, 0xd5, 0x1e, 0x99, 0xd9, 0x12, 0x84, //0x0000d440 .quad -8929835859451740015 - 0xc3, 0x86, 0x94, 0xfe, 0x0a, 0x79, 0x58, 0xe8, //0x0000d448 .quad -1704479370831952189 - 0xb6, 0xe0, 0x8a, 0x66, 0xff, 0x8f, 0x17, 0xa5, //0x0000d450 .quad -6550608805887287114 - 0x73, 0xa8, 0x39, 0xbe, 0x4d, 0x97, 0x6e, 0x62, //0x0000d458 .quad 7092772823314835571 - 0xe3, 0x98, 0x2d, 0x40, 0xff, 0x73, 0x5d, 0xce, //0x0000d460 .quad -3576574988931720989 - 0x90, 0x12, 0xc8, 0x2d, 0x21, 0x3d, 0x0a, 0xfb, //0x0000d468 .quad -357406007711231344 - 0x8e, 0x7f, 0x1c, 0x88, 0x7f, 0x68, 0xfa, 0x80, //0x0000d470 .quad -9152888395723407474 - 0x9a, 0x0b, 0x9d, 0xbc, 0x34, 0x66, 0xe6, 0x7c, //0x0000d478 .quad 8999993282035256218 - 0x72, 0x9f, 0x23, 0x6a, 0x9f, 0x02, 0x39, 0xa1, //0x0000d480 .quad -6829424476226871438 - 0x81, 0x4e, 0xc4, 0xeb, 0xc1, 0xff, 0x1f, 0x1c, //0x0000d488 .quad 2026619565689294465 - 0x4e, 0x87, 0xac, 0x44, 0x47, 0x43, 0x87, 0xc9, //0x0000d490 .quad -3925094576856201394 - 0x21, 0x62, 0xb5, 0x66, 0xb2, 0xff, 0x27, 0xa3, //0x0000d498 .quad -6690097579743157727 - 0x22, 0xa9, 0xd7, 0x15, 0x19, 0x14, 0xe9, 0xfb, //0x0000d4a0 .quad -294682202642863838 - 0xa9, 0xba, 0x62, 0x00, 0x9f, 0xff, 0xf1, 0x4b, //0x0000d4a8 .quad 5472436080603216553 - 0xb5, 0xc9, 0xa6, 0xad, 0x8f, 0xac, 0x71, 0x9d, //0x0000d4b0 .quad -7101705404292871755 - 0xaa, 0xb4, 0x3d, 0x60, 0xc3, 0x3f, 0x77, 0x6f, //0x0000d4b8 .quad 8031958568804398250 - 0x22, 0x7c, 0x10, 0x99, 0xb3, 0x17, 0xce, 0xc4, //0x0000d4c0 .quad -4265445736938701790 - 0xd4, 0x21, 0x4d, 0x38, 0xb4, 0x0f, 0x55, 0xcb, //0x0000d4c8 .quad -3795109844276665900 - 0x2b, 0x9b, 0x54, 0x7f, 0xa0, 0x9d, 0x01, 0xf6, //0x0000d4d0 .quad -720121152745989333 - 0x49, 0x6a, 0x60, 0x46, 0xa1, 0x53, 0x2a, 0x7e, //0x0000d4d8 .quad 9091170749936331337 - 0xfb, 0xe0, 0x94, 0x4f, 0x84, 0x02, 0xc1, 0x99, //0x0000d4e0 .quad -7367604748107325189 - 0x6e, 0x42, 0xfc, 0xcb, 0x44, 0x74, 0xda, 0x2e, //0x0000d4e8 .quad 3376138709496513134 - 0x39, 0x19, 0x7a, 0x63, 0x25, 0x43, 0x31, 0xc0, //0x0000d4f0 .quad -4597819916706768583 - 0x09, 0x53, 0xfb, 0xfe, 0x55, 0x11, 0x91, 0xfa, //0x0000d4f8 .quad -391512631556746487 - 0x88, 0x9f, 0x58, 0xbc, 0xee, 0x93, 0x3d, 0xf0, //0x0000d500 .quad -1135588877456072824 - 0xcb, 0x27, 0xba, 0x7e, 0xab, 0x55, 0x35, 0x79, //0x0000d508 .quad 8733981247408842699 - 0xb5, 0x63, 0xb7, 0x35, 0x75, 0x7c, 0x26, 0x96, //0x0000d510 .quad -7627272076051127371 - 0xdf, 0x58, 0x34, 0x2f, 0x8b, 0x55, 0xc1, 0x4b, //0x0000d518 .quad 5458738279630526687 - 0xa2, 0x3c, 0x25, 0x83, 0x92, 0x1b, 0xb0, 0xbb, //0x0000d520 .quad -4922404076636521310 - 0x17, 0x6f, 0x01, 0xfb, 0xed, 0xaa, 0xb1, 0x9e, //0x0000d528 .quad -7011635205744005353 - 0xcb, 0x8b, 0xee, 0x23, 0x77, 0x22, 0x9c, 0xea, //0x0000d530 .quad -1541319077368263733 - 0xdd, 0xca, 0xc1, 0x79, 0xa9, 0x15, 0x5e, 0x46, //0x0000d538 .quad 5070514048102157021 - 0x5f, 0x17, 0x75, 0x76, 0x8a, 0x95, 0xa1, 0x92, //0x0000d540 .quad -7880853450996246689 - 0xca, 0x1e, 0x19, 0xec, 0x89, 0xcd, 0xfa, 0x0b, //0x0000d548 .quad 863228270850154186 - 0x36, 0x5d, 0x12, 0x14, 0xed, 0xfa, 0x49, 0xb7, //0x0000d550 .quad -5239380795317920458 - 0x7c, 0x66, 0x1f, 0x67, 0xec, 0x80, 0xf9, 0xce, //0x0000d558 .quad -3532650679864695172 - 0x84, 0xf4, 0x16, 0x59, 0xa8, 0x79, 0x1c, 0xe5, //0x0000d560 .quad -1937539975720012668 - 0x1b, 0x40, 0xe7, 0x80, 0x27, 0xe1, 0xb7, 0x82, //0x0000d568 .quad -9027499368258256869 - 0xd2, 0x58, 0xae, 0x37, 0x09, 0xcc, 0x31, 0x8f, //0x0000d570 .quad -8128491512466089774 - 0x11, 0x88, 0x90, 0xb0, 0xb8, 0xec, 0xb2, 0xd1, //0x0000d578 .quad -3336344095947716591 - 0x07, 0xef, 0x99, 0x85, 0x0b, 0x3f, 0xfe, 0xb2, //0x0000d580 .quad -5548928372155224313 - 0x16, 0xaa, 0xb4, 0xdc, 0xe6, 0xa7, 0x1f, 0x86, //0x0000d588 .quad -8782116138362033642 - 0xc9, 0x6a, 0x00, 0x67, 0xce, 0xce, 0xbd, 0xdf, //0x0000d590 .quad -2324474446766642487 - 0x9b, 0xd4, 0xe1, 0x93, 0xe0, 0x91, 0xa7, 0x67, //0x0000d598 .quad 7469098900757009563 - 0xbd, 0x42, 0x60, 0x00, 0x41, 0xa1, 0xd6, 0x8b, //0x0000d5a0 .quad -8370325556870233411 - 0xe1, 0x24, 0x6d, 0x5c, 0x2c, 0xbb, 0xc8, 0xe0, //0x0000d5a8 .quad -2249342214667950879 - 0x6d, 0x53, 0x78, 0x40, 0x91, 0x49, 0xcc, 0xae, //0x0000d5b0 .quad -5851220927660403859 - 0x19, 0x6e, 0x88, 0x73, 0xf7, 0xe9, 0xfa, 0x58, //0x0000d5b8 .quad 6411694268519837209 - 0x48, 0x68, 0x96, 0x90, 0xf5, 0x5b, 0x7f, 0xda, //0x0000d5c0 .quad -2702340141148116920 - 0x9f, 0x89, 0x6a, 0x50, 0x75, 0xa4, 0x39, 0xaf, //0x0000d5c8 .quad -5820440219632367201 - 0x2d, 0x01, 0x5e, 0x7a, 0x79, 0x99, 0x8f, 0x88, //0x0000d5d0 .quad -8606491615858654931 - 0x04, 0x96, 0x42, 0x52, 0xc9, 0x06, 0x84, 0x6d, //0x0000d5d8 .quad 7891439908798240260 - 0x78, 0x81, 0xf5, 0xd8, 0xd7, 0x7f, 0xb3, 0xaa, //0x0000d5e0 .quad -6146428501395930760 - 0x84, 0x3b, 0xd3, 0xa6, 0x7b, 0x08, 0xe5, 0xc8, //0x0000d5e8 .quad -3970758169284363388 - 0xd6, 0xe1, 0x32, 0xcf, 0xcd, 0x5f, 0x60, 0xd5, //0x0000d5f0 .quad -3071349608317525546 - 0x65, 0x0a, 0x88, 0x90, 0x9a, 0x4a, 0x1e, 0xfb, //0x0000d5f8 .quad -351761693178066331 - 0x26, 0xcd, 0x7f, 0xa1, 0xe0, 0x3b, 0x5c, 0x85, //0x0000d600 .quad -8837122532839535322 - 0x80, 0x06, 0x55, 0x9a, 0xa0, 0xee, 0xf2, 0x5c, //0x0000d608 .quad 6697677969404790400 - 0x6f, 0xc0, 0xdf, 0xc9, 0xd8, 0x4a, 0xb3, 0xa6, //0x0000d610 .quad -6434717147622031249 - 0x1f, 0x48, 0xea, 0xc0, 0x48, 0xaa, 0x2f, 0xf4, //0x0000d618 .quad -851274575098787809 - 0x8b, 0xb0, 0x57, 0xfc, 0x8e, 0x1d, 0x60, 0xd0, //0x0000d620 .quad -3431710416100151157 - 0x27, 0xda, 0x24, 0xf1, 0xda, 0x94, 0x3b, 0xf1, //0x0000d628 .quad -1064093218873484761 - 0x57, 0xce, 0xb6, 0x5d, 0x79, 0x12, 0x3c, 0x82, //0x0000d630 .quad -9062348037703676329 - 0x59, 0x08, 0xb7, 0xd6, 0x08, 0x3d, 0xc5, 0x76, //0x0000d638 .quad 8558313775058847833 - 0xed, 0x81, 0x24, 0xb5, 0x17, 0x17, 0xcb, 0xa2, //0x0000d640 .quad -6716249028702207507 - 0x6f, 0xca, 0x64, 0x0c, 0x4b, 0x8c, 0x76, 0x54, //0x0000d648 .quad 6086206200396171887 - 0x68, 0xa2, 0x6d, 0xa2, 0xdd, 0xdc, 0x7d, 0xcb, //0x0000d650 .quad -3783625267450371480 - 0x0a, 0xfd, 0x7d, 0xcf, 0x5d, 0x2f, 0x94, 0xa9, //0x0000d658 .quad -6227300304786948854 - 0x02, 0x0b, 0x09, 0x0b, 0x15, 0x54, 0x5d, 0xfe, //0x0000d660 .quad -117845565885576446 - 0x4d, 0x7c, 0x5d, 0x43, 0x35, 0x3b, 0xf9, 0xd3, //0x0000d668 .quad -3172439362556298163 - 0xe1, 0xa6, 0xe5, 0x26, 0x8d, 0x54, 0xfa, 0x9e, //0x0000d670 .quad -6991182506319567135 - 0xb0, 0x6d, 0x1a, 0x4a, 0x01, 0xc5, 0x7b, 0xc4, //0x0000d678 .quad -4288617610811380304 - 0x9a, 0x10, 0x9f, 0x70, 0xb0, 0xe9, 0xb8, 0xc6, //0x0000d680 .quad -4127292114472071014 - 0x1c, 0x09, 0xa1, 0x9c, 0x41, 0xb6, 0x9a, 0x35, //0x0000d688 .quad 3862600023340550428 - 0xc0, 0xd4, 0xc6, 0x8c, 0x1c, 0x24, 0x67, 0xf8, //0x0000d690 .quad -547429124662700864 - 0x63, 0x4b, 0xc9, 0x03, 0xd2, 0x63, 0x01, 0xc3, //0x0000d698 .quad -4395122007679087773 - 0xf8, 0x44, 0xfc, 0xd7, 0x91, 0x76, 0x40, 0x9b, //0x0000d6a0 .quad -7259672230555269896 - 0x1e, 0xcf, 0x5d, 0x42, 0x63, 0xde, 0xe0, 0x79, //0x0000d6a8 .quad 8782263791269039902 - 0x36, 0x56, 0xfb, 0x4d, 0x36, 0x94, 0x10, 0xc2, //0x0000d6b0 .quad -4462904269766699466 - 0xe5, 0x42, 0xf5, 0x12, 0xfc, 0x15, 0x59, 0x98, //0x0000d6b8 .quad -7468914334623251739 - 0xc4, 0x2b, 0x7a, 0xe1, 0x43, 0xb9, 0x94, 0xf2, //0x0000d6c0 .quad -966944318780986428 - 0x9e, 0x93, 0xb2, 0x17, 0x7b, 0x5b, 0x6f, 0x3e, //0x0000d6c8 .quad 4498915137003099038 - 0x5a, 0x5b, 0xec, 0x6c, 0xca, 0xf3, 0x9c, 0x97, //0x0000d6d0 .quad -7521869226879198374 - 0x43, 0x9c, 0xcf, 0xee, 0x2c, 0x99, 0x05, 0xa7, //0x0000d6d8 .quad -6411550076227838909 - 0x31, 0x72, 0x27, 0x08, 0xbd, 0x30, 0x84, 0xbd, //0x0000d6e0 .quad -4790650515171610063 - 0x54, 0x83, 0x83, 0x2a, 0x78, 0xff, 0xc6, 0x50, //0x0000d6e8 .quad 5820620459997365076 - 0xbd, 0x4e, 0x31, 0x4a, 0xec, 0x3c, 0xe5, 0xec, //0x0000d6f0 .quad -1376627125537124675 - 0x29, 0x64, 0x24, 0x35, 0x56, 0xbf, 0xf8, 0xa4, //0x0000d6f8 .quad -6559282480285457367 - 0x36, 0xd1, 0x5e, 0xae, 0x13, 0x46, 0x0f, 0x94, //0x0000d700 .quad -7777920981101784778 - 0x9a, 0xbe, 0x36, 0xe1, 0x95, 0x77, 0x1b, 0x87, //0x0000d708 .quad -8711237568605798758 - 0x84, 0x85, 0xf6, 0x99, 0x98, 0x17, 0x13, 0xb9, //0x0000d710 .quad -5110715207949843068 - 0x40, 0x6e, 0x84, 0x59, 0x7b, 0x55, 0xe2, 0x28, //0x0000d718 .quad 2946011094524915264 - 0xe5, 0x26, 0x74, 0xc0, 0x7e, 0xdd, 0x57, 0xe7, //0x0000d720 .quad -1776707991509915931 - 0xd0, 0x89, 0xe5, 0x2f, 0xda, 0xea, 0x1a, 0x33, //0x0000d728 .quad 3682513868156144080 - 0x4f, 0x98, 0x48, 0x38, 0x6f, 0xea, 0x96, 0x90, //0x0000d730 .quad -8027971522334779313 - 0x22, 0x76, 0xef, 0x5d, 0xc8, 0xd2, 0xf0, 0x3f, //0x0000d738 .quad 4607414176811284002 - 0x63, 0xbe, 0x5a, 0x06, 0x0b, 0xa5, 0xbc, 0xb4, //0x0000d740 .quad -5423278384491086237 - 0xaa, 0x53, 0x6b, 0x75, 0x7a, 0x07, 0xed, 0x0f, //0x0000d748 .quad 1147581702586717098 - 0xfb, 0x6d, 0xf1, 0xc7, 0x4d, 0xce, 0xeb, 0xe1, //0x0000d750 .quad -2167411962186469893 - 0x95, 0x28, 0xc6, 0x12, 0x59, 0x49, 0xe8, 0xd3, //0x0000d758 .quad -3177208890193991531 - 0xbd, 0xe4, 0xf6, 0x9c, 0xf0, 0x60, 0x33, 0x8d, //0x0000d760 .quad -8272161504007625539 - 0x5d, 0xd9, 0xbb, 0xab, 0xd7, 0x2d, 0x71, 0x64, //0x0000d768 .quad 7237616480483531101 - 0xec, 0x9d, 0x34, 0xc4, 0x2c, 0x39, 0x80, 0xb0, //0x0000d770 .quad -5728515861582144020 - 0xb4, 0xcf, 0xaa, 0x96, 0x4d, 0x79, 0x8d, 0xbd, //0x0000d778 .quad -4788037454677749836 - 0x67, 0xc5, 0x41, 0xf5, 0x77, 0x47, 0xa0, 0xdc, //0x0000d780 .quad -2548958808550292121 - 0xa1, 0x83, 0x55, 0xfc, 0xa0, 0xd7, 0xf0, 0xec, //0x0000d788 .quad -1373360799919799391 - 0x60, 0x1b, 0x49, 0xf9, 0xaa, 0x2c, 0xe4, 0x89, //0x0000d790 .quad -8510628282985014432 - 0x45, 0x72, 0xb5, 0x9d, 0xc4, 0x86, 0x16, 0xf4, //0x0000d798 .quad -858350499949874619 - 0x39, 0x62, 0x9b, 0xb7, 0xd5, 0x37, 0x5d, 0xac, //0x0000d7a0 .quad -6026599335303880135 - 0xd6, 0xce, 0x22, 0xc5, 0x75, 0x28, 0x1c, 0x31, //0x0000d7a8 .quad 3538747893490044630 - 0xc7, 0x3a, 0x82, 0x25, 0xcb, 0x85, 0x74, 0xd7, //0x0000d7b0 .quad -2921563150702462265 - 0x8c, 0x82, 0x6b, 0x36, 0x93, 0x32, 0x63, 0x7d, //0x0000d7b8 .quad 9035120885289943692 - 0xbc, 0x64, 0x71, 0xf7, 0x9e, 0xd3, 0xa8, 0x86, //0x0000d7c0 .quad -8743505996830120772 - 0x98, 0x31, 0x03, 0x02, 0x9c, 0xff, 0x5d, 0xae, //0x0000d7c8 .quad -5882264492762254952 - 0xeb, 0xbd, 0x4d, 0xb5, 0x86, 0x08, 0x53, 0xa8, //0x0000d7d0 .quad -6317696477610263061 - 0xfd, 0xfd, 0x83, 0x02, 0x83, 0x7f, 0xf5, 0xd9, //0x0000d7d8 .quad -2741144597525430787 - 0x66, 0x2d, 0xa1, 0x62, 0xa8, 0xca, 0x67, 0xd2, //0x0000d7e0 .quad -3285434578585440922 - 0x7c, 0xfd, 0x24, 0xc3, 0x63, 0xdf, 0x72, 0xd0, //0x0000d7e8 .quad -3426430746906788484 - 0x60, 0xbc, 0xa4, 0x3d, 0xa9, 0xde, 0x80, 0x83, //0x0000d7f0 .quad -8970925639256982432 - 0x6e, 0x1e, 0xf7, 0x59, 0x9e, 0xcb, 0x47, 0x42, //0x0000d7f8 .quad 4776009810824339054 - 0x78, 0xeb, 0x0d, 0x8d, 0x53, 0x16, 0x61, 0xa4, //0x0000d800 .quad -6601971030643840136 - 0x09, 0xe6, 0x74, 0xf0, 0x85, 0xbe, 0xd9, 0x52, //0x0000d808 .quad 5970012263530423817 - 0x56, 0x66, 0x51, 0x70, 0xe8, 0x5b, 0x79, 0xcd, //0x0000d810 .quad -3640777769877412266 - 0x8c, 0x1f, 0x92, 0x6c, 0x27, 0x2e, 0x90, 0x67, //0x0000d818 .quad 7462515329413029772 - 0xf6, 0xdf, 0x32, 0x46, 0x71, 0xd9, 0x6b, 0x80, //0x0000d820 .quad -9193015133814464522 - 0xb7, 0x53, 0xdb, 0xa3, 0xd8, 0x1c, 0xba, 0x00, //0x0000d828 .quad 52386062455755703 - 0xf3, 0x97, 0xbf, 0x97, 0xcd, 0xcf, 0x86, 0xa0, //0x0000d830 .quad -6879582898840692749 - 0xa5, 0x28, 0xd2, 0xcc, 0x0e, 0xa4, 0xe8, 0x80, //0x0000d838 .quad -9157889458785081179 - 0xf0, 0x7d, 0xaf, 0xfd, 0xc0, 0x83, 0xa8, 0xc8, //0x0000d840 .quad -3987792605123478032 - 0xce, 0xb2, 0x06, 0x80, 0x12, 0xcd, 0x22, 0x61, //0x0000d848 .quad 6999382250228200142 - 0x6c, 0x5d, 0x1b, 0x3d, 0xb1, 0xa4, 0xd2, 0xfa, //0x0000d850 .quad -373054737976959636 - 0x82, 0x5f, 0x08, 0x20, 0x57, 0x80, 0x6b, 0x79, //0x0000d858 .quad 8749227812785250178 - 0x63, 0x1a, 0x31, 0xc6, 0xee, 0xa6, 0xc3, 0x9c, //0x0000d860 .quad -7150688238876681629 - 0xb1, 0x3b, 0x05, 0x74, 0x36, 0x30, 0xe3, 0xcb, //0x0000d868 .quad -3755104653863994447 - 0xfc, 0x60, 0xbd, 0x77, 0xaa, 0x90, 0xf4, 0xc3, //0x0000d870 .quad -4326674280168464132 - 0x9d, 0x8a, 0x06, 0x11, 0x44, 0xfc, 0xdb, 0xbe, //0x0000d878 .quad -4693880817329993059 - 0x3b, 0xb9, 0xac, 0x15, 0xd5, 0xb4, 0xf1, 0xf4, //0x0000d880 .quad -796656831783192261 - 0x45, 0x2d, 0x48, 0x15, 0x55, 0xfb, 0x92, 0xee, //0x0000d888 .quad -1255665003235103419 - 0xc5, 0xf3, 0x8b, 0x2d, 0x05, 0x11, 0x17, 0x99, //0x0000d890 .quad -7415439547505577019 - 0x4b, 0x1c, 0x4d, 0x2d, 0x15, 0xdd, 0x1b, 0x75, //0x0000d898 .quad 8438581409832836171 - 0xb6, 0xf0, 0xee, 0x78, 0x46, 0xd5, 0x5c, 0xbf, //0x0000d8a0 .quad -4657613415954583370 - 0x5e, 0x63, 0xa0, 0x78, 0x5a, 0xd4, 0x62, 0xd2, //0x0000d8a8 .quad -3286831292991118498 - 0xe4, 0xac, 0x2a, 0x17, 0x98, 0x0a, 0x34, 0xef, //0x0000d8b0 .quad -1210330751515841308 - 0x35, 0x7c, 0xc8, 0x16, 0x71, 0x89, 0xfb, 0x86, //0x0000d8b8 .quad -8720225134666286027 - 0x0e, 0xac, 0x7a, 0x0e, 0x9f, 0x86, 0x80, 0x95, //0x0000d8c0 .quad -7673985747338482674 - 0xa1, 0x4d, 0x3d, 0xae, 0xe6, 0x35, 0x5d, 0xd4, //0x0000d8c8 .quad -3144297699952734815 - 0x12, 0x57, 0x19, 0xd2, 0x46, 0xa8, 0xe0, 0xba, //0x0000d8d0 .quad -4980796165745715438 - 0x0a, 0xa1, 0xcc, 0x59, 0x60, 0x83, 0x74, 0x89, //0x0000d8d8 .quad -8542058143368306422 - 0xd7, 0xac, 0x9f, 0x86, 0x58, 0xd2, 0x98, 0xe9, //0x0000d8e0 .quad -1614309188754756393 - 0x4c, 0xc9, 0x3f, 0x70, 0x38, 0xa4, 0xd1, 0x2b, //0x0000d8e8 .quad 3157485376071780684 - 0x06, 0xcc, 0x23, 0x54, 0x77, 0x83, 0xff, 0x91, //0x0000d8f0 .quad -7926472270612804602 - 0xd0, 0xdd, 0x27, 0x46, 0xa3, 0x06, 0x63, 0x7b, //0x0000d8f8 .quad 8890957387685944784 - 0x08, 0xbf, 0x2c, 0x29, 0x55, 0x64, 0x7f, 0xb6, //0x0000d900 .quad -5296404319838617848 - 0x43, 0xd5, 0xb1, 0x17, 0x4c, 0xc8, 0x3b, 0x1a, //0x0000d908 .quad 1890324697752655171 - 0xca, 0xee, 0x77, 0x73, 0x6a, 0x3d, 0x1f, 0xe4, //0x0000d910 .quad -2008819381370884406 - 0x94, 0x4a, 0x9e, 0x1d, 0x5f, 0xba, 0xca, 0x20, //0x0000d918 .quad 2362905872190818964 - 0x3e, 0xf5, 0x2a, 0x88, 0x62, 0x86, 0x93, 0x8e, //0x0000d920 .quad -8173041140997884610 - 0x9d, 0xee, 0x82, 0x72, 0x7b, 0xb4, 0x7e, 0x54, //0x0000d928 .quad 6088502188546649757 - 0x8d, 0xb2, 0x35, 0x2a, 0xfb, 0x67, 0x38, 0xb2, //0x0000d930 .quad -5604615407819967859 - 0x44, 0xaa, 0x23, 0x4f, 0x9a, 0x61, 0x9e, 0xe9, //0x0000d938 .quad -1612744301171463612 - 0x31, 0x1f, 0xc3, 0xf4, 0xf9, 0x81, 0xc6, 0xde, //0x0000d940 .quad -2394083241347571919 - 0xd5, 0x94, 0xec, 0xe2, 0x00, 0xfa, 0x05, 0x64, //0x0000d948 .quad 7207441660390446293 - 0x7e, 0xf3, 0xf9, 0x38, 0x3c, 0x11, 0x3c, 0x8b, //0x0000d950 .quad -8413831053483314306 - 0x05, 0xdd, 0xd3, 0x8d, 0x40, 0xbc, 0x83, 0xde, //0x0000d958 .quad -2412877989897052923 - 0x5e, 0x70, 0x38, 0x47, 0x8b, 0x15, 0x0b, 0xae, //0x0000d960 .quad -5905602798426754978 - 0x46, 0xd4, 0x48, 0xb1, 0x50, 0xab, 0x24, 0x96, //0x0000d968 .quad -7627783505798704058 - 0x76, 0x8c, 0x06, 0x19, 0xee, 0xda, 0x8d, 0xd9, //0x0000d970 .quad -2770317479606055818 - 0x58, 0x09, 0x9b, 0xdd, 0x24, 0xd6, 0xad, 0x3b, //0x0000d978 .quad 4300328673033783640 - 0xc9, 0x17, 0xa4, 0xcf, 0xd4, 0xa8, 0xf8, 0x87, //0x0000d980 .quad -8648977452394866743 - 0xd7, 0xe5, 0x80, 0x0a, 0xd7, 0xa5, 0x4c, 0xe5, //0x0000d988 .quad -1923980597781273129 - 0xbc, 0x1d, 0x8d, 0x03, 0x0a, 0xd3, 0xf6, 0xa9, //0x0000d990 .quad -6199535797066195524 - 0x4d, 0x1f, 0x21, 0xcd, 0x4c, 0xcf, 0x9f, 0x5e, //0x0000d998 .quad 6818396289628184397 - 0x2b, 0x65, 0x70, 0x84, 0xcc, 0x87, 0x74, 0xd4, //0x0000d9a0 .quad -3137733727905356501 - 0x20, 0x67, 0x69, 0x00, 0x20, 0xc3, 0x47, 0x76, //0x0000d9a8 .quad 8522995362035230496 - 0x3b, 0x3f, 0xc6, 0xd2, 0xdf, 0xd4, 0xc8, 0x84, //0x0000d9b0 .quad -8878612607581929669 - 0x74, 0xe0, 0x41, 0x00, 0xf4, 0xd9, 0xec, 0x29, //0x0000d9b8 .quad 3021029092058325108 - 0x09, 0xcf, 0x77, 0xc7, 0x17, 0x0a, 0xfb, 0xa5, //0x0000d9c0 .quad -6486579741050024183 - 0x91, 0x58, 0x52, 0x00, 0x71, 0x10, 0x68, 0xf4, //0x0000d9c8 .quad -835399653354481519 - 0xcc, 0xc2, 0x55, 0xb9, 0x9d, 0xcc, 0x79, 0xcf, //0x0000d9d0 .quad -3496538657885142324 - 0xb5, 0xee, 0x66, 0x40, 0x8d, 0x14, 0x82, 0x71, //0x0000d9d8 .quad 8179122470161673909 - 0xbf, 0x99, 0xd5, 0x93, 0xe2, 0x1f, 0xac, 0x81, //0x0000d9e0 .quad -9102865688819295809 - 0x31, 0x55, 0x40, 0x48, 0xd8, 0x4c, 0xf1, 0xc6, //0x0000d9e8 .quad -4111420493003729615 - 0x2f, 0x00, 0xcb, 0x38, 0xdb, 0x27, 0x17, 0xa2, //0x0000d9f0 .quad -6766896092596731857 - 0x7d, 0x6a, 0x50, 0x5a, 0x0e, 0xa0, 0xad, 0xb8, //0x0000d9f8 .quad -5139275616254662019 - 0x3b, 0xc0, 0xfd, 0x06, 0xd2, 0xf1, 0x9c, 0xca, //0x0000da00 .quad -3846934097318526917 - 0x1d, 0x85, 0xe4, 0xf0, 0x11, 0x08, 0xd9, 0xa6, //0x0000da08 .quad -6424094520318327523 - 0x4a, 0x30, 0xbd, 0x88, 0x46, 0x2e, 0x44, 0xfd, //0x0000da10 .quad -196981603220770742 - 0x64, 0xa6, 0x1d, 0x6d, 0x16, 0x4a, 0x8f, 0x90, //0x0000da18 .quad -8030118150397909404 - 0x2e, 0x3e, 0x76, 0x15, 0xec, 0x9c, 0x4a, 0x9e, //0x0000da20 .quad -7040642529654063570 - 0xff, 0x87, 0x32, 0x04, 0x4e, 0x8e, 0x59, 0x9a, //0x0000da28 .quad -7324666853212387329 - 0xba, 0xcd, 0xd3, 0x1a, 0x27, 0x44, 0xdd, 0xc5, //0x0000da30 .quad -4189117143640191558 - 0xfe, 0x29, 0x3f, 0x85, 0xe1, 0xf1, 0xef, 0x40, //0x0000da38 .quad 4679224488766679550 - 0x28, 0xc1, 0x88, 0xe1, 0x30, 0x95, 0x54, 0xf7, //0x0000da40 .quad -624710411122851544 - 0x7d, 0xf4, 0x8e, 0xe6, 0x59, 0xee, 0x2b, 0xd1, //0x0000da48 .quad -3374341425896426371 - 0xb9, 0x78, 0xf5, 0x8c, 0x3e, 0xdd, 0x94, 0x9a, //0x0000da50 .quad -7307973034592864071 - 0xcf, 0x58, 0x19, 0x30, 0xf8, 0x74, 0xbb, 0x82, //0x0000da58 .quad -9026492418826348337 - 0xe7, 0xd6, 0x32, 0x30, 0x8e, 0x14, 0x3a, 0xc1, //0x0000da60 .quad -4523280274813692185 - 0x02, 0xaf, 0x1f, 0x3c, 0x36, 0x52, 0x6a, 0xe3, //0x0000da68 .quad -2059743486678159614 - 0xa1, 0x8c, 0x3f, 0xbc, 0xb1, 0x99, 0x88, 0xf1, //0x0000da70 .quad -1042414325089727327 - 0xc2, 0x9a, 0x27, 0xcb, 0xc3, 0xe6, 0x44, 0xdc, //0x0000da78 .quad -2574679358347699518 - 0xe5, 0xb7, 0xa7, 0x15, 0x0f, 0x60, 0xf5, 0x96, //0x0000da80 .quad -7569037980822161435 - 0xba, 0xc0, 0xf8, 0x5e, 0x3a, 0x10, 0xab, 0x29, //0x0000da88 .quad 3002511419460075706 - 0xde, 0xa5, 0x11, 0xdb, 0x12, 0xb8, 0xb2, 0xbc, //0x0000da90 .quad -4849611457600313890 - 0xe8, 0xf0, 0xb6, 0xf6, 0x48, 0xd4, 0x15, 0x74, //0x0000da98 .quad 8364825292752482536 - 0x56, 0x0f, 0xd6, 0x91, 0x17, 0x66, 0xdf, 0xeb, //0x0000daa0 .quad -1450328303573004458 - 0x22, 0xad, 0x64, 0x34, 0x5b, 0x49, 0x1b, 0x11, //0x0000daa8 .quad 1232659579085827362 - 0x95, 0xc9, 0x25, 0xbb, 0xce, 0x9f, 0x6b, 0x93, //0x0000dab0 .quad -7823984217374209643 - 0x35, 0xec, 0xbe, 0x00, 0xd9, 0x0d, 0xb1, 0xca, //0x0000dab8 .quad -3841273781498745803 - 0xfb, 0x3b, 0xef, 0x69, 0xc2, 0x87, 0x46, 0xb8, //0x0000dac0 .quad -5168294253290374149 - 0x43, 0xa7, 0xee, 0x40, 0x4f, 0x51, 0x5d, 0x3d, //0x0000dac8 .quad 4421779809981343555 - 0xfa, 0x0a, 0x6b, 0x04, 0xb3, 0x29, 0x58, 0xe6, //0x0000dad0 .quad -1848681798185579782 - 0x13, 0x51, 0x2a, 0x11, 0xa3, 0xa5, 0xb4, 0x0c, //0x0000dad8 .quad 915538744049291539 - 0xdc, 0xe6, 0xc2, 0xe2, 0x0f, 0x1a, 0xf7, 0x8f, //0x0000dae0 .quad -8072955151507069220 - 0xac, 0x72, 0xba, 0xea, 0x85, 0xe7, 0xf0, 0x47, //0x0000dae8 .quad 5183897733458195116 - 0x93, 0xa0, 0x73, 0xdb, 0x93, 0xe0, 0xf4, 0xb3, //0x0000daf0 .quad -5479507920956448621 - 0x57, 0x0f, 0x69, 0x65, 0x67, 0x21, 0xed, 0x59, //0x0000daf8 .quad 6479872166822743895 - 0xb8, 0x88, 0x50, 0xd2, 0xb8, 0x18, 0xf2, 0xe0, //0x0000db00 .quad -2237698882768172872 - 0x2d, 0x53, 0xc3, 0x3e, 0xc1, 0x69, 0x68, 0x30, //0x0000db08 .quad 3488154190101041965 - 0x73, 0x55, 0x72, 0x83, 0x73, 0x4f, 0x97, 0x8c, //0x0000db10 .quad -8316090829371189901 - 0xfc, 0x13, 0x3a, 0xc7, 0x18, 0x42, 0x41, 0x1e, //0x0000db18 .quad 2180096368813151228 - 0xcf, 0xea, 0x4e, 0x64, 0x50, 0x23, 0xbd, 0xaf, //0x0000db20 .quad -5783427518286599473 - 0xfb, 0x98, 0x08, 0xf9, 0x9e, 0x92, 0xd1, 0xe5, //0x0000db28 .quad -1886565557410948869 - 0x83, 0xa5, 0x62, 0x7d, 0x24, 0x6c, 0xac, 0xdb, //0x0000db30 .quad -2617598379430861437 - 0x3a, 0xbf, 0x4a, 0xb7, 0x46, 0xf7, 0x45, 0xdf, //0x0000db38 .quad -2358206946763686086 - 0x72, 0xa7, 0x5d, 0xce, 0x96, 0xc3, 0x4b, 0x89, //0x0000db40 .quad -8553528014785370254 - 0x84, 0xb7, 0x8e, 0x32, 0x8c, 0xba, 0x8b, 0x6b, //0x0000db48 .quad 7749492695127472004 - 0x4f, 0x11, 0xf5, 0x81, 0x7c, 0xb4, 0x9e, 0xab, //0x0000db50 .quad -6080224000054324913 - 0x65, 0x65, 0x32, 0x3f, 0x2f, 0xa9, 0x6e, 0x06, //0x0000db58 .quad 463493832054564197 - 0xa2, 0x55, 0x72, 0xa2, 0x9b, 0x61, 0x86, 0xd6, //0x0000db60 .quad -2988593981640518238 - 0xbe, 0xfe, 0xfe, 0x0e, 0x7b, 0x53, 0x0a, 0xc8, //0x0000db68 .quad -4032318728359182658 - 0x85, 0x75, 0x87, 0x45, 0x01, 0xfd, 0x13, 0x86, //0x0000db70 .quad -8785400266166405755 - 0x37, 0x5f, 0x5f, 0xe9, 0x2c, 0x74, 0x06, 0xbd, //0x0000db78 .quad -4826042214438183113 - 0xe7, 0x52, 0xe9, 0x96, 0x41, 0xfc, 0x98, 0xa7, //0x0000db80 .quad -6370064314280619289 - 0x05, 0x37, 0xb7, 0x23, 0x38, 0x11, 0x48, 0x2c, //0x0000db88 .quad 3190819268807046917 - 0xa0, 0xa7, 0xa3, 0xfc, 0x51, 0x3b, 0x7f, 0xd1, //0x0000db90 .quad -3350894374423386208 - 0xc6, 0x04, 0xa5, 0x2c, 0x86, 0x15, 0x5a, 0xf7, //0x0000db98 .quad -623161932418579258 - 0xc4, 0x48, 0xe6, 0x3d, 0x13, 0x85, 0xef, 0x82, //0x0000dba0 .quad -9011838011655698236 - 0xfc, 0x22, 0xe7, 0xdb, 0x73, 0x4d, 0x98, 0x9a, //0x0000dba8 .quad -7307005235402693892 - 0xf5, 0xda, 0x5f, 0x0d, 0x58, 0x66, 0xab, 0xa3, //0x0000dbb0 .quad -6653111496142234891 - 0xbb, 0xeb, 0xe0, 0xd2, 0xd0, 0x60, 0x3e, 0xc1, //0x0000dbb8 .quad -4522070525825979461 - 0xb3, 0xd1, 0xb7, 0x10, 0xee, 0x3f, 0x96, 0xcc, //0x0000dbc0 .quad -3704703351750405709 - 0xa9, 0x26, 0x99, 0x07, 0x05, 0xf9, 0x8d, 0x31, //0x0000dbc8 .quad 3570783879572301481 - 0x1f, 0xc6, 0xe5, 0x94, 0xe9, 0xcf, 0xbb, 0xff, //0x0000dbd0 .quad -19193171260619233 - 0x53, 0x70, 0x7f, 0x49, 0x46, 0x77, 0xf1, 0xfd, //0x0000dbd8 .quad -148206168962011053 - 0xd3, 0x9b, 0x0f, 0xfd, 0xf1, 0x61, 0xd5, 0x9f, //0x0000dbe0 .quad -6929524759678968877 - 0x34, 0xa6, 0xef, 0xed, 0x8b, 0xea, 0xb6, 0xfe, //0x0000dbe8 .quad -92628855601256908 - 0xc8, 0x82, 0x53, 0x7c, 0x6e, 0xba, 0xca, 0xc7, //0x0000dbf0 .quad -4050219931171323192 - 0xc1, 0x8f, 0x6b, 0xe9, 0x2e, 0xa5, 0x64, 0xfe, //0x0000dbf8 .quad -115786069501571135 - 0x7b, 0x63, 0x68, 0x1b, 0x0a, 0x69, 0xbd, 0xf9, //0x0000dc00 .quad -451088895536766085 - 0xb1, 0x73, 0xc6, 0xa3, 0x7a, 0xce, 0xfd, 0x3d, //0x0000dc08 .quad 4466953431550423985 - 0x2d, 0x3e, 0x21, 0x51, 0xa6, 0x61, 0x16, 0x9c, //0x0000dc10 .quad -7199459587351560659 - 0x4f, 0x08, 0x5c, 0xa6, 0x0c, 0xa1, 0xbe, 0x06, //0x0000dc18 .quad 486002885505321039 - 0xb8, 0x8d, 0x69, 0xe5, 0x0f, 0xfa, 0x1b, 0xc3, //0x0000dc20 .quad -4387638465762062920 - 0x63, 0x0a, 0xf3, 0xcf, 0x4f, 0x49, 0x6e, 0x48, //0x0000dc28 .quad 5219189625309039203 - 0x26, 0xf1, 0xc3, 0xde, 0x93, 0xf8, 0xe2, 0xf3, //0x0000dc30 .quad -872862063775190746 - 0xfb, 0xcc, 0xef, 0xc3, 0xa3, 0xdb, 0x89, 0x5a, //0x0000dc38 .quad 6523987031636299003 - 0xb7, 0x76, 0x3a, 0x6b, 0x5c, 0xdb, 0x6d, 0x98, //0x0000dc40 .quad -7463067817500576073 - 0x1d, 0xe0, 0x75, 0x5a, 0x46, 0x29, 0x96, 0xf8, //0x0000dc48 .quad -534194123654701027 - 0x65, 0x14, 0x09, 0x86, 0x33, 0x52, 0x89, 0xbe, //0x0000dc50 .quad -4717148753448332187 - 0x24, 0x58, 0x13, 0xf1, 0x97, 0xb3, 0xbb, 0xf6, //0x0000dc58 .quad -667742654568376284 - 0x7f, 0x59, 0x8b, 0x67, 0xc0, 0xa6, 0x2b, 0xee, //0x0000dc60 .quad -1284749923383027329 - 0x2d, 0x2e, 0x58, 0xed, 0x7d, 0xa0, 0x6a, 0x74, //0x0000dc68 .quad 8388693718644305453 - 0xef, 0x17, 0xb7, 0x40, 0x38, 0x48, 0xdb, 0x94, //0x0000dc70 .quad -7720497729755473937 - 0xdd, 0x1c, 0x57, 0xb4, 0x4e, 0xa4, 0xc2, 0xa8, //0x0000dc78 .quad -6286281471915778851 - 0xeb, 0xdd, 0xe4, 0x50, 0x46, 0x1a, 0x12, 0xba, //0x0000dc80 .quad -5038936143766954517 - 0x14, 0xe4, 0x6c, 0x61, 0x62, 0x4d, 0xf3, 0x92, //0x0000dc88 .quad -7857851839894723564 - 0x66, 0x15, 0x1e, 0xe5, 0xd7, 0xa0, 0x96, 0xe8, //0x0000dc90 .quad -1686984161281305242 - 0x18, 0x1d, 0xc8, 0xf9, 0xba, 0x20, 0xb0, 0x77, //0x0000dc98 .quad 8624429273841147160 - 0x60, 0xcd, 0x32, 0xef, 0x86, 0x24, 0x5e, 0x91, //0x0000dca0 .quad -7971894128441897632 - 0x2f, 0x12, 0x1d, 0xdc, 0x74, 0x14, 0xce, 0x0a, //0x0000dca8 .quad 778582277723329071 - 0xb8, 0x80, 0xff, 0xaa, 0xa8, 0xad, 0xb5, 0xb5, //0x0000dcb0 .quad -5353181642124984136 - 0xbb, 0x56, 0x24, 0x13, 0x92, 0x99, 0x81, 0x0d, //0x0000dcb8 .quad 973227847154161339 - 0xe6, 0x60, 0xbf, 0xd5, 0x12, 0x19, 0x23, 0xe3, //0x0000dcc0 .quad -2079791034228842266 - 0x6a, 0x6c, 0xed, 0x97, 0xf6, 0xff, 0xe1, 0x10, //0x0000dcc8 .quad 1216534808942701674 - 0x8f, 0x9c, 0x97, 0xc5, 0xab, 0xef, 0xf5, 0x8d, //0x0000dcd0 .quad -8217398424034108273 - 0xc2, 0x63, 0xf4, 0x1e, 0xfa, 0x3f, 0x8d, 0xca, //0x0000dcd8 .quad -3851351762838199358 - 0xb3, 0x83, 0xfd, 0xb6, 0x96, 0x6b, 0x73, 0xb1, //0x0000dce0 .quad -5660062011615247437 - 0xb3, 0x7c, 0xb1, 0xa6, 0xf8, 0x8f, 0x30, 0xbd, //0x0000dce8 .quad -4814189703547749197 - 0xa0, 0xe4, 0xbc, 0x64, 0x7c, 0x46, 0xd0, 0xdd, //0x0000dcf0 .quad -2463391496091671392 - 0xdf, 0xdb, 0x5d, 0xd0, 0xf6, 0xb3, 0x7c, 0xac, //0x0000dcf8 .quad -6017737129434686497 - 0xe4, 0x0e, 0xf6, 0xbe, 0x0d, 0x2c, 0xa2, 0x8a, //0x0000dd00 .quad -8457148712698376476 - 0x6c, 0xa9, 0x3a, 0x42, 0x7a, 0xf0, 0xcd, 0x6b, //0x0000dd08 .quad 7768129340171790700 - 0x9d, 0x92, 0xb3, 0x2e, 0x11, 0xb7, 0x4a, 0xad, //0x0000dd10 .quad -5959749872445582691 - 0xc7, 0x53, 0xc9, 0xd2, 0x98, 0x6c, 0xc1, 0x86, //0x0000dd18 .quad -8736582398494813241 - 0x44, 0x77, 0x60, 0x7a, 0xd5, 0x64, 0x9d, 0xd8, //0x0000dd20 .quad -2838001322129590460 - 0xb8, 0xa8, 0x7b, 0x07, 0xbf, 0xc7, 0x71, 0xe8, //0x0000dd28 .quad -1697355961263740744 - 0x8b, 0x4a, 0x7c, 0x6c, 0x05, 0x5f, 0x62, 0x87, //0x0000dd30 .quad -8691279853972075893 - 0x73, 0x49, 0xad, 0x64, 0xd7, 0x1c, 0x47, 0x11, //0x0000dd38 .quad 1244995533423855987 - 0x2d, 0x5d, 0x9b, 0xc7, 0xc6, 0xf6, 0x3a, 0xa9, //0x0000dd40 .quad -6252413799037706963 - 0xd0, 0x9b, 0xd8, 0x3d, 0x0d, 0xe4, 0x98, 0xd5, //0x0000dd48 .quad -3055441601647567920 - 0x79, 0x34, 0x82, 0x79, 0x78, 0xb4, 0x89, 0xd3, //0x0000dd50 .quad -3203831230369745799 - 0xc4, 0xc2, 0x4e, 0x8d, 0x10, 0x1d, 0xff, 0x4a, //0x0000dd58 .quad 5404070034795315908 - 0xcb, 0x60, 0xf1, 0x4b, 0xcb, 0x10, 0x36, 0x84, //0x0000dd60 .quad -8919923546622172981 - 0xbb, 0x39, 0x51, 0x58, 0x2a, 0x72, 0xdf, 0xce, //0x0000dd68 .quad -3539985255894009413 - 0xfe, 0xb8, 0xed, 0x1e, 0xfe, 0x94, 0x43, 0xa5, //0x0000dd70 .quad -6538218414850328322 - 0x29, 0x88, 0x65, 0xee, 0xb4, 0x4e, 0x97, 0xc2, //0x0000dd78 .quad -4424981569867511767 - 0x3e, 0x27, 0xa9, 0xa6, 0x3d, 0x7a, 0x94, 0xce, //0x0000dd80 .quad -3561087000135522498 - 0x33, 0xea, 0xfe, 0x29, 0x62, 0x22, 0x3d, 0x73, //0x0000dd88 .quad 8303831092947774003 - 0x87, 0xb8, 0x29, 0x88, 0x66, 0xcc, 0x1c, 0x81, //0x0000dd90 .quad -9143208402725783417 - 0x60, 0x52, 0x3f, 0x5a, 0x7d, 0x35, 0x06, 0x08, //0x0000dd98 .quad 578208414664970848 - 0xa8, 0x26, 0x34, 0x2a, 0x80, 0xff, 0x63, 0xa1, //0x0000dda0 .quad -6817324484979841368 - 0xf8, 0x26, 0xcf, 0xb0, 0xdc, 0xc2, 0x07, 0xca, //0x0000dda8 .quad -3888925500096174344 - 0x52, 0x30, 0xc1, 0x34, 0x60, 0xff, 0xbc, 0xc9, //0x0000ddb0 .quad -3909969587797413806 - 0xb6, 0xf0, 0x02, 0xdd, 0x93, 0xb3, 0x89, 0xfc, //0x0000ddb8 .quad -249470856692830026 - 0x67, 0x7c, 0xf1, 0x41, 0x38, 0x3f, 0x2c, 0xfc, //0x0000ddc0 .quad -275775966319379353 - 0xe3, 0xac, 0x43, 0xd4, 0x78, 0x20, 0xac, 0xbb, //0x0000ddc8 .quad -4923524589293425437 - 0xc0, 0xed, 0x36, 0x29, 0x83, 0xa7, 0x9b, 0x9d, //0x0000ddd0 .quad -7089889006590693952 - 0x0e, 0x4c, 0xaa, 0x84, 0x4b, 0x94, 0x4b, 0xd5, //0x0000ddd8 .quad -3077202868308390898 - 0x31, 0xa9, 0x84, 0xf3, 0x63, 0x91, 0x02, 0xc5, //0x0000dde0 .quad -4250675239810979535 - 0x12, 0xdf, 0xd4, 0x65, 0x5e, 0x79, 0x9e, 0x0a, //0x0000dde8 .quad 765182433041899282 - 0x7d, 0xd3, 0x65, 0xf0, 0xbc, 0x35, 0x43, 0xf6, //0x0000ddf0 .quad -701658031336336515 - 0xd6, 0x16, 0x4a, 0xff, 0xb5, 0x17, 0x46, 0x4d, //0x0000ddf8 .quad 5568164059729762006 - 0x2e, 0xa4, 0x3f, 0x16, 0x96, 0x01, 0xea, 0x99, //0x0000de00 .quad -7356065297226292178 - 0x46, 0x4e, 0x8e, 0xbf, 0xd1, 0xce, 0x4b, 0x50, //0x0000de08 .quad 5785945546544795206 - 0x39, 0x8d, 0xcf, 0x9b, 0xfb, 0x81, 0x64, 0xc0, //0x0000de10 .quad -4583395603105477319 - 0xd7, 0xe1, 0x71, 0x2f, 0x86, 0xc2, 0x5e, 0xe4, //0x0000de18 .quad -1990940103673781801 - 0x88, 0x70, 0xc3, 0x82, 0x7a, 0xa2, 0x7d, 0xf0, //0x0000de20 .quad -1117558485454458744 - 0x4d, 0x5a, 0x4e, 0xbb, 0x27, 0x73, 0x76, 0x5d, //0x0000de28 .quad 6734696907262548557 - 0x55, 0x26, 0xba, 0x91, 0x8c, 0x85, 0x4e, 0x96, //0x0000de30 .quad -7616003081050118571 - 0x70, 0xf8, 0x10, 0xd5, 0xf8, 0x07, 0x6a, 0x3a, //0x0000de38 .quad 4209185567039092848 - 0xea, 0xaf, 0x28, 0xb6, 0xef, 0x26, 0xe2, 0xbb, //0x0000de40 .quad -4908317832885260310 - 0x8c, 0x36, 0x55, 0x0a, 0xf7, 0x89, 0x04, 0x89, //0x0000de48 .quad -8573576096483297652 - 0xe5, 0xdb, 0xb2, 0xa3, 0xab, 0xb0, 0xda, 0xea, //0x0000de50 .quad -1523711272679187483 - 0x2f, 0x84, 0xea, 0xcc, 0x74, 0xac, 0x45, 0x2b, //0x0000de58 .quad 3118087934678041647 - 0x6f, 0xc9, 0x4f, 0x46, 0x6b, 0xae, 0xc8, 0x92, //0x0000de60 .quad -7869848573065574033 - 0x9e, 0x92, 0x12, 0x00, 0xc9, 0x8b, 0x0b, 0x3b, //0x0000de68 .quad 4254647968387469982 - 0xcb, 0xbb, 0xe3, 0x17, 0x06, 0xda, 0x7a, 0xb7, //0x0000de70 .quad -5225624697904579637 - 0x45, 0x37, 0x17, 0x40, 0xbb, 0x6e, 0xce, 0x09, //0x0000de78 .quad 706623942056949573 - 0xbd, 0xaa, 0xdc, 0x9d, 0x87, 0x90, 0x59, 0xe5, //0x0000de80 .quad -1920344853953336643 - 0x16, 0x05, 0x1d, 0x10, 0x6a, 0x0a, 0x42, 0xcc, //0x0000de88 .quad -3728406090856200938 - 0xb6, 0xea, 0xa9, 0xc2, 0x54, 0xfa, 0x57, 0x8f, //0x0000de90 .quad -8117744561361917258 - 0x2e, 0x23, 0x12, 0x4a, 0x82, 0x46, 0xa9, 0x9f, //0x0000de98 .quad -6941939825212513490 - 0x64, 0x65, 0x54, 0xf3, 0xe9, 0xf8, 0x2d, 0xb3, //0x0000dea0 .quad -5535494683275008668 - 0xfa, 0xab, 0x96, 0xdc, 0x22, 0x98, 0x93, 0x47, //0x0000dea8 .quad 5157633273766521850 - 0xbd, 0x7e, 0x29, 0x70, 0x24, 0x77, 0xf9, 0xdf, //0x0000deb0 .quad -2307682335666372931 - 0xf8, 0x56, 0xbc, 0x93, 0x2b, 0x7e, 0x78, 0x59, //0x0000deb8 .quad 6447041592208152312 - 0x36, 0xef, 0x19, 0xc6, 0x76, 0xea, 0xfb, 0x8b, //0x0000dec0 .quad -8359830487432564938 - 0x5b, 0xb6, 0x55, 0x3c, 0xdb, 0x4e, 0xeb, 0x57, //0x0000dec8 .quad 6335244004343789147 - 0x03, 0x6b, 0xa0, 0x77, 0x14, 0xe5, 0xfa, 0xae, //0x0000ded0 .quad -5838102090863318269 - 0xf2, 0x23, 0x6b, 0x0b, 0x92, 0x22, 0xe6, 0xed, //0x0000ded8 .quad -1304317031425039374 - 0xc4, 0x85, 0x88, 0x95, 0x59, 0x9e, 0xb9, 0xda, //0x0000dee0 .quad -2685941595151759932 - 0xee, 0xec, 0x45, 0x8e, 0x36, 0xab, 0x5f, 0xe9, //0x0000dee8 .quad -1630396289281299218 - 0x9b, 0x53, 0x75, 0xfd, 0xf7, 0x02, 0xb4, 0x88, //0x0000def0 .quad -8596242524610931813 - 0x15, 0xb4, 0xeb, 0x18, 0x02, 0xcb, 0xdb, 0x11, //0x0000def8 .quad 1286845328412881941 - 0x81, 0xa8, 0xd2, 0xfc, 0xb5, 0x03, 0xe1, 0xaa, //0x0000df00 .quad -6133617137336276863 - 0x1a, 0xa1, 0x26, 0x9f, 0xc2, 0xbd, 0x52, 0xd6, //0x0000df08 .quad -3003129357911285478 - 0xa2, 0x52, 0x07, 0x7c, 0xa3, 0x44, 0x99, 0xd5, //0x0000df10 .quad -3055335403242958174 - 0x60, 0x49, 0xf0, 0x46, 0x33, 0x6d, 0xe7, 0x4b, //0x0000df18 .quad 5469460339465668960 - 0xa5, 0x93, 0x84, 0x2d, 0xe6, 0xca, 0x7f, 0x85, //0x0000df20 .quad -8827113654667930715 - 0xdc, 0x2d, 0x56, 0x0c, 0x40, 0xa4, 0x70, 0x6f, //0x0000df28 .quad 8030098730593431004 - 0x8e, 0xb8, 0xe5, 0xb8, 0x9f, 0xbd, 0xdf, 0xa6, //0x0000df30 .quad -6422206049907525490 - 0x53, 0xb9, 0x6b, 0x0f, 0x50, 0xcd, 0x4c, 0xcb, //0x0000df38 .quad -3797434642040374957 - 0xb2, 0x26, 0x1f, 0xa7, 0x07, 0xad, 0x97, 0xd0, //0x0000df40 .quad -3416071543957018958 - 0xa8, 0xa7, 0x46, 0x13, 0xa4, 0x00, 0x20, 0x7e, //0x0000df48 .quad 9088264752731695016 - 0x2f, 0x78, 0x73, 0xc8, 0x24, 0xcc, 0x5e, 0x82, //0x0000df50 .quad -9052573742614218705 - 0xc9, 0x28, 0x0c, 0x8c, 0x66, 0x00, 0xd4, 0x8e, //0x0000df58 .quad -8154892584824854327 - 0x3b, 0x56, 0x90, 0xfa, 0x2d, 0x7f, 0xf6, 0xa2, //0x0000df60 .quad -6704031159840385477 - 0xfb, 0x32, 0x0f, 0x2f, 0x80, 0x00, 0x89, 0x72, //0x0000df68 .quad 8253128342678483707 - 0xca, 0x6b, 0x34, 0x79, 0xf9, 0x1e, 0xb4, 0xcb, //0x0000df70 .quad -3768352931373093942 - 0xba, 0xff, 0xd2, 0x3a, 0xa0, 0x40, 0x2b, 0x4f, //0x0000df78 .quad 5704724409920716730 - 0xbc, 0x86, 0x81, 0xd7, 0xb7, 0x26, 0xa1, 0xfe, //0x0000df80 .quad -98755145788979524 - 0xa9, 0xbf, 0x87, 0x49, 0xc8, 0x10, 0xf6, 0xe2, //0x0000df88 .quad -2092466524453879895 - 0x36, 0xf4, 0xb0, 0xe6, 0x32, 0xb8, 0x24, 0x9f, //0x0000df90 .quad -6979250993759194058 - 0xca, 0xd7, 0xf4, 0x2d, 0x7d, 0xca, 0xd9, 0x0d, //0x0000df98 .quad 998051431430019018 - 0x43, 0x31, 0x5d, 0xa0, 0x3f, 0xe6, 0xed, 0xc6, //0x0000dfa0 .quad -4112377723771604669 - 0xbc, 0x0d, 0x72, 0x79, 0x1c, 0x3d, 0x50, 0x91, //0x0000dfa8 .quad -7975807747567252036 - 0x94, 0x7d, 0x74, 0x88, 0xcf, 0x5f, 0xa9, 0xf8, //0x0000dfb0 .quad -528786136287117932 - 0x2b, 0x91, 0xce, 0x97, 0x63, 0x4c, 0xa4, 0x75, //0x0000dfb8 .quad 8476984389250486571 - 0x7c, 0xce, 0x48, 0xb5, 0xe1, 0xdb, 0x69, 0x9b, //0x0000dfc0 .quad -7248020362820530564 - 0xbb, 0x1a, 0xe1, 0x3e, 0xbe, 0xaf, 0x86, 0xc9, //0x0000dfc8 .quad -3925256793573221701 - 0x1b, 0x02, 0x9b, 0x22, 0xda, 0x52, 0x44, 0xc2, //0x0000dfd0 .quad -4448339435098275301 - 0x69, 0x61, 0x99, 0xce, 0xad, 0x5b, 0xe8, 0xfb, //0x0000dfd8 .quad -294884973539139223 - 0xa2, 0xc2, 0x41, 0xab, 0x90, 0x67, 0xd5, 0xf2, //0x0000dfe0 .quad -948738275445456222 - 0xc4, 0xb9, 0x3f, 0x42, 0x99, 0x72, 0xe2, 0xfa, //0x0000dfe8 .quad -368606216923924028 - 0xa5, 0x19, 0x09, 0x6b, 0xba, 0x60, 0xc5, 0x97, //0x0000dff0 .quad -7510490449794491995 - 0x1b, 0xd4, 0x67, 0xc9, 0x9f, 0x87, 0xcd, 0xdc, //0x0000dff8 .quad -2536221894791146469 - 0x0f, 0x60, 0xcb, 0x05, 0xe9, 0xb8, 0xb6, 0xbd, //0x0000e000 .quad -4776427043815727089 - 0x21, 0xc9, 0xc1, 0xbb, 0x87, 0xe9, 0x00, 0x54, //0x0000e008 .quad 6053094668365842721 - 0x13, 0x38, 0x3e, 0x47, 0x23, 0x67, 0x24, 0xed, //0x0000e010 .quad -1358847786342270957 - 0x69, 0x3b, 0xb2, 0xaa, 0xe9, 0x23, 0x01, 0x29, //0x0000e018 .quad 2954682317029915497 - 0x0b, 0xe3, 0x86, 0x0c, 0x76, 0xc0, 0x36, 0x94, //0x0000e020 .quad -7766808894105001205 - 0x22, 0x65, 0xaf, 0x0a, 0x72, 0xb6, 0xa0, 0xf9, //0x0000e028 .quad -459166561069996766 - 0xce, 0x9b, 0xa8, 0x8f, 0x93, 0x70, 0x44, 0xb9, //0x0000e030 .quad -5096825099203863602 - 0x6a, 0x3e, 0x5b, 0x8d, 0x0e, 0xe4, 0x08, 0xf8, //0x0000e038 .quad -573958201337495958 - 0xc2, 0xc2, 0x92, 0x73, 0xb8, 0x8c, 0x95, 0xe7, //0x0000e040 .quad -1759345355577441598 - 0x05, 0x0e, 0xb2, 0x30, 0x12, 0x1d, 0x0b, 0xb6, //0x0000e048 .quad -5329133770099257851 - 0xb9, 0xb9, 0x3b, 0x48, 0xf3, 0x77, 0xbd, 0x90, //0x0000e050 .quad -8017119874876982855 - 0xc3, 0x48, 0x6f, 0x5e, 0x2b, 0xf2, 0xc6, 0xb1, //0x0000e058 .quad -5636551615525730109 - 0x28, 0xa8, 0x4a, 0x1a, 0xf0, 0xd5, 0xec, 0xb4, //0x0000e060 .quad -5409713825168840664 - 0xf4, 0x1a, 0x0b, 0x36, 0xb6, 0xae, 0x38, 0x1e, //0x0000e068 .quad 2177682517447613172 - 0x32, 0x52, 0xdd, 0x20, 0x6c, 0x0b, 0x28, 0xe2, //0x0000e070 .quad -2150456263033662926 - 0xb1, 0xe1, 0x8d, 0xc3, 0x63, 0xda, 0xc6, 0x25, //0x0000e078 .quad 2722103146809516465 - 0x5f, 0x53, 0x8a, 0x94, 0x23, 0x07, 0x59, 0x8d, //0x0000e080 .quad -8261564192037121185 - 0x0f, 0xad, 0x38, 0x5a, 0x7e, 0x48, 0x9c, 0x57, //0x0000e088 .quad 6313000485183335695 - 0x37, 0xe8, 0xac, 0x79, 0xec, 0x48, 0xaf, 0xb0, //0x0000e090 .quad -5715269221619013577 - 0x52, 0xd8, 0xc6, 0xf0, 0x9d, 0x5a, 0x83, 0x2d, //0x0000e098 .quad 3279564588051781714 - 0x44, 0x22, 0x18, 0x98, 0x27, 0x1b, 0xdb, 0xdc, //0x0000e0a0 .quad -2532400508596379068 - 0x66, 0x8e, 0xf8, 0x6c, 0x45, 0x31, 0xe4, 0xf8, //0x0000e0a8 .quad -512230283362660762 - 0x6b, 0x15, 0x0f, 0xbf, 0xf8, 0xf0, 0x08, 0x8a, //0x0000e0b0 .quad -8500279345513818773 - 0x00, 0x59, 0x1b, 0x64, 0xcb, 0x9e, 0x8e, 0x1b, //0x0000e0b8 .quad 1985699082112030976 - 0xc5, 0xda, 0xd2, 0xee, 0x36, 0x2d, 0x8b, 0xac, //0x0000e0c0 .quad -6013663163464885563 - 0x40, 0x2f, 0x22, 0x3d, 0x7e, 0x46, 0x72, 0xe2, //0x0000e0c8 .quad -2129562165787349184 - 0x77, 0x91, 0x87, 0xaa, 0x84, 0xf8, 0xad, 0xd7, //0x0000e0d0 .quad -2905392935903719049 - 0x10, 0xbb, 0x6a, 0xcc, 0x1d, 0xd8, 0x0e, 0x5b, //0x0000e0d8 .quad 6561419329620589328 - 0xea, 0xba, 0x94, 0xea, 0x52, 0xbb, 0xcc, 0x86, //0x0000e0e0 .quad -8733399612580906262 - 0xea, 0xb4, 0xc2, 0x9f, 0x12, 0x47, 0xe9, 0x98, //0x0000e0e8 .quad -7428327965055601430 - 0xa5, 0xe9, 0x39, 0xa5, 0x27, 0xea, 0x7f, 0xa8, //0x0000e0f0 .quad -6305063497298744923 - 0x25, 0x62, 0xb3, 0x47, 0xd7, 0x98, 0x23, 0x3f, //0x0000e0f8 .quad 4549648098962661925 - 0x0e, 0x64, 0x88, 0x8e, 0xb1, 0xe4, 0x9f, 0xd2, //0x0000e100 .quad -3269643353196043250 - 0xae, 0x3a, 0xa0, 0x19, 0x0d, 0x7f, 0xec, 0x8e, //0x0000e108 .quad -8147997931578836306 - 0x89, 0x3e, 0x15, 0xf9, 0xee, 0xee, 0xa3, 0x83, //0x0000e110 .quad -8961056123388608887 - 0xad, 0x24, 0x04, 0x30, 0x68, 0xcf, 0x53, 0x19, //0x0000e118 .quad 1825030320404309165 - 0x2b, 0x8e, 0x5a, 0xb7, 0xaa, 0xea, 0x8c, 0xa4, //0x0000e120 .quad -6589634135808373205 - 0xd8, 0x2d, 0x05, 0x3c, 0x42, 0xc3, 0xa8, 0x5f, //0x0000e128 .quad 6892973918932774360 - 0xb6, 0x31, 0x31, 0x65, 0x55, 0x25, 0xb0, 0xcd, //0x0000e130 .quad -3625356651333078602 - 0x4e, 0x79, 0x06, 0xcb, 0x12, 0xf4, 0x92, 0x37, //0x0000e138 .quad 4004531380238580046 - 0x11, 0xbf, 0x3e, 0x5f, 0x55, 0x17, 0x8e, 0x80, //0x0000e140 .quad -9183376934724255983 - 0xd1, 0x0b, 0xe4, 0xbe, 0x8b, 0xd8, 0xbb, 0xe2, //0x0000e148 .quad -2108853905778275375 - 0xd6, 0x6e, 0x0e, 0xb7, 0x2a, 0x9d, 0xb1, 0xa0, //0x0000e150 .quad -6867535149977932074 - 0xc5, 0x0e, 0x9d, 0xae, 0xae, 0xce, 0x6a, 0x5b, //0x0000e158 .quad 6587304654631931589 - 0x8b, 0x0a, 0xd2, 0x64, 0x75, 0x04, 0xde, 0xc8, //0x0000e160 .quad -3972732919045027189 - 0x76, 0x52, 0x44, 0x5a, 0x5a, 0x82, 0x45, 0xf2, //0x0000e168 .quad -989241218564861322 - 0x2e, 0x8d, 0x06, 0xbe, 0x92, 0x85, 0x15, 0xfb, //0x0000e170 .quad -354230130378896082 - 0x13, 0x67, 0xd5, 0xf0, 0xf0, 0xe2, 0xd6, 0xee, //0x0000e178 .quad -1236551523206076653 - 0x3d, 0x18, 0xc4, 0xb6, 0x7b, 0x73, 0xed, 0x9c, //0x0000e180 .quad -7138922859127891907 - 0x6c, 0x60, 0x85, 0x96, 0xd6, 0x4d, 0x46, 0x55, //0x0000e188 .quad 6144684325637283948 - 0x4c, 0x1e, 0x75, 0xa4, 0x5a, 0xd0, 0x28, 0xc4, //0x0000e190 .quad -4311967555482476980 - 0x87, 0xb8, 0x26, 0x3c, 0x4c, 0xe1, 0x97, 0xaa, //0x0000e198 .quad -6154202648235558777 - 0xdf, 0x65, 0x92, 0x4d, 0x71, 0x04, 0x33, 0xf5, //0x0000e1a0 .quad -778273425925708321 - 0xa9, 0x66, 0x30, 0x4b, 0x9f, 0xd9, 0x3d, 0xd5, //0x0000e1a8 .quad -3081067291867060567 - 0xab, 0x7f, 0x7b, 0xd0, 0xc6, 0xe2, 0x3f, 0x99, //0x0000e1b0 .quad -7403949918844649557 - 0x2a, 0x40, 0xfe, 0x8e, 0x03, 0xa8, 0x46, 0xe5, //0x0000e1b8 .quad -1925667057416912854 - 0x96, 0x5f, 0x9a, 0x84, 0x78, 0xdb, 0x8f, 0xbf, //0x0000e1c0 .quad -4643251380128424042 - 0x34, 0xd0, 0xbd, 0x72, 0x04, 0x52, 0x98, 0xde, //0x0000e1c8 .quad -2407083821771141068 - 0x7c, 0xf7, 0xc0, 0xa5, 0x56, 0xd2, 0x73, 0xef, //0x0000e1d0 .quad -1192378206733142148 - 0x41, 0x44, 0x6d, 0x8f, 0x85, 0x66, 0x3e, 0x96, //0x0000e1d8 .quad -7620540795641314239 - 0xad, 0x9a, 0x98, 0x27, 0x76, 0x63, 0xa8, 0x95, //0x0000e1e0 .quad -7662765406849295699 - 0xa9, 0x4a, 0xa4, 0x79, 0x13, 0x00, 0xe7, 0xdd, //0x0000e1e8 .quad -2456994988062127447 - 0x59, 0xc1, 0x7e, 0xb1, 0x53, 0x7c, 0x12, 0xbb, //0x0000e1f0 .quad -4966770740134231719 - 0x53, 0x5d, 0x0d, 0x58, 0x18, 0xc0, 0x60, 0x55, //0x0000e1f8 .quad 6152128301777116499 - 0xaf, 0x71, 0xde, 0x9d, 0x68, 0x1b, 0xd7, 0xe9, //0x0000e200 .quad -1596777406740401745 - 0xa7, 0xb4, 0x10, 0x6e, 0x1e, 0xf0, 0xb8, 0xaa, //0x0000e208 .quad -6144897678060768089 - 0x0d, 0x07, 0xab, 0x62, 0x21, 0x71, 0x26, 0x92, //0x0000e210 .quad -7915514906853832947 - 0xe9, 0x70, 0xca, 0x04, 0x13, 0x96, 0xb3, 0xca, //0x0000e218 .quad -3840561048787980055 - 0xd1, 0xc8, 0x55, 0xbb, 0x69, 0x0d, 0xb0, 0xb6, //0x0000e220 .quad -5282707615139903279 - 0x23, 0x0d, 0xfd, 0xc5, 0x97, 0x7b, 0x60, 0x3d, //0x0000e228 .quad 4422670725869800739 - 0x05, 0x3b, 0x2b, 0x2a, 0xc4, 0x10, 0x5c, 0xe4, //0x0000e230 .quad -1991698500497491195 - 0x6b, 0x50, 0x7c, 0xb7, 0x7d, 0x9a, 0xb8, 0x8c, //0x0000e238 .quad -8306719647944912789 - 0xe3, 0x04, 0x5b, 0x9a, 0x7a, 0x8a, 0xb9, 0x8e, //0x0000e240 .quad -8162340590452013853 - 0x43, 0xb2, 0xad, 0x92, 0x8e, 0x60, 0xf3, 0x77, //0x0000e248 .quad 8643358275316593219 - 0x1c, 0xc6, 0xf1, 0x40, 0x19, 0xed, 0x67, 0xb2, //0x0000e250 .quad -5591239719637629412 - 0xd4, 0x1e, 0x59, 0x37, 0xb2, 0x38, 0xf0, 0x55, //0x0000e258 .quad 6192511825718353620 - 0xa3, 0x37, 0x2e, 0x91, 0x5f, 0xe8, 0x01, 0xdf, //0x0000e260 .quad -2377363631119648861 - 0x89, 0x66, 0x2f, 0xc5, 0xde, 0x46, 0x6c, 0x6b, //0x0000e268 .quad 7740639782147942025 - 0xc6, 0xe2, 0xbc, 0xba, 0x3b, 0x31, 0x61, 0x8b, //0x0000e270 .quad -8403381297090862394 - 0x16, 0xa0, 0x3d, 0x3b, 0x4b, 0xac, 0x23, 0x23, //0x0000e278 .quad 2532056854628769814 - 0x77, 0x1b, 0x6c, 0xa9, 0x8a, 0x7d, 0x39, 0xae, //0x0000e280 .quad -5892540602936190089 - 0x1b, 0x08, 0x0d, 0x0a, 0x5e, 0x97, 0xec, 0xab, //0x0000e288 .quad -6058300968568813541 - 0x55, 0x22, 0xc7, 0x53, 0xed, 0xdc, 0xc7, 0xd9, //0x0000e290 .quad -2753989735242849707 - 0x22, 0x4a, 0x90, 0x8c, 0x35, 0xbd, 0xe7, 0x96, //0x0000e298 .quad -7572876210711016926 - 0x75, 0x75, 0x5c, 0x54, 0x14, 0xea, 0x1c, 0x88, //0x0000e2a0 .quad -8638772612167862923 - 0x55, 0x2e, 0xda, 0x77, 0x41, 0xd6, 0x50, 0x7e, //0x0000e2a8 .quad 9102010423587778133 - 0xd2, 0x92, 0x73, 0x69, 0x99, 0x24, 0x24, 0xaa, //0x0000e2b0 .quad -6186779746782440750 - 0xea, 0xb9, 0xd0, 0xd5, 0xd1, 0x0b, 0xe5, 0xdd, //0x0000e2b8 .quad -2457545025797441046 - 0x87, 0x77, 0xd0, 0xc3, 0xbf, 0x2d, 0xad, 0xd4, //0x0000e2c0 .quad -3121788665050663033 - 0x65, 0xe8, 0x44, 0x4b, 0xc6, 0x4e, 0x5e, 0x95, //0x0000e2c8 .quad -7683617300674189211 - 0xb4, 0x4a, 0x62, 0xda, 0x97, 0x3c, 0xec, 0x84, //0x0000e2d0 .quad -8868646943297746252 - 0x3f, 0x11, 0x0b, 0xef, 0x3b, 0xf1, 0x5a, 0xbd, //0x0000e2d8 .quad -4802260812921368257 - 0x61, 0xdd, 0xfa, 0xd0, 0xbd, 0x4b, 0x27, 0xa6, //0x0000e2e0 .quad -6474122660694794911 - 0x8f, 0xd5, 0xcd, 0xea, 0x8a, 0xad, 0xb1, 0xec, //0x0000e2e8 .quad -1391139997724322417 - 0xba, 0x94, 0x39, 0x45, 0xad, 0x1e, 0xb1, 0xcf, //0x0000e2f0 .quad -3480967307441105734 - 0xf3, 0x4a, 0x81, 0xa5, 0xed, 0x18, 0xde, 0x67, //0x0000e2f8 .quad 7484447039699372787 - 0xf4, 0xfc, 0x43, 0x4b, 0x2c, 0xb3, 0xce, 0x81, //0x0000e300 .quad -9093133594791772940 - 0xd8, 0xce, 0x70, 0x87, 0x94, 0xcf, 0xea, 0x80, //0x0000e308 .quad -9157278655470055720 - 0x31, 0xfc, 0x14, 0x5e, 0xf7, 0x5f, 0x42, 0xa2, //0x0000e310 .quad -6754730975062328271 - 0x8e, 0x02, 0x4d, 0xa9, 0x79, 0x83, 0x25, 0xa1, //0x0000e318 .quad -6834912300910181746 - 0x3e, 0x3b, 0x9a, 0x35, 0xf5, 0xf7, 0xd2, 0xca, //0x0000e320 .quad -3831727700400522434 - 0x31, 0x43, 0xa0, 0x13, 0x58, 0xe4, 0x6e, 0x09, //0x0000e328 .quad 679731660717048625 - 0x0d, 0xca, 0x00, 0x83, 0xf2, 0xb5, 0x87, 0xfd, //0x0000e330 .quad -177973607073265139 - 0xfd, 0x53, 0x88, 0x18, 0x6e, 0x9d, 0xca, 0x8b, //0x0000e338 .quad -8373707460958465027 - 0x48, 0x7e, 0xe0, 0x91, 0xb7, 0xd1, 0x74, 0x9e, //0x0000e340 .quad -7028762532061872568 - 0x7e, 0x34, 0x55, 0xcf, 0x64, 0xa2, 0x5e, 0x77, //0x0000e348 .quad 8601490892183123070 - 0xda, 0x9d, 0x58, 0x76, 0x25, 0x06, 0x12, 0xc6, //0x0000e350 .quad -4174267146649952806 - 0x9e, 0x81, 0x2a, 0x03, 0xfe, 0x4a, 0x36, 0x95, //0x0000e358 .quad -7694880458480647778 - 0x51, 0xc5, 0xee, 0xd3, 0xae, 0x87, 0x96, 0xf7, //0x0000e360 .quad -606147914885053103 - 0x05, 0x22, 0xf5, 0x83, 0xbd, 0xdd, 0x83, 0x3a, //0x0000e368 .quad 4216457482181353989 - 0x52, 0x3b, 0x75, 0x44, 0xcd, 0x14, 0xbe, 0x9a, //0x0000e370 .quad -7296371474444240046 - 0x43, 0x35, 0x79, 0x72, 0x96, 0x6a, 0x92, 0xc4, //0x0000e378 .quad -4282243101277735613 - 0x27, 0x8a, 0x92, 0x95, 0x00, 0x9a, 0x6d, 0xc1, //0x0000e380 .quad -4508778324627912153 - 0x94, 0x82, 0x17, 0x0f, 0x3c, 0x05, 0xb7, 0x75, //0x0000e388 .quad 8482254178684994196 - 0xb1, 0x2c, 0xf7, 0xba, 0x80, 0x00, 0xc9, 0xf1, //0x0000e390 .quad -1024286887357502287 - 0x39, 0x63, 0xdd, 0x12, 0x8b, 0xc6, 0x24, 0x53, //0x0000e398 .quad 5991131704928854841 - 0xee, 0x7b, 0xda, 0x74, 0x50, 0xa0, 0x1d, 0x97, //0x0000e3a0 .quad -7557708332239520786 - 0x04, 0x5e, 0xca, 0xeb, 0x16, 0xfc, 0xf6, 0xd3, //0x0000e3a8 .quad -3173071712060547580 - 0xea, 0x1a, 0x11, 0x92, 0x64, 0x08, 0xe5, 0xbc, //0x0000e3b0 .quad -4835449396872013078 - 0x85, 0xf5, 0xbc, 0xa6, 0x1c, 0xbb, 0xf4, 0x88, //0x0000e3b8 .quad -8578025658503072379 - 0xa5, 0x61, 0x95, 0xb6, 0x7d, 0x4a, 0x1e, 0xec, //0x0000e3c0 .quad -1432625727662628443 - 0xe6, 0x32, 0x6c, 0xd0, 0xe3, 0xe9, 0x31, 0x2b, //0x0000e3c8 .quad 3112525982153323238 - 0x07, 0x5d, 0x1d, 0x92, 0x8e, 0xee, 0x92, 0x93, //0x0000e3d0 .quad -7812920107430224633 - 0xd0, 0x9f, 0x43, 0x62, 0x2e, 0x32, 0xff, 0x3a, //0x0000e3d8 .quad 4251171748059520976 - 0x49, 0xb4, 0xa4, 0x36, 0x32, 0xaa, 0x77, 0xb8, //0x0000e3e0 .quad -5154464115860392887 - 0xc3, 0x87, 0xd4, 0xfa, 0xb9, 0xfe, 0xbe, 0x09, //0x0000e3e8 .quad 702278666647013315 - 0x5b, 0xe1, 0x4d, 0xc4, 0xbe, 0x94, 0x95, 0xe6, //0x0000e3f0 .quad -1831394126398103205 - 0xb4, 0xa9, 0x89, 0x79, 0x68, 0xbe, 0x2e, 0x4c, //0x0000e3f8 .quad 5489534351736154548 - 0xd9, 0xac, 0xb0, 0x3a, 0xf7, 0x7c, 0x1d, 0x90, //0x0000e400 .quad -8062150356639896359 - 0x11, 0x0a, 0xf6, 0x4b, 0x01, 0x37, 0x9d, 0x0f, //0x0000e408 .quad 1125115960621402641 - 0x0f, 0xd8, 0x5c, 0x09, 0x35, 0xdc, 0x24, 0xb4, //0x0000e410 .quad -5466001927372482545 - 0x95, 0x8c, 0xf3, 0x9e, 0xc1, 0x84, 0x84, 0x53, //0x0000e418 .quad 6018080969204141205 - 0x13, 0x0e, 0xb4, 0x4b, 0x42, 0x13, 0x2e, 0xe1, //0x0000e420 .quad -2220816390788215277 - 0xba, 0x6f, 0xb0, 0x06, 0xf2, 0xa5, 0x65, 0x28, //0x0000e428 .quad 2910915193077788602 - 0xcb, 0x88, 0x50, 0x6f, 0x09, 0xcc, 0xbc, 0x8c, //0x0000e430 .quad -8305539271883716405 - 0xd4, 0x45, 0x2e, 0x44, 0xb7, 0x87, 0x3f, 0xf9, //0x0000e438 .quad -486521013540076076 - 0xfe, 0xaa, 0x24, 0xcb, 0x0b, 0xff, 0xeb, 0xaf, //0x0000e440 .quad -5770238071427257602 - 0x49, 0xd7, 0x39, 0x15, 0xa5, 0x69, 0x8f, 0xf7, //0x0000e448 .quad -608151266925095095 - 0xbe, 0xd5, 0xed, 0xbd, 0xce, 0xfe, 0xe6, 0xdb, //0x0000e450 .quad -2601111570856684098 - 0x1c, 0x4d, 0x88, 0x5a, 0x0e, 0x44, 0x73, 0xb5, //0x0000e458 .quad -5371875102083756772 - 0x97, 0xa5, 0xb4, 0x36, 0x41, 0x5f, 0x70, 0x89, //0x0000e460 .quad -8543223759426509417 - 0x31, 0x30, 0x95, 0xf8, 0x88, 0x0a, 0x68, 0x31, //0x0000e468 .quad 3560107088838733873 - 0xfc, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x0000e470 .quad -6067343680855748868 - 0x3e, 0x7c, 0xba, 0x36, 0x2b, 0x0d, 0xc2, 0xfd, //0x0000e478 .quad -161552157378970562 - 0xbc, 0x42, 0x7a, 0xe5, 0xd5, 0x94, 0xbf, 0xd6, //0x0000e480 .quad -2972493582642298180 - 0x4d, 0x1b, 0x69, 0x04, 0x76, 0x90, 0x32, 0x3d, //0x0000e488 .quad 4409745821703674701 - 0xb5, 0x69, 0x6c, 0xaf, 0x05, 0xbd, 0x37, 0x86, //0x0000e490 .quad -8775337516792518219 - 0x10, 0xb1, 0xc1, 0xc2, 0x49, 0x9a, 0x3f, 0xa6, //0x0000e498 .quad -6467280898289979120 - 0x23, 0x84, 0x47, 0x1b, 0x47, 0xac, 0xc5, 0xa7, //0x0000e4a0 .quad -6357485877563259869 - 0x54, 0x1d, 0x72, 0x33, 0xdc, 0x80, 0xcf, 0x0f, //0x0000e4a8 .quad 1139270913992301908 - 0x2b, 0x65, 0x19, 0xe2, 0x58, 0x17, 0xb7, 0xd1, //0x0000e4b0 .quad -3335171328526686933 - 0xa9, 0xa4, 0x4e, 0x40, 0x13, 0x61, 0xc3, 0xd3, //0x0000e4b8 .quad -3187597375937010519 - 0x3b, 0xdf, 0x4f, 0x8d, 0x97, 0x6e, 0x12, 0x83, //0x0000e4c0 .quad -9002011107970261189 - 0xea, 0x26, 0x31, 0x08, 0xac, 0x1c, 0x5a, 0x64, //0x0000e4c8 .quad 7231123676894144234 - 0x0a, 0xd7, 0xa3, 0x70, 0x3d, 0x0a, 0xd7, 0xa3, //0x0000e4d0 .quad -6640827866535438582 - 0xa4, 0x70, 0x3d, 0x0a, 0xd7, 0xa3, 0x70, 0x3d, //0x0000e4d8 .quad 4427218577690292388 - 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x0000e4e0 .quad -3689348814741910324 - 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x0000e4e8 .quad -3689348814741910323 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x0000e4f0 .quad -9223372036854775808 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e4f8 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, //0x0000e500 .quad -6917529027641081856 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e508 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc8, //0x0000e510 .quad -4035225266123964416 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e518 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, //0x0000e520 .quad -432345564227567616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e528 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x9c, //0x0000e530 .quad -7187745005283311616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e538 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0xc3, //0x0000e540 .quad -4372995238176751616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e548 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0xf4, //0x0000e550 .quad -854558029293551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e558 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x96, 0x98, //0x0000e560 .quad -7451627795949551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e568 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xbc, 0xbe, //0x0000e570 .quad -4702848726509551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e578 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x6b, 0xee, //0x0000e580 .quad -1266874889709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e588 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0xf9, 0x02, 0x95, //0x0000e590 .quad -7709325833709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e598 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x40, 0xb7, 0x43, 0xba, //0x0000e5a0 .quad -5024971273709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e5a8 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x10, 0xa5, 0xd4, 0xe8, //0x0000e5b0 .quad -1669528073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e5b8 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x2a, 0xe7, 0x84, 0x91, //0x0000e5c0 .quad -7960984073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e5c8 .quad 0 - 0x00, 0x00, 0x00, 0x80, 0xf4, 0x20, 0xe6, 0xb5, //0x0000e5d0 .quad -5339544073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e5d8 .quad 0 - 0x00, 0x00, 0x00, 0xa0, 0x31, 0xa9, 0x5f, 0xe3, //0x0000e5e0 .quad -2062744073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e5e8 .quad 0 - 0x00, 0x00, 0x00, 0x04, 0xbf, 0xc9, 0x1b, 0x8e, //0x0000e5f0 .quad -8206744073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e5f8 .quad 0 - 0x00, 0x00, 0x00, 0xc5, 0x2e, 0xbc, 0xa2, 0xb1, //0x0000e600 .quad -5646744073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e608 .quad 0 - 0x00, 0x00, 0x40, 0x76, 0x3a, 0x6b, 0x0b, 0xde, //0x0000e610 .quad -2446744073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e618 .quad 0 - 0x00, 0x00, 0xe8, 0x89, 0x04, 0x23, 0xc7, 0x8a, //0x0000e620 .quad -8446744073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e628 .quad 0 - 0x00, 0x00, 0x62, 0xac, 0xc5, 0xeb, 0x78, 0xad, //0x0000e630 .quad -5946744073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e638 .quad 0 - 0x00, 0x80, 0x7a, 0x17, 0xb7, 0x26, 0xd7, 0xd8, //0x0000e640 .quad -2821744073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e648 .quad 0 - 0x00, 0x90, 0xac, 0x6e, 0x32, 0x78, 0x86, 0x87, //0x0000e650 .quad -8681119073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e658 .quad 0 - 0x00, 0xb4, 0x57, 0x0a, 0x3f, 0x16, 0x68, 0xa9, //0x0000e660 .quad -6239712823709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e668 .quad 0 - 0x00, 0xa1, 0xed, 0xcc, 0xce, 0x1b, 0xc2, 0xd3, //0x0000e670 .quad -3187955011209551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e678 .quad 0 - 0xa0, 0x84, 0x14, 0x40, 0x61, 0x51, 0x59, 0x84, //0x0000e680 .quad -8910000909647051616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e688 .quad 0 - 0xc8, 0xa5, 0x19, 0x90, 0xb9, 0xa5, 0x6f, 0xa5, //0x0000e690 .quad -6525815118631426616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e698 .quad 0 - 0x3a, 0x0f, 0x20, 0xf4, 0x27, 0x8f, 0xcb, 0xce, //0x0000e6a0 .quad -3545582879861895366 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e6a8 .quad 0 - 0x84, 0x09, 0x94, 0xf8, 0x78, 0x39, 0x3f, 0x81, //0x0000e6b0 .quad -9133518327554766460 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, //0x0000e6b8 .quad 4611686018427387904 - 0xe5, 0x0b, 0xb9, 0x36, 0xd7, 0x07, 0x8f, 0xa1, //0x0000e6c0 .quad -6805211891016070171 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, //0x0000e6c8 .quad 5764607523034234880 - 0xde, 0x4e, 0x67, 0x04, 0xcd, 0xc9, 0xf2, 0xc9, //0x0000e6d0 .quad -3894828845342699810 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa4, //0x0000e6d8 .quad -6629298651489370112 - 0x96, 0x22, 0x81, 0x45, 0x40, 0x7c, 0x6f, 0xfc, //0x0000e6e0 .quad -256850038250986858 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4d, //0x0000e6e8 .quad 5548434740920451072 - 0x9d, 0xb5, 0x70, 0x2b, 0xa8, 0xad, 0xc5, 0x9d, //0x0000e6f0 .quad -7078060301547948643 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xf0, //0x0000e6f8 .quad -1143914305352105984 - 0x05, 0xe3, 0x4c, 0x36, 0x12, 0x19, 0x37, 0xc5, //0x0000e700 .quad -4235889358507547899 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x6c, //0x0000e708 .quad 7793479155164643328 - 0xc6, 0x1b, 0xe0, 0xc3, 0x56, 0xdf, 0x84, 0xf6, //0x0000e710 .quad -683175679707046970 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0xc7, //0x0000e718 .quad -4093209111326359552 - 0x5c, 0x11, 0x6c, 0x3a, 0x96, 0x0b, 0x13, 0x9a, //0x0000e720 .quad -7344513827457986212 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7f, 0x3c, //0x0000e728 .quad 4359273333062107136 - 0xb3, 0x15, 0x07, 0xc9, 0x7b, 0xce, 0x97, 0xc0, //0x0000e730 .quad -4568956265895094861 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x9f, 0x4b, //0x0000e738 .quad 5449091666327633920 - 0x20, 0xdb, 0x48, 0xbb, 0x1a, 0xc2, 0xbd, 0xf0, //0x0000e740 .quad -1099509313941480672 - 0x00, 0x00, 0x00, 0x00, 0x00, 0xd4, 0x86, 0x1e, //0x0000e748 .quad 2199678564482154496 - 0xf4, 0x88, 0x0d, 0xb5, 0x50, 0x99, 0x76, 0x96, //0x0000e750 .quad -7604722348854507276 - 0x00, 0x00, 0x00, 0x00, 0x80, 0x44, 0x14, 0x13, //0x0000e758 .quad 1374799102801346560 - 0x31, 0xeb, 0x50, 0xe2, 0xa4, 0x3f, 0x14, 0xbc, //0x0000e760 .quad -4894216917640746191 - 0x00, 0x00, 0x00, 0x00, 0xa0, 0x55, 0xd9, 0x17, //0x0000e768 .quad 1718498878501683200 - 0xfd, 0x25, 0xe5, 0x1a, 0x8e, 0x4f, 0x19, 0xeb, //0x0000e770 .quad -1506085128623544835 - 0x00, 0x00, 0x00, 0x00, 0x08, 0xab, 0xcf, 0x5d, //0x0000e778 .quad 6759809616554491904 - 0xbe, 0x37, 0xcf, 0xd0, 0xb8, 0xd1, 0xef, 0x92, //0x0000e780 .quad -7858832233030797378 - 0x00, 0x00, 0x00, 0x00, 0xe5, 0xca, 0xa1, 0x5a, //0x0000e788 .quad 6530724019560251392 - 0xad, 0x05, 0x03, 0x05, 0x27, 0xc6, 0xab, 0xb7, //0x0000e790 .quad -5211854272861108819 - 0x00, 0x00, 0x00, 0x40, 0x9e, 0x3d, 0x4a, 0xf1, //0x0000e798 .quad -1059967012404461568 - 0x19, 0xc7, 0x43, 0xc6, 0xb0, 0xb7, 0x96, 0xe5, //0x0000e7a0 .quad -1903131822648998119 - 0x00, 0x00, 0x00, 0xd0, 0x05, 0xcd, 0x9c, 0x6d, //0x0000e7a8 .quad 7898413271349198848 - 0x6f, 0x5c, 0xea, 0x7b, 0xce, 0x32, 0x7e, 0x8f, //0x0000e7b0 .quad -8106986416796705681 - 0x00, 0x00, 0x00, 0xa2, 0x23, 0x00, 0x82, 0xe4, //0x0000e7b8 .quad -1981020733047832576 - 0x8b, 0xf3, 0xe4, 0x1a, 0x82, 0xbf, 0x5d, 0xb3, //0x0000e7c0 .quad -5522047002568494197 - 0x00, 0x00, 0x80, 0x8a, 0x2c, 0x80, 0xa2, 0xdd, //0x0000e7c8 .quad -2476275916309790720 - 0x6e, 0x30, 0x9e, 0xa1, 0x62, 0x2f, 0x35, 0xe0, //0x0000e7d0 .quad -2290872734783229842 - 0x00, 0x00, 0x20, 0xad, 0x37, 0x20, 0x0b, 0xd5, //0x0000e7d8 .quad -3095344895387238400 - 0x45, 0xde, 0x02, 0xa5, 0x9d, 0x3d, 0x21, 0x8c, //0x0000e7e0 .quad -8349324486880600507 - 0x00, 0x00, 0x34, 0xcc, 0x22, 0xf4, 0x26, 0x45, //0x0000e7e8 .quad 4982938468024057856 - 0xd6, 0x95, 0x43, 0x0e, 0x05, 0x8d, 0x29, 0xaf, //0x0000e7f0 .quad -5824969590173362730 - 0x00, 0x00, 0x41, 0x7f, 0x2b, 0xb1, 0x70, 0x96, //0x0000e7f8 .quad -7606384970252091392 - 0x4c, 0x7b, 0xd4, 0x51, 0x46, 0xf0, 0xf3, 0xda, //0x0000e800 .quad -2669525969289315508 - 0x00, 0x40, 0x11, 0x5f, 0x76, 0xdd, 0x0c, 0x3c, //0x0000e808 .quad 4327076842467049472 - 0x0f, 0xcd, 0x24, 0xf3, 0x2b, 0x76, 0xd8, 0x88, //0x0000e810 .quad -8585982758446904049 - 0x00, 0xc8, 0x6a, 0xfb, 0x69, 0x0a, 0x88, 0xa5, //0x0000e818 .quad -6518949010312869888 - 0x53, 0x00, 0xee, 0xef, 0xb6, 0x93, 0x0e, 0xab, //0x0000e820 .quad -6120792429631242157 - 0x00, 0x7a, 0x45, 0x7a, 0x04, 0x0d, 0xea, 0x8e, //0x0000e828 .quad -8148686262891087360 - 0x68, 0x80, 0xe9, 0xab, 0xa4, 0x38, 0xd2, 0xd5, //0x0000e830 .quad -3039304518611664792 - 0x80, 0xd8, 0xd6, 0x98, 0x45, 0x90, 0xa4, 0x72, //0x0000e838 .quad 8260886245095692416 - 0x41, 0xf0, 0x71, 0xeb, 0x66, 0x63, 0xa3, 0x85, //0x0000e840 .quad -8817094351773372351 - 0x50, 0x47, 0x86, 0x7f, 0x2b, 0xda, 0xa6, 0x47, //0x0000e848 .quad 5163053903184807760 - 0x51, 0x6c, 0x4e, 0xa6, 0x40, 0x3c, 0x0c, 0xa7, //0x0000e850 .quad -6409681921289327535 - 0x24, 0xd9, 0x67, 0x5f, 0xb6, 0x90, 0x90, 0x99, //0x0000e858 .quad -7381240676301154012 - 0x65, 0x07, 0xe2, 0xcf, 0x50, 0x4b, 0xcf, 0xd0, //0x0000e860 .quad -3400416383184271515 - 0x6d, 0xcf, 0x41, 0xf7, 0xe3, 0xb4, 0xf4, 0xff, //0x0000e868 .quad -3178808521666707 - 0x9f, 0x44, 0xed, 0x81, 0x12, 0x8f, 0x81, 0x82, //0x0000e870 .quad -9042789267131251553 - 0xa5, 0x21, 0x89, 0x7a, 0x0e, 0xf1, 0xf8, 0xbf, //0x0000e878 .quad -4613672773753429595 - 0xc7, 0x95, 0x68, 0x22, 0xd7, 0xf2, 0x21, 0xa3, //0x0000e880 .quad -6691800565486676537 - 0x0e, 0x6a, 0x2b, 0x19, 0x52, 0x2d, 0xf7, 0xaf, //0x0000e888 .quad -5767090967191786994 - 0x39, 0xbb, 0x02, 0xeb, 0x8c, 0x6f, 0xea, 0xcb, //0x0000e890 .quad -3753064688430957767 - 0x91, 0x44, 0x76, 0x9f, 0xa6, 0xf8, 0xf4, 0x9b, //0x0000e898 .quad -7208863708989733743 - 0x08, 0x6a, 0xc3, 0x25, 0x70, 0x0b, 0xe5, 0xfe, //0x0000e8a0 .quad -79644842111309304 - 0xb5, 0xd5, 0x53, 0x47, 0xd0, 0x36, 0xf2, 0x02, //0x0000e8a8 .quad 212292400617608629 - 0x45, 0x22, 0x9a, 0x17, 0x26, 0x27, 0x4f, 0x9f, //0x0000e8b0 .quad -6967307053960650171 - 0x91, 0x65, 0x94, 0x2c, 0x42, 0x62, 0xd7, 0x01, //0x0000e8b8 .quad 132682750386005393 - 0xd6, 0xaa, 0x80, 0x9d, 0xef, 0xf0, 0x22, 0xc7, //0x0000e8c0 .quad -4097447799023424810 - 0xf6, 0x7e, 0xb9, 0xb7, 0xd2, 0x3a, 0x4d, 0x42, //0x0000e8c8 .quad 4777539456409894646 - 0x8b, 0xd5, 0xe0, 0x84, 0x2b, 0xad, 0xeb, 0xf8, //0x0000e8d0 .quad -510123730351893109 - 0xb3, 0xde, 0xa7, 0x65, 0x87, 0x89, 0xe0, 0xd2, //0x0000e8d8 .quad -3251447716342407501 - 0x77, 0x85, 0x0c, 0x33, 0x3b, 0x4c, 0x93, 0x9b, //0x0000e8e0 .quad -7236356359111015049 - 0x30, 0xeb, 0x88, 0x9f, 0xf4, 0x55, 0xcc, 0x63, //0x0000e8e8 .quad 7191217214140771120 - 0xd5, 0xa6, 0xcf, 0xff, 0x49, 0x1f, 0x78, 0xc2, //0x0000e8f0 .quad -4433759430461380907 - 0xfc, 0x25, 0x6b, 0xc7, 0x71, 0x6b, 0xbf, 0x3c, //0x0000e8f8 .quad 4377335499248575996 - 0x8a, 0x90, 0xc3, 0x7f, 0x1c, 0x27, 0x16, 0xf3, //0x0000e900 .quad -930513269649338230 - 0x7b, 0xef, 0x45, 0x39, 0x4e, 0x46, 0xef, 0x8b, //0x0000e908 .quad -8363388681221443717 - 0x56, 0x3a, 0xda, 0xcf, 0x71, 0xd8, 0xed, 0x97, //0x0000e910 .quad -7499099821171918250 - 0xad, 0xb5, 0xcb, 0xe3, 0xf0, 0x8b, 0x75, 0x97, //0x0000e918 .quad -7532960934977096275 - 0xec, 0xc8, 0xd0, 0x43, 0x8e, 0x4e, 0xe9, 0xbd, //0x0000e920 .quad -4762188758037509908 - 0x18, 0xa3, 0xbe, 0x1c, 0xed, 0xee, 0x52, 0x3d, //0x0000e928 .quad 4418856886560793368 - 0x27, 0xfb, 0xc4, 0xd4, 0x31, 0xa2, 0x63, 0xed, //0x0000e930 .quad -1341049929119499481 - 0xde, 0x4b, 0xee, 0x63, 0xa8, 0xaa, 0xa7, 0x4c, //0x0000e938 .quad 5523571108200991710 - 0xf8, 0x1c, 0xfb, 0x24, 0x5f, 0x45, 0x5e, 0x94, //0x0000e940 .quad -7755685233340769032 - 0x6b, 0xef, 0x74, 0x3e, 0xa9, 0xca, 0xe8, 0x8f, //0x0000e948 .quad -8076983103442849941 - 0x36, 0xe4, 0x39, 0xee, 0xb6, 0xd6, 0x75, 0xb9, //0x0000e950 .quad -5082920523248573386 - 0x45, 0x2b, 0x12, 0x8e, 0x53, 0xfd, 0xe2, 0xb3, //0x0000e958 .quad -5484542860876174523 - 0x44, 0x5d, 0xc8, 0xa9, 0x64, 0x4c, 0xd3, 0xe7, //0x0000e960 .quad -1741964635633328828 - 0x17, 0xb6, 0x96, 0x71, 0xa8, 0xbc, 0xdb, 0x60, //0x0000e968 .quad 6979379479186945559 - 0x4a, 0x3a, 0x1d, 0xea, 0xbe, 0x0f, 0xe4, 0x90, //0x0000e970 .quad -8006256924911912374 - 0xce, 0x31, 0xfe, 0x46, 0xe9, 0x55, 0x89, 0xbc, //0x0000e978 .quad -4861259862362934834 - 0xdd, 0x88, 0xa4, 0xa4, 0xae, 0x13, 0x1d, 0xb5, //0x0000e980 .quad -5396135137712502563 - 0x42, 0xbe, 0xbd, 0x98, 0x63, 0xab, 0xab, 0x6b, //0x0000e988 .quad 7758483227328495170 - 0x14, 0xab, 0xcd, 0x4d, 0x9a, 0x58, 0x64, 0xe2, //0x0000e990 .quad -2133482903713240300 - 0xd2, 0x2d, 0xed, 0x7e, 0x3c, 0x96, 0x96, 0xc6, //0x0000e998 .quad -4136954021121544750 - 0xec, 0x8a, 0xa0, 0x70, 0x60, 0xb7, 0x7e, 0x8d, //0x0000e9a0 .quad -8250955842461857044 - 0xa3, 0x3c, 0x54, 0xcf, 0xe5, 0x1d, 0x1e, 0xfc, //0x0000e9a8 .quad -279753253987271517 - 0xa8, 0xad, 0xc8, 0x8c, 0x38, 0x65, 0xde, 0xb0, //0x0000e9b0 .quad -5702008784649933400 - 0xcc, 0x4b, 0x29, 0x43, 0x5f, 0xa5, 0x25, 0x3b, //0x0000e9b8 .quad 4261994450943298508 - 0x12, 0xd9, 0xfa, 0xaf, 0x86, 0xfe, 0x15, 0xdd, //0x0000e9c0 .quad -2515824962385028846 - 0xbf, 0x9e, 0xf3, 0x13, 0xb7, 0x0e, 0xef, 0x49, //0x0000e9c8 .quad 5327493063679123135 - 0xab, 0xc7, 0xfc, 0x2d, 0x14, 0xbf, 0x2d, 0x8a, //0x0000e9d0 .quad -8489919629131724885 - 0x38, 0x43, 0x78, 0x6c, 0x32, 0x69, 0x35, 0x6e, //0x0000e9d8 .quad 7941369183226839864 - 0x96, 0xf9, 0x7b, 0x39, 0xd9, 0x2e, 0xb9, 0xac, //0x0000e9e0 .quad -6000713517987268202 - 0x05, 0x54, 0x96, 0x07, 0x7f, 0xc3, 0xc2, 0x49, //0x0000e9e8 .quad 5315025460606161925 - 0xfb, 0xf7, 0xda, 0x87, 0x8f, 0x7a, 0xe7, 0xd7, //0x0000e9f0 .quad -2889205879056697349 - 0x07, 0xe9, 0x7b, 0xc9, 0x5e, 0x74, 0x33, 0xdc, //0x0000e9f8 .quad -2579590211097073401 - 0xfd, 0xda, 0xe8, 0xb4, 0x99, 0xac, 0xf0, 0x86, //0x0000ea00 .quad -8723282702051517699 - 0xa4, 0x71, 0xed, 0x3d, 0xbb, 0x28, 0xa0, 0x69, //0x0000ea08 .quad 7611128154919104932 - 0xbc, 0x11, 0x23, 0x22, 0xc0, 0xd7, 0xac, 0xa8, //0x0000ea10 .quad -6292417359137009220 - 0x0d, 0xce, 0x68, 0x0d, 0xea, 0x32, 0x08, 0xc4, //0x0000ea18 .quad -4321147861633282547 - 0x2b, 0xd6, 0xab, 0x2a, 0xb0, 0x0d, 0xd8, 0xd2, //0x0000ea20 .quad -3253835680493873621 - 0x91, 0x01, 0xc3, 0x90, 0xa4, 0x3f, 0x0a, 0xf5, //0x0000ea28 .quad -789748808614215279 - 0xdb, 0x65, 0xab, 0x1a, 0x8e, 0x08, 0xc7, 0x83, //0x0000ea30 .quad -8951176327949752869 - 0xfb, 0xe0, 0x79, 0xda, 0xc6, 0x67, 0x26, 0x79, //0x0000ea38 .quad 8729779031470891259 - 0x52, 0x3f, 0x56, 0xa1, 0xb1, 0xca, 0xb8, 0xa4, //0x0000ea40 .quad -6577284391509803182 - 0x39, 0x59, 0x18, 0x91, 0xb8, 0x01, 0x70, 0x57, //0x0000ea48 .quad 6300537770911226169 - 0x26, 0xcf, 0xab, 0x09, 0x5e, 0xfd, 0xe6, 0xcd, //0x0000ea50 .quad -3609919470959866074 - 0x87, 0x6f, 0x5e, 0xb5, 0x26, 0x02, 0x4c, 0xed, //0x0000ea58 .quad -1347699823215743097 - 0x78, 0x61, 0x0b, 0xc6, 0x5a, 0x5e, 0xb0, 0x80, //0x0000ea60 .quad -9173728696990998152 - 0xb5, 0x05, 0x5b, 0x31, 0x58, 0x81, 0x4f, 0x54, //0x0000ea68 .quad 6075216638131242421 - 0xd6, 0x39, 0x8e, 0x77, 0xf1, 0x75, 0xdc, 0xa0, //0x0000ea70 .quad -6855474852811359786 - 0x22, 0xc7, 0xb1, 0x3d, 0xae, 0x61, 0x63, 0x69, //0x0000ea78 .quad 7594020797664053026 - 0x4c, 0xc8, 0x71, 0xd5, 0x6d, 0x93, 0x13, 0xc9, //0x0000ea80 .quad -3957657547586811828 - 0xea, 0x38, 0x1e, 0xcd, 0x19, 0x3a, 0xbc, 0x03, //0x0000ea88 .quad 269153960225290474 - 0x5f, 0x3a, 0xce, 0x4a, 0x49, 0x78, 0x58, 0xfb, //0x0000ea90 .quad -335385916056126881 - 0x24, 0xc7, 0x65, 0x40, 0xa0, 0x48, 0xab, 0x04, //0x0000ea98 .quad 336442450281613092 - 0x7b, 0xe4, 0xc0, 0xce, 0x2d, 0x4b, 0x17, 0x9d, //0x0000eaa0 .quad -7127145225176161157 - 0x77, 0x9c, 0x3f, 0x28, 0x64, 0x0d, 0xeb, 0x62, //0x0000eaa8 .quad 7127805559067090039 - 0x9a, 0x1d, 0x71, 0x42, 0xf9, 0x1d, 0x5d, 0xc4, //0x0000eab0 .quad -4297245513042813542 - 0x95, 0x83, 0x4f, 0x32, 0xbd, 0xd0, 0xa5, 0x3b, //0x0000eab8 .quad 4298070930406474645 - 0x00, 0x65, 0x0d, 0x93, 0x77, 0x65, 0x74, 0xf5, //0x0000eac0 .quad -759870872876129024 - 0x7a, 0x64, 0xe3, 0x7e, 0xec, 0x44, 0x8f, 0xca, //0x0000eac8 .quad -3850783373846682502 - 0x20, 0x5f, 0xe8, 0xbb, 0x6a, 0xbf, 0x68, 0x99, //0x0000ead0 .quad -7392448323188662496 - 0xcc, 0x1e, 0x4e, 0xcf, 0x13, 0x8b, 0x99, 0x7e, //0x0000ead8 .quad 9122475437414293196 - 0xe8, 0x76, 0xe2, 0x6a, 0x45, 0xef, 0xc2, 0xbf, //0x0000eae0 .quad -4628874385558440216 - 0x7f, 0xa6, 0x21, 0xc3, 0xd8, 0xed, 0x3f, 0x9e, //0x0000eae8 .quad -7043649776941685121 - 0xa2, 0x14, 0x9b, 0xc5, 0x16, 0xab, 0xb3, 0xef, //0x0000eaf0 .quad -1174406963520662366 - 0x1f, 0x10, 0xea, 0xf3, 0x4e, 0xe9, 0xcf, 0xc5, //0x0000eaf8 .quad -4192876202749718497 - 0xe5, 0xec, 0x80, 0x3b, 0xee, 0x4a, 0xd0, 0x95, //0x0000eb00 .quad -7651533379841495835 - 0x13, 0x4a, 0x72, 0x58, 0xd1, 0xf1, 0xa1, 0xbb, //0x0000eb08 .quad -4926390635932268013 - 0x1f, 0x28, 0x61, 0xca, 0xa9, 0x5d, 0x44, 0xbb, //0x0000eb10 .quad -4952730706374481889 - 0x98, 0xdc, 0x8e, 0xae, 0x45, 0x6e, 0x8a, 0x2a, //0x0000eb18 .quad 3065383741939440792 - 0x26, 0x72, 0xf9, 0x3c, 0x14, 0x75, 0x15, 0xea, //0x0000eb20 .quad -1579227364540714458 - 0xbe, 0x93, 0x32, 0x1a, 0xd7, 0x09, 0x2d, 0xf5, //0x0000eb28 .quad -779956341003086914 - 0x58, 0xe7, 0x1b, 0xa6, 0x2c, 0x69, 0x4d, 0x92, //0x0000eb30 .quad -7904546130479028392 - 0x57, 0x9c, 0x5f, 0x70, 0x26, 0x26, 0x3c, 0x59, //0x0000eb38 .quad 6430056314514152535 - 0x2e, 0xe1, 0xa2, 0xcf, 0x77, 0xc3, 0xe0, 0xb6, //0x0000eb40 .quad -5268996644671397586 - 0x6d, 0x83, 0x77, 0x0c, 0xb0, 0x2f, 0x8b, 0x6f, //0x0000eb48 .quad 8037570393142690669 - 0x7a, 0x99, 0x8b, 0xc3, 0x55, 0xf4, 0x98, 0xe4, //0x0000eb50 .quad -1974559787411859078 - 0x48, 0x64, 0x95, 0x0f, 0x9c, 0xfb, 0x6d, 0x0b, //0x0000eb58 .quad 823590954573587528 - 0xec, 0x3f, 0x37, 0x9a, 0xb5, 0x98, 0xdf, 0x8e, //0x0000eb60 .quad -8151628894773493780 - 0xad, 0x5e, 0xbd, 0x89, 0x41, 0xbd, 0x24, 0x47, //0x0000eb68 .quad 5126430365035880109 - 0xe7, 0x0f, 0xc5, 0x00, 0xe3, 0x7e, 0x97, 0xb2, //0x0000eb70 .quad -5577850100039479321 - 0x58, 0xb6, 0x2c, 0xec, 0x91, 0xec, 0xed, 0x58, //0x0000eb78 .quad 6408037956294850136 - 0xe1, 0x53, 0xf6, 0xc0, 0x9b, 0x5e, 0x3d, 0xdf, //0x0000eb80 .quad -2360626606621961247 - 0xee, 0xe3, 0x37, 0x67, 0xb6, 0x67, 0x29, 0x2f, //0x0000eb88 .quad 3398361426941174766 - 0x6c, 0xf4, 0x99, 0x58, 0x21, 0x5b, 0x86, 0x8b, //0x0000eb90 .quad -8392920656779807636 - 0x75, 0xee, 0x82, 0x00, 0xd2, 0xe0, 0x79, 0xbd, //0x0000eb98 .quad -4793553135802847627 - 0x87, 0x71, 0xc0, 0xae, 0xe9, 0xf1, 0x67, 0xae, //0x0000eba0 .quad -5879464802547371641 - 0x12, 0xaa, 0xa3, 0x80, 0x06, 0x59, 0xd8, 0xec, //0x0000eba8 .quad -1380255401326171630 - 0xe9, 0x8d, 0x70, 0x1a, 0x64, 0xee, 0x01, 0xda, //0x0000ebb0 .quad -2737644984756826647 - 0x96, 0x94, 0xcc, 0x20, 0x48, 0x6f, 0x0e, 0xe8, //0x0000ebb8 .quad -1725319251657714538 - 0xb2, 0x58, 0x86, 0x90, 0xfe, 0x34, 0x41, 0x88, //0x0000ebc0 .quad -8628557143114098510 - 0xde, 0xdc, 0x7f, 0x14, 0x8d, 0x05, 0x09, 0x31, //0x0000ebc8 .quad 3533361486141316318 - 0xde, 0xee, 0xa7, 0x34, 0x3e, 0x82, 0x51, 0xaa, //0x0000ebd0 .quad -6174010410465235234 - 0x16, 0xd4, 0x9f, 0x59, 0xf0, 0x46, 0x4b, 0xbd, //0x0000ebd8 .quad -4806670179178130410 - 0x96, 0xea, 0xd1, 0xc1, 0xcd, 0xe2, 0xe5, 0xd4, //0x0000ebe0 .quad -3105826994654156138 - 0x1b, 0xc9, 0x07, 0x70, 0xac, 0x18, 0x9e, 0x6c, //0x0000ebe8 .quad 7826720331309500699 - 0x9e, 0x32, 0x23, 0x99, 0xc0, 0xad, 0x0f, 0x85, //0x0000ebf0 .quad -8858670899299929442 - 0xb1, 0xdd, 0x04, 0xc6, 0x6b, 0xcf, 0xe2, 0x03, //0x0000ebf8 .quad 280014188641050033 - 0x45, 0xff, 0x6b, 0xbf, 0x30, 0x99, 0x53, 0xa6, //0x0000ec00 .quad -6461652605697523899 - 0x1d, 0x15, 0x86, 0xb7, 0x46, 0x83, 0xdb, 0x84, //0x0000ec08 .quad -8873354301053463267 - 0x16, 0xff, 0x46, 0xef, 0x7c, 0x7f, 0xe8, 0xcf, //0x0000ec10 .quad -3465379738694516970 - 0x64, 0x9a, 0x67, 0x65, 0x18, 0x64, 0x12, 0xe6, //0x0000ec18 .quad -1868320839462053276 - 0x6e, 0x5f, 0x8c, 0x15, 0xae, 0x4f, 0xf1, 0x81, //0x0000ec20 .quad -9083391364325154962 - 0x7f, 0xc0, 0x60, 0x3f, 0x8f, 0x7e, 0xcb, 0x4f, //0x0000ec28 .quad 5749828502977298559 - 0x49, 0x77, 0xef, 0x9a, 0x99, 0xa3, 0x6d, 0xa2, //0x0000ec30 .quad -6742553186979055799 - 0x9e, 0xf0, 0x38, 0x0f, 0x33, 0x5e, 0xbe, 0xe3, //0x0000ec38 .quad -2036086408133152610 - 0x1c, 0x55, 0xab, 0x01, 0x80, 0x0c, 0x09, 0xcb, //0x0000ec40 .quad -3816505465296431844 - 0xc6, 0x2c, 0x07, 0xd3, 0xbf, 0xf5, 0xad, 0x5c, //0x0000ec48 .quad 6678264026688335046 - 0x63, 0x2a, 0x16, 0x02, 0xa0, 0x4f, 0xcb, 0xfd, //0x0000ec50 .quad -158945813193151901 - 0xf7, 0xf7, 0xc8, 0xc7, 0x2f, 0x73, 0xd9, 0x73, //0x0000ec58 .quad 8347830033360418807 - 0x7e, 0xda, 0x4d, 0x01, 0xc4, 0x11, 0x9f, 0x9e, //0x0000ec60 .quad -7016870160886801794 - 0xfb, 0x9a, 0xdd, 0xdc, 0xfd, 0xe7, 0x67, 0x28, //0x0000ec68 .quad 2911550761636567803 - 0x1d, 0x51, 0xa1, 0x01, 0x35, 0xd6, 0x46, 0xc6, //0x0000ec70 .quad -4159401682681114339 - 0xb9, 0x01, 0x15, 0x54, 0xfd, 0xe1, 0x81, 0xb2, //0x0000ec78 .quad -5583933584809066055 - 0x65, 0xa5, 0x09, 0x42, 0xc2, 0x8b, 0xd8, 0xf7, //0x0000ec80 .quad -587566084924005019 - 0x27, 0x42, 0x1a, 0xa9, 0x7c, 0x5a, 0x22, 0x1f, //0x0000ec88 .quad 2243455055843443239 - 0x5f, 0x07, 0x46, 0x69, 0x59, 0x57, 0xe7, 0x9a, //0x0000ec90 .quad -7284757830718584993 - 0x59, 0x69, 0xb0, 0xe9, 0x8d, 0x78, 0x75, 0x33, //0x0000ec98 .quad 3708002419115845977 - 0x37, 0x89, 0x97, 0xc3, 0x2f, 0x2d, 0xa1, 0xc1, //0x0000eca0 .quad -4494261269970843337 - 0xaf, 0x83, 0x1c, 0x64, 0xb1, 0xd6, 0x52, 0x00, //0x0000eca8 .quad 23317005467419567 - 0x84, 0x6b, 0x7d, 0xb4, 0x7b, 0x78, 0x09, 0xf2, //0x0000ecb0 .quad -1006140569036166268 - 0x9b, 0xa4, 0x23, 0xbd, 0x5d, 0x8c, 0x67, 0xc0, //0x0000ecb8 .quad -4582539761593113445 - 0x32, 0x63, 0xce, 0x50, 0x4d, 0xeb, 0x45, 0x97, //0x0000ecc0 .quad -7546366883288685774 - 0xe1, 0x46, 0x36, 0x96, 0xba, 0xb7, 0x40, 0xf8, //0x0000ecc8 .quad -558244341782001951 - 0xff, 0xfb, 0x01, 0xa5, 0x20, 0x66, 0x17, 0xbd, //0x0000ecd0 .quad -4821272585683469313 - 0x99, 0xd8, 0xc3, 0x3b, 0xa9, 0xe5, 0x50, 0xb6, //0x0000ecd8 .quad -5309491445654890343 - 0xff, 0x7a, 0x42, 0xce, 0xa8, 0x3f, 0x5d, 0xec, //0x0000ece0 .quad -1414904713676948737 - 0xbf, 0xce, 0xb4, 0x8a, 0x13, 0x1f, 0xe5, 0xa3, //0x0000ece8 .quad -6636864307068612929 - 0xdf, 0x8c, 0xe9, 0x80, 0xc9, 0x47, 0xba, 0x93, //0x0000ecf0 .quad -7801844473689174817 - 0x38, 0x01, 0xb1, 0x36, 0x6c, 0x33, 0x6f, 0xc6, //0x0000ecf8 .quad -4148040191917883080 - 0x17, 0xf0, 0x23, 0xe1, 0xbb, 0xd9, 0xa8, 0xb8, //0x0000ed00 .quad -5140619573684080617 - 0x85, 0x41, 0x5d, 0x44, 0x47, 0x00, 0x0b, 0xb8, //0x0000ed08 .quad -5185050239897353851 - 0x1d, 0xec, 0x6c, 0xd9, 0x2a, 0x10, 0xd3, 0xe6, //0x0000ed10 .quad -1814088448677712867 - 0xe6, 0x91, 0x74, 0x15, 0x59, 0xc0, 0x0d, 0xa6, //0x0000ed18 .quad -6481312799871692314 - 0x92, 0x13, 0xe4, 0xc7, 0x1a, 0xea, 0x43, 0x90, //0x0000ed20 .quad -8051334308064652398 - 0x30, 0xdb, 0x68, 0xad, 0x37, 0x98, 0xc8, 0x87, //0x0000ed28 .quad -8662506518347195600 - 0x77, 0x18, 0xdd, 0x79, 0xa1, 0xe4, 0x54, 0xb4, //0x0000ed30 .quad -5452481866653427593 - 0xfc, 0x11, 0xc3, 0x98, 0x45, 0xbe, 0xba, 0x29, //0x0000ed38 .quad 3006924907348169212 - 0x94, 0x5e, 0x54, 0xd8, 0xc9, 0x1d, 0x6a, 0xe1, //0x0000ed40 .quad -2203916314889396588 - 0x7b, 0xd6, 0xf3, 0xfe, 0xd6, 0x6d, 0x29, 0xf4, //0x0000ed48 .quad -853029884242176389 - 0x1d, 0xbb, 0x34, 0x27, 0x9e, 0x52, 0xe2, 0x8c, //0x0000ed50 .quad -8294976724446954723 - 0x0d, 0x66, 0x58, 0x5f, 0xa6, 0xe4, 0x99, 0x18, //0x0000ed58 .quad 1772699331562333709 - 0xe4, 0xe9, 0x01, 0xb1, 0x45, 0xe7, 0x1a, 0xb0, //0x0000ed60 .quad -5757034887131305500 - 0x90, 0x7f, 0x2e, 0xf7, 0xcf, 0x5d, 0xc0, 0x5e, //0x0000ed68 .quad 6827560182880305040 - 0x5d, 0x64, 0x42, 0x1d, 0x17, 0xa1, 0x21, 0xdc, //0x0000ed70 .quad -2584607590486743971 - 0x74, 0x1f, 0xfa, 0xf4, 0x43, 0x75, 0x70, 0x76, //0x0000ed78 .quad 8534450228600381300 - 0xba, 0x7e, 0x49, 0x72, 0xae, 0x04, 0x95, 0x89, //0x0000ed80 .quad -8532908771695296838 - 0xa9, 0x53, 0x1c, 0x79, 0x4a, 0x49, 0x06, 0x6a, //0x0000ed88 .quad 7639874402088932265 - 0x69, 0xde, 0xdb, 0x0e, 0xda, 0x45, 0xfa, 0xab, //0x0000ed90 .quad -6054449946191733143 - 0x93, 0x68, 0x63, 0x17, 0x9d, 0xdb, 0x87, 0x04, //0x0000ed98 .quad 326470965756389523 - 0x03, 0xd6, 0x92, 0x92, 0x50, 0xd7, 0xf8, 0xd6, //0x0000eda0 .quad -2956376414312278525 - 0xb7, 0x42, 0x3c, 0x5d, 0x84, 0xd2, 0xa9, 0x45, //0x0000eda8 .quad 5019774725622874807 - 0xc2, 0xc5, 0x9b, 0x5b, 0x92, 0x86, 0x5b, 0x86, //0x0000edb0 .quad -8765264286586255934 - 0xb3, 0xa9, 0x45, 0xba, 0x92, 0x23, 0x8a, 0x0b, //0x0000edb8 .quad 831516194300602803 - 0x32, 0xb7, 0x82, 0xf2, 0x36, 0x68, 0xf2, 0xa7, //0x0000edc0 .quad -6344894339805432014 - 0x1f, 0x14, 0xd7, 0x68, 0x77, 0xac, 0x6c, 0x8e, //0x0000edc8 .quad -8183976793979022305 - 0xff, 0x64, 0x23, 0xaf, 0x44, 0x02, 0xef, 0xd1, //0x0000edd0 .quad -3319431906329402113 - 0x27, 0xd9, 0x0c, 0x43, 0x95, 0xd7, 0x07, 0x32, //0x0000edd8 .quad 3605087062808385831 - 0x1f, 0x1f, 0x76, 0xed, 0x6a, 0x61, 0x35, 0x83, //0x0000ede0 .quad -8992173969096958177 - 0xb9, 0x07, 0xe8, 0x49, 0xbd, 0xe6, 0x44, 0x7f, //0x0000ede8 .quad 9170708441896323001 - 0xe7, 0xa6, 0xd3, 0xa8, 0xc5, 0xb9, 0x02, 0xa4, //0x0000edf0 .quad -6628531442943809817 - 0xa7, 0x09, 0x62, 0x9c, 0x6c, 0x20, 0x16, 0x5f, //0x0000edf8 .quad 6851699533943015847 - 0xa1, 0x90, 0x08, 0x13, 0x37, 0x68, 0x03, 0xcd, //0x0000ee00 .quad -3673978285252374367 - 0x10, 0x8c, 0x7a, 0xc3, 0x87, 0xa8, 0xdb, 0x36, //0x0000ee08 .quad 3952938399001381904 - 0x64, 0x5a, 0xe5, 0x6b, 0x22, 0x21, 0x22, 0x80, //0x0000ee10 .quad -9213765455923815836 - 0x8a, 0x97, 0x2c, 0xda, 0x54, 0x49, 0x49, 0xc2, //0x0000ee18 .quad -4446942528265218166 - 0xfd, 0xb0, 0xde, 0x06, 0x6b, 0xa9, 0x2a, 0xa0, //0x0000ee20 .quad -6905520801477381891 - 0x6d, 0xbd, 0xb7, 0x10, 0xaa, 0x9b, 0xdb, 0xf2, //0x0000ee28 .quad -946992141904134803 - 0x3d, 0x5d, 0x96, 0xc8, 0xc5, 0x53, 0x35, 0xc8, //0x0000ee30 .quad -4020214983419339459 - 0xc8, 0xac, 0xe5, 0x94, 0x94, 0x82, 0x92, 0x6f, //0x0000ee38 .quad 8039631859474607304 - 0x8c, 0xf4, 0xbb, 0x3a, 0xb7, 0xa8, 0x42, 0xfa, //0x0000ee40 .quad -413582710846786420 - 0xfa, 0x17, 0x1f, 0xba, 0x39, 0x23, 0x77, 0xcb, //0x0000ee48 .quad -3785518230938904582 - 0xd7, 0x78, 0xb5, 0x84, 0x72, 0xa9, 0x69, 0x9c, //0x0000ee50 .quad -7176018221920323369 - 0xfc, 0x6e, 0x53, 0x14, 0x04, 0x76, 0x2a, 0xff, //0x0000ee58 .quad -60105885123121412 - 0x0d, 0xd7, 0xe2, 0x25, 0xcf, 0x13, 0x84, 0xc3, //0x0000ee60 .quad -4358336758973016307 - 0xbb, 0x4a, 0x68, 0x19, 0x85, 0x13, 0xf5, 0xfe, //0x0000ee68 .quad -75132356403901765 - 0xd1, 0x8c, 0x5b, 0xef, 0xc2, 0x18, 0x65, 0xf4, //0x0000ee70 .quad -836234930288882479 - 0x6a, 0x5d, 0xc2, 0x5f, 0x66, 0x58, 0xb2, 0x7e, //0x0000ee78 .quad 9129456591349898602 - 0x02, 0x38, 0x99, 0xd5, 0x79, 0x2f, 0xbf, 0x98, //0x0000ee80 .quad -7440175859071633406 - 0x62, 0x7a, 0xd9, 0xfb, 0x3f, 0x77, 0x2f, 0xef, //0x0000ee88 .quad -1211618658047395230 - 0x03, 0x86, 0xff, 0x4a, 0x58, 0xfb, 0xee, 0xbe, //0x0000ee90 .quad -4688533805412153853 - 0xfb, 0xd8, 0xcf, 0xfa, 0x0f, 0x55, 0xfb, 0xaa, //0x0000ee98 .quad -6126209340986631941 - 0x84, 0x67, 0xbf, 0x5d, 0x2e, 0xba, 0xaa, 0xee, //0x0000eea0 .quad -1248981238337804412 - 0x39, 0xcf, 0x83, 0xf9, 0x53, 0x2a, 0xba, 0x95, //0x0000eea8 .quad -7657761676233289927 - 0xb2, 0xa0, 0x97, 0xfa, 0x5c, 0xb4, 0x2a, 0x95, //0x0000eeb0 .quad -7698142301602209614 - 0x84, 0x61, 0xf2, 0x7b, 0x74, 0x5a, 0x94, 0xdd, //0x0000eeb8 .quad -2480258038432112252 - 0xdf, 0x88, 0x3d, 0x39, 0x74, 0x61, 0x75, 0xba, //0x0000eec0 .quad -5010991858575374113 - 0xe5, 0xf9, 0xee, 0x9a, 0x11, 0x71, 0xf9, 0x94, //0x0000eec8 .quad -7712008566467528219 - 0x17, 0xeb, 0x8c, 0x47, 0xd1, 0xb9, 0x12, 0xe9, //0x0000eed0 .quad -1652053804791829737 - 0x5e, 0xb8, 0xaa, 0x01, 0x56, 0xcd, 0x37, 0x7a, //0x0000eed8 .quad 8806733365625141342 - 0xee, 0x12, 0xb8, 0xcc, 0x22, 0xb4, 0xab, 0x91, //0x0000eee0 .quad -7950062655635975442 - 0x3b, 0xb3, 0x0a, 0xc1, 0x55, 0xe0, 0x62, 0xac, //0x0000eee8 .quad -6025006692552756421 - 0xaa, 0x17, 0xe6, 0x7f, 0x2b, 0xa1, 0x16, 0xb6, //0x0000eef0 .quad -5325892301117581398 - 0x0a, 0x60, 0x4d, 0x31, 0x6b, 0x98, 0x7b, 0x57, //0x0000eef8 .quad 6303799689591218186 - 0x94, 0x9d, 0xdf, 0x5f, 0x76, 0x49, 0x9c, 0xe3, //0x0000ef00 .quad -2045679357969588844 - 0x0c, 0xb8, 0xa0, 0xfd, 0x85, 0x7e, 0x5a, 0xed, //0x0000ef08 .quad -1343622424865753076 - 0x7d, 0xc2, 0xeb, 0xfb, 0xe9, 0xad, 0x41, 0x8e, //0x0000ef10 .quad -8196078626372074883 - 0x08, 0x73, 0x84, 0xbe, 0x13, 0x8f, 0x58, 0x14, //0x0000ef18 .quad 1466078993672598280 - 0x1c, 0xb3, 0xe6, 0x7a, 0x64, 0x19, 0xd2, 0xb1, //0x0000ef20 .quad -5633412264537705700 - 0xc9, 0x8f, 0x25, 0xae, 0xd8, 0xb2, 0x6e, 0x59, //0x0000ef28 .quad 6444284760518135753 - 0xe3, 0x5f, 0xa0, 0x99, 0xbd, 0x9f, 0x46, 0xde, //0x0000ef30 .quad -2430079312244744221 - 0xbc, 0xf3, 0xae, 0xd9, 0x8e, 0x5f, 0xca, 0x6f, //0x0000ef38 .quad 8055355950647669692 - 0xee, 0x3b, 0x04, 0x80, 0xd6, 0x23, 0xec, 0x8a, //0x0000ef40 .quad -8436328597794046994 - 0x55, 0x58, 0x0d, 0x48, 0xb9, 0x7b, 0xde, 0x25, //0x0000ef48 .quad 2728754459941099605 - 0xe9, 0x4a, 0x05, 0x20, 0xcc, 0x2c, 0xa7, 0xad, //0x0000ef50 .quad -5933724728815170839 - 0x6b, 0xae, 0x10, 0x9a, 0xa7, 0x1a, 0x56, 0xaf, //0x0000ef58 .quad -5812428961928401301 - 0xa4, 0x9d, 0x06, 0x28, 0xff, 0xf7, 0x10, 0xd9, //0x0000ef60 .quad -2805469892591575644 - 0x05, 0xda, 0x94, 0x80, 0x51, 0xa1, 0x2b, 0x1b, //0x0000ef68 .quad 1957835834444274181 - 0x86, 0x22, 0x04, 0x79, 0xff, 0x9a, 0xaa, 0x87, //0x0000ef70 .quad -8670947710510816634 - 0x43, 0x08, 0x5d, 0xf0, 0xd2, 0x44, 0xfb, 0x90, //0x0000ef78 .quad -7999724640327104445 - 0x28, 0x2b, 0x45, 0x57, 0xbf, 0x41, 0x95, 0xa9, //0x0000ef80 .quad -6226998619711132888 - 0x54, 0x4a, 0x74, 0xac, 0x07, 0x16, 0x3a, 0x35, //0x0000ef88 .quad 3835402254873283156 - 0xf2, 0x75, 0x16, 0x2d, 0x2f, 0x92, 0xfa, 0xd3, //0x0000ef90 .quad -3172062256211528206 - 0xe9, 0x5c, 0x91, 0x97, 0x89, 0x9b, 0x88, 0x42, //0x0000ef98 .quad 4794252818591603945 - 0xb7, 0x09, 0x2e, 0x7c, 0x5d, 0x9b, 0x7c, 0x84, //0x0000efa0 .quad -8900067937773286985 - 0x12, 0xda, 0xba, 0xfe, 0x35, 0x61, 0x95, 0x69, //0x0000efa8 .quad 7608094030047140370 - 0x25, 0x8c, 0x39, 0xdb, 0x34, 0xc2, 0x9b, 0xa5, //0x0000efb0 .quad -6513398903789220827 - 0x96, 0x90, 0x69, 0x7e, 0x83, 0xb9, 0xfa, 0x43, //0x0000efb8 .quad 4898431519131537558 - 0x2e, 0xef, 0x07, 0x12, 0xc2, 0xb2, 0x02, 0xcf, //0x0000efc0 .quad -3530062611309138130 - 0xbc, 0xf4, 0x03, 0x5e, 0xe4, 0x67, 0xf9, 0x94, //0x0000efc8 .quad -7712018656367741764 - 0x7d, 0xf5, 0x44, 0x4b, 0xb9, 0xaf, 0x61, 0x81, //0x0000efd0 .quad -9123818159709293187 - 0xf6, 0x78, 0xc2, 0xba, 0xee, 0xe0, 0x1b, 0x1d, //0x0000efd8 .quad 2097517367411243254 - 0xdc, 0x32, 0x16, 0x9e, 0xa7, 0x1b, 0xba, 0xa1, //0x0000efe0 .quad -6793086681209228580 - 0x33, 0x17, 0x73, 0x69, 0x2a, 0xd9, 0x62, 0x64, //0x0000efe8 .quad 7233582727691441971 - 0x93, 0xbf, 0x9b, 0x85, 0x91, 0xa2, 0x28, 0xca, //0x0000eff0 .quad -3879672333084147821 - 0xff, 0xdc, 0xcf, 0x03, 0x75, 0x8f, 0x7b, 0x7d, //0x0000eff8 .quad 9041978409614302463 - 0x78, 0xaf, 0x02, 0xe7, 0x35, 0xcb, 0xb2, 0xfc, //0x0000f000 .quad -237904397927796872 - 0x3f, 0xd4, 0xc3, 0x44, 0x52, 0x73, 0xda, 0x5c, //0x0000f008 .quad 6690786993590490175 - 0xab, 0xad, 0x61, 0xb0, 0x01, 0xbf, 0xef, 0x9d, //0x0000f010 .quad -7066219276345954901 - 0xa8, 0x64, 0xfa, 0x6a, 0x13, 0x88, 0x08, 0x3a, //0x0000f018 .quad 4181741870994056360 - 0x16, 0x19, 0x7a, 0x1c, 0xc2, 0xae, 0x6b, 0xc5, //0x0000f020 .quad -4221088077005055722 - 0xd1, 0xfd, 0xb8, 0x45, 0x18, 0xaa, 0x8a, 0x08, //0x0000f028 .quad 615491320315182545 - 0x5b, 0x9f, 0x98, 0xa3, 0x72, 0x9a, 0xc6, 0xf6, //0x0000f030 .quad -664674077828931749 - 0x46, 0x3d, 0x27, 0x57, 0x9e, 0x54, 0xad, 0x8a, //0x0000f038 .quad -8454007886460797626 - 0x99, 0x63, 0x3f, 0xa6, 0x87, 0x20, 0x3c, 0x9a, //0x0000f040 .quad -7332950326284164199 - 0x4c, 0x86, 0x78, 0xf6, 0xe2, 0x54, 0xac, 0x36, //0x0000f048 .quad 3939617107816777292 - 0x7f, 0x3c, 0xcf, 0x8f, 0xa9, 0x28, 0xcb, 0xc0, //0x0000f050 .quad -4554501889427817345 - 0xde, 0xa7, 0x16, 0xb4, 0x1b, 0x6a, 0x57, 0x84, //0x0000f058 .quad -8910536670511192098 - 0x9f, 0x0b, 0xc3, 0xf3, 0xd3, 0xf2, 0xfd, 0xf0, //0x0000f060 .quad -1081441343357383777 - 0xd6, 0x51, 0x1c, 0xa1, 0xa2, 0x44, 0x6d, 0x65, //0x0000f068 .quad 7308573235570561494 - 0x43, 0xe7, 0x59, 0x78, 0xc4, 0xb7, 0x9e, 0x96, //0x0000f070 .quad -7593429867239446717 - 0x26, 0xb3, 0xb1, 0xa4, 0xe5, 0x4a, 0x64, 0x9f, //0x0000f078 .quad -6961356773836868826 - 0x14, 0x61, 0x70, 0x96, 0xb5, 0x65, 0x46, 0xbc, //0x0000f080 .quad -4880101315621920492 - 0xef, 0x1f, 0xde, 0x0d, 0x9f, 0x5d, 0x3d, 0x87, //0x0000f088 .quad -8701695967296086033 - 0x59, 0x79, 0x0c, 0xfc, 0x22, 0xff, 0x57, 0xeb, //0x0000f090 .quad -1488440626100012711 - 0xeb, 0xa7, 0x55, 0xd1, 0x06, 0xb5, 0x0c, 0xa9, //0x0000f098 .quad -6265433940692719637 - 0xd8, 0xcb, 0x87, 0xdd, 0x75, 0xff, 0x16, 0x93, //0x0000f0a0 .quad -7847804418953589800 - 0xf3, 0x88, 0xd5, 0x42, 0x24, 0xf1, 0xa7, 0x09, //0x0000f0a8 .quad 695789805494438131 - 0xce, 0xbe, 0xe9, 0x54, 0x53, 0xbf, 0xdc, 0xb7, //0x0000f0b0 .quad -5198069505264599346 - 0x30, 0xeb, 0x8a, 0x53, 0x6d, 0xed, 0x11, 0x0c, //0x0000f0b8 .quad 869737256868047664 - 0x81, 0x2e, 0x24, 0x2a, 0x28, 0xef, 0xd3, 0xe5, //0x0000f0c0 .quad -1885900863153361279 - 0xfb, 0xa5, 0x6d, 0xa8, 0xc8, 0x68, 0x16, 0x8f, //0x0000f0c8 .quad -8136200465769716229 - 0x10, 0x9d, 0x56, 0x1a, 0x79, 0x75, 0xa4, 0x8f, //0x0000f0d0 .quad -8096217067111932656 - 0xbd, 0x87, 0x44, 0x69, 0x7d, 0x01, 0x6e, 0xf9, //0x0000f0d8 .quad -473439272678684739 - 0x55, 0x44, 0xec, 0x60, 0xd7, 0x92, 0x8d, 0xb3, //0x0000f0e0 .quad -5508585315462527915 - 0xad, 0xa9, 0x95, 0xc3, 0xdc, 0x81, 0xc9, 0x37, //0x0000f0e8 .quad 4019886927579031981 - 0x6a, 0x55, 0x27, 0x39, 0x8d, 0xf7, 0x70, 0xe0, //0x0000f0f0 .quad -2274045625900771990 - 0x18, 0x14, 0x7b, 0xf4, 0x53, 0xe2, 0xbb, 0x85, //0x0000f0f8 .quad -8810199395808373736 - 0x62, 0x95, 0xb8, 0x43, 0xb8, 0x9a, 0x46, 0x8c, //0x0000f100 .quad -8338807543829064350 - 0x8f, 0xec, 0xcc, 0x78, 0x74, 0x6d, 0x95, 0x93, //0x0000f108 .quad -7812217631593927537 - 0xbb, 0xba, 0xa6, 0x54, 0x66, 0x41, 0x58, 0xaf, //0x0000f110 .quad -5811823411358942533 - 0xb3, 0x27, 0x00, 0x97, 0xd1, 0xc8, 0x7a, 0x38, //0x0000f118 .quad 4069786015789754291 - 0x6a, 0x69, 0xd0, 0xe9, 0xbf, 0x51, 0x2e, 0xdb, //0x0000f120 .quad -2653093245771290262 - 0x9f, 0x31, 0xc0, 0xfc, 0x05, 0x7b, 0x99, 0x06, //0x0000f128 .quad 475546501309804959 - 0xe2, 0x41, 0x22, 0xf2, 0x17, 0xf3, 0xfc, 0x88, //0x0000f130 .quad -8575712306248138270 - 0x04, 0x1f, 0xf8, 0xbd, 0xe3, 0xec, 0x1f, 0x44, //0x0000f138 .quad 4908902581746016004 - 0x5a, 0xd2, 0xaa, 0xee, 0xdd, 0x2f, 0x3c, 0xab, //0x0000f140 .quad -6107954364382784934 - 0xc4, 0x26, 0x76, 0xad, 0x1c, 0xe8, 0x27, 0xd5, //0x0000f148 .quad -3087243809672255804 - 0xf1, 0x86, 0x55, 0x6a, 0xd5, 0x3b, 0x0b, 0xd6, //0x0000f150 .quad -3023256937051093263 - 0x75, 0xb0, 0xd3, 0xd8, 0x23, 0xe2, 0x71, 0x8a, //0x0000f158 .quad -8470740780517707659 - 0x56, 0x74, 0x75, 0x62, 0x65, 0x05, 0xc7, 0x85, //0x0000f160 .quad -8807064613298015146 - 0x4a, 0x4e, 0x84, 0x67, 0x56, 0x2d, 0x87, 0xf6, //0x0000f168 .quad -682526969396179382 - 0x6c, 0xd1, 0x12, 0xbb, 0xbe, 0xc6, 0x38, 0xa7, //0x0000f170 .quad -6397144748195131028 - 0xdc, 0x61, 0x65, 0x01, 0xac, 0xf8, 0x28, 0xb4, //0x0000f178 .quad -5464844730172612132 - 0xc7, 0x85, 0xd7, 0x69, 0x6e, 0xf8, 0x06, 0xd1, //0x0000f180 .quad -3384744916816525881 - 0x53, 0xba, 0xbe, 0x01, 0xd7, 0x36, 0x33, 0xe1, //0x0000f188 .quad -2219369894288377261 - 0x9c, 0xb3, 0x26, 0x02, 0x45, 0x5b, 0xa4, 0x82, //0x0000f190 .quad -9032994600651410532 - 0x74, 0x34, 0x17, 0x61, 0x46, 0x02, 0xc0, 0xec, //0x0000f198 .quad -1387106183930235788 - 0x84, 0x60, 0xb0, 0x42, 0x16, 0x72, 0x4d, 0xa3, //0x0000f1a0 .quad -6679557232386875260 - 0x91, 0x01, 0x5d, 0xf9, 0xd7, 0x02, 0xf0, 0x27, //0x0000f1a8 .quad 2877803288514593169 - 0xa5, 0x78, 0x5c, 0xd3, 0x9b, 0xce, 0x20, 0xcc, //0x0000f1b0 .quad -3737760522056206171 - 0xf5, 0x41, 0xb4, 0xf7, 0x8d, 0x03, 0xec, 0x31, //0x0000f1b8 .quad 3597254110643241461 - 0xce, 0x96, 0x33, 0xc8, 0x42, 0x02, 0x29, 0xff, //0x0000f1c0 .quad -60514634142869810 - 0x72, 0x52, 0xa1, 0x75, 0x71, 0x04, 0x67, 0x7e, //0x0000f1c8 .quad 9108253656731439730 - 0x41, 0x3e, 0x20, 0xbd, 0x69, 0xa1, 0x79, 0x9f, //0x0000f1d0 .quad -6955350673980375487 - 0x87, 0xd3, 0x84, 0xe9, 0xc6, 0x62, 0x00, 0x0f, //0x0000f1d8 .quad 1080972517029761927 - 0xd1, 0x4d, 0x68, 0x2c, 0xc4, 0x09, 0x58, 0xc7, //0x0000f1e0 .quad -4082502324048081455 - 0x69, 0x08, 0xe6, 0xa3, 0x78, 0x7b, 0xc0, 0x52, //0x0000f1e8 .quad 5962901664714590313 - 0x45, 0x61, 0x82, 0x37, 0x35, 0x0c, 0x2e, 0xf9, //0x0000f1f0 .quad -491441886632713915 - 0x83, 0x8a, 0xdf, 0xcc, 0x56, 0x9a, 0x70, 0xa7, //0x0000f1f8 .quad -6381430974388925821 - 0xcb, 0x7c, 0xb1, 0x42, 0xa1, 0xc7, 0xbc, 0x9b, //0x0000f200 .quad -7224680206786528053 - 0x92, 0xb6, 0x0b, 0x40, 0x76, 0x60, 0xa6, 0x88, //0x0000f208 .quad -8600080377420466542 - 0xfe, 0xdb, 0x5d, 0x93, 0x89, 0xf9, 0xab, 0xc2, //0x0000f210 .quad -4419164240055772162 - 0x36, 0xa4, 0x0e, 0xd0, 0x93, 0xf8, 0xcf, 0x6a, //0x0000f218 .quad 7696643601933968438 - 0xfe, 0x52, 0x35, 0xf8, 0xeb, 0xf7, 0x56, 0xf3, //0x0000f220 .quad -912269281642327298 - 0x44, 0x4d, 0x12, 0xc4, 0xb8, 0xf6, 0x83, 0x05, //0x0000f228 .quad 397432465562684740 - 0xde, 0x53, 0x21, 0x7b, 0xf3, 0x5a, 0x16, 0x98, //0x0000f230 .quad -7487697328667536418 - 0x4b, 0x70, 0x8b, 0x7a, 0x33, 0x7a, 0x72, 0xc3, //0x0000f238 .quad -4363290727450709941 - 0xd6, 0xa8, 0xe9, 0x59, 0xb0, 0xf1, 0x1b, 0xbe, //0x0000f240 .quad -4747935642407032618 - 0x5d, 0x4c, 0x2e, 0x59, 0xc0, 0x18, 0x4f, 0x74, //0x0000f248 .quad 8380944645968776285 - 0x0c, 0x13, 0x64, 0x70, 0x1c, 0xee, 0xa2, 0xed, //0x0000f250 .quad -1323233534581402868 - 0x74, 0xdf, 0x79, 0x6f, 0xf0, 0xde, 0x62, 0x11, //0x0000f258 .quad 1252808770606194548 - 0xe7, 0x8b, 0x3e, 0xc6, 0xd1, 0xd4, 0x85, 0x94, //0x0000f260 .quad -7744549986754458649 - 0xa9, 0x2b, 0xac, 0x45, 0x56, 0xcb, 0xdd, 0x8a, //0x0000f268 .quad -8440366555225904215 - 0xe1, 0x2e, 0xce, 0x37, 0x06, 0x4a, 0xa7, 0xb9, //0x0000f270 .quad -5069001465015685407 - 0x93, 0x36, 0x17, 0xd7, 0x2b, 0x3e, 0x95, 0x6d, //0x0000f278 .quad 7896285879677171347 - 0x99, 0xba, 0xc1, 0xc5, 0x87, 0x1c, 0x11, 0xe8, //0x0000f280 .quad -1724565812842218855 - 0x38, 0x04, 0xdd, 0xcc, 0xb6, 0x8d, 0xfa, 0xc8, //0x0000f288 .quad -3964700705685699528 - 0xa0, 0x14, 0x99, 0xdb, 0xd4, 0xb1, 0x0a, 0x91, //0x0000f290 .quad -7995382660667468640 - 0xa3, 0x22, 0x0a, 0x40, 0x92, 0x98, 0x9c, 0x1d, //0x0000f298 .quad 2133748077373825699 - 0xc8, 0x59, 0x7f, 0x12, 0x4a, 0x5e, 0x4d, 0xb5, //0x0000f2a0 .quad -5382542307406947896 - 0x4c, 0xab, 0x0c, 0xd0, 0xb6, 0xbe, 0x03, 0x25, //0x0000f2a8 .quad 2667185096717282124 - 0x3a, 0x30, 0x1f, 0x97, 0xdc, 0xb5, 0xa0, 0xe2, //0x0000f2b0 .quad -2116491865831296966 - 0x1e, 0xd6, 0x0f, 0x84, 0x64, 0xae, 0x44, 0x2e, //0x0000f2b8 .quad 3333981370896602654 - 0x24, 0x7e, 0x73, 0xde, 0xa9, 0x71, 0xa4, 0x8d, //0x0000f2c0 .quad -8240336443785642460 - 0xd3, 0xe5, 0x89, 0xd2, 0xfe, 0xec, 0xea, 0x5c, //0x0000f2c8 .quad 6695424375237764563 - 0xad, 0x5d, 0x10, 0x56, 0x14, 0x8e, 0x0d, 0xb1, //0x0000f2d0 .quad -5688734536304665171 - 0x48, 0x5f, 0x2c, 0x87, 0x3e, 0xa8, 0x25, 0x74, //0x0000f2d8 .quad 8369280469047205704 - 0x18, 0x75, 0x94, 0x6b, 0x99, 0xf1, 0x50, 0xdd, //0x0000f2e0 .quad -2499232151953443560 - 0x1a, 0x77, 0xf7, 0x28, 0x4e, 0x12, 0x2f, 0xd1, //0x0000f2e8 .quad -3373457468973156582 - 0x2f, 0xc9, 0x3c, 0xe3, 0xff, 0x96, 0x52, 0x8a, //0x0000f2f0 .quad -8479549122611984081 - 0x70, 0xaa, 0x9a, 0xd9, 0x70, 0x6b, 0xbd, 0x82, //0x0000f2f8 .quad -9025939945749304720 - 0x7b, 0xfb, 0x0b, 0xdc, 0xbf, 0x3c, 0xe7, 0xac, //0x0000f300 .quad -5987750384837592197 - 0x0c, 0x55, 0x01, 0x10, 0x4d, 0xc6, 0x6c, 0x63, //0x0000f308 .quad 7164319141522920716 - 0x5a, 0xfa, 0x0e, 0xd3, 0xef, 0x0b, 0x21, 0xd8, //0x0000f310 .quad -2873001962619602342 - 0x4f, 0xaa, 0x01, 0x54, 0xe0, 0xf7, 0x47, 0x3c, //0x0000f318 .quad 4343712908476262991 - 0x78, 0x5c, 0xe9, 0xe3, 0x75, 0xa7, 0x14, 0x87, //0x0000f320 .quad -8713155254278333320 - 0x72, 0x0a, 0x81, 0x34, 0xec, 0xfa, 0xac, 0x65, //0x0000f328 .quad 7326506586225052274 - 0x96, 0xb3, 0xe3, 0x5c, 0x53, 0xd1, 0xd9, 0xa8, //0x0000f330 .quad -6279758049420528746 - 0x0e, 0x4d, 0xa1, 0x41, 0xa7, 0x39, 0x18, 0x7f, //0x0000f338 .quad 9158133232781315342 - 0x7c, 0xa0, 0x1c, 0x34, 0xa8, 0x45, 0x10, 0xd3, //0x0000f340 .quad -3238011543348273028 - 0x51, 0xa0, 0x09, 0x12, 0x11, 0x48, 0xde, 0x1e, //0x0000f348 .quad 2224294504121868369 - 0x4d, 0xe4, 0x91, 0x20, 0x89, 0x2b, 0xea, 0x83, //0x0000f350 .quad -8941286242233752499 - 0x33, 0x04, 0x46, 0xab, 0x0a, 0xed, 0x4a, 0x93, //0x0000f358 .quad -7833187971778608077 - 0x60, 0x5d, 0xb6, 0x68, 0x6b, 0xb6, 0xe4, 0xa4, //0x0000f360 .quad -6564921784364802720 - 0x40, 0x85, 0x17, 0x56, 0x4d, 0xa8, 0x1d, 0xf8, //0x0000f368 .quad -568112927868484288 - 0xb9, 0xf4, 0xe3, 0x42, 0x06, 0xe4, 0x1d, 0xce, //0x0000f370 .quad -3594466212028615495 - 0x8f, 0x66, 0x9d, 0xab, 0x60, 0x12, 0x25, 0x36, //0x0000f378 .quad 3901544858591782543 - 0xf3, 0x78, 0xce, 0xe9, 0x83, 0xae, 0xd2, 0x80, //0x0000f380 .quad -9164070410158966541 - 0x1a, 0x60, 0x42, 0x6b, 0x7c, 0x2b, 0xd7, 0xc1, //0x0000f388 .quad -4479063491021217766 - 0x30, 0x17, 0x42, 0xe4, 0x24, 0x5a, 0x07, 0xa1, //0x0000f390 .quad -6843401994271320272 - 0x20, 0xf8, 0x12, 0x86, 0x5b, 0xf6, 0x4c, 0xb2, //0x0000f398 .quad -5598829363776522208 - 0xfc, 0x9c, 0x52, 0x1d, 0xae, 0x30, 0x49, 0xc9, //0x0000f3a0 .quad -3942566474411762436 - 0x28, 0xb6, 0x97, 0x67, 0xf2, 0x33, 0xe0, 0xde, //0x0000f3a8 .quad -2386850686293264856 - 0x3c, 0x44, 0xa7, 0xa4, 0xd9, 0x7c, 0x9b, 0xfb, //0x0000f3b0 .quad -316522074587315140 - 0xb2, 0xa3, 0x7d, 0x01, 0xef, 0x40, 0x98, 0x16, //0x0000f3b8 .quad 1628122660560806834 - 0xa5, 0x8a, 0xe8, 0x06, 0x08, 0x2e, 0x41, 0x9d, //0x0000f3c0 .quad -7115355324258153819 - 0x4f, 0x86, 0xee, 0x60, 0x95, 0x28, 0x1f, 0x8e, //0x0000f3c8 .quad -8205795374004271537 - 0x4e, 0xad, 0xa2, 0x08, 0x8a, 0x79, 0x91, 0xc4, //0x0000f3d0 .quad -4282508136895304370 - 0xe3, 0x27, 0x2a, 0xb9, 0xba, 0xf2, 0xa6, 0xf1, //0x0000f3d8 .quad -1033872180650563613 - 0xa2, 0x58, 0xcb, 0x8a, 0xec, 0xd7, 0xb5, 0xf5, //0x0000f3e0 .quad -741449152691742558 - 0xdc, 0xb1, 0x74, 0x67, 0x69, 0xaf, 0x10, 0xae, //0x0000f3e8 .quad -5904026244240592420 - 0x65, 0x17, 0xbf, 0xd6, 0xf3, 0xa6, 0x91, 0x99, //0x0000f3f0 .quad -7380934748073420955 - 0x2a, 0xef, 0xa8, 0xe0, 0xa1, 0x6d, 0xca, 0xac, //0x0000f3f8 .quad -5995859411864064214 - 0x3f, 0xdd, 0x6e, 0xcc, 0xb0, 0x10, 0xf6, 0xbf, //0x0000f400 .quad -4614482416664388289 - 0xf4, 0x2a, 0xd3, 0x58, 0x0a, 0x09, 0xfd, 0x17, //0x0000f408 .quad 1728547772024695540 - 0x8e, 0x94, 0x8a, 0xff, 0xdc, 0x94, 0xf3, 0xef, //0x0000f410 .quad -1156417002403097458 - 0xb1, 0xf5, 0x07, 0xef, 0x4c, 0x4b, 0xfc, 0xdd, //0x0000f418 .quad -2451001303396518479 - 0xd9, 0x9c, 0xb6, 0x1f, 0x0a, 0x3d, 0xf8, 0x95, //0x0000f420 .quad -7640289654143017767 - 0x8f, 0xf9, 0x64, 0x15, 0x10, 0xaf, 0xbd, 0x4a, //0x0000f428 .quad 5385653213018257807 - 0x0f, 0x44, 0xa4, 0xa7, 0x4c, 0x4c, 0x76, 0xbb, //0x0000f430 .quad -4938676049251384305 - 0xf2, 0x37, 0xbe, 0x1a, 0xd4, 0x1a, 0x6d, 0x9d, //0x0000f438 .quad -7102991539009341454 - 0x13, 0x55, 0x8d, 0xd1, 0x5f, 0xdf, 0x53, 0xea, //0x0000f440 .quad -1561659043136842477 - 0xee, 0xc5, 0x6d, 0x21, 0x89, 0x61, 0xc8, 0x84, //0x0000f448 .quad -8878739423761676818 - 0x2c, 0x55, 0xf8, 0xe2, 0x9b, 0x6b, 0x74, 0x92, //0x0000f450 .quad -7893565929601608404 - 0xb5, 0x9b, 0xe4, 0xb4, 0xf5, 0x3c, 0xfd, 0x32, //0x0000f458 .quad 3674159897003727797 - 0x77, 0x6a, 0xb6, 0xdb, 0x82, 0x86, 0x11, 0xb7, //0x0000f460 .quad -5255271393574622601 - 0xa2, 0xc2, 0x1d, 0x22, 0x33, 0x8c, 0xbc, 0x3f, //0x0000f468 .quad 4592699871254659746 - 0x15, 0x05, 0xa4, 0x92, 0x23, 0xe8, 0xd5, 0xe4, //0x0000f470 .quad -1957403223540890347 - 0x4b, 0x33, 0xa5, 0xea, 0x3f, 0xaf, 0xab, 0x0f, //0x0000f478 .quad 1129188820640936779 - 0x2d, 0x83, 0xa6, 0x3b, 0x16, 0xb1, 0x05, 0x8f, //0x0000f480 .quad -8140906042354138323 - 0x0f, 0x40, 0xa7, 0xf2, 0x87, 0x4d, 0xcb, 0x29, //0x0000f488 .quad 3011586022114279439 - 0xf8, 0x23, 0x90, 0xca, 0x5b, 0x1d, 0xc7, 0xb2, //0x0000f490 .quad -5564446534515285000 - 0x13, 0x10, 0x51, 0xef, 0xe9, 0x20, 0x3e, 0x74, //0x0000f498 .quad 8376168546070237203 - 0xf6, 0x2c, 0x34, 0xbd, 0xb2, 0xe4, 0x78, 0xdf, //0x0000f4a0 .quad -2343872149716718346 - 0x17, 0x54, 0x25, 0x6b, 0x24, 0xa9, 0x4d, 0x91, //0x0000f4a8 .quad -7976533391121755113 - 0x1a, 0x9c, 0x40, 0xb6, 0xef, 0x8e, 0xab, 0x8b, //0x0000f4b0 .quad -8382449121214030822 - 0x8f, 0x54, 0xf7, 0xc2, 0xb6, 0x89, 0xd0, 0x1a, //0x0000f4b8 .quad 1932195658189984911 - 0x20, 0xc3, 0xd0, 0xa3, 0xab, 0x72, 0x96, 0xae, //0x0000f4c0 .quad -5866375383090150624 - 0xb2, 0x29, 0xb5, 0x73, 0x24, 0xac, 0x84, 0xa1, //0x0000f4c8 .quad -6808127464117294670 - 0xe8, 0xf3, 0xc4, 0x8c, 0x56, 0x0f, 0x3c, 0xda, //0x0000f4d0 .quad -2721283210435300376 - 0x1f, 0x74, 0xa2, 0x90, 0x2d, 0xd7, 0xe5, 0xc9, //0x0000f4d8 .quad -3898473311719230433 - 0x71, 0x18, 0xfb, 0x17, 0x96, 0x89, 0x65, 0x88, //0x0000f4e0 .quad -8618331034163144591 - 0x93, 0x88, 0x65, 0x7a, 0x7c, 0xa6, 0x2f, 0x7e, //0x0000f4e8 .quad 9092669226243950739 - 0x8d, 0xde, 0xf9, 0x9d, 0xfb, 0xeb, 0x7e, 0xaa, //0x0000f4f0 .quad -6161227774276542835 - 0xb8, 0xea, 0xfe, 0x98, 0x1b, 0x90, 0xbb, 0xdd, //0x0000f4f8 .quad -2469221522477225288 - 0x31, 0x56, 0x78, 0x85, 0xfa, 0xa6, 0x1e, 0xd5, //0x0000f500 .quad -3089848699418290639 - 0x66, 0xa5, 0x3e, 0x7f, 0x22, 0x74, 0x2a, 0x55, //0x0000f508 .quad 6136845133758244198 - 0xde, 0x35, 0x6b, 0x93, 0x5c, 0x28, 0x33, 0x85, //0x0000f510 .quad -8848684464777513506 - 0x60, 0x27, 0x87, 0x8f, 0x95, 0x88, 0x3a, 0xd5, //0x0000f518 .quad -3082000819042179232 - 0x56, 0x03, 0x46, 0xb8, 0x73, 0xf2, 0x7f, 0xa6, //0x0000f520 .quad -6449169562544503978 - 0x38, 0xf1, 0x68, 0xf3, 0xba, 0x2a, 0x89, 0x8a, //0x0000f528 .quad -8464187042230111944 - 0x2c, 0x84, 0x57, 0xa6, 0x10, 0xef, 0x1f, 0xd0, //0x0000f530 .quad -3449775934753242068 - 0x86, 0x2d, 0x43, 0xb0, 0x69, 0x75, 0x2b, 0x2d, //0x0000f538 .quad 3254824252494523782 - 0x9b, 0xb2, 0xf6, 0x67, 0x6a, 0xf5, 0x13, 0x82, //0x0000f540 .quad -9073638986861858149 - 0x74, 0xfc, 0x29, 0x0e, 0x62, 0x29, 0x3b, 0x9c, //0x0000f548 .quad -7189106879045698444 - 0x42, 0x5f, 0xf4, 0x01, 0xc5, 0xf2, 0x98, 0xa2, //0x0000f550 .quad -6730362715149934782 - 0x90, 0x7b, 0xb4, 0x91, 0xba, 0xf3, 0x49, 0x83, //0x0000f558 .quad -8986383598807123056 - 0x13, 0x77, 0x71, 0x42, 0x76, 0x2f, 0x3f, 0xcb, //0x0000f560 .quad -3801267375510030573 - 0x74, 0x9a, 0x21, 0x36, 0xa9, 0x70, 0x1c, 0x24, //0x0000f568 .quad 2602078556773259892 - 0xd7, 0xd4, 0x0d, 0xd3, 0x53, 0xfb, 0x0e, 0xfe, //0x0000f570 .quad -139898200960150313 - 0x11, 0x01, 0xaa, 0x83, 0xd3, 0x8c, 0x23, 0xed, //0x0000f578 .quad -1359087822460813039 - 0x06, 0xa5, 0xe8, 0x63, 0x14, 0x5d, 0xc9, 0x9e, //0x0000f580 .quad -7004965403241175802 - 0xab, 0x40, 0x4a, 0x32, 0x04, 0x38, 0x36, 0xf4, //0x0000f588 .quad -849429889038008149 - 0x48, 0xce, 0xe2, 0x7c, 0x59, 0xb4, 0x7b, 0xc6, //0x0000f590 .quad -4144520735624081848 - 0xd6, 0xd0, 0xdc, 0x3e, 0x05, 0xc6, 0x43, 0xb1, //0x0000f598 .quad -5673473379724898090 - 0xda, 0x81, 0x1b, 0xdc, 0x6f, 0xa1, 0x1a, 0xf8, //0x0000f5a0 .quad -568964901102714406 - 0x0b, 0x05, 0x94, 0x8e, 0x86, 0xb7, 0x94, 0xdd, //0x0000f5a8 .quad -2480155706228734709 - 0x28, 0x31, 0x91, 0xe9, 0xe5, 0xa4, 0x10, 0x9b, //0x0000f5b0 .quad -7273132090830278360 - 0x27, 0x83, 0x1c, 0x19, 0xb4, 0xf2, 0x7c, 0xca, //0x0000f5b8 .quad -3855940325606653145 - 0x72, 0x7d, 0xf5, 0x63, 0x1f, 0xce, 0xd4, 0xc1, //0x0000f5c0 .quad -4479729095110460046 - 0xf1, 0xa3, 0x63, 0x1f, 0x61, 0x2f, 0x1c, 0xfd, //0x0000f5c8 .quad -208239388580928527 - 0xcf, 0xdc, 0xf2, 0x3c, 0xa7, 0x01, 0x4a, 0xf2, //0x0000f5d0 .quad -987975350460687153 - 0xed, 0x8c, 0x3c, 0x67, 0x39, 0x3b, 0x63, 0xbc, //0x0000f5d8 .quad -4871985254153548563 - 0x01, 0xca, 0x17, 0x86, 0x08, 0x41, 0x6e, 0x97, //0x0000f5e0 .quad -7535013621679011327 - 0x14, 0xd8, 0x85, 0xe0, 0x03, 0x05, 0xbe, 0xd5, //0x0000f5e8 .quad -3044990783845967852 - 0x82, 0xbc, 0x9d, 0xa7, 0x4a, 0xd1, 0x49, 0xbd, //0x0000f5f0 .quad -4807081008671376254 - 0x19, 0x4e, 0xa7, 0xd8, 0x44, 0x86, 0x2d, 0x4b, //0x0000f5f8 .quad 5417133557047315993 - 0xa2, 0x2b, 0x85, 0x51, 0x9d, 0x45, 0x9c, 0xec, //0x0000f600 .quad -1397165242411832414 - 0x9f, 0x21, 0xd1, 0x0e, 0xd6, 0xe7, 0xf8, 0xdd, //0x0000f608 .quad -2451955090545630817 - 0x45, 0x3b, 0xf3, 0x52, 0x82, 0xab, 0xe1, 0x93, //0x0000f610 .quad -7790757304148477115 - 0x04, 0xb5, 0x42, 0xc9, 0xe5, 0x90, 0xbb, 0xca, //0x0000f618 .quad -3838314940804713212 - 0x17, 0x0a, 0xb0, 0xe7, 0x62, 0x16, 0xda, 0xb8, //0x0000f620 .quad -5126760611758208489 - 0x44, 0x62, 0x93, 0x3b, 0x1f, 0x75, 0x6a, 0x3d, //0x0000f628 .quad 4425478360848884292 - 0x9d, 0x0c, 0x9c, 0xa1, 0xfb, 0x9b, 0x10, 0xe7, //0x0000f630 .quad -1796764746270372707 - 0xd5, 0x3a, 0x78, 0x0a, 0x67, 0x12, 0xc5, 0x0c, //0x0000f638 .quad 920161932633717461 - 0xe2, 0x87, 0x01, 0x45, 0x7d, 0x61, 0x6a, 0x90, //0x0000f640 .quad -8040506994060064798 - 0xc6, 0x24, 0x8b, 0x66, 0x80, 0x2b, 0xfb, 0x27, //0x0000f648 .quad 2880944217109767366 - 0xda, 0xe9, 0x41, 0x96, 0xdc, 0xf9, 0x84, 0xb4, //0x0000f650 .quad -5438947724147693094 - 0xf7, 0xed, 0x2d, 0x80, 0x60, 0xf6, 0xf9, 0xb1, //0x0000f658 .quad -5622191765467566601 - 0x51, 0x64, 0xd2, 0xbb, 0x53, 0x38, 0xa6, 0xe1, //0x0000f660 .quad -2186998636757228463 - 0x74, 0x69, 0x39, 0xa0, 0xf8, 0x73, 0x78, 0x5e, //0x0000f668 .quad 6807318348447705460 - 0xb2, 0x7e, 0x63, 0x55, 0x34, 0xe3, 0x07, 0x8d, //0x0000f670 .quad -8284403175614349646 - 0xe9, 0xe1, 0x23, 0x64, 0x7b, 0x48, 0x0b, 0xdb, //0x0000f678 .quad -2662955059861265943 - 0x5f, 0x5e, 0xbc, 0x6a, 0x01, 0xdc, 0x49, 0xb0, //0x0000f680 .quad -5743817951090549153 - 0x63, 0xda, 0x2c, 0x3d, 0x9a, 0x1a, 0xce, 0x91, //0x0000f688 .quad -7940379843253970333 - 0xf7, 0x75, 0x6b, 0xc5, 0x01, 0x53, 0x5c, 0xdc, //0x0000f690 .quad -2568086420435798537 - 0xfc, 0x10, 0x78, 0xcc, 0x40, 0xa1, 0x41, 0x76, //0x0000f698 .quad 8521269269642088700 - 0xba, 0x29, 0x63, 0x1b, 0xe1, 0xb3, 0xb9, 0x89, //0x0000f6a0 .quad -8522583040413455942 - 0x9e, 0x0a, 0xcb, 0x7f, 0xc8, 0x04, 0xe9, 0xa9, //0x0000f6a8 .quad -6203421752542164322 - 0x29, 0xf4, 0x3b, 0x62, 0xd9, 0x20, 0x28, 0xac, //0x0000f6b0 .quad -6041542782089432023 - 0x45, 0xcd, 0xbd, 0x9f, 0xfa, 0x45, 0x63, 0x54, //0x0000f6b8 .quad 6080780864604458309 - 0x33, 0xf1, 0xca, 0xba, 0x0f, 0x29, 0x32, 0xd7, //0x0000f6c0 .quad -2940242459184402125 - 0x96, 0x40, 0xad, 0x47, 0x79, 0x17, 0x7c, 0xa9, //0x0000f6c8 .quad -6234081974526590826 - 0xc0, 0xd6, 0xbe, 0xd4, 0xa9, 0x59, 0x7f, 0x86, //0x0000f6d0 .quad -8755180564631333184 - 0x5e, 0x48, 0xcc, 0xcc, 0xab, 0x8e, 0xed, 0x49, //0x0000f6d8 .quad 5327070802775656542 - 0x70, 0x8c, 0xee, 0x49, 0x14, 0x30, 0x1f, 0xa8, //0x0000f6e0 .quad -6332289687361778576 - 0x75, 0x5a, 0xff, 0xbf, 0x56, 0xf2, 0x68, 0x5c, //0x0000f6e8 .quad 6658838503469570677 - 0x8c, 0x2f, 0x6a, 0x5c, 0x19, 0xfc, 0x26, 0xd2, //0x0000f6f0 .quad -3303676090774835316 - 0x12, 0x31, 0xff, 0x6f, 0xec, 0x2e, 0x83, 0x73, //0x0000f6f8 .quad 8323548129336963346 - 0xb7, 0x5d, 0xc2, 0xd9, 0x8f, 0x5d, 0x58, 0x83, //0x0000f700 .quad -8982326584375353929 - 0xac, 0x7e, 0xff, 0xc5, 0x53, 0xfd, 0x31, 0xc8, //0x0000f708 .quad -4021154456019173716 - 0x25, 0xf5, 0x32, 0xd0, 0xf3, 0x74, 0x2e, 0xa4, //0x0000f710 .quad -6616222212041804507 - 0x56, 0x5e, 0x7f, 0xb7, 0xa8, 0x7c, 0x3e, 0xba, //0x0000f718 .quad -5026443070023967146 - 0x6f, 0xb2, 0x3f, 0xc4, 0x30, 0x12, 0x3a, 0xcd, //0x0000f720 .quad -3658591746624867729 - 0xec, 0x35, 0x5f, 0xe5, 0xd2, 0x1b, 0xce, 0x28, //0x0000f728 .quad 2940318199324816876 - 0x85, 0xcf, 0xa7, 0x7a, 0x5e, 0x4b, 0x44, 0x80, //0x0000f730 .quad -9204148869281624187 - 0xb4, 0x81, 0x5b, 0xcf, 0x63, 0xd1, 0x80, 0x79, //0x0000f738 .quad 8755227902219092404 - 0x66, 0xc3, 0x51, 0x19, 0x36, 0x5e, 0x55, 0xa0, //0x0000f740 .quad -6893500068174642330 - 0x20, 0x62, 0x32, 0xc3, 0xbc, 0x05, 0xe1, 0xd7, //0x0000f748 .quad -2891023177508298208 - 0x40, 0x34, 0xa6, 0x9f, 0xc3, 0xb5, 0x6a, 0xc8, //0x0000f750 .quad -4005189066790915008 - 0xa8, 0xfa, 0xfe, 0xf3, 0x2b, 0x47, 0xd9, 0x8d, //0x0000f758 .quad -8225464990312760664 - 0x50, 0xc1, 0x8f, 0x87, 0x34, 0x63, 0x85, 0xfa, //0x0000f760 .quad -394800315061255856 - 0x52, 0xb9, 0xfe, 0xf0, 0xf6, 0x98, 0x4f, 0xb1, //0x0000f768 .quad -5670145219463562926 - 0xd2, 0xd8, 0xb9, 0xd4, 0x00, 0x5e, 0x93, 0x9c, //0x0000f770 .quad -7164279224554366766 - 0xd4, 0x33, 0x9f, 0x56, 0x9a, 0xbf, 0xd1, 0x6e, //0x0000f778 .quad 7985374283903742932 - 0x07, 0x4f, 0xe8, 0x09, 0x81, 0x35, 0xb8, 0xc3, //0x0000f780 .quad -4343663012265570553 - 0xc9, 0x00, 0x47, 0xec, 0x80, 0x2f, 0x86, 0x0a, //0x0000f788 .quad 758345818024902857 - 0xc8, 0x62, 0x62, 0x4c, 0xe1, 0x42, 0xa6, 0xf4, //0x0000f790 .quad -817892746904575288 - 0xfb, 0xc0, 0x58, 0x27, 0x61, 0xbb, 0x27, 0xcd, //0x0000f798 .quad -3663753745896259333 - 0xbd, 0x7d, 0xbd, 0xcf, 0xcc, 0xe9, 0xe7, 0x98, //0x0000f7a0 .quad -7428711994456441411 - 0x9d, 0x78, 0x97, 0xb8, 0x1c, 0xd5, 0x38, 0x80, //0x0000f7a8 .quad -9207375118826243939 - 0x2c, 0xdd, 0xac, 0x03, 0x40, 0xe4, 0x21, 0xbf, //0x0000f7b0 .quad -4674203974643163860 - 0xc4, 0x56, 0xbd, 0xe6, 0x63, 0x0a, 0x47, 0xe0, //0x0000f7b8 .quad -2285846861678029116 - 0x78, 0x14, 0x98, 0x04, 0x50, 0x5d, 0xea, 0xee, //0x0000f7c0 .quad -1231068949876566920 - 0x75, 0xac, 0x6c, 0xe0, 0xfc, 0xcc, 0x58, 0x18, //0x0000f7c8 .quad 1754377441329851509 - 0xcb, 0x0c, 0xdf, 0x02, 0x52, 0x7a, 0x52, 0x95, //0x0000f7d0 .quad -7686947121313936181 - 0xc9, 0xeb, 0x43, 0x0c, 0x1e, 0x80, 0x37, 0x0f, //0x0000f7d8 .quad 1096485900831157193 - 0xfd, 0xcf, 0x96, 0x83, 0xe6, 0x18, 0xa7, 0xba, //0x0000f7e0 .quad -4996997883215032323 - 0xbb, 0xe6, 0x54, 0x8f, 0x25, 0x60, 0x05, 0xd3, //0x0000f7e8 .quad -3241078642388441413 - 0xfd, 0x83, 0x7c, 0x24, 0x20, 0xdf, 0x50, 0xe9, //0x0000f7f0 .quad -1634561335591402499 - 0x6a, 0x20, 0x2a, 0xf3, 0x2e, 0xb8, 0xc6, 0x47, //0x0000f7f8 .quad 5172023733869224042 - 0x7e, 0xd2, 0xcd, 0x16, 0x74, 0x8b, 0xd2, 0x91, //0x0000f800 .quad -7939129862385708418 - 0x42, 0x54, 0xfa, 0x57, 0x1d, 0x33, 0xdc, 0x4c, //0x0000f808 .quad 5538357842881958978 - 0x1d, 0x47, 0x81, 0x1c, 0x51, 0x2e, 0x47, 0xb6, //0x0000f810 .quad -5312226309554747619 - 0x53, 0xe9, 0xf8, 0xad, 0xe4, 0x3f, 0x13, 0xe0, //0x0000f818 .quad -2300424733252327085 - 0xe5, 0x98, 0xa1, 0x63, 0xe5, 0xf9, 0xd8, 0xe3, //0x0000f820 .quad -2028596868516046619 - 0xa7, 0x23, 0x77, 0xd9, 0xdd, 0x0f, 0x18, 0x58, //0x0000f828 .quad 6347841120289366951 - 0x8f, 0xff, 0x44, 0x5e, 0x2f, 0x9c, 0x67, 0x8e, //0x0000f830 .quad -8185402070463610993 - 0x49, 0x76, 0xea, 0xa7, 0xea, 0x09, 0x0f, 0x57, //0x0000f838 .quad 6273243709394548297 - 0x73, 0x3f, 0xd6, 0x35, 0x3b, 0x83, 0x01, 0xb2, //0x0000f840 .quad -5620066569652125837 - 0xdb, 0x13, 0xe5, 0x51, 0x65, 0xcc, 0xd2, 0x2c, //0x0000f848 .quad 3229868618315797467 - 0x4f, 0xcf, 0x4b, 0x03, 0x0a, 0xe4, 0x81, 0xde, //0x0000f850 .quad -2413397193637769393 - 0xd2, 0x58, 0x5e, 0xa6, 0x7e, 0x7f, 0x07, 0xf8, //0x0000f858 .quad -574350245532641070 - 0x91, 0x61, 0x0f, 0x42, 0x86, 0x2e, 0x11, 0x8b, //0x0000f860 .quad -8425902273664687727 - 0x83, 0xf7, 0xfa, 0x27, 0xaf, 0xaf, 0x04, 0xfb, //0x0000f868 .quad -358968903457900669 - 0xf6, 0x39, 0x93, 0xd2, 0x27, 0x7a, 0xd5, 0xad, //0x0000f870 .quad -5920691823653471754 - 0x64, 0xb5, 0xf9, 0xf1, 0x9a, 0xdb, 0xc5, 0x79, //0x0000f878 .quad 8774660907532399972 - 0x74, 0x08, 0x38, 0xc7, 0xb1, 0xd8, 0x4a, 0xd9, //0x0000f880 .quad -2789178761139451788 - 0xbd, 0x22, 0x78, 0xae, 0x81, 0x52, 0x37, 0x18, //0x0000f888 .quad 1744954097560724157 - 0x48, 0x05, 0x83, 0x1c, 0x6f, 0xc7, 0xce, 0x87, //0x0000f890 .quad -8660765753353239224 - 0xb6, 0x15, 0x0b, 0x0d, 0x91, 0x93, 0x22, 0x8f, //0x0000f898 .quad -8132775725879323210 - 0x9a, 0xc6, 0xa3, 0xe3, 0x4a, 0x79, 0xc2, 0xa9, //0x0000f8a0 .quad -6214271173264161126 - 0x23, 0xdb, 0x4d, 0x50, 0x75, 0x38, 0xeb, 0xb2, //0x0000f8a8 .quad -5554283638921766109 - 0x41, 0xb8, 0x8c, 0x9c, 0x9d, 0x17, 0x33, 0xd4, //0x0000f8b0 .quad -3156152948152813503 - 0xec, 0x51, 0x61, 0xa4, 0x92, 0x06, 0xa6, 0x5f, //0x0000f8b8 .quad 6892203506629956076 - 0x28, 0xf3, 0xd7, 0x81, 0xc2, 0xee, 0x9f, 0x84, //0x0000f8c0 .quad -8890124620236590296 - 0x34, 0xd3, 0xbc, 0xa6, 0x1b, 0xc4, 0xc7, 0xdb, //0x0000f8c8 .quad -2609901835997359308 - 0xf3, 0xef, 0x4d, 0x22, 0x73, 0xea, 0xc7, 0xa5, //0x0000f8d0 .quad -6500969756868349965 - 0x01, 0x08, 0x6c, 0x90, 0x22, 0xb5, 0xb9, 0x12, //0x0000f8d8 .quad 1349308723430688769 - 0xef, 0x6b, 0xe1, 0xea, 0x0f, 0xe5, 0x39, 0xcf, //0x0000f8e0 .quad -3514526177658049553 - 0x01, 0x0a, 0x87, 0x34, 0x6b, 0x22, 0x68, 0xd7, //0x0000f8e8 .quad -2925050114139026943 - 0x75, 0xe3, 0xcc, 0xf2, 0x29, 0x2f, 0x84, 0x81, //0x0000f8f0 .quad -9114107888677362827 - 0x41, 0x66, 0xd4, 0x00, 0x83, 0x15, 0xa1, 0xe6, //0x0000f8f8 .quad -1828156321336891839 - 0x53, 0x1c, 0x80, 0x6f, 0xf4, 0x3a, 0xe5, 0xa1, //0x0000f900 .quad -6780948842419315629 - 0xd1, 0x7f, 0x09, 0xc1, 0xe3, 0x5a, 0x49, 0x60, //0x0000f908 .quad 6938176635183661009 - 0x68, 0x23, 0x60, 0x8b, 0xb1, 0x89, 0x5e, 0xca, //0x0000f910 .quad -3864500034596756632 - 0xc5, 0xdf, 0x4b, 0xb1, 0x9c, 0xb1, 0x5b, 0x38, //0x0000f918 .quad 4061034775552188357 - 0x42, 0x2c, 0x38, 0xee, 0x1d, 0x2c, 0xf6, 0xfc, //0x0000f920 .quad -218939024818557886 - 0xb6, 0xd7, 0x9e, 0xdd, 0x03, 0x9e, 0x72, 0x46, //0x0000f928 .quad 5076293469440235446 - 0xa9, 0x1b, 0xe3, 0xb4, 0x92, 0xdb, 0x19, 0x9e, //0x0000f930 .quad -7054365918152680535 - 0xd2, 0x46, 0x83, 0x6a, 0xc2, 0xa2, 0x07, 0x6c, //0x0000f938 .quad 7784369436827535058 - //0x0000f940 .p2align 4, 0x00 - //0x0000f940 _VecShiftShuffles - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, //0x0000f940 QUAD $0x0706050403020100; QUAD $0x0f0e0d0c0b0a0908 // .ascii 16, '\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f' - 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, //0x0000f950 QUAD $0x0807060504030201; QUAD $0xff0f0e0d0c0b0a09 // .ascii 16, '\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff' - 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, //0x0000f960 QUAD $0x0908070605040302; QUAD $0xffff0f0e0d0c0b0a // .ascii 16, '\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff' - 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, //0x0000f970 QUAD $0x0a09080706050403; QUAD $0xffffff0f0e0d0c0b // .ascii 16, '\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff' - 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, //0x0000f980 QUAD $0x0b0a090807060504; QUAD $0xffffffff0f0e0d0c // .ascii 16, '\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff' - 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, //0x0000f990 QUAD $0x0c0b0a0908070605; QUAD $0xffffffffff0f0e0d // .ascii 16, '\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff' - 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x0000f9a0 QUAD $0x0d0c0b0a09080706; QUAD $0xffffffffffff0f0e // .ascii 16, '\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff\xff' - 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x0000f9b0 QUAD $0x0e0d0c0b0a090807; QUAD $0xffffffffffffff0f // .ascii 16, '\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff\xff\xff' - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x0000f9c0 QUAD $0x0f0e0d0c0b0a0908; QUAD $0xffffffffffffffff // .ascii 16, '\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff\xff\xff\xff' - //0x0000f9d0 .p2align 4, 0x00 - //0x0000f9d0 __SingleQuoteTab - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f9d0 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x30, 0x30, 0x00, 0x00, //0x0000f9d8 QUAD $0x000030303030755c // .asciz 8, '\\u0000\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f9e0 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x30, 0x31, 0x00, 0x00, //0x0000f9e8 QUAD $0x000031303030755c // .asciz 8, '\\u0001\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f9f0 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x30, 0x32, 0x00, 0x00, //0x0000f9f8 QUAD $0x000032303030755c // .asciz 8, '\\u0002\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fa00 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x30, 0x33, 0x00, 0x00, //0x0000fa08 QUAD $0x000033303030755c // .asciz 8, '\\u0003\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fa10 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x30, 0x34, 0x00, 0x00, //0x0000fa18 QUAD $0x000034303030755c // .asciz 8, '\\u0004\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fa20 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x30, 0x35, 0x00, 0x00, //0x0000fa28 QUAD $0x000035303030755c // .asciz 8, '\\u0005\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fa30 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x30, 0x36, 0x00, 0x00, //0x0000fa38 QUAD $0x000036303030755c // .asciz 8, '\\u0006\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fa40 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x30, 0x37, 0x00, 0x00, //0x0000fa48 QUAD $0x000037303030755c // .asciz 8, '\\u0007\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fa50 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x30, 0x38, 0x00, 0x00, //0x0000fa58 QUAD $0x000038303030755c // .asciz 8, '\\u0008\x00\x00' - 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fa60 .quad 2 - 0x5c, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fa68 QUAD $0x000000000000745c // .asciz 8, '\\t\x00\x00\x00\x00\x00\x00' - 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fa70 .quad 2 - 0x5c, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fa78 QUAD $0x0000000000006e5c // .asciz 8, '\\n\x00\x00\x00\x00\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fa80 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x30, 0x62, 0x00, 0x00, //0x0000fa88 QUAD $0x000062303030755c // .asciz 8, '\\u000b\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fa90 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x30, 0x63, 0x00, 0x00, //0x0000fa98 QUAD $0x000063303030755c // .asciz 8, '\\u000c\x00\x00' - 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000faa0 .quad 2 - 0x5c, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000faa8 QUAD $0x000000000000725c // .asciz 8, '\\r\x00\x00\x00\x00\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fab0 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x30, 0x65, 0x00, 0x00, //0x0000fab8 QUAD $0x000065303030755c // .asciz 8, '\\u000e\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fac0 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x30, 0x66, 0x00, 0x00, //0x0000fac8 QUAD $0x000066303030755c // .asciz 8, '\\u000f\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fad0 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x31, 0x30, 0x00, 0x00, //0x0000fad8 QUAD $0x000030313030755c // .asciz 8, '\\u0010\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fae0 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x31, 0x31, 0x00, 0x00, //0x0000fae8 QUAD $0x000031313030755c // .asciz 8, '\\u0011\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000faf0 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x31, 0x32, 0x00, 0x00, //0x0000faf8 QUAD $0x000032313030755c // .asciz 8, '\\u0012\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fb00 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x31, 0x33, 0x00, 0x00, //0x0000fb08 QUAD $0x000033313030755c // .asciz 8, '\\u0013\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fb10 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x31, 0x34, 0x00, 0x00, //0x0000fb18 QUAD $0x000034313030755c // .asciz 8, '\\u0014\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fb20 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x31, 0x35, 0x00, 0x00, //0x0000fb28 QUAD $0x000035313030755c // .asciz 8, '\\u0015\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fb30 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x31, 0x36, 0x00, 0x00, //0x0000fb38 QUAD $0x000036313030755c // .asciz 8, '\\u0016\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fb40 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x31, 0x37, 0x00, 0x00, //0x0000fb48 QUAD $0x000037313030755c // .asciz 8, '\\u0017\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fb50 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x31, 0x38, 0x00, 0x00, //0x0000fb58 QUAD $0x000038313030755c // .asciz 8, '\\u0018\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fb60 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x31, 0x39, 0x00, 0x00, //0x0000fb68 QUAD $0x000039313030755c // .asciz 8, '\\u0019\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fb70 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x31, 0x61, 0x00, 0x00, //0x0000fb78 QUAD $0x000061313030755c // .asciz 8, '\\u001a\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fb80 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x31, 0x62, 0x00, 0x00, //0x0000fb88 QUAD $0x000062313030755c // .asciz 8, '\\u001b\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fb90 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x31, 0x63, 0x00, 0x00, //0x0000fb98 QUAD $0x000063313030755c // .asciz 8, '\\u001c\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fba0 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x31, 0x64, 0x00, 0x00, //0x0000fba8 QUAD $0x000064313030755c // .asciz 8, '\\u001d\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fbb0 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x31, 0x65, 0x00, 0x00, //0x0000fbb8 QUAD $0x000065313030755c // .asciz 8, '\\u001e\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fbc0 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x31, 0x66, 0x00, 0x00, //0x0000fbc8 QUAD $0x000066313030755c // .asciz 8, '\\u001f\x00\x00' + 0x31, 0xdb, //0x00008849 xorl %ebx, %ebx + 0x83, 0xf8, 0x01, //0x0000884b cmpl $1, %eax + 0x0f, 0x97, 0xc3, //0x0000884e seta %bl + 0x41, 0xd3, 0xe2, //0x00008851 shll %cl, %r10d + 0x09, 0xd3, //0x00008854 orl %edx, %ebx + 0x4c, 0x89, 0xd0, //0x00008856 movq %r10, %rax + 0x49, 0xf7, 0xe4, //0x00008859 mulq %r12 + 0x49, 0x89, 0xd2, //0x0000885c movq %rdx, %r10 + 0x48, 0xc1, 0xe8, 0x20, //0x0000885f shrq $32, %rax + 0x45, 0x31, 0xff, //0x00008863 xorl %r15d, %r15d + 0x83, 0xf8, 0x01, //0x00008866 cmpl $1, %eax + 0x41, 0x0f, 0x97, 0xc7, //0x00008869 seta %r15b + 0x8d, 0x04, 0xb5, 0x02, 0x00, 0x00, 0x00, //0x0000886d leal $2(,%rsi,4), %eax + 0xd3, 0xe0, //0x00008874 shll %cl, %eax + 0x45, 0x09, 0xd7, //0x00008876 orl %r10d, %r15d + 0x49, 0xf7, 0xe4, //0x00008879 mulq %r12 + 0x48, 0xc1, 0xe8, 0x20, //0x0000887c shrq $32, %rax + 0x31, 0xc9, //0x00008880 xorl %ecx, %ecx + 0x83, 0xf8, 0x01, //0x00008882 cmpl $1, %eax + 0x0f, 0x97, 0xc1, //0x00008885 seta %cl + 0x09, 0xd1, //0x00008888 orl %edx, %ecx + 0x44, 0x01, 0xf3, //0x0000888a addl %r14d, %ebx + 0x44, 0x29, 0xf1, //0x0000888d subl %r14d, %ecx + 0x41, 0x83, 0xff, 0x28, //0x00008890 cmpl $40, %r15d + 0x0f, 0x82, 0x9a, 0x00, 0x00, 0x00, //0x00008894 jb LBB32_12 + 0x44, 0x89, 0xd2, //0x0000889a movl %r10d, %edx + 0xb8, 0xcd, 0xcc, 0xcc, 0xcc, //0x0000889d movl $3435973837, %eax + 0x48, 0x0f, 0xaf, 0xc2, //0x000088a2 imulq %rdx, %rax + 0x48, 0xc1, 0xe8, 0x25, //0x000088a6 shrq $37, %rax + 0x41, 0x89, 0xde, //0x000088aa movl %ebx, %r14d + 0x48, 0x8d, 0x34, 0xc5, 0x00, 0x00, 0x00, 0x00, //0x000088ad leaq (,%rax,8), %rsi + 0x48, 0x8d, 0x14, 0xb6, //0x000088b5 leaq (%rsi,%rsi,4), %rdx + 0x4c, 0x39, 0xf2, //0x000088b9 cmpq %r14, %rdx + 0x41, 0x0f, 0x93, 0xc4, //0x000088bc setae %r12b + 0x4c, 0x8d, 0x74, 0xb6, 0x28, //0x000088c0 leaq $40(%rsi,%rsi,4), %r14 + 0x89, 0xce, //0x000088c5 movl %ecx, %esi + 0x49, 0x39, 0xf6, //0x000088c7 cmpq %rsi, %r14 + 0x0f, 0x96, 0xc2, //0x000088ca setbe %dl + 0x41, 0x38, 0xd4, //0x000088cd cmpb %dl, %r12b + 0x0f, 0x84, 0x5e, 0x00, 0x00, 0x00, //0x000088d0 je LBB32_12 + 0x45, 0x31, 0xed, //0x000088d6 xorl %r13d, %r13d + 0x49, 0x39, 0xf6, //0x000088d9 cmpq %rsi, %r14 + 0x41, 0x0f, 0x96, 0xc5, //0x000088dc setbe %r13b + 0x41, 0x01, 0xc5, //0x000088e0 addl %eax, %r13d + 0x41, 0xff, 0xc3, //0x000088e3 incl %r11d + 0x41, 0x81, 0xfd, 0xa0, 0x86, 0x01, 0x00, //0x000088e6 cmpl $100000, %r13d + 0x0f, 0x83, 0xb0, 0x00, 0x00, 0x00, //0x000088ed jae LBB32_18 + //0x000088f3 LBB32_8 + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x000088f3 movl $1, %eax + 0x41, 0x83, 0xfd, 0x0a, //0x000088f8 cmpl $10, %r13d + 0x0f, 0x82, 0xd4, 0x00, 0x00, 0x00, //0x000088fc jb LBB32_22 + 0xb8, 0x02, 0x00, 0x00, 0x00, //0x00008902 movl $2, %eax + 0x41, 0x83, 0xfd, 0x64, //0x00008907 cmpl $100, %r13d + 0x0f, 0x82, 0xc5, 0x00, 0x00, 0x00, //0x0000890b jb LBB32_22 + 0xb8, 0x03, 0x00, 0x00, 0x00, //0x00008911 movl $3, %eax + 0x41, 0x81, 0xfd, 0xe8, 0x03, 0x00, 0x00, //0x00008916 cmpl $1000, %r13d + 0x0f, 0x82, 0xb3, 0x00, 0x00, 0x00, //0x0000891d jb LBB32_22 + 0x41, 0x81, 0xfd, 0x10, 0x27, 0x00, 0x00, //0x00008923 cmpl $10000, %r13d + 0xb8, 0x05, 0x00, 0x00, 0x00, //0x0000892a movl $5, %eax + 0xe9, 0x9f, 0x00, 0x00, 0x00, //0x0000892f jmp LBB32_21 + //0x00008934 LBB32_12 + 0x4d, 0x89, 0xd6, //0x00008934 movq %r10, %r14 + 0x49, 0xc1, 0xee, 0x02, //0x00008937 shrq $2, %r14 + 0x44, 0x89, 0xd6, //0x0000893b movl %r10d, %esi + 0x83, 0xe6, 0xfc, //0x0000893e andl $-4, %esi + 0x39, 0xf3, //0x00008941 cmpl %esi, %ebx + 0x0f, 0x96, 0xc2, //0x00008943 setbe %dl + 0x8d, 0x5e, 0x04, //0x00008946 leal $4(%rsi), %ebx + 0x39, 0xcb, //0x00008949 cmpl %ecx, %ebx + 0x0f, 0x96, 0xc0, //0x0000894b setbe %al + 0x38, 0xc2, //0x0000894e cmpb %al, %dl + 0x0f, 0x84, 0x1d, 0x00, 0x00, 0x00, //0x00008950 je LBB32_15 + 0x45, 0x31, 0xed, //0x00008956 xorl %r13d, %r13d + 0x39, 0xcb, //0x00008959 cmpl %ecx, %ebx + 0x41, 0x0f, 0x96, 0xc5, //0x0000895b setbe %r13b + 0xe9, 0x2f, 0x00, 0x00, 0x00, //0x0000895f jmp LBB32_17 + //0x00008964 LBB32_14 + 0x41, 0xc6, 0x00, 0x30, //0x00008964 movb $48, (%r8) + 0x41, 0x29, 0xf8, //0x00008968 subl %edi, %r8d + 0x41, 0xff, 0xc0, //0x0000896b incl %r8d + 0xe9, 0x00, 0x0b, 0x00, 0x00, //0x0000896e jmp LBB32_138 + //0x00008973 LBB32_15 + 0x83, 0xce, 0x02, //0x00008973 orl $2, %esi + 0x41, 0xbd, 0x01, 0x00, 0x00, 0x00, //0x00008976 movl $1, %r13d + 0x41, 0x39, 0xf7, //0x0000897c cmpl %esi, %r15d + 0x0f, 0x87, 0x0e, 0x00, 0x00, 0x00, //0x0000897f ja LBB32_17 + 0x0f, 0x94, 0xc0, //0x00008985 sete %al + 0x41, 0xc0, 0xea, 0x02, //0x00008988 shrb $2, %r10b + 0x41, 0x20, 0xc2, //0x0000898c andb %al, %r10b + 0x45, 0x0f, 0xb6, 0xea, //0x0000898f movzbl %r10b, %r13d + //0x00008993 LBB32_17 + 0x45, 0x01, 0xf5, //0x00008993 addl %r14d, %r13d + 0x41, 0x81, 0xfd, 0xa0, 0x86, 0x01, 0x00, //0x00008996 cmpl $100000, %r13d + 0x0f, 0x82, 0x50, 0xff, 0xff, 0xff, //0x0000899d jb LBB32_8 + //0x000089a3 LBB32_18 + 0xb8, 0x06, 0x00, 0x00, 0x00, //0x000089a3 movl $6, %eax + 0x41, 0x81, 0xfd, 0x40, 0x42, 0x0f, 0x00, //0x000089a8 cmpl $1000000, %r13d + 0x0f, 0x82, 0x21, 0x00, 0x00, 0x00, //0x000089af jb LBB32_22 + 0xb8, 0x07, 0x00, 0x00, 0x00, //0x000089b5 movl $7, %eax + 0x41, 0x81, 0xfd, 0x80, 0x96, 0x98, 0x00, //0x000089ba cmpl $10000000, %r13d + 0x0f, 0x82, 0x0f, 0x00, 0x00, 0x00, //0x000089c1 jb LBB32_22 + 0x41, 0x81, 0xfd, 0x00, 0xe1, 0xf5, 0x05, //0x000089c7 cmpl $100000000, %r13d + 0xb8, 0x09, 0x00, 0x00, 0x00, //0x000089ce movl $9, %eax + //0x000089d3 LBB32_21 + 0x83, 0xd8, 0x00, //0x000089d3 sbbl $0, %eax + //0x000089d6 LBB32_22 + 0x46, 0x8d, 0x3c, 0x18, //0x000089d6 leal (%rax,%r11), %r15d + 0x42, 0x8d, 0x4c, 0x18, 0x05, //0x000089da leal $5(%rax,%r11), %ecx + 0x83, 0xf9, 0x1b, //0x000089df cmpl $27, %ecx + 0x0f, 0x82, 0x77, 0x00, 0x00, 0x00, //0x000089e2 jb LBB32_26 + 0x89, 0xc0, //0x000089e8 movl %eax, %eax + 0x49, 0x8d, 0x5c, 0x00, 0x01, //0x000089ea leaq $1(%r8,%rax), %rbx + 0x41, 0x81, 0xfd, 0x10, 0x27, 0x00, 0x00, //0x000089ef cmpl $10000, %r13d + 0x0f, 0x82, 0xd9, 0x00, 0x00, 0x00, //0x000089f6 jb LBB32_30 + 0x44, 0x89, 0xe8, //0x000089fc movl %r13d, %eax + 0x41, 0xbb, 0x59, 0x17, 0xb7, 0xd1, //0x000089ff movl $3518437209, %r11d + 0x4c, 0x0f, 0xaf, 0xd8, //0x00008a05 imulq %rax, %r11 + 0x49, 0xc1, 0xeb, 0x2d, //0x00008a09 shrq $45, %r11 + 0x41, 0x69, 0xc3, 0xf0, 0xd8, 0xff, 0xff, //0x00008a0d imull $-10000, %r11d, %eax + 0x44, 0x01, 0xe8, //0x00008a14 addl %r13d, %eax + 0x0f, 0x84, 0xb3, 0x04, 0x00, 0x00, //0x00008a17 je LBB32_62 + 0x89, 0xc1, //0x00008a1d movl %eax, %ecx + 0x48, 0x69, 0xc9, 0x1f, 0x85, 0xeb, 0x51, //0x00008a1f imulq $1374389535, %rcx, %rcx + 0x48, 0xc1, 0xe9, 0x25, //0x00008a26 shrq $37, %rcx + 0x6b, 0xd1, 0x64, //0x00008a2a imull $100, %ecx, %edx + 0x29, 0xd0, //0x00008a2d subl %edx, %eax + 0x48, 0x8d, 0x15, 0x0a, 0x42, 0x00, 0x00, //0x00008a2f leaq $16906(%rip), %rdx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x04, 0x42, //0x00008a36 movzwl (%rdx,%rax,2), %eax + 0x66, 0x89, 0x43, 0xfe, //0x00008a3a movw %ax, $-2(%rbx) + 0x0f, 0xb7, 0x04, 0x4a, //0x00008a3e movzwl (%rdx,%rcx,2), %eax + 0x66, 0x89, 0x43, 0xfc, //0x00008a42 movw %ax, $-4(%rbx) + 0x45, 0x31, 0xc9, //0x00008a46 xorl %r9d, %r9d + 0x48, 0x8d, 0x4b, 0xfc, //0x00008a49 leaq $-4(%rbx), %rcx + 0x41, 0x83, 0xfb, 0x64, //0x00008a4d cmpl $100, %r11d + 0x0f, 0x83, 0x91, 0x00, 0x00, 0x00, //0x00008a51 jae LBB32_64 + //0x00008a57 LBB32_31 + 0x44, 0x89, 0xda, //0x00008a57 movl %r11d, %edx + 0xe9, 0xd4, 0x00, 0x00, 0x00, //0x00008a5a jmp LBB32_66 + //0x00008a5f LBB32_26 + 0x41, 0x89, 0xc4, //0x00008a5f movl %eax, %r12d + 0x45, 0x85, 0xdb, //0x00008a62 testl %r11d, %r11d + 0x0f, 0x88, 0x1d, 0x02, 0x00, 0x00, //0x00008a65 js LBB32_38 + 0x4b, 0x8d, 0x34, 0x20, //0x00008a6b leaq (%r8,%r12), %rsi + 0x41, 0x81, 0xfd, 0x10, 0x27, 0x00, 0x00, //0x00008a6f cmpl $10000, %r13d + 0x0f, 0x82, 0xa7, 0x02, 0x00, 0x00, //0x00008a76 jb LBB32_43 + 0x44, 0x89, 0xe8, //0x00008a7c movl %r13d, %eax + 0xb9, 0x59, 0x17, 0xb7, 0xd1, //0x00008a7f movl $3518437209, %ecx + 0x48, 0x0f, 0xaf, 0xc8, //0x00008a84 imulq %rax, %rcx + 0x48, 0xc1, 0xe9, 0x2d, //0x00008a88 shrq $45, %rcx + 0x69, 0xc1, 0xf0, 0xd8, 0xff, 0xff, //0x00008a8c imull $-10000, %ecx, %eax + 0x44, 0x01, 0xe8, //0x00008a92 addl %r13d, %eax + 0x48, 0x69, 0xd0, 0x1f, 0x85, 0xeb, 0x51, //0x00008a95 imulq $1374389535, %rax, %rdx + 0x48, 0xc1, 0xea, 0x25, //0x00008a9c shrq $37, %rdx + 0x6b, 0xda, 0x64, //0x00008aa0 imull $100, %edx, %ebx + 0x29, 0xd8, //0x00008aa3 subl %ebx, %eax + 0x48, 0x8d, 0x1d, 0x94, 0x41, 0x00, 0x00, //0x00008aa5 leaq $16788(%rip), %rbx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x04, 0x43, //0x00008aac movzwl (%rbx,%rax,2), %eax + 0x66, 0x89, 0x46, 0xfe, //0x00008ab0 movw %ax, $-2(%rsi) + 0x48, 0x8d, 0x46, 0xfc, //0x00008ab4 leaq $-4(%rsi), %rax + 0x0f, 0xb7, 0x14, 0x53, //0x00008ab8 movzwl (%rbx,%rdx,2), %edx + 0x66, 0x89, 0x56, 0xfc, //0x00008abc movw %dx, $-4(%rsi) + 0x41, 0x89, 0xcd, //0x00008ac0 movl %ecx, %r13d + 0x41, 0x83, 0xfd, 0x64, //0x00008ac3 cmpl $100, %r13d + 0x0f, 0x83, 0x63, 0x02, 0x00, 0x00, //0x00008ac7 jae LBB32_44 + //0x00008acd LBB32_29 + 0x44, 0x89, 0xe9, //0x00008acd movl %r13d, %ecx + 0xe9, 0x9e, 0x02, 0x00, 0x00, //0x00008ad0 jmp LBB32_46 + //0x00008ad5 LBB32_30 + 0x45, 0x31, 0xc9, //0x00008ad5 xorl %r9d, %r9d + 0x48, 0x89, 0xd9, //0x00008ad8 movq %rbx, %rcx + 0x45, 0x89, 0xeb, //0x00008adb movl %r13d, %r11d + 0x41, 0x83, 0xfb, 0x64, //0x00008ade cmpl $100, %r11d + 0x0f, 0x82, 0x6f, 0xff, 0xff, 0xff, //0x00008ae2 jb LBB32_31 + //0x00008ae8 LBB32_64 + 0x48, 0xff, 0xc9, //0x00008ae8 decq %rcx + 0x4c, 0x8d, 0x15, 0x4e, 0x41, 0x00, 0x00, //0x00008aeb leaq $16718(%rip), %r10 /* _Digits+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008af2 .p2align 4, 0x90 + //0x00008b00 LBB32_65 + 0x44, 0x89, 0xda, //0x00008b00 movl %r11d, %edx + 0x48, 0x69, 0xd2, 0x1f, 0x85, 0xeb, 0x51, //0x00008b03 imulq $1374389535, %rdx, %rdx + 0x48, 0xc1, 0xea, 0x25, //0x00008b0a shrq $37, %rdx + 0x6b, 0xc2, 0x64, //0x00008b0e imull $100, %edx, %eax + 0x44, 0x89, 0xde, //0x00008b11 movl %r11d, %esi + 0x29, 0xc6, //0x00008b14 subl %eax, %esi + 0x41, 0x0f, 0xb7, 0x04, 0x72, //0x00008b16 movzwl (%r10,%rsi,2), %eax + 0x66, 0x89, 0x41, 0xff, //0x00008b1b movw %ax, $-1(%rcx) + 0x48, 0x83, 0xc1, 0xfe, //0x00008b1f addq $-2, %rcx + 0x41, 0x81, 0xfb, 0x0f, 0x27, 0x00, 0x00, //0x00008b23 cmpl $9999, %r11d + 0x41, 0x89, 0xd3, //0x00008b2a movl %edx, %r11d + 0x0f, 0x87, 0xcd, 0xff, 0xff, 0xff, //0x00008b2d ja LBB32_65 + //0x00008b33 LBB32_66 + 0x49, 0x8d, 0x70, 0x01, //0x00008b33 leaq $1(%r8), %rsi + 0x83, 0xfa, 0x0a, //0x00008b37 cmpl $10, %edx + 0x0f, 0x82, 0x1d, 0x00, 0x00, 0x00, //0x00008b3a jb LBB32_68 + 0x89, 0xd0, //0x00008b40 movl %edx, %eax + 0x48, 0x8d, 0x0d, 0xf7, 0x40, 0x00, 0x00, //0x00008b42 leaq $16631(%rip), %rcx /* _Digits+0(%rip) */ + 0x8a, 0x14, 0x41, //0x00008b49 movb (%rcx,%rax,2), %dl + 0x8a, 0x44, 0x41, 0x01, //0x00008b4c movb $1(%rcx,%rax,2), %al + 0x41, 0x88, 0x50, 0x01, //0x00008b50 movb %dl, $1(%r8) + 0x41, 0x88, 0x40, 0x02, //0x00008b54 movb %al, $2(%r8) + 0xe9, 0x05, 0x00, 0x00, 0x00, //0x00008b58 jmp LBB32_69 + //0x00008b5d LBB32_68 + 0x80, 0xc2, 0x30, //0x00008b5d addb $48, %dl + 0x88, 0x16, //0x00008b60 movb %dl, (%rsi) + //0x00008b62 LBB32_69 + 0x4c, 0x29, 0xcb, //0x00008b62 subq %r9, %rbx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008b65 .p2align 4, 0x90 + //0x00008b70 LBB32_70 + 0x80, 0x7b, 0xff, 0x30, //0x00008b70 cmpb $48, $-1(%rbx) + 0x48, 0x8d, 0x5b, 0xff, //0x00008b74 leaq $-1(%rbx), %rbx + 0x0f, 0x84, 0xf2, 0xff, 0xff, 0xff, //0x00008b78 je LBB32_70 + 0x41, 0x88, 0x10, //0x00008b7e movb %dl, (%r8) + 0x48, 0x8d, 0x43, 0x01, //0x00008b81 leaq $1(%rbx), %rax + 0x48, 0x89, 0xc1, //0x00008b85 movq %rax, %rcx + 0x48, 0x29, 0xf1, //0x00008b88 subq %rsi, %rcx + 0x48, 0x83, 0xf9, 0x02, //0x00008b8b cmpq $2, %rcx + 0x0f, 0x8c, 0x06, 0x00, 0x00, 0x00, //0x00008b8f jl LBB32_73 + 0xc6, 0x06, 0x2e, //0x00008b95 movb $46, (%rsi) + 0x48, 0x89, 0xc3, //0x00008b98 movq %rax, %rbx + //0x00008b9b LBB32_73 + 0xc6, 0x03, 0x65, //0x00008b9b movb $101, (%rbx) + 0x45, 0x85, 0xff, //0x00008b9e testl %r15d, %r15d + 0x0f, 0x8e, 0x41, 0x01, 0x00, 0x00, //0x00008ba1 jle LBB32_76 + 0x41, 0xff, 0xcf, //0x00008ba7 decl %r15d + 0xc6, 0x43, 0x01, 0x2b, //0x00008baa movb $43, $1(%rbx) + 0x44, 0x89, 0xf8, //0x00008bae movl %r15d, %eax + 0x83, 0xf8, 0x64, //0x00008bb1 cmpl $100, %eax + 0x0f, 0x8c, 0x43, 0x01, 0x00, 0x00, //0x00008bb4 jl LBB32_77 + //0x00008bba LBB32_75 + 0x89, 0xc1, //0x00008bba movl %eax, %ecx + 0xba, 0xcd, 0xcc, 0xcc, 0xcc, //0x00008bbc movl $3435973837, %edx + 0x48, 0x0f, 0xaf, 0xd1, //0x00008bc1 imulq %rcx, %rdx + 0x48, 0xc1, 0xea, 0x23, //0x00008bc5 shrq $35, %rdx + 0x8d, 0x0c, 0x12, //0x00008bc9 leal (%rdx,%rdx), %ecx + 0x8d, 0x0c, 0x89, //0x00008bcc leal (%rcx,%rcx,4), %ecx + 0x29, 0xc8, //0x00008bcf subl %ecx, %eax + 0x48, 0x8d, 0x0d, 0x68, 0x40, 0x00, 0x00, //0x00008bd1 leaq $16488(%rip), %rcx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x0c, 0x51, //0x00008bd8 movzwl (%rcx,%rdx,2), %ecx + 0x66, 0x89, 0x4b, 0x02, //0x00008bdc movw %cx, $2(%rbx) + 0x0c, 0x30, //0x00008be0 orb $48, %al + 0x88, 0x43, 0x04, //0x00008be2 movb %al, $4(%rbx) + 0x48, 0x83, 0xc3, 0x05, //0x00008be5 addq $5, %rbx + 0x49, 0x89, 0xd8, //0x00008be9 movq %rbx, %r8 + 0xe9, 0x7f, 0x08, 0x00, 0x00, //0x00008bec jmp LBB32_137 + //0x00008bf1 LBB32_32 + 0xd3, 0xee, //0x00008bf1 shrl %cl, %esi + 0x81, 0xfe, 0xa0, 0x86, 0x01, 0x00, //0x00008bf3 cmpl $100000, %esi + 0x0f, 0x82, 0x1a, 0x02, 0x00, 0x00, //0x00008bf9 jb LBB32_52 + 0xb8, 0x06, 0x00, 0x00, 0x00, //0x00008bff movl $6, %eax + 0x81, 0xfe, 0x40, 0x42, 0x0f, 0x00, //0x00008c04 cmpl $1000000, %esi + 0x0f, 0x82, 0x20, 0x00, 0x00, 0x00, //0x00008c0a jb LBB32_36 + 0xb8, 0x07, 0x00, 0x00, 0x00, //0x00008c10 movl $7, %eax + 0x81, 0xfe, 0x80, 0x96, 0x98, 0x00, //0x00008c15 cmpl $10000000, %esi + 0x0f, 0x82, 0x0f, 0x00, 0x00, 0x00, //0x00008c1b jb LBB32_36 + 0x81, 0xfe, 0x00, 0xe1, 0xf5, 0x05, //0x00008c21 cmpl $100000000, %esi + 0xb8, 0x09, 0x00, 0x00, 0x00, //0x00008c27 movl $9, %eax + 0x48, 0x83, 0xd8, 0x00, //0x00008c2c sbbq $0, %rax + //0x00008c30 LBB32_36 + 0x4c, 0x01, 0xc0, //0x00008c30 addq %r8, %rax + //0x00008c33 LBB32_37 + 0x89, 0xf1, //0x00008c33 movl %esi, %ecx + 0xba, 0x59, 0x17, 0xb7, 0xd1, //0x00008c35 movl $3518437209, %edx + 0x48, 0x0f, 0xaf, 0xd1, //0x00008c3a imulq %rcx, %rdx + 0x48, 0xc1, 0xea, 0x2d, //0x00008c3e shrq $45, %rdx + 0x69, 0xca, 0xf0, 0xd8, 0xff, 0xff, //0x00008c42 imull $-10000, %edx, %ecx + 0x01, 0xf1, //0x00008c48 addl %esi, %ecx + 0x48, 0x69, 0xf1, 0x1f, 0x85, 0xeb, 0x51, //0x00008c4a imulq $1374389535, %rcx, %rsi + 0x48, 0xc1, 0xee, 0x25, //0x00008c51 shrq $37, %rsi + 0x6b, 0xde, 0x64, //0x00008c55 imull $100, %esi, %ebx + 0x29, 0xd9, //0x00008c58 subl %ebx, %ecx + 0x48, 0x8d, 0x1d, 0xdf, 0x3f, 0x00, 0x00, //0x00008c5a leaq $16351(%rip), %rbx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x0c, 0x4b, //0x00008c61 movzwl (%rbx,%rcx,2), %ecx + 0x66, 0x89, 0x48, 0xfe, //0x00008c65 movw %cx, $-2(%rax) + 0x0f, 0xb7, 0x0c, 0x73, //0x00008c69 movzwl (%rbx,%rsi,2), %ecx + 0x66, 0x89, 0x48, 0xfc, //0x00008c6d movw %cx, $-4(%rax) + 0x49, 0x89, 0xc1, //0x00008c71 movq %rax, %r9 + 0x48, 0x83, 0xc0, 0xfc, //0x00008c74 addq $-4, %rax + 0x89, 0xd6, //0x00008c78 movl %edx, %esi + 0x83, 0xfe, 0x64, //0x00008c7a cmpl $100, %esi + 0x0f, 0x83, 0xd5, 0x01, 0x00, 0x00, //0x00008c7d jae LBB32_56 + 0xe9, 0x17, 0x02, 0x00, 0x00, //0x00008c83 jmp LBB32_58 + //0x00008c88 LBB32_38 + 0x45, 0x85, 0xff, //0x00008c88 testl %r15d, %r15d + 0x0f, 0x8f, 0x90, 0x04, 0x00, 0x00, //0x00008c8b jg LBB32_98 + 0x66, 0x41, 0xc7, 0x00, 0x30, 0x2e, //0x00008c91 movw $11824, (%r8) + 0x49, 0x83, 0xc0, 0x02, //0x00008c97 addq $2, %r8 + 0x45, 0x85, 0xff, //0x00008c9b testl %r15d, %r15d + 0x0f, 0x89, 0x7d, 0x04, 0x00, 0x00, //0x00008c9e jns LBB32_98 + 0x31, 0xf6, //0x00008ca4 xorl %esi, %esi + 0x41, 0x83, 0xff, 0x80, //0x00008ca6 cmpl $-128, %r15d + 0x0f, 0x87, 0x5a, 0x04, 0x00, 0x00, //0x00008caa ja LBB32_96 + 0x45, 0x89, 0xfa, //0x00008cb0 movl %r15d, %r10d + 0x41, 0xf7, 0xd2, //0x00008cb3 notl %r10d + 0x49, 0xff, 0xc2, //0x00008cb6 incq %r10 + 0x4c, 0x89, 0xd6, //0x00008cb9 movq %r10, %rsi + 0x48, 0x83, 0xe6, 0x80, //0x00008cbc andq $-128, %rsi + 0x48, 0x8d, 0x46, 0x80, //0x00008cc0 leaq $-128(%rsi), %rax + 0x48, 0x89, 0xc1, //0x00008cc4 movq %rax, %rcx + 0x48, 0xc1, 0xe9, 0x07, //0x00008cc7 shrq $7, %rcx + 0x48, 0xff, 0xc1, //0x00008ccb incq %rcx + 0x41, 0x89, 0xcb, //0x00008cce movl %ecx, %r11d + 0x41, 0x83, 0xe3, 0x03, //0x00008cd1 andl $3, %r11d + 0x48, 0x3d, 0x80, 0x01, 0x00, 0x00, //0x00008cd5 cmpq $384, %rax + 0x0f, 0x83, 0x38, 0x03, 0x00, 0x00, //0x00008cdb jae LBB32_90 + 0x31, 0xdb, //0x00008ce1 xorl %ebx, %ebx + 0xe9, 0xda, 0x03, 0x00, 0x00, //0x00008ce3 jmp LBB32_92 + //0x00008ce8 LBB32_76 + 0xc6, 0x43, 0x01, 0x2d, //0x00008ce8 movb $45, $1(%rbx) + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00008cec movl $1, %eax + 0x44, 0x29, 0xf8, //0x00008cf1 subl %r15d, %eax + 0x83, 0xf8, 0x64, //0x00008cf4 cmpl $100, %eax + 0x0f, 0x8d, 0xbd, 0xfe, 0xff, 0xff, //0x00008cf7 jge LBB32_75 + //0x00008cfd LBB32_77 + 0x83, 0xf8, 0x0a, //0x00008cfd cmpl $10, %eax + 0x0f, 0x8c, 0x02, 0x01, 0x00, 0x00, //0x00008d00 jl LBB32_79 + 0x48, 0x98, //0x00008d06 cltq + 0x48, 0x8d, 0x0d, 0x31, 0x3f, 0x00, 0x00, //0x00008d08 leaq $16177(%rip), %rcx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x04, 0x41, //0x00008d0f movzwl (%rcx,%rax,2), %eax + 0x66, 0x89, 0x43, 0x02, //0x00008d13 movw %ax, $2(%rbx) + 0x48, 0x83, 0xc3, 0x04, //0x00008d17 addq $4, %rbx + 0x49, 0x89, 0xd8, //0x00008d1b movq %rbx, %r8 + 0xe9, 0x4d, 0x07, 0x00, 0x00, //0x00008d1e jmp LBB32_137 + //0x00008d23 LBB32_43 + 0x48, 0x89, 0xf0, //0x00008d23 movq %rsi, %rax + 0x41, 0x83, 0xfd, 0x64, //0x00008d26 cmpl $100, %r13d + 0x0f, 0x82, 0x9d, 0xfd, 0xff, 0xff, //0x00008d2a jb LBB32_29 + //0x00008d30 LBB32_44 + 0x48, 0xff, 0xc8, //0x00008d30 decq %rax + 0x4c, 0x8d, 0x15, 0x06, 0x3f, 0x00, 0x00, //0x00008d33 leaq $16134(%rip), %r10 /* _Digits+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008d3a .p2align 4, 0x90 + //0x00008d40 LBB32_45 + 0x44, 0x89, 0xe9, //0x00008d40 movl %r13d, %ecx + 0x48, 0x69, 0xc9, 0x1f, 0x85, 0xeb, 0x51, //0x00008d43 imulq $1374389535, %rcx, %rcx + 0x48, 0xc1, 0xe9, 0x25, //0x00008d4a shrq $37, %rcx + 0x6b, 0xd9, 0x64, //0x00008d4e imull $100, %ecx, %ebx + 0x44, 0x89, 0xea, //0x00008d51 movl %r13d, %edx + 0x29, 0xda, //0x00008d54 subl %ebx, %edx + 0x41, 0x0f, 0xb7, 0x14, 0x52, //0x00008d56 movzwl (%r10,%rdx,2), %edx + 0x66, 0x89, 0x50, 0xff, //0x00008d5b movw %dx, $-1(%rax) + 0x48, 0x83, 0xc0, 0xfe, //0x00008d5f addq $-2, %rax + 0x41, 0x81, 0xfd, 0x0f, 0x27, 0x00, 0x00, //0x00008d63 cmpl $9999, %r13d + 0x41, 0x89, 0xcd, //0x00008d6a movl %ecx, %r13d + 0x0f, 0x87, 0xcd, 0xff, 0xff, 0xff, //0x00008d6d ja LBB32_45 + //0x00008d73 LBB32_46 + 0x49, 0x63, 0xc7, //0x00008d73 movslq %r15d, %rax + 0x83, 0xf9, 0x0a, //0x00008d76 cmpl $10, %ecx + 0x0f, 0x82, 0x22, 0x00, 0x00, 0x00, //0x00008d79 jb LBB32_48 + 0x89, 0xc9, //0x00008d7f movl %ecx, %ecx + 0x48, 0x8d, 0x15, 0xb8, 0x3e, 0x00, 0x00, //0x00008d81 leaq $16056(%rip), %rdx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x0c, 0x4a, //0x00008d88 movzwl (%rdx,%rcx,2), %ecx + 0x66, 0x41, 0x89, 0x08, //0x00008d8c movw %cx, (%r8) + 0x49, 0x01, 0xc0, //0x00008d90 addq %rax, %r8 + 0x49, 0x39, 0xc4, //0x00008d93 cmpq %rax, %r12 + 0x0f, 0x8c, 0x17, 0x00, 0x00, 0x00, //0x00008d96 jl LBB32_49 + 0xe9, 0xcf, 0x06, 0x00, 0x00, //0x00008d9c jmp LBB32_137 + //0x00008da1 LBB32_48 + 0x80, 0xc1, 0x30, //0x00008da1 addb $48, %cl + 0x41, 0x88, 0x08, //0x00008da4 movb %cl, (%r8) + 0x49, 0x01, 0xc0, //0x00008da7 addq %rax, %r8 + 0x49, 0x39, 0xc4, //0x00008daa cmpq %rax, %r12 + 0x0f, 0x8d, 0xbd, 0x06, 0x00, 0x00, //0x00008dad jge LBB32_137 + //0x00008db3 LBB32_49 + 0x4b, 0x8d, 0x04, 0x21, //0x00008db3 leaq (%r9,%r12), %rax + 0x4c, 0x8d, 0x5c, 0x07, 0x01, //0x00008db7 leaq $1(%rdi,%rax), %r11 + 0x4d, 0x39, 0xc3, //0x00008dbc cmpq %r8, %r11 + 0x4d, 0x0f, 0x46, 0xd8, //0x00008dbf cmovbeq %r8, %r11 + 0x4a, 0x8d, 0x0c, 0x0f, //0x00008dc3 leaq (%rdi,%r9), %rcx + 0x4c, 0x01, 0xe1, //0x00008dc7 addq %r12, %rcx + 0x49, 0x29, 0xcb, //0x00008dca subq %rcx, %r11 + 0x49, 0x81, 0xfb, 0x80, 0x00, 0x00, 0x00, //0x00008dcd cmpq $128, %r11 + 0x0f, 0x82, 0x06, 0x02, 0x00, 0x00, //0x00008dd4 jb LBB32_87 + 0x4d, 0x89, 0xda, //0x00008dda movq %r11, %r10 + 0x49, 0x83, 0xe2, 0x80, //0x00008ddd andq $-128, %r10 + 0x49, 0x8d, 0x4a, 0x80, //0x00008de1 leaq $-128(%r10), %rcx + 0x48, 0x89, 0xcb, //0x00008de5 movq %rcx, %rbx + 0x48, 0xc1, 0xeb, 0x07, //0x00008de8 shrq $7, %rbx + 0x48, 0xff, 0xc3, //0x00008dec incq %rbx + 0x89, 0xda, //0x00008def movl %ebx, %edx + 0x83, 0xe2, 0x03, //0x00008df1 andl $3, %edx + 0x48, 0x81, 0xf9, 0x80, 0x01, 0x00, 0x00, //0x00008df4 cmpq $384, %rcx + 0x0f, 0x83, 0xe8, 0x00, 0x00, 0x00, //0x00008dfb jae LBB32_80 + 0x31, 0xc0, //0x00008e01 xorl %eax, %eax + 0xe9, 0x88, 0x01, 0x00, 0x00, //0x00008e03 jmp LBB32_82 + //0x00008e08 LBB32_79 + 0x04, 0x30, //0x00008e08 addb $48, %al + 0x88, 0x43, 0x02, //0x00008e0a movb %al, $2(%rbx) + 0x48, 0x83, 0xc3, 0x03, //0x00008e0d addq $3, %rbx + 0x49, 0x89, 0xd8, //0x00008e11 movq %rbx, %r8 + 0xe9, 0x57, 0x06, 0x00, 0x00, //0x00008e14 jmp LBB32_137 + //0x00008e19 LBB32_52 + 0x41, 0xb9, 0x01, 0x00, 0x00, 0x00, //0x00008e19 movl $1, %r9d + 0x83, 0xfe, 0x0a, //0x00008e1f cmpl $10, %esi + 0x0f, 0x82, 0x21, 0x00, 0x00, 0x00, //0x00008e22 jb LBB32_55 + 0x41, 0xb9, 0x02, 0x00, 0x00, 0x00, //0x00008e28 movl $2, %r9d + 0x83, 0xfe, 0x64, //0x00008e2e cmpl $100, %esi + 0x0f, 0x82, 0x12, 0x00, 0x00, 0x00, //0x00008e31 jb LBB32_55 + 0x41, 0xb9, 0x03, 0x00, 0x00, 0x00, //0x00008e37 movl $3, %r9d + 0x81, 0xfe, 0xe8, 0x03, 0x00, 0x00, //0x00008e3d cmpl $1000, %esi + 0x0f, 0x83, 0xab, 0x01, 0x00, 0x00, //0x00008e43 jae LBB32_88 + //0x00008e49 LBB32_55 + 0x4d, 0x01, 0xc1, //0x00008e49 addq %r8, %r9 + 0x4c, 0x89, 0xc8, //0x00008e4c movq %r9, %rax + 0x83, 0xfe, 0x64, //0x00008e4f cmpl $100, %esi + 0x0f, 0x82, 0x47, 0x00, 0x00, 0x00, //0x00008e52 jb LBB32_58 + //0x00008e58 LBB32_56 + 0x48, 0xff, 0xc8, //0x00008e58 decq %rax + 0x4c, 0x8d, 0x15, 0xde, 0x3d, 0x00, 0x00, //0x00008e5b leaq $15838(%rip), %r10 /* _Digits+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008e62 .p2align 4, 0x90 + //0x00008e70 LBB32_57 + 0x89, 0xf3, //0x00008e70 movl %esi, %ebx + 0x89, 0xf6, //0x00008e72 movl %esi, %esi + 0x48, 0x69, 0xf6, 0x1f, 0x85, 0xeb, 0x51, //0x00008e74 imulq $1374389535, %rsi, %rsi + 0x48, 0xc1, 0xee, 0x25, //0x00008e7b shrq $37, %rsi + 0x6b, 0xce, 0x64, //0x00008e7f imull $100, %esi, %ecx + 0x89, 0xda, //0x00008e82 movl %ebx, %edx + 0x29, 0xca, //0x00008e84 subl %ecx, %edx + 0x41, 0x0f, 0xb7, 0x0c, 0x52, //0x00008e86 movzwl (%r10,%rdx,2), %ecx + 0x66, 0x89, 0x48, 0xff, //0x00008e8b movw %cx, $-1(%rax) + 0x48, 0x83, 0xc0, 0xfe, //0x00008e8f addq $-2, %rax + 0x81, 0xfb, 0x0f, 0x27, 0x00, 0x00, //0x00008e93 cmpl $9999, %ebx + 0x0f, 0x87, 0xd1, 0xff, 0xff, 0xff, //0x00008e99 ja LBB32_57 + //0x00008e9f LBB32_58 + 0x83, 0xfe, 0x0a, //0x00008e9f cmpl $10, %esi + 0x0f, 0x82, 0x16, 0x00, 0x00, 0x00, //0x00008ea2 jb LBB32_60 + 0x89, 0xf0, //0x00008ea8 movl %esi, %eax + 0x48, 0x8d, 0x0d, 0x8f, 0x3d, 0x00, 0x00, //0x00008eaa leaq $15759(%rip), %rcx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x04, 0x41, //0x00008eb1 movzwl (%rcx,%rax,2), %eax + 0x66, 0x41, 0x89, 0x00, //0x00008eb5 movw %ax, (%r8) + 0xe9, 0x07, 0x00, 0x00, 0x00, //0x00008eb9 jmp LBB32_61 + //0x00008ebe LBB32_60 + 0x40, 0x80, 0xc6, 0x30, //0x00008ebe addb $48, %sil + 0x41, 0x88, 0x30, //0x00008ec2 movb %sil, (%r8) + //0x00008ec5 LBB32_61 + 0x41, 0x29, 0xf9, //0x00008ec5 subl %edi, %r9d + 0x45, 0x89, 0xc8, //0x00008ec8 movl %r9d, %r8d + 0xe9, 0xa3, 0x05, 0x00, 0x00, //0x00008ecb jmp LBB32_138 + //0x00008ed0 LBB32_62 + 0x41, 0xb9, 0x04, 0x00, 0x00, 0x00, //0x00008ed0 movl $4, %r9d + 0x48, 0x8d, 0x4b, 0xfc, //0x00008ed6 leaq $-4(%rbx), %rcx + 0x41, 0x83, 0xfb, 0x64, //0x00008eda cmpl $100, %r11d + 0x0f, 0x82, 0x73, 0xfb, 0xff, 0xff, //0x00008ede jb LBB32_31 + 0xe9, 0xff, 0xfb, 0xff, 0xff, //0x00008ee4 jmp LBB32_64 + //0x00008ee9 LBB32_80 + 0x48, 0x29, 0xd3, //0x00008ee9 subq %rdx, %rbx + 0x48, 0x8d, 0x8c, 0x07, 0xe0, 0x01, 0x00, 0x00, //0x00008eec leaq $480(%rdi,%rax), %rcx + 0x31, 0xc0, //0x00008ef4 xorl %eax, %eax + 0xc5, 0xfd, 0x6f, 0x05, 0x42, 0xf8, 0xff, 0xff, //0x00008ef6 vmovdqa $-1982(%rip), %ymm0 /* LCPI32_0+0(%rip) */ + 0x90, 0x90, //0x00008efe .p2align 4, 0x90 + //0x00008f00 LBB32_81 + 0xc5, 0xfe, 0x7f, 0x84, 0x01, 0x20, 0xfe, 0xff, 0xff, //0x00008f00 vmovdqu %ymm0, $-480(%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x01, 0x40, 0xfe, 0xff, 0xff, //0x00008f09 vmovdqu %ymm0, $-448(%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x01, 0x60, 0xfe, 0xff, 0xff, //0x00008f12 vmovdqu %ymm0, $-416(%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x01, 0x80, 0xfe, 0xff, 0xff, //0x00008f1b vmovdqu %ymm0, $-384(%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x01, 0xa0, 0xfe, 0xff, 0xff, //0x00008f24 vmovdqu %ymm0, $-352(%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x01, 0xc0, 0xfe, 0xff, 0xff, //0x00008f2d vmovdqu %ymm0, $-320(%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x01, 0xe0, 0xfe, 0xff, 0xff, //0x00008f36 vmovdqu %ymm0, $-288(%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x01, 0x00, 0xff, 0xff, 0xff, //0x00008f3f vmovdqu %ymm0, $-256(%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x01, 0x20, 0xff, 0xff, 0xff, //0x00008f48 vmovdqu %ymm0, $-224(%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x01, 0x40, 0xff, 0xff, 0xff, //0x00008f51 vmovdqu %ymm0, $-192(%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x01, 0x60, 0xff, 0xff, 0xff, //0x00008f5a vmovdqu %ymm0, $-160(%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x44, 0x01, 0x80, //0x00008f63 vmovdqu %ymm0, $-128(%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x44, 0x01, 0xa0, //0x00008f69 vmovdqu %ymm0, $-96(%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x44, 0x01, 0xc0, //0x00008f6f vmovdqu %ymm0, $-64(%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x44, 0x01, 0xe0, //0x00008f75 vmovdqu %ymm0, $-32(%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x04, 0x01, //0x00008f7b vmovdqu %ymm0, (%rcx,%rax) + 0x48, 0x05, 0x00, 0x02, 0x00, 0x00, //0x00008f80 addq $512, %rax + 0x48, 0x83, 0xc3, 0xfc, //0x00008f86 addq $-4, %rbx + 0x0f, 0x85, 0x70, 0xff, 0xff, 0xff, //0x00008f8a jne LBB32_81 + //0x00008f90 LBB32_82 + 0x48, 0x85, 0xd2, //0x00008f90 testq %rdx, %rdx + 0x0f, 0x84, 0x37, 0x00, 0x00, 0x00, //0x00008f93 je LBB32_85 + 0x4c, 0x01, 0xc8, //0x00008f99 addq %r9, %rax + 0x4c, 0x01, 0xe0, //0x00008f9c addq %r12, %rax + 0x48, 0x8d, 0x44, 0x07, 0x60, //0x00008f9f leaq $96(%rdi,%rax), %rax + 0x48, 0xf7, 0xda, //0x00008fa4 negq %rdx + 0xc5, 0xfd, 0x6f, 0x05, 0x91, 0xf7, 0xff, 0xff, //0x00008fa7 vmovdqa $-2159(%rip), %ymm0 /* LCPI32_0+0(%rip) */ + 0x90, //0x00008faf .p2align 4, 0x90 + //0x00008fb0 LBB32_84 + 0xc5, 0xfe, 0x7f, 0x40, 0xa0, //0x00008fb0 vmovdqu %ymm0, $-96(%rax) + 0xc5, 0xfe, 0x7f, 0x40, 0xc0, //0x00008fb5 vmovdqu %ymm0, $-64(%rax) + 0xc5, 0xfe, 0x7f, 0x40, 0xe0, //0x00008fba vmovdqu %ymm0, $-32(%rax) + 0xc5, 0xfe, 0x7f, 0x00, //0x00008fbf vmovdqu %ymm0, (%rax) + 0x48, 0x83, 0xe8, 0x80, //0x00008fc3 subq $-128, %rax + 0x48, 0xff, 0xc2, //0x00008fc7 incq %rdx + 0x0f, 0x85, 0xe0, 0xff, 0xff, 0xff, //0x00008fca jne LBB32_84 + //0x00008fd0 LBB32_85 + 0x4d, 0x39, 0xda, //0x00008fd0 cmpq %r11, %r10 + 0x0f, 0x84, 0x97, 0x04, 0x00, 0x00, //0x00008fd3 je LBB32_137 + 0x4c, 0x01, 0xd6, //0x00008fd9 addq %r10, %rsi + 0x90, 0x90, 0x90, 0x90, //0x00008fdc .p2align 4, 0x90 + //0x00008fe0 LBB32_87 + 0xc6, 0x06, 0x30, //0x00008fe0 movb $48, (%rsi) + 0x48, 0xff, 0xc6, //0x00008fe3 incq %rsi + 0x4c, 0x39, 0xc6, //0x00008fe6 cmpq %r8, %rsi + 0x0f, 0x82, 0xf1, 0xff, 0xff, 0xff, //0x00008fe9 jb LBB32_87 + 0xe9, 0x7c, 0x04, 0x00, 0x00, //0x00008fef jmp LBB32_137 + //0x00008ff4 LBB32_88 + 0x81, 0xfe, 0x10, 0x27, 0x00, 0x00, //0x00008ff4 cmpl $10000, %esi + 0x4c, 0x89, 0xc0, //0x00008ffa movq %r8, %rax + 0x48, 0x83, 0xd8, 0x00, //0x00008ffd sbbq $0, %rax + 0x48, 0x83, 0xc0, 0x05, //0x00009001 addq $5, %rax + 0x81, 0xfe, 0x10, 0x27, 0x00, 0x00, //0x00009005 cmpl $10000, %esi + 0x0f, 0x83, 0x22, 0xfc, 0xff, 0xff, //0x0000900b jae LBB32_37 + 0x49, 0x89, 0xc1, //0x00009011 movq %rax, %r9 + 0xe9, 0x3f, 0xfe, 0xff, 0xff, //0x00009014 jmp LBB32_56 + //0x00009019 LBB32_90 + 0x49, 0x8d, 0x84, 0x39, 0xe2, 0x01, 0x00, 0x00, //0x00009019 leaq $482(%r9,%rdi), %rax + 0x4d, 0x89, 0xde, //0x00009021 movq %r11, %r14 + 0x49, 0x29, 0xce, //0x00009024 subq %rcx, %r14 + 0x31, 0xdb, //0x00009027 xorl %ebx, %ebx + 0xc5, 0xfd, 0x6f, 0x05, 0x0f, 0xf7, 0xff, 0xff, //0x00009029 vmovdqa $-2289(%rip), %ymm0 /* LCPI32_0+0(%rip) */ + //0x00009031 LBB32_91 + 0xc5, 0xfe, 0x7f, 0x84, 0x18, 0x20, 0xfe, 0xff, 0xff, //0x00009031 vmovdqu %ymm0, $-480(%rax,%rbx) + 0xc5, 0xfe, 0x7f, 0x84, 0x18, 0x40, 0xfe, 0xff, 0xff, //0x0000903a vmovdqu %ymm0, $-448(%rax,%rbx) + 0xc5, 0xfe, 0x7f, 0x84, 0x18, 0x60, 0xfe, 0xff, 0xff, //0x00009043 vmovdqu %ymm0, $-416(%rax,%rbx) + 0xc5, 0xfe, 0x7f, 0x84, 0x18, 0x80, 0xfe, 0xff, 0xff, //0x0000904c vmovdqu %ymm0, $-384(%rax,%rbx) + 0xc5, 0xfe, 0x7f, 0x84, 0x18, 0xa0, 0xfe, 0xff, 0xff, //0x00009055 vmovdqu %ymm0, $-352(%rax,%rbx) + 0xc5, 0xfe, 0x7f, 0x84, 0x18, 0xc0, 0xfe, 0xff, 0xff, //0x0000905e vmovdqu %ymm0, $-320(%rax,%rbx) + 0xc5, 0xfe, 0x7f, 0x84, 0x18, 0xe0, 0xfe, 0xff, 0xff, //0x00009067 vmovdqu %ymm0, $-288(%rax,%rbx) + 0xc5, 0xfe, 0x7f, 0x84, 0x18, 0x00, 0xff, 0xff, 0xff, //0x00009070 vmovdqu %ymm0, $-256(%rax,%rbx) + 0xc5, 0xfe, 0x7f, 0x84, 0x18, 0x20, 0xff, 0xff, 0xff, //0x00009079 vmovdqu %ymm0, $-224(%rax,%rbx) + 0xc5, 0xfe, 0x7f, 0x84, 0x18, 0x40, 0xff, 0xff, 0xff, //0x00009082 vmovdqu %ymm0, $-192(%rax,%rbx) + 0xc5, 0xfe, 0x7f, 0x84, 0x18, 0x60, 0xff, 0xff, 0xff, //0x0000908b vmovdqu %ymm0, $-160(%rax,%rbx) + 0xc5, 0xfe, 0x7f, 0x44, 0x18, 0x80, //0x00009094 vmovdqu %ymm0, $-128(%rax,%rbx) + 0xc5, 0xfe, 0x7f, 0x44, 0x18, 0xa0, //0x0000909a vmovdqu %ymm0, $-96(%rax,%rbx) + 0xc5, 0xfe, 0x7f, 0x44, 0x18, 0xc0, //0x000090a0 vmovdqu %ymm0, $-64(%rax,%rbx) + 0xc5, 0xfe, 0x7f, 0x44, 0x18, 0xe0, //0x000090a6 vmovdqu %ymm0, $-32(%rax,%rbx) + 0xc5, 0xfe, 0x7f, 0x04, 0x18, //0x000090ac vmovdqu %ymm0, (%rax,%rbx) + 0x48, 0x81, 0xc3, 0x00, 0x02, 0x00, 0x00, //0x000090b1 addq $512, %rbx + 0x49, 0x83, 0xc6, 0x04, //0x000090b8 addq $4, %r14 + 0x0f, 0x85, 0x6f, 0xff, 0xff, 0xff, //0x000090bc jne LBB32_91 + //0x000090c2 LBB32_92 + 0x4d, 0x85, 0xdb, //0x000090c2 testq %r11, %r11 + 0x0f, 0x84, 0x33, 0x00, 0x00, 0x00, //0x000090c5 je LBB32_95 + 0x4c, 0x01, 0xcb, //0x000090cb addq %r9, %rbx + 0x48, 0x8d, 0x44, 0x1f, 0x62, //0x000090ce leaq $98(%rdi,%rbx), %rax + 0x49, 0xf7, 0xdb, //0x000090d3 negq %r11 + 0xc5, 0xfd, 0x6f, 0x05, 0x62, 0xf6, 0xff, 0xff, //0x000090d6 vmovdqa $-2462(%rip), %ymm0 /* LCPI32_0+0(%rip) */ + //0x000090de LBB32_94 + 0xc5, 0xfe, 0x7f, 0x40, 0xa0, //0x000090de vmovdqu %ymm0, $-96(%rax) + 0xc5, 0xfe, 0x7f, 0x40, 0xc0, //0x000090e3 vmovdqu %ymm0, $-64(%rax) + 0xc5, 0xfe, 0x7f, 0x40, 0xe0, //0x000090e8 vmovdqu %ymm0, $-32(%rax) + 0xc5, 0xfe, 0x7f, 0x00, //0x000090ed vmovdqu %ymm0, (%rax) + 0x48, 0x83, 0xe8, 0x80, //0x000090f1 subq $-128, %rax + 0x49, 0xff, 0xc3, //0x000090f5 incq %r11 + 0x0f, 0x85, 0xe0, 0xff, 0xff, 0xff, //0x000090f8 jne LBB32_94 + //0x000090fe LBB32_95 + 0x49, 0x01, 0xf0, //0x000090fe addq %rsi, %r8 + 0x49, 0x39, 0xf2, //0x00009101 cmpq %rsi, %r10 + 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x00009104 je LBB32_98 + //0x0000910a LBB32_96 + 0x44, 0x89, 0xf8, //0x0000910a movl %r15d, %eax + 0xf7, 0xd8, //0x0000910d negl %eax + 0x90, //0x0000910f .p2align 4, 0x90 + //0x00009110 LBB32_97 + 0x41, 0xc6, 0x00, 0x30, //0x00009110 movb $48, (%r8) + 0x49, 0xff, 0xc0, //0x00009114 incq %r8 + 0xff, 0xc6, //0x00009117 incl %esi + 0x39, 0xc6, //0x00009119 cmpl %eax, %esi + 0x0f, 0x8c, 0xef, 0xff, 0xff, 0xff, //0x0000911b jl LBB32_97 + //0x00009121 LBB32_98 + 0x4b, 0x8d, 0x04, 0x20, //0x00009121 leaq (%r8,%r12), %rax + 0x41, 0x81, 0xfd, 0x10, 0x27, 0x00, 0x00, //0x00009125 cmpl $10000, %r13d + 0x0f, 0x82, 0x63, 0x00, 0x00, 0x00, //0x0000912c jb LBB32_101 + 0x44, 0x89, 0xe9, //0x00009132 movl %r13d, %ecx + 0x41, 0xba, 0x59, 0x17, 0xb7, 0xd1, //0x00009135 movl $3518437209, %r10d + 0x4c, 0x0f, 0xaf, 0xd1, //0x0000913b imulq %rcx, %r10 + 0x49, 0xc1, 0xea, 0x2d, //0x0000913f shrq $45, %r10 + 0x41, 0x69, 0xca, 0xf0, 0xd8, 0xff, 0xff, //0x00009143 imull $-10000, %r10d, %ecx + 0x44, 0x01, 0xe9, //0x0000914a addl %r13d, %ecx + 0x0f, 0x84, 0x87, 0x01, 0x00, 0x00, //0x0000914d je LBB32_103 + 0x89, 0xca, //0x00009153 movl %ecx, %edx + 0x48, 0x69, 0xd2, 0x1f, 0x85, 0xeb, 0x51, //0x00009155 imulq $1374389535, %rdx, %rdx + 0x48, 0xc1, 0xea, 0x25, //0x0000915c shrq $37, %rdx + 0x6b, 0xda, 0x64, //0x00009160 imull $100, %edx, %ebx + 0x29, 0xd9, //0x00009163 subl %ebx, %ecx + 0x48, 0x8d, 0x1d, 0xd4, 0x3a, 0x00, 0x00, //0x00009165 leaq $15060(%rip), %rbx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x0c, 0x4b, //0x0000916c movzwl (%rbx,%rcx,2), %ecx + 0x66, 0x89, 0x48, 0xfe, //0x00009170 movw %cx, $-2(%rax) + 0x0f, 0xb7, 0x0c, 0x53, //0x00009174 movzwl (%rbx,%rdx,2), %ecx + 0x66, 0x89, 0x48, 0xfc, //0x00009178 movw %cx, $-4(%rax) + 0x45, 0x31, 0xc9, //0x0000917c xorl %r9d, %r9d + 0x48, 0x83, 0xc0, 0xfc, //0x0000917f addq $-4, %rax + 0x41, 0x83, 0xfa, 0x64, //0x00009183 cmpl $100, %r10d + 0x0f, 0x83, 0x18, 0x00, 0x00, 0x00, //0x00009187 jae LBB32_105 + //0x0000918d LBB32_102 + 0x44, 0x89, 0xd1, //0x0000918d movl %r10d, %ecx + 0xe9, 0x4d, 0x00, 0x00, 0x00, //0x00009190 jmp LBB32_107 + //0x00009195 LBB32_101 + 0x45, 0x31, 0xc9, //0x00009195 xorl %r9d, %r9d + 0x45, 0x89, 0xea, //0x00009198 movl %r13d, %r10d + 0x41, 0x83, 0xfa, 0x64, //0x0000919b cmpl $100, %r10d + 0x0f, 0x82, 0xe8, 0xff, 0xff, 0xff, //0x0000919f jb LBB32_102 + //0x000091a5 LBB32_105 + 0x48, 0xff, 0xc8, //0x000091a5 decq %rax + 0x48, 0x8d, 0x15, 0x91, 0x3a, 0x00, 0x00, //0x000091a8 leaq $14993(%rip), %rdx /* _Digits+0(%rip) */ + 0x90, //0x000091af .p2align 4, 0x90 + //0x000091b0 LBB32_106 + 0x44, 0x89, 0xd1, //0x000091b0 movl %r10d, %ecx + 0x48, 0x69, 0xc9, 0x1f, 0x85, 0xeb, 0x51, //0x000091b3 imulq $1374389535, %rcx, %rcx + 0x48, 0xc1, 0xe9, 0x25, //0x000091ba shrq $37, %rcx + 0x6b, 0xd9, 0x64, //0x000091be imull $100, %ecx, %ebx + 0x44, 0x89, 0xd6, //0x000091c1 movl %r10d, %esi + 0x29, 0xde, //0x000091c4 subl %ebx, %esi + 0x0f, 0xb7, 0x34, 0x72, //0x000091c6 movzwl (%rdx,%rsi,2), %esi + 0x66, 0x89, 0x70, 0xff, //0x000091ca movw %si, $-1(%rax) + 0x48, 0x83, 0xc0, 0xfe, //0x000091ce addq $-2, %rax + 0x41, 0x81, 0xfa, 0x0f, 0x27, 0x00, 0x00, //0x000091d2 cmpl $9999, %r10d + 0x41, 0x89, 0xca, //0x000091d9 movl %ecx, %r10d + 0x0f, 0x87, 0xce, 0xff, 0xff, 0xff, //0x000091dc ja LBB32_106 + //0x000091e2 LBB32_107 + 0x83, 0xf9, 0x0a, //0x000091e2 cmpl $10, %ecx + 0x0f, 0x82, 0x16, 0x00, 0x00, 0x00, //0x000091e5 jb LBB32_109 + 0x89, 0xc8, //0x000091eb movl %ecx, %eax + 0x48, 0x8d, 0x0d, 0x4c, 0x3a, 0x00, 0x00, //0x000091ed leaq $14924(%rip), %rcx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x04, 0x41, //0x000091f4 movzwl (%rcx,%rax,2), %eax + 0x66, 0x41, 0x89, 0x00, //0x000091f8 movw %ax, (%r8) + 0xe9, 0x06, 0x00, 0x00, 0x00, //0x000091fc jmp LBB32_110 + //0x00009201 LBB32_109 + 0x80, 0xc1, 0x30, //0x00009201 addb $48, %cl + 0x41, 0x88, 0x08, //0x00009204 movb %cl, (%r8) + //0x00009207 LBB32_110 + 0x4d, 0x29, 0xcc, //0x00009207 subq %r9, %r12 + 0x49, 0x8d, 0x74, 0x24, 0x01, //0x0000920a leaq $1(%r12), %rsi + 0x49, 0x8d, 0x54, 0x24, 0x61, //0x0000920f leaq $97(%r12), %rdx + 0x49, 0x8d, 0x44, 0x24, 0x02, //0x00009214 leaq $2(%r12), %rax + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00009219 .p2align 4, 0x90 + //0x00009220 LBB32_111 + 0x48, 0xff, 0xca, //0x00009220 decq %rdx + 0x48, 0xff, 0xce, //0x00009223 decq %rsi + 0x48, 0xff, 0xc8, //0x00009226 decq %rax + 0x43, 0x80, 0x7c, 0x20, 0xff, 0x30, //0x00009229 cmpb $48, $-1(%r8,%r12) + 0x4d, 0x8d, 0x64, 0x24, 0xff, //0x0000922f leaq $-1(%r12), %r12 + 0x0f, 0x84, 0xe6, 0xff, 0xff, 0xff, //0x00009234 je LBB32_111 + 0x4d, 0x8d, 0x0c, 0x30, //0x0000923a leaq (%r8,%rsi), %r9 + 0x45, 0x85, 0xff, //0x0000923e testl %r15d, %r15d + 0x0f, 0x8e, 0x8b, 0x00, 0x00, 0x00, //0x00009241 jle LBB32_116 + 0x44, 0x89, 0xc9, //0x00009247 movl %r9d, %ecx + 0x44, 0x29, 0xc1, //0x0000924a subl %r8d, %ecx + 0x41, 0x39, 0xcf, //0x0000924d cmpl %ecx, %r15d + 0x0f, 0x8d, 0x23, 0x00, 0x00, 0x00, //0x00009250 jge LBB32_117 + 0x43, 0x8d, 0x0c, 0x07, //0x00009256 leal (%r15,%r8), %ecx + 0x41, 0x29, 0xc9, //0x0000925a subl %ecx, %r9d + 0x49, 0x8d, 0x49, 0xff, //0x0000925d leaq $-1(%r9), %rcx + 0x45, 0x89, 0xca, //0x00009261 movl %r9d, %r10d + 0x41, 0x83, 0xe2, 0x03, //0x00009264 andl $3, %r10d + 0x48, 0x83, 0xf9, 0x03, //0x00009268 cmpq $3, %rcx + 0x0f, 0x83, 0x81, 0x00, 0x00, 0x00, //0x0000926c jae LBB32_121 + 0x31, 0xc9, //0x00009272 xorl %ecx, %ecx + 0xe9, 0xa3, 0x00, 0x00, 0x00, //0x00009274 jmp LBB32_124 + //0x00009279 LBB32_117 + 0x0f, 0x8e, 0x53, 0x00, 0x00, 0x00, //0x00009279 jle LBB32_116 + 0x45, 0x01, 0xc7, //0x0000927f addl %r8d, %r15d + 0x45, 0x89, 0xce, //0x00009282 movl %r9d, %r14d + 0x41, 0xf7, 0xd6, //0x00009285 notl %r14d + 0x45, 0x01, 0xfe, //0x00009288 addl %r15d, %r14d + 0x45, 0x31, 0xd2, //0x0000928b xorl %r10d, %r10d + 0x4d, 0x89, 0xcb, //0x0000928e movq %r9, %r11 + 0x41, 0x83, 0xfe, 0x7e, //0x00009291 cmpl $126, %r14d + 0x0f, 0x86, 0xb4, 0x01, 0x00, 0x00, //0x00009295 jbe LBB32_135 + 0x49, 0xff, 0xc6, //0x0000929b incq %r14 + 0x4d, 0x89, 0xf2, //0x0000929e movq %r14, %r10 + 0x49, 0x83, 0xe2, 0x80, //0x000092a1 andq $-128, %r10 + 0x4f, 0x8d, 0x1c, 0x10, //0x000092a5 leaq (%r8,%r10), %r11 + 0x49, 0x8d, 0x5a, 0x80, //0x000092a9 leaq $-128(%r10), %rbx + 0x48, 0x89, 0xd9, //0x000092ad movq %rbx, %rcx + 0x48, 0xc1, 0xe9, 0x07, //0x000092b0 shrq $7, %rcx + 0x48, 0xff, 0xc1, //0x000092b4 incq %rcx + 0x41, 0x89, 0xcc, //0x000092b7 movl %ecx, %r12d + 0x41, 0x83, 0xe4, 0x03, //0x000092ba andl $3, %r12d + 0x48, 0x81, 0xfb, 0x80, 0x01, 0x00, 0x00, //0x000092be cmpq $384, %rbx + 0x0f, 0x83, 0x8f, 0x00, 0x00, 0x00, //0x000092c5 jae LBB32_129 + 0x31, 0xc9, //0x000092cb xorl %ecx, %ecx + 0xe9, 0x30, 0x01, 0x00, 0x00, //0x000092cd jmp LBB32_131 + //0x000092d2 LBB32_116 + 0x4d, 0x89, 0xc8, //0x000092d2 movq %r9, %r8 + 0xe9, 0x96, 0x01, 0x00, 0x00, //0x000092d5 jmp LBB32_137 + //0x000092da LBB32_103 + 0x41, 0xb9, 0x04, 0x00, 0x00, 0x00, //0x000092da movl $4, %r9d + 0x48, 0x83, 0xc0, 0xfc, //0x000092e0 addq $-4, %rax + 0x41, 0x83, 0xfa, 0x64, //0x000092e4 cmpl $100, %r10d + 0x0f, 0x82, 0x9f, 0xfe, 0xff, 0xff, //0x000092e8 jb LBB32_102 + 0xe9, 0xb2, 0xfe, 0xff, 0xff, //0x000092ee jmp LBB32_105 + //0x000092f3 LBB32_121 + 0x4d, 0x89, 0xd3, //0x000092f3 movq %r10, %r11 + 0x4d, 0x29, 0xcb, //0x000092f6 subq %r9, %r11 + 0x31, 0xc9, //0x000092f9 xorl %ecx, %ecx + 0x90, 0x90, 0x90, 0x90, 0x90, //0x000092fb .p2align 4, 0x90 + //0x00009300 LBB32_122 + 0x49, 0x8d, 0x1c, 0x08, //0x00009300 leaq (%r8,%rcx), %rbx + 0x8b, 0x54, 0x1e, 0xfc, //0x00009304 movl $-4(%rsi,%rbx), %edx + 0x89, 0x54, 0x1e, 0xfd, //0x00009308 movl %edx, $-3(%rsi,%rbx) + 0x48, 0x83, 0xc1, 0xfc, //0x0000930c addq $-4, %rcx + 0x49, 0x39, 0xcb, //0x00009310 cmpq %rcx, %r11 + 0x0f, 0x85, 0xe7, 0xff, 0xff, 0xff, //0x00009313 jne LBB32_122 + 0x48, 0xf7, 0xd9, //0x00009319 negq %rcx + //0x0000931c LBB32_124 + 0x4d, 0x85, 0xd2, //0x0000931c testq %r10, %r10 + 0x0f, 0x84, 0x25, 0x00, 0x00, 0x00, //0x0000931f je LBB32_127 + 0x49, 0xf7, 0xda, //0x00009325 negq %r10 + 0x4c, 0x89, 0xc2, //0x00009328 movq %r8, %rdx + 0x48, 0x29, 0xca, //0x0000932b subq %rcx, %rdx + 0x31, 0xc9, //0x0000932e xorl %ecx, %ecx + //0x00009330 .p2align 4, 0x90 + //0x00009330 LBB32_126 + 0x48, 0x8d, 0x34, 0x0a, //0x00009330 leaq (%rdx,%rcx), %rsi + 0x41, 0x0f, 0xb6, 0x1c, 0x34, //0x00009334 movzbl (%r12,%rsi), %ebx + 0x41, 0x88, 0x5c, 0x34, 0x01, //0x00009339 movb %bl, $1(%r12,%rsi) + 0x48, 0xff, 0xc9, //0x0000933e decq %rcx + 0x49, 0x39, 0xca, //0x00009341 cmpq %rcx, %r10 + 0x0f, 0x85, 0xe6, 0xff, 0xff, 0xff, //0x00009344 jne LBB32_126 + //0x0000934a LBB32_127 + 0x49, 0x63, 0xcf, //0x0000934a movslq %r15d, %rcx + 0x41, 0xc6, 0x04, 0x08, 0x2e, //0x0000934d movb $46, (%r8,%rcx) + 0x49, 0x01, 0xc0, //0x00009352 addq %rax, %r8 + 0xe9, 0x16, 0x01, 0x00, 0x00, //0x00009355 jmp LBB32_137 + //0x0000935a LBB32_129 + 0x4c, 0x89, 0xe3, //0x0000935a movq %r12, %rbx + 0x48, 0x29, 0xcb, //0x0000935d subq %rcx, %rbx + 0x31, 0xc9, //0x00009360 xorl %ecx, %ecx + 0xc5, 0xfd, 0x6f, 0x05, 0xd6, 0xf3, 0xff, 0xff, //0x00009362 vmovdqa $-3114(%rip), %ymm0 /* LCPI32_0+0(%rip) */ + //0x0000936a LBB32_130 + 0x49, 0x8d, 0x04, 0x08, //0x0000936a leaq (%r8,%rcx), %rax + 0xc5, 0xfe, 0x7f, 0x04, 0x06, //0x0000936e vmovdqu %ymm0, (%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x44, 0x06, 0x20, //0x00009373 vmovdqu %ymm0, $32(%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x44, 0x06, 0x40, //0x00009379 vmovdqu %ymm0, $64(%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x44, 0x06, 0x60, //0x0000937f vmovdqu %ymm0, $96(%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x06, 0x80, 0x00, 0x00, 0x00, //0x00009385 vmovdqu %ymm0, $128(%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x06, 0xa0, 0x00, 0x00, 0x00, //0x0000938e vmovdqu %ymm0, $160(%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x06, 0xc0, 0x00, 0x00, 0x00, //0x00009397 vmovdqu %ymm0, $192(%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x06, 0xe0, 0x00, 0x00, 0x00, //0x000093a0 vmovdqu %ymm0, $224(%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x06, 0x00, 0x01, 0x00, 0x00, //0x000093a9 vmovdqu %ymm0, $256(%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x06, 0x20, 0x01, 0x00, 0x00, //0x000093b2 vmovdqu %ymm0, $288(%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x06, 0x40, 0x01, 0x00, 0x00, //0x000093bb vmovdqu %ymm0, $320(%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x06, 0x60, 0x01, 0x00, 0x00, //0x000093c4 vmovdqu %ymm0, $352(%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x06, 0x80, 0x01, 0x00, 0x00, //0x000093cd vmovdqu %ymm0, $384(%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x06, 0xa0, 0x01, 0x00, 0x00, //0x000093d6 vmovdqu %ymm0, $416(%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x06, 0xc0, 0x01, 0x00, 0x00, //0x000093df vmovdqu %ymm0, $448(%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x06, 0xe0, 0x01, 0x00, 0x00, //0x000093e8 vmovdqu %ymm0, $480(%rsi,%rax) + 0x48, 0x81, 0xc1, 0x00, 0x02, 0x00, 0x00, //0x000093f1 addq $512, %rcx + 0x48, 0x83, 0xc3, 0x04, //0x000093f8 addq $4, %rbx + 0x0f, 0x85, 0x68, 0xff, 0xff, 0xff, //0x000093fc jne LBB32_130 + //0x00009402 LBB32_131 + 0x49, 0x01, 0xf3, //0x00009402 addq %rsi, %r11 + 0x4d, 0x85, 0xe4, //0x00009405 testq %r12, %r12 + 0x0f, 0x84, 0x35, 0x00, 0x00, 0x00, //0x00009408 je LBB32_134 + 0x49, 0x01, 0xc8, //0x0000940e addq %rcx, %r8 + 0x49, 0x01, 0xd0, //0x00009411 addq %rdx, %r8 + 0x49, 0xf7, 0xdc, //0x00009414 negq %r12 + 0xc5, 0xfd, 0x6f, 0x05, 0x21, 0xf3, 0xff, 0xff, //0x00009417 vmovdqa $-3295(%rip), %ymm0 /* LCPI32_0+0(%rip) */ + //0x0000941f LBB32_133 + 0xc4, 0xc1, 0x7e, 0x7f, 0x40, 0xa0, //0x0000941f vmovdqu %ymm0, $-96(%r8) + 0xc4, 0xc1, 0x7e, 0x7f, 0x40, 0xc0, //0x00009425 vmovdqu %ymm0, $-64(%r8) + 0xc4, 0xc1, 0x7e, 0x7f, 0x40, 0xe0, //0x0000942b vmovdqu %ymm0, $-32(%r8) + 0xc4, 0xc1, 0x7e, 0x7f, 0x00, //0x00009431 vmovdqu %ymm0, (%r8) + 0x49, 0x83, 0xe8, 0x80, //0x00009436 subq $-128, %r8 + 0x49, 0xff, 0xc4, //0x0000943a incq %r12 + 0x0f, 0x85, 0xdc, 0xff, 0xff, 0xff, //0x0000943d jne LBB32_133 + //0x00009443 LBB32_134 + 0x4d, 0x89, 0xd8, //0x00009443 movq %r11, %r8 + 0x4d, 0x39, 0xd6, //0x00009446 cmpq %r10, %r14 + 0x0f, 0x84, 0x21, 0x00, 0x00, 0x00, //0x00009449 je LBB32_137 + //0x0000944f LBB32_135 + 0x45, 0x29, 0xd7, //0x0000944f subl %r10d, %r15d + 0x45, 0x29, 0xcf, //0x00009452 subl %r9d, %r15d + 0x4d, 0x89, 0xd8, //0x00009455 movq %r11, %r8 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00009458 .p2align 4, 0x90 + //0x00009460 LBB32_136 + 0x41, 0xc6, 0x00, 0x30, //0x00009460 movb $48, (%r8) + 0x49, 0xff, 0xc0, //0x00009464 incq %r8 + 0x41, 0xff, 0xcf, //0x00009467 decl %r15d + 0x0f, 0x85, 0xf0, 0xff, 0xff, 0xff, //0x0000946a jne LBB32_136 + //0x00009470 LBB32_137 + 0x41, 0x29, 0xf8, //0x00009470 subl %edi, %r8d + //0x00009473 LBB32_138 + 0x44, 0x89, 0xc0, //0x00009473 movl %r8d, %eax + 0x5b, //0x00009476 popq %rbx + 0x41, 0x5c, //0x00009477 popq %r12 + 0x41, 0x5d, //0x00009479 popq %r13 + 0x41, 0x5e, //0x0000947b popq %r14 + 0x41, 0x5f, //0x0000947d popq %r15 + 0x5d, //0x0000947f popq %rbp + 0xc5, 0xf8, 0x77, //0x00009480 vzeroupper + 0xc3, //0x00009483 retq + //0x00009484 LBB32_139 + 0x45, 0x31, 0xc0, //0x00009484 xorl %r8d, %r8d + 0xe9, 0xe7, 0xff, 0xff, 0xff, //0x00009487 jmp LBB32_138 + //0x0000948c LBB32_140 + 0x41, 0xbf, 0x6b, 0xff, 0xff, 0xff, //0x0000948c movl $-149, %r15d + 0x89, 0xc6, //0x00009492 movl %eax, %esi + 0xe9, 0x46, 0xf3, 0xff, 0xff, //0x00009494 jmp LBB32_5 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00009499 .p2align 4, 0x00 + //0x000094a0 LCPI33_0 + 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, //0x000094a0 QUAD $0x4040404040404040; QUAD $0x4040404040404040 // .space 16, '@@@@@@@@@@@@@@@@' + //0x000094b0 LCPI33_1 + 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, //0x000094b0 QUAD $0x5b5b5b5b5b5b5b5b; QUAD $0x5b5b5b5b5b5b5b5b // .space 16, '[[[[[[[[[[[[[[[[' + //0x000094c0 LCPI33_2 + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, //0x000094c0 QUAD $0x0101010101010101; QUAD $0x0101010101010101 // .space 16, '\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000094d0 .p2align 5, 0x00 + //0x000094e0 LCPI33_3 + 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, //0x000094e0 QUAD $0xbfbfbfbfbfbfbfbf; QUAD $0xbfbfbfbfbfbfbfbf // .space 16, '\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf' + 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, //0x000094f0 QUAD $0xbfbfbfbfbfbfbfbf; QUAD $0xbfbfbfbfbfbfbfbf // .space 16, '\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf' + //0x00009500 LCPI33_4 + 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, //0x00009500 QUAD $0x1919191919191919; QUAD $0x1919191919191919 // .space 16, '\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19' + 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, //0x00009510 QUAD $0x1919191919191919; QUAD $0x1919191919191919 // .space 16, '\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19' + //0x00009520 LCPI33_5 + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x00009520 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x00009530 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' + //0x00009540 .p2align 4, 0x90 + //0x00009540 _to_lower + 0x55, //0x00009540 pushq %rbp + 0x48, 0x89, 0xe5, //0x00009541 movq %rsp, %rbp + 0x48, 0x83, 0xfa, 0x10, //0x00009544 cmpq $16, %rdx + 0x0f, 0x82, 0xdf, 0x00, 0x00, 0x00, //0x00009548 jb LBB33_8 + 0x48, 0x8d, 0x4a, 0xf0, //0x0000954e leaq $-16(%rdx), %rcx + 0xf6, 0xc1, 0x10, //0x00009552 testb $16, %cl + 0x0f, 0x85, 0x4b, 0x00, 0x00, 0x00, //0x00009555 jne LBB33_2 + 0xc5, 0xfa, 0x6f, 0x06, //0x0000955b vmovdqu (%rsi), %xmm0 + 0xc5, 0xf9, 0x64, 0x0d, 0x39, 0xff, 0xff, 0xff, //0x0000955f vpcmpgtb $-199(%rip), %xmm0, %xmm1 /* LCPI33_0+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x15, 0x41, 0xff, 0xff, 0xff, //0x00009567 vmovdqa $-191(%rip), %xmm2 /* LCPI33_1+0(%rip) */ + 0xc5, 0xe9, 0x64, 0xd0, //0x0000956f vpcmpgtb %xmm0, %xmm2, %xmm2 + 0xc5, 0xe9, 0xdb, 0xc9, //0x00009573 vpand %xmm1, %xmm2, %xmm1 + 0xc5, 0xf1, 0xdb, 0x0d, 0x41, 0xff, 0xff, 0xff, //0x00009577 vpand $-191(%rip), %xmm1, %xmm1 /* LCPI33_2+0(%rip) */ + 0xc5, 0xf1, 0x71, 0xf1, 0x05, //0x0000957f vpsllw $5, %xmm1, %xmm1 + 0xc5, 0xf1, 0xfc, 0xc0, //0x00009584 vpaddb %xmm0, %xmm1, %xmm0 + 0xc5, 0xfa, 0x7f, 0x07, //0x00009588 vmovdqu %xmm0, (%rdi) + 0x48, 0x83, 0xc6, 0x10, //0x0000958c addq $16, %rsi + 0x48, 0x83, 0xc7, 0x10, //0x00009590 addq $16, %rdi + 0x48, 0x89, 0xc8, //0x00009594 movq %rcx, %rax + 0x48, 0x83, 0xf9, 0x10, //0x00009597 cmpq $16, %rcx + 0x0f, 0x83, 0x12, 0x00, 0x00, 0x00, //0x0000959b jae LBB33_5 + 0xe9, 0x84, 0x00, 0x00, 0x00, //0x000095a1 jmp LBB33_7 + //0x000095a6 LBB33_2 + 0x48, 0x89, 0xd0, //0x000095a6 movq %rdx, %rax + 0x48, 0x83, 0xf9, 0x10, //0x000095a9 cmpq $16, %rcx + 0x0f, 0x82, 0x77, 0x00, 0x00, 0x00, //0x000095ad jb LBB33_7 + //0x000095b3 LBB33_5 + 0xc5, 0xf9, 0x6f, 0x05, 0xe5, 0xfe, 0xff, 0xff, //0x000095b3 vmovdqa $-283(%rip), %xmm0 /* LCPI33_0+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x0d, 0xed, 0xfe, 0xff, 0xff, //0x000095bb vmovdqa $-275(%rip), %xmm1 /* LCPI33_1+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x15, 0xf5, 0xfe, 0xff, 0xff, //0x000095c3 vmovdqa $-267(%rip), %xmm2 /* LCPI33_2+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, //0x000095cb .p2align 4, 0x90 + //0x000095d0 LBB33_6 + 0xc5, 0xfa, 0x6f, 0x1e, //0x000095d0 vmovdqu (%rsi), %xmm3 + 0xc5, 0xe1, 0x64, 0xe0, //0x000095d4 vpcmpgtb %xmm0, %xmm3, %xmm4 + 0xc5, 0xf1, 0x64, 0xeb, //0x000095d8 vpcmpgtb %xmm3, %xmm1, %xmm5 + 0xc5, 0xd1, 0xdb, 0xe4, //0x000095dc vpand %xmm4, %xmm5, %xmm4 + 0xc5, 0xd9, 0xdb, 0xe2, //0x000095e0 vpand %xmm2, %xmm4, %xmm4 + 0xc5, 0xd9, 0x71, 0xf4, 0x05, //0x000095e4 vpsllw $5, %xmm4, %xmm4 + 0xc5, 0xd9, 0xfc, 0xdb, //0x000095e9 vpaddb %xmm3, %xmm4, %xmm3 + 0xc5, 0xfa, 0x7f, 0x1f, //0x000095ed vmovdqu %xmm3, (%rdi) + 0xc5, 0xfa, 0x6f, 0x5e, 0x10, //0x000095f1 vmovdqu $16(%rsi), %xmm3 + 0xc5, 0xe1, 0x64, 0xe0, //0x000095f6 vpcmpgtb %xmm0, %xmm3, %xmm4 + 0xc5, 0xf1, 0x64, 0xeb, //0x000095fa vpcmpgtb %xmm3, %xmm1, %xmm5 + 0xc5, 0xd1, 0xdb, 0xe4, //0x000095fe vpand %xmm4, %xmm5, %xmm4 + 0xc5, 0xd9, 0xdb, 0xe2, //0x00009602 vpand %xmm2, %xmm4, %xmm4 + 0xc5, 0xd9, 0x71, 0xf4, 0x05, //0x00009606 vpsllw $5, %xmm4, %xmm4 + 0xc5, 0xd9, 0xfc, 0xdb, //0x0000960b vpaddb %xmm3, %xmm4, %xmm3 + 0xc5, 0xfa, 0x7f, 0x5f, 0x10, //0x0000960f vmovdqu %xmm3, $16(%rdi) + 0x48, 0x83, 0xc6, 0x20, //0x00009614 addq $32, %rsi + 0x48, 0x83, 0xc7, 0x20, //0x00009618 addq $32, %rdi + 0x48, 0x83, 0xc0, 0xe0, //0x0000961c addq $-32, %rax + 0x48, 0x83, 0xf8, 0x0f, //0x00009620 cmpq $15, %rax + 0x0f, 0x87, 0xa6, 0xff, 0xff, 0xff, //0x00009624 ja LBB33_6 + //0x0000962a LBB33_7 + 0x83, 0xe2, 0x0f, //0x0000962a andl $15, %edx + //0x0000962d LBB33_8 + 0x48, 0x85, 0xd2, //0x0000962d testq %rdx, %rdx + 0x0f, 0x84, 0x99, 0x01, 0x00, 0x00, //0x00009630 je LBB33_22 + 0x48, 0x83, 0xfa, 0x7f, //0x00009636 cmpq $127, %rdx + 0x0f, 0x86, 0x1a, 0x00, 0x00, 0x00, //0x0000963a jbe LBB33_10 + 0x48, 0x8d, 0x04, 0x16, //0x00009640 leaq (%rsi,%rdx), %rax + 0x48, 0x39, 0xc7, //0x00009644 cmpq %rax, %rdi + 0x0f, 0x83, 0xa7, 0x00, 0x00, 0x00, //0x00009647 jae LBB33_19 + 0x48, 0x8d, 0x04, 0x17, //0x0000964d leaq (%rdi,%rdx), %rax + 0x48, 0x39, 0xc6, //0x00009651 cmpq %rax, %rsi + 0x0f, 0x83, 0x9a, 0x00, 0x00, 0x00, //0x00009654 jae LBB33_19 + //0x0000965a LBB33_10 + 0x49, 0x89, 0xf2, //0x0000965a movq %rsi, %r10 + 0x49, 0x89, 0xd0, //0x0000965d movq %rdx, %r8 + 0x48, 0x89, 0xf9, //0x00009660 movq %rdi, %rcx + //0x00009663 LBB33_11 + 0x41, 0xf6, 0xc0, 0x01, //0x00009663 testb $1, %r8b + 0x0f, 0x85, 0x12, 0x00, 0x00, 0x00, //0x00009667 jne LBB33_13 + 0x4d, 0x89, 0xc1, //0x0000966d movq %r8, %r9 + 0x49, 0x83, 0xf8, 0x01, //0x00009670 cmpq $1, %r8 + 0x0f, 0x85, 0x30, 0x00, 0x00, 0x00, //0x00009674 jne LBB33_15 + 0xe9, 0x50, 0x01, 0x00, 0x00, //0x0000967a jmp LBB33_22 + //0x0000967f LBB33_13 + 0x41, 0x0f, 0xb6, 0x02, //0x0000967f movzbl (%r10), %eax + 0x8d, 0x50, 0xbf, //0x00009683 leal $-65(%rax), %edx + 0x8d, 0x70, 0x20, //0x00009686 leal $32(%rax), %esi + 0x80, 0xfa, 0x1a, //0x00009689 cmpb $26, %dl + 0x40, 0x0f, 0xb6, 0xf6, //0x0000968c movzbl %sil, %esi + 0x0f, 0x43, 0xf0, //0x00009690 cmovael %eax, %esi + 0x4d, 0x8d, 0x48, 0xff, //0x00009693 leaq $-1(%r8), %r9 + 0x40, 0x88, 0x31, //0x00009697 movb %sil, (%rcx) + 0x49, 0xff, 0xc2, //0x0000969a incq %r10 + 0x48, 0xff, 0xc1, //0x0000969d incq %rcx + 0x49, 0x83, 0xf8, 0x01, //0x000096a0 cmpq $1, %r8 + 0x0f, 0x84, 0x25, 0x01, 0x00, 0x00, //0x000096a4 je LBB33_22 + //0x000096aa LBB33_15 + 0x31, 0xf6, //0x000096aa xorl %esi, %esi + 0x90, 0x90, 0x90, 0x90, //0x000096ac .p2align 4, 0x90 + //0x000096b0 LBB33_16 + 0x41, 0x0f, 0xb6, 0x04, 0x32, //0x000096b0 movzbl (%r10,%rsi), %eax + 0x8d, 0x78, 0xbf, //0x000096b5 leal $-65(%rax), %edi + 0x8d, 0x50, 0x20, //0x000096b8 leal $32(%rax), %edx + 0x40, 0x80, 0xff, 0x1a, //0x000096bb cmpb $26, %dil + 0x0f, 0xb6, 0xd2, //0x000096bf movzbl %dl, %edx + 0x0f, 0x43, 0xd0, //0x000096c2 cmovael %eax, %edx + 0x88, 0x14, 0x31, //0x000096c5 movb %dl, (%rcx,%rsi) + 0x41, 0x0f, 0xb6, 0x44, 0x32, 0x01, //0x000096c8 movzbl $1(%r10,%rsi), %eax + 0x8d, 0x50, 0xbf, //0x000096ce leal $-65(%rax), %edx + 0x8d, 0x78, 0x20, //0x000096d1 leal $32(%rax), %edi + 0x80, 0xfa, 0x1a, //0x000096d4 cmpb $26, %dl + 0x40, 0x0f, 0xb6, 0xd7, //0x000096d7 movzbl %dil, %edx + 0x0f, 0x43, 0xd0, //0x000096db cmovael %eax, %edx + 0x88, 0x54, 0x31, 0x01, //0x000096de movb %dl, $1(%rcx,%rsi) + 0x48, 0x83, 0xc6, 0x02, //0x000096e2 addq $2, %rsi + 0x49, 0x39, 0xf1, //0x000096e6 cmpq %rsi, %r9 + 0x0f, 0x85, 0xc1, 0xff, 0xff, 0xff, //0x000096e9 jne LBB33_16 + 0xe9, 0xdb, 0x00, 0x00, 0x00, //0x000096ef jmp LBB33_22 + //0x000096f4 LBB33_19 + 0x49, 0x89, 0xd1, //0x000096f4 movq %rdx, %r9 + 0x49, 0x83, 0xe1, 0x80, //0x000096f7 andq $-128, %r9 + 0x4e, 0x8d, 0x14, 0x0e, //0x000096fb leaq (%rsi,%r9), %r10 + 0x41, 0x89, 0xd0, //0x000096ff movl %edx, %r8d + 0x41, 0x83, 0xe0, 0x7f, //0x00009702 andl $127, %r8d + 0x4a, 0x8d, 0x0c, 0x0f, //0x00009706 leaq (%rdi,%r9), %rcx + 0x31, 0xc0, //0x0000970a xorl %eax, %eax + 0xc5, 0xfd, 0x6f, 0x05, 0xcc, 0xfd, 0xff, 0xff, //0x0000970c vmovdqa $-564(%rip), %ymm0 /* LCPI33_3+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x0d, 0xe4, 0xfd, 0xff, 0xff, //0x00009714 vmovdqa $-540(%rip), %ymm1 /* LCPI33_4+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x15, 0xfc, 0xfd, 0xff, 0xff, //0x0000971c vmovdqa $-516(%rip), %ymm2 /* LCPI33_5+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00009724 .p2align 4, 0x90 + //0x00009730 LBB33_20 + 0xc5, 0xfe, 0x6f, 0x1c, 0x06, //0x00009730 vmovdqu (%rsi,%rax), %ymm3 + 0xc5, 0xfe, 0x6f, 0x64, 0x06, 0x20, //0x00009735 vmovdqu $32(%rsi,%rax), %ymm4 + 0xc5, 0xfe, 0x6f, 0x6c, 0x06, 0x40, //0x0000973b vmovdqu $64(%rsi,%rax), %ymm5 + 0xc5, 0xfe, 0x6f, 0x74, 0x06, 0x60, //0x00009741 vmovdqu $96(%rsi,%rax), %ymm6 + 0xc5, 0xe5, 0xfc, 0xf8, //0x00009747 vpaddb %ymm0, %ymm3, %ymm7 + 0xc5, 0x5d, 0xfc, 0xc0, //0x0000974b vpaddb %ymm0, %ymm4, %ymm8 + 0xc5, 0x55, 0xfc, 0xc8, //0x0000974f vpaddb %ymm0, %ymm5, %ymm9 + 0xc5, 0x4d, 0xfc, 0xd0, //0x00009753 vpaddb %ymm0, %ymm6, %ymm10 + 0xc5, 0x45, 0xda, 0xd9, //0x00009757 vpminub %ymm1, %ymm7, %ymm11 + 0xc5, 0xa5, 0x74, 0xff, //0x0000975b vpcmpeqb %ymm7, %ymm11, %ymm7 + 0xc5, 0x3d, 0xda, 0xd9, //0x0000975f vpminub %ymm1, %ymm8, %ymm11 + 0xc4, 0x41, 0x3d, 0x74, 0xc3, //0x00009763 vpcmpeqb %ymm11, %ymm8, %ymm8 + 0xc5, 0x35, 0xda, 0xd9, //0x00009768 vpminub %ymm1, %ymm9, %ymm11 + 0xc4, 0x41, 0x35, 0x74, 0xcb, //0x0000976c vpcmpeqb %ymm11, %ymm9, %ymm9 + 0xc5, 0x2d, 0xda, 0xd9, //0x00009771 vpminub %ymm1, %ymm10, %ymm11 + 0xc4, 0x41, 0x2d, 0x74, 0xd3, //0x00009775 vpcmpeqb %ymm11, %ymm10, %ymm10 + 0xc5, 0x65, 0xfc, 0xda, //0x0000977a vpaddb %ymm2, %ymm3, %ymm11 + 0xc5, 0x5d, 0xfc, 0xe2, //0x0000977e vpaddb %ymm2, %ymm4, %ymm12 + 0xc5, 0x55, 0xfc, 0xea, //0x00009782 vpaddb %ymm2, %ymm5, %ymm13 + 0xc5, 0x4d, 0xfc, 0xf2, //0x00009786 vpaddb %ymm2, %ymm6, %ymm14 + 0xc4, 0xc3, 0x65, 0x4c, 0xdb, 0x70, //0x0000978a vpblendvb %ymm7, %ymm11, %ymm3, %ymm3 + 0xc4, 0xc3, 0x5d, 0x4c, 0xe4, 0x80, //0x00009790 vpblendvb %ymm8, %ymm12, %ymm4, %ymm4 + 0xc4, 0xc3, 0x55, 0x4c, 0xed, 0x90, //0x00009796 vpblendvb %ymm9, %ymm13, %ymm5, %ymm5 + 0xc4, 0xc3, 0x4d, 0x4c, 0xf6, 0xa0, //0x0000979c vpblendvb %ymm10, %ymm14, %ymm6, %ymm6 + 0xc5, 0xfe, 0x7f, 0x1c, 0x07, //0x000097a2 vmovdqu %ymm3, (%rdi,%rax) + 0xc5, 0xfe, 0x7f, 0x64, 0x07, 0x20, //0x000097a7 vmovdqu %ymm4, $32(%rdi,%rax) + 0xc5, 0xfe, 0x7f, 0x6c, 0x07, 0x40, //0x000097ad vmovdqu %ymm5, $64(%rdi,%rax) + 0xc5, 0xfe, 0x7f, 0x74, 0x07, 0x60, //0x000097b3 vmovdqu %ymm6, $96(%rdi,%rax) + 0x48, 0x83, 0xe8, 0x80, //0x000097b9 subq $-128, %rax + 0x49, 0x39, 0xc1, //0x000097bd cmpq %rax, %r9 + 0x0f, 0x85, 0x6a, 0xff, 0xff, 0xff, //0x000097c0 jne LBB33_20 + 0x4c, 0x39, 0xca, //0x000097c6 cmpq %r9, %rdx + 0x0f, 0x85, 0x94, 0xfe, 0xff, 0xff, //0x000097c9 jne LBB33_11 + //0x000097cf LBB33_22 + 0x5d, //0x000097cf popq %rbp + 0xc5, 0xf8, 0x77, //0x000097d0 vzeroupper + 0xc3, //0x000097d3 retq + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000097d4 .p2align 4, 0x90 + //0x000097e0 _format_significand + 0x55, //0x000097e0 pushq %rbp + 0x48, 0x89, 0xe5, //0x000097e1 movq %rsp, %rbp + 0x41, 0x56, //0x000097e4 pushq %r14 + 0x53, //0x000097e6 pushq %rbx + 0x4c, 0x63, 0xc2, //0x000097e7 movslq %edx, %r8 + 0x49, 0x01, 0xf0, //0x000097ea addq %rsi, %r8 + 0x48, 0x89, 0xf8, //0x000097ed movq %rdi, %rax + 0x48, 0xc1, 0xe8, 0x20, //0x000097f0 shrq $32, %rax + 0x0f, 0x84, 0xb6, 0x00, 0x00, 0x00, //0x000097f4 je LBB34_1 + 0x48, 0xb9, 0xfd, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x000097fa movabsq $-6067343680855748867, %rcx + 0x48, 0x89, 0xf8, //0x00009804 movq %rdi, %rax + 0x48, 0xf7, 0xe1, //0x00009807 mulq %rcx + 0x48, 0xc1, 0xea, 0x1a, //0x0000980a shrq $26, %rdx + 0x69, 0xca, 0x00, 0x1f, 0x0a, 0xfa, //0x0000980e imull $-100000000, %edx, %ecx + 0x01, 0xf9, //0x00009814 addl %edi, %ecx + 0x0f, 0x84, 0xb0, 0x00, 0x00, 0x00, //0x00009816 je LBB34_3 + 0x89, 0xc8, //0x0000981c movl %ecx, %eax + 0x41, 0xb9, 0x59, 0x17, 0xb7, 0xd1, //0x0000981e movl $3518437209, %r9d + 0x49, 0x0f, 0xaf, 0xc1, //0x00009824 imulq %r9, %rax + 0x48, 0xc1, 0xe8, 0x2d, //0x00009828 shrq $45, %rax + 0x69, 0xf8, 0x10, 0x27, 0x00, 0x00, //0x0000982c imull $10000, %eax, %edi + 0x29, 0xf9, //0x00009832 subl %edi, %ecx + 0x48, 0x89, 0xc7, //0x00009834 movq %rax, %rdi + 0x49, 0x0f, 0xaf, 0xf9, //0x00009837 imulq %r9, %rdi + 0x48, 0xc1, 0xef, 0x2d, //0x0000983b shrq $45, %rdi + 0x69, 0xff, 0x10, 0x27, 0x00, 0x00, //0x0000983f imull $10000, %edi, %edi + 0x29, 0xf8, //0x00009845 subl %edi, %eax + 0x0f, 0xb7, 0xf9, //0x00009847 movzwl %cx, %edi + 0xc1, 0xef, 0x02, //0x0000984a shrl $2, %edi + 0x44, 0x69, 0xcf, 0x7b, 0x14, 0x00, 0x00, //0x0000984d imull $5243, %edi, %r9d + 0x41, 0xc1, 0xe9, 0x11, //0x00009854 shrl $17, %r9d + 0x41, 0x6b, 0xf9, 0x64, //0x00009858 imull $100, %r9d, %edi + 0x29, 0xf9, //0x0000985c subl %edi, %ecx + 0x44, 0x0f, 0xb7, 0xd1, //0x0000985e movzwl %cx, %r10d + 0x0f, 0xb7, 0xf8, //0x00009862 movzwl %ax, %edi + 0xc1, 0xef, 0x02, //0x00009865 shrl $2, %edi + 0x69, 0xff, 0x7b, 0x14, 0x00, 0x00, //0x00009868 imull $5243, %edi, %edi + 0xc1, 0xef, 0x11, //0x0000986e shrl $17, %edi + 0x6b, 0xcf, 0x64, //0x00009871 imull $100, %edi, %ecx + 0x29, 0xc8, //0x00009874 subl %ecx, %eax + 0x44, 0x0f, 0xb7, 0xd8, //0x00009876 movzwl %ax, %r11d + 0x48, 0x8d, 0x0d, 0xbf, 0x33, 0x00, 0x00, //0x0000987a leaq $13247(%rip), %rcx /* _Digits+0(%rip) */ + 0x42, 0x0f, 0xb7, 0x04, 0x51, //0x00009881 movzwl (%rcx,%r10,2), %eax + 0x66, 0x41, 0x89, 0x40, 0xfe, //0x00009886 movw %ax, $-2(%r8) + 0x42, 0x0f, 0xb7, 0x04, 0x49, //0x0000988b movzwl (%rcx,%r9,2), %eax + 0x66, 0x41, 0x89, 0x40, 0xfc, //0x00009890 movw %ax, $-4(%r8) + 0x42, 0x0f, 0xb7, 0x04, 0x59, //0x00009895 movzwl (%rcx,%r11,2), %eax + 0x66, 0x41, 0x89, 0x40, 0xfa, //0x0000989a movw %ax, $-6(%r8) + 0x0f, 0xb7, 0x04, 0x79, //0x0000989f movzwl (%rcx,%rdi,2), %eax + 0x66, 0x41, 0x89, 0x40, 0xf8, //0x000098a3 movw %ax, $-8(%r8) + 0x45, 0x31, 0xc9, //0x000098a8 xorl %r9d, %r9d + 0xe9, 0x22, 0x00, 0x00, 0x00, //0x000098ab jmp LBB34_5 + //0x000098b0 LBB34_1 + 0x45, 0x31, 0xc9, //0x000098b0 xorl %r9d, %r9d + 0x4d, 0x89, 0xc6, //0x000098b3 movq %r8, %r14 + 0x48, 0x89, 0xfa, //0x000098b6 movq %rdi, %rdx + 0x81, 0xfa, 0x10, 0x27, 0x00, 0x00, //0x000098b9 cmpl $10000, %edx + 0x0f, 0x83, 0x1d, 0x00, 0x00, 0x00, //0x000098bf jae LBB34_8 + //0x000098c5 LBB34_7 + 0x89, 0xd7, //0x000098c5 movl %edx, %edi + 0xe9, 0x6c, 0x00, 0x00, 0x00, //0x000098c7 jmp LBB34_10 + //0x000098cc LBB34_3 + 0x41, 0xb9, 0x08, 0x00, 0x00, 0x00, //0x000098cc movl $8, %r9d + //0x000098d2 LBB34_5 + 0x4d, 0x8d, 0x70, 0xf8, //0x000098d2 leaq $-8(%r8), %r14 + 0x81, 0xfa, 0x10, 0x27, 0x00, 0x00, //0x000098d6 cmpl $10000, %edx + 0x0f, 0x82, 0xe3, 0xff, 0xff, 0xff, //0x000098dc jb LBB34_7 + //0x000098e2 LBB34_8 + 0x41, 0xba, 0x59, 0x17, 0xb7, 0xd1, //0x000098e2 movl $3518437209, %r10d + 0x4c, 0x8d, 0x1d, 0x51, 0x33, 0x00, 0x00, //0x000098e8 leaq $13137(%rip), %r11 /* _Digits+0(%rip) */ + 0x90, //0x000098ef .p2align 4, 0x90 + //0x000098f0 LBB34_9 + 0x89, 0xd7, //0x000098f0 movl %edx, %edi + 0x49, 0x0f, 0xaf, 0xfa, //0x000098f2 imulq %r10, %rdi + 0x48, 0xc1, 0xef, 0x2d, //0x000098f6 shrq $45, %rdi + 0x69, 0xc7, 0xf0, 0xd8, 0xff, 0xff, //0x000098fa imull $-10000, %edi, %eax + 0x01, 0xd0, //0x00009900 addl %edx, %eax + 0x48, 0x69, 0xd8, 0x1f, 0x85, 0xeb, 0x51, //0x00009902 imulq $1374389535, %rax, %rbx + 0x48, 0xc1, 0xeb, 0x25, //0x00009909 shrq $37, %rbx + 0x6b, 0xcb, 0x64, //0x0000990d imull $100, %ebx, %ecx + 0x29, 0xc8, //0x00009910 subl %ecx, %eax + 0x41, 0x0f, 0xb7, 0x04, 0x43, //0x00009912 movzwl (%r11,%rax,2), %eax + 0x66, 0x41, 0x89, 0x46, 0xfe, //0x00009917 movw %ax, $-2(%r14) + 0x41, 0x0f, 0xb7, 0x04, 0x5b, //0x0000991c movzwl (%r11,%rbx,2), %eax + 0x66, 0x41, 0x89, 0x46, 0xfc, //0x00009921 movw %ax, $-4(%r14) + 0x49, 0x83, 0xc6, 0xfc, //0x00009926 addq $-4, %r14 + 0x81, 0xfa, 0xff, 0xe0, 0xf5, 0x05, //0x0000992a cmpl $99999999, %edx + 0x89, 0xfa, //0x00009930 movl %edi, %edx + 0x0f, 0x87, 0xb8, 0xff, 0xff, 0xff, //0x00009932 ja LBB34_9 + //0x00009938 LBB34_10 + 0x83, 0xff, 0x64, //0x00009938 cmpl $100, %edi + 0x0f, 0x83, 0x20, 0x00, 0x00, 0x00, //0x0000993b jae LBB34_11 + 0x83, 0xff, 0x0a, //0x00009941 cmpl $10, %edi + 0x0f, 0x82, 0x4d, 0x00, 0x00, 0x00, //0x00009944 jb LBB34_14 + //0x0000994a LBB34_13 + 0x89, 0xf8, //0x0000994a movl %edi, %eax + 0x48, 0x8d, 0x0d, 0xed, 0x32, 0x00, 0x00, //0x0000994c leaq $13037(%rip), %rcx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x04, 0x41, //0x00009953 movzwl (%rcx,%rax,2), %eax + 0x66, 0x41, 0x89, 0x46, 0xfe, //0x00009957 movw %ax, $-2(%r14) + 0xe9, 0x3d, 0x00, 0x00, 0x00, //0x0000995c jmp LBB34_15 + //0x00009961 LBB34_11 + 0x0f, 0xb7, 0xc7, //0x00009961 movzwl %di, %eax + 0xc1, 0xe8, 0x02, //0x00009964 shrl $2, %eax + 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x00009967 imull $5243, %eax, %eax + 0xc1, 0xe8, 0x11, //0x0000996d shrl $17, %eax + 0x6b, 0xc8, 0x64, //0x00009970 imull $100, %eax, %ecx + 0x29, 0xcf, //0x00009973 subl %ecx, %edi + 0x0f, 0xb7, 0xcf, //0x00009975 movzwl %di, %ecx + 0x48, 0x8d, 0x15, 0xc1, 0x32, 0x00, 0x00, //0x00009978 leaq $12993(%rip), %rdx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x0c, 0x4a, //0x0000997f movzwl (%rdx,%rcx,2), %ecx + 0x66, 0x41, 0x89, 0x4e, 0xfe, //0x00009983 movw %cx, $-2(%r14) + 0x49, 0x83, 0xc6, 0xfe, //0x00009988 addq $-2, %r14 + 0x89, 0xc7, //0x0000998c movl %eax, %edi + 0x83, 0xff, 0x0a, //0x0000998e cmpl $10, %edi + 0x0f, 0x83, 0xb3, 0xff, 0xff, 0xff, //0x00009991 jae LBB34_13 + //0x00009997 LBB34_14 + 0x40, 0x80, 0xc7, 0x30, //0x00009997 addb $48, %dil + 0x40, 0x88, 0x3e, //0x0000999b movb %dil, (%rsi) + //0x0000999e LBB34_15 + 0x4d, 0x29, 0xc8, //0x0000999e subq %r9, %r8 + 0x4c, 0x89, 0xc0, //0x000099a1 movq %r8, %rax + 0x5b, //0x000099a4 popq %rbx + 0x41, 0x5e, //0x000099a5 popq %r14 + 0x5d, //0x000099a7 popq %rbp + 0xc3, //0x000099a8 retq + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000099a9 .p2align 4, 0x90 + //0x000099b0 _left_shift + 0x55, //0x000099b0 pushq %rbp + 0x48, 0x89, 0xe5, //0x000099b1 movq %rsp, %rbp + 0x41, 0x56, //0x000099b4 pushq %r14 + 0x53, //0x000099b6 pushq %rbx + 0x89, 0xf1, //0x000099b7 movl %esi, %ecx + 0x48, 0x6b, 0xd1, 0x68, //0x000099b9 imulq $104, %rcx, %rdx + 0x48, 0x8d, 0x35, 0x6c, 0x8c, 0x00, 0x00, //0x000099bd leaq $35948(%rip), %rsi /* _LSHIFT_TAB+0(%rip) */ + 0x44, 0x8b, 0x04, 0x32, //0x000099c4 movl (%rdx,%rsi), %r8d + 0x4c, 0x8b, 0x17, //0x000099c8 movq (%rdi), %r10 + 0x4c, 0x63, 0x4f, 0x10, //0x000099cb movslq $16(%rdi), %r9 + 0x8a, 0x44, 0x32, 0x04, //0x000099cf movb $4(%rdx,%rsi), %al + 0x4d, 0x85, 0xc9, //0x000099d3 testq %r9, %r9 + 0x0f, 0x84, 0x36, 0x00, 0x00, 0x00, //0x000099d6 je LBB35_6 + 0x48, 0x8d, 0x54, 0x32, 0x05, //0x000099dc leaq $5(%rdx,%rsi), %rdx + 0x31, 0xf6, //0x000099e1 xorl %esi, %esi + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000099e3 .p2align 4, 0x90 + //0x000099f0 LBB35_3 + 0x84, 0xc0, //0x000099f0 testb %al, %al + 0x0f, 0x84, 0x25, 0x00, 0x00, 0x00, //0x000099f2 je LBB35_8 + 0x41, 0x38, 0x04, 0x32, //0x000099f8 cmpb %al, (%r10,%rsi) + 0x0f, 0x85, 0x89, 0x01, 0x00, 0x00, //0x000099fc jne LBB35_5 + 0x0f, 0xb6, 0x04, 0x32, //0x00009a02 movzbl (%rdx,%rsi), %eax + 0x48, 0xff, 0xc6, //0x00009a06 incq %rsi + 0x49, 0x39, 0xf1, //0x00009a09 cmpq %rsi, %r9 + 0x0f, 0x85, 0xde, 0xff, 0xff, 0xff, //0x00009a0c jne LBB35_3 + //0x00009a12 LBB35_6 + 0x84, 0xc0, //0x00009a12 testb %al, %al + 0x0f, 0x84, 0x03, 0x00, 0x00, 0x00, //0x00009a14 je LBB35_8 + //0x00009a1a LBB35_7 + 0x41, 0xff, 0xc8, //0x00009a1a decl %r8d + //0x00009a1d LBB35_8 + 0x45, 0x85, 0xc9, //0x00009a1d testl %r9d, %r9d + 0x0f, 0x8e, 0x8c, 0x00, 0x00, 0x00, //0x00009a20 jle LBB35_23 + 0x43, 0x8d, 0x04, 0x08, //0x00009a26 leal (%r8,%r9), %eax + 0x4c, 0x63, 0xf0, //0x00009a2a movslq %eax, %r14 + 0x49, 0xff, 0xce, //0x00009a2d decq %r14 + 0x31, 0xd2, //0x00009a30 xorl %edx, %edx + 0x49, 0xbb, 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x00009a32 movabsq $-3689348814741910323, %r11 + 0x90, 0x90, 0x90, 0x90, //0x00009a3c .p2align 4, 0x90 + //0x00009a40 LBB35_10 + 0x4b, 0x0f, 0xbe, 0x74, 0x0a, 0xff, //0x00009a40 movsbq $-1(%r10,%r9), %rsi + 0x48, 0x83, 0xc6, 0xd0, //0x00009a46 addq $-48, %rsi + 0x48, 0xd3, 0xe6, //0x00009a4a shlq %cl, %rsi + 0x48, 0x01, 0xd6, //0x00009a4d addq %rdx, %rsi + 0x48, 0x89, 0xf0, //0x00009a50 movq %rsi, %rax + 0x49, 0xf7, 0xe3, //0x00009a53 mulq %r11 + 0x48, 0xc1, 0xea, 0x03, //0x00009a56 shrq $3, %rdx + 0x48, 0x8d, 0x04, 0x12, //0x00009a5a leaq (%rdx,%rdx), %rax + 0x48, 0x8d, 0x1c, 0x80, //0x00009a5e leaq (%rax,%rax,4), %rbx + 0x48, 0x89, 0xf0, //0x00009a62 movq %rsi, %rax + 0x48, 0x29, 0xd8, //0x00009a65 subq %rbx, %rax + 0x4c, 0x39, 0x77, 0x08, //0x00009a68 cmpq %r14, $8(%rdi) + 0x0f, 0x86, 0x0e, 0x00, 0x00, 0x00, //0x00009a6c jbe LBB35_16 + 0x04, 0x30, //0x00009a72 addb $48, %al + 0x43, 0x88, 0x04, 0x32, //0x00009a74 movb %al, (%r10,%r14) + 0xe9, 0x13, 0x00, 0x00, 0x00, //0x00009a78 jmp LBB35_18 + 0x90, 0x90, 0x90, //0x00009a7d .p2align 4, 0x90 + //0x00009a80 LBB35_16 + 0x48, 0x85, 0xc0, //0x00009a80 testq %rax, %rax + 0x0f, 0x84, 0x07, 0x00, 0x00, 0x00, //0x00009a83 je LBB35_18 + 0xc7, 0x47, 0x1c, 0x01, 0x00, 0x00, 0x00, //0x00009a89 movl $1, $28(%rdi) + //0x00009a90 LBB35_18 + 0x49, 0x83, 0xf9, 0x02, //0x00009a90 cmpq $2, %r9 + 0x0f, 0x8c, 0x0e, 0x00, 0x00, 0x00, //0x00009a94 jl LBB35_12 + 0x49, 0xff, 0xc9, //0x00009a9a decq %r9 + 0x4c, 0x8b, 0x17, //0x00009a9d movq (%rdi), %r10 + 0x49, 0xff, 0xce, //0x00009aa0 decq %r14 + 0xe9, 0x98, 0xff, 0xff, 0xff, //0x00009aa3 jmp LBB35_10 + //0x00009aa8 LBB35_12 + 0x48, 0x83, 0xfe, 0x0a, //0x00009aa8 cmpq $10, %rsi + 0x0f, 0x83, 0x6e, 0x00, 0x00, 0x00, //0x00009aac jae LBB35_13 + //0x00009ab2 LBB35_23 + 0x48, 0x63, 0x4f, 0x10, //0x00009ab2 movslq $16(%rdi), %rcx + 0x49, 0x63, 0xc0, //0x00009ab6 movslq %r8d, %rax + 0x48, 0x01, 0xc8, //0x00009ab9 addq %rcx, %rax + 0x89, 0x47, 0x10, //0x00009abc movl %eax, $16(%rdi) + 0x48, 0x8b, 0x4f, 0x08, //0x00009abf movq $8(%rdi), %rcx + 0x48, 0x39, 0xc1, //0x00009ac3 cmpq %rax, %rcx + 0x0f, 0x87, 0x05, 0x00, 0x00, 0x00, //0x00009ac6 ja LBB35_25 + 0x89, 0x4f, 0x10, //0x00009acc movl %ecx, $16(%rdi) + 0x89, 0xc8, //0x00009acf movl %ecx, %eax + //0x00009ad1 LBB35_25 + 0x44, 0x01, 0x47, 0x14, //0x00009ad1 addl %r8d, $20(%rdi) + 0x85, 0xc0, //0x00009ad5 testl %eax, %eax + 0x0f, 0x8e, 0x36, 0x00, 0x00, 0x00, //0x00009ad7 jle LBB35_29 + 0x48, 0x8b, 0x0f, //0x00009add movq (%rdi), %rcx + 0x89, 0xc0, //0x00009ae0 movl %eax, %eax + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00009ae2 .p2align 4, 0x90 + //0x00009af0 LBB35_27 + 0x80, 0x7c, 0x01, 0xff, 0x30, //0x00009af0 cmpb $48, $-1(%rcx,%rax) + 0x0f, 0x85, 0x20, 0x00, 0x00, 0x00, //0x00009af5 jne LBB35_31 + 0x89, 0xc2, //0x00009afb movl %eax, %edx + 0x48, 0xff, 0xc8, //0x00009afd decq %rax + 0xff, 0xca, //0x00009b00 decl %edx + 0x89, 0x57, 0x10, //0x00009b02 movl %edx, $16(%rdi) + 0x48, 0x8d, 0x50, 0x01, //0x00009b05 leaq $1(%rax), %rdx + 0x48, 0x83, 0xfa, 0x01, //0x00009b09 cmpq $1, %rdx + 0x0f, 0x8f, 0xdd, 0xff, 0xff, 0xff, //0x00009b0d jg LBB35_27 + //0x00009b13 LBB35_29 + 0x85, 0xc0, //0x00009b13 testl %eax, %eax + 0x0f, 0x84, 0x64, 0x00, 0x00, 0x00, //0x00009b15 je LBB35_30 + //0x00009b1b LBB35_31 + 0x5b, //0x00009b1b popq %rbx + 0x41, 0x5e, //0x00009b1c popq %r14 + 0x5d, //0x00009b1e popq %rbp + 0xc3, //0x00009b1f retq + //0x00009b20 LBB35_13 + 0x49, 0x63, 0xf6, //0x00009b20 movslq %r14d, %rsi + 0x48, 0xff, 0xce, //0x00009b23 decq %rsi + 0xe9, 0x1a, 0x00, 0x00, 0x00, //0x00009b26 jmp LBB35_14 + 0x90, 0x90, 0x90, 0x90, 0x90, //0x00009b2b .p2align 4, 0x90 + //0x00009b30 LBB35_15 + 0x04, 0x30, //0x00009b30 addb $48, %al + 0x48, 0x8b, 0x1f, //0x00009b32 movq (%rdi), %rbx + 0x88, 0x04, 0x33, //0x00009b35 movb %al, (%rbx,%rsi) + //0x00009b38 LBB35_22 + 0x48, 0xff, 0xce, //0x00009b38 decq %rsi + 0x48, 0x83, 0xf9, 0x09, //0x00009b3b cmpq $9, %rcx + 0x0f, 0x86, 0x6d, 0xff, 0xff, 0xff, //0x00009b3f jbe LBB35_23 + //0x00009b45 LBB35_14 + 0x48, 0x89, 0xd1, //0x00009b45 movq %rdx, %rcx + 0x48, 0x89, 0xd0, //0x00009b48 movq %rdx, %rax + 0x49, 0xf7, 0xe3, //0x00009b4b mulq %r11 + 0x48, 0xc1, 0xea, 0x03, //0x00009b4e shrq $3, %rdx + 0x48, 0x8d, 0x04, 0x12, //0x00009b52 leaq (%rdx,%rdx), %rax + 0x48, 0x8d, 0x1c, 0x80, //0x00009b56 leaq (%rax,%rax,4), %rbx + 0x48, 0x89, 0xc8, //0x00009b5a movq %rcx, %rax + 0x48, 0x29, 0xd8, //0x00009b5d subq %rbx, %rax + 0x48, 0x39, 0x77, 0x08, //0x00009b60 cmpq %rsi, $8(%rdi) + 0x0f, 0x87, 0xc6, 0xff, 0xff, 0xff, //0x00009b64 ja LBB35_15 + 0x48, 0x85, 0xc0, //0x00009b6a testq %rax, %rax + 0x0f, 0x84, 0xc5, 0xff, 0xff, 0xff, //0x00009b6d je LBB35_22 + 0xc7, 0x47, 0x1c, 0x01, 0x00, 0x00, 0x00, //0x00009b73 movl $1, $28(%rdi) + 0xe9, 0xb9, 0xff, 0xff, 0xff, //0x00009b7a jmp LBB35_22 + //0x00009b7f LBB35_30 + 0xc7, 0x47, 0x14, 0x00, 0x00, 0x00, 0x00, //0x00009b7f movl $0, $20(%rdi) + 0x5b, //0x00009b86 popq %rbx + 0x41, 0x5e, //0x00009b87 popq %r14 + 0x5d, //0x00009b89 popq %rbp + 0xc3, //0x00009b8a retq + //0x00009b8b LBB35_5 + 0x0f, 0x8c, 0x89, 0xfe, 0xff, 0xff, //0x00009b8b jl LBB35_7 + 0xe9, 0x87, 0xfe, 0xff, 0xff, //0x00009b91 jmp LBB35_8 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00009b96 .p2align 4, 0x90 + //0x00009ba0 _right_shift + 0x55, //0x00009ba0 pushq %rbp + 0x48, 0x89, 0xe5, //0x00009ba1 movq %rsp, %rbp + 0x89, 0xf1, //0x00009ba4 movl %esi, %ecx + 0x4c, 0x63, 0x4f, 0x10, //0x00009ba6 movslq $16(%rdi), %r9 + 0x31, 0xf6, //0x00009baa xorl %esi, %esi + 0x31, 0xc0, //0x00009bac xorl %eax, %eax + 0x90, 0x90, //0x00009bae .p2align 4, 0x90 + //0x00009bb0 LBB36_1 + 0x4c, 0x39, 0xce, //0x00009bb0 cmpq %r9, %rsi + 0x0f, 0x8d, 0x27, 0x01, 0x00, 0x00, //0x00009bb3 jge LBB36_2 + 0x48, 0x8d, 0x04, 0x80, //0x00009bb9 leaq (%rax,%rax,4), %rax + 0x48, 0x8b, 0x17, //0x00009bbd movq (%rdi), %rdx + 0x48, 0x0f, 0xbe, 0x14, 0x32, //0x00009bc0 movsbq (%rdx,%rsi), %rdx + 0x48, 0x8d, 0x44, 0x42, 0xd0, //0x00009bc5 leaq $-48(%rdx,%rax,2), %rax + 0x48, 0xff, 0xc6, //0x00009bca incq %rsi + 0x48, 0x89, 0xc2, //0x00009bcd movq %rax, %rdx + 0x48, 0xd3, 0xea, //0x00009bd0 shrq %cl, %rdx + 0x48, 0x85, 0xd2, //0x00009bd3 testq %rdx, %rdx + 0x0f, 0x84, 0xd4, 0xff, 0xff, 0xff, //0x00009bd6 je LBB36_1 + //0x00009bdc LBB36_6 + 0x8b, 0x57, 0x14, //0x00009bdc movl $20(%rdi), %edx + 0x29, 0xf2, //0x00009bdf subl %esi, %edx + 0xff, 0xc2, //0x00009be1 incl %edx + 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00009be3 movq $-1, %r8 + 0x49, 0xd3, 0xe0, //0x00009bea shlq %cl, %r8 + 0x89, 0x57, 0x14, //0x00009bed movl %edx, $20(%rdi) + 0x49, 0xf7, 0xd0, //0x00009bf0 notq %r8 + 0x45, 0x31, 0xd2, //0x00009bf3 xorl %r10d, %r10d + 0x44, 0x39, 0xce, //0x00009bf6 cmpl %r9d, %esi + 0x0f, 0x8d, 0x69, 0x00, 0x00, 0x00, //0x00009bf9 jge LBB36_9 + 0x4c, 0x63, 0xce, //0x00009bff movslq %esi, %r9 + 0x48, 0x8b, 0x37, //0x00009c02 movq (%rdi), %rsi + 0x45, 0x31, 0xd2, //0x00009c05 xorl %r10d, %r10d + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00009c08 .p2align 4, 0x90 + //0x00009c10 LBB36_8 + 0x48, 0x89, 0xc2, //0x00009c10 movq %rax, %rdx + 0x48, 0xd3, 0xea, //0x00009c13 shrq %cl, %rdx + 0x4c, 0x21, 0xc0, //0x00009c16 andq %r8, %rax + 0x80, 0xc2, 0x30, //0x00009c19 addb $48, %dl + 0x42, 0x88, 0x14, 0x16, //0x00009c1c movb %dl, (%rsi,%r10) + 0x48, 0x8d, 0x04, 0x80, //0x00009c20 leaq (%rax,%rax,4), %rax + 0x48, 0x8b, 0x37, //0x00009c24 movq (%rdi), %rsi + 0x4a, 0x8d, 0x14, 0x0e, //0x00009c27 leaq (%rsi,%r9), %rdx + 0x49, 0x0f, 0xbe, 0x14, 0x12, //0x00009c2b movsbq (%r10,%rdx), %rdx + 0x48, 0x8d, 0x44, 0x42, 0xd0, //0x00009c30 leaq $-48(%rdx,%rax,2), %rax + 0x4c, 0x63, 0x5f, 0x10, //0x00009c35 movslq $16(%rdi), %r11 + 0x4b, 0x8d, 0x54, 0x11, 0x01, //0x00009c39 leaq $1(%r9,%r10), %rdx + 0x49, 0xff, 0xc2, //0x00009c3e incq %r10 + 0x4c, 0x39, 0xda, //0x00009c41 cmpq %r11, %rdx + 0x0f, 0x8c, 0xc6, 0xff, 0xff, 0xff, //0x00009c44 jl LBB36_8 + 0xe9, 0x19, 0x00, 0x00, 0x00, //0x00009c4a jmp LBB36_9 + 0x90, //0x00009c4f .p2align 4, 0x90 + //0x00009c50 LBB36_11 + 0x40, 0x80, 0xc6, 0x30, //0x00009c50 addb $48, %sil + 0x48, 0x8b, 0x17, //0x00009c54 movq (%rdi), %rdx + 0x42, 0x88, 0x34, 0x0a, //0x00009c57 movb %sil, (%rdx,%r9) + 0x41, 0xff, 0xc1, //0x00009c5b incl %r9d + 0x45, 0x89, 0xca, //0x00009c5e movl %r9d, %r10d + //0x00009c61 LBB36_14 + 0x48, 0x01, 0xc0, //0x00009c61 addq %rax, %rax + 0x48, 0x8d, 0x04, 0x80, //0x00009c64 leaq (%rax,%rax,4), %rax + //0x00009c68 LBB36_9 + 0x48, 0x85, 0xc0, //0x00009c68 testq %rax, %rax + 0x0f, 0x84, 0x2b, 0x00, 0x00, 0x00, //0x00009c6b je LBB36_15 + 0x48, 0x89, 0xc6, //0x00009c71 movq %rax, %rsi + 0x48, 0xd3, 0xee, //0x00009c74 shrq %cl, %rsi + 0x4c, 0x21, 0xc0, //0x00009c77 andq %r8, %rax + 0x4d, 0x63, 0xca, //0x00009c7a movslq %r10d, %r9 + 0x4c, 0x39, 0x4f, 0x08, //0x00009c7d cmpq %r9, $8(%rdi) + 0x0f, 0x87, 0xc9, 0xff, 0xff, 0xff, //0x00009c81 ja LBB36_11 + 0x48, 0x85, 0xf6, //0x00009c87 testq %rsi, %rsi + 0x0f, 0x84, 0xd1, 0xff, 0xff, 0xff, //0x00009c8a je LBB36_14 + 0xc7, 0x47, 0x1c, 0x01, 0x00, 0x00, 0x00, //0x00009c90 movl $1, $28(%rdi) + 0xe9, 0xc5, 0xff, 0xff, 0xff, //0x00009c97 jmp LBB36_14 + //0x00009c9c LBB36_15 + 0x44, 0x89, 0x57, 0x10, //0x00009c9c movl %r10d, $16(%rdi) + 0x45, 0x85, 0xd2, //0x00009ca0 testl %r10d, %r10d + 0x0f, 0x8e, 0x2c, 0x00, 0x00, 0x00, //0x00009ca3 jle LBB36_19 + 0x48, 0x8b, 0x07, //0x00009ca9 movq (%rdi), %rax + 0x45, 0x89, 0xd2, //0x00009cac movl %r10d, %r10d + 0x90, //0x00009caf .p2align 4, 0x90 + //0x00009cb0 LBB36_17 + 0x42, 0x80, 0x7c, 0x10, 0xff, 0x30, //0x00009cb0 cmpb $48, $-1(%rax,%r10) + 0x0f, 0x85, 0x22, 0x00, 0x00, 0x00, //0x00009cb6 jne LBB36_21 + 0x44, 0x89, 0xd1, //0x00009cbc movl %r10d, %ecx + 0x49, 0xff, 0xca, //0x00009cbf decq %r10 + 0xff, 0xc9, //0x00009cc2 decl %ecx + 0x89, 0x4f, 0x10, //0x00009cc4 movl %ecx, $16(%rdi) + 0x49, 0x8d, 0x4a, 0x01, //0x00009cc7 leaq $1(%r10), %rcx + 0x48, 0x83, 0xf9, 0x01, //0x00009ccb cmpq $1, %rcx + 0x0f, 0x8f, 0xdb, 0xff, 0xff, 0xff, //0x00009ccf jg LBB36_17 + //0x00009cd5 LBB36_19 + 0x45, 0x85, 0xd2, //0x00009cd5 testl %r10d, %r10d + 0x0f, 0x84, 0x3e, 0x00, 0x00, 0x00, //0x00009cd8 je LBB36_20 + //0x00009cde LBB36_21 + 0x5d, //0x00009cde popq %rbp + 0xc3, //0x00009cdf retq + //0x00009ce0 LBB36_2 + 0x48, 0x85, 0xc0, //0x00009ce0 testq %rax, %rax + 0x0f, 0x84, 0x3c, 0x00, 0x00, 0x00, //0x00009ce3 je LBB36_22 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00009ce9 .p2align 4, 0x90 + 0x48, 0x89, 0xc2, //0x00009cf0 movq %rax, %rdx + 0x48, 0xd3, 0xea, //0x00009cf3 shrq %cl, %rdx + 0x48, 0x85, 0xd2, //0x00009cf6 testq %rdx, %rdx + 0x0f, 0x85, 0xdd, 0xfe, 0xff, 0xff, //0x00009cf9 jne LBB36_6 + //0x00009cff LBB36_4 + 0x48, 0x01, 0xc0, //0x00009cff addq %rax, %rax + 0x48, 0x8d, 0x04, 0x80, //0x00009d02 leaq (%rax,%rax,4), %rax + 0xff, 0xc6, //0x00009d06 incl %esi + 0x48, 0x89, 0xc2, //0x00009d08 movq %rax, %rdx + 0x48, 0xd3, 0xea, //0x00009d0b shrq %cl, %rdx + 0x48, 0x85, 0xd2, //0x00009d0e testq %rdx, %rdx + 0x0f, 0x84, 0xe8, 0xff, 0xff, 0xff, //0x00009d11 je LBB36_4 + 0xe9, 0xc0, 0xfe, 0xff, 0xff, //0x00009d17 jmp LBB36_6 + //0x00009d1c LBB36_20 + 0xc7, 0x47, 0x14, 0x00, 0x00, 0x00, 0x00, //0x00009d1c movl $0, $20(%rdi) + 0x5d, //0x00009d23 popq %rbp + 0xc3, //0x00009d24 retq + //0x00009d25 LBB36_22 + 0xc7, 0x47, 0x10, 0x00, 0x00, 0x00, 0x00, //0x00009d25 movl $0, $16(%rdi) + 0x5d, //0x00009d2c popq %rbp + 0xc3, //0x00009d2d retq + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00009d2e .p2align 5, 0x00 + //0x00009d40 LCPI37_0 + 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, //0x00009d40 QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' + 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, //0x00009d50 QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' + //0x00009d60 LCPI37_1 + 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x00009d60 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x00009d70 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + //0x00009d80 .p2align 4, 0x90 + //0x00009d80 _advance_string_default + 0x55, //0x00009d80 pushq %rbp + 0x48, 0x89, 0xe5, //0x00009d81 movq %rsp, %rbp + 0x41, 0x57, //0x00009d84 pushq %r15 + 0x41, 0x56, //0x00009d86 pushq %r14 + 0x41, 0x55, //0x00009d88 pushq %r13 + 0x41, 0x54, //0x00009d8a pushq %r12 + 0x53, //0x00009d8c pushq %rbx + 0x4c, 0x8b, 0x67, 0x08, //0x00009d8d movq $8(%rdi), %r12 + 0x49, 0x29, 0xf4, //0x00009d91 subq %rsi, %r12 + 0x0f, 0x84, 0xcf, 0x02, 0x00, 0x00, //0x00009d94 je LBB37_18 + 0x4c, 0x8b, 0x07, //0x00009d9a movq (%rdi), %r8 + 0x4c, 0x01, 0xc6, //0x00009d9d addq %r8, %rsi + 0x48, 0xc7, 0x02, 0xff, 0xff, 0xff, 0xff, //0x00009da0 movq $-1, (%rdx) + 0x49, 0x83, 0xfc, 0x40, //0x00009da7 cmpq $64, %r12 + 0x0f, 0x82, 0x78, 0x01, 0x00, 0x00, //0x00009dab jb LBB37_19 + 0x45, 0x89, 0xe1, //0x00009db1 movl %r12d, %r9d + 0x41, 0x83, 0xe1, 0x3f, //0x00009db4 andl $63, %r9d + 0x49, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x00009db8 movq $-1, %r14 + 0x45, 0x31, 0xff, //0x00009dbf xorl %r15d, %r15d + 0xc5, 0xfd, 0x6f, 0x05, 0x76, 0xff, 0xff, 0xff, //0x00009dc2 vmovdqa $-138(%rip), %ymm0 /* LCPI37_0+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x0d, 0x8e, 0xff, 0xff, 0xff, //0x00009dca vmovdqa $-114(%rip), %ymm1 /* LCPI37_1+0(%rip) */ + 0x49, 0xba, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x00009dd2 movabsq $-6148914691236517206, %r10 + 0x49, 0xbb, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00009ddc movabsq $6148914691236517205, %r11 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00009de6 .p2align 4, 0x90 + //0x00009df0 LBB37_3 + 0xc5, 0xfe, 0x6f, 0x16, //0x00009df0 vmovdqu (%rsi), %ymm2 + 0xc5, 0xfe, 0x6f, 0x5e, 0x20, //0x00009df4 vmovdqu $32(%rsi), %ymm3 + 0xc5, 0xed, 0x74, 0xe0, //0x00009df9 vpcmpeqb %ymm0, %ymm2, %ymm4 + 0xc5, 0xfd, 0xd7, 0xc4, //0x00009dfd vpmovmskb %ymm4, %eax + 0xc5, 0xe5, 0x74, 0xe0, //0x00009e01 vpcmpeqb %ymm0, %ymm3, %ymm4 + 0xc5, 0xfd, 0xd7, 0xdc, //0x00009e05 vpmovmskb %ymm4, %ebx + 0xc5, 0xed, 0x74, 0xd1, //0x00009e09 vpcmpeqb %ymm1, %ymm2, %ymm2 + 0xc5, 0xfd, 0xd7, 0xfa, //0x00009e0d vpmovmskb %ymm2, %edi + 0xc5, 0xe5, 0x74, 0xd1, //0x00009e11 vpcmpeqb %ymm1, %ymm3, %ymm2 + 0xc5, 0xfd, 0xd7, 0xca, //0x00009e15 vpmovmskb %ymm2, %ecx + 0x48, 0xc1, 0xe3, 0x20, //0x00009e19 shlq $32, %rbx + 0x48, 0xc1, 0xe1, 0x20, //0x00009e1d shlq $32, %rcx + 0x48, 0x09, 0xcf, //0x00009e21 orq %rcx, %rdi + 0x0f, 0x84, 0x0a, 0x00, 0x00, 0x00, //0x00009e24 je LBB37_5 + 0x49, 0x83, 0xfe, 0xff, //0x00009e2a cmpq $-1, %r14 + 0x0f, 0x84, 0x2f, 0x00, 0x00, 0x00, //0x00009e2e je LBB37_8 + //0x00009e34 LBB37_5 + 0x48, 0x09, 0xc3, //0x00009e34 orq %rax, %rbx + 0x48, 0x89, 0xf8, //0x00009e37 movq %rdi, %rax + 0x4c, 0x09, 0xf8, //0x00009e3a orq %r15, %rax + 0x0f, 0x85, 0x3f, 0x00, 0x00, 0x00, //0x00009e3d jne LBB37_9 + //0x00009e43 LBB37_6 + 0x48, 0x85, 0xdb, //0x00009e43 testq %rbx, %rbx + 0x0f, 0x85, 0x74, 0x00, 0x00, 0x00, //0x00009e46 jne LBB37_10 + //0x00009e4c LBB37_7 + 0x48, 0x83, 0xc6, 0x40, //0x00009e4c addq $64, %rsi + 0x49, 0x83, 0xc4, 0xc0, //0x00009e50 addq $-64, %r12 + 0x49, 0x83, 0xfc, 0x3f, //0x00009e54 cmpq $63, %r12 + 0x0f, 0x87, 0x92, 0xff, 0xff, 0xff, //0x00009e58 ja LBB37_3 + 0xe9, 0x77, 0x00, 0x00, 0x00, //0x00009e5e jmp LBB37_13 + //0x00009e63 LBB37_8 + 0x48, 0x89, 0xf1, //0x00009e63 movq %rsi, %rcx + 0x4c, 0x29, 0xc1, //0x00009e66 subq %r8, %rcx + 0x4c, 0x0f, 0xbc, 0xf7, //0x00009e69 bsfq %rdi, %r14 + 0x49, 0x01, 0xce, //0x00009e6d addq %rcx, %r14 + 0x4c, 0x89, 0x32, //0x00009e70 movq %r14, (%rdx) + 0x48, 0x09, 0xc3, //0x00009e73 orq %rax, %rbx + 0x48, 0x89, 0xf8, //0x00009e76 movq %rdi, %rax + 0x4c, 0x09, 0xf8, //0x00009e79 orq %r15, %rax + 0x0f, 0x84, 0xc1, 0xff, 0xff, 0xff, //0x00009e7c je LBB37_6 + //0x00009e82 LBB37_9 + 0x4c, 0x89, 0xf8, //0x00009e82 movq %r15, %rax + 0x48, 0xf7, 0xd0, //0x00009e85 notq %rax + 0x48, 0x21, 0xf8, //0x00009e88 andq %rdi, %rax + 0x4c, 0x8d, 0x2c, 0x00, //0x00009e8b leaq (%rax,%rax), %r13 + 0x4d, 0x09, 0xfd, //0x00009e8f orq %r15, %r13 + 0x4c, 0x89, 0xe9, //0x00009e92 movq %r13, %rcx + 0x48, 0xf7, 0xd1, //0x00009e95 notq %rcx + 0x48, 0x21, 0xf9, //0x00009e98 andq %rdi, %rcx + 0x4c, 0x21, 0xd1, //0x00009e9b andq %r10, %rcx + 0x45, 0x31, 0xff, //0x00009e9e xorl %r15d, %r15d + 0x48, 0x01, 0xc1, //0x00009ea1 addq %rax, %rcx + 0x41, 0x0f, 0x92, 0xc7, //0x00009ea4 setb %r15b + 0x48, 0x01, 0xc9, //0x00009ea8 addq %rcx, %rcx + 0x4c, 0x31, 0xd9, //0x00009eab xorq %r11, %rcx + 0x4c, 0x21, 0xe9, //0x00009eae andq %r13, %rcx + 0x48, 0xf7, 0xd1, //0x00009eb1 notq %rcx + 0x48, 0x21, 0xcb, //0x00009eb4 andq %rcx, %rbx + 0x48, 0x85, 0xdb, //0x00009eb7 testq %rbx, %rbx + 0x0f, 0x84, 0x8c, 0xff, 0xff, 0xff, //0x00009eba je LBB37_7 + //0x00009ec0 LBB37_10 + 0x48, 0x0f, 0xbc, 0xc3, //0x00009ec0 bsfq %rbx, %rax + //0x00009ec4 LBB37_11 + 0x4c, 0x29, 0xc6, //0x00009ec4 subq %r8, %rsi + 0x48, 0x8d, 0x44, 0x06, 0x01, //0x00009ec7 leaq $1(%rsi,%rax), %rax + //0x00009ecc LBB37_12 + 0x5b, //0x00009ecc popq %rbx + 0x41, 0x5c, //0x00009ecd popq %r12 + 0x41, 0x5d, //0x00009ecf popq %r13 + 0x41, 0x5e, //0x00009ed1 popq %r14 + 0x41, 0x5f, //0x00009ed3 popq %r15 + 0x5d, //0x00009ed5 popq %rbp + 0xc5, 0xf8, 0x77, //0x00009ed6 vzeroupper + 0xc3, //0x00009ed9 retq + //0x00009eda LBB37_13 + 0x4d, 0x89, 0xcc, //0x00009eda movq %r9, %r12 + 0x49, 0x83, 0xfc, 0x20, //0x00009edd cmpq $32, %r12 + 0x0f, 0x82, 0xb7, 0x00, 0x00, 0x00, //0x00009ee1 jb LBB37_24 + //0x00009ee7 LBB37_14 + 0xc5, 0xfe, 0x6f, 0x06, //0x00009ee7 vmovdqu (%rsi), %ymm0 + 0xc5, 0xfd, 0x74, 0x0d, 0x4d, 0xfe, 0xff, 0xff, //0x00009eeb vpcmpeqb $-435(%rip), %ymm0, %ymm1 /* LCPI37_0+0(%rip) */ + 0xc5, 0x7d, 0xd7, 0xc9, //0x00009ef3 vpmovmskb %ymm1, %r9d + 0xc5, 0xfd, 0x74, 0x05, 0x61, 0xfe, 0xff, 0xff, //0x00009ef7 vpcmpeqb $-415(%rip), %ymm0, %ymm0 /* LCPI37_1+0(%rip) */ + 0xc5, 0xfd, 0xd7, 0xf8, //0x00009eff vpmovmskb %ymm0, %edi + 0x85, 0xff, //0x00009f03 testl %edi, %edi + 0x0f, 0x85, 0x37, 0x00, 0x00, 0x00, //0x00009f05 jne LBB37_20 + 0x4d, 0x85, 0xff, //0x00009f0b testq %r15, %r15 + 0x0f, 0x85, 0x48, 0x00, 0x00, 0x00, //0x00009f0e jne LBB37_22 + 0x45, 0x31, 0xff, //0x00009f14 xorl %r15d, %r15d + 0x4d, 0x85, 0xc9, //0x00009f17 testq %r9, %r9 + 0x0f, 0x84, 0x76, 0x00, 0x00, 0x00, //0x00009f1a je LBB37_23 + //0x00009f20 LBB37_17 + 0x49, 0x0f, 0xbc, 0xc1, //0x00009f20 bsfq %r9, %rax + 0xe9, 0x9b, 0xff, 0xff, 0xff, //0x00009f24 jmp LBB37_11 + //0x00009f29 LBB37_19 + 0x49, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x00009f29 movq $-1, %r14 + 0x45, 0x31, 0xff, //0x00009f30 xorl %r15d, %r15d + 0x49, 0x83, 0xfc, 0x20, //0x00009f33 cmpq $32, %r12 + 0x0f, 0x83, 0xaa, 0xff, 0xff, 0xff, //0x00009f37 jae LBB37_14 + 0xe9, 0x5c, 0x00, 0x00, 0x00, //0x00009f3d jmp LBB37_24 + //0x00009f42 LBB37_20 + 0x49, 0x83, 0xfe, 0xff, //0x00009f42 cmpq $-1, %r14 + 0x0f, 0x85, 0x10, 0x00, 0x00, 0x00, //0x00009f46 jne LBB37_22 + 0x48, 0x89, 0xf0, //0x00009f4c movq %rsi, %rax + 0x4c, 0x29, 0xc0, //0x00009f4f subq %r8, %rax + 0x4c, 0x0f, 0xbc, 0xf7, //0x00009f52 bsfq %rdi, %r14 + 0x49, 0x01, 0xc6, //0x00009f56 addq %rax, %r14 + 0x4c, 0x89, 0x32, //0x00009f59 movq %r14, (%rdx) + //0x00009f5c LBB37_22 + 0x44, 0x89, 0xf8, //0x00009f5c movl %r15d, %eax + 0xf7, 0xd0, //0x00009f5f notl %eax + 0x21, 0xf8, //0x00009f61 andl %edi, %eax + 0x8d, 0x1c, 0x00, //0x00009f63 leal (%rax,%rax), %ebx + 0x44, 0x09, 0xfb, //0x00009f66 orl %r15d, %ebx + 0x89, 0xd9, //0x00009f69 movl %ebx, %ecx + 0xf7, 0xd1, //0x00009f6b notl %ecx + 0x21, 0xf9, //0x00009f6d andl %edi, %ecx + 0x81, 0xe1, 0xaa, 0xaa, 0xaa, 0xaa, //0x00009f6f andl $-1431655766, %ecx + 0x45, 0x31, 0xff, //0x00009f75 xorl %r15d, %r15d + 0x01, 0xc1, //0x00009f78 addl %eax, %ecx + 0x41, 0x0f, 0x92, 0xc7, //0x00009f7a setb %r15b + 0x01, 0xc9, //0x00009f7e addl %ecx, %ecx + 0x81, 0xf1, 0x55, 0x55, 0x55, 0x55, //0x00009f80 xorl $1431655765, %ecx + 0x21, 0xd9, //0x00009f86 andl %ebx, %ecx + 0xf7, 0xd1, //0x00009f88 notl %ecx + 0x41, 0x21, 0xc9, //0x00009f8a andl %ecx, %r9d + 0x4d, 0x85, 0xc9, //0x00009f8d testq %r9, %r9 + 0x0f, 0x85, 0x8a, 0xff, 0xff, 0xff, //0x00009f90 jne LBB37_17 + //0x00009f96 LBB37_23 + 0x48, 0x83, 0xc6, 0x20, //0x00009f96 addq $32, %rsi + 0x49, 0x83, 0xc4, 0xe0, //0x00009f9a addq $-32, %r12 + //0x00009f9e LBB37_24 + 0x4d, 0x85, 0xff, //0x00009f9e testq %r15, %r15 + 0x0f, 0x85, 0x88, 0x00, 0x00, 0x00, //0x00009fa1 jne LBB37_35 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00009fa7 movq $-1, %rax + 0x4d, 0x85, 0xe4, //0x00009fae testq %r12, %r12 + 0x0f, 0x84, 0x15, 0xff, 0xff, 0xff, //0x00009fb1 je LBB37_12 + //0x00009fb7 LBB37_26 + 0x4d, 0x89, 0xc1, //0x00009fb7 movq %r8, %r9 + 0x49, 0xf7, 0xd1, //0x00009fba notq %r9 + //0x00009fbd LBB37_27 + 0x48, 0x8d, 0x7e, 0x01, //0x00009fbd leaq $1(%rsi), %rdi + 0x0f, 0xb6, 0x1e, //0x00009fc1 movzbl (%rsi), %ebx + 0x80, 0xfb, 0x22, //0x00009fc4 cmpb $34, %bl + 0x0f, 0x84, 0x57, 0x00, 0x00, 0x00, //0x00009fc7 je LBB37_34 + 0x4d, 0x8d, 0x54, 0x24, 0xff, //0x00009fcd leaq $-1(%r12), %r10 + 0x80, 0xfb, 0x5c, //0x00009fd2 cmpb $92, %bl + 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x00009fd5 je LBB37_30 + 0x4d, 0x89, 0xd4, //0x00009fdb movq %r10, %r12 + 0x48, 0x89, 0xfe, //0x00009fde movq %rdi, %rsi + 0x4d, 0x85, 0xd2, //0x00009fe1 testq %r10, %r10 + 0x0f, 0x85, 0xd3, 0xff, 0xff, 0xff, //0x00009fe4 jne LBB37_27 + 0xe9, 0xdd, 0xfe, 0xff, 0xff, //0x00009fea jmp LBB37_12 + //0x00009fef LBB37_30 + 0x4d, 0x85, 0xd2, //0x00009fef testq %r10, %r10 + 0x0f, 0x84, 0xd4, 0xfe, 0xff, 0xff, //0x00009ff2 je LBB37_12 + 0x49, 0x83, 0xfe, 0xff, //0x00009ff8 cmpq $-1, %r14 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00009ffc jne LBB37_33 + 0x4c, 0x01, 0xcf, //0x0000a002 addq %r9, %rdi + 0x48, 0x89, 0x3a, //0x0000a005 movq %rdi, (%rdx) + 0x49, 0x89, 0xfe, //0x0000a008 movq %rdi, %r14 + //0x0000a00b LBB37_33 + 0x48, 0x83, 0xc6, 0x02, //0x0000a00b addq $2, %rsi + 0x49, 0x83, 0xc4, 0xfe, //0x0000a00f addq $-2, %r12 + 0x4d, 0x89, 0xe2, //0x0000a013 movq %r12, %r10 + 0x4d, 0x85, 0xd2, //0x0000a016 testq %r10, %r10 + 0x0f, 0x85, 0x9e, 0xff, 0xff, 0xff, //0x0000a019 jne LBB37_27 + 0xe9, 0xa8, 0xfe, 0xff, 0xff, //0x0000a01f jmp LBB37_12 + //0x0000a024 LBB37_34 + 0x4c, 0x29, 0xc7, //0x0000a024 subq %r8, %rdi + 0x48, 0x89, 0xf8, //0x0000a027 movq %rdi, %rax + 0xe9, 0x9d, 0xfe, 0xff, 0xff, //0x0000a02a jmp LBB37_12 + //0x0000a02f LBB37_35 + 0x4d, 0x85, 0xe4, //0x0000a02f testq %r12, %r12 + 0x0f, 0x84, 0x31, 0x00, 0x00, 0x00, //0x0000a032 je LBB37_18 + 0x49, 0x83, 0xfe, 0xff, //0x0000a038 cmpq $-1, %r14 + 0x0f, 0x85, 0x0c, 0x00, 0x00, 0x00, //0x0000a03c jne LBB37_38 + 0x4d, 0x89, 0xc6, //0x0000a042 movq %r8, %r14 + 0x49, 0xf7, 0xd6, //0x0000a045 notq %r14 + 0x49, 0x01, 0xf6, //0x0000a048 addq %rsi, %r14 + 0x4c, 0x89, 0x32, //0x0000a04b movq %r14, (%rdx) + //0x0000a04e LBB37_38 + 0x48, 0xff, 0xc6, //0x0000a04e incq %rsi + 0x49, 0xff, 0xcc, //0x0000a051 decq %r12 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x0000a054 movq $-1, %rax + 0x4d, 0x85, 0xe4, //0x0000a05b testq %r12, %r12 + 0x0f, 0x85, 0x53, 0xff, 0xff, 0xff, //0x0000a05e jne LBB37_26 + 0xe9, 0x63, 0xfe, 0xff, 0xff, //0x0000a064 jmp LBB37_12 + //0x0000a069 LBB37_18 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x0000a069 movq $-1, %rax + 0xe9, 0x57, 0xfe, 0xff, 0xff, //0x0000a070 jmp LBB37_12 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000a075 .p2align 4, 0x00 + //0x0000a080 _POW10_M128_TAB + 0x53, 0xe4, 0x60, 0xcd, 0x69, 0xc8, 0x32, 0x17, //0x0000a080 .quad 1671618768450675795 + 0x88, 0x02, 0x1c, 0x08, 0xa0, 0xd5, 0x8f, 0xfa, //0x0000a088 .quad -391859759250406776 + 0xb4, 0x8e, 0x5c, 0x20, 0x42, 0xbd, 0x7f, 0x0e, //0x0000a090 .quad 1044761730281672372 + 0x95, 0x81, 0x11, 0x05, 0x84, 0xe5, 0x99, 0x9c, //0x0000a098 .quad -7162441377172586091 + 0x61, 0xb2, 0x73, 0xa8, 0x92, 0xac, 0x1f, 0x52, //0x0000a0a0 .quad 5917638181279478369 + 0xfa, 0xe1, 0x55, 0x06, 0xe5, 0x5e, 0xc0, 0xc3, //0x0000a0a8 .quad -4341365703038344710 + 0xf9, 0x9e, 0x90, 0x52, 0xb7, 0x97, 0xa7, 0xe6, //0x0000a0b0 .quad -1826324310255427847 + 0x78, 0x5a, 0xeb, 0x47, 0x9e, 0x76, 0xb0, 0xf4, //0x0000a0b8 .quad -815021110370542984 + 0x5c, 0x63, 0x9a, 0x93, 0xd2, 0xbe, 0x28, 0x90, //0x0000a0c0 .quad -8058981721550724260 + 0x8b, 0x18, 0xf3, 0xec, 0x22, 0x4a, 0xee, 0x98, //0x0000a0c8 .quad -7426917221622671221 + 0x33, 0xfc, 0x80, 0x38, 0x87, 0xee, 0x32, 0x74, //0x0000a0d0 .quad 8373016921771146291 + 0xae, 0xde, 0x2f, 0xa8, 0xab, 0xdc, 0x29, 0xbf, //0x0000a0d8 .quad -4671960508600951122 + 0x3f, 0x3b, 0xa1, 0x06, 0x29, 0xaa, 0x3f, 0x11, //0x0000a0e0 .quad 1242899115359157055 + 0x5a, 0xd6, 0x3b, 0x92, 0xd6, 0x53, 0xf4, 0xee, //0x0000a0e8 .quad -1228264617323800998 + 0x07, 0xc5, 0x24, 0xa4, 0x59, 0xca, 0xc7, 0x4a, //0x0000a0f0 .quad 5388497965526861063 + 0xf8, 0x65, 0x65, 0x1b, 0x66, 0xb4, 0x58, 0x95, //0x0000a0f8 .quad -7685194413468457480 + 0x49, 0xf6, 0x2d, 0x0d, 0xf0, 0xbc, 0x79, 0x5d, //0x0000a100 .quad 6735622456908576329 + 0x76, 0xbf, 0x3e, 0xa2, 0x7f, 0xe1, 0xae, 0xba, //0x0000a108 .quad -4994806998408183946 + 0xdc, 0x73, 0x79, 0x10, 0x2c, 0x2c, 0xd8, 0xf4, //0x0000a110 .quad -803843965719055396 + 0x53, 0x6f, 0xce, 0x8a, 0xdf, 0x99, 0x5a, 0xe9, //0x0000a118 .quad -1631822729582842029 + 0x69, 0xe8, 0x4b, 0x8a, 0x9b, 0x1b, 0x07, 0x79, //0x0000a120 .quad 8720969558280366185 + 0x94, 0x05, 0xc1, 0xb6, 0x2b, 0xa0, 0xd8, 0x91, //0x0000a128 .quad -7937418233630358124 + 0x84, 0xe2, 0xde, 0x6c, 0x82, 0xe2, 0x48, 0x97, //0x0000a130 .quad -7545532125859093884 + 0xf9, 0x46, 0x71, 0xa4, 0x36, 0xc8, 0x4e, 0xb6, //0x0000a138 .quad -5310086773610559751 + 0x25, 0x9b, 0x16, 0x08, 0x23, 0x1b, 0x1b, 0xfd, //0x0000a140 .quad -208543120469091547 + 0xb7, 0x98, 0x8d, 0x4d, 0x44, 0x7a, 0xe2, 0xe3, //0x0000a148 .quad -2025922448585811785 + 0xf7, 0x20, 0x0e, 0xe5, 0xf5, 0xf0, 0x30, 0xfe, //0x0000a150 .quad -130339450293182217 + 0x72, 0x7f, 0x78, 0xb0, 0x6a, 0x8c, 0x6d, 0x8e, //0x0000a158 .quad -8183730558007214222 + 0x35, 0xa9, 0x51, 0x5e, 0x33, 0x2d, 0xbd, 0xbd, //0x0000a160 .quad -4774610331293865675 + 0x4f, 0x9f, 0x96, 0x5c, 0x85, 0xef, 0x08, 0xb2, //0x0000a168 .quad -5617977179081629873 + 0x82, 0x13, 0xe6, 0x35, 0x80, 0x78, 0x2c, 0xad, //0x0000a170 .quad -5968262914117332094 + 0x23, 0x47, 0xbc, 0xb3, 0x66, 0x2b, 0x8b, 0xde, //0x0000a178 .quad -2410785455424649437 + 0x31, 0xcc, 0xaf, 0x21, 0x50, 0xcb, 0x3b, 0x4c, //0x0000a180 .quad 5493207715531443249 + 0x76, 0xac, 0x55, 0x30, 0x20, 0xfb, 0x16, 0x8b, //0x0000a188 .quad -8424269937281487754 + 0x3d, 0xbf, 0x1b, 0x2a, 0x24, 0xbe, 0x4a, 0xdf, //0x0000a190 .quad -2356862392440471747 + 0x93, 0x17, 0x6b, 0x3c, 0xe8, 0xb9, 0xdc, 0xad, //0x0000a198 .quad -5918651403174471789 + 0x0d, 0xaf, 0xa2, 0x34, 0xad, 0x6d, 0x1d, 0xd7, //0x0000a1a0 .quad -2946077990550589683 + 0x78, 0xdd, 0x85, 0x4b, 0x62, 0xe8, 0x53, 0xd9, //0x0000a1a8 .quad -2786628235540701832 + 0x68, 0xad, 0xe5, 0x40, 0x8c, 0x64, 0x72, 0x86, //0x0000a1b0 .quad -8758827771735200408 + 0x6b, 0xaa, 0x33, 0x6f, 0x3d, 0x71, 0xd4, 0x87, //0x0000a1b8 .quad -8659171674854020501 + 0xc2, 0x18, 0x1f, 0x51, 0xaf, 0xfd, 0x0e, 0x68, //0x0000a1c0 .quad 7498209359040551106 + 0x06, 0x95, 0x00, 0xcb, 0x8c, 0x8d, 0xc9, 0xa9, //0x0000a1c8 .quad -6212278575140137722 + 0xf2, 0xde, 0x66, 0x25, 0x1b, 0xbd, 0x12, 0x02, //0x0000a1d0 .quad 149389661945913074 + 0x48, 0xba, 0xc0, 0xfd, 0xef, 0xf0, 0x3b, 0xd4, //0x0000a1d8 .quad -3153662200497784248 + 0x57, 0x4b, 0x60, 0xf7, 0x30, 0xb6, 0x4b, 0x01, //0x0000a1e0 .quad 93368538716195671 + 0x6d, 0x74, 0x98, 0xfe, 0x95, 0x76, 0xa5, 0x84, //0x0000a1e8 .quad -8888567902952197011 + 0x2d, 0x5e, 0x38, 0x35, 0xbd, 0xa3, 0x9e, 0x41, //0x0000a1f0 .quad 4728396691822632493 + 0x88, 0x91, 0x3e, 0x7e, 0x3b, 0xd4, 0xce, 0xa5, //0x0000a1f8 .quad -6499023860262858360 + 0xb9, 0x75, 0x86, 0x82, 0xac, 0x4c, 0x06, 0x52, //0x0000a200 .quad 5910495864778290617 + 0xea, 0x35, 0xce, 0x5d, 0x4a, 0x89, 0x42, 0xcf, //0x0000a208 .quad -3512093806901185046 + 0x93, 0x09, 0x94, 0xd1, 0xeb, 0xef, 0x43, 0x73, //0x0000a210 .quad 8305745933913819539 + 0xb2, 0xe1, 0xa0, 0x7a, 0xce, 0x95, 0x89, 0x81, //0x0000a218 .quad -9112587656954322510 + 0xf8, 0x0b, 0xf9, 0xc5, 0xe6, 0xeb, 0x14, 0x10, //0x0000a220 .quad 1158810380537498616 + 0x1f, 0x1a, 0x49, 0x19, 0x42, 0xfb, 0xeb, 0xa1, //0x0000a228 .quad -6779048552765515233 + 0xf6, 0x4e, 0x77, 0x77, 0xe0, 0x26, 0x1a, 0xd4, //0x0000a230 .quad -3163173042755514634 + 0xa6, 0x60, 0x9b, 0x9f, 0x12, 0xfa, 0x66, 0xca, //0x0000a238 .quad -3862124672529506138 + 0xb4, 0x22, 0x55, 0x95, 0x98, 0xb0, 0x20, 0x89, //0x0000a240 .quad -8565652321871781196 + 0xd0, 0x38, 0x82, 0x47, 0x97, 0xb8, 0x00, 0xfd, //0x0000a248 .quad -215969822234494768 + 0xb0, 0x35, 0x55, 0x5d, 0x5f, 0x6e, 0xb4, 0x55, //0x0000a250 .quad 6175682344898606512 + 0x82, 0x63, 0xb1, 0x8c, 0x5e, 0x73, 0x20, 0x9e, //0x0000a258 .quad -7052510166537641086 + 0x1d, 0x83, 0xaa, 0x34, 0xf7, 0x89, 0x21, 0xeb, //0x0000a260 .quad -1503769105731517667 + 0x62, 0xbc, 0xdd, 0x2f, 0x36, 0x90, 0xa8, 0xc5, //0x0000a268 .quad -4203951689744663454 + 0xe4, 0x23, 0xd5, 0x01, 0x75, 0xec, 0xe9, 0xa5, //0x0000a270 .quad -6491397400591784988 + 0x7b, 0x2b, 0xd5, 0xbb, 0x43, 0xb4, 0x12, 0xf7, //0x0000a278 .quad -643253593753441413 + 0x6e, 0x36, 0x25, 0x21, 0xc9, 0x33, 0xb2, 0x47, //0x0000a280 .quad 5166248661484910190 + 0x2d, 0x3b, 0x65, 0x55, 0xaa, 0xb0, 0x6b, 0x9a, //0x0000a288 .quad -7319562523736982739 + 0x0a, 0x84, 0x6e, 0x69, 0xbb, 0xc0, 0x9e, 0x99, //0x0000a290 .quad -7377247228426025974 + 0xf8, 0x89, 0xbe, 0xea, 0xd4, 0x9c, 0x06, 0xc1, //0x0000a298 .quad -4537767136243840520 + 0x0d, 0x25, 0xca, 0x43, 0xea, 0x70, 0x06, 0xc0, //0x0000a2a0 .quad -4609873017105144563 + 0x76, 0x2c, 0x6e, 0x25, 0x0a, 0x44, 0x48, 0xf1, //0x0000a2a8 .quad -1060522901877412746 + 0x28, 0x57, 0x5e, 0x6a, 0x92, 0x06, 0x04, 0x38, //0x0000a2b0 .quad 4036358391950366504 + 0xca, 0xdb, 0x64, 0x57, 0x86, 0x2a, 0xcd, 0x96, //0x0000a2b8 .quad -7580355841314464822 + 0xf2, 0xec, 0xf5, 0x04, 0x37, 0x08, 0x05, 0xc6, //0x0000a2c0 .quad -4177924046916817678 + 0xbc, 0x12, 0x3e, 0xed, 0x27, 0x75, 0x80, 0xbc, //0x0000a2c8 .quad -4863758783215693124 + 0x2e, 0x68, 0x33, 0xc6, 0x44, 0x4a, 0x86, 0xf7, //0x0000a2d0 .quad -610719040218634194 + 0x6b, 0x97, 0x8d, 0xe8, 0x71, 0x92, 0xa0, 0xeb, //0x0000a2d8 .quad -1468012460592228501 + 0x1d, 0x21, 0xe0, 0xfb, 0x6a, 0xee, 0xb3, 0x7a, //0x0000a2e0 .quad 8841672636718129437 + 0xa3, 0x7e, 0x58, 0x31, 0x87, 0x5b, 0x44, 0x93, //0x0000a2e8 .quad -7835036815511224669 + 0x64, 0x29, 0xd8, 0xba, 0x05, 0xea, 0x60, 0x59, //0x0000a2f0 .quad 6440404777470273892 + 0x4c, 0x9e, 0xae, 0xfd, 0x68, 0x72, 0x15, 0xb8, //0x0000a2f8 .quad -5182110000961642932 + 0xbd, 0x33, 0x8e, 0x29, 0x87, 0x24, 0xb9, 0x6f, //0x0000a300 .quad 8050505971837842365 + 0xdf, 0x45, 0x1a, 0x3d, 0x03, 0xcf, 0x1a, 0xe6, //0x0000a308 .quad -1865951482774665761 + 0x56, 0xe0, 0xf8, 0x79, 0xd4, 0xb6, 0xd3, 0xa5, //0x0000a310 .quad -6497648813669818282 + 0xab, 0x6b, 0x30, 0x06, 0x62, 0xc1, 0xd0, 0x8f, //0x0000a318 .quad -8083748704375247957 + 0x6c, 0x18, 0x77, 0x98, 0x89, 0xa4, 0x48, 0x8f, //0x0000a320 .quad -8122061017087272852 + 0x96, 0x86, 0xbc, 0x87, 0xba, 0xf1, 0xc4, 0xb3, //0x0000a328 .quad -5492999862041672042 + 0x87, 0xde, 0x94, 0xfe, 0xab, 0xcd, 0x1a, 0x33, //0x0000a330 .quad 3682481783923072647 + 0x3c, 0xa8, 0xab, 0x29, 0x29, 0x2e, 0xb6, 0xe0, //0x0000a338 .quad -2254563809124702148 + 0x14, 0x0b, 0x1d, 0x7f, 0x8b, 0xc0, 0xf0, 0x9f, //0x0000a340 .quad -6921820921902855404 + 0x25, 0x49, 0x0b, 0xba, 0xd9, 0xdc, 0x71, 0x8c, //0x0000a348 .quad -8326631408344020699 + 0xd9, 0x4d, 0xe4, 0x5e, 0xae, 0xf0, 0xec, 0x07, //0x0000a350 .quad 571095884476206553 + 0x6f, 0x1b, 0x8e, 0x28, 0x10, 0x54, 0x8e, 0xaf, //0x0000a358 .quad -5796603242002637969 + 0x50, 0x61, 0x9d, 0xf6, 0xd9, 0x2c, 0xe8, 0xc9, //0x0000a360 .quad -3897816162832129712 + 0x4a, 0xa2, 0xb1, 0x32, 0x14, 0xe9, 0x71, 0xdb, //0x0000a368 .quad -2634068034075909558 + 0xd2, 0x5c, 0x22, 0x3a, 0x08, 0x1c, 0x31, 0xbe, //0x0000a370 .quad -4741978110983775022 + 0x6e, 0x05, 0xaf, 0x9f, 0xac, 0x31, 0x27, 0x89, //0x0000a378 .quad -8563821548938525330 + 0x06, 0xf4, 0xaa, 0x48, 0x0a, 0x63, 0xbd, 0x6d, //0x0000a380 .quad 7907585416552444934 + 0xca, 0xc6, 0x9a, 0xc7, 0x17, 0xfe, 0x70, 0xab, //0x0000a388 .quad -6093090917745768758 + 0x08, 0xb1, 0xd5, 0xda, 0xcc, 0xbb, 0x2c, 0x09, //0x0000a390 .quad 661109733835780360 + 0x7d, 0x78, 0x81, 0xb9, 0x9d, 0x3d, 0x4d, 0xd6, //0x0000a398 .quad -3004677628754823043 + 0xa5, 0x8e, 0xc5, 0x08, 0x60, 0xf5, 0xbb, 0x25, //0x0000a3a0 .quad 2719036592861056677 + 0x4e, 0xeb, 0xf0, 0x93, 0x82, 0x46, 0xf0, 0x85, //0x0000a3a8 .quad -8795452545612846258 + 0x4e, 0xf2, 0xf6, 0x0a, 0xb8, 0xf2, 0x2a, 0xaf, //0x0000a3b0 .quad -5824576295778454962 + 0x21, 0x26, 0xed, 0x38, 0x23, 0x58, 0x6c, 0xa7, //0x0000a3b8 .quad -6382629663588669919 + 0xe1, 0xae, 0xb4, 0x0d, 0x66, 0xaf, 0xf5, 0x1a, //0x0000a3c0 .quad 1942651667131707105 + 0xaa, 0x6f, 0x28, 0x07, 0x2c, 0x6e, 0x47, 0xd1, //0x0000a3c8 .quad -3366601061058449494 + 0x4d, 0xed, 0x90, 0xc8, 0x9f, 0x8d, 0xd9, 0x50, //0x0000a3d0 .quad 5825843310384704845 + 0xca, 0x45, 0x79, 0x84, 0xdb, 0xa4, 0xcc, 0x82, //0x0000a3d8 .quad -9021654690802612790 + 0xa0, 0x28, 0xb5, 0xba, 0x07, 0xf1, 0x0f, 0xe5, //0x0000a3e0 .quad -1941067898873894752 + 0x3c, 0x97, 0x97, 0x65, 0x12, 0xce, 0x7f, 0xa3, //0x0000a3e8 .quad -6665382345075878084 + 0xc8, 0x72, 0x62, 0xa9, 0x49, 0xed, 0x53, 0x1e, //0x0000a3f0 .quad 2185351144835019464 + 0x0c, 0x7d, 0xfd, 0xfe, 0x96, 0xc1, 0x5f, 0xcc, //0x0000a3f8 .quad -3720041912917459700 + 0x7a, 0x0f, 0xbb, 0x13, 0x9c, 0xe8, 0xe8, 0x25, //0x0000a400 .quad 2731688931043774330 + 0x4f, 0xdc, 0xbc, 0xbe, 0xfc, 0xb1, 0x77, 0xff, //0x0000a408 .quad -38366372719436721 + 0xac, 0xe9, 0x54, 0x8c, 0x61, 0x91, 0xb1, 0x77, //0x0000a410 .quad 8624834609543440812 + 0xb1, 0x09, 0x36, 0xf7, 0x3d, 0xcf, 0xaa, 0x9f, //0x0000a418 .quad -6941508010590729807 + 0x17, 0x24, 0x6a, 0xef, 0xb9, 0xf5, 0x9d, 0xd5, //0x0000a420 .quad -3054014793352862697 + 0x1d, 0x8c, 0x03, 0x75, 0x0d, 0x83, 0x95, 0xc7, //0x0000a428 .quad -4065198994811024355 + 0x1d, 0xad, 0x44, 0x6b, 0x28, 0x73, 0x05, 0x4b, //0x0000a430 .quad 5405853545163697437 + 0x25, 0x6f, 0x44, 0xd2, 0xd0, 0xe3, 0x7a, 0xf9, //0x0000a438 .quad -469812725086392539 + 0x32, 0xec, 0x0a, 0x43, 0xf9, 0x67, 0xe3, 0x4e, //0x0000a440 .quad 5684501474941004850 + 0x77, 0xc5, 0x6a, 0x83, 0x62, 0xce, 0xec, 0x9b, //0x0000a448 .quad -7211161980820077193 + 0x3f, 0xa7, 0xcd, 0x93, 0xf7, 0x41, 0x9c, 0x22, //0x0000a450 .quad 2493940825248868159 + 0xd5, 0x76, 0x45, 0x24, 0xfb, 0x01, 0xe8, 0xc2, //0x0000a458 .quad -4402266457597708587 + 0x0f, 0x11, 0xc1, 0x78, 0x75, 0x52, 0x43, 0x6b, //0x0000a460 .quad 7729112049988473103 + 0x8a, 0xd4, 0x56, 0xed, 0x79, 0x02, 0xa2, 0xf3, //0x0000a468 .quad -891147053569747830 + 0xa9, 0xaa, 0x78, 0x6b, 0x89, 0x13, 0x0a, 0x83, //0x0000a470 .quad -9004363024039368023 + 0xd6, 0x44, 0x56, 0x34, 0x8c, 0x41, 0x45, 0x98, //0x0000a478 .quad -7474495936122174250 + 0x53, 0xd5, 0x56, 0xc6, 0x6b, 0x98, 0xcc, 0x23, //0x0000a480 .quad 2579604275232953683 + 0x0c, 0xd6, 0x6b, 0x41, 0xef, 0x91, 0x56, 0xbe, //0x0000a488 .quad -4731433901725329908 + 0xa8, 0x8a, 0xec, 0xb7, 0x86, 0xbe, 0xbf, 0x2c, //0x0000a490 .quad 3224505344041192104 + 0x8f, 0xcb, 0xc6, 0x11, 0x6b, 0x36, 0xec, 0xed, //0x0000a498 .quad -1302606358729274481 + 0xa9, 0xd6, 0xf3, 0x32, 0x14, 0xd7, 0xf7, 0x7b, //0x0000a4a0 .quad 8932844867666826921 + 0x39, 0x3f, 0x1c, 0xeb, 0x02, 0xa2, 0xb3, 0x94, //0x0000a4a8 .quad -7731658001846878407 + 0x53, 0xcc, 0xb0, 0x3f, 0xd9, 0xcc, 0xf5, 0xda, //0x0000a4b0 .quad -2669001970698630061 + 0x07, 0x4f, 0xe3, 0xa5, 0x83, 0x8a, 0xe0, 0xb9, //0x0000a4b8 .quad -5052886483881210105 + 0x68, 0xff, 0x9c, 0x8f, 0x0f, 0x40, 0xb3, 0xd1, //0x0000a4c0 .quad -3336252463373287576 + 0xc9, 0x22, 0x5c, 0x8f, 0x24, 0xad, 0x58, 0xe8, //0x0000a4c8 .quad -1704422086424124727 + 0xa1, 0x1f, 0xc2, 0xb9, 0x09, 0x08, 0x10, 0x23, //0x0000a4d0 .quad 2526528228819083169 + 0xbe, 0x95, 0x99, 0xd9, 0x36, 0x6c, 0x37, 0x91, //0x0000a4d8 .quad -7982792831656159810 + 0x8a, 0xa7, 0x32, 0x28, 0x0c, 0x0a, 0xd4, 0xab, //0x0000a4e0 .quad -6065211750830921846 + 0x2d, 0xfb, 0xff, 0x8f, 0x44, 0x47, 0x85, 0xb5, //0x0000a4e8 .quad -5366805021142811859 + 0x6c, 0x51, 0x3f, 0x32, 0x8f, 0x0c, 0xc9, 0x16, //0x0000a4f0 .quad 1641857348316123500 + 0xf9, 0xf9, 0xff, 0xb3, 0x15, 0x99, 0xe6, 0xe2, //0x0000a4f8 .quad -2096820258001126919 + 0xe3, 0x92, 0x67, 0x7f, 0xd9, 0xa7, 0x3d, 0xae, //0x0000a500 .quad -5891368184943504669 + 0x3b, 0xfc, 0x7f, 0x90, 0xad, 0x1f, 0xd0, 0x8d, //0x0000a508 .quad -8228041688891786181 + 0x9c, 0x77, 0x41, 0xdf, 0xcf, 0x11, 0xcd, 0x99, //0x0000a510 .quad -7364210231179380836 + 0x4a, 0xfb, 0x9f, 0xf4, 0x98, 0x27, 0x44, 0xb1, //0x0000a518 .quad -5673366092687344822 + 0x83, 0xd5, 0x11, 0xd7, 0x43, 0x56, 0x40, 0x40, //0x0000a520 .quad 4629795266307937667 + 0x1d, 0xfa, 0xc7, 0x31, 0x7f, 0x31, 0x95, 0xdd, //0x0000a528 .quad -2480021597431793123 + 0x72, 0x25, 0x6b, 0x66, 0xea, 0x35, 0x28, 0x48, //0x0000a530 .quad 5199465050656154994 + 0x52, 0xfc, 0x1c, 0x7f, 0xef, 0x3e, 0x7d, 0x8a, //0x0000a538 .quad -8467542526035952558 + 0xcf, 0xee, 0x05, 0x00, 0x65, 0x43, 0x32, 0xda, //0x0000a540 .quad -2724040723534582065 + 0x66, 0x3b, 0xe4, 0x5e, 0xab, 0x8e, 0x1c, 0xad, //0x0000a548 .quad -5972742139117552794 + 0x82, 0x6a, 0x07, 0x40, 0x3e, 0xd4, 0xbe, 0x90, //0x0000a550 .quad -8016736922845615486 + 0x40, 0x4a, 0x9d, 0x36, 0x56, 0xb2, 0x63, 0xd8, //0x0000a558 .quad -2854241655469553088 + 0x91, 0xa2, 0x04, 0xe8, 0xa6, 0x44, 0x77, 0x5a, //0x0000a560 .quad 6518754469289960081 + 0x68, 0x4e, 0x22, 0xe2, 0x75, 0x4f, 0x3e, 0x87, //0x0000a568 .quad -8701430062309552536 + 0x36, 0xcb, 0x05, 0xa2, 0xd0, 0x15, 0x15, 0x71, //0x0000a570 .quad 8148443086612450102 + 0x02, 0xe2, 0xaa, 0x5a, 0x53, 0xe3, 0x0d, 0xa9, //0x0000a578 .quad -6265101559459552766 + 0x03, 0x3e, 0x87, 0xca, 0x44, 0x5b, 0x5a, 0x0d, //0x0000a580 .quad 962181821410786819 + 0x83, 0x9a, 0x55, 0x31, 0x28, 0x5c, 0x51, 0xd3, //0x0000a588 .quad -3219690930897053053 + 0xc2, 0x86, 0x94, 0xfe, 0x0a, 0x79, 0x58, 0xe8, //0x0000a590 .quad -1704479370831952190 + 0x91, 0x80, 0xd5, 0x1e, 0x99, 0xd9, 0x12, 0x84, //0x0000a598 .quad -8929835859451740015 + 0x72, 0xa8, 0x39, 0xbe, 0x4d, 0x97, 0x6e, 0x62, //0x0000a5a0 .quad 7092772823314835570 + 0xb6, 0xe0, 0x8a, 0x66, 0xff, 0x8f, 0x17, 0xa5, //0x0000a5a8 .quad -6550608805887287114 + 0x8f, 0x12, 0xc8, 0x2d, 0x21, 0x3d, 0x0a, 0xfb, //0x0000a5b0 .quad -357406007711231345 + 0xe3, 0x98, 0x2d, 0x40, 0xff, 0x73, 0x5d, 0xce, //0x0000a5b8 .quad -3576574988931720989 + 0x99, 0x0b, 0x9d, 0xbc, 0x34, 0x66, 0xe6, 0x7c, //0x0000a5c0 .quad 8999993282035256217 + 0x8e, 0x7f, 0x1c, 0x88, 0x7f, 0x68, 0xfa, 0x80, //0x0000a5c8 .quad -9152888395723407474 + 0x80, 0x4e, 0xc4, 0xeb, 0xc1, 0xff, 0x1f, 0x1c, //0x0000a5d0 .quad 2026619565689294464 + 0x72, 0x9f, 0x23, 0x6a, 0x9f, 0x02, 0x39, 0xa1, //0x0000a5d8 .quad -6829424476226871438 + 0x20, 0x62, 0xb5, 0x66, 0xb2, 0xff, 0x27, 0xa3, //0x0000a5e0 .quad -6690097579743157728 + 0x4e, 0x87, 0xac, 0x44, 0x47, 0x43, 0x87, 0xc9, //0x0000a5e8 .quad -3925094576856201394 + 0xa8, 0xba, 0x62, 0x00, 0x9f, 0xff, 0xf1, 0x4b, //0x0000a5f0 .quad 5472436080603216552 + 0x22, 0xa9, 0xd7, 0x15, 0x19, 0x14, 0xe9, 0xfb, //0x0000a5f8 .quad -294682202642863838 + 0xa9, 0xb4, 0x3d, 0x60, 0xc3, 0x3f, 0x77, 0x6f, //0x0000a600 .quad 8031958568804398249 + 0xb5, 0xc9, 0xa6, 0xad, 0x8f, 0xac, 0x71, 0x9d, //0x0000a608 .quad -7101705404292871755 + 0xd3, 0x21, 0x4d, 0x38, 0xb4, 0x0f, 0x55, 0xcb, //0x0000a610 .quad -3795109844276665901 + 0x22, 0x7c, 0x10, 0x99, 0xb3, 0x17, 0xce, 0xc4, //0x0000a618 .quad -4265445736938701790 + 0x48, 0x6a, 0x60, 0x46, 0xa1, 0x53, 0x2a, 0x7e, //0x0000a620 .quad 9091170749936331336 + 0x2b, 0x9b, 0x54, 0x7f, 0xa0, 0x9d, 0x01, 0xf6, //0x0000a628 .quad -720121152745989333 + 0x6d, 0x42, 0xfc, 0xcb, 0x44, 0x74, 0xda, 0x2e, //0x0000a630 .quad 3376138709496513133 + 0xfb, 0xe0, 0x94, 0x4f, 0x84, 0x02, 0xc1, 0x99, //0x0000a638 .quad -7367604748107325189 + 0x08, 0x53, 0xfb, 0xfe, 0x55, 0x11, 0x91, 0xfa, //0x0000a640 .quad -391512631556746488 + 0x39, 0x19, 0x7a, 0x63, 0x25, 0x43, 0x31, 0xc0, //0x0000a648 .quad -4597819916706768583 + 0xca, 0x27, 0xba, 0x7e, 0xab, 0x55, 0x35, 0x79, //0x0000a650 .quad 8733981247408842698 + 0x88, 0x9f, 0x58, 0xbc, 0xee, 0x93, 0x3d, 0xf0, //0x0000a658 .quad -1135588877456072824 + 0xde, 0x58, 0x34, 0x2f, 0x8b, 0x55, 0xc1, 0x4b, //0x0000a660 .quad 5458738279630526686 + 0xb5, 0x63, 0xb7, 0x35, 0x75, 0x7c, 0x26, 0x96, //0x0000a668 .quad -7627272076051127371 + 0x16, 0x6f, 0x01, 0xfb, 0xed, 0xaa, 0xb1, 0x9e, //0x0000a670 .quad -7011635205744005354 + 0xa2, 0x3c, 0x25, 0x83, 0x92, 0x1b, 0xb0, 0xbb, //0x0000a678 .quad -4922404076636521310 + 0xdc, 0xca, 0xc1, 0x79, 0xa9, 0x15, 0x5e, 0x46, //0x0000a680 .quad 5070514048102157020 + 0xcb, 0x8b, 0xee, 0x23, 0x77, 0x22, 0x9c, 0xea, //0x0000a688 .quad -1541319077368263733 + 0xc9, 0x1e, 0x19, 0xec, 0x89, 0xcd, 0xfa, 0x0b, //0x0000a690 .quad 863228270850154185 + 0x5f, 0x17, 0x75, 0x76, 0x8a, 0x95, 0xa1, 0x92, //0x0000a698 .quad -7880853450996246689 + 0x7b, 0x66, 0x1f, 0x67, 0xec, 0x80, 0xf9, 0xce, //0x0000a6a0 .quad -3532650679864695173 + 0x36, 0x5d, 0x12, 0x14, 0xed, 0xfa, 0x49, 0xb7, //0x0000a6a8 .quad -5239380795317920458 + 0x1a, 0x40, 0xe7, 0x80, 0x27, 0xe1, 0xb7, 0x82, //0x0000a6b0 .quad -9027499368258256870 + 0x84, 0xf4, 0x16, 0x59, 0xa8, 0x79, 0x1c, 0xe5, //0x0000a6b8 .quad -1937539975720012668 + 0x10, 0x88, 0x90, 0xb0, 0xb8, 0xec, 0xb2, 0xd1, //0x0000a6c0 .quad -3336344095947716592 + 0xd2, 0x58, 0xae, 0x37, 0x09, 0xcc, 0x31, 0x8f, //0x0000a6c8 .quad -8128491512466089774 + 0x15, 0xaa, 0xb4, 0xdc, 0xe6, 0xa7, 0x1f, 0x86, //0x0000a6d0 .quad -8782116138362033643 + 0x07, 0xef, 0x99, 0x85, 0x0b, 0x3f, 0xfe, 0xb2, //0x0000a6d8 .quad -5548928372155224313 + 0x9a, 0xd4, 0xe1, 0x93, 0xe0, 0x91, 0xa7, 0x67, //0x0000a6e0 .quad 7469098900757009562 + 0xc9, 0x6a, 0x00, 0x67, 0xce, 0xce, 0xbd, 0xdf, //0x0000a6e8 .quad -2324474446766642487 + 0xe0, 0x24, 0x6d, 0x5c, 0x2c, 0xbb, 0xc8, 0xe0, //0x0000a6f0 .quad -2249342214667950880 + 0xbd, 0x42, 0x60, 0x00, 0x41, 0xa1, 0xd6, 0x8b, //0x0000a6f8 .quad -8370325556870233411 + 0x18, 0x6e, 0x88, 0x73, 0xf7, 0xe9, 0xfa, 0x58, //0x0000a700 .quad 6411694268519837208 + 0x6d, 0x53, 0x78, 0x40, 0x91, 0x49, 0xcc, 0xae, //0x0000a708 .quad -5851220927660403859 + 0x9e, 0x89, 0x6a, 0x50, 0x75, 0xa4, 0x39, 0xaf, //0x0000a710 .quad -5820440219632367202 + 0x48, 0x68, 0x96, 0x90, 0xf5, 0x5b, 0x7f, 0xda, //0x0000a718 .quad -2702340141148116920 + 0x03, 0x96, 0x42, 0x52, 0xc9, 0x06, 0x84, 0x6d, //0x0000a720 .quad 7891439908798240259 + 0x2d, 0x01, 0x5e, 0x7a, 0x79, 0x99, 0x8f, 0x88, //0x0000a728 .quad -8606491615858654931 + 0x83, 0x3b, 0xd3, 0xa6, 0x7b, 0x08, 0xe5, 0xc8, //0x0000a730 .quad -3970758169284363389 + 0x78, 0x81, 0xf5, 0xd8, 0xd7, 0x7f, 0xb3, 0xaa, //0x0000a738 .quad -6146428501395930760 + 0x64, 0x0a, 0x88, 0x90, 0x9a, 0x4a, 0x1e, 0xfb, //0x0000a740 .quad -351761693178066332 + 0xd6, 0xe1, 0x32, 0xcf, 0xcd, 0x5f, 0x60, 0xd5, //0x0000a748 .quad -3071349608317525546 + 0x7f, 0x06, 0x55, 0x9a, 0xa0, 0xee, 0xf2, 0x5c, //0x0000a750 .quad 6697677969404790399 + 0x26, 0xcd, 0x7f, 0xa1, 0xe0, 0x3b, 0x5c, 0x85, //0x0000a758 .quad -8837122532839535322 + 0x1e, 0x48, 0xea, 0xc0, 0x48, 0xaa, 0x2f, 0xf4, //0x0000a760 .quad -851274575098787810 + 0x6f, 0xc0, 0xdf, 0xc9, 0xd8, 0x4a, 0xb3, 0xa6, //0x0000a768 .quad -6434717147622031249 + 0x26, 0xda, 0x24, 0xf1, 0xda, 0x94, 0x3b, 0xf1, //0x0000a770 .quad -1064093218873484762 + 0x8b, 0xb0, 0x57, 0xfc, 0x8e, 0x1d, 0x60, 0xd0, //0x0000a778 .quad -3431710416100151157 + 0x58, 0x08, 0xb7, 0xd6, 0x08, 0x3d, 0xc5, 0x76, //0x0000a780 .quad 8558313775058847832 + 0x57, 0xce, 0xb6, 0x5d, 0x79, 0x12, 0x3c, 0x82, //0x0000a788 .quad -9062348037703676329 + 0x6e, 0xca, 0x64, 0x0c, 0x4b, 0x8c, 0x76, 0x54, //0x0000a790 .quad 6086206200396171886 + 0xed, 0x81, 0x24, 0xb5, 0x17, 0x17, 0xcb, 0xa2, //0x0000a798 .quad -6716249028702207507 + 0x09, 0xfd, 0x7d, 0xcf, 0x5d, 0x2f, 0x94, 0xa9, //0x0000a7a0 .quad -6227300304786948855 + 0x68, 0xa2, 0x6d, 0xa2, 0xdd, 0xdc, 0x7d, 0xcb, //0x0000a7a8 .quad -3783625267450371480 + 0x4c, 0x7c, 0x5d, 0x43, 0x35, 0x3b, 0xf9, 0xd3, //0x0000a7b0 .quad -3172439362556298164 + 0x02, 0x0b, 0x09, 0x0b, 0x15, 0x54, 0x5d, 0xfe, //0x0000a7b8 .quad -117845565885576446 + 0xaf, 0x6d, 0x1a, 0x4a, 0x01, 0xc5, 0x7b, 0xc4, //0x0000a7c0 .quad -4288617610811380305 + 0xe1, 0xa6, 0xe5, 0x26, 0x8d, 0x54, 0xfa, 0x9e, //0x0000a7c8 .quad -6991182506319567135 + 0x1b, 0x09, 0xa1, 0x9c, 0x41, 0xb6, 0x9a, 0x35, //0x0000a7d0 .quad 3862600023340550427 + 0x9a, 0x10, 0x9f, 0x70, 0xb0, 0xe9, 0xb8, 0xc6, //0x0000a7d8 .quad -4127292114472071014 + 0x62, 0x4b, 0xc9, 0x03, 0xd2, 0x63, 0x01, 0xc3, //0x0000a7e0 .quad -4395122007679087774 + 0xc0, 0xd4, 0xc6, 0x8c, 0x1c, 0x24, 0x67, 0xf8, //0x0000a7e8 .quad -547429124662700864 + 0x1d, 0xcf, 0x5d, 0x42, 0x63, 0xde, 0xe0, 0x79, //0x0000a7f0 .quad 8782263791269039901 + 0xf8, 0x44, 0xfc, 0xd7, 0x91, 0x76, 0x40, 0x9b, //0x0000a7f8 .quad -7259672230555269896 + 0xe4, 0x42, 0xf5, 0x12, 0xfc, 0x15, 0x59, 0x98, //0x0000a800 .quad -7468914334623251740 + 0x36, 0x56, 0xfb, 0x4d, 0x36, 0x94, 0x10, 0xc2, //0x0000a808 .quad -4462904269766699466 + 0x9d, 0x93, 0xb2, 0x17, 0x7b, 0x5b, 0x6f, 0x3e, //0x0000a810 .quad 4498915137003099037 + 0xc4, 0x2b, 0x7a, 0xe1, 0x43, 0xb9, 0x94, 0xf2, //0x0000a818 .quad -966944318780986428 + 0x42, 0x9c, 0xcf, 0xee, 0x2c, 0x99, 0x05, 0xa7, //0x0000a820 .quad -6411550076227838910 + 0x5a, 0x5b, 0xec, 0x6c, 0xca, 0xf3, 0x9c, 0x97, //0x0000a828 .quad -7521869226879198374 + 0x53, 0x83, 0x83, 0x2a, 0x78, 0xff, 0xc6, 0x50, //0x0000a830 .quad 5820620459997365075 + 0x31, 0x72, 0x27, 0x08, 0xbd, 0x30, 0x84, 0xbd, //0x0000a838 .quad -4790650515171610063 + 0x28, 0x64, 0x24, 0x35, 0x56, 0xbf, 0xf8, 0xa4, //0x0000a840 .quad -6559282480285457368 + 0xbd, 0x4e, 0x31, 0x4a, 0xec, 0x3c, 0xe5, 0xec, //0x0000a848 .quad -1376627125537124675 + 0x99, 0xbe, 0x36, 0xe1, 0x95, 0x77, 0x1b, 0x87, //0x0000a850 .quad -8711237568605798759 + 0x36, 0xd1, 0x5e, 0xae, 0x13, 0x46, 0x0f, 0x94, //0x0000a858 .quad -7777920981101784778 + 0x3f, 0x6e, 0x84, 0x59, 0x7b, 0x55, 0xe2, 0x28, //0x0000a860 .quad 2946011094524915263 + 0x84, 0x85, 0xf6, 0x99, 0x98, 0x17, 0x13, 0xb9, //0x0000a868 .quad -5110715207949843068 + 0xcf, 0x89, 0xe5, 0x2f, 0xda, 0xea, 0x1a, 0x33, //0x0000a870 .quad 3682513868156144079 + 0xe5, 0x26, 0x74, 0xc0, 0x7e, 0xdd, 0x57, 0xe7, //0x0000a878 .quad -1776707991509915931 + 0x21, 0x76, 0xef, 0x5d, 0xc8, 0xd2, 0xf0, 0x3f, //0x0000a880 .quad 4607414176811284001 + 0x4f, 0x98, 0x48, 0x38, 0x6f, 0xea, 0x96, 0x90, //0x0000a888 .quad -8027971522334779313 + 0xa9, 0x53, 0x6b, 0x75, 0x7a, 0x07, 0xed, 0x0f, //0x0000a890 .quad 1147581702586717097 + 0x63, 0xbe, 0x5a, 0x06, 0x0b, 0xa5, 0xbc, 0xb4, //0x0000a898 .quad -5423278384491086237 + 0x94, 0x28, 0xc6, 0x12, 0x59, 0x49, 0xe8, 0xd3, //0x0000a8a0 .quad -3177208890193991532 + 0xfb, 0x6d, 0xf1, 0xc7, 0x4d, 0xce, 0xeb, 0xe1, //0x0000a8a8 .quad -2167411962186469893 + 0x5c, 0xd9, 0xbb, 0xab, 0xd7, 0x2d, 0x71, 0x64, //0x0000a8b0 .quad 7237616480483531100 + 0xbd, 0xe4, 0xf6, 0x9c, 0xf0, 0x60, 0x33, 0x8d, //0x0000a8b8 .quad -8272161504007625539 + 0xb3, 0xcf, 0xaa, 0x96, 0x4d, 0x79, 0x8d, 0xbd, //0x0000a8c0 .quad -4788037454677749837 + 0xec, 0x9d, 0x34, 0xc4, 0x2c, 0x39, 0x80, 0xb0, //0x0000a8c8 .quad -5728515861582144020 + 0xa0, 0x83, 0x55, 0xfc, 0xa0, 0xd7, 0xf0, 0xec, //0x0000a8d0 .quad -1373360799919799392 + 0x67, 0xc5, 0x41, 0xf5, 0x77, 0x47, 0xa0, 0xdc, //0x0000a8d8 .quad -2548958808550292121 + 0x44, 0x72, 0xb5, 0x9d, 0xc4, 0x86, 0x16, 0xf4, //0x0000a8e0 .quad -858350499949874620 + 0x60, 0x1b, 0x49, 0xf9, 0xaa, 0x2c, 0xe4, 0x89, //0x0000a8e8 .quad -8510628282985014432 + 0xd5, 0xce, 0x22, 0xc5, 0x75, 0x28, 0x1c, 0x31, //0x0000a8f0 .quad 3538747893490044629 + 0x39, 0x62, 0x9b, 0xb7, 0xd5, 0x37, 0x5d, 0xac, //0x0000a8f8 .quad -6026599335303880135 + 0x8b, 0x82, 0x6b, 0x36, 0x93, 0x32, 0x63, 0x7d, //0x0000a900 .quad 9035120885289943691 + 0xc7, 0x3a, 0x82, 0x25, 0xcb, 0x85, 0x74, 0xd7, //0x0000a908 .quad -2921563150702462265 + 0x97, 0x31, 0x03, 0x02, 0x9c, 0xff, 0x5d, 0xae, //0x0000a910 .quad -5882264492762254953 + 0xbc, 0x64, 0x71, 0xf7, 0x9e, 0xd3, 0xa8, 0x86, //0x0000a918 .quad -8743505996830120772 + 0xfc, 0xfd, 0x83, 0x02, 0x83, 0x7f, 0xf5, 0xd9, //0x0000a920 .quad -2741144597525430788 + 0xeb, 0xbd, 0x4d, 0xb5, 0x86, 0x08, 0x53, 0xa8, //0x0000a928 .quad -6317696477610263061 + 0x7b, 0xfd, 0x24, 0xc3, 0x63, 0xdf, 0x72, 0xd0, //0x0000a930 .quad -3426430746906788485 + 0x66, 0x2d, 0xa1, 0x62, 0xa8, 0xca, 0x67, 0xd2, //0x0000a938 .quad -3285434578585440922 + 0x6d, 0x1e, 0xf7, 0x59, 0x9e, 0xcb, 0x47, 0x42, //0x0000a940 .quad 4776009810824339053 + 0x60, 0xbc, 0xa4, 0x3d, 0xa9, 0xde, 0x80, 0x83, //0x0000a948 .quad -8970925639256982432 + 0x08, 0xe6, 0x74, 0xf0, 0x85, 0xbe, 0xd9, 0x52, //0x0000a950 .quad 5970012263530423816 + 0x78, 0xeb, 0x0d, 0x8d, 0x53, 0x16, 0x61, 0xa4, //0x0000a958 .quad -6601971030643840136 + 0x8b, 0x1f, 0x92, 0x6c, 0x27, 0x2e, 0x90, 0x67, //0x0000a960 .quad 7462515329413029771 + 0x56, 0x66, 0x51, 0x70, 0xe8, 0x5b, 0x79, 0xcd, //0x0000a968 .quad -3640777769877412266 + 0xb6, 0x53, 0xdb, 0xa3, 0xd8, 0x1c, 0xba, 0x00, //0x0000a970 .quad 52386062455755702 + 0xf6, 0xdf, 0x32, 0x46, 0x71, 0xd9, 0x6b, 0x80, //0x0000a978 .quad -9193015133814464522 + 0xa4, 0x28, 0xd2, 0xcc, 0x0e, 0xa4, 0xe8, 0x80, //0x0000a980 .quad -9157889458785081180 + 0xf3, 0x97, 0xbf, 0x97, 0xcd, 0xcf, 0x86, 0xa0, //0x0000a988 .quad -6879582898840692749 + 0xcd, 0xb2, 0x06, 0x80, 0x12, 0xcd, 0x22, 0x61, //0x0000a990 .quad 6999382250228200141 + 0xf0, 0x7d, 0xaf, 0xfd, 0xc0, 0x83, 0xa8, 0xc8, //0x0000a998 .quad -3987792605123478032 + 0x81, 0x5f, 0x08, 0x20, 0x57, 0x80, 0x6b, 0x79, //0x0000a9a0 .quad 8749227812785250177 + 0x6c, 0x5d, 0x1b, 0x3d, 0xb1, 0xa4, 0xd2, 0xfa, //0x0000a9a8 .quad -373054737976959636 + 0xb0, 0x3b, 0x05, 0x74, 0x36, 0x30, 0xe3, 0xcb, //0x0000a9b0 .quad -3755104653863994448 + 0x63, 0x1a, 0x31, 0xc6, 0xee, 0xa6, 0xc3, 0x9c, //0x0000a9b8 .quad -7150688238876681629 + 0x9c, 0x8a, 0x06, 0x11, 0x44, 0xfc, 0xdb, 0xbe, //0x0000a9c0 .quad -4693880817329993060 + 0xfc, 0x60, 0xbd, 0x77, 0xaa, 0x90, 0xf4, 0xc3, //0x0000a9c8 .quad -4326674280168464132 + 0x44, 0x2d, 0x48, 0x15, 0x55, 0xfb, 0x92, 0xee, //0x0000a9d0 .quad -1255665003235103420 + 0x3b, 0xb9, 0xac, 0x15, 0xd5, 0xb4, 0xf1, 0xf4, //0x0000a9d8 .quad -796656831783192261 + 0x4a, 0x1c, 0x4d, 0x2d, 0x15, 0xdd, 0x1b, 0x75, //0x0000a9e0 .quad 8438581409832836170 + 0xc5, 0xf3, 0x8b, 0x2d, 0x05, 0x11, 0x17, 0x99, //0x0000a9e8 .quad -7415439547505577019 + 0x5d, 0x63, 0xa0, 0x78, 0x5a, 0xd4, 0x62, 0xd2, //0x0000a9f0 .quad -3286831292991118499 + 0xb6, 0xf0, 0xee, 0x78, 0x46, 0xd5, 0x5c, 0xbf, //0x0000a9f8 .quad -4657613415954583370 + 0x34, 0x7c, 0xc8, 0x16, 0x71, 0x89, 0xfb, 0x86, //0x0000aa00 .quad -8720225134666286028 + 0xe4, 0xac, 0x2a, 0x17, 0x98, 0x0a, 0x34, 0xef, //0x0000aa08 .quad -1210330751515841308 + 0xa0, 0x4d, 0x3d, 0xae, 0xe6, 0x35, 0x5d, 0xd4, //0x0000aa10 .quad -3144297699952734816 + 0x0e, 0xac, 0x7a, 0x0e, 0x9f, 0x86, 0x80, 0x95, //0x0000aa18 .quad -7673985747338482674 + 0x09, 0xa1, 0xcc, 0x59, 0x60, 0x83, 0x74, 0x89, //0x0000aa20 .quad -8542058143368306423 + 0x12, 0x57, 0x19, 0xd2, 0x46, 0xa8, 0xe0, 0xba, //0x0000aa28 .quad -4980796165745715438 + 0x4b, 0xc9, 0x3f, 0x70, 0x38, 0xa4, 0xd1, 0x2b, //0x0000aa30 .quad 3157485376071780683 + 0xd7, 0xac, 0x9f, 0x86, 0x58, 0xd2, 0x98, 0xe9, //0x0000aa38 .quad -1614309188754756393 + 0xcf, 0xdd, 0x27, 0x46, 0xa3, 0x06, 0x63, 0x7b, //0x0000aa40 .quad 8890957387685944783 + 0x06, 0xcc, 0x23, 0x54, 0x77, 0x83, 0xff, 0x91, //0x0000aa48 .quad -7926472270612804602 + 0x42, 0xd5, 0xb1, 0x17, 0x4c, 0xc8, 0x3b, 0x1a, //0x0000aa50 .quad 1890324697752655170 + 0x08, 0xbf, 0x2c, 0x29, 0x55, 0x64, 0x7f, 0xb6, //0x0000aa58 .quad -5296404319838617848 + 0x93, 0x4a, 0x9e, 0x1d, 0x5f, 0xba, 0xca, 0x20, //0x0000aa60 .quad 2362905872190818963 + 0xca, 0xee, 0x77, 0x73, 0x6a, 0x3d, 0x1f, 0xe4, //0x0000aa68 .quad -2008819381370884406 + 0x9c, 0xee, 0x82, 0x72, 0x7b, 0xb4, 0x7e, 0x54, //0x0000aa70 .quad 6088502188546649756 + 0x3e, 0xf5, 0x2a, 0x88, 0x62, 0x86, 0x93, 0x8e, //0x0000aa78 .quad -8173041140997884610 + 0x43, 0xaa, 0x23, 0x4f, 0x9a, 0x61, 0x9e, 0xe9, //0x0000aa80 .quad -1612744301171463613 + 0x8d, 0xb2, 0x35, 0x2a, 0xfb, 0x67, 0x38, 0xb2, //0x0000aa88 .quad -5604615407819967859 + 0xd4, 0x94, 0xec, 0xe2, 0x00, 0xfa, 0x05, 0x64, //0x0000aa90 .quad 7207441660390446292 + 0x31, 0x1f, 0xc3, 0xf4, 0xf9, 0x81, 0xc6, 0xde, //0x0000aa98 .quad -2394083241347571919 + 0x04, 0xdd, 0xd3, 0x8d, 0x40, 0xbc, 0x83, 0xde, //0x0000aaa0 .quad -2412877989897052924 + 0x7e, 0xf3, 0xf9, 0x38, 0x3c, 0x11, 0x3c, 0x8b, //0x0000aaa8 .quad -8413831053483314306 + 0x45, 0xd4, 0x48, 0xb1, 0x50, 0xab, 0x24, 0x96, //0x0000aab0 .quad -7627783505798704059 + 0x5e, 0x70, 0x38, 0x47, 0x8b, 0x15, 0x0b, 0xae, //0x0000aab8 .quad -5905602798426754978 + 0x57, 0x09, 0x9b, 0xdd, 0x24, 0xd6, 0xad, 0x3b, //0x0000aac0 .quad 4300328673033783639 + 0x76, 0x8c, 0x06, 0x19, 0xee, 0xda, 0x8d, 0xd9, //0x0000aac8 .quad -2770317479606055818 + 0xd6, 0xe5, 0x80, 0x0a, 0xd7, 0xa5, 0x4c, 0xe5, //0x0000aad0 .quad -1923980597781273130 + 0xc9, 0x17, 0xa4, 0xcf, 0xd4, 0xa8, 0xf8, 0x87, //0x0000aad8 .quad -8648977452394866743 + 0x4c, 0x1f, 0x21, 0xcd, 0x4c, 0xcf, 0x9f, 0x5e, //0x0000aae0 .quad 6818396289628184396 + 0xbc, 0x1d, 0x8d, 0x03, 0x0a, 0xd3, 0xf6, 0xa9, //0x0000aae8 .quad -6199535797066195524 + 0x1f, 0x67, 0x69, 0x00, 0x20, 0xc3, 0x47, 0x76, //0x0000aaf0 .quad 8522995362035230495 + 0x2b, 0x65, 0x70, 0x84, 0xcc, 0x87, 0x74, 0xd4, //0x0000aaf8 .quad -3137733727905356501 + 0x73, 0xe0, 0x41, 0x00, 0xf4, 0xd9, 0xec, 0x29, //0x0000ab00 .quad 3021029092058325107 + 0x3b, 0x3f, 0xc6, 0xd2, 0xdf, 0xd4, 0xc8, 0x84, //0x0000ab08 .quad -8878612607581929669 + 0x90, 0x58, 0x52, 0x00, 0x71, 0x10, 0x68, 0xf4, //0x0000ab10 .quad -835399653354481520 + 0x09, 0xcf, 0x77, 0xc7, 0x17, 0x0a, 0xfb, 0xa5, //0x0000ab18 .quad -6486579741050024183 + 0xb4, 0xee, 0x66, 0x40, 0x8d, 0x14, 0x82, 0x71, //0x0000ab20 .quad 8179122470161673908 + 0xcc, 0xc2, 0x55, 0xb9, 0x9d, 0xcc, 0x79, 0xcf, //0x0000ab28 .quad -3496538657885142324 + 0x30, 0x55, 0x40, 0x48, 0xd8, 0x4c, 0xf1, 0xc6, //0x0000ab30 .quad -4111420493003729616 + 0xbf, 0x99, 0xd5, 0x93, 0xe2, 0x1f, 0xac, 0x81, //0x0000ab38 .quad -9102865688819295809 + 0x7c, 0x6a, 0x50, 0x5a, 0x0e, 0xa0, 0xad, 0xb8, //0x0000ab40 .quad -5139275616254662020 + 0x2f, 0x00, 0xcb, 0x38, 0xdb, 0x27, 0x17, 0xa2, //0x0000ab48 .quad -6766896092596731857 + 0x1c, 0x85, 0xe4, 0xf0, 0x11, 0x08, 0xd9, 0xa6, //0x0000ab50 .quad -6424094520318327524 + 0x3b, 0xc0, 0xfd, 0x06, 0xd2, 0xf1, 0x9c, 0xca, //0x0000ab58 .quad -3846934097318526917 + 0x63, 0xa6, 0x1d, 0x6d, 0x16, 0x4a, 0x8f, 0x90, //0x0000ab60 .quad -8030118150397909405 + 0x4a, 0x30, 0xbd, 0x88, 0x46, 0x2e, 0x44, 0xfd, //0x0000ab68 .quad -196981603220770742 + 0xfe, 0x87, 0x32, 0x04, 0x4e, 0x8e, 0x59, 0x9a, //0x0000ab70 .quad -7324666853212387330 + 0x2e, 0x3e, 0x76, 0x15, 0xec, 0x9c, 0x4a, 0x9e, //0x0000ab78 .quad -7040642529654063570 + 0xfd, 0x29, 0x3f, 0x85, 0xe1, 0xf1, 0xef, 0x40, //0x0000ab80 .quad 4679224488766679549 + 0xba, 0xcd, 0xd3, 0x1a, 0x27, 0x44, 0xdd, 0xc5, //0x0000ab88 .quad -4189117143640191558 + 0x7c, 0xf4, 0x8e, 0xe6, 0x59, 0xee, 0x2b, 0xd1, //0x0000ab90 .quad -3374341425896426372 + 0x28, 0xc1, 0x88, 0xe1, 0x30, 0x95, 0x54, 0xf7, //0x0000ab98 .quad -624710411122851544 + 0xce, 0x58, 0x19, 0x30, 0xf8, 0x74, 0xbb, 0x82, //0x0000aba0 .quad -9026492418826348338 + 0xb9, 0x78, 0xf5, 0x8c, 0x3e, 0xdd, 0x94, 0x9a, //0x0000aba8 .quad -7307973034592864071 + 0x01, 0xaf, 0x1f, 0x3c, 0x36, 0x52, 0x6a, 0xe3, //0x0000abb0 .quad -2059743486678159615 + 0xe7, 0xd6, 0x32, 0x30, 0x8e, 0x14, 0x3a, 0xc1, //0x0000abb8 .quad -4523280274813692185 + 0xc1, 0x9a, 0x27, 0xcb, 0xc3, 0xe6, 0x44, 0xdc, //0x0000abc0 .quad -2574679358347699519 + 0xa1, 0x8c, 0x3f, 0xbc, 0xb1, 0x99, 0x88, 0xf1, //0x0000abc8 .quad -1042414325089727327 + 0xb9, 0xc0, 0xf8, 0x5e, 0x3a, 0x10, 0xab, 0x29, //0x0000abd0 .quad 3002511419460075705 + 0xe5, 0xb7, 0xa7, 0x15, 0x0f, 0x60, 0xf5, 0x96, //0x0000abd8 .quad -7569037980822161435 + 0xe7, 0xf0, 0xb6, 0xf6, 0x48, 0xd4, 0x15, 0x74, //0x0000abe0 .quad 8364825292752482535 + 0xde, 0xa5, 0x11, 0xdb, 0x12, 0xb8, 0xb2, 0xbc, //0x0000abe8 .quad -4849611457600313890 + 0x21, 0xad, 0x64, 0x34, 0x5b, 0x49, 0x1b, 0x11, //0x0000abf0 .quad 1232659579085827361 + 0x56, 0x0f, 0xd6, 0x91, 0x17, 0x66, 0xdf, 0xeb, //0x0000abf8 .quad -1450328303573004458 + 0x34, 0xec, 0xbe, 0x00, 0xd9, 0x0d, 0xb1, 0xca, //0x0000ac00 .quad -3841273781498745804 + 0x95, 0xc9, 0x25, 0xbb, 0xce, 0x9f, 0x6b, 0x93, //0x0000ac08 .quad -7823984217374209643 + 0x42, 0xa7, 0xee, 0x40, 0x4f, 0x51, 0x5d, 0x3d, //0x0000ac10 .quad 4421779809981343554 + 0xfb, 0x3b, 0xef, 0x69, 0xc2, 0x87, 0x46, 0xb8, //0x0000ac18 .quad -5168294253290374149 + 0x12, 0x51, 0x2a, 0x11, 0xa3, 0xa5, 0xb4, 0x0c, //0x0000ac20 .quad 915538744049291538 + 0xfa, 0x0a, 0x6b, 0x04, 0xb3, 0x29, 0x58, 0xe6, //0x0000ac28 .quad -1848681798185579782 + 0xab, 0x72, 0xba, 0xea, 0x85, 0xe7, 0xf0, 0x47, //0x0000ac30 .quad 5183897733458195115 + 0xdc, 0xe6, 0xc2, 0xe2, 0x0f, 0x1a, 0xf7, 0x8f, //0x0000ac38 .quad -8072955151507069220 + 0x56, 0x0f, 0x69, 0x65, 0x67, 0x21, 0xed, 0x59, //0x0000ac40 .quad 6479872166822743894 + 0x93, 0xa0, 0x73, 0xdb, 0x93, 0xe0, 0xf4, 0xb3, //0x0000ac48 .quad -5479507920956448621 + 0x2c, 0x53, 0xc3, 0x3e, 0xc1, 0x69, 0x68, 0x30, //0x0000ac50 .quad 3488154190101041964 + 0xb8, 0x88, 0x50, 0xd2, 0xb8, 0x18, 0xf2, 0xe0, //0x0000ac58 .quad -2237698882768172872 + 0xfb, 0x13, 0x3a, 0xc7, 0x18, 0x42, 0x41, 0x1e, //0x0000ac60 .quad 2180096368813151227 + 0x73, 0x55, 0x72, 0x83, 0x73, 0x4f, 0x97, 0x8c, //0x0000ac68 .quad -8316090829371189901 + 0xfa, 0x98, 0x08, 0xf9, 0x9e, 0x92, 0xd1, 0xe5, //0x0000ac70 .quad -1886565557410948870 + 0xcf, 0xea, 0x4e, 0x64, 0x50, 0x23, 0xbd, 0xaf, //0x0000ac78 .quad -5783427518286599473 + 0x39, 0xbf, 0x4a, 0xb7, 0x46, 0xf7, 0x45, 0xdf, //0x0000ac80 .quad -2358206946763686087 + 0x83, 0xa5, 0x62, 0x7d, 0x24, 0x6c, 0xac, 0xdb, //0x0000ac88 .quad -2617598379430861437 + 0x83, 0xb7, 0x8e, 0x32, 0x8c, 0xba, 0x8b, 0x6b, //0x0000ac90 .quad 7749492695127472003 + 0x72, 0xa7, 0x5d, 0xce, 0x96, 0xc3, 0x4b, 0x89, //0x0000ac98 .quad -8553528014785370254 + 0x64, 0x65, 0x32, 0x3f, 0x2f, 0xa9, 0x6e, 0x06, //0x0000aca0 .quad 463493832054564196 + 0x4f, 0x11, 0xf5, 0x81, 0x7c, 0xb4, 0x9e, 0xab, //0x0000aca8 .quad -6080224000054324913 + 0xbd, 0xfe, 0xfe, 0x0e, 0x7b, 0x53, 0x0a, 0xc8, //0x0000acb0 .quad -4032318728359182659 + 0xa2, 0x55, 0x72, 0xa2, 0x9b, 0x61, 0x86, 0xd6, //0x0000acb8 .quad -2988593981640518238 + 0x36, 0x5f, 0x5f, 0xe9, 0x2c, 0x74, 0x06, 0xbd, //0x0000acc0 .quad -4826042214438183114 + 0x85, 0x75, 0x87, 0x45, 0x01, 0xfd, 0x13, 0x86, //0x0000acc8 .quad -8785400266166405755 + 0x04, 0x37, 0xb7, 0x23, 0x38, 0x11, 0x48, 0x2c, //0x0000acd0 .quad 3190819268807046916 + 0xe7, 0x52, 0xe9, 0x96, 0x41, 0xfc, 0x98, 0xa7, //0x0000acd8 .quad -6370064314280619289 + 0xc5, 0x04, 0xa5, 0x2c, 0x86, 0x15, 0x5a, 0xf7, //0x0000ace0 .quad -623161932418579259 + 0xa0, 0xa7, 0xa3, 0xfc, 0x51, 0x3b, 0x7f, 0xd1, //0x0000ace8 .quad -3350894374423386208 + 0xfb, 0x22, 0xe7, 0xdb, 0x73, 0x4d, 0x98, 0x9a, //0x0000acf0 .quad -7307005235402693893 + 0xc4, 0x48, 0xe6, 0x3d, 0x13, 0x85, 0xef, 0x82, //0x0000acf8 .quad -9011838011655698236 + 0xba, 0xeb, 0xe0, 0xd2, 0xd0, 0x60, 0x3e, 0xc1, //0x0000ad00 .quad -4522070525825979462 + 0xf5, 0xda, 0x5f, 0x0d, 0x58, 0x66, 0xab, 0xa3, //0x0000ad08 .quad -6653111496142234891 + 0xa8, 0x26, 0x99, 0x07, 0x05, 0xf9, 0x8d, 0x31, //0x0000ad10 .quad 3570783879572301480 + 0xb3, 0xd1, 0xb7, 0x10, 0xee, 0x3f, 0x96, 0xcc, //0x0000ad18 .quad -3704703351750405709 + 0x52, 0x70, 0x7f, 0x49, 0x46, 0x77, 0xf1, 0xfd, //0x0000ad20 .quad -148206168962011054 + 0x1f, 0xc6, 0xe5, 0x94, 0xe9, 0xcf, 0xbb, 0xff, //0x0000ad28 .quad -19193171260619233 + 0x33, 0xa6, 0xef, 0xed, 0x8b, 0xea, 0xb6, 0xfe, //0x0000ad30 .quad -92628855601256909 + 0xd3, 0x9b, 0x0f, 0xfd, 0xf1, 0x61, 0xd5, 0x9f, //0x0000ad38 .quad -6929524759678968877 + 0xc0, 0x8f, 0x6b, 0xe9, 0x2e, 0xa5, 0x64, 0xfe, //0x0000ad40 .quad -115786069501571136 + 0xc8, 0x82, 0x53, 0x7c, 0x6e, 0xba, 0xca, 0xc7, //0x0000ad48 .quad -4050219931171323192 + 0xb0, 0x73, 0xc6, 0xa3, 0x7a, 0xce, 0xfd, 0x3d, //0x0000ad50 .quad 4466953431550423984 + 0x7b, 0x63, 0x68, 0x1b, 0x0a, 0x69, 0xbd, 0xf9, //0x0000ad58 .quad -451088895536766085 + 0x4e, 0x08, 0x5c, 0xa6, 0x0c, 0xa1, 0xbe, 0x06, //0x0000ad60 .quad 486002885505321038 + 0x2d, 0x3e, 0x21, 0x51, 0xa6, 0x61, 0x16, 0x9c, //0x0000ad68 .quad -7199459587351560659 + 0x62, 0x0a, 0xf3, 0xcf, 0x4f, 0x49, 0x6e, 0x48, //0x0000ad70 .quad 5219189625309039202 + 0xb8, 0x8d, 0x69, 0xe5, 0x0f, 0xfa, 0x1b, 0xc3, //0x0000ad78 .quad -4387638465762062920 + 0xfa, 0xcc, 0xef, 0xc3, 0xa3, 0xdb, 0x89, 0x5a, //0x0000ad80 .quad 6523987031636299002 + 0x26, 0xf1, 0xc3, 0xde, 0x93, 0xf8, 0xe2, 0xf3, //0x0000ad88 .quad -872862063775190746 + 0x1c, 0xe0, 0x75, 0x5a, 0x46, 0x29, 0x96, 0xf8, //0x0000ad90 .quad -534194123654701028 + 0xb7, 0x76, 0x3a, 0x6b, 0x5c, 0xdb, 0x6d, 0x98, //0x0000ad98 .quad -7463067817500576073 + 0x23, 0x58, 0x13, 0xf1, 0x97, 0xb3, 0xbb, 0xf6, //0x0000ada0 .quad -667742654568376285 + 0x65, 0x14, 0x09, 0x86, 0x33, 0x52, 0x89, 0xbe, //0x0000ada8 .quad -4717148753448332187 + 0x2c, 0x2e, 0x58, 0xed, 0x7d, 0xa0, 0x6a, 0x74, //0x0000adb0 .quad 8388693718644305452 + 0x7f, 0x59, 0x8b, 0x67, 0xc0, 0xa6, 0x2b, 0xee, //0x0000adb8 .quad -1284749923383027329 + 0xdc, 0x1c, 0x57, 0xb4, 0x4e, 0xa4, 0xc2, 0xa8, //0x0000adc0 .quad -6286281471915778852 + 0xef, 0x17, 0xb7, 0x40, 0x38, 0x48, 0xdb, 0x94, //0x0000adc8 .quad -7720497729755473937 + 0x13, 0xe4, 0x6c, 0x61, 0x62, 0x4d, 0xf3, 0x92, //0x0000add0 .quad -7857851839894723565 + 0xeb, 0xdd, 0xe4, 0x50, 0x46, 0x1a, 0x12, 0xba, //0x0000add8 .quad -5038936143766954517 + 0x17, 0x1d, 0xc8, 0xf9, 0xba, 0x20, 0xb0, 0x77, //0x0000ade0 .quad 8624429273841147159 + 0x66, 0x15, 0x1e, 0xe5, 0xd7, 0xa0, 0x96, 0xe8, //0x0000ade8 .quad -1686984161281305242 + 0x2e, 0x12, 0x1d, 0xdc, 0x74, 0x14, 0xce, 0x0a, //0x0000adf0 .quad 778582277723329070 + 0x60, 0xcd, 0x32, 0xef, 0x86, 0x24, 0x5e, 0x91, //0x0000adf8 .quad -7971894128441897632 + 0xba, 0x56, 0x24, 0x13, 0x92, 0x99, 0x81, 0x0d, //0x0000ae00 .quad 973227847154161338 + 0xb8, 0x80, 0xff, 0xaa, 0xa8, 0xad, 0xb5, 0xb5, //0x0000ae08 .quad -5353181642124984136 + 0x69, 0x6c, 0xed, 0x97, 0xf6, 0xff, 0xe1, 0x10, //0x0000ae10 .quad 1216534808942701673 + 0xe6, 0x60, 0xbf, 0xd5, 0x12, 0x19, 0x23, 0xe3, //0x0000ae18 .quad -2079791034228842266 + 0xc1, 0x63, 0xf4, 0x1e, 0xfa, 0x3f, 0x8d, 0xca, //0x0000ae20 .quad -3851351762838199359 + 0x8f, 0x9c, 0x97, 0xc5, 0xab, 0xef, 0xf5, 0x8d, //0x0000ae28 .quad -8217398424034108273 + 0xb2, 0x7c, 0xb1, 0xa6, 0xf8, 0x8f, 0x30, 0xbd, //0x0000ae30 .quad -4814189703547749198 + 0xb3, 0x83, 0xfd, 0xb6, 0x96, 0x6b, 0x73, 0xb1, //0x0000ae38 .quad -5660062011615247437 + 0xde, 0xdb, 0x5d, 0xd0, 0xf6, 0xb3, 0x7c, 0xac, //0x0000ae40 .quad -6017737129434686498 + 0xa0, 0xe4, 0xbc, 0x64, 0x7c, 0x46, 0xd0, 0xdd, //0x0000ae48 .quad -2463391496091671392 + 0x6b, 0xa9, 0x3a, 0x42, 0x7a, 0xf0, 0xcd, 0x6b, //0x0000ae50 .quad 7768129340171790699 + 0xe4, 0x0e, 0xf6, 0xbe, 0x0d, 0x2c, 0xa2, 0x8a, //0x0000ae58 .quad -8457148712698376476 + 0xc6, 0x53, 0xc9, 0xd2, 0x98, 0x6c, 0xc1, 0x86, //0x0000ae60 .quad -8736582398494813242 + 0x9d, 0x92, 0xb3, 0x2e, 0x11, 0xb7, 0x4a, 0xad, //0x0000ae68 .quad -5959749872445582691 + 0xb7, 0xa8, 0x7b, 0x07, 0xbf, 0xc7, 0x71, 0xe8, //0x0000ae70 .quad -1697355961263740745 + 0x44, 0x77, 0x60, 0x7a, 0xd5, 0x64, 0x9d, 0xd8, //0x0000ae78 .quad -2838001322129590460 + 0x72, 0x49, 0xad, 0x64, 0xd7, 0x1c, 0x47, 0x11, //0x0000ae80 .quad 1244995533423855986 + 0x8b, 0x4a, 0x7c, 0x6c, 0x05, 0x5f, 0x62, 0x87, //0x0000ae88 .quad -8691279853972075893 + 0xcf, 0x9b, 0xd8, 0x3d, 0x0d, 0xe4, 0x98, 0xd5, //0x0000ae90 .quad -3055441601647567921 + 0x2d, 0x5d, 0x9b, 0xc7, 0xc6, 0xf6, 0x3a, 0xa9, //0x0000ae98 .quad -6252413799037706963 + 0xc3, 0xc2, 0x4e, 0x8d, 0x10, 0x1d, 0xff, 0x4a, //0x0000aea0 .quad 5404070034795315907 + 0x79, 0x34, 0x82, 0x79, 0x78, 0xb4, 0x89, 0xd3, //0x0000aea8 .quad -3203831230369745799 + 0xba, 0x39, 0x51, 0x58, 0x2a, 0x72, 0xdf, 0xce, //0x0000aeb0 .quad -3539985255894009414 + 0xcb, 0x60, 0xf1, 0x4b, 0xcb, 0x10, 0x36, 0x84, //0x0000aeb8 .quad -8919923546622172981 + 0x28, 0x88, 0x65, 0xee, 0xb4, 0x4e, 0x97, 0xc2, //0x0000aec0 .quad -4424981569867511768 + 0xfe, 0xb8, 0xed, 0x1e, 0xfe, 0x94, 0x43, 0xa5, //0x0000aec8 .quad -6538218414850328322 + 0x32, 0xea, 0xfe, 0x29, 0x62, 0x22, 0x3d, 0x73, //0x0000aed0 .quad 8303831092947774002 + 0x3e, 0x27, 0xa9, 0xa6, 0x3d, 0x7a, 0x94, 0xce, //0x0000aed8 .quad -3561087000135522498 + 0x5f, 0x52, 0x3f, 0x5a, 0x7d, 0x35, 0x06, 0x08, //0x0000aee0 .quad 578208414664970847 + 0x87, 0xb8, 0x29, 0x88, 0x66, 0xcc, 0x1c, 0x81, //0x0000aee8 .quad -9143208402725783417 + 0xf7, 0x26, 0xcf, 0xb0, 0xdc, 0xc2, 0x07, 0xca, //0x0000aef0 .quad -3888925500096174345 + 0xa8, 0x26, 0x34, 0x2a, 0x80, 0xff, 0x63, 0xa1, //0x0000aef8 .quad -6817324484979841368 + 0xb5, 0xf0, 0x02, 0xdd, 0x93, 0xb3, 0x89, 0xfc, //0x0000af00 .quad -249470856692830027 + 0x52, 0x30, 0xc1, 0x34, 0x60, 0xff, 0xbc, 0xc9, //0x0000af08 .quad -3909969587797413806 + 0xe2, 0xac, 0x43, 0xd4, 0x78, 0x20, 0xac, 0xbb, //0x0000af10 .quad -4923524589293425438 + 0x67, 0x7c, 0xf1, 0x41, 0x38, 0x3f, 0x2c, 0xfc, //0x0000af18 .quad -275775966319379353 + 0x0d, 0x4c, 0xaa, 0x84, 0x4b, 0x94, 0x4b, 0xd5, //0x0000af20 .quad -3077202868308390899 + 0xc0, 0xed, 0x36, 0x29, 0x83, 0xa7, 0x9b, 0x9d, //0x0000af28 .quad -7089889006590693952 + 0x11, 0xdf, 0xd4, 0x65, 0x5e, 0x79, 0x9e, 0x0a, //0x0000af30 .quad 765182433041899281 + 0x31, 0xa9, 0x84, 0xf3, 0x63, 0x91, 0x02, 0xc5, //0x0000af38 .quad -4250675239810979535 + 0xd5, 0x16, 0x4a, 0xff, 0xb5, 0x17, 0x46, 0x4d, //0x0000af40 .quad 5568164059729762005 + 0x7d, 0xd3, 0x65, 0xf0, 0xbc, 0x35, 0x43, 0xf6, //0x0000af48 .quad -701658031336336515 + 0x45, 0x4e, 0x8e, 0xbf, 0xd1, 0xce, 0x4b, 0x50, //0x0000af50 .quad 5785945546544795205 + 0x2e, 0xa4, 0x3f, 0x16, 0x96, 0x01, 0xea, 0x99, //0x0000af58 .quad -7356065297226292178 + 0xd6, 0xe1, 0x71, 0x2f, 0x86, 0xc2, 0x5e, 0xe4, //0x0000af60 .quad -1990940103673781802 + 0x39, 0x8d, 0xcf, 0x9b, 0xfb, 0x81, 0x64, 0xc0, //0x0000af68 .quad -4583395603105477319 + 0x4c, 0x5a, 0x4e, 0xbb, 0x27, 0x73, 0x76, 0x5d, //0x0000af70 .quad 6734696907262548556 + 0x88, 0x70, 0xc3, 0x82, 0x7a, 0xa2, 0x7d, 0xf0, //0x0000af78 .quad -1117558485454458744 + 0x6f, 0xf8, 0x10, 0xd5, 0xf8, 0x07, 0x6a, 0x3a, //0x0000af80 .quad 4209185567039092847 + 0x55, 0x26, 0xba, 0x91, 0x8c, 0x85, 0x4e, 0x96, //0x0000af88 .quad -7616003081050118571 + 0x8b, 0x36, 0x55, 0x0a, 0xf7, 0x89, 0x04, 0x89, //0x0000af90 .quad -8573576096483297653 + 0xea, 0xaf, 0x28, 0xb6, 0xef, 0x26, 0xe2, 0xbb, //0x0000af98 .quad -4908317832885260310 + 0x2e, 0x84, 0xea, 0xcc, 0x74, 0xac, 0x45, 0x2b, //0x0000afa0 .quad 3118087934678041646 + 0xe5, 0xdb, 0xb2, 0xa3, 0xab, 0xb0, 0xda, 0xea, //0x0000afa8 .quad -1523711272679187483 + 0x9d, 0x92, 0x12, 0x00, 0xc9, 0x8b, 0x0b, 0x3b, //0x0000afb0 .quad 4254647968387469981 + 0x6f, 0xc9, 0x4f, 0x46, 0x6b, 0xae, 0xc8, 0x92, //0x0000afb8 .quad -7869848573065574033 + 0x44, 0x37, 0x17, 0x40, 0xbb, 0x6e, 0xce, 0x09, //0x0000afc0 .quad 706623942056949572 + 0xcb, 0xbb, 0xe3, 0x17, 0x06, 0xda, 0x7a, 0xb7, //0x0000afc8 .quad -5225624697904579637 + 0x15, 0x05, 0x1d, 0x10, 0x6a, 0x0a, 0x42, 0xcc, //0x0000afd0 .quad -3728406090856200939 + 0xbd, 0xaa, 0xdc, 0x9d, 0x87, 0x90, 0x59, 0xe5, //0x0000afd8 .quad -1920344853953336643 + 0x2d, 0x23, 0x12, 0x4a, 0x82, 0x46, 0xa9, 0x9f, //0x0000afe0 .quad -6941939825212513491 + 0xb6, 0xea, 0xa9, 0xc2, 0x54, 0xfa, 0x57, 0x8f, //0x0000afe8 .quad -8117744561361917258 + 0xf9, 0xab, 0x96, 0xdc, 0x22, 0x98, 0x93, 0x47, //0x0000aff0 .quad 5157633273766521849 + 0x64, 0x65, 0x54, 0xf3, 0xe9, 0xf8, 0x2d, 0xb3, //0x0000aff8 .quad -5535494683275008668 + 0xf7, 0x56, 0xbc, 0x93, 0x2b, 0x7e, 0x78, 0x59, //0x0000b000 .quad 6447041592208152311 + 0xbd, 0x7e, 0x29, 0x70, 0x24, 0x77, 0xf9, 0xdf, //0x0000b008 .quad -2307682335666372931 + 0x5a, 0xb6, 0x55, 0x3c, 0xdb, 0x4e, 0xeb, 0x57, //0x0000b010 .quad 6335244004343789146 + 0x36, 0xef, 0x19, 0xc6, 0x76, 0xea, 0xfb, 0x8b, //0x0000b018 .quad -8359830487432564938 + 0xf1, 0x23, 0x6b, 0x0b, 0x92, 0x22, 0xe6, 0xed, //0x0000b020 .quad -1304317031425039375 + 0x03, 0x6b, 0xa0, 0x77, 0x14, 0xe5, 0xfa, 0xae, //0x0000b028 .quad -5838102090863318269 + 0xed, 0xec, 0x45, 0x8e, 0x36, 0xab, 0x5f, 0xe9, //0x0000b030 .quad -1630396289281299219 + 0xc4, 0x85, 0x88, 0x95, 0x59, 0x9e, 0xb9, 0xda, //0x0000b038 .quad -2685941595151759932 + 0x14, 0xb4, 0xeb, 0x18, 0x02, 0xcb, 0xdb, 0x11, //0x0000b040 .quad 1286845328412881940 + 0x9b, 0x53, 0x75, 0xfd, 0xf7, 0x02, 0xb4, 0x88, //0x0000b048 .quad -8596242524610931813 + 0x19, 0xa1, 0x26, 0x9f, 0xc2, 0xbd, 0x52, 0xd6, //0x0000b050 .quad -3003129357911285479 + 0x81, 0xa8, 0xd2, 0xfc, 0xb5, 0x03, 0xe1, 0xaa, //0x0000b058 .quad -6133617137336276863 + 0x5f, 0x49, 0xf0, 0x46, 0x33, 0x6d, 0xe7, 0x4b, //0x0000b060 .quad 5469460339465668959 + 0xa2, 0x52, 0x07, 0x7c, 0xa3, 0x44, 0x99, 0xd5, //0x0000b068 .quad -3055335403242958174 + 0xdb, 0x2d, 0x56, 0x0c, 0x40, 0xa4, 0x70, 0x6f, //0x0000b070 .quad 8030098730593431003 + 0xa5, 0x93, 0x84, 0x2d, 0xe6, 0xca, 0x7f, 0x85, //0x0000b078 .quad -8827113654667930715 + 0x52, 0xb9, 0x6b, 0x0f, 0x50, 0xcd, 0x4c, 0xcb, //0x0000b080 .quad -3797434642040374958 + 0x8e, 0xb8, 0xe5, 0xb8, 0x9f, 0xbd, 0xdf, 0xa6, //0x0000b088 .quad -6422206049907525490 + 0xa7, 0xa7, 0x46, 0x13, 0xa4, 0x00, 0x20, 0x7e, //0x0000b090 .quad 9088264752731695015 + 0xb2, 0x26, 0x1f, 0xa7, 0x07, 0xad, 0x97, 0xd0, //0x0000b098 .quad -3416071543957018958 + 0xc8, 0x28, 0x0c, 0x8c, 0x66, 0x00, 0xd4, 0x8e, //0x0000b0a0 .quad -8154892584824854328 + 0x2f, 0x78, 0x73, 0xc8, 0x24, 0xcc, 0x5e, 0x82, //0x0000b0a8 .quad -9052573742614218705 + 0xfa, 0x32, 0x0f, 0x2f, 0x80, 0x00, 0x89, 0x72, //0x0000b0b0 .quad 8253128342678483706 + 0x3b, 0x56, 0x90, 0xfa, 0x2d, 0x7f, 0xf6, 0xa2, //0x0000b0b8 .quad -6704031159840385477 + 0xb9, 0xff, 0xd2, 0x3a, 0xa0, 0x40, 0x2b, 0x4f, //0x0000b0c0 .quad 5704724409920716729 + 0xca, 0x6b, 0x34, 0x79, 0xf9, 0x1e, 0xb4, 0xcb, //0x0000b0c8 .quad -3768352931373093942 + 0xa8, 0xbf, 0x87, 0x49, 0xc8, 0x10, 0xf6, 0xe2, //0x0000b0d0 .quad -2092466524453879896 + 0xbc, 0x86, 0x81, 0xd7, 0xb7, 0x26, 0xa1, 0xfe, //0x0000b0d8 .quad -98755145788979524 + 0xc9, 0xd7, 0xf4, 0x2d, 0x7d, 0xca, 0xd9, 0x0d, //0x0000b0e0 .quad 998051431430019017 + 0x36, 0xf4, 0xb0, 0xe6, 0x32, 0xb8, 0x24, 0x9f, //0x0000b0e8 .quad -6979250993759194058 + 0xbb, 0x0d, 0x72, 0x79, 0x1c, 0x3d, 0x50, 0x91, //0x0000b0f0 .quad -7975807747567252037 + 0x43, 0x31, 0x5d, 0xa0, 0x3f, 0xe6, 0xed, 0xc6, //0x0000b0f8 .quad -4112377723771604669 + 0x2a, 0x91, 0xce, 0x97, 0x63, 0x4c, 0xa4, 0x75, //0x0000b100 .quad 8476984389250486570 + 0x94, 0x7d, 0x74, 0x88, 0xcf, 0x5f, 0xa9, 0xf8, //0x0000b108 .quad -528786136287117932 + 0xba, 0x1a, 0xe1, 0x3e, 0xbe, 0xaf, 0x86, 0xc9, //0x0000b110 .quad -3925256793573221702 + 0x7c, 0xce, 0x48, 0xb5, 0xe1, 0xdb, 0x69, 0x9b, //0x0000b118 .quad -7248020362820530564 + 0x68, 0x61, 0x99, 0xce, 0xad, 0x5b, 0xe8, 0xfb, //0x0000b120 .quad -294884973539139224 + 0x1b, 0x02, 0x9b, 0x22, 0xda, 0x52, 0x44, 0xc2, //0x0000b128 .quad -4448339435098275301 + 0xc3, 0xb9, 0x3f, 0x42, 0x99, 0x72, 0xe2, 0xfa, //0x0000b130 .quad -368606216923924029 + 0xa2, 0xc2, 0x41, 0xab, 0x90, 0x67, 0xd5, 0xf2, //0x0000b138 .quad -948738275445456222 + 0x1a, 0xd4, 0x67, 0xc9, 0x9f, 0x87, 0xcd, 0xdc, //0x0000b140 .quad -2536221894791146470 + 0xa5, 0x19, 0x09, 0x6b, 0xba, 0x60, 0xc5, 0x97, //0x0000b148 .quad -7510490449794491995 + 0x20, 0xc9, 0xc1, 0xbb, 0x87, 0xe9, 0x00, 0x54, //0x0000b150 .quad 6053094668365842720 + 0x0f, 0x60, 0xcb, 0x05, 0xe9, 0xb8, 0xb6, 0xbd, //0x0000b158 .quad -4776427043815727089 + 0x68, 0x3b, 0xb2, 0xaa, 0xe9, 0x23, 0x01, 0x29, //0x0000b160 .quad 2954682317029915496 + 0x13, 0x38, 0x3e, 0x47, 0x23, 0x67, 0x24, 0xed, //0x0000b168 .quad -1358847786342270957 + 0x21, 0x65, 0xaf, 0x0a, 0x72, 0xb6, 0xa0, 0xf9, //0x0000b170 .quad -459166561069996767 + 0x0b, 0xe3, 0x86, 0x0c, 0x76, 0xc0, 0x36, 0x94, //0x0000b178 .quad -7766808894105001205 + 0x69, 0x3e, 0x5b, 0x8d, 0x0e, 0xe4, 0x08, 0xf8, //0x0000b180 .quad -573958201337495959 + 0xce, 0x9b, 0xa8, 0x8f, 0x93, 0x70, 0x44, 0xb9, //0x0000b188 .quad -5096825099203863602 + 0x04, 0x0e, 0xb2, 0x30, 0x12, 0x1d, 0x0b, 0xb6, //0x0000b190 .quad -5329133770099257852 + 0xc2, 0xc2, 0x92, 0x73, 0xb8, 0x8c, 0x95, 0xe7, //0x0000b198 .quad -1759345355577441598 + 0xc2, 0x48, 0x6f, 0x5e, 0x2b, 0xf2, 0xc6, 0xb1, //0x0000b1a0 .quad -5636551615525730110 + 0xb9, 0xb9, 0x3b, 0x48, 0xf3, 0x77, 0xbd, 0x90, //0x0000b1a8 .quad -8017119874876982855 + 0xf3, 0x1a, 0x0b, 0x36, 0xb6, 0xae, 0x38, 0x1e, //0x0000b1b0 .quad 2177682517447613171 + 0x28, 0xa8, 0x4a, 0x1a, 0xf0, 0xd5, 0xec, 0xb4, //0x0000b1b8 .quad -5409713825168840664 + 0xb0, 0xe1, 0x8d, 0xc3, 0x63, 0xda, 0xc6, 0x25, //0x0000b1c0 .quad 2722103146809516464 + 0x32, 0x52, 0xdd, 0x20, 0x6c, 0x0b, 0x28, 0xe2, //0x0000b1c8 .quad -2150456263033662926 + 0x0e, 0xad, 0x38, 0x5a, 0x7e, 0x48, 0x9c, 0x57, //0x0000b1d0 .quad 6313000485183335694 + 0x5f, 0x53, 0x8a, 0x94, 0x23, 0x07, 0x59, 0x8d, //0x0000b1d8 .quad -8261564192037121185 + 0x51, 0xd8, 0xc6, 0xf0, 0x9d, 0x5a, 0x83, 0x2d, //0x0000b1e0 .quad 3279564588051781713 + 0x37, 0xe8, 0xac, 0x79, 0xec, 0x48, 0xaf, 0xb0, //0x0000b1e8 .quad -5715269221619013577 + 0x65, 0x8e, 0xf8, 0x6c, 0x45, 0x31, 0xe4, 0xf8, //0x0000b1f0 .quad -512230283362660763 + 0x44, 0x22, 0x18, 0x98, 0x27, 0x1b, 0xdb, 0xdc, //0x0000b1f8 .quad -2532400508596379068 + 0xff, 0x58, 0x1b, 0x64, 0xcb, 0x9e, 0x8e, 0x1b, //0x0000b200 .quad 1985699082112030975 + 0x6b, 0x15, 0x0f, 0xbf, 0xf8, 0xf0, 0x08, 0x8a, //0x0000b208 .quad -8500279345513818773 + 0x3f, 0x2f, 0x22, 0x3d, 0x7e, 0x46, 0x72, 0xe2, //0x0000b210 .quad -2129562165787349185 + 0xc5, 0xda, 0xd2, 0xee, 0x36, 0x2d, 0x8b, 0xac, //0x0000b218 .quad -6013663163464885563 + 0x0f, 0xbb, 0x6a, 0xcc, 0x1d, 0xd8, 0x0e, 0x5b, //0x0000b220 .quad 6561419329620589327 + 0x77, 0x91, 0x87, 0xaa, 0x84, 0xf8, 0xad, 0xd7, //0x0000b228 .quad -2905392935903719049 + 0xe9, 0xb4, 0xc2, 0x9f, 0x12, 0x47, 0xe9, 0x98, //0x0000b230 .quad -7428327965055601431 + 0xea, 0xba, 0x94, 0xea, 0x52, 0xbb, 0xcc, 0x86, //0x0000b238 .quad -8733399612580906262 + 0x24, 0x62, 0xb3, 0x47, 0xd7, 0x98, 0x23, 0x3f, //0x0000b240 .quad 4549648098962661924 + 0xa5, 0xe9, 0x39, 0xa5, 0x27, 0xea, 0x7f, 0xa8, //0x0000b248 .quad -6305063497298744923 + 0xad, 0x3a, 0xa0, 0x19, 0x0d, 0x7f, 0xec, 0x8e, //0x0000b250 .quad -8147997931578836307 + 0x0e, 0x64, 0x88, 0x8e, 0xb1, 0xe4, 0x9f, 0xd2, //0x0000b258 .quad -3269643353196043250 + 0xac, 0x24, 0x04, 0x30, 0x68, 0xcf, 0x53, 0x19, //0x0000b260 .quad 1825030320404309164 + 0x89, 0x3e, 0x15, 0xf9, 0xee, 0xee, 0xa3, 0x83, //0x0000b268 .quad -8961056123388608887 + 0xd7, 0x2d, 0x05, 0x3c, 0x42, 0xc3, 0xa8, 0x5f, //0x0000b270 .quad 6892973918932774359 + 0x2b, 0x8e, 0x5a, 0xb7, 0xaa, 0xea, 0x8c, 0xa4, //0x0000b278 .quad -6589634135808373205 + 0x4d, 0x79, 0x06, 0xcb, 0x12, 0xf4, 0x92, 0x37, //0x0000b280 .quad 4004531380238580045 + 0xb6, 0x31, 0x31, 0x65, 0x55, 0x25, 0xb0, 0xcd, //0x0000b288 .quad -3625356651333078602 + 0xd0, 0x0b, 0xe4, 0xbe, 0x8b, 0xd8, 0xbb, 0xe2, //0x0000b290 .quad -2108853905778275376 + 0x11, 0xbf, 0x3e, 0x5f, 0x55, 0x17, 0x8e, 0x80, //0x0000b298 .quad -9183376934724255983 + 0xc4, 0x0e, 0x9d, 0xae, 0xae, 0xce, 0x6a, 0x5b, //0x0000b2a0 .quad 6587304654631931588 + 0xd6, 0x6e, 0x0e, 0xb7, 0x2a, 0x9d, 0xb1, 0xa0, //0x0000b2a8 .quad -6867535149977932074 + 0x75, 0x52, 0x44, 0x5a, 0x5a, 0x82, 0x45, 0xf2, //0x0000b2b0 .quad -989241218564861323 + 0x8b, 0x0a, 0xd2, 0x64, 0x75, 0x04, 0xde, 0xc8, //0x0000b2b8 .quad -3972732919045027189 + 0x12, 0x67, 0xd5, 0xf0, 0xf0, 0xe2, 0xd6, 0xee, //0x0000b2c0 .quad -1236551523206076654 + 0x2e, 0x8d, 0x06, 0xbe, 0x92, 0x85, 0x15, 0xfb, //0x0000b2c8 .quad -354230130378896082 + 0x6b, 0x60, 0x85, 0x96, 0xd6, 0x4d, 0x46, 0x55, //0x0000b2d0 .quad 6144684325637283947 + 0x3d, 0x18, 0xc4, 0xb6, 0x7b, 0x73, 0xed, 0x9c, //0x0000b2d8 .quad -7138922859127891907 + 0x86, 0xb8, 0x26, 0x3c, 0x4c, 0xe1, 0x97, 0xaa, //0x0000b2e0 .quad -6154202648235558778 + 0x4c, 0x1e, 0x75, 0xa4, 0x5a, 0xd0, 0x28, 0xc4, //0x0000b2e8 .quad -4311967555482476980 + 0xa8, 0x66, 0x30, 0x4b, 0x9f, 0xd9, 0x3d, 0xd5, //0x0000b2f0 .quad -3081067291867060568 + 0xdf, 0x65, 0x92, 0x4d, 0x71, 0x04, 0x33, 0xf5, //0x0000b2f8 .quad -778273425925708321 + 0x29, 0x40, 0xfe, 0x8e, 0x03, 0xa8, 0x46, 0xe5, //0x0000b300 .quad -1925667057416912855 + 0xab, 0x7f, 0x7b, 0xd0, 0xc6, 0xe2, 0x3f, 0x99, //0x0000b308 .quad -7403949918844649557 + 0x33, 0xd0, 0xbd, 0x72, 0x04, 0x52, 0x98, 0xde, //0x0000b310 .quad -2407083821771141069 + 0x96, 0x5f, 0x9a, 0x84, 0x78, 0xdb, 0x8f, 0xbf, //0x0000b318 .quad -4643251380128424042 + 0x40, 0x44, 0x6d, 0x8f, 0x85, 0x66, 0x3e, 0x96, //0x0000b320 .quad -7620540795641314240 + 0x7c, 0xf7, 0xc0, 0xa5, 0x56, 0xd2, 0x73, 0xef, //0x0000b328 .quad -1192378206733142148 + 0xa8, 0x4a, 0xa4, 0x79, 0x13, 0x00, 0xe7, 0xdd, //0x0000b330 .quad -2456994988062127448 + 0xad, 0x9a, 0x98, 0x27, 0x76, 0x63, 0xa8, 0x95, //0x0000b338 .quad -7662765406849295699 + 0x52, 0x5d, 0x0d, 0x58, 0x18, 0xc0, 0x60, 0x55, //0x0000b340 .quad 6152128301777116498 + 0x59, 0xc1, 0x7e, 0xb1, 0x53, 0x7c, 0x12, 0xbb, //0x0000b348 .quad -4966770740134231719 + 0xa6, 0xb4, 0x10, 0x6e, 0x1e, 0xf0, 0xb8, 0xaa, //0x0000b350 .quad -6144897678060768090 + 0xaf, 0x71, 0xde, 0x9d, 0x68, 0x1b, 0xd7, 0xe9, //0x0000b358 .quad -1596777406740401745 + 0xe8, 0x70, 0xca, 0x04, 0x13, 0x96, 0xb3, 0xca, //0x0000b360 .quad -3840561048787980056 + 0x0d, 0x07, 0xab, 0x62, 0x21, 0x71, 0x26, 0x92, //0x0000b368 .quad -7915514906853832947 + 0x22, 0x0d, 0xfd, 0xc5, 0x97, 0x7b, 0x60, 0x3d, //0x0000b370 .quad 4422670725869800738 + 0xd1, 0xc8, 0x55, 0xbb, 0x69, 0x0d, 0xb0, 0xb6, //0x0000b378 .quad -5282707615139903279 + 0x6a, 0x50, 0x7c, 0xb7, 0x7d, 0x9a, 0xb8, 0x8c, //0x0000b380 .quad -8306719647944912790 + 0x05, 0x3b, 0x2b, 0x2a, 0xc4, 0x10, 0x5c, 0xe4, //0x0000b388 .quad -1991698500497491195 + 0x42, 0xb2, 0xad, 0x92, 0x8e, 0x60, 0xf3, 0x77, //0x0000b390 .quad 8643358275316593218 + 0xe3, 0x04, 0x5b, 0x9a, 0x7a, 0x8a, 0xb9, 0x8e, //0x0000b398 .quad -8162340590452013853 + 0xd3, 0x1e, 0x59, 0x37, 0xb2, 0x38, 0xf0, 0x55, //0x0000b3a0 .quad 6192511825718353619 + 0x1c, 0xc6, 0xf1, 0x40, 0x19, 0xed, 0x67, 0xb2, //0x0000b3a8 .quad -5591239719637629412 + 0x88, 0x66, 0x2f, 0xc5, 0xde, 0x46, 0x6c, 0x6b, //0x0000b3b0 .quad 7740639782147942024 + 0xa3, 0x37, 0x2e, 0x91, 0x5f, 0xe8, 0x01, 0xdf, //0x0000b3b8 .quad -2377363631119648861 + 0x15, 0xa0, 0x3d, 0x3b, 0x4b, 0xac, 0x23, 0x23, //0x0000b3c0 .quad 2532056854628769813 + 0xc6, 0xe2, 0xbc, 0xba, 0x3b, 0x31, 0x61, 0x8b, //0x0000b3c8 .quad -8403381297090862394 + 0x1a, 0x08, 0x0d, 0x0a, 0x5e, 0x97, 0xec, 0xab, //0x0000b3d0 .quad -6058300968568813542 + 0x77, 0x1b, 0x6c, 0xa9, 0x8a, 0x7d, 0x39, 0xae, //0x0000b3d8 .quad -5892540602936190089 + 0x21, 0x4a, 0x90, 0x8c, 0x35, 0xbd, 0xe7, 0x96, //0x0000b3e0 .quad -7572876210711016927 + 0x55, 0x22, 0xc7, 0x53, 0xed, 0xdc, 0xc7, 0xd9, //0x0000b3e8 .quad -2753989735242849707 + 0x54, 0x2e, 0xda, 0x77, 0x41, 0xd6, 0x50, 0x7e, //0x0000b3f0 .quad 9102010423587778132 + 0x75, 0x75, 0x5c, 0x54, 0x14, 0xea, 0x1c, 0x88, //0x0000b3f8 .quad -8638772612167862923 + 0xe9, 0xb9, 0xd0, 0xd5, 0xd1, 0x0b, 0xe5, 0xdd, //0x0000b400 .quad -2457545025797441047 + 0xd2, 0x92, 0x73, 0x69, 0x99, 0x24, 0x24, 0xaa, //0x0000b408 .quad -6186779746782440750 + 0x64, 0xe8, 0x44, 0x4b, 0xc6, 0x4e, 0x5e, 0x95, //0x0000b410 .quad -7683617300674189212 + 0x87, 0x77, 0xd0, 0xc3, 0xbf, 0x2d, 0xad, 0xd4, //0x0000b418 .quad -3121788665050663033 + 0x3e, 0x11, 0x0b, 0xef, 0x3b, 0xf1, 0x5a, 0xbd, //0x0000b420 .quad -4802260812921368258 + 0xb4, 0x4a, 0x62, 0xda, 0x97, 0x3c, 0xec, 0x84, //0x0000b428 .quad -8868646943297746252 + 0x8e, 0xd5, 0xcd, 0xea, 0x8a, 0xad, 0xb1, 0xec, //0x0000b430 .quad -1391139997724322418 + 0x61, 0xdd, 0xfa, 0xd0, 0xbd, 0x4b, 0x27, 0xa6, //0x0000b438 .quad -6474122660694794911 + 0xf2, 0x4a, 0x81, 0xa5, 0xed, 0x18, 0xde, 0x67, //0x0000b440 .quad 7484447039699372786 + 0xba, 0x94, 0x39, 0x45, 0xad, 0x1e, 0xb1, 0xcf, //0x0000b448 .quad -3480967307441105734 + 0xd7, 0xce, 0x70, 0x87, 0x94, 0xcf, 0xea, 0x80, //0x0000b450 .quad -9157278655470055721 + 0xf4, 0xfc, 0x43, 0x4b, 0x2c, 0xb3, 0xce, 0x81, //0x0000b458 .quad -9093133594791772940 + 0x8d, 0x02, 0x4d, 0xa9, 0x79, 0x83, 0x25, 0xa1, //0x0000b460 .quad -6834912300910181747 + 0x31, 0xfc, 0x14, 0x5e, 0xf7, 0x5f, 0x42, 0xa2, //0x0000b468 .quad -6754730975062328271 + 0x30, 0x43, 0xa0, 0x13, 0x58, 0xe4, 0x6e, 0x09, //0x0000b470 .quad 679731660717048624 + 0x3e, 0x3b, 0x9a, 0x35, 0xf5, 0xf7, 0xd2, 0xca, //0x0000b478 .quad -3831727700400522434 + 0xfc, 0x53, 0x88, 0x18, 0x6e, 0x9d, 0xca, 0x8b, //0x0000b480 .quad -8373707460958465028 + 0x0d, 0xca, 0x00, 0x83, 0xf2, 0xb5, 0x87, 0xfd, //0x0000b488 .quad -177973607073265139 + 0x7d, 0x34, 0x55, 0xcf, 0x64, 0xa2, 0x5e, 0x77, //0x0000b490 .quad 8601490892183123069 + 0x48, 0x7e, 0xe0, 0x91, 0xb7, 0xd1, 0x74, 0x9e, //0x0000b498 .quad -7028762532061872568 + 0x9d, 0x81, 0x2a, 0x03, 0xfe, 0x4a, 0x36, 0x95, //0x0000b4a0 .quad -7694880458480647779 + 0xda, 0x9d, 0x58, 0x76, 0x25, 0x06, 0x12, 0xc6, //0x0000b4a8 .quad -4174267146649952806 + 0x04, 0x22, 0xf5, 0x83, 0xbd, 0xdd, 0x83, 0x3a, //0x0000b4b0 .quad 4216457482181353988 + 0x51, 0xc5, 0xee, 0xd3, 0xae, 0x87, 0x96, 0xf7, //0x0000b4b8 .quad -606147914885053103 + 0x42, 0x35, 0x79, 0x72, 0x96, 0x6a, 0x92, 0xc4, //0x0000b4c0 .quad -4282243101277735614 + 0x52, 0x3b, 0x75, 0x44, 0xcd, 0x14, 0xbe, 0x9a, //0x0000b4c8 .quad -7296371474444240046 + 0x93, 0x82, 0x17, 0x0f, 0x3c, 0x05, 0xb7, 0x75, //0x0000b4d0 .quad 8482254178684994195 + 0x27, 0x8a, 0x92, 0x95, 0x00, 0x9a, 0x6d, 0xc1, //0x0000b4d8 .quad -4508778324627912153 + 0x38, 0x63, 0xdd, 0x12, 0x8b, 0xc6, 0x24, 0x53, //0x0000b4e0 .quad 5991131704928854840 + 0xb1, 0x2c, 0xf7, 0xba, 0x80, 0x00, 0xc9, 0xf1, //0x0000b4e8 .quad -1024286887357502287 + 0x03, 0x5e, 0xca, 0xeb, 0x16, 0xfc, 0xf6, 0xd3, //0x0000b4f0 .quad -3173071712060547581 + 0xee, 0x7b, 0xda, 0x74, 0x50, 0xa0, 0x1d, 0x97, //0x0000b4f8 .quad -7557708332239520786 + 0x84, 0xf5, 0xbc, 0xa6, 0x1c, 0xbb, 0xf4, 0x88, //0x0000b500 .quad -8578025658503072380 + 0xea, 0x1a, 0x11, 0x92, 0x64, 0x08, 0xe5, 0xbc, //0x0000b508 .quad -4835449396872013078 + 0xe5, 0x32, 0x6c, 0xd0, 0xe3, 0xe9, 0x31, 0x2b, //0x0000b510 .quad 3112525982153323237 + 0xa5, 0x61, 0x95, 0xb6, 0x7d, 0x4a, 0x1e, 0xec, //0x0000b518 .quad -1432625727662628443 + 0xcf, 0x9f, 0x43, 0x62, 0x2e, 0x32, 0xff, 0x3a, //0x0000b520 .quad 4251171748059520975 + 0x07, 0x5d, 0x1d, 0x92, 0x8e, 0xee, 0x92, 0x93, //0x0000b528 .quad -7812920107430224633 + 0xc2, 0x87, 0xd4, 0xfa, 0xb9, 0xfe, 0xbe, 0x09, //0x0000b530 .quad 702278666647013314 + 0x49, 0xb4, 0xa4, 0x36, 0x32, 0xaa, 0x77, 0xb8, //0x0000b538 .quad -5154464115860392887 + 0xb3, 0xa9, 0x89, 0x79, 0x68, 0xbe, 0x2e, 0x4c, //0x0000b540 .quad 5489534351736154547 + 0x5b, 0xe1, 0x4d, 0xc4, 0xbe, 0x94, 0x95, 0xe6, //0x0000b548 .quad -1831394126398103205 + 0x10, 0x0a, 0xf6, 0x4b, 0x01, 0x37, 0x9d, 0x0f, //0x0000b550 .quad 1125115960621402640 + 0xd9, 0xac, 0xb0, 0x3a, 0xf7, 0x7c, 0x1d, 0x90, //0x0000b558 .quad -8062150356639896359 + 0x94, 0x8c, 0xf3, 0x9e, 0xc1, 0x84, 0x84, 0x53, //0x0000b560 .quad 6018080969204141204 + 0x0f, 0xd8, 0x5c, 0x09, 0x35, 0xdc, 0x24, 0xb4, //0x0000b568 .quad -5466001927372482545 + 0xb9, 0x6f, 0xb0, 0x06, 0xf2, 0xa5, 0x65, 0x28, //0x0000b570 .quad 2910915193077788601 + 0x13, 0x0e, 0xb4, 0x4b, 0x42, 0x13, 0x2e, 0xe1, //0x0000b578 .quad -2220816390788215277 + 0xd3, 0x45, 0x2e, 0x44, 0xb7, 0x87, 0x3f, 0xf9, //0x0000b580 .quad -486521013540076077 + 0xcb, 0x88, 0x50, 0x6f, 0x09, 0xcc, 0xbc, 0x8c, //0x0000b588 .quad -8305539271883716405 + 0x48, 0xd7, 0x39, 0x15, 0xa5, 0x69, 0x8f, 0xf7, //0x0000b590 .quad -608151266925095096 + 0xfe, 0xaa, 0x24, 0xcb, 0x0b, 0xff, 0xeb, 0xaf, //0x0000b598 .quad -5770238071427257602 + 0x1b, 0x4d, 0x88, 0x5a, 0x0e, 0x44, 0x73, 0xb5, //0x0000b5a0 .quad -5371875102083756773 + 0xbe, 0xd5, 0xed, 0xbd, 0xce, 0xfe, 0xe6, 0xdb, //0x0000b5a8 .quad -2601111570856684098 + 0x30, 0x30, 0x95, 0xf8, 0x88, 0x0a, 0x68, 0x31, //0x0000b5b0 .quad 3560107088838733872 + 0x97, 0xa5, 0xb4, 0x36, 0x41, 0x5f, 0x70, 0x89, //0x0000b5b8 .quad -8543223759426509417 + 0x3d, 0x7c, 0xba, 0x36, 0x2b, 0x0d, 0xc2, 0xfd, //0x0000b5c0 .quad -161552157378970563 + 0xfc, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x0000b5c8 .quad -6067343680855748868 + 0x4c, 0x1b, 0x69, 0x04, 0x76, 0x90, 0x32, 0x3d, //0x0000b5d0 .quad 4409745821703674700 + 0xbc, 0x42, 0x7a, 0xe5, 0xd5, 0x94, 0xbf, 0xd6, //0x0000b5d8 .quad -2972493582642298180 + 0x0f, 0xb1, 0xc1, 0xc2, 0x49, 0x9a, 0x3f, 0xa6, //0x0000b5e0 .quad -6467280898289979121 + 0xb5, 0x69, 0x6c, 0xaf, 0x05, 0xbd, 0x37, 0x86, //0x0000b5e8 .quad -8775337516792518219 + 0x53, 0x1d, 0x72, 0x33, 0xdc, 0x80, 0xcf, 0x0f, //0x0000b5f0 .quad 1139270913992301907 + 0x23, 0x84, 0x47, 0x1b, 0x47, 0xac, 0xc5, 0xa7, //0x0000b5f8 .quad -6357485877563259869 + 0xa8, 0xa4, 0x4e, 0x40, 0x13, 0x61, 0xc3, 0xd3, //0x0000b600 .quad -3187597375937010520 + 0x2b, 0x65, 0x19, 0xe2, 0x58, 0x17, 0xb7, 0xd1, //0x0000b608 .quad -3335171328526686933 + 0xe9, 0x26, 0x31, 0x08, 0xac, 0x1c, 0x5a, 0x64, //0x0000b610 .quad 7231123676894144233 + 0x3b, 0xdf, 0x4f, 0x8d, 0x97, 0x6e, 0x12, 0x83, //0x0000b618 .quad -9002011107970261189 + 0xa3, 0x70, 0x3d, 0x0a, 0xd7, 0xa3, 0x70, 0x3d, //0x0000b620 .quad 4427218577690292387 + 0x0a, 0xd7, 0xa3, 0x70, 0x3d, 0x0a, 0xd7, 0xa3, //0x0000b628 .quad -6640827866535438582 + 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x0000b630 QUAD $0xcccccccccccccccc; QUAD $0xcccccccccccccccc // .space 16, '\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b640 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x0000b648 .quad -9223372036854775808 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b650 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, //0x0000b658 .quad -6917529027641081856 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b660 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc8, //0x0000b668 .quad -4035225266123964416 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b670 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, //0x0000b678 .quad -432345564227567616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b680 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x9c, //0x0000b688 .quad -7187745005283311616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b690 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0xc3, //0x0000b698 .quad -4372995238176751616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b6a0 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0xf4, //0x0000b6a8 .quad -854558029293551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b6b0 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x96, 0x98, //0x0000b6b8 .quad -7451627795949551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b6c0 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xbc, 0xbe, //0x0000b6c8 .quad -4702848726509551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b6d0 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x6b, 0xee, //0x0000b6d8 .quad -1266874889709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b6e0 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf9, 0x02, 0x95, //0x0000b6e8 .quad -7709325833709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b6f0 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x40, 0xb7, 0x43, 0xba, //0x0000b6f8 .quad -5024971273709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b700 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x10, 0xa5, 0xd4, 0xe8, //0x0000b708 .quad -1669528073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b710 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x2a, 0xe7, 0x84, 0x91, //0x0000b718 .quad -7960984073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b720 .quad 0 + 0x00, 0x00, 0x00, 0x80, 0xf4, 0x20, 0xe6, 0xb5, //0x0000b728 .quad -5339544073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b730 .quad 0 + 0x00, 0x00, 0x00, 0xa0, 0x31, 0xa9, 0x5f, 0xe3, //0x0000b738 .quad -2062744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b740 .quad 0 + 0x00, 0x00, 0x00, 0x04, 0xbf, 0xc9, 0x1b, 0x8e, //0x0000b748 .quad -8206744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b750 .quad 0 + 0x00, 0x00, 0x00, 0xc5, 0x2e, 0xbc, 0xa2, 0xb1, //0x0000b758 .quad -5646744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b760 .quad 0 + 0x00, 0x00, 0x40, 0x76, 0x3a, 0x6b, 0x0b, 0xde, //0x0000b768 .quad -2446744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b770 .quad 0 + 0x00, 0x00, 0xe8, 0x89, 0x04, 0x23, 0xc7, 0x8a, //0x0000b778 .quad -8446744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b780 .quad 0 + 0x00, 0x00, 0x62, 0xac, 0xc5, 0xeb, 0x78, 0xad, //0x0000b788 .quad -5946744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b790 .quad 0 + 0x00, 0x80, 0x7a, 0x17, 0xb7, 0x26, 0xd7, 0xd8, //0x0000b798 .quad -2821744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b7a0 .quad 0 + 0x00, 0x90, 0xac, 0x6e, 0x32, 0x78, 0x86, 0x87, //0x0000b7a8 .quad -8681119073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b7b0 .quad 0 + 0x00, 0xb4, 0x57, 0x0a, 0x3f, 0x16, 0x68, 0xa9, //0x0000b7b8 .quad -6239712823709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b7c0 .quad 0 + 0x00, 0xa1, 0xed, 0xcc, 0xce, 0x1b, 0xc2, 0xd3, //0x0000b7c8 .quad -3187955011209551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b7d0 .quad 0 + 0xa0, 0x84, 0x14, 0x40, 0x61, 0x51, 0x59, 0x84, //0x0000b7d8 .quad -8910000909647051616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b7e0 .quad 0 + 0xc8, 0xa5, 0x19, 0x90, 0xb9, 0xa5, 0x6f, 0xa5, //0x0000b7e8 .quad -6525815118631426616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b7f0 .quad 0 + 0x3a, 0x0f, 0x20, 0xf4, 0x27, 0x8f, 0xcb, 0xce, //0x0000b7f8 .quad -3545582879861895366 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, //0x0000b800 .quad 4611686018427387904 + 0x84, 0x09, 0x94, 0xf8, 0x78, 0x39, 0x3f, 0x81, //0x0000b808 .quad -9133518327554766460 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, //0x0000b810 .quad 5764607523034234880 + 0xe5, 0x0b, 0xb9, 0x36, 0xd7, 0x07, 0x8f, 0xa1, //0x0000b818 .quad -6805211891016070171 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa4, //0x0000b820 .quad -6629298651489370112 + 0xde, 0x4e, 0x67, 0x04, 0xcd, 0xc9, 0xf2, 0xc9, //0x0000b828 .quad -3894828845342699810 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4d, //0x0000b830 .quad 5548434740920451072 + 0x96, 0x22, 0x81, 0x45, 0x40, 0x7c, 0x6f, 0xfc, //0x0000b838 .quad -256850038250986858 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xf0, //0x0000b840 .quad -1143914305352105984 + 0x9d, 0xb5, 0x70, 0x2b, 0xa8, 0xad, 0xc5, 0x9d, //0x0000b848 .quad -7078060301547948643 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x6c, //0x0000b850 .quad 7793479155164643328 + 0x05, 0xe3, 0x4c, 0x36, 0x12, 0x19, 0x37, 0xc5, //0x0000b858 .quad -4235889358507547899 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0xc7, //0x0000b860 .quad -4093209111326359552 + 0xc6, 0x1b, 0xe0, 0xc3, 0x56, 0xdf, 0x84, 0xf6, //0x0000b868 .quad -683175679707046970 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7f, 0x3c, //0x0000b870 .quad 4359273333062107136 + 0x5c, 0x11, 0x6c, 0x3a, 0x96, 0x0b, 0x13, 0x9a, //0x0000b878 .quad -7344513827457986212 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x9f, 0x4b, //0x0000b880 .quad 5449091666327633920 + 0xb3, 0x15, 0x07, 0xc9, 0x7b, 0xce, 0x97, 0xc0, //0x0000b888 .quad -4568956265895094861 + 0x00, 0x00, 0x00, 0x00, 0x00, 0xd4, 0x86, 0x1e, //0x0000b890 .quad 2199678564482154496 + 0x20, 0xdb, 0x48, 0xbb, 0x1a, 0xc2, 0xbd, 0xf0, //0x0000b898 .quad -1099509313941480672 + 0x00, 0x00, 0x00, 0x00, 0x80, 0x44, 0x14, 0x13, //0x0000b8a0 .quad 1374799102801346560 + 0xf4, 0x88, 0x0d, 0xb5, 0x50, 0x99, 0x76, 0x96, //0x0000b8a8 .quad -7604722348854507276 + 0x00, 0x00, 0x00, 0x00, 0xa0, 0x55, 0xd9, 0x17, //0x0000b8b0 .quad 1718498878501683200 + 0x31, 0xeb, 0x50, 0xe2, 0xa4, 0x3f, 0x14, 0xbc, //0x0000b8b8 .quad -4894216917640746191 + 0x00, 0x00, 0x00, 0x00, 0x08, 0xab, 0xcf, 0x5d, //0x0000b8c0 .quad 6759809616554491904 + 0xfd, 0x25, 0xe5, 0x1a, 0x8e, 0x4f, 0x19, 0xeb, //0x0000b8c8 .quad -1506085128623544835 + 0x00, 0x00, 0x00, 0x00, 0xe5, 0xca, 0xa1, 0x5a, //0x0000b8d0 .quad 6530724019560251392 + 0xbe, 0x37, 0xcf, 0xd0, 0xb8, 0xd1, 0xef, 0x92, //0x0000b8d8 .quad -7858832233030797378 + 0x00, 0x00, 0x00, 0x40, 0x9e, 0x3d, 0x4a, 0xf1, //0x0000b8e0 .quad -1059967012404461568 + 0xad, 0x05, 0x03, 0x05, 0x27, 0xc6, 0xab, 0xb7, //0x0000b8e8 .quad -5211854272861108819 + 0x00, 0x00, 0x00, 0xd0, 0x05, 0xcd, 0x9c, 0x6d, //0x0000b8f0 .quad 7898413271349198848 + 0x19, 0xc7, 0x43, 0xc6, 0xb0, 0xb7, 0x96, 0xe5, //0x0000b8f8 .quad -1903131822648998119 + 0x00, 0x00, 0x00, 0xa2, 0x23, 0x00, 0x82, 0xe4, //0x0000b900 .quad -1981020733047832576 + 0x6f, 0x5c, 0xea, 0x7b, 0xce, 0x32, 0x7e, 0x8f, //0x0000b908 .quad -8106986416796705681 + 0x00, 0x00, 0x80, 0x8a, 0x2c, 0x80, 0xa2, 0xdd, //0x0000b910 .quad -2476275916309790720 + 0x8b, 0xf3, 0xe4, 0x1a, 0x82, 0xbf, 0x5d, 0xb3, //0x0000b918 .quad -5522047002568494197 + 0x00, 0x00, 0x20, 0xad, 0x37, 0x20, 0x0b, 0xd5, //0x0000b920 .quad -3095344895387238400 + 0x6e, 0x30, 0x9e, 0xa1, 0x62, 0x2f, 0x35, 0xe0, //0x0000b928 .quad -2290872734783229842 + 0x00, 0x00, 0x34, 0xcc, 0x22, 0xf4, 0x26, 0x45, //0x0000b930 .quad 4982938468024057856 + 0x45, 0xde, 0x02, 0xa5, 0x9d, 0x3d, 0x21, 0x8c, //0x0000b938 .quad -8349324486880600507 + 0x00, 0x00, 0x41, 0x7f, 0x2b, 0xb1, 0x70, 0x96, //0x0000b940 .quad -7606384970252091392 + 0xd6, 0x95, 0x43, 0x0e, 0x05, 0x8d, 0x29, 0xaf, //0x0000b948 .quad -5824969590173362730 + 0x00, 0x40, 0x11, 0x5f, 0x76, 0xdd, 0x0c, 0x3c, //0x0000b950 .quad 4327076842467049472 + 0x4c, 0x7b, 0xd4, 0x51, 0x46, 0xf0, 0xf3, 0xda, //0x0000b958 .quad -2669525969289315508 + 0x00, 0xc8, 0x6a, 0xfb, 0x69, 0x0a, 0x88, 0xa5, //0x0000b960 .quad -6518949010312869888 + 0x0f, 0xcd, 0x24, 0xf3, 0x2b, 0x76, 0xd8, 0x88, //0x0000b968 .quad -8585982758446904049 + 0x00, 0x7a, 0x45, 0x7a, 0x04, 0x0d, 0xea, 0x8e, //0x0000b970 .quad -8148686262891087360 + 0x53, 0x00, 0xee, 0xef, 0xb6, 0x93, 0x0e, 0xab, //0x0000b978 .quad -6120792429631242157 + 0x80, 0xd8, 0xd6, 0x98, 0x45, 0x90, 0xa4, 0x72, //0x0000b980 .quad 8260886245095692416 + 0x68, 0x80, 0xe9, 0xab, 0xa4, 0x38, 0xd2, 0xd5, //0x0000b988 .quad -3039304518611664792 + 0x50, 0x47, 0x86, 0x7f, 0x2b, 0xda, 0xa6, 0x47, //0x0000b990 .quad 5163053903184807760 + 0x41, 0xf0, 0x71, 0xeb, 0x66, 0x63, 0xa3, 0x85, //0x0000b998 .quad -8817094351773372351 + 0x24, 0xd9, 0x67, 0x5f, 0xb6, 0x90, 0x90, 0x99, //0x0000b9a0 .quad -7381240676301154012 + 0x51, 0x6c, 0x4e, 0xa6, 0x40, 0x3c, 0x0c, 0xa7, //0x0000b9a8 .quad -6409681921289327535 + 0x6d, 0xcf, 0x41, 0xf7, 0xe3, 0xb4, 0xf4, 0xff, //0x0000b9b0 .quad -3178808521666707 + 0x65, 0x07, 0xe2, 0xcf, 0x50, 0x4b, 0xcf, 0xd0, //0x0000b9b8 .quad -3400416383184271515 + 0xa4, 0x21, 0x89, 0x7a, 0x0e, 0xf1, 0xf8, 0xbf, //0x0000b9c0 .quad -4613672773753429596 + 0x9f, 0x44, 0xed, 0x81, 0x12, 0x8f, 0x81, 0x82, //0x0000b9c8 .quad -9042789267131251553 + 0x0d, 0x6a, 0x2b, 0x19, 0x52, 0x2d, 0xf7, 0xaf, //0x0000b9d0 .quad -5767090967191786995 + 0xc7, 0x95, 0x68, 0x22, 0xd7, 0xf2, 0x21, 0xa3, //0x0000b9d8 .quad -6691800565486676537 + 0x90, 0x44, 0x76, 0x9f, 0xa6, 0xf8, 0xf4, 0x9b, //0x0000b9e0 .quad -7208863708989733744 + 0x39, 0xbb, 0x02, 0xeb, 0x8c, 0x6f, 0xea, 0xcb, //0x0000b9e8 .quad -3753064688430957767 + 0xb4, 0xd5, 0x53, 0x47, 0xd0, 0x36, 0xf2, 0x02, //0x0000b9f0 .quad 212292400617608628 + 0x08, 0x6a, 0xc3, 0x25, 0x70, 0x0b, 0xe5, 0xfe, //0x0000b9f8 .quad -79644842111309304 + 0x90, 0x65, 0x94, 0x2c, 0x42, 0x62, 0xd7, 0x01, //0x0000ba00 .quad 132682750386005392 + 0x45, 0x22, 0x9a, 0x17, 0x26, 0x27, 0x4f, 0x9f, //0x0000ba08 .quad -6967307053960650171 + 0xf5, 0x7e, 0xb9, 0xb7, 0xd2, 0x3a, 0x4d, 0x42, //0x0000ba10 .quad 4777539456409894645 + 0xd6, 0xaa, 0x80, 0x9d, 0xef, 0xf0, 0x22, 0xc7, //0x0000ba18 .quad -4097447799023424810 + 0xb2, 0xde, 0xa7, 0x65, 0x87, 0x89, 0xe0, 0xd2, //0x0000ba20 .quad -3251447716342407502 + 0x8b, 0xd5, 0xe0, 0x84, 0x2b, 0xad, 0xeb, 0xf8, //0x0000ba28 .quad -510123730351893109 + 0x2f, 0xeb, 0x88, 0x9f, 0xf4, 0x55, 0xcc, 0x63, //0x0000ba30 .quad 7191217214140771119 + 0x77, 0x85, 0x0c, 0x33, 0x3b, 0x4c, 0x93, 0x9b, //0x0000ba38 .quad -7236356359111015049 + 0xfb, 0x25, 0x6b, 0xc7, 0x71, 0x6b, 0xbf, 0x3c, //0x0000ba40 .quad 4377335499248575995 + 0xd5, 0xa6, 0xcf, 0xff, 0x49, 0x1f, 0x78, 0xc2, //0x0000ba48 .quad -4433759430461380907 + 0x7a, 0xef, 0x45, 0x39, 0x4e, 0x46, 0xef, 0x8b, //0x0000ba50 .quad -8363388681221443718 + 0x8a, 0x90, 0xc3, 0x7f, 0x1c, 0x27, 0x16, 0xf3, //0x0000ba58 .quad -930513269649338230 + 0xac, 0xb5, 0xcb, 0xe3, 0xf0, 0x8b, 0x75, 0x97, //0x0000ba60 .quad -7532960934977096276 + 0x56, 0x3a, 0xda, 0xcf, 0x71, 0xd8, 0xed, 0x97, //0x0000ba68 .quad -7499099821171918250 + 0x17, 0xa3, 0xbe, 0x1c, 0xed, 0xee, 0x52, 0x3d, //0x0000ba70 .quad 4418856886560793367 + 0xec, 0xc8, 0xd0, 0x43, 0x8e, 0x4e, 0xe9, 0xbd, //0x0000ba78 .quad -4762188758037509908 + 0xdd, 0x4b, 0xee, 0x63, 0xa8, 0xaa, 0xa7, 0x4c, //0x0000ba80 .quad 5523571108200991709 + 0x27, 0xfb, 0xc4, 0xd4, 0x31, 0xa2, 0x63, 0xed, //0x0000ba88 .quad -1341049929119499481 + 0x6a, 0xef, 0x74, 0x3e, 0xa9, 0xca, 0xe8, 0x8f, //0x0000ba90 .quad -8076983103442849942 + 0xf8, 0x1c, 0xfb, 0x24, 0x5f, 0x45, 0x5e, 0x94, //0x0000ba98 .quad -7755685233340769032 + 0x44, 0x2b, 0x12, 0x8e, 0x53, 0xfd, 0xe2, 0xb3, //0x0000baa0 .quad -5484542860876174524 + 0x36, 0xe4, 0x39, 0xee, 0xb6, 0xd6, 0x75, 0xb9, //0x0000baa8 .quad -5082920523248573386 + 0x16, 0xb6, 0x96, 0x71, 0xa8, 0xbc, 0xdb, 0x60, //0x0000bab0 .quad 6979379479186945558 + 0x44, 0x5d, 0xc8, 0xa9, 0x64, 0x4c, 0xd3, 0xe7, //0x0000bab8 .quad -1741964635633328828 + 0xcd, 0x31, 0xfe, 0x46, 0xe9, 0x55, 0x89, 0xbc, //0x0000bac0 .quad -4861259862362934835 + 0x4a, 0x3a, 0x1d, 0xea, 0xbe, 0x0f, 0xe4, 0x90, //0x0000bac8 .quad -8006256924911912374 + 0x41, 0xbe, 0xbd, 0x98, 0x63, 0xab, 0xab, 0x6b, //0x0000bad0 .quad 7758483227328495169 + 0xdd, 0x88, 0xa4, 0xa4, 0xae, 0x13, 0x1d, 0xb5, //0x0000bad8 .quad -5396135137712502563 + 0xd1, 0x2d, 0xed, 0x7e, 0x3c, 0x96, 0x96, 0xc6, //0x0000bae0 .quad -4136954021121544751 + 0x14, 0xab, 0xcd, 0x4d, 0x9a, 0x58, 0x64, 0xe2, //0x0000bae8 .quad -2133482903713240300 + 0xa2, 0x3c, 0x54, 0xcf, 0xe5, 0x1d, 0x1e, 0xfc, //0x0000baf0 .quad -279753253987271518 + 0xec, 0x8a, 0xa0, 0x70, 0x60, 0xb7, 0x7e, 0x8d, //0x0000baf8 .quad -8250955842461857044 + 0xcb, 0x4b, 0x29, 0x43, 0x5f, 0xa5, 0x25, 0x3b, //0x0000bb00 .quad 4261994450943298507 + 0xa8, 0xad, 0xc8, 0x8c, 0x38, 0x65, 0xde, 0xb0, //0x0000bb08 .quad -5702008784649933400 + 0xbe, 0x9e, 0xf3, 0x13, 0xb7, 0x0e, 0xef, 0x49, //0x0000bb10 .quad 5327493063679123134 + 0x12, 0xd9, 0xfa, 0xaf, 0x86, 0xfe, 0x15, 0xdd, //0x0000bb18 .quad -2515824962385028846 + 0x37, 0x43, 0x78, 0x6c, 0x32, 0x69, 0x35, 0x6e, //0x0000bb20 .quad 7941369183226839863 + 0xab, 0xc7, 0xfc, 0x2d, 0x14, 0xbf, 0x2d, 0x8a, //0x0000bb28 .quad -8489919629131724885 + 0x04, 0x54, 0x96, 0x07, 0x7f, 0xc3, 0xc2, 0x49, //0x0000bb30 .quad 5315025460606161924 + 0x96, 0xf9, 0x7b, 0x39, 0xd9, 0x2e, 0xb9, 0xac, //0x0000bb38 .quad -6000713517987268202 + 0x06, 0xe9, 0x7b, 0xc9, 0x5e, 0x74, 0x33, 0xdc, //0x0000bb40 .quad -2579590211097073402 + 0xfb, 0xf7, 0xda, 0x87, 0x8f, 0x7a, 0xe7, 0xd7, //0x0000bb48 .quad -2889205879056697349 + 0xa3, 0x71, 0xed, 0x3d, 0xbb, 0x28, 0xa0, 0x69, //0x0000bb50 .quad 7611128154919104931 + 0xfd, 0xda, 0xe8, 0xb4, 0x99, 0xac, 0xf0, 0x86, //0x0000bb58 .quad -8723282702051517699 + 0x0c, 0xce, 0x68, 0x0d, 0xea, 0x32, 0x08, 0xc4, //0x0000bb60 .quad -4321147861633282548 + 0xbc, 0x11, 0x23, 0x22, 0xc0, 0xd7, 0xac, 0xa8, //0x0000bb68 .quad -6292417359137009220 + 0x90, 0x01, 0xc3, 0x90, 0xa4, 0x3f, 0x0a, 0xf5, //0x0000bb70 .quad -789748808614215280 + 0x2b, 0xd6, 0xab, 0x2a, 0xb0, 0x0d, 0xd8, 0xd2, //0x0000bb78 .quad -3253835680493873621 + 0xfa, 0xe0, 0x79, 0xda, 0xc6, 0x67, 0x26, 0x79, //0x0000bb80 .quad 8729779031470891258 + 0xdb, 0x65, 0xab, 0x1a, 0x8e, 0x08, 0xc7, 0x83, //0x0000bb88 .quad -8951176327949752869 + 0x38, 0x59, 0x18, 0x91, 0xb8, 0x01, 0x70, 0x57, //0x0000bb90 .quad 6300537770911226168 + 0x52, 0x3f, 0x56, 0xa1, 0xb1, 0xca, 0xb8, 0xa4, //0x0000bb98 .quad -6577284391509803182 + 0x86, 0x6f, 0x5e, 0xb5, 0x26, 0x02, 0x4c, 0xed, //0x0000bba0 .quad -1347699823215743098 + 0x26, 0xcf, 0xab, 0x09, 0x5e, 0xfd, 0xe6, 0xcd, //0x0000bba8 .quad -3609919470959866074 + 0xb4, 0x05, 0x5b, 0x31, 0x58, 0x81, 0x4f, 0x54, //0x0000bbb0 .quad 6075216638131242420 + 0x78, 0x61, 0x0b, 0xc6, 0x5a, 0x5e, 0xb0, 0x80, //0x0000bbb8 .quad -9173728696990998152 + 0x21, 0xc7, 0xb1, 0x3d, 0xae, 0x61, 0x63, 0x69, //0x0000bbc0 .quad 7594020797664053025 + 0xd6, 0x39, 0x8e, 0x77, 0xf1, 0x75, 0xdc, 0xa0, //0x0000bbc8 .quad -6855474852811359786 + 0xe9, 0x38, 0x1e, 0xcd, 0x19, 0x3a, 0xbc, 0x03, //0x0000bbd0 .quad 269153960225290473 + 0x4c, 0xc8, 0x71, 0xd5, 0x6d, 0x93, 0x13, 0xc9, //0x0000bbd8 .quad -3957657547586811828 + 0x23, 0xc7, 0x65, 0x40, 0xa0, 0x48, 0xab, 0x04, //0x0000bbe0 .quad 336442450281613091 + 0x5f, 0x3a, 0xce, 0x4a, 0x49, 0x78, 0x58, 0xfb, //0x0000bbe8 .quad -335385916056126881 + 0x76, 0x9c, 0x3f, 0x28, 0x64, 0x0d, 0xeb, 0x62, //0x0000bbf0 .quad 7127805559067090038 + 0x7b, 0xe4, 0xc0, 0xce, 0x2d, 0x4b, 0x17, 0x9d, //0x0000bbf8 .quad -7127145225176161157 + 0x94, 0x83, 0x4f, 0x32, 0xbd, 0xd0, 0xa5, 0x3b, //0x0000bc00 .quad 4298070930406474644 + 0x9a, 0x1d, 0x71, 0x42, 0xf9, 0x1d, 0x5d, 0xc4, //0x0000bc08 .quad -4297245513042813542 + 0x79, 0x64, 0xe3, 0x7e, 0xec, 0x44, 0x8f, 0xca, //0x0000bc10 .quad -3850783373846682503 + 0x00, 0x65, 0x0d, 0x93, 0x77, 0x65, 0x74, 0xf5, //0x0000bc18 .quad -759870872876129024 + 0xcb, 0x1e, 0x4e, 0xcf, 0x13, 0x8b, 0x99, 0x7e, //0x0000bc20 .quad 9122475437414293195 + 0x20, 0x5f, 0xe8, 0xbb, 0x6a, 0xbf, 0x68, 0x99, //0x0000bc28 .quad -7392448323188662496 + 0x7e, 0xa6, 0x21, 0xc3, 0xd8, 0xed, 0x3f, 0x9e, //0x0000bc30 .quad -7043649776941685122 + 0xe8, 0x76, 0xe2, 0x6a, 0x45, 0xef, 0xc2, 0xbf, //0x0000bc38 .quad -4628874385558440216 + 0x1e, 0x10, 0xea, 0xf3, 0x4e, 0xe9, 0xcf, 0xc5, //0x0000bc40 .quad -4192876202749718498 + 0xa2, 0x14, 0x9b, 0xc5, 0x16, 0xab, 0xb3, 0xef, //0x0000bc48 .quad -1174406963520662366 + 0x12, 0x4a, 0x72, 0x58, 0xd1, 0xf1, 0xa1, 0xbb, //0x0000bc50 .quad -4926390635932268014 + 0xe5, 0xec, 0x80, 0x3b, 0xee, 0x4a, 0xd0, 0x95, //0x0000bc58 .quad -7651533379841495835 + 0x97, 0xdc, 0x8e, 0xae, 0x45, 0x6e, 0x8a, 0x2a, //0x0000bc60 .quad 3065383741939440791 + 0x1f, 0x28, 0x61, 0xca, 0xa9, 0x5d, 0x44, 0xbb, //0x0000bc68 .quad -4952730706374481889 + 0xbd, 0x93, 0x32, 0x1a, 0xd7, 0x09, 0x2d, 0xf5, //0x0000bc70 .quad -779956341003086915 + 0x26, 0x72, 0xf9, 0x3c, 0x14, 0x75, 0x15, 0xea, //0x0000bc78 .quad -1579227364540714458 + 0x56, 0x9c, 0x5f, 0x70, 0x26, 0x26, 0x3c, 0x59, //0x0000bc80 .quad 6430056314514152534 + 0x58, 0xe7, 0x1b, 0xa6, 0x2c, 0x69, 0x4d, 0x92, //0x0000bc88 .quad -7904546130479028392 + 0x6c, 0x83, 0x77, 0x0c, 0xb0, 0x2f, 0x8b, 0x6f, //0x0000bc90 .quad 8037570393142690668 + 0x2e, 0xe1, 0xa2, 0xcf, 0x77, 0xc3, 0xe0, 0xb6, //0x0000bc98 .quad -5268996644671397586 + 0x47, 0x64, 0x95, 0x0f, 0x9c, 0xfb, 0x6d, 0x0b, //0x0000bca0 .quad 823590954573587527 + 0x7a, 0x99, 0x8b, 0xc3, 0x55, 0xf4, 0x98, 0xe4, //0x0000bca8 .quad -1974559787411859078 + 0xac, 0x5e, 0xbd, 0x89, 0x41, 0xbd, 0x24, 0x47, //0x0000bcb0 .quad 5126430365035880108 + 0xec, 0x3f, 0x37, 0x9a, 0xb5, 0x98, 0xdf, 0x8e, //0x0000bcb8 .quad -8151628894773493780 + 0x57, 0xb6, 0x2c, 0xec, 0x91, 0xec, 0xed, 0x58, //0x0000bcc0 .quad 6408037956294850135 + 0xe7, 0x0f, 0xc5, 0x00, 0xe3, 0x7e, 0x97, 0xb2, //0x0000bcc8 .quad -5577850100039479321 + 0xed, 0xe3, 0x37, 0x67, 0xb6, 0x67, 0x29, 0x2f, //0x0000bcd0 .quad 3398361426941174765 + 0xe1, 0x53, 0xf6, 0xc0, 0x9b, 0x5e, 0x3d, 0xdf, //0x0000bcd8 .quad -2360626606621961247 + 0x74, 0xee, 0x82, 0x00, 0xd2, 0xe0, 0x79, 0xbd, //0x0000bce0 .quad -4793553135802847628 + 0x6c, 0xf4, 0x99, 0x58, 0x21, 0x5b, 0x86, 0x8b, //0x0000bce8 .quad -8392920656779807636 + 0x11, 0xaa, 0xa3, 0x80, 0x06, 0x59, 0xd8, 0xec, //0x0000bcf0 .quad -1380255401326171631 + 0x87, 0x71, 0xc0, 0xae, 0xe9, 0xf1, 0x67, 0xae, //0x0000bcf8 .quad -5879464802547371641 + 0x95, 0x94, 0xcc, 0x20, 0x48, 0x6f, 0x0e, 0xe8, //0x0000bd00 .quad -1725319251657714539 + 0xe9, 0x8d, 0x70, 0x1a, 0x64, 0xee, 0x01, 0xda, //0x0000bd08 .quad -2737644984756826647 + 0xdd, 0xdc, 0x7f, 0x14, 0x8d, 0x05, 0x09, 0x31, //0x0000bd10 .quad 3533361486141316317 + 0xb2, 0x58, 0x86, 0x90, 0xfe, 0x34, 0x41, 0x88, //0x0000bd18 .quad -8628557143114098510 + 0x15, 0xd4, 0x9f, 0x59, 0xf0, 0x46, 0x4b, 0xbd, //0x0000bd20 .quad -4806670179178130411 + 0xde, 0xee, 0xa7, 0x34, 0x3e, 0x82, 0x51, 0xaa, //0x0000bd28 .quad -6174010410465235234 + 0x1a, 0xc9, 0x07, 0x70, 0xac, 0x18, 0x9e, 0x6c, //0x0000bd30 .quad 7826720331309500698 + 0x96, 0xea, 0xd1, 0xc1, 0xcd, 0xe2, 0xe5, 0xd4, //0x0000bd38 .quad -3105826994654156138 + 0xb0, 0xdd, 0x04, 0xc6, 0x6b, 0xcf, 0xe2, 0x03, //0x0000bd40 .quad 280014188641050032 + 0x9e, 0x32, 0x23, 0x99, 0xc0, 0xad, 0x0f, 0x85, //0x0000bd48 .quad -8858670899299929442 + 0x1c, 0x15, 0x86, 0xb7, 0x46, 0x83, 0xdb, 0x84, //0x0000bd50 .quad -8873354301053463268 + 0x45, 0xff, 0x6b, 0xbf, 0x30, 0x99, 0x53, 0xa6, //0x0000bd58 .quad -6461652605697523899 + 0x63, 0x9a, 0x67, 0x65, 0x18, 0x64, 0x12, 0xe6, //0x0000bd60 .quad -1868320839462053277 + 0x16, 0xff, 0x46, 0xef, 0x7c, 0x7f, 0xe8, 0xcf, //0x0000bd68 .quad -3465379738694516970 + 0x7e, 0xc0, 0x60, 0x3f, 0x8f, 0x7e, 0xcb, 0x4f, //0x0000bd70 .quad 5749828502977298558 + 0x6e, 0x5f, 0x8c, 0x15, 0xae, 0x4f, 0xf1, 0x81, //0x0000bd78 .quad -9083391364325154962 + 0x9d, 0xf0, 0x38, 0x0f, 0x33, 0x5e, 0xbe, 0xe3, //0x0000bd80 .quad -2036086408133152611 + 0x49, 0x77, 0xef, 0x9a, 0x99, 0xa3, 0x6d, 0xa2, //0x0000bd88 .quad -6742553186979055799 + 0xc5, 0x2c, 0x07, 0xd3, 0xbf, 0xf5, 0xad, 0x5c, //0x0000bd90 .quad 6678264026688335045 + 0x1c, 0x55, 0xab, 0x01, 0x80, 0x0c, 0x09, 0xcb, //0x0000bd98 .quad -3816505465296431844 + 0xf6, 0xf7, 0xc8, 0xc7, 0x2f, 0x73, 0xd9, 0x73, //0x0000bda0 .quad 8347830033360418806 + 0x63, 0x2a, 0x16, 0x02, 0xa0, 0x4f, 0xcb, 0xfd, //0x0000bda8 .quad -158945813193151901 + 0xfa, 0x9a, 0xdd, 0xdc, 0xfd, 0xe7, 0x67, 0x28, //0x0000bdb0 .quad 2911550761636567802 + 0x7e, 0xda, 0x4d, 0x01, 0xc4, 0x11, 0x9f, 0x9e, //0x0000bdb8 .quad -7016870160886801794 + 0xb8, 0x01, 0x15, 0x54, 0xfd, 0xe1, 0x81, 0xb2, //0x0000bdc0 .quad -5583933584809066056 + 0x1d, 0x51, 0xa1, 0x01, 0x35, 0xd6, 0x46, 0xc6, //0x0000bdc8 .quad -4159401682681114339 + 0x26, 0x42, 0x1a, 0xa9, 0x7c, 0x5a, 0x22, 0x1f, //0x0000bdd0 .quad 2243455055843443238 + 0x65, 0xa5, 0x09, 0x42, 0xc2, 0x8b, 0xd8, 0xf7, //0x0000bdd8 .quad -587566084924005019 + 0x58, 0x69, 0xb0, 0xe9, 0x8d, 0x78, 0x75, 0x33, //0x0000bde0 .quad 3708002419115845976 + 0x5f, 0x07, 0x46, 0x69, 0x59, 0x57, 0xe7, 0x9a, //0x0000bde8 .quad -7284757830718584993 + 0xae, 0x83, 0x1c, 0x64, 0xb1, 0xd6, 0x52, 0x00, //0x0000bdf0 .quad 23317005467419566 + 0x37, 0x89, 0x97, 0xc3, 0x2f, 0x2d, 0xa1, 0xc1, //0x0000bdf8 .quad -4494261269970843337 + 0x9a, 0xa4, 0x23, 0xbd, 0x5d, 0x8c, 0x67, 0xc0, //0x0000be00 .quad -4582539761593113446 + 0x84, 0x6b, 0x7d, 0xb4, 0x7b, 0x78, 0x09, 0xf2, //0x0000be08 .quad -1006140569036166268 + 0xe0, 0x46, 0x36, 0x96, 0xba, 0xb7, 0x40, 0xf8, //0x0000be10 .quad -558244341782001952 + 0x32, 0x63, 0xce, 0x50, 0x4d, 0xeb, 0x45, 0x97, //0x0000be18 .quad -7546366883288685774 + 0x98, 0xd8, 0xc3, 0x3b, 0xa9, 0xe5, 0x50, 0xb6, //0x0000be20 .quad -5309491445654890344 + 0xff, 0xfb, 0x01, 0xa5, 0x20, 0x66, 0x17, 0xbd, //0x0000be28 .quad -4821272585683469313 + 0xbe, 0xce, 0xb4, 0x8a, 0x13, 0x1f, 0xe5, 0xa3, //0x0000be30 .quad -6636864307068612930 + 0xff, 0x7a, 0x42, 0xce, 0xa8, 0x3f, 0x5d, 0xec, //0x0000be38 .quad -1414904713676948737 + 0x37, 0x01, 0xb1, 0x36, 0x6c, 0x33, 0x6f, 0xc6, //0x0000be40 .quad -4148040191917883081 + 0xdf, 0x8c, 0xe9, 0x80, 0xc9, 0x47, 0xba, 0x93, //0x0000be48 .quad -7801844473689174817 + 0x84, 0x41, 0x5d, 0x44, 0x47, 0x00, 0x0b, 0xb8, //0x0000be50 .quad -5185050239897353852 + 0x17, 0xf0, 0x23, 0xe1, 0xbb, 0xd9, 0xa8, 0xb8, //0x0000be58 .quad -5140619573684080617 + 0xe5, 0x91, 0x74, 0x15, 0x59, 0xc0, 0x0d, 0xa6, //0x0000be60 .quad -6481312799871692315 + 0x1d, 0xec, 0x6c, 0xd9, 0x2a, 0x10, 0xd3, 0xe6, //0x0000be68 .quad -1814088448677712867 + 0x2f, 0xdb, 0x68, 0xad, 0x37, 0x98, 0xc8, 0x87, //0x0000be70 .quad -8662506518347195601 + 0x92, 0x13, 0xe4, 0xc7, 0x1a, 0xea, 0x43, 0x90, //0x0000be78 .quad -8051334308064652398 + 0xfb, 0x11, 0xc3, 0x98, 0x45, 0xbe, 0xba, 0x29, //0x0000be80 .quad 3006924907348169211 + 0x77, 0x18, 0xdd, 0x79, 0xa1, 0xe4, 0x54, 0xb4, //0x0000be88 .quad -5452481866653427593 + 0x7a, 0xd6, 0xf3, 0xfe, 0xd6, 0x6d, 0x29, 0xf4, //0x0000be90 .quad -853029884242176390 + 0x94, 0x5e, 0x54, 0xd8, 0xc9, 0x1d, 0x6a, 0xe1, //0x0000be98 .quad -2203916314889396588 + 0x0c, 0x66, 0x58, 0x5f, 0xa6, 0xe4, 0x99, 0x18, //0x0000bea0 .quad 1772699331562333708 + 0x1d, 0xbb, 0x34, 0x27, 0x9e, 0x52, 0xe2, 0x8c, //0x0000bea8 .quad -8294976724446954723 + 0x8f, 0x7f, 0x2e, 0xf7, 0xcf, 0x5d, 0xc0, 0x5e, //0x0000beb0 .quad 6827560182880305039 + 0xe4, 0xe9, 0x01, 0xb1, 0x45, 0xe7, 0x1a, 0xb0, //0x0000beb8 .quad -5757034887131305500 + 0x73, 0x1f, 0xfa, 0xf4, 0x43, 0x75, 0x70, 0x76, //0x0000bec0 .quad 8534450228600381299 + 0x5d, 0x64, 0x42, 0x1d, 0x17, 0xa1, 0x21, 0xdc, //0x0000bec8 .quad -2584607590486743971 + 0xa8, 0x53, 0x1c, 0x79, 0x4a, 0x49, 0x06, 0x6a, //0x0000bed0 .quad 7639874402088932264 + 0xba, 0x7e, 0x49, 0x72, 0xae, 0x04, 0x95, 0x89, //0x0000bed8 .quad -8532908771695296838 + 0x92, 0x68, 0x63, 0x17, 0x9d, 0xdb, 0x87, 0x04, //0x0000bee0 .quad 326470965756389522 + 0x69, 0xde, 0xdb, 0x0e, 0xda, 0x45, 0xfa, 0xab, //0x0000bee8 .quad -6054449946191733143 + 0xb6, 0x42, 0x3c, 0x5d, 0x84, 0xd2, 0xa9, 0x45, //0x0000bef0 .quad 5019774725622874806 + 0x03, 0xd6, 0x92, 0x92, 0x50, 0xd7, 0xf8, 0xd6, //0x0000bef8 .quad -2956376414312278525 + 0xb2, 0xa9, 0x45, 0xba, 0x92, 0x23, 0x8a, 0x0b, //0x0000bf00 .quad 831516194300602802 + 0xc2, 0xc5, 0x9b, 0x5b, 0x92, 0x86, 0x5b, 0x86, //0x0000bf08 .quad -8765264286586255934 + 0x1e, 0x14, 0xd7, 0x68, 0x77, 0xac, 0x6c, 0x8e, //0x0000bf10 .quad -8183976793979022306 + 0x32, 0xb7, 0x82, 0xf2, 0x36, 0x68, 0xf2, 0xa7, //0x0000bf18 .quad -6344894339805432014 + 0x26, 0xd9, 0x0c, 0x43, 0x95, 0xd7, 0x07, 0x32, //0x0000bf20 .quad 3605087062808385830 + 0xff, 0x64, 0x23, 0xaf, 0x44, 0x02, 0xef, 0xd1, //0x0000bf28 .quad -3319431906329402113 + 0xb8, 0x07, 0xe8, 0x49, 0xbd, 0xe6, 0x44, 0x7f, //0x0000bf30 .quad 9170708441896323000 + 0x1f, 0x1f, 0x76, 0xed, 0x6a, 0x61, 0x35, 0x83, //0x0000bf38 .quad -8992173969096958177 + 0xa6, 0x09, 0x62, 0x9c, 0x6c, 0x20, 0x16, 0x5f, //0x0000bf40 .quad 6851699533943015846 + 0xe7, 0xa6, 0xd3, 0xa8, 0xc5, 0xb9, 0x02, 0xa4, //0x0000bf48 .quad -6628531442943809817 + 0x0f, 0x8c, 0x7a, 0xc3, 0x87, 0xa8, 0xdb, 0x36, //0x0000bf50 .quad 3952938399001381903 + 0xa1, 0x90, 0x08, 0x13, 0x37, 0x68, 0x03, 0xcd, //0x0000bf58 .quad -3673978285252374367 + 0x89, 0x97, 0x2c, 0xda, 0x54, 0x49, 0x49, 0xc2, //0x0000bf60 .quad -4446942528265218167 + 0x64, 0x5a, 0xe5, 0x6b, 0x22, 0x21, 0x22, 0x80, //0x0000bf68 .quad -9213765455923815836 + 0x6c, 0xbd, 0xb7, 0x10, 0xaa, 0x9b, 0xdb, 0xf2, //0x0000bf70 .quad -946992141904134804 + 0xfd, 0xb0, 0xde, 0x06, 0x6b, 0xa9, 0x2a, 0xa0, //0x0000bf78 .quad -6905520801477381891 + 0xc7, 0xac, 0xe5, 0x94, 0x94, 0x82, 0x92, 0x6f, //0x0000bf80 .quad 8039631859474607303 + 0x3d, 0x5d, 0x96, 0xc8, 0xc5, 0x53, 0x35, 0xc8, //0x0000bf88 .quad -4020214983419339459 + 0xf9, 0x17, 0x1f, 0xba, 0x39, 0x23, 0x77, 0xcb, //0x0000bf90 .quad -3785518230938904583 + 0x8c, 0xf4, 0xbb, 0x3a, 0xb7, 0xa8, 0x42, 0xfa, //0x0000bf98 .quad -413582710846786420 + 0xfb, 0x6e, 0x53, 0x14, 0x04, 0x76, 0x2a, 0xff, //0x0000bfa0 .quad -60105885123121413 + 0xd7, 0x78, 0xb5, 0x84, 0x72, 0xa9, 0x69, 0x9c, //0x0000bfa8 .quad -7176018221920323369 + 0xba, 0x4a, 0x68, 0x19, 0x85, 0x13, 0xf5, 0xfe, //0x0000bfb0 .quad -75132356403901766 + 0x0d, 0xd7, 0xe2, 0x25, 0xcf, 0x13, 0x84, 0xc3, //0x0000bfb8 .quad -4358336758973016307 + 0x69, 0x5d, 0xc2, 0x5f, 0x66, 0x58, 0xb2, 0x7e, //0x0000bfc0 .quad 9129456591349898601 + 0xd1, 0x8c, 0x5b, 0xef, 0xc2, 0x18, 0x65, 0xf4, //0x0000bfc8 .quad -836234930288882479 + 0x61, 0x7a, 0xd9, 0xfb, 0x3f, 0x77, 0x2f, 0xef, //0x0000bfd0 .quad -1211618658047395231 + 0x02, 0x38, 0x99, 0xd5, 0x79, 0x2f, 0xbf, 0x98, //0x0000bfd8 .quad -7440175859071633406 + 0xfa, 0xd8, 0xcf, 0xfa, 0x0f, 0x55, 0xfb, 0xaa, //0x0000bfe0 .quad -6126209340986631942 + 0x03, 0x86, 0xff, 0x4a, 0x58, 0xfb, 0xee, 0xbe, //0x0000bfe8 .quad -4688533805412153853 + 0x38, 0xcf, 0x83, 0xf9, 0x53, 0x2a, 0xba, 0x95, //0x0000bff0 .quad -7657761676233289928 + 0x84, 0x67, 0xbf, 0x5d, 0x2e, 0xba, 0xaa, 0xee, //0x0000bff8 .quad -1248981238337804412 + 0x83, 0x61, 0xf2, 0x7b, 0x74, 0x5a, 0x94, 0xdd, //0x0000c000 .quad -2480258038432112253 + 0xb2, 0xa0, 0x97, 0xfa, 0x5c, 0xb4, 0x2a, 0x95, //0x0000c008 .quad -7698142301602209614 + 0xe4, 0xf9, 0xee, 0x9a, 0x11, 0x71, 0xf9, 0x94, //0x0000c010 .quad -7712008566467528220 + 0xdf, 0x88, 0x3d, 0x39, 0x74, 0x61, 0x75, 0xba, //0x0000c018 .quad -5010991858575374113 + 0x5d, 0xb8, 0xaa, 0x01, 0x56, 0xcd, 0x37, 0x7a, //0x0000c020 .quad 8806733365625141341 + 0x17, 0xeb, 0x8c, 0x47, 0xd1, 0xb9, 0x12, 0xe9, //0x0000c028 .quad -1652053804791829737 + 0x3a, 0xb3, 0x0a, 0xc1, 0x55, 0xe0, 0x62, 0xac, //0x0000c030 .quad -6025006692552756422 + 0xee, 0x12, 0xb8, 0xcc, 0x22, 0xb4, 0xab, 0x91, //0x0000c038 .quad -7950062655635975442 + 0x09, 0x60, 0x4d, 0x31, 0x6b, 0x98, 0x7b, 0x57, //0x0000c040 .quad 6303799689591218185 + 0xaa, 0x17, 0xe6, 0x7f, 0x2b, 0xa1, 0x16, 0xb6, //0x0000c048 .quad -5325892301117581398 + 0x0b, 0xb8, 0xa0, 0xfd, 0x85, 0x7e, 0x5a, 0xed, //0x0000c050 .quad -1343622424865753077 + 0x94, 0x9d, 0xdf, 0x5f, 0x76, 0x49, 0x9c, 0xe3, //0x0000c058 .quad -2045679357969588844 + 0x07, 0x73, 0x84, 0xbe, 0x13, 0x8f, 0x58, 0x14, //0x0000c060 .quad 1466078993672598279 + 0x7d, 0xc2, 0xeb, 0xfb, 0xe9, 0xad, 0x41, 0x8e, //0x0000c068 .quad -8196078626372074883 + 0xc8, 0x8f, 0x25, 0xae, 0xd8, 0xb2, 0x6e, 0x59, //0x0000c070 .quad 6444284760518135752 + 0x1c, 0xb3, 0xe6, 0x7a, 0x64, 0x19, 0xd2, 0xb1, //0x0000c078 .quad -5633412264537705700 + 0xbb, 0xf3, 0xae, 0xd9, 0x8e, 0x5f, 0xca, 0x6f, //0x0000c080 .quad 8055355950647669691 + 0xe3, 0x5f, 0xa0, 0x99, 0xbd, 0x9f, 0x46, 0xde, //0x0000c088 .quad -2430079312244744221 + 0x54, 0x58, 0x0d, 0x48, 0xb9, 0x7b, 0xde, 0x25, //0x0000c090 .quad 2728754459941099604 + 0xee, 0x3b, 0x04, 0x80, 0xd6, 0x23, 0xec, 0x8a, //0x0000c098 .quad -8436328597794046994 + 0x6a, 0xae, 0x10, 0x9a, 0xa7, 0x1a, 0x56, 0xaf, //0x0000c0a0 .quad -5812428961928401302 + 0xe9, 0x4a, 0x05, 0x20, 0xcc, 0x2c, 0xa7, 0xad, //0x0000c0a8 .quad -5933724728815170839 + 0x04, 0xda, 0x94, 0x80, 0x51, 0xa1, 0x2b, 0x1b, //0x0000c0b0 .quad 1957835834444274180 + 0xa4, 0x9d, 0x06, 0x28, 0xff, 0xf7, 0x10, 0xd9, //0x0000c0b8 .quad -2805469892591575644 + 0x42, 0x08, 0x5d, 0xf0, 0xd2, 0x44, 0xfb, 0x90, //0x0000c0c0 .quad -7999724640327104446 + 0x86, 0x22, 0x04, 0x79, 0xff, 0x9a, 0xaa, 0x87, //0x0000c0c8 .quad -8670947710510816634 + 0x53, 0x4a, 0x74, 0xac, 0x07, 0x16, 0x3a, 0x35, //0x0000c0d0 .quad 3835402254873283155 + 0x28, 0x2b, 0x45, 0x57, 0xbf, 0x41, 0x95, 0xa9, //0x0000c0d8 .quad -6226998619711132888 + 0xe8, 0x5c, 0x91, 0x97, 0x89, 0x9b, 0x88, 0x42, //0x0000c0e0 .quad 4794252818591603944 + 0xf2, 0x75, 0x16, 0x2d, 0x2f, 0x92, 0xfa, 0xd3, //0x0000c0e8 .quad -3172062256211528206 + 0x11, 0xda, 0xba, 0xfe, 0x35, 0x61, 0x95, 0x69, //0x0000c0f0 .quad 7608094030047140369 + 0xb7, 0x09, 0x2e, 0x7c, 0x5d, 0x9b, 0x7c, 0x84, //0x0000c0f8 .quad -8900067937773286985 + 0x95, 0x90, 0x69, 0x7e, 0x83, 0xb9, 0xfa, 0x43, //0x0000c100 .quad 4898431519131537557 + 0x25, 0x8c, 0x39, 0xdb, 0x34, 0xc2, 0x9b, 0xa5, //0x0000c108 .quad -6513398903789220827 + 0xbb, 0xf4, 0x03, 0x5e, 0xe4, 0x67, 0xf9, 0x94, //0x0000c110 .quad -7712018656367741765 + 0x2e, 0xef, 0x07, 0x12, 0xc2, 0xb2, 0x02, 0xcf, //0x0000c118 .quad -3530062611309138130 + 0xf5, 0x78, 0xc2, 0xba, 0xee, 0xe0, 0x1b, 0x1d, //0x0000c120 .quad 2097517367411243253 + 0x7d, 0xf5, 0x44, 0x4b, 0xb9, 0xaf, 0x61, 0x81, //0x0000c128 .quad -9123818159709293187 + 0x32, 0x17, 0x73, 0x69, 0x2a, 0xd9, 0x62, 0x64, //0x0000c130 .quad 7233582727691441970 + 0xdc, 0x32, 0x16, 0x9e, 0xa7, 0x1b, 0xba, 0xa1, //0x0000c138 .quad -6793086681209228580 + 0xfe, 0xdc, 0xcf, 0x03, 0x75, 0x8f, 0x7b, 0x7d, //0x0000c140 .quad 9041978409614302462 + 0x93, 0xbf, 0x9b, 0x85, 0x91, 0xa2, 0x28, 0xca, //0x0000c148 .quad -3879672333084147821 + 0x3e, 0xd4, 0xc3, 0x44, 0x52, 0x73, 0xda, 0x5c, //0x0000c150 .quad 6690786993590490174 + 0x78, 0xaf, 0x02, 0xe7, 0x35, 0xcb, 0xb2, 0xfc, //0x0000c158 .quad -237904397927796872 + 0xa7, 0x64, 0xfa, 0x6a, 0x13, 0x88, 0x08, 0x3a, //0x0000c160 .quad 4181741870994056359 + 0xab, 0xad, 0x61, 0xb0, 0x01, 0xbf, 0xef, 0x9d, //0x0000c168 .quad -7066219276345954901 + 0xd0, 0xfd, 0xb8, 0x45, 0x18, 0xaa, 0x8a, 0x08, //0x0000c170 .quad 615491320315182544 + 0x16, 0x19, 0x7a, 0x1c, 0xc2, 0xae, 0x6b, 0xc5, //0x0000c178 .quad -4221088077005055722 + 0x45, 0x3d, 0x27, 0x57, 0x9e, 0x54, 0xad, 0x8a, //0x0000c180 .quad -8454007886460797627 + 0x5b, 0x9f, 0x98, 0xa3, 0x72, 0x9a, 0xc6, 0xf6, //0x0000c188 .quad -664674077828931749 + 0x4b, 0x86, 0x78, 0xf6, 0xe2, 0x54, 0xac, 0x36, //0x0000c190 .quad 3939617107816777291 + 0x99, 0x63, 0x3f, 0xa6, 0x87, 0x20, 0x3c, 0x9a, //0x0000c198 .quad -7332950326284164199 + 0xdd, 0xa7, 0x16, 0xb4, 0x1b, 0x6a, 0x57, 0x84, //0x0000c1a0 .quad -8910536670511192099 + 0x7f, 0x3c, 0xcf, 0x8f, 0xa9, 0x28, 0xcb, 0xc0, //0x0000c1a8 .quad -4554501889427817345 + 0xd5, 0x51, 0x1c, 0xa1, 0xa2, 0x44, 0x6d, 0x65, //0x0000c1b0 .quad 7308573235570561493 + 0x9f, 0x0b, 0xc3, 0xf3, 0xd3, 0xf2, 0xfd, 0xf0, //0x0000c1b8 .quad -1081441343357383777 + 0x25, 0xb3, 0xb1, 0xa4, 0xe5, 0x4a, 0x64, 0x9f, //0x0000c1c0 .quad -6961356773836868827 + 0x43, 0xe7, 0x59, 0x78, 0xc4, 0xb7, 0x9e, 0x96, //0x0000c1c8 .quad -7593429867239446717 + 0xee, 0x1f, 0xde, 0x0d, 0x9f, 0x5d, 0x3d, 0x87, //0x0000c1d0 .quad -8701695967296086034 + 0x14, 0x61, 0x70, 0x96, 0xb5, 0x65, 0x46, 0xbc, //0x0000c1d8 .quad -4880101315621920492 + 0xea, 0xa7, 0x55, 0xd1, 0x06, 0xb5, 0x0c, 0xa9, //0x0000c1e0 .quad -6265433940692719638 + 0x59, 0x79, 0x0c, 0xfc, 0x22, 0xff, 0x57, 0xeb, //0x0000c1e8 .quad -1488440626100012711 + 0xf2, 0x88, 0xd5, 0x42, 0x24, 0xf1, 0xa7, 0x09, //0x0000c1f0 .quad 695789805494438130 + 0xd8, 0xcb, 0x87, 0xdd, 0x75, 0xff, 0x16, 0x93, //0x0000c1f8 .quad -7847804418953589800 + 0x2f, 0xeb, 0x8a, 0x53, 0x6d, 0xed, 0x11, 0x0c, //0x0000c200 .quad 869737256868047663 + 0xce, 0xbe, 0xe9, 0x54, 0x53, 0xbf, 0xdc, 0xb7, //0x0000c208 .quad -5198069505264599346 + 0xfa, 0xa5, 0x6d, 0xa8, 0xc8, 0x68, 0x16, 0x8f, //0x0000c210 .quad -8136200465769716230 + 0x81, 0x2e, 0x24, 0x2a, 0x28, 0xef, 0xd3, 0xe5, //0x0000c218 .quad -1885900863153361279 + 0xbc, 0x87, 0x44, 0x69, 0x7d, 0x01, 0x6e, 0xf9, //0x0000c220 .quad -473439272678684740 + 0x10, 0x9d, 0x56, 0x1a, 0x79, 0x75, 0xa4, 0x8f, //0x0000c228 .quad -8096217067111932656 + 0xac, 0xa9, 0x95, 0xc3, 0xdc, 0x81, 0xc9, 0x37, //0x0000c230 .quad 4019886927579031980 + 0x55, 0x44, 0xec, 0x60, 0xd7, 0x92, 0x8d, 0xb3, //0x0000c238 .quad -5508585315462527915 + 0x17, 0x14, 0x7b, 0xf4, 0x53, 0xe2, 0xbb, 0x85, //0x0000c240 .quad -8810199395808373737 + 0x6a, 0x55, 0x27, 0x39, 0x8d, 0xf7, 0x70, 0xe0, //0x0000c248 .quad -2274045625900771990 + 0x8e, 0xec, 0xcc, 0x78, 0x74, 0x6d, 0x95, 0x93, //0x0000c250 .quad -7812217631593927538 + 0x62, 0x95, 0xb8, 0x43, 0xb8, 0x9a, 0x46, 0x8c, //0x0000c258 .quad -8338807543829064350 + 0xb2, 0x27, 0x00, 0x97, 0xd1, 0xc8, 0x7a, 0x38, //0x0000c260 .quad 4069786015789754290 + 0xbb, 0xba, 0xa6, 0x54, 0x66, 0x41, 0x58, 0xaf, //0x0000c268 .quad -5811823411358942533 + 0x9e, 0x31, 0xc0, 0xfc, 0x05, 0x7b, 0x99, 0x06, //0x0000c270 .quad 475546501309804958 + 0x6a, 0x69, 0xd0, 0xe9, 0xbf, 0x51, 0x2e, 0xdb, //0x0000c278 .quad -2653093245771290262 + 0x03, 0x1f, 0xf8, 0xbd, 0xe3, 0xec, 0x1f, 0x44, //0x0000c280 .quad 4908902581746016003 + 0xe2, 0x41, 0x22, 0xf2, 0x17, 0xf3, 0xfc, 0x88, //0x0000c288 .quad -8575712306248138270 + 0xc3, 0x26, 0x76, 0xad, 0x1c, 0xe8, 0x27, 0xd5, //0x0000c290 .quad -3087243809672255805 + 0x5a, 0xd2, 0xaa, 0xee, 0xdd, 0x2f, 0x3c, 0xab, //0x0000c298 .quad -6107954364382784934 + 0x74, 0xb0, 0xd3, 0xd8, 0x23, 0xe2, 0x71, 0x8a, //0x0000c2a0 .quad -8470740780517707660 + 0xf1, 0x86, 0x55, 0x6a, 0xd5, 0x3b, 0x0b, 0xd6, //0x0000c2a8 .quad -3023256937051093263 + 0x49, 0x4e, 0x84, 0x67, 0x56, 0x2d, 0x87, 0xf6, //0x0000c2b0 .quad -682526969396179383 + 0x56, 0x74, 0x75, 0x62, 0x65, 0x05, 0xc7, 0x85, //0x0000c2b8 .quad -8807064613298015146 + 0xdb, 0x61, 0x65, 0x01, 0xac, 0xf8, 0x28, 0xb4, //0x0000c2c0 .quad -5464844730172612133 + 0x6c, 0xd1, 0x12, 0xbb, 0xbe, 0xc6, 0x38, 0xa7, //0x0000c2c8 .quad -6397144748195131028 + 0x52, 0xba, 0xbe, 0x01, 0xd7, 0x36, 0x33, 0xe1, //0x0000c2d0 .quad -2219369894288377262 + 0xc7, 0x85, 0xd7, 0x69, 0x6e, 0xf8, 0x06, 0xd1, //0x0000c2d8 .quad -3384744916816525881 + 0x73, 0x34, 0x17, 0x61, 0x46, 0x02, 0xc0, 0xec, //0x0000c2e0 .quad -1387106183930235789 + 0x9c, 0xb3, 0x26, 0x02, 0x45, 0x5b, 0xa4, 0x82, //0x0000c2e8 .quad -9032994600651410532 + 0x90, 0x01, 0x5d, 0xf9, 0xd7, 0x02, 0xf0, 0x27, //0x0000c2f0 .quad 2877803288514593168 + 0x84, 0x60, 0xb0, 0x42, 0x16, 0x72, 0x4d, 0xa3, //0x0000c2f8 .quad -6679557232386875260 + 0xf4, 0x41, 0xb4, 0xf7, 0x8d, 0x03, 0xec, 0x31, //0x0000c300 .quad 3597254110643241460 + 0xa5, 0x78, 0x5c, 0xd3, 0x9b, 0xce, 0x20, 0xcc, //0x0000c308 .quad -3737760522056206171 + 0x71, 0x52, 0xa1, 0x75, 0x71, 0x04, 0x67, 0x7e, //0x0000c310 .quad 9108253656731439729 + 0xce, 0x96, 0x33, 0xc8, 0x42, 0x02, 0x29, 0xff, //0x0000c318 .quad -60514634142869810 + 0x86, 0xd3, 0x84, 0xe9, 0xc6, 0x62, 0x00, 0x0f, //0x0000c320 .quad 1080972517029761926 + 0x41, 0x3e, 0x20, 0xbd, 0x69, 0xa1, 0x79, 0x9f, //0x0000c328 .quad -6955350673980375487 + 0x68, 0x08, 0xe6, 0xa3, 0x78, 0x7b, 0xc0, 0x52, //0x0000c330 .quad 5962901664714590312 + 0xd1, 0x4d, 0x68, 0x2c, 0xc4, 0x09, 0x58, 0xc7, //0x0000c338 .quad -4082502324048081455 + 0x82, 0x8a, 0xdf, 0xcc, 0x56, 0x9a, 0x70, 0xa7, //0x0000c340 .quad -6381430974388925822 + 0x45, 0x61, 0x82, 0x37, 0x35, 0x0c, 0x2e, 0xf9, //0x0000c348 .quad -491441886632713915 + 0x91, 0xb6, 0x0b, 0x40, 0x76, 0x60, 0xa6, 0x88, //0x0000c350 .quad -8600080377420466543 + 0xcb, 0x7c, 0xb1, 0x42, 0xa1, 0xc7, 0xbc, 0x9b, //0x0000c358 .quad -7224680206786528053 + 0x35, 0xa4, 0x0e, 0xd0, 0x93, 0xf8, 0xcf, 0x6a, //0x0000c360 .quad 7696643601933968437 + 0xfe, 0xdb, 0x5d, 0x93, 0x89, 0xf9, 0xab, 0xc2, //0x0000c368 .quad -4419164240055772162 + 0x43, 0x4d, 0x12, 0xc4, 0xb8, 0xf6, 0x83, 0x05, //0x0000c370 .quad 397432465562684739 + 0xfe, 0x52, 0x35, 0xf8, 0xeb, 0xf7, 0x56, 0xf3, //0x0000c378 .quad -912269281642327298 + 0x4a, 0x70, 0x8b, 0x7a, 0x33, 0x7a, 0x72, 0xc3, //0x0000c380 .quad -4363290727450709942 + 0xde, 0x53, 0x21, 0x7b, 0xf3, 0x5a, 0x16, 0x98, //0x0000c388 .quad -7487697328667536418 + 0x5c, 0x4c, 0x2e, 0x59, 0xc0, 0x18, 0x4f, 0x74, //0x0000c390 .quad 8380944645968776284 + 0xd6, 0xa8, 0xe9, 0x59, 0xb0, 0xf1, 0x1b, 0xbe, //0x0000c398 .quad -4747935642407032618 + 0x73, 0xdf, 0x79, 0x6f, 0xf0, 0xde, 0x62, 0x11, //0x0000c3a0 .quad 1252808770606194547 + 0x0c, 0x13, 0x64, 0x70, 0x1c, 0xee, 0xa2, 0xed, //0x0000c3a8 .quad -1323233534581402868 + 0xa8, 0x2b, 0xac, 0x45, 0x56, 0xcb, 0xdd, 0x8a, //0x0000c3b0 .quad -8440366555225904216 + 0xe7, 0x8b, 0x3e, 0xc6, 0xd1, 0xd4, 0x85, 0x94, //0x0000c3b8 .quad -7744549986754458649 + 0x92, 0x36, 0x17, 0xd7, 0x2b, 0x3e, 0x95, 0x6d, //0x0000c3c0 .quad 7896285879677171346 + 0xe1, 0x2e, 0xce, 0x37, 0x06, 0x4a, 0xa7, 0xb9, //0x0000c3c8 .quad -5069001465015685407 + 0x37, 0x04, 0xdd, 0xcc, 0xb6, 0x8d, 0xfa, 0xc8, //0x0000c3d0 .quad -3964700705685699529 + 0x99, 0xba, 0xc1, 0xc5, 0x87, 0x1c, 0x11, 0xe8, //0x0000c3d8 .quad -1724565812842218855 + 0xa2, 0x22, 0x0a, 0x40, 0x92, 0x98, 0x9c, 0x1d, //0x0000c3e0 .quad 2133748077373825698 + 0xa0, 0x14, 0x99, 0xdb, 0xd4, 0xb1, 0x0a, 0x91, //0x0000c3e8 .quad -7995382660667468640 + 0x4b, 0xab, 0x0c, 0xd0, 0xb6, 0xbe, 0x03, 0x25, //0x0000c3f0 .quad 2667185096717282123 + 0xc8, 0x59, 0x7f, 0x12, 0x4a, 0x5e, 0x4d, 0xb5, //0x0000c3f8 .quad -5382542307406947896 + 0x1d, 0xd6, 0x0f, 0x84, 0x64, 0xae, 0x44, 0x2e, //0x0000c400 .quad 3333981370896602653 + 0x3a, 0x30, 0x1f, 0x97, 0xdc, 0xb5, 0xa0, 0xe2, //0x0000c408 .quad -2116491865831296966 + 0xd2, 0xe5, 0x89, 0xd2, 0xfe, 0xec, 0xea, 0x5c, //0x0000c410 .quad 6695424375237764562 + 0x24, 0x7e, 0x73, 0xde, 0xa9, 0x71, 0xa4, 0x8d, //0x0000c418 .quad -8240336443785642460 + 0x47, 0x5f, 0x2c, 0x87, 0x3e, 0xa8, 0x25, 0x74, //0x0000c420 .quad 8369280469047205703 + 0xad, 0x5d, 0x10, 0x56, 0x14, 0x8e, 0x0d, 0xb1, //0x0000c428 .quad -5688734536304665171 + 0x19, 0x77, 0xf7, 0x28, 0x4e, 0x12, 0x2f, 0xd1, //0x0000c430 .quad -3373457468973156583 + 0x18, 0x75, 0x94, 0x6b, 0x99, 0xf1, 0x50, 0xdd, //0x0000c438 .quad -2499232151953443560 + 0x6f, 0xaa, 0x9a, 0xd9, 0x70, 0x6b, 0xbd, 0x82, //0x0000c440 .quad -9025939945749304721 + 0x2f, 0xc9, 0x3c, 0xe3, 0xff, 0x96, 0x52, 0x8a, //0x0000c448 .quad -8479549122611984081 + 0x0b, 0x55, 0x01, 0x10, 0x4d, 0xc6, 0x6c, 0x63, //0x0000c450 .quad 7164319141522920715 + 0x7b, 0xfb, 0x0b, 0xdc, 0xbf, 0x3c, 0xe7, 0xac, //0x0000c458 .quad -5987750384837592197 + 0x4e, 0xaa, 0x01, 0x54, 0xe0, 0xf7, 0x47, 0x3c, //0x0000c460 .quad 4343712908476262990 + 0x5a, 0xfa, 0x0e, 0xd3, 0xef, 0x0b, 0x21, 0xd8, //0x0000c468 .quad -2873001962619602342 + 0x71, 0x0a, 0x81, 0x34, 0xec, 0xfa, 0xac, 0x65, //0x0000c470 .quad 7326506586225052273 + 0x78, 0x5c, 0xe9, 0xe3, 0x75, 0xa7, 0x14, 0x87, //0x0000c478 .quad -8713155254278333320 + 0x0d, 0x4d, 0xa1, 0x41, 0xa7, 0x39, 0x18, 0x7f, //0x0000c480 .quad 9158133232781315341 + 0x96, 0xb3, 0xe3, 0x5c, 0x53, 0xd1, 0xd9, 0xa8, //0x0000c488 .quad -6279758049420528746 + 0x50, 0xa0, 0x09, 0x12, 0x11, 0x48, 0xde, 0x1e, //0x0000c490 .quad 2224294504121868368 + 0x7c, 0xa0, 0x1c, 0x34, 0xa8, 0x45, 0x10, 0xd3, //0x0000c498 .quad -3238011543348273028 + 0x32, 0x04, 0x46, 0xab, 0x0a, 0xed, 0x4a, 0x93, //0x0000c4a0 .quad -7833187971778608078 + 0x4d, 0xe4, 0x91, 0x20, 0x89, 0x2b, 0xea, 0x83, //0x0000c4a8 .quad -8941286242233752499 + 0x3f, 0x85, 0x17, 0x56, 0x4d, 0xa8, 0x1d, 0xf8, //0x0000c4b0 .quad -568112927868484289 + 0x60, 0x5d, 0xb6, 0x68, 0x6b, 0xb6, 0xe4, 0xa4, //0x0000c4b8 .quad -6564921784364802720 + 0x8e, 0x66, 0x9d, 0xab, 0x60, 0x12, 0x25, 0x36, //0x0000c4c0 .quad 3901544858591782542 + 0xb9, 0xf4, 0xe3, 0x42, 0x06, 0xe4, 0x1d, 0xce, //0x0000c4c8 .quad -3594466212028615495 + 0x19, 0x60, 0x42, 0x6b, 0x7c, 0x2b, 0xd7, 0xc1, //0x0000c4d0 .quad -4479063491021217767 + 0xf3, 0x78, 0xce, 0xe9, 0x83, 0xae, 0xd2, 0x80, //0x0000c4d8 .quad -9164070410158966541 + 0x1f, 0xf8, 0x12, 0x86, 0x5b, 0xf6, 0x4c, 0xb2, //0x0000c4e0 .quad -5598829363776522209 + 0x30, 0x17, 0x42, 0xe4, 0x24, 0x5a, 0x07, 0xa1, //0x0000c4e8 .quad -6843401994271320272 + 0x27, 0xb6, 0x97, 0x67, 0xf2, 0x33, 0xe0, 0xde, //0x0000c4f0 .quad -2386850686293264857 + 0xfc, 0x9c, 0x52, 0x1d, 0xae, 0x30, 0x49, 0xc9, //0x0000c4f8 .quad -3942566474411762436 + 0xb1, 0xa3, 0x7d, 0x01, 0xef, 0x40, 0x98, 0x16, //0x0000c500 .quad 1628122660560806833 + 0x3c, 0x44, 0xa7, 0xa4, 0xd9, 0x7c, 0x9b, 0xfb, //0x0000c508 .quad -316522074587315140 + 0x4e, 0x86, 0xee, 0x60, 0x95, 0x28, 0x1f, 0x8e, //0x0000c510 .quad -8205795374004271538 + 0xa5, 0x8a, 0xe8, 0x06, 0x08, 0x2e, 0x41, 0x9d, //0x0000c518 .quad -7115355324258153819 + 0xe2, 0x27, 0x2a, 0xb9, 0xba, 0xf2, 0xa6, 0xf1, //0x0000c520 .quad -1033872180650563614 + 0x4e, 0xad, 0xa2, 0x08, 0x8a, 0x79, 0x91, 0xc4, //0x0000c528 .quad -4282508136895304370 + 0xdb, 0xb1, 0x74, 0x67, 0x69, 0xaf, 0x10, 0xae, //0x0000c530 .quad -5904026244240592421 + 0xa2, 0x58, 0xcb, 0x8a, 0xec, 0xd7, 0xb5, 0xf5, //0x0000c538 .quad -741449152691742558 + 0x29, 0xef, 0xa8, 0xe0, 0xa1, 0x6d, 0xca, 0xac, //0x0000c540 .quad -5995859411864064215 + 0x65, 0x17, 0xbf, 0xd6, 0xf3, 0xa6, 0x91, 0x99, //0x0000c548 .quad -7380934748073420955 + 0xf3, 0x2a, 0xd3, 0x58, 0x0a, 0x09, 0xfd, 0x17, //0x0000c550 .quad 1728547772024695539 + 0x3f, 0xdd, 0x6e, 0xcc, 0xb0, 0x10, 0xf6, 0xbf, //0x0000c558 .quad -4614482416664388289 + 0xb0, 0xf5, 0x07, 0xef, 0x4c, 0x4b, 0xfc, 0xdd, //0x0000c560 .quad -2451001303396518480 + 0x8e, 0x94, 0x8a, 0xff, 0xdc, 0x94, 0xf3, 0xef, //0x0000c568 .quad -1156417002403097458 + 0x8e, 0xf9, 0x64, 0x15, 0x10, 0xaf, 0xbd, 0x4a, //0x0000c570 .quad 5385653213018257806 + 0xd9, 0x9c, 0xb6, 0x1f, 0x0a, 0x3d, 0xf8, 0x95, //0x0000c578 .quad -7640289654143017767 + 0xf1, 0x37, 0xbe, 0x1a, 0xd4, 0x1a, 0x6d, 0x9d, //0x0000c580 .quad -7102991539009341455 + 0x0f, 0x44, 0xa4, 0xa7, 0x4c, 0x4c, 0x76, 0xbb, //0x0000c588 .quad -4938676049251384305 + 0xed, 0xc5, 0x6d, 0x21, 0x89, 0x61, 0xc8, 0x84, //0x0000c590 .quad -8878739423761676819 + 0x13, 0x55, 0x8d, 0xd1, 0x5f, 0xdf, 0x53, 0xea, //0x0000c598 .quad -1561659043136842477 + 0xb4, 0x9b, 0xe4, 0xb4, 0xf5, 0x3c, 0xfd, 0x32, //0x0000c5a0 .quad 3674159897003727796 + 0x2c, 0x55, 0xf8, 0xe2, 0x9b, 0x6b, 0x74, 0x92, //0x0000c5a8 .quad -7893565929601608404 + 0xa1, 0xc2, 0x1d, 0x22, 0x33, 0x8c, 0xbc, 0x3f, //0x0000c5b0 .quad 4592699871254659745 + 0x77, 0x6a, 0xb6, 0xdb, 0x82, 0x86, 0x11, 0xb7, //0x0000c5b8 .quad -5255271393574622601 + 0x4a, 0x33, 0xa5, 0xea, 0x3f, 0xaf, 0xab, 0x0f, //0x0000c5c0 .quad 1129188820640936778 + 0x15, 0x05, 0xa4, 0x92, 0x23, 0xe8, 0xd5, 0xe4, //0x0000c5c8 .quad -1957403223540890347 + 0x0e, 0x40, 0xa7, 0xf2, 0x87, 0x4d, 0xcb, 0x29, //0x0000c5d0 .quad 3011586022114279438 + 0x2d, 0x83, 0xa6, 0x3b, 0x16, 0xb1, 0x05, 0x8f, //0x0000c5d8 .quad -8140906042354138323 + 0x12, 0x10, 0x51, 0xef, 0xe9, 0x20, 0x3e, 0x74, //0x0000c5e0 .quad 8376168546070237202 + 0xf8, 0x23, 0x90, 0xca, 0x5b, 0x1d, 0xc7, 0xb2, //0x0000c5e8 .quad -5564446534515285000 + 0x16, 0x54, 0x25, 0x6b, 0x24, 0xa9, 0x4d, 0x91, //0x0000c5f0 .quad -7976533391121755114 + 0xf6, 0x2c, 0x34, 0xbd, 0xb2, 0xe4, 0x78, 0xdf, //0x0000c5f8 .quad -2343872149716718346 + 0x8e, 0x54, 0xf7, 0xc2, 0xb6, 0x89, 0xd0, 0x1a, //0x0000c600 .quad 1932195658189984910 + 0x1a, 0x9c, 0x40, 0xb6, 0xef, 0x8e, 0xab, 0x8b, //0x0000c608 .quad -8382449121214030822 + 0xb1, 0x29, 0xb5, 0x73, 0x24, 0xac, 0x84, 0xa1, //0x0000c610 .quad -6808127464117294671 + 0x20, 0xc3, 0xd0, 0xa3, 0xab, 0x72, 0x96, 0xae, //0x0000c618 .quad -5866375383090150624 + 0x1e, 0x74, 0xa2, 0x90, 0x2d, 0xd7, 0xe5, 0xc9, //0x0000c620 .quad -3898473311719230434 + 0xe8, 0xf3, 0xc4, 0x8c, 0x56, 0x0f, 0x3c, 0xda, //0x0000c628 .quad -2721283210435300376 + 0x92, 0x88, 0x65, 0x7a, 0x7c, 0xa6, 0x2f, 0x7e, //0x0000c630 .quad 9092669226243950738 + 0x71, 0x18, 0xfb, 0x17, 0x96, 0x89, 0x65, 0x88, //0x0000c638 .quad -8618331034163144591 + 0xb7, 0xea, 0xfe, 0x98, 0x1b, 0x90, 0xbb, 0xdd, //0x0000c640 .quad -2469221522477225289 + 0x8d, 0xde, 0xf9, 0x9d, 0xfb, 0xeb, 0x7e, 0xaa, //0x0000c648 .quad -6161227774276542835 + 0x65, 0xa5, 0x3e, 0x7f, 0x22, 0x74, 0x2a, 0x55, //0x0000c650 .quad 6136845133758244197 + 0x31, 0x56, 0x78, 0x85, 0xfa, 0xa6, 0x1e, 0xd5, //0x0000c658 .quad -3089848699418290639 + 0x5f, 0x27, 0x87, 0x8f, 0x95, 0x88, 0x3a, 0xd5, //0x0000c660 .quad -3082000819042179233 + 0xde, 0x35, 0x6b, 0x93, 0x5c, 0x28, 0x33, 0x85, //0x0000c668 .quad -8848684464777513506 + 0x37, 0xf1, 0x68, 0xf3, 0xba, 0x2a, 0x89, 0x8a, //0x0000c670 .quad -8464187042230111945 + 0x56, 0x03, 0x46, 0xb8, 0x73, 0xf2, 0x7f, 0xa6, //0x0000c678 .quad -6449169562544503978 + 0x85, 0x2d, 0x43, 0xb0, 0x69, 0x75, 0x2b, 0x2d, //0x0000c680 .quad 3254824252494523781 + 0x2c, 0x84, 0x57, 0xa6, 0x10, 0xef, 0x1f, 0xd0, //0x0000c688 .quad -3449775934753242068 + 0x73, 0xfc, 0x29, 0x0e, 0x62, 0x29, 0x3b, 0x9c, //0x0000c690 .quad -7189106879045698445 + 0x9b, 0xb2, 0xf6, 0x67, 0x6a, 0xf5, 0x13, 0x82, //0x0000c698 .quad -9073638986861858149 + 0x8f, 0x7b, 0xb4, 0x91, 0xba, 0xf3, 0x49, 0x83, //0x0000c6a0 .quad -8986383598807123057 + 0x42, 0x5f, 0xf4, 0x01, 0xc5, 0xf2, 0x98, 0xa2, //0x0000c6a8 .quad -6730362715149934782 + 0x73, 0x9a, 0x21, 0x36, 0xa9, 0x70, 0x1c, 0x24, //0x0000c6b0 .quad 2602078556773259891 + 0x13, 0x77, 0x71, 0x42, 0x76, 0x2f, 0x3f, 0xcb, //0x0000c6b8 .quad -3801267375510030573 + 0x10, 0x01, 0xaa, 0x83, 0xd3, 0x8c, 0x23, 0xed, //0x0000c6c0 .quad -1359087822460813040 + 0xd7, 0xd4, 0x0d, 0xd3, 0x53, 0xfb, 0x0e, 0xfe, //0x0000c6c8 .quad -139898200960150313 + 0xaa, 0x40, 0x4a, 0x32, 0x04, 0x38, 0x36, 0xf4, //0x0000c6d0 .quad -849429889038008150 + 0x06, 0xa5, 0xe8, 0x63, 0x14, 0x5d, 0xc9, 0x9e, //0x0000c6d8 .quad -7004965403241175802 + 0xd5, 0xd0, 0xdc, 0x3e, 0x05, 0xc6, 0x43, 0xb1, //0x0000c6e0 .quad -5673473379724898091 + 0x48, 0xce, 0xe2, 0x7c, 0x59, 0xb4, 0x7b, 0xc6, //0x0000c6e8 .quad -4144520735624081848 + 0x0a, 0x05, 0x94, 0x8e, 0x86, 0xb7, 0x94, 0xdd, //0x0000c6f0 .quad -2480155706228734710 + 0xda, 0x81, 0x1b, 0xdc, 0x6f, 0xa1, 0x1a, 0xf8, //0x0000c6f8 .quad -568964901102714406 + 0x26, 0x83, 0x1c, 0x19, 0xb4, 0xf2, 0x7c, 0xca, //0x0000c700 .quad -3855940325606653146 + 0x28, 0x31, 0x91, 0xe9, 0xe5, 0xa4, 0x10, 0x9b, //0x0000c708 .quad -7273132090830278360 + 0xf0, 0xa3, 0x63, 0x1f, 0x61, 0x2f, 0x1c, 0xfd, //0x0000c710 .quad -208239388580928528 + 0x72, 0x7d, 0xf5, 0x63, 0x1f, 0xce, 0xd4, 0xc1, //0x0000c718 .quad -4479729095110460046 + 0xec, 0x8c, 0x3c, 0x67, 0x39, 0x3b, 0x63, 0xbc, //0x0000c720 .quad -4871985254153548564 + 0xcf, 0xdc, 0xf2, 0x3c, 0xa7, 0x01, 0x4a, 0xf2, //0x0000c728 .quad -987975350460687153 + 0x13, 0xd8, 0x85, 0xe0, 0x03, 0x05, 0xbe, 0xd5, //0x0000c730 .quad -3044990783845967853 + 0x01, 0xca, 0x17, 0x86, 0x08, 0x41, 0x6e, 0x97, //0x0000c738 .quad -7535013621679011327 + 0x18, 0x4e, 0xa7, 0xd8, 0x44, 0x86, 0x2d, 0x4b, //0x0000c740 .quad 5417133557047315992 + 0x82, 0xbc, 0x9d, 0xa7, 0x4a, 0xd1, 0x49, 0xbd, //0x0000c748 .quad -4807081008671376254 + 0x9e, 0x21, 0xd1, 0x0e, 0xd6, 0xe7, 0xf8, 0xdd, //0x0000c750 .quad -2451955090545630818 + 0xa2, 0x2b, 0x85, 0x51, 0x9d, 0x45, 0x9c, 0xec, //0x0000c758 .quad -1397165242411832414 + 0x03, 0xb5, 0x42, 0xc9, 0xe5, 0x90, 0xbb, 0xca, //0x0000c760 .quad -3838314940804713213 + 0x45, 0x3b, 0xf3, 0x52, 0x82, 0xab, 0xe1, 0x93, //0x0000c768 .quad -7790757304148477115 + 0x43, 0x62, 0x93, 0x3b, 0x1f, 0x75, 0x6a, 0x3d, //0x0000c770 .quad 4425478360848884291 + 0x17, 0x0a, 0xb0, 0xe7, 0x62, 0x16, 0xda, 0xb8, //0x0000c778 .quad -5126760611758208489 + 0xd4, 0x3a, 0x78, 0x0a, 0x67, 0x12, 0xc5, 0x0c, //0x0000c780 .quad 920161932633717460 + 0x9d, 0x0c, 0x9c, 0xa1, 0xfb, 0x9b, 0x10, 0xe7, //0x0000c788 .quad -1796764746270372707 + 0xc5, 0x24, 0x8b, 0x66, 0x80, 0x2b, 0xfb, 0x27, //0x0000c790 .quad 2880944217109767365 + 0xe2, 0x87, 0x01, 0x45, 0x7d, 0x61, 0x6a, 0x90, //0x0000c798 .quad -8040506994060064798 + 0xf6, 0xed, 0x2d, 0x80, 0x60, 0xf6, 0xf9, 0xb1, //0x0000c7a0 .quad -5622191765467566602 + 0xda, 0xe9, 0x41, 0x96, 0xdc, 0xf9, 0x84, 0xb4, //0x0000c7a8 .quad -5438947724147693094 + 0x73, 0x69, 0x39, 0xa0, 0xf8, 0x73, 0x78, 0x5e, //0x0000c7b0 .quad 6807318348447705459 + 0x51, 0x64, 0xd2, 0xbb, 0x53, 0x38, 0xa6, 0xe1, //0x0000c7b8 .quad -2186998636757228463 + 0xe8, 0xe1, 0x23, 0x64, 0x7b, 0x48, 0x0b, 0xdb, //0x0000c7c0 .quad -2662955059861265944 + 0xb2, 0x7e, 0x63, 0x55, 0x34, 0xe3, 0x07, 0x8d, //0x0000c7c8 .quad -8284403175614349646 + 0x62, 0xda, 0x2c, 0x3d, 0x9a, 0x1a, 0xce, 0x91, //0x0000c7d0 .quad -7940379843253970334 + 0x5f, 0x5e, 0xbc, 0x6a, 0x01, 0xdc, 0x49, 0xb0, //0x0000c7d8 .quad -5743817951090549153 + 0xfb, 0x10, 0x78, 0xcc, 0x40, 0xa1, 0x41, 0x76, //0x0000c7e0 .quad 8521269269642088699 + 0xf7, 0x75, 0x6b, 0xc5, 0x01, 0x53, 0x5c, 0xdc, //0x0000c7e8 .quad -2568086420435798537 + 0x9d, 0x0a, 0xcb, 0x7f, 0xc8, 0x04, 0xe9, 0xa9, //0x0000c7f0 .quad -6203421752542164323 + 0xba, 0x29, 0x63, 0x1b, 0xe1, 0xb3, 0xb9, 0x89, //0x0000c7f8 .quad -8522583040413455942 + 0x44, 0xcd, 0xbd, 0x9f, 0xfa, 0x45, 0x63, 0x54, //0x0000c800 .quad 6080780864604458308 + 0x29, 0xf4, 0x3b, 0x62, 0xd9, 0x20, 0x28, 0xac, //0x0000c808 .quad -6041542782089432023 + 0x95, 0x40, 0xad, 0x47, 0x79, 0x17, 0x7c, 0xa9, //0x0000c810 .quad -6234081974526590827 + 0x33, 0xf1, 0xca, 0xba, 0x0f, 0x29, 0x32, 0xd7, //0x0000c818 .quad -2940242459184402125 + 0x5d, 0x48, 0xcc, 0xcc, 0xab, 0x8e, 0xed, 0x49, //0x0000c820 .quad 5327070802775656541 + 0xc0, 0xd6, 0xbe, 0xd4, 0xa9, 0x59, 0x7f, 0x86, //0x0000c828 .quad -8755180564631333184 + 0x74, 0x5a, 0xff, 0xbf, 0x56, 0xf2, 0x68, 0x5c, //0x0000c830 .quad 6658838503469570676 + 0x70, 0x8c, 0xee, 0x49, 0x14, 0x30, 0x1f, 0xa8, //0x0000c838 .quad -6332289687361778576 + 0x11, 0x31, 0xff, 0x6f, 0xec, 0x2e, 0x83, 0x73, //0x0000c840 .quad 8323548129336963345 + 0x8c, 0x2f, 0x6a, 0x5c, 0x19, 0xfc, 0x26, 0xd2, //0x0000c848 .quad -3303676090774835316 + 0xab, 0x7e, 0xff, 0xc5, 0x53, 0xfd, 0x31, 0xc8, //0x0000c850 .quad -4021154456019173717 + 0xb7, 0x5d, 0xc2, 0xd9, 0x8f, 0x5d, 0x58, 0x83, //0x0000c858 .quad -8982326584375353929 + 0x55, 0x5e, 0x7f, 0xb7, 0xa8, 0x7c, 0x3e, 0xba, //0x0000c860 .quad -5026443070023967147 + 0x25, 0xf5, 0x32, 0xd0, 0xf3, 0x74, 0x2e, 0xa4, //0x0000c868 .quad -6616222212041804507 + 0xeb, 0x35, 0x5f, 0xe5, 0xd2, 0x1b, 0xce, 0x28, //0x0000c870 .quad 2940318199324816875 + 0x6f, 0xb2, 0x3f, 0xc4, 0x30, 0x12, 0x3a, 0xcd, //0x0000c878 .quad -3658591746624867729 + 0xb3, 0x81, 0x5b, 0xcf, 0x63, 0xd1, 0x80, 0x79, //0x0000c880 .quad 8755227902219092403 + 0x85, 0xcf, 0xa7, 0x7a, 0x5e, 0x4b, 0x44, 0x80, //0x0000c888 .quad -9204148869281624187 + 0x1f, 0x62, 0x32, 0xc3, 0xbc, 0x05, 0xe1, 0xd7, //0x0000c890 .quad -2891023177508298209 + 0x66, 0xc3, 0x51, 0x19, 0x36, 0x5e, 0x55, 0xa0, //0x0000c898 .quad -6893500068174642330 + 0xa7, 0xfa, 0xfe, 0xf3, 0x2b, 0x47, 0xd9, 0x8d, //0x0000c8a0 .quad -8225464990312760665 + 0x40, 0x34, 0xa6, 0x9f, 0xc3, 0xb5, 0x6a, 0xc8, //0x0000c8a8 .quad -4005189066790915008 + 0x51, 0xb9, 0xfe, 0xf0, 0xf6, 0x98, 0x4f, 0xb1, //0x0000c8b0 .quad -5670145219463562927 + 0x50, 0xc1, 0x8f, 0x87, 0x34, 0x63, 0x85, 0xfa, //0x0000c8b8 .quad -394800315061255856 + 0xd3, 0x33, 0x9f, 0x56, 0x9a, 0xbf, 0xd1, 0x6e, //0x0000c8c0 .quad 7985374283903742931 + 0xd2, 0xd8, 0xb9, 0xd4, 0x00, 0x5e, 0x93, 0x9c, //0x0000c8c8 .quad -7164279224554366766 + 0xc8, 0x00, 0x47, 0xec, 0x80, 0x2f, 0x86, 0x0a, //0x0000c8d0 .quad 758345818024902856 + 0x07, 0x4f, 0xe8, 0x09, 0x81, 0x35, 0xb8, 0xc3, //0x0000c8d8 .quad -4343663012265570553 + 0xfa, 0xc0, 0x58, 0x27, 0x61, 0xbb, 0x27, 0xcd, //0x0000c8e0 .quad -3663753745896259334 + 0xc8, 0x62, 0x62, 0x4c, 0xe1, 0x42, 0xa6, 0xf4, //0x0000c8e8 .quad -817892746904575288 + 0x9c, 0x78, 0x97, 0xb8, 0x1c, 0xd5, 0x38, 0x80, //0x0000c8f0 .quad -9207375118826243940 + 0xbd, 0x7d, 0xbd, 0xcf, 0xcc, 0xe9, 0xe7, 0x98, //0x0000c8f8 .quad -7428711994456441411 + 0xc3, 0x56, 0xbd, 0xe6, 0x63, 0x0a, 0x47, 0xe0, //0x0000c900 .quad -2285846861678029117 + 0x2c, 0xdd, 0xac, 0x03, 0x40, 0xe4, 0x21, 0xbf, //0x0000c908 .quad -4674203974643163860 + 0x74, 0xac, 0x6c, 0xe0, 0xfc, 0xcc, 0x58, 0x18, //0x0000c910 .quad 1754377441329851508 + 0x78, 0x14, 0x98, 0x04, 0x50, 0x5d, 0xea, 0xee, //0x0000c918 .quad -1231068949876566920 + 0xc8, 0xeb, 0x43, 0x0c, 0x1e, 0x80, 0x37, 0x0f, //0x0000c920 .quad 1096485900831157192 + 0xcb, 0x0c, 0xdf, 0x02, 0x52, 0x7a, 0x52, 0x95, //0x0000c928 .quad -7686947121313936181 + 0xba, 0xe6, 0x54, 0x8f, 0x25, 0x60, 0x05, 0xd3, //0x0000c930 .quad -3241078642388441414 + 0xfd, 0xcf, 0x96, 0x83, 0xe6, 0x18, 0xa7, 0xba, //0x0000c938 .quad -4996997883215032323 + 0x69, 0x20, 0x2a, 0xf3, 0x2e, 0xb8, 0xc6, 0x47, //0x0000c940 .quad 5172023733869224041 + 0xfd, 0x83, 0x7c, 0x24, 0x20, 0xdf, 0x50, 0xe9, //0x0000c948 .quad -1634561335591402499 + 0x41, 0x54, 0xfa, 0x57, 0x1d, 0x33, 0xdc, 0x4c, //0x0000c950 .quad 5538357842881958977 + 0x7e, 0xd2, 0xcd, 0x16, 0x74, 0x8b, 0xd2, 0x91, //0x0000c958 .quad -7939129862385708418 + 0x52, 0xe9, 0xf8, 0xad, 0xe4, 0x3f, 0x13, 0xe0, //0x0000c960 .quad -2300424733252327086 + 0x1d, 0x47, 0x81, 0x1c, 0x51, 0x2e, 0x47, 0xb6, //0x0000c968 .quad -5312226309554747619 + 0xa6, 0x23, 0x77, 0xd9, 0xdd, 0x0f, 0x18, 0x58, //0x0000c970 .quad 6347841120289366950 + 0xe5, 0x98, 0xa1, 0x63, 0xe5, 0xf9, 0xd8, 0xe3, //0x0000c978 .quad -2028596868516046619 + 0x48, 0x76, 0xea, 0xa7, 0xea, 0x09, 0x0f, 0x57, //0x0000c980 .quad 6273243709394548296 + 0x8f, 0xff, 0x44, 0x5e, 0x2f, 0x9c, 0x67, 0x8e, //0x0000c988 .quad -8185402070463610993 + 0xda, 0x13, 0xe5, 0x51, 0x65, 0xcc, 0xd2, 0x2c, //0x0000c990 .quad 3229868618315797466 + 0x73, 0x3f, 0xd6, 0x35, 0x3b, 0x83, 0x01, 0xb2, //0x0000c998 .quad -5620066569652125837 + 0xd1, 0x58, 0x5e, 0xa6, 0x7e, 0x7f, 0x07, 0xf8, //0x0000c9a0 .quad -574350245532641071 + 0x4f, 0xcf, 0x4b, 0x03, 0x0a, 0xe4, 0x81, 0xde, //0x0000c9a8 .quad -2413397193637769393 + 0x82, 0xf7, 0xfa, 0x27, 0xaf, 0xaf, 0x04, 0xfb, //0x0000c9b0 .quad -358968903457900670 + 0x91, 0x61, 0x0f, 0x42, 0x86, 0x2e, 0x11, 0x8b, //0x0000c9b8 .quad -8425902273664687727 + 0x63, 0xb5, 0xf9, 0xf1, 0x9a, 0xdb, 0xc5, 0x79, //0x0000c9c0 .quad 8774660907532399971 + 0xf6, 0x39, 0x93, 0xd2, 0x27, 0x7a, 0xd5, 0xad, //0x0000c9c8 .quad -5920691823653471754 + 0xbc, 0x22, 0x78, 0xae, 0x81, 0x52, 0x37, 0x18, //0x0000c9d0 .quad 1744954097560724156 + 0x74, 0x08, 0x38, 0xc7, 0xb1, 0xd8, 0x4a, 0xd9, //0x0000c9d8 .quad -2789178761139451788 + 0xb5, 0x15, 0x0b, 0x0d, 0x91, 0x93, 0x22, 0x8f, //0x0000c9e0 .quad -8132775725879323211 + 0x48, 0x05, 0x83, 0x1c, 0x6f, 0xc7, 0xce, 0x87, //0x0000c9e8 .quad -8660765753353239224 + 0x22, 0xdb, 0x4d, 0x50, 0x75, 0x38, 0xeb, 0xb2, //0x0000c9f0 .quad -5554283638921766110 + 0x9a, 0xc6, 0xa3, 0xe3, 0x4a, 0x79, 0xc2, 0xa9, //0x0000c9f8 .quad -6214271173264161126 + 0xeb, 0x51, 0x61, 0xa4, 0x92, 0x06, 0xa6, 0x5f, //0x0000ca00 .quad 6892203506629956075 + 0x41, 0xb8, 0x8c, 0x9c, 0x9d, 0x17, 0x33, 0xd4, //0x0000ca08 .quad -3156152948152813503 + 0x33, 0xd3, 0xbc, 0xa6, 0x1b, 0xc4, 0xc7, 0xdb, //0x0000ca10 .quad -2609901835997359309 + 0x28, 0xf3, 0xd7, 0x81, 0xc2, 0xee, 0x9f, 0x84, //0x0000ca18 .quad -8890124620236590296 + 0x00, 0x08, 0x6c, 0x90, 0x22, 0xb5, 0xb9, 0x12, //0x0000ca20 .quad 1349308723430688768 + 0xf3, 0xef, 0x4d, 0x22, 0x73, 0xea, 0xc7, 0xa5, //0x0000ca28 .quad -6500969756868349965 + 0x00, 0x0a, 0x87, 0x34, 0x6b, 0x22, 0x68, 0xd7, //0x0000ca30 .quad -2925050114139026944 + 0xef, 0x6b, 0xe1, 0xea, 0x0f, 0xe5, 0x39, 0xcf, //0x0000ca38 .quad -3514526177658049553 + 0x40, 0x66, 0xd4, 0x00, 0x83, 0x15, 0xa1, 0xe6, //0x0000ca40 .quad -1828156321336891840 + 0x75, 0xe3, 0xcc, 0xf2, 0x29, 0x2f, 0x84, 0x81, //0x0000ca48 .quad -9114107888677362827 + 0xd0, 0x7f, 0x09, 0xc1, 0xe3, 0x5a, 0x49, 0x60, //0x0000ca50 .quad 6938176635183661008 + 0x53, 0x1c, 0x80, 0x6f, 0xf4, 0x3a, 0xe5, 0xa1, //0x0000ca58 .quad -6780948842419315629 + 0xc4, 0xdf, 0x4b, 0xb1, 0x9c, 0xb1, 0x5b, 0x38, //0x0000ca60 .quad 4061034775552188356 + 0x68, 0x23, 0x60, 0x8b, 0xb1, 0x89, 0x5e, 0xca, //0x0000ca68 .quad -3864500034596756632 + 0xb5, 0xd7, 0x9e, 0xdd, 0x03, 0x9e, 0x72, 0x46, //0x0000ca70 .quad 5076293469440235445 + 0x42, 0x2c, 0x38, 0xee, 0x1d, 0x2c, 0xf6, 0xfc, //0x0000ca78 .quad -218939024818557886 + 0xd1, 0x46, 0x83, 0x6a, 0xc2, 0xa2, 0x07, 0x6c, //0x0000ca80 .quad 7784369436827535057 + 0xa9, 0x1b, 0xe3, 0xb4, 0x92, 0xdb, 0x19, 0x9e, //0x0000ca88 .quad -7054365918152680535 + 0x85, 0x18, 0x24, 0x05, 0x73, 0x8b, 0x09, 0xc7, //0x0000ca90 .quad -4104596259247744891 + 0x93, 0xe2, 0x1b, 0x62, 0x77, 0x52, 0xa0, 0xc5, //0x0000ca98 .quad -4206271379263462765 + 0xa7, 0x1e, 0x6d, 0xc6, 0x4f, 0xee, 0xcb, 0xb8, //0x0000caa0 .quad -5130745324059681113 + 0x38, 0xdb, 0xa2, 0x3a, 0x15, 0x67, 0x08, 0xf7, //0x0000caa8 .quad -646153205651940552 + 0x28, 0x33, 0x04, 0xdc, 0xf1, 0x74, 0x7f, 0x73, //0x0000cab0 .quad 8322499218531169064 + 0x03, 0xc9, 0xa5, 0x44, 0x6d, 0x40, 0x65, 0x9a, //0x0000cab8 .quad -7321374781173544701 + 0xf2, 0x3f, 0x05, 0x53, 0x2e, 0x52, 0x5f, 0x50, //0x0000cac0 .quad 5791438004736573426 + 0x44, 0x3b, 0xcf, 0x95, 0x88, 0x90, 0xfe, 0xc0, //0x0000cac8 .quad -4540032458039542972 + 0xef, 0x8f, 0xc6, 0xe7, 0xb9, 0x26, 0x77, 0x64, //0x0000cad0 .quad 7239297505920716783 + 0x15, 0x0a, 0x43, 0xbb, 0xaa, 0x34, 0x3e, 0xf1, //0x0000cad8 .quad -1063354554122040811 + 0xf5, 0x19, 0xdc, 0x30, 0x34, 0x78, 0xca, 0x5e, //0x0000cae0 .quad 6830403950414141941 + 0x4d, 0xe6, 0x09, 0xb5, 0xea, 0xe0, 0xc6, 0x96, //0x0000cae8 .quad -7582125623967357363 + 0x72, 0x20, 0x13, 0x3d, 0x41, 0x16, 0x7d, 0xb6, //0x0000caf0 .quad -5297053117264486286 + 0xe0, 0x5f, 0x4c, 0x62, 0x25, 0x99, 0x78, 0xbc, //0x0000caf8 .quad -4865971011531808800 + 0x8f, 0xe8, 0x57, 0x8c, 0xd1, 0x5b, 0x1c, 0xe4, //0x0000cb00 .quad -2009630378153219953 + 0xd8, 0x77, 0xdf, 0xba, 0x6e, 0xbf, 0x96, 0xeb, //0x0000cb08 .quad -1470777745987373096 + 0x59, 0xf1, 0xb6, 0xf7, 0x62, 0xb9, 0x91, 0x8e, //0x0000cb10 .quad -8173548013986844327 + 0xe7, 0xaa, 0xcb, 0x34, 0xa5, 0x37, 0x3e, 0x93, //0x0000cb18 .quad -7836765118883190041 + 0xb0, 0xad, 0xa4, 0xb5, 0xbb, 0x27, 0x36, 0x72, //0x0000cb20 .quad 8229809056225996208 + 0xa1, 0x95, 0xfe, 0x81, 0x8e, 0xc5, 0x0d, 0xb8, //0x0000cb28 .quad -5184270380176599647 + 0x1c, 0xd9, 0x0d, 0xa3, 0xaa, 0xb1, 0xc3, 0xce, //0x0000cb30 .quad -3547796734999668452 + 0x09, 0x3b, 0x7e, 0x22, 0xf2, 0x36, 0x11, 0xe6, //0x0000cb38 .quad -1868651956793361655 + 0xb1, 0xa7, 0xe8, 0xa5, 0x0a, 0x4f, 0x3a, 0x21, //0x0000cb40 .quad 2394313059052595121 + 0xe6, 0xe4, 0x8e, 0x55, 0x57, 0xc2, 0xca, 0x8f, //0x0000cb48 .quad -8085436500636932890 + 0x9d, 0xd1, 0x62, 0x4f, 0xcd, 0xe2, 0x88, 0xa9, //0x0000cb50 .quad -6230480713039031907 + 0x1f, 0x9e, 0xf2, 0x2a, 0xed, 0x72, 0xbd, 0xb3, //0x0000cb58 .quad -5495109607368778209 + 0x05, 0x86, 0x3b, 0xa3, 0x80, 0x1b, 0xeb, 0x93, //0x0000cb60 .quad -7788100891298789883 + 0xa7, 0x45, 0xaf, 0x75, 0xa8, 0xcf, 0xac, 0xe0, //0x0000cb68 .quad -2257200990783584857 + 0xc3, 0x33, 0x05, 0x66, 0x30, 0xf1, 0x72, 0xbc, //0x0000cb70 .quad -4867563057061743677 + 0x88, 0x8b, 0x8d, 0x49, 0xc9, 0x01, 0x6c, 0x8c, //0x0000cb78 .quad -8328279646880822392 + 0xb4, 0x80, 0x86, 0x7f, 0x7c, 0xad, 0x8f, 0xeb, //0x0000cb80 .quad -1472767802899791692 + 0x6a, 0xee, 0xf0, 0x9b, 0x3b, 0x02, 0x87, 0xaf, //0x0000cb88 .quad -5798663540173640086 + 0xe1, 0x20, 0x68, 0x9f, 0xdb, 0x98, 0x73, 0xa6, //0x0000cb90 .quad -6452645772052127519 + 0x05, 0x2a, 0xed, 0x82, 0xca, 0xc2, 0x68, 0xdb, //0x0000cb98 .quad -2636643406789662203 + 0x8c, 0x14, 0xa1, 0x43, 0x89, 0x3f, 0x08, 0x88, //0x0000cba0 .quad -8644589625959967604 + 0x43, 0x3a, 0xd4, 0x91, 0xbe, 0x79, 0x21, 0x89, //0x0000cba8 .quad -8565431156884620733 + 0xb0, 0x59, 0x89, 0x94, 0x6b, 0x4f, 0x0a, 0x6a, //0x0000cbb0 .quad 7641007041259592112 + 0xd4, 0x48, 0x49, 0x36, 0x2e, 0xd8, 0x69, 0xab, //0x0000cbb8 .quad -6095102927678388012 + 0x1c, 0xb0, 0xab, 0x79, 0x46, 0xe3, 0x8c, 0x84, //0x0000cbc0 .quad -8895485272135061476 + 0x09, 0x9b, 0xdb, 0xc3, 0x39, 0x4e, 0x44, 0xd6, //0x0000cbc8 .quad -3007192641170597111 + 0x11, 0x4e, 0x0b, 0x0c, 0x0c, 0x0e, 0xd8, 0xf2, //0x0000cbd0 .quad -947992276657025519 + 0xe5, 0x40, 0x69, 0x1a, 0xe4, 0xb0, 0xea, 0x85, //0x0000cbd8 .quad -8797024428372705051 + 0x95, 0x21, 0x0e, 0x0f, 0x8f, 0x11, 0x8e, 0x6f, //0x0000cbe0 .quad 8038381691033493909 + 0x1f, 0x91, 0x03, 0x21, 0x1d, 0x5d, 0x65, 0xa7, //0x0000cbe8 .quad -6384594517038493409 + 0xfb, 0xa9, 0xd1, 0xd2, 0xf2, 0x95, 0x71, 0x4b, //0x0000cbf0 .quad 5436291095364479483 + 0x67, 0x75, 0x44, 0x69, 0x64, 0xb4, 0x3e, 0xd1, //0x0000cbf8 .quad -3369057127870728857 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000cc00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + //0x0000cc10 .p2align 4, 0x00 + //0x0000cc10 _POW_TAB + 0x01, 0x00, 0x00, 0x00, //0x0000cc10 .long 1 + 0x03, 0x00, 0x00, 0x00, //0x0000cc14 .long 3 + 0x06, 0x00, 0x00, 0x00, //0x0000cc18 .long 6 + 0x09, 0x00, 0x00, 0x00, //0x0000cc1c .long 9 + 0x0d, 0x00, 0x00, 0x00, //0x0000cc20 .long 13 + 0x10, 0x00, 0x00, 0x00, //0x0000cc24 .long 16 + 0x13, 0x00, 0x00, 0x00, //0x0000cc28 .long 19 + 0x17, 0x00, 0x00, 0x00, //0x0000cc2c .long 23 + 0x1a, 0x00, 0x00, 0x00, //0x0000cc30 .long 26 + //0x0000cc34 .p2align 2, 0x00 + //0x0000cc34 _MASK_USE_NUMBER + 0x02, 0x00, 0x00, 0x00, //0x0000cc34 .long 2 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000cc38 .p2align 4, 0x00 + //0x0000cc40 _Digits + 0x30, 0x30, 0x30, 0x31, 0x30, 0x32, 0x30, 0x33, 0x30, 0x34, 0x30, 0x35, 0x30, 0x36, 0x30, 0x37, //0x0000cc40 QUAD $0x3330323031303030; QUAD $0x3730363035303430 // .ascii 16, '0001020304050607' + 0x30, 0x38, 0x30, 0x39, 0x31, 0x30, 0x31, 0x31, 0x31, 0x32, 0x31, 0x33, 0x31, 0x34, 0x31, 0x35, //0x0000cc50 QUAD $0x3131303139303830; QUAD $0x3531343133313231 // .ascii 16, '0809101112131415' + 0x31, 0x36, 0x31, 0x37, 0x31, 0x38, 0x31, 0x39, 0x32, 0x30, 0x32, 0x31, 0x32, 0x32, 0x32, 0x33, //0x0000cc60 QUAD $0x3931383137313631; QUAD $0x3332323231323032 // .ascii 16, '1617181920212223' + 0x32, 0x34, 0x32, 0x35, 0x32, 0x36, 0x32, 0x37, 0x32, 0x38, 0x32, 0x39, 0x33, 0x30, 0x33, 0x31, //0x0000cc70 QUAD $0x3732363235323432; QUAD $0x3133303339323832 // .ascii 16, '2425262728293031' + 0x33, 0x32, 0x33, 0x33, 0x33, 0x34, 0x33, 0x35, 0x33, 0x36, 0x33, 0x37, 0x33, 0x38, 0x33, 0x39, //0x0000cc80 QUAD $0x3533343333333233; QUAD $0x3933383337333633 // .ascii 16, '3233343536373839' + 0x34, 0x30, 0x34, 0x31, 0x34, 0x32, 0x34, 0x33, 0x34, 0x34, 0x34, 0x35, 0x34, 0x36, 0x34, 0x37, //0x0000cc90 QUAD $0x3334323431343034; QUAD $0x3734363435343434 // .ascii 16, '4041424344454647' + 0x34, 0x38, 0x34, 0x39, 0x35, 0x30, 0x35, 0x31, 0x35, 0x32, 0x35, 0x33, 0x35, 0x34, 0x35, 0x35, //0x0000cca0 QUAD $0x3135303539343834; QUAD $0x3535343533353235 // .ascii 16, '4849505152535455' + 0x35, 0x36, 0x35, 0x37, 0x35, 0x38, 0x35, 0x39, 0x36, 0x30, 0x36, 0x31, 0x36, 0x32, 0x36, 0x33, //0x0000ccb0 QUAD $0x3935383537353635; QUAD $0x3336323631363036 // .ascii 16, '5657585960616263' + 0x36, 0x34, 0x36, 0x35, 0x36, 0x36, 0x36, 0x37, 0x36, 0x38, 0x36, 0x39, 0x37, 0x30, 0x37, 0x31, //0x0000ccc0 QUAD $0x3736363635363436; QUAD $0x3137303739363836 // .ascii 16, '6465666768697071' + 0x37, 0x32, 0x37, 0x33, 0x37, 0x34, 0x37, 0x35, 0x37, 0x36, 0x37, 0x37, 0x37, 0x38, 0x37, 0x39, //0x0000ccd0 QUAD $0x3537343733373237; QUAD $0x3937383737373637 // .ascii 16, '7273747576777879' + 0x38, 0x30, 0x38, 0x31, 0x38, 0x32, 0x38, 0x33, 0x38, 0x34, 0x38, 0x35, 0x38, 0x36, 0x38, 0x37, //0x0000cce0 QUAD $0x3338323831383038; QUAD $0x3738363835383438 // .ascii 16, '8081828384858687' + 0x38, 0x38, 0x38, 0x39, 0x39, 0x30, 0x39, 0x31, 0x39, 0x32, 0x39, 0x33, 0x39, 0x34, 0x39, 0x35, //0x0000ccf0 QUAD $0x3139303939383838; QUAD $0x3539343933393239 // .ascii 16, '8889909192939495' + 0x39, 0x36, 0x39, 0x37, 0x39, 0x38, 0x39, 0x39, //0x0000cd00 QUAD $0x3939383937393639 // .ascii 8, '96979899' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000cd08 .p2align 4, 0x00 + //0x0000cd10 _pow10_ceil_sig.g + 0x4f, 0xdc, 0xbc, 0xbe, 0xfc, 0xb1, 0x77, 0xff, //0x0000cd10 .quad -38366372719436721 + 0x7b, 0x0f, 0xbb, 0x13, 0x9c, 0xe8, 0xe8, 0x25, //0x0000cd18 .quad 2731688931043774331 + 0xb1, 0x09, 0x36, 0xf7, 0x3d, 0xcf, 0xaa, 0x9f, //0x0000cd20 .quad -6941508010590729807 + 0xad, 0xe9, 0x54, 0x8c, 0x61, 0x91, 0xb1, 0x77, //0x0000cd28 .quad 8624834609543440813 + 0x1d, 0x8c, 0x03, 0x75, 0x0d, 0x83, 0x95, 0xc7, //0x0000cd30 .quad -4065198994811024355 + 0x18, 0x24, 0x6a, 0xef, 0xb9, 0xf5, 0x9d, 0xd5, //0x0000cd38 .quad -3054014793352862696 + 0x25, 0x6f, 0x44, 0xd2, 0xd0, 0xe3, 0x7a, 0xf9, //0x0000cd40 .quad -469812725086392539 + 0x1e, 0xad, 0x44, 0x6b, 0x28, 0x73, 0x05, 0x4b, //0x0000cd48 .quad 5405853545163697438 + 0x77, 0xc5, 0x6a, 0x83, 0x62, 0xce, 0xec, 0x9b, //0x0000cd50 .quad -7211161980820077193 + 0x33, 0xec, 0x0a, 0x43, 0xf9, 0x67, 0xe3, 0x4e, //0x0000cd58 .quad 5684501474941004851 + 0xd5, 0x76, 0x45, 0x24, 0xfb, 0x01, 0xe8, 0xc2, //0x0000cd60 .quad -4402266457597708587 + 0x40, 0xa7, 0xcd, 0x93, 0xf7, 0x41, 0x9c, 0x22, //0x0000cd68 .quad 2493940825248868160 + 0x8a, 0xd4, 0x56, 0xed, 0x79, 0x02, 0xa2, 0xf3, //0x0000cd70 .quad -891147053569747830 + 0x10, 0x11, 0xc1, 0x78, 0x75, 0x52, 0x43, 0x6b, //0x0000cd78 .quad 7729112049988473104 + 0xd6, 0x44, 0x56, 0x34, 0x8c, 0x41, 0x45, 0x98, //0x0000cd80 .quad -7474495936122174250 + 0xaa, 0xaa, 0x78, 0x6b, 0x89, 0x13, 0x0a, 0x83, //0x0000cd88 .quad -9004363024039368022 + 0x0c, 0xd6, 0x6b, 0x41, 0xef, 0x91, 0x56, 0xbe, //0x0000cd90 .quad -4731433901725329908 + 0x54, 0xd5, 0x56, 0xc6, 0x6b, 0x98, 0xcc, 0x23, //0x0000cd98 .quad 2579604275232953684 + 0x8f, 0xcb, 0xc6, 0x11, 0x6b, 0x36, 0xec, 0xed, //0x0000cda0 .quad -1302606358729274481 + 0xa9, 0x8a, 0xec, 0xb7, 0x86, 0xbe, 0xbf, 0x2c, //0x0000cda8 .quad 3224505344041192105 + 0x39, 0x3f, 0x1c, 0xeb, 0x02, 0xa2, 0xb3, 0x94, //0x0000cdb0 .quad -7731658001846878407 + 0xaa, 0xd6, 0xf3, 0x32, 0x14, 0xd7, 0xf7, 0x7b, //0x0000cdb8 .quad 8932844867666826922 + 0x07, 0x4f, 0xe3, 0xa5, 0x83, 0x8a, 0xe0, 0xb9, //0x0000cdc0 .quad -5052886483881210105 + 0x54, 0xcc, 0xb0, 0x3f, 0xd9, 0xcc, 0xf5, 0xda, //0x0000cdc8 .quad -2669001970698630060 + 0xc9, 0x22, 0x5c, 0x8f, 0x24, 0xad, 0x58, 0xe8, //0x0000cdd0 .quad -1704422086424124727 + 0x69, 0xff, 0x9c, 0x8f, 0x0f, 0x40, 0xb3, 0xd1, //0x0000cdd8 .quad -3336252463373287575 + 0xbe, 0x95, 0x99, 0xd9, 0x36, 0x6c, 0x37, 0x91, //0x0000cde0 .quad -7982792831656159810 + 0xa2, 0x1f, 0xc2, 0xb9, 0x09, 0x08, 0x10, 0x23, //0x0000cde8 .quad 2526528228819083170 + 0x2d, 0xfb, 0xff, 0x8f, 0x44, 0x47, 0x85, 0xb5, //0x0000cdf0 .quad -5366805021142811859 + 0x8b, 0xa7, 0x32, 0x28, 0x0c, 0x0a, 0xd4, 0xab, //0x0000cdf8 .quad -6065211750830921845 + 0xf9, 0xf9, 0xff, 0xb3, 0x15, 0x99, 0xe6, 0xe2, //0x0000ce00 .quad -2096820258001126919 + 0x6d, 0x51, 0x3f, 0x32, 0x8f, 0x0c, 0xc9, 0x16, //0x0000ce08 .quad 1641857348316123501 + 0x3b, 0xfc, 0x7f, 0x90, 0xad, 0x1f, 0xd0, 0x8d, //0x0000ce10 .quad -8228041688891786181 + 0xe4, 0x92, 0x67, 0x7f, 0xd9, 0xa7, 0x3d, 0xae, //0x0000ce18 .quad -5891368184943504668 + 0x4a, 0xfb, 0x9f, 0xf4, 0x98, 0x27, 0x44, 0xb1, //0x0000ce20 .quad -5673366092687344822 + 0x9d, 0x77, 0x41, 0xdf, 0xcf, 0x11, 0xcd, 0x99, //0x0000ce28 .quad -7364210231179380835 + 0x1d, 0xfa, 0xc7, 0x31, 0x7f, 0x31, 0x95, 0xdd, //0x0000ce30 .quad -2480021597431793123 + 0x84, 0xd5, 0x11, 0xd7, 0x43, 0x56, 0x40, 0x40, //0x0000ce38 .quad 4629795266307937668 + 0x52, 0xfc, 0x1c, 0x7f, 0xef, 0x3e, 0x7d, 0x8a, //0x0000ce40 .quad -8467542526035952558 + 0x73, 0x25, 0x6b, 0x66, 0xea, 0x35, 0x28, 0x48, //0x0000ce48 .quad 5199465050656154995 + 0x66, 0x3b, 0xe4, 0x5e, 0xab, 0x8e, 0x1c, 0xad, //0x0000ce50 .quad -5972742139117552794 + 0xd0, 0xee, 0x05, 0x00, 0x65, 0x43, 0x32, 0xda, //0x0000ce58 .quad -2724040723534582064 + 0x40, 0x4a, 0x9d, 0x36, 0x56, 0xb2, 0x63, 0xd8, //0x0000ce60 .quad -2854241655469553088 + 0x83, 0x6a, 0x07, 0x40, 0x3e, 0xd4, 0xbe, 0x90, //0x0000ce68 .quad -8016736922845615485 + 0x68, 0x4e, 0x22, 0xe2, 0x75, 0x4f, 0x3e, 0x87, //0x0000ce70 .quad -8701430062309552536 + 0x92, 0xa2, 0x04, 0xe8, 0xa6, 0x44, 0x77, 0x5a, //0x0000ce78 .quad 6518754469289960082 + 0x02, 0xe2, 0xaa, 0x5a, 0x53, 0xe3, 0x0d, 0xa9, //0x0000ce80 .quad -6265101559459552766 + 0x37, 0xcb, 0x05, 0xa2, 0xd0, 0x15, 0x15, 0x71, //0x0000ce88 .quad 8148443086612450103 + 0x83, 0x9a, 0x55, 0x31, 0x28, 0x5c, 0x51, 0xd3, //0x0000ce90 .quad -3219690930897053053 + 0x04, 0x3e, 0x87, 0xca, 0x44, 0x5b, 0x5a, 0x0d, //0x0000ce98 .quad 962181821410786820 + 0x91, 0x80, 0xd5, 0x1e, 0x99, 0xd9, 0x12, 0x84, //0x0000cea0 .quad -8929835859451740015 + 0xc3, 0x86, 0x94, 0xfe, 0x0a, 0x79, 0x58, 0xe8, //0x0000cea8 .quad -1704479370831952189 + 0xb6, 0xe0, 0x8a, 0x66, 0xff, 0x8f, 0x17, 0xa5, //0x0000ceb0 .quad -6550608805887287114 + 0x73, 0xa8, 0x39, 0xbe, 0x4d, 0x97, 0x6e, 0x62, //0x0000ceb8 .quad 7092772823314835571 + 0xe3, 0x98, 0x2d, 0x40, 0xff, 0x73, 0x5d, 0xce, //0x0000cec0 .quad -3576574988931720989 + 0x90, 0x12, 0xc8, 0x2d, 0x21, 0x3d, 0x0a, 0xfb, //0x0000cec8 .quad -357406007711231344 + 0x8e, 0x7f, 0x1c, 0x88, 0x7f, 0x68, 0xfa, 0x80, //0x0000ced0 .quad -9152888395723407474 + 0x9a, 0x0b, 0x9d, 0xbc, 0x34, 0x66, 0xe6, 0x7c, //0x0000ced8 .quad 8999993282035256218 + 0x72, 0x9f, 0x23, 0x6a, 0x9f, 0x02, 0x39, 0xa1, //0x0000cee0 .quad -6829424476226871438 + 0x81, 0x4e, 0xc4, 0xeb, 0xc1, 0xff, 0x1f, 0x1c, //0x0000cee8 .quad 2026619565689294465 + 0x4e, 0x87, 0xac, 0x44, 0x47, 0x43, 0x87, 0xc9, //0x0000cef0 .quad -3925094576856201394 + 0x21, 0x62, 0xb5, 0x66, 0xb2, 0xff, 0x27, 0xa3, //0x0000cef8 .quad -6690097579743157727 + 0x22, 0xa9, 0xd7, 0x15, 0x19, 0x14, 0xe9, 0xfb, //0x0000cf00 .quad -294682202642863838 + 0xa9, 0xba, 0x62, 0x00, 0x9f, 0xff, 0xf1, 0x4b, //0x0000cf08 .quad 5472436080603216553 + 0xb5, 0xc9, 0xa6, 0xad, 0x8f, 0xac, 0x71, 0x9d, //0x0000cf10 .quad -7101705404292871755 + 0xaa, 0xb4, 0x3d, 0x60, 0xc3, 0x3f, 0x77, 0x6f, //0x0000cf18 .quad 8031958568804398250 + 0x22, 0x7c, 0x10, 0x99, 0xb3, 0x17, 0xce, 0xc4, //0x0000cf20 .quad -4265445736938701790 + 0xd4, 0x21, 0x4d, 0x38, 0xb4, 0x0f, 0x55, 0xcb, //0x0000cf28 .quad -3795109844276665900 + 0x2b, 0x9b, 0x54, 0x7f, 0xa0, 0x9d, 0x01, 0xf6, //0x0000cf30 .quad -720121152745989333 + 0x49, 0x6a, 0x60, 0x46, 0xa1, 0x53, 0x2a, 0x7e, //0x0000cf38 .quad 9091170749936331337 + 0xfb, 0xe0, 0x94, 0x4f, 0x84, 0x02, 0xc1, 0x99, //0x0000cf40 .quad -7367604748107325189 + 0x6e, 0x42, 0xfc, 0xcb, 0x44, 0x74, 0xda, 0x2e, //0x0000cf48 .quad 3376138709496513134 + 0x39, 0x19, 0x7a, 0x63, 0x25, 0x43, 0x31, 0xc0, //0x0000cf50 .quad -4597819916706768583 + 0x09, 0x53, 0xfb, 0xfe, 0x55, 0x11, 0x91, 0xfa, //0x0000cf58 .quad -391512631556746487 + 0x88, 0x9f, 0x58, 0xbc, 0xee, 0x93, 0x3d, 0xf0, //0x0000cf60 .quad -1135588877456072824 + 0xcb, 0x27, 0xba, 0x7e, 0xab, 0x55, 0x35, 0x79, //0x0000cf68 .quad 8733981247408842699 + 0xb5, 0x63, 0xb7, 0x35, 0x75, 0x7c, 0x26, 0x96, //0x0000cf70 .quad -7627272076051127371 + 0xdf, 0x58, 0x34, 0x2f, 0x8b, 0x55, 0xc1, 0x4b, //0x0000cf78 .quad 5458738279630526687 + 0xa2, 0x3c, 0x25, 0x83, 0x92, 0x1b, 0xb0, 0xbb, //0x0000cf80 .quad -4922404076636521310 + 0x17, 0x6f, 0x01, 0xfb, 0xed, 0xaa, 0xb1, 0x9e, //0x0000cf88 .quad -7011635205744005353 + 0xcb, 0x8b, 0xee, 0x23, 0x77, 0x22, 0x9c, 0xea, //0x0000cf90 .quad -1541319077368263733 + 0xdd, 0xca, 0xc1, 0x79, 0xa9, 0x15, 0x5e, 0x46, //0x0000cf98 .quad 5070514048102157021 + 0x5f, 0x17, 0x75, 0x76, 0x8a, 0x95, 0xa1, 0x92, //0x0000cfa0 .quad -7880853450996246689 + 0xca, 0x1e, 0x19, 0xec, 0x89, 0xcd, 0xfa, 0x0b, //0x0000cfa8 .quad 863228270850154186 + 0x36, 0x5d, 0x12, 0x14, 0xed, 0xfa, 0x49, 0xb7, //0x0000cfb0 .quad -5239380795317920458 + 0x7c, 0x66, 0x1f, 0x67, 0xec, 0x80, 0xf9, 0xce, //0x0000cfb8 .quad -3532650679864695172 + 0x84, 0xf4, 0x16, 0x59, 0xa8, 0x79, 0x1c, 0xe5, //0x0000cfc0 .quad -1937539975720012668 + 0x1b, 0x40, 0xe7, 0x80, 0x27, 0xe1, 0xb7, 0x82, //0x0000cfc8 .quad -9027499368258256869 + 0xd2, 0x58, 0xae, 0x37, 0x09, 0xcc, 0x31, 0x8f, //0x0000cfd0 .quad -8128491512466089774 + 0x11, 0x88, 0x90, 0xb0, 0xb8, 0xec, 0xb2, 0xd1, //0x0000cfd8 .quad -3336344095947716591 + 0x07, 0xef, 0x99, 0x85, 0x0b, 0x3f, 0xfe, 0xb2, //0x0000cfe0 .quad -5548928372155224313 + 0x16, 0xaa, 0xb4, 0xdc, 0xe6, 0xa7, 0x1f, 0x86, //0x0000cfe8 .quad -8782116138362033642 + 0xc9, 0x6a, 0x00, 0x67, 0xce, 0xce, 0xbd, 0xdf, //0x0000cff0 .quad -2324474446766642487 + 0x9b, 0xd4, 0xe1, 0x93, 0xe0, 0x91, 0xa7, 0x67, //0x0000cff8 .quad 7469098900757009563 + 0xbd, 0x42, 0x60, 0x00, 0x41, 0xa1, 0xd6, 0x8b, //0x0000d000 .quad -8370325556870233411 + 0xe1, 0x24, 0x6d, 0x5c, 0x2c, 0xbb, 0xc8, 0xe0, //0x0000d008 .quad -2249342214667950879 + 0x6d, 0x53, 0x78, 0x40, 0x91, 0x49, 0xcc, 0xae, //0x0000d010 .quad -5851220927660403859 + 0x19, 0x6e, 0x88, 0x73, 0xf7, 0xe9, 0xfa, 0x58, //0x0000d018 .quad 6411694268519837209 + 0x48, 0x68, 0x96, 0x90, 0xf5, 0x5b, 0x7f, 0xda, //0x0000d020 .quad -2702340141148116920 + 0x9f, 0x89, 0x6a, 0x50, 0x75, 0xa4, 0x39, 0xaf, //0x0000d028 .quad -5820440219632367201 + 0x2d, 0x01, 0x5e, 0x7a, 0x79, 0x99, 0x8f, 0x88, //0x0000d030 .quad -8606491615858654931 + 0x04, 0x96, 0x42, 0x52, 0xc9, 0x06, 0x84, 0x6d, //0x0000d038 .quad 7891439908798240260 + 0x78, 0x81, 0xf5, 0xd8, 0xd7, 0x7f, 0xb3, 0xaa, //0x0000d040 .quad -6146428501395930760 + 0x84, 0x3b, 0xd3, 0xa6, 0x7b, 0x08, 0xe5, 0xc8, //0x0000d048 .quad -3970758169284363388 + 0xd6, 0xe1, 0x32, 0xcf, 0xcd, 0x5f, 0x60, 0xd5, //0x0000d050 .quad -3071349608317525546 + 0x65, 0x0a, 0x88, 0x90, 0x9a, 0x4a, 0x1e, 0xfb, //0x0000d058 .quad -351761693178066331 + 0x26, 0xcd, 0x7f, 0xa1, 0xe0, 0x3b, 0x5c, 0x85, //0x0000d060 .quad -8837122532839535322 + 0x80, 0x06, 0x55, 0x9a, 0xa0, 0xee, 0xf2, 0x5c, //0x0000d068 .quad 6697677969404790400 + 0x6f, 0xc0, 0xdf, 0xc9, 0xd8, 0x4a, 0xb3, 0xa6, //0x0000d070 .quad -6434717147622031249 + 0x1f, 0x48, 0xea, 0xc0, 0x48, 0xaa, 0x2f, 0xf4, //0x0000d078 .quad -851274575098787809 + 0x8b, 0xb0, 0x57, 0xfc, 0x8e, 0x1d, 0x60, 0xd0, //0x0000d080 .quad -3431710416100151157 + 0x27, 0xda, 0x24, 0xf1, 0xda, 0x94, 0x3b, 0xf1, //0x0000d088 .quad -1064093218873484761 + 0x57, 0xce, 0xb6, 0x5d, 0x79, 0x12, 0x3c, 0x82, //0x0000d090 .quad -9062348037703676329 + 0x59, 0x08, 0xb7, 0xd6, 0x08, 0x3d, 0xc5, 0x76, //0x0000d098 .quad 8558313775058847833 + 0xed, 0x81, 0x24, 0xb5, 0x17, 0x17, 0xcb, 0xa2, //0x0000d0a0 .quad -6716249028702207507 + 0x6f, 0xca, 0x64, 0x0c, 0x4b, 0x8c, 0x76, 0x54, //0x0000d0a8 .quad 6086206200396171887 + 0x68, 0xa2, 0x6d, 0xa2, 0xdd, 0xdc, 0x7d, 0xcb, //0x0000d0b0 .quad -3783625267450371480 + 0x0a, 0xfd, 0x7d, 0xcf, 0x5d, 0x2f, 0x94, 0xa9, //0x0000d0b8 .quad -6227300304786948854 + 0x02, 0x0b, 0x09, 0x0b, 0x15, 0x54, 0x5d, 0xfe, //0x0000d0c0 .quad -117845565885576446 + 0x4d, 0x7c, 0x5d, 0x43, 0x35, 0x3b, 0xf9, 0xd3, //0x0000d0c8 .quad -3172439362556298163 + 0xe1, 0xa6, 0xe5, 0x26, 0x8d, 0x54, 0xfa, 0x9e, //0x0000d0d0 .quad -6991182506319567135 + 0xb0, 0x6d, 0x1a, 0x4a, 0x01, 0xc5, 0x7b, 0xc4, //0x0000d0d8 .quad -4288617610811380304 + 0x9a, 0x10, 0x9f, 0x70, 0xb0, 0xe9, 0xb8, 0xc6, //0x0000d0e0 .quad -4127292114472071014 + 0x1c, 0x09, 0xa1, 0x9c, 0x41, 0xb6, 0x9a, 0x35, //0x0000d0e8 .quad 3862600023340550428 + 0xc0, 0xd4, 0xc6, 0x8c, 0x1c, 0x24, 0x67, 0xf8, //0x0000d0f0 .quad -547429124662700864 + 0x63, 0x4b, 0xc9, 0x03, 0xd2, 0x63, 0x01, 0xc3, //0x0000d0f8 .quad -4395122007679087773 + 0xf8, 0x44, 0xfc, 0xd7, 0x91, 0x76, 0x40, 0x9b, //0x0000d100 .quad -7259672230555269896 + 0x1e, 0xcf, 0x5d, 0x42, 0x63, 0xde, 0xe0, 0x79, //0x0000d108 .quad 8782263791269039902 + 0x36, 0x56, 0xfb, 0x4d, 0x36, 0x94, 0x10, 0xc2, //0x0000d110 .quad -4462904269766699466 + 0xe5, 0x42, 0xf5, 0x12, 0xfc, 0x15, 0x59, 0x98, //0x0000d118 .quad -7468914334623251739 + 0xc4, 0x2b, 0x7a, 0xe1, 0x43, 0xb9, 0x94, 0xf2, //0x0000d120 .quad -966944318780986428 + 0x9e, 0x93, 0xb2, 0x17, 0x7b, 0x5b, 0x6f, 0x3e, //0x0000d128 .quad 4498915137003099038 + 0x5a, 0x5b, 0xec, 0x6c, 0xca, 0xf3, 0x9c, 0x97, //0x0000d130 .quad -7521869226879198374 + 0x43, 0x9c, 0xcf, 0xee, 0x2c, 0x99, 0x05, 0xa7, //0x0000d138 .quad -6411550076227838909 + 0x31, 0x72, 0x27, 0x08, 0xbd, 0x30, 0x84, 0xbd, //0x0000d140 .quad -4790650515171610063 + 0x54, 0x83, 0x83, 0x2a, 0x78, 0xff, 0xc6, 0x50, //0x0000d148 .quad 5820620459997365076 + 0xbd, 0x4e, 0x31, 0x4a, 0xec, 0x3c, 0xe5, 0xec, //0x0000d150 .quad -1376627125537124675 + 0x29, 0x64, 0x24, 0x35, 0x56, 0xbf, 0xf8, 0xa4, //0x0000d158 .quad -6559282480285457367 + 0x36, 0xd1, 0x5e, 0xae, 0x13, 0x46, 0x0f, 0x94, //0x0000d160 .quad -7777920981101784778 + 0x9a, 0xbe, 0x36, 0xe1, 0x95, 0x77, 0x1b, 0x87, //0x0000d168 .quad -8711237568605798758 + 0x84, 0x85, 0xf6, 0x99, 0x98, 0x17, 0x13, 0xb9, //0x0000d170 .quad -5110715207949843068 + 0x40, 0x6e, 0x84, 0x59, 0x7b, 0x55, 0xe2, 0x28, //0x0000d178 .quad 2946011094524915264 + 0xe5, 0x26, 0x74, 0xc0, 0x7e, 0xdd, 0x57, 0xe7, //0x0000d180 .quad -1776707991509915931 + 0xd0, 0x89, 0xe5, 0x2f, 0xda, 0xea, 0x1a, 0x33, //0x0000d188 .quad 3682513868156144080 + 0x4f, 0x98, 0x48, 0x38, 0x6f, 0xea, 0x96, 0x90, //0x0000d190 .quad -8027971522334779313 + 0x22, 0x76, 0xef, 0x5d, 0xc8, 0xd2, 0xf0, 0x3f, //0x0000d198 .quad 4607414176811284002 + 0x63, 0xbe, 0x5a, 0x06, 0x0b, 0xa5, 0xbc, 0xb4, //0x0000d1a0 .quad -5423278384491086237 + 0xaa, 0x53, 0x6b, 0x75, 0x7a, 0x07, 0xed, 0x0f, //0x0000d1a8 .quad 1147581702586717098 + 0xfb, 0x6d, 0xf1, 0xc7, 0x4d, 0xce, 0xeb, 0xe1, //0x0000d1b0 .quad -2167411962186469893 + 0x95, 0x28, 0xc6, 0x12, 0x59, 0x49, 0xe8, 0xd3, //0x0000d1b8 .quad -3177208890193991531 + 0xbd, 0xe4, 0xf6, 0x9c, 0xf0, 0x60, 0x33, 0x8d, //0x0000d1c0 .quad -8272161504007625539 + 0x5d, 0xd9, 0xbb, 0xab, 0xd7, 0x2d, 0x71, 0x64, //0x0000d1c8 .quad 7237616480483531101 + 0xec, 0x9d, 0x34, 0xc4, 0x2c, 0x39, 0x80, 0xb0, //0x0000d1d0 .quad -5728515861582144020 + 0xb4, 0xcf, 0xaa, 0x96, 0x4d, 0x79, 0x8d, 0xbd, //0x0000d1d8 .quad -4788037454677749836 + 0x67, 0xc5, 0x41, 0xf5, 0x77, 0x47, 0xa0, 0xdc, //0x0000d1e0 .quad -2548958808550292121 + 0xa1, 0x83, 0x55, 0xfc, 0xa0, 0xd7, 0xf0, 0xec, //0x0000d1e8 .quad -1373360799919799391 + 0x60, 0x1b, 0x49, 0xf9, 0xaa, 0x2c, 0xe4, 0x89, //0x0000d1f0 .quad -8510628282985014432 + 0x45, 0x72, 0xb5, 0x9d, 0xc4, 0x86, 0x16, 0xf4, //0x0000d1f8 .quad -858350499949874619 + 0x39, 0x62, 0x9b, 0xb7, 0xd5, 0x37, 0x5d, 0xac, //0x0000d200 .quad -6026599335303880135 + 0xd6, 0xce, 0x22, 0xc5, 0x75, 0x28, 0x1c, 0x31, //0x0000d208 .quad 3538747893490044630 + 0xc7, 0x3a, 0x82, 0x25, 0xcb, 0x85, 0x74, 0xd7, //0x0000d210 .quad -2921563150702462265 + 0x8c, 0x82, 0x6b, 0x36, 0x93, 0x32, 0x63, 0x7d, //0x0000d218 .quad 9035120885289943692 + 0xbc, 0x64, 0x71, 0xf7, 0x9e, 0xd3, 0xa8, 0x86, //0x0000d220 .quad -8743505996830120772 + 0x98, 0x31, 0x03, 0x02, 0x9c, 0xff, 0x5d, 0xae, //0x0000d228 .quad -5882264492762254952 + 0xeb, 0xbd, 0x4d, 0xb5, 0x86, 0x08, 0x53, 0xa8, //0x0000d230 .quad -6317696477610263061 + 0xfd, 0xfd, 0x83, 0x02, 0x83, 0x7f, 0xf5, 0xd9, //0x0000d238 .quad -2741144597525430787 + 0x66, 0x2d, 0xa1, 0x62, 0xa8, 0xca, 0x67, 0xd2, //0x0000d240 .quad -3285434578585440922 + 0x7c, 0xfd, 0x24, 0xc3, 0x63, 0xdf, 0x72, 0xd0, //0x0000d248 .quad -3426430746906788484 + 0x60, 0xbc, 0xa4, 0x3d, 0xa9, 0xde, 0x80, 0x83, //0x0000d250 .quad -8970925639256982432 + 0x6e, 0x1e, 0xf7, 0x59, 0x9e, 0xcb, 0x47, 0x42, //0x0000d258 .quad 4776009810824339054 + 0x78, 0xeb, 0x0d, 0x8d, 0x53, 0x16, 0x61, 0xa4, //0x0000d260 .quad -6601971030643840136 + 0x09, 0xe6, 0x74, 0xf0, 0x85, 0xbe, 0xd9, 0x52, //0x0000d268 .quad 5970012263530423817 + 0x56, 0x66, 0x51, 0x70, 0xe8, 0x5b, 0x79, 0xcd, //0x0000d270 .quad -3640777769877412266 + 0x8c, 0x1f, 0x92, 0x6c, 0x27, 0x2e, 0x90, 0x67, //0x0000d278 .quad 7462515329413029772 + 0xf6, 0xdf, 0x32, 0x46, 0x71, 0xd9, 0x6b, 0x80, //0x0000d280 .quad -9193015133814464522 + 0xb7, 0x53, 0xdb, 0xa3, 0xd8, 0x1c, 0xba, 0x00, //0x0000d288 .quad 52386062455755703 + 0xf3, 0x97, 0xbf, 0x97, 0xcd, 0xcf, 0x86, 0xa0, //0x0000d290 .quad -6879582898840692749 + 0xa5, 0x28, 0xd2, 0xcc, 0x0e, 0xa4, 0xe8, 0x80, //0x0000d298 .quad -9157889458785081179 + 0xf0, 0x7d, 0xaf, 0xfd, 0xc0, 0x83, 0xa8, 0xc8, //0x0000d2a0 .quad -3987792605123478032 + 0xce, 0xb2, 0x06, 0x80, 0x12, 0xcd, 0x22, 0x61, //0x0000d2a8 .quad 6999382250228200142 + 0x6c, 0x5d, 0x1b, 0x3d, 0xb1, 0xa4, 0xd2, 0xfa, //0x0000d2b0 .quad -373054737976959636 + 0x82, 0x5f, 0x08, 0x20, 0x57, 0x80, 0x6b, 0x79, //0x0000d2b8 .quad 8749227812785250178 + 0x63, 0x1a, 0x31, 0xc6, 0xee, 0xa6, 0xc3, 0x9c, //0x0000d2c0 .quad -7150688238876681629 + 0xb1, 0x3b, 0x05, 0x74, 0x36, 0x30, 0xe3, 0xcb, //0x0000d2c8 .quad -3755104653863994447 + 0xfc, 0x60, 0xbd, 0x77, 0xaa, 0x90, 0xf4, 0xc3, //0x0000d2d0 .quad -4326674280168464132 + 0x9d, 0x8a, 0x06, 0x11, 0x44, 0xfc, 0xdb, 0xbe, //0x0000d2d8 .quad -4693880817329993059 + 0x3b, 0xb9, 0xac, 0x15, 0xd5, 0xb4, 0xf1, 0xf4, //0x0000d2e0 .quad -796656831783192261 + 0x45, 0x2d, 0x48, 0x15, 0x55, 0xfb, 0x92, 0xee, //0x0000d2e8 .quad -1255665003235103419 + 0xc5, 0xf3, 0x8b, 0x2d, 0x05, 0x11, 0x17, 0x99, //0x0000d2f0 .quad -7415439547505577019 + 0x4b, 0x1c, 0x4d, 0x2d, 0x15, 0xdd, 0x1b, 0x75, //0x0000d2f8 .quad 8438581409832836171 + 0xb6, 0xf0, 0xee, 0x78, 0x46, 0xd5, 0x5c, 0xbf, //0x0000d300 .quad -4657613415954583370 + 0x5e, 0x63, 0xa0, 0x78, 0x5a, 0xd4, 0x62, 0xd2, //0x0000d308 .quad -3286831292991118498 + 0xe4, 0xac, 0x2a, 0x17, 0x98, 0x0a, 0x34, 0xef, //0x0000d310 .quad -1210330751515841308 + 0x35, 0x7c, 0xc8, 0x16, 0x71, 0x89, 0xfb, 0x86, //0x0000d318 .quad -8720225134666286027 + 0x0e, 0xac, 0x7a, 0x0e, 0x9f, 0x86, 0x80, 0x95, //0x0000d320 .quad -7673985747338482674 + 0xa1, 0x4d, 0x3d, 0xae, 0xe6, 0x35, 0x5d, 0xd4, //0x0000d328 .quad -3144297699952734815 + 0x12, 0x57, 0x19, 0xd2, 0x46, 0xa8, 0xe0, 0xba, //0x0000d330 .quad -4980796165745715438 + 0x0a, 0xa1, 0xcc, 0x59, 0x60, 0x83, 0x74, 0x89, //0x0000d338 .quad -8542058143368306422 + 0xd7, 0xac, 0x9f, 0x86, 0x58, 0xd2, 0x98, 0xe9, //0x0000d340 .quad -1614309188754756393 + 0x4c, 0xc9, 0x3f, 0x70, 0x38, 0xa4, 0xd1, 0x2b, //0x0000d348 .quad 3157485376071780684 + 0x06, 0xcc, 0x23, 0x54, 0x77, 0x83, 0xff, 0x91, //0x0000d350 .quad -7926472270612804602 + 0xd0, 0xdd, 0x27, 0x46, 0xa3, 0x06, 0x63, 0x7b, //0x0000d358 .quad 8890957387685944784 + 0x08, 0xbf, 0x2c, 0x29, 0x55, 0x64, 0x7f, 0xb6, //0x0000d360 .quad -5296404319838617848 + 0x43, 0xd5, 0xb1, 0x17, 0x4c, 0xc8, 0x3b, 0x1a, //0x0000d368 .quad 1890324697752655171 + 0xca, 0xee, 0x77, 0x73, 0x6a, 0x3d, 0x1f, 0xe4, //0x0000d370 .quad -2008819381370884406 + 0x94, 0x4a, 0x9e, 0x1d, 0x5f, 0xba, 0xca, 0x20, //0x0000d378 .quad 2362905872190818964 + 0x3e, 0xf5, 0x2a, 0x88, 0x62, 0x86, 0x93, 0x8e, //0x0000d380 .quad -8173041140997884610 + 0x9d, 0xee, 0x82, 0x72, 0x7b, 0xb4, 0x7e, 0x54, //0x0000d388 .quad 6088502188546649757 + 0x8d, 0xb2, 0x35, 0x2a, 0xfb, 0x67, 0x38, 0xb2, //0x0000d390 .quad -5604615407819967859 + 0x44, 0xaa, 0x23, 0x4f, 0x9a, 0x61, 0x9e, 0xe9, //0x0000d398 .quad -1612744301171463612 + 0x31, 0x1f, 0xc3, 0xf4, 0xf9, 0x81, 0xc6, 0xde, //0x0000d3a0 .quad -2394083241347571919 + 0xd5, 0x94, 0xec, 0xe2, 0x00, 0xfa, 0x05, 0x64, //0x0000d3a8 .quad 7207441660390446293 + 0x7e, 0xf3, 0xf9, 0x38, 0x3c, 0x11, 0x3c, 0x8b, //0x0000d3b0 .quad -8413831053483314306 + 0x05, 0xdd, 0xd3, 0x8d, 0x40, 0xbc, 0x83, 0xde, //0x0000d3b8 .quad -2412877989897052923 + 0x5e, 0x70, 0x38, 0x47, 0x8b, 0x15, 0x0b, 0xae, //0x0000d3c0 .quad -5905602798426754978 + 0x46, 0xd4, 0x48, 0xb1, 0x50, 0xab, 0x24, 0x96, //0x0000d3c8 .quad -7627783505798704058 + 0x76, 0x8c, 0x06, 0x19, 0xee, 0xda, 0x8d, 0xd9, //0x0000d3d0 .quad -2770317479606055818 + 0x58, 0x09, 0x9b, 0xdd, 0x24, 0xd6, 0xad, 0x3b, //0x0000d3d8 .quad 4300328673033783640 + 0xc9, 0x17, 0xa4, 0xcf, 0xd4, 0xa8, 0xf8, 0x87, //0x0000d3e0 .quad -8648977452394866743 + 0xd7, 0xe5, 0x80, 0x0a, 0xd7, 0xa5, 0x4c, 0xe5, //0x0000d3e8 .quad -1923980597781273129 + 0xbc, 0x1d, 0x8d, 0x03, 0x0a, 0xd3, 0xf6, 0xa9, //0x0000d3f0 .quad -6199535797066195524 + 0x4d, 0x1f, 0x21, 0xcd, 0x4c, 0xcf, 0x9f, 0x5e, //0x0000d3f8 .quad 6818396289628184397 + 0x2b, 0x65, 0x70, 0x84, 0xcc, 0x87, 0x74, 0xd4, //0x0000d400 .quad -3137733727905356501 + 0x20, 0x67, 0x69, 0x00, 0x20, 0xc3, 0x47, 0x76, //0x0000d408 .quad 8522995362035230496 + 0x3b, 0x3f, 0xc6, 0xd2, 0xdf, 0xd4, 0xc8, 0x84, //0x0000d410 .quad -8878612607581929669 + 0x74, 0xe0, 0x41, 0x00, 0xf4, 0xd9, 0xec, 0x29, //0x0000d418 .quad 3021029092058325108 + 0x09, 0xcf, 0x77, 0xc7, 0x17, 0x0a, 0xfb, 0xa5, //0x0000d420 .quad -6486579741050024183 + 0x91, 0x58, 0x52, 0x00, 0x71, 0x10, 0x68, 0xf4, //0x0000d428 .quad -835399653354481519 + 0xcc, 0xc2, 0x55, 0xb9, 0x9d, 0xcc, 0x79, 0xcf, //0x0000d430 .quad -3496538657885142324 + 0xb5, 0xee, 0x66, 0x40, 0x8d, 0x14, 0x82, 0x71, //0x0000d438 .quad 8179122470161673909 + 0xbf, 0x99, 0xd5, 0x93, 0xe2, 0x1f, 0xac, 0x81, //0x0000d440 .quad -9102865688819295809 + 0x31, 0x55, 0x40, 0x48, 0xd8, 0x4c, 0xf1, 0xc6, //0x0000d448 .quad -4111420493003729615 + 0x2f, 0x00, 0xcb, 0x38, 0xdb, 0x27, 0x17, 0xa2, //0x0000d450 .quad -6766896092596731857 + 0x7d, 0x6a, 0x50, 0x5a, 0x0e, 0xa0, 0xad, 0xb8, //0x0000d458 .quad -5139275616254662019 + 0x3b, 0xc0, 0xfd, 0x06, 0xd2, 0xf1, 0x9c, 0xca, //0x0000d460 .quad -3846934097318526917 + 0x1d, 0x85, 0xe4, 0xf0, 0x11, 0x08, 0xd9, 0xa6, //0x0000d468 .quad -6424094520318327523 + 0x4a, 0x30, 0xbd, 0x88, 0x46, 0x2e, 0x44, 0xfd, //0x0000d470 .quad -196981603220770742 + 0x64, 0xa6, 0x1d, 0x6d, 0x16, 0x4a, 0x8f, 0x90, //0x0000d478 .quad -8030118150397909404 + 0x2e, 0x3e, 0x76, 0x15, 0xec, 0x9c, 0x4a, 0x9e, //0x0000d480 .quad -7040642529654063570 + 0xff, 0x87, 0x32, 0x04, 0x4e, 0x8e, 0x59, 0x9a, //0x0000d488 .quad -7324666853212387329 + 0xba, 0xcd, 0xd3, 0x1a, 0x27, 0x44, 0xdd, 0xc5, //0x0000d490 .quad -4189117143640191558 + 0xfe, 0x29, 0x3f, 0x85, 0xe1, 0xf1, 0xef, 0x40, //0x0000d498 .quad 4679224488766679550 + 0x28, 0xc1, 0x88, 0xe1, 0x30, 0x95, 0x54, 0xf7, //0x0000d4a0 .quad -624710411122851544 + 0x7d, 0xf4, 0x8e, 0xe6, 0x59, 0xee, 0x2b, 0xd1, //0x0000d4a8 .quad -3374341425896426371 + 0xb9, 0x78, 0xf5, 0x8c, 0x3e, 0xdd, 0x94, 0x9a, //0x0000d4b0 .quad -7307973034592864071 + 0xcf, 0x58, 0x19, 0x30, 0xf8, 0x74, 0xbb, 0x82, //0x0000d4b8 .quad -9026492418826348337 + 0xe7, 0xd6, 0x32, 0x30, 0x8e, 0x14, 0x3a, 0xc1, //0x0000d4c0 .quad -4523280274813692185 + 0x02, 0xaf, 0x1f, 0x3c, 0x36, 0x52, 0x6a, 0xe3, //0x0000d4c8 .quad -2059743486678159614 + 0xa1, 0x8c, 0x3f, 0xbc, 0xb1, 0x99, 0x88, 0xf1, //0x0000d4d0 .quad -1042414325089727327 + 0xc2, 0x9a, 0x27, 0xcb, 0xc3, 0xe6, 0x44, 0xdc, //0x0000d4d8 .quad -2574679358347699518 + 0xe5, 0xb7, 0xa7, 0x15, 0x0f, 0x60, 0xf5, 0x96, //0x0000d4e0 .quad -7569037980822161435 + 0xba, 0xc0, 0xf8, 0x5e, 0x3a, 0x10, 0xab, 0x29, //0x0000d4e8 .quad 3002511419460075706 + 0xde, 0xa5, 0x11, 0xdb, 0x12, 0xb8, 0xb2, 0xbc, //0x0000d4f0 .quad -4849611457600313890 + 0xe8, 0xf0, 0xb6, 0xf6, 0x48, 0xd4, 0x15, 0x74, //0x0000d4f8 .quad 8364825292752482536 + 0x56, 0x0f, 0xd6, 0x91, 0x17, 0x66, 0xdf, 0xeb, //0x0000d500 .quad -1450328303573004458 + 0x22, 0xad, 0x64, 0x34, 0x5b, 0x49, 0x1b, 0x11, //0x0000d508 .quad 1232659579085827362 + 0x95, 0xc9, 0x25, 0xbb, 0xce, 0x9f, 0x6b, 0x93, //0x0000d510 .quad -7823984217374209643 + 0x35, 0xec, 0xbe, 0x00, 0xd9, 0x0d, 0xb1, 0xca, //0x0000d518 .quad -3841273781498745803 + 0xfb, 0x3b, 0xef, 0x69, 0xc2, 0x87, 0x46, 0xb8, //0x0000d520 .quad -5168294253290374149 + 0x43, 0xa7, 0xee, 0x40, 0x4f, 0x51, 0x5d, 0x3d, //0x0000d528 .quad 4421779809981343555 + 0xfa, 0x0a, 0x6b, 0x04, 0xb3, 0x29, 0x58, 0xe6, //0x0000d530 .quad -1848681798185579782 + 0x13, 0x51, 0x2a, 0x11, 0xa3, 0xa5, 0xb4, 0x0c, //0x0000d538 .quad 915538744049291539 + 0xdc, 0xe6, 0xc2, 0xe2, 0x0f, 0x1a, 0xf7, 0x8f, //0x0000d540 .quad -8072955151507069220 + 0xac, 0x72, 0xba, 0xea, 0x85, 0xe7, 0xf0, 0x47, //0x0000d548 .quad 5183897733458195116 + 0x93, 0xa0, 0x73, 0xdb, 0x93, 0xe0, 0xf4, 0xb3, //0x0000d550 .quad -5479507920956448621 + 0x57, 0x0f, 0x69, 0x65, 0x67, 0x21, 0xed, 0x59, //0x0000d558 .quad 6479872166822743895 + 0xb8, 0x88, 0x50, 0xd2, 0xb8, 0x18, 0xf2, 0xe0, //0x0000d560 .quad -2237698882768172872 + 0x2d, 0x53, 0xc3, 0x3e, 0xc1, 0x69, 0x68, 0x30, //0x0000d568 .quad 3488154190101041965 + 0x73, 0x55, 0x72, 0x83, 0x73, 0x4f, 0x97, 0x8c, //0x0000d570 .quad -8316090829371189901 + 0xfc, 0x13, 0x3a, 0xc7, 0x18, 0x42, 0x41, 0x1e, //0x0000d578 .quad 2180096368813151228 + 0xcf, 0xea, 0x4e, 0x64, 0x50, 0x23, 0xbd, 0xaf, //0x0000d580 .quad -5783427518286599473 + 0xfb, 0x98, 0x08, 0xf9, 0x9e, 0x92, 0xd1, 0xe5, //0x0000d588 .quad -1886565557410948869 + 0x83, 0xa5, 0x62, 0x7d, 0x24, 0x6c, 0xac, 0xdb, //0x0000d590 .quad -2617598379430861437 + 0x3a, 0xbf, 0x4a, 0xb7, 0x46, 0xf7, 0x45, 0xdf, //0x0000d598 .quad -2358206946763686086 + 0x72, 0xa7, 0x5d, 0xce, 0x96, 0xc3, 0x4b, 0x89, //0x0000d5a0 .quad -8553528014785370254 + 0x84, 0xb7, 0x8e, 0x32, 0x8c, 0xba, 0x8b, 0x6b, //0x0000d5a8 .quad 7749492695127472004 + 0x4f, 0x11, 0xf5, 0x81, 0x7c, 0xb4, 0x9e, 0xab, //0x0000d5b0 .quad -6080224000054324913 + 0x65, 0x65, 0x32, 0x3f, 0x2f, 0xa9, 0x6e, 0x06, //0x0000d5b8 .quad 463493832054564197 + 0xa2, 0x55, 0x72, 0xa2, 0x9b, 0x61, 0x86, 0xd6, //0x0000d5c0 .quad -2988593981640518238 + 0xbe, 0xfe, 0xfe, 0x0e, 0x7b, 0x53, 0x0a, 0xc8, //0x0000d5c8 .quad -4032318728359182658 + 0x85, 0x75, 0x87, 0x45, 0x01, 0xfd, 0x13, 0x86, //0x0000d5d0 .quad -8785400266166405755 + 0x37, 0x5f, 0x5f, 0xe9, 0x2c, 0x74, 0x06, 0xbd, //0x0000d5d8 .quad -4826042214438183113 + 0xe7, 0x52, 0xe9, 0x96, 0x41, 0xfc, 0x98, 0xa7, //0x0000d5e0 .quad -6370064314280619289 + 0x05, 0x37, 0xb7, 0x23, 0x38, 0x11, 0x48, 0x2c, //0x0000d5e8 .quad 3190819268807046917 + 0xa0, 0xa7, 0xa3, 0xfc, 0x51, 0x3b, 0x7f, 0xd1, //0x0000d5f0 .quad -3350894374423386208 + 0xc6, 0x04, 0xa5, 0x2c, 0x86, 0x15, 0x5a, 0xf7, //0x0000d5f8 .quad -623161932418579258 + 0xc4, 0x48, 0xe6, 0x3d, 0x13, 0x85, 0xef, 0x82, //0x0000d600 .quad -9011838011655698236 + 0xfc, 0x22, 0xe7, 0xdb, 0x73, 0x4d, 0x98, 0x9a, //0x0000d608 .quad -7307005235402693892 + 0xf5, 0xda, 0x5f, 0x0d, 0x58, 0x66, 0xab, 0xa3, //0x0000d610 .quad -6653111496142234891 + 0xbb, 0xeb, 0xe0, 0xd2, 0xd0, 0x60, 0x3e, 0xc1, //0x0000d618 .quad -4522070525825979461 + 0xb3, 0xd1, 0xb7, 0x10, 0xee, 0x3f, 0x96, 0xcc, //0x0000d620 .quad -3704703351750405709 + 0xa9, 0x26, 0x99, 0x07, 0x05, 0xf9, 0x8d, 0x31, //0x0000d628 .quad 3570783879572301481 + 0x1f, 0xc6, 0xe5, 0x94, 0xe9, 0xcf, 0xbb, 0xff, //0x0000d630 .quad -19193171260619233 + 0x53, 0x70, 0x7f, 0x49, 0x46, 0x77, 0xf1, 0xfd, //0x0000d638 .quad -148206168962011053 + 0xd3, 0x9b, 0x0f, 0xfd, 0xf1, 0x61, 0xd5, 0x9f, //0x0000d640 .quad -6929524759678968877 + 0x34, 0xa6, 0xef, 0xed, 0x8b, 0xea, 0xb6, 0xfe, //0x0000d648 .quad -92628855601256908 + 0xc8, 0x82, 0x53, 0x7c, 0x6e, 0xba, 0xca, 0xc7, //0x0000d650 .quad -4050219931171323192 + 0xc1, 0x8f, 0x6b, 0xe9, 0x2e, 0xa5, 0x64, 0xfe, //0x0000d658 .quad -115786069501571135 + 0x7b, 0x63, 0x68, 0x1b, 0x0a, 0x69, 0xbd, 0xf9, //0x0000d660 .quad -451088895536766085 + 0xb1, 0x73, 0xc6, 0xa3, 0x7a, 0xce, 0xfd, 0x3d, //0x0000d668 .quad 4466953431550423985 + 0x2d, 0x3e, 0x21, 0x51, 0xa6, 0x61, 0x16, 0x9c, //0x0000d670 .quad -7199459587351560659 + 0x4f, 0x08, 0x5c, 0xa6, 0x0c, 0xa1, 0xbe, 0x06, //0x0000d678 .quad 486002885505321039 + 0xb8, 0x8d, 0x69, 0xe5, 0x0f, 0xfa, 0x1b, 0xc3, //0x0000d680 .quad -4387638465762062920 + 0x63, 0x0a, 0xf3, 0xcf, 0x4f, 0x49, 0x6e, 0x48, //0x0000d688 .quad 5219189625309039203 + 0x26, 0xf1, 0xc3, 0xde, 0x93, 0xf8, 0xe2, 0xf3, //0x0000d690 .quad -872862063775190746 + 0xfb, 0xcc, 0xef, 0xc3, 0xa3, 0xdb, 0x89, 0x5a, //0x0000d698 .quad 6523987031636299003 + 0xb7, 0x76, 0x3a, 0x6b, 0x5c, 0xdb, 0x6d, 0x98, //0x0000d6a0 .quad -7463067817500576073 + 0x1d, 0xe0, 0x75, 0x5a, 0x46, 0x29, 0x96, 0xf8, //0x0000d6a8 .quad -534194123654701027 + 0x65, 0x14, 0x09, 0x86, 0x33, 0x52, 0x89, 0xbe, //0x0000d6b0 .quad -4717148753448332187 + 0x24, 0x58, 0x13, 0xf1, 0x97, 0xb3, 0xbb, 0xf6, //0x0000d6b8 .quad -667742654568376284 + 0x7f, 0x59, 0x8b, 0x67, 0xc0, 0xa6, 0x2b, 0xee, //0x0000d6c0 .quad -1284749923383027329 + 0x2d, 0x2e, 0x58, 0xed, 0x7d, 0xa0, 0x6a, 0x74, //0x0000d6c8 .quad 8388693718644305453 + 0xef, 0x17, 0xb7, 0x40, 0x38, 0x48, 0xdb, 0x94, //0x0000d6d0 .quad -7720497729755473937 + 0xdd, 0x1c, 0x57, 0xb4, 0x4e, 0xa4, 0xc2, 0xa8, //0x0000d6d8 .quad -6286281471915778851 + 0xeb, 0xdd, 0xe4, 0x50, 0x46, 0x1a, 0x12, 0xba, //0x0000d6e0 .quad -5038936143766954517 + 0x14, 0xe4, 0x6c, 0x61, 0x62, 0x4d, 0xf3, 0x92, //0x0000d6e8 .quad -7857851839894723564 + 0x66, 0x15, 0x1e, 0xe5, 0xd7, 0xa0, 0x96, 0xe8, //0x0000d6f0 .quad -1686984161281305242 + 0x18, 0x1d, 0xc8, 0xf9, 0xba, 0x20, 0xb0, 0x77, //0x0000d6f8 .quad 8624429273841147160 + 0x60, 0xcd, 0x32, 0xef, 0x86, 0x24, 0x5e, 0x91, //0x0000d700 .quad -7971894128441897632 + 0x2f, 0x12, 0x1d, 0xdc, 0x74, 0x14, 0xce, 0x0a, //0x0000d708 .quad 778582277723329071 + 0xb8, 0x80, 0xff, 0xaa, 0xa8, 0xad, 0xb5, 0xb5, //0x0000d710 .quad -5353181642124984136 + 0xbb, 0x56, 0x24, 0x13, 0x92, 0x99, 0x81, 0x0d, //0x0000d718 .quad 973227847154161339 + 0xe6, 0x60, 0xbf, 0xd5, 0x12, 0x19, 0x23, 0xe3, //0x0000d720 .quad -2079791034228842266 + 0x6a, 0x6c, 0xed, 0x97, 0xf6, 0xff, 0xe1, 0x10, //0x0000d728 .quad 1216534808942701674 + 0x8f, 0x9c, 0x97, 0xc5, 0xab, 0xef, 0xf5, 0x8d, //0x0000d730 .quad -8217398424034108273 + 0xc2, 0x63, 0xf4, 0x1e, 0xfa, 0x3f, 0x8d, 0xca, //0x0000d738 .quad -3851351762838199358 + 0xb3, 0x83, 0xfd, 0xb6, 0x96, 0x6b, 0x73, 0xb1, //0x0000d740 .quad -5660062011615247437 + 0xb3, 0x7c, 0xb1, 0xa6, 0xf8, 0x8f, 0x30, 0xbd, //0x0000d748 .quad -4814189703547749197 + 0xa0, 0xe4, 0xbc, 0x64, 0x7c, 0x46, 0xd0, 0xdd, //0x0000d750 .quad -2463391496091671392 + 0xdf, 0xdb, 0x5d, 0xd0, 0xf6, 0xb3, 0x7c, 0xac, //0x0000d758 .quad -6017737129434686497 + 0xe4, 0x0e, 0xf6, 0xbe, 0x0d, 0x2c, 0xa2, 0x8a, //0x0000d760 .quad -8457148712698376476 + 0x6c, 0xa9, 0x3a, 0x42, 0x7a, 0xf0, 0xcd, 0x6b, //0x0000d768 .quad 7768129340171790700 + 0x9d, 0x92, 0xb3, 0x2e, 0x11, 0xb7, 0x4a, 0xad, //0x0000d770 .quad -5959749872445582691 + 0xc7, 0x53, 0xc9, 0xd2, 0x98, 0x6c, 0xc1, 0x86, //0x0000d778 .quad -8736582398494813241 + 0x44, 0x77, 0x60, 0x7a, 0xd5, 0x64, 0x9d, 0xd8, //0x0000d780 .quad -2838001322129590460 + 0xb8, 0xa8, 0x7b, 0x07, 0xbf, 0xc7, 0x71, 0xe8, //0x0000d788 .quad -1697355961263740744 + 0x8b, 0x4a, 0x7c, 0x6c, 0x05, 0x5f, 0x62, 0x87, //0x0000d790 .quad -8691279853972075893 + 0x73, 0x49, 0xad, 0x64, 0xd7, 0x1c, 0x47, 0x11, //0x0000d798 .quad 1244995533423855987 + 0x2d, 0x5d, 0x9b, 0xc7, 0xc6, 0xf6, 0x3a, 0xa9, //0x0000d7a0 .quad -6252413799037706963 + 0xd0, 0x9b, 0xd8, 0x3d, 0x0d, 0xe4, 0x98, 0xd5, //0x0000d7a8 .quad -3055441601647567920 + 0x79, 0x34, 0x82, 0x79, 0x78, 0xb4, 0x89, 0xd3, //0x0000d7b0 .quad -3203831230369745799 + 0xc4, 0xc2, 0x4e, 0x8d, 0x10, 0x1d, 0xff, 0x4a, //0x0000d7b8 .quad 5404070034795315908 + 0xcb, 0x60, 0xf1, 0x4b, 0xcb, 0x10, 0x36, 0x84, //0x0000d7c0 .quad -8919923546622172981 + 0xbb, 0x39, 0x51, 0x58, 0x2a, 0x72, 0xdf, 0xce, //0x0000d7c8 .quad -3539985255894009413 + 0xfe, 0xb8, 0xed, 0x1e, 0xfe, 0x94, 0x43, 0xa5, //0x0000d7d0 .quad -6538218414850328322 + 0x29, 0x88, 0x65, 0xee, 0xb4, 0x4e, 0x97, 0xc2, //0x0000d7d8 .quad -4424981569867511767 + 0x3e, 0x27, 0xa9, 0xa6, 0x3d, 0x7a, 0x94, 0xce, //0x0000d7e0 .quad -3561087000135522498 + 0x33, 0xea, 0xfe, 0x29, 0x62, 0x22, 0x3d, 0x73, //0x0000d7e8 .quad 8303831092947774003 + 0x87, 0xb8, 0x29, 0x88, 0x66, 0xcc, 0x1c, 0x81, //0x0000d7f0 .quad -9143208402725783417 + 0x60, 0x52, 0x3f, 0x5a, 0x7d, 0x35, 0x06, 0x08, //0x0000d7f8 .quad 578208414664970848 + 0xa8, 0x26, 0x34, 0x2a, 0x80, 0xff, 0x63, 0xa1, //0x0000d800 .quad -6817324484979841368 + 0xf8, 0x26, 0xcf, 0xb0, 0xdc, 0xc2, 0x07, 0xca, //0x0000d808 .quad -3888925500096174344 + 0x52, 0x30, 0xc1, 0x34, 0x60, 0xff, 0xbc, 0xc9, //0x0000d810 .quad -3909969587797413806 + 0xb6, 0xf0, 0x02, 0xdd, 0x93, 0xb3, 0x89, 0xfc, //0x0000d818 .quad -249470856692830026 + 0x67, 0x7c, 0xf1, 0x41, 0x38, 0x3f, 0x2c, 0xfc, //0x0000d820 .quad -275775966319379353 + 0xe3, 0xac, 0x43, 0xd4, 0x78, 0x20, 0xac, 0xbb, //0x0000d828 .quad -4923524589293425437 + 0xc0, 0xed, 0x36, 0x29, 0x83, 0xa7, 0x9b, 0x9d, //0x0000d830 .quad -7089889006590693952 + 0x0e, 0x4c, 0xaa, 0x84, 0x4b, 0x94, 0x4b, 0xd5, //0x0000d838 .quad -3077202868308390898 + 0x31, 0xa9, 0x84, 0xf3, 0x63, 0x91, 0x02, 0xc5, //0x0000d840 .quad -4250675239810979535 + 0x12, 0xdf, 0xd4, 0x65, 0x5e, 0x79, 0x9e, 0x0a, //0x0000d848 .quad 765182433041899282 + 0x7d, 0xd3, 0x65, 0xf0, 0xbc, 0x35, 0x43, 0xf6, //0x0000d850 .quad -701658031336336515 + 0xd6, 0x16, 0x4a, 0xff, 0xb5, 0x17, 0x46, 0x4d, //0x0000d858 .quad 5568164059729762006 + 0x2e, 0xa4, 0x3f, 0x16, 0x96, 0x01, 0xea, 0x99, //0x0000d860 .quad -7356065297226292178 + 0x46, 0x4e, 0x8e, 0xbf, 0xd1, 0xce, 0x4b, 0x50, //0x0000d868 .quad 5785945546544795206 + 0x39, 0x8d, 0xcf, 0x9b, 0xfb, 0x81, 0x64, 0xc0, //0x0000d870 .quad -4583395603105477319 + 0xd7, 0xe1, 0x71, 0x2f, 0x86, 0xc2, 0x5e, 0xe4, //0x0000d878 .quad -1990940103673781801 + 0x88, 0x70, 0xc3, 0x82, 0x7a, 0xa2, 0x7d, 0xf0, //0x0000d880 .quad -1117558485454458744 + 0x4d, 0x5a, 0x4e, 0xbb, 0x27, 0x73, 0x76, 0x5d, //0x0000d888 .quad 6734696907262548557 + 0x55, 0x26, 0xba, 0x91, 0x8c, 0x85, 0x4e, 0x96, //0x0000d890 .quad -7616003081050118571 + 0x70, 0xf8, 0x10, 0xd5, 0xf8, 0x07, 0x6a, 0x3a, //0x0000d898 .quad 4209185567039092848 + 0xea, 0xaf, 0x28, 0xb6, 0xef, 0x26, 0xe2, 0xbb, //0x0000d8a0 .quad -4908317832885260310 + 0x8c, 0x36, 0x55, 0x0a, 0xf7, 0x89, 0x04, 0x89, //0x0000d8a8 .quad -8573576096483297652 + 0xe5, 0xdb, 0xb2, 0xa3, 0xab, 0xb0, 0xda, 0xea, //0x0000d8b0 .quad -1523711272679187483 + 0x2f, 0x84, 0xea, 0xcc, 0x74, 0xac, 0x45, 0x2b, //0x0000d8b8 .quad 3118087934678041647 + 0x6f, 0xc9, 0x4f, 0x46, 0x6b, 0xae, 0xc8, 0x92, //0x0000d8c0 .quad -7869848573065574033 + 0x9e, 0x92, 0x12, 0x00, 0xc9, 0x8b, 0x0b, 0x3b, //0x0000d8c8 .quad 4254647968387469982 + 0xcb, 0xbb, 0xe3, 0x17, 0x06, 0xda, 0x7a, 0xb7, //0x0000d8d0 .quad -5225624697904579637 + 0x45, 0x37, 0x17, 0x40, 0xbb, 0x6e, 0xce, 0x09, //0x0000d8d8 .quad 706623942056949573 + 0xbd, 0xaa, 0xdc, 0x9d, 0x87, 0x90, 0x59, 0xe5, //0x0000d8e0 .quad -1920344853953336643 + 0x16, 0x05, 0x1d, 0x10, 0x6a, 0x0a, 0x42, 0xcc, //0x0000d8e8 .quad -3728406090856200938 + 0xb6, 0xea, 0xa9, 0xc2, 0x54, 0xfa, 0x57, 0x8f, //0x0000d8f0 .quad -8117744561361917258 + 0x2e, 0x23, 0x12, 0x4a, 0x82, 0x46, 0xa9, 0x9f, //0x0000d8f8 .quad -6941939825212513490 + 0x64, 0x65, 0x54, 0xf3, 0xe9, 0xf8, 0x2d, 0xb3, //0x0000d900 .quad -5535494683275008668 + 0xfa, 0xab, 0x96, 0xdc, 0x22, 0x98, 0x93, 0x47, //0x0000d908 .quad 5157633273766521850 + 0xbd, 0x7e, 0x29, 0x70, 0x24, 0x77, 0xf9, 0xdf, //0x0000d910 .quad -2307682335666372931 + 0xf8, 0x56, 0xbc, 0x93, 0x2b, 0x7e, 0x78, 0x59, //0x0000d918 .quad 6447041592208152312 + 0x36, 0xef, 0x19, 0xc6, 0x76, 0xea, 0xfb, 0x8b, //0x0000d920 .quad -8359830487432564938 + 0x5b, 0xb6, 0x55, 0x3c, 0xdb, 0x4e, 0xeb, 0x57, //0x0000d928 .quad 6335244004343789147 + 0x03, 0x6b, 0xa0, 0x77, 0x14, 0xe5, 0xfa, 0xae, //0x0000d930 .quad -5838102090863318269 + 0xf2, 0x23, 0x6b, 0x0b, 0x92, 0x22, 0xe6, 0xed, //0x0000d938 .quad -1304317031425039374 + 0xc4, 0x85, 0x88, 0x95, 0x59, 0x9e, 0xb9, 0xda, //0x0000d940 .quad -2685941595151759932 + 0xee, 0xec, 0x45, 0x8e, 0x36, 0xab, 0x5f, 0xe9, //0x0000d948 .quad -1630396289281299218 + 0x9b, 0x53, 0x75, 0xfd, 0xf7, 0x02, 0xb4, 0x88, //0x0000d950 .quad -8596242524610931813 + 0x15, 0xb4, 0xeb, 0x18, 0x02, 0xcb, 0xdb, 0x11, //0x0000d958 .quad 1286845328412881941 + 0x81, 0xa8, 0xd2, 0xfc, 0xb5, 0x03, 0xe1, 0xaa, //0x0000d960 .quad -6133617137336276863 + 0x1a, 0xa1, 0x26, 0x9f, 0xc2, 0xbd, 0x52, 0xd6, //0x0000d968 .quad -3003129357911285478 + 0xa2, 0x52, 0x07, 0x7c, 0xa3, 0x44, 0x99, 0xd5, //0x0000d970 .quad -3055335403242958174 + 0x60, 0x49, 0xf0, 0x46, 0x33, 0x6d, 0xe7, 0x4b, //0x0000d978 .quad 5469460339465668960 + 0xa5, 0x93, 0x84, 0x2d, 0xe6, 0xca, 0x7f, 0x85, //0x0000d980 .quad -8827113654667930715 + 0xdc, 0x2d, 0x56, 0x0c, 0x40, 0xa4, 0x70, 0x6f, //0x0000d988 .quad 8030098730593431004 + 0x8e, 0xb8, 0xe5, 0xb8, 0x9f, 0xbd, 0xdf, 0xa6, //0x0000d990 .quad -6422206049907525490 + 0x53, 0xb9, 0x6b, 0x0f, 0x50, 0xcd, 0x4c, 0xcb, //0x0000d998 .quad -3797434642040374957 + 0xb2, 0x26, 0x1f, 0xa7, 0x07, 0xad, 0x97, 0xd0, //0x0000d9a0 .quad -3416071543957018958 + 0xa8, 0xa7, 0x46, 0x13, 0xa4, 0x00, 0x20, 0x7e, //0x0000d9a8 .quad 9088264752731695016 + 0x2f, 0x78, 0x73, 0xc8, 0x24, 0xcc, 0x5e, 0x82, //0x0000d9b0 .quad -9052573742614218705 + 0xc9, 0x28, 0x0c, 0x8c, 0x66, 0x00, 0xd4, 0x8e, //0x0000d9b8 .quad -8154892584824854327 + 0x3b, 0x56, 0x90, 0xfa, 0x2d, 0x7f, 0xf6, 0xa2, //0x0000d9c0 .quad -6704031159840385477 + 0xfb, 0x32, 0x0f, 0x2f, 0x80, 0x00, 0x89, 0x72, //0x0000d9c8 .quad 8253128342678483707 + 0xca, 0x6b, 0x34, 0x79, 0xf9, 0x1e, 0xb4, 0xcb, //0x0000d9d0 .quad -3768352931373093942 + 0xba, 0xff, 0xd2, 0x3a, 0xa0, 0x40, 0x2b, 0x4f, //0x0000d9d8 .quad 5704724409920716730 + 0xbc, 0x86, 0x81, 0xd7, 0xb7, 0x26, 0xa1, 0xfe, //0x0000d9e0 .quad -98755145788979524 + 0xa9, 0xbf, 0x87, 0x49, 0xc8, 0x10, 0xf6, 0xe2, //0x0000d9e8 .quad -2092466524453879895 + 0x36, 0xf4, 0xb0, 0xe6, 0x32, 0xb8, 0x24, 0x9f, //0x0000d9f0 .quad -6979250993759194058 + 0xca, 0xd7, 0xf4, 0x2d, 0x7d, 0xca, 0xd9, 0x0d, //0x0000d9f8 .quad 998051431430019018 + 0x43, 0x31, 0x5d, 0xa0, 0x3f, 0xe6, 0xed, 0xc6, //0x0000da00 .quad -4112377723771604669 + 0xbc, 0x0d, 0x72, 0x79, 0x1c, 0x3d, 0x50, 0x91, //0x0000da08 .quad -7975807747567252036 + 0x94, 0x7d, 0x74, 0x88, 0xcf, 0x5f, 0xa9, 0xf8, //0x0000da10 .quad -528786136287117932 + 0x2b, 0x91, 0xce, 0x97, 0x63, 0x4c, 0xa4, 0x75, //0x0000da18 .quad 8476984389250486571 + 0x7c, 0xce, 0x48, 0xb5, 0xe1, 0xdb, 0x69, 0x9b, //0x0000da20 .quad -7248020362820530564 + 0xbb, 0x1a, 0xe1, 0x3e, 0xbe, 0xaf, 0x86, 0xc9, //0x0000da28 .quad -3925256793573221701 + 0x1b, 0x02, 0x9b, 0x22, 0xda, 0x52, 0x44, 0xc2, //0x0000da30 .quad -4448339435098275301 + 0x69, 0x61, 0x99, 0xce, 0xad, 0x5b, 0xe8, 0xfb, //0x0000da38 .quad -294884973539139223 + 0xa2, 0xc2, 0x41, 0xab, 0x90, 0x67, 0xd5, 0xf2, //0x0000da40 .quad -948738275445456222 + 0xc4, 0xb9, 0x3f, 0x42, 0x99, 0x72, 0xe2, 0xfa, //0x0000da48 .quad -368606216923924028 + 0xa5, 0x19, 0x09, 0x6b, 0xba, 0x60, 0xc5, 0x97, //0x0000da50 .quad -7510490449794491995 + 0x1b, 0xd4, 0x67, 0xc9, 0x9f, 0x87, 0xcd, 0xdc, //0x0000da58 .quad -2536221894791146469 + 0x0f, 0x60, 0xcb, 0x05, 0xe9, 0xb8, 0xb6, 0xbd, //0x0000da60 .quad -4776427043815727089 + 0x21, 0xc9, 0xc1, 0xbb, 0x87, 0xe9, 0x00, 0x54, //0x0000da68 .quad 6053094668365842721 + 0x13, 0x38, 0x3e, 0x47, 0x23, 0x67, 0x24, 0xed, //0x0000da70 .quad -1358847786342270957 + 0x69, 0x3b, 0xb2, 0xaa, 0xe9, 0x23, 0x01, 0x29, //0x0000da78 .quad 2954682317029915497 + 0x0b, 0xe3, 0x86, 0x0c, 0x76, 0xc0, 0x36, 0x94, //0x0000da80 .quad -7766808894105001205 + 0x22, 0x65, 0xaf, 0x0a, 0x72, 0xb6, 0xa0, 0xf9, //0x0000da88 .quad -459166561069996766 + 0xce, 0x9b, 0xa8, 0x8f, 0x93, 0x70, 0x44, 0xb9, //0x0000da90 .quad -5096825099203863602 + 0x6a, 0x3e, 0x5b, 0x8d, 0x0e, 0xe4, 0x08, 0xf8, //0x0000da98 .quad -573958201337495958 + 0xc2, 0xc2, 0x92, 0x73, 0xb8, 0x8c, 0x95, 0xe7, //0x0000daa0 .quad -1759345355577441598 + 0x05, 0x0e, 0xb2, 0x30, 0x12, 0x1d, 0x0b, 0xb6, //0x0000daa8 .quad -5329133770099257851 + 0xb9, 0xb9, 0x3b, 0x48, 0xf3, 0x77, 0xbd, 0x90, //0x0000dab0 .quad -8017119874876982855 + 0xc3, 0x48, 0x6f, 0x5e, 0x2b, 0xf2, 0xc6, 0xb1, //0x0000dab8 .quad -5636551615525730109 + 0x28, 0xa8, 0x4a, 0x1a, 0xf0, 0xd5, 0xec, 0xb4, //0x0000dac0 .quad -5409713825168840664 + 0xf4, 0x1a, 0x0b, 0x36, 0xb6, 0xae, 0x38, 0x1e, //0x0000dac8 .quad 2177682517447613172 + 0x32, 0x52, 0xdd, 0x20, 0x6c, 0x0b, 0x28, 0xe2, //0x0000dad0 .quad -2150456263033662926 + 0xb1, 0xe1, 0x8d, 0xc3, 0x63, 0xda, 0xc6, 0x25, //0x0000dad8 .quad 2722103146809516465 + 0x5f, 0x53, 0x8a, 0x94, 0x23, 0x07, 0x59, 0x8d, //0x0000dae0 .quad -8261564192037121185 + 0x0f, 0xad, 0x38, 0x5a, 0x7e, 0x48, 0x9c, 0x57, //0x0000dae8 .quad 6313000485183335695 + 0x37, 0xe8, 0xac, 0x79, 0xec, 0x48, 0xaf, 0xb0, //0x0000daf0 .quad -5715269221619013577 + 0x52, 0xd8, 0xc6, 0xf0, 0x9d, 0x5a, 0x83, 0x2d, //0x0000daf8 .quad 3279564588051781714 + 0x44, 0x22, 0x18, 0x98, 0x27, 0x1b, 0xdb, 0xdc, //0x0000db00 .quad -2532400508596379068 + 0x66, 0x8e, 0xf8, 0x6c, 0x45, 0x31, 0xe4, 0xf8, //0x0000db08 .quad -512230283362660762 + 0x6b, 0x15, 0x0f, 0xbf, 0xf8, 0xf0, 0x08, 0x8a, //0x0000db10 .quad -8500279345513818773 + 0x00, 0x59, 0x1b, 0x64, 0xcb, 0x9e, 0x8e, 0x1b, //0x0000db18 .quad 1985699082112030976 + 0xc5, 0xda, 0xd2, 0xee, 0x36, 0x2d, 0x8b, 0xac, //0x0000db20 .quad -6013663163464885563 + 0x40, 0x2f, 0x22, 0x3d, 0x7e, 0x46, 0x72, 0xe2, //0x0000db28 .quad -2129562165787349184 + 0x77, 0x91, 0x87, 0xaa, 0x84, 0xf8, 0xad, 0xd7, //0x0000db30 .quad -2905392935903719049 + 0x10, 0xbb, 0x6a, 0xcc, 0x1d, 0xd8, 0x0e, 0x5b, //0x0000db38 .quad 6561419329620589328 + 0xea, 0xba, 0x94, 0xea, 0x52, 0xbb, 0xcc, 0x86, //0x0000db40 .quad -8733399612580906262 + 0xea, 0xb4, 0xc2, 0x9f, 0x12, 0x47, 0xe9, 0x98, //0x0000db48 .quad -7428327965055601430 + 0xa5, 0xe9, 0x39, 0xa5, 0x27, 0xea, 0x7f, 0xa8, //0x0000db50 .quad -6305063497298744923 + 0x25, 0x62, 0xb3, 0x47, 0xd7, 0x98, 0x23, 0x3f, //0x0000db58 .quad 4549648098962661925 + 0x0e, 0x64, 0x88, 0x8e, 0xb1, 0xe4, 0x9f, 0xd2, //0x0000db60 .quad -3269643353196043250 + 0xae, 0x3a, 0xa0, 0x19, 0x0d, 0x7f, 0xec, 0x8e, //0x0000db68 .quad -8147997931578836306 + 0x89, 0x3e, 0x15, 0xf9, 0xee, 0xee, 0xa3, 0x83, //0x0000db70 .quad -8961056123388608887 + 0xad, 0x24, 0x04, 0x30, 0x68, 0xcf, 0x53, 0x19, //0x0000db78 .quad 1825030320404309165 + 0x2b, 0x8e, 0x5a, 0xb7, 0xaa, 0xea, 0x8c, 0xa4, //0x0000db80 .quad -6589634135808373205 + 0xd8, 0x2d, 0x05, 0x3c, 0x42, 0xc3, 0xa8, 0x5f, //0x0000db88 .quad 6892973918932774360 + 0xb6, 0x31, 0x31, 0x65, 0x55, 0x25, 0xb0, 0xcd, //0x0000db90 .quad -3625356651333078602 + 0x4e, 0x79, 0x06, 0xcb, 0x12, 0xf4, 0x92, 0x37, //0x0000db98 .quad 4004531380238580046 + 0x11, 0xbf, 0x3e, 0x5f, 0x55, 0x17, 0x8e, 0x80, //0x0000dba0 .quad -9183376934724255983 + 0xd1, 0x0b, 0xe4, 0xbe, 0x8b, 0xd8, 0xbb, 0xe2, //0x0000dba8 .quad -2108853905778275375 + 0xd6, 0x6e, 0x0e, 0xb7, 0x2a, 0x9d, 0xb1, 0xa0, //0x0000dbb0 .quad -6867535149977932074 + 0xc5, 0x0e, 0x9d, 0xae, 0xae, 0xce, 0x6a, 0x5b, //0x0000dbb8 .quad 6587304654631931589 + 0x8b, 0x0a, 0xd2, 0x64, 0x75, 0x04, 0xde, 0xc8, //0x0000dbc0 .quad -3972732919045027189 + 0x76, 0x52, 0x44, 0x5a, 0x5a, 0x82, 0x45, 0xf2, //0x0000dbc8 .quad -989241218564861322 + 0x2e, 0x8d, 0x06, 0xbe, 0x92, 0x85, 0x15, 0xfb, //0x0000dbd0 .quad -354230130378896082 + 0x13, 0x67, 0xd5, 0xf0, 0xf0, 0xe2, 0xd6, 0xee, //0x0000dbd8 .quad -1236551523206076653 + 0x3d, 0x18, 0xc4, 0xb6, 0x7b, 0x73, 0xed, 0x9c, //0x0000dbe0 .quad -7138922859127891907 + 0x6c, 0x60, 0x85, 0x96, 0xd6, 0x4d, 0x46, 0x55, //0x0000dbe8 .quad 6144684325637283948 + 0x4c, 0x1e, 0x75, 0xa4, 0x5a, 0xd0, 0x28, 0xc4, //0x0000dbf0 .quad -4311967555482476980 + 0x87, 0xb8, 0x26, 0x3c, 0x4c, 0xe1, 0x97, 0xaa, //0x0000dbf8 .quad -6154202648235558777 + 0xdf, 0x65, 0x92, 0x4d, 0x71, 0x04, 0x33, 0xf5, //0x0000dc00 .quad -778273425925708321 + 0xa9, 0x66, 0x30, 0x4b, 0x9f, 0xd9, 0x3d, 0xd5, //0x0000dc08 .quad -3081067291867060567 + 0xab, 0x7f, 0x7b, 0xd0, 0xc6, 0xe2, 0x3f, 0x99, //0x0000dc10 .quad -7403949918844649557 + 0x2a, 0x40, 0xfe, 0x8e, 0x03, 0xa8, 0x46, 0xe5, //0x0000dc18 .quad -1925667057416912854 + 0x96, 0x5f, 0x9a, 0x84, 0x78, 0xdb, 0x8f, 0xbf, //0x0000dc20 .quad -4643251380128424042 + 0x34, 0xd0, 0xbd, 0x72, 0x04, 0x52, 0x98, 0xde, //0x0000dc28 .quad -2407083821771141068 + 0x7c, 0xf7, 0xc0, 0xa5, 0x56, 0xd2, 0x73, 0xef, //0x0000dc30 .quad -1192378206733142148 + 0x41, 0x44, 0x6d, 0x8f, 0x85, 0x66, 0x3e, 0x96, //0x0000dc38 .quad -7620540795641314239 + 0xad, 0x9a, 0x98, 0x27, 0x76, 0x63, 0xa8, 0x95, //0x0000dc40 .quad -7662765406849295699 + 0xa9, 0x4a, 0xa4, 0x79, 0x13, 0x00, 0xe7, 0xdd, //0x0000dc48 .quad -2456994988062127447 + 0x59, 0xc1, 0x7e, 0xb1, 0x53, 0x7c, 0x12, 0xbb, //0x0000dc50 .quad -4966770740134231719 + 0x53, 0x5d, 0x0d, 0x58, 0x18, 0xc0, 0x60, 0x55, //0x0000dc58 .quad 6152128301777116499 + 0xaf, 0x71, 0xde, 0x9d, 0x68, 0x1b, 0xd7, 0xe9, //0x0000dc60 .quad -1596777406740401745 + 0xa7, 0xb4, 0x10, 0x6e, 0x1e, 0xf0, 0xb8, 0xaa, //0x0000dc68 .quad -6144897678060768089 + 0x0d, 0x07, 0xab, 0x62, 0x21, 0x71, 0x26, 0x92, //0x0000dc70 .quad -7915514906853832947 + 0xe9, 0x70, 0xca, 0x04, 0x13, 0x96, 0xb3, 0xca, //0x0000dc78 .quad -3840561048787980055 + 0xd1, 0xc8, 0x55, 0xbb, 0x69, 0x0d, 0xb0, 0xb6, //0x0000dc80 .quad -5282707615139903279 + 0x23, 0x0d, 0xfd, 0xc5, 0x97, 0x7b, 0x60, 0x3d, //0x0000dc88 .quad 4422670725869800739 + 0x05, 0x3b, 0x2b, 0x2a, 0xc4, 0x10, 0x5c, 0xe4, //0x0000dc90 .quad -1991698500497491195 + 0x6b, 0x50, 0x7c, 0xb7, 0x7d, 0x9a, 0xb8, 0x8c, //0x0000dc98 .quad -8306719647944912789 + 0xe3, 0x04, 0x5b, 0x9a, 0x7a, 0x8a, 0xb9, 0x8e, //0x0000dca0 .quad -8162340590452013853 + 0x43, 0xb2, 0xad, 0x92, 0x8e, 0x60, 0xf3, 0x77, //0x0000dca8 .quad 8643358275316593219 + 0x1c, 0xc6, 0xf1, 0x40, 0x19, 0xed, 0x67, 0xb2, //0x0000dcb0 .quad -5591239719637629412 + 0xd4, 0x1e, 0x59, 0x37, 0xb2, 0x38, 0xf0, 0x55, //0x0000dcb8 .quad 6192511825718353620 + 0xa3, 0x37, 0x2e, 0x91, 0x5f, 0xe8, 0x01, 0xdf, //0x0000dcc0 .quad -2377363631119648861 + 0x89, 0x66, 0x2f, 0xc5, 0xde, 0x46, 0x6c, 0x6b, //0x0000dcc8 .quad 7740639782147942025 + 0xc6, 0xe2, 0xbc, 0xba, 0x3b, 0x31, 0x61, 0x8b, //0x0000dcd0 .quad -8403381297090862394 + 0x16, 0xa0, 0x3d, 0x3b, 0x4b, 0xac, 0x23, 0x23, //0x0000dcd8 .quad 2532056854628769814 + 0x77, 0x1b, 0x6c, 0xa9, 0x8a, 0x7d, 0x39, 0xae, //0x0000dce0 .quad -5892540602936190089 + 0x1b, 0x08, 0x0d, 0x0a, 0x5e, 0x97, 0xec, 0xab, //0x0000dce8 .quad -6058300968568813541 + 0x55, 0x22, 0xc7, 0x53, 0xed, 0xdc, 0xc7, 0xd9, //0x0000dcf0 .quad -2753989735242849707 + 0x22, 0x4a, 0x90, 0x8c, 0x35, 0xbd, 0xe7, 0x96, //0x0000dcf8 .quad -7572876210711016926 + 0x75, 0x75, 0x5c, 0x54, 0x14, 0xea, 0x1c, 0x88, //0x0000dd00 .quad -8638772612167862923 + 0x55, 0x2e, 0xda, 0x77, 0x41, 0xd6, 0x50, 0x7e, //0x0000dd08 .quad 9102010423587778133 + 0xd2, 0x92, 0x73, 0x69, 0x99, 0x24, 0x24, 0xaa, //0x0000dd10 .quad -6186779746782440750 + 0xea, 0xb9, 0xd0, 0xd5, 0xd1, 0x0b, 0xe5, 0xdd, //0x0000dd18 .quad -2457545025797441046 + 0x87, 0x77, 0xd0, 0xc3, 0xbf, 0x2d, 0xad, 0xd4, //0x0000dd20 .quad -3121788665050663033 + 0x65, 0xe8, 0x44, 0x4b, 0xc6, 0x4e, 0x5e, 0x95, //0x0000dd28 .quad -7683617300674189211 + 0xb4, 0x4a, 0x62, 0xda, 0x97, 0x3c, 0xec, 0x84, //0x0000dd30 .quad -8868646943297746252 + 0x3f, 0x11, 0x0b, 0xef, 0x3b, 0xf1, 0x5a, 0xbd, //0x0000dd38 .quad -4802260812921368257 + 0x61, 0xdd, 0xfa, 0xd0, 0xbd, 0x4b, 0x27, 0xa6, //0x0000dd40 .quad -6474122660694794911 + 0x8f, 0xd5, 0xcd, 0xea, 0x8a, 0xad, 0xb1, 0xec, //0x0000dd48 .quad -1391139997724322417 + 0xba, 0x94, 0x39, 0x45, 0xad, 0x1e, 0xb1, 0xcf, //0x0000dd50 .quad -3480967307441105734 + 0xf3, 0x4a, 0x81, 0xa5, 0xed, 0x18, 0xde, 0x67, //0x0000dd58 .quad 7484447039699372787 + 0xf4, 0xfc, 0x43, 0x4b, 0x2c, 0xb3, 0xce, 0x81, //0x0000dd60 .quad -9093133594791772940 + 0xd8, 0xce, 0x70, 0x87, 0x94, 0xcf, 0xea, 0x80, //0x0000dd68 .quad -9157278655470055720 + 0x31, 0xfc, 0x14, 0x5e, 0xf7, 0x5f, 0x42, 0xa2, //0x0000dd70 .quad -6754730975062328271 + 0x8e, 0x02, 0x4d, 0xa9, 0x79, 0x83, 0x25, 0xa1, //0x0000dd78 .quad -6834912300910181746 + 0x3e, 0x3b, 0x9a, 0x35, 0xf5, 0xf7, 0xd2, 0xca, //0x0000dd80 .quad -3831727700400522434 + 0x31, 0x43, 0xa0, 0x13, 0x58, 0xe4, 0x6e, 0x09, //0x0000dd88 .quad 679731660717048625 + 0x0d, 0xca, 0x00, 0x83, 0xf2, 0xb5, 0x87, 0xfd, //0x0000dd90 .quad -177973607073265139 + 0xfd, 0x53, 0x88, 0x18, 0x6e, 0x9d, 0xca, 0x8b, //0x0000dd98 .quad -8373707460958465027 + 0x48, 0x7e, 0xe0, 0x91, 0xb7, 0xd1, 0x74, 0x9e, //0x0000dda0 .quad -7028762532061872568 + 0x7e, 0x34, 0x55, 0xcf, 0x64, 0xa2, 0x5e, 0x77, //0x0000dda8 .quad 8601490892183123070 + 0xda, 0x9d, 0x58, 0x76, 0x25, 0x06, 0x12, 0xc6, //0x0000ddb0 .quad -4174267146649952806 + 0x9e, 0x81, 0x2a, 0x03, 0xfe, 0x4a, 0x36, 0x95, //0x0000ddb8 .quad -7694880458480647778 + 0x51, 0xc5, 0xee, 0xd3, 0xae, 0x87, 0x96, 0xf7, //0x0000ddc0 .quad -606147914885053103 + 0x05, 0x22, 0xf5, 0x83, 0xbd, 0xdd, 0x83, 0x3a, //0x0000ddc8 .quad 4216457482181353989 + 0x52, 0x3b, 0x75, 0x44, 0xcd, 0x14, 0xbe, 0x9a, //0x0000ddd0 .quad -7296371474444240046 + 0x43, 0x35, 0x79, 0x72, 0x96, 0x6a, 0x92, 0xc4, //0x0000ddd8 .quad -4282243101277735613 + 0x27, 0x8a, 0x92, 0x95, 0x00, 0x9a, 0x6d, 0xc1, //0x0000dde0 .quad -4508778324627912153 + 0x94, 0x82, 0x17, 0x0f, 0x3c, 0x05, 0xb7, 0x75, //0x0000dde8 .quad 8482254178684994196 + 0xb1, 0x2c, 0xf7, 0xba, 0x80, 0x00, 0xc9, 0xf1, //0x0000ddf0 .quad -1024286887357502287 + 0x39, 0x63, 0xdd, 0x12, 0x8b, 0xc6, 0x24, 0x53, //0x0000ddf8 .quad 5991131704928854841 + 0xee, 0x7b, 0xda, 0x74, 0x50, 0xa0, 0x1d, 0x97, //0x0000de00 .quad -7557708332239520786 + 0x04, 0x5e, 0xca, 0xeb, 0x16, 0xfc, 0xf6, 0xd3, //0x0000de08 .quad -3173071712060547580 + 0xea, 0x1a, 0x11, 0x92, 0x64, 0x08, 0xe5, 0xbc, //0x0000de10 .quad -4835449396872013078 + 0x85, 0xf5, 0xbc, 0xa6, 0x1c, 0xbb, 0xf4, 0x88, //0x0000de18 .quad -8578025658503072379 + 0xa5, 0x61, 0x95, 0xb6, 0x7d, 0x4a, 0x1e, 0xec, //0x0000de20 .quad -1432625727662628443 + 0xe6, 0x32, 0x6c, 0xd0, 0xe3, 0xe9, 0x31, 0x2b, //0x0000de28 .quad 3112525982153323238 + 0x07, 0x5d, 0x1d, 0x92, 0x8e, 0xee, 0x92, 0x93, //0x0000de30 .quad -7812920107430224633 + 0xd0, 0x9f, 0x43, 0x62, 0x2e, 0x32, 0xff, 0x3a, //0x0000de38 .quad 4251171748059520976 + 0x49, 0xb4, 0xa4, 0x36, 0x32, 0xaa, 0x77, 0xb8, //0x0000de40 .quad -5154464115860392887 + 0xc3, 0x87, 0xd4, 0xfa, 0xb9, 0xfe, 0xbe, 0x09, //0x0000de48 .quad 702278666647013315 + 0x5b, 0xe1, 0x4d, 0xc4, 0xbe, 0x94, 0x95, 0xe6, //0x0000de50 .quad -1831394126398103205 + 0xb4, 0xa9, 0x89, 0x79, 0x68, 0xbe, 0x2e, 0x4c, //0x0000de58 .quad 5489534351736154548 + 0xd9, 0xac, 0xb0, 0x3a, 0xf7, 0x7c, 0x1d, 0x90, //0x0000de60 .quad -8062150356639896359 + 0x11, 0x0a, 0xf6, 0x4b, 0x01, 0x37, 0x9d, 0x0f, //0x0000de68 .quad 1125115960621402641 + 0x0f, 0xd8, 0x5c, 0x09, 0x35, 0xdc, 0x24, 0xb4, //0x0000de70 .quad -5466001927372482545 + 0x95, 0x8c, 0xf3, 0x9e, 0xc1, 0x84, 0x84, 0x53, //0x0000de78 .quad 6018080969204141205 + 0x13, 0x0e, 0xb4, 0x4b, 0x42, 0x13, 0x2e, 0xe1, //0x0000de80 .quad -2220816390788215277 + 0xba, 0x6f, 0xb0, 0x06, 0xf2, 0xa5, 0x65, 0x28, //0x0000de88 .quad 2910915193077788602 + 0xcb, 0x88, 0x50, 0x6f, 0x09, 0xcc, 0xbc, 0x8c, //0x0000de90 .quad -8305539271883716405 + 0xd4, 0x45, 0x2e, 0x44, 0xb7, 0x87, 0x3f, 0xf9, //0x0000de98 .quad -486521013540076076 + 0xfe, 0xaa, 0x24, 0xcb, 0x0b, 0xff, 0xeb, 0xaf, //0x0000dea0 .quad -5770238071427257602 + 0x49, 0xd7, 0x39, 0x15, 0xa5, 0x69, 0x8f, 0xf7, //0x0000dea8 .quad -608151266925095095 + 0xbe, 0xd5, 0xed, 0xbd, 0xce, 0xfe, 0xe6, 0xdb, //0x0000deb0 .quad -2601111570856684098 + 0x1c, 0x4d, 0x88, 0x5a, 0x0e, 0x44, 0x73, 0xb5, //0x0000deb8 .quad -5371875102083756772 + 0x97, 0xa5, 0xb4, 0x36, 0x41, 0x5f, 0x70, 0x89, //0x0000dec0 .quad -8543223759426509417 + 0x31, 0x30, 0x95, 0xf8, 0x88, 0x0a, 0x68, 0x31, //0x0000dec8 .quad 3560107088838733873 + 0xfc, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x0000ded0 .quad -6067343680855748868 + 0x3e, 0x7c, 0xba, 0x36, 0x2b, 0x0d, 0xc2, 0xfd, //0x0000ded8 .quad -161552157378970562 + 0xbc, 0x42, 0x7a, 0xe5, 0xd5, 0x94, 0xbf, 0xd6, //0x0000dee0 .quad -2972493582642298180 + 0x4d, 0x1b, 0x69, 0x04, 0x76, 0x90, 0x32, 0x3d, //0x0000dee8 .quad 4409745821703674701 + 0xb5, 0x69, 0x6c, 0xaf, 0x05, 0xbd, 0x37, 0x86, //0x0000def0 .quad -8775337516792518219 + 0x10, 0xb1, 0xc1, 0xc2, 0x49, 0x9a, 0x3f, 0xa6, //0x0000def8 .quad -6467280898289979120 + 0x23, 0x84, 0x47, 0x1b, 0x47, 0xac, 0xc5, 0xa7, //0x0000df00 .quad -6357485877563259869 + 0x54, 0x1d, 0x72, 0x33, 0xdc, 0x80, 0xcf, 0x0f, //0x0000df08 .quad 1139270913992301908 + 0x2b, 0x65, 0x19, 0xe2, 0x58, 0x17, 0xb7, 0xd1, //0x0000df10 .quad -3335171328526686933 + 0xa9, 0xa4, 0x4e, 0x40, 0x13, 0x61, 0xc3, 0xd3, //0x0000df18 .quad -3187597375937010519 + 0x3b, 0xdf, 0x4f, 0x8d, 0x97, 0x6e, 0x12, 0x83, //0x0000df20 .quad -9002011107970261189 + 0xea, 0x26, 0x31, 0x08, 0xac, 0x1c, 0x5a, 0x64, //0x0000df28 .quad 7231123676894144234 + 0x0a, 0xd7, 0xa3, 0x70, 0x3d, 0x0a, 0xd7, 0xa3, //0x0000df30 .quad -6640827866535438582 + 0xa4, 0x70, 0x3d, 0x0a, 0xd7, 0xa3, 0x70, 0x3d, //0x0000df38 .quad 4427218577690292388 + 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x0000df40 .quad -3689348814741910324 + 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x0000df48 .quad -3689348814741910323 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x0000df50 .quad -9223372036854775808 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000df58 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, //0x0000df60 .quad -6917529027641081856 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000df68 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc8, //0x0000df70 .quad -4035225266123964416 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000df78 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, //0x0000df80 .quad -432345564227567616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000df88 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x9c, //0x0000df90 .quad -7187745005283311616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000df98 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0xc3, //0x0000dfa0 .quad -4372995238176751616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000dfa8 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0xf4, //0x0000dfb0 .quad -854558029293551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000dfb8 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x96, 0x98, //0x0000dfc0 .quad -7451627795949551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000dfc8 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xbc, 0xbe, //0x0000dfd0 .quad -4702848726509551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000dfd8 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x6b, 0xee, //0x0000dfe0 .quad -1266874889709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000dfe8 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf9, 0x02, 0x95, //0x0000dff0 .quad -7709325833709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000dff8 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x40, 0xb7, 0x43, 0xba, //0x0000e000 .quad -5024971273709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e008 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x10, 0xa5, 0xd4, 0xe8, //0x0000e010 .quad -1669528073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e018 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x2a, 0xe7, 0x84, 0x91, //0x0000e020 .quad -7960984073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e028 .quad 0 + 0x00, 0x00, 0x00, 0x80, 0xf4, 0x20, 0xe6, 0xb5, //0x0000e030 .quad -5339544073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e038 .quad 0 + 0x00, 0x00, 0x00, 0xa0, 0x31, 0xa9, 0x5f, 0xe3, //0x0000e040 .quad -2062744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e048 .quad 0 + 0x00, 0x00, 0x00, 0x04, 0xbf, 0xc9, 0x1b, 0x8e, //0x0000e050 .quad -8206744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e058 .quad 0 + 0x00, 0x00, 0x00, 0xc5, 0x2e, 0xbc, 0xa2, 0xb1, //0x0000e060 .quad -5646744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e068 .quad 0 + 0x00, 0x00, 0x40, 0x76, 0x3a, 0x6b, 0x0b, 0xde, //0x0000e070 .quad -2446744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e078 .quad 0 + 0x00, 0x00, 0xe8, 0x89, 0x04, 0x23, 0xc7, 0x8a, //0x0000e080 .quad -8446744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e088 .quad 0 + 0x00, 0x00, 0x62, 0xac, 0xc5, 0xeb, 0x78, 0xad, //0x0000e090 .quad -5946744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e098 .quad 0 + 0x00, 0x80, 0x7a, 0x17, 0xb7, 0x26, 0xd7, 0xd8, //0x0000e0a0 .quad -2821744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e0a8 .quad 0 + 0x00, 0x90, 0xac, 0x6e, 0x32, 0x78, 0x86, 0x87, //0x0000e0b0 .quad -8681119073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e0b8 .quad 0 + 0x00, 0xb4, 0x57, 0x0a, 0x3f, 0x16, 0x68, 0xa9, //0x0000e0c0 .quad -6239712823709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e0c8 .quad 0 + 0x00, 0xa1, 0xed, 0xcc, 0xce, 0x1b, 0xc2, 0xd3, //0x0000e0d0 .quad -3187955011209551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e0d8 .quad 0 + 0xa0, 0x84, 0x14, 0x40, 0x61, 0x51, 0x59, 0x84, //0x0000e0e0 .quad -8910000909647051616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e0e8 .quad 0 + 0xc8, 0xa5, 0x19, 0x90, 0xb9, 0xa5, 0x6f, 0xa5, //0x0000e0f0 .quad -6525815118631426616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e0f8 .quad 0 + 0x3a, 0x0f, 0x20, 0xf4, 0x27, 0x8f, 0xcb, 0xce, //0x0000e100 .quad -3545582879861895366 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e108 .quad 0 + 0x84, 0x09, 0x94, 0xf8, 0x78, 0x39, 0x3f, 0x81, //0x0000e110 .quad -9133518327554766460 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, //0x0000e118 .quad 4611686018427387904 + 0xe5, 0x0b, 0xb9, 0x36, 0xd7, 0x07, 0x8f, 0xa1, //0x0000e120 .quad -6805211891016070171 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, //0x0000e128 .quad 5764607523034234880 + 0xde, 0x4e, 0x67, 0x04, 0xcd, 0xc9, 0xf2, 0xc9, //0x0000e130 .quad -3894828845342699810 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa4, //0x0000e138 .quad -6629298651489370112 + 0x96, 0x22, 0x81, 0x45, 0x40, 0x7c, 0x6f, 0xfc, //0x0000e140 .quad -256850038250986858 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4d, //0x0000e148 .quad 5548434740920451072 + 0x9d, 0xb5, 0x70, 0x2b, 0xa8, 0xad, 0xc5, 0x9d, //0x0000e150 .quad -7078060301547948643 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xf0, //0x0000e158 .quad -1143914305352105984 + 0x05, 0xe3, 0x4c, 0x36, 0x12, 0x19, 0x37, 0xc5, //0x0000e160 .quad -4235889358507547899 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x6c, //0x0000e168 .quad 7793479155164643328 + 0xc6, 0x1b, 0xe0, 0xc3, 0x56, 0xdf, 0x84, 0xf6, //0x0000e170 .quad -683175679707046970 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0xc7, //0x0000e178 .quad -4093209111326359552 + 0x5c, 0x11, 0x6c, 0x3a, 0x96, 0x0b, 0x13, 0x9a, //0x0000e180 .quad -7344513827457986212 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7f, 0x3c, //0x0000e188 .quad 4359273333062107136 + 0xb3, 0x15, 0x07, 0xc9, 0x7b, 0xce, 0x97, 0xc0, //0x0000e190 .quad -4568956265895094861 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x9f, 0x4b, //0x0000e198 .quad 5449091666327633920 + 0x20, 0xdb, 0x48, 0xbb, 0x1a, 0xc2, 0xbd, 0xf0, //0x0000e1a0 .quad -1099509313941480672 + 0x00, 0x00, 0x00, 0x00, 0x00, 0xd4, 0x86, 0x1e, //0x0000e1a8 .quad 2199678564482154496 + 0xf4, 0x88, 0x0d, 0xb5, 0x50, 0x99, 0x76, 0x96, //0x0000e1b0 .quad -7604722348854507276 + 0x00, 0x00, 0x00, 0x00, 0x80, 0x44, 0x14, 0x13, //0x0000e1b8 .quad 1374799102801346560 + 0x31, 0xeb, 0x50, 0xe2, 0xa4, 0x3f, 0x14, 0xbc, //0x0000e1c0 .quad -4894216917640746191 + 0x00, 0x00, 0x00, 0x00, 0xa0, 0x55, 0xd9, 0x17, //0x0000e1c8 .quad 1718498878501683200 + 0xfd, 0x25, 0xe5, 0x1a, 0x8e, 0x4f, 0x19, 0xeb, //0x0000e1d0 .quad -1506085128623544835 + 0x00, 0x00, 0x00, 0x00, 0x08, 0xab, 0xcf, 0x5d, //0x0000e1d8 .quad 6759809616554491904 + 0xbe, 0x37, 0xcf, 0xd0, 0xb8, 0xd1, 0xef, 0x92, //0x0000e1e0 .quad -7858832233030797378 + 0x00, 0x00, 0x00, 0x00, 0xe5, 0xca, 0xa1, 0x5a, //0x0000e1e8 .quad 6530724019560251392 + 0xad, 0x05, 0x03, 0x05, 0x27, 0xc6, 0xab, 0xb7, //0x0000e1f0 .quad -5211854272861108819 + 0x00, 0x00, 0x00, 0x40, 0x9e, 0x3d, 0x4a, 0xf1, //0x0000e1f8 .quad -1059967012404461568 + 0x19, 0xc7, 0x43, 0xc6, 0xb0, 0xb7, 0x96, 0xe5, //0x0000e200 .quad -1903131822648998119 + 0x00, 0x00, 0x00, 0xd0, 0x05, 0xcd, 0x9c, 0x6d, //0x0000e208 .quad 7898413271349198848 + 0x6f, 0x5c, 0xea, 0x7b, 0xce, 0x32, 0x7e, 0x8f, //0x0000e210 .quad -8106986416796705681 + 0x00, 0x00, 0x00, 0xa2, 0x23, 0x00, 0x82, 0xe4, //0x0000e218 .quad -1981020733047832576 + 0x8b, 0xf3, 0xe4, 0x1a, 0x82, 0xbf, 0x5d, 0xb3, //0x0000e220 .quad -5522047002568494197 + 0x00, 0x00, 0x80, 0x8a, 0x2c, 0x80, 0xa2, 0xdd, //0x0000e228 .quad -2476275916309790720 + 0x6e, 0x30, 0x9e, 0xa1, 0x62, 0x2f, 0x35, 0xe0, //0x0000e230 .quad -2290872734783229842 + 0x00, 0x00, 0x20, 0xad, 0x37, 0x20, 0x0b, 0xd5, //0x0000e238 .quad -3095344895387238400 + 0x45, 0xde, 0x02, 0xa5, 0x9d, 0x3d, 0x21, 0x8c, //0x0000e240 .quad -8349324486880600507 + 0x00, 0x00, 0x34, 0xcc, 0x22, 0xf4, 0x26, 0x45, //0x0000e248 .quad 4982938468024057856 + 0xd6, 0x95, 0x43, 0x0e, 0x05, 0x8d, 0x29, 0xaf, //0x0000e250 .quad -5824969590173362730 + 0x00, 0x00, 0x41, 0x7f, 0x2b, 0xb1, 0x70, 0x96, //0x0000e258 .quad -7606384970252091392 + 0x4c, 0x7b, 0xd4, 0x51, 0x46, 0xf0, 0xf3, 0xda, //0x0000e260 .quad -2669525969289315508 + 0x00, 0x40, 0x11, 0x5f, 0x76, 0xdd, 0x0c, 0x3c, //0x0000e268 .quad 4327076842467049472 + 0x0f, 0xcd, 0x24, 0xf3, 0x2b, 0x76, 0xd8, 0x88, //0x0000e270 .quad -8585982758446904049 + 0x00, 0xc8, 0x6a, 0xfb, 0x69, 0x0a, 0x88, 0xa5, //0x0000e278 .quad -6518949010312869888 + 0x53, 0x00, 0xee, 0xef, 0xb6, 0x93, 0x0e, 0xab, //0x0000e280 .quad -6120792429631242157 + 0x00, 0x7a, 0x45, 0x7a, 0x04, 0x0d, 0xea, 0x8e, //0x0000e288 .quad -8148686262891087360 + 0x68, 0x80, 0xe9, 0xab, 0xa4, 0x38, 0xd2, 0xd5, //0x0000e290 .quad -3039304518611664792 + 0x80, 0xd8, 0xd6, 0x98, 0x45, 0x90, 0xa4, 0x72, //0x0000e298 .quad 8260886245095692416 + 0x41, 0xf0, 0x71, 0xeb, 0x66, 0x63, 0xa3, 0x85, //0x0000e2a0 .quad -8817094351773372351 + 0x50, 0x47, 0x86, 0x7f, 0x2b, 0xda, 0xa6, 0x47, //0x0000e2a8 .quad 5163053903184807760 + 0x51, 0x6c, 0x4e, 0xa6, 0x40, 0x3c, 0x0c, 0xa7, //0x0000e2b0 .quad -6409681921289327535 + 0x24, 0xd9, 0x67, 0x5f, 0xb6, 0x90, 0x90, 0x99, //0x0000e2b8 .quad -7381240676301154012 + 0x65, 0x07, 0xe2, 0xcf, 0x50, 0x4b, 0xcf, 0xd0, //0x0000e2c0 .quad -3400416383184271515 + 0x6d, 0xcf, 0x41, 0xf7, 0xe3, 0xb4, 0xf4, 0xff, //0x0000e2c8 .quad -3178808521666707 + 0x9f, 0x44, 0xed, 0x81, 0x12, 0x8f, 0x81, 0x82, //0x0000e2d0 .quad -9042789267131251553 + 0xa5, 0x21, 0x89, 0x7a, 0x0e, 0xf1, 0xf8, 0xbf, //0x0000e2d8 .quad -4613672773753429595 + 0xc7, 0x95, 0x68, 0x22, 0xd7, 0xf2, 0x21, 0xa3, //0x0000e2e0 .quad -6691800565486676537 + 0x0e, 0x6a, 0x2b, 0x19, 0x52, 0x2d, 0xf7, 0xaf, //0x0000e2e8 .quad -5767090967191786994 + 0x39, 0xbb, 0x02, 0xeb, 0x8c, 0x6f, 0xea, 0xcb, //0x0000e2f0 .quad -3753064688430957767 + 0x91, 0x44, 0x76, 0x9f, 0xa6, 0xf8, 0xf4, 0x9b, //0x0000e2f8 .quad -7208863708989733743 + 0x08, 0x6a, 0xc3, 0x25, 0x70, 0x0b, 0xe5, 0xfe, //0x0000e300 .quad -79644842111309304 + 0xb5, 0xd5, 0x53, 0x47, 0xd0, 0x36, 0xf2, 0x02, //0x0000e308 .quad 212292400617608629 + 0x45, 0x22, 0x9a, 0x17, 0x26, 0x27, 0x4f, 0x9f, //0x0000e310 .quad -6967307053960650171 + 0x91, 0x65, 0x94, 0x2c, 0x42, 0x62, 0xd7, 0x01, //0x0000e318 .quad 132682750386005393 + 0xd6, 0xaa, 0x80, 0x9d, 0xef, 0xf0, 0x22, 0xc7, //0x0000e320 .quad -4097447799023424810 + 0xf6, 0x7e, 0xb9, 0xb7, 0xd2, 0x3a, 0x4d, 0x42, //0x0000e328 .quad 4777539456409894646 + 0x8b, 0xd5, 0xe0, 0x84, 0x2b, 0xad, 0xeb, 0xf8, //0x0000e330 .quad -510123730351893109 + 0xb3, 0xde, 0xa7, 0x65, 0x87, 0x89, 0xe0, 0xd2, //0x0000e338 .quad -3251447716342407501 + 0x77, 0x85, 0x0c, 0x33, 0x3b, 0x4c, 0x93, 0x9b, //0x0000e340 .quad -7236356359111015049 + 0x30, 0xeb, 0x88, 0x9f, 0xf4, 0x55, 0xcc, 0x63, //0x0000e348 .quad 7191217214140771120 + 0xd5, 0xa6, 0xcf, 0xff, 0x49, 0x1f, 0x78, 0xc2, //0x0000e350 .quad -4433759430461380907 + 0xfc, 0x25, 0x6b, 0xc7, 0x71, 0x6b, 0xbf, 0x3c, //0x0000e358 .quad 4377335499248575996 + 0x8a, 0x90, 0xc3, 0x7f, 0x1c, 0x27, 0x16, 0xf3, //0x0000e360 .quad -930513269649338230 + 0x7b, 0xef, 0x45, 0x39, 0x4e, 0x46, 0xef, 0x8b, //0x0000e368 .quad -8363388681221443717 + 0x56, 0x3a, 0xda, 0xcf, 0x71, 0xd8, 0xed, 0x97, //0x0000e370 .quad -7499099821171918250 + 0xad, 0xb5, 0xcb, 0xe3, 0xf0, 0x8b, 0x75, 0x97, //0x0000e378 .quad -7532960934977096275 + 0xec, 0xc8, 0xd0, 0x43, 0x8e, 0x4e, 0xe9, 0xbd, //0x0000e380 .quad -4762188758037509908 + 0x18, 0xa3, 0xbe, 0x1c, 0xed, 0xee, 0x52, 0x3d, //0x0000e388 .quad 4418856886560793368 + 0x27, 0xfb, 0xc4, 0xd4, 0x31, 0xa2, 0x63, 0xed, //0x0000e390 .quad -1341049929119499481 + 0xde, 0x4b, 0xee, 0x63, 0xa8, 0xaa, 0xa7, 0x4c, //0x0000e398 .quad 5523571108200991710 + 0xf8, 0x1c, 0xfb, 0x24, 0x5f, 0x45, 0x5e, 0x94, //0x0000e3a0 .quad -7755685233340769032 + 0x6b, 0xef, 0x74, 0x3e, 0xa9, 0xca, 0xe8, 0x8f, //0x0000e3a8 .quad -8076983103442849941 + 0x36, 0xe4, 0x39, 0xee, 0xb6, 0xd6, 0x75, 0xb9, //0x0000e3b0 .quad -5082920523248573386 + 0x45, 0x2b, 0x12, 0x8e, 0x53, 0xfd, 0xe2, 0xb3, //0x0000e3b8 .quad -5484542860876174523 + 0x44, 0x5d, 0xc8, 0xa9, 0x64, 0x4c, 0xd3, 0xe7, //0x0000e3c0 .quad -1741964635633328828 + 0x17, 0xb6, 0x96, 0x71, 0xa8, 0xbc, 0xdb, 0x60, //0x0000e3c8 .quad 6979379479186945559 + 0x4a, 0x3a, 0x1d, 0xea, 0xbe, 0x0f, 0xe4, 0x90, //0x0000e3d0 .quad -8006256924911912374 + 0xce, 0x31, 0xfe, 0x46, 0xe9, 0x55, 0x89, 0xbc, //0x0000e3d8 .quad -4861259862362934834 + 0xdd, 0x88, 0xa4, 0xa4, 0xae, 0x13, 0x1d, 0xb5, //0x0000e3e0 .quad -5396135137712502563 + 0x42, 0xbe, 0xbd, 0x98, 0x63, 0xab, 0xab, 0x6b, //0x0000e3e8 .quad 7758483227328495170 + 0x14, 0xab, 0xcd, 0x4d, 0x9a, 0x58, 0x64, 0xe2, //0x0000e3f0 .quad -2133482903713240300 + 0xd2, 0x2d, 0xed, 0x7e, 0x3c, 0x96, 0x96, 0xc6, //0x0000e3f8 .quad -4136954021121544750 + 0xec, 0x8a, 0xa0, 0x70, 0x60, 0xb7, 0x7e, 0x8d, //0x0000e400 .quad -8250955842461857044 + 0xa3, 0x3c, 0x54, 0xcf, 0xe5, 0x1d, 0x1e, 0xfc, //0x0000e408 .quad -279753253987271517 + 0xa8, 0xad, 0xc8, 0x8c, 0x38, 0x65, 0xde, 0xb0, //0x0000e410 .quad -5702008784649933400 + 0xcc, 0x4b, 0x29, 0x43, 0x5f, 0xa5, 0x25, 0x3b, //0x0000e418 .quad 4261994450943298508 + 0x12, 0xd9, 0xfa, 0xaf, 0x86, 0xfe, 0x15, 0xdd, //0x0000e420 .quad -2515824962385028846 + 0xbf, 0x9e, 0xf3, 0x13, 0xb7, 0x0e, 0xef, 0x49, //0x0000e428 .quad 5327493063679123135 + 0xab, 0xc7, 0xfc, 0x2d, 0x14, 0xbf, 0x2d, 0x8a, //0x0000e430 .quad -8489919629131724885 + 0x38, 0x43, 0x78, 0x6c, 0x32, 0x69, 0x35, 0x6e, //0x0000e438 .quad 7941369183226839864 + 0x96, 0xf9, 0x7b, 0x39, 0xd9, 0x2e, 0xb9, 0xac, //0x0000e440 .quad -6000713517987268202 + 0x05, 0x54, 0x96, 0x07, 0x7f, 0xc3, 0xc2, 0x49, //0x0000e448 .quad 5315025460606161925 + 0xfb, 0xf7, 0xda, 0x87, 0x8f, 0x7a, 0xe7, 0xd7, //0x0000e450 .quad -2889205879056697349 + 0x07, 0xe9, 0x7b, 0xc9, 0x5e, 0x74, 0x33, 0xdc, //0x0000e458 .quad -2579590211097073401 + 0xfd, 0xda, 0xe8, 0xb4, 0x99, 0xac, 0xf0, 0x86, //0x0000e460 .quad -8723282702051517699 + 0xa4, 0x71, 0xed, 0x3d, 0xbb, 0x28, 0xa0, 0x69, //0x0000e468 .quad 7611128154919104932 + 0xbc, 0x11, 0x23, 0x22, 0xc0, 0xd7, 0xac, 0xa8, //0x0000e470 .quad -6292417359137009220 + 0x0d, 0xce, 0x68, 0x0d, 0xea, 0x32, 0x08, 0xc4, //0x0000e478 .quad -4321147861633282547 + 0x2b, 0xd6, 0xab, 0x2a, 0xb0, 0x0d, 0xd8, 0xd2, //0x0000e480 .quad -3253835680493873621 + 0x91, 0x01, 0xc3, 0x90, 0xa4, 0x3f, 0x0a, 0xf5, //0x0000e488 .quad -789748808614215279 + 0xdb, 0x65, 0xab, 0x1a, 0x8e, 0x08, 0xc7, 0x83, //0x0000e490 .quad -8951176327949752869 + 0xfb, 0xe0, 0x79, 0xda, 0xc6, 0x67, 0x26, 0x79, //0x0000e498 .quad 8729779031470891259 + 0x52, 0x3f, 0x56, 0xa1, 0xb1, 0xca, 0xb8, 0xa4, //0x0000e4a0 .quad -6577284391509803182 + 0x39, 0x59, 0x18, 0x91, 0xb8, 0x01, 0x70, 0x57, //0x0000e4a8 .quad 6300537770911226169 + 0x26, 0xcf, 0xab, 0x09, 0x5e, 0xfd, 0xe6, 0xcd, //0x0000e4b0 .quad -3609919470959866074 + 0x87, 0x6f, 0x5e, 0xb5, 0x26, 0x02, 0x4c, 0xed, //0x0000e4b8 .quad -1347699823215743097 + 0x78, 0x61, 0x0b, 0xc6, 0x5a, 0x5e, 0xb0, 0x80, //0x0000e4c0 .quad -9173728696990998152 + 0xb5, 0x05, 0x5b, 0x31, 0x58, 0x81, 0x4f, 0x54, //0x0000e4c8 .quad 6075216638131242421 + 0xd6, 0x39, 0x8e, 0x77, 0xf1, 0x75, 0xdc, 0xa0, //0x0000e4d0 .quad -6855474852811359786 + 0x22, 0xc7, 0xb1, 0x3d, 0xae, 0x61, 0x63, 0x69, //0x0000e4d8 .quad 7594020797664053026 + 0x4c, 0xc8, 0x71, 0xd5, 0x6d, 0x93, 0x13, 0xc9, //0x0000e4e0 .quad -3957657547586811828 + 0xea, 0x38, 0x1e, 0xcd, 0x19, 0x3a, 0xbc, 0x03, //0x0000e4e8 .quad 269153960225290474 + 0x5f, 0x3a, 0xce, 0x4a, 0x49, 0x78, 0x58, 0xfb, //0x0000e4f0 .quad -335385916056126881 + 0x24, 0xc7, 0x65, 0x40, 0xa0, 0x48, 0xab, 0x04, //0x0000e4f8 .quad 336442450281613092 + 0x7b, 0xe4, 0xc0, 0xce, 0x2d, 0x4b, 0x17, 0x9d, //0x0000e500 .quad -7127145225176161157 + 0x77, 0x9c, 0x3f, 0x28, 0x64, 0x0d, 0xeb, 0x62, //0x0000e508 .quad 7127805559067090039 + 0x9a, 0x1d, 0x71, 0x42, 0xf9, 0x1d, 0x5d, 0xc4, //0x0000e510 .quad -4297245513042813542 + 0x95, 0x83, 0x4f, 0x32, 0xbd, 0xd0, 0xa5, 0x3b, //0x0000e518 .quad 4298070930406474645 + 0x00, 0x65, 0x0d, 0x93, 0x77, 0x65, 0x74, 0xf5, //0x0000e520 .quad -759870872876129024 + 0x7a, 0x64, 0xe3, 0x7e, 0xec, 0x44, 0x8f, 0xca, //0x0000e528 .quad -3850783373846682502 + 0x20, 0x5f, 0xe8, 0xbb, 0x6a, 0xbf, 0x68, 0x99, //0x0000e530 .quad -7392448323188662496 + 0xcc, 0x1e, 0x4e, 0xcf, 0x13, 0x8b, 0x99, 0x7e, //0x0000e538 .quad 9122475437414293196 + 0xe8, 0x76, 0xe2, 0x6a, 0x45, 0xef, 0xc2, 0xbf, //0x0000e540 .quad -4628874385558440216 + 0x7f, 0xa6, 0x21, 0xc3, 0xd8, 0xed, 0x3f, 0x9e, //0x0000e548 .quad -7043649776941685121 + 0xa2, 0x14, 0x9b, 0xc5, 0x16, 0xab, 0xb3, 0xef, //0x0000e550 .quad -1174406963520662366 + 0x1f, 0x10, 0xea, 0xf3, 0x4e, 0xe9, 0xcf, 0xc5, //0x0000e558 .quad -4192876202749718497 + 0xe5, 0xec, 0x80, 0x3b, 0xee, 0x4a, 0xd0, 0x95, //0x0000e560 .quad -7651533379841495835 + 0x13, 0x4a, 0x72, 0x58, 0xd1, 0xf1, 0xa1, 0xbb, //0x0000e568 .quad -4926390635932268013 + 0x1f, 0x28, 0x61, 0xca, 0xa9, 0x5d, 0x44, 0xbb, //0x0000e570 .quad -4952730706374481889 + 0x98, 0xdc, 0x8e, 0xae, 0x45, 0x6e, 0x8a, 0x2a, //0x0000e578 .quad 3065383741939440792 + 0x26, 0x72, 0xf9, 0x3c, 0x14, 0x75, 0x15, 0xea, //0x0000e580 .quad -1579227364540714458 + 0xbe, 0x93, 0x32, 0x1a, 0xd7, 0x09, 0x2d, 0xf5, //0x0000e588 .quad -779956341003086914 + 0x58, 0xe7, 0x1b, 0xa6, 0x2c, 0x69, 0x4d, 0x92, //0x0000e590 .quad -7904546130479028392 + 0x57, 0x9c, 0x5f, 0x70, 0x26, 0x26, 0x3c, 0x59, //0x0000e598 .quad 6430056314514152535 + 0x2e, 0xe1, 0xa2, 0xcf, 0x77, 0xc3, 0xe0, 0xb6, //0x0000e5a0 .quad -5268996644671397586 + 0x6d, 0x83, 0x77, 0x0c, 0xb0, 0x2f, 0x8b, 0x6f, //0x0000e5a8 .quad 8037570393142690669 + 0x7a, 0x99, 0x8b, 0xc3, 0x55, 0xf4, 0x98, 0xe4, //0x0000e5b0 .quad -1974559787411859078 + 0x48, 0x64, 0x95, 0x0f, 0x9c, 0xfb, 0x6d, 0x0b, //0x0000e5b8 .quad 823590954573587528 + 0xec, 0x3f, 0x37, 0x9a, 0xb5, 0x98, 0xdf, 0x8e, //0x0000e5c0 .quad -8151628894773493780 + 0xad, 0x5e, 0xbd, 0x89, 0x41, 0xbd, 0x24, 0x47, //0x0000e5c8 .quad 5126430365035880109 + 0xe7, 0x0f, 0xc5, 0x00, 0xe3, 0x7e, 0x97, 0xb2, //0x0000e5d0 .quad -5577850100039479321 + 0x58, 0xb6, 0x2c, 0xec, 0x91, 0xec, 0xed, 0x58, //0x0000e5d8 .quad 6408037956294850136 + 0xe1, 0x53, 0xf6, 0xc0, 0x9b, 0x5e, 0x3d, 0xdf, //0x0000e5e0 .quad -2360626606621961247 + 0xee, 0xe3, 0x37, 0x67, 0xb6, 0x67, 0x29, 0x2f, //0x0000e5e8 .quad 3398361426941174766 + 0x6c, 0xf4, 0x99, 0x58, 0x21, 0x5b, 0x86, 0x8b, //0x0000e5f0 .quad -8392920656779807636 + 0x75, 0xee, 0x82, 0x00, 0xd2, 0xe0, 0x79, 0xbd, //0x0000e5f8 .quad -4793553135802847627 + 0x87, 0x71, 0xc0, 0xae, 0xe9, 0xf1, 0x67, 0xae, //0x0000e600 .quad -5879464802547371641 + 0x12, 0xaa, 0xa3, 0x80, 0x06, 0x59, 0xd8, 0xec, //0x0000e608 .quad -1380255401326171630 + 0xe9, 0x8d, 0x70, 0x1a, 0x64, 0xee, 0x01, 0xda, //0x0000e610 .quad -2737644984756826647 + 0x96, 0x94, 0xcc, 0x20, 0x48, 0x6f, 0x0e, 0xe8, //0x0000e618 .quad -1725319251657714538 + 0xb2, 0x58, 0x86, 0x90, 0xfe, 0x34, 0x41, 0x88, //0x0000e620 .quad -8628557143114098510 + 0xde, 0xdc, 0x7f, 0x14, 0x8d, 0x05, 0x09, 0x31, //0x0000e628 .quad 3533361486141316318 + 0xde, 0xee, 0xa7, 0x34, 0x3e, 0x82, 0x51, 0xaa, //0x0000e630 .quad -6174010410465235234 + 0x16, 0xd4, 0x9f, 0x59, 0xf0, 0x46, 0x4b, 0xbd, //0x0000e638 .quad -4806670179178130410 + 0x96, 0xea, 0xd1, 0xc1, 0xcd, 0xe2, 0xe5, 0xd4, //0x0000e640 .quad -3105826994654156138 + 0x1b, 0xc9, 0x07, 0x70, 0xac, 0x18, 0x9e, 0x6c, //0x0000e648 .quad 7826720331309500699 + 0x9e, 0x32, 0x23, 0x99, 0xc0, 0xad, 0x0f, 0x85, //0x0000e650 .quad -8858670899299929442 + 0xb1, 0xdd, 0x04, 0xc6, 0x6b, 0xcf, 0xe2, 0x03, //0x0000e658 .quad 280014188641050033 + 0x45, 0xff, 0x6b, 0xbf, 0x30, 0x99, 0x53, 0xa6, //0x0000e660 .quad -6461652605697523899 + 0x1d, 0x15, 0x86, 0xb7, 0x46, 0x83, 0xdb, 0x84, //0x0000e668 .quad -8873354301053463267 + 0x16, 0xff, 0x46, 0xef, 0x7c, 0x7f, 0xe8, 0xcf, //0x0000e670 .quad -3465379738694516970 + 0x64, 0x9a, 0x67, 0x65, 0x18, 0x64, 0x12, 0xe6, //0x0000e678 .quad -1868320839462053276 + 0x6e, 0x5f, 0x8c, 0x15, 0xae, 0x4f, 0xf1, 0x81, //0x0000e680 .quad -9083391364325154962 + 0x7f, 0xc0, 0x60, 0x3f, 0x8f, 0x7e, 0xcb, 0x4f, //0x0000e688 .quad 5749828502977298559 + 0x49, 0x77, 0xef, 0x9a, 0x99, 0xa3, 0x6d, 0xa2, //0x0000e690 .quad -6742553186979055799 + 0x9e, 0xf0, 0x38, 0x0f, 0x33, 0x5e, 0xbe, 0xe3, //0x0000e698 .quad -2036086408133152610 + 0x1c, 0x55, 0xab, 0x01, 0x80, 0x0c, 0x09, 0xcb, //0x0000e6a0 .quad -3816505465296431844 + 0xc6, 0x2c, 0x07, 0xd3, 0xbf, 0xf5, 0xad, 0x5c, //0x0000e6a8 .quad 6678264026688335046 + 0x63, 0x2a, 0x16, 0x02, 0xa0, 0x4f, 0xcb, 0xfd, //0x0000e6b0 .quad -158945813193151901 + 0xf7, 0xf7, 0xc8, 0xc7, 0x2f, 0x73, 0xd9, 0x73, //0x0000e6b8 .quad 8347830033360418807 + 0x7e, 0xda, 0x4d, 0x01, 0xc4, 0x11, 0x9f, 0x9e, //0x0000e6c0 .quad -7016870160886801794 + 0xfb, 0x9a, 0xdd, 0xdc, 0xfd, 0xe7, 0x67, 0x28, //0x0000e6c8 .quad 2911550761636567803 + 0x1d, 0x51, 0xa1, 0x01, 0x35, 0xd6, 0x46, 0xc6, //0x0000e6d0 .quad -4159401682681114339 + 0xb9, 0x01, 0x15, 0x54, 0xfd, 0xe1, 0x81, 0xb2, //0x0000e6d8 .quad -5583933584809066055 + 0x65, 0xa5, 0x09, 0x42, 0xc2, 0x8b, 0xd8, 0xf7, //0x0000e6e0 .quad -587566084924005019 + 0x27, 0x42, 0x1a, 0xa9, 0x7c, 0x5a, 0x22, 0x1f, //0x0000e6e8 .quad 2243455055843443239 + 0x5f, 0x07, 0x46, 0x69, 0x59, 0x57, 0xe7, 0x9a, //0x0000e6f0 .quad -7284757830718584993 + 0x59, 0x69, 0xb0, 0xe9, 0x8d, 0x78, 0x75, 0x33, //0x0000e6f8 .quad 3708002419115845977 + 0x37, 0x89, 0x97, 0xc3, 0x2f, 0x2d, 0xa1, 0xc1, //0x0000e700 .quad -4494261269970843337 + 0xaf, 0x83, 0x1c, 0x64, 0xb1, 0xd6, 0x52, 0x00, //0x0000e708 .quad 23317005467419567 + 0x84, 0x6b, 0x7d, 0xb4, 0x7b, 0x78, 0x09, 0xf2, //0x0000e710 .quad -1006140569036166268 + 0x9b, 0xa4, 0x23, 0xbd, 0x5d, 0x8c, 0x67, 0xc0, //0x0000e718 .quad -4582539761593113445 + 0x32, 0x63, 0xce, 0x50, 0x4d, 0xeb, 0x45, 0x97, //0x0000e720 .quad -7546366883288685774 + 0xe1, 0x46, 0x36, 0x96, 0xba, 0xb7, 0x40, 0xf8, //0x0000e728 .quad -558244341782001951 + 0xff, 0xfb, 0x01, 0xa5, 0x20, 0x66, 0x17, 0xbd, //0x0000e730 .quad -4821272585683469313 + 0x99, 0xd8, 0xc3, 0x3b, 0xa9, 0xe5, 0x50, 0xb6, //0x0000e738 .quad -5309491445654890343 + 0xff, 0x7a, 0x42, 0xce, 0xa8, 0x3f, 0x5d, 0xec, //0x0000e740 .quad -1414904713676948737 + 0xbf, 0xce, 0xb4, 0x8a, 0x13, 0x1f, 0xe5, 0xa3, //0x0000e748 .quad -6636864307068612929 + 0xdf, 0x8c, 0xe9, 0x80, 0xc9, 0x47, 0xba, 0x93, //0x0000e750 .quad -7801844473689174817 + 0x38, 0x01, 0xb1, 0x36, 0x6c, 0x33, 0x6f, 0xc6, //0x0000e758 .quad -4148040191917883080 + 0x17, 0xf0, 0x23, 0xe1, 0xbb, 0xd9, 0xa8, 0xb8, //0x0000e760 .quad -5140619573684080617 + 0x85, 0x41, 0x5d, 0x44, 0x47, 0x00, 0x0b, 0xb8, //0x0000e768 .quad -5185050239897353851 + 0x1d, 0xec, 0x6c, 0xd9, 0x2a, 0x10, 0xd3, 0xe6, //0x0000e770 .quad -1814088448677712867 + 0xe6, 0x91, 0x74, 0x15, 0x59, 0xc0, 0x0d, 0xa6, //0x0000e778 .quad -6481312799871692314 + 0x92, 0x13, 0xe4, 0xc7, 0x1a, 0xea, 0x43, 0x90, //0x0000e780 .quad -8051334308064652398 + 0x30, 0xdb, 0x68, 0xad, 0x37, 0x98, 0xc8, 0x87, //0x0000e788 .quad -8662506518347195600 + 0x77, 0x18, 0xdd, 0x79, 0xa1, 0xe4, 0x54, 0xb4, //0x0000e790 .quad -5452481866653427593 + 0xfc, 0x11, 0xc3, 0x98, 0x45, 0xbe, 0xba, 0x29, //0x0000e798 .quad 3006924907348169212 + 0x94, 0x5e, 0x54, 0xd8, 0xc9, 0x1d, 0x6a, 0xe1, //0x0000e7a0 .quad -2203916314889396588 + 0x7b, 0xd6, 0xf3, 0xfe, 0xd6, 0x6d, 0x29, 0xf4, //0x0000e7a8 .quad -853029884242176389 + 0x1d, 0xbb, 0x34, 0x27, 0x9e, 0x52, 0xe2, 0x8c, //0x0000e7b0 .quad -8294976724446954723 + 0x0d, 0x66, 0x58, 0x5f, 0xa6, 0xe4, 0x99, 0x18, //0x0000e7b8 .quad 1772699331562333709 + 0xe4, 0xe9, 0x01, 0xb1, 0x45, 0xe7, 0x1a, 0xb0, //0x0000e7c0 .quad -5757034887131305500 + 0x90, 0x7f, 0x2e, 0xf7, 0xcf, 0x5d, 0xc0, 0x5e, //0x0000e7c8 .quad 6827560182880305040 + 0x5d, 0x64, 0x42, 0x1d, 0x17, 0xa1, 0x21, 0xdc, //0x0000e7d0 .quad -2584607590486743971 + 0x74, 0x1f, 0xfa, 0xf4, 0x43, 0x75, 0x70, 0x76, //0x0000e7d8 .quad 8534450228600381300 + 0xba, 0x7e, 0x49, 0x72, 0xae, 0x04, 0x95, 0x89, //0x0000e7e0 .quad -8532908771695296838 + 0xa9, 0x53, 0x1c, 0x79, 0x4a, 0x49, 0x06, 0x6a, //0x0000e7e8 .quad 7639874402088932265 + 0x69, 0xde, 0xdb, 0x0e, 0xda, 0x45, 0xfa, 0xab, //0x0000e7f0 .quad -6054449946191733143 + 0x93, 0x68, 0x63, 0x17, 0x9d, 0xdb, 0x87, 0x04, //0x0000e7f8 .quad 326470965756389523 + 0x03, 0xd6, 0x92, 0x92, 0x50, 0xd7, 0xf8, 0xd6, //0x0000e800 .quad -2956376414312278525 + 0xb7, 0x42, 0x3c, 0x5d, 0x84, 0xd2, 0xa9, 0x45, //0x0000e808 .quad 5019774725622874807 + 0xc2, 0xc5, 0x9b, 0x5b, 0x92, 0x86, 0x5b, 0x86, //0x0000e810 .quad -8765264286586255934 + 0xb3, 0xa9, 0x45, 0xba, 0x92, 0x23, 0x8a, 0x0b, //0x0000e818 .quad 831516194300602803 + 0x32, 0xb7, 0x82, 0xf2, 0x36, 0x68, 0xf2, 0xa7, //0x0000e820 .quad -6344894339805432014 + 0x1f, 0x14, 0xd7, 0x68, 0x77, 0xac, 0x6c, 0x8e, //0x0000e828 .quad -8183976793979022305 + 0xff, 0x64, 0x23, 0xaf, 0x44, 0x02, 0xef, 0xd1, //0x0000e830 .quad -3319431906329402113 + 0x27, 0xd9, 0x0c, 0x43, 0x95, 0xd7, 0x07, 0x32, //0x0000e838 .quad 3605087062808385831 + 0x1f, 0x1f, 0x76, 0xed, 0x6a, 0x61, 0x35, 0x83, //0x0000e840 .quad -8992173969096958177 + 0xb9, 0x07, 0xe8, 0x49, 0xbd, 0xe6, 0x44, 0x7f, //0x0000e848 .quad 9170708441896323001 + 0xe7, 0xa6, 0xd3, 0xa8, 0xc5, 0xb9, 0x02, 0xa4, //0x0000e850 .quad -6628531442943809817 + 0xa7, 0x09, 0x62, 0x9c, 0x6c, 0x20, 0x16, 0x5f, //0x0000e858 .quad 6851699533943015847 + 0xa1, 0x90, 0x08, 0x13, 0x37, 0x68, 0x03, 0xcd, //0x0000e860 .quad -3673978285252374367 + 0x10, 0x8c, 0x7a, 0xc3, 0x87, 0xa8, 0xdb, 0x36, //0x0000e868 .quad 3952938399001381904 + 0x64, 0x5a, 0xe5, 0x6b, 0x22, 0x21, 0x22, 0x80, //0x0000e870 .quad -9213765455923815836 + 0x8a, 0x97, 0x2c, 0xda, 0x54, 0x49, 0x49, 0xc2, //0x0000e878 .quad -4446942528265218166 + 0xfd, 0xb0, 0xde, 0x06, 0x6b, 0xa9, 0x2a, 0xa0, //0x0000e880 .quad -6905520801477381891 + 0x6d, 0xbd, 0xb7, 0x10, 0xaa, 0x9b, 0xdb, 0xf2, //0x0000e888 .quad -946992141904134803 + 0x3d, 0x5d, 0x96, 0xc8, 0xc5, 0x53, 0x35, 0xc8, //0x0000e890 .quad -4020214983419339459 + 0xc8, 0xac, 0xe5, 0x94, 0x94, 0x82, 0x92, 0x6f, //0x0000e898 .quad 8039631859474607304 + 0x8c, 0xf4, 0xbb, 0x3a, 0xb7, 0xa8, 0x42, 0xfa, //0x0000e8a0 .quad -413582710846786420 + 0xfa, 0x17, 0x1f, 0xba, 0x39, 0x23, 0x77, 0xcb, //0x0000e8a8 .quad -3785518230938904582 + 0xd7, 0x78, 0xb5, 0x84, 0x72, 0xa9, 0x69, 0x9c, //0x0000e8b0 .quad -7176018221920323369 + 0xfc, 0x6e, 0x53, 0x14, 0x04, 0x76, 0x2a, 0xff, //0x0000e8b8 .quad -60105885123121412 + 0x0d, 0xd7, 0xe2, 0x25, 0xcf, 0x13, 0x84, 0xc3, //0x0000e8c0 .quad -4358336758973016307 + 0xbb, 0x4a, 0x68, 0x19, 0x85, 0x13, 0xf5, 0xfe, //0x0000e8c8 .quad -75132356403901765 + 0xd1, 0x8c, 0x5b, 0xef, 0xc2, 0x18, 0x65, 0xf4, //0x0000e8d0 .quad -836234930288882479 + 0x6a, 0x5d, 0xc2, 0x5f, 0x66, 0x58, 0xb2, 0x7e, //0x0000e8d8 .quad 9129456591349898602 + 0x02, 0x38, 0x99, 0xd5, 0x79, 0x2f, 0xbf, 0x98, //0x0000e8e0 .quad -7440175859071633406 + 0x62, 0x7a, 0xd9, 0xfb, 0x3f, 0x77, 0x2f, 0xef, //0x0000e8e8 .quad -1211618658047395230 + 0x03, 0x86, 0xff, 0x4a, 0x58, 0xfb, 0xee, 0xbe, //0x0000e8f0 .quad -4688533805412153853 + 0xfb, 0xd8, 0xcf, 0xfa, 0x0f, 0x55, 0xfb, 0xaa, //0x0000e8f8 .quad -6126209340986631941 + 0x84, 0x67, 0xbf, 0x5d, 0x2e, 0xba, 0xaa, 0xee, //0x0000e900 .quad -1248981238337804412 + 0x39, 0xcf, 0x83, 0xf9, 0x53, 0x2a, 0xba, 0x95, //0x0000e908 .quad -7657761676233289927 + 0xb2, 0xa0, 0x97, 0xfa, 0x5c, 0xb4, 0x2a, 0x95, //0x0000e910 .quad -7698142301602209614 + 0x84, 0x61, 0xf2, 0x7b, 0x74, 0x5a, 0x94, 0xdd, //0x0000e918 .quad -2480258038432112252 + 0xdf, 0x88, 0x3d, 0x39, 0x74, 0x61, 0x75, 0xba, //0x0000e920 .quad -5010991858575374113 + 0xe5, 0xf9, 0xee, 0x9a, 0x11, 0x71, 0xf9, 0x94, //0x0000e928 .quad -7712008566467528219 + 0x17, 0xeb, 0x8c, 0x47, 0xd1, 0xb9, 0x12, 0xe9, //0x0000e930 .quad -1652053804791829737 + 0x5e, 0xb8, 0xaa, 0x01, 0x56, 0xcd, 0x37, 0x7a, //0x0000e938 .quad 8806733365625141342 + 0xee, 0x12, 0xb8, 0xcc, 0x22, 0xb4, 0xab, 0x91, //0x0000e940 .quad -7950062655635975442 + 0x3b, 0xb3, 0x0a, 0xc1, 0x55, 0xe0, 0x62, 0xac, //0x0000e948 .quad -6025006692552756421 + 0xaa, 0x17, 0xe6, 0x7f, 0x2b, 0xa1, 0x16, 0xb6, //0x0000e950 .quad -5325892301117581398 + 0x0a, 0x60, 0x4d, 0x31, 0x6b, 0x98, 0x7b, 0x57, //0x0000e958 .quad 6303799689591218186 + 0x94, 0x9d, 0xdf, 0x5f, 0x76, 0x49, 0x9c, 0xe3, //0x0000e960 .quad -2045679357969588844 + 0x0c, 0xb8, 0xa0, 0xfd, 0x85, 0x7e, 0x5a, 0xed, //0x0000e968 .quad -1343622424865753076 + 0x7d, 0xc2, 0xeb, 0xfb, 0xe9, 0xad, 0x41, 0x8e, //0x0000e970 .quad -8196078626372074883 + 0x08, 0x73, 0x84, 0xbe, 0x13, 0x8f, 0x58, 0x14, //0x0000e978 .quad 1466078993672598280 + 0x1c, 0xb3, 0xe6, 0x7a, 0x64, 0x19, 0xd2, 0xb1, //0x0000e980 .quad -5633412264537705700 + 0xc9, 0x8f, 0x25, 0xae, 0xd8, 0xb2, 0x6e, 0x59, //0x0000e988 .quad 6444284760518135753 + 0xe3, 0x5f, 0xa0, 0x99, 0xbd, 0x9f, 0x46, 0xde, //0x0000e990 .quad -2430079312244744221 + 0xbc, 0xf3, 0xae, 0xd9, 0x8e, 0x5f, 0xca, 0x6f, //0x0000e998 .quad 8055355950647669692 + 0xee, 0x3b, 0x04, 0x80, 0xd6, 0x23, 0xec, 0x8a, //0x0000e9a0 .quad -8436328597794046994 + 0x55, 0x58, 0x0d, 0x48, 0xb9, 0x7b, 0xde, 0x25, //0x0000e9a8 .quad 2728754459941099605 + 0xe9, 0x4a, 0x05, 0x20, 0xcc, 0x2c, 0xa7, 0xad, //0x0000e9b0 .quad -5933724728815170839 + 0x6b, 0xae, 0x10, 0x9a, 0xa7, 0x1a, 0x56, 0xaf, //0x0000e9b8 .quad -5812428961928401301 + 0xa4, 0x9d, 0x06, 0x28, 0xff, 0xf7, 0x10, 0xd9, //0x0000e9c0 .quad -2805469892591575644 + 0x05, 0xda, 0x94, 0x80, 0x51, 0xa1, 0x2b, 0x1b, //0x0000e9c8 .quad 1957835834444274181 + 0x86, 0x22, 0x04, 0x79, 0xff, 0x9a, 0xaa, 0x87, //0x0000e9d0 .quad -8670947710510816634 + 0x43, 0x08, 0x5d, 0xf0, 0xd2, 0x44, 0xfb, 0x90, //0x0000e9d8 .quad -7999724640327104445 + 0x28, 0x2b, 0x45, 0x57, 0xbf, 0x41, 0x95, 0xa9, //0x0000e9e0 .quad -6226998619711132888 + 0x54, 0x4a, 0x74, 0xac, 0x07, 0x16, 0x3a, 0x35, //0x0000e9e8 .quad 3835402254873283156 + 0xf2, 0x75, 0x16, 0x2d, 0x2f, 0x92, 0xfa, 0xd3, //0x0000e9f0 .quad -3172062256211528206 + 0xe9, 0x5c, 0x91, 0x97, 0x89, 0x9b, 0x88, 0x42, //0x0000e9f8 .quad 4794252818591603945 + 0xb7, 0x09, 0x2e, 0x7c, 0x5d, 0x9b, 0x7c, 0x84, //0x0000ea00 .quad -8900067937773286985 + 0x12, 0xda, 0xba, 0xfe, 0x35, 0x61, 0x95, 0x69, //0x0000ea08 .quad 7608094030047140370 + 0x25, 0x8c, 0x39, 0xdb, 0x34, 0xc2, 0x9b, 0xa5, //0x0000ea10 .quad -6513398903789220827 + 0x96, 0x90, 0x69, 0x7e, 0x83, 0xb9, 0xfa, 0x43, //0x0000ea18 .quad 4898431519131537558 + 0x2e, 0xef, 0x07, 0x12, 0xc2, 0xb2, 0x02, 0xcf, //0x0000ea20 .quad -3530062611309138130 + 0xbc, 0xf4, 0x03, 0x5e, 0xe4, 0x67, 0xf9, 0x94, //0x0000ea28 .quad -7712018656367741764 + 0x7d, 0xf5, 0x44, 0x4b, 0xb9, 0xaf, 0x61, 0x81, //0x0000ea30 .quad -9123818159709293187 + 0xf6, 0x78, 0xc2, 0xba, 0xee, 0xe0, 0x1b, 0x1d, //0x0000ea38 .quad 2097517367411243254 + 0xdc, 0x32, 0x16, 0x9e, 0xa7, 0x1b, 0xba, 0xa1, //0x0000ea40 .quad -6793086681209228580 + 0x33, 0x17, 0x73, 0x69, 0x2a, 0xd9, 0x62, 0x64, //0x0000ea48 .quad 7233582727691441971 + 0x93, 0xbf, 0x9b, 0x85, 0x91, 0xa2, 0x28, 0xca, //0x0000ea50 .quad -3879672333084147821 + 0xff, 0xdc, 0xcf, 0x03, 0x75, 0x8f, 0x7b, 0x7d, //0x0000ea58 .quad 9041978409614302463 + 0x78, 0xaf, 0x02, 0xe7, 0x35, 0xcb, 0xb2, 0xfc, //0x0000ea60 .quad -237904397927796872 + 0x3f, 0xd4, 0xc3, 0x44, 0x52, 0x73, 0xda, 0x5c, //0x0000ea68 .quad 6690786993590490175 + 0xab, 0xad, 0x61, 0xb0, 0x01, 0xbf, 0xef, 0x9d, //0x0000ea70 .quad -7066219276345954901 + 0xa8, 0x64, 0xfa, 0x6a, 0x13, 0x88, 0x08, 0x3a, //0x0000ea78 .quad 4181741870994056360 + 0x16, 0x19, 0x7a, 0x1c, 0xc2, 0xae, 0x6b, 0xc5, //0x0000ea80 .quad -4221088077005055722 + 0xd1, 0xfd, 0xb8, 0x45, 0x18, 0xaa, 0x8a, 0x08, //0x0000ea88 .quad 615491320315182545 + 0x5b, 0x9f, 0x98, 0xa3, 0x72, 0x9a, 0xc6, 0xf6, //0x0000ea90 .quad -664674077828931749 + 0x46, 0x3d, 0x27, 0x57, 0x9e, 0x54, 0xad, 0x8a, //0x0000ea98 .quad -8454007886460797626 + 0x99, 0x63, 0x3f, 0xa6, 0x87, 0x20, 0x3c, 0x9a, //0x0000eaa0 .quad -7332950326284164199 + 0x4c, 0x86, 0x78, 0xf6, 0xe2, 0x54, 0xac, 0x36, //0x0000eaa8 .quad 3939617107816777292 + 0x7f, 0x3c, 0xcf, 0x8f, 0xa9, 0x28, 0xcb, 0xc0, //0x0000eab0 .quad -4554501889427817345 + 0xde, 0xa7, 0x16, 0xb4, 0x1b, 0x6a, 0x57, 0x84, //0x0000eab8 .quad -8910536670511192098 + 0x9f, 0x0b, 0xc3, 0xf3, 0xd3, 0xf2, 0xfd, 0xf0, //0x0000eac0 .quad -1081441343357383777 + 0xd6, 0x51, 0x1c, 0xa1, 0xa2, 0x44, 0x6d, 0x65, //0x0000eac8 .quad 7308573235570561494 + 0x43, 0xe7, 0x59, 0x78, 0xc4, 0xb7, 0x9e, 0x96, //0x0000ead0 .quad -7593429867239446717 + 0x26, 0xb3, 0xb1, 0xa4, 0xe5, 0x4a, 0x64, 0x9f, //0x0000ead8 .quad -6961356773836868826 + 0x14, 0x61, 0x70, 0x96, 0xb5, 0x65, 0x46, 0xbc, //0x0000eae0 .quad -4880101315621920492 + 0xef, 0x1f, 0xde, 0x0d, 0x9f, 0x5d, 0x3d, 0x87, //0x0000eae8 .quad -8701695967296086033 + 0x59, 0x79, 0x0c, 0xfc, 0x22, 0xff, 0x57, 0xeb, //0x0000eaf0 .quad -1488440626100012711 + 0xeb, 0xa7, 0x55, 0xd1, 0x06, 0xb5, 0x0c, 0xa9, //0x0000eaf8 .quad -6265433940692719637 + 0xd8, 0xcb, 0x87, 0xdd, 0x75, 0xff, 0x16, 0x93, //0x0000eb00 .quad -7847804418953589800 + 0xf3, 0x88, 0xd5, 0x42, 0x24, 0xf1, 0xa7, 0x09, //0x0000eb08 .quad 695789805494438131 + 0xce, 0xbe, 0xe9, 0x54, 0x53, 0xbf, 0xdc, 0xb7, //0x0000eb10 .quad -5198069505264599346 + 0x30, 0xeb, 0x8a, 0x53, 0x6d, 0xed, 0x11, 0x0c, //0x0000eb18 .quad 869737256868047664 + 0x81, 0x2e, 0x24, 0x2a, 0x28, 0xef, 0xd3, 0xe5, //0x0000eb20 .quad -1885900863153361279 + 0xfb, 0xa5, 0x6d, 0xa8, 0xc8, 0x68, 0x16, 0x8f, //0x0000eb28 .quad -8136200465769716229 + 0x10, 0x9d, 0x56, 0x1a, 0x79, 0x75, 0xa4, 0x8f, //0x0000eb30 .quad -8096217067111932656 + 0xbd, 0x87, 0x44, 0x69, 0x7d, 0x01, 0x6e, 0xf9, //0x0000eb38 .quad -473439272678684739 + 0x55, 0x44, 0xec, 0x60, 0xd7, 0x92, 0x8d, 0xb3, //0x0000eb40 .quad -5508585315462527915 + 0xad, 0xa9, 0x95, 0xc3, 0xdc, 0x81, 0xc9, 0x37, //0x0000eb48 .quad 4019886927579031981 + 0x6a, 0x55, 0x27, 0x39, 0x8d, 0xf7, 0x70, 0xe0, //0x0000eb50 .quad -2274045625900771990 + 0x18, 0x14, 0x7b, 0xf4, 0x53, 0xe2, 0xbb, 0x85, //0x0000eb58 .quad -8810199395808373736 + 0x62, 0x95, 0xb8, 0x43, 0xb8, 0x9a, 0x46, 0x8c, //0x0000eb60 .quad -8338807543829064350 + 0x8f, 0xec, 0xcc, 0x78, 0x74, 0x6d, 0x95, 0x93, //0x0000eb68 .quad -7812217631593927537 + 0xbb, 0xba, 0xa6, 0x54, 0x66, 0x41, 0x58, 0xaf, //0x0000eb70 .quad -5811823411358942533 + 0xb3, 0x27, 0x00, 0x97, 0xd1, 0xc8, 0x7a, 0x38, //0x0000eb78 .quad 4069786015789754291 + 0x6a, 0x69, 0xd0, 0xe9, 0xbf, 0x51, 0x2e, 0xdb, //0x0000eb80 .quad -2653093245771290262 + 0x9f, 0x31, 0xc0, 0xfc, 0x05, 0x7b, 0x99, 0x06, //0x0000eb88 .quad 475546501309804959 + 0xe2, 0x41, 0x22, 0xf2, 0x17, 0xf3, 0xfc, 0x88, //0x0000eb90 .quad -8575712306248138270 + 0x04, 0x1f, 0xf8, 0xbd, 0xe3, 0xec, 0x1f, 0x44, //0x0000eb98 .quad 4908902581746016004 + 0x5a, 0xd2, 0xaa, 0xee, 0xdd, 0x2f, 0x3c, 0xab, //0x0000eba0 .quad -6107954364382784934 + 0xc4, 0x26, 0x76, 0xad, 0x1c, 0xe8, 0x27, 0xd5, //0x0000eba8 .quad -3087243809672255804 + 0xf1, 0x86, 0x55, 0x6a, 0xd5, 0x3b, 0x0b, 0xd6, //0x0000ebb0 .quad -3023256937051093263 + 0x75, 0xb0, 0xd3, 0xd8, 0x23, 0xe2, 0x71, 0x8a, //0x0000ebb8 .quad -8470740780517707659 + 0x56, 0x74, 0x75, 0x62, 0x65, 0x05, 0xc7, 0x85, //0x0000ebc0 .quad -8807064613298015146 + 0x4a, 0x4e, 0x84, 0x67, 0x56, 0x2d, 0x87, 0xf6, //0x0000ebc8 .quad -682526969396179382 + 0x6c, 0xd1, 0x12, 0xbb, 0xbe, 0xc6, 0x38, 0xa7, //0x0000ebd0 .quad -6397144748195131028 + 0xdc, 0x61, 0x65, 0x01, 0xac, 0xf8, 0x28, 0xb4, //0x0000ebd8 .quad -5464844730172612132 + 0xc7, 0x85, 0xd7, 0x69, 0x6e, 0xf8, 0x06, 0xd1, //0x0000ebe0 .quad -3384744916816525881 + 0x53, 0xba, 0xbe, 0x01, 0xd7, 0x36, 0x33, 0xe1, //0x0000ebe8 .quad -2219369894288377261 + 0x9c, 0xb3, 0x26, 0x02, 0x45, 0x5b, 0xa4, 0x82, //0x0000ebf0 .quad -9032994600651410532 + 0x74, 0x34, 0x17, 0x61, 0x46, 0x02, 0xc0, 0xec, //0x0000ebf8 .quad -1387106183930235788 + 0x84, 0x60, 0xb0, 0x42, 0x16, 0x72, 0x4d, 0xa3, //0x0000ec00 .quad -6679557232386875260 + 0x91, 0x01, 0x5d, 0xf9, 0xd7, 0x02, 0xf0, 0x27, //0x0000ec08 .quad 2877803288514593169 + 0xa5, 0x78, 0x5c, 0xd3, 0x9b, 0xce, 0x20, 0xcc, //0x0000ec10 .quad -3737760522056206171 + 0xf5, 0x41, 0xb4, 0xf7, 0x8d, 0x03, 0xec, 0x31, //0x0000ec18 .quad 3597254110643241461 + 0xce, 0x96, 0x33, 0xc8, 0x42, 0x02, 0x29, 0xff, //0x0000ec20 .quad -60514634142869810 + 0x72, 0x52, 0xa1, 0x75, 0x71, 0x04, 0x67, 0x7e, //0x0000ec28 .quad 9108253656731439730 + 0x41, 0x3e, 0x20, 0xbd, 0x69, 0xa1, 0x79, 0x9f, //0x0000ec30 .quad -6955350673980375487 + 0x87, 0xd3, 0x84, 0xe9, 0xc6, 0x62, 0x00, 0x0f, //0x0000ec38 .quad 1080972517029761927 + 0xd1, 0x4d, 0x68, 0x2c, 0xc4, 0x09, 0x58, 0xc7, //0x0000ec40 .quad -4082502324048081455 + 0x69, 0x08, 0xe6, 0xa3, 0x78, 0x7b, 0xc0, 0x52, //0x0000ec48 .quad 5962901664714590313 + 0x45, 0x61, 0x82, 0x37, 0x35, 0x0c, 0x2e, 0xf9, //0x0000ec50 .quad -491441886632713915 + 0x83, 0x8a, 0xdf, 0xcc, 0x56, 0x9a, 0x70, 0xa7, //0x0000ec58 .quad -6381430974388925821 + 0xcb, 0x7c, 0xb1, 0x42, 0xa1, 0xc7, 0xbc, 0x9b, //0x0000ec60 .quad -7224680206786528053 + 0x92, 0xb6, 0x0b, 0x40, 0x76, 0x60, 0xa6, 0x88, //0x0000ec68 .quad -8600080377420466542 + 0xfe, 0xdb, 0x5d, 0x93, 0x89, 0xf9, 0xab, 0xc2, //0x0000ec70 .quad -4419164240055772162 + 0x36, 0xa4, 0x0e, 0xd0, 0x93, 0xf8, 0xcf, 0x6a, //0x0000ec78 .quad 7696643601933968438 + 0xfe, 0x52, 0x35, 0xf8, 0xeb, 0xf7, 0x56, 0xf3, //0x0000ec80 .quad -912269281642327298 + 0x44, 0x4d, 0x12, 0xc4, 0xb8, 0xf6, 0x83, 0x05, //0x0000ec88 .quad 397432465562684740 + 0xde, 0x53, 0x21, 0x7b, 0xf3, 0x5a, 0x16, 0x98, //0x0000ec90 .quad -7487697328667536418 + 0x4b, 0x70, 0x8b, 0x7a, 0x33, 0x7a, 0x72, 0xc3, //0x0000ec98 .quad -4363290727450709941 + 0xd6, 0xa8, 0xe9, 0x59, 0xb0, 0xf1, 0x1b, 0xbe, //0x0000eca0 .quad -4747935642407032618 + 0x5d, 0x4c, 0x2e, 0x59, 0xc0, 0x18, 0x4f, 0x74, //0x0000eca8 .quad 8380944645968776285 + 0x0c, 0x13, 0x64, 0x70, 0x1c, 0xee, 0xa2, 0xed, //0x0000ecb0 .quad -1323233534581402868 + 0x74, 0xdf, 0x79, 0x6f, 0xf0, 0xde, 0x62, 0x11, //0x0000ecb8 .quad 1252808770606194548 + 0xe7, 0x8b, 0x3e, 0xc6, 0xd1, 0xd4, 0x85, 0x94, //0x0000ecc0 .quad -7744549986754458649 + 0xa9, 0x2b, 0xac, 0x45, 0x56, 0xcb, 0xdd, 0x8a, //0x0000ecc8 .quad -8440366555225904215 + 0xe1, 0x2e, 0xce, 0x37, 0x06, 0x4a, 0xa7, 0xb9, //0x0000ecd0 .quad -5069001465015685407 + 0x93, 0x36, 0x17, 0xd7, 0x2b, 0x3e, 0x95, 0x6d, //0x0000ecd8 .quad 7896285879677171347 + 0x99, 0xba, 0xc1, 0xc5, 0x87, 0x1c, 0x11, 0xe8, //0x0000ece0 .quad -1724565812842218855 + 0x38, 0x04, 0xdd, 0xcc, 0xb6, 0x8d, 0xfa, 0xc8, //0x0000ece8 .quad -3964700705685699528 + 0xa0, 0x14, 0x99, 0xdb, 0xd4, 0xb1, 0x0a, 0x91, //0x0000ecf0 .quad -7995382660667468640 + 0xa3, 0x22, 0x0a, 0x40, 0x92, 0x98, 0x9c, 0x1d, //0x0000ecf8 .quad 2133748077373825699 + 0xc8, 0x59, 0x7f, 0x12, 0x4a, 0x5e, 0x4d, 0xb5, //0x0000ed00 .quad -5382542307406947896 + 0x4c, 0xab, 0x0c, 0xd0, 0xb6, 0xbe, 0x03, 0x25, //0x0000ed08 .quad 2667185096717282124 + 0x3a, 0x30, 0x1f, 0x97, 0xdc, 0xb5, 0xa0, 0xe2, //0x0000ed10 .quad -2116491865831296966 + 0x1e, 0xd6, 0x0f, 0x84, 0x64, 0xae, 0x44, 0x2e, //0x0000ed18 .quad 3333981370896602654 + 0x24, 0x7e, 0x73, 0xde, 0xa9, 0x71, 0xa4, 0x8d, //0x0000ed20 .quad -8240336443785642460 + 0xd3, 0xe5, 0x89, 0xd2, 0xfe, 0xec, 0xea, 0x5c, //0x0000ed28 .quad 6695424375237764563 + 0xad, 0x5d, 0x10, 0x56, 0x14, 0x8e, 0x0d, 0xb1, //0x0000ed30 .quad -5688734536304665171 + 0x48, 0x5f, 0x2c, 0x87, 0x3e, 0xa8, 0x25, 0x74, //0x0000ed38 .quad 8369280469047205704 + 0x18, 0x75, 0x94, 0x6b, 0x99, 0xf1, 0x50, 0xdd, //0x0000ed40 .quad -2499232151953443560 + 0x1a, 0x77, 0xf7, 0x28, 0x4e, 0x12, 0x2f, 0xd1, //0x0000ed48 .quad -3373457468973156582 + 0x2f, 0xc9, 0x3c, 0xe3, 0xff, 0x96, 0x52, 0x8a, //0x0000ed50 .quad -8479549122611984081 + 0x70, 0xaa, 0x9a, 0xd9, 0x70, 0x6b, 0xbd, 0x82, //0x0000ed58 .quad -9025939945749304720 + 0x7b, 0xfb, 0x0b, 0xdc, 0xbf, 0x3c, 0xe7, 0xac, //0x0000ed60 .quad -5987750384837592197 + 0x0c, 0x55, 0x01, 0x10, 0x4d, 0xc6, 0x6c, 0x63, //0x0000ed68 .quad 7164319141522920716 + 0x5a, 0xfa, 0x0e, 0xd3, 0xef, 0x0b, 0x21, 0xd8, //0x0000ed70 .quad -2873001962619602342 + 0x4f, 0xaa, 0x01, 0x54, 0xe0, 0xf7, 0x47, 0x3c, //0x0000ed78 .quad 4343712908476262991 + 0x78, 0x5c, 0xe9, 0xe3, 0x75, 0xa7, 0x14, 0x87, //0x0000ed80 .quad -8713155254278333320 + 0x72, 0x0a, 0x81, 0x34, 0xec, 0xfa, 0xac, 0x65, //0x0000ed88 .quad 7326506586225052274 + 0x96, 0xb3, 0xe3, 0x5c, 0x53, 0xd1, 0xd9, 0xa8, //0x0000ed90 .quad -6279758049420528746 + 0x0e, 0x4d, 0xa1, 0x41, 0xa7, 0x39, 0x18, 0x7f, //0x0000ed98 .quad 9158133232781315342 + 0x7c, 0xa0, 0x1c, 0x34, 0xa8, 0x45, 0x10, 0xd3, //0x0000eda0 .quad -3238011543348273028 + 0x51, 0xa0, 0x09, 0x12, 0x11, 0x48, 0xde, 0x1e, //0x0000eda8 .quad 2224294504121868369 + 0x4d, 0xe4, 0x91, 0x20, 0x89, 0x2b, 0xea, 0x83, //0x0000edb0 .quad -8941286242233752499 + 0x33, 0x04, 0x46, 0xab, 0x0a, 0xed, 0x4a, 0x93, //0x0000edb8 .quad -7833187971778608077 + 0x60, 0x5d, 0xb6, 0x68, 0x6b, 0xb6, 0xe4, 0xa4, //0x0000edc0 .quad -6564921784364802720 + 0x40, 0x85, 0x17, 0x56, 0x4d, 0xa8, 0x1d, 0xf8, //0x0000edc8 .quad -568112927868484288 + 0xb9, 0xf4, 0xe3, 0x42, 0x06, 0xe4, 0x1d, 0xce, //0x0000edd0 .quad -3594466212028615495 + 0x8f, 0x66, 0x9d, 0xab, 0x60, 0x12, 0x25, 0x36, //0x0000edd8 .quad 3901544858591782543 + 0xf3, 0x78, 0xce, 0xe9, 0x83, 0xae, 0xd2, 0x80, //0x0000ede0 .quad -9164070410158966541 + 0x1a, 0x60, 0x42, 0x6b, 0x7c, 0x2b, 0xd7, 0xc1, //0x0000ede8 .quad -4479063491021217766 + 0x30, 0x17, 0x42, 0xe4, 0x24, 0x5a, 0x07, 0xa1, //0x0000edf0 .quad -6843401994271320272 + 0x20, 0xf8, 0x12, 0x86, 0x5b, 0xf6, 0x4c, 0xb2, //0x0000edf8 .quad -5598829363776522208 + 0xfc, 0x9c, 0x52, 0x1d, 0xae, 0x30, 0x49, 0xc9, //0x0000ee00 .quad -3942566474411762436 + 0x28, 0xb6, 0x97, 0x67, 0xf2, 0x33, 0xe0, 0xde, //0x0000ee08 .quad -2386850686293264856 + 0x3c, 0x44, 0xa7, 0xa4, 0xd9, 0x7c, 0x9b, 0xfb, //0x0000ee10 .quad -316522074587315140 + 0xb2, 0xa3, 0x7d, 0x01, 0xef, 0x40, 0x98, 0x16, //0x0000ee18 .quad 1628122660560806834 + 0xa5, 0x8a, 0xe8, 0x06, 0x08, 0x2e, 0x41, 0x9d, //0x0000ee20 .quad -7115355324258153819 + 0x4f, 0x86, 0xee, 0x60, 0x95, 0x28, 0x1f, 0x8e, //0x0000ee28 .quad -8205795374004271537 + 0x4e, 0xad, 0xa2, 0x08, 0x8a, 0x79, 0x91, 0xc4, //0x0000ee30 .quad -4282508136895304370 + 0xe3, 0x27, 0x2a, 0xb9, 0xba, 0xf2, 0xa6, 0xf1, //0x0000ee38 .quad -1033872180650563613 + 0xa2, 0x58, 0xcb, 0x8a, 0xec, 0xd7, 0xb5, 0xf5, //0x0000ee40 .quad -741449152691742558 + 0xdc, 0xb1, 0x74, 0x67, 0x69, 0xaf, 0x10, 0xae, //0x0000ee48 .quad -5904026244240592420 + 0x65, 0x17, 0xbf, 0xd6, 0xf3, 0xa6, 0x91, 0x99, //0x0000ee50 .quad -7380934748073420955 + 0x2a, 0xef, 0xa8, 0xe0, 0xa1, 0x6d, 0xca, 0xac, //0x0000ee58 .quad -5995859411864064214 + 0x3f, 0xdd, 0x6e, 0xcc, 0xb0, 0x10, 0xf6, 0xbf, //0x0000ee60 .quad -4614482416664388289 + 0xf4, 0x2a, 0xd3, 0x58, 0x0a, 0x09, 0xfd, 0x17, //0x0000ee68 .quad 1728547772024695540 + 0x8e, 0x94, 0x8a, 0xff, 0xdc, 0x94, 0xf3, 0xef, //0x0000ee70 .quad -1156417002403097458 + 0xb1, 0xf5, 0x07, 0xef, 0x4c, 0x4b, 0xfc, 0xdd, //0x0000ee78 .quad -2451001303396518479 + 0xd9, 0x9c, 0xb6, 0x1f, 0x0a, 0x3d, 0xf8, 0x95, //0x0000ee80 .quad -7640289654143017767 + 0x8f, 0xf9, 0x64, 0x15, 0x10, 0xaf, 0xbd, 0x4a, //0x0000ee88 .quad 5385653213018257807 + 0x0f, 0x44, 0xa4, 0xa7, 0x4c, 0x4c, 0x76, 0xbb, //0x0000ee90 .quad -4938676049251384305 + 0xf2, 0x37, 0xbe, 0x1a, 0xd4, 0x1a, 0x6d, 0x9d, //0x0000ee98 .quad -7102991539009341454 + 0x13, 0x55, 0x8d, 0xd1, 0x5f, 0xdf, 0x53, 0xea, //0x0000eea0 .quad -1561659043136842477 + 0xee, 0xc5, 0x6d, 0x21, 0x89, 0x61, 0xc8, 0x84, //0x0000eea8 .quad -8878739423761676818 + 0x2c, 0x55, 0xf8, 0xe2, 0x9b, 0x6b, 0x74, 0x92, //0x0000eeb0 .quad -7893565929601608404 + 0xb5, 0x9b, 0xe4, 0xb4, 0xf5, 0x3c, 0xfd, 0x32, //0x0000eeb8 .quad 3674159897003727797 + 0x77, 0x6a, 0xb6, 0xdb, 0x82, 0x86, 0x11, 0xb7, //0x0000eec0 .quad -5255271393574622601 + 0xa2, 0xc2, 0x1d, 0x22, 0x33, 0x8c, 0xbc, 0x3f, //0x0000eec8 .quad 4592699871254659746 + 0x15, 0x05, 0xa4, 0x92, 0x23, 0xe8, 0xd5, 0xe4, //0x0000eed0 .quad -1957403223540890347 + 0x4b, 0x33, 0xa5, 0xea, 0x3f, 0xaf, 0xab, 0x0f, //0x0000eed8 .quad 1129188820640936779 + 0x2d, 0x83, 0xa6, 0x3b, 0x16, 0xb1, 0x05, 0x8f, //0x0000eee0 .quad -8140906042354138323 + 0x0f, 0x40, 0xa7, 0xf2, 0x87, 0x4d, 0xcb, 0x29, //0x0000eee8 .quad 3011586022114279439 + 0xf8, 0x23, 0x90, 0xca, 0x5b, 0x1d, 0xc7, 0xb2, //0x0000eef0 .quad -5564446534515285000 + 0x13, 0x10, 0x51, 0xef, 0xe9, 0x20, 0x3e, 0x74, //0x0000eef8 .quad 8376168546070237203 + 0xf6, 0x2c, 0x34, 0xbd, 0xb2, 0xe4, 0x78, 0xdf, //0x0000ef00 .quad -2343872149716718346 + 0x17, 0x54, 0x25, 0x6b, 0x24, 0xa9, 0x4d, 0x91, //0x0000ef08 .quad -7976533391121755113 + 0x1a, 0x9c, 0x40, 0xb6, 0xef, 0x8e, 0xab, 0x8b, //0x0000ef10 .quad -8382449121214030822 + 0x8f, 0x54, 0xf7, 0xc2, 0xb6, 0x89, 0xd0, 0x1a, //0x0000ef18 .quad 1932195658189984911 + 0x20, 0xc3, 0xd0, 0xa3, 0xab, 0x72, 0x96, 0xae, //0x0000ef20 .quad -5866375383090150624 + 0xb2, 0x29, 0xb5, 0x73, 0x24, 0xac, 0x84, 0xa1, //0x0000ef28 .quad -6808127464117294670 + 0xe8, 0xf3, 0xc4, 0x8c, 0x56, 0x0f, 0x3c, 0xda, //0x0000ef30 .quad -2721283210435300376 + 0x1f, 0x74, 0xa2, 0x90, 0x2d, 0xd7, 0xe5, 0xc9, //0x0000ef38 .quad -3898473311719230433 + 0x71, 0x18, 0xfb, 0x17, 0x96, 0x89, 0x65, 0x88, //0x0000ef40 .quad -8618331034163144591 + 0x93, 0x88, 0x65, 0x7a, 0x7c, 0xa6, 0x2f, 0x7e, //0x0000ef48 .quad 9092669226243950739 + 0x8d, 0xde, 0xf9, 0x9d, 0xfb, 0xeb, 0x7e, 0xaa, //0x0000ef50 .quad -6161227774276542835 + 0xb8, 0xea, 0xfe, 0x98, 0x1b, 0x90, 0xbb, 0xdd, //0x0000ef58 .quad -2469221522477225288 + 0x31, 0x56, 0x78, 0x85, 0xfa, 0xa6, 0x1e, 0xd5, //0x0000ef60 .quad -3089848699418290639 + 0x66, 0xa5, 0x3e, 0x7f, 0x22, 0x74, 0x2a, 0x55, //0x0000ef68 .quad 6136845133758244198 + 0xde, 0x35, 0x6b, 0x93, 0x5c, 0x28, 0x33, 0x85, //0x0000ef70 .quad -8848684464777513506 + 0x60, 0x27, 0x87, 0x8f, 0x95, 0x88, 0x3a, 0xd5, //0x0000ef78 .quad -3082000819042179232 + 0x56, 0x03, 0x46, 0xb8, 0x73, 0xf2, 0x7f, 0xa6, //0x0000ef80 .quad -6449169562544503978 + 0x38, 0xf1, 0x68, 0xf3, 0xba, 0x2a, 0x89, 0x8a, //0x0000ef88 .quad -8464187042230111944 + 0x2c, 0x84, 0x57, 0xa6, 0x10, 0xef, 0x1f, 0xd0, //0x0000ef90 .quad -3449775934753242068 + 0x86, 0x2d, 0x43, 0xb0, 0x69, 0x75, 0x2b, 0x2d, //0x0000ef98 .quad 3254824252494523782 + 0x9b, 0xb2, 0xf6, 0x67, 0x6a, 0xf5, 0x13, 0x82, //0x0000efa0 .quad -9073638986861858149 + 0x74, 0xfc, 0x29, 0x0e, 0x62, 0x29, 0x3b, 0x9c, //0x0000efa8 .quad -7189106879045698444 + 0x42, 0x5f, 0xf4, 0x01, 0xc5, 0xf2, 0x98, 0xa2, //0x0000efb0 .quad -6730362715149934782 + 0x90, 0x7b, 0xb4, 0x91, 0xba, 0xf3, 0x49, 0x83, //0x0000efb8 .quad -8986383598807123056 + 0x13, 0x77, 0x71, 0x42, 0x76, 0x2f, 0x3f, 0xcb, //0x0000efc0 .quad -3801267375510030573 + 0x74, 0x9a, 0x21, 0x36, 0xa9, 0x70, 0x1c, 0x24, //0x0000efc8 .quad 2602078556773259892 + 0xd7, 0xd4, 0x0d, 0xd3, 0x53, 0xfb, 0x0e, 0xfe, //0x0000efd0 .quad -139898200960150313 + 0x11, 0x01, 0xaa, 0x83, 0xd3, 0x8c, 0x23, 0xed, //0x0000efd8 .quad -1359087822460813039 + 0x06, 0xa5, 0xe8, 0x63, 0x14, 0x5d, 0xc9, 0x9e, //0x0000efe0 .quad -7004965403241175802 + 0xab, 0x40, 0x4a, 0x32, 0x04, 0x38, 0x36, 0xf4, //0x0000efe8 .quad -849429889038008149 + 0x48, 0xce, 0xe2, 0x7c, 0x59, 0xb4, 0x7b, 0xc6, //0x0000eff0 .quad -4144520735624081848 + 0xd6, 0xd0, 0xdc, 0x3e, 0x05, 0xc6, 0x43, 0xb1, //0x0000eff8 .quad -5673473379724898090 + 0xda, 0x81, 0x1b, 0xdc, 0x6f, 0xa1, 0x1a, 0xf8, //0x0000f000 .quad -568964901102714406 + 0x0b, 0x05, 0x94, 0x8e, 0x86, 0xb7, 0x94, 0xdd, //0x0000f008 .quad -2480155706228734709 + 0x28, 0x31, 0x91, 0xe9, 0xe5, 0xa4, 0x10, 0x9b, //0x0000f010 .quad -7273132090830278360 + 0x27, 0x83, 0x1c, 0x19, 0xb4, 0xf2, 0x7c, 0xca, //0x0000f018 .quad -3855940325606653145 + 0x72, 0x7d, 0xf5, 0x63, 0x1f, 0xce, 0xd4, 0xc1, //0x0000f020 .quad -4479729095110460046 + 0xf1, 0xa3, 0x63, 0x1f, 0x61, 0x2f, 0x1c, 0xfd, //0x0000f028 .quad -208239388580928527 + 0xcf, 0xdc, 0xf2, 0x3c, 0xa7, 0x01, 0x4a, 0xf2, //0x0000f030 .quad -987975350460687153 + 0xed, 0x8c, 0x3c, 0x67, 0x39, 0x3b, 0x63, 0xbc, //0x0000f038 .quad -4871985254153548563 + 0x01, 0xca, 0x17, 0x86, 0x08, 0x41, 0x6e, 0x97, //0x0000f040 .quad -7535013621679011327 + 0x14, 0xd8, 0x85, 0xe0, 0x03, 0x05, 0xbe, 0xd5, //0x0000f048 .quad -3044990783845967852 + 0x82, 0xbc, 0x9d, 0xa7, 0x4a, 0xd1, 0x49, 0xbd, //0x0000f050 .quad -4807081008671376254 + 0x19, 0x4e, 0xa7, 0xd8, 0x44, 0x86, 0x2d, 0x4b, //0x0000f058 .quad 5417133557047315993 + 0xa2, 0x2b, 0x85, 0x51, 0x9d, 0x45, 0x9c, 0xec, //0x0000f060 .quad -1397165242411832414 + 0x9f, 0x21, 0xd1, 0x0e, 0xd6, 0xe7, 0xf8, 0xdd, //0x0000f068 .quad -2451955090545630817 + 0x45, 0x3b, 0xf3, 0x52, 0x82, 0xab, 0xe1, 0x93, //0x0000f070 .quad -7790757304148477115 + 0x04, 0xb5, 0x42, 0xc9, 0xe5, 0x90, 0xbb, 0xca, //0x0000f078 .quad -3838314940804713212 + 0x17, 0x0a, 0xb0, 0xe7, 0x62, 0x16, 0xda, 0xb8, //0x0000f080 .quad -5126760611758208489 + 0x44, 0x62, 0x93, 0x3b, 0x1f, 0x75, 0x6a, 0x3d, //0x0000f088 .quad 4425478360848884292 + 0x9d, 0x0c, 0x9c, 0xa1, 0xfb, 0x9b, 0x10, 0xe7, //0x0000f090 .quad -1796764746270372707 + 0xd5, 0x3a, 0x78, 0x0a, 0x67, 0x12, 0xc5, 0x0c, //0x0000f098 .quad 920161932633717461 + 0xe2, 0x87, 0x01, 0x45, 0x7d, 0x61, 0x6a, 0x90, //0x0000f0a0 .quad -8040506994060064798 + 0xc6, 0x24, 0x8b, 0x66, 0x80, 0x2b, 0xfb, 0x27, //0x0000f0a8 .quad 2880944217109767366 + 0xda, 0xe9, 0x41, 0x96, 0xdc, 0xf9, 0x84, 0xb4, //0x0000f0b0 .quad -5438947724147693094 + 0xf7, 0xed, 0x2d, 0x80, 0x60, 0xf6, 0xf9, 0xb1, //0x0000f0b8 .quad -5622191765467566601 + 0x51, 0x64, 0xd2, 0xbb, 0x53, 0x38, 0xa6, 0xe1, //0x0000f0c0 .quad -2186998636757228463 + 0x74, 0x69, 0x39, 0xa0, 0xf8, 0x73, 0x78, 0x5e, //0x0000f0c8 .quad 6807318348447705460 + 0xb2, 0x7e, 0x63, 0x55, 0x34, 0xe3, 0x07, 0x8d, //0x0000f0d0 .quad -8284403175614349646 + 0xe9, 0xe1, 0x23, 0x64, 0x7b, 0x48, 0x0b, 0xdb, //0x0000f0d8 .quad -2662955059861265943 + 0x5f, 0x5e, 0xbc, 0x6a, 0x01, 0xdc, 0x49, 0xb0, //0x0000f0e0 .quad -5743817951090549153 + 0x63, 0xda, 0x2c, 0x3d, 0x9a, 0x1a, 0xce, 0x91, //0x0000f0e8 .quad -7940379843253970333 + 0xf7, 0x75, 0x6b, 0xc5, 0x01, 0x53, 0x5c, 0xdc, //0x0000f0f0 .quad -2568086420435798537 + 0xfc, 0x10, 0x78, 0xcc, 0x40, 0xa1, 0x41, 0x76, //0x0000f0f8 .quad 8521269269642088700 + 0xba, 0x29, 0x63, 0x1b, 0xe1, 0xb3, 0xb9, 0x89, //0x0000f100 .quad -8522583040413455942 + 0x9e, 0x0a, 0xcb, 0x7f, 0xc8, 0x04, 0xe9, 0xa9, //0x0000f108 .quad -6203421752542164322 + 0x29, 0xf4, 0x3b, 0x62, 0xd9, 0x20, 0x28, 0xac, //0x0000f110 .quad -6041542782089432023 + 0x45, 0xcd, 0xbd, 0x9f, 0xfa, 0x45, 0x63, 0x54, //0x0000f118 .quad 6080780864604458309 + 0x33, 0xf1, 0xca, 0xba, 0x0f, 0x29, 0x32, 0xd7, //0x0000f120 .quad -2940242459184402125 + 0x96, 0x40, 0xad, 0x47, 0x79, 0x17, 0x7c, 0xa9, //0x0000f128 .quad -6234081974526590826 + 0xc0, 0xd6, 0xbe, 0xd4, 0xa9, 0x59, 0x7f, 0x86, //0x0000f130 .quad -8755180564631333184 + 0x5e, 0x48, 0xcc, 0xcc, 0xab, 0x8e, 0xed, 0x49, //0x0000f138 .quad 5327070802775656542 + 0x70, 0x8c, 0xee, 0x49, 0x14, 0x30, 0x1f, 0xa8, //0x0000f140 .quad -6332289687361778576 + 0x75, 0x5a, 0xff, 0xbf, 0x56, 0xf2, 0x68, 0x5c, //0x0000f148 .quad 6658838503469570677 + 0x8c, 0x2f, 0x6a, 0x5c, 0x19, 0xfc, 0x26, 0xd2, //0x0000f150 .quad -3303676090774835316 + 0x12, 0x31, 0xff, 0x6f, 0xec, 0x2e, 0x83, 0x73, //0x0000f158 .quad 8323548129336963346 + 0xb7, 0x5d, 0xc2, 0xd9, 0x8f, 0x5d, 0x58, 0x83, //0x0000f160 .quad -8982326584375353929 + 0xac, 0x7e, 0xff, 0xc5, 0x53, 0xfd, 0x31, 0xc8, //0x0000f168 .quad -4021154456019173716 + 0x25, 0xf5, 0x32, 0xd0, 0xf3, 0x74, 0x2e, 0xa4, //0x0000f170 .quad -6616222212041804507 + 0x56, 0x5e, 0x7f, 0xb7, 0xa8, 0x7c, 0x3e, 0xba, //0x0000f178 .quad -5026443070023967146 + 0x6f, 0xb2, 0x3f, 0xc4, 0x30, 0x12, 0x3a, 0xcd, //0x0000f180 .quad -3658591746624867729 + 0xec, 0x35, 0x5f, 0xe5, 0xd2, 0x1b, 0xce, 0x28, //0x0000f188 .quad 2940318199324816876 + 0x85, 0xcf, 0xa7, 0x7a, 0x5e, 0x4b, 0x44, 0x80, //0x0000f190 .quad -9204148869281624187 + 0xb4, 0x81, 0x5b, 0xcf, 0x63, 0xd1, 0x80, 0x79, //0x0000f198 .quad 8755227902219092404 + 0x66, 0xc3, 0x51, 0x19, 0x36, 0x5e, 0x55, 0xa0, //0x0000f1a0 .quad -6893500068174642330 + 0x20, 0x62, 0x32, 0xc3, 0xbc, 0x05, 0xe1, 0xd7, //0x0000f1a8 .quad -2891023177508298208 + 0x40, 0x34, 0xa6, 0x9f, 0xc3, 0xb5, 0x6a, 0xc8, //0x0000f1b0 .quad -4005189066790915008 + 0xa8, 0xfa, 0xfe, 0xf3, 0x2b, 0x47, 0xd9, 0x8d, //0x0000f1b8 .quad -8225464990312760664 + 0x50, 0xc1, 0x8f, 0x87, 0x34, 0x63, 0x85, 0xfa, //0x0000f1c0 .quad -394800315061255856 + 0x52, 0xb9, 0xfe, 0xf0, 0xf6, 0x98, 0x4f, 0xb1, //0x0000f1c8 .quad -5670145219463562926 + 0xd2, 0xd8, 0xb9, 0xd4, 0x00, 0x5e, 0x93, 0x9c, //0x0000f1d0 .quad -7164279224554366766 + 0xd4, 0x33, 0x9f, 0x56, 0x9a, 0xbf, 0xd1, 0x6e, //0x0000f1d8 .quad 7985374283903742932 + 0x07, 0x4f, 0xe8, 0x09, 0x81, 0x35, 0xb8, 0xc3, //0x0000f1e0 .quad -4343663012265570553 + 0xc9, 0x00, 0x47, 0xec, 0x80, 0x2f, 0x86, 0x0a, //0x0000f1e8 .quad 758345818024902857 + 0xc8, 0x62, 0x62, 0x4c, 0xe1, 0x42, 0xa6, 0xf4, //0x0000f1f0 .quad -817892746904575288 + 0xfb, 0xc0, 0x58, 0x27, 0x61, 0xbb, 0x27, 0xcd, //0x0000f1f8 .quad -3663753745896259333 + 0xbd, 0x7d, 0xbd, 0xcf, 0xcc, 0xe9, 0xe7, 0x98, //0x0000f200 .quad -7428711994456441411 + 0x9d, 0x78, 0x97, 0xb8, 0x1c, 0xd5, 0x38, 0x80, //0x0000f208 .quad -9207375118826243939 + 0x2c, 0xdd, 0xac, 0x03, 0x40, 0xe4, 0x21, 0xbf, //0x0000f210 .quad -4674203974643163860 + 0xc4, 0x56, 0xbd, 0xe6, 0x63, 0x0a, 0x47, 0xe0, //0x0000f218 .quad -2285846861678029116 + 0x78, 0x14, 0x98, 0x04, 0x50, 0x5d, 0xea, 0xee, //0x0000f220 .quad -1231068949876566920 + 0x75, 0xac, 0x6c, 0xe0, 0xfc, 0xcc, 0x58, 0x18, //0x0000f228 .quad 1754377441329851509 + 0xcb, 0x0c, 0xdf, 0x02, 0x52, 0x7a, 0x52, 0x95, //0x0000f230 .quad -7686947121313936181 + 0xc9, 0xeb, 0x43, 0x0c, 0x1e, 0x80, 0x37, 0x0f, //0x0000f238 .quad 1096485900831157193 + 0xfd, 0xcf, 0x96, 0x83, 0xe6, 0x18, 0xa7, 0xba, //0x0000f240 .quad -4996997883215032323 + 0xbb, 0xe6, 0x54, 0x8f, 0x25, 0x60, 0x05, 0xd3, //0x0000f248 .quad -3241078642388441413 + 0xfd, 0x83, 0x7c, 0x24, 0x20, 0xdf, 0x50, 0xe9, //0x0000f250 .quad -1634561335591402499 + 0x6a, 0x20, 0x2a, 0xf3, 0x2e, 0xb8, 0xc6, 0x47, //0x0000f258 .quad 5172023733869224042 + 0x7e, 0xd2, 0xcd, 0x16, 0x74, 0x8b, 0xd2, 0x91, //0x0000f260 .quad -7939129862385708418 + 0x42, 0x54, 0xfa, 0x57, 0x1d, 0x33, 0xdc, 0x4c, //0x0000f268 .quad 5538357842881958978 + 0x1d, 0x47, 0x81, 0x1c, 0x51, 0x2e, 0x47, 0xb6, //0x0000f270 .quad -5312226309554747619 + 0x53, 0xe9, 0xf8, 0xad, 0xe4, 0x3f, 0x13, 0xe0, //0x0000f278 .quad -2300424733252327085 + 0xe5, 0x98, 0xa1, 0x63, 0xe5, 0xf9, 0xd8, 0xe3, //0x0000f280 .quad -2028596868516046619 + 0xa7, 0x23, 0x77, 0xd9, 0xdd, 0x0f, 0x18, 0x58, //0x0000f288 .quad 6347841120289366951 + 0x8f, 0xff, 0x44, 0x5e, 0x2f, 0x9c, 0x67, 0x8e, //0x0000f290 .quad -8185402070463610993 + 0x49, 0x76, 0xea, 0xa7, 0xea, 0x09, 0x0f, 0x57, //0x0000f298 .quad 6273243709394548297 + 0x73, 0x3f, 0xd6, 0x35, 0x3b, 0x83, 0x01, 0xb2, //0x0000f2a0 .quad -5620066569652125837 + 0xdb, 0x13, 0xe5, 0x51, 0x65, 0xcc, 0xd2, 0x2c, //0x0000f2a8 .quad 3229868618315797467 + 0x4f, 0xcf, 0x4b, 0x03, 0x0a, 0xe4, 0x81, 0xde, //0x0000f2b0 .quad -2413397193637769393 + 0xd2, 0x58, 0x5e, 0xa6, 0x7e, 0x7f, 0x07, 0xf8, //0x0000f2b8 .quad -574350245532641070 + 0x91, 0x61, 0x0f, 0x42, 0x86, 0x2e, 0x11, 0x8b, //0x0000f2c0 .quad -8425902273664687727 + 0x83, 0xf7, 0xfa, 0x27, 0xaf, 0xaf, 0x04, 0xfb, //0x0000f2c8 .quad -358968903457900669 + 0xf6, 0x39, 0x93, 0xd2, 0x27, 0x7a, 0xd5, 0xad, //0x0000f2d0 .quad -5920691823653471754 + 0x64, 0xb5, 0xf9, 0xf1, 0x9a, 0xdb, 0xc5, 0x79, //0x0000f2d8 .quad 8774660907532399972 + 0x74, 0x08, 0x38, 0xc7, 0xb1, 0xd8, 0x4a, 0xd9, //0x0000f2e0 .quad -2789178761139451788 + 0xbd, 0x22, 0x78, 0xae, 0x81, 0x52, 0x37, 0x18, //0x0000f2e8 .quad 1744954097560724157 + 0x48, 0x05, 0x83, 0x1c, 0x6f, 0xc7, 0xce, 0x87, //0x0000f2f0 .quad -8660765753353239224 + 0xb6, 0x15, 0x0b, 0x0d, 0x91, 0x93, 0x22, 0x8f, //0x0000f2f8 .quad -8132775725879323210 + 0x9a, 0xc6, 0xa3, 0xe3, 0x4a, 0x79, 0xc2, 0xa9, //0x0000f300 .quad -6214271173264161126 + 0x23, 0xdb, 0x4d, 0x50, 0x75, 0x38, 0xeb, 0xb2, //0x0000f308 .quad -5554283638921766109 + 0x41, 0xb8, 0x8c, 0x9c, 0x9d, 0x17, 0x33, 0xd4, //0x0000f310 .quad -3156152948152813503 + 0xec, 0x51, 0x61, 0xa4, 0x92, 0x06, 0xa6, 0x5f, //0x0000f318 .quad 6892203506629956076 + 0x28, 0xf3, 0xd7, 0x81, 0xc2, 0xee, 0x9f, 0x84, //0x0000f320 .quad -8890124620236590296 + 0x34, 0xd3, 0xbc, 0xa6, 0x1b, 0xc4, 0xc7, 0xdb, //0x0000f328 .quad -2609901835997359308 + 0xf3, 0xef, 0x4d, 0x22, 0x73, 0xea, 0xc7, 0xa5, //0x0000f330 .quad -6500969756868349965 + 0x01, 0x08, 0x6c, 0x90, 0x22, 0xb5, 0xb9, 0x12, //0x0000f338 .quad 1349308723430688769 + 0xef, 0x6b, 0xe1, 0xea, 0x0f, 0xe5, 0x39, 0xcf, //0x0000f340 .quad -3514526177658049553 + 0x01, 0x0a, 0x87, 0x34, 0x6b, 0x22, 0x68, 0xd7, //0x0000f348 .quad -2925050114139026943 + 0x75, 0xe3, 0xcc, 0xf2, 0x29, 0x2f, 0x84, 0x81, //0x0000f350 .quad -9114107888677362827 + 0x41, 0x66, 0xd4, 0x00, 0x83, 0x15, 0xa1, 0xe6, //0x0000f358 .quad -1828156321336891839 + 0x53, 0x1c, 0x80, 0x6f, 0xf4, 0x3a, 0xe5, 0xa1, //0x0000f360 .quad -6780948842419315629 + 0xd1, 0x7f, 0x09, 0xc1, 0xe3, 0x5a, 0x49, 0x60, //0x0000f368 .quad 6938176635183661009 + 0x68, 0x23, 0x60, 0x8b, 0xb1, 0x89, 0x5e, 0xca, //0x0000f370 .quad -3864500034596756632 + 0xc5, 0xdf, 0x4b, 0xb1, 0x9c, 0xb1, 0x5b, 0x38, //0x0000f378 .quad 4061034775552188357 + 0x42, 0x2c, 0x38, 0xee, 0x1d, 0x2c, 0xf6, 0xfc, //0x0000f380 .quad -218939024818557886 + 0xb6, 0xd7, 0x9e, 0xdd, 0x03, 0x9e, 0x72, 0x46, //0x0000f388 .quad 5076293469440235446 + 0xa9, 0x1b, 0xe3, 0xb4, 0x92, 0xdb, 0x19, 0x9e, //0x0000f390 .quad -7054365918152680535 + 0xd2, 0x46, 0x83, 0x6a, 0xc2, 0xa2, 0x07, 0x6c, //0x0000f398 .quad 7784369436827535058 + //0x0000f3a0 .p2align 4, 0x00 + //0x0000f3a0 _VecShiftShuffles + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, //0x0000f3a0 QUAD $0x0706050403020100; QUAD $0x0f0e0d0c0b0a0908 // .ascii 16, '\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f' + 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, //0x0000f3b0 QUAD $0x0807060504030201; QUAD $0xff0f0e0d0c0b0a09 // .ascii 16, '\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff' + 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, //0x0000f3c0 QUAD $0x0908070605040302; QUAD $0xffff0f0e0d0c0b0a // .ascii 16, '\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff' + 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, //0x0000f3d0 QUAD $0x0a09080706050403; QUAD $0xffffff0f0e0d0c0b // .ascii 16, '\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff' + 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, //0x0000f3e0 QUAD $0x0b0a090807060504; QUAD $0xffffffff0f0e0d0c // .ascii 16, '\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff' + 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, //0x0000f3f0 QUAD $0x0c0b0a0908070605; QUAD $0xffffffffff0f0e0d // .ascii 16, '\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff' + 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x0000f400 QUAD $0x0d0c0b0a09080706; QUAD $0xffffffffffff0f0e // .ascii 16, '\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff\xff' + 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x0000f410 QUAD $0x0e0d0c0b0a090807; QUAD $0xffffffffffffff0f // .ascii 16, '\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff\xff\xff' + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x0000f420 QUAD $0x0f0e0d0c0b0a0908; QUAD $0xffffffffffffffff // .ascii 16, '\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff\xff\xff\xff' + //0x0000f430 .p2align 4, 0x00 + //0x0000f430 __SingleQuoteTab + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f430 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x30, 0x00, 0x00, //0x0000f438 QUAD $0x000030303030755c // .asciz 8, '\\u0000\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f440 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x31, 0x00, 0x00, //0x0000f448 QUAD $0x000031303030755c // .asciz 8, '\\u0001\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f450 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x32, 0x00, 0x00, //0x0000f458 QUAD $0x000032303030755c // .asciz 8, '\\u0002\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f460 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x33, 0x00, 0x00, //0x0000f468 QUAD $0x000033303030755c // .asciz 8, '\\u0003\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f470 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x34, 0x00, 0x00, //0x0000f478 QUAD $0x000034303030755c // .asciz 8, '\\u0004\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f480 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x35, 0x00, 0x00, //0x0000f488 QUAD $0x000035303030755c // .asciz 8, '\\u0005\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f490 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x36, 0x00, 0x00, //0x0000f498 QUAD $0x000036303030755c // .asciz 8, '\\u0006\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f4a0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x37, 0x00, 0x00, //0x0000f4a8 QUAD $0x000037303030755c // .asciz 8, '\\u0007\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f4b0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x38, 0x00, 0x00, //0x0000f4b8 QUAD $0x000038303030755c // .asciz 8, '\\u0008\x00\x00' + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f4c0 .quad 2 + 0x5c, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f4c8 QUAD $0x000000000000745c // .asciz 8, '\\t\x00\x00\x00\x00\x00\x00' + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f4d0 .quad 2 + 0x5c, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f4d8 QUAD $0x0000000000006e5c // .asciz 8, '\\n\x00\x00\x00\x00\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f4e0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x62, 0x00, 0x00, //0x0000f4e8 QUAD $0x000062303030755c // .asciz 8, '\\u000b\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f4f0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x63, 0x00, 0x00, //0x0000f4f8 QUAD $0x000063303030755c // .asciz 8, '\\u000c\x00\x00' + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f500 .quad 2 + 0x5c, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f508 QUAD $0x000000000000725c // .asciz 8, '\\r\x00\x00\x00\x00\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f510 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x65, 0x00, 0x00, //0x0000f518 QUAD $0x000065303030755c // .asciz 8, '\\u000e\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f520 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x66, 0x00, 0x00, //0x0000f528 QUAD $0x000066303030755c // .asciz 8, '\\u000f\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f530 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x30, 0x00, 0x00, //0x0000f538 QUAD $0x000030313030755c // .asciz 8, '\\u0010\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f540 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x31, 0x00, 0x00, //0x0000f548 QUAD $0x000031313030755c // .asciz 8, '\\u0011\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f550 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x32, 0x00, 0x00, //0x0000f558 QUAD $0x000032313030755c // .asciz 8, '\\u0012\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f560 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x33, 0x00, 0x00, //0x0000f568 QUAD $0x000033313030755c // .asciz 8, '\\u0013\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f570 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x34, 0x00, 0x00, //0x0000f578 QUAD $0x000034313030755c // .asciz 8, '\\u0014\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f580 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x35, 0x00, 0x00, //0x0000f588 QUAD $0x000035313030755c // .asciz 8, '\\u0015\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f590 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x36, 0x00, 0x00, //0x0000f598 QUAD $0x000036313030755c // .asciz 8, '\\u0016\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f5a0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x37, 0x00, 0x00, //0x0000f5a8 QUAD $0x000037313030755c // .asciz 8, '\\u0017\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f5b0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x38, 0x00, 0x00, //0x0000f5b8 QUAD $0x000038313030755c // .asciz 8, '\\u0018\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f5c0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x39, 0x00, 0x00, //0x0000f5c8 QUAD $0x000039313030755c // .asciz 8, '\\u0019\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f5d0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x61, 0x00, 0x00, //0x0000f5d8 QUAD $0x000061313030755c // .asciz 8, '\\u001a\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f5e0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x62, 0x00, 0x00, //0x0000f5e8 QUAD $0x000062313030755c // .asciz 8, '\\u001b\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f5f0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x63, 0x00, 0x00, //0x0000f5f8 QUAD $0x000063313030755c // .asciz 8, '\\u001c\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f600 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x64, 0x00, 0x00, //0x0000f608 QUAD $0x000064313030755c // .asciz 8, '\\u001d\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f610 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x65, 0x00, 0x00, //0x0000f618 QUAD $0x000065313030755c // .asciz 8, '\\u001e\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f620 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x66, 0x00, 0x00, //0x0000f628 QUAD $0x000066313030755c // .asciz 8, '\\u001f\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f630 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f640 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f650 .quad 2 + 0x5c, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f658 QUAD $0x000000000000225c // .asciz 8, '\\"\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f660 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f670 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f680 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f690 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f6a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f6b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f6c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f6d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f6e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f6f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f700 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f710 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f720 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f730 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f740 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f750 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f760 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f770 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f780 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f790 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f7a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f7b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f7c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f7d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f7e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f7f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f800 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f810 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f820 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f830 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f840 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f850 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f860 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f870 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f880 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f890 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f8a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f8b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f8c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f8d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f8e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f8f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f900 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f910 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f920 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f930 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f940 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f950 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f960 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f970 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f980 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f990 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f9a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f9b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f9c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f9d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f9e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f9f0 .quad 2 + 0x5c, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f9f8 QUAD $0x0000000000005c5c // .asciz 8, '\\\\\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fa00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fa10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fa20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fa30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fa40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fa50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fa60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fa70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fa80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fa90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000faa0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fab0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fac0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fad0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fae0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000faf0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fb00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fb10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fb20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fb30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fb40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fb50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fb60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fb70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fb80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fb90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fba0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fbb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fbc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fbd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fbe0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fbf0 .quad 2 - 0x5c, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fbf8 QUAD $0x000000000000225c // .asciz 8, '\\"\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fbf0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fc00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fc10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fc20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' @@ -13833,8 +13562,7 @@ var Text__native_entry__ = []byte{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ff60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ff70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ff80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ff90 .quad 2 - 0x5c, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ff98 QUAD $0x0000000000005c5c // .asciz 8, '\\\\\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ff90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ffa0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ffb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ffc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' @@ -13908,41 +13636,76 @@ var Text__native_entry__ = []byte{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010400 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010410 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010420 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010430 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010440 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010450 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010460 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010470 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010480 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010490 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000104a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000104b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000104c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000104d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000104e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000104f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010500 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010510 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010520 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010530 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010540 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010550 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010560 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010570 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010580 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010590 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000105a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000105b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000105c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000105d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000105e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000105f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010600 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010610 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010620 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + //0x00010430 .p2align 4, 0x00 + //0x00010430 __DoubleQuoteTab + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010430 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x30, 0x00, //0x00010438 QUAD $0x0030303030755c5c // .asciz 8, '\\\\u0000\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010440 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x31, 0x00, //0x00010448 QUAD $0x0031303030755c5c // .asciz 8, '\\\\u0001\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010450 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x32, 0x00, //0x00010458 QUAD $0x0032303030755c5c // .asciz 8, '\\\\u0002\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010460 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x33, 0x00, //0x00010468 QUAD $0x0033303030755c5c // .asciz 8, '\\\\u0003\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010470 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x34, 0x00, //0x00010478 QUAD $0x0034303030755c5c // .asciz 8, '\\\\u0004\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010480 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x35, 0x00, //0x00010488 QUAD $0x0035303030755c5c // .asciz 8, '\\\\u0005\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010490 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x36, 0x00, //0x00010498 QUAD $0x0036303030755c5c // .asciz 8, '\\\\u0006\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000104a0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x37, 0x00, //0x000104a8 QUAD $0x0037303030755c5c // .asciz 8, '\\\\u0007\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000104b0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x38, 0x00, //0x000104b8 QUAD $0x0038303030755c5c // .asciz 8, '\\\\u0008\x00' + 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000104c0 .quad 3 + 0x5c, 0x5c, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000104c8 QUAD $0x0000000000745c5c // .asciz 8, '\\\\t\x00\x00\x00\x00\x00' + 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000104d0 .quad 3 + 0x5c, 0x5c, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000104d8 QUAD $0x00000000006e5c5c // .asciz 8, '\\\\n\x00\x00\x00\x00\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000104e0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x62, 0x00, //0x000104e8 QUAD $0x0062303030755c5c // .asciz 8, '\\\\u000b\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000104f0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x63, 0x00, //0x000104f8 QUAD $0x0063303030755c5c // .asciz 8, '\\\\u000c\x00' + 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010500 .quad 3 + 0x5c, 0x5c, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010508 QUAD $0x0000000000725c5c // .asciz 8, '\\\\r\x00\x00\x00\x00\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010510 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x65, 0x00, //0x00010518 QUAD $0x0065303030755c5c // .asciz 8, '\\\\u000e\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010520 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x66, 0x00, //0x00010528 QUAD $0x0066303030755c5c // .asciz 8, '\\\\u000f\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010530 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x30, 0x00, //0x00010538 QUAD $0x0030313030755c5c // .asciz 8, '\\\\u0010\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010540 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x31, 0x00, //0x00010548 QUAD $0x0031313030755c5c // .asciz 8, '\\\\u0011\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010550 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x32, 0x00, //0x00010558 QUAD $0x0032313030755c5c // .asciz 8, '\\\\u0012\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010560 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x33, 0x00, //0x00010568 QUAD $0x0033313030755c5c // .asciz 8, '\\\\u0013\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010570 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x34, 0x00, //0x00010578 QUAD $0x0034313030755c5c // .asciz 8, '\\\\u0014\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010580 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x35, 0x00, //0x00010588 QUAD $0x0035313030755c5c // .asciz 8, '\\\\u0015\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010590 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x36, 0x00, //0x00010598 QUAD $0x0036313030755c5c // .asciz 8, '\\\\u0016\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000105a0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x37, 0x00, //0x000105a8 QUAD $0x0037313030755c5c // .asciz 8, '\\\\u0017\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000105b0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x38, 0x00, //0x000105b8 QUAD $0x0038313030755c5c // .asciz 8, '\\\\u0018\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000105c0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x39, 0x00, //0x000105c8 QUAD $0x0039313030755c5c // .asciz 8, '\\\\u0019\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000105d0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x61, 0x00, //0x000105d8 QUAD $0x0061313030755c5c // .asciz 8, '\\\\u001a\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000105e0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x62, 0x00, //0x000105e8 QUAD $0x0062313030755c5c // .asciz 8, '\\\\u001b\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000105f0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x63, 0x00, //0x000105f8 QUAD $0x0063313030755c5c // .asciz 8, '\\\\u001c\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010600 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x64, 0x00, //0x00010608 QUAD $0x0064313030755c5c // .asciz 8, '\\\\u001d\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010610 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x65, 0x00, //0x00010618 QUAD $0x0065313030755c5c // .asciz 8, '\\\\u001e\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010620 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x66, 0x00, //0x00010628 QUAD $0x0066313030755c5c // .asciz 8, '\\\\u001f\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010630 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010640 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010650 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010650 .quad 4 + 0x5c, 0x5c, 0x5c, 0x22, 0x00, 0x00, 0x00, 0x00, //0x00010658 QUAD $0x00000000225c5c5c // .asciz 8, '\\\\\\"\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010660 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010670 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010680 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' @@ -13998,76 +13761,42 @@ var Text__native_entry__ = []byte{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000109a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000109b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000109c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - //0x000109d0 .p2align 4, 0x00 - //0x000109d0 __DoubleQuoteTab - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000109d0 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x30, 0x00, //0x000109d8 QUAD $0x0030303030755c5c // .asciz 8, '\\\\u0000\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000109e0 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x31, 0x00, //0x000109e8 QUAD $0x0031303030755c5c // .asciz 8, '\\\\u0001\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000109f0 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x32, 0x00, //0x000109f8 QUAD $0x0032303030755c5c // .asciz 8, '\\\\u0002\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010a00 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x33, 0x00, //0x00010a08 QUAD $0x0033303030755c5c // .asciz 8, '\\\\u0003\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010a10 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x34, 0x00, //0x00010a18 QUAD $0x0034303030755c5c // .asciz 8, '\\\\u0004\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010a20 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x35, 0x00, //0x00010a28 QUAD $0x0035303030755c5c // .asciz 8, '\\\\u0005\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010a30 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x36, 0x00, //0x00010a38 QUAD $0x0036303030755c5c // .asciz 8, '\\\\u0006\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010a40 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x37, 0x00, //0x00010a48 QUAD $0x0037303030755c5c // .asciz 8, '\\\\u0007\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010a50 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x38, 0x00, //0x00010a58 QUAD $0x0038303030755c5c // .asciz 8, '\\\\u0008\x00' - 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010a60 .quad 3 - 0x5c, 0x5c, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010a68 QUAD $0x0000000000745c5c // .asciz 8, '\\\\t\x00\x00\x00\x00\x00' - 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010a70 .quad 3 - 0x5c, 0x5c, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010a78 QUAD $0x00000000006e5c5c // .asciz 8, '\\\\n\x00\x00\x00\x00\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010a80 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x62, 0x00, //0x00010a88 QUAD $0x0062303030755c5c // .asciz 8, '\\\\u000b\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010a90 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x63, 0x00, //0x00010a98 QUAD $0x0063303030755c5c // .asciz 8, '\\\\u000c\x00' - 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010aa0 .quad 3 - 0x5c, 0x5c, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010aa8 QUAD $0x0000000000725c5c // .asciz 8, '\\\\r\x00\x00\x00\x00\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010ab0 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x65, 0x00, //0x00010ab8 QUAD $0x0065303030755c5c // .asciz 8, '\\\\u000e\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010ac0 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x66, 0x00, //0x00010ac8 QUAD $0x0066303030755c5c // .asciz 8, '\\\\u000f\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010ad0 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x30, 0x00, //0x00010ad8 QUAD $0x0030313030755c5c // .asciz 8, '\\\\u0010\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010ae0 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x31, 0x00, //0x00010ae8 QUAD $0x0031313030755c5c // .asciz 8, '\\\\u0011\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010af0 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x32, 0x00, //0x00010af8 QUAD $0x0032313030755c5c // .asciz 8, '\\\\u0012\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010b00 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x33, 0x00, //0x00010b08 QUAD $0x0033313030755c5c // .asciz 8, '\\\\u0013\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010b10 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x34, 0x00, //0x00010b18 QUAD $0x0034313030755c5c // .asciz 8, '\\\\u0014\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010b20 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x35, 0x00, //0x00010b28 QUAD $0x0035313030755c5c // .asciz 8, '\\\\u0015\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010b30 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x36, 0x00, //0x00010b38 QUAD $0x0036313030755c5c // .asciz 8, '\\\\u0016\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010b40 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x37, 0x00, //0x00010b48 QUAD $0x0037313030755c5c // .asciz 8, '\\\\u0017\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010b50 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x38, 0x00, //0x00010b58 QUAD $0x0038313030755c5c // .asciz 8, '\\\\u0018\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010b60 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x39, 0x00, //0x00010b68 QUAD $0x0039313030755c5c // .asciz 8, '\\\\u0019\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010b70 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x61, 0x00, //0x00010b78 QUAD $0x0061313030755c5c // .asciz 8, '\\\\u001a\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010b80 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x62, 0x00, //0x00010b88 QUAD $0x0062313030755c5c // .asciz 8, '\\\\u001b\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010b90 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x63, 0x00, //0x00010b98 QUAD $0x0063313030755c5c // .asciz 8, '\\\\u001c\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010ba0 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x64, 0x00, //0x00010ba8 QUAD $0x0064313030755c5c // .asciz 8, '\\\\u001d\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010bb0 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x65, 0x00, //0x00010bb8 QUAD $0x0065313030755c5c // .asciz 8, '\\\\u001e\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010bc0 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x66, 0x00, //0x00010bc8 QUAD $0x0066313030755c5c // .asciz 8, '\\\\u001f\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000109d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000109e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000109f0 .quad 4 + 0x5c, 0x5c, 0x5c, 0x5c, 0x00, 0x00, 0x00, 0x00, //0x000109f8 QUAD $0x000000005c5c5c5c // .asciz 8, '\\\\\\\\\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010a00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010a10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010a20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010a30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010a40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010a50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010a60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010a70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010a80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010a90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010aa0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010ab0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010ac0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010ad0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010ae0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010af0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010b00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010b10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010b20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010b30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010b40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010b50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010b60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010b70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010b80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010b90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010ba0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010bb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010bc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010bd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010be0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010bf0 .quad 4 - 0x5c, 0x5c, 0x5c, 0x22, 0x00, 0x00, 0x00, 0x00, //0x00010bf8 QUAD $0x00000000225c5c5c // .asciz 8, '\\\\\\"\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010bf0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010c00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010c10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010c20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' @@ -14125,8 +13854,7 @@ var Text__native_entry__ = []byte{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010f60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010f70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010f80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010f90 .quad 4 - 0x5c, 0x5c, 0x5c, 0x5c, 0x00, 0x00, 0x00, 0x00, //0x00010f98 QUAD $0x000000005c5c5c5c // .asciz 8, '\\\\\\\\\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010f90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010fa0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010fb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010fc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' @@ -14200,38 +13928,46 @@ var Text__native_entry__ = []byte{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011400 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011410 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011420 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011430 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011440 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011450 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011460 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011470 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011480 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011490 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000114a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000114b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000114c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000114d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000114e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000114f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011500 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011510 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011520 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011530 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011540 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011550 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011560 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011570 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011580 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011590 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000115a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000115b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000115c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000115d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000115e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000115f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011600 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011610 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011620 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + //0x00011430 .p2align 4, 0x00 + //0x00011430 __EscTab + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, //0x00011430 QUAD $0x0101010101010101; QUAD $0x0101010101010101 // .ascii 16, '\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01' + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, //0x00011440 QUAD $0x0101010101010101; QUAD $0x0101010101010101 // .ascii 16, '\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01' + 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011450 QUAD $0x0000000000010000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011460 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011470 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, //0x00011480 QUAD $0x0000000000000000; LONG $0x00000000; BYTE $0x01 // .ascii 13, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001148d QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001149d QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000114ad QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000114bd QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000114cd QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000114dd QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000114ed QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000114fd QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001150d QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001151d QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, //0x0001152d WORD $0x0000; BYTE $0x00 // .space 3, '\x00\x00\x00' + //0x00011530 .p2align 4, 0x00 + //0x00011530 __UnquoteTab + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011530 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011540 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2f, //0x00011550 QUAD $0x0000000000220000; QUAD $0x2f00000000000000 // .ascii 16, '\x00\x00"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00/' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011560 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011570 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, //0x00011580 QUAD $0x0000000000000000; QUAD $0x0000005c00000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\\\x00\x00\x00' + 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, //0x00011590 QUAD $0x000c000000080000; QUAD $0x000a000000000000 // .ascii 16, '\x00\x00\x08\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\n\x00' + 0x00, 0x00, 0x0d, 0x00, 0x09, 0xff, //0x000115a0 LONG $0x000d0000; WORD $0xff09 // .ascii 6, '\x00\x00\r\x00\t\xff' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000115a6 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000115b6 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000115c6 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000115d6 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000115e6 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000115f6 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011606 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011616 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011626 QUAD $0x0000000000000000; WORD $0x0000 // .space 10, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + //0x00011630 .p2align 4, 0x00 + //0x00011630 __HtmlQuoteTab 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011630 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011640 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011650 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' @@ -14270,7 +14006,8 @@ var Text__native_entry__ = []byte{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011860 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011870 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011880 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011890 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011890 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x32, 0x36, 0x00, 0x00, //0x00011898 QUAD $0x000036323030755c // .asciz 8, '\\u0026\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000118a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000118b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000118c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' @@ -14290,46 +14027,40 @@ var Text__native_entry__ = []byte{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000119a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000119b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000119c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - //0x000119d0 .p2align 4, 0x00 - //0x000119d0 __EscTab - 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, //0x000119d0 QUAD $0x0101010101010101; QUAD $0x0101010101010101 // .ascii 16, '\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01' - 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, //0x000119e0 QUAD $0x0101010101010101; QUAD $0x0101010101010101 // .ascii 16, '\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01' - 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000119f0 QUAD $0x0000000000010000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011a00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011a10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, //0x00011a20 QUAD $0x0000000000000000; LONG $0x00000000; BYTE $0x01 // .ascii 13, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011a2d QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011a3d QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011a4d QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011a5d QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011a6d QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011a7d QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011a8d QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011a9d QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011aad QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011abd QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, //0x00011acd WORD $0x0000; BYTE $0x00 // .space 3, '\x00\x00\x00' - //0x00011ad0 .p2align 4, 0x00 - //0x00011ad0 __UnquoteTab - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011ad0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011ae0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2f, //0x00011af0 QUAD $0x0000000000220000; QUAD $0x2f00000000000000 // .ascii 16, '\x00\x00"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00/' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011b00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011b10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, //0x00011b20 QUAD $0x0000000000000000; QUAD $0x0000005c00000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\\\x00\x00\x00' - 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, //0x00011b30 QUAD $0x000c000000080000; QUAD $0x000a000000000000 // .ascii 16, '\x00\x00\x08\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\n\x00' - 0x00, 0x00, 0x0d, 0x00, 0x09, 0xff, //0x00011b40 LONG $0x000d0000; WORD $0xff09 // .ascii 6, '\x00\x00\r\x00\t\xff' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011b46 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011b56 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011b66 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011b76 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011b86 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011b96 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011ba6 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011bb6 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011bc6 QUAD $0x0000000000000000; WORD $0x0000 // .space 10, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - //0x00011bd0 .p2align 4, 0x00 - //0x00011bd0 __HtmlQuoteTab + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000119d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000119e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000119f0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x33, 0x63, 0x00, 0x00, //0x000119f8 QUAD $0x000063333030755c // .asciz 8, '\\u003c\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011a00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011a10 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x33, 0x65, 0x00, 0x00, //0x00011a18 QUAD $0x000065333030755c // .asciz 8, '\\u003e\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011a20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011a30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011a40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011a50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011a60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011a70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011a80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011a90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011aa0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011ab0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011ac0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011ad0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011ae0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011af0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011b00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011b10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011b20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011b30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011b40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011b50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011b60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011b70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011b80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011b90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011ba0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011bb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011bc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011bd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011be0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011bf0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' @@ -14368,8 +14099,7 @@ var Text__native_entry__ = []byte{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011e00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011e10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011e20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011e30 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x32, 0x36, 0x00, 0x00, //0x00011e38 QUAD $0x000036323030755c // .asciz 8, '\\u0026\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011e30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011e40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011e50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011e60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' @@ -14391,11 +14121,9 @@ var Text__native_entry__ = []byte{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011f60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011f70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011f80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011f90 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x33, 0x63, 0x00, 0x00, //0x00011f98 QUAD $0x000063333030755c // .asciz 8, '\\u003c\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011f90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011fa0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011fb0 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x33, 0x65, 0x00, 0x00, //0x00011fb8 QUAD $0x000065333030755c // .asciz 8, '\\u003e\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011fb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011fc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011fd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011fe0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' @@ -14411,8 +14139,10 @@ var Text__native_entry__ = []byte{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012080 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012090 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000120a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000120b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000120c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000120b0 .quad 6 + 0x5c, 0x75, 0x32, 0x30, 0x32, 0x38, 0x00, 0x00, //0x000120b8 QUAD $0x000038323032755c // .asciz 8, '\\u2028\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000120c0 .quad 6 + 0x5c, 0x75, 0x32, 0x30, 0x32, 0x39, 0x00, 0x00, //0x000120c8 QUAD $0x000039323032755c // .asciz 8, '\\u2029\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000120d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000120e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000120f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' @@ -14499,689 +14229,597 @@ var Text__native_entry__ = []byte{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012600 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012610 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012620 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + //0x00012630 .p2align 4, 0x00 + //0x00012630 _LSHIFT_TAB 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012630 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012640 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012650 .quad 6 - 0x5c, 0x75, 0x32, 0x30, 0x32, 0x38, 0x00, 0x00, //0x00012658 QUAD $0x000038323032755c // .asciz 8, '\\u2028\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012660 .quad 6 - 0x5c, 0x75, 0x32, 0x30, 0x32, 0x39, 0x00, 0x00, //0x00012668 QUAD $0x000039323032755c // .asciz 8, '\\u2029\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012650 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012660 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012670 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012680 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012690 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000126a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000126b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000126c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000126d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000126e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000126f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012700 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012710 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012720 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012730 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012740 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012750 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012760 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012770 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012780 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012790 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000127a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000127b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000127c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000127d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000127e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000127f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012800 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012810 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012820 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012830 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012840 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012850 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012860 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012870 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012880 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012890 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000128a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000128b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000128c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000128d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000128e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000128f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012900 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012910 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012920 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012930 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012940 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012950 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012960 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012970 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012980 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012990 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000129a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000129b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000129c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000129d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000129e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000129f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012a00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012a10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012a20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012a30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012a40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012a50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012a60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012a70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012a80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012a90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012aa0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012ab0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012ac0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012ad0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012ae0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012af0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012b00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012b10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012b20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012b30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012b40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012b50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012b60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012b70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012b80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012b90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012ba0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012bb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012bc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - //0x00012bd0 .p2align 4, 0x00 - //0x00012bd0 _LSHIFT_TAB - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012bd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012be0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012bf0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012c00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012c10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012c20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012c30 QUAD $0x0000000000000000 // .space 8, '\x00\x00\x00\x00\x00\x00\x00\x00' - 0x01, 0x00, 0x00, 0x00, //0x00012c38 .long 1 - 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012c3c QUAD $0x0000000000000035; QUAD $0x0000000000000000 // .asciz 16, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012c4c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012690 QUAD $0x0000000000000000 // .space 8, '\x00\x00\x00\x00\x00\x00\x00\x00' + 0x01, 0x00, 0x00, 0x00, //0x00012698 .long 1 + 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001269c QUAD $0x0000000000000035; QUAD $0x0000000000000000 // .asciz 16, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000126ac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000126bc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000126cc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000126dc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000126ec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000126fc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x01, 0x00, 0x00, 0x00, //0x00012700 .long 1 + 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012704 QUAD $0x0000000000003532; QUAD $0x0000000000000000 // .asciz 16, '25\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012714 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012724 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012734 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012744 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012754 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012764 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x01, 0x00, 0x00, 0x00, //0x00012768 .long 1 + 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001276c QUAD $0x0000000000353231; QUAD $0x0000000000000000 // .asciz 16, '125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001277c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001278c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001279c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000127ac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000127bc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000127cc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x02, 0x00, 0x00, 0x00, //0x000127d0 .long 2 + 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000127d4 QUAD $0x0000000000353236; QUAD $0x0000000000000000 // .asciz 16, '625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000127e4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000127f4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012804 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012814 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012824 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012834 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x02, 0x00, 0x00, 0x00, //0x00012838 .long 2 + 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001283c QUAD $0x0000000035323133; QUAD $0x0000000000000000 // .asciz 16, '3125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001284c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001285c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001286c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001287c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001288c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0001289c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x02, 0x00, 0x00, 0x00, //0x000128a0 .long 2 + 0x31, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000128a4 QUAD $0x0000003532363531; QUAD $0x0000000000000000 // .asciz 16, '15625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000128b4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000128c4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000128d4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000128e4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000128f4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012904 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x03, 0x00, 0x00, 0x00, //0x00012908 .long 3 + 0x37, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001290c QUAD $0x0000003532313837; QUAD $0x0000000000000000 // .asciz 16, '78125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001291c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001292c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001293c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001294c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001295c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0001296c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x03, 0x00, 0x00, 0x00, //0x00012970 .long 3 + 0x33, 0x39, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012974 QUAD $0x0000353236303933; QUAD $0x0000000000000000 // .asciz 16, '390625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012984 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012994 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000129a4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000129b4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000129c4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000129d4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x03, 0x00, 0x00, 0x00, //0x000129d8 .long 3 + 0x31, 0x39, 0x35, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000129dc QUAD $0x0035323133353931; QUAD $0x0000000000000000 // .asciz 16, '1953125\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000129ec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000129fc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012a0c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012a1c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012a2c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012a3c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x04, 0x00, 0x00, 0x00, //0x00012a40 .long 4 + 0x39, 0x37, 0x36, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012a44 QUAD $0x0035323635363739; QUAD $0x0000000000000000 // .asciz 16, '9765625\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012a54 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012a64 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012a74 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012a84 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012a94 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012aa4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x04, 0x00, 0x00, 0x00, //0x00012aa8 .long 4 + 0x34, 0x38, 0x38, 0x32, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012aac QUAD $0x3532313832383834; QUAD $0x0000000000000000 // .asciz 16, '48828125\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012abc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012acc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012adc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012aec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012afc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012b0c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x04, 0x00, 0x00, 0x00, //0x00012b10 .long 4 + 0x32, 0x34, 0x34, 0x31, 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012b14 QUAD $0x3236303431343432; QUAD $0x0000000000000035 // .asciz 16, '244140625\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012b24 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012b34 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012b44 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012b54 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012b64 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012b74 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x04, 0x00, 0x00, 0x00, //0x00012b78 .long 4 + 0x31, 0x32, 0x32, 0x30, 0x37, 0x30, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012b7c QUAD $0x3133303730323231; QUAD $0x0000000000003532 // .asciz 16, '1220703125\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012b8c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012b9c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012bac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012bbc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012bcc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012bdc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x05, 0x00, 0x00, 0x00, //0x00012be0 .long 5 + 0x36, 0x31, 0x30, 0x33, 0x35, 0x31, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012be4 QUAD $0x3635313533303136; QUAD $0x0000000000003532 // .asciz 16, '6103515625\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012bf4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012c04 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012c14 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012c24 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012c34 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012c44 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x05, 0x00, 0x00, 0x00, //0x00012c48 .long 5 + 0x33, 0x30, 0x35, 0x31, 0x37, 0x35, 0x37, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012c4c QUAD $0x3837353731353033; QUAD $0x0000000000353231 // .asciz 16, '30517578125\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012c5c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012c6c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012c7c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012c8c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00012c9c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x01, 0x00, 0x00, 0x00, //0x00012ca0 .long 1 - 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012ca4 QUAD $0x0000000000003532; QUAD $0x0000000000000000 // .asciz 16, '25\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012cb4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012c9c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012cac LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x05, 0x00, 0x00, 0x00, //0x00012cb0 .long 5 + 0x31, 0x35, 0x32, 0x35, 0x38, 0x37, 0x38, 0x39, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, //0x00012cb4 QUAD $0x3938373835323531; QUAD $0x0000000035323630 // .asciz 16, '152587890625\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012cc4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012cd4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012ce4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012cf4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00012d04 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x01, 0x00, 0x00, 0x00, //0x00012d08 .long 1 - 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012d0c QUAD $0x0000000000353231; QUAD $0x0000000000000000 // .asciz 16, '125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012d1c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012d04 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012d14 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x06, 0x00, 0x00, 0x00, //0x00012d18 .long 6 + 0x37, 0x36, 0x32, 0x39, 0x33, 0x39, 0x34, 0x35, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, //0x00012d1c QUAD $0x3534393339323637; QUAD $0x0000000035323133 // .asciz 16, '762939453125\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012d2c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012d3c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012d4c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012d5c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00012d6c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x02, 0x00, 0x00, 0x00, //0x00012d70 .long 2 - 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012d74 QUAD $0x0000000000353236; QUAD $0x0000000000000000 // .asciz 16, '625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012d84 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012d6c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012d7c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x06, 0x00, 0x00, 0x00, //0x00012d80 .long 6 + 0x33, 0x38, 0x31, 0x34, 0x36, 0x39, 0x37, 0x32, 0x36, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, //0x00012d84 QUAD $0x3237393634313833; QUAD $0x0000003532363536 // .asciz 16, '3814697265625\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012d94 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012da4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012db4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012dc4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00012dd4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x02, 0x00, 0x00, 0x00, //0x00012dd8 .long 2 - 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012ddc QUAD $0x0000000035323133; QUAD $0x0000000000000000 // .asciz 16, '3125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012dec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012dd4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012de4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x06, 0x00, 0x00, 0x00, //0x00012de8 .long 6 + 0x31, 0x39, 0x30, 0x37, 0x33, 0x34, 0x38, 0x36, 0x33, 0x32, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, //0x00012dec QUAD $0x3638343337303931; QUAD $0x0000353231383233 // .asciz 16, '19073486328125\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012dfc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012e0c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012e1c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012e2c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00012e3c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x02, 0x00, 0x00, 0x00, //0x00012e40 .long 2 - 0x31, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012e44 QUAD $0x0000003532363531; QUAD $0x0000000000000000 // .asciz 16, '15625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012e54 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012e3c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012e4c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x07, 0x00, 0x00, 0x00, //0x00012e50 .long 7 + 0x39, 0x35, 0x33, 0x36, 0x37, 0x34, 0x33, 0x31, 0x36, 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, //0x00012e54 QUAD $0x3133343736333539; QUAD $0x0000353236303436 // .asciz 16, '95367431640625\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012e64 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012e74 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012e84 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012e94 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00012ea4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x03, 0x00, 0x00, 0x00, //0x00012ea8 .long 3 - 0x37, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012eac QUAD $0x0000003532313837; QUAD $0x0000000000000000 // .asciz 16, '78125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012ebc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012ea4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012eb4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x07, 0x00, 0x00, 0x00, //0x00012eb8 .long 7 + 0x34, 0x37, 0x36, 0x38, 0x33, 0x37, 0x31, 0x35, 0x38, 0x32, 0x30, 0x33, 0x31, 0x32, 0x35, 0x00, //0x00012ebc QUAD $0x3531373338363734; QUAD $0x0035323133303238 // .asciz 16, '476837158203125\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012ecc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012edc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012eec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012efc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00012f0c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x03, 0x00, 0x00, 0x00, //0x00012f10 .long 3 - 0x33, 0x39, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012f14 QUAD $0x0000353236303933; QUAD $0x0000000000000000 // .asciz 16, '390625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012f24 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012f0c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012f1c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x07, 0x00, 0x00, 0x00, //0x00012f20 .long 7 + 0x32, 0x33, 0x38, 0x34, 0x31, 0x38, 0x35, 0x37, 0x39, 0x31, 0x30, 0x31, 0x35, 0x36, 0x32, 0x35, //0x00012f24 QUAD $0x3735383134383332; QUAD $0x3532363531303139 // .asciz 16, '2384185791015625' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012f34 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012f44 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012f54 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012f64 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00012f74 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x03, 0x00, 0x00, 0x00, //0x00012f78 .long 3 - 0x31, 0x39, 0x35, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012f7c QUAD $0x0035323133353931; QUAD $0x0000000000000000 // .asciz 16, '1953125\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012f8c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012f9c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012f74 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012f84 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x07, 0x00, 0x00, 0x00, //0x00012f88 .long 7 + 0x31, 0x31, 0x39, 0x32, 0x30, 0x39, 0x32, 0x38, 0x39, 0x35, 0x35, 0x30, 0x37, 0x38, 0x31, 0x32, //0x00012f8c QUAD $0x3832393032393131; QUAD $0x3231383730353539 // .asciz 16, '1192092895507812' + 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012f9c QUAD $0x0000000000000035; QUAD $0x0000000000000000 // .asciz 16, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012fac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012fbc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012fcc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00012fdc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x04, 0x00, 0x00, 0x00, //0x00012fe0 .long 4 - 0x39, 0x37, 0x36, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012fe4 QUAD $0x0035323635363739; QUAD $0x0000000000000000 // .asciz 16, '9765625\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012ff4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013004 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012fdc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012fec LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x08, 0x00, 0x00, 0x00, //0x00012ff0 .long 8 + 0x35, 0x39, 0x36, 0x30, 0x34, 0x36, 0x34, 0x34, 0x37, 0x37, 0x35, 0x33, 0x39, 0x30, 0x36, 0x32, //0x00012ff4 QUAD $0x3434363430363935; QUAD $0x3236303933353737 // .asciz 16, '5960464477539062' + 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013004 QUAD $0x0000000000000035; QUAD $0x0000000000000000 // .asciz 16, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013014 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013024 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013034 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00013044 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x04, 0x00, 0x00, 0x00, //0x00013048 .long 4 - 0x34, 0x38, 0x38, 0x32, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001304c QUAD $0x3532313832383834; QUAD $0x0000000000000000 // .asciz 16, '48828125\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001305c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001306c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013044 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00013054 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x08, 0x00, 0x00, 0x00, //0x00013058 .long 8 + 0x32, 0x39, 0x38, 0x30, 0x32, 0x33, 0x32, 0x32, 0x33, 0x38, 0x37, 0x36, 0x39, 0x35, 0x33, 0x31, //0x0001305c QUAD $0x3232333230383932; QUAD $0x3133353936373833 // .asciz 16, '2980232238769531' + 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001306c QUAD $0x0000000000003532; QUAD $0x0000000000000000 // .asciz 16, '25\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001307c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001308c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001309c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x000130ac LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x04, 0x00, 0x00, 0x00, //0x000130b0 .long 4 - 0x32, 0x34, 0x34, 0x31, 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000130b4 QUAD $0x3236303431343432; QUAD $0x0000000000000035 // .asciz 16, '244140625\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000130c4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000130d4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000130ac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000130bc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x08, 0x00, 0x00, 0x00, //0x000130c0 .long 8 + 0x31, 0x34, 0x39, 0x30, 0x31, 0x31, 0x36, 0x31, 0x31, 0x39, 0x33, 0x38, 0x34, 0x37, 0x36, 0x35, //0x000130c4 QUAD $0x3136313130393431; QUAD $0x3536373438333931 // .asciz 16, '1490116119384765' + 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000130d4 QUAD $0x0000000000353236; QUAD $0x0000000000000000 // .asciz 16, '625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000130e4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000130f4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013104 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00013114 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x04, 0x00, 0x00, 0x00, //0x00013118 .long 4 - 0x31, 0x32, 0x32, 0x30, 0x37, 0x30, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001311c QUAD $0x3133303730323231; QUAD $0x0000000000003532 // .asciz 16, '1220703125\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001312c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001313c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013114 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00013124 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x09, 0x00, 0x00, 0x00, //0x00013128 .long 9 + 0x37, 0x34, 0x35, 0x30, 0x35, 0x38, 0x30, 0x35, 0x39, 0x36, 0x39, 0x32, 0x33, 0x38, 0x32, 0x38, //0x0001312c QUAD $0x3530383530353437; QUAD $0x3832383332393639 // .asciz 16, '7450580596923828' + 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001313c QUAD $0x0000000000353231; QUAD $0x0000000000000000 // .asciz 16, '125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001314c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001315c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001316c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x0001317c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x05, 0x00, 0x00, 0x00, //0x00013180 .long 5 - 0x36, 0x31, 0x30, 0x33, 0x35, 0x31, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013184 QUAD $0x3635313533303136; QUAD $0x0000000000003532 // .asciz 16, '6103515625\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013194 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000131a4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001317c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0001318c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x09, 0x00, 0x00, 0x00, //0x00013190 .long 9 + 0x33, 0x37, 0x32, 0x35, 0x32, 0x39, 0x30, 0x32, 0x39, 0x38, 0x34, 0x36, 0x31, 0x39, 0x31, 0x34, //0x00013194 QUAD $0x3230393235323733; QUAD $0x3431393136343839 // .asciz 16, '3725290298461914' + 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000131a4 QUAD $0x0000000035323630; QUAD $0x0000000000000000 // .asciz 16, '0625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000131b4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000131c4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000131d4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x000131e4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x05, 0x00, 0x00, 0x00, //0x000131e8 .long 5 - 0x33, 0x30, 0x35, 0x31, 0x37, 0x35, 0x37, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000131ec QUAD $0x3837353731353033; QUAD $0x0000000000353231 // .asciz 16, '30517578125\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000131fc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001320c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000131e4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000131f4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x09, 0x00, 0x00, 0x00, //0x000131f8 .long 9 + 0x31, 0x38, 0x36, 0x32, 0x36, 0x34, 0x35, 0x31, 0x34, 0x39, 0x32, 0x33, 0x30, 0x39, 0x35, 0x37, //0x000131fc QUAD $0x3135343632363831; QUAD $0x3735393033323934 // .asciz 16, '1862645149230957' + 0x30, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001320c QUAD $0x0000003532313330; QUAD $0x0000000000000000 // .asciz 16, '03125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001321c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001322c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001323c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x0001324c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x05, 0x00, 0x00, 0x00, //0x00013250 .long 5 - 0x31, 0x35, 0x32, 0x35, 0x38, 0x37, 0x38, 0x39, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, //0x00013254 QUAD $0x3938373835323531; QUAD $0x0000000035323630 // .asciz 16, '152587890625\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013264 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013274 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001324c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0001325c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0a, 0x00, 0x00, 0x00, //0x00013260 .long 10 + 0x39, 0x33, 0x31, 0x33, 0x32, 0x32, 0x35, 0x37, 0x34, 0x36, 0x31, 0x35, 0x34, 0x37, 0x38, 0x35, //0x00013264 QUAD $0x3735323233313339; QUAD $0x3538373435313634 // .asciz 16, '9313225746154785' + 0x31, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013274 QUAD $0x0000003532363531; QUAD $0x0000000000000000 // .asciz 16, '15625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013284 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013294 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000132a4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x000132b4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x06, 0x00, 0x00, 0x00, //0x000132b8 .long 6 - 0x37, 0x36, 0x32, 0x39, 0x33, 0x39, 0x34, 0x35, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, //0x000132bc QUAD $0x3534393339323637; QUAD $0x0000000035323133 // .asciz 16, '762939453125\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000132cc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000132dc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000132b4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000132c4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0a, 0x00, 0x00, 0x00, //0x000132c8 .long 10 + 0x34, 0x36, 0x35, 0x36, 0x36, 0x31, 0x32, 0x38, 0x37, 0x33, 0x30, 0x37, 0x37, 0x33, 0x39, 0x32, //0x000132cc QUAD $0x3832313636353634; QUAD $0x3239333737303337 // .asciz 16, '4656612873077392' + 0x35, 0x37, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000132dc QUAD $0x0000353231383735; QUAD $0x0000000000000000 // .asciz 16, '578125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000132ec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000132fc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001330c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x0001331c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x06, 0x00, 0x00, 0x00, //0x00013320 .long 6 - 0x33, 0x38, 0x31, 0x34, 0x36, 0x39, 0x37, 0x32, 0x36, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, //0x00013324 QUAD $0x3237393634313833; QUAD $0x0000003532363536 // .asciz 16, '3814697265625\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013334 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013344 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001331c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0001332c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0a, 0x00, 0x00, 0x00, //0x00013330 .long 10 + 0x32, 0x33, 0x32, 0x38, 0x33, 0x30, 0x36, 0x34, 0x33, 0x36, 0x35, 0x33, 0x38, 0x36, 0x39, 0x36, //0x00013334 QUAD $0x3436303338323332; QUAD $0x3639363833353633 // .asciz 16, '2328306436538696' + 0x32, 0x38, 0x39, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013344 QUAD $0x0035323630393832; QUAD $0x0000000000000000 // .asciz 16, '2890625\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013354 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013364 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013374 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00013384 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x06, 0x00, 0x00, 0x00, //0x00013388 .long 6 - 0x31, 0x39, 0x30, 0x37, 0x33, 0x34, 0x38, 0x36, 0x33, 0x32, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, //0x0001338c QUAD $0x3638343337303931; QUAD $0x0000353231383233 // .asciz 16, '19073486328125\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001339c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000133ac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013384 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00013394 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0a, 0x00, 0x00, 0x00, //0x00013398 .long 10 + 0x31, 0x31, 0x36, 0x34, 0x31, 0x35, 0x33, 0x32, 0x31, 0x38, 0x32, 0x36, 0x39, 0x33, 0x34, 0x38, //0x0001339c QUAD $0x3233353134363131; QUAD $0x3834333936323831 // .asciz 16, '1164153218269348' + 0x31, 0x34, 0x34, 0x35, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000133ac QUAD $0x3532313335343431; QUAD $0x0000000000000000 // .asciz 16, '14453125\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000133bc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000133cc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000133dc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x000133ec LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x07, 0x00, 0x00, 0x00, //0x000133f0 .long 7 - 0x39, 0x35, 0x33, 0x36, 0x37, 0x34, 0x33, 0x31, 0x36, 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, //0x000133f4 QUAD $0x3133343736333539; QUAD $0x0000353236303436 // .asciz 16, '95367431640625\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013404 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013414 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000133ec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000133fc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0b, 0x00, 0x00, 0x00, //0x00013400 .long 11 + 0x35, 0x38, 0x32, 0x30, 0x37, 0x36, 0x36, 0x30, 0x39, 0x31, 0x33, 0x34, 0x36, 0x37, 0x34, 0x30, //0x00013404 QUAD $0x3036363730323835; QUAD $0x3034373634333139 // .asciz 16, '5820766091346740' + 0x37, 0x32, 0x32, 0x36, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013414 QUAD $0x3532363536323237; QUAD $0x0000000000000000 // .asciz 16, '72265625\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013424 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013434 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013444 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00013454 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x07, 0x00, 0x00, 0x00, //0x00013458 .long 7 - 0x34, 0x37, 0x36, 0x38, 0x33, 0x37, 0x31, 0x35, 0x38, 0x32, 0x30, 0x33, 0x31, 0x32, 0x35, 0x00, //0x0001345c QUAD $0x3531373338363734; QUAD $0x0035323133303238 // .asciz 16, '476837158203125\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001346c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001347c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013454 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00013464 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0b, 0x00, 0x00, 0x00, //0x00013468 .long 11 + 0x32, 0x39, 0x31, 0x30, 0x33, 0x38, 0x33, 0x30, 0x34, 0x35, 0x36, 0x37, 0x33, 0x33, 0x37, 0x30, //0x0001346c QUAD $0x3033383330313932; QUAD $0x3037333337363534 // .asciz 16, '2910383045673370' + 0x33, 0x36, 0x31, 0x33, 0x32, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001347c QUAD $0x3231383233313633; QUAD $0x0000000000000035 // .asciz 16, '361328125\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001348c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001349c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000134ac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x000134bc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x07, 0x00, 0x00, 0x00, //0x000134c0 .long 7 - 0x32, 0x33, 0x38, 0x34, 0x31, 0x38, 0x35, 0x37, 0x39, 0x31, 0x30, 0x31, 0x35, 0x36, 0x32, 0x35, //0x000134c4 QUAD $0x3735383134383332; QUAD $0x3532363531303139 // .asciz 16, '2384185791015625' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000134d4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000134e4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000134bc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000134cc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0b, 0x00, 0x00, 0x00, //0x000134d0 .long 11 + 0x31, 0x34, 0x35, 0x35, 0x31, 0x39, 0x31, 0x35, 0x32, 0x32, 0x38, 0x33, 0x36, 0x36, 0x38, 0x35, //0x000134d4 QUAD $0x3531393135353431; QUAD $0x3538363633383232 // .asciz 16, '1455191522836685' + 0x31, 0x38, 0x30, 0x36, 0x36, 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000134e4 QUAD $0x3630343636303831; QUAD $0x0000000000003532 // .asciz 16, '1806640625\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000134f4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013504 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013514 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00013524 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x07, 0x00, 0x00, 0x00, //0x00013528 .long 7 - 0x31, 0x31, 0x39, 0x32, 0x30, 0x39, 0x32, 0x38, 0x39, 0x35, 0x35, 0x30, 0x37, 0x38, 0x31, 0x32, //0x0001352c QUAD $0x3832393032393131; QUAD $0x3231383730353539 // .asciz 16, '1192092895507812' - 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001353c QUAD $0x0000000000000035; QUAD $0x0000000000000000 // .asciz 16, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001354c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013524 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00013534 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0c, 0x00, 0x00, 0x00, //0x00013538 .long 12 + 0x37, 0x32, 0x37, 0x35, 0x39, 0x35, 0x37, 0x36, 0x31, 0x34, 0x31, 0x38, 0x33, 0x34, 0x32, 0x35, //0x0001353c QUAD $0x3637353935373237; QUAD $0x3532343338313431 // .asciz 16, '7275957614183425' + 0x39, 0x30, 0x33, 0x33, 0x32, 0x30, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001354c QUAD $0x3133303233333039; QUAD $0x0000000000003532 // .asciz 16, '9033203125\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001355c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001356c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001357c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x0001358c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x08, 0x00, 0x00, 0x00, //0x00013590 .long 8 - 0x35, 0x39, 0x36, 0x30, 0x34, 0x36, 0x34, 0x34, 0x37, 0x37, 0x35, 0x33, 0x39, 0x30, 0x36, 0x32, //0x00013594 QUAD $0x3434363430363935; QUAD $0x3236303933353737 // .asciz 16, '5960464477539062' - 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000135a4 QUAD $0x0000000000000035; QUAD $0x0000000000000000 // .asciz 16, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000135b4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001358c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0001359c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0c, 0x00, 0x00, 0x00, //0x000135a0 .long 12 + 0x33, 0x36, 0x33, 0x37, 0x39, 0x37, 0x38, 0x38, 0x30, 0x37, 0x30, 0x39, 0x31, 0x37, 0x31, 0x32, //0x000135a4 QUAD $0x3838373937333633; QUAD $0x3231373139303730 // .asciz 16, '3637978807091712' + 0x39, 0x35, 0x31, 0x36, 0x36, 0x30, 0x31, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000135b4 QUAD $0x3531303636313539; QUAD $0x0000000000353236 // .asciz 16, '95166015625\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000135c4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000135d4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000135e4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x000135f4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x08, 0x00, 0x00, 0x00, //0x000135f8 .long 8 - 0x32, 0x39, 0x38, 0x30, 0x32, 0x33, 0x32, 0x32, 0x33, 0x38, 0x37, 0x36, 0x39, 0x35, 0x33, 0x31, //0x000135fc QUAD $0x3232333230383932; QUAD $0x3133353936373833 // .asciz 16, '2980232238769531' - 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001360c QUAD $0x0000000000003532; QUAD $0x0000000000000000 // .asciz 16, '25\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001361c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000135f4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00013604 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0c, 0x00, 0x00, 0x00, //0x00013608 .long 12 + 0x31, 0x38, 0x31, 0x38, 0x39, 0x38, 0x39, 0x34, 0x30, 0x33, 0x35, 0x34, 0x35, 0x38, 0x35, 0x36, //0x0001360c QUAD $0x3439383938313831; QUAD $0x3635383534353330 // .asciz 16, '1818989403545856' + 0x34, 0x37, 0x35, 0x38, 0x33, 0x30, 0x30, 0x37, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, //0x0001361c QUAD $0x3730303338353734; QUAD $0x0000000035323138 // .asciz 16, '475830078125\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001362c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001363c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001364c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x0001365c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x08, 0x00, 0x00, 0x00, //0x00013660 .long 8 - 0x31, 0x34, 0x39, 0x30, 0x31, 0x31, 0x36, 0x31, 0x31, 0x39, 0x33, 0x38, 0x34, 0x37, 0x36, 0x35, //0x00013664 QUAD $0x3136313130393431; QUAD $0x3536373438333931 // .asciz 16, '1490116119384765' - 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013674 QUAD $0x0000000000353236; QUAD $0x0000000000000000 // .asciz 16, '625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013684 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001365c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0001366c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0d, 0x00, 0x00, 0x00, //0x00013670 .long 13 + 0x39, 0x30, 0x39, 0x34, 0x39, 0x34, 0x37, 0x30, 0x31, 0x37, 0x37, 0x32, 0x39, 0x32, 0x38, 0x32, //0x00013674 QUAD $0x3037343934393039; QUAD $0x3238323932373731 // .asciz 16, '9094947017729282' + 0x33, 0x37, 0x39, 0x31, 0x35, 0x30, 0x33, 0x39, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, //0x00013684 QUAD $0x3933303531393733; QUAD $0x0000000035323630 // .asciz 16, '379150390625\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013694 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000136a4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000136b4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x000136c4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x09, 0x00, 0x00, 0x00, //0x000136c8 .long 9 - 0x37, 0x34, 0x35, 0x30, 0x35, 0x38, 0x30, 0x35, 0x39, 0x36, 0x39, 0x32, 0x33, 0x38, 0x32, 0x38, //0x000136cc QUAD $0x3530383530353437; QUAD $0x3832383332393639 // .asciz 16, '7450580596923828' - 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000136dc QUAD $0x0000000000353231; QUAD $0x0000000000000000 // .asciz 16, '125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000136ec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000136c4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000136d4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0d, 0x00, 0x00, 0x00, //0x000136d8 .long 13 + 0x34, 0x35, 0x34, 0x37, 0x34, 0x37, 0x33, 0x35, 0x30, 0x38, 0x38, 0x36, 0x34, 0x36, 0x34, 0x31, //0x000136dc QUAD $0x3533373437343534; QUAD $0x3134363436383830 // .asciz 16, '4547473508864641' + 0x31, 0x38, 0x39, 0x35, 0x37, 0x35, 0x31, 0x39, 0x35, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, //0x000136ec QUAD $0x3931353735393831; QUAD $0x0000003532313335 // .asciz 16, '1895751953125\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000136fc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001370c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001371c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x0001372c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x09, 0x00, 0x00, 0x00, //0x00013730 .long 9 - 0x33, 0x37, 0x32, 0x35, 0x32, 0x39, 0x30, 0x32, 0x39, 0x38, 0x34, 0x36, 0x31, 0x39, 0x31, 0x34, //0x00013734 QUAD $0x3230393235323733; QUAD $0x3431393136343839 // .asciz 16, '3725290298461914' - 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013744 QUAD $0x0000000035323630; QUAD $0x0000000000000000 // .asciz 16, '0625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013754 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001372c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0001373c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0d, 0x00, 0x00, 0x00, //0x00013740 .long 13 + 0x32, 0x32, 0x37, 0x33, 0x37, 0x33, 0x36, 0x37, 0x35, 0x34, 0x34, 0x33, 0x32, 0x33, 0x32, 0x30, //0x00013744 QUAD $0x3736333733373232; QUAD $0x3032333233343435 // .asciz 16, '2273736754432320' + 0x35, 0x39, 0x34, 0x37, 0x38, 0x37, 0x35, 0x39, 0x37, 0x36, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, //0x00013754 QUAD $0x3935373837343935; QUAD $0x0000353236353637 // .asciz 16, '59478759765625\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013764 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013774 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013784 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00013794 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x09, 0x00, 0x00, 0x00, //0x00013798 .long 9 - 0x31, 0x38, 0x36, 0x32, 0x36, 0x34, 0x35, 0x31, 0x34, 0x39, 0x32, 0x33, 0x30, 0x39, 0x35, 0x37, //0x0001379c QUAD $0x3135343632363831; QUAD $0x3735393033323934 // .asciz 16, '1862645149230957' - 0x30, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000137ac QUAD $0x0000003532313330; QUAD $0x0000000000000000 // .asciz 16, '03125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000137bc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013794 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000137a4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0d, 0x00, 0x00, 0x00, //0x000137a8 .long 13 + 0x31, 0x31, 0x33, 0x36, 0x38, 0x36, 0x38, 0x33, 0x37, 0x37, 0x32, 0x31, 0x36, 0x31, 0x36, 0x30, //0x000137ac QUAD $0x3338363836333131; QUAD $0x3036313631323737 // .asciz 16, '1136868377216160' + 0x32, 0x39, 0x37, 0x33, 0x39, 0x33, 0x37, 0x39, 0x38, 0x38, 0x32, 0x38, 0x31, 0x32, 0x35, 0x00, //0x000137bc QUAD $0x3937333933373932; QUAD $0x0035323138323838 // .asciz 16, '297393798828125\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000137cc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000137dc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000137ec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x000137fc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0a, 0x00, 0x00, 0x00, //0x00013800 .long 10 - 0x39, 0x33, 0x31, 0x33, 0x32, 0x32, 0x35, 0x37, 0x34, 0x36, 0x31, 0x35, 0x34, 0x37, 0x38, 0x35, //0x00013804 QUAD $0x3735323233313339; QUAD $0x3538373435313634 // .asciz 16, '9313225746154785' - 0x31, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013814 QUAD $0x0000003532363531; QUAD $0x0000000000000000 // .asciz 16, '15625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013824 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000137fc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0001380c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0e, 0x00, 0x00, 0x00, //0x00013810 .long 14 + 0x35, 0x36, 0x38, 0x34, 0x33, 0x34, 0x31, 0x38, 0x38, 0x36, 0x30, 0x38, 0x30, 0x38, 0x30, 0x31, //0x00013814 QUAD $0x3831343334383635; QUAD $0x3130383038303638 // .asciz 16, '5684341886080801' + 0x34, 0x38, 0x36, 0x39, 0x36, 0x38, 0x39, 0x39, 0x34, 0x31, 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, //0x00013824 QUAD $0x3939383639363834; QUAD $0x0035323630343134 // .asciz 16, '486968994140625\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013834 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013844 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013854 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00013864 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0a, 0x00, 0x00, 0x00, //0x00013868 .long 10 - 0x34, 0x36, 0x35, 0x36, 0x36, 0x31, 0x32, 0x38, 0x37, 0x33, 0x30, 0x37, 0x37, 0x33, 0x39, 0x32, //0x0001386c QUAD $0x3832313636353634; QUAD $0x3239333737303337 // .asciz 16, '4656612873077392' - 0x35, 0x37, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001387c QUAD $0x0000353231383735; QUAD $0x0000000000000000 // .asciz 16, '578125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001388c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013864 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00013874 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0e, 0x00, 0x00, 0x00, //0x00013878 .long 14 + 0x32, 0x38, 0x34, 0x32, 0x31, 0x37, 0x30, 0x39, 0x34, 0x33, 0x30, 0x34, 0x30, 0x34, 0x30, 0x30, //0x0001387c QUAD $0x3930373132343832; QUAD $0x3030343034303334 // .asciz 16, '2842170943040400' + 0x37, 0x34, 0x33, 0x34, 0x38, 0x34, 0x34, 0x39, 0x37, 0x30, 0x37, 0x30, 0x33, 0x31, 0x32, 0x35, //0x0001388c QUAD $0x3934343834333437; QUAD $0x3532313330373037 // .asciz 16, '7434844970703125' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001389c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000138ac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000138bc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x000138cc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0a, 0x00, 0x00, 0x00, //0x000138d0 .long 10 - 0x32, 0x33, 0x32, 0x38, 0x33, 0x30, 0x36, 0x34, 0x33, 0x36, 0x35, 0x33, 0x38, 0x36, 0x39, 0x36, //0x000138d4 QUAD $0x3436303338323332; QUAD $0x3639363833353633 // .asciz 16, '2328306436538696' - 0x32, 0x38, 0x39, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000138e4 QUAD $0x0035323630393832; QUAD $0x0000000000000000 // .asciz 16, '2890625\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000138f4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013904 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000138cc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000138dc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0e, 0x00, 0x00, 0x00, //0x000138e0 .long 14 + 0x31, 0x34, 0x32, 0x31, 0x30, 0x38, 0x35, 0x34, 0x37, 0x31, 0x35, 0x32, 0x30, 0x32, 0x30, 0x30, //0x000138e4 QUAD $0x3435383031323431; QUAD $0x3030323032353137 // .asciz 16, '1421085471520200' + 0x33, 0x37, 0x31, 0x37, 0x34, 0x32, 0x32, 0x34, 0x38, 0x35, 0x33, 0x35, 0x31, 0x35, 0x36, 0x32, //0x000138f4 QUAD $0x3432323437313733; QUAD $0x3236353135333538 // .asciz 16, '3717422485351562' + 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013904 QUAD $0x0000000000000035; QUAD $0x0000000000000000 // .asciz 16, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013914 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013924 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00013934 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0a, 0x00, 0x00, 0x00, //0x00013938 .long 10 - 0x31, 0x31, 0x36, 0x34, 0x31, 0x35, 0x33, 0x32, 0x31, 0x38, 0x32, 0x36, 0x39, 0x33, 0x34, 0x38, //0x0001393c QUAD $0x3233353134363131; QUAD $0x3834333936323831 // .asciz 16, '1164153218269348' - 0x31, 0x34, 0x34, 0x35, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001394c QUAD $0x3532313335343431; QUAD $0x0000000000000000 // .asciz 16, '14453125\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001395c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001396c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013934 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00013944 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0f, 0x00, 0x00, 0x00, //0x00013948 .long 15 + 0x37, 0x31, 0x30, 0x35, 0x34, 0x32, 0x37, 0x33, 0x35, 0x37, 0x36, 0x30, 0x31, 0x30, 0x30, 0x31, //0x0001394c QUAD $0x3337323435303137; QUAD $0x3130303130363735 // .asciz 16, '7105427357601001' + 0x38, 0x35, 0x38, 0x37, 0x31, 0x31, 0x32, 0x34, 0x32, 0x36, 0x37, 0x35, 0x37, 0x38, 0x31, 0x32, //0x0001395c QUAD $0x3432313137383538; QUAD $0x3231383735373632 // .asciz 16, '8587112426757812' + 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001396c QUAD $0x0000000000000035; QUAD $0x0000000000000000 // .asciz 16, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001397c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001398c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x0001399c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0b, 0x00, 0x00, 0x00, //0x000139a0 .long 11 - 0x35, 0x38, 0x32, 0x30, 0x37, 0x36, 0x36, 0x30, 0x39, 0x31, 0x33, 0x34, 0x36, 0x37, 0x34, 0x30, //0x000139a4 QUAD $0x3036363730323835; QUAD $0x3034373634333139 // .asciz 16, '5820766091346740' - 0x37, 0x32, 0x32, 0x36, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000139b4 QUAD $0x3532363536323237; QUAD $0x0000000000000000 // .asciz 16, '72265625\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000139c4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000139d4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001399c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000139ac LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0f, 0x00, 0x00, 0x00, //0x000139b0 .long 15 + 0x33, 0x35, 0x35, 0x32, 0x37, 0x31, 0x33, 0x36, 0x37, 0x38, 0x38, 0x30, 0x30, 0x35, 0x30, 0x30, //0x000139b4 QUAD $0x3633313732353533; QUAD $0x3030353030383837 // .asciz 16, '3552713678800500' + 0x39, 0x32, 0x39, 0x33, 0x35, 0x35, 0x36, 0x32, 0x31, 0x33, 0x33, 0x37, 0x38, 0x39, 0x30, 0x36, //0x000139c4 QUAD $0x3236353533393239; QUAD $0x3630393837333331 // .asciz 16, '9293556213378906' + 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000139d4 QUAD $0x0000000000003532; QUAD $0x0000000000000000 // .asciz 16, '25\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000139e4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000139f4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00013a04 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0b, 0x00, 0x00, 0x00, //0x00013a08 .long 11 - 0x32, 0x39, 0x31, 0x30, 0x33, 0x38, 0x33, 0x30, 0x34, 0x35, 0x36, 0x37, 0x33, 0x33, 0x37, 0x30, //0x00013a0c QUAD $0x3033383330313932; QUAD $0x3037333337363534 // .asciz 16, '2910383045673370' - 0x33, 0x36, 0x31, 0x33, 0x32, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013a1c QUAD $0x3231383233313633; QUAD $0x0000000000000035 // .asciz 16, '361328125\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013a2c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013a3c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013a04 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00013a14 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0f, 0x00, 0x00, 0x00, //0x00013a18 .long 15 + 0x31, 0x37, 0x37, 0x36, 0x33, 0x35, 0x36, 0x38, 0x33, 0x39, 0x34, 0x30, 0x30, 0x32, 0x35, 0x30, //0x00013a1c QUAD $0x3836353336373731; QUAD $0x3035323030343933 // .asciz 16, '1776356839400250' + 0x34, 0x36, 0x34, 0x36, 0x37, 0x37, 0x38, 0x31, 0x30, 0x36, 0x36, 0x38, 0x39, 0x34, 0x35, 0x33, //0x00013a2c QUAD $0x3138373736343634; QUAD $0x3335343938363630 // .asciz 16, '4646778106689453' + 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013a3c QUAD $0x0000000000353231; QUAD $0x0000000000000000 // .asciz 16, '125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013a4c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013a5c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00013a6c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0b, 0x00, 0x00, 0x00, //0x00013a70 .long 11 - 0x31, 0x34, 0x35, 0x35, 0x31, 0x39, 0x31, 0x35, 0x32, 0x32, 0x38, 0x33, 0x36, 0x36, 0x38, 0x35, //0x00013a74 QUAD $0x3531393135353431; QUAD $0x3538363633383232 // .asciz 16, '1455191522836685' - 0x31, 0x38, 0x30, 0x36, 0x36, 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013a84 QUAD $0x3630343636303831; QUAD $0x0000000000003532 // .asciz 16, '1806640625\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013a94 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013aa4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013a6c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00013a7c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x10, 0x00, 0x00, 0x00, //0x00013a80 .long 16 + 0x38, 0x38, 0x38, 0x31, 0x37, 0x38, 0x34, 0x31, 0x39, 0x37, 0x30, 0x30, 0x31, 0x32, 0x35, 0x32, //0x00013a84 QUAD $0x3134383731383838; QUAD $0x3235323130303739 // .asciz 16, '8881784197001252' + 0x33, 0x32, 0x33, 0x33, 0x38, 0x39, 0x30, 0x35, 0x33, 0x33, 0x34, 0x34, 0x37, 0x32, 0x36, 0x35, //0x00013a94 QUAD $0x3530393833333233; QUAD $0x3536323734343333 // .asciz 16, '3233890533447265' + 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013aa4 QUAD $0x0000000000353236; QUAD $0x0000000000000000 // .asciz 16, '625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013ab4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013ac4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00013ad4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0c, 0x00, 0x00, 0x00, //0x00013ad8 .long 12 - 0x37, 0x32, 0x37, 0x35, 0x39, 0x35, 0x37, 0x36, 0x31, 0x34, 0x31, 0x38, 0x33, 0x34, 0x32, 0x35, //0x00013adc QUAD $0x3637353935373237; QUAD $0x3532343338313431 // .asciz 16, '7275957614183425' - 0x39, 0x30, 0x33, 0x33, 0x32, 0x30, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013aec QUAD $0x3133303233333039; QUAD $0x0000000000003532 // .asciz 16, '9033203125\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013afc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013b0c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013ad4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00013ae4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x10, 0x00, 0x00, 0x00, //0x00013ae8 .long 16 + 0x34, 0x34, 0x34, 0x30, 0x38, 0x39, 0x32, 0x30, 0x39, 0x38, 0x35, 0x30, 0x30, 0x36, 0x32, 0x36, //0x00013aec QUAD $0x3032393830343434; QUAD $0x3632363030353839 // .asciz 16, '4440892098500626' + 0x31, 0x36, 0x31, 0x36, 0x39, 0x34, 0x35, 0x32, 0x36, 0x36, 0x37, 0x32, 0x33, 0x36, 0x33, 0x32, //0x00013afc QUAD $0x3235343936313631; QUAD $0x3233363332373636 // .asciz 16, '1616945266723632' + 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013b0c QUAD $0x0000000035323138; QUAD $0x0000000000000000 // .asciz 16, '8125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013b1c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013b2c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00013b3c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0c, 0x00, 0x00, 0x00, //0x00013b40 .long 12 - 0x33, 0x36, 0x33, 0x37, 0x39, 0x37, 0x38, 0x38, 0x30, 0x37, 0x30, 0x39, 0x31, 0x37, 0x31, 0x32, //0x00013b44 QUAD $0x3838373937333633; QUAD $0x3231373139303730 // .asciz 16, '3637978807091712' - 0x39, 0x35, 0x31, 0x36, 0x36, 0x30, 0x31, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013b54 QUAD $0x3531303636313539; QUAD $0x0000000000353236 // .asciz 16, '95166015625\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013b64 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013b74 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013b3c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00013b4c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x10, 0x00, 0x00, 0x00, //0x00013b50 .long 16 + 0x32, 0x32, 0x32, 0x30, 0x34, 0x34, 0x36, 0x30, 0x34, 0x39, 0x32, 0x35, 0x30, 0x33, 0x31, 0x33, //0x00013b54 QUAD $0x3036343430323232; QUAD $0x3331333035323934 // .asciz 16, '2220446049250313' + 0x30, 0x38, 0x30, 0x38, 0x34, 0x37, 0x32, 0x36, 0x33, 0x33, 0x33, 0x36, 0x31, 0x38, 0x31, 0x36, //0x00013b64 QUAD $0x3632373438303830; QUAD $0x3631383136333333 // .asciz 16, '0808472633361816' + 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013b74 QUAD $0x0000003532363034; QUAD $0x0000000000000000 // .asciz 16, '40625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013b84 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013b94 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00013ba4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0c, 0x00, 0x00, 0x00, //0x00013ba8 .long 12 - 0x31, 0x38, 0x31, 0x38, 0x39, 0x38, 0x39, 0x34, 0x30, 0x33, 0x35, 0x34, 0x35, 0x38, 0x35, 0x36, //0x00013bac QUAD $0x3439383938313831; QUAD $0x3635383534353330 // .asciz 16, '1818989403545856' - 0x34, 0x37, 0x35, 0x38, 0x33, 0x30, 0x30, 0x37, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, //0x00013bbc QUAD $0x3730303338353734; QUAD $0x0000000035323138 // .asciz 16, '475830078125\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013bcc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013bdc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013ba4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00013bb4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x10, 0x00, 0x00, 0x00, //0x00013bb8 .long 16 + 0x31, 0x31, 0x31, 0x30, 0x32, 0x32, 0x33, 0x30, 0x32, 0x34, 0x36, 0x32, 0x35, 0x31, 0x35, 0x36, //0x00013bbc QUAD $0x3033323230313131; QUAD $0x3635313532363432 // .asciz 16, '1110223024625156' + 0x35, 0x34, 0x30, 0x34, 0x32, 0x33, 0x36, 0x33, 0x31, 0x36, 0x36, 0x38, 0x30, 0x39, 0x30, 0x38, //0x00013bcc QUAD $0x3336333234303435; QUAD $0x3830393038363631 // .asciz 16, '5404236316680908' + 0x32, 0x30, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013bdc QUAD $0x0000353231333032; QUAD $0x0000000000000000 // .asciz 16, '203125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013bec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013bfc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00013c0c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0d, 0x00, 0x00, 0x00, //0x00013c10 .long 13 - 0x39, 0x30, 0x39, 0x34, 0x39, 0x34, 0x37, 0x30, 0x31, 0x37, 0x37, 0x32, 0x39, 0x32, 0x38, 0x32, //0x00013c14 QUAD $0x3037343934393039; QUAD $0x3238323932373731 // .asciz 16, '9094947017729282' - 0x33, 0x37, 0x39, 0x31, 0x35, 0x30, 0x33, 0x39, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, //0x00013c24 QUAD $0x3933303531393733; QUAD $0x0000000035323630 // .asciz 16, '379150390625\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013c34 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013c44 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013c0c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00013c1c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x11, 0x00, 0x00, 0x00, //0x00013c20 .long 17 + 0x35, 0x35, 0x35, 0x31, 0x31, 0x31, 0x35, 0x31, 0x32, 0x33, 0x31, 0x32, 0x35, 0x37, 0x38, 0x32, //0x00013c24 QUAD $0x3135313131353535; QUAD $0x3238373532313332 // .asciz 16, '5551115123125782' + 0x37, 0x30, 0x32, 0x31, 0x31, 0x38, 0x31, 0x35, 0x38, 0x33, 0x34, 0x30, 0x34, 0x35, 0x34, 0x31, //0x00013c34 QUAD $0x3531383131323037; QUAD $0x3134353430343338 // .asciz 16, '7021181583404541' + 0x30, 0x31, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013c44 QUAD $0x0000353236353130; QUAD $0x0000000000000000 // .asciz 16, '015625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013c54 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013c64 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00013c74 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0d, 0x00, 0x00, 0x00, //0x00013c78 .long 13 - 0x34, 0x35, 0x34, 0x37, 0x34, 0x37, 0x33, 0x35, 0x30, 0x38, 0x38, 0x36, 0x34, 0x36, 0x34, 0x31, //0x00013c7c QUAD $0x3533373437343534; QUAD $0x3134363436383830 // .asciz 16, '4547473508864641' - 0x31, 0x38, 0x39, 0x35, 0x37, 0x35, 0x31, 0x39, 0x35, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, //0x00013c8c QUAD $0x3931353735393831; QUAD $0x0000003532313335 // .asciz 16, '1895751953125\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013c9c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013cac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013c74 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00013c84 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x11, 0x00, 0x00, 0x00, //0x00013c88 .long 17 + 0x32, 0x37, 0x37, 0x35, 0x35, 0x35, 0x37, 0x35, 0x36, 0x31, 0x35, 0x36, 0x32, 0x38, 0x39, 0x31, //0x00013c8c QUAD $0x3537353535373732; QUAD $0x3139383236353136 // .asciz 16, '2775557561562891' + 0x33, 0x35, 0x31, 0x30, 0x35, 0x39, 0x30, 0x37, 0x39, 0x31, 0x37, 0x30, 0x32, 0x32, 0x37, 0x30, //0x00013c9c QUAD $0x3730393530313533; QUAD $0x3037323230373139 // .asciz 16, '3510590791702270' + 0x35, 0x30, 0x37, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013cac QUAD $0x0035323138373035; QUAD $0x0000000000000000 // .asciz 16, '5078125\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013cbc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013ccc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00013cdc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0d, 0x00, 0x00, 0x00, //0x00013ce0 .long 13 - 0x32, 0x32, 0x37, 0x33, 0x37, 0x33, 0x36, 0x37, 0x35, 0x34, 0x34, 0x33, 0x32, 0x33, 0x32, 0x30, //0x00013ce4 QUAD $0x3736333733373232; QUAD $0x3032333233343435 // .asciz 16, '2273736754432320' - 0x35, 0x39, 0x34, 0x37, 0x38, 0x37, 0x35, 0x39, 0x37, 0x36, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, //0x00013cf4 QUAD $0x3935373837343935; QUAD $0x0000353236353637 // .asciz 16, '59478759765625\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013d04 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013d14 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013cdc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00013cec LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x11, 0x00, 0x00, 0x00, //0x00013cf0 .long 17 + 0x31, 0x33, 0x38, 0x37, 0x37, 0x37, 0x38, 0x37, 0x38, 0x30, 0x37, 0x38, 0x31, 0x34, 0x34, 0x35, //0x00013cf4 QUAD $0x3738373737383331; QUAD $0x3534343138373038 // .asciz 16, '1387778780781445' + 0x36, 0x37, 0x35, 0x35, 0x32, 0x39, 0x35, 0x33, 0x39, 0x35, 0x38, 0x35, 0x31, 0x31, 0x33, 0x35, //0x00013d04 QUAD $0x3335393235353736; QUAD $0x3533313135383539 // .asciz 16, '6755295395851135' + 0x32, 0x35, 0x33, 0x39, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013d14 QUAD $0x3532363039333532; QUAD $0x0000000000000000 // .asciz 16, '25390625\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013d24 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013d34 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00013d44 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0d, 0x00, 0x00, 0x00, //0x00013d48 .long 13 - 0x31, 0x31, 0x33, 0x36, 0x38, 0x36, 0x38, 0x33, 0x37, 0x37, 0x32, 0x31, 0x36, 0x31, 0x36, 0x30, //0x00013d4c QUAD $0x3338363836333131; QUAD $0x3036313631323737 // .asciz 16, '1136868377216160' - 0x32, 0x39, 0x37, 0x33, 0x39, 0x33, 0x37, 0x39, 0x38, 0x38, 0x32, 0x38, 0x31, 0x32, 0x35, 0x00, //0x00013d5c QUAD $0x3937333933373932; QUAD $0x0035323138323838 // .asciz 16, '297393798828125\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013d6c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013d7c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013d44 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00013d54 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x12, 0x00, 0x00, 0x00, //0x00013d58 .long 18 + 0x36, 0x39, 0x33, 0x38, 0x38, 0x39, 0x33, 0x39, 0x30, 0x33, 0x39, 0x30, 0x37, 0x32, 0x32, 0x38, //0x00013d5c QUAD $0x3933393838333936; QUAD $0x3832323730393330 // .asciz 16, '6938893903907228' + 0x33, 0x37, 0x37, 0x36, 0x34, 0x37, 0x36, 0x39, 0x37, 0x39, 0x32, 0x35, 0x35, 0x36, 0x37, 0x36, //0x00013d6c QUAD $0x3936373436373733; QUAD $0x3637363535323937 // .asciz 16, '3776476979255676' + 0x32, 0x36, 0x39, 0x35, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013d7c QUAD $0x3532313335393632; QUAD $0x0000000000000000 // .asciz 16, '26953125\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013d8c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013d9c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00013dac LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0e, 0x00, 0x00, 0x00, //0x00013db0 .long 14 - 0x35, 0x36, 0x38, 0x34, 0x33, 0x34, 0x31, 0x38, 0x38, 0x36, 0x30, 0x38, 0x30, 0x38, 0x30, 0x31, //0x00013db4 QUAD $0x3831343334383635; QUAD $0x3130383038303638 // .asciz 16, '5684341886080801' - 0x34, 0x38, 0x36, 0x39, 0x36, 0x38, 0x39, 0x39, 0x34, 0x31, 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, //0x00013dc4 QUAD $0x3939383639363834; QUAD $0x0035323630343134 // .asciz 16, '486968994140625\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013dd4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013de4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013dac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00013dbc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x12, 0x00, 0x00, 0x00, //0x00013dc0 .long 18 + 0x33, 0x34, 0x36, 0x39, 0x34, 0x34, 0x36, 0x39, 0x35, 0x31, 0x39, 0x35, 0x33, 0x36, 0x31, 0x34, //0x00013dc4 QUAD $0x3936343439363433; QUAD $0x3431363335393135 // .asciz 16, '3469446951953614' + 0x31, 0x38, 0x38, 0x38, 0x32, 0x33, 0x38, 0x34, 0x38, 0x39, 0x36, 0x32, 0x37, 0x38, 0x33, 0x38, //0x00013dd4 QUAD $0x3438333238383831; QUAD $0x3833383732363938 // .asciz 16, '1888238489627838' + 0x31, 0x33, 0x34, 0x37, 0x36, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013de4 QUAD $0x3236353637343331; QUAD $0x0000000000000035 // .asciz 16, '134765625\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013df4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013e04 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00013e14 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0e, 0x00, 0x00, 0x00, //0x00013e18 .long 14 - 0x32, 0x38, 0x34, 0x32, 0x31, 0x37, 0x30, 0x39, 0x34, 0x33, 0x30, 0x34, 0x30, 0x34, 0x30, 0x30, //0x00013e1c QUAD $0x3930373132343832; QUAD $0x3030343034303334 // .asciz 16, '2842170943040400' - 0x37, 0x34, 0x33, 0x34, 0x38, 0x34, 0x34, 0x39, 0x37, 0x30, 0x37, 0x30, 0x33, 0x31, 0x32, 0x35, //0x00013e2c QUAD $0x3934343834333437; QUAD $0x3532313330373037 // .asciz 16, '7434844970703125' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013e3c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013e4c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013e14 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00013e24 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x12, 0x00, 0x00, 0x00, //0x00013e28 .long 18 + 0x31, 0x37, 0x33, 0x34, 0x37, 0x32, 0x33, 0x34, 0x37, 0x35, 0x39, 0x37, 0x36, 0x38, 0x30, 0x37, //0x00013e2c QUAD $0x3433323734333731; QUAD $0x3730383637393537 // .asciz 16, '1734723475976807' + 0x30, 0x39, 0x34, 0x34, 0x31, 0x31, 0x39, 0x32, 0x34, 0x34, 0x38, 0x31, 0x33, 0x39, 0x31, 0x39, //0x00013e3c QUAD $0x3239313134343930; QUAD $0x3931393331383434 // .asciz 16, '0944119244813919' + 0x30, 0x36, 0x37, 0x33, 0x38, 0x32, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013e4c QUAD $0x3138323833373630; QUAD $0x0000000000003532 // .asciz 16, '0673828125\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013e5c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013e6c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00013e7c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0e, 0x00, 0x00, 0x00, //0x00013e80 .long 14 - 0x31, 0x34, 0x32, 0x31, 0x30, 0x38, 0x35, 0x34, 0x37, 0x31, 0x35, 0x32, 0x30, 0x32, 0x30, 0x30, //0x00013e84 QUAD $0x3435383031323431; QUAD $0x3030323032353137 // .asciz 16, '1421085471520200' - 0x33, 0x37, 0x31, 0x37, 0x34, 0x32, 0x32, 0x34, 0x38, 0x35, 0x33, 0x35, 0x31, 0x35, 0x36, 0x32, //0x00013e94 QUAD $0x3432323437313733; QUAD $0x3236353135333538 // .asciz 16, '3717422485351562' - 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013ea4 QUAD $0x0000000000000035; QUAD $0x0000000000000000 // .asciz 16, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013eb4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013e7c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00013e8c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x13, 0x00, 0x00, 0x00, //0x00013e90 .long 19 + 0x38, 0x36, 0x37, 0x33, 0x36, 0x31, 0x37, 0x33, 0x37, 0x39, 0x38, 0x38, 0x34, 0x30, 0x33, 0x35, //0x00013e94 QUAD $0x3337313633373638; QUAD $0x3533303438383937 // .asciz 16, '8673617379884035' + 0x34, 0x37, 0x32, 0x30, 0x35, 0x39, 0x36, 0x32, 0x32, 0x34, 0x30, 0x36, 0x39, 0x35, 0x39, 0x35, //0x00013ea4 QUAD $0x3236393530323734; QUAD $0x3539353936303432 // .asciz 16, '4720596224069595' + 0x33, 0x33, 0x36, 0x39, 0x31, 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013eb4 QUAD $0x3630343139363333; QUAD $0x0000000000003532 // .asciz 16, '3369140625\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013ec4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013ed4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00013ee4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0f, 0x00, 0x00, 0x00, //0x00013ee8 .long 15 - 0x37, 0x31, 0x30, 0x35, 0x34, 0x32, 0x37, 0x33, 0x35, 0x37, 0x36, 0x30, 0x31, 0x30, 0x30, 0x31, //0x00013eec QUAD $0x3337323435303137; QUAD $0x3130303130363735 // .asciz 16, '7105427357601001' - 0x38, 0x35, 0x38, 0x37, 0x31, 0x31, 0x32, 0x34, 0x32, 0x36, 0x37, 0x35, 0x37, 0x38, 0x31, 0x32, //0x00013efc QUAD $0x3432313137383538; QUAD $0x3231383735373632 // .asciz 16, '8587112426757812' - 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013f0c QUAD $0x0000000000000035; QUAD $0x0000000000000000 // .asciz 16, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013f1c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013f2c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013f3c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00013f4c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0f, 0x00, 0x00, 0x00, //0x00013f50 .long 15 - 0x33, 0x35, 0x35, 0x32, 0x37, 0x31, 0x33, 0x36, 0x37, 0x38, 0x38, 0x30, 0x30, 0x35, 0x30, 0x30, //0x00013f54 QUAD $0x3633313732353533; QUAD $0x3030353030383837 // .asciz 16, '3552713678800500' - 0x39, 0x32, 0x39, 0x33, 0x35, 0x35, 0x36, 0x32, 0x31, 0x33, 0x33, 0x37, 0x38, 0x39, 0x30, 0x36, //0x00013f64 QUAD $0x3236353533393239; QUAD $0x3630393837333331 // .asciz 16, '9293556213378906' - 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013f74 QUAD $0x0000000000003532; QUAD $0x0000000000000000 // .asciz 16, '25\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013f84 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013f94 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013fa4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00013fb4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0f, 0x00, 0x00, 0x00, //0x00013fb8 .long 15 - 0x31, 0x37, 0x37, 0x36, 0x33, 0x35, 0x36, 0x38, 0x33, 0x39, 0x34, 0x30, 0x30, 0x32, 0x35, 0x30, //0x00013fbc QUAD $0x3836353336373731; QUAD $0x3035323030343933 // .asciz 16, '1776356839400250' - 0x34, 0x36, 0x34, 0x36, 0x37, 0x37, 0x38, 0x31, 0x30, 0x36, 0x36, 0x38, 0x39, 0x34, 0x35, 0x33, //0x00013fcc QUAD $0x3138373736343634; QUAD $0x3335343938363630 // .asciz 16, '4646778106689453' - 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013fdc QUAD $0x0000000000353231; QUAD $0x0000000000000000 // .asciz 16, '125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013fec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013ffc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001400c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x0001401c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x10, 0x00, 0x00, 0x00, //0x00014020 .long 16 - 0x38, 0x38, 0x38, 0x31, 0x37, 0x38, 0x34, 0x31, 0x39, 0x37, 0x30, 0x30, 0x31, 0x32, 0x35, 0x32, //0x00014024 QUAD $0x3134383731383838; QUAD $0x3235323130303739 // .asciz 16, '8881784197001252' - 0x33, 0x32, 0x33, 0x33, 0x38, 0x39, 0x30, 0x35, 0x33, 0x33, 0x34, 0x34, 0x37, 0x32, 0x36, 0x35, //0x00014034 QUAD $0x3530393833333233; QUAD $0x3536323734343333 // .asciz 16, '3233890533447265' - 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00014044 QUAD $0x0000000000353236; QUAD $0x0000000000000000 // .asciz 16, '625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00014054 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00014064 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00014074 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00014084 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x10, 0x00, 0x00, 0x00, //0x00014088 .long 16 - 0x34, 0x34, 0x34, 0x30, 0x38, 0x39, 0x32, 0x30, 0x39, 0x38, 0x35, 0x30, 0x30, 0x36, 0x32, 0x36, //0x0001408c QUAD $0x3032393830343434; QUAD $0x3632363030353839 // .asciz 16, '4440892098500626' - 0x31, 0x36, 0x31, 0x36, 0x39, 0x34, 0x35, 0x32, 0x36, 0x36, 0x37, 0x32, 0x33, 0x36, 0x33, 0x32, //0x0001409c QUAD $0x3235343936313631; QUAD $0x3233363332373636 // .asciz 16, '1616945266723632' - 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000140ac QUAD $0x0000000035323138; QUAD $0x0000000000000000 // .asciz 16, '8125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000140bc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000140cc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000140dc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x000140ec LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x10, 0x00, 0x00, 0x00, //0x000140f0 .long 16 - 0x32, 0x32, 0x32, 0x30, 0x34, 0x34, 0x36, 0x30, 0x34, 0x39, 0x32, 0x35, 0x30, 0x33, 0x31, 0x33, //0x000140f4 QUAD $0x3036343430323232; QUAD $0x3331333035323934 // .asciz 16, '2220446049250313' - 0x30, 0x38, 0x30, 0x38, 0x34, 0x37, 0x32, 0x36, 0x33, 0x33, 0x33, 0x36, 0x31, 0x38, 0x31, 0x36, //0x00014104 QUAD $0x3632373438303830; QUAD $0x3631383136333333 // .asciz 16, '0808472633361816' - 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00014114 QUAD $0x0000003532363034; QUAD $0x0000000000000000 // .asciz 16, '40625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00014124 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00014134 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00014144 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00014154 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x10, 0x00, 0x00, 0x00, //0x00014158 .long 16 - 0x31, 0x31, 0x31, 0x30, 0x32, 0x32, 0x33, 0x30, 0x32, 0x34, 0x36, 0x32, 0x35, 0x31, 0x35, 0x36, //0x0001415c QUAD $0x3033323230313131; QUAD $0x3635313532363432 // .asciz 16, '1110223024625156' - 0x35, 0x34, 0x30, 0x34, 0x32, 0x33, 0x36, 0x33, 0x31, 0x36, 0x36, 0x38, 0x30, 0x39, 0x30, 0x38, //0x0001416c QUAD $0x3336333234303435; QUAD $0x3830393038363631 // .asciz 16, '5404236316680908' - 0x32, 0x30, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001417c QUAD $0x0000353231333032; QUAD $0x0000000000000000 // .asciz 16, '203125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001418c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001419c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000141ac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x000141bc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x11, 0x00, 0x00, 0x00, //0x000141c0 .long 17 - 0x35, 0x35, 0x35, 0x31, 0x31, 0x31, 0x35, 0x31, 0x32, 0x33, 0x31, 0x32, 0x35, 0x37, 0x38, 0x32, //0x000141c4 QUAD $0x3135313131353535; QUAD $0x3238373532313332 // .asciz 16, '5551115123125782' - 0x37, 0x30, 0x32, 0x31, 0x31, 0x38, 0x31, 0x35, 0x38, 0x33, 0x34, 0x30, 0x34, 0x35, 0x34, 0x31, //0x000141d4 QUAD $0x3531383131323037; QUAD $0x3134353430343338 // .asciz 16, '7021181583404541' - 0x30, 0x31, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000141e4 QUAD $0x0000353236353130; QUAD $0x0000000000000000 // .asciz 16, '015625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000141f4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00014204 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00014214 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00014224 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x11, 0x00, 0x00, 0x00, //0x00014228 .long 17 - 0x32, 0x37, 0x37, 0x35, 0x35, 0x35, 0x37, 0x35, 0x36, 0x31, 0x35, 0x36, 0x32, 0x38, 0x39, 0x31, //0x0001422c QUAD $0x3537353535373732; QUAD $0x3139383236353136 // .asciz 16, '2775557561562891' - 0x33, 0x35, 0x31, 0x30, 0x35, 0x39, 0x30, 0x37, 0x39, 0x31, 0x37, 0x30, 0x32, 0x32, 0x37, 0x30, //0x0001423c QUAD $0x3730393530313533; QUAD $0x3037323230373139 // .asciz 16, '3510590791702270' - 0x35, 0x30, 0x37, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001424c QUAD $0x0035323138373035; QUAD $0x0000000000000000 // .asciz 16, '5078125\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001425c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001426c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001427c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x0001428c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x11, 0x00, 0x00, 0x00, //0x00014290 .long 17 - 0x31, 0x33, 0x38, 0x37, 0x37, 0x37, 0x38, 0x37, 0x38, 0x30, 0x37, 0x38, 0x31, 0x34, 0x34, 0x35, //0x00014294 QUAD $0x3738373737383331; QUAD $0x3534343138373038 // .asciz 16, '1387778780781445' - 0x36, 0x37, 0x35, 0x35, 0x32, 0x39, 0x35, 0x33, 0x39, 0x35, 0x38, 0x35, 0x31, 0x31, 0x33, 0x35, //0x000142a4 QUAD $0x3335393235353736; QUAD $0x3533313135383539 // .asciz 16, '6755295395851135' - 0x32, 0x35, 0x33, 0x39, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000142b4 QUAD $0x3532363039333532; QUAD $0x0000000000000000 // .asciz 16, '25390625\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000142c4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000142d4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000142e4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x000142f4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x12, 0x00, 0x00, 0x00, //0x000142f8 .long 18 - 0x36, 0x39, 0x33, 0x38, 0x38, 0x39, 0x33, 0x39, 0x30, 0x33, 0x39, 0x30, 0x37, 0x32, 0x32, 0x38, //0x000142fc QUAD $0x3933393838333936; QUAD $0x3832323730393330 // .asciz 16, '6938893903907228' - 0x33, 0x37, 0x37, 0x36, 0x34, 0x37, 0x36, 0x39, 0x37, 0x39, 0x32, 0x35, 0x35, 0x36, 0x37, 0x36, //0x0001430c QUAD $0x3936373436373733; QUAD $0x3637363535323937 // .asciz 16, '3776476979255676' - 0x32, 0x36, 0x39, 0x35, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001431c QUAD $0x3532313335393632; QUAD $0x0000000000000000 // .asciz 16, '26953125\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001432c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001433c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001434c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x0001435c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x12, 0x00, 0x00, 0x00, //0x00014360 .long 18 - 0x33, 0x34, 0x36, 0x39, 0x34, 0x34, 0x36, 0x39, 0x35, 0x31, 0x39, 0x35, 0x33, 0x36, 0x31, 0x34, //0x00014364 QUAD $0x3936343439363433; QUAD $0x3431363335393135 // .asciz 16, '3469446951953614' - 0x31, 0x38, 0x38, 0x38, 0x32, 0x33, 0x38, 0x34, 0x38, 0x39, 0x36, 0x32, 0x37, 0x38, 0x33, 0x38, //0x00014374 QUAD $0x3438333238383831; QUAD $0x3833383732363938 // .asciz 16, '1888238489627838' - 0x31, 0x33, 0x34, 0x37, 0x36, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00014384 QUAD $0x3236353637343331; QUAD $0x0000000000000035 // .asciz 16, '134765625\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00014394 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000143a4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000143b4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x000143c4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x12, 0x00, 0x00, 0x00, //0x000143c8 .long 18 - 0x31, 0x37, 0x33, 0x34, 0x37, 0x32, 0x33, 0x34, 0x37, 0x35, 0x39, 0x37, 0x36, 0x38, 0x30, 0x37, //0x000143cc QUAD $0x3433323734333731; QUAD $0x3730383637393537 // .asciz 16, '1734723475976807' - 0x30, 0x39, 0x34, 0x34, 0x31, 0x31, 0x39, 0x32, 0x34, 0x34, 0x38, 0x31, 0x33, 0x39, 0x31, 0x39, //0x000143dc QUAD $0x3239313134343930; QUAD $0x3931393331383434 // .asciz 16, '0944119244813919' - 0x30, 0x36, 0x37, 0x33, 0x38, 0x32, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000143ec QUAD $0x3138323833373630; QUAD $0x0000000000003532 // .asciz 16, '0673828125\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000143fc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001440c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001441c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x0001442c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x13, 0x00, 0x00, 0x00, //0x00014430 .long 19 - 0x38, 0x36, 0x37, 0x33, 0x36, 0x31, 0x37, 0x33, 0x37, 0x39, 0x38, 0x38, 0x34, 0x30, 0x33, 0x35, //0x00014434 QUAD $0x3337313633373638; QUAD $0x3533303438383937 // .asciz 16, '8673617379884035' - 0x34, 0x37, 0x32, 0x30, 0x35, 0x39, 0x36, 0x32, 0x32, 0x34, 0x30, 0x36, 0x39, 0x35, 0x39, 0x35, //0x00014444 QUAD $0x3236393530323734; QUAD $0x3539353936303432 // .asciz 16, '4720596224069595' - 0x33, 0x33, 0x36, 0x39, 0x31, 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00014454 QUAD $0x3630343139363333; QUAD $0x0000000000003532 // .asciz 16, '3369140625\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00014464 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00014474 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00014484 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00014494 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00014498 .p2align 4, 0x00 - //0x000144a0 _P10_TAB - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x3f, //0x000144a0 .quad 0x3ff0000000000000 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x40, //0x000144a8 .quad 0x4024000000000000 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x59, 0x40, //0x000144b0 .quad 0x4059000000000000 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x8f, 0x40, //0x000144b8 .quad 0x408f400000000000 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0xc3, 0x40, //0x000144c0 .quad 0x40c3880000000000 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x6a, 0xf8, 0x40, //0x000144c8 .quad 0x40f86a0000000000 - 0x00, 0x00, 0x00, 0x00, 0x80, 0x84, 0x2e, 0x41, //0x000144d0 .quad 0x412e848000000000 - 0x00, 0x00, 0x00, 0x00, 0xd0, 0x12, 0x63, 0x41, //0x000144d8 .quad 0x416312d000000000 - 0x00, 0x00, 0x00, 0x00, 0x84, 0xd7, 0x97, 0x41, //0x000144e0 .quad 0x4197d78400000000 - 0x00, 0x00, 0x00, 0x00, 0x65, 0xcd, 0xcd, 0x41, //0x000144e8 .quad 0x41cdcd6500000000 - 0x00, 0x00, 0x00, 0x20, 0x5f, 0xa0, 0x02, 0x42, //0x000144f0 .quad 0x4202a05f20000000 - 0x00, 0x00, 0x00, 0xe8, 0x76, 0x48, 0x37, 0x42, //0x000144f8 .quad 0x42374876e8000000 - 0x00, 0x00, 0x00, 0xa2, 0x94, 0x1a, 0x6d, 0x42, //0x00014500 .quad 0x426d1a94a2000000 - 0x00, 0x00, 0x40, 0xe5, 0x9c, 0x30, 0xa2, 0x42, //0x00014508 .quad 0x42a2309ce5400000 - 0x00, 0x00, 0x90, 0x1e, 0xc4, 0xbc, 0xd6, 0x42, //0x00014510 .quad 0x42d6bcc41e900000 - 0x00, 0x00, 0x34, 0x26, 0xf5, 0x6b, 0x0c, 0x43, //0x00014518 .quad 0x430c6bf526340000 - 0x00, 0x80, 0xe0, 0x37, 0x79, 0xc3, 0x41, 0x43, //0x00014520 .quad 0x4341c37937e08000 - 0x00, 0xa0, 0xd8, 0x85, 0x57, 0x34, 0x76, 0x43, //0x00014528 .quad 0x4376345785d8a000 - 0x00, 0xc8, 0x4e, 0x67, 0x6d, 0xc1, 0xab, 0x43, //0x00014530 .quad 0x43abc16d674ec800 - 0x00, 0x3d, 0x91, 0x60, 0xe4, 0x58, 0xe1, 0x43, //0x00014538 .quad 0x43e158e460913d00 - 0x40, 0x8c, 0xb5, 0x78, 0x1d, 0xaf, 0x15, 0x44, //0x00014540 .quad 0x4415af1d78b58c40 - 0x50, 0xef, 0xe2, 0xd6, 0xe4, 0x1a, 0x4b, 0x44, //0x00014548 .quad 0x444b1ae4d6e2ef50 - 0x92, 0xd5, 0x4d, 0x06, 0xcf, 0xf0, 0x80, 0x44, //0x00014550 .quad 0x4480f0cf064dd592 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00014558 .p2align 4, 0x00 - //0x00014560 _pow10_ceil_sig_f32.g - 0xf5, 0xfc, 0x43, 0x4b, 0x2c, 0xb3, 0xce, 0x81, //0x00014560 .quad -9093133594791772939 - 0x32, 0xfc, 0x14, 0x5e, 0xf7, 0x5f, 0x42, 0xa2, //0x00014568 .quad -6754730975062328270 - 0x3f, 0x3b, 0x9a, 0x35, 0xf5, 0xf7, 0xd2, 0xca, //0x00014570 .quad -3831727700400522433 - 0x0e, 0xca, 0x00, 0x83, 0xf2, 0xb5, 0x87, 0xfd, //0x00014578 .quad -177973607073265138 - 0x49, 0x7e, 0xe0, 0x91, 0xb7, 0xd1, 0x74, 0x9e, //0x00014580 .quad -7028762532061872567 - 0xdb, 0x9d, 0x58, 0x76, 0x25, 0x06, 0x12, 0xc6, //0x00014588 .quad -4174267146649952805 - 0x52, 0xc5, 0xee, 0xd3, 0xae, 0x87, 0x96, 0xf7, //0x00014590 .quad -606147914885053102 - 0x53, 0x3b, 0x75, 0x44, 0xcd, 0x14, 0xbe, 0x9a, //0x00014598 .quad -7296371474444240045 - 0x28, 0x8a, 0x92, 0x95, 0x00, 0x9a, 0x6d, 0xc1, //0x000145a0 .quad -4508778324627912152 - 0xb2, 0x2c, 0xf7, 0xba, 0x80, 0x00, 0xc9, 0xf1, //0x000145a8 .quad -1024286887357502286 - 0xef, 0x7b, 0xda, 0x74, 0x50, 0xa0, 0x1d, 0x97, //0x000145b0 .quad -7557708332239520785 - 0xeb, 0x1a, 0x11, 0x92, 0x64, 0x08, 0xe5, 0xbc, //0x000145b8 .quad -4835449396872013077 - 0xa6, 0x61, 0x95, 0xb6, 0x7d, 0x4a, 0x1e, 0xec, //0x000145c0 .quad -1432625727662628442 - 0x08, 0x5d, 0x1d, 0x92, 0x8e, 0xee, 0x92, 0x93, //0x000145c8 .quad -7812920107430224632 - 0x4a, 0xb4, 0xa4, 0x36, 0x32, 0xaa, 0x77, 0xb8, //0x000145d0 .quad -5154464115860392886 - 0x5c, 0xe1, 0x4d, 0xc4, 0xbe, 0x94, 0x95, 0xe6, //0x000145d8 .quad -1831394126398103204 - 0xda, 0xac, 0xb0, 0x3a, 0xf7, 0x7c, 0x1d, 0x90, //0x000145e0 .quad -8062150356639896358 - 0x10, 0xd8, 0x5c, 0x09, 0x35, 0xdc, 0x24, 0xb4, //0x000145e8 .quad -5466001927372482544 - 0x14, 0x0e, 0xb4, 0x4b, 0x42, 0x13, 0x2e, 0xe1, //0x000145f0 .quad -2220816390788215276 - 0xcc, 0x88, 0x50, 0x6f, 0x09, 0xcc, 0xbc, 0x8c, //0x000145f8 .quad -8305539271883716404 - 0xff, 0xaa, 0x24, 0xcb, 0x0b, 0xff, 0xeb, 0xaf, //0x00014600 .quad -5770238071427257601 - 0xbf, 0xd5, 0xed, 0xbd, 0xce, 0xfe, 0xe6, 0xdb, //0x00014608 .quad -2601111570856684097 - 0x98, 0xa5, 0xb4, 0x36, 0x41, 0x5f, 0x70, 0x89, //0x00014610 .quad -8543223759426509416 - 0xfd, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x00014618 .quad -6067343680855748867 - 0xbd, 0x42, 0x7a, 0xe5, 0xd5, 0x94, 0xbf, 0xd6, //0x00014620 .quad -2972493582642298179 - 0xb6, 0x69, 0x6c, 0xaf, 0x05, 0xbd, 0x37, 0x86, //0x00014628 .quad -8775337516792518218 - 0x24, 0x84, 0x47, 0x1b, 0x47, 0xac, 0xc5, 0xa7, //0x00014630 .quad -6357485877563259868 - 0x2c, 0x65, 0x19, 0xe2, 0x58, 0x17, 0xb7, 0xd1, //0x00014638 .quad -3335171328526686932 - 0x3c, 0xdf, 0x4f, 0x8d, 0x97, 0x6e, 0x12, 0x83, //0x00014640 .quad -9002011107970261188 - 0x0b, 0xd7, 0xa3, 0x70, 0x3d, 0x0a, 0xd7, 0xa3, //0x00014648 .quad -6640827866535438581 - 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x00014650 .quad -3689348814741910323 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x00014658 .quad -9223372036854775808 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, //0x00014660 .quad -6917529027641081856 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc8, //0x00014668 .quad -4035225266123964416 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, //0x00014670 .quad -432345564227567616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x9c, //0x00014678 .quad -7187745005283311616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0xc3, //0x00014680 .quad -4372995238176751616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0xf4, //0x00014688 .quad -854558029293551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x96, 0x98, //0x00014690 .quad -7451627795949551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xbc, 0xbe, //0x00014698 .quad -4702848726509551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x6b, 0xee, //0x000146a0 .quad -1266874889709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0xf9, 0x02, 0x95, //0x000146a8 .quad -7709325833709551616 - 0x00, 0x00, 0x00, 0x00, 0x40, 0xb7, 0x43, 0xba, //0x000146b0 .quad -5024971273709551616 - 0x00, 0x00, 0x00, 0x00, 0x10, 0xa5, 0xd4, 0xe8, //0x000146b8 .quad -1669528073709551616 - 0x00, 0x00, 0x00, 0x00, 0x2a, 0xe7, 0x84, 0x91, //0x000146c0 .quad -7960984073709551616 - 0x00, 0x00, 0x00, 0x80, 0xf4, 0x20, 0xe6, 0xb5, //0x000146c8 .quad -5339544073709551616 - 0x00, 0x00, 0x00, 0xa0, 0x31, 0xa9, 0x5f, 0xe3, //0x000146d0 .quad -2062744073709551616 - 0x00, 0x00, 0x00, 0x04, 0xbf, 0xc9, 0x1b, 0x8e, //0x000146d8 .quad -8206744073709551616 - 0x00, 0x00, 0x00, 0xc5, 0x2e, 0xbc, 0xa2, 0xb1, //0x000146e0 .quad -5646744073709551616 - 0x00, 0x00, 0x40, 0x76, 0x3a, 0x6b, 0x0b, 0xde, //0x000146e8 .quad -2446744073709551616 - 0x00, 0x00, 0xe8, 0x89, 0x04, 0x23, 0xc7, 0x8a, //0x000146f0 .quad -8446744073709551616 - 0x00, 0x00, 0x62, 0xac, 0xc5, 0xeb, 0x78, 0xad, //0x000146f8 .quad -5946744073709551616 - 0x00, 0x80, 0x7a, 0x17, 0xb7, 0x26, 0xd7, 0xd8, //0x00014700 .quad -2821744073709551616 - 0x00, 0x90, 0xac, 0x6e, 0x32, 0x78, 0x86, 0x87, //0x00014708 .quad -8681119073709551616 - 0x00, 0xb4, 0x57, 0x0a, 0x3f, 0x16, 0x68, 0xa9, //0x00014710 .quad -6239712823709551616 - 0x00, 0xa1, 0xed, 0xcc, 0xce, 0x1b, 0xc2, 0xd3, //0x00014718 .quad -3187955011209551616 - 0xa0, 0x84, 0x14, 0x40, 0x61, 0x51, 0x59, 0x84, //0x00014720 .quad -8910000909647051616 - 0xc8, 0xa5, 0x19, 0x90, 0xb9, 0xa5, 0x6f, 0xa5, //0x00014728 .quad -6525815118631426616 - 0x3a, 0x0f, 0x20, 0xf4, 0x27, 0x8f, 0xcb, 0xce, //0x00014730 .quad -3545582879861895366 - 0x85, 0x09, 0x94, 0xf8, 0x78, 0x39, 0x3f, 0x81, //0x00014738 .quad -9133518327554766459 - 0xe6, 0x0b, 0xb9, 0x36, 0xd7, 0x07, 0x8f, 0xa1, //0x00014740 .quad -6805211891016070170 - 0xdf, 0x4e, 0x67, 0x04, 0xcd, 0xc9, 0xf2, 0xc9, //0x00014748 .quad -3894828845342699809 - 0x97, 0x22, 0x81, 0x45, 0x40, 0x7c, 0x6f, 0xfc, //0x00014750 .quad -256850038250986857 - 0x9e, 0xb5, 0x70, 0x2b, 0xa8, 0xad, 0xc5, 0x9d, //0x00014758 .quad -7078060301547948642 - 0x06, 0xe3, 0x4c, 0x36, 0x12, 0x19, 0x37, 0xc5, //0x00014760 .quad -4235889358507547898 - 0xc7, 0x1b, 0xe0, 0xc3, 0x56, 0xdf, 0x84, 0xf6, //0x00014768 .quad -683175679707046969 - 0x5d, 0x11, 0x6c, 0x3a, 0x96, 0x0b, 0x13, 0x9a, //0x00014770 .quad -7344513827457986211 - 0xb4, 0x15, 0x07, 0xc9, 0x7b, 0xce, 0x97, 0xc0, //0x00014778 .quad -4568956265895094860 - 0x21, 0xdb, 0x48, 0xbb, 0x1a, 0xc2, 0xbd, 0xf0, //0x00014780 .quad -1099509313941480671 - 0xf5, 0x88, 0x0d, 0xb5, 0x50, 0x99, 0x76, 0x96, //0x00014788 .quad -7604722348854507275 - 0x32, 0xeb, 0x50, 0xe2, 0xa4, 0x3f, 0x14, 0xbc, //0x00014790 .quad -4894216917640746190 - 0xfe, 0x25, 0xe5, 0x1a, 0x8e, 0x4f, 0x19, 0xeb, //0x00014798 .quad -1506085128623544834 - 0xbf, 0x37, 0xcf, 0xd0, 0xb8, 0xd1, 0xef, 0x92, //0x000147a0 .quad -7858832233030797377 - 0xae, 0x05, 0x03, 0x05, 0x27, 0xc6, 0xab, 0xb7, //0x000147a8 .quad -5211854272861108818 - 0x1a, 0xc7, 0x43, 0xc6, 0xb0, 0xb7, 0x96, 0xe5, //0x000147b0 .quad -1903131822648998118 - 0x70, 0x5c, 0xea, 0x7b, 0xce, 0x32, 0x7e, 0x8f, //0x000147b8 .quad -8106986416796705680 - 0x8c, 0xf3, 0xe4, 0x1a, 0x82, 0xbf, 0x5d, 0xb3, //0x000147c0 .quad -5522047002568494196 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013ee4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00013ef4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013ef8 .p2align 4, 0x00 + //0x00013f00 _P10_TAB + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x3f, //0x00013f00 .quad 4607182418800017408 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x40, //0x00013f08 .quad 4621819117588971520 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x59, 0x40, //0x00013f10 .quad 4636737291354636288 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x8f, 0x40, //0x00013f18 .quad 4652007308841189376 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0xc3, 0x40, //0x00013f20 .quad 4666723172467343360 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x6a, 0xf8, 0x40, //0x00013f28 .quad 4681608360884174848 + 0x00, 0x00, 0x00, 0x00, 0x80, 0x84, 0x2e, 0x41, //0x00013f30 .quad 4696837146684686336 + 0x00, 0x00, 0x00, 0x00, 0xd0, 0x12, 0x63, 0x41, //0x00013f38 .quad 4711630319722168320 + 0x00, 0x00, 0x00, 0x00, 0x84, 0xd7, 0x97, 0x41, //0x00013f40 .quad 4726483295884279808 + 0x00, 0x00, 0x00, 0x00, 0x65, 0xcd, 0xcd, 0x41, //0x00013f48 .quad 4741671816366391296 + 0x00, 0x00, 0x00, 0x20, 0x5f, 0xa0, 0x02, 0x42, //0x00013f50 .quad 4756540486875873280 + 0x00, 0x00, 0x00, 0xe8, 0x76, 0x48, 0x37, 0x42, //0x00013f58 .quad 4771362005757984768 + 0x00, 0x00, 0x00, 0xa2, 0x94, 0x1a, 0x6d, 0x42, //0x00013f60 .quad 4786511204640096256 + 0x00, 0x00, 0x40, 0xe5, 0x9c, 0x30, 0xa2, 0x42, //0x00013f68 .quad 4801453603149578240 + 0x00, 0x00, 0x90, 0x1e, 0xc4, 0xbc, 0xd6, 0x42, //0x00013f70 .quad 4816244402031689728 + 0x00, 0x00, 0x34, 0x26, 0xf5, 0x6b, 0x0c, 0x43, //0x00013f78 .quad 4831355200913801216 + 0x00, 0x80, 0xe0, 0x37, 0x79, 0xc3, 0x41, 0x43, //0x00013f80 .quad 4846369599423283200 + 0x00, 0xa0, 0xd8, 0x85, 0x57, 0x34, 0x76, 0x43, //0x00013f88 .quad 4861130398305394688 + 0x00, 0xc8, 0x4e, 0x67, 0x6d, 0xc1, 0xab, 0x43, //0x00013f90 .quad 4876203697187506176 + 0x00, 0x3d, 0x91, 0x60, 0xe4, 0x58, 0xe1, 0x43, //0x00013f98 .quad 4891288408196988160 + 0x40, 0x8c, 0xb5, 0x78, 0x1d, 0xaf, 0x15, 0x44, //0x00013fa0 .quad 4906019910204099648 + 0x50, 0xef, 0xe2, 0xd6, 0xe4, 0x1a, 0x4b, 0x44, //0x00013fa8 .quad 4921056587992461136 + 0x92, 0xd5, 0x4d, 0x06, 0xcf, 0xf0, 0x80, 0x44, //0x00013fb0 .quad 4936209963552724370 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013fb8 .p2align 4, 0x00 + //0x00013fc0 _pow10_ceil_sig_f32.g + 0xf5, 0xfc, 0x43, 0x4b, 0x2c, 0xb3, 0xce, 0x81, //0x00013fc0 .quad -9093133594791772939 + 0x32, 0xfc, 0x14, 0x5e, 0xf7, 0x5f, 0x42, 0xa2, //0x00013fc8 .quad -6754730975062328270 + 0x3f, 0x3b, 0x9a, 0x35, 0xf5, 0xf7, 0xd2, 0xca, //0x00013fd0 .quad -3831727700400522433 + 0x0e, 0xca, 0x00, 0x83, 0xf2, 0xb5, 0x87, 0xfd, //0x00013fd8 .quad -177973607073265138 + 0x49, 0x7e, 0xe0, 0x91, 0xb7, 0xd1, 0x74, 0x9e, //0x00013fe0 .quad -7028762532061872567 + 0xdb, 0x9d, 0x58, 0x76, 0x25, 0x06, 0x12, 0xc6, //0x00013fe8 .quad -4174267146649952805 + 0x52, 0xc5, 0xee, 0xd3, 0xae, 0x87, 0x96, 0xf7, //0x00013ff0 .quad -606147914885053102 + 0x53, 0x3b, 0x75, 0x44, 0xcd, 0x14, 0xbe, 0x9a, //0x00013ff8 .quad -7296371474444240045 + 0x28, 0x8a, 0x92, 0x95, 0x00, 0x9a, 0x6d, 0xc1, //0x00014000 .quad -4508778324627912152 + 0xb2, 0x2c, 0xf7, 0xba, 0x80, 0x00, 0xc9, 0xf1, //0x00014008 .quad -1024286887357502286 + 0xef, 0x7b, 0xda, 0x74, 0x50, 0xa0, 0x1d, 0x97, //0x00014010 .quad -7557708332239520785 + 0xeb, 0x1a, 0x11, 0x92, 0x64, 0x08, 0xe5, 0xbc, //0x00014018 .quad -4835449396872013077 + 0xa6, 0x61, 0x95, 0xb6, 0x7d, 0x4a, 0x1e, 0xec, //0x00014020 .quad -1432625727662628442 + 0x08, 0x5d, 0x1d, 0x92, 0x8e, 0xee, 0x92, 0x93, //0x00014028 .quad -7812920107430224632 + 0x4a, 0xb4, 0xa4, 0x36, 0x32, 0xaa, 0x77, 0xb8, //0x00014030 .quad -5154464115860392886 + 0x5c, 0xe1, 0x4d, 0xc4, 0xbe, 0x94, 0x95, 0xe6, //0x00014038 .quad -1831394126398103204 + 0xda, 0xac, 0xb0, 0x3a, 0xf7, 0x7c, 0x1d, 0x90, //0x00014040 .quad -8062150356639896358 + 0x10, 0xd8, 0x5c, 0x09, 0x35, 0xdc, 0x24, 0xb4, //0x00014048 .quad -5466001927372482544 + 0x14, 0x0e, 0xb4, 0x4b, 0x42, 0x13, 0x2e, 0xe1, //0x00014050 .quad -2220816390788215276 + 0xcc, 0x88, 0x50, 0x6f, 0x09, 0xcc, 0xbc, 0x8c, //0x00014058 .quad -8305539271883716404 + 0xff, 0xaa, 0x24, 0xcb, 0x0b, 0xff, 0xeb, 0xaf, //0x00014060 .quad -5770238071427257601 + 0xbf, 0xd5, 0xed, 0xbd, 0xce, 0xfe, 0xe6, 0xdb, //0x00014068 .quad -2601111570856684097 + 0x98, 0xa5, 0xb4, 0x36, 0x41, 0x5f, 0x70, 0x89, //0x00014070 .quad -8543223759426509416 + 0xfd, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x00014078 .quad -6067343680855748867 + 0xbd, 0x42, 0x7a, 0xe5, 0xd5, 0x94, 0xbf, 0xd6, //0x00014080 .quad -2972493582642298179 + 0xb6, 0x69, 0x6c, 0xaf, 0x05, 0xbd, 0x37, 0x86, //0x00014088 .quad -8775337516792518218 + 0x24, 0x84, 0x47, 0x1b, 0x47, 0xac, 0xc5, 0xa7, //0x00014090 .quad -6357485877563259868 + 0x2c, 0x65, 0x19, 0xe2, 0x58, 0x17, 0xb7, 0xd1, //0x00014098 .quad -3335171328526686932 + 0x3c, 0xdf, 0x4f, 0x8d, 0x97, 0x6e, 0x12, 0x83, //0x000140a0 .quad -9002011107970261188 + 0x0b, 0xd7, 0xa3, 0x70, 0x3d, 0x0a, 0xd7, 0xa3, //0x000140a8 .quad -6640827866535438581 + 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x000140b0 .quad -3689348814741910323 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x000140b8 .quad -9223372036854775808 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, //0x000140c0 .quad -6917529027641081856 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc8, //0x000140c8 .quad -4035225266123964416 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, //0x000140d0 .quad -432345564227567616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x9c, //0x000140d8 .quad -7187745005283311616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0xc3, //0x000140e0 .quad -4372995238176751616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0xf4, //0x000140e8 .quad -854558029293551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x96, 0x98, //0x000140f0 .quad -7451627795949551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xbc, 0xbe, //0x000140f8 .quad -4702848726509551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x6b, 0xee, //0x00014100 .quad -1266874889709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf9, 0x02, 0x95, //0x00014108 .quad -7709325833709551616 + 0x00, 0x00, 0x00, 0x00, 0x40, 0xb7, 0x43, 0xba, //0x00014110 .quad -5024971273709551616 + 0x00, 0x00, 0x00, 0x00, 0x10, 0xa5, 0xd4, 0xe8, //0x00014118 .quad -1669528073709551616 + 0x00, 0x00, 0x00, 0x00, 0x2a, 0xe7, 0x84, 0x91, //0x00014120 .quad -7960984073709551616 + 0x00, 0x00, 0x00, 0x80, 0xf4, 0x20, 0xe6, 0xb5, //0x00014128 .quad -5339544073709551616 + 0x00, 0x00, 0x00, 0xa0, 0x31, 0xa9, 0x5f, 0xe3, //0x00014130 .quad -2062744073709551616 + 0x00, 0x00, 0x00, 0x04, 0xbf, 0xc9, 0x1b, 0x8e, //0x00014138 .quad -8206744073709551616 + 0x00, 0x00, 0x00, 0xc5, 0x2e, 0xbc, 0xa2, 0xb1, //0x00014140 .quad -5646744073709551616 + 0x00, 0x00, 0x40, 0x76, 0x3a, 0x6b, 0x0b, 0xde, //0x00014148 .quad -2446744073709551616 + 0x00, 0x00, 0xe8, 0x89, 0x04, 0x23, 0xc7, 0x8a, //0x00014150 .quad -8446744073709551616 + 0x00, 0x00, 0x62, 0xac, 0xc5, 0xeb, 0x78, 0xad, //0x00014158 .quad -5946744073709551616 + 0x00, 0x80, 0x7a, 0x17, 0xb7, 0x26, 0xd7, 0xd8, //0x00014160 .quad -2821744073709551616 + 0x00, 0x90, 0xac, 0x6e, 0x32, 0x78, 0x86, 0x87, //0x00014168 .quad -8681119073709551616 + 0x00, 0xb4, 0x57, 0x0a, 0x3f, 0x16, 0x68, 0xa9, //0x00014170 .quad -6239712823709551616 + 0x00, 0xa1, 0xed, 0xcc, 0xce, 0x1b, 0xc2, 0xd3, //0x00014178 .quad -3187955011209551616 + 0xa0, 0x84, 0x14, 0x40, 0x61, 0x51, 0x59, 0x84, //0x00014180 .quad -8910000909647051616 + 0xc8, 0xa5, 0x19, 0x90, 0xb9, 0xa5, 0x6f, 0xa5, //0x00014188 .quad -6525815118631426616 + 0x3a, 0x0f, 0x20, 0xf4, 0x27, 0x8f, 0xcb, 0xce, //0x00014190 .quad -3545582879861895366 + 0x85, 0x09, 0x94, 0xf8, 0x78, 0x39, 0x3f, 0x81, //0x00014198 .quad -9133518327554766459 + 0xe6, 0x0b, 0xb9, 0x36, 0xd7, 0x07, 0x8f, 0xa1, //0x000141a0 .quad -6805211891016070170 + 0xdf, 0x4e, 0x67, 0x04, 0xcd, 0xc9, 0xf2, 0xc9, //0x000141a8 .quad -3894828845342699809 + 0x97, 0x22, 0x81, 0x45, 0x40, 0x7c, 0x6f, 0xfc, //0x000141b0 .quad -256850038250986857 + 0x9e, 0xb5, 0x70, 0x2b, 0xa8, 0xad, 0xc5, 0x9d, //0x000141b8 .quad -7078060301547948642 + 0x06, 0xe3, 0x4c, 0x36, 0x12, 0x19, 0x37, 0xc5, //0x000141c0 .quad -4235889358507547898 + 0xc7, 0x1b, 0xe0, 0xc3, 0x56, 0xdf, 0x84, 0xf6, //0x000141c8 .quad -683175679707046969 + 0x5d, 0x11, 0x6c, 0x3a, 0x96, 0x0b, 0x13, 0x9a, //0x000141d0 .quad -7344513827457986211 + 0xb4, 0x15, 0x07, 0xc9, 0x7b, 0xce, 0x97, 0xc0, //0x000141d8 .quad -4568956265895094860 + 0x21, 0xdb, 0x48, 0xbb, 0x1a, 0xc2, 0xbd, 0xf0, //0x000141e0 .quad -1099509313941480671 + 0xf5, 0x88, 0x0d, 0xb5, 0x50, 0x99, 0x76, 0x96, //0x000141e8 .quad -7604722348854507275 + 0x32, 0xeb, 0x50, 0xe2, 0xa4, 0x3f, 0x14, 0xbc, //0x000141f0 .quad -4894216917640746190 + 0xfe, 0x25, 0xe5, 0x1a, 0x8e, 0x4f, 0x19, 0xeb, //0x000141f8 .quad -1506085128623544834 + 0xbf, 0x37, 0xcf, 0xd0, 0xb8, 0xd1, 0xef, 0x92, //0x00014200 .quad -7858832233030797377 + 0xae, 0x05, 0x03, 0x05, 0x27, 0xc6, 0xab, 0xb7, //0x00014208 .quad -5211854272861108818 + 0x1a, 0xc7, 0x43, 0xc6, 0xb0, 0xb7, 0x96, 0xe5, //0x00014210 .quad -1903131822648998118 + 0x70, 0x5c, 0xea, 0x7b, 0xce, 0x32, 0x7e, 0x8f, //0x00014218 .quad -8106986416796705680 + 0x8c, 0xf3, 0xe4, 0x1a, 0x82, 0xbf, 0x5d, 0xb3, //0x00014220 .quad -5522047002568494196 } diff --git a/vendor/github.com/bytedance/sonic/internal/native/dispatch_amd64.go b/vendor/github.com/bytedance/sonic/internal/native/dispatch_amd64.go index 41441f513..ab828efad 100644 --- a/vendor/github.com/bytedance/sonic/internal/native/dispatch_amd64.go +++ b/vendor/github.com/bytedance/sonic/internal/native/dispatch_amd64.go @@ -93,6 +93,8 @@ var ( __F64toa func(out unsafe.Pointer, val float64) (ret int) + __F32toa func(out unsafe.Pointer, val float32) (ret int) + __ValidateUTF8 func(s unsafe.Pointer, p unsafe.Pointer, m unsafe.Pointer) (ret int) __ValidateUTF8Fast func(s unsafe.Pointer) (ret int) @@ -153,6 +155,11 @@ func F64toa(out *byte, val float64) (ret int) { return __F64toa(rt.NoEscape(unsafe.Pointer(out)), val) } +//go:nosplit +func F32toa(out *byte, val float32) (ret int) { + return __F32toa(rt.NoEscape(unsafe.Pointer(out)), val) +} + //go:nosplit func ValidateUTF8(s *string, p *int, m *types.StateMachine) (ret int) { return __ValidateUTF8(rt.NoEscape(unsafe.Pointer(s)), rt.NoEscape(unsafe.Pointer(p)), rt.NoEscape(unsafe.Pointer(m))) @@ -165,7 +172,7 @@ func ValidateUTF8Fast(s *string) (ret int) { var stubs = []loader.GoC{ {"_f64toa", &S_f64toa, &__F64toa}, - {"_f32toa", &S_f32toa, nil}, + {"_f32toa", &S_f32toa, &__F32toa}, {"_i64toa", &S_i64toa, &__I64toa}, {"_u64toa", &S_u64toa, &__U64toa}, {"_lspace", &S_lspace, nil}, diff --git a/vendor/github.com/bytedance/sonic/internal/native/dispatch_arm64.go b/vendor/github.com/bytedance/sonic/internal/native/dispatch_arm64.go new file mode 100644 index 000000000..26df0074f --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/dispatch_arm64.go @@ -0,0 +1,154 @@ +/* +* Copyright 2021 ByteDance 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 native + +import ( + `unsafe` + + neon `github.com/bytedance/sonic/internal/native/neon` + `github.com/bytedance/sonic/internal/native/types` +) + +const ( + MaxFrameSize uintptr = 200 + BufPaddingSize int = 64 +) + +var ( + S_f64toa uintptr + S_f32toa uintptr + S_i64toa uintptr + S_u64toa uintptr + S_lspace uintptr +) + +var ( + S_quote uintptr + S_unquote uintptr +) + +var ( + S_value uintptr + S_vstring uintptr + S_vnumber uintptr + S_vsigned uintptr + S_vunsigned uintptr +) + +var ( + S_skip_one uintptr + S_skip_one_fast uintptr + S_get_by_path uintptr + S_skip_array uintptr + S_skip_object uintptr + S_skip_number uintptr +) + +//go:nosplit +//go:noescape +//go:linkname Quote github.com/bytedance/sonic/internal/native/neon.__quote +func Quote(s unsafe.Pointer, nb int, dp unsafe.Pointer, dn *int, flags uint64) int + +//go:nosplit +//go:noescape +//go:linkname Unquote github.com/bytedance/sonic/internal/native/neon.__unquote +func Unquote(s unsafe.Pointer, nb int, dp unsafe.Pointer, ep *int, flags uint64) int + +//go:nosplit +//go:noescape +//go:linkname HTMLEscape github.com/bytedance/sonic/internal/native/neon.__html_escape +func HTMLEscape(s unsafe.Pointer, nb int, dp unsafe.Pointer, dn *int) int + +//go:nosplit +//go:noescape +//go:linkname Value github.com/bytedance/sonic/internal/native/neon.__value +func Value(s unsafe.Pointer, n int, p int, v *types.JsonState, flags uint64) int + +//go:nosplit +//go:noescape +//go:linkname SkipOne github.com/bytedance/sonic/internal/native/neon.__skip_one +func SkipOne(s *string, p *int, m *types.StateMachine, flags uint64) int + +//go:nosplit +//go:noescape +//go:linkname SkipOneFast github.com/bytedance/sonic/internal/native/neon.__skip_one_fast +func SkipOneFast(s *string, p *int) int + +//go:nosplit +//go:noescape +//go:linkname GetByPath github.com/bytedance/sonic/internal/native/neon.__get_by_path +func GetByPath(s *string, p *int, path *[]interface{}, m *types.StateMachine) int + +//go:nosplit +//go:noescape +//go:linkname ValidateOne github.com/bytedance/sonic/internal/native/neon.__validate_one +func ValidateOne(s *string, p *int, m *types.StateMachine) int + +//go:nosplit +//go:noescape +//go:linkname I64toa github.com/bytedance/sonic/internal/native/neon.__i64toa +func I64toa(out *byte, val int64) (ret int) + +//go:nosplit +//go:noescape +//go:linkname U64toa github.com/bytedance/sonic/internal/native/neon.__u64toa +func U64toa(out *byte, val uint64) (ret int) + +//go:nosplit +//go:noescape +//go:linkname F64toa github.com/bytedance/sonic/internal/native/neon.__f64toa +func F64toa(out *byte, val float64) (ret int) + +//go:nosplit +//go:noescape +//go:linkname F32toa github.com/bytedance/sonic/internal/native/neon.__f32toa +func F32toa(out *byte, val float32) (ret int) + +//go:nosplit +//go:noescape +//go:linkname ValidateUTF8 github.com/bytedance/sonic/internal/native/neon.__validate_utf8 +func ValidateUTF8(s *string, p *int, m *types.StateMachine) (ret int) + +//go:nosplit +//go:noescape +//go:linkname ValidateUTF8Fast github.com/bytedance/sonic/internal/native/neon.__validate_utf8_fast +func ValidateUTF8Fast(s *string) (ret int) + +func useNeon() { + S_f64toa = neon.S_f64toa + S_f32toa = neon.S_f32toa + S_i64toa = neon.S_i64toa + S_u64toa = neon.S_u64toa + S_lspace = neon.S_lspace + S_quote = neon.S_quote + S_unquote = neon.S_unquote + S_value = neon.S_value + S_vstring = neon.S_vstring + S_vnumber = neon.S_vnumber + S_vsigned = neon.S_vsigned + S_vunsigned = neon.S_vunsigned + S_skip_one = neon.S_skip_one + S_skip_one_fast = neon.S_skip_one_fast + S_skip_array = neon.S_skip_array + S_skip_object = neon.S_skip_object + S_skip_number = neon.S_skip_number + S_get_by_path = neon.S_get_by_path +} + +func init() { + useNeon() +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/fastfloat_amd64_test.tmpl b/vendor/github.com/bytedance/sonic/internal/native/fastfloat_test.tmpl similarity index 100% rename from vendor/github.com/bytedance/sonic/internal/native/fastfloat_amd64_test.tmpl rename to vendor/github.com/bytedance/sonic/internal/native/fastfloat_test.tmpl diff --git a/vendor/github.com/bytedance/sonic/internal/native/fastint_amd64_test.tmpl b/vendor/github.com/bytedance/sonic/internal/native/fastint_test.tmpl similarity index 100% rename from vendor/github.com/bytedance/sonic/internal/native/fastint_amd64_test.tmpl rename to vendor/github.com/bytedance/sonic/internal/native/fastint_test.tmpl diff --git a/vendor/github.com/bytedance/sonic/internal/native/native_amd64.tmpl b/vendor/github.com/bytedance/sonic/internal/native/native_amd64.tmpl index 5839da99c..9ac9002e3 100644 --- a/vendor/github.com/bytedance/sonic/internal/native/native_amd64.tmpl +++ b/vendor/github.com/bytedance/sonic/internal/native/native_amd64.tmpl @@ -69,8 +69,6 @@ var ( __validate_utf8 func(s unsafe.Pointer, p unsafe.Pointer, m unsafe.Pointer) (ret int) __validate_utf8_fast func(s unsafe.Pointer) (ret int) - - __fsm_exec func(m unsafe.Pointer, s unsafe.Pointer, p unsafe.Pointer, flags uint64) (ret int) ) //go:nosplit @@ -183,7 +181,3 @@ func validate_utf8_fast(s *string) (ret int) { return __validate_utf8_fast(rt.NoEscape(unsafe.Pointer(s))) } -//go:nosplit -func fsm_exec(m *types.StateMachine, s *string, p *int, flags uint64) (ret int) { - return __fsm_exec(rt.NoEscape(unsafe.Pointer(m)), rt.NoEscape(unsafe.Pointer(s)), rt.NoEscape(unsafe.Pointer(p)), flags) -} diff --git a/vendor/github.com/bytedance/sonic/internal/native/native_arm64.tmpl b/vendor/github.com/bytedance/sonic/internal/native/native_arm64.tmpl new file mode 100644 index 000000000..b4120c28e --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/native_arm64.tmpl @@ -0,0 +1,246 @@ +// Code generated by Makefile, DO NOT EDIT. + +/* + * Copyright 2021 ByteDance 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 {{PACKAGE}} + +import ( + `unsafe` + + `github.com/bytedance/sonic/internal/native/types` +) + + +//go:nosplit +func i64toa(out *byte, val int64) (ret int) { + return __i64toa(out, val) +} + +//go:nosplit +func u64toa(out *byte, val uint64) (ret int) { + return __u64toa(out, val) +} + +//go:nosplit +func f64toa(out *byte, val float64) (ret int) { + return __f64toa(out, val) +} + +//go:nosplit +func f32toa(out *byte, val float32) (ret int) { + return __f32toa(out, val) +} + +//go:nosplit +func lspace(sp unsafe.Pointer, nb int, off int) (ret int) { + return __lspace(sp, nb, off) +} + +//go:nosplit +func quote(sp unsafe.Pointer, nb int, dp unsafe.Pointer, dn *int, flags uint64) (ret int) { + return __quote(sp, nb, dp, dn, flags) +} + +//go:nosplit +func html_escape(sp unsafe.Pointer, nb int, dp unsafe.Pointer, dn *int) (ret int) { + return __html_escape(sp, nb, dp, dn) +} + +//go:nosplit +func unquote(sp unsafe.Pointer, nb int, dp unsafe.Pointer, ep *int, flags uint64) (ret int) { + return __unquote(sp, nb, dp, ep, flags) +} + +//go:nosplit +func value(s unsafe.Pointer, n int, p int, v *types.JsonState, flags uint64) (ret int) { + return __value(s, n, p, v, flags) +} + +//go:nosplit +func vstring(s *string, p *int, v *types.JsonState, flags uint64) { + __vstring(s, p, v, flags) +} + +//go:nosplit +func vnumber(s *string, p *int, v *types.JsonState) { + __vnumber(s, p, v) +} + +//go:nosplit +func vsigned(s *string, p *int, v *types.JsonState) { + __vsigned(s, p, v) +} + +//go:nosplit +func vunsigned(s *string, p *int, v *types.JsonState) { + __vunsigned(s, p, v) +} + +//go:nosplit +func skip_one(s *string, p *int, m *types.StateMachine, flags uint64) (ret int) { + return __skip_one(s, p, m, flags) +} + +//go:nosplit +func skip_one_fast(s *string, p *int) (ret int) { + return __skip_one_fast(s, p) +} + +//go:nosplit +func skip_array(s *string, p *int, m *types.StateMachine, flags uint64) (ret int) { + return __skip_array(s, p, m, flags) +} + +//go:nosplit +func skip_object(s *string, p *int, m *types.StateMachine, flags uint64) (ret int) { + return __skip_object(s, p, m, flags) +} + +//go:nosplit +func skip_number(s *string, p *int) (ret int) { + return __skip_number(s, p) +} + +//go:nosplit +func validate_one(s *string, p *int, m *types.StateMachine) (ret int) { + return __validate_one(s, p, m) +} + +//go:nosplit +func get_by_path(s *string, p *int, path *[]interface{}, m *types.StateMachine) (ret int) { + return __get_by_path(s, p, path, m) +} + +//go:nosplit +func validate_utf8(s *string, p *int, m *types.StateMachine) (ret int) { + return __validate_utf8(s, p, m) +} + +//go:nosplit +func validate_utf8_fast(s *string) (ret int) { + return __validate_utf8_fast(s) +} + +//go:nosplit +//go:noescape +//goland:noinspection GoUnusedParameter +func __i64toa(out *byte, val int64) (ret int) + +//go:nosplit +//go:noescape +//goland:noinspection GoUnusedParameter +func __u64toa(out *byte, val uint64) (ret int) + +//go:nosplit +//go:noescape +//goland:noinspection GoUnusedParameter +func __f64toa(out *byte, val float64) (ret int) + +//go:nosplit +//go:noescape +//goland:noinspection GoUnusedParameter +func __f32toa(out *byte, val float32) (ret int) + +//go:nosplit +//go:noescape +//goland:noinspection GoUnusedParameter +func __lspace(sp unsafe.Pointer, nb int, off int) (ret int) + +//go:nosplit +//go:noescape +//goland:noinspection GoUnusedParameter +func __quote(sp unsafe.Pointer, nb int, dp unsafe.Pointer, dn *int, flags uint64) (ret int) + +//go:nosplit +//go:noescape +//goland:noinspection GoUnusedParameter +func __html_escape(sp unsafe.Pointer, nb int, dp unsafe.Pointer, dn *int) (ret int) + +//go:nosplit +//go:noescape +//goland:noinspection GoUnusedParameter +func __unquote(sp unsafe.Pointer, nb int, dp unsafe.Pointer, ep *int, flags uint64) (ret int) + +//go:nosplit +//go:noescape +//goland:noinspection GoUnusedParameter +func __value(s unsafe.Pointer, n int, p int, v *types.JsonState, flags uint64) (ret int) + +//go:nosplit +//go:noescape +//goland:noinspection GoUnusedParameter +func __vstring(s *string, p *int, v *types.JsonState, flags uint64) + +//go:nosplit +//go:noescape +//goland:noinspection GoUnusedParameter +func __vnumber(s *string, p *int, v *types.JsonState) + +//go:nosplit +//go:noescape +//goland:noinspection GoUnusedParameter +func __vsigned(s *string, p *int, v *types.JsonState) + +//go:nosplit +//go:noescape +//goland:noinspection GoUnusedParameter +func __vunsigned(s *string, p *int, v *types.JsonState) + +//go:nosplit +//go:noescape +//goland:noinspection GoUnusedParameter +func __skip_one(s *string, p *int, m *types.StateMachine, flags uint64) (ret int) + +//go:nosplit +//go:noescape +//goland:noinspection GoUnusedParameter +func __skip_one_fast(s *string, p *int) (ret int) + +//go:nosplit +//go:noescape +//goland:noinspection GoUnusedParameter +func __skip_array(s *string, p *int, m *types.StateMachine, flags uint64) (ret int) + +//go:nosplit +//go:noescape +//goland:noinspection GoUnusedParameter +func __skip_object(s *string, p *int, m *types.StateMachine, flags uint64) (ret int) + +//go:nosplit +//go:noescape +//goland:noinspection GoUnusedParameter +func __skip_number(s *string, p *int) (ret int) + +//go:nosplit +//go:noescape +//goland:noinspection GoUnusedParameter +func __validate_one(s *string, p *int, m *types.StateMachine) (ret int) + +//go:nosplit +//go:noescape +//goland:noinspection GoUnusedParameter +func __get_by_path(s *string, p *int, path *[]interface{}, m *types.StateMachine) (ret int) + +//go:nosplit +//go:noescape +//goland:noinspection GoUnusedParameter +func __validate_utf8(s *string, p *int, m *types.StateMachine) (ret int) + +//go:nosplit +//go:noescape +//goland:noinspection GoUnusedParameter +func __validate_utf8_fast(s *string) (ret int) diff --git a/vendor/github.com/bytedance/sonic/internal/native/native_export_arm64.tmpl b/vendor/github.com/bytedance/sonic/internal/native/native_export_arm64.tmpl new file mode 100644 index 000000000..c7a10de94 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/native_export_arm64.tmpl @@ -0,0 +1,47 @@ +/* + * Copyright 2021 ByteDance 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 {{PACKAGE}} + +var ( + S_f64toa = _subr__f64toa + S_f32toa = _subr__f32toa + S_i64toa = _subr__i64toa + S_u64toa = _subr__u64toa + S_lspace = _subr__lspace +) + +var ( + S_quote = _subr__quote + S_unquote = _subr__unquote +) + +var ( + S_value = _subr__value + S_vstring = _subr__vstring + S_vnumber = _subr__vnumber + S_vsigned = _subr__vsigned + S_vunsigned = _subr__vunsigned +) + +var ( + S_skip_one = _subr__skip_one + S_skip_one_fast = _subr__skip_one_fast + S_skip_array = _subr__skip_array + S_skip_object = _subr__skip_object + S_skip_number = _subr__skip_number + S_get_by_path = _subr__get_by_path +) diff --git a/vendor/github.com/bytedance/sonic/internal/native/native_amd64_test.tmpl b/vendor/github.com/bytedance/sonic/internal/native/native_test.tmpl similarity index 100% rename from vendor/github.com/bytedance/sonic/internal/native/native_amd64_test.tmpl rename to vendor/github.com/bytedance/sonic/internal/native/native_test.tmpl diff --git a/vendor/github.com/bytedance/sonic/internal/native/neon/f32toa_arm64.go b/vendor/github.com/bytedance/sonic/internal/native/neon/f32toa_arm64.go new file mode 100644 index 000000000..67ef19e5e --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/neon/f32toa_arm64.go @@ -0,0 +1,31 @@ +// Code generated by Makefile, DO NOT EDIT. + +// Code generated by Makefile, DO NOT EDIT. + +/* + * Copyright 2021 ByteDance 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 neon + +//go:nosplit +func f32toa(out *byte, val float32) (ret int) { + return __f32toa(out, val) +} + +//go:nosplit +//go:noescape +//goland:noinspection GoUnusedParameter +func __f32toa(out *byte, val float32) (ret int) diff --git a/vendor/github.com/bytedance/sonic/internal/native/neon/f32toa_arm64.s b/vendor/github.com/bytedance/sonic/internal/native/neon/f32toa_arm64.s new file mode 100644 index 000000000..3c8402003 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/neon/f32toa_arm64.s @@ -0,0 +1,1019 @@ +// +build !noasm !appengine +// Code generated by asm2asm, DO NOT EDIT. + +#include "go_asm.h" +#include "funcdata.h" +#include "textflag.h" + +TEXT ·__f32toa_entry__(SB), NOSPLIT, $16 + NO_LOCAL_POINTERS + WORD $0x100000a0 // adr x0, .+20 + MOVD R0, ret(FP) + RET + // .p2align 2, 0x00 +_f32toa: + WORD $0xd10083ff // sub sp, sp, #32 + WORD $0xa900fbfd // stp fp, lr, [sp, #8] + WORD $0xa93ffbfd // stp fp, lr, [sp, #-8] + WORD $0xd10023fd // sub fp, sp, #8 + WORD $0x1e260009 // fmov w9, s0 + WORD $0x5317792b // ubfx w11, w9, #23, #8 + WORD $0x7103fd7f // cmp w11, #255 + WORD $0x54005b20 // b.eq LBB0_130 $2916(%rip) + WORD $0x528005a8 // mov w8, #45 + WORD $0x39000008 // strb w8, [x0] + WORD $0x531f7d2a // lsr w10, w9, #31 + WORD $0x8b0a0008 // add x8, x0, x10 + WORD $0x1e26000c // fmov w12, s0 + WORD $0x7200799f // tst w12, #0x7fffffff + WORD $0x54000e00 // b.eq LBB0_10 $448(%rip) + WORD $0x1200592e // and w14, w9, #0x7fffff + WORD $0x5290d3e9 // mov w9, #34463 + WORD $0x72a00029 // movk w9, #1, lsl #16 + WORD $0x34005a4b // cbz w11, LBB0_131 $2888(%rip) + WORD $0x320901cd // orr w13, w14, #0x800000 + WORD $0x5102596c // sub w12, w11, #150 + WORD $0x5101fd6f // sub w15, w11, #127 + WORD $0x71005dff // cmp w15, #23 + WORD $0x54000108 // b.hi LBB0_5 $32(%rip) + WORD $0x528012cf // mov w15, #150 + WORD $0x4b0b01ef // sub w15, w15, w11 + WORD $0x92800010 // mov x16, #-1 + WORD $0x9acf2210 // lsl x16, x16, x15 + WORD $0x2a3003f0 // mvn w16, w16 + WORD $0xea0d021f // tst x16, x13 + WORD $0x54001120 // b.eq LBB0_17 $548(%rip) +LBB0_5: + WORD $0x120001af // and w15, w13, #0x1 + WORD $0x710001df // cmp w14, #0 + WORD $0x1a9f17ee // cset w14, eq + WORD $0x7100057f // cmp w11, #1 + WORD $0x1a9f97eb // cset w11, hi + WORD $0x531e75b0 // lsl w16, w13, #2 + WORD $0x6a0b01cb // ands w11, w14, w11 + WORD $0x2a0b020b // orr w11, w16, w11 + WORD $0x52800051 // mov w17, #2 + WORD $0x331e5db1 // bfi w17, w13, #2, #24 + WORD $0x5288826d // mov w13, #17427 + WORD $0x72a0026d // movk w13, #19, lsl #16 + WORD $0x5280202e // mov w14, #257 + WORD $0x72bfff0e // movk w14, #65528, lsl #16 + WORD $0x1a9f11ce // csel w14, w14, wzr, ne + WORD $0x51000961 // sub w1, w11, #2 + WORD $0x1b0d398b // madd w11, w12, w13, w14 + WORD $0x13167d6b // asr w11, w11, #22 + WORD $0x528d962d // mov w13, #27825 + WORD $0x72bffcad // movk w13, #65509, lsl #16 + WORD $0x1b0d7d6d // mul w13, w11, w13 + WORD $0x0b8d4d8c // add w12, w12, w13, asr #19 + WORD $0x1100058c // add w12, w12, #1 + WORD $0x528003ed // mov w13, #31 +Lloh0: + WORD $0x10005c6e // adr x14, _pow10_ceil_sig_f32.g $2956(%rip) +Lloh1: + WORD $0x910001ce // add x14, x14, _pow10_ceil_sig_f32.g@PAGEOFF $0(%rip) + WORD $0x4b0b01ad // sub w13, w13, w11 + WORD $0xf86d59c2 // ldr x2, [x14, w13, uxtw #3] + WORD $0x1acc202d // lsl w13, w1, w12 + WORD $0x9b027dae // mul x14, x13, x2 + WORD $0x9bc27dad // umulh x13, x13, x2 + WORD $0xf25f79df // tst x14, #0xfffffffe00000000 + WORD $0x1a9f07ee // cset w14, ne + WORD $0x2a0d01c1 // orr w1, w14, w13 + WORD $0x1acc220d // lsl w13, w16, w12 + WORD $0x9b027dae // mul x14, x13, x2 + WORD $0x9bc27dad // umulh x13, x13, x2 + WORD $0xf25f79df // tst x14, #0xfffffffe00000000 + WORD $0x1a9f07ee // cset w14, ne + WORD $0x2a0d01ce // orr w14, w14, w13 + WORD $0x1acc222c // lsl w12, w17, w12 + WORD $0x9b027d90 // mul x16, x12, x2 + WORD $0x9bc27d8c // umulh x12, x12, x2 + WORD $0xf25f7a1f // tst x16, #0xfffffffe00000000 + WORD $0x1a9f07f0 // cset w16, ne + WORD $0x2a0c020c // orr w12, w16, w12 + WORD $0x0b0f0030 // add w16, w1, w15 + WORD $0x4b0f018f // sub w15, w12, w15 + WORD $0x7100a1df // cmp w14, #40 + WORD $0x540001e3 // b.lo LBB0_7 $60(%rip) + WORD $0x529999ac // mov w12, #52429 + WORD $0x72b9998c // movk w12, #52428, lsl #16 + WORD $0x9bac7dac // umull x12, w13, w12 + WORD $0xd365fd8c // lsr x12, x12, #37 + WORD $0x8b0c0991 // add x17, x12, x12, lsl #2 + WORD $0xd37df231 // lsl x17, x17, #3 + WORD $0x9100a221 // add x1, x17, #40 + WORD $0xeb30423f // cmp x17, w16, uxtw + WORD $0x1a9f27f1 // cset w17, lo + WORD $0xeb2f403f // cmp x1, w15, uxtw + WORD $0x1a9f87e1 // cset w1, ls + WORD $0x1a8c858c // cinc w12, w12, ls + WORD $0x6b01023f // cmp w17, w1 + WORD $0x540004e0 // b.eq LBB0_11 $156(%rip) +LBB0_7: + WORD $0xd3427dac // ubfx x12, x13, #2, #30 + WORD $0x121e75b1 // and w17, w13, #0xfffffffc + WORD $0x11001221 // add w1, w17, #4 + WORD $0x6b0f003f // cmp w1, w15 + WORD $0x1a9f87e2 // cset w2, ls + WORD $0x6b11021f // cmp w16, w17 + WORD $0x1a9f97f0 // cset w16, hi + WORD $0x4a020210 // eor w16, w16, w2 + WORD $0x321f0231 // orr w17, w17, #0x2 + WORD $0x52800022 // mov w2, #1 + WORD $0x6b1101df // cmp w14, w17 + WORD $0x1a9f17ee // cset w14, eq + WORD $0x0a4d09cd // and w13, w14, w13, lsr #2 + WORD $0x1a8d804d // csel w13, w2, w13, hi + WORD $0x0b0c01ad // add w13, w13, w12 + WORD $0x6b0f003f // cmp w1, w15 + WORD $0x1a8c858c // cinc w12, w12, ls + WORD $0x7200021f // tst w16, #0x1 + WORD $0x1a8c11ac // csel w12, w13, w12, ne + WORD $0x6b09019f // cmp w12, w9 + WORD $0x540002a9 // b.ls LBB0_12 $84(%rip) +LBB0_8: + WORD $0x52884809 // mov w9, #16960 + WORD $0x72a001e9 // movk w9, #15, lsl #16 + WORD $0x6b09019f // cmp w12, w9 + WORD $0x54000322 // b.hs LBB0_14 $100(%rip) + WORD $0x528000cd // mov w13, #6 + WORD $0x0b0b01a9 // add w9, w13, w11 + WORD $0x5100592e // sub w14, w9, #22 + WORD $0x310071df // cmn w14, #28 + WORD $0x54000ae8 // b.hi LBB0_22 $348(%rip) + WORD $0x140000bc // b LBB0_43 $752(%rip) +LBB0_10: + WORD $0x52800609 // mov w9, #48 + WORD $0x39000109 // strb w9, [x8] + WORD $0x4b000108 // sub w8, w8, w0 + WORD $0x11000500 // add w0, w8, #1 + WORD $0xa940fbfd // ldp fp, lr, [sp, #8] + WORD $0x910083ff // add sp, sp, #32 + WORD $0xd65f03c0 // ret +LBB0_11: + WORD $0x1100056b // add w11, w11, #1 + WORD $0x6b09019f // cmp w12, w9 + WORD $0x54fffda8 // b.hi LBB0_8 $-76(%rip) +LBB0_12: + WORD $0x7100299f // cmp w12, #10 + WORD $0x540002c2 // b.hs LBB0_15 $88(%rip) + WORD $0x5280002d // mov w13, #1 + WORD $0x0b0b01a9 // add w9, w13, w11 + WORD $0x5100592e // sub w14, w9, #22 + WORD $0x310071df // cmn w14, #28 + WORD $0x540008a8 // b.hi LBB0_22 $276(%rip) + WORD $0x140000aa // b LBB0_43 $680(%rip) +LBB0_14: + WORD $0x528000e9 // mov w9, #7 + WORD $0x5292d00d // mov w13, #38528 + WORD $0x72a0130d // movk w13, #152, lsl #16 + WORD $0x529c200e // mov w14, #57600 + WORD $0x72a0beae // movk w14, #1525, lsl #16 + WORD $0x6b0e019f // cmp w12, w14 + WORD $0x5280010e // mov w14, #8 + WORD $0x1a8e35ce // cinc w14, w14, hs + WORD $0x6b0d019f // cmp w12, w13 + WORD $0x1a8e312d // csel w13, w9, w14, lo + WORD $0x0b0b01a9 // add w9, w13, w11 + WORD $0x5100592e // sub w14, w9, #22 + WORD $0x310071df // cmn w14, #28 + WORD $0x540006c8 // b.hi LBB0_22 $216(%rip) + WORD $0x1400009b // b LBB0_43 $620(%rip) +LBB0_15: + WORD $0x7101919f // cmp w12, #100 + WORD $0x54000582 // b.hs LBB0_20 $176(%rip) + WORD $0x5280004d // mov w13, #2 + WORD $0x0b0b01a9 // add w9, w13, w11 + WORD $0x5100592e // sub w14, w9, #22 + WORD $0x310071df // cmn w14, #28 + WORD $0x540005c8 // b.hi LBB0_22 $184(%rip) + WORD $0x14000093 // b LBB0_43 $588(%rip) +LBB0_17: + WORD $0x1acf25ab // lsr w11, w13, w15 +Lloh2: + WORD $0x100047ea // adr x10, _Digits $2300(%rip) +Lloh3: + WORD $0x9100014a // add x10, x10, _Digits@PAGEOFF $0(%rip) + WORD $0x6b09017f // cmp w11, w9 + WORD $0x54001049 // b.ls LBB0_40 $520(%rip) + WORD $0x5292d009 // mov w9, #38528 + WORD $0x72a01309 // movk w9, #152, lsl #16 + WORD $0x6b09017f // cmp w11, w9 + WORD $0x528000e9 // mov w9, #7 + WORD $0x9a893529 // cinc x9, x9, hs + WORD $0x5288480c // mov w12, #16960 + WORD $0x72a001ec // movk w12, #15, lsl #16 + WORD $0x6b0c017f // cmp w11, w12 + WORD $0x528000cc // mov w12, #6 + WORD $0x9a893189 // csel x9, x12, x9, lo + WORD $0x8b09010c // add x12, x8, x9 +LBB0_19: + WORD $0x5286dc69 // mov w9, #14051 + WORD $0x72a00349 // movk w9, #26, lsl #16 + WORD $0x9ba97d69 // umull x9, w11, w9 + WORD $0xd362fd2d // lsr x13, x9, #34 + WORD $0x1284e1e9 // mov w9, #-10000 + WORD $0x1b092da9 // madd w9, w13, w9, w11 + WORD $0x5290a3eb // mov w11, #34079 + WORD $0x72aa3d6b // movk w11, #20971, lsl #16 + WORD $0x9bab7d2b // umull x11, w9, w11 + WORD $0xd365fd6b // lsr x11, x11, #37 + WORD $0x52800c8e // mov w14, #100 + WORD $0x1b0ea569 // msub w9, w11, w14, w9 + WORD $0x7869594e // ldrh w14, [x10, w9, uxtw #1] + WORD $0x786b794b // ldrh w11, [x10, x11, lsl #1] + WORD $0xaa0c03e9 // mov x9, x12 + WORD $0x781fcd8b // strh w11, [x12, #-4]! + WORD $0x7900058e // strh w14, [x12, #2] + WORD $0xaa0d03eb // mov x11, x13 + WORD $0x7101917f // cmp w11, #100 + WORD $0x540022e2 // b.hs LBB0_77 $1116(%rip) + WORD $0x14000124 // b LBB0_79 $1168(%rip) +LBB0_20: + WORD $0x710fa19f // cmp w12, #1000 + WORD $0x54000c82 // b.hs LBB0_42 $400(%rip) + WORD $0x5280006d // mov w13, #3 + WORD $0x0b0b01a9 // add w9, w13, w11 + WORD $0x5100592e // sub w14, w9, #22 + WORD $0x310071df // cmn w14, #28 + WORD $0x54000ce9 // b.ls LBB0_43 $412(%rip) +LBB0_22: + WORD $0x37f803cb // tbnz w11, #31, LBB0_26 $120(%rip) + WORD $0x2a0d03ee // mov w14, w13 + WORD $0x8b0e010b // add x11, x8, x14 + WORD $0x53047d8f // lsr w15, w12, #4 + WORD $0x7109c5ff // cmp w15, #625 + WORD $0x54000483 // b.lo LBB0_30 $144(%rip) + WORD $0x5282eb2f // mov w15, #5977 + WORD $0x72ba36ef // movk w15, #53687, lsl #16 + WORD $0x9baf7d8f // umull x15, w12, w15 + WORD $0xd36dfdf0 // lsr x16, x15, #45 + WORD $0x1284e1ef // mov w15, #-10000 + WORD $0x1b0f320c // madd w12, w16, w15, w12 + WORD $0x5290a3ef // mov w15, #34079 + WORD $0x72aa3d6f // movk w15, #20971, lsl #16 + WORD $0x9baf7d8f // umull x15, w12, w15 + WORD $0xd365fdef // lsr x15, x15, #37 + WORD $0x52800c91 // mov w17, #100 + WORD $0x1b11b1ec // msub w12, w15, w17, w12 +Lloh4: + WORD $0x10004051 // adr x17, _Digits $2056(%rip) +Lloh5: + WORD $0x91000231 // add x17, x17, _Digits@PAGEOFF $0(%rip) + WORD $0x786c5a2c // ldrh w12, [x17, w12, uxtw #1] + WORD $0x786f7a31 // ldrh w17, [x17, x15, lsl #1] + WORD $0xaa0b03ef // mov x15, x11 + WORD $0x781fcdf1 // strh w17, [x15, #-4]! + WORD $0x790005ec // strh w12, [x15, #2] + WORD $0xaa1003ec // mov x12, x16 + WORD $0x7101919f // cmp w12, #100 + WORD $0x54000222 // b.hs LBB0_31 $68(%rip) +LBB0_25: + WORD $0xaa0c03ef // mov x15, x12 + WORD $0x1400001f // b LBB0_33 $124(%rip) +LBB0_26: + WORD $0x7100013f // cmp w9, #0 + WORD $0x540024cc // b.gt LBB0_88 $1176(%rip) + WORD $0x5285c60e // mov w14, #11824 + WORD $0x7800250e // strh w14, [x8], #2 + WORD $0x36f82469 // tbz w9, #31, LBB0_88 $1164(%rip) + WORD $0x2a2d03ee // mvn w14, w13 + WORD $0x4b0b01ce // sub w14, w14, w11 + WORD $0x7100fddf // cmp w14, #63 + WORD $0x54002182 // b.hs LBB0_83 $1072(%rip) + WORD $0x5280000e // mov w14, #0 + WORD $0x14000117 // b LBB0_86 $1116(%rip) +LBB0_30: + WORD $0xaa0b03ef // mov x15, x11 + WORD $0x7101919f // cmp w12, #100 + WORD $0x54fffe23 // b.lo LBB0_25 $-60(%rip) +LBB0_31: + WORD $0xd10005f0 // sub x16, x15, #1 + WORD $0x5290a3f1 // mov w17, #34079 + WORD $0x72aa3d71 // movk w17, #20971, lsl #16 + WORD $0x52800c81 // mov w1, #100 +Lloh6: + WORD $0x10003c82 // adr x2, _Digits $1936(%rip) +Lloh7: + WORD $0x91000042 // add x2, x2, _Digits@PAGEOFF $0(%rip) +LBB0_32: + WORD $0x9bb17d8f // umull x15, w12, w17 + WORD $0xd365fdef // lsr x15, x15, #37 + WORD $0x1b01b1e3 // msub w3, w15, w1, w12 + WORD $0x78635843 // ldrh w3, [x2, w3, uxtw #1] + WORD $0x781ff203 // sturh w3, [x16, #-1] + WORD $0xd1000a10 // sub x16, x16, #2 + WORD $0x53047d83 // lsr w3, w12, #4 + WORD $0xaa0f03ec // mov x12, x15 + WORD $0x7109c07f // cmp w3, #624 + WORD $0x54fffee8 // b.hi LBB0_32 $-36(%rip) +LBB0_33: + WORD $0x8b09010c // add x12, x8, x9 + WORD $0x710029ff // cmp w15, #10 + WORD $0x54000163 // b.lo LBB0_36 $44(%rip) +Lloh8: + WORD $0x10003ab0 // adr x16, _Digits $1876(%rip) +Lloh9: + WORD $0x91000210 // add x16, x16, _Digits@PAGEOFF $0(%rip) + WORD $0x786f5a0f // ldrh w15, [x16, w15, uxtw #1] + WORD $0x7900010f // strh w15, [x8] + WORD $0x6b0901bf // cmp w13, w9 + WORD $0x54000123 // b.lo LBB0_37 $36(%rip) +LBB0_35: + WORD $0x4b000180 // sub w0, w12, w0 + WORD $0xa940fbfd // ldp fp, lr, [sp, #8] + WORD $0x910083ff // add sp, sp, #32 + WORD $0xd65f03c0 // ret +LBB0_36: + WORD $0x321c05ef // orr w15, w15, #0x30 + WORD $0x3900010f // strb w15, [x8] + WORD $0x6b0901bf // cmp w13, w9 + WORD $0x54ffff22 // b.hs LBB0_35 $-28(%rip) +LBB0_37: + WORD $0x8b0a0008 // add x8, x0, x10 + WORD $0x8b0e010d // add x13, x8, x14 + WORD $0x910005af // add x15, x13, #1 + WORD $0x8b090108 // add x8, x8, x9 + WORD $0xeb0801ff // cmp x15, x8 + WORD $0x9a8d9508 // csinc x8, x8, x13, ls + WORD $0xcb0d0108 // sub x8, x8, x13 + WORD $0xf100211f // cmp x8, #8 + WORD $0x54003663 // b.lo LBB0_128 $1740(%rip) + WORD $0xf101011f // cmp x8, #64 + WORD $0x540012a2 // b.hs LBB0_67 $596(%rip) + WORD $0xd2800009 // mov x9, #0 + WORD $0x140000a1 // b LBB0_71 $644(%rip) +LBB0_40: + WORD $0x7100297f // cmp w11, #10 + WORD $0x540011a2 // b.hs LBB0_65 $564(%rip) + WORD $0x52800029 // mov w9, #1 + WORD $0x140000ad // b LBB0_76 $692(%rip) +LBB0_42: + WORD $0x53047d89 // lsr w9, w12, #4 + WORD $0x7109c53f // cmp w9, #625 + WORD $0x52800089 // mov w9, #4 + WORD $0x1a89352d // cinc w13, w9, hs + WORD $0x0b0b01a9 // add w9, w13, w11 + WORD $0x5100592e // sub w14, w9, #22 + WORD $0x310071df // cmn w14, #28 + WORD $0x54fff368 // b.hi LBB0_22 $-404(%rip) +LBB0_43: + WORD $0x9100050b // add x11, x8, #1 + WORD $0x2a0d03ed // mov w13, w13 + WORD $0x8b0d0170 // add x16, x11, x13 + WORD $0x53047d8e // lsr w14, w12, #4 + WORD $0x7109c5df // cmp w14, #625 + WORD $0x540002c3 // b.lo LBB0_46 $88(%rip) + WORD $0x5282eb2e // mov w14, #5977 + WORD $0x72ba36ee // movk w14, #53687, lsl #16 + WORD $0x9bae7d8e // umull x14, w12, w14 + WORD $0xd36dfdcf // lsr x15, x14, #45 + WORD $0x1284e1ee // mov w14, #-10000 + WORD $0x1b0e31ec // madd w12, w15, w14, w12 + WORD $0x340002ac // cbz w12, LBB0_48 $84(%rip) + WORD $0xd280000e // mov x14, #0 + WORD $0x5290a3f1 // mov w17, #34079 + WORD $0x72aa3d71 // movk w17, #20971, lsl #16 + WORD $0x9bb17d91 // umull x17, w12, w17 + WORD $0xd365fe31 // lsr x17, x17, #37 + WORD $0x52800c81 // mov w1, #100 + WORD $0x1b01b22c // msub w12, w17, w1, w12 +Lloh10: + WORD $0x10003341 // adr x1, _Digits $1640(%rip) +Lloh11: + WORD $0x91000021 // add x1, x1, _Digits@PAGEOFF $0(%rip) + WORD $0x786c582c // ldrh w12, [x1, w12, uxtw #1] + WORD $0x781fe20c // sturh w12, [x16, #-2] + WORD $0x7871782c // ldrh w12, [x1, x17, lsl #1] + WORD $0x781fc20c // sturh w12, [x16, #-4] + WORD $0x14000008 // b LBB0_49 $32(%rip) +LBB0_46: + WORD $0xd280000e // mov x14, #0 + WORD $0xaa0c03ef // mov x15, x12 + WORD $0x710191ff // cmp w15, #100 + WORD $0x540000e2 // b.hs LBB0_50 $28(%rip) +LBB0_47: + WORD $0xaa0f03ec // mov x12, x15 + WORD $0x14000015 // b LBB0_52 $84(%rip) +LBB0_48: + WORD $0x9280006e // mov x14, #-4 +LBB0_49: + WORD $0xd1001210 // sub x16, x16, #4 + WORD $0x710191ff // cmp w15, #100 + WORD $0x54ffff63 // b.lo LBB0_47 $-20(%rip) +LBB0_50: + WORD $0xd1000610 // sub x16, x16, #1 + WORD $0x5290a3f1 // mov w17, #34079 + WORD $0x72aa3d71 // movk w17, #20971, lsl #16 + WORD $0x52800c81 // mov w1, #100 +Lloh12: + WORD $0x100030a2 // adr x2, _Digits $1556(%rip) +Lloh13: + WORD $0x91000042 // add x2, x2, _Digits@PAGEOFF $0(%rip) +LBB0_51: + WORD $0x9bb17dec // umull x12, w15, w17 + WORD $0xd365fd8c // lsr x12, x12, #37 + WORD $0x1b01bd83 // msub w3, w12, w1, w15 + WORD $0x78635843 // ldrh w3, [x2, w3, uxtw #1] + WORD $0x781ff203 // sturh w3, [x16, #-1] + WORD $0xd1000a10 // sub x16, x16, #2 + WORD $0x53047de3 // lsr w3, w15, #4 + WORD $0xaa0c03ef // mov x15, x12 + WORD $0x7109c07f // cmp w3, #624 + WORD $0x54fffee8 // b.hi LBB0_51 $-36(%rip) +LBB0_52: + WORD $0x7100299f // cmp w12, #10 + WORD $0x54000123 // b.lo LBB0_54 $36(%rip) +Lloh14: + WORD $0x10002eef // adr x15, _Digits $1500(%rip) +Lloh15: + WORD $0x910001ef // add x15, x15, _Digits@PAGEOFF $0(%rip) + WORD $0x8b2c45ef // add x15, x15, w12, uxtw #1 + WORD $0x394001ec // ldrb w12, [x15] + WORD $0x3900050c // strb w12, [x8, #1] + WORD $0x394005ef // ldrb w15, [x15, #1] + WORD $0x3900090f // strb w15, [x8, #2] + WORD $0x14000003 // b LBB0_55 $12(%rip) +LBB0_54: + WORD $0x321c058c // orr w12, w12, #0x30 + WORD $0x3900016c // strb w12, [x11] +LBB0_55: + WORD $0x8b0a01ca // add x10, x14, x10 + WORD $0x8b0a000a // add x10, x0, x10 + WORD $0x910005ce // add x14, x14, #1 +LBB0_56: + WORD $0x386d694f // ldrb w15, [x10, x13] + WORD $0xd100054a // sub x10, x10, #1 + WORD $0xd10005ce // sub x14, x14, #1 + WORD $0x7100c1ff // cmp w15, #48 + WORD $0x54ffff80 // b.eq LBB0_56 $-16(%rip) + WORD $0x3900010c // strb w12, [x8] + WORD $0x8b0e01ac // add x12, x13, x14 + WORD $0x8b0d0148 // add x8, x10, x13 + WORD $0xf100099f // cmp x12, #2 + WORD $0x540000ab // b.lt LBB0_59 $20(%rip) + WORD $0x91000908 // add x8, x8, #2 + WORD $0x528005ca // mov w10, #46 + WORD $0x3900016a // strb w10, [x11] + WORD $0x14000002 // b LBB0_60 $8(%rip) +LBB0_59: + WORD $0x91000508 // add x8, x8, #1 +LBB0_60: + WORD $0x52800caa // mov w10, #101 + WORD $0x3900010a // strb w10, [x8] + WORD $0x5280002a // mov w10, #1 + WORD $0x4b09014a // sub w10, w10, w9 + WORD $0x71000529 // subs w9, w9, #1 + WORD $0x5280056b // mov w11, #43 + WORD $0x528005ac // mov w12, #45 + WORD $0x1a8bb18b // csel w11, w12, w11, lt + WORD $0x1a89b149 // csel w9, w10, w9, lt + WORD $0x3900050b // strb w11, [x8, #1] + WORD $0x7101913f // cmp w9, #100 + WORD $0x54000243 // b.lo LBB0_62 $72(%rip) + WORD $0x529999aa // mov w10, #52429 + WORD $0x72b9998a // movk w10, #52428, lsl #16 + WORD $0x9baa7d2a // umull x10, w9, w10 + WORD $0xd363fd4a // lsr x10, x10, #35 + WORD $0x5280014b // mov w11, #10 + WORD $0x1b0ba549 // msub w9, w10, w11, w9 +Lloh16: + WORD $0x1000292b // adr x11, _Digits $1316(%rip) +Lloh17: + WORD $0x9100016b // add x11, x11, _Digits@PAGEOFF $0(%rip) + WORD $0x786a796a // ldrh w10, [x11, x10, lsl #1] + WORD $0x7900050a // strh w10, [x8, #2] + WORD $0x321c0529 // orr w9, w9, #0x30 + WORD $0x39001109 // strb w9, [x8, #4] + WORD $0x9100150c // add x12, x8, #5 + WORD $0x4b000180 // sub w0, w12, w0 + WORD $0xa940fbfd // ldp fp, lr, [sp, #8] + WORD $0x910083ff // add sp, sp, #32 + WORD $0xd65f03c0 // ret +LBB0_62: + WORD $0x7100293f // cmp w9, #10 + WORD $0x54000143 // b.lo LBB0_64 $40(%rip) +Lloh18: + WORD $0x1000278a // adr x10, _Digits $1264(%rip) +Lloh19: + WORD $0x9100014a // add x10, x10, _Digits@PAGEOFF $0(%rip) + WORD $0x78695949 // ldrh w9, [x10, w9, uxtw #1] + WORD $0x79000509 // strh w9, [x8, #2] + WORD $0x9100110c // add x12, x8, #4 + WORD $0x4b000180 // sub w0, w12, w0 + WORD $0xa940fbfd // ldp fp, lr, [sp, #8] + WORD $0x910083ff // add sp, sp, #32 + WORD $0xd65f03c0 // ret +LBB0_64: + WORD $0x321c0529 // orr w9, w9, #0x30 + WORD $0x91000d0c // add x12, x8, #3 + WORD $0x39000909 // strb w9, [x8, #2] + WORD $0x4b000180 // sub w0, w12, w0 + WORD $0xa940fbfd // ldp fp, lr, [sp, #8] + WORD $0x910083ff // add sp, sp, #32 + WORD $0xd65f03c0 // ret +LBB0_65: + WORD $0x7101917f // cmp w11, #100 + WORD $0x540003c2 // b.hs LBB0_74 $120(%rip) + WORD $0x52800049 // mov w9, #2 + WORD $0x1400001f // b LBB0_76 $124(%rip) +LBB0_67: + WORD $0x927ae509 // and x9, x8, #0xffffffffffffffc0 + WORD $0x8b0e014d // add x13, x10, x14 + WORD $0x8b0001ad // add x13, x13, x0 + WORD $0x910081ad // add x13, x13, #32 + WORD $0x4f01e600 // movi.16b v0, #48 + WORD $0xaa0903ef // mov x15, x9 +LBB0_68: + WORD $0xad3f01a0 // stp q0, q0, [x13, #-32] + WORD $0xac8201a0 // stp q0, q0, [x13], #64 + WORD $0xf10101ef // subs x15, x15, #64 + WORD $0x54ffffa1 // b.ne LBB0_68 $-12(%rip) + WORD $0xeb09011f // cmp x8, x9 + WORD $0x54ffe9c0 // b.eq LBB0_35 $-712(%rip) + WORD $0xf27d091f // tst x8, #0x38 + WORD $0x540021c0 // b.eq LBB0_127 $1080(%rip) +LBB0_71: + WORD $0x927df10d // and x13, x8, #0xfffffffffffffff8 + WORD $0x8b0d016b // add x11, x11, x13 + WORD $0x8b0a012a // add x10, x9, x10 + WORD $0x8b0e014a // add x10, x10, x14 + WORD $0x8b0a000a // add x10, x0, x10 + WORD $0xcb0d0129 // sub x9, x9, x13 + WORD $0x0f01e600 // movi.8b v0, #48 +LBB0_72: + WORD $0xfc008540 // str d0, [x10], #8 + WORD $0xb1002129 // adds x9, x9, #8 + WORD $0x54ffffc1 // b.ne LBB0_72 $-8(%rip) + WORD $0xeb0d011f // cmp x8, x13 + WORD $0x54ffe800 // b.eq LBB0_35 $-768(%rip) + WORD $0x14000102 // b LBB0_128 $1032(%rip) +LBB0_74: + WORD $0x710f9d7f // cmp w11, #999 + WORD $0x54000448 // b.hi LBB0_82 $136(%rip) + WORD $0x52800069 // mov w9, #3 +LBB0_76: + WORD $0x8b090109 // add x9, x8, x9 + WORD $0xaa0903ec // mov x12, x9 + WORD $0x7101917f // cmp w11, #100 + WORD $0x540001e3 // b.lo LBB0_79 $60(%rip) +LBB0_77: + WORD $0xd100058c // sub x12, x12, #1 + WORD $0x5290a3ed // mov w13, #34079 + WORD $0x72aa3d6d // movk w13, #20971, lsl #16 + WORD $0x52800c8e // mov w14, #100 +LBB0_78: + WORD $0xaa0b03ef // mov x15, x11 + WORD $0x9bad7d6b // umull x11, w11, w13 + WORD $0xd365fd6b // lsr x11, x11, #37 + WORD $0x1b0ebd70 // msub w16, w11, w14, w15 + WORD $0x78705950 // ldrh w16, [x10, w16, uxtw #1] + WORD $0x781ff190 // sturh w16, [x12, #-1] + WORD $0xd100098c // sub x12, x12, #2 + WORD $0x53047def // lsr w15, w15, #4 + WORD $0x7109c1ff // cmp w15, #624 + WORD $0x54fffee8 // b.hi LBB0_78 $-36(%rip) +LBB0_79: + WORD $0x7100297f // cmp w11, #10 + WORD $0x540000e3 // b.lo LBB0_81 $28(%rip) + WORD $0x786b594a // ldrh w10, [x10, w11, uxtw #1] + WORD $0x7900010a // strh w10, [x8] + WORD $0x4b000120 // sub w0, w9, w0 + WORD $0xa940fbfd // ldp fp, lr, [sp, #8] + WORD $0x910083ff // add sp, sp, #32 + WORD $0xd65f03c0 // ret +LBB0_81: + WORD $0x321c056a // orr w10, w11, #0x30 + WORD $0x3900010a // strb w10, [x8] + WORD $0x4b000120 // sub w0, w9, w0 + WORD $0xa940fbfd // ldp fp, lr, [sp, #8] + WORD $0x910083ff // add sp, sp, #32 + WORD $0xd65f03c0 // ret +LBB0_82: + WORD $0x53047d69 // lsr w9, w11, #4 + WORD $0x5280008c // mov w12, #4 + WORD $0x7109c53f // cmp w9, #625 + WORD $0x9a8c3589 // cinc x9, x12, hs + WORD $0x8b09010c // add x12, x8, x9 + WORD $0xaa0c03e9 // mov x9, x12 + WORD $0x54ffd682 // b.hs LBB0_19 $-1328(%rip) + WORD $0x17ffffdd // b LBB0_77 $-140(%rip) +LBB0_83: + WORD $0x910005cf // add x15, x14, #1 + WORD $0x927a69ee // and x14, x15, #0x1ffffffc0 + WORD $0x8b0e0108 // add x8, x8, x14 + WORD $0x8b00014a // add x10, x10, x0 + WORD $0x9100894a // add x10, x10, #34 + WORD $0x4f01e600 // movi.16b v0, #48 + WORD $0xaa0e03f0 // mov x16, x14 +LBB0_84: + WORD $0xad3f0140 // stp q0, q0, [x10, #-32] + WORD $0xac820140 // stp q0, q0, [x10], #64 + WORD $0xf1010210 // subs x16, x16, #64 + WORD $0x54ffffa1 // b.ne LBB0_84 $-12(%rip) + WORD $0xeb0e01ff // cmp x15, x14 + WORD $0x540000e0 // b.eq LBB0_88 $28(%rip) +LBB0_86: + WORD $0x0b0901ca // add w10, w14, w9 + WORD $0x4b0a03ea // neg w10, w10 + WORD $0x5280060e // mov w14, #48 +LBB0_87: + WORD $0x3800150e // strb w14, [x8], #1 + WORD $0x7100054a // subs w10, w10, #1 + WORD $0x54ffffc1 // b.ne LBB0_87 $-8(%rip) +LBB0_88: + WORD $0x2a0d03ee // mov w14, w13 + WORD $0x8b0e010d // add x13, x8, x14 + WORD $0x53047d8a // lsr w10, w12, #4 + WORD $0x7109c55f // cmp w10, #625 + WORD $0x540002c3 // b.lo LBB0_91 $88(%rip) + WORD $0x5282eb2a // mov w10, #5977 + WORD $0x72ba36ea // movk w10, #53687, lsl #16 + WORD $0x9baa7d8a // umull x10, w12, w10 + WORD $0xd36dfd4a // lsr x10, x10, #45 + WORD $0x1284e1ef // mov w15, #-10000 + WORD $0x1b0f314c // madd w12, w10, w15, w12 + WORD $0x340002cc // cbz w12, LBB0_93 $88(%rip) + WORD $0xd280000f // mov x15, #0 + WORD $0x5290a3f0 // mov w16, #34079 + WORD $0x72aa3d70 // movk w16, #20971, lsl #16 + WORD $0x9bb07d90 // umull x16, w12, w16 + WORD $0xd365fe10 // lsr x16, x16, #37 + WORD $0x52800c91 // mov w17, #100 + WORD $0x1b11b20c // msub w12, w16, w17, w12 +Lloh20: + WORD $0x10001791 // adr x17, _Digits $752(%rip) +Lloh21: + WORD $0x91000231 // add x17, x17, _Digits@PAGEOFF $0(%rip) + WORD $0x786c5a2c // ldrh w12, [x17, w12, uxtw #1] + WORD $0x781fe1ac // sturh w12, [x13, #-2] + WORD $0x78707a2c // ldrh w12, [x17, x16, lsl #1] + WORD $0x781fc1ac // sturh w12, [x13, #-4] + WORD $0x14000009 // b LBB0_94 $36(%rip) +LBB0_91: + WORD $0xd280000f // mov x15, #0 + WORD $0xaa0d03f0 // mov x16, x13 + WORD $0xaa0c03ea // mov x10, x12 + WORD $0x7101915f // cmp w10, #100 + WORD $0x540000e2 // b.hs LBB0_95 $28(%rip) +LBB0_92: + WORD $0xaa0a03f0 // mov x16, x10 + WORD $0x14000015 // b LBB0_97 $84(%rip) +LBB0_93: + WORD $0x9280006f // mov x15, #-4 +LBB0_94: + WORD $0xd10011b0 // sub x16, x13, #4 + WORD $0x7101915f // cmp w10, #100 + WORD $0x54ffff63 // b.lo LBB0_92 $-20(%rip) +LBB0_95: + WORD $0xd100060c // sub x12, x16, #1 + WORD $0x5290a3f1 // mov w17, #34079 + WORD $0x72aa3d71 // movk w17, #20971, lsl #16 + WORD $0x52800c81 // mov w1, #100 +Lloh22: + WORD $0x100014c2 // adr x2, _Digits $664(%rip) +Lloh23: + WORD $0x91000042 // add x2, x2, _Digits@PAGEOFF $0(%rip) +LBB0_96: + WORD $0x9bb17d50 // umull x16, w10, w17 + WORD $0xd365fe10 // lsr x16, x16, #37 + WORD $0x1b01aa03 // msub w3, w16, w1, w10 + WORD $0x78635843 // ldrh w3, [x2, w3, uxtw #1] + WORD $0x781ff183 // sturh w3, [x12, #-1] + WORD $0xd100098c // sub x12, x12, #2 + WORD $0x53047d43 // lsr w3, w10, #4 + WORD $0xaa1003ea // mov x10, x16 + WORD $0x7109c07f // cmp w3, #624 + WORD $0x54fffee8 // b.hi LBB0_96 $-36(%rip) +LBB0_97: + WORD $0x71002a1f // cmp w16, #10 + WORD $0x540000c3 // b.lo LBB0_99 $24(%rip) +Lloh24: + WORD $0x1000130a // adr x10, _Digits $608(%rip) +Lloh25: + WORD $0x9100014a // add x10, x10, _Digits@PAGEOFF $0(%rip) + WORD $0x7870594a // ldrh w10, [x10, w16, uxtw #1] + WORD $0x7900010a // strh w10, [x8] + WORD $0x14000003 // b LBB0_100 $12(%rip) +LBB0_99: + WORD $0x321c060a // orr w10, w16, #0x30 + WORD $0x3900010a // strb w10, [x8] +LBB0_100: + WORD $0xd280000a // mov x10, #0 + WORD $0x8b0f01ad // add x13, x13, x15 + WORD $0x4b0f016c // sub w12, w11, w15 + WORD $0x51000581 // sub w1, w12, #1 + WORD $0x51000991 // sub w17, w12, #2 + WORD $0xaa1103f0 // mov x16, x17 +LBB0_101: + WORD $0x8b0a01ac // add x12, x13, x10 + WORD $0x385ff18c // ldurb w12, [x12, #-1] + WORD $0xd100054a // sub x10, x10, #1 + WORD $0x11000610 // add w16, w16, #1 + WORD $0x7100c19f // cmp w12, #48 + WORD $0x54ffff60 // b.eq LBB0_101 $-20(%rip) + WORD $0x8b0a01ac // add x12, x13, x10 + WORD $0x9100058c // add x12, x12, #1 + WORD $0x7100053f // cmp w9, #1 + WORD $0x54ffd66b // b.lt LBB0_35 $-1332(%rip) + WORD $0x0b0e01e2 // add w2, w15, w14 + WORD $0x0b0a0042 // add w2, w2, w10 + WORD $0x11000442 // add w2, w2, #1 + WORD $0x6b02013f // cmp w9, w2 + WORD $0x5400016a // b.ge LBB0_107 $44(%rip) + WORD $0x4b0b01ee // sub w14, w15, w11 + WORD $0x110005cb // add w11, w14, #1 + WORD $0x8b0a016c // add x12, x11, x10 + WORD $0x7100059f // cmp w12, #1 + WORD $0x54000c6b // b.lt LBB0_126 $396(%rip) + WORD $0x92407d8b // and x11, x12, #0xffffffff + WORD $0x7100219f // cmp w12, #8 + WORD $0x540001a2 // b.hs LBB0_110 $52(%rip) + WORD $0xd280000c // mov x12, #0 + WORD $0x14000055 // b LBB0_124 $340(%rip) +LBB0_107: + WORD $0xcb0a0029 // sub x9, x1, x10 + WORD $0x7100053f // cmp w9, #1 + WORD $0x54ffd42b // b.lt LBB0_35 $-1404(%rip) + WORD $0x4b0f016b // sub w11, w11, w15 + WORD $0x4b0a016b // sub w11, w11, w10 + WORD $0x5100096b // sub w11, w11, #2 + WORD $0x7100fd7f // cmp w11, #63 + WORD $0x540000e2 // b.hs LBB0_112 $28(%rip) + WORD $0x5280000b // mov w11, #0 + WORD $0x1400001f // b LBB0_115 $124(%rip) +LBB0_110: + WORD $0x7101019f // cmp w12, #64 + WORD $0x54000462 // b.hs LBB0_117 $140(%rip) + WORD $0xd280000c // mov x12, #0 + WORD $0x14000038 // b LBB0_121 $224(%rip) +LBB0_112: + WORD $0xd2800001 // mov x1, #0 + WORD $0xcb0a0222 // sub x2, x17, x10 + WORD $0x91000571 // add x17, x11, #1 + WORD $0x927a6a2b // and x11, x17, #0x1ffffffc0 + WORD $0x9100060c // add x12, x16, #1 + WORD $0x927a698c // and x12, x12, #0x1ffffffc0 + WORD $0x8b0e01ee // add x14, x15, x14 + WORD $0x8b0e0108 // add x8, x8, x14 + WORD $0x8b0a0108 // add x8, x8, x10 + WORD $0x8b0c0108 // add x8, x8, x12 + WORD $0x9100050c // add x12, x8, #1 + WORD $0x92407c48 // and x8, x2, #0xffffffff + WORD $0x91000508 // add x8, x8, #1 + WORD $0x927a6908 // and x8, x8, #0x1ffffffc0 + WORD $0x4f01e600 // movi.16b v0, #48 +LBB0_113: + WORD $0x8b0101ae // add x14, x13, x1 + WORD $0x8b0a01ce // add x14, x14, x10 + WORD $0x3c8011c0 // stur q0, [x14, #1] + WORD $0x3c8111c0 // stur q0, [x14, #17] + WORD $0x3c8211c0 // stur q0, [x14, #33] + WORD $0x3c8311c0 // stur q0, [x14, #49] + WORD $0x91010021 // add x1, x1, #64 + WORD $0xeb01011f // cmp x8, x1 + WORD $0x54ffff01 // b.ne LBB0_113 $-32(%rip) + WORD $0xeb0b023f // cmp x17, x11 + WORD $0x54ffcf80 // b.eq LBB0_35 $-1552(%rip) +LBB0_115: + WORD $0x52800608 // mov w8, #48 +LBB0_116: + WORD $0x38001588 // strb w8, [x12], #1 + WORD $0x1100056b // add w11, w11, #1 + WORD $0x6b09017f // cmp w11, w9 + WORD $0x54ffffab // b.lt LBB0_116 $-12(%rip) + WORD $0x17fffe76 // b LBB0_35 $-1576(%rip) +LBB0_117: + WORD $0xd280000f // mov x15, #0 + WORD $0x927a616c // and x12, x11, #0x7fffffc0 + WORD $0x0b0a01d0 // add w16, w14, w10 + WORD $0x11000610 // add w16, w16, #1 + WORD $0x927a6210 // and x16, x16, #0x7fffffc0 + WORD $0xcb1003f0 // neg x16, x16 + WORD $0x8b0a01b1 // add x17, x13, x10 +LBB0_118: + WORD $0x8b0f0221 // add x1, x17, x15 + WORD $0x3cdf1020 // ldur q0, [x1, #-15] + WORD $0x3cde1021 // ldur q1, [x1, #-31] + WORD $0x3cdd1022 // ldur q2, [x1, #-47] + WORD $0x3cdc1023 // ldur q3, [x1, #-63] + WORD $0x3c9f2020 // stur q0, [x1, #-14] + WORD $0x3c9e2021 // stur q1, [x1, #-30] + WORD $0x3c9d2022 // stur q2, [x1, #-46] + WORD $0x3c9c2023 // stur q3, [x1, #-62] + WORD $0xd10101ef // sub x15, x15, #64 + WORD $0xeb0f021f // cmp x16, x15 + WORD $0x54fffea1 // b.ne LBB0_118 $-44(%rip) + WORD $0xeb0b019f // cmp x12, x11 + WORD $0x54000360 // b.eq LBB0_126 $108(%rip) + WORD $0xf27d097f // tst x11, #0x38 + WORD $0x54000200 // b.eq LBB0_124 $64(%rip) +LBB0_121: + WORD $0xcb0c03ef // neg x15, x12 + WORD $0x927d6d6c // and x12, x11, #0x7ffffff8 + WORD $0x0b0a01ce // add w14, w14, w10 + WORD $0x110005ce // add w14, w14, #1 + WORD $0x927d6dce // and x14, x14, #0x7ffffff8 + WORD $0xcb0e03ee // neg x14, x14 + WORD $0x8b0a01b0 // add x16, x13, x10 +LBB0_122: + WORD $0x8b0f0211 // add x17, x16, x15 + WORD $0xfc5f9220 // ldur d0, [x17, #-7] + WORD $0xfc1fa220 // stur d0, [x17, #-6] + WORD $0xd10021ef // sub x15, x15, #8 + WORD $0xeb0f01df // cmp x14, x15 + WORD $0x54ffff61 // b.ne LBB0_122 $-20(%rip) + WORD $0xeb0b019f // cmp x12, x11 + WORD $0x54000140 // b.eq LBB0_126 $40(%rip) +LBB0_124: + WORD $0xcb0c03ee // neg x14, x12 + WORD $0x8b0a01af // add x15, x13, x10 +LBB0_125: + WORD $0x8b0e01f0 // add x16, x15, x14 + WORD $0x386e69f1 // ldrb w17, [x15, x14] + WORD $0x39000611 // strb w17, [x16, #1] + WORD $0x9100058c // add x12, x12, #1 + WORD $0xd10005ce // sub x14, x14, #1 + WORD $0xeb0b019f // cmp x12, x11 + WORD $0x54ffff43 // b.lo LBB0_125 $-24(%rip) +LBB0_126: + WORD $0x528005cb // mov w11, #46 + WORD $0x3829490b // strb w11, [x8, w9, uxtw] + WORD $0x8b0a01a8 // add x8, x13, x10 + WORD $0x9100090c // add x12, x8, #2 + WORD $0x4b000180 // sub w0, w12, w0 + WORD $0xa940fbfd // ldp fp, lr, [sp, #8] + WORD $0x910083ff // add sp, sp, #32 + WORD $0xd65f03c0 // ret +LBB0_127: + WORD $0x8b09016b // add x11, x11, x9 +LBB0_128: + WORD $0x52800608 // mov w8, #48 +LBB0_129: + WORD $0x38001568 // strb w8, [x11], #1 + WORD $0xeb0c017f // cmp x11, x12 + WORD $0x54ffffc3 // b.lo LBB0_129 $-8(%rip) + WORD $0x17fffe39 // b LBB0_35 $-1820(%rip) +LBB0_130: + WORD $0x52800000 // mov w0, #0 + WORD $0xa940fbfd // ldp fp, lr, [sp, #8] + WORD $0x910083ff // add sp, sp, #32 + WORD $0xd65f03c0 // ret +LBB0_131: + WORD $0x1280128c // mov w12, #-149 + WORD $0xaa0e03ed // mov x13, x14 + WORD $0x17fffd39 // b LBB0_5 $-2844(%rip) +_Digits: + WORD $0x31303030 // .ascii 4, '0001020304050607' + WORD $0x33303230 // .ascii 4, '0203040506070809' + WORD $0x35303430 // .ascii 4, '0405060708091011' + WORD $0x37303630 // .ascii 4, '0607080910111213' + WORD $0x39303830 // .ascii 4, '0809101112131415' + WORD $0x31313031 // .ascii 4, '1011121314151617' + WORD $0x33313231 // .ascii 4, '1213141516171819' + WORD $0x35313431 // .ascii 4, '1415161718192021' + WORD $0x37313631 // .ascii 4, '1617181920212223' + WORD $0x39313831 // .ascii 4, '1819202122232425' + WORD $0x31323032 // .ascii 4, '2021222324252627' + WORD $0x33323232 // .ascii 4, '2223242526272829' + WORD $0x35323432 // .ascii 4, '2425262728293031' + WORD $0x37323632 // .ascii 4, '2627282930313233' + WORD $0x39323832 // .ascii 4, '2829303132333435' + WORD $0x31333033 // .ascii 4, '3031323334353637' + WORD $0x33333233 // .ascii 4, '3233343536373839' + WORD $0x35333433 // .ascii 4, '3435363738394041' + WORD $0x37333633 // .ascii 4, '3637383940414243' + WORD $0x39333833 // .ascii 4, '3839404142434445' + WORD $0x31343034 // .ascii 4, '4041424344454647' + WORD $0x33343234 // .ascii 4, '4243444546474849' + WORD $0x35343434 // .ascii 4, '4445464748495051' + WORD $0x37343634 // .ascii 4, '4647484950515253' + WORD $0x39343834 // .ascii 4, '4849505152535455' + WORD $0x31353035 // .ascii 4, '5051525354555657' + WORD $0x33353235 // .ascii 4, '5253545556575859' + WORD $0x35353435 // .ascii 4, '5455565758596061' + WORD $0x37353635 // .ascii 4, '5657585960616263' + WORD $0x39353835 // .ascii 4, '5859606162636465' + WORD $0x31363036 // .ascii 4, '6061626364656667' + WORD $0x33363236 // .ascii 4, '6263646566676869' + WORD $0x35363436 // .ascii 4, '6465666768697071' + WORD $0x37363636 // .ascii 4, '6667686970717273' + WORD $0x39363836 // .ascii 4, '6869707172737475' + WORD $0x31373037 // .ascii 4, '7071727374757677' + WORD $0x33373237 // .ascii 4, '7273747576777879' + WORD $0x35373437 // .ascii 4, '7475767778798081' + WORD $0x37373637 // .ascii 4, '7677787980818283' + WORD $0x39373837 // .ascii 4, '7879808182838485' + WORD $0x31383038 // .ascii 4, '8081828384858687' + WORD $0x33383238 // .ascii 4, '8283848586878889' + WORD $0x35383438 // .ascii 4, '8485868788899091' + WORD $0x37383638 // .ascii 4, '8687888990919293' + WORD $0x39383838 // .ascii 4, '8889909192939495' + WORD $0x31393039 // .ascii 4, '9091929394959697' + WORD $0x33393239 // .ascii 4, '9293949596979899' + WORD $0x35393439 // .ascii 4, '949596979899' + WORD $0x37393639 // .ascii 4, '96979899' + WORD $0x39393839 // .ascii 4, '9899' + WORD $0x00000000 // .p2align 3, 0x00 +_LB_d2997d73: // _pow10_ceil_sig_f32.g + WORD $0x4b43fcf5; WORD $0x81ceb32c // .quad -9093133594791772939 + WORD $0x5e14fc32; WORD $0xa2425ff7 // .quad -6754730975062328270 + WORD $0x359a3b3f; WORD $0xcad2f7f5 // .quad -3831727700400522433 + WORD $0x8300ca0e; WORD $0xfd87b5f2 // .quad -177973607073265138 + WORD $0x91e07e49; WORD $0x9e74d1b7 // .quad -7028762532061872567 + WORD $0x76589ddb; WORD $0xc6120625 // .quad -4174267146649952805 + WORD $0xd3eec552; WORD $0xf79687ae // .quad -606147914885053102 + WORD $0x44753b53; WORD $0x9abe14cd // .quad -7296371474444240045 + WORD $0x95928a28; WORD $0xc16d9a00 // .quad -4508778324627912152 + WORD $0xbaf72cb2; WORD $0xf1c90080 // .quad -1024286887357502286 + WORD $0x74da7bef; WORD $0x971da050 // .quad -7557708332239520785 + WORD $0x92111aeb; WORD $0xbce50864 // .quad -4835449396872013077 + WORD $0xb69561a6; WORD $0xec1e4a7d // .quad -1432625727662628442 + WORD $0x921d5d08; WORD $0x9392ee8e // .quad -7812920107430224632 + WORD $0x36a4b44a; WORD $0xb877aa32 // .quad -5154464115860392886 + WORD $0xc44de15c; WORD $0xe69594be // .quad -1831394126398103204 + WORD $0x3ab0acda; WORD $0x901d7cf7 // .quad -8062150356639896358 + WORD $0x095cd810; WORD $0xb424dc35 // .quad -5466001927372482544 + WORD $0x4bb40e14; WORD $0xe12e1342 // .quad -2220816390788215276 + WORD $0x6f5088cc; WORD $0x8cbccc09 // .quad -8305539271883716404 + WORD $0xcb24aaff; WORD $0xafebff0b // .quad -5770238071427257601 + WORD $0xbdedd5bf; WORD $0xdbe6fece // .quad -2601111570856684097 + WORD $0x36b4a598; WORD $0x89705f41 // .quad -8543223759426509416 + WORD $0x8461cefd; WORD $0xabcc7711 // .quad -6067343680855748867 + WORD $0xe57a42bd; WORD $0xd6bf94d5 // .quad -2972493582642298179 + WORD $0xaf6c69b6; WORD $0x8637bd05 // .quad -8775337516792518218 + WORD $0x1b478424; WORD $0xa7c5ac47 // .quad -6357485877563259868 + WORD $0xe219652c; WORD $0xd1b71758 // .quad -3335171328526686932 + WORD $0x8d4fdf3c; WORD $0x83126e97 // .quad -9002011107970261188 + WORD $0x70a3d70b; WORD $0xa3d70a3d // .quad -6640827866535438581 + WORD $0xcccccccd; WORD $0xcccccccc // .quad -3689348814741910323 + WORD $0x00000000; WORD $0x80000000 // .quad -9223372036854775808 + WORD $0x00000000; WORD $0xa0000000 // .quad -6917529027641081856 + WORD $0x00000000; WORD $0xc8000000 // .quad -4035225266123964416 + WORD $0x00000000; WORD $0xfa000000 // .quad -432345564227567616 + WORD $0x00000000; WORD $0x9c400000 // .quad -7187745005283311616 + WORD $0x00000000; WORD $0xc3500000 // .quad -4372995238176751616 + WORD $0x00000000; WORD $0xf4240000 // .quad -854558029293551616 + WORD $0x00000000; WORD $0x98968000 // .quad -7451627795949551616 + WORD $0x00000000; WORD $0xbebc2000 // .quad -4702848726509551616 + WORD $0x00000000; WORD $0xee6b2800 // .quad -1266874889709551616 + WORD $0x00000000; WORD $0x9502f900 // .quad -7709325833709551616 + WORD $0x00000000; WORD $0xba43b740 // .quad -5024971273709551616 + WORD $0x00000000; WORD $0xe8d4a510 // .quad -1669528073709551616 + WORD $0x00000000; WORD $0x9184e72a // .quad -7960984073709551616 + WORD $0x80000000; WORD $0xb5e620f4 // .quad -5339544073709551616 + WORD $0xa0000000; WORD $0xe35fa931 // .quad -2062744073709551616 + WORD $0x04000000; WORD $0x8e1bc9bf // .quad -8206744073709551616 + WORD $0xc5000000; WORD $0xb1a2bc2e // .quad -5646744073709551616 + WORD $0x76400000; WORD $0xde0b6b3a // .quad -2446744073709551616 + WORD $0x89e80000; WORD $0x8ac72304 // .quad -8446744073709551616 + WORD $0xac620000; WORD $0xad78ebc5 // .quad -5946744073709551616 + WORD $0x177a8000; WORD $0xd8d726b7 // .quad -2821744073709551616 + WORD $0x6eac9000; WORD $0x87867832 // .quad -8681119073709551616 + WORD $0x0a57b400; WORD $0xa968163f // .quad -6239712823709551616 + WORD $0xcceda100; WORD $0xd3c21bce // .quad -3187955011209551616 + WORD $0x401484a0; WORD $0x84595161 // .quad -8910000909647051616 + WORD $0x9019a5c8; WORD $0xa56fa5b9 // .quad -6525815118631426616 + WORD $0xf4200f3a; WORD $0xcecb8f27 // .quad -3545582879861895366 + WORD $0xf8940985; WORD $0x813f3978 // .quad -9133518327554766459 + WORD $0x36b90be6; WORD $0xa18f07d7 // .quad -6805211891016070170 + WORD $0x04674edf; WORD $0xc9f2c9cd // .quad -3894828845342699809 + WORD $0x45812297; WORD $0xfc6f7c40 // .quad -256850038250986857 + WORD $0x2b70b59e; WORD $0x9dc5ada8 // .quad -7078060301547948642 + WORD $0x364ce306; WORD $0xc5371912 // .quad -4235889358507547898 + WORD $0xc3e01bc7; WORD $0xf684df56 // .quad -683175679707046969 + WORD $0x3a6c115d; WORD $0x9a130b96 // .quad -7344513827457986211 + WORD $0xc90715b4; WORD $0xc097ce7b // .quad -4568956265895094860 + WORD $0xbb48db21; WORD $0xf0bdc21a // .quad -1099509313941480671 + WORD $0xb50d88f5; WORD $0x96769950 // .quad -7604722348854507275 + WORD $0xe250eb32; WORD $0xbc143fa4 // .quad -4894216917640746190 + WORD $0x1ae525fe; WORD $0xeb194f8e // .quad -1506085128623544834 + WORD $0xd0cf37bf; WORD $0x92efd1b8 // .quad -7858832233030797377 + WORD $0x050305ae; WORD $0xb7abc627 // .quad -5211854272861108818 + WORD $0xc643c71a; WORD $0xe596b7b0 // .quad -1903131822648998118 + WORD $0x7bea5c70; WORD $0x8f7e32ce // .quad -8106986416796705680 + WORD $0x1ae4f38c; WORD $0xb35dbf82 // .quad -5522047002568494196 + +TEXT ·__f32toa(SB), NOSPLIT, $0-24 + NO_LOCAL_POINTERS + +_entry: + MOVD 16(g), R16 + SUB $96, RSP, R17 + CMP R16, R17 + BLS _stack_grow + +_f32toa: + MOVD out+0(FP), R0 + FMOVD val+8(FP), F0 + MOVD ·_subr__f32toa(SB), R11 + WORD $0x1000005e // adr x30, .+8 + JMP (R11) + MOVD R0, ret+16(FP) + RET + +_stack_grow: + MOVD R30, R3 + CALL runtime·morestack_noctxt<>(SB) + JMP _entry diff --git a/vendor/github.com/bytedance/sonic/internal/native/neon/f32toa_subr_arm64.go b/vendor/github.com/bytedance/sonic/internal/native/neon/f32toa_subr_arm64.go new file mode 100644 index 000000000..1e624c14b --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/neon/f32toa_subr_arm64.go @@ -0,0 +1,25 @@ +// +build !noasm !appengine +// Code generated by asm2asm, DO NOT EDIT. + +package neon + +//go:nosplit +//go:noescape +//goland:noinspection ALL +func __f32toa_entry__() uintptr + +var ( + _subr__f32toa uintptr = __f32toa_entry__() + 0 +) + +const ( + _stack__f32toa = 32 +) + +var ( + _ = _subr__f32toa +) + +const ( + _ = _stack__f32toa +) diff --git a/vendor/github.com/bytedance/sonic/internal/native/neon/f64toa_arm64.go b/vendor/github.com/bytedance/sonic/internal/native/neon/f64toa_arm64.go new file mode 100644 index 000000000..169924be5 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/neon/f64toa_arm64.go @@ -0,0 +1,31 @@ +// Code generated by Makefile, DO NOT EDIT. + +// Code generated by Makefile, DO NOT EDIT. + +/* + * Copyright 2021 ByteDance 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 neon + +//go:nosplit +func f64toa(out *byte, val float64) (ret int) { + return __f64toa(out, val) +} + +//go:nosplit +//go:noescape +//goland:noinspection GoUnusedParameter +func __f64toa(out *byte, val float64) (ret int) diff --git a/vendor/github.com/bytedance/sonic/internal/native/neon/f64toa_arm64.s b/vendor/github.com/bytedance/sonic/internal/native/neon/f64toa_arm64.s new file mode 100644 index 000000000..93e9be0fd --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/neon/f64toa_arm64.s @@ -0,0 +1,2492 @@ +// +build !noasm !appengine +// Code generated by asm2asm, DO NOT EDIT. + +#include "go_asm.h" +#include "funcdata.h" +#include "textflag.h" + +TEXT ·__f64toa_entry__(SB), NOSPLIT, $16 + NO_LOCAL_POINTERS + WORD $0x100000a0 // adr x0, .+20 + MOVD R0, ret(FP) + RET + // .p2align 2, 0x00 +_f64toa: + WORD $0xd10083ff // sub sp, sp, #32 + WORD $0xa900fbfd // stp fp, lr, [sp, #8] + WORD $0xa93ffbfd // stp fp, lr, [sp, #-8] + WORD $0xd10023fd // sub fp, sp, #8 + WORD $0x9e660009 // fmov x9, d0 + WORD $0xd374f92b // ubfx x11, x9, #52, #11 + WORD $0x711ffd7f // cmp w11, #2047 + WORD $0x54007c20 // b.eq LBB0_171 $3972(%rip) + WORD $0x528005a8 // mov w8, #45 + WORD $0x39000008 // strb w8, [x0] + WORD $0xd37ffd2a // lsr x10, x9, #63 + WORD $0x8b0a0008 // add x8, x0, x10 + WORD $0x9e66000c // fmov x12, d0 + WORD $0xf240f99f // tst x12, #0x7fffffffffffffff + WORD $0x54000ec0 // b.eq LBB0_10 $472(%rip) + WORD $0x9240cd2e // and x14, x9, #0xfffffffffffff + WORD $0xd29c7fed // mov x13, #58367 + WORD $0xf2aa816d // movk x13, #21515, lsl #16 + WORD $0xf2c0004d // movk x13, #2, lsl #32 + WORD $0x34007c0b // cbz w11, LBB0_174 $3968(%rip) + WORD $0xb24c01c9 // orr x9, x14, #0x10000000000000 + WORD $0x5110cd6c // sub w12, w11, #1075 + WORD $0x510ffd6f // sub w15, w11, #1023 + WORD $0x7100d1ff // cmp w15, #52 + WORD $0x540000e8 // b.hi LBB0_5 $28(%rip) + WORD $0x5280866f // mov w15, #1075 + WORD $0x4b0b01ef // sub w15, w15, w11 + WORD $0x92800010 // mov x16, #-1 + WORD $0x9acf2210 // lsl x16, x16, x15 + WORD $0xea30013f // bics xzr, x9, x16 + WORD $0x54000fe0 // b.eq LBB0_18 $508(%rip) +LBB0_5: + WORD $0xf10001df // cmp x14, #0 + WORD $0x1a9f17ee // cset w14, eq + WORD $0x7100057f // cmp w11, #1 + WORD $0x1a9f97eb // cset w11, hi + WORD $0xd37ef52f // lsl x15, x9, #2 + WORD $0x6a0b01cb // ands w11, w14, w11 + WORD $0xaa0b01eb // orr x11, x15, x11 + WORD $0x52800050 // mov w16, #2 + WORD $0xb37ed130 // bfi x16, x9, #2, #53 + WORD $0x5288826e // mov w14, #17427 + WORD $0x72a0026e // movk w14, #19, lsl #16 + WORD $0x52802031 // mov w17, #257 + WORD $0x72bfff11 // movk w17, #65528, lsl #16 + WORD $0x1a9f1231 // csel w17, w17, wzr, ne + WORD $0xd1000961 // sub x1, x11, #2 + WORD $0x1b0e458b // madd w11, w12, w14, w17 + WORD $0x13167d6b // asr w11, w11, #22 + WORD $0x528d962e // mov w14, #27825 + WORD $0x72bffcae // movk w14, #65509, lsl #16 + WORD $0x1b0e7d6e // mul w14, w11, w14 + WORD $0x0b8e4d8c // add w12, w12, w14, asr #19 + WORD $0x1100058c // add w12, w12, #1 + WORD $0x5280248e // mov w14, #292 + WORD $0x4b0b01ce // sub w14, w14, w11 +Lloh0: + WORD $0x10008031 // adr x17, _pow10_ceil_sig.g $4100(%rip) +Lloh1: + WORD $0x91000231 // add x17, x17, _pow10_ceil_sig.g@PAGEOFF $0(%rip) + WORD $0x8b2e522e // add x14, x17, w14, uxtw #4 + WORD $0xa94009d1 // ldp x17, x2, [x14] + WORD $0x9acc202e // lsl x14, x1, x12 + WORD $0x9bd17dc1 // umulh x1, x14, x17 + WORD $0x9b117dc3 // mul x3, x14, x17 + WORD $0x9bc27dce // umulh x14, x14, x2 + WORD $0xab0301ce // adds x14, x14, x3 + WORD $0x9a813421 // cinc x1, x1, hs + WORD $0xf27ff9df // tst x14, #0xfffffffffffffffe + WORD $0x1a9f07ee // cset w14, ne + WORD $0xaa0101c1 // orr x1, x14, x1 + WORD $0x9acc21ee // lsl x14, x15, x12 + WORD $0x9bd17dcf // umulh x15, x14, x17 + WORD $0x9b117dc3 // mul x3, x14, x17 + WORD $0x9bc27dce // umulh x14, x14, x2 + WORD $0xab0301c3 // adds x3, x14, x3 + WORD $0x9a8f35ee // cinc x14, x15, hs + WORD $0xf27ff87f // tst x3, #0xfffffffffffffffe + WORD $0x1a9f07ef // cset w15, ne + WORD $0xaa0e01ef // orr x15, x15, x14 + WORD $0x9acc220c // lsl x12, x16, x12 + WORD $0x9bd17d90 // umulh x16, x12, x17 + WORD $0x9b117d91 // mul x17, x12, x17 + WORD $0x9bc27d8c // umulh x12, x12, x2 + WORD $0xab11018c // adds x12, x12, x17 + WORD $0x9a903610 // cinc x16, x16, hs + WORD $0xf27ff99f // tst x12, #0xfffffffffffffffe + WORD $0x1a9f07ec // cset w12, ne + WORD $0xaa10018c // orr x12, x12, x16 + WORD $0x92400129 // and x9, x9, #0x1 + WORD $0x8b090030 // add x16, x1, x9 + WORD $0xcb090189 // sub x9, x12, x9 + WORD $0xf100a1ff // cmp x15, #40 + WORD $0x540001e3 // b.lo LBB0_7 $60(%rip) + WORD $0xb202e7ec // mov x12, #-3689348814741910324 + WORD $0xf29999ac // movk x12, #52429 + WORD $0x9bcc7dcc // umulh x12, x14, x12 + WORD $0xd345fd8c // lsr x12, x12, #5 + WORD $0x8b0c0991 // add x17, x12, x12, lsl #2 + WORD $0xd37df231 // lsl x17, x17, #3 + WORD $0x9100a221 // add x1, x17, #40 + WORD $0xeb11021f // cmp x16, x17 + WORD $0x1a9f97f1 // cset w17, hi + WORD $0xeb09003f // cmp x1, x9 + WORD $0x1a9f87e1 // cset w1, ls + WORD $0x9a8c858c // cinc x12, x12, ls + WORD $0x6b01023f // cmp w17, w1 + WORD $0x54000460 // b.eq LBB0_11 $140(%rip) +LBB0_7: + WORD $0xd342fdcc // lsr x12, x14, #2 + WORD $0x927ef5d1 // and x17, x14, #0xfffffffffffffffc + WORD $0x91001221 // add x1, x17, #4 + WORD $0xeb09003f // cmp x1, x9 + WORD $0x1a9f87e2 // cset w2, ls + WORD $0xeb11021f // cmp x16, x17 + WORD $0x1a9f97f0 // cset w16, hi + WORD $0x4a020210 // eor w16, w16, w2 + WORD $0xb27f0231 // orr x17, x17, #0x2 + WORD $0xeb1101ff // cmp x15, x17 + WORD $0x1a9f17ef // cset w15, eq + WORD $0x0a4e09ee // and w14, w15, w14, lsr #2 + WORD $0x1a9f95ce // csinc w14, w14, wzr, ls + WORD $0x8b0e018e // add x14, x12, x14 + WORD $0xeb09003f // cmp x1, x9 + WORD $0x9a8c8589 // cinc x9, x12, ls + WORD $0x7200021f // tst w16, #0x1 + WORD $0x9a8911cc // csel x12, x14, x9, ne + WORD $0xeb0d019f // cmp x12, x13 + WORD $0x54000249 // b.ls LBB0_12 $72(%rip) +LBB0_8: + WORD $0xd29d0009 // mov x9, #59392 + WORD $0xf2a90ec9 // movk x9, #18550, lsl #16 + WORD $0xf2c002e9 // movk x9, #23, lsl #32 + WORD $0xeb09019f // cmp x12, x9 + WORD $0x54000222 // b.hs LBB0_14 $68(%rip) + WORD $0x5280016d // mov w13, #11 + WORD $0x140000f3 // b LBB0_67 $972(%rip) +LBB0_10: + WORD $0x52800609 // mov w9, #48 + WORD $0x39000109 // strb w9, [x8] + WORD $0x4b000108 // sub w8, w8, w0 + WORD $0x11000500 // add w0, w8, #1 + WORD $0xa940fbfd // ldp fp, lr, [sp, #8] + WORD $0x910083ff // add sp, sp, #32 + WORD $0xd65f03c0 // ret +LBB0_11: + WORD $0x1100056b // add w11, w11, #1 + WORD $0xeb0d019f // cmp x12, x13 + WORD $0x54fffe08 // b.hi LBB0_8 $-64(%rip) +LBB0_12: + WORD $0xf100299f // cmp x12, #10 + WORD $0x54000142 // b.hs LBB0_16 $40(%rip) + WORD $0x5280002d // mov w13, #1 + WORD $0x140000e5 // b LBB0_67 $916(%rip) +LBB0_14: + WORD $0xd2820009 // mov x9, #4096 + WORD $0xf2ba94a9 // movk x9, #54437, lsl #16 + WORD $0xf2c01d09 // movk x9, #232, lsl #32 + WORD $0xeb09019f // cmp x12, x9 + WORD $0x54000262 // b.hs LBB0_21 $76(%rip) + WORD $0x5280018d // mov w13, #12 + WORD $0x140000de // b LBB0_67 $888(%rip) +LBB0_16: + WORD $0xf101919f // cmp x12, #100 + WORD $0x540002c2 // b.hs LBB0_23 $88(%rip) + WORD $0x5280004d // mov w13, #2 + WORD $0x140000da // b LBB0_67 $872(%rip) +LBB0_18: + WORD $0x9acf252a // lsr x10, x9, x15 +Lloh2: + WORD $0x10006d09 // adr x9, _Digits $3488(%rip) +Lloh3: + WORD $0x91000129 // add x9, x9, _Digits@PAGEOFF $0(%rip) + WORD $0xeb0d015f // cmp x10, x13 + WORD $0x54000269 // b.ls LBB0_25 $76(%rip) + WORD $0xd29d000b // mov x11, #59392 + WORD $0xf2a90ecb // movk x11, #18550, lsl #16 + WORD $0xf2c002eb // movk x11, #23, lsl #32 + WORD $0xeb0b015f // cmp x10, x11 + WORD $0x540003e2 // b.hs LBB0_31 $124(%rip) + WORD $0x5280016b // mov w11, #11 + WORD $0x14000067 // b LBB0_54 $412(%rip) +LBB0_21: + WORD $0xd2940009 // mov x9, #40960 + WORD $0xf2a9ce49 // movk x9, #20082, lsl #16 + WORD $0xf2c12309 // movk x9, #2328, lsl #32 + WORD $0xeb09019f // cmp x12, x9 + WORD $0x54000182 // b.hs LBB0_27 $48(%rip) + WORD $0x528001ad // mov w13, #13 + WORD $0x140000c7 // b LBB0_67 $796(%rip) +LBB0_23: + WORD $0xf10fa19f // cmp x12, #1000 + WORD $0x540001e2 // b.hs LBB0_29 $60(%rip) + WORD $0x5280006d // mov w13, #3 + WORD $0x140000c3 // b LBB0_67 $780(%rip) +LBB0_25: + WORD $0xf100295f // cmp x10, #10 + WORD $0x540002e2 // b.hs LBB0_33 $92(%rip) + WORD $0x5280002b // mov w11, #1 + WORD $0x8b0b010b // add x11, x8, x11 + WORD $0x14000346 // b LBB0_176 $3352(%rip) +LBB0_27: + WORD $0xd2880009 // mov x9, #16384 + WORD $0xf2a20f49 // movk x9, #4218, lsl #16 + WORD $0xf2cb5e69 // movk x9, #23283, lsl #32 + WORD $0xeb09019f // cmp x12, x9 + WORD $0x54000282 // b.hs LBB0_35 $80(%rip) + WORD $0x528001cd // mov w13, #14 + WORD $0x140000b7 // b LBB0_67 $732(%rip) +LBB0_29: + WORD $0xd344fd89 // lsr x9, x12, #4 + WORD $0xf109c53f // cmp x9, #625 + WORD $0x540002c2 // b.hs LBB0_37 $88(%rip) + WORD $0x5280008d // mov w13, #4 + WORD $0x140000b2 // b LBB0_67 $712(%rip) +LBB0_31: + WORD $0xd282000b // mov x11, #4096 + WORD $0xf2ba94ab // movk x11, #54437, lsl #16 + WORD $0xf2c01d0b // movk x11, #232, lsl #32 + WORD $0xeb0b015f // cmp x10, x11 + WORD $0x54000282 // b.hs LBB0_39 $80(%rip) + WORD $0x5280018b // mov w11, #12 + WORD $0x14000044 // b LBB0_54 $272(%rip) +LBB0_33: + WORD $0xf101915f // cmp x10, #100 + WORD $0x540002e2 // b.hs LBB0_41 $92(%rip) + WORD $0x5280004b // mov w11, #2 + WORD $0x8b0b010b // add x11, x8, x11 + WORD $0x1400032e // b LBB0_176 $3256(%rip) +LBB0_35: + WORD $0xb2718be9 // mov x9, #1125899906809856 + WORD $0xf2b498c9 // movk x9, #42182, lsl #16 + WORD $0xf2d1afc9 // movk x9, #36222, lsl #32 + WORD $0xeb09019f // cmp x12, x9 + WORD $0x54000282 // b.hs LBB0_43 $80(%rip) + WORD $0x528001ed // mov w13, #15 + WORD $0x1400009f // b LBB0_67 $636(%rip) +LBB0_37: + WORD $0xd345fd89 // lsr x9, x12, #5 + WORD $0xf130d53f // cmp x9, #3125 + WORD $0x540002c2 // b.hs LBB0_45 $88(%rip) + WORD $0x528000ad // mov w13, #5 + WORD $0x1400009a // b LBB0_67 $616(%rip) +LBB0_39: + WORD $0xd294000b // mov x11, #40960 + WORD $0xf2a9ce4b // movk x11, #20082, lsl #16 + WORD $0xf2c1230b // movk x11, #2328, lsl #32 + WORD $0xeb0b015f // cmp x10, x11 + WORD $0x540002a2 // b.hs LBB0_47 $84(%rip) + WORD $0x528001ab // mov w11, #13 + WORD $0x1400002c // b LBB0_54 $176(%rip) +LBB0_41: + WORD $0xf10fa15f // cmp x10, #1000 + WORD $0x54000302 // b.hs LBB0_49 $96(%rip) + WORD $0x5280006b // mov w11, #3 + WORD $0x8b0b010b // add x11, x8, x11 + WORD $0x14000316 // b LBB0_176 $3160(%rip) +LBB0_43: + WORD $0xd2adf829 // mov x9, #1874919424 + WORD $0xf2d0de49 // movk x9, #34546, lsl #32 + WORD $0xf2e00469 // movk x9, #35, lsl #48 + WORD $0xeb09019f // cmp x12, x9 + WORD $0x52800209 // mov w9, #16 +LBB0_44: + WORD $0x1a89352d // cinc w13, w9, hs + WORD $0x14000087 // b LBB0_67 $540(%rip) +LBB0_45: + WORD $0x52884809 // mov w9, #16960 + WORD $0x72a001e9 // movk w9, #15, lsl #16 + WORD $0xeb09019f // cmp x12, x9 + WORD $0x54000202 // b.hs LBB0_51 $64(%rip) + WORD $0x528000cd // mov w13, #6 + WORD $0x14000081 // b LBB0_67 $516(%rip) +LBB0_47: + WORD $0xd288000b // mov x11, #16384 + WORD $0xf2a20f4b // movk x11, #4218, lsl #16 + WORD $0xf2cb5e6b // movk x11, #23283, lsl #32 + WORD $0xeb0b015f // cmp x10, x11 + WORD $0x540001e2 // b.hs LBB0_53 $60(%rip) + WORD $0x528001cb // mov w11, #14 + WORD $0x14000013 // b LBB0_54 $76(%rip) +LBB0_49: + WORD $0xd344fd4b // lsr x11, x10, #4 + WORD $0xf109c57f // cmp x11, #625 + WORD $0x54000d82 // b.hs LBB0_63 $432(%rip) + WORD $0x5280008b // mov w11, #4 + WORD $0x8b0b010b // add x11, x8, x11 + WORD $0x140002fc // b LBB0_176 $3056(%rip) +LBB0_51: + WORD $0x5292d009 // mov w9, #38528 + WORD $0x72a01309 // movk w9, #152, lsl #16 + WORD $0xeb09019f // cmp x12, x9 + WORD $0x54000d62 // b.hs LBB0_65 $428(%rip) + WORD $0x528000ed // mov w13, #7 + WORD $0x1400006e // b LBB0_67 $440(%rip) +LBB0_53: + WORD $0xb2718beb // mov x11, #1125899906809856 + WORD $0xf2b498cb // movk x11, #42182, lsl #16 + WORD $0xf2d1afcb // movk x11, #36222, lsl #32 + WORD $0xeb0b015f // cmp x10, x11 + WORD $0x528001eb // mov w11, #15 + WORD $0x9a8b356b // cinc x11, x11, hs +LBB0_54: + WORD $0x8b0b010b // add x11, x8, x11 +LBB0_55: + WORD $0xd288c3ac // mov x12, #17949 + WORD $0xf2ae230c // movk x12, #28952, lsl #16 + WORD $0xf2d798ec // movk x12, #48327, lsl #32 + WORD $0xf2e0014c // movk x12, #10, lsl #48 + WORD $0x9bcc7d4c // umulh x12, x10, x12 + WORD $0xd34efd8d // lsr x13, x12, #14 + WORD $0x5283e00c // mov w12, #7936 + WORD $0x72bf414c // movk w12, #64010, lsl #16 + WORD $0x1b0c29aa // madd w10, w13, w12, w10 + WORD $0x5282eb2c // mov w12, #5977 + WORD $0x72ba36ec // movk w12, #53687, lsl #16 + WORD $0x9bac7d4c // umull x12, w10, w12 + WORD $0xd36dfd8c // lsr x12, x12, #45 + WORD $0x5284e20e // mov w14, #10000 + WORD $0x1b0ea98a // msub w10, w12, w14, w10 + WORD $0x5291b72f // mov w15, #36281 + WORD $0x72a000cf // movk w15, #6, lsl #16 + WORD $0x9baf7d8f // umull x15, w12, w15 + WORD $0xd360fdef // lsr x15, x15, #32 + WORD $0x1b0eb1ec // msub w12, w15, w14, w12 + WORD $0x53023d4e // ubfx w14, w10, #2, #14 + WORD $0x52828f6f // mov w15, #5243 + WORD $0x1b0f7dce // mul w14, w14, w15 + WORD $0x53117dce // lsr w14, w14, #17 + WORD $0x52800c90 // mov w16, #100 + WORD $0x1b10a9ca // msub w10, w14, w16, w10 + WORD $0x92403d4a // and x10, x10, #0xffff + WORD $0x1b0f7d8f // mul w15, w12, w15 + WORD $0x53137def // lsr w15, w15, #19 + WORD $0x1b10b1f0 // msub w16, w15, w16, w12 + WORD $0x786a792a // ldrh w10, [x9, x10, lsl #1] + WORD $0x786f592f // ldrh w15, [x9, w15, uxtw #1] + WORD $0xaa0b03ec // mov x12, x11 + WORD $0x781f8d8f // strh w15, [x12, #-8]! + WORD $0x79000d8a // strh w10, [x12, #6] + WORD $0x786e592a // ldrh w10, [x9, w14, uxtw #1] + WORD $0x92403e0e // and x14, x16, #0xffff + WORD $0x7900098a // strh w10, [x12, #4] + WORD $0x786e792a // ldrh w10, [x9, x14, lsl #1] + WORD $0x7900058a // strh w10, [x12, #2] + WORD $0xaa0d03ea // mov x10, x13 + WORD $0xd3447dad // ubfx x13, x13, #4, #28 + WORD $0x7109c5bf // cmp w13, #625 + WORD $0x540058e3 // b.lo LBB0_177 $2844(%rip) +LBB0_56: + WORD $0x529c1fee // mov w14, #57599 + WORD $0x72a0beae // movk w14, #1525, lsl #16 + WORD $0x5282eb2f // mov w15, #5977 + WORD $0x72ba36ef // movk w15, #53687, lsl #16 + WORD $0x1284e1f0 // mov w16, #-10000 + WORD $0x5290a3f1 // mov w17, #34079 + WORD $0x72aa3d71 // movk w17, #20971, lsl #16 + WORD $0x52800c81 // mov w1, #100 +LBB0_57: + WORD $0x9baf7d4d // umull x13, w10, w15 + WORD $0xd36dfdad // lsr x13, x13, #45 + WORD $0x1b1029a2 // madd w2, w13, w16, w10 + WORD $0x9bb17c43 // umull x3, w2, w17 + WORD $0xd365fc63 // lsr x3, x3, #37 + WORD $0x1b018862 // msub w2, w3, w1, w2 + WORD $0x78625922 // ldrh w2, [x9, w2, uxtw #1] + WORD $0x78637923 // ldrh w3, [x9, x3, lsl #1] + WORD $0x781fcd83 // strh w3, [x12, #-4]! + WORD $0x79000582 // strh w2, [x12, #2] + WORD $0x6b0e015f // cmp w10, w14 + WORD $0xaa0d03ea // mov x10, x13 + WORD $0x54fffe88 // b.hi LBB0_57 $-48(%rip) + WORD $0x710191bf // cmp w13, #100 + WORD $0x54000163 // b.lo LBB0_60 $44(%rip) +LBB0_59: + WORD $0x53023daa // ubfx w10, w13, #2, #14 + WORD $0x52828f6e // mov w14, #5243 + WORD $0x1b0e7d4a // mul w10, w10, w14 + WORD $0x53117d4a // lsr w10, w10, #17 + WORD $0x52800c8e // mov w14, #100 + WORD $0x1b0eb54d // msub w13, w10, w14, w13 + WORD $0x92403dad // and x13, x13, #0xffff + WORD $0x786d792d // ldrh w13, [x9, x13, lsl #1] + WORD $0x781fed8d // strh w13, [x12, #-2]! + WORD $0xaa0a03ed // mov x13, x10 +LBB0_60: + WORD $0x710029bf // cmp w13, #10 + WORD $0x540000e3 // b.lo LBB0_62 $28(%rip) + WORD $0x786d5928 // ldrh w8, [x9, w13, uxtw #1] + WORD $0x781fe188 // sturh w8, [x12, #-2] + WORD $0x4b000160 // sub w0, w11, w0 + WORD $0xa940fbfd // ldp fp, lr, [sp, #8] + WORD $0x910083ff // add sp, sp, #32 + WORD $0xd65f03c0 // ret +LBB0_62: + WORD $0x321c05a9 // orr w9, w13, #0x30 + WORD $0x39000109 // strb w9, [x8] + WORD $0x4b000160 // sub w0, w11, w0 + WORD $0xa940fbfd // ldp fp, lr, [sp, #8] + WORD $0x910083ff // add sp, sp, #32 + WORD $0xd65f03c0 // ret +LBB0_63: + WORD $0xd345fd4b // lsr x11, x10, #5 + WORD $0xf130d57f // cmp x11, #3125 + WORD $0x54004d02 // b.hs LBB0_166 $2464(%rip) + WORD $0x528000ab // mov w11, #5 + WORD $0x8b0b010b // add x11, x8, x11 + WORD $0x1400028e // b LBB0_176 $2616(%rip) +LBB0_65: + WORD $0x529c2009 // mov w9, #57600 + WORD $0x72a0bea9 // movk w9, #1525, lsl #16 + WORD $0xeb09019f // cmp x12, x9 + WORD $0x54004d02 // b.hs LBB0_168 $2464(%rip) + WORD $0x5280010d // mov w13, #8 +LBB0_67: + WORD $0x0b0b01a9 // add w9, w13, w11 + WORD $0x5100592e // sub w14, w9, #22 + WORD $0xd360fd8f // lsr x15, x12, #32 + WORD $0x310071df // cmn w14, #28 + WORD $0x54000168 // b.hi LBB0_71 $44(%rip) + WORD $0x9100050b // add x11, x8, #1 + WORD $0x2a0d03ed // mov w13, w13 + WORD $0x8b0d016e // add x14, x11, x13 + WORD $0xb500022f // cbnz x15, LBB0_75 $68(%rip) + WORD $0xaa0c03f0 // mov x16, x12 + WORD $0x53047e0c // lsr w12, w16, #4 + WORD $0x7109c59f // cmp w12, #625 + WORD $0x540017c2 // b.hs LBB0_94 $760(%rip) +LBB0_70: + WORD $0xaa1003ec // mov x12, x16 + WORD $0x140000d3 // b LBB0_96 $844(%rip) +LBB0_71: + WORD $0x37f8074b // tbnz w11, #31, LBB0_77 $232(%rip) + WORD $0x2a0d03ee // mov w14, w13 + WORD $0x8b0e010b // add x11, x8, x14 + WORD $0xb500084f // cbnz x15, LBB0_81 $264(%rip) + WORD $0xaa0b03ef // mov x15, x11 + WORD $0x53047d90 // lsr w16, w12, #4 + WORD $0x7109c61f // cmp w16, #625 + WORD $0x54000d82 // b.hs LBB0_82 $432(%rip) +LBB0_74: + WORD $0xaa0c03f0 // mov x16, x12 + WORD $0x14000081 // b LBB0_84 $516(%rip) +LBB0_75: + WORD $0xd29cefef // mov x15, #59263 + WORD $0xf2b8460f // movk x15, #49712, lsl #16 + WORD $0xf2c7710f // movk x15, #15240, lsl #32 + WORD $0xf2eabccf // movk x15, #21990, lsl #48 + WORD $0x9bcf7d8f // umulh x15, x12, x15 + WORD $0xd359fdf0 // lsr x16, x15, #25 + WORD $0x5283e00f // mov w15, #7936 + WORD $0x72bf414f // movk w15, #64010, lsl #16 + WORD $0x1b0f320c // madd w12, w16, w15, w12 + WORD $0x3400146c // cbz w12, LBB0_93 $652(%rip) + WORD $0xd280000f // mov x15, #0 + WORD $0x5282eb31 // mov w17, #5977 + WORD $0x72ba36f1 // movk w17, #53687, lsl #16 + WORD $0x9bb17d91 // umull x17, w12, w17 + WORD $0xd36dfe31 // lsr x17, x17, #45 + WORD $0x5284e201 // mov w1, #10000 + WORD $0x1b01b22c // msub w12, w17, w1, w12 + WORD $0x5291b722 // mov w2, #36281 + WORD $0x72a000c2 // movk w2, #6, lsl #16 + WORD $0x9ba27e22 // umull x2, w17, w2 + WORD $0xd360fc42 // lsr x2, x2, #32 + WORD $0x1b01c451 // msub w17, w2, w1, w17 + WORD $0x53023d81 // ubfx w1, w12, #2, #14 + WORD $0x52828f62 // mov w2, #5243 + WORD $0x1b027c21 // mul w1, w1, w2 + WORD $0x53117c21 // lsr w1, w1, #17 + WORD $0x52800c83 // mov w3, #100 + WORD $0x1b03b02c // msub w12, w1, w3, w12 + WORD $0x92403d8c // and x12, x12, #0xffff + WORD $0x1b027e22 // mul w2, w17, w2 + WORD $0x53137c42 // lsr w2, w2, #19 +Lloh4: + WORD $0x10004b04 // adr x4, _Digits $2400(%rip) +Lloh5: + WORD $0x91000084 // add x4, x4, _Digits@PAGEOFF $0(%rip) + WORD $0x786c788c // ldrh w12, [x4, x12, lsl #1] + WORD $0x1b03c451 // msub w17, w2, w3, w17 + WORD $0x781fe1cc // sturh w12, [x14, #-2] + WORD $0x92403e2c // and x12, x17, #0xffff + WORD $0x78615891 // ldrh w17, [x4, w1, uxtw #1] + WORD $0x781fc1d1 // sturh w17, [x14, #-4] + WORD $0x786c788c // ldrh w12, [x4, x12, lsl #1] + WORD $0x781fa1cc // sturh w12, [x14, #-6] + WORD $0x7862588c // ldrh w12, [x4, w2, uxtw #1] + WORD $0x781f81cc // sturh w12, [x14, #-8] + WORD $0xd10021ce // sub x14, x14, #8 + WORD $0x53047e0c // lsr w12, w16, #4 + WORD $0x7109c59f // cmp w12, #625 + WORD $0x54fff8c3 // b.lo LBB0_70 $-232(%rip) + WORD $0x14000082 // b LBB0_94 $520(%rip) +LBB0_77: + WORD $0x7100013f // cmp w9, #0 + WORD $0x540023cc // b.gt LBB0_123 $1144(%rip) + WORD $0x5285c60e // mov w14, #11824 + WORD $0x7800250e // strh w14, [x8], #2 + WORD $0x36f82369 // tbz w9, #31, LBB0_123 $1132(%rip) + WORD $0x2a2d03ee // mvn w14, w13 + WORD $0x4b0b01ce // sub w14, w14, w11 + WORD $0x7100fddf // cmp w14, #63 + WORD $0x54002082 // b.hs LBB0_118 $1040(%rip) + WORD $0x5280000e // mov w14, #0 + WORD $0x1400010f // b LBB0_121 $1084(%rip) +LBB0_81: + WORD $0xd29cefef // mov x15, #59263 + WORD $0xf2b8460f // movk x15, #49712, lsl #16 + WORD $0xf2c7710f // movk x15, #15240, lsl #32 + WORD $0xf2eabccf // movk x15, #21990, lsl #48 + WORD $0x9bcf7d8f // umulh x15, x12, x15 + WORD $0xd359fdf0 // lsr x16, x15, #25 + WORD $0x5283e00f // mov w15, #7936 + WORD $0x72bf414f // movk w15, #64010, lsl #16 + WORD $0x1b0f320c // madd w12, w16, w15, w12 + WORD $0x5282eb2f // mov w15, #5977 + WORD $0x72ba36ef // movk w15, #53687, lsl #16 + WORD $0x9baf7d8f // umull x15, w12, w15 + WORD $0xd36dfdef // lsr x15, x15, #45 + WORD $0x5284e211 // mov w17, #10000 + WORD $0x1b11b1ec // msub w12, w15, w17, w12 + WORD $0x5291b721 // mov w1, #36281 + WORD $0x72a000c1 // movk w1, #6, lsl #16 + WORD $0x9ba17de1 // umull x1, w15, w1 + WORD $0xd360fc21 // lsr x1, x1, #32 + WORD $0x1b11bc2f // msub w15, w1, w17, w15 + WORD $0x53023d91 // ubfx w17, w12, #2, #14 + WORD $0x52828f61 // mov w1, #5243 + WORD $0x1b017e31 // mul w17, w17, w1 + WORD $0x53117e31 // lsr w17, w17, #17 + WORD $0x52800c82 // mov w2, #100 + WORD $0x1b02b22c // msub w12, w17, w2, w12 + WORD $0x92403d8c // and x12, x12, #0xffff + WORD $0x1b017de1 // mul w1, w15, w1 + WORD $0x53137c21 // lsr w1, w1, #19 + WORD $0x1b02bc22 // msub w2, w1, w2, w15 +Lloh6: + WORD $0x100043c3 // adr x3, _Digits $2168(%rip) +Lloh7: + WORD $0x91000063 // add x3, x3, _Digits@PAGEOFF $0(%rip) + WORD $0x786c786c // ldrh w12, [x3, x12, lsl #1] + WORD $0x78615861 // ldrh w1, [x3, w1, uxtw #1] + WORD $0xaa0b03ef // mov x15, x11 + WORD $0x781f8de1 // strh w1, [x15, #-8]! + WORD $0x79000dec // strh w12, [x15, #6] + WORD $0x7871586c // ldrh w12, [x3, w17, uxtw #1] + WORD $0x92403c51 // and x17, x2, #0xffff + WORD $0x790009ec // strh w12, [x15, #4] + WORD $0x7871786c // ldrh w12, [x3, x17, lsl #1] + WORD $0x790005ec // strh w12, [x15, #2] + WORD $0xaa1003ec // mov x12, x16 + WORD $0x53047d90 // lsr w16, w12, #4 + WORD $0x7109c61f // cmp w16, #625 + WORD $0x54fff2c3 // b.lo LBB0_74 $-424(%rip) +LBB0_82: + WORD $0x529c1ff1 // mov w17, #57599 + WORD $0x72a0beb1 // movk w17, #1525, lsl #16 + WORD $0x5282eb21 // mov w1, #5977 + WORD $0x72ba36e1 // movk w1, #53687, lsl #16 + WORD $0x1284e1e2 // mov w2, #-10000 + WORD $0x5290a3e3 // mov w3, #34079 + WORD $0x72aa3d63 // movk w3, #20971, lsl #16 + WORD $0x52800c84 // mov w4, #100 +Lloh8: + WORD $0x100040c5 // adr x5, _Digits $2072(%rip) +Lloh9: + WORD $0x910000a5 // add x5, x5, _Digits@PAGEOFF $0(%rip) +LBB0_83: + WORD $0x9ba17d90 // umull x16, w12, w1 + WORD $0xd36dfe10 // lsr x16, x16, #45 + WORD $0x1b023206 // madd w6, w16, w2, w12 + WORD $0x9ba37cc7 // umull x7, w6, w3 + WORD $0xd365fce7 // lsr x7, x7, #37 + WORD $0x1b0498e6 // msub w6, w7, w4, w6 + WORD $0x786658a6 // ldrh w6, [x5, w6, uxtw #1] + WORD $0x786778a7 // ldrh w7, [x5, x7, lsl #1] + WORD $0x781fcde7 // strh w7, [x15, #-4]! + WORD $0x790005e6 // strh w6, [x15, #2] + WORD $0x6b11019f // cmp w12, w17 + WORD $0xaa1003ec // mov x12, x16 + WORD $0x54fffe88 // b.hi LBB0_83 $-48(%rip) +LBB0_84: + WORD $0x7101921f // cmp w16, #100 + WORD $0x540001a3 // b.lo LBB0_86 $52(%rip) + WORD $0x53023e0c // ubfx w12, w16, #2, #14 + WORD $0x52828f71 // mov w17, #5243 + WORD $0x1b117d8c // mul w12, w12, w17 + WORD $0x53117d8c // lsr w12, w12, #17 + WORD $0x52800c91 // mov w17, #100 + WORD $0x1b11c190 // msub w16, w12, w17, w16 +Lloh10: + WORD $0x10003df1 // adr x17, _Digits $1980(%rip) +Lloh11: + WORD $0x91000231 // add x17, x17, _Digits@PAGEOFF $0(%rip) + WORD $0x92403e10 // and x16, x16, #0xffff + WORD $0x78707a30 // ldrh w16, [x17, x16, lsl #1] + WORD $0x781fedf0 // strh w16, [x15, #-2]! + WORD $0xaa0c03f0 // mov x16, x12 +LBB0_86: + WORD $0x8b09010c // add x12, x8, x9 + WORD $0x71002a1f // cmp w16, #10 + WORD $0x54000163 // b.lo LBB0_89 $44(%rip) +Lloh12: + WORD $0x10003cc8 // adr x8, _Digits $1944(%rip) +Lloh13: + WORD $0x91000108 // add x8, x8, _Digits@PAGEOFF $0(%rip) + WORD $0x78705908 // ldrh w8, [x8, w16, uxtw #1] + WORD $0x781fe1e8 // sturh w8, [x15, #-2] + WORD $0x6b0901bf // cmp w13, w9 + WORD $0x54000123 // b.lo LBB0_90 $36(%rip) +LBB0_88: + WORD $0x4b000180 // sub w0, w12, w0 + WORD $0xa940fbfd // ldp fp, lr, [sp, #8] + WORD $0x910083ff // add sp, sp, #32 + WORD $0xd65f03c0 // ret +LBB0_89: + WORD $0x321c060f // orr w15, w16, #0x30 + WORD $0x3900010f // strb w15, [x8] + WORD $0x6b0901bf // cmp w13, w9 + WORD $0x54ffff22 // b.hs LBB0_88 $-28(%rip) +LBB0_90: + WORD $0x8b000148 // add x8, x10, x0 + WORD $0x8b0e010d // add x13, x8, x14 + WORD $0x910005af // add x15, x13, #1 + WORD $0x8b090108 // add x8, x8, x9 + WORD $0xeb0801ff // cmp x15, x8 + WORD $0x9a8d9508 // csinc x8, x8, x13, ls + WORD $0xcb0d0108 // sub x8, x8, x13 + WORD $0xf100211f // cmp x8, #8 + WORD $0x54003343 // b.lo LBB0_164 $1640(%rip) + WORD $0xf101011f // cmp x8, #64 + WORD $0x54000f02 // b.hs LBB0_111 $480(%rip) + WORD $0xd2800009 // mov x9, #0 + WORD $0x14000084 // b LBB0_115 $528(%rip) +LBB0_93: + WORD $0x928000ef // mov x15, #-8 + WORD $0xd10021ce // sub x14, x14, #8 + WORD $0x53047e0c // lsr w12, w16, #4 + WORD $0x7109c59f // cmp w12, #625 + WORD $0x54ffe883 // b.lo LBB0_70 $-752(%rip) +LBB0_94: + WORD $0x529c1ff1 // mov w17, #57599 + WORD $0x72a0beb1 // movk w17, #1525, lsl #16 + WORD $0x5282eb21 // mov w1, #5977 + WORD $0x72ba36e1 // movk w1, #53687, lsl #16 + WORD $0x1284e1e2 // mov w2, #-10000 + WORD $0x5290a3e3 // mov w3, #34079 + WORD $0x72aa3d63 // movk w3, #20971, lsl #16 + WORD $0x52800c84 // mov w4, #100 +Lloh14: + WORD $0x100037c5 // adr x5, _Digits $1784(%rip) +Lloh15: + WORD $0x910000a5 // add x5, x5, _Digits@PAGEOFF $0(%rip) +LBB0_95: + WORD $0x9ba17e0c // umull x12, w16, w1 + WORD $0xd36dfd8c // lsr x12, x12, #45 + WORD $0x1b024186 // madd w6, w12, w2, w16 + WORD $0x9ba37cc7 // umull x7, w6, w3 + WORD $0xd365fce7 // lsr x7, x7, #37 + WORD $0x1b0498e6 // msub w6, w7, w4, w6 + WORD $0x786658a6 // ldrh w6, [x5, w6, uxtw #1] + WORD $0x786778a7 // ldrh w7, [x5, x7, lsl #1] + WORD $0x781fcdc7 // strh w7, [x14, #-4]! + WORD $0x790005c6 // strh w6, [x14, #2] + WORD $0x6b11021f // cmp w16, w17 + WORD $0xaa0c03f0 // mov x16, x12 + WORD $0x54fffe88 // b.hi LBB0_95 $-48(%rip) +LBB0_96: + WORD $0x7101919f // cmp w12, #100 + WORD $0x540001a3 // b.lo LBB0_98 $52(%rip) + WORD $0x53023d90 // ubfx w16, w12, #2, #14 + WORD $0x52828f71 // mov w17, #5243 + WORD $0x1b117e10 // mul w16, w16, w17 + WORD $0x53117e10 // lsr w16, w16, #17 + WORD $0x52800c91 // mov w17, #100 + WORD $0x1b11b20c // msub w12, w16, w17, w12 +Lloh16: + WORD $0x100034f1 // adr x17, _Digits $1692(%rip) +Lloh17: + WORD $0x91000231 // add x17, x17, _Digits@PAGEOFF $0(%rip) + WORD $0x92403d8c // and x12, x12, #0xffff + WORD $0x786c7a2c // ldrh w12, [x17, x12, lsl #1] + WORD $0x781fedcc // strh w12, [x14, #-2]! + WORD $0xaa1003ec // mov x12, x16 +LBB0_98: + WORD $0x7100299f // cmp w12, #10 + WORD $0x540000c3 // b.lo LBB0_100 $24(%rip) +Lloh18: + WORD $0x100033f0 // adr x16, _Digits $1660(%rip) +Lloh19: + WORD $0x91000210 // add x16, x16, _Digits@PAGEOFF $0(%rip) + WORD $0x786c5a0c // ldrh w12, [x16, w12, uxtw #1] + WORD $0x781fe1cc // sturh w12, [x14, #-2] + WORD $0x14000003 // b LBB0_101 $12(%rip) +LBB0_100: + WORD $0x321c058c // orr w12, w12, #0x30 + WORD $0x3900016c // strb w12, [x11] +LBB0_101: + WORD $0x8b0a01ea // add x10, x15, x10 + WORD $0x8b0a000a // add x10, x0, x10 + WORD $0x910005ec // add x12, x15, #1 +LBB0_102: + WORD $0x386d694e // ldrb w14, [x10, x13] + WORD $0xd100054a // sub x10, x10, #1 + WORD $0xd100058c // sub x12, x12, #1 + WORD $0x7100c1df // cmp w14, #48 + WORD $0x54ffff80 // b.eq LBB0_102 $-16(%rip) + WORD $0x3940050e // ldrb w14, [x8, #1] + WORD $0x3900010e // strb w14, [x8] + WORD $0x8b0c01ac // add x12, x13, x12 + WORD $0x8b0d0148 // add x8, x10, x13 + WORD $0xf100099f // cmp x12, #2 + WORD $0x540000ab // b.lt LBB0_105 $20(%rip) + WORD $0x91000908 // add x8, x8, #2 + WORD $0x528005ca // mov w10, #46 + WORD $0x3900016a // strb w10, [x11] + WORD $0x14000002 // b LBB0_106 $8(%rip) +LBB0_105: + WORD $0x91000508 // add x8, x8, #1 +LBB0_106: + WORD $0x52800caa // mov w10, #101 + WORD $0x3900010a // strb w10, [x8] + WORD $0x5280002a // mov w10, #1 + WORD $0x4b09014a // sub w10, w10, w9 + WORD $0x71000529 // subs w9, w9, #1 + WORD $0x5280056b // mov w11, #43 + WORD $0x528005ac // mov w12, #45 + WORD $0x1a8bb18b // csel w11, w12, w11, lt + WORD $0x1a89b149 // csel w9, w10, w9, lt + WORD $0x3900050b // strb w11, [x8, #1] + WORD $0x7101913f // cmp w9, #100 + WORD $0x54000243 // b.lo LBB0_108 $72(%rip) + WORD $0x529999aa // mov w10, #52429 + WORD $0x72b9998a // movk w10, #52428, lsl #16 + WORD $0x9baa7d2a // umull x10, w9, w10 + WORD $0xd363fd4a // lsr x10, x10, #35 + WORD $0x5280014b // mov w11, #10 + WORD $0x1b0ba549 // msub w9, w10, w11, w9 +Lloh20: + WORD $0x10002e6b // adr x11, _Digits $1484(%rip) +Lloh21: + WORD $0x9100016b // add x11, x11, _Digits@PAGEOFF $0(%rip) + WORD $0x786a796a // ldrh w10, [x11, x10, lsl #1] + WORD $0x7900050a // strh w10, [x8, #2] + WORD $0x321c0529 // orr w9, w9, #0x30 + WORD $0x39001109 // strb w9, [x8, #4] + WORD $0x9100150c // add x12, x8, #5 + WORD $0x4b000180 // sub w0, w12, w0 + WORD $0xa940fbfd // ldp fp, lr, [sp, #8] + WORD $0x910083ff // add sp, sp, #32 + WORD $0xd65f03c0 // ret +LBB0_108: + WORD $0x7100293f // cmp w9, #10 + WORD $0x54000143 // b.lo LBB0_110 $40(%rip) +Lloh22: + WORD $0x10002cca // adr x10, _Digits $1432(%rip) +Lloh23: + WORD $0x9100014a // add x10, x10, _Digits@PAGEOFF $0(%rip) + WORD $0x78695949 // ldrh w9, [x10, w9, uxtw #1] + WORD $0x79000509 // strh w9, [x8, #2] + WORD $0x9100110c // add x12, x8, #4 + WORD $0x4b000180 // sub w0, w12, w0 + WORD $0xa940fbfd // ldp fp, lr, [sp, #8] + WORD $0x910083ff // add sp, sp, #32 + WORD $0xd65f03c0 // ret +LBB0_110: + WORD $0x321c0529 // orr w9, w9, #0x30 + WORD $0x91000d0c // add x12, x8, #3 + WORD $0x39000909 // strb w9, [x8, #2] + WORD $0x4b000180 // sub w0, w12, w0 + WORD $0xa940fbfd // ldp fp, lr, [sp, #8] + WORD $0x910083ff // add sp, sp, #32 + WORD $0xd65f03c0 // ret +LBB0_111: + WORD $0x927ae509 // and x9, x8, #0xffffffffffffffc0 + WORD $0x8b0e014d // add x13, x10, x14 + WORD $0x8b0001ad // add x13, x13, x0 + WORD $0x910081ad // add x13, x13, #32 + WORD $0x4f01e600 // movi.16b v0, #48 + WORD $0xaa0903ef // mov x15, x9 +LBB0_112: + WORD $0xad3f01a0 // stp q0, q0, [x13, #-32] + WORD $0xac8201a0 // stp q0, q0, [x13], #64 + WORD $0xf10101ef // subs x15, x15, #64 + WORD $0x54ffffa1 // b.ne LBB0_112 $-12(%rip) + WORD $0xeb09011f // cmp x8, x9 + WORD $0x54ffed60 // b.eq LBB0_88 $-596(%rip) + WORD $0xf27d091f // tst x8, #0x38 + WORD $0x54002240 // b.eq LBB0_163 $1096(%rip) +LBB0_115: + WORD $0x927df10d // and x13, x8, #0xfffffffffffffff8 + WORD $0x8b0d016b // add x11, x11, x13 + WORD $0x8b0a012a // add x10, x9, x10 + WORD $0x8b0e014a // add x10, x10, x14 + WORD $0x8b0a000a // add x10, x0, x10 + WORD $0xcb0d0129 // sub x9, x9, x13 + WORD $0x0f01e600 // movi.8b v0, #48 +LBB0_116: + WORD $0xfc008540 // str d0, [x10], #8 + WORD $0xb1002129 // adds x9, x9, #8 + WORD $0x54ffffc1 // b.ne LBB0_116 $-8(%rip) + WORD $0xeb0d011f // cmp x8, x13 + WORD $0x54ffeba0 // b.eq LBB0_88 $-652(%rip) + WORD $0x14000106 // b LBB0_164 $1048(%rip) +LBB0_118: + WORD $0x910005d0 // add x16, x14, #1 + WORD $0x927a6a0e // and x14, x16, #0x1ffffffc0 + WORD $0x8b0e0108 // add x8, x8, x14 + WORD $0x8b00014a // add x10, x10, x0 + WORD $0x9100894a // add x10, x10, #34 + WORD $0x4f01e600 // movi.16b v0, #48 + WORD $0xaa0e03f1 // mov x17, x14 +LBB0_119: + WORD $0xad3f0140 // stp q0, q0, [x10, #-32] + WORD $0xac820140 // stp q0, q0, [x10], #64 + WORD $0xf1010231 // subs x17, x17, #64 + WORD $0x54ffffa1 // b.ne LBB0_119 $-12(%rip) + WORD $0xeb0e021f // cmp x16, x14 + WORD $0x540000e0 // b.eq LBB0_123 $28(%rip) +LBB0_121: + WORD $0x0b0901ca // add w10, w14, w9 + WORD $0x4b0a03ea // neg w10, w10 + WORD $0x5280060e // mov w14, #48 +LBB0_122: + WORD $0x3800150e // strb w14, [x8], #1 + WORD $0x7100054a // subs w10, w10, #1 + WORD $0x54ffffc1 // b.ne LBB0_122 $-8(%rip) +LBB0_123: + WORD $0x2a0d03ea // mov w10, w13 + WORD $0x8b0a010e // add x14, x8, x10 + WORD $0xb500010f // cbnz x15, LBB0_126 $32(%rip) + WORD $0xaa0c03ed // mov x13, x12 + WORD $0xaa0e03ec // mov x12, x14 + WORD $0x53047db0 // lsr w16, w13, #4 + WORD $0x7109c61f // cmp w16, #625 + WORD $0x54000702 // b.hs LBB0_129 $224(%rip) +LBB0_125: + WORD $0xaa0d03f0 // mov x16, x13 + WORD $0x1400004d // b LBB0_131 $308(%rip) +LBB0_126: + WORD $0xd29cefed // mov x13, #59263 + WORD $0xf2b8460d // movk x13, #49712, lsl #16 + WORD $0xf2c7710d // movk x13, #15240, lsl #32 + WORD $0xf2eabccd // movk x13, #21990, lsl #48 + WORD $0x9bcd7d8d // umulh x13, x12, x13 + WORD $0xd359fdad // lsr x13, x13, #25 + WORD $0x5283e00f // mov w15, #7936 + WORD $0x72bf414f // movk w15, #64010, lsl #16 + WORD $0x1b0f31ac // madd w12, w13, w15, w12 + WORD $0x340004ec // cbz w12, LBB0_128 $156(%rip) + WORD $0xd280000f // mov x15, #0 + WORD $0x5282eb30 // mov w16, #5977 + WORD $0x72ba36f0 // movk w16, #53687, lsl #16 + WORD $0x9bb07d90 // umull x16, w12, w16 + WORD $0xd36dfe10 // lsr x16, x16, #45 + WORD $0x5284e211 // mov w17, #10000 + WORD $0x1b11b20c // msub w12, w16, w17, w12 + WORD $0x5291b721 // mov w1, #36281 + WORD $0x72a000c1 // movk w1, #6, lsl #16 + WORD $0x9ba17e01 // umull x1, w16, w1 + WORD $0xd360fc21 // lsr x1, x1, #32 + WORD $0x1b11c030 // msub w16, w1, w17, w16 + WORD $0x53023d91 // ubfx w17, w12, #2, #14 + WORD $0x52828f61 // mov w1, #5243 + WORD $0x1b017e31 // mul w17, w17, w1 + WORD $0x53117e31 // lsr w17, w17, #17 + WORD $0x52800c82 // mov w2, #100 + WORD $0x1b02b22c // msub w12, w17, w2, w12 + WORD $0x92403d8c // and x12, x12, #0xffff + WORD $0x1b017e01 // mul w1, w16, w1 + WORD $0x53137c21 // lsr w1, w1, #19 +Lloh24: + WORD $0x10001fe3 // adr x3, _Digits $1020(%rip) +Lloh25: + WORD $0x91000063 // add x3, x3, _Digits@PAGEOFF $0(%rip) + WORD $0x786c786c // ldrh w12, [x3, x12, lsl #1] + WORD $0x1b02c030 // msub w16, w1, w2, w16 + WORD $0x781fe1cc // sturh w12, [x14, #-2] + WORD $0x92403e0c // and x12, x16, #0xffff + WORD $0x78715870 // ldrh w16, [x3, w17, uxtw #1] + WORD $0x781fc1d0 // sturh w16, [x14, #-4] + WORD $0x786c786c // ldrh w12, [x3, x12, lsl #1] + WORD $0x781fa1cc // sturh w12, [x14, #-6] + WORD $0x7861586c // ldrh w12, [x3, w1, uxtw #1] + WORD $0x781f81cc // sturh w12, [x14, #-8] + WORD $0xd10021cc // sub x12, x14, #8 + WORD $0x53047db0 // lsr w16, w13, #4 + WORD $0x7109c61f // cmp w16, #625 + WORD $0x54fffa03 // b.lo LBB0_125 $-192(%rip) + WORD $0x14000006 // b LBB0_129 $24(%rip) +LBB0_128: + WORD $0x928000ef // mov x15, #-8 + WORD $0xd10021cc // sub x12, x14, #8 + WORD $0x53047db0 // lsr w16, w13, #4 + WORD $0x7109c61f // cmp w16, #625 + WORD $0x54fff943 // b.lo LBB0_125 $-216(%rip) +LBB0_129: + WORD $0x529c1ff1 // mov w17, #57599 + WORD $0x72a0beb1 // movk w17, #1525, lsl #16 + WORD $0x5282eb21 // mov w1, #5977 + WORD $0x72ba36e1 // movk w1, #53687, lsl #16 + WORD $0x1284e1e2 // mov w2, #-10000 + WORD $0x5290a3e3 // mov w3, #34079 + WORD $0x72aa3d63 // movk w3, #20971, lsl #16 + WORD $0x52800c84 // mov w4, #100 +Lloh26: + WORD $0x10001c25 // adr x5, _Digits $900(%rip) +Lloh27: + WORD $0x910000a5 // add x5, x5, _Digits@PAGEOFF $0(%rip) +LBB0_130: + WORD $0x9ba17db0 // umull x16, w13, w1 + WORD $0xd36dfe10 // lsr x16, x16, #45 + WORD $0x1b023606 // madd w6, w16, w2, w13 + WORD $0x9ba37cc7 // umull x7, w6, w3 + WORD $0xd365fce7 // lsr x7, x7, #37 + WORD $0x1b0498e6 // msub w6, w7, w4, w6 + WORD $0x786658a6 // ldrh w6, [x5, w6, uxtw #1] + WORD $0x786778a7 // ldrh w7, [x5, x7, lsl #1] + WORD $0x781fcd87 // strh w7, [x12, #-4]! + WORD $0x79000586 // strh w6, [x12, #2] + WORD $0x6b1101bf // cmp w13, w17 + WORD $0xaa1003ed // mov x13, x16 + WORD $0x54fffe88 // b.hi LBB0_130 $-48(%rip) +LBB0_131: + WORD $0x7101921f // cmp w16, #100 + WORD $0x540001a3 // b.lo LBB0_133 $52(%rip) + WORD $0x53023e0d // ubfx w13, w16, #2, #14 + WORD $0x52828f71 // mov w17, #5243 + WORD $0x1b117dad // mul w13, w13, w17 + WORD $0x53117dad // lsr w13, w13, #17 + WORD $0x52800c91 // mov w17, #100 + WORD $0x1b11c1b0 // msub w16, w13, w17, w16 +Lloh28: + WORD $0x10001951 // adr x17, _Digits $808(%rip) +Lloh29: + WORD $0x91000231 // add x17, x17, _Digits@PAGEOFF $0(%rip) + WORD $0x92403e10 // and x16, x16, #0xffff + WORD $0x78707a30 // ldrh w16, [x17, x16, lsl #1] + WORD $0x781fed90 // strh w16, [x12, #-2]! + WORD $0xaa0d03f0 // mov x16, x13 +LBB0_133: + WORD $0x71002a1f // cmp w16, #10 + WORD $0x540000c3 // b.lo LBB0_135 $24(%rip) +Lloh30: + WORD $0x1000184d // adr x13, _Digits $776(%rip) +Lloh31: + WORD $0x910001ad // add x13, x13, _Digits@PAGEOFF $0(%rip) + WORD $0x787059ad // ldrh w13, [x13, w16, uxtw #1] + WORD $0x781fe18d // sturh w13, [x12, #-2] + WORD $0x14000003 // b LBB0_136 $12(%rip) +LBB0_135: + WORD $0x321c060c // orr w12, w16, #0x30 + WORD $0x3900010c // strb w12, [x8] +LBB0_136: + WORD $0xd280000d // mov x13, #0 + WORD $0x8b0f01ce // add x14, x14, x15 + WORD $0x4b0f016c // sub w12, w11, w15 + WORD $0x51000581 // sub w1, w12, #1 + WORD $0x51000991 // sub w17, w12, #2 + WORD $0xaa1103f0 // mov x16, x17 +LBB0_137: + WORD $0x8b0d01cc // add x12, x14, x13 + WORD $0x385ff18c // ldurb w12, [x12, #-1] + WORD $0xd10005ad // sub x13, x13, #1 + WORD $0x11000610 // add w16, w16, #1 + WORD $0x7100c19f // cmp w12, #48 + WORD $0x54ffff60 // b.eq LBB0_137 $-20(%rip) + WORD $0x8b0d01cc // add x12, x14, x13 + WORD $0x9100058c // add x12, x12, #1 + WORD $0x7100053f // cmp w9, #1 + WORD $0x54ffd98b // b.lt LBB0_88 $-1232(%rip) + WORD $0x0b0a01e2 // add w2, w15, w10 + WORD $0x0b0d0042 // add w2, w2, w13 + WORD $0x11000442 // add w2, w2, #1 + WORD $0x6b02013f // cmp w9, w2 + WORD $0x5400016a // b.ge LBB0_143 $44(%rip) + WORD $0x4b0b01ec // sub w12, w15, w11 + WORD $0x1100058a // add w10, w12, #1 + WORD $0x8b0d014b // add x11, x10, x13 + WORD $0x7100057f // cmp w11, #1 + WORD $0x54000c6b // b.lt LBB0_162 $396(%rip) + WORD $0x92407d6a // and x10, x11, #0xffffffff + WORD $0x7100217f // cmp w11, #8 + WORD $0x540001a2 // b.hs LBB0_146 $52(%rip) + WORD $0xd280000b // mov x11, #0 + WORD $0x14000055 // b LBB0_160 $340(%rip) +LBB0_143: + WORD $0xcb0d0029 // sub x9, x1, x13 + WORD $0x7100053f // cmp w9, #1 + WORD $0x54ffd74b // b.lt LBB0_88 $-1304(%rip) + WORD $0x4b0f016b // sub w11, w11, w15 + WORD $0x4b0d016b // sub w11, w11, w13 + WORD $0x5100096b // sub w11, w11, #2 + WORD $0x7100fd7f // cmp w11, #63 + WORD $0x540000e2 // b.hs LBB0_148 $28(%rip) + WORD $0x5280000b // mov w11, #0 + WORD $0x1400001f // b LBB0_151 $124(%rip) +LBB0_146: + WORD $0x7101017f // cmp w11, #64 + WORD $0x54000462 // b.hs LBB0_153 $140(%rip) + WORD $0xd280000b // mov x11, #0 + WORD $0x14000038 // b LBB0_157 $224(%rip) +LBB0_148: + WORD $0xd2800001 // mov x1, #0 + WORD $0xcb0d0222 // sub x2, x17, x13 + WORD $0x91000571 // add x17, x11, #1 + WORD $0x927a6a2b // and x11, x17, #0x1ffffffc0 + WORD $0x9100060c // add x12, x16, #1 + WORD $0x927a698c // and x12, x12, #0x1ffffffc0 + WORD $0x8b0a01ea // add x10, x15, x10 + WORD $0x8b0a0108 // add x8, x8, x10 + WORD $0x8b0d0108 // add x8, x8, x13 + WORD $0x8b0c0108 // add x8, x8, x12 + WORD $0x9100050c // add x12, x8, #1 + WORD $0x92407c48 // and x8, x2, #0xffffffff + WORD $0x91000508 // add x8, x8, #1 + WORD $0x927a6908 // and x8, x8, #0x1ffffffc0 + WORD $0x4f01e600 // movi.16b v0, #48 +LBB0_149: + WORD $0x8b0101ca // add x10, x14, x1 + WORD $0x8b0d014a // add x10, x10, x13 + WORD $0x3c801140 // stur q0, [x10, #1] + WORD $0x3c811140 // stur q0, [x10, #17] + WORD $0x3c821140 // stur q0, [x10, #33] + WORD $0x3c831140 // stur q0, [x10, #49] + WORD $0x91010021 // add x1, x1, #64 + WORD $0xeb01011f // cmp x8, x1 + WORD $0x54ffff01 // b.ne LBB0_149 $-32(%rip) + WORD $0xeb0b023f // cmp x17, x11 + WORD $0x54ffd2a0 // b.eq LBB0_88 $-1452(%rip) +LBB0_151: + WORD $0x52800608 // mov w8, #48 +LBB0_152: + WORD $0x38001588 // strb w8, [x12], #1 + WORD $0x1100056b // add w11, w11, #1 + WORD $0x6b09017f // cmp w11, w9 + WORD $0x54ffffab // b.lt LBB0_152 $-12(%rip) + WORD $0x17fffe8f // b LBB0_88 $-1476(%rip) +LBB0_153: + WORD $0xd280000f // mov x15, #0 + WORD $0x927a614b // and x11, x10, #0x7fffffc0 + WORD $0x0b0d0190 // add w16, w12, w13 + WORD $0x11000610 // add w16, w16, #1 + WORD $0x927a6210 // and x16, x16, #0x7fffffc0 + WORD $0xcb1003f0 // neg x16, x16 + WORD $0x8b0d01d1 // add x17, x14, x13 +LBB0_154: + WORD $0x8b0f0221 // add x1, x17, x15 + WORD $0x3cdf1020 // ldur q0, [x1, #-15] + WORD $0x3cde1021 // ldur q1, [x1, #-31] + WORD $0x3cdd1022 // ldur q2, [x1, #-47] + WORD $0x3cdc1023 // ldur q3, [x1, #-63] + WORD $0x3c9f2020 // stur q0, [x1, #-14] + WORD $0x3c9e2021 // stur q1, [x1, #-30] + WORD $0x3c9d2022 // stur q2, [x1, #-46] + WORD $0x3c9c2023 // stur q3, [x1, #-62] + WORD $0xd10101ef // sub x15, x15, #64 + WORD $0xeb0f021f // cmp x16, x15 + WORD $0x54fffea1 // b.ne LBB0_154 $-44(%rip) + WORD $0xeb0a017f // cmp x11, x10 + WORD $0x54000360 // b.eq LBB0_162 $108(%rip) + WORD $0xf27d095f // tst x10, #0x38 + WORD $0x54000200 // b.eq LBB0_160 $64(%rip) +LBB0_157: + WORD $0xcb0b03ef // neg x15, x11 + WORD $0x927d6d4b // and x11, x10, #0x7ffffff8 + WORD $0x0b0d018c // add w12, w12, w13 + WORD $0x1100058c // add w12, w12, #1 + WORD $0x927d6d8c // and x12, x12, #0x7ffffff8 + WORD $0xcb0c03ec // neg x12, x12 + WORD $0x8b0d01d0 // add x16, x14, x13 +LBB0_158: + WORD $0x8b0f0211 // add x17, x16, x15 + WORD $0xfc5f9220 // ldur d0, [x17, #-7] + WORD $0xfc1fa220 // stur d0, [x17, #-6] + WORD $0xd10021ef // sub x15, x15, #8 + WORD $0xeb0f019f // cmp x12, x15 + WORD $0x54ffff61 // b.ne LBB0_158 $-20(%rip) + WORD $0xeb0a017f // cmp x11, x10 + WORD $0x54000140 // b.eq LBB0_162 $40(%rip) +LBB0_160: + WORD $0xcb0b03ec // neg x12, x11 + WORD $0x8b0d01cf // add x15, x14, x13 +LBB0_161: + WORD $0x8b0c01f0 // add x16, x15, x12 + WORD $0x386c69f1 // ldrb w17, [x15, x12] + WORD $0x39000611 // strb w17, [x16, #1] + WORD $0x9100056b // add x11, x11, #1 + WORD $0xd100058c // sub x12, x12, #1 + WORD $0xeb0a017f // cmp x11, x10 + WORD $0x54ffff43 // b.lo LBB0_161 $-24(%rip) +LBB0_162: + WORD $0x528005ca // mov w10, #46 + WORD $0x3829490a // strb w10, [x8, w9, uxtw] + WORD $0x8b0d01c8 // add x8, x14, x13 + WORD $0x9100090c // add x12, x8, #2 + WORD $0x4b000180 // sub w0, w12, w0 + WORD $0xa940fbfd // ldp fp, lr, [sp, #8] + WORD $0x910083ff // add sp, sp, #32 + WORD $0xd65f03c0 // ret +LBB0_163: + WORD $0x8b09016b // add x11, x11, x9 +LBB0_164: + WORD $0x52800608 // mov w8, #48 +LBB0_165: + WORD $0x38001568 // strb w8, [x11], #1 + WORD $0xeb0c017f // cmp x11, x12 + WORD $0x54ffffc3 // b.lo LBB0_165 $-8(%rip) + WORD $0x17fffe52 // b LBB0_88 $-1720(%rip) +LBB0_166: + WORD $0x5288480b // mov w11, #16960 + WORD $0x72a001eb // movk w11, #15, lsl #16 + WORD $0xeb0b015f // cmp x10, x11 + WORD $0x54000122 // b.hs LBB0_169 $36(%rip) + WORD $0x528000cb // mov w11, #6 + WORD $0x8b0b010b // add x11, x8, x11 + WORD $0x14000023 // b LBB0_176 $140(%rip) +LBB0_168: + WORD $0x52994009 // mov w9, #51712 + WORD $0x72a77349 // movk w9, #15258, lsl #16 + WORD $0xeb09019f // cmp x12, x9 + WORD $0x52800129 // mov w9, #9 + WORD $0x17fffd0e // b LBB0_44 $-3016(%rip) +LBB0_169: + WORD $0x5292d00b // mov w11, #38528 + WORD $0x72a0130b // movk w11, #152, lsl #16 + WORD $0xeb0b015f // cmp x10, x11 + WORD $0x54000102 // b.hs LBB0_172 $32(%rip) + WORD $0x528000eb // mov w11, #7 + WORD $0x8b0b010b // add x11, x8, x11 + WORD $0x14000017 // b LBB0_176 $92(%rip) +LBB0_171: + WORD $0x52800000 // mov w0, #0 + WORD $0xa940fbfd // ldp fp, lr, [sp, #8] + WORD $0x910083ff // add sp, sp, #32 + WORD $0xd65f03c0 // ret +LBB0_172: + WORD $0x529c200b // mov w11, #57600 + WORD $0x72a0beab // movk w11, #1525, lsl #16 + WORD $0xeb0b015f // cmp x10, x11 + WORD $0x540000e2 // b.hs LBB0_175 $28(%rip) + WORD $0x5280010b // mov w11, #8 + WORD $0x8b0b010b // add x11, x8, x11 + WORD $0x1400000c // b LBB0_176 $48(%rip) +LBB0_174: + WORD $0x1280862c // mov w12, #-1074 + WORD $0xaa0e03e9 // mov x9, x14 + WORD $0x17fffc2a // b LBB0_5 $-3928(%rip) +LBB0_175: + WORD $0x5299400b // mov w11, #51712 + WORD $0x72a7734b // movk w11, #15258, lsl #16 + WORD $0xeb0b015f // cmp x10, x11 + WORD $0x5280012b // mov w11, #9 + WORD $0x9a8b356b // cinc x11, x11, hs + WORD $0x8b0b010b // add x11, x8, x11 + WORD $0xd360fd4c // lsr x12, x10, #32 + WORD $0xb5ffa26c // cbnz x12, LBB0_55 $-2996(%rip) +LBB0_176: + WORD $0xaa0b03ec // mov x12, x11 + WORD $0xd3447d4d // ubfx x13, x10, #4, #28 + WORD $0x7109c5bf // cmp w13, #625 + WORD $0x54ffa762 // b.hs LBB0_56 $-2836(%rip) +LBB0_177: + WORD $0xaa0a03ed // mov x13, x10 + WORD $0x710191bf // cmp w13, #100 + WORD $0x54ffa9e2 // b.hs LBB0_59 $-2756(%rip) + WORD $0x17fffd58 // b LBB0_60 $-2720(%rip) +_Digits: + WORD $0x31303030 // .ascii 4, '0001020304050607' + WORD $0x33303230 // .ascii 4, '0203040506070809' + WORD $0x35303430 // .ascii 4, '0405060708091011' + WORD $0x37303630 // .ascii 4, '0607080910111213' + WORD $0x39303830 // .ascii 4, '0809101112131415' + WORD $0x31313031 // .ascii 4, '1011121314151617' + WORD $0x33313231 // .ascii 4, '1213141516171819' + WORD $0x35313431 // .ascii 4, '1415161718192021' + WORD $0x37313631 // .ascii 4, '1617181920212223' + WORD $0x39313831 // .ascii 4, '1819202122232425' + WORD $0x31323032 // .ascii 4, '2021222324252627' + WORD $0x33323232 // .ascii 4, '2223242526272829' + WORD $0x35323432 // .ascii 4, '2425262728293031' + WORD $0x37323632 // .ascii 4, '2627282930313233' + WORD $0x39323832 // .ascii 4, '2829303132333435' + WORD $0x31333033 // .ascii 4, '3031323334353637' + WORD $0x33333233 // .ascii 4, '3233343536373839' + WORD $0x35333433 // .ascii 4, '3435363738394041' + WORD $0x37333633 // .ascii 4, '3637383940414243' + WORD $0x39333833 // .ascii 4, '3839404142434445' + WORD $0x31343034 // .ascii 4, '4041424344454647' + WORD $0x33343234 // .ascii 4, '4243444546474849' + WORD $0x35343434 // .ascii 4, '4445464748495051' + WORD $0x37343634 // .ascii 4, '4647484950515253' + WORD $0x39343834 // .ascii 4, '4849505152535455' + WORD $0x31353035 // .ascii 4, '5051525354555657' + WORD $0x33353235 // .ascii 4, '5253545556575859' + WORD $0x35353435 // .ascii 4, '5455565758596061' + WORD $0x37353635 // .ascii 4, '5657585960616263' + WORD $0x39353835 // .ascii 4, '5859606162636465' + WORD $0x31363036 // .ascii 4, '6061626364656667' + WORD $0x33363236 // .ascii 4, '6263646566676869' + WORD $0x35363436 // .ascii 4, '6465666768697071' + WORD $0x37363636 // .ascii 4, '6667686970717273' + WORD $0x39363836 // .ascii 4, '6869707172737475' + WORD $0x31373037 // .ascii 4, '7071727374757677' + WORD $0x33373237 // .ascii 4, '7273747576777879' + WORD $0x35373437 // .ascii 4, '7475767778798081' + WORD $0x37373637 // .ascii 4, '7677787980818283' + WORD $0x39373837 // .ascii 4, '7879808182838485' + WORD $0x31383038 // .ascii 4, '8081828384858687' + WORD $0x33383238 // .ascii 4, '8283848586878889' + WORD $0x35383438 // .ascii 4, '8485868788899091' + WORD $0x37383638 // .ascii 4, '8687888990919293' + WORD $0x39383838 // .ascii 4, '8889909192939495' + WORD $0x31393039 // .ascii 4, '9091929394959697' + WORD $0x33393239 // .ascii 4, '9293949596979899' + WORD $0x35393439 // .ascii 4, '949596979899' + WORD $0x37393639 // .ascii 4, '96979899' + WORD $0x39393839 // .ascii 4, '9899' + // .p2align 3, 0x00 +_LB_5768c23e: // _pow10_ceil_sig.g + WORD $0xbebcdc4f; WORD $0xff77b1fc // .quad -38366372719436721 + WORD $0x13bb0f7b; WORD $0x25e8e89c // .quad 2731688931043774331 + WORD $0xf73609b1; WORD $0x9faacf3d // .quad -6941508010590729807 + WORD $0x8c54e9ad; WORD $0x77b19161 // .quad 8624834609543440813 + WORD $0x75038c1d; WORD $0xc795830d // .quad -4065198994811024355 + WORD $0xef6a2418; WORD $0xd59df5b9 // .quad -3054014793352862696 + WORD $0xd2446f25; WORD $0xf97ae3d0 // .quad -469812725086392539 + WORD $0x6b44ad1e; WORD $0x4b057328 // .quad 5405853545163697438 + WORD $0x836ac577; WORD $0x9becce62 // .quad -7211161980820077193 + WORD $0x430aec33; WORD $0x4ee367f9 // .quad 5684501474941004851 + WORD $0x244576d5; WORD $0xc2e801fb // .quad -4402266457597708587 + WORD $0x93cda740; WORD $0x229c41f7 // .quad 2493940825248868160 + WORD $0xed56d48a; WORD $0xf3a20279 // .quad -891147053569747830 + WORD $0x78c11110; WORD $0x6b435275 // .quad 7729112049988473104 + WORD $0x345644d6; WORD $0x9845418c // .quad -7474495936122174250 + WORD $0x6b78aaaa; WORD $0x830a1389 // .quad -9004363024039368022 + WORD $0x416bd60c; WORD $0xbe5691ef // .quad -4731433901725329908 + WORD $0xc656d554; WORD $0x23cc986b // .quad 2579604275232953684 + WORD $0x11c6cb8f; WORD $0xedec366b // .quad -1302606358729274481 + WORD $0xb7ec8aa9; WORD $0x2cbfbe86 // .quad 3224505344041192105 + WORD $0xeb1c3f39; WORD $0x94b3a202 // .quad -7731658001846878407 + WORD $0x32f3d6aa; WORD $0x7bf7d714 // .quad 8932844867666826922 + WORD $0xa5e34f07; WORD $0xb9e08a83 // .quad -5052886483881210105 + WORD $0x3fb0cc54; WORD $0xdaf5ccd9 // .quad -2669001970698630060 + WORD $0x8f5c22c9; WORD $0xe858ad24 // .quad -1704422086424124727 + WORD $0x8f9cff69; WORD $0xd1b3400f // .quad -3336252463373287575 + WORD $0xd99995be; WORD $0x91376c36 // .quad -7982792831656159810 + WORD $0xb9c21fa2; WORD $0x23100809 // .quad 2526528228819083170 + WORD $0x8ffffb2d; WORD $0xb5854744 // .quad -5366805021142811859 + WORD $0x2832a78b; WORD $0xabd40a0c // .quad -6065211750830921845 + WORD $0xb3fff9f9; WORD $0xe2e69915 // .quad -2096820258001126919 + WORD $0x323f516d; WORD $0x16c90c8f // .quad 1641857348316123501 + WORD $0x907ffc3b; WORD $0x8dd01fad // .quad -8228041688891786181 + WORD $0x7f6792e4; WORD $0xae3da7d9 // .quad -5891368184943504668 + WORD $0xf49ffb4a; WORD $0xb1442798 // .quad -5673366092687344822 + WORD $0xdf41779d; WORD $0x99cd11cf // .quad -7364210231179380835 + WORD $0x31c7fa1d; WORD $0xdd95317f // .quad -2480021597431793123 + WORD $0xd711d584; WORD $0x40405643 // .quad 4629795266307937668 + WORD $0x7f1cfc52; WORD $0x8a7d3eef // .quad -8467542526035952558 + WORD $0x666b2573; WORD $0x482835ea // .quad 5199465050656154995 + WORD $0x5ee43b66; WORD $0xad1c8eab // .quad -5972742139117552794 + WORD $0x0005eed0; WORD $0xda324365 // .quad -2724040723534582064 + WORD $0x369d4a40; WORD $0xd863b256 // .quad -2854241655469553088 + WORD $0x40076a83; WORD $0x90bed43e // .quad -8016736922845615485 + WORD $0xe2224e68; WORD $0x873e4f75 // .quad -8701430062309552536 + WORD $0xe804a292; WORD $0x5a7744a6 // .quad 6518754469289960082 + WORD $0x5aaae202; WORD $0xa90de353 // .quad -6265101559459552766 + WORD $0xa205cb37; WORD $0x711515d0 // .quad 8148443086612450103 + WORD $0x31559a83; WORD $0xd3515c28 // .quad -3219690930897053053 + WORD $0xca873e04; WORD $0x0d5a5b44 // .quad 962181821410786820 + WORD $0x1ed58091; WORD $0x8412d999 // .quad -8929835859451740015 + WORD $0xfe9486c3; WORD $0xe858790a // .quad -1704479370831952189 + WORD $0x668ae0b6; WORD $0xa5178fff // .quad -6550608805887287114 + WORD $0xbe39a873; WORD $0x626e974d // .quad 7092772823314835571 + WORD $0x402d98e3; WORD $0xce5d73ff // .quad -3576574988931720989 + WORD $0x2dc81290; WORD $0xfb0a3d21 // .quad -357406007711231344 + WORD $0x881c7f8e; WORD $0x80fa687f // .quad -9152888395723407474 + WORD $0xbc9d0b9a; WORD $0x7ce66634 // .quad 8999993282035256218 + WORD $0x6a239f72; WORD $0xa139029f // .quad -6829424476226871438 + WORD $0xebc44e81; WORD $0x1c1fffc1 // .quad 2026619565689294465 + WORD $0x44ac874e; WORD $0xc9874347 // .quad -3925094576856201394 + WORD $0x66b56221; WORD $0xa327ffb2 // .quad -6690097579743157727 + WORD $0x15d7a922; WORD $0xfbe91419 // .quad -294682202642863838 + WORD $0x0062baa9; WORD $0x4bf1ff9f // .quad 5472436080603216553 + WORD $0xada6c9b5; WORD $0x9d71ac8f // .quad -7101705404292871755 + WORD $0x603db4aa; WORD $0x6f773fc3 // .quad 8031958568804398250 + WORD $0x99107c22; WORD $0xc4ce17b3 // .quad -4265445736938701790 + WORD $0x384d21d4; WORD $0xcb550fb4 // .quad -3795109844276665900 + WORD $0x7f549b2b; WORD $0xf6019da0 // .quad -720121152745989333 + WORD $0x46606a49; WORD $0x7e2a53a1 // .quad 9091170749936331337 + WORD $0x4f94e0fb; WORD $0x99c10284 // .quad -7367604748107325189 + WORD $0xcbfc426e; WORD $0x2eda7444 // .quad 3376138709496513134 + WORD $0x637a1939; WORD $0xc0314325 // .quad -4597819916706768583 + WORD $0xfefb5309; WORD $0xfa911155 // .quad -391512631556746487 + WORD $0xbc589f88; WORD $0xf03d93ee // .quad -1135588877456072824 + WORD $0x7eba27cb; WORD $0x793555ab // .quad 8733981247408842699 + WORD $0x35b763b5; WORD $0x96267c75 // .quad -7627272076051127371 + WORD $0x2f3458df; WORD $0x4bc1558b // .quad 5458738279630526687 + WORD $0x83253ca2; WORD $0xbbb01b92 // .quad -4922404076636521310 + WORD $0xfb016f17; WORD $0x9eb1aaed // .quad -7011635205744005353 + WORD $0x23ee8bcb; WORD $0xea9c2277 // .quad -1541319077368263733 + WORD $0x79c1cadd; WORD $0x465e15a9 // .quad 5070514048102157021 + WORD $0x7675175f; WORD $0x92a1958a // .quad -7880853450996246689 + WORD $0xec191eca; WORD $0x0bfacd89 // .quad 863228270850154186 + WORD $0x14125d36; WORD $0xb749faed // .quad -5239380795317920458 + WORD $0x671f667c; WORD $0xcef980ec // .quad -3532650679864695172 + WORD $0x5916f484; WORD $0xe51c79a8 // .quad -1937539975720012668 + WORD $0x80e7401b; WORD $0x82b7e127 // .quad -9027499368258256869 + WORD $0x37ae58d2; WORD $0x8f31cc09 // .quad -8128491512466089774 + WORD $0xb0908811; WORD $0xd1b2ecb8 // .quad -3336344095947716591 + WORD $0x8599ef07; WORD $0xb2fe3f0b // .quad -5548928372155224313 + WORD $0xdcb4aa16; WORD $0x861fa7e6 // .quad -8782116138362033642 + WORD $0x67006ac9; WORD $0xdfbdcece // .quad -2324474446766642487 + WORD $0x93e1d49b; WORD $0x67a791e0 // .quad 7469098900757009563 + WORD $0x006042bd; WORD $0x8bd6a141 // .quad -8370325556870233411 + WORD $0x5c6d24e1; WORD $0xe0c8bb2c // .quad -2249342214667950879 + WORD $0x4078536d; WORD $0xaecc4991 // .quad -5851220927660403859 + WORD $0x73886e19; WORD $0x58fae9f7 // .quad 6411694268519837209 + WORD $0x90966848; WORD $0xda7f5bf5 // .quad -2702340141148116920 + WORD $0x506a899f; WORD $0xaf39a475 // .quad -5820440219632367201 + WORD $0x7a5e012d; WORD $0x888f9979 // .quad -8606491615858654931 + WORD $0x52429604; WORD $0x6d8406c9 // .quad 7891439908798240260 + WORD $0xd8f58178; WORD $0xaab37fd7 // .quad -6146428501395930760 + WORD $0xa6d33b84; WORD $0xc8e5087b // .quad -3970758169284363388 + WORD $0xcf32e1d6; WORD $0xd5605fcd // .quad -3071349608317525546 + WORD $0x90880a65; WORD $0xfb1e4a9a // .quad -351761693178066331 + WORD $0xa17fcd26; WORD $0x855c3be0 // .quad -8837122532839535322 + WORD $0x9a550680; WORD $0x5cf2eea0 // .quad 6697677969404790400 + WORD $0xc9dfc06f; WORD $0xa6b34ad8 // .quad -6434717147622031249 + WORD $0xc0ea481f; WORD $0xf42faa48 // .quad -851274575098787809 + WORD $0xfc57b08b; WORD $0xd0601d8e // .quad -3431710416100151157 + WORD $0xf124da27; WORD $0xf13b94da // .quad -1064093218873484761 + WORD $0x5db6ce57; WORD $0x823c1279 // .quad -9062348037703676329 + WORD $0xd6b70859; WORD $0x76c53d08 // .quad 8558313775058847833 + WORD $0xb52481ed; WORD $0xa2cb1717 // .quad -6716249028702207507 + WORD $0x0c64ca6f; WORD $0x54768c4b // .quad 6086206200396171887 + WORD $0xa26da268; WORD $0xcb7ddcdd // .quad -3783625267450371480 + WORD $0xcf7dfd0a; WORD $0xa9942f5d // .quad -6227300304786948854 + WORD $0x0b090b02; WORD $0xfe5d5415 // .quad -117845565885576446 + WORD $0x435d7c4d; WORD $0xd3f93b35 // .quad -3172439362556298163 + WORD $0x26e5a6e1; WORD $0x9efa548d // .quad -6991182506319567135 + WORD $0x4a1a6db0; WORD $0xc47bc501 // .quad -4288617610811380304 + WORD $0x709f109a; WORD $0xc6b8e9b0 // .quad -4127292114472071014 + WORD $0x9ca1091c; WORD $0x359ab641 // .quad 3862600023340550428 + WORD $0x8cc6d4c0; WORD $0xf867241c // .quad -547429124662700864 + WORD $0x03c94b63; WORD $0xc30163d2 // .quad -4395122007679087773 + WORD $0xd7fc44f8; WORD $0x9b407691 // .quad -7259672230555269896 + WORD $0x425dcf1e; WORD $0x79e0de63 // .quad 8782263791269039902 + WORD $0x4dfb5636; WORD $0xc2109436 // .quad -4462904269766699466 + WORD $0x12f542e5; WORD $0x985915fc // .quad -7468914334623251739 + WORD $0xe17a2bc4; WORD $0xf294b943 // .quad -966944318780986428 + WORD $0x17b2939e; WORD $0x3e6f5b7b // .quad 4498915137003099038 + WORD $0x6cec5b5a; WORD $0x979cf3ca // .quad -7521869226879198374 + WORD $0xeecf9c43; WORD $0xa705992c // .quad -6411550076227838909 + WORD $0x08277231; WORD $0xbd8430bd // .quad -4790650515171610063 + WORD $0x2a838354; WORD $0x50c6ff78 // .quad 5820620459997365076 + WORD $0x4a314ebd; WORD $0xece53cec // .quad -1376627125537124675 + WORD $0x35246429; WORD $0xa4f8bf56 // .quad -6559282480285457367 + WORD $0xae5ed136; WORD $0x940f4613 // .quad -7777920981101784778 + WORD $0xe136be9a; WORD $0x871b7795 // .quad -8711237568605798758 + WORD $0x99f68584; WORD $0xb9131798 // .quad -5110715207949843068 + WORD $0x59846e40; WORD $0x28e2557b // .quad 2946011094524915264 + WORD $0xc07426e5; WORD $0xe757dd7e // .quad -1776707991509915931 + WORD $0x2fe589d0; WORD $0x331aeada // .quad 3682513868156144080 + WORD $0x3848984f; WORD $0x9096ea6f // .quad -8027971522334779313 + WORD $0x5def7622; WORD $0x3ff0d2c8 // .quad 4607414176811284002 + WORD $0x065abe63; WORD $0xb4bca50b // .quad -5423278384491086237 + WORD $0x756b53aa; WORD $0x0fed077a // .quad 1147581702586717098 + WORD $0xc7f16dfb; WORD $0xe1ebce4d // .quad -2167411962186469893 + WORD $0x12c62895; WORD $0xd3e84959 // .quad -3177208890193991531 + WORD $0x9cf6e4bd; WORD $0x8d3360f0 // .quad -8272161504007625539 + WORD $0xabbbd95d; WORD $0x64712dd7 // .quad 7237616480483531101 + WORD $0xc4349dec; WORD $0xb080392c // .quad -5728515861582144020 + WORD $0x96aacfb4; WORD $0xbd8d794d // .quad -4788037454677749836 + WORD $0xf541c567; WORD $0xdca04777 // .quad -2548958808550292121 + WORD $0xfc5583a1; WORD $0xecf0d7a0 // .quad -1373360799919799391 + WORD $0xf9491b60; WORD $0x89e42caa // .quad -8510628282985014432 + WORD $0x9db57245; WORD $0xf41686c4 // .quad -858350499949874619 + WORD $0xb79b6239; WORD $0xac5d37d5 // .quad -6026599335303880135 + WORD $0xc522ced6; WORD $0x311c2875 // .quad 3538747893490044630 + WORD $0x25823ac7; WORD $0xd77485cb // .quad -2921563150702462265 + WORD $0x366b828c; WORD $0x7d633293 // .quad 9035120885289943692 + WORD $0xf77164bc; WORD $0x86a8d39e // .quad -8743505996830120772 + WORD $0x02033198; WORD $0xae5dff9c // .quad -5882264492762254952 + WORD $0xb54dbdeb; WORD $0xa8530886 // .quad -6317696477610263061 + WORD $0x0283fdfd; WORD $0xd9f57f83 // .quad -2741144597525430787 + WORD $0x62a12d66; WORD $0xd267caa8 // .quad -3285434578585440922 + WORD $0xc324fd7c; WORD $0xd072df63 // .quad -3426430746906788484 + WORD $0x3da4bc60; WORD $0x8380dea9 // .quad -8970925639256982432 + WORD $0x59f71e6e; WORD $0x4247cb9e // .quad 4776009810824339054 + WORD $0x8d0deb78; WORD $0xa4611653 // .quad -6601971030643840136 + WORD $0xf074e609; WORD $0x52d9be85 // .quad 5970012263530423817 + WORD $0x70516656; WORD $0xcd795be8 // .quad -3640777769877412266 + WORD $0x6c921f8c; WORD $0x67902e27 // .quad 7462515329413029772 + WORD $0x4632dff6; WORD $0x806bd971 // .quad -9193015133814464522 + WORD $0xa3db53b7; WORD $0x00ba1cd8 // .quad 52386062455755703 + WORD $0x97bf97f3; WORD $0xa086cfcd // .quad -6879582898840692749 + WORD $0xccd228a5; WORD $0x80e8a40e // .quad -9157889458785081179 + WORD $0xfdaf7df0; WORD $0xc8a883c0 // .quad -3987792605123478032 + WORD $0x8006b2ce; WORD $0x6122cd12 // .quad 6999382250228200142 + WORD $0x3d1b5d6c; WORD $0xfad2a4b1 // .quad -373054737976959636 + WORD $0x20085f82; WORD $0x796b8057 // .quad 8749227812785250178 + WORD $0xc6311a63; WORD $0x9cc3a6ee // .quad -7150688238876681629 + WORD $0x74053bb1; WORD $0xcbe33036 // .quad -3755104653863994447 + WORD $0x77bd60fc; WORD $0xc3f490aa // .quad -4326674280168464132 + WORD $0x11068a9d; WORD $0xbedbfc44 // .quad -4693880817329993059 + WORD $0x15acb93b; WORD $0xf4f1b4d5 // .quad -796656831783192261 + WORD $0x15482d45; WORD $0xee92fb55 // .quad -1255665003235103419 + WORD $0x2d8bf3c5; WORD $0x99171105 // .quad -7415439547505577019 + WORD $0x2d4d1c4b; WORD $0x751bdd15 // .quad 8438581409832836171 + WORD $0x78eef0b6; WORD $0xbf5cd546 // .quad -4657613415954583370 + WORD $0x78a0635e; WORD $0xd262d45a // .quad -3286831292991118498 + WORD $0x172aace4; WORD $0xef340a98 // .quad -1210330751515841308 + WORD $0x16c87c35; WORD $0x86fb8971 // .quad -8720225134666286027 + WORD $0x0e7aac0e; WORD $0x9580869f // .quad -7673985747338482674 + WORD $0xae3d4da1; WORD $0xd45d35e6 // .quad -3144297699952734815 + WORD $0xd2195712; WORD $0xbae0a846 // .quad -4980796165745715438 + WORD $0x59cca10a; WORD $0x89748360 // .quad -8542058143368306422 + WORD $0x869facd7; WORD $0xe998d258 // .quad -1614309188754756393 + WORD $0x703fc94c; WORD $0x2bd1a438 // .quad 3157485376071780684 + WORD $0x5423cc06; WORD $0x91ff8377 // .quad -7926472270612804602 + WORD $0x4627ddd0; WORD $0x7b6306a3 // .quad 8890957387685944784 + WORD $0x292cbf08; WORD $0xb67f6455 // .quad -5296404319838617848 + WORD $0x17b1d543; WORD $0x1a3bc84c // .quad 1890324697752655171 + WORD $0x7377eeca; WORD $0xe41f3d6a // .quad -2008819381370884406 + WORD $0x1d9e4a94; WORD $0x20caba5f // .quad 2362905872190818964 + WORD $0x882af53e; WORD $0x8e938662 // .quad -8173041140997884610 + WORD $0x7282ee9d; WORD $0x547eb47b // .quad 6088502188546649757 + WORD $0x2a35b28d; WORD $0xb23867fb // .quad -5604615407819967859 + WORD $0x4f23aa44; WORD $0xe99e619a // .quad -1612744301171463612 + WORD $0xf4c31f31; WORD $0xdec681f9 // .quad -2394083241347571919 + WORD $0xe2ec94d5; WORD $0x6405fa00 // .quad 7207441660390446293 + WORD $0x38f9f37e; WORD $0x8b3c113c // .quad -8413831053483314306 + WORD $0x8dd3dd05; WORD $0xde83bc40 // .quad -2412877989897052923 + WORD $0x4738705e; WORD $0xae0b158b // .quad -5905602798426754978 + WORD $0xb148d446; WORD $0x9624ab50 // .quad -7627783505798704058 + WORD $0x19068c76; WORD $0xd98ddaee // .quad -2770317479606055818 + WORD $0xdd9b0958; WORD $0x3badd624 // .quad 4300328673033783640 + WORD $0xcfa417c9; WORD $0x87f8a8d4 // .quad -8648977452394866743 + WORD $0x0a80e5d7; WORD $0xe54ca5d7 // .quad -1923980597781273129 + WORD $0x038d1dbc; WORD $0xa9f6d30a // .quad -6199535797066195524 + WORD $0xcd211f4d; WORD $0x5e9fcf4c // .quad 6818396289628184397 + WORD $0x8470652b; WORD $0xd47487cc // .quad -3137733727905356501 + WORD $0x00696720; WORD $0x7647c320 // .quad 8522995362035230496 + WORD $0xd2c63f3b; WORD $0x84c8d4df // .quad -8878612607581929669 + WORD $0x0041e074; WORD $0x29ecd9f4 // .quad 3021029092058325108 + WORD $0xc777cf09; WORD $0xa5fb0a17 // .quad -6486579741050024183 + WORD $0x00525891; WORD $0xf4681071 // .quad -835399653354481519 + WORD $0xb955c2cc; WORD $0xcf79cc9d // .quad -3496538657885142324 + WORD $0x4066eeb5; WORD $0x7182148d // .quad 8179122470161673909 + WORD $0x93d599bf; WORD $0x81ac1fe2 // .quad -9102865688819295809 + WORD $0x48405531; WORD $0xc6f14cd8 // .quad -4111420493003729615 + WORD $0x38cb002f; WORD $0xa21727db // .quad -6766896092596731857 + WORD $0x5a506a7d; WORD $0xb8ada00e // .quad -5139275616254662019 + WORD $0x06fdc03b; WORD $0xca9cf1d2 // .quad -3846934097318526917 + WORD $0xf0e4851d; WORD $0xa6d90811 // .quad -6424094520318327523 + WORD $0x88bd304a; WORD $0xfd442e46 // .quad -196981603220770742 + WORD $0x6d1da664; WORD $0x908f4a16 // .quad -8030118150397909404 + WORD $0x15763e2e; WORD $0x9e4a9cec // .quad -7040642529654063570 + WORD $0x043287ff; WORD $0x9a598e4e // .quad -7324666853212387329 + WORD $0x1ad3cdba; WORD $0xc5dd4427 // .quad -4189117143640191558 + WORD $0x853f29fe; WORD $0x40eff1e1 // .quad 4679224488766679550 + WORD $0xe188c128; WORD $0xf7549530 // .quad -624710411122851544 + WORD $0xe68ef47d; WORD $0xd12bee59 // .quad -3374341425896426371 + WORD $0x8cf578b9; WORD $0x9a94dd3e // .quad -7307973034592864071 + WORD $0x301958cf; WORD $0x82bb74f8 // .quad -9026492418826348337 + WORD $0x3032d6e7; WORD $0xc13a148e // .quad -4523280274813692185 + WORD $0x3c1faf02; WORD $0xe36a5236 // .quad -2059743486678159614 + WORD $0xbc3f8ca1; WORD $0xf18899b1 // .quad -1042414325089727327 + WORD $0xcb279ac2; WORD $0xdc44e6c3 // .quad -2574679358347699518 + WORD $0x15a7b7e5; WORD $0x96f5600f // .quad -7569037980822161435 + WORD $0x5ef8c0ba; WORD $0x29ab103a // .quad 3002511419460075706 + WORD $0xdb11a5de; WORD $0xbcb2b812 // .quad -4849611457600313890 + WORD $0xf6b6f0e8; WORD $0x7415d448 // .quad 8364825292752482536 + WORD $0x91d60f56; WORD $0xebdf6617 // .quad -1450328303573004458 + WORD $0x3464ad22; WORD $0x111b495b // .quad 1232659579085827362 + WORD $0xbb25c995; WORD $0x936b9fce // .quad -7823984217374209643 + WORD $0x00beec35; WORD $0xcab10dd9 // .quad -3841273781498745803 + WORD $0x69ef3bfb; WORD $0xb84687c2 // .quad -5168294253290374149 + WORD $0x40eea743; WORD $0x3d5d514f // .quad 4421779809981343555 + WORD $0x046b0afa; WORD $0xe65829b3 // .quad -1848681798185579782 + WORD $0x112a5113; WORD $0x0cb4a5a3 // .quad 915538744049291539 + WORD $0xe2c2e6dc; WORD $0x8ff71a0f // .quad -8072955151507069220 + WORD $0xeaba72ac; WORD $0x47f0e785 // .quad 5183897733458195116 + WORD $0xdb73a093; WORD $0xb3f4e093 // .quad -5479507920956448621 + WORD $0x65690f57; WORD $0x59ed2167 // .quad 6479872166822743895 + WORD $0xd25088b8; WORD $0xe0f218b8 // .quad -2237698882768172872 + WORD $0x3ec3532d; WORD $0x306869c1 // .quad 3488154190101041965 + WORD $0x83725573; WORD $0x8c974f73 // .quad -8316090829371189901 + WORD $0xc73a13fc; WORD $0x1e414218 // .quad 2180096368813151228 + WORD $0x644eeacf; WORD $0xafbd2350 // .quad -5783427518286599473 + WORD $0xf90898fb; WORD $0xe5d1929e // .quad -1886565557410948869 + WORD $0x7d62a583; WORD $0xdbac6c24 // .quad -2617598379430861437 + WORD $0xb74abf3a; WORD $0xdf45f746 // .quad -2358206946763686086 + WORD $0xce5da772; WORD $0x894bc396 // .quad -8553528014785370254 + WORD $0x328eb784; WORD $0x6b8bba8c // .quad 7749492695127472004 + WORD $0x81f5114f; WORD $0xab9eb47c // .quad -6080224000054324913 + WORD $0x3f326565; WORD $0x066ea92f // .quad 463493832054564197 + WORD $0xa27255a2; WORD $0xd686619b // .quad -2988593981640518238 + WORD $0x0efefebe; WORD $0xc80a537b // .quad -4032318728359182658 + WORD $0x45877585; WORD $0x8613fd01 // .quad -8785400266166405755 + WORD $0xe95f5f37; WORD $0xbd06742c // .quad -4826042214438183113 + WORD $0x96e952e7; WORD $0xa798fc41 // .quad -6370064314280619289 + WORD $0x23b73705; WORD $0x2c481138 // .quad 3190819268807046917 + WORD $0xfca3a7a0; WORD $0xd17f3b51 // .quad -3350894374423386208 + WORD $0x2ca504c6; WORD $0xf75a1586 // .quad -623161932418579258 + WORD $0x3de648c4; WORD $0x82ef8513 // .quad -9011838011655698236 + WORD $0xdbe722fc; WORD $0x9a984d73 // .quad -7307005235402693892 + WORD $0x0d5fdaf5; WORD $0xa3ab6658 // .quad -6653111496142234891 + WORD $0xd2e0ebbb; WORD $0xc13e60d0 // .quad -4522070525825979461 + WORD $0x10b7d1b3; WORD $0xcc963fee // .quad -3704703351750405709 + WORD $0x079926a9; WORD $0x318df905 // .quad 3570783879572301481 + WORD $0x94e5c61f; WORD $0xffbbcfe9 // .quad -19193171260619233 + WORD $0x497f7053; WORD $0xfdf17746 // .quad -148206168962011053 + WORD $0xfd0f9bd3; WORD $0x9fd561f1 // .quad -6929524759678968877 + WORD $0xedefa634; WORD $0xfeb6ea8b // .quad -92628855601256908 + WORD $0x7c5382c8; WORD $0xc7caba6e // .quad -4050219931171323192 + WORD $0xe96b8fc1; WORD $0xfe64a52e // .quad -115786069501571135 + WORD $0x1b68637b; WORD $0xf9bd690a // .quad -451088895536766085 + WORD $0xa3c673b1; WORD $0x3dfdce7a // .quad 4466953431550423985 + WORD $0x51213e2d; WORD $0x9c1661a6 // .quad -7199459587351560659 + WORD $0xa65c084f; WORD $0x06bea10c // .quad 486002885505321039 + WORD $0xe5698db8; WORD $0xc31bfa0f // .quad -4387638465762062920 + WORD $0xcff30a63; WORD $0x486e494f // .quad 5219189625309039203 + WORD $0xdec3f126; WORD $0xf3e2f893 // .quad -872862063775190746 + WORD $0xc3efccfb; WORD $0x5a89dba3 // .quad 6523987031636299003 + WORD $0x6b3a76b7; WORD $0x986ddb5c // .quad -7463067817500576073 + WORD $0x5a75e01d; WORD $0xf8962946 // .quad -534194123654701027 + WORD $0x86091465; WORD $0xbe895233 // .quad -4717148753448332187 + WORD $0xf1135824; WORD $0xf6bbb397 // .quad -667742654568376284 + WORD $0x678b597f; WORD $0xee2ba6c0 // .quad -1284749923383027329 + WORD $0xed582e2d; WORD $0x746aa07d // .quad 8388693718644305453 + WORD $0x40b717ef; WORD $0x94db4838 // .quad -7720497729755473937 + WORD $0xb4571cdd; WORD $0xa8c2a44e // .quad -6286281471915778851 + WORD $0x50e4ddeb; WORD $0xba121a46 // .quad -5038936143766954517 + WORD $0x616ce414; WORD $0x92f34d62 // .quad -7857851839894723564 + WORD $0xe51e1566; WORD $0xe896a0d7 // .quad -1686984161281305242 + WORD $0xf9c81d18; WORD $0x77b020ba // .quad 8624429273841147160 + WORD $0xef32cd60; WORD $0x915e2486 // .quad -7971894128441897632 + WORD $0xdc1d122f; WORD $0x0ace1474 // .quad 778582277723329071 + WORD $0xaaff80b8; WORD $0xb5b5ada8 // .quad -5353181642124984136 + WORD $0x132456bb; WORD $0x0d819992 // .quad 973227847154161339 + WORD $0xd5bf60e6; WORD $0xe3231912 // .quad -2079791034228842266 + WORD $0x97ed6c6a; WORD $0x10e1fff6 // .quad 1216534808942701674 + WORD $0xc5979c8f; WORD $0x8df5efab // .quad -8217398424034108273 + WORD $0x1ef463c2; WORD $0xca8d3ffa // .quad -3851351762838199358 + WORD $0xb6fd83b3; WORD $0xb1736b96 // .quad -5660062011615247437 + WORD $0xa6b17cb3; WORD $0xbd308ff8 // .quad -4814189703547749197 + WORD $0x64bce4a0; WORD $0xddd0467c // .quad -2463391496091671392 + WORD $0xd05ddbdf; WORD $0xac7cb3f6 // .quad -6017737129434686497 + WORD $0xbef60ee4; WORD $0x8aa22c0d // .quad -8457148712698376476 + WORD $0x423aa96c; WORD $0x6bcdf07a // .quad 7768129340171790700 + WORD $0x2eb3929d; WORD $0xad4ab711 // .quad -5959749872445582691 + WORD $0xd2c953c7; WORD $0x86c16c98 // .quad -8736582398494813241 + WORD $0x7a607744; WORD $0xd89d64d5 // .quad -2838001322129590460 + WORD $0x077ba8b8; WORD $0xe871c7bf // .quad -1697355961263740744 + WORD $0x6c7c4a8b; WORD $0x87625f05 // .quad -8691279853972075893 + WORD $0x64ad4973; WORD $0x11471cd7 // .quad 1244995533423855987 + WORD $0xc79b5d2d; WORD $0xa93af6c6 // .quad -6252413799037706963 + WORD $0x3dd89bd0; WORD $0xd598e40d // .quad -3055441601647567920 + WORD $0x79823479; WORD $0xd389b478 // .quad -3203831230369745799 + WORD $0x8d4ec2c4; WORD $0x4aff1d10 // .quad 5404070034795315908 + WORD $0x4bf160cb; WORD $0x843610cb // .quad -8919923546622172981 + WORD $0x585139bb; WORD $0xcedf722a // .quad -3539985255894009413 + WORD $0x1eedb8fe; WORD $0xa54394fe // .quad -6538218414850328322 + WORD $0xee658829; WORD $0xc2974eb4 // .quad -4424981569867511767 + WORD $0xa6a9273e; WORD $0xce947a3d // .quad -3561087000135522498 + WORD $0x29feea33; WORD $0x733d2262 // .quad 8303831092947774003 + WORD $0x8829b887; WORD $0x811ccc66 // .quad -9143208402725783417 + WORD $0x5a3f5260; WORD $0x0806357d // .quad 578208414664970848 + WORD $0x2a3426a8; WORD $0xa163ff80 // .quad -6817324484979841368 + WORD $0xb0cf26f8; WORD $0xca07c2dc // .quad -3888925500096174344 + WORD $0x34c13052; WORD $0xc9bcff60 // .quad -3909969587797413806 + WORD $0xdd02f0b6; WORD $0xfc89b393 // .quad -249470856692830026 + WORD $0x41f17c67; WORD $0xfc2c3f38 // .quad -275775966319379353 + WORD $0xd443ace3; WORD $0xbbac2078 // .quad -4923524589293425437 + WORD $0x2936edc0; WORD $0x9d9ba783 // .quad -7089889006590693952 + WORD $0x84aa4c0e; WORD $0xd54b944b // .quad -3077202868308390898 + WORD $0xf384a931; WORD $0xc5029163 // .quad -4250675239810979535 + WORD $0x65d4df12; WORD $0x0a9e795e // .quad 765182433041899282 + WORD $0xf065d37d; WORD $0xf64335bc // .quad -701658031336336515 + WORD $0xff4a16d6; WORD $0x4d4617b5 // .quad 5568164059729762006 + WORD $0x163fa42e; WORD $0x99ea0196 // .quad -7356065297226292178 + WORD $0xbf8e4e46; WORD $0x504bced1 // .quad 5785945546544795206 + WORD $0x9bcf8d39; WORD $0xc06481fb // .quad -4583395603105477319 + WORD $0x2f71e1d7; WORD $0xe45ec286 // .quad -1990940103673781801 + WORD $0x82c37088; WORD $0xf07da27a // .quad -1117558485454458744 + WORD $0xbb4e5a4d; WORD $0x5d767327 // .quad 6734696907262548557 + WORD $0x91ba2655; WORD $0x964e858c // .quad -7616003081050118571 + WORD $0xd510f870; WORD $0x3a6a07f8 // .quad 4209185567039092848 + WORD $0xb628afea; WORD $0xbbe226ef // .quad -4908317832885260310 + WORD $0x0a55368c; WORD $0x890489f7 // .quad -8573576096483297652 + WORD $0xa3b2dbe5; WORD $0xeadab0ab // .quad -1523711272679187483 + WORD $0xccea842f; WORD $0x2b45ac74 // .quad 3118087934678041647 + WORD $0x464fc96f; WORD $0x92c8ae6b // .quad -7869848573065574033 + WORD $0x0012929e; WORD $0x3b0b8bc9 // .quad 4254647968387469982 + WORD $0x17e3bbcb; WORD $0xb77ada06 // .quad -5225624697904579637 + WORD $0x40173745; WORD $0x09ce6ebb // .quad 706623942056949573 + WORD $0x9ddcaabd; WORD $0xe5599087 // .quad -1920344853953336643 + WORD $0x101d0516; WORD $0xcc420a6a // .quad -3728406090856200938 + WORD $0xc2a9eab6; WORD $0x8f57fa54 // .quad -8117744561361917258 + WORD $0x4a12232e; WORD $0x9fa94682 // .quad -6941939825212513490 + WORD $0xf3546564; WORD $0xb32df8e9 // .quad -5535494683275008668 + WORD $0xdc96abfa; WORD $0x47939822 // .quad 5157633273766521850 + WORD $0x70297ebd; WORD $0xdff97724 // .quad -2307682335666372931 + WORD $0x93bc56f8; WORD $0x59787e2b // .quad 6447041592208152312 + WORD $0xc619ef36; WORD $0x8bfbea76 // .quad -8359830487432564938 + WORD $0x3c55b65b; WORD $0x57eb4edb // .quad 6335244004343789147 + WORD $0x77a06b03; WORD $0xaefae514 // .quad -5838102090863318269 + WORD $0x0b6b23f2; WORD $0xede62292 // .quad -1304317031425039374 + WORD $0x958885c4; WORD $0xdab99e59 // .quad -2685941595151759932 + WORD $0x8e45ecee; WORD $0xe95fab36 // .quad -1630396289281299218 + WORD $0xfd75539b; WORD $0x88b402f7 // .quad -8596242524610931813 + WORD $0x18ebb415; WORD $0x11dbcb02 // .quad 1286845328412881941 + WORD $0xfcd2a881; WORD $0xaae103b5 // .quad -6133617137336276863 + WORD $0x9f26a11a; WORD $0xd652bdc2 // .quad -3003129357911285478 + WORD $0x7c0752a2; WORD $0xd59944a3 // .quad -3055335403242958174 + WORD $0x46f04960; WORD $0x4be76d33 // .quad 5469460339465668960 + WORD $0x2d8493a5; WORD $0x857fcae6 // .quad -8827113654667930715 + WORD $0x0c562ddc; WORD $0x6f70a440 // .quad 8030098730593431004 + WORD $0xb8e5b88e; WORD $0xa6dfbd9f // .quad -6422206049907525490 + WORD $0x0f6bb953; WORD $0xcb4ccd50 // .quad -3797434642040374957 + WORD $0xa71f26b2; WORD $0xd097ad07 // .quad -3416071543957018958 + WORD $0x1346a7a8; WORD $0x7e2000a4 // .quad 9088264752731695016 + WORD $0xc873782f; WORD $0x825ecc24 // .quad -9052573742614218705 + WORD $0x8c0c28c9; WORD $0x8ed40066 // .quad -8154892584824854327 + WORD $0xfa90563b; WORD $0xa2f67f2d // .quad -6704031159840385477 + WORD $0x2f0f32fb; WORD $0x72890080 // .quad 8253128342678483707 + WORD $0x79346bca; WORD $0xcbb41ef9 // .quad -3768352931373093942 + WORD $0x3ad2ffba; WORD $0x4f2b40a0 // .quad 5704724409920716730 + WORD $0xd78186bc; WORD $0xfea126b7 // .quad -98755145788979524 + WORD $0x4987bfa9; WORD $0xe2f610c8 // .quad -2092466524453879895 + WORD $0xe6b0f436; WORD $0x9f24b832 // .quad -6979250993759194058 + WORD $0x2df4d7ca; WORD $0x0dd9ca7d // .quad 998051431430019018 + WORD $0xa05d3143; WORD $0xc6ede63f // .quad -4112377723771604669 + WORD $0x79720dbc; WORD $0x91503d1c // .quad -7975807747567252036 + WORD $0x88747d94; WORD $0xf8a95fcf // .quad -528786136287117932 + WORD $0x97ce912b; WORD $0x75a44c63 // .quad 8476984389250486571 + WORD $0xb548ce7c; WORD $0x9b69dbe1 // .quad -7248020362820530564 + WORD $0x3ee11abb; WORD $0xc986afbe // .quad -3925256793573221701 + WORD $0x229b021b; WORD $0xc24452da // .quad -4448339435098275301 + WORD $0xce996169; WORD $0xfbe85bad // .quad -294884973539139223 + WORD $0xab41c2a2; WORD $0xf2d56790 // .quad -948738275445456222 + WORD $0x423fb9c4; WORD $0xfae27299 // .quad -368606216923924028 + WORD $0x6b0919a5; WORD $0x97c560ba // .quad -7510490449794491995 + WORD $0xc967d41b; WORD $0xdccd879f // .quad -2536221894791146469 + WORD $0x05cb600f; WORD $0xbdb6b8e9 // .quad -4776427043815727089 + WORD $0xbbc1c921; WORD $0x5400e987 // .quad 6053094668365842721 + WORD $0x473e3813; WORD $0xed246723 // .quad -1358847786342270957 + WORD $0xaab23b69; WORD $0x290123e9 // .quad 2954682317029915497 + WORD $0x0c86e30b; WORD $0x9436c076 // .quad -7766808894105001205 + WORD $0x0aaf6522; WORD $0xf9a0b672 // .quad -459166561069996766 + WORD $0x8fa89bce; WORD $0xb9447093 // .quad -5096825099203863602 + WORD $0x8d5b3e6a; WORD $0xf808e40e // .quad -573958201337495958 + WORD $0x7392c2c2; WORD $0xe7958cb8 // .quad -1759345355577441598 + WORD $0x30b20e05; WORD $0xb60b1d12 // .quad -5329133770099257851 + WORD $0x483bb9b9; WORD $0x90bd77f3 // .quad -8017119874876982855 + WORD $0x5e6f48c3; WORD $0xb1c6f22b // .quad -5636551615525730109 + WORD $0x1a4aa828; WORD $0xb4ecd5f0 // .quad -5409713825168840664 + WORD $0x360b1af4; WORD $0x1e38aeb6 // .quad 2177682517447613172 + WORD $0x20dd5232; WORD $0xe2280b6c // .quad -2150456263033662926 + WORD $0xc38de1b1; WORD $0x25c6da63 // .quad 2722103146809516465 + WORD $0x948a535f; WORD $0x8d590723 // .quad -8261564192037121185 + WORD $0x5a38ad0f; WORD $0x579c487e // .quad 6313000485183335695 + WORD $0x79ace837; WORD $0xb0af48ec // .quad -5715269221619013577 + WORD $0xf0c6d852; WORD $0x2d835a9d // .quad 3279564588051781714 + WORD $0x98182244; WORD $0xdcdb1b27 // .quad -2532400508596379068 + WORD $0x6cf88e66; WORD $0xf8e43145 // .quad -512230283362660762 + WORD $0xbf0f156b; WORD $0x8a08f0f8 // .quad -8500279345513818773 + WORD $0x641b5900; WORD $0x1b8e9ecb // .quad 1985699082112030976 + WORD $0xeed2dac5; WORD $0xac8b2d36 // .quad -6013663163464885563 + WORD $0x3d222f40; WORD $0xe272467e // .quad -2129562165787349184 + WORD $0xaa879177; WORD $0xd7adf884 // .quad -2905392935903719049 + WORD $0xcc6abb10; WORD $0x5b0ed81d // .quad 6561419329620589328 + WORD $0xea94baea; WORD $0x86ccbb52 // .quad -8733399612580906262 + WORD $0x9fc2b4ea; WORD $0x98e94712 // .quad -7428327965055601430 + WORD $0xa539e9a5; WORD $0xa87fea27 // .quad -6305063497298744923 + WORD $0x47b36225; WORD $0x3f2398d7 // .quad 4549648098962661925 + WORD $0x8e88640e; WORD $0xd29fe4b1 // .quad -3269643353196043250 + WORD $0x19a03aae; WORD $0x8eec7f0d // .quad -8147997931578836306 + WORD $0xf9153e89; WORD $0x83a3eeee // .quad -8961056123388608887 + WORD $0x300424ad; WORD $0x1953cf68 // .quad 1825030320404309165 + WORD $0xb75a8e2b; WORD $0xa48ceaaa // .quad -6589634135808373205 + WORD $0x3c052dd8; WORD $0x5fa8c342 // .quad 6892973918932774360 + WORD $0x653131b6; WORD $0xcdb02555 // .quad -3625356651333078602 + WORD $0xcb06794e; WORD $0x3792f412 // .quad 4004531380238580046 + WORD $0x5f3ebf11; WORD $0x808e1755 // .quad -9183376934724255983 + WORD $0xbee40bd1; WORD $0xe2bbd88b // .quad -2108853905778275375 + WORD $0xb70e6ed6; WORD $0xa0b19d2a // .quad -6867535149977932074 + WORD $0xae9d0ec5; WORD $0x5b6aceae // .quad 6587304654631931589 + WORD $0x64d20a8b; WORD $0xc8de0475 // .quad -3972732919045027189 + WORD $0x5a445276; WORD $0xf245825a // .quad -989241218564861322 + WORD $0xbe068d2e; WORD $0xfb158592 // .quad -354230130378896082 + WORD $0xf0d56713; WORD $0xeed6e2f0 // .quad -1236551523206076653 + WORD $0xb6c4183d; WORD $0x9ced737b // .quad -7138922859127891907 + WORD $0x9685606c; WORD $0x55464dd6 // .quad 6144684325637283948 + WORD $0xa4751e4c; WORD $0xc428d05a // .quad -4311967555482476980 + WORD $0x3c26b887; WORD $0xaa97e14c // .quad -6154202648235558777 + WORD $0x4d9265df; WORD $0xf5330471 // .quad -778273425925708321 + WORD $0x4b3066a9; WORD $0xd53dd99f // .quad -3081067291867060567 + WORD $0xd07b7fab; WORD $0x993fe2c6 // .quad -7403949918844649557 + WORD $0x8efe402a; WORD $0xe546a803 // .quad -1925667057416912854 + WORD $0x849a5f96; WORD $0xbf8fdb78 // .quad -4643251380128424042 + WORD $0x72bdd034; WORD $0xde985204 // .quad -2407083821771141068 + WORD $0xa5c0f77c; WORD $0xef73d256 // .quad -1192378206733142148 + WORD $0x8f6d4441; WORD $0x963e6685 // .quad -7620540795641314239 + WORD $0x27989aad; WORD $0x95a86376 // .quad -7662765406849295699 + WORD $0x79a44aa9; WORD $0xdde70013 // .quad -2456994988062127447 + WORD $0xb17ec159; WORD $0xbb127c53 // .quad -4966770740134231719 + WORD $0x580d5d53; WORD $0x5560c018 // .quad 6152128301777116499 + WORD $0x9dde71af; WORD $0xe9d71b68 // .quad -1596777406740401745 + WORD $0x6e10b4a7; WORD $0xaab8f01e // .quad -6144897678060768089 + WORD $0x62ab070d; WORD $0x92267121 // .quad -7915514906853832947 + WORD $0x04ca70e9; WORD $0xcab39613 // .quad -3840561048787980055 + WORD $0xbb55c8d1; WORD $0xb6b00d69 // .quad -5282707615139903279 + WORD $0xc5fd0d23; WORD $0x3d607b97 // .quad 4422670725869800739 + WORD $0x2a2b3b05; WORD $0xe45c10c4 // .quad -1991698500497491195 + WORD $0xb77c506b; WORD $0x8cb89a7d // .quad -8306719647944912789 + WORD $0x9a5b04e3; WORD $0x8eb98a7a // .quad -8162340590452013853 + WORD $0x92adb243; WORD $0x77f3608e // .quad 8643358275316593219 + WORD $0x40f1c61c; WORD $0xb267ed19 // .quad -5591239719637629412 + WORD $0x37591ed4; WORD $0x55f038b2 // .quad 6192511825718353620 + WORD $0x912e37a3; WORD $0xdf01e85f // .quad -2377363631119648861 + WORD $0xc52f6689; WORD $0x6b6c46de // .quad 7740639782147942025 + WORD $0xbabce2c6; WORD $0x8b61313b // .quad -8403381297090862394 + WORD $0x3b3da016; WORD $0x2323ac4b // .quad 2532056854628769814 + WORD $0xa96c1b77; WORD $0xae397d8a // .quad -5892540602936190089 + WORD $0x0a0d081b; WORD $0xabec975e // .quad -6058300968568813541 + WORD $0x53c72255; WORD $0xd9c7dced // .quad -2753989735242849707 + WORD $0x8c904a22; WORD $0x96e7bd35 // .quad -7572876210711016926 + WORD $0x545c7575; WORD $0x881cea14 // .quad -8638772612167862923 + WORD $0x77da2e55; WORD $0x7e50d641 // .quad 9102010423587778133 + WORD $0x697392d2; WORD $0xaa242499 // .quad -6186779746782440750 + WORD $0xd5d0b9ea; WORD $0xdde50bd1 // .quad -2457545025797441046 + WORD $0xc3d07787; WORD $0xd4ad2dbf // .quad -3121788665050663033 + WORD $0x4b44e865; WORD $0x955e4ec6 // .quad -7683617300674189211 + WORD $0xda624ab4; WORD $0x84ec3c97 // .quad -8868646943297746252 + WORD $0xef0b113f; WORD $0xbd5af13b // .quad -4802260812921368257 + WORD $0xd0fadd61; WORD $0xa6274bbd // .quad -6474122660694794911 + WORD $0xeacdd58f; WORD $0xecb1ad8a // .quad -1391139997724322417 + WORD $0x453994ba; WORD $0xcfb11ead // .quad -3480967307441105734 + WORD $0xa5814af3; WORD $0x67de18ed // .quad 7484447039699372787 + WORD $0x4b43fcf4; WORD $0x81ceb32c // .quad -9093133594791772940 + WORD $0x8770ced8; WORD $0x80eacf94 // .quad -9157278655470055720 + WORD $0x5e14fc31; WORD $0xa2425ff7 // .quad -6754730975062328271 + WORD $0xa94d028e; WORD $0xa1258379 // .quad -6834912300910181746 + WORD $0x359a3b3e; WORD $0xcad2f7f5 // .quad -3831727700400522434 + WORD $0x13a04331; WORD $0x096ee458 // .quad 679731660717048625 + WORD $0x8300ca0d; WORD $0xfd87b5f2 // .quad -177973607073265139 + WORD $0x188853fd; WORD $0x8bca9d6e // .quad -8373707460958465027 + WORD $0x91e07e48; WORD $0x9e74d1b7 // .quad -7028762532061872568 + WORD $0xcf55347e; WORD $0x775ea264 // .quad 8601490892183123070 + WORD $0x76589dda; WORD $0xc6120625 // .quad -4174267146649952806 + WORD $0x032a819e; WORD $0x95364afe // .quad -7694880458480647778 + WORD $0xd3eec551; WORD $0xf79687ae // .quad -606147914885053103 + WORD $0x83f52205; WORD $0x3a83ddbd // .quad 4216457482181353989 + WORD $0x44753b52; WORD $0x9abe14cd // .quad -7296371474444240046 + WORD $0x72793543; WORD $0xc4926a96 // .quad -4282243101277735613 + WORD $0x95928a27; WORD $0xc16d9a00 // .quad -4508778324627912153 + WORD $0x0f178294; WORD $0x75b7053c // .quad 8482254178684994196 + WORD $0xbaf72cb1; WORD $0xf1c90080 // .quad -1024286887357502287 + WORD $0x12dd6339; WORD $0x5324c68b // .quad 5991131704928854841 + WORD $0x74da7bee; WORD $0x971da050 // .quad -7557708332239520786 + WORD $0xebca5e04; WORD $0xd3f6fc16 // .quad -3173071712060547580 + WORD $0x92111aea; WORD $0xbce50864 // .quad -4835449396872013078 + WORD $0xa6bcf585; WORD $0x88f4bb1c // .quad -8578025658503072379 + WORD $0xb69561a5; WORD $0xec1e4a7d // .quad -1432625727662628443 + WORD $0xd06c32e6; WORD $0x2b31e9e3 // .quad 3112525982153323238 + WORD $0x921d5d07; WORD $0x9392ee8e // .quad -7812920107430224633 + WORD $0x62439fd0; WORD $0x3aff322e // .quad 4251171748059520976 + WORD $0x36a4b449; WORD $0xb877aa32 // .quad -5154464115860392887 + WORD $0xfad487c3; WORD $0x09befeb9 // .quad 702278666647013315 + WORD $0xc44de15b; WORD $0xe69594be // .quad -1831394126398103205 + WORD $0x7989a9b4; WORD $0x4c2ebe68 // .quad 5489534351736154548 + WORD $0x3ab0acd9; WORD $0x901d7cf7 // .quad -8062150356639896359 + WORD $0x4bf60a11; WORD $0x0f9d3701 // .quad 1125115960621402641 + WORD $0x095cd80f; WORD $0xb424dc35 // .quad -5466001927372482545 + WORD $0x9ef38c95; WORD $0x538484c1 // .quad 6018080969204141205 + WORD $0x4bb40e13; WORD $0xe12e1342 // .quad -2220816390788215277 + WORD $0x06b06fba; WORD $0x2865a5f2 // .quad 2910915193077788602 + WORD $0x6f5088cb; WORD $0x8cbccc09 // .quad -8305539271883716405 + WORD $0x442e45d4; WORD $0xf93f87b7 // .quad -486521013540076076 + WORD $0xcb24aafe; WORD $0xafebff0b // .quad -5770238071427257602 + WORD $0x1539d749; WORD $0xf78f69a5 // .quad -608151266925095095 + WORD $0xbdedd5be; WORD $0xdbe6fece // .quad -2601111570856684098 + WORD $0x5a884d1c; WORD $0xb573440e // .quad -5371875102083756772 + WORD $0x36b4a597; WORD $0x89705f41 // .quad -8543223759426509417 + WORD $0xf8953031; WORD $0x31680a88 // .quad 3560107088838733873 + WORD $0x8461cefc; WORD $0xabcc7711 // .quad -6067343680855748868 + WORD $0x36ba7c3e; WORD $0xfdc20d2b // .quad -161552157378970562 + WORD $0xe57a42bc; WORD $0xd6bf94d5 // .quad -2972493582642298180 + WORD $0x04691b4d; WORD $0x3d329076 // .quad 4409745821703674701 + WORD $0xaf6c69b5; WORD $0x8637bd05 // .quad -8775337516792518219 + WORD $0xc2c1b110; WORD $0xa63f9a49 // .quad -6467280898289979120 + WORD $0x1b478423; WORD $0xa7c5ac47 // .quad -6357485877563259869 + WORD $0x33721d54; WORD $0x0fcf80dc // .quad 1139270913992301908 + WORD $0xe219652b; WORD $0xd1b71758 // .quad -3335171328526686933 + WORD $0x404ea4a9; WORD $0xd3c36113 // .quad -3187597375937010519 + WORD $0x8d4fdf3b; WORD $0x83126e97 // .quad -9002011107970261189 + WORD $0x083126ea; WORD $0x645a1cac // .quad 7231123676894144234 + WORD $0x70a3d70a; WORD $0xa3d70a3d // .quad -6640827866535438582 + WORD $0x0a3d70a4; WORD $0x3d70a3d7 // .quad 4427218577690292388 + WORD $0xcccccccc; WORD $0xcccccccc // .quad -3689348814741910324 + WORD $0xcccccccd; WORD $0xcccccccc // .quad -3689348814741910323 + WORD $0x00000000; WORD $0x80000000 // .quad -9223372036854775808 + WORD $0x00000000; WORD $0x00000000 // .quad 0 + WORD $0x00000000; WORD $0xa0000000 // .quad -6917529027641081856 + WORD $0x00000000; WORD $0x00000000 // .quad 0 + WORD $0x00000000; WORD $0xc8000000 // .quad -4035225266123964416 + WORD $0x00000000; WORD $0x00000000 // .quad 0 + WORD $0x00000000; WORD $0xfa000000 // .quad -432345564227567616 + WORD $0x00000000; WORD $0x00000000 // .quad 0 + WORD $0x00000000; WORD $0x9c400000 // .quad -7187745005283311616 + WORD $0x00000000; WORD $0x00000000 // .quad 0 + WORD $0x00000000; WORD $0xc3500000 // .quad -4372995238176751616 + WORD $0x00000000; WORD $0x00000000 // .quad 0 + WORD $0x00000000; WORD $0xf4240000 // .quad -854558029293551616 + WORD $0x00000000; WORD $0x00000000 // .quad 0 + WORD $0x00000000; WORD $0x98968000 // .quad -7451627795949551616 + WORD $0x00000000; WORD $0x00000000 // .quad 0 + WORD $0x00000000; WORD $0xbebc2000 // .quad -4702848726509551616 + WORD $0x00000000; WORD $0x00000000 // .quad 0 + WORD $0x00000000; WORD $0xee6b2800 // .quad -1266874889709551616 + WORD $0x00000000; WORD $0x00000000 // .quad 0 + WORD $0x00000000; WORD $0x9502f900 // .quad -7709325833709551616 + WORD $0x00000000; WORD $0x00000000 // .quad 0 + WORD $0x00000000; WORD $0xba43b740 // .quad -5024971273709551616 + WORD $0x00000000; WORD $0x00000000 // .quad 0 + WORD $0x00000000; WORD $0xe8d4a510 // .quad -1669528073709551616 + WORD $0x00000000; WORD $0x00000000 // .quad 0 + WORD $0x00000000; WORD $0x9184e72a // .quad -7960984073709551616 + WORD $0x00000000; WORD $0x00000000 // .quad 0 + WORD $0x80000000; WORD $0xb5e620f4 // .quad -5339544073709551616 + WORD $0x00000000; WORD $0x00000000 // .quad 0 + WORD $0xa0000000; WORD $0xe35fa931 // .quad -2062744073709551616 + WORD $0x00000000; WORD $0x00000000 // .quad 0 + WORD $0x04000000; WORD $0x8e1bc9bf // .quad -8206744073709551616 + WORD $0x00000000; WORD $0x00000000 // .quad 0 + WORD $0xc5000000; WORD $0xb1a2bc2e // .quad -5646744073709551616 + WORD $0x00000000; WORD $0x00000000 // .quad 0 + WORD $0x76400000; WORD $0xde0b6b3a // .quad -2446744073709551616 + WORD $0x00000000; WORD $0x00000000 // .quad 0 + WORD $0x89e80000; WORD $0x8ac72304 // .quad -8446744073709551616 + WORD $0x00000000; WORD $0x00000000 // .quad 0 + WORD $0xac620000; WORD $0xad78ebc5 // .quad -5946744073709551616 + WORD $0x00000000; WORD $0x00000000 // .quad 0 + WORD $0x177a8000; WORD $0xd8d726b7 // .quad -2821744073709551616 + WORD $0x00000000; WORD $0x00000000 // .quad 0 + WORD $0x6eac9000; WORD $0x87867832 // .quad -8681119073709551616 + WORD $0x00000000; WORD $0x00000000 // .quad 0 + WORD $0x0a57b400; WORD $0xa968163f // .quad -6239712823709551616 + WORD $0x00000000; WORD $0x00000000 // .quad 0 + WORD $0xcceda100; WORD $0xd3c21bce // .quad -3187955011209551616 + WORD $0x00000000; WORD $0x00000000 // .quad 0 + WORD $0x401484a0; WORD $0x84595161 // .quad -8910000909647051616 + WORD $0x00000000; WORD $0x00000000 // .quad 0 + WORD $0x9019a5c8; WORD $0xa56fa5b9 // .quad -6525815118631426616 + WORD $0x00000000; WORD $0x00000000 // .quad 0 + WORD $0xf4200f3a; WORD $0xcecb8f27 // .quad -3545582879861895366 + WORD $0x00000000; WORD $0x00000000 // .quad 0 + WORD $0xf8940984; WORD $0x813f3978 // .quad -9133518327554766460 + WORD $0x00000000; WORD $0x40000000 // .quad 4611686018427387904 + WORD $0x36b90be5; WORD $0xa18f07d7 // .quad -6805211891016070171 + WORD $0x00000000; WORD $0x50000000 // .quad 5764607523034234880 + WORD $0x04674ede; WORD $0xc9f2c9cd // .quad -3894828845342699810 + WORD $0x00000000; WORD $0xa4000000 // .quad -6629298651489370112 + WORD $0x45812296; WORD $0xfc6f7c40 // .quad -256850038250986858 + WORD $0x00000000; WORD $0x4d000000 // .quad 5548434740920451072 + WORD $0x2b70b59d; WORD $0x9dc5ada8 // .quad -7078060301547948643 + WORD $0x00000000; WORD $0xf0200000 // .quad -1143914305352105984 + WORD $0x364ce305; WORD $0xc5371912 // .quad -4235889358507547899 + WORD $0x00000000; WORD $0x6c280000 // .quad 7793479155164643328 + WORD $0xc3e01bc6; WORD $0xf684df56 // .quad -683175679707046970 + WORD $0x00000000; WORD $0xc7320000 // .quad -4093209111326359552 + WORD $0x3a6c115c; WORD $0x9a130b96 // .quad -7344513827457986212 + WORD $0x00000000; WORD $0x3c7f4000 // .quad 4359273333062107136 + WORD $0xc90715b3; WORD $0xc097ce7b // .quad -4568956265895094861 + WORD $0x00000000; WORD $0x4b9f1000 // .quad 5449091666327633920 + WORD $0xbb48db20; WORD $0xf0bdc21a // .quad -1099509313941480672 + WORD $0x00000000; WORD $0x1e86d400 // .quad 2199678564482154496 + WORD $0xb50d88f4; WORD $0x96769950 // .quad -7604722348854507276 + WORD $0x00000000; WORD $0x13144480 // .quad 1374799102801346560 + WORD $0xe250eb31; WORD $0xbc143fa4 // .quad -4894216917640746191 + WORD $0x00000000; WORD $0x17d955a0 // .quad 1718498878501683200 + WORD $0x1ae525fd; WORD $0xeb194f8e // .quad -1506085128623544835 + WORD $0x00000000; WORD $0x5dcfab08 // .quad 6759809616554491904 + WORD $0xd0cf37be; WORD $0x92efd1b8 // .quad -7858832233030797378 + WORD $0x00000000; WORD $0x5aa1cae5 // .quad 6530724019560251392 + WORD $0x050305ad; WORD $0xb7abc627 // .quad -5211854272861108819 + WORD $0x40000000; WORD $0xf14a3d9e // .quad -1059967012404461568 + WORD $0xc643c719; WORD $0xe596b7b0 // .quad -1903131822648998119 + WORD $0xd0000000; WORD $0x6d9ccd05 // .quad 7898413271349198848 + WORD $0x7bea5c6f; WORD $0x8f7e32ce // .quad -8106986416796705681 + WORD $0xa2000000; WORD $0xe4820023 // .quad -1981020733047832576 + WORD $0x1ae4f38b; WORD $0xb35dbf82 // .quad -5522047002568494197 + WORD $0x8a800000; WORD $0xdda2802c // .quad -2476275916309790720 + WORD $0xa19e306e; WORD $0xe0352f62 // .quad -2290872734783229842 + WORD $0xad200000; WORD $0xd50b2037 // .quad -3095344895387238400 + WORD $0xa502de45; WORD $0x8c213d9d // .quad -8349324486880600507 + WORD $0xcc340000; WORD $0x4526f422 // .quad 4982938468024057856 + WORD $0x0e4395d6; WORD $0xaf298d05 // .quad -5824969590173362730 + WORD $0x7f410000; WORD $0x9670b12b // .quad -7606384970252091392 + WORD $0x51d47b4c; WORD $0xdaf3f046 // .quad -2669525969289315508 + WORD $0x5f114000; WORD $0x3c0cdd76 // .quad 4327076842467049472 + WORD $0xf324cd0f; WORD $0x88d8762b // .quad -8585982758446904049 + WORD $0xfb6ac800; WORD $0xa5880a69 // .quad -6518949010312869888 + WORD $0xefee0053; WORD $0xab0e93b6 // .quad -6120792429631242157 + WORD $0x7a457a00; WORD $0x8eea0d04 // .quad -8148686262891087360 + WORD $0xabe98068; WORD $0xd5d238a4 // .quad -3039304518611664792 + WORD $0x98d6d880; WORD $0x72a49045 // .quad 8260886245095692416 + WORD $0xeb71f041; WORD $0x85a36366 // .quad -8817094351773372351 + WORD $0x7f864750; WORD $0x47a6da2b // .quad 5163053903184807760 + WORD $0xa64e6c51; WORD $0xa70c3c40 // .quad -6409681921289327535 + WORD $0x5f67d924; WORD $0x999090b6 // .quad -7381240676301154012 + WORD $0xcfe20765; WORD $0xd0cf4b50 // .quad -3400416383184271515 + WORD $0xf741cf6d; WORD $0xfff4b4e3 // .quad -3178808521666707 + WORD $0x81ed449f; WORD $0x82818f12 // .quad -9042789267131251553 + WORD $0x7a8921a5; WORD $0xbff8f10e // .quad -4613672773753429595 + WORD $0x226895c7; WORD $0xa321f2d7 // .quad -6691800565486676537 + WORD $0x192b6a0e; WORD $0xaff72d52 // .quad -5767090967191786994 + WORD $0xeb02bb39; WORD $0xcbea6f8c // .quad -3753064688430957767 + WORD $0x9f764491; WORD $0x9bf4f8a6 // .quad -7208863708989733743 + WORD $0x25c36a08; WORD $0xfee50b70 // .quad -79644842111309304 + WORD $0x4753d5b5; WORD $0x02f236d0 // .quad 212292400617608629 + WORD $0x179a2245; WORD $0x9f4f2726 // .quad -6967307053960650171 + WORD $0x2c946591; WORD $0x01d76242 // .quad 132682750386005393 + WORD $0x9d80aad6; WORD $0xc722f0ef // .quad -4097447799023424810 + WORD $0xb7b97ef6; WORD $0x424d3ad2 // .quad 4777539456409894646 + WORD $0x84e0d58b; WORD $0xf8ebad2b // .quad -510123730351893109 + WORD $0x65a7deb3; WORD $0xd2e08987 // .quad -3251447716342407501 + WORD $0x330c8577; WORD $0x9b934c3b // .quad -7236356359111015049 + WORD $0x9f88eb30; WORD $0x63cc55f4 // .quad 7191217214140771120 + WORD $0xffcfa6d5; WORD $0xc2781f49 // .quad -4433759430461380907 + WORD $0xc76b25fc; WORD $0x3cbf6b71 // .quad 4377335499248575996 + WORD $0x7fc3908a; WORD $0xf316271c // .quad -930513269649338230 + WORD $0x3945ef7b; WORD $0x8bef464e // .quad -8363388681221443717 + WORD $0xcfda3a56; WORD $0x97edd871 // .quad -7499099821171918250 + WORD $0xe3cbb5ad; WORD $0x97758bf0 // .quad -7532960934977096275 + WORD $0x43d0c8ec; WORD $0xbde94e8e // .quad -4762188758037509908 + WORD $0x1cbea318; WORD $0x3d52eeed // .quad 4418856886560793368 + WORD $0xd4c4fb27; WORD $0xed63a231 // .quad -1341049929119499481 + WORD $0x63ee4bde; WORD $0x4ca7aaa8 // .quad 5523571108200991710 + WORD $0x24fb1cf8; WORD $0x945e455f // .quad -7755685233340769032 + WORD $0x3e74ef6b; WORD $0x8fe8caa9 // .quad -8076983103442849941 + WORD $0xee39e436; WORD $0xb975d6b6 // .quad -5082920523248573386 + WORD $0x8e122b45; WORD $0xb3e2fd53 // .quad -5484542860876174523 + WORD $0xa9c85d44; WORD $0xe7d34c64 // .quad -1741964635633328828 + WORD $0x7196b617; WORD $0x60dbbca8 // .quad 6979379479186945559 + WORD $0xea1d3a4a; WORD $0x90e40fbe // .quad -8006256924911912374 + WORD $0x46fe31ce; WORD $0xbc8955e9 // .quad -4861259862362934834 + WORD $0xa4a488dd; WORD $0xb51d13ae // .quad -5396135137712502563 + WORD $0x98bdbe42; WORD $0x6babab63 // .quad 7758483227328495170 + WORD $0x4dcdab14; WORD $0xe264589a // .quad -2133482903713240300 + WORD $0x7eed2dd2; WORD $0xc696963c // .quad -4136954021121544750 + WORD $0x70a08aec; WORD $0x8d7eb760 // .quad -8250955842461857044 + WORD $0xcf543ca3; WORD $0xfc1e1de5 // .quad -279753253987271517 + WORD $0x8cc8ada8; WORD $0xb0de6538 // .quad -5702008784649933400 + WORD $0x43294bcc; WORD $0x3b25a55f // .quad 4261994450943298508 + WORD $0xaffad912; WORD $0xdd15fe86 // .quad -2515824962385028846 + WORD $0x13f39ebf; WORD $0x49ef0eb7 // .quad 5327493063679123135 + WORD $0x2dfcc7ab; WORD $0x8a2dbf14 // .quad -8489919629131724885 + WORD $0x6c784338; WORD $0x6e356932 // .quad 7941369183226839864 + WORD $0x397bf996; WORD $0xacb92ed9 // .quad -6000713517987268202 + WORD $0x07965405; WORD $0x49c2c37f // .quad 5315025460606161925 + WORD $0x87daf7fb; WORD $0xd7e77a8f // .quad -2889205879056697349 + WORD $0xc97be907; WORD $0xdc33745e // .quad -2579590211097073401 + WORD $0xb4e8dafd; WORD $0x86f0ac99 // .quad -8723282702051517699 + WORD $0x3ded71a4; WORD $0x69a028bb // .quad 7611128154919104932 + WORD $0x222311bc; WORD $0xa8acd7c0 // .quad -6292417359137009220 + WORD $0x0d68ce0d; WORD $0xc40832ea // .quad -4321147861633282547 + WORD $0x2aabd62b; WORD $0xd2d80db0 // .quad -3253835680493873621 + WORD $0x90c30191; WORD $0xf50a3fa4 // .quad -789748808614215279 + WORD $0x1aab65db; WORD $0x83c7088e // .quad -8951176327949752869 + WORD $0xda79e0fb; WORD $0x792667c6 // .quad 8729779031470891259 + WORD $0xa1563f52; WORD $0xa4b8cab1 // .quad -6577284391509803182 + WORD $0x91185939; WORD $0x577001b8 // .quad 6300537770911226169 + WORD $0x09abcf26; WORD $0xcde6fd5e // .quad -3609919470959866074 + WORD $0xb55e6f87; WORD $0xed4c0226 // .quad -1347699823215743097 + WORD $0xc60b6178; WORD $0x80b05e5a // .quad -9173728696990998152 + WORD $0x315b05b5; WORD $0x544f8158 // .quad 6075216638131242421 + WORD $0x778e39d6; WORD $0xa0dc75f1 // .quad -6855474852811359786 + WORD $0x3db1c722; WORD $0x696361ae // .quad 7594020797664053026 + WORD $0xd571c84c; WORD $0xc913936d // .quad -3957657547586811828 + WORD $0xcd1e38ea; WORD $0x03bc3a19 // .quad 269153960225290474 + WORD $0x4ace3a5f; WORD $0xfb587849 // .quad -335385916056126881 + WORD $0x4065c724; WORD $0x04ab48a0 // .quad 336442450281613092 + WORD $0xcec0e47b; WORD $0x9d174b2d // .quad -7127145225176161157 + WORD $0x283f9c77; WORD $0x62eb0d64 // .quad 7127805559067090039 + WORD $0x42711d9a; WORD $0xc45d1df9 // .quad -4297245513042813542 + WORD $0x324f8395; WORD $0x3ba5d0bd // .quad 4298070930406474645 + WORD $0x930d6500; WORD $0xf5746577 // .quad -759870872876129024 + WORD $0x7ee3647a; WORD $0xca8f44ec // .quad -3850783373846682502 + WORD $0xbbe85f20; WORD $0x9968bf6a // .quad -7392448323188662496 + WORD $0xcf4e1ecc; WORD $0x7e998b13 // .quad 9122475437414293196 + WORD $0x6ae276e8; WORD $0xbfc2ef45 // .quad -4628874385558440216 + WORD $0xc321a67f; WORD $0x9e3fedd8 // .quad -7043649776941685121 + WORD $0xc59b14a2; WORD $0xefb3ab16 // .quad -1174406963520662366 + WORD $0xf3ea101f; WORD $0xc5cfe94e // .quad -4192876202749718497 + WORD $0x3b80ece5; WORD $0x95d04aee // .quad -7651533379841495835 + WORD $0x58724a13; WORD $0xbba1f1d1 // .quad -4926390635932268013 + WORD $0xca61281f; WORD $0xbb445da9 // .quad -4952730706374481889 + WORD $0xae8edc98; WORD $0x2a8a6e45 // .quad 3065383741939440792 + WORD $0x3cf97226; WORD $0xea157514 // .quad -1579227364540714458 + WORD $0x1a3293be; WORD $0xf52d09d7 // .quad -779956341003086914 + WORD $0xa61be758; WORD $0x924d692c // .quad -7904546130479028392 + WORD $0x705f9c57; WORD $0x593c2626 // .quad 6430056314514152535 + WORD $0xcfa2e12e; WORD $0xb6e0c377 // .quad -5268996644671397586 + WORD $0x0c77836d; WORD $0x6f8b2fb0 // .quad 8037570393142690669 + WORD $0xc38b997a; WORD $0xe498f455 // .quad -1974559787411859078 + WORD $0x0f956448; WORD $0x0b6dfb9c // .quad 823590954573587528 + WORD $0x9a373fec; WORD $0x8edf98b5 // .quad -8151628894773493780 + WORD $0x89bd5ead; WORD $0x4724bd41 // .quad 5126430365035880109 + WORD $0x00c50fe7; WORD $0xb2977ee3 // .quad -5577850100039479321 + WORD $0xec2cb658; WORD $0x58edec91 // .quad 6408037956294850136 + WORD $0xc0f653e1; WORD $0xdf3d5e9b // .quad -2360626606621961247 + WORD $0x6737e3ee; WORD $0x2f2967b6 // .quad 3398361426941174766 + WORD $0x5899f46c; WORD $0x8b865b21 // .quad -8392920656779807636 + WORD $0x0082ee75; WORD $0xbd79e0d2 // .quad -4793553135802847627 + WORD $0xaec07187; WORD $0xae67f1e9 // .quad -5879464802547371641 + WORD $0x80a3aa12; WORD $0xecd85906 // .quad -1380255401326171630 + WORD $0x1a708de9; WORD $0xda01ee64 // .quad -2737644984756826647 + WORD $0x20cc9496; WORD $0xe80e6f48 // .quad -1725319251657714538 + WORD $0x908658b2; WORD $0x884134fe // .quad -8628557143114098510 + WORD $0x147fdcde; WORD $0x3109058d // .quad 3533361486141316318 + WORD $0x34a7eede; WORD $0xaa51823e // .quad -6174010410465235234 + WORD $0x599fd416; WORD $0xbd4b46f0 // .quad -4806670179178130410 + WORD $0xc1d1ea96; WORD $0xd4e5e2cd // .quad -3105826994654156138 + WORD $0x7007c91b; WORD $0x6c9e18ac // .quad 7826720331309500699 + WORD $0x9923329e; WORD $0x850fadc0 // .quad -8858670899299929442 + WORD $0xc604ddb1; WORD $0x03e2cf6b // .quad 280014188641050033 + WORD $0xbf6bff45; WORD $0xa6539930 // .quad -6461652605697523899 + WORD $0xb786151d; WORD $0x84db8346 // .quad -8873354301053463267 + WORD $0xef46ff16; WORD $0xcfe87f7c // .quad -3465379738694516970 + WORD $0x65679a64; WORD $0xe6126418 // .quad -1868320839462053276 + WORD $0x158c5f6e; WORD $0x81f14fae // .quad -9083391364325154962 + WORD $0x3f60c07f; WORD $0x4fcb7e8f // .quad 5749828502977298559 + WORD $0x9aef7749; WORD $0xa26da399 // .quad -6742553186979055799 + WORD $0x0f38f09e; WORD $0xe3be5e33 // .quad -2036086408133152610 + WORD $0x01ab551c; WORD $0xcb090c80 // .quad -3816505465296431844 + WORD $0xd3072cc6; WORD $0x5cadf5bf // .quad 6678264026688335046 + WORD $0x02162a63; WORD $0xfdcb4fa0 // .quad -158945813193151901 + WORD $0xc7c8f7f7; WORD $0x73d9732f // .quad 8347830033360418807 + WORD $0x014dda7e; WORD $0x9e9f11c4 // .quad -7016870160886801794 + WORD $0xdcdd9afb; WORD $0x2867e7fd // .quad 2911550761636567803 + WORD $0x01a1511d; WORD $0xc646d635 // .quad -4159401682681114339 + WORD $0x541501b9; WORD $0xb281e1fd // .quad -5583933584809066055 + WORD $0x4209a565; WORD $0xf7d88bc2 // .quad -587566084924005019 + WORD $0xa91a4227; WORD $0x1f225a7c // .quad 2243455055843443239 + WORD $0x6946075f; WORD $0x9ae75759 // .quad -7284757830718584993 + WORD $0xe9b06959; WORD $0x3375788d // .quad 3708002419115845977 + WORD $0xc3978937; WORD $0xc1a12d2f // .quad -4494261269970843337 + WORD $0x641c83af; WORD $0x0052d6b1 // .quad 23317005467419567 + WORD $0xb47d6b84; WORD $0xf209787b // .quad -1006140569036166268 + WORD $0xbd23a49b; WORD $0xc0678c5d // .quad -4582539761593113445 + WORD $0x50ce6332; WORD $0x9745eb4d // .quad -7546366883288685774 + WORD $0x963646e1; WORD $0xf840b7ba // .quad -558244341782001951 + WORD $0xa501fbff; WORD $0xbd176620 // .quad -4821272585683469313 + WORD $0x3bc3d899; WORD $0xb650e5a9 // .quad -5309491445654890343 + WORD $0xce427aff; WORD $0xec5d3fa8 // .quad -1414904713676948737 + WORD $0x8ab4cebf; WORD $0xa3e51f13 // .quad -6636864307068612929 + WORD $0x80e98cdf; WORD $0x93ba47c9 // .quad -7801844473689174817 + WORD $0x36b10138; WORD $0xc66f336c // .quad -4148040191917883080 + WORD $0xe123f017; WORD $0xb8a8d9bb // .quad -5140619573684080617 + WORD $0x445d4185; WORD $0xb80b0047 // .quad -5185050239897353851 + WORD $0xd96cec1d; WORD $0xe6d3102a // .quad -1814088448677712867 + WORD $0x157491e6; WORD $0xa60dc059 // .quad -6481312799871692314 + WORD $0xc7e41392; WORD $0x9043ea1a // .quad -8051334308064652398 + WORD $0xad68db30; WORD $0x87c89837 // .quad -8662506518347195600 + WORD $0x79dd1877; WORD $0xb454e4a1 // .quad -5452481866653427593 + WORD $0x98c311fc; WORD $0x29babe45 // .quad 3006924907348169212 + WORD $0xd8545e94; WORD $0xe16a1dc9 // .quad -2203916314889396588 + WORD $0xfef3d67b; WORD $0xf4296dd6 // .quad -853029884242176389 + WORD $0x2734bb1d; WORD $0x8ce2529e // .quad -8294976724446954723 + WORD $0x5f58660d; WORD $0x1899e4a6 // .quad 1772699331562333709 + WORD $0xb101e9e4; WORD $0xb01ae745 // .quad -5757034887131305500 + WORD $0xf72e7f90; WORD $0x5ec05dcf // .quad 6827560182880305040 + WORD $0x1d42645d; WORD $0xdc21a117 // .quad -2584607590486743971 + WORD $0xf4fa1f74; WORD $0x76707543 // .quad 8534450228600381300 + WORD $0x72497eba; WORD $0x899504ae // .quad -8532908771695296838 + WORD $0x791c53a9; WORD $0x6a06494a // .quad 7639874402088932265 + WORD $0x0edbde69; WORD $0xabfa45da // .quad -6054449946191733143 + WORD $0x17636893; WORD $0x0487db9d // .quad 326470965756389523 + WORD $0x9292d603; WORD $0xd6f8d750 // .quad -2956376414312278525 + WORD $0x5d3c42b7; WORD $0x45a9d284 // .quad 5019774725622874807 + WORD $0x5b9bc5c2; WORD $0x865b8692 // .quad -8765264286586255934 + WORD $0xba45a9b3; WORD $0x0b8a2392 // .quad 831516194300602803 + WORD $0xf282b732; WORD $0xa7f26836 // .quad -6344894339805432014 + WORD $0x68d7141f; WORD $0x8e6cac77 // .quad -8183976793979022305 + WORD $0xaf2364ff; WORD $0xd1ef0244 // .quad -3319431906329402113 + WORD $0x430cd927; WORD $0x3207d795 // .quad 3605087062808385831 + WORD $0xed761f1f; WORD $0x8335616a // .quad -8992173969096958177 + WORD $0x49e807b9; WORD $0x7f44e6bd // .quad 9170708441896323001 + WORD $0xa8d3a6e7; WORD $0xa402b9c5 // .quad -6628531442943809817 + WORD $0x9c6209a7; WORD $0x5f16206c // .quad 6851699533943015847 + WORD $0x130890a1; WORD $0xcd036837 // .quad -3673978285252374367 + WORD $0xc37a8c10; WORD $0x36dba887 // .quad 3952938399001381904 + WORD $0x6be55a64; WORD $0x80222122 // .quad -9213765455923815836 + WORD $0xda2c978a; WORD $0xc2494954 // .quad -4446942528265218166 + WORD $0x06deb0fd; WORD $0xa02aa96b // .quad -6905520801477381891 + WORD $0x10b7bd6d; WORD $0xf2db9baa // .quad -946992141904134803 + WORD $0xc8965d3d; WORD $0xc83553c5 // .quad -4020214983419339459 + WORD $0x94e5acc8; WORD $0x6f928294 // .quad 8039631859474607304 + WORD $0x3abbf48c; WORD $0xfa42a8b7 // .quad -413582710846786420 + WORD $0xba1f17fa; WORD $0xcb772339 // .quad -3785518230938904582 + WORD $0x84b578d7; WORD $0x9c69a972 // .quad -7176018221920323369 + WORD $0x14536efc; WORD $0xff2a7604 // .quad -60105885123121412 + WORD $0x25e2d70d; WORD $0xc38413cf // .quad -4358336758973016307 + WORD $0x19684abb; WORD $0xfef51385 // .quad -75132356403901765 + WORD $0xef5b8cd1; WORD $0xf46518c2 // .quad -836234930288882479 + WORD $0x5fc25d6a; WORD $0x7eb25866 // .quad 9129456591349898602 + WORD $0xd5993802; WORD $0x98bf2f79 // .quad -7440175859071633406 + WORD $0xfbd97a62; WORD $0xef2f773f // .quad -1211618658047395230 + WORD $0x4aff8603; WORD $0xbeeefb58 // .quad -4688533805412153853 + WORD $0xfacfd8fb; WORD $0xaafb550f // .quad -6126209340986631941 + WORD $0x5dbf6784; WORD $0xeeaaba2e // .quad -1248981238337804412 + WORD $0xf983cf39; WORD $0x95ba2a53 // .quad -7657761676233289927 + WORD $0xfa97a0b2; WORD $0x952ab45c // .quad -7698142301602209614 + WORD $0x7bf26184; WORD $0xdd945a74 // .quad -2480258038432112252 + WORD $0x393d88df; WORD $0xba756174 // .quad -5010991858575374113 + WORD $0x9aeef9e5; WORD $0x94f97111 // .quad -7712008566467528219 + WORD $0x478ceb17; WORD $0xe912b9d1 // .quad -1652053804791829737 + WORD $0x01aab85e; WORD $0x7a37cd56 // .quad 8806733365625141342 + WORD $0xccb812ee; WORD $0x91abb422 // .quad -7950062655635975442 + WORD $0xc10ab33b; WORD $0xac62e055 // .quad -6025006692552756421 + WORD $0x7fe617aa; WORD $0xb616a12b // .quad -5325892301117581398 + WORD $0x314d600a; WORD $0x577b986b // .quad 6303799689591218186 + WORD $0x5fdf9d94; WORD $0xe39c4976 // .quad -2045679357969588844 + WORD $0xfda0b80c; WORD $0xed5a7e85 // .quad -1343622424865753076 + WORD $0xfbebc27d; WORD $0x8e41ade9 // .quad -8196078626372074883 + WORD $0xbe847308; WORD $0x14588f13 // .quad 1466078993672598280 + WORD $0x7ae6b31c; WORD $0xb1d21964 // .quad -5633412264537705700 + WORD $0xae258fc9; WORD $0x596eb2d8 // .quad 6444284760518135753 + WORD $0x99a05fe3; WORD $0xde469fbd // .quad -2430079312244744221 + WORD $0xd9aef3bc; WORD $0x6fca5f8e // .quad 8055355950647669692 + WORD $0x80043bee; WORD $0x8aec23d6 // .quad -8436328597794046994 + WORD $0x480d5855; WORD $0x25de7bb9 // .quad 2728754459941099605 + WORD $0x20054ae9; WORD $0xada72ccc // .quad -5933724728815170839 + WORD $0x9a10ae6b; WORD $0xaf561aa7 // .quad -5812428961928401301 + WORD $0x28069da4; WORD $0xd910f7ff // .quad -2805469892591575644 + WORD $0x8094da05; WORD $0x1b2ba151 // .quad 1957835834444274181 + WORD $0x79042286; WORD $0x87aa9aff // .quad -8670947710510816634 + WORD $0xf05d0843; WORD $0x90fb44d2 // .quad -7999724640327104445 + WORD $0x57452b28; WORD $0xa99541bf // .quad -6226998619711132888 + WORD $0xac744a54; WORD $0x353a1607 // .quad 3835402254873283156 + WORD $0x2d1675f2; WORD $0xd3fa922f // .quad -3172062256211528206 + WORD $0x97915ce9; WORD $0x42889b89 // .quad 4794252818591603945 + WORD $0x7c2e09b7; WORD $0x847c9b5d // .quad -8900067937773286985 + WORD $0xfebada12; WORD $0x69956135 // .quad 7608094030047140370 + WORD $0xdb398c25; WORD $0xa59bc234 // .quad -6513398903789220827 + WORD $0x7e699096; WORD $0x43fab983 // .quad 4898431519131537558 + WORD $0x1207ef2e; WORD $0xcf02b2c2 // .quad -3530062611309138130 + WORD $0x5e03f4bc; WORD $0x94f967e4 // .quad -7712018656367741764 + WORD $0x4b44f57d; WORD $0x8161afb9 // .quad -9123818159709293187 + WORD $0xbac278f6; WORD $0x1d1be0ee // .quad 2097517367411243254 + WORD $0x9e1632dc; WORD $0xa1ba1ba7 // .quad -6793086681209228580 + WORD $0x69731733; WORD $0x6462d92a // .quad 7233582727691441971 + WORD $0x859bbf93; WORD $0xca28a291 // .quad -3879672333084147821 + WORD $0x03cfdcff; WORD $0x7d7b8f75 // .quad 9041978409614302463 + WORD $0xe702af78; WORD $0xfcb2cb35 // .quad -237904397927796872 + WORD $0x44c3d43f; WORD $0x5cda7352 // .quad 6690786993590490175 + WORD $0xb061adab; WORD $0x9defbf01 // .quad -7066219276345954901 + WORD $0x6afa64a8; WORD $0x3a088813 // .quad 4181741870994056360 + WORD $0x1c7a1916; WORD $0xc56baec2 // .quad -4221088077005055722 + WORD $0x45b8fdd1; WORD $0x088aaa18 // .quad 615491320315182545 + WORD $0xa3989f5b; WORD $0xf6c69a72 // .quad -664674077828931749 + WORD $0x57273d46; WORD $0x8aad549e // .quad -8454007886460797626 + WORD $0xa63f6399; WORD $0x9a3c2087 // .quad -7332950326284164199 + WORD $0xf678864c; WORD $0x36ac54e2 // .quad 3939617107816777292 + WORD $0x8fcf3c7f; WORD $0xc0cb28a9 // .quad -4554501889427817345 + WORD $0xb416a7de; WORD $0x84576a1b // .quad -8910536670511192098 + WORD $0xf3c30b9f; WORD $0xf0fdf2d3 // .quad -1081441343357383777 + WORD $0xa11c51d6; WORD $0x656d44a2 // .quad 7308573235570561494 + WORD $0x7859e743; WORD $0x969eb7c4 // .quad -7593429867239446717 + WORD $0xa4b1b326; WORD $0x9f644ae5 // .quad -6961356773836868826 + WORD $0x96706114; WORD $0xbc4665b5 // .quad -4880101315621920492 + WORD $0x0dde1fef; WORD $0x873d5d9f // .quad -8701695967296086033 + WORD $0xfc0c7959; WORD $0xeb57ff22 // .quad -1488440626100012711 + WORD $0xd155a7eb; WORD $0xa90cb506 // .quad -6265433940692719637 + WORD $0xdd87cbd8; WORD $0x9316ff75 // .quad -7847804418953589800 + WORD $0x42d588f3; WORD $0x09a7f124 // .quad 695789805494438131 + WORD $0x54e9bece; WORD $0xb7dcbf53 // .quad -5198069505264599346 + WORD $0x538aeb30; WORD $0x0c11ed6d // .quad 869737256868047664 + WORD $0x2a242e81; WORD $0xe5d3ef28 // .quad -1885900863153361279 + WORD $0xa86da5fb; WORD $0x8f1668c8 // .quad -8136200465769716229 + WORD $0x1a569d10; WORD $0x8fa47579 // .quad -8096217067111932656 + WORD $0x694487bd; WORD $0xf96e017d // .quad -473439272678684739 + WORD $0x60ec4455; WORD $0xb38d92d7 // .quad -5508585315462527915 + WORD $0xc395a9ad; WORD $0x37c981dc // .quad 4019886927579031981 + WORD $0x3927556a; WORD $0xe070f78d // .quad -2274045625900771990 + WORD $0xf47b1418; WORD $0x85bbe253 // .quad -8810199395808373736 + WORD $0x43b89562; WORD $0x8c469ab8 // .quad -8338807543829064350 + WORD $0x78ccec8f; WORD $0x93956d74 // .quad -7812217631593927537 + WORD $0x54a6babb; WORD $0xaf584166 // .quad -5811823411358942533 + WORD $0x970027b3; WORD $0x387ac8d1 // .quad 4069786015789754291 + WORD $0xe9d0696a; WORD $0xdb2e51bf // .quad -2653093245771290262 + WORD $0xfcc0319f; WORD $0x06997b05 // .quad 475546501309804959 + WORD $0xf22241e2; WORD $0x88fcf317 // .quad -8575712306248138270 + WORD $0xbdf81f04; WORD $0x441fece3 // .quad 4908902581746016004 + WORD $0xeeaad25a; WORD $0xab3c2fdd // .quad -6107954364382784934 + WORD $0xad7626c4; WORD $0xd527e81c // .quad -3087243809672255804 + WORD $0x6a5586f1; WORD $0xd60b3bd5 // .quad -3023256937051093263 + WORD $0xd8d3b075; WORD $0x8a71e223 // .quad -8470740780517707659 + WORD $0x62757456; WORD $0x85c70565 // .quad -8807064613298015146 + WORD $0x67844e4a; WORD $0xf6872d56 // .quad -682526969396179382 + WORD $0xbb12d16c; WORD $0xa738c6be // .quad -6397144748195131028 + WORD $0x016561dc; WORD $0xb428f8ac // .quad -5464844730172612132 + WORD $0x69d785c7; WORD $0xd106f86e // .quad -3384744916816525881 + WORD $0x01beba53; WORD $0xe13336d7 // .quad -2219369894288377261 + WORD $0x0226b39c; WORD $0x82a45b45 // .quad -9032994600651410532 + WORD $0x61173474; WORD $0xecc00246 // .quad -1387106183930235788 + WORD $0x42b06084; WORD $0xa34d7216 // .quad -6679557232386875260 + WORD $0xf95d0191; WORD $0x27f002d7 // .quad 2877803288514593169 + WORD $0xd35c78a5; WORD $0xcc20ce9b // .quad -3737760522056206171 + WORD $0xf7b441f5; WORD $0x31ec038d // .quad 3597254110643241461 + WORD $0xc83396ce; WORD $0xff290242 // .quad -60514634142869810 + WORD $0x75a15272; WORD $0x7e670471 // .quad 9108253656731439730 + WORD $0xbd203e41; WORD $0x9f79a169 // .quad -6955350673980375487 + WORD $0xe984d387; WORD $0x0f0062c6 // .quad 1080972517029761927 + WORD $0x2c684dd1; WORD $0xc75809c4 // .quad -4082502324048081455 + WORD $0xa3e60869; WORD $0x52c07b78 // .quad 5962901664714590313 + WORD $0x37826145; WORD $0xf92e0c35 // .quad -491441886632713915 + WORD $0xccdf8a83; WORD $0xa7709a56 // .quad -6381430974388925821 + WORD $0x42b17ccb; WORD $0x9bbcc7a1 // .quad -7224680206786528053 + WORD $0x400bb692; WORD $0x88a66076 // .quad -8600080377420466542 + WORD $0x935ddbfe; WORD $0xc2abf989 // .quad -4419164240055772162 + WORD $0xd00ea436; WORD $0x6acff893 // .quad 7696643601933968438 + WORD $0xf83552fe; WORD $0xf356f7eb // .quad -912269281642327298 + WORD $0xc4124d44; WORD $0x0583f6b8 // .quad 397432465562684740 + WORD $0x7b2153de; WORD $0x98165af3 // .quad -7487697328667536418 + WORD $0x7a8b704b; WORD $0xc3727a33 // .quad -4363290727450709941 + WORD $0x59e9a8d6; WORD $0xbe1bf1b0 // .quad -4747935642407032618 + WORD $0x592e4c5d; WORD $0x744f18c0 // .quad 8380944645968776285 + WORD $0x7064130c; WORD $0xeda2ee1c // .quad -1323233534581402868 + WORD $0x6f79df74; WORD $0x1162def0 // .quad 1252808770606194548 + WORD $0xc63e8be7; WORD $0x9485d4d1 // .quad -7744549986754458649 + WORD $0x45ac2ba9; WORD $0x8addcb56 // .quad -8440366555225904215 + WORD $0x37ce2ee1; WORD $0xb9a74a06 // .quad -5069001465015685407 + WORD $0xd7173693; WORD $0x6d953e2b // .quad 7896285879677171347 + WORD $0xc5c1ba99; WORD $0xe8111c87 // .quad -1724565812842218855 + WORD $0xccdd0438; WORD $0xc8fa8db6 // .quad -3964700705685699528 + WORD $0xdb9914a0; WORD $0x910ab1d4 // .quad -7995382660667468640 + WORD $0x400a22a3; WORD $0x1d9c9892 // .quad 2133748077373825699 + WORD $0x127f59c8; WORD $0xb54d5e4a // .quad -5382542307406947896 + WORD $0xd00cab4c; WORD $0x2503beb6 // .quad 2667185096717282124 + WORD $0x971f303a; WORD $0xe2a0b5dc // .quad -2116491865831296966 + WORD $0x840fd61e; WORD $0x2e44ae64 // .quad 3333981370896602654 + WORD $0xde737e24; WORD $0x8da471a9 // .quad -8240336443785642460 + WORD $0xd289e5d3; WORD $0x5ceaecfe // .quad 6695424375237764563 + WORD $0x56105dad; WORD $0xb10d8e14 // .quad -5688734536304665171 + WORD $0x872c5f48; WORD $0x7425a83e // .quad 8369280469047205704 + WORD $0x6b947518; WORD $0xdd50f199 // .quad -2499232151953443560 + WORD $0x28f7771a; WORD $0xd12f124e // .quad -3373457468973156582 + WORD $0xe33cc92f; WORD $0x8a5296ff // .quad -8479549122611984081 + WORD $0xd99aaa70; WORD $0x82bd6b70 // .quad -9025939945749304720 + WORD $0xdc0bfb7b; WORD $0xace73cbf // .quad -5987750384837592197 + WORD $0x1001550c; WORD $0x636cc64d // .quad 7164319141522920716 + WORD $0xd30efa5a; WORD $0xd8210bef // .quad -2873001962619602342 + WORD $0x5401aa4f; WORD $0x3c47f7e0 // .quad 4343712908476262991 + WORD $0xe3e95c78; WORD $0x8714a775 // .quad -8713155254278333320 + WORD $0x34810a72; WORD $0x65acfaec // .quad 7326506586225052274 + WORD $0x5ce3b396; WORD $0xa8d9d153 // .quad -6279758049420528746 + WORD $0x41a14d0e; WORD $0x7f1839a7 // .quad 9158133232781315342 + WORD $0x341ca07c; WORD $0xd31045a8 // .quad -3238011543348273028 + WORD $0x1209a051; WORD $0x1ede4811 // .quad 2224294504121868369 + WORD $0x2091e44d; WORD $0x83ea2b89 // .quad -8941286242233752499 + WORD $0xab460433; WORD $0x934aed0a // .quad -7833187971778608077 + WORD $0x68b65d60; WORD $0xa4e4b66b // .quad -6564921784364802720 + WORD $0x56178540; WORD $0xf81da84d // .quad -568112927868484288 + WORD $0x42e3f4b9; WORD $0xce1de406 // .quad -3594466212028615495 + WORD $0xab9d668f; WORD $0x36251260 // .quad 3901544858591782543 + WORD $0xe9ce78f3; WORD $0x80d2ae83 // .quad -9164070410158966541 + WORD $0x6b42601a; WORD $0xc1d72b7c // .quad -4479063491021217766 + WORD $0xe4421730; WORD $0xa1075a24 // .quad -6843401994271320272 + WORD $0x8612f820; WORD $0xb24cf65b // .quad -5598829363776522208 + WORD $0x1d529cfc; WORD $0xc94930ae // .quad -3942566474411762436 + WORD $0x6797b628; WORD $0xdee033f2 // .quad -2386850686293264856 + WORD $0xa4a7443c; WORD $0xfb9b7cd9 // .quad -316522074587315140 + WORD $0x017da3b2; WORD $0x169840ef // .quad 1628122660560806834 + WORD $0x06e88aa5; WORD $0x9d412e08 // .quad -7115355324258153819 + WORD $0x60ee864f; WORD $0x8e1f2895 // .quad -8205795374004271537 + WORD $0x08a2ad4e; WORD $0xc491798a // .quad -4282508136895304370 + WORD $0xb92a27e3; WORD $0xf1a6f2ba // .quad -1033872180650563613 + WORD $0x8acb58a2; WORD $0xf5b5d7ec // .quad -741449152691742558 + WORD $0x6774b1dc; WORD $0xae10af69 // .quad -5904026244240592420 + WORD $0xd6bf1765; WORD $0x9991a6f3 // .quad -7380934748073420955 + WORD $0xe0a8ef2a; WORD $0xacca6da1 // .quad -5995859411864064214 + WORD $0xcc6edd3f; WORD $0xbff610b0 // .quad -4614482416664388289 + WORD $0x58d32af4; WORD $0x17fd090a // .quad 1728547772024695540 + WORD $0xff8a948e; WORD $0xeff394dc // .quad -1156417002403097458 + WORD $0xef07f5b1; WORD $0xddfc4b4c // .quad -2451001303396518479 + WORD $0x1fb69cd9; WORD $0x95f83d0a // .quad -7640289654143017767 + WORD $0x1564f98f; WORD $0x4abdaf10 // .quad 5385653213018257807 + WORD $0xa7a4440f; WORD $0xbb764c4c // .quad -4938676049251384305 + WORD $0x1abe37f2; WORD $0x9d6d1ad4 // .quad -7102991539009341454 + WORD $0xd18d5513; WORD $0xea53df5f // .quad -1561659043136842477 + WORD $0x216dc5ee; WORD $0x84c86189 // .quad -8878739423761676818 + WORD $0xe2f8552c; WORD $0x92746b9b // .quad -7893565929601608404 + WORD $0xb4e49bb5; WORD $0x32fd3cf5 // .quad 3674159897003727797 + WORD $0xdbb66a77; WORD $0xb7118682 // .quad -5255271393574622601 + WORD $0x221dc2a2; WORD $0x3fbc8c33 // .quad 4592699871254659746 + WORD $0x92a40515; WORD $0xe4d5e823 // .quad -1957403223540890347 + WORD $0xeaa5334b; WORD $0x0fabaf3f // .quad 1129188820640936779 + WORD $0x3ba6832d; WORD $0x8f05b116 // .quad -8140906042354138323 + WORD $0xf2a7400f; WORD $0x29cb4d87 // .quad 3011586022114279439 + WORD $0xca9023f8; WORD $0xb2c71d5b // .quad -5564446534515285000 + WORD $0xef511013; WORD $0x743e20e9 // .quad 8376168546070237203 + WORD $0xbd342cf6; WORD $0xdf78e4b2 // .quad -2343872149716718346 + WORD $0x6b255417; WORD $0x914da924 // .quad -7976533391121755113 + WORD $0xb6409c1a; WORD $0x8bab8eef // .quad -8382449121214030822 + WORD $0xc2f7548f; WORD $0x1ad089b6 // .quad 1932195658189984911 + WORD $0xa3d0c320; WORD $0xae9672ab // .quad -5866375383090150624 + WORD $0x73b529b2; WORD $0xa184ac24 // .quad -6808127464117294670 + WORD $0x8cc4f3e8; WORD $0xda3c0f56 // .quad -2721283210435300376 + WORD $0x90a2741f; WORD $0xc9e5d72d // .quad -3898473311719230433 + WORD $0x17fb1871; WORD $0x88658996 // .quad -8618331034163144591 + WORD $0x7a658893; WORD $0x7e2fa67c // .quad 9092669226243950739 + WORD $0x9df9de8d; WORD $0xaa7eebfb // .quad -6161227774276542835 + WORD $0x98feeab8; WORD $0xddbb901b // .quad -2469221522477225288 + WORD $0x85785631; WORD $0xd51ea6fa // .quad -3089848699418290639 + WORD $0x7f3ea566; WORD $0x552a7422 // .quad 6136845133758244198 + WORD $0x936b35de; WORD $0x8533285c // .quad -8848684464777513506 + WORD $0x8f872760; WORD $0xd53a8895 // .quad -3082000819042179232 + WORD $0xb8460356; WORD $0xa67ff273 // .quad -6449169562544503978 + WORD $0xf368f138; WORD $0x8a892aba // .quad -8464187042230111944 + WORD $0xa657842c; WORD $0xd01fef10 // .quad -3449775934753242068 + WORD $0xb0432d86; WORD $0x2d2b7569 // .quad 3254824252494523782 + WORD $0x67f6b29b; WORD $0x8213f56a // .quad -9073638986861858149 + WORD $0x0e29fc74; WORD $0x9c3b2962 // .quad -7189106879045698444 + WORD $0x01f45f42; WORD $0xa298f2c5 // .quad -6730362715149934782 + WORD $0x91b47b90; WORD $0x8349f3ba // .quad -8986383598807123056 + WORD $0x42717713; WORD $0xcb3f2f76 // .quad -3801267375510030573 + WORD $0x36219a74; WORD $0x241c70a9 // .quad 2602078556773259892 + WORD $0xd30dd4d7; WORD $0xfe0efb53 // .quad -139898200960150313 + WORD $0x83aa0111; WORD $0xed238cd3 // .quad -1359087822460813039 + WORD $0x63e8a506; WORD $0x9ec95d14 // .quad -7004965403241175802 + WORD $0x324a40ab; WORD $0xf4363804 // .quad -849429889038008149 + WORD $0x7ce2ce48; WORD $0xc67bb459 // .quad -4144520735624081848 + WORD $0x3edcd0d6; WORD $0xb143c605 // .quad -5673473379724898090 + WORD $0xdc1b81da; WORD $0xf81aa16f // .quad -568964901102714406 + WORD $0x8e94050b; WORD $0xdd94b786 // .quad -2480155706228734709 + WORD $0xe9913128; WORD $0x9b10a4e5 // .quad -7273132090830278360 + WORD $0x191c8327; WORD $0xca7cf2b4 // .quad -3855940325606653145 + WORD $0x63f57d72; WORD $0xc1d4ce1f // .quad -4479729095110460046 + WORD $0x1f63a3f1; WORD $0xfd1c2f61 // .quad -208239388580928527 + WORD $0x3cf2dccf; WORD $0xf24a01a7 // .quad -987975350460687153 + WORD $0x673c8ced; WORD $0xbc633b39 // .quad -4871985254153548563 + WORD $0x8617ca01; WORD $0x976e4108 // .quad -7535013621679011327 + WORD $0xe085d814; WORD $0xd5be0503 // .quad -3044990783845967852 + WORD $0xa79dbc82; WORD $0xbd49d14a // .quad -4807081008671376254 + WORD $0xd8a74e19; WORD $0x4b2d8644 // .quad 5417133557047315993 + WORD $0x51852ba2; WORD $0xec9c459d // .quad -1397165242411832414 + WORD $0x0ed1219f; WORD $0xddf8e7d6 // .quad -2451955090545630817 + WORD $0x52f33b45; WORD $0x93e1ab82 // .quad -7790757304148477115 + WORD $0xc942b504; WORD $0xcabb90e5 // .quad -3838314940804713212 + WORD $0xe7b00a17; WORD $0xb8da1662 // .quad -5126760611758208489 + WORD $0x3b936244; WORD $0x3d6a751f // .quad 4425478360848884292 + WORD $0xa19c0c9d; WORD $0xe7109bfb // .quad -1796764746270372707 + WORD $0x0a783ad5; WORD $0x0cc51267 // .quad 920161932633717461 + WORD $0x450187e2; WORD $0x906a617d // .quad -8040506994060064798 + WORD $0x668b24c6; WORD $0x27fb2b80 // .quad 2880944217109767366 + WORD $0x9641e9da; WORD $0xb484f9dc // .quad -5438947724147693094 + WORD $0x802dedf7; WORD $0xb1f9f660 // .quad -5622191765467566601 + WORD $0xbbd26451; WORD $0xe1a63853 // .quad -2186998636757228463 + WORD $0xa0396974; WORD $0x5e7873f8 // .quad 6807318348447705460 + WORD $0x55637eb2; WORD $0x8d07e334 // .quad -8284403175614349646 + WORD $0x6423e1e9; WORD $0xdb0b487b // .quad -2662955059861265943 + WORD $0x6abc5e5f; WORD $0xb049dc01 // .quad -5743817951090549153 + WORD $0x3d2cda63; WORD $0x91ce1a9a // .quad -7940379843253970333 + WORD $0xc56b75f7; WORD $0xdc5c5301 // .quad -2568086420435798537 + WORD $0xcc7810fc; WORD $0x7641a140 // .quad 8521269269642088700 + WORD $0x1b6329ba; WORD $0x89b9b3e1 // .quad -8522583040413455942 + WORD $0x7fcb0a9e; WORD $0xa9e904c8 // .quad -6203421752542164322 + WORD $0x623bf429; WORD $0xac2820d9 // .quad -6041542782089432023 + WORD $0x9fbdcd45; WORD $0x546345fa // .quad 6080780864604458309 + WORD $0xbacaf133; WORD $0xd732290f // .quad -2940242459184402125 + WORD $0x47ad4096; WORD $0xa97c1779 // .quad -6234081974526590826 + WORD $0xd4bed6c0; WORD $0x867f59a9 // .quad -8755180564631333184 + WORD $0xcccc485e; WORD $0x49ed8eab // .quad 5327070802775656542 + WORD $0x49ee8c70; WORD $0xa81f3014 // .quad -6332289687361778576 + WORD $0xbfff5a75; WORD $0x5c68f256 // .quad 6658838503469570677 + WORD $0x5c6a2f8c; WORD $0xd226fc19 // .quad -3303676090774835316 + WORD $0x6fff3112; WORD $0x73832eec // .quad 8323548129336963346 + WORD $0xd9c25db7; WORD $0x83585d8f // .quad -8982326584375353929 + WORD $0xc5ff7eac; WORD $0xc831fd53 // .quad -4021154456019173716 + WORD $0xd032f525; WORD $0xa42e74f3 // .quad -6616222212041804507 + WORD $0xb77f5e56; WORD $0xba3e7ca8 // .quad -5026443070023967146 + WORD $0xc43fb26f; WORD $0xcd3a1230 // .quad -3658591746624867729 + WORD $0xe55f35ec; WORD $0x28ce1bd2 // .quad 2940318199324816876 + WORD $0x7aa7cf85; WORD $0x80444b5e // .quad -9204148869281624187 + WORD $0xcf5b81b4; WORD $0x7980d163 // .quad 8755227902219092404 + WORD $0x1951c366; WORD $0xa0555e36 // .quad -6893500068174642330 + WORD $0xc3326220; WORD $0xd7e105bc // .quad -2891023177508298208 + WORD $0x9fa63440; WORD $0xc86ab5c3 // .quad -4005189066790915008 + WORD $0xf3fefaa8; WORD $0x8dd9472b // .quad -8225464990312760664 + WORD $0x878fc150; WORD $0xfa856334 // .quad -394800315061255856 + WORD $0xf0feb952; WORD $0xb14f98f6 // .quad -5670145219463562926 + WORD $0xd4b9d8d2; WORD $0x9c935e00 // .quad -7164279224554366766 + WORD $0x569f33d4; WORD $0x6ed1bf9a // .quad 7985374283903742932 + WORD $0x09e84f07; WORD $0xc3b83581 // .quad -4343663012265570553 + WORD $0xec4700c9; WORD $0x0a862f80 // .quad 758345818024902857 + WORD $0x4c6262c8; WORD $0xf4a642e1 // .quad -817892746904575288 + WORD $0x2758c0fb; WORD $0xcd27bb61 // .quad -3663753745896259333 + WORD $0xcfbd7dbd; WORD $0x98e7e9cc // .quad -7428711994456441411 + WORD $0xb897789d; WORD $0x8038d51c // .quad -9207375118826243939 + WORD $0x03acdd2c; WORD $0xbf21e440 // .quad -4674203974643163860 + WORD $0xe6bd56c4; WORD $0xe0470a63 // .quad -2285846861678029116 + WORD $0x04981478; WORD $0xeeea5d50 // .quad -1231068949876566920 + WORD $0xe06cac75; WORD $0x1858ccfc // .quad 1754377441329851509 + WORD $0x02df0ccb; WORD $0x95527a52 // .quad -7686947121313936181 + WORD $0x0c43ebc9; WORD $0x0f37801e // .quad 1096485900831157193 + WORD $0x8396cffd; WORD $0xbaa718e6 // .quad -4996997883215032323 + WORD $0x8f54e6bb; WORD $0xd3056025 // .quad -3241078642388441413 + WORD $0x247c83fd; WORD $0xe950df20 // .quad -1634561335591402499 + WORD $0xf32a206a; WORD $0x47c6b82e // .quad 5172023733869224042 + WORD $0x16cdd27e; WORD $0x91d28b74 // .quad -7939129862385708418 + WORD $0x57fa5442; WORD $0x4cdc331d // .quad 5538357842881958978 + WORD $0x1c81471d; WORD $0xb6472e51 // .quad -5312226309554747619 + WORD $0xadf8e953; WORD $0xe0133fe4 // .quad -2300424733252327085 + WORD $0x63a198e5; WORD $0xe3d8f9e5 // .quad -2028596868516046619 + WORD $0xd97723a7; WORD $0x58180fdd // .quad 6347841120289366951 + WORD $0x5e44ff8f; WORD $0x8e679c2f // .quad -8185402070463610993 + WORD $0xa7ea7649; WORD $0x570f09ea // .quad 6273243709394548297 + WORD $0x35d63f73; WORD $0xb201833b // .quad -5620066569652125837 + WORD $0x51e513db; WORD $0x2cd2cc65 // .quad 3229868618315797467 + WORD $0x034bcf4f; WORD $0xde81e40a // .quad -2413397193637769393 + WORD $0xa65e58d2; WORD $0xf8077f7e // .quad -574350245532641070 + WORD $0x420f6191; WORD $0x8b112e86 // .quad -8425902273664687727 + WORD $0x27faf783; WORD $0xfb04afaf // .quad -358968903457900669 + WORD $0xd29339f6; WORD $0xadd57a27 // .quad -5920691823653471754 + WORD $0xf1f9b564; WORD $0x79c5db9a // .quad 8774660907532399972 + WORD $0xc7380874; WORD $0xd94ad8b1 // .quad -2789178761139451788 + WORD $0xae7822bd; WORD $0x18375281 // .quad 1744954097560724157 + WORD $0x1c830548; WORD $0x87cec76f // .quad -8660765753353239224 + WORD $0x0d0b15b6; WORD $0x8f229391 // .quad -8132775725879323210 + WORD $0xe3a3c69a; WORD $0xa9c2794a // .quad -6214271173264161126 + WORD $0x504ddb23; WORD $0xb2eb3875 // .quad -5554283638921766109 + WORD $0x9c8cb841; WORD $0xd433179d // .quad -3156152948152813503 + WORD $0xa46151ec; WORD $0x5fa60692 // .quad 6892203506629956076 + WORD $0x81d7f328; WORD $0x849feec2 // .quad -8890124620236590296 + WORD $0xa6bcd334; WORD $0xdbc7c41b // .quad -2609901835997359308 + WORD $0x224deff3; WORD $0xa5c7ea73 // .quad -6500969756868349965 + WORD $0x906c0801; WORD $0x12b9b522 // .quad 1349308723430688769 + WORD $0xeae16bef; WORD $0xcf39e50f // .quad -3514526177658049553 + WORD $0x34870a01; WORD $0xd768226b // .quad -2925050114139026943 + WORD $0xf2cce375; WORD $0x81842f29 // .quad -9114107888677362827 + WORD $0x00d46641; WORD $0xe6a11583 // .quad -1828156321336891839 + WORD $0x6f801c53; WORD $0xa1e53af4 // .quad -6780948842419315629 + WORD $0xc1097fd1; WORD $0x60495ae3 // .quad 6938176635183661009 + WORD $0x8b602368; WORD $0xca5e89b1 // .quad -3864500034596756632 + WORD $0xb14bdfc5; WORD $0x385bb19c // .quad 4061034775552188357 + WORD $0xee382c42; WORD $0xfcf62c1d // .quad -218939024818557886 + WORD $0xdd9ed7b6; WORD $0x46729e03 // .quad 5076293469440235446 + WORD $0xb4e31ba9; WORD $0x9e19db92 // .quad -7054365918152680535 + WORD $0x6a8346d2; WORD $0x6c07a2c2 // .quad 7784369436827535058 + +TEXT ·__f64toa(SB), NOSPLIT, $0-24 + NO_LOCAL_POINTERS + +_entry: + MOVD 16(g), R16 + SUB $96, RSP, R17 + CMP R16, R17 + BLS _stack_grow + +_f64toa: + MOVD out+0(FP), R0 + FMOVD val+8(FP), F0 + MOVD ·_subr__f64toa(SB), R11 + WORD $0x1000005e // adr x30, .+8 + JMP (R11) + MOVD R0, ret+16(FP) + RET + +_stack_grow: + MOVD R30, R3 + CALL runtime·morestack_noctxt<>(SB) + JMP _entry diff --git a/vendor/github.com/bytedance/sonic/internal/native/neon/f64toa_subr_arm64.go b/vendor/github.com/bytedance/sonic/internal/native/neon/f64toa_subr_arm64.go new file mode 100644 index 000000000..e09d800c9 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/neon/f64toa_subr_arm64.go @@ -0,0 +1,25 @@ +// +build !noasm !appengine +// Code generated by asm2asm, DO NOT EDIT. + +package neon + +//go:nosplit +//go:noescape +//goland:noinspection ALL +func __f64toa_entry__() uintptr + +var ( + _subr__f64toa uintptr = __f64toa_entry__() + 0 +) + +const ( + _stack__f64toa = 32 +) + +var ( + _ = _subr__f64toa +) + +const ( + _ = _stack__f64toa +) diff --git a/vendor/github.com/bytedance/sonic/internal/native/neon/get_by_path_arm64.go b/vendor/github.com/bytedance/sonic/internal/native/neon/get_by_path_arm64.go new file mode 100644 index 000000000..691a73e3d --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/neon/get_by_path_arm64.go @@ -0,0 +1,35 @@ +// Code generated by Makefile, DO NOT EDIT. + +// Code generated by Makefile, DO NOT EDIT. + +/* + * Copyright 2021 ByteDance 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 neon + +import ( + `github.com/bytedance/sonic/internal/native/types` +) + +//go:nosplit +func get_by_path(s *string, p *int, path *[]interface{}, m *types.StateMachine) (ret int) { + return __get_by_path(s, p, path, m) +} + +//go:nosplit +//go:noescape +//goland:noinspection GoUnusedParameter +func __get_by_path(s *string, p *int, path *[]interface{}, m *types.StateMachine) (ret int) diff --git a/vendor/github.com/bytedance/sonic/internal/native/neon/get_by_path_arm64.s b/vendor/github.com/bytedance/sonic/internal/native/neon/get_by_path_arm64.s new file mode 100644 index 000000000..93c226cd7 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/neon/get_by_path_arm64.s @@ -0,0 +1,4579 @@ +// +build !noasm !appengine +// Code generated by asm2asm, DO NOT EDIT. + +#include "go_asm.h" +#include "funcdata.h" +#include "textflag.h" + +TEXT ·__get_by_path_entry__(SB), NOSPLIT, $192 + NO_LOCAL_POINTERS + WORD $0x100000a0 // adr x0, .+20 + MOVD R0, ret(FP) + RET + // .p2align 4, 0x00 +lCPI0_0: + WORD $0x08040201 + WORD $0x80402010 + WORD $0x08040201 + WORD $0x80402010 + // // .byte 1 +// .byte 2 +// .byte 4 +// .byte 8 +// .byte 16 +// .byte 32 +// .byte 64 +// .byte 128 +// .byte 1 +// .byte 2 +// .byte 4 +// .byte 8 +// .byte 16 +// .byte 32 +// .byte 64 +// .byte 128 + +lCPI0_1: + WORD $0x09010800 + WORD $0x0b030a02 + WORD $0x0d050c04 + WORD $0x0f070e06 + // // .byte 0 +// .byte 8 +// .byte 1 +// .byte 9 +// .byte 2 +// .byte 10 +// .byte 3 +// .byte 11 +// .byte 4 +// .byte 12 +// .byte 5 +// .byte 13 +// .byte 6 +// .byte 14 +// .byte 7 +// .byte 15 + +lCPI0_2: + WORD $0x00000001; WORD $0x00000000 // .quad 1 + WORD $0x00000000; WORD $0x00000000 // .quad 0 + // .p2align 2, 0x00 +_get_by_path: + WORD $0xd10343ff // sub sp, sp, #208 + WORD $0xa906effc // stp x28, x27, [sp, #104] + WORD $0xa907e7fa // stp x26, x25, [sp, #120] + WORD $0xa908dff8 // stp x24, x23, [sp, #136] + WORD $0xa909d7f6 // stp x22, x21, [sp, #152] + WORD $0xa90acff4 // stp x20, x19, [sp, #168] + WORD $0xa90bfbfd // stp fp, lr, [sp, #184] + WORD $0xa93ffbfd // stp fp, lr, [sp, #-8] + WORD $0xd10023fd // sub fp, sp, #8 + WORD $0xf9400448 // ldr x8, [x2, #8] + WORD $0xf9400033 // ldr x19, [x1] + WORD $0x10fffd29 // adr x9, lCPI0_0 $-92(%rip) + WORD $0x10fffd87 // adr x7, lCPI0_1 $-80(%rip) + WORD $0xb4013b48 // cbz x8, LBB0_489 $10088(%rip) + WORD $0xf940004b // ldr x11, [x2] + WORD $0x8b081171 // add x17, x11, x8, lsl #4 + WORD $0x910083e8 // add x8, sp, #32 + WORD $0x91008102 // add x2, x8, #32 + WORD $0x5280002e // mov w14, #1 + WORD $0xd284c00f // mov x15, #9728 + WORD $0xf2c0002f // movk x15, #1, lsl #32 + WORD $0x3200f3e6 // mov w6, #1431655765 + WORD $0x3201f3fe // mov w30, #-1431655766 + WORD $0x4f01e440 // movi.16b v0, #34 + WORD $0x3dc00121 // ldr q1, [x9, lCPI0_0@PAGEOFF] $0(%rip) + WORD $0x3dc000e2 // ldr q2, [x7, lCPI0_1@PAGEOFF] $0(%rip) + WORD $0x4f02e783 // movi.16b v3, #92 + WORD $0x4f01e584 // movi.16b v4, #44 + WORD $0x4f06e7e5 // movi.16b v5, #223 + WORD $0x4f02e7a6 // movi.16b v6, #93 + WORD $0x529ffff4 // mov w20, #65535 + WORD $0x4f02e767 // movi.16b v7, #91 + WORD $0x6f00e410 // movi.2d v16, #0000000000000000 + WORD $0x4f03e771 // movi.16b v17, #123 + WORD $0x4f03e7b2 // movi.16b v18, #125 +Lloh0: + WORD $0x1001edaa // adr x10, __UnquoteTab $15796(%rip) +Lloh1: + WORD $0x9100014a // add x10, x10, __UnquoteTab@PAGEOFF $0(%rip) +LBB0_2: + WORD $0xa9402016 // ldp x22, x8, [x0] + WORD $0xeb08027f // cmp x19, x8 + WORD $0x54000162 // b.hs LBB0_7 $44(%rip) + WORD $0x38736ad0 // ldrb w16, [x22, x19] + WORD $0x7100361f // cmp w16, #13 + WORD $0x54000100 // b.eq LBB0_7 $32(%rip) + WORD $0x7100821f // cmp w16, #32 + WORD $0x540000c0 // b.eq LBB0_7 $24(%rip) + WORD $0x51002e10 // sub w16, w16, #11 + WORD $0x31000a1f // cmn w16, #2 + WORD $0x54000062 // b.hs LBB0_7 $12(%rip) + WORD $0xaa1303f9 // mov x25, x19 + WORD $0x1400003a // b LBB0_25 $232(%rip) +LBB0_7: + WORD $0x91000679 // add x25, x19, #1 + WORD $0xeb08033f // cmp x25, x8 + WORD $0x54000122 // b.hs LBB0_11 $36(%rip) + WORD $0x38796ad0 // ldrb w16, [x22, x25] + WORD $0x7100361f // cmp w16, #13 + WORD $0x540000c0 // b.eq LBB0_11 $24(%rip) + WORD $0x7100821f // cmp w16, #32 + WORD $0x54000080 // b.eq LBB0_11 $16(%rip) + WORD $0x51002e10 // sub w16, w16, #11 + WORD $0x31000a1f // cmn w16, #2 + WORD $0x540005e3 // b.lo LBB0_25 $188(%rip) +LBB0_11: + WORD $0x91000a79 // add x25, x19, #2 + WORD $0xeb08033f // cmp x25, x8 + WORD $0x54000122 // b.hs LBB0_15 $36(%rip) + WORD $0x38796ad0 // ldrb w16, [x22, x25] + WORD $0x7100361f // cmp w16, #13 + WORD $0x540000c0 // b.eq LBB0_15 $24(%rip) + WORD $0x7100821f // cmp w16, #32 + WORD $0x54000080 // b.eq LBB0_15 $16(%rip) + WORD $0x51002e10 // sub w16, w16, #11 + WORD $0x31000a1f // cmn w16, #2 + WORD $0x54000483 // b.lo LBB0_25 $144(%rip) +LBB0_15: + WORD $0x91000e79 // add x25, x19, #3 + WORD $0xeb08033f // cmp x25, x8 + WORD $0x54000122 // b.hs LBB0_19 $36(%rip) + WORD $0x38796ad0 // ldrb w16, [x22, x25] + WORD $0x7100361f // cmp w16, #13 + WORD $0x540000c0 // b.eq LBB0_19 $24(%rip) + WORD $0x7100821f // cmp w16, #32 + WORD $0x54000080 // b.eq LBB0_19 $16(%rip) + WORD $0x51002e10 // sub w16, w16, #11 + WORD $0x31000a1f // cmn w16, #2 + WORD $0x54000323 // b.lo LBB0_25 $100(%rip) +LBB0_19: + WORD $0x91001279 // add x25, x19, #4 + WORD $0xeb08033f // cmp x25, x8 + WORD $0x540001e2 // b.hs LBB0_23 $60(%rip) +LBB0_20: + WORD $0x38796ad0 // ldrb w16, [x22, x25] + WORD $0x7100821f // cmp w16, #32 + WORD $0x9ad021d0 // lsl x16, x14, x16 + WORD $0x8a0f0210 // and x16, x16, x15 + WORD $0xfa409a04 // ccmp x16, #0, #4, ls + WORD $0x540001c0 // b.eq LBB0_24 $56(%rip) + WORD $0x91000739 // add x25, x25, #1 + WORD $0xeb19011f // cmp x8, x25 + WORD $0x54ffff01 // b.ne LBB0_20 $-32(%rip) +LBB0_22: + WORD $0x52800008 // mov w8, #0 + WORD $0xaa1303f9 // mov x25, x19 + WORD $0xf9400170 // ldr x16, [x11] + WORD $0xb50001f0 // cbnz x16, LBB0_26 $60(%rip) + WORD $0x14000e9f // b LBB0_768 $14972(%rip) +LBB0_23: + WORD $0x52800008 // mov w8, #0 + WORD $0xf9000039 // str x25, [x1] + WORD $0xf9400170 // ldr x16, [x11] + WORD $0xb5000150 // cbnz x16, LBB0_26 $40(%rip) + WORD $0x14000e9a // b LBB0_768 $14952(%rip) +LBB0_24: + WORD $0xeb08033f // cmp x25, x8 + WORD $0x54fffea2 // b.hs LBB0_22 $-44(%rip) +LBB0_25: + WORD $0x91000730 // add x16, x25, #1 + WORD $0xf9000030 // str x16, [x1] + WORD $0x38796ac8 // ldrb w8, [x22, x25] + WORD $0xaa1003f9 // mov x25, x16 + WORD $0xf9400170 // ldr x16, [x11] + WORD $0xb401d250 // cbz x16, LBB0_768 $14920(%rip) +LBB0_26: + WORD $0x39405e10 // ldrb w16, [x16, #23] + WORD $0x12001210 // and w16, w16, #0x1f + WORD $0x71000a1f // cmp w16, #2 + WORD $0x5400bae0 // b.eq LBB0_315 $5980(%rip) + WORD $0x7100621f // cmp w16, #24 + WORD $0x5401d181 // b.ne LBB0_768 $14896(%rip) + WORD $0x7101ed1f // cmp w8, #123 + WORD $0x5401d361 // b.ne LBB0_775 $14956(%rip) +LBB0_29: + WORD $0xf9400405 // ldr x5, [x0, #8] + WORD $0xeb05033f // cmp x25, x5 + WORD $0x54000162 // b.hs LBB0_34 $44(%rip) + WORD $0x38796ac8 // ldrb w8, [x22, x25] + WORD $0x7100351f // cmp w8, #13 + WORD $0x54000100 // b.eq LBB0_34 $32(%rip) + WORD $0x7100811f // cmp w8, #32 + WORD $0x540000c0 // b.eq LBB0_34 $24(%rip) + WORD $0x51002d08 // sub w8, w8, #11 + WORD $0x3100091f // cmn w8, #2 + WORD $0x54000062 // b.hs LBB0_34 $12(%rip) + WORD $0xaa1903e8 // mov x8, x25 + WORD $0x14000031 // b LBB0_50 $196(%rip) +LBB0_34: + WORD $0x91000728 // add x8, x25, #1 + WORD $0xeb05011f // cmp x8, x5 + WORD $0x54000122 // b.hs LBB0_38 $36(%rip) + WORD $0x38686ad0 // ldrb w16, [x22, x8] + WORD $0x7100361f // cmp w16, #13 + WORD $0x540000c0 // b.eq LBB0_38 $24(%rip) + WORD $0x7100821f // cmp w16, #32 + WORD $0x54000080 // b.eq LBB0_38 $16(%rip) + WORD $0x51002e10 // sub w16, w16, #11 + WORD $0x31000a1f // cmn w16, #2 + WORD $0x540004c3 // b.lo LBB0_50 $152(%rip) +LBB0_38: + WORD $0x91000b28 // add x8, x25, #2 + WORD $0xeb05011f // cmp x8, x5 + WORD $0x54000122 // b.hs LBB0_42 $36(%rip) + WORD $0x38686ad0 // ldrb w16, [x22, x8] + WORD $0x7100361f // cmp w16, #13 + WORD $0x540000c0 // b.eq LBB0_42 $24(%rip) + WORD $0x7100821f // cmp w16, #32 + WORD $0x54000080 // b.eq LBB0_42 $16(%rip) + WORD $0x51002e10 // sub w16, w16, #11 + WORD $0x31000a1f // cmn w16, #2 + WORD $0x54000363 // b.lo LBB0_50 $108(%rip) +LBB0_42: + WORD $0x91000f28 // add x8, x25, #3 + WORD $0xeb05011f // cmp x8, x5 + WORD $0x54000122 // b.hs LBB0_46 $36(%rip) + WORD $0x38686ad0 // ldrb w16, [x22, x8] + WORD $0x7100361f // cmp w16, #13 + WORD $0x540000c0 // b.eq LBB0_46 $24(%rip) + WORD $0x7100821f // cmp w16, #32 + WORD $0x54000080 // b.eq LBB0_46 $16(%rip) + WORD $0x51002e10 // sub w16, w16, #11 + WORD $0x31000a1f // cmn w16, #2 + WORD $0x54000203 // b.lo LBB0_50 $64(%rip) +LBB0_46: + WORD $0x91001328 // add x8, x25, #4 + WORD $0xeb05011f // cmp x8, x5 + WORD $0x5401cbc2 // b.hs LBB0_769 $14712(%rip) +LBB0_47: + WORD $0x38686ad0 // ldrb w16, [x22, x8] + WORD $0x7100821f // cmp w16, #32 + WORD $0x9ad021d0 // lsl x16, x14, x16 + WORD $0x8a0f0210 // and x16, x16, x15 + WORD $0xfa409a04 // ccmp x16, #0, #4, ls + WORD $0x540000a0 // b.eq LBB0_49 $20(%rip) + WORD $0x91000508 // add x8, x8, #1 + WORD $0xeb0800bf // cmp x5, x8 + WORD $0x54ffff01 // b.ne LBB0_47 $-32(%rip) + WORD $0x14000e60 // b LBB0_775 $14720(%rip) +LBB0_49: + WORD $0xeb05011f // cmp x8, x5 + WORD $0x5401cbc2 // b.hs LBB0_775 $14712(%rip) +LBB0_50: + WORD $0x9100051b // add x27, x8, #1 + WORD $0xf900003b // str x27, [x1] + WORD $0x38686ad0 // ldrb w16, [x22, x8] + WORD $0x71008a1f // cmp w16, #34 + WORD $0x5401cae1 // b.ne LBB0_774 $14684(%rip) + WORD $0x3200cff5 // mov w21, #252645135 + WORD $0x5287272a // mov w10, #14649 + WORD $0x72a7272a // movk w10, #14649, lsl #16 + WORD $0xa900c7e3 // stp x3, x17, [sp, #8] + WORD $0x3202c7e3 // mov w3, #-1061109568 + WORD $0x5299fa18 // mov w24, #53200 + WORD $0x72b9f9f8 // movk w24, #53199, lsl #16 + WORD $0x3200f3e9 // mov w9, #1431655765 + WORD $0xf9000fe2 // str x2, [sp, #24] + WORD $0xf9400405 // ldr x5, [x0, #8] + WORD $0xeb1b00be // subs lr, x5, x27 + WORD $0x5401d560 // b.eq LBB0_804 $15020(%rip) + WORD $0xf9400570 // ldr x16, [x11, #8] + WORD $0xa9406a17 // ldp x23, x26, [x16] + WORD $0x8b1b02d3 // add x19, x22, x27 + WORD $0xf10103df // cmp lr, #64 + WORD $0x54001863 // b.lo LBB0_85 $780(%rip) + WORD $0xd2800019 // mov x25, #0 + WORD $0x9280001c // mov x28, #-1 +LBB0_54: + WORD $0x8b1b02d0 // add x16, x22, x27 + WORD $0xad405213 // ldp q19, q20, [x16] + WORD $0xad415a15 // ldp q21, q22, [x16, #32] + WORD $0x6e208e77 // cmeq.16b v23, v19, v0 + WORD $0x6e208e98 // cmeq.16b v24, v20, v0 + WORD $0x6e208eb9 // cmeq.16b v25, v21, v0 + WORD $0x6e208eda // cmeq.16b v26, v22, v0 + WORD $0x6e238e73 // cmeq.16b v19, v19, v3 + WORD $0x6e238e94 // cmeq.16b v20, v20, v3 + WORD $0x6e238eb5 // cmeq.16b v21, v21, v3 + WORD $0x6e238ed6 // cmeq.16b v22, v22, v3 + WORD $0x4e211ef7 // and.16b v23, v23, v1 + WORD $0x4e0202f7 // tbl.16b v23, { v23 }, v2 + WORD $0x4e71baf7 // addv.8h h23, v23 + WORD $0x1e2602f0 // fmov w16, s23 + WORD $0x4e211f17 // and.16b v23, v24, v1 + WORD $0x4e0202f7 // tbl.16b v23, { v23 }, v2 + WORD $0x4e71baf7 // addv.8h h23, v23 + WORD $0x1e2602e4 // fmov w4, s23 + WORD $0x4e211f37 // and.16b v23, v25, v1 + WORD $0x4e0202f7 // tbl.16b v23, { v23 }, v2 + WORD $0x4e71baf7 // addv.8h h23, v23 + WORD $0x1e2602f1 // fmov w17, s23 + WORD $0x4e211f57 // and.16b v23, v26, v1 + WORD $0x4e0202f7 // tbl.16b v23, { v23 }, v2 + WORD $0x4e71baf7 // addv.8h h23, v23 + WORD $0x1e2602e2 // fmov w2, s23 + WORD $0x4e211e73 // and.16b v19, v19, v1 + WORD $0x4e020273 // tbl.16b v19, { v19 }, v2 + WORD $0x4e71ba73 // addv.8h h19, v19 + WORD $0x1e260267 // fmov w7, s19 + WORD $0x4e211e93 // and.16b v19, v20, v1 + WORD $0x4e020273 // tbl.16b v19, { v19 }, v2 + WORD $0x4e71ba73 // addv.8h h19, v19 + WORD $0x1e260266 // fmov w6, s19 + WORD $0x4e211eb3 // and.16b v19, v21, v1 + WORD $0x4e020273 // tbl.16b v19, { v19 }, v2 + WORD $0x4e71ba73 // addv.8h h19, v19 + WORD $0x1e26026d // fmov w13, s19 + WORD $0x4e211ed3 // and.16b v19, v22, v1 + WORD $0x4e020273 // tbl.16b v19, { v19 }, v2 + WORD $0x4e71ba73 // addv.8h h19, v19 + WORD $0x1e26026c // fmov w12, s19 + WORD $0xd3607e31 // lsl x17, x17, #32 + WORD $0xaa02c231 // orr x17, x17, x2, lsl #48 + WORD $0x53103c82 // lsl w2, w4, #16 + WORD $0xaa020231 // orr x17, x17, x2 + WORD $0xaa100224 // orr x4, x17, x16 + WORD $0xd3607dad // lsl x13, x13, #32 + WORD $0xaa0cc1ac // orr x12, x13, x12, lsl #48 + WORD $0x53103ccd // lsl w13, w6, #16 + WORD $0xaa0d018c // orr x12, x12, x13 + WORD $0xaa070190 // orr x16, x12, x7 + WORD $0xb5000110 // cbnz x16, LBB0_58 $32(%rip) + WORD $0xb5000199 // cbnz x25, LBB0_59 $48(%rip) + WORD $0xb50002c4 // cbnz x4, LBB0_60 $88(%rip) +LBB0_57: + WORD $0xd10103de // sub lr, lr, #64 + WORD $0x9101037b // add x27, x27, #64 + WORD $0xf100ffdf // cmp lr, #63 + WORD $0x54fff8a8 // b.hi LBB0_54 $-236(%rip) + WORD $0x14000082 // b LBB0_84 $520(%rip) +LBB0_58: + WORD $0xb100079f // cmn x28, #1 + WORD $0xdac0020c // rbit x12, x16 + WORD $0xdac0118c // clz x12, x12 + WORD $0x8b1b018c // add x12, x12, x27 + WORD $0x9a8c139c // csel x28, x28, x12, ne +LBB0_59: + WORD $0x8a39020c // bic x12, x16, x25 + WORD $0xaa0c072d // orr x13, x25, x12, lsl #1 + WORD $0x8a2d0210 // bic x16, x16, x13 + WORD $0x9201f210 // and x16, x16, #0xaaaaaaaaaaaaaaaa + WORD $0xab0c020c // adds x12, x16, x12 + WORD $0x1a9f37f9 // cset w25, hs + WORD $0xd37ff98c // lsl x12, x12, #1 + WORD $0xd200f18c // eor x12, x12, #0x5555555555555555 + WORD $0x8a0d018c // and x12, x12, x13 + WORD $0x8a2c0084 // bic x4, x4, x12 + WORD $0xb4fffd84 // cbz x4, LBB0_57 $-80(%rip) +LBB0_60: + WORD $0xdac0008c // rbit x12, x4 + WORD $0xdac0118c // clz x12, x12 + WORD $0x8b1b018c // add x12, x12, x27 + WORD $0x91000599 // add x25, x12, #1 + WORD $0x3200f3e6 // mov w6, #1431655765 + WORD $0x10ffda89 // adr x9, lCPI0_0 $-1200(%rip) + WORD $0x3201f3fe // mov w30, #-1431655766 + WORD $0xb7f9ca19 // tbnz x25, #63, LBB0_805 $14656(%rip) +LBB0_61: + WORD $0xf9000039 // str x25, [x1] + WORD $0xb100079f // cmn x28, #1 + WORD $0x54000060 // b.eq LBB0_63 $12(%rip) + WORD $0xeb19039f // cmp x28, x25 + WORD $0x5400120d // b.le LBB0_91 $576(%rip) +LBB0_63: + WORD $0xcb08032c // sub x12, x25, x8 + WORD $0xd1000990 // sub x16, x12, #2 + WORD $0xaa1a020c // orr x12, x16, x26 + WORD $0xb400030c // cbz x12, LBB0_69 $96(%rip) + WORD $0xeb1a021f // cmp x16, x26 + WORD $0xf94007e3 // ldr x3, [sp, #8] +Lloh2: + WORD $0x1001cc4a // adr x10, __UnquoteTab $14728(%rip) +Lloh3: + WORD $0x9100014a // add x10, x10, __UnquoteTab@PAGEOFF $0(%rip) + WORD $0xb202e3f5 // mov x21, #4919131752989213764 + WORD $0x540003a1 // b.ne LBB0_70 $116(%rip) + WORD $0xd2800004 // mov x4, #0 + WORD $0xaa1a03e5 // mov x5, x26 +LBB0_66: + WORD $0xf10040b0 // subs x16, x5, #16 + WORD $0x54000403 // b.lo LBB0_71 $128(%rip) + WORD $0x3ce46a73 // ldr q19, [x19, x4] + WORD $0x3ce46af4 // ldr q20, [x23, x4] + WORD $0x6e338e93 // cmeq.16b v19, v20, v19 + WORD $0x4e211e73 // and.16b v19, v19, v1 + WORD $0x4e020273 // tbl.16b v19, { v19 }, v2 + WORD $0x4e71ba73 // addv.8h h19, v19 + WORD $0x1e26026c // fmov w12, s19 + WORD $0x0a2c028c // bic w12, w20, w12 + WORD $0x91004084 // add x4, x4, #16 + WORD $0xaa1003e5 // mov x5, x16 + WORD $0x34fffe8c // cbz w12, LBB0_66 $-48(%rip) + WORD $0x52800004 // mov w4, #0 + WORD $0x1400002f // b LBB0_76 $188(%rip) +LBB0_69: + WORD $0x52800025 // mov w5, #1 + WORD $0xa9410bf1 // ldp x17, x2, [sp, #16] + WORD $0x10ffd667 // adr x7, lCPI0_1 $-1332(%rip) + WORD $0xf94007e3 // ldr x3, [sp, #8] +Lloh4: + WORD $0x1001c92a // adr x10, __UnquoteTab $14628(%rip) +Lloh5: + WORD $0x9100014a // add x10, x10, __UnquoteTab@PAGEOFF $0(%rip) + WORD $0xb202e3f5 // mov x21, #4919131752989213764 + WORD $0xf9400413 // ldr x19, [x0, #8] + WORD $0xeb13033f // cmp x25, x19 + WORD $0x54002802 // b.hs LBB0_131 $1280(%rip) + WORD $0x1400002a // b LBB0_78 $168(%rip) +LBB0_70: + WORD $0xd2800005 // mov x5, #0 + WORD $0xa9410bf1 // ldp x17, x2, [sp, #16] + WORD $0x10ffd507 // adr x7, lCPI0_1 $-1376(%rip) + WORD $0xf9400413 // ldr x19, [x0, #8] + WORD $0xeb13033f // cmp x25, x19 + WORD $0x54002722 // b.hs LBB0_131 $1252(%rip) + WORD $0x14000023 // b LBB0_78 $140(%rip) +LBB0_71: + WORD $0x0b160108 // add w8, w8, w22 + WORD $0x0b040108 // add w8, w8, w4 + WORD $0x11000508 // add w8, w8, #1 + WORD $0x92402d0c // and x12, x8, #0xfff + WORD $0x8b0402e8 // add x8, x23, x4 + WORD $0x8b040273 // add x19, x19, x4 + WORD $0xf13fc19f // cmp x12, #4080 + WORD $0x54000248 // b.hi LBB0_74 $72(%rip) + WORD $0x92402d0c // and x12, x8, #0xfff + WORD $0xf13fc59f // cmp x12, #4081 + WORD $0x540001e2 // b.hs LBB0_74 $60(%rip) + WORD $0x3dc00273 // ldr q19, [x19] + WORD $0x3dc00114 // ldr q20, [x8] + WORD $0x6e338e93 // cmeq.16b v19, v20, v19 + WORD $0x4e211e73 // and.16b v19, v19, v1 + WORD $0x4e020273 // tbl.16b v19, { v19 }, v2 + WORD $0x4e71ba73 // addv.8h h19, v19 + WORD $0x1e260268 // fmov w8, s19 + WORD $0x6a280288 // bics w8, w20, w8 + WORD $0x1a9f17ec // cset w12, eq + WORD $0xdac00108 // rbit x8, x8 + WORD $0xdac01108 // clz x8, x8 + WORD $0xeb05011f // cmp x8, x5 + WORD $0x1a9f3584 // csinc w4, w12, wzr, lo + WORD $0x14000004 // b LBB0_76 $16(%rip) +LBB0_74: + WORD $0xeb04035f // cmp x26, x4 + WORD $0x54000241 // b.ne LBB0_82 $72(%rip) + WORD $0x52800024 // mov w4, #1 +LBB0_76: + WORD $0xa9410bf1 // ldp x17, x2, [sp, #16] + WORD $0x10ffd0c7 // adr x7, lCPI0_1 $-1512(%rip) +LBB0_77: + WORD $0x2a0403e5 // mov w5, w4 + WORD $0xf9400413 // ldr x19, [x0, #8] + WORD $0xeb13033f // cmp x25, x19 + WORD $0x540022c2 // b.hs LBB0_131 $1112(%rip) +LBB0_78: + WORD $0x38796ac8 // ldrb w8, [x22, x25] + WORD $0x7100351f // cmp w8, #13 + WORD $0x54002260 // b.eq LBB0_131 $1100(%rip) + WORD $0x7100811f // cmp w8, #32 + WORD $0x54002220 // b.eq LBB0_131 $1092(%rip) + WORD $0x51002d08 // sub w8, w8, #11 + WORD $0x3100091f // cmn w8, #2 + WORD $0x540021c2 // b.hs LBB0_131 $1080(%rip) + WORD $0xaa1903e8 // mov x8, x25 + WORD $0x1400013c // b LBB0_147 $1264(%rip) +LBB0_82: + WORD $0x52800037 // mov w23, #1 + WORD $0xa9410bf1 // ldp x17, x2, [sp, #16] + WORD $0x10ffcea7 // adr x7, lCPI0_1 $-1580(%rip) +LBB0_83: + WORD $0x3840166c // ldrb w12, [x19], #1 + WORD $0x3840150d // ldrb w13, [x8], #1 + WORD $0x6b0d019f // cmp w12, w13 + WORD $0x1a9f17e4 // cset w4, eq + WORD $0xfa5700a4 // ccmp x5, x23, #4, eq + WORD $0x910006f7 // add x23, x23, #1 + WORD $0x54ffff41 // b.ne LBB0_83 $-24(%rip) + WORD $0x17ffffe8 // b LBB0_77 $-96(%rip) +LBB0_84: + WORD $0x8b1b02d0 // add x16, x22, x27 + WORD $0x14000004 // b LBB0_86 $16(%rip) +LBB0_85: + WORD $0xd2800019 // mov x25, #0 + WORD $0x9280001c // mov x28, #-1 + WORD $0xaa1303f0 // mov x16, x19 +LBB0_86: + WORD $0xf10083db // subs x27, lr, #32 + WORD $0x54008a63 // b.lo LBB0_288 $4428(%rip) + WORD $0xad405213 // ldp q19, q20, [x16] + WORD $0x6e208e75 // cmeq.16b v21, v19, v0 + WORD $0x6e208e96 // cmeq.16b v22, v20, v0 + WORD $0x6e238e73 // cmeq.16b v19, v19, v3 + WORD $0x6e238e94 // cmeq.16b v20, v20, v3 + WORD $0x4e211eb5 // and.16b v21, v21, v1 + WORD $0x4e0202b5 // tbl.16b v21, { v21 }, v2 + WORD $0x4e71bab5 // addv.8h h21, v21 + WORD $0x1e2602be // fmov w30, s21 + WORD $0x4e211ed5 // and.16b v21, v22, v1 + WORD $0x4e0202b5 // tbl.16b v21, { v21 }, v2 + WORD $0x4e71bab5 // addv.8h h21, v21 + WORD $0x1e2602ac // fmov w12, s21 + WORD $0x4e211e73 // and.16b v19, v19, v1 + WORD $0x4e020273 // tbl.16b v19, { v19 }, v2 + WORD $0x4e71ba73 // addv.8h h19, v19 + WORD $0x1e260264 // fmov w4, s19 + WORD $0x4e211e93 // and.16b v19, v20, v1 + WORD $0x4e020273 // tbl.16b v19, { v19 }, v2 + WORD $0x4e71ba73 // addv.8h h19, v19 + WORD $0x1e26026d // fmov w13, s19 + WORD $0x33103d9e // bfi w30, w12, #16, #16 + WORD $0x33103da4 // bfi w4, w13, #16, #16 + WORD $0x350087a4 // cbnz w4, LBB0_289 $4340(%rip) + WORD $0xb5008859 // cbnz x25, LBB0_290 $4360(%rip) + WORD $0x10ffc909 // adr x9, lCPI0_0 $-1760(%rip) + WORD $0xb40089de // cbz lr, LBB0_291 $4408(%rip) +LBB0_90: + WORD $0xdac003cc // rbit x12, lr + WORD $0xdac0118c // clz x12, x12 + WORD $0xcb16020d // sub x13, x16, x22 + WORD $0x8b0c01ac // add x12, x13, x12 + WORD $0x91000599 // add x25, x12, #1 + WORD $0x3200f3e6 // mov w6, #1431655765 + WORD $0x3201f3fe // mov w30, #-1431655766 + WORD $0xb6ffedd9 // tbz x25, #63, LBB0_61 $-584(%rip) + WORD $0x14000dbc // b LBB0_805 $14064(%rip) +LBB0_91: + WORD $0x52848011 // mov w17, #9216 + WORD $0x72bf9411 // movk w17, #64672, lsl #16 + WORD $0xf90013ff // str xzr, [sp, #32] + WORD $0x8b1902c8 // add x8, x22, x25 + WORD $0xd1000514 // sub x20, x8, #1 + WORD $0x8b1a02e2 // add x2, x23, x26 + WORD $0xeb14027f // cmp x19, x20 + WORD $0x540017c2 // b.hs LBB0_129 $760(%rip) + WORD $0xf100075f // cmp x26, #1 + WORD $0x5400178b // b.lt LBB0_129 $752(%rip) +LBB0_93: + WORD $0x39400268 // ldrb w8, [x19] + WORD $0x7101711f // cmp w8, #92 + WORD $0x540001e1 // b.ne LBB0_98 $60(%rip) + WORD $0xcb13029a // sub x26, x20, x19 + WORD $0xf100075f // cmp x26, #1 + WORD $0x5401b76b // b.lt LBB0_813 $14060(%rip) + WORD $0x39400668 // ldrb w8, [x19, #1] +Lloh6: + WORD $0x1001b909 // adr x9, __UnquoteTab $14112(%rip) +Lloh7: + WORD $0x91000129 // add x9, x9, __UnquoteTab@PAGEOFF $0(%rip) + WORD $0x38686928 // ldrb w8, [x9, x8] + WORD $0x7103fd1f // cmp w8, #255 + WORD $0x54000180 // b.eq LBB0_100 $48(%rip) + WORD $0x3401b608 // cbz w8, LBB0_811 $14016(%rip) + WORD $0x390083e8 // strb w8, [sp, #32] + WORD $0x91000a73 // add x19, x19, #2 + WORD $0x52800028 // mov w8, #1 + WORD $0x14000043 // b LBB0_109 $268(%rip) +LBB0_98: + WORD $0x394002ec // ldrb w12, [x23] + WORD $0x6b0c011f // cmp w8, w12 + WORD $0x54008161 // b.ne LBB0_286 $4140(%rip) + WORD $0x91000673 // add x19, x19, #1 + WORD $0x910006f7 // add x23, x23, #1 + WORD $0x1400004e // b LBB0_115 $312(%rip) +LBB0_100: + WORD $0xf100135f // cmp x26, #4 + WORD $0x5401b4e3 // b.lo LBB0_812 $13980(%rip) + WORD $0xb8402268 // ldur w8, [x19, #2] + WORD $0x0b18010c // add w12, w8, w24 + WORD $0x3201c3ed // mov w13, #-2139062144 + WORD $0x0a2801a4 // bic w4, w13, w8 + WORD $0x6a0c009f // tst w4, w12 + WORD $0x5401b361 // b.ne LBB0_809 $13932(%rip) + WORD $0x52832329 // mov w9, #6425 + WORD $0x72a32329 // movk w9, #6425, lsl #16 + WORD $0x0b09010c // add w12, w8, w9 + WORD $0x2a08018c // orr w12, w12, w8 + WORD $0x3201c3e9 // mov w9, #-2139062144 + WORD $0x6a0d019f // tst w12, w13 + WORD $0x5401b281 // b.ne LBB0_809 $13904(%rip) + WORD $0x3200dbec // mov w12, #2139062143 + WORD $0x0a0c0110 // and w16, w8, w12 + WORD $0x4b10006c // sub w12, w3, w16 + WORD $0x5288c8cd // mov w13, #17990 + WORD $0x72a8c8cd // movk w13, #17990, lsl #16 + WORD $0x0b0d020d // add w13, w16, w13 + WORD $0x0a0c01ac // and w12, w13, w12 + WORD $0x6a04019f // tst w12, w4 + WORD $0x5401b161 // b.ne LBB0_809 $13868(%rip) + WORD $0x3203cbec // mov w12, #-522133280 + WORD $0x4b10018c // sub w12, w12, w16 + WORD $0x0b0a020d // add w13, w16, w10 + WORD $0x0a0c01ac // and w12, w13, w12 + WORD $0x6a04019f // tst w12, w4 + WORD $0x5401b0a1 // b.ne LBB0_809 $13844(%rip) + WORD $0x5ac00908 // rev w8, w8 + WORD $0x3200c3ec // mov w12, #16843009 + WORD $0x0a68118c // bic w12, w12, w8, lsr #4 + WORD $0x0b0c0d8c // add w12, w12, w12, lsl #3 + WORD $0x0a150108 // and w8, w8, w21 + WORD $0x0b080188 // add w8, w12, w8 + WORD $0x2a481108 // orr w8, w8, w8, lsr #4 + WORD $0x53087d0c // lsr w12, w8, #8 + WORD $0x12181d90 // and w16, w12, #0xff00 + WORD $0xaa1003e5 // mov x5, x16 + WORD $0x33001d05 // bfxil w5, w8, #0, #8 + WORD $0x91001a7b // add x27, x19, #6 + WORD $0x7101fcbf // cmp w5, #127 + WORD $0x540004e9 // b.ls LBB0_117 $156(%rip) + WORD $0x711ffcbf // cmp w5, #2047 + WORD $0x54000529 // b.ls LBB0_118 $164(%rip) + WORD $0x51403a0c // sub w12, w16, #14, lsl #12 + WORD $0x3120059f // cmn w12, #2049 + WORD $0x540005e8 // b.hi LBB0_119 $188(%rip) + WORD $0x530c7e0c // lsr w12, w16, #12 + WORD $0x321b098c // orr w12, w12, #0xe0 + WORD $0x390083ec // strb w12, [sp, #32] + WORD $0x5280100c // mov w12, #128 + WORD $0x33062cac // bfxil w12, w5, #6, #6 + WORD $0x390087ec // strb w12, [sp, #33] + WORD $0x5280100c // mov w12, #128 + WORD $0x3300150c // bfxil w12, w8, #0, #6 + WORD $0x39008bec // strb w12, [sp, #34] + WORD $0xaa1b03f3 // mov x19, x27 + WORD $0x52800068 // mov w8, #3 +LBB0_109: + WORD $0x910083e4 // add x4, sp, #32 + WORD $0xaa080088 // orr x8, x4, x8 + WORD $0xeb0202ff // cmp x23, x2 + WORD $0x54000182 // b.hs LBB0_114 $48(%rip) + WORD $0x910083e4 // add x4, sp, #32 +LBB0_111: + WORD $0x394002ec // ldrb w12, [x23] + WORD $0x3940008d // ldrb w13, [x4] + WORD $0x6b0d019f // cmp w12, w13 + WORD $0x540000e1 // b.ne LBB0_114 $28(%rip) + WORD $0x910006f7 // add x23, x23, #1 + WORD $0x91000484 // add x4, x4, #1 + WORD $0xeb0202ff // cmp x23, x2 + WORD $0x54000062 // b.hs LBB0_114 $12(%rip) + WORD $0xeb08009f // cmp x4, x8 + WORD $0x54fffee3 // b.lo LBB0_111 $-36(%rip) +LBB0_114: + WORD $0xeb08009f // cmp x4, x8 + WORD $0x54007761 // b.ne LBB0_286 $3820(%rip) +LBB0_115: + WORD $0xeb14027f // cmp x19, x20 + WORD $0x54000ac2 // b.hs LBB0_129 $344(%rip) + WORD $0xeb0202ff // cmp x23, x2 + WORD $0x54fff323 // b.lo LBB0_93 $-412(%rip) + WORD $0x14000053 // b LBB0_129 $332(%rip) +LBB0_117: + WORD $0x390083e8 // strb w8, [sp, #32] + WORD $0xaa1b03f3 // mov x19, x27 + WORD $0x52800028 // mov w8, #1 + WORD $0x17ffffe7 // b LBB0_109 $-100(%rip) +LBB0_118: + WORD $0x53067cac // lsr w12, w5, #6 + WORD $0x321a058c // orr w12, w12, #0xc0 + WORD $0x390083ec // strb w12, [sp, #32] + WORD $0x5280100c // mov w12, #128 + WORD $0x3300150c // bfxil w12, w8, #0, #6 + WORD $0x390087ec // strb w12, [sp, #33] + WORD $0xaa1b03f3 // mov x19, x27 + WORD $0x52800048 // mov w8, #2 + WORD $0x17ffffde // b LBB0_109 $-136(%rip) +LBB0_119: + WORD $0x92800068 // mov x8, #-4 + WORD $0xf1001b5f // cmp x26, #6 + WORD $0x5401aa83 // b.lo LBB0_818 $13648(%rip) + WORD $0x530a7cac // lsr w12, w5, #10 + WORD $0x7100d99f // cmp w12, #54 + WORD $0x5401aa28 // b.hi LBB0_818 $13636(%rip) + WORD $0x39400368 // ldrb w8, [x27] + WORD $0x7101711f // cmp w8, #92 + WORD $0x5401a901 // b.ne LBB0_816 $13600(%rip) + WORD $0x39401e68 // ldrb w8, [x19, #7] + WORD $0x7101d51f // cmp w8, #117 + WORD $0x5401a8a1 // b.ne LBB0_816 $13588(%rip) + WORD $0xb9400a68 // ldr w8, [x19, #8] + WORD $0x0b18010c // add w12, w8, w24 + WORD $0x0a280124 // bic w4, w9, w8 + WORD $0x6a0c009f // tst w4, w12 + WORD $0x5401a7c1 // b.ne LBB0_815 $13560(%rip) + WORD $0x5283232c // mov w12, #6425 + WORD $0x72a3232c // movk w12, #6425, lsl #16 + WORD $0x0b0c010c // add w12, w8, w12 + WORD $0x2a08018c // orr w12, w12, w8 + WORD $0x6a09019f // tst w12, w9 + WORD $0x5401a701 // b.ne LBB0_815 $13536(%rip) + WORD $0x3200dbe9 // mov w9, #2139062143 + WORD $0x0a090110 // and w16, w8, w9 + WORD $0x4b10006c // sub w12, w3, w16 + WORD $0x5288c8c9 // mov w9, #17990 + WORD $0x72a8c8c9 // movk w9, #17990, lsl #16 + WORD $0x0b09020d // add w13, w16, w9 + WORD $0x0a0c01ac // and w12, w13, w12 + WORD $0x6a04019f // tst w12, w4 + WORD $0x5401a5e1 // b.ne LBB0_815 $13500(%rip) + WORD $0x3203cbe9 // mov w9, #-522133280 + WORD $0x4b10012c // sub w12, w9, w16 + WORD $0x0b0a020d // add w13, w16, w10 + WORD $0x0a0c01ac // and w12, w13, w12 + WORD $0x6a04019f // tst w12, w4 + WORD $0x5401a521 // b.ne LBB0_815 $13476(%rip) + WORD $0x5ac00908 // rev w8, w8 + WORD $0x3200c3e9 // mov w9, #16843009 + WORD $0x0a68112c // bic w12, w9, w8, lsr #4 + WORD $0x0b0c0d8c // add w12, w12, w12, lsl #3 + WORD $0x0a150108 // and w8, w8, w21 + WORD $0x0b080188 // add w8, w12, w8 + WORD $0x2a481108 // orr w8, w8, w8, lsr #4 + WORD $0x53087d0c // lsr w12, w8, #8 + WORD $0x12181d90 // and w16, w12, #0xff00 + WORD $0x51403a0c // sub w12, w16, #14, lsl #12 + WORD $0x3110019f // cmn w12, #1024 + WORD $0x5401a443 // b.lo LBB0_817 $13448(%rip) + WORD $0x12001d0c // and w12, w8, #0xff + WORD $0x2a05298c // orr w12, w12, w5, lsl #10 + WORD $0x0b11020d // add w13, w16, w17 + WORD $0x0b0d018c // add w12, w12, w13 + WORD $0x53127d8d // lsr w13, w12, #18 + WORD $0x321c0dad // orr w13, w13, #0xf0 + WORD $0x390083ed // strb w13, [sp, #32] + WORD $0x5280100d // mov w13, #128 + WORD $0x330c458d // bfxil w13, w12, #12, #6 + WORD $0x390087ed // strb w13, [sp, #33] + WORD $0x5280100d // mov w13, #128 + WORD $0x33062d8d // bfxil w13, w12, #6, #6 + WORD $0x39008bed // strb w13, [sp, #34] + WORD $0x5280100c // mov w12, #128 + WORD $0x3300150c // bfxil w12, w8, #0, #6 + WORD $0x39008fec // strb w12, [sp, #35] + WORD $0x91003273 // add x19, x19, #12 + WORD $0x52800088 // mov w8, #4 + WORD $0x17ffff99 // b LBB0_109 $-412(%rip) +LBB0_129: + WORD $0xeb14027f // cmp x19, x20 + WORD $0xfa4202e0 // ccmp x23, x2, #0, eq + WORD $0x1a9f17e5 // cset w5, eq +LBB0_130: + WORD $0xb202e3f5 // mov x21, #4919131752989213764 + WORD $0x529ffff4 // mov w20, #65535 + WORD $0xa9410bf1 // ldp x17, x2, [sp, #16] + WORD $0x3200f3e6 // mov w6, #1431655765 + WORD $0x10ffae29 // adr x9, lCPI0_0 $-2620(%rip) + WORD $0x10ffae87 // adr x7, lCPI0_1 $-2608(%rip) + WORD $0x3201f3fe // mov w30, #-1431655766 + WORD $0xf94007e3 // ldr x3, [sp, #8] +Lloh8: + WORD $0x1001a12a // adr x10, __UnquoteTab $13348(%rip) +Lloh9: + WORD $0x9100014a // add x10, x10, __UnquoteTab@PAGEOFF $0(%rip) + WORD $0xf9400413 // ldr x19, [x0, #8] + WORD $0xeb13033f // cmp x25, x19 + WORD $0x54ffdd83 // b.lo LBB0_78 $-1104(%rip) +LBB0_131: + WORD $0x91000728 // add x8, x25, #1 + WORD $0xeb13011f // cmp x8, x19 + WORD $0x54000122 // b.hs LBB0_135 $36(%rip) + WORD $0x38686ad0 // ldrb w16, [x22, x8] + WORD $0x7100361f // cmp w16, #13 + WORD $0x540000c0 // b.eq LBB0_135 $24(%rip) + WORD $0x7100821f // cmp w16, #32 + WORD $0x54000080 // b.eq LBB0_135 $16(%rip) + WORD $0x51002e0c // sub w12, w16, #11 + WORD $0x3100099f // cmn w12, #2 + WORD $0x540004c3 // b.lo LBB0_147 $152(%rip) +LBB0_135: + WORD $0x91000b28 // add x8, x25, #2 + WORD $0xeb13011f // cmp x8, x19 + WORD $0x54000122 // b.hs LBB0_139 $36(%rip) + WORD $0x38686ad0 // ldrb w16, [x22, x8] + WORD $0x7100361f // cmp w16, #13 + WORD $0x540000c0 // b.eq LBB0_139 $24(%rip) + WORD $0x7100821f // cmp w16, #32 + WORD $0x54000080 // b.eq LBB0_139 $16(%rip) + WORD $0x51002e0c // sub w12, w16, #11 + WORD $0x3100099f // cmn w12, #2 + WORD $0x54000363 // b.lo LBB0_147 $108(%rip) +LBB0_139: + WORD $0x91000f28 // add x8, x25, #3 + WORD $0xeb13011f // cmp x8, x19 + WORD $0x54000122 // b.hs LBB0_143 $36(%rip) + WORD $0x38686ad0 // ldrb w16, [x22, x8] + WORD $0x7100361f // cmp w16, #13 + WORD $0x540000c0 // b.eq LBB0_143 $24(%rip) + WORD $0x7100821f // cmp w16, #32 + WORD $0x54000080 // b.eq LBB0_143 $16(%rip) + WORD $0x51002e0c // sub w12, w16, #11 + WORD $0x3100099f // cmn w12, #2 + WORD $0x54000203 // b.lo LBB0_147 $64(%rip) +LBB0_143: + WORD $0x91001328 // add x8, x25, #4 + WORD $0xeb13011f // cmp x8, x19 + WORD $0x54018b02 // b.hs LBB0_769 $12640(%rip) +LBB0_144: + WORD $0x38686acc // ldrb w12, [x22, x8] + WORD $0x7100819f // cmp w12, #32 + WORD $0x9acc21cc // lsl x12, x14, x12 + WORD $0x8a0f018c // and x12, x12, x15 + WORD $0xfa409984 // ccmp x12, #0, #4, ls + WORD $0x540000a0 // b.eq LBB0_146 $20(%rip) + WORD $0x91000508 // add x8, x8, #1 + WORD $0xeb08027f // cmp x19, x8 + WORD $0x54ffff01 // b.ne LBB0_144 $-32(%rip) + WORD $0x14000c5a // b LBB0_775 $12648(%rip) +LBB0_146: + WORD $0xeb13011f // cmp x8, x19 + WORD $0x54018b02 // b.hs LBB0_775 $12640(%rip) +LBB0_147: + WORD $0x91000513 // add x19, x8, #1 + WORD $0xf9000033 // str x19, [x1] + WORD $0x38686acc // ldrb w12, [x22, x8] + WORD $0x7100e99f // cmp w12, #58 + WORD $0x54018a61 // b.ne LBB0_775 $12620(%rip) + WORD $0xb500e465 // cbnz x5, LBB0_488 $7308(%rip) + WORD $0xf9400405 // ldr x5, [x0, #8] + WORD $0xeb05027f // cmp x19, x5 + WORD $0x54000162 // b.hs LBB0_154 $44(%rip) + WORD $0x38736ad0 // ldrb w16, [x22, x19] + WORD $0x7100361f // cmp w16, #13 + WORD $0x54000100 // b.eq LBB0_154 $32(%rip) + WORD $0x7100821f // cmp w16, #32 + WORD $0x540000c0 // b.eq LBB0_154 $24(%rip) + WORD $0x51002e0c // sub w12, w16, #11 + WORD $0x3100099f // cmn w12, #2 + WORD $0x54000062 // b.hs LBB0_154 $12(%rip) + WORD $0xaa1303f7 // mov x23, x19 + WORD $0x14000031 // b LBB0_170 $196(%rip) +LBB0_154: + WORD $0x91000917 // add x23, x8, #2 + WORD $0xeb0502ff // cmp x23, x5 + WORD $0x54000122 // b.hs LBB0_158 $36(%rip) + WORD $0x38776ad0 // ldrb w16, [x22, x23] + WORD $0x7100361f // cmp w16, #13 + WORD $0x540000c0 // b.eq LBB0_158 $24(%rip) + WORD $0x7100821f // cmp w16, #32 + WORD $0x54000080 // b.eq LBB0_158 $16(%rip) + WORD $0x51002e0c // sub w12, w16, #11 + WORD $0x3100099f // cmn w12, #2 + WORD $0x540004c3 // b.lo LBB0_170 $152(%rip) +LBB0_158: + WORD $0x91000d17 // add x23, x8, #3 + WORD $0xeb0502ff // cmp x23, x5 + WORD $0x54000122 // b.hs LBB0_162 $36(%rip) + WORD $0x38776ad0 // ldrb w16, [x22, x23] + WORD $0x7100361f // cmp w16, #13 + WORD $0x540000c0 // b.eq LBB0_162 $24(%rip) + WORD $0x7100821f // cmp w16, #32 + WORD $0x54000080 // b.eq LBB0_162 $16(%rip) + WORD $0x51002e0c // sub w12, w16, #11 + WORD $0x3100099f // cmn w12, #2 + WORD $0x54000363 // b.lo LBB0_170 $108(%rip) +LBB0_162: + WORD $0x91001117 // add x23, x8, #4 + WORD $0xeb0502ff // cmp x23, x5 + WORD $0x54000122 // b.hs LBB0_166 $36(%rip) + WORD $0x38776ad0 // ldrb w16, [x22, x23] + WORD $0x7100361f // cmp w16, #13 + WORD $0x540000c0 // b.eq LBB0_166 $24(%rip) + WORD $0x7100821f // cmp w16, #32 + WORD $0x54000080 // b.eq LBB0_166 $16(%rip) + WORD $0x51002e0c // sub w12, w16, #11 + WORD $0x3100099f // cmn w12, #2 + WORD $0x54000203 // b.lo LBB0_170 $64(%rip) +LBB0_166: + WORD $0x91001517 // add x23, x8, #5 + WORD $0xeb0502ff // cmp x23, x5 + WORD $0x54000ba2 // b.hs LBB0_196 $372(%rip) +LBB0_167: + WORD $0x38776ac8 // ldrb w8, [x22, x23] + WORD $0x7100811f // cmp w8, #32 + WORD $0x9ac821c8 // lsl x8, x14, x8 + WORD $0x8a0f0108 // and x8, x8, x15 + WORD $0xfa409904 // ccmp x8, #0, #4, ls + WORD $0x540000a0 // b.eq LBB0_169 $20(%rip) + WORD $0x910006f7 // add x23, x23, #1 + WORD $0xeb1700bf // cmp x5, x23 + WORD $0x54ffff01 // b.ne LBB0_167 $-32(%rip) + WORD $0x14000055 // b LBB0_197 $340(%rip) +LBB0_169: + WORD $0xeb0502ff // cmp x23, x5 + WORD $0x54000a62 // b.hs LBB0_197 $332(%rip) +LBB0_170: + WORD $0x910006f3 // add x19, x23, #1 + WORD $0xf9000033 // str x19, [x1] + WORD $0x38776ac8 // ldrb w8, [x22, x23] + WORD $0x7101691f // cmp w8, #90 + WORD $0x540005ec // b.gt LBB0_185 $188(%rip) + WORD $0x7100bd1f // cmp w8, #47 + WORD $0x540007cd // b.le LBB0_190 $248(%rip) + WORD $0x5100c108 // sub w8, w8, #48 + WORD $0x7100291f // cmp w8, #10 + WORD $0x540008e2 // b.hs LBB0_196 $284(%rip) +LBB0_173: + WORD $0xf9400408 // ldr x8, [x0, #8] + WORD $0xcb130108 // sub x8, x8, x19 + WORD $0xf100411f // cmp x8, #16 + WORD $0x540001e3 // b.lo LBB0_176 $60(%rip) +LBB0_174: + WORD $0x3cf36ad3 // ldr q19, [x22, x19] + WORD $0x6e248e74 // cmeq.16b v20, v19, v4 + WORD $0x4e251e73 // and.16b v19, v19, v5 + WORD $0x6e268e73 // cmeq.16b v19, v19, v6 + WORD $0x4eb41e73 // orr.16b v19, v19, v20 + WORD $0x4e211e73 // and.16b v19, v19, v1 + WORD $0x4e020273 // tbl.16b v19, { v19 }, v2 + WORD $0x4e71ba73 // addv.8h h19, v19 + WORD $0x1e260270 // fmov w16, s19 + WORD $0x350002f0 // cbnz w16, LBB0_184 $92(%rip) + WORD $0xd1004108 // sub x8, x8, #16 + WORD $0x91004273 // add x19, x19, #16 + WORD $0xf1003d1f // cmp x8, #15 + WORD $0x54fffe68 // b.hi LBB0_174 $-52(%rip) +LBB0_176: + WORD $0x8b1302c4 // add x4, x22, x19 + WORD $0xb40001e8 // cbz x8, LBB0_183 $60(%rip) + WORD $0x8b080085 // add x5, x4, x8 + WORD $0xcb160093 // sub x19, x4, x22 +LBB0_178: + WORD $0x39400090 // ldrb w16, [x4] + WORD $0x7100b21f // cmp w16, #44 + WORD $0x54005780 // b.eq LBB0_285 $2800(%rip) + WORD $0x7101f61f // cmp w16, #125 + WORD $0x54005740 // b.eq LBB0_285 $2792(%rip) + WORD $0x7101761f // cmp w16, #93 + WORD $0x54005700 // b.eq LBB0_285 $2784(%rip) + WORD $0x91000484 // add x4, x4, #1 + WORD $0x91000673 // add x19, x19, #1 + WORD $0xf1000508 // subs x8, x8, #1 + WORD $0x54fffec1 // b.ne LBB0_178 $-40(%rip) + WORD $0xaa0503e4 // mov x4, x5 +LBB0_183: + WORD $0xcb160093 // sub x19, x4, x22 + WORD $0x1400031a // b LBB0_313 $3176(%rip) +LBB0_184: + WORD $0x5ac00208 // rbit w8, w16 + WORD $0x5ac01108 // clz w8, w8 + WORD $0x8b130113 // add x19, x8, x19 + WORD $0xf9000033 // str x19, [x1] + WORD $0x14000020 // b LBB0_197 $128(%rip) +LBB0_185: + WORD $0x7101b51f // cmp w8, #109 + WORD $0x540002cd // b.le LBB0_193 $88(%rip) + WORD $0x7101b91f // cmp w8, #110 + WORD $0x54002a40 // b.eq LBB0_244 $1352(%rip) + WORD $0x7101d11f // cmp w8, #116 + WORD $0x54002a00 // b.eq LBB0_244 $1344(%rip) + WORD $0x7101ed1f // cmp w8, #123 + WORD $0x540002c1 // b.ne LBB0_196 $88(%rip) + WORD $0xb201e3e9 // mov x9, #-8608480567731124088 + WORD $0xd280001b // mov x27, #0 + WORD $0xd2800019 // mov x25, #0 + WORD $0xd2800008 // mov x8, #0 + WORD $0xd2800017 // mov x23, #0 + WORD $0xf940040c // ldr x12, [x0, #8] + WORD $0xcb13019a // sub x26, x12, x19 + WORD $0x8b1302d3 // add x19, x22, x19 + WORD $0x1400005a // b LBB0_220 $360(%rip) +LBB0_190: + WORD $0x340001c8 // cbz w8, LBB0_197 $56(%rip) + WORD $0x7100891f // cmp w8, #34 + WORD $0x54002920 // b.eq LBB0_247 $1316(%rip) + WORD $0x7100b51f // cmp w8, #45 + WORD $0x54fff840 // b.eq LBB0_173 $-248(%rip) + WORD $0x14000007 // b LBB0_196 $28(%rip) +LBB0_193: + WORD $0x71016d1f // cmp w8, #91 + WORD $0x54003080 // b.eq LBB0_256 $1552(%rip) + WORD $0x7101991f // cmp w8, #102 + WORD $0x54000061 // b.ne LBB0_196 $12(%rip) + WORD $0x910016e8 // add x8, x23, #5 + WORD $0x1400013a // b LBB0_245 $1256(%rip) +LBB0_196: + WORD $0xf9000037 // str x23, [x1] + WORD $0xaa1703f3 // mov x19, x23 +LBB0_197: + WORD $0xa9401416 // ldp x22, x5, [x0] + WORD $0xeb05027f // cmp x19, x5 + WORD $0x54000162 // b.hs LBB0_202 $44(%rip) + WORD $0x38736ac8 // ldrb w8, [x22, x19] + WORD $0x7100351f // cmp w8, #13 + WORD $0x54000100 // b.eq LBB0_202 $32(%rip) + WORD $0x7100811f // cmp w8, #32 + WORD $0x540000c0 // b.eq LBB0_202 $24(%rip) + WORD $0x51002d08 // sub w8, w8, #11 + WORD $0x3100091f // cmn w8, #2 + WORD $0x54000062 // b.hs LBB0_202 $12(%rip) + WORD $0xaa1303e8 // mov x8, x19 + WORD $0x14000031 // b LBB0_218 $196(%rip) +LBB0_202: + WORD $0x91000668 // add x8, x19, #1 + WORD $0xeb05011f // cmp x8, x5 + WORD $0x54000122 // b.hs LBB0_206 $36(%rip) + WORD $0x38686ad0 // ldrb w16, [x22, x8] + WORD $0x7100361f // cmp w16, #13 + WORD $0x540000c0 // b.eq LBB0_206 $24(%rip) + WORD $0x7100821f // cmp w16, #32 + WORD $0x54000080 // b.eq LBB0_206 $16(%rip) + WORD $0x51002e0c // sub w12, w16, #11 + WORD $0x3100099f // cmn w12, #2 + WORD $0x540004c3 // b.lo LBB0_218 $152(%rip) +LBB0_206: + WORD $0x91000a68 // add x8, x19, #2 + WORD $0xeb05011f // cmp x8, x5 + WORD $0x54000122 // b.hs LBB0_210 $36(%rip) + WORD $0x38686ad0 // ldrb w16, [x22, x8] + WORD $0x7100361f // cmp w16, #13 + WORD $0x540000c0 // b.eq LBB0_210 $24(%rip) + WORD $0x7100821f // cmp w16, #32 + WORD $0x54000080 // b.eq LBB0_210 $16(%rip) + WORD $0x51002e0c // sub w12, w16, #11 + WORD $0x3100099f // cmn w12, #2 + WORD $0x54000363 // b.lo LBB0_218 $108(%rip) +LBB0_210: + WORD $0x91000e68 // add x8, x19, #3 + WORD $0xeb05011f // cmp x8, x5 + WORD $0x54000122 // b.hs LBB0_214 $36(%rip) + WORD $0x38686ad0 // ldrb w16, [x22, x8] + WORD $0x7100361f // cmp w16, #13 + WORD $0x540000c0 // b.eq LBB0_214 $24(%rip) + WORD $0x7100821f // cmp w16, #32 + WORD $0x54000080 // b.eq LBB0_214 $16(%rip) + WORD $0x51002e0c // sub w12, w16, #11 + WORD $0x3100099f // cmn w12, #2 + WORD $0x54000203 // b.lo LBB0_218 $64(%rip) +LBB0_214: + WORD $0x91001268 // add x8, x19, #4 + WORD $0xeb05011f // cmp x8, x5 + WORD $0x540170c2 // b.hs LBB0_769 $11800(%rip) +LBB0_215: + WORD $0x38686acc // ldrb w12, [x22, x8] + WORD $0x7100819f // cmp w12, #32 + WORD $0x9acc21cc // lsl x12, x14, x12 + WORD $0x8a0f018c // and x12, x12, x15 + WORD $0xfa409984 // ccmp x12, #0, #4, ls + WORD $0x540000a0 // b.eq LBB0_217 $20(%rip) + WORD $0x91000508 // add x8, x8, #1 + WORD $0xeb0800bf // cmp x5, x8 + WORD $0x54ffff01 // b.ne LBB0_215 $-32(%rip) + WORD $0x14000b88 // b LBB0_775 $11808(%rip) +LBB0_217: + WORD $0xeb05011f // cmp x8, x5 + WORD $0x540170c2 // b.hs LBB0_775 $11800(%rip) +LBB0_218: + WORD $0x91000519 // add x25, x8, #1 + WORD $0xf9000039 // str x25, [x1] + WORD $0x38686ad0 // ldrb w16, [x22, x8] + WORD $0x7100b21f // cmp w16, #44 + WORD $0x54ff9ce0 // b.eq LBB0_29 $-3172(%rip) + WORD $0x14000b7e // b LBB0_774 $11768(%rip) +LBB0_219: + WORD $0x937ffcbb // asr x27, x5, #63 + WORD $0x9e670393 // fmov d19, x28 + WORD $0x0e205a73 // cnt.8b v19, v19 + WORD $0x2e303a73 // uaddlv.8b h19, v19 + WORD $0x1e26026c // fmov w12, s19 + WORD $0x8b080188 // add x8, x12, x8 + WORD $0x91010273 // add x19, x19, #64 + WORD $0xaa1603fa // mov x26, x22 +LBB0_220: + WORD $0xf1010356 // subs x22, x26, #64 + WORD $0x540016cb // b.lt LBB0_227 $728(%rip) +LBB0_221: + WORD $0xad405676 // ldp q22, q21, [x19] + WORD $0xad414e74 // ldp q20, q19, [x19, #32] + WORD $0x6e238ed7 // cmeq.16b v23, v22, v3 + WORD $0x4e211ef7 // and.16b v23, v23, v1 + WORD $0x4e0202f7 // tbl.16b v23, { v23 }, v2 + WORD $0x4e71baf7 // addv.8h h23, v23 + WORD $0x1e2602ec // fmov w12, s23 + WORD $0x6e238eb7 // cmeq.16b v23, v21, v3 + WORD $0x4e211ef7 // and.16b v23, v23, v1 + WORD $0x4e0202f7 // tbl.16b v23, { v23 }, v2 + WORD $0x4e71baf7 // addv.8h h23, v23 + WORD $0x1e2602ed // fmov w13, s23 + WORD $0x6e238e97 // cmeq.16b v23, v20, v3 + WORD $0x4e211ef7 // and.16b v23, v23, v1 + WORD $0x4e0202f7 // tbl.16b v23, { v23 }, v2 + WORD $0x4e71baf7 // addv.8h h23, v23 + WORD $0x1e2602f0 // fmov w16, s23 + WORD $0x6e238e77 // cmeq.16b v23, v19, v3 + WORD $0x4e211ef7 // and.16b v23, v23, v1 + WORD $0x4e0202f7 // tbl.16b v23, { v23 }, v2 + WORD $0x4e71baf7 // addv.8h h23, v23 + WORD $0x1e2602f1 // fmov w17, s23 + WORD $0xd3607e10 // lsl x16, x16, #32 + WORD $0xaa11c210 // orr x16, x16, x17, lsl #48 + WORD $0x53103dad // lsl w13, w13, #16 + WORD $0xaa0d020d // orr x13, x16, x13 + WORD $0xaa0c01b0 // orr x16, x13, x12 + WORD $0xaa19020c // orr x12, x16, x25 + WORD $0xb500008c // cbnz x12, LBB0_223 $16(%rip) + WORD $0xd2800019 // mov x25, #0 + WORD $0xd2800004 // mov x4, #0 + WORD $0x1400000a // b LBB0_224 $40(%rip) +LBB0_223: + WORD $0x8a39020c // bic x12, x16, x25 + WORD $0xaa0c072d // orr x13, x25, x12, lsl #1 + WORD $0x8a2d0210 // bic x16, x16, x13 + WORD $0x9201f210 // and x16, x16, #0xaaaaaaaaaaaaaaaa + WORD $0xab0c020c // adds x12, x16, x12 + WORD $0x1a9f37f9 // cset w25, hs + WORD $0xd37ff98c // lsl x12, x12, #1 + WORD $0xd200f18c // eor x12, x12, #0x5555555555555555 + WORD $0x8a0d0184 // and x4, x12, x13 +LBB0_224: + WORD $0x6e208ed7 // cmeq.16b v23, v22, v0 + WORD $0x4e211ef7 // and.16b v23, v23, v1 + WORD $0x4e0202f7 // tbl.16b v23, { v23 }, v2 + WORD $0x4e71baf7 // addv.8h h23, v23 + WORD $0x1e2602ec // fmov w12, s23 + WORD $0x6e208eb7 // cmeq.16b v23, v21, v0 + WORD $0x4e211ef7 // and.16b v23, v23, v1 + WORD $0x4e0202f7 // tbl.16b v23, { v23 }, v2 + WORD $0x4e71baf7 // addv.8h h23, v23 + WORD $0x1e2602ed // fmov w13, s23 + WORD $0x6e208e97 // cmeq.16b v23, v20, v0 + WORD $0x4e211ef7 // and.16b v23, v23, v1 + WORD $0x4e0202f7 // tbl.16b v23, { v23 }, v2 + WORD $0x4e71baf7 // addv.8h h23, v23 + WORD $0x1e2602f0 // fmov w16, s23 + WORD $0x6e208e77 // cmeq.16b v23, v19, v0 + WORD $0x4e211ef7 // and.16b v23, v23, v1 + WORD $0x4e0202f7 // tbl.16b v23, { v23 }, v2 + WORD $0x4e71baf7 // addv.8h h23, v23 + WORD $0x1e2602f1 // fmov w17, s23 + WORD $0xd3607e10 // lsl x16, x16, #32 + WORD $0xaa11c210 // orr x16, x16, x17, lsl #48 + WORD $0x53103dad // lsl w13, w13, #16 + WORD $0xaa0d020d // orr x13, x16, x13 + WORD $0xaa0c01ac // orr x12, x13, x12 + WORD $0x8a24018c // bic x12, x12, x4 + WORD $0x9200e18d // and x13, x12, #0x1111111111111111 + WORD $0x9203e190 // and x16, x12, #0x2222222222222222 + WORD $0x9202e191 // and x17, x12, #0x4444444444444444 + WORD $0x9201e18c // and x12, x12, #0x8888888888888888 + WORD $0xb200e3fc // mov x28, #1229782938247303441 + WORD $0x9b1c7da2 // mul x2, x13, x28 + WORD $0xb201e3e7 // mov x7, #-8608480567731124088 + WORD $0xf2e11107 // movk x7, #2184, lsl #48 + WORD $0x9b077e04 // mul x4, x16, x7 + WORD $0xca040042 // eor x2, x2, x4 + WORD $0xb202e3e6 // mov x6, #4919131752989213764 + WORD $0xf2e08886 // movk x6, #1092, lsl #48 + WORD $0x9b067e24 // mul x4, x17, x6 + WORD $0xb203e3e5 // mov x5, #2459565876494606882 + WORD $0xf2e04445 // movk x5, #546, lsl #48 + WORD $0x9b057d85 // mul x5, x12, x5 + WORD $0xca050084 // eor x4, x4, x5 + WORD $0xca040042 // eor x2, x2, x4 + WORD $0xb203e3fe // mov lr, #2459565876494606882 + WORD $0x9b1e7da4 // mul x4, x13, lr + WORD $0x9b1c7e05 // mul x5, x16, x28 + WORD $0xca050084 // eor x4, x4, x5 + WORD $0x9b077e25 // mul x5, x17, x7 + WORD $0x9b067d86 // mul x6, x12, x6 + WORD $0xca0600a5 // eor x5, x5, x6 + WORD $0xca050084 // eor x4, x4, x5 + WORD $0x9b157da5 // mul x5, x13, x21 + WORD $0x9b1e7e06 // mul x6, x16, lr + WORD $0xca0600a5 // eor x5, x5, x6 + WORD $0x9b1c7e26 // mul x6, x17, x28 + WORD $0x9b077d87 // mul x7, x12, x7 + WORD $0xca0700c6 // eor x6, x6, x7 + WORD $0xca0600a5 // eor x5, x5, x6 + WORD $0x9b097dad // mul x13, x13, x9 + WORD $0x9b157e10 // mul x16, x16, x21 + WORD $0xca1001ad // eor x13, x13, x16 + WORD $0x9b1e7e30 // mul x16, x17, lr + WORD $0x9b1c7d8c // mul x12, x12, x28 + WORD $0xca0c020c // eor x12, x16, x12 + WORD $0xca0c01ac // eor x12, x13, x12 + WORD $0x9200e04d // and x13, x2, #0x1111111111111111 + WORD $0x9203e090 // and x16, x4, #0x2222222222222222 + WORD $0x9202e0b1 // and x17, x5, #0x4444444444444444 + WORD $0x9201e18c // and x12, x12, #0x8888888888888888 + WORD $0xaa1001ad // orr x13, x13, x16 + WORD $0xaa0c022c // orr x12, x17, x12 + WORD $0xaa0c01ac // orr x12, x13, x12 + WORD $0xca1b0185 // eor x5, x12, x27 + WORD $0x6e318ed7 // cmeq.16b v23, v22, v17 + WORD $0x4e211ef7 // and.16b v23, v23, v1 + WORD $0x4e0202f7 // tbl.16b v23, { v23 }, v2 + WORD $0x4e71baf7 // addv.8h h23, v23 + WORD $0x1e2602ec // fmov w12, s23 + WORD $0x6e318eb7 // cmeq.16b v23, v21, v17 + WORD $0x4e211ef7 // and.16b v23, v23, v1 + WORD $0x4e0202f7 // tbl.16b v23, { v23 }, v2 + WORD $0x4e71baf7 // addv.8h h23, v23 + WORD $0x1e2602ed // fmov w13, s23 + WORD $0x6e318e97 // cmeq.16b v23, v20, v17 + WORD $0x4e211ef7 // and.16b v23, v23, v1 + WORD $0x4e0202f7 // tbl.16b v23, { v23 }, v2 + WORD $0x4e71baf7 // addv.8h h23, v23 + WORD $0x1e2602f0 // fmov w16, s23 + WORD $0x6e318e77 // cmeq.16b v23, v19, v17 + WORD $0x4e211ef7 // and.16b v23, v23, v1 + WORD $0x4e0202f7 // tbl.16b v23, { v23 }, v2 + WORD $0x4e71baf7 // addv.8h h23, v23 + WORD $0x1e2602f1 // fmov w17, s23 + WORD $0xd3607e10 // lsl x16, x16, #32 + WORD $0xaa11c210 // orr x16, x16, x17, lsl #48 + WORD $0x53103dad // lsl w13, w13, #16 + WORD $0xaa0d020d // orr x13, x16, x13 + WORD $0xaa0c01ac // orr x12, x13, x12 + WORD $0x8a25019c // bic x28, x12, x5 + WORD $0x6e328ed6 // cmeq.16b v22, v22, v18 + WORD $0x4e211ed6 // and.16b v22, v22, v1 + WORD $0x4e0202d6 // tbl.16b v22, { v22 }, v2 + WORD $0x4e71bad6 // addv.8h h22, v22 + WORD $0x1e2602cc // fmov w12, s22 + WORD $0x6e328eb5 // cmeq.16b v21, v21, v18 + WORD $0x4e211eb5 // and.16b v21, v21, v1 + WORD $0x4e0202b5 // tbl.16b v21, { v21 }, v2 + WORD $0x4e71bab5 // addv.8h h21, v21 + WORD $0x1e2602ad // fmov w13, s21 + WORD $0x6e328e94 // cmeq.16b v20, v20, v18 + WORD $0x4e211e94 // and.16b v20, v20, v1 + WORD $0x4e020294 // tbl.16b v20, { v20 }, v2 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e260290 // fmov w16, s20 + WORD $0x6e328e73 // cmeq.16b v19, v19, v18 + WORD $0x4e211e73 // and.16b v19, v19, v1 + WORD $0x4e020273 // tbl.16b v19, { v19 }, v2 + WORD $0x4e71ba73 // addv.8h h19, v19 + WORD $0x1e260271 // fmov w17, s19 + WORD $0xd3607e10 // lsl x16, x16, #32 + WORD $0xaa11c210 // orr x16, x16, x17, lsl #48 + WORD $0x53103dad // lsl w13, w13, #16 + WORD $0xaa0d020d // orr x13, x16, x13 + WORD $0xaa0c01ac // orr x12, x13, x12 + WORD $0xea250184 // bics x4, x12, x5 + WORD $0x54ffe9e0 // b.eq LBB0_219 $-708(%rip) +LBB0_225: + WORD $0xd1000490 // sub x16, x4, #1 + WORD $0x8a1c020c // and x12, x16, x28 + WORD $0x9e670193 // fmov d19, x12 + WORD $0x0e205a73 // cnt.8b v19, v19 + WORD $0x2e303a73 // uaddlv.8b h19, v19 + WORD $0x1e26026c // fmov w12, s19 + WORD $0x8b08018c // add x12, x12, x8 + WORD $0xeb17019f // cmp x12, x23 + WORD $0x54002f89 // b.ls LBB0_282 $1520(%rip) + WORD $0x910006f7 // add x23, x23, #1 + WORD $0xea040204 // ands x4, x16, x4 + WORD $0x54fffea1 // b.ne LBB0_225 $-44(%rip) + WORD $0x17ffff42 // b LBB0_219 $-760(%rip) +LBB0_227: + WORD $0xf100035f // cmp x26, #0 + WORD $0x54003a6d // b.le LBB0_305 $1868(%rip) + WORD $0xad0243f0 // stp q16, q16, [sp, #64] + WORD $0xad0143f0 // stp q16, q16, [sp, #32] + WORD $0x92402e6c // and x12, x19, #0xfff + WORD $0xf13f059f // cmp x12, #4033 + WORD $0x54000363 // b.lo LBB0_239 $108(%rip) + WORD $0xf1008354 // subs x20, x26, #32 + WORD $0x540000a3 // b.lo LBB0_231 $20(%rip) + WORD $0xacc15273 // ldp q19, q20, [x19], #32 + WORD $0xad0153f3 // stp q19, q20, [sp, #32] + WORD $0xf9400fe5 // ldr x5, [sp, #24] + WORD $0x14000003 // b LBB0_232 $12(%rip) +LBB0_231: + WORD $0x910083e5 // add x5, sp, #32 + WORD $0xaa1a03f4 // mov x20, x26 +LBB0_232: + WORD $0xf1004290 // subs x16, x20, #16 + WORD $0x540002c3 // b.lo LBB0_240 $88(%rip) + WORD $0x3cc10673 // ldr q19, [x19], #16 + WORD $0x3c8104b3 // str q19, [x5], #16 + WORD $0xaa1003f4 // mov x20, x16 + WORD $0xf1002210 // subs x16, x16, #8 + WORD $0x54000262 // b.hs LBB0_241 $76(%rip) +LBB0_234: + WORD $0xf1001290 // subs x16, x20, #4 + WORD $0x540002c3 // b.lo LBB0_242 $88(%rip) +LBB0_235: + WORD $0xb840466c // ldr w12, [x19], #4 + WORD $0xb80044ac // str w12, [x5], #4 + WORD $0xaa1003f4 // mov x20, x16 + WORD $0xf1000a10 // subs x16, x16, #2 + WORD $0x54000262 // b.hs LBB0_243 $76(%rip) +LBB0_236: + WORD $0xb4000074 // cbz x20, LBB0_238 $12(%rip) +LBB0_237: + WORD $0x3940026c // ldrb w12, [x19] + WORD $0x390000ac // strb w12, [x5] +LBB0_238: + WORD $0x910083f3 // add x19, sp, #32 +LBB0_239: + WORD $0xb202e3f5 // mov x21, #4919131752989213764 + WORD $0xb201e3e9 // mov x9, #-8608480567731124088 + WORD $0x529ffff4 // mov w20, #65535 + WORD $0xf94007e3 // ldr x3, [sp, #8] + WORD $0x17ffff26 // b LBB0_221 $-872(%rip) +LBB0_240: + WORD $0xf1002290 // subs x16, x20, #8 + WORD $0x54fffde3 // b.lo LBB0_234 $-68(%rip) +LBB0_241: + WORD $0xf840866c // ldr x12, [x19], #8 + WORD $0xf80084ac // str x12, [x5], #8 + WORD $0xaa1003f4 // mov x20, x16 + WORD $0xf1001210 // subs x16, x16, #4 + WORD $0x54fffd82 // b.hs LBB0_235 $-80(%rip) +LBB0_242: + WORD $0xf1000a90 // subs x16, x20, #2 + WORD $0x54fffde3 // b.lo LBB0_236 $-68(%rip) +LBB0_243: + WORD $0x7840266c // ldrh w12, [x19], #2 + WORD $0x780024ac // strh w12, [x5], #2 + WORD $0xaa1003f4 // mov x20, x16 + WORD $0xb5fffd90 // cbnz x16, LBB0_237 $-80(%rip) + WORD $0x17ffffed // b LBB0_238 $-76(%rip) +LBB0_244: + WORD $0x910012e8 // add x8, x23, #4 +LBB0_245: + WORD $0xf940040c // ldr x12, [x0, #8] + WORD $0xeb0c011f // cmp x8, x12 + WORD $0x54ffd8e8 // b.hi LBB0_197 $-1252(%rip) + WORD $0xf9000028 // str x8, [x1] + WORD $0xaa0803f3 // mov x19, x8 + WORD $0x17fffec4 // b LBB0_197 $-1264(%rip) +LBB0_247: + WORD $0xf9400410 // ldr x16, [x0, #8] + WORD $0xcb130208 // sub x8, x16, x19 + WORD $0xf100811f // cmp x8, #32 + WORD $0x54002a0b // b.lt LBB0_287 $1344(%rip) + WORD $0xd2800008 // mov x8, #0 + WORD $0xd280001a // mov x26, #0 + WORD $0x8b1702d9 // add x25, x22, x23 + WORD $0xcb170205 // sub x5, x16, x23 + WORD $0x528003fb // mov w27, #31 +LBB0_249: + WORD $0x8b08032c // add x12, x25, x8 + WORD $0x3cc01193 // ldur q19, [x12, #1] + WORD $0x3cc11194 // ldur q20, [x12, #17] + WORD $0x6e208e75 // cmeq.16b v21, v19, v0 + WORD $0x4e211eb5 // and.16b v21, v21, v1 + WORD $0x4e0202b5 // tbl.16b v21, { v21 }, v2 + WORD $0x4e71bab5 // addv.8h h21, v21 + WORD $0x1e2602a4 // fmov w4, s21 + WORD $0x6e208e95 // cmeq.16b v21, v20, v0 + WORD $0x4e211eb5 // and.16b v21, v21, v1 + WORD $0x4e0202b5 // tbl.16b v21, { v21 }, v2 + WORD $0x4e71bab5 // addv.8h h21, v21 + WORD $0x1e2602ac // fmov w12, s21 + WORD $0x33103d84 // bfi w4, w12, #16, #16 + WORD $0x6e238e73 // cmeq.16b v19, v19, v3 + WORD $0x4e211e73 // and.16b v19, v19, v1 + WORD $0x4e020273 // tbl.16b v19, { v19 }, v2 + WORD $0x4e71ba73 // addv.8h h19, v19 + WORD $0x1e260270 // fmov w16, s19 + WORD $0x6e238e93 // cmeq.16b v19, v20, v3 + WORD $0x4e211e73 // and.16b v19, v19, v1 + WORD $0x4e020273 // tbl.16b v19, { v19 }, v2 + WORD $0x4e71ba73 // addv.8h h19, v19 + WORD $0x1e26026c // fmov w12, s19 + WORD $0x33103d90 // bfi w16, w12, #16, #16 + WORD $0x7100021f // cmp w16, #0 + WORD $0xfa400b40 // ccmp x26, #0, #0, eq + WORD $0x54000180 // b.eq LBB0_251 $48(%rip) + WORD $0x0a3a020c // bic w12, w16, w26 + WORD $0x2a0c074d // orr w13, w26, w12, lsl #1 + WORD $0x0a1e0210 // and w16, w16, w30 + WORD $0x0a2d0210 // bic w16, w16, w13 + WORD $0x2b0c020c // adds w12, w16, w12 + WORD $0x1a9f37fa // cset w26, hs + WORD $0x4a0c04cc // eor w12, w6, w12, lsl #1 + WORD $0x0a0d018c // and w12, w12, w13 + WORD $0x2a2c03ec // mvn w12, w12 + WORD $0x8a040184 // and x4, x12, x4 + WORD $0x14000002 // b LBB0_252 $8(%rip) +LBB0_251: + WORD $0xd280001a // mov x26, #0 +LBB0_252: + WORD $0xb50022c4 // cbnz x4, LBB0_283 $1112(%rip) + WORD $0x91008108 // add x8, x8, #32 + WORD $0xd100837b // sub x27, x27, #32 + WORD $0x8b1b00ac // add x12, x5, x27 + WORD $0xf100fd9f // cmp x12, #63 + WORD $0x54fffa6c // b.gt LBB0_249 $-180(%rip) + WORD $0xb5002c9a // cbnz x26, LBB0_306 $1424(%rip) + WORD $0x8b1702cc // add x12, x22, x23 + WORD $0x8b08018c // add x12, x12, x8 + WORD $0x91000594 // add x20, x12, #1 + WORD $0xaa2803e8 // mvn x8, x8 + WORD $0x8b050108 // add x8, x8, x5 + WORD $0xf100051f // cmp x8, #1 + WORD $0x54002daa // b.ge LBB0_309 $1460(%rip) + WORD $0x1400017a // b LBB0_314 $1512(%rip) +LBB0_256: + WORD $0xb201e3e9 // mov x9, #-8608480567731124088 + WORD $0xd280001b // mov x27, #0 + WORD $0xd2800019 // mov x25, #0 + WORD $0xd2800008 // mov x8, #0 + WORD $0xd2800017 // mov x23, #0 + WORD $0xf940040c // ldr x12, [x0, #8] + WORD $0xcb13019a // sub x26, x12, x19 + WORD $0x8b1302d3 // add x19, x22, x19 + WORD $0x14000009 // b LBB0_258 $36(%rip) +LBB0_257: + WORD $0x937ffcbb // asr x27, x5, #63 + WORD $0x9e670393 // fmov d19, x28 + WORD $0x0e205a73 // cnt.8b v19, v19 + WORD $0x2e303a73 // uaddlv.8b h19, v19 + WORD $0x1e26026c // fmov w12, s19 + WORD $0x8b080188 // add x8, x12, x8 + WORD $0x91010273 // add x19, x19, #64 + WORD $0xaa1603fa // mov x26, x22 +LBB0_258: + WORD $0xf1010356 // subs x22, x26, #64 + WORD $0x540016cb // b.lt LBB0_265 $728(%rip) +LBB0_259: + WORD $0xad405676 // ldp q22, q21, [x19] + WORD $0xad414e74 // ldp q20, q19, [x19, #32] + WORD $0x6e238ed7 // cmeq.16b v23, v22, v3 + WORD $0x4e211ef7 // and.16b v23, v23, v1 + WORD $0x4e0202f7 // tbl.16b v23, { v23 }, v2 + WORD $0x4e71baf7 // addv.8h h23, v23 + WORD $0x1e2602ec // fmov w12, s23 + WORD $0x6e238eb7 // cmeq.16b v23, v21, v3 + WORD $0x4e211ef7 // and.16b v23, v23, v1 + WORD $0x4e0202f7 // tbl.16b v23, { v23 }, v2 + WORD $0x4e71baf7 // addv.8h h23, v23 + WORD $0x1e2602ed // fmov w13, s23 + WORD $0x6e238e97 // cmeq.16b v23, v20, v3 + WORD $0x4e211ef7 // and.16b v23, v23, v1 + WORD $0x4e0202f7 // tbl.16b v23, { v23 }, v2 + WORD $0x4e71baf7 // addv.8h h23, v23 + WORD $0x1e2602f0 // fmov w16, s23 + WORD $0x6e238e77 // cmeq.16b v23, v19, v3 + WORD $0x4e211ef7 // and.16b v23, v23, v1 + WORD $0x4e0202f7 // tbl.16b v23, { v23 }, v2 + WORD $0x4e71baf7 // addv.8h h23, v23 + WORD $0x1e2602f1 // fmov w17, s23 + WORD $0xd3607e10 // lsl x16, x16, #32 + WORD $0xaa11c210 // orr x16, x16, x17, lsl #48 + WORD $0x53103dad // lsl w13, w13, #16 + WORD $0xaa0d020d // orr x13, x16, x13 + WORD $0xaa0c01b0 // orr x16, x13, x12 + WORD $0xaa19020c // orr x12, x16, x25 + WORD $0xb500008c // cbnz x12, LBB0_261 $16(%rip) + WORD $0xd2800019 // mov x25, #0 + WORD $0xd2800004 // mov x4, #0 + WORD $0x1400000a // b LBB0_262 $40(%rip) +LBB0_261: + WORD $0x8a39020c // bic x12, x16, x25 + WORD $0xaa0c072d // orr x13, x25, x12, lsl #1 + WORD $0x8a2d0210 // bic x16, x16, x13 + WORD $0x9201f210 // and x16, x16, #0xaaaaaaaaaaaaaaaa + WORD $0xab0c020c // adds x12, x16, x12 + WORD $0x1a9f37f9 // cset w25, hs + WORD $0xd37ff98c // lsl x12, x12, #1 + WORD $0xd200f18c // eor x12, x12, #0x5555555555555555 + WORD $0x8a0d0184 // and x4, x12, x13 +LBB0_262: + WORD $0x6e208ed7 // cmeq.16b v23, v22, v0 + WORD $0x4e211ef7 // and.16b v23, v23, v1 + WORD $0x4e0202f7 // tbl.16b v23, { v23 }, v2 + WORD $0x4e71baf7 // addv.8h h23, v23 + WORD $0x1e2602ec // fmov w12, s23 + WORD $0x6e208eb7 // cmeq.16b v23, v21, v0 + WORD $0x4e211ef7 // and.16b v23, v23, v1 + WORD $0x4e0202f7 // tbl.16b v23, { v23 }, v2 + WORD $0x4e71baf7 // addv.8h h23, v23 + WORD $0x1e2602ed // fmov w13, s23 + WORD $0x6e208e97 // cmeq.16b v23, v20, v0 + WORD $0x4e211ef7 // and.16b v23, v23, v1 + WORD $0x4e0202f7 // tbl.16b v23, { v23 }, v2 + WORD $0x4e71baf7 // addv.8h h23, v23 + WORD $0x1e2602f0 // fmov w16, s23 + WORD $0x6e208e77 // cmeq.16b v23, v19, v0 + WORD $0x4e211ef7 // and.16b v23, v23, v1 + WORD $0x4e0202f7 // tbl.16b v23, { v23 }, v2 + WORD $0x4e71baf7 // addv.8h h23, v23 + WORD $0x1e2602f1 // fmov w17, s23 + WORD $0xd3607e10 // lsl x16, x16, #32 + WORD $0xaa11c210 // orr x16, x16, x17, lsl #48 + WORD $0x53103dad // lsl w13, w13, #16 + WORD $0xaa0d020d // orr x13, x16, x13 + WORD $0xaa0c01ac // orr x12, x13, x12 + WORD $0x8a24018c // bic x12, x12, x4 + WORD $0x9200e18d // and x13, x12, #0x1111111111111111 + WORD $0x9203e190 // and x16, x12, #0x2222222222222222 + WORD $0x9202e191 // and x17, x12, #0x4444444444444444 + WORD $0x9201e18c // and x12, x12, #0x8888888888888888 + WORD $0xb200e3fc // mov x28, #1229782938247303441 + WORD $0x9b1c7da2 // mul x2, x13, x28 + WORD $0xb201e3e7 // mov x7, #-8608480567731124088 + WORD $0xf2e11107 // movk x7, #2184, lsl #48 + WORD $0x9b077e04 // mul x4, x16, x7 + WORD $0xca040042 // eor x2, x2, x4 + WORD $0xb202e3e6 // mov x6, #4919131752989213764 + WORD $0xf2e08886 // movk x6, #1092, lsl #48 + WORD $0x9b067e24 // mul x4, x17, x6 + WORD $0xb203e3e5 // mov x5, #2459565876494606882 + WORD $0xf2e04445 // movk x5, #546, lsl #48 + WORD $0x9b057d85 // mul x5, x12, x5 + WORD $0xca050084 // eor x4, x4, x5 + WORD $0xca040042 // eor x2, x2, x4 + WORD $0xb203e3fe // mov lr, #2459565876494606882 + WORD $0x9b1e7da4 // mul x4, x13, lr + WORD $0x9b1c7e05 // mul x5, x16, x28 + WORD $0xca050084 // eor x4, x4, x5 + WORD $0x9b077e25 // mul x5, x17, x7 + WORD $0x9b067d86 // mul x6, x12, x6 + WORD $0xca0600a5 // eor x5, x5, x6 + WORD $0xca050084 // eor x4, x4, x5 + WORD $0x9b157da5 // mul x5, x13, x21 + WORD $0x9b1e7e06 // mul x6, x16, lr + WORD $0xca0600a5 // eor x5, x5, x6 + WORD $0x9b1c7e26 // mul x6, x17, x28 + WORD $0x9b077d87 // mul x7, x12, x7 + WORD $0xca0700c6 // eor x6, x6, x7 + WORD $0xca0600a5 // eor x5, x5, x6 + WORD $0x9b097dad // mul x13, x13, x9 + WORD $0x9b157e10 // mul x16, x16, x21 + WORD $0xca1001ad // eor x13, x13, x16 + WORD $0x9b1e7e30 // mul x16, x17, lr + WORD $0x9b1c7d8c // mul x12, x12, x28 + WORD $0xca0c020c // eor x12, x16, x12 + WORD $0xca0c01ac // eor x12, x13, x12 + WORD $0x9200e04d // and x13, x2, #0x1111111111111111 + WORD $0x9203e090 // and x16, x4, #0x2222222222222222 + WORD $0x9202e0b1 // and x17, x5, #0x4444444444444444 + WORD $0x9201e18c // and x12, x12, #0x8888888888888888 + WORD $0xaa1001ad // orr x13, x13, x16 + WORD $0xaa0c022c // orr x12, x17, x12 + WORD $0xaa0c01ac // orr x12, x13, x12 + WORD $0xca1b0185 // eor x5, x12, x27 + WORD $0x6e278ed7 // cmeq.16b v23, v22, v7 + WORD $0x4e211ef7 // and.16b v23, v23, v1 + WORD $0x4e0202f7 // tbl.16b v23, { v23 }, v2 + WORD $0x4e71baf7 // addv.8h h23, v23 + WORD $0x1e2602ec // fmov w12, s23 + WORD $0x6e278eb7 // cmeq.16b v23, v21, v7 + WORD $0x4e211ef7 // and.16b v23, v23, v1 + WORD $0x4e0202f7 // tbl.16b v23, { v23 }, v2 + WORD $0x4e71baf7 // addv.8h h23, v23 + WORD $0x1e2602ed // fmov w13, s23 + WORD $0x6e278e97 // cmeq.16b v23, v20, v7 + WORD $0x4e211ef7 // and.16b v23, v23, v1 + WORD $0x4e0202f7 // tbl.16b v23, { v23 }, v2 + WORD $0x4e71baf7 // addv.8h h23, v23 + WORD $0x1e2602f0 // fmov w16, s23 + WORD $0x6e278e77 // cmeq.16b v23, v19, v7 + WORD $0x4e211ef7 // and.16b v23, v23, v1 + WORD $0x4e0202f7 // tbl.16b v23, { v23 }, v2 + WORD $0x4e71baf7 // addv.8h h23, v23 + WORD $0x1e2602f1 // fmov w17, s23 + WORD $0xd3607e10 // lsl x16, x16, #32 + WORD $0xaa11c210 // orr x16, x16, x17, lsl #48 + WORD $0x53103dad // lsl w13, w13, #16 + WORD $0xaa0d020d // orr x13, x16, x13 + WORD $0xaa0c01ac // orr x12, x13, x12 + WORD $0x8a25019c // bic x28, x12, x5 + WORD $0x6e268ed6 // cmeq.16b v22, v22, v6 + WORD $0x4e211ed6 // and.16b v22, v22, v1 + WORD $0x4e0202d6 // tbl.16b v22, { v22 }, v2 + WORD $0x4e71bad6 // addv.8h h22, v22 + WORD $0x1e2602cc // fmov w12, s22 + WORD $0x6e268eb5 // cmeq.16b v21, v21, v6 + WORD $0x4e211eb5 // and.16b v21, v21, v1 + WORD $0x4e0202b5 // tbl.16b v21, { v21 }, v2 + WORD $0x4e71bab5 // addv.8h h21, v21 + WORD $0x1e2602ad // fmov w13, s21 + WORD $0x6e268e94 // cmeq.16b v20, v20, v6 + WORD $0x4e211e94 // and.16b v20, v20, v1 + WORD $0x4e020294 // tbl.16b v20, { v20 }, v2 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e260290 // fmov w16, s20 + WORD $0x6e268e73 // cmeq.16b v19, v19, v6 + WORD $0x4e211e73 // and.16b v19, v19, v1 + WORD $0x4e020273 // tbl.16b v19, { v19 }, v2 + WORD $0x4e71ba73 // addv.8h h19, v19 + WORD $0x1e260271 // fmov w17, s19 + WORD $0xd3607e10 // lsl x16, x16, #32 + WORD $0xaa11c210 // orr x16, x16, x17, lsl #48 + WORD $0x53103dad // lsl w13, w13, #16 + WORD $0xaa0d020d // orr x13, x16, x13 + WORD $0xaa0c01ac // orr x12, x13, x12 + WORD $0xea250184 // bics x4, x12, x5 + WORD $0x54ffe9e0 // b.eq LBB0_257 $-708(%rip) +LBB0_263: + WORD $0xd1000490 // sub x16, x4, #1 + WORD $0x8a1c020c // and x12, x16, x28 + WORD $0x9e670193 // fmov d19, x12 + WORD $0x0e205a73 // cnt.8b v19, v19 + WORD $0x2e303a73 // uaddlv.8b h19, v19 + WORD $0x1e26026c // fmov w12, s19 + WORD $0x8b08018c // add x12, x12, x8 + WORD $0xeb17019f // cmp x12, x23 + WORD $0x54000729 // b.ls LBB0_282 $228(%rip) + WORD $0x910006f7 // add x23, x23, #1 + WORD $0xea040204 // ands x4, x16, x4 + WORD $0x54fffea1 // b.ne LBB0_263 $-44(%rip) + WORD $0x17ffff42 // b LBB0_257 $-760(%rip) +LBB0_265: + WORD $0xf100035f // cmp x26, #0 + WORD $0x5400120d // b.le LBB0_305 $576(%rip) + WORD $0xad0243f0 // stp q16, q16, [sp, #64] + WORD $0xad0143f0 // stp q16, q16, [sp, #32] + WORD $0x92402e6c // and x12, x19, #0xfff + WORD $0xf13f059f // cmp x12, #4033 + WORD $0x54000363 // b.lo LBB0_277 $108(%rip) + WORD $0xf1008354 // subs x20, x26, #32 + WORD $0x540000a3 // b.lo LBB0_269 $20(%rip) + WORD $0xacc15273 // ldp q19, q20, [x19], #32 + WORD $0xad0153f3 // stp q19, q20, [sp, #32] + WORD $0xf9400fe5 // ldr x5, [sp, #24] + WORD $0x14000003 // b LBB0_270 $12(%rip) +LBB0_269: + WORD $0x910083e5 // add x5, sp, #32 + WORD $0xaa1a03f4 // mov x20, x26 +LBB0_270: + WORD $0xf1004290 // subs x16, x20, #16 + WORD $0x540002c3 // b.lo LBB0_278 $88(%rip) + WORD $0x3cc10673 // ldr q19, [x19], #16 + WORD $0x3c8104b3 // str q19, [x5], #16 + WORD $0xaa1003f4 // mov x20, x16 + WORD $0xf1002210 // subs x16, x16, #8 + WORD $0x54000262 // b.hs LBB0_279 $76(%rip) +LBB0_272: + WORD $0xf1001290 // subs x16, x20, #4 + WORD $0x540002c3 // b.lo LBB0_280 $88(%rip) +LBB0_273: + WORD $0xb840466c // ldr w12, [x19], #4 + WORD $0xb80044ac // str w12, [x5], #4 + WORD $0xaa1003f4 // mov x20, x16 + WORD $0xf1000a10 // subs x16, x16, #2 + WORD $0x54000262 // b.hs LBB0_281 $76(%rip) +LBB0_274: + WORD $0xb4000074 // cbz x20, LBB0_276 $12(%rip) +LBB0_275: + WORD $0x3940026c // ldrb w12, [x19] + WORD $0x390000ac // strb w12, [x5] +LBB0_276: + WORD $0x910083f3 // add x19, sp, #32 +LBB0_277: + WORD $0xb202e3f5 // mov x21, #4919131752989213764 + WORD $0xb201e3e9 // mov x9, #-8608480567731124088 + WORD $0x529ffff4 // mov w20, #65535 + WORD $0xf94007e3 // ldr x3, [sp, #8] + WORD $0x17ffff26 // b LBB0_259 $-872(%rip) +LBB0_278: + WORD $0xf1002290 // subs x16, x20, #8 + WORD $0x54fffde3 // b.lo LBB0_272 $-68(%rip) +LBB0_279: + WORD $0xf840866c // ldr x12, [x19], #8 + WORD $0xf80084ac // str x12, [x5], #8 + WORD $0xaa1003f4 // mov x20, x16 + WORD $0xf1001210 // subs x16, x16, #4 + WORD $0x54fffd82 // b.hs LBB0_273 $-80(%rip) +LBB0_280: + WORD $0xf1000a90 // subs x16, x20, #2 + WORD $0x54fffde3 // b.lo LBB0_274 $-68(%rip) +LBB0_281: + WORD $0x7840266c // ldrh w12, [x19], #2 + WORD $0x780024ac // strh w12, [x5], #2 + WORD $0xaa1003f4 // mov x20, x16 + WORD $0xb5fffd90 // cbnz x16, LBB0_275 $-80(%rip) + WORD $0x17ffffed // b LBB0_276 $-76(%rip) +LBB0_282: + WORD $0xf9400408 // ldr x8, [x0, #8] + WORD $0xdac0008c // rbit x12, x4 + WORD $0xdac0118c // clz x12, x12 + WORD $0xcb1a018c // sub x12, x12, x26 + WORD $0x8b080188 // add x8, x12, x8 + WORD $0x9100050c // add x12, x8, #1 + WORD $0xf900002c // str x12, [x1] + WORD $0xf940040d // ldr x13, [x0, #8] + WORD $0xeb0d019f // cmp x12, x13 + WORD $0x9a8825b3 // csinc x19, x13, x8, hs + WORD $0x14000006 // b LBB0_284 $24(%rip) +LBB0_283: + WORD $0xdac0008c // rbit x12, x4 + WORD $0xdac0118c // clz x12, x12 + WORD $0x8b0802e8 // add x8, x23, x8 + WORD $0x8b080188 // add x8, x12, x8 + WORD $0x91000913 // add x19, x8, #2 +LBB0_284: + WORD $0xf9000033 // str x19, [x1] + WORD $0xa9410bf1 // ldp x17, x2, [sp, #16] + WORD $0x17fffd75 // b LBB0_197 $-2604(%rip) +LBB0_285: + WORD $0xf9000033 // str x19, [x1] + WORD $0x17fffd73 // b LBB0_197 $-2612(%rip) +LBB0_286: + WORD $0xd2800005 // mov x5, #0 + WORD $0x17fffc9f // b LBB0_130 $-3460(%rip) +LBB0_287: + WORD $0x8b1302d4 // add x20, x22, x19 + WORD $0xf100051f // cmp x8, #1 + WORD $0x54000aca // b.ge LBB0_309 $344(%rip) + WORD $0x14000063 // b LBB0_314 $396(%rip) +LBB0_288: + WORD $0x10ff41e9 // adr x9, lCPI0_0 $-6084(%rip) + WORD $0x14000017 // b LBB0_292 $92(%rip) +LBB0_289: + WORD $0xdac0008c // rbit x12, x4 + WORD $0xdac0118c // clz x12, x12 + WORD $0xcb16020d // sub x13, x16, x22 + WORD $0x8b0c01ac // add x12, x13, x12 + WORD $0xb100079f // cmn x28, #1 + WORD $0x9a8c139c // csel x28, x28, x12, ne +LBB0_290: + WORD $0x0a39008c // bic w12, w4, w25 + WORD $0x531f798d // lsl w13, w12, #1 + WORD $0x331f7999 // bfi w25, w12, #1, #31 + WORD $0x0a2d008d // bic w13, w4, w13 + WORD $0x1201f1ad // and w13, w13, #0xaaaaaaaa + WORD $0x2b0c01ac // adds w12, w13, w12 + WORD $0x4a0c052c // eor w12, w9, w12, lsl #1 + WORD $0x0a19018c // and w12, w12, w25 + WORD $0x1a9f37f9 // cset w25, hs + WORD $0x2a2c03ec // mvn w12, w12 + WORD $0x8a1e019e // and lr, x12, lr + WORD $0x529ffff4 // mov w20, #65535 + WORD $0x10ff3f69 // adr x9, lCPI0_0 $-6164(%rip) + WORD $0xb5ff769e // cbnz lr, LBB0_90 $-4400(%rip) +LBB0_291: + WORD $0x91008210 // add x16, x16, #32 + WORD $0xaa1b03fe // mov lr, x27 +LBB0_292: + WORD $0xb5000419 // cbnz x25, LBB0_303 $128(%rip) + WORD $0xb400033e // cbz lr, LBB0_301 $100(%rip) +LBB0_294: + WORD $0xaa3603ed // mvn x13, x22 +LBB0_295: + WORD $0xaa1003fb // mov x27, x16 + WORD $0x38401779 // ldrb w25, [x27], #1 + WORD $0x71008b3f // cmp w25, #34 + WORD $0x540002a0 // b.eq LBB0_302 $84(%rip) + WORD $0xd10007c4 // sub x4, lr, #1 + WORD $0x7101733f // cmp w25, #92 + WORD $0x540000a0 // b.eq LBB0_298 $20(%rip) + WORD $0xaa1b03f0 // mov x16, x27 + WORD $0xaa0403fe // mov lr, x4 + WORD $0xb5fffee4 // cbnz x4, LBB0_295 $-36(%rip) + WORD $0x1400000b // b LBB0_300 $44(%rip) +LBB0_298: + WORD $0xb4012ce4 // cbz x4, LBB0_805 $9628(%rip) + WORD $0x8b0d036c // add x12, x27, x13 + WORD $0xb100079f // cmn x28, #1 + WORD $0x9a9c019c // csel x28, x12, x28, eq + WORD $0x91000a10 // add x16, x16, #2 + WORD $0xd1000bc4 // sub x4, lr, #2 + WORD $0x529ffff4 // mov w20, #65535 + WORD $0x10ff3c49 // adr x9, lCPI0_0 $-6264(%rip) + WORD $0xaa0403fe // mov lr, x4 + WORD $0xb5fffd84 // cbnz x4, LBB0_295 $-80(%rip) +LBB0_300: + WORD $0x71008b3f // cmp w25, #34 + WORD $0x54012b81 // b.ne LBB0_805 $9584(%rip) +LBB0_301: + WORD $0xaa1003fb // mov x27, x16 +LBB0_302: + WORD $0x3200f3e6 // mov w6, #1431655765 + WORD $0x3201f3fe // mov w30, #-1431655766 + WORD $0xcb160379 // sub x25, x27, x22 + WORD $0xb6ff6119 // tbz x25, #63, LBB0_61 $-5088(%rip) + WORD $0x14000956 // b LBB0_805 $9560(%rip) +LBB0_303: + WORD $0xb4012abe // cbz lr, LBB0_805 $9556(%rip) + WORD $0xaa3603ec // mvn x12, x22 + WORD $0x8b0c020c // add x12, x16, x12 + WORD $0xb100079f // cmn x28, #1 + WORD $0x9a9c019c // csel x28, x12, x28, eq + WORD $0x91000610 // add x16, x16, #1 + WORD $0xd10007de // sub lr, lr, #1 + WORD $0x529ffff4 // mov w20, #65535 + WORD $0xb5fffb5e // cbnz lr, LBB0_294 $-152(%rip) + WORD $0x17fffff1 // b LBB0_301 $-60(%rip) +LBB0_305: + WORD $0xf9400413 // ldr x19, [x0, #8] + WORD $0x1400001e // b LBB0_313 $120(%rip) +LBB0_306: + WORD $0xd10004ac // sub x12, x5, #1 + WORD $0xeb08019f // cmp x12, x8 + WORD $0x54000380 // b.eq LBB0_314 $112(%rip) + WORD $0x8b1702cc // add x12, x22, x23 + WORD $0x8b08018c // add x12, x12, x8 + WORD $0x91000994 // add x20, x12, #2 + WORD $0xcb0800a8 // sub x8, x5, x8 + WORD $0xd1000908 // sub x8, x8, #2 + WORD $0xf100051f // cmp x8, #1 + WORD $0x540000ea // b.ge LBB0_309 $28(%rip) + WORD $0x14000014 // b LBB0_314 $80(%rip) +LBB0_308: + WORD $0x92800030 // mov x16, #-2 + WORD $0x52800044 // mov w4, #2 + WORD $0x8b040294 // add x20, x20, x4 + WORD $0xab100108 // adds x8, x8, x16 + WORD $0x540001ed // b.le LBB0_314 $60(%rip) +LBB0_309: + WORD $0x39400290 // ldrb w16, [x20] + WORD $0x7101721f // cmp w16, #92 + WORD $0x54ffff20 // b.eq LBB0_308 $-28(%rip) + WORD $0x71008a1f // cmp w16, #34 + WORD $0x540000e0 // b.eq LBB0_312 $28(%rip) + WORD $0x92800010 // mov x16, #-1 + WORD $0x52800024 // mov w4, #1 + WORD $0x8b040294 // add x20, x20, x4 + WORD $0xab100108 // adds x8, x8, x16 + WORD $0x54fffeec // b.gt LBB0_309 $-36(%rip) + WORD $0x14000004 // b LBB0_314 $16(%rip) +LBB0_312: + WORD $0xcb160288 // sub x8, x20, x22 + WORD $0x91000513 // add x19, x8, #1 +LBB0_313: + WORD $0xf9000033 // str x19, [x1] +LBB0_314: + WORD $0x529ffff4 // mov w20, #65535 + WORD $0xa9410bf1 // ldp x17, x2, [sp, #16] + WORD $0xf94007e3 // ldr x3, [sp, #8] + WORD $0x17fffd07 // b LBB0_197 $-3044(%rip) +LBB0_315: + WORD $0x71016d1f // cmp w8, #91 + WORD $0x540118e1 // b.ne LBB0_775 $8988(%rip) + WORD $0xf9400568 // ldr x8, [x11, #8] + WORD $0xf9400117 // ldr x23, [x8] + WORD $0xb7f91677 // tbnz x23, #63, LBB0_768 $8908(%rip) + WORD $0xf9400405 // ldr x5, [x0, #8] + WORD $0xeb05033f // cmp x25, x5 + WORD $0x54000162 // b.hs LBB0_322 $44(%rip) + WORD $0x38796ac8 // ldrb w8, [x22, x25] + WORD $0x7100351f // cmp w8, #13 + WORD $0x54000100 // b.eq LBB0_322 $32(%rip) + WORD $0x7100811f // cmp w8, #32 + WORD $0x540000c0 // b.eq LBB0_322 $24(%rip) + WORD $0x51002d08 // sub w8, w8, #11 + WORD $0x3100091f // cmn w8, #2 + WORD $0x54000062 // b.hs LBB0_322 $12(%rip) + WORD $0xaa1903e8 // mov x8, x25 + WORD $0x14000033 // b LBB0_339 $204(%rip) +LBB0_322: + WORD $0x91000728 // add x8, x25, #1 + WORD $0xeb05011f // cmp x8, x5 + WORD $0x54000122 // b.hs LBB0_326 $36(%rip) + WORD $0x38686ad0 // ldrb w16, [x22, x8] + WORD $0x7100361f // cmp w16, #13 + WORD $0x540000c0 // b.eq LBB0_326 $24(%rip) + WORD $0x7100821f // cmp w16, #32 + WORD $0x54000080 // b.eq LBB0_326 $16(%rip) + WORD $0x51002e0c // sub w12, w16, #11 + WORD $0x3100099f // cmn w12, #2 + WORD $0x54000503 // b.lo LBB0_339 $160(%rip) +LBB0_326: + WORD $0x91000b28 // add x8, x25, #2 + WORD $0xeb05011f // cmp x8, x5 + WORD $0x54000122 // b.hs LBB0_330 $36(%rip) + WORD $0x38686ad0 // ldrb w16, [x22, x8] + WORD $0x7100361f // cmp w16, #13 + WORD $0x540000c0 // b.eq LBB0_330 $24(%rip) + WORD $0x7100821f // cmp w16, #32 + WORD $0x54000080 // b.eq LBB0_330 $16(%rip) + WORD $0x51002e0c // sub w12, w16, #11 + WORD $0x3100099f // cmn w12, #2 + WORD $0x540003a3 // b.lo LBB0_339 $116(%rip) +LBB0_330: + WORD $0x91000f28 // add x8, x25, #3 + WORD $0xeb05011f // cmp x8, x5 + WORD $0x54000122 // b.hs LBB0_334 $36(%rip) + WORD $0x38686ad0 // ldrb w16, [x22, x8] + WORD $0x7100361f // cmp w16, #13 + WORD $0x540000c0 // b.eq LBB0_334 $24(%rip) + WORD $0x7100821f // cmp w16, #32 + WORD $0x54000080 // b.eq LBB0_334 $16(%rip) + WORD $0x51002e0c // sub w12, w16, #11 + WORD $0x3100099f // cmn w12, #2 + WORD $0x54000243 // b.lo LBB0_339 $72(%rip) +LBB0_334: + WORD $0x91001328 // add x8, x25, #4 + WORD $0xeb05011f // cmp x8, x5 + WORD $0x54000162 // b.hs LBB0_337 $44(%rip) +LBB0_335: + WORD $0x38686acc // ldrb w12, [x22, x8] + WORD $0x7100819f // cmp w12, #32 + WORD $0x9acc21cc // lsl x12, x14, x12 + WORD $0x8a0f018c // and x12, x12, x15 + WORD $0xfa409984 // ccmp x12, #0, #4, ls + WORD $0x540000e0 // b.eq LBB0_338 $28(%rip) + WORD $0x91000508 // add x8, x8, #1 + WORD $0xeb0800bf // cmp x5, x8 + WORD $0x54ffff01 // b.ne LBB0_335 $-32(%rip) + WORD $0x1400000a // b LBB0_340 $40(%rip) +LBB0_337: + WORD $0xaa0803f9 // mov x25, x8 + WORD $0x14000008 // b LBB0_340 $32(%rip) +LBB0_338: + WORD $0xeb05011f // cmp x8, x5 + WORD $0x540000c2 // b.hs LBB0_340 $24(%rip) +LBB0_339: + WORD $0x91000519 // add x25, x8, #1 + WORD $0xf9000039 // str x25, [x1] + WORD $0x38686acc // ldrb w12, [x22, x8] + WORD $0x7101759f // cmp w12, #93 + WORD $0x54010f60 // b.eq LBB0_773 $8684(%rip) +LBB0_340: + WORD $0xd1000733 // sub x19, x25, #1 + WORD $0xf9000033 // str x19, [x1] +LBB0_341: + WORD $0xf10006f7 // subs x23, x23, #1 + WORD $0x540069ab // b.lt LBB0_488 $3380(%rip) + WORD $0xf9400405 // ldr x5, [x0, #8] + WORD $0xeb05027f // cmp x19, x5 + WORD $0x54000162 // b.hs LBB0_347 $44(%rip) + WORD $0x38736ac8 // ldrb w8, [x22, x19] + WORD $0x7100351f // cmp w8, #13 + WORD $0x54000100 // b.eq LBB0_347 $32(%rip) + WORD $0x7100811f // cmp w8, #32 + WORD $0x540000c0 // b.eq LBB0_347 $24(%rip) + WORD $0x51002d08 // sub w8, w8, #11 + WORD $0x3100091f // cmn w8, #2 + WORD $0x54000062 // b.hs LBB0_347 $12(%rip) + WORD $0xaa1303e8 // mov x8, x19 + WORD $0x14000031 // b LBB0_363 $196(%rip) +LBB0_347: + WORD $0x91000668 // add x8, x19, #1 + WORD $0xeb05011f // cmp x8, x5 + WORD $0x54000122 // b.hs LBB0_351 $36(%rip) + WORD $0x38686ad0 // ldrb w16, [x22, x8] + WORD $0x7100361f // cmp w16, #13 + WORD $0x540000c0 // b.eq LBB0_351 $24(%rip) + WORD $0x7100821f // cmp w16, #32 + WORD $0x54000080 // b.eq LBB0_351 $16(%rip) + WORD $0x51002e0c // sub w12, w16, #11 + WORD $0x3100099f // cmn w12, #2 + WORD $0x540004c3 // b.lo LBB0_363 $152(%rip) +LBB0_351: + WORD $0x91000a68 // add x8, x19, #2 + WORD $0xeb05011f // cmp x8, x5 + WORD $0x54000122 // b.hs LBB0_355 $36(%rip) + WORD $0x38686ad0 // ldrb w16, [x22, x8] + WORD $0x7100361f // cmp w16, #13 + WORD $0x540000c0 // b.eq LBB0_355 $24(%rip) + WORD $0x7100821f // cmp w16, #32 + WORD $0x54000080 // b.eq LBB0_355 $16(%rip) + WORD $0x51002e0c // sub w12, w16, #11 + WORD $0x3100099f // cmn w12, #2 + WORD $0x54000363 // b.lo LBB0_363 $108(%rip) +LBB0_355: + WORD $0x91000e68 // add x8, x19, #3 + WORD $0xeb05011f // cmp x8, x5 + WORD $0x54000122 // b.hs LBB0_359 $36(%rip) + WORD $0x38686ad0 // ldrb w16, [x22, x8] + WORD $0x7100361f // cmp w16, #13 + WORD $0x540000c0 // b.eq LBB0_359 $24(%rip) + WORD $0x7100821f // cmp w16, #32 + WORD $0x54000080 // b.eq LBB0_359 $16(%rip) + WORD $0x51002e0c // sub w12, w16, #11 + WORD $0x3100099f // cmn w12, #2 + WORD $0x54000203 // b.lo LBB0_363 $64(%rip) +LBB0_359: + WORD $0x91001268 // add x8, x19, #4 + WORD $0xeb05011f // cmp x8, x5 + WORD $0x54002b02 // b.hs LBB0_417 $1376(%rip) +LBB0_360: + WORD $0x38686acc // ldrb w12, [x22, x8] + WORD $0x7100819f // cmp w12, #32 + WORD $0x9acc21cc // lsl x12, x14, x12 + WORD $0x8a0f018c // and x12, x12, x15 + WORD $0xfa409984 // ccmp x12, #0, #4, ls + WORD $0x540000a0 // b.eq LBB0_362 $20(%rip) + WORD $0x91000508 // add x8, x8, #1 + WORD $0xeb0800bf // cmp x5, x8 + WORD $0x54ffff01 // b.ne LBB0_360 $-32(%rip) + WORD $0x14000150 // b LBB0_418 $1344(%rip) +LBB0_362: + WORD $0xeb05011f // cmp x8, x5 + WORD $0x540029c2 // b.hs LBB0_418 $1336(%rip) +LBB0_363: + WORD $0x91000513 // add x19, x8, #1 + WORD $0xf9000033 // str x19, [x1] + WORD $0x38686ac4 // ldrb w4, [x22, x8] + WORD $0x7101689f // cmp w4, #90 + WORD $0x5400066c // b.gt LBB0_379 $204(%rip) + WORD $0x7100bc9f // cmp w4, #47 + WORD $0x5400086d // b.le LBB0_384 $268(%rip) + WORD $0x5100c08c // sub w12, w4, #48 + WORD $0x7100299f // cmp w12, #10 + WORD $0x54002842 // b.hs LBB0_417 $1288(%rip) +LBB0_366: + WORD $0xf9400408 // ldr x8, [x0, #8] + WORD $0xcb130108 // sub x8, x8, x19 + WORD $0xf100411f // cmp x8, #16 + WORD $0x540001e3 // b.lo LBB0_369 $60(%rip) +LBB0_367: + WORD $0x3cf36ad3 // ldr q19, [x22, x19] + WORD $0x6e248e74 // cmeq.16b v20, v19, v4 + WORD $0x4e251e73 // and.16b v19, v19, v5 + WORD $0x6e268e73 // cmeq.16b v19, v19, v6 + WORD $0x4eb41e73 // orr.16b v19, v19, v20 + WORD $0x4e211e73 // and.16b v19, v19, v1 + WORD $0x4e020273 // tbl.16b v19, { v19 }, v2 + WORD $0x4e71ba73 // addv.8h h19, v19 + WORD $0x1e260270 // fmov w16, s19 + WORD $0x35000370 // cbnz w16, LBB0_378 $108(%rip) + WORD $0xd1004108 // sub x8, x8, #16 + WORD $0x91004273 // add x19, x19, #16 + WORD $0xf1003d1f // cmp x8, #15 + WORD $0x54fffe68 // b.hi LBB0_367 $-52(%rip) +LBB0_369: + WORD $0x8b1302c4 // add x4, x22, x19 + WORD $0xb40001e8 // cbz x8, LBB0_376 $60(%rip) + WORD $0x8b080085 // add x5, x4, x8 + WORD $0xcb160093 // sub x19, x4, x22 +LBB0_371: + WORD $0x39400090 // ldrb w16, [x4] + WORD $0x7100b21f // cmp w16, #44 + WORD $0x54005820 // b.eq LBB0_478 $2820(%rip) + WORD $0x7101f61f // cmp w16, #125 + WORD $0x540057e0 // b.eq LBB0_478 $2812(%rip) + WORD $0x7101761f // cmp w16, #93 + WORD $0x540057a0 // b.eq LBB0_478 $2804(%rip) + WORD $0x91000484 // add x4, x4, #1 + WORD $0x91000673 // add x19, x19, #1 + WORD $0xf1000508 // subs x8, x8, #1 + WORD $0x54fffec1 // b.ne LBB0_371 $-40(%rip) + WORD $0xaa0503e4 // mov x4, x5 +LBB0_376: + WORD $0xcb160093 // sub x19, x4, x22 + WORD $0xf9000033 // str x19, [x1] +LBB0_377: + WORD $0x529ffff4 // mov w20, #65535 + WORD $0x3200f3e6 // mov w6, #1431655765 + WORD $0x3201f3fe // mov w30, #-1431655766 + WORD $0x1400011c // b LBB0_418 $1136(%rip) +LBB0_378: + WORD $0x5ac00208 // rbit w8, w16 + WORD $0x5ac01108 // clz w8, w8 + WORD $0x8b130113 // add x19, x8, x19 + WORD $0xf9000033 // str x19, [x1] + WORD $0x14000117 // b LBB0_418 $1116(%rip) +LBB0_379: + WORD $0x7101b49f // cmp w4, #109 + WORD $0x540002ed // b.le LBB0_387 $92(%rip) + WORD $0x7101b89f // cmp w4, #110 + WORD $0x540021a0 // b.eq LBB0_415 $1076(%rip) + WORD $0x7101d09f // cmp w4, #116 + WORD $0x54002160 // b.eq LBB0_415 $1068(%rip) + WORD $0x7101ec9f // cmp w4, #123 + WORD $0x540021a1 // b.ne LBB0_417 $1076(%rip) + WORD $0xb201e3ea // mov x10, #-8608480567731124088 + WORD $0xa9010bf1 // stp x17, x2, [sp, #16] + WORD $0xd280001c // mov x28, #0 + WORD $0xd280001a // mov x26, #0 + WORD $0xd2800008 // mov x8, #0 + WORD $0xd2800019 // mov x25, #0 + WORD $0xf940040c // ldr x12, [x0, #8] + WORD $0xcb13019b // sub x27, x12, x19 + WORD $0x8b1302d3 // add x19, x22, x19 + WORD $0x14000015 // b LBB0_391 $84(%rip) +LBB0_384: + WORD $0x34002084 // cbz w4, LBB0_418 $1040(%rip) + WORD $0x7100889f // cmp w4, #34 + WORD $0x540028a0 // b.eq LBB0_440 $1300(%rip) + WORD $0x7100b49f // cmp w4, #45 + WORD $0x54fff7a0 // b.eq LBB0_366 $-268(%rip) + WORD $0x140000fd // b LBB0_417 $1012(%rip) +LBB0_387: + WORD $0x71016c9f // cmp w4, #91 + WORD $0x54003000 // b.eq LBB0_449 $1536(%rip) + WORD $0x7101989f // cmp w4, #102 + WORD $0x54001f21 // b.ne LBB0_417 $996(%rip) + WORD $0x91001508 // add x8, x8, #5 + WORD $0x140000f4 // b LBB0_416 $976(%rip) +LBB0_390: + WORD $0x937ffcbc // asr x28, x5, #63 + WORD $0x9e6703d3 // fmov d19, lr + WORD $0x0e205a73 // cnt.8b v19, v19 + WORD $0x2e303a73 // uaddlv.8b h19, v19 + WORD $0x1e26026c // fmov w12, s19 + WORD $0x8b080188 // add x8, x12, x8 + WORD $0x91010273 // add x19, x19, #64 + WORD $0xaa1603fb // mov x27, x22 +LBB0_391: + WORD $0xf1010376 // subs x22, x27, #64 + WORD $0x540016eb // b.lt LBB0_398 $732(%rip) +LBB0_392: + WORD $0xad405676 // ldp q22, q21, [x19] + WORD $0xad414e74 // ldp q20, q19, [x19, #32] + WORD $0x6e238ed7 // cmeq.16b v23, v22, v3 + WORD $0x4e211ef7 // and.16b v23, v23, v1 + WORD $0x4e0202f7 // tbl.16b v23, { v23 }, v2 + WORD $0x4e71baf7 // addv.8h h23, v23 + WORD $0x1e2602ec // fmov w12, s23 + WORD $0x6e238eb7 // cmeq.16b v23, v21, v3 + WORD $0x4e211ef7 // and.16b v23, v23, v1 + WORD $0x4e0202f7 // tbl.16b v23, { v23 }, v2 + WORD $0x4e71baf7 // addv.8h h23, v23 + WORD $0x1e2602ed // fmov w13, s23 + WORD $0x6e238e97 // cmeq.16b v23, v20, v3 + WORD $0x4e211ef7 // and.16b v23, v23, v1 + WORD $0x4e0202f7 // tbl.16b v23, { v23 }, v2 + WORD $0x4e71baf7 // addv.8h h23, v23 + WORD $0x1e2602f0 // fmov w16, s23 + WORD $0x6e238e77 // cmeq.16b v23, v19, v3 + WORD $0x4e211ef7 // and.16b v23, v23, v1 + WORD $0x4e0202f7 // tbl.16b v23, { v23 }, v2 + WORD $0x4e71baf7 // addv.8h h23, v23 + WORD $0x1e2602f1 // fmov w17, s23 + WORD $0xd3607e10 // lsl x16, x16, #32 + WORD $0xaa11c210 // orr x16, x16, x17, lsl #48 + WORD $0x53103dad // lsl w13, w13, #16 + WORD $0xaa0d020d // orr x13, x16, x13 + WORD $0xaa0c01b0 // orr x16, x13, x12 + WORD $0xaa1a020c // orr x12, x16, x26 + WORD $0xb500008c // cbnz x12, LBB0_394 $16(%rip) + WORD $0xd280001a // mov x26, #0 + WORD $0xd2800004 // mov x4, #0 + WORD $0x1400000a // b LBB0_395 $40(%rip) +LBB0_394: + WORD $0x8a3a020c // bic x12, x16, x26 + WORD $0xaa0c074d // orr x13, x26, x12, lsl #1 + WORD $0x8a2d0210 // bic x16, x16, x13 + WORD $0x9201f210 // and x16, x16, #0xaaaaaaaaaaaaaaaa + WORD $0xab0c020c // adds x12, x16, x12 + WORD $0x1a9f37fa // cset w26, hs + WORD $0xd37ff98c // lsl x12, x12, #1 + WORD $0xd200f18c // eor x12, x12, #0x5555555555555555 + WORD $0x8a0d0184 // and x4, x12, x13 +LBB0_395: + WORD $0x6e208ed7 // cmeq.16b v23, v22, v0 + WORD $0x4e211ef7 // and.16b v23, v23, v1 + WORD $0x4e0202f7 // tbl.16b v23, { v23 }, v2 + WORD $0x4e71baf7 // addv.8h h23, v23 + WORD $0x1e2602ec // fmov w12, s23 + WORD $0x6e208eb7 // cmeq.16b v23, v21, v0 + WORD $0x4e211ef7 // and.16b v23, v23, v1 + WORD $0x4e0202f7 // tbl.16b v23, { v23 }, v2 + WORD $0x4e71baf7 // addv.8h h23, v23 + WORD $0x1e2602ed // fmov w13, s23 + WORD $0x6e208e97 // cmeq.16b v23, v20, v0 + WORD $0x4e211ef7 // and.16b v23, v23, v1 + WORD $0x4e0202f7 // tbl.16b v23, { v23 }, v2 + WORD $0x4e71baf7 // addv.8h h23, v23 + WORD $0x1e2602f0 // fmov w16, s23 + WORD $0x6e208e77 // cmeq.16b v23, v19, v0 + WORD $0x4e211ef7 // and.16b v23, v23, v1 + WORD $0x4e0202f7 // tbl.16b v23, { v23 }, v2 + WORD $0x4e71baf7 // addv.8h h23, v23 + WORD $0x1e2602f1 // fmov w17, s23 + WORD $0xd3607e10 // lsl x16, x16, #32 + WORD $0xaa11c210 // orr x16, x16, x17, lsl #48 + WORD $0x53103dad // lsl w13, w13, #16 + WORD $0xaa0d020d // orr x13, x16, x13 + WORD $0xaa0c01ac // orr x12, x13, x12 + WORD $0x8a24018c // bic x12, x12, x4 + WORD $0x9200e18d // and x13, x12, #0x1111111111111111 + WORD $0x9203e190 // and x16, x12, #0x2222222222222222 + WORD $0x9202e191 // and x17, x12, #0x4444444444444444 + WORD $0x9201e18c // and x12, x12, #0x8888888888888888 + WORD $0xb200e3fe // mov lr, #1229782938247303441 + WORD $0x9b1e7da2 // mul x2, x13, lr + WORD $0xb201e3e7 // mov x7, #-8608480567731124088 + WORD $0xf2e11107 // movk x7, #2184, lsl #48 + WORD $0x9b077e04 // mul x4, x16, x7 + WORD $0xca040042 // eor x2, x2, x4 + WORD $0xb202e3e6 // mov x6, #4919131752989213764 + WORD $0xf2e08886 // movk x6, #1092, lsl #48 + WORD $0x9b067e24 // mul x4, x17, x6 + WORD $0xb203e3e5 // mov x5, #2459565876494606882 + WORD $0xf2e04445 // movk x5, #546, lsl #48 + WORD $0x9b057d85 // mul x5, x12, x5 + WORD $0xca050084 // eor x4, x4, x5 + WORD $0xca040042 // eor x2, x2, x4 + WORD $0xb203e3f5 // mov x21, #2459565876494606882 + WORD $0x9b157da4 // mul x4, x13, x21 + WORD $0x9b1e7e05 // mul x5, x16, lr + WORD $0xca050084 // eor x4, x4, x5 + WORD $0x9b077e25 // mul x5, x17, x7 + WORD $0x9b067d86 // mul x6, x12, x6 + WORD $0xca0600a5 // eor x5, x5, x6 + WORD $0xca050084 // eor x4, x4, x5 + WORD $0xb202e3f8 // mov x24, #4919131752989213764 + WORD $0x9b187da5 // mul x5, x13, x24 + WORD $0x9b157e06 // mul x6, x16, x21 + WORD $0xca0600a5 // eor x5, x5, x6 + WORD $0x9b1e7e26 // mul x6, x17, lr + WORD $0x9b077d87 // mul x7, x12, x7 + WORD $0xca0700c6 // eor x6, x6, x7 + WORD $0xca0600a5 // eor x5, x5, x6 + WORD $0x9b0a7dad // mul x13, x13, x10 + WORD $0x9b187e10 // mul x16, x16, x24 + WORD $0xca1001ad // eor x13, x13, x16 + WORD $0x9b157e30 // mul x16, x17, x21 + WORD $0x9b1e7d8c // mul x12, x12, lr + WORD $0xca0c020c // eor x12, x16, x12 + WORD $0xca0c01ac // eor x12, x13, x12 + WORD $0x9200e04d // and x13, x2, #0x1111111111111111 + WORD $0x9203e090 // and x16, x4, #0x2222222222222222 + WORD $0x9202e0b1 // and x17, x5, #0x4444444444444444 + WORD $0x9201e18c // and x12, x12, #0x8888888888888888 + WORD $0xaa1001ad // orr x13, x13, x16 + WORD $0xaa0c022c // orr x12, x17, x12 + WORD $0xaa0c01ac // orr x12, x13, x12 + WORD $0xca1c0185 // eor x5, x12, x28 + WORD $0x6e318ed7 // cmeq.16b v23, v22, v17 + WORD $0x4e211ef7 // and.16b v23, v23, v1 + WORD $0x4e0202f7 // tbl.16b v23, { v23 }, v2 + WORD $0x4e71baf7 // addv.8h h23, v23 + WORD $0x1e2602ec // fmov w12, s23 + WORD $0x6e318eb7 // cmeq.16b v23, v21, v17 + WORD $0x4e211ef7 // and.16b v23, v23, v1 + WORD $0x4e0202f7 // tbl.16b v23, { v23 }, v2 + WORD $0x4e71baf7 // addv.8h h23, v23 + WORD $0x1e2602ed // fmov w13, s23 + WORD $0x6e318e97 // cmeq.16b v23, v20, v17 + WORD $0x4e211ef7 // and.16b v23, v23, v1 + WORD $0x4e0202f7 // tbl.16b v23, { v23 }, v2 + WORD $0x4e71baf7 // addv.8h h23, v23 + WORD $0x1e2602f0 // fmov w16, s23 + WORD $0x6e318e77 // cmeq.16b v23, v19, v17 + WORD $0x4e211ef7 // and.16b v23, v23, v1 + WORD $0x4e0202f7 // tbl.16b v23, { v23 }, v2 + WORD $0x4e71baf7 // addv.8h h23, v23 + WORD $0x1e2602f1 // fmov w17, s23 + WORD $0xd3607e10 // lsl x16, x16, #32 + WORD $0xaa11c210 // orr x16, x16, x17, lsl #48 + WORD $0x53103dad // lsl w13, w13, #16 + WORD $0xaa0d020d // orr x13, x16, x13 + WORD $0xaa0c01ac // orr x12, x13, x12 + WORD $0x8a25019e // bic lr, x12, x5 + WORD $0x6e328ed6 // cmeq.16b v22, v22, v18 + WORD $0x4e211ed6 // and.16b v22, v22, v1 + WORD $0x4e0202d6 // tbl.16b v22, { v22 }, v2 + WORD $0x4e71bad6 // addv.8h h22, v22 + WORD $0x1e2602cc // fmov w12, s22 + WORD $0x6e328eb5 // cmeq.16b v21, v21, v18 + WORD $0x4e211eb5 // and.16b v21, v21, v1 + WORD $0x4e0202b5 // tbl.16b v21, { v21 }, v2 + WORD $0x4e71bab5 // addv.8h h21, v21 + WORD $0x1e2602ad // fmov w13, s21 + WORD $0x6e328e94 // cmeq.16b v20, v20, v18 + WORD $0x4e211e94 // and.16b v20, v20, v1 + WORD $0x4e020294 // tbl.16b v20, { v20 }, v2 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e260290 // fmov w16, s20 + WORD $0x6e328e73 // cmeq.16b v19, v19, v18 + WORD $0x4e211e73 // and.16b v19, v19, v1 + WORD $0x4e020273 // tbl.16b v19, { v19 }, v2 + WORD $0x4e71ba73 // addv.8h h19, v19 + WORD $0x1e260271 // fmov w17, s19 + WORD $0xd3607e10 // lsl x16, x16, #32 + WORD $0xaa11c210 // orr x16, x16, x17, lsl #48 + WORD $0x53103dad // lsl w13, w13, #16 + WORD $0xaa0d020d // orr x13, x16, x13 + WORD $0xaa0c01ac // orr x12, x13, x12 + WORD $0xea250184 // bics x4, x12, x5 + WORD $0x54ffe9c0 // b.eq LBB0_390 $-712(%rip) +LBB0_396: + WORD $0xd1000490 // sub x16, x4, #1 + WORD $0x8a1e020c // and x12, x16, lr + WORD $0x9e670193 // fmov d19, x12 + WORD $0x0e205a73 // cnt.8b v19, v19 + WORD $0x2e303a73 // uaddlv.8b h19, v19 + WORD $0x1e26026c // fmov w12, s19 + WORD $0x8b08018c // add x12, x12, x8 + WORD $0xeb19019f // cmp x12, x25 + WORD $0x54003789 // b.ls LBB0_475 $1776(%rip) + WORD $0x91000739 // add x25, x25, #1 + WORD $0xea040204 // ands x4, x16, x4 + WORD $0x54fffea1 // b.ne LBB0_396 $-44(%rip) + WORD $0x17ffff41 // b LBB0_390 $-764(%rip) +LBB0_398: + WORD $0xf100037f // cmp x27, #0 + WORD $0x54003a6d // b.le LBB0_480 $1868(%rip) + WORD $0xad0243f0 // stp q16, q16, [sp, #64] + WORD $0xad0143f0 // stp q16, q16, [sp, #32] + WORD $0x92402e6c // and x12, x19, #0xfff + WORD $0xf13f059f // cmp x12, #4033 + WORD $0x54000363 // b.lo LBB0_410 $108(%rip) + WORD $0xf1008374 // subs x20, x27, #32 + WORD $0x540000a3 // b.lo LBB0_402 $20(%rip) + WORD $0xacc15273 // ldp q19, q20, [x19], #32 + WORD $0xad0153f3 // stp q19, q20, [sp, #32] + WORD $0xf9400fe5 // ldr x5, [sp, #24] + WORD $0x14000003 // b LBB0_403 $12(%rip) +LBB0_402: + WORD $0x910083e5 // add x5, sp, #32 + WORD $0xaa1b03f4 // mov x20, x27 +LBB0_403: + WORD $0xf1004290 // subs x16, x20, #16 + WORD $0x54000283 // b.lo LBB0_411 $80(%rip) + WORD $0x3cc10673 // ldr q19, [x19], #16 + WORD $0x3c8104b3 // str q19, [x5], #16 + WORD $0xaa1003f4 // mov x20, x16 + WORD $0xf1002210 // subs x16, x16, #8 + WORD $0x54000222 // b.hs LBB0_412 $68(%rip) +LBB0_405: + WORD $0xf1001290 // subs x16, x20, #4 + WORD $0x54000283 // b.lo LBB0_413 $80(%rip) +LBB0_406: + WORD $0xb840466c // ldr w12, [x19], #4 + WORD $0xb80044ac // str w12, [x5], #4 + WORD $0xaa1003f4 // mov x20, x16 + WORD $0xf1000a10 // subs x16, x16, #2 + WORD $0x54000222 // b.hs LBB0_414 $68(%rip) +LBB0_407: + WORD $0xb4000074 // cbz x20, LBB0_409 $12(%rip) +LBB0_408: + WORD $0x3940026c // ldrb w12, [x19] + WORD $0x390000ac // strb w12, [x5] +LBB0_409: + WORD $0x910083f3 // add x19, sp, #32 +LBB0_410: + WORD $0xb201e3ea // mov x10, #-8608480567731124088 + WORD $0x529ffff4 // mov w20, #65535 + WORD $0x17ffff27 // b LBB0_392 $-868(%rip) +LBB0_411: + WORD $0xf1002290 // subs x16, x20, #8 + WORD $0x54fffe23 // b.lo LBB0_405 $-60(%rip) +LBB0_412: + WORD $0xf840866c // ldr x12, [x19], #8 + WORD $0xf80084ac // str x12, [x5], #8 + WORD $0xaa1003f4 // mov x20, x16 + WORD $0xf1001210 // subs x16, x16, #4 + WORD $0x54fffdc2 // b.hs LBB0_406 $-72(%rip) +LBB0_413: + WORD $0xf1000a90 // subs x16, x20, #2 + WORD $0x54fffe23 // b.lo LBB0_407 $-60(%rip) +LBB0_414: + WORD $0x7840266c // ldrh w12, [x19], #2 + WORD $0x780024ac // strh w12, [x5], #2 + WORD $0xaa1003f4 // mov x20, x16 + WORD $0xb5fffdd0 // cbnz x16, LBB0_408 $-72(%rip) + WORD $0x17ffffef // b LBB0_409 $-68(%rip) +LBB0_415: + WORD $0x91001108 // add x8, x8, #4 +LBB0_416: + WORD $0xf940040c // ldr x12, [x0, #8] + WORD $0xeb0c011f // cmp x8, x12 + WORD $0x54000068 // b.hi LBB0_418 $12(%rip) +LBB0_417: + WORD $0xf9000028 // str x8, [x1] + WORD $0xaa0803f3 // mov x19, x8 +LBB0_418: + WORD $0xa9401416 // ldp x22, x5, [x0] + WORD $0xeb05027f // cmp x19, x5 + WORD $0x54000162 // b.hs LBB0_423 $44(%rip) + WORD $0x38736ac8 // ldrb w8, [x22, x19] + WORD $0x7100351f // cmp w8, #13 + WORD $0x54000100 // b.eq LBB0_423 $32(%rip) + WORD $0x7100811f // cmp w8, #32 + WORD $0x540000c0 // b.eq LBB0_423 $24(%rip) + WORD $0x51002d08 // sub w8, w8, #11 + WORD $0x3100091f // cmn w8, #2 + WORD $0x54000062 // b.hs LBB0_423 $12(%rip) + WORD $0xaa1303e8 // mov x8, x19 + WORD $0x14000031 // b LBB0_439 $196(%rip) +LBB0_423: + WORD $0x91000668 // add x8, x19, #1 + WORD $0xeb05011f // cmp x8, x5 + WORD $0x54000122 // b.hs LBB0_427 $36(%rip) + WORD $0x38686ad0 // ldrb w16, [x22, x8] + WORD $0x7100361f // cmp w16, #13 + WORD $0x540000c0 // b.eq LBB0_427 $24(%rip) + WORD $0x7100821f // cmp w16, #32 + WORD $0x54000080 // b.eq LBB0_427 $16(%rip) + WORD $0x51002e0c // sub w12, w16, #11 + WORD $0x3100099f // cmn w12, #2 + WORD $0x540004c3 // b.lo LBB0_439 $152(%rip) +LBB0_427: + WORD $0x91000a68 // add x8, x19, #2 + WORD $0xeb05011f // cmp x8, x5 + WORD $0x54000122 // b.hs LBB0_431 $36(%rip) + WORD $0x38686ad0 // ldrb w16, [x22, x8] + WORD $0x7100361f // cmp w16, #13 + WORD $0x540000c0 // b.eq LBB0_431 $24(%rip) + WORD $0x7100821f // cmp w16, #32 + WORD $0x54000080 // b.eq LBB0_431 $16(%rip) + WORD $0x51002e0c // sub w12, w16, #11 + WORD $0x3100099f // cmn w12, #2 + WORD $0x54000363 // b.lo LBB0_439 $108(%rip) +LBB0_431: + WORD $0x91000e68 // add x8, x19, #3 + WORD $0xeb05011f // cmp x8, x5 + WORD $0x54000122 // b.hs LBB0_435 $36(%rip) + WORD $0x38686ad0 // ldrb w16, [x22, x8] + WORD $0x7100361f // cmp w16, #13 + WORD $0x540000c0 // b.eq LBB0_435 $24(%rip) + WORD $0x7100821f // cmp w16, #32 + WORD $0x54000080 // b.eq LBB0_435 $16(%rip) + WORD $0x51002e0c // sub w12, w16, #11 + WORD $0x3100099f // cmn w12, #2 + WORD $0x54000203 // b.lo LBB0_439 $64(%rip) +LBB0_435: + WORD $0x91001268 // add x8, x19, #4 + WORD $0xeb05011f // cmp x8, x5 + WORD $0x5400d6a2 // b.hs LBB0_769 $6868(%rip) +LBB0_436: + WORD $0x38686acc // ldrb w12, [x22, x8] + WORD $0x7100819f // cmp w12, #32 + WORD $0x9acc21cc // lsl x12, x14, x12 + WORD $0x8a0f018c // and x12, x12, x15 + WORD $0xfa409984 // ccmp x12, #0, #4, ls + WORD $0x540000a0 // b.eq LBB0_438 $20(%rip) + WORD $0x91000508 // add x8, x8, #1 + WORD $0xeb0800bf // cmp x5, x8 + WORD $0x54ffff01 // b.ne LBB0_436 $-32(%rip) + WORD $0x140006b7 // b LBB0_775 $6876(%rip) +LBB0_438: + WORD $0xeb05011f // cmp x8, x5 + WORD $0x5400d6a2 // b.hs LBB0_775 $6868(%rip) +LBB0_439: + WORD $0x91000513 // add x19, x8, #1 + WORD $0xf9000033 // str x19, [x1] + WORD $0x38686ad0 // ldrb w16, [x22, x8] + WORD $0x7100b21f // cmp w16, #44 + WORD $0x54ffc660 // b.eq LBB0_341 $-1844(%rip) + WORD $0x140006a8 // b LBB0_772 $6816(%rip) +LBB0_440: + WORD $0xf9400410 // ldr x16, [x0, #8] + WORD $0xcb130205 // sub x5, x16, x19 + WORD $0xf10080bf // cmp x5, #32 + WORD $0x54002a4b // b.lt LBB0_479 $1352(%rip) + WORD $0xd2800005 // mov x5, #0 + WORD $0xd280001c // mov x28, #0 + WORD $0x8b0802da // add x26, x22, x8 + WORD $0xcb080219 // sub x25, x16, x8 + WORD $0x528003fb // mov w27, #31 +LBB0_442: + WORD $0x8b05034c // add x12, x26, x5 + WORD $0x3cc01193 // ldur q19, [x12, #1] + WORD $0x3cc11194 // ldur q20, [x12, #17] + WORD $0x6e208e75 // cmeq.16b v21, v19, v0 + WORD $0x4e211eb5 // and.16b v21, v21, v1 + WORD $0x4e0202b5 // tbl.16b v21, { v21 }, v2 + WORD $0x4e71bab5 // addv.8h h21, v21 + WORD $0x1e2602a4 // fmov w4, s21 + WORD $0x6e208e95 // cmeq.16b v21, v20, v0 + WORD $0x4e211eb5 // and.16b v21, v21, v1 + WORD $0x4e0202b5 // tbl.16b v21, { v21 }, v2 + WORD $0x4e71bab5 // addv.8h h21, v21 + WORD $0x1e2602ac // fmov w12, s21 + WORD $0x33103d84 // bfi w4, w12, #16, #16 + WORD $0x6e238e73 // cmeq.16b v19, v19, v3 + WORD $0x4e211e73 // and.16b v19, v19, v1 + WORD $0x4e020273 // tbl.16b v19, { v19 }, v2 + WORD $0x4e71ba73 // addv.8h h19, v19 + WORD $0x1e260270 // fmov w16, s19 + WORD $0x6e238e93 // cmeq.16b v19, v20, v3 + WORD $0x4e211e73 // and.16b v19, v19, v1 + WORD $0x4e020273 // tbl.16b v19, { v19 }, v2 + WORD $0x4e71ba73 // addv.8h h19, v19 + WORD $0x1e26026c // fmov w12, s19 + WORD $0x33103d90 // bfi w16, w12, #16, #16 + WORD $0x7100021f // cmp w16, #0 + WORD $0xfa400b80 // ccmp x28, #0, #0, eq + WORD $0x54000180 // b.eq LBB0_444 $48(%rip) + WORD $0x0a3c020c // bic w12, w16, w28 + WORD $0x2a0c078d // orr w13, w28, w12, lsl #1 + WORD $0x0a1e0210 // and w16, w16, w30 + WORD $0x0a2d0210 // bic w16, w16, w13 + WORD $0x2b0c020c // adds w12, w16, w12 + WORD $0x1a9f37fc // cset w28, hs + WORD $0x4a0c04cc // eor w12, w6, w12, lsl #1 + WORD $0x0a0d018c // and w12, w12, w13 + WORD $0x2a2c03ec // mvn w12, w12 + WORD $0x8a040184 // and x4, x12, x4 + WORD $0x14000002 // b LBB0_445 $8(%rip) +LBB0_444: + WORD $0xd280001c // mov x28, #0 +LBB0_445: + WORD $0xb50023a4 // cbnz x4, LBB0_477 $1140(%rip) + WORD $0x910080a5 // add x5, x5, #32 + WORD $0xd100837b // sub x27, x27, #32 + WORD $0x8b1b032c // add x12, x25, x27 + WORD $0xf100fd9f // cmp x12, #63 + WORD $0x54fffa6c // b.gt LBB0_442 $-180(%rip) + WORD $0xb50024dc // cbnz x28, LBB0_481 $1176(%rip) + WORD $0x8b0802c8 // add x8, x22, x8 + WORD $0x8b050108 // add x8, x8, x5 + WORD $0x91000508 // add x8, x8, #1 + WORD $0xaa2503ec // mvn x12, x5 + WORD $0x8b190185 // add x5, x12, x25 + WORD $0xf10004bf // cmp x5, #1 + WORD $0x5400264a // b.ge LBB0_484 $1224(%rip) + WORD $0x17ffff7e // b LBB0_418 $-520(%rip) +LBB0_449: + WORD $0xb201e3ea // mov x10, #-8608480567731124088 + WORD $0xa9010bf1 // stp x17, x2, [sp, #16] + WORD $0xd280001c // mov x28, #0 + WORD $0xd280001a // mov x26, #0 + WORD $0xd2800008 // mov x8, #0 + WORD $0xd2800019 // mov x25, #0 + WORD $0xf940040c // ldr x12, [x0, #8] + WORD $0xcb13019b // sub x27, x12, x19 + WORD $0x8b1302d3 // add x19, x22, x19 + WORD $0x14000009 // b LBB0_451 $36(%rip) +LBB0_450: + WORD $0x937ffcbc // asr x28, x5, #63 + WORD $0x9e6703d3 // fmov d19, lr + WORD $0x0e205a73 // cnt.8b v19, v19 + WORD $0x2e303a73 // uaddlv.8b h19, v19 + WORD $0x1e26026c // fmov w12, s19 + WORD $0x8b080188 // add x8, x12, x8 + WORD $0x91010273 // add x19, x19, #64 + WORD $0xaa1603fb // mov x27, x22 +LBB0_451: + WORD $0xf1010376 // subs x22, x27, #64 + WORD $0x540016eb // b.lt LBB0_458 $732(%rip) +LBB0_452: + WORD $0xad405676 // ldp q22, q21, [x19] + WORD $0xad414e74 // ldp q20, q19, [x19, #32] + WORD $0x6e238ed7 // cmeq.16b v23, v22, v3 + WORD $0x4e211ef7 // and.16b v23, v23, v1 + WORD $0x4e0202f7 // tbl.16b v23, { v23 }, v2 + WORD $0x4e71baf7 // addv.8h h23, v23 + WORD $0x1e2602ec // fmov w12, s23 + WORD $0x6e238eb7 // cmeq.16b v23, v21, v3 + WORD $0x4e211ef7 // and.16b v23, v23, v1 + WORD $0x4e0202f7 // tbl.16b v23, { v23 }, v2 + WORD $0x4e71baf7 // addv.8h h23, v23 + WORD $0x1e2602ed // fmov w13, s23 + WORD $0x6e238e97 // cmeq.16b v23, v20, v3 + WORD $0x4e211ef7 // and.16b v23, v23, v1 + WORD $0x4e0202f7 // tbl.16b v23, { v23 }, v2 + WORD $0x4e71baf7 // addv.8h h23, v23 + WORD $0x1e2602f0 // fmov w16, s23 + WORD $0x6e238e77 // cmeq.16b v23, v19, v3 + WORD $0x4e211ef7 // and.16b v23, v23, v1 + WORD $0x4e0202f7 // tbl.16b v23, { v23 }, v2 + WORD $0x4e71baf7 // addv.8h h23, v23 + WORD $0x1e2602f1 // fmov w17, s23 + WORD $0xd3607e10 // lsl x16, x16, #32 + WORD $0xaa11c210 // orr x16, x16, x17, lsl #48 + WORD $0x53103dad // lsl w13, w13, #16 + WORD $0xaa0d020d // orr x13, x16, x13 + WORD $0xaa0c01b0 // orr x16, x13, x12 + WORD $0xaa1a020c // orr x12, x16, x26 + WORD $0xb500008c // cbnz x12, LBB0_454 $16(%rip) + WORD $0xd280001a // mov x26, #0 + WORD $0xd2800004 // mov x4, #0 + WORD $0x1400000a // b LBB0_455 $40(%rip) +LBB0_454: + WORD $0x8a3a020c // bic x12, x16, x26 + WORD $0xaa0c074d // orr x13, x26, x12, lsl #1 + WORD $0x8a2d0210 // bic x16, x16, x13 + WORD $0x9201f210 // and x16, x16, #0xaaaaaaaaaaaaaaaa + WORD $0xab0c020c // adds x12, x16, x12 + WORD $0x1a9f37fa // cset w26, hs + WORD $0xd37ff98c // lsl x12, x12, #1 + WORD $0xd200f18c // eor x12, x12, #0x5555555555555555 + WORD $0x8a0d0184 // and x4, x12, x13 +LBB0_455: + WORD $0x6e208ed7 // cmeq.16b v23, v22, v0 + WORD $0x4e211ef7 // and.16b v23, v23, v1 + WORD $0x4e0202f7 // tbl.16b v23, { v23 }, v2 + WORD $0x4e71baf7 // addv.8h h23, v23 + WORD $0x1e2602ec // fmov w12, s23 + WORD $0x6e208eb7 // cmeq.16b v23, v21, v0 + WORD $0x4e211ef7 // and.16b v23, v23, v1 + WORD $0x4e0202f7 // tbl.16b v23, { v23 }, v2 + WORD $0x4e71baf7 // addv.8h h23, v23 + WORD $0x1e2602ed // fmov w13, s23 + WORD $0x6e208e97 // cmeq.16b v23, v20, v0 + WORD $0x4e211ef7 // and.16b v23, v23, v1 + WORD $0x4e0202f7 // tbl.16b v23, { v23 }, v2 + WORD $0x4e71baf7 // addv.8h h23, v23 + WORD $0x1e2602f0 // fmov w16, s23 + WORD $0x6e208e77 // cmeq.16b v23, v19, v0 + WORD $0x4e211ef7 // and.16b v23, v23, v1 + WORD $0x4e0202f7 // tbl.16b v23, { v23 }, v2 + WORD $0x4e71baf7 // addv.8h h23, v23 + WORD $0x1e2602f1 // fmov w17, s23 + WORD $0xd3607e10 // lsl x16, x16, #32 + WORD $0xaa11c210 // orr x16, x16, x17, lsl #48 + WORD $0x53103dad // lsl w13, w13, #16 + WORD $0xaa0d020d // orr x13, x16, x13 + WORD $0xaa0c01ac // orr x12, x13, x12 + WORD $0x8a24018c // bic x12, x12, x4 + WORD $0x9200e18d // and x13, x12, #0x1111111111111111 + WORD $0x9203e190 // and x16, x12, #0x2222222222222222 + WORD $0x9202e191 // and x17, x12, #0x4444444444444444 + WORD $0x9201e18c // and x12, x12, #0x8888888888888888 + WORD $0xb200e3fe // mov lr, #1229782938247303441 + WORD $0x9b1e7da2 // mul x2, x13, lr + WORD $0xb201e3e7 // mov x7, #-8608480567731124088 + WORD $0xf2e11107 // movk x7, #2184, lsl #48 + WORD $0x9b077e04 // mul x4, x16, x7 + WORD $0xca040042 // eor x2, x2, x4 + WORD $0xb202e3e6 // mov x6, #4919131752989213764 + WORD $0xf2e08886 // movk x6, #1092, lsl #48 + WORD $0x9b067e24 // mul x4, x17, x6 + WORD $0xb203e3e5 // mov x5, #2459565876494606882 + WORD $0xf2e04445 // movk x5, #546, lsl #48 + WORD $0x9b057d85 // mul x5, x12, x5 + WORD $0xca050084 // eor x4, x4, x5 + WORD $0xca040042 // eor x2, x2, x4 + WORD $0xb203e3f5 // mov x21, #2459565876494606882 + WORD $0x9b157da4 // mul x4, x13, x21 + WORD $0x9b1e7e05 // mul x5, x16, lr + WORD $0xca050084 // eor x4, x4, x5 + WORD $0x9b077e25 // mul x5, x17, x7 + WORD $0x9b067d86 // mul x6, x12, x6 + WORD $0xca0600a5 // eor x5, x5, x6 + WORD $0xca050084 // eor x4, x4, x5 + WORD $0xb202e3f8 // mov x24, #4919131752989213764 + WORD $0x9b187da5 // mul x5, x13, x24 + WORD $0x9b157e06 // mul x6, x16, x21 + WORD $0xca0600a5 // eor x5, x5, x6 + WORD $0x9b1e7e26 // mul x6, x17, lr + WORD $0x9b077d87 // mul x7, x12, x7 + WORD $0xca0700c6 // eor x6, x6, x7 + WORD $0xca0600a5 // eor x5, x5, x6 + WORD $0x9b0a7dad // mul x13, x13, x10 + WORD $0x9b187e10 // mul x16, x16, x24 + WORD $0xca1001ad // eor x13, x13, x16 + WORD $0x9b157e30 // mul x16, x17, x21 + WORD $0x9b1e7d8c // mul x12, x12, lr + WORD $0xca0c020c // eor x12, x16, x12 + WORD $0xca0c01ac // eor x12, x13, x12 + WORD $0x9200e04d // and x13, x2, #0x1111111111111111 + WORD $0x9203e090 // and x16, x4, #0x2222222222222222 + WORD $0x9202e0b1 // and x17, x5, #0x4444444444444444 + WORD $0x9201e18c // and x12, x12, #0x8888888888888888 + WORD $0xaa1001ad // orr x13, x13, x16 + WORD $0xaa0c022c // orr x12, x17, x12 + WORD $0xaa0c01ac // orr x12, x13, x12 + WORD $0xca1c0185 // eor x5, x12, x28 + WORD $0x6e278ed7 // cmeq.16b v23, v22, v7 + WORD $0x4e211ef7 // and.16b v23, v23, v1 + WORD $0x4e0202f7 // tbl.16b v23, { v23 }, v2 + WORD $0x4e71baf7 // addv.8h h23, v23 + WORD $0x1e2602ec // fmov w12, s23 + WORD $0x6e278eb7 // cmeq.16b v23, v21, v7 + WORD $0x4e211ef7 // and.16b v23, v23, v1 + WORD $0x4e0202f7 // tbl.16b v23, { v23 }, v2 + WORD $0x4e71baf7 // addv.8h h23, v23 + WORD $0x1e2602ed // fmov w13, s23 + WORD $0x6e278e97 // cmeq.16b v23, v20, v7 + WORD $0x4e211ef7 // and.16b v23, v23, v1 + WORD $0x4e0202f7 // tbl.16b v23, { v23 }, v2 + WORD $0x4e71baf7 // addv.8h h23, v23 + WORD $0x1e2602f0 // fmov w16, s23 + WORD $0x6e278e77 // cmeq.16b v23, v19, v7 + WORD $0x4e211ef7 // and.16b v23, v23, v1 + WORD $0x4e0202f7 // tbl.16b v23, { v23 }, v2 + WORD $0x4e71baf7 // addv.8h h23, v23 + WORD $0x1e2602f1 // fmov w17, s23 + WORD $0xd3607e10 // lsl x16, x16, #32 + WORD $0xaa11c210 // orr x16, x16, x17, lsl #48 + WORD $0x53103dad // lsl w13, w13, #16 + WORD $0xaa0d020d // orr x13, x16, x13 + WORD $0xaa0c01ac // orr x12, x13, x12 + WORD $0x8a25019e // bic lr, x12, x5 + WORD $0x6e268ed6 // cmeq.16b v22, v22, v6 + WORD $0x4e211ed6 // and.16b v22, v22, v1 + WORD $0x4e0202d6 // tbl.16b v22, { v22 }, v2 + WORD $0x4e71bad6 // addv.8h h22, v22 + WORD $0x1e2602cc // fmov w12, s22 + WORD $0x6e268eb5 // cmeq.16b v21, v21, v6 + WORD $0x4e211eb5 // and.16b v21, v21, v1 + WORD $0x4e0202b5 // tbl.16b v21, { v21 }, v2 + WORD $0x4e71bab5 // addv.8h h21, v21 + WORD $0x1e2602ad // fmov w13, s21 + WORD $0x6e268e94 // cmeq.16b v20, v20, v6 + WORD $0x4e211e94 // and.16b v20, v20, v1 + WORD $0x4e020294 // tbl.16b v20, { v20 }, v2 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e260290 // fmov w16, s20 + WORD $0x6e268e73 // cmeq.16b v19, v19, v6 + WORD $0x4e211e73 // and.16b v19, v19, v1 + WORD $0x4e020273 // tbl.16b v19, { v19 }, v2 + WORD $0x4e71ba73 // addv.8h h19, v19 + WORD $0x1e260271 // fmov w17, s19 + WORD $0xd3607e10 // lsl x16, x16, #32 + WORD $0xaa11c210 // orr x16, x16, x17, lsl #48 + WORD $0x53103dad // lsl w13, w13, #16 + WORD $0xaa0d020d // orr x13, x16, x13 + WORD $0xaa0c01ac // orr x12, x13, x12 + WORD $0xea250184 // bics x4, x12, x5 + WORD $0x54ffe9c0 // b.eq LBB0_450 $-712(%rip) +LBB0_456: + WORD $0xd1000490 // sub x16, x4, #1 + WORD $0x8a1e020c // and x12, x16, lr + WORD $0x9e670193 // fmov d19, x12 + WORD $0x0e205a73 // cnt.8b v19, v19 + WORD $0x2e303a73 // uaddlv.8b h19, v19 + WORD $0x1e26026c // fmov w12, s19 + WORD $0x8b08018c // add x12, x12, x8 + WORD $0xeb19019f // cmp x12, x25 + WORD $0x540006e9 // b.ls LBB0_475 $220(%rip) + WORD $0x91000739 // add x25, x25, #1 + WORD $0xea040204 // ands x4, x16, x4 + WORD $0x54fffea1 // b.ne LBB0_456 $-44(%rip) + WORD $0x17ffff41 // b LBB0_450 $-764(%rip) +LBB0_458: + WORD $0xf100037f // cmp x27, #0 + WORD $0x540009cd // b.le LBB0_480 $312(%rip) + WORD $0xad0243f0 // stp q16, q16, [sp, #64] + WORD $0xad0143f0 // stp q16, q16, [sp, #32] + WORD $0x92402e6c // and x12, x19, #0xfff + WORD $0xf13f059f // cmp x12, #4033 + WORD $0x54000363 // b.lo LBB0_470 $108(%rip) + WORD $0xf1008374 // subs x20, x27, #32 + WORD $0x540000a3 // b.lo LBB0_462 $20(%rip) + WORD $0xacc15273 // ldp q19, q20, [x19], #32 + WORD $0xad0153f3 // stp q19, q20, [sp, #32] + WORD $0xf9400fe5 // ldr x5, [sp, #24] + WORD $0x14000003 // b LBB0_463 $12(%rip) +LBB0_462: + WORD $0x910083e5 // add x5, sp, #32 + WORD $0xaa1b03f4 // mov x20, x27 +LBB0_463: + WORD $0xf1004290 // subs x16, x20, #16 + WORD $0x54000283 // b.lo LBB0_471 $80(%rip) + WORD $0x3cc10673 // ldr q19, [x19], #16 + WORD $0x3c8104b3 // str q19, [x5], #16 + WORD $0xaa1003f4 // mov x20, x16 + WORD $0xf1002210 // subs x16, x16, #8 + WORD $0x54000222 // b.hs LBB0_472 $68(%rip) +LBB0_465: + WORD $0xf1001290 // subs x16, x20, #4 + WORD $0x54000283 // b.lo LBB0_473 $80(%rip) +LBB0_466: + WORD $0xb840466c // ldr w12, [x19], #4 + WORD $0xb80044ac // str w12, [x5], #4 + WORD $0xaa1003f4 // mov x20, x16 + WORD $0xf1000a10 // subs x16, x16, #2 + WORD $0x54000222 // b.hs LBB0_474 $68(%rip) +LBB0_467: + WORD $0xb4000074 // cbz x20, LBB0_469 $12(%rip) +LBB0_468: + WORD $0x3940026c // ldrb w12, [x19] + WORD $0x390000ac // strb w12, [x5] +LBB0_469: + WORD $0x910083f3 // add x19, sp, #32 +LBB0_470: + WORD $0xb201e3ea // mov x10, #-8608480567731124088 + WORD $0x529ffff4 // mov w20, #65535 + WORD $0x17ffff27 // b LBB0_452 $-868(%rip) +LBB0_471: + WORD $0xf1002290 // subs x16, x20, #8 + WORD $0x54fffe23 // b.lo LBB0_465 $-60(%rip) +LBB0_472: + WORD $0xf840866c // ldr x12, [x19], #8 + WORD $0xf80084ac // str x12, [x5], #8 + WORD $0xaa1003f4 // mov x20, x16 + WORD $0xf1001210 // subs x16, x16, #4 + WORD $0x54fffdc2 // b.hs LBB0_466 $-72(%rip) +LBB0_473: + WORD $0xf1000a90 // subs x16, x20, #2 + WORD $0x54fffe23 // b.lo LBB0_467 $-60(%rip) +LBB0_474: + WORD $0x7840266c // ldrh w12, [x19], #2 + WORD $0x780024ac // strh w12, [x5], #2 + WORD $0xaa1003f4 // mov x20, x16 + WORD $0xb5fffdd0 // cbnz x16, LBB0_468 $-72(%rip) + WORD $0x17ffffef // b LBB0_469 $-68(%rip) +LBB0_475: + WORD $0xf9400408 // ldr x8, [x0, #8] + WORD $0xdac0008c // rbit x12, x4 + WORD $0xdac0118c // clz x12, x12 + WORD $0xcb1b018c // sub x12, x12, x27 + WORD $0x8b080188 // add x8, x12, x8 + WORD $0x9100050c // add x12, x8, #1 + WORD $0xf900002c // str x12, [x1] + WORD $0xf940040d // ldr x13, [x0, #8] + WORD $0xeb0d019f // cmp x12, x13 + WORD $0x9a8825b3 // csinc x19, x13, x8, hs + WORD $0xf9000033 // str x19, [x1] +LBB0_476: + WORD $0xa9410bf1 // ldp x17, x2, [sp, #16] + WORD $0x3200f3e6 // mov w6, #1431655765 + WORD $0x10fec947 // adr x7, lCPI0_1 $-9944(%rip) + WORD $0x3201f3fe // mov w30, #-1431655766 +Lloh10: + WORD $0x1000bc0a // adr x10, __UnquoteTab $6016(%rip) +Lloh11: + WORD $0x9100014a // add x10, x10, __UnquoteTab@PAGEOFF $0(%rip) + WORD $0x17fffe70 // b LBB0_418 $-1600(%rip) +LBB0_477: + WORD $0xdac0008c // rbit x12, x4 + WORD $0xdac0118c // clz x12, x12 + WORD $0x8b050108 // add x8, x8, x5 + WORD $0x8b080188 // add x8, x12, x8 + WORD $0x91000913 // add x19, x8, #2 +LBB0_478: + WORD $0xf9000033 // str x19, [x1] + WORD $0x17fffe69 // b LBB0_418 $-1628(%rip) +LBB0_479: + WORD $0x8b1302c8 // add x8, x22, x19 + WORD $0xf10004bf // cmp x5, #1 + WORD $0x5400032a // b.ge LBB0_484 $100(%rip) + WORD $0x17fffe65 // b LBB0_418 $-1644(%rip) +LBB0_480: + WORD $0xf9400413 // ldr x19, [x0, #8] + WORD $0xf9000033 // str x19, [x1] + WORD $0x529ffff4 // mov w20, #65535 + WORD $0x17ffffeb // b LBB0_476 $-84(%rip) +LBB0_481: + WORD $0xd100072c // sub x12, x25, #1 + WORD $0xeb05019f // cmp x12, x5 + WORD $0x54ffa7e0 // b.eq LBB0_377 $-2820(%rip) + WORD $0x8b0802c8 // add x8, x22, x8 + WORD $0x8b050108 // add x8, x8, x5 + WORD $0x91000908 // add x8, x8, #2 + WORD $0xcb05032c // sub x12, x25, x5 + WORD $0xd1000985 // sub x5, x12, #2 + WORD $0x529ffff4 // mov w20, #65535 + WORD $0x3200f3e6 // mov w6, #1431655765 + WORD $0x3201f3fe // mov w30, #-1431655766 + WORD $0xf10004bf // cmp x5, #1 + WORD $0x540000ea // b.ge LBB0_484 $28(%rip) + WORD $0x17fffe53 // b LBB0_418 $-1716(%rip) +LBB0_483: + WORD $0x92800030 // mov x16, #-2 + WORD $0x52800044 // mov w4, #2 + WORD $0x8b040108 // add x8, x8, x4 + WORD $0xab1000a5 // adds x5, x5, x16 + WORD $0x54ffc9cd // b.le LBB0_418 $-1736(%rip) +LBB0_484: + WORD $0x39400110 // ldrb w16, [x8] + WORD $0x7101721f // cmp w16, #92 + WORD $0x54ffff20 // b.eq LBB0_483 $-28(%rip) + WORD $0x71008a1f // cmp w16, #34 + WORD $0x540000e0 // b.eq LBB0_487 $28(%rip) + WORD $0x92800010 // mov x16, #-1 + WORD $0x52800024 // mov w4, #1 + WORD $0x8b040108 // add x8, x8, x4 + WORD $0xab1000a5 // adds x5, x5, x16 + WORD $0x54fffeec // b.gt LBB0_484 $-36(%rip) + WORD $0x17fffe43 // b LBB0_418 $-1780(%rip) +LBB0_487: + WORD $0xcb160108 // sub x8, x8, x22 + WORD $0x91000513 // add x19, x8, #1 + WORD $0xf9000033 // str x19, [x1] + WORD $0x17fffe3f // b LBB0_418 $-1796(%rip) +LBB0_488: + WORD $0x9100416b // add x11, x11, #16 + WORD $0xeb11017f // cmp x11, x17 + WORD $0x54fec7e1 // b.ne LBB0_2 $-9988(%rip) +LBB0_489: +Lloh12: + WORD $0x10fec2a8 // adr x8, lCPI0_2 $-10156(%rip) +Lloh13: + WORD $0x3dc00100 // ldr q0, [x8, lCPI0_2@PAGEOFF] $0(%rip) + WORD $0xaa0303ec // mov x12, x3 + WORD $0x3c808580 // str q0, [x12], #8 + WORD $0xf940000b // ldr x11, [x0] + WORD $0xaa2b03ed // mvn x13, x11 + WORD $0xcb0b03ee // neg x14, x11 + WORD $0xd100056f // sub x15, x11, #1 + WORD $0x92800010 // mov x16, #-1 + WORD $0x52800031 // mov w17, #1 + WORD $0xd284c002 // mov x2, #9728 + WORD $0xf2c00022 // movk x2, #1, lsl #32 + WORD $0x5280006a // mov w10, #3 + WORD $0x52800086 // mov w6, #4 + WORD $0x4f01e440 // movi.16b v0, #34 + WORD $0x4f02e781 // movi.16b v1, #92 + WORD $0x3dc00122 // ldr q2, [x9, lCPI0_0@PAGEOFF] $0(%rip) + WORD $0x3dc000e3 // ldr q3, [x7, lCPI0_1@PAGEOFF] $0(%rip) + WORD $0x92f00017 // mov x23, #9223372036854775807 + WORD $0xb20903f8 // mov x24, #36028797027352576 + WORD $0xf2800038 // movk x24, #1 + WORD $0x4f01e5c4 // movi.16b v4, #46 + WORD $0x4f01e565 // movi.16b v5, #43 + WORD $0x4f01e5a6 // movi.16b v6, #45 + WORD $0x12800007 // mov w7, #-1 + WORD $0x4f06e607 // movi.16b v7, #208 + WORD $0x4f00e550 // movi.16b v16, #10 + WORD $0x4f06e7f1 // movi.16b v17, #223 + WORD $0x528000b9 // mov w25, #5 + WORD $0x528d8c3a // mov w26, #27745 + WORD $0x72acae7a // movk w26, #25971, lsl #16 + WORD $0x528eadde // mov w30, #30062 + WORD $0x72ad8d9e // movk w30, #27756, lsl #16 + WORD $0x4f02e4b2 // movi.16b v18, #69 + WORD $0x52800029 // mov w9, #1 +LBB0_490: + WORD $0xf9400408 // ldr x8, [x0, #8] + WORD $0xeb08027f // cmp x19, x8 + WORD $0x54000162 // b.hs LBB0_495 $44(%rip) + WORD $0x38736964 // ldrb w4, [x11, x19] + WORD $0x7100349f // cmp w4, #13 + WORD $0x54000100 // b.eq LBB0_495 $32(%rip) + WORD $0x7100809f // cmp w4, #32 + WORD $0x540000c0 // b.eq LBB0_495 $24(%rip) + WORD $0x51002c84 // sub w4, w4, #11 + WORD $0x3100089f // cmn w4, #2 + WORD $0x54000062 // b.hs LBB0_495 $12(%rip) + WORD $0xaa1303fb // mov x27, x19 + WORD $0x14000031 // b LBB0_511 $196(%rip) +LBB0_495: + WORD $0x9100067b // add x27, x19, #1 + WORD $0xeb08037f // cmp x27, x8 + WORD $0x54000122 // b.hs LBB0_499 $36(%rip) + WORD $0x387b6964 // ldrb w4, [x11, x27] + WORD $0x7100349f // cmp w4, #13 + WORD $0x540000c0 // b.eq LBB0_499 $24(%rip) + WORD $0x7100809f // cmp w4, #32 + WORD $0x54000080 // b.eq LBB0_499 $16(%rip) + WORD $0x51002c84 // sub w4, w4, #11 + WORD $0x3100089f // cmn w4, #2 + WORD $0x540004c3 // b.lo LBB0_511 $152(%rip) +LBB0_499: + WORD $0x91000a7b // add x27, x19, #2 + WORD $0xeb08037f // cmp x27, x8 + WORD $0x54000122 // b.hs LBB0_503 $36(%rip) + WORD $0x387b6964 // ldrb w4, [x11, x27] + WORD $0x7100349f // cmp w4, #13 + WORD $0x540000c0 // b.eq LBB0_503 $24(%rip) + WORD $0x7100809f // cmp w4, #32 + WORD $0x54000080 // b.eq LBB0_503 $16(%rip) + WORD $0x51002c84 // sub w4, w4, #11 + WORD $0x3100089f // cmn w4, #2 + WORD $0x54000363 // b.lo LBB0_511 $108(%rip) +LBB0_503: + WORD $0x91000e7b // add x27, x19, #3 + WORD $0xeb08037f // cmp x27, x8 + WORD $0x54000122 // b.hs LBB0_507 $36(%rip) + WORD $0x387b6964 // ldrb w4, [x11, x27] + WORD $0x7100349f // cmp w4, #13 + WORD $0x540000c0 // b.eq LBB0_507 $24(%rip) + WORD $0x7100809f // cmp w4, #32 + WORD $0x54000080 // b.eq LBB0_507 $16(%rip) + WORD $0x51002c84 // sub w4, w4, #11 + WORD $0x3100089f // cmn w4, #2 + WORD $0x54000203 // b.lo LBB0_511 $64(%rip) +LBB0_507: + WORD $0x9100127b // add x27, x19, #4 + WORD $0xeb08037f // cmp x27, x8 + WORD $0x540099e2 // b.hs LBB0_770 $4924(%rip) +LBB0_508: + WORD $0x387b6964 // ldrb w4, [x11, x27] + WORD $0x7100809f // cmp w4, #32 + WORD $0x9ac42224 // lsl x4, x17, x4 + WORD $0x8a020084 // and x4, x4, x2 + WORD $0xfa409884 // ccmp x4, #0, #4, ls + WORD $0x540000a0 // b.eq LBB0_510 $20(%rip) + WORD $0x9100077b // add x27, x27, #1 + WORD $0xeb1b011f // cmp x8, x27 + WORD $0x54ffff01 // b.ne LBB0_508 $-32(%rip) + WORD $0x140004c6 // b LBB0_771 $4888(%rip) +LBB0_510: + WORD $0xeb08037f // cmp x27, x8 + WORD $0x54009882 // b.hs LBB0_771 $4880(%rip) +LBB0_511: + WORD $0x91000773 // add x19, x27, #1 + WORD $0xf9000033 // str x19, [x1] + WORD $0x8b1b017c // add x28, x11, x27 + WORD $0x39400395 // ldrb w21, [x28] + WORD $0x340097f5 // cbz w21, LBB0_771 $4860(%rip) + WORD $0xd1000534 // sub x20, x9, #1 + WORD $0xf8747988 // ldr x8, [x12, x20, lsl #3] + WORD $0xb100061f // cmn x16, #1 + WORD $0x9a900370 // csel x16, x27, x16, eq + WORD $0x71000d1f // cmp w8, #3 + WORD $0x54000dcc // b.gt LBB0_529 $440(%rip) + WORD $0x7100051f // cmp w8, #1 + WORD $0x54001d20 // b.eq LBB0_546 $932(%rip) + WORD $0x7100091f // cmp w8, #2 + WORD $0x54003060 // b.eq LBB0_586 $1548(%rip) + WORD $0x71000d1f // cmp w8, #3 + WORD $0x54001e21 // b.ne LBB0_550 $964(%rip) + WORD $0x71008abf // cmp w21, #34 + WORD $0x540097a1 // b.ne LBB0_777 $4852(%rip) + WORD $0xf8347986 // str x6, [x12, x20, lsl #3] + WORD $0xf9400408 // ldr x8, [x0, #8] + WORD $0xeb13011e // subs lr, x8, x19 + WORD $0x5400a340 // b.eq LBB0_807 $5224(%rip) + WORD $0xf10103df // cmp lr, #64 + WORD $0x54006763 // b.lo LBB0_699 $3308(%rip) + WORD $0xd2800009 // mov x9, #0 + WORD $0x9280001c // mov x28, #-1 +LBB0_520: + WORD $0x8b130164 // add x4, x11, x19 + WORD $0xad405093 // ldp q19, q20, [x4] + WORD $0xad415895 // ldp q21, q22, [x4, #32] + WORD $0x6e208e77 // cmeq.16b v23, v19, v0 + WORD $0x6e208e98 // cmeq.16b v24, v20, v0 + WORD $0x6e208eb9 // cmeq.16b v25, v21, v0 + WORD $0x6e208eda // cmeq.16b v26, v22, v0 + WORD $0x6e218e73 // cmeq.16b v19, v19, v1 + WORD $0x6e218e94 // cmeq.16b v20, v20, v1 + WORD $0x6e218eb5 // cmeq.16b v21, v21, v1 + WORD $0x6e218ed6 // cmeq.16b v22, v22, v1 + WORD $0x4e221ef7 // and.16b v23, v23, v2 + WORD $0x4e0302f7 // tbl.16b v23, { v23 }, v3 + WORD $0x4e71baf7 // addv.8h h23, v23 + WORD $0x1e2602e4 // fmov w4, s23 + WORD $0x4e221f17 // and.16b v23, v24, v2 + WORD $0x4e0302f7 // tbl.16b v23, { v23 }, v3 + WORD $0x4e71baf7 // addv.8h h23, v23 + WORD $0x1e2602e6 // fmov w6, s23 + WORD $0x4e221f37 // and.16b v23, v25, v2 + WORD $0x4e0302f7 // tbl.16b v23, { v23 }, v3 + WORD $0x4e71baf7 // addv.8h h23, v23 + WORD $0x1e2602f4 // fmov w20, s23 + WORD $0x4e221f57 // and.16b v23, v26, v2 + WORD $0x4e0302f7 // tbl.16b v23, { v23 }, v3 + WORD $0x4e71baf7 // addv.8h h23, v23 + WORD $0x1e2602f5 // fmov w21, s23 + WORD $0x4e221e73 // and.16b v19, v19, v2 + WORD $0x4e030273 // tbl.16b v19, { v19 }, v3 + WORD $0x4e71ba73 // addv.8h h19, v19 + WORD $0x1e260276 // fmov w22, s19 + WORD $0x4e221e93 // and.16b v19, v20, v2 + WORD $0x4e030273 // tbl.16b v19, { v19 }, v3 + WORD $0x4e71ba73 // addv.8h h19, v19 + WORD $0x1e260277 // fmov w23, s19 + WORD $0x4e221eb3 // and.16b v19, v21, v2 + WORD $0x4e030273 // tbl.16b v19, { v19 }, v3 + WORD $0x4e71ba73 // addv.8h h19, v19 + WORD $0x1e260278 // fmov w24, s19 + WORD $0x4e221ed3 // and.16b v19, v22, v2 + WORD $0x4e030273 // tbl.16b v19, { v19 }, v3 + WORD $0x4e71ba73 // addv.8h h19, v19 + WORD $0x1e26027a // fmov w26, s19 + WORD $0xd3607e94 // lsl x20, x20, #32 + WORD $0xaa15c294 // orr x20, x20, x21, lsl #48 + WORD $0x53103cc6 // lsl w6, w6, #16 + WORD $0xaa060286 // orr x6, x20, x6 + WORD $0xaa0400d4 // orr x20, x6, x4 + WORD $0xd3607f04 // lsl x4, x24, #32 + WORD $0xaa1ac084 // orr x4, x4, x26, lsl #48 + WORD $0x53103ee6 // lsl w6, w23, #16 + WORD $0xaa060084 // orr x4, x4, x6 + WORD $0xaa160084 // orr x4, x4, x22 + WORD $0xb5000104 // cbnz x4, LBB0_524 $32(%rip) + WORD $0xb5000189 // cbnz x9, LBB0_525 $48(%rip) + WORD $0xb50002d4 // cbnz x20, LBB0_526 $88(%rip) +LBB0_523: + WORD $0xd10103de // sub lr, lr, #64 + WORD $0x91010273 // add x19, x19, #64 + WORD $0xf100ffdf // cmp lr, #63 + WORD $0x54fff8a8 // b.hi LBB0_520 $-236(%rip) + WORD $0x140002f2 // b LBB0_696 $3016(%rip) +LBB0_524: + WORD $0xb100079f // cmn x28, #1 + WORD $0xdac00086 // rbit x6, x4 + WORD $0xdac010c6 // clz x6, x6 + WORD $0x8b1300c6 // add x6, x6, x19 + WORD $0x9a86139c // csel x28, x28, x6, ne +LBB0_525: + WORD $0x8a290086 // bic x6, x4, x9 + WORD $0xaa060535 // orr x21, x9, x6, lsl #1 + WORD $0x8a350089 // bic x9, x4, x21 + WORD $0x9201f129 // and x9, x9, #0xaaaaaaaaaaaaaaaa + WORD $0xab060124 // adds x4, x9, x6 + WORD $0x1a9f37e9 // cset w9, hs + WORD $0xd37ff884 // lsl x4, x4, #1 + WORD $0xd200f084 // eor x4, x4, #0x5555555555555555 + WORD $0x8a150084 // and x4, x4, x21 + WORD $0x8a240294 // bic x20, x20, x4 + WORD $0xb4fffd94 // cbz x20, LBB0_523 $-80(%rip) +LBB0_526: + WORD $0xdac00289 // rbit x9, x20 + WORD $0xdac01129 // clz x9, x9 + WORD $0x8b130129 // add x9, x9, x19 +LBB0_527: + WORD $0x91000533 // add x19, x9, #1 +LBB0_528: + WORD $0x5280006a // mov w10, #3 + WORD $0x52800086 // mov w6, #4 + WORD $0x92f00017 // mov x23, #9223372036854775807 + WORD $0xb20903f8 // mov x24, #36028797027352576 + WORD $0xf2800038 // movk x24, #1 + WORD $0x528000b9 // mov w25, #5 + WORD $0x528d8c3a // mov w26, #27745 + WORD $0x72acae7a // movk w26, #25971, lsl #16 + WORD $0x528eadde // mov w30, #30062 + WORD $0x72ad8d9e // movk w30, #27756, lsl #16 + WORD $0xb6f836d3 // tbz x19, #63, LBB0_633 $1752(%rip) + WORD $0x14000464 // b LBB0_780 $4496(%rip) +LBB0_529: + WORD $0x7100111f // cmp w8, #4 + WORD $0x54001020 // b.eq LBB0_548 $516(%rip) + WORD $0x7100151f // cmp w8, #5 + WORD $0x54002360 // b.eq LBB0_588 $1132(%rip) + WORD $0x7100191f // cmp w8, #6 + WORD $0x54001081 // b.ne LBB0_550 $528(%rip) + WORD $0x71008abf // cmp w21, #34 + WORD $0x54002281 // b.ne LBB0_587 $1104(%rip) + WORD $0x3200f3ea // mov w10, #1431655765 + WORD $0x52800048 // mov w8, #2 + WORD $0xf8347988 // str x8, [x12, x20, lsl #3] + WORD $0xf9400408 // ldr x8, [x0, #8] + WORD $0xeb13011e // subs lr, x8, x19 + WORD $0x54009560 // b.eq LBB0_807 $4780(%rip) + WORD $0xf10103df // cmp lr, #64 + WORD $0x54006043 // b.lo LBB0_707 $3080(%rip) + WORD $0xd2800009 // mov x9, #0 + WORD $0x9280001c // mov x28, #-1 +LBB0_536: + WORD $0x8b130164 // add x4, x11, x19 + WORD $0xad405093 // ldp q19, q20, [x4] + WORD $0xad415895 // ldp q21, q22, [x4, #32] + WORD $0x6e208e77 // cmeq.16b v23, v19, v0 + WORD $0x6e208e98 // cmeq.16b v24, v20, v0 + WORD $0x6e208eb9 // cmeq.16b v25, v21, v0 + WORD $0x6e208eda // cmeq.16b v26, v22, v0 + WORD $0x6e218e73 // cmeq.16b v19, v19, v1 + WORD $0x6e218e94 // cmeq.16b v20, v20, v1 + WORD $0x6e218eb5 // cmeq.16b v21, v21, v1 + WORD $0x6e218ed6 // cmeq.16b v22, v22, v1 + WORD $0x4e221ef7 // and.16b v23, v23, v2 + WORD $0x4e0302f7 // tbl.16b v23, { v23 }, v3 + WORD $0x4e71baf7 // addv.8h h23, v23 + WORD $0x1e2602e4 // fmov w4, s23 + WORD $0x4e221f17 // and.16b v23, v24, v2 + WORD $0x4e0302f7 // tbl.16b v23, { v23 }, v3 + WORD $0x4e71baf7 // addv.8h h23, v23 + WORD $0x1e2602e6 // fmov w6, s23 + WORD $0x4e221f37 // and.16b v23, v25, v2 + WORD $0x4e0302f7 // tbl.16b v23, { v23 }, v3 + WORD $0x4e71baf7 // addv.8h h23, v23 + WORD $0x1e2602f4 // fmov w20, s23 + WORD $0x4e221f57 // and.16b v23, v26, v2 + WORD $0x4e0302f7 // tbl.16b v23, { v23 }, v3 + WORD $0x4e71baf7 // addv.8h h23, v23 + WORD $0x1e2602f5 // fmov w21, s23 + WORD $0x4e221e73 // and.16b v19, v19, v2 + WORD $0x4e030273 // tbl.16b v19, { v19 }, v3 + WORD $0x4e71ba73 // addv.8h h19, v19 + WORD $0x1e260276 // fmov w22, s19 + WORD $0x4e221e93 // and.16b v19, v20, v2 + WORD $0x4e030273 // tbl.16b v19, { v19 }, v3 + WORD $0x4e71ba73 // addv.8h h19, v19 + WORD $0x1e260277 // fmov w23, s19 + WORD $0x4e221eb3 // and.16b v19, v21, v2 + WORD $0x4e030273 // tbl.16b v19, { v19 }, v3 + WORD $0x4e71ba73 // addv.8h h19, v19 + WORD $0x1e260278 // fmov w24, s19 + WORD $0x4e221ed3 // and.16b v19, v22, v2 + WORD $0x4e030273 // tbl.16b v19, { v19 }, v3 + WORD $0x4e71ba73 // addv.8h h19, v19 + WORD $0x1e26027a // fmov w26, s19 + WORD $0xd3607e94 // lsl x20, x20, #32 + WORD $0xaa15c294 // orr x20, x20, x21, lsl #48 + WORD $0x53103cc6 // lsl w6, w6, #16 + WORD $0xaa060286 // orr x6, x20, x6 + WORD $0xaa0400d4 // orr x20, x6, x4 + WORD $0xd3607f04 // lsl x4, x24, #32 + WORD $0xaa1ac084 // orr x4, x4, x26, lsl #48 + WORD $0x53103ee6 // lsl w6, w23, #16 + WORD $0xaa060084 // orr x4, x4, x6 + WORD $0xaa160084 // orr x4, x4, x22 + WORD $0xb5000104 // cbnz x4, LBB0_540 $32(%rip) + WORD $0xb5000189 // cbnz x9, LBB0_541 $48(%rip) + WORD $0xb50002d4 // cbnz x20, LBB0_542 $88(%rip) +LBB0_539: + WORD $0xd10103de // sub lr, lr, #64 + WORD $0x91010273 // add x19, x19, #64 + WORD $0xf100ffdf // cmp lr, #63 + WORD $0x54fff8a8 // b.hi LBB0_536 $-236(%rip) + WORD $0x140002bd // b LBB0_705 $2804(%rip) +LBB0_540: + WORD $0xb100079f // cmn x28, #1 + WORD $0xdac00086 // rbit x6, x4 + WORD $0xdac010c6 // clz x6, x6 + WORD $0x8b1300c6 // add x6, x6, x19 + WORD $0x9a86139c // csel x28, x28, x6, ne +LBB0_541: + WORD $0x8a290086 // bic x6, x4, x9 + WORD $0xaa060535 // orr x21, x9, x6, lsl #1 + WORD $0x8a350089 // bic x9, x4, x21 + WORD $0x9201f129 // and x9, x9, #0xaaaaaaaaaaaaaaaa + WORD $0xab060124 // adds x4, x9, x6 + WORD $0x1a9f37e9 // cset w9, hs + WORD $0xd37ff884 // lsl x4, x4, #1 + WORD $0xd200f084 // eor x4, x4, #0x5555555555555555 + WORD $0x8a150084 // and x4, x4, x21 + WORD $0x8a240294 // bic x20, x20, x4 + WORD $0xb4fffd94 // cbz x20, LBB0_539 $-80(%rip) +LBB0_542: + WORD $0xdac00289 // rbit x9, x20 + WORD $0xdac01129 // clz x9, x9 + WORD $0x8b130129 // add x9, x9, x19 + WORD $0x91000533 // add x19, x9, #1 + WORD $0x5280006a // mov w10, #3 + WORD $0x52800086 // mov w6, #4 + WORD $0x92f00017 // mov x23, #9223372036854775807 + WORD $0xb20903f8 // mov x24, #36028797027352576 + WORD $0xf2800038 // movk x24, #1 + WORD $0x528000b9 // mov w25, #5 + WORD $0x528d8c3a // mov w26, #27745 + WORD $0x72acae7a // movk w26, #25971, lsl #16 + WORD $0x528eadde // mov w30, #30062 + WORD $0x72ad8d9e // movk w30, #27756, lsl #16 + WORD $0xb7f87ed3 // tbnz x19, #63, LBB0_780 $4056(%rip) +LBB0_543: + WORD $0xf9000033 // str x19, [x1] + WORD $0xaa1b03e8 // mov x8, x27 + WORD $0xb27ff7e9 // mov x9, #9223372036854775806 + WORD $0xeb09037f // cmp x27, x9 + WORD $0x54007cc8 // b.hi LBB0_778 $3992(%rip) + WORD $0xf9400068 // ldr x8, [x3] + WORD $0xf13ffd1f // cmp x8, #4095 + WORD $0x54007d8c // b.gt LBB0_779 $4016(%rip) + WORD $0x91000509 // add x9, x8, #1 + WORD $0xf9000069 // str x9, [x3] + WORD $0xf8287986 // str x6, [x12, x8, lsl #3] + WORD $0xf9400069 // ldr x9, [x3] + WORD $0xaa1003e8 // mov x8, x16 + WORD $0xb5ffda09 // cbnz x9, LBB0_490 $-1216(%rip) + WORD $0x140003dc // b LBB0_778 $3952(%rip) +LBB0_546: + WORD $0x7100b2bf // cmp w21, #44 + WORD $0x540017c0 // b.eq LBB0_597 $760(%rip) + WORD $0x710176bf // cmp w21, #93 + WORD $0x54001400 // b.eq LBB0_589 $640(%rip) + WORD $0x140003d6 // b LBB0_777 $3928(%rip) +LBB0_548: + WORD $0x7100eabf // cmp w21, #58 + WORD $0x54007a81 // b.ne LBB0_777 $3920(%rip) + WORD $0xf834799f // str xzr, [x12, x20, lsl #3] + WORD $0xf9400069 // ldr x9, [x3] + WORD $0xaa1003e8 // mov x8, x16 + WORD $0xb5ffd889 // cbnz x9, LBB0_490 $-1264(%rip) + WORD $0x140003d0 // b LBB0_778 $3904(%rip) +LBB0_550: + WORD $0xf9000074 // str x20, [x3] + WORD $0x92800028 // mov x8, #-2 + WORD $0x71016abf // cmp w21, #90 + WORD $0x540013ac // b.gt LBB0_591 $628(%rip) +LBB0_551: + WORD $0x5100c2a9 // sub w9, w21, #48 + WORD $0x7100293f // cmp w9, #10 + WORD $0x54001ea2 // b.hs LBB0_617 $980(%rip) + WORD $0xf9400408 // ldr x8, [x0, #8] + WORD $0xeb1b0114 // subs x20, x8, x27 + WORD $0x54007ac0 // b.eq LBB0_782 $3928(%rip) + WORD $0x39400388 // ldrb w8, [x28] + WORD $0x7100c11f // cmp w8, #48 + WORD $0x54000141 // b.ne LBB0_557 $40(%rip) + WORD $0xf100069f // cmp x20, #1 + WORD $0x540023a0 // b.eq LBB0_633 $1140(%rip) + WORD $0x38736968 // ldrb w8, [x11, x19] + WORD $0x5100b908 // sub w8, w8, #46 + WORD $0x7100dd1f // cmp w8, #55 + WORD $0x54002328 // b.hi LBB0_633 $1124(%rip) + WORD $0x9ac82228 // lsl x8, x17, x8 + WORD $0xea18011f // tst x8, x24 + WORD $0x540022c0 // b.eq LBB0_633 $1112(%rip) +LBB0_557: + WORD $0xf100429f // cmp x20, #16 + WORD $0x54005a23 // b.lo LBB0_723 $2884(%rip) + WORD $0xd2800015 // mov x21, #0 + WORD $0xd280001e // mov lr, #0 + WORD $0x92800013 // mov x19, #-1 + WORD $0x92800009 // mov x9, #-1 + WORD $0x92800008 // mov x8, #-1 +LBB0_559: + WORD $0x3cfe6b93 // ldr q19, [x28, lr] + WORD $0x6e248e74 // cmeq.16b v20, v19, v4 + WORD $0x6e258e75 // cmeq.16b v21, v19, v5 + WORD $0x6e268e76 // cmeq.16b v22, v19, v6 + WORD $0x4e278677 // add.16b v23, v19, v7 + WORD $0x6e373617 // cmhi.16b v23, v16, v23 + WORD $0x4e311e73 // and.16b v19, v19, v17 + WORD $0x6e328e73 // cmeq.16b v19, v19, v18 + WORD $0x4eb61eb5 // orr.16b v21, v21, v22 + WORD $0x4eb41ef6 // orr.16b v22, v23, v20 + WORD $0x4eb51e77 // orr.16b v23, v19, v21 + WORD $0x4eb71ed6 // orr.16b v22, v22, v23 + WORD $0x4e221e94 // and.16b v20, v20, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e260284 // fmov w4, s20 + WORD $0x4e221e73 // and.16b v19, v19, v2 + WORD $0x4e030273 // tbl.16b v19, { v19 }, v3 + WORD $0x4e71ba73 // addv.8h h19, v19 + WORD $0x1e260277 // fmov w23, s19 + WORD $0x4e221eb3 // and.16b v19, v21, v2 + WORD $0x4e030273 // tbl.16b v19, { v19 }, v3 + WORD $0x4e71ba73 // addv.8h h19, v19 + WORD $0x1e26027a // fmov w26, s19 + WORD $0x4e221ed3 // and.16b v19, v22, v2 + WORD $0x4e030273 // tbl.16b v19, { v19 }, v3 + WORD $0x4e71ba73 // addv.8h h19, v19 + WORD $0x1e260266 // fmov w6, s19 + WORD $0x2a2603e6 // mvn w6, w6 + WORD $0x32103cc6 // orr w6, w6, #0xffff0000 + WORD $0x5ac000c6 // rbit w6, w6 + WORD $0x5ac010d6 // clz w22, w6 + WORD $0x1ad620e6 // lsl w6, w7, w22 + WORD $0x0a260098 // bic w24, w4, w6 + WORD $0x0a2602f9 // bic w25, w23, w6 + WORD $0x0a260345 // bic w5, w26, w6 + WORD $0x710042df // cmp w22, #16 + WORD $0x1a980086 // csel w6, w4, w24, eq + WORD $0x1a9902f8 // csel w24, w23, w25, eq + WORD $0x1a850357 // csel w23, w26, w5, eq + WORD $0x510004c4 // sub w4, w6, #1 + WORD $0x6a060084 // ands w4, w4, w6 + WORD $0x54004061 // b.ne LBB0_697 $2060(%rip) + WORD $0x51000704 // sub w4, w24, #1 + WORD $0x6a180084 // ands w4, w4, w24 + WORD $0x54004001 // b.ne LBB0_697 $2048(%rip) + WORD $0x510006e4 // sub w4, w23, #1 + WORD $0x6a170084 // ands w4, w4, w23 + WORD $0x54003fa1 // b.ne LBB0_697 $2036(%rip) + WORD $0x340000c6 // cbz w6, LBB0_565 $24(%rip) + WORD $0x5ac000c4 // rbit w4, w6 + WORD $0x5ac01084 // clz w4, w4 + WORD $0xb100051f // cmn x8, #1 + WORD $0x54003fa1 // b.ne LBB0_698 $2036(%rip) + WORD $0x8b0403c8 // add x8, lr, x4 +LBB0_565: + WORD $0x340000d8 // cbz w24, LBB0_568 $24(%rip) + WORD $0x5ac00304 // rbit w4, w24 + WORD $0x5ac01084 // clz w4, w4 + WORD $0xb100053f // cmn x9, #1 + WORD $0x54003ee1 // b.ne LBB0_698 $2012(%rip) + WORD $0x8b0403c9 // add x9, lr, x4 +LBB0_568: + WORD $0x340000d7 // cbz w23, LBB0_571 $24(%rip) + WORD $0x5ac002e4 // rbit w4, w23 + WORD $0x5ac01084 // clz w4, w4 + WORD $0xb100067f // cmn x19, #1 + WORD $0x54003e21 // b.ne LBB0_698 $1988(%rip) + WORD $0x8b0403d3 // add x19, lr, x4 +LBB0_571: + WORD $0x710042df // cmp w22, #16 + WORD $0x54000c81 // b.ne LBB0_601 $400(%rip) + WORD $0x910043de // add lr, lr, #16 + WORD $0xd10042b5 // sub x21, x21, #16 + WORD $0x8b150296 // add x22, x20, x21 + WORD $0xf1003edf // cmp x22, #15 + WORD $0x54fff6e8 // b.hi LBB0_559 $-292(%rip) + WORD $0x8b1e0395 // add x21, x28, lr + WORD $0xeb1e029f // cmp x20, lr + WORD $0x54000bc0 // b.eq LBB0_602 $376(%rip) +LBB0_574: + WORD $0x8b1602b7 // add x23, x21, x22 + WORD $0x8b1b01e4 // add x4, x15, x27 + WORD $0xcb150094 // sub x20, x4, x21 + WORD $0xcb1c02b8 // sub x24, x21, x28 + WORD $0xaa1503fe // mov lr, x21 + WORD $0x14000009 // b LBB0_577 $36(%rip) +LBB0_575: + WORD $0xb100053f // cmn x9, #1 + WORD $0xaa1803e9 // mov x9, x24 + WORD $0x54000f81 // b.ne LBB0_614 $496(%rip) +LBB0_576: + WORD $0xd1000694 // sub x20, x20, #1 + WORD $0x91000718 // add x24, x24, #1 + WORD $0xaa1e03f5 // mov x21, lr + WORD $0xd10006d6 // sub x22, x22, #1 + WORD $0xb4002396 // cbz x22, LBB0_646 $1136(%rip) +LBB0_577: + WORD $0x384017c6 // ldrb w6, [lr], #1 + WORD $0x5100c0c4 // sub w4, w6, #48 + WORD $0x7100289f // cmp w4, #10 + WORD $0x54ffff03 // b.lo LBB0_576 $-32(%rip) + WORD $0x7100b4df // cmp w6, #45 + WORD $0x5400016d // b.le LBB0_583 $44(%rip) + WORD $0x710194df // cmp w6, #101 + WORD $0x54fffe20 // b.eq LBB0_575 $-60(%rip) + WORD $0x710114df // cmp w6, #69 + WORD $0x54fffde0 // b.eq LBB0_575 $-68(%rip) + WORD $0x7100b8df // cmp w6, #46 + WORD $0x54000881 // b.ne LBB0_602 $272(%rip) + WORD $0xb100051f // cmn x8, #1 + WORD $0xaa1803e8 // mov x8, x24 + WORD $0x54fffda0 // b.eq LBB0_576 $-76(%rip) + WORD $0x14000067 // b LBB0_614 $412(%rip) +LBB0_583: + WORD $0x7100acdf // cmp w6, #43 + WORD $0x54000060 // b.eq LBB0_585 $12(%rip) + WORD $0x7100b4df // cmp w6, #45 + WORD $0x54000781 // b.ne LBB0_602 $240(%rip) +LBB0_585: + WORD $0xb100067f // cmn x19, #1 + WORD $0xaa1803f3 // mov x19, x24 + WORD $0x54fffca0 // b.eq LBB0_576 $-108(%rip) + WORD $0x1400005f // b LBB0_614 $380(%rip) +LBB0_586: + WORD $0x7100b2bf // cmp w21, #44 + WORD $0x54000560 // b.eq LBB0_599 $172(%rip) +LBB0_587: + WORD $0x7101f6bf // cmp w21, #125 + WORD $0x54000080 // b.eq LBB0_589 $16(%rip) + WORD $0x1400033a // b LBB0_777 $3304(%rip) +LBB0_588: + WORD $0x710176bf // cmp w21, #93 + WORD $0x540000c1 // b.ne LBB0_590 $24(%rip) +LBB0_589: + WORD $0xf9000074 // str x20, [x3] + WORD $0xaa1403e9 // mov x9, x20 + WORD $0xaa1003e8 // mov x8, x16 + WORD $0xb5ffc514 // cbnz x20, LBB0_490 $-1888(%rip) + WORD $0x14000334 // b LBB0_778 $3280(%rip) +LBB0_590: + WORD $0xf8347991 // str x17, [x12, x20, lsl #3] + WORD $0x92800028 // mov x8, #-2 + WORD $0x71016abf // cmp w21, #90 + WORD $0x54ffecad // b.le LBB0_551 $-620(%rip) +LBB0_591: + WORD $0x7101b6bf // cmp w21, #109 + WORD $0x54000d6d // b.le LBB0_623 $428(%rip) + WORD $0x7101babf // cmp w21, #110 + WORD $0x54001000 // b.eq LBB0_630 $512(%rip) + WORD $0x7101d2bf // cmp w21, #116 + WORD $0x54000e80 // b.eq LBB0_628 $464(%rip) + WORD $0x7101eebf // cmp w21, #123 + WORD $0x54006501 // b.ne LBB0_778 $3232(%rip) + WORD $0xf9400068 // ldr x8, [x3] + WORD $0xf13ffd1f // cmp x8, #4095 + WORD $0x540065cc // b.gt LBB0_779 $3256(%rip) + WORD $0x91000509 // add x9, x8, #1 + WORD $0xf9000069 // str x9, [x3] + WORD $0x528000c9 // mov w9, #6 + WORD $0xf8287989 // str x9, [x12, x8, lsl #3] + WORD $0xf9400069 // ldr x9, [x3] + WORD $0xaa1003e8 // mov x8, x16 + WORD $0xb5ffc229 // cbnz x9, LBB0_490 $-1980(%rip) + WORD $0x1400031d // b LBB0_778 $3188(%rip) +LBB0_597: + WORD $0xf13ffd3f // cmp x9, #4095 + WORD $0x5400648c // b.gt LBB0_779 $3216(%rip) + WORD $0x91000528 // add x8, x9, #1 + WORD $0xf9000068 // str x8, [x3] + WORD $0xf829799f // str xzr, [x12, x9, lsl #3] + WORD $0xf9400069 // ldr x9, [x3] + WORD $0xaa1003e8 // mov x8, x16 + WORD $0xb5ffc109 // cbnz x9, LBB0_490 $-2016(%rip) + WORD $0x14000314 // b LBB0_778 $3152(%rip) +LBB0_599: + WORD $0xf13ffd3f // cmp x9, #4095 + WORD $0x5400636c // b.gt LBB0_779 $3180(%rip) + WORD $0x91000528 // add x8, x9, #1 + WORD $0xf9000068 // str x8, [x3] + WORD $0xf829798a // str x10, [x12, x9, lsl #3] + WORD $0xf9400069 // ldr x9, [x3] + WORD $0xaa1003e8 // mov x8, x16 + WORD $0xb5ffbfe9 // cbnz x9, LBB0_490 $-2052(%rip) + WORD $0x1400030b // b LBB0_778 $3116(%rip) +LBB0_601: + WORD $0x8b364384 // add x4, x28, w22, uxtw + WORD $0x8b1e0095 // add x21, x4, lr +LBB0_602: + WORD $0x92800014 // mov x20, #-1 + WORD $0xb4006308 // cbz x8, LBB0_783 $3168(%rip) +LBB0_603: + WORD $0xb40062f3 // cbz x19, LBB0_783 $3164(%rip) + WORD $0xb40062c9 // cbz x9, LBB0_783 $3160(%rip) + WORD $0xcb1c02b4 // sub x20, x21, x28 + WORD $0xd1000684 // sub x4, x20, #1 + WORD $0xeb04011f // cmp x8, x4 + WORD $0x540003e0 // b.eq LBB0_613 $124(%rip) + WORD $0xeb04027f // cmp x19, x4 + WORD $0x540003a0 // b.eq LBB0_613 $116(%rip) + WORD $0xeb04013f // cmp x9, x4 + WORD $0x54000360 // b.eq LBB0_613 $108(%rip) + WORD $0xf1000664 // subs x4, x19, #1 + WORD $0x5280006a // mov w10, #3 + WORD $0x52800086 // mov w6, #4 + WORD $0x92f00017 // mov x23, #9223372036854775807 + WORD $0xb20903f8 // mov x24, #36028797027352576 + WORD $0xf2800038 // movk x24, #1 + WORD $0x528000b9 // mov w25, #5 + WORD $0x528d8c3a // mov w26, #27745 + WORD $0x72acae7a // movk w26, #25971, lsl #16 + WORD $0x528eadde // mov w30, #30062 + WORD $0x72ad8d9e // movk w30, #27756, lsl #16 + WORD $0x5400006b // b.lt LBB0_610 $12(%rip) + WORD $0xeb04013f // cmp x9, x4 + WORD $0x54006021 // b.ne LBB0_784 $3076(%rip) +LBB0_610: + WORD $0xaa090104 // orr x4, x8, x9 + WORD $0xb7f80064 // tbnz x4, #63, LBB0_612 $12(%rip) + WORD $0xeb09011f // cmp x8, x9 + WORD $0x5400602a // b.ge LBB0_786 $3076(%rip) +LBB0_612: + WORD $0xd37ffc84 // lsr x4, x4, #63 + WORD $0x52000084 // eor w4, w4, #0x1 + WORD $0xd1000525 // sub x5, x9, #1 + WORD $0xeb05011f // cmp x8, x5 + WORD $0x1a9f17e8 // cset w8, eq + WORD $0x6a08009f // tst w4, w8 + WORD $0xda890294 // csinv x20, x20, x9, eq + WORD $0x1400000c // b LBB0_615 $48(%rip) +LBB0_613: + WORD $0xcb1403f4 // neg x20, x20 +LBB0_614: + WORD $0x5280006a // mov w10, #3 + WORD $0x52800086 // mov w6, #4 + WORD $0x92f00017 // mov x23, #9223372036854775807 + WORD $0xb20903f8 // mov x24, #36028797027352576 + WORD $0xf2800038 // movk x24, #1 + WORD $0x528000b9 // mov w25, #5 + WORD $0x528d8c3a // mov w26, #27745 + WORD $0x72acae7a // movk w26, #25971, lsl #16 + WORD $0x528eadde // mov w30, #30062 + WORD $0x72ad8d9e // movk w30, #27756, lsl #16 +LBB0_615: + WORD $0xb7f85d14 // tbnz x20, #63, LBB0_783 $2976(%rip) + WORD $0x8b140373 // add x19, x27, x20 + WORD $0x14000031 // b LBB0_633 $196(%rip) +LBB0_617: + WORD $0x71008abf // cmp w21, #34 + WORD $0x54000820 // b.eq LBB0_637 $260(%rip) + WORD $0x7100b6bf // cmp w21, #45 + WORD $0x54005a21 // b.ne LBB0_778 $2884(%rip) + WORD $0xb20903ea // mov x10, #36028797027352576 + WORD $0xf280002a // movk x10, #1 + WORD $0xf9400408 // ldr x8, [x0, #8] + WORD $0xeb130117 // subs x23, x8, x19 + WORD $0x54005c80 // b.eq LBB0_787 $2960(%rip) + WORD $0x8b130168 // add x8, x11, x19 + WORD $0x39400109 // ldrb w9, [x8] + WORD $0x7100c13f // cmp w9, #48 + WORD $0x54001301 // b.ne LBB0_649 $608(%rip) + WORD $0xf10006ff // cmp x23, #1 + WORD $0x540011c1 // b.ne LBB0_647 $568(%rip) +LBB0_622: + WORD $0x52800034 // mov w20, #1 + WORD $0x1400012d // b LBB0_695 $1204(%rip) +LBB0_623: + WORD $0x71016ebf // cmp w21, #91 + WORD $0x540004c0 // b.eq LBB0_635 $152(%rip) + WORD $0x71019abf // cmp w21, #102 + WORD $0x54005801 // b.ne LBB0_778 $2816(%rip) + WORD $0xf9400408 // ldr x8, [x0, #8] + WORD $0xd1001109 // sub x9, x8, #4 + WORD $0xeb09037f // cmp x27, x9 + WORD $0x54005a02 // b.hs LBB0_785 $2880(%rip) + WORD $0xb8736968 // ldr w8, [x11, x19] + WORD $0x6b1a011f // cmp w8, w26 + WORD $0x54005aa1 // b.ne LBB0_790 $2900(%rip) + WORD $0x91001773 // add x19, x27, #5 + WORD $0x14000013 // b LBB0_633 $76(%rip) +LBB0_628: + WORD $0xf9400408 // ldr x8, [x0, #8] + WORD $0xd1000d09 // sub x9, x8, #3 + WORD $0xeb09037f // cmp x27, x9 + WORD $0x540058e2 // b.hs LBB0_785 $2844(%rip) + WORD $0xb87b6968 // ldr w8, [x11, x27] + WORD $0x528e4e89 // mov w9, #29300 + WORD $0x72acaea9 // movk w9, #25973, lsl #16 + WORD $0x6b09011f // cmp w8, w9 + WORD $0x54000120 // b.eq LBB0_632 $36(%rip) + WORD $0x140002f2 // b LBB0_799 $3016(%rip) +LBB0_630: + WORD $0xf9400408 // ldr x8, [x0, #8] + WORD $0xd1000d09 // sub x9, x8, #3 + WORD $0xeb09037f // cmp x27, x9 + WORD $0x540057a2 // b.hs LBB0_785 $2804(%rip) + WORD $0xb87b6968 // ldr w8, [x11, x27] + WORD $0x6b1e011f // cmp w8, w30 + WORD $0x54005ae1 // b.ne LBB0_795 $2908(%rip) +LBB0_632: + WORD $0x91001373 // add x19, x27, #4 +LBB0_633: + WORD $0xf9000033 // str x19, [x1] + WORD $0xaa1b03e8 // mov x8, x27 + WORD $0xeb17037f // cmp x27, x23 + WORD $0x54005422 // b.hs LBB0_778 $2692(%rip) +LBB0_634: + WORD $0xf9400069 // ldr x9, [x3] + WORD $0xaa1003e8 // mov x8, x16 + WORD $0xb5ffb229 // cbnz x9, LBB0_490 $-2492(%rip) + WORD $0x1400029d // b LBB0_778 $2676(%rip) +LBB0_635: + WORD $0xf9400068 // ldr x8, [x3] + WORD $0xf13ffd1f // cmp x8, #4095 + WORD $0x5400546c // b.gt LBB0_779 $2700(%rip) + WORD $0x91000509 // add x9, x8, #1 + WORD $0xf9000069 // str x9, [x3] + WORD $0xf8287999 // str x25, [x12, x8, lsl #3] + WORD $0xf9400069 // ldr x9, [x3] + WORD $0xaa1003e8 // mov x8, x16 + WORD $0xb5ffb0e9 // cbnz x9, LBB0_490 $-2532(%rip) + WORD $0x14000293 // b LBB0_778 $2636(%rip) +LBB0_637: + WORD $0x3200f3f9 // mov w25, #1431655765 + WORD $0xf9400408 // ldr x8, [x0, #8] + WORD $0xeb13011e // subs lr, x8, x19 + WORD $0x54005de0 // b.eq LBB0_807 $3004(%rip) + WORD $0xf10103df // cmp lr, #64 + WORD $0x54003043 // b.lo LBB0_717 $1544(%rip) + WORD $0xd2800009 // mov x9, #0 + WORD $0x9280001c // mov x28, #-1 +LBB0_640: + WORD $0x8b13016a // add x10, x11, x19 + WORD $0xad405153 // ldp q19, q20, [x10] + WORD $0xad415955 // ldp q21, q22, [x10, #32] + WORD $0x6e208e77 // cmeq.16b v23, v19, v0 + WORD $0x6e208e98 // cmeq.16b v24, v20, v0 + WORD $0x6e208eb9 // cmeq.16b v25, v21, v0 + WORD $0x6e208eda // cmeq.16b v26, v22, v0 + WORD $0x6e218e73 // cmeq.16b v19, v19, v1 + WORD $0x6e218e94 // cmeq.16b v20, v20, v1 + WORD $0x6e218eb5 // cmeq.16b v21, v21, v1 + WORD $0x6e218ed6 // cmeq.16b v22, v22, v1 + WORD $0x4e221ef7 // and.16b v23, v23, v2 + WORD $0x4e0302f7 // tbl.16b v23, { v23 }, v3 + WORD $0x4e71baf7 // addv.8h h23, v23 + WORD $0x1e2602ea // fmov w10, s23 + WORD $0x4e221f17 // and.16b v23, v24, v2 + WORD $0x4e0302f7 // tbl.16b v23, { v23 }, v3 + WORD $0x4e71baf7 // addv.8h h23, v23 + WORD $0x1e2602e4 // fmov w4, s23 + WORD $0x4e221f37 // and.16b v23, v25, v2 + WORD $0x4e0302f7 // tbl.16b v23, { v23 }, v3 + WORD $0x4e71baf7 // addv.8h h23, v23 + WORD $0x1e2602e5 // fmov w5, s23 + WORD $0x4e221f57 // and.16b v23, v26, v2 + WORD $0x4e0302f7 // tbl.16b v23, { v23 }, v3 + WORD $0x4e71baf7 // addv.8h h23, v23 + WORD $0x1e2602e6 // fmov w6, s23 + WORD $0x4e221e73 // and.16b v19, v19, v2 + WORD $0x4e030273 // tbl.16b v19, { v19 }, v3 + WORD $0x4e71ba73 // addv.8h h19, v19 + WORD $0x1e260275 // fmov w21, s19 + WORD $0x4e221e93 // and.16b v19, v20, v2 + WORD $0x4e030273 // tbl.16b v19, { v19 }, v3 + WORD $0x4e71ba73 // addv.8h h19, v19 + WORD $0x1e260276 // fmov w22, s19 + WORD $0x4e221eb3 // and.16b v19, v21, v2 + WORD $0x4e030273 // tbl.16b v19, { v19 }, v3 + WORD $0x4e71ba73 // addv.8h h19, v19 + WORD $0x1e260277 // fmov w23, s19 + WORD $0x4e221ed3 // and.16b v19, v22, v2 + WORD $0x4e030273 // tbl.16b v19, { v19 }, v3 + WORD $0x4e71ba73 // addv.8h h19, v19 + WORD $0x1e260278 // fmov w24, s19 + WORD $0xd3607ca5 // lsl x5, x5, #32 + WORD $0xaa06c0a5 // orr x5, x5, x6, lsl #48 + WORD $0x53103c84 // lsl w4, w4, #16 + WORD $0xaa0400a4 // orr x4, x5, x4 + WORD $0xaa0a0094 // orr x20, x4, x10 + WORD $0xd3607eea // lsl x10, x23, #32 + WORD $0xaa18c14a // orr x10, x10, x24, lsl #48 + WORD $0x53103ec4 // lsl w4, w22, #16 + WORD $0xaa04014a // orr x10, x10, x4 + WORD $0xaa150144 // orr x4, x10, x21 + WORD $0xb5000104 // cbnz x4, LBB0_644 $32(%rip) + WORD $0xb5000189 // cbnz x9, LBB0_645 $48(%rip) + WORD $0xb5ffbd74 // cbnz x20, LBB0_526 $-2132(%rip) +LBB0_643: + WORD $0xd10103de // sub lr, lr, #64 + WORD $0x91010273 // add x19, x19, #64 + WORD $0xf100ffdf // cmp lr, #63 + WORD $0x54fff8a8 // b.hi LBB0_640 $-236(%rip) + WORD $0x1400013e // b LBB0_715 $1272(%rip) +LBB0_644: + WORD $0xb100079f // cmn x28, #1 + WORD $0xdac0008a // rbit x10, x4 + WORD $0xdac0114a // clz x10, x10 + WORD $0x8b13014a // add x10, x10, x19 + WORD $0x9a8a139c // csel x28, x28, x10, ne +LBB0_645: + WORD $0x8a29008a // bic x10, x4, x9 + WORD $0xaa0a0525 // orr x5, x9, x10, lsl #1 + WORD $0x8a250089 // bic x9, x4, x5 + WORD $0x9201f129 // and x9, x9, #0xaaaaaaaaaaaaaaaa + WORD $0xab0a012a // adds x10, x9, x10 + WORD $0x1a9f37e9 // cset w9, hs + WORD $0xd37ff94a // lsl x10, x10, #1 + WORD $0xd200f14a // eor x10, x10, #0x5555555555555555 + WORD $0x8a05014a // and x10, x10, x5 + WORD $0x8a2a0294 // bic x20, x20, x10 + WORD $0xb4fffd94 // cbz x20, LBB0_643 $-80(%rip) + WORD $0x17fffdd5 // b LBB0_526 $-2220(%rip) +LBB0_646: + WORD $0xaa1703f5 // mov x21, x23 + WORD $0x92800014 // mov x20, #-1 + WORD $0xb5ffe688 // cbnz x8, LBB0_603 $-816(%rip) + WORD $0x1400024a // b LBB0_783 $2344(%rip) +LBB0_647: + WORD $0x39400509 // ldrb w9, [x8, #1] + WORD $0x5100b929 // sub w9, w9, #46 + WORD $0x7100dd3f // cmp w9, #55 + WORD $0x54ffee08 // b.hi LBB0_622 $-576(%rip) + WORD $0x9ac92229 // lsl x9, x17, x9 + WORD $0x52800034 // mov w20, #1 + WORD $0xea0a013f // tst x9, x10 + WORD $0x54001340 // b.eq LBB0_695 $616(%rip) +LBB0_649: + WORD $0xf10042ff // cmp x23, #16 + WORD $0x540029c3 // b.lo LBB0_724 $1336(%rip) + WORD $0xd2800016 // mov x22, #0 + WORD $0xd2800018 // mov x24, #0 + WORD $0x9280001c // mov x28, #-1 + WORD $0x9280001e // mov lr, #-1 + WORD $0x92800009 // mov x9, #-1 +LBB0_651: + WORD $0x3cf86913 // ldr q19, [x8, x24] + WORD $0x6e248e74 // cmeq.16b v20, v19, v4 + WORD $0x6e258e75 // cmeq.16b v21, v19, v5 + WORD $0x6e268e76 // cmeq.16b v22, v19, v6 + WORD $0x4e278677 // add.16b v23, v19, v7 + WORD $0x6e373617 // cmhi.16b v23, v16, v23 + WORD $0x4e311e73 // and.16b v19, v19, v17 + WORD $0x6e328e73 // cmeq.16b v19, v19, v18 + WORD $0x4eb61eb5 // orr.16b v21, v21, v22 + WORD $0x4eb41ef6 // orr.16b v22, v23, v20 + WORD $0x4eb51e77 // orr.16b v23, v19, v21 + WORD $0x4eb71ed6 // orr.16b v22, v22, v23 + WORD $0x4e221e94 // and.16b v20, v20, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e260284 // fmov w4, s20 + WORD $0x4e221e73 // and.16b v19, v19, v2 + WORD $0x4e030273 // tbl.16b v19, { v19 }, v3 + WORD $0x4e71ba73 // addv.8h h19, v19 + WORD $0x1e260265 // fmov w5, s19 + WORD $0x4e221eb3 // and.16b v19, v21, v2 + WORD $0x4e030273 // tbl.16b v19, { v19 }, v3 + WORD $0x4e71ba73 // addv.8h h19, v19 + WORD $0x1e260275 // fmov w21, s19 + WORD $0x4e221ed3 // and.16b v19, v22, v2 + WORD $0x4e030273 // tbl.16b v19, { v19 }, v3 + WORD $0x4e71ba73 // addv.8h h19, v19 + WORD $0x1e260266 // fmov w6, s19 + WORD $0x2a2603e6 // mvn w6, w6 + WORD $0x32103cc6 // orr w6, w6, #0xffff0000 + WORD $0x5ac000c6 // rbit w6, w6 + WORD $0x5ac010d4 // clz w20, w6 + WORD $0x1ad420e6 // lsl w6, w7, w20 + WORD $0x0a260099 // bic w25, w4, w6 + WORD $0x0a2600ba // bic w26, w5, w6 + WORD $0x0a2602aa // bic w10, w21, w6 + WORD $0x7100429f // cmp w20, #16 + WORD $0x1a990084 // csel w4, w4, w25, eq + WORD $0x1a9a00a6 // csel w6, w5, w26, eq + WORD $0x1a8a02b5 // csel w21, w21, w10, eq + WORD $0x5100048a // sub w10, w4, #1 + WORD $0x6a04015a // ands w26, w10, w4 + WORD $0x54001d41 // b.ne LBB0_714 $936(%rip) + WORD $0x510004ca // sub w10, w6, #1 + WORD $0x6a06015a // ands w26, w10, w6 + WORD $0x54001ce1 // b.ne LBB0_714 $924(%rip) + WORD $0x510006aa // sub w10, w21, #1 + WORD $0x6a15015a // ands w26, w10, w21 + WORD $0x54001c81 // b.ne LBB0_714 $912(%rip) + WORD $0x340000c4 // cbz w4, LBB0_657 $24(%rip) + WORD $0x5ac0008a // rbit w10, w4 + WORD $0x5ac01144 // clz w4, w10 + WORD $0xb100053f // cmn x9, #1 + WORD $0x54001cc1 // b.ne LBB0_716 $920(%rip) + WORD $0x8b040309 // add x9, x24, x4 +LBB0_657: + WORD $0x340000c6 // cbz w6, LBB0_660 $24(%rip) + WORD $0x5ac000ca // rbit w10, w6 + WORD $0x5ac01144 // clz w4, w10 + WORD $0xb10007df // cmn lr, #1 + WORD $0x54001c01 // b.ne LBB0_716 $896(%rip) + WORD $0x8b04031e // add lr, x24, x4 +LBB0_660: + WORD $0x340000d5 // cbz w21, LBB0_663 $24(%rip) + WORD $0x5ac002aa // rbit w10, w21 + WORD $0x5ac01144 // clz w4, w10 + WORD $0xb100079f // cmn x28, #1 + WORD $0x54001b41 // b.ne LBB0_716 $872(%rip) + WORD $0x8b04031c // add x28, x24, x4 +LBB0_663: + WORD $0x7100429f // cmp w20, #16 + WORD $0x540005c1 // b.ne LBB0_681 $184(%rip) + WORD $0x91004318 // add x24, x24, #16 + WORD $0xd10042d6 // sub x22, x22, #16 + WORD $0x8b1602f4 // add x20, x23, x22 + WORD $0xf1003e9f // cmp x20, #15 + WORD $0x54fff6e8 // b.hi LBB0_651 $-292(%rip) + WORD $0x8b180115 // add x21, x8, x24 + WORD $0xeb1802ff // cmp x23, x24 + WORD $0x54000500 // b.eq LBB0_682 $160(%rip) +LBB0_666: + WORD $0x8b1402a4 // add x4, x21, x20 + WORD $0x8b1501ca // add x10, x14, x21 + WORD $0xcb1b0157 // sub x23, x10, x27 + WORD $0xaa1503f6 // mov x22, x21 + WORD $0x14000008 // b LBB0_670 $32(%rip) +LBB0_667: + WORD $0xb100079f // cmn x28, #1 + WORD $0x540017e1 // b.ne LBB0_713 $764(%rip) + WORD $0xd10006fc // sub x28, x23, #1 +LBB0_669: + WORD $0x910006f7 // add x23, x23, #1 + WORD $0xaa1603f5 // mov x21, x22 + WORD $0xd1000694 // sub x20, x20, #1 + WORD $0xb40010d4 // cbz x20, LBB0_706 $536(%rip) +LBB0_670: + WORD $0x384016c6 // ldrb w6, [x22], #1 + WORD $0x5100c0ca // sub w10, w6, #48 + WORD $0x7100295f // cmp w10, #10 + WORD $0x54ffff23 // b.lo LBB0_669 $-28(%rip) + WORD $0x7100b4df // cmp w6, #45 + WORD $0x5400016d // b.le LBB0_677 $44(%rip) + WORD $0x710194df // cmp w6, #101 + WORD $0x540001c0 // b.eq LBB0_679 $56(%rip) + WORD $0x710114df // cmp w6, #69 + WORD $0x54000180 // b.eq LBB0_679 $48(%rip) + WORD $0x7100b8df // cmp w6, #46 + WORD $0x54000201 // b.ne LBB0_682 $64(%rip) + WORD $0xb100053f // cmn x9, #1 + WORD $0x54001581 // b.ne LBB0_713 $688(%rip) + WORD $0xd10006e9 // sub x9, x23, #1 + WORD $0x17ffffed // b LBB0_669 $-76(%rip) +LBB0_677: + WORD $0x7100acdf // cmp w6, #43 + WORD $0x54fffd00 // b.eq LBB0_667 $-96(%rip) + WORD $0x7100b4df // cmp w6, #45 + WORD $0x54fffcc0 // b.eq LBB0_667 $-104(%rip) + WORD $0x14000007 // b LBB0_682 $28(%rip) +LBB0_679: + WORD $0xb10007df // cmn lr, #1 + WORD $0x54001461 // b.ne LBB0_713 $652(%rip) + WORD $0xd10006fe // sub lr, x23, #1 + WORD $0x17ffffe4 // b LBB0_669 $-112(%rip) +LBB0_681: + WORD $0x8b34410a // add x10, x8, w20, uxtw + WORD $0x8b180155 // add x21, x10, x24 +LBB0_682: + WORD $0x92800014 // mov x20, #-1 + WORD $0xb40039a9 // cbz x9, LBB0_788 $1844(%rip) +LBB0_683: + WORD $0xb400399c // cbz x28, LBB0_788 $1840(%rip) + WORD $0xb400397e // cbz lr, LBB0_788 $1836(%rip) + WORD $0xcb0802a8 // sub x8, x21, x8 + WORD $0xd1000504 // sub x4, x8, #1 + WORD $0xeb04013f // cmp x9, x4 + WORD $0x540002a0 // b.eq LBB0_693 $84(%rip) + WORD $0xeb04039f // cmp x28, x4 + WORD $0x54000260 // b.eq LBB0_693 $76(%rip) + WORD $0xeb0403df // cmp lr, x4 + WORD $0x54000220 // b.eq LBB0_693 $68(%rip) + WORD $0xf1000784 // subs x4, x28, #1 + WORD $0x5400006b // b.lt LBB0_690 $12(%rip) + WORD $0xeb0403df // cmp lr, x4 + WORD $0x54003801 // b.ne LBB0_789 $1792(%rip) +LBB0_690: + WORD $0xaa1e0124 // orr x4, x9, lr + WORD $0xb7f80064 // tbnz x4, #63, LBB0_692 $12(%rip) + WORD $0xeb1e013f // cmp x9, lr + WORD $0x54003fea // b.ge LBB0_806 $2044(%rip) +LBB0_692: + WORD $0xd37ffc8a // lsr x10, x4, #63 + WORD $0x5200014a // eor w10, w10, #0x1 + WORD $0xd10007c4 // sub x4, lr, #1 + WORD $0xeb04013f // cmp x9, x4 + WORD $0x1a9f17e9 // cset w9, eq + WORD $0x6a09015f // tst w10, w9 + WORD $0xda9e0114 // csinv x20, x8, lr, eq + WORD $0x14000002 // b LBB0_694 $8(%rip) +LBB0_693: + WORD $0xcb0803f4 // neg x20, x8 +LBB0_694: + WORD $0xb7f83634 // tbnz x20, #63, LBB0_788 $1732(%rip) +LBB0_695: + WORD $0x8b130293 // add x19, x20, x19 + WORD $0xf9000033 // str x19, [x1] + WORD $0xaa1b03e8 // mov x8, x27 + WORD $0x92f00017 // mov x23, #9223372036854775807 + WORD $0xeb17037f // cmp x27, x23 + WORD $0x5280006a // mov w10, #3 + WORD $0x52800086 // mov w6, #4 + WORD $0xb20903f8 // mov x24, #36028797027352576 + WORD $0xf2800038 // movk x24, #1 + WORD $0x528000b9 // mov w25, #5 + WORD $0x528d8c3a // mov w26, #27745 + WORD $0x72acae7a // movk w26, #25971, lsl #16 + WORD $0x528eadde // mov w30, #30062 + WORD $0x72ad8d9e // movk w30, #27756, lsl #16 + WORD $0x54ffdd23 // b.lo LBB0_634 $-1116(%rip) + WORD $0x14000188 // b LBB0_778 $1568(%rip) +LBB0_696: + WORD $0x8b130173 // add x19, x11, x19 + WORD $0x1400000c // b LBB0_700 $48(%rip) +LBB0_697: + WORD $0x5ac00088 // rbit w8, w4 + WORD $0x5ac01108 // clz w8, w8 + WORD $0xaa3e03e9 // mvn x9, lr + WORD $0xcb080134 // sub x20, x9, x8 + WORD $0x17fffea0 // b LBB0_614 $-1408(%rip) +LBB0_698: + WORD $0xaa3e03e8 // mvn x8, lr + WORD $0xcb244114 // sub x20, x8, w4, uxtw + WORD $0x17fffe9d // b LBB0_614 $-1420(%rip) +LBB0_699: + WORD $0xd2800009 // mov x9, #0 + WORD $0x8b130173 // add x19, x11, x19 + WORD $0x9280001c // mov x28, #-1 +LBB0_700: + WORD $0xf10083d4 // subs x20, lr, #32 + WORD $0x540017c3 // b.lo LBB0_728 $760(%rip) + WORD $0xad405273 // ldp q19, q20, [x19] + WORD $0x6e208e75 // cmeq.16b v21, v19, v0 + WORD $0x6e208e96 // cmeq.16b v22, v20, v0 + WORD $0x6e218e73 // cmeq.16b v19, v19, v1 + WORD $0x6e218e94 // cmeq.16b v20, v20, v1 + WORD $0x4e221eb5 // and.16b v21, v21, v2 + WORD $0x4e0302b5 // tbl.16b v21, { v21 }, v3 + WORD $0x4e71bab5 // addv.8h h21, v21 + WORD $0x1e2602b5 // fmov w21, s21 + WORD $0x4e221ed5 // and.16b v21, v22, v2 + WORD $0x4e0302b5 // tbl.16b v21, { v21 }, v3 + WORD $0x4e71bab5 // addv.8h h21, v21 + WORD $0x1e2602a4 // fmov w4, s21 + WORD $0x4e221e73 // and.16b v19, v19, v2 + WORD $0x4e030273 // tbl.16b v19, { v19 }, v3 + WORD $0x4e71ba73 // addv.8h h19, v19 + WORD $0x1e260276 // fmov w22, s19 + WORD $0x4e221e93 // and.16b v19, v20, v2 + WORD $0x4e030273 // tbl.16b v19, { v19 }, v3 + WORD $0x4e71ba73 // addv.8h h19, v19 + WORD $0x1e260266 // fmov w6, s19 + WORD $0x33103c95 // bfi w21, w4, #16, #16 + WORD $0x33103cd6 // bfi w22, w6, #16, #16 + WORD $0x350010d6 // cbnz w22, LBB0_725 $536(%rip) + WORD $0x5280006a // mov w10, #3 + WORD $0x52800086 // mov w6, #4 + WORD $0x92f00017 // mov x23, #9223372036854775807 + WORD $0xb20903f8 // mov x24, #36028797027352576 + WORD $0xf2800038 // movk x24, #1 + WORD $0x528000b9 // mov w25, #5 + WORD $0x528d8c3a // mov w26, #27745 + WORD $0x72acae7a // movk w26, #25971, lsl #16 + WORD $0x528eadde // mov w30, #30062 + WORD $0x72ad8d9e // movk w30, #27756, lsl #16 + WORD $0xb5001029 // cbnz x9, LBB0_726 $516(%rip) + WORD $0xb4001315 // cbz x21, LBB0_727 $608(%rip) +LBB0_704: + WORD $0xdac002a9 // rbit x9, x21 + WORD $0xdac01129 // clz x9, x9 + WORD $0xcb0b0264 // sub x4, x19, x11 + WORD $0x8b090089 // add x9, x4, x9 + WORD $0x91000533 // add x19, x9, #1 + WORD $0xb6ffd573 // tbz x19, #63, LBB0_633 $-1364(%rip) + WORD $0x14000159 // b LBB0_780 $1380(%rip) +LBB0_705: + WORD $0x8b130173 // add x19, x11, x19 + WORD $0x14000008 // b LBB0_708 $32(%rip) +LBB0_706: + WORD $0xaa0403f5 // mov x21, x4 + WORD $0x92800014 // mov x20, #-1 + WORD $0xb5fff2c9 // cbnz x9, LBB0_683 $-424(%rip) + WORD $0x14000161 // b LBB0_788 $1412(%rip) +LBB0_707: + WORD $0xd2800009 // mov x9, #0 + WORD $0x8b130173 // add x19, x11, x19 + WORD $0x9280001c // mov x28, #-1 +LBB0_708: + WORD $0xf10083d4 // subs x20, lr, #32 + WORD $0x54001703 // b.lo LBB0_739 $736(%rip) + WORD $0xad405273 // ldp q19, q20, [x19] + WORD $0x6e208e75 // cmeq.16b v21, v19, v0 + WORD $0x6e208e96 // cmeq.16b v22, v20, v0 + WORD $0x6e218e73 // cmeq.16b v19, v19, v1 + WORD $0x6e218e94 // cmeq.16b v20, v20, v1 + WORD $0x4e221eb5 // and.16b v21, v21, v2 + WORD $0x4e0302b5 // tbl.16b v21, { v21 }, v3 + WORD $0x4e71bab5 // addv.8h h21, v21 + WORD $0x1e2602b5 // fmov w21, s21 + WORD $0x4e221ed5 // and.16b v21, v22, v2 + WORD $0x4e0302b5 // tbl.16b v21, { v21 }, v3 + WORD $0x4e71bab5 // addv.8h h21, v21 + WORD $0x1e2602a4 // fmov w4, s21 + WORD $0x4e221e73 // and.16b v19, v19, v2 + WORD $0x4e030273 // tbl.16b v19, { v19 }, v3 + WORD $0x4e71ba73 // addv.8h h19, v19 + WORD $0x1e260276 // fmov w22, s19 + WORD $0x4e221e93 // and.16b v19, v20, v2 + WORD $0x4e030273 // tbl.16b v19, { v19 }, v3 + WORD $0x4e71ba73 // addv.8h h19, v19 + WORD $0x1e260266 // fmov w6, s19 + WORD $0x33103c95 // bfi w21, w4, #16, #16 + WORD $0x33103cd6 // bfi w22, w6, #16, #16 + WORD $0x35001116 // cbnz w22, LBB0_736 $544(%rip) + WORD $0x92f00017 // mov x23, #9223372036854775807 + WORD $0xb20903f8 // mov x24, #36028797027352576 + WORD $0xf2800038 // movk x24, #1 + WORD $0xb5001149 // cbnz x9, LBB0_737 $552(%rip) + WORD $0xb4001335 // cbz x21, LBB0_738 $612(%rip) +LBB0_712: + WORD $0xdac002a9 // rbit x9, x21 + WORD $0xdac01129 // clz x9, x9 + WORD $0xcb0b0264 // sub x4, x19, x11 + WORD $0x8b090089 // add x9, x4, x9 + WORD $0x91000533 // add x19, x9, #1 + WORD $0x5280006a // mov w10, #3 + WORD $0x52800086 // mov w6, #4 + WORD $0x528000b9 // mov w25, #5 + WORD $0x528d8c3a // mov w26, #27745 + WORD $0x72acae7a // movk w26, #25971, lsl #16 + WORD $0x528eadde // mov w30, #30062 + WORD $0x72ad8d9e // movk w30, #27756, lsl #16 + WORD $0xb6ffa5f3 // tbz x19, #63, LBB0_543 $-2884(%rip) + WORD $0x14000123 // b LBB0_780 $1164(%rip) +LBB0_713: + WORD $0xcb1703f4 // neg x20, x23 + WORD $0x17ffff7e // b LBB0_694 $-520(%rip) +LBB0_714: + WORD $0x5ac00348 // rbit w8, w26 + WORD $0x5ac01108 // clz w8, w8 + WORD $0xaa3803e9 // mvn x9, x24 + WORD $0xcb080134 // sub x20, x9, x8 + WORD $0x17ffff79 // b LBB0_694 $-540(%rip) +LBB0_715: + WORD $0x8b130173 // add x19, x11, x19 + WORD $0x14000007 // b LBB0_718 $28(%rip) +LBB0_716: + WORD $0xaa3803e8 // mvn x8, x24 + WORD $0xcb244114 // sub x20, x8, w4, uxtw + WORD $0x17ffff74 // b LBB0_694 $-560(%rip) +LBB0_717: + WORD $0xd2800009 // mov x9, #0 + WORD $0x8b130173 // add x19, x11, x19 + WORD $0x9280001c // mov x28, #-1 +LBB0_718: + WORD $0xf10083d4 // subs x20, lr, #32 + WORD $0x54001a23 // b.lo LBB0_757 $836(%rip) + WORD $0xad405273 // ldp q19, q20, [x19] + WORD $0x6e208e75 // cmeq.16b v21, v19, v0 + WORD $0x6e208e96 // cmeq.16b v22, v20, v0 + WORD $0x6e218e73 // cmeq.16b v19, v19, v1 + WORD $0x6e218e94 // cmeq.16b v20, v20, v1 + WORD $0x4e221eb5 // and.16b v21, v21, v2 + WORD $0x4e0302b5 // tbl.16b v21, { v21 }, v3 + WORD $0x4e71bab5 // addv.8h h21, v21 + WORD $0x1e2602b5 // fmov w21, s21 + WORD $0x4e221ed5 // and.16b v21, v22, v2 + WORD $0x4e0302b5 // tbl.16b v21, { v21 }, v3 + WORD $0x4e71bab5 // addv.8h h21, v21 + WORD $0x1e2602aa // fmov w10, s21 + WORD $0x4e221e73 // and.16b v19, v19, v2 + WORD $0x4e030273 // tbl.16b v19, { v19 }, v3 + WORD $0x4e71ba73 // addv.8h h19, v19 + WORD $0x1e260276 // fmov w22, s19 + WORD $0x4e221e93 // and.16b v19, v20, v2 + WORD $0x4e030273 // tbl.16b v19, { v19 }, v3 + WORD $0x4e71ba73 // addv.8h h19, v19 + WORD $0x1e260264 // fmov w4, s19 + WORD $0x33103d55 // bfi w21, w10, #16, #16 + WORD $0x33103c96 // bfi w22, w4, #16, #16 + WORD $0x35001496 // cbnz w22, LBB0_754 $656(%rip) + WORD $0xb5001529 // cbnz x9, LBB0_755 $676(%rip) + WORD $0xb40016b5 // cbz x21, LBB0_756 $724(%rip) +LBB0_722: + WORD $0xdac002a9 // rbit x9, x21 + WORD $0xdac01129 // clz x9, x9 + WORD $0xcb0b026a // sub x10, x19, x11 + WORD $0x8b090149 // add x9, x10, x9 + WORD $0x17fffc83 // b LBB0_527 $-3572(%rip) +LBB0_723: + WORD $0x92800008 // mov x8, #-1 + WORD $0xaa1c03f5 // mov x21, x28 + WORD $0xaa1403f6 // mov x22, x20 + WORD $0x92800009 // mov x9, #-1 + WORD $0x92800013 // mov x19, #-1 + WORD $0x17fffd7d // b LBB0_574 $-2572(%rip) +LBB0_724: + WORD $0x92800009 // mov x9, #-1 + WORD $0xaa0803f5 // mov x21, x8 + WORD $0xaa1703f4 // mov x20, x23 + WORD $0x9280001e // mov lr, #-1 + WORD $0x9280001c // mov x28, #-1 + WORD $0x17ffff00 // b LBB0_666 $-1024(%rip) +LBB0_725: + WORD $0xdac002c4 // rbit x4, x22 + WORD $0xdac01084 // clz x4, x4 + WORD $0xcb0b0266 // sub x6, x19, x11 + WORD $0x8b0400c4 // add x4, x6, x4 + WORD $0xb100079f // cmn x28, #1 + WORD $0x9a84139c // csel x28, x28, x4, ne +LBB0_726: + WORD $0x0a2902c4 // bic w4, w22, w9 + WORD $0x531f7886 // lsl w6, w4, #1 + WORD $0x331f7889 // bfi w9, w4, #1, #31 + WORD $0x0a2602c6 // bic w6, w22, w6 + WORD $0x1201f0c6 // and w6, w6, #0xaaaaaaaa + WORD $0x2b0400c4 // adds w4, w6, w4 + WORD $0x3200f3ea // mov w10, #1431655765 + WORD $0x4a040544 // eor w4, w10, w4, lsl #1 + WORD $0x0a090089 // and w9, w4, w9 + WORD $0x1a9f37e4 // cset w4, hs + WORD $0x2a2903e9 // mvn w9, w9 + WORD $0x8a150135 // and x21, x9, x21 + WORD $0xaa0403e9 // mov x9, x4 + WORD $0x5280006a // mov w10, #3 + WORD $0x52800086 // mov w6, #4 + WORD $0x92f00017 // mov x23, #9223372036854775807 + WORD $0xb20903f8 // mov x24, #36028797027352576 + WORD $0xf2800038 // movk x24, #1 + WORD $0x528000b9 // mov w25, #5 + WORD $0x528d8c3a // mov w26, #27745 + WORD $0x72acae7a // movk w26, #25971, lsl #16 + WORD $0x528eadde // mov w30, #30062 + WORD $0x72ad8d9e // movk w30, #27756, lsl #16 + WORD $0xb5ffed55 // cbnz x21, LBB0_704 $-600(%rip) +LBB0_727: + WORD $0x91008273 // add x19, x19, #32 + WORD $0xaa1403fe // mov lr, x20 +LBB0_728: + WORD $0xb5000c09 // cbnz x9, LBB0_750 $384(%rip) + WORD $0xb400137e // cbz lr, LBB0_765 $620(%rip) +LBB0_730: + WORD $0xaa1303e4 // mov x4, x19 + WORD $0x38401489 // ldrb w9, [x4], #1 + WORD $0x7100893f // cmp w9, #34 + WORD $0x540012c0 // b.eq LBB0_764 $600(%rip) + WORD $0xd10007c6 // sub x6, lr, #1 + WORD $0x7101713f // cmp w9, #92 + WORD $0x540000a0 // b.eq LBB0_733 $20(%rip) + WORD $0xaa0403f3 // mov x19, x4 + WORD $0xaa0603fe // mov lr, x6 + WORD $0xb5fffee6 // cbnz x6, LBB0_730 $-36(%rip) + WORD $0x14000009 // b LBB0_735 $36(%rip) +LBB0_733: + WORD $0xb40021e6 // cbz x6, LBB0_808 $1084(%rip) + WORD $0x8b0d0084 // add x4, x4, x13 + WORD $0xb100079f // cmn x28, #1 + WORD $0x9a9c009c // csel x28, x4, x28, eq + WORD $0x91000a73 // add x19, x19, #2 + WORD $0xd1000bc6 // sub x6, lr, #2 + WORD $0xaa0603fe // mov lr, x6 + WORD $0xb5fffdc6 // cbnz x6, LBB0_730 $-72(%rip) +LBB0_735: + WORD $0x7100893f // cmp w9, #34 + WORD $0x540010c0 // b.eq LBB0_765 $536(%rip) + WORD $0x14000105 // b LBB0_808 $1044(%rip) +LBB0_736: + WORD $0xdac002c4 // rbit x4, x22 + WORD $0xdac01084 // clz x4, x4 + WORD $0xcb0b0266 // sub x6, x19, x11 + WORD $0x8b0400c4 // add x4, x6, x4 + WORD $0xb100079f // cmn x28, #1 + WORD $0x9a84139c // csel x28, x28, x4, ne +LBB0_737: + WORD $0x0a2902c4 // bic w4, w22, w9 + WORD $0x531f7886 // lsl w6, w4, #1 + WORD $0x331f7889 // bfi w9, w4, #1, #31 + WORD $0x0a2602c6 // bic w6, w22, w6 + WORD $0x1201f0c6 // and w6, w6, #0xaaaaaaaa + WORD $0x2b0400c4 // adds w4, w6, w4 + WORD $0x4a040544 // eor w4, w10, w4, lsl #1 + WORD $0x0a090089 // and w9, w4, w9 + WORD $0x1a9f37e4 // cset w4, hs + WORD $0x2a2903e9 // mvn w9, w9 + WORD $0x8a150135 // and x21, x9, x21 + WORD $0xaa0403e9 // mov x9, x4 + WORD $0x92f00017 // mov x23, #9223372036854775807 + WORD $0xb20903f8 // mov x24, #36028797027352576 + WORD $0xf2800038 // movk x24, #1 + WORD $0xb5ffed35 // cbnz x21, LBB0_712 $-604(%rip) +LBB0_738: + WORD $0x91008273 // add x19, x19, #32 + WORD $0xaa1403fe // mov lr, x20 +LBB0_739: + WORD $0xb5000709 // cbnz x9, LBB0_752 $224(%rip) + WORD $0xb400045e // cbz lr, LBB0_748 $136(%rip) +LBB0_741: + WORD $0xaa1303e4 // mov x4, x19 + WORD $0x38401489 // ldrb w9, [x4], #1 + WORD $0x7100893f // cmp w9, #34 + WORD $0x540003a0 // b.eq LBB0_747 $116(%rip) + WORD $0xd10007c6 // sub x6, lr, #1 + WORD $0x7101713f // cmp w9, #92 + WORD $0x540000a0 // b.eq LBB0_744 $20(%rip) + WORD $0xaa0403f3 // mov x19, x4 + WORD $0xaa0603fe // mov lr, x6 + WORD $0xb5fffee6 // cbnz x6, LBB0_741 $-36(%rip) + WORD $0x14000009 // b LBB0_746 $36(%rip) +LBB0_744: + WORD $0xb4001be6 // cbz x6, LBB0_808 $892(%rip) + WORD $0x8b0d0084 // add x4, x4, x13 + WORD $0xb100079f // cmn x28, #1 + WORD $0x9a9c009c // csel x28, x4, x28, eq + WORD $0x91000a73 // add x19, x19, #2 + WORD $0xd1000bc6 // sub x6, lr, #2 + WORD $0xaa0603fe // mov lr, x6 + WORD $0xb5fffdc6 // cbnz x6, LBB0_741 $-72(%rip) +LBB0_746: + WORD $0x7100893f // cmp w9, #34 + WORD $0x5280006a // mov w10, #3 + WORD $0x52800086 // mov w6, #4 + WORD $0x92f00017 // mov x23, #9223372036854775807 + WORD $0xb20903f8 // mov x24, #36028797027352576 + WORD $0xf2800038 // movk x24, #1 + WORD $0x528000b9 // mov w25, #5 + WORD $0x528d8c3a // mov w26, #27745 + WORD $0x72acae7a // movk w26, #25971, lsl #16 + WORD $0x528eadde // mov w30, #30062 + WORD $0x72ad8d9e // movk w30, #27756, lsl #16 + WORD $0x540001a0 // b.eq LBB0_749 $52(%rip) + WORD $0x140000cb // b LBB0_808 $812(%rip) +LBB0_747: + WORD $0xaa0403f3 // mov x19, x4 +LBB0_748: + WORD $0x5280006a // mov w10, #3 + WORD $0x52800086 // mov w6, #4 + WORD $0x92f00017 // mov x23, #9223372036854775807 + WORD $0xb20903f8 // mov x24, #36028797027352576 + WORD $0xf2800038 // movk x24, #1 + WORD $0x528000b9 // mov w25, #5 + WORD $0x528d8c3a // mov w26, #27745 + WORD $0x72acae7a // movk w26, #25971, lsl #16 + WORD $0x528eadde // mov w30, #30062 + WORD $0x72ad8d9e // movk w30, #27756, lsl #16 +LBB0_749: + WORD $0xcb0b0273 // sub x19, x19, x11 + WORD $0xb6ff8e73 // tbz x19, #63, LBB0_543 $-3636(%rip) + WORD $0x14000067 // b LBB0_780 $412(%rip) +LBB0_750: + WORD $0xb400179e // cbz lr, LBB0_808 $752(%rip) + WORD $0x8b0d0269 // add x9, x19, x13 + WORD $0xb100079f // cmn x28, #1 + WORD $0x9a9c013c // csel x28, x9, x28, eq + WORD $0x91000673 // add x19, x19, #1 + WORD $0xd10007de // sub lr, lr, #1 + WORD $0xb5fff39e // cbnz lr, LBB0_730 $-400(%rip) + WORD $0x14000035 // b LBB0_765 $212(%rip) +LBB0_752: + WORD $0xb400169e // cbz lr, LBB0_808 $720(%rip) + WORD $0x8b0d0269 // add x9, x19, x13 + WORD $0xb100079f // cmn x28, #1 + WORD $0x9a9c013c // csel x28, x9, x28, eq + WORD $0x91000673 // add x19, x19, #1 + WORD $0xd10007de // sub lr, lr, #1 + WORD $0xb5fff89e // cbnz lr, LBB0_741 $-240(%rip) + WORD $0x17ffffe4 // b LBB0_748 $-112(%rip) +LBB0_754: + WORD $0xdac002ca // rbit x10, x22 + WORD $0xdac0114a // clz x10, x10 + WORD $0xcb0b0264 // sub x4, x19, x11 + WORD $0x8b0a008a // add x10, x4, x10 + WORD $0xb100079f // cmn x28, #1 + WORD $0x9a8a139c // csel x28, x28, x10, ne +LBB0_755: + WORD $0x0a2902ca // bic w10, w22, w9 + WORD $0x531f7944 // lsl w4, w10, #1 + WORD $0x331f7949 // bfi w9, w10, #1, #31 + WORD $0x0a2402c4 // bic w4, w22, w4 + WORD $0x1201f084 // and w4, w4, #0xaaaaaaaa + WORD $0x2b0a008a // adds w10, w4, w10 + WORD $0x4a0a072a // eor w10, w25, w10, lsl #1 + WORD $0x0a090149 // and w9, w10, w9 + WORD $0x1a9f37ea // cset w10, hs + WORD $0x2a2903e9 // mvn w9, w9 + WORD $0x8a150135 // and x21, x9, x21 + WORD $0xaa0a03e9 // mov x9, x10 + WORD $0xb5ffe9b5 // cbnz x21, LBB0_722 $-716(%rip) +LBB0_756: + WORD $0x91008273 // add x19, x19, #32 + WORD $0xaa1403fe // mov lr, x20 +LBB0_757: + WORD $0xb5000329 // cbnz x9, LBB0_766 $100(%rip) + WORD $0xb40002de // cbz lr, LBB0_765 $88(%rip) +LBB0_759: + WORD $0xaa1303e4 // mov x4, x19 + WORD $0x38401489 // ldrb w9, [x4], #1 + WORD $0x7100893f // cmp w9, #34 + WORD $0x54000220 // b.eq LBB0_764 $68(%rip) + WORD $0xd10007c6 // sub x6, lr, #1 + WORD $0x7101713f // cmp w9, #92 + WORD $0x540000a0 // b.eq LBB0_762 $20(%rip) + WORD $0xaa0403f3 // mov x19, x4 + WORD $0xaa0603fe // mov lr, x6 + WORD $0xb5fffee6 // cbnz x6, LBB0_759 $-36(%rip) + WORD $0x17ffff84 // b LBB0_735 $-496(%rip) +LBB0_762: + WORD $0xb4001146 // cbz x6, LBB0_808 $552(%rip) + WORD $0x8b0d008a // add x10, x4, x13 + WORD $0xb100079f // cmn x28, #1 + WORD $0x9a9c015c // csel x28, x10, x28, eq + WORD $0x91000a73 // add x19, x19, #2 + WORD $0xd1000bc6 // sub x6, lr, #2 + WORD $0xaa0603fe // mov lr, x6 + WORD $0xb5fffdc6 // cbnz x6, LBB0_759 $-72(%rip) + WORD $0x17ffff7b // b LBB0_735 $-532(%rip) +LBB0_764: + WORD $0xaa0403f3 // mov x19, x4 +LBB0_765: + WORD $0xcb0b0273 // sub x19, x19, x11 + WORD $0x17fffbba // b LBB0_528 $-4376(%rip) +LBB0_766: + WORD $0xb4000fde // cbz lr, LBB0_808 $504(%rip) + WORD $0x8b0d0269 // add x9, x19, x13 + WORD $0xb100079f // cmn x28, #1 + WORD $0x9a9c013c // csel x28, x9, x28, eq + WORD $0x91000673 // add x19, x19, #1 + WORD $0xd10007de // sub lr, lr, #1 + WORD $0xb5fffc7e // cbnz lr, LBB0_759 $-116(%rip) + WORD $0x17fffff7 // b LBB0_765 $-36(%rip) +LBB0_768: + WORD $0xf9400028 // ldr x8, [x1] + WORD $0xd1000508 // sub x8, x8, #1 + WORD $0xf9000028 // str x8, [x1] + WORD $0x92800428 // mov x8, #-34 + WORD $0x14000011 // b LBB0_778 $68(%rip) +LBB0_769: + WORD $0xf9000028 // str x8, [x1] + WORD $0x1400000b // b LBB0_775 $44(%rip) +LBB0_770: + WORD $0xf900003b // str x27, [x1] +LBB0_771: + WORD $0x92800008 // mov x8, #-1 + WORD $0x1400000c // b LBB0_778 $48(%rip) +LBB0_772: + WORD $0x7101761f // cmp w16, #93 + WORD $0x540000c1 // b.ne LBB0_775 $24(%rip) +LBB0_773: + WORD $0xf9000028 // str x8, [x1] + WORD $0x92800408 // mov x8, #-33 + WORD $0x14000007 // b LBB0_778 $28(%rip) +LBB0_774: + WORD $0x7101f61f // cmp w16, #125 + WORD $0x54ffff80 // b.eq LBB0_773 $-16(%rip) +LBB0_775: + WORD $0xf9400028 // ldr x8, [x1] + WORD $0xd1000508 // sub x8, x8, #1 +LBB0_776: + WORD $0xf9000028 // str x8, [x1] +LBB0_777: + WORD $0x92800028 // mov x8, #-2 +LBB0_778: + WORD $0xaa0803e0 // mov x0, x8 + WORD $0xa94bfbfd // ldp fp, lr, [sp, #184] + WORD $0xa94acff4 // ldp x20, x19, [sp, #168] + WORD $0xa949d7f6 // ldp x22, x21, [sp, #152] + WORD $0xa948dff8 // ldp x24, x23, [sp, #136] + WORD $0xa947e7fa // ldp x26, x25, [sp, #120] + WORD $0xa946effc // ldp x28, x27, [sp, #104] + WORD $0x910343ff // add sp, sp, #208 + WORD $0xd65f03c0 // ret +LBB0_779: + WORD $0x928000c8 // mov x8, #-7 + WORD $0x17fffff6 // b LBB0_778 $-40(%rip) +LBB0_780: + WORD $0xb100067f // cmn x19, #1 + WORD $0x9a9c0108 // csel x8, x8, x28, eq +LBB0_781: + WORD $0xf9000028 // str x8, [x1] + WORD $0xaa1303e8 // mov x8, x19 + WORD $0x17fffff1 // b LBB0_778 $-60(%rip) +LBB0_782: + WORD $0x92800014 // mov x20, #-1 +LBB0_783: + WORD $0xaa3403f3 // mvn x19, x20 +LBB0_784: + WORD $0x8b1b0268 // add x8, x19, x27 + WORD $0x17ffffeb // b LBB0_776 $-84(%rip) +LBB0_785: + WORD $0xf9000028 // str x8, [x1] + WORD $0x17ffffde // b LBB0_771 $-136(%rip) +LBB0_786: + WORD $0xaa0803f3 // mov x19, x8 + WORD $0x17fffffb // b LBB0_784 $-20(%rip) +LBB0_787: + WORD $0x92800014 // mov x20, #-1 +LBB0_788: + WORD $0xaa3403fc // mvn x28, x20 +LBB0_789: + WORD $0x8b1c0268 // add x8, x19, x28 + WORD $0x17ffffe3 // b LBB0_776 $-116(%rip) +LBB0_790: + WORD $0xf9000033 // str x19, [x1] + WORD $0x38736968 // ldrb w8, [x11, x19] + WORD $0x7101851f // cmp w8, #97 + WORD $0x54fffc01 // b.ne LBB0_777 $-128(%rip) + WORD $0x91000b68 // add x8, x27, #2 + WORD $0xf9000028 // str x8, [x1] + WORD $0x38686968 // ldrb w8, [x11, x8] + WORD $0x7101b11f // cmp w8, #108 + WORD $0x54fffb61 // b.ne LBB0_777 $-148(%rip) + WORD $0x91000f68 // add x8, x27, #3 + WORD $0xf9000028 // str x8, [x1] + WORD $0x38686968 // ldrb w8, [x11, x8] + WORD $0x7101cd1f // cmp w8, #115 + WORD $0x54fffac1 // b.ne LBB0_777 $-168(%rip) + WORD $0x91001368 // add x8, x27, #4 + WORD $0xf9000028 // str x8, [x1] + WORD $0x38686968 // ldrb w8, [x11, x8] + WORD $0x7101951f // cmp w8, #101 + WORD $0x54fffa21 // b.ne LBB0_777 $-188(%rip) + WORD $0x91001768 // add x8, x27, #5 + WORD $0x17ffffce // b LBB0_776 $-200(%rip) +LBB0_795: + WORD $0xf900003b // str x27, [x1] + WORD $0x39400388 // ldrb w8, [x28] + WORD $0x7101b91f // cmp w8, #110 + WORD $0x54fff961 // b.ne LBB0_777 $-212(%rip) + WORD $0x91000768 // add x8, x27, #1 + WORD $0xf9000028 // str x8, [x1] + WORD $0x38686968 // ldrb w8, [x11, x8] + WORD $0x7101d51f // cmp w8, #117 + WORD $0x54fff8c1 // b.ne LBB0_777 $-232(%rip) + WORD $0x91000b68 // add x8, x27, #2 + WORD $0xf9000028 // str x8, [x1] + WORD $0x38686968 // ldrb w8, [x11, x8] + WORD $0x7101b11f // cmp w8, #108 + WORD $0x54fff821 // b.ne LBB0_777 $-252(%rip) + WORD $0x91000f68 // add x8, x27, #3 + WORD $0xf9000028 // str x8, [x1] + WORD $0x38686968 // ldrb w8, [x11, x8] + WORD $0x7101b11f // cmp w8, #108 + WORD $0x54fff781 // b.ne LBB0_777 $-272(%rip) + WORD $0x14000014 // b LBB0_803 $80(%rip) +LBB0_799: + WORD $0xf900003b // str x27, [x1] + WORD $0x39400388 // ldrb w8, [x28] + WORD $0x7101d11f // cmp w8, #116 + WORD $0x54fff6e1 // b.ne LBB0_777 $-292(%rip) + WORD $0x91000768 // add x8, x27, #1 + WORD $0xf9000028 // str x8, [x1] + WORD $0x38686968 // ldrb w8, [x11, x8] + WORD $0x7101c91f // cmp w8, #114 + WORD $0x54fff641 // b.ne LBB0_777 $-312(%rip) + WORD $0x91000b68 // add x8, x27, #2 + WORD $0xf9000028 // str x8, [x1] + WORD $0x38686968 // ldrb w8, [x11, x8] + WORD $0x7101d51f // cmp w8, #117 + WORD $0x54fff5a1 // b.ne LBB0_777 $-332(%rip) + WORD $0x91000f68 // add x8, x27, #3 + WORD $0xf9000028 // str x8, [x1] + WORD $0x38686968 // ldrb w8, [x11, x8] + WORD $0x7101951f // cmp w8, #101 + WORD $0x54fff501 // b.ne LBB0_777 $-352(%rip) +LBB0_803: + WORD $0x91001368 // add x8, x27, #4 + WORD $0x17ffffa5 // b LBB0_776 $-364(%rip) +LBB0_804: + WORD $0xaa1b03e5 // mov x5, x27 +LBB0_805: + WORD $0xf9000025 // str x5, [x1] + WORD $0x17ffff97 // b LBB0_771 $-420(%rip) +LBB0_806: + WORD $0xaa0903fc // mov x28, x9 + WORD $0x8b090268 // add x8, x19, x9 + WORD $0x17ffff9f // b LBB0_776 $-388(%rip) +LBB0_807: + WORD $0xaa1303e8 // mov x8, x19 +LBB0_808: + WORD $0x92800013 // mov x19, #-1 + WORD $0x17ffffab // b LBB0_781 $-340(%rip) +LBB0_809: + WORD $0x91000a73 // add x19, x19, #2 +LBB0_810: + WORD $0x92800028 // mov x8, #-2 + WORD $0x14000006 // b LBB0_814 $24(%rip) +LBB0_811: + WORD $0x91000673 // add x19, x19, #1 + WORD $0x92800048 // mov x8, #-3 + WORD $0x14000003 // b LBB0_814 $12(%rip) +LBB0_812: + WORD $0x91000673 // add x19, x19, #1 +LBB0_813: + WORD $0x92800008 // mov x8, #-1 +LBB0_814: + WORD $0xcb160269 // sub x9, x19, x22 + WORD $0xf9000029 // str x9, [x1] + WORD $0x17ffff93 // b LBB0_778 $-436(%rip) +LBB0_815: + WORD $0x91002273 // add x19, x19, #8 + WORD $0x17fffff5 // b LBB0_810 $-44(%rip) +LBB0_816: + WORD $0x92800068 // mov x8, #-4 + WORD $0xaa1b03f3 // mov x19, x27 + WORD $0x17fffff9 // b LBB0_814 $-28(%rip) +LBB0_817: + WORD $0x91002273 // add x19, x19, #8 + WORD $0x92800068 // mov x8, #-4 + WORD $0x17fffff6 // b LBB0_814 $-40(%rip) +LBB0_818: + WORD $0xaa1b03f3 // mov x19, x27 + WORD $0x17fffff4 // b LBB0_814 $-48(%rip) + // .p2align 2, 0x00 +_MASK_USE_NUMBER: + WORD $0x00000002 // .long 2 +__UnquoteTab: + WORD $0x00000000 // .ascii 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .ascii 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .ascii 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .ascii 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .ascii 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .ascii 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"\x00' + WORD $0x00000000 // .ascii 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"\x00\x00\x00\x00\x00' + WORD $0x00000000 // .ascii 4, '\x00\x00\x00\x00\x00\x00"\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00220000 // .ascii 4, '\x00\x00"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00/' + WORD $0x00000000 // .ascii 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00/\x00\x00\x00\x00' + WORD $0x00000000 // .ascii 4, '\x00\x00\x00\x00\x00\x00\x00/\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x2f000000 // .ascii 4, '\x00\x00\x00/\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .ascii 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .ascii 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .ascii 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .ascii 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .ascii 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .ascii 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .ascii 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .ascii 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .ascii 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\\\x00\x00\x00' + WORD $0x00000000 // .ascii 4, '\x00\x00\x00\x00\x00\x00\x00\x00\\\x00\x00\x00\x00\x00\x08\x00' + WORD $0x00000000 // .ascii 4, '\x00\x00\x00\x00\\\x00\x00\x00\x00\x00\x08\x00\x00\x00\x0c\x00' + WORD $0x0000005c // .ascii 4, '\\\x00\x00\x00\x00\x00\x08\x00\x00\x00\x0c\x00\x00\x00\x00\x00' + WORD $0x00080000 // .ascii 4, '\x00\x00\x08\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\n\x00' + WORD $0x000c0000 // .ascii 4, '\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\n\x00\x00\x00\r\x00' + WORD $0x00000000 // .ascii 4, '\x00\x00\x00\x00\x00\x00\n\x00\x00\x00\r\x00\t\xff\x00\x00' + WORD $0x000a0000 // .ascii 4, '\x00\x00\n\x00\x00\x00\r\x00\t\xff\x00\x00' + WORD $0x000d0000 // .ascii 4, '\x00\x00\r\x00\t\xff\x00\x00' + WORD $0x0000ff09 // .ascii 4, '\t\xff\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + +TEXT ·__get_by_path(SB), NOSPLIT, $0-40 + NO_LOCAL_POINTERS + +_entry: + MOVD 16(g), R16 + SUB $272, RSP, R17 + CMP R16, R17 + BLS _stack_grow + +_get_by_path: + MOVD s+0(FP), R0 + MOVD p+8(FP), R1 + MOVD path+16(FP), R2 + MOVD m+24(FP), R3 + MOVD ·_subr__get_by_path(SB), R11 + WORD $0x1000005e // adr x30, .+8 + JMP (R11) + MOVD R0, ret+32(FP) + RET + +_stack_grow: + MOVD R30, R3 + CALL runtime·morestack_noctxt<>(SB) + JMP _entry diff --git a/vendor/github.com/bytedance/sonic/internal/native/neon/get_by_path_subr_arm64.go b/vendor/github.com/bytedance/sonic/internal/native/neon/get_by_path_subr_arm64.go new file mode 100644 index 000000000..2d0172721 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/neon/get_by_path_subr_arm64.go @@ -0,0 +1,25 @@ +// +build !noasm !appengine +// Code generated by asm2asm, DO NOT EDIT. + +package neon + +//go:nosplit +//go:noescape +//goland:noinspection ALL +func __get_by_path_entry__() uintptr + +var ( + _subr__get_by_path uintptr = __get_by_path_entry__() + 48 +) + +const ( + _stack__get_by_path = 208 +) + +var ( + _ = _subr__get_by_path +) + +const ( + _ = _stack__get_by_path +) diff --git a/vendor/github.com/bytedance/sonic/internal/native/neon/html_escape_arm64.go b/vendor/github.com/bytedance/sonic/internal/native/neon/html_escape_arm64.go new file mode 100644 index 000000000..579af585b --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/neon/html_escape_arm64.go @@ -0,0 +1,37 @@ +// Code generated by Makefile, DO NOT EDIT. + +// Code generated by Makefile, DO NOT EDIT. + +/* + * Copyright 2021 ByteDance 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 neon + +import ( + `unsafe` + + // `github.com/bytedance/sonic/internal/native/types` +) + +//go:nosplit +func html_escape(sp unsafe.Pointer, nb int, dp unsafe.Pointer, dn *int) (ret int) { + return __html_escape(sp, nb, dp, dn) +} + +//go:nosplit +//go:noescape +//goland:noinspection GoUnusedParameter +func __html_escape(sp unsafe.Pointer, nb int, dp unsafe.Pointer, dn *int) (ret int) diff --git a/vendor/github.com/bytedance/sonic/internal/native/neon/html_escape_arm64.s b/vendor/github.com/bytedance/sonic/internal/native/neon/html_escape_arm64.s new file mode 100644 index 000000000..c8e25e179 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/neon/html_escape_arm64.s @@ -0,0 +1,1406 @@ +// +build !noasm !appengine +// Code generated by asm2asm, DO NOT EDIT. + +#include "go_asm.h" +#include "funcdata.h" +#include "textflag.h" + +TEXT ·__html_escape_entry__(SB), NOSPLIT, $16 + NO_LOCAL_POINTERS + WORD $0x100000a0 // adr x0, .+20 + MOVD R0, ret(FP) + RET + // .p2align 4, 0x00 +lCPI0_0: + WORD $0x08040201 + WORD $0x80402010 + WORD $0x08040201 + WORD $0x80402010 + // // .byte 1 +// .byte 2 +// .byte 4 +// .byte 8 +// .byte 16 +// .byte 32 +// .byte 64 +// .byte 128 +// .byte 1 +// .byte 2 +// .byte 4 +// .byte 8 +// .byte 16 +// .byte 32 +// .byte 64 +// .byte 128 + +lCPI0_1: + WORD $0x09010800 + WORD $0x0b030a02 + WORD $0x0d050c04 + WORD $0x0f070e06 + // // .byte 0 +// .byte 8 +// .byte 1 +// .byte 9 +// .byte 2 +// .byte 10 +// .byte 3 +// .byte 11 +// .byte 4 +// .byte 12 +// .byte 5 +// .byte 13 +// .byte 6 +// .byte 14 +// .byte 7 +// .byte 15 + +_html_escape: + WORD $0xd10083ff // sub sp, sp, #32 + WORD $0xa900fbfd // stp fp, lr, [sp, #8] + WORD $0xa93ffbfd // stp fp, lr, [sp, #-8] + WORD $0xd10023fd // sub fp, sp, #8 + WORD $0xaa0203e8 // mov x8, x2 + WORD $0xaa0003ee // mov x14, x0 + WORD $0xf100043f // cmp x1, #1 + WORD $0x54001d2b // b.lt LBB0_56 $932(%rip) + WORD $0xf940006d // ldr x13, [x3] + WORD $0x4f01e4c0 // movi.16b v0, #38 + WORD $0x4f07e441 // movi.16b v1, #226 + WORD $0x4f07e7a2 // movi.16b v2, #253 +Lloh0: + WORD $0x10fffd88 // adr x8, lCPI0_0 $-80(%rip) +Lloh1: + WORD $0x3dc00103 // ldr q3, [x8, lCPI0_0@PAGEOFF] $0(%rip) + WORD $0x4f01e784 // movi.16b v4, #60 +Lloh2: + WORD $0x10fffda8 // adr x8, lCPI0_1 $-76(%rip) +Lloh3: + WORD $0x3dc00105 // ldr q5, [x8, lCPI0_1@PAGEOFF] $0(%rip) + WORD $0x52800029 // mov w9, #1 + WORD $0xd2c0080a // mov x10, #274877906944 + WORD $0xf2ea000a // movk x10, #20480, lsl #48 + WORD $0x52801c4b // mov w11, #226 +Lloh4: + WORD $0x10001e2c // adr x12, __HtmlQuoteTab $964(%rip) +Lloh5: + WORD $0x9100018c // add x12, x12, __HtmlQuoteTab@PAGEOFF $0(%rip) + WORD $0xaa0003ee // mov x14, x0 + WORD $0xaa0203e8 // mov x8, x2 +LBB0_2: + WORD $0xf10005bf // cmp x13, #1 + WORD $0x54001ceb // b.lt LBB0_59 $924(%rip) + WORD $0xf1003c3f // cmp x1, #15 + WORD $0x1a9f97e5 // cset w5, hi + WORD $0xaa0d03f1 // mov x17, x13 + WORD $0xaa0803f0 // mov x16, x8 + WORD $0xaa0103e4 // mov x4, x1 + WORD $0xaa0e03ef // mov x15, x14 + WORD $0xf100403f // cmp x1, #16 + WORD $0x54000483 // b.lo LBB0_10 $144(%rip) + WORD $0xf10041bf // cmp x13, #16 + WORD $0x54000443 // b.lo LBB0_10 $136(%rip) + WORD $0xd2800011 // mov x17, #0 + WORD $0x928001ef // mov x15, #-16 +LBB0_6: + WORD $0x8b1101d0 // add x16, x14, x17 + WORD $0x8b110104 // add x4, x8, x17 + WORD $0xa9401610 // ldp x16, x5, [x16] + WORD $0xa9001490 // stp x16, x5, [x4] + WORD $0x9e670206 // fmov d6, x16 + WORD $0x4e181ca6 // mov.d v6[1], x5 + WORD $0x6e208cc7 // cmeq.16b v7, v6, v0 + WORD $0x6e218cd0 // cmeq.16b v16, v6, v1 + WORD $0x4e221cc6 // and.16b v6, v6, v2 + WORD $0x6e248cc6 // cmeq.16b v6, v6, v4 + WORD $0x4eb01ce7 // orr.16b v7, v7, v16 + WORD $0x4ea61ce6 // orr.16b v6, v7, v6 + WORD $0x4e231cc6 // and.16b v6, v6, v3 + WORD $0x4e0500c6 // tbl.16b v6, { v6 }, v5 + WORD $0x4e71b8c6 // addv.8h h6, v6 + WORD $0x1e2600d0 // fmov w16, s6 + WORD $0x35000890 // cbnz w16, LBB0_22 $272(%rip) + WORD $0x8b0f0030 // add x16, x1, x15 + WORD $0xf1003e1f // cmp x16, #15 + WORD $0x1a9f97e5 // cset w5, hi + WORD $0x91004231 // add x17, x17, #16 + WORD $0xf100421f // cmp x16, #16 + WORD $0x540000a3 // b.lo LBB0_9 $20(%rip) + WORD $0x8b0f01b0 // add x16, x13, x15 + WORD $0xd10041ef // sub x15, x15, #16 + WORD $0xf1003e1f // cmp x16, #15 + WORD $0x54fffcc8 // b.hi LBB0_6 $-104(%rip) +LBB0_9: + WORD $0x8b1101cf // add x15, x14, x17 + WORD $0xcb110024 // sub x4, x1, x17 + WORD $0x8b110110 // add x16, x8, x17 + WORD $0xcb1101b1 // sub x17, x13, x17 +LBB0_10: + WORD $0x36000325 // tbz w5, #0, LBB0_14 $100(%rip) + WORD $0x3dc001e6 // ldr q6, [x15] + WORD $0x6e208cc7 // cmeq.16b v7, v6, v0 + WORD $0x6e218cd0 // cmeq.16b v16, v6, v1 + WORD $0x4e221cd1 // and.16b v17, v6, v2 + WORD $0x6e248e31 // cmeq.16b v17, v17, v4 + WORD $0x4eb01ce7 // orr.16b v7, v7, v16 + WORD $0x4eb11ce7 // orr.16b v7, v7, v17 + WORD $0x4e231ce7 // and.16b v7, v7, v3 + WORD $0x4e0500e7 // tbl.16b v7, { v7 }, v5 + WORD $0x4e71b8e7 // addv.8h h7, v7 + WORD $0x1e2600e4 // fmov w4, s7 + WORD $0x32100084 // orr w4, w4, #0x10000 + WORD $0x5ac00084 // rbit w4, w4 + WORD $0x5ac01084 // clz w4, w4 + WORD $0x9e6600c6 // fmov x6, d6 + WORD $0xeb04023f // cmp x17, x4 + WORD $0x54000522 // b.hs LBB0_23 $164(%rip) + WORD $0xf1002225 // subs x5, x17, #8 + WORD $0x540005e3 // b.lo LBB0_25 $188(%rip) + WORD $0xf8008606 // str x6, [x16], #8 + WORD $0x910021e4 // add x4, x15, #8 + WORD $0xf10010a6 // subs x6, x5, #4 + WORD $0x540005e2 // b.hs LBB0_26 $188(%rip) + WORD $0x14000031 // b LBB0_27 $196(%rip) +LBB0_14: + WORD $0xb40002a4 // cbz x4, LBB0_21 $84(%rip) + WORD $0xf100063f // cmp x17, #1 + WORD $0x5400026b // b.lt LBB0_21 $76(%rip) + WORD $0xcb0e01e5 // sub x5, x15, x14 +LBB0_17: + WORD $0x394001e6 // ldrb w6, [x15] + WORD $0x7100f8df // cmp w6, #62 + WORD $0x9ac62127 // lsl x7, x9, x6 + WORD $0x8a0a00e7 // and x7, x7, x10 + WORD $0xfa4098e4 // ccmp x7, #0, #4, ls + WORD $0x540005e1 // b.ne LBB0_31 $188(%rip) + WORD $0x710388df // cmp w6, #226 + WORD $0x540005a0 // b.eq LBB0_31 $180(%rip) + WORD $0x910005ef // add x15, x15, #1 + WORD $0x38001606 // strb w6, [x16], #1 + WORD $0xf1000484 // subs x4, x4, #1 + WORD $0x540000c0 // b.eq LBB0_21 $24(%rip) + WORD $0xd1000626 // sub x6, x17, #1 + WORD $0x910004a5 // add x5, x5, #1 + WORD $0xf100063f // cmp x17, #1 + WORD $0xaa0603f1 // mov x17, x6 + WORD $0x54fffe0c // b.gt LBB0_17 $-64(%rip) +LBB0_21: + WORD $0xaa2f03f0 // mvn x16, x15 + WORD $0x8b0e0210 // add x16, x16, x14 + WORD $0xcb0e01ef // sub x15, x15, x14 + WORD $0xf100009f // cmp x4, #0 + WORD $0x9a8f1205 // csel x5, x16, x15, ne + WORD $0xb6f803e5 // tbz x5, #63, LBB0_32 $124(%rip) + WORD $0x1400007c // b LBB0_57 $496(%rip) +LBB0_22: + WORD $0x5ac0020f // rbit w15, w16 + WORD $0x5ac011ef // clz w15, w15 + WORD $0x8b1101e5 // add x5, x15, x17 + WORD $0xb6f80345 // tbz x5, #63, LBB0_32 $104(%rip) + WORD $0x14000077 // b LBB0_57 $476(%rip) +LBB0_23: + WORD $0x7100209f // cmp w4, #8 + WORD $0x540007c3 // b.lo LBB0_42 $248(%rip) + WORD $0xf8008606 // str x6, [x16], #8 + WORD $0x910021f1 // add x17, x15, #8 + WORD $0xd1002085 // sub x5, x4, #8 + WORD $0xf10010a6 // subs x6, x5, #4 + WORD $0x540007a2 // b.hs LBB0_43 $244(%rip) + WORD $0x1400003f // b LBB0_44 $252(%rip) +LBB0_25: + WORD $0xaa0f03e4 // mov x4, x15 + WORD $0xaa1103e5 // mov x5, x17 + WORD $0xf1001226 // subs x6, x17, #4 + WORD $0x54000083 // b.lo LBB0_27 $16(%rip) +LBB0_26: + WORD $0xb8404485 // ldr w5, [x4], #4 + WORD $0xb8004605 // str w5, [x16], #4 + WORD $0xaa0603e5 // mov x5, x6 +LBB0_27: + WORD $0xf10008a6 // subs x6, x5, #2 + WORD $0x540007e2 // b.hs LBB0_48 $252(%rip) + WORD $0xb4000065 // cbz x5, LBB0_30 $12(%rip) +LBB0_29: + WORD $0x39400084 // ldrb w4, [x4] + WORD $0x39000204 // strb w4, [x16] +LBB0_30: + WORD $0x8b0f022f // add x15, x17, x15 + WORD $0xaa2f03ef // mvn x15, x15 + WORD $0x8b0e01e5 // add x5, x15, x14 +LBB0_31: + WORD $0xb7f80be5 // tbnz x5, #63, LBB0_57 $380(%rip) +LBB0_32: + WORD $0x8b0501ce // add x14, x14, x5 + WORD $0x8b050108 // add x8, x8, x5 + WORD $0xcb05002f // sub x15, x1, x5 + WORD $0xf10005ff // cmp x15, #1 + WORD $0x54000a8b // b.lt LBB0_56 $336(%rip) + WORD $0xcb0501ad // sub x13, x13, x5 + WORD $0x394001d1 // ldrb w17, [x14] + WORD $0x71038a3f // cmp w17, #226 + WORD $0x54000720 // b.eq LBB0_50 $228(%rip) + WORD $0xaa0e03f0 // mov x16, x14 + WORD $0x8b315181 // add x1, x12, w17, uxtw #4 + WORD $0xb9800031 // ldrsw x17, [x1] + WORD $0xeb1101ad // subs x13, x13, x17 + WORD $0x54000b4b // b.lt LBB0_58 $360(%rip) +LBB0_35: + WORD $0xf1001224 // subs x4, x17, #4 + WORD $0x5400010b // b.lt LBB0_37 $32(%rip) + WORD $0xb9400825 // ldr w5, [x1, #8] + WORD $0xaa0803ee // mov x14, x8 + WORD $0xb80045c5 // str w5, [x14], #4 + WORD $0x91003021 // add x1, x1, #12 + WORD $0xf1000885 // subs x5, x4, #2 + WORD $0x540000e2 // b.hs LBB0_38 $28(%rip) + WORD $0x14000009 // b LBB0_39 $36(%rip) +LBB0_37: + WORD $0x91002021 // add x1, x1, #8 + WORD $0xaa0803ee // mov x14, x8 + WORD $0xaa1103e4 // mov x4, x17 + WORD $0xf1000a25 // subs x5, x17, #2 + WORD $0x54000083 // b.lo LBB0_39 $16(%rip) +LBB0_38: + WORD $0x78402424 // ldrh w4, [x1], #2 + WORD $0x780025c4 // strh w4, [x14], #2 + WORD $0xaa0503e4 // mov x4, x5 +LBB0_39: + WORD $0xb4000064 // cbz x4, LBB0_41 $12(%rip) + WORD $0x39400021 // ldrb w1, [x1] + WORD $0x390001c1 // strb w1, [x14] +LBB0_41: + WORD $0x8b110108 // add x8, x8, x17 + WORD $0x9100060e // add x14, x16, #1 + WORD $0xf10005e1 // subs x1, x15, #1 + WORD $0x54ffeb88 // b.hi LBB0_2 $-656(%rip) + WORD $0x14000032 // b LBB0_56 $200(%rip) +LBB0_42: + WORD $0xaa0f03f1 // mov x17, x15 + WORD $0xaa0403e5 // mov x5, x4 + WORD $0xf1001086 // subs x6, x4, #4 + WORD $0x54000083 // b.lo LBB0_44 $16(%rip) +LBB0_43: + WORD $0xb8404625 // ldr w5, [x17], #4 + WORD $0xb8004605 // str w5, [x16], #4 + WORD $0xaa0603e5 // mov x5, x6 +LBB0_44: + WORD $0xf10008a6 // subs x6, x5, #2 + WORD $0x540001a2 // b.hs LBB0_49 $52(%rip) + WORD $0xb4000065 // cbz x5, LBB0_47 $12(%rip) +LBB0_46: + WORD $0x39400231 // ldrb w17, [x17] + WORD $0x39000211 // strb w17, [x16] +LBB0_47: + WORD $0xcb0e01ef // sub x15, x15, x14 + WORD $0x8b0401e5 // add x5, x15, x4 + WORD $0xb6fff965 // tbz x5, #63, LBB0_32 $-212(%rip) + WORD $0x14000028 // b LBB0_57 $160(%rip) +LBB0_48: + WORD $0x78402485 // ldrh w5, [x4], #2 + WORD $0x78002605 // strh w5, [x16], #2 + WORD $0xaa0603e5 // mov x5, x6 + WORD $0xb5fff806 // cbnz x6, LBB0_29 $-256(%rip) + WORD $0x17ffffc1 // b LBB0_30 $-252(%rip) +LBB0_49: + WORD $0x78402625 // ldrh w5, [x17], #2 + WORD $0x78002605 // strh w5, [x16], #2 + WORD $0xaa0603e5 // mov x5, x6 + WORD $0xb5fffe46 // cbnz x6, LBB0_46 $-56(%rip) + WORD $0x17fffff3 // b LBB0_47 $-52(%rip) +LBB0_50: + WORD $0xf1000dff // cmp x15, #3 + WORD $0x540001e3 // b.lo LBB0_54 $60(%rip) + WORD $0x394005d0 // ldrb w16, [x14, #1] + WORD $0x7102021f // cmp w16, #128 + WORD $0x54000181 // b.ne LBB0_54 $48(%rip) + WORD $0xaa0e03f0 // mov x16, x14 + WORD $0x38402e11 // ldrb w17, [x16, #2]! + WORD $0x121f1a21 // and w1, w17, #0xfe + WORD $0x7102a03f // cmp w1, #168 + WORD $0x540000e1 // b.ne LBB0_54 $28(%rip) + WORD $0xd10009ef // sub x15, x15, #2 + WORD $0x8b315181 // add x1, x12, w17, uxtw #4 + WORD $0xb9800031 // ldrsw x17, [x1] + WORD $0xeb1101ad // subs x13, x13, x17 + WORD $0x54fff7ea // b.ge LBB0_35 $-260(%rip) + WORD $0x14000017 // b LBB0_58 $92(%rip) +LBB0_54: + WORD $0xf10005ad // subs x13, x13, #1 + WORD $0x540002eb // b.lt LBB0_59 $92(%rip) + WORD $0x3800150b // strb w11, [x8], #1 + WORD $0xaa0e03f0 // mov x16, x14 + WORD $0x910005ce // add x14, x14, #1 + WORD $0xf10005e1 // subs x1, x15, #1 + WORD $0x54ffe548 // b.hi LBB0_2 $-856(%rip) +LBB0_56: + WORD $0xcb020108 // sub x8, x8, x2 + WORD $0xf9000068 // str x8, [x3] + WORD $0xcb0001c0 // sub x0, x14, x0 + WORD $0xa940fbfd // ldp fp, lr, [sp, #8] + WORD $0x910083ff // add sp, sp, #32 + WORD $0xd65f03c0 // ret +LBB0_57: + WORD $0x8b0200a9 // add x9, x5, x2 + WORD $0xaa2903e9 // mvn x9, x9 + WORD $0x8b080128 // add x8, x9, x8 + WORD $0xf9000068 // str x8, [x3] + WORD $0xcb0e0008 // sub x8, x0, x14 + WORD $0x8b050100 // add x0, x8, x5 + WORD $0xa940fbfd // ldp fp, lr, [sp, #8] + WORD $0x910083ff // add sp, sp, #32 + WORD $0xd65f03c0 // ret +LBB0_58: + WORD $0xcb020108 // sub x8, x8, x2 + WORD $0xf9000068 // str x8, [x3] +LBB0_59: + WORD $0xaa2e03e8 // mvn x8, x14 + WORD $0x8b000100 // add x0, x8, x0 + WORD $0xa940fbfd // ldp fp, lr, [sp, #8] + WORD $0x910083ff // add sp, sp, #32 + WORD $0xd65f03c0 // ret + // .p2align 3, 0x00 +__HtmlQuoteTab: + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000006; WORD $0x00000000 // .quad 6 + WORD $0x3030755c // .asciz 4, '\\u0026\x00\x00' + WORD $0x00003632 // .asciz 4, '26\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000006; WORD $0x00000000 // .quad 6 + WORD $0x3030755c // .asciz 4, '\\u003c\x00\x00' + WORD $0x00006333 // .asciz 4, '3c\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000006; WORD $0x00000000 // .quad 6 + WORD $0x3030755c // .asciz 4, '\\u003e\x00\x00' + WORD $0x00006533 // .asciz 4, '3e\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000006; WORD $0x00000000 // .quad 6 + WORD $0x3032755c // .asciz 4, '\\u2028\x00\x00' + WORD $0x00003832 // .asciz 4, '28\x00\x00' + WORD $0x00000006; WORD $0x00000000 // .quad 6 + WORD $0x3032755c // .asciz 4, '\\u2029\x00\x00' + WORD $0x00003932 // .asciz 4, '29\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + +TEXT ·__html_escape(SB), NOSPLIT, $0-40 + NO_LOCAL_POINTERS + +_entry: + MOVD 16(g), R16 + SUB $96, RSP, R17 + CMP R16, R17 + BLS _stack_grow + +_html_escape: + MOVD sp+0(FP), R0 + MOVD nb+8(FP), R1 + MOVD dp+16(FP), R2 + MOVD dn+24(FP), R3 + MOVD ·_subr__html_escape(SB), R11 + WORD $0x1000005e // adr x30, .+8 + JMP (R11) + MOVD R0, ret+32(FP) + RET + +_stack_grow: + MOVD R30, R3 + CALL runtime·morestack_noctxt<>(SB) + JMP _entry diff --git a/vendor/github.com/bytedance/sonic/internal/native/neon/html_escape_subr_arm64.go b/vendor/github.com/bytedance/sonic/internal/native/neon/html_escape_subr_arm64.go new file mode 100644 index 000000000..a0a86e057 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/neon/html_escape_subr_arm64.go @@ -0,0 +1,25 @@ +// +build !noasm !appengine +// Code generated by asm2asm, DO NOT EDIT. + +package neon + +//go:nosplit +//go:noescape +//goland:noinspection ALL +func __html_escape_entry__() uintptr + +var ( + _subr__html_escape uintptr = __html_escape_entry__() + 32 +) + +const ( + _stack__html_escape = 32 +) + +var ( + _ = _subr__html_escape +) + +const ( + _ = _stack__html_escape +) diff --git a/vendor/github.com/bytedance/sonic/internal/native/neon/i64toa_arm64.go b/vendor/github.com/bytedance/sonic/internal/native/neon/i64toa_arm64.go new file mode 100644 index 000000000..d383b3843 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/neon/i64toa_arm64.go @@ -0,0 +1,31 @@ +// Code generated by Makefile, DO NOT EDIT. + +// Code generated by Makefile, DO NOT EDIT. + +/* + * Copyright 2021 ByteDance 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 neon + +//go:nosplit +func i64toa(out *byte, val int64) (ret int) { + return __i64toa(out, val) +} + +//go:nosplit +//go:noescape +//goland:noinspection GoUnusedParameter +func __i64toa(out *byte, val int64) (ret int) diff --git a/vendor/github.com/bytedance/sonic/internal/native/neon/i64toa_arm64.s b/vendor/github.com/bytedance/sonic/internal/native/neon/i64toa_arm64.s new file mode 100644 index 000000000..a41e8e1c5 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/neon/i64toa_arm64.s @@ -0,0 +1,985 @@ +// +build !noasm !appengine +// Code generated by asm2asm, DO NOT EDIT. + +#include "go_asm.h" +#include "funcdata.h" +#include "textflag.h" + +TEXT ·__i64toa_entry__(SB), NOSPLIT, $16 + NO_LOCAL_POINTERS + WORD $0x100000a0 // adr x0, .+20 + MOVD R0, ret(FP) + RET + // .p2align 3, 0x00 +lCPI0_0: + WORD $0x147b20c5 + WORD $0x80003334 + // // .word 8389 +// .word 5243 +// .word 13108 +// .word 32768 + +lCPI0_1: + WORD $0x08000080 + WORD $0x80002000 + // // .word 128 +// .word 2048 +// .word 8192 +// .word 32768 + +lCPI0_2: + WORD $0x08040201 + WORD $0x80402010 + WORD $0x08040201 + WORD $0x80402010 + // // .byte 1 +// .byte 2 +// .byte 4 +// .byte 8 +// .byte 16 +// .byte 32 +// .byte 64 +// .byte 128 +// .byte 1 +// .byte 2 +// .byte 4 +// .byte 8 +// .byte 16 +// .byte 32 +// .byte 64 +// .byte 128 + +lCPI0_3: + WORD $0x09010800 + WORD $0x0b030a02 + WORD $0x0d050c04 + WORD $0x0f070e06 + // // .byte 0 +// .byte 8 +// .byte 1 +// .byte 9 +// .byte 2 +// .byte 10 +// .byte 3 +// .byte 11 +// .byte 4 +// .byte 12 +// .byte 5 +// .byte 13 +// .byte 6 +// .byte 14 +// .byte 7 +// .byte 15 + +_i64toa: + WORD $0xd10083ff // sub sp, sp, #32 + WORD $0xa900fbfd // stp fp, lr, [sp, #8] + WORD $0xa93ffbfd // stp fp, lr, [sp, #-8] + WORD $0xd10023fd // sub fp, sp, #8 + WORD $0xb7f80641 // tbnz x1, #63, LBB0_10 $200(%rip) + WORD $0xd344fc28 // lsr x8, x1, #4 + WORD $0xf109c11f // cmp x8, #624 + WORD $0x540008e8 // b.hi LBB0_13 $284(%rip) + WORD $0x53023c28 // ubfx w8, w1, #2, #14 + WORD $0x52828f69 // mov w9, #5243 + WORD $0x1b097d08 // mul w8, w8, w9 + WORD $0x53117d08 // lsr w8, w8, #17 + WORD $0xd37f7d09 // ubfiz x9, x8, #1, #32 + WORD $0x52800c8a // mov w10, #100 + WORD $0x1b0a8508 // msub w8, w8, w10, w1 + WORD $0x92403d08 // and x8, x8, #0xffff + WORD $0xd37ff908 // lsl x8, x8, #1 + WORD $0x710fa03f // cmp w1, #1000 + WORD $0x540000e3 // b.lo LBB0_4 $28(%rip) +Lloh0: + WORD $0x100054ea // adr x10, _Digits $2716(%rip) +Lloh1: + WORD $0x9100014a // add x10, x10, _Digits@PAGEOFF $0(%rip) + WORD $0x3869694a // ldrb w10, [x10, x9] + WORD $0x3900000a // strb w10, [x0] + WORD $0x5280002a // mov w10, #1 + WORD $0x14000004 // b LBB0_6 $16(%rip) +LBB0_4: + WORD $0x7101903f // cmp w1, #100 + WORD $0x540002e3 // b.lo LBB0_9 $92(%rip) + WORD $0x5280000a // mov w10, #0 +LBB0_6: +Lloh2: + WORD $0x100053cb // adr x11, _Digits $2680(%rip) +Lloh3: + WORD $0x9100016b // add x11, x11, _Digits@PAGEOFF $0(%rip) + WORD $0x8b294169 // add x9, x11, w9, uxtw + WORD $0x3940052b // ldrb w11, [x9, #1] + WORD $0x11000549 // add w9, w10, #1 + WORD $0x382a480b // strb w11, [x0, w10, uxtw] +LBB0_7: +Lloh4: + WORD $0x1000530a // adr x10, _Digits $2656(%rip) +Lloh5: + WORD $0x9100014a // add x10, x10, _Digits@PAGEOFF $0(%rip) + WORD $0x3868694b // ldrb w11, [x10, x8] + WORD $0x1100052a // add w10, w9, #1 + WORD $0x3829480b // strb w11, [x0, w9, uxtw] +LBB0_8: +Lloh6: + WORD $0x10005269 // adr x9, _Digits $2636(%rip) +Lloh7: + WORD $0x91000129 // add x9, x9, _Digits@PAGEOFF $0(%rip) + WORD $0x8b282128 // add x8, x9, w8, uxth + WORD $0x39400509 // ldrb w9, [x8, #1] + WORD $0x11000548 // add w8, w10, #1 + WORD $0x382a4809 // strb w9, [x0, w10, uxtw] + WORD $0xaa0803e0 // mov x0, x8 + WORD $0xa940fbfd // ldp fp, lr, [sp, #8] + WORD $0x910083ff // add sp, sp, #32 + WORD $0xd65f03c0 // ret +LBB0_9: + WORD $0x52800009 // mov w9, #0 + WORD $0x5280000a // mov w10, #0 + WORD $0x7100283f // cmp w1, #10 + WORD $0x54fffdc2 // b.hs LBB0_7 $-72(%rip) + WORD $0x17fffff2 // b LBB0_8 $-56(%rip) +LBB0_10: + WORD $0x528005a9 // mov w9, #45 + WORD $0xaa0003e8 // mov x8, x0 + WORD $0x38001509 // strb w9, [x8], #1 + WORD $0xcb0103e9 // neg x9, x1 + WORD $0xd344fd2a // lsr x10, x9, #4 + WORD $0xf109c15f // cmp x10, #624 + WORD $0x54001068 // b.hi LBB0_28 $524(%rip) + WORD $0x53023d2a // ubfx w10, w9, #2, #14 + WORD $0x52828f6b // mov w11, #5243 + WORD $0x1b0b7d4a // mul w10, w10, w11 + WORD $0x53117d4a // lsr w10, w10, #17 + WORD $0xd37f7d4b // ubfiz x11, x10, #1, #32 + WORD $0x52800c8c // mov w12, #100 + WORD $0x1b0ca54a // msub w10, w10, w12, w9 + WORD $0x92403d4a // and x10, x10, #0xffff + WORD $0xd37ff94a // lsl x10, x10, #1 + WORD $0x710fa13f // cmp w9, #1000 + WORD $0x540004e3 // b.lo LBB0_16 $156(%rip) +Lloh8: + WORD $0x10004e49 // adr x9, _Digits $2504(%rip) +Lloh9: + WORD $0x91000129 // add x9, x9, _Digits@PAGEOFF $0(%rip) + WORD $0x386b6929 // ldrb w9, [x9, x11] + WORD $0x39000109 // strb w9, [x8] + WORD $0x52800029 // mov w9, #1 + WORD $0x14000024 // b LBB0_18 $144(%rip) +LBB0_13: + WORD $0x529c2008 // mov w8, #57600 + WORD $0x72a0bea8 // movk w8, #1525, lsl #16 + WORD $0xeb08003f // cmp x1, x8 + WORD $0x540011c2 // b.hs LBB0_31 $568(%rip) + WORD $0x5282eb28 // mov w8, #5977 + WORD $0x72ba36e8 // movk w8, #53687, lsl #16 + WORD $0x92407c29 // and x9, x1, #0xffffffff + WORD $0x9ba87d28 // umull x8, w9, w8 + WORD $0xd36dfd08 // lsr x8, x8, #45 + WORD $0x529bd06a // mov w10, #56963 + WORD $0x72a8636a // movk w10, #17179, lsl #16 + WORD $0x9baa7d29 // umull x9, w9, w10 + WORD $0xd371fd29 // lsr x9, x9, #49 + WORD $0x927f312a // and x10, x9, #0x3ffe + WORD $0x53023d09 // ubfx w9, w8, #2, #14 + WORD $0x52828f6b // mov w11, #5243 + WORD $0x1b0b7d29 // mul w9, w9, w11 + WORD $0x53117d29 // lsr w9, w9, #17 + WORD $0x52800c8b // mov w11, #100 + WORD $0x1b0ba129 // msub w9, w9, w11, w8 + WORD $0x92403d29 // and x9, x9, #0xffff + WORD $0xd37ff929 // lsl x9, x9, #1 + WORD $0x5292cfeb // mov w11, #38527 + WORD $0x72a0130b // movk w11, #152, lsl #16 + WORD $0x6b0b003f // cmp w1, w11 + WORD $0x54000409 // b.ls LBB0_21 $128(%rip) +Lloh10: + WORD $0x10004a4b // adr x11, _Digits $2376(%rip) +Lloh11: + WORD $0x9100016b // add x11, x11, _Digits@PAGEOFF $0(%rip) + WORD $0x386a696b // ldrb w11, [x11, x10] + WORD $0x3900000b // strb w11, [x0] + WORD $0x5280002c // mov w12, #1 + WORD $0x1400001f // b LBB0_23 $124(%rip) +LBB0_16: + WORD $0x7101913f // cmp w9, #100 + WORD $0x540008a3 // b.lo LBB0_26 $276(%rip) + WORD $0x52800009 // mov w9, #0 +LBB0_18: +Lloh12: + WORD $0x1000492c // adr x12, _Digits $2340(%rip) +Lloh13: + WORD $0x9100018c // add x12, x12, _Digits@PAGEOFF $0(%rip) + WORD $0x8b2b418b // add x11, x12, w11, uxtw + WORD $0x3940056c // ldrb w12, [x11, #1] + WORD $0x1100052b // add w11, w9, #1 + WORD $0x3829490c // strb w12, [x8, w9, uxtw] +LBB0_19: +Lloh14: + WORD $0x10004869 // adr x9, _Digits $2316(%rip) +Lloh15: + WORD $0x91000129 // add x9, x9, _Digits@PAGEOFF $0(%rip) + WORD $0x386a6929 // ldrb w9, [x9, x10] + WORD $0x1100056c // add w12, w11, #1 + WORD $0x382b4909 // strb w9, [x8, w11, uxtw] +LBB0_20: +Lloh16: + WORD $0x100047c9 // adr x9, _Digits $2296(%rip) +Lloh17: + WORD $0x91000129 // add x9, x9, _Digits@PAGEOFF $0(%rip) + WORD $0x8b2a2129 // add x9, x9, w10, uxth + WORD $0x3940052a // ldrb w10, [x9, #1] + WORD $0x11000589 // add w9, w12, #1 + WORD $0x382c490a // strb w10, [x8, w12, uxtw] + WORD $0x11000528 // add w8, w9, #1 + WORD $0xaa0803e0 // mov x0, x8 + WORD $0xa940fbfd // ldp fp, lr, [sp, #8] + WORD $0x910083ff // add sp, sp, #32 + WORD $0xd65f03c0 // ret +LBB0_21: + WORD $0x528847eb // mov w11, #16959 + WORD $0x72a001eb // movk w11, #15, lsl #16 + WORD $0x6b0b003f // cmp w1, w11 + WORD $0x540005e9 // b.ls LBB0_27 $188(%rip) + WORD $0x5280000c // mov w12, #0 +LBB0_23: +Lloh18: + WORD $0x100045cb // adr x11, _Digits $2232(%rip) +Lloh19: + WORD $0x9100016b // add x11, x11, _Digits@PAGEOFF $0(%rip) + WORD $0x8b2a416a // add x10, x11, w10, uxtw + WORD $0x3940054a // ldrb w10, [x10, #1] + WORD $0x1100058b // add w11, w12, #1 + WORD $0x382c480a // strb w10, [x0, w12, uxtw] +LBB0_24: +Lloh20: + WORD $0x1000450a // adr x10, _Digits $2208(%rip) +Lloh21: + WORD $0x9100014a // add x10, x10, _Digits@PAGEOFF $0(%rip) + WORD $0x3869694c // ldrb w12, [x10, x9] + WORD $0x1100056a // add w10, w11, #1 + WORD $0x382b480c // strb w12, [x0, w11, uxtw] +LBB0_25: + WORD $0x5284e20b // mov w11, #10000 + WORD $0x1b0b8508 // msub w8, w8, w11, w1 + WORD $0x53023d0b // ubfx w11, w8, #2, #14 + WORD $0x52828f6c // mov w12, #5243 + WORD $0x1b0c7d6b // mul w11, w11, w12 + WORD $0x53117d6b // lsr w11, w11, #17 + WORD $0x52800c8c // mov w12, #100 + WORD $0x1b0ca168 // msub w8, w11, w12, w8 + WORD $0x92403d08 // and x8, x8, #0xffff + WORD $0xd37ff908 // lsl x8, x8, #1 +Lloh22: + WORD $0x1000432c // adr x12, _Digits $2148(%rip) +Lloh23: + WORD $0x9100018c // add x12, x12, _Digits@PAGEOFF $0(%rip) + WORD $0x8b292189 // add x9, x12, w9, uxth + WORD $0x39400529 // ldrb w9, [x9, #1] + WORD $0x8b2a400d // add x13, x0, w10, uxtw + WORD $0x390001a9 // strb w9, [x13] + WORD $0x786b5989 // ldrh w9, [x12, w11, uxtw #1] + WORD $0x780011a9 // sturh w9, [x13, #1] + WORD $0x38686989 // ldrb w9, [x12, x8] + WORD $0x39000da9 // strb w9, [x13, #3] + WORD $0x927f3908 // and x8, x8, #0xfffe + WORD $0x8b080188 // add x8, x12, x8 + WORD $0x39400509 // ldrb w9, [x8, #1] + WORD $0x11001548 // add w8, w10, #5 + WORD $0x390011a9 // strb w9, [x13, #4] + WORD $0xaa0803e0 // mov x0, x8 + WORD $0xa940fbfd // ldp fp, lr, [sp, #8] + WORD $0x910083ff // add sp, sp, #32 + WORD $0xd65f03c0 // ret +LBB0_26: + WORD $0x5280000b // mov w11, #0 + WORD $0x5280000c // mov w12, #0 + WORD $0x7100293f // cmp w9, #10 + WORD $0x54fff802 // b.hs LBB0_19 $-256(%rip) + WORD $0x17ffffc4 // b LBB0_20 $-240(%rip) +LBB0_27: + WORD $0x5280000b // mov w11, #0 + WORD $0x5280000a // mov w10, #0 + WORD $0x53057c2c // lsr w12, w1, #5 + WORD $0x7130d59f // cmp w12, #3125 + WORD $0x54fffaa2 // b.hs LBB0_24 $-172(%rip) + WORD $0x17ffffd9 // b LBB0_25 $-156(%rip) +LBB0_28: + WORD $0x529c200a // mov w10, #57600 + WORD $0x72a0beaa // movk w10, #1525, lsl #16 + WORD $0xeb0a013f // cmp x9, x10 + WORD $0x54001662 // b.hs LBB0_39 $716(%rip) + WORD $0x5282eb2a // mov w10, #5977 + WORD $0x72ba36ea // movk w10, #53687, lsl #16 + WORD $0x9baa7d2a // umull x10, w9, w10 + WORD $0xd36dfd4a // lsr x10, x10, #45 + WORD $0x529bd06b // mov w11, #56963 + WORD $0x72a8636b // movk w11, #17179, lsl #16 + WORD $0x92407d2c // and x12, x9, #0xffffffff + WORD $0x9bab7d8b // umull x11, w12, w11 + WORD $0xd371fd6b // lsr x11, x11, #49 + WORD $0x927f316c // and x12, x11, #0x3ffe + WORD $0x53023d4b // ubfx w11, w10, #2, #14 + WORD $0x52828f6d // mov w13, #5243 + WORD $0x1b0d7d6b // mul w11, w11, w13 + WORD $0x53117d6b // lsr w11, w11, #17 + WORD $0x52800c8d // mov w13, #100 + WORD $0x1b0da96b // msub w11, w11, w13, w10 + WORD $0x92403d6b // and x11, x11, #0xffff + WORD $0xd37ff96b // lsl x11, x11, #1 + WORD $0x5292cfed // mov w13, #38527 + WORD $0x72a0130d // movk w13, #152, lsl #16 + WORD $0x6b0d013f // cmp w9, w13 + WORD $0x54000d29 // b.ls LBB0_33 $420(%rip) +Lloh24: + WORD $0x10003c2d // adr x13, _Digits $1924(%rip) +Lloh25: + WORD $0x910001ad // add x13, x13, _Digits@PAGEOFF $0(%rip) + WORD $0x386c69ad // ldrb w13, [x13, x12] + WORD $0x3900010d // strb w13, [x8] + WORD $0x5280002e // mov w14, #1 + WORD $0x14000068 // b LBB0_35 $416(%rip) +LBB0_31: + WORD $0xd2adf82a // mov x10, #1874919424 + WORD $0xf2d0de4a // movk x10, #34546, lsl #32 + WORD $0xf2e0046a // movk x10, #35, lsl #48 + WORD $0xeb0a003f // cmp x1, x10 + WORD $0x54001ea2 // b.hs LBB0_41 $980(%rip) + WORD $0xd299dfa9 // mov x9, #52989 + WORD $0xf2b08c29 // movk x9, #33889, lsl #16 + WORD $0xf2cee229 // movk x9, #30481, lsl #32 + WORD $0xf2f57989 // movk x9, #43980, lsl #48 + WORD $0x9bc97c29 // umulh x9, x1, x9 + WORD $0xd35afd29 // lsr x9, x9, #26 + WORD $0x1b088528 // msub w8, w9, w8, w1 + WORD $0x6f00e400 // movi.2d v0, #0000000000000000 + WORD $0x6f00e401 // movi.2d v1, #0000000000000000 + WORD $0x4e041d21 // mov.s v1[0], w9 + WORD $0x0ea12822 // xtn.2s v2, v1 + WORD $0x5282eb29 // mov w9, #5977 + WORD $0x72ba36e9 // movk w9, #53687, lsl #16 + WORD $0x0e040d23 // dup.2s v3, w9 + WORD $0x2ea3c042 // umull.2d v2, v2, v3 + WORD $0x6f530442 // ushr.2d v2, v2, #45 + WORD $0x0ea12844 // xtn.2s v4, v2 + WORD $0x5284e209 // mov w9, #10000 + WORD $0x0e040d25 // dup.2s v5, w9 + WORD $0x2ea5c084 // umull.2d v4, v4, v5 + WORD $0x6ea48421 // sub.4s v1, v1, v4 + WORD $0x4e413841 // zip1.8h v1, v2, v1 + WORD $0x4f425421 // shl.2d v1, v1, #2 + WORD $0x4e413821 // zip1.8h v1, v1, v1 + WORD $0x4e813821 // zip1.4s v1, v1, v1 +Lloh26: + WORD $0x10ffdee9 // adr x9, lCPI0_0 $-1060(%rip) +Lloh27: + WORD $0xfd400122 // ldr d2, [x9, lCPI0_0@PAGEOFF] $0(%rip) + WORD $0x2e62c024 // umull.4s v4, v1, v2 + WORD $0x6e014021 // ext.16b v1, v1, v1, #8 + WORD $0x2e62c021 // umull.4s v1, v1, v2 + WORD $0x4e415881 // uzp2.8h v1, v4, v1 +Lloh28: + WORD $0x10ffde69 // adr x9, lCPI0_1 $-1076(%rip) +Lloh29: + WORD $0xfd400124 // ldr d4, [x9, lCPI0_1@PAGEOFF] $0(%rip) + WORD $0x2e64c026 // umull.4s v6, v1, v4 + WORD $0x6e014021 // ext.16b v1, v1, v1, #8 + WORD $0x2e64c021 // umull.4s v1, v1, v4 + WORD $0x4e4158c1 // uzp2.8h v1, v6, v1 + WORD $0x4f008546 // movi.8h v6, #10 + WORD $0x4e669c27 // mul.8h v7, v1, v6 + WORD $0x4f5054e7 // shl.2d v7, v7, #16 + WORD $0x6e678421 // sub.8h v1, v1, v7 + WORD $0x4e041d00 // mov.s v0[0], w8 + WORD $0x0ea12807 // xtn.2s v7, v0 + WORD $0x2ea3c0e3 // umull.2d v3, v7, v3 + WORD $0x6f530463 // ushr.2d v3, v3, #45 + WORD $0x0ea12867 // xtn.2s v7, v3 + WORD $0x2ea5c0e5 // umull.2d v5, v7, v5 + WORD $0x6ea58400 // sub.4s v0, v0, v5 + WORD $0x4e403860 // zip1.8h v0, v3, v0 + WORD $0x4f425400 // shl.2d v0, v0, #2 + WORD $0x4e403800 // zip1.8h v0, v0, v0 + WORD $0x4e803800 // zip1.4s v0, v0, v0 + WORD $0x2e62c003 // umull.4s v3, v0, v2 + WORD $0x6e004000 // ext.16b v0, v0, v0, #8 + WORD $0x2e62c000 // umull.4s v0, v0, v2 + WORD $0x4e405860 // uzp2.8h v0, v3, v0 + WORD $0x2e64c002 // umull.4s v2, v0, v4 + WORD $0x6e004000 // ext.16b v0, v0, v0, #8 + WORD $0x2e64c000 // umull.4s v0, v0, v4 + WORD $0x4e405840 // uzp2.8h v0, v2, v0 + WORD $0x4e669c02 // mul.8h v2, v0, v6 + WORD $0x4f505442 // shl.2d v2, v2, #16 + WORD $0x6e628400 // sub.8h v0, v0, v2 + WORD $0x2e212821 // sqxtun.8b v1, v1 + WORD $0x6e212801 // sqxtun2.16b v1, v0 + WORD $0x4f01e600 // movi.16b v0, #48 + WORD $0x4e208420 // add.16b v0, v1, v0 + WORD $0x4e209821 // cmeq.16b v1, v1, #0 +Lloh30: + WORD $0x10ffda08 // adr x8, lCPI0_2 $-1216(%rip) +Lloh31: + WORD $0x3dc00102 // ldr q2, [x8, lCPI0_2@PAGEOFF] $0(%rip) + WORD $0x4e221c21 // and.16b v1, v1, v2 +Lloh32: + WORD $0x10ffda28 // adr x8, lCPI0_3 $-1212(%rip) +Lloh33: + WORD $0x3dc00102 // ldr q2, [x8, lCPI0_3@PAGEOFF] $0(%rip) + WORD $0x4e020021 // tbl.16b v1, { v1 }, v2 + WORD $0x4e71b821 // addv.8h h1, v1 + WORD $0x1e260028 // fmov w8, s1 + WORD $0x2a2803e8 // mvn w8, w8 + WORD $0x32114108 // orr w8, w8, #0xffff8000 + WORD $0x5ac00108 // rbit w8, w8 + WORD $0x5ac01108 // clz w8, w8 +Lloh34: + WORD $0x10003709 // adr x9, _VecShiftShuffles $1760(%rip) +Lloh35: + WORD $0x91000129 // add x9, x9, _VecShiftShuffles@PAGEOFF $0(%rip) + WORD $0x3ce85921 // ldr q1, [x9, w8, uxtw #4] + WORD $0x4f04e5e2 // movi.16b v2, #143 + WORD $0x4e221c21 // and.16b v1, v1, v2 + WORD $0x4e010000 // tbl.16b v0, { v0 }, v1 + WORD $0x3d800000 // str q0, [x0] + WORD $0x52800209 // mov w9, #16 + WORD $0x4b080128 // sub w8, w9, w8 + WORD $0xaa0803e0 // mov x0, x8 + WORD $0xa940fbfd // ldp fp, lr, [sp, #8] + WORD $0x910083ff // add sp, sp, #32 + WORD $0xd65f03c0 // ret +LBB0_33: + WORD $0x528847ed // mov w13, #16959 + WORD $0x72a001ed // movk w13, #15, lsl #16 + WORD $0x6b0d013f // cmp w9, w13 + WORD $0x54000569 // b.ls LBB0_38 $172(%rip) + WORD $0x5280000e // mov w14, #0 +LBB0_35: +Lloh36: + WORD $0x10002e8d // adr x13, _Digits $1488(%rip) +Lloh37: + WORD $0x910001ad // add x13, x13, _Digits@PAGEOFF $0(%rip) + WORD $0x8b2c41ac // add x12, x13, w12, uxtw + WORD $0x3940058c // ldrb w12, [x12, #1] + WORD $0x110005cd // add w13, w14, #1 + WORD $0x382e490c // strb w12, [x8, w14, uxtw] +LBB0_36: +Lloh38: + WORD $0x10002dcc // adr x12, _Digits $1464(%rip) +Lloh39: + WORD $0x9100018c // add x12, x12, _Digits@PAGEOFF $0(%rip) + WORD $0x386b698e // ldrb w14, [x12, x11] + WORD $0x110005ac // add w12, w13, #1 + WORD $0x382d490e // strb w14, [x8, w13, uxtw] +LBB0_37: + WORD $0x5284e20d // mov w13, #10000 + WORD $0x1b0da549 // msub w9, w10, w13, w9 + WORD $0x53023d2a // ubfx w10, w9, #2, #14 + WORD $0x52828f6d // mov w13, #5243 + WORD $0x1b0d7d4a // mul w10, w10, w13 + WORD $0x53117d4a // lsr w10, w10, #17 + WORD $0x52800c8d // mov w13, #100 + WORD $0x1b0da549 // msub w9, w10, w13, w9 + WORD $0x92403d29 // and x9, x9, #0xffff + WORD $0xd37ff929 // lsl x9, x9, #1 +Lloh40: + WORD $0x10002bed // adr x13, _Digits $1404(%rip) +Lloh41: + WORD $0x910001ad // add x13, x13, _Digits@PAGEOFF $0(%rip) + WORD $0x8b2b21ab // add x11, x13, w11, uxth + WORD $0x3940056b // ldrb w11, [x11, #1] + WORD $0x8b2c4108 // add x8, x8, w12, uxtw + WORD $0x3900010b // strb w11, [x8] + WORD $0x786a59aa // ldrh w10, [x13, w10, uxtw #1] + WORD $0x7800110a // sturh w10, [x8, #1] + WORD $0x386969aa // ldrb w10, [x13, x9] + WORD $0x39000d0a // strb w10, [x8, #3] + WORD $0x927f3929 // and x9, x9, #0xfffe + WORD $0x8b0901a9 // add x9, x13, x9 + WORD $0x3940052a // ldrb w10, [x9, #1] + WORD $0x11001589 // add w9, w12, #5 + WORD $0x3900110a // strb w10, [x8, #4] + WORD $0x11000528 // add w8, w9, #1 + WORD $0xaa0803e0 // mov x0, x8 + WORD $0xa940fbfd // ldp fp, lr, [sp, #8] + WORD $0x910083ff // add sp, sp, #32 + WORD $0xd65f03c0 // ret +LBB0_38: + WORD $0x5280000d // mov w13, #0 + WORD $0x5280000c // mov w12, #0 + WORD $0x53057d2e // lsr w14, w9, #5 + WORD $0x7130d5df // cmp w14, #3125 + WORD $0x54fffb22 // b.hs LBB0_36 $-156(%rip) + WORD $0x17ffffdd // b LBB0_37 $-140(%rip) +LBB0_39: + WORD $0xd2adf82c // mov x12, #1874919424 + WORD $0xf2d0de4c // movk x12, #34546, lsl #32 + WORD $0xf2e0046c // movk x12, #35, lsl #48 + WORD $0xeb0c013f // cmp x9, x12 + WORD $0x540019e2 // b.hs LBB0_47 $828(%rip) + WORD $0xd299dfab // mov x11, #52989 + WORD $0xf2b08c2b // movk x11, #33889, lsl #16 + WORD $0xf2cee22b // movk x11, #30481, lsl #32 + WORD $0xf2f5798b // movk x11, #43980, lsl #48 + WORD $0x9bcb7d2b // umulh x11, x9, x11 + WORD $0xd35afd6b // lsr x11, x11, #26 + WORD $0x1b0aa569 // msub w9, w11, w10, w9 + WORD $0x6f00e400 // movi.2d v0, #0000000000000000 + WORD $0x6f00e401 // movi.2d v1, #0000000000000000 + WORD $0x4e041d61 // mov.s v1[0], w11 + WORD $0x0ea12822 // xtn.2s v2, v1 + WORD $0x5282eb2a // mov w10, #5977 + WORD $0x72ba36ea // movk w10, #53687, lsl #16 + WORD $0x0e040d43 // dup.2s v3, w10 + WORD $0x2ea3c042 // umull.2d v2, v2, v3 + WORD $0x6f530442 // ushr.2d v2, v2, #45 + WORD $0x0ea12844 // xtn.2s v4, v2 + WORD $0x5284e20a // mov w10, #10000 + WORD $0x0e040d45 // dup.2s v5, w10 + WORD $0x2ea5c084 // umull.2d v4, v4, v5 + WORD $0x6ea48421 // sub.4s v1, v1, v4 + WORD $0x4e413841 // zip1.8h v1, v2, v1 + WORD $0x4f425421 // shl.2d v1, v1, #2 + WORD $0x4e413821 // zip1.8h v1, v1, v1 + WORD $0x4e813821 // zip1.4s v1, v1, v1 +Lloh42: + WORD $0x10ffcc2a // adr x10, lCPI0_0 $-1660(%rip) +Lloh43: + WORD $0xfd400142 // ldr d2, [x10, lCPI0_0@PAGEOFF] $0(%rip) + WORD $0x2e62c024 // umull.4s v4, v1, v2 + WORD $0x6e014021 // ext.16b v1, v1, v1, #8 + WORD $0x2e62c021 // umull.4s v1, v1, v2 + WORD $0x4e415881 // uzp2.8h v1, v4, v1 +Lloh44: + WORD $0x10ffcbaa // adr x10, lCPI0_1 $-1676(%rip) +Lloh45: + WORD $0xfd400144 // ldr d4, [x10, lCPI0_1@PAGEOFF] $0(%rip) + WORD $0x2e64c026 // umull.4s v6, v1, v4 + WORD $0x6e014021 // ext.16b v1, v1, v1, #8 + WORD $0x2e64c021 // umull.4s v1, v1, v4 + WORD $0x4e4158c1 // uzp2.8h v1, v6, v1 + WORD $0x4f008546 // movi.8h v6, #10 + WORD $0x4e669c27 // mul.8h v7, v1, v6 + WORD $0x4f5054e7 // shl.2d v7, v7, #16 + WORD $0x6e678421 // sub.8h v1, v1, v7 + WORD $0x4e041d20 // mov.s v0[0], w9 + WORD $0x0ea12807 // xtn.2s v7, v0 + WORD $0x2ea3c0e3 // umull.2d v3, v7, v3 + WORD $0x6f530463 // ushr.2d v3, v3, #45 + WORD $0x0ea12867 // xtn.2s v7, v3 + WORD $0x2ea5c0e5 // umull.2d v5, v7, v5 + WORD $0x6ea58400 // sub.4s v0, v0, v5 + WORD $0x4e403860 // zip1.8h v0, v3, v0 + WORD $0x4f425400 // shl.2d v0, v0, #2 + WORD $0x4e403800 // zip1.8h v0, v0, v0 + WORD $0x4e803800 // zip1.4s v0, v0, v0 + WORD $0x2e62c003 // umull.4s v3, v0, v2 + WORD $0x6e004000 // ext.16b v0, v0, v0, #8 + WORD $0x2e62c000 // umull.4s v0, v0, v2 + WORD $0x4e405860 // uzp2.8h v0, v3, v0 + WORD $0x2e64c002 // umull.4s v2, v0, v4 + WORD $0x6e004000 // ext.16b v0, v0, v0, #8 + WORD $0x2e64c000 // umull.4s v0, v0, v4 + WORD $0x4e405840 // uzp2.8h v0, v2, v0 + WORD $0x4e669c02 // mul.8h v2, v0, v6 + WORD $0x4f505442 // shl.2d v2, v2, #16 + WORD $0x6e628400 // sub.8h v0, v0, v2 + WORD $0x2e212821 // sqxtun.8b v1, v1 + WORD $0x6e212801 // sqxtun2.16b v1, v0 + WORD $0x4f01e600 // movi.16b v0, #48 + WORD $0x4e208420 // add.16b v0, v1, v0 + WORD $0x4e209821 // cmeq.16b v1, v1, #0 +Lloh46: + WORD $0x10ffc749 // adr x9, lCPI0_2 $-1816(%rip) +Lloh47: + WORD $0x3dc00122 // ldr q2, [x9, lCPI0_2@PAGEOFF] $0(%rip) + WORD $0x4e221c21 // and.16b v1, v1, v2 +Lloh48: + WORD $0x10ffc769 // adr x9, lCPI0_3 $-1812(%rip) +Lloh49: + WORD $0x3dc00122 // ldr q2, [x9, lCPI0_3@PAGEOFF] $0(%rip) + WORD $0x4e020021 // tbl.16b v1, { v1 }, v2 + WORD $0x4e71b821 // addv.8h h1, v1 + WORD $0x1e260029 // fmov w9, s1 + WORD $0x2a2903e9 // mvn w9, w9 + WORD $0x32114129 // orr w9, w9, #0xffff8000 + WORD $0x5ac00129 // rbit w9, w9 + WORD $0x5ac01129 // clz w9, w9 +Lloh50: + WORD $0x1000244a // adr x10, _VecShiftShuffles $1160(%rip) +Lloh51: + WORD $0x9100014a // add x10, x10, _VecShiftShuffles@PAGEOFF $0(%rip) + WORD $0x3ce95941 // ldr q1, [x10, w9, uxtw #4] + WORD $0x4f04e5e2 // movi.16b v2, #143 + WORD $0x4e221c21 // and.16b v1, v1, v2 + WORD $0x4e010000 // tbl.16b v0, { v0 }, v1 + WORD $0x3d800100 // str q0, [x8] + WORD $0x52800208 // mov w8, #16 + WORD $0x4b090109 // sub w9, w8, w9 + WORD $0x11000528 // add w8, w9, #1 + WORD $0xaa0803e0 // mov x0, x8 + WORD $0xa940fbfd // ldp fp, lr, [sp, #8] + WORD $0x910083ff // add sp, sp, #32 + WORD $0xd65f03c0 // ret +LBB0_41: + WORD $0xd28f0ae9 // mov x9, #30807 + WORD $0xf2b62269 // movk x9, #45331, lsl #16 + WORD $0xf2cca5e9 // movk x9, #25903, lsl #32 + WORD $0xf2e734a9 // movk x9, #14757, lsl #48 + WORD $0x9bc97c29 // umulh x9, x1, x9 + WORD $0xd373fd2b // lsr x11, x9, #51 + WORD $0x7100257f // cmp w11, #9 + WORD $0x540000a8 // b.hi LBB0_43 $20(%rip) + WORD $0x1100c169 // add w9, w11, #48 + WORD $0x39000009 // strb w9, [x0] + WORD $0x52800029 // mov w9, #1 + WORD $0x1400001b // b LBB0_46 $108(%rip) +LBB0_43: + WORD $0x71018d7f // cmp w11, #99 + WORD $0x540000e8 // b.hi LBB0_45 $28(%rip) +Lloh52: + WORD $0x10001a89 // adr x9, _Digits $848(%rip) +Lloh53: + WORD $0x91000129 // add x9, x9, _Digits@PAGEOFF $0(%rip) + WORD $0x786b5929 // ldrh w9, [x9, w11, uxtw #1] + WORD $0x79000009 // strh w9, [x0] + WORD $0x52800049 // mov w9, #2 + WORD $0x14000013 // b LBB0_46 $76(%rip) +LBB0_45: + WORD $0x5280a3e9 // mov w9, #1311 + WORD $0x1b097d69 // mul w9, w11, w9 + WORD $0x53117d29 // lsr w9, w9, #17 + WORD $0x321c052c // orr w12, w9, #0x30 + WORD $0x3900000c // strb w12, [x0] + WORD $0x52800c8c // mov w12, #100 + WORD $0x1b0cad29 // msub w9, w9, w12, w11 + WORD $0x92403d29 // and x9, x9, #0xffff + WORD $0xd37ff929 // lsl x9, x9, #1 +Lloh54: + WORD $0x100018ac // adr x12, _Digits $788(%rip) +Lloh55: + WORD $0x9100018c // add x12, x12, _Digits@PAGEOFF $0(%rip) + WORD $0x3869698d // ldrb w13, [x12, x9] + WORD $0x3900040d // strb w13, [x0, #1] + WORD $0x927f3929 // and x9, x9, #0xfffe + WORD $0x8b090189 // add x9, x12, x9 + WORD $0x39400529 // ldrb w9, [x9, #1] + WORD $0x39000809 // strb w9, [x0, #2] + WORD $0x52800069 // mov w9, #3 +LBB0_46: + WORD $0x9b0a856a // msub x10, x11, x10, x1 + WORD $0xd299dfab // mov x11, #52989 + WORD $0xf2b08c2b // movk x11, #33889, lsl #16 + WORD $0xf2cee22b // movk x11, #30481, lsl #32 + WORD $0xf2f5798b // movk x11, #43980, lsl #48 + WORD $0x9bcb7d4b // umulh x11, x10, x11 + WORD $0xd35afd6b // lsr x11, x11, #26 + WORD $0x6f00e400 // movi.2d v0, #0000000000000000 + WORD $0x6f00e401 // movi.2d v1, #0000000000000000 + WORD $0x4e041d61 // mov.s v1[0], w11 + WORD $0x5282eb2c // mov w12, #5977 + WORD $0x72ba36ec // movk w12, #53687, lsl #16 + WORD $0x0e040d82 // dup.2s v2, w12 + WORD $0x0ea12823 // xtn.2s v3, v1 + WORD $0x2ea2c063 // umull.2d v3, v3, v2 + WORD $0x6f530463 // ushr.2d v3, v3, #45 + WORD $0x5284e20c // mov w12, #10000 + WORD $0x0e040d84 // dup.2s v4, w12 + WORD $0x0ea12865 // xtn.2s v5, v3 + WORD $0x2ea4c0a5 // umull.2d v5, v5, v4 + WORD $0x6ea58421 // sub.4s v1, v1, v5 + WORD $0x4e413861 // zip1.8h v1, v3, v1 + WORD $0x4f425421 // shl.2d v1, v1, #2 + WORD $0x4e413821 // zip1.8h v1, v1, v1 + WORD $0x4e813821 // zip1.4s v1, v1, v1 +Lloh56: + WORD $0x10ffbbac // adr x12, lCPI0_0 $-2188(%rip) +Lloh57: + WORD $0xfd400183 // ldr d3, [x12, lCPI0_0@PAGEOFF] $0(%rip) + WORD $0x2e63c025 // umull.4s v5, v1, v3 + WORD $0x6e014021 // ext.16b v1, v1, v1, #8 + WORD $0x2e63c021 // umull.4s v1, v1, v3 + WORD $0x4e4158a1 // uzp2.8h v1, v5, v1 +Lloh58: + WORD $0x10ffbb2c // adr x12, lCPI0_1 $-2204(%rip) +Lloh59: + WORD $0xfd400185 // ldr d5, [x12, lCPI0_1@PAGEOFF] $0(%rip) + WORD $0x2e65c026 // umull.4s v6, v1, v5 + WORD $0x6e014021 // ext.16b v1, v1, v1, #8 + WORD $0x2e65c021 // umull.4s v1, v1, v5 + WORD $0x4e4158c1 // uzp2.8h v1, v6, v1 + WORD $0x4f008546 // movi.8h v6, #10 + WORD $0x4e669c27 // mul.8h v7, v1, v6 + WORD $0x4f5054e7 // shl.2d v7, v7, #16 + WORD $0x6e678421 // sub.8h v1, v1, v7 + WORD $0x1b08a968 // msub w8, w11, w8, w10 + WORD $0x4e041d00 // mov.s v0[0], w8 + WORD $0x0ea12807 // xtn.2s v7, v0 + WORD $0x2ea2c0e2 // umull.2d v2, v7, v2 + WORD $0x6f530442 // ushr.2d v2, v2, #45 + WORD $0x0ea12847 // xtn.2s v7, v2 + WORD $0x2ea4c0e4 // umull.2d v4, v7, v4 + WORD $0x6ea48400 // sub.4s v0, v0, v4 + WORD $0x4e403840 // zip1.8h v0, v2, v0 + WORD $0x4f425400 // shl.2d v0, v0, #2 + WORD $0x4e403800 // zip1.8h v0, v0, v0 + WORD $0x4e803800 // zip1.4s v0, v0, v0 + WORD $0x2e63c002 // umull.4s v2, v0, v3 + WORD $0x6e004000 // ext.16b v0, v0, v0, #8 + WORD $0x2e63c000 // umull.4s v0, v0, v3 + WORD $0x4e405840 // uzp2.8h v0, v2, v0 + WORD $0x2e65c002 // umull.4s v2, v0, v5 + WORD $0x6e004000 // ext.16b v0, v0, v0, #8 + WORD $0x2e65c000 // umull.4s v0, v0, v5 + WORD $0x4e405840 // uzp2.8h v0, v2, v0 + WORD $0x4e669c02 // mul.8h v2, v0, v6 + WORD $0x4f505442 // shl.2d v2, v2, #16 + WORD $0x6e628400 // sub.8h v0, v0, v2 + WORD $0x2e212821 // sqxtun.8b v1, v1 + WORD $0x6e212801 // sqxtun2.16b v1, v0 + WORD $0x4f01e600 // movi.16b v0, #48 + WORD $0x4e208420 // add.16b v0, v1, v0 + WORD $0x3ca94800 // str q0, [x0, w9, uxtw] + WORD $0x321c0128 // orr w8, w9, #0x10 + WORD $0xaa0803e0 // mov x0, x8 + WORD $0xa940fbfd // ldp fp, lr, [sp, #8] + WORD $0x910083ff // add sp, sp, #32 + WORD $0xd65f03c0 // ret +LBB0_47: + WORD $0xd28f0aeb // mov x11, #30807 + WORD $0xf2b6226b // movk x11, #45331, lsl #16 + WORD $0xf2cca5eb // movk x11, #25903, lsl #32 + WORD $0xf2e734ab // movk x11, #14757, lsl #48 + WORD $0x9bcb7d2b // umulh x11, x9, x11 + WORD $0xd373fd6d // lsr x13, x11, #51 + WORD $0x710025bf // cmp w13, #9 + WORD $0x540000a8 // b.hi LBB0_49 $20(%rip) + WORD $0x1100c1ab // add w11, w13, #48 + WORD $0x3900010b // strb w11, [x8] + WORD $0x5280002b // mov w11, #1 + WORD $0x1400001c // b LBB0_52 $112(%rip) +LBB0_49: + WORD $0x71018dbf // cmp w13, #99 + WORD $0x540000e8 // b.hi LBB0_51 $28(%rip) +Lloh60: + WORD $0x10000c8b // adr x11, _Digits $400(%rip) +Lloh61: + WORD $0x9100016b // add x11, x11, _Digits@PAGEOFF $0(%rip) + WORD $0x786d596b // ldrh w11, [x11, w13, uxtw #1] + WORD $0x7800100b // sturh w11, [x0, #1] + WORD $0x5280004b // mov w11, #2 + WORD $0x14000014 // b LBB0_52 $80(%rip) +LBB0_51: + WORD $0x53023dab // ubfx w11, w13, #2, #14 + WORD $0x52828f6e // mov w14, #5243 + WORD $0x1b0e7d6b // mul w11, w11, w14 + WORD $0x53117d6b // lsr w11, w11, #17 + WORD $0x321c056e // orr w14, w11, #0x30 + WORD $0x3900040e // strb w14, [x0, #1] + WORD $0x52800c8e // mov w14, #100 + WORD $0x1b0eb56b // msub w11, w11, w14, w13 + WORD $0x92403d6b // and x11, x11, #0xffff + WORD $0xd37ff96b // lsl x11, x11, #1 +Lloh62: + WORD $0x10000a8e // adr x14, _Digits $336(%rip) +Lloh63: + WORD $0x910001ce // add x14, x14, _Digits@PAGEOFF $0(%rip) + WORD $0x386b69cf // ldrb w15, [x14, x11] + WORD $0x3900080f // strb w15, [x0, #2] + WORD $0x927f396b // and x11, x11, #0xfffe + WORD $0x8b0b01cb // add x11, x14, x11 + WORD $0x3940056b // ldrb w11, [x11, #1] + WORD $0x39000c0b // strb w11, [x0, #3] + WORD $0x5280006b // mov w11, #3 +LBB0_52: + WORD $0x9b0ca5a9 // msub x9, x13, x12, x9 + WORD $0xd299dfac // mov x12, #52989 + WORD $0xf2b08c2c // movk x12, #33889, lsl #16 + WORD $0xf2cee22c // movk x12, #30481, lsl #32 + WORD $0xf2f5798c // movk x12, #43980, lsl #48 + WORD $0x9bcc7d2c // umulh x12, x9, x12 + WORD $0xd35afd8c // lsr x12, x12, #26 + WORD $0x6f00e400 // movi.2d v0, #0000000000000000 + WORD $0x6f00e401 // movi.2d v1, #0000000000000000 + WORD $0x4e041d81 // mov.s v1[0], w12 + WORD $0x5282eb2d // mov w13, #5977 + WORD $0x72ba36ed // movk w13, #53687, lsl #16 + WORD $0x0e040da2 // dup.2s v2, w13 + WORD $0x0ea12823 // xtn.2s v3, v1 + WORD $0x2ea2c063 // umull.2d v3, v3, v2 + WORD $0x6f530463 // ushr.2d v3, v3, #45 + WORD $0x5284e20d // mov w13, #10000 + WORD $0x0e040da4 // dup.2s v4, w13 + WORD $0x0ea12865 // xtn.2s v5, v3 + WORD $0x2ea4c0a5 // umull.2d v5, v5, v4 + WORD $0x6ea58421 // sub.4s v1, v1, v5 + WORD $0x4e413861 // zip1.8h v1, v3, v1 + WORD $0x4f425421 // shl.2d v1, v1, #2 + WORD $0x4e413821 // zip1.8h v1, v1, v1 + WORD $0x4e813821 // zip1.4s v1, v1, v1 +Lloh64: + WORD $0x10ffad8d // adr x13, lCPI0_0 $-2640(%rip) +Lloh65: + WORD $0xfd4001a3 // ldr d3, [x13, lCPI0_0@PAGEOFF] $0(%rip) + WORD $0x2e63c025 // umull.4s v5, v1, v3 + WORD $0x6e014021 // ext.16b v1, v1, v1, #8 + WORD $0x2e63c021 // umull.4s v1, v1, v3 + WORD $0x4e4158a1 // uzp2.8h v1, v5, v1 +Lloh66: + WORD $0x10ffad0d // adr x13, lCPI0_1 $-2656(%rip) +Lloh67: + WORD $0xfd4001a5 // ldr d5, [x13, lCPI0_1@PAGEOFF] $0(%rip) + WORD $0x2e65c026 // umull.4s v6, v1, v5 + WORD $0x6e014021 // ext.16b v1, v1, v1, #8 + WORD $0x2e65c021 // umull.4s v1, v1, v5 + WORD $0x4e4158c1 // uzp2.8h v1, v6, v1 + WORD $0x4f008546 // movi.8h v6, #10 + WORD $0x4e669c27 // mul.8h v7, v1, v6 + WORD $0x4f5054e7 // shl.2d v7, v7, #16 + WORD $0x6e678421 // sub.8h v1, v1, v7 + WORD $0x1b0aa589 // msub w9, w12, w10, w9 + WORD $0x4e041d20 // mov.s v0[0], w9 + WORD $0x0ea12807 // xtn.2s v7, v0 + WORD $0x2ea2c0e2 // umull.2d v2, v7, v2 + WORD $0x6f530442 // ushr.2d v2, v2, #45 + WORD $0x0ea12847 // xtn.2s v7, v2 + WORD $0x2ea4c0e4 // umull.2d v4, v7, v4 + WORD $0x6ea48400 // sub.4s v0, v0, v4 + WORD $0x4e403840 // zip1.8h v0, v2, v0 + WORD $0x4f425400 // shl.2d v0, v0, #2 + WORD $0x4e403800 // zip1.8h v0, v0, v0 + WORD $0x4e803800 // zip1.4s v0, v0, v0 + WORD $0x2e63c002 // umull.4s v2, v0, v3 + WORD $0x6e004000 // ext.16b v0, v0, v0, #8 + WORD $0x2e63c000 // umull.4s v0, v0, v3 + WORD $0x4e405840 // uzp2.8h v0, v2, v0 + WORD $0x2e65c002 // umull.4s v2, v0, v5 + WORD $0x6e004000 // ext.16b v0, v0, v0, #8 + WORD $0x2e65c000 // umull.4s v0, v0, v5 + WORD $0x4e405840 // uzp2.8h v0, v2, v0 + WORD $0x4e669c02 // mul.8h v2, v0, v6 + WORD $0x4f505442 // shl.2d v2, v2, #16 + WORD $0x6e628400 // sub.8h v0, v0, v2 + WORD $0x2e212821 // sqxtun.8b v1, v1 + WORD $0x6e212801 // sqxtun2.16b v1, v0 + WORD $0x4f01e600 // movi.16b v0, #48 + WORD $0x4e208420 // add.16b v0, v1, v0 + WORD $0x3cab4900 // str q0, [x8, w11, uxtw] + WORD $0x321c0169 // orr w9, w11, #0x10 + WORD $0x11000528 // add w8, w9, #1 + WORD $0xaa0803e0 // mov x0, x8 + WORD $0xa940fbfd // ldp fp, lr, [sp, #8] + WORD $0x910083ff // add sp, sp, #32 + WORD $0xd65f03c0 // ret +_Digits: + WORD $0x31303030 // .ascii 4, '0001020304050607' + WORD $0x33303230 // .ascii 4, '0203040506070809' + WORD $0x35303430 // .ascii 4, '0405060708091011' + WORD $0x37303630 // .ascii 4, '0607080910111213' + WORD $0x39303830 // .ascii 4, '0809101112131415' + WORD $0x31313031 // .ascii 4, '1011121314151617' + WORD $0x33313231 // .ascii 4, '1213141516171819' + WORD $0x35313431 // .ascii 4, '1415161718192021' + WORD $0x37313631 // .ascii 4, '1617181920212223' + WORD $0x39313831 // .ascii 4, '1819202122232425' + WORD $0x31323032 // .ascii 4, '2021222324252627' + WORD $0x33323232 // .ascii 4, '2223242526272829' + WORD $0x35323432 // .ascii 4, '2425262728293031' + WORD $0x37323632 // .ascii 4, '2627282930313233' + WORD $0x39323832 // .ascii 4, '2829303132333435' + WORD $0x31333033 // .ascii 4, '3031323334353637' + WORD $0x33333233 // .ascii 4, '3233343536373839' + WORD $0x35333433 // .ascii 4, '3435363738394041' + WORD $0x37333633 // .ascii 4, '3637383940414243' + WORD $0x39333833 // .ascii 4, '3839404142434445' + WORD $0x31343034 // .ascii 4, '4041424344454647' + WORD $0x33343234 // .ascii 4, '4243444546474849' + WORD $0x35343434 // .ascii 4, '4445464748495051' + WORD $0x37343634 // .ascii 4, '4647484950515253' + WORD $0x39343834 // .ascii 4, '4849505152535455' + WORD $0x31353035 // .ascii 4, '5051525354555657' + WORD $0x33353235 // .ascii 4, '5253545556575859' + WORD $0x35353435 // .ascii 4, '5455565758596061' + WORD $0x37353635 // .ascii 4, '5657585960616263' + WORD $0x39353835 // .ascii 4, '5859606162636465' + WORD $0x31363036 // .ascii 4, '6061626364656667' + WORD $0x33363236 // .ascii 4, '6263646566676869' + WORD $0x35363436 // .ascii 4, '6465666768697071' + WORD $0x37363636 // .ascii 4, '6667686970717273' + WORD $0x39363836 // .ascii 4, '6869707172737475' + WORD $0x31373037 // .ascii 4, '7071727374757677' + WORD $0x33373237 // .ascii 4, '7273747576777879' + WORD $0x35373437 // .ascii 4, '7475767778798081' + WORD $0x37373637 // .ascii 4, '7677787980818283' + WORD $0x39373837 // .ascii 4, '7879808182838485' + WORD $0x31383038 // .ascii 4, '8081828384858687' + WORD $0x33383238 // .ascii 4, '8283848586878889' + WORD $0x35383438 // .ascii 4, '8485868788899091' + WORD $0x37383638 // .ascii 4, '8687888990919293' + WORD $0x39383838 // .ascii 4, '8889909192939495' + WORD $0x31393039 // .ascii 4, '9091929394959697' + WORD $0x33393239 // .ascii 4, '9293949596979899' + WORD $0x35393439 // .ascii 4, '949596979899' + WORD $0x37393639 // .ascii 4, '96979899' + WORD $0x39393839 // .ascii 4, '9899' + // .p2align 4, 0x00 +_VecShiftShuffles: + WORD $0x03020100 // .ascii 4, '\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f' + WORD $0x07060504 // .ascii 4, '\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\x01\x02\x03\x04' + WORD $0x0b0a0908 // .ascii 4, '\x08\t\n\x0b\x0c\r\x0e\x0f\x01\x02\x03\x04\x05\x06\x07\x08' + WORD $0x0f0e0d0c // .ascii 4, '\x0c\r\x0e\x0f\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c' + WORD $0x04030201 // .ascii 4, '\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff' + WORD $0x08070605 // .ascii 4, '\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\x02\x03\x04\x05' + WORD $0x0c0b0a09 // .ascii 4, '\t\n\x0b\x0c\r\x0e\x0f\xff\x02\x03\x04\x05\x06\x07\x08\t' + WORD $0xff0f0e0d // .ascii 4, '\r\x0e\x0f\xff\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r' + WORD $0x05040302 // .ascii 4, '\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff' + WORD $0x09080706 // .ascii 4, '\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\x03\x04\x05\x06' + WORD $0x0d0c0b0a // .ascii 4, '\n\x0b\x0c\r\x0e\x0f\xff\xff\x03\x04\x05\x06\x07\x08\t\n' + WORD $0xffff0f0e // .ascii 4, '\x0e\x0f\xff\xff\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e' + WORD $0x06050403 // .ascii 4, '\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff' + WORD $0x0a090807 // .ascii 4, '\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\x04\x05\x06\x07' + WORD $0x0e0d0c0b // .ascii 4, '\x0b\x0c\r\x0e\x0f\xff\xff\xff\x04\x05\x06\x07\x08\t\n\x0b' + WORD $0xffffff0f // .ascii 4, '\x0f\xff\xff\xff\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f' + WORD $0x07060504 // .ascii 4, '\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff' + WORD $0x0b0a0908 // .ascii 4, '\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\x05\x06\x07\x08' + WORD $0x0f0e0d0c // .ascii 4, '\x0c\r\x0e\x0f\xff\xff\xff\xff\x05\x06\x07\x08\t\n\x0b\x0c' + WORD $0xffffffff // .ascii 4, '\xff\xff\xff\xff\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff' + WORD $0x08070605 // .ascii 4, '\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff' + WORD $0x0c0b0a09 // .ascii 4, '\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff\x06\x07\x08\t' + WORD $0xff0f0e0d // .ascii 4, '\r\x0e\x0f\xff\xff\xff\xff\xff\x06\x07\x08\t\n\x0b\x0c\r' + WORD $0xffffffff // .ascii 4, '\xff\xff\xff\xff\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff' + WORD $0x09080706 // .ascii 4, '\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff\xff' + WORD $0x0d0c0b0a // .ascii 4, '\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff\xff\x07\x08\t\n' + WORD $0xffff0f0e // .ascii 4, '\x0e\x0f\xff\xff\xff\xff\xff\xff\x07\x08\t\n\x0b\x0c\r\x0e' + WORD $0xffffffff // .ascii 4, '\xff\xff\xff\xff\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff' + WORD $0x0a090807 // .ascii 4, '\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff\xff\xff' + WORD $0x0e0d0c0b // .ascii 4, '\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff\xff\xff\x08\t\n\x0b' + WORD $0xffffff0f // .ascii 4, '\x0f\xff\xff\xff\xff\xff\xff\xff\x08\t\n\x0b\x0c\r\x0e\x0f' + WORD $0xffffffff // .ascii 4, '\xff\xff\xff\xff\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff' + WORD $0x0b0a0908 // .ascii 4, '\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff\xff\xff\xff' + WORD $0x0f0e0d0c // .ascii 4, '\x0c\r\x0e\x0f\xff\xff\xff\xff\xff\xff\xff\xff' + WORD $0xffffffff // .ascii 4, '\xff\xff\xff\xff\xff\xff\xff\xff' + WORD $0xffffffff // .ascii 4, '\xff\xff\xff\xff' + +TEXT ·__i64toa(SB), NOSPLIT, $0-24 + NO_LOCAL_POINTERS + +_entry: + MOVD 16(g), R16 + SUB $96, RSP, R17 + CMP R16, R17 + BLS _stack_grow + +_i64toa: + MOVD out+0(FP), R0 + MOVD val+8(FP), R1 + MOVD ·_subr__i64toa(SB), R11 + WORD $0x1000005e // adr x30, .+8 + JMP (R11) + MOVD R0, ret+16(FP) + RET + +_stack_grow: + MOVD R30, R3 + CALL runtime·morestack_noctxt<>(SB) + JMP _entry diff --git a/vendor/github.com/bytedance/sonic/internal/native/neon/i64toa_subr_arm64.go b/vendor/github.com/bytedance/sonic/internal/native/neon/i64toa_subr_arm64.go new file mode 100644 index 000000000..7c73cb380 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/neon/i64toa_subr_arm64.go @@ -0,0 +1,25 @@ +// +build !noasm !appengine +// Code generated by asm2asm, DO NOT EDIT. + +package neon + +//go:nosplit +//go:noescape +//goland:noinspection ALL +func __i64toa_entry__() uintptr + +var ( + _subr__i64toa uintptr = __i64toa_entry__() + 48 +) + +const ( + _stack__i64toa = 32 +) + +var ( + _ = _subr__i64toa +) + +const ( + _ = _stack__i64toa +) diff --git a/vendor/github.com/bytedance/sonic/internal/native/neon/lspace_arm64.go b/vendor/github.com/bytedance/sonic/internal/native/neon/lspace_arm64.go new file mode 100644 index 000000000..e6af97109 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/neon/lspace_arm64.go @@ -0,0 +1,37 @@ +// Code generated by Makefile, DO NOT EDIT. + +// Code generated by Makefile, DO NOT EDIT. + +/* + * Copyright 2021 ByteDance 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 neon + +import ( + `unsafe` + + // `github.com/bytedance/sonic/internal/native/types` +) + +//go:nosplit +func lspace(sp unsafe.Pointer, nb int, off int) (ret int) { + return __lspace(sp, nb, off) +} + +//go:nosplit +//go:noescape +//goland:noinspection GoUnusedParameter +func __lspace(sp unsafe.Pointer, nb int, off int) (ret int) diff --git a/vendor/github.com/bytedance/sonic/internal/native/neon/lspace_arm64.s b/vendor/github.com/bytedance/sonic/internal/native/neon/lspace_arm64.s new file mode 100644 index 000000000..c02f087eb --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/neon/lspace_arm64.s @@ -0,0 +1,68 @@ +// +build !noasm !appengine +// Code generated by asm2asm, DO NOT EDIT. + +#include "go_asm.h" +#include "funcdata.h" +#include "textflag.h" + +TEXT ·__lspace_entry__(SB), NOSPLIT, $16 + NO_LOCAL_POINTERS + WORD $0x100000a0 // adr x0, .+20 + MOVD R0, ret(FP) + RET + // .p2align 2, 0x00 +_lspace: + WORD $0xd10083ff // sub sp, sp, #32 + WORD $0xa900fbfd // stp fp, lr, [sp, #8] + WORD $0xa93ffbfd // stp fp, lr, [sp, #-8] + WORD $0xd10023fd // sub fp, sp, #8 + WORD $0xeb02003f // cmp x1, x2 + WORD $0x54000061 // b.ne LBB0_2 $12(%rip) + WORD $0x8b020008 // add x8, x0, x2 + WORD $0x1400000e // b LBB0_5 $56(%rip) +LBB0_2: + WORD $0x8b010008 // add x8, x0, x1 + WORD $0x52800029 // mov w9, #1 + WORD $0xd284c00a // mov x10, #9728 + WORD $0xf2c0002a // movk x10, #1, lsl #32 +LBB0_3: + WORD $0x3862680b // ldrb w11, [x0, x2] + WORD $0x7100817f // cmp w11, #32 + WORD $0x9acb212b // lsl x11, x9, x11 + WORD $0x8a0a016b // and x11, x11, x10 + WORD $0xfa409964 // ccmp x11, #0, #4, ls + WORD $0x540000a0 // b.eq LBB0_6 $20(%rip) + WORD $0x91000442 // add x2, x2, #1 + WORD $0xeb02003f // cmp x1, x2 + WORD $0x54ffff01 // b.ne LBB0_3 $-32(%rip) +LBB0_5: + WORD $0xcb000102 // sub x2, x8, x0 +LBB0_6: + WORD $0xaa0203e0 // mov x0, x2 + WORD $0xa940fbfd // ldp fp, lr, [sp, #8] + WORD $0x910083ff // add sp, sp, #32 + WORD $0xd65f03c0 // ret + +TEXT ·__lspace(SB), NOSPLIT, $0-32 + NO_LOCAL_POINTERS + +_entry: + MOVD 16(g), R16 + SUB $96, RSP, R17 + CMP R16, R17 + BLS _stack_grow + +_lspace: + MOVD sp+0(FP), R0 + MOVD nb+8(FP), R1 + MOVD off+16(FP), R2 + MOVD ·_subr__lspace(SB), R11 + WORD $0x1000005e // adr x30, .+8 + JMP (R11) + MOVD R0, ret+24(FP) + RET + +_stack_grow: + MOVD R30, R3 + CALL runtime·morestack_noctxt<>(SB) + JMP _entry diff --git a/vendor/github.com/bytedance/sonic/internal/native/neon/lspace_subr_arm64.go b/vendor/github.com/bytedance/sonic/internal/native/neon/lspace_subr_arm64.go new file mode 100644 index 000000000..e8dc6d56f --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/neon/lspace_subr_arm64.go @@ -0,0 +1,25 @@ +// +build !noasm !appengine +// Code generated by asm2asm, DO NOT EDIT. + +package neon + +//go:nosplit +//go:noescape +//goland:noinspection ALL +func __lspace_entry__() uintptr + +var ( + _subr__lspace uintptr = __lspace_entry__() + 0 +) + +const ( + _stack__lspace = 32 +) + +var ( + _ = _subr__lspace +) + +const ( + _ = _stack__lspace +) diff --git a/vendor/github.com/bytedance/sonic/internal/native/neon/native_export_arm64.go b/vendor/github.com/bytedance/sonic/internal/native/neon/native_export_arm64.go new file mode 100644 index 000000000..8e53bf55e --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/neon/native_export_arm64.go @@ -0,0 +1,49 @@ +// Code generated by Makefile, DO NOT EDIT. + +/* + * Copyright 2021 ByteDance 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 neon + +var ( + S_f64toa = _subr__f64toa + S_f32toa = _subr__f32toa + S_i64toa = _subr__i64toa + S_u64toa = _subr__u64toa + S_lspace = _subr__lspace +) + +var ( + S_quote = _subr__quote + S_unquote = _subr__unquote +) + +var ( + S_value = _subr__value + S_vstring = _subr__vstring + S_vnumber = _subr__vnumber + S_vsigned = _subr__vsigned + S_vunsigned = _subr__vunsigned +) + +var ( + S_skip_one = _subr__skip_one + S_skip_one_fast = _subr__skip_one_fast + S_skip_array = _subr__skip_array + S_skip_object = _subr__skip_object + S_skip_number = _subr__skip_number + S_get_by_path = _subr__get_by_path +) diff --git a/vendor/github.com/bytedance/sonic/internal/native/neon/quote_arm64.go b/vendor/github.com/bytedance/sonic/internal/native/neon/quote_arm64.go new file mode 100644 index 000000000..b6ca0b1ed --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/neon/quote_arm64.go @@ -0,0 +1,37 @@ +// Code generated by Makefile, DO NOT EDIT. + +// Code generated by Makefile, DO NOT EDIT. + +/* + * Copyright 2021 ByteDance 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 neon + +import ( + `unsafe` + + // `github.com/bytedance/sonic/internal/native/types` +) + +//go:nosplit +func quote(sp unsafe.Pointer, nb int, dp unsafe.Pointer, dn *int, flags uint64) (ret int) { + return __quote(sp, nb, dp, dn, flags) +} + +//go:nosplit +//go:noescape +//goland:noinspection GoUnusedParameter +func __quote(sp unsafe.Pointer, nb int, dp unsafe.Pointer, dn *int, flags uint64) (ret int) diff --git a/vendor/github.com/bytedance/sonic/internal/native/neon/quote_arm64.s b/vendor/github.com/bytedance/sonic/internal/native/neon/quote_arm64.s new file mode 100644 index 000000000..0e19a9ba9 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/neon/quote_arm64.s @@ -0,0 +1,2563 @@ +// +build !noasm !appengine +// Code generated by asm2asm, DO NOT EDIT. + +#include "go_asm.h" +#include "funcdata.h" +#include "textflag.h" + +TEXT ·__quote_entry__(SB), NOSPLIT, $16 + NO_LOCAL_POINTERS + WORD $0x100000a0 // adr x0, .+20 + MOVD R0, ret(FP) + RET + // .p2align 4, 0x00 +lCPI0_0: + WORD $0x08040201 + WORD $0x80402010 + WORD $0x08040201 + WORD $0x80402010 + // // .byte 1 +// .byte 2 +// .byte 4 +// .byte 8 +// .byte 16 +// .byte 32 +// .byte 64 +// .byte 128 +// .byte 1 +// .byte 2 +// .byte 4 +// .byte 8 +// .byte 16 +// .byte 32 +// .byte 64 +// .byte 128 + +lCPI0_1: + WORD $0x09010800 + WORD $0x0b030a02 + WORD $0x0d050c04 + WORD $0x0f070e06 + // // .byte 0 +// .byte 8 +// .byte 1 +// .byte 9 +// .byte 2 +// .byte 10 +// .byte 3 +// .byte 11 +// .byte 4 +// .byte 12 +// .byte 5 +// .byte 13 +// .byte 6 +// .byte 14 +// .byte 7 +// .byte 15 + +_quote: + WORD $0xd10083ff // sub sp, sp, #32 + WORD $0xa900fbfd // stp fp, lr, [sp, #8] + WORD $0xa93ffbfd // stp fp, lr, [sp, #-8] + WORD $0xd10023fd // sub fp, sp, #8 + WORD $0xf9400069 // ldr x9, [x3] +Lloh0: + WORD $0x1000ad68 // adr x8, __DoubleQuoteTab $5548(%rip) +Lloh1: + WORD $0x91000108 // add x8, x8, __DoubleQuoteTab@PAGEOFF $0(%rip) +Lloh2: + WORD $0x10002d2a // adr x10, __SingleQuoteTab $1444(%rip) +Lloh3: + WORD $0x9100014a // add x10, x10, __SingleQuoteTab@PAGEOFF $0(%rip) + WORD $0xf240009f // tst x4, #0x1 + WORD $0x9a880148 // csel x8, x10, x8, eq + WORD $0xeb010d3f // cmp x9, x1, lsl #3 + WORD $0x54001b0a // b.ge LBB0_53 $864(%rip) + WORD $0xaa0203eb // mov x11, x2 + WORD $0xaa0003ee // mov x14, x0 + WORD $0xb4002a41 // cbz x1, LBB0_76 $1352(%rip) + WORD $0xd100040c // sub x12, x0, #1 + WORD $0x4f01e440 // movi.16b v0, #34 + WORD $0x4f02e781 // movi.16b v1, #92 + WORD $0x4f01e402 // movi.16b v2, #32 +Lloh4: + WORD $0x10fffc8b // adr x11, lCPI0_0 $-112(%rip) +Lloh5: + WORD $0x3dc00163 // ldr q3, [x11, lCPI0_0@PAGEOFF] $0(%rip) +Lloh6: + WORD $0x10fffccb // adr x11, lCPI0_1 $-104(%rip) +Lloh7: + WORD $0x3dc00164 // ldr q4, [x11, lCPI0_1@PAGEOFF] $0(%rip) + WORD $0xaa0003ed // mov x13, x0 + WORD $0xaa0203eb // mov x11, x2 +LBB0_3: + WORD $0xf1003c3f // cmp x1, #15 + WORD $0x1a9fd7e4 // cset w4, gt + WORD $0xaa0903f0 // mov x16, x9 + WORD $0xaa0b03ef // mov x15, x11 + WORD $0xaa0103f1 // mov x17, x1 + WORD $0xaa0d03ee // mov x14, x13 + WORD $0xf100403f // cmp x1, #16 + WORD $0x5400046b // b.lt LBB0_10 $140(%rip) + WORD $0xf100413f // cmp x9, #16 + WORD $0x5400042b // b.lt LBB0_10 $132(%rip) + WORD $0xd280000f // mov x15, #0 + WORD $0xaa0103e5 // mov x5, x1 + WORD $0xaa0903ee // mov x14, x9 +LBB0_6: + WORD $0x8b0f01b0 // add x16, x13, x15 + WORD $0x8b0f0171 // add x17, x11, x15 + WORD $0xa9401210 // ldp x16, x4, [x16] + WORD $0xa9001230 // stp x16, x4, [x17] + WORD $0x9e670205 // fmov d5, x16 + WORD $0x4e181c85 // mov.d v5[1], x4 + WORD $0x6e208ca6 // cmeq.16b v6, v5, v0 + WORD $0x6e218ca7 // cmeq.16b v7, v5, v1 + WORD $0x6e253445 // cmhi.16b v5, v2, v5 + WORD $0x4ea71cc6 // orr.16b v6, v6, v7 + WORD $0x4ea51cc5 // orr.16b v5, v6, v5 + WORD $0x4e231ca5 // and.16b v5, v5, v3 + WORD $0x4e0400a5 // tbl.16b v5, { v5 }, v4 + WORD $0x4e71b8a5 // addv.8h h5, v5 + WORD $0x1e2600b0 // fmov w16, s5 + WORD $0x35000770 // cbnz w16, LBB0_20 $236(%rip) + WORD $0xd10040b1 // sub x17, x5, #16 + WORD $0xd10041d0 // sub x16, x14, #16 + WORD $0xf1007cbf // cmp x5, #31 + WORD $0x1a9fd7e4 // cset w4, gt + WORD $0x910041ef // add x15, x15, #16 + WORD $0xf10080bf // cmp x5, #32 + WORD $0x540000ab // b.lt LBB0_9 $20(%rip) + WORD $0xaa1103e5 // mov x5, x17 + WORD $0xf1007ddf // cmp x14, #31 + WORD $0xaa1003ee // mov x14, x16 + WORD $0x54fffccc // b.gt LBB0_6 $-104(%rip) +LBB0_9: + WORD $0x8b0f01ae // add x14, x13, x15 + WORD $0x8b0f016f // add x15, x11, x15 +LBB0_10: + WORD $0x36000304 // tbz w4, #0, LBB0_14 $96(%rip) + WORD $0x3dc001c5 // ldr q5, [x14] + WORD $0x6e208ca6 // cmeq.16b v6, v5, v0 + WORD $0x6e218ca7 // cmeq.16b v7, v5, v1 + WORD $0x6e253450 // cmhi.16b v16, v2, v5 + WORD $0x4ea71cc6 // orr.16b v6, v6, v7 + WORD $0x4eb01cc6 // orr.16b v6, v6, v16 + WORD $0x4e231cc6 // and.16b v6, v6, v3 + WORD $0x4e0400c6 // tbl.16b v6, { v6 }, v4 + WORD $0x4e71b8c6 // addv.8h h6, v6 + WORD $0x1e2600d1 // fmov w17, s6 + WORD $0x32100231 // orr w17, w17, #0x10000 + WORD $0x5ac00231 // rbit w17, w17 + WORD $0x5ac01231 // clz w17, w17 + WORD $0x9e6600a5 // fmov x5, d5 + WORD $0xeb11021f // cmp x16, x17 + WORD $0x54000a8a // b.ge LBB0_36 $336(%rip) + WORD $0xf1002204 // subs x4, x16, #8 + WORD $0x54000b43 // b.lo LBB0_38 $360(%rip) + WORD $0xf80085e5 // str x5, [x15], #8 + WORD $0x910021d1 // add x17, x14, #8 + WORD $0xf1001085 // subs x5, x4, #4 + WORD $0x54000b4a // b.ge LBB0_39 $360(%rip) + WORD $0x1400005c // b LBB0_40 $368(%rip) +LBB0_14: + WORD $0xf100063f // cmp x17, #1 + WORD $0x5400032b // b.lt LBB0_21 $100(%rip) + WORD $0xf100061f // cmp x16, #1 + WORD $0x540002eb // b.lt LBB0_21 $92(%rip) + WORD $0xcb0d01c4 // sub x4, x14, x13 +LBB0_17: + WORD $0x394001c6 // ldrb w6, [x14] + WORD $0xd37cecc5 // lsl x5, x6, #4 + WORD $0xf8656945 // ldr x5, [x10, x5] + WORD $0xb5000305 // cbnz x5, LBB0_23 $96(%rip) + WORD $0xd1000625 // sub x5, x17, #1 + WORD $0x910005ce // add x14, x14, #1 + WORD $0x380015e6 // strb w6, [x15], #1 + WORD $0xf1000a3f // cmp x17, #2 + WORD $0x540001cb // b.lt LBB0_22 $56(%rip) + WORD $0xd1000606 // sub x6, x16, #1 + WORD $0x91000484 // add x4, x4, #1 + WORD $0xaa0503f1 // mov x17, x5 + WORD $0xf100061f // cmp x16, #1 + WORD $0xaa0603f0 // mov x16, x6 + WORD $0x54fffe4c // b.gt LBB0_17 $-56(%rip) + WORD $0x14000007 // b LBB0_22 $28(%rip) +LBB0_20: + WORD $0x5ac0020e // rbit w14, w16 + WORD $0x5ac011ce // clz w14, w14 + WORD $0x8b0f01c4 // add x4, x14, x15 + WORD $0xb6f80124 // tbz x4, #63, LBB0_24 $36(%rip) + WORD $0x14000065 // b LBB0_52 $404(%rip) +LBB0_21: + WORD $0xaa1103e5 // mov x5, x17 +LBB0_22: + WORD $0xaa2e03ef // mvn x15, x14 + WORD $0x8b0d01ef // add x15, x15, x13 + WORD $0xcb0d01ce // sub x14, x14, x13 + WORD $0xf10000bf // cmp x5, #0 + WORD $0x9a8e11e4 // csel x4, x15, x14, ne +LBB0_23: + WORD $0xb7f80bc4 // tbnz x4, #63, LBB0_52 $376(%rip) +LBB0_24: + WORD $0x8b0401ae // add x14, x13, x4 + WORD $0x8b04016b // add x11, x11, x4 + WORD $0xeb040021 // subs x1, x1, x4 + WORD $0x54001c20 // b.eq LBB0_76 $900(%rip) + WORD $0xcb040129 // sub x9, x9, x4 + WORD $0x8b0d008d // add x13, x4, x13 + WORD $0xcb0d018d // sub x13, x12, x13 + WORD $0x14000006 // b LBB0_27 $24(%rip) +LBB0_26: + WORD $0x910005ce // add x14, x14, #1 + WORD $0x8b0f016b // add x11, x11, x15 + WORD $0xd10005ad // sub x13, x13, #1 + WORD $0xd1000421 // sub x1, x1, #1 + WORD $0xb4001b01 // cbz x1, LBB0_76 $864(%rip) +LBB0_27: + WORD $0x394001cf // ldrb w15, [x14] + WORD $0x8b0f1111 // add x17, x8, x15, lsl #4 + WORD $0xb940022f // ldr w15, [x17] + WORD $0xb400032f // cbz x15, LBB0_35 $100(%rip) + WORD $0x93407def // sxtw x15, w15 + WORD $0xeb0f0129 // subs x9, x9, x15 + WORD $0x54001b0b // b.lt LBB0_77 $864(%rip) + WORD $0xf10011e4 // subs x4, x15, #4 + WORD $0x5400010b // b.lt LBB0_31 $32(%rip) + WORD $0xb9400a25 // ldr w5, [x17, #8] + WORD $0xaa0b03f0 // mov x16, x11 + WORD $0xb8004605 // str w5, [x16], #4 + WORD $0x91003231 // add x17, x17, #12 + WORD $0xf1000885 // subs x5, x4, #2 + WORD $0x540000e2 // b.hs LBB0_32 $28(%rip) + WORD $0x14000009 // b LBB0_33 $36(%rip) +LBB0_31: + WORD $0x91002231 // add x17, x17, #8 + WORD $0xaa0b03f0 // mov x16, x11 + WORD $0xaa0f03e4 // mov x4, x15 + WORD $0xf10009e5 // subs x5, x15, #2 + WORD $0x54000083 // b.lo LBB0_33 $16(%rip) +LBB0_32: + WORD $0x78402624 // ldrh w4, [x17], #2 + WORD $0x78002604 // strh w4, [x16], #2 + WORD $0xaa0503e4 // mov x4, x5 +LBB0_33: + WORD $0xb4fffc64 // cbz x4, LBB0_26 $-116(%rip) + WORD $0x39400231 // ldrb w17, [x17] + WORD $0x39000211 // strb w17, [x16] + WORD $0x17ffffe0 // b LBB0_26 $-128(%rip) +LBB0_35: + WORD $0xaa0e03ed // mov x13, x14 + WORD $0x17ffff73 // b LBB0_3 $-564(%rip) +LBB0_36: + WORD $0x7100223f // cmp w17, #8 + WORD $0x540003a3 // b.lo LBB0_45 $116(%rip) + WORD $0xf80085e5 // str x5, [x15], #8 + WORD $0x910021d0 // add x16, x14, #8 + WORD $0xd1002224 // sub x4, x17, #8 + WORD $0xf1001085 // subs x5, x4, #4 + WORD $0x54000382 // b.hs LBB0_46 $112(%rip) + WORD $0x1400001e // b LBB0_47 $120(%rip) +LBB0_38: + WORD $0xaa0e03f1 // mov x17, x14 + WORD $0xaa1003e4 // mov x4, x16 + WORD $0xf1001205 // subs x5, x16, #4 + WORD $0x5400008b // b.lt LBB0_40 $16(%rip) +LBB0_39: + WORD $0xb8404624 // ldr w4, [x17], #4 + WORD $0xb80045e4 // str w4, [x15], #4 + WORD $0xaa0503e4 // mov x4, x5 +LBB0_40: + WORD $0xf1000885 // subs x5, x4, #2 + WORD $0x540000c3 // b.lo LBB0_42 $24(%rip) + WORD $0x78402624 // ldrh w4, [x17], #2 + WORD $0x780025e4 // strh w4, [x15], #2 + WORD $0xaa0503e4 // mov x4, x5 + WORD $0xb5000065 // cbnz x5, LBB0_43 $12(%rip) + WORD $0x14000004 // b LBB0_44 $16(%rip) +LBB0_42: + WORD $0xb4000064 // cbz x4, LBB0_44 $12(%rip) +LBB0_43: + WORD $0x39400231 // ldrb w17, [x17] + WORD $0x390001f1 // strb w17, [x15] +LBB0_44: + WORD $0x8b0e020e // add x14, x16, x14 + WORD $0xaa2e03ee // mvn x14, x14 + WORD $0x8b0d01c4 // add x4, x14, x13 + WORD $0xb6fff724 // tbz x4, #63, LBB0_24 $-284(%rip) + WORD $0x14000015 // b LBB0_52 $84(%rip) +LBB0_45: + WORD $0xaa0e03f0 // mov x16, x14 + WORD $0xaa1103e4 // mov x4, x17 + WORD $0xf1001225 // subs x5, x17, #4 + WORD $0x54000083 // b.lo LBB0_47 $16(%rip) +LBB0_46: + WORD $0xb8404604 // ldr w4, [x16], #4 + WORD $0xb80045e4 // str w4, [x15], #4 + WORD $0xaa0503e4 // mov x4, x5 +LBB0_47: + WORD $0xf1000885 // subs x5, x4, #2 + WORD $0x540000c3 // b.lo LBB0_49 $24(%rip) + WORD $0x78402604 // ldrh w4, [x16], #2 + WORD $0x780025e4 // strh w4, [x15], #2 + WORD $0xaa0503e4 // mov x4, x5 + WORD $0xb5000065 // cbnz x5, LBB0_50 $12(%rip) + WORD $0x14000004 // b LBB0_51 $16(%rip) +LBB0_49: + WORD $0xb4000064 // cbz x4, LBB0_51 $12(%rip) +LBB0_50: + WORD $0x39400210 // ldrb w16, [x16] + WORD $0x390001f0 // strb w16, [x15] +LBB0_51: + WORD $0xcb0d01ce // sub x14, x14, x13 + WORD $0x8b1101c4 // add x4, x14, x17 + WORD $0xb6fff484 // tbz x4, #63, LBB0_24 $-368(%rip) +LBB0_52: + WORD $0x8b020088 // add x8, x4, x2 + WORD $0xaa2803e8 // mvn x8, x8 + WORD $0x8b0b0108 // add x8, x8, x11 + WORD $0xf9000068 // str x8, [x3] + WORD $0xcb0d0008 // sub x8, x0, x13 + WORD $0x8b040101 // add x1, x8, x4 + WORD $0xaa0103e0 // mov x0, x1 + WORD $0xa940fbfd // ldp fp, lr, [sp, #8] + WORD $0x910083ff // add sp, sp, #32 + WORD $0xd65f03c0 // ret +LBB0_53: + WORD $0x4f01e440 // movi.16b v0, #34 + WORD $0x4f02e781 // movi.16b v1, #92 + WORD $0x4f01e402 // movi.16b v2, #32 +Lloh8: + WORD $0x10ffe229 // adr x9, lCPI0_0 $-956(%rip) +Lloh9: + WORD $0x3dc00123 // ldr q3, [x9, lCPI0_0@PAGEOFF] $0(%rip) +Lloh10: + WORD $0x10ffe269 // adr x9, lCPI0_1 $-948(%rip) +Lloh11: + WORD $0x3dc00124 // ldr q4, [x9, lCPI0_1@PAGEOFF] $0(%rip) +Lloh12: + WORD $0x100110aa // adr x10, __EscTab $8724(%rip) +Lloh13: + WORD $0x9100014a // add x10, x10, __EscTab@PAGEOFF $0(%rip) + WORD $0xaa0203e9 // mov x9, x2 + WORD $0xaa0103eb // mov x11, x1 +LBB0_54: + WORD $0xf100417f // cmp x11, #16 + WORD $0x5400028b // b.lt LBB0_57 $80(%rip) +LBB0_55: + WORD $0xa940300d // ldp x13, x12, [x0] + WORD $0xa900312d // stp x13, x12, [x9] + WORD $0x9e6701a5 // fmov d5, x13 + WORD $0x4e181d85 // mov.d v5[1], x12 + WORD $0x6e208ca6 // cmeq.16b v6, v5, v0 + WORD $0x6e218ca7 // cmeq.16b v7, v5, v1 + WORD $0x6e253445 // cmhi.16b v5, v2, v5 + WORD $0x4ea71cc6 // orr.16b v6, v6, v7 + WORD $0x4ea51cc5 // orr.16b v5, v6, v5 + WORD $0x4e231ca5 // and.16b v5, v5, v3 + WORD $0x4e0400a5 // tbl.16b v5, { v5 }, v4 + WORD $0x4e71b8a5 // addv.8h h5, v5 + WORD $0x1e2600ac // fmov w12, s5 + WORD $0x350008ac // cbnz w12, LBB0_67 $276(%rip) + WORD $0x91004000 // add x0, x0, #16 + WORD $0x91004129 // add x9, x9, #16 + WORD $0xd100416b // sub x11, x11, #16 + WORD $0xf100417f // cmp x11, #16 + WORD $0x54fffdc2 // b.hs LBB0_55 $-72(%rip) +LBB0_57: + WORD $0xf100216c // subs x12, x11, #8 + WORD $0x5400040b // b.lt LBB0_61 $128(%rip) + WORD $0x3940000d // ldrb w13, [x0] + WORD $0x386d694d // ldrb w13, [x10, x13] + WORD $0x3940040e // ldrb w14, [x0, #1] + WORD $0x386e694e // ldrb w14, [x10, x14] + WORD $0x2a0e05ad // orr w13, w13, w14, lsl #1 + WORD $0x3940080e // ldrb w14, [x0, #2] + WORD $0x386e694e // ldrb w14, [x10, x14] + WORD $0x2a0e09ad // orr w13, w13, w14, lsl #2 + WORD $0x39400c0e // ldrb w14, [x0, #3] + WORD $0x386e694e // ldrb w14, [x10, x14] + WORD $0x2a0e0dad // orr w13, w13, w14, lsl #3 + WORD $0xf940000e // ldr x14, [x0] + WORD $0xf900012e // str x14, [x9] + WORD $0x72001dbf // tst w13, #0xff + WORD $0x54000821 // b.ne LBB0_73 $260(%rip) + WORD $0x3940100d // ldrb w13, [x0, #4] + WORD $0x386d694d // ldrb w13, [x10, x13] + WORD $0x3940140e // ldrb w14, [x0, #5] + WORD $0x386e694e // ldrb w14, [x10, x14] + WORD $0x2a0e05ad // orr w13, w13, w14, lsl #1 + WORD $0x3940180e // ldrb w14, [x0, #6] + WORD $0x386e694e // ldrb w14, [x10, x14] + WORD $0x2a0e09ad // orr w13, w13, w14, lsl #2 + WORD $0x39401c0e // ldrb w14, [x0, #7] + WORD $0x386e694e // ldrb w14, [x10, x14] + WORD $0x2a0e0dad // orr w13, w13, w14, lsl #3 + WORD $0x72001dbf // tst w13, #0xff + WORD $0x540006c1 // b.ne LBB0_74 $216(%rip) + WORD $0x91002129 // add x9, x9, #8 + WORD $0x91002000 // add x0, x0, #8 + WORD $0xaa0c03eb // mov x11, x12 +LBB0_61: + WORD $0xf100116c // subs x12, x11, #4 + WORD $0x5400026b // b.lt LBB0_64 $76(%rip) + WORD $0x3940000d // ldrb w13, [x0] + WORD $0x386d694d // ldrb w13, [x10, x13] + WORD $0x3940040e // ldrb w14, [x0, #1] + WORD $0x386e694e // ldrb w14, [x10, x14] + WORD $0x2a0e05ad // orr w13, w13, w14, lsl #1 + WORD $0x3940080e // ldrb w14, [x0, #2] + WORD $0x386e694e // ldrb w14, [x10, x14] + WORD $0x2a0e09ad // orr w13, w13, w14, lsl #2 + WORD $0x39400c0e // ldrb w14, [x0, #3] + WORD $0x386e694e // ldrb w14, [x10, x14] + WORD $0x2a0e0dad // orr w13, w13, w14, lsl #3 + WORD $0xb940000e // ldr w14, [x0] + WORD $0xb900012e // str w14, [x9] + WORD $0x72001dbf // tst w13, #0xff + WORD $0x54000401 // b.ne LBB0_73 $128(%rip) + WORD $0x91001129 // add x9, x9, #4 + WORD $0x91001000 // add x0, x0, #4 + WORD $0xaa0c03eb // mov x11, x12 +LBB0_64: + WORD $0xf100057f // cmp x11, #1 + WORD $0x5400042b // b.lt LBB0_75 $132(%rip) +LBB0_65: + WORD $0x3940000c // ldrb w12, [x0] + WORD $0x386c694d // ldrb w13, [x10, x12] + WORD $0x3500016d // cbnz w13, LBB0_70 $44(%rip) + WORD $0x91000400 // add x0, x0, #1 + WORD $0x3800152c // strb w12, [x9], #1 + WORD $0xf100056b // subs x11, x11, #1 + WORD $0x54ffff4c // b.gt LBB0_65 $-24(%rip) + WORD $0x14000019 // b LBB0_75 $100(%rip) +LBB0_67: + WORD $0x5ac0018c // rbit w12, w12 +LBB0_68: + WORD $0x5ac0118c // clz w12, w12 +LBB0_69: + WORD $0x8b0c0000 // add x0, x0, x12 + WORD $0xcb0c016b // sub x11, x11, x12 + WORD $0x8b0c0129 // add x9, x9, x12 +LBB0_70: + WORD $0x3940000c // ldrb w12, [x0] +LBB0_71: + WORD $0x8b0c110c // add x12, x8, x12, lsl #4 + WORD $0xb980018d // ldrsw x13, [x12] + WORD $0xf940058c // ldr x12, [x12, #8] + WORD $0xf900012c // str x12, [x9] + WORD $0x8b0d0129 // add x9, x9, x13 + WORD $0xf100097f // cmp x11, #2 + WORD $0x5400018b // b.lt LBB0_75 $48(%rip) + WORD $0xd100056b // sub x11, x11, #1 + WORD $0x38401c0c // ldrb w12, [x0, #1]! + WORD $0x386c694d // ldrb w13, [x10, x12] + WORD $0x35fffecd // cbnz w13, LBB0_71 $-40(%rip) + WORD $0x17ffff9b // b LBB0_54 $-404(%rip) +LBB0_73: + WORD $0x5ac001ac // rbit w12, w13 + WORD $0x17ffffee // b LBB0_68 $-72(%rip) +LBB0_74: + WORD $0x5ac001ac // rbit w12, w13 + WORD $0x5ac0118c // clz w12, w12 + WORD $0x1100118c // add w12, w12, #4 + WORD $0x17ffffeb // b LBB0_69 $-84(%rip) +LBB0_75: + WORD $0xcb020128 // sub x8, x9, x2 + WORD $0xf9000068 // str x8, [x3] + WORD $0xaa0103e0 // mov x0, x1 + WORD $0xa940fbfd // ldp fp, lr, [sp, #8] + WORD $0x910083ff // add sp, sp, #32 + WORD $0xd65f03c0 // ret +LBB0_76: + WORD $0xcb020168 // sub x8, x11, x2 + WORD $0xf9000068 // str x8, [x3] + WORD $0xcb0001c1 // sub x1, x14, x0 + WORD $0xaa0103e0 // mov x0, x1 + WORD $0xa940fbfd // ldp fp, lr, [sp, #8] + WORD $0x910083ff // add sp, sp, #32 + WORD $0xd65f03c0 // ret +LBB0_77: + WORD $0xcb020168 // sub x8, x11, x2 + WORD $0xf9000068 // str x8, [x3] + WORD $0xaa0d03e1 // mov x1, x13 + WORD $0xaa0103e0 // mov x0, x1 + WORD $0xa940fbfd // ldp fp, lr, [sp, #8] + WORD $0x910083ff // add sp, sp, #32 + WORD $0xd65f03c0 // ret + WORD $0x00000000 // .p2align 3, 0x00 +__SingleQuoteTab: + WORD $0x00000006; WORD $0x00000000 // .quad 6 + WORD $0x3030755c // .asciz 4, '\\u0000\x00\x00' + WORD $0x00003030 // .asciz 4, '00\x00\x00' + WORD $0x00000006; WORD $0x00000000 // .quad 6 + WORD $0x3030755c // .asciz 4, '\\u0001\x00\x00' + WORD $0x00003130 // .asciz 4, '01\x00\x00' + WORD $0x00000006; WORD $0x00000000 // .quad 6 + WORD $0x3030755c // .asciz 4, '\\u0002\x00\x00' + WORD $0x00003230 // .asciz 4, '02\x00\x00' + WORD $0x00000006; WORD $0x00000000 // .quad 6 + WORD $0x3030755c // .asciz 4, '\\u0003\x00\x00' + WORD $0x00003330 // .asciz 4, '03\x00\x00' + WORD $0x00000006; WORD $0x00000000 // .quad 6 + WORD $0x3030755c // .asciz 4, '\\u0004\x00\x00' + WORD $0x00003430 // .asciz 4, '04\x00\x00' + WORD $0x00000006; WORD $0x00000000 // .quad 6 + WORD $0x3030755c // .asciz 4, '\\u0005\x00\x00' + WORD $0x00003530 // .asciz 4, '05\x00\x00' + WORD $0x00000006; WORD $0x00000000 // .quad 6 + WORD $0x3030755c // .asciz 4, '\\u0006\x00\x00' + WORD $0x00003630 // .asciz 4, '06\x00\x00' + WORD $0x00000006; WORD $0x00000000 // .quad 6 + WORD $0x3030755c // .asciz 4, '\\u0007\x00\x00' + WORD $0x00003730 // .asciz 4, '07\x00\x00' + WORD $0x00000006; WORD $0x00000000 // .quad 6 + WORD $0x3030755c // .asciz 4, '\\u0008\x00\x00' + WORD $0x00003830 // .asciz 4, '08\x00\x00' + WORD $0x00000002; WORD $0x00000000 // .quad 2 + WORD $0x0000745c // .asciz 4, '\\t\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x00000002; WORD $0x00000000 // .quad 2 + WORD $0x00006e5c // .asciz 4, '\\n\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x00000006; WORD $0x00000000 // .quad 6 + WORD $0x3030755c // .asciz 4, '\\u000b\x00\x00' + WORD $0x00006230 // .asciz 4, '0b\x00\x00' + WORD $0x00000006; WORD $0x00000000 // .quad 6 + WORD $0x3030755c // .asciz 4, '\\u000c\x00\x00' + WORD $0x00006330 // .asciz 4, '0c\x00\x00' + WORD $0x00000002; WORD $0x00000000 // .quad 2 + WORD $0x0000725c // .asciz 4, '\\r\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x00000006; WORD $0x00000000 // .quad 6 + WORD $0x3030755c // .asciz 4, '\\u000e\x00\x00' + WORD $0x00006530 // .asciz 4, '0e\x00\x00' + WORD $0x00000006; WORD $0x00000000 // .quad 6 + WORD $0x3030755c // .asciz 4, '\\u000f\x00\x00' + WORD $0x00006630 // .asciz 4, '0f\x00\x00' + WORD $0x00000006; WORD $0x00000000 // .quad 6 + WORD $0x3030755c // .asciz 4, '\\u0010\x00\x00' + WORD $0x00003031 // .asciz 4, '10\x00\x00' + WORD $0x00000006; WORD $0x00000000 // .quad 6 + WORD $0x3030755c // .asciz 4, '\\u0011\x00\x00' + WORD $0x00003131 // .asciz 4, '11\x00\x00' + WORD $0x00000006; WORD $0x00000000 // .quad 6 + WORD $0x3030755c // .asciz 4, '\\u0012\x00\x00' + WORD $0x00003231 // .asciz 4, '12\x00\x00' + WORD $0x00000006; WORD $0x00000000 // .quad 6 + WORD $0x3030755c // .asciz 4, '\\u0013\x00\x00' + WORD $0x00003331 // .asciz 4, '13\x00\x00' + WORD $0x00000006; WORD $0x00000000 // .quad 6 + WORD $0x3030755c // .asciz 4, '\\u0014\x00\x00' + WORD $0x00003431 // .asciz 4, '14\x00\x00' + WORD $0x00000006; WORD $0x00000000 // .quad 6 + WORD $0x3030755c // .asciz 4, '\\u0015\x00\x00' + WORD $0x00003531 // .asciz 4, '15\x00\x00' + WORD $0x00000006; WORD $0x00000000 // .quad 6 + WORD $0x3030755c // .asciz 4, '\\u0016\x00\x00' + WORD $0x00003631 // .asciz 4, '16\x00\x00' + WORD $0x00000006; WORD $0x00000000 // .quad 6 + WORD $0x3030755c // .asciz 4, '\\u0017\x00\x00' + WORD $0x00003731 // .asciz 4, '17\x00\x00' + WORD $0x00000006; WORD $0x00000000 // .quad 6 + WORD $0x3030755c // .asciz 4, '\\u0018\x00\x00' + WORD $0x00003831 // .asciz 4, '18\x00\x00' + WORD $0x00000006; WORD $0x00000000 // .quad 6 + WORD $0x3030755c // .asciz 4, '\\u0019\x00\x00' + WORD $0x00003931 // .asciz 4, '19\x00\x00' + WORD $0x00000006; WORD $0x00000000 // .quad 6 + WORD $0x3030755c // .asciz 4, '\\u001a\x00\x00' + WORD $0x00006131 // .asciz 4, '1a\x00\x00' + WORD $0x00000006; WORD $0x00000000 // .quad 6 + WORD $0x3030755c // .asciz 4, '\\u001b\x00\x00' + WORD $0x00006231 // .asciz 4, '1b\x00\x00' + WORD $0x00000006; WORD $0x00000000 // .quad 6 + WORD $0x3030755c // .asciz 4, '\\u001c\x00\x00' + WORD $0x00006331 // .asciz 4, '1c\x00\x00' + WORD $0x00000006; WORD $0x00000000 // .quad 6 + WORD $0x3030755c // .asciz 4, '\\u001d\x00\x00' + WORD $0x00006431 // .asciz 4, '1d\x00\x00' + WORD $0x00000006; WORD $0x00000000 // .quad 6 + WORD $0x3030755c // .asciz 4, '\\u001e\x00\x00' + WORD $0x00006531 // .asciz 4, '1e\x00\x00' + WORD $0x00000006; WORD $0x00000000 // .quad 6 + WORD $0x3030755c // .asciz 4, '\\u001f\x00\x00' + WORD $0x00006631 // .asciz 4, '1f\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000002; WORD $0x00000000 // .quad 2 + WORD $0x0000225c // .asciz 4, '\\"\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000002; WORD $0x00000000 // .quad 2 + WORD $0x00005c5c // .asciz 4, '\\\\\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + // .p2align 3, 0x00 +__DoubleQuoteTab: + WORD $0x00000007; WORD $0x00000000 // .quad 7 + WORD $0x30755c5c // .asciz 4, '\\\\u0000\x00' + WORD $0x00303030 // .asciz 4, '000\x00' + WORD $0x00000007; WORD $0x00000000 // .quad 7 + WORD $0x30755c5c // .asciz 4, '\\\\u0001\x00' + WORD $0x00313030 // .asciz 4, '001\x00' + WORD $0x00000007; WORD $0x00000000 // .quad 7 + WORD $0x30755c5c // .asciz 4, '\\\\u0002\x00' + WORD $0x00323030 // .asciz 4, '002\x00' + WORD $0x00000007; WORD $0x00000000 // .quad 7 + WORD $0x30755c5c // .asciz 4, '\\\\u0003\x00' + WORD $0x00333030 // .asciz 4, '003\x00' + WORD $0x00000007; WORD $0x00000000 // .quad 7 + WORD $0x30755c5c // .asciz 4, '\\\\u0004\x00' + WORD $0x00343030 // .asciz 4, '004\x00' + WORD $0x00000007; WORD $0x00000000 // .quad 7 + WORD $0x30755c5c // .asciz 4, '\\\\u0005\x00' + WORD $0x00353030 // .asciz 4, '005\x00' + WORD $0x00000007; WORD $0x00000000 // .quad 7 + WORD $0x30755c5c // .asciz 4, '\\\\u0006\x00' + WORD $0x00363030 // .asciz 4, '006\x00' + WORD $0x00000007; WORD $0x00000000 // .quad 7 + WORD $0x30755c5c // .asciz 4, '\\\\u0007\x00' + WORD $0x00373030 // .asciz 4, '007\x00' + WORD $0x00000007; WORD $0x00000000 // .quad 7 + WORD $0x30755c5c // .asciz 4, '\\\\u0008\x00' + WORD $0x00383030 // .asciz 4, '008\x00' + WORD $0x00000003; WORD $0x00000000 // .quad 3 + WORD $0x00745c5c // .asciz 4, '\\\\t\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x00000003; WORD $0x00000000 // .quad 3 + WORD $0x006e5c5c // .asciz 4, '\\\\n\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x00000007; WORD $0x00000000 // .quad 7 + WORD $0x30755c5c // .asciz 4, '\\\\u000b\x00' + WORD $0x00623030 // .asciz 4, '00b\x00' + WORD $0x00000007; WORD $0x00000000 // .quad 7 + WORD $0x30755c5c // .asciz 4, '\\\\u000c\x00' + WORD $0x00633030 // .asciz 4, '00c\x00' + WORD $0x00000003; WORD $0x00000000 // .quad 3 + WORD $0x00725c5c // .asciz 4, '\\\\r\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x00000007; WORD $0x00000000 // .quad 7 + WORD $0x30755c5c // .asciz 4, '\\\\u000e\x00' + WORD $0x00653030 // .asciz 4, '00e\x00' + WORD $0x00000007; WORD $0x00000000 // .quad 7 + WORD $0x30755c5c // .asciz 4, '\\\\u000f\x00' + WORD $0x00663030 // .asciz 4, '00f\x00' + WORD $0x00000007; WORD $0x00000000 // .quad 7 + WORD $0x30755c5c // .asciz 4, '\\\\u0010\x00' + WORD $0x00303130 // .asciz 4, '010\x00' + WORD $0x00000007; WORD $0x00000000 // .quad 7 + WORD $0x30755c5c // .asciz 4, '\\\\u0011\x00' + WORD $0x00313130 // .asciz 4, '011\x00' + WORD $0x00000007; WORD $0x00000000 // .quad 7 + WORD $0x30755c5c // .asciz 4, '\\\\u0012\x00' + WORD $0x00323130 // .asciz 4, '012\x00' + WORD $0x00000007; WORD $0x00000000 // .quad 7 + WORD $0x30755c5c // .asciz 4, '\\\\u0013\x00' + WORD $0x00333130 // .asciz 4, '013\x00' + WORD $0x00000007; WORD $0x00000000 // .quad 7 + WORD $0x30755c5c // .asciz 4, '\\\\u0014\x00' + WORD $0x00343130 // .asciz 4, '014\x00' + WORD $0x00000007; WORD $0x00000000 // .quad 7 + WORD $0x30755c5c // .asciz 4, '\\\\u0015\x00' + WORD $0x00353130 // .asciz 4, '015\x00' + WORD $0x00000007; WORD $0x00000000 // .quad 7 + WORD $0x30755c5c // .asciz 4, '\\\\u0016\x00' + WORD $0x00363130 // .asciz 4, '016\x00' + WORD $0x00000007; WORD $0x00000000 // .quad 7 + WORD $0x30755c5c // .asciz 4, '\\\\u0017\x00' + WORD $0x00373130 // .asciz 4, '017\x00' + WORD $0x00000007; WORD $0x00000000 // .quad 7 + WORD $0x30755c5c // .asciz 4, '\\\\u0018\x00' + WORD $0x00383130 // .asciz 4, '018\x00' + WORD $0x00000007; WORD $0x00000000 // .quad 7 + WORD $0x30755c5c // .asciz 4, '\\\\u0019\x00' + WORD $0x00393130 // .asciz 4, '019\x00' + WORD $0x00000007; WORD $0x00000000 // .quad 7 + WORD $0x30755c5c // .asciz 4, '\\\\u001a\x00' + WORD $0x00613130 // .asciz 4, '01a\x00' + WORD $0x00000007; WORD $0x00000000 // .quad 7 + WORD $0x30755c5c // .asciz 4, '\\\\u001b\x00' + WORD $0x00623130 // .asciz 4, '01b\x00' + WORD $0x00000007; WORD $0x00000000 // .quad 7 + WORD $0x30755c5c // .asciz 4, '\\\\u001c\x00' + WORD $0x00633130 // .asciz 4, '01c\x00' + WORD $0x00000007; WORD $0x00000000 // .quad 7 + WORD $0x30755c5c // .asciz 4, '\\\\u001d\x00' + WORD $0x00643130 // .asciz 4, '01d\x00' + WORD $0x00000007; WORD $0x00000000 // .quad 7 + WORD $0x30755c5c // .asciz 4, '\\\\u001e\x00' + WORD $0x00653130 // .asciz 4, '01e\x00' + WORD $0x00000007; WORD $0x00000000 // .quad 7 + WORD $0x30755c5c // .asciz 4, '\\\\u001f\x00' + WORD $0x00663130 // .asciz 4, '01f\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000004; WORD $0x00000000 // .quad 4 + WORD $0x225c5c5c // .asciz 4, '\\\\\\"\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000004; WORD $0x00000000 // .quad 4 + WORD $0x5c5c5c5c // .asciz 4, '\\\\\\\\\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' +__EscTab: + WORD $0x01010101 // .ascii 4, '\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01' + WORD $0x01010101 // .ascii 4, '\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01' + WORD $0x01010101 // .ascii 4, '\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01' + WORD $0x01010101 // .ascii 4, '\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01' + WORD $0x01010101 // .ascii 4, '\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01' + WORD $0x01010101 // .ascii 4, '\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x01\x00' + WORD $0x01010101 // .ascii 4, '\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x01\x00\x00\x00\x00\x00' + WORD $0x01010101 // .ascii 4, '\x01\x01\x01\x01\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00010000 // .ascii 4, '\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .ascii 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .ascii 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .ascii 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .ascii 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .ascii 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .ascii 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .ascii 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .ascii 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .ascii 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .ascii 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .ascii 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .ascii 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00' + WORD $0x00000000 // .ascii 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00' + WORD $0x00000000 // .ascii 4, '\x00\x00\x00\x00\x01\x00\x00\x00' + WORD $0x00000001 // .ascii 4, '\x01\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + +TEXT ·__quote(SB), NOSPLIT, $0-48 + NO_LOCAL_POINTERS + +_entry: + MOVD 16(g), R16 + SUB $96, RSP, R17 + CMP R16, R17 + BLS _stack_grow + +_quote: + MOVD sp+0(FP), R0 + MOVD nb+8(FP), R1 + MOVD dp+16(FP), R2 + MOVD dn+24(FP), R3 + MOVD flags+32(FP), R4 + MOVD ·_subr__quote(SB), R11 + WORD $0x1000005e // adr x30, .+8 + JMP (R11) + MOVD R0, ret+40(FP) + RET + +_stack_grow: + MOVD R30, R3 + CALL runtime·morestack_noctxt<>(SB) + JMP _entry diff --git a/vendor/github.com/bytedance/sonic/internal/native/neon/quote_subr_arm64.go b/vendor/github.com/bytedance/sonic/internal/native/neon/quote_subr_arm64.go new file mode 100644 index 000000000..e9d942880 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/neon/quote_subr_arm64.go @@ -0,0 +1,25 @@ +// +build !noasm !appengine +// Code generated by asm2asm, DO NOT EDIT. + +package neon + +//go:nosplit +//go:noescape +//goland:noinspection ALL +func __quote_entry__() uintptr + +var ( + _subr__quote uintptr = __quote_entry__() + 32 +) + +const ( + _stack__quote = 32 +) + +var ( + _ = _subr__quote +) + +const ( + _ = _stack__quote +) diff --git a/vendor/github.com/bytedance/sonic/internal/native/neon/skip_array_arm64.go b/vendor/github.com/bytedance/sonic/internal/native/neon/skip_array_arm64.go new file mode 100644 index 000000000..f6ce31522 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/neon/skip_array_arm64.go @@ -0,0 +1,37 @@ +// Code generated by Makefile, DO NOT EDIT. + +// Code generated by Makefile, DO NOT EDIT. + +/* + * Copyright 2021 ByteDance 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 neon + +import ( + // `unsafe` + + `github.com/bytedance/sonic/internal/native/types` +) + +//go:nosplit +func skip_array(s *string, p *int, m *types.StateMachine, flags uint64) (ret int) { + return __skip_array(s, p, m, flags) +} + +//go:nosplit +//go:noescape +//goland:noinspection GoUnusedParameter +func __skip_array(s *string, p *int, m *types.StateMachine, flags uint64) (ret int) diff --git a/vendor/github.com/bytedance/sonic/internal/native/neon/skip_array_arm64.s b/vendor/github.com/bytedance/sonic/internal/native/neon/skip_array_arm64.s new file mode 100644 index 000000000..f551d994b --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/neon/skip_array_arm64.s @@ -0,0 +1,2384 @@ +// +build !noasm !appengine +// Code generated by asm2asm, DO NOT EDIT. + +#include "go_asm.h" +#include "funcdata.h" +#include "textflag.h" + +TEXT ·__skip_array_entry__(SB), NOSPLIT, $96 + NO_LOCAL_POINTERS + WORD $0x100000a0 // adr x0, .+20 + MOVD R0, ret(FP) + RET + // .p2align 4, 0x00 +lCPI0_0: + WORD $0x00000001; WORD $0x00000000 // .quad 1 + WORD $0x00000005; WORD $0x00000000 // .quad 5 +lCPI0_1: + WORD $0x08040201 + WORD $0x80402010 + WORD $0x08040201 + WORD $0x80402010 + // // .byte 1 +// .byte 2 +// .byte 4 +// .byte 8 +// .byte 16 +// .byte 32 +// .byte 64 +// .byte 128 +// .byte 1 +// .byte 2 +// .byte 4 +// .byte 8 +// .byte 16 +// .byte 32 +// .byte 64 +// .byte 128 + +lCPI0_2: + WORD $0x09010800 + WORD $0x0b030a02 + WORD $0x0d050c04 + WORD $0x0f070e06 + // // .byte 0 +// .byte 8 +// .byte 1 +// .byte 9 +// .byte 2 +// .byte 10 +// .byte 3 +// .byte 11 +// .byte 4 +// .byte 12 +// .byte 5 +// .byte 13 +// .byte 6 +// .byte 14 +// .byte 7 +// .byte 15 + +_skip_array: + WORD $0xd101c3ff // sub sp, sp, #112 + WORD $0xa900effc // stp x28, x27, [sp, #8] + WORD $0xa901e7fa // stp x26, x25, [sp, #24] + WORD $0xa902dff8 // stp x24, x23, [sp, #40] + WORD $0xa903d7f6 // stp x22, x21, [sp, #56] + WORD $0xa904cff4 // stp x20, x19, [sp, #72] + WORD $0xa905fbfd // stp fp, lr, [sp, #88] + WORD $0xa93ffbfd // stp fp, lr, [sp, #-8] + WORD $0xd10023fd // sub fp, sp, #8 +Lloh0: + WORD $0x10fffd68 // adr x8, lCPI0_0 $-84(%rip) +Lloh1: + WORD $0x3dc00100 // ldr q0, [x8, lCPI0_0@PAGEOFF] $0(%rip) + WORD $0xaa0203ea // mov x10, x2 + WORD $0x3c808540 // str q0, [x10], #8 + WORD $0xf9400009 // ldr x9, [x0] + WORD $0xaa2903eb // mvn x11, x9 + WORD $0xf940003c // ldr x28, [x1] + WORD $0xcb0903ec // neg x12, x9 + WORD $0xd100052d // sub x13, x9, #1 + WORD $0x9280000e // mov x14, #-1 + WORD $0x5280002f // mov w15, #1 + WORD $0xd284c010 // mov x16, #9728 + WORD $0xf2c00030 // movk x16, #1, lsl #32 + WORD $0x52800073 // mov w19, #3 + WORD $0x52800084 // mov w4, #4 + WORD $0x4f01e440 // movi.16b v0, #34 + WORD $0x4f02e781 // movi.16b v1, #92 +Lloh2: + WORD $0x10fffbc8 // adr x8, lCPI0_1 $-136(%rip) +Lloh3: + WORD $0x3dc00102 // ldr q2, [x8, lCPI0_1@PAGEOFF] $0(%rip) +Lloh4: + WORD $0x10fffc08 // adr x8, lCPI0_2 $-128(%rip) +Lloh5: + WORD $0x3dc00103 // ldr q3, [x8, lCPI0_2@PAGEOFF] $0(%rip) + WORD $0x92f00006 // mov x6, #9223372036854775807 + WORD $0x4f01e404 // movi.16b v4, #32 + WORD $0xb20903e7 // mov x7, #36028797027352576 + WORD $0xf2800027 // movk x7, #1 + WORD $0x4f01e5c5 // movi.16b v5, #46 + WORD $0x4f01e566 // movi.16b v6, #43 + WORD $0x4f01e5a7 // movi.16b v7, #45 + WORD $0x4f06e610 // movi.16b v16, #208 + WORD $0x4f00e551 // movi.16b v17, #10 + WORD $0x4f06e7f2 // movi.16b v18, #223 + WORD $0x4f02e4b3 // movi.16b v19, #69 + WORD $0x52800025 // mov w5, #1 +LBB0_1: + WORD $0xf9400408 // ldr x8, [x0, #8] + WORD $0xeb08039f // cmp x28, x8 + WORD $0x54000162 // b.hs LBB0_6 $44(%rip) + WORD $0x387c6931 // ldrb w17, [x9, x28] + WORD $0x7100363f // cmp w17, #13 + WORD $0x54000100 // b.eq LBB0_6 $32(%rip) + WORD $0x7100823f // cmp w17, #32 + WORD $0x540000c0 // b.eq LBB0_6 $24(%rip) + WORD $0x51002e31 // sub w17, w17, #11 + WORD $0x31000a3f // cmn w17, #2 + WORD $0x54000062 // b.hs LBB0_6 $12(%rip) + WORD $0xaa1c03fb // mov x27, x28 + WORD $0x14000031 // b LBB0_22 $196(%rip) +LBB0_6: + WORD $0x9100079b // add x27, x28, #1 + WORD $0xeb08037f // cmp x27, x8 + WORD $0x54000122 // b.hs LBB0_10 $36(%rip) + WORD $0x387b6931 // ldrb w17, [x9, x27] + WORD $0x7100363f // cmp w17, #13 + WORD $0x540000c0 // b.eq LBB0_10 $24(%rip) + WORD $0x7100823f // cmp w17, #32 + WORD $0x54000080 // b.eq LBB0_10 $16(%rip) + WORD $0x51002e31 // sub w17, w17, #11 + WORD $0x31000a3f // cmn w17, #2 + WORD $0x540004c3 // b.lo LBB0_22 $152(%rip) +LBB0_10: + WORD $0x91000b9b // add x27, x28, #2 + WORD $0xeb08037f // cmp x27, x8 + WORD $0x54000122 // b.hs LBB0_14 $36(%rip) + WORD $0x387b6931 // ldrb w17, [x9, x27] + WORD $0x7100363f // cmp w17, #13 + WORD $0x540000c0 // b.eq LBB0_14 $24(%rip) + WORD $0x7100823f // cmp w17, #32 + WORD $0x54000080 // b.eq LBB0_14 $16(%rip) + WORD $0x51002e31 // sub w17, w17, #11 + WORD $0x31000a3f // cmn w17, #2 + WORD $0x54000363 // b.lo LBB0_22 $108(%rip) +LBB0_14: + WORD $0x91000f9b // add x27, x28, #3 + WORD $0xeb08037f // cmp x27, x8 + WORD $0x54000122 // b.hs LBB0_18 $36(%rip) + WORD $0x387b6931 // ldrb w17, [x9, x27] + WORD $0x7100363f // cmp w17, #13 + WORD $0x540000c0 // b.eq LBB0_18 $24(%rip) + WORD $0x7100823f // cmp w17, #32 + WORD $0x54000080 // b.eq LBB0_18 $16(%rip) + WORD $0x51002e31 // sub w17, w17, #11 + WORD $0x31000a3f // cmn w17, #2 + WORD $0x54000203 // b.lo LBB0_22 $64(%rip) +LBB0_18: + WORD $0x9100139b // add x27, x28, #4 + WORD $0xeb08037f // cmp x27, x8 + WORD $0x5400e922 // b.hs LBB0_395 $7460(%rip) +LBB0_19: + WORD $0x387b6931 // ldrb w17, [x9, x27] + WORD $0x7100823f // cmp w17, #32 + WORD $0x9ad121f1 // lsl x17, x15, x17 + WORD $0x8a100231 // and x17, x17, x16 + WORD $0xfa409a24 // ccmp x17, #0, #4, ls + WORD $0x540000a0 // b.eq LBB0_21 $20(%rip) + WORD $0x9100077b // add x27, x27, #1 + WORD $0xeb1b011f // cmp x8, x27 + WORD $0x54ffff01 // b.ne LBB0_19 $-32(%rip) + WORD $0x14000735 // b LBB0_393 $7380(%rip) +LBB0_21: + WORD $0xeb08037f // cmp x27, x8 + WORD $0x5400e662 // b.hs LBB0_393 $7372(%rip) +LBB0_22: + WORD $0x9100077c // add x28, x27, #1 + WORD $0xf900003c // str x28, [x1] + WORD $0x8b1b013e // add lr, x9, x27 + WORD $0x394003d5 // ldrb w21, [lr] + WORD $0x3400e5d5 // cbz w21, LBB0_393 $7352(%rip) + WORD $0xd10004b4 // sub x20, x5, #1 + WORD $0xf8747948 // ldr x8, [x10, x20, lsl #3] + WORD $0xb10005df // cmn x14, #1 + WORD $0x9a8e036e // csel x14, x27, x14, eq + WORD $0x71000d1f // cmp w8, #3 + WORD $0x54000c8c // b.gt LBB0_39 $400(%rip) + WORD $0x7100051f // cmp w8, #1 + WORD $0x540018c0 // b.eq LBB0_54 $792(%rip) + WORD $0x7100091f // cmp w8, #2 + WORD $0x54002c20 // b.eq LBB0_94 $1412(%rip) + WORD $0x71000d1f // cmp w8, #3 + WORD $0x540019c1 // b.ne LBB0_58 $824(%rip) + WORD $0x71008abf // cmp w21, #34 + WORD $0x5400f101 // b.ne LBB0_425 $7712(%rip) + WORD $0x3200f3e6 // mov w6, #1431655765 + WORD $0xf8347944 // str x4, [x10, x20, lsl #3] + WORD $0xf9400408 // ldr x8, [x0, #8] + WORD $0xeb1c0114 // subs x20, x8, x28 + WORD $0x372831a3 // tbnz w3, #5, LBB0_109 $1588(%rip) + WORD $0x5400e560 // b.eq LBB0_398 $7340(%rip) + WORD $0xf101029f // cmp x20, #64 + WORD $0x54009103 // b.lo LBB0_250 $4640(%rip) + WORD $0xd2800005 // mov x5, #0 + WORD $0x92800008 // mov x8, #-1 +LBB0_32: + WORD $0x8b1c0131 // add x17, x9, x28 + WORD $0xad405634 // ldp q20, q21, [x17] + WORD $0xad415e36 // ldp q22, q23, [x17, #32] + WORD $0x6e208e98 // cmeq.16b v24, v20, v0 + WORD $0x6e208eb9 // cmeq.16b v25, v21, v0 + WORD $0x6e208eda // cmeq.16b v26, v22, v0 + WORD $0x6e208efb // cmeq.16b v27, v23, v0 + WORD $0x6e218e94 // cmeq.16b v20, v20, v1 + WORD $0x6e218eb5 // cmeq.16b v21, v21, v1 + WORD $0x6e218ed6 // cmeq.16b v22, v22, v1 + WORD $0x6e218ef7 // cmeq.16b v23, v23, v1 + WORD $0x4e221f18 // and.16b v24, v24, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260311 // fmov w17, s24 + WORD $0x4e221f38 // and.16b v24, v25, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260307 // fmov w7, s24 + WORD $0x4e221f58 // and.16b v24, v26, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260315 // fmov w21, s24 + WORD $0x4e221f78 // and.16b v24, v27, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260316 // fmov w22, s24 + WORD $0x4e221e94 // and.16b v20, v20, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e260297 // fmov w23, s20 + WORD $0x4e221eb4 // and.16b v20, v21, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e260298 // fmov w24, s20 + WORD $0x4e221ed4 // and.16b v20, v22, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e260299 // fmov w25, s20 + WORD $0x4e221ef4 // and.16b v20, v23, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e26029a // fmov w26, s20 + WORD $0xd3607eb5 // lsl x21, x21, #32 + WORD $0xaa16c2b5 // orr x21, x21, x22, lsl #48 + WORD $0x53103ce7 // lsl w7, w7, #16 + WORD $0xaa0702a7 // orr x7, x21, x7 + WORD $0xaa1100e7 // orr x7, x7, x17 + WORD $0xd3607f31 // lsl x17, x25, #32 + WORD $0xaa1ac231 // orr x17, x17, x26, lsl #48 + WORD $0x53103f15 // lsl w21, w24, #16 + WORD $0xaa150231 // orr x17, x17, x21 + WORD $0xaa170231 // orr x17, x17, x23 + WORD $0xb5000111 // cbnz x17, LBB0_36 $32(%rip) + WORD $0xb5000185 // cbnz x5, LBB0_37 $48(%rip) + WORD $0xb50002c7 // cbnz x7, LBB0_38 $88(%rip) +LBB0_35: + WORD $0xd1010294 // sub x20, x20, #64 + WORD $0x9101039c // add x28, x28, #64 + WORD $0xf100fe9f // cmp x20, #63 + WORD $0x54fff8a8 // b.hi LBB0_32 $-236(%rip) + WORD $0x14000441 // b LBB0_247 $4356(%rip) +LBB0_36: + WORD $0xb100051f // cmn x8, #1 + WORD $0xdac00235 // rbit x21, x17 + WORD $0xdac012b5 // clz x21, x21 + WORD $0x8b1c02b5 // add x21, x21, x28 + WORD $0x9a951108 // csel x8, x8, x21, ne +LBB0_37: + WORD $0x8a250235 // bic x21, x17, x5 + WORD $0xaa1504b6 // orr x22, x5, x21, lsl #1 + WORD $0x8a360231 // bic x17, x17, x22 + WORD $0x9201f231 // and x17, x17, #0xaaaaaaaaaaaaaaaa + WORD $0xab150231 // adds x17, x17, x21 + WORD $0x1a9f37e5 // cset w5, hs + WORD $0xd37ffa31 // lsl x17, x17, #1 + WORD $0xd200f231 // eor x17, x17, #0x5555555555555555 + WORD $0x8a160231 // and x17, x17, x22 + WORD $0x8a3100e7 // bic x7, x7, x17 + WORD $0xb4fffd87 // cbz x7, LBB0_35 $-80(%rip) +LBB0_38: + WORD $0xdac000f1 // rbit x17, x7 + WORD $0xdac01231 // clz x17, x17 + WORD $0x8b1c0231 // add x17, x17, x28 + WORD $0x140001aa // b LBB0_121 $1704(%rip) +LBB0_39: + WORD $0x7100111f // cmp w8, #4 + WORD $0x54000d00 // b.eq LBB0_56 $416(%rip) + WORD $0x7100151f // cmp w8, #5 + WORD $0x54002060 // b.eq LBB0_96 $1036(%rip) + WORD $0x7100191f // cmp w8, #6 + WORD $0x54000d61 // b.ne LBB0_58 $428(%rip) + WORD $0x71008abf // cmp w21, #34 + WORD $0x54001f81 // b.ne LBB0_95 $1008(%rip) + WORD $0x3200f3e4 // mov w4, #1431655765 + WORD $0x52800048 // mov w8, #2 + WORD $0xf8347948 // str x8, [x10, x20, lsl #3] + WORD $0xf9400408 // ldr x8, [x0, #8] + WORD $0xeb1c0114 // subs x20, x8, x28 + WORD $0x37283923 // tbnz w3, #5, LBB0_138 $1828(%rip) + WORD $0x5400d8e0 // b.eq LBB0_398 $6940(%rip) + WORD $0xf101029f // cmp x20, #64 + WORD $0x54009423 // b.lo LBB0_277 $4740(%rip) + WORD $0xd2800005 // mov x5, #0 + WORD $0x92800008 // mov x8, #-1 +LBB0_47: + WORD $0x8b1c0131 // add x17, x9, x28 + WORD $0xad405634 // ldp q20, q21, [x17] + WORD $0xad415e36 // ldp q22, q23, [x17, #32] + WORD $0x6e208e98 // cmeq.16b v24, v20, v0 + WORD $0x6e208eb9 // cmeq.16b v25, v21, v0 + WORD $0x6e208eda // cmeq.16b v26, v22, v0 + WORD $0x6e208efb // cmeq.16b v27, v23, v0 + WORD $0x6e218e94 // cmeq.16b v20, v20, v1 + WORD $0x6e218eb5 // cmeq.16b v21, v21, v1 + WORD $0x6e218ed6 // cmeq.16b v22, v22, v1 + WORD $0x6e218ef7 // cmeq.16b v23, v23, v1 + WORD $0x4e221f18 // and.16b v24, v24, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260311 // fmov w17, s24 + WORD $0x4e221f38 // and.16b v24, v25, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260307 // fmov w7, s24 + WORD $0x4e221f58 // and.16b v24, v26, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260315 // fmov w21, s24 + WORD $0x4e221f78 // and.16b v24, v27, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260316 // fmov w22, s24 + WORD $0x4e221e94 // and.16b v20, v20, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e260297 // fmov w23, s20 + WORD $0x4e221eb4 // and.16b v20, v21, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e260298 // fmov w24, s20 + WORD $0x4e221ed4 // and.16b v20, v22, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e260299 // fmov w25, s20 + WORD $0x4e221ef4 // and.16b v20, v23, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e26029a // fmov w26, s20 + WORD $0xd3607eb5 // lsl x21, x21, #32 + WORD $0xaa16c2b5 // orr x21, x21, x22, lsl #48 + WORD $0x53103ce7 // lsl w7, w7, #16 + WORD $0xaa0702a7 // orr x7, x21, x7 + WORD $0xaa1100e7 // orr x7, x7, x17 + WORD $0xd3607f31 // lsl x17, x25, #32 + WORD $0xaa1ac231 // orr x17, x17, x26, lsl #48 + WORD $0x53103f15 // lsl w21, w24, #16 + WORD $0xaa150231 // orr x17, x17, x21 + WORD $0xaa170231 // orr x17, x17, x23 + WORD $0xb5000111 // cbnz x17, LBB0_51 $32(%rip) + WORD $0xb5000185 // cbnz x5, LBB0_52 $48(%rip) + WORD $0xb50002c7 // cbnz x7, LBB0_53 $88(%rip) +LBB0_50: + WORD $0xd1010294 // sub x20, x20, #64 + WORD $0x9101039c // add x28, x28, #64 + WORD $0xf100fe9f // cmp x20, #63 + WORD $0x54fff8a8 // b.hi LBB0_47 $-236(%rip) + WORD $0x1400045e // b LBB0_275 $4472(%rip) +LBB0_51: + WORD $0xb100051f // cmn x8, #1 + WORD $0xdac00235 // rbit x21, x17 + WORD $0xdac012b5 // clz x21, x21 + WORD $0x8b1c02b5 // add x21, x21, x28 + WORD $0x9a951108 // csel x8, x8, x21, ne +LBB0_52: + WORD $0x8a250235 // bic x21, x17, x5 + WORD $0xaa1504b6 // orr x22, x5, x21, lsl #1 + WORD $0x8a360231 // bic x17, x17, x22 + WORD $0x9201f231 // and x17, x17, #0xaaaaaaaaaaaaaaaa + WORD $0xab150231 // adds x17, x17, x21 + WORD $0x1a9f37e5 // cset w5, hs + WORD $0xd37ffa31 // lsl x17, x17, #1 + WORD $0xd200f231 // eor x17, x17, #0x5555555555555555 + WORD $0x8a160231 // and x17, x17, x22 + WORD $0x8a3100e7 // bic x7, x7, x17 + WORD $0xb4fffd87 // cbz x7, LBB0_50 $-80(%rip) +LBB0_53: + WORD $0xdac000f1 // rbit x17, x7 + WORD $0xdac01231 // clz x17, x17 + WORD $0x8b1c0231 // add x17, x17, x28 + WORD $0x140001e6 // b LBB0_150 $1944(%rip) +LBB0_54: + WORD $0x7100b2bf // cmp w21, #44 + WORD $0x540017e0 // b.eq LBB0_105 $764(%rip) + WORD $0x710176bf // cmp w21, #93 + WORD $0x54001420 // b.eq LBB0_97 $644(%rip) + WORD $0x140006c4 // b LBB0_425 $6928(%rip) +LBB0_56: + WORD $0x7100eabf // cmp w21, #58 + WORD $0x5400d841 // b.ne LBB0_425 $6920(%rip) + WORD $0xf834795f // str xzr, [x10, x20, lsl #3] + WORD $0xf9400045 // ldr x5, [x2] + WORD $0xaa0e03e8 // mov x8, x14 + WORD $0xb5ffdce5 // cbnz x5, LBB0_1 $-1124(%rip) + WORD $0x14000656 // b LBB0_394 $6488(%rip) +LBB0_58: + WORD $0xf9000054 // str x20, [x2] + WORD $0x92800028 // mov x8, #-2 + WORD $0x71016abf // cmp w21, #90 + WORD $0x540013cc // b.gt LBB0_99 $632(%rip) +LBB0_59: + WORD $0x5100c2b1 // sub w17, w21, #48 + WORD $0x71002a3f // cmp w17, #10 + WORD $0x54003d02 // b.hs LBB0_154 $1952(%rip) + WORD $0xf9400408 // ldr x8, [x0, #8] + WORD $0xeb1b0115 // subs x21, x8, x27 + WORD $0x5400cbe0 // b.eq LBB0_399 $6524(%rip) + WORD $0x394003c8 // ldrb w8, [lr] + WORD $0x7100c11f // cmp w8, #48 + WORD $0x54000141 // b.ne LBB0_65 $40(%rip) + WORD $0xf10006bf // cmp x21, #1 + WORD $0x54004280 // b.eq LBB0_170 $2128(%rip) + WORD $0x387c6928 // ldrb w8, [x9, x28] + WORD $0x5100b908 // sub w8, w8, #46 + WORD $0x7100dd1f // cmp w8, #55 + WORD $0x54004208 // b.hi LBB0_170 $2112(%rip) + WORD $0x9ac821e8 // lsl x8, x15, x8 + WORD $0xea07011f // tst x8, x7 + WORD $0x540041a0 // b.eq LBB0_170 $2100(%rip) +LBB0_65: + WORD $0xf10042bf // cmp x21, #16 + WORD $0x5400a5c3 // b.lo LBB0_333 $5304(%rip) + WORD $0xd2800016 // mov x22, #0 + WORD $0xd280001c // mov x28, #0 + WORD $0x92800014 // mov x20, #-1 + WORD $0x92800005 // mov x5, #-1 + WORD $0x92800008 // mov x8, #-1 +LBB0_67: + WORD $0x3cfc6bd4 // ldr q20, [lr, x28] + WORD $0x6e258e95 // cmeq.16b v21, v20, v5 + WORD $0x6e268e96 // cmeq.16b v22, v20, v6 + WORD $0x6e278e97 // cmeq.16b v23, v20, v7 + WORD $0x4e308698 // add.16b v24, v20, v16 + WORD $0x6e383638 // cmhi.16b v24, v17, v24 + WORD $0x4e321e94 // and.16b v20, v20, v18 + WORD $0x6e338e94 // cmeq.16b v20, v20, v19 + WORD $0x4eb71ed6 // orr.16b v22, v22, v23 + WORD $0x4eb51f17 // orr.16b v23, v24, v21 + WORD $0x4eb61e98 // orr.16b v24, v20, v22 + WORD $0x4eb81ef7 // orr.16b v23, v23, v24 + WORD $0x4e221eb5 // and.16b v21, v21, v2 + WORD $0x4e0302b5 // tbl.16b v21, { v21 }, v3 + WORD $0x4e71bab5 // addv.8h h21, v21 + WORD $0x1e2602b1 // fmov w17, s21 + WORD $0x4e221e94 // and.16b v20, v20, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e260297 // fmov w23, s20 + WORD $0x4e221ed4 // and.16b v20, v22, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e260299 // fmov w25, s20 + WORD $0x4e221ef4 // and.16b v20, v23, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e260287 // fmov w7, s20 + WORD $0x2a2703e7 // mvn w7, w7 + WORD $0x32103ce7 // orr w7, w7, #0xffff0000 + WORD $0x5ac000e7 // rbit w7, w7 + WORD $0x5ac010e7 // clz w7, w7 + WORD $0x12800004 // mov w4, #-1 + WORD $0x1ac72098 // lsl w24, w4, w7 + WORD $0x0a38023a // bic w26, w17, w24 + WORD $0x0a3802e4 // bic w4, w23, w24 + WORD $0x0a380326 // bic w6, w25, w24 + WORD $0x710040ff // cmp w7, #16 + WORD $0x1a9a0231 // csel w17, w17, w26, eq + WORD $0x1a8402f8 // csel w24, w23, w4, eq + WORD $0x1a860337 // csel w23, w25, w6, eq + WORD $0x51000624 // sub w4, w17, #1 + WORD $0x6a110099 // ands w25, w4, w17 + WORD $0x54006d81 // b.ne LBB0_245 $3504(%rip) + WORD $0x51000704 // sub w4, w24, #1 + WORD $0x6a180099 // ands w25, w4, w24 + WORD $0x54006d21 // b.ne LBB0_245 $3492(%rip) + WORD $0x510006e4 // sub w4, w23, #1 + WORD $0x6a170099 // ands w25, w4, w23 + WORD $0x54006cc1 // b.ne LBB0_245 $3480(%rip) + WORD $0x340000d1 // cbz w17, LBB0_73 $24(%rip) + WORD $0x5ac00231 // rbit w17, w17 + WORD $0x5ac01231 // clz w17, w17 + WORD $0xb100051f // cmn x8, #1 + WORD $0x54006cc1 // b.ne LBB0_246 $3480(%rip) + WORD $0x8b110388 // add x8, x28, x17 +LBB0_73: + WORD $0x340000d8 // cbz w24, LBB0_76 $24(%rip) + WORD $0x5ac00311 // rbit w17, w24 + WORD $0x5ac01231 // clz w17, w17 + WORD $0xb10004bf // cmn x5, #1 + WORD $0x54006c01 // b.ne LBB0_246 $3456(%rip) + WORD $0x8b110385 // add x5, x28, x17 +LBB0_76: + WORD $0x340000d7 // cbz w23, LBB0_79 $24(%rip) + WORD $0x5ac002f1 // rbit w17, w23 + WORD $0x5ac01231 // clz w17, w17 + WORD $0xb100069f // cmn x20, #1 + WORD $0x54006b41 // b.ne LBB0_246 $3432(%rip) + WORD $0x8b110394 // add x20, x28, x17 +LBB0_79: + WORD $0x710040ff // cmp w7, #16 + WORD $0x54001bc1 // b.ne LBB0_123 $888(%rip) + WORD $0x9100439c // add x28, x28, #16 + WORD $0xd10042d6 // sub x22, x22, #16 + WORD $0x8b1602b7 // add x23, x21, x22 + WORD $0xf1003eff // cmp x23, #15 + WORD $0x54fff6c8 // b.hi LBB0_67 $-296(%rip) + WORD $0x8b1c03d6 // add x22, lr, x28 + WORD $0xeb1c02bf // cmp x21, x28 + WORD $0x54001b00 // b.eq LBB0_124 $864(%rip) +LBB0_82: + WORD $0x8b1702d8 // add x24, x22, x23 + WORD $0x8b1b01b1 // add x17, x13, x27 + WORD $0xcb160235 // sub x21, x17, x22 + WORD $0xcb1e02c7 // sub x7, x22, lr + WORD $0xaa1603fc // mov x28, x22 + WORD $0x14000009 // b LBB0_85 $36(%rip) +LBB0_83: + WORD $0xb10004bf // cmn x5, #1 + WORD $0xaa0703e5 // mov x5, x7 + WORD $0x54001d81 // b.ne LBB0_136 $944(%rip) +LBB0_84: + WORD $0xd10006b5 // sub x21, x21, #1 + WORD $0x910004e7 // add x7, x7, #1 + WORD $0xaa1c03f6 // mov x22, x28 + WORD $0xd10006f7 // sub x23, x23, #1 + WORD $0xb40042d7 // cbz x23, LBB0_184 $2136(%rip) +LBB0_85: + WORD $0x38401791 // ldrb w17, [x28], #1 + WORD $0x5100c224 // sub w4, w17, #48 + WORD $0x7100289f // cmp w4, #10 + WORD $0x54ffff03 // b.lo LBB0_84 $-32(%rip) + WORD $0x7100b63f // cmp w17, #45 + WORD $0x5400016d // b.le LBB0_91 $44(%rip) + WORD $0x7101963f // cmp w17, #101 + WORD $0x54fffe20 // b.eq LBB0_83 $-60(%rip) + WORD $0x7101163f // cmp w17, #69 + WORD $0x54fffde0 // b.eq LBB0_83 $-68(%rip) + WORD $0x7100ba3f // cmp w17, #46 + WORD $0x540017c1 // b.ne LBB0_124 $760(%rip) + WORD $0xb100051f // cmn x8, #1 + WORD $0xaa0703e8 // mov x8, x7 + WORD $0x54fffda0 // b.eq LBB0_84 $-76(%rip) + WORD $0x140000d7 // b LBB0_136 $860(%rip) +LBB0_91: + WORD $0x7100ae3f // cmp w17, #43 + WORD $0x54000060 // b.eq LBB0_93 $12(%rip) + WORD $0x7100b63f // cmp w17, #45 + WORD $0x540016c1 // b.ne LBB0_124 $728(%rip) +LBB0_93: + WORD $0xb100069f // cmn x20, #1 + WORD $0xaa0703f4 // mov x20, x7 + WORD $0x54fffca0 // b.eq LBB0_84 $-108(%rip) + WORD $0x140000cf // b LBB0_136 $828(%rip) +LBB0_94: + WORD $0x7100b2bf // cmp w21, #44 + WORD $0x54000560 // b.eq LBB0_107 $172(%rip) +LBB0_95: + WORD $0x7101f6bf // cmp w21, #125 + WORD $0x54000080 // b.eq LBB0_97 $16(%rip) + WORD $0x14000627 // b LBB0_425 $6300(%rip) +LBB0_96: + WORD $0x710176bf // cmp w21, #93 + WORD $0x540000c1 // b.ne LBB0_98 $24(%rip) +LBB0_97: + WORD $0xf9000054 // str x20, [x2] + WORD $0xaa1403e5 // mov x5, x20 + WORD $0xaa0e03e8 // mov x8, x14 + WORD $0xb5ffc954 // cbnz x20, LBB0_1 $-1752(%rip) + WORD $0x140005b9 // b LBB0_394 $5860(%rip) +LBB0_98: + WORD $0xf834794f // str x15, [x10, x20, lsl #3] + WORD $0x92800028 // mov x8, #-2 + WORD $0x71016abf // cmp w21, #90 + WORD $0x54ffec8d // b.le LBB0_59 $-624(%rip) +LBB0_99: + WORD $0x7101b6bf // cmp w21, #109 + WORD $0x54002bad // b.le LBB0_160 $1396(%rip) + WORD $0x7101babf // cmp w21, #110 + WORD $0x54002e80 // b.eq LBB0_167 $1488(%rip) + WORD $0x7101d2bf // cmp w21, #116 + WORD $0x54002d00 // b.eq LBB0_165 $1440(%rip) + WORD $0x7101eebf // cmp w21, #123 + WORD $0x5400b5a1 // b.ne LBB0_394 $5812(%rip) + WORD $0xf9400048 // ldr x8, [x2] + WORD $0xf13ffd1f // cmp x8, #4095 + WORD $0x5400b6cc // b.gt LBB0_396 $5848(%rip) + WORD $0x91000511 // add x17, x8, #1 + WORD $0xf9000051 // str x17, [x2] + WORD $0x528000d1 // mov w17, #6 + WORD $0xf8287951 // str x17, [x10, x8, lsl #3] + WORD $0xf9400045 // ldr x5, [x2] + WORD $0xaa0e03e8 // mov x8, x14 + WORD $0xb5ffc665 // cbnz x5, LBB0_1 $-1844(%rip) + WORD $0x140005a2 // b LBB0_394 $5768(%rip) +LBB0_105: + WORD $0xf13ffcbf // cmp x5, #4095 + WORD $0x5400b58c // b.gt LBB0_396 $5808(%rip) + WORD $0x910004a8 // add x8, x5, #1 + WORD $0xf9000048 // str x8, [x2] + WORD $0xf825795f // str xzr, [x10, x5, lsl #3] + WORD $0xf9400045 // ldr x5, [x2] + WORD $0xaa0e03e8 // mov x8, x14 + WORD $0xb5ffc545 // cbnz x5, LBB0_1 $-1880(%rip) + WORD $0x14000599 // b LBB0_394 $5732(%rip) +LBB0_107: + WORD $0xf13ffcbf // cmp x5, #4095 + WORD $0x5400b46c // b.gt LBB0_396 $5772(%rip) + WORD $0x910004a8 // add x8, x5, #1 + WORD $0xf9000048 // str x8, [x2] + WORD $0xf8257953 // str x19, [x10, x5, lsl #3] + WORD $0xf9400045 // ldr x5, [x2] + WORD $0xaa0e03e8 // mov x8, x14 + WORD $0xb5ffc425 // cbnz x5, LBB0_1 $-1916(%rip) + WORD $0x14000590 // b LBB0_394 $5696(%rip) +LBB0_109: + WORD $0x5400b3e0 // b.eq LBB0_398 $5756(%rip) + WORD $0xf101029f // cmp x20, #64 + WORD $0x54006403 // b.lo LBB0_256 $3200(%rip) + WORD $0xd2800005 // mov x5, #0 + WORD $0x92800008 // mov x8, #-1 +LBB0_112: + WORD $0x8b1c0131 // add x17, x9, x28 + WORD $0xad405a37 // ldp q23, q22, [x17] + WORD $0xad415235 // ldp q21, q20, [x17, #32] + WORD $0x6e208ef8 // cmeq.16b v24, v23, v0 + WORD $0x4e221f18 // and.16b v24, v24, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260311 // fmov w17, s24 + WORD $0x6e208ed8 // cmeq.16b v24, v22, v0 + WORD $0x4e221f18 // and.16b v24, v24, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260307 // fmov w7, s24 + WORD $0x6e208eb8 // cmeq.16b v24, v21, v0 + WORD $0x4e221f18 // and.16b v24, v24, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260315 // fmov w21, s24 + WORD $0x6e208e98 // cmeq.16b v24, v20, v0 + WORD $0x4e221f18 // and.16b v24, v24, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260316 // fmov w22, s24 + WORD $0x6e218ef8 // cmeq.16b v24, v23, v1 + WORD $0x4e221f18 // and.16b v24, v24, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260317 // fmov w23, s24 + WORD $0x6e218ed8 // cmeq.16b v24, v22, v1 + WORD $0x4e221f18 // and.16b v24, v24, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260318 // fmov w24, s24 + WORD $0x6e218eb8 // cmeq.16b v24, v21, v1 + WORD $0x4e221f18 // and.16b v24, v24, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260319 // fmov w25, s24 + WORD $0x6e218e98 // cmeq.16b v24, v20, v1 + WORD $0x4e221f18 // and.16b v24, v24, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e26031a // fmov w26, s24 + WORD $0xd3607eb5 // lsl x21, x21, #32 + WORD $0xaa16c2b5 // orr x21, x21, x22, lsl #48 + WORD $0x53103ce7 // lsl w7, w7, #16 + WORD $0xaa0702a7 // orr x7, x21, x7 + WORD $0xaa1100e7 // orr x7, x7, x17 + WORD $0xd3607f31 // lsl x17, x25, #32 + WORD $0xaa1ac231 // orr x17, x17, x26, lsl #48 + WORD $0x53103f15 // lsl w21, w24, #16 + WORD $0xaa150231 // orr x17, x17, x21 + WORD $0xaa170231 // orr x17, x17, x23 + WORD $0xb5000451 // cbnz x17, LBB0_117 $136(%rip) + WORD $0xb50004c5 // cbnz x5, LBB0_118 $152(%rip) +LBB0_114: + WORD $0x6e373497 // cmhi.16b v23, v4, v23 + WORD $0x4e221ef7 // and.16b v23, v23, v2 + WORD $0x4e0302f7 // tbl.16b v23, { v23 }, v3 + WORD $0x4e71baf7 // addv.8h h23, v23 + WORD $0x1e2602f1 // fmov w17, s23 + WORD $0x6e363496 // cmhi.16b v22, v4, v22 + WORD $0x4e221ed6 // and.16b v22, v22, v2 + WORD $0x4e0302d6 // tbl.16b v22, { v22 }, v3 + WORD $0x4e71bad6 // addv.8h h22, v22 + WORD $0x1e2602d5 // fmov w21, s22 + WORD $0x6e353495 // cmhi.16b v21, v4, v21 + WORD $0x4e221eb5 // and.16b v21, v21, v2 + WORD $0x4e0302b5 // tbl.16b v21, { v21 }, v3 + WORD $0x4e71bab5 // addv.8h h21, v21 + WORD $0x1e2602b6 // fmov w22, s21 + WORD $0x6e343494 // cmhi.16b v20, v4, v20 + WORD $0x4e221e94 // and.16b v20, v20, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e260297 // fmov w23, s20 + WORD $0xd3607ed6 // lsl x22, x22, #32 + WORD $0xaa17c2d6 // orr x22, x22, x23, lsl #48 + WORD $0x53103eb5 // lsl w21, w21, #16 + WORD $0xaa1502d5 // orr x21, x22, x21 + WORD $0xaa1102b1 // orr x17, x21, x17 + WORD $0xb50002e7 // cbnz x7, LBB0_119 $92(%rip) + WORD $0xb500aa71 // cbnz x17, LBB0_404 $5452(%rip) + WORD $0xd1010294 // sub x20, x20, #64 + WORD $0x9101039c // add x28, x28, #64 + WORD $0xf100fe9f // cmp x20, #63 + WORD $0x54fff568 // b.hi LBB0_112 $-340(%rip) + WORD $0x1400029d // b LBB0_248 $2676(%rip) +LBB0_117: + WORD $0xb100051f // cmn x8, #1 + WORD $0xdac00235 // rbit x21, x17 + WORD $0xdac012b5 // clz x21, x21 + WORD $0x8b1c02b5 // add x21, x21, x28 + WORD $0x9a951108 // csel x8, x8, x21, ne +LBB0_118: + WORD $0x8a250235 // bic x21, x17, x5 + WORD $0xaa1504b6 // orr x22, x5, x21, lsl #1 + WORD $0x8a360231 // bic x17, x17, x22 + WORD $0x9201f231 // and x17, x17, #0xaaaaaaaaaaaaaaaa + WORD $0xab150231 // adds x17, x17, x21 + WORD $0x1a9f37e5 // cset w5, hs + WORD $0xd37ffa31 // lsl x17, x17, #1 + WORD $0xd200f231 // eor x17, x17, #0x5555555555555555 + WORD $0x8a160231 // and x17, x17, x22 + WORD $0x8a3100e7 // bic x7, x7, x17 + WORD $0x17ffffd1 // b LBB0_114 $-188(%rip) +LBB0_119: + WORD $0xdac000e5 // rbit x5, x7 + WORD $0xdac010a5 // clz x5, x5 + WORD $0xdac00231 // rbit x17, x17 + WORD $0xdac01231 // clz x17, x17 + WORD $0xeb05023f // cmp x17, x5 + WORD $0x5400b143 // b.lo LBB0_427 $5672(%rip) +LBB0_120: + WORD $0x8b1c00b1 // add x17, x5, x28 +LBB0_121: + WORD $0x9100063c // add x28, x17, #1 +LBB0_122: + WORD $0x52800084 // mov w4, #4 + WORD $0x92f00006 // mov x6, #9223372036854775807 + WORD $0xb20903e7 // mov x7, #36028797027352576 + WORD $0xf2800027 // movk x7, #1 + WORD $0xb6f81c9c // tbz x28, #63, LBB0_170 $912(%rip) + WORD $0x14000524 // b LBB0_397 $5264(%rip) +LBB0_123: + WORD $0x8b2743d1 // add x17, lr, w7, uxtw + WORD $0x8b1c0236 // add x22, x17, x28 +LBB0_124: + WORD $0x92800015 // mov x21, #-1 + WORD $0xb400a4c8 // cbz x8, LBB0_400 $5272(%rip) +LBB0_125: + WORD $0xb400a4b4 // cbz x20, LBB0_400 $5268(%rip) + WORD $0xb400a485 // cbz x5, LBB0_400 $5264(%rip) + WORD $0xcb1e02c7 // sub x7, x22, lr + WORD $0xd10004f1 // sub x17, x7, #1 + WORD $0xeb11011f // cmp x8, x17 + WORD $0x540002a0 // b.eq LBB0_135 $84(%rip) + WORD $0xeb11029f // cmp x20, x17 + WORD $0x54000260 // b.eq LBB0_135 $76(%rip) + WORD $0xeb1100bf // cmp x5, x17 + WORD $0x54000220 // b.eq LBB0_135 $68(%rip) + WORD $0xf1000691 // subs x17, x20, #1 + WORD $0x5400006b // b.lt LBB0_132 $12(%rip) + WORD $0xeb1100bf // cmp x5, x17 + WORD $0x5400a321 // b.ne LBB0_401 $5220(%rip) +LBB0_132: + WORD $0xaa050111 // orr x17, x8, x5 + WORD $0xb7f80071 // tbnz x17, #63, LBB0_134 $12(%rip) + WORD $0xeb05011f // cmp x8, x5 + WORD $0x5400a44a // b.ge LBB0_407 $5256(%rip) +LBB0_134: + WORD $0xd37ffe31 // lsr x17, x17, #63 + WORD $0x52000231 // eor w17, w17, #0x1 + WORD $0xd10004a4 // sub x4, x5, #1 + WORD $0xeb04011f // cmp x8, x4 + WORD $0x1a9f17e8 // cset w8, eq + WORD $0x6a08023f // tst w17, w8 + WORD $0xda8500f5 // csinv x21, x7, x5, eq + WORD $0x14000002 // b LBB0_136 $8(%rip) +LBB0_135: + WORD $0xcb0703f5 // neg x21, x7 +LBB0_136: + WORD $0x52800084 // mov w4, #4 + WORD $0x92f00006 // mov x6, #9223372036854775807 + WORD $0xb20903e7 // mov x7, #36028797027352576 + WORD $0xf2800027 // movk x7, #1 + WORD $0xb7f8a0d5 // tbnz x21, #63, LBB0_400 $5144(%rip) + WORD $0x8b15037c // add x28, x27, x21 + WORD $0x140000bd // b LBB0_170 $756(%rip) +LBB0_138: + WORD $0x54009fe0 // b.eq LBB0_398 $5116(%rip) + WORD $0xf101029f // cmp x20, #64 + WORD $0x54005fa3 // b.lo LBB0_283 $3060(%rip) + WORD $0xd2800005 // mov x5, #0 + WORD $0x92800008 // mov x8, #-1 +LBB0_141: + WORD $0x8b1c0131 // add x17, x9, x28 + WORD $0xad405a37 // ldp q23, q22, [x17] + WORD $0xad415235 // ldp q21, q20, [x17, #32] + WORD $0x6e208ef8 // cmeq.16b v24, v23, v0 + WORD $0x4e221f18 // and.16b v24, v24, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260311 // fmov w17, s24 + WORD $0x6e208ed8 // cmeq.16b v24, v22, v0 + WORD $0x4e221f18 // and.16b v24, v24, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260307 // fmov w7, s24 + WORD $0x6e208eb8 // cmeq.16b v24, v21, v0 + WORD $0x4e221f18 // and.16b v24, v24, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260315 // fmov w21, s24 + WORD $0x6e208e98 // cmeq.16b v24, v20, v0 + WORD $0x4e221f18 // and.16b v24, v24, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260316 // fmov w22, s24 + WORD $0x6e218ef8 // cmeq.16b v24, v23, v1 + WORD $0x4e221f18 // and.16b v24, v24, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260317 // fmov w23, s24 + WORD $0x6e218ed8 // cmeq.16b v24, v22, v1 + WORD $0x4e221f18 // and.16b v24, v24, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260318 // fmov w24, s24 + WORD $0x6e218eb8 // cmeq.16b v24, v21, v1 + WORD $0x4e221f18 // and.16b v24, v24, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260319 // fmov w25, s24 + WORD $0x6e218e98 // cmeq.16b v24, v20, v1 + WORD $0x4e221f18 // and.16b v24, v24, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e26031a // fmov w26, s24 + WORD $0xd3607eb5 // lsl x21, x21, #32 + WORD $0xaa16c2b5 // orr x21, x21, x22, lsl #48 + WORD $0x53103ce7 // lsl w7, w7, #16 + WORD $0xaa0702a7 // orr x7, x21, x7 + WORD $0xaa1100e7 // orr x7, x7, x17 + WORD $0xd3607f31 // lsl x17, x25, #32 + WORD $0xaa1ac231 // orr x17, x17, x26, lsl #48 + WORD $0x53103f15 // lsl w21, w24, #16 + WORD $0xaa150231 // orr x17, x17, x21 + WORD $0xaa170231 // orr x17, x17, x23 + WORD $0xb5000451 // cbnz x17, LBB0_146 $136(%rip) + WORD $0xb50004c5 // cbnz x5, LBB0_147 $152(%rip) +LBB0_143: + WORD $0x6e373497 // cmhi.16b v23, v4, v23 + WORD $0x4e221ef7 // and.16b v23, v23, v2 + WORD $0x4e0302f7 // tbl.16b v23, { v23 }, v3 + WORD $0x4e71baf7 // addv.8h h23, v23 + WORD $0x1e2602f1 // fmov w17, s23 + WORD $0x6e363496 // cmhi.16b v22, v4, v22 + WORD $0x4e221ed6 // and.16b v22, v22, v2 + WORD $0x4e0302d6 // tbl.16b v22, { v22 }, v3 + WORD $0x4e71bad6 // addv.8h h22, v22 + WORD $0x1e2602d5 // fmov w21, s22 + WORD $0x6e353495 // cmhi.16b v21, v4, v21 + WORD $0x4e221eb5 // and.16b v21, v21, v2 + WORD $0x4e0302b5 // tbl.16b v21, { v21 }, v3 + WORD $0x4e71bab5 // addv.8h h21, v21 + WORD $0x1e2602b6 // fmov w22, s21 + WORD $0x6e343494 // cmhi.16b v20, v4, v20 + WORD $0x4e221e94 // and.16b v20, v20, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e260297 // fmov w23, s20 + WORD $0xd3607ed6 // lsl x22, x22, #32 + WORD $0xaa17c2d6 // orr x22, x22, x23, lsl #48 + WORD $0x53103eb5 // lsl w21, w21, #16 + WORD $0xaa1502d5 // orr x21, x22, x21 + WORD $0xaa1102b1 // orr x17, x21, x17 + WORD $0xb50002e7 // cbnz x7, LBB0_148 $92(%rip) + WORD $0xb5009671 // cbnz x17, LBB0_404 $4812(%rip) + WORD $0xd1010294 // sub x20, x20, #64 + WORD $0x9101039c // add x28, x28, #64 + WORD $0xf100fe9f // cmp x20, #63 + WORD $0x54fff568 // b.hi LBB0_141 $-340(%rip) + WORD $0x1400027e // b LBB0_276 $2552(%rip) +LBB0_146: + WORD $0xb100051f // cmn x8, #1 + WORD $0xdac00235 // rbit x21, x17 + WORD $0xdac012b5 // clz x21, x21 + WORD $0x8b1c02b5 // add x21, x21, x28 + WORD $0x9a951108 // csel x8, x8, x21, ne +LBB0_147: + WORD $0x8a250235 // bic x21, x17, x5 + WORD $0xaa1504b6 // orr x22, x5, x21, lsl #1 + WORD $0x8a360231 // bic x17, x17, x22 + WORD $0x9201f231 // and x17, x17, #0xaaaaaaaaaaaaaaaa + WORD $0xab150231 // adds x17, x17, x21 + WORD $0x1a9f37e5 // cset w5, hs + WORD $0xd37ffa31 // lsl x17, x17, #1 + WORD $0xd200f231 // eor x17, x17, #0x5555555555555555 + WORD $0x8a160231 // and x17, x17, x22 + WORD $0x8a3100e7 // bic x7, x7, x17 + WORD $0x17ffffd1 // b LBB0_143 $-188(%rip) +LBB0_148: + WORD $0xdac000e5 // rbit x5, x7 + WORD $0xdac010a5 // clz x5, x5 + WORD $0xdac00231 // rbit x17, x17 + WORD $0xdac01231 // clz x17, x17 + WORD $0xeb05023f // cmp x17, x5 + WORD $0x54009d43 // b.lo LBB0_427 $5032(%rip) + WORD $0x8b1c00b1 // add x17, x5, x28 +LBB0_150: + WORD $0x9100063c // add x28, x17, #1 + WORD $0x52800084 // mov w4, #4 + WORD $0x92f00006 // mov x6, #9223372036854775807 + WORD $0xb20903e7 // mov x7, #36028797027352576 + WORD $0xf2800027 // movk x7, #1 + WORD $0xb7f890bc // tbnz x28, #63, LBB0_397 $4628(%rip) +LBB0_151: + WORD $0xf900003c // str x28, [x1] + WORD $0xaa1b03e8 // mov x8, x27 + WORD $0xb27ff7f1 // mov x17, #9223372036854775806 + WORD $0xeb11037f // cmp x27, x17 + WORD $0x54008e48 // b.hi LBB0_394 $4552(%rip) + WORD $0xf9400048 // ldr x8, [x2] + WORD $0xf13ffd1f // cmp x8, #4095 + WORD $0x54008f6c // b.gt LBB0_396 $4588(%rip) + WORD $0x91000511 // add x17, x8, #1 + WORD $0xf9000051 // str x17, [x2] + WORD $0xf8287944 // str x4, [x10, x8, lsl #3] + WORD $0xf9400045 // ldr x5, [x2] + WORD $0xaa0e03e8 // mov x8, x14 + WORD $0xb5ff9f25 // cbnz x5, LBB0_1 $-3100(%rip) + WORD $0x14000468 // b LBB0_394 $4512(%rip) +LBB0_154: + WORD $0x71008abf // cmp w21, #34 + WORD $0x540008c0 // b.eq LBB0_174 $280(%rip) + WORD $0x7100b6bf // cmp w21, #45 + WORD $0x54008c81 // b.ne LBB0_394 $4496(%rip) + WORD $0xf9400408 // ldr x8, [x0, #8] + WORD $0xeb1c0118 // subs x24, x8, x28 + WORD $0x540090c0 // b.eq LBB0_408 $4632(%rip) + WORD $0xb20903e4 // mov x4, #36028797027352576 + WORD $0xf2800024 // movk x4, #1 + WORD $0x8b1c0128 // add x8, x9, x28 + WORD $0x39400111 // ldrb w17, [x8] + WORD $0x7100c23f // cmp w17, #48 + WORD $0x54002281 // b.ne LBB0_198 $1104(%rip) + WORD $0xf100071f // cmp x24, #1 + WORD $0x54002141 // b.ne LBB0_196 $1064(%rip) +LBB0_159: + WORD $0x52800027 // mov w7, #1 + WORD $0x140001ac // b LBB0_244 $1712(%rip) +LBB0_160: + WORD $0x71016ebf // cmp w21, #91 + WORD $0x54000540 // b.eq LBB0_172 $168(%rip) + WORD $0x71019abf // cmp w21, #102 + WORD $0x54008a61 // b.ne LBB0_394 $4428(%rip) + WORD $0xf9400408 // ldr x8, [x0, #8] + WORD $0xd1001111 // sub x17, x8, #4 + WORD $0xeb11037f // cmp x27, x17 + WORD $0x54008de2 // b.hs LBB0_406 $4540(%rip) + WORD $0xb87c6928 // ldr w8, [x9, x28] + WORD $0x528d8c31 // mov w17, #27745 + WORD $0x72acae71 // movk w17, #25971, lsl #16 + WORD $0x6b11011f // cmp w8, w17 + WORD $0x54009381 // b.ne LBB0_420 $4720(%rip) + WORD $0x9100177c // add x28, x27, #5 + WORD $0x14000015 // b LBB0_170 $84(%rip) +LBB0_165: + WORD $0xf9400408 // ldr x8, [x0, #8] + WORD $0xd1000d11 // sub x17, x8, #3 + WORD $0xeb11037f // cmp x27, x17 + WORD $0x54008c82 // b.hs LBB0_406 $4496(%rip) + WORD $0xb87b6928 // ldr w8, [x9, x27] + WORD $0x528e4e91 // mov w17, #29300 + WORD $0x72acaeb1 // movk w17, #25973, lsl #16 + WORD $0x6b11011f // cmp w8, w17 + WORD $0x54000160 // b.eq LBB0_169 $44(%rip) + WORD $0x1400047b // b LBB0_415 $4588(%rip) +LBB0_167: + WORD $0xf9400408 // ldr x8, [x0, #8] + WORD $0xd1000d11 // sub x17, x8, #3 + WORD $0xeb11037f // cmp x27, x17 + WORD $0x54008b42 // b.hs LBB0_406 $4456(%rip) + WORD $0xb87b6928 // ldr w8, [x9, x27] + WORD $0x528eadd1 // mov w17, #30062 + WORD $0x72ad8d91 // movk w17, #27756, lsl #16 + WORD $0x6b11011f // cmp w8, w17 + WORD $0x54008bc1 // b.ne LBB0_411 $4472(%rip) +LBB0_169: + WORD $0x9100137c // add x28, x27, #4 +LBB0_170: + WORD $0xf900003c // str x28, [x1] + WORD $0xaa1b03e8 // mov x8, x27 + WORD $0xeb06037f // cmp x27, x6 + WORD $0x54008602 // b.hs LBB0_394 $4288(%rip) +LBB0_171: + WORD $0xf9400045 // ldr x5, [x2] + WORD $0xaa0e03e8 // mov x8, x14 + WORD $0xb5ff97a5 // cbnz x5, LBB0_1 $-3340(%rip) + WORD $0x1400042c // b LBB0_394 $4272(%rip) +LBB0_172: + WORD $0xf9400048 // ldr x8, [x2] + WORD $0xf13ffd1f // cmp x8, #4095 + WORD $0x540086ac // b.gt LBB0_396 $4308(%rip) + WORD $0x91000511 // add x17, x8, #1 + WORD $0xf9000051 // str x17, [x2] + WORD $0x528000b1 // mov w17, #5 + WORD $0xf8287951 // str x17, [x10, x8, lsl #3] + WORD $0xf9400045 // ldr x5, [x2] + WORD $0xaa0e03e8 // mov x8, x14 + WORD $0xb5ff9645 // cbnz x5, LBB0_1 $-3384(%rip) + WORD $0x14000421 // b LBB0_394 $4228(%rip) +LBB0_174: + WORD $0x3200f3f8 // mov w24, #1431655765 + WORD $0xf9400408 // ldr x8, [x0, #8] + WORD $0xeb1c0114 // subs x20, x8, x28 + WORD $0x37280b43 // tbnz w3, #5, LBB0_185 $360(%rip) + WORD $0x54008580 // b.eq LBB0_398 $4272(%rip) + WORD $0xf101029f // cmp x20, #64 + WORD $0x540051e3 // b.lo LBB0_307 $2620(%rip) + WORD $0xd2800005 // mov x5, #0 + WORD $0x92800008 // mov x8, #-1 +LBB0_178: + WORD $0x8b1c0131 // add x17, x9, x28 + WORD $0xad405634 // ldp q20, q21, [x17] + WORD $0xad415e36 // ldp q22, q23, [x17, #32] + WORD $0x6e208e98 // cmeq.16b v24, v20, v0 + WORD $0x6e208eb9 // cmeq.16b v25, v21, v0 + WORD $0x6e208eda // cmeq.16b v26, v22, v0 + WORD $0x6e208efb // cmeq.16b v27, v23, v0 + WORD $0x6e218e94 // cmeq.16b v20, v20, v1 + WORD $0x6e218eb5 // cmeq.16b v21, v21, v1 + WORD $0x6e218ed6 // cmeq.16b v22, v22, v1 + WORD $0x6e218ef7 // cmeq.16b v23, v23, v1 + WORD $0x4e221f18 // and.16b v24, v24, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260311 // fmov w17, s24 + WORD $0x4e221f38 // and.16b v24, v25, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260304 // fmov w4, s24 + WORD $0x4e221f58 // and.16b v24, v26, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260306 // fmov w6, s24 + WORD $0x4e221f78 // and.16b v24, v27, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260307 // fmov w7, s24 + WORD $0x4e221e94 // and.16b v20, v20, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e260293 // fmov w19, s20 + WORD $0x4e221eb4 // and.16b v20, v21, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e260295 // fmov w21, s20 + WORD $0x4e221ed4 // and.16b v20, v22, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e260296 // fmov w22, s20 + WORD $0x4e221ef4 // and.16b v20, v23, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e260297 // fmov w23, s20 + WORD $0xd3607cc6 // lsl x6, x6, #32 + WORD $0xaa07c0c6 // orr x6, x6, x7, lsl #48 + WORD $0x53103c84 // lsl w4, w4, #16 + WORD $0xaa0400c4 // orr x4, x6, x4 + WORD $0xaa110087 // orr x7, x4, x17 + WORD $0xd3607ed1 // lsl x17, x22, #32 + WORD $0xaa17c231 // orr x17, x17, x23, lsl #48 + WORD $0x53103ea4 // lsl w4, w21, #16 + WORD $0xaa040231 // orr x17, x17, x4 + WORD $0xaa130231 // orr x17, x17, x19 + WORD $0xb5000131 // cbnz x17, LBB0_182 $36(%rip) + WORD $0xb50001a5 // cbnz x5, LBB0_183 $52(%rip) + WORD $0x52800073 // mov w19, #3 + WORD $0xb5ffa2c7 // cbnz x7, LBB0_38 $-2984(%rip) +LBB0_181: + WORD $0xd1010294 // sub x20, x20, #64 + WORD $0x9101039c // add x28, x28, #64 + WORD $0xf100fe9f // cmp x20, #63 + WORD $0x54fff888 // b.hi LBB0_178 $-240(%rip) + WORD $0x14000247 // b LBB0_304 $2332(%rip) +LBB0_182: + WORD $0xb100051f // cmn x8, #1 + WORD $0xdac00224 // rbit x4, x17 + WORD $0xdac01084 // clz x4, x4 + WORD $0x8b1c0084 // add x4, x4, x28 + WORD $0x9a841108 // csel x8, x8, x4, ne +LBB0_183: + WORD $0x8a250224 // bic x4, x17, x5 + WORD $0xaa0404a6 // orr x6, x5, x4, lsl #1 + WORD $0x8a260231 // bic x17, x17, x6 + WORD $0x9201f231 // and x17, x17, #0xaaaaaaaaaaaaaaaa + WORD $0xab040231 // adds x17, x17, x4 + WORD $0x1a9f37e5 // cset w5, hs + WORD $0xd37ffa31 // lsl x17, x17, #1 + WORD $0xd200f231 // eor x17, x17, #0x5555555555555555 + WORD $0x8a060231 // and x17, x17, x6 + WORD $0x8a3100e7 // bic x7, x7, x17 + WORD $0x52800073 // mov w19, #3 + WORD $0xb4fffd67 // cbz x7, LBB0_181 $-84(%rip) + WORD $0x17fffcff // b LBB0_38 $-3076(%rip) +LBB0_184: + WORD $0xaa1803f6 // mov x22, x24 + WORD $0x92800015 // mov x21, #-1 + WORD $0xb5ffd688 // cbnz x8, LBB0_125 $-1328(%rip) + WORD $0x140003d8 // b LBB0_400 $3936(%rip) +LBB0_185: + WORD $0x54007a60 // b.eq LBB0_398 $3916(%rip) + WORD $0xf101029f // cmp x20, #64 + WORD $0x54004b43 // b.lo LBB0_313 $2408(%rip) + WORD $0xd2800005 // mov x5, #0 + WORD $0x92800008 // mov x8, #-1 +LBB0_188: + WORD $0x8b1c0131 // add x17, x9, x28 + WORD $0xad405a37 // ldp q23, q22, [x17] + WORD $0xad415235 // ldp q21, q20, [x17, #32] + WORD $0x6e208ef8 // cmeq.16b v24, v23, v0 + WORD $0x4e221f18 // and.16b v24, v24, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260311 // fmov w17, s24 + WORD $0x6e208ed8 // cmeq.16b v24, v22, v0 + WORD $0x4e221f18 // and.16b v24, v24, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260304 // fmov w4, s24 + WORD $0x6e208eb8 // cmeq.16b v24, v21, v0 + WORD $0x4e221f18 // and.16b v24, v24, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260306 // fmov w6, s24 + WORD $0x6e208e98 // cmeq.16b v24, v20, v0 + WORD $0x4e221f18 // and.16b v24, v24, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260307 // fmov w7, s24 + WORD $0x6e218ef8 // cmeq.16b v24, v23, v1 + WORD $0x4e221f18 // and.16b v24, v24, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260313 // fmov w19, s24 + WORD $0x6e218ed8 // cmeq.16b v24, v22, v1 + WORD $0x4e221f18 // and.16b v24, v24, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260315 // fmov w21, s24 + WORD $0x6e218eb8 // cmeq.16b v24, v21, v1 + WORD $0x4e221f18 // and.16b v24, v24, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260316 // fmov w22, s24 + WORD $0x6e218e98 // cmeq.16b v24, v20, v1 + WORD $0x4e221f18 // and.16b v24, v24, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260317 // fmov w23, s24 + WORD $0xd3607cc6 // lsl x6, x6, #32 + WORD $0xaa07c0c6 // orr x6, x6, x7, lsl #48 + WORD $0x53103c84 // lsl w4, w4, #16 + WORD $0xaa0400c4 // orr x4, x6, x4 + WORD $0xaa110087 // orr x7, x4, x17 + WORD $0xd3607ed1 // lsl x17, x22, #32 + WORD $0xaa17c231 // orr x17, x17, x23, lsl #48 + WORD $0x53103ea4 // lsl w4, w21, #16 + WORD $0xaa040231 // orr x17, x17, x4 + WORD $0xaa130231 // orr x17, x17, x19 + WORD $0xb5000451 // cbnz x17, LBB0_193 $136(%rip) + WORD $0xb50004c5 // cbnz x5, LBB0_194 $152(%rip) +LBB0_190: + WORD $0x6e373497 // cmhi.16b v23, v4, v23 + WORD $0x4e221ef7 // and.16b v23, v23, v2 + WORD $0x4e0302f7 // tbl.16b v23, { v23 }, v3 + WORD $0x4e71baf7 // addv.8h h23, v23 + WORD $0x1e2602f1 // fmov w17, s23 + WORD $0x6e363496 // cmhi.16b v22, v4, v22 + WORD $0x4e221ed6 // and.16b v22, v22, v2 + WORD $0x4e0302d6 // tbl.16b v22, { v22 }, v3 + WORD $0x4e71bad6 // addv.8h h22, v22 + WORD $0x1e2602c4 // fmov w4, s22 + WORD $0x6e353495 // cmhi.16b v21, v4, v21 + WORD $0x4e221eb5 // and.16b v21, v21, v2 + WORD $0x4e0302b5 // tbl.16b v21, { v21 }, v3 + WORD $0x4e71bab5 // addv.8h h21, v21 + WORD $0x1e2602a6 // fmov w6, s21 + WORD $0x6e343494 // cmhi.16b v20, v4, v20 + WORD $0x4e221e94 // and.16b v20, v20, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e260293 // fmov w19, s20 + WORD $0xd3607cc6 // lsl x6, x6, #32 + WORD $0xaa13c0c6 // orr x6, x6, x19, lsl #48 + WORD $0x53103c84 // lsl w4, w4, #16 + WORD $0xaa0400c4 // orr x4, x6, x4 + WORD $0xaa110091 // orr x17, x4, x17 + WORD $0xb50002e7 // cbnz x7, LBB0_195 $92(%rip) + WORD $0xb50070f1 // cbnz x17, LBB0_404 $3612(%rip) + WORD $0xd1010294 // sub x20, x20, #64 + WORD $0x9101039c // add x28, x28, #64 + WORD $0xf100fe9f // cmp x20, #63 + WORD $0x54fff568 // b.hi LBB0_188 $-340(%rip) + WORD $0x140001d7 // b LBB0_305 $1884(%rip) +LBB0_193: + WORD $0xb100051f // cmn x8, #1 + WORD $0xdac00224 // rbit x4, x17 + WORD $0xdac01084 // clz x4, x4 + WORD $0x8b1c0084 // add x4, x4, x28 + WORD $0x9a841108 // csel x8, x8, x4, ne +LBB0_194: + WORD $0x8a250224 // bic x4, x17, x5 + WORD $0xaa0404a6 // orr x6, x5, x4, lsl #1 + WORD $0x8a260231 // bic x17, x17, x6 + WORD $0x9201f231 // and x17, x17, #0xaaaaaaaaaaaaaaaa + WORD $0xab040231 // adds x17, x17, x4 + WORD $0x1a9f37e5 // cset w5, hs + WORD $0xd37ffa31 // lsl x17, x17, #1 + WORD $0xd200f231 // eor x17, x17, #0x5555555555555555 + WORD $0x8a060231 // and x17, x17, x6 + WORD $0x8a3100e7 // bic x7, x7, x17 + WORD $0x17ffffd1 // b LBB0_190 $-188(%rip) +LBB0_195: + WORD $0xdac000e4 // rbit x4, x7 + WORD $0xdac01085 // clz x5, x4 + WORD $0xdac00231 // rbit x17, x17 + WORD $0xdac01231 // clz x17, x17 + WORD $0xeb05023f // cmp x17, x5 + WORD $0x52800073 // mov w19, #3 + WORD $0x54ffc682 // b.hs LBB0_120 $-1840(%rip) + WORD $0x140003bc // b LBB0_427 $3824(%rip) +LBB0_196: + WORD $0x39400511 // ldrb w17, [x8, #1] + WORD $0x5100ba31 // sub w17, w17, #46 + WORD $0x7100de3f // cmp w17, #55 + WORD $0x54ffde88 // b.hi LBB0_159 $-1072(%rip) + WORD $0x9ad121f1 // lsl x17, x15, x17 + WORD $0x52800027 // mov w7, #1 + WORD $0xea04023f // tst x17, x4 + WORD $0x540013a0 // b.eq LBB0_244 $628(%rip) +LBB0_198: + WORD $0xf100431f // cmp x24, #16 + WORD $0x54004803 // b.lo LBB0_335 $2304(%rip) + WORD $0xd2800017 // mov x23, #0 + WORD $0xd2800007 // mov x7, #0 + WORD $0x9280001e // mov lr, #-1 + WORD $0x92800005 // mov x5, #-1 + WORD $0x92800014 // mov x20, #-1 +LBB0_200: + WORD $0x3ce76914 // ldr q20, [x8, x7] + WORD $0x6e258e95 // cmeq.16b v21, v20, v5 + WORD $0x6e268e96 // cmeq.16b v22, v20, v6 + WORD $0x6e278e97 // cmeq.16b v23, v20, v7 + WORD $0x4e308698 // add.16b v24, v20, v16 + WORD $0x6e383638 // cmhi.16b v24, v17, v24 + WORD $0x4e321e94 // and.16b v20, v20, v18 + WORD $0x6e338e94 // cmeq.16b v20, v20, v19 + WORD $0x4eb71ed6 // orr.16b v22, v22, v23 + WORD $0x4eb51f17 // orr.16b v23, v24, v21 + WORD $0x4eb61e98 // orr.16b v24, v20, v22 + WORD $0x4eb81ef7 // orr.16b v23, v23, v24 + WORD $0x4e221eb5 // and.16b v21, v21, v2 + WORD $0x4e0302b5 // tbl.16b v21, { v21 }, v3 + WORD $0x4e71bab5 // addv.8h h21, v21 + WORD $0x1e2602b1 // fmov w17, s21 + WORD $0x4e221e94 // and.16b v20, v20, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e260284 // fmov w4, s20 + WORD $0x4e221ed4 // and.16b v20, v22, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e260286 // fmov w6, s20 + WORD $0x4e221ef4 // and.16b v20, v23, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e260295 // fmov w21, s20 + WORD $0x2a3503f5 // mvn w21, w21 + WORD $0x32103eb5 // orr w21, w21, #0xffff0000 + WORD $0x5ac002b5 // rbit w21, w21 + WORD $0x5ac012b5 // clz w21, w21 + WORD $0x12800013 // mov w19, #-1 + WORD $0x1ad52276 // lsl w22, w19, w21 + WORD $0x0a360239 // bic w25, w17, w22 + WORD $0x0a360093 // bic w19, w4, w22 + WORD $0x0a3600d6 // bic w22, w6, w22 + WORD $0x710042bf // cmp w21, #16 + WORD $0x1a99023a // csel w26, w17, w25, eq + WORD $0x1a930091 // csel w17, w4, w19, eq + WORD $0x1a9600d6 // csel w22, w6, w22, eq + WORD $0x51000744 // sub w4, w26, #1 + WORD $0x6a1a0099 // ands w25, w4, w26 + WORD $0x54002f81 // b.ne LBB0_303 $1520(%rip) + WORD $0x51000624 // sub w4, w17, #1 + WORD $0x6a110099 // ands w25, w4, w17 + WORD $0x54002f21 // b.ne LBB0_303 $1508(%rip) + WORD $0x510006c4 // sub w4, w22, #1 + WORD $0x6a160099 // ands w25, w4, w22 + WORD $0x54002ec1 // b.ne LBB0_303 $1496(%rip) + WORD $0x340000da // cbz w26, LBB0_206 $24(%rip) + WORD $0x5ac00344 // rbit w4, w26 + WORD $0x5ac0109a // clz w26, w4 + WORD $0xb100069f // cmn x20, #1 + WORD $0x54004001 // b.ne LBB0_334 $2048(%rip) + WORD $0x8b1a00f4 // add x20, x7, x26 +LBB0_206: + WORD $0x340000d1 // cbz w17, LBB0_209 $24(%rip) + WORD $0x5ac00231 // rbit w17, w17 + WORD $0x5ac01231 // clz w17, w17 + WORD $0xb10004bf // cmn x5, #1 + WORD $0x54002ea1 // b.ne LBB0_306 $1492(%rip) + WORD $0x8b1100e5 // add x5, x7, x17 +LBB0_209: + WORD $0x340000d6 // cbz w22, LBB0_212 $24(%rip) + WORD $0x5ac002d1 // rbit w17, w22 + WORD $0x5ac01231 // clz w17, w17 + WORD $0xb10007df // cmn lr, #1 + WORD $0x54002de1 // b.ne LBB0_306 $1468(%rip) + WORD $0x8b1100fe // add lr, x7, x17 +LBB0_212: + WORD $0x710042bf // cmp w21, #16 + WORD $0x540005e1 // b.ne LBB0_230 $188(%rip) + WORD $0x910040e7 // add x7, x7, #16 + WORD $0xd10042f7 // sub x23, x23, #16 + WORD $0x8b170315 // add x21, x24, x23 + WORD $0xf1003ebf // cmp x21, #15 + WORD $0x54fff6c8 // b.hi LBB0_200 $-296(%rip) + WORD $0x8b070116 // add x22, x8, x7 + WORD $0xeb07031f // cmp x24, x7 + WORD $0x52800073 // mov w19, #3 + WORD $0x54000520 // b.eq LBB0_231 $164(%rip) +LBB0_215: + WORD $0x8b1502c6 // add x6, x22, x21 + WORD $0x8b160191 // add x17, x12, x22 + WORD $0xcb1b0238 // sub x24, x17, x27 + WORD $0xaa1603f7 // mov x23, x22 + WORD $0x14000008 // b LBB0_219 $32(%rip) +LBB0_216: + WORD $0xb10007df // cmn lr, #1 + WORD $0x54002a01 // b.ne LBB0_302 $1344(%rip) + WORD $0xd100071e // sub lr, x24, #1 +LBB0_218: + WORD $0x91000718 // add x24, x24, #1 + WORD $0xaa1703f6 // mov x22, x23 + WORD $0xd10006b5 // sub x21, x21, #1 + WORD $0xb4000a35 // cbz x21, LBB0_249 $324(%rip) +LBB0_219: + WORD $0x384016f1 // ldrb w17, [x23], #1 + WORD $0x5100c224 // sub w4, w17, #48 + WORD $0x7100289f // cmp w4, #10 + WORD $0x54ffff23 // b.lo LBB0_218 $-28(%rip) + WORD $0x7100b63f // cmp w17, #45 + WORD $0x5400016d // b.le LBB0_226 $44(%rip) + WORD $0x7101963f // cmp w17, #101 + WORD $0x540001c0 // b.eq LBB0_228 $56(%rip) + WORD $0x7101163f // cmp w17, #69 + WORD $0x54000180 // b.eq LBB0_228 $48(%rip) + WORD $0x7100ba3f // cmp w17, #46 + WORD $0x54000221 // b.ne LBB0_231 $68(%rip) + WORD $0xb100069f // cmn x20, #1 + WORD $0x540027a1 // b.ne LBB0_302 $1268(%rip) + WORD $0xd1000714 // sub x20, x24, #1 + WORD $0x17ffffed // b LBB0_218 $-76(%rip) +LBB0_226: + WORD $0x7100ae3f // cmp w17, #43 + WORD $0x54fffd00 // b.eq LBB0_216 $-96(%rip) + WORD $0x7100b63f // cmp w17, #45 + WORD $0x54fffcc0 // b.eq LBB0_216 $-104(%rip) + WORD $0x14000008 // b LBB0_231 $32(%rip) +LBB0_228: + WORD $0xb10004bf // cmn x5, #1 + WORD $0x54002681 // b.ne LBB0_302 $1232(%rip) + WORD $0xd1000705 // sub x5, x24, #1 + WORD $0x17ffffe4 // b LBB0_218 $-112(%rip) +LBB0_230: + WORD $0x8b354111 // add x17, x8, w21, uxtw + WORD $0x8b070236 // add x22, x17, x7 + WORD $0x52800073 // mov w19, #3 +LBB0_231: + WORD $0x92800007 // mov x7, #-1 + WORD $0xb4005dd4 // cbz x20, LBB0_409 $3000(%rip) +LBB0_232: + WORD $0xb4005dbe // cbz lr, LBB0_409 $2996(%rip) + WORD $0xb4005d85 // cbz x5, LBB0_409 $2992(%rip) + WORD $0xcb0802c8 // sub x8, x22, x8 + WORD $0xd1000511 // sub x17, x8, #1 + WORD $0xeb11029f // cmp x20, x17 + WORD $0x540002a0 // b.eq LBB0_242 $84(%rip) + WORD $0xeb1103df // cmp lr, x17 + WORD $0x54000260 // b.eq LBB0_242 $76(%rip) + WORD $0xeb1100bf // cmp x5, x17 + WORD $0x54000220 // b.eq LBB0_242 $68(%rip) + WORD $0xf10007d1 // subs x17, lr, #1 + WORD $0x5400006b // b.lt LBB0_239 $12(%rip) + WORD $0xeb1100bf // cmp x5, x17 + WORD $0x54005c21 // b.ne LBB0_410 $2948(%rip) +LBB0_239: + WORD $0xaa050291 // orr x17, x20, x5 + WORD $0xb7f80071 // tbnz x17, #63, LBB0_241 $12(%rip) + WORD $0xeb05029f // cmp x20, x5 + WORD $0x540063ea // b.ge LBB0_426 $3196(%rip) +LBB0_241: + WORD $0xd37ffe31 // lsr x17, x17, #63 + WORD $0x52000231 // eor w17, w17, #0x1 + WORD $0xd10004a4 // sub x4, x5, #1 + WORD $0xeb04029f // cmp x20, x4 + WORD $0x1a9f17e4 // cset w4, eq + WORD $0x6a04023f // tst w17, w4 + WORD $0xda850107 // csinv x7, x8, x5, eq + WORD $0x14000002 // b LBB0_243 $8(%rip) +LBB0_242: + WORD $0xcb0803e7 // neg x7, x8 +LBB0_243: + WORD $0xb7f85a47 // tbnz x7, #63, LBB0_409 $2888(%rip) +LBB0_244: + WORD $0x8b1c00fc // add x28, x7, x28 + WORD $0xf900003c // str x28, [x1] + WORD $0xaa1b03e8 // mov x8, x27 + WORD $0x92f00006 // mov x6, #9223372036854775807 + WORD $0xeb06037f // cmp x27, x6 + WORD $0x52800084 // mov w4, #4 + WORD $0xb20903e7 // mov x7, #36028797027352576 + WORD $0xf2800027 // movk x7, #1 + WORD $0x54ffce83 // b.lo LBB0_171 $-1584(%rip) + WORD $0x140002a2 // b LBB0_394 $2696(%rip) +LBB0_245: + WORD $0x5ac00328 // rbit w8, w25 + WORD $0x5ac01108 // clz w8, w8 + WORD $0xaa3c03f1 // mvn x17, x28 + WORD $0xcb080235 // sub x21, x17, x8 + WORD $0x17fffda7 // b LBB0_136 $-2404(%rip) +LBB0_246: + WORD $0xaa3c03e8 // mvn x8, x28 + WORD $0xcb314115 // sub x21, x8, w17, uxtw + WORD $0x17fffda4 // b LBB0_136 $-2416(%rip) +LBB0_247: + WORD $0x8b1c013c // add x28, x9, x28 + WORD $0x1400000a // b LBB0_251 $40(%rip) +LBB0_248: + WORD $0x8b1c013c // add x28, x9, x28 + WORD $0x1400002c // b LBB0_257 $176(%rip) +LBB0_249: + WORD $0xaa0603f6 // mov x22, x6 + WORD $0x92800007 // mov x7, #-1 + WORD $0xb5fff994 // cbnz x20, LBB0_232 $-208(%rip) + WORD $0x140002b8 // b LBB0_409 $2784(%rip) +LBB0_250: + WORD $0xd2800005 // mov x5, #0 + WORD $0x8b1c013c // add x28, x9, x28 + WORD $0x92800008 // mov x8, #-1 +LBB0_251: + WORD $0xf1008287 // subs x7, x20, #32 + WORD $0x54003463 // b.lo LBB0_339 $1676(%rip) + WORD $0xad405794 // ldp q20, q21, [x28] + WORD $0x6e208e96 // cmeq.16b v22, v20, v0 + WORD $0x6e208eb7 // cmeq.16b v23, v21, v0 + WORD $0x6e218e94 // cmeq.16b v20, v20, v1 + WORD $0x6e218eb5 // cmeq.16b v21, v21, v1 + WORD $0x4e221ed6 // and.16b v22, v22, v2 + WORD $0x4e0302d6 // tbl.16b v22, { v22 }, v3 + WORD $0x4e71bad6 // addv.8h h22, v22 + WORD $0x1e2602d4 // fmov w20, s22 + WORD $0x4e221ef6 // and.16b v22, v23, v2 + WORD $0x4e0302d6 // tbl.16b v22, { v22 }, v3 + WORD $0x4e71bad6 // addv.8h h22, v22 + WORD $0x1e2602d1 // fmov w17, s22 + WORD $0x4e221e94 // and.16b v20, v20, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e260295 // fmov w21, s20 + WORD $0x4e221eb4 // and.16b v20, v21, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e260296 // fmov w22, s20 + WORD $0x33103e34 // bfi w20, w17, #16, #16 + WORD $0x33103ed5 // bfi w21, w22, #16, #16 + WORD $0x35002ed5 // cbnz w21, LBB0_336 $1496(%rip) + WORD $0xb5002f65 // cbnz x5, LBB0_337 $1516(%rip) + WORD $0xb40030f4 // cbz x20, LBB0_338 $1564(%rip) +LBB0_255: + WORD $0xdac00291 // rbit x17, x20 + WORD $0xdac01231 // clz x17, x17 + WORD $0xcb090385 // sub x5, x28, x9 + WORD $0x8b1100b1 // add x17, x5, x17 + WORD $0x17fffd52 // b LBB0_121 $-2744(%rip) +LBB0_256: + WORD $0xd2800005 // mov x5, #0 + WORD $0x8b1c013c // add x28, x9, x28 + WORD $0x92800008 // mov x8, #-1 +LBB0_257: + WORD $0xf1008295 // subs x21, x20, #32 + WORD $0x54000643 // b.lo LBB0_265 $200(%rip) + WORD $0xad405395 // ldp q21, q20, [x28] + WORD $0x6e208eb6 // cmeq.16b v22, v21, v0 + WORD $0x4e221ed6 // and.16b v22, v22, v2 + WORD $0x4e0302d6 // tbl.16b v22, { v22 }, v3 + WORD $0x4e71bad6 // addv.8h h22, v22 + WORD $0x1e2602d4 // fmov w20, s22 + WORD $0x6e208e96 // cmeq.16b v22, v20, v0 + WORD $0x4e221ed6 // and.16b v22, v22, v2 + WORD $0x4e0302d6 // tbl.16b v22, { v22 }, v3 + WORD $0x4e71bad6 // addv.8h h22, v22 + WORD $0x1e2602d1 // fmov w17, s22 + WORD $0x6e218eb6 // cmeq.16b v22, v21, v1 + WORD $0x4e221ed6 // and.16b v22, v22, v2 + WORD $0x4e0302d6 // tbl.16b v22, { v22 }, v3 + WORD $0x4e71bad6 // addv.8h h22, v22 + WORD $0x1e2602c7 // fmov w7, s22 + WORD $0x6e218e96 // cmeq.16b v22, v20, v1 + WORD $0x4e221ed6 // and.16b v22, v22, v2 + WORD $0x4e0302d6 // tbl.16b v22, { v22 }, v3 + WORD $0x4e71bad6 // addv.8h h22, v22 + WORD $0x1e2602d6 // fmov w22, s22 + WORD $0x33103e34 // bfi w20, w17, #16, #16 + WORD $0x33103ec7 // bfi w7, w22, #16, #16 + WORD $0x35003047 // cbnz w7, LBB0_349 $1544(%rip) + WORD $0xb50030e5 // cbnz x5, LBB0_350 $1564(%rip) +LBB0_260: + WORD $0x6e353495 // cmhi.16b v21, v4, v21 + WORD $0x4e221eb5 // and.16b v21, v21, v2 + WORD $0x4e0302b5 // tbl.16b v21, { v21 }, v3 + WORD $0x4e71bab5 // addv.8h h21, v21 + WORD $0x1e2602a7 // fmov w7, s21 + WORD $0x6e343494 // cmhi.16b v20, v4, v20 + WORD $0x4e221e94 // and.16b v20, v20, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e260291 // fmov w17, s20 + WORD $0x33103e27 // bfi w7, w17, #16, #16 + WORD $0xdac000f1 // rbit x17, x7 + WORD $0xdac01231 // clz x17, x17 + WORD $0xb4000114 // cbz x20, LBB0_263 $32(%rip) + WORD $0xdac00285 // rbit x5, x20 + WORD $0xdac010a7 // clz x7, x5 + WORD $0xcb090385 // sub x5, x28, x9 + WORD $0xeb07023f // cmp x17, x7 + WORD $0x54005563 // b.lo LBB0_428 $2732(%rip) + WORD $0x8b0700b1 // add x17, x5, x7 + WORD $0x17fffd1f // b LBB0_121 $-2948(%rip) +LBB0_263: + WORD $0x35005547 // cbnz w7, LBB0_429 $2728(%rip) + WORD $0x9100839c // add x28, x28, #32 + WORD $0xaa1503f4 // mov x20, x21 +LBB0_265: + WORD $0xb5003965 // cbnz x5, LBB0_368 $1836(%rip) + WORD $0xb40048d4 // cbz x20, LBB0_398 $2328(%rip) +LBB0_267: + WORD $0xd2800005 // mov x5, #0 +LBB0_268: + WORD $0x38656b91 // ldrb w17, [x28, x5] + WORD $0x71008a3f // cmp w17, #34 + WORD $0x540002e0 // b.eq LBB0_274 $92(%rip) + WORD $0x7101723f // cmp w17, #92 + WORD $0x540000e0 // b.eq LBB0_272 $28(%rip) + WORD $0x71007e3f // cmp w17, #31 + WORD $0x54005429 // b.ls LBB0_430 $2692(%rip) + WORD $0x910004a5 // add x5, x5, #1 + WORD $0xeb05029f // cmp x20, x5 + WORD $0x54fffee1 // b.ne LBB0_268 $-36(%rip) + WORD $0x1400023a // b LBB0_398 $2280(%rip) +LBB0_272: + WORD $0xd1000691 // sub x17, x20, #1 + WORD $0xeb05023f // cmp x17, x5 + WORD $0x540046e0 // b.eq LBB0_398 $2268(%rip) + WORD $0x8b050391 // add x17, x28, x5 + WORD $0x8b0c0227 // add x7, x17, x12 + WORD $0xb100051f // cmn x8, #1 + WORD $0x9a8800e8 // csel x8, x7, x8, eq + WORD $0x91000a3c // add x28, x17, #2 + WORD $0xcb050291 // sub x17, x20, x5 + WORD $0xd1000a87 // sub x7, x20, #2 + WORD $0xd1000a34 // sub x20, x17, #2 + WORD $0xeb0500ff // cmp x7, x5 + WORD $0x54fffd01 // b.ne LBB0_267 $-96(%rip) + WORD $0x1400022c // b LBB0_398 $2224(%rip) +LBB0_274: + WORD $0x8b1c0191 // add x17, x12, x28 + WORD $0x8b050231 // add x17, x17, x5 + WORD $0x17fffcfd // b LBB0_121 $-3084(%rip) +LBB0_275: + WORD $0x8b1c013c // add x28, x9, x28 + WORD $0x14000006 // b LBB0_278 $24(%rip) +LBB0_276: + WORD $0x8b1c013c // add x28, x9, x28 + WORD $0x14000028 // b LBB0_284 $160(%rip) +LBB0_277: + WORD $0xd2800005 // mov x5, #0 + WORD $0x8b1c013c // add x28, x9, x28 + WORD $0x92800008 // mov x8, #-1 +LBB0_278: + WORD $0xf1008287 // subs x7, x20, #32 + WORD $0x54002d23 // b.lo LBB0_354 $1444(%rip) + WORD $0xad405794 // ldp q20, q21, [x28] + WORD $0x6e208e96 // cmeq.16b v22, v20, v0 + WORD $0x6e208eb7 // cmeq.16b v23, v21, v0 + WORD $0x6e218e94 // cmeq.16b v20, v20, v1 + WORD $0x6e218eb5 // cmeq.16b v21, v21, v1 + WORD $0x4e221ed6 // and.16b v22, v22, v2 + WORD $0x4e0302d6 // tbl.16b v22, { v22 }, v3 + WORD $0x4e71bad6 // addv.8h h22, v22 + WORD $0x1e2602d4 // fmov w20, s22 + WORD $0x4e221ef6 // and.16b v22, v23, v2 + WORD $0x4e0302d6 // tbl.16b v22, { v22 }, v3 + WORD $0x4e71bad6 // addv.8h h22, v22 + WORD $0x1e2602d1 // fmov w17, s22 + WORD $0x4e221e94 // and.16b v20, v20, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e260295 // fmov w21, s20 + WORD $0x4e221eb4 // and.16b v20, v21, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e260296 // fmov w22, s20 + WORD $0x33103e34 // bfi w20, w17, #16, #16 + WORD $0x33103ed5 // bfi w21, w22, #16, #16 + WORD $0x35002795 // cbnz w21, LBB0_351 $1264(%rip) + WORD $0xb5002825 // cbnz x5, LBB0_352 $1284(%rip) + WORD $0xb40029b4 // cbz x20, LBB0_353 $1332(%rip) +LBB0_282: + WORD $0xdac00291 // rbit x17, x20 + WORD $0xdac01231 // clz x17, x17 + WORD $0xcb090385 // sub x5, x28, x9 + WORD $0x8b1100b1 // add x17, x5, x17 + WORD $0x17fffd75 // b LBB0_150 $-2604(%rip) +LBB0_283: + WORD $0xd2800005 // mov x5, #0 + WORD $0x8b1c013c // add x28, x9, x28 + WORD $0x92800008 // mov x8, #-1 +LBB0_284: + WORD $0xf1008295 // subs x21, x20, #32 + WORD $0x54000643 // b.lo LBB0_292 $200(%rip) + WORD $0xad405395 // ldp q21, q20, [x28] + WORD $0x6e208eb6 // cmeq.16b v22, v21, v0 + WORD $0x4e221ed6 // and.16b v22, v22, v2 + WORD $0x4e0302d6 // tbl.16b v22, { v22 }, v3 + WORD $0x4e71bad6 // addv.8h h22, v22 + WORD $0x1e2602d4 // fmov w20, s22 + WORD $0x6e208e96 // cmeq.16b v22, v20, v0 + WORD $0x4e221ed6 // and.16b v22, v22, v2 + WORD $0x4e0302d6 // tbl.16b v22, { v22 }, v3 + WORD $0x4e71bad6 // addv.8h h22, v22 + WORD $0x1e2602d1 // fmov w17, s22 + WORD $0x6e218eb6 // cmeq.16b v22, v21, v1 + WORD $0x4e221ed6 // and.16b v22, v22, v2 + WORD $0x4e0302d6 // tbl.16b v22, { v22 }, v3 + WORD $0x4e71bad6 // addv.8h h22, v22 + WORD $0x1e2602c7 // fmov w7, s22 + WORD $0x6e218e96 // cmeq.16b v22, v20, v1 + WORD $0x4e221ed6 // and.16b v22, v22, v2 + WORD $0x4e0302d6 // tbl.16b v22, { v22 }, v3 + WORD $0x4e71bad6 // addv.8h h22, v22 + WORD $0x1e2602d6 // fmov w22, s22 + WORD $0x33103e34 // bfi w20, w17, #16, #16 + WORD $0x33103ec7 // bfi w7, w22, #16, #16 + WORD $0x350029a7 // cbnz w7, LBB0_364 $1332(%rip) + WORD $0xb5002a45 // cbnz x5, LBB0_365 $1352(%rip) +LBB0_287: + WORD $0x6e353495 // cmhi.16b v21, v4, v21 + WORD $0x4e221eb5 // and.16b v21, v21, v2 + WORD $0x4e0302b5 // tbl.16b v21, { v21 }, v3 + WORD $0x4e71bab5 // addv.8h h21, v21 + WORD $0x1e2602a7 // fmov w7, s21 + WORD $0x6e343494 // cmhi.16b v20, v4, v20 + WORD $0x4e221e94 // and.16b v20, v20, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e260291 // fmov w17, s20 + WORD $0x33103e27 // bfi w7, w17, #16, #16 + WORD $0xdac000f1 // rbit x17, x7 + WORD $0xdac01231 // clz x17, x17 + WORD $0xb4000114 // cbz x20, LBB0_290 $32(%rip) + WORD $0xdac00285 // rbit x5, x20 + WORD $0xdac010a7 // clz x7, x5 + WORD $0xcb090385 // sub x5, x28, x9 + WORD $0xeb07023f // cmp x17, x7 + WORD $0x540045c3 // b.lo LBB0_428 $2232(%rip) + WORD $0x8b0700b1 // add x17, x5, x7 + WORD $0x17fffd42 // b LBB0_150 $-2808(%rip) +LBB0_290: + WORD $0x350045a7 // cbnz w7, LBB0_429 $2228(%rip) + WORD $0x9100839c // add x28, x28, #32 + WORD $0xaa1503f4 // mov x20, x21 +LBB0_292: + WORD $0xb5002bc5 // cbnz x5, LBB0_372 $1400(%rip) + WORD $0xb4003934 // cbz x20, LBB0_398 $1828(%rip) +LBB0_294: + WORD $0xd2800005 // mov x5, #0 +LBB0_295: + WORD $0x38656b91 // ldrb w17, [x28, x5] + WORD $0x71008a3f // cmp w17, #34 + WORD $0x540002e0 // b.eq LBB0_301 $92(%rip) + WORD $0x7101723f // cmp w17, #92 + WORD $0x540000e0 // b.eq LBB0_299 $28(%rip) + WORD $0x71007e3f // cmp w17, #31 + WORD $0x54004489 // b.ls LBB0_430 $2192(%rip) + WORD $0x910004a5 // add x5, x5, #1 + WORD $0xeb05029f // cmp x20, x5 + WORD $0x54fffee1 // b.ne LBB0_295 $-36(%rip) + WORD $0x140001bd // b LBB0_398 $1780(%rip) +LBB0_299: + WORD $0xd1000691 // sub x17, x20, #1 + WORD $0xeb05023f // cmp x17, x5 + WORD $0x54003740 // b.eq LBB0_398 $1768(%rip) + WORD $0x8b050391 // add x17, x28, x5 + WORD $0x8b0c0227 // add x7, x17, x12 + WORD $0xb100051f // cmn x8, #1 + WORD $0x9a8800e8 // csel x8, x7, x8, eq + WORD $0x91000a3c // add x28, x17, #2 + WORD $0xcb050291 // sub x17, x20, x5 + WORD $0xd1000a87 // sub x7, x20, #2 + WORD $0xd1000a34 // sub x20, x17, #2 + WORD $0xeb0500ff // cmp x7, x5 + WORD $0x54fffd01 // b.ne LBB0_294 $-96(%rip) + WORD $0x140001af // b LBB0_398 $1724(%rip) +LBB0_301: + WORD $0x8b1c0191 // add x17, x12, x28 + WORD $0x8b050231 // add x17, x17, x5 + WORD $0x17fffd20 // b LBB0_150 $-2944(%rip) +LBB0_302: + WORD $0xcb1803e7 // neg x7, x24 + WORD $0x17fffeee // b LBB0_243 $-1096(%rip) +LBB0_303: + WORD $0x5ac00328 // rbit w8, w25 + WORD $0x5ac01108 // clz w8, w8 + WORD $0xaa2703f1 // mvn x17, x7 + WORD $0xcb080227 // sub x7, x17, x8 + WORD $0x52800073 // mov w19, #3 + WORD $0x17fffee8 // b LBB0_243 $-1120(%rip) +LBB0_304: + WORD $0x8b1c013c // add x28, x9, x28 + WORD $0x1400000a // b LBB0_308 $40(%rip) +LBB0_305: + WORD $0x8b1c013c // add x28, x9, x28 + WORD $0x1400002c // b LBB0_314 $176(%rip) +LBB0_306: + WORD $0xaa2703e8 // mvn x8, x7 + WORD $0xcb314107 // sub x7, x8, w17, uxtw + WORD $0x52800073 // mov w19, #3 + WORD $0x17fffee0 // b LBB0_243 $-1152(%rip) +LBB0_307: + WORD $0xd2800005 // mov x5, #0 + WORD $0x8b1c013c // add x28, x9, x28 + WORD $0x92800008 // mov x8, #-1 +LBB0_308: + WORD $0xf1008287 // subs x7, x20, #32 + WORD $0x540028e3 // b.lo LBB0_377 $1308(%rip) + WORD $0xad405794 // ldp q20, q21, [x28] + WORD $0x6e208e96 // cmeq.16b v22, v20, v0 + WORD $0x6e208eb7 // cmeq.16b v23, v21, v0 + WORD $0x6e218e94 // cmeq.16b v20, v20, v1 + WORD $0x6e218eb5 // cmeq.16b v21, v21, v1 + WORD $0x4e221ed6 // and.16b v22, v22, v2 + WORD $0x4e0302d6 // tbl.16b v22, { v22 }, v3 + WORD $0x4e71bad6 // addv.8h h22, v22 + WORD $0x1e2602d4 // fmov w20, s22 + WORD $0x4e221ef6 // and.16b v22, v23, v2 + WORD $0x4e0302d6 // tbl.16b v22, { v22 }, v3 + WORD $0x4e71bad6 // addv.8h h22, v22 + WORD $0x1e2602d1 // fmov w17, s22 + WORD $0x4e221e94 // and.16b v20, v20, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e260295 // fmov w21, s20 + WORD $0x4e221eb4 // and.16b v20, v21, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e260284 // fmov w4, s20 + WORD $0x33103e34 // bfi w20, w17, #16, #16 + WORD $0x33103c95 // bfi w21, w4, #16, #16 + WORD $0x35002375 // cbnz w21, LBB0_374 $1132(%rip) + WORD $0xb5002405 // cbnz x5, LBB0_375 $1152(%rip) + WORD $0xb4002574 // cbz x20, LBB0_376 $1196(%rip) +LBB0_312: + WORD $0xdac00291 // rbit x17, x20 + WORD $0xdac01231 // clz x17, x17 + WORD $0xcb090384 // sub x4, x28, x9 + WORD $0x8b110091 // add x17, x4, x17 + WORD $0x14000055 // b LBB0_332 $340(%rip) +LBB0_313: + WORD $0xd2800005 // mov x5, #0 + WORD $0x8b1c013c // add x28, x9, x28 + WORD $0x92800008 // mov x8, #-1 +LBB0_314: + WORD $0xf1008295 // subs x21, x20, #32 + WORD $0x54000643 // b.lo LBB0_322 $200(%rip) + WORD $0xad405395 // ldp q21, q20, [x28] + WORD $0x6e208eb6 // cmeq.16b v22, v21, v0 + WORD $0x4e221ed6 // and.16b v22, v22, v2 + WORD $0x4e0302d6 // tbl.16b v22, { v22 }, v3 + WORD $0x4e71bad6 // addv.8h h22, v22 + WORD $0x1e2602d4 // fmov w20, s22 + WORD $0x6e208e96 // cmeq.16b v22, v20, v0 + WORD $0x4e221ed6 // and.16b v22, v22, v2 + WORD $0x4e0302d6 // tbl.16b v22, { v22 }, v3 + WORD $0x4e71bad6 // addv.8h h22, v22 + WORD $0x1e2602d1 // fmov w17, s22 + WORD $0x6e218eb6 // cmeq.16b v22, v21, v1 + WORD $0x4e221ed6 // and.16b v22, v22, v2 + WORD $0x4e0302d6 // tbl.16b v22, { v22 }, v3 + WORD $0x4e71bad6 // addv.8h h22, v22 + WORD $0x1e2602c7 // fmov w7, s22 + WORD $0x6e218e96 // cmeq.16b v22, v20, v1 + WORD $0x4e221ed6 // and.16b v22, v22, v2 + WORD $0x4e0302d6 // tbl.16b v22, { v22 }, v3 + WORD $0x4e71bad6 // addv.8h h22, v22 + WORD $0x1e2602c4 // fmov w4, s22 + WORD $0x33103e34 // bfi w20, w17, #16, #16 + WORD $0x33103c87 // bfi w7, w4, #16, #16 + WORD $0x350024e7 // cbnz w7, LBB0_386 $1180(%rip) + WORD $0xb5002585 // cbnz x5, LBB0_387 $1200(%rip) +LBB0_317: + WORD $0x6e353495 // cmhi.16b v21, v4, v21 + WORD $0x4e221eb5 // and.16b v21, v21, v2 + WORD $0x4e0302b5 // tbl.16b v21, { v21 }, v3 + WORD $0x4e71bab5 // addv.8h h21, v21 + WORD $0x1e2602a7 // fmov w7, s21 + WORD $0x6e343494 // cmhi.16b v20, v4, v20 + WORD $0x4e221e94 // and.16b v20, v20, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e260291 // fmov w17, s20 + WORD $0x33103e27 // bfi w7, w17, #16, #16 + WORD $0xdac000f1 // rbit x17, x7 + WORD $0xdac01231 // clz x17, x17 + WORD $0xb4000114 // cbz x20, LBB0_320 $32(%rip) + WORD $0xdac00284 // rbit x4, x20 + WORD $0xdac01087 // clz x7, x4 + WORD $0xcb090385 // sub x5, x28, x9 + WORD $0xeb07023f // cmp x17, x7 + WORD $0x540034a3 // b.lo LBB0_428 $1684(%rip) + WORD $0x8b0700b1 // add x17, x5, x7 + WORD $0x14000022 // b LBB0_332 $136(%rip) +LBB0_320: + WORD $0x35003487 // cbnz w7, LBB0_429 $1680(%rip) + WORD $0x9100839c // add x28, x28, #32 + WORD $0xaa1503f4 // mov x20, x21 +LBB0_322: + WORD $0xb5002505 // cbnz x5, LBB0_391 $1184(%rip) + WORD $0xb4002814 // cbz x20, LBB0_398 $1280(%rip) +LBB0_324: + WORD $0xd2800005 // mov x5, #0 +LBB0_325: + WORD $0x38656b91 // ldrb w17, [x28, x5] + WORD $0x71008a3f // cmp w17, #34 + WORD $0x540002e0 // b.eq LBB0_331 $92(%rip) + WORD $0x7101723f // cmp w17, #92 + WORD $0x540000e0 // b.eq LBB0_329 $28(%rip) + WORD $0x71007e3f // cmp w17, #31 + WORD $0x54003369 // b.ls LBB0_430 $1644(%rip) + WORD $0x910004a5 // add x5, x5, #1 + WORD $0xeb05029f // cmp x20, x5 + WORD $0x54fffee1 // b.ne LBB0_325 $-36(%rip) + WORD $0x14000134 // b LBB0_398 $1232(%rip) +LBB0_329: + WORD $0xd1000691 // sub x17, x20, #1 + WORD $0xeb05023f // cmp x17, x5 + WORD $0x54002620 // b.eq LBB0_398 $1220(%rip) + WORD $0x8b050391 // add x17, x28, x5 + WORD $0x8b0c0224 // add x4, x17, x12 + WORD $0xb100051f // cmn x8, #1 + WORD $0x9a880088 // csel x8, x4, x8, eq + WORD $0x91000a3c // add x28, x17, #2 + WORD $0xcb050291 // sub x17, x20, x5 + WORD $0xd1000a84 // sub x4, x20, #2 + WORD $0xd1000a34 // sub x20, x17, #2 + WORD $0xeb05009f // cmp x4, x5 + WORD $0x54fffd01 // b.ne LBB0_324 $-96(%rip) + WORD $0x14000126 // b LBB0_398 $1176(%rip) +LBB0_331: + WORD $0x8b1c0191 // add x17, x12, x28 + WORD $0x8b050231 // add x17, x17, x5 +LBB0_332: + WORD $0x9100063c // add x28, x17, #1 + WORD $0x52800073 // mov w19, #3 + WORD $0x17fffbf6 // b LBB0_122 $-4136(%rip) +LBB0_333: + WORD $0x92800008 // mov x8, #-1 + WORD $0xaa1e03f6 // mov x22, lr + WORD $0xaa1503f7 // mov x23, x21 + WORD $0x92800005 // mov x5, #-1 + WORD $0x92800014 // mov x20, #-1 + WORD $0x17fffb21 // b LBB0_82 $-4988(%rip) +LBB0_334: + WORD $0xaa2703e8 // mvn x8, x7 + WORD $0xcb3a4107 // sub x7, x8, w26, uxtw + WORD $0x52800073 // mov w19, #3 + WORD $0x17fffe5b // b LBB0_243 $-1684(%rip) +LBB0_335: + WORD $0x92800014 // mov x20, #-1 + WORD $0xaa0803f6 // mov x22, x8 + WORD $0xaa1803f5 // mov x21, x24 + WORD $0x92800005 // mov x5, #-1 + WORD $0x9280001e // mov lr, #-1 + WORD $0x52800073 // mov w19, #3 + WORD $0x17fffe0f // b LBB0_215 $-1988(%rip) +LBB0_336: + WORD $0xdac002b1 // rbit x17, x21 + WORD $0xdac01231 // clz x17, x17 + WORD $0xcb090396 // sub x22, x28, x9 + WORD $0x8b1102d1 // add x17, x22, x17 + WORD $0xb100051f // cmn x8, #1 + WORD $0x9a911108 // csel x8, x8, x17, ne +LBB0_337: + WORD $0x0a2502b1 // bic w17, w21, w5 + WORD $0x531f7a36 // lsl w22, w17, #1 + WORD $0x331f7a25 // bfi w5, w17, #1, #31 + WORD $0x0a3602b5 // bic w21, w21, w22 + WORD $0x1201f2b5 // and w21, w21, #0xaaaaaaaa + WORD $0x2b1102b1 // adds w17, w21, w17 + WORD $0x4a1104d1 // eor w17, w6, w17, lsl #1 + WORD $0x0a050231 // and w17, w17, w5 + WORD $0x1a9f37e5 // cset w5, hs + WORD $0x2a3103f1 // mvn w17, w17 + WORD $0x8a140234 // and x20, x17, x20 + WORD $0x52800073 // mov w19, #3 + WORD $0xb5ffcf74 // cbnz x20, LBB0_255 $-1556(%rip) +LBB0_338: + WORD $0x9100839c // add x28, x28, #32 + WORD $0xaa0703f4 // mov x20, x7 +LBB0_339: + WORD $0xb5000ec5 // cbnz x5, LBB0_366 $472(%rip) + WORD $0xb4000314 // cbz x20, LBB0_348 $96(%rip) +LBB0_341: + WORD $0xaa1c03e7 // mov x7, x28 + WORD $0x384014e5 // ldrb w5, [x7], #1 + WORD $0x710088bf // cmp w5, #34 + WORD $0x54000260 // b.eq LBB0_347 $76(%rip) + WORD $0xd1000691 // sub x17, x20, #1 + WORD $0x710170bf // cmp w5, #92 + WORD $0x540000a0 // b.eq LBB0_344 $20(%rip) + WORD $0xaa0703fc // mov x28, x7 + WORD $0xaa1103f4 // mov x20, x17 + WORD $0xb5fffef1 // cbnz x17, LBB0_341 $-36(%rip) + WORD $0x14000009 // b LBB0_346 $36(%rip) +LBB0_344: + WORD $0xb4001db1 // cbz x17, LBB0_398 $948(%rip) + WORD $0x8b0b00f1 // add x17, x7, x11 + WORD $0xb100051f // cmn x8, #1 + WORD $0x9a880228 // csel x8, x17, x8, eq + WORD $0x91000b9c // add x28, x28, #2 + WORD $0xd1000a91 // sub x17, x20, #2 + WORD $0xaa1103f4 // mov x20, x17 + WORD $0xb5fffdd1 // cbnz x17, LBB0_341 $-72(%rip) +LBB0_346: + WORD $0x710088bf // cmp w5, #34 + WORD $0x54000060 // b.eq LBB0_348 $12(%rip) + WORD $0x140000e3 // b LBB0_398 $908(%rip) +LBB0_347: + WORD $0xaa0703fc // mov x28, x7 +LBB0_348: + WORD $0xcb09039c // sub x28, x28, x9 + WORD $0x17fffbb5 // b LBB0_122 $-4396(%rip) +LBB0_349: + WORD $0xdac000f1 // rbit x17, x7 + WORD $0xdac01231 // clz x17, x17 + WORD $0xcb090396 // sub x22, x28, x9 + WORD $0x8b1102d1 // add x17, x22, x17 + WORD $0xb100051f // cmn x8, #1 + WORD $0x9a911108 // csel x8, x8, x17, ne +LBB0_350: + WORD $0x0a2500f1 // bic w17, w7, w5 + WORD $0x531f7a36 // lsl w22, w17, #1 + WORD $0x331f7a25 // bfi w5, w17, #1, #31 + WORD $0x0a3600e7 // bic w7, w7, w22 + WORD $0x1201f0e7 // and w7, w7, #0xaaaaaaaa + WORD $0x2b1100f1 // adds w17, w7, w17 + WORD $0x4a1104d1 // eor w17, w6, w17, lsl #1 + WORD $0x0a050231 // and w17, w17, w5 + WORD $0x1a9f37e5 // cset w5, hs + WORD $0x2a3103f1 // mvn w17, w17 + WORD $0x8a140234 // and x20, x17, x20 + WORD $0x52800073 // mov w19, #3 + WORD $0x17fffe6e // b LBB0_260 $-1608(%rip) +LBB0_351: + WORD $0xdac002b1 // rbit x17, x21 + WORD $0xdac01231 // clz x17, x17 + WORD $0xcb090396 // sub x22, x28, x9 + WORD $0x8b1102d1 // add x17, x22, x17 + WORD $0xb100051f // cmn x8, #1 + WORD $0x9a911108 // csel x8, x8, x17, ne +LBB0_352: + WORD $0x0a2502b1 // bic w17, w21, w5 + WORD $0x531f7a36 // lsl w22, w17, #1 + WORD $0x331f7a25 // bfi w5, w17, #1, #31 + WORD $0x0a3602b5 // bic w21, w21, w22 + WORD $0x1201f2b5 // and w21, w21, #0xaaaaaaaa + WORD $0x2b1102b1 // adds w17, w21, w17 + WORD $0x4a110491 // eor w17, w4, w17, lsl #1 + WORD $0x0a050231 // and w17, w17, w5 + WORD $0x1a9f37e5 // cset w5, hs + WORD $0x2a3103f1 // mvn w17, w17 + WORD $0x8a140234 // and x20, x17, x20 + WORD $0x52800073 // mov w19, #3 + WORD $0xb5ffd6b4 // cbnz x20, LBB0_282 $-1324(%rip) +LBB0_353: + WORD $0x9100839c // add x28, x28, #32 + WORD $0xaa0703f4 // mov x20, x7 +LBB0_354: + WORD $0xb5000865 // cbnz x5, LBB0_370 $268(%rip) + WORD $0xb4000314 // cbz x20, LBB0_363 $96(%rip) +LBB0_356: + WORD $0xaa1c03e7 // mov x7, x28 + WORD $0x384014e5 // ldrb w5, [x7], #1 + WORD $0x710088bf // cmp w5, #34 + WORD $0x54000260 // b.eq LBB0_362 $76(%rip) + WORD $0xd1000691 // sub x17, x20, #1 + WORD $0x710170bf // cmp w5, #92 + WORD $0x540000a0 // b.eq LBB0_359 $20(%rip) + WORD $0xaa0703fc // mov x28, x7 + WORD $0xaa1103f4 // mov x20, x17 + WORD $0xb5fffef1 // cbnz x17, LBB0_356 $-36(%rip) + WORD $0x14000009 // b LBB0_361 $36(%rip) +LBB0_359: + WORD $0xb4001551 // cbz x17, LBB0_398 $680(%rip) + WORD $0x8b0b00f1 // add x17, x7, x11 + WORD $0xb100051f // cmn x8, #1 + WORD $0x9a880228 // csel x8, x17, x8, eq + WORD $0x91000b9c // add x28, x28, #2 + WORD $0xd1000a91 // sub x17, x20, #2 + WORD $0xaa1103f4 // mov x20, x17 + WORD $0xb5fffdd1 // cbnz x17, LBB0_356 $-72(%rip) +LBB0_361: + WORD $0x710088bf // cmp w5, #34 + WORD $0x54000060 // b.eq LBB0_363 $12(%rip) + WORD $0x140000a0 // b LBB0_398 $640(%rip) +LBB0_362: + WORD $0xaa0703fc // mov x28, x7 +LBB0_363: + WORD $0xcb09039c // sub x28, x28, x9 + WORD $0x52800084 // mov w4, #4 + WORD $0x92f00006 // mov x6, #9223372036854775807 + WORD $0xb20903e7 // mov x7, #36028797027352576 + WORD $0xf2800027 // movk x7, #1 + WORD $0xb6ff827c // tbz x28, #63, LBB0_151 $-4020(%rip) + WORD $0x14000096 // b LBB0_397 $600(%rip) +LBB0_364: + WORD $0xdac000f1 // rbit x17, x7 + WORD $0xdac01231 // clz x17, x17 + WORD $0xcb090396 // sub x22, x28, x9 + WORD $0x8b1102d1 // add x17, x22, x17 + WORD $0xb100051f // cmn x8, #1 + WORD $0x9a911108 // csel x8, x8, x17, ne +LBB0_365: + WORD $0x0a2500f1 // bic w17, w7, w5 + WORD $0x531f7a36 // lsl w22, w17, #1 + WORD $0x331f7a25 // bfi w5, w17, #1, #31 + WORD $0x0a3600e7 // bic w7, w7, w22 + WORD $0x1201f0e7 // and w7, w7, #0xaaaaaaaa + WORD $0x2b1100f1 // adds w17, w7, w17 + WORD $0x4a110491 // eor w17, w4, w17, lsl #1 + WORD $0x0a050231 // and w17, w17, w5 + WORD $0x1a9f37e5 // cset w5, hs + WORD $0x2a3103f1 // mvn w17, w17 + WORD $0x8a140234 // and x20, x17, x20 + WORD $0x52800073 // mov w19, #3 + WORD $0x17fffea3 // b LBB0_287 $-1396(%rip) +LBB0_366: + WORD $0xb4001094 // cbz x20, LBB0_398 $528(%rip) + WORD $0x8b0b0391 // add x17, x28, x11 + WORD $0xb100051f // cmn x8, #1 + WORD $0x9a880228 // csel x8, x17, x8, eq + WORD $0x9100079c // add x28, x28, #1 + WORD $0xd1000694 // sub x20, x20, #1 + WORD $0xb5fff0d4 // cbnz x20, LBB0_341 $-488(%rip) + WORD $0x17ffff9c // b LBB0_348 $-400(%rip) +LBB0_368: + WORD $0xb4000f94 // cbz x20, LBB0_398 $496(%rip) + WORD $0x8b0b0391 // add x17, x28, x11 + WORD $0xb100051f // cmn x8, #1 + WORD $0x9a880228 // csel x8, x17, x8, eq + WORD $0x9100079c // add x28, x28, #1 + WORD $0xd1000694 // sub x20, x20, #1 + WORD $0xb5ffc634 // cbnz x20, LBB0_267 $-1852(%rip) + WORD $0x14000075 // b LBB0_398 $468(%rip) +LBB0_370: + WORD $0xb4000e94 // cbz x20, LBB0_398 $464(%rip) + WORD $0x8b0b0391 // add x17, x28, x11 + WORD $0xb100051f // cmn x8, #1 + WORD $0x9a880228 // csel x8, x17, x8, eq + WORD $0x9100079c // add x28, x28, #1 + WORD $0xd1000694 // sub x20, x20, #1 + WORD $0xb5fff734 // cbnz x20, LBB0_356 $-284(%rip) + WORD $0x17ffffcf // b LBB0_363 $-196(%rip) +LBB0_372: + WORD $0xb4000d94 // cbz x20, LBB0_398 $432(%rip) + WORD $0x8b0b0391 // add x17, x28, x11 + WORD $0xb100051f // cmn x8, #1 + WORD $0x9a880228 // csel x8, x17, x8, eq + WORD $0x9100079c // add x28, x28, #1 + WORD $0xd1000694 // sub x20, x20, #1 + WORD $0xb5ffd3d4 // cbnz x20, LBB0_294 $-1416(%rip) + WORD $0x14000065 // b LBB0_398 $404(%rip) +LBB0_374: + WORD $0xdac002b1 // rbit x17, x21 + WORD $0xdac01231 // clz x17, x17 + WORD $0xcb090384 // sub x4, x28, x9 + WORD $0x8b110091 // add x17, x4, x17 + WORD $0xb100051f // cmn x8, #1 + WORD $0x9a911108 // csel x8, x8, x17, ne +LBB0_375: + WORD $0x0a2502b1 // bic w17, w21, w5 + WORD $0x531f7a24 // lsl w4, w17, #1 + WORD $0x331f7a25 // bfi w5, w17, #1, #31 + WORD $0x0a2402a4 // bic w4, w21, w4 + WORD $0x1201f084 // and w4, w4, #0xaaaaaaaa + WORD $0x2b110091 // adds w17, w4, w17 + WORD $0x4a110711 // eor w17, w24, w17, lsl #1 + WORD $0x0a050231 // and w17, w17, w5 + WORD $0x1a9f37e5 // cset w5, hs + WORD $0x2a3103f1 // mvn w17, w17 + WORD $0x8a140234 // and x20, x17, x20 + WORD $0xb5ffdaf4 // cbnz x20, LBB0_312 $-1188(%rip) +LBB0_376: + WORD $0x9100839c // add x28, x28, #32 + WORD $0xaa0703f4 // mov x20, x7 +LBB0_377: + WORD $0xb50005c5 // cbnz x5, LBB0_388 $184(%rip) + WORD $0xb4000694 // cbz x20, LBB0_390 $208(%rip) +LBB0_379: + WORD $0xaa1c03e7 // mov x7, x28 + WORD $0x384014e5 // ldrb w5, [x7], #1 + WORD $0x710088bf // cmp w5, #34 + WORD $0x54000280 // b.eq LBB0_385 $80(%rip) + WORD $0xd1000691 // sub x17, x20, #1 + WORD $0x710170bf // cmp w5, #92 + WORD $0x540000a0 // b.eq LBB0_382 $20(%rip) + WORD $0xaa0703fc // mov x28, x7 + WORD $0xaa1103f4 // mov x20, x17 + WORD $0xb5fffef1 // cbnz x17, LBB0_379 $-36(%rip) + WORD $0x14000009 // b LBB0_384 $36(%rip) +LBB0_382: + WORD $0xb4000871 // cbz x17, LBB0_398 $268(%rip) + WORD $0x8b0b00f1 // add x17, x7, x11 + WORD $0xb100051f // cmn x8, #1 + WORD $0x9a880228 // csel x8, x17, x8, eq + WORD $0x91000b9c // add x28, x28, #2 + WORD $0xd1000a91 // sub x17, x20, #2 + WORD $0xaa1103f4 // mov x20, x17 + WORD $0xb5fffdd1 // cbnz x17, LBB0_379 $-72(%rip) +LBB0_384: + WORD $0x710088bf // cmp w5, #34 + WORD $0x52800073 // mov w19, #3 + WORD $0x54ffeb00 // b.eq LBB0_348 $-672(%rip) + WORD $0x14000038 // b LBB0_398 $224(%rip) +LBB0_385: + WORD $0xaa0703fc // mov x28, x7 + WORD $0x52800073 // mov w19, #3 + WORD $0x17ffff54 // b LBB0_348 $-688(%rip) +LBB0_386: + WORD $0xdac000f1 // rbit x17, x7 + WORD $0xdac01231 // clz x17, x17 + WORD $0xcb090384 // sub x4, x28, x9 + WORD $0x8b110091 // add x17, x4, x17 + WORD $0xb100051f // cmn x8, #1 + WORD $0x9a911108 // csel x8, x8, x17, ne +LBB0_387: + WORD $0x0a2500f1 // bic w17, w7, w5 + WORD $0x531f7a24 // lsl w4, w17, #1 + WORD $0x331f7a25 // bfi w5, w17, #1, #31 + WORD $0x0a2400e4 // bic w4, w7, w4 + WORD $0x1201f084 // and w4, w4, #0xaaaaaaaa + WORD $0x2b110091 // adds w17, w4, w17 + WORD $0x4a110711 // eor w17, w24, w17, lsl #1 + WORD $0x0a050231 // and w17, w17, w5 + WORD $0x1a9f37e5 // cset w5, hs + WORD $0x2a3103f1 // mvn w17, w17 + WORD $0x8a140234 // and x20, x17, x20 + WORD $0x17fffeca // b LBB0_317 $-1240(%rip) +LBB0_388: + WORD $0xb4000454 // cbz x20, LBB0_398 $136(%rip) + WORD $0x8b0b0391 // add x17, x28, x11 + WORD $0xb100051f // cmn x8, #1 + WORD $0x9a880228 // csel x8, x17, x8, eq + WORD $0x9100079c // add x28, x28, #1 + WORD $0xd1000694 // sub x20, x20, #1 + WORD $0xb5fff9d4 // cbnz x20, LBB0_379 $-200(%rip) +LBB0_390: + WORD $0x52800073 // mov w19, #3 + WORD $0x17ffff39 // b LBB0_348 $-796(%rip) +LBB0_391: + WORD $0xb4000334 // cbz x20, LBB0_398 $100(%rip) + WORD $0x8b0b0391 // add x17, x28, x11 + WORD $0xb100051f // cmn x8, #1 + WORD $0x9a880228 // csel x8, x17, x8, eq + WORD $0x9100079c // add x28, x28, #1 + WORD $0xd1000694 // sub x20, x20, #1 + WORD $0xb5ffda94 // cbnz x20, LBB0_324 $-1200(%rip) + WORD $0x14000012 // b LBB0_398 $72(%rip) +LBB0_393: + WORD $0x92800008 // mov x8, #-1 +LBB0_394: + WORD $0xaa0803e0 // mov x0, x8 + WORD $0xa945fbfd // ldp fp, lr, [sp, #88] + WORD $0xa944cff4 // ldp x20, x19, [sp, #72] + WORD $0xa943d7f6 // ldp x22, x21, [sp, #56] + WORD $0xa942dff8 // ldp x24, x23, [sp, #40] + WORD $0xa941e7fa // ldp x26, x25, [sp, #24] + WORD $0xa940effc // ldp x28, x27, [sp, #8] + WORD $0x9101c3ff // add sp, sp, #112 + WORD $0xd65f03c0 // ret +LBB0_395: + WORD $0x9280001c // mov x28, #-1 + WORD $0xaa1b03e8 // mov x8, x27 + WORD $0x1400000c // b LBB0_403 $48(%rip) +LBB0_396: + WORD $0x928000c8 // mov x8, #-7 + WORD $0x17fffff3 // b LBB0_394 $-52(%rip) +LBB0_397: + WORD $0xb100079f // cmn x28, #1 + WORD $0x54000101 // b.ne LBB0_403 $32(%rip) +LBB0_398: + WORD $0xf9400408 // ldr x8, [x0, #8] + WORD $0x9280001c // mov x28, #-1 + WORD $0x14000005 // b LBB0_403 $20(%rip) +LBB0_399: + WORD $0x92800015 // mov x21, #-1 +LBB0_400: + WORD $0xaa3503f4 // mvn x20, x21 +LBB0_401: + WORD $0x8b1b0288 // add x8, x20, x27 +LBB0_402: + WORD $0x9280003c // mov x28, #-2 +LBB0_403: + WORD $0xf9000028 // str x8, [x1] + WORD $0xaa1c03e8 // mov x8, x28 + WORD $0x17ffffe7 // b LBB0_394 $-100(%rip) +LBB0_404: + WORD $0xb100051f // cmn x8, #1 + WORD $0x54ffff61 // b.ne LBB0_402 $-20(%rip) + WORD $0xdac00228 // rbit x8, x17 + WORD $0xdac01108 // clz x8, x8 + WORD $0x8b1c0108 // add x8, x8, x28 + WORD $0x17fffff7 // b LBB0_402 $-36(%rip) +LBB0_406: + WORD $0x9280001c // mov x28, #-1 + WORD $0x17fffff6 // b LBB0_403 $-40(%rip) +LBB0_407: + WORD $0xaa0803f4 // mov x20, x8 + WORD $0x8b1b0108 // add x8, x8, x27 + WORD $0x17fffff2 // b LBB0_402 $-56(%rip) +LBB0_408: + WORD $0x92800007 // mov x7, #-1 +LBB0_409: + WORD $0xaa2703fe // mvn lr, x7 +LBB0_410: + WORD $0x8b1e0388 // add x8, x28, lr + WORD $0x17ffffee // b LBB0_402 $-72(%rip) +LBB0_411: + WORD $0xf900003b // str x27, [x1] + WORD $0x394003c8 // ldrb w8, [lr] + WORD $0x7101b91f // cmp w8, #110 + WORD $0x54000761 // b.ne LBB0_425 $236(%rip) + WORD $0x91000768 // add x8, x27, #1 + WORD $0xf9000028 // str x8, [x1] + WORD $0x38686928 // ldrb w8, [x9, x8] + WORD $0x7101d51f // cmp w8, #117 + WORD $0x540006c1 // b.ne LBB0_425 $216(%rip) + WORD $0x91000b68 // add x8, x27, #2 + WORD $0xf9000028 // str x8, [x1] + WORD $0x38686928 // ldrb w8, [x9, x8] + WORD $0x7101b11f // cmp w8, #108 + WORD $0x54000621 // b.ne LBB0_425 $196(%rip) + WORD $0x91000f68 // add x8, x27, #3 + WORD $0xf9000028 // str x8, [x1] + WORD $0x38686928 // ldrb w8, [x9, x8] + WORD $0x7101b11f // cmp w8, #108 + WORD $0x54000581 // b.ne LBB0_425 $176(%rip) + WORD $0x14000014 // b LBB0_419 $80(%rip) +LBB0_415: + WORD $0xf900003b // str x27, [x1] + WORD $0x394003c8 // ldrb w8, [lr] + WORD $0x7101d11f // cmp w8, #116 + WORD $0x540004e1 // b.ne LBB0_425 $156(%rip) + WORD $0x91000768 // add x8, x27, #1 + WORD $0xf9000028 // str x8, [x1] + WORD $0x38686928 // ldrb w8, [x9, x8] + WORD $0x7101c91f // cmp w8, #114 + WORD $0x54000441 // b.ne LBB0_425 $136(%rip) + WORD $0x91000b68 // add x8, x27, #2 + WORD $0xf9000028 // str x8, [x1] + WORD $0x38686928 // ldrb w8, [x9, x8] + WORD $0x7101d51f // cmp w8, #117 + WORD $0x540003a1 // b.ne LBB0_425 $116(%rip) + WORD $0x91000f68 // add x8, x27, #3 + WORD $0xf9000028 // str x8, [x1] + WORD $0x38686928 // ldrb w8, [x9, x8] + WORD $0x7101951f // cmp w8, #101 + WORD $0x54000301 // b.ne LBB0_425 $96(%rip) +LBB0_419: + WORD $0x91001368 // add x8, x27, #4 + WORD $0x17ffffc5 // b LBB0_402 $-236(%rip) +LBB0_420: + WORD $0xf900003c // str x28, [x1] + WORD $0x387c6928 // ldrb w8, [x9, x28] + WORD $0x7101851f // cmp w8, #97 + WORD $0x54000241 // b.ne LBB0_425 $72(%rip) + WORD $0x91000b68 // add x8, x27, #2 + WORD $0xf9000028 // str x8, [x1] + WORD $0x38686928 // ldrb w8, [x9, x8] + WORD $0x7101b11f // cmp w8, #108 + WORD $0x540001a1 // b.ne LBB0_425 $52(%rip) + WORD $0x91000f68 // add x8, x27, #3 + WORD $0xf9000028 // str x8, [x1] + WORD $0x38686928 // ldrb w8, [x9, x8] + WORD $0x7101cd1f // cmp w8, #115 + WORD $0x54000101 // b.ne LBB0_425 $32(%rip) + WORD $0x91001368 // add x8, x27, #4 + WORD $0xf9000028 // str x8, [x1] + WORD $0x38686928 // ldrb w8, [x9, x8] + WORD $0x7101951f // cmp w8, #101 + WORD $0x54000061 // b.ne LBB0_425 $12(%rip) + WORD $0x91001768 // add x8, x27, #5 + WORD $0x17ffffb0 // b LBB0_402 $-320(%rip) +LBB0_425: + WORD $0x92800028 // mov x8, #-2 + WORD $0x17ffff98 // b LBB0_394 $-416(%rip) +LBB0_426: + WORD $0xaa1403fe // mov lr, x20 + WORD $0x8b140388 // add x8, x28, x20 + WORD $0x17ffffab // b LBB0_402 $-340(%rip) +LBB0_427: + WORD $0x8b1c0228 // add x8, x17, x28 + WORD $0x17ffffa9 // b LBB0_402 $-348(%rip) +LBB0_428: + WORD $0x8b1100a8 // add x8, x5, x17 + WORD $0x17ffffa7 // b LBB0_402 $-356(%rip) +LBB0_429: + WORD $0xcb090388 // sub x8, x28, x9 + WORD $0x8b110108 // add x8, x8, x17 + WORD $0x17ffffa4 // b LBB0_402 $-368(%rip) +LBB0_430: + WORD $0xcb090388 // sub x8, x28, x9 + WORD $0x8b050108 // add x8, x8, x5 + WORD $0x17ffffa1 // b LBB0_402 $-380(%rip) + // .p2align 2, 0x00 +_MASK_USE_NUMBER: + WORD $0x00000002 // .long 2 + +TEXT ·__skip_array(SB), NOSPLIT, $0-40 + NO_LOCAL_POINTERS + +_entry: + MOVD 16(g), R16 + SUB $176, RSP, R17 + CMP R16, R17 + BLS _stack_grow + +_skip_array: + MOVD s+0(FP), R0 + MOVD p+8(FP), R1 + MOVD m+16(FP), R2 + MOVD flags+24(FP), R3 + MOVD ·_subr__skip_array(SB), R11 + WORD $0x1000005e // adr x30, .+8 + JMP (R11) + MOVD R0, ret+32(FP) + RET + +_stack_grow: + MOVD R30, R3 + CALL runtime·morestack_noctxt<>(SB) + JMP _entry diff --git a/vendor/github.com/bytedance/sonic/internal/native/neon/skip_array_subr_arm64.go b/vendor/github.com/bytedance/sonic/internal/native/neon/skip_array_subr_arm64.go new file mode 100644 index 000000000..c011f6ffd --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/neon/skip_array_subr_arm64.go @@ -0,0 +1,25 @@ +// +build !noasm !appengine +// Code generated by asm2asm, DO NOT EDIT. + +package neon + +//go:nosplit +//go:noescape +//goland:noinspection ALL +func __skip_array_entry__() uintptr + +var ( + _subr__skip_array uintptr = __skip_array_entry__() + 48 +) + +const ( + _stack__skip_array = 112 +) + +var ( + _ = _subr__skip_array +) + +const ( + _ = _stack__skip_array +) diff --git a/vendor/github.com/bytedance/sonic/internal/native/neon/skip_number_arm64.go b/vendor/github.com/bytedance/sonic/internal/native/neon/skip_number_arm64.go new file mode 100644 index 000000000..b118ab113 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/neon/skip_number_arm64.go @@ -0,0 +1,31 @@ +// Code generated by Makefile, DO NOT EDIT. + +// Code generated by Makefile, DO NOT EDIT. + +/* + * Copyright 2021 ByteDance 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 neon + +//go:nosplit +func skip_number(s *string, p *int) (ret int) { + return __skip_number(s, p) +} + +//go:nosplit +//go:noescape +//goland:noinspection GoUnusedParameter +func __skip_number(s *string, p *int) (ret int) diff --git a/vendor/github.com/bytedance/sonic/internal/native/neon/skip_number_arm64.s b/vendor/github.com/bytedance/sonic/internal/native/neon/skip_number_arm64.s new file mode 100644 index 000000000..887e75a2d --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/neon/skip_number_arm64.s @@ -0,0 +1,373 @@ +// +build !noasm !appengine +// Code generated by asm2asm, DO NOT EDIT. + +#include "go_asm.h" +#include "funcdata.h" +#include "textflag.h" + +TEXT ·__skip_number_entry__(SB), NOSPLIT, $32 + NO_LOCAL_POINTERS + WORD $0x100000a0 // adr x0, .+20 + MOVD R0, ret(FP) + RET + // .p2align 4, 0x00 +lCPI0_0: + WORD $0x08040201 + WORD $0x80402010 + WORD $0x08040201 + WORD $0x80402010 + // // .byte 1 +// .byte 2 +// .byte 4 +// .byte 8 +// .byte 16 +// .byte 32 +// .byte 64 +// .byte 128 +// .byte 1 +// .byte 2 +// .byte 4 +// .byte 8 +// .byte 16 +// .byte 32 +// .byte 64 +// .byte 128 + +lCPI0_1: + WORD $0x09010800 + WORD $0x0b030a02 + WORD $0x0d050c04 + WORD $0x0f070e06 + // // .byte 0 +// .byte 8 +// .byte 1 +// .byte 9 +// .byte 2 +// .byte 10 +// .byte 3 +// .byte 11 +// .byte 4 +// .byte 12 +// .byte 5 +// .byte 13 +// .byte 6 +// .byte 14 +// .byte 7 +// .byte 15 + +_skip_number: + WORD $0xd100c3ff // sub sp, sp, #48 + WORD $0xa900cff4 // stp x20, x19, [sp, #8] + WORD $0xa901fbfd // stp fp, lr, [sp, #24] + WORD $0xa93ffbfd // stp fp, lr, [sp, #-8] + WORD $0xd10023fd // sub fp, sp, #8 + WORD $0xaa0003e8 // mov x8, x0 + WORD $0xf9400020 // ldr x0, [x1] + WORD $0xa9402909 // ldp x9, x10, [x8] + WORD $0x8b000128 // add x8, x9, x0 + WORD $0xaa0803eb // mov x11, x8 + WORD $0x3840156c // ldrb w12, [x11], #1 + WORD $0x7100b59f // cmp w12, #45 + WORD $0x1a9f17ed // cset w13, eq + WORD $0x9a8b1108 // csel x8, x8, x11, ne + WORD $0xcb00014a // sub x10, x10, x0 + WORD $0xeb0d014e // subs x14, x10, x13 + WORD $0x54001c40 // b.eq LBB0_59 $904(%rip) + WORD $0x3940010a // ldrb w10, [x8] + WORD $0x5100e94b // sub w11, w10, #58 + WORD $0x3100297f // cmn w11, #10 + WORD $0x540017a3 // b.lo LBB0_52 $756(%rip) + WORD $0x7100c15f // cmp w10, #48 + WORD $0x540001e1 // b.ne LBB0_6 $60(%rip) + WORD $0xf10005df // cmp x14, #1 + WORD $0x54000061 // b.ne LBB0_5 $12(%rip) +LBB0_4: + WORD $0x5280002d // mov w13, #1 + WORD $0x140000a9 // b LBB0_47 $676(%rip) +LBB0_5: + WORD $0x3940050a // ldrb w10, [x8, #1] + WORD $0x5100b94a // sub w10, w10, #46 + WORD $0x7100dd5f // cmp w10, #55 + WORD $0x5280002b // mov w11, #1 + WORD $0x9aca216a // lsl x10, x11, x10 + WORD $0xb20903eb // mov x11, #36028797027352576 + WORD $0xf280002b // movk x11, #1 + WORD $0x8a0b014a // and x10, x10, x11 + WORD $0xfa409944 // ccmp x10, #0, #4, ls + WORD $0x54fffea0 // b.eq LBB0_4 $-44(%rip) +LBB0_6: + WORD $0xf10041df // cmp x14, #16 + WORD $0x54001a63 // b.lo LBB0_60 $844(%rip) + WORD $0xd2800010 // mov x16, #0 + WORD $0xd280000f // mov x15, #0 + WORD $0x9280000a // mov x10, #-1 + WORD $0x4f01e5c0 // movi.16b v0, #46 + WORD $0x4f01e561 // movi.16b v1, #43 + WORD $0x4f01e5a2 // movi.16b v2, #45 + WORD $0x4f06e603 // movi.16b v3, #208 + WORD $0x4f00e544 // movi.16b v4, #10 +Lloh0: + WORD $0x10fff92b // adr x11, lCPI0_0 $-220(%rip) +Lloh1: + WORD $0x3dc00165 // ldr q5, [x11, lCPI0_0@PAGEOFF] $0(%rip) + WORD $0x4f06e7e6 // movi.16b v6, #223 + WORD $0x4f02e4a7 // movi.16b v7, #69 +Lloh2: + WORD $0x10fff92b // adr x11, lCPI0_1 $-220(%rip) +Lloh3: + WORD $0x3dc00170 // ldr q16, [x11, lCPI0_1@PAGEOFF] $0(%rip) + WORD $0x12800011 // mov w17, #-1 + WORD $0x9280000c // mov x12, #-1 + WORD $0x9280000b // mov x11, #-1 +LBB0_8: + WORD $0x3cef6911 // ldr q17, [x8, x15] + WORD $0x6e208e32 // cmeq.16b v18, v17, v0 + WORD $0x6e218e33 // cmeq.16b v19, v17, v1 + WORD $0x6e228e34 // cmeq.16b v20, v17, v2 + WORD $0x4e238635 // add.16b v21, v17, v3 + WORD $0x6e353495 // cmhi.16b v21, v4, v21 + WORD $0x4e261e31 // and.16b v17, v17, v6 + WORD $0x6e278e31 // cmeq.16b v17, v17, v7 + WORD $0x4eb41e73 // orr.16b v19, v19, v20 + WORD $0x4eb21eb4 // orr.16b v20, v21, v18 + WORD $0x4eb31e35 // orr.16b v21, v17, v19 + WORD $0x4eb51e94 // orr.16b v20, v20, v21 + WORD $0x4e251e52 // and.16b v18, v18, v5 + WORD $0x4e100252 // tbl.16b v18, { v18 }, v16 + WORD $0x4e71ba52 // addv.8h h18, v18 + WORD $0x1e260243 // fmov w3, s18 + WORD $0x4e251e31 // and.16b v17, v17, v5 + WORD $0x4e100231 // tbl.16b v17, { v17 }, v16 + WORD $0x4e71ba31 // addv.8h h17, v17 + WORD $0x1e260224 // fmov w4, s17 + WORD $0x4e251e71 // and.16b v17, v19, v5 + WORD $0x4e100231 // tbl.16b v17, { v17 }, v16 + WORD $0x4e71ba31 // addv.8h h17, v17 + WORD $0x1e260226 // fmov w6, s17 + WORD $0x4e251e91 // and.16b v17, v20, v5 + WORD $0x4e100231 // tbl.16b v17, { v17 }, v16 + WORD $0x4e71ba31 // addv.8h h17, v17 + WORD $0x1e260222 // fmov w2, s17 + WORD $0x2a2203e2 // mvn w2, w2 + WORD $0x32103c42 // orr w2, w2, #0xffff0000 + WORD $0x5ac00042 // rbit w2, w2 + WORD $0x5ac01042 // clz w2, w2 + WORD $0x1ac22225 // lsl w5, w17, w2 + WORD $0x0a250067 // bic w7, w3, w5 + WORD $0x0a250093 // bic w19, w4, w5 + WORD $0x0a2500d4 // bic w20, w6, w5 + WORD $0x7100405f // cmp w2, #16 + WORD $0x1a870065 // csel w5, w3, w7, eq + WORD $0x1a930084 // csel w4, w4, w19, eq + WORD $0x1a9400c3 // csel w3, w6, w20, eq + WORD $0x510004a6 // sub w6, w5, #1 + WORD $0x6a0500c6 // ands w6, w6, w5 + WORD $0x54001041 // b.ne LBB0_55 $520(%rip) + WORD $0x51000486 // sub w6, w4, #1 + WORD $0x6a0400c6 // ands w6, w6, w4 + WORD $0x54000fe1 // b.ne LBB0_55 $508(%rip) + WORD $0x51000466 // sub w6, w3, #1 + WORD $0x6a0300c6 // ands w6, w6, w3 + WORD $0x54000f81 // b.ne LBB0_55 $496(%rip) + WORD $0x340000c5 // cbz w5, LBB0_14 $24(%rip) + WORD $0x5ac000a5 // rbit w5, w5 + WORD $0x5ac010a5 // clz w5, w5 + WORD $0xb100057f // cmn x11, #1 + WORD $0x54000f81 // b.ne LBB0_56 $496(%rip) + WORD $0x8b0501eb // add x11, x15, x5 +LBB0_14: + WORD $0x340000c4 // cbz w4, LBB0_17 $24(%rip) + WORD $0x5ac00084 // rbit w4, w4 + WORD $0x5ac01084 // clz w4, w4 + WORD $0xb100059f // cmn x12, #1 + WORD $0x54000f21 // b.ne LBB0_57 $484(%rip) + WORD $0x8b0401ec // add x12, x15, x4 +LBB0_17: + WORD $0x340000c3 // cbz w3, LBB0_20 $24(%rip) + WORD $0x5ac00063 // rbit w3, w3 + WORD $0x5ac01063 // clz w3, w3 + WORD $0xb100055f // cmn x10, #1 + WORD $0x54000ec1 // b.ne LBB0_58 $472(%rip) + WORD $0x8b0301ea // add x10, x15, x3 +LBB0_20: + WORD $0x7100405f // cmp w2, #16 + WORD $0x54000621 // b.ne LBB0_35 $196(%rip) + WORD $0x910041ef // add x15, x15, #16 + WORD $0xd1004210 // sub x16, x16, #16 + WORD $0x8b1001c2 // add x2, x14, x16 + WORD $0xf1003c5f // cmp x2, #15 + WORD $0x54fff6e8 // b.hi LBB0_8 $-292(%rip) + WORD $0x8b0f0110 // add x16, x8, x15 + WORD $0xeb0f01df // cmp x14, x15 + WORD $0x54000560 // b.eq LBB0_36 $172(%rip) +LBB0_23: + WORD $0x8b02020e // add x14, x16, x2 + WORD $0xaa3003ef // mvn x15, x16 + WORD $0x8b090011 // add x17, x0, x9 + WORD $0x8b1101ef // add x15, x15, x17 + WORD $0x8b0d01ed // add x13, x15, x13 + WORD $0xcb08020f // sub x15, x16, x8 + WORD $0xaa1003f1 // mov x17, x16 + WORD $0x14000009 // b LBB0_26 $36(%rip) +LBB0_24: + WORD $0xb100059f // cmn x12, #1 + WORD $0xaa0f03ec // mov x12, x15 + WORD $0x54000661 // b.ne LBB0_46 $204(%rip) +LBB0_25: + WORD $0xd10005ad // sub x13, x13, #1 + WORD $0x910005ef // add x15, x15, #1 + WORD $0xaa1103f0 // mov x16, x17 + WORD $0xd1000442 // sub x2, x2, #1 + WORD $0xb4000882 // cbz x2, LBB0_53 $272(%rip) +LBB0_26: + WORD $0x38401623 // ldrb w3, [x17], #1 + WORD $0x5100c064 // sub w4, w3, #48 + WORD $0x7100289f // cmp w4, #10 + WORD $0x54ffff03 // b.lo LBB0_25 $-32(%rip) + WORD $0x7100b47f // cmp w3, #45 + WORD $0x5400016d // b.le LBB0_32 $44(%rip) + WORD $0x7101947f // cmp w3, #101 + WORD $0x54fffe20 // b.eq LBB0_24 $-60(%rip) + WORD $0x7101147f // cmp w3, #69 + WORD $0x54fffde0 // b.eq LBB0_24 $-68(%rip) + WORD $0x7100b87f // cmp w3, #46 + WORD $0x540001e1 // b.ne LBB0_36 $60(%rip) + WORD $0xb100057f // cmn x11, #1 + WORD $0xaa0f03eb // mov x11, x15 + WORD $0x54fffda0 // b.eq LBB0_25 $-76(%rip) + WORD $0x1400001e // b LBB0_46 $120(%rip) +LBB0_32: + WORD $0x7100ac7f // cmp w3, #43 + WORD $0x54000060 // b.eq LBB0_34 $12(%rip) + WORD $0x7100b47f // cmp w3, #45 + WORD $0x540000e1 // b.ne LBB0_36 $28(%rip) +LBB0_34: + WORD $0xb100055f // cmn x10, #1 + WORD $0xaa0f03ea // mov x10, x15 + WORD $0x54fffca0 // b.eq LBB0_25 $-108(%rip) + WORD $0x14000016 // b LBB0_46 $88(%rip) +LBB0_35: + WORD $0x8b22410d // add x13, x8, w2, uxtw + WORD $0x8b0f01b0 // add x16, x13, x15 +LBB0_36: + WORD $0x9280000d // mov x13, #-1 + WORD $0xb40003eb // cbz x11, LBB0_51 $124(%rip) +LBB0_37: + WORD $0xb40003ca // cbz x10, LBB0_51 $120(%rip) + WORD $0xb40003ac // cbz x12, LBB0_51 $116(%rip) + WORD $0xcb08020d // sub x13, x16, x8 + WORD $0xd10005ae // sub x14, x13, #1 + WORD $0xeb0e017f // cmp x11, x14 + WORD $0x54000160 // b.eq LBB0_45 $44(%rip) + WORD $0xeb0e015f // cmp x10, x14 + WORD $0x54000120 // b.eq LBB0_45 $36(%rip) + WORD $0xeb0e019f // cmp x12, x14 + WORD $0x540000e0 // b.eq LBB0_45 $28(%rip) + WORD $0xf100054e // subs x14, x10, #1 + WORD $0x540001cb // b.lt LBB0_48 $56(%rip) + WORD $0xeb0e019f // cmp x12, x14 + WORD $0x54000180 // b.eq LBB0_48 $48(%rip) + WORD $0xaa2a03ed // mvn x13, x10 + WORD $0x1400000f // b LBB0_51 $60(%rip) +LBB0_45: + WORD $0xcb0d03ed // neg x13, x13 +LBB0_46: + WORD $0xb7f801ad // tbnz x13, #63, LBB0_51 $52(%rip) +LBB0_47: + WORD $0x8b0d0108 // add x8, x8, x13 + WORD $0xcb090108 // sub x8, x8, x9 + WORD $0xf9000028 // str x8, [x1] + WORD $0xa941fbfd // ldp fp, lr, [sp, #24] + WORD $0xa940cff4 // ldp x20, x19, [sp, #8] + WORD $0x9100c3ff // add sp, sp, #48 + WORD $0xd65f03c0 // ret +LBB0_48: + WORD $0xaa0c016a // orr x10, x11, x12 + WORD $0xb7f8022a // tbnz x10, #63, LBB0_54 $68(%rip) + WORD $0xeb0c017f // cmp x11, x12 + WORD $0x540001eb // b.lt LBB0_54 $60(%rip) + WORD $0xaa2b03ed // mvn x13, x11 +LBB0_51: + WORD $0xaa2d03ea // mvn x10, x13 + WORD $0x8b0a0108 // add x8, x8, x10 +LBB0_52: + WORD $0x92800020 // mov x0, #-2 + WORD $0xcb090108 // sub x8, x8, x9 + WORD $0xf9000028 // str x8, [x1] + WORD $0xa941fbfd // ldp fp, lr, [sp, #24] + WORD $0xa940cff4 // ldp x20, x19, [sp, #8] + WORD $0x9100c3ff // add sp, sp, #48 + WORD $0xd65f03c0 // ret +LBB0_53: + WORD $0xaa0e03f0 // mov x16, x14 + WORD $0x9280000d // mov x13, #-1 + WORD $0xb5fffaeb // cbnz x11, LBB0_37 $-164(%rip) + WORD $0x17fffff4 // b LBB0_51 $-48(%rip) +LBB0_54: + WORD $0xd37ffd4a // lsr x10, x10, #63 + WORD $0x5200014a // eor w10, w10, #0x1 + WORD $0xd100058e // sub x14, x12, #1 + WORD $0xeb0e017f // cmp x11, x14 + WORD $0x1a9f17eb // cset w11, eq + WORD $0x6a0b015f // tst w10, w11 + WORD $0xda8c01ad // csinv x13, x13, x12, eq + WORD $0x17ffffdf // b LBB0_46 $-132(%rip) +LBB0_55: + WORD $0x5ac000ca // rbit w10, w6 + WORD $0x5ac0114a // clz w10, w10 + WORD $0xaa2f03eb // mvn x11, x15 + WORD $0xcb0a016d // sub x13, x11, x10 + WORD $0x17ffffda // b LBB0_46 $-152(%rip) +LBB0_56: + WORD $0xaa2f03ea // mvn x10, x15 + WORD $0xcb25414d // sub x13, x10, w5, uxtw + WORD $0x17ffffd7 // b LBB0_46 $-164(%rip) +LBB0_57: + WORD $0xaa2f03ea // mvn x10, x15 + WORD $0xcb24414d // sub x13, x10, w4, uxtw + WORD $0x17ffffd4 // b LBB0_46 $-176(%rip) +LBB0_58: + WORD $0xaa2f03ea // mvn x10, x15 + WORD $0xcb23414d // sub x13, x10, w3, uxtw + WORD $0x17ffffd1 // b LBB0_46 $-188(%rip) +LBB0_59: + WORD $0x92800000 // mov x0, #-1 + WORD $0xcb090108 // sub x8, x8, x9 + WORD $0xf9000028 // str x8, [x1] + WORD $0xa941fbfd // ldp fp, lr, [sp, #24] + WORD $0xa940cff4 // ldp x20, x19, [sp, #8] + WORD $0x9100c3ff // add sp, sp, #48 + WORD $0xd65f03c0 // ret +LBB0_60: + WORD $0x9280000b // mov x11, #-1 + WORD $0xaa0803f0 // mov x16, x8 + WORD $0xaa0e03e2 // mov x2, x14 + WORD $0x9280000c // mov x12, #-1 + WORD $0x9280000a // mov x10, #-1 + WORD $0x17ffff87 // b LBB0_23 $-484(%rip) + // .p2align 2, 0x00 +_MASK_USE_NUMBER: + WORD $0x00000002 // .long 2 + +TEXT ·__skip_number(SB), NOSPLIT, $0-24 + NO_LOCAL_POINTERS + +_entry: + MOVD 16(g), R16 + SUB $112, RSP, R17 + CMP R16, R17 + BLS _stack_grow + +_skip_number: + MOVD s+0(FP), R0 + MOVD p+8(FP), R1 + MOVD ·_subr__skip_number(SB), R11 + WORD $0x1000005e // adr x30, .+8 + JMP (R11) + MOVD R0, ret+16(FP) + RET + +_stack_grow: + MOVD R30, R3 + CALL runtime·morestack_noctxt<>(SB) + JMP _entry diff --git a/vendor/github.com/bytedance/sonic/internal/native/neon/skip_number_subr_arm64.go b/vendor/github.com/bytedance/sonic/internal/native/neon/skip_number_subr_arm64.go new file mode 100644 index 000000000..d2ba7d934 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/neon/skip_number_subr_arm64.go @@ -0,0 +1,25 @@ +// +build !noasm !appengine +// Code generated by asm2asm, DO NOT EDIT. + +package neon + +//go:nosplit +//go:noescape +//goland:noinspection ALL +func __skip_number_entry__() uintptr + +var ( + _subr__skip_number uintptr = __skip_number_entry__() + 32 +) + +const ( + _stack__skip_number = 48 +) + +var ( + _ = _subr__skip_number +) + +const ( + _ = _stack__skip_number +) diff --git a/vendor/github.com/bytedance/sonic/internal/native/neon/skip_object_arm64.go b/vendor/github.com/bytedance/sonic/internal/native/neon/skip_object_arm64.go new file mode 100644 index 000000000..8e3efa638 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/neon/skip_object_arm64.go @@ -0,0 +1,37 @@ +// Code generated by Makefile, DO NOT EDIT. + +// Code generated by Makefile, DO NOT EDIT. + +/* + * Copyright 2021 ByteDance 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 neon + +import ( + // `unsafe` + + `github.com/bytedance/sonic/internal/native/types` +) + +//go:nosplit +func skip_object(s *string, p *int, m *types.StateMachine, flags uint64) (ret int) { + return __skip_object(s, p, m, flags) +} + +//go:nosplit +//go:noescape +//goland:noinspection GoUnusedParameter +func __skip_object(s *string, p *int, m *types.StateMachine, flags uint64) (ret int) diff --git a/vendor/github.com/bytedance/sonic/internal/native/neon/skip_object_arm64.s b/vendor/github.com/bytedance/sonic/internal/native/neon/skip_object_arm64.s new file mode 100644 index 000000000..6e46115bf --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/neon/skip_object_arm64.s @@ -0,0 +1,2384 @@ +// +build !noasm !appengine +// Code generated by asm2asm, DO NOT EDIT. + +#include "go_asm.h" +#include "funcdata.h" +#include "textflag.h" + +TEXT ·__skip_object_entry__(SB), NOSPLIT, $96 + NO_LOCAL_POINTERS + WORD $0x100000a0 // adr x0, .+20 + MOVD R0, ret(FP) + RET + // .p2align 4, 0x00 +lCPI0_0: + WORD $0x00000001; WORD $0x00000000 // .quad 1 + WORD $0x00000006; WORD $0x00000000 // .quad 6 +lCPI0_1: + WORD $0x08040201 + WORD $0x80402010 + WORD $0x08040201 + WORD $0x80402010 + // // .byte 1 +// .byte 2 +// .byte 4 +// .byte 8 +// .byte 16 +// .byte 32 +// .byte 64 +// .byte 128 +// .byte 1 +// .byte 2 +// .byte 4 +// .byte 8 +// .byte 16 +// .byte 32 +// .byte 64 +// .byte 128 + +lCPI0_2: + WORD $0x09010800 + WORD $0x0b030a02 + WORD $0x0d050c04 + WORD $0x0f070e06 + // // .byte 0 +// .byte 8 +// .byte 1 +// .byte 9 +// .byte 2 +// .byte 10 +// .byte 3 +// .byte 11 +// .byte 4 +// .byte 12 +// .byte 5 +// .byte 13 +// .byte 6 +// .byte 14 +// .byte 7 +// .byte 15 + +_skip_object: + WORD $0xd101c3ff // sub sp, sp, #112 + WORD $0xa900effc // stp x28, x27, [sp, #8] + WORD $0xa901e7fa // stp x26, x25, [sp, #24] + WORD $0xa902dff8 // stp x24, x23, [sp, #40] + WORD $0xa903d7f6 // stp x22, x21, [sp, #56] + WORD $0xa904cff4 // stp x20, x19, [sp, #72] + WORD $0xa905fbfd // stp fp, lr, [sp, #88] + WORD $0xa93ffbfd // stp fp, lr, [sp, #-8] + WORD $0xd10023fd // sub fp, sp, #8 +Lloh0: + WORD $0x10fffd68 // adr x8, lCPI0_0 $-84(%rip) +Lloh1: + WORD $0x3dc00100 // ldr q0, [x8, lCPI0_0@PAGEOFF] $0(%rip) + WORD $0xaa0203ea // mov x10, x2 + WORD $0x3c808540 // str q0, [x10], #8 + WORD $0xf9400009 // ldr x9, [x0] + WORD $0xaa2903eb // mvn x11, x9 + WORD $0xf940003c // ldr x28, [x1] + WORD $0xcb0903ec // neg x12, x9 + WORD $0xd100052d // sub x13, x9, #1 + WORD $0x9280000e // mov x14, #-1 + WORD $0x5280002f // mov w15, #1 + WORD $0xd284c010 // mov x16, #9728 + WORD $0xf2c00030 // movk x16, #1, lsl #32 + WORD $0x52800073 // mov w19, #3 + WORD $0x52800084 // mov w4, #4 + WORD $0x4f01e440 // movi.16b v0, #34 + WORD $0x4f02e781 // movi.16b v1, #92 +Lloh2: + WORD $0x10fffbc8 // adr x8, lCPI0_1 $-136(%rip) +Lloh3: + WORD $0x3dc00102 // ldr q2, [x8, lCPI0_1@PAGEOFF] $0(%rip) +Lloh4: + WORD $0x10fffc08 // adr x8, lCPI0_2 $-128(%rip) +Lloh5: + WORD $0x3dc00103 // ldr q3, [x8, lCPI0_2@PAGEOFF] $0(%rip) + WORD $0x92f00006 // mov x6, #9223372036854775807 + WORD $0x4f01e404 // movi.16b v4, #32 + WORD $0xb20903e7 // mov x7, #36028797027352576 + WORD $0xf2800027 // movk x7, #1 + WORD $0x4f01e5c5 // movi.16b v5, #46 + WORD $0x4f01e566 // movi.16b v6, #43 + WORD $0x4f01e5a7 // movi.16b v7, #45 + WORD $0x4f06e610 // movi.16b v16, #208 + WORD $0x4f00e551 // movi.16b v17, #10 + WORD $0x4f06e7f2 // movi.16b v18, #223 + WORD $0x4f02e4b3 // movi.16b v19, #69 + WORD $0x52800025 // mov w5, #1 +LBB0_1: + WORD $0xf9400408 // ldr x8, [x0, #8] + WORD $0xeb08039f // cmp x28, x8 + WORD $0x54000162 // b.hs LBB0_6 $44(%rip) + WORD $0x387c6931 // ldrb w17, [x9, x28] + WORD $0x7100363f // cmp w17, #13 + WORD $0x54000100 // b.eq LBB0_6 $32(%rip) + WORD $0x7100823f // cmp w17, #32 + WORD $0x540000c0 // b.eq LBB0_6 $24(%rip) + WORD $0x51002e31 // sub w17, w17, #11 + WORD $0x31000a3f // cmn w17, #2 + WORD $0x54000062 // b.hs LBB0_6 $12(%rip) + WORD $0xaa1c03fb // mov x27, x28 + WORD $0x14000031 // b LBB0_22 $196(%rip) +LBB0_6: + WORD $0x9100079b // add x27, x28, #1 + WORD $0xeb08037f // cmp x27, x8 + WORD $0x54000122 // b.hs LBB0_10 $36(%rip) + WORD $0x387b6931 // ldrb w17, [x9, x27] + WORD $0x7100363f // cmp w17, #13 + WORD $0x540000c0 // b.eq LBB0_10 $24(%rip) + WORD $0x7100823f // cmp w17, #32 + WORD $0x54000080 // b.eq LBB0_10 $16(%rip) + WORD $0x51002e31 // sub w17, w17, #11 + WORD $0x31000a3f // cmn w17, #2 + WORD $0x540004c3 // b.lo LBB0_22 $152(%rip) +LBB0_10: + WORD $0x91000b9b // add x27, x28, #2 + WORD $0xeb08037f // cmp x27, x8 + WORD $0x54000122 // b.hs LBB0_14 $36(%rip) + WORD $0x387b6931 // ldrb w17, [x9, x27] + WORD $0x7100363f // cmp w17, #13 + WORD $0x540000c0 // b.eq LBB0_14 $24(%rip) + WORD $0x7100823f // cmp w17, #32 + WORD $0x54000080 // b.eq LBB0_14 $16(%rip) + WORD $0x51002e31 // sub w17, w17, #11 + WORD $0x31000a3f // cmn w17, #2 + WORD $0x54000363 // b.lo LBB0_22 $108(%rip) +LBB0_14: + WORD $0x91000f9b // add x27, x28, #3 + WORD $0xeb08037f // cmp x27, x8 + WORD $0x54000122 // b.hs LBB0_18 $36(%rip) + WORD $0x387b6931 // ldrb w17, [x9, x27] + WORD $0x7100363f // cmp w17, #13 + WORD $0x540000c0 // b.eq LBB0_18 $24(%rip) + WORD $0x7100823f // cmp w17, #32 + WORD $0x54000080 // b.eq LBB0_18 $16(%rip) + WORD $0x51002e31 // sub w17, w17, #11 + WORD $0x31000a3f // cmn w17, #2 + WORD $0x54000203 // b.lo LBB0_22 $64(%rip) +LBB0_18: + WORD $0x9100139b // add x27, x28, #4 + WORD $0xeb08037f // cmp x27, x8 + WORD $0x5400e922 // b.hs LBB0_395 $7460(%rip) +LBB0_19: + WORD $0x387b6931 // ldrb w17, [x9, x27] + WORD $0x7100823f // cmp w17, #32 + WORD $0x9ad121f1 // lsl x17, x15, x17 + WORD $0x8a100231 // and x17, x17, x16 + WORD $0xfa409a24 // ccmp x17, #0, #4, ls + WORD $0x540000a0 // b.eq LBB0_21 $20(%rip) + WORD $0x9100077b // add x27, x27, #1 + WORD $0xeb1b011f // cmp x8, x27 + WORD $0x54ffff01 // b.ne LBB0_19 $-32(%rip) + WORD $0x14000735 // b LBB0_393 $7380(%rip) +LBB0_21: + WORD $0xeb08037f // cmp x27, x8 + WORD $0x5400e662 // b.hs LBB0_393 $7372(%rip) +LBB0_22: + WORD $0x9100077c // add x28, x27, #1 + WORD $0xf900003c // str x28, [x1] + WORD $0x8b1b013e // add lr, x9, x27 + WORD $0x394003d5 // ldrb w21, [lr] + WORD $0x3400e5d5 // cbz w21, LBB0_393 $7352(%rip) + WORD $0xd10004b4 // sub x20, x5, #1 + WORD $0xf8747948 // ldr x8, [x10, x20, lsl #3] + WORD $0xb10005df // cmn x14, #1 + WORD $0x9a8e036e // csel x14, x27, x14, eq + WORD $0x71000d1f // cmp w8, #3 + WORD $0x54000c8c // b.gt LBB0_39 $400(%rip) + WORD $0x7100051f // cmp w8, #1 + WORD $0x540018c0 // b.eq LBB0_54 $792(%rip) + WORD $0x7100091f // cmp w8, #2 + WORD $0x54002c20 // b.eq LBB0_94 $1412(%rip) + WORD $0x71000d1f // cmp w8, #3 + WORD $0x540019c1 // b.ne LBB0_58 $824(%rip) + WORD $0x71008abf // cmp w21, #34 + WORD $0x5400f101 // b.ne LBB0_425 $7712(%rip) + WORD $0x3200f3e6 // mov w6, #1431655765 + WORD $0xf8347944 // str x4, [x10, x20, lsl #3] + WORD $0xf9400408 // ldr x8, [x0, #8] + WORD $0xeb1c0114 // subs x20, x8, x28 + WORD $0x372831a3 // tbnz w3, #5, LBB0_109 $1588(%rip) + WORD $0x5400e560 // b.eq LBB0_398 $7340(%rip) + WORD $0xf101029f // cmp x20, #64 + WORD $0x54009103 // b.lo LBB0_250 $4640(%rip) + WORD $0xd2800005 // mov x5, #0 + WORD $0x92800008 // mov x8, #-1 +LBB0_32: + WORD $0x8b1c0131 // add x17, x9, x28 + WORD $0xad405634 // ldp q20, q21, [x17] + WORD $0xad415e36 // ldp q22, q23, [x17, #32] + WORD $0x6e208e98 // cmeq.16b v24, v20, v0 + WORD $0x6e208eb9 // cmeq.16b v25, v21, v0 + WORD $0x6e208eda // cmeq.16b v26, v22, v0 + WORD $0x6e208efb // cmeq.16b v27, v23, v0 + WORD $0x6e218e94 // cmeq.16b v20, v20, v1 + WORD $0x6e218eb5 // cmeq.16b v21, v21, v1 + WORD $0x6e218ed6 // cmeq.16b v22, v22, v1 + WORD $0x6e218ef7 // cmeq.16b v23, v23, v1 + WORD $0x4e221f18 // and.16b v24, v24, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260311 // fmov w17, s24 + WORD $0x4e221f38 // and.16b v24, v25, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260307 // fmov w7, s24 + WORD $0x4e221f58 // and.16b v24, v26, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260315 // fmov w21, s24 + WORD $0x4e221f78 // and.16b v24, v27, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260316 // fmov w22, s24 + WORD $0x4e221e94 // and.16b v20, v20, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e260297 // fmov w23, s20 + WORD $0x4e221eb4 // and.16b v20, v21, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e260298 // fmov w24, s20 + WORD $0x4e221ed4 // and.16b v20, v22, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e260299 // fmov w25, s20 + WORD $0x4e221ef4 // and.16b v20, v23, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e26029a // fmov w26, s20 + WORD $0xd3607eb5 // lsl x21, x21, #32 + WORD $0xaa16c2b5 // orr x21, x21, x22, lsl #48 + WORD $0x53103ce7 // lsl w7, w7, #16 + WORD $0xaa0702a7 // orr x7, x21, x7 + WORD $0xaa1100e7 // orr x7, x7, x17 + WORD $0xd3607f31 // lsl x17, x25, #32 + WORD $0xaa1ac231 // orr x17, x17, x26, lsl #48 + WORD $0x53103f15 // lsl w21, w24, #16 + WORD $0xaa150231 // orr x17, x17, x21 + WORD $0xaa170231 // orr x17, x17, x23 + WORD $0xb5000111 // cbnz x17, LBB0_36 $32(%rip) + WORD $0xb5000185 // cbnz x5, LBB0_37 $48(%rip) + WORD $0xb50002c7 // cbnz x7, LBB0_38 $88(%rip) +LBB0_35: + WORD $0xd1010294 // sub x20, x20, #64 + WORD $0x9101039c // add x28, x28, #64 + WORD $0xf100fe9f // cmp x20, #63 + WORD $0x54fff8a8 // b.hi LBB0_32 $-236(%rip) + WORD $0x14000441 // b LBB0_247 $4356(%rip) +LBB0_36: + WORD $0xb100051f // cmn x8, #1 + WORD $0xdac00235 // rbit x21, x17 + WORD $0xdac012b5 // clz x21, x21 + WORD $0x8b1c02b5 // add x21, x21, x28 + WORD $0x9a951108 // csel x8, x8, x21, ne +LBB0_37: + WORD $0x8a250235 // bic x21, x17, x5 + WORD $0xaa1504b6 // orr x22, x5, x21, lsl #1 + WORD $0x8a360231 // bic x17, x17, x22 + WORD $0x9201f231 // and x17, x17, #0xaaaaaaaaaaaaaaaa + WORD $0xab150231 // adds x17, x17, x21 + WORD $0x1a9f37e5 // cset w5, hs + WORD $0xd37ffa31 // lsl x17, x17, #1 + WORD $0xd200f231 // eor x17, x17, #0x5555555555555555 + WORD $0x8a160231 // and x17, x17, x22 + WORD $0x8a3100e7 // bic x7, x7, x17 + WORD $0xb4fffd87 // cbz x7, LBB0_35 $-80(%rip) +LBB0_38: + WORD $0xdac000f1 // rbit x17, x7 + WORD $0xdac01231 // clz x17, x17 + WORD $0x8b1c0231 // add x17, x17, x28 + WORD $0x140001aa // b LBB0_121 $1704(%rip) +LBB0_39: + WORD $0x7100111f // cmp w8, #4 + WORD $0x54000d00 // b.eq LBB0_56 $416(%rip) + WORD $0x7100151f // cmp w8, #5 + WORD $0x54002060 // b.eq LBB0_96 $1036(%rip) + WORD $0x7100191f // cmp w8, #6 + WORD $0x54000d61 // b.ne LBB0_58 $428(%rip) + WORD $0x71008abf // cmp w21, #34 + WORD $0x54001f81 // b.ne LBB0_95 $1008(%rip) + WORD $0x3200f3e4 // mov w4, #1431655765 + WORD $0x52800048 // mov w8, #2 + WORD $0xf8347948 // str x8, [x10, x20, lsl #3] + WORD $0xf9400408 // ldr x8, [x0, #8] + WORD $0xeb1c0114 // subs x20, x8, x28 + WORD $0x37283923 // tbnz w3, #5, LBB0_138 $1828(%rip) + WORD $0x5400d8e0 // b.eq LBB0_398 $6940(%rip) + WORD $0xf101029f // cmp x20, #64 + WORD $0x54009423 // b.lo LBB0_277 $4740(%rip) + WORD $0xd2800005 // mov x5, #0 + WORD $0x92800008 // mov x8, #-1 +LBB0_47: + WORD $0x8b1c0131 // add x17, x9, x28 + WORD $0xad405634 // ldp q20, q21, [x17] + WORD $0xad415e36 // ldp q22, q23, [x17, #32] + WORD $0x6e208e98 // cmeq.16b v24, v20, v0 + WORD $0x6e208eb9 // cmeq.16b v25, v21, v0 + WORD $0x6e208eda // cmeq.16b v26, v22, v0 + WORD $0x6e208efb // cmeq.16b v27, v23, v0 + WORD $0x6e218e94 // cmeq.16b v20, v20, v1 + WORD $0x6e218eb5 // cmeq.16b v21, v21, v1 + WORD $0x6e218ed6 // cmeq.16b v22, v22, v1 + WORD $0x6e218ef7 // cmeq.16b v23, v23, v1 + WORD $0x4e221f18 // and.16b v24, v24, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260311 // fmov w17, s24 + WORD $0x4e221f38 // and.16b v24, v25, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260307 // fmov w7, s24 + WORD $0x4e221f58 // and.16b v24, v26, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260315 // fmov w21, s24 + WORD $0x4e221f78 // and.16b v24, v27, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260316 // fmov w22, s24 + WORD $0x4e221e94 // and.16b v20, v20, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e260297 // fmov w23, s20 + WORD $0x4e221eb4 // and.16b v20, v21, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e260298 // fmov w24, s20 + WORD $0x4e221ed4 // and.16b v20, v22, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e260299 // fmov w25, s20 + WORD $0x4e221ef4 // and.16b v20, v23, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e26029a // fmov w26, s20 + WORD $0xd3607eb5 // lsl x21, x21, #32 + WORD $0xaa16c2b5 // orr x21, x21, x22, lsl #48 + WORD $0x53103ce7 // lsl w7, w7, #16 + WORD $0xaa0702a7 // orr x7, x21, x7 + WORD $0xaa1100e7 // orr x7, x7, x17 + WORD $0xd3607f31 // lsl x17, x25, #32 + WORD $0xaa1ac231 // orr x17, x17, x26, lsl #48 + WORD $0x53103f15 // lsl w21, w24, #16 + WORD $0xaa150231 // orr x17, x17, x21 + WORD $0xaa170231 // orr x17, x17, x23 + WORD $0xb5000111 // cbnz x17, LBB0_51 $32(%rip) + WORD $0xb5000185 // cbnz x5, LBB0_52 $48(%rip) + WORD $0xb50002c7 // cbnz x7, LBB0_53 $88(%rip) +LBB0_50: + WORD $0xd1010294 // sub x20, x20, #64 + WORD $0x9101039c // add x28, x28, #64 + WORD $0xf100fe9f // cmp x20, #63 + WORD $0x54fff8a8 // b.hi LBB0_47 $-236(%rip) + WORD $0x1400045e // b LBB0_275 $4472(%rip) +LBB0_51: + WORD $0xb100051f // cmn x8, #1 + WORD $0xdac00235 // rbit x21, x17 + WORD $0xdac012b5 // clz x21, x21 + WORD $0x8b1c02b5 // add x21, x21, x28 + WORD $0x9a951108 // csel x8, x8, x21, ne +LBB0_52: + WORD $0x8a250235 // bic x21, x17, x5 + WORD $0xaa1504b6 // orr x22, x5, x21, lsl #1 + WORD $0x8a360231 // bic x17, x17, x22 + WORD $0x9201f231 // and x17, x17, #0xaaaaaaaaaaaaaaaa + WORD $0xab150231 // adds x17, x17, x21 + WORD $0x1a9f37e5 // cset w5, hs + WORD $0xd37ffa31 // lsl x17, x17, #1 + WORD $0xd200f231 // eor x17, x17, #0x5555555555555555 + WORD $0x8a160231 // and x17, x17, x22 + WORD $0x8a3100e7 // bic x7, x7, x17 + WORD $0xb4fffd87 // cbz x7, LBB0_50 $-80(%rip) +LBB0_53: + WORD $0xdac000f1 // rbit x17, x7 + WORD $0xdac01231 // clz x17, x17 + WORD $0x8b1c0231 // add x17, x17, x28 + WORD $0x140001e6 // b LBB0_150 $1944(%rip) +LBB0_54: + WORD $0x7100b2bf // cmp w21, #44 + WORD $0x540017e0 // b.eq LBB0_105 $764(%rip) + WORD $0x710176bf // cmp w21, #93 + WORD $0x54001420 // b.eq LBB0_97 $644(%rip) + WORD $0x140006c4 // b LBB0_425 $6928(%rip) +LBB0_56: + WORD $0x7100eabf // cmp w21, #58 + WORD $0x5400d841 // b.ne LBB0_425 $6920(%rip) + WORD $0xf834795f // str xzr, [x10, x20, lsl #3] + WORD $0xf9400045 // ldr x5, [x2] + WORD $0xaa0e03e8 // mov x8, x14 + WORD $0xb5ffdce5 // cbnz x5, LBB0_1 $-1124(%rip) + WORD $0x14000656 // b LBB0_394 $6488(%rip) +LBB0_58: + WORD $0xf9000054 // str x20, [x2] + WORD $0x92800028 // mov x8, #-2 + WORD $0x71016abf // cmp w21, #90 + WORD $0x540013cc // b.gt LBB0_99 $632(%rip) +LBB0_59: + WORD $0x5100c2b1 // sub w17, w21, #48 + WORD $0x71002a3f // cmp w17, #10 + WORD $0x54003d02 // b.hs LBB0_154 $1952(%rip) + WORD $0xf9400408 // ldr x8, [x0, #8] + WORD $0xeb1b0115 // subs x21, x8, x27 + WORD $0x5400cbe0 // b.eq LBB0_399 $6524(%rip) + WORD $0x394003c8 // ldrb w8, [lr] + WORD $0x7100c11f // cmp w8, #48 + WORD $0x54000141 // b.ne LBB0_65 $40(%rip) + WORD $0xf10006bf // cmp x21, #1 + WORD $0x54004280 // b.eq LBB0_170 $2128(%rip) + WORD $0x387c6928 // ldrb w8, [x9, x28] + WORD $0x5100b908 // sub w8, w8, #46 + WORD $0x7100dd1f // cmp w8, #55 + WORD $0x54004208 // b.hi LBB0_170 $2112(%rip) + WORD $0x9ac821e8 // lsl x8, x15, x8 + WORD $0xea07011f // tst x8, x7 + WORD $0x540041a0 // b.eq LBB0_170 $2100(%rip) +LBB0_65: + WORD $0xf10042bf // cmp x21, #16 + WORD $0x5400a5c3 // b.lo LBB0_333 $5304(%rip) + WORD $0xd2800016 // mov x22, #0 + WORD $0xd280001c // mov x28, #0 + WORD $0x92800014 // mov x20, #-1 + WORD $0x92800005 // mov x5, #-1 + WORD $0x92800008 // mov x8, #-1 +LBB0_67: + WORD $0x3cfc6bd4 // ldr q20, [lr, x28] + WORD $0x6e258e95 // cmeq.16b v21, v20, v5 + WORD $0x6e268e96 // cmeq.16b v22, v20, v6 + WORD $0x6e278e97 // cmeq.16b v23, v20, v7 + WORD $0x4e308698 // add.16b v24, v20, v16 + WORD $0x6e383638 // cmhi.16b v24, v17, v24 + WORD $0x4e321e94 // and.16b v20, v20, v18 + WORD $0x6e338e94 // cmeq.16b v20, v20, v19 + WORD $0x4eb71ed6 // orr.16b v22, v22, v23 + WORD $0x4eb51f17 // orr.16b v23, v24, v21 + WORD $0x4eb61e98 // orr.16b v24, v20, v22 + WORD $0x4eb81ef7 // orr.16b v23, v23, v24 + WORD $0x4e221eb5 // and.16b v21, v21, v2 + WORD $0x4e0302b5 // tbl.16b v21, { v21 }, v3 + WORD $0x4e71bab5 // addv.8h h21, v21 + WORD $0x1e2602b1 // fmov w17, s21 + WORD $0x4e221e94 // and.16b v20, v20, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e260297 // fmov w23, s20 + WORD $0x4e221ed4 // and.16b v20, v22, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e260299 // fmov w25, s20 + WORD $0x4e221ef4 // and.16b v20, v23, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e260287 // fmov w7, s20 + WORD $0x2a2703e7 // mvn w7, w7 + WORD $0x32103ce7 // orr w7, w7, #0xffff0000 + WORD $0x5ac000e7 // rbit w7, w7 + WORD $0x5ac010e7 // clz w7, w7 + WORD $0x12800004 // mov w4, #-1 + WORD $0x1ac72098 // lsl w24, w4, w7 + WORD $0x0a38023a // bic w26, w17, w24 + WORD $0x0a3802e4 // bic w4, w23, w24 + WORD $0x0a380326 // bic w6, w25, w24 + WORD $0x710040ff // cmp w7, #16 + WORD $0x1a9a0231 // csel w17, w17, w26, eq + WORD $0x1a8402f8 // csel w24, w23, w4, eq + WORD $0x1a860337 // csel w23, w25, w6, eq + WORD $0x51000624 // sub w4, w17, #1 + WORD $0x6a110099 // ands w25, w4, w17 + WORD $0x54006d81 // b.ne LBB0_245 $3504(%rip) + WORD $0x51000704 // sub w4, w24, #1 + WORD $0x6a180099 // ands w25, w4, w24 + WORD $0x54006d21 // b.ne LBB0_245 $3492(%rip) + WORD $0x510006e4 // sub w4, w23, #1 + WORD $0x6a170099 // ands w25, w4, w23 + WORD $0x54006cc1 // b.ne LBB0_245 $3480(%rip) + WORD $0x340000d1 // cbz w17, LBB0_73 $24(%rip) + WORD $0x5ac00231 // rbit w17, w17 + WORD $0x5ac01231 // clz w17, w17 + WORD $0xb100051f // cmn x8, #1 + WORD $0x54006cc1 // b.ne LBB0_246 $3480(%rip) + WORD $0x8b110388 // add x8, x28, x17 +LBB0_73: + WORD $0x340000d8 // cbz w24, LBB0_76 $24(%rip) + WORD $0x5ac00311 // rbit w17, w24 + WORD $0x5ac01231 // clz w17, w17 + WORD $0xb10004bf // cmn x5, #1 + WORD $0x54006c01 // b.ne LBB0_246 $3456(%rip) + WORD $0x8b110385 // add x5, x28, x17 +LBB0_76: + WORD $0x340000d7 // cbz w23, LBB0_79 $24(%rip) + WORD $0x5ac002f1 // rbit w17, w23 + WORD $0x5ac01231 // clz w17, w17 + WORD $0xb100069f // cmn x20, #1 + WORD $0x54006b41 // b.ne LBB0_246 $3432(%rip) + WORD $0x8b110394 // add x20, x28, x17 +LBB0_79: + WORD $0x710040ff // cmp w7, #16 + WORD $0x54001bc1 // b.ne LBB0_123 $888(%rip) + WORD $0x9100439c // add x28, x28, #16 + WORD $0xd10042d6 // sub x22, x22, #16 + WORD $0x8b1602b7 // add x23, x21, x22 + WORD $0xf1003eff // cmp x23, #15 + WORD $0x54fff6c8 // b.hi LBB0_67 $-296(%rip) + WORD $0x8b1c03d6 // add x22, lr, x28 + WORD $0xeb1c02bf // cmp x21, x28 + WORD $0x54001b00 // b.eq LBB0_124 $864(%rip) +LBB0_82: + WORD $0x8b1702d8 // add x24, x22, x23 + WORD $0x8b1b01b1 // add x17, x13, x27 + WORD $0xcb160235 // sub x21, x17, x22 + WORD $0xcb1e02c7 // sub x7, x22, lr + WORD $0xaa1603fc // mov x28, x22 + WORD $0x14000009 // b LBB0_85 $36(%rip) +LBB0_83: + WORD $0xb10004bf // cmn x5, #1 + WORD $0xaa0703e5 // mov x5, x7 + WORD $0x54001d81 // b.ne LBB0_136 $944(%rip) +LBB0_84: + WORD $0xd10006b5 // sub x21, x21, #1 + WORD $0x910004e7 // add x7, x7, #1 + WORD $0xaa1c03f6 // mov x22, x28 + WORD $0xd10006f7 // sub x23, x23, #1 + WORD $0xb40042d7 // cbz x23, LBB0_184 $2136(%rip) +LBB0_85: + WORD $0x38401791 // ldrb w17, [x28], #1 + WORD $0x5100c224 // sub w4, w17, #48 + WORD $0x7100289f // cmp w4, #10 + WORD $0x54ffff03 // b.lo LBB0_84 $-32(%rip) + WORD $0x7100b63f // cmp w17, #45 + WORD $0x5400016d // b.le LBB0_91 $44(%rip) + WORD $0x7101963f // cmp w17, #101 + WORD $0x54fffe20 // b.eq LBB0_83 $-60(%rip) + WORD $0x7101163f // cmp w17, #69 + WORD $0x54fffde0 // b.eq LBB0_83 $-68(%rip) + WORD $0x7100ba3f // cmp w17, #46 + WORD $0x540017c1 // b.ne LBB0_124 $760(%rip) + WORD $0xb100051f // cmn x8, #1 + WORD $0xaa0703e8 // mov x8, x7 + WORD $0x54fffda0 // b.eq LBB0_84 $-76(%rip) + WORD $0x140000d7 // b LBB0_136 $860(%rip) +LBB0_91: + WORD $0x7100ae3f // cmp w17, #43 + WORD $0x54000060 // b.eq LBB0_93 $12(%rip) + WORD $0x7100b63f // cmp w17, #45 + WORD $0x540016c1 // b.ne LBB0_124 $728(%rip) +LBB0_93: + WORD $0xb100069f // cmn x20, #1 + WORD $0xaa0703f4 // mov x20, x7 + WORD $0x54fffca0 // b.eq LBB0_84 $-108(%rip) + WORD $0x140000cf // b LBB0_136 $828(%rip) +LBB0_94: + WORD $0x7100b2bf // cmp w21, #44 + WORD $0x54000560 // b.eq LBB0_107 $172(%rip) +LBB0_95: + WORD $0x7101f6bf // cmp w21, #125 + WORD $0x54000080 // b.eq LBB0_97 $16(%rip) + WORD $0x14000627 // b LBB0_425 $6300(%rip) +LBB0_96: + WORD $0x710176bf // cmp w21, #93 + WORD $0x540000c1 // b.ne LBB0_98 $24(%rip) +LBB0_97: + WORD $0xf9000054 // str x20, [x2] + WORD $0xaa1403e5 // mov x5, x20 + WORD $0xaa0e03e8 // mov x8, x14 + WORD $0xb5ffc954 // cbnz x20, LBB0_1 $-1752(%rip) + WORD $0x140005b9 // b LBB0_394 $5860(%rip) +LBB0_98: + WORD $0xf834794f // str x15, [x10, x20, lsl #3] + WORD $0x92800028 // mov x8, #-2 + WORD $0x71016abf // cmp w21, #90 + WORD $0x54ffec8d // b.le LBB0_59 $-624(%rip) +LBB0_99: + WORD $0x7101b6bf // cmp w21, #109 + WORD $0x54002bad // b.le LBB0_160 $1396(%rip) + WORD $0x7101babf // cmp w21, #110 + WORD $0x54002e80 // b.eq LBB0_167 $1488(%rip) + WORD $0x7101d2bf // cmp w21, #116 + WORD $0x54002d00 // b.eq LBB0_165 $1440(%rip) + WORD $0x7101eebf // cmp w21, #123 + WORD $0x5400b5a1 // b.ne LBB0_394 $5812(%rip) + WORD $0xf9400048 // ldr x8, [x2] + WORD $0xf13ffd1f // cmp x8, #4095 + WORD $0x5400b6cc // b.gt LBB0_396 $5848(%rip) + WORD $0x91000511 // add x17, x8, #1 + WORD $0xf9000051 // str x17, [x2] + WORD $0x528000d1 // mov w17, #6 + WORD $0xf8287951 // str x17, [x10, x8, lsl #3] + WORD $0xf9400045 // ldr x5, [x2] + WORD $0xaa0e03e8 // mov x8, x14 + WORD $0xb5ffc665 // cbnz x5, LBB0_1 $-1844(%rip) + WORD $0x140005a2 // b LBB0_394 $5768(%rip) +LBB0_105: + WORD $0xf13ffcbf // cmp x5, #4095 + WORD $0x5400b58c // b.gt LBB0_396 $5808(%rip) + WORD $0x910004a8 // add x8, x5, #1 + WORD $0xf9000048 // str x8, [x2] + WORD $0xf825795f // str xzr, [x10, x5, lsl #3] + WORD $0xf9400045 // ldr x5, [x2] + WORD $0xaa0e03e8 // mov x8, x14 + WORD $0xb5ffc545 // cbnz x5, LBB0_1 $-1880(%rip) + WORD $0x14000599 // b LBB0_394 $5732(%rip) +LBB0_107: + WORD $0xf13ffcbf // cmp x5, #4095 + WORD $0x5400b46c // b.gt LBB0_396 $5772(%rip) + WORD $0x910004a8 // add x8, x5, #1 + WORD $0xf9000048 // str x8, [x2] + WORD $0xf8257953 // str x19, [x10, x5, lsl #3] + WORD $0xf9400045 // ldr x5, [x2] + WORD $0xaa0e03e8 // mov x8, x14 + WORD $0xb5ffc425 // cbnz x5, LBB0_1 $-1916(%rip) + WORD $0x14000590 // b LBB0_394 $5696(%rip) +LBB0_109: + WORD $0x5400b3e0 // b.eq LBB0_398 $5756(%rip) + WORD $0xf101029f // cmp x20, #64 + WORD $0x54006403 // b.lo LBB0_256 $3200(%rip) + WORD $0xd2800005 // mov x5, #0 + WORD $0x92800008 // mov x8, #-1 +LBB0_112: + WORD $0x8b1c0131 // add x17, x9, x28 + WORD $0xad405a37 // ldp q23, q22, [x17] + WORD $0xad415235 // ldp q21, q20, [x17, #32] + WORD $0x6e208ef8 // cmeq.16b v24, v23, v0 + WORD $0x4e221f18 // and.16b v24, v24, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260311 // fmov w17, s24 + WORD $0x6e208ed8 // cmeq.16b v24, v22, v0 + WORD $0x4e221f18 // and.16b v24, v24, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260307 // fmov w7, s24 + WORD $0x6e208eb8 // cmeq.16b v24, v21, v0 + WORD $0x4e221f18 // and.16b v24, v24, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260315 // fmov w21, s24 + WORD $0x6e208e98 // cmeq.16b v24, v20, v0 + WORD $0x4e221f18 // and.16b v24, v24, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260316 // fmov w22, s24 + WORD $0x6e218ef8 // cmeq.16b v24, v23, v1 + WORD $0x4e221f18 // and.16b v24, v24, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260317 // fmov w23, s24 + WORD $0x6e218ed8 // cmeq.16b v24, v22, v1 + WORD $0x4e221f18 // and.16b v24, v24, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260318 // fmov w24, s24 + WORD $0x6e218eb8 // cmeq.16b v24, v21, v1 + WORD $0x4e221f18 // and.16b v24, v24, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260319 // fmov w25, s24 + WORD $0x6e218e98 // cmeq.16b v24, v20, v1 + WORD $0x4e221f18 // and.16b v24, v24, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e26031a // fmov w26, s24 + WORD $0xd3607eb5 // lsl x21, x21, #32 + WORD $0xaa16c2b5 // orr x21, x21, x22, lsl #48 + WORD $0x53103ce7 // lsl w7, w7, #16 + WORD $0xaa0702a7 // orr x7, x21, x7 + WORD $0xaa1100e7 // orr x7, x7, x17 + WORD $0xd3607f31 // lsl x17, x25, #32 + WORD $0xaa1ac231 // orr x17, x17, x26, lsl #48 + WORD $0x53103f15 // lsl w21, w24, #16 + WORD $0xaa150231 // orr x17, x17, x21 + WORD $0xaa170231 // orr x17, x17, x23 + WORD $0xb5000451 // cbnz x17, LBB0_117 $136(%rip) + WORD $0xb50004c5 // cbnz x5, LBB0_118 $152(%rip) +LBB0_114: + WORD $0x6e373497 // cmhi.16b v23, v4, v23 + WORD $0x4e221ef7 // and.16b v23, v23, v2 + WORD $0x4e0302f7 // tbl.16b v23, { v23 }, v3 + WORD $0x4e71baf7 // addv.8h h23, v23 + WORD $0x1e2602f1 // fmov w17, s23 + WORD $0x6e363496 // cmhi.16b v22, v4, v22 + WORD $0x4e221ed6 // and.16b v22, v22, v2 + WORD $0x4e0302d6 // tbl.16b v22, { v22 }, v3 + WORD $0x4e71bad6 // addv.8h h22, v22 + WORD $0x1e2602d5 // fmov w21, s22 + WORD $0x6e353495 // cmhi.16b v21, v4, v21 + WORD $0x4e221eb5 // and.16b v21, v21, v2 + WORD $0x4e0302b5 // tbl.16b v21, { v21 }, v3 + WORD $0x4e71bab5 // addv.8h h21, v21 + WORD $0x1e2602b6 // fmov w22, s21 + WORD $0x6e343494 // cmhi.16b v20, v4, v20 + WORD $0x4e221e94 // and.16b v20, v20, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e260297 // fmov w23, s20 + WORD $0xd3607ed6 // lsl x22, x22, #32 + WORD $0xaa17c2d6 // orr x22, x22, x23, lsl #48 + WORD $0x53103eb5 // lsl w21, w21, #16 + WORD $0xaa1502d5 // orr x21, x22, x21 + WORD $0xaa1102b1 // orr x17, x21, x17 + WORD $0xb50002e7 // cbnz x7, LBB0_119 $92(%rip) + WORD $0xb500aa71 // cbnz x17, LBB0_404 $5452(%rip) + WORD $0xd1010294 // sub x20, x20, #64 + WORD $0x9101039c // add x28, x28, #64 + WORD $0xf100fe9f // cmp x20, #63 + WORD $0x54fff568 // b.hi LBB0_112 $-340(%rip) + WORD $0x1400029d // b LBB0_248 $2676(%rip) +LBB0_117: + WORD $0xb100051f // cmn x8, #1 + WORD $0xdac00235 // rbit x21, x17 + WORD $0xdac012b5 // clz x21, x21 + WORD $0x8b1c02b5 // add x21, x21, x28 + WORD $0x9a951108 // csel x8, x8, x21, ne +LBB0_118: + WORD $0x8a250235 // bic x21, x17, x5 + WORD $0xaa1504b6 // orr x22, x5, x21, lsl #1 + WORD $0x8a360231 // bic x17, x17, x22 + WORD $0x9201f231 // and x17, x17, #0xaaaaaaaaaaaaaaaa + WORD $0xab150231 // adds x17, x17, x21 + WORD $0x1a9f37e5 // cset w5, hs + WORD $0xd37ffa31 // lsl x17, x17, #1 + WORD $0xd200f231 // eor x17, x17, #0x5555555555555555 + WORD $0x8a160231 // and x17, x17, x22 + WORD $0x8a3100e7 // bic x7, x7, x17 + WORD $0x17ffffd1 // b LBB0_114 $-188(%rip) +LBB0_119: + WORD $0xdac000e5 // rbit x5, x7 + WORD $0xdac010a5 // clz x5, x5 + WORD $0xdac00231 // rbit x17, x17 + WORD $0xdac01231 // clz x17, x17 + WORD $0xeb05023f // cmp x17, x5 + WORD $0x5400b143 // b.lo LBB0_427 $5672(%rip) +LBB0_120: + WORD $0x8b1c00b1 // add x17, x5, x28 +LBB0_121: + WORD $0x9100063c // add x28, x17, #1 +LBB0_122: + WORD $0x52800084 // mov w4, #4 + WORD $0x92f00006 // mov x6, #9223372036854775807 + WORD $0xb20903e7 // mov x7, #36028797027352576 + WORD $0xf2800027 // movk x7, #1 + WORD $0xb6f81c9c // tbz x28, #63, LBB0_170 $912(%rip) + WORD $0x14000524 // b LBB0_397 $5264(%rip) +LBB0_123: + WORD $0x8b2743d1 // add x17, lr, w7, uxtw + WORD $0x8b1c0236 // add x22, x17, x28 +LBB0_124: + WORD $0x92800015 // mov x21, #-1 + WORD $0xb400a4c8 // cbz x8, LBB0_400 $5272(%rip) +LBB0_125: + WORD $0xb400a4b4 // cbz x20, LBB0_400 $5268(%rip) + WORD $0xb400a485 // cbz x5, LBB0_400 $5264(%rip) + WORD $0xcb1e02c7 // sub x7, x22, lr + WORD $0xd10004f1 // sub x17, x7, #1 + WORD $0xeb11011f // cmp x8, x17 + WORD $0x540002a0 // b.eq LBB0_135 $84(%rip) + WORD $0xeb11029f // cmp x20, x17 + WORD $0x54000260 // b.eq LBB0_135 $76(%rip) + WORD $0xeb1100bf // cmp x5, x17 + WORD $0x54000220 // b.eq LBB0_135 $68(%rip) + WORD $0xf1000691 // subs x17, x20, #1 + WORD $0x5400006b // b.lt LBB0_132 $12(%rip) + WORD $0xeb1100bf // cmp x5, x17 + WORD $0x5400a321 // b.ne LBB0_401 $5220(%rip) +LBB0_132: + WORD $0xaa050111 // orr x17, x8, x5 + WORD $0xb7f80071 // tbnz x17, #63, LBB0_134 $12(%rip) + WORD $0xeb05011f // cmp x8, x5 + WORD $0x5400a44a // b.ge LBB0_407 $5256(%rip) +LBB0_134: + WORD $0xd37ffe31 // lsr x17, x17, #63 + WORD $0x52000231 // eor w17, w17, #0x1 + WORD $0xd10004a4 // sub x4, x5, #1 + WORD $0xeb04011f // cmp x8, x4 + WORD $0x1a9f17e8 // cset w8, eq + WORD $0x6a08023f // tst w17, w8 + WORD $0xda8500f5 // csinv x21, x7, x5, eq + WORD $0x14000002 // b LBB0_136 $8(%rip) +LBB0_135: + WORD $0xcb0703f5 // neg x21, x7 +LBB0_136: + WORD $0x52800084 // mov w4, #4 + WORD $0x92f00006 // mov x6, #9223372036854775807 + WORD $0xb20903e7 // mov x7, #36028797027352576 + WORD $0xf2800027 // movk x7, #1 + WORD $0xb7f8a0d5 // tbnz x21, #63, LBB0_400 $5144(%rip) + WORD $0x8b15037c // add x28, x27, x21 + WORD $0x140000bd // b LBB0_170 $756(%rip) +LBB0_138: + WORD $0x54009fe0 // b.eq LBB0_398 $5116(%rip) + WORD $0xf101029f // cmp x20, #64 + WORD $0x54005fa3 // b.lo LBB0_283 $3060(%rip) + WORD $0xd2800005 // mov x5, #0 + WORD $0x92800008 // mov x8, #-1 +LBB0_141: + WORD $0x8b1c0131 // add x17, x9, x28 + WORD $0xad405a37 // ldp q23, q22, [x17] + WORD $0xad415235 // ldp q21, q20, [x17, #32] + WORD $0x6e208ef8 // cmeq.16b v24, v23, v0 + WORD $0x4e221f18 // and.16b v24, v24, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260311 // fmov w17, s24 + WORD $0x6e208ed8 // cmeq.16b v24, v22, v0 + WORD $0x4e221f18 // and.16b v24, v24, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260307 // fmov w7, s24 + WORD $0x6e208eb8 // cmeq.16b v24, v21, v0 + WORD $0x4e221f18 // and.16b v24, v24, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260315 // fmov w21, s24 + WORD $0x6e208e98 // cmeq.16b v24, v20, v0 + WORD $0x4e221f18 // and.16b v24, v24, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260316 // fmov w22, s24 + WORD $0x6e218ef8 // cmeq.16b v24, v23, v1 + WORD $0x4e221f18 // and.16b v24, v24, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260317 // fmov w23, s24 + WORD $0x6e218ed8 // cmeq.16b v24, v22, v1 + WORD $0x4e221f18 // and.16b v24, v24, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260318 // fmov w24, s24 + WORD $0x6e218eb8 // cmeq.16b v24, v21, v1 + WORD $0x4e221f18 // and.16b v24, v24, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260319 // fmov w25, s24 + WORD $0x6e218e98 // cmeq.16b v24, v20, v1 + WORD $0x4e221f18 // and.16b v24, v24, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e26031a // fmov w26, s24 + WORD $0xd3607eb5 // lsl x21, x21, #32 + WORD $0xaa16c2b5 // orr x21, x21, x22, lsl #48 + WORD $0x53103ce7 // lsl w7, w7, #16 + WORD $0xaa0702a7 // orr x7, x21, x7 + WORD $0xaa1100e7 // orr x7, x7, x17 + WORD $0xd3607f31 // lsl x17, x25, #32 + WORD $0xaa1ac231 // orr x17, x17, x26, lsl #48 + WORD $0x53103f15 // lsl w21, w24, #16 + WORD $0xaa150231 // orr x17, x17, x21 + WORD $0xaa170231 // orr x17, x17, x23 + WORD $0xb5000451 // cbnz x17, LBB0_146 $136(%rip) + WORD $0xb50004c5 // cbnz x5, LBB0_147 $152(%rip) +LBB0_143: + WORD $0x6e373497 // cmhi.16b v23, v4, v23 + WORD $0x4e221ef7 // and.16b v23, v23, v2 + WORD $0x4e0302f7 // tbl.16b v23, { v23 }, v3 + WORD $0x4e71baf7 // addv.8h h23, v23 + WORD $0x1e2602f1 // fmov w17, s23 + WORD $0x6e363496 // cmhi.16b v22, v4, v22 + WORD $0x4e221ed6 // and.16b v22, v22, v2 + WORD $0x4e0302d6 // tbl.16b v22, { v22 }, v3 + WORD $0x4e71bad6 // addv.8h h22, v22 + WORD $0x1e2602d5 // fmov w21, s22 + WORD $0x6e353495 // cmhi.16b v21, v4, v21 + WORD $0x4e221eb5 // and.16b v21, v21, v2 + WORD $0x4e0302b5 // tbl.16b v21, { v21 }, v3 + WORD $0x4e71bab5 // addv.8h h21, v21 + WORD $0x1e2602b6 // fmov w22, s21 + WORD $0x6e343494 // cmhi.16b v20, v4, v20 + WORD $0x4e221e94 // and.16b v20, v20, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e260297 // fmov w23, s20 + WORD $0xd3607ed6 // lsl x22, x22, #32 + WORD $0xaa17c2d6 // orr x22, x22, x23, lsl #48 + WORD $0x53103eb5 // lsl w21, w21, #16 + WORD $0xaa1502d5 // orr x21, x22, x21 + WORD $0xaa1102b1 // orr x17, x21, x17 + WORD $0xb50002e7 // cbnz x7, LBB0_148 $92(%rip) + WORD $0xb5009671 // cbnz x17, LBB0_404 $4812(%rip) + WORD $0xd1010294 // sub x20, x20, #64 + WORD $0x9101039c // add x28, x28, #64 + WORD $0xf100fe9f // cmp x20, #63 + WORD $0x54fff568 // b.hi LBB0_141 $-340(%rip) + WORD $0x1400027e // b LBB0_276 $2552(%rip) +LBB0_146: + WORD $0xb100051f // cmn x8, #1 + WORD $0xdac00235 // rbit x21, x17 + WORD $0xdac012b5 // clz x21, x21 + WORD $0x8b1c02b5 // add x21, x21, x28 + WORD $0x9a951108 // csel x8, x8, x21, ne +LBB0_147: + WORD $0x8a250235 // bic x21, x17, x5 + WORD $0xaa1504b6 // orr x22, x5, x21, lsl #1 + WORD $0x8a360231 // bic x17, x17, x22 + WORD $0x9201f231 // and x17, x17, #0xaaaaaaaaaaaaaaaa + WORD $0xab150231 // adds x17, x17, x21 + WORD $0x1a9f37e5 // cset w5, hs + WORD $0xd37ffa31 // lsl x17, x17, #1 + WORD $0xd200f231 // eor x17, x17, #0x5555555555555555 + WORD $0x8a160231 // and x17, x17, x22 + WORD $0x8a3100e7 // bic x7, x7, x17 + WORD $0x17ffffd1 // b LBB0_143 $-188(%rip) +LBB0_148: + WORD $0xdac000e5 // rbit x5, x7 + WORD $0xdac010a5 // clz x5, x5 + WORD $0xdac00231 // rbit x17, x17 + WORD $0xdac01231 // clz x17, x17 + WORD $0xeb05023f // cmp x17, x5 + WORD $0x54009d43 // b.lo LBB0_427 $5032(%rip) + WORD $0x8b1c00b1 // add x17, x5, x28 +LBB0_150: + WORD $0x9100063c // add x28, x17, #1 + WORD $0x52800084 // mov w4, #4 + WORD $0x92f00006 // mov x6, #9223372036854775807 + WORD $0xb20903e7 // mov x7, #36028797027352576 + WORD $0xf2800027 // movk x7, #1 + WORD $0xb7f890bc // tbnz x28, #63, LBB0_397 $4628(%rip) +LBB0_151: + WORD $0xf900003c // str x28, [x1] + WORD $0xaa1b03e8 // mov x8, x27 + WORD $0xb27ff7f1 // mov x17, #9223372036854775806 + WORD $0xeb11037f // cmp x27, x17 + WORD $0x54008e48 // b.hi LBB0_394 $4552(%rip) + WORD $0xf9400048 // ldr x8, [x2] + WORD $0xf13ffd1f // cmp x8, #4095 + WORD $0x54008f6c // b.gt LBB0_396 $4588(%rip) + WORD $0x91000511 // add x17, x8, #1 + WORD $0xf9000051 // str x17, [x2] + WORD $0xf8287944 // str x4, [x10, x8, lsl #3] + WORD $0xf9400045 // ldr x5, [x2] + WORD $0xaa0e03e8 // mov x8, x14 + WORD $0xb5ff9f25 // cbnz x5, LBB0_1 $-3100(%rip) + WORD $0x14000468 // b LBB0_394 $4512(%rip) +LBB0_154: + WORD $0x71008abf // cmp w21, #34 + WORD $0x540008c0 // b.eq LBB0_174 $280(%rip) + WORD $0x7100b6bf // cmp w21, #45 + WORD $0x54008c81 // b.ne LBB0_394 $4496(%rip) + WORD $0xf9400408 // ldr x8, [x0, #8] + WORD $0xeb1c0118 // subs x24, x8, x28 + WORD $0x540090c0 // b.eq LBB0_408 $4632(%rip) + WORD $0xb20903e4 // mov x4, #36028797027352576 + WORD $0xf2800024 // movk x4, #1 + WORD $0x8b1c0128 // add x8, x9, x28 + WORD $0x39400111 // ldrb w17, [x8] + WORD $0x7100c23f // cmp w17, #48 + WORD $0x54002281 // b.ne LBB0_198 $1104(%rip) + WORD $0xf100071f // cmp x24, #1 + WORD $0x54002141 // b.ne LBB0_196 $1064(%rip) +LBB0_159: + WORD $0x52800027 // mov w7, #1 + WORD $0x140001ac // b LBB0_244 $1712(%rip) +LBB0_160: + WORD $0x71016ebf // cmp w21, #91 + WORD $0x54000540 // b.eq LBB0_172 $168(%rip) + WORD $0x71019abf // cmp w21, #102 + WORD $0x54008a61 // b.ne LBB0_394 $4428(%rip) + WORD $0xf9400408 // ldr x8, [x0, #8] + WORD $0xd1001111 // sub x17, x8, #4 + WORD $0xeb11037f // cmp x27, x17 + WORD $0x54008de2 // b.hs LBB0_406 $4540(%rip) + WORD $0xb87c6928 // ldr w8, [x9, x28] + WORD $0x528d8c31 // mov w17, #27745 + WORD $0x72acae71 // movk w17, #25971, lsl #16 + WORD $0x6b11011f // cmp w8, w17 + WORD $0x54009381 // b.ne LBB0_420 $4720(%rip) + WORD $0x9100177c // add x28, x27, #5 + WORD $0x14000015 // b LBB0_170 $84(%rip) +LBB0_165: + WORD $0xf9400408 // ldr x8, [x0, #8] + WORD $0xd1000d11 // sub x17, x8, #3 + WORD $0xeb11037f // cmp x27, x17 + WORD $0x54008c82 // b.hs LBB0_406 $4496(%rip) + WORD $0xb87b6928 // ldr w8, [x9, x27] + WORD $0x528e4e91 // mov w17, #29300 + WORD $0x72acaeb1 // movk w17, #25973, lsl #16 + WORD $0x6b11011f // cmp w8, w17 + WORD $0x54000160 // b.eq LBB0_169 $44(%rip) + WORD $0x1400047b // b LBB0_415 $4588(%rip) +LBB0_167: + WORD $0xf9400408 // ldr x8, [x0, #8] + WORD $0xd1000d11 // sub x17, x8, #3 + WORD $0xeb11037f // cmp x27, x17 + WORD $0x54008b42 // b.hs LBB0_406 $4456(%rip) + WORD $0xb87b6928 // ldr w8, [x9, x27] + WORD $0x528eadd1 // mov w17, #30062 + WORD $0x72ad8d91 // movk w17, #27756, lsl #16 + WORD $0x6b11011f // cmp w8, w17 + WORD $0x54008bc1 // b.ne LBB0_411 $4472(%rip) +LBB0_169: + WORD $0x9100137c // add x28, x27, #4 +LBB0_170: + WORD $0xf900003c // str x28, [x1] + WORD $0xaa1b03e8 // mov x8, x27 + WORD $0xeb06037f // cmp x27, x6 + WORD $0x54008602 // b.hs LBB0_394 $4288(%rip) +LBB0_171: + WORD $0xf9400045 // ldr x5, [x2] + WORD $0xaa0e03e8 // mov x8, x14 + WORD $0xb5ff97a5 // cbnz x5, LBB0_1 $-3340(%rip) + WORD $0x1400042c // b LBB0_394 $4272(%rip) +LBB0_172: + WORD $0xf9400048 // ldr x8, [x2] + WORD $0xf13ffd1f // cmp x8, #4095 + WORD $0x540086ac // b.gt LBB0_396 $4308(%rip) + WORD $0x91000511 // add x17, x8, #1 + WORD $0xf9000051 // str x17, [x2] + WORD $0x528000b1 // mov w17, #5 + WORD $0xf8287951 // str x17, [x10, x8, lsl #3] + WORD $0xf9400045 // ldr x5, [x2] + WORD $0xaa0e03e8 // mov x8, x14 + WORD $0xb5ff9645 // cbnz x5, LBB0_1 $-3384(%rip) + WORD $0x14000421 // b LBB0_394 $4228(%rip) +LBB0_174: + WORD $0x3200f3f8 // mov w24, #1431655765 + WORD $0xf9400408 // ldr x8, [x0, #8] + WORD $0xeb1c0114 // subs x20, x8, x28 + WORD $0x37280b43 // tbnz w3, #5, LBB0_185 $360(%rip) + WORD $0x54008580 // b.eq LBB0_398 $4272(%rip) + WORD $0xf101029f // cmp x20, #64 + WORD $0x540051e3 // b.lo LBB0_307 $2620(%rip) + WORD $0xd2800005 // mov x5, #0 + WORD $0x92800008 // mov x8, #-1 +LBB0_178: + WORD $0x8b1c0131 // add x17, x9, x28 + WORD $0xad405634 // ldp q20, q21, [x17] + WORD $0xad415e36 // ldp q22, q23, [x17, #32] + WORD $0x6e208e98 // cmeq.16b v24, v20, v0 + WORD $0x6e208eb9 // cmeq.16b v25, v21, v0 + WORD $0x6e208eda // cmeq.16b v26, v22, v0 + WORD $0x6e208efb // cmeq.16b v27, v23, v0 + WORD $0x6e218e94 // cmeq.16b v20, v20, v1 + WORD $0x6e218eb5 // cmeq.16b v21, v21, v1 + WORD $0x6e218ed6 // cmeq.16b v22, v22, v1 + WORD $0x6e218ef7 // cmeq.16b v23, v23, v1 + WORD $0x4e221f18 // and.16b v24, v24, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260311 // fmov w17, s24 + WORD $0x4e221f38 // and.16b v24, v25, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260304 // fmov w4, s24 + WORD $0x4e221f58 // and.16b v24, v26, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260306 // fmov w6, s24 + WORD $0x4e221f78 // and.16b v24, v27, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260307 // fmov w7, s24 + WORD $0x4e221e94 // and.16b v20, v20, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e260293 // fmov w19, s20 + WORD $0x4e221eb4 // and.16b v20, v21, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e260295 // fmov w21, s20 + WORD $0x4e221ed4 // and.16b v20, v22, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e260296 // fmov w22, s20 + WORD $0x4e221ef4 // and.16b v20, v23, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e260297 // fmov w23, s20 + WORD $0xd3607cc6 // lsl x6, x6, #32 + WORD $0xaa07c0c6 // orr x6, x6, x7, lsl #48 + WORD $0x53103c84 // lsl w4, w4, #16 + WORD $0xaa0400c4 // orr x4, x6, x4 + WORD $0xaa110087 // orr x7, x4, x17 + WORD $0xd3607ed1 // lsl x17, x22, #32 + WORD $0xaa17c231 // orr x17, x17, x23, lsl #48 + WORD $0x53103ea4 // lsl w4, w21, #16 + WORD $0xaa040231 // orr x17, x17, x4 + WORD $0xaa130231 // orr x17, x17, x19 + WORD $0xb5000131 // cbnz x17, LBB0_182 $36(%rip) + WORD $0xb50001a5 // cbnz x5, LBB0_183 $52(%rip) + WORD $0x52800073 // mov w19, #3 + WORD $0xb5ffa2c7 // cbnz x7, LBB0_38 $-2984(%rip) +LBB0_181: + WORD $0xd1010294 // sub x20, x20, #64 + WORD $0x9101039c // add x28, x28, #64 + WORD $0xf100fe9f // cmp x20, #63 + WORD $0x54fff888 // b.hi LBB0_178 $-240(%rip) + WORD $0x14000247 // b LBB0_304 $2332(%rip) +LBB0_182: + WORD $0xb100051f // cmn x8, #1 + WORD $0xdac00224 // rbit x4, x17 + WORD $0xdac01084 // clz x4, x4 + WORD $0x8b1c0084 // add x4, x4, x28 + WORD $0x9a841108 // csel x8, x8, x4, ne +LBB0_183: + WORD $0x8a250224 // bic x4, x17, x5 + WORD $0xaa0404a6 // orr x6, x5, x4, lsl #1 + WORD $0x8a260231 // bic x17, x17, x6 + WORD $0x9201f231 // and x17, x17, #0xaaaaaaaaaaaaaaaa + WORD $0xab040231 // adds x17, x17, x4 + WORD $0x1a9f37e5 // cset w5, hs + WORD $0xd37ffa31 // lsl x17, x17, #1 + WORD $0xd200f231 // eor x17, x17, #0x5555555555555555 + WORD $0x8a060231 // and x17, x17, x6 + WORD $0x8a3100e7 // bic x7, x7, x17 + WORD $0x52800073 // mov w19, #3 + WORD $0xb4fffd67 // cbz x7, LBB0_181 $-84(%rip) + WORD $0x17fffcff // b LBB0_38 $-3076(%rip) +LBB0_184: + WORD $0xaa1803f6 // mov x22, x24 + WORD $0x92800015 // mov x21, #-1 + WORD $0xb5ffd688 // cbnz x8, LBB0_125 $-1328(%rip) + WORD $0x140003d8 // b LBB0_400 $3936(%rip) +LBB0_185: + WORD $0x54007a60 // b.eq LBB0_398 $3916(%rip) + WORD $0xf101029f // cmp x20, #64 + WORD $0x54004b43 // b.lo LBB0_313 $2408(%rip) + WORD $0xd2800005 // mov x5, #0 + WORD $0x92800008 // mov x8, #-1 +LBB0_188: + WORD $0x8b1c0131 // add x17, x9, x28 + WORD $0xad405a37 // ldp q23, q22, [x17] + WORD $0xad415235 // ldp q21, q20, [x17, #32] + WORD $0x6e208ef8 // cmeq.16b v24, v23, v0 + WORD $0x4e221f18 // and.16b v24, v24, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260311 // fmov w17, s24 + WORD $0x6e208ed8 // cmeq.16b v24, v22, v0 + WORD $0x4e221f18 // and.16b v24, v24, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260304 // fmov w4, s24 + WORD $0x6e208eb8 // cmeq.16b v24, v21, v0 + WORD $0x4e221f18 // and.16b v24, v24, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260306 // fmov w6, s24 + WORD $0x6e208e98 // cmeq.16b v24, v20, v0 + WORD $0x4e221f18 // and.16b v24, v24, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260307 // fmov w7, s24 + WORD $0x6e218ef8 // cmeq.16b v24, v23, v1 + WORD $0x4e221f18 // and.16b v24, v24, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260313 // fmov w19, s24 + WORD $0x6e218ed8 // cmeq.16b v24, v22, v1 + WORD $0x4e221f18 // and.16b v24, v24, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260315 // fmov w21, s24 + WORD $0x6e218eb8 // cmeq.16b v24, v21, v1 + WORD $0x4e221f18 // and.16b v24, v24, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260316 // fmov w22, s24 + WORD $0x6e218e98 // cmeq.16b v24, v20, v1 + WORD $0x4e221f18 // and.16b v24, v24, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260317 // fmov w23, s24 + WORD $0xd3607cc6 // lsl x6, x6, #32 + WORD $0xaa07c0c6 // orr x6, x6, x7, lsl #48 + WORD $0x53103c84 // lsl w4, w4, #16 + WORD $0xaa0400c4 // orr x4, x6, x4 + WORD $0xaa110087 // orr x7, x4, x17 + WORD $0xd3607ed1 // lsl x17, x22, #32 + WORD $0xaa17c231 // orr x17, x17, x23, lsl #48 + WORD $0x53103ea4 // lsl w4, w21, #16 + WORD $0xaa040231 // orr x17, x17, x4 + WORD $0xaa130231 // orr x17, x17, x19 + WORD $0xb5000451 // cbnz x17, LBB0_193 $136(%rip) + WORD $0xb50004c5 // cbnz x5, LBB0_194 $152(%rip) +LBB0_190: + WORD $0x6e373497 // cmhi.16b v23, v4, v23 + WORD $0x4e221ef7 // and.16b v23, v23, v2 + WORD $0x4e0302f7 // tbl.16b v23, { v23 }, v3 + WORD $0x4e71baf7 // addv.8h h23, v23 + WORD $0x1e2602f1 // fmov w17, s23 + WORD $0x6e363496 // cmhi.16b v22, v4, v22 + WORD $0x4e221ed6 // and.16b v22, v22, v2 + WORD $0x4e0302d6 // tbl.16b v22, { v22 }, v3 + WORD $0x4e71bad6 // addv.8h h22, v22 + WORD $0x1e2602c4 // fmov w4, s22 + WORD $0x6e353495 // cmhi.16b v21, v4, v21 + WORD $0x4e221eb5 // and.16b v21, v21, v2 + WORD $0x4e0302b5 // tbl.16b v21, { v21 }, v3 + WORD $0x4e71bab5 // addv.8h h21, v21 + WORD $0x1e2602a6 // fmov w6, s21 + WORD $0x6e343494 // cmhi.16b v20, v4, v20 + WORD $0x4e221e94 // and.16b v20, v20, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e260293 // fmov w19, s20 + WORD $0xd3607cc6 // lsl x6, x6, #32 + WORD $0xaa13c0c6 // orr x6, x6, x19, lsl #48 + WORD $0x53103c84 // lsl w4, w4, #16 + WORD $0xaa0400c4 // orr x4, x6, x4 + WORD $0xaa110091 // orr x17, x4, x17 + WORD $0xb50002e7 // cbnz x7, LBB0_195 $92(%rip) + WORD $0xb50070f1 // cbnz x17, LBB0_404 $3612(%rip) + WORD $0xd1010294 // sub x20, x20, #64 + WORD $0x9101039c // add x28, x28, #64 + WORD $0xf100fe9f // cmp x20, #63 + WORD $0x54fff568 // b.hi LBB0_188 $-340(%rip) + WORD $0x140001d7 // b LBB0_305 $1884(%rip) +LBB0_193: + WORD $0xb100051f // cmn x8, #1 + WORD $0xdac00224 // rbit x4, x17 + WORD $0xdac01084 // clz x4, x4 + WORD $0x8b1c0084 // add x4, x4, x28 + WORD $0x9a841108 // csel x8, x8, x4, ne +LBB0_194: + WORD $0x8a250224 // bic x4, x17, x5 + WORD $0xaa0404a6 // orr x6, x5, x4, lsl #1 + WORD $0x8a260231 // bic x17, x17, x6 + WORD $0x9201f231 // and x17, x17, #0xaaaaaaaaaaaaaaaa + WORD $0xab040231 // adds x17, x17, x4 + WORD $0x1a9f37e5 // cset w5, hs + WORD $0xd37ffa31 // lsl x17, x17, #1 + WORD $0xd200f231 // eor x17, x17, #0x5555555555555555 + WORD $0x8a060231 // and x17, x17, x6 + WORD $0x8a3100e7 // bic x7, x7, x17 + WORD $0x17ffffd1 // b LBB0_190 $-188(%rip) +LBB0_195: + WORD $0xdac000e4 // rbit x4, x7 + WORD $0xdac01085 // clz x5, x4 + WORD $0xdac00231 // rbit x17, x17 + WORD $0xdac01231 // clz x17, x17 + WORD $0xeb05023f // cmp x17, x5 + WORD $0x52800073 // mov w19, #3 + WORD $0x54ffc682 // b.hs LBB0_120 $-1840(%rip) + WORD $0x140003bc // b LBB0_427 $3824(%rip) +LBB0_196: + WORD $0x39400511 // ldrb w17, [x8, #1] + WORD $0x5100ba31 // sub w17, w17, #46 + WORD $0x7100de3f // cmp w17, #55 + WORD $0x54ffde88 // b.hi LBB0_159 $-1072(%rip) + WORD $0x9ad121f1 // lsl x17, x15, x17 + WORD $0x52800027 // mov w7, #1 + WORD $0xea04023f // tst x17, x4 + WORD $0x540013a0 // b.eq LBB0_244 $628(%rip) +LBB0_198: + WORD $0xf100431f // cmp x24, #16 + WORD $0x54004803 // b.lo LBB0_335 $2304(%rip) + WORD $0xd2800017 // mov x23, #0 + WORD $0xd2800007 // mov x7, #0 + WORD $0x9280001e // mov lr, #-1 + WORD $0x92800005 // mov x5, #-1 + WORD $0x92800014 // mov x20, #-1 +LBB0_200: + WORD $0x3ce76914 // ldr q20, [x8, x7] + WORD $0x6e258e95 // cmeq.16b v21, v20, v5 + WORD $0x6e268e96 // cmeq.16b v22, v20, v6 + WORD $0x6e278e97 // cmeq.16b v23, v20, v7 + WORD $0x4e308698 // add.16b v24, v20, v16 + WORD $0x6e383638 // cmhi.16b v24, v17, v24 + WORD $0x4e321e94 // and.16b v20, v20, v18 + WORD $0x6e338e94 // cmeq.16b v20, v20, v19 + WORD $0x4eb71ed6 // orr.16b v22, v22, v23 + WORD $0x4eb51f17 // orr.16b v23, v24, v21 + WORD $0x4eb61e98 // orr.16b v24, v20, v22 + WORD $0x4eb81ef7 // orr.16b v23, v23, v24 + WORD $0x4e221eb5 // and.16b v21, v21, v2 + WORD $0x4e0302b5 // tbl.16b v21, { v21 }, v3 + WORD $0x4e71bab5 // addv.8h h21, v21 + WORD $0x1e2602b1 // fmov w17, s21 + WORD $0x4e221e94 // and.16b v20, v20, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e260284 // fmov w4, s20 + WORD $0x4e221ed4 // and.16b v20, v22, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e260286 // fmov w6, s20 + WORD $0x4e221ef4 // and.16b v20, v23, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e260295 // fmov w21, s20 + WORD $0x2a3503f5 // mvn w21, w21 + WORD $0x32103eb5 // orr w21, w21, #0xffff0000 + WORD $0x5ac002b5 // rbit w21, w21 + WORD $0x5ac012b5 // clz w21, w21 + WORD $0x12800013 // mov w19, #-1 + WORD $0x1ad52276 // lsl w22, w19, w21 + WORD $0x0a360239 // bic w25, w17, w22 + WORD $0x0a360093 // bic w19, w4, w22 + WORD $0x0a3600d6 // bic w22, w6, w22 + WORD $0x710042bf // cmp w21, #16 + WORD $0x1a99023a // csel w26, w17, w25, eq + WORD $0x1a930091 // csel w17, w4, w19, eq + WORD $0x1a9600d6 // csel w22, w6, w22, eq + WORD $0x51000744 // sub w4, w26, #1 + WORD $0x6a1a0099 // ands w25, w4, w26 + WORD $0x54002f81 // b.ne LBB0_303 $1520(%rip) + WORD $0x51000624 // sub w4, w17, #1 + WORD $0x6a110099 // ands w25, w4, w17 + WORD $0x54002f21 // b.ne LBB0_303 $1508(%rip) + WORD $0x510006c4 // sub w4, w22, #1 + WORD $0x6a160099 // ands w25, w4, w22 + WORD $0x54002ec1 // b.ne LBB0_303 $1496(%rip) + WORD $0x340000da // cbz w26, LBB0_206 $24(%rip) + WORD $0x5ac00344 // rbit w4, w26 + WORD $0x5ac0109a // clz w26, w4 + WORD $0xb100069f // cmn x20, #1 + WORD $0x54004001 // b.ne LBB0_334 $2048(%rip) + WORD $0x8b1a00f4 // add x20, x7, x26 +LBB0_206: + WORD $0x340000d1 // cbz w17, LBB0_209 $24(%rip) + WORD $0x5ac00231 // rbit w17, w17 + WORD $0x5ac01231 // clz w17, w17 + WORD $0xb10004bf // cmn x5, #1 + WORD $0x54002ea1 // b.ne LBB0_306 $1492(%rip) + WORD $0x8b1100e5 // add x5, x7, x17 +LBB0_209: + WORD $0x340000d6 // cbz w22, LBB0_212 $24(%rip) + WORD $0x5ac002d1 // rbit w17, w22 + WORD $0x5ac01231 // clz w17, w17 + WORD $0xb10007df // cmn lr, #1 + WORD $0x54002de1 // b.ne LBB0_306 $1468(%rip) + WORD $0x8b1100fe // add lr, x7, x17 +LBB0_212: + WORD $0x710042bf // cmp w21, #16 + WORD $0x540005e1 // b.ne LBB0_230 $188(%rip) + WORD $0x910040e7 // add x7, x7, #16 + WORD $0xd10042f7 // sub x23, x23, #16 + WORD $0x8b170315 // add x21, x24, x23 + WORD $0xf1003ebf // cmp x21, #15 + WORD $0x54fff6c8 // b.hi LBB0_200 $-296(%rip) + WORD $0x8b070116 // add x22, x8, x7 + WORD $0xeb07031f // cmp x24, x7 + WORD $0x52800073 // mov w19, #3 + WORD $0x54000520 // b.eq LBB0_231 $164(%rip) +LBB0_215: + WORD $0x8b1502c6 // add x6, x22, x21 + WORD $0x8b160191 // add x17, x12, x22 + WORD $0xcb1b0238 // sub x24, x17, x27 + WORD $0xaa1603f7 // mov x23, x22 + WORD $0x14000008 // b LBB0_219 $32(%rip) +LBB0_216: + WORD $0xb10007df // cmn lr, #1 + WORD $0x54002a01 // b.ne LBB0_302 $1344(%rip) + WORD $0xd100071e // sub lr, x24, #1 +LBB0_218: + WORD $0x91000718 // add x24, x24, #1 + WORD $0xaa1703f6 // mov x22, x23 + WORD $0xd10006b5 // sub x21, x21, #1 + WORD $0xb4000a35 // cbz x21, LBB0_249 $324(%rip) +LBB0_219: + WORD $0x384016f1 // ldrb w17, [x23], #1 + WORD $0x5100c224 // sub w4, w17, #48 + WORD $0x7100289f // cmp w4, #10 + WORD $0x54ffff23 // b.lo LBB0_218 $-28(%rip) + WORD $0x7100b63f // cmp w17, #45 + WORD $0x5400016d // b.le LBB0_226 $44(%rip) + WORD $0x7101963f // cmp w17, #101 + WORD $0x540001c0 // b.eq LBB0_228 $56(%rip) + WORD $0x7101163f // cmp w17, #69 + WORD $0x54000180 // b.eq LBB0_228 $48(%rip) + WORD $0x7100ba3f // cmp w17, #46 + WORD $0x54000221 // b.ne LBB0_231 $68(%rip) + WORD $0xb100069f // cmn x20, #1 + WORD $0x540027a1 // b.ne LBB0_302 $1268(%rip) + WORD $0xd1000714 // sub x20, x24, #1 + WORD $0x17ffffed // b LBB0_218 $-76(%rip) +LBB0_226: + WORD $0x7100ae3f // cmp w17, #43 + WORD $0x54fffd00 // b.eq LBB0_216 $-96(%rip) + WORD $0x7100b63f // cmp w17, #45 + WORD $0x54fffcc0 // b.eq LBB0_216 $-104(%rip) + WORD $0x14000008 // b LBB0_231 $32(%rip) +LBB0_228: + WORD $0xb10004bf // cmn x5, #1 + WORD $0x54002681 // b.ne LBB0_302 $1232(%rip) + WORD $0xd1000705 // sub x5, x24, #1 + WORD $0x17ffffe4 // b LBB0_218 $-112(%rip) +LBB0_230: + WORD $0x8b354111 // add x17, x8, w21, uxtw + WORD $0x8b070236 // add x22, x17, x7 + WORD $0x52800073 // mov w19, #3 +LBB0_231: + WORD $0x92800007 // mov x7, #-1 + WORD $0xb4005dd4 // cbz x20, LBB0_409 $3000(%rip) +LBB0_232: + WORD $0xb4005dbe // cbz lr, LBB0_409 $2996(%rip) + WORD $0xb4005d85 // cbz x5, LBB0_409 $2992(%rip) + WORD $0xcb0802c8 // sub x8, x22, x8 + WORD $0xd1000511 // sub x17, x8, #1 + WORD $0xeb11029f // cmp x20, x17 + WORD $0x540002a0 // b.eq LBB0_242 $84(%rip) + WORD $0xeb1103df // cmp lr, x17 + WORD $0x54000260 // b.eq LBB0_242 $76(%rip) + WORD $0xeb1100bf // cmp x5, x17 + WORD $0x54000220 // b.eq LBB0_242 $68(%rip) + WORD $0xf10007d1 // subs x17, lr, #1 + WORD $0x5400006b // b.lt LBB0_239 $12(%rip) + WORD $0xeb1100bf // cmp x5, x17 + WORD $0x54005c21 // b.ne LBB0_410 $2948(%rip) +LBB0_239: + WORD $0xaa050291 // orr x17, x20, x5 + WORD $0xb7f80071 // tbnz x17, #63, LBB0_241 $12(%rip) + WORD $0xeb05029f // cmp x20, x5 + WORD $0x540063ea // b.ge LBB0_426 $3196(%rip) +LBB0_241: + WORD $0xd37ffe31 // lsr x17, x17, #63 + WORD $0x52000231 // eor w17, w17, #0x1 + WORD $0xd10004a4 // sub x4, x5, #1 + WORD $0xeb04029f // cmp x20, x4 + WORD $0x1a9f17e4 // cset w4, eq + WORD $0x6a04023f // tst w17, w4 + WORD $0xda850107 // csinv x7, x8, x5, eq + WORD $0x14000002 // b LBB0_243 $8(%rip) +LBB0_242: + WORD $0xcb0803e7 // neg x7, x8 +LBB0_243: + WORD $0xb7f85a47 // tbnz x7, #63, LBB0_409 $2888(%rip) +LBB0_244: + WORD $0x8b1c00fc // add x28, x7, x28 + WORD $0xf900003c // str x28, [x1] + WORD $0xaa1b03e8 // mov x8, x27 + WORD $0x92f00006 // mov x6, #9223372036854775807 + WORD $0xeb06037f // cmp x27, x6 + WORD $0x52800084 // mov w4, #4 + WORD $0xb20903e7 // mov x7, #36028797027352576 + WORD $0xf2800027 // movk x7, #1 + WORD $0x54ffce83 // b.lo LBB0_171 $-1584(%rip) + WORD $0x140002a2 // b LBB0_394 $2696(%rip) +LBB0_245: + WORD $0x5ac00328 // rbit w8, w25 + WORD $0x5ac01108 // clz w8, w8 + WORD $0xaa3c03f1 // mvn x17, x28 + WORD $0xcb080235 // sub x21, x17, x8 + WORD $0x17fffda7 // b LBB0_136 $-2404(%rip) +LBB0_246: + WORD $0xaa3c03e8 // mvn x8, x28 + WORD $0xcb314115 // sub x21, x8, w17, uxtw + WORD $0x17fffda4 // b LBB0_136 $-2416(%rip) +LBB0_247: + WORD $0x8b1c013c // add x28, x9, x28 + WORD $0x1400000a // b LBB0_251 $40(%rip) +LBB0_248: + WORD $0x8b1c013c // add x28, x9, x28 + WORD $0x1400002c // b LBB0_257 $176(%rip) +LBB0_249: + WORD $0xaa0603f6 // mov x22, x6 + WORD $0x92800007 // mov x7, #-1 + WORD $0xb5fff994 // cbnz x20, LBB0_232 $-208(%rip) + WORD $0x140002b8 // b LBB0_409 $2784(%rip) +LBB0_250: + WORD $0xd2800005 // mov x5, #0 + WORD $0x8b1c013c // add x28, x9, x28 + WORD $0x92800008 // mov x8, #-1 +LBB0_251: + WORD $0xf1008287 // subs x7, x20, #32 + WORD $0x54003463 // b.lo LBB0_339 $1676(%rip) + WORD $0xad405794 // ldp q20, q21, [x28] + WORD $0x6e208e96 // cmeq.16b v22, v20, v0 + WORD $0x6e208eb7 // cmeq.16b v23, v21, v0 + WORD $0x6e218e94 // cmeq.16b v20, v20, v1 + WORD $0x6e218eb5 // cmeq.16b v21, v21, v1 + WORD $0x4e221ed6 // and.16b v22, v22, v2 + WORD $0x4e0302d6 // tbl.16b v22, { v22 }, v3 + WORD $0x4e71bad6 // addv.8h h22, v22 + WORD $0x1e2602d4 // fmov w20, s22 + WORD $0x4e221ef6 // and.16b v22, v23, v2 + WORD $0x4e0302d6 // tbl.16b v22, { v22 }, v3 + WORD $0x4e71bad6 // addv.8h h22, v22 + WORD $0x1e2602d1 // fmov w17, s22 + WORD $0x4e221e94 // and.16b v20, v20, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e260295 // fmov w21, s20 + WORD $0x4e221eb4 // and.16b v20, v21, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e260296 // fmov w22, s20 + WORD $0x33103e34 // bfi w20, w17, #16, #16 + WORD $0x33103ed5 // bfi w21, w22, #16, #16 + WORD $0x35002ed5 // cbnz w21, LBB0_336 $1496(%rip) + WORD $0xb5002f65 // cbnz x5, LBB0_337 $1516(%rip) + WORD $0xb40030f4 // cbz x20, LBB0_338 $1564(%rip) +LBB0_255: + WORD $0xdac00291 // rbit x17, x20 + WORD $0xdac01231 // clz x17, x17 + WORD $0xcb090385 // sub x5, x28, x9 + WORD $0x8b1100b1 // add x17, x5, x17 + WORD $0x17fffd52 // b LBB0_121 $-2744(%rip) +LBB0_256: + WORD $0xd2800005 // mov x5, #0 + WORD $0x8b1c013c // add x28, x9, x28 + WORD $0x92800008 // mov x8, #-1 +LBB0_257: + WORD $0xf1008295 // subs x21, x20, #32 + WORD $0x54000643 // b.lo LBB0_265 $200(%rip) + WORD $0xad405395 // ldp q21, q20, [x28] + WORD $0x6e208eb6 // cmeq.16b v22, v21, v0 + WORD $0x4e221ed6 // and.16b v22, v22, v2 + WORD $0x4e0302d6 // tbl.16b v22, { v22 }, v3 + WORD $0x4e71bad6 // addv.8h h22, v22 + WORD $0x1e2602d4 // fmov w20, s22 + WORD $0x6e208e96 // cmeq.16b v22, v20, v0 + WORD $0x4e221ed6 // and.16b v22, v22, v2 + WORD $0x4e0302d6 // tbl.16b v22, { v22 }, v3 + WORD $0x4e71bad6 // addv.8h h22, v22 + WORD $0x1e2602d1 // fmov w17, s22 + WORD $0x6e218eb6 // cmeq.16b v22, v21, v1 + WORD $0x4e221ed6 // and.16b v22, v22, v2 + WORD $0x4e0302d6 // tbl.16b v22, { v22 }, v3 + WORD $0x4e71bad6 // addv.8h h22, v22 + WORD $0x1e2602c7 // fmov w7, s22 + WORD $0x6e218e96 // cmeq.16b v22, v20, v1 + WORD $0x4e221ed6 // and.16b v22, v22, v2 + WORD $0x4e0302d6 // tbl.16b v22, { v22 }, v3 + WORD $0x4e71bad6 // addv.8h h22, v22 + WORD $0x1e2602d6 // fmov w22, s22 + WORD $0x33103e34 // bfi w20, w17, #16, #16 + WORD $0x33103ec7 // bfi w7, w22, #16, #16 + WORD $0x35003047 // cbnz w7, LBB0_349 $1544(%rip) + WORD $0xb50030e5 // cbnz x5, LBB0_350 $1564(%rip) +LBB0_260: + WORD $0x6e353495 // cmhi.16b v21, v4, v21 + WORD $0x4e221eb5 // and.16b v21, v21, v2 + WORD $0x4e0302b5 // tbl.16b v21, { v21 }, v3 + WORD $0x4e71bab5 // addv.8h h21, v21 + WORD $0x1e2602a7 // fmov w7, s21 + WORD $0x6e343494 // cmhi.16b v20, v4, v20 + WORD $0x4e221e94 // and.16b v20, v20, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e260291 // fmov w17, s20 + WORD $0x33103e27 // bfi w7, w17, #16, #16 + WORD $0xdac000f1 // rbit x17, x7 + WORD $0xdac01231 // clz x17, x17 + WORD $0xb4000114 // cbz x20, LBB0_263 $32(%rip) + WORD $0xdac00285 // rbit x5, x20 + WORD $0xdac010a7 // clz x7, x5 + WORD $0xcb090385 // sub x5, x28, x9 + WORD $0xeb07023f // cmp x17, x7 + WORD $0x54005563 // b.lo LBB0_428 $2732(%rip) + WORD $0x8b0700b1 // add x17, x5, x7 + WORD $0x17fffd1f // b LBB0_121 $-2948(%rip) +LBB0_263: + WORD $0x35005547 // cbnz w7, LBB0_429 $2728(%rip) + WORD $0x9100839c // add x28, x28, #32 + WORD $0xaa1503f4 // mov x20, x21 +LBB0_265: + WORD $0xb5003965 // cbnz x5, LBB0_368 $1836(%rip) + WORD $0xb40048d4 // cbz x20, LBB0_398 $2328(%rip) +LBB0_267: + WORD $0xd2800005 // mov x5, #0 +LBB0_268: + WORD $0x38656b91 // ldrb w17, [x28, x5] + WORD $0x71008a3f // cmp w17, #34 + WORD $0x540002e0 // b.eq LBB0_274 $92(%rip) + WORD $0x7101723f // cmp w17, #92 + WORD $0x540000e0 // b.eq LBB0_272 $28(%rip) + WORD $0x71007e3f // cmp w17, #31 + WORD $0x54005429 // b.ls LBB0_430 $2692(%rip) + WORD $0x910004a5 // add x5, x5, #1 + WORD $0xeb05029f // cmp x20, x5 + WORD $0x54fffee1 // b.ne LBB0_268 $-36(%rip) + WORD $0x1400023a // b LBB0_398 $2280(%rip) +LBB0_272: + WORD $0xd1000691 // sub x17, x20, #1 + WORD $0xeb05023f // cmp x17, x5 + WORD $0x540046e0 // b.eq LBB0_398 $2268(%rip) + WORD $0x8b050391 // add x17, x28, x5 + WORD $0x8b0c0227 // add x7, x17, x12 + WORD $0xb100051f // cmn x8, #1 + WORD $0x9a8800e8 // csel x8, x7, x8, eq + WORD $0x91000a3c // add x28, x17, #2 + WORD $0xcb050291 // sub x17, x20, x5 + WORD $0xd1000a87 // sub x7, x20, #2 + WORD $0xd1000a34 // sub x20, x17, #2 + WORD $0xeb0500ff // cmp x7, x5 + WORD $0x54fffd01 // b.ne LBB0_267 $-96(%rip) + WORD $0x1400022c // b LBB0_398 $2224(%rip) +LBB0_274: + WORD $0x8b1c0191 // add x17, x12, x28 + WORD $0x8b050231 // add x17, x17, x5 + WORD $0x17fffcfd // b LBB0_121 $-3084(%rip) +LBB0_275: + WORD $0x8b1c013c // add x28, x9, x28 + WORD $0x14000006 // b LBB0_278 $24(%rip) +LBB0_276: + WORD $0x8b1c013c // add x28, x9, x28 + WORD $0x14000028 // b LBB0_284 $160(%rip) +LBB0_277: + WORD $0xd2800005 // mov x5, #0 + WORD $0x8b1c013c // add x28, x9, x28 + WORD $0x92800008 // mov x8, #-1 +LBB0_278: + WORD $0xf1008287 // subs x7, x20, #32 + WORD $0x54002d23 // b.lo LBB0_354 $1444(%rip) + WORD $0xad405794 // ldp q20, q21, [x28] + WORD $0x6e208e96 // cmeq.16b v22, v20, v0 + WORD $0x6e208eb7 // cmeq.16b v23, v21, v0 + WORD $0x6e218e94 // cmeq.16b v20, v20, v1 + WORD $0x6e218eb5 // cmeq.16b v21, v21, v1 + WORD $0x4e221ed6 // and.16b v22, v22, v2 + WORD $0x4e0302d6 // tbl.16b v22, { v22 }, v3 + WORD $0x4e71bad6 // addv.8h h22, v22 + WORD $0x1e2602d4 // fmov w20, s22 + WORD $0x4e221ef6 // and.16b v22, v23, v2 + WORD $0x4e0302d6 // tbl.16b v22, { v22 }, v3 + WORD $0x4e71bad6 // addv.8h h22, v22 + WORD $0x1e2602d1 // fmov w17, s22 + WORD $0x4e221e94 // and.16b v20, v20, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e260295 // fmov w21, s20 + WORD $0x4e221eb4 // and.16b v20, v21, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e260296 // fmov w22, s20 + WORD $0x33103e34 // bfi w20, w17, #16, #16 + WORD $0x33103ed5 // bfi w21, w22, #16, #16 + WORD $0x35002795 // cbnz w21, LBB0_351 $1264(%rip) + WORD $0xb5002825 // cbnz x5, LBB0_352 $1284(%rip) + WORD $0xb40029b4 // cbz x20, LBB0_353 $1332(%rip) +LBB0_282: + WORD $0xdac00291 // rbit x17, x20 + WORD $0xdac01231 // clz x17, x17 + WORD $0xcb090385 // sub x5, x28, x9 + WORD $0x8b1100b1 // add x17, x5, x17 + WORD $0x17fffd75 // b LBB0_150 $-2604(%rip) +LBB0_283: + WORD $0xd2800005 // mov x5, #0 + WORD $0x8b1c013c // add x28, x9, x28 + WORD $0x92800008 // mov x8, #-1 +LBB0_284: + WORD $0xf1008295 // subs x21, x20, #32 + WORD $0x54000643 // b.lo LBB0_292 $200(%rip) + WORD $0xad405395 // ldp q21, q20, [x28] + WORD $0x6e208eb6 // cmeq.16b v22, v21, v0 + WORD $0x4e221ed6 // and.16b v22, v22, v2 + WORD $0x4e0302d6 // tbl.16b v22, { v22 }, v3 + WORD $0x4e71bad6 // addv.8h h22, v22 + WORD $0x1e2602d4 // fmov w20, s22 + WORD $0x6e208e96 // cmeq.16b v22, v20, v0 + WORD $0x4e221ed6 // and.16b v22, v22, v2 + WORD $0x4e0302d6 // tbl.16b v22, { v22 }, v3 + WORD $0x4e71bad6 // addv.8h h22, v22 + WORD $0x1e2602d1 // fmov w17, s22 + WORD $0x6e218eb6 // cmeq.16b v22, v21, v1 + WORD $0x4e221ed6 // and.16b v22, v22, v2 + WORD $0x4e0302d6 // tbl.16b v22, { v22 }, v3 + WORD $0x4e71bad6 // addv.8h h22, v22 + WORD $0x1e2602c7 // fmov w7, s22 + WORD $0x6e218e96 // cmeq.16b v22, v20, v1 + WORD $0x4e221ed6 // and.16b v22, v22, v2 + WORD $0x4e0302d6 // tbl.16b v22, { v22 }, v3 + WORD $0x4e71bad6 // addv.8h h22, v22 + WORD $0x1e2602d6 // fmov w22, s22 + WORD $0x33103e34 // bfi w20, w17, #16, #16 + WORD $0x33103ec7 // bfi w7, w22, #16, #16 + WORD $0x350029a7 // cbnz w7, LBB0_364 $1332(%rip) + WORD $0xb5002a45 // cbnz x5, LBB0_365 $1352(%rip) +LBB0_287: + WORD $0x6e353495 // cmhi.16b v21, v4, v21 + WORD $0x4e221eb5 // and.16b v21, v21, v2 + WORD $0x4e0302b5 // tbl.16b v21, { v21 }, v3 + WORD $0x4e71bab5 // addv.8h h21, v21 + WORD $0x1e2602a7 // fmov w7, s21 + WORD $0x6e343494 // cmhi.16b v20, v4, v20 + WORD $0x4e221e94 // and.16b v20, v20, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e260291 // fmov w17, s20 + WORD $0x33103e27 // bfi w7, w17, #16, #16 + WORD $0xdac000f1 // rbit x17, x7 + WORD $0xdac01231 // clz x17, x17 + WORD $0xb4000114 // cbz x20, LBB0_290 $32(%rip) + WORD $0xdac00285 // rbit x5, x20 + WORD $0xdac010a7 // clz x7, x5 + WORD $0xcb090385 // sub x5, x28, x9 + WORD $0xeb07023f // cmp x17, x7 + WORD $0x540045c3 // b.lo LBB0_428 $2232(%rip) + WORD $0x8b0700b1 // add x17, x5, x7 + WORD $0x17fffd42 // b LBB0_150 $-2808(%rip) +LBB0_290: + WORD $0x350045a7 // cbnz w7, LBB0_429 $2228(%rip) + WORD $0x9100839c // add x28, x28, #32 + WORD $0xaa1503f4 // mov x20, x21 +LBB0_292: + WORD $0xb5002bc5 // cbnz x5, LBB0_372 $1400(%rip) + WORD $0xb4003934 // cbz x20, LBB0_398 $1828(%rip) +LBB0_294: + WORD $0xd2800005 // mov x5, #0 +LBB0_295: + WORD $0x38656b91 // ldrb w17, [x28, x5] + WORD $0x71008a3f // cmp w17, #34 + WORD $0x540002e0 // b.eq LBB0_301 $92(%rip) + WORD $0x7101723f // cmp w17, #92 + WORD $0x540000e0 // b.eq LBB0_299 $28(%rip) + WORD $0x71007e3f // cmp w17, #31 + WORD $0x54004489 // b.ls LBB0_430 $2192(%rip) + WORD $0x910004a5 // add x5, x5, #1 + WORD $0xeb05029f // cmp x20, x5 + WORD $0x54fffee1 // b.ne LBB0_295 $-36(%rip) + WORD $0x140001bd // b LBB0_398 $1780(%rip) +LBB0_299: + WORD $0xd1000691 // sub x17, x20, #1 + WORD $0xeb05023f // cmp x17, x5 + WORD $0x54003740 // b.eq LBB0_398 $1768(%rip) + WORD $0x8b050391 // add x17, x28, x5 + WORD $0x8b0c0227 // add x7, x17, x12 + WORD $0xb100051f // cmn x8, #1 + WORD $0x9a8800e8 // csel x8, x7, x8, eq + WORD $0x91000a3c // add x28, x17, #2 + WORD $0xcb050291 // sub x17, x20, x5 + WORD $0xd1000a87 // sub x7, x20, #2 + WORD $0xd1000a34 // sub x20, x17, #2 + WORD $0xeb0500ff // cmp x7, x5 + WORD $0x54fffd01 // b.ne LBB0_294 $-96(%rip) + WORD $0x140001af // b LBB0_398 $1724(%rip) +LBB0_301: + WORD $0x8b1c0191 // add x17, x12, x28 + WORD $0x8b050231 // add x17, x17, x5 + WORD $0x17fffd20 // b LBB0_150 $-2944(%rip) +LBB0_302: + WORD $0xcb1803e7 // neg x7, x24 + WORD $0x17fffeee // b LBB0_243 $-1096(%rip) +LBB0_303: + WORD $0x5ac00328 // rbit w8, w25 + WORD $0x5ac01108 // clz w8, w8 + WORD $0xaa2703f1 // mvn x17, x7 + WORD $0xcb080227 // sub x7, x17, x8 + WORD $0x52800073 // mov w19, #3 + WORD $0x17fffee8 // b LBB0_243 $-1120(%rip) +LBB0_304: + WORD $0x8b1c013c // add x28, x9, x28 + WORD $0x1400000a // b LBB0_308 $40(%rip) +LBB0_305: + WORD $0x8b1c013c // add x28, x9, x28 + WORD $0x1400002c // b LBB0_314 $176(%rip) +LBB0_306: + WORD $0xaa2703e8 // mvn x8, x7 + WORD $0xcb314107 // sub x7, x8, w17, uxtw + WORD $0x52800073 // mov w19, #3 + WORD $0x17fffee0 // b LBB0_243 $-1152(%rip) +LBB0_307: + WORD $0xd2800005 // mov x5, #0 + WORD $0x8b1c013c // add x28, x9, x28 + WORD $0x92800008 // mov x8, #-1 +LBB0_308: + WORD $0xf1008287 // subs x7, x20, #32 + WORD $0x540028e3 // b.lo LBB0_377 $1308(%rip) + WORD $0xad405794 // ldp q20, q21, [x28] + WORD $0x6e208e96 // cmeq.16b v22, v20, v0 + WORD $0x6e208eb7 // cmeq.16b v23, v21, v0 + WORD $0x6e218e94 // cmeq.16b v20, v20, v1 + WORD $0x6e218eb5 // cmeq.16b v21, v21, v1 + WORD $0x4e221ed6 // and.16b v22, v22, v2 + WORD $0x4e0302d6 // tbl.16b v22, { v22 }, v3 + WORD $0x4e71bad6 // addv.8h h22, v22 + WORD $0x1e2602d4 // fmov w20, s22 + WORD $0x4e221ef6 // and.16b v22, v23, v2 + WORD $0x4e0302d6 // tbl.16b v22, { v22 }, v3 + WORD $0x4e71bad6 // addv.8h h22, v22 + WORD $0x1e2602d1 // fmov w17, s22 + WORD $0x4e221e94 // and.16b v20, v20, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e260295 // fmov w21, s20 + WORD $0x4e221eb4 // and.16b v20, v21, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e260284 // fmov w4, s20 + WORD $0x33103e34 // bfi w20, w17, #16, #16 + WORD $0x33103c95 // bfi w21, w4, #16, #16 + WORD $0x35002375 // cbnz w21, LBB0_374 $1132(%rip) + WORD $0xb5002405 // cbnz x5, LBB0_375 $1152(%rip) + WORD $0xb4002574 // cbz x20, LBB0_376 $1196(%rip) +LBB0_312: + WORD $0xdac00291 // rbit x17, x20 + WORD $0xdac01231 // clz x17, x17 + WORD $0xcb090384 // sub x4, x28, x9 + WORD $0x8b110091 // add x17, x4, x17 + WORD $0x14000055 // b LBB0_332 $340(%rip) +LBB0_313: + WORD $0xd2800005 // mov x5, #0 + WORD $0x8b1c013c // add x28, x9, x28 + WORD $0x92800008 // mov x8, #-1 +LBB0_314: + WORD $0xf1008295 // subs x21, x20, #32 + WORD $0x54000643 // b.lo LBB0_322 $200(%rip) + WORD $0xad405395 // ldp q21, q20, [x28] + WORD $0x6e208eb6 // cmeq.16b v22, v21, v0 + WORD $0x4e221ed6 // and.16b v22, v22, v2 + WORD $0x4e0302d6 // tbl.16b v22, { v22 }, v3 + WORD $0x4e71bad6 // addv.8h h22, v22 + WORD $0x1e2602d4 // fmov w20, s22 + WORD $0x6e208e96 // cmeq.16b v22, v20, v0 + WORD $0x4e221ed6 // and.16b v22, v22, v2 + WORD $0x4e0302d6 // tbl.16b v22, { v22 }, v3 + WORD $0x4e71bad6 // addv.8h h22, v22 + WORD $0x1e2602d1 // fmov w17, s22 + WORD $0x6e218eb6 // cmeq.16b v22, v21, v1 + WORD $0x4e221ed6 // and.16b v22, v22, v2 + WORD $0x4e0302d6 // tbl.16b v22, { v22 }, v3 + WORD $0x4e71bad6 // addv.8h h22, v22 + WORD $0x1e2602c7 // fmov w7, s22 + WORD $0x6e218e96 // cmeq.16b v22, v20, v1 + WORD $0x4e221ed6 // and.16b v22, v22, v2 + WORD $0x4e0302d6 // tbl.16b v22, { v22 }, v3 + WORD $0x4e71bad6 // addv.8h h22, v22 + WORD $0x1e2602c4 // fmov w4, s22 + WORD $0x33103e34 // bfi w20, w17, #16, #16 + WORD $0x33103c87 // bfi w7, w4, #16, #16 + WORD $0x350024e7 // cbnz w7, LBB0_386 $1180(%rip) + WORD $0xb5002585 // cbnz x5, LBB0_387 $1200(%rip) +LBB0_317: + WORD $0x6e353495 // cmhi.16b v21, v4, v21 + WORD $0x4e221eb5 // and.16b v21, v21, v2 + WORD $0x4e0302b5 // tbl.16b v21, { v21 }, v3 + WORD $0x4e71bab5 // addv.8h h21, v21 + WORD $0x1e2602a7 // fmov w7, s21 + WORD $0x6e343494 // cmhi.16b v20, v4, v20 + WORD $0x4e221e94 // and.16b v20, v20, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e260291 // fmov w17, s20 + WORD $0x33103e27 // bfi w7, w17, #16, #16 + WORD $0xdac000f1 // rbit x17, x7 + WORD $0xdac01231 // clz x17, x17 + WORD $0xb4000114 // cbz x20, LBB0_320 $32(%rip) + WORD $0xdac00284 // rbit x4, x20 + WORD $0xdac01087 // clz x7, x4 + WORD $0xcb090385 // sub x5, x28, x9 + WORD $0xeb07023f // cmp x17, x7 + WORD $0x540034a3 // b.lo LBB0_428 $1684(%rip) + WORD $0x8b0700b1 // add x17, x5, x7 + WORD $0x14000022 // b LBB0_332 $136(%rip) +LBB0_320: + WORD $0x35003487 // cbnz w7, LBB0_429 $1680(%rip) + WORD $0x9100839c // add x28, x28, #32 + WORD $0xaa1503f4 // mov x20, x21 +LBB0_322: + WORD $0xb5002505 // cbnz x5, LBB0_391 $1184(%rip) + WORD $0xb4002814 // cbz x20, LBB0_398 $1280(%rip) +LBB0_324: + WORD $0xd2800005 // mov x5, #0 +LBB0_325: + WORD $0x38656b91 // ldrb w17, [x28, x5] + WORD $0x71008a3f // cmp w17, #34 + WORD $0x540002e0 // b.eq LBB0_331 $92(%rip) + WORD $0x7101723f // cmp w17, #92 + WORD $0x540000e0 // b.eq LBB0_329 $28(%rip) + WORD $0x71007e3f // cmp w17, #31 + WORD $0x54003369 // b.ls LBB0_430 $1644(%rip) + WORD $0x910004a5 // add x5, x5, #1 + WORD $0xeb05029f // cmp x20, x5 + WORD $0x54fffee1 // b.ne LBB0_325 $-36(%rip) + WORD $0x14000134 // b LBB0_398 $1232(%rip) +LBB0_329: + WORD $0xd1000691 // sub x17, x20, #1 + WORD $0xeb05023f // cmp x17, x5 + WORD $0x54002620 // b.eq LBB0_398 $1220(%rip) + WORD $0x8b050391 // add x17, x28, x5 + WORD $0x8b0c0224 // add x4, x17, x12 + WORD $0xb100051f // cmn x8, #1 + WORD $0x9a880088 // csel x8, x4, x8, eq + WORD $0x91000a3c // add x28, x17, #2 + WORD $0xcb050291 // sub x17, x20, x5 + WORD $0xd1000a84 // sub x4, x20, #2 + WORD $0xd1000a34 // sub x20, x17, #2 + WORD $0xeb05009f // cmp x4, x5 + WORD $0x54fffd01 // b.ne LBB0_324 $-96(%rip) + WORD $0x14000126 // b LBB0_398 $1176(%rip) +LBB0_331: + WORD $0x8b1c0191 // add x17, x12, x28 + WORD $0x8b050231 // add x17, x17, x5 +LBB0_332: + WORD $0x9100063c // add x28, x17, #1 + WORD $0x52800073 // mov w19, #3 + WORD $0x17fffbf6 // b LBB0_122 $-4136(%rip) +LBB0_333: + WORD $0x92800008 // mov x8, #-1 + WORD $0xaa1e03f6 // mov x22, lr + WORD $0xaa1503f7 // mov x23, x21 + WORD $0x92800005 // mov x5, #-1 + WORD $0x92800014 // mov x20, #-1 + WORD $0x17fffb21 // b LBB0_82 $-4988(%rip) +LBB0_334: + WORD $0xaa2703e8 // mvn x8, x7 + WORD $0xcb3a4107 // sub x7, x8, w26, uxtw + WORD $0x52800073 // mov w19, #3 + WORD $0x17fffe5b // b LBB0_243 $-1684(%rip) +LBB0_335: + WORD $0x92800014 // mov x20, #-1 + WORD $0xaa0803f6 // mov x22, x8 + WORD $0xaa1803f5 // mov x21, x24 + WORD $0x92800005 // mov x5, #-1 + WORD $0x9280001e // mov lr, #-1 + WORD $0x52800073 // mov w19, #3 + WORD $0x17fffe0f // b LBB0_215 $-1988(%rip) +LBB0_336: + WORD $0xdac002b1 // rbit x17, x21 + WORD $0xdac01231 // clz x17, x17 + WORD $0xcb090396 // sub x22, x28, x9 + WORD $0x8b1102d1 // add x17, x22, x17 + WORD $0xb100051f // cmn x8, #1 + WORD $0x9a911108 // csel x8, x8, x17, ne +LBB0_337: + WORD $0x0a2502b1 // bic w17, w21, w5 + WORD $0x531f7a36 // lsl w22, w17, #1 + WORD $0x331f7a25 // bfi w5, w17, #1, #31 + WORD $0x0a3602b5 // bic w21, w21, w22 + WORD $0x1201f2b5 // and w21, w21, #0xaaaaaaaa + WORD $0x2b1102b1 // adds w17, w21, w17 + WORD $0x4a1104d1 // eor w17, w6, w17, lsl #1 + WORD $0x0a050231 // and w17, w17, w5 + WORD $0x1a9f37e5 // cset w5, hs + WORD $0x2a3103f1 // mvn w17, w17 + WORD $0x8a140234 // and x20, x17, x20 + WORD $0x52800073 // mov w19, #3 + WORD $0xb5ffcf74 // cbnz x20, LBB0_255 $-1556(%rip) +LBB0_338: + WORD $0x9100839c // add x28, x28, #32 + WORD $0xaa0703f4 // mov x20, x7 +LBB0_339: + WORD $0xb5000ec5 // cbnz x5, LBB0_366 $472(%rip) + WORD $0xb4000314 // cbz x20, LBB0_348 $96(%rip) +LBB0_341: + WORD $0xaa1c03e7 // mov x7, x28 + WORD $0x384014e5 // ldrb w5, [x7], #1 + WORD $0x710088bf // cmp w5, #34 + WORD $0x54000260 // b.eq LBB0_347 $76(%rip) + WORD $0xd1000691 // sub x17, x20, #1 + WORD $0x710170bf // cmp w5, #92 + WORD $0x540000a0 // b.eq LBB0_344 $20(%rip) + WORD $0xaa0703fc // mov x28, x7 + WORD $0xaa1103f4 // mov x20, x17 + WORD $0xb5fffef1 // cbnz x17, LBB0_341 $-36(%rip) + WORD $0x14000009 // b LBB0_346 $36(%rip) +LBB0_344: + WORD $0xb4001db1 // cbz x17, LBB0_398 $948(%rip) + WORD $0x8b0b00f1 // add x17, x7, x11 + WORD $0xb100051f // cmn x8, #1 + WORD $0x9a880228 // csel x8, x17, x8, eq + WORD $0x91000b9c // add x28, x28, #2 + WORD $0xd1000a91 // sub x17, x20, #2 + WORD $0xaa1103f4 // mov x20, x17 + WORD $0xb5fffdd1 // cbnz x17, LBB0_341 $-72(%rip) +LBB0_346: + WORD $0x710088bf // cmp w5, #34 + WORD $0x54000060 // b.eq LBB0_348 $12(%rip) + WORD $0x140000e3 // b LBB0_398 $908(%rip) +LBB0_347: + WORD $0xaa0703fc // mov x28, x7 +LBB0_348: + WORD $0xcb09039c // sub x28, x28, x9 + WORD $0x17fffbb5 // b LBB0_122 $-4396(%rip) +LBB0_349: + WORD $0xdac000f1 // rbit x17, x7 + WORD $0xdac01231 // clz x17, x17 + WORD $0xcb090396 // sub x22, x28, x9 + WORD $0x8b1102d1 // add x17, x22, x17 + WORD $0xb100051f // cmn x8, #1 + WORD $0x9a911108 // csel x8, x8, x17, ne +LBB0_350: + WORD $0x0a2500f1 // bic w17, w7, w5 + WORD $0x531f7a36 // lsl w22, w17, #1 + WORD $0x331f7a25 // bfi w5, w17, #1, #31 + WORD $0x0a3600e7 // bic w7, w7, w22 + WORD $0x1201f0e7 // and w7, w7, #0xaaaaaaaa + WORD $0x2b1100f1 // adds w17, w7, w17 + WORD $0x4a1104d1 // eor w17, w6, w17, lsl #1 + WORD $0x0a050231 // and w17, w17, w5 + WORD $0x1a9f37e5 // cset w5, hs + WORD $0x2a3103f1 // mvn w17, w17 + WORD $0x8a140234 // and x20, x17, x20 + WORD $0x52800073 // mov w19, #3 + WORD $0x17fffe6e // b LBB0_260 $-1608(%rip) +LBB0_351: + WORD $0xdac002b1 // rbit x17, x21 + WORD $0xdac01231 // clz x17, x17 + WORD $0xcb090396 // sub x22, x28, x9 + WORD $0x8b1102d1 // add x17, x22, x17 + WORD $0xb100051f // cmn x8, #1 + WORD $0x9a911108 // csel x8, x8, x17, ne +LBB0_352: + WORD $0x0a2502b1 // bic w17, w21, w5 + WORD $0x531f7a36 // lsl w22, w17, #1 + WORD $0x331f7a25 // bfi w5, w17, #1, #31 + WORD $0x0a3602b5 // bic w21, w21, w22 + WORD $0x1201f2b5 // and w21, w21, #0xaaaaaaaa + WORD $0x2b1102b1 // adds w17, w21, w17 + WORD $0x4a110491 // eor w17, w4, w17, lsl #1 + WORD $0x0a050231 // and w17, w17, w5 + WORD $0x1a9f37e5 // cset w5, hs + WORD $0x2a3103f1 // mvn w17, w17 + WORD $0x8a140234 // and x20, x17, x20 + WORD $0x52800073 // mov w19, #3 + WORD $0xb5ffd6b4 // cbnz x20, LBB0_282 $-1324(%rip) +LBB0_353: + WORD $0x9100839c // add x28, x28, #32 + WORD $0xaa0703f4 // mov x20, x7 +LBB0_354: + WORD $0xb5000865 // cbnz x5, LBB0_370 $268(%rip) + WORD $0xb4000314 // cbz x20, LBB0_363 $96(%rip) +LBB0_356: + WORD $0xaa1c03e7 // mov x7, x28 + WORD $0x384014e5 // ldrb w5, [x7], #1 + WORD $0x710088bf // cmp w5, #34 + WORD $0x54000260 // b.eq LBB0_362 $76(%rip) + WORD $0xd1000691 // sub x17, x20, #1 + WORD $0x710170bf // cmp w5, #92 + WORD $0x540000a0 // b.eq LBB0_359 $20(%rip) + WORD $0xaa0703fc // mov x28, x7 + WORD $0xaa1103f4 // mov x20, x17 + WORD $0xb5fffef1 // cbnz x17, LBB0_356 $-36(%rip) + WORD $0x14000009 // b LBB0_361 $36(%rip) +LBB0_359: + WORD $0xb4001551 // cbz x17, LBB0_398 $680(%rip) + WORD $0x8b0b00f1 // add x17, x7, x11 + WORD $0xb100051f // cmn x8, #1 + WORD $0x9a880228 // csel x8, x17, x8, eq + WORD $0x91000b9c // add x28, x28, #2 + WORD $0xd1000a91 // sub x17, x20, #2 + WORD $0xaa1103f4 // mov x20, x17 + WORD $0xb5fffdd1 // cbnz x17, LBB0_356 $-72(%rip) +LBB0_361: + WORD $0x710088bf // cmp w5, #34 + WORD $0x54000060 // b.eq LBB0_363 $12(%rip) + WORD $0x140000a0 // b LBB0_398 $640(%rip) +LBB0_362: + WORD $0xaa0703fc // mov x28, x7 +LBB0_363: + WORD $0xcb09039c // sub x28, x28, x9 + WORD $0x52800084 // mov w4, #4 + WORD $0x92f00006 // mov x6, #9223372036854775807 + WORD $0xb20903e7 // mov x7, #36028797027352576 + WORD $0xf2800027 // movk x7, #1 + WORD $0xb6ff827c // tbz x28, #63, LBB0_151 $-4020(%rip) + WORD $0x14000096 // b LBB0_397 $600(%rip) +LBB0_364: + WORD $0xdac000f1 // rbit x17, x7 + WORD $0xdac01231 // clz x17, x17 + WORD $0xcb090396 // sub x22, x28, x9 + WORD $0x8b1102d1 // add x17, x22, x17 + WORD $0xb100051f // cmn x8, #1 + WORD $0x9a911108 // csel x8, x8, x17, ne +LBB0_365: + WORD $0x0a2500f1 // bic w17, w7, w5 + WORD $0x531f7a36 // lsl w22, w17, #1 + WORD $0x331f7a25 // bfi w5, w17, #1, #31 + WORD $0x0a3600e7 // bic w7, w7, w22 + WORD $0x1201f0e7 // and w7, w7, #0xaaaaaaaa + WORD $0x2b1100f1 // adds w17, w7, w17 + WORD $0x4a110491 // eor w17, w4, w17, lsl #1 + WORD $0x0a050231 // and w17, w17, w5 + WORD $0x1a9f37e5 // cset w5, hs + WORD $0x2a3103f1 // mvn w17, w17 + WORD $0x8a140234 // and x20, x17, x20 + WORD $0x52800073 // mov w19, #3 + WORD $0x17fffea3 // b LBB0_287 $-1396(%rip) +LBB0_366: + WORD $0xb4001094 // cbz x20, LBB0_398 $528(%rip) + WORD $0x8b0b0391 // add x17, x28, x11 + WORD $0xb100051f // cmn x8, #1 + WORD $0x9a880228 // csel x8, x17, x8, eq + WORD $0x9100079c // add x28, x28, #1 + WORD $0xd1000694 // sub x20, x20, #1 + WORD $0xb5fff0d4 // cbnz x20, LBB0_341 $-488(%rip) + WORD $0x17ffff9c // b LBB0_348 $-400(%rip) +LBB0_368: + WORD $0xb4000f94 // cbz x20, LBB0_398 $496(%rip) + WORD $0x8b0b0391 // add x17, x28, x11 + WORD $0xb100051f // cmn x8, #1 + WORD $0x9a880228 // csel x8, x17, x8, eq + WORD $0x9100079c // add x28, x28, #1 + WORD $0xd1000694 // sub x20, x20, #1 + WORD $0xb5ffc634 // cbnz x20, LBB0_267 $-1852(%rip) + WORD $0x14000075 // b LBB0_398 $468(%rip) +LBB0_370: + WORD $0xb4000e94 // cbz x20, LBB0_398 $464(%rip) + WORD $0x8b0b0391 // add x17, x28, x11 + WORD $0xb100051f // cmn x8, #1 + WORD $0x9a880228 // csel x8, x17, x8, eq + WORD $0x9100079c // add x28, x28, #1 + WORD $0xd1000694 // sub x20, x20, #1 + WORD $0xb5fff734 // cbnz x20, LBB0_356 $-284(%rip) + WORD $0x17ffffcf // b LBB0_363 $-196(%rip) +LBB0_372: + WORD $0xb4000d94 // cbz x20, LBB0_398 $432(%rip) + WORD $0x8b0b0391 // add x17, x28, x11 + WORD $0xb100051f // cmn x8, #1 + WORD $0x9a880228 // csel x8, x17, x8, eq + WORD $0x9100079c // add x28, x28, #1 + WORD $0xd1000694 // sub x20, x20, #1 + WORD $0xb5ffd3d4 // cbnz x20, LBB0_294 $-1416(%rip) + WORD $0x14000065 // b LBB0_398 $404(%rip) +LBB0_374: + WORD $0xdac002b1 // rbit x17, x21 + WORD $0xdac01231 // clz x17, x17 + WORD $0xcb090384 // sub x4, x28, x9 + WORD $0x8b110091 // add x17, x4, x17 + WORD $0xb100051f // cmn x8, #1 + WORD $0x9a911108 // csel x8, x8, x17, ne +LBB0_375: + WORD $0x0a2502b1 // bic w17, w21, w5 + WORD $0x531f7a24 // lsl w4, w17, #1 + WORD $0x331f7a25 // bfi w5, w17, #1, #31 + WORD $0x0a2402a4 // bic w4, w21, w4 + WORD $0x1201f084 // and w4, w4, #0xaaaaaaaa + WORD $0x2b110091 // adds w17, w4, w17 + WORD $0x4a110711 // eor w17, w24, w17, lsl #1 + WORD $0x0a050231 // and w17, w17, w5 + WORD $0x1a9f37e5 // cset w5, hs + WORD $0x2a3103f1 // mvn w17, w17 + WORD $0x8a140234 // and x20, x17, x20 + WORD $0xb5ffdaf4 // cbnz x20, LBB0_312 $-1188(%rip) +LBB0_376: + WORD $0x9100839c // add x28, x28, #32 + WORD $0xaa0703f4 // mov x20, x7 +LBB0_377: + WORD $0xb50005c5 // cbnz x5, LBB0_388 $184(%rip) + WORD $0xb4000694 // cbz x20, LBB0_390 $208(%rip) +LBB0_379: + WORD $0xaa1c03e7 // mov x7, x28 + WORD $0x384014e5 // ldrb w5, [x7], #1 + WORD $0x710088bf // cmp w5, #34 + WORD $0x54000280 // b.eq LBB0_385 $80(%rip) + WORD $0xd1000691 // sub x17, x20, #1 + WORD $0x710170bf // cmp w5, #92 + WORD $0x540000a0 // b.eq LBB0_382 $20(%rip) + WORD $0xaa0703fc // mov x28, x7 + WORD $0xaa1103f4 // mov x20, x17 + WORD $0xb5fffef1 // cbnz x17, LBB0_379 $-36(%rip) + WORD $0x14000009 // b LBB0_384 $36(%rip) +LBB0_382: + WORD $0xb4000871 // cbz x17, LBB0_398 $268(%rip) + WORD $0x8b0b00f1 // add x17, x7, x11 + WORD $0xb100051f // cmn x8, #1 + WORD $0x9a880228 // csel x8, x17, x8, eq + WORD $0x91000b9c // add x28, x28, #2 + WORD $0xd1000a91 // sub x17, x20, #2 + WORD $0xaa1103f4 // mov x20, x17 + WORD $0xb5fffdd1 // cbnz x17, LBB0_379 $-72(%rip) +LBB0_384: + WORD $0x710088bf // cmp w5, #34 + WORD $0x52800073 // mov w19, #3 + WORD $0x54ffeb00 // b.eq LBB0_348 $-672(%rip) + WORD $0x14000038 // b LBB0_398 $224(%rip) +LBB0_385: + WORD $0xaa0703fc // mov x28, x7 + WORD $0x52800073 // mov w19, #3 + WORD $0x17ffff54 // b LBB0_348 $-688(%rip) +LBB0_386: + WORD $0xdac000f1 // rbit x17, x7 + WORD $0xdac01231 // clz x17, x17 + WORD $0xcb090384 // sub x4, x28, x9 + WORD $0x8b110091 // add x17, x4, x17 + WORD $0xb100051f // cmn x8, #1 + WORD $0x9a911108 // csel x8, x8, x17, ne +LBB0_387: + WORD $0x0a2500f1 // bic w17, w7, w5 + WORD $0x531f7a24 // lsl w4, w17, #1 + WORD $0x331f7a25 // bfi w5, w17, #1, #31 + WORD $0x0a2400e4 // bic w4, w7, w4 + WORD $0x1201f084 // and w4, w4, #0xaaaaaaaa + WORD $0x2b110091 // adds w17, w4, w17 + WORD $0x4a110711 // eor w17, w24, w17, lsl #1 + WORD $0x0a050231 // and w17, w17, w5 + WORD $0x1a9f37e5 // cset w5, hs + WORD $0x2a3103f1 // mvn w17, w17 + WORD $0x8a140234 // and x20, x17, x20 + WORD $0x17fffeca // b LBB0_317 $-1240(%rip) +LBB0_388: + WORD $0xb4000454 // cbz x20, LBB0_398 $136(%rip) + WORD $0x8b0b0391 // add x17, x28, x11 + WORD $0xb100051f // cmn x8, #1 + WORD $0x9a880228 // csel x8, x17, x8, eq + WORD $0x9100079c // add x28, x28, #1 + WORD $0xd1000694 // sub x20, x20, #1 + WORD $0xb5fff9d4 // cbnz x20, LBB0_379 $-200(%rip) +LBB0_390: + WORD $0x52800073 // mov w19, #3 + WORD $0x17ffff39 // b LBB0_348 $-796(%rip) +LBB0_391: + WORD $0xb4000334 // cbz x20, LBB0_398 $100(%rip) + WORD $0x8b0b0391 // add x17, x28, x11 + WORD $0xb100051f // cmn x8, #1 + WORD $0x9a880228 // csel x8, x17, x8, eq + WORD $0x9100079c // add x28, x28, #1 + WORD $0xd1000694 // sub x20, x20, #1 + WORD $0xb5ffda94 // cbnz x20, LBB0_324 $-1200(%rip) + WORD $0x14000012 // b LBB0_398 $72(%rip) +LBB0_393: + WORD $0x92800008 // mov x8, #-1 +LBB0_394: + WORD $0xaa0803e0 // mov x0, x8 + WORD $0xa945fbfd // ldp fp, lr, [sp, #88] + WORD $0xa944cff4 // ldp x20, x19, [sp, #72] + WORD $0xa943d7f6 // ldp x22, x21, [sp, #56] + WORD $0xa942dff8 // ldp x24, x23, [sp, #40] + WORD $0xa941e7fa // ldp x26, x25, [sp, #24] + WORD $0xa940effc // ldp x28, x27, [sp, #8] + WORD $0x9101c3ff // add sp, sp, #112 + WORD $0xd65f03c0 // ret +LBB0_395: + WORD $0x9280001c // mov x28, #-1 + WORD $0xaa1b03e8 // mov x8, x27 + WORD $0x1400000c // b LBB0_403 $48(%rip) +LBB0_396: + WORD $0x928000c8 // mov x8, #-7 + WORD $0x17fffff3 // b LBB0_394 $-52(%rip) +LBB0_397: + WORD $0xb100079f // cmn x28, #1 + WORD $0x54000101 // b.ne LBB0_403 $32(%rip) +LBB0_398: + WORD $0xf9400408 // ldr x8, [x0, #8] + WORD $0x9280001c // mov x28, #-1 + WORD $0x14000005 // b LBB0_403 $20(%rip) +LBB0_399: + WORD $0x92800015 // mov x21, #-1 +LBB0_400: + WORD $0xaa3503f4 // mvn x20, x21 +LBB0_401: + WORD $0x8b1b0288 // add x8, x20, x27 +LBB0_402: + WORD $0x9280003c // mov x28, #-2 +LBB0_403: + WORD $0xf9000028 // str x8, [x1] + WORD $0xaa1c03e8 // mov x8, x28 + WORD $0x17ffffe7 // b LBB0_394 $-100(%rip) +LBB0_404: + WORD $0xb100051f // cmn x8, #1 + WORD $0x54ffff61 // b.ne LBB0_402 $-20(%rip) + WORD $0xdac00228 // rbit x8, x17 + WORD $0xdac01108 // clz x8, x8 + WORD $0x8b1c0108 // add x8, x8, x28 + WORD $0x17fffff7 // b LBB0_402 $-36(%rip) +LBB0_406: + WORD $0x9280001c // mov x28, #-1 + WORD $0x17fffff6 // b LBB0_403 $-40(%rip) +LBB0_407: + WORD $0xaa0803f4 // mov x20, x8 + WORD $0x8b1b0108 // add x8, x8, x27 + WORD $0x17fffff2 // b LBB0_402 $-56(%rip) +LBB0_408: + WORD $0x92800007 // mov x7, #-1 +LBB0_409: + WORD $0xaa2703fe // mvn lr, x7 +LBB0_410: + WORD $0x8b1e0388 // add x8, x28, lr + WORD $0x17ffffee // b LBB0_402 $-72(%rip) +LBB0_411: + WORD $0xf900003b // str x27, [x1] + WORD $0x394003c8 // ldrb w8, [lr] + WORD $0x7101b91f // cmp w8, #110 + WORD $0x54000761 // b.ne LBB0_425 $236(%rip) + WORD $0x91000768 // add x8, x27, #1 + WORD $0xf9000028 // str x8, [x1] + WORD $0x38686928 // ldrb w8, [x9, x8] + WORD $0x7101d51f // cmp w8, #117 + WORD $0x540006c1 // b.ne LBB0_425 $216(%rip) + WORD $0x91000b68 // add x8, x27, #2 + WORD $0xf9000028 // str x8, [x1] + WORD $0x38686928 // ldrb w8, [x9, x8] + WORD $0x7101b11f // cmp w8, #108 + WORD $0x54000621 // b.ne LBB0_425 $196(%rip) + WORD $0x91000f68 // add x8, x27, #3 + WORD $0xf9000028 // str x8, [x1] + WORD $0x38686928 // ldrb w8, [x9, x8] + WORD $0x7101b11f // cmp w8, #108 + WORD $0x54000581 // b.ne LBB0_425 $176(%rip) + WORD $0x14000014 // b LBB0_419 $80(%rip) +LBB0_415: + WORD $0xf900003b // str x27, [x1] + WORD $0x394003c8 // ldrb w8, [lr] + WORD $0x7101d11f // cmp w8, #116 + WORD $0x540004e1 // b.ne LBB0_425 $156(%rip) + WORD $0x91000768 // add x8, x27, #1 + WORD $0xf9000028 // str x8, [x1] + WORD $0x38686928 // ldrb w8, [x9, x8] + WORD $0x7101c91f // cmp w8, #114 + WORD $0x54000441 // b.ne LBB0_425 $136(%rip) + WORD $0x91000b68 // add x8, x27, #2 + WORD $0xf9000028 // str x8, [x1] + WORD $0x38686928 // ldrb w8, [x9, x8] + WORD $0x7101d51f // cmp w8, #117 + WORD $0x540003a1 // b.ne LBB0_425 $116(%rip) + WORD $0x91000f68 // add x8, x27, #3 + WORD $0xf9000028 // str x8, [x1] + WORD $0x38686928 // ldrb w8, [x9, x8] + WORD $0x7101951f // cmp w8, #101 + WORD $0x54000301 // b.ne LBB0_425 $96(%rip) +LBB0_419: + WORD $0x91001368 // add x8, x27, #4 + WORD $0x17ffffc5 // b LBB0_402 $-236(%rip) +LBB0_420: + WORD $0xf900003c // str x28, [x1] + WORD $0x387c6928 // ldrb w8, [x9, x28] + WORD $0x7101851f // cmp w8, #97 + WORD $0x54000241 // b.ne LBB0_425 $72(%rip) + WORD $0x91000b68 // add x8, x27, #2 + WORD $0xf9000028 // str x8, [x1] + WORD $0x38686928 // ldrb w8, [x9, x8] + WORD $0x7101b11f // cmp w8, #108 + WORD $0x540001a1 // b.ne LBB0_425 $52(%rip) + WORD $0x91000f68 // add x8, x27, #3 + WORD $0xf9000028 // str x8, [x1] + WORD $0x38686928 // ldrb w8, [x9, x8] + WORD $0x7101cd1f // cmp w8, #115 + WORD $0x54000101 // b.ne LBB0_425 $32(%rip) + WORD $0x91001368 // add x8, x27, #4 + WORD $0xf9000028 // str x8, [x1] + WORD $0x38686928 // ldrb w8, [x9, x8] + WORD $0x7101951f // cmp w8, #101 + WORD $0x54000061 // b.ne LBB0_425 $12(%rip) + WORD $0x91001768 // add x8, x27, #5 + WORD $0x17ffffb0 // b LBB0_402 $-320(%rip) +LBB0_425: + WORD $0x92800028 // mov x8, #-2 + WORD $0x17ffff98 // b LBB0_394 $-416(%rip) +LBB0_426: + WORD $0xaa1403fe // mov lr, x20 + WORD $0x8b140388 // add x8, x28, x20 + WORD $0x17ffffab // b LBB0_402 $-340(%rip) +LBB0_427: + WORD $0x8b1c0228 // add x8, x17, x28 + WORD $0x17ffffa9 // b LBB0_402 $-348(%rip) +LBB0_428: + WORD $0x8b1100a8 // add x8, x5, x17 + WORD $0x17ffffa7 // b LBB0_402 $-356(%rip) +LBB0_429: + WORD $0xcb090388 // sub x8, x28, x9 + WORD $0x8b110108 // add x8, x8, x17 + WORD $0x17ffffa4 // b LBB0_402 $-368(%rip) +LBB0_430: + WORD $0xcb090388 // sub x8, x28, x9 + WORD $0x8b050108 // add x8, x8, x5 + WORD $0x17ffffa1 // b LBB0_402 $-380(%rip) + // .p2align 2, 0x00 +_MASK_USE_NUMBER: + WORD $0x00000002 // .long 2 + +TEXT ·__skip_object(SB), NOSPLIT, $0-40 + NO_LOCAL_POINTERS + +_entry: + MOVD 16(g), R16 + SUB $176, RSP, R17 + CMP R16, R17 + BLS _stack_grow + +_skip_object: + MOVD s+0(FP), R0 + MOVD p+8(FP), R1 + MOVD m+16(FP), R2 + MOVD flags+24(FP), R3 + MOVD ·_subr__skip_object(SB), R11 + WORD $0x1000005e // adr x30, .+8 + JMP (R11) + MOVD R0, ret+32(FP) + RET + +_stack_grow: + MOVD R30, R3 + CALL runtime·morestack_noctxt<>(SB) + JMP _entry diff --git a/vendor/github.com/bytedance/sonic/internal/native/neon/skip_object_subr_arm64.go b/vendor/github.com/bytedance/sonic/internal/native/neon/skip_object_subr_arm64.go new file mode 100644 index 000000000..ab7ab2034 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/neon/skip_object_subr_arm64.go @@ -0,0 +1,25 @@ +// +build !noasm !appengine +// Code generated by asm2asm, DO NOT EDIT. + +package neon + +//go:nosplit +//go:noescape +//goland:noinspection ALL +func __skip_object_entry__() uintptr + +var ( + _subr__skip_object uintptr = __skip_object_entry__() + 48 +) + +const ( + _stack__skip_object = 112 +) + +var ( + _ = _subr__skip_object +) + +const ( + _ = _stack__skip_object +) diff --git a/vendor/github.com/bytedance/sonic/internal/native/neon/skip_one_arm64.go b/vendor/github.com/bytedance/sonic/internal/native/neon/skip_one_arm64.go new file mode 100644 index 000000000..cd4b64a28 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/neon/skip_one_arm64.go @@ -0,0 +1,37 @@ +// Code generated by Makefile, DO NOT EDIT. + +// Code generated by Makefile, DO NOT EDIT. + +/* + * Copyright 2021 ByteDance 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 neon + +import ( + // `unsafe` + + `github.com/bytedance/sonic/internal/native/types` +) + +//go:nosplit +//go:noescape +//goland:noinspection GoUnusedParameter +func __skip_one(s *string, p *int, m *types.StateMachine, flags uint64) (ret int) + +//go:nosplit +func skip_one(s *string, p *int, m *types.StateMachine, flags uint64) (ret int) { + return __skip_one(s, p, m, flags) +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/neon/skip_one_arm64.s b/vendor/github.com/bytedance/sonic/internal/native/neon/skip_one_arm64.s new file mode 100644 index 000000000..91b567888 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/neon/skip_one_arm64.s @@ -0,0 +1,2384 @@ +// +build !noasm !appengine +// Code generated by asm2asm, DO NOT EDIT. + +#include "go_asm.h" +#include "funcdata.h" +#include "textflag.h" + +TEXT ·__skip_one_entry__(SB), NOSPLIT, $96 + NO_LOCAL_POINTERS + WORD $0x100000a0 // adr x0, .+20 + MOVD R0, ret(FP) + RET + // .p2align 4, 0x00 +lCPI0_0: + WORD $0x00000001; WORD $0x00000000 // .quad 1 + WORD $0x00000000; WORD $0x00000000 // .quad 0 +lCPI0_1: + WORD $0x08040201 + WORD $0x80402010 + WORD $0x08040201 + WORD $0x80402010 + // // .byte 1 +// .byte 2 +// .byte 4 +// .byte 8 +// .byte 16 +// .byte 32 +// .byte 64 +// .byte 128 +// .byte 1 +// .byte 2 +// .byte 4 +// .byte 8 +// .byte 16 +// .byte 32 +// .byte 64 +// .byte 128 + +lCPI0_2: + WORD $0x09010800 + WORD $0x0b030a02 + WORD $0x0d050c04 + WORD $0x0f070e06 + // // .byte 0 +// .byte 8 +// .byte 1 +// .byte 9 +// .byte 2 +// .byte 10 +// .byte 3 +// .byte 11 +// .byte 4 +// .byte 12 +// .byte 5 +// .byte 13 +// .byte 6 +// .byte 14 +// .byte 7 +// .byte 15 + +_skip_one: + WORD $0xd101c3ff // sub sp, sp, #112 + WORD $0xa900effc // stp x28, x27, [sp, #8] + WORD $0xa901e7fa // stp x26, x25, [sp, #24] + WORD $0xa902dff8 // stp x24, x23, [sp, #40] + WORD $0xa903d7f6 // stp x22, x21, [sp, #56] + WORD $0xa904cff4 // stp x20, x19, [sp, #72] + WORD $0xa905fbfd // stp fp, lr, [sp, #88] + WORD $0xa93ffbfd // stp fp, lr, [sp, #-8] + WORD $0xd10023fd // sub fp, sp, #8 +Lloh0: + WORD $0x10fffd68 // adr x8, lCPI0_0 $-84(%rip) +Lloh1: + WORD $0x3dc00100 // ldr q0, [x8, lCPI0_0@PAGEOFF] $0(%rip) + WORD $0xaa0203ea // mov x10, x2 + WORD $0x3c808540 // str q0, [x10], #8 + WORD $0xf9400009 // ldr x9, [x0] + WORD $0xaa2903eb // mvn x11, x9 + WORD $0xf940003c // ldr x28, [x1] + WORD $0xcb0903ec // neg x12, x9 + WORD $0xd100052d // sub x13, x9, #1 + WORD $0x9280000e // mov x14, #-1 + WORD $0x5280002f // mov w15, #1 + WORD $0xd284c010 // mov x16, #9728 + WORD $0xf2c00030 // movk x16, #1, lsl #32 + WORD $0x52800073 // mov w19, #3 + WORD $0x52800084 // mov w4, #4 + WORD $0x4f01e440 // movi.16b v0, #34 + WORD $0x4f02e781 // movi.16b v1, #92 +Lloh2: + WORD $0x10fffbc8 // adr x8, lCPI0_1 $-136(%rip) +Lloh3: + WORD $0x3dc00102 // ldr q2, [x8, lCPI0_1@PAGEOFF] $0(%rip) +Lloh4: + WORD $0x10fffc08 // adr x8, lCPI0_2 $-128(%rip) +Lloh5: + WORD $0x3dc00103 // ldr q3, [x8, lCPI0_2@PAGEOFF] $0(%rip) + WORD $0x92f00006 // mov x6, #9223372036854775807 + WORD $0x4f01e404 // movi.16b v4, #32 + WORD $0xb20903e7 // mov x7, #36028797027352576 + WORD $0xf2800027 // movk x7, #1 + WORD $0x4f01e5c5 // movi.16b v5, #46 + WORD $0x4f01e566 // movi.16b v6, #43 + WORD $0x4f01e5a7 // movi.16b v7, #45 + WORD $0x4f06e610 // movi.16b v16, #208 + WORD $0x4f00e551 // movi.16b v17, #10 + WORD $0x4f06e7f2 // movi.16b v18, #223 + WORD $0x4f02e4b3 // movi.16b v19, #69 + WORD $0x52800025 // mov w5, #1 +LBB0_1: + WORD $0xf9400408 // ldr x8, [x0, #8] + WORD $0xeb08039f // cmp x28, x8 + WORD $0x54000162 // b.hs LBB0_6 $44(%rip) + WORD $0x387c6931 // ldrb w17, [x9, x28] + WORD $0x7100363f // cmp w17, #13 + WORD $0x54000100 // b.eq LBB0_6 $32(%rip) + WORD $0x7100823f // cmp w17, #32 + WORD $0x540000c0 // b.eq LBB0_6 $24(%rip) + WORD $0x51002e31 // sub w17, w17, #11 + WORD $0x31000a3f // cmn w17, #2 + WORD $0x54000062 // b.hs LBB0_6 $12(%rip) + WORD $0xaa1c03fb // mov x27, x28 + WORD $0x14000031 // b LBB0_22 $196(%rip) +LBB0_6: + WORD $0x9100079b // add x27, x28, #1 + WORD $0xeb08037f // cmp x27, x8 + WORD $0x54000122 // b.hs LBB0_10 $36(%rip) + WORD $0x387b6931 // ldrb w17, [x9, x27] + WORD $0x7100363f // cmp w17, #13 + WORD $0x540000c0 // b.eq LBB0_10 $24(%rip) + WORD $0x7100823f // cmp w17, #32 + WORD $0x54000080 // b.eq LBB0_10 $16(%rip) + WORD $0x51002e31 // sub w17, w17, #11 + WORD $0x31000a3f // cmn w17, #2 + WORD $0x540004c3 // b.lo LBB0_22 $152(%rip) +LBB0_10: + WORD $0x91000b9b // add x27, x28, #2 + WORD $0xeb08037f // cmp x27, x8 + WORD $0x54000122 // b.hs LBB0_14 $36(%rip) + WORD $0x387b6931 // ldrb w17, [x9, x27] + WORD $0x7100363f // cmp w17, #13 + WORD $0x540000c0 // b.eq LBB0_14 $24(%rip) + WORD $0x7100823f // cmp w17, #32 + WORD $0x54000080 // b.eq LBB0_14 $16(%rip) + WORD $0x51002e31 // sub w17, w17, #11 + WORD $0x31000a3f // cmn w17, #2 + WORD $0x54000363 // b.lo LBB0_22 $108(%rip) +LBB0_14: + WORD $0x91000f9b // add x27, x28, #3 + WORD $0xeb08037f // cmp x27, x8 + WORD $0x54000122 // b.hs LBB0_18 $36(%rip) + WORD $0x387b6931 // ldrb w17, [x9, x27] + WORD $0x7100363f // cmp w17, #13 + WORD $0x540000c0 // b.eq LBB0_18 $24(%rip) + WORD $0x7100823f // cmp w17, #32 + WORD $0x54000080 // b.eq LBB0_18 $16(%rip) + WORD $0x51002e31 // sub w17, w17, #11 + WORD $0x31000a3f // cmn w17, #2 + WORD $0x54000203 // b.lo LBB0_22 $64(%rip) +LBB0_18: + WORD $0x9100139b // add x27, x28, #4 + WORD $0xeb08037f // cmp x27, x8 + WORD $0x5400e922 // b.hs LBB0_395 $7460(%rip) +LBB0_19: + WORD $0x387b6931 // ldrb w17, [x9, x27] + WORD $0x7100823f // cmp w17, #32 + WORD $0x9ad121f1 // lsl x17, x15, x17 + WORD $0x8a100231 // and x17, x17, x16 + WORD $0xfa409a24 // ccmp x17, #0, #4, ls + WORD $0x540000a0 // b.eq LBB0_21 $20(%rip) + WORD $0x9100077b // add x27, x27, #1 + WORD $0xeb1b011f // cmp x8, x27 + WORD $0x54ffff01 // b.ne LBB0_19 $-32(%rip) + WORD $0x14000735 // b LBB0_393 $7380(%rip) +LBB0_21: + WORD $0xeb08037f // cmp x27, x8 + WORD $0x5400e662 // b.hs LBB0_393 $7372(%rip) +LBB0_22: + WORD $0x9100077c // add x28, x27, #1 + WORD $0xf900003c // str x28, [x1] + WORD $0x8b1b013e // add lr, x9, x27 + WORD $0x394003d5 // ldrb w21, [lr] + WORD $0x3400e5d5 // cbz w21, LBB0_393 $7352(%rip) + WORD $0xd10004b4 // sub x20, x5, #1 + WORD $0xf8747948 // ldr x8, [x10, x20, lsl #3] + WORD $0xb10005df // cmn x14, #1 + WORD $0x9a8e036e // csel x14, x27, x14, eq + WORD $0x71000d1f // cmp w8, #3 + WORD $0x54000c8c // b.gt LBB0_39 $400(%rip) + WORD $0x7100051f // cmp w8, #1 + WORD $0x540018c0 // b.eq LBB0_54 $792(%rip) + WORD $0x7100091f // cmp w8, #2 + WORD $0x54002c20 // b.eq LBB0_94 $1412(%rip) + WORD $0x71000d1f // cmp w8, #3 + WORD $0x540019c1 // b.ne LBB0_58 $824(%rip) + WORD $0x71008abf // cmp w21, #34 + WORD $0x5400f101 // b.ne LBB0_425 $7712(%rip) + WORD $0x3200f3e6 // mov w6, #1431655765 + WORD $0xf8347944 // str x4, [x10, x20, lsl #3] + WORD $0xf9400408 // ldr x8, [x0, #8] + WORD $0xeb1c0114 // subs x20, x8, x28 + WORD $0x372831a3 // tbnz w3, #5, LBB0_109 $1588(%rip) + WORD $0x5400e560 // b.eq LBB0_398 $7340(%rip) + WORD $0xf101029f // cmp x20, #64 + WORD $0x54009103 // b.lo LBB0_250 $4640(%rip) + WORD $0xd2800005 // mov x5, #0 + WORD $0x92800008 // mov x8, #-1 +LBB0_32: + WORD $0x8b1c0131 // add x17, x9, x28 + WORD $0xad405634 // ldp q20, q21, [x17] + WORD $0xad415e36 // ldp q22, q23, [x17, #32] + WORD $0x6e208e98 // cmeq.16b v24, v20, v0 + WORD $0x6e208eb9 // cmeq.16b v25, v21, v0 + WORD $0x6e208eda // cmeq.16b v26, v22, v0 + WORD $0x6e208efb // cmeq.16b v27, v23, v0 + WORD $0x6e218e94 // cmeq.16b v20, v20, v1 + WORD $0x6e218eb5 // cmeq.16b v21, v21, v1 + WORD $0x6e218ed6 // cmeq.16b v22, v22, v1 + WORD $0x6e218ef7 // cmeq.16b v23, v23, v1 + WORD $0x4e221f18 // and.16b v24, v24, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260311 // fmov w17, s24 + WORD $0x4e221f38 // and.16b v24, v25, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260307 // fmov w7, s24 + WORD $0x4e221f58 // and.16b v24, v26, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260315 // fmov w21, s24 + WORD $0x4e221f78 // and.16b v24, v27, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260316 // fmov w22, s24 + WORD $0x4e221e94 // and.16b v20, v20, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e260297 // fmov w23, s20 + WORD $0x4e221eb4 // and.16b v20, v21, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e260298 // fmov w24, s20 + WORD $0x4e221ed4 // and.16b v20, v22, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e260299 // fmov w25, s20 + WORD $0x4e221ef4 // and.16b v20, v23, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e26029a // fmov w26, s20 + WORD $0xd3607eb5 // lsl x21, x21, #32 + WORD $0xaa16c2b5 // orr x21, x21, x22, lsl #48 + WORD $0x53103ce7 // lsl w7, w7, #16 + WORD $0xaa0702a7 // orr x7, x21, x7 + WORD $0xaa1100e7 // orr x7, x7, x17 + WORD $0xd3607f31 // lsl x17, x25, #32 + WORD $0xaa1ac231 // orr x17, x17, x26, lsl #48 + WORD $0x53103f15 // lsl w21, w24, #16 + WORD $0xaa150231 // orr x17, x17, x21 + WORD $0xaa170231 // orr x17, x17, x23 + WORD $0xb5000111 // cbnz x17, LBB0_36 $32(%rip) + WORD $0xb5000185 // cbnz x5, LBB0_37 $48(%rip) + WORD $0xb50002c7 // cbnz x7, LBB0_38 $88(%rip) +LBB0_35: + WORD $0xd1010294 // sub x20, x20, #64 + WORD $0x9101039c // add x28, x28, #64 + WORD $0xf100fe9f // cmp x20, #63 + WORD $0x54fff8a8 // b.hi LBB0_32 $-236(%rip) + WORD $0x14000441 // b LBB0_247 $4356(%rip) +LBB0_36: + WORD $0xb100051f // cmn x8, #1 + WORD $0xdac00235 // rbit x21, x17 + WORD $0xdac012b5 // clz x21, x21 + WORD $0x8b1c02b5 // add x21, x21, x28 + WORD $0x9a951108 // csel x8, x8, x21, ne +LBB0_37: + WORD $0x8a250235 // bic x21, x17, x5 + WORD $0xaa1504b6 // orr x22, x5, x21, lsl #1 + WORD $0x8a360231 // bic x17, x17, x22 + WORD $0x9201f231 // and x17, x17, #0xaaaaaaaaaaaaaaaa + WORD $0xab150231 // adds x17, x17, x21 + WORD $0x1a9f37e5 // cset w5, hs + WORD $0xd37ffa31 // lsl x17, x17, #1 + WORD $0xd200f231 // eor x17, x17, #0x5555555555555555 + WORD $0x8a160231 // and x17, x17, x22 + WORD $0x8a3100e7 // bic x7, x7, x17 + WORD $0xb4fffd87 // cbz x7, LBB0_35 $-80(%rip) +LBB0_38: + WORD $0xdac000f1 // rbit x17, x7 + WORD $0xdac01231 // clz x17, x17 + WORD $0x8b1c0231 // add x17, x17, x28 + WORD $0x140001aa // b LBB0_121 $1704(%rip) +LBB0_39: + WORD $0x7100111f // cmp w8, #4 + WORD $0x54000d00 // b.eq LBB0_56 $416(%rip) + WORD $0x7100151f // cmp w8, #5 + WORD $0x54002060 // b.eq LBB0_96 $1036(%rip) + WORD $0x7100191f // cmp w8, #6 + WORD $0x54000d61 // b.ne LBB0_58 $428(%rip) + WORD $0x71008abf // cmp w21, #34 + WORD $0x54001f81 // b.ne LBB0_95 $1008(%rip) + WORD $0x3200f3e4 // mov w4, #1431655765 + WORD $0x52800048 // mov w8, #2 + WORD $0xf8347948 // str x8, [x10, x20, lsl #3] + WORD $0xf9400408 // ldr x8, [x0, #8] + WORD $0xeb1c0114 // subs x20, x8, x28 + WORD $0x37283923 // tbnz w3, #5, LBB0_138 $1828(%rip) + WORD $0x5400d8e0 // b.eq LBB0_398 $6940(%rip) + WORD $0xf101029f // cmp x20, #64 + WORD $0x54009423 // b.lo LBB0_277 $4740(%rip) + WORD $0xd2800005 // mov x5, #0 + WORD $0x92800008 // mov x8, #-1 +LBB0_47: + WORD $0x8b1c0131 // add x17, x9, x28 + WORD $0xad405634 // ldp q20, q21, [x17] + WORD $0xad415e36 // ldp q22, q23, [x17, #32] + WORD $0x6e208e98 // cmeq.16b v24, v20, v0 + WORD $0x6e208eb9 // cmeq.16b v25, v21, v0 + WORD $0x6e208eda // cmeq.16b v26, v22, v0 + WORD $0x6e208efb // cmeq.16b v27, v23, v0 + WORD $0x6e218e94 // cmeq.16b v20, v20, v1 + WORD $0x6e218eb5 // cmeq.16b v21, v21, v1 + WORD $0x6e218ed6 // cmeq.16b v22, v22, v1 + WORD $0x6e218ef7 // cmeq.16b v23, v23, v1 + WORD $0x4e221f18 // and.16b v24, v24, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260311 // fmov w17, s24 + WORD $0x4e221f38 // and.16b v24, v25, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260307 // fmov w7, s24 + WORD $0x4e221f58 // and.16b v24, v26, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260315 // fmov w21, s24 + WORD $0x4e221f78 // and.16b v24, v27, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260316 // fmov w22, s24 + WORD $0x4e221e94 // and.16b v20, v20, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e260297 // fmov w23, s20 + WORD $0x4e221eb4 // and.16b v20, v21, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e260298 // fmov w24, s20 + WORD $0x4e221ed4 // and.16b v20, v22, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e260299 // fmov w25, s20 + WORD $0x4e221ef4 // and.16b v20, v23, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e26029a // fmov w26, s20 + WORD $0xd3607eb5 // lsl x21, x21, #32 + WORD $0xaa16c2b5 // orr x21, x21, x22, lsl #48 + WORD $0x53103ce7 // lsl w7, w7, #16 + WORD $0xaa0702a7 // orr x7, x21, x7 + WORD $0xaa1100e7 // orr x7, x7, x17 + WORD $0xd3607f31 // lsl x17, x25, #32 + WORD $0xaa1ac231 // orr x17, x17, x26, lsl #48 + WORD $0x53103f15 // lsl w21, w24, #16 + WORD $0xaa150231 // orr x17, x17, x21 + WORD $0xaa170231 // orr x17, x17, x23 + WORD $0xb5000111 // cbnz x17, LBB0_51 $32(%rip) + WORD $0xb5000185 // cbnz x5, LBB0_52 $48(%rip) + WORD $0xb50002c7 // cbnz x7, LBB0_53 $88(%rip) +LBB0_50: + WORD $0xd1010294 // sub x20, x20, #64 + WORD $0x9101039c // add x28, x28, #64 + WORD $0xf100fe9f // cmp x20, #63 + WORD $0x54fff8a8 // b.hi LBB0_47 $-236(%rip) + WORD $0x1400045e // b LBB0_275 $4472(%rip) +LBB0_51: + WORD $0xb100051f // cmn x8, #1 + WORD $0xdac00235 // rbit x21, x17 + WORD $0xdac012b5 // clz x21, x21 + WORD $0x8b1c02b5 // add x21, x21, x28 + WORD $0x9a951108 // csel x8, x8, x21, ne +LBB0_52: + WORD $0x8a250235 // bic x21, x17, x5 + WORD $0xaa1504b6 // orr x22, x5, x21, lsl #1 + WORD $0x8a360231 // bic x17, x17, x22 + WORD $0x9201f231 // and x17, x17, #0xaaaaaaaaaaaaaaaa + WORD $0xab150231 // adds x17, x17, x21 + WORD $0x1a9f37e5 // cset w5, hs + WORD $0xd37ffa31 // lsl x17, x17, #1 + WORD $0xd200f231 // eor x17, x17, #0x5555555555555555 + WORD $0x8a160231 // and x17, x17, x22 + WORD $0x8a3100e7 // bic x7, x7, x17 + WORD $0xb4fffd87 // cbz x7, LBB0_50 $-80(%rip) +LBB0_53: + WORD $0xdac000f1 // rbit x17, x7 + WORD $0xdac01231 // clz x17, x17 + WORD $0x8b1c0231 // add x17, x17, x28 + WORD $0x140001e6 // b LBB0_150 $1944(%rip) +LBB0_54: + WORD $0x7100b2bf // cmp w21, #44 + WORD $0x540017e0 // b.eq LBB0_105 $764(%rip) + WORD $0x710176bf // cmp w21, #93 + WORD $0x54001420 // b.eq LBB0_97 $644(%rip) + WORD $0x140006c4 // b LBB0_425 $6928(%rip) +LBB0_56: + WORD $0x7100eabf // cmp w21, #58 + WORD $0x5400d841 // b.ne LBB0_425 $6920(%rip) + WORD $0xf834795f // str xzr, [x10, x20, lsl #3] + WORD $0xf9400045 // ldr x5, [x2] + WORD $0xaa0e03e8 // mov x8, x14 + WORD $0xb5ffdce5 // cbnz x5, LBB0_1 $-1124(%rip) + WORD $0x14000656 // b LBB0_394 $6488(%rip) +LBB0_58: + WORD $0xf9000054 // str x20, [x2] + WORD $0x92800028 // mov x8, #-2 + WORD $0x71016abf // cmp w21, #90 + WORD $0x540013cc // b.gt LBB0_99 $632(%rip) +LBB0_59: + WORD $0x5100c2b1 // sub w17, w21, #48 + WORD $0x71002a3f // cmp w17, #10 + WORD $0x54003d02 // b.hs LBB0_154 $1952(%rip) + WORD $0xf9400408 // ldr x8, [x0, #8] + WORD $0xeb1b0115 // subs x21, x8, x27 + WORD $0x5400cbe0 // b.eq LBB0_399 $6524(%rip) + WORD $0x394003c8 // ldrb w8, [lr] + WORD $0x7100c11f // cmp w8, #48 + WORD $0x54000141 // b.ne LBB0_65 $40(%rip) + WORD $0xf10006bf // cmp x21, #1 + WORD $0x54004280 // b.eq LBB0_170 $2128(%rip) + WORD $0x387c6928 // ldrb w8, [x9, x28] + WORD $0x5100b908 // sub w8, w8, #46 + WORD $0x7100dd1f // cmp w8, #55 + WORD $0x54004208 // b.hi LBB0_170 $2112(%rip) + WORD $0x9ac821e8 // lsl x8, x15, x8 + WORD $0xea07011f // tst x8, x7 + WORD $0x540041a0 // b.eq LBB0_170 $2100(%rip) +LBB0_65: + WORD $0xf10042bf // cmp x21, #16 + WORD $0x5400a5c3 // b.lo LBB0_333 $5304(%rip) + WORD $0xd2800016 // mov x22, #0 + WORD $0xd280001c // mov x28, #0 + WORD $0x92800014 // mov x20, #-1 + WORD $0x92800005 // mov x5, #-1 + WORD $0x92800008 // mov x8, #-1 +LBB0_67: + WORD $0x3cfc6bd4 // ldr q20, [lr, x28] + WORD $0x6e258e95 // cmeq.16b v21, v20, v5 + WORD $0x6e268e96 // cmeq.16b v22, v20, v6 + WORD $0x6e278e97 // cmeq.16b v23, v20, v7 + WORD $0x4e308698 // add.16b v24, v20, v16 + WORD $0x6e383638 // cmhi.16b v24, v17, v24 + WORD $0x4e321e94 // and.16b v20, v20, v18 + WORD $0x6e338e94 // cmeq.16b v20, v20, v19 + WORD $0x4eb71ed6 // orr.16b v22, v22, v23 + WORD $0x4eb51f17 // orr.16b v23, v24, v21 + WORD $0x4eb61e98 // orr.16b v24, v20, v22 + WORD $0x4eb81ef7 // orr.16b v23, v23, v24 + WORD $0x4e221eb5 // and.16b v21, v21, v2 + WORD $0x4e0302b5 // tbl.16b v21, { v21 }, v3 + WORD $0x4e71bab5 // addv.8h h21, v21 + WORD $0x1e2602b1 // fmov w17, s21 + WORD $0x4e221e94 // and.16b v20, v20, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e260297 // fmov w23, s20 + WORD $0x4e221ed4 // and.16b v20, v22, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e260299 // fmov w25, s20 + WORD $0x4e221ef4 // and.16b v20, v23, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e260287 // fmov w7, s20 + WORD $0x2a2703e7 // mvn w7, w7 + WORD $0x32103ce7 // orr w7, w7, #0xffff0000 + WORD $0x5ac000e7 // rbit w7, w7 + WORD $0x5ac010e7 // clz w7, w7 + WORD $0x12800004 // mov w4, #-1 + WORD $0x1ac72098 // lsl w24, w4, w7 + WORD $0x0a38023a // bic w26, w17, w24 + WORD $0x0a3802e4 // bic w4, w23, w24 + WORD $0x0a380326 // bic w6, w25, w24 + WORD $0x710040ff // cmp w7, #16 + WORD $0x1a9a0231 // csel w17, w17, w26, eq + WORD $0x1a8402f8 // csel w24, w23, w4, eq + WORD $0x1a860337 // csel w23, w25, w6, eq + WORD $0x51000624 // sub w4, w17, #1 + WORD $0x6a110099 // ands w25, w4, w17 + WORD $0x54006d81 // b.ne LBB0_245 $3504(%rip) + WORD $0x51000704 // sub w4, w24, #1 + WORD $0x6a180099 // ands w25, w4, w24 + WORD $0x54006d21 // b.ne LBB0_245 $3492(%rip) + WORD $0x510006e4 // sub w4, w23, #1 + WORD $0x6a170099 // ands w25, w4, w23 + WORD $0x54006cc1 // b.ne LBB0_245 $3480(%rip) + WORD $0x340000d1 // cbz w17, LBB0_73 $24(%rip) + WORD $0x5ac00231 // rbit w17, w17 + WORD $0x5ac01231 // clz w17, w17 + WORD $0xb100051f // cmn x8, #1 + WORD $0x54006cc1 // b.ne LBB0_246 $3480(%rip) + WORD $0x8b110388 // add x8, x28, x17 +LBB0_73: + WORD $0x340000d8 // cbz w24, LBB0_76 $24(%rip) + WORD $0x5ac00311 // rbit w17, w24 + WORD $0x5ac01231 // clz w17, w17 + WORD $0xb10004bf // cmn x5, #1 + WORD $0x54006c01 // b.ne LBB0_246 $3456(%rip) + WORD $0x8b110385 // add x5, x28, x17 +LBB0_76: + WORD $0x340000d7 // cbz w23, LBB0_79 $24(%rip) + WORD $0x5ac002f1 // rbit w17, w23 + WORD $0x5ac01231 // clz w17, w17 + WORD $0xb100069f // cmn x20, #1 + WORD $0x54006b41 // b.ne LBB0_246 $3432(%rip) + WORD $0x8b110394 // add x20, x28, x17 +LBB0_79: + WORD $0x710040ff // cmp w7, #16 + WORD $0x54001bc1 // b.ne LBB0_123 $888(%rip) + WORD $0x9100439c // add x28, x28, #16 + WORD $0xd10042d6 // sub x22, x22, #16 + WORD $0x8b1602b7 // add x23, x21, x22 + WORD $0xf1003eff // cmp x23, #15 + WORD $0x54fff6c8 // b.hi LBB0_67 $-296(%rip) + WORD $0x8b1c03d6 // add x22, lr, x28 + WORD $0xeb1c02bf // cmp x21, x28 + WORD $0x54001b00 // b.eq LBB0_124 $864(%rip) +LBB0_82: + WORD $0x8b1702d8 // add x24, x22, x23 + WORD $0x8b1b01b1 // add x17, x13, x27 + WORD $0xcb160235 // sub x21, x17, x22 + WORD $0xcb1e02c7 // sub x7, x22, lr + WORD $0xaa1603fc // mov x28, x22 + WORD $0x14000009 // b LBB0_85 $36(%rip) +LBB0_83: + WORD $0xb10004bf // cmn x5, #1 + WORD $0xaa0703e5 // mov x5, x7 + WORD $0x54001d81 // b.ne LBB0_136 $944(%rip) +LBB0_84: + WORD $0xd10006b5 // sub x21, x21, #1 + WORD $0x910004e7 // add x7, x7, #1 + WORD $0xaa1c03f6 // mov x22, x28 + WORD $0xd10006f7 // sub x23, x23, #1 + WORD $0xb40042d7 // cbz x23, LBB0_184 $2136(%rip) +LBB0_85: + WORD $0x38401791 // ldrb w17, [x28], #1 + WORD $0x5100c224 // sub w4, w17, #48 + WORD $0x7100289f // cmp w4, #10 + WORD $0x54ffff03 // b.lo LBB0_84 $-32(%rip) + WORD $0x7100b63f // cmp w17, #45 + WORD $0x5400016d // b.le LBB0_91 $44(%rip) + WORD $0x7101963f // cmp w17, #101 + WORD $0x54fffe20 // b.eq LBB0_83 $-60(%rip) + WORD $0x7101163f // cmp w17, #69 + WORD $0x54fffde0 // b.eq LBB0_83 $-68(%rip) + WORD $0x7100ba3f // cmp w17, #46 + WORD $0x540017c1 // b.ne LBB0_124 $760(%rip) + WORD $0xb100051f // cmn x8, #1 + WORD $0xaa0703e8 // mov x8, x7 + WORD $0x54fffda0 // b.eq LBB0_84 $-76(%rip) + WORD $0x140000d7 // b LBB0_136 $860(%rip) +LBB0_91: + WORD $0x7100ae3f // cmp w17, #43 + WORD $0x54000060 // b.eq LBB0_93 $12(%rip) + WORD $0x7100b63f // cmp w17, #45 + WORD $0x540016c1 // b.ne LBB0_124 $728(%rip) +LBB0_93: + WORD $0xb100069f // cmn x20, #1 + WORD $0xaa0703f4 // mov x20, x7 + WORD $0x54fffca0 // b.eq LBB0_84 $-108(%rip) + WORD $0x140000cf // b LBB0_136 $828(%rip) +LBB0_94: + WORD $0x7100b2bf // cmp w21, #44 + WORD $0x54000560 // b.eq LBB0_107 $172(%rip) +LBB0_95: + WORD $0x7101f6bf // cmp w21, #125 + WORD $0x54000080 // b.eq LBB0_97 $16(%rip) + WORD $0x14000627 // b LBB0_425 $6300(%rip) +LBB0_96: + WORD $0x710176bf // cmp w21, #93 + WORD $0x540000c1 // b.ne LBB0_98 $24(%rip) +LBB0_97: + WORD $0xf9000054 // str x20, [x2] + WORD $0xaa1403e5 // mov x5, x20 + WORD $0xaa0e03e8 // mov x8, x14 + WORD $0xb5ffc954 // cbnz x20, LBB0_1 $-1752(%rip) + WORD $0x140005b9 // b LBB0_394 $5860(%rip) +LBB0_98: + WORD $0xf834794f // str x15, [x10, x20, lsl #3] + WORD $0x92800028 // mov x8, #-2 + WORD $0x71016abf // cmp w21, #90 + WORD $0x54ffec8d // b.le LBB0_59 $-624(%rip) +LBB0_99: + WORD $0x7101b6bf // cmp w21, #109 + WORD $0x54002bad // b.le LBB0_160 $1396(%rip) + WORD $0x7101babf // cmp w21, #110 + WORD $0x54002e80 // b.eq LBB0_167 $1488(%rip) + WORD $0x7101d2bf // cmp w21, #116 + WORD $0x54002d00 // b.eq LBB0_165 $1440(%rip) + WORD $0x7101eebf // cmp w21, #123 + WORD $0x5400b5a1 // b.ne LBB0_394 $5812(%rip) + WORD $0xf9400048 // ldr x8, [x2] + WORD $0xf13ffd1f // cmp x8, #4095 + WORD $0x5400b6cc // b.gt LBB0_396 $5848(%rip) + WORD $0x91000511 // add x17, x8, #1 + WORD $0xf9000051 // str x17, [x2] + WORD $0x528000d1 // mov w17, #6 + WORD $0xf8287951 // str x17, [x10, x8, lsl #3] + WORD $0xf9400045 // ldr x5, [x2] + WORD $0xaa0e03e8 // mov x8, x14 + WORD $0xb5ffc665 // cbnz x5, LBB0_1 $-1844(%rip) + WORD $0x140005a2 // b LBB0_394 $5768(%rip) +LBB0_105: + WORD $0xf13ffcbf // cmp x5, #4095 + WORD $0x5400b58c // b.gt LBB0_396 $5808(%rip) + WORD $0x910004a8 // add x8, x5, #1 + WORD $0xf9000048 // str x8, [x2] + WORD $0xf825795f // str xzr, [x10, x5, lsl #3] + WORD $0xf9400045 // ldr x5, [x2] + WORD $0xaa0e03e8 // mov x8, x14 + WORD $0xb5ffc545 // cbnz x5, LBB0_1 $-1880(%rip) + WORD $0x14000599 // b LBB0_394 $5732(%rip) +LBB0_107: + WORD $0xf13ffcbf // cmp x5, #4095 + WORD $0x5400b46c // b.gt LBB0_396 $5772(%rip) + WORD $0x910004a8 // add x8, x5, #1 + WORD $0xf9000048 // str x8, [x2] + WORD $0xf8257953 // str x19, [x10, x5, lsl #3] + WORD $0xf9400045 // ldr x5, [x2] + WORD $0xaa0e03e8 // mov x8, x14 + WORD $0xb5ffc425 // cbnz x5, LBB0_1 $-1916(%rip) + WORD $0x14000590 // b LBB0_394 $5696(%rip) +LBB0_109: + WORD $0x5400b3e0 // b.eq LBB0_398 $5756(%rip) + WORD $0xf101029f // cmp x20, #64 + WORD $0x54006403 // b.lo LBB0_256 $3200(%rip) + WORD $0xd2800005 // mov x5, #0 + WORD $0x92800008 // mov x8, #-1 +LBB0_112: + WORD $0x8b1c0131 // add x17, x9, x28 + WORD $0xad405a37 // ldp q23, q22, [x17] + WORD $0xad415235 // ldp q21, q20, [x17, #32] + WORD $0x6e208ef8 // cmeq.16b v24, v23, v0 + WORD $0x4e221f18 // and.16b v24, v24, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260311 // fmov w17, s24 + WORD $0x6e208ed8 // cmeq.16b v24, v22, v0 + WORD $0x4e221f18 // and.16b v24, v24, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260307 // fmov w7, s24 + WORD $0x6e208eb8 // cmeq.16b v24, v21, v0 + WORD $0x4e221f18 // and.16b v24, v24, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260315 // fmov w21, s24 + WORD $0x6e208e98 // cmeq.16b v24, v20, v0 + WORD $0x4e221f18 // and.16b v24, v24, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260316 // fmov w22, s24 + WORD $0x6e218ef8 // cmeq.16b v24, v23, v1 + WORD $0x4e221f18 // and.16b v24, v24, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260317 // fmov w23, s24 + WORD $0x6e218ed8 // cmeq.16b v24, v22, v1 + WORD $0x4e221f18 // and.16b v24, v24, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260318 // fmov w24, s24 + WORD $0x6e218eb8 // cmeq.16b v24, v21, v1 + WORD $0x4e221f18 // and.16b v24, v24, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260319 // fmov w25, s24 + WORD $0x6e218e98 // cmeq.16b v24, v20, v1 + WORD $0x4e221f18 // and.16b v24, v24, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e26031a // fmov w26, s24 + WORD $0xd3607eb5 // lsl x21, x21, #32 + WORD $0xaa16c2b5 // orr x21, x21, x22, lsl #48 + WORD $0x53103ce7 // lsl w7, w7, #16 + WORD $0xaa0702a7 // orr x7, x21, x7 + WORD $0xaa1100e7 // orr x7, x7, x17 + WORD $0xd3607f31 // lsl x17, x25, #32 + WORD $0xaa1ac231 // orr x17, x17, x26, lsl #48 + WORD $0x53103f15 // lsl w21, w24, #16 + WORD $0xaa150231 // orr x17, x17, x21 + WORD $0xaa170231 // orr x17, x17, x23 + WORD $0xb5000451 // cbnz x17, LBB0_117 $136(%rip) + WORD $0xb50004c5 // cbnz x5, LBB0_118 $152(%rip) +LBB0_114: + WORD $0x6e373497 // cmhi.16b v23, v4, v23 + WORD $0x4e221ef7 // and.16b v23, v23, v2 + WORD $0x4e0302f7 // tbl.16b v23, { v23 }, v3 + WORD $0x4e71baf7 // addv.8h h23, v23 + WORD $0x1e2602f1 // fmov w17, s23 + WORD $0x6e363496 // cmhi.16b v22, v4, v22 + WORD $0x4e221ed6 // and.16b v22, v22, v2 + WORD $0x4e0302d6 // tbl.16b v22, { v22 }, v3 + WORD $0x4e71bad6 // addv.8h h22, v22 + WORD $0x1e2602d5 // fmov w21, s22 + WORD $0x6e353495 // cmhi.16b v21, v4, v21 + WORD $0x4e221eb5 // and.16b v21, v21, v2 + WORD $0x4e0302b5 // tbl.16b v21, { v21 }, v3 + WORD $0x4e71bab5 // addv.8h h21, v21 + WORD $0x1e2602b6 // fmov w22, s21 + WORD $0x6e343494 // cmhi.16b v20, v4, v20 + WORD $0x4e221e94 // and.16b v20, v20, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e260297 // fmov w23, s20 + WORD $0xd3607ed6 // lsl x22, x22, #32 + WORD $0xaa17c2d6 // orr x22, x22, x23, lsl #48 + WORD $0x53103eb5 // lsl w21, w21, #16 + WORD $0xaa1502d5 // orr x21, x22, x21 + WORD $0xaa1102b1 // orr x17, x21, x17 + WORD $0xb50002e7 // cbnz x7, LBB0_119 $92(%rip) + WORD $0xb500aa71 // cbnz x17, LBB0_404 $5452(%rip) + WORD $0xd1010294 // sub x20, x20, #64 + WORD $0x9101039c // add x28, x28, #64 + WORD $0xf100fe9f // cmp x20, #63 + WORD $0x54fff568 // b.hi LBB0_112 $-340(%rip) + WORD $0x1400029d // b LBB0_248 $2676(%rip) +LBB0_117: + WORD $0xb100051f // cmn x8, #1 + WORD $0xdac00235 // rbit x21, x17 + WORD $0xdac012b5 // clz x21, x21 + WORD $0x8b1c02b5 // add x21, x21, x28 + WORD $0x9a951108 // csel x8, x8, x21, ne +LBB0_118: + WORD $0x8a250235 // bic x21, x17, x5 + WORD $0xaa1504b6 // orr x22, x5, x21, lsl #1 + WORD $0x8a360231 // bic x17, x17, x22 + WORD $0x9201f231 // and x17, x17, #0xaaaaaaaaaaaaaaaa + WORD $0xab150231 // adds x17, x17, x21 + WORD $0x1a9f37e5 // cset w5, hs + WORD $0xd37ffa31 // lsl x17, x17, #1 + WORD $0xd200f231 // eor x17, x17, #0x5555555555555555 + WORD $0x8a160231 // and x17, x17, x22 + WORD $0x8a3100e7 // bic x7, x7, x17 + WORD $0x17ffffd1 // b LBB0_114 $-188(%rip) +LBB0_119: + WORD $0xdac000e5 // rbit x5, x7 + WORD $0xdac010a5 // clz x5, x5 + WORD $0xdac00231 // rbit x17, x17 + WORD $0xdac01231 // clz x17, x17 + WORD $0xeb05023f // cmp x17, x5 + WORD $0x5400b143 // b.lo LBB0_427 $5672(%rip) +LBB0_120: + WORD $0x8b1c00b1 // add x17, x5, x28 +LBB0_121: + WORD $0x9100063c // add x28, x17, #1 +LBB0_122: + WORD $0x52800084 // mov w4, #4 + WORD $0x92f00006 // mov x6, #9223372036854775807 + WORD $0xb20903e7 // mov x7, #36028797027352576 + WORD $0xf2800027 // movk x7, #1 + WORD $0xb6f81c9c // tbz x28, #63, LBB0_170 $912(%rip) + WORD $0x14000524 // b LBB0_397 $5264(%rip) +LBB0_123: + WORD $0x8b2743d1 // add x17, lr, w7, uxtw + WORD $0x8b1c0236 // add x22, x17, x28 +LBB0_124: + WORD $0x92800015 // mov x21, #-1 + WORD $0xb400a4c8 // cbz x8, LBB0_400 $5272(%rip) +LBB0_125: + WORD $0xb400a4b4 // cbz x20, LBB0_400 $5268(%rip) + WORD $0xb400a485 // cbz x5, LBB0_400 $5264(%rip) + WORD $0xcb1e02c7 // sub x7, x22, lr + WORD $0xd10004f1 // sub x17, x7, #1 + WORD $0xeb11011f // cmp x8, x17 + WORD $0x540002a0 // b.eq LBB0_135 $84(%rip) + WORD $0xeb11029f // cmp x20, x17 + WORD $0x54000260 // b.eq LBB0_135 $76(%rip) + WORD $0xeb1100bf // cmp x5, x17 + WORD $0x54000220 // b.eq LBB0_135 $68(%rip) + WORD $0xf1000691 // subs x17, x20, #1 + WORD $0x5400006b // b.lt LBB0_132 $12(%rip) + WORD $0xeb1100bf // cmp x5, x17 + WORD $0x5400a321 // b.ne LBB0_401 $5220(%rip) +LBB0_132: + WORD $0xaa050111 // orr x17, x8, x5 + WORD $0xb7f80071 // tbnz x17, #63, LBB0_134 $12(%rip) + WORD $0xeb05011f // cmp x8, x5 + WORD $0x5400a44a // b.ge LBB0_407 $5256(%rip) +LBB0_134: + WORD $0xd37ffe31 // lsr x17, x17, #63 + WORD $0x52000231 // eor w17, w17, #0x1 + WORD $0xd10004a4 // sub x4, x5, #1 + WORD $0xeb04011f // cmp x8, x4 + WORD $0x1a9f17e8 // cset w8, eq + WORD $0x6a08023f // tst w17, w8 + WORD $0xda8500f5 // csinv x21, x7, x5, eq + WORD $0x14000002 // b LBB0_136 $8(%rip) +LBB0_135: + WORD $0xcb0703f5 // neg x21, x7 +LBB0_136: + WORD $0x52800084 // mov w4, #4 + WORD $0x92f00006 // mov x6, #9223372036854775807 + WORD $0xb20903e7 // mov x7, #36028797027352576 + WORD $0xf2800027 // movk x7, #1 + WORD $0xb7f8a0d5 // tbnz x21, #63, LBB0_400 $5144(%rip) + WORD $0x8b15037c // add x28, x27, x21 + WORD $0x140000bd // b LBB0_170 $756(%rip) +LBB0_138: + WORD $0x54009fe0 // b.eq LBB0_398 $5116(%rip) + WORD $0xf101029f // cmp x20, #64 + WORD $0x54005fa3 // b.lo LBB0_283 $3060(%rip) + WORD $0xd2800005 // mov x5, #0 + WORD $0x92800008 // mov x8, #-1 +LBB0_141: + WORD $0x8b1c0131 // add x17, x9, x28 + WORD $0xad405a37 // ldp q23, q22, [x17] + WORD $0xad415235 // ldp q21, q20, [x17, #32] + WORD $0x6e208ef8 // cmeq.16b v24, v23, v0 + WORD $0x4e221f18 // and.16b v24, v24, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260311 // fmov w17, s24 + WORD $0x6e208ed8 // cmeq.16b v24, v22, v0 + WORD $0x4e221f18 // and.16b v24, v24, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260307 // fmov w7, s24 + WORD $0x6e208eb8 // cmeq.16b v24, v21, v0 + WORD $0x4e221f18 // and.16b v24, v24, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260315 // fmov w21, s24 + WORD $0x6e208e98 // cmeq.16b v24, v20, v0 + WORD $0x4e221f18 // and.16b v24, v24, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260316 // fmov w22, s24 + WORD $0x6e218ef8 // cmeq.16b v24, v23, v1 + WORD $0x4e221f18 // and.16b v24, v24, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260317 // fmov w23, s24 + WORD $0x6e218ed8 // cmeq.16b v24, v22, v1 + WORD $0x4e221f18 // and.16b v24, v24, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260318 // fmov w24, s24 + WORD $0x6e218eb8 // cmeq.16b v24, v21, v1 + WORD $0x4e221f18 // and.16b v24, v24, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260319 // fmov w25, s24 + WORD $0x6e218e98 // cmeq.16b v24, v20, v1 + WORD $0x4e221f18 // and.16b v24, v24, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e26031a // fmov w26, s24 + WORD $0xd3607eb5 // lsl x21, x21, #32 + WORD $0xaa16c2b5 // orr x21, x21, x22, lsl #48 + WORD $0x53103ce7 // lsl w7, w7, #16 + WORD $0xaa0702a7 // orr x7, x21, x7 + WORD $0xaa1100e7 // orr x7, x7, x17 + WORD $0xd3607f31 // lsl x17, x25, #32 + WORD $0xaa1ac231 // orr x17, x17, x26, lsl #48 + WORD $0x53103f15 // lsl w21, w24, #16 + WORD $0xaa150231 // orr x17, x17, x21 + WORD $0xaa170231 // orr x17, x17, x23 + WORD $0xb5000451 // cbnz x17, LBB0_146 $136(%rip) + WORD $0xb50004c5 // cbnz x5, LBB0_147 $152(%rip) +LBB0_143: + WORD $0x6e373497 // cmhi.16b v23, v4, v23 + WORD $0x4e221ef7 // and.16b v23, v23, v2 + WORD $0x4e0302f7 // tbl.16b v23, { v23 }, v3 + WORD $0x4e71baf7 // addv.8h h23, v23 + WORD $0x1e2602f1 // fmov w17, s23 + WORD $0x6e363496 // cmhi.16b v22, v4, v22 + WORD $0x4e221ed6 // and.16b v22, v22, v2 + WORD $0x4e0302d6 // tbl.16b v22, { v22 }, v3 + WORD $0x4e71bad6 // addv.8h h22, v22 + WORD $0x1e2602d5 // fmov w21, s22 + WORD $0x6e353495 // cmhi.16b v21, v4, v21 + WORD $0x4e221eb5 // and.16b v21, v21, v2 + WORD $0x4e0302b5 // tbl.16b v21, { v21 }, v3 + WORD $0x4e71bab5 // addv.8h h21, v21 + WORD $0x1e2602b6 // fmov w22, s21 + WORD $0x6e343494 // cmhi.16b v20, v4, v20 + WORD $0x4e221e94 // and.16b v20, v20, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e260297 // fmov w23, s20 + WORD $0xd3607ed6 // lsl x22, x22, #32 + WORD $0xaa17c2d6 // orr x22, x22, x23, lsl #48 + WORD $0x53103eb5 // lsl w21, w21, #16 + WORD $0xaa1502d5 // orr x21, x22, x21 + WORD $0xaa1102b1 // orr x17, x21, x17 + WORD $0xb50002e7 // cbnz x7, LBB0_148 $92(%rip) + WORD $0xb5009671 // cbnz x17, LBB0_404 $4812(%rip) + WORD $0xd1010294 // sub x20, x20, #64 + WORD $0x9101039c // add x28, x28, #64 + WORD $0xf100fe9f // cmp x20, #63 + WORD $0x54fff568 // b.hi LBB0_141 $-340(%rip) + WORD $0x1400027e // b LBB0_276 $2552(%rip) +LBB0_146: + WORD $0xb100051f // cmn x8, #1 + WORD $0xdac00235 // rbit x21, x17 + WORD $0xdac012b5 // clz x21, x21 + WORD $0x8b1c02b5 // add x21, x21, x28 + WORD $0x9a951108 // csel x8, x8, x21, ne +LBB0_147: + WORD $0x8a250235 // bic x21, x17, x5 + WORD $0xaa1504b6 // orr x22, x5, x21, lsl #1 + WORD $0x8a360231 // bic x17, x17, x22 + WORD $0x9201f231 // and x17, x17, #0xaaaaaaaaaaaaaaaa + WORD $0xab150231 // adds x17, x17, x21 + WORD $0x1a9f37e5 // cset w5, hs + WORD $0xd37ffa31 // lsl x17, x17, #1 + WORD $0xd200f231 // eor x17, x17, #0x5555555555555555 + WORD $0x8a160231 // and x17, x17, x22 + WORD $0x8a3100e7 // bic x7, x7, x17 + WORD $0x17ffffd1 // b LBB0_143 $-188(%rip) +LBB0_148: + WORD $0xdac000e5 // rbit x5, x7 + WORD $0xdac010a5 // clz x5, x5 + WORD $0xdac00231 // rbit x17, x17 + WORD $0xdac01231 // clz x17, x17 + WORD $0xeb05023f // cmp x17, x5 + WORD $0x54009d43 // b.lo LBB0_427 $5032(%rip) + WORD $0x8b1c00b1 // add x17, x5, x28 +LBB0_150: + WORD $0x9100063c // add x28, x17, #1 + WORD $0x52800084 // mov w4, #4 + WORD $0x92f00006 // mov x6, #9223372036854775807 + WORD $0xb20903e7 // mov x7, #36028797027352576 + WORD $0xf2800027 // movk x7, #1 + WORD $0xb7f890bc // tbnz x28, #63, LBB0_397 $4628(%rip) +LBB0_151: + WORD $0xf900003c // str x28, [x1] + WORD $0xaa1b03e8 // mov x8, x27 + WORD $0xb27ff7f1 // mov x17, #9223372036854775806 + WORD $0xeb11037f // cmp x27, x17 + WORD $0x54008e48 // b.hi LBB0_394 $4552(%rip) + WORD $0xf9400048 // ldr x8, [x2] + WORD $0xf13ffd1f // cmp x8, #4095 + WORD $0x54008f6c // b.gt LBB0_396 $4588(%rip) + WORD $0x91000511 // add x17, x8, #1 + WORD $0xf9000051 // str x17, [x2] + WORD $0xf8287944 // str x4, [x10, x8, lsl #3] + WORD $0xf9400045 // ldr x5, [x2] + WORD $0xaa0e03e8 // mov x8, x14 + WORD $0xb5ff9f25 // cbnz x5, LBB0_1 $-3100(%rip) + WORD $0x14000468 // b LBB0_394 $4512(%rip) +LBB0_154: + WORD $0x71008abf // cmp w21, #34 + WORD $0x540008c0 // b.eq LBB0_174 $280(%rip) + WORD $0x7100b6bf // cmp w21, #45 + WORD $0x54008c81 // b.ne LBB0_394 $4496(%rip) + WORD $0xf9400408 // ldr x8, [x0, #8] + WORD $0xeb1c0118 // subs x24, x8, x28 + WORD $0x540090c0 // b.eq LBB0_408 $4632(%rip) + WORD $0xb20903e4 // mov x4, #36028797027352576 + WORD $0xf2800024 // movk x4, #1 + WORD $0x8b1c0128 // add x8, x9, x28 + WORD $0x39400111 // ldrb w17, [x8] + WORD $0x7100c23f // cmp w17, #48 + WORD $0x54002281 // b.ne LBB0_198 $1104(%rip) + WORD $0xf100071f // cmp x24, #1 + WORD $0x54002141 // b.ne LBB0_196 $1064(%rip) +LBB0_159: + WORD $0x52800027 // mov w7, #1 + WORD $0x140001ac // b LBB0_244 $1712(%rip) +LBB0_160: + WORD $0x71016ebf // cmp w21, #91 + WORD $0x54000540 // b.eq LBB0_172 $168(%rip) + WORD $0x71019abf // cmp w21, #102 + WORD $0x54008a61 // b.ne LBB0_394 $4428(%rip) + WORD $0xf9400408 // ldr x8, [x0, #8] + WORD $0xd1001111 // sub x17, x8, #4 + WORD $0xeb11037f // cmp x27, x17 + WORD $0x54008de2 // b.hs LBB0_406 $4540(%rip) + WORD $0xb87c6928 // ldr w8, [x9, x28] + WORD $0x528d8c31 // mov w17, #27745 + WORD $0x72acae71 // movk w17, #25971, lsl #16 + WORD $0x6b11011f // cmp w8, w17 + WORD $0x54009381 // b.ne LBB0_420 $4720(%rip) + WORD $0x9100177c // add x28, x27, #5 + WORD $0x14000015 // b LBB0_170 $84(%rip) +LBB0_165: + WORD $0xf9400408 // ldr x8, [x0, #8] + WORD $0xd1000d11 // sub x17, x8, #3 + WORD $0xeb11037f // cmp x27, x17 + WORD $0x54008c82 // b.hs LBB0_406 $4496(%rip) + WORD $0xb87b6928 // ldr w8, [x9, x27] + WORD $0x528e4e91 // mov w17, #29300 + WORD $0x72acaeb1 // movk w17, #25973, lsl #16 + WORD $0x6b11011f // cmp w8, w17 + WORD $0x54000160 // b.eq LBB0_169 $44(%rip) + WORD $0x1400047b // b LBB0_415 $4588(%rip) +LBB0_167: + WORD $0xf9400408 // ldr x8, [x0, #8] + WORD $0xd1000d11 // sub x17, x8, #3 + WORD $0xeb11037f // cmp x27, x17 + WORD $0x54008b42 // b.hs LBB0_406 $4456(%rip) + WORD $0xb87b6928 // ldr w8, [x9, x27] + WORD $0x528eadd1 // mov w17, #30062 + WORD $0x72ad8d91 // movk w17, #27756, lsl #16 + WORD $0x6b11011f // cmp w8, w17 + WORD $0x54008bc1 // b.ne LBB0_411 $4472(%rip) +LBB0_169: + WORD $0x9100137c // add x28, x27, #4 +LBB0_170: + WORD $0xf900003c // str x28, [x1] + WORD $0xaa1b03e8 // mov x8, x27 + WORD $0xeb06037f // cmp x27, x6 + WORD $0x54008602 // b.hs LBB0_394 $4288(%rip) +LBB0_171: + WORD $0xf9400045 // ldr x5, [x2] + WORD $0xaa0e03e8 // mov x8, x14 + WORD $0xb5ff97a5 // cbnz x5, LBB0_1 $-3340(%rip) + WORD $0x1400042c // b LBB0_394 $4272(%rip) +LBB0_172: + WORD $0xf9400048 // ldr x8, [x2] + WORD $0xf13ffd1f // cmp x8, #4095 + WORD $0x540086ac // b.gt LBB0_396 $4308(%rip) + WORD $0x91000511 // add x17, x8, #1 + WORD $0xf9000051 // str x17, [x2] + WORD $0x528000b1 // mov w17, #5 + WORD $0xf8287951 // str x17, [x10, x8, lsl #3] + WORD $0xf9400045 // ldr x5, [x2] + WORD $0xaa0e03e8 // mov x8, x14 + WORD $0xb5ff9645 // cbnz x5, LBB0_1 $-3384(%rip) + WORD $0x14000421 // b LBB0_394 $4228(%rip) +LBB0_174: + WORD $0x3200f3f8 // mov w24, #1431655765 + WORD $0xf9400408 // ldr x8, [x0, #8] + WORD $0xeb1c0114 // subs x20, x8, x28 + WORD $0x37280b43 // tbnz w3, #5, LBB0_185 $360(%rip) + WORD $0x54008580 // b.eq LBB0_398 $4272(%rip) + WORD $0xf101029f // cmp x20, #64 + WORD $0x540051e3 // b.lo LBB0_307 $2620(%rip) + WORD $0xd2800005 // mov x5, #0 + WORD $0x92800008 // mov x8, #-1 +LBB0_178: + WORD $0x8b1c0131 // add x17, x9, x28 + WORD $0xad405634 // ldp q20, q21, [x17] + WORD $0xad415e36 // ldp q22, q23, [x17, #32] + WORD $0x6e208e98 // cmeq.16b v24, v20, v0 + WORD $0x6e208eb9 // cmeq.16b v25, v21, v0 + WORD $0x6e208eda // cmeq.16b v26, v22, v0 + WORD $0x6e208efb // cmeq.16b v27, v23, v0 + WORD $0x6e218e94 // cmeq.16b v20, v20, v1 + WORD $0x6e218eb5 // cmeq.16b v21, v21, v1 + WORD $0x6e218ed6 // cmeq.16b v22, v22, v1 + WORD $0x6e218ef7 // cmeq.16b v23, v23, v1 + WORD $0x4e221f18 // and.16b v24, v24, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260311 // fmov w17, s24 + WORD $0x4e221f38 // and.16b v24, v25, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260304 // fmov w4, s24 + WORD $0x4e221f58 // and.16b v24, v26, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260306 // fmov w6, s24 + WORD $0x4e221f78 // and.16b v24, v27, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260307 // fmov w7, s24 + WORD $0x4e221e94 // and.16b v20, v20, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e260293 // fmov w19, s20 + WORD $0x4e221eb4 // and.16b v20, v21, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e260295 // fmov w21, s20 + WORD $0x4e221ed4 // and.16b v20, v22, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e260296 // fmov w22, s20 + WORD $0x4e221ef4 // and.16b v20, v23, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e260297 // fmov w23, s20 + WORD $0xd3607cc6 // lsl x6, x6, #32 + WORD $0xaa07c0c6 // orr x6, x6, x7, lsl #48 + WORD $0x53103c84 // lsl w4, w4, #16 + WORD $0xaa0400c4 // orr x4, x6, x4 + WORD $0xaa110087 // orr x7, x4, x17 + WORD $0xd3607ed1 // lsl x17, x22, #32 + WORD $0xaa17c231 // orr x17, x17, x23, lsl #48 + WORD $0x53103ea4 // lsl w4, w21, #16 + WORD $0xaa040231 // orr x17, x17, x4 + WORD $0xaa130231 // orr x17, x17, x19 + WORD $0xb5000131 // cbnz x17, LBB0_182 $36(%rip) + WORD $0xb50001a5 // cbnz x5, LBB0_183 $52(%rip) + WORD $0x52800073 // mov w19, #3 + WORD $0xb5ffa2c7 // cbnz x7, LBB0_38 $-2984(%rip) +LBB0_181: + WORD $0xd1010294 // sub x20, x20, #64 + WORD $0x9101039c // add x28, x28, #64 + WORD $0xf100fe9f // cmp x20, #63 + WORD $0x54fff888 // b.hi LBB0_178 $-240(%rip) + WORD $0x14000247 // b LBB0_304 $2332(%rip) +LBB0_182: + WORD $0xb100051f // cmn x8, #1 + WORD $0xdac00224 // rbit x4, x17 + WORD $0xdac01084 // clz x4, x4 + WORD $0x8b1c0084 // add x4, x4, x28 + WORD $0x9a841108 // csel x8, x8, x4, ne +LBB0_183: + WORD $0x8a250224 // bic x4, x17, x5 + WORD $0xaa0404a6 // orr x6, x5, x4, lsl #1 + WORD $0x8a260231 // bic x17, x17, x6 + WORD $0x9201f231 // and x17, x17, #0xaaaaaaaaaaaaaaaa + WORD $0xab040231 // adds x17, x17, x4 + WORD $0x1a9f37e5 // cset w5, hs + WORD $0xd37ffa31 // lsl x17, x17, #1 + WORD $0xd200f231 // eor x17, x17, #0x5555555555555555 + WORD $0x8a060231 // and x17, x17, x6 + WORD $0x8a3100e7 // bic x7, x7, x17 + WORD $0x52800073 // mov w19, #3 + WORD $0xb4fffd67 // cbz x7, LBB0_181 $-84(%rip) + WORD $0x17fffcff // b LBB0_38 $-3076(%rip) +LBB0_184: + WORD $0xaa1803f6 // mov x22, x24 + WORD $0x92800015 // mov x21, #-1 + WORD $0xb5ffd688 // cbnz x8, LBB0_125 $-1328(%rip) + WORD $0x140003d8 // b LBB0_400 $3936(%rip) +LBB0_185: + WORD $0x54007a60 // b.eq LBB0_398 $3916(%rip) + WORD $0xf101029f // cmp x20, #64 + WORD $0x54004b43 // b.lo LBB0_313 $2408(%rip) + WORD $0xd2800005 // mov x5, #0 + WORD $0x92800008 // mov x8, #-1 +LBB0_188: + WORD $0x8b1c0131 // add x17, x9, x28 + WORD $0xad405a37 // ldp q23, q22, [x17] + WORD $0xad415235 // ldp q21, q20, [x17, #32] + WORD $0x6e208ef8 // cmeq.16b v24, v23, v0 + WORD $0x4e221f18 // and.16b v24, v24, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260311 // fmov w17, s24 + WORD $0x6e208ed8 // cmeq.16b v24, v22, v0 + WORD $0x4e221f18 // and.16b v24, v24, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260304 // fmov w4, s24 + WORD $0x6e208eb8 // cmeq.16b v24, v21, v0 + WORD $0x4e221f18 // and.16b v24, v24, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260306 // fmov w6, s24 + WORD $0x6e208e98 // cmeq.16b v24, v20, v0 + WORD $0x4e221f18 // and.16b v24, v24, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260307 // fmov w7, s24 + WORD $0x6e218ef8 // cmeq.16b v24, v23, v1 + WORD $0x4e221f18 // and.16b v24, v24, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260313 // fmov w19, s24 + WORD $0x6e218ed8 // cmeq.16b v24, v22, v1 + WORD $0x4e221f18 // and.16b v24, v24, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260315 // fmov w21, s24 + WORD $0x6e218eb8 // cmeq.16b v24, v21, v1 + WORD $0x4e221f18 // and.16b v24, v24, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260316 // fmov w22, s24 + WORD $0x6e218e98 // cmeq.16b v24, v20, v1 + WORD $0x4e221f18 // and.16b v24, v24, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260317 // fmov w23, s24 + WORD $0xd3607cc6 // lsl x6, x6, #32 + WORD $0xaa07c0c6 // orr x6, x6, x7, lsl #48 + WORD $0x53103c84 // lsl w4, w4, #16 + WORD $0xaa0400c4 // orr x4, x6, x4 + WORD $0xaa110087 // orr x7, x4, x17 + WORD $0xd3607ed1 // lsl x17, x22, #32 + WORD $0xaa17c231 // orr x17, x17, x23, lsl #48 + WORD $0x53103ea4 // lsl w4, w21, #16 + WORD $0xaa040231 // orr x17, x17, x4 + WORD $0xaa130231 // orr x17, x17, x19 + WORD $0xb5000451 // cbnz x17, LBB0_193 $136(%rip) + WORD $0xb50004c5 // cbnz x5, LBB0_194 $152(%rip) +LBB0_190: + WORD $0x6e373497 // cmhi.16b v23, v4, v23 + WORD $0x4e221ef7 // and.16b v23, v23, v2 + WORD $0x4e0302f7 // tbl.16b v23, { v23 }, v3 + WORD $0x4e71baf7 // addv.8h h23, v23 + WORD $0x1e2602f1 // fmov w17, s23 + WORD $0x6e363496 // cmhi.16b v22, v4, v22 + WORD $0x4e221ed6 // and.16b v22, v22, v2 + WORD $0x4e0302d6 // tbl.16b v22, { v22 }, v3 + WORD $0x4e71bad6 // addv.8h h22, v22 + WORD $0x1e2602c4 // fmov w4, s22 + WORD $0x6e353495 // cmhi.16b v21, v4, v21 + WORD $0x4e221eb5 // and.16b v21, v21, v2 + WORD $0x4e0302b5 // tbl.16b v21, { v21 }, v3 + WORD $0x4e71bab5 // addv.8h h21, v21 + WORD $0x1e2602a6 // fmov w6, s21 + WORD $0x6e343494 // cmhi.16b v20, v4, v20 + WORD $0x4e221e94 // and.16b v20, v20, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e260293 // fmov w19, s20 + WORD $0xd3607cc6 // lsl x6, x6, #32 + WORD $0xaa13c0c6 // orr x6, x6, x19, lsl #48 + WORD $0x53103c84 // lsl w4, w4, #16 + WORD $0xaa0400c4 // orr x4, x6, x4 + WORD $0xaa110091 // orr x17, x4, x17 + WORD $0xb50002e7 // cbnz x7, LBB0_195 $92(%rip) + WORD $0xb50070f1 // cbnz x17, LBB0_404 $3612(%rip) + WORD $0xd1010294 // sub x20, x20, #64 + WORD $0x9101039c // add x28, x28, #64 + WORD $0xf100fe9f // cmp x20, #63 + WORD $0x54fff568 // b.hi LBB0_188 $-340(%rip) + WORD $0x140001d7 // b LBB0_305 $1884(%rip) +LBB0_193: + WORD $0xb100051f // cmn x8, #1 + WORD $0xdac00224 // rbit x4, x17 + WORD $0xdac01084 // clz x4, x4 + WORD $0x8b1c0084 // add x4, x4, x28 + WORD $0x9a841108 // csel x8, x8, x4, ne +LBB0_194: + WORD $0x8a250224 // bic x4, x17, x5 + WORD $0xaa0404a6 // orr x6, x5, x4, lsl #1 + WORD $0x8a260231 // bic x17, x17, x6 + WORD $0x9201f231 // and x17, x17, #0xaaaaaaaaaaaaaaaa + WORD $0xab040231 // adds x17, x17, x4 + WORD $0x1a9f37e5 // cset w5, hs + WORD $0xd37ffa31 // lsl x17, x17, #1 + WORD $0xd200f231 // eor x17, x17, #0x5555555555555555 + WORD $0x8a060231 // and x17, x17, x6 + WORD $0x8a3100e7 // bic x7, x7, x17 + WORD $0x17ffffd1 // b LBB0_190 $-188(%rip) +LBB0_195: + WORD $0xdac000e4 // rbit x4, x7 + WORD $0xdac01085 // clz x5, x4 + WORD $0xdac00231 // rbit x17, x17 + WORD $0xdac01231 // clz x17, x17 + WORD $0xeb05023f // cmp x17, x5 + WORD $0x52800073 // mov w19, #3 + WORD $0x54ffc682 // b.hs LBB0_120 $-1840(%rip) + WORD $0x140003bc // b LBB0_427 $3824(%rip) +LBB0_196: + WORD $0x39400511 // ldrb w17, [x8, #1] + WORD $0x5100ba31 // sub w17, w17, #46 + WORD $0x7100de3f // cmp w17, #55 + WORD $0x54ffde88 // b.hi LBB0_159 $-1072(%rip) + WORD $0x9ad121f1 // lsl x17, x15, x17 + WORD $0x52800027 // mov w7, #1 + WORD $0xea04023f // tst x17, x4 + WORD $0x540013a0 // b.eq LBB0_244 $628(%rip) +LBB0_198: + WORD $0xf100431f // cmp x24, #16 + WORD $0x54004803 // b.lo LBB0_335 $2304(%rip) + WORD $0xd2800017 // mov x23, #0 + WORD $0xd2800007 // mov x7, #0 + WORD $0x9280001e // mov lr, #-1 + WORD $0x92800005 // mov x5, #-1 + WORD $0x92800014 // mov x20, #-1 +LBB0_200: + WORD $0x3ce76914 // ldr q20, [x8, x7] + WORD $0x6e258e95 // cmeq.16b v21, v20, v5 + WORD $0x6e268e96 // cmeq.16b v22, v20, v6 + WORD $0x6e278e97 // cmeq.16b v23, v20, v7 + WORD $0x4e308698 // add.16b v24, v20, v16 + WORD $0x6e383638 // cmhi.16b v24, v17, v24 + WORD $0x4e321e94 // and.16b v20, v20, v18 + WORD $0x6e338e94 // cmeq.16b v20, v20, v19 + WORD $0x4eb71ed6 // orr.16b v22, v22, v23 + WORD $0x4eb51f17 // orr.16b v23, v24, v21 + WORD $0x4eb61e98 // orr.16b v24, v20, v22 + WORD $0x4eb81ef7 // orr.16b v23, v23, v24 + WORD $0x4e221eb5 // and.16b v21, v21, v2 + WORD $0x4e0302b5 // tbl.16b v21, { v21 }, v3 + WORD $0x4e71bab5 // addv.8h h21, v21 + WORD $0x1e2602b1 // fmov w17, s21 + WORD $0x4e221e94 // and.16b v20, v20, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e260284 // fmov w4, s20 + WORD $0x4e221ed4 // and.16b v20, v22, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e260286 // fmov w6, s20 + WORD $0x4e221ef4 // and.16b v20, v23, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e260295 // fmov w21, s20 + WORD $0x2a3503f5 // mvn w21, w21 + WORD $0x32103eb5 // orr w21, w21, #0xffff0000 + WORD $0x5ac002b5 // rbit w21, w21 + WORD $0x5ac012b5 // clz w21, w21 + WORD $0x12800013 // mov w19, #-1 + WORD $0x1ad52276 // lsl w22, w19, w21 + WORD $0x0a360239 // bic w25, w17, w22 + WORD $0x0a360093 // bic w19, w4, w22 + WORD $0x0a3600d6 // bic w22, w6, w22 + WORD $0x710042bf // cmp w21, #16 + WORD $0x1a99023a // csel w26, w17, w25, eq + WORD $0x1a930091 // csel w17, w4, w19, eq + WORD $0x1a9600d6 // csel w22, w6, w22, eq + WORD $0x51000744 // sub w4, w26, #1 + WORD $0x6a1a0099 // ands w25, w4, w26 + WORD $0x54002f81 // b.ne LBB0_303 $1520(%rip) + WORD $0x51000624 // sub w4, w17, #1 + WORD $0x6a110099 // ands w25, w4, w17 + WORD $0x54002f21 // b.ne LBB0_303 $1508(%rip) + WORD $0x510006c4 // sub w4, w22, #1 + WORD $0x6a160099 // ands w25, w4, w22 + WORD $0x54002ec1 // b.ne LBB0_303 $1496(%rip) + WORD $0x340000da // cbz w26, LBB0_206 $24(%rip) + WORD $0x5ac00344 // rbit w4, w26 + WORD $0x5ac0109a // clz w26, w4 + WORD $0xb100069f // cmn x20, #1 + WORD $0x54004001 // b.ne LBB0_334 $2048(%rip) + WORD $0x8b1a00f4 // add x20, x7, x26 +LBB0_206: + WORD $0x340000d1 // cbz w17, LBB0_209 $24(%rip) + WORD $0x5ac00231 // rbit w17, w17 + WORD $0x5ac01231 // clz w17, w17 + WORD $0xb10004bf // cmn x5, #1 + WORD $0x54002ea1 // b.ne LBB0_306 $1492(%rip) + WORD $0x8b1100e5 // add x5, x7, x17 +LBB0_209: + WORD $0x340000d6 // cbz w22, LBB0_212 $24(%rip) + WORD $0x5ac002d1 // rbit w17, w22 + WORD $0x5ac01231 // clz w17, w17 + WORD $0xb10007df // cmn lr, #1 + WORD $0x54002de1 // b.ne LBB0_306 $1468(%rip) + WORD $0x8b1100fe // add lr, x7, x17 +LBB0_212: + WORD $0x710042bf // cmp w21, #16 + WORD $0x540005e1 // b.ne LBB0_230 $188(%rip) + WORD $0x910040e7 // add x7, x7, #16 + WORD $0xd10042f7 // sub x23, x23, #16 + WORD $0x8b170315 // add x21, x24, x23 + WORD $0xf1003ebf // cmp x21, #15 + WORD $0x54fff6c8 // b.hi LBB0_200 $-296(%rip) + WORD $0x8b070116 // add x22, x8, x7 + WORD $0xeb07031f // cmp x24, x7 + WORD $0x52800073 // mov w19, #3 + WORD $0x54000520 // b.eq LBB0_231 $164(%rip) +LBB0_215: + WORD $0x8b1502c6 // add x6, x22, x21 + WORD $0x8b160191 // add x17, x12, x22 + WORD $0xcb1b0238 // sub x24, x17, x27 + WORD $0xaa1603f7 // mov x23, x22 + WORD $0x14000008 // b LBB0_219 $32(%rip) +LBB0_216: + WORD $0xb10007df // cmn lr, #1 + WORD $0x54002a01 // b.ne LBB0_302 $1344(%rip) + WORD $0xd100071e // sub lr, x24, #1 +LBB0_218: + WORD $0x91000718 // add x24, x24, #1 + WORD $0xaa1703f6 // mov x22, x23 + WORD $0xd10006b5 // sub x21, x21, #1 + WORD $0xb4000a35 // cbz x21, LBB0_249 $324(%rip) +LBB0_219: + WORD $0x384016f1 // ldrb w17, [x23], #1 + WORD $0x5100c224 // sub w4, w17, #48 + WORD $0x7100289f // cmp w4, #10 + WORD $0x54ffff23 // b.lo LBB0_218 $-28(%rip) + WORD $0x7100b63f // cmp w17, #45 + WORD $0x5400016d // b.le LBB0_226 $44(%rip) + WORD $0x7101963f // cmp w17, #101 + WORD $0x540001c0 // b.eq LBB0_228 $56(%rip) + WORD $0x7101163f // cmp w17, #69 + WORD $0x54000180 // b.eq LBB0_228 $48(%rip) + WORD $0x7100ba3f // cmp w17, #46 + WORD $0x54000221 // b.ne LBB0_231 $68(%rip) + WORD $0xb100069f // cmn x20, #1 + WORD $0x540027a1 // b.ne LBB0_302 $1268(%rip) + WORD $0xd1000714 // sub x20, x24, #1 + WORD $0x17ffffed // b LBB0_218 $-76(%rip) +LBB0_226: + WORD $0x7100ae3f // cmp w17, #43 + WORD $0x54fffd00 // b.eq LBB0_216 $-96(%rip) + WORD $0x7100b63f // cmp w17, #45 + WORD $0x54fffcc0 // b.eq LBB0_216 $-104(%rip) + WORD $0x14000008 // b LBB0_231 $32(%rip) +LBB0_228: + WORD $0xb10004bf // cmn x5, #1 + WORD $0x54002681 // b.ne LBB0_302 $1232(%rip) + WORD $0xd1000705 // sub x5, x24, #1 + WORD $0x17ffffe4 // b LBB0_218 $-112(%rip) +LBB0_230: + WORD $0x8b354111 // add x17, x8, w21, uxtw + WORD $0x8b070236 // add x22, x17, x7 + WORD $0x52800073 // mov w19, #3 +LBB0_231: + WORD $0x92800007 // mov x7, #-1 + WORD $0xb4005dd4 // cbz x20, LBB0_409 $3000(%rip) +LBB0_232: + WORD $0xb4005dbe // cbz lr, LBB0_409 $2996(%rip) + WORD $0xb4005d85 // cbz x5, LBB0_409 $2992(%rip) + WORD $0xcb0802c8 // sub x8, x22, x8 + WORD $0xd1000511 // sub x17, x8, #1 + WORD $0xeb11029f // cmp x20, x17 + WORD $0x540002a0 // b.eq LBB0_242 $84(%rip) + WORD $0xeb1103df // cmp lr, x17 + WORD $0x54000260 // b.eq LBB0_242 $76(%rip) + WORD $0xeb1100bf // cmp x5, x17 + WORD $0x54000220 // b.eq LBB0_242 $68(%rip) + WORD $0xf10007d1 // subs x17, lr, #1 + WORD $0x5400006b // b.lt LBB0_239 $12(%rip) + WORD $0xeb1100bf // cmp x5, x17 + WORD $0x54005c21 // b.ne LBB0_410 $2948(%rip) +LBB0_239: + WORD $0xaa050291 // orr x17, x20, x5 + WORD $0xb7f80071 // tbnz x17, #63, LBB0_241 $12(%rip) + WORD $0xeb05029f // cmp x20, x5 + WORD $0x540063ea // b.ge LBB0_426 $3196(%rip) +LBB0_241: + WORD $0xd37ffe31 // lsr x17, x17, #63 + WORD $0x52000231 // eor w17, w17, #0x1 + WORD $0xd10004a4 // sub x4, x5, #1 + WORD $0xeb04029f // cmp x20, x4 + WORD $0x1a9f17e4 // cset w4, eq + WORD $0x6a04023f // tst w17, w4 + WORD $0xda850107 // csinv x7, x8, x5, eq + WORD $0x14000002 // b LBB0_243 $8(%rip) +LBB0_242: + WORD $0xcb0803e7 // neg x7, x8 +LBB0_243: + WORD $0xb7f85a47 // tbnz x7, #63, LBB0_409 $2888(%rip) +LBB0_244: + WORD $0x8b1c00fc // add x28, x7, x28 + WORD $0xf900003c // str x28, [x1] + WORD $0xaa1b03e8 // mov x8, x27 + WORD $0x92f00006 // mov x6, #9223372036854775807 + WORD $0xeb06037f // cmp x27, x6 + WORD $0x52800084 // mov w4, #4 + WORD $0xb20903e7 // mov x7, #36028797027352576 + WORD $0xf2800027 // movk x7, #1 + WORD $0x54ffce83 // b.lo LBB0_171 $-1584(%rip) + WORD $0x140002a2 // b LBB0_394 $2696(%rip) +LBB0_245: + WORD $0x5ac00328 // rbit w8, w25 + WORD $0x5ac01108 // clz w8, w8 + WORD $0xaa3c03f1 // mvn x17, x28 + WORD $0xcb080235 // sub x21, x17, x8 + WORD $0x17fffda7 // b LBB0_136 $-2404(%rip) +LBB0_246: + WORD $0xaa3c03e8 // mvn x8, x28 + WORD $0xcb314115 // sub x21, x8, w17, uxtw + WORD $0x17fffda4 // b LBB0_136 $-2416(%rip) +LBB0_247: + WORD $0x8b1c013c // add x28, x9, x28 + WORD $0x1400000a // b LBB0_251 $40(%rip) +LBB0_248: + WORD $0x8b1c013c // add x28, x9, x28 + WORD $0x1400002c // b LBB0_257 $176(%rip) +LBB0_249: + WORD $0xaa0603f6 // mov x22, x6 + WORD $0x92800007 // mov x7, #-1 + WORD $0xb5fff994 // cbnz x20, LBB0_232 $-208(%rip) + WORD $0x140002b8 // b LBB0_409 $2784(%rip) +LBB0_250: + WORD $0xd2800005 // mov x5, #0 + WORD $0x8b1c013c // add x28, x9, x28 + WORD $0x92800008 // mov x8, #-1 +LBB0_251: + WORD $0xf1008287 // subs x7, x20, #32 + WORD $0x54003463 // b.lo LBB0_339 $1676(%rip) + WORD $0xad405794 // ldp q20, q21, [x28] + WORD $0x6e208e96 // cmeq.16b v22, v20, v0 + WORD $0x6e208eb7 // cmeq.16b v23, v21, v0 + WORD $0x6e218e94 // cmeq.16b v20, v20, v1 + WORD $0x6e218eb5 // cmeq.16b v21, v21, v1 + WORD $0x4e221ed6 // and.16b v22, v22, v2 + WORD $0x4e0302d6 // tbl.16b v22, { v22 }, v3 + WORD $0x4e71bad6 // addv.8h h22, v22 + WORD $0x1e2602d4 // fmov w20, s22 + WORD $0x4e221ef6 // and.16b v22, v23, v2 + WORD $0x4e0302d6 // tbl.16b v22, { v22 }, v3 + WORD $0x4e71bad6 // addv.8h h22, v22 + WORD $0x1e2602d1 // fmov w17, s22 + WORD $0x4e221e94 // and.16b v20, v20, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e260295 // fmov w21, s20 + WORD $0x4e221eb4 // and.16b v20, v21, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e260296 // fmov w22, s20 + WORD $0x33103e34 // bfi w20, w17, #16, #16 + WORD $0x33103ed5 // bfi w21, w22, #16, #16 + WORD $0x35002ed5 // cbnz w21, LBB0_336 $1496(%rip) + WORD $0xb5002f65 // cbnz x5, LBB0_337 $1516(%rip) + WORD $0xb40030f4 // cbz x20, LBB0_338 $1564(%rip) +LBB0_255: + WORD $0xdac00291 // rbit x17, x20 + WORD $0xdac01231 // clz x17, x17 + WORD $0xcb090385 // sub x5, x28, x9 + WORD $0x8b1100b1 // add x17, x5, x17 + WORD $0x17fffd52 // b LBB0_121 $-2744(%rip) +LBB0_256: + WORD $0xd2800005 // mov x5, #0 + WORD $0x8b1c013c // add x28, x9, x28 + WORD $0x92800008 // mov x8, #-1 +LBB0_257: + WORD $0xf1008295 // subs x21, x20, #32 + WORD $0x54000643 // b.lo LBB0_265 $200(%rip) + WORD $0xad405395 // ldp q21, q20, [x28] + WORD $0x6e208eb6 // cmeq.16b v22, v21, v0 + WORD $0x4e221ed6 // and.16b v22, v22, v2 + WORD $0x4e0302d6 // tbl.16b v22, { v22 }, v3 + WORD $0x4e71bad6 // addv.8h h22, v22 + WORD $0x1e2602d4 // fmov w20, s22 + WORD $0x6e208e96 // cmeq.16b v22, v20, v0 + WORD $0x4e221ed6 // and.16b v22, v22, v2 + WORD $0x4e0302d6 // tbl.16b v22, { v22 }, v3 + WORD $0x4e71bad6 // addv.8h h22, v22 + WORD $0x1e2602d1 // fmov w17, s22 + WORD $0x6e218eb6 // cmeq.16b v22, v21, v1 + WORD $0x4e221ed6 // and.16b v22, v22, v2 + WORD $0x4e0302d6 // tbl.16b v22, { v22 }, v3 + WORD $0x4e71bad6 // addv.8h h22, v22 + WORD $0x1e2602c7 // fmov w7, s22 + WORD $0x6e218e96 // cmeq.16b v22, v20, v1 + WORD $0x4e221ed6 // and.16b v22, v22, v2 + WORD $0x4e0302d6 // tbl.16b v22, { v22 }, v3 + WORD $0x4e71bad6 // addv.8h h22, v22 + WORD $0x1e2602d6 // fmov w22, s22 + WORD $0x33103e34 // bfi w20, w17, #16, #16 + WORD $0x33103ec7 // bfi w7, w22, #16, #16 + WORD $0x35003047 // cbnz w7, LBB0_349 $1544(%rip) + WORD $0xb50030e5 // cbnz x5, LBB0_350 $1564(%rip) +LBB0_260: + WORD $0x6e353495 // cmhi.16b v21, v4, v21 + WORD $0x4e221eb5 // and.16b v21, v21, v2 + WORD $0x4e0302b5 // tbl.16b v21, { v21 }, v3 + WORD $0x4e71bab5 // addv.8h h21, v21 + WORD $0x1e2602a7 // fmov w7, s21 + WORD $0x6e343494 // cmhi.16b v20, v4, v20 + WORD $0x4e221e94 // and.16b v20, v20, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e260291 // fmov w17, s20 + WORD $0x33103e27 // bfi w7, w17, #16, #16 + WORD $0xdac000f1 // rbit x17, x7 + WORD $0xdac01231 // clz x17, x17 + WORD $0xb4000114 // cbz x20, LBB0_263 $32(%rip) + WORD $0xdac00285 // rbit x5, x20 + WORD $0xdac010a7 // clz x7, x5 + WORD $0xcb090385 // sub x5, x28, x9 + WORD $0xeb07023f // cmp x17, x7 + WORD $0x54005563 // b.lo LBB0_428 $2732(%rip) + WORD $0x8b0700b1 // add x17, x5, x7 + WORD $0x17fffd1f // b LBB0_121 $-2948(%rip) +LBB0_263: + WORD $0x35005547 // cbnz w7, LBB0_429 $2728(%rip) + WORD $0x9100839c // add x28, x28, #32 + WORD $0xaa1503f4 // mov x20, x21 +LBB0_265: + WORD $0xb5003965 // cbnz x5, LBB0_368 $1836(%rip) + WORD $0xb40048d4 // cbz x20, LBB0_398 $2328(%rip) +LBB0_267: + WORD $0xd2800005 // mov x5, #0 +LBB0_268: + WORD $0x38656b91 // ldrb w17, [x28, x5] + WORD $0x71008a3f // cmp w17, #34 + WORD $0x540002e0 // b.eq LBB0_274 $92(%rip) + WORD $0x7101723f // cmp w17, #92 + WORD $0x540000e0 // b.eq LBB0_272 $28(%rip) + WORD $0x71007e3f // cmp w17, #31 + WORD $0x54005429 // b.ls LBB0_430 $2692(%rip) + WORD $0x910004a5 // add x5, x5, #1 + WORD $0xeb05029f // cmp x20, x5 + WORD $0x54fffee1 // b.ne LBB0_268 $-36(%rip) + WORD $0x1400023a // b LBB0_398 $2280(%rip) +LBB0_272: + WORD $0xd1000691 // sub x17, x20, #1 + WORD $0xeb05023f // cmp x17, x5 + WORD $0x540046e0 // b.eq LBB0_398 $2268(%rip) + WORD $0x8b050391 // add x17, x28, x5 + WORD $0x8b0c0227 // add x7, x17, x12 + WORD $0xb100051f // cmn x8, #1 + WORD $0x9a8800e8 // csel x8, x7, x8, eq + WORD $0x91000a3c // add x28, x17, #2 + WORD $0xcb050291 // sub x17, x20, x5 + WORD $0xd1000a87 // sub x7, x20, #2 + WORD $0xd1000a34 // sub x20, x17, #2 + WORD $0xeb0500ff // cmp x7, x5 + WORD $0x54fffd01 // b.ne LBB0_267 $-96(%rip) + WORD $0x1400022c // b LBB0_398 $2224(%rip) +LBB0_274: + WORD $0x8b1c0191 // add x17, x12, x28 + WORD $0x8b050231 // add x17, x17, x5 + WORD $0x17fffcfd // b LBB0_121 $-3084(%rip) +LBB0_275: + WORD $0x8b1c013c // add x28, x9, x28 + WORD $0x14000006 // b LBB0_278 $24(%rip) +LBB0_276: + WORD $0x8b1c013c // add x28, x9, x28 + WORD $0x14000028 // b LBB0_284 $160(%rip) +LBB0_277: + WORD $0xd2800005 // mov x5, #0 + WORD $0x8b1c013c // add x28, x9, x28 + WORD $0x92800008 // mov x8, #-1 +LBB0_278: + WORD $0xf1008287 // subs x7, x20, #32 + WORD $0x54002d23 // b.lo LBB0_354 $1444(%rip) + WORD $0xad405794 // ldp q20, q21, [x28] + WORD $0x6e208e96 // cmeq.16b v22, v20, v0 + WORD $0x6e208eb7 // cmeq.16b v23, v21, v0 + WORD $0x6e218e94 // cmeq.16b v20, v20, v1 + WORD $0x6e218eb5 // cmeq.16b v21, v21, v1 + WORD $0x4e221ed6 // and.16b v22, v22, v2 + WORD $0x4e0302d6 // tbl.16b v22, { v22 }, v3 + WORD $0x4e71bad6 // addv.8h h22, v22 + WORD $0x1e2602d4 // fmov w20, s22 + WORD $0x4e221ef6 // and.16b v22, v23, v2 + WORD $0x4e0302d6 // tbl.16b v22, { v22 }, v3 + WORD $0x4e71bad6 // addv.8h h22, v22 + WORD $0x1e2602d1 // fmov w17, s22 + WORD $0x4e221e94 // and.16b v20, v20, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e260295 // fmov w21, s20 + WORD $0x4e221eb4 // and.16b v20, v21, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e260296 // fmov w22, s20 + WORD $0x33103e34 // bfi w20, w17, #16, #16 + WORD $0x33103ed5 // bfi w21, w22, #16, #16 + WORD $0x35002795 // cbnz w21, LBB0_351 $1264(%rip) + WORD $0xb5002825 // cbnz x5, LBB0_352 $1284(%rip) + WORD $0xb40029b4 // cbz x20, LBB0_353 $1332(%rip) +LBB0_282: + WORD $0xdac00291 // rbit x17, x20 + WORD $0xdac01231 // clz x17, x17 + WORD $0xcb090385 // sub x5, x28, x9 + WORD $0x8b1100b1 // add x17, x5, x17 + WORD $0x17fffd75 // b LBB0_150 $-2604(%rip) +LBB0_283: + WORD $0xd2800005 // mov x5, #0 + WORD $0x8b1c013c // add x28, x9, x28 + WORD $0x92800008 // mov x8, #-1 +LBB0_284: + WORD $0xf1008295 // subs x21, x20, #32 + WORD $0x54000643 // b.lo LBB0_292 $200(%rip) + WORD $0xad405395 // ldp q21, q20, [x28] + WORD $0x6e208eb6 // cmeq.16b v22, v21, v0 + WORD $0x4e221ed6 // and.16b v22, v22, v2 + WORD $0x4e0302d6 // tbl.16b v22, { v22 }, v3 + WORD $0x4e71bad6 // addv.8h h22, v22 + WORD $0x1e2602d4 // fmov w20, s22 + WORD $0x6e208e96 // cmeq.16b v22, v20, v0 + WORD $0x4e221ed6 // and.16b v22, v22, v2 + WORD $0x4e0302d6 // tbl.16b v22, { v22 }, v3 + WORD $0x4e71bad6 // addv.8h h22, v22 + WORD $0x1e2602d1 // fmov w17, s22 + WORD $0x6e218eb6 // cmeq.16b v22, v21, v1 + WORD $0x4e221ed6 // and.16b v22, v22, v2 + WORD $0x4e0302d6 // tbl.16b v22, { v22 }, v3 + WORD $0x4e71bad6 // addv.8h h22, v22 + WORD $0x1e2602c7 // fmov w7, s22 + WORD $0x6e218e96 // cmeq.16b v22, v20, v1 + WORD $0x4e221ed6 // and.16b v22, v22, v2 + WORD $0x4e0302d6 // tbl.16b v22, { v22 }, v3 + WORD $0x4e71bad6 // addv.8h h22, v22 + WORD $0x1e2602d6 // fmov w22, s22 + WORD $0x33103e34 // bfi w20, w17, #16, #16 + WORD $0x33103ec7 // bfi w7, w22, #16, #16 + WORD $0x350029a7 // cbnz w7, LBB0_364 $1332(%rip) + WORD $0xb5002a45 // cbnz x5, LBB0_365 $1352(%rip) +LBB0_287: + WORD $0x6e353495 // cmhi.16b v21, v4, v21 + WORD $0x4e221eb5 // and.16b v21, v21, v2 + WORD $0x4e0302b5 // tbl.16b v21, { v21 }, v3 + WORD $0x4e71bab5 // addv.8h h21, v21 + WORD $0x1e2602a7 // fmov w7, s21 + WORD $0x6e343494 // cmhi.16b v20, v4, v20 + WORD $0x4e221e94 // and.16b v20, v20, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e260291 // fmov w17, s20 + WORD $0x33103e27 // bfi w7, w17, #16, #16 + WORD $0xdac000f1 // rbit x17, x7 + WORD $0xdac01231 // clz x17, x17 + WORD $0xb4000114 // cbz x20, LBB0_290 $32(%rip) + WORD $0xdac00285 // rbit x5, x20 + WORD $0xdac010a7 // clz x7, x5 + WORD $0xcb090385 // sub x5, x28, x9 + WORD $0xeb07023f // cmp x17, x7 + WORD $0x540045c3 // b.lo LBB0_428 $2232(%rip) + WORD $0x8b0700b1 // add x17, x5, x7 + WORD $0x17fffd42 // b LBB0_150 $-2808(%rip) +LBB0_290: + WORD $0x350045a7 // cbnz w7, LBB0_429 $2228(%rip) + WORD $0x9100839c // add x28, x28, #32 + WORD $0xaa1503f4 // mov x20, x21 +LBB0_292: + WORD $0xb5002bc5 // cbnz x5, LBB0_372 $1400(%rip) + WORD $0xb4003934 // cbz x20, LBB0_398 $1828(%rip) +LBB0_294: + WORD $0xd2800005 // mov x5, #0 +LBB0_295: + WORD $0x38656b91 // ldrb w17, [x28, x5] + WORD $0x71008a3f // cmp w17, #34 + WORD $0x540002e0 // b.eq LBB0_301 $92(%rip) + WORD $0x7101723f // cmp w17, #92 + WORD $0x540000e0 // b.eq LBB0_299 $28(%rip) + WORD $0x71007e3f // cmp w17, #31 + WORD $0x54004489 // b.ls LBB0_430 $2192(%rip) + WORD $0x910004a5 // add x5, x5, #1 + WORD $0xeb05029f // cmp x20, x5 + WORD $0x54fffee1 // b.ne LBB0_295 $-36(%rip) + WORD $0x140001bd // b LBB0_398 $1780(%rip) +LBB0_299: + WORD $0xd1000691 // sub x17, x20, #1 + WORD $0xeb05023f // cmp x17, x5 + WORD $0x54003740 // b.eq LBB0_398 $1768(%rip) + WORD $0x8b050391 // add x17, x28, x5 + WORD $0x8b0c0227 // add x7, x17, x12 + WORD $0xb100051f // cmn x8, #1 + WORD $0x9a8800e8 // csel x8, x7, x8, eq + WORD $0x91000a3c // add x28, x17, #2 + WORD $0xcb050291 // sub x17, x20, x5 + WORD $0xd1000a87 // sub x7, x20, #2 + WORD $0xd1000a34 // sub x20, x17, #2 + WORD $0xeb0500ff // cmp x7, x5 + WORD $0x54fffd01 // b.ne LBB0_294 $-96(%rip) + WORD $0x140001af // b LBB0_398 $1724(%rip) +LBB0_301: + WORD $0x8b1c0191 // add x17, x12, x28 + WORD $0x8b050231 // add x17, x17, x5 + WORD $0x17fffd20 // b LBB0_150 $-2944(%rip) +LBB0_302: + WORD $0xcb1803e7 // neg x7, x24 + WORD $0x17fffeee // b LBB0_243 $-1096(%rip) +LBB0_303: + WORD $0x5ac00328 // rbit w8, w25 + WORD $0x5ac01108 // clz w8, w8 + WORD $0xaa2703f1 // mvn x17, x7 + WORD $0xcb080227 // sub x7, x17, x8 + WORD $0x52800073 // mov w19, #3 + WORD $0x17fffee8 // b LBB0_243 $-1120(%rip) +LBB0_304: + WORD $0x8b1c013c // add x28, x9, x28 + WORD $0x1400000a // b LBB0_308 $40(%rip) +LBB0_305: + WORD $0x8b1c013c // add x28, x9, x28 + WORD $0x1400002c // b LBB0_314 $176(%rip) +LBB0_306: + WORD $0xaa2703e8 // mvn x8, x7 + WORD $0xcb314107 // sub x7, x8, w17, uxtw + WORD $0x52800073 // mov w19, #3 + WORD $0x17fffee0 // b LBB0_243 $-1152(%rip) +LBB0_307: + WORD $0xd2800005 // mov x5, #0 + WORD $0x8b1c013c // add x28, x9, x28 + WORD $0x92800008 // mov x8, #-1 +LBB0_308: + WORD $0xf1008287 // subs x7, x20, #32 + WORD $0x540028e3 // b.lo LBB0_377 $1308(%rip) + WORD $0xad405794 // ldp q20, q21, [x28] + WORD $0x6e208e96 // cmeq.16b v22, v20, v0 + WORD $0x6e208eb7 // cmeq.16b v23, v21, v0 + WORD $0x6e218e94 // cmeq.16b v20, v20, v1 + WORD $0x6e218eb5 // cmeq.16b v21, v21, v1 + WORD $0x4e221ed6 // and.16b v22, v22, v2 + WORD $0x4e0302d6 // tbl.16b v22, { v22 }, v3 + WORD $0x4e71bad6 // addv.8h h22, v22 + WORD $0x1e2602d4 // fmov w20, s22 + WORD $0x4e221ef6 // and.16b v22, v23, v2 + WORD $0x4e0302d6 // tbl.16b v22, { v22 }, v3 + WORD $0x4e71bad6 // addv.8h h22, v22 + WORD $0x1e2602d1 // fmov w17, s22 + WORD $0x4e221e94 // and.16b v20, v20, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e260295 // fmov w21, s20 + WORD $0x4e221eb4 // and.16b v20, v21, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e260284 // fmov w4, s20 + WORD $0x33103e34 // bfi w20, w17, #16, #16 + WORD $0x33103c95 // bfi w21, w4, #16, #16 + WORD $0x35002375 // cbnz w21, LBB0_374 $1132(%rip) + WORD $0xb5002405 // cbnz x5, LBB0_375 $1152(%rip) + WORD $0xb4002574 // cbz x20, LBB0_376 $1196(%rip) +LBB0_312: + WORD $0xdac00291 // rbit x17, x20 + WORD $0xdac01231 // clz x17, x17 + WORD $0xcb090384 // sub x4, x28, x9 + WORD $0x8b110091 // add x17, x4, x17 + WORD $0x14000055 // b LBB0_332 $340(%rip) +LBB0_313: + WORD $0xd2800005 // mov x5, #0 + WORD $0x8b1c013c // add x28, x9, x28 + WORD $0x92800008 // mov x8, #-1 +LBB0_314: + WORD $0xf1008295 // subs x21, x20, #32 + WORD $0x54000643 // b.lo LBB0_322 $200(%rip) + WORD $0xad405395 // ldp q21, q20, [x28] + WORD $0x6e208eb6 // cmeq.16b v22, v21, v0 + WORD $0x4e221ed6 // and.16b v22, v22, v2 + WORD $0x4e0302d6 // tbl.16b v22, { v22 }, v3 + WORD $0x4e71bad6 // addv.8h h22, v22 + WORD $0x1e2602d4 // fmov w20, s22 + WORD $0x6e208e96 // cmeq.16b v22, v20, v0 + WORD $0x4e221ed6 // and.16b v22, v22, v2 + WORD $0x4e0302d6 // tbl.16b v22, { v22 }, v3 + WORD $0x4e71bad6 // addv.8h h22, v22 + WORD $0x1e2602d1 // fmov w17, s22 + WORD $0x6e218eb6 // cmeq.16b v22, v21, v1 + WORD $0x4e221ed6 // and.16b v22, v22, v2 + WORD $0x4e0302d6 // tbl.16b v22, { v22 }, v3 + WORD $0x4e71bad6 // addv.8h h22, v22 + WORD $0x1e2602c7 // fmov w7, s22 + WORD $0x6e218e96 // cmeq.16b v22, v20, v1 + WORD $0x4e221ed6 // and.16b v22, v22, v2 + WORD $0x4e0302d6 // tbl.16b v22, { v22 }, v3 + WORD $0x4e71bad6 // addv.8h h22, v22 + WORD $0x1e2602c4 // fmov w4, s22 + WORD $0x33103e34 // bfi w20, w17, #16, #16 + WORD $0x33103c87 // bfi w7, w4, #16, #16 + WORD $0x350024e7 // cbnz w7, LBB0_386 $1180(%rip) + WORD $0xb5002585 // cbnz x5, LBB0_387 $1200(%rip) +LBB0_317: + WORD $0x6e353495 // cmhi.16b v21, v4, v21 + WORD $0x4e221eb5 // and.16b v21, v21, v2 + WORD $0x4e0302b5 // tbl.16b v21, { v21 }, v3 + WORD $0x4e71bab5 // addv.8h h21, v21 + WORD $0x1e2602a7 // fmov w7, s21 + WORD $0x6e343494 // cmhi.16b v20, v4, v20 + WORD $0x4e221e94 // and.16b v20, v20, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e260291 // fmov w17, s20 + WORD $0x33103e27 // bfi w7, w17, #16, #16 + WORD $0xdac000f1 // rbit x17, x7 + WORD $0xdac01231 // clz x17, x17 + WORD $0xb4000114 // cbz x20, LBB0_320 $32(%rip) + WORD $0xdac00284 // rbit x4, x20 + WORD $0xdac01087 // clz x7, x4 + WORD $0xcb090385 // sub x5, x28, x9 + WORD $0xeb07023f // cmp x17, x7 + WORD $0x540034a3 // b.lo LBB0_428 $1684(%rip) + WORD $0x8b0700b1 // add x17, x5, x7 + WORD $0x14000022 // b LBB0_332 $136(%rip) +LBB0_320: + WORD $0x35003487 // cbnz w7, LBB0_429 $1680(%rip) + WORD $0x9100839c // add x28, x28, #32 + WORD $0xaa1503f4 // mov x20, x21 +LBB0_322: + WORD $0xb5002505 // cbnz x5, LBB0_391 $1184(%rip) + WORD $0xb4002814 // cbz x20, LBB0_398 $1280(%rip) +LBB0_324: + WORD $0xd2800005 // mov x5, #0 +LBB0_325: + WORD $0x38656b91 // ldrb w17, [x28, x5] + WORD $0x71008a3f // cmp w17, #34 + WORD $0x540002e0 // b.eq LBB0_331 $92(%rip) + WORD $0x7101723f // cmp w17, #92 + WORD $0x540000e0 // b.eq LBB0_329 $28(%rip) + WORD $0x71007e3f // cmp w17, #31 + WORD $0x54003369 // b.ls LBB0_430 $1644(%rip) + WORD $0x910004a5 // add x5, x5, #1 + WORD $0xeb05029f // cmp x20, x5 + WORD $0x54fffee1 // b.ne LBB0_325 $-36(%rip) + WORD $0x14000134 // b LBB0_398 $1232(%rip) +LBB0_329: + WORD $0xd1000691 // sub x17, x20, #1 + WORD $0xeb05023f // cmp x17, x5 + WORD $0x54002620 // b.eq LBB0_398 $1220(%rip) + WORD $0x8b050391 // add x17, x28, x5 + WORD $0x8b0c0224 // add x4, x17, x12 + WORD $0xb100051f // cmn x8, #1 + WORD $0x9a880088 // csel x8, x4, x8, eq + WORD $0x91000a3c // add x28, x17, #2 + WORD $0xcb050291 // sub x17, x20, x5 + WORD $0xd1000a84 // sub x4, x20, #2 + WORD $0xd1000a34 // sub x20, x17, #2 + WORD $0xeb05009f // cmp x4, x5 + WORD $0x54fffd01 // b.ne LBB0_324 $-96(%rip) + WORD $0x14000126 // b LBB0_398 $1176(%rip) +LBB0_331: + WORD $0x8b1c0191 // add x17, x12, x28 + WORD $0x8b050231 // add x17, x17, x5 +LBB0_332: + WORD $0x9100063c // add x28, x17, #1 + WORD $0x52800073 // mov w19, #3 + WORD $0x17fffbf6 // b LBB0_122 $-4136(%rip) +LBB0_333: + WORD $0x92800008 // mov x8, #-1 + WORD $0xaa1e03f6 // mov x22, lr + WORD $0xaa1503f7 // mov x23, x21 + WORD $0x92800005 // mov x5, #-1 + WORD $0x92800014 // mov x20, #-1 + WORD $0x17fffb21 // b LBB0_82 $-4988(%rip) +LBB0_334: + WORD $0xaa2703e8 // mvn x8, x7 + WORD $0xcb3a4107 // sub x7, x8, w26, uxtw + WORD $0x52800073 // mov w19, #3 + WORD $0x17fffe5b // b LBB0_243 $-1684(%rip) +LBB0_335: + WORD $0x92800014 // mov x20, #-1 + WORD $0xaa0803f6 // mov x22, x8 + WORD $0xaa1803f5 // mov x21, x24 + WORD $0x92800005 // mov x5, #-1 + WORD $0x9280001e // mov lr, #-1 + WORD $0x52800073 // mov w19, #3 + WORD $0x17fffe0f // b LBB0_215 $-1988(%rip) +LBB0_336: + WORD $0xdac002b1 // rbit x17, x21 + WORD $0xdac01231 // clz x17, x17 + WORD $0xcb090396 // sub x22, x28, x9 + WORD $0x8b1102d1 // add x17, x22, x17 + WORD $0xb100051f // cmn x8, #1 + WORD $0x9a911108 // csel x8, x8, x17, ne +LBB0_337: + WORD $0x0a2502b1 // bic w17, w21, w5 + WORD $0x531f7a36 // lsl w22, w17, #1 + WORD $0x331f7a25 // bfi w5, w17, #1, #31 + WORD $0x0a3602b5 // bic w21, w21, w22 + WORD $0x1201f2b5 // and w21, w21, #0xaaaaaaaa + WORD $0x2b1102b1 // adds w17, w21, w17 + WORD $0x4a1104d1 // eor w17, w6, w17, lsl #1 + WORD $0x0a050231 // and w17, w17, w5 + WORD $0x1a9f37e5 // cset w5, hs + WORD $0x2a3103f1 // mvn w17, w17 + WORD $0x8a140234 // and x20, x17, x20 + WORD $0x52800073 // mov w19, #3 + WORD $0xb5ffcf74 // cbnz x20, LBB0_255 $-1556(%rip) +LBB0_338: + WORD $0x9100839c // add x28, x28, #32 + WORD $0xaa0703f4 // mov x20, x7 +LBB0_339: + WORD $0xb5000ec5 // cbnz x5, LBB0_366 $472(%rip) + WORD $0xb4000314 // cbz x20, LBB0_348 $96(%rip) +LBB0_341: + WORD $0xaa1c03e7 // mov x7, x28 + WORD $0x384014e5 // ldrb w5, [x7], #1 + WORD $0x710088bf // cmp w5, #34 + WORD $0x54000260 // b.eq LBB0_347 $76(%rip) + WORD $0xd1000691 // sub x17, x20, #1 + WORD $0x710170bf // cmp w5, #92 + WORD $0x540000a0 // b.eq LBB0_344 $20(%rip) + WORD $0xaa0703fc // mov x28, x7 + WORD $0xaa1103f4 // mov x20, x17 + WORD $0xb5fffef1 // cbnz x17, LBB0_341 $-36(%rip) + WORD $0x14000009 // b LBB0_346 $36(%rip) +LBB0_344: + WORD $0xb4001db1 // cbz x17, LBB0_398 $948(%rip) + WORD $0x8b0b00f1 // add x17, x7, x11 + WORD $0xb100051f // cmn x8, #1 + WORD $0x9a880228 // csel x8, x17, x8, eq + WORD $0x91000b9c // add x28, x28, #2 + WORD $0xd1000a91 // sub x17, x20, #2 + WORD $0xaa1103f4 // mov x20, x17 + WORD $0xb5fffdd1 // cbnz x17, LBB0_341 $-72(%rip) +LBB0_346: + WORD $0x710088bf // cmp w5, #34 + WORD $0x54000060 // b.eq LBB0_348 $12(%rip) + WORD $0x140000e3 // b LBB0_398 $908(%rip) +LBB0_347: + WORD $0xaa0703fc // mov x28, x7 +LBB0_348: + WORD $0xcb09039c // sub x28, x28, x9 + WORD $0x17fffbb5 // b LBB0_122 $-4396(%rip) +LBB0_349: + WORD $0xdac000f1 // rbit x17, x7 + WORD $0xdac01231 // clz x17, x17 + WORD $0xcb090396 // sub x22, x28, x9 + WORD $0x8b1102d1 // add x17, x22, x17 + WORD $0xb100051f // cmn x8, #1 + WORD $0x9a911108 // csel x8, x8, x17, ne +LBB0_350: + WORD $0x0a2500f1 // bic w17, w7, w5 + WORD $0x531f7a36 // lsl w22, w17, #1 + WORD $0x331f7a25 // bfi w5, w17, #1, #31 + WORD $0x0a3600e7 // bic w7, w7, w22 + WORD $0x1201f0e7 // and w7, w7, #0xaaaaaaaa + WORD $0x2b1100f1 // adds w17, w7, w17 + WORD $0x4a1104d1 // eor w17, w6, w17, lsl #1 + WORD $0x0a050231 // and w17, w17, w5 + WORD $0x1a9f37e5 // cset w5, hs + WORD $0x2a3103f1 // mvn w17, w17 + WORD $0x8a140234 // and x20, x17, x20 + WORD $0x52800073 // mov w19, #3 + WORD $0x17fffe6e // b LBB0_260 $-1608(%rip) +LBB0_351: + WORD $0xdac002b1 // rbit x17, x21 + WORD $0xdac01231 // clz x17, x17 + WORD $0xcb090396 // sub x22, x28, x9 + WORD $0x8b1102d1 // add x17, x22, x17 + WORD $0xb100051f // cmn x8, #1 + WORD $0x9a911108 // csel x8, x8, x17, ne +LBB0_352: + WORD $0x0a2502b1 // bic w17, w21, w5 + WORD $0x531f7a36 // lsl w22, w17, #1 + WORD $0x331f7a25 // bfi w5, w17, #1, #31 + WORD $0x0a3602b5 // bic w21, w21, w22 + WORD $0x1201f2b5 // and w21, w21, #0xaaaaaaaa + WORD $0x2b1102b1 // adds w17, w21, w17 + WORD $0x4a110491 // eor w17, w4, w17, lsl #1 + WORD $0x0a050231 // and w17, w17, w5 + WORD $0x1a9f37e5 // cset w5, hs + WORD $0x2a3103f1 // mvn w17, w17 + WORD $0x8a140234 // and x20, x17, x20 + WORD $0x52800073 // mov w19, #3 + WORD $0xb5ffd6b4 // cbnz x20, LBB0_282 $-1324(%rip) +LBB0_353: + WORD $0x9100839c // add x28, x28, #32 + WORD $0xaa0703f4 // mov x20, x7 +LBB0_354: + WORD $0xb5000865 // cbnz x5, LBB0_370 $268(%rip) + WORD $0xb4000314 // cbz x20, LBB0_363 $96(%rip) +LBB0_356: + WORD $0xaa1c03e7 // mov x7, x28 + WORD $0x384014e5 // ldrb w5, [x7], #1 + WORD $0x710088bf // cmp w5, #34 + WORD $0x54000260 // b.eq LBB0_362 $76(%rip) + WORD $0xd1000691 // sub x17, x20, #1 + WORD $0x710170bf // cmp w5, #92 + WORD $0x540000a0 // b.eq LBB0_359 $20(%rip) + WORD $0xaa0703fc // mov x28, x7 + WORD $0xaa1103f4 // mov x20, x17 + WORD $0xb5fffef1 // cbnz x17, LBB0_356 $-36(%rip) + WORD $0x14000009 // b LBB0_361 $36(%rip) +LBB0_359: + WORD $0xb4001551 // cbz x17, LBB0_398 $680(%rip) + WORD $0x8b0b00f1 // add x17, x7, x11 + WORD $0xb100051f // cmn x8, #1 + WORD $0x9a880228 // csel x8, x17, x8, eq + WORD $0x91000b9c // add x28, x28, #2 + WORD $0xd1000a91 // sub x17, x20, #2 + WORD $0xaa1103f4 // mov x20, x17 + WORD $0xb5fffdd1 // cbnz x17, LBB0_356 $-72(%rip) +LBB0_361: + WORD $0x710088bf // cmp w5, #34 + WORD $0x54000060 // b.eq LBB0_363 $12(%rip) + WORD $0x140000a0 // b LBB0_398 $640(%rip) +LBB0_362: + WORD $0xaa0703fc // mov x28, x7 +LBB0_363: + WORD $0xcb09039c // sub x28, x28, x9 + WORD $0x52800084 // mov w4, #4 + WORD $0x92f00006 // mov x6, #9223372036854775807 + WORD $0xb20903e7 // mov x7, #36028797027352576 + WORD $0xf2800027 // movk x7, #1 + WORD $0xb6ff827c // tbz x28, #63, LBB0_151 $-4020(%rip) + WORD $0x14000096 // b LBB0_397 $600(%rip) +LBB0_364: + WORD $0xdac000f1 // rbit x17, x7 + WORD $0xdac01231 // clz x17, x17 + WORD $0xcb090396 // sub x22, x28, x9 + WORD $0x8b1102d1 // add x17, x22, x17 + WORD $0xb100051f // cmn x8, #1 + WORD $0x9a911108 // csel x8, x8, x17, ne +LBB0_365: + WORD $0x0a2500f1 // bic w17, w7, w5 + WORD $0x531f7a36 // lsl w22, w17, #1 + WORD $0x331f7a25 // bfi w5, w17, #1, #31 + WORD $0x0a3600e7 // bic w7, w7, w22 + WORD $0x1201f0e7 // and w7, w7, #0xaaaaaaaa + WORD $0x2b1100f1 // adds w17, w7, w17 + WORD $0x4a110491 // eor w17, w4, w17, lsl #1 + WORD $0x0a050231 // and w17, w17, w5 + WORD $0x1a9f37e5 // cset w5, hs + WORD $0x2a3103f1 // mvn w17, w17 + WORD $0x8a140234 // and x20, x17, x20 + WORD $0x52800073 // mov w19, #3 + WORD $0x17fffea3 // b LBB0_287 $-1396(%rip) +LBB0_366: + WORD $0xb4001094 // cbz x20, LBB0_398 $528(%rip) + WORD $0x8b0b0391 // add x17, x28, x11 + WORD $0xb100051f // cmn x8, #1 + WORD $0x9a880228 // csel x8, x17, x8, eq + WORD $0x9100079c // add x28, x28, #1 + WORD $0xd1000694 // sub x20, x20, #1 + WORD $0xb5fff0d4 // cbnz x20, LBB0_341 $-488(%rip) + WORD $0x17ffff9c // b LBB0_348 $-400(%rip) +LBB0_368: + WORD $0xb4000f94 // cbz x20, LBB0_398 $496(%rip) + WORD $0x8b0b0391 // add x17, x28, x11 + WORD $0xb100051f // cmn x8, #1 + WORD $0x9a880228 // csel x8, x17, x8, eq + WORD $0x9100079c // add x28, x28, #1 + WORD $0xd1000694 // sub x20, x20, #1 + WORD $0xb5ffc634 // cbnz x20, LBB0_267 $-1852(%rip) + WORD $0x14000075 // b LBB0_398 $468(%rip) +LBB0_370: + WORD $0xb4000e94 // cbz x20, LBB0_398 $464(%rip) + WORD $0x8b0b0391 // add x17, x28, x11 + WORD $0xb100051f // cmn x8, #1 + WORD $0x9a880228 // csel x8, x17, x8, eq + WORD $0x9100079c // add x28, x28, #1 + WORD $0xd1000694 // sub x20, x20, #1 + WORD $0xb5fff734 // cbnz x20, LBB0_356 $-284(%rip) + WORD $0x17ffffcf // b LBB0_363 $-196(%rip) +LBB0_372: + WORD $0xb4000d94 // cbz x20, LBB0_398 $432(%rip) + WORD $0x8b0b0391 // add x17, x28, x11 + WORD $0xb100051f // cmn x8, #1 + WORD $0x9a880228 // csel x8, x17, x8, eq + WORD $0x9100079c // add x28, x28, #1 + WORD $0xd1000694 // sub x20, x20, #1 + WORD $0xb5ffd3d4 // cbnz x20, LBB0_294 $-1416(%rip) + WORD $0x14000065 // b LBB0_398 $404(%rip) +LBB0_374: + WORD $0xdac002b1 // rbit x17, x21 + WORD $0xdac01231 // clz x17, x17 + WORD $0xcb090384 // sub x4, x28, x9 + WORD $0x8b110091 // add x17, x4, x17 + WORD $0xb100051f // cmn x8, #1 + WORD $0x9a911108 // csel x8, x8, x17, ne +LBB0_375: + WORD $0x0a2502b1 // bic w17, w21, w5 + WORD $0x531f7a24 // lsl w4, w17, #1 + WORD $0x331f7a25 // bfi w5, w17, #1, #31 + WORD $0x0a2402a4 // bic w4, w21, w4 + WORD $0x1201f084 // and w4, w4, #0xaaaaaaaa + WORD $0x2b110091 // adds w17, w4, w17 + WORD $0x4a110711 // eor w17, w24, w17, lsl #1 + WORD $0x0a050231 // and w17, w17, w5 + WORD $0x1a9f37e5 // cset w5, hs + WORD $0x2a3103f1 // mvn w17, w17 + WORD $0x8a140234 // and x20, x17, x20 + WORD $0xb5ffdaf4 // cbnz x20, LBB0_312 $-1188(%rip) +LBB0_376: + WORD $0x9100839c // add x28, x28, #32 + WORD $0xaa0703f4 // mov x20, x7 +LBB0_377: + WORD $0xb50005c5 // cbnz x5, LBB0_388 $184(%rip) + WORD $0xb4000694 // cbz x20, LBB0_390 $208(%rip) +LBB0_379: + WORD $0xaa1c03e7 // mov x7, x28 + WORD $0x384014e5 // ldrb w5, [x7], #1 + WORD $0x710088bf // cmp w5, #34 + WORD $0x54000280 // b.eq LBB0_385 $80(%rip) + WORD $0xd1000691 // sub x17, x20, #1 + WORD $0x710170bf // cmp w5, #92 + WORD $0x540000a0 // b.eq LBB0_382 $20(%rip) + WORD $0xaa0703fc // mov x28, x7 + WORD $0xaa1103f4 // mov x20, x17 + WORD $0xb5fffef1 // cbnz x17, LBB0_379 $-36(%rip) + WORD $0x14000009 // b LBB0_384 $36(%rip) +LBB0_382: + WORD $0xb4000871 // cbz x17, LBB0_398 $268(%rip) + WORD $0x8b0b00f1 // add x17, x7, x11 + WORD $0xb100051f // cmn x8, #1 + WORD $0x9a880228 // csel x8, x17, x8, eq + WORD $0x91000b9c // add x28, x28, #2 + WORD $0xd1000a91 // sub x17, x20, #2 + WORD $0xaa1103f4 // mov x20, x17 + WORD $0xb5fffdd1 // cbnz x17, LBB0_379 $-72(%rip) +LBB0_384: + WORD $0x710088bf // cmp w5, #34 + WORD $0x52800073 // mov w19, #3 + WORD $0x54ffeb00 // b.eq LBB0_348 $-672(%rip) + WORD $0x14000038 // b LBB0_398 $224(%rip) +LBB0_385: + WORD $0xaa0703fc // mov x28, x7 + WORD $0x52800073 // mov w19, #3 + WORD $0x17ffff54 // b LBB0_348 $-688(%rip) +LBB0_386: + WORD $0xdac000f1 // rbit x17, x7 + WORD $0xdac01231 // clz x17, x17 + WORD $0xcb090384 // sub x4, x28, x9 + WORD $0x8b110091 // add x17, x4, x17 + WORD $0xb100051f // cmn x8, #1 + WORD $0x9a911108 // csel x8, x8, x17, ne +LBB0_387: + WORD $0x0a2500f1 // bic w17, w7, w5 + WORD $0x531f7a24 // lsl w4, w17, #1 + WORD $0x331f7a25 // bfi w5, w17, #1, #31 + WORD $0x0a2400e4 // bic w4, w7, w4 + WORD $0x1201f084 // and w4, w4, #0xaaaaaaaa + WORD $0x2b110091 // adds w17, w4, w17 + WORD $0x4a110711 // eor w17, w24, w17, lsl #1 + WORD $0x0a050231 // and w17, w17, w5 + WORD $0x1a9f37e5 // cset w5, hs + WORD $0x2a3103f1 // mvn w17, w17 + WORD $0x8a140234 // and x20, x17, x20 + WORD $0x17fffeca // b LBB0_317 $-1240(%rip) +LBB0_388: + WORD $0xb4000454 // cbz x20, LBB0_398 $136(%rip) + WORD $0x8b0b0391 // add x17, x28, x11 + WORD $0xb100051f // cmn x8, #1 + WORD $0x9a880228 // csel x8, x17, x8, eq + WORD $0x9100079c // add x28, x28, #1 + WORD $0xd1000694 // sub x20, x20, #1 + WORD $0xb5fff9d4 // cbnz x20, LBB0_379 $-200(%rip) +LBB0_390: + WORD $0x52800073 // mov w19, #3 + WORD $0x17ffff39 // b LBB0_348 $-796(%rip) +LBB0_391: + WORD $0xb4000334 // cbz x20, LBB0_398 $100(%rip) + WORD $0x8b0b0391 // add x17, x28, x11 + WORD $0xb100051f // cmn x8, #1 + WORD $0x9a880228 // csel x8, x17, x8, eq + WORD $0x9100079c // add x28, x28, #1 + WORD $0xd1000694 // sub x20, x20, #1 + WORD $0xb5ffda94 // cbnz x20, LBB0_324 $-1200(%rip) + WORD $0x14000012 // b LBB0_398 $72(%rip) +LBB0_393: + WORD $0x92800008 // mov x8, #-1 +LBB0_394: + WORD $0xaa0803e0 // mov x0, x8 + WORD $0xa945fbfd // ldp fp, lr, [sp, #88] + WORD $0xa944cff4 // ldp x20, x19, [sp, #72] + WORD $0xa943d7f6 // ldp x22, x21, [sp, #56] + WORD $0xa942dff8 // ldp x24, x23, [sp, #40] + WORD $0xa941e7fa // ldp x26, x25, [sp, #24] + WORD $0xa940effc // ldp x28, x27, [sp, #8] + WORD $0x9101c3ff // add sp, sp, #112 + WORD $0xd65f03c0 // ret +LBB0_395: + WORD $0x9280001c // mov x28, #-1 + WORD $0xaa1b03e8 // mov x8, x27 + WORD $0x1400000c // b LBB0_403 $48(%rip) +LBB0_396: + WORD $0x928000c8 // mov x8, #-7 + WORD $0x17fffff3 // b LBB0_394 $-52(%rip) +LBB0_397: + WORD $0xb100079f // cmn x28, #1 + WORD $0x54000101 // b.ne LBB0_403 $32(%rip) +LBB0_398: + WORD $0xf9400408 // ldr x8, [x0, #8] + WORD $0x9280001c // mov x28, #-1 + WORD $0x14000005 // b LBB0_403 $20(%rip) +LBB0_399: + WORD $0x92800015 // mov x21, #-1 +LBB0_400: + WORD $0xaa3503f4 // mvn x20, x21 +LBB0_401: + WORD $0x8b1b0288 // add x8, x20, x27 +LBB0_402: + WORD $0x9280003c // mov x28, #-2 +LBB0_403: + WORD $0xf9000028 // str x8, [x1] + WORD $0xaa1c03e8 // mov x8, x28 + WORD $0x17ffffe7 // b LBB0_394 $-100(%rip) +LBB0_404: + WORD $0xb100051f // cmn x8, #1 + WORD $0x54ffff61 // b.ne LBB0_402 $-20(%rip) + WORD $0xdac00228 // rbit x8, x17 + WORD $0xdac01108 // clz x8, x8 + WORD $0x8b1c0108 // add x8, x8, x28 + WORD $0x17fffff7 // b LBB0_402 $-36(%rip) +LBB0_406: + WORD $0x9280001c // mov x28, #-1 + WORD $0x17fffff6 // b LBB0_403 $-40(%rip) +LBB0_407: + WORD $0xaa0803f4 // mov x20, x8 + WORD $0x8b1b0108 // add x8, x8, x27 + WORD $0x17fffff2 // b LBB0_402 $-56(%rip) +LBB0_408: + WORD $0x92800007 // mov x7, #-1 +LBB0_409: + WORD $0xaa2703fe // mvn lr, x7 +LBB0_410: + WORD $0x8b1e0388 // add x8, x28, lr + WORD $0x17ffffee // b LBB0_402 $-72(%rip) +LBB0_411: + WORD $0xf900003b // str x27, [x1] + WORD $0x394003c8 // ldrb w8, [lr] + WORD $0x7101b91f // cmp w8, #110 + WORD $0x54000761 // b.ne LBB0_425 $236(%rip) + WORD $0x91000768 // add x8, x27, #1 + WORD $0xf9000028 // str x8, [x1] + WORD $0x38686928 // ldrb w8, [x9, x8] + WORD $0x7101d51f // cmp w8, #117 + WORD $0x540006c1 // b.ne LBB0_425 $216(%rip) + WORD $0x91000b68 // add x8, x27, #2 + WORD $0xf9000028 // str x8, [x1] + WORD $0x38686928 // ldrb w8, [x9, x8] + WORD $0x7101b11f // cmp w8, #108 + WORD $0x54000621 // b.ne LBB0_425 $196(%rip) + WORD $0x91000f68 // add x8, x27, #3 + WORD $0xf9000028 // str x8, [x1] + WORD $0x38686928 // ldrb w8, [x9, x8] + WORD $0x7101b11f // cmp w8, #108 + WORD $0x54000581 // b.ne LBB0_425 $176(%rip) + WORD $0x14000014 // b LBB0_419 $80(%rip) +LBB0_415: + WORD $0xf900003b // str x27, [x1] + WORD $0x394003c8 // ldrb w8, [lr] + WORD $0x7101d11f // cmp w8, #116 + WORD $0x540004e1 // b.ne LBB0_425 $156(%rip) + WORD $0x91000768 // add x8, x27, #1 + WORD $0xf9000028 // str x8, [x1] + WORD $0x38686928 // ldrb w8, [x9, x8] + WORD $0x7101c91f // cmp w8, #114 + WORD $0x54000441 // b.ne LBB0_425 $136(%rip) + WORD $0x91000b68 // add x8, x27, #2 + WORD $0xf9000028 // str x8, [x1] + WORD $0x38686928 // ldrb w8, [x9, x8] + WORD $0x7101d51f // cmp w8, #117 + WORD $0x540003a1 // b.ne LBB0_425 $116(%rip) + WORD $0x91000f68 // add x8, x27, #3 + WORD $0xf9000028 // str x8, [x1] + WORD $0x38686928 // ldrb w8, [x9, x8] + WORD $0x7101951f // cmp w8, #101 + WORD $0x54000301 // b.ne LBB0_425 $96(%rip) +LBB0_419: + WORD $0x91001368 // add x8, x27, #4 + WORD $0x17ffffc5 // b LBB0_402 $-236(%rip) +LBB0_420: + WORD $0xf900003c // str x28, [x1] + WORD $0x387c6928 // ldrb w8, [x9, x28] + WORD $0x7101851f // cmp w8, #97 + WORD $0x54000241 // b.ne LBB0_425 $72(%rip) + WORD $0x91000b68 // add x8, x27, #2 + WORD $0xf9000028 // str x8, [x1] + WORD $0x38686928 // ldrb w8, [x9, x8] + WORD $0x7101b11f // cmp w8, #108 + WORD $0x540001a1 // b.ne LBB0_425 $52(%rip) + WORD $0x91000f68 // add x8, x27, #3 + WORD $0xf9000028 // str x8, [x1] + WORD $0x38686928 // ldrb w8, [x9, x8] + WORD $0x7101cd1f // cmp w8, #115 + WORD $0x54000101 // b.ne LBB0_425 $32(%rip) + WORD $0x91001368 // add x8, x27, #4 + WORD $0xf9000028 // str x8, [x1] + WORD $0x38686928 // ldrb w8, [x9, x8] + WORD $0x7101951f // cmp w8, #101 + WORD $0x54000061 // b.ne LBB0_425 $12(%rip) + WORD $0x91001768 // add x8, x27, #5 + WORD $0x17ffffb0 // b LBB0_402 $-320(%rip) +LBB0_425: + WORD $0x92800028 // mov x8, #-2 + WORD $0x17ffff98 // b LBB0_394 $-416(%rip) +LBB0_426: + WORD $0xaa1403fe // mov lr, x20 + WORD $0x8b140388 // add x8, x28, x20 + WORD $0x17ffffab // b LBB0_402 $-340(%rip) +LBB0_427: + WORD $0x8b1c0228 // add x8, x17, x28 + WORD $0x17ffffa9 // b LBB0_402 $-348(%rip) +LBB0_428: + WORD $0x8b1100a8 // add x8, x5, x17 + WORD $0x17ffffa7 // b LBB0_402 $-356(%rip) +LBB0_429: + WORD $0xcb090388 // sub x8, x28, x9 + WORD $0x8b110108 // add x8, x8, x17 + WORD $0x17ffffa4 // b LBB0_402 $-368(%rip) +LBB0_430: + WORD $0xcb090388 // sub x8, x28, x9 + WORD $0x8b050108 // add x8, x8, x5 + WORD $0x17ffffa1 // b LBB0_402 $-380(%rip) + // .p2align 2, 0x00 +_MASK_USE_NUMBER: + WORD $0x00000002 // .long 2 + +TEXT ·__skip_one(SB), NOSPLIT, $0-40 + NO_LOCAL_POINTERS + +_entry: + MOVD 16(g), R16 + SUB $176, RSP, R17 + CMP R16, R17 + BLS _stack_grow + +_skip_one: + MOVD s+0(FP), R0 + MOVD p+8(FP), R1 + MOVD m+16(FP), R2 + MOVD flags+24(FP), R3 + MOVD ·_subr__skip_one(SB), R11 + WORD $0x1000005e // adr x30, .+8 + JMP (R11) + MOVD R0, ret+32(FP) + RET + +_stack_grow: + MOVD R30, R3 + CALL runtime·morestack_noctxt<>(SB) + JMP _entry diff --git a/vendor/github.com/bytedance/sonic/internal/native/neon/skip_one_fast_arm64.go b/vendor/github.com/bytedance/sonic/internal/native/neon/skip_one_fast_arm64.go new file mode 100644 index 000000000..0e3a995fa --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/neon/skip_one_fast_arm64.go @@ -0,0 +1,31 @@ +// Code generated by Makefile, DO NOT EDIT. + +// Code generated by Makefile, DO NOT EDIT. + +/* + * Copyright 2021 ByteDance 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 neon + +//go:nosplit +func skip_one_fast(s *string, p *int) (ret int) { + return __skip_one_fast(s, p) +} + +//go:nosplit +//go:noescape +//goland:noinspection GoUnusedParameter +func __skip_one_fast(s *string, p *int) (ret int) diff --git a/vendor/github.com/bytedance/sonic/internal/native/neon/skip_one_fast_arm64.s b/vendor/github.com/bytedance/sonic/internal/native/neon/skip_one_fast_arm64.s new file mode 100644 index 000000000..0caf27875 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/neon/skip_one_fast_arm64.s @@ -0,0 +1,998 @@ +// +build !noasm !appengine +// Code generated by asm2asm, DO NOT EDIT. + +#include "go_asm.h" +#include "funcdata.h" +#include "textflag.h" + +TEXT ·__skip_one_fast_entry__(SB), NOSPLIT, $176 + NO_LOCAL_POINTERS + WORD $0x100000a0 // adr x0, .+20 + MOVD R0, ret(FP) + RET + // .p2align 4, 0x00 +lCPI0_0: + WORD $0x08040201 + WORD $0x80402010 + WORD $0x08040201 + WORD $0x80402010 + // // .byte 1 +// .byte 2 +// .byte 4 +// .byte 8 +// .byte 16 +// .byte 32 +// .byte 64 +// .byte 128 +// .byte 1 +// .byte 2 +// .byte 4 +// .byte 8 +// .byte 16 +// .byte 32 +// .byte 64 +// .byte 128 + +lCPI0_1: + WORD $0x09010800 + WORD $0x0b030a02 + WORD $0x0d050c04 + WORD $0x0f070e06 + // // .byte 0 +// .byte 8 +// .byte 1 +// .byte 9 +// .byte 2 +// .byte 10 +// .byte 3 +// .byte 11 +// .byte 4 +// .byte 12 +// .byte 5 +// .byte 13 +// .byte 6 +// .byte 14 +// .byte 7 +// .byte 15 + +_skip_one_fast: + WORD $0xd10303ff // sub sp, sp, #192 + WORD $0xa905effc // stp x28, x27, [sp, #88] + WORD $0xa906e7fa // stp x26, x25, [sp, #104] + WORD $0xa907dff8 // stp x24, x23, [sp, #120] + WORD $0xa908d7f6 // stp x22, x21, [sp, #136] + WORD $0xa909cff4 // stp x20, x19, [sp, #152] + WORD $0xa90afbfd // stp fp, lr, [sp, #168] + WORD $0xa93ffbfd // stp fp, lr, [sp, #-8] + WORD $0xd10023fd // sub fp, sp, #8 + WORD $0xf940002b // ldr x11, [x1] + WORD $0xa9402809 // ldp x9, x10, [x0] + WORD $0xeb0a017f // cmp x11, x10 + WORD $0x54000142 // b.hs LBB0_4 $40(%rip) + WORD $0x386b6928 // ldrb w8, [x9, x11] + WORD $0x7100351f // cmp w8, #13 + WORD $0x540000e0 // b.eq LBB0_4 $28(%rip) + WORD $0x7100811f // cmp w8, #32 + WORD $0x540000a0 // b.eq LBB0_4 $20(%rip) + WORD $0x51002d0c // sub w12, w8, #11 + WORD $0xaa0b03e8 // mov x8, x11 + WORD $0x3100099f // cmn w12, #2 + WORD $0x54000683 // b.lo LBB0_21 $208(%rip) +LBB0_4: + WORD $0x91000568 // add x8, x11, #1 + WORD $0xeb0a011f // cmp x8, x10 + WORD $0x54000122 // b.hs LBB0_8 $36(%rip) + WORD $0x3868692c // ldrb w12, [x9, x8] + WORD $0x7100359f // cmp w12, #13 + WORD $0x540000c0 // b.eq LBB0_8 $24(%rip) + WORD $0x7100819f // cmp w12, #32 + WORD $0x54000080 // b.eq LBB0_8 $16(%rip) + WORD $0x51002d8c // sub w12, w12, #11 + WORD $0x3100099f // cmn w12, #2 + WORD $0x54000523 // b.lo LBB0_21 $164(%rip) +LBB0_8: + WORD $0x91000968 // add x8, x11, #2 + WORD $0xeb0a011f // cmp x8, x10 + WORD $0x54000122 // b.hs LBB0_12 $36(%rip) + WORD $0x3868692c // ldrb w12, [x9, x8] + WORD $0x7100359f // cmp w12, #13 + WORD $0x540000c0 // b.eq LBB0_12 $24(%rip) + WORD $0x7100819f // cmp w12, #32 + WORD $0x54000080 // b.eq LBB0_12 $16(%rip) + WORD $0x51002d8c // sub w12, w12, #11 + WORD $0x3100099f // cmn w12, #2 + WORD $0x540003c3 // b.lo LBB0_21 $120(%rip) +LBB0_12: + WORD $0x91000d68 // add x8, x11, #3 + WORD $0xeb0a011f // cmp x8, x10 + WORD $0x54000122 // b.hs LBB0_16 $36(%rip) + WORD $0x3868692c // ldrb w12, [x9, x8] + WORD $0x7100359f // cmp w12, #13 + WORD $0x540000c0 // b.eq LBB0_16 $24(%rip) + WORD $0x7100819f // cmp w12, #32 + WORD $0x54000080 // b.eq LBB0_16 $16(%rip) + WORD $0x51002d8c // sub w12, w12, #11 + WORD $0x3100099f // cmn w12, #2 + WORD $0x54000263 // b.lo LBB0_21 $76(%rip) +LBB0_16: + WORD $0x91001168 // add x8, x11, #4 + WORD $0xeb0a011f // cmp x8, x10 + WORD $0x54005ae2 // b.hs LBB0_115 $2908(%rip) + WORD $0x5280002b // mov w11, #1 + WORD $0xd284c00c // mov x12, #9728 + WORD $0xf2c0002c // movk x12, #1, lsl #32 +LBB0_18: + WORD $0x3868692d // ldrb w13, [x9, x8] + WORD $0x710081bf // cmp w13, #32 + WORD $0x9acd216d // lsl x13, x11, x13 + WORD $0x8a0c01ad // and x13, x13, x12 + WORD $0xfa4099a4 // ccmp x13, #0, #4, ls + WORD $0x540000a0 // b.eq LBB0_20 $20(%rip) + WORD $0x91000508 // add x8, x8, #1 + WORD $0xeb08015f // cmp x10, x8 + WORD $0x54ffff01 // b.ne LBB0_18 $-32(%rip) + WORD $0x140002cb // b LBB0_116 $2860(%rip) +LBB0_20: + WORD $0xeb0a011f // cmp x8, x10 + WORD $0x54005922 // b.hs LBB0_116 $2852(%rip) +LBB0_21: + WORD $0x91000510 // add x16, x8, #1 + WORD $0xf9000030 // str x16, [x1] + WORD $0x3868692a // ldrb w10, [x9, x8] + WORD $0x7101695f // cmp w10, #90 + WORD $0x540006ec // b.gt LBB0_39 $220(%rip) + WORD $0x7100bd5f // cmp w10, #47 + WORD $0x54000b4d // b.le LBB0_44 $360(%rip) + WORD $0x5100c14a // sub w10, w10, #48 + WORD $0x7100295f // cmp w10, #10 + WORD $0x540055a2 // b.hs LBB0_110 $2740(%rip) +LBB0_24: + WORD $0xf940040a // ldr x10, [x0, #8] + WORD $0xcb10014a // sub x10, x10, x16 + WORD $0xf100415f // cmp x10, #16 + WORD $0x540002c3 // b.lo LBB0_28 $88(%rip) + WORD $0x4f01e580 // movi.16b v0, #44 + WORD $0x4f06e7e1 // movi.16b v1, #223 + WORD $0x4f02e7a2 // movi.16b v2, #93 +Lloh0: + WORD $0x10fff3cb // adr x11, lCPI0_0 $-392(%rip) +Lloh1: + WORD $0x3dc00163 // ldr q3, [x11, lCPI0_0@PAGEOFF] $0(%rip) +Lloh2: + WORD $0x10fff40b // adr x11, lCPI0_1 $-384(%rip) +Lloh3: + WORD $0x3dc00164 // ldr q4, [x11, lCPI0_1@PAGEOFF] $0(%rip) +LBB0_26: + WORD $0x3cf06925 // ldr q5, [x9, x16] + WORD $0x6e208ca6 // cmeq.16b v6, v5, v0 + WORD $0x4e211ca5 // and.16b v5, v5, v1 + WORD $0x6e228ca5 // cmeq.16b v5, v5, v2 + WORD $0x4ea61ca5 // orr.16b v5, v5, v6 + WORD $0x4e231ca5 // and.16b v5, v5, v3 + WORD $0x4e0400a5 // tbl.16b v5, { v5 }, v4 + WORD $0x4e71b8a5 // addv.8h h5, v5 + WORD $0x1e2600ab // fmov w11, s5 + WORD $0x350002eb // cbnz w11, LBB0_36 $92(%rip) + WORD $0xd100414a // sub x10, x10, #16 + WORD $0x91004210 // add x16, x16, #16 + WORD $0xf1003d5f // cmp x10, #15 + WORD $0x54fffe68 // b.hi LBB0_26 $-52(%rip) +LBB0_28: + WORD $0x8b10012b // add x11, x9, x16 + WORD $0xb40001ea // cbz x10, LBB0_35 $60(%rip) + WORD $0x8b0a016c // add x12, x11, x10 + WORD $0xcb09016d // sub x13, x11, x9 +LBB0_30: + WORD $0x3940016e // ldrb w14, [x11] + WORD $0x7100b1df // cmp w14, #44 + WORD $0x540052c0 // b.eq LBB0_112 $2648(%rip) + WORD $0x7101f5df // cmp w14, #125 + WORD $0x54005280 // b.eq LBB0_112 $2640(%rip) + WORD $0x710175df // cmp w14, #93 + WORD $0x54005240 // b.eq LBB0_112 $2632(%rip) + WORD $0x9100056b // add x11, x11, #1 + WORD $0x910005ad // add x13, x13, #1 + WORD $0xf100054a // subs x10, x10, #1 + WORD $0x54fffec1 // b.ne LBB0_30 $-40(%rip) + WORD $0xaa0c03eb // mov x11, x12 +LBB0_35: + WORD $0xcb090169 // sub x9, x11, x9 + WORD $0x14000004 // b LBB0_37 $16(%rip) +LBB0_36: + WORD $0x5ac00169 // rbit w9, w11 + WORD $0x5ac01129 // clz w9, w9 + WORD $0x8b100129 // add x9, x9, x16 +LBB0_37: + WORD $0xf9000029 // str x9, [x1] +LBB0_38: + WORD $0xaa0803e0 // mov x0, x8 + WORD $0x1400028f // b LBB0_117 $2620(%rip) +LBB0_39: + WORD $0x7101b55f // cmp w10, #109 + WORD $0x5400054d // b.le LBB0_47 $168(%rip) + WORD $0x7101b95f // cmp w10, #110 + WORD $0x54002320 // b.eq LBB0_74 $1124(%rip) + WORD $0x7101d15f // cmp w10, #116 + WORD $0x540022e0 // b.eq LBB0_74 $1116(%rip) + WORD $0x7101ed5f // cmp w10, #123 + WORD $0x54004e81 // b.ne LBB0_110 $2512(%rip) + WORD $0xd2800007 // mov x7, #0 + WORD $0xd280000f // mov x15, #0 + WORD $0xd280000a // mov x10, #0 + WORD $0xd280000b // mov x11, #0 + WORD $0xb201e3ec // mov x12, #-8608480567731124088 + WORD $0xf2e1110c // movk x12, #2184, lsl #48 + WORD $0xb202e3ed // mov x13, #4919131752989213764 + WORD $0xf2e0888d // movk x13, #1092, lsl #48 + WORD $0xb203e3ee // mov x14, #2459565876494606882 + WORD $0xf2e0444e // movk x14, #546, lsl #48 + WORD $0xf9400411 // ldr x17, [x0, #8] + WORD $0xcb100225 // sub x5, x17, x16 + WORD $0x8b100130 // add x16, x9, x16 + WORD $0x910043e9 // add x9, sp, #16 + WORD $0x91008129 // add x9, x9, #32 + WORD $0x4f01e440 // movi.16b v0, #34 +Lloh4: + WORD $0x10ffeb91 // adr x17, lCPI0_0 $-656(%rip) +Lloh5: + WORD $0x3dc00221 // ldr q1, [x17, lCPI0_0@PAGEOFF] $0(%rip) +Lloh6: + WORD $0x10ffebd1 // adr x17, lCPI0_1 $-648(%rip) +Lloh7: + WORD $0x3dc00222 // ldr q2, [x17, lCPI0_1@PAGEOFF] $0(%rip) + WORD $0x4f02e783 // movi.16b v3, #92 + WORD $0xb200e3f1 // mov x17, #1229782938247303441 + WORD $0xb203e3e2 // mov x2, #2459565876494606882 + WORD $0xb202e3e3 // mov x3, #4919131752989213764 + WORD $0xb201e3e4 // mov x4, #-8608480567731124088 + WORD $0x4f03e764 // movi.16b v4, #123 + WORD $0x4f03e7a5 // movi.16b v5, #125 + WORD $0x6f00e406 // movi.2d v6, #0000000000000000 + WORD $0x14000018 // b LBB0_51 $96(%rip) +LBB0_44: + WORD $0x34004d0a // cbz w10, LBB0_116 $2464(%rip) + WORD $0x7100895f // cmp w10, #34 + WORD $0x54001f40 // b.eq LBB0_75 $1000(%rip) + WORD $0x7100b55f // cmp w10, #45 + WORD $0x54fff4c0 // b.eq LBB0_24 $-360(%rip) + WORD $0x14000251 // b LBB0_110 $2372(%rip) +LBB0_47: + WORD $0x71016d5f // cmp w10, #91 + WORD $0x540027a0 // b.eq LBB0_84 $1268(%rip) + WORD $0x7101995f // cmp w10, #102 + WORD $0x540049a1 // b.ne LBB0_110 $2356(%rip) + WORD $0x91001509 // add x9, x8, #5 + WORD $0xf940040a // ldr x10, [x0, #8] + WORD $0xeb0a013f // cmp x9, x10 + WORD $0x54fff969 // b.ls LBB0_37 $-212(%rip) + WORD $0x1400025a // b LBB0_116 $2408(%rip) +LBB0_50: + WORD $0x937ffce7 // asr x7, x7, #63 + WORD $0x9e670267 // fmov d7, x19 + WORD $0x0e2058e7 // cnt.8b v7, v7 + WORD $0x2e3038e7 // uaddlv.8b h7, v7 + WORD $0x1e2600e5 // fmov w5, s7 + WORD $0x8b0a00aa // add x10, x5, x10 + WORD $0x91010210 // add x16, x16, #64 + WORD $0xaa0603e5 // mov x5, x6 +LBB0_51: + WORD $0xf10100a6 // subs x6, x5, #64 + WORD $0x540015cb // b.lt LBB0_58 $696(%rip) +LBB0_52: + WORD $0xad404612 // ldp q18, q17, [x16] + WORD $0xad411e10 // ldp q16, q7, [x16, #32] + WORD $0x6e238e53 // cmeq.16b v19, v18, v3 + WORD $0x4e211e73 // and.16b v19, v19, v1 + WORD $0x4e020273 // tbl.16b v19, { v19 }, v2 + WORD $0x4e71ba73 // addv.8h h19, v19 + WORD $0x1e260273 // fmov w19, s19 + WORD $0x6e238e33 // cmeq.16b v19, v17, v3 + WORD $0x4e211e73 // and.16b v19, v19, v1 + WORD $0x4e020273 // tbl.16b v19, { v19 }, v2 + WORD $0x4e71ba73 // addv.8h h19, v19 + WORD $0x1e260274 // fmov w20, s19 + WORD $0x6e238e13 // cmeq.16b v19, v16, v3 + WORD $0x4e211e73 // and.16b v19, v19, v1 + WORD $0x4e020273 // tbl.16b v19, { v19 }, v2 + WORD $0x4e71ba73 // addv.8h h19, v19 + WORD $0x1e260275 // fmov w21, s19 + WORD $0x6e238cf3 // cmeq.16b v19, v7, v3 + WORD $0x4e211e73 // and.16b v19, v19, v1 + WORD $0x4e020273 // tbl.16b v19, { v19 }, v2 + WORD $0x4e71ba73 // addv.8h h19, v19 + WORD $0x1e260276 // fmov w22, s19 + WORD $0xd3607eb5 // lsl x21, x21, #32 + WORD $0xaa16c2b5 // orr x21, x21, x22, lsl #48 + WORD $0x53103e94 // lsl w20, w20, #16 + WORD $0xaa1402b4 // orr x20, x21, x20 + WORD $0xaa130293 // orr x19, x20, x19 + WORD $0xaa0f0274 // orr x20, x19, x15 + WORD $0xb5000094 // cbnz x20, LBB0_54 $16(%rip) + WORD $0xd280000f // mov x15, #0 + WORD $0xd2800013 // mov x19, #0 + WORD $0x1400000a // b LBB0_55 $40(%rip) +LBB0_54: + WORD $0x8a2f0274 // bic x20, x19, x15 + WORD $0xaa1405f5 // orr x21, x15, x20, lsl #1 + WORD $0x8a35026f // bic x15, x19, x21 + WORD $0x9201f1ef // and x15, x15, #0xaaaaaaaaaaaaaaaa + WORD $0xab1401f3 // adds x19, x15, x20 + WORD $0x1a9f37ef // cset w15, hs + WORD $0xd37ffa73 // lsl x19, x19, #1 + WORD $0xd200f273 // eor x19, x19, #0x5555555555555555 + WORD $0x8a150273 // and x19, x19, x21 +LBB0_55: + WORD $0x6e208e53 // cmeq.16b v19, v18, v0 + WORD $0x4e211e73 // and.16b v19, v19, v1 + WORD $0x4e020273 // tbl.16b v19, { v19 }, v2 + WORD $0x4e71ba73 // addv.8h h19, v19 + WORD $0x1e260274 // fmov w20, s19 + WORD $0x6e208e33 // cmeq.16b v19, v17, v0 + WORD $0x4e211e73 // and.16b v19, v19, v1 + WORD $0x4e020273 // tbl.16b v19, { v19 }, v2 + WORD $0x4e71ba73 // addv.8h h19, v19 + WORD $0x1e260275 // fmov w21, s19 + WORD $0x6e208e13 // cmeq.16b v19, v16, v0 + WORD $0x4e211e73 // and.16b v19, v19, v1 + WORD $0x4e020273 // tbl.16b v19, { v19 }, v2 + WORD $0x4e71ba73 // addv.8h h19, v19 + WORD $0x1e260276 // fmov w22, s19 + WORD $0x6e208cf3 // cmeq.16b v19, v7, v0 + WORD $0x4e211e73 // and.16b v19, v19, v1 + WORD $0x4e020273 // tbl.16b v19, { v19 }, v2 + WORD $0x4e71ba73 // addv.8h h19, v19 + WORD $0x1e260277 // fmov w23, s19 + WORD $0xd3607ed6 // lsl x22, x22, #32 + WORD $0xaa17c2d6 // orr x22, x22, x23, lsl #48 + WORD $0x53103eb5 // lsl w21, w21, #16 + WORD $0xaa1502d5 // orr x21, x22, x21 + WORD $0xaa1402b4 // orr x20, x21, x20 + WORD $0x8a330293 // bic x19, x20, x19 + WORD $0x9200e274 // and x20, x19, #0x1111111111111111 + WORD $0x9203e275 // and x21, x19, #0x2222222222222222 + WORD $0x9202e276 // and x22, x19, #0x4444444444444444 + WORD $0x9201e273 // and x19, x19, #0x8888888888888888 + WORD $0x9b117e97 // mul x23, x20, x17 + WORD $0x9b0c7eb8 // mul x24, x21, x12 + WORD $0xca1802f7 // eor x23, x23, x24 + WORD $0x9b0d7ed8 // mul x24, x22, x13 + WORD $0x9b0e7e79 // mul x25, x19, x14 + WORD $0xca190318 // eor x24, x24, x25 + WORD $0xca1802f7 // eor x23, x23, x24 + WORD $0x9b027e98 // mul x24, x20, x2 + WORD $0x9b117eb9 // mul x25, x21, x17 + WORD $0xca190318 // eor x24, x24, x25 + WORD $0x9b0c7ed9 // mul x25, x22, x12 + WORD $0x9b0d7e7a // mul x26, x19, x13 + WORD $0xca1a0339 // eor x25, x25, x26 + WORD $0xca190318 // eor x24, x24, x25 + WORD $0x9b037e99 // mul x25, x20, x3 + WORD $0x9b027eba // mul x26, x21, x2 + WORD $0xca1a0339 // eor x25, x25, x26 + WORD $0x9b117eda // mul x26, x22, x17 + WORD $0x9b0c7e7b // mul x27, x19, x12 + WORD $0xca1b035a // eor x26, x26, x27 + WORD $0xca1a0339 // eor x25, x25, x26 + WORD $0x9b047e94 // mul x20, x20, x4 + WORD $0x9b037eb5 // mul x21, x21, x3 + WORD $0xca150294 // eor x20, x20, x21 + WORD $0x9b027ed5 // mul x21, x22, x2 + WORD $0x9b117e73 // mul x19, x19, x17 + WORD $0xca1302b3 // eor x19, x21, x19 + WORD $0xca130293 // eor x19, x20, x19 + WORD $0x9200e2f4 // and x20, x23, #0x1111111111111111 + WORD $0x9203e315 // and x21, x24, #0x2222222222222222 + WORD $0x9202e336 // and x22, x25, #0x4444444444444444 + WORD $0x9201e273 // and x19, x19, #0x8888888888888888 + WORD $0xaa150294 // orr x20, x20, x21 + WORD $0xaa1302d3 // orr x19, x22, x19 + WORD $0xaa130293 // orr x19, x20, x19 + WORD $0xca070267 // eor x7, x19, x7 + WORD $0x6e248e53 // cmeq.16b v19, v18, v4 + WORD $0x4e211e73 // and.16b v19, v19, v1 + WORD $0x4e020273 // tbl.16b v19, { v19 }, v2 + WORD $0x4e71ba73 // addv.8h h19, v19 + WORD $0x1e260273 // fmov w19, s19 + WORD $0x6e248e33 // cmeq.16b v19, v17, v4 + WORD $0x4e211e73 // and.16b v19, v19, v1 + WORD $0x4e020273 // tbl.16b v19, { v19 }, v2 + WORD $0x4e71ba73 // addv.8h h19, v19 + WORD $0x1e260274 // fmov w20, s19 + WORD $0x6e248e13 // cmeq.16b v19, v16, v4 + WORD $0x4e211e73 // and.16b v19, v19, v1 + WORD $0x4e020273 // tbl.16b v19, { v19 }, v2 + WORD $0x4e71ba73 // addv.8h h19, v19 + WORD $0x1e260275 // fmov w21, s19 + WORD $0x6e248cf3 // cmeq.16b v19, v7, v4 + WORD $0x4e211e73 // and.16b v19, v19, v1 + WORD $0x4e020273 // tbl.16b v19, { v19 }, v2 + WORD $0x4e71ba73 // addv.8h h19, v19 + WORD $0x1e260276 // fmov w22, s19 + WORD $0xd3607eb5 // lsl x21, x21, #32 + WORD $0xaa16c2b5 // orr x21, x21, x22, lsl #48 + WORD $0x53103e94 // lsl w20, w20, #16 + WORD $0xaa1402b4 // orr x20, x21, x20 + WORD $0xaa130293 // orr x19, x20, x19 + WORD $0x8a270273 // bic x19, x19, x7 + WORD $0x6e258e52 // cmeq.16b v18, v18, v5 + WORD $0x4e211e52 // and.16b v18, v18, v1 + WORD $0x4e020252 // tbl.16b v18, { v18 }, v2 + WORD $0x4e71ba52 // addv.8h h18, v18 + WORD $0x1e260254 // fmov w20, s18 + WORD $0x6e258e31 // cmeq.16b v17, v17, v5 + WORD $0x4e211e31 // and.16b v17, v17, v1 + WORD $0x4e020231 // tbl.16b v17, { v17 }, v2 + WORD $0x4e71ba31 // addv.8h h17, v17 + WORD $0x1e260235 // fmov w21, s17 + WORD $0x6e258e10 // cmeq.16b v16, v16, v5 + WORD $0x4e211e10 // and.16b v16, v16, v1 + WORD $0x4e020210 // tbl.16b v16, { v16 }, v2 + WORD $0x4e71ba10 // addv.8h h16, v16 + WORD $0x1e260216 // fmov w22, s16 + WORD $0x6e258ce7 // cmeq.16b v7, v7, v5 + WORD $0x4e211ce7 // and.16b v7, v7, v1 + WORD $0x4e0200e7 // tbl.16b v7, { v7 }, v2 + WORD $0x4e71b8e7 // addv.8h h7, v7 + WORD $0x1e2600f7 // fmov w23, s7 + WORD $0xd3607ed6 // lsl x22, x22, #32 + WORD $0xaa17c2d6 // orr x22, x22, x23, lsl #48 + WORD $0x53103eb5 // lsl w21, w21, #16 + WORD $0xaa1502d5 // orr x21, x22, x21 + WORD $0xaa1402b4 // orr x20, x21, x20 + WORD $0xea270294 // bics x20, x20, x7 + WORD $0x54ffeae0 // b.eq LBB0_50 $-676(%rip) +LBB0_56: + WORD $0xd1000695 // sub x21, x20, #1 + WORD $0x8a1302b6 // and x22, x21, x19 + WORD $0x9e6702c7 // fmov d7, x22 + WORD $0x0e2058e7 // cnt.8b v7, v7 + WORD $0x2e3038e7 // uaddlv.8b h7, v7 + WORD $0x1e2600f6 // fmov w22, s7 + WORD $0x8b0a02d6 // add x22, x22, x10 + WORD $0xeb0b02df // cmp x22, x11 + WORD $0x54003109 // b.ls LBB0_109 $1568(%rip) + WORD $0x9100056b // add x11, x11, #1 + WORD $0xea1402b4 // ands x20, x21, x20 + WORD $0x54fffea1 // b.ne LBB0_56 $-44(%rip) + WORD $0x17ffff4a // b LBB0_50 $-728(%rip) +LBB0_58: + WORD $0xf10000bf // cmp x5, #0 + WORD $0x540033ed // b.le LBB0_114 $1660(%rip) + WORD $0xad019be6 // stp q6, q6, [sp, #48] + WORD $0xad009be6 // stp q6, q6, [sp, #16] + WORD $0x92402e13 // and x19, x16, #0xfff + WORD $0xf13f067f // cmp x19, #4033 + WORD $0x54ffe9a3 // b.lo LBB0_52 $-716(%rip) + WORD $0xf10080b4 // subs x20, x5, #32 + WORD $0x540000a3 // b.lo LBB0_62 $20(%rip) + WORD $0xacc14207 // ldp q7, q16, [x16], #32 + WORD $0xad00c3e7 // stp q7, q16, [sp, #16] + WORD $0xaa0903f3 // mov x19, x9 + WORD $0x14000003 // b LBB0_63 $12(%rip) +LBB0_62: + WORD $0x910043f3 // add x19, sp, #16 + WORD $0xaa0503f4 // mov x20, x5 +LBB0_63: + WORD $0xf1004295 // subs x21, x20, #16 + WORD $0x54000243 // b.lo LBB0_69 $72(%rip) + WORD $0x3cc10607 // ldr q7, [x16], #16 + WORD $0x3c810667 // str q7, [x19], #16 + WORD $0xaa1503f4 // mov x20, x21 + WORD $0xf10022b5 // subs x21, x21, #8 + WORD $0x540001e2 // b.hs LBB0_70 $60(%rip) +LBB0_65: + WORD $0xf1001295 // subs x21, x20, #4 + WORD $0x54000243 // b.lo LBB0_71 $72(%rip) +LBB0_66: + WORD $0xb8404614 // ldr w20, [x16], #4 + WORD $0xb8004674 // str w20, [x19], #4 + WORD $0xaa1503f4 // mov x20, x21 + WORD $0xf1000ab5 // subs x21, x21, #2 + WORD $0x540001e2 // b.hs LBB0_72 $60(%rip) +LBB0_67: + WORD $0xb4000254 // cbz x20, LBB0_73 $72(%rip) +LBB0_68: + WORD $0x39400210 // ldrb w16, [x16] + WORD $0x39000270 // strb w16, [x19] + WORD $0x910043f0 // add x16, sp, #16 + WORD $0x17ffff32 // b LBB0_52 $-824(%rip) +LBB0_69: + WORD $0xf1002295 // subs x21, x20, #8 + WORD $0x54fffe63 // b.lo LBB0_65 $-52(%rip) +LBB0_70: + WORD $0xf8408614 // ldr x20, [x16], #8 + WORD $0xf8008674 // str x20, [x19], #8 + WORD $0xaa1503f4 // mov x20, x21 + WORD $0xf10012b5 // subs x21, x21, #4 + WORD $0x54fffe02 // b.hs LBB0_66 $-64(%rip) +LBB0_71: + WORD $0xf1000a95 // subs x21, x20, #2 + WORD $0x54fffe63 // b.lo LBB0_67 $-52(%rip) +LBB0_72: + WORD $0x78402614 // ldrh w20, [x16], #2 + WORD $0x78002674 // strh w20, [x19], #2 + WORD $0xaa1503f4 // mov x20, x21 + WORD $0xb5fffe15 // cbnz x21, LBB0_68 $-64(%rip) +LBB0_73: + WORD $0x910043f0 // add x16, sp, #16 + WORD $0x17ffff23 // b LBB0_52 $-884(%rip) +LBB0_74: + WORD $0x91001109 // add x9, x8, #4 + WORD $0xf940040a // ldr x10, [x0, #8] + WORD $0xeb0a013f // cmp x9, x10 + WORD $0x54ffdbc9 // b.ls LBB0_37 $-1160(%rip) + WORD $0x1400016d // b LBB0_116 $1460(%rip) +LBB0_75: + WORD $0xf940040b // ldr x11, [x0, #8] + WORD $0xcb10016a // sub x10, x11, x16 + WORD $0xf100815f // cmp x10, #32 + WORD $0x54002c4b // b.lt LBB0_113 $1416(%rip) + WORD $0xd280000a // mov x10, #0 + WORD $0xd280000d // mov x13, #0 + WORD $0x8b08012c // add x12, x9, x8 + WORD $0x4f01e440 // movi.16b v0, #34 +Lloh8: + WORD $0x10ffc96e // adr x14, lCPI0_0 $-1748(%rip) +Lloh9: + WORD $0x3dc001c1 // ldr q1, [x14, lCPI0_0@PAGEOFF] $0(%rip) + WORD $0xcb08016b // sub x11, x11, x8 +Lloh10: + WORD $0x10ffc98e // adr x14, lCPI0_1 $-1744(%rip) +Lloh11: + WORD $0x3dc001c2 // ldr q2, [x14, lCPI0_1@PAGEOFF] $0(%rip) + WORD $0x528003ee // mov w14, #31 + WORD $0x4f02e783 // movi.16b v3, #92 +LBB0_77: + WORD $0x8b0a018f // add x15, x12, x10 + WORD $0x3cc011e4 // ldur q4, [x15, #1] + WORD $0x3cc111e5 // ldur q5, [x15, #17] + WORD $0x6e208c86 // cmeq.16b v6, v4, v0 + WORD $0x4e211cc6 // and.16b v6, v6, v1 + WORD $0x4e0200c6 // tbl.16b v6, { v6 }, v2 + WORD $0x4e71b8c6 // addv.8h h6, v6 + WORD $0x1e2600cf // fmov w15, s6 + WORD $0x6e208ca6 // cmeq.16b v6, v5, v0 + WORD $0x4e211cc6 // and.16b v6, v6, v1 + WORD $0x4e0200c6 // tbl.16b v6, { v6 }, v2 + WORD $0x4e71b8c6 // addv.8h h6, v6 + WORD $0x1e2600d0 // fmov w16, s6 + WORD $0x33103e0f // bfi w15, w16, #16, #16 + WORD $0x6e238c84 // cmeq.16b v4, v4, v3 + WORD $0x4e211c84 // and.16b v4, v4, v1 + WORD $0x4e020084 // tbl.16b v4, { v4 }, v2 + WORD $0x4e71b884 // addv.8h h4, v4 + WORD $0x1e260090 // fmov w16, s4 + WORD $0x6e238ca4 // cmeq.16b v4, v5, v3 + WORD $0x4e211c84 // and.16b v4, v4, v1 + WORD $0x4e020084 // tbl.16b v4, { v4 }, v2 + WORD $0x4e71b884 // addv.8h h4, v4 + WORD $0x1e260091 // fmov w17, s4 + WORD $0x33103e30 // bfi w16, w17, #16, #16 + WORD $0x7100021f // cmp w16, #0 + WORD $0xfa4009a0 // ccmp x13, #0, #0, eq + WORD $0x540001a0 // b.eq LBB0_79 $52(%rip) + WORD $0x0a2d0211 // bic w17, w16, w13 + WORD $0x2a1105a0 // orr w0, w13, w17, lsl #1 + WORD $0x0a20020d // bic w13, w16, w0 + WORD $0x1201f1ad // and w13, w13, #0xaaaaaaaa + WORD $0x2b1101b0 // adds w16, w13, w17 + WORD $0x1a9f37ed // cset w13, hs + WORD $0x531f7a10 // lsl w16, w16, #1 + WORD $0x5200f210 // eor w16, w16, #0x55555555 + WORD $0x0a000210 // and w16, w16, w0 + WORD $0x2a3003f0 // mvn w16, w16 + WORD $0x8a0f020f // and x15, x16, x15 + WORD $0x14000002 // b LBB0_80 $8(%rip) +LBB0_79: + WORD $0xd280000d // mov x13, #0 +LBB0_80: + WORD $0xb50024af // cbnz x15, LBB0_111 $1172(%rip) + WORD $0x9100814a // add x10, x10, #32 + WORD $0xd10081ce // sub x14, x14, #32 + WORD $0x8b0e016f // add x15, x11, x14 + WORD $0xf100fdff // cmp x15, #63 + WORD $0x54fffa4c // b.gt LBB0_77 $-184(%rip) + WORD $0xb50026ed // cbnz x13, LBB0_118 $1244(%rip) + WORD $0x8b08012c // add x12, x9, x8 + WORD $0x8b0a018c // add x12, x12, x10 + WORD $0x9100058c // add x12, x12, #1 + WORD $0xaa2a03ea // mvn x10, x10 + WORD $0x8b0b014a // add x10, x10, x11 + WORD $0x92800000 // mov x0, #-1 + WORD $0xf100055f // cmp x10, #1 + WORD $0x5400280a // b.ge LBB0_121 $1280(%rip) + WORD $0x14000126 // b LBB0_117 $1176(%rip) +LBB0_84: + WORD $0xd2800007 // mov x7, #0 + WORD $0xd280000f // mov x15, #0 + WORD $0xd280000a // mov x10, #0 + WORD $0xd280000b // mov x11, #0 + WORD $0xb201e3ec // mov x12, #-8608480567731124088 + WORD $0xf2e1110c // movk x12, #2184, lsl #48 + WORD $0xb202e3ed // mov x13, #4919131752989213764 + WORD $0xf2e0888d // movk x13, #1092, lsl #48 + WORD $0xb203e3ee // mov x14, #2459565876494606882 + WORD $0xf2e0444e // movk x14, #546, lsl #48 + WORD $0xf9400411 // ldr x17, [x0, #8] + WORD $0xcb100225 // sub x5, x17, x16 + WORD $0x8b100130 // add x16, x9, x16 + WORD $0x910043e9 // add x9, sp, #16 + WORD $0x91008129 // add x9, x9, #32 + WORD $0x4f01e440 // movi.16b v0, #34 +Lloh12: + WORD $0x10ffbf71 // adr x17, lCPI0_0 $-2068(%rip) +Lloh13: + WORD $0x3dc00221 // ldr q1, [x17, lCPI0_0@PAGEOFF] $0(%rip) +Lloh14: + WORD $0x10ffbfb1 // adr x17, lCPI0_1 $-2060(%rip) +Lloh15: + WORD $0x3dc00222 // ldr q2, [x17, lCPI0_1@PAGEOFF] $0(%rip) + WORD $0x4f02e783 // movi.16b v3, #92 + WORD $0xb200e3f1 // mov x17, #1229782938247303441 + WORD $0xb203e3e2 // mov x2, #2459565876494606882 + WORD $0xb202e3e3 // mov x3, #4919131752989213764 + WORD $0xb201e3e4 // mov x4, #-8608480567731124088 + WORD $0x4f02e764 // movi.16b v4, #91 + WORD $0x4f02e7a5 // movi.16b v5, #93 + WORD $0x6f00e406 // movi.2d v6, #0000000000000000 + WORD $0x14000009 // b LBB0_86 $36(%rip) +LBB0_85: + WORD $0x937ffce7 // asr x7, x7, #63 + WORD $0x9e670267 // fmov d7, x19 + WORD $0x0e2058e7 // cnt.8b v7, v7 + WORD $0x2e3038e7 // uaddlv.8b h7, v7 + WORD $0x1e2600e5 // fmov w5, s7 + WORD $0x8b0a00aa // add x10, x5, x10 + WORD $0x91010210 // add x16, x16, #64 + WORD $0xaa0603e5 // mov x5, x6 +LBB0_86: + WORD $0xf10100a6 // subs x6, x5, #64 + WORD $0x540015cb // b.lt LBB0_93 $696(%rip) +LBB0_87: + WORD $0xad404612 // ldp q18, q17, [x16] + WORD $0xad411e10 // ldp q16, q7, [x16, #32] + WORD $0x6e238e53 // cmeq.16b v19, v18, v3 + WORD $0x4e211e73 // and.16b v19, v19, v1 + WORD $0x4e020273 // tbl.16b v19, { v19 }, v2 + WORD $0x4e71ba73 // addv.8h h19, v19 + WORD $0x1e260273 // fmov w19, s19 + WORD $0x6e238e33 // cmeq.16b v19, v17, v3 + WORD $0x4e211e73 // and.16b v19, v19, v1 + WORD $0x4e020273 // tbl.16b v19, { v19 }, v2 + WORD $0x4e71ba73 // addv.8h h19, v19 + WORD $0x1e260274 // fmov w20, s19 + WORD $0x6e238e13 // cmeq.16b v19, v16, v3 + WORD $0x4e211e73 // and.16b v19, v19, v1 + WORD $0x4e020273 // tbl.16b v19, { v19 }, v2 + WORD $0x4e71ba73 // addv.8h h19, v19 + WORD $0x1e260275 // fmov w21, s19 + WORD $0x6e238cf3 // cmeq.16b v19, v7, v3 + WORD $0x4e211e73 // and.16b v19, v19, v1 + WORD $0x4e020273 // tbl.16b v19, { v19 }, v2 + WORD $0x4e71ba73 // addv.8h h19, v19 + WORD $0x1e260276 // fmov w22, s19 + WORD $0xd3607eb5 // lsl x21, x21, #32 + WORD $0xaa16c2b5 // orr x21, x21, x22, lsl #48 + WORD $0x53103e94 // lsl w20, w20, #16 + WORD $0xaa1402b4 // orr x20, x21, x20 + WORD $0xaa130293 // orr x19, x20, x19 + WORD $0xaa0f0274 // orr x20, x19, x15 + WORD $0xb5000094 // cbnz x20, LBB0_89 $16(%rip) + WORD $0xd280000f // mov x15, #0 + WORD $0xd2800013 // mov x19, #0 + WORD $0x1400000a // b LBB0_90 $40(%rip) +LBB0_89: + WORD $0x8a2f0274 // bic x20, x19, x15 + WORD $0xaa1405f5 // orr x21, x15, x20, lsl #1 + WORD $0x8a35026f // bic x15, x19, x21 + WORD $0x9201f1ef // and x15, x15, #0xaaaaaaaaaaaaaaaa + WORD $0xab1401f3 // adds x19, x15, x20 + WORD $0x1a9f37ef // cset w15, hs + WORD $0xd37ffa73 // lsl x19, x19, #1 + WORD $0xd200f273 // eor x19, x19, #0x5555555555555555 + WORD $0x8a150273 // and x19, x19, x21 +LBB0_90: + WORD $0x6e208e53 // cmeq.16b v19, v18, v0 + WORD $0x4e211e73 // and.16b v19, v19, v1 + WORD $0x4e020273 // tbl.16b v19, { v19 }, v2 + WORD $0x4e71ba73 // addv.8h h19, v19 + WORD $0x1e260274 // fmov w20, s19 + WORD $0x6e208e33 // cmeq.16b v19, v17, v0 + WORD $0x4e211e73 // and.16b v19, v19, v1 + WORD $0x4e020273 // tbl.16b v19, { v19 }, v2 + WORD $0x4e71ba73 // addv.8h h19, v19 + WORD $0x1e260275 // fmov w21, s19 + WORD $0x6e208e13 // cmeq.16b v19, v16, v0 + WORD $0x4e211e73 // and.16b v19, v19, v1 + WORD $0x4e020273 // tbl.16b v19, { v19 }, v2 + WORD $0x4e71ba73 // addv.8h h19, v19 + WORD $0x1e260276 // fmov w22, s19 + WORD $0x6e208cf3 // cmeq.16b v19, v7, v0 + WORD $0x4e211e73 // and.16b v19, v19, v1 + WORD $0x4e020273 // tbl.16b v19, { v19 }, v2 + WORD $0x4e71ba73 // addv.8h h19, v19 + WORD $0x1e260277 // fmov w23, s19 + WORD $0xd3607ed6 // lsl x22, x22, #32 + WORD $0xaa17c2d6 // orr x22, x22, x23, lsl #48 + WORD $0x53103eb5 // lsl w21, w21, #16 + WORD $0xaa1502d5 // orr x21, x22, x21 + WORD $0xaa1402b4 // orr x20, x21, x20 + WORD $0x8a330293 // bic x19, x20, x19 + WORD $0x9200e274 // and x20, x19, #0x1111111111111111 + WORD $0x9203e275 // and x21, x19, #0x2222222222222222 + WORD $0x9202e276 // and x22, x19, #0x4444444444444444 + WORD $0x9201e273 // and x19, x19, #0x8888888888888888 + WORD $0x9b117e97 // mul x23, x20, x17 + WORD $0x9b0c7eb8 // mul x24, x21, x12 + WORD $0xca1802f7 // eor x23, x23, x24 + WORD $0x9b0d7ed8 // mul x24, x22, x13 + WORD $0x9b0e7e79 // mul x25, x19, x14 + WORD $0xca190318 // eor x24, x24, x25 + WORD $0xca1802f7 // eor x23, x23, x24 + WORD $0x9b027e98 // mul x24, x20, x2 + WORD $0x9b117eb9 // mul x25, x21, x17 + WORD $0xca190318 // eor x24, x24, x25 + WORD $0x9b0c7ed9 // mul x25, x22, x12 + WORD $0x9b0d7e7a // mul x26, x19, x13 + WORD $0xca1a0339 // eor x25, x25, x26 + WORD $0xca190318 // eor x24, x24, x25 + WORD $0x9b037e99 // mul x25, x20, x3 + WORD $0x9b027eba // mul x26, x21, x2 + WORD $0xca1a0339 // eor x25, x25, x26 + WORD $0x9b117eda // mul x26, x22, x17 + WORD $0x9b0c7e7b // mul x27, x19, x12 + WORD $0xca1b035a // eor x26, x26, x27 + WORD $0xca1a0339 // eor x25, x25, x26 + WORD $0x9b047e94 // mul x20, x20, x4 + WORD $0x9b037eb5 // mul x21, x21, x3 + WORD $0xca150294 // eor x20, x20, x21 + WORD $0x9b027ed5 // mul x21, x22, x2 + WORD $0x9b117e73 // mul x19, x19, x17 + WORD $0xca1302b3 // eor x19, x21, x19 + WORD $0xca130293 // eor x19, x20, x19 + WORD $0x9200e2f4 // and x20, x23, #0x1111111111111111 + WORD $0x9203e315 // and x21, x24, #0x2222222222222222 + WORD $0x9202e336 // and x22, x25, #0x4444444444444444 + WORD $0x9201e273 // and x19, x19, #0x8888888888888888 + WORD $0xaa150294 // orr x20, x20, x21 + WORD $0xaa1302d3 // orr x19, x22, x19 + WORD $0xaa130293 // orr x19, x20, x19 + WORD $0xca070267 // eor x7, x19, x7 + WORD $0x6e248e53 // cmeq.16b v19, v18, v4 + WORD $0x4e211e73 // and.16b v19, v19, v1 + WORD $0x4e020273 // tbl.16b v19, { v19 }, v2 + WORD $0x4e71ba73 // addv.8h h19, v19 + WORD $0x1e260273 // fmov w19, s19 + WORD $0x6e248e33 // cmeq.16b v19, v17, v4 + WORD $0x4e211e73 // and.16b v19, v19, v1 + WORD $0x4e020273 // tbl.16b v19, { v19 }, v2 + WORD $0x4e71ba73 // addv.8h h19, v19 + WORD $0x1e260274 // fmov w20, s19 + WORD $0x6e248e13 // cmeq.16b v19, v16, v4 + WORD $0x4e211e73 // and.16b v19, v19, v1 + WORD $0x4e020273 // tbl.16b v19, { v19 }, v2 + WORD $0x4e71ba73 // addv.8h h19, v19 + WORD $0x1e260275 // fmov w21, s19 + WORD $0x6e248cf3 // cmeq.16b v19, v7, v4 + WORD $0x4e211e73 // and.16b v19, v19, v1 + WORD $0x4e020273 // tbl.16b v19, { v19 }, v2 + WORD $0x4e71ba73 // addv.8h h19, v19 + WORD $0x1e260276 // fmov w22, s19 + WORD $0xd3607eb5 // lsl x21, x21, #32 + WORD $0xaa16c2b5 // orr x21, x21, x22, lsl #48 + WORD $0x53103e94 // lsl w20, w20, #16 + WORD $0xaa1402b4 // orr x20, x21, x20 + WORD $0xaa130293 // orr x19, x20, x19 + WORD $0x8a270273 // bic x19, x19, x7 + WORD $0x6e258e52 // cmeq.16b v18, v18, v5 + WORD $0x4e211e52 // and.16b v18, v18, v1 + WORD $0x4e020252 // tbl.16b v18, { v18 }, v2 + WORD $0x4e71ba52 // addv.8h h18, v18 + WORD $0x1e260254 // fmov w20, s18 + WORD $0x6e258e31 // cmeq.16b v17, v17, v5 + WORD $0x4e211e31 // and.16b v17, v17, v1 + WORD $0x4e020231 // tbl.16b v17, { v17 }, v2 + WORD $0x4e71ba31 // addv.8h h17, v17 + WORD $0x1e260235 // fmov w21, s17 + WORD $0x6e258e10 // cmeq.16b v16, v16, v5 + WORD $0x4e211e10 // and.16b v16, v16, v1 + WORD $0x4e020210 // tbl.16b v16, { v16 }, v2 + WORD $0x4e71ba10 // addv.8h h16, v16 + WORD $0x1e260216 // fmov w22, s16 + WORD $0x6e258ce7 // cmeq.16b v7, v7, v5 + WORD $0x4e211ce7 // and.16b v7, v7, v1 + WORD $0x4e0200e7 // tbl.16b v7, { v7 }, v2 + WORD $0x4e71b8e7 // addv.8h h7, v7 + WORD $0x1e2600f7 // fmov w23, s7 + WORD $0xd3607ed6 // lsl x22, x22, #32 + WORD $0xaa17c2d6 // orr x22, x22, x23, lsl #48 + WORD $0x53103eb5 // lsl w21, w21, #16 + WORD $0xaa1502d5 // orr x21, x22, x21 + WORD $0xaa1402b4 // orr x20, x21, x20 + WORD $0xea270294 // bics x20, x20, x7 + WORD $0x54ffeae0 // b.eq LBB0_85 $-676(%rip) +LBB0_91: + WORD $0xd1000695 // sub x21, x20, #1 + WORD $0x8a1302b6 // and x22, x21, x19 + WORD $0x9e6702c7 // fmov d7, x22 + WORD $0x0e2058e7 // cnt.8b v7, v7 + WORD $0x2e3038e7 // uaddlv.8b h7, v7 + WORD $0x1e2600f6 // fmov w22, s7 + WORD $0x8b0a02d6 // add x22, x22, x10 + WORD $0xeb0b02df // cmp x22, x11 + WORD $0x540006c9 // b.ls LBB0_109 $216(%rip) + WORD $0x9100056b // add x11, x11, #1 + WORD $0xea1402b4 // ands x20, x21, x20 + WORD $0x54fffea1 // b.ne LBB0_91 $-44(%rip) + WORD $0x17ffff4a // b LBB0_85 $-728(%rip) +LBB0_93: + WORD $0xf10000bf // cmp x5, #0 + WORD $0x540009ad // b.le LBB0_114 $308(%rip) + WORD $0xad019be6 // stp q6, q6, [sp, #48] + WORD $0xad009be6 // stp q6, q6, [sp, #16] + WORD $0x92402e13 // and x19, x16, #0xfff + WORD $0xf13f067f // cmp x19, #4033 + WORD $0x54ffe9a3 // b.lo LBB0_87 $-716(%rip) + WORD $0xf10080b4 // subs x20, x5, #32 + WORD $0x540000a3 // b.lo LBB0_97 $20(%rip) + WORD $0xacc14207 // ldp q7, q16, [x16], #32 + WORD $0xad00c3e7 // stp q7, q16, [sp, #16] + WORD $0xaa0903f3 // mov x19, x9 + WORD $0x14000003 // b LBB0_98 $12(%rip) +LBB0_97: + WORD $0x910043f3 // add x19, sp, #16 + WORD $0xaa0503f4 // mov x20, x5 +LBB0_98: + WORD $0xf1004295 // subs x21, x20, #16 + WORD $0x54000243 // b.lo LBB0_104 $72(%rip) + WORD $0x3cc10607 // ldr q7, [x16], #16 + WORD $0x3c810667 // str q7, [x19], #16 + WORD $0xaa1503f4 // mov x20, x21 + WORD $0xf10022b5 // subs x21, x21, #8 + WORD $0x540001e2 // b.hs LBB0_105 $60(%rip) +LBB0_100: + WORD $0xf1001295 // subs x21, x20, #4 + WORD $0x54000243 // b.lo LBB0_106 $72(%rip) +LBB0_101: + WORD $0xb8404614 // ldr w20, [x16], #4 + WORD $0xb8004674 // str w20, [x19], #4 + WORD $0xaa1503f4 // mov x20, x21 + WORD $0xf1000ab5 // subs x21, x21, #2 + WORD $0x540001e2 // b.hs LBB0_107 $60(%rip) +LBB0_102: + WORD $0xb4000254 // cbz x20, LBB0_108 $72(%rip) +LBB0_103: + WORD $0x39400210 // ldrb w16, [x16] + WORD $0x39000270 // strb w16, [x19] + WORD $0x910043f0 // add x16, sp, #16 + WORD $0x17ffff32 // b LBB0_87 $-824(%rip) +LBB0_104: + WORD $0xf1002295 // subs x21, x20, #8 + WORD $0x54fffe63 // b.lo LBB0_100 $-52(%rip) +LBB0_105: + WORD $0xf8408614 // ldr x20, [x16], #8 + WORD $0xf8008674 // str x20, [x19], #8 + WORD $0xaa1503f4 // mov x20, x21 + WORD $0xf10012b5 // subs x21, x21, #4 + WORD $0x54fffe02 // b.hs LBB0_101 $-64(%rip) +LBB0_106: + WORD $0xf1000a95 // subs x21, x20, #2 + WORD $0x54fffe63 // b.lo LBB0_102 $-52(%rip) +LBB0_107: + WORD $0x78402614 // ldrh w20, [x16], #2 + WORD $0x78002674 // strh w20, [x19], #2 + WORD $0xaa1503f4 // mov x20, x21 + WORD $0xb5fffe15 // cbnz x21, LBB0_103 $-64(%rip) +LBB0_108: + WORD $0x910043f0 // add x16, sp, #16 + WORD $0x17ffff23 // b LBB0_87 $-884(%rip) +LBB0_109: + WORD $0xf9400409 // ldr x9, [x0, #8] + WORD $0xdac0028a // rbit x10, x20 + WORD $0xdac0114a // clz x10, x10 + WORD $0xcb05014a // sub x10, x10, x5 + WORD $0x8b090149 // add x9, x10, x9 + WORD $0x9100052a // add x10, x9, #1 + WORD $0xf900002a // str x10, [x1] + WORD $0xf940040b // ldr x11, [x0, #8] + WORD $0xeb0b015f // cmp x10, x11 + WORD $0x9a892569 // csinc x9, x11, x9, hs + WORD $0xf9000029 // str x9, [x1] + WORD $0xda9f9100 // csinv x0, x8, xzr, ls + WORD $0x14000014 // b LBB0_117 $80(%rip) +LBB0_110: + WORD $0xf9000028 // str x8, [x1] + WORD $0x92800020 // mov x0, #-2 + WORD $0x14000011 // b LBB0_117 $68(%rip) +LBB0_111: + WORD $0xdac001e9 // rbit x9, x15 + WORD $0xdac01129 // clz x9, x9 + WORD $0x8b0a010a // add x10, x8, x10 + WORD $0x8b0a0129 // add x9, x9, x10 + WORD $0x91000929 // add x9, x9, #2 + WORD $0x17fffd7a // b LBB0_37 $-2584(%rip) +LBB0_112: + WORD $0xf900002d // str x13, [x1] + WORD $0x17fffd79 // b LBB0_38 $-2588(%rip) +LBB0_113: + WORD $0x8b10012c // add x12, x9, x16 + WORD $0x92800000 // mov x0, #-1 + WORD $0xf100055f // cmp x10, #1 + WORD $0x540003ca // b.ge LBB0_121 $120(%rip) + WORD $0x14000004 // b LBB0_117 $16(%rip) +LBB0_114: + WORD $0xf9400408 // ldr x8, [x0, #8] +LBB0_115: + WORD $0xf9000028 // str x8, [x1] +LBB0_116: + WORD $0x92800000 // mov x0, #-1 +LBB0_117: + WORD $0xa94afbfd // ldp fp, lr, [sp, #168] + WORD $0xa949cff4 // ldp x20, x19, [sp, #152] + WORD $0xa948d7f6 // ldp x22, x21, [sp, #136] + WORD $0xa947dff8 // ldp x24, x23, [sp, #120] + WORD $0xa946e7fa // ldp x26, x25, [sp, #104] + WORD $0xa945effc // ldp x28, x27, [sp, #88] + WORD $0x910303ff // add sp, sp, #192 + WORD $0xd65f03c0 // ret +LBB0_118: + WORD $0xd100056c // sub x12, x11, #1 + WORD $0xeb0a019f // cmp x12, x10 + WORD $0x54fffea0 // b.eq LBB0_116 $-44(%rip) + WORD $0x8b08012c // add x12, x9, x8 + WORD $0x8b0a018c // add x12, x12, x10 + WORD $0x9100098c // add x12, x12, #2 + WORD $0xcb0a016a // sub x10, x11, x10 + WORD $0xd100094a // sub x10, x10, #2 + WORD $0x92800000 // mov x0, #-1 + WORD $0xf100055f // cmp x10, #1 + WORD $0x540000ea // b.ge LBB0_121 $28(%rip) + WORD $0x17ffffed // b LBB0_117 $-76(%rip) +LBB0_120: + WORD $0x9280002b // mov x11, #-2 + WORD $0x5280004d // mov w13, #2 + WORD $0x8b0d018c // add x12, x12, x13 + WORD $0xab0b014a // adds x10, x10, x11 + WORD $0x54fffd0d // b.le LBB0_117 $-96(%rip) +LBB0_121: + WORD $0x3940018b // ldrb w11, [x12] + WORD $0x7101717f // cmp w11, #92 + WORD $0x54ffff20 // b.eq LBB0_120 $-28(%rip) + WORD $0x7100897f // cmp w11, #34 + WORD $0x540000e0 // b.eq LBB0_124 $28(%rip) + WORD $0x9280000b // mov x11, #-1 + WORD $0x5280002d // mov w13, #1 + WORD $0x8b0d018c // add x12, x12, x13 + WORD $0xab0b014a // adds x10, x10, x11 + WORD $0x54fffeec // b.gt LBB0_121 $-36(%rip) + WORD $0x17ffffdd // b LBB0_117 $-140(%rip) +LBB0_124: + WORD $0xcb090189 // sub x9, x12, x9 + WORD $0x91000529 // add x9, x9, #1 + WORD $0x17fffd49 // b LBB0_37 $-2780(%rip) + // .p2align 2, 0x00 +_MASK_USE_NUMBER: + WORD $0x00000002 // .long 2 + +TEXT ·__skip_one_fast(SB), NOSPLIT, $0-24 + NO_LOCAL_POINTERS + +_entry: + MOVD 16(g), R16 + SUB $256, RSP, R17 + CMP R16, R17 + BLS _stack_grow + +_skip_one_fast: + MOVD s+0(FP), R0 + MOVD p+8(FP), R1 + MOVD ·_subr__skip_one_fast(SB), R11 + WORD $0x1000005e // adr x30, .+8 + JMP (R11) + MOVD R0, ret+16(FP) + RET + +_stack_grow: + MOVD R30, R3 + CALL runtime·morestack_noctxt<>(SB) + JMP _entry diff --git a/vendor/github.com/bytedance/sonic/internal/native/neon/skip_one_fast_subr_arm64.go b/vendor/github.com/bytedance/sonic/internal/native/neon/skip_one_fast_subr_arm64.go new file mode 100644 index 000000000..4801fa11d --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/neon/skip_one_fast_subr_arm64.go @@ -0,0 +1,25 @@ +// +build !noasm !appengine +// Code generated by asm2asm, DO NOT EDIT. + +package neon + +//go:nosplit +//go:noescape +//goland:noinspection ALL +func __skip_one_fast_entry__() uintptr + +var ( + _subr__skip_one_fast uintptr = __skip_one_fast_entry__() + 32 +) + +const ( + _stack__skip_one_fast = 192 +) + +var ( + _ = _subr__skip_one_fast +) + +const ( + _ = _stack__skip_one_fast +) diff --git a/vendor/github.com/bytedance/sonic/internal/native/neon/skip_one_subr_arm64.go b/vendor/github.com/bytedance/sonic/internal/native/neon/skip_one_subr_arm64.go new file mode 100644 index 000000000..01b275681 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/neon/skip_one_subr_arm64.go @@ -0,0 +1,25 @@ +// +build !noasm !appengine +// Code generated by asm2asm, DO NOT EDIT. + +package neon + +//go:nosplit +//go:noescape +//goland:noinspection ALL +func __skip_one_entry__() uintptr + +var ( + _subr__skip_one uintptr = __skip_one_entry__() + 48 +) + +const ( + _stack__skip_one = 112 +) + +var ( + _ = _subr__skip_one +) + +const ( + _ = _stack__skip_one +) diff --git a/vendor/github.com/bytedance/sonic/internal/native/neon/u64toa_arm64.go b/vendor/github.com/bytedance/sonic/internal/native/neon/u64toa_arm64.go new file mode 100644 index 000000000..a3dcad891 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/neon/u64toa_arm64.go @@ -0,0 +1,31 @@ +// Code generated by Makefile, DO NOT EDIT. + +// Code generated by Makefile, DO NOT EDIT. + +/* + * Copyright 2021 ByteDance 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 neon + +//go:nosplit +func u64toa(out *byte, val uint64) (ret int) { + return __u64toa(out, val) +} + +//go:nosplit +//go:noescape +//goland:noinspection GoUnusedParameter +func __u64toa(out *byte, val uint64) (ret int) diff --git a/vendor/github.com/bytedance/sonic/internal/native/neon/u64toa_arm64.s b/vendor/github.com/bytedance/sonic/internal/native/neon/u64toa_arm64.s new file mode 100644 index 000000000..9acf4497d --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/neon/u64toa_arm64.s @@ -0,0 +1,598 @@ +// +build !noasm !appengine +// Code generated by asm2asm, DO NOT EDIT. + +#include "go_asm.h" +#include "funcdata.h" +#include "textflag.h" + +TEXT ·__u64toa_entry__(SB), NOSPLIT, $16 + NO_LOCAL_POINTERS + WORD $0x100000a0 // adr x0, .+20 + MOVD R0, ret(FP) + RET + // .p2align 3, 0x00 +lCPI0_0: + WORD $0x147b20c5 + WORD $0x80003334 + // // .word 8389 +// .word 5243 +// .word 13108 +// .word 32768 + +lCPI0_1: + WORD $0x08000080 + WORD $0x80002000 + // // .word 128 +// .word 2048 +// .word 8192 +// .word 32768 + +lCPI0_2: + WORD $0x08040201 + WORD $0x80402010 + WORD $0x08040201 + WORD $0x80402010 + // // .byte 1 +// .byte 2 +// .byte 4 +// .byte 8 +// .byte 16 +// .byte 32 +// .byte 64 +// .byte 128 +// .byte 1 +// .byte 2 +// .byte 4 +// .byte 8 +// .byte 16 +// .byte 32 +// .byte 64 +// .byte 128 + +lCPI0_3: + WORD $0x09010800 + WORD $0x0b030a02 + WORD $0x0d050c04 + WORD $0x0f070e06 + // // .byte 0 +// .byte 8 +// .byte 1 +// .byte 9 +// .byte 2 +// .byte 10 +// .byte 3 +// .byte 11 +// .byte 4 +// .byte 12 +// .byte 5 +// .byte 13 +// .byte 6 +// .byte 14 +// .byte 7 +// .byte 15 + +_u64toa: + WORD $0xd10083ff // sub sp, sp, #32 + WORD $0xa900fbfd // stp fp, lr, [sp, #8] + WORD $0xa93ffbfd // stp fp, lr, [sp, #-8] + WORD $0xd10023fd // sub fp, sp, #8 + WORD $0xd344fc28 // lsr x8, x1, #4 + WORD $0xf109c11f // cmp x8, #624 + WORD $0x540005e8 // b.hi LBB0_9 $188(%rip) + WORD $0x53023c28 // ubfx w8, w1, #2, #14 + WORD $0x52828f69 // mov w9, #5243 + WORD $0x1b097d08 // mul w8, w8, w9 + WORD $0x53117d08 // lsr w8, w8, #17 + WORD $0xd37f7d09 // ubfiz x9, x8, #1, #32 + WORD $0x52800c8a // mov w10, #100 + WORD $0x1b0a8508 // msub w8, w8, w10, w1 + WORD $0x92403d08 // and x8, x8, #0xffff + WORD $0xd37ff908 // lsl x8, x8, #1 + WORD $0x710fa03f // cmp w1, #1000 + WORD $0x540000e3 // b.lo LBB0_3 $28(%rip) +Lloh0: + WORD $0x10002aaa // adr x10, _Digits $1364(%rip) +Lloh1: + WORD $0x9100014a // add x10, x10, _Digits@PAGEOFF $0(%rip) + WORD $0x3869694a // ldrb w10, [x10, x9] + WORD $0x3900000a // strb w10, [x0] + WORD $0x5280002a // mov w10, #1 + WORD $0x14000004 // b LBB0_5 $16(%rip) +LBB0_3: + WORD $0x7101903f // cmp w1, #100 + WORD $0x540002e3 // b.lo LBB0_8 $92(%rip) + WORD $0x5280000a // mov w10, #0 +LBB0_5: +Lloh2: + WORD $0x1000298b // adr x11, _Digits $1328(%rip) +Lloh3: + WORD $0x9100016b // add x11, x11, _Digits@PAGEOFF $0(%rip) + WORD $0x8b294169 // add x9, x11, w9, uxtw + WORD $0x3940052b // ldrb w11, [x9, #1] + WORD $0x11000549 // add w9, w10, #1 + WORD $0x382a480b // strb w11, [x0, w10, uxtw] +LBB0_6: +Lloh4: + WORD $0x100028ca // adr x10, _Digits $1304(%rip) +Lloh5: + WORD $0x9100014a // add x10, x10, _Digits@PAGEOFF $0(%rip) + WORD $0x3868694b // ldrb w11, [x10, x8] + WORD $0x1100052a // add w10, w9, #1 + WORD $0x3829480b // strb w11, [x0, w9, uxtw] +LBB0_7: +Lloh6: + WORD $0x10002829 // adr x9, _Digits $1284(%rip) +Lloh7: + WORD $0x91000129 // add x9, x9, _Digits@PAGEOFF $0(%rip) + WORD $0x8b282128 // add x8, x9, w8, uxth + WORD $0x39400509 // ldrb w9, [x8, #1] + WORD $0x11000548 // add w8, w10, #1 + WORD $0x382a4809 // strb w9, [x0, w10, uxtw] + WORD $0xaa0803e0 // mov x0, x8 + WORD $0xa940fbfd // ldp fp, lr, [sp, #8] + WORD $0x910083ff // add sp, sp, #32 + WORD $0xd65f03c0 // ret +LBB0_8: + WORD $0x52800009 // mov w9, #0 + WORD $0x5280000a // mov w10, #0 + WORD $0x7100283f // cmp w1, #10 + WORD $0x54fffdc2 // b.hs LBB0_6 $-72(%rip) + WORD $0x17fffff2 // b LBB0_7 $-56(%rip) +LBB0_9: + WORD $0x529c2008 // mov w8, #57600 + WORD $0x72a0bea8 // movk w8, #1525, lsl #16 + WORD $0xeb08003f // cmp x1, x8 + WORD $0x54000a02 // b.hs LBB0_18 $320(%rip) + WORD $0x5282eb28 // mov w8, #5977 + WORD $0x72ba36e8 // movk w8, #53687, lsl #16 + WORD $0x92407c29 // and x9, x1, #0xffffffff + WORD $0x9ba87d28 // umull x8, w9, w8 + WORD $0xd36dfd08 // lsr x8, x8, #45 + WORD $0x529bd06a // mov w10, #56963 + WORD $0x72a8636a // movk w10, #17179, lsl #16 + WORD $0x9baa7d29 // umull x9, w9, w10 + WORD $0xd371fd29 // lsr x9, x9, #49 + WORD $0x927f312a // and x10, x9, #0x3ffe + WORD $0x53023d09 // ubfx w9, w8, #2, #14 + WORD $0x52828f6b // mov w11, #5243 + WORD $0x1b0b7d29 // mul w9, w9, w11 + WORD $0x53117d29 // lsr w9, w9, #17 + WORD $0x52800c8b // mov w11, #100 + WORD $0x1b0ba129 // msub w9, w9, w11, w8 + WORD $0x92403d29 // and x9, x9, #0xffff + WORD $0xd37ff929 // lsl x9, x9, #1 + WORD $0x5292d00b // mov w11, #38528 + WORD $0x72a0130b // movk w11, #152, lsl #16 + WORD $0x6b0b003f // cmp w1, w11 + WORD $0x540000e3 // b.lo LBB0_12 $28(%rip) +Lloh8: + WORD $0x1000230b // adr x11, _Digits $1120(%rip) +Lloh9: + WORD $0x9100016b // add x11, x11, _Digits@PAGEOFF $0(%rip) + WORD $0x386a696b // ldrb w11, [x11, x10] + WORD $0x3900000b // strb w11, [x0] + WORD $0x5280002c // mov w12, #1 + WORD $0x14000006 // b LBB0_14 $24(%rip) +LBB0_12: + WORD $0x5288480b // mov w11, #16960 + WORD $0x72a001eb // movk w11, #15, lsl #16 + WORD $0x6b0b003f // cmp w1, w11 + WORD $0x54000543 // b.lo LBB0_17 $168(%rip) + WORD $0x5280000c // mov w12, #0 +LBB0_14: +Lloh10: + WORD $0x100021ab // adr x11, _Digits $1076(%rip) +Lloh11: + WORD $0x9100016b // add x11, x11, _Digits@PAGEOFF $0(%rip) + WORD $0x8b2a416a // add x10, x11, w10, uxtw + WORD $0x3940054a // ldrb w10, [x10, #1] + WORD $0x1100058b // add w11, w12, #1 + WORD $0x382c480a // strb w10, [x0, w12, uxtw] +LBB0_15: +Lloh12: + WORD $0x100020ea // adr x10, _Digits $1052(%rip) +Lloh13: + WORD $0x9100014a // add x10, x10, _Digits@PAGEOFF $0(%rip) + WORD $0x3869694c // ldrb w12, [x10, x9] + WORD $0x1100056a // add w10, w11, #1 + WORD $0x382b480c // strb w12, [x0, w11, uxtw] +LBB0_16: + WORD $0x5284e20b // mov w11, #10000 + WORD $0x1b0b8508 // msub w8, w8, w11, w1 + WORD $0x53023d0b // ubfx w11, w8, #2, #14 + WORD $0x52828f6c // mov w12, #5243 + WORD $0x1b0c7d6b // mul w11, w11, w12 + WORD $0x53117d6b // lsr w11, w11, #17 + WORD $0x52800c8c // mov w12, #100 + WORD $0x1b0ca168 // msub w8, w11, w12, w8 + WORD $0x92403d08 // and x8, x8, #0xffff + WORD $0xd37ff908 // lsl x8, x8, #1 +Lloh14: + WORD $0x10001f0c // adr x12, _Digits $992(%rip) +Lloh15: + WORD $0x9100018c // add x12, x12, _Digits@PAGEOFF $0(%rip) + WORD $0x8b292189 // add x9, x12, w9, uxth + WORD $0x39400529 // ldrb w9, [x9, #1] + WORD $0x8b2a400d // add x13, x0, w10, uxtw + WORD $0x390001a9 // strb w9, [x13] + WORD $0x786b5989 // ldrh w9, [x12, w11, uxtw #1] + WORD $0x780011a9 // sturh w9, [x13, #1] + WORD $0x38686989 // ldrb w9, [x12, x8] + WORD $0x39000da9 // strb w9, [x13, #3] + WORD $0x927f3908 // and x8, x8, #0xfffe + WORD $0x8b080188 // add x8, x12, x8 + WORD $0x39400509 // ldrb w9, [x8, #1] + WORD $0x11001548 // add w8, w10, #5 + WORD $0x390011a9 // strb w9, [x13, #4] + WORD $0xaa0803e0 // mov x0, x8 + WORD $0xa940fbfd // ldp fp, lr, [sp, #8] + WORD $0x910083ff // add sp, sp, #32 + WORD $0xd65f03c0 // ret +LBB0_17: + WORD $0x5280000b // mov w11, #0 + WORD $0x5280000a // mov w10, #0 + WORD $0x53057c2c // lsr w12, w1, #5 + WORD $0x7130d59f // cmp w12, #3125 + WORD $0x54fffb42 // b.hs LBB0_15 $-152(%rip) + WORD $0x17ffffde // b LBB0_16 $-136(%rip) +LBB0_18: + WORD $0xd2adf82a // mov x10, #1874919424 + WORD $0xf2d0de4a // movk x10, #34546, lsl #32 + WORD $0xf2e0046a // movk x10, #35, lsl #48 + WORD $0xeb0a003f // cmp x1, x10 + WORD $0x54000bc2 // b.hs LBB0_20 $376(%rip) + WORD $0xd299dfa9 // mov x9, #52989 + WORD $0xf2b08c29 // movk x9, #33889, lsl #16 + WORD $0xf2cee229 // movk x9, #30481, lsl #32 + WORD $0xf2f57989 // movk x9, #43980, lsl #48 + WORD $0x9bc97c29 // umulh x9, x1, x9 + WORD $0xd35afd29 // lsr x9, x9, #26 + WORD $0x1b088528 // msub w8, w9, w8, w1 + WORD $0x6f00e400 // movi.2d v0, #0000000000000000 + WORD $0x6f00e401 // movi.2d v1, #0000000000000000 + WORD $0x4e041d21 // mov.s v1[0], w9 + WORD $0x0ea12822 // xtn.2s v2, v1 + WORD $0x5282eb29 // mov w9, #5977 + WORD $0x72ba36e9 // movk w9, #53687, lsl #16 + WORD $0x0e040d23 // dup.2s v3, w9 + WORD $0x2ea3c042 // umull.2d v2, v2, v3 + WORD $0x6f530442 // ushr.2d v2, v2, #45 + WORD $0x0ea12844 // xtn.2s v4, v2 + WORD $0x5284e209 // mov w9, #10000 + WORD $0x0e040d25 // dup.2s v5, w9 + WORD $0x2ea5c084 // umull.2d v4, v4, v5 + WORD $0x6ea48421 // sub.4s v1, v1, v4 + WORD $0x4e413841 // zip1.8h v1, v2, v1 + WORD $0x4f425421 // shl.2d v1, v1, #2 + WORD $0x4e413821 // zip1.8h v1, v1, v1 + WORD $0x4e813821 // zip1.4s v1, v1, v1 +Lloh16: + WORD $0x10ffe9c9 // adr x9, lCPI0_0 $-712(%rip) +Lloh17: + WORD $0xfd400122 // ldr d2, [x9, lCPI0_0@PAGEOFF] $0(%rip) + WORD $0x2e62c024 // umull.4s v4, v1, v2 + WORD $0x6e014021 // ext.16b v1, v1, v1, #8 + WORD $0x2e62c021 // umull.4s v1, v1, v2 + WORD $0x4e415881 // uzp2.8h v1, v4, v1 +Lloh18: + WORD $0x10ffe949 // adr x9, lCPI0_1 $-728(%rip) +Lloh19: + WORD $0xfd400124 // ldr d4, [x9, lCPI0_1@PAGEOFF] $0(%rip) + WORD $0x2e64c026 // umull.4s v6, v1, v4 + WORD $0x6e014021 // ext.16b v1, v1, v1, #8 + WORD $0x2e64c021 // umull.4s v1, v1, v4 + WORD $0x4e4158c1 // uzp2.8h v1, v6, v1 + WORD $0x4f008546 // movi.8h v6, #10 + WORD $0x4e669c27 // mul.8h v7, v1, v6 + WORD $0x4f5054e7 // shl.2d v7, v7, #16 + WORD $0x6e678421 // sub.8h v1, v1, v7 + WORD $0x4e041d00 // mov.s v0[0], w8 + WORD $0x0ea12807 // xtn.2s v7, v0 + WORD $0x2ea3c0e3 // umull.2d v3, v7, v3 + WORD $0x6f530463 // ushr.2d v3, v3, #45 + WORD $0x0ea12867 // xtn.2s v7, v3 + WORD $0x2ea5c0e5 // umull.2d v5, v7, v5 + WORD $0x6ea58400 // sub.4s v0, v0, v5 + WORD $0x4e403860 // zip1.8h v0, v3, v0 + WORD $0x4f425400 // shl.2d v0, v0, #2 + WORD $0x4e403800 // zip1.8h v0, v0, v0 + WORD $0x4e803800 // zip1.4s v0, v0, v0 + WORD $0x2e62c003 // umull.4s v3, v0, v2 + WORD $0x6e004000 // ext.16b v0, v0, v0, #8 + WORD $0x2e62c000 // umull.4s v0, v0, v2 + WORD $0x4e405860 // uzp2.8h v0, v3, v0 + WORD $0x2e64c002 // umull.4s v2, v0, v4 + WORD $0x6e004000 // ext.16b v0, v0, v0, #8 + WORD $0x2e64c000 // umull.4s v0, v0, v4 + WORD $0x4e405840 // uzp2.8h v0, v2, v0 + WORD $0x4e669c02 // mul.8h v2, v0, v6 + WORD $0x4f505442 // shl.2d v2, v2, #16 + WORD $0x6e628400 // sub.8h v0, v0, v2 + WORD $0x2e212821 // sqxtun.8b v1, v1 + WORD $0x6e212801 // sqxtun2.16b v1, v0 + WORD $0x4f01e600 // movi.16b v0, #48 + WORD $0x4e208420 // add.16b v0, v1, v0 + WORD $0x4e209821 // cmeq.16b v1, v1, #0 +Lloh20: + WORD $0x10ffe4e8 // adr x8, lCPI0_2 $-868(%rip) +Lloh21: + WORD $0x3dc00102 // ldr q2, [x8, lCPI0_2@PAGEOFF] $0(%rip) + WORD $0x4e221c21 // and.16b v1, v1, v2 +Lloh22: + WORD $0x10ffe508 // adr x8, lCPI0_3 $-864(%rip) +Lloh23: + WORD $0x3dc00102 // ldr q2, [x8, lCPI0_3@PAGEOFF] $0(%rip) + WORD $0x4e020021 // tbl.16b v1, { v1 }, v2 + WORD $0x4e71b821 // addv.8h h1, v1 + WORD $0x1e260028 // fmov w8, s1 + WORD $0x2a2803e8 // mvn w8, w8 + WORD $0x32114108 // orr w8, w8, #0xffff8000 + WORD $0x5ac00108 // rbit w8, w8 + WORD $0x5ac01108 // clz w8, w8 +Lloh24: + WORD $0x100017e9 // adr x9, _VecShiftShuffles $764(%rip) +Lloh25: + WORD $0x91000129 // add x9, x9, _VecShiftShuffles@PAGEOFF $0(%rip) + WORD $0x3ce85921 // ldr q1, [x9, w8, uxtw #4] + WORD $0x4f04e5e2 // movi.16b v2, #143 + WORD $0x4e221c21 // and.16b v1, v1, v2 + WORD $0x4e010000 // tbl.16b v0, { v0 }, v1 + WORD $0x3d800000 // str q0, [x0] + WORD $0x52800209 // mov w9, #16 + WORD $0x4b080128 // sub w8, w9, w8 + WORD $0xaa0803e0 // mov x0, x8 + WORD $0xa940fbfd // ldp fp, lr, [sp, #8] + WORD $0x910083ff // add sp, sp, #32 + WORD $0xd65f03c0 // ret +LBB0_20: + WORD $0xd28f0ae9 // mov x9, #30807 + WORD $0xf2b62269 // movk x9, #45331, lsl #16 + WORD $0xf2cca5e9 // movk x9, #25903, lsl #32 + WORD $0xf2e734a9 // movk x9, #14757, lsl #48 + WORD $0x9bc97c29 // umulh x9, x1, x9 + WORD $0xd373fd2b // lsr x11, x9, #51 + WORD $0x7100257f // cmp w11, #9 + WORD $0x540000a8 // b.hi LBB0_22 $20(%rip) + WORD $0x1100c169 // add w9, w11, #48 + WORD $0x39000009 // strb w9, [x0] + WORD $0x52800029 // mov w9, #1 + WORD $0x14000028 // b LBB0_27 $160(%rip) +LBB0_22: + WORD $0x71018d7f // cmp w11, #99 + WORD $0x540000e8 // b.hi LBB0_24 $28(%rip) +Lloh26: + WORD $0x10000de9 // adr x9, _Digits $444(%rip) +Lloh27: + WORD $0x91000129 // add x9, x9, _Digits@PAGEOFF $0(%rip) + WORD $0x786b5929 // ldrh w9, [x9, w11, uxtw #1] + WORD $0x79000009 // strh w9, [x0] + WORD $0x52800049 // mov w9, #2 + WORD $0x14000020 // b LBB0_27 $128(%rip) +LBB0_24: + WORD $0x5280a3e9 // mov w9, #1311 + WORD $0x1b097d69 // mul w9, w11, w9 + WORD $0x53117d29 // lsr w9, w9, #17 + WORD $0x710f9d7f // cmp w11, #999 + WORD $0x54000188 // b.hi LBB0_26 $48(%rip) + WORD $0x1100c12c // add w12, w9, #48 + WORD $0x3900000c // strb w12, [x0] + WORD $0x52800c8c // mov w12, #100 + WORD $0x1b0cad29 // msub w9, w9, w12, w11 + WORD $0x92403d29 // and x9, x9, #0xffff +Lloh28: + WORD $0x10000bec // adr x12, _Digits $380(%rip) +Lloh29: + WORD $0x9100018c // add x12, x12, _Digits@PAGEOFF $0(%rip) + WORD $0x78697989 // ldrh w9, [x12, x9, lsl #1] + WORD $0x78001009 // sturh w9, [x0, #1] + WORD $0x52800069 // mov w9, #3 + WORD $0x14000010 // b LBB0_27 $64(%rip) +LBB0_26: +Lloh30: + WORD $0x10000b2c // adr x12, _Digits $356(%rip) +Lloh31: + WORD $0x9100018c // add x12, x12, _Digits@PAGEOFF $0(%rip) + WORD $0x7869598d // ldrh w13, [x12, w9, uxtw #1] + WORD $0x7900000d // strh w13, [x0] + WORD $0x52800c8d // mov w13, #100 + WORD $0x1b0dad29 // msub w9, w9, w13, w11 + WORD $0x92403d29 // and x9, x9, #0xffff + WORD $0xd37ff929 // lsl x9, x9, #1 + WORD $0x3869698d // ldrb w13, [x12, x9] + WORD $0x3900080d // strb w13, [x0, #2] + WORD $0x927f3929 // and x9, x9, #0xfffe + WORD $0x8b090189 // add x9, x12, x9 + WORD $0x39400529 // ldrb w9, [x9, #1] + WORD $0x39000c09 // strb w9, [x0, #3] + WORD $0x52800089 // mov w9, #4 +LBB0_27: + WORD $0x9b0a856a // msub x10, x11, x10, x1 + WORD $0xd299dfab // mov x11, #52989 + WORD $0xf2b08c2b // movk x11, #33889, lsl #16 + WORD $0xf2cee22b // movk x11, #30481, lsl #32 + WORD $0xf2f5798b // movk x11, #43980, lsl #48 + WORD $0x9bcb7d4b // umulh x11, x10, x11 + WORD $0xd35afd6b // lsr x11, x11, #26 + WORD $0x6f00e400 // movi.2d v0, #0000000000000000 + WORD $0x6f00e401 // movi.2d v1, #0000000000000000 + WORD $0x4e041d61 // mov.s v1[0], w11 + WORD $0x5282eb2c // mov w12, #5977 + WORD $0x72ba36ec // movk w12, #53687, lsl #16 + WORD $0x0e040d82 // dup.2s v2, w12 + WORD $0x0ea12823 // xtn.2s v3, v1 + WORD $0x2ea2c063 // umull.2d v3, v3, v2 + WORD $0x6f530463 // ushr.2d v3, v3, #45 + WORD $0x5284e20c // mov w12, #10000 + WORD $0x0e040d84 // dup.2s v4, w12 + WORD $0x0ea12865 // xtn.2s v5, v3 + WORD $0x2ea4c0a5 // umull.2d v5, v5, v4 + WORD $0x6ea58421 // sub.4s v1, v1, v5 + WORD $0x4e413861 // zip1.8h v1, v3, v1 + WORD $0x4f425421 // shl.2d v1, v1, #2 + WORD $0x4e413821 // zip1.8h v1, v1, v1 + WORD $0x4e813821 // zip1.4s v1, v1, v1 +Lloh32: + WORD $0x10ffd7cc // adr x12, lCPI0_0 $-1288(%rip) +Lloh33: + WORD $0xfd400183 // ldr d3, [x12, lCPI0_0@PAGEOFF] $0(%rip) + WORD $0x2e63c025 // umull.4s v5, v1, v3 + WORD $0x6e014021 // ext.16b v1, v1, v1, #8 + WORD $0x2e63c021 // umull.4s v1, v1, v3 + WORD $0x4e4158a1 // uzp2.8h v1, v5, v1 +Lloh34: + WORD $0x10ffd74c // adr x12, lCPI0_1 $-1304(%rip) +Lloh35: + WORD $0xfd400185 // ldr d5, [x12, lCPI0_1@PAGEOFF] $0(%rip) + WORD $0x2e65c026 // umull.4s v6, v1, v5 + WORD $0x6e014021 // ext.16b v1, v1, v1, #8 + WORD $0x2e65c021 // umull.4s v1, v1, v5 + WORD $0x4e4158c1 // uzp2.8h v1, v6, v1 + WORD $0x4f008546 // movi.8h v6, #10 + WORD $0x4e669c27 // mul.8h v7, v1, v6 + WORD $0x4f5054e7 // shl.2d v7, v7, #16 + WORD $0x6e678421 // sub.8h v1, v1, v7 + WORD $0x1b08a968 // msub w8, w11, w8, w10 + WORD $0x4e041d00 // mov.s v0[0], w8 + WORD $0x0ea12807 // xtn.2s v7, v0 + WORD $0x2ea2c0e2 // umull.2d v2, v7, v2 + WORD $0x6f530442 // ushr.2d v2, v2, #45 + WORD $0x0ea12847 // xtn.2s v7, v2 + WORD $0x2ea4c0e4 // umull.2d v4, v7, v4 + WORD $0x6ea48400 // sub.4s v0, v0, v4 + WORD $0x4e403840 // zip1.8h v0, v2, v0 + WORD $0x4f425400 // shl.2d v0, v0, #2 + WORD $0x4e403800 // zip1.8h v0, v0, v0 + WORD $0x4e803800 // zip1.4s v0, v0, v0 + WORD $0x2e63c002 // umull.4s v2, v0, v3 + WORD $0x6e004000 // ext.16b v0, v0, v0, #8 + WORD $0x2e63c000 // umull.4s v0, v0, v3 + WORD $0x4e405840 // uzp2.8h v0, v2, v0 + WORD $0x2e65c002 // umull.4s v2, v0, v5 + WORD $0x6e004000 // ext.16b v0, v0, v0, #8 + WORD $0x2e65c000 // umull.4s v0, v0, v5 + WORD $0x4e405840 // uzp2.8h v0, v2, v0 + WORD $0x4e669c02 // mul.8h v2, v0, v6 + WORD $0x4f505442 // shl.2d v2, v2, #16 + WORD $0x6e628400 // sub.8h v0, v0, v2 + WORD $0x2e212821 // sqxtun.8b v1, v1 + WORD $0x6e212801 // sqxtun2.16b v1, v0 + WORD $0x4f01e600 // movi.16b v0, #48 + WORD $0x4e208420 // add.16b v0, v1, v0 + WORD $0x3ca94800 // str q0, [x0, w9, uxtw] + WORD $0x321c0128 // orr w8, w9, #0x10 + WORD $0xaa0803e0 // mov x0, x8 + WORD $0xa940fbfd // ldp fp, lr, [sp, #8] + WORD $0x910083ff // add sp, sp, #32 + WORD $0xd65f03c0 // ret +_Digits: + WORD $0x31303030 // .ascii 4, '0001020304050607' + WORD $0x33303230 // .ascii 4, '0203040506070809' + WORD $0x35303430 // .ascii 4, '0405060708091011' + WORD $0x37303630 // .ascii 4, '0607080910111213' + WORD $0x39303830 // .ascii 4, '0809101112131415' + WORD $0x31313031 // .ascii 4, '1011121314151617' + WORD $0x33313231 // .ascii 4, '1213141516171819' + WORD $0x35313431 // .ascii 4, '1415161718192021' + WORD $0x37313631 // .ascii 4, '1617181920212223' + WORD $0x39313831 // .ascii 4, '1819202122232425' + WORD $0x31323032 // .ascii 4, '2021222324252627' + WORD $0x33323232 // .ascii 4, '2223242526272829' + WORD $0x35323432 // .ascii 4, '2425262728293031' + WORD $0x37323632 // .ascii 4, '2627282930313233' + WORD $0x39323832 // .ascii 4, '2829303132333435' + WORD $0x31333033 // .ascii 4, '3031323334353637' + WORD $0x33333233 // .ascii 4, '3233343536373839' + WORD $0x35333433 // .ascii 4, '3435363738394041' + WORD $0x37333633 // .ascii 4, '3637383940414243' + WORD $0x39333833 // .ascii 4, '3839404142434445' + WORD $0x31343034 // .ascii 4, '4041424344454647' + WORD $0x33343234 // .ascii 4, '4243444546474849' + WORD $0x35343434 // .ascii 4, '4445464748495051' + WORD $0x37343634 // .ascii 4, '4647484950515253' + WORD $0x39343834 // .ascii 4, '4849505152535455' + WORD $0x31353035 // .ascii 4, '5051525354555657' + WORD $0x33353235 // .ascii 4, '5253545556575859' + WORD $0x35353435 // .ascii 4, '5455565758596061' + WORD $0x37353635 // .ascii 4, '5657585960616263' + WORD $0x39353835 // .ascii 4, '5859606162636465' + WORD $0x31363036 // .ascii 4, '6061626364656667' + WORD $0x33363236 // .ascii 4, '6263646566676869' + WORD $0x35363436 // .ascii 4, '6465666768697071' + WORD $0x37363636 // .ascii 4, '6667686970717273' + WORD $0x39363836 // .ascii 4, '6869707172737475' + WORD $0x31373037 // .ascii 4, '7071727374757677' + WORD $0x33373237 // .ascii 4, '7273747576777879' + WORD $0x35373437 // .ascii 4, '7475767778798081' + WORD $0x37373637 // .ascii 4, '7677787980818283' + WORD $0x39373837 // .ascii 4, '7879808182838485' + WORD $0x31383038 // .ascii 4, '8081828384858687' + WORD $0x33383238 // .ascii 4, '8283848586878889' + WORD $0x35383438 // .ascii 4, '8485868788899091' + WORD $0x37383638 // .ascii 4, '8687888990919293' + WORD $0x39383838 // .ascii 4, '8889909192939495' + WORD $0x31393039 // .ascii 4, '9091929394959697' + WORD $0x33393239 // .ascii 4, '9293949596979899' + WORD $0x35393439 // .ascii 4, '949596979899' + WORD $0x37393639 // .ascii 4, '96979899' + WORD $0x39393839 // .ascii 4, '9899' + WORD $0x00000000; WORD $0x00000000; WORD $0x00000000 // .p2align 4, 0x00 +_VecShiftShuffles: + WORD $0x03020100 // .ascii 4, '\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f' + WORD $0x07060504 // .ascii 4, '\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\x01\x02\x03\x04' + WORD $0x0b0a0908 // .ascii 4, '\x08\t\n\x0b\x0c\r\x0e\x0f\x01\x02\x03\x04\x05\x06\x07\x08' + WORD $0x0f0e0d0c // .ascii 4, '\x0c\r\x0e\x0f\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c' + WORD $0x04030201 // .ascii 4, '\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff' + WORD $0x08070605 // .ascii 4, '\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\x02\x03\x04\x05' + WORD $0x0c0b0a09 // .ascii 4, '\t\n\x0b\x0c\r\x0e\x0f\xff\x02\x03\x04\x05\x06\x07\x08\t' + WORD $0xff0f0e0d // .ascii 4, '\r\x0e\x0f\xff\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r' + WORD $0x05040302 // .ascii 4, '\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff' + WORD $0x09080706 // .ascii 4, '\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\x03\x04\x05\x06' + WORD $0x0d0c0b0a // .ascii 4, '\n\x0b\x0c\r\x0e\x0f\xff\xff\x03\x04\x05\x06\x07\x08\t\n' + WORD $0xffff0f0e // .ascii 4, '\x0e\x0f\xff\xff\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e' + WORD $0x06050403 // .ascii 4, '\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff' + WORD $0x0a090807 // .ascii 4, '\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\x04\x05\x06\x07' + WORD $0x0e0d0c0b // .ascii 4, '\x0b\x0c\r\x0e\x0f\xff\xff\xff\x04\x05\x06\x07\x08\t\n\x0b' + WORD $0xffffff0f // .ascii 4, '\x0f\xff\xff\xff\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f' + WORD $0x07060504 // .ascii 4, '\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff' + WORD $0x0b0a0908 // .ascii 4, '\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\x05\x06\x07\x08' + WORD $0x0f0e0d0c // .ascii 4, '\x0c\r\x0e\x0f\xff\xff\xff\xff\x05\x06\x07\x08\t\n\x0b\x0c' + WORD $0xffffffff // .ascii 4, '\xff\xff\xff\xff\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff' + WORD $0x08070605 // .ascii 4, '\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff' + WORD $0x0c0b0a09 // .ascii 4, '\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff\x06\x07\x08\t' + WORD $0xff0f0e0d // .ascii 4, '\r\x0e\x0f\xff\xff\xff\xff\xff\x06\x07\x08\t\n\x0b\x0c\r' + WORD $0xffffffff // .ascii 4, '\xff\xff\xff\xff\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff' + WORD $0x09080706 // .ascii 4, '\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff\xff' + WORD $0x0d0c0b0a // .ascii 4, '\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff\xff\x07\x08\t\n' + WORD $0xffff0f0e // .ascii 4, '\x0e\x0f\xff\xff\xff\xff\xff\xff\x07\x08\t\n\x0b\x0c\r\x0e' + WORD $0xffffffff // .ascii 4, '\xff\xff\xff\xff\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff' + WORD $0x0a090807 // .ascii 4, '\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff\xff\xff' + WORD $0x0e0d0c0b // .ascii 4, '\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff\xff\xff\x08\t\n\x0b' + WORD $0xffffff0f // .ascii 4, '\x0f\xff\xff\xff\xff\xff\xff\xff\x08\t\n\x0b\x0c\r\x0e\x0f' + WORD $0xffffffff // .ascii 4, '\xff\xff\xff\xff\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff' + WORD $0x0b0a0908 // .ascii 4, '\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff\xff\xff\xff' + WORD $0x0f0e0d0c // .ascii 4, '\x0c\r\x0e\x0f\xff\xff\xff\xff\xff\xff\xff\xff' + WORD $0xffffffff // .ascii 4, '\xff\xff\xff\xff\xff\xff\xff\xff' + WORD $0xffffffff // .ascii 4, '\xff\xff\xff\xff' + +TEXT ·__u64toa(SB), NOSPLIT, $0-24 + NO_LOCAL_POINTERS + +_entry: + MOVD 16(g), R16 + SUB $96, RSP, R17 + CMP R16, R17 + BLS _stack_grow + +_u64toa: + MOVD out+0(FP), R0 + MOVD val+8(FP), R1 + MOVD ·_subr__u64toa(SB), R11 + WORD $0x1000005e // adr x30, .+8 + JMP (R11) + MOVD R0, ret+16(FP) + RET + +_stack_grow: + MOVD R30, R3 + CALL runtime·morestack_noctxt<>(SB) + JMP _entry diff --git a/vendor/github.com/bytedance/sonic/internal/native/neon/u64toa_subr_arm64.go b/vendor/github.com/bytedance/sonic/internal/native/neon/u64toa_subr_arm64.go new file mode 100644 index 000000000..151794d52 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/neon/u64toa_subr_arm64.go @@ -0,0 +1,25 @@ +// +build !noasm !appengine +// Code generated by asm2asm, DO NOT EDIT. + +package neon + +//go:nosplit +//go:noescape +//goland:noinspection ALL +func __u64toa_entry__() uintptr + +var ( + _subr__u64toa uintptr = __u64toa_entry__() + 48 +) + +const ( + _stack__u64toa = 32 +) + +var ( + _ = _subr__u64toa +) + +const ( + _ = _stack__u64toa +) diff --git a/vendor/github.com/bytedance/sonic/internal/native/neon/unquote_arm64.go b/vendor/github.com/bytedance/sonic/internal/native/neon/unquote_arm64.go new file mode 100644 index 000000000..204f95e60 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/neon/unquote_arm64.go @@ -0,0 +1,37 @@ +// Code generated by Makefile, DO NOT EDIT. + +// Code generated by Makefile, DO NOT EDIT. + +/* + * Copyright 2021 ByteDance 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 neon + +import ( + `unsafe` + + // `github.com/bytedance/sonic/internal/native/types` +) + +//go:nosplit +func unquote(sp unsafe.Pointer, nb int, dp unsafe.Pointer, ep *int, flags uint64) (ret int) { + return __unquote(sp, nb, dp, ep, flags) +} + +//go:nosplit +//go:noescape +//goland:noinspection GoUnusedParameter +func __unquote(sp unsafe.Pointer, nb int, dp unsafe.Pointer, ep *int, flags uint64) (ret int) diff --git a/vendor/github.com/bytedance/sonic/internal/native/neon/unquote_arm64.s b/vendor/github.com/bytedance/sonic/internal/native/neon/unquote_arm64.s new file mode 100644 index 000000000..3fc5b73ad --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/neon/unquote_arm64.s @@ -0,0 +1,615 @@ +// +build !noasm !appengine +// Code generated by asm2asm, DO NOT EDIT. + +#include "go_asm.h" +#include "funcdata.h" +#include "textflag.h" + +TEXT ·__unquote_entry__(SB), NOSPLIT, $96 + NO_LOCAL_POINTERS + WORD $0x100000a0 // adr x0, .+20 + MOVD R0, ret(FP) + RET + // .p2align 4, 0x00 +lCPI0_0: + WORD $0x08040201 + WORD $0x80402010 + WORD $0x08040201 + WORD $0x80402010 + // // .byte 1 +// .byte 2 +// .byte 4 +// .byte 8 +// .byte 16 +// .byte 32 +// .byte 64 +// .byte 128 +// .byte 1 +// .byte 2 +// .byte 4 +// .byte 8 +// .byte 16 +// .byte 32 +// .byte 64 +// .byte 128 + +lCPI0_1: + WORD $0x09010800 + WORD $0x0b030a02 + WORD $0x0d050c04 + WORD $0x0f070e06 + // // .byte 0 +// .byte 8 +// .byte 1 +// .byte 9 +// .byte 2 +// .byte 10 +// .byte 3 +// .byte 11 +// .byte 4 +// .byte 12 +// .byte 5 +// .byte 13 +// .byte 6 +// .byte 14 +// .byte 7 +// .byte 15 + +_unquote: + WORD $0xd101c3ff // sub sp, sp, #112 + WORD $0xa900effc // stp x28, x27, [sp, #8] + WORD $0xa901e7fa // stp x26, x25, [sp, #24] + WORD $0xa902dff8 // stp x24, x23, [sp, #40] + WORD $0xa903d7f6 // stp x22, x21, [sp, #56] + WORD $0xa904cff4 // stp x20, x19, [sp, #72] + WORD $0xa905fbfd // stp fp, lr, [sp, #88] + WORD $0xa93ffbfd // stp fp, lr, [sp, #-8] + WORD $0xd10023fd // sub fp, sp, #8 + WORD $0xb4002201 // cbz x1, LBB0_62 $1088(%rip) + WORD $0x3203cbe9 // mov w9, #-522133280 + WORD $0x5299fa0a // mov w10, #53200 + WORD $0x72b9f9ea // movk w10, #53199, lsl #16 + WORD $0x3202c7eb // mov w11, #-1061109568 + WORD $0x3201c3ec // mov w12, #-2139062144 + WORD $0x3200dbed // mov w13, #2139062143 + WORD $0x5288c8ce // mov w14, #17990 + WORD $0x72a8c8ce // movk w14, #17990, lsl #16 + WORD $0x5287272f // mov w15, #14649 + WORD $0x72a7272f // movk w15, #14649, lsl #16 + WORD $0x52832330 // mov w16, #6425 + WORD $0x72a32330 // movk w16, #6425, lsl #16 + WORD $0x3200cff1 // mov w17, #252645135 + WORD $0x3200c3e6 // mov w6, #16843009 + WORD $0x92400085 // and x5, x4, #0x1 + WORD $0x528017b3 // mov w19, #189 + WORD $0x52848014 // mov w20, #9216 + WORD $0x72bf9414 // movk w20, #64672, lsl #16 + WORD $0x4f02e780 // movi.16b v0, #92 +Lloh0: + WORD $0x10fffb68 // adr x8, lCPI0_0 $-148(%rip) +Lloh1: + WORD $0x3dc00101 // ldr q1, [x8, lCPI0_0@PAGEOFF] $0(%rip) +Lloh2: + WORD $0x10fffba8 // adr x8, lCPI0_1 $-140(%rip) +Lloh3: + WORD $0x3dc00102 // ldr q2, [x8, lCPI0_1@PAGEOFF] $0(%rip) + WORD $0xaa0003e8 // mov x8, x0 + WORD $0xaa0103f5 // mov x21, x1 + WORD $0xaa0203f6 // mov x22, x2 +Lloh4: + WORD $0x10002ef7 // adr x23, __UnquoteTab $1500(%rip) +Lloh5: + WORD $0x910002f7 // add x23, x23, __UnquoteTab@PAGEOFF $0(%rip) +LBB0_2: + WORD $0x39400118 // ldrb w24, [x8] + WORD $0x7101731f // cmp w24, #92 + WORD $0x54000061 // b.ne LBB0_4 $12(%rip) + WORD $0xd2800018 // mov x24, #0 + WORD $0x1400002b // b LBB0_15 $172(%rip) +LBB0_4: + WORD $0xaa1503f9 // mov x25, x21 + WORD $0xaa1603fb // mov x27, x22 + WORD $0xaa0803fa // mov x26, x8 + WORD $0xf10042bf // cmp x21, #16 + WORD $0x540002cb // b.lt LBB0_9 $88(%rip) + WORD $0xd2800018 // mov x24, #0 + WORD $0xaa1503fa // mov x26, x21 +LBB0_6: + WORD $0x8b180119 // add x25, x8, x24 + WORD $0x8b1802db // add x27, x22, x24 + WORD $0xa9407339 // ldp x25, x28, [x25] + WORD $0x9e670323 // fmov d3, x25 + WORD $0x4e181f83 // mov.d v3[1], x28 + WORD $0xa9007379 // stp x25, x28, [x27] + WORD $0x6e208c63 // cmeq.16b v3, v3, v0 + WORD $0x4e211c63 // and.16b v3, v3, v1 + WORD $0x4e020063 // tbl.16b v3, { v3 }, v2 + WORD $0x4e71b863 // addv.8h h3, v3 + WORD $0x1e260079 // fmov w25, s3 + WORD $0x35000279 // cbnz w25, LBB0_13 $76(%rip) + WORD $0xd1004359 // sub x25, x26, #16 + WORD $0x91004318 // add x24, x24, #16 + WORD $0xf1007f5f // cmp x26, #31 + WORD $0xaa1903fa // mov x26, x25 + WORD $0x54fffe08 // b.hi LBB0_6 $-64(%rip) + WORD $0x8b18011a // add x26, x8, x24 + WORD $0x8b1802db // add x27, x22, x24 +LBB0_9: + WORD $0xb4001ad9 // cbz x25, LBB0_63 $856(%rip) + WORD $0xcb080358 // sub x24, x26, x8 +LBB0_11: + WORD $0x3940035c // ldrb w28, [x26] + WORD $0x7101739f // cmp w28, #92 + WORD $0x54000140 // b.eq LBB0_14 $40(%rip) + WORD $0x9100075a // add x26, x26, #1 + WORD $0x3800177c // strb w28, [x27], #1 + WORD $0x91000718 // add x24, x24, #1 + WORD $0xf1000739 // subs x25, x25, #1 + WORD $0x54ffff21 // b.ne LBB0_11 $-28(%rip) + WORD $0x140000cc // b LBB0_63 $816(%rip) +LBB0_13: + WORD $0x5ac00339 // rbit w25, w25 + WORD $0x5ac01339 // clz w25, w25 + WORD $0x8b180338 // add x24, x25, x24 +LBB0_14: + WORD $0xb100071f // cmn x24, #1 + WORD $0x540018e0 // b.eq LBB0_63 $796(%rip) +LBB0_15: + WORD $0x91000b19 // add x25, x24, #2 + WORD $0xeb1902b5 // subs x21, x21, x25 + WORD $0x54002824 // b.mi LBB0_93 $1284(%rip) + WORD $0x8b190108 // add x8, x8, x25 + WORD $0xb5000145 // cbnz x5, LBB0_20 $40(%rip) + WORD $0x8b1802da // add x26, x22, x24 + WORD $0x385ff119 // ldurb w25, [x8, #-1] + WORD $0x38796af9 // ldrb w25, [x23, x25] + WORD $0x7103ff3f // cmp w25, #255 + WORD $0x540003a0 // b.eq LBB0_28 $116(%rip) +LBB0_18: + WORD $0x34001e19 // cbz w25, LBB0_74 $960(%rip) + WORD $0x38001759 // strb w25, [x26], #1 + WORD $0xaa1a03f6 // mov x22, x26 + WORD $0x14000093 // b LBB0_54 $588(%rip) +LBB0_20: + WORD $0x340026b5 // cbz w21, LBB0_93 $1236(%rip) + WORD $0x385ff119 // ldurb w25, [x8, #-1] + WORD $0x7101733f // cmp w25, #92 + WORD $0x540023a1 // b.ne LBB0_86 $1140(%rip) + WORD $0x39400119 // ldrb w25, [x8] + WORD $0x7101733f // cmp w25, #92 + WORD $0x54000161 // b.ne LBB0_27 $44(%rip) + WORD $0x710006bf // cmp w21, #1 + WORD $0x540025ad // b.le LBB0_93 $1204(%rip) + WORD $0xaa0803f9 // mov x25, x8 + WORD $0x38401f3a // ldrb w26, [x25, #1]! + WORD $0x71008b5f // cmp w26, #34 + WORD $0x54000060 // b.eq LBB0_26 $12(%rip) + WORD $0x7101735f // cmp w26, #92 + WORD $0x540022a1 // b.ne LBB0_87 $1108(%rip) +LBB0_26: + WORD $0xd10006b5 // sub x21, x21, #1 + WORD $0xaa1903e8 // mov x8, x25 +LBB0_27: + WORD $0x91000508 // add x8, x8, #1 + WORD $0xd10006b5 // sub x21, x21, #1 + WORD $0x8b1802da // add x26, x22, x24 + WORD $0x385ff119 // ldurb w25, [x8, #-1] + WORD $0x38796af9 // ldrb w25, [x23, x25] + WORD $0x7103ff3f // cmp w25, #255 + WORD $0x54fffca1 // b.ne LBB0_18 $-108(%rip) +LBB0_28: + WORD $0xf1000ebf // cmp x21, #3 + WORD $0x54002389 // b.ls LBB0_93 $1136(%rip) + WORD $0xb9400119 // ldr w25, [x8] + WORD $0x0a39019b // bic w27, w12, w25 + WORD $0x0b0a033c // add w28, w25, w10 + WORD $0x0a1c037c // and w28, w27, w28 + WORD $0x7100039f // cmp w28, #0 + WORD $0x0b10033c // add w28, w25, w16 + WORD $0x2a19039c // orr w28, w28, w25 + WORD $0x0a0c039c // and w28, w28, w12 + WORD $0x7a400b80 // ccmp w28, #0, #0, eq + WORD $0x540013e1 // b.ne LBB0_65 $636(%rip) + WORD $0x0a0d033c // and w28, w25, w13 + WORD $0x4b1c017e // sub w30, w11, w28 + WORD $0x0b0e0387 // add w7, w28, w14 + WORD $0x0a1e00e7 // and w7, w7, w30 + WORD $0x6a1b00ff // tst w7, w27 + WORD $0x54001321 // b.ne LBB0_65 $612(%rip) + WORD $0x4b1c0127 // sub w7, w9, w28 + WORD $0x0b0f039c // add w28, w28, w15 + WORD $0x0a070387 // and w7, w28, w7 + WORD $0x6a1b00ff // tst w7, w27 + WORD $0x54001281 // b.ne LBB0_65 $592(%rip) + WORD $0x5ac00b27 // rev w7, w25 + WORD $0x0a6710d9 // bic w25, w6, w7, lsr #4 + WORD $0x0b190f39 // add w25, w25, w25, lsl #3 + WORD $0x0a1100e7 // and w7, w7, w17 + WORD $0x0b070327 // add w7, w25, w7 + WORD $0x2a4710e7 // orr w7, w7, w7, lsr #4 + WORD $0x53105cf9 // ubfx w25, w7, #16, #8 + WORD $0x12001ce7 // and w7, w7, #0xff + WORD $0x2a1920f9 // orr w25, w7, w25, lsl #8 + WORD $0x91001108 // add x8, x8, #4 + WORD $0xd10012b5 // sub x21, x21, #4 + WORD $0x7102033f // cmp w25, #128 + WORD $0x54000b23 // b.lo LBB0_55 $356(%rip) + WORD $0x8b1802c7 // add x7, x22, x24 + WORD $0x910008f6 // add x22, x7, #2 +LBB0_34: + WORD $0x711fff3f // cmp w25, #2047 + WORD $0x54000b29 // b.ls LBB0_57 $356(%rip) + WORD $0x51403b27 // sub w7, w25, #14, lsl #12 + WORD $0x312004ff // cmn w7, #2049 + WORD $0x540008e9 // b.ls LBB0_53 $284(%rip) + WORD $0xb50006c5 // cbnz x5, LBB0_48 $216(%rip) + WORD $0xaa1503f8 // mov x24, x21 + WORD $0x530a7f27 // lsr w7, w25, #10 + WORD $0x7100d8ff // cmp w7, #54 + WORD $0x54000788 // b.hi LBB0_51 $240(%rip) +LBB0_38: + WORD $0xf1001b15 // subs x21, x24, #6 + WORD $0x5400074b // b.lt LBB0_51 $232(%rip) + WORD $0x39400107 // ldrb w7, [x8] + WORD $0x710170ff // cmp w7, #92 + WORD $0x540006e1 // b.ne LBB0_51 $220(%rip) + WORD $0x39400507 // ldrb w7, [x8, #1] + WORD $0x7101d4ff // cmp w7, #117 + WORD $0x54000681 // b.ne LBB0_51 $208(%rip) + WORD $0xb8402118 // ldur w24, [x8, #2] + WORD $0x0b0a0307 // add w7, w24, w10 + WORD $0x0a38019a // bic w26, w12, w24 + WORD $0x6a07035f // tst w26, w7 + WORD $0x54001421 // b.ne LBB0_77 $644(%rip) + WORD $0x0b100307 // add w7, w24, w16 + WORD $0x2a1800e7 // orr w7, w7, w24 + WORD $0x6a0c00ff // tst w7, w12 + WORD $0x540013a1 // b.ne LBB0_77 $628(%rip) + WORD $0x0a0d031b // and w27, w24, w13 + WORD $0x4b1b0167 // sub w7, w11, w27 + WORD $0x0b0e037c // add w28, w27, w14 + WORD $0x0a070387 // and w7, w28, w7 + WORD $0x6a1a00ff // tst w7, w26 + WORD $0x540012e1 // b.ne LBB0_77 $604(%rip) + WORD $0x4b1b0127 // sub w7, w9, w27 + WORD $0x0b0f037b // add w27, w27, w15 + WORD $0x0a070367 // and w7, w27, w7 + WORD $0x6a1a00ff // tst w7, w26 + WORD $0x54001241 // b.ne LBB0_77 $584(%rip) + WORD $0x5ac00b07 // rev w7, w24 + WORD $0x0a6710d8 // bic w24, w6, w7, lsr #4 + WORD $0x0b180f18 // add w24, w24, w24, lsl #3 + WORD $0x0a1100e7 // and w7, w7, w17 + WORD $0x0b070307 // add w7, w24, w7 + WORD $0x2a4710fa // orr w26, w7, w7, lsr #4 + WORD $0x53087f47 // lsr w7, w26, #8 + WORD $0x12181cf8 // and w24, w7, #0xff00 + WORD $0x91001908 // add x8, x8, #6 + WORD $0x51403b07 // sub w7, w24, #14, lsl #12 + WORD $0x33001f58 // bfxil w24, w26, #0, #8 + WORD $0x311004ff // cmn w7, #1025 + WORD $0x540005e8 // b.hi LBB0_58 $188(%rip) + WORD $0x360816a4 // tbz w4, #1, LBB0_88 $724(%rip) + WORD $0x5297fde7 // mov w7, #49135 + WORD $0x781fe2c7 // sturh w7, [x22, #-2] + WORD $0x380036d3 // strb w19, [x22], #3 + WORD $0xaa1803f9 // mov x25, x24 + WORD $0x7102031f // cmp w24, #128 + WORD $0x54fff8e2 // b.hs LBB0_34 $-228(%rip) + WORD $0x14000037 // b LBB0_59 $220(%rip) +LBB0_48: + WORD $0xf10002bf // cmp x21, #0 + WORD $0x5400168d // b.le LBB0_91 $720(%rip) + WORD $0x39400107 // ldrb w7, [x8] + WORD $0x710170ff // cmp w7, #92 + WORD $0x54000681 // b.ne LBB0_60 $208(%rip) + WORD $0xd10006b8 // sub x24, x21, #1 + WORD $0x91000508 // add x8, x8, #1 + WORD $0x530a7f27 // lsr w7, w25, #10 + WORD $0x7100d8ff // cmp w7, #54 + WORD $0x54fff8c9 // b.ls LBB0_38 $-232(%rip) +LBB0_51: + WORD $0x36081504 // tbz w4, #1, LBB0_90 $672(%rip) + WORD $0x5297fde7 // mov w7, #49135 + WORD $0x781fe2c7 // sturh w7, [x22, #-2] + WORD $0x380016d3 // strb w19, [x22], #1 + WORD $0xaa1803f5 // mov x21, x24 + WORD $0x1400000a // b LBB0_54 $40(%rip) +LBB0_53: + WORD $0x530c7f27 // lsr w7, w25, #12 + WORD $0x321b08e7 // orr w7, w7, #0xe0 + WORD $0x381fe2c7 // sturb w7, [x22, #-2] + WORD $0x52801007 // mov w7, #128 + WORD $0x33062f27 // bfxil w7, w25, #6, #6 + WORD $0x381ff2c7 // sturb w7, [x22, #-1] + WORD $0x52801007 // mov w7, #128 + WORD $0x33001727 // bfxil w7, w25, #0, #6 + WORD $0x380016c7 // strb w7, [x22], #1 +LBB0_54: + WORD $0xb5ffe635 // cbnz x21, LBB0_2 $-828(%rip) + WORD $0x14000025 // b LBB0_63 $148(%rip) +LBB0_55: + WORD $0xaa1903f8 // mov x24, x25 +LBB0_56: + WORD $0x38001758 // strb w24, [x26], #1 + WORD $0xaa1a03f6 // mov x22, x26 + WORD $0x17fffffb // b LBB0_54 $-20(%rip) +LBB0_57: + WORD $0x53067f27 // lsr w7, w25, #6 + WORD $0x321a04e7 // orr w7, w7, #0xc0 + WORD $0x381fe2c7 // sturb w7, [x22, #-2] + WORD $0x52801007 // mov w7, #128 + WORD $0x33001727 // bfxil w7, w25, #0, #6 + WORD $0x381ff2c7 // sturb w7, [x22, #-1] + WORD $0x17fffff4 // b LBB0_54 $-48(%rip) +LBB0_58: + WORD $0x0b192b07 // add w7, w24, w25, lsl #10 + WORD $0x0b1400e7 // add w7, w7, w20 + WORD $0x53127cf8 // lsr w24, w7, #18 + WORD $0x321c0f18 // orr w24, w24, #0xf0 + WORD $0x381fe2d8 // sturb w24, [x22, #-2] + WORD $0x52801018 // mov w24, #128 + WORD $0x330c44f8 // bfxil w24, w7, #12, #6 + WORD $0x381ff2d8 // sturb w24, [x22, #-1] + WORD $0x52801018 // mov w24, #128 + WORD $0x33062cf8 // bfxil w24, w7, #6, #6 + WORD $0x390002d8 // strb w24, [x22] + WORD $0x52801007 // mov w7, #128 + WORD $0x33001747 // bfxil w7, w26, #0, #6 + WORD $0x390006c7 // strb w7, [x22, #1] + WORD $0x91000ad6 // add x22, x22, #2 + WORD $0x17ffffe4 // b LBB0_54 $-112(%rip) +LBB0_59: + WORD $0xd1000ada // sub x26, x22, #2 + WORD $0x17ffffe5 // b LBB0_56 $-108(%rip) +LBB0_60: + WORD $0x36080ea4 // tbz w4, #1, LBB0_88 $468(%rip) + WORD $0x5297fde7 // mov w7, #49135 + WORD $0x781fe2c7 // sturh w7, [x22, #-2] + WORD $0x380016d3 // strb w19, [x22], #1 + WORD $0x17ffffdd // b LBB0_54 $-140(%rip) +LBB0_62: + WORD $0xd2800015 // mov x21, #0 + WORD $0xaa0203f6 // mov x22, x2 +LBB0_63: + WORD $0x8b1502c8 // add x8, x22, x21 + WORD $0xcb020100 // sub x0, x8, x2 +LBB0_64: + WORD $0xa945fbfd // ldp fp, lr, [sp, #88] + WORD $0xa944cff4 // ldp x20, x19, [sp, #72] + WORD $0xa943d7f6 // ldp x22, x21, [sp, #56] + WORD $0xa942dff8 // ldp x24, x23, [sp, #40] + WORD $0xa941e7fa // ldp x26, x25, [sp, #24] + WORD $0xa940effc // ldp x28, x27, [sp, #8] + WORD $0x9101c3ff // add sp, sp, #112 + WORD $0xd65f03c0 // ret +LBB0_65: + WORD $0xcb000109 // sub x9, x8, x0 + WORD $0xf9000069 // str x9, [x3] + WORD $0x3940010a // ldrb w10, [x8] + WORD $0x5100e94b // sub w11, w10, #58 + WORD $0x31002d7f // cmn w11, #11 + WORD $0x540000a8 // b.hi LBB0_67 $20(%rip) + WORD $0x121a794a // and w10, w10, #0xffffffdf + WORD $0x51011d4a // sub w10, w10, #71 + WORD $0x3100195f // cmn w10, #6 + WORD $0x540003e3 // b.lo LBB0_73 $124(%rip) +LBB0_67: + WORD $0x9100052a // add x10, x9, #1 + WORD $0xf900006a // str x10, [x3] + WORD $0x3940050a // ldrb w10, [x8, #1] + WORD $0x5100e94b // sub w11, w10, #58 + WORD $0x31002d7f // cmn w11, #11 + WORD $0x540000a8 // b.hi LBB0_69 $20(%rip) + WORD $0x121a794a // and w10, w10, #0xffffffdf + WORD $0x51011d4a // sub w10, w10, #71 + WORD $0x3100195f // cmn w10, #6 + WORD $0x540002a3 // b.lo LBB0_73 $84(%rip) +LBB0_69: + WORD $0x9100092a // add x10, x9, #2 + WORD $0xf900006a // str x10, [x3] + WORD $0x3940090a // ldrb w10, [x8, #2] + WORD $0x5100e94b // sub w11, w10, #58 + WORD $0x31002d7f // cmn w11, #11 + WORD $0x540000a8 // b.hi LBB0_71 $20(%rip) + WORD $0x121a794a // and w10, w10, #0xffffffdf + WORD $0x51011d4a // sub w10, w10, #71 + WORD $0x3100195f // cmn w10, #6 + WORD $0x54000163 // b.lo LBB0_73 $44(%rip) +LBB0_71: + WORD $0x91000d2a // add x10, x9, #3 + WORD $0xf900006a // str x10, [x3] + WORD $0x39400d08 // ldrb w8, [x8, #3] + WORD $0x5100e90a // sub w10, w8, #58 + WORD $0x31002d5f // cmn w10, #11 + WORD $0x54000188 // b.hi LBB0_75 $48(%rip) + WORD $0x121a7908 // and w8, w8, #0xffffffdf + WORD $0x51011d08 // sub w8, w8, #71 + WORD $0x3100191f // cmn w8, #6 + WORD $0x54000102 // b.hs LBB0_75 $32(%rip) +LBB0_73: + WORD $0x92800020 // mov x0, #-2 + WORD $0x17ffffcf // b LBB0_64 $-196(%rip) +LBB0_74: + WORD $0xaa2003e9 // mvn x9, x0 + WORD $0x8b090108 // add x8, x8, x9 + WORD $0xf9000068 // str x8, [x3] + WORD $0x92800040 // mov x0, #-3 + WORD $0x17ffffca // b LBB0_64 $-216(%rip) +LBB0_75: + WORD $0x91001128 // add x8, x9, #4 +LBB0_76: + WORD $0xf9000068 // str x8, [x3] + WORD $0x92800020 // mov x0, #-2 + WORD $0x17ffffc6 // b LBB0_64 $-232(%rip) +LBB0_77: + WORD $0xcb000109 // sub x9, x8, x0 + WORD $0x9100092a // add x10, x9, #2 + WORD $0xf900006a // str x10, [x3] + WORD $0x3940090a // ldrb w10, [x8, #2] + WORD $0x5100e94b // sub w11, w10, #58 + WORD $0x31002d7f // cmn w11, #11 + WORD $0x540000a8 // b.hi LBB0_79 $20(%rip) + WORD $0x121a794a // and w10, w10, #0xffffffdf + WORD $0x51011d4a // sub w10, w10, #71 + WORD $0x3100195f // cmn w10, #6 + WORD $0x54fffd63 // b.lo LBB0_73 $-84(%rip) +LBB0_79: + WORD $0x91000d2a // add x10, x9, #3 + WORD $0xf900006a // str x10, [x3] + WORD $0x39400d0a // ldrb w10, [x8, #3] + WORD $0x5100e94b // sub w11, w10, #58 + WORD $0x31002d7f // cmn w11, #11 + WORD $0x540000a8 // b.hi LBB0_81 $20(%rip) + WORD $0x121a794a // and w10, w10, #0xffffffdf + WORD $0x51011d4a // sub w10, w10, #71 + WORD $0x3100195f // cmn w10, #6 + WORD $0x54fffc23 // b.lo LBB0_73 $-124(%rip) +LBB0_81: + WORD $0x9100112a // add x10, x9, #4 + WORD $0xf900006a // str x10, [x3] + WORD $0x3940110a // ldrb w10, [x8, #4] + WORD $0x5100e94b // sub w11, w10, #58 + WORD $0x31002d7f // cmn w11, #11 + WORD $0x540000a8 // b.hi LBB0_83 $20(%rip) + WORD $0x121a794a // and w10, w10, #0xffffffdf + WORD $0x51011d4a // sub w10, w10, #71 + WORD $0x3100195f // cmn w10, #6 + WORD $0x54fffae3 // b.lo LBB0_73 $-164(%rip) +LBB0_83: + WORD $0x9100152a // add x10, x9, #5 + WORD $0xf900006a // str x10, [x3] + WORD $0x39401508 // ldrb w8, [x8, #5] + WORD $0x5100e90a // sub w10, w8, #58 + WORD $0x31002d5f // cmn w10, #11 + WORD $0x540000a8 // b.hi LBB0_85 $20(%rip) + WORD $0x121a7908 // and w8, w8, #0xffffffdf + WORD $0x51011d08 // sub w8, w8, #71 + WORD $0x3100191f // cmn w8, #6 + WORD $0x54fff9a3 // b.lo LBB0_73 $-204(%rip) +LBB0_85: + WORD $0x91001928 // add x8, x9, #6 + WORD $0x17ffffd3 // b LBB0_76 $-180(%rip) +LBB0_86: + WORD $0xaa2003e9 // mvn x9, x0 + WORD $0x8b090108 // add x8, x8, x9 + WORD $0x17ffffd0 // b LBB0_76 $-192(%rip) +LBB0_87: + WORD $0xcb000108 // sub x8, x8, x0 + WORD $0x91000508 // add x8, x8, #1 + WORD $0x17ffffcd // b LBB0_76 $-204(%rip) +LBB0_88: + WORD $0xcb000108 // sub x8, x8, x0 +LBB0_89: + WORD $0xd1001108 // sub x8, x8, #4 + WORD $0xf9000068 // str x8, [x3] + WORD $0x92800060 // mov x0, #-4 + WORD $0x17ffff90 // b LBB0_64 $-448(%rip) +LBB0_90: + WORD $0x8b0000a9 // add x9, x5, x0 + WORD $0xcb090108 // sub x8, x8, x9 + WORD $0x17fffffa // b LBB0_89 $-24(%rip) +LBB0_91: + WORD $0x360800e4 // tbz w4, #1, LBB0_93 $28(%rip) + WORD $0xd2800015 // mov x21, #0 + WORD $0x5297fde8 // mov w8, #49135 + WORD $0x781fe2c8 // sturh w8, [x22, #-2] + WORD $0x528017a8 // mov w8, #189 + WORD $0x380016c8 // strb w8, [x22], #1 + WORD $0x17ffff84 // b LBB0_63 $-496(%rip) +LBB0_93: + WORD $0xf9000061 // str x1, [x3] + WORD $0x92800000 // mov x0, #-1 + WORD $0x17ffff83 // b LBB0_64 $-500(%rip) +__UnquoteTab: + WORD $0x00000000 // .ascii 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .ascii 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .ascii 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .ascii 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .ascii 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .ascii 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"\x00' + WORD $0x00000000 // .ascii 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"\x00\x00\x00\x00\x00' + WORD $0x00000000 // .ascii 4, '\x00\x00\x00\x00\x00\x00"\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00220000 // .ascii 4, '\x00\x00"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00/' + WORD $0x00000000 // .ascii 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00/\x00\x00\x00\x00' + WORD $0x00000000 // .ascii 4, '\x00\x00\x00\x00\x00\x00\x00/\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x2f000000 // .ascii 4, '\x00\x00\x00/\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .ascii 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .ascii 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .ascii 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .ascii 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .ascii 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .ascii 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .ascii 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .ascii 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .ascii 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\\\x00\x00\x00' + WORD $0x00000000 // .ascii 4, '\x00\x00\x00\x00\x00\x00\x00\x00\\\x00\x00\x00\x00\x00\x08\x00' + WORD $0x00000000 // .ascii 4, '\x00\x00\x00\x00\\\x00\x00\x00\x00\x00\x08\x00\x00\x00\x0c\x00' + WORD $0x0000005c // .ascii 4, '\\\x00\x00\x00\x00\x00\x08\x00\x00\x00\x0c\x00\x00\x00\x00\x00' + WORD $0x00080000 // .ascii 4, '\x00\x00\x08\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\n\x00' + WORD $0x000c0000 // .ascii 4, '\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\n\x00\x00\x00\r\x00' + WORD $0x00000000 // .ascii 4, '\x00\x00\x00\x00\x00\x00\n\x00\x00\x00\r\x00\t\xff\x00\x00' + WORD $0x000a0000 // .ascii 4, '\x00\x00\n\x00\x00\x00\r\x00\t\xff\x00\x00' + WORD $0x000d0000 // .ascii 4, '\x00\x00\r\x00\t\xff\x00\x00' + WORD $0x0000ff09 // .ascii 4, '\t\xff\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + +TEXT ·__unquote(SB), NOSPLIT, $0-48 + NO_LOCAL_POINTERS + +_entry: + MOVD 16(g), R16 + SUB $176, RSP, R17 + CMP R16, R17 + BLS _stack_grow + +_unquote: + MOVD sp+0(FP), R0 + MOVD nb+8(FP), R1 + MOVD dp+16(FP), R2 + MOVD ep+24(FP), R3 + MOVD flags+32(FP), R4 + MOVD ·_subr__unquote(SB), R11 + WORD $0x1000005e // adr x30, .+8 + JMP (R11) + MOVD R0, ret+40(FP) + RET + +_stack_grow: + MOVD R30, R3 + CALL runtime·morestack_noctxt<>(SB) + JMP _entry diff --git a/vendor/github.com/bytedance/sonic/internal/native/neon/unquote_subr_arm64.go b/vendor/github.com/bytedance/sonic/internal/native/neon/unquote_subr_arm64.go new file mode 100644 index 000000000..040e15a3d --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/neon/unquote_subr_arm64.go @@ -0,0 +1,25 @@ +// +build !noasm !appengine +// Code generated by asm2asm, DO NOT EDIT. + +package neon + +//go:nosplit +//go:noescape +//goland:noinspection ALL +func __unquote_entry__() uintptr + +var ( + _subr__unquote uintptr = __unquote_entry__() + 32 +) + +const ( + _stack__unquote = 112 +) + +var ( + _ = _subr__unquote +) + +const ( + _ = _stack__unquote +) diff --git a/vendor/github.com/bytedance/sonic/internal/native/neon/validate_one_arm64.go b/vendor/github.com/bytedance/sonic/internal/native/neon/validate_one_arm64.go new file mode 100644 index 000000000..14a6dad3e --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/neon/validate_one_arm64.go @@ -0,0 +1,37 @@ +// Code generated by Makefile, DO NOT EDIT. + +// Code generated by Makefile, DO NOT EDIT. + +/* + * Copyright 2021 ByteDance 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 neon + +import ( + // `unsafe` + + `github.com/bytedance/sonic/internal/native/types` +) + +//go:nosplit +func validate_one(s *string, p *int, m *types.StateMachine) (ret int) { + return __validate_one(s, p, m) +} + +//go:nosplit +//go:noescape +//goland:noinspection GoUnusedParameter +func __validate_one(s *string, p *int, m *types.StateMachine) (ret int) diff --git a/vendor/github.com/bytedance/sonic/internal/native/neon/validate_one_arm64.s b/vendor/github.com/bytedance/sonic/internal/native/neon/validate_one_arm64.s new file mode 100644 index 000000000..156e7d692 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/neon/validate_one_arm64.s @@ -0,0 +1,1860 @@ +// +build !noasm !appengine +// Code generated by asm2asm, DO NOT EDIT. + +#include "go_asm.h" +#include "funcdata.h" +#include "textflag.h" + +TEXT ·__validate_one_entry__(SB), NOSPLIT, $96 + NO_LOCAL_POINTERS + WORD $0x100000a0 // adr x0, .+20 + MOVD R0, ret(FP) + RET + // .p2align 4, 0x00 +lCPI0_0: + WORD $0x00000001; WORD $0x00000000 // .quad 1 + WORD $0x00000000; WORD $0x00000000 // .quad 0 +lCPI0_1: + WORD $0x08040201 + WORD $0x80402010 + WORD $0x08040201 + WORD $0x80402010 + // // .byte 1 +// .byte 2 +// .byte 4 +// .byte 8 +// .byte 16 +// .byte 32 +// .byte 64 +// .byte 128 +// .byte 1 +// .byte 2 +// .byte 4 +// .byte 8 +// .byte 16 +// .byte 32 +// .byte 64 +// .byte 128 + +lCPI0_2: + WORD $0x09010800 + WORD $0x0b030a02 + WORD $0x0d050c04 + WORD $0x0f070e06 + // // .byte 0 +// .byte 8 +// .byte 1 +// .byte 9 +// .byte 2 +// .byte 10 +// .byte 3 +// .byte 11 +// .byte 4 +// .byte 12 +// .byte 5 +// .byte 13 +// .byte 6 +// .byte 14 +// .byte 7 +// .byte 15 + +_validate_one: + WORD $0xd101c3ff // sub sp, sp, #112 + WORD $0xa900effc // stp x28, x27, [sp, #8] + WORD $0xa901e7fa // stp x26, x25, [sp, #24] + WORD $0xa902dff8 // stp x24, x23, [sp, #40] + WORD $0xa903d7f6 // stp x22, x21, [sp, #56] + WORD $0xa904cff4 // stp x20, x19, [sp, #72] + WORD $0xa905fbfd // stp fp, lr, [sp, #88] + WORD $0xa93ffbfd // stp fp, lr, [sp, #-8] + WORD $0xd10023fd // sub fp, sp, #8 +Lloh0: + WORD $0x10fffd68 // adr x8, lCPI0_0 $-84(%rip) +Lloh1: + WORD $0x3dc00100 // ldr q0, [x8, lCPI0_0@PAGEOFF] $0(%rip) + WORD $0xaa0203eb // mov x11, x2 + WORD $0x3c808560 // str q0, [x11], #8 + WORD $0xf940000a // ldr x10, [x0] + WORD $0xaa2a03ec // mvn x12, x10 + WORD $0xf940003b // ldr x27, [x1] + WORD $0xcb0a03ed // neg x13, x10 + WORD $0xd100054e // sub x14, x10, #1 + WORD $0x9280000f // mov x15, #-1 + WORD $0x52800030 // mov w16, #1 + WORD $0xd284c011 // mov x17, #9728 + WORD $0xf2c00031 // movk x17, #1, lsl #32 + WORD $0x52800066 // mov w6, #3 + WORD $0x52800097 // mov w23, #4 + WORD $0x4f01e440 // movi.16b v0, #34 +Lloh2: + WORD $0x10fffbe8 // adr x8, lCPI0_1 $-132(%rip) +Lloh3: + WORD $0x3dc00101 // ldr q1, [x8, lCPI0_1@PAGEOFF] $0(%rip) +Lloh4: + WORD $0x10fffc28 // adr x8, lCPI0_2 $-124(%rip) +Lloh5: + WORD $0x3dc00102 // ldr q2, [x8, lCPI0_2@PAGEOFF] $0(%rip) + WORD $0x4f02e783 // movi.16b v3, #92 + WORD $0x4f01e404 // movi.16b v4, #32 + WORD $0x92f00018 // mov x24, #9223372036854775807 + WORD $0xb20903f9 // mov x25, #36028797027352576 + WORD $0xf2800039 // movk x25, #1 + WORD $0x4f01e5c5 // movi.16b v5, #46 + WORD $0x4f01e566 // movi.16b v6, #43 + WORD $0x4f01e5a7 // movi.16b v7, #45 + WORD $0x12800013 // mov w19, #-1 + WORD $0x4f06e610 // movi.16b v16, #208 + WORD $0x4f00e551 // movi.16b v17, #10 + WORD $0x4f06e7f2 // movi.16b v18, #223 + WORD $0x528000ba // mov w26, #5 + WORD $0x528d8c3e // mov w30, #27745 + WORD $0x72acae7e // movk w30, #25971, lsl #16 + WORD $0x4f02e4b3 // movi.16b v19, #69 + WORD $0x52800025 // mov w5, #1 +LBB0_1: + WORD $0xf9400408 // ldr x8, [x0, #8] + WORD $0xeb08037f // cmp x27, x8 + WORD $0x54000162 // b.hs LBB0_6 $44(%rip) + WORD $0x387b6949 // ldrb w9, [x10, x27] + WORD $0x7100353f // cmp w9, #13 + WORD $0x54000100 // b.eq LBB0_6 $32(%rip) + WORD $0x7100813f // cmp w9, #32 + WORD $0x540000c0 // b.eq LBB0_6 $24(%rip) + WORD $0x51002d29 // sub w9, w9, #11 + WORD $0x3100093f // cmn w9, #2 + WORD $0x54000062 // b.hs LBB0_6 $12(%rip) + WORD $0xaa1b03e9 // mov x9, x27 + WORD $0x14000031 // b LBB0_22 $196(%rip) +LBB0_6: + WORD $0x91000769 // add x9, x27, #1 + WORD $0xeb08013f // cmp x9, x8 + WORD $0x54000122 // b.hs LBB0_10 $36(%rip) + WORD $0x38696943 // ldrb w3, [x10, x9] + WORD $0x7100347f // cmp w3, #13 + WORD $0x540000c0 // b.eq LBB0_10 $24(%rip) + WORD $0x7100807f // cmp w3, #32 + WORD $0x54000080 // b.eq LBB0_10 $16(%rip) + WORD $0x51002c63 // sub w3, w3, #11 + WORD $0x3100087f // cmn w3, #2 + WORD $0x540004c3 // b.lo LBB0_22 $152(%rip) +LBB0_10: + WORD $0x91000b69 // add x9, x27, #2 + WORD $0xeb08013f // cmp x9, x8 + WORD $0x54000122 // b.hs LBB0_14 $36(%rip) + WORD $0x38696943 // ldrb w3, [x10, x9] + WORD $0x7100347f // cmp w3, #13 + WORD $0x540000c0 // b.eq LBB0_14 $24(%rip) + WORD $0x7100807f // cmp w3, #32 + WORD $0x54000080 // b.eq LBB0_14 $16(%rip) + WORD $0x51002c63 // sub w3, w3, #11 + WORD $0x3100087f // cmn w3, #2 + WORD $0x54000363 // b.lo LBB0_22 $108(%rip) +LBB0_14: + WORD $0x91000f69 // add x9, x27, #3 + WORD $0xeb08013f // cmp x9, x8 + WORD $0x54000122 // b.hs LBB0_18 $36(%rip) + WORD $0x38696943 // ldrb w3, [x10, x9] + WORD $0x7100347f // cmp w3, #13 + WORD $0x540000c0 // b.eq LBB0_18 $24(%rip) + WORD $0x7100807f // cmp w3, #32 + WORD $0x54000080 // b.eq LBB0_18 $16(%rip) + WORD $0x51002c63 // sub w3, w3, #11 + WORD $0x3100087f // cmn w3, #2 + WORD $0x54000203 // b.lo LBB0_22 $64(%rip) +LBB0_18: + WORD $0x91001369 // add x9, x27, #4 + WORD $0xeb08013f // cmp x9, x8 + WORD $0x5400acc2 // b.hs LBB0_298 $5528(%rip) +LBB0_19: + WORD $0x38696943 // ldrb w3, [x10, x9] + WORD $0x7100807f // cmp w3, #32 + WORD $0x9ac32203 // lsl x3, x16, x3 + WORD $0x8a110063 // and x3, x3, x17 + WORD $0xfa409864 // ccmp x3, #0, #4, ls + WORD $0x540000a0 // b.eq LBB0_21 $20(%rip) + WORD $0x91000529 // add x9, x9, #1 + WORD $0xeb09011f // cmp x8, x9 + WORD $0x54ffff01 // b.ne LBB0_19 $-32(%rip) + WORD $0x14000552 // b LBB0_296 $5448(%rip) +LBB0_21: + WORD $0xeb08013f // cmp x9, x8 + WORD $0x5400aa02 // b.hs LBB0_296 $5440(%rip) +LBB0_22: + WORD $0x9100053b // add x27, x9, #1 + WORD $0xf900003b // str x27, [x1] + WORD $0x8b09015c // add x28, x10, x9 + WORD $0x39400395 // ldrb w21, [x28] + WORD $0x3400a975 // cbz w21, LBB0_296 $5420(%rip) + WORD $0xd10004b4 // sub x20, x5, #1 + WORD $0xf8747968 // ldr x8, [x11, x20, lsl #3] + WORD $0xb10005ff // cmn x15, #1 + WORD $0x9a8f012f // csel x15, x9, x15, eq + WORD $0x71000d1f // cmp w8, #3 + WORD $0x54000f0c // b.gt LBB0_38 $480(%rip) + WORD $0x7100051f // cmp w8, #1 + WORD $0x54001dc0 // b.eq LBB0_52 $952(%rip) + WORD $0x7100091f // cmp w8, #2 + WORD $0x54003100 // b.eq LBB0_92 $1568(%rip) + WORD $0x71000d1f // cmp w8, #3 + WORD $0x54001ec1 // b.ne LBB0_56 $984(%rip) + WORD $0x71008abf // cmp w21, #34 + WORD $0x5400b4c1 // b.ne LBB0_328 $5784(%rip) + WORD $0xf8347977 // str x23, [x11, x20, lsl #3] + WORD $0xf9400408 // ldr x8, [x0, #8] + WORD $0xeb1b011e // subs lr, x8, x27 + WORD $0x5400b4e0 // b.eq LBB0_330 $5788(%rip) + WORD $0xf10103df // cmp lr, #64 + WORD $0x540071e3 // b.lo LBB0_217 $3644(%rip) + WORD $0xd2800005 // mov x5, #0 + WORD $0x9280001c // mov x28, #-1 +LBB0_31: + WORD $0x8b1b0143 // add x3, x10, x27 + WORD $0xad405877 // ldp q23, q22, [x3] + WORD $0xad415075 // ldp q21, q20, [x3, #32] + WORD $0x6e208ef8 // cmeq.16b v24, v23, v0 + WORD $0x4e211f18 // and.16b v24, v24, v1 + WORD $0x4e020318 // tbl.16b v24, { v24 }, v2 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260303 // fmov w3, s24 + WORD $0x6e208ed8 // cmeq.16b v24, v22, v0 + WORD $0x4e211f18 // and.16b v24, v24, v1 + WORD $0x4e020318 // tbl.16b v24, { v24 }, v2 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260307 // fmov w7, s24 + WORD $0x6e208eb8 // cmeq.16b v24, v21, v0 + WORD $0x4e211f18 // and.16b v24, v24, v1 + WORD $0x4e020318 // tbl.16b v24, { v24 }, v2 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260314 // fmov w20, s24 + WORD $0x6e208e98 // cmeq.16b v24, v20, v0 + WORD $0x4e211f18 // and.16b v24, v24, v1 + WORD $0x4e020318 // tbl.16b v24, { v24 }, v2 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260315 // fmov w21, s24 + WORD $0x6e238ef8 // cmeq.16b v24, v23, v3 + WORD $0x4e211f18 // and.16b v24, v24, v1 + WORD $0x4e020318 // tbl.16b v24, { v24 }, v2 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260316 // fmov w22, s24 + WORD $0x6e238ed8 // cmeq.16b v24, v22, v3 + WORD $0x4e211f18 // and.16b v24, v24, v1 + WORD $0x4e020318 // tbl.16b v24, { v24 }, v2 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260317 // fmov w23, s24 + WORD $0x6e238eb8 // cmeq.16b v24, v21, v3 + WORD $0x4e211f18 // and.16b v24, v24, v1 + WORD $0x4e020318 // tbl.16b v24, { v24 }, v2 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260318 // fmov w24, s24 + WORD $0x6e238e98 // cmeq.16b v24, v20, v3 + WORD $0x4e211f18 // and.16b v24, v24, v1 + WORD $0x4e020318 // tbl.16b v24, { v24 }, v2 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e26031a // fmov w26, s24 + WORD $0xd3607e94 // lsl x20, x20, #32 + WORD $0xaa15c294 // orr x20, x20, x21, lsl #48 + WORD $0x53103ce7 // lsl w7, w7, #16 + WORD $0xaa070287 // orr x7, x20, x7 + WORD $0xaa0300f4 // orr x20, x7, x3 + WORD $0xd3607f03 // lsl x3, x24, #32 + WORD $0xaa1ac063 // orr x3, x3, x26, lsl #48 + WORD $0x53103ee7 // lsl w7, w23, #16 + WORD $0xaa070063 // orr x3, x3, x7 + WORD $0xaa160063 // orr x3, x3, x22 + WORD $0xb5000443 // cbnz x3, LBB0_36 $136(%rip) + WORD $0xb50004c5 // cbnz x5, LBB0_37 $152(%rip) +LBB0_33: + WORD $0x6e373497 // cmhi.16b v23, v4, v23 + WORD $0x4e211ef7 // and.16b v23, v23, v1 + WORD $0x4e0202f7 // tbl.16b v23, { v23 }, v2 + WORD $0x4e71baf7 // addv.8h h23, v23 + WORD $0x1e2602e3 // fmov w3, s23 + WORD $0x6e363496 // cmhi.16b v22, v4, v22 + WORD $0x4e211ed6 // and.16b v22, v22, v1 + WORD $0x4e0202d6 // tbl.16b v22, { v22 }, v2 + WORD $0x4e71bad6 // addv.8h h22, v22 + WORD $0x1e2602c7 // fmov w7, s22 + WORD $0x6e353495 // cmhi.16b v21, v4, v21 + WORD $0x4e211eb5 // and.16b v21, v21, v1 + WORD $0x4e0202b5 // tbl.16b v21, { v21 }, v2 + WORD $0x4e71bab5 // addv.8h h21, v21 + WORD $0x1e2602b5 // fmov w21, s21 + WORD $0x6e343494 // cmhi.16b v20, v4, v20 + WORD $0x4e211e94 // and.16b v20, v20, v1 + WORD $0x4e020294 // tbl.16b v20, { v20 }, v2 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e260296 // fmov w22, s20 + WORD $0xd3607eb5 // lsl x21, x21, #32 + WORD $0xaa16c2b5 // orr x21, x21, x22, lsl #48 + WORD $0x53103ce7 // lsl w7, w7, #16 + WORD $0xaa0702a7 // orr x7, x21, x7 + WORD $0xaa0300e3 // orr x3, x7, x3 + WORD $0xb50026f4 // cbnz x20, LBB0_96 $1244(%rip) + WORD $0xb5009f63 // cbnz x3, LBB0_306 $5100(%rip) + WORD $0xd10103de // sub lr, lr, #64 + WORD $0x9101037b // add x27, x27, #64 + WORD $0xf100ffdf // cmp lr, #63 + WORD $0x54fff568 // b.hi LBB0_31 $-340(%rip) + WORD $0x1400032c // b LBB0_214 $3248(%rip) +LBB0_36: + WORD $0xb100079f // cmn x28, #1 + WORD $0xdac00067 // rbit x7, x3 + WORD $0xdac010e7 // clz x7, x7 + WORD $0x8b1b00e7 // add x7, x7, x27 + WORD $0x9a87139c // csel x28, x28, x7, ne +LBB0_37: + WORD $0x8a250067 // bic x7, x3, x5 + WORD $0xaa0704b5 // orr x21, x5, x7, lsl #1 + WORD $0x8a350063 // bic x3, x3, x21 + WORD $0x9201f063 // and x3, x3, #0xaaaaaaaaaaaaaaaa + WORD $0xab070063 // adds x3, x3, x7 + WORD $0x1a9f37e5 // cset w5, hs + WORD $0xd37ff863 // lsl x3, x3, #1 + WORD $0xd200f063 // eor x3, x3, #0x5555555555555555 + WORD $0x8a150063 // and x3, x3, x21 + WORD $0x8a230294 // bic x20, x20, x3 + WORD $0x17ffffd1 // b LBB0_33 $-188(%rip) +LBB0_38: + WORD $0x7100111f // cmp w8, #4 + WORD $0x54000f80 // b.eq LBB0_54 $496(%rip) + WORD $0x7100151f // cmp w8, #5 + WORD $0x540022c0 // b.eq LBB0_94 $1112(%rip) + WORD $0x7100191f // cmp w8, #6 + WORD $0x54000fe1 // b.ne LBB0_56 $508(%rip) + WORD $0x71008abf // cmp w21, #34 + WORD $0x540021e1 // b.ne LBB0_93 $1084(%rip) + WORD $0x52800048 // mov w8, #2 + WORD $0xf8347968 // str x8, [x11, x20, lsl #3] + WORD $0xf9400408 // ldr x8, [x0, #8] + WORD $0xeb1b011e // subs lr, x8, x27 + WORD $0x5400a5e0 // b.eq LBB0_330 $5308(%rip) + WORD $0xf10103df // cmp lr, #64 + WORD $0x54006fe3 // b.lo LBB0_238 $3580(%rip) + WORD $0xd2800005 // mov x5, #0 + WORD $0x9280001c // mov x28, #-1 +LBB0_45: + WORD $0x8b1b0143 // add x3, x10, x27 + WORD $0xad405877 // ldp q23, q22, [x3] + WORD $0xad415075 // ldp q21, q20, [x3, #32] + WORD $0x6e208ef8 // cmeq.16b v24, v23, v0 + WORD $0x4e211f18 // and.16b v24, v24, v1 + WORD $0x4e020318 // tbl.16b v24, { v24 }, v2 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260303 // fmov w3, s24 + WORD $0x6e208ed8 // cmeq.16b v24, v22, v0 + WORD $0x4e211f18 // and.16b v24, v24, v1 + WORD $0x4e020318 // tbl.16b v24, { v24 }, v2 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260307 // fmov w7, s24 + WORD $0x6e208eb8 // cmeq.16b v24, v21, v0 + WORD $0x4e211f18 // and.16b v24, v24, v1 + WORD $0x4e020318 // tbl.16b v24, { v24 }, v2 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260314 // fmov w20, s24 + WORD $0x6e208e98 // cmeq.16b v24, v20, v0 + WORD $0x4e211f18 // and.16b v24, v24, v1 + WORD $0x4e020318 // tbl.16b v24, { v24 }, v2 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260315 // fmov w21, s24 + WORD $0x6e238ef8 // cmeq.16b v24, v23, v3 + WORD $0x4e211f18 // and.16b v24, v24, v1 + WORD $0x4e020318 // tbl.16b v24, { v24 }, v2 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260316 // fmov w22, s24 + WORD $0x6e238ed8 // cmeq.16b v24, v22, v3 + WORD $0x4e211f18 // and.16b v24, v24, v1 + WORD $0x4e020318 // tbl.16b v24, { v24 }, v2 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260317 // fmov w23, s24 + WORD $0x6e238eb8 // cmeq.16b v24, v21, v3 + WORD $0x4e211f18 // and.16b v24, v24, v1 + WORD $0x4e020318 // tbl.16b v24, { v24 }, v2 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260318 // fmov w24, s24 + WORD $0x6e238e98 // cmeq.16b v24, v20, v3 + WORD $0x4e211f18 // and.16b v24, v24, v1 + WORD $0x4e020318 // tbl.16b v24, { v24 }, v2 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e26031a // fmov w26, s24 + WORD $0xd3607e94 // lsl x20, x20, #32 + WORD $0xaa15c294 // orr x20, x20, x21, lsl #48 + WORD $0x53103ce7 // lsl w7, w7, #16 + WORD $0xaa070287 // orr x7, x20, x7 + WORD $0xaa0300f4 // orr x20, x7, x3 + WORD $0xd3607f03 // lsl x3, x24, #32 + WORD $0xaa1ac063 // orr x3, x3, x26, lsl #48 + WORD $0x53103ee7 // lsl w7, w23, #16 + WORD $0xaa070063 // orr x3, x3, x7 + WORD $0xaa160063 // orr x3, x3, x22 + WORD $0xb5000443 // cbnz x3, LBB0_50 $136(%rip) + WORD $0xb50004c5 // cbnz x5, LBB0_51 $152(%rip) +LBB0_47: + WORD $0x6e373497 // cmhi.16b v23, v4, v23 + WORD $0x4e211ef7 // and.16b v23, v23, v1 + WORD $0x4e0202f7 // tbl.16b v23, { v23 }, v2 + WORD $0x4e71baf7 // addv.8h h23, v23 + WORD $0x1e2602e3 // fmov w3, s23 + WORD $0x6e363496 // cmhi.16b v22, v4, v22 + WORD $0x4e211ed6 // and.16b v22, v22, v1 + WORD $0x4e0202d6 // tbl.16b v22, { v22 }, v2 + WORD $0x4e71bad6 // addv.8h h22, v22 + WORD $0x1e2602c7 // fmov w7, s22 + WORD $0x6e353495 // cmhi.16b v21, v4, v21 + WORD $0x4e211eb5 // and.16b v21, v21, v1 + WORD $0x4e0202b5 // tbl.16b v21, { v21 }, v2 + WORD $0x4e71bab5 // addv.8h h21, v21 + WORD $0x1e2602b5 // fmov w21, s21 + WORD $0x6e343494 // cmhi.16b v20, v4, v20 + WORD $0x4e211e94 // and.16b v20, v20, v1 + WORD $0x4e020294 // tbl.16b v20, { v20 }, v2 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e260296 // fmov w22, s20 + WORD $0xd3607eb5 // lsl x21, x21, #32 + WORD $0xaa16c2b5 // orr x21, x21, x22, lsl #48 + WORD $0x53103ce7 // lsl w7, w7, #16 + WORD $0xaa0702a7 // orr x7, x21, x7 + WORD $0xaa0300e3 // orr x3, x7, x3 + WORD $0xb5001f54 // cbnz x20, LBB0_110 $1000(%rip) + WORD $0xb5009063 // cbnz x3, LBB0_306 $4620(%rip) + WORD $0xd10103de // sub lr, lr, #64 + WORD $0x9101037b // add x27, x27, #64 + WORD $0xf100ffdf // cmp lr, #63 + WORD $0x54fff568 // b.hi LBB0_45 $-340(%rip) + WORD $0x14000320 // b LBB0_236 $3200(%rip) +LBB0_50: + WORD $0xb100079f // cmn x28, #1 + WORD $0xdac00067 // rbit x7, x3 + WORD $0xdac010e7 // clz x7, x7 + WORD $0x8b1b00e7 // add x7, x7, x27 + WORD $0x9a87139c // csel x28, x28, x7, ne +LBB0_51: + WORD $0x8a250067 // bic x7, x3, x5 + WORD $0xaa0704b5 // orr x21, x5, x7, lsl #1 + WORD $0x8a350063 // bic x3, x3, x21 + WORD $0x9201f063 // and x3, x3, #0xaaaaaaaaaaaaaaaa + WORD $0xab070063 // adds x3, x3, x7 + WORD $0x1a9f37e5 // cset w5, hs + WORD $0xd37ff863 // lsl x3, x3, #1 + WORD $0xd200f063 // eor x3, x3, #0x5555555555555555 + WORD $0x8a150063 // and x3, x3, x21 + WORD $0x8a230294 // bic x20, x20, x3 + WORD $0x17ffffd1 // b LBB0_47 $-188(%rip) +LBB0_52: + WORD $0x7100b2bf // cmp w21, #44 + WORD $0x54001a00 // b.eq LBB0_106 $832(%rip) + WORD $0x710176bf // cmp w21, #93 + WORD $0x54001400 // b.eq LBB0_95 $640(%rip) + WORD $0x140004ba // b LBB0_328 $4840(%rip) +LBB0_54: + WORD $0x7100eabf // cmp w21, #58 + WORD $0x54009701 // b.ne LBB0_328 $4832(%rip) + WORD $0xf834797f // str xzr, [x11, x20, lsl #3] + WORD $0xf9400045 // ldr x5, [x2] + WORD $0xaa0f03e8 // mov x8, x15 + WORD $0xb5ffd7e5 // cbnz x5, LBB0_1 $-1284(%rip) + WORD $0x1400044b // b LBB0_297 $4396(%rip) +LBB0_56: + WORD $0xf9000054 // str x20, [x2] + WORD $0x92800028 // mov x8, #-2 + WORD $0x71016abf // cmp w21, #90 + WORD $0x540015ec // b.gt LBB0_100 $700(%rip) +LBB0_57: + WORD $0x5100c2a3 // sub w3, w21, #48 + WORD $0x7100287f // cmp w3, #10 + WORD $0x54002422 // b.hs LBB0_132 $1156(%rip) + WORD $0xf9400408 // ldr x8, [x0, #8] + WORD $0xeb090114 // subs x20, x8, x9 + WORD $0x54008a20 // b.eq LBB0_301 $4420(%rip) + WORD $0x39400388 // ldrb w8, [x28] + WORD $0x7100c11f // cmp w8, #48 + WORD $0x54000141 // b.ne LBB0_63 $40(%rip) + WORD $0xf100069f // cmp x20, #1 + WORD $0x54002960 // b.eq LBB0_148 $1324(%rip) + WORD $0x387b6948 // ldrb w8, [x10, x27] + WORD $0x5100b908 // sub w8, w8, #46 + WORD $0x7100dd1f // cmp w8, #55 + WORD $0x540028e8 // b.hi LBB0_148 $1308(%rip) + WORD $0x9ac82208 // lsl x8, x16, x8 + WORD $0xea19011f // tst x8, x25 + WORD $0x54002880 // b.eq LBB0_148 $1296(%rip) +LBB0_63: + WORD $0xf100429f // cmp x20, #16 + WORD $0x54007763 // b.lo LBB0_280 $3820(%rip) + WORD $0xd2800015 // mov x21, #0 + WORD $0xd280001e // mov lr, #0 + WORD $0x9280001b // mov x27, #-1 + WORD $0x92800005 // mov x5, #-1 + WORD $0x92800008 // mov x8, #-1 +LBB0_65: + WORD $0x3cfe6b94 // ldr q20, [x28, lr] + WORD $0x6e258e95 // cmeq.16b v21, v20, v5 + WORD $0x6e268e96 // cmeq.16b v22, v20, v6 + WORD $0x6e278e97 // cmeq.16b v23, v20, v7 + WORD $0x4e308698 // add.16b v24, v20, v16 + WORD $0x6e383638 // cmhi.16b v24, v17, v24 + WORD $0x4e321e94 // and.16b v20, v20, v18 + WORD $0x6e338e94 // cmeq.16b v20, v20, v19 + WORD $0x4eb71ed6 // orr.16b v22, v22, v23 + WORD $0x4eb51f17 // orr.16b v23, v24, v21 + WORD $0x4eb61e98 // orr.16b v24, v20, v22 + WORD $0x4eb81ef7 // orr.16b v23, v23, v24 + WORD $0x4e211eb5 // and.16b v21, v21, v1 + WORD $0x4e0202b5 // tbl.16b v21, { v21 }, v2 + WORD $0x4e71bab5 // addv.8h h21, v21 + WORD $0x1e2602a3 // fmov w3, s21 + WORD $0x4e211e94 // and.16b v20, v20, v1 + WORD $0x4e020294 // tbl.16b v20, { v20 }, v2 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e260297 // fmov w23, s20 + WORD $0x4e211ed4 // and.16b v20, v22, v1 + WORD $0x4e020294 // tbl.16b v20, { v20 }, v2 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e26029a // fmov w26, s20 + WORD $0x4e211ef4 // and.16b v20, v23, v1 + WORD $0x4e020294 // tbl.16b v20, { v20 }, v2 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e260287 // fmov w7, s20 + WORD $0x2a2703e7 // mvn w7, w7 + WORD $0x32103ce7 // orr w7, w7, #0xffff0000 + WORD $0x5ac000e7 // rbit w7, w7 + WORD $0x5ac010f6 // clz w22, w7 + WORD $0x1ad62267 // lsl w7, w19, w22 + WORD $0x0a270078 // bic w24, w3, w7 + WORD $0x0a2702f9 // bic w25, w23, w7 + WORD $0x0a270344 // bic w4, w26, w7 + WORD $0x710042df // cmp w22, #16 + WORD $0x1a980067 // csel w7, w3, w24, eq + WORD $0x1a9902f8 // csel w24, w23, w25, eq + WORD $0x1a840357 // csel w23, w26, w4, eq + WORD $0x510004e3 // sub w3, w7, #1 + WORD $0x6a070063 // ands w3, w3, w7 + WORD $0x54004a41 // b.ne LBB0_215 $2376(%rip) + WORD $0x51000703 // sub w3, w24, #1 + WORD $0x6a180063 // ands w3, w3, w24 + WORD $0x540049e1 // b.ne LBB0_215 $2364(%rip) + WORD $0x510006e3 // sub w3, w23, #1 + WORD $0x6a170063 // ands w3, w3, w23 + WORD $0x54004981 // b.ne LBB0_215 $2352(%rip) + WORD $0x340000c7 // cbz w7, LBB0_71 $24(%rip) + WORD $0x5ac000e3 // rbit w3, w7 + WORD $0x5ac01063 // clz w3, w3 + WORD $0xb100051f // cmn x8, #1 + WORD $0x54004981 // b.ne LBB0_216 $2352(%rip) + WORD $0x8b0303c8 // add x8, lr, x3 +LBB0_71: + WORD $0x340000d8 // cbz w24, LBB0_74 $24(%rip) + WORD $0x5ac00303 // rbit w3, w24 + WORD $0x5ac01063 // clz w3, w3 + WORD $0xb10004bf // cmn x5, #1 + WORD $0x540048c1 // b.ne LBB0_216 $2328(%rip) + WORD $0x8b0303c5 // add x5, lr, x3 +LBB0_74: + WORD $0x340000d7 // cbz w23, LBB0_77 $24(%rip) + WORD $0x5ac002e3 // rbit w3, w23 + WORD $0x5ac01063 // clz w3, w3 + WORD $0xb100077f // cmn x27, #1 + WORD $0x54004801 // b.ne LBB0_216 $2304(%rip) + WORD $0x8b0303db // add x27, lr, x3 +LBB0_77: + WORD $0x710042df // cmp w22, #16 + WORD $0x540012c1 // b.ne LBB0_116 $600(%rip) + WORD $0x910043de // add lr, lr, #16 + WORD $0xd10042b5 // sub x21, x21, #16 + WORD $0x8b150296 // add x22, x20, x21 + WORD $0xf1003edf // cmp x22, #15 + WORD $0x54fff6e8 // b.hi LBB0_65 $-292(%rip) + WORD $0x8b1e0395 // add x21, x28, lr + WORD $0xeb1e029f // cmp x20, lr + WORD $0x54001200 // b.eq LBB0_117 $576(%rip) +LBB0_80: + WORD $0x8b1602b7 // add x23, x21, x22 + WORD $0x8b0901c3 // add x3, x14, x9 + WORD $0xcb150074 // sub x20, x3, x21 + WORD $0xcb1c02b8 // sub x24, x21, x28 + WORD $0xaa1503fe // mov lr, x21 + WORD $0x14000009 // b LBB0_83 $36(%rip) +LBB0_81: + WORD $0xb10004bf // cmn x5, #1 + WORD $0xaa1803e5 // mov x5, x24 + WORD $0x54001561 // b.ne LBB0_129 $684(%rip) +LBB0_82: + WORD $0xd1000694 // sub x20, x20, #1 + WORD $0x91000718 // add x24, x24, #1 + WORD $0xaa1e03f5 // mov x21, lr + WORD $0xd10006d6 // sub x22, x22, #1 + WORD $0xb4002d96 // cbz x22, LBB0_164 $1456(%rip) +LBB0_83: + WORD $0x384017c7 // ldrb w7, [lr], #1 + WORD $0x5100c0e3 // sub w3, w7, #48 + WORD $0x7100287f // cmp w3, #10 + WORD $0x54ffff03 // b.lo LBB0_82 $-32(%rip) + WORD $0x7100b4ff // cmp w7, #45 + WORD $0x5400016d // b.le LBB0_89 $44(%rip) + WORD $0x710194ff // cmp w7, #101 + WORD $0x54fffe20 // b.eq LBB0_81 $-60(%rip) + WORD $0x710114ff // cmp w7, #69 + WORD $0x54fffde0 // b.eq LBB0_81 $-68(%rip) + WORD $0x7100b8ff // cmp w7, #46 + WORD $0x54000ec1 // b.ne LBB0_117 $472(%rip) + WORD $0xb100051f // cmn x8, #1 + WORD $0xaa1803e8 // mov x8, x24 + WORD $0x54fffda0 // b.eq LBB0_82 $-76(%rip) + WORD $0x14000096 // b LBB0_129 $600(%rip) +LBB0_89: + WORD $0x7100acff // cmp w7, #43 + WORD $0x54000060 // b.eq LBB0_91 $12(%rip) + WORD $0x7100b4ff // cmp w7, #45 + WORD $0x54000dc1 // b.ne LBB0_117 $440(%rip) +LBB0_91: + WORD $0xb100077f // cmn x27, #1 + WORD $0xaa1803fb // mov x27, x24 + WORD $0x54fffca0 // b.eq LBB0_82 $-108(%rip) + WORD $0x1400008e // b LBB0_129 $568(%rip) +LBB0_92: + WORD $0x7100b2bf // cmp w21, #44 + WORD $0x540007a0 // b.eq LBB0_108 $244(%rip) +LBB0_93: + WORD $0x7101f6bf // cmp w21, #125 + WORD $0x54000080 // b.eq LBB0_95 $16(%rip) + WORD $0x1400041e // b LBB0_328 $4216(%rip) +LBB0_94: + WORD $0x710176bf // cmp w21, #93 + WORD $0x54000301 // b.ne LBB0_99 $96(%rip) +LBB0_95: + WORD $0xf9000054 // str x20, [x2] + WORD $0xaa1403e5 // mov x5, x20 + WORD $0xaa0f03e8 // mov x8, x15 + WORD $0xb5ffc474 // cbnz x20, LBB0_1 $-1908(%rip) + WORD $0x140003af // b LBB0_297 $3772(%rip) +LBB0_96: + WORD $0xdac00285 // rbit x5, x20 + WORD $0xdac010a5 // clz x5, x5 + WORD $0xdac00063 // rbit x3, x3 + WORD $0xdac01063 // clz x3, x3 + WORD $0xeb05007f // cmp x3, x5 + WORD $0x54008323 // b.lo LBB0_331 $4196(%rip) + WORD $0x8b1b00a3 // add x3, x5, x27 +LBB0_98: + WORD $0x52800097 // mov w23, #4 + WORD $0x92f00018 // mov x24, #9223372036854775807 + WORD $0xb20903f9 // mov x25, #36028797027352576 + WORD $0xf2800039 // movk x25, #1 + WORD $0x528000ba // mov w26, #5 + WORD $0x528d8c3e // mov w30, #27745 + WORD $0x72acae7e // movk w30, #25971, lsl #16 + WORD $0x9100047b // add x27, x3, #1 + WORD $0xb100087f // cmn x3, #2 + WORD $0x540015ac // b.gt LBB0_148 $692(%rip) + WORD $0x140003aa // b LBB0_300 $3752(%rip) +LBB0_99: + WORD $0xf8347970 // str x16, [x11, x20, lsl #3] + WORD $0x92800028 // mov x8, #-2 + WORD $0x71016abf // cmp w21, #90 + WORD $0x54ffea6d // b.le LBB0_57 $-692(%rip) +LBB0_100: + WORD $0x7101b6bf // cmp w21, #109 + WORD $0x540010ad // b.le LBB0_138 $532(%rip) + WORD $0x7101babf // cmp w21, #110 + WORD $0x54001340 // b.eq LBB0_145 $616(%rip) + WORD $0x7101d2bf // cmp w21, #116 + WORD $0x540011c0 // b.eq LBB0_143 $568(%rip) + WORD $0x7101eebf // cmp w21, #123 + WORD $0x54007221 // b.ne LBB0_297 $3652(%rip) + WORD $0xf9400048 // ldr x8, [x2] + WORD $0xf13ffd1f // cmp x8, #4095 + WORD $0x5400732c // b.gt LBB0_299 $3684(%rip) + WORD $0x91000509 // add x9, x8, #1 + WORD $0xf9000049 // str x9, [x2] + WORD $0x528000c9 // mov w9, #6 + WORD $0xf8287969 // str x9, [x11, x8, lsl #3] + WORD $0xf9400045 // ldr x5, [x2] + WORD $0xaa0f03e8 // mov x8, x15 + WORD $0xb5ffbf45 // cbnz x5, LBB0_1 $-2072(%rip) + WORD $0x14000386 // b LBB0_297 $3608(%rip) +LBB0_106: + WORD $0xf13ffcbf // cmp x5, #4095 + WORD $0x540071ec // b.gt LBB0_299 $3644(%rip) + WORD $0x910004a8 // add x8, x5, #1 + WORD $0xf9000048 // str x8, [x2] + WORD $0xf825797f // str xzr, [x11, x5, lsl #3] + WORD $0xf9400045 // ldr x5, [x2] + WORD $0xaa0f03e8 // mov x8, x15 + WORD $0xb5ffbe25 // cbnz x5, LBB0_1 $-2108(%rip) + WORD $0x1400037d // b LBB0_297 $3572(%rip) +LBB0_108: + WORD $0xf13ffcbf // cmp x5, #4095 + WORD $0x540070cc // b.gt LBB0_299 $3608(%rip) + WORD $0x910004a8 // add x8, x5, #1 + WORD $0xf9000048 // str x8, [x2] + WORD $0xf8257966 // str x6, [x11, x5, lsl #3] + WORD $0xf9400045 // ldr x5, [x2] + WORD $0xaa0f03e8 // mov x8, x15 + WORD $0xb5ffbd05 // cbnz x5, LBB0_1 $-2144(%rip) + WORD $0x14000374 // b LBB0_297 $3536(%rip) +LBB0_110: + WORD $0xdac00285 // rbit x5, x20 + WORD $0xdac010a5 // clz x5, x5 + WORD $0xdac00063 // rbit x3, x3 + WORD $0xdac01063 // clz x3, x3 + WORD $0xeb05007f // cmp x3, x5 + WORD $0x54007bc3 // b.lo LBB0_331 $3960(%rip) + WORD $0x8b1b00a3 // add x3, x5, x27 +LBB0_112: + WORD $0x52800097 // mov w23, #4 + WORD $0x92f00018 // mov x24, #9223372036854775807 + WORD $0xb20903f9 // mov x25, #36028797027352576 + WORD $0xf2800039 // movk x25, #1 + WORD $0x528000ba // mov w26, #5 + WORD $0x528d8c3e // mov w30, #27745 + WORD $0x72acae7e // movk w30, #25971, lsl #16 + WORD $0x9100047b // add x27, x3, #1 + WORD $0xb100087f // cmn x3, #2 + WORD $0x54006e0d // b.le LBB0_300 $3520(%rip) +LBB0_113: + WORD $0xf900003b // str x27, [x1] + WORD $0xaa0903e8 // mov x8, x9 + WORD $0xb27ff7e3 // mov x3, #9223372036854775806 + WORD $0xeb03013f // cmp x9, x3 + WORD $0x54006bc8 // b.hi LBB0_297 $3448(%rip) + WORD $0xf9400048 // ldr x8, [x2] + WORD $0xf13ffd1f // cmp x8, #4095 + WORD $0x54006ccc // b.gt LBB0_299 $3480(%rip) + WORD $0x91000509 // add x9, x8, #1 + WORD $0xf9000049 // str x9, [x2] + WORD $0xf8287977 // str x23, [x11, x8, lsl #3] + WORD $0xf9400045 // ldr x5, [x2] + WORD $0xaa0f03e8 // mov x8, x15 + WORD $0xb5ffb905 // cbnz x5, LBB0_1 $-2272(%rip) + WORD $0x14000354 // b LBB0_297 $3408(%rip) +LBB0_116: + WORD $0x8b364383 // add x3, x28, w22, uxtw + WORD $0x8b1e0075 // add x21, x3, lr +LBB0_117: + WORD $0x92800014 // mov x20, #-1 + WORD $0xb4006c28 // cbz x8, LBB0_302 $3460(%rip) +LBB0_118: + WORD $0xb4006c1b // cbz x27, LBB0_302 $3456(%rip) + WORD $0xb4006be5 // cbz x5, LBB0_302 $3452(%rip) + WORD $0xcb1c02b4 // sub x20, x21, x28 + WORD $0xd1000683 // sub x3, x20, #1 + WORD $0xeb03011f // cmp x8, x3 + WORD $0x54000380 // b.eq LBB0_128 $112(%rip) + WORD $0xeb03037f // cmp x27, x3 + WORD $0x54000340 // b.eq LBB0_128 $104(%rip) + WORD $0xeb0300bf // cmp x5, x3 + WORD $0x54000300 // b.eq LBB0_128 $96(%rip) + WORD $0xf1000763 // subs x3, x27, #1 + WORD $0x52800097 // mov w23, #4 + WORD $0x92f00018 // mov x24, #9223372036854775807 + WORD $0xb20903f9 // mov x25, #36028797027352576 + WORD $0xf2800039 // movk x25, #1 + WORD $0x528000ba // mov w26, #5 + WORD $0x528d8c3e // mov w30, #27745 + WORD $0x72acae7e // movk w30, #25971, lsl #16 + WORD $0x5400006b // b.lt LBB0_125 $12(%rip) + WORD $0xeb0300bf // cmp x5, x3 + WORD $0x540069a1 // b.ne LBB0_303 $3380(%rip) +LBB0_125: + WORD $0xaa050103 // orr x3, x8, x5 + WORD $0xb7f80063 // tbnz x3, #63, LBB0_127 $12(%rip) + WORD $0xeb05011f // cmp x8, x5 + WORD $0x54006b4a // b.ge LBB0_310 $3432(%rip) +LBB0_127: + WORD $0xd37ffc63 // lsr x3, x3, #63 + WORD $0x52000063 // eor w3, w3, #0x1 + WORD $0xd10004a4 // sub x4, x5, #1 + WORD $0xeb04011f // cmp x8, x4 + WORD $0x1a9f17e8 // cset w8, eq + WORD $0x6a08007f // tst w3, w8 + WORD $0xda850294 // csinv x20, x20, x5, eq + WORD $0x14000009 // b LBB0_130 $36(%rip) +LBB0_128: + WORD $0xcb1403f4 // neg x20, x20 +LBB0_129: + WORD $0x52800097 // mov w23, #4 + WORD $0x92f00018 // mov x24, #9223372036854775807 + WORD $0xb20903f9 // mov x25, #36028797027352576 + WORD $0xf2800039 // movk x25, #1 + WORD $0x528000ba // mov w26, #5 + WORD $0x528d8c3e // mov w30, #27745 + WORD $0x72acae7e // movk w30, #25971, lsl #16 +LBB0_130: + WORD $0xb7f866f4 // tbnz x20, #63, LBB0_302 $3292(%rip) + WORD $0x8b14013b // add x27, x9, x20 + WORD $0x14000033 // b LBB0_148 $204(%rip) +LBB0_132: + WORD $0x71008abf // cmp w21, #34 + WORD $0x54000860 // b.eq LBB0_152 $268(%rip) + WORD $0x7100b6bf // cmp w21, #45 + WORD $0x54006401 // b.ne LBB0_297 $3200(%rip) + WORD $0xf9400408 // ldr x8, [x0, #8] + WORD $0xeb1b0117 // subs x23, x8, x27 + WORD $0x54006860 // b.eq LBB0_311 $3340(%rip) + WORD $0xb20903e4 // mov x4, #36028797027352576 + WORD $0xf2800024 // movk x4, #1 + WORD $0x8b1b0148 // add x8, x10, x27 + WORD $0x39400103 // ldrb w3, [x8] + WORD $0x7100c07f // cmp w3, #48 + WORD $0x54001781 // b.ne LBB0_167 $752(%rip) + WORD $0xf10006ff // cmp x23, #1 + WORD $0x54001641 // b.ne LBB0_165 $712(%rip) +LBB0_137: + WORD $0x52800034 // mov w20, #1 + WORD $0x14000153 // b LBB0_213 $1356(%rip) +LBB0_138: + WORD $0x71016ebf // cmp w21, #91 + WORD $0x54000500 // b.eq LBB0_150 $160(%rip) + WORD $0x71019abf // cmp w21, #102 + WORD $0x540061e1 // b.ne LBB0_297 $3132(%rip) + WORD $0xf9400408 // ldr x8, [x0, #8] + WORD $0xd1001103 // sub x3, x8, #4 + WORD $0xeb03013f // cmp x9, x3 + WORD $0x540064e2 // b.hs LBB0_308 $3228(%rip) + WORD $0xb87b6948 // ldr w8, [x10, x27] + WORD $0x6b1e011f // cmp w8, w30 + WORD $0x54006641 // b.ne LBB0_314 $3272(%rip) + WORD $0x9100153b // add x27, x9, #5 + WORD $0x14000015 // b LBB0_148 $84(%rip) +LBB0_143: + WORD $0xf9400408 // ldr x8, [x0, #8] + WORD $0xd1000d03 // sub x3, x8, #3 + WORD $0xeb03013f // cmp x9, x3 + WORD $0x540063c2 // b.hs LBB0_308 $3192(%rip) + WORD $0xb8696948 // ldr w8, [x10, x9] + WORD $0x528e4e83 // mov w3, #29300 + WORD $0x72acaea3 // movk w3, #25973, lsl #16 + WORD $0x6b03011f // cmp w8, w3 + WORD $0x54000160 // b.eq LBB0_147 $44(%rip) + WORD $0x1400034f // b LBB0_323 $3388(%rip) +LBB0_145: + WORD $0xf9400408 // ldr x8, [x0, #8] + WORD $0xd1000d03 // sub x3, x8, #3 + WORD $0xeb03013f // cmp x9, x3 + WORD $0x54006282 // b.hs LBB0_308 $3152(%rip) + WORD $0xb8696948 // ldr w8, [x10, x9] + WORD $0x528eadc3 // mov w3, #30062 + WORD $0x72ad8d83 // movk w3, #27756, lsl #16 + WORD $0x6b03011f // cmp w8, w3 + WORD $0x54006641 // b.ne LBB0_319 $3272(%rip) +LBB0_147: + WORD $0x9100113b // add x27, x9, #4 +LBB0_148: + WORD $0xf900003b // str x27, [x1] + WORD $0xaa0903e8 // mov x8, x9 + WORD $0xeb18013f // cmp x9, x24 + WORD $0x54005dc2 // b.hs LBB0_297 $3000(%rip) +LBB0_149: + WORD $0xf9400045 // ldr x5, [x2] + WORD $0xaa0f03e8 // mov x8, x15 + WORD $0xb5ffabc5 // cbnz x5, LBB0_1 $-2696(%rip) + WORD $0x140002ea // b LBB0_297 $2984(%rip) +LBB0_150: + WORD $0xf9400048 // ldr x8, [x2] + WORD $0xf13ffd1f // cmp x8, #4095 + WORD $0x54005e4c // b.gt LBB0_299 $3016(%rip) + WORD $0x91000509 // add x9, x8, #1 + WORD $0xf9000049 // str x9, [x2] + WORD $0xf828797a // str x26, [x11, x8, lsl #3] + WORD $0xf9400045 // ldr x5, [x2] + WORD $0xaa0f03e8 // mov x8, x15 + WORD $0xb5ffaa85 // cbnz x5, LBB0_1 $-2736(%rip) + WORD $0x140002e0 // b LBB0_297 $2944(%rip) +LBB0_152: + WORD $0x3200f3f9 // mov w25, #1431655765 + WORD $0xf9400408 // ldr x8, [x0, #8] + WORD $0xeb1b011e // subs lr, x8, x27 + WORD $0x54006920 // b.eq LBB0_330 $3364(%rip) + WORD $0xf10103df // cmp lr, #64 + WORD $0x54004123 // b.lo LBB0_261 $2084(%rip) + WORD $0xd2800005 // mov x5, #0 + WORD $0x9280001c // mov x28, #-1 +LBB0_155: + WORD $0x8b1b0143 // add x3, x10, x27 + WORD $0xad405877 // ldp q23, q22, [x3] + WORD $0xad415075 // ldp q21, q20, [x3, #32] + WORD $0x6e208ef8 // cmeq.16b v24, v23, v0 + WORD $0x4e211f18 // and.16b v24, v24, v1 + WORD $0x4e020318 // tbl.16b v24, { v24 }, v2 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260303 // fmov w3, s24 + WORD $0x6e208ed8 // cmeq.16b v24, v22, v0 + WORD $0x4e211f18 // and.16b v24, v24, v1 + WORD $0x4e020318 // tbl.16b v24, { v24 }, v2 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260304 // fmov w4, s24 + WORD $0x6e208eb8 // cmeq.16b v24, v21, v0 + WORD $0x4e211f18 // and.16b v24, v24, v1 + WORD $0x4e020318 // tbl.16b v24, { v24 }, v2 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260306 // fmov w6, s24 + WORD $0x6e208e98 // cmeq.16b v24, v20, v0 + WORD $0x4e211f18 // and.16b v24, v24, v1 + WORD $0x4e020318 // tbl.16b v24, { v24 }, v2 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260307 // fmov w7, s24 + WORD $0x6e238ef8 // cmeq.16b v24, v23, v3 + WORD $0x4e211f18 // and.16b v24, v24, v1 + WORD $0x4e020318 // tbl.16b v24, { v24 }, v2 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260315 // fmov w21, s24 + WORD $0x6e238ed8 // cmeq.16b v24, v22, v3 + WORD $0x4e211f18 // and.16b v24, v24, v1 + WORD $0x4e020318 // tbl.16b v24, { v24 }, v2 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260316 // fmov w22, s24 + WORD $0x6e238eb8 // cmeq.16b v24, v21, v3 + WORD $0x4e211f18 // and.16b v24, v24, v1 + WORD $0x4e020318 // tbl.16b v24, { v24 }, v2 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260317 // fmov w23, s24 + WORD $0x6e238e98 // cmeq.16b v24, v20, v3 + WORD $0x4e211f18 // and.16b v24, v24, v1 + WORD $0x4e020318 // tbl.16b v24, { v24 }, v2 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260318 // fmov w24, s24 + WORD $0xd3607cc6 // lsl x6, x6, #32 + WORD $0xaa07c0c6 // orr x6, x6, x7, lsl #48 + WORD $0x53103c84 // lsl w4, w4, #16 + WORD $0xaa0400c4 // orr x4, x6, x4 + WORD $0xaa030094 // orr x20, x4, x3 + WORD $0xd3607ee3 // lsl x3, x23, #32 + WORD $0xaa18c063 // orr x3, x3, x24, lsl #48 + WORD $0x53103ec4 // lsl w4, w22, #16 + WORD $0xaa040063 // orr x3, x3, x4 + WORD $0xaa150063 // orr x3, x3, x21 + WORD $0xb5000443 // cbnz x3, LBB0_160 $136(%rip) + WORD $0xb50004c5 // cbnz x5, LBB0_161 $152(%rip) +LBB0_157: + WORD $0x6e373497 // cmhi.16b v23, v4, v23 + WORD $0x4e211ef7 // and.16b v23, v23, v1 + WORD $0x4e0202f7 // tbl.16b v23, { v23 }, v2 + WORD $0x4e71baf7 // addv.8h h23, v23 + WORD $0x1e2602e3 // fmov w3, s23 + WORD $0x6e363496 // cmhi.16b v22, v4, v22 + WORD $0x4e211ed6 // and.16b v22, v22, v1 + WORD $0x4e0202d6 // tbl.16b v22, { v22 }, v2 + WORD $0x4e71bad6 // addv.8h h22, v22 + WORD $0x1e2602c4 // fmov w4, s22 + WORD $0x6e353495 // cmhi.16b v21, v4, v21 + WORD $0x4e211eb5 // and.16b v21, v21, v1 + WORD $0x4e0202b5 // tbl.16b v21, { v21 }, v2 + WORD $0x4e71bab5 // addv.8h h21, v21 + WORD $0x1e2602a6 // fmov w6, s21 + WORD $0x6e343494 // cmhi.16b v20, v4, v20 + WORD $0x4e211e94 // and.16b v20, v20, v1 + WORD $0x4e020294 // tbl.16b v20, { v20 }, v2 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e260287 // fmov w7, s20 + WORD $0xd3607cc6 // lsl x6, x6, #32 + WORD $0xaa07c0c6 // orr x6, x6, x7, lsl #48 + WORD $0x53103c84 // lsl w4, w4, #16 + WORD $0xaa0400c4 // orr x4, x6, x4 + WORD $0xaa030083 // orr x3, x4, x3 + WORD $0xb50002f4 // cbnz x20, LBB0_162 $92(%rip) + WORD $0xb50053a3 // cbnz x3, LBB0_306 $2676(%rip) + WORD $0xd10103de // sub lr, lr, #64 + WORD $0x9101037b // add x27, x27, #64 + WORD $0xf100ffdf // cmp lr, #63 + WORD $0x54fff568 // b.hi LBB0_155 $-340(%rip) + WORD $0x140001aa // b LBB0_259 $1704(%rip) +LBB0_160: + WORD $0xb100079f // cmn x28, #1 + WORD $0xdac00064 // rbit x4, x3 + WORD $0xdac01084 // clz x4, x4 + WORD $0x8b1b0084 // add x4, x4, x27 + WORD $0x9a84139c // csel x28, x28, x4, ne +LBB0_161: + WORD $0x8a250064 // bic x4, x3, x5 + WORD $0xaa0404a6 // orr x6, x5, x4, lsl #1 + WORD $0x8a260063 // bic x3, x3, x6 + WORD $0x9201f063 // and x3, x3, #0xaaaaaaaaaaaaaaaa + WORD $0xab040063 // adds x3, x3, x4 + WORD $0x1a9f37e5 // cset w5, hs + WORD $0xd37ff863 // lsl x3, x3, #1 + WORD $0xd200f063 // eor x3, x3, #0x5555555555555555 + WORD $0x8a060063 // and x3, x3, x6 + WORD $0x8a230294 // bic x20, x20, x3 + WORD $0x17ffffd1 // b LBB0_157 $-188(%rip) +LBB0_162: + WORD $0xdac00284 // rbit x4, x20 + WORD $0xdac01085 // clz x5, x4 + WORD $0xdac00063 // rbit x3, x3 + WORD $0xdac01063 // clz x3, x3 + WORD $0xeb05007f // cmp x3, x5 + WORD $0x54005b63 // b.lo LBB0_331 $2924(%rip) + WORD $0x8b1b00a3 // add x3, x5, x27 + WORD $0x52800066 // mov w6, #3 + WORD $0x17fffec1 // b LBB0_98 $-1276(%rip) +LBB0_164: + WORD $0xaa1703f5 // mov x21, x23 + WORD $0x92800014 // mov x20, #-1 + WORD $0xb5ffe2c8 // cbnz x8, LBB0_118 $-936(%rip) + WORD $0x14000275 // b LBB0_302 $2516(%rip) +LBB0_165: + WORD $0x39400503 // ldrb w3, [x8, #1] + WORD $0x5100b863 // sub w3, w3, #46 + WORD $0x7100dc7f // cmp w3, #55 + WORD $0x54ffe988 // b.hi LBB0_137 $-720(%rip) + WORD $0x9ac32203 // lsl x3, x16, x3 + WORD $0x52800034 // mov w20, #1 + WORD $0xea04007f // tst x3, x4 + WORD $0x54001380 // b.eq LBB0_213 $624(%rip) +LBB0_167: + WORD $0xf10042ff // cmp x23, #16 + WORD $0x54003d03 // b.lo LBB0_281 $1952(%rip) + WORD $0xd2800016 // mov x22, #0 + WORD $0xd2800018 // mov x24, #0 + WORD $0x9280001c // mov x28, #-1 + WORD $0x9280001e // mov lr, #-1 + WORD $0x92800005 // mov x5, #-1 +LBB0_169: + WORD $0x3cf86914 // ldr q20, [x8, x24] + WORD $0x6e258e95 // cmeq.16b v21, v20, v5 + WORD $0x6e268e96 // cmeq.16b v22, v20, v6 + WORD $0x6e278e97 // cmeq.16b v23, v20, v7 + WORD $0x4e308698 // add.16b v24, v20, v16 + WORD $0x6e383638 // cmhi.16b v24, v17, v24 + WORD $0x4e321e94 // and.16b v20, v20, v18 + WORD $0x6e338e94 // cmeq.16b v20, v20, v19 + WORD $0x4eb71ed6 // orr.16b v22, v22, v23 + WORD $0x4eb51f17 // orr.16b v23, v24, v21 + WORD $0x4eb61e98 // orr.16b v24, v20, v22 + WORD $0x4eb81ef7 // orr.16b v23, v23, v24 + WORD $0x4e211eb5 // and.16b v21, v21, v1 + WORD $0x4e0202b5 // tbl.16b v21, { v21 }, v2 + WORD $0x4e71bab5 // addv.8h h21, v21 + WORD $0x1e2602a3 // fmov w3, s21 + WORD $0x4e211e94 // and.16b v20, v20, v1 + WORD $0x4e020294 // tbl.16b v20, { v20 }, v2 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e260284 // fmov w4, s20 + WORD $0x4e211ed4 // and.16b v20, v22, v1 + WORD $0x4e020294 // tbl.16b v20, { v20 }, v2 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e260295 // fmov w21, s20 + WORD $0x4e211ef4 // and.16b v20, v23, v1 + WORD $0x4e020294 // tbl.16b v20, { v20 }, v2 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e260287 // fmov w7, s20 + WORD $0x2a2703e7 // mvn w7, w7 + WORD $0x32103ce7 // orr w7, w7, #0xffff0000 + WORD $0x5ac000e7 // rbit w7, w7 + WORD $0x5ac010f4 // clz w20, w7 + WORD $0x1ad42267 // lsl w7, w19, w20 + WORD $0x0a270079 // bic w25, w3, w7 + WORD $0x0a27009a // bic w26, w4, w7 + WORD $0x0a2702a6 // bic w6, w21, w7 + WORD $0x7100429f // cmp w20, #16 + WORD $0x1a990063 // csel w3, w3, w25, eq + WORD $0x1a9a0087 // csel w7, w4, w26, eq + WORD $0x1a8602b5 // csel w21, w21, w6, eq + WORD $0x51000464 // sub w4, w3, #1 + WORD $0x6a03009a // ands w26, w4, w3 + WORD $0x540029a1 // b.ne LBB0_258 $1332(%rip) + WORD $0x510004e4 // sub w4, w7, #1 + WORD $0x6a07009a // ands w26, w4, w7 + WORD $0x54002941 // b.ne LBB0_258 $1320(%rip) + WORD $0x510006a4 // sub w4, w21, #1 + WORD $0x6a15009a // ands w26, w4, w21 + WORD $0x540028e1 // b.ne LBB0_258 $1308(%rip) + WORD $0x340000c3 // cbz w3, LBB0_175 $24(%rip) + WORD $0x5ac00063 // rbit w3, w3 + WORD $0x5ac01063 // clz w3, w3 + WORD $0xb10004bf // cmn x5, #1 + WORD $0x54002941 // b.ne LBB0_260 $1320(%rip) + WORD $0x8b030305 // add x5, x24, x3 +LBB0_175: + WORD $0x340000c7 // cbz w7, LBB0_178 $24(%rip) + WORD $0x5ac000e3 // rbit w3, w7 + WORD $0x5ac01063 // clz w3, w3 + WORD $0xb10007df // cmn lr, #1 + WORD $0x54002881 // b.ne LBB0_260 $1296(%rip) + WORD $0x8b03031e // add lr, x24, x3 +LBB0_178: + WORD $0x340000d5 // cbz w21, LBB0_181 $24(%rip) + WORD $0x5ac002a3 // rbit w3, w21 + WORD $0x5ac01063 // clz w3, w3 + WORD $0xb100079f // cmn x28, #1 + WORD $0x540027c1 // b.ne LBB0_260 $1272(%rip) + WORD $0x8b03031c // add x28, x24, x3 +LBB0_181: + WORD $0x7100429f // cmp w20, #16 + WORD $0x540005e1 // b.ne LBB0_199 $188(%rip) + WORD $0x91004318 // add x24, x24, #16 + WORD $0xd10042d6 // sub x22, x22, #16 + WORD $0x8b1602f4 // add x20, x23, x22 + WORD $0xf1003e9f // cmp x20, #15 + WORD $0x54fff6e8 // b.hi LBB0_169 $-292(%rip) + WORD $0x8b180115 // add x21, x8, x24 + WORD $0xeb1802ff // cmp x23, x24 + WORD $0x52800066 // mov w6, #3 + WORD $0x54000520 // b.eq LBB0_200 $164(%rip) +LBB0_184: + WORD $0x8b1402a4 // add x4, x21, x20 + WORD $0x8b1501a3 // add x3, x13, x21 + WORD $0xcb090077 // sub x23, x3, x9 + WORD $0xaa1503f6 // mov x22, x21 + WORD $0x14000008 // b LBB0_188 $32(%rip) +LBB0_185: + WORD $0xb100079f // cmn x28, #1 + WORD $0x54002421 // b.ne LBB0_257 $1156(%rip) + WORD $0xd10006fc // sub x28, x23, #1 +LBB0_187: + WORD $0x910006f7 // add x23, x23, #1 + WORD $0xaa1603f5 // mov x21, x22 + WORD $0xd1000694 // sub x20, x20, #1 + WORD $0xb40016d4 // cbz x20, LBB0_237 $728(%rip) +LBB0_188: + WORD $0x384016c7 // ldrb w7, [x22], #1 + WORD $0x5100c0e3 // sub w3, w7, #48 + WORD $0x7100287f // cmp w3, #10 + WORD $0x54ffff23 // b.lo LBB0_187 $-28(%rip) + WORD $0x7100b4ff // cmp w7, #45 + WORD $0x5400016d // b.le LBB0_195 $44(%rip) + WORD $0x710194ff // cmp w7, #101 + WORD $0x540001c0 // b.eq LBB0_197 $56(%rip) + WORD $0x710114ff // cmp w7, #69 + WORD $0x54000180 // b.eq LBB0_197 $48(%rip) + WORD $0x7100b8ff // cmp w7, #46 + WORD $0x54000221 // b.ne LBB0_200 $68(%rip) + WORD $0xb10004bf // cmn x5, #1 + WORD $0x540021c1 // b.ne LBB0_257 $1080(%rip) + WORD $0xd10006e5 // sub x5, x23, #1 + WORD $0x17ffffed // b LBB0_187 $-76(%rip) +LBB0_195: + WORD $0x7100acff // cmp w7, #43 + WORD $0x54fffd00 // b.eq LBB0_185 $-96(%rip) + WORD $0x7100b4ff // cmp w7, #45 + WORD $0x54fffcc0 // b.eq LBB0_185 $-104(%rip) + WORD $0x14000008 // b LBB0_200 $32(%rip) +LBB0_197: + WORD $0xb10007df // cmn lr, #1 + WORD $0x540020a1 // b.ne LBB0_257 $1044(%rip) + WORD $0xd10006fe // sub lr, x23, #1 + WORD $0x17ffffe4 // b LBB0_187 $-112(%rip) +LBB0_199: + WORD $0x8b344103 // add x3, x8, w20, uxtw + WORD $0x8b180075 // add x21, x3, x24 + WORD $0x52800066 // mov w6, #3 +LBB0_200: + WORD $0x92800014 // mov x20, #-1 + WORD $0xb4004085 // cbz x5, LBB0_312 $2064(%rip) +LBB0_201: + WORD $0xb400407c // cbz x28, LBB0_312 $2060(%rip) + WORD $0xb400405e // cbz lr, LBB0_312 $2056(%rip) + WORD $0xcb0802a8 // sub x8, x21, x8 + WORD $0xd1000503 // sub x3, x8, #1 + WORD $0xeb0300bf // cmp x5, x3 + WORD $0x540002a0 // b.eq LBB0_211 $84(%rip) + WORD $0xeb03039f // cmp x28, x3 + WORD $0x54000260 // b.eq LBB0_211 $76(%rip) + WORD $0xeb0303df // cmp lr, x3 + WORD $0x54000220 // b.eq LBB0_211 $68(%rip) + WORD $0xf1000783 // subs x3, x28, #1 + WORD $0x5400006b // b.lt LBB0_208 $12(%rip) + WORD $0xeb0303df // cmp lr, x3 + WORD $0x54003ee1 // b.ne LBB0_313 $2012(%rip) +LBB0_208: + WORD $0xaa1e00a3 // orr x3, x5, lr + WORD $0xb7f80063 // tbnz x3, #63, LBB0_210 $12(%rip) + WORD $0xeb1e00bf // cmp x5, lr + WORD $0x540046aa // b.ge LBB0_329 $2260(%rip) +LBB0_210: + WORD $0xd37ffc63 // lsr x3, x3, #63 + WORD $0x52000063 // eor w3, w3, #0x1 + WORD $0xd10007c4 // sub x4, lr, #1 + WORD $0xeb0400bf // cmp x5, x4 + WORD $0x1a9f17e4 // cset w4, eq + WORD $0x6a04007f // tst w3, w4 + WORD $0xda9e0114 // csinv x20, x8, lr, eq + WORD $0x14000002 // b LBB0_212 $8(%rip) +LBB0_211: + WORD $0xcb0803f4 // neg x20, x8 +LBB0_212: + WORD $0xb7f83d14 // tbnz x20, #63, LBB0_312 $1952(%rip) +LBB0_213: + WORD $0x8b1b029b // add x27, x20, x27 + WORD $0xf900003b // str x27, [x1] + WORD $0xaa0903e8 // mov x8, x9 + WORD $0x92f00018 // mov x24, #9223372036854775807 + WORD $0xeb18013f // cmp x9, x24 + WORD $0x52800097 // mov w23, #4 + WORD $0xb20903f9 // mov x25, #36028797027352576 + WORD $0xf2800039 // movk x25, #1 + WORD $0x528000ba // mov w26, #5 + WORD $0x528d8c3e // mov w30, #27745 + WORD $0x72acae7e // movk w30, #25971, lsl #16 + WORD $0x54ffd903 // b.lo LBB0_149 $-1248(%rip) + WORD $0x140001b4 // b LBB0_297 $1744(%rip) +LBB0_214: + WORD $0x8b1b0144 // add x4, x10, x27 + WORD $0x1400000c // b LBB0_218 $48(%rip) +LBB0_215: + WORD $0x5ac00068 // rbit w8, w3 + WORD $0x5ac01108 // clz w8, w8 + WORD $0xaa3e03e3 // mvn x3, lr + WORD $0xcb080074 // sub x20, x3, x8 + WORD $0x17fffe80 // b LBB0_129 $-1536(%rip) +LBB0_216: + WORD $0xaa3e03e8 // mvn x8, lr + WORD $0xcb234114 // sub x20, x8, w3, uxtw + WORD $0x17fffe7d // b LBB0_129 $-1548(%rip) +LBB0_217: + WORD $0xd2800005 // mov x5, #0 + WORD $0x8b1b0144 // add x4, x10, x27 + WORD $0x9280001c // mov x28, #-1 +LBB0_218: + WORD $0xf10083d4 // subs x20, lr, #32 + WORD $0x54000783 // b.lo LBB0_226 $240(%rip) + WORD $0xad405095 // ldp q21, q20, [x4] + WORD $0x6e208eb6 // cmeq.16b v22, v21, v0 + WORD $0x4e211ed6 // and.16b v22, v22, v1 + WORD $0x4e0202d6 // tbl.16b v22, { v22 }, v2 + WORD $0x4e71bad6 // addv.8h h22, v22 + WORD $0x1e2602d5 // fmov w21, s22 + WORD $0x6e208e96 // cmeq.16b v22, v20, v0 + WORD $0x4e211ed6 // and.16b v22, v22, v1 + WORD $0x4e0202d6 // tbl.16b v22, { v22 }, v2 + WORD $0x4e71bad6 // addv.8h h22, v22 + WORD $0x1e2602c3 // fmov w3, s22 + WORD $0x6e238eb6 // cmeq.16b v22, v21, v3 + WORD $0x4e211ed6 // and.16b v22, v22, v1 + WORD $0x4e0202d6 // tbl.16b v22, { v22 }, v2 + WORD $0x4e71bad6 // addv.8h h22, v22 + WORD $0x1e2602d6 // fmov w22, s22 + WORD $0x6e238e96 // cmeq.16b v22, v20, v3 + WORD $0x4e211ed6 // and.16b v22, v22, v1 + WORD $0x4e0202d6 // tbl.16b v22, { v22 }, v2 + WORD $0x4e71bad6 // addv.8h h22, v22 + WORD $0x1e2602c7 // fmov w7, s22 + WORD $0x33103c75 // bfi w21, w3, #16, #16 + WORD $0x33103cf6 // bfi w22, w7, #16, #16 + WORD $0x35002456 // cbnz w22, LBB0_282 $1160(%rip) + WORD $0x52800097 // mov w23, #4 + WORD $0x92f00018 // mov x24, #9223372036854775807 + WORD $0xb20903f9 // mov x25, #36028797027352576 + WORD $0xf2800039 // movk x25, #1 + WORD $0x528000ba // mov w26, #5 + WORD $0x528d8c3e // mov w30, #27745 + WORD $0x72acae7e // movk w30, #25971, lsl #16 + WORD $0xb5003005 // cbnz x5, LBB0_294 $1536(%rip) +LBB0_221: + WORD $0x6e353495 // cmhi.16b v21, v4, v21 + WORD $0x4e211eb5 // and.16b v21, v21, v1 + WORD $0x4e0202b5 // tbl.16b v21, { v21 }, v2 + WORD $0x4e71bab5 // addv.8h h21, v21 + WORD $0x1e2602a7 // fmov w7, s21 + WORD $0x6e343494 // cmhi.16b v20, v4, v20 + WORD $0x4e211e94 // and.16b v20, v20, v1 + WORD $0x4e020294 // tbl.16b v20, { v20 }, v2 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e260283 // fmov w3, s20 + WORD $0x33103c67 // bfi w7, w3, #16, #16 + WORD $0xdac000e3 // rbit x3, x7 + WORD $0xdac01063 // clz x3, x3 + WORD $0xb4000175 // cbz x21, LBB0_224 $44(%rip) + WORD $0xdac002a5 // rbit x5, x21 + WORD $0xdac010a7 // clz x7, x5 + WORD $0xcb0a0085 // sub x5, x4, x10 + WORD $0xeb07007f // cmp x3, x7 + WORD $0x54003cc3 // b.lo LBB0_333 $1944(%rip) + WORD $0x8b0700a3 // add x3, x5, x7 + WORD $0x9100047b // add x27, x3, #1 + WORD $0xb100087f // cmn x3, #2 + WORD $0x54ffcfac // b.gt LBB0_148 $-1548(%rip) + WORD $0x1400017a // b LBB0_300 $1512(%rip) +LBB0_224: + WORD $0x35003c47 // cbnz w7, LBB0_334 $1928(%rip) + WORD $0x91008084 // add x4, x4, #32 + WORD $0xaa1403fe // mov lr, x20 +LBB0_226: + WORD $0xb5002705 // cbnz x5, LBB0_286 $1248(%rip) + WORD $0xb400309e // cbz lr, LBB0_308 $1552(%rip) +LBB0_228: + WORD $0xd2800005 // mov x5, #0 +LBB0_229: + WORD $0x38656883 // ldrb w3, [x4, x5] + WORD $0x7100887f // cmp w3, #34 + WORD $0x54000340 // b.eq LBB0_235 $104(%rip) + WORD $0x7101707f // cmp w3, #92 + WORD $0x54000100 // b.eq LBB0_233 $32(%rip) + WORD $0x71007c7f // cmp w3, #31 + WORD $0x54003b29 // b.ls LBB0_335 $1892(%rip) + WORD $0x910004a5 // add x5, x5, #1 + WORD $0x9280001b // mov x27, #-1 + WORD $0xeb0503df // cmp lr, x5 + WORD $0x54fffec1 // b.ne LBB0_229 $-40(%rip) + WORD $0x140001cd // b LBB0_332 $1844(%rip) +LBB0_233: + WORD $0xd10007c3 // sub x3, lr, #1 + WORD $0xeb05007f // cmp x3, x5 + WORD $0x54002e80 // b.eq LBB0_308 $1488(%rip) + WORD $0x8b050083 // add x3, x4, x5 + WORD $0x8b0d0067 // add x7, x3, x13 + WORD $0xb100079f // cmn x28, #1 + WORD $0x9a9c00fc // csel x28, x7, x28, eq + WORD $0x91000864 // add x4, x3, #2 + WORD $0xcb0503c3 // sub x3, lr, x5 + WORD $0xd1000bc7 // sub x7, lr, #2 + WORD $0xd100087e // sub lr, x3, #2 + WORD $0x9280001b // mov x27, #-1 + WORD $0xeb0500ff // cmp x7, x5 + WORD $0x52800066 // mov w6, #3 + WORD $0x54fffca1 // b.ne LBB0_228 $-108(%rip) + WORD $0x140001bd // b LBB0_332 $1780(%rip) +LBB0_235: + WORD $0x8b0401a3 // add x3, x13, x4 + WORD $0x8b050063 // add x3, x3, x5 + WORD $0x17fffda1 // b LBB0_98 $-2428(%rip) +LBB0_236: + WORD $0x8b1b0144 // add x4, x10, x27 + WORD $0x14000008 // b LBB0_239 $32(%rip) +LBB0_237: + WORD $0xaa0403f5 // mov x21, x4 + WORD $0x92800014 // mov x20, #-1 + WORD $0xb5ffece5 // cbnz x5, LBB0_201 $-612(%rip) + WORD $0x14000169 // b LBB0_312 $1444(%rip) +LBB0_238: + WORD $0xd2800005 // mov x5, #0 + WORD $0x8b1b0144 // add x4, x10, x27 + WORD $0x9280001c // mov x28, #-1 +LBB0_239: + WORD $0xf10083d4 // subs x20, lr, #32 + WORD $0x54000783 // b.lo LBB0_247 $240(%rip) + WORD $0xad405095 // ldp q21, q20, [x4] + WORD $0x6e208eb6 // cmeq.16b v22, v21, v0 + WORD $0x4e211ed6 // and.16b v22, v22, v1 + WORD $0x4e0202d6 // tbl.16b v22, { v22 }, v2 + WORD $0x4e71bad6 // addv.8h h22, v22 + WORD $0x1e2602d5 // fmov w21, s22 + WORD $0x6e208e96 // cmeq.16b v22, v20, v0 + WORD $0x4e211ed6 // and.16b v22, v22, v1 + WORD $0x4e0202d6 // tbl.16b v22, { v22 }, v2 + WORD $0x4e71bad6 // addv.8h h22, v22 + WORD $0x1e2602c3 // fmov w3, s22 + WORD $0x6e238eb6 // cmeq.16b v22, v21, v3 + WORD $0x4e211ed6 // and.16b v22, v22, v1 + WORD $0x4e0202d6 // tbl.16b v22, { v22 }, v2 + WORD $0x4e71bad6 // addv.8h h22, v22 + WORD $0x1e2602d6 // fmov w22, s22 + WORD $0x6e238e96 // cmeq.16b v22, v20, v3 + WORD $0x4e211ed6 // and.16b v22, v22, v1 + WORD $0x4e0202d6 // tbl.16b v22, { v22 }, v2 + WORD $0x4e71bad6 // addv.8h h22, v22 + WORD $0x1e2602c7 // fmov w7, s22 + WORD $0x33103c75 // bfi w21, w3, #16, #16 + WORD $0x33103cf6 // bfi w22, w7, #16, #16 + WORD $0x35001af6 // cbnz w22, LBB0_284 $860(%rip) + WORD $0x52800097 // mov w23, #4 + WORD $0x92f00018 // mov x24, #9223372036854775807 + WORD $0xb20903f9 // mov x25, #36028797027352576 + WORD $0xf2800039 // movk x25, #1 + WORD $0x528000ba // mov w26, #5 + WORD $0x528d8c3e // mov w30, #27745 + WORD $0x72acae7e // movk w30, #25971, lsl #16 + WORD $0xb5002345 // cbnz x5, LBB0_295 $1128(%rip) +LBB0_242: + WORD $0x6e353495 // cmhi.16b v21, v4, v21 + WORD $0x4e211eb5 // and.16b v21, v21, v1 + WORD $0x4e0202b5 // tbl.16b v21, { v21 }, v2 + WORD $0x4e71bab5 // addv.8h h21, v21 + WORD $0x1e2602a7 // fmov w7, s21 + WORD $0x6e343494 // cmhi.16b v20, v4, v20 + WORD $0x4e211e94 // and.16b v20, v20, v1 + WORD $0x4e020294 // tbl.16b v20, { v20 }, v2 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e260283 // fmov w3, s20 + WORD $0x33103c67 // bfi w7, w3, #16, #16 + WORD $0xdac000e3 // rbit x3, x7 + WORD $0xdac01063 // clz x3, x3 + WORD $0xb4000175 // cbz x21, LBB0_245 $44(%rip) + WORD $0xdac002a5 // rbit x5, x21 + WORD $0xdac010a7 // clz x7, x5 + WORD $0xcb0a0085 // sub x5, x4, x10 + WORD $0xeb07007f // cmp x3, x7 + WORD $0x54002fc3 // b.lo LBB0_333 $1528(%rip) + WORD $0x8b0700a3 // add x3, x5, x7 + WORD $0x9100047b // add x27, x3, #1 + WORD $0xb100087f // cmn x3, #2 + WORD $0x54ffb48c // b.gt LBB0_113 $-2416(%rip) + WORD $0x14000112 // b LBB0_300 $1096(%rip) +LBB0_245: + WORD $0x35002f47 // cbnz w7, LBB0_334 $1512(%rip) + WORD $0x91008084 // add x4, x4, #32 + WORD $0xaa1403fe // mov lr, x20 +LBB0_247: + WORD $0xb5001b25 // cbnz x5, LBB0_288 $868(%rip) + WORD $0xb400239e // cbz lr, LBB0_308 $1136(%rip) +LBB0_249: + WORD $0xd2800005 // mov x5, #0 +LBB0_250: + WORD $0x38656883 // ldrb w3, [x4, x5] + WORD $0x7100887f // cmp w3, #34 + WORD $0x54000340 // b.eq LBB0_256 $104(%rip) + WORD $0x7101707f // cmp w3, #92 + WORD $0x54000100 // b.eq LBB0_254 $32(%rip) + WORD $0x71007c7f // cmp w3, #31 + WORD $0x54002e29 // b.ls LBB0_335 $1476(%rip) + WORD $0x910004a5 // add x5, x5, #1 + WORD $0x9280001b // mov x27, #-1 + WORD $0xeb0503df // cmp lr, x5 + WORD $0x54fffec1 // b.ne LBB0_250 $-40(%rip) + WORD $0x14000165 // b LBB0_332 $1428(%rip) +LBB0_254: + WORD $0xd10007c3 // sub x3, lr, #1 + WORD $0xeb05007f // cmp x3, x5 + WORD $0x54002180 // b.eq LBB0_308 $1072(%rip) + WORD $0x8b050083 // add x3, x4, x5 + WORD $0x8b0d0067 // add x7, x3, x13 + WORD $0xb100079f // cmn x28, #1 + WORD $0x9a9c00fc // csel x28, x7, x28, eq + WORD $0x91000864 // add x4, x3, #2 + WORD $0xcb0503c3 // sub x3, lr, x5 + WORD $0xd1000bc7 // sub x7, lr, #2 + WORD $0xd100087e // sub lr, x3, #2 + WORD $0x9280001b // mov x27, #-1 + WORD $0xeb0500ff // cmp x7, x5 + WORD $0x52800066 // mov w6, #3 + WORD $0x54fffca1 // b.ne LBB0_249 $-108(%rip) + WORD $0x14000155 // b LBB0_332 $1364(%rip) +LBB0_256: + WORD $0x8b0401a3 // add x3, x13, x4 + WORD $0x8b050063 // add x3, x3, x5 + WORD $0x17fffd74 // b LBB0_112 $-2608(%rip) +LBB0_257: + WORD $0xcb1703f4 // neg x20, x23 + WORD $0x17ffff1d // b LBB0_212 $-908(%rip) +LBB0_258: + WORD $0x5ac00348 // rbit w8, w26 + WORD $0x5ac01108 // clz w8, w8 + WORD $0xaa3803e3 // mvn x3, x24 + WORD $0xcb080074 // sub x20, x3, x8 + WORD $0x52800066 // mov w6, #3 + WORD $0x17ffff17 // b LBB0_212 $-932(%rip) +LBB0_259: + WORD $0x8b1b0146 // add x6, x10, x27 + WORD $0x14000008 // b LBB0_262 $32(%rip) +LBB0_260: + WORD $0xaa3803e8 // mvn x8, x24 + WORD $0xcb234114 // sub x20, x8, w3, uxtw + WORD $0x52800066 // mov w6, #3 + WORD $0x17ffff11 // b LBB0_212 $-956(%rip) +LBB0_261: + WORD $0xd2800005 // mov x5, #0 + WORD $0x8b1b0146 // add x6, x10, x27 + WORD $0x9280001c // mov x28, #-1 +LBB0_262: + WORD $0xf10083d4 // subs x20, lr, #32 + WORD $0x54000663 // b.lo LBB0_270 $204(%rip) + WORD $0xad4050d5 // ldp q21, q20, [x6] + WORD $0x6e208eb6 // cmeq.16b v22, v21, v0 + WORD $0x4e211ed6 // and.16b v22, v22, v1 + WORD $0x4e0202d6 // tbl.16b v22, { v22 }, v2 + WORD $0x4e71bad6 // addv.8h h22, v22 + WORD $0x1e2602d5 // fmov w21, s22 + WORD $0x6e208e96 // cmeq.16b v22, v20, v0 + WORD $0x4e211ed6 // and.16b v22, v22, v1 + WORD $0x4e0202d6 // tbl.16b v22, { v22 }, v2 + WORD $0x4e71bad6 // addv.8h h22, v22 + WORD $0x1e2602c3 // fmov w3, s22 + WORD $0x6e238eb6 // cmeq.16b v22, v21, v3 + WORD $0x4e211ed6 // and.16b v22, v22, v1 + WORD $0x4e0202d6 // tbl.16b v22, { v22 }, v2 + WORD $0x4e71bad6 // addv.8h h22, v22 + WORD $0x1e2602d6 // fmov w22, s22 + WORD $0x6e238e96 // cmeq.16b v22, v20, v3 + WORD $0x4e211ed6 // and.16b v22, v22, v1 + WORD $0x4e0202d6 // tbl.16b v22, { v22 }, v2 + WORD $0x4e71bad6 // addv.8h h22, v22 + WORD $0x1e2602c4 // fmov w4, s22 + WORD $0x33103c75 // bfi w21, w3, #16, #16 + WORD $0x33103c96 // bfi w22, w4, #16, #16 + WORD $0x350012d6 // cbnz w22, LBB0_290 $600(%rip) + WORD $0xb5001365 // cbnz x5, LBB0_291 $620(%rip) +LBB0_265: + WORD $0x6e353495 // cmhi.16b v21, v4, v21 + WORD $0x4e211eb5 // and.16b v21, v21, v1 + WORD $0x4e0202b5 // tbl.16b v21, { v21 }, v2 + WORD $0x4e71bab5 // addv.8h h21, v21 + WORD $0x1e2602a7 // fmov w7, s21 + WORD $0x6e343494 // cmhi.16b v20, v4, v20 + WORD $0x4e211e94 // and.16b v20, v20, v1 + WORD $0x4e020294 // tbl.16b v20, { v20 }, v2 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e260283 // fmov w3, s20 + WORD $0x33103c67 // bfi w7, w3, #16, #16 + WORD $0xdac000e3 // rbit x3, x7 + WORD $0xdac01063 // clz x3, x3 + WORD $0xb4000135 // cbz x21, LBB0_268 $36(%rip) + WORD $0xdac002a4 // rbit x4, x21 + WORD $0xdac01087 // clz x7, x4 + WORD $0xcb0a00c5 // sub x5, x6, x10 + WORD $0xeb07007f // cmp x3, x7 + WORD $0x540022a3 // b.lo LBB0_333 $1108(%rip) + WORD $0x8b0700a3 // add x3, x5, x7 + WORD $0x52800066 // mov w6, #3 + WORD $0x17fffcf7 // b LBB0_98 $-3108(%rip) +LBB0_268: + WORD $0x35002327 // cbnz w7, LBB0_336 $1124(%rip) + WORD $0x910080c6 // add x6, x6, #32 + WORD $0xaa1403fe // mov lr, x20 +LBB0_270: + WORD $0xb50011a5 // cbnz x5, LBB0_292 $564(%rip) + WORD $0xb40016be // cbz lr, LBB0_308 $724(%rip) +LBB0_272: + WORD $0xd2800005 // mov x5, #0 +LBB0_273: + WORD $0x386568c3 // ldrb w3, [x6, x5] + WORD $0x7100887f // cmp w3, #34 + WORD $0x54000320 // b.eq LBB0_279 $100(%rip) + WORD $0x7101707f // cmp w3, #92 + WORD $0x54000100 // b.eq LBB0_277 $32(%rip) + WORD $0x71007c7f // cmp w3, #31 + WORD $0x54002209 // b.ls LBB0_337 $1088(%rip) + WORD $0x910004a5 // add x5, x5, #1 + WORD $0x9280001b // mov x27, #-1 + WORD $0xeb0503df // cmp lr, x5 + WORD $0x54fffec1 // b.ne LBB0_273 $-40(%rip) + WORD $0x140000fe // b LBB0_332 $1016(%rip) +LBB0_277: + WORD $0xd10007c3 // sub x3, lr, #1 + WORD $0xeb05007f // cmp x3, x5 + WORD $0x540014a0 // b.eq LBB0_308 $660(%rip) + WORD $0x8b0500c3 // add x3, x6, x5 + WORD $0x8b0d0064 // add x4, x3, x13 + WORD $0xb100079f // cmn x28, #1 + WORD $0x9a9c009c // csel x28, x4, x28, eq + WORD $0x91000866 // add x6, x3, #2 + WORD $0xcb0503c3 // sub x3, lr, x5 + WORD $0xd1000bc4 // sub x4, lr, #2 + WORD $0xd100087e // sub lr, x3, #2 + WORD $0x9280001b // mov x27, #-1 + WORD $0xeb05009f // cmp x4, x5 + WORD $0x54fffcc1 // b.ne LBB0_272 $-104(%rip) + WORD $0x140000ef // b LBB0_332 $956(%rip) +LBB0_279: + WORD $0x8b0601a3 // add x3, x13, x6 + WORD $0x8b050063 // add x3, x3, x5 + WORD $0x52800066 // mov w6, #3 + WORD $0x17fffcd2 // b LBB0_98 $-3256(%rip) +LBB0_280: + WORD $0x92800008 // mov x8, #-1 + WORD $0xaa1c03f5 // mov x21, x28 + WORD $0xaa1403f6 // mov x22, x20 + WORD $0x92800005 // mov x5, #-1 + WORD $0x9280001b // mov x27, #-1 + WORD $0x17fffc93 // b LBB0_80 $-3508(%rip) +LBB0_281: + WORD $0x92800005 // mov x5, #-1 + WORD $0xaa0803f5 // mov x21, x8 + WORD $0xaa1703f4 // mov x20, x23 + WORD $0x9280001e // mov lr, #-1 + WORD $0x9280001c // mov x28, #-1 + WORD $0x52800066 // mov w6, #3 + WORD $0x17fffe66 // b LBB0_184 $-1640(%rip) +LBB0_282: + WORD $0xdac002c3 // rbit x3, x22 + WORD $0xdac01063 // clz x3, x3 + WORD $0xaa0403fb // mov x27, x4 + WORD $0xcb0a0087 // sub x7, x4, x10 + WORD $0x8b0300e3 // add x3, x7, x3 + WORD $0xb100079f // cmn x28, #1 + WORD $0x9a83139c // csel x28, x28, x3, ne +LBB0_283: + WORD $0x0a2502c3 // bic w3, w22, w5 + WORD $0x531f7867 // lsl w7, w3, #1 + WORD $0x331f7865 // bfi w5, w3, #1, #31 + WORD $0x0a2702c7 // bic w7, w22, w7 + WORD $0x1201f0e7 // and w7, w7, #0xaaaaaaaa + WORD $0x2b0300e3 // adds w3, w7, w3 + WORD $0x3200f3e4 // mov w4, #1431655765 + WORD $0x4a030483 // eor w3, w4, w3, lsl #1 + WORD $0x0a050063 // and w3, w3, w5 + WORD $0x1a9f37e5 // cset w5, hs + WORD $0x2a2303e3 // mvn w3, w3 + WORD $0x8a150075 // and x21, x3, x21 + WORD $0x52800066 // mov w6, #3 + WORD $0x52800097 // mov w23, #4 + WORD $0x92f00018 // mov x24, #9223372036854775807 + WORD $0xb20903f9 // mov x25, #36028797027352576 + WORD $0xf2800039 // movk x25, #1 + WORD $0x528000ba // mov w26, #5 + WORD $0x528d8c3e // mov w30, #27745 + WORD $0x72acae7e // movk w30, #25971, lsl #16 + WORD $0xaa1b03e4 // mov x4, x27 + WORD $0x17fffecb // b LBB0_221 $-1236(%rip) +LBB0_284: + WORD $0xdac002c3 // rbit x3, x22 + WORD $0xdac01063 // clz x3, x3 + WORD $0xaa0403fb // mov x27, x4 + WORD $0xcb0a0087 // sub x7, x4, x10 + WORD $0x8b0300e3 // add x3, x7, x3 + WORD $0xb100079f // cmn x28, #1 + WORD $0x9a83139c // csel x28, x28, x3, ne +LBB0_285: + WORD $0x0a2502c3 // bic w3, w22, w5 + WORD $0x531f7867 // lsl w7, w3, #1 + WORD $0x331f7865 // bfi w5, w3, #1, #31 + WORD $0x0a2702c7 // bic w7, w22, w7 + WORD $0x1201f0e7 // and w7, w7, #0xaaaaaaaa + WORD $0x2b0300e3 // adds w3, w7, w3 + WORD $0x3200f3e4 // mov w4, #1431655765 + WORD $0x4a030483 // eor w3, w4, w3, lsl #1 + WORD $0x0a050063 // and w3, w3, w5 + WORD $0x1a9f37e5 // cset w5, hs + WORD $0x2a2303e3 // mvn w3, w3 + WORD $0x8a150075 // and x21, x3, x21 + WORD $0x52800066 // mov w6, #3 + WORD $0x52800097 // mov w23, #4 + WORD $0x92f00018 // mov x24, #9223372036854775807 + WORD $0xb20903f9 // mov x25, #36028797027352576 + WORD $0xf2800039 // movk x25, #1 + WORD $0x528000ba // mov w26, #5 + WORD $0x528d8c3e // mov w30, #27745 + WORD $0x72acae7e // movk w30, #25971, lsl #16 + WORD $0xaa1b03e4 // mov x4, x27 + WORD $0x17ffff16 // b LBB0_242 $-936(%rip) +LBB0_286: + WORD $0xb40009be // cbz lr, LBB0_308 $308(%rip) + WORD $0x8b0c0083 // add x3, x4, x12 + WORD $0xb100079f // cmn x28, #1 + WORD $0x9a9c007c // csel x28, x3, x28, eq + WORD $0x91000484 // add x4, x4, #1 + WORD $0xd10007de // sub lr, lr, #1 + WORD $0x52800066 // mov w6, #3 + WORD $0xb5ffd87e // cbnz lr, LBB0_228 $-1268(%rip) + WORD $0x14000045 // b LBB0_308 $276(%rip) +LBB0_288: + WORD $0xb400089e // cbz lr, LBB0_308 $272(%rip) + WORD $0x8b0c0083 // add x3, x4, x12 + WORD $0xb100079f // cmn x28, #1 + WORD $0x9a9c007c // csel x28, x3, x28, eq + WORD $0x91000484 // add x4, x4, #1 + WORD $0xd10007de // sub lr, lr, #1 + WORD $0x52800066 // mov w6, #3 + WORD $0xb5ffe45e // cbnz lr, LBB0_249 $-888(%rip) + WORD $0x1400003c // b LBB0_308 $240(%rip) +LBB0_290: + WORD $0xdac002c3 // rbit x3, x22 + WORD $0xdac01063 // clz x3, x3 + WORD $0xcb0a00c4 // sub x4, x6, x10 + WORD $0x8b030083 // add x3, x4, x3 + WORD $0xb100079f // cmn x28, #1 + WORD $0x9a83139c // csel x28, x28, x3, ne +LBB0_291: + WORD $0x0a2502c3 // bic w3, w22, w5 + WORD $0x531f7864 // lsl w4, w3, #1 + WORD $0x331f7865 // bfi w5, w3, #1, #31 + WORD $0x0a2402c4 // bic w4, w22, w4 + WORD $0x1201f084 // and w4, w4, #0xaaaaaaaa + WORD $0x2b030083 // adds w3, w4, w3 + WORD $0x4a030723 // eor w3, w25, w3, lsl #1 + WORD $0x0a050063 // and w3, w3, w5 + WORD $0x1a9f37e5 // cset w5, hs + WORD $0x2a2303e3 // mvn w3, w3 + WORD $0x8a150075 // and x21, x3, x21 + WORD $0x17ffff5b // b LBB0_265 $-660(%rip) +LBB0_292: + WORD $0xb400053e // cbz lr, LBB0_308 $164(%rip) + WORD $0x8b0c00c3 // add x3, x6, x12 + WORD $0xb100079f // cmn x28, #1 + WORD $0x9a9c007c // csel x28, x3, x28, eq + WORD $0x910004c6 // add x6, x6, #1 + WORD $0xd10007de // sub lr, lr, #1 + WORD $0xb5ffedfe // cbnz lr, LBB0_272 $-580(%rip) + WORD $0x14000022 // b LBB0_308 $136(%rip) +LBB0_294: + WORD $0xaa0403fb // mov x27, x4 + WORD $0x17ffffa0 // b LBB0_283 $-384(%rip) +LBB0_295: + WORD $0xaa0403fb // mov x27, x4 + WORD $0x17ffffbb // b LBB0_285 $-276(%rip) +LBB0_296: + WORD $0x92800008 // mov x8, #-1 +LBB0_297: + WORD $0xaa0803e0 // mov x0, x8 + WORD $0xa945fbfd // ldp fp, lr, [sp, #88] + WORD $0xa944cff4 // ldp x20, x19, [sp, #72] + WORD $0xa943d7f6 // ldp x22, x21, [sp, #56] + WORD $0xa942dff8 // ldp x24, x23, [sp, #40] + WORD $0xa941e7fa // ldp x26, x25, [sp, #24] + WORD $0xa940effc // ldp x28, x27, [sp, #8] + WORD $0x9101c3ff // add sp, sp, #112 + WORD $0xd65f03c0 // ret +LBB0_298: + WORD $0x9280001b // mov x27, #-1 + WORD $0x1400000a // b LBB0_305 $40(%rip) +LBB0_299: + WORD $0x928000c8 // mov x8, #-7 + WORD $0x17fffff4 // b LBB0_297 $-48(%rip) +LBB0_300: + WORD $0xb100077f // cmn x27, #1 + WORD $0x9a9c0109 // csel x9, x8, x28, eq + WORD $0x14000005 // b LBB0_305 $20(%rip) +LBB0_301: + WORD $0x92800014 // mov x20, #-1 +LBB0_302: + WORD $0xaa3403fb // mvn x27, x20 +LBB0_303: + WORD $0x8b090369 // add x9, x27, x9 +LBB0_304: + WORD $0x9280003b // mov x27, #-2 +LBB0_305: + WORD $0xf9000029 // str x9, [x1] + WORD $0xaa1b03e8 // mov x8, x27 + WORD $0x17ffffea // b LBB0_297 $-88(%rip) +LBB0_306: + WORD $0xb100079f // cmn x28, #1 + WORD $0x540000e0 // b.eq LBB0_309 $28(%rip) + WORD $0x9280003b // mov x27, #-2 + WORD $0xaa1c03e9 // mov x9, x28 + WORD $0x17fffff9 // b LBB0_305 $-28(%rip) +LBB0_308: + WORD $0x9280001b // mov x27, #-1 + WORD $0xaa0803e9 // mov x9, x8 + WORD $0x17fffff6 // b LBB0_305 $-40(%rip) +LBB0_309: + WORD $0xdac00068 // rbit x8, x3 + WORD $0xdac01108 // clz x8, x8 + WORD $0x8b1b0109 // add x9, x8, x27 + WORD $0x17fffff1 // b LBB0_304 $-60(%rip) +LBB0_310: + WORD $0xaa0803fb // mov x27, x8 + WORD $0x8b090109 // add x9, x8, x9 + WORD $0x17ffffee // b LBB0_304 $-72(%rip) +LBB0_311: + WORD $0x92800014 // mov x20, #-1 +LBB0_312: + WORD $0xaa3403fc // mvn x28, x20 +LBB0_313: + WORD $0x8b1c0369 // add x9, x27, x28 + WORD $0x17ffffea // b LBB0_304 $-88(%rip) +LBB0_314: + WORD $0xf900003b // str x27, [x1] + WORD $0x387b6948 // ldrb w8, [x10, x27] + WORD $0x7101851f // cmp w8, #97 + WORD $0x54000761 // b.ne LBB0_328 $236(%rip) + WORD $0x91000928 // add x8, x9, #2 + WORD $0xf9000028 // str x8, [x1] + WORD $0x38686948 // ldrb w8, [x10, x8] + WORD $0x7101b11f // cmp w8, #108 + WORD $0x540006c1 // b.ne LBB0_328 $216(%rip) + WORD $0x91000d28 // add x8, x9, #3 + WORD $0xf9000028 // str x8, [x1] + WORD $0x38686948 // ldrb w8, [x10, x8] + WORD $0x7101cd1f // cmp w8, #115 + WORD $0x54000621 // b.ne LBB0_328 $196(%rip) + WORD $0x91001128 // add x8, x9, #4 + WORD $0xf9000028 // str x8, [x1] + WORD $0x38686948 // ldrb w8, [x10, x8] + WORD $0x7101951f // cmp w8, #101 + WORD $0x54000581 // b.ne LBB0_328 $176(%rip) + WORD $0x91001529 // add x9, x9, #5 + WORD $0x17ffffd5 // b LBB0_304 $-172(%rip) +LBB0_319: + WORD $0xf9000029 // str x9, [x1] + WORD $0x39400388 // ldrb w8, [x28] + WORD $0x7101b91f // cmp w8, #110 + WORD $0x540004c1 // b.ne LBB0_328 $152(%rip) + WORD $0x91000528 // add x8, x9, #1 + WORD $0xf9000028 // str x8, [x1] + WORD $0x38686948 // ldrb w8, [x10, x8] + WORD $0x7101d51f // cmp w8, #117 + WORD $0x54000421 // b.ne LBB0_328 $132(%rip) + WORD $0x91000928 // add x8, x9, #2 + WORD $0xf9000028 // str x8, [x1] + WORD $0x38686948 // ldrb w8, [x10, x8] + WORD $0x7101b11f // cmp w8, #108 + WORD $0x54000381 // b.ne LBB0_328 $112(%rip) + WORD $0x91000d28 // add x8, x9, #3 + WORD $0xf9000028 // str x8, [x1] + WORD $0x38686948 // ldrb w8, [x10, x8] + WORD $0x7101b11f // cmp w8, #108 + WORD $0x540002e1 // b.ne LBB0_328 $92(%rip) + WORD $0x14000014 // b LBB0_327 $80(%rip) +LBB0_323: + WORD $0xf9000029 // str x9, [x1] + WORD $0x39400388 // ldrb w8, [x28] + WORD $0x7101d11f // cmp w8, #116 + WORD $0x54000241 // b.ne LBB0_328 $72(%rip) + WORD $0x91000528 // add x8, x9, #1 + WORD $0xf9000028 // str x8, [x1] + WORD $0x38686948 // ldrb w8, [x10, x8] + WORD $0x7101c91f // cmp w8, #114 + WORD $0x540001a1 // b.ne LBB0_328 $52(%rip) + WORD $0x91000928 // add x8, x9, #2 + WORD $0xf9000028 // str x8, [x1] + WORD $0x38686948 // ldrb w8, [x10, x8] + WORD $0x7101d51f // cmp w8, #117 + WORD $0x54000101 // b.ne LBB0_328 $32(%rip) + WORD $0x91000d28 // add x8, x9, #3 + WORD $0xf9000028 // str x8, [x1] + WORD $0x38686948 // ldrb w8, [x10, x8] + WORD $0x7101951f // cmp w8, #101 + WORD $0x54000061 // b.ne LBB0_328 $12(%rip) +LBB0_327: + WORD $0x91001129 // add x9, x9, #4 + WORD $0x17ffffac // b LBB0_304 $-336(%rip) +LBB0_328: + WORD $0x92800028 // mov x8, #-2 + WORD $0x17ffff97 // b LBB0_297 $-420(%rip) +LBB0_329: + WORD $0xaa0503fc // mov x28, x5 + WORD $0x8b050369 // add x9, x27, x5 + WORD $0x17ffffa7 // b LBB0_304 $-356(%rip) +LBB0_330: + WORD $0xaa1b03e9 // mov x9, x27 + WORD $0x9280001b // mov x27, #-1 + WORD $0x17ffffa5 // b LBB0_305 $-364(%rip) +LBB0_331: + WORD $0x8b1b0069 // add x9, x3, x27 + WORD $0x17ffffa2 // b LBB0_304 $-376(%rip) +LBB0_332: + WORD $0xaa0803e9 // mov x9, x8 + WORD $0x17ffffa1 // b LBB0_305 $-380(%rip) +LBB0_333: + WORD $0x8b0300a9 // add x9, x5, x3 + WORD $0x17ffff9e // b LBB0_304 $-392(%rip) +LBB0_334: + WORD $0xcb0a0088 // sub x8, x4, x10 + WORD $0x8b030109 // add x9, x8, x3 + WORD $0x17ffff9b // b LBB0_304 $-404(%rip) +LBB0_335: + WORD $0xcb0a0088 // sub x8, x4, x10 + WORD $0x8b050109 // add x9, x8, x5 + WORD $0x17ffff98 // b LBB0_304 $-416(%rip) +LBB0_336: + WORD $0xcb0a00c8 // sub x8, x6, x10 + WORD $0x8b030109 // add x9, x8, x3 + WORD $0x17ffff95 // b LBB0_304 $-428(%rip) +LBB0_337: + WORD $0xcb0a00c8 // sub x8, x6, x10 + WORD $0x8b050109 // add x9, x8, x5 + WORD $0x17ffff92 // b LBB0_304 $-440(%rip) + // .p2align 2, 0x00 +_MASK_USE_NUMBER: + WORD $0x00000002 // .long 2 + +TEXT ·__validate_one(SB), NOSPLIT, $0-32 + NO_LOCAL_POINTERS + +_entry: + MOVD 16(g), R16 + SUB $176, RSP, R17 + CMP R16, R17 + BLS _stack_grow + +_validate_one: + MOVD s+0(FP), R0 + MOVD p+8(FP), R1 + MOVD m+16(FP), R2 + MOVD ·_subr__validate_one(SB), R11 + WORD $0x1000005e // adr x30, .+8 + JMP (R11) + MOVD R0, ret+24(FP) + RET + +_stack_grow: + MOVD R30, R3 + CALL runtime·morestack_noctxt<>(SB) + JMP _entry diff --git a/vendor/github.com/bytedance/sonic/internal/native/neon/validate_one_subr_arm64.go b/vendor/github.com/bytedance/sonic/internal/native/neon/validate_one_subr_arm64.go new file mode 100644 index 000000000..cbebeb08b --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/neon/validate_one_subr_arm64.go @@ -0,0 +1,25 @@ +// +build !noasm !appengine +// Code generated by asm2asm, DO NOT EDIT. + +package neon + +//go:nosplit +//go:noescape +//goland:noinspection ALL +func __validate_one_entry__() uintptr + +var ( + _subr__validate_one uintptr = __validate_one_entry__() + 48 +) + +const ( + _stack__validate_one = 112 +) + +var ( + _ = _subr__validate_one +) + +const ( + _ = _stack__validate_one +) diff --git a/vendor/github.com/bytedance/sonic/internal/native/neon/validate_utf8_arm64.go b/vendor/github.com/bytedance/sonic/internal/native/neon/validate_utf8_arm64.go new file mode 100644 index 000000000..11b409a13 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/neon/validate_utf8_arm64.go @@ -0,0 +1,38 @@ +// Code generated by Makefile, DO NOT EDIT. + +// Code generated by Makefile, DO NOT EDIT. + +/* + * Copyright 2021 ByteDance 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 neon + +import ( + // `unsafe` + + `github.com/bytedance/sonic/internal/native/types` +) + +//go:nosplit +func validate_utf8(s *string, p *int, m *types.StateMachine) (ret int) { + return __validate_utf8(s, p, m) +} + +//go:nosplit +//go:noescape +//goland:noinspection GoUnusedParameter +func __validate_utf8(s *string, p *int, m *types.StateMachine) (ret int) + diff --git a/vendor/github.com/bytedance/sonic/internal/native/neon/validate_utf8_arm64.s b/vendor/github.com/bytedance/sonic/internal/native/neon/validate_utf8_arm64.s new file mode 100644 index 000000000..f36d7ed08 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/neon/validate_utf8_arm64.s @@ -0,0 +1,222 @@ +// +build !noasm !appengine +// Code generated by asm2asm, DO NOT EDIT. + +#include "go_asm.h" +#include "funcdata.h" +#include "textflag.h" + +TEXT ·__validate_utf8_entry__(SB), NOSPLIT, $48 + NO_LOCAL_POINTERS + WORD $0x100000a0 // adr x0, .+20 + MOVD R0, ret(FP) + RET + // .p2align 2, 0x00 +_validate_utf8: + WORD $0xd10103ff // sub sp, sp, #64 + WORD $0xa901cff4 // stp x20, x19, [sp, #24] + WORD $0xa902fbfd // stp fp, lr, [sp, #40] + WORD $0xa93ffbfd // stp fp, lr, [sp, #-8] + WORD $0xd10023fd // sub fp, sp, #8 + WORD $0xa9402408 // ldp x8, x9, [x0] + WORD $0xf940002c // ldr x12, [x1] + WORD $0x8b09010a // add x10, x8, x9 + WORD $0xd1000d4b // sub x11, x10, #3 + WORD $0x8b0c0109 // add x9, x8, x12 + WORD $0xeb0b013f // cmp x9, x11 + WORD $0x54000722 // b.hs LBB0_15 $228(%rip) + WORD $0x52981e0c // mov w12, #49392 + WORD $0x72a0180c // movk w12, #192, lsl #16 + WORD $0x52901c0d // mov w13, #32992 + WORD $0x72a0100d // movk w13, #128, lsl #16 + WORD $0x9100204e // add x14, x2, #8 + WORD $0x528401ef // mov w15, #8207 + WORD $0x528401b0 // mov w16, #8205 + WORD $0x52981c11 // mov w17, #49376 + WORD $0x52901800 // mov w0, #32960 + WORD $0x52981f03 // mov w3, #49400 + WORD $0x72b81803 // movk w3, #49344, lsl #16 + WORD $0x528600e4 // mov w4, #12295 + WORD $0x52901e05 // mov w5, #33008 + WORD $0x72b01005 // movk w5, #32896, lsl #16 + WORD $0x52860066 // mov w6, #12291 + WORD $0x14000005 // b LBB0_4 $20(%rip) +LBB0_2: + WORD $0x52800033 // mov w19, #1 +LBB0_3: + WORD $0x8b130129 // add x9, x9, x19 + WORD $0xeb0b013f // cmp x9, x11 + WORD $0x540004a2 // b.hs LBB0_15 $148(%rip) +LBB0_4: + WORD $0x39c00127 // ldrsb w7, [x9] + WORD $0x36ffff67 // tbz w7, #31, LBB0_2 $-20(%rip) + WORD $0xb9400127 // ldr w7, [x9] + WORD $0x0a0c00f3 // and w19, w7, w12 + WORD $0x6b0d027f // cmp w19, w13 + WORD $0x0a0f00f3 // and w19, w7, w15 + WORD $0x7a500264 // ccmp w19, w16, #4, eq + WORD $0x7a401a64 // ccmp w19, #0, #4, ne + WORD $0x54000341 // b.ne LBB0_14 $104(%rip) + WORD $0x0a1100f3 // and w19, w7, w17 + WORD $0x121f0cf4 // and w20, w7, #0x1e + WORD $0x6b00027f // cmp w19, w0 + WORD $0x7a400a84 // ccmp w20, #0, #4, eq + WORD $0x54000261 // b.ne LBB0_13 $76(%rip) + WORD $0x0a0300f3 // and w19, w7, w3 + WORD $0x6b05027f // cmp w19, w5 + WORD $0x540000e1 // b.ne LBB0_11 $28(%rip) + WORD $0x0a0400f3 // and w19, w7, w4 + WORD $0x340000b3 // cbz w19, LBB0_11 $20(%rip) + WORD $0x52800093 // mov w19, #4 + WORD $0x3617fd27 // tbz w7, #2, LBB0_3 $-92(%rip) + WORD $0x0a0600e7 // and w7, w7, w6 + WORD $0x34fffce7 // cbz w7, LBB0_3 $-100(%rip) +LBB0_11: + WORD $0xcb080127 // sub x7, x9, x8 + WORD $0xf9400053 // ldr x19, [x2] + WORD $0xf140067f // cmp x19, #1, lsl #12 + WORD $0x54000c62 // b.hs LBB0_33 $396(%rip) + WORD $0x93407ce7 // sxtw x7, w7 + WORD $0x91000674 // add x20, x19, #1 + WORD $0xf9000054 // str x20, [x2] + WORD $0xf83379c7 // str x7, [x14, x19, lsl #3] + WORD $0x17ffffdd // b LBB0_2 $-140(%rip) +LBB0_13: + WORD $0x52800053 // mov w19, #2 + WORD $0x17ffffdc // b LBB0_3 $-144(%rip) +LBB0_14: + WORD $0x52800073 // mov w19, #3 + WORD $0x17ffffda // b LBB0_3 $-152(%rip) +LBB0_15: + WORD $0xeb0a013f // cmp x9, x10 + WORD $0x54000962 // b.hs LBB0_31 $300(%rip) + WORD $0x52981e0b // mov w11, #49392 + WORD $0x72a0180b // movk w11, #192, lsl #16 + WORD $0x52901c0c // mov w12, #32992 + WORD $0x72a0100c // movk w12, #128, lsl #16 + WORD $0x9100204d // add x13, x2, #8 + WORD $0x528401ee // mov w14, #8207 + WORD $0x528401af // mov w15, #8205 + WORD $0x52981c10 // mov w16, #49376 + WORD $0x52901811 // mov w17, #32960 + WORD $0x14000004 // b LBB0_18 $16(%rip) +LBB0_17: + WORD $0x91000529 // add x9, x9, #1 + WORD $0xeb0a013f // cmp x9, x10 + WORD $0x540007c2 // b.hs LBB0_31 $248(%rip) +LBB0_18: + WORD $0x39c00120 // ldrsb w0, [x9] + WORD $0x36ffff80 // tbz w0, #31, LBB0_17 $-16(%rip) + WORD $0x390053ff // strb wzr, [sp, #20] + WORD $0x39004bff // strb wzr, [sp, #18] + WORD $0xcb090145 // sub x5, x10, x9 + WORD $0xf10008a7 // subs x7, x5, #2 + WORD $0x540001a3 // b.lo LBB0_22 $52(%rip) + WORD $0x39400120 // ldrb w0, [x9] + WORD $0x39400523 // ldrb w3, [x9, #1] + WORD $0x390053e0 // strb w0, [sp, #20] + WORD $0x91000926 // add x6, x9, #2 + WORD $0x91004be4 // add x4, sp, #18 + WORD $0xaa0703e5 // mov x5, x7 + WORD $0xb4000167 // cbz x7, LBB0_23 $44(%rip) +LBB0_21: + WORD $0x394000c0 // ldrb w0, [x6] + WORD $0x39000080 // strb w0, [x4] + WORD $0x394053e0 // ldrb w0, [sp, #20] + WORD $0x39404be4 // ldrb w4, [sp, #18] + WORD $0x14000007 // b LBB0_24 $28(%rip) +LBB0_22: + WORD $0x52800000 // mov w0, #0 + WORD $0x52800003 // mov w3, #0 + WORD $0x910053e4 // add x4, sp, #20 + WORD $0xaa0903e6 // mov x6, x9 + WORD $0xb5fffee5 // cbnz x5, LBB0_21 $-36(%rip) +LBB0_23: + WORD $0x52800004 // mov w4, #0 +LBB0_24: + WORD $0x53185c63 // lsl w3, w3, #8 + WORD $0x2a044063 // orr w3, w3, w4, lsl #16 + WORD $0x2a000063 // orr w3, w3, w0 + WORD $0x0a0b0064 // and w4, w3, w11 + WORD $0x6b0c009f // cmp w4, w12 + WORD $0x0a0e0064 // and w4, w3, w14 + WORD $0x7a4f0084 // ccmp w4, w15, #4, eq + WORD $0x7a401884 // ccmp w4, #0, #4, ne + WORD $0x54000301 // b.ne LBB0_30 $96(%rip) + WORD $0x721f0c1f // tst w0, #0x1e + WORD $0x54000120 // b.eq LBB0_28 $36(%rip) + WORD $0x0a100060 // and w0, w3, w16 + WORD $0x6b11001f // cmp w0, w17 + WORD $0x540000c1 // b.ne LBB0_28 $24(%rip) + WORD $0x52800040 // mov w0, #2 + WORD $0x8b000129 // add x9, x9, x0 + WORD $0xeb0a013f // cmp x9, x10 + WORD $0x54fffac3 // b.lo LBB0_18 $-168(%rip) + WORD $0x14000012 // b LBB0_31 $72(%rip) +LBB0_28: + WORD $0xcb080120 // sub x0, x9, x8 + WORD $0xf9400043 // ldr x3, [x2] + WORD $0xf140047f // cmp x3, #1, lsl #12 + WORD $0x540002a2 // b.hs LBB0_32 $84(%rip) + WORD $0x93407c00 // sxtw x0, w0 + WORD $0x91000464 // add x4, x3, #1 + WORD $0xf9000044 // str x4, [x2] + WORD $0xf82379a0 // str x0, [x13, x3, lsl #3] + WORD $0x52800020 // mov w0, #1 + WORD $0x8b000129 // add x9, x9, x0 + WORD $0xeb0a013f // cmp x9, x10 + WORD $0x54fff923 // b.lo LBB0_18 $-220(%rip) + WORD $0x14000005 // b LBB0_31 $20(%rip) +LBB0_30: + WORD $0x52800060 // mov w0, #3 + WORD $0x8b000129 // add x9, x9, x0 + WORD $0xeb0a013f // cmp x9, x10 + WORD $0x54fff883 // b.lo LBB0_18 $-240(%rip) +LBB0_31: + WORD $0xd2800000 // mov x0, #0 + WORD $0xcb080128 // sub x8, x9, x8 + WORD $0xf9000028 // str x8, [x1] + WORD $0xa942fbfd // ldp fp, lr, [sp, #40] + WORD $0xa941cff4 // ldp x20, x19, [sp, #24] + WORD $0x910103ff // add sp, sp, #64 + WORD $0xd65f03c0 // ret +LBB0_32: + WORD $0xf9000020 // str x0, [x1] + WORD $0x92800000 // mov x0, #-1 + WORD $0xa942fbfd // ldp fp, lr, [sp, #40] + WORD $0xa941cff4 // ldp x20, x19, [sp, #24] + WORD $0x910103ff // add sp, sp, #64 + WORD $0xd65f03c0 // ret +LBB0_33: + WORD $0xf9000027 // str x7, [x1] + WORD $0x92800000 // mov x0, #-1 + WORD $0xa942fbfd // ldp fp, lr, [sp, #40] + WORD $0xa941cff4 // ldp x20, x19, [sp, #24] + WORD $0x910103ff // add sp, sp, #64 + WORD $0xd65f03c0 // ret + // .p2align 2, 0x00 +_MASK_USE_NUMBER: + WORD $0x00000002 // .long 2 + +TEXT ·__validate_utf8(SB), NOSPLIT, $0-32 + NO_LOCAL_POINTERS + +_entry: + MOVD 16(g), R16 + SUB $128, RSP, R17 + CMP R16, R17 + BLS _stack_grow + +_validate_utf8: + MOVD s+0(FP), R0 + MOVD p+8(FP), R1 + MOVD m+16(FP), R2 + MOVD ·_subr__validate_utf8(SB), R11 + WORD $0x1000005e // adr x30, .+8 + JMP (R11) + MOVD R0, ret+24(FP) + RET + +_stack_grow: + MOVD R30, R3 + CALL runtime·morestack_noctxt<>(SB) + JMP _entry diff --git a/vendor/github.com/bytedance/sonic/internal/native/neon/validate_utf8_fast_arm64.go b/vendor/github.com/bytedance/sonic/internal/native/neon/validate_utf8_fast_arm64.go new file mode 100644 index 000000000..dadcad5d3 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/neon/validate_utf8_fast_arm64.go @@ -0,0 +1,31 @@ +// Code generated by Makefile, DO NOT EDIT. + +// Code generated by Makefile, DO NOT EDIT. + +/* + * Copyright 2021 ByteDance 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 neon + +//go:nosplit +func validate_utf8_fast(s *string) (ret int) { + return __validate_utf8_fast(s) +} + +//go:nosplit +//go:noescape +//goland:noinspection GoUnusedParameter +func __validate_utf8_fast(s *string) (ret int) diff --git a/vendor/github.com/bytedance/sonic/internal/native/neon/validate_utf8_fast_arm64.s b/vendor/github.com/bytedance/sonic/internal/native/neon/validate_utf8_fast_arm64.s new file mode 100644 index 000000000..20592cd33 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/neon/validate_utf8_fast_arm64.s @@ -0,0 +1,182 @@ +// +build !noasm !appengine +// Code generated by asm2asm, DO NOT EDIT. + +#include "go_asm.h" +#include "funcdata.h" +#include "textflag.h" + +TEXT ·__validate_utf8_fast_entry__(SB), NOSPLIT, $32 + NO_LOCAL_POINTERS + WORD $0x100000a0 // adr x0, .+20 + MOVD R0, ret(FP) + RET + // .p2align 2, 0x00 +_validate_utf8_fast: + WORD $0xd100c3ff // sub sp, sp, #48 + WORD $0xa901fbfd // stp fp, lr, [sp, #24] + WORD $0xa93ffbfd // stp fp, lr, [sp, #-8] + WORD $0xd10023fd // sub fp, sp, #8 + WORD $0xa9402408 // ldp x8, x9, [x0] + WORD $0x8b090109 // add x9, x8, x9 + WORD $0xd1000d2b // sub x11, x9, #3 + WORD $0xeb0b011f // cmp x8, x11 + WORD $0x54000622 // b.hs LBB0_13 $196(%rip) + WORD $0x52981e0c // mov w12, #49392 + WORD $0x72a0180c // movk w12, #192, lsl #16 + WORD $0x52901c0d // mov w13, #32992 + WORD $0x72a0100d // movk w13, #128, lsl #16 + WORD $0x528401ee // mov w14, #8207 + WORD $0x528401af // mov w15, #8205 + WORD $0x52981c10 // mov w16, #49376 + WORD $0x52901811 // mov w17, #32960 + WORD $0x52981f00 // mov w0, #49400 + WORD $0x72b81800 // movk w0, #49344, lsl #16 + WORD $0x528600e1 // mov w1, #12295 + WORD $0x52901e02 // mov w2, #33008 + WORD $0x72b01002 // movk w2, #32896, lsl #16 + WORD $0x52860063 // mov w3, #12291 + WORD $0xaa0803ea // mov x10, x8 + WORD $0x14000005 // b LBB0_4 $20(%rip) +LBB0_2: + WORD $0x52800025 // mov w5, #1 +LBB0_3: + WORD $0x8b05014a // add x10, x10, x5 + WORD $0xeb0b015f // cmp x10, x11 + WORD $0x540003c2 // b.hs LBB0_14 $120(%rip) +LBB0_4: + WORD $0x39c00144 // ldrsb w4, [x10] + WORD $0x36ffff64 // tbz w4, #31, LBB0_2 $-20(%rip) + WORD $0xb9400144 // ldr w4, [x10] + WORD $0x0a0c0085 // and w5, w4, w12 + WORD $0x6b0d00bf // cmp w5, w13 + WORD $0x0a0e0085 // and w5, w4, w14 + WORD $0x7a4f00a4 // ccmp w5, w15, #4, eq + WORD $0x7a4018a4 // ccmp w5, #0, #4, ne + WORD $0x54000241 // b.ne LBB0_12 $72(%rip) + WORD $0x0a100085 // and w5, w4, w16 + WORD $0x121f0c86 // and w6, w4, #0x1e + WORD $0x6b1100bf // cmp w5, w17 + WORD $0x7a4008c4 // ccmp w6, #0, #4, eq + WORD $0x54000161 // b.ne LBB0_11 $44(%rip) + WORD $0x0a000085 // and w5, w4, w0 + WORD $0x6b0200bf // cmp w5, w2 + WORD $0x54000981 // b.ne LBB0_30 $304(%rip) + WORD $0x0a010085 // and w5, w4, w1 + WORD $0x34000945 // cbz w5, LBB0_30 $296(%rip) + WORD $0x52800085 // mov w5, #4 + WORD $0x3617fd24 // tbz w4, #2, LBB0_3 $-92(%rip) + WORD $0x0a030084 // and w4, w4, w3 + WORD $0x34fffce4 // cbz w4, LBB0_3 $-100(%rip) + WORD $0x14000045 // b LBB0_30 $276(%rip) +LBB0_11: + WORD $0x52800045 // mov w5, #2 + WORD $0x17ffffe4 // b LBB0_3 $-112(%rip) +LBB0_12: + WORD $0x52800065 // mov w5, #3 + WORD $0x17ffffe2 // b LBB0_3 $-120(%rip) +LBB0_13: + WORD $0xaa0803ea // mov x10, x8 +LBB0_14: + WORD $0xeb09015f // cmp x10, x9 + WORD $0x54000742 // b.hs LBB0_29 $232(%rip) + WORD $0x52981e0b // mov w11, #49392 + WORD $0x72a0180b // movk w11, #192, lsl #16 + WORD $0x52901c0c // mov w12, #32992 + WORD $0x72a0100c // movk w12, #128, lsl #16 + WORD $0x528401ed // mov w13, #8207 + WORD $0x528401ae // mov w14, #8205 + WORD $0x52981c0f // mov w15, #49376 + WORD $0x52901810 // mov w16, #32960 + WORD $0x14000004 // b LBB0_18 $16(%rip) +LBB0_16: + WORD $0x9100054a // add x10, x10, #1 +LBB0_17: + WORD $0xeb09015f // cmp x10, x9 + WORD $0x540005c2 // b.hs LBB0_29 $184(%rip) +LBB0_18: + WORD $0x39c00151 // ldrsb w17, [x10] + WORD $0x36ffff91 // tbz w17, #31, LBB0_16 $-16(%rip) + WORD $0x390053ff // strb wzr, [sp, #20] + WORD $0x39004bff // strb wzr, [sp, #18] + WORD $0xcb0a0122 // sub x2, x9, x10 + WORD $0xf1000844 // subs x4, x2, #2 + WORD $0x540001a3 // b.lo LBB0_22 $52(%rip) + WORD $0x39400151 // ldrb w17, [x10] + WORD $0x39400540 // ldrb w0, [x10, #1] + WORD $0x390053f1 // strb w17, [sp, #20] + WORD $0x91000943 // add x3, x10, #2 + WORD $0x91004be1 // add x1, sp, #18 + WORD $0xaa0403e2 // mov x2, x4 + WORD $0xb4000164 // cbz x4, LBB0_23 $44(%rip) +LBB0_21: + WORD $0x39400071 // ldrb w17, [x3] + WORD $0x39000031 // strb w17, [x1] + WORD $0x394053f1 // ldrb w17, [sp, #20] + WORD $0x39404be1 // ldrb w1, [sp, #18] + WORD $0x14000007 // b LBB0_24 $28(%rip) +LBB0_22: + WORD $0x52800011 // mov w17, #0 + WORD $0x52800000 // mov w0, #0 + WORD $0x910053e1 // add x1, sp, #20 + WORD $0xaa0a03e3 // mov x3, x10 + WORD $0xb5fffee2 // cbnz x2, LBB0_21 $-36(%rip) +LBB0_23: + WORD $0x52800001 // mov w1, #0 +LBB0_24: + WORD $0x53185c00 // lsl w0, w0, #8 + WORD $0x2a014000 // orr w0, w0, w1, lsl #16 + WORD $0x2a110000 // orr w0, w0, w17 + WORD $0x0a0b0001 // and w1, w0, w11 + WORD $0x6b0c003f // cmp w1, w12 + WORD $0x0a0d0001 // and w1, w0, w13 + WORD $0x7a4e0024 // ccmp w1, w14, #4, eq + WORD $0x7a401824 // ccmp w1, #0, #4, ne + WORD $0x54000121 // b.ne LBB0_28 $36(%rip) + WORD $0x721f0e3f // tst w17, #0x1e + WORD $0x540001c0 // b.eq LBB0_30 $56(%rip) + WORD $0x0a0f0011 // and w17, w0, w15 + WORD $0x6b10023f // cmp w17, w16 + WORD $0x54000161 // b.ne LBB0_30 $44(%rip) + WORD $0x52800051 // mov w17, #2 + WORD $0x8b11014a // add x10, x10, x17 + WORD $0x17ffffd5 // b LBB0_17 $-172(%rip) +LBB0_28: + WORD $0x52800071 // mov w17, #3 + WORD $0x8b11014a // add x10, x10, x17 + WORD $0x17ffffd2 // b LBB0_17 $-184(%rip) +LBB0_29: + WORD $0xd2800000 // mov x0, #0 + WORD $0xa941fbfd // ldp fp, lr, [sp, #24] + WORD $0x9100c3ff // add sp, sp, #48 + WORD $0xd65f03c0 // ret +LBB0_30: + WORD $0xaa2a03e9 // mvn x9, x10 + WORD $0x8b080120 // add x0, x9, x8 + WORD $0xa941fbfd // ldp fp, lr, [sp, #24] + WORD $0x9100c3ff // add sp, sp, #48 + WORD $0xd65f03c0 // ret + // .p2align 2, 0x00 +_MASK_USE_NUMBER: + WORD $0x00000002 // .long 2 + +TEXT ·__validate_utf8_fast(SB), NOSPLIT, $0-16 + NO_LOCAL_POINTERS + +_entry: + MOVD 16(g), R16 + SUB $112, RSP, R17 + CMP R16, R17 + BLS _stack_grow + +_validate_utf8_fast: + MOVD s+0(FP), R0 + MOVD ·_subr__validate_utf8_fast(SB), R11 + WORD $0x1000005e // adr x30, .+8 + JMP (R11) + MOVD R0, ret+8(FP) + RET + +_stack_grow: + MOVD R30, R3 + CALL runtime·morestack_noctxt<>(SB) + JMP _entry diff --git a/vendor/github.com/bytedance/sonic/internal/native/neon/validate_utf8_fast_subr_arm64.go b/vendor/github.com/bytedance/sonic/internal/native/neon/validate_utf8_fast_subr_arm64.go new file mode 100644 index 000000000..c5fd3ba5d --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/neon/validate_utf8_fast_subr_arm64.go @@ -0,0 +1,25 @@ +// +build !noasm !appengine +// Code generated by asm2asm, DO NOT EDIT. + +package neon + +//go:nosplit +//go:noescape +//goland:noinspection ALL +func __validate_utf8_fast_entry__() uintptr + +var ( + _subr__validate_utf8_fast uintptr = __validate_utf8_fast_entry__() + 0 +) + +const ( + _stack__validate_utf8_fast = 48 +) + +var ( + _ = _subr__validate_utf8_fast +) + +const ( + _ = _stack__validate_utf8_fast +) diff --git a/vendor/github.com/bytedance/sonic/internal/native/neon/validate_utf8_subr_arm64.go b/vendor/github.com/bytedance/sonic/internal/native/neon/validate_utf8_subr_arm64.go new file mode 100644 index 000000000..b79f6e852 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/neon/validate_utf8_subr_arm64.go @@ -0,0 +1,25 @@ +// +build !noasm !appengine +// Code generated by asm2asm, DO NOT EDIT. + +package neon + +//go:nosplit +//go:noescape +//goland:noinspection ALL +func __validate_utf8_entry__() uintptr + +var ( + _subr__validate_utf8 uintptr = __validate_utf8_entry__() + 0 +) + +const ( + _stack__validate_utf8 = 64 +) + +var ( + _ = _subr__validate_utf8 +) + +const ( + _ = _stack__validate_utf8 +) diff --git a/vendor/github.com/bytedance/sonic/internal/native/neon/value_arm64.go b/vendor/github.com/bytedance/sonic/internal/native/neon/value_arm64.go new file mode 100644 index 000000000..7add30d91 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/neon/value_arm64.go @@ -0,0 +1,34 @@ + +/* + * Copyright 2021 ByteDance 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 neon + +import ( + `unsafe` + `github.com/bytedance/sonic/internal/native/types` +) + +//go:nosplit +func value(s unsafe.Pointer, n int, p int, v *types.JsonState, flags uint64) (ret int) { + return __value(s, n, p, v, flags) +} + +//go:nosplit +//go:noescape +//goland:noinspection GoUnusedParameter +func __value(s unsafe.Pointer, n int, p int, v *types.JsonState, flags uint64) (ret int) + diff --git a/vendor/github.com/bytedance/sonic/internal/native/neon/value_arm64.s b/vendor/github.com/bytedance/sonic/internal/native/neon/value_arm64.s new file mode 100644 index 000000000..e7795b0c7 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/neon/value_arm64.s @@ -0,0 +1,5968 @@ +// +build !noasm !appengine +// Code generated by asm2asm, DO NOT EDIT. + +#include "go_asm.h" +#include "funcdata.h" +#include "textflag.h" + +TEXT ·__value_entry__(SB), NOSPLIT, $96 + NO_LOCAL_POINTERS + WORD $0x100000a0 // adr x0, .+20 + MOVD R0, ret(FP) + RET + // .p2align 4, 0x00 +lCPI0_0: + WORD $0x08040201 + WORD $0x80402010 + WORD $0x08040201 + WORD $0x80402010 + // // .byte 1 +// .byte 2 +// .byte 4 +// .byte 8 +// .byte 16 +// .byte 32 +// .byte 64 +// .byte 128 +// .byte 1 +// .byte 2 +// .byte 4 +// .byte 8 +// .byte 16 +// .byte 32 +// .byte 64 +// .byte 128 + +lCPI0_1: + WORD $0x09010800 + WORD $0x0b030a02 + WORD $0x0d050c04 + WORD $0x0f070e06 + // // .byte 0 +// .byte 8 +// .byte 1 +// .byte 9 +// .byte 2 +// .byte 10 +// .byte 3 +// .byte 11 +// .byte 4 +// .byte 12 +// .byte 5 +// .byte 13 +// .byte 6 +// .byte 14 +// .byte 7 +// .byte 15 + +_value: + WORD $0xd101c3ff // sub sp, sp, #112 + WORD $0xa900effc // stp x28, x27, [sp, #8] + WORD $0xa901e7fa // stp x26, x25, [sp, #24] + WORD $0xa902dff8 // stp x24, x23, [sp, #40] + WORD $0xa903d7f6 // stp x22, x21, [sp, #56] + WORD $0xa904cff4 // stp x20, x19, [sp, #72] + WORD $0xa905fbfd // stp fp, lr, [sp, #88] + WORD $0xa93ffbfd // stp fp, lr, [sp, #-8] + WORD $0xd10023fd // sub fp, sp, #8 + WORD $0xeb01005f // cmp x2, x1 + WORD $0x54000162 // b.hs LBB0_5 $44(%rip) + WORD $0x38626808 // ldrb w8, [x0, x2] + WORD $0x7100351f // cmp w8, #13 + WORD $0x54000100 // b.eq LBB0_5 $32(%rip) + WORD $0x7100811f // cmp w8, #32 + WORD $0x540000c0 // b.eq LBB0_5 $24(%rip) + WORD $0x51002d09 // sub w9, w8, #11 + WORD $0x3100093f // cmn w9, #2 + WORD $0x54000062 // b.hs LBB0_5 $12(%rip) + WORD $0xaa0203ea // mov x10, x2 + WORD $0x14000042 // b LBB0_27 $264(%rip) +LBB0_5: + WORD $0x9100044a // add x10, x2, #1 + WORD $0xeb01015f // cmp x10, x1 + WORD $0x54000122 // b.hs LBB0_9 $36(%rip) + WORD $0x386a6808 // ldrb w8, [x0, x10] + WORD $0x7100351f // cmp w8, #13 + WORD $0x540000c0 // b.eq LBB0_9 $24(%rip) + WORD $0x7100811f // cmp w8, #32 + WORD $0x54000080 // b.eq LBB0_9 $16(%rip) + WORD $0x51002d09 // sub w9, w8, #11 + WORD $0x3100093f // cmn w9, #2 + WORD $0x540006e3 // b.lo LBB0_27 $220(%rip) +LBB0_9: + WORD $0x9100084a // add x10, x2, #2 + WORD $0xeb01015f // cmp x10, x1 + WORD $0x54000122 // b.hs LBB0_13 $36(%rip) + WORD $0x386a6808 // ldrb w8, [x0, x10] + WORD $0x7100351f // cmp w8, #13 + WORD $0x540000c0 // b.eq LBB0_13 $24(%rip) + WORD $0x7100811f // cmp w8, #32 + WORD $0x54000080 // b.eq LBB0_13 $16(%rip) + WORD $0x51002d09 // sub w9, w8, #11 + WORD $0x3100093f // cmn w9, #2 + WORD $0x54000583 // b.lo LBB0_27 $176(%rip) +LBB0_13: + WORD $0x91000c4a // add x10, x2, #3 + WORD $0xeb01015f // cmp x10, x1 + WORD $0x54000122 // b.hs LBB0_17 $36(%rip) + WORD $0x386a6808 // ldrb w8, [x0, x10] + WORD $0x7100351f // cmp w8, #13 + WORD $0x540000c0 // b.eq LBB0_17 $24(%rip) + WORD $0x7100811f // cmp w8, #32 + WORD $0x54000080 // b.eq LBB0_17 $16(%rip) + WORD $0x51002d09 // sub w9, w8, #11 + WORD $0x3100093f // cmn w9, #2 + WORD $0x54000423 // b.lo LBB0_27 $132(%rip) +LBB0_17: + WORD $0x9100104a // add x10, x2, #4 + WORD $0xeb01015f // cmp x10, x1 + WORD $0x540001c2 // b.hs LBB0_21 $56(%rip) + WORD $0x52800028 // mov w8, #1 + WORD $0xd284c009 // mov x9, #9728 + WORD $0xf2c00029 // movk x9, #1, lsl #32 +LBB0_19: + WORD $0x386a680b // ldrb w11, [x0, x10] + WORD $0x7100817f // cmp w11, #32 + WORD $0x9acb210b // lsl x11, x8, x11 + WORD $0x8a09016b // and x11, x11, x9 + WORD $0xfa409964 // ccmp x11, #0, #4, ls + WORD $0x54000240 // b.eq LBB0_25 $72(%rip) + WORD $0x9100054a // add x10, x10, #1 + WORD $0xeb0a003f // cmp x1, x10 + WORD $0x54ffff01 // b.ne LBB0_19 $-32(%rip) + WORD $0x14000002 // b LBB0_22 $8(%rip) +LBB0_21: + WORD $0xaa0a03e2 // mov x2, x10 +LBB0_22: + WORD $0x52800028 // mov w8, #1 +LBB0_23: + WORD $0xf9000068 // str x8, [x3] + WORD $0xaa0203e1 // mov x1, x2 +LBB0_24: + WORD $0xaa0103e0 // mov x0, x1 + WORD $0xa945fbfd // ldp fp, lr, [sp, #88] + WORD $0xa944cff4 // ldp x20, x19, [sp, #72] + WORD $0xa943d7f6 // ldp x22, x21, [sp, #56] + WORD $0xa942dff8 // ldp x24, x23, [sp, #40] + WORD $0xa941e7fa // ldp x26, x25, [sp, #24] + WORD $0xa940effc // ldp x28, x27, [sp, #8] + WORD $0x9101c3ff // add sp, sp, #112 + WORD $0xd65f03c0 // ret +LBB0_25: + WORD $0xeb01015f // cmp x10, x1 + WORD $0x54fffe62 // b.hs LBB0_22 $-52(%rip) + WORD $0x386a6808 // ldrb w8, [x0, x10] +LBB0_27: + WORD $0x7101f51f // cmp w8, #125 + WORD $0x54003028 // b.hi LBB0_109 $1540(%rip) + WORD $0x91000542 // add x2, x10, #1 + WORD $0x2a0803e9 // mov w9, w8 +Lloh0: + WORD $0x1001142b // adr x11, LJTI0_0 $8836(%rip) +Lloh1: + WORD $0x9100016b // add x11, x11, LJTI0_0@PAGEOFF $0(%rip) + WORD $0x10fffd6c // adr x12, LBB0_22 $-84(%rip) + WORD $0x7869796d // ldrh w13, [x11, x9, lsl #1] + WORD $0x8b0d098c // add x12, x12, x13, lsl #2 + WORD $0xd61f0180 // br x12 +LBB0_29: + WORD $0x8b0a000d // add x13, x0, x10 + WORD $0x370801e4 // tbnz w4, #1, LBB0_34 $60(%rip) + WORD $0xa9422468 // ldp x8, x9, [x3, #32] + WORD $0x5280012b // mov w11, #9 + WORD $0xa9007c6b // stp x11, xzr, [x3] + WORD $0xa901287f // stp xzr, x10, [x3, #16] + WORD $0xeb0a003f // cmp x1, x10 + WORD $0x54005be9 // b.ls LBB0_194 $2940(%rip) + WORD $0x394001ab // ldrb w11, [x13] + WORD $0x7100b57f // cmp w11, #45 + WORD $0x540002c1 // b.ne LBB0_39 $88(%rip) + WORD $0xeb02003f // cmp x1, x2 + WORD $0x54005b49 // b.ls LBB0_194 $2920(%rip) + WORD $0x3862680c // ldrb w12, [x0, x2] + WORD $0x1280000e // mov w14, #-1 + WORD $0x14000014 // b LBB0_40 $80(%rip) +LBB0_34: + WORD $0x7100b51f // cmp w8, #45 + WORD $0x1a9f17ee // cset w14, eq + WORD $0x9a8d15a8 // cinc x8, x13, eq + WORD $0xcb0a0029 // sub x9, x1, x10 + WORD $0xeb0e012d // subs x13, x9, x14 + WORD $0x5400e220 // b.eq LBB0_478 $7236(%rip) + WORD $0x39400109 // ldrb w9, [x8] + WORD $0x5100e92b // sub w11, w9, #58 + WORD $0x31002d7f // cmn w11, #11 + WORD $0x54004489 // b.ls LBB0_143 $2192(%rip) + WORD $0x7100c13f // cmp w9, #48 + WORD $0x54000301 // b.ne LBB0_44 $96(%rip) + WORD $0xf10005bf // cmp x13, #1 + WORD $0x54000161 // b.ne LBB0_42 $44(%rip) + WORD $0x5280002f // mov w15, #1 + WORD $0x1400017b // b LBB0_120 $1516(%rip) +LBB0_39: + WORD $0x5280002e // mov w14, #1 + WORD $0xaa0b03ec // mov x12, x11 + WORD $0xaa0a03e2 // mov x2, x10 +LBB0_40: + WORD $0x5100e98f // sub w15, w12, #58 + WORD $0x31002dff // cmn w15, #11 + WORD $0x54001548 // b.hi LBB0_83 $680(%rip) + WORD $0x92800028 // mov x8, #-2 + WORD $0x17ffffc1 // b LBB0_23 $-252(%rip) +LBB0_42: + WORD $0x39400509 // ldrb w9, [x8, #1] + WORD $0x5280002f // mov w15, #1 + WORD $0x5100b929 // sub w9, w9, #46 + WORD $0x7100dd3f // cmp w9, #55 + WORD $0x54002dc8 // b.hi LBB0_120 $1464(%rip) + WORD $0x5280002b // mov w11, #1 + WORD $0x9ac92169 // lsl x9, x11, x9 + WORD $0xb20903eb // mov x11, #36028797027352576 + WORD $0xf280002b // movk x11, #1 + WORD $0xea0b013f // tst x9, x11 + WORD $0x54002d00 // b.eq LBB0_120 $1440(%rip) +LBB0_44: + WORD $0xf10041bf // cmp x13, #16 + WORD $0x5400e1a3 // b.lo LBB0_486 $7220(%rip) + WORD $0xd2800010 // mov x16, #0 + WORD $0xd280000f // mov x15, #0 + WORD $0x92800009 // mov x9, #-1 + WORD $0x4f01e5c0 // movi.16b v0, #46 + WORD $0x4f01e561 // movi.16b v1, #43 + WORD $0x4f01e5a2 // movi.16b v2, #45 + WORD $0x4f06e603 // movi.16b v3, #208 + WORD $0x4f00e544 // movi.16b v4, #10 +Lloh2: + WORD $0x10ffeb6b // adr x11, lCPI0_0 $-660(%rip) +Lloh3: + WORD $0x3dc00165 // ldr q5, [x11, lCPI0_0@PAGEOFF] $0(%rip) + WORD $0x4f06e7e6 // movi.16b v6, #223 + WORD $0x4f02e4a7 // movi.16b v7, #69 +Lloh4: + WORD $0x10ffeb6b // adr x11, lCPI0_1 $-660(%rip) +Lloh5: + WORD $0x3dc00170 // ldr q16, [x11, lCPI0_1@PAGEOFF] $0(%rip) + WORD $0x12800011 // mov w17, #-1 + WORD $0x9280000c // mov x12, #-1 + WORD $0x9280000b // mov x11, #-1 +LBB0_46: + WORD $0x3cef6911 // ldr q17, [x8, x15] + WORD $0x6e208e32 // cmeq.16b v18, v17, v0 + WORD $0x6e218e33 // cmeq.16b v19, v17, v1 + WORD $0x6e228e34 // cmeq.16b v20, v17, v2 + WORD $0x4e238635 // add.16b v21, v17, v3 + WORD $0x6e353495 // cmhi.16b v21, v4, v21 + WORD $0x4e261e31 // and.16b v17, v17, v6 + WORD $0x6e278e31 // cmeq.16b v17, v17, v7 + WORD $0x4eb41e73 // orr.16b v19, v19, v20 + WORD $0x4eb21eb4 // orr.16b v20, v21, v18 + WORD $0x4eb31e35 // orr.16b v21, v17, v19 + WORD $0x4eb51e94 // orr.16b v20, v20, v21 + WORD $0x4e251e52 // and.16b v18, v18, v5 + WORD $0x4e100252 // tbl.16b v18, { v18 }, v16 + WORD $0x4e71ba52 // addv.8h h18, v18 + WORD $0x1e260242 // fmov w2, s18 + WORD $0x4e251e31 // and.16b v17, v17, v5 + WORD $0x4e100231 // tbl.16b v17, { v17 }, v16 + WORD $0x4e71ba31 // addv.8h h17, v17 + WORD $0x1e260224 // fmov w4, s17 + WORD $0x4e251e71 // and.16b v17, v19, v5 + WORD $0x4e100231 // tbl.16b v17, { v17 }, v16 + WORD $0x4e71ba31 // addv.8h h17, v17 + WORD $0x1e260226 // fmov w6, s17 + WORD $0x4e251e91 // and.16b v17, v20, v5 + WORD $0x4e100231 // tbl.16b v17, { v17 }, v16 + WORD $0x4e71ba31 // addv.8h h17, v17 + WORD $0x1e260221 // fmov w1, s17 + WORD $0x2a2103e1 // mvn w1, w1 + WORD $0x32103c21 // orr w1, w1, #0xffff0000 + WORD $0x5ac00021 // rbit w1, w1 + WORD $0x5ac01021 // clz w1, w1 + WORD $0x1ac12225 // lsl w5, w17, w1 + WORD $0x0a250047 // bic w7, w2, w5 + WORD $0x0a250093 // bic w19, w4, w5 + WORD $0x0a2500d4 // bic w20, w6, w5 + WORD $0x7100403f // cmp w1, #16 + WORD $0x1a870045 // csel w5, w2, w7, eq + WORD $0x1a930084 // csel w4, w4, w19, eq + WORD $0x1a9400c2 // csel w2, w6, w20, eq + WORD $0x510004a6 // sub w6, w5, #1 + WORD $0x6a0500c6 // ands w6, w6, w5 + WORD $0x54004aa1 // b.ne LBB0_185 $2388(%rip) + WORD $0x51000486 // sub w6, w4, #1 + WORD $0x6a0400c6 // ands w6, w6, w4 + WORD $0x54004a41 // b.ne LBB0_185 $2376(%rip) + WORD $0x51000446 // sub w6, w2, #1 + WORD $0x6a0200c6 // ands w6, w6, w2 + WORD $0x540049e1 // b.ne LBB0_185 $2364(%rip) + WORD $0x340000c5 // cbz w5, LBB0_52 $24(%rip) + WORD $0x5ac000a5 // rbit w5, w5 + WORD $0x5ac010a5 // clz w5, w5 + WORD $0xb100057f // cmn x11, #1 + WORD $0x54007b01 // b.ne LBB0_283 $3936(%rip) + WORD $0x8b0501eb // add x11, x15, x5 +LBB0_52: + WORD $0x340000c4 // cbz w4, LBB0_55 $24(%rip) + WORD $0x5ac00084 // rbit w4, w4 + WORD $0x5ac01084 // clz w4, w4 + WORD $0xb100059f // cmn x12, #1 + WORD $0x54007aa1 // b.ne LBB0_284 $3924(%rip) + WORD $0x8b0401ec // add x12, x15, x4 +LBB0_55: + WORD $0x340000c2 // cbz w2, LBB0_58 $24(%rip) + WORD $0x5ac00042 // rbit w2, w2 + WORD $0x5ac01042 // clz w2, w2 + WORD $0xb100053f // cmn x9, #1 + WORD $0x54007a41 // b.ne LBB0_285 $3912(%rip) + WORD $0x8b0201e9 // add x9, x15, x2 +LBB0_58: + WORD $0x7100403f // cmp w1, #16 + WORD $0x54000621 // b.ne LBB0_73 $196(%rip) + WORD $0x910041ef // add x15, x15, #16 + WORD $0xd1004210 // sub x16, x16, #16 + WORD $0x8b1001a1 // add x1, x13, x16 + WORD $0xf1003c3f // cmp x1, #15 + WORD $0x54fff6e8 // b.hi LBB0_46 $-292(%rip) + WORD $0x8b0f0110 // add x16, x8, x15 + WORD $0xeb0f01bf // cmp x13, x15 + WORD $0x54000560 // b.eq LBB0_74 $172(%rip) +LBB0_61: + WORD $0x8b01020d // add x13, x16, x1 + WORD $0xaa3003ef // mvn x15, x16 + WORD $0x8b000151 // add x17, x10, x0 + WORD $0x8b1101ef // add x15, x15, x17 + WORD $0x8b0e01ef // add x15, x15, x14 + WORD $0xcb08020e // sub x14, x16, x8 + WORD $0xaa1003f1 // mov x17, x16 + WORD $0x14000009 // b LBB0_64 $36(%rip) +LBB0_62: + WORD $0xb100059f // cmn x12, #1 + WORD $0xaa0e03ec // mov x12, x14 + WORD $0x54001f81 // b.ne LBB0_119 $1008(%rip) +LBB0_63: + WORD $0xd10005ef // sub x15, x15, #1 + WORD $0x910005ce // add x14, x14, #1 + WORD $0xaa1103f0 // mov x16, x17 + WORD $0xd1000421 // sub x1, x1, #1 + WORD $0xb40033e1 // cbz x1, LBB0_145 $1660(%rip) +LBB0_64: + WORD $0x38401622 // ldrb w2, [x17], #1 + WORD $0x5100c044 // sub w4, w2, #48 + WORD $0x7100289f // cmp w4, #10 + WORD $0x54ffff03 // b.lo LBB0_63 $-32(%rip) + WORD $0x7100b45f // cmp w2, #45 + WORD $0x5400016d // b.le LBB0_70 $44(%rip) + WORD $0x7101945f // cmp w2, #101 + WORD $0x54fffe20 // b.eq LBB0_62 $-60(%rip) + WORD $0x7101145f // cmp w2, #69 + WORD $0x54fffde0 // b.eq LBB0_62 $-68(%rip) + WORD $0x7100b85f // cmp w2, #46 + WORD $0x540001e1 // b.ne LBB0_74 $60(%rip) + WORD $0xb100057f // cmn x11, #1 + WORD $0xaa0e03eb // mov x11, x14 + WORD $0x54fffda0 // b.eq LBB0_63 $-76(%rip) + WORD $0x140000e7 // b LBB0_119 $924(%rip) +LBB0_70: + WORD $0x7100ac5f // cmp w2, #43 + WORD $0x54000060 // b.eq LBB0_72 $12(%rip) + WORD $0x7100b45f // cmp w2, #45 + WORD $0x540000e1 // b.ne LBB0_74 $28(%rip) +LBB0_72: + WORD $0xb100053f // cmn x9, #1 + WORD $0xaa0e03e9 // mov x9, x14 + WORD $0x54fffca0 // b.eq LBB0_63 $-108(%rip) + WORD $0x140000df // b LBB0_119 $892(%rip) +LBB0_73: + WORD $0x8b21410d // add x13, x8, w1, uxtw + WORD $0x8b0f01b0 // add x16, x13, x15 +LBB0_74: + WORD $0x9280000f // mov x15, #-1 + WORD $0xb4002fab // cbz x11, LBB0_142 $1524(%rip) +LBB0_75: + WORD $0xb4002f89 // cbz x9, LBB0_142 $1520(%rip) + WORD $0xb4002f6c // cbz x12, LBB0_142 $1516(%rip) + WORD $0xcb08020d // sub x13, x16, x8 + WORD $0xd10005ae // sub x14, x13, #1 + WORD $0xeb0e017f // cmp x11, x14 + WORD $0x54001a80 // b.eq LBB0_118 $848(%rip) + WORD $0xeb0e013f // cmp x9, x14 + WORD $0x54001a40 // b.eq LBB0_118 $840(%rip) + WORD $0xeb0e019f // cmp x12, x14 + WORD $0x54001a00 // b.eq LBB0_118 $832(%rip) + WORD $0xf100052e // subs x14, x9, #1 + WORD $0x54002d8b // b.lt LBB0_139 $1456(%rip) + WORD $0xeb0e019f // cmp x12, x14 + WORD $0x54002d40 // b.eq LBB0_139 $1448(%rip) + WORD $0xaa2903ef // mvn x15, x9 + WORD $0x1400016d // b LBB0_142 $1460(%rip) +LBB0_83: + WORD $0x7100c19f // cmp w12, #48 + WORD $0x54000181 // b.ne LBB0_86 $48(%rip) + WORD $0x8b02000c // add x12, x0, x2 + WORD $0x3940058c // ldrb w12, [x12, #1] + WORD $0x5100b98c // sub w12, w12, #46 + WORD $0x7100dd9f // cmp w12, #55 + WORD $0x54003d48 // b.hi LBB0_183 $1960(%rip) + WORD $0x5280002f // mov w15, #1 + WORD $0x9acc21ec // lsl x12, x15, x12 + WORD $0xb20903ef // mov x15, #36028797027352576 + WORD $0xf280002f // movk x15, #1 + WORD $0xea0f019f // tst x12, x15 + WORD $0x54003c80 // b.eq LBB0_183 $1936(%rip) +LBB0_86: + WORD $0xd280000c // mov x12, #0 + WORD $0x52800004 // mov w4, #0 + WORD $0x52800010 // mov w16, #0 + WORD $0x5280014f // mov w15, #10 +LBB0_87: + WORD $0x38626805 // ldrb w5, [x0, x2] + WORD $0x5100c0b1 // sub w17, w5, #48 + WORD $0x7100263f // cmp w17, #9 + WORD $0x54002868 // b.hi LBB0_135 $1292(%rip) + WORD $0x71004c9f // cmp w4, #19 + WORD $0x9b0f7d85 // mul x5, x12, x15 + WORD $0x8b3100b1 // add x17, x5, w17, uxtb + WORD $0x1a842485 // cinc w5, w4, lo + WORD $0x7100489f // cmp w4, #18 + WORD $0x1a909610 // cinc w16, w16, hi + WORD $0xaa0503e4 // mov x4, x5 + WORD $0x9a91818c // csel x12, x12, x17, hi + WORD $0x91000442 // add x2, x2, #1 + WORD $0xeb02003f // cmp x1, x2 + WORD $0x54fffe41 // b.ne LBB0_87 $-56(%rip) + WORD $0x52800031 // mov w17, #1 + WORD $0xaa0103e2 // mov x2, x1 + WORD $0x7100021f // cmp w16, #0 + WORD $0x1a9fd7ef // cset w15, gt + WORD $0xb40031ac // cbz x12, LBB0_162 $1588(%rip) + WORD $0x140001a5 // b LBB0_171 $1684(%rip) +LBB0_90: + WORD $0xd1000c28 // sub x8, x1, #3 + WORD $0xeb08015f // cmp x10, x8 + WORD $0x54003de2 // b.hs LBB0_194 $1980(%rip) + WORD $0x8b020008 // add x8, x0, x2 + WORD $0xb85ff108 // ldur w8, [x8, #-1] + WORD $0x528eadc9 // mov w9, #30062 + WORD $0x72ad8d89 // movk w9, #27756, lsl #16 + WORD $0x6b09011f // cmp w8, w9 + WORD $0x54002901 // b.ne LBB0_146 $1312(%rip) + WORD $0x91001141 // add x1, x10, #4 + WORD $0x52800048 // mov w8, #2 + WORD $0xf9000068 // str x8, [x3] + WORD $0x17fffee9 // b LBB0_24 $-1116(%rip) +LBB0_93: + WORD $0xf261009f // tst x4, #0x80000000 + WORD $0x1a9f17e8 // cset w8, eq + WORD $0x528001a9 // mov w9, #13 + WORD $0x1400008c // b LBB0_116 $560(%rip) +LBB0_94: + WORD $0xf261009f // tst x4, #0x80000000 + WORD $0x1a9f17e8 // cset w8, eq + WORD $0x52800169 // mov w9, #11 + WORD $0x14000088 // b LBB0_116 $544(%rip) +LBB0_95: + WORD $0x372812e4 // tbnz w4, #5, LBB0_122 $604(%rip) + WORD $0xeb020029 // subs x9, x1, x2 + WORD $0x5400f180 // b.eq LBB0_580 $7728(%rip) + WORD $0xf101013f // cmp x9, #64 + WORD $0x5400b683 // b.lo LBB0_465 $5840(%rip) + WORD $0xd280000a // mov x10, #0 + WORD $0x92800008 // mov x8, #-1 + WORD $0x4f01e440 // movi.16b v0, #34 + WORD $0x4f02e781 // movi.16b v1, #92 +Lloh6: + WORD $0x10ffd0ab // adr x11, lCPI0_0 $-1516(%rip) +Lloh7: + WORD $0x3dc00162 // ldr q2, [x11, lCPI0_0@PAGEOFF] $0(%rip) +Lloh8: + WORD $0x10ffd0eb // adr x11, lCPI0_1 $-1508(%rip) +Lloh9: + WORD $0x3dc00163 // ldr q3, [x11, lCPI0_1@PAGEOFF] $0(%rip) + WORD $0xaa0203eb // mov x11, x2 +LBB0_99: + WORD $0x8b0b000c // add x12, x0, x11 + WORD $0xad401584 // ldp q4, q5, [x12] + WORD $0xad411d86 // ldp q6, q7, [x12, #32] + WORD $0x6e208c90 // cmeq.16b v16, v4, v0 + WORD $0x6e208cb1 // cmeq.16b v17, v5, v0 + WORD $0x6e208cd2 // cmeq.16b v18, v6, v0 + WORD $0x6e208cf3 // cmeq.16b v19, v7, v0 + WORD $0x6e218c84 // cmeq.16b v4, v4, v1 + WORD $0x6e218ca5 // cmeq.16b v5, v5, v1 + WORD $0x6e218cc6 // cmeq.16b v6, v6, v1 + WORD $0x6e218ce7 // cmeq.16b v7, v7, v1 + WORD $0x4e221e10 // and.16b v16, v16, v2 + WORD $0x4e030210 // tbl.16b v16, { v16 }, v3 + WORD $0x4e71ba10 // addv.8h h16, v16 + WORD $0x1e26020c // fmov w12, s16 + WORD $0x4e221e30 // and.16b v16, v17, v2 + WORD $0x4e030210 // tbl.16b v16, { v16 }, v3 + WORD $0x4e71ba10 // addv.8h h16, v16 + WORD $0x1e26020d // fmov w13, s16 + WORD $0x4e221e50 // and.16b v16, v18, v2 + WORD $0x4e030210 // tbl.16b v16, { v16 }, v3 + WORD $0x4e71ba10 // addv.8h h16, v16 + WORD $0x1e26020e // fmov w14, s16 + WORD $0x4e221e70 // and.16b v16, v19, v2 + WORD $0x4e030210 // tbl.16b v16, { v16 }, v3 + WORD $0x4e71ba10 // addv.8h h16, v16 + WORD $0x1e26020f // fmov w15, s16 + WORD $0x4e221c84 // and.16b v4, v4, v2 + WORD $0x4e030084 // tbl.16b v4, { v4 }, v3 + WORD $0x4e71b884 // addv.8h h4, v4 + WORD $0x1e260090 // fmov w16, s4 + WORD $0x4e221ca4 // and.16b v4, v5, v2 + WORD $0x4e030084 // tbl.16b v4, { v4 }, v3 + WORD $0x4e71b884 // addv.8h h4, v4 + WORD $0x1e260091 // fmov w17, s4 + WORD $0x4e221cc4 // and.16b v4, v6, v2 + WORD $0x4e030084 // tbl.16b v4, { v4 }, v3 + WORD $0x4e71b884 // addv.8h h4, v4 + WORD $0x1e260084 // fmov w4, s4 + WORD $0x4e221ce4 // and.16b v4, v7, v2 + WORD $0x4e030084 // tbl.16b v4, { v4 }, v3 + WORD $0x4e71b884 // addv.8h h4, v4 + WORD $0x1e260085 // fmov w5, s4 + WORD $0xd3607dce // lsl x14, x14, #32 + WORD $0xaa0fc1ce // orr x14, x14, x15, lsl #48 + WORD $0x53103dad // lsl w13, w13, #16 + WORD $0xaa0d01cd // orr x13, x14, x13 + WORD $0xaa0c01ac // orr x12, x13, x12 + WORD $0xd3607c8d // lsl x13, x4, #32 + WORD $0xaa05c1ad // orr x13, x13, x5, lsl #48 + WORD $0x53103e2e // lsl w14, w17, #16 + WORD $0xaa0e01ad // orr x13, x13, x14 + WORD $0xaa1001ad // orr x13, x13, x16 + WORD $0xb500010d // cbnz x13, LBB0_103 $32(%rip) + WORD $0xb500018a // cbnz x10, LBB0_104 $48(%rip) + WORD $0xb50002cc // cbnz x12, LBB0_105 $88(%rip) +LBB0_102: + WORD $0xd1010129 // sub x9, x9, #64 + WORD $0x9101016b // add x11, x11, #64 + WORD $0xf100fd3f // cmp x9, #63 + WORD $0x54fff8a8 // b.hi LBB0_99 $-236(%rip) + WORD $0x14000532 // b LBB0_450 $5320(%rip) +LBB0_103: + WORD $0xb100051f // cmn x8, #1 + WORD $0xdac001ae // rbit x14, x13 + WORD $0xdac011ce // clz x14, x14 + WORD $0x8b0b01ce // add x14, x14, x11 + WORD $0x9a8e1108 // csel x8, x8, x14, ne +LBB0_104: + WORD $0x8a2a01ae // bic x14, x13, x10 + WORD $0xaa0e054f // orr x15, x10, x14, lsl #1 + WORD $0x8a2f01aa // bic x10, x13, x15 + WORD $0x9201f14a // and x10, x10, #0xaaaaaaaaaaaaaaaa + WORD $0xab0e014d // adds x13, x10, x14 + WORD $0x1a9f37ea // cset w10, hs + WORD $0xd37ff9ad // lsl x13, x13, #1 + WORD $0xd200f1ad // eor x13, x13, #0x5555555555555555 + WORD $0x8a0f01ad // and x13, x13, x15 + WORD $0x8a2d018c // bic x12, x12, x13 + WORD $0xb4fffd8c // cbz x12, LBB0_102 $-80(%rip) +LBB0_105: + WORD $0xdac00189 // rbit x9, x12 + WORD $0xdac01129 // clz x9, x9 + WORD $0x8b0b0129 // add x9, x9, x11 + WORD $0x9100052c // add x12, x9, #1 + WORD $0xb6f816cc // tbz x12, #63, LBB0_134 $728(%rip) + WORD $0x1400071b // b LBB0_575 $7276(%rip) +LBB0_106: + WORD $0xd1000c28 // sub x8, x1, #3 + WORD $0xeb08015f // cmp x10, x8 + WORD $0x54002f22 // b.hs LBB0_194 $1508(%rip) + WORD $0x8b020008 // add x8, x0, x2 + WORD $0xb85ff108 // ldur w8, [x8, #-1] + WORD $0x528e4e89 // mov w9, #29300 + WORD $0x72acaea9 // movk w9, #25973, lsl #16 + WORD $0x6b09011f // cmp w8, w9 + WORD $0x54001c41 // b.ne LBB0_150 $904(%rip) + WORD $0x91001141 // add x1, x10, #4 + WORD $0x52800068 // mov w8, #3 + WORD $0xf9000068 // str x8, [x3] + WORD $0x17fffe73 // b LBB0_24 $-1588(%rip) +LBB0_109: + WORD $0x92800028 // mov x8, #-2 + WORD $0xf9000068 // str x8, [x3] + WORD $0xaa0a03e1 // mov x1, x10 + WORD $0x17fffe6f // b LBB0_24 $-1604(%rip) +LBB0_110: + WORD $0xf261009f // tst x4, #0x80000000 + WORD $0x1a9f17e8 // cset w8, eq + WORD $0x52800149 // mov w9, #10 + WORD $0x14000012 // b LBB0_116 $72(%rip) +LBB0_111: + WORD $0x528000a8 // mov w8, #5 + WORD $0x17fffe67 // b LBB0_23 $-1636(%rip) +LBB0_112: + WORD $0xd1001028 // sub x8, x1, #4 + WORD $0xeb08015f // cmp x10, x8 + WORD $0x54002c42 // b.hs LBB0_194 $1416(%rip) + WORD $0xb8626808 // ldr w8, [x0, x2] + WORD $0x528d8c29 // mov w9, #27745 + WORD $0x72acae69 // movk w9, #25971, lsl #16 + WORD $0x6b09011f // cmp w8, w9 + WORD $0x54001c01 // b.ne LBB0_155 $896(%rip) + WORD $0x91001541 // add x1, x10, #5 + WORD $0x52800088 // mov w8, #4 + WORD $0xf9000068 // str x8, [x3] + WORD $0x17fffe5d // b LBB0_24 $-1676(%rip) +LBB0_115: + WORD $0xf261009f // tst x4, #0x80000000 + WORD $0x1a9f17e8 // cset w8, eq + WORD $0x52800189 // mov w9, #12 +LBB0_116: + WORD $0x9280002a // mov x10, #-2 + WORD $0x9a890149 // csel x9, x10, x9, eq + WORD $0xf9000069 // str x9, [x3] + WORD $0xcb080041 // sub x1, x2, x8 + WORD $0x17fffe55 // b LBB0_24 $-1708(%rip) +LBB0_117: + WORD $0x528000c8 // mov w8, #6 + WORD $0x17fffe51 // b LBB0_23 $-1724(%rip) +LBB0_118: + WORD $0xcb0d03ef // neg x15, x13 +LBB0_119: + WORD $0xb7f8144f // tbnz x15, #63, LBB0_142 $648(%rip) +LBB0_120: + WORD $0x8b0f0108 // add x8, x8, x15 + WORD $0xcb000101 // sub x1, x8, x0 + WORD $0xb7f8146a // tbnz x10, #63, LBB0_144 $652(%rip) + WORD $0x52800108 // mov w8, #8 + WORD $0xf9000068 // str x8, [x3] + WORD $0xf9000c6a // str x10, [x3, #24] + WORD $0x17fffe4a // b LBB0_24 $-1752(%rip) +LBB0_122: + WORD $0xeb02002a // subs x10, x1, x2 + WORD $0x5400dec0 // b.eq LBB0_580 $7128(%rip) + WORD $0xf101015f // cmp x10, #64 + WORD $0x5400a8c3 // b.lo LBB0_471 $5400(%rip) + WORD $0xd2800009 // mov x9, #0 + WORD $0x92800008 // mov x8, #-1 + WORD $0x4f01e440 // movi.16b v0, #34 +Lloh10: + WORD $0x10ffbe0b // adr x11, lCPI0_0 $-2112(%rip) +Lloh11: + WORD $0x3dc00161 // ldr q1, [x11, lCPI0_0@PAGEOFF] $0(%rip) +Lloh12: + WORD $0x10ffbe4b // adr x11, lCPI0_1 $-2104(%rip) +Lloh13: + WORD $0x3dc00162 // ldr q2, [x11, lCPI0_1@PAGEOFF] $0(%rip) + WORD $0x4f02e783 // movi.16b v3, #92 + WORD $0x4f01e404 // movi.16b v4, #32 + WORD $0xaa0203eb // mov x11, x2 +LBB0_125: + WORD $0x8b0b000c // add x12, x0, x11 + WORD $0xad401d90 // ldp q16, q7, [x12] + WORD $0xad411586 // ldp q6, q5, [x12, #32] + WORD $0x6e208e11 // cmeq.16b v17, v16, v0 + WORD $0x4e211e31 // and.16b v17, v17, v1 + WORD $0x4e020231 // tbl.16b v17, { v17 }, v2 + WORD $0x4e71ba31 // addv.8h h17, v17 + WORD $0x1e26022c // fmov w12, s17 + WORD $0x6e208cf1 // cmeq.16b v17, v7, v0 + WORD $0x4e211e31 // and.16b v17, v17, v1 + WORD $0x4e020231 // tbl.16b v17, { v17 }, v2 + WORD $0x4e71ba31 // addv.8h h17, v17 + WORD $0x1e26022d // fmov w13, s17 + WORD $0x6e208cd1 // cmeq.16b v17, v6, v0 + WORD $0x4e211e31 // and.16b v17, v17, v1 + WORD $0x4e020231 // tbl.16b v17, { v17 }, v2 + WORD $0x4e71ba31 // addv.8h h17, v17 + WORD $0x1e26022e // fmov w14, s17 + WORD $0x6e208cb1 // cmeq.16b v17, v5, v0 + WORD $0x4e211e31 // and.16b v17, v17, v1 + WORD $0x4e020231 // tbl.16b v17, { v17 }, v2 + WORD $0x4e71ba31 // addv.8h h17, v17 + WORD $0x1e26022f // fmov w15, s17 + WORD $0x6e238e11 // cmeq.16b v17, v16, v3 + WORD $0x4e211e31 // and.16b v17, v17, v1 + WORD $0x4e020231 // tbl.16b v17, { v17 }, v2 + WORD $0x4e71ba31 // addv.8h h17, v17 + WORD $0x1e260230 // fmov w16, s17 + WORD $0x6e238cf1 // cmeq.16b v17, v7, v3 + WORD $0x4e211e31 // and.16b v17, v17, v1 + WORD $0x4e020231 // tbl.16b v17, { v17 }, v2 + WORD $0x4e71ba31 // addv.8h h17, v17 + WORD $0x1e260231 // fmov w17, s17 + WORD $0x6e238cd1 // cmeq.16b v17, v6, v3 + WORD $0x4e211e31 // and.16b v17, v17, v1 + WORD $0x4e020231 // tbl.16b v17, { v17 }, v2 + WORD $0x4e71ba31 // addv.8h h17, v17 + WORD $0x1e260224 // fmov w4, s17 + WORD $0x6e238cb1 // cmeq.16b v17, v5, v3 + WORD $0x4e211e31 // and.16b v17, v17, v1 + WORD $0x4e020231 // tbl.16b v17, { v17 }, v2 + WORD $0x4e71ba31 // addv.8h h17, v17 + WORD $0x1e260225 // fmov w5, s17 + WORD $0xd3607dce // lsl x14, x14, #32 + WORD $0xaa0fc1ce // orr x14, x14, x15, lsl #48 + WORD $0x53103dad // lsl w13, w13, #16 + WORD $0xaa0d01cd // orr x13, x14, x13 + WORD $0xaa0c01ac // orr x12, x13, x12 + WORD $0xd3607c8d // lsl x13, x4, #32 + WORD $0xaa05c1ad // orr x13, x13, x5, lsl #48 + WORD $0x53103e2e // lsl w14, w17, #16 + WORD $0xaa0e01ad // orr x13, x13, x14 + WORD $0xaa1001ad // orr x13, x13, x16 + WORD $0xb500044d // cbnz x13, LBB0_130 $136(%rip) + WORD $0xb50004c9 // cbnz x9, LBB0_131 $152(%rip) +LBB0_127: + WORD $0x6e303490 // cmhi.16b v16, v4, v16 + WORD $0x4e211e10 // and.16b v16, v16, v1 + WORD $0x4e020210 // tbl.16b v16, { v16 }, v2 + WORD $0x4e71ba10 // addv.8h h16, v16 + WORD $0x1e26020d // fmov w13, s16 + WORD $0x6e273487 // cmhi.16b v7, v4, v7 + WORD $0x4e211ce7 // and.16b v7, v7, v1 + WORD $0x4e0200e7 // tbl.16b v7, { v7 }, v2 + WORD $0x4e71b8e7 // addv.8h h7, v7 + WORD $0x1e2600ee // fmov w14, s7 + WORD $0x6e263486 // cmhi.16b v6, v4, v6 + WORD $0x4e211cc6 // and.16b v6, v6, v1 + WORD $0x4e0200c6 // tbl.16b v6, { v6 }, v2 + WORD $0x4e71b8c6 // addv.8h h6, v6 + WORD $0x1e2600cf // fmov w15, s6 + WORD $0x6e253485 // cmhi.16b v5, v4, v5 + WORD $0x4e211ca5 // and.16b v5, v5, v1 + WORD $0x4e0200a5 // tbl.16b v5, { v5 }, v2 + WORD $0x4e71b8a5 // addv.8h h5, v5 + WORD $0x1e2600b0 // fmov w16, s5 + WORD $0xd3607def // lsl x15, x15, #32 + WORD $0xaa10c1ef // orr x15, x15, x16, lsl #48 + WORD $0x53103dce // lsl w14, w14, #16 + WORD $0xaa0e01ee // orr x14, x15, x14 + WORD $0xaa0d01cd // orr x13, x14, x13 + WORD $0xb50002ec // cbnz x12, LBB0_132 $92(%rip) + WORD $0xb500cfcd // cbnz x13, LBB0_573 $6648(%rip) + WORD $0xd101014a // sub x10, x10, #64 + WORD $0x9101016b // add x11, x11, #64 + WORD $0xf100fd5f // cmp x10, #63 + WORD $0x54fff568 // b.hi LBB0_125 $-340(%rip) + WORD $0x14000483 // b LBB0_451 $4620(%rip) +LBB0_130: + WORD $0xb100051f // cmn x8, #1 + WORD $0xdac001ae // rbit x14, x13 + WORD $0xdac011ce // clz x14, x14 + WORD $0x8b0b01ce // add x14, x14, x11 + WORD $0x9a8e1108 // csel x8, x8, x14, ne +LBB0_131: + WORD $0x8a2901ae // bic x14, x13, x9 + WORD $0xaa0e052f // orr x15, x9, x14, lsl #1 + WORD $0x8a2f01a9 // bic x9, x13, x15 + WORD $0x9201f129 // and x9, x9, #0xaaaaaaaaaaaaaaaa + WORD $0xab0e012d // adds x13, x9, x14 + WORD $0x1a9f37e9 // cset w9, hs + WORD $0xd37ff9ad // lsl x13, x13, #1 + WORD $0xd200f1ad // eor x13, x13, #0x5555555555555555 + WORD $0x8a0f01ad // and x13, x13, x15 + WORD $0x8a2d018c // bic x12, x12, x13 + WORD $0x17ffffd1 // b LBB0_127 $-188(%rip) +LBB0_132: + WORD $0xdac00189 // rbit x9, x12 + WORD $0xdac01129 // clz x9, x9 + WORD $0xdac001aa // rbit x10, x13 + WORD $0xdac0114a // clz x10, x10 + WORD $0xeb09015f // cmp x10, x9 + WORD $0x5400cc63 // b.lo LBB0_573 $6540(%rip) + WORD $0x8b0b0129 // add x9, x9, x11 + WORD $0x9100052c // add x12, x9, #1 + WORD $0xb7f8ccec // tbnz x12, #63, LBB0_575 $6556(%rip) +LBB0_134: + WORD $0x528000e9 // mov w9, #7 + WORD $0xf9000069 // str x9, [x3] + WORD $0xeb0c011f // cmp x8, x12 + WORD $0xda9fb108 // csinv x8, x8, xzr, lt + WORD $0xa9012062 // stp x2, x8, [x3, #16] + WORD $0xaa0c03e1 // mov x1, x12 + WORD $0x17fffdc5 // b LBB0_24 $-2284(%rip) +LBB0_135: + WORD $0x7100b8bf // cmp w5, #46 + WORD $0x54000aa1 // b.ne LBB0_161 $340(%rip) + WORD $0x9100044f // add x15, x2, #1 + WORD $0x52800111 // mov w17, #8 + WORD $0xf9000071 // str x17, [x3] + WORD $0xeb0101ff // cmp x15, x1 + WORD $0x54001742 // b.hs LBB0_194 $744(%rip) + WORD $0x8b020011 // add x17, x0, x2 + WORD $0x39400631 // ldrb w17, [x17, #1] + WORD $0x5100ea31 // sub w17, w17, #58 + WORD $0x31002e3f // cmn w17, #11 + WORD $0x54001328 // b.hi LBB0_186 $612(%rip) + WORD $0x92800028 // mov x8, #-2 + WORD $0xf9000068 // str x8, [x3] + WORD $0xaa0f03e1 // mov x1, x15 + WORD $0x17fffdb5 // b LBB0_24 $-2348(%rip) +LBB0_139: + WORD $0xaa0c0169 // orr x9, x11, x12 + WORD $0xb7f80ae9 // tbnz x9, #63, LBB0_168 $348(%rip) + WORD $0xeb0c017f // cmp x11, x12 + WORD $0x54000aab // b.lt LBB0_168 $340(%rip) + WORD $0xaa2b03ef // mvn x15, x11 +LBB0_142: + WORD $0xaa2f03e9 // mvn x9, x15 + WORD $0x8b090108 // add x8, x8, x9 +LBB0_143: + WORD $0xcb000101 // sub x1, x8, x0 + WORD $0x9280002a // mov x10, #-2 +LBB0_144: + WORD $0xf900006a // str x10, [x3] + WORD $0x17fffdaa // b LBB0_24 $-2392(%rip) +LBB0_145: + WORD $0xaa0d03f0 // mov x16, x13 + WORD $0x9280000f // mov x15, #-1 + WORD $0xb5ffcf8b // cbnz x11, LBB0_75 $-1552(%rip) + WORD $0x17fffff7 // b LBB0_142 $-36(%rip) +LBB0_146: + WORD $0x12001d08 // and w8, w8, #0xff + WORD $0x7101b91f // cmp w8, #110 + WORD $0x540003c1 // b.ne LBB0_154 $120(%rip) + WORD $0x91000541 // add x1, x10, #1 + WORD $0x38616808 // ldrb w8, [x0, x1] + WORD $0x7101d51f // cmp w8, #117 + WORD $0x540005c1 // b.ne LBB0_160 $184(%rip) + WORD $0x91000941 // add x1, x10, #2 + WORD $0x38616808 // ldrb w8, [x0, x1] + WORD $0x7101b11f // cmp w8, #108 + WORD $0x54000541 // b.ne LBB0_160 $168(%rip) + WORD $0x91000d48 // add x8, x10, #3 + WORD $0x38686809 // ldrb w9, [x0, x8] + WORD $0x9100114a // add x10, x10, #4 + WORD $0x7101b13f // cmp w9, #108 + WORD $0x14000024 // b LBB0_159 $144(%rip) +LBB0_150: + WORD $0x12001d08 // and w8, w8, #0xff + WORD $0x7101d11f // cmp w8, #116 + WORD $0x540001c1 // b.ne LBB0_154 $56(%rip) + WORD $0x91000541 // add x1, x10, #1 + WORD $0x38616808 // ldrb w8, [x0, x1] + WORD $0x7101c91f // cmp w8, #114 + WORD $0x540003c1 // b.ne LBB0_160 $120(%rip) + WORD $0x91000941 // add x1, x10, #2 + WORD $0x38616808 // ldrb w8, [x0, x1] + WORD $0x7101d51f // cmp w8, #117 + WORD $0x54000341 // b.ne LBB0_160 $104(%rip) + WORD $0x91000d48 // add x8, x10, #3 + WORD $0x38686809 // ldrb w9, [x0, x8] + WORD $0x9100114a // add x10, x10, #4 + WORD $0x7101953f // cmp w9, #101 + WORD $0x14000014 // b LBB0_159 $80(%rip) +LBB0_154: + WORD $0x92800028 // mov x8, #-2 + WORD $0xaa0a03e1 // mov x1, x10 + WORD $0xf9000068 // str x8, [x3] + WORD $0x17fffd82 // b LBB0_24 $-2552(%rip) +LBB0_155: + WORD $0x12001d08 // and w8, w8, #0xff + WORD $0x7101851f // cmp w8, #97 + WORD $0x54000ac1 // b.ne LBB0_184 $344(%rip) + WORD $0x91000941 // add x1, x10, #2 + WORD $0x38616808 // ldrb w8, [x0, x1] + WORD $0x7101b11f // cmp w8, #108 + WORD $0x54000141 // b.ne LBB0_160 $40(%rip) + WORD $0x91000d41 // add x1, x10, #3 + WORD $0x38616808 // ldrb w8, [x0, x1] + WORD $0x7101cd1f // cmp w8, #115 + WORD $0x540000c1 // b.ne LBB0_160 $24(%rip) + WORD $0x91001148 // add x8, x10, #4 + WORD $0x38686809 // ldrb w9, [x0, x8] + WORD $0x9100154a // add x10, x10, #5 + WORD $0x7101953f // cmp w9, #101 +LBB0_159: + WORD $0x9a880141 // csel x1, x10, x8, eq +LBB0_160: + WORD $0x92800028 // mov x8, #-2 + WORD $0xf9000068 // str x8, [x3] + WORD $0x17fffd6f // b LBB0_24 $-2628(%rip) +LBB0_161: + WORD $0x52800031 // mov w17, #1 + WORD $0x7100021f // cmp w16, #0 + WORD $0x1a9fd7ef // cset w15, gt + WORD $0xb500034c // cbnz x12, LBB0_171 $104(%rip) +LBB0_162: + WORD $0x35000330 // cbnz w16, LBB0_171 $100(%rip) + WORD $0xeb01005f // cmp x2, x1 + WORD $0x54000282 // b.hs LBB0_169 $80(%rip) + WORD $0x52800010 // mov w16, #0 + WORD $0x4b010044 // sub w4, w2, w1 +LBB0_165: + WORD $0x3862680c // ldrb w12, [x0, x2] + WORD $0x7100c19f // cmp w12, #48 + WORD $0x54000201 // b.ne LBB0_170 $64(%rip) + WORD $0x91000442 // add x2, x2, #1 + WORD $0x51000610 // sub w16, w16, #1 + WORD $0xeb02003f // cmp x1, x2 + WORD $0x54ffff41 // b.ne LBB0_165 $-24(%rip) + WORD $0xd280000c // mov x12, #0 + WORD $0x1400005e // b LBB0_196 $376(%rip) +LBB0_168: + WORD $0xd37ffd29 // lsr x9, x9, #63 + WORD $0x52000129 // eor w9, w9, #0x1 + WORD $0xd100058e // sub x14, x12, #1 + WORD $0xeb0e017f // cmp x11, x14 + WORD $0x1a9f17eb // cset w11, eq + WORD $0x6a0b013f // tst w9, w11 + WORD $0xda8c01af // csinv x15, x13, x12, eq + WORD $0x17ffff04 // b LBB0_119 $-1008(%rip) +LBB0_169: + WORD $0x52800010 // mov w16, #0 +LBB0_170: + WORD $0x52800004 // mov w4, #0 + WORD $0xd280000c // mov x12, #0 +LBB0_171: + WORD $0xeb01005f // cmp x2, x1 + WORD $0x54000242 // b.hs LBB0_177 $72(%rip) + WORD $0x7100489f // cmp w4, #18 + WORD $0x5400020c // b.gt LBB0_177 $64(%rip) + WORD $0x52800145 // mov w5, #10 +LBB0_174: + WORD $0x38626806 // ldrb w6, [x0, x2] + WORD $0x5100c0c6 // sub w6, w6, #48 + WORD $0x710024df // cmp w6, #9 + WORD $0x54000168 // b.hi LBB0_177 $44(%rip) + WORD $0x9b057d8c // mul x12, x12, x5 + WORD $0x8b26018c // add x12, x12, w6, uxtb + WORD $0x51000610 // sub w16, w16, #1 + WORD $0x91000442 // add x2, x2, #1 + WORD $0xeb01005f // cmp x2, x1 + WORD $0x540000a2 // b.hs LBB0_177 $20(%rip) + WORD $0x11000486 // add w6, w4, #1 + WORD $0x7100489f // cmp w4, #18 + WORD $0xaa0603e4 // mov x4, x6 + WORD $0x54fffe6b // b.lt LBB0_174 $-52(%rip) +LBB0_177: + WORD $0xeb01005f // cmp x2, x1 + WORD $0x54000782 // b.hs LBB0_195 $240(%rip) + WORD $0x38626804 // ldrb w4, [x0, x2] + WORD $0x5100c085 // sub w5, w4, #48 + WORD $0x710024bf // cmp w5, #9 + WORD $0x54000408 // b.hi LBB0_188 $128(%rip) + WORD $0x91000442 // add x2, x2, #1 + WORD $0xeb01005f // cmp x2, x1 + WORD $0x54000100 // b.eq LBB0_182 $32(%rip) +LBB0_180: + WORD $0x38626804 // ldrb w4, [x0, x2] + WORD $0x5100c08f // sub w15, w4, #48 + WORD $0x710025ff // cmp w15, #9 + WORD $0x54000308 // b.hi LBB0_187 $96(%rip) + WORD $0x91000442 // add x2, x2, #1 + WORD $0xeb02003f // cmp x1, x2 + WORD $0x54ffff41 // b.ne LBB0_180 $-24(%rip) +LBB0_182: + WORD $0x5280002f // mov w15, #1 + WORD $0xaa1003e4 // mov x4, x16 + WORD $0x1400002d // b LBB0_196 $180(%rip) +LBB0_183: + WORD $0x91000441 // add x1, x2, #1 + WORD $0x17fffd2a // b LBB0_24 $-2904(%rip) +LBB0_184: + WORD $0x92800028 // mov x8, #-2 + WORD $0xaa0203e1 // mov x1, x2 + WORD $0xf9000068 // str x8, [x3] + WORD $0x17fffd26 // b LBB0_24 $-2920(%rip) +LBB0_185: + WORD $0x5ac000c9 // rbit w9, w6 + WORD $0x5ac01129 // clz w9, w9 + WORD $0xaa2f03eb // mvn x11, x15 + WORD $0xcb09016f // sub x15, x11, x9 + WORD $0x17fffed0 // b LBB0_119 $-1216(%rip) +LBB0_186: + WORD $0x52800011 // mov w17, #0 + WORD $0xaa0f03e2 // mov x2, x15 + WORD $0x7100021f // cmp w16, #0 + WORD $0x1a9fd7ef // cset w15, gt + WORD $0xb4fff64c // cbz x12, LBB0_162 $-312(%rip) + WORD $0x17ffffca // b LBB0_171 $-216(%rip) +LBB0_187: + WORD $0x5280002f // mov w15, #1 +LBB0_188: + WORD $0x321b0084 // orr w4, w4, #0x20 + WORD $0x7101949f // cmp w4, #101 + WORD $0x540002c1 // b.ne LBB0_195 $88(%rip) + WORD $0x91000451 // add x17, x2, #1 + WORD $0x52800104 // mov w4, #8 + WORD $0xf9000064 // str x4, [x3] + WORD $0xeb01023f // cmp x17, x1 + WORD $0x540001c2 // b.hs LBB0_194 $56(%rip) + WORD $0x38716804 // ldrb w4, [x0, x17] + WORD $0x7100b49f // cmp w4, #45 + WORD $0x54000060 // b.eq LBB0_192 $12(%rip) + WORD $0x7100ac9f // cmp w4, #43 + WORD $0x54002701 // b.ne LBB0_263 $1248(%rip) +LBB0_192: + WORD $0x91000851 // add x17, x2, #2 + WORD $0xeb01023f // cmp x17, x1 + WORD $0x540000c2 // b.hs LBB0_194 $24(%rip) + WORD $0x7100ac9f // cmp w4, #43 + WORD $0x52800022 // mov w2, #1 + WORD $0x5a820442 // cneg w2, w2, ne + WORD $0x38716804 // ldrb w4, [x0, x17] + WORD $0x14000131 // b LBB0_264 $1220(%rip) +LBB0_194: + WORD $0x92800008 // mov x8, #-1 + WORD $0xf9000068 // str x8, [x3] + WORD $0x17fffd02 // b LBB0_24 $-3064(%rip) +LBB0_195: + WORD $0xaa1003e4 // mov x4, x16 + WORD $0xaa0203e1 // mov x1, x2 +LBB0_196: + WORD $0x34000151 // cbz w17, LBB0_201 $40(%rip) + WORD $0x350000e4 // cbnz w4, LBB0_200 $28(%rip) + WORD $0x93407dd0 // sxtw x16, w14 + WORD $0xb6f80e6c // tbz x12, #63, LBB0_223 $460(%rip) + WORD $0x8a100191 // and x17, x12, x16 + WORD $0xd2f00000 // mov x0, #-9223372036854775808 + WORD $0xeb00023f // cmp x17, x0 + WORD $0x54000de0 // b.eq LBB0_223 $444(%rip) +LBB0_200: + WORD $0x52800110 // mov w16, #8 + WORD $0xf9000070 // str x16, [x3] +LBB0_201: + WORD $0xd374fd90 // lsr x16, x12, #52 + WORD $0xb5000590 // cbnz x16, LBB0_211 $176(%rip) + WORD $0x9e630180 // ucvtf d0, x12 + WORD $0x531f7dce // lsr w14, w14, #31 + WORD $0x9e660010 // fmov x16, d0 + WORD $0xaa0efe0e // orr x14, x16, x14, lsl #63 + WORD $0x9e6701c0 // fmov d0, x14 + WORD $0xb400284c // cbz x12, LBB0_278 $1288(%rip) + WORD $0x34002824 // cbz w4, LBB0_278 $1284(%rip) + WORD $0x5100048e // sub w14, w4, #1 + WORD $0x710091df // cmp w14, #36 + WORD $0x54000348 // b.hi LBB0_209 $104(%rip) + WORD $0xaa0403ee // mov x14, x4 + WORD $0x71005c9f // cmp w4, #23 + WORD $0x540000e3 // b.lo LBB0_207 $28(%rip) + WORD $0x5100588e // sub w14, w4, #22 +Lloh14: + WORD $0x1000baf0 // adr x16, _P10_TAB $5980(%rip) +Lloh15: + WORD $0x91000210 // add x16, x16, _P10_TAB@PAGEOFF $0(%rip) + WORD $0xfc6e5a01 // ldr d1, [x16, w14, uxtw #3] + WORD $0x1e600820 // fmul d0, d1, d0 + WORD $0x528002ce // mov w14, #22 +LBB0_207: + WORD $0xd2a4c690 // mov x16, #640942080 + WORD $0xf2cd7eb0 // movk x16, #27637, lsl #32 + WORD $0xf2e86190 // movk x16, #17164, lsl #48 + WORD $0x9e670201 // fmov d1, x16 + WORD $0x1e612000 // fcmp d0, d1 + WORD $0xd2a4c690 // mov x16, #640942080 + WORD $0xf2cd7eb0 // movk x16, #27637, lsl #32 + WORD $0xf2f86190 // movk x16, #49932, lsl #48 + WORD $0x9e670201 // fmov d1, x16 + WORD $0x1e61d408 // fccmp d0, d1, #8, le + WORD $0x54000224 // b.mi LBB0_212 $68(%rip) +Lloh16: + WORD $0x1000b8e8 // adr x8, _P10_TAB $5916(%rip) +Lloh17: + WORD $0x91000108 // add x8, x8, _P10_TAB@PAGEOFF $0(%rip) + WORD $0xfc6e5901 // ldr d1, [x8, w14, uxtw #3] + WORD $0x1e610800 // fmul d0, d0, d1 + WORD $0x14000125 // b LBB0_278 $1172(%rip) +LBB0_209: + WORD $0x3100589f // cmn w4, #22 + WORD $0x540000e3 // b.lo LBB0_211 $28(%rip) + WORD $0x4b0403e8 // neg w8, w4 +Lloh18: + WORD $0x1000b7e9 // adr x9, _P10_TAB $5884(%rip) +Lloh19: + WORD $0x91000129 // add x9, x9, _P10_TAB@PAGEOFF $0(%rip) + WORD $0xfc685921 // ldr d1, [x9, w8, uxtw #3] + WORD $0x1e611800 // fdiv d0, d0, d1 + WORD $0x1400011d // b LBB0_278 $1140(%rip) +LBB0_211: + WORD $0x5105708e // sub w14, w4, #348 + WORD $0x310ae1df // cmn w14, #696 + WORD $0x54000663 // b.lo LBB0_218 $204(%rip) +LBB0_212: + WORD $0xdac01180 // clz x0, x12 + WORD $0x9ac02186 // lsl x6, x12, x0 + WORD $0x1105708e // add w14, w4, #348 +Lloh20: + WORD $0x1000bc50 // adr x16, _POW10_M128_TAB $6024(%rip) +Lloh21: + WORD $0x91000210 // add x16, x16, _POW10_M128_TAB@PAGEOFF $0(%rip) + WORD $0x8b2e520e // add x14, x16, w14, uxtw #4 + WORD $0xf94005d0 // ldr x16, [x14, #8] + WORD $0x9b067e11 // mul x17, x16, x6 + WORD $0x9bc67e02 // umulh x2, x16, x6 + WORD $0x92402045 // and x5, x2, #0x1ff + WORD $0xaa2603e7 // mvn x7, x6 + WORD $0xeb07023f // cmp x17, x7 + WORD $0x540001c9 // b.ls LBB0_216 $56(%rip) + WORD $0xf107fcbf // cmp x5, #511 + WORD $0x54000181 // b.ne LBB0_216 $48(%rip) + WORD $0xf94001c5 // ldr x5, [x14] + WORD $0x9b067cb3 // mul x19, x5, x6 + WORD $0x9bc67ca5 // umulh x5, x5, x6 + WORD $0xab1100b1 // adds x17, x5, x17 + WORD $0x9a823442 // cinc x2, x2, hs + WORD $0x92402045 // and x5, x2, #0x1ff + WORD $0xeb07027f // cmp x19, x7 + WORD $0xba418a20 // ccmn x17, #1, #0, hi + WORD $0x54000061 // b.ne LBB0_216 $12(%rip) + WORD $0xf107fcbf // cmp x5, #511 + WORD $0x54000320 // b.eq LBB0_218 $100(%rip) +LBB0_216: + WORD $0xd37ffc46 // lsr x6, x2, #63 + WORD $0x910024c7 // add x7, x6, #9 + WORD $0x9ac72442 // lsr x2, x2, x7 + WORD $0xaa1100b1 // orr x17, x5, x17 + WORD $0x92400445 // and x5, x2, #0x3 + WORD $0xf100023f // cmp x17, #0 + WORD $0xfa4108a0 // ccmp x5, #1, #0, eq + WORD $0x54000220 // b.eq LBB0_218 $68(%rip) + WORD $0x528a4d51 // mov w17, #21098 + WORD $0x72a00071 // movk w17, #3, lsl #16 + WORD $0x1b117c91 // mul w17, w4, w17 + WORD $0x13107e31 // asr w17, w17, #16 + WORD $0x1110fe31 // add w17, w17, #1087 + WORD $0x93407e31 // sxtw x17, w17 + WORD $0xcb000220 // sub x0, x17, x0 + WORD $0x8b0000c4 // add x4, x6, x0 + WORD $0x92400040 // and x0, x2, #0x1 + WORD $0x8b020000 // add x0, x0, x2 + WORD $0xd376fc02 // lsr x2, x0, #54 + WORD $0xf100005f // cmp x2, #0 + WORD $0x9a840484 // cinc x4, x4, ne + WORD $0xd1200085 // sub x5, x4, #2048 + WORD $0xb11ff8bf // cmn x5, #2046 + WORD $0x54000fc2 // b.hs LBB0_253 $504(%rip) +LBB0_218: + WORD $0xcb0a002e // sub x14, x1, x10 + WORD $0xb4000569 // cbz x9, LBB0_233 $172(%rip) + WORD $0xf100213f // cmp x9, #8 + WORD $0x54000062 // b.hs LBB0_221 $12(%rip) + WORD $0xd280000a // mov x10, #0 + WORD $0x14000022 // b LBB0_231 $136(%rip) +LBB0_221: + WORD $0xf101013f // cmp x9, #64 + WORD $0x54000142 // b.hs LBB0_224 $40(%rip) + WORD $0xd280000a // mov x10, #0 + WORD $0x14000014 // b LBB0_228 $80(%rip) +LBB0_223: + WORD $0x9e630180 // ucvtf d0, x12 + WORD $0x9b107d88 // mul x8, x12, x16 + WORD $0x92410209 // and x9, x16, #0x8000000000000000 + WORD $0x9e66000a // fmov x10, d0 + WORD $0xaa0a0129 // orr x9, x9, x10 + WORD $0xa900a069 // stp x9, x8, [x3, #8] + WORD $0x17fffc83 // b LBB0_24 $-3572(%rip) +LBB0_224: + WORD $0x927ae52a // and x10, x9, #0xffffffffffffffc0 + WORD $0x9100810b // add x11, x8, #32 + WORD $0x6f00e400 // movi.2d v0, #0000000000000000 + WORD $0xaa0a03ec // mov x12, x10 +LBB0_225: + WORD $0xad3f0160 // stp q0, q0, [x11, #-32] + WORD $0xac820160 // stp q0, q0, [x11], #64 + WORD $0xf101018c // subs x12, x12, #64 + WORD $0x54ffffa1 // b.ne LBB0_225 $-12(%rip) + WORD $0xeb0a013f // cmp x9, x10 + WORD $0x54000240 // b.eq LBB0_233 $72(%rip) + WORD $0xf27d093f // tst x9, #0x38 + WORD $0x54000160 // b.eq LBB0_231 $44(%rip) +LBB0_228: + WORD $0xaa0a03ec // mov x12, x10 + WORD $0x927df12a // and x10, x9, #0xfffffffffffffff8 + WORD $0x8b0c010b // add x11, x8, x12 + WORD $0xcb0a018c // sub x12, x12, x10 + WORD $0x6f00e400 // movi.2d v0, #0000000000000000 +LBB0_229: + WORD $0xfc008560 // str d0, [x11], #8 + WORD $0xb100218c // adds x12, x12, #8 + WORD $0x54ffffc1 // b.ne LBB0_229 $-8(%rip) + WORD $0xeb0a013f // cmp x9, x10 + WORD $0x540000c0 // b.eq LBB0_233 $24(%rip) +LBB0_231: + WORD $0x8b0a010b // add x11, x8, x10 + WORD $0xcb0a012a // sub x10, x9, x10 +LBB0_232: + WORD $0x3800157f // strb wzr, [x11], #1 + WORD $0xf100054a // subs x10, x10, #1 + WORD $0x54ffffc1 // b.ne LBB0_232 $-8(%rip) +LBB0_233: + WORD $0x394001aa // ldrb w10, [x13] + WORD $0x7100b55f // cmp w10, #45 + WORD $0x1a9f17ef // cset w15, eq + WORD $0xeb0f01df // cmp x14, x15 + WORD $0x5400160d // b.le LBB0_276 $704(%rip) + WORD $0x5280000c // mov w12, #0 + WORD $0x5280000b // mov w11, #0 + WORD $0x52800007 // mov w7, #0 + WORD $0x52800010 // mov w16, #0 + WORD $0x14000006 // b LBB0_237 $24(%rip) +LBB0_235: + WORD $0x38206911 // strb w17, [x8, x0] + WORD $0x110004e7 // add w7, w7, #1 +LBB0_236: + WORD $0x910005ef // add x15, x15, #1 + WORD $0xeb0f01df // cmp x14, x15 + WORD $0x5400032d // b.le LBB0_246 $100(%rip) +LBB0_237: + WORD $0x386f69b1 // ldrb w17, [x13, x15] + WORD $0x5100c220 // sub w0, w17, #48 + WORD $0x7100241f // cmp w0, #9 + WORD $0x54000108 // b.hi LBB0_241 $32(%rip) + WORD $0x7100c23f // cmp w17, #48 + WORD $0x54000161 // b.ne LBB0_243 $44(%rip) + WORD $0x34000207 // cbz w7, LBB0_245 $64(%rip) + WORD $0x93407ce0 // sxtw x0, w7 + WORD $0xeb00013f // cmp x9, x0 + WORD $0x54fffe48 // b.hi LBB0_235 $-56(%rip) + WORD $0x17fffff3 // b LBB0_236 $-52(%rip) +LBB0_241: + WORD $0x7100ba3f // cmp w17, #46 + WORD $0x540001e1 // b.ne LBB0_247 $60(%rip) + WORD $0x5280002c // mov w12, #1 + WORD $0xaa0703f0 // mov x16, x7 + WORD $0x17ffffee // b LBB0_236 $-72(%rip) +LBB0_243: + WORD $0xaa0703e0 // mov x0, x7 + WORD $0x93407ce0 // sxtw x0, w7 + WORD $0xeb00013f // cmp x9, x0 + WORD $0x54fffd08 // b.hi LBB0_235 $-96(%rip) + WORD $0x5280002b // mov w11, #1 + WORD $0x17ffffe8 // b LBB0_236 $-96(%rip) +LBB0_245: + WORD $0x51000610 // sub w16, w16, #1 + WORD $0x17ffffe6 // b LBB0_236 $-104(%rip) +LBB0_246: + WORD $0x7100019f // cmp w12, #0 + WORD $0x1a9000ec // csel w12, w7, w16, eq + WORD $0x14000083 // b LBB0_272 $524(%rip) +LBB0_247: + WORD $0x7100019f // cmp w12, #0 + WORD $0x1a9000ec // csel w12, w7, w16, eq + WORD $0x386f69b0 // ldrb w16, [x13, x15] + WORD $0x321b0210 // orr w16, w16, #0x20 + WORD $0x7101961f // cmp w16, #101 + WORD $0x54000fa1 // b.ne LBB0_272 $500(%rip) + WORD $0x910005f0 // add x16, x15, #1 + WORD $0x387049b1 // ldrb w17, [x13, w16, uxtw] + WORD $0x110009e0 // add w0, w15, #2 + WORD $0x52800022 // mov w2, #1 + WORD $0x110009ef // add w15, w15, #2 + WORD $0x12800004 // mov w4, #-1 + WORD $0x52800025 // mov w5, #1 + WORD $0x7100b63f // cmp w17, #45 + WORD $0x1a9001ef // csel w15, w15, w16, eq + WORD $0x1a850090 // csel w16, w4, w5, eq + WORD $0x7100ae3f // cmp w17, #43 + WORD $0x1a8f0011 // csel w17, w0, w15, eq + WORD $0x1a90004f // csel w15, w2, w16, eq + WORD $0x93407e31 // sxtw x17, w17 + WORD $0xeb1101df // cmp x14, x17 + WORD $0x54000d6d // b.le LBB0_270 $428(%rip) + WORD $0x52800010 // mov w16, #0 + WORD $0x5284e1e0 // mov w0, #9999 + WORD $0x52800142 // mov w2, #10 +LBB0_250: + WORD $0x38f169a4 // ldrsb w4, [x13, x17] + WORD $0x7100c09f // cmp w4, #48 + WORD $0x54000ccb // b.lt LBB0_271 $408(%rip) + WORD $0x12001c84 // and w4, w4, #0xff + WORD $0x7100e49f // cmp w4, #57 + WORD $0x7a409200 // ccmp w16, w0, #0, ls + WORD $0x54000c4c // b.gt LBB0_271 $392(%rip) + WORD $0x1b027e10 // mul w16, w16, w2 + WORD $0x5100c084 // sub w4, w4, #48 + WORD $0x0b240210 // add w16, w16, w4, uxtb + WORD $0x91000631 // add x17, x17, #1 + WORD $0xeb1101df // cmp x14, x17 + WORD $0x54fffe8c // b.gt LBB0_250 $-48(%rip) + WORD $0x1400005b // b LBB0_271 $364(%rip) +LBB0_253: + WORD $0xd1000484 // sub x4, x4, #1 + WORD $0xf100005f // cmp x2, #0 + WORD $0x52800022 // mov w2, #1 + WORD $0x9a820442 // cinc x2, x2, ne + WORD $0x9ac22400 // lsr x0, x0, x2 + WORD $0xb34c2c80 // bfi x0, x4, #52, #12 + WORD $0xb2410002 // orr x2, x0, #0x8000000000000000 + WORD $0x7100b57f // cmp w11, #45 + WORD $0x9a800040 // csel x0, x2, x0, eq + WORD $0x9e670000 // fmov d0, x0 + WORD $0x34000c0f // cbz w15, LBB0_278 $384(%rip) + WORD $0x9100058f // add x15, x12, #1 + WORD $0xdac011ec // clz x12, x15 + WORD $0x9acc21e2 // lsl x2, x15, x12 + WORD $0x9b027e0f // mul x15, x16, x2 + WORD $0x9bc27e10 // umulh x16, x16, x2 + WORD $0x92402200 // and x0, x16, #0x1ff + WORD $0xaa2203e4 // mvn x4, x2 + WORD $0xeb0401ff // cmp x15, x4 + WORD $0x540001e9 // b.ls LBB0_259 $60(%rip) + WORD $0xf107fc1f // cmp x0, #511 + WORD $0x540001a1 // b.ne LBB0_259 $52(%rip) + WORD $0xf94001ce // ldr x14, [x14] + WORD $0x9b027dc5 // mul x5, x14, x2 + WORD $0x9bc27dce // umulh x14, x14, x2 + WORD $0xab0f01cf // adds x15, x14, x15 + WORD $0x9a903610 // cinc x16, x16, hs + WORD $0x92402200 // and x0, x16, #0x1ff + WORD $0xeb0400bf // cmp x5, x4 + WORD $0x540000a9 // b.ls LBB0_259 $20(%rip) + WORD $0xb10005ff // cmn x15, #1 + WORD $0x54000061 // b.ne LBB0_259 $12(%rip) + WORD $0xf107fc1f // cmp x0, #511 + WORD $0x54ffec40 // b.eq LBB0_218 $-632(%rip) +LBB0_259: + WORD $0xd37ffe0e // lsr x14, x16, #63 + WORD $0x910025c2 // add x2, x14, #9 + WORD $0x9ac22610 // lsr x16, x16, x2 + WORD $0xaa0f000f // orr x15, x0, x15 + WORD $0xb500008f // cbnz x15, LBB0_261 $16(%rip) + WORD $0x9240060f // and x15, x16, #0x3 + WORD $0xf10005ff // cmp x15, #1 + WORD $0x54ffeb40 // b.eq LBB0_218 $-664(%rip) +LBB0_261: + WORD $0xcb0c022c // sub x12, x17, x12 + WORD $0x8b0c01cf // add x15, x14, x12 + WORD $0x9240020c // and x12, x16, #0x1 + WORD $0x8b10018c // add x12, x12, x16 + WORD $0xd376fd8e // lsr x14, x12, #54 + WORD $0xf10001df // cmp x14, #0 + WORD $0x9a8f05ef // cinc x15, x15, ne + WORD $0xd12001f0 // sub x16, x15, #2048 + WORD $0xb11ffa1f // cmn x16, #2046 + WORD $0x54ffea03 // b.lo LBB0_218 $-704(%rip) + WORD $0xd10005ef // sub x15, x15, #1 + WORD $0xf10001df // cmp x14, #0 + WORD $0x5280002e // mov w14, #1 + WORD $0x9a8e05ce // cinc x14, x14, ne + WORD $0x9ace258c // lsr x12, x12, x14 + WORD $0xb34c2dec // bfi x12, x15, #52, #12 + WORD $0xb241018e // orr x14, x12, #0x8000000000000000 + WORD $0x7100b57f // cmp w11, #45 + WORD $0x9a8c01cb // csel x11, x14, x12, eq + WORD $0x9e670161 // fmov d1, x11 + WORD $0x1e602020 // fcmp d1, d0 + WORD $0x54000560 // b.eq LBB0_278 $172(%rip) + WORD $0x17ffff43 // b LBB0_218 $-756(%rip) +LBB0_263: + WORD $0x52800022 // mov w2, #1 +LBB0_264: + WORD $0x5100e884 // sub w4, w4, #58 + WORD $0x3100289f // cmn w4, #10 + WORD $0x540000a2 // b.hs LBB0_266 $20(%rip) + WORD $0x92800028 // mov x8, #-2 + WORD $0xf9000068 // str x8, [x3] + WORD $0xaa1103e1 // mov x1, x17 + WORD $0x17fffbce // b LBB0_24 $-4296(%rip) +LBB0_266: + WORD $0x52800004 // mov w4, #0 + WORD $0x52800145 // mov w5, #10 + WORD $0x5284e206 // mov w6, #10000 +LBB0_267: + WORD $0x38716807 // ldrb w7, [x0, x17] + WORD $0x5100c0e7 // sub w7, w7, #48 + WORD $0x710024ff // cmp w7, #9 + WORD $0x54001d28 // b.hi LBB0_339 $932(%rip) + WORD $0x1b057c93 // mul w19, w4, w5 + WORD $0x0b270267 // add w7, w19, w7, uxtb + WORD $0x6b06009f // cmp w4, w6 + WORD $0x1a84b0e4 // csel w4, w7, w4, lt + WORD $0x91000631 // add x17, x17, #1 + WORD $0xeb11003f // cmp x1, x17 + WORD $0x54fffec1 // b.ne LBB0_267 $-40(%rip) + WORD $0x1b024084 // madd w4, w4, w2, w16 + WORD $0x17fffec9 // b LBB0_201 $-1244(%rip) +LBB0_270: + WORD $0x52800010 // mov w16, #0 +LBB0_271: + WORD $0x1b0f320c // madd w12, w16, w15, w12 +LBB0_272: + WORD $0x34000107 // cbz w7, LBB0_276 $32(%rip) + WORD $0x7104d99f // cmp w12, #310 + WORD $0x5400008d // b.le LBB0_275 $16(%rip) +LBB0_274: + WORD $0xd2800008 // mov x8, #0 + WORD $0xd2effe09 // mov x9, #9218868437227405312 + WORD $0x14000005 // b LBB0_277 $20(%rip) +LBB0_275: + WORD $0x3105299f // cmn w12, #330 + WORD $0x5400022a // b.ge LBB0_281 $68(%rip) +LBB0_276: + WORD $0xd2800009 // mov x9, #0 + WORD $0xd2800008 // mov x8, #0 +LBB0_277: + WORD $0xaa090108 // orr x8, x8, x9 + WORD $0xb2410109 // orr x9, x8, #0x8000000000000000 + WORD $0x7100b55f // cmp w10, #45 + WORD $0x9a880128 // csel x8, x9, x8, eq + WORD $0x9e670100 // fmov d0, x8 +LBB0_278: + WORD $0x9e660008 // fmov x8, d0 + WORD $0x9240f908 // and x8, x8, #0x7fffffffffffffff + WORD $0xd2effe09 // mov x9, #9218868437227405312 + WORD $0xeb09011f // cmp x8, x9 + WORD $0x54000061 // b.ne LBB0_280 $12(%rip) + WORD $0x928000e8 // mov x8, #-8 + WORD $0xf9000068 // str x8, [x3] +LBB0_280: + WORD $0xfd000460 // str d0, [x3, #8] + WORD $0x17fffba4 // b LBB0_24 $-4464(%rip) +LBB0_281: + WORD $0xb201e7ed // mov x13, #-7378697629483820647 + WORD $0xf293334d // movk x13, #39322 + WORD $0xf2e0332d // movk x13, #409, lsl #48 +Lloh22: + WORD $0x1001f490 // adr x16, _POW_TAB $16016(%rip) +Lloh23: + WORD $0x91000210 // add x16, x16, _POW_TAB@PAGEOFF $0(%rip) + WORD $0x7100059f // cmp w12, #1 + WORD $0x5400184b // b.lt LBB0_340 $776(%rip) + WORD $0x5280000f // mov w15, #0 + WORD $0xd100050e // sub x14, x8, #1 + WORD $0x92800011 // mov x17, #-1 + WORD $0x52800140 // mov w0, #10 + WORD $0x1400000e // b LBB0_288 $56(%rip) +LBB0_283: + WORD $0xaa2f03e9 // mvn x9, x15 + WORD $0xcb25412f // sub x15, x9, w5, uxtw + WORD $0x17fffd44 // b LBB0_119 $-2800(%rip) +LBB0_284: + WORD $0xaa2f03e9 // mvn x9, x15 + WORD $0xcb24412f // sub x15, x9, w4, uxtw + WORD $0x17fffd41 // b LBB0_119 $-2812(%rip) +LBB0_285: + WORD $0xaa2f03e9 // mvn x9, x15 + WORD $0xcb22412f // sub x15, x9, w2, uxtw + WORD $0x17fffd3e // b LBB0_119 $-2824(%rip) +LBB0_286: + WORD $0x340015a7 // cbz w7, LBB0_338 $692(%rip) +LBB0_287: + WORD $0x0b0f004f // add w15, w2, w15 + WORD $0x7100019f // cmp w12, #0 + WORD $0x5400162d // b.le LBB0_341 $708(%rip) +LBB0_288: + WORD $0x7100219f // cmp w12, #8 + WORD $0x540000a9 // b.ls LBB0_291 $20(%rip) + WORD $0x52800362 // mov w2, #27 + WORD $0x34ffff47 // cbz w7, LBB0_287 $-24(%rip) + WORD $0x12800346 // mov w6, #-27 + WORD $0x14000006 // b LBB0_293 $24(%rip) +LBB0_291: + WORD $0xb86c5a02 // ldr w2, [x16, w12, uxtw #2] + WORD $0x34fffec7 // cbz w7, LBB0_287 $-40(%rip) + WORD $0x4b0203e6 // neg w6, w2 + WORD $0x3100f4df // cmn w6, #61 + WORD $0x54000469 // b.ls LBB0_302 $140(%rip) +LBB0_293: + WORD $0xd2800013 // mov x19, #0 + WORD $0xd2800005 // mov x5, #0 + WORD $0x4b0603e4 // neg w4, w6 + WORD $0x0aa77ce6 // bic w6, w7, w7, asr #31 +LBB0_294: + WORD $0xeb1300df // cmp x6, x19 + WORD $0x54000c80 // b.eq LBB0_321 $400(%rip) + WORD $0x38b36914 // ldrsb x20, [x8, x19] + WORD $0x9b0050a5 // madd x5, x5, x0, x20 + WORD $0xd100c0a5 // sub x5, x5, #48 + WORD $0x91000673 // add x19, x19, #1 + WORD $0x9ac424b4 // lsr x20, x5, x4 + WORD $0xb4ffff34 // cbz x20, LBB0_294 $-28(%rip) +LBB0_297: + WORD $0x9ac42226 // lsl x6, x17, x4 + WORD $0xaa2603e6 // mvn x6, x6 + WORD $0x6b1300e7 // subs w7, w7, w19 + WORD $0x54000c6d // b.le LBB0_324 $396(%rip) + WORD $0xaa0703f4 // mov x20, x7 + WORD $0xaa0803f5 // mov x21, x8 +LBB0_299: + WORD $0x9ac424b6 // lsr x22, x5, x4 + WORD $0x8a0600a5 // and x5, x5, x6 + WORD $0x1100c2d6 // add w22, w22, #48 + WORD $0x390002b6 // strb w22, [x21] + WORD $0x38b3cab6 // ldrsb x22, [x21, w19, sxtw] + WORD $0x9b0058a5 // madd x5, x5, x0, x22 + WORD $0xd100c0a5 // sub x5, x5, #48 + WORD $0x910006b5 // add x21, x21, #1 + WORD $0xf1000694 // subs x20, x20, #1 + WORD $0x54fffee1 // b.ne LBB0_299 $-36(%rip) + WORD $0x14000057 // b LBB0_325 $348(%rip) +LBB0_300: + WORD $0x710000ff // cmp w7, #0 + WORD $0x1a8c03ec // csel w12, wzr, w12, eq +LBB0_301: + WORD $0x1100f086 // add w6, w4, #60 + WORD $0x3101e09f // cmn w4, #120 + WORD $0x54fffbea // b.ge LBB0_293 $-132(%rip) +LBB0_302: + WORD $0xd2800014 // mov x20, #0 + WORD $0xd2800013 // mov x19, #0 + WORD $0xaa0603e4 // mov x4, x6 + WORD $0x0aa77ce6 // bic w6, w7, w7, asr #31 + WORD $0xaa0603e5 // mov x5, x6 +LBB0_303: + WORD $0xeb1400df // cmp x6, x20 + WORD $0x54000140 // b.eq LBB0_306 $40(%rip) + WORD $0x38b46915 // ldrsb x21, [x8, x20] + WORD $0x9b005673 // madd x19, x19, x0, x21 + WORD $0xd100c273 // sub x19, x19, #48 + WORD $0x91000694 // add x20, x20, #1 + WORD $0xd37cfe75 // lsr x21, x19, #60 + WORD $0xb4ffff35 // cbz x21, LBB0_303 $-28(%rip) + WORD $0xaa1303e6 // mov x6, x19 + WORD $0xaa1403e5 // mov x5, x20 + WORD $0x14000008 // b LBB0_308 $32(%rip) +LBB0_306: + WORD $0xb40006b3 // cbz x19, LBB0_320 $212(%rip) +LBB0_307: + WORD $0x8b130a66 // add x6, x19, x19, lsl #2 + WORD $0xd37ff8c6 // lsl x6, x6, #1 + WORD $0x110004a5 // add w5, w5, #1 + WORD $0xeb0d027f // cmp x19, x13 + WORD $0xaa0603f3 // mov x19, x6 + WORD $0x54ffff63 // b.lo LBB0_307 $-20(%rip) +LBB0_308: + WORD $0x6b0500e7 // subs w7, w7, w5 + WORD $0x540001cd // b.le LBB0_311 $56(%rip) + WORD $0xaa0703f3 // mov x19, x7 + WORD $0xaa0803f4 // mov x20, x8 +LBB0_310: + WORD $0xd37cfcd5 // lsr x21, x6, #60 + WORD $0x9240ecc6 // and x6, x6, #0xfffffffffffffff + WORD $0x321c06b5 // orr w21, w21, #0x30 + WORD $0x39000295 // strb w21, [x20] + WORD $0x38a5ca95 // ldrsb x21, [x20, w5, sxtw] + WORD $0x9b0054c6 // madd x6, x6, x0, x21 + WORD $0xd100c0c6 // sub x6, x6, #48 + WORD $0x91000694 // add x20, x20, #1 + WORD $0xf1000673 // subs x19, x19, #1 + WORD $0x54fffee1 // b.ne LBB0_310 $-36(%rip) + WORD $0x14000002 // b LBB0_312 $8(%rip) +LBB0_311: + WORD $0x52800007 // mov w7, #0 +LBB0_312: + WORD $0xb5000126 // cbnz x6, LBB0_314 $36(%rip) + WORD $0x14000013 // b LBB0_316 $76(%rip) +LBB0_313: + WORD $0xd37cfcd3 // lsr x19, x6, #60 + WORD $0xf100027f // cmp x19, #0 + WORD $0x1a9f056b // csinc w11, w11, wzr, eq + WORD $0x9240ecd3 // and x19, x6, #0xfffffffffffffff + WORD $0x8b130a66 // add x6, x19, x19, lsl #2 + WORD $0xd37ff8c6 // lsl x6, x6, #1 + WORD $0xb4000193 // cbz x19, LBB0_316 $48(%rip) +LBB0_314: + WORD $0x93407cf3 // sxtw x19, w7 + WORD $0xeb13013f // cmp x9, x19 + WORD $0x54fffee9 // b.ls LBB0_313 $-36(%rip) + WORD $0xd37cfcd4 // lsr x20, x6, #60 + WORD $0x321c0694 // orr w20, w20, #0x30 + WORD $0x38336914 // strb w20, [x8, x19] + WORD $0x110004e7 // add w7, w7, #1 + WORD $0x9240ecd3 // and x19, x6, #0xfffffffffffffff + WORD $0x8b130a66 // add x6, x19, x19, lsl #2 + WORD $0xd37ff8c6 // lsl x6, x6, #1 + WORD $0xb5fffed3 // cbnz x19, LBB0_314 $-40(%rip) +LBB0_316: + WORD $0x4b05018c // sub w12, w12, w5 + WORD $0x1100058c // add w12, w12, #1 + WORD $0x710004ff // cmp w7, #1 + WORD $0x54fff7ab // b.lt LBB0_300 $-268(%rip) +LBB0_317: + WORD $0x386749c5 // ldrb w5, [x14, w7, uxtw] + WORD $0x7100c0bf // cmp w5, #48 + WORD $0x54fff781 // b.ne LBB0_301 $-272(%rip) + WORD $0x710004e7 // subs w7, w7, #1 + WORD $0x54ffff8c // b.gt LBB0_317 $-16(%rip) + WORD $0x5280000c // mov w12, #0 +LBB0_320: + WORD $0x52800007 // mov w7, #0 + WORD $0x17ffffb7 // b LBB0_301 $-292(%rip) +LBB0_321: + WORD $0xb4000565 // cbz x5, LBB0_334 $172(%rip) + WORD $0x9ac424b3 // lsr x19, x5, x4 + WORD $0xb4000573 // cbz x19, LBB0_335 $172(%rip) + WORD $0x52800007 // mov w7, #0 + WORD $0x4b06018c // sub w12, w12, w6 + WORD $0x1100058c // add w12, w12, #1 + WORD $0x9ac42226 // lsl x6, x17, x4 + WORD $0xaa2603e6 // mvn x6, x6 + WORD $0x14000005 // b LBB0_326 $20(%rip) +LBB0_324: + WORD $0x52800007 // mov w7, #0 +LBB0_325: + WORD $0x4b13018c // sub w12, w12, w19 + WORD $0x1100058c // add w12, w12, #1 + WORD $0xb40002a5 // cbz x5, LBB0_330 $84(%rip) +LBB0_326: + WORD $0xaa0703f3 // mov x19, x7 + WORD $0x14000007 // b LBB0_328 $28(%rip) +LBB0_327: + WORD $0xf10000ff // cmp x7, #0 + WORD $0x1a9f056b // csinc w11, w11, wzr, eq + WORD $0x8a0600a7 // and x7, x5, x6 + WORD $0x8b0708e5 // add x5, x7, x7, lsl #2 + WORD $0xd37ff8a5 // lsl x5, x5, #1 + WORD $0xb40001c7 // cbz x7, LBB0_331 $56(%rip) +LBB0_328: + WORD $0x9ac424a7 // lsr x7, x5, x4 + WORD $0x93407e74 // sxtw x20, w19 + WORD $0xeb14013f // cmp x9, x20 + WORD $0x54fffee9 // b.ls LBB0_327 $-36(%rip) + WORD $0x1100c0e7 // add w7, w7, #48 + WORD $0x38346907 // strb w7, [x8, x20] + WORD $0x11000673 // add w19, w19, #1 + WORD $0x8a0600a7 // and x7, x5, x6 + WORD $0x8b0708e5 // add x5, x7, x7, lsl #2 + WORD $0xd37ff8a5 // lsl x5, x5, #1 + WORD $0xb5fffec7 // cbnz x7, LBB0_328 $-40(%rip) + WORD $0x14000002 // b LBB0_331 $8(%rip) +LBB0_330: + WORD $0xaa0703f3 // mov x19, x7 +LBB0_331: + WORD $0xaa1303e7 // mov x7, x19 + WORD $0x7100067f // cmp w19, #1 + WORD $0x54ffec8b // b.lt LBB0_286 $-624(%rip) +LBB0_332: + WORD $0x386749c4 // ldrb w4, [x14, w7, uxtw] + WORD $0x7100c09f // cmp w4, #48 + WORD $0x54ffec41 // b.ne LBB0_287 $-632(%rip) + WORD $0x710004e7 // subs w7, w7, #1 + WORD $0x54ffff8c // b.gt LBB0_332 $-16(%rip) + WORD $0x1400000a // b LBB0_337 $40(%rip) +LBB0_334: + WORD $0x52800007 // mov w7, #0 + WORD $0x17ffff5d // b LBB0_287 $-652(%rip) +LBB0_335: + WORD $0xaa0603f3 // mov x19, x6 +LBB0_336: + WORD $0x8b0508a5 // add x5, x5, x5, lsl #2 + WORD $0xd37ff8a5 // lsl x5, x5, #1 + WORD $0x11000673 // add w19, w19, #1 + WORD $0x9ac424a6 // lsr x6, x5, x4 + WORD $0xb4ffff86 // cbz x6, LBB0_336 $-16(%rip) + WORD $0x17ffff70 // b LBB0_297 $-576(%rip) +LBB0_337: + WORD $0x52800007 // mov w7, #0 +LBB0_338: + WORD $0x5280000c // mov w12, #0 + WORD $0x0b0f004f // add w15, w2, w15 + WORD $0x14000005 // b LBB0_341 $20(%rip) +LBB0_339: + WORD $0xaa1103e1 // mov x1, x17 + WORD $0x1b024084 // madd w4, w4, w2, w16 + WORD $0x17fffde7 // b LBB0_201 $-2148(%rip) +LBB0_340: + WORD $0x5280000f // mov w15, #0 +LBB0_341: + WORD $0xd100050e // sub x14, x8, #1 + WORD $0x52800d00 // mov w0, #104 + WORD $0xb202e7e2 // mov x2, #-3689348814741910324 + WORD $0xf29999a2 // movk x2, #52429 + WORD $0x92800124 // mov x4, #-10 + WORD $0x52800145 // mov w5, #10 + WORD $0x92800006 // mov x6, #-1 + WORD $0xaa0703f3 // mov x19, x7 +Lloh24: + WORD $0x1001dbf1 // adr x17, _LSHIFT_TAB $15228(%rip) +Lloh25: + WORD $0x91000231 // add x17, x17, _LSHIFT_TAB@PAGEOFF $0(%rip) + WORD $0x14000004 // b LBB0_344 $16(%rip) +LBB0_342: + WORD $0x7100027f // cmp w19, #0 + WORD $0x1a8c03ec // csel w12, wzr, w12, eq +LBB0_343: + WORD $0x4b0701ef // sub w15, w15, w7 +LBB0_344: + WORD $0x37f800cc // tbnz w12, #31, LBB0_347 $24(%rip) + WORD $0x350021cc // cbnz w12, LBB0_422 $1080(%rip) + WORD $0x39c00107 // ldrsb w7, [x8] + WORD $0x7100d4ff // cmp w7, #53 + WORD $0x540000eb // b.lt LBB0_349 $28(%rip) + WORD $0x1400010a // b LBB0_422 $1064(%rip) +LBB0_347: + WORD $0x3100219f // cmn w12, #8 + WORD $0x54000082 // b.hs LBB0_349 $16(%rip) + WORD $0x52800367 // mov w7, #27 + WORD $0x350000b3 // cbnz w19, LBB0_350 $20(%rip) + WORD $0x17fffff5 // b LBB0_343 $-44(%rip) +LBB0_349: + WORD $0x4b0c03e7 // neg w7, w12 + WORD $0xb8675a07 // ldr w7, [x16, w7, uxtw #2] + WORD $0x34fffe53 // cbz w19, LBB0_343 $-56(%rip) +LBB0_350: + WORD $0x2a0703f5 // mov w21, w7 + WORD $0x9ba044f6 // umaddl x22, w7, w0, x17 + WORD $0xb84046d4 // ldr w20, [x22], #4 + WORD $0x2a1303f7 // mov w23, w19 + WORD $0xaa1703f8 // mov x24, x23 + WORD $0xaa1603f9 // mov x25, x22 + WORD $0xaa0803fa // mov x26, x8 +LBB0_351: + WORD $0x3840173b // ldrb w27, [x25], #1 + WORD $0x3400015b // cbz w27, LBB0_356 $40(%rip) + WORD $0x3940035c // ldrb w28, [x26] + WORD $0x6b1b039f // cmp w28, w27 + WORD $0x540013e1 // b.ne LBB0_396 $636(%rip) + WORD $0x9100075a // add x26, x26, #1 + WORD $0xf1000718 // subs x24, x24, #1 + WORD $0x54ffff21 // b.ne LBB0_351 $-28(%rip) + WORD $0x38776ad6 // ldrb w22, [x22, x23] + WORD $0x34000056 // cbz w22, LBB0_356 $8(%rip) +LBB0_355: + WORD $0x51000694 // sub w20, w20, #1 +LBB0_356: + WORD $0x0b130296 // add w22, w20, w19 + WORD $0x7100067f // cmp w19, #1 + WORD $0x5400068b // b.lt LBB0_366 $208(%rip) + WORD $0xd2800013 // mov x19, #0 + WORD $0x93407ed8 // sxtw x24, w22 + WORD $0xd100071a // sub x26, x24, #1 + WORD $0xd10006f7 // sub x23, x23, #1 + WORD $0x14000008 // b LBB0_359 $32(%rip) +LBB0_358: + WORD $0xf100035f // cmp x26, #0 + WORD $0x1a9f056b // csinc w11, w11, wzr, eq + WORD $0xd100071a // sub x26, x24, #1 + WORD $0x910006fb // add x27, x23, #1 + WORD $0xd10006f7 // sub x23, x23, #1 + WORD $0xf100077f // cmp x27, #1 + WORD $0x54000249 // b.ls LBB0_361 $72(%rip) +LBB0_359: + WORD $0xaa1a03f8 // mov x24, x26 + WORD $0x38b76919 // ldrsb x25, [x8, x23] + WORD $0xd100c339 // sub x25, x25, #48 + WORD $0x9ad52339 // lsl x25, x25, x21 + WORD $0x8b130339 // add x25, x25, x19 + WORD $0x9bc27f33 // umulh x19, x25, x2 + WORD $0xd343fe73 // lsr x19, x19, #3 + WORD $0x9b04667a // madd x26, x19, x4, x25 + WORD $0xeb18013f // cmp x9, x24 + WORD $0x54fffe09 // b.ls LBB0_358 $-64(%rip) + WORD $0x1100c35a // add w26, w26, #48 + WORD $0x3838691a // strb w26, [x8, x24] + WORD $0xd100071a // sub x26, x24, #1 + WORD $0x910006fb // add x27, x23, #1 + WORD $0xd10006f7 // sub x23, x23, #1 + WORD $0xf100077f // cmp x27, #1 + WORD $0x54fffe08 // b.hi LBB0_359 $-64(%rip) +LBB0_361: + WORD $0xf1002b3f // cmp x25, #10 + WORD $0x540002a3 // b.lo LBB0_366 $84(%rip) + WORD $0x93407f15 // sxtw x21, w24 + WORD $0xd10006b5 // sub x21, x21, #1 + WORD $0x14000007 // b LBB0_364 $28(%rip) +LBB0_363: + WORD $0xf100031f // cmp x24, #0 + WORD $0x1a9f056b // csinc w11, w11, wzr, eq + WORD $0xd10006b5 // sub x21, x21, #1 + WORD $0xf100267f // cmp x19, #9 + WORD $0xaa1703f3 // mov x19, x23 + WORD $0x54000189 // b.ls LBB0_366 $48(%rip) +LBB0_364: + WORD $0x9bc27e77 // umulh x23, x19, x2 + WORD $0xd343fef7 // lsr x23, x23, #3 + WORD $0x9b044ef8 // madd x24, x23, x4, x19 + WORD $0xeb15013f // cmp x9, x21 + WORD $0x54fffec9 // b.ls LBB0_363 $-40(%rip) + WORD $0x1100c318 // add w24, w24, #48 + WORD $0x38356918 // strb w24, [x8, x21] + WORD $0xd10006b5 // sub x21, x21, #1 + WORD $0xf100267f // cmp x19, #9 + WORD $0xaa1703f3 // mov x19, x23 + WORD $0x54fffec8 // b.hi LBB0_364 $-40(%rip) +LBB0_366: + WORD $0xeb36c13f // cmp x9, w22, sxtw + WORD $0x1a8982d3 // csel w19, w22, w9, hi + WORD $0x0b0c028c // add w12, w20, w12 + WORD $0x7100067f // cmp w19, #1 + WORD $0x5400012b // b.lt LBB0_370 $36(%rip) +LBB0_367: + WORD $0x387349d4 // ldrb w20, [x14, w19, uxtw] + WORD $0x7100c29f // cmp w20, #48 + WORD $0x54000101 // b.ne LBB0_371 $32(%rip) + WORD $0x71000673 // subs w19, w19, #1 + WORD $0x54ffff8c // b.gt LBB0_367 $-16(%rip) + WORD $0x5280000c // mov w12, #0 + WORD $0x52800013 // mov w19, #0 + WORD $0x14000003 // b LBB0_371 $12(%rip) +LBB0_370: + WORD $0x7100027f // cmp w19, #0 + WORD $0x1a8c03ec // csel w12, wzr, w12, eq +LBB0_371: + WORD $0x37f80067 // tbnz w7, #31, LBB0_373 $12(%rip) + WORD $0x4b0701ef // sub w15, w15, w7 + WORD $0x17ffff99 // b LBB0_344 $-412(%rip) +LBB0_373: + WORD $0x3100f4ff // cmn w7, #61 + WORD $0x54000a68 // b.hi LBB0_397 $332(%rip) + WORD $0xaa0703f4 // mov x20, x7 + WORD $0x14000007 // b LBB0_377 $28(%rip) +LBB0_375: + WORD $0x7100027f // cmp w19, #0 + WORD $0x1a8c03ec // csel w12, wzr, w12, eq +LBB0_376: + WORD $0x1100f296 // add w22, w20, #60 + WORD $0x3101e29f // cmn w20, #120 + WORD $0xaa1603f4 // mov x20, x22 + WORD $0x5400098a // b.ge LBB0_398 $304(%rip) +LBB0_377: + WORD $0xd2800018 // mov x24, #0 + WORD $0xd2800017 // mov x23, #0 + WORD $0x0ab37e76 // bic w22, w19, w19, asr #31 + WORD $0xaa1603f5 // mov x21, x22 +LBB0_378: + WORD $0xeb1802df // cmp x22, x24 + WORD $0x54000140 // b.eq LBB0_381 $40(%rip) + WORD $0x38b86919 // ldrsb x25, [x8, x24] + WORD $0x9b0566f7 // madd x23, x23, x5, x25 + WORD $0xd100c2f7 // sub x23, x23, #48 + WORD $0x91000718 // add x24, x24, #1 + WORD $0xd37cfef9 // lsr x25, x23, #60 + WORD $0xb4ffff39 // cbz x25, LBB0_378 $-28(%rip) + WORD $0xaa1703f6 // mov x22, x23 + WORD $0xaa1803f5 // mov x21, x24 + WORD $0x14000008 // b LBB0_383 $32(%rip) +LBB0_381: + WORD $0xb40006b7 // cbz x23, LBB0_395 $212(%rip) +LBB0_382: + WORD $0x8b170af6 // add x22, x23, x23, lsl #2 + WORD $0xd37ffad6 // lsl x22, x22, #1 + WORD $0x110006b5 // add w21, w21, #1 + WORD $0xeb0d02ff // cmp x23, x13 + WORD $0xaa1603f7 // mov x23, x22 + WORD $0x54ffff63 // b.lo LBB0_382 $-20(%rip) +LBB0_383: + WORD $0x6b150273 // subs w19, w19, w21 + WORD $0x540001cd // b.le LBB0_386 $56(%rip) + WORD $0xaa1303f7 // mov x23, x19 + WORD $0xaa0803f8 // mov x24, x8 +LBB0_385: + WORD $0xd37cfed9 // lsr x25, x22, #60 + WORD $0x9240eed6 // and x22, x22, #0xfffffffffffffff + WORD $0x321c0739 // orr w25, w25, #0x30 + WORD $0x39000319 // strb w25, [x24] + WORD $0x38b5cb19 // ldrsb x25, [x24, w21, sxtw] + WORD $0x9b0566d6 // madd x22, x22, x5, x25 + WORD $0xd100c2d6 // sub x22, x22, #48 + WORD $0x91000718 // add x24, x24, #1 + WORD $0xf10006f7 // subs x23, x23, #1 + WORD $0x54fffee1 // b.ne LBB0_385 $-36(%rip) + WORD $0x14000002 // b LBB0_387 $8(%rip) +LBB0_386: + WORD $0x52800013 // mov w19, #0 +LBB0_387: + WORD $0xb5000136 // cbnz x22, LBB0_389 $36(%rip) + WORD $0x14000013 // b LBB0_391 $76(%rip) +LBB0_388: + WORD $0xd37cfed7 // lsr x23, x22, #60 + WORD $0xf10002ff // cmp x23, #0 + WORD $0x1a9f056b // csinc w11, w11, wzr, eq + WORD $0x9240eed7 // and x23, x22, #0xfffffffffffffff + WORD $0x8b170af6 // add x22, x23, x23, lsl #2 + WORD $0xd37ffad6 // lsl x22, x22, #1 + WORD $0xb4000197 // cbz x23, LBB0_391 $48(%rip) +LBB0_389: + WORD $0x93407e77 // sxtw x23, w19 + WORD $0xeb17013f // cmp x9, x23 + WORD $0x54fffee9 // b.ls LBB0_388 $-36(%rip) + WORD $0xd37cfed8 // lsr x24, x22, #60 + WORD $0x321c0718 // orr w24, w24, #0x30 + WORD $0x38376918 // strb w24, [x8, x23] + WORD $0x11000673 // add w19, w19, #1 + WORD $0x9240eed7 // and x23, x22, #0xfffffffffffffff + WORD $0x8b170af6 // add x22, x23, x23, lsl #2 + WORD $0xd37ffad6 // lsl x22, x22, #1 + WORD $0xb5fffed7 // cbnz x23, LBB0_389 $-40(%rip) +LBB0_391: + WORD $0x4b15018c // sub w12, w12, w21 + WORD $0x1100058c // add w12, w12, #1 + WORD $0x7100067f // cmp w19, #1 + WORD $0x54fff7ab // b.lt LBB0_375 $-268(%rip) +LBB0_392: + WORD $0x387349d5 // ldrb w21, [x14, w19, uxtw] + WORD $0x7100c2bf // cmp w21, #48 + WORD $0x54fff781 // b.ne LBB0_376 $-272(%rip) + WORD $0x71000673 // subs w19, w19, #1 + WORD $0x54ffff8c // b.gt LBB0_392 $-16(%rip) + WORD $0x5280000c // mov w12, #0 +LBB0_395: + WORD $0x52800013 // mov w19, #0 + WORD $0x17ffffb7 // b LBB0_376 $-292(%rip) +LBB0_396: + WORD $0x13001f96 // sxtb w22, w28 + WORD $0x6b3b82df // cmp w22, w27, sxtb + WORD $0x54ffecab // b.lt LBB0_355 $-620(%rip) + WORD $0x17ffff65 // b LBB0_356 $-620(%rip) +LBB0_397: + WORD $0xaa0703f6 // mov x22, x7 +LBB0_398: + WORD $0xd2800017 // mov x23, #0 + WORD $0xd2800015 // mov x21, #0 + WORD $0x4b1603f4 // neg w20, w22 + WORD $0x0ab37e76 // bic w22, w19, w19, asr #31 +LBB0_399: + WORD $0xeb1702df // cmp x22, x23 + WORD $0x54000300 // b.eq LBB0_405 $96(%rip) + WORD $0x38b76918 // ldrsb x24, [x8, x23] + WORD $0x9b0562b5 // madd x21, x21, x5, x24 + WORD $0xd100c2b5 // sub x21, x21, #48 + WORD $0x910006f7 // add x23, x23, #1 + WORD $0x9ad426b8 // lsr x24, x21, x20 + WORD $0xb4ffff38 // cbz x24, LBB0_399 $-28(%rip) +LBB0_402: + WORD $0x9ad420d6 // lsl x22, x6, x20 + WORD $0xaa3603f6 // mvn x22, x22 + WORD $0x6b170273 // subs w19, w19, w23 + WORD $0x540002ed // b.le LBB0_408 $92(%rip) + WORD $0xaa1303f8 // mov x24, x19 + WORD $0xaa0803f9 // mov x25, x8 +LBB0_404: + WORD $0x9ad426ba // lsr x26, x21, x20 + WORD $0x8a1602b5 // and x21, x21, x22 + WORD $0x1100c35a // add w26, w26, #48 + WORD $0x3900033a // strb w26, [x25] + WORD $0x38b7cb3a // ldrsb x26, [x25, w23, sxtw] + WORD $0x9b056ab5 // madd x21, x21, x5, x26 + WORD $0xd100c2b5 // sub x21, x21, #48 + WORD $0x91000739 // add x25, x25, #1 + WORD $0xf1000718 // subs x24, x24, #1 + WORD $0x54fffee1 // b.ne LBB0_404 $-36(%rip) + WORD $0x1400000b // b LBB0_409 $44(%rip) +LBB0_405: + WORD $0xb4000575 // cbz x21, LBB0_419 $172(%rip) + WORD $0x9ad426b7 // lsr x23, x21, x20 + WORD $0xb4000597 // cbz x23, LBB0_420 $176(%rip) + WORD $0x52800013 // mov w19, #0 + WORD $0x4b16018c // sub w12, w12, w22 + WORD $0x1100058c // add w12, w12, #1 + WORD $0x9ad420d6 // lsl x22, x6, x20 + WORD $0xaa3603f6 // mvn x22, x22 + WORD $0x14000005 // b LBB0_410 $20(%rip) +LBB0_408: + WORD $0x52800013 // mov w19, #0 +LBB0_409: + WORD $0x4b17018c // sub w12, w12, w23 + WORD $0x1100058c // add w12, w12, #1 + WORD $0xb4000295 // cbz x21, LBB0_414 $80(%rip) +LBB0_410: + WORD $0x14000007 // b LBB0_412 $28(%rip) +LBB0_411: + WORD $0xf10002ff // cmp x23, #0 + WORD $0x1a9f056b // csinc w11, w11, wzr, eq + WORD $0x8a1602b7 // and x23, x21, x22 + WORD $0x8b170af5 // add x21, x23, x23, lsl #2 + WORD $0xd37ffab5 // lsl x21, x21, #1 + WORD $0xb40001b7 // cbz x23, LBB0_415 $52(%rip) +LBB0_412: + WORD $0x9ad426b7 // lsr x23, x21, x20 + WORD $0x93407e78 // sxtw x24, w19 + WORD $0xeb18013f // cmp x9, x24 + WORD $0x54fffee9 // b.ls LBB0_411 $-36(%rip) + WORD $0x1100c2f7 // add w23, w23, #48 + WORD $0x38386917 // strb w23, [x8, x24] + WORD $0x11000673 // add w19, w19, #1 + WORD $0x8a1602b7 // and x23, x21, x22 + WORD $0x8b170af5 // add x21, x23, x23, lsl #2 + WORD $0xd37ffab5 // lsl x21, x21, #1 + WORD $0xb5fffed7 // cbnz x23, LBB0_412 $-40(%rip) + WORD $0x14000001 // b LBB0_415 $4(%rip) +LBB0_414: +LBB0_415: + WORD $0x7100067f // cmp w19, #1 + WORD $0x54ffe04b // b.lt LBB0_342 $-1016(%rip) +LBB0_416: + WORD $0x387349d4 // ldrb w20, [x14, w19, uxtw] + WORD $0x7100c29f // cmp w20, #48 + WORD $0x54ffe021 // b.ne LBB0_343 $-1020(%rip) + WORD $0x71000673 // subs w19, w19, #1 + WORD $0x54ffff8c // b.gt LBB0_416 $-16(%rip) + WORD $0x5280000c // mov w12, #0 + WORD $0x52800013 // mov w19, #0 + WORD $0x4b0701ef // sub w15, w15, w7 + WORD $0x17fffefc // b LBB0_344 $-1040(%rip) +LBB0_419: + WORD $0x52800013 // mov w19, #0 + WORD $0x4b0701ef // sub w15, w15, w7 + WORD $0x17fffef9 // b LBB0_344 $-1052(%rip) +LBB0_420: + WORD $0xaa1603f7 // mov x23, x22 +LBB0_421: + WORD $0x8b150ab5 // add x21, x21, x21, lsl #2 + WORD $0xd37ffab5 // lsl x21, x21, #1 + WORD $0x110006f7 // add w23, w23, #1 + WORD $0x9ad426b6 // lsr x22, x21, x20 + WORD $0xb4ffff96 // cbz x22, LBB0_421 $-16(%rip) + WORD $0x17ffffbb // b LBB0_402 $-276(%rip) +LBB0_422: + WORD $0x310ff9ff // cmn w15, #1022 + WORD $0x54000a6c // b.gt LBB0_447 $332(%rip) + WORD $0x34001213 // cbz w19, LBB0_464 $576(%rip) + WORD $0x110ff5f0 // add w16, w15, #1021 + WORD $0x3110e9ff // cmn w15, #1082 + WORD $0x54000b08 // b.hi LBB0_452 $352(%rip) + WORD $0x52800140 // mov w0, #10 + WORD $0xaa1303ef // mov x15, x19 + WORD $0x14000007 // b LBB0_428 $28(%rip) +LBB0_426: + WORD $0x710001ff // cmp w15, #0 + WORD $0x1a8c03ec // csel w12, wzr, w12, eq +LBB0_427: + WORD $0x1100f202 // add w2, w16, #60 + WORD $0x3101e21f // cmn w16, #120 + WORD $0xaa0203f0 // mov x16, x2 + WORD $0x54000a2a // b.ge LBB0_453 $324(%rip) +LBB0_428: + WORD $0xd2800006 // mov x6, #0 + WORD $0xd2800005 // mov x5, #0 + WORD $0x0aaf7de4 // bic w4, w15, w15, asr #31 + WORD $0xaa0403e2 // mov x2, x4 +LBB0_429: + WORD $0xeb06009f // cmp x4, x6 + WORD $0x54000140 // b.eq LBB0_432 $40(%rip) + WORD $0x38a66907 // ldrsb x7, [x8, x6] + WORD $0x9b001ca5 // madd x5, x5, x0, x7 + WORD $0xd100c0a5 // sub x5, x5, #48 + WORD $0x910004c6 // add x6, x6, #1 + WORD $0xd37cfca7 // lsr x7, x5, #60 + WORD $0xb4ffff27 // cbz x7, LBB0_429 $-28(%rip) + WORD $0xaa0503e4 // mov x4, x5 + WORD $0xaa0603e2 // mov x2, x6 + WORD $0x14000008 // b LBB0_434 $32(%rip) +LBB0_432: + WORD $0xb4000685 // cbz x5, LBB0_446 $208(%rip) +LBB0_433: + WORD $0x8b0508a4 // add x4, x5, x5, lsl #2 + WORD $0xd37ff884 // lsl x4, x4, #1 + WORD $0x11000442 // add w2, w2, #1 + WORD $0xeb0d00bf // cmp x5, x13 + WORD $0xaa0403e5 // mov x5, x4 + WORD $0x54ffff63 // b.lo LBB0_433 $-20(%rip) +LBB0_434: + WORD $0x6b0201ef // subs w15, w15, w2 + WORD $0x540001cd // b.le LBB0_437 $56(%rip) + WORD $0xaa0f03e5 // mov x5, x15 + WORD $0xaa0803e6 // mov x6, x8 +LBB0_436: + WORD $0xd37cfc87 // lsr x7, x4, #60 + WORD $0x9240ec84 // and x4, x4, #0xfffffffffffffff + WORD $0x321c04e7 // orr w7, w7, #0x30 + WORD $0x390000c7 // strb w7, [x6] + WORD $0x38a2c8c7 // ldrsb x7, [x6, w2, sxtw] + WORD $0x9b001c84 // madd x4, x4, x0, x7 + WORD $0xd100c084 // sub x4, x4, #48 + WORD $0x910004c6 // add x6, x6, #1 + WORD $0xf10004a5 // subs x5, x5, #1 + WORD $0x54fffee1 // b.ne LBB0_436 $-36(%rip) + WORD $0x14000002 // b LBB0_438 $8(%rip) +LBB0_437: + WORD $0x5280000f // mov w15, #0 +LBB0_438: + WORD $0xb5000104 // cbnz x4, LBB0_440 $32(%rip) + WORD $0x14000012 // b LBB0_442 $72(%rip) +LBB0_439: + WORD $0xf10000df // cmp x6, #0 + WORD $0x1a9f056b // csinc w11, w11, wzr, eq + WORD $0x9240ec85 // and x5, x4, #0xfffffffffffffff + WORD $0x8b0508a4 // add x4, x5, x5, lsl #2 + WORD $0xd37ff884 // lsl x4, x4, #1 + WORD $0xb4000185 // cbz x5, LBB0_442 $48(%rip) +LBB0_440: + WORD $0x93407de5 // sxtw x5, w15 + WORD $0xd37cfc86 // lsr x6, x4, #60 + WORD $0xeb05013f // cmp x9, x5 + WORD $0x54fffee9 // b.ls LBB0_439 $-36(%rip) + WORD $0x321c04c6 // orr w6, w6, #0x30 + WORD $0x38256906 // strb w6, [x8, x5] + WORD $0x110005ef // add w15, w15, #1 + WORD $0x9240ec85 // and x5, x4, #0xfffffffffffffff + WORD $0x8b0508a4 // add x4, x5, x5, lsl #2 + WORD $0xd37ff884 // lsl x4, x4, #1 + WORD $0xb5fffec5 // cbnz x5, LBB0_440 $-40(%rip) +LBB0_442: + WORD $0x4b02018c // sub w12, w12, w2 + WORD $0x1100058c // add w12, w12, #1 + WORD $0x710005ff // cmp w15, #1 + WORD $0x54fff7cb // b.lt LBB0_426 $-264(%rip) +LBB0_443: + WORD $0x386f49c2 // ldrb w2, [x14, w15, uxtw] + WORD $0x7100c05f // cmp w2, #48 + WORD $0x54fff7a1 // b.ne LBB0_427 $-268(%rip) + WORD $0x710005ef // subs w15, w15, #1 + WORD $0x54ffff8c // b.gt LBB0_443 $-16(%rip) + WORD $0x5280000c // mov w12, #0 +LBB0_446: + WORD $0x5280000f // mov w15, #0 + WORD $0x17ffffb8 // b LBB0_427 $-288(%rip) +LBB0_447: + WORD $0x711001ff // cmp w15, #1024 + WORD $0x54ffb60c // b.gt LBB0_274 $-2368(%rip) + WORD $0x510005ed // sub w13, w15, #1 + WORD $0x34001773 // cbz w19, LBB0_485 $748(%rip) + WORD $0x140000d1 // b LBB0_494 $836(%rip) +LBB0_450: + WORD $0x8b0b000b // add x11, x0, x11 + WORD $0x1400003e // b LBB0_466 $248(%rip) +LBB0_451: + WORD $0x8b0b000b // add x11, x0, x11 + WORD $0x14000064 // b LBB0_472 $400(%rip) +LBB0_452: + WORD $0xaa1303ef // mov x15, x19 + WORD $0xaa1003e2 // mov x2, x16 +LBB0_453: + WORD $0xd2800000 // mov x0, #0 + WORD $0xd2800010 // mov x16, #0 + WORD $0x4b0203ed // neg w13, w2 + WORD $0x52800144 // mov w4, #10 + WORD $0x0aaf7de2 // bic w2, w15, w15, asr #31 +LBB0_454: + WORD $0xeb00005f // cmp x2, x0 + WORD $0x540003a0 // b.eq LBB0_460 $116(%rip) + WORD $0x38a06905 // ldrsb x5, [x8, x0] + WORD $0x9b041610 // madd x16, x16, x4, x5 + WORD $0xd100c210 // sub x16, x16, #48 + WORD $0x91000400 // add x0, x0, #1 + WORD $0x9acd2605 // lsr x5, x16, x13 + WORD $0xb4ffff25 // cbz x5, LBB0_454 $-28(%rip) + WORD $0xaa0003e2 // mov x2, x0 +LBB0_457: + WORD $0x4b02018c // sub w12, w12, w2 + WORD $0x1100058c // add w12, w12, #1 + WORD $0x92800000 // mov x0, #-1 + WORD $0x9acd2000 // lsl x0, x0, x13 + WORD $0xaa2003e0 // mvn x0, x0 + WORD $0x6b0201f3 // subs w19, w15, w2 + WORD $0x5400114d // b.le LBB0_479 $552(%rip) + WORD $0x5280014f // mov w15, #10 + WORD $0xaa1303e4 // mov x4, x19 + WORD $0xaa0803e5 // mov x5, x8 +LBB0_459: + WORD $0x9acd2606 // lsr x6, x16, x13 + WORD $0x8a000210 // and x16, x16, x0 + WORD $0x1100c0c6 // add w6, w6, #48 + WORD $0x390000a6 // strb w6, [x5] + WORD $0x38a2c8a6 // ldrsb x6, [x5, w2, sxtw] + WORD $0x9b0f1a10 // madd x16, x16, x15, x6 + WORD $0xd100c210 // sub x16, x16, #48 + WORD $0x910004a5 // add x5, x5, #1 + WORD $0xf1000484 // subs x4, x4, #1 + WORD $0x54fffee1 // b.ne LBB0_459 $-36(%rip) + WORD $0x1400007d // b LBB0_480 $500(%rip) +LBB0_460: + WORD $0xb4000210 // cbz x16, LBB0_464 $64(%rip) + WORD $0x9acd2600 // lsr x0, x16, x13 + WORD $0xb4000100 // cbz x0, LBB0_463 $32(%rip) + WORD $0x52800013 // mov w19, #0 + WORD $0x4b02018c // sub w12, w12, w2 + WORD $0x1100058c // add w12, w12, #1 + WORD $0x9280000f // mov x15, #-1 + WORD $0x9acd21ef // lsl x15, x15, x13 + WORD $0xaa2f03e0 // mvn x0, x15 + WORD $0x14000074 // b LBB0_481 $464(%rip) +LBB0_463: + WORD $0x8b100a10 // add x16, x16, x16, lsl #2 + WORD $0xd37ffa10 // lsl x16, x16, #1 + WORD $0x11000442 // add w2, w2, #1 + WORD $0x9acd2600 // lsr x0, x16, x13 + WORD $0xb4ffff80 // cbz x0, LBB0_463 $-16(%rip) + WORD $0x17ffffdc // b LBB0_457 $-144(%rip) +LBB0_464: + WORD $0x52800009 // mov w9, #0 + WORD $0x12807fad // mov w13, #-1022 + WORD $0x140000f8 // b LBB0_517 $992(%rip) +LBB0_465: + WORD $0xd280000a // mov x10, #0 + WORD $0x8b02000b // add x11, x0, x2 + WORD $0x92800008 // mov x8, #-1 +LBB0_466: + WORD $0xf100812c // subs x12, x9, #32 + WORD $0x54002ba3 // b.lo LBB0_546 $1396(%rip) + WORD $0xad400560 // ldp q0, q1, [x11] + WORD $0x4f01e442 // movi.16b v2, #34 + WORD $0x6e228c03 // cmeq.16b v3, v0, v2 + WORD $0x6e228c22 // cmeq.16b v2, v1, v2 + WORD $0x4f02e784 // movi.16b v4, #92 + WORD $0x6e248c00 // cmeq.16b v0, v0, v4 + WORD $0x6e248c21 // cmeq.16b v1, v1, v4 +Lloh26: + WORD $0x10ff1949 // adr x9, lCPI0_0 $-7384(%rip) +Lloh27: + WORD $0x3dc00124 // ldr q4, [x9, lCPI0_0@PAGEOFF] $0(%rip) + WORD $0x4e241c63 // and.16b v3, v3, v4 +Lloh28: + WORD $0x10ff1969 // adr x9, lCPI0_1 $-7380(%rip) +Lloh29: + WORD $0x3dc00125 // ldr q5, [x9, lCPI0_1@PAGEOFF] $0(%rip) + WORD $0x4e050063 // tbl.16b v3, { v3 }, v5 + WORD $0x4e71b863 // addv.8h h3, v3 + WORD $0x1e260069 // fmov w9, s3 + WORD $0x4e241c42 // and.16b v2, v2, v4 + WORD $0x4e050042 // tbl.16b v2, { v2 }, v5 + WORD $0x4e71b842 // addv.8h h2, v2 + WORD $0x1e26004e // fmov w14, s2 + WORD $0x4e241c00 // and.16b v0, v0, v4 + WORD $0x4e050000 // tbl.16b v0, { v0 }, v5 + WORD $0x4e71b800 // addv.8h h0, v0 + WORD $0x1e26000d // fmov w13, s0 + WORD $0x4e241c20 // and.16b v0, v1, v4 + WORD $0x4e050000 // tbl.16b v0, { v0 }, v5 + WORD $0x4e71b800 // addv.8h h0, v0 + WORD $0x1e26000f // fmov w15, s0 + WORD $0x33103dc9 // bfi w9, w14, #16, #16 + WORD $0x33103ded // bfi w13, w15, #16, #16 + WORD $0x3500252d // cbnz w13, LBB0_543 $1188(%rip) + WORD $0xb50025ca // cbnz x10, LBB0_544 $1208(%rip) + WORD $0xb4002769 // cbz x9, LBB0_545 $1260(%rip) +LBB0_470: + WORD $0xdac00129 // rbit x9, x9 + WORD $0xdac01129 // clz x9, x9 + WORD $0x14000038 // b LBB0_477 $224(%rip) +LBB0_471: + WORD $0xd2800009 // mov x9, #0 + WORD $0x8b02000b // add x11, x0, x2 + WORD $0x92800008 // mov x8, #-1 +LBB0_472: + WORD $0xf100814c // subs x12, x10, #32 + WORD $0x54002e23 // b.lo LBB0_563 $1476(%rip) + WORD $0xad400560 // ldp q0, q1, [x11] + WORD $0x4f01e442 // movi.16b v2, #34 + WORD $0x6e228c03 // cmeq.16b v3, v0, v2 +Lloh30: + WORD $0x10ff14ca // adr x10, lCPI0_0 $-7528(%rip) +Lloh31: + WORD $0x3dc00144 // ldr q4, [x10, lCPI0_0@PAGEOFF] $0(%rip) + WORD $0x4e241c63 // and.16b v3, v3, v4 +Lloh32: + WORD $0x10ff14ea // adr x10, lCPI0_1 $-7524(%rip) +Lloh33: + WORD $0x3dc00145 // ldr q5, [x10, lCPI0_1@PAGEOFF] $0(%rip) + WORD $0x4e050063 // tbl.16b v3, { v3 }, v5 + WORD $0x4e71b863 // addv.8h h3, v3 + WORD $0x1e26006a // fmov w10, s3 + WORD $0x6e228c22 // cmeq.16b v2, v1, v2 + WORD $0x4e241c42 // and.16b v2, v2, v4 + WORD $0x4e050042 // tbl.16b v2, { v2 }, v5 + WORD $0x4e71b842 // addv.8h h2, v2 + WORD $0x1e26004f // fmov w15, s2 + WORD $0x4f02e782 // movi.16b v2, #92 + WORD $0x6e228c03 // cmeq.16b v3, v0, v2 + WORD $0x4e241c63 // and.16b v3, v3, v4 + WORD $0x4e050063 // tbl.16b v3, { v3 }, v5 + WORD $0x4e71b863 // addv.8h h3, v3 + WORD $0x1e26006e // fmov w14, s3 + WORD $0x6e228c22 // cmeq.16b v2, v1, v2 + WORD $0x4e241c42 // and.16b v2, v2, v4 + WORD $0x4e050042 // tbl.16b v2, { v2 }, v5 + WORD $0x4e71b842 // addv.8h h2, v2 + WORD $0x1e260050 // fmov w16, s2 + WORD $0x4f01e402 // movi.16b v2, #32 + WORD $0x6e203440 // cmhi.16b v0, v2, v0 + WORD $0x4e241c00 // and.16b v0, v0, v4 + WORD $0x4e050000 // tbl.16b v0, { v0 }, v5 + WORD $0x4e71b800 // addv.8h h0, v0 + WORD $0x1e26000d // fmov w13, s0 + WORD $0x6e213440 // cmhi.16b v0, v2, v1 + WORD $0x4e241c00 // and.16b v0, v0, v4 + WORD $0x4e050000 // tbl.16b v0, { v0 }, v5 + WORD $0x4e71b800 // addv.8h h0, v0 + WORD $0x1e260011 // fmov w17, s0 + WORD $0x33103dea // bfi w10, w15, #16, #16 + WORD $0x33103e0e // bfi w14, w16, #16, #16 + WORD $0x33103e2d // bfi w13, w17, #16, #16 + WORD $0x3500260e // cbnz w14, LBB0_559 $1216(%rip) + WORD $0xb50026a9 // cbnz x9, LBB0_560 $1236(%rip) + WORD $0xb400284a // cbz x10, LBB0_561 $1288(%rip) +LBB0_476: + WORD $0xdac00149 // rbit x9, x10 + WORD $0xdac01129 // clz x9, x9 + WORD $0xdac001aa // rbit x10, x13 + WORD $0xdac0114a // clz x10, x10 + WORD $0xeb09015f // cmp x10, x9 + WORD $0x54002bc3 // b.lo LBB0_573 $1400(%rip) +LBB0_477: + WORD $0xcb00016a // sub x10, x11, x0 + WORD $0x8b090149 // add x9, x10, x9 + WORD $0x9100052c // add x12, x9, #1 + WORD $0xb6ff5f6c // tbz x12, #63, LBB0_134 $-5140(%rip) + WORD $0x14000160 // b LBB0_575 $1408(%rip) +LBB0_478: + WORD $0xcb000101 // sub x1, x8, x0 + WORD $0x9280000a // mov x10, #-1 + WORD $0xf900006a // str x10, [x3] + WORD $0x17fff8c1 // b LBB0_24 $-7420(%rip) +LBB0_479: + WORD $0x52800013 // mov w19, #0 +LBB0_480: + WORD $0xb4000390 // cbz x16, LBB0_487 $112(%rip) +LBB0_481: + WORD $0x14000007 // b LBB0_483 $28(%rip) +LBB0_482: + WORD $0xf10001ff // cmp x15, #0 + WORD $0x1a9f056b // csinc w11, w11, wzr, eq + WORD $0x8a00020f // and x15, x16, x0 + WORD $0x8b0f09f0 // add x16, x15, x15, lsl #2 + WORD $0xd37ffa10 // lsl x16, x16, #1 + WORD $0xb40002af // cbz x15, LBB0_488 $84(%rip) +LBB0_483: + WORD $0x9acd260f // lsr x15, x16, x13 + WORD $0x93407e62 // sxtw x2, w19 + WORD $0xeb02013f // cmp x9, x2 + WORD $0x54fffee9 // b.ls LBB0_482 $-36(%rip) + WORD $0x1100c1ef // add w15, w15, #48 + WORD $0x3822690f // strb w15, [x8, x2] + WORD $0x11000673 // add w19, w19, #1 + WORD $0x8a00020f // and x15, x16, x0 + WORD $0x8b0f09f0 // add x16, x15, x15, lsl #2 + WORD $0xd37ffa10 // lsl x16, x16, #1 + WORD $0xb5fffecf // cbnz x15, LBB0_483 $-40(%rip) + WORD $0x14000009 // b LBB0_488 $36(%rip) +LBB0_485: + WORD $0x52800009 // mov w9, #0 + WORD $0x14000079 // b LBB0_517 $484(%rip) +LBB0_486: + WORD $0x9280000b // mov x11, #-1 + WORD $0xaa0803f0 // mov x16, x8 + WORD $0xaa0d03e1 // mov x1, x13 + WORD $0x9280000c // mov x12, #-1 + WORD $0x92800009 // mov x9, #-1 + WORD $0x17fff94d // b LBB0_61 $-6860(%rip) +LBB0_487: +LBB0_488: + WORD $0x7100067f // cmp w19, #1 + WORD $0x5400014b // b.lt LBB0_492 $40(%rip) +LBB0_489: + WORD $0x387349cd // ldrb w13, [x14, w19, uxtw] + WORD $0x7100c1bf // cmp w13, #48 + WORD $0x54000141 // b.ne LBB0_493 $40(%rip) + WORD $0x71000673 // subs w19, w19, #1 + WORD $0x54ffff8c // b.gt LBB0_489 $-16(%rip) + WORD $0x52800009 // mov w9, #0 + WORD $0x5280000c // mov w12, #0 + WORD $0x12807fad // mov w13, #-1022 + WORD $0x1400006d // b LBB0_520 $436(%rip) +LBB0_492: + WORD $0x12807fad // mov w13, #-1022 + WORD $0x35000073 // cbnz w19, LBB0_494 $12(%rip) + WORD $0x14000062 // b LBB0_515 $392(%rip) +LBB0_493: + WORD $0x12807fad // mov w13, #-1022 +LBB0_494: + WORD $0xd280000f // mov x15, #0 + WORD $0x2a1303e0 // mov w0, w19 + WORD $0x5282b190 // mov w16, #5516 +LBB0_495: + WORD $0xf10099ff // cmp x15, #38 + WORD $0x54000260 // b.eq LBB0_501 $76(%rip) + WORD $0x8b0f0222 // add x2, x17, x15 + WORD $0x38706842 // ldrb w2, [x2, x16] + WORD $0x386f6904 // ldrb w4, [x8, x15] + WORD $0x6b02009f // cmp w4, w2 + WORD $0x54000141 // b.ne LBB0_500 $40(%rip) + WORD $0x910005ef // add x15, x15, #1 + WORD $0xeb0f001f // cmp x0, x15 + WORD $0x54fffee1 // b.ne LBB0_495 $-36(%rip) + WORD $0x8b00022f // add x15, x17, x0 + WORD $0x5282b190 // mov w16, #5516 + WORD $0x387069ef // ldrb w15, [x15, x16] + WORD $0x340000ef // cbz w15, LBB0_501 $28(%rip) +LBB0_499: + WORD $0x528001ef // mov w15, #15 + WORD $0x14000006 // b LBB0_502 $24(%rip) +LBB0_500: + WORD $0x13001c4f // sxtb w15, w2 + WORD $0x13001c90 // sxtb w16, w4 + WORD $0x6b0f021f // cmp w16, w15 + WORD $0x54ffff6b // b.lt LBB0_499 $-20(%rip) +LBB0_501: + WORD $0x5280020f // mov w15, #16 +LBB0_502: + WORD $0x0b0001f0 // add w16, w15, w0 + WORD $0x7100041f // cmp w0, #1 + WORD $0x5400078b // b.lt LBB0_512 $240(%rip) + WORD $0xd2800011 // mov x17, #0 + WORD $0x93407e02 // sxtw x2, w16 + WORD $0xd1000442 // sub x2, x2, #1 + WORD $0xd1000400 // sub x0, x0, #1 + WORD $0xd2ff4005 // mov x5, #-432345564227567616 + WORD $0xb202e7e6 // mov x6, #-3689348814741910324 + WORD $0xf29999a6 // movk x6, #52429 + WORD $0x92800127 // mov x7, #-10 + WORD $0xaa1003e4 // mov x4, x16 + WORD $0x14000009 // b LBB0_505 $36(%rip) +LBB0_504: + WORD $0xf100029f // cmp x20, #0 + WORD $0x1a9f056b // csinc w11, w11, wzr, eq + WORD $0x51000484 // sub w4, w4, #1 + WORD $0xd1000442 // sub x2, x2, #1 + WORD $0x91000414 // add x20, x0, #1 + WORD $0xd1000400 // sub x0, x0, #1 + WORD $0xf100069f // cmp x20, #1 + WORD $0x54000229 // b.ls LBB0_507 $68(%rip) +LBB0_505: + WORD $0x38a06913 // ldrsb x19, [x8, x0] + WORD $0x8b13d631 // add x17, x17, x19, lsl #53 + WORD $0x8b050233 // add x19, x17, x5 + WORD $0x9bc67e71 // umulh x17, x19, x6 + WORD $0xd343fe31 // lsr x17, x17, #3 + WORD $0x9b074e34 // madd x20, x17, x7, x19 + WORD $0xeb02013f // cmp x9, x2 + WORD $0x54fffe29 // b.ls LBB0_504 $-60(%rip) + WORD $0x1100c294 // add w20, w20, #48 + WORD $0x38226914 // strb w20, [x8, x2] + WORD $0x51000484 // sub w4, w4, #1 + WORD $0xd1000442 // sub x2, x2, #1 + WORD $0x91000414 // add x20, x0, #1 + WORD $0xd1000400 // sub x0, x0, #1 + WORD $0xf100069f // cmp x20, #1 + WORD $0x54fffe28 // b.hi LBB0_505 $-60(%rip) +LBB0_507: + WORD $0xf1002a7f // cmp x19, #10 + WORD $0x54000303 // b.lo LBB0_512 $96(%rip) + WORD $0x93407c80 // sxtw x0, w4 + WORD $0xd1000400 // sub x0, x0, #1 + WORD $0xb202e7e2 // mov x2, #-3689348814741910324 + WORD $0xf29999a2 // movk x2, #52429 + WORD $0x92800124 // mov x4, #-10 + WORD $0x14000007 // b LBB0_510 $28(%rip) +LBB0_509: + WORD $0xf10000df // cmp x6, #0 + WORD $0x1a9f056b // csinc w11, w11, wzr, eq + WORD $0xd1000400 // sub x0, x0, #1 + WORD $0xf100263f // cmp x17, #9 + WORD $0xaa0503f1 // mov x17, x5 + WORD $0x54000189 // b.ls LBB0_512 $48(%rip) +LBB0_510: + WORD $0x9bc27e25 // umulh x5, x17, x2 + WORD $0xd343fca5 // lsr x5, x5, #3 + WORD $0x9b0444a6 // madd x6, x5, x4, x17 + WORD $0xeb00013f // cmp x9, x0 + WORD $0x54fffec9 // b.ls LBB0_509 $-40(%rip) + WORD $0x1100c0c6 // add w6, w6, #48 + WORD $0x38206906 // strb w6, [x8, x0] + WORD $0xd1000400 // sub x0, x0, #1 + WORD $0xf100263f // cmp x17, #9 + WORD $0xaa0503f1 // mov x17, x5 + WORD $0x54fffec8 // b.hi LBB0_510 $-40(%rip) +LBB0_512: + WORD $0xeb30c13f // cmp x9, w16, sxtw + WORD $0x1a898209 // csel w9, w16, w9, hi + WORD $0x0b0c01ec // add w12, w15, w12 + WORD $0x7100053f // cmp w9, #1 + WORD $0x5400010b // b.lt LBB0_516 $32(%rip) +LBB0_513: + WORD $0x386949cf // ldrb w15, [x14, w9, uxtw] + WORD $0x7100c1ff // cmp w15, #48 + WORD $0x540000c1 // b.ne LBB0_517 $24(%rip) + WORD $0x71000529 // subs w9, w9, #1 + WORD $0x54ffff8c // b.gt LBB0_513 $-16(%rip) +LBB0_515: + WORD $0x52800009 // mov w9, #0 + WORD $0x14000006 // b LBB0_519 $24(%rip) +LBB0_516: + WORD $0x340000a9 // cbz w9, LBB0_519 $20(%rip) +LBB0_517: + WORD $0x7100519f // cmp w12, #20 + WORD $0x5400008d // b.le LBB0_520 $16(%rip) + WORD $0x9280000e // mov x14, #-1 + WORD $0x14000046 // b LBB0_540 $280(%rip) +LBB0_519: + WORD $0x5280000c // mov w12, #0 +LBB0_520: + WORD $0x6b09019f // cmp w12, w9 + WORD $0x1a89b18f // csel w15, w12, w9, lt + WORD $0x710005ff // cmp w15, #1 + WORD $0x5400016b // b.lt LBB0_523 $44(%rip) + WORD $0xd280000e // mov x14, #0 + WORD $0x52800150 // mov w16, #10 + WORD $0xaa0f03f1 // mov x17, x15 + WORD $0xaa0803e0 // mov x0, x8 +LBB0_522: + WORD $0x38801402 // ldrsb x2, [x0], #1 + WORD $0x9b1009ce // madd x14, x14, x16, x2 + WORD $0xd100c1ce // sub x14, x14, #48 + WORD $0xf1000631 // subs x17, x17, #1 + WORD $0x54ffff81 // b.ne LBB0_522 $-16(%rip) + WORD $0x14000003 // b LBB0_524 $12(%rip) +LBB0_523: + WORD $0x5280000f // mov w15, #0 + WORD $0xd280000e // mov x14, #0 +LBB0_524: + WORD $0x6b0f0190 // subs w16, w12, w15 + WORD $0x540003ad // b.le LBB0_531 $116(%rip) + WORD $0x7100121f // cmp w16, #4 + WORD $0x540002c3 // b.lo LBB0_529 $88(%rip) + WORD $0x121e7611 // and w17, w16, #0xfffffffc + WORD $0x0b1101ef // add w15, w15, w17 + WORD $0x52800020 // mov w0, #1 + WORD $0xaa1103e2 // mov x2, x17 + WORD $0x52800024 // mov w4, #1 + WORD $0x52800025 // mov w5, #1 +LBB0_527: + WORD $0x8b0e09ce // add x14, x14, x14, lsl #2 + WORD $0xd37ff9ce // lsl x14, x14, #1 + WORD $0x8b000800 // add x0, x0, x0, lsl #2 + WORD $0xd37ff800 // lsl x0, x0, #1 + WORD $0x8b040884 // add x4, x4, x4, lsl #2 + WORD $0xd37ff884 // lsl x4, x4, #1 + WORD $0x8b0508a5 // add x5, x5, x5, lsl #2 + WORD $0xd37ff8a5 // lsl x5, x5, #1 + WORD $0x71001042 // subs w2, w2, #4 + WORD $0x54fffee1 // b.ne LBB0_527 $-36(%rip) + WORD $0x9b0e7c0e // mul x14, x0, x14 + WORD $0x9b0e7c8e // mul x14, x4, x14 + WORD $0x9b0e7cae // mul x14, x5, x14 + WORD $0x6b11021f // cmp w16, w17 + WORD $0x540000c0 // b.eq LBB0_531 $24(%rip) +LBB0_529: + WORD $0x4b0f018f // sub w15, w12, w15 +LBB0_530: + WORD $0x8b0e09ce // add x14, x14, x14, lsl #2 + WORD $0xd37ff9ce // lsl x14, x14, #1 + WORD $0x710005ef // subs w15, w15, #1 + WORD $0x54ffffa1 // b.ne LBB0_530 $-12(%rip) +LBB0_531: + WORD $0x37f801ec // tbnz w12, #31, LBB0_537 $60(%rip) + WORD $0x6b0c013f // cmp w9, w12 + WORD $0x540001ad // b.le LBB0_537 $52(%rip) + WORD $0x8b2c4108 // add x8, x8, w12, uxtw + WORD $0x39c0010f // ldrsb w15, [x8] + WORD $0x11000590 // add w16, w12, #1 + WORD $0x7100d5ff // cmp w15, #53 + WORD $0x7a490200 // ccmp w16, w9, #0, eq + WORD $0x540000a0 // b.eq LBB0_535 $20(%rip) + WORD $0x7100d1ff // cmp w15, #52 + WORD $0x1a9fd7e8 // cset w8, gt + WORD $0x35000068 // cbnz w8, LBB0_536 $12(%rip) + WORD $0x14000003 // b LBB0_537 $12(%rip) +LBB0_535: + WORD $0x340001eb // cbz w11, LBB0_541 $60(%rip) +LBB0_536: + WORD $0x910005ce // add x14, x14, #1 +LBB0_537: + WORD $0xd2e00408 // mov x8, #9007199254740992 + WORD $0xeb0801df // cmp x14, x8 + WORD $0x540000a1 // b.ne LBB0_540 $20(%rip) + WORD $0x710ffdbf // cmp w13, #1023 + WORD $0x54ff8660 // b.eq LBB0_274 $-3892(%rip) + WORD $0x110005ad // add w13, w13, #1 + WORD $0xd2e0020e // mov x14, #4503599627370496 +LBB0_540: + WORD $0x9374d1c9 // sbfx x9, x14, #52, #1 + WORD $0x110ffdab // add w11, w13, #1023 + WORD $0x9240cdc8 // and x8, x14, #0xfffffffffffff + WORD $0x1200296b // and w11, w11, #0x7ff + WORD $0x8a0bd129 // and x9, x9, x11, lsl #52 + WORD $0x17fffc32 // b LBB0_277 $-3896(%rip) +LBB0_541: + WORD $0x34fffe6c // cbz w12, LBB0_537 $-52(%rip) + WORD $0x385ff108 // ldurb w8, [x8, #-1] + WORD $0x12000108 // and w8, w8, #0x1 + WORD $0x35fffde8 // cbnz w8, LBB0_536 $-68(%rip) + WORD $0x17ffffef // b LBB0_537 $-68(%rip) +LBB0_543: + WORD $0xdac001ae // rbit x14, x13 + WORD $0xdac011ce // clz x14, x14 + WORD $0xcb00016f // sub x15, x11, x0 + WORD $0x8b0e01ee // add x14, x15, x14 + WORD $0xb100051f // cmn x8, #1 + WORD $0x9a8e1108 // csel x8, x8, x14, ne +LBB0_544: + WORD $0x0a2a01ae // bic w14, w13, w10 + WORD $0x531f79cf // lsl w15, w14, #1 + WORD $0x331f79ca // bfi w10, w14, #1, #31 + WORD $0x0a2f01ad // bic w13, w13, w15 + WORD $0x1201f1ad // and w13, w13, #0xaaaaaaaa + WORD $0x2b0e01ad // adds w13, w13, w14 + WORD $0x3200f3ee // mov w14, #1431655765 + WORD $0x4a0d05cd // eor w13, w14, w13, lsl #1 + WORD $0x0a0a01aa // and w10, w13, w10 + WORD $0x1a9f37ed // cset w13, hs + WORD $0x2a2a03ea // mvn w10, w10 + WORD $0x8a090149 // and x9, x10, x9 + WORD $0xaa0d03ea // mov x10, x13 + WORD $0xb5ffd8e9 // cbnz x9, LBB0_470 $-1252(%rip) +LBB0_545: + WORD $0x9100816b // add x11, x11, #32 + WORD $0xaa0c03e9 // mov x9, x12 +LBB0_546: + WORD $0xb5000c8a // cbnz x10, LBB0_576 $400(%rip) + WORD $0xb40003a9 // cbz x9, LBB0_556 $116(%rip) +LBB0_548: + WORD $0xcb0003ea // neg x10, x0 +LBB0_549: + WORD $0xd280000d // mov x13, #0 +LBB0_550: + WORD $0x386d696c // ldrb w12, [x11, x13] + WORD $0x7100899f // cmp w12, #34 + WORD $0x540002c0 // b.eq LBB0_555 $88(%rip) + WORD $0x7101719f // cmp w12, #92 + WORD $0x540000a0 // b.eq LBB0_553 $20(%rip) + WORD $0x910005ad // add x13, x13, #1 + WORD $0xeb0d013f // cmp x9, x13 + WORD $0x54ffff21 // b.ne LBB0_550 $-28(%rip) + WORD $0x14000015 // b LBB0_557 $84(%rip) +LBB0_553: + WORD $0xd100052c // sub x12, x9, #1 + WORD $0xeb0d019f // cmp x12, x13 + WORD $0x54000cc0 // b.eq LBB0_580 $408(%rip) + WORD $0x8b0d016b // add x11, x11, x13 + WORD $0x8b0a016c // add x12, x11, x10 + WORD $0xb100051f // cmn x8, #1 + WORD $0x9a880188 // csel x8, x12, x8, eq + WORD $0x9100096b // add x11, x11, #2 + WORD $0xcb0d012c // sub x12, x9, x13 + WORD $0xd100092e // sub x14, x9, #2 + WORD $0xd1000989 // sub x9, x12, #2 + WORD $0x9280000c // mov x12, #-1 + WORD $0xeb0d01df // cmp x14, x13 + WORD $0x54fffd21 // b.ne LBB0_549 $-92(%rip) + WORD $0x14000047 // b LBB0_575 $284(%rip) +LBB0_555: + WORD $0x8b0d0169 // add x9, x11, x13 + WORD $0x9100052b // add x11, x9, #1 +LBB0_556: + WORD $0xcb00016c // sub x12, x11, x0 + WORD $0xb6ff3bac // tbz x12, #63, LBB0_134 $-6284(%rip) + WORD $0x14000042 // b LBB0_575 $264(%rip) +LBB0_557: + WORD $0x7100899f // cmp w12, #34 + WORD $0x54000a61 // b.ne LBB0_580 $332(%rip) + WORD $0x8b0d016b // add x11, x11, x13 + WORD $0x17fffffa // b LBB0_556 $-24(%rip) +LBB0_559: + WORD $0xdac001cf // rbit x15, x14 + WORD $0xdac011ef // clz x15, x15 + WORD $0xcb000170 // sub x16, x11, x0 + WORD $0x8b0f020f // add x15, x16, x15 + WORD $0xb100051f // cmn x8, #1 + WORD $0x9a8f1108 // csel x8, x8, x15, ne +LBB0_560: + WORD $0x0a2901cf // bic w15, w14, w9 + WORD $0x531f79f0 // lsl w16, w15, #1 + WORD $0x331f79e9 // bfi w9, w15, #1, #31 + WORD $0x0a3001ce // bic w14, w14, w16 + WORD $0x1201f1ce // and w14, w14, #0xaaaaaaaa + WORD $0x2b0f01ce // adds w14, w14, w15 + WORD $0x3200f3ef // mov w15, #1431655765 + WORD $0x4a0e05ee // eor w14, w15, w14, lsl #1 + WORD $0x0a0901c9 // and w9, w14, w9 + WORD $0x1a9f37ee // cset w14, hs + WORD $0x2a2903e9 // mvn w9, w9 + WORD $0x8a0a012a // and x10, x9, x10 + WORD $0xaa0e03e9 // mov x9, x14 + WORD $0xb5ffd80a // cbnz x10, LBB0_476 $-1280(%rip) +LBB0_561: + WORD $0x3500044d // cbnz w13, LBB0_573 $136(%rip) + WORD $0x9100816b // add x11, x11, #32 + WORD $0xaa0c03ea // mov x10, x12 +LBB0_563: + WORD $0xb5000629 // cbnz x9, LBB0_578 $196(%rip) + WORD $0xb400070a // cbz x10, LBB0_580 $224(%rip) +LBB0_565: + WORD $0xcb0003e9 // neg x9, x0 +LBB0_566: + WORD $0xd280000d // mov x13, #0 +LBB0_567: + WORD $0x386d696c // ldrb w12, [x11, x13] + WORD $0x7100899f // cmp w12, #34 + WORD $0x54000380 // b.eq LBB0_574 $112(%rip) + WORD $0x7101719f // cmp w12, #92 + WORD $0x54000100 // b.eq LBB0_571 $32(%rip) + WORD $0x7100819f // cmp w12, #32 + WORD $0x540002a3 // b.lo LBB0_573 $84(%rip) + WORD $0x910005ad // add x13, x13, #1 + WORD $0x9280000c // mov x12, #-1 + WORD $0xeb0d015f // cmp x10, x13 + WORD $0x54fffec1 // b.ne LBB0_567 $-40(%rip) + WORD $0x14000017 // b LBB0_575 $92(%rip) +LBB0_571: + WORD $0xd100054c // sub x12, x10, #1 + WORD $0xeb0d019f // cmp x12, x13 + WORD $0x540004e0 // b.eq LBB0_580 $156(%rip) + WORD $0x8b0d016b // add x11, x11, x13 + WORD $0x8b09016c // add x12, x11, x9 + WORD $0xb100051f // cmn x8, #1 + WORD $0x9a880188 // csel x8, x12, x8, eq + WORD $0x9100096b // add x11, x11, #2 + WORD $0xd100094e // sub x14, x10, #2 + WORD $0xcb0d014a // sub x10, x10, x13 + WORD $0xd100094a // sub x10, x10, #2 + WORD $0x9280000c // mov x12, #-1 + WORD $0xeb0d01df // cmp x14, x13 + WORD $0x54fffcc1 // b.ne LBB0_566 $-104(%rip) + WORD $0x14000008 // b LBB0_575 $32(%rip) +LBB0_573: + WORD $0x9280002c // mov x12, #-2 + WORD $0xf900006c // str x12, [x3] + WORD $0x17fff76a // b LBB0_24 $-8792(%rip) +LBB0_574: + WORD $0xcb000169 // sub x9, x11, x0 + WORD $0x8b0d0129 // add x9, x9, x13 + WORD $0x9100052c // add x12, x9, #1 + WORD $0xb6ff336c // tbz x12, #63, LBB0_134 $-6548(%rip) +LBB0_575: + WORD $0xf900006c // str x12, [x3] + WORD $0x17fff764 // b LBB0_24 $-8816(%rip) +LBB0_576: + WORD $0xb4000229 // cbz x9, LBB0_580 $68(%rip) + WORD $0xaa2003ea // mvn x10, x0 + WORD $0x8b0a016a // add x10, x11, x10 + WORD $0xb100051f // cmn x8, #1 + WORD $0x9a880148 // csel x8, x10, x8, eq + WORD $0x9100056b // add x11, x11, #1 + WORD $0xd1000529 // sub x9, x9, #1 + WORD $0xb5fff2e9 // cbnz x9, LBB0_548 $-420(%rip) + WORD $0x17ffffb2 // b LBB0_556 $-312(%rip) +LBB0_578: + WORD $0xb400010a // cbz x10, LBB0_580 $32(%rip) + WORD $0xaa2003e9 // mvn x9, x0 + WORD $0x8b090169 // add x9, x11, x9 + WORD $0xb100051f // cmn x8, #1 + WORD $0x9a880128 // csel x8, x9, x8, eq + WORD $0x9100056b // add x11, x11, #1 + WORD $0xd100054a // sub x10, x10, #1 + WORD $0xb5fff94a // cbnz x10, LBB0_565 $-216(%rip) +LBB0_580: + WORD $0x9280000c // mov x12, #-1 + WORD $0xf900006c // str x12, [x3] + WORD $0x17fff750 // b LBB0_24 $-8896(%rip) + // .p2align 1, 0x00 +LJTI0_0: + WORD $0x01910000 + WORD $0x01910191 + WORD $0x01910191 + WORD $0x01910191 + WORD $0x01910191 + WORD $0x01910191 + WORD $0x01910191 + WORD $0x01910191 + WORD $0x01910191 + WORD $0x01910191 + WORD $0x01910191 + WORD $0x01910191 + WORD $0x01910191 + WORD $0x01910191 + WORD $0x01910191 + WORD $0x01910191 + WORD $0x01910191 + WORD $0x01910123 + WORD $0x01910191 + WORD $0x01910191 + WORD $0x01910191 + WORD $0x01910191 + WORD $0x0019011f + WORD $0x01910191 + WORD $0x00190019 + WORD $0x00190019 + WORD $0x00190019 + WORD $0x00190019 + WORD $0x00190019 + WORD $0x01910195 + WORD $0x01910191 + WORD $0x01910191 + WORD $0x01910191 + WORD $0x01910191 + WORD $0x01910191 + WORD $0x01910191 + WORD $0x01910191 + WORD $0x01910191 + WORD $0x01910191 + WORD $0x01910191 + WORD $0x01910191 + WORD $0x01910191 + WORD $0x01910191 + WORD $0x01910191 + WORD $0x01910191 + WORD $0x01990191 + WORD $0x01a70191 + WORD $0x01910191 + WORD $0x01910191 + WORD $0x01910191 + WORD $0x01910191 + WORD $0x0191019b + WORD $0x01910191 + WORD $0x01910191 + WORD $0x01910191 + WORD $0x0191010e + WORD $0x01910191 + WORD $0x01910191 + WORD $0x01910184 + WORD $0x01910191 + WORD $0x01910191 + WORD $0x01af0191 + WORD $0x011b0191 + // // .word (LBB0_22-LBB0_22)>>2 +// .word (LBB0_109-LBB0_22)>>2 +// .word (LBB0_109-LBB0_22)>>2 +// .word (LBB0_109-LBB0_22)>>2 +// .word (LBB0_109-LBB0_22)>>2 +// .word (LBB0_109-LBB0_22)>>2 +// .word (LBB0_109-LBB0_22)>>2 +// .word (LBB0_109-LBB0_22)>>2 +// .word (LBB0_109-LBB0_22)>>2 +// .word (LBB0_109-LBB0_22)>>2 +// .word (LBB0_109-LBB0_22)>>2 +// .word (LBB0_109-LBB0_22)>>2 +// .word (LBB0_109-LBB0_22)>>2 +// .word (LBB0_109-LBB0_22)>>2 +// .word (LBB0_109-LBB0_22)>>2 +// .word (LBB0_109-LBB0_22)>>2 +// .word (LBB0_109-LBB0_22)>>2 +// .word (LBB0_109-LBB0_22)>>2 +// .word (LBB0_109-LBB0_22)>>2 +// .word (LBB0_109-LBB0_22)>>2 +// .word (LBB0_109-LBB0_22)>>2 +// .word (LBB0_109-LBB0_22)>>2 +// .word (LBB0_109-LBB0_22)>>2 +// .word (LBB0_109-LBB0_22)>>2 +// .word (LBB0_109-LBB0_22)>>2 +// .word (LBB0_109-LBB0_22)>>2 +// .word (LBB0_109-LBB0_22)>>2 +// .word (LBB0_109-LBB0_22)>>2 +// .word (LBB0_109-LBB0_22)>>2 +// .word (LBB0_109-LBB0_22)>>2 +// .word (LBB0_109-LBB0_22)>>2 +// .word (LBB0_109-LBB0_22)>>2 +// .word (LBB0_109-LBB0_22)>>2 +// .word (LBB0_109-LBB0_22)>>2 +// .word (LBB0_95-LBB0_22)>>2 +// .word (LBB0_109-LBB0_22)>>2 +// .word (LBB0_109-LBB0_22)>>2 +// .word (LBB0_109-LBB0_22)>>2 +// .word (LBB0_109-LBB0_22)>>2 +// .word (LBB0_109-LBB0_22)>>2 +// .word (LBB0_109-LBB0_22)>>2 +// .word (LBB0_109-LBB0_22)>>2 +// .word (LBB0_109-LBB0_22)>>2 +// .word (LBB0_109-LBB0_22)>>2 +// .word (LBB0_94-LBB0_22)>>2 +// .word (LBB0_29-LBB0_22)>>2 +// .word (LBB0_109-LBB0_22)>>2 +// .word (LBB0_109-LBB0_22)>>2 +// .word (LBB0_29-LBB0_22)>>2 +// .word (LBB0_29-LBB0_22)>>2 +// .word (LBB0_29-LBB0_22)>>2 +// .word (LBB0_29-LBB0_22)>>2 +// .word (LBB0_29-LBB0_22)>>2 +// .word (LBB0_29-LBB0_22)>>2 +// .word (LBB0_29-LBB0_22)>>2 +// .word (LBB0_29-LBB0_22)>>2 +// .word (LBB0_29-LBB0_22)>>2 +// .word (LBB0_29-LBB0_22)>>2 +// .word (LBB0_110-LBB0_22)>>2 +// .word (LBB0_109-LBB0_22)>>2 +// .word (LBB0_109-LBB0_22)>>2 +// .word (LBB0_109-LBB0_22)>>2 +// .word (LBB0_109-LBB0_22)>>2 +// .word (LBB0_109-LBB0_22)>>2 +// .word (LBB0_109-LBB0_22)>>2 +// .word (LBB0_109-LBB0_22)>>2 +// .word (LBB0_109-LBB0_22)>>2 +// .word (LBB0_109-LBB0_22)>>2 +// .word (LBB0_109-LBB0_22)>>2 +// .word (LBB0_109-LBB0_22)>>2 +// .word (LBB0_109-LBB0_22)>>2 +// .word (LBB0_109-LBB0_22)>>2 +// .word (LBB0_109-LBB0_22)>>2 +// .word (LBB0_109-LBB0_22)>>2 +// .word (LBB0_109-LBB0_22)>>2 +// .word (LBB0_109-LBB0_22)>>2 +// .word (LBB0_109-LBB0_22)>>2 +// .word (LBB0_109-LBB0_22)>>2 +// .word (LBB0_109-LBB0_22)>>2 +// .word (LBB0_109-LBB0_22)>>2 +// .word (LBB0_109-LBB0_22)>>2 +// .word (LBB0_109-LBB0_22)>>2 +// .word (LBB0_109-LBB0_22)>>2 +// .word (LBB0_109-LBB0_22)>>2 +// .word (LBB0_109-LBB0_22)>>2 +// .word (LBB0_109-LBB0_22)>>2 +// .word (LBB0_109-LBB0_22)>>2 +// .word (LBB0_109-LBB0_22)>>2 +// .word (LBB0_109-LBB0_22)>>2 +// .word (LBB0_109-LBB0_22)>>2 +// .word (LBB0_109-LBB0_22)>>2 +// .word (LBB0_111-LBB0_22)>>2 +// .word (LBB0_109-LBB0_22)>>2 +// .word (LBB0_115-LBB0_22)>>2 +// .word (LBB0_109-LBB0_22)>>2 +// .word (LBB0_109-LBB0_22)>>2 +// .word (LBB0_109-LBB0_22)>>2 +// .word (LBB0_109-LBB0_22)>>2 +// .word (LBB0_109-LBB0_22)>>2 +// .word (LBB0_109-LBB0_22)>>2 +// .word (LBB0_109-LBB0_22)>>2 +// .word (LBB0_109-LBB0_22)>>2 +// .word (LBB0_112-LBB0_22)>>2 +// .word (LBB0_109-LBB0_22)>>2 +// .word (LBB0_109-LBB0_22)>>2 +// .word (LBB0_109-LBB0_22)>>2 +// .word (LBB0_109-LBB0_22)>>2 +// .word (LBB0_109-LBB0_22)>>2 +// .word (LBB0_109-LBB0_22)>>2 +// .word (LBB0_109-LBB0_22)>>2 +// .word (LBB0_90-LBB0_22)>>2 +// .word (LBB0_109-LBB0_22)>>2 +// .word (LBB0_109-LBB0_22)>>2 +// .word (LBB0_109-LBB0_22)>>2 +// .word (LBB0_109-LBB0_22)>>2 +// .word (LBB0_109-LBB0_22)>>2 +// .word (LBB0_106-LBB0_22)>>2 +// .word (LBB0_109-LBB0_22)>>2 +// .word (LBB0_109-LBB0_22)>>2 +// .word (LBB0_109-LBB0_22)>>2 +// .word (LBB0_109-LBB0_22)>>2 +// .word (LBB0_109-LBB0_22)>>2 +// .word (LBB0_109-LBB0_22)>>2 +// .word (LBB0_117-LBB0_22)>>2 +// .word (LBB0_109-LBB0_22)>>2 +// .word (LBB0_93-LBB0_22)>>2 + +_MASK_USE_NUMBER: + WORD $0x00000002 // .long 2 + WORD $0x00000000 // .p2align 3, 0x00 +_P10_TAB: + WORD $0x00000000; WORD $0x3ff00000 // .quad 0x3ff0000000000000 + WORD $0x00000000; WORD $0x40240000 // .quad 0x4024000000000000 + WORD $0x00000000; WORD $0x40590000 // .quad 0x4059000000000000 + WORD $0x00000000; WORD $0x408f4000 // .quad 0x408f400000000000 + WORD $0x00000000; WORD $0x40c38800 // .quad 0x40c3880000000000 + WORD $0x00000000; WORD $0x40f86a00 // .quad 0x40f86a0000000000 + WORD $0x00000000; WORD $0x412e8480 // .quad 0x412e848000000000 + WORD $0x00000000; WORD $0x416312d0 // .quad 0x416312d000000000 + WORD $0x00000000; WORD $0x4197d784 // .quad 0x4197d78400000000 + WORD $0x00000000; WORD $0x41cdcd65 // .quad 0x41cdcd6500000000 + WORD $0x20000000; WORD $0x4202a05f // .quad 0x4202a05f20000000 + WORD $0xe8000000; WORD $0x42374876 // .quad 0x42374876e8000000 + WORD $0xa2000000; WORD $0x426d1a94 // .quad 0x426d1a94a2000000 + WORD $0xe5400000; WORD $0x42a2309c // .quad 0x42a2309ce5400000 + WORD $0x1e900000; WORD $0x42d6bcc4 // .quad 0x42d6bcc41e900000 + WORD $0x26340000; WORD $0x430c6bf5 // .quad 0x430c6bf526340000 + WORD $0x37e08000; WORD $0x4341c379 // .quad 0x4341c37937e08000 + WORD $0x85d8a000; WORD $0x43763457 // .quad 0x4376345785d8a000 + WORD $0x674ec800; WORD $0x43abc16d // .quad 0x43abc16d674ec800 + WORD $0x60913d00; WORD $0x43e158e4 // .quad 0x43e158e460913d00 + WORD $0x78b58c40; WORD $0x4415af1d // .quad 0x4415af1d78b58c40 + WORD $0xd6e2ef50; WORD $0x444b1ae4 // .quad 0x444b1ae4d6e2ef50 + WORD $0x064dd592; WORD $0x4480f0cf // .quad 0x4480f0cf064dd592 + // .p2align 3, 0x00 +_POW10_M128_TAB: + WORD $0xcd60e453; WORD $0x1732c869 // .quad 1671618768450675795 + WORD $0x081c0288; WORD $0xfa8fd5a0 // .quad -391859759250406776 + WORD $0x205c8eb4; WORD $0x0e7fbd42 // .quad 1044761730281672372 + WORD $0x05118195; WORD $0x9c99e584 // .quad -7162441377172586091 + WORD $0xa873b261; WORD $0x521fac92 // .quad 5917638181279478369 + WORD $0x0655e1fa; WORD $0xc3c05ee5 // .quad -4341365703038344710 + WORD $0x52909ef9; WORD $0xe6a797b7 // .quad -1826324310255427847 + WORD $0x47eb5a78; WORD $0xf4b0769e // .quad -815021110370542984 + WORD $0x939a635c; WORD $0x9028bed2 // .quad -8058981721550724260 + WORD $0xecf3188b; WORD $0x98ee4a22 // .quad -7426917221622671221 + WORD $0x3880fc33; WORD $0x7432ee87 // .quad 8373016921771146291 + WORD $0xa82fdeae; WORD $0xbf29dcab // .quad -4671960508600951122 + WORD $0x06a13b3f; WORD $0x113faa29 // .quad 1242899115359157055 + WORD $0x923bd65a; WORD $0xeef453d6 // .quad -1228264617323800998 + WORD $0xa424c507; WORD $0x4ac7ca59 // .quad 5388497965526861063 + WORD $0x1b6565f8; WORD $0x9558b466 // .quad -7685194413468457480 + WORD $0x0d2df649; WORD $0x5d79bcf0 // .quad 6735622456908576329 + WORD $0xa23ebf76; WORD $0xbaaee17f // .quad -4994806998408183946 + WORD $0x107973dc; WORD $0xf4d82c2c // .quad -803843965719055396 + WORD $0x8ace6f53; WORD $0xe95a99df // .quad -1631822729582842029 + WORD $0x8a4be869; WORD $0x79071b9b // .quad 8720969558280366185 + WORD $0xb6c10594; WORD $0x91d8a02b // .quad -7937418233630358124 + WORD $0x6cdee284; WORD $0x9748e282 // .quad -7545532125859093884 + WORD $0xa47146f9; WORD $0xb64ec836 // .quad -5310086773610559751 + WORD $0x08169b25; WORD $0xfd1b1b23 // .quad -208543120469091547 + WORD $0x4d8d98b7; WORD $0xe3e27a44 // .quad -2025922448585811785 + WORD $0xe50e20f7; WORD $0xfe30f0f5 // .quad -130339450293182217 + WORD $0xb0787f72; WORD $0x8e6d8c6a // .quad -8183730558007214222 + WORD $0x5e51a935; WORD $0xbdbd2d33 // .quad -4774610331293865675 + WORD $0x5c969f4f; WORD $0xb208ef85 // .quad -5617977179081629873 + WORD $0x35e61382; WORD $0xad2c7880 // .quad -5968262914117332094 + WORD $0xb3bc4723; WORD $0xde8b2b66 // .quad -2410785455424649437 + WORD $0x21afcc31; WORD $0x4c3bcb50 // .quad 5493207715531443249 + WORD $0x3055ac76; WORD $0x8b16fb20 // .quad -8424269937281487754 + WORD $0x2a1bbf3d; WORD $0xdf4abe24 // .quad -2356862392440471747 + WORD $0x3c6b1793; WORD $0xaddcb9e8 // .quad -5918651403174471789 + WORD $0x34a2af0d; WORD $0xd71d6dad // .quad -2946077990550589683 + WORD $0x4b85dd78; WORD $0xd953e862 // .quad -2786628235540701832 + WORD $0x40e5ad68; WORD $0x8672648c // .quad -8758827771735200408 + WORD $0x6f33aa6b; WORD $0x87d4713d // .quad -8659171674854020501 + WORD $0x511f18c2; WORD $0x680efdaf // .quad 7498209359040551106 + WORD $0xcb009506; WORD $0xa9c98d8c // .quad -6212278575140137722 + WORD $0x2566def2; WORD $0x0212bd1b // .quad 149389661945913074 + WORD $0xfdc0ba48; WORD $0xd43bf0ef // .quad -3153662200497784248 + WORD $0xf7604b57; WORD $0x014bb630 // .quad 93368538716195671 + WORD $0xfe98746d; WORD $0x84a57695 // .quad -8888567902952197011 + WORD $0x35385e2d; WORD $0x419ea3bd // .quad 4728396691822632493 + WORD $0x7e3e9188; WORD $0xa5ced43b // .quad -6499023860262858360 + WORD $0x828675b9; WORD $0x52064cac // .quad 5910495864778290617 + WORD $0x5dce35ea; WORD $0xcf42894a // .quad -3512093806901185046 + WORD $0xd1940993; WORD $0x7343efeb // .quad 8305745933913819539 + WORD $0x7aa0e1b2; WORD $0x818995ce // .quad -9112587656954322510 + WORD $0xc5f90bf8; WORD $0x1014ebe6 // .quad 1158810380537498616 + WORD $0x19491a1f; WORD $0xa1ebfb42 // .quad -6779048552765515233 + WORD $0x77774ef6; WORD $0xd41a26e0 // .quad -3163173042755514634 + WORD $0x9f9b60a6; WORD $0xca66fa12 // .quad -3862124672529506138 + WORD $0x955522b4; WORD $0x8920b098 // .quad -8565652321871781196 + WORD $0x478238d0; WORD $0xfd00b897 // .quad -215969822234494768 + WORD $0x5d5535b0; WORD $0x55b46e5f // .quad 6175682344898606512 + WORD $0x8cb16382; WORD $0x9e20735e // .quad -7052510166537641086 + WORD $0x34aa831d; WORD $0xeb2189f7 // .quad -1503769105731517667 + WORD $0x2fddbc62; WORD $0xc5a89036 // .quad -4203951689744663454 + WORD $0x01d523e4; WORD $0xa5e9ec75 // .quad -6491397400591784988 + WORD $0xbbd52b7b; WORD $0xf712b443 // .quad -643253593753441413 + WORD $0x2125366e; WORD $0x47b233c9 // .quad 5166248661484910190 + WORD $0x55653b2d; WORD $0x9a6bb0aa // .quad -7319562523736982739 + WORD $0x696e840a; WORD $0x999ec0bb // .quad -7377247228426025974 + WORD $0xeabe89f8; WORD $0xc1069cd4 // .quad -4537767136243840520 + WORD $0x43ca250d; WORD $0xc00670ea // .quad -4609873017105144563 + WORD $0x256e2c76; WORD $0xf148440a // .quad -1060522901877412746 + WORD $0x6a5e5728; WORD $0x38040692 // .quad 4036358391950366504 + WORD $0x5764dbca; WORD $0x96cd2a86 // .quad -7580355841314464822 + WORD $0x04f5ecf2; WORD $0xc6050837 // .quad -4177924046916817678 + WORD $0xed3e12bc; WORD $0xbc807527 // .quad -4863758783215693124 + WORD $0xc633682e; WORD $0xf7864a44 // .quad -610719040218634194 + WORD $0xe88d976b; WORD $0xeba09271 // .quad -1468012460592228501 + WORD $0xfbe0211d; WORD $0x7ab3ee6a // .quad 8841672636718129437 + WORD $0x31587ea3; WORD $0x93445b87 // .quad -7835036815511224669 + WORD $0xbad82964; WORD $0x5960ea05 // .quad 6440404777470273892 + WORD $0xfdae9e4c; WORD $0xb8157268 // .quad -5182110000961642932 + WORD $0x298e33bd; WORD $0x6fb92487 // .quad 8050505971837842365 + WORD $0x3d1a45df; WORD $0xe61acf03 // .quad -1865951482774665761 + WORD $0x79f8e056; WORD $0xa5d3b6d4 // .quad -6497648813669818282 + WORD $0x06306bab; WORD $0x8fd0c162 // .quad -8083748704375247957 + WORD $0x9877186c; WORD $0x8f48a489 // .quad -8122061017087272852 + WORD $0x87bc8696; WORD $0xb3c4f1ba // .quad -5492999862041672042 + WORD $0xfe94de87; WORD $0x331acdab // .quad 3682481783923072647 + WORD $0x29aba83c; WORD $0xe0b62e29 // .quad -2254563809124702148 + WORD $0x7f1d0b14; WORD $0x9ff0c08b // .quad -6921820921902855404 + WORD $0xba0b4925; WORD $0x8c71dcd9 // .quad -8326631408344020699 + WORD $0x5ee44dd9; WORD $0x07ecf0ae // .quad 571095884476206553 + WORD $0x288e1b6f; WORD $0xaf8e5410 // .quad -5796603242002637969 + WORD $0xf69d6150; WORD $0xc9e82cd9 // .quad -3897816162832129712 + WORD $0x32b1a24a; WORD $0xdb71e914 // .quad -2634068034075909558 + WORD $0x3a225cd2; WORD $0xbe311c08 // .quad -4741978110983775022 + WORD $0x9faf056e; WORD $0x892731ac // .quad -8563821548938525330 + WORD $0x48aaf406; WORD $0x6dbd630a // .quad 7907585416552444934 + WORD $0xc79ac6ca; WORD $0xab70fe17 // .quad -6093090917745768758 + WORD $0xdad5b108; WORD $0x092cbbcc // .quad 661109733835780360 + WORD $0xb981787d; WORD $0xd64d3d9d // .quad -3004677628754823043 + WORD $0x08c58ea5; WORD $0x25bbf560 // .quad 2719036592861056677 + WORD $0x93f0eb4e; WORD $0x85f04682 // .quad -8795452545612846258 + WORD $0x0af6f24e; WORD $0xaf2af2b8 // .quad -5824576295778454962 + WORD $0x38ed2621; WORD $0xa76c5823 // .quad -6382629663588669919 + WORD $0x0db4aee1; WORD $0x1af5af66 // .quad 1942651667131707105 + WORD $0x07286faa; WORD $0xd1476e2c // .quad -3366601061058449494 + WORD $0xc890ed4d; WORD $0x50d98d9f // .quad 5825843310384704845 + WORD $0x847945ca; WORD $0x82cca4db // .quad -9021654690802612790 + WORD $0xbab528a0; WORD $0xe50ff107 // .quad -1941067898873894752 + WORD $0x6597973c; WORD $0xa37fce12 // .quad -6665382345075878084 + WORD $0xa96272c8; WORD $0x1e53ed49 // .quad 2185351144835019464 + WORD $0xfefd7d0c; WORD $0xcc5fc196 // .quad -3720041912917459700 + WORD $0x13bb0f7a; WORD $0x25e8e89c // .quad 2731688931043774330 + WORD $0xbebcdc4f; WORD $0xff77b1fc // .quad -38366372719436721 + WORD $0x8c54e9ac; WORD $0x77b19161 // .quad 8624834609543440812 + WORD $0xf73609b1; WORD $0x9faacf3d // .quad -6941508010590729807 + WORD $0xef6a2417; WORD $0xd59df5b9 // .quad -3054014793352862697 + WORD $0x75038c1d; WORD $0xc795830d // .quad -4065198994811024355 + WORD $0x6b44ad1d; WORD $0x4b057328 // .quad 5405853545163697437 + WORD $0xd2446f25; WORD $0xf97ae3d0 // .quad -469812725086392539 + WORD $0x430aec32; WORD $0x4ee367f9 // .quad 5684501474941004850 + WORD $0x836ac577; WORD $0x9becce62 // .quad -7211161980820077193 + WORD $0x93cda73f; WORD $0x229c41f7 // .quad 2493940825248868159 + WORD $0x244576d5; WORD $0xc2e801fb // .quad -4402266457597708587 + WORD $0x78c1110f; WORD $0x6b435275 // .quad 7729112049988473103 + WORD $0xed56d48a; WORD $0xf3a20279 // .quad -891147053569747830 + WORD $0x6b78aaa9; WORD $0x830a1389 // .quad -9004363024039368023 + WORD $0x345644d6; WORD $0x9845418c // .quad -7474495936122174250 + WORD $0xc656d553; WORD $0x23cc986b // .quad 2579604275232953683 + WORD $0x416bd60c; WORD $0xbe5691ef // .quad -4731433901725329908 + WORD $0xb7ec8aa8; WORD $0x2cbfbe86 // .quad 3224505344041192104 + WORD $0x11c6cb8f; WORD $0xedec366b // .quad -1302606358729274481 + WORD $0x32f3d6a9; WORD $0x7bf7d714 // .quad 8932844867666826921 + WORD $0xeb1c3f39; WORD $0x94b3a202 // .quad -7731658001846878407 + WORD $0x3fb0cc53; WORD $0xdaf5ccd9 // .quad -2669001970698630061 + WORD $0xa5e34f07; WORD $0xb9e08a83 // .quad -5052886483881210105 + WORD $0x8f9cff68; WORD $0xd1b3400f // .quad -3336252463373287576 + WORD $0x8f5c22c9; WORD $0xe858ad24 // .quad -1704422086424124727 + WORD $0xb9c21fa1; WORD $0x23100809 // .quad 2526528228819083169 + WORD $0xd99995be; WORD $0x91376c36 // .quad -7982792831656159810 + WORD $0x2832a78a; WORD $0xabd40a0c // .quad -6065211750830921846 + WORD $0x8ffffb2d; WORD $0xb5854744 // .quad -5366805021142811859 + WORD $0x323f516c; WORD $0x16c90c8f // .quad 1641857348316123500 + WORD $0xb3fff9f9; WORD $0xe2e69915 // .quad -2096820258001126919 + WORD $0x7f6792e3; WORD $0xae3da7d9 // .quad -5891368184943504669 + WORD $0x907ffc3b; WORD $0x8dd01fad // .quad -8228041688891786181 + WORD $0xdf41779c; WORD $0x99cd11cf // .quad -7364210231179380836 + WORD $0xf49ffb4a; WORD $0xb1442798 // .quad -5673366092687344822 + WORD $0xd711d583; WORD $0x40405643 // .quad 4629795266307937667 + WORD $0x31c7fa1d; WORD $0xdd95317f // .quad -2480021597431793123 + WORD $0x666b2572; WORD $0x482835ea // .quad 5199465050656154994 + WORD $0x7f1cfc52; WORD $0x8a7d3eef // .quad -8467542526035952558 + WORD $0x0005eecf; WORD $0xda324365 // .quad -2724040723534582065 + WORD $0x5ee43b66; WORD $0xad1c8eab // .quad -5972742139117552794 + WORD $0x40076a82; WORD $0x90bed43e // .quad -8016736922845615486 + WORD $0x369d4a40; WORD $0xd863b256 // .quad -2854241655469553088 + WORD $0xe804a291; WORD $0x5a7744a6 // .quad 6518754469289960081 + WORD $0xe2224e68; WORD $0x873e4f75 // .quad -8701430062309552536 + WORD $0xa205cb36; WORD $0x711515d0 // .quad 8148443086612450102 + WORD $0x5aaae202; WORD $0xa90de353 // .quad -6265101559459552766 + WORD $0xca873e03; WORD $0x0d5a5b44 // .quad 962181821410786819 + WORD $0x31559a83; WORD $0xd3515c28 // .quad -3219690930897053053 + WORD $0xfe9486c2; WORD $0xe858790a // .quad -1704479370831952190 + WORD $0x1ed58091; WORD $0x8412d999 // .quad -8929835859451740015 + WORD $0xbe39a872; WORD $0x626e974d // .quad 7092772823314835570 + WORD $0x668ae0b6; WORD $0xa5178fff // .quad -6550608805887287114 + WORD $0x2dc8128f; WORD $0xfb0a3d21 // .quad -357406007711231345 + WORD $0x402d98e3; WORD $0xce5d73ff // .quad -3576574988931720989 + WORD $0xbc9d0b99; WORD $0x7ce66634 // .quad 8999993282035256217 + WORD $0x881c7f8e; WORD $0x80fa687f // .quad -9152888395723407474 + WORD $0xebc44e80; WORD $0x1c1fffc1 // .quad 2026619565689294464 + WORD $0x6a239f72; WORD $0xa139029f // .quad -6829424476226871438 + WORD $0x66b56220; WORD $0xa327ffb2 // .quad -6690097579743157728 + WORD $0x44ac874e; WORD $0xc9874347 // .quad -3925094576856201394 + WORD $0x0062baa8; WORD $0x4bf1ff9f // .quad 5472436080603216552 + WORD $0x15d7a922; WORD $0xfbe91419 // .quad -294682202642863838 + WORD $0x603db4a9; WORD $0x6f773fc3 // .quad 8031958568804398249 + WORD $0xada6c9b5; WORD $0x9d71ac8f // .quad -7101705404292871755 + WORD $0x384d21d3; WORD $0xcb550fb4 // .quad -3795109844276665901 + WORD $0x99107c22; WORD $0xc4ce17b3 // .quad -4265445736938701790 + WORD $0x46606a48; WORD $0x7e2a53a1 // .quad 9091170749936331336 + WORD $0x7f549b2b; WORD $0xf6019da0 // .quad -720121152745989333 + WORD $0xcbfc426d; WORD $0x2eda7444 // .quad 3376138709496513133 + WORD $0x4f94e0fb; WORD $0x99c10284 // .quad -7367604748107325189 + WORD $0xfefb5308; WORD $0xfa911155 // .quad -391512631556746488 + WORD $0x637a1939; WORD $0xc0314325 // .quad -4597819916706768583 + WORD $0x7eba27ca; WORD $0x793555ab // .quad 8733981247408842698 + WORD $0xbc589f88; WORD $0xf03d93ee // .quad -1135588877456072824 + WORD $0x2f3458de; WORD $0x4bc1558b // .quad 5458738279630526686 + WORD $0x35b763b5; WORD $0x96267c75 // .quad -7627272076051127371 + WORD $0xfb016f16; WORD $0x9eb1aaed // .quad -7011635205744005354 + WORD $0x83253ca2; WORD $0xbbb01b92 // .quad -4922404076636521310 + WORD $0x79c1cadc; WORD $0x465e15a9 // .quad 5070514048102157020 + WORD $0x23ee8bcb; WORD $0xea9c2277 // .quad -1541319077368263733 + WORD $0xec191ec9; WORD $0x0bfacd89 // .quad 863228270850154185 + WORD $0x7675175f; WORD $0x92a1958a // .quad -7880853450996246689 + WORD $0x671f667b; WORD $0xcef980ec // .quad -3532650679864695173 + WORD $0x14125d36; WORD $0xb749faed // .quad -5239380795317920458 + WORD $0x80e7401a; WORD $0x82b7e127 // .quad -9027499368258256870 + WORD $0x5916f484; WORD $0xe51c79a8 // .quad -1937539975720012668 + WORD $0xb0908810; WORD $0xd1b2ecb8 // .quad -3336344095947716592 + WORD $0x37ae58d2; WORD $0x8f31cc09 // .quad -8128491512466089774 + WORD $0xdcb4aa15; WORD $0x861fa7e6 // .quad -8782116138362033643 + WORD $0x8599ef07; WORD $0xb2fe3f0b // .quad -5548928372155224313 + WORD $0x93e1d49a; WORD $0x67a791e0 // .quad 7469098900757009562 + WORD $0x67006ac9; WORD $0xdfbdcece // .quad -2324474446766642487 + WORD $0x5c6d24e0; WORD $0xe0c8bb2c // .quad -2249342214667950880 + WORD $0x006042bd; WORD $0x8bd6a141 // .quad -8370325556870233411 + WORD $0x73886e18; WORD $0x58fae9f7 // .quad 6411694268519837208 + WORD $0x4078536d; WORD $0xaecc4991 // .quad -5851220927660403859 + WORD $0x506a899e; WORD $0xaf39a475 // .quad -5820440219632367202 + WORD $0x90966848; WORD $0xda7f5bf5 // .quad -2702340141148116920 + WORD $0x52429603; WORD $0x6d8406c9 // .quad 7891439908798240259 + WORD $0x7a5e012d; WORD $0x888f9979 // .quad -8606491615858654931 + WORD $0xa6d33b83; WORD $0xc8e5087b // .quad -3970758169284363389 + WORD $0xd8f58178; WORD $0xaab37fd7 // .quad -6146428501395930760 + WORD $0x90880a64; WORD $0xfb1e4a9a // .quad -351761693178066332 + WORD $0xcf32e1d6; WORD $0xd5605fcd // .quad -3071349608317525546 + WORD $0x9a55067f; WORD $0x5cf2eea0 // .quad 6697677969404790399 + WORD $0xa17fcd26; WORD $0x855c3be0 // .quad -8837122532839535322 + WORD $0xc0ea481e; WORD $0xf42faa48 // .quad -851274575098787810 + WORD $0xc9dfc06f; WORD $0xa6b34ad8 // .quad -6434717147622031249 + WORD $0xf124da26; WORD $0xf13b94da // .quad -1064093218873484762 + WORD $0xfc57b08b; WORD $0xd0601d8e // .quad -3431710416100151157 + WORD $0xd6b70858; WORD $0x76c53d08 // .quad 8558313775058847832 + WORD $0x5db6ce57; WORD $0x823c1279 // .quad -9062348037703676329 + WORD $0x0c64ca6e; WORD $0x54768c4b // .quad 6086206200396171886 + WORD $0xb52481ed; WORD $0xa2cb1717 // .quad -6716249028702207507 + WORD $0xcf7dfd09; WORD $0xa9942f5d // .quad -6227300304786948855 + WORD $0xa26da268; WORD $0xcb7ddcdd // .quad -3783625267450371480 + WORD $0x435d7c4c; WORD $0xd3f93b35 // .quad -3172439362556298164 + WORD $0x0b090b02; WORD $0xfe5d5415 // .quad -117845565885576446 + WORD $0x4a1a6daf; WORD $0xc47bc501 // .quad -4288617610811380305 + WORD $0x26e5a6e1; WORD $0x9efa548d // .quad -6991182506319567135 + WORD $0x9ca1091b; WORD $0x359ab641 // .quad 3862600023340550427 + WORD $0x709f109a; WORD $0xc6b8e9b0 // .quad -4127292114472071014 + WORD $0x03c94b62; WORD $0xc30163d2 // .quad -4395122007679087774 + WORD $0x8cc6d4c0; WORD $0xf867241c // .quad -547429124662700864 + WORD $0x425dcf1d; WORD $0x79e0de63 // .quad 8782263791269039901 + WORD $0xd7fc44f8; WORD $0x9b407691 // .quad -7259672230555269896 + WORD $0x12f542e4; WORD $0x985915fc // .quad -7468914334623251740 + WORD $0x4dfb5636; WORD $0xc2109436 // .quad -4462904269766699466 + WORD $0x17b2939d; WORD $0x3e6f5b7b // .quad 4498915137003099037 + WORD $0xe17a2bc4; WORD $0xf294b943 // .quad -966944318780986428 + WORD $0xeecf9c42; WORD $0xa705992c // .quad -6411550076227838910 + WORD $0x6cec5b5a; WORD $0x979cf3ca // .quad -7521869226879198374 + WORD $0x2a838353; WORD $0x50c6ff78 // .quad 5820620459997365075 + WORD $0x08277231; WORD $0xbd8430bd // .quad -4790650515171610063 + WORD $0x35246428; WORD $0xa4f8bf56 // .quad -6559282480285457368 + WORD $0x4a314ebd; WORD $0xece53cec // .quad -1376627125537124675 + WORD $0xe136be99; WORD $0x871b7795 // .quad -8711237568605798759 + WORD $0xae5ed136; WORD $0x940f4613 // .quad -7777920981101784778 + WORD $0x59846e3f; WORD $0x28e2557b // .quad 2946011094524915263 + WORD $0x99f68584; WORD $0xb9131798 // .quad -5110715207949843068 + WORD $0x2fe589cf; WORD $0x331aeada // .quad 3682513868156144079 + WORD $0xc07426e5; WORD $0xe757dd7e // .quad -1776707991509915931 + WORD $0x5def7621; WORD $0x3ff0d2c8 // .quad 4607414176811284001 + WORD $0x3848984f; WORD $0x9096ea6f // .quad -8027971522334779313 + WORD $0x756b53a9; WORD $0x0fed077a // .quad 1147581702586717097 + WORD $0x065abe63; WORD $0xb4bca50b // .quad -5423278384491086237 + WORD $0x12c62894; WORD $0xd3e84959 // .quad -3177208890193991532 + WORD $0xc7f16dfb; WORD $0xe1ebce4d // .quad -2167411962186469893 + WORD $0xabbbd95c; WORD $0x64712dd7 // .quad 7237616480483531100 + WORD $0x9cf6e4bd; WORD $0x8d3360f0 // .quad -8272161504007625539 + WORD $0x96aacfb3; WORD $0xbd8d794d // .quad -4788037454677749837 + WORD $0xc4349dec; WORD $0xb080392c // .quad -5728515861582144020 + WORD $0xfc5583a0; WORD $0xecf0d7a0 // .quad -1373360799919799392 + WORD $0xf541c567; WORD $0xdca04777 // .quad -2548958808550292121 + WORD $0x9db57244; WORD $0xf41686c4 // .quad -858350499949874620 + WORD $0xf9491b60; WORD $0x89e42caa // .quad -8510628282985014432 + WORD $0xc522ced5; WORD $0x311c2875 // .quad 3538747893490044629 + WORD $0xb79b6239; WORD $0xac5d37d5 // .quad -6026599335303880135 + WORD $0x366b828b; WORD $0x7d633293 // .quad 9035120885289943691 + WORD $0x25823ac7; WORD $0xd77485cb // .quad -2921563150702462265 + WORD $0x02033197; WORD $0xae5dff9c // .quad -5882264492762254953 + WORD $0xf77164bc; WORD $0x86a8d39e // .quad -8743505996830120772 + WORD $0x0283fdfc; WORD $0xd9f57f83 // .quad -2741144597525430788 + WORD $0xb54dbdeb; WORD $0xa8530886 // .quad -6317696477610263061 + WORD $0xc324fd7b; WORD $0xd072df63 // .quad -3426430746906788485 + WORD $0x62a12d66; WORD $0xd267caa8 // .quad -3285434578585440922 + WORD $0x59f71e6d; WORD $0x4247cb9e // .quad 4776009810824339053 + WORD $0x3da4bc60; WORD $0x8380dea9 // .quad -8970925639256982432 + WORD $0xf074e608; WORD $0x52d9be85 // .quad 5970012263530423816 + WORD $0x8d0deb78; WORD $0xa4611653 // .quad -6601971030643840136 + WORD $0x6c921f8b; WORD $0x67902e27 // .quad 7462515329413029771 + WORD $0x70516656; WORD $0xcd795be8 // .quad -3640777769877412266 + WORD $0xa3db53b6; WORD $0x00ba1cd8 // .quad 52386062455755702 + WORD $0x4632dff6; WORD $0x806bd971 // .quad -9193015133814464522 + WORD $0xccd228a4; WORD $0x80e8a40e // .quad -9157889458785081180 + WORD $0x97bf97f3; WORD $0xa086cfcd // .quad -6879582898840692749 + WORD $0x8006b2cd; WORD $0x6122cd12 // .quad 6999382250228200141 + WORD $0xfdaf7df0; WORD $0xc8a883c0 // .quad -3987792605123478032 + WORD $0x20085f81; WORD $0x796b8057 // .quad 8749227812785250177 + WORD $0x3d1b5d6c; WORD $0xfad2a4b1 // .quad -373054737976959636 + WORD $0x74053bb0; WORD $0xcbe33036 // .quad -3755104653863994448 + WORD $0xc6311a63; WORD $0x9cc3a6ee // .quad -7150688238876681629 + WORD $0x11068a9c; WORD $0xbedbfc44 // .quad -4693880817329993060 + WORD $0x77bd60fc; WORD $0xc3f490aa // .quad -4326674280168464132 + WORD $0x15482d44; WORD $0xee92fb55 // .quad -1255665003235103420 + WORD $0x15acb93b; WORD $0xf4f1b4d5 // .quad -796656831783192261 + WORD $0x2d4d1c4a; WORD $0x751bdd15 // .quad 8438581409832836170 + WORD $0x2d8bf3c5; WORD $0x99171105 // .quad -7415439547505577019 + WORD $0x78a0635d; WORD $0xd262d45a // .quad -3286831292991118499 + WORD $0x78eef0b6; WORD $0xbf5cd546 // .quad -4657613415954583370 + WORD $0x16c87c34; WORD $0x86fb8971 // .quad -8720225134666286028 + WORD $0x172aace4; WORD $0xef340a98 // .quad -1210330751515841308 + WORD $0xae3d4da0; WORD $0xd45d35e6 // .quad -3144297699952734816 + WORD $0x0e7aac0e; WORD $0x9580869f // .quad -7673985747338482674 + WORD $0x59cca109; WORD $0x89748360 // .quad -8542058143368306423 + WORD $0xd2195712; WORD $0xbae0a846 // .quad -4980796165745715438 + WORD $0x703fc94b; WORD $0x2bd1a438 // .quad 3157485376071780683 + WORD $0x869facd7; WORD $0xe998d258 // .quad -1614309188754756393 + WORD $0x4627ddcf; WORD $0x7b6306a3 // .quad 8890957387685944783 + WORD $0x5423cc06; WORD $0x91ff8377 // .quad -7926472270612804602 + WORD $0x17b1d542; WORD $0x1a3bc84c // .quad 1890324697752655170 + WORD $0x292cbf08; WORD $0xb67f6455 // .quad -5296404319838617848 + WORD $0x1d9e4a93; WORD $0x20caba5f // .quad 2362905872190818963 + WORD $0x7377eeca; WORD $0xe41f3d6a // .quad -2008819381370884406 + WORD $0x7282ee9c; WORD $0x547eb47b // .quad 6088502188546649756 + WORD $0x882af53e; WORD $0x8e938662 // .quad -8173041140997884610 + WORD $0x4f23aa43; WORD $0xe99e619a // .quad -1612744301171463613 + WORD $0x2a35b28d; WORD $0xb23867fb // .quad -5604615407819967859 + WORD $0xe2ec94d4; WORD $0x6405fa00 // .quad 7207441660390446292 + WORD $0xf4c31f31; WORD $0xdec681f9 // .quad -2394083241347571919 + WORD $0x8dd3dd04; WORD $0xde83bc40 // .quad -2412877989897052924 + WORD $0x38f9f37e; WORD $0x8b3c113c // .quad -8413831053483314306 + WORD $0xb148d445; WORD $0x9624ab50 // .quad -7627783505798704059 + WORD $0x4738705e; WORD $0xae0b158b // .quad -5905602798426754978 + WORD $0xdd9b0957; WORD $0x3badd624 // .quad 4300328673033783639 + WORD $0x19068c76; WORD $0xd98ddaee // .quad -2770317479606055818 + WORD $0x0a80e5d6; WORD $0xe54ca5d7 // .quad -1923980597781273130 + WORD $0xcfa417c9; WORD $0x87f8a8d4 // .quad -8648977452394866743 + WORD $0xcd211f4c; WORD $0x5e9fcf4c // .quad 6818396289628184396 + WORD $0x038d1dbc; WORD $0xa9f6d30a // .quad -6199535797066195524 + WORD $0x0069671f; WORD $0x7647c320 // .quad 8522995362035230495 + WORD $0x8470652b; WORD $0xd47487cc // .quad -3137733727905356501 + WORD $0x0041e073; WORD $0x29ecd9f4 // .quad 3021029092058325107 + WORD $0xd2c63f3b; WORD $0x84c8d4df // .quad -8878612607581929669 + WORD $0x00525890; WORD $0xf4681071 // .quad -835399653354481520 + WORD $0xc777cf09; WORD $0xa5fb0a17 // .quad -6486579741050024183 + WORD $0x4066eeb4; WORD $0x7182148d // .quad 8179122470161673908 + WORD $0xb955c2cc; WORD $0xcf79cc9d // .quad -3496538657885142324 + WORD $0x48405530; WORD $0xc6f14cd8 // .quad -4111420493003729616 + WORD $0x93d599bf; WORD $0x81ac1fe2 // .quad -9102865688819295809 + WORD $0x5a506a7c; WORD $0xb8ada00e // .quad -5139275616254662020 + WORD $0x38cb002f; WORD $0xa21727db // .quad -6766896092596731857 + WORD $0xf0e4851c; WORD $0xa6d90811 // .quad -6424094520318327524 + WORD $0x06fdc03b; WORD $0xca9cf1d2 // .quad -3846934097318526917 + WORD $0x6d1da663; WORD $0x908f4a16 // .quad -8030118150397909405 + WORD $0x88bd304a; WORD $0xfd442e46 // .quad -196981603220770742 + WORD $0x043287fe; WORD $0x9a598e4e // .quad -7324666853212387330 + WORD $0x15763e2e; WORD $0x9e4a9cec // .quad -7040642529654063570 + WORD $0x853f29fd; WORD $0x40eff1e1 // .quad 4679224488766679549 + WORD $0x1ad3cdba; WORD $0xc5dd4427 // .quad -4189117143640191558 + WORD $0xe68ef47c; WORD $0xd12bee59 // .quad -3374341425896426372 + WORD $0xe188c128; WORD $0xf7549530 // .quad -624710411122851544 + WORD $0x301958ce; WORD $0x82bb74f8 // .quad -9026492418826348338 + WORD $0x8cf578b9; WORD $0x9a94dd3e // .quad -7307973034592864071 + WORD $0x3c1faf01; WORD $0xe36a5236 // .quad -2059743486678159615 + WORD $0x3032d6e7; WORD $0xc13a148e // .quad -4523280274813692185 + WORD $0xcb279ac1; WORD $0xdc44e6c3 // .quad -2574679358347699519 + WORD $0xbc3f8ca1; WORD $0xf18899b1 // .quad -1042414325089727327 + WORD $0x5ef8c0b9; WORD $0x29ab103a // .quad 3002511419460075705 + WORD $0x15a7b7e5; WORD $0x96f5600f // .quad -7569037980822161435 + WORD $0xf6b6f0e7; WORD $0x7415d448 // .quad 8364825292752482535 + WORD $0xdb11a5de; WORD $0xbcb2b812 // .quad -4849611457600313890 + WORD $0x3464ad21; WORD $0x111b495b // .quad 1232659579085827361 + WORD $0x91d60f56; WORD $0xebdf6617 // .quad -1450328303573004458 + WORD $0x00beec34; WORD $0xcab10dd9 // .quad -3841273781498745804 + WORD $0xbb25c995; WORD $0x936b9fce // .quad -7823984217374209643 + WORD $0x40eea742; WORD $0x3d5d514f // .quad 4421779809981343554 + WORD $0x69ef3bfb; WORD $0xb84687c2 // .quad -5168294253290374149 + WORD $0x112a5112; WORD $0x0cb4a5a3 // .quad 915538744049291538 + WORD $0x046b0afa; WORD $0xe65829b3 // .quad -1848681798185579782 + WORD $0xeaba72ab; WORD $0x47f0e785 // .quad 5183897733458195115 + WORD $0xe2c2e6dc; WORD $0x8ff71a0f // .quad -8072955151507069220 + WORD $0x65690f56; WORD $0x59ed2167 // .quad 6479872166822743894 + WORD $0xdb73a093; WORD $0xb3f4e093 // .quad -5479507920956448621 + WORD $0x3ec3532c; WORD $0x306869c1 // .quad 3488154190101041964 + WORD $0xd25088b8; WORD $0xe0f218b8 // .quad -2237698882768172872 + WORD $0xc73a13fb; WORD $0x1e414218 // .quad 2180096368813151227 + WORD $0x83725573; WORD $0x8c974f73 // .quad -8316090829371189901 + WORD $0xf90898fa; WORD $0xe5d1929e // .quad -1886565557410948870 + WORD $0x644eeacf; WORD $0xafbd2350 // .quad -5783427518286599473 + WORD $0xb74abf39; WORD $0xdf45f746 // .quad -2358206946763686087 + WORD $0x7d62a583; WORD $0xdbac6c24 // .quad -2617598379430861437 + WORD $0x328eb783; WORD $0x6b8bba8c // .quad 7749492695127472003 + WORD $0xce5da772; WORD $0x894bc396 // .quad -8553528014785370254 + WORD $0x3f326564; WORD $0x066ea92f // .quad 463493832054564196 + WORD $0x81f5114f; WORD $0xab9eb47c // .quad -6080224000054324913 + WORD $0x0efefebd; WORD $0xc80a537b // .quad -4032318728359182659 + WORD $0xa27255a2; WORD $0xd686619b // .quad -2988593981640518238 + WORD $0xe95f5f36; WORD $0xbd06742c // .quad -4826042214438183114 + WORD $0x45877585; WORD $0x8613fd01 // .quad -8785400266166405755 + WORD $0x23b73704; WORD $0x2c481138 // .quad 3190819268807046916 + WORD $0x96e952e7; WORD $0xa798fc41 // .quad -6370064314280619289 + WORD $0x2ca504c5; WORD $0xf75a1586 // .quad -623161932418579259 + WORD $0xfca3a7a0; WORD $0xd17f3b51 // .quad -3350894374423386208 + WORD $0xdbe722fb; WORD $0x9a984d73 // .quad -7307005235402693893 + WORD $0x3de648c4; WORD $0x82ef8513 // .quad -9011838011655698236 + WORD $0xd2e0ebba; WORD $0xc13e60d0 // .quad -4522070525825979462 + WORD $0x0d5fdaf5; WORD $0xa3ab6658 // .quad -6653111496142234891 + WORD $0x079926a8; WORD $0x318df905 // .quad 3570783879572301480 + WORD $0x10b7d1b3; WORD $0xcc963fee // .quad -3704703351750405709 + WORD $0x497f7052; WORD $0xfdf17746 // .quad -148206168962011054 + WORD $0x94e5c61f; WORD $0xffbbcfe9 // .quad -19193171260619233 + WORD $0xedefa633; WORD $0xfeb6ea8b // .quad -92628855601256909 + WORD $0xfd0f9bd3; WORD $0x9fd561f1 // .quad -6929524759678968877 + WORD $0xe96b8fc0; WORD $0xfe64a52e // .quad -115786069501571136 + WORD $0x7c5382c8; WORD $0xc7caba6e // .quad -4050219931171323192 + WORD $0xa3c673b0; WORD $0x3dfdce7a // .quad 4466953431550423984 + WORD $0x1b68637b; WORD $0xf9bd690a // .quad -451088895536766085 + WORD $0xa65c084e; WORD $0x06bea10c // .quad 486002885505321038 + WORD $0x51213e2d; WORD $0x9c1661a6 // .quad -7199459587351560659 + WORD $0xcff30a62; WORD $0x486e494f // .quad 5219189625309039202 + WORD $0xe5698db8; WORD $0xc31bfa0f // .quad -4387638465762062920 + WORD $0xc3efccfa; WORD $0x5a89dba3 // .quad 6523987031636299002 + WORD $0xdec3f126; WORD $0xf3e2f893 // .quad -872862063775190746 + WORD $0x5a75e01c; WORD $0xf8962946 // .quad -534194123654701028 + WORD $0x6b3a76b7; WORD $0x986ddb5c // .quad -7463067817500576073 + WORD $0xf1135823; WORD $0xf6bbb397 // .quad -667742654568376285 + WORD $0x86091465; WORD $0xbe895233 // .quad -4717148753448332187 + WORD $0xed582e2c; WORD $0x746aa07d // .quad 8388693718644305452 + WORD $0x678b597f; WORD $0xee2ba6c0 // .quad -1284749923383027329 + WORD $0xb4571cdc; WORD $0xa8c2a44e // .quad -6286281471915778852 + WORD $0x40b717ef; WORD $0x94db4838 // .quad -7720497729755473937 + WORD $0x616ce413; WORD $0x92f34d62 // .quad -7857851839894723565 + WORD $0x50e4ddeb; WORD $0xba121a46 // .quad -5038936143766954517 + WORD $0xf9c81d17; WORD $0x77b020ba // .quad 8624429273841147159 + WORD $0xe51e1566; WORD $0xe896a0d7 // .quad -1686984161281305242 + WORD $0xdc1d122e; WORD $0x0ace1474 // .quad 778582277723329070 + WORD $0xef32cd60; WORD $0x915e2486 // .quad -7971894128441897632 + WORD $0x132456ba; WORD $0x0d819992 // .quad 973227847154161338 + WORD $0xaaff80b8; WORD $0xb5b5ada8 // .quad -5353181642124984136 + WORD $0x97ed6c69; WORD $0x10e1fff6 // .quad 1216534808942701673 + WORD $0xd5bf60e6; WORD $0xe3231912 // .quad -2079791034228842266 + WORD $0x1ef463c1; WORD $0xca8d3ffa // .quad -3851351762838199359 + WORD $0xc5979c8f; WORD $0x8df5efab // .quad -8217398424034108273 + WORD $0xa6b17cb2; WORD $0xbd308ff8 // .quad -4814189703547749198 + WORD $0xb6fd83b3; WORD $0xb1736b96 // .quad -5660062011615247437 + WORD $0xd05ddbde; WORD $0xac7cb3f6 // .quad -6017737129434686498 + WORD $0x64bce4a0; WORD $0xddd0467c // .quad -2463391496091671392 + WORD $0x423aa96b; WORD $0x6bcdf07a // .quad 7768129340171790699 + WORD $0xbef60ee4; WORD $0x8aa22c0d // .quad -8457148712698376476 + WORD $0xd2c953c6; WORD $0x86c16c98 // .quad -8736582398494813242 + WORD $0x2eb3929d; WORD $0xad4ab711 // .quad -5959749872445582691 + WORD $0x077ba8b7; WORD $0xe871c7bf // .quad -1697355961263740745 + WORD $0x7a607744; WORD $0xd89d64d5 // .quad -2838001322129590460 + WORD $0x64ad4972; WORD $0x11471cd7 // .quad 1244995533423855986 + WORD $0x6c7c4a8b; WORD $0x87625f05 // .quad -8691279853972075893 + WORD $0x3dd89bcf; WORD $0xd598e40d // .quad -3055441601647567921 + WORD $0xc79b5d2d; WORD $0xa93af6c6 // .quad -6252413799037706963 + WORD $0x8d4ec2c3; WORD $0x4aff1d10 // .quad 5404070034795315907 + WORD $0x79823479; WORD $0xd389b478 // .quad -3203831230369745799 + WORD $0x585139ba; WORD $0xcedf722a // .quad -3539985255894009414 + WORD $0x4bf160cb; WORD $0x843610cb // .quad -8919923546622172981 + WORD $0xee658828; WORD $0xc2974eb4 // .quad -4424981569867511768 + WORD $0x1eedb8fe; WORD $0xa54394fe // .quad -6538218414850328322 + WORD $0x29feea32; WORD $0x733d2262 // .quad 8303831092947774002 + WORD $0xa6a9273e; WORD $0xce947a3d // .quad -3561087000135522498 + WORD $0x5a3f525f; WORD $0x0806357d // .quad 578208414664970847 + WORD $0x8829b887; WORD $0x811ccc66 // .quad -9143208402725783417 + WORD $0xb0cf26f7; WORD $0xca07c2dc // .quad -3888925500096174345 + WORD $0x2a3426a8; WORD $0xa163ff80 // .quad -6817324484979841368 + WORD $0xdd02f0b5; WORD $0xfc89b393 // .quad -249470856692830027 + WORD $0x34c13052; WORD $0xc9bcff60 // .quad -3909969587797413806 + WORD $0xd443ace2; WORD $0xbbac2078 // .quad -4923524589293425438 + WORD $0x41f17c67; WORD $0xfc2c3f38 // .quad -275775966319379353 + WORD $0x84aa4c0d; WORD $0xd54b944b // .quad -3077202868308390899 + WORD $0x2936edc0; WORD $0x9d9ba783 // .quad -7089889006590693952 + WORD $0x65d4df11; WORD $0x0a9e795e // .quad 765182433041899281 + WORD $0xf384a931; WORD $0xc5029163 // .quad -4250675239810979535 + WORD $0xff4a16d5; WORD $0x4d4617b5 // .quad 5568164059729762005 + WORD $0xf065d37d; WORD $0xf64335bc // .quad -701658031336336515 + WORD $0xbf8e4e45; WORD $0x504bced1 // .quad 5785945546544795205 + WORD $0x163fa42e; WORD $0x99ea0196 // .quad -7356065297226292178 + WORD $0x2f71e1d6; WORD $0xe45ec286 // .quad -1990940103673781802 + WORD $0x9bcf8d39; WORD $0xc06481fb // .quad -4583395603105477319 + WORD $0xbb4e5a4c; WORD $0x5d767327 // .quad 6734696907262548556 + WORD $0x82c37088; WORD $0xf07da27a // .quad -1117558485454458744 + WORD $0xd510f86f; WORD $0x3a6a07f8 // .quad 4209185567039092847 + WORD $0x91ba2655; WORD $0x964e858c // .quad -7616003081050118571 + WORD $0x0a55368b; WORD $0x890489f7 // .quad -8573576096483297653 + WORD $0xb628afea; WORD $0xbbe226ef // .quad -4908317832885260310 + WORD $0xccea842e; WORD $0x2b45ac74 // .quad 3118087934678041646 + WORD $0xa3b2dbe5; WORD $0xeadab0ab // .quad -1523711272679187483 + WORD $0x0012929d; WORD $0x3b0b8bc9 // .quad 4254647968387469981 + WORD $0x464fc96f; WORD $0x92c8ae6b // .quad -7869848573065574033 + WORD $0x40173744; WORD $0x09ce6ebb // .quad 706623942056949572 + WORD $0x17e3bbcb; WORD $0xb77ada06 // .quad -5225624697904579637 + WORD $0x101d0515; WORD $0xcc420a6a // .quad -3728406090856200939 + WORD $0x9ddcaabd; WORD $0xe5599087 // .quad -1920344853953336643 + WORD $0x4a12232d; WORD $0x9fa94682 // .quad -6941939825212513491 + WORD $0xc2a9eab6; WORD $0x8f57fa54 // .quad -8117744561361917258 + WORD $0xdc96abf9; WORD $0x47939822 // .quad 5157633273766521849 + WORD $0xf3546564; WORD $0xb32df8e9 // .quad -5535494683275008668 + WORD $0x93bc56f7; WORD $0x59787e2b // .quad 6447041592208152311 + WORD $0x70297ebd; WORD $0xdff97724 // .quad -2307682335666372931 + WORD $0x3c55b65a; WORD $0x57eb4edb // .quad 6335244004343789146 + WORD $0xc619ef36; WORD $0x8bfbea76 // .quad -8359830487432564938 + WORD $0x0b6b23f1; WORD $0xede62292 // .quad -1304317031425039375 + WORD $0x77a06b03; WORD $0xaefae514 // .quad -5838102090863318269 + WORD $0x8e45eced; WORD $0xe95fab36 // .quad -1630396289281299219 + WORD $0x958885c4; WORD $0xdab99e59 // .quad -2685941595151759932 + WORD $0x18ebb414; WORD $0x11dbcb02 // .quad 1286845328412881940 + WORD $0xfd75539b; WORD $0x88b402f7 // .quad -8596242524610931813 + WORD $0x9f26a119; WORD $0xd652bdc2 // .quad -3003129357911285479 + WORD $0xfcd2a881; WORD $0xaae103b5 // .quad -6133617137336276863 + WORD $0x46f0495f; WORD $0x4be76d33 // .quad 5469460339465668959 + WORD $0x7c0752a2; WORD $0xd59944a3 // .quad -3055335403242958174 + WORD $0x0c562ddb; WORD $0x6f70a440 // .quad 8030098730593431003 + WORD $0x2d8493a5; WORD $0x857fcae6 // .quad -8827113654667930715 + WORD $0x0f6bb952; WORD $0xcb4ccd50 // .quad -3797434642040374958 + WORD $0xb8e5b88e; WORD $0xa6dfbd9f // .quad -6422206049907525490 + WORD $0x1346a7a7; WORD $0x7e2000a4 // .quad 9088264752731695015 + WORD $0xa71f26b2; WORD $0xd097ad07 // .quad -3416071543957018958 + WORD $0x8c0c28c8; WORD $0x8ed40066 // .quad -8154892584824854328 + WORD $0xc873782f; WORD $0x825ecc24 // .quad -9052573742614218705 + WORD $0x2f0f32fa; WORD $0x72890080 // .quad 8253128342678483706 + WORD $0xfa90563b; WORD $0xa2f67f2d // .quad -6704031159840385477 + WORD $0x3ad2ffb9; WORD $0x4f2b40a0 // .quad 5704724409920716729 + WORD $0x79346bca; WORD $0xcbb41ef9 // .quad -3768352931373093942 + WORD $0x4987bfa8; WORD $0xe2f610c8 // .quad -2092466524453879896 + WORD $0xd78186bc; WORD $0xfea126b7 // .quad -98755145788979524 + WORD $0x2df4d7c9; WORD $0x0dd9ca7d // .quad 998051431430019017 + WORD $0xe6b0f436; WORD $0x9f24b832 // .quad -6979250993759194058 + WORD $0x79720dbb; WORD $0x91503d1c // .quad -7975807747567252037 + WORD $0xa05d3143; WORD $0xc6ede63f // .quad -4112377723771604669 + WORD $0x97ce912a; WORD $0x75a44c63 // .quad 8476984389250486570 + WORD $0x88747d94; WORD $0xf8a95fcf // .quad -528786136287117932 + WORD $0x3ee11aba; WORD $0xc986afbe // .quad -3925256793573221702 + WORD $0xb548ce7c; WORD $0x9b69dbe1 // .quad -7248020362820530564 + WORD $0xce996168; WORD $0xfbe85bad // .quad -294884973539139224 + WORD $0x229b021b; WORD $0xc24452da // .quad -4448339435098275301 + WORD $0x423fb9c3; WORD $0xfae27299 // .quad -368606216923924029 + WORD $0xab41c2a2; WORD $0xf2d56790 // .quad -948738275445456222 + WORD $0xc967d41a; WORD $0xdccd879f // .quad -2536221894791146470 + WORD $0x6b0919a5; WORD $0x97c560ba // .quad -7510490449794491995 + WORD $0xbbc1c920; WORD $0x5400e987 // .quad 6053094668365842720 + WORD $0x05cb600f; WORD $0xbdb6b8e9 // .quad -4776427043815727089 + WORD $0xaab23b68; WORD $0x290123e9 // .quad 2954682317029915496 + WORD $0x473e3813; WORD $0xed246723 // .quad -1358847786342270957 + WORD $0x0aaf6521; WORD $0xf9a0b672 // .quad -459166561069996767 + WORD $0x0c86e30b; WORD $0x9436c076 // .quad -7766808894105001205 + WORD $0x8d5b3e69; WORD $0xf808e40e // .quad -573958201337495959 + WORD $0x8fa89bce; WORD $0xb9447093 // .quad -5096825099203863602 + WORD $0x30b20e04; WORD $0xb60b1d12 // .quad -5329133770099257852 + WORD $0x7392c2c2; WORD $0xe7958cb8 // .quad -1759345355577441598 + WORD $0x5e6f48c2; WORD $0xb1c6f22b // .quad -5636551615525730110 + WORD $0x483bb9b9; WORD $0x90bd77f3 // .quad -8017119874876982855 + WORD $0x360b1af3; WORD $0x1e38aeb6 // .quad 2177682517447613171 + WORD $0x1a4aa828; WORD $0xb4ecd5f0 // .quad -5409713825168840664 + WORD $0xc38de1b0; WORD $0x25c6da63 // .quad 2722103146809516464 + WORD $0x20dd5232; WORD $0xe2280b6c // .quad -2150456263033662926 + WORD $0x5a38ad0e; WORD $0x579c487e // .quad 6313000485183335694 + WORD $0x948a535f; WORD $0x8d590723 // .quad -8261564192037121185 + WORD $0xf0c6d851; WORD $0x2d835a9d // .quad 3279564588051781713 + WORD $0x79ace837; WORD $0xb0af48ec // .quad -5715269221619013577 + WORD $0x6cf88e65; WORD $0xf8e43145 // .quad -512230283362660763 + WORD $0x98182244; WORD $0xdcdb1b27 // .quad -2532400508596379068 + WORD $0x641b58ff; WORD $0x1b8e9ecb // .quad 1985699082112030975 + WORD $0xbf0f156b; WORD $0x8a08f0f8 // .quad -8500279345513818773 + WORD $0x3d222f3f; WORD $0xe272467e // .quad -2129562165787349185 + WORD $0xeed2dac5; WORD $0xac8b2d36 // .quad -6013663163464885563 + WORD $0xcc6abb0f; WORD $0x5b0ed81d // .quad 6561419329620589327 + WORD $0xaa879177; WORD $0xd7adf884 // .quad -2905392935903719049 + WORD $0x9fc2b4e9; WORD $0x98e94712 // .quad -7428327965055601431 + WORD $0xea94baea; WORD $0x86ccbb52 // .quad -8733399612580906262 + WORD $0x47b36224; WORD $0x3f2398d7 // .quad 4549648098962661924 + WORD $0xa539e9a5; WORD $0xa87fea27 // .quad -6305063497298744923 + WORD $0x19a03aad; WORD $0x8eec7f0d // .quad -8147997931578836307 + WORD $0x8e88640e; WORD $0xd29fe4b1 // .quad -3269643353196043250 + WORD $0x300424ac; WORD $0x1953cf68 // .quad 1825030320404309164 + WORD $0xf9153e89; WORD $0x83a3eeee // .quad -8961056123388608887 + WORD $0x3c052dd7; WORD $0x5fa8c342 // .quad 6892973918932774359 + WORD $0xb75a8e2b; WORD $0xa48ceaaa // .quad -6589634135808373205 + WORD $0xcb06794d; WORD $0x3792f412 // .quad 4004531380238580045 + WORD $0x653131b6; WORD $0xcdb02555 // .quad -3625356651333078602 + WORD $0xbee40bd0; WORD $0xe2bbd88b // .quad -2108853905778275376 + WORD $0x5f3ebf11; WORD $0x808e1755 // .quad -9183376934724255983 + WORD $0xae9d0ec4; WORD $0x5b6aceae // .quad 6587304654631931588 + WORD $0xb70e6ed6; WORD $0xa0b19d2a // .quad -6867535149977932074 + WORD $0x5a445275; WORD $0xf245825a // .quad -989241218564861323 + WORD $0x64d20a8b; WORD $0xc8de0475 // .quad -3972732919045027189 + WORD $0xf0d56712; WORD $0xeed6e2f0 // .quad -1236551523206076654 + WORD $0xbe068d2e; WORD $0xfb158592 // .quad -354230130378896082 + WORD $0x9685606b; WORD $0x55464dd6 // .quad 6144684325637283947 + WORD $0xb6c4183d; WORD $0x9ced737b // .quad -7138922859127891907 + WORD $0x3c26b886; WORD $0xaa97e14c // .quad -6154202648235558778 + WORD $0xa4751e4c; WORD $0xc428d05a // .quad -4311967555482476980 + WORD $0x4b3066a8; WORD $0xd53dd99f // .quad -3081067291867060568 + WORD $0x4d9265df; WORD $0xf5330471 // .quad -778273425925708321 + WORD $0x8efe4029; WORD $0xe546a803 // .quad -1925667057416912855 + WORD $0xd07b7fab; WORD $0x993fe2c6 // .quad -7403949918844649557 + WORD $0x72bdd033; WORD $0xde985204 // .quad -2407083821771141069 + WORD $0x849a5f96; WORD $0xbf8fdb78 // .quad -4643251380128424042 + WORD $0x8f6d4440; WORD $0x963e6685 // .quad -7620540795641314240 + WORD $0xa5c0f77c; WORD $0xef73d256 // .quad -1192378206733142148 + WORD $0x79a44aa8; WORD $0xdde70013 // .quad -2456994988062127448 + WORD $0x27989aad; WORD $0x95a86376 // .quad -7662765406849295699 + WORD $0x580d5d52; WORD $0x5560c018 // .quad 6152128301777116498 + WORD $0xb17ec159; WORD $0xbb127c53 // .quad -4966770740134231719 + WORD $0x6e10b4a6; WORD $0xaab8f01e // .quad -6144897678060768090 + WORD $0x9dde71af; WORD $0xe9d71b68 // .quad -1596777406740401745 + WORD $0x04ca70e8; WORD $0xcab39613 // .quad -3840561048787980056 + WORD $0x62ab070d; WORD $0x92267121 // .quad -7915514906853832947 + WORD $0xc5fd0d22; WORD $0x3d607b97 // .quad 4422670725869800738 + WORD $0xbb55c8d1; WORD $0xb6b00d69 // .quad -5282707615139903279 + WORD $0xb77c506a; WORD $0x8cb89a7d // .quad -8306719647944912790 + WORD $0x2a2b3b05; WORD $0xe45c10c4 // .quad -1991698500497491195 + WORD $0x92adb242; WORD $0x77f3608e // .quad 8643358275316593218 + WORD $0x9a5b04e3; WORD $0x8eb98a7a // .quad -8162340590452013853 + WORD $0x37591ed3; WORD $0x55f038b2 // .quad 6192511825718353619 + WORD $0x40f1c61c; WORD $0xb267ed19 // .quad -5591239719637629412 + WORD $0xc52f6688; WORD $0x6b6c46de // .quad 7740639782147942024 + WORD $0x912e37a3; WORD $0xdf01e85f // .quad -2377363631119648861 + WORD $0x3b3da015; WORD $0x2323ac4b // .quad 2532056854628769813 + WORD $0xbabce2c6; WORD $0x8b61313b // .quad -8403381297090862394 + WORD $0x0a0d081a; WORD $0xabec975e // .quad -6058300968568813542 + WORD $0xa96c1b77; WORD $0xae397d8a // .quad -5892540602936190089 + WORD $0x8c904a21; WORD $0x96e7bd35 // .quad -7572876210711016927 + WORD $0x53c72255; WORD $0xd9c7dced // .quad -2753989735242849707 + WORD $0x77da2e54; WORD $0x7e50d641 // .quad 9102010423587778132 + WORD $0x545c7575; WORD $0x881cea14 // .quad -8638772612167862923 + WORD $0xd5d0b9e9; WORD $0xdde50bd1 // .quad -2457545025797441047 + WORD $0x697392d2; WORD $0xaa242499 // .quad -6186779746782440750 + WORD $0x4b44e864; WORD $0x955e4ec6 // .quad -7683617300674189212 + WORD $0xc3d07787; WORD $0xd4ad2dbf // .quad -3121788665050663033 + WORD $0xef0b113e; WORD $0xbd5af13b // .quad -4802260812921368258 + WORD $0xda624ab4; WORD $0x84ec3c97 // .quad -8868646943297746252 + WORD $0xeacdd58e; WORD $0xecb1ad8a // .quad -1391139997724322418 + WORD $0xd0fadd61; WORD $0xa6274bbd // .quad -6474122660694794911 + WORD $0xa5814af2; WORD $0x67de18ed // .quad 7484447039699372786 + WORD $0x453994ba; WORD $0xcfb11ead // .quad -3480967307441105734 + WORD $0x8770ced7; WORD $0x80eacf94 // .quad -9157278655470055721 + WORD $0x4b43fcf4; WORD $0x81ceb32c // .quad -9093133594791772940 + WORD $0xa94d028d; WORD $0xa1258379 // .quad -6834912300910181747 + WORD $0x5e14fc31; WORD $0xa2425ff7 // .quad -6754730975062328271 + WORD $0x13a04330; WORD $0x096ee458 // .quad 679731660717048624 + WORD $0x359a3b3e; WORD $0xcad2f7f5 // .quad -3831727700400522434 + WORD $0x188853fc; WORD $0x8bca9d6e // .quad -8373707460958465028 + WORD $0x8300ca0d; WORD $0xfd87b5f2 // .quad -177973607073265139 + WORD $0xcf55347d; WORD $0x775ea264 // .quad 8601490892183123069 + WORD $0x91e07e48; WORD $0x9e74d1b7 // .quad -7028762532061872568 + WORD $0x032a819d; WORD $0x95364afe // .quad -7694880458480647779 + WORD $0x76589dda; WORD $0xc6120625 // .quad -4174267146649952806 + WORD $0x83f52204; WORD $0x3a83ddbd // .quad 4216457482181353988 + WORD $0xd3eec551; WORD $0xf79687ae // .quad -606147914885053103 + WORD $0x72793542; WORD $0xc4926a96 // .quad -4282243101277735614 + WORD $0x44753b52; WORD $0x9abe14cd // .quad -7296371474444240046 + WORD $0x0f178293; WORD $0x75b7053c // .quad 8482254178684994195 + WORD $0x95928a27; WORD $0xc16d9a00 // .quad -4508778324627912153 + WORD $0x12dd6338; WORD $0x5324c68b // .quad 5991131704928854840 + WORD $0xbaf72cb1; WORD $0xf1c90080 // .quad -1024286887357502287 + WORD $0xebca5e03; WORD $0xd3f6fc16 // .quad -3173071712060547581 + WORD $0x74da7bee; WORD $0x971da050 // .quad -7557708332239520786 + WORD $0xa6bcf584; WORD $0x88f4bb1c // .quad -8578025658503072380 + WORD $0x92111aea; WORD $0xbce50864 // .quad -4835449396872013078 + WORD $0xd06c32e5; WORD $0x2b31e9e3 // .quad 3112525982153323237 + WORD $0xb69561a5; WORD $0xec1e4a7d // .quad -1432625727662628443 + WORD $0x62439fcf; WORD $0x3aff322e // .quad 4251171748059520975 + WORD $0x921d5d07; WORD $0x9392ee8e // .quad -7812920107430224633 + WORD $0xfad487c2; WORD $0x09befeb9 // .quad 702278666647013314 + WORD $0x36a4b449; WORD $0xb877aa32 // .quad -5154464115860392887 + WORD $0x7989a9b3; WORD $0x4c2ebe68 // .quad 5489534351736154547 + WORD $0xc44de15b; WORD $0xe69594be // .quad -1831394126398103205 + WORD $0x4bf60a10; WORD $0x0f9d3701 // .quad 1125115960621402640 + WORD $0x3ab0acd9; WORD $0x901d7cf7 // .quad -8062150356639896359 + WORD $0x9ef38c94; WORD $0x538484c1 // .quad 6018080969204141204 + WORD $0x095cd80f; WORD $0xb424dc35 // .quad -5466001927372482545 + WORD $0x06b06fb9; WORD $0x2865a5f2 // .quad 2910915193077788601 + WORD $0x4bb40e13; WORD $0xe12e1342 // .quad -2220816390788215277 + WORD $0x442e45d3; WORD $0xf93f87b7 // .quad -486521013540076077 + WORD $0x6f5088cb; WORD $0x8cbccc09 // .quad -8305539271883716405 + WORD $0x1539d748; WORD $0xf78f69a5 // .quad -608151266925095096 + WORD $0xcb24aafe; WORD $0xafebff0b // .quad -5770238071427257602 + WORD $0x5a884d1b; WORD $0xb573440e // .quad -5371875102083756773 + WORD $0xbdedd5be; WORD $0xdbe6fece // .quad -2601111570856684098 + WORD $0xf8953030; WORD $0x31680a88 // .quad 3560107088838733872 + WORD $0x36b4a597; WORD $0x89705f41 // .quad -8543223759426509417 + WORD $0x36ba7c3d; WORD $0xfdc20d2b // .quad -161552157378970563 + WORD $0x8461cefc; WORD $0xabcc7711 // .quad -6067343680855748868 + WORD $0x04691b4c; WORD $0x3d329076 // .quad 4409745821703674700 + WORD $0xe57a42bc; WORD $0xd6bf94d5 // .quad -2972493582642298180 + WORD $0xc2c1b10f; WORD $0xa63f9a49 // .quad -6467280898289979121 + WORD $0xaf6c69b5; WORD $0x8637bd05 // .quad -8775337516792518219 + WORD $0x33721d53; WORD $0x0fcf80dc // .quad 1139270913992301907 + WORD $0x1b478423; WORD $0xa7c5ac47 // .quad -6357485877563259869 + WORD $0x404ea4a8; WORD $0xd3c36113 // .quad -3187597375937010520 + WORD $0xe219652b; WORD $0xd1b71758 // .quad -3335171328526686933 + WORD $0x083126e9; WORD $0x645a1cac // .quad 7231123676894144233 + WORD $0x8d4fdf3b; WORD $0x83126e97 // .quad -9002011107970261189 + WORD $0x0a3d70a3; WORD $0x3d70a3d7 // .quad 4427218577690292387 + WORD $0x70a3d70a; WORD $0xa3d70a3d // .quad -6640827866535438582 + WORD $0xcccccccc // .space 4, '\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc' + WORD $0xcccccccc // .space 4, '\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc' + WORD $0xcccccccc // .space 4, '\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc' + WORD $0xcccccccc // .space 4, '\xcc\xcc\xcc\xcc' + WORD $0x00000000; WORD $0x00000000 // .quad 0 + WORD $0x00000000; WORD $0x80000000 // .quad -9223372036854775808 + WORD $0x00000000; WORD $0x00000000 // .quad 0 + WORD $0x00000000; WORD $0xa0000000 // .quad -6917529027641081856 + WORD $0x00000000; WORD $0x00000000 // .quad 0 + WORD $0x00000000; WORD $0xc8000000 // .quad -4035225266123964416 + WORD $0x00000000; WORD $0x00000000 // .quad 0 + WORD $0x00000000; WORD $0xfa000000 // .quad -432345564227567616 + WORD $0x00000000; WORD $0x00000000 // .quad 0 + WORD $0x00000000; WORD $0x9c400000 // .quad -7187745005283311616 + WORD $0x00000000; WORD $0x00000000 // .quad 0 + WORD $0x00000000; WORD $0xc3500000 // .quad -4372995238176751616 + WORD $0x00000000; WORD $0x00000000 // .quad 0 + WORD $0x00000000; WORD $0xf4240000 // .quad -854558029293551616 + WORD $0x00000000; WORD $0x00000000 // .quad 0 + WORD $0x00000000; WORD $0x98968000 // .quad -7451627795949551616 + WORD $0x00000000; WORD $0x00000000 // .quad 0 + WORD $0x00000000; WORD $0xbebc2000 // .quad -4702848726509551616 + WORD $0x00000000; WORD $0x00000000 // .quad 0 + WORD $0x00000000; WORD $0xee6b2800 // .quad -1266874889709551616 + WORD $0x00000000; WORD $0x00000000 // .quad 0 + WORD $0x00000000; WORD $0x9502f900 // .quad -7709325833709551616 + WORD $0x00000000; WORD $0x00000000 // .quad 0 + WORD $0x00000000; WORD $0xba43b740 // .quad -5024971273709551616 + WORD $0x00000000; WORD $0x00000000 // .quad 0 + WORD $0x00000000; WORD $0xe8d4a510 // .quad -1669528073709551616 + WORD $0x00000000; WORD $0x00000000 // .quad 0 + WORD $0x00000000; WORD $0x9184e72a // .quad -7960984073709551616 + WORD $0x00000000; WORD $0x00000000 // .quad 0 + WORD $0x80000000; WORD $0xb5e620f4 // .quad -5339544073709551616 + WORD $0x00000000; WORD $0x00000000 // .quad 0 + WORD $0xa0000000; WORD $0xe35fa931 // .quad -2062744073709551616 + WORD $0x00000000; WORD $0x00000000 // .quad 0 + WORD $0x04000000; WORD $0x8e1bc9bf // .quad -8206744073709551616 + WORD $0x00000000; WORD $0x00000000 // .quad 0 + WORD $0xc5000000; WORD $0xb1a2bc2e // .quad -5646744073709551616 + WORD $0x00000000; WORD $0x00000000 // .quad 0 + WORD $0x76400000; WORD $0xde0b6b3a // .quad -2446744073709551616 + WORD $0x00000000; WORD $0x00000000 // .quad 0 + WORD $0x89e80000; WORD $0x8ac72304 // .quad -8446744073709551616 + WORD $0x00000000; WORD $0x00000000 // .quad 0 + WORD $0xac620000; WORD $0xad78ebc5 // .quad -5946744073709551616 + WORD $0x00000000; WORD $0x00000000 // .quad 0 + WORD $0x177a8000; WORD $0xd8d726b7 // .quad -2821744073709551616 + WORD $0x00000000; WORD $0x00000000 // .quad 0 + WORD $0x6eac9000; WORD $0x87867832 // .quad -8681119073709551616 + WORD $0x00000000; WORD $0x00000000 // .quad 0 + WORD $0x0a57b400; WORD $0xa968163f // .quad -6239712823709551616 + WORD $0x00000000; WORD $0x00000000 // .quad 0 + WORD $0xcceda100; WORD $0xd3c21bce // .quad -3187955011209551616 + WORD $0x00000000; WORD $0x00000000 // .quad 0 + WORD $0x401484a0; WORD $0x84595161 // .quad -8910000909647051616 + WORD $0x00000000; WORD $0x00000000 // .quad 0 + WORD $0x9019a5c8; WORD $0xa56fa5b9 // .quad -6525815118631426616 + WORD $0x00000000; WORD $0x00000000 // .quad 0 + WORD $0xf4200f3a; WORD $0xcecb8f27 // .quad -3545582879861895366 + WORD $0x00000000; WORD $0x40000000 // .quad 4611686018427387904 + WORD $0xf8940984; WORD $0x813f3978 // .quad -9133518327554766460 + WORD $0x00000000; WORD $0x50000000 // .quad 5764607523034234880 + WORD $0x36b90be5; WORD $0xa18f07d7 // .quad -6805211891016070171 + WORD $0x00000000; WORD $0xa4000000 // .quad -6629298651489370112 + WORD $0x04674ede; WORD $0xc9f2c9cd // .quad -3894828845342699810 + WORD $0x00000000; WORD $0x4d000000 // .quad 5548434740920451072 + WORD $0x45812296; WORD $0xfc6f7c40 // .quad -256850038250986858 + WORD $0x00000000; WORD $0xf0200000 // .quad -1143914305352105984 + WORD $0x2b70b59d; WORD $0x9dc5ada8 // .quad -7078060301547948643 + WORD $0x00000000; WORD $0x6c280000 // .quad 7793479155164643328 + WORD $0x364ce305; WORD $0xc5371912 // .quad -4235889358507547899 + WORD $0x00000000; WORD $0xc7320000 // .quad -4093209111326359552 + WORD $0xc3e01bc6; WORD $0xf684df56 // .quad -683175679707046970 + WORD $0x00000000; WORD $0x3c7f4000 // .quad 4359273333062107136 + WORD $0x3a6c115c; WORD $0x9a130b96 // .quad -7344513827457986212 + WORD $0x00000000; WORD $0x4b9f1000 // .quad 5449091666327633920 + WORD $0xc90715b3; WORD $0xc097ce7b // .quad -4568956265895094861 + WORD $0x00000000; WORD $0x1e86d400 // .quad 2199678564482154496 + WORD $0xbb48db20; WORD $0xf0bdc21a // .quad -1099509313941480672 + WORD $0x00000000; WORD $0x13144480 // .quad 1374799102801346560 + WORD $0xb50d88f4; WORD $0x96769950 // .quad -7604722348854507276 + WORD $0x00000000; WORD $0x17d955a0 // .quad 1718498878501683200 + WORD $0xe250eb31; WORD $0xbc143fa4 // .quad -4894216917640746191 + WORD $0x00000000; WORD $0x5dcfab08 // .quad 6759809616554491904 + WORD $0x1ae525fd; WORD $0xeb194f8e // .quad -1506085128623544835 + WORD $0x00000000; WORD $0x5aa1cae5 // .quad 6530724019560251392 + WORD $0xd0cf37be; WORD $0x92efd1b8 // .quad -7858832233030797378 + WORD $0x40000000; WORD $0xf14a3d9e // .quad -1059967012404461568 + WORD $0x050305ad; WORD $0xb7abc627 // .quad -5211854272861108819 + WORD $0xd0000000; WORD $0x6d9ccd05 // .quad 7898413271349198848 + WORD $0xc643c719; WORD $0xe596b7b0 // .quad -1903131822648998119 + WORD $0xa2000000; WORD $0xe4820023 // .quad -1981020733047832576 + WORD $0x7bea5c6f; WORD $0x8f7e32ce // .quad -8106986416796705681 + WORD $0x8a800000; WORD $0xdda2802c // .quad -2476275916309790720 + WORD $0x1ae4f38b; WORD $0xb35dbf82 // .quad -5522047002568494197 + WORD $0xad200000; WORD $0xd50b2037 // .quad -3095344895387238400 + WORD $0xa19e306e; WORD $0xe0352f62 // .quad -2290872734783229842 + WORD $0xcc340000; WORD $0x4526f422 // .quad 4982938468024057856 + WORD $0xa502de45; WORD $0x8c213d9d // .quad -8349324486880600507 + WORD $0x7f410000; WORD $0x9670b12b // .quad -7606384970252091392 + WORD $0x0e4395d6; WORD $0xaf298d05 // .quad -5824969590173362730 + WORD $0x5f114000; WORD $0x3c0cdd76 // .quad 4327076842467049472 + WORD $0x51d47b4c; WORD $0xdaf3f046 // .quad -2669525969289315508 + WORD $0xfb6ac800; WORD $0xa5880a69 // .quad -6518949010312869888 + WORD $0xf324cd0f; WORD $0x88d8762b // .quad -8585982758446904049 + WORD $0x7a457a00; WORD $0x8eea0d04 // .quad -8148686262891087360 + WORD $0xefee0053; WORD $0xab0e93b6 // .quad -6120792429631242157 + WORD $0x98d6d880; WORD $0x72a49045 // .quad 8260886245095692416 + WORD $0xabe98068; WORD $0xd5d238a4 // .quad -3039304518611664792 + WORD $0x7f864750; WORD $0x47a6da2b // .quad 5163053903184807760 + WORD $0xeb71f041; WORD $0x85a36366 // .quad -8817094351773372351 + WORD $0x5f67d924; WORD $0x999090b6 // .quad -7381240676301154012 + WORD $0xa64e6c51; WORD $0xa70c3c40 // .quad -6409681921289327535 + WORD $0xf741cf6d; WORD $0xfff4b4e3 // .quad -3178808521666707 + WORD $0xcfe20765; WORD $0xd0cf4b50 // .quad -3400416383184271515 + WORD $0x7a8921a4; WORD $0xbff8f10e // .quad -4613672773753429596 + WORD $0x81ed449f; WORD $0x82818f12 // .quad -9042789267131251553 + WORD $0x192b6a0d; WORD $0xaff72d52 // .quad -5767090967191786995 + WORD $0x226895c7; WORD $0xa321f2d7 // .quad -6691800565486676537 + WORD $0x9f764490; WORD $0x9bf4f8a6 // .quad -7208863708989733744 + WORD $0xeb02bb39; WORD $0xcbea6f8c // .quad -3753064688430957767 + WORD $0x4753d5b4; WORD $0x02f236d0 // .quad 212292400617608628 + WORD $0x25c36a08; WORD $0xfee50b70 // .quad -79644842111309304 + WORD $0x2c946590; WORD $0x01d76242 // .quad 132682750386005392 + WORD $0x179a2245; WORD $0x9f4f2726 // .quad -6967307053960650171 + WORD $0xb7b97ef5; WORD $0x424d3ad2 // .quad 4777539456409894645 + WORD $0x9d80aad6; WORD $0xc722f0ef // .quad -4097447799023424810 + WORD $0x65a7deb2; WORD $0xd2e08987 // .quad -3251447716342407502 + WORD $0x84e0d58b; WORD $0xf8ebad2b // .quad -510123730351893109 + WORD $0x9f88eb2f; WORD $0x63cc55f4 // .quad 7191217214140771119 + WORD $0x330c8577; WORD $0x9b934c3b // .quad -7236356359111015049 + WORD $0xc76b25fb; WORD $0x3cbf6b71 // .quad 4377335499248575995 + WORD $0xffcfa6d5; WORD $0xc2781f49 // .quad -4433759430461380907 + WORD $0x3945ef7a; WORD $0x8bef464e // .quad -8363388681221443718 + WORD $0x7fc3908a; WORD $0xf316271c // .quad -930513269649338230 + WORD $0xe3cbb5ac; WORD $0x97758bf0 // .quad -7532960934977096276 + WORD $0xcfda3a56; WORD $0x97edd871 // .quad -7499099821171918250 + WORD $0x1cbea317; WORD $0x3d52eeed // .quad 4418856886560793367 + WORD $0x43d0c8ec; WORD $0xbde94e8e // .quad -4762188758037509908 + WORD $0x63ee4bdd; WORD $0x4ca7aaa8 // .quad 5523571108200991709 + WORD $0xd4c4fb27; WORD $0xed63a231 // .quad -1341049929119499481 + WORD $0x3e74ef6a; WORD $0x8fe8caa9 // .quad -8076983103442849942 + WORD $0x24fb1cf8; WORD $0x945e455f // .quad -7755685233340769032 + WORD $0x8e122b44; WORD $0xb3e2fd53 // .quad -5484542860876174524 + WORD $0xee39e436; WORD $0xb975d6b6 // .quad -5082920523248573386 + WORD $0x7196b616; WORD $0x60dbbca8 // .quad 6979379479186945558 + WORD $0xa9c85d44; WORD $0xe7d34c64 // .quad -1741964635633328828 + WORD $0x46fe31cd; WORD $0xbc8955e9 // .quad -4861259862362934835 + WORD $0xea1d3a4a; WORD $0x90e40fbe // .quad -8006256924911912374 + WORD $0x98bdbe41; WORD $0x6babab63 // .quad 7758483227328495169 + WORD $0xa4a488dd; WORD $0xb51d13ae // .quad -5396135137712502563 + WORD $0x7eed2dd1; WORD $0xc696963c // .quad -4136954021121544751 + WORD $0x4dcdab14; WORD $0xe264589a // .quad -2133482903713240300 + WORD $0xcf543ca2; WORD $0xfc1e1de5 // .quad -279753253987271518 + WORD $0x70a08aec; WORD $0x8d7eb760 // .quad -8250955842461857044 + WORD $0x43294bcb; WORD $0x3b25a55f // .quad 4261994450943298507 + WORD $0x8cc8ada8; WORD $0xb0de6538 // .quad -5702008784649933400 + WORD $0x13f39ebe; WORD $0x49ef0eb7 // .quad 5327493063679123134 + WORD $0xaffad912; WORD $0xdd15fe86 // .quad -2515824962385028846 + WORD $0x6c784337; WORD $0x6e356932 // .quad 7941369183226839863 + WORD $0x2dfcc7ab; WORD $0x8a2dbf14 // .quad -8489919629131724885 + WORD $0x07965404; WORD $0x49c2c37f // .quad 5315025460606161924 + WORD $0x397bf996; WORD $0xacb92ed9 // .quad -6000713517987268202 + WORD $0xc97be906; WORD $0xdc33745e // .quad -2579590211097073402 + WORD $0x87daf7fb; WORD $0xd7e77a8f // .quad -2889205879056697349 + WORD $0x3ded71a3; WORD $0x69a028bb // .quad 7611128154919104931 + WORD $0xb4e8dafd; WORD $0x86f0ac99 // .quad -8723282702051517699 + WORD $0x0d68ce0c; WORD $0xc40832ea // .quad -4321147861633282548 + WORD $0x222311bc; WORD $0xa8acd7c0 // .quad -6292417359137009220 + WORD $0x90c30190; WORD $0xf50a3fa4 // .quad -789748808614215280 + WORD $0x2aabd62b; WORD $0xd2d80db0 // .quad -3253835680493873621 + WORD $0xda79e0fa; WORD $0x792667c6 // .quad 8729779031470891258 + WORD $0x1aab65db; WORD $0x83c7088e // .quad -8951176327949752869 + WORD $0x91185938; WORD $0x577001b8 // .quad 6300537770911226168 + WORD $0xa1563f52; WORD $0xa4b8cab1 // .quad -6577284391509803182 + WORD $0xb55e6f86; WORD $0xed4c0226 // .quad -1347699823215743098 + WORD $0x09abcf26; WORD $0xcde6fd5e // .quad -3609919470959866074 + WORD $0x315b05b4; WORD $0x544f8158 // .quad 6075216638131242420 + WORD $0xc60b6178; WORD $0x80b05e5a // .quad -9173728696990998152 + WORD $0x3db1c721; WORD $0x696361ae // .quad 7594020797664053025 + WORD $0x778e39d6; WORD $0xa0dc75f1 // .quad -6855474852811359786 + WORD $0xcd1e38e9; WORD $0x03bc3a19 // .quad 269153960225290473 + WORD $0xd571c84c; WORD $0xc913936d // .quad -3957657547586811828 + WORD $0x4065c723; WORD $0x04ab48a0 // .quad 336442450281613091 + WORD $0x4ace3a5f; WORD $0xfb587849 // .quad -335385916056126881 + WORD $0x283f9c76; WORD $0x62eb0d64 // .quad 7127805559067090038 + WORD $0xcec0e47b; WORD $0x9d174b2d // .quad -7127145225176161157 + WORD $0x324f8394; WORD $0x3ba5d0bd // .quad 4298070930406474644 + WORD $0x42711d9a; WORD $0xc45d1df9 // .quad -4297245513042813542 + WORD $0x7ee36479; WORD $0xca8f44ec // .quad -3850783373846682503 + WORD $0x930d6500; WORD $0xf5746577 // .quad -759870872876129024 + WORD $0xcf4e1ecb; WORD $0x7e998b13 // .quad 9122475437414293195 + WORD $0xbbe85f20; WORD $0x9968bf6a // .quad -7392448323188662496 + WORD $0xc321a67e; WORD $0x9e3fedd8 // .quad -7043649776941685122 + WORD $0x6ae276e8; WORD $0xbfc2ef45 // .quad -4628874385558440216 + WORD $0xf3ea101e; WORD $0xc5cfe94e // .quad -4192876202749718498 + WORD $0xc59b14a2; WORD $0xefb3ab16 // .quad -1174406963520662366 + WORD $0x58724a12; WORD $0xbba1f1d1 // .quad -4926390635932268014 + WORD $0x3b80ece5; WORD $0x95d04aee // .quad -7651533379841495835 + WORD $0xae8edc97; WORD $0x2a8a6e45 // .quad 3065383741939440791 + WORD $0xca61281f; WORD $0xbb445da9 // .quad -4952730706374481889 + WORD $0x1a3293bd; WORD $0xf52d09d7 // .quad -779956341003086915 + WORD $0x3cf97226; WORD $0xea157514 // .quad -1579227364540714458 + WORD $0x705f9c56; WORD $0x593c2626 // .quad 6430056314514152534 + WORD $0xa61be758; WORD $0x924d692c // .quad -7904546130479028392 + WORD $0x0c77836c; WORD $0x6f8b2fb0 // .quad 8037570393142690668 + WORD $0xcfa2e12e; WORD $0xb6e0c377 // .quad -5268996644671397586 + WORD $0x0f956447; WORD $0x0b6dfb9c // .quad 823590954573587527 + WORD $0xc38b997a; WORD $0xe498f455 // .quad -1974559787411859078 + WORD $0x89bd5eac; WORD $0x4724bd41 // .quad 5126430365035880108 + WORD $0x9a373fec; WORD $0x8edf98b5 // .quad -8151628894773493780 + WORD $0xec2cb657; WORD $0x58edec91 // .quad 6408037956294850135 + WORD $0x00c50fe7; WORD $0xb2977ee3 // .quad -5577850100039479321 + WORD $0x6737e3ed; WORD $0x2f2967b6 // .quad 3398361426941174765 + WORD $0xc0f653e1; WORD $0xdf3d5e9b // .quad -2360626606621961247 + WORD $0x0082ee74; WORD $0xbd79e0d2 // .quad -4793553135802847628 + WORD $0x5899f46c; WORD $0x8b865b21 // .quad -8392920656779807636 + WORD $0x80a3aa11; WORD $0xecd85906 // .quad -1380255401326171631 + WORD $0xaec07187; WORD $0xae67f1e9 // .quad -5879464802547371641 + WORD $0x20cc9495; WORD $0xe80e6f48 // .quad -1725319251657714539 + WORD $0x1a708de9; WORD $0xda01ee64 // .quad -2737644984756826647 + WORD $0x147fdcdd; WORD $0x3109058d // .quad 3533361486141316317 + WORD $0x908658b2; WORD $0x884134fe // .quad -8628557143114098510 + WORD $0x599fd415; WORD $0xbd4b46f0 // .quad -4806670179178130411 + WORD $0x34a7eede; WORD $0xaa51823e // .quad -6174010410465235234 + WORD $0x7007c91a; WORD $0x6c9e18ac // .quad 7826720331309500698 + WORD $0xc1d1ea96; WORD $0xd4e5e2cd // .quad -3105826994654156138 + WORD $0xc604ddb0; WORD $0x03e2cf6b // .quad 280014188641050032 + WORD $0x9923329e; WORD $0x850fadc0 // .quad -8858670899299929442 + WORD $0xb786151c; WORD $0x84db8346 // .quad -8873354301053463268 + WORD $0xbf6bff45; WORD $0xa6539930 // .quad -6461652605697523899 + WORD $0x65679a63; WORD $0xe6126418 // .quad -1868320839462053277 + WORD $0xef46ff16; WORD $0xcfe87f7c // .quad -3465379738694516970 + WORD $0x3f60c07e; WORD $0x4fcb7e8f // .quad 5749828502977298558 + WORD $0x158c5f6e; WORD $0x81f14fae // .quad -9083391364325154962 + WORD $0x0f38f09d; WORD $0xe3be5e33 // .quad -2036086408133152611 + WORD $0x9aef7749; WORD $0xa26da399 // .quad -6742553186979055799 + WORD $0xd3072cc5; WORD $0x5cadf5bf // .quad 6678264026688335045 + WORD $0x01ab551c; WORD $0xcb090c80 // .quad -3816505465296431844 + WORD $0xc7c8f7f6; WORD $0x73d9732f // .quad 8347830033360418806 + WORD $0x02162a63; WORD $0xfdcb4fa0 // .quad -158945813193151901 + WORD $0xdcdd9afa; WORD $0x2867e7fd // .quad 2911550761636567802 + WORD $0x014dda7e; WORD $0x9e9f11c4 // .quad -7016870160886801794 + WORD $0x541501b8; WORD $0xb281e1fd // .quad -5583933584809066056 + WORD $0x01a1511d; WORD $0xc646d635 // .quad -4159401682681114339 + WORD $0xa91a4226; WORD $0x1f225a7c // .quad 2243455055843443238 + WORD $0x4209a565; WORD $0xf7d88bc2 // .quad -587566084924005019 + WORD $0xe9b06958; WORD $0x3375788d // .quad 3708002419115845976 + WORD $0x6946075f; WORD $0x9ae75759 // .quad -7284757830718584993 + WORD $0x641c83ae; WORD $0x0052d6b1 // .quad 23317005467419566 + WORD $0xc3978937; WORD $0xc1a12d2f // .quad -4494261269970843337 + WORD $0xbd23a49a; WORD $0xc0678c5d // .quad -4582539761593113446 + WORD $0xb47d6b84; WORD $0xf209787b // .quad -1006140569036166268 + WORD $0x963646e0; WORD $0xf840b7ba // .quad -558244341782001952 + WORD $0x50ce6332; WORD $0x9745eb4d // .quad -7546366883288685774 + WORD $0x3bc3d898; WORD $0xb650e5a9 // .quad -5309491445654890344 + WORD $0xa501fbff; WORD $0xbd176620 // .quad -4821272585683469313 + WORD $0x8ab4cebe; WORD $0xa3e51f13 // .quad -6636864307068612930 + WORD $0xce427aff; WORD $0xec5d3fa8 // .quad -1414904713676948737 + WORD $0x36b10137; WORD $0xc66f336c // .quad -4148040191917883081 + WORD $0x80e98cdf; WORD $0x93ba47c9 // .quad -7801844473689174817 + WORD $0x445d4184; WORD $0xb80b0047 // .quad -5185050239897353852 + WORD $0xe123f017; WORD $0xb8a8d9bb // .quad -5140619573684080617 + WORD $0x157491e5; WORD $0xa60dc059 // .quad -6481312799871692315 + WORD $0xd96cec1d; WORD $0xe6d3102a // .quad -1814088448677712867 + WORD $0xad68db2f; WORD $0x87c89837 // .quad -8662506518347195601 + WORD $0xc7e41392; WORD $0x9043ea1a // .quad -8051334308064652398 + WORD $0x98c311fb; WORD $0x29babe45 // .quad 3006924907348169211 + WORD $0x79dd1877; WORD $0xb454e4a1 // .quad -5452481866653427593 + WORD $0xfef3d67a; WORD $0xf4296dd6 // .quad -853029884242176390 + WORD $0xd8545e94; WORD $0xe16a1dc9 // .quad -2203916314889396588 + WORD $0x5f58660c; WORD $0x1899e4a6 // .quad 1772699331562333708 + WORD $0x2734bb1d; WORD $0x8ce2529e // .quad -8294976724446954723 + WORD $0xf72e7f8f; WORD $0x5ec05dcf // .quad 6827560182880305039 + WORD $0xb101e9e4; WORD $0xb01ae745 // .quad -5757034887131305500 + WORD $0xf4fa1f73; WORD $0x76707543 // .quad 8534450228600381299 + WORD $0x1d42645d; WORD $0xdc21a117 // .quad -2584607590486743971 + WORD $0x791c53a8; WORD $0x6a06494a // .quad 7639874402088932264 + WORD $0x72497eba; WORD $0x899504ae // .quad -8532908771695296838 + WORD $0x17636892; WORD $0x0487db9d // .quad 326470965756389522 + WORD $0x0edbde69; WORD $0xabfa45da // .quad -6054449946191733143 + WORD $0x5d3c42b6; WORD $0x45a9d284 // .quad 5019774725622874806 + WORD $0x9292d603; WORD $0xd6f8d750 // .quad -2956376414312278525 + WORD $0xba45a9b2; WORD $0x0b8a2392 // .quad 831516194300602802 + WORD $0x5b9bc5c2; WORD $0x865b8692 // .quad -8765264286586255934 + WORD $0x68d7141e; WORD $0x8e6cac77 // .quad -8183976793979022306 + WORD $0xf282b732; WORD $0xa7f26836 // .quad -6344894339805432014 + WORD $0x430cd926; WORD $0x3207d795 // .quad 3605087062808385830 + WORD $0xaf2364ff; WORD $0xd1ef0244 // .quad -3319431906329402113 + WORD $0x49e807b8; WORD $0x7f44e6bd // .quad 9170708441896323000 + WORD $0xed761f1f; WORD $0x8335616a // .quad -8992173969096958177 + WORD $0x9c6209a6; WORD $0x5f16206c // .quad 6851699533943015846 + WORD $0xa8d3a6e7; WORD $0xa402b9c5 // .quad -6628531442943809817 + WORD $0xc37a8c0f; WORD $0x36dba887 // .quad 3952938399001381903 + WORD $0x130890a1; WORD $0xcd036837 // .quad -3673978285252374367 + WORD $0xda2c9789; WORD $0xc2494954 // .quad -4446942528265218167 + WORD $0x6be55a64; WORD $0x80222122 // .quad -9213765455923815836 + WORD $0x10b7bd6c; WORD $0xf2db9baa // .quad -946992141904134804 + WORD $0x06deb0fd; WORD $0xa02aa96b // .quad -6905520801477381891 + WORD $0x94e5acc7; WORD $0x6f928294 // .quad 8039631859474607303 + WORD $0xc8965d3d; WORD $0xc83553c5 // .quad -4020214983419339459 + WORD $0xba1f17f9; WORD $0xcb772339 // .quad -3785518230938904583 + WORD $0x3abbf48c; WORD $0xfa42a8b7 // .quad -413582710846786420 + WORD $0x14536efb; WORD $0xff2a7604 // .quad -60105885123121413 + WORD $0x84b578d7; WORD $0x9c69a972 // .quad -7176018221920323369 + WORD $0x19684aba; WORD $0xfef51385 // .quad -75132356403901766 + WORD $0x25e2d70d; WORD $0xc38413cf // .quad -4358336758973016307 + WORD $0x5fc25d69; WORD $0x7eb25866 // .quad 9129456591349898601 + WORD $0xef5b8cd1; WORD $0xf46518c2 // .quad -836234930288882479 + WORD $0xfbd97a61; WORD $0xef2f773f // .quad -1211618658047395231 + WORD $0xd5993802; WORD $0x98bf2f79 // .quad -7440175859071633406 + WORD $0xfacfd8fa; WORD $0xaafb550f // .quad -6126209340986631942 + WORD $0x4aff8603; WORD $0xbeeefb58 // .quad -4688533805412153853 + WORD $0xf983cf38; WORD $0x95ba2a53 // .quad -7657761676233289928 + WORD $0x5dbf6784; WORD $0xeeaaba2e // .quad -1248981238337804412 + WORD $0x7bf26183; WORD $0xdd945a74 // .quad -2480258038432112253 + WORD $0xfa97a0b2; WORD $0x952ab45c // .quad -7698142301602209614 + WORD $0x9aeef9e4; WORD $0x94f97111 // .quad -7712008566467528220 + WORD $0x393d88df; WORD $0xba756174 // .quad -5010991858575374113 + WORD $0x01aab85d; WORD $0x7a37cd56 // .quad 8806733365625141341 + WORD $0x478ceb17; WORD $0xe912b9d1 // .quad -1652053804791829737 + WORD $0xc10ab33a; WORD $0xac62e055 // .quad -6025006692552756422 + WORD $0xccb812ee; WORD $0x91abb422 // .quad -7950062655635975442 + WORD $0x314d6009; WORD $0x577b986b // .quad 6303799689591218185 + WORD $0x7fe617aa; WORD $0xb616a12b // .quad -5325892301117581398 + WORD $0xfda0b80b; WORD $0xed5a7e85 // .quad -1343622424865753077 + WORD $0x5fdf9d94; WORD $0xe39c4976 // .quad -2045679357969588844 + WORD $0xbe847307; WORD $0x14588f13 // .quad 1466078993672598279 + WORD $0xfbebc27d; WORD $0x8e41ade9 // .quad -8196078626372074883 + WORD $0xae258fc8; WORD $0x596eb2d8 // .quad 6444284760518135752 + WORD $0x7ae6b31c; WORD $0xb1d21964 // .quad -5633412264537705700 + WORD $0xd9aef3bb; WORD $0x6fca5f8e // .quad 8055355950647669691 + WORD $0x99a05fe3; WORD $0xde469fbd // .quad -2430079312244744221 + WORD $0x480d5854; WORD $0x25de7bb9 // .quad 2728754459941099604 + WORD $0x80043bee; WORD $0x8aec23d6 // .quad -8436328597794046994 + WORD $0x9a10ae6a; WORD $0xaf561aa7 // .quad -5812428961928401302 + WORD $0x20054ae9; WORD $0xada72ccc // .quad -5933724728815170839 + WORD $0x8094da04; WORD $0x1b2ba151 // .quad 1957835834444274180 + WORD $0x28069da4; WORD $0xd910f7ff // .quad -2805469892591575644 + WORD $0xf05d0842; WORD $0x90fb44d2 // .quad -7999724640327104446 + WORD $0x79042286; WORD $0x87aa9aff // .quad -8670947710510816634 + WORD $0xac744a53; WORD $0x353a1607 // .quad 3835402254873283155 + WORD $0x57452b28; WORD $0xa99541bf // .quad -6226998619711132888 + WORD $0x97915ce8; WORD $0x42889b89 // .quad 4794252818591603944 + WORD $0x2d1675f2; WORD $0xd3fa922f // .quad -3172062256211528206 + WORD $0xfebada11; WORD $0x69956135 // .quad 7608094030047140369 + WORD $0x7c2e09b7; WORD $0x847c9b5d // .quad -8900067937773286985 + WORD $0x7e699095; WORD $0x43fab983 // .quad 4898431519131537557 + WORD $0xdb398c25; WORD $0xa59bc234 // .quad -6513398903789220827 + WORD $0x5e03f4bb; WORD $0x94f967e4 // .quad -7712018656367741765 + WORD $0x1207ef2e; WORD $0xcf02b2c2 // .quad -3530062611309138130 + WORD $0xbac278f5; WORD $0x1d1be0ee // .quad 2097517367411243253 + WORD $0x4b44f57d; WORD $0x8161afb9 // .quad -9123818159709293187 + WORD $0x69731732; WORD $0x6462d92a // .quad 7233582727691441970 + WORD $0x9e1632dc; WORD $0xa1ba1ba7 // .quad -6793086681209228580 + WORD $0x03cfdcfe; WORD $0x7d7b8f75 // .quad 9041978409614302462 + WORD $0x859bbf93; WORD $0xca28a291 // .quad -3879672333084147821 + WORD $0x44c3d43e; WORD $0x5cda7352 // .quad 6690786993590490174 + WORD $0xe702af78; WORD $0xfcb2cb35 // .quad -237904397927796872 + WORD $0x6afa64a7; WORD $0x3a088813 // .quad 4181741870994056359 + WORD $0xb061adab; WORD $0x9defbf01 // .quad -7066219276345954901 + WORD $0x45b8fdd0; WORD $0x088aaa18 // .quad 615491320315182544 + WORD $0x1c7a1916; WORD $0xc56baec2 // .quad -4221088077005055722 + WORD $0x57273d45; WORD $0x8aad549e // .quad -8454007886460797627 + WORD $0xa3989f5b; WORD $0xf6c69a72 // .quad -664674077828931749 + WORD $0xf678864b; WORD $0x36ac54e2 // .quad 3939617107816777291 + WORD $0xa63f6399; WORD $0x9a3c2087 // .quad -7332950326284164199 + WORD $0xb416a7dd; WORD $0x84576a1b // .quad -8910536670511192099 + WORD $0x8fcf3c7f; WORD $0xc0cb28a9 // .quad -4554501889427817345 + WORD $0xa11c51d5; WORD $0x656d44a2 // .quad 7308573235570561493 + WORD $0xf3c30b9f; WORD $0xf0fdf2d3 // .quad -1081441343357383777 + WORD $0xa4b1b325; WORD $0x9f644ae5 // .quad -6961356773836868827 + WORD $0x7859e743; WORD $0x969eb7c4 // .quad -7593429867239446717 + WORD $0x0dde1fee; WORD $0x873d5d9f // .quad -8701695967296086034 + WORD $0x96706114; WORD $0xbc4665b5 // .quad -4880101315621920492 + WORD $0xd155a7ea; WORD $0xa90cb506 // .quad -6265433940692719638 + WORD $0xfc0c7959; WORD $0xeb57ff22 // .quad -1488440626100012711 + WORD $0x42d588f2; WORD $0x09a7f124 // .quad 695789805494438130 + WORD $0xdd87cbd8; WORD $0x9316ff75 // .quad -7847804418953589800 + WORD $0x538aeb2f; WORD $0x0c11ed6d // .quad 869737256868047663 + WORD $0x54e9bece; WORD $0xb7dcbf53 // .quad -5198069505264599346 + WORD $0xa86da5fa; WORD $0x8f1668c8 // .quad -8136200465769716230 + WORD $0x2a242e81; WORD $0xe5d3ef28 // .quad -1885900863153361279 + WORD $0x694487bc; WORD $0xf96e017d // .quad -473439272678684740 + WORD $0x1a569d10; WORD $0x8fa47579 // .quad -8096217067111932656 + WORD $0xc395a9ac; WORD $0x37c981dc // .quad 4019886927579031980 + WORD $0x60ec4455; WORD $0xb38d92d7 // .quad -5508585315462527915 + WORD $0xf47b1417; WORD $0x85bbe253 // .quad -8810199395808373737 + WORD $0x3927556a; WORD $0xe070f78d // .quad -2274045625900771990 + WORD $0x78ccec8e; WORD $0x93956d74 // .quad -7812217631593927538 + WORD $0x43b89562; WORD $0x8c469ab8 // .quad -8338807543829064350 + WORD $0x970027b2; WORD $0x387ac8d1 // .quad 4069786015789754290 + WORD $0x54a6babb; WORD $0xaf584166 // .quad -5811823411358942533 + WORD $0xfcc0319e; WORD $0x06997b05 // .quad 475546501309804958 + WORD $0xe9d0696a; WORD $0xdb2e51bf // .quad -2653093245771290262 + WORD $0xbdf81f03; WORD $0x441fece3 // .quad 4908902581746016003 + WORD $0xf22241e2; WORD $0x88fcf317 // .quad -8575712306248138270 + WORD $0xad7626c3; WORD $0xd527e81c // .quad -3087243809672255805 + WORD $0xeeaad25a; WORD $0xab3c2fdd // .quad -6107954364382784934 + WORD $0xd8d3b074; WORD $0x8a71e223 // .quad -8470740780517707660 + WORD $0x6a5586f1; WORD $0xd60b3bd5 // .quad -3023256937051093263 + WORD $0x67844e49; WORD $0xf6872d56 // .quad -682526969396179383 + WORD $0x62757456; WORD $0x85c70565 // .quad -8807064613298015146 + WORD $0x016561db; WORD $0xb428f8ac // .quad -5464844730172612133 + WORD $0xbb12d16c; WORD $0xa738c6be // .quad -6397144748195131028 + WORD $0x01beba52; WORD $0xe13336d7 // .quad -2219369894288377262 + WORD $0x69d785c7; WORD $0xd106f86e // .quad -3384744916816525881 + WORD $0x61173473; WORD $0xecc00246 // .quad -1387106183930235789 + WORD $0x0226b39c; WORD $0x82a45b45 // .quad -9032994600651410532 + WORD $0xf95d0190; WORD $0x27f002d7 // .quad 2877803288514593168 + WORD $0x42b06084; WORD $0xa34d7216 // .quad -6679557232386875260 + WORD $0xf7b441f4; WORD $0x31ec038d // .quad 3597254110643241460 + WORD $0xd35c78a5; WORD $0xcc20ce9b // .quad -3737760522056206171 + WORD $0x75a15271; WORD $0x7e670471 // .quad 9108253656731439729 + WORD $0xc83396ce; WORD $0xff290242 // .quad -60514634142869810 + WORD $0xe984d386; WORD $0x0f0062c6 // .quad 1080972517029761926 + WORD $0xbd203e41; WORD $0x9f79a169 // .quad -6955350673980375487 + WORD $0xa3e60868; WORD $0x52c07b78 // .quad 5962901664714590312 + WORD $0x2c684dd1; WORD $0xc75809c4 // .quad -4082502324048081455 + WORD $0xccdf8a82; WORD $0xa7709a56 // .quad -6381430974388925822 + WORD $0x37826145; WORD $0xf92e0c35 // .quad -491441886632713915 + WORD $0x400bb691; WORD $0x88a66076 // .quad -8600080377420466543 + WORD $0x42b17ccb; WORD $0x9bbcc7a1 // .quad -7224680206786528053 + WORD $0xd00ea435; WORD $0x6acff893 // .quad 7696643601933968437 + WORD $0x935ddbfe; WORD $0xc2abf989 // .quad -4419164240055772162 + WORD $0xc4124d43; WORD $0x0583f6b8 // .quad 397432465562684739 + WORD $0xf83552fe; WORD $0xf356f7eb // .quad -912269281642327298 + WORD $0x7a8b704a; WORD $0xc3727a33 // .quad -4363290727450709942 + WORD $0x7b2153de; WORD $0x98165af3 // .quad -7487697328667536418 + WORD $0x592e4c5c; WORD $0x744f18c0 // .quad 8380944645968776284 + WORD $0x59e9a8d6; WORD $0xbe1bf1b0 // .quad -4747935642407032618 + WORD $0x6f79df73; WORD $0x1162def0 // .quad 1252808770606194547 + WORD $0x7064130c; WORD $0xeda2ee1c // .quad -1323233534581402868 + WORD $0x45ac2ba8; WORD $0x8addcb56 // .quad -8440366555225904216 + WORD $0xc63e8be7; WORD $0x9485d4d1 // .quad -7744549986754458649 + WORD $0xd7173692; WORD $0x6d953e2b // .quad 7896285879677171346 + WORD $0x37ce2ee1; WORD $0xb9a74a06 // .quad -5069001465015685407 + WORD $0xccdd0437; WORD $0xc8fa8db6 // .quad -3964700705685699529 + WORD $0xc5c1ba99; WORD $0xe8111c87 // .quad -1724565812842218855 + WORD $0x400a22a2; WORD $0x1d9c9892 // .quad 2133748077373825698 + WORD $0xdb9914a0; WORD $0x910ab1d4 // .quad -7995382660667468640 + WORD $0xd00cab4b; WORD $0x2503beb6 // .quad 2667185096717282123 + WORD $0x127f59c8; WORD $0xb54d5e4a // .quad -5382542307406947896 + WORD $0x840fd61d; WORD $0x2e44ae64 // .quad 3333981370896602653 + WORD $0x971f303a; WORD $0xe2a0b5dc // .quad -2116491865831296966 + WORD $0xd289e5d2; WORD $0x5ceaecfe // .quad 6695424375237764562 + WORD $0xde737e24; WORD $0x8da471a9 // .quad -8240336443785642460 + WORD $0x872c5f47; WORD $0x7425a83e // .quad 8369280469047205703 + WORD $0x56105dad; WORD $0xb10d8e14 // .quad -5688734536304665171 + WORD $0x28f77719; WORD $0xd12f124e // .quad -3373457468973156583 + WORD $0x6b947518; WORD $0xdd50f199 // .quad -2499232151953443560 + WORD $0xd99aaa6f; WORD $0x82bd6b70 // .quad -9025939945749304721 + WORD $0xe33cc92f; WORD $0x8a5296ff // .quad -8479549122611984081 + WORD $0x1001550b; WORD $0x636cc64d // .quad 7164319141522920715 + WORD $0xdc0bfb7b; WORD $0xace73cbf // .quad -5987750384837592197 + WORD $0x5401aa4e; WORD $0x3c47f7e0 // .quad 4343712908476262990 + WORD $0xd30efa5a; WORD $0xd8210bef // .quad -2873001962619602342 + WORD $0x34810a71; WORD $0x65acfaec // .quad 7326506586225052273 + WORD $0xe3e95c78; WORD $0x8714a775 // .quad -8713155254278333320 + WORD $0x41a14d0d; WORD $0x7f1839a7 // .quad 9158133232781315341 + WORD $0x5ce3b396; WORD $0xa8d9d153 // .quad -6279758049420528746 + WORD $0x1209a050; WORD $0x1ede4811 // .quad 2224294504121868368 + WORD $0x341ca07c; WORD $0xd31045a8 // .quad -3238011543348273028 + WORD $0xab460432; WORD $0x934aed0a // .quad -7833187971778608078 + WORD $0x2091e44d; WORD $0x83ea2b89 // .quad -8941286242233752499 + WORD $0x5617853f; WORD $0xf81da84d // .quad -568112927868484289 + WORD $0x68b65d60; WORD $0xa4e4b66b // .quad -6564921784364802720 + WORD $0xab9d668e; WORD $0x36251260 // .quad 3901544858591782542 + WORD $0x42e3f4b9; WORD $0xce1de406 // .quad -3594466212028615495 + WORD $0x6b426019; WORD $0xc1d72b7c // .quad -4479063491021217767 + WORD $0xe9ce78f3; WORD $0x80d2ae83 // .quad -9164070410158966541 + WORD $0x8612f81f; WORD $0xb24cf65b // .quad -5598829363776522209 + WORD $0xe4421730; WORD $0xa1075a24 // .quad -6843401994271320272 + WORD $0x6797b627; WORD $0xdee033f2 // .quad -2386850686293264857 + WORD $0x1d529cfc; WORD $0xc94930ae // .quad -3942566474411762436 + WORD $0x017da3b1; WORD $0x169840ef // .quad 1628122660560806833 + WORD $0xa4a7443c; WORD $0xfb9b7cd9 // .quad -316522074587315140 + WORD $0x60ee864e; WORD $0x8e1f2895 // .quad -8205795374004271538 + WORD $0x06e88aa5; WORD $0x9d412e08 // .quad -7115355324258153819 + WORD $0xb92a27e2; WORD $0xf1a6f2ba // .quad -1033872180650563614 + WORD $0x08a2ad4e; WORD $0xc491798a // .quad -4282508136895304370 + WORD $0x6774b1db; WORD $0xae10af69 // .quad -5904026244240592421 + WORD $0x8acb58a2; WORD $0xf5b5d7ec // .quad -741449152691742558 + WORD $0xe0a8ef29; WORD $0xacca6da1 // .quad -5995859411864064215 + WORD $0xd6bf1765; WORD $0x9991a6f3 // .quad -7380934748073420955 + WORD $0x58d32af3; WORD $0x17fd090a // .quad 1728547772024695539 + WORD $0xcc6edd3f; WORD $0xbff610b0 // .quad -4614482416664388289 + WORD $0xef07f5b0; WORD $0xddfc4b4c // .quad -2451001303396518480 + WORD $0xff8a948e; WORD $0xeff394dc // .quad -1156417002403097458 + WORD $0x1564f98e; WORD $0x4abdaf10 // .quad 5385653213018257806 + WORD $0x1fb69cd9; WORD $0x95f83d0a // .quad -7640289654143017767 + WORD $0x1abe37f1; WORD $0x9d6d1ad4 // .quad -7102991539009341455 + WORD $0xa7a4440f; WORD $0xbb764c4c // .quad -4938676049251384305 + WORD $0x216dc5ed; WORD $0x84c86189 // .quad -8878739423761676819 + WORD $0xd18d5513; WORD $0xea53df5f // .quad -1561659043136842477 + WORD $0xb4e49bb4; WORD $0x32fd3cf5 // .quad 3674159897003727796 + WORD $0xe2f8552c; WORD $0x92746b9b // .quad -7893565929601608404 + WORD $0x221dc2a1; WORD $0x3fbc8c33 // .quad 4592699871254659745 + WORD $0xdbb66a77; WORD $0xb7118682 // .quad -5255271393574622601 + WORD $0xeaa5334a; WORD $0x0fabaf3f // .quad 1129188820640936778 + WORD $0x92a40515; WORD $0xe4d5e823 // .quad -1957403223540890347 + WORD $0xf2a7400e; WORD $0x29cb4d87 // .quad 3011586022114279438 + WORD $0x3ba6832d; WORD $0x8f05b116 // .quad -8140906042354138323 + WORD $0xef511012; WORD $0x743e20e9 // .quad 8376168546070237202 + WORD $0xca9023f8; WORD $0xb2c71d5b // .quad -5564446534515285000 + WORD $0x6b255416; WORD $0x914da924 // .quad -7976533391121755114 + WORD $0xbd342cf6; WORD $0xdf78e4b2 // .quad -2343872149716718346 + WORD $0xc2f7548e; WORD $0x1ad089b6 // .quad 1932195658189984910 + WORD $0xb6409c1a; WORD $0x8bab8eef // .quad -8382449121214030822 + WORD $0x73b529b1; WORD $0xa184ac24 // .quad -6808127464117294671 + WORD $0xa3d0c320; WORD $0xae9672ab // .quad -5866375383090150624 + WORD $0x90a2741e; WORD $0xc9e5d72d // .quad -3898473311719230434 + WORD $0x8cc4f3e8; WORD $0xda3c0f56 // .quad -2721283210435300376 + WORD $0x7a658892; WORD $0x7e2fa67c // .quad 9092669226243950738 + WORD $0x17fb1871; WORD $0x88658996 // .quad -8618331034163144591 + WORD $0x98feeab7; WORD $0xddbb901b // .quad -2469221522477225289 + WORD $0x9df9de8d; WORD $0xaa7eebfb // .quad -6161227774276542835 + WORD $0x7f3ea565; WORD $0x552a7422 // .quad 6136845133758244197 + WORD $0x85785631; WORD $0xd51ea6fa // .quad -3089848699418290639 + WORD $0x8f87275f; WORD $0xd53a8895 // .quad -3082000819042179233 + WORD $0x936b35de; WORD $0x8533285c // .quad -8848684464777513506 + WORD $0xf368f137; WORD $0x8a892aba // .quad -8464187042230111945 + WORD $0xb8460356; WORD $0xa67ff273 // .quad -6449169562544503978 + WORD $0xb0432d85; WORD $0x2d2b7569 // .quad 3254824252494523781 + WORD $0xa657842c; WORD $0xd01fef10 // .quad -3449775934753242068 + WORD $0x0e29fc73; WORD $0x9c3b2962 // .quad -7189106879045698445 + WORD $0x67f6b29b; WORD $0x8213f56a // .quad -9073638986861858149 + WORD $0x91b47b8f; WORD $0x8349f3ba // .quad -8986383598807123057 + WORD $0x01f45f42; WORD $0xa298f2c5 // .quad -6730362715149934782 + WORD $0x36219a73; WORD $0x241c70a9 // .quad 2602078556773259891 + WORD $0x42717713; WORD $0xcb3f2f76 // .quad -3801267375510030573 + WORD $0x83aa0110; WORD $0xed238cd3 // .quad -1359087822460813040 + WORD $0xd30dd4d7; WORD $0xfe0efb53 // .quad -139898200960150313 + WORD $0x324a40aa; WORD $0xf4363804 // .quad -849429889038008150 + WORD $0x63e8a506; WORD $0x9ec95d14 // .quad -7004965403241175802 + WORD $0x3edcd0d5; WORD $0xb143c605 // .quad -5673473379724898091 + WORD $0x7ce2ce48; WORD $0xc67bb459 // .quad -4144520735624081848 + WORD $0x8e94050a; WORD $0xdd94b786 // .quad -2480155706228734710 + WORD $0xdc1b81da; WORD $0xf81aa16f // .quad -568964901102714406 + WORD $0x191c8326; WORD $0xca7cf2b4 // .quad -3855940325606653146 + WORD $0xe9913128; WORD $0x9b10a4e5 // .quad -7273132090830278360 + WORD $0x1f63a3f0; WORD $0xfd1c2f61 // .quad -208239388580928528 + WORD $0x63f57d72; WORD $0xc1d4ce1f // .quad -4479729095110460046 + WORD $0x673c8cec; WORD $0xbc633b39 // .quad -4871985254153548564 + WORD $0x3cf2dccf; WORD $0xf24a01a7 // .quad -987975350460687153 + WORD $0xe085d813; WORD $0xd5be0503 // .quad -3044990783845967853 + WORD $0x8617ca01; WORD $0x976e4108 // .quad -7535013621679011327 + WORD $0xd8a74e18; WORD $0x4b2d8644 // .quad 5417133557047315992 + WORD $0xa79dbc82; WORD $0xbd49d14a // .quad -4807081008671376254 + WORD $0x0ed1219e; WORD $0xddf8e7d6 // .quad -2451955090545630818 + WORD $0x51852ba2; WORD $0xec9c459d // .quad -1397165242411832414 + WORD $0xc942b503; WORD $0xcabb90e5 // .quad -3838314940804713213 + WORD $0x52f33b45; WORD $0x93e1ab82 // .quad -7790757304148477115 + WORD $0x3b936243; WORD $0x3d6a751f // .quad 4425478360848884291 + WORD $0xe7b00a17; WORD $0xb8da1662 // .quad -5126760611758208489 + WORD $0x0a783ad4; WORD $0x0cc51267 // .quad 920161932633717460 + WORD $0xa19c0c9d; WORD $0xe7109bfb // .quad -1796764746270372707 + WORD $0x668b24c5; WORD $0x27fb2b80 // .quad 2880944217109767365 + WORD $0x450187e2; WORD $0x906a617d // .quad -8040506994060064798 + WORD $0x802dedf6; WORD $0xb1f9f660 // .quad -5622191765467566602 + WORD $0x9641e9da; WORD $0xb484f9dc // .quad -5438947724147693094 + WORD $0xa0396973; WORD $0x5e7873f8 // .quad 6807318348447705459 + WORD $0xbbd26451; WORD $0xe1a63853 // .quad -2186998636757228463 + WORD $0x6423e1e8; WORD $0xdb0b487b // .quad -2662955059861265944 + WORD $0x55637eb2; WORD $0x8d07e334 // .quad -8284403175614349646 + WORD $0x3d2cda62; WORD $0x91ce1a9a // .quad -7940379843253970334 + WORD $0x6abc5e5f; WORD $0xb049dc01 // .quad -5743817951090549153 + WORD $0xcc7810fb; WORD $0x7641a140 // .quad 8521269269642088699 + WORD $0xc56b75f7; WORD $0xdc5c5301 // .quad -2568086420435798537 + WORD $0x7fcb0a9d; WORD $0xa9e904c8 // .quad -6203421752542164323 + WORD $0x1b6329ba; WORD $0x89b9b3e1 // .quad -8522583040413455942 + WORD $0x9fbdcd44; WORD $0x546345fa // .quad 6080780864604458308 + WORD $0x623bf429; WORD $0xac2820d9 // .quad -6041542782089432023 + WORD $0x47ad4095; WORD $0xa97c1779 // .quad -6234081974526590827 + WORD $0xbacaf133; WORD $0xd732290f // .quad -2940242459184402125 + WORD $0xcccc485d; WORD $0x49ed8eab // .quad 5327070802775656541 + WORD $0xd4bed6c0; WORD $0x867f59a9 // .quad -8755180564631333184 + WORD $0xbfff5a74; WORD $0x5c68f256 // .quad 6658838503469570676 + WORD $0x49ee8c70; WORD $0xa81f3014 // .quad -6332289687361778576 + WORD $0x6fff3111; WORD $0x73832eec // .quad 8323548129336963345 + WORD $0x5c6a2f8c; WORD $0xd226fc19 // .quad -3303676090774835316 + WORD $0xc5ff7eab; WORD $0xc831fd53 // .quad -4021154456019173717 + WORD $0xd9c25db7; WORD $0x83585d8f // .quad -8982326584375353929 + WORD $0xb77f5e55; WORD $0xba3e7ca8 // .quad -5026443070023967147 + WORD $0xd032f525; WORD $0xa42e74f3 // .quad -6616222212041804507 + WORD $0xe55f35eb; WORD $0x28ce1bd2 // .quad 2940318199324816875 + WORD $0xc43fb26f; WORD $0xcd3a1230 // .quad -3658591746624867729 + WORD $0xcf5b81b3; WORD $0x7980d163 // .quad 8755227902219092403 + WORD $0x7aa7cf85; WORD $0x80444b5e // .quad -9204148869281624187 + WORD $0xc332621f; WORD $0xd7e105bc // .quad -2891023177508298209 + WORD $0x1951c366; WORD $0xa0555e36 // .quad -6893500068174642330 + WORD $0xf3fefaa7; WORD $0x8dd9472b // .quad -8225464990312760665 + WORD $0x9fa63440; WORD $0xc86ab5c3 // .quad -4005189066790915008 + WORD $0xf0feb951; WORD $0xb14f98f6 // .quad -5670145219463562927 + WORD $0x878fc150; WORD $0xfa856334 // .quad -394800315061255856 + WORD $0x569f33d3; WORD $0x6ed1bf9a // .quad 7985374283903742931 + WORD $0xd4b9d8d2; WORD $0x9c935e00 // .quad -7164279224554366766 + WORD $0xec4700c8; WORD $0x0a862f80 // .quad 758345818024902856 + WORD $0x09e84f07; WORD $0xc3b83581 // .quad -4343663012265570553 + WORD $0x2758c0fa; WORD $0xcd27bb61 // .quad -3663753745896259334 + WORD $0x4c6262c8; WORD $0xf4a642e1 // .quad -817892746904575288 + WORD $0xb897789c; WORD $0x8038d51c // .quad -9207375118826243940 + WORD $0xcfbd7dbd; WORD $0x98e7e9cc // .quad -7428711994456441411 + WORD $0xe6bd56c3; WORD $0xe0470a63 // .quad -2285846861678029117 + WORD $0x03acdd2c; WORD $0xbf21e440 // .quad -4674203974643163860 + WORD $0xe06cac74; WORD $0x1858ccfc // .quad 1754377441329851508 + WORD $0x04981478; WORD $0xeeea5d50 // .quad -1231068949876566920 + WORD $0x0c43ebc8; WORD $0x0f37801e // .quad 1096485900831157192 + WORD $0x02df0ccb; WORD $0x95527a52 // .quad -7686947121313936181 + WORD $0x8f54e6ba; WORD $0xd3056025 // .quad -3241078642388441414 + WORD $0x8396cffd; WORD $0xbaa718e6 // .quad -4996997883215032323 + WORD $0xf32a2069; WORD $0x47c6b82e // .quad 5172023733869224041 + WORD $0x247c83fd; WORD $0xe950df20 // .quad -1634561335591402499 + WORD $0x57fa5441; WORD $0x4cdc331d // .quad 5538357842881958977 + WORD $0x16cdd27e; WORD $0x91d28b74 // .quad -7939129862385708418 + WORD $0xadf8e952; WORD $0xe0133fe4 // .quad -2300424733252327086 + WORD $0x1c81471d; WORD $0xb6472e51 // .quad -5312226309554747619 + WORD $0xd97723a6; WORD $0x58180fdd // .quad 6347841120289366950 + WORD $0x63a198e5; WORD $0xe3d8f9e5 // .quad -2028596868516046619 + WORD $0xa7ea7648; WORD $0x570f09ea // .quad 6273243709394548296 + WORD $0x5e44ff8f; WORD $0x8e679c2f // .quad -8185402070463610993 + WORD $0x51e513da; WORD $0x2cd2cc65 // .quad 3229868618315797466 + WORD $0x35d63f73; WORD $0xb201833b // .quad -5620066569652125837 + WORD $0xa65e58d1; WORD $0xf8077f7e // .quad -574350245532641071 + WORD $0x034bcf4f; WORD $0xde81e40a // .quad -2413397193637769393 + WORD $0x27faf782; WORD $0xfb04afaf // .quad -358968903457900670 + WORD $0x420f6191; WORD $0x8b112e86 // .quad -8425902273664687727 + WORD $0xf1f9b563; WORD $0x79c5db9a // .quad 8774660907532399971 + WORD $0xd29339f6; WORD $0xadd57a27 // .quad -5920691823653471754 + WORD $0xae7822bc; WORD $0x18375281 // .quad 1744954097560724156 + WORD $0xc7380874; WORD $0xd94ad8b1 // .quad -2789178761139451788 + WORD $0x0d0b15b5; WORD $0x8f229391 // .quad -8132775725879323211 + WORD $0x1c830548; WORD $0x87cec76f // .quad -8660765753353239224 + WORD $0x504ddb22; WORD $0xb2eb3875 // .quad -5554283638921766110 + WORD $0xe3a3c69a; WORD $0xa9c2794a // .quad -6214271173264161126 + WORD $0xa46151eb; WORD $0x5fa60692 // .quad 6892203506629956075 + WORD $0x9c8cb841; WORD $0xd433179d // .quad -3156152948152813503 + WORD $0xa6bcd333; WORD $0xdbc7c41b // .quad -2609901835997359309 + WORD $0x81d7f328; WORD $0x849feec2 // .quad -8890124620236590296 + WORD $0x906c0800; WORD $0x12b9b522 // .quad 1349308723430688768 + WORD $0x224deff3; WORD $0xa5c7ea73 // .quad -6500969756868349965 + WORD $0x34870a00; WORD $0xd768226b // .quad -2925050114139026944 + WORD $0xeae16bef; WORD $0xcf39e50f // .quad -3514526177658049553 + WORD $0x00d46640; WORD $0xe6a11583 // .quad -1828156321336891840 + WORD $0xf2cce375; WORD $0x81842f29 // .quad -9114107888677362827 + WORD $0xc1097fd0; WORD $0x60495ae3 // .quad 6938176635183661008 + WORD $0x6f801c53; WORD $0xa1e53af4 // .quad -6780948842419315629 + WORD $0xb14bdfc4; WORD $0x385bb19c // .quad 4061034775552188356 + WORD $0x8b602368; WORD $0xca5e89b1 // .quad -3864500034596756632 + WORD $0xdd9ed7b5; WORD $0x46729e03 // .quad 5076293469440235445 + WORD $0xee382c42; WORD $0xfcf62c1d // .quad -218939024818557886 + WORD $0x6a8346d1; WORD $0x6c07a2c2 // .quad 7784369436827535057 + WORD $0xb4e31ba9; WORD $0x9e19db92 // .quad -7054365918152680535 + WORD $0x05241885; WORD $0xc7098b73 // .quad -4104596259247744891 + WORD $0x621be293; WORD $0xc5a05277 // .quad -4206271379263462765 + WORD $0xc66d1ea7; WORD $0xb8cbee4f // .quad -5130745324059681113 + WORD $0x3aa2db38; WORD $0xf7086715 // .quad -646153205651940552 + WORD $0xdc043328; WORD $0x737f74f1 // .quad 8322499218531169064 + WORD $0x44a5c903; WORD $0x9a65406d // .quad -7321374781173544701 + WORD $0x53053ff2; WORD $0x505f522e // .quad 5791438004736573426 + WORD $0x95cf3b44; WORD $0xc0fe9088 // .quad -4540032458039542972 + WORD $0xe7c68fef; WORD $0x647726b9 // .quad 7239297505920716783 + WORD $0xbb430a15; WORD $0xf13e34aa // .quad -1063354554122040811 + WORD $0x30dc19f5; WORD $0x5eca7834 // .quad 6830403950414141941 + WORD $0xb509e64d; WORD $0x96c6e0ea // .quad -7582125623967357363 + WORD $0x3d132072; WORD $0xb67d1641 // .quad -5297053117264486286 + WORD $0x624c5fe0; WORD $0xbc789925 // .quad -4865971011531808800 + WORD $0x8c57e88f; WORD $0xe41c5bd1 // .quad -2009630378153219953 + WORD $0xbadf77d8; WORD $0xeb96bf6e // .quad -1470777745987373096 + WORD $0xf7b6f159; WORD $0x8e91b962 // .quad -8173548013986844327 + WORD $0x34cbaae7; WORD $0x933e37a5 // .quad -7836765118883190041 + WORD $0xb5a4adb0; WORD $0x723627bb // .quad 8229809056225996208 + WORD $0x81fe95a1; WORD $0xb80dc58e // .quad -5184270380176599647 + WORD $0xa30dd91c; WORD $0xcec3b1aa // .quad -3547796734999668452 + WORD $0x227e3b09; WORD $0xe61136f2 // .quad -1868651956793361655 + WORD $0xa5e8a7b1; WORD $0x213a4f0a // .quad 2394313059052595121 + WORD $0x558ee4e6; WORD $0x8fcac257 // .quad -8085436500636932890 + WORD $0x4f62d19d; WORD $0xa988e2cd // .quad -6230480713039031907 + WORD $0x2af29e1f; WORD $0xb3bd72ed // .quad -5495109607368778209 + WORD $0xa33b8605; WORD $0x93eb1b80 // .quad -7788100891298789883 + WORD $0x75af45a7; WORD $0xe0accfa8 // .quad -2257200990783584857 + WORD $0x660533c3; WORD $0xbc72f130 // .quad -4867563057061743677 + WORD $0x498d8b88; WORD $0x8c6c01c9 // .quad -8328279646880822392 + WORD $0x7f8680b4; WORD $0xeb8fad7c // .quad -1472767802899791692 + WORD $0x9bf0ee6a; WORD $0xaf87023b // .quad -5798663540173640086 + WORD $0x9f6820e1; WORD $0xa67398db // .quad -6452645772052127519 + WORD $0x82ed2a05; WORD $0xdb68c2ca // .quad -2636643406789662203 + WORD $0x43a1148c; WORD $0x88083f89 // .quad -8644589625959967604 + WORD $0x91d43a43; WORD $0x892179be // .quad -8565431156884620733 + WORD $0x948959b0; WORD $0x6a0a4f6b // .quad 7641007041259592112 + WORD $0x364948d4; WORD $0xab69d82e // .quad -6095102927678388012 + WORD $0x79abb01c; WORD $0x848ce346 // .quad -8895485272135061476 + WORD $0xc3db9b09; WORD $0xd6444e39 // .quad -3007192641170597111 + WORD $0x0c0b4e11; WORD $0xf2d80e0c // .quad -947992276657025519 + WORD $0x1a6940e5; WORD $0x85eab0e4 // .quad -8797024428372705051 + WORD $0x0f0e2195; WORD $0x6f8e118f // .quad 8038381691033493909 + WORD $0x2103911f; WORD $0xa7655d1d // .quad -6384594517038493409 + WORD $0xd2d1a9fb; WORD $0x4b7195f2 // .quad 5436291095364479483 + WORD $0x69447567; WORD $0xd13eb464 // .quad -3369057127870728857 + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + // .p2align 2, 0x00 +_POW_TAB: + WORD $0x00000001 // .long 1 + WORD $0x00000003 // .long 3 + WORD $0x00000006 // .long 6 + WORD $0x00000009 // .long 9 + WORD $0x0000000d // .long 13 + WORD $0x00000010 // .long 16 + WORD $0x00000013 // .long 19 + WORD $0x00000017 // .long 23 + WORD $0x0000001a // .long 26 + // .p2align 2, 0x00 +_LSHIFT_TAB: + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000001 // .long 1 + WORD $0x00000035 // .asciz 4, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x00000001 // .long 1 + WORD $0x00003532 // .asciz 4, '25\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x00000001 // .long 1 + WORD $0x00353231 // .asciz 4, '125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x00000002 // .long 2 + WORD $0x00353236 // .asciz 4, '625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x00000002 // .long 2 + WORD $0x35323133 // .asciz 4, '3125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x00000002 // .long 2 + WORD $0x32363531 // .asciz 4, '15625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000035 // .asciz 4, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x00000003 // .long 3 + WORD $0x32313837 // .asciz 4, '78125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000035 // .asciz 4, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x00000003 // .long 3 + WORD $0x36303933 // .asciz 4, '390625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00003532 // .asciz 4, '25\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x00000003 // .long 3 + WORD $0x33353931 // .asciz 4, '1953125\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00353231 // .asciz 4, '125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x00000004 // .long 4 + WORD $0x35363739 // .asciz 4, '9765625\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00353236 // .asciz 4, '625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x00000004 // .long 4 + WORD $0x32383834 // .asciz 4, '48828125\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x35323138 // .asciz 4, '8125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x00000004 // .long 4 + WORD $0x31343432 // .asciz 4, '244140625\x00\x00\x00\x00\x00\x00\x00' + WORD $0x32363034 // .asciz 4, '40625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000035 // .asciz 4, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x00000004 // .long 4 + WORD $0x30323231 // .asciz 4, '1220703125\x00\x00\x00\x00\x00\x00' + WORD $0x31333037 // .asciz 4, '703125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00003532 // .asciz 4, '25\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x00000005 // .long 5 + WORD $0x33303136 // .asciz 4, '6103515625\x00\x00\x00\x00\x00\x00' + WORD $0x36353135 // .asciz 4, '515625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00003532 // .asciz 4, '25\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x00000005 // .long 5 + WORD $0x31353033 // .asciz 4, '30517578125\x00\x00\x00\x00\x00' + WORD $0x38373537 // .asciz 4, '7578125\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00353231 // .asciz 4, '125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x00000005 // .long 5 + WORD $0x35323531 // .asciz 4, '152587890625\x00\x00\x00\x00' + WORD $0x39383738 // .asciz 4, '87890625\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x35323630 // .asciz 4, '0625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x00000006 // .long 6 + WORD $0x39323637 // .asciz 4, '762939453125\x00\x00\x00\x00' + WORD $0x35343933 // .asciz 4, '39453125\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x35323133 // .asciz 4, '3125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x00000006 // .long 6 + WORD $0x34313833 // .asciz 4, '3814697265625\x00\x00\x00' + WORD $0x32373936 // .asciz 4, '697265625\x00\x00\x00\x00\x00\x00\x00' + WORD $0x32363536 // .asciz 4, '65625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000035 // .asciz 4, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x00000006 // .long 6 + WORD $0x37303931 // .asciz 4, '19073486328125\x00\x00' + WORD $0x36383433 // .asciz 4, '3486328125\x00\x00\x00\x00\x00\x00' + WORD $0x31383233 // .asciz 4, '328125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00003532 // .asciz 4, '25\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x00000007 // .long 7 + WORD $0x36333539 // .asciz 4, '95367431640625\x00\x00' + WORD $0x31333437 // .asciz 4, '7431640625\x00\x00\x00\x00\x00\x00' + WORD $0x36303436 // .asciz 4, '640625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00003532 // .asciz 4, '25\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x00000007 // .long 7 + WORD $0x38363734 // .asciz 4, '476837158203125\x00' + WORD $0x35313733 // .asciz 4, '37158203125\x00\x00\x00\x00\x00' + WORD $0x33303238 // .asciz 4, '8203125\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00353231 // .asciz 4, '125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x00000007 // .long 7 + WORD $0x34383332 // .asciz 4, '2384185791015625' + WORD $0x37353831 // .asciz 4, '185791015625\x00\x00\x00\x00' + WORD $0x31303139 // .asciz 4, '91015625\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x35323635 // .asciz 4, '5625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x00000007 // .long 7 + WORD $0x32393131 // .asciz 4, '1192092895507812' + WORD $0x38323930 // .asciz 4, '0928955078125\x00\x00\x00' + WORD $0x30353539 // .asciz 4, '955078125\x00\x00\x00\x00\x00\x00\x00' + WORD $0x32313837 // .asciz 4, '78125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000035 // .asciz 4, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x00000008 // .long 8 + WORD $0x30363935 // .asciz 4, '5960464477539062' + WORD $0x34343634 // .asciz 4, '4644775390625\x00\x00\x00' + WORD $0x33353737 // .asciz 4, '775390625\x00\x00\x00\x00\x00\x00\x00' + WORD $0x32363039 // .asciz 4, '90625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000035 // .asciz 4, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x00000008 // .long 8 + WORD $0x30383932 // .asciz 4, '2980232238769531' + WORD $0x32323332 // .asciz 4, '23223876953125\x00\x00' + WORD $0x36373833 // .asciz 4, '3876953125\x00\x00\x00\x00\x00\x00' + WORD $0x31333539 // .asciz 4, '953125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00003532 // .asciz 4, '25\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x00000008 // .long 8 + WORD $0x30393431 // .asciz 4, '1490116119384765' + WORD $0x31363131 // .asciz 4, '116119384765625\x00' + WORD $0x38333931 // .asciz 4, '19384765625\x00\x00\x00\x00\x00' + WORD $0x35363734 // .asciz 4, '4765625\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00353236 // .asciz 4, '625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x00000009 // .long 9 + WORD $0x30353437 // .asciz 4, '7450580596923828' + WORD $0x35303835 // .asciz 4, '580596923828125\x00' + WORD $0x32393639 // .asciz 4, '96923828125\x00\x00\x00\x00\x00' + WORD $0x38323833 // .asciz 4, '3828125\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00353231 // .asciz 4, '125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x00000009 // .long 9 + WORD $0x35323733 // .asciz 4, '3725290298461914' + WORD $0x32303932 // .asciz 4, '2902984619140625' + WORD $0x36343839 // .asciz 4, '984619140625\x00\x00\x00\x00' + WORD $0x34313931 // .asciz 4, '19140625\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x35323630 // .asciz 4, '0625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x00000009 // .long 9 + WORD $0x32363831 // .asciz 4, '1862645149230957' + WORD $0x31353436 // .asciz 4, '6451492309570312' + WORD $0x33323934 // .asciz 4, '4923095703125\x00\x00\x00' + WORD $0x37353930 // .asciz 4, '095703125\x00\x00\x00\x00\x00\x00\x00' + WORD $0x32313330 // .asciz 4, '03125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000035 // .asciz 4, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x0000000a // .long 10 + WORD $0x33313339 // .asciz 4, '9313225746154785' + WORD $0x37353232 // .asciz 4, '2257461547851562' + WORD $0x35313634 // .asciz 4, '4615478515625\x00\x00\x00' + WORD $0x35383734 // .asciz 4, '478515625\x00\x00\x00\x00\x00\x00\x00' + WORD $0x32363531 // .asciz 4, '15625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000035 // .asciz 4, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x0000000a // .long 10 + WORD $0x36353634 // .asciz 4, '4656612873077392' + WORD $0x38323136 // .asciz 4, '6128730773925781' + WORD $0x37303337 // .asciz 4, '73077392578125\x00\x00' + WORD $0x32393337 // .asciz 4, '7392578125\x00\x00\x00\x00\x00\x00' + WORD $0x31383735 // .asciz 4, '578125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00003532 // .asciz 4, '25\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x0000000a // .long 10 + WORD $0x38323332 // .asciz 4, '2328306436538696' + WORD $0x34363033 // .asciz 4, '3064365386962890' + WORD $0x33353633 // .asciz 4, '365386962890625\x00' + WORD $0x36393638 // .asciz 4, '86962890625\x00\x00\x00\x00\x00' + WORD $0x30393832 // .asciz 4, '2890625\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00353236 // .asciz 4, '625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x0000000a // .long 10 + WORD $0x34363131 // .asciz 4, '1164153218269348' + WORD $0x32333531 // .asciz 4, '1532182693481445' + WORD $0x36323831 // .asciz 4, '1826934814453125' + WORD $0x38343339 // .asciz 4, '934814453125\x00\x00\x00\x00' + WORD $0x35343431 // .asciz 4, '14453125\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x35323133 // .asciz 4, '3125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x0000000b // .long 11 + WORD $0x30323835 // .asciz 4, '5820766091346740' + WORD $0x30363637 // .asciz 4, '7660913467407226' + WORD $0x34333139 // .asciz 4, '9134674072265625' + WORD $0x30343736 // .asciz 4, '674072265625\x00\x00\x00\x00' + WORD $0x36323237 // .asciz 4, '72265625\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x35323635 // .asciz 4, '5625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x0000000b // .long 11 + WORD $0x30313932 // .asciz 4, '2910383045673370' + WORD $0x30333833 // .asciz 4, '3830456733703613' + WORD $0x37363534 // .asciz 4, '4567337036132812' + WORD $0x30373333 // .asciz 4, '3370361328125\x00\x00\x00' + WORD $0x33313633 // .asciz 4, '361328125\x00\x00\x00\x00\x00\x00\x00' + WORD $0x32313832 // .asciz 4, '28125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000035 // .asciz 4, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x0000000b // .long 11 + WORD $0x35353431 // .asciz 4, '1455191522836685' + WORD $0x35313931 // .asciz 4, '1915228366851806' + WORD $0x33383232 // .asciz 4, '2283668518066406' + WORD $0x35383636 // .asciz 4, '66851806640625\x00\x00' + WORD $0x36303831 // .asciz 4, '1806640625\x00\x00\x00\x00\x00\x00' + WORD $0x36303436 // .asciz 4, '640625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00003532 // .asciz 4, '25\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x0000000c // .long 12 + WORD $0x35373237 // .asciz 4, '7275957614183425' + WORD $0x36373539 // .asciz 4, '9576141834259033' + WORD $0x38313431 // .asciz 4, '1418342590332031' + WORD $0x35323433 // .asciz 4, '34259033203125\x00\x00' + WORD $0x33333039 // .asciz 4, '9033203125\x00\x00\x00\x00\x00\x00' + WORD $0x31333032 // .asciz 4, '203125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00003532 // .asciz 4, '25\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x0000000c // .long 12 + WORD $0x37333633 // .asciz 4, '3637978807091712' + WORD $0x38383739 // .asciz 4, '9788070917129516' + WORD $0x39303730 // .asciz 4, '0709171295166015' + WORD $0x32313731 // .asciz 4, '171295166015625\x00' + WORD $0x36313539 // .asciz 4, '95166015625\x00\x00\x00\x00\x00' + WORD $0x35313036 // .asciz 4, '6015625\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00353236 // .asciz 4, '625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x0000000c // .long 12 + WORD $0x38313831 // .asciz 4, '1818989403545856' + WORD $0x34393839 // .asciz 4, '9894035458564758' + WORD $0x34353330 // .asciz 4, '0354585647583007' + WORD $0x36353835 // .asciz 4, '5856475830078125' + WORD $0x38353734 // .asciz 4, '475830078125\x00\x00\x00\x00' + WORD $0x37303033 // .asciz 4, '30078125\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x35323138 // .asciz 4, '8125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x0000000d // .long 13 + WORD $0x34393039 // .asciz 4, '9094947017729282' + WORD $0x30373439 // .asciz 4, '9470177292823791' + WORD $0x32373731 // .asciz 4, '1772928237915039' + WORD $0x32383239 // .asciz 4, '9282379150390625' + WORD $0x31393733 // .asciz 4, '379150390625\x00\x00\x00\x00' + WORD $0x39333035 // .asciz 4, '50390625\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x35323630 // .asciz 4, '0625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x0000000d // .long 13 + WORD $0x37343534 // .asciz 4, '4547473508864641' + WORD $0x35333734 // .asciz 4, '4735088646411895' + WORD $0x36383830 // .asciz 4, '0886464118957519' + WORD $0x31343634 // .asciz 4, '4641189575195312' + WORD $0x35393831 // .asciz 4, '1895751953125\x00\x00\x00' + WORD $0x39313537 // .asciz 4, '751953125\x00\x00\x00\x00\x00\x00\x00' + WORD $0x32313335 // .asciz 4, '53125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000035 // .asciz 4, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x0000000d // .long 13 + WORD $0x33373232 // .asciz 4, '2273736754432320' + WORD $0x37363337 // .asciz 4, '7367544323205947' + WORD $0x33343435 // .asciz 4, '5443232059478759' + WORD $0x30323332 // .asciz 4, '2320594787597656' + WORD $0x37343935 // .asciz 4, '59478759765625\x00\x00' + WORD $0x39353738 // .asciz 4, '8759765625\x00\x00\x00\x00\x00\x00' + WORD $0x36353637 // .asciz 4, '765625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00003532 // .asciz 4, '25\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x0000000d // .long 13 + WORD $0x36333131 // .asciz 4, '1136868377216160' + WORD $0x33383638 // .asciz 4, '8683772161602973' + WORD $0x31323737 // .asciz 4, '7721616029739379' + WORD $0x30363136 // .asciz 4, '6160297393798828' + WORD $0x33373932 // .asciz 4, '297393798828125\x00' + WORD $0x39373339 // .asciz 4, '93798828125\x00\x00\x00\x00\x00' + WORD $0x38323838 // .asciz 4, '8828125\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00353231 // .asciz 4, '125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x0000000e // .long 14 + WORD $0x34383635 // .asciz 4, '5684341886080801' + WORD $0x38313433 // .asciz 4, '3418860808014869' + WORD $0x38303638 // .asciz 4, '8608080148696899' + WORD $0x31303830 // .asciz 4, '0801486968994140' + WORD $0x39363834 // .asciz 4, '486968994140625\x00' + WORD $0x39393836 // .asciz 4, '68994140625\x00\x00\x00\x00\x00' + WORD $0x30343134 // .asciz 4, '4140625\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00353236 // .asciz 4, '625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x0000000e // .long 14 + WORD $0x32343832 // .asciz 4, '2842170943040400' + WORD $0x39303731 // .asciz 4, '1709430404007434' + WORD $0x34303334 // .asciz 4, '4304040074348449' + WORD $0x30303430 // .asciz 4, '0400743484497070' + WORD $0x34333437 // .asciz 4, '7434844970703125' + WORD $0x39343438 // .asciz 4, '844970703125\x00\x00\x00\x00' + WORD $0x30373037 // .asciz 4, '70703125\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x35323133 // .asciz 4, '3125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x0000000e // .long 14 + WORD $0x31323431 // .asciz 4, '1421085471520200' + WORD $0x34353830 // .asciz 4, '0854715202003717' + WORD $0x32353137 // .asciz 4, '7152020037174224' + WORD $0x30303230 // .asciz 4, '0200371742248535' + WORD $0x37313733 // .asciz 4, '3717422485351562' + WORD $0x34323234 // .asciz 4, '4224853515625\x00\x00\x00' + WORD $0x35333538 // .asciz 4, '853515625\x00\x00\x00\x00\x00\x00\x00' + WORD $0x32363531 // .asciz 4, '15625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000035 // .asciz 4, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x0000000f // .long 15 + WORD $0x35303137 // .asciz 4, '7105427357601001' + WORD $0x33373234 // .asciz 4, '4273576010018587' + WORD $0x30363735 // .asciz 4, '5760100185871124' + WORD $0x31303031 // .asciz 4, '1001858711242675' + WORD $0x37383538 // .asciz 4, '8587112426757812' + WORD $0x34323131 // .asciz 4, '1124267578125\x00\x00\x00' + WORD $0x35373632 // .asciz 4, '267578125\x00\x00\x00\x00\x00\x00\x00' + WORD $0x32313837 // .asciz 4, '78125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000035 // .asciz 4, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x0000000f // .long 15 + WORD $0x32353533 // .asciz 4, '3552713678800500' + WORD $0x36333137 // .asciz 4, '7136788005009293' + WORD $0x30383837 // .asciz 4, '7880050092935562' + WORD $0x30303530 // .asciz 4, '0500929355621337' + WORD $0x33393239 // .asciz 4, '9293556213378906' + WORD $0x32363535 // .asciz 4, '55621337890625\x00\x00' + WORD $0x37333331 // .asciz 4, '1337890625\x00\x00\x00\x00\x00\x00' + WORD $0x36303938 // .asciz 4, '890625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00003532 // .asciz 4, '25\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x0000000f // .long 15 + WORD $0x36373731 // .asciz 4, '1776356839400250' + WORD $0x38363533 // .asciz 4, '3568394002504646' + WORD $0x30343933 // .asciz 4, '3940025046467781' + WORD $0x30353230 // .asciz 4, '0250464677810668' + WORD $0x36343634 // .asciz 4, '4646778106689453' + WORD $0x31383737 // .asciz 4, '778106689453125\x00' + WORD $0x38363630 // .asciz 4, '06689453125\x00\x00\x00\x00\x00' + WORD $0x33353439 // .asciz 4, '9453125\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00353231 // .asciz 4, '125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x00000010 // .long 16 + WORD $0x31383838 // .asciz 4, '8881784197001252' + WORD $0x31343837 // .asciz 4, '7841970012523233' + WORD $0x30303739 // .asciz 4, '9700125232338905' + WORD $0x32353231 // .asciz 4, '1252323389053344' + WORD $0x33333233 // .asciz 4, '3233890533447265' + WORD $0x35303938 // .asciz 4, '890533447265625\x00' + WORD $0x34343333 // .asciz 4, '33447265625\x00\x00\x00\x00\x00' + WORD $0x35363237 // .asciz 4, '7265625\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00353236 // .asciz 4, '625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x00000010 // .long 16 + WORD $0x30343434 // .asciz 4, '4440892098500626' + WORD $0x30323938 // .asciz 4, '8920985006261616' + WORD $0x30353839 // .asciz 4, '9850062616169452' + WORD $0x36323630 // .asciz 4, '0626161694526672' + WORD $0x36313631 // .asciz 4, '1616945266723632' + WORD $0x32353439 // .asciz 4, '9452667236328125' + WORD $0x32373636 // .asciz 4, '667236328125\x00\x00\x00\x00' + WORD $0x32333633 // .asciz 4, '36328125\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x35323138 // .asciz 4, '8125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x00000010 // .long 16 + WORD $0x30323232 // .asciz 4, '2220446049250313' + WORD $0x30363434 // .asciz 4, '4460492503130808' + WORD $0x35323934 // .asciz 4, '4925031308084726' + WORD $0x33313330 // .asciz 4, '0313080847263336' + WORD $0x38303830 // .asciz 4, '0808472633361816' + WORD $0x36323734 // .asciz 4, '4726333618164062' + WORD $0x36333333 // .asciz 4, '3336181640625\x00\x00\x00' + WORD $0x36313831 // .asciz 4, '181640625\x00\x00\x00\x00\x00\x00\x00' + WORD $0x32363034 // .asciz 4, '40625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000035 // .asciz 4, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x00000010 // .long 16 + WORD $0x30313131 // .asciz 4, '1110223024625156' + WORD $0x30333232 // .asciz 4, '2230246251565404' + WORD $0x32363432 // .asciz 4, '2462515654042363' + WORD $0x36353135 // .asciz 4, '5156540423631668' + WORD $0x34303435 // .asciz 4, '5404236316680908' + WORD $0x33363332 // .asciz 4, '2363166809082031' + WORD $0x38363631 // .asciz 4, '16680908203125\x00\x00' + WORD $0x38303930 // .asciz 4, '0908203125\x00\x00\x00\x00\x00\x00' + WORD $0x31333032 // .asciz 4, '203125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00003532 // .asciz 4, '25\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x00000011 // .long 17 + WORD $0x31353535 // .asciz 4, '5551115123125782' + WORD $0x31353131 // .asciz 4, '1151231257827021' + WORD $0x32313332 // .asciz 4, '2312578270211815' + WORD $0x32383735 // .asciz 4, '5782702118158340' + WORD $0x31323037 // .asciz 4, '7021181583404541' + WORD $0x35313831 // .asciz 4, '1815834045410156' + WORD $0x30343338 // .asciz 4, '83404541015625\x00\x00' + WORD $0x31343534 // .asciz 4, '4541015625\x00\x00\x00\x00\x00\x00' + WORD $0x36353130 // .asciz 4, '015625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00003532 // .asciz 4, '25\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x00000011 // .long 17 + WORD $0x35373732 // .asciz 4, '2775557561562891' + WORD $0x35373535 // .asciz 4, '5575615628913510' + WORD $0x36353136 // .asciz 4, '6156289135105907' + WORD $0x31393832 // .asciz 4, '2891351059079170' + WORD $0x30313533 // .asciz 4, '3510590791702270' + WORD $0x37303935 // .asciz 4, '5907917022705078' + WORD $0x30373139 // .asciz 4, '917022705078125\x00' + WORD $0x30373232 // .asciz 4, '22705078125\x00\x00\x00\x00\x00' + WORD $0x38373035 // .asciz 4, '5078125\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00353231 // .asciz 4, '125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x00000011 // .long 17 + WORD $0x37383331 // .asciz 4, '1387778780781445' + WORD $0x37383737 // .asciz 4, '7787807814456755' + WORD $0x38373038 // .asciz 4, '8078144567552953' + WORD $0x35343431 // .asciz 4, '1445675529539585' + WORD $0x35353736 // .asciz 4, '6755295395851135' + WORD $0x33353932 // .asciz 4, '2953958511352539' + WORD $0x35383539 // .asciz 4, '9585113525390625' + WORD $0x35333131 // .asciz 4, '113525390625\x00\x00\x00\x00' + WORD $0x39333532 // .asciz 4, '25390625\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x35323630 // .asciz 4, '0625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x00000012 // .long 18 + WORD $0x38333936 // .asciz 4, '6938893903907228' + WORD $0x39333938 // .asciz 4, '8939039072283776' + WORD $0x30393330 // .asciz 4, '0390722837764769' + WORD $0x38323237 // .asciz 4, '7228377647697925' + WORD $0x36373733 // .asciz 4, '3776476979255676' + WORD $0x39363734 // .asciz 4, '4769792556762695' + WORD $0x35323937 // .asciz 4, '7925567626953125' + WORD $0x36373635 // .asciz 4, '567626953125\x00\x00\x00\x00' + WORD $0x35393632 // .asciz 4, '26953125\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x35323133 // .asciz 4, '3125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x00000012 // .long 18 + WORD $0x39363433 // .asciz 4, '3469446951953614' + WORD $0x39363434 // .asciz 4, '4469519536141888' + WORD $0x35393135 // .asciz 4, '5195361418882384' + WORD $0x34313633 // .asciz 4, '3614188823848962' + WORD $0x38383831 // .asciz 4, '1888238489627838' + WORD $0x34383332 // .asciz 4, '2384896278381347' + WORD $0x32363938 // .asciz 4, '8962783813476562' + WORD $0x38333837 // .asciz 4, '7838134765625\x00\x00\x00' + WORD $0x37343331 // .asciz 4, '134765625\x00\x00\x00\x00\x00\x00\x00' + WORD $0x32363536 // .asciz 4, '65625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000035 // .asciz 4, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x00000012 // .long 18 + WORD $0x34333731 // .asciz 4, '1734723475976807' + WORD $0x34333237 // .asciz 4, '7234759768070944' + WORD $0x37393537 // .asciz 4, '7597680709441192' + WORD $0x37303836 // .asciz 4, '6807094411924481' + WORD $0x34343930 // .asciz 4, '0944119244813919' + WORD $0x32393131 // .asciz 4, '1192448139190673' + WORD $0x31383434 // .asciz 4, '4481391906738281' + WORD $0x39313933 // .asciz 4, '39190673828125\x00\x00' + WORD $0x33373630 // .asciz 4, '0673828125\x00\x00\x00\x00\x00\x00' + WORD $0x31383238 // .asciz 4, '828125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00003532 // .asciz 4, '25\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x00000013 // .long 19 + WORD $0x33373638 // .asciz 4, '8673617379884035' + WORD $0x33373136 // .asciz 4, '6173798840354720' + WORD $0x38383937 // .asciz 4, '7988403547205962' + WORD $0x35333034 // .asciz 4, '4035472059622406' + WORD $0x30323734 // .asciz 4, '4720596224069595' + WORD $0x32363935 // .asciz 4, '5962240695953369' + WORD $0x36303432 // .asciz 4, '2406959533691406' + WORD $0x35393539 // .asciz 4, '95953369140625\x00\x00' + WORD $0x39363333 // .asciz 4, '3369140625\x00\x00\x00\x00\x00\x00' + WORD $0x36303431 // .asciz 4, '140625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00003532 // .asciz 4, '25\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + +TEXT ·__value(SB), NOSPLIT, $0-48 + NO_LOCAL_POINTERS + +_entry: + MOVD 16(g), R16 + SUB $176, RSP, R17 + CMP R16, R17 + BLS _stack_grow + +_value: + MOVD s+0(FP), R0 + MOVD n+8(FP), R1 + MOVD p+16(FP), R2 + MOVD v+24(FP), R3 + MOVD flags+32(FP), R4 + MOVD ·_subr__value(SB), R11 + WORD $0x1000005e // adr x30, .+8 + JMP (R11) + MOVD R0, ret+40(FP) + RET + +_stack_grow: + MOVD R30, R3 + CALL runtime·morestack_noctxt<>(SB) + JMP _entry diff --git a/vendor/github.com/bytedance/sonic/internal/native/neon/value_subr_arm64.go b/vendor/github.com/bytedance/sonic/internal/native/neon/value_subr_arm64.go new file mode 100644 index 000000000..df885edce --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/neon/value_subr_arm64.go @@ -0,0 +1,25 @@ +// +build !noasm !appengine +// Code generated by asm2asm, DO NOT EDIT. + +package neon + +//go:nosplit +//go:noescape +//goland:noinspection ALL +func __value_entry__() uintptr + +var ( + _subr__value uintptr = __value_entry__() + 32 +) + +const ( + _stack__value = 112 +) + +var ( + _ = _subr__value +) + +const ( + _ = _stack__value +) diff --git a/vendor/google.golang.org/grpc/internal/channelz/util_linux.go b/vendor/github.com/bytedance/sonic/internal/native/neon/vnumber_arm64.go similarity index 60% rename from vendor/google.golang.org/grpc/internal/channelz/util_linux.go rename to vendor/github.com/bytedance/sonic/internal/native/neon/vnumber_arm64.go index 98288c3f8..8bb254445 100644 --- a/vendor/google.golang.org/grpc/internal/channelz/util_linux.go +++ b/vendor/github.com/bytedance/sonic/internal/native/neon/vnumber_arm64.go @@ -1,6 +1,6 @@ + /* - * - * Copyright 2018 gRPC authors. + * Copyright 2021 ByteDance Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -13,25 +13,22 @@ * 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 channelz +package neon import ( - "syscall" + `github.com/bytedance/sonic/internal/native/types` ) -// GetSocketOption gets the socket option info of the conn. -func GetSocketOption(socket any) *SocketOptionData { - c, ok := socket.(syscall.Conn) - if !ok { - return nil - } - data := &SocketOptionData{} - if rawConn, err := c.SyscallConn(); err == nil { - rawConn.Control(data.Getsockopt) - return data - } - return nil +//go:nosplit +func vnumber(s *string, p *int, v *types.JsonState) { + __vnumber(s, p, v) } + +//go:nosplit +//go:noescape +//goland:noinspection GoUnusedParameter +func __vnumber(s *string, p *int, v *types.JsonState) + + diff --git a/vendor/github.com/bytedance/sonic/internal/native/neon/vnumber_arm64.s b/vendor/github.com/bytedance/sonic/internal/native/neon/vnumber_arm64.s new file mode 100644 index 000000000..7d7a8a22f --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/neon/vnumber_arm64.s @@ -0,0 +1,4690 @@ +// +build !noasm !appengine +// Code generated by asm2asm, DO NOT EDIT. + +#include "go_asm.h" +#include "funcdata.h" +#include "textflag.h" + +TEXT ·__vnumber_entry__(SB), NOSPLIT, $96 + NO_LOCAL_POINTERS + WORD $0x100000a0 // adr x0, .+20 + MOVD R0, ret(FP) + RET + // .p2align 2, 0x00 +_vnumber: + WORD $0xd101c3ff // sub sp, sp, #112 + WORD $0xa900effc // stp x28, x27, [sp, #8] + WORD $0xa901e7fa // stp x26, x25, [sp, #24] + WORD $0xa902dff8 // stp x24, x23, [sp, #40] + WORD $0xa903d7f6 // stp x22, x21, [sp, #56] + WORD $0xa904cff4 // stp x20, x19, [sp, #72] + WORD $0xa905fbfd // stp fp, lr, [sp, #88] + WORD $0xa93ffbfd // stp fp, lr, [sp, #-8] + WORD $0xd10023fd // sub fp, sp, #8 + WORD $0xf9400031 // ldr x17, [x1] + WORD $0xa940200b // ldp x11, x8, [x0] + WORD $0xa9422849 // ldp x9, x10, [x2, #32] + WORD $0x5280012c // mov w12, #9 + WORD $0xa900fc5f // stp xzr, xzr, [x2, #8] + WORD $0xf900004c // str x12, [x2] + WORD $0xf940002c // ldr x12, [x1] + WORD $0xf9000c4c // str x12, [x2, #24] + WORD $0xeb08023f // cmp x17, x8 + WORD $0x54001462 // b.hs LBB0_47 $652(%rip) + WORD $0x3871696c // ldrb w12, [x11, x17] + WORD $0x7100b59f // cmp w12, #45 + WORD $0x540005e1 // b.ne LBB0_10 $188(%rip) + WORD $0x91000631 // add x17, x17, #1 + WORD $0xeb08023f // cmp x17, x8 + WORD $0x540013a2 // b.hs LBB0_47 $628(%rip) + WORD $0x3871696d // ldrb w13, [x11, x17] + WORD $0x1280000e // mov w14, #-1 + WORD $0x5100e9af // sub w15, w13, #58 + WORD $0x31002dff // cmn w15, #11 + WORD $0x54000589 // b.ls LBB0_11 $176(%rip) +LBB0_4: + WORD $0x7100c1bf // cmp w13, #48 + WORD $0x54000181 // b.ne LBB0_6 $48(%rip) + WORD $0x8b11016d // add x13, x11, x17 + WORD $0x394005ad // ldrb w13, [x13, #1] + WORD $0x5100b9ad // sub w13, w13, #46 + WORD $0x7100ddbf // cmp w13, #55 + WORD $0x5280002f // mov w15, #1 + WORD $0x9acd21ed // lsl x13, x15, x13 + WORD $0xb20903ef // mov x15, #36028797027352576 + WORD $0xf280002f // movk x15, #1 + WORD $0x8a0f01ad // and x13, x13, x15 + WORD $0xfa4099a4 // ccmp x13, #0, #4, ls + WORD $0x54000da0 // b.eq LBB0_38 $436(%rip) +LBB0_6: + WORD $0xd280000d // mov x13, #0 + WORD $0x52800003 // mov w3, #0 + WORD $0x52800010 // mov w16, #0 + WORD $0x5280014f // mov w15, #10 +LBB0_7: + WORD $0x38716964 // ldrb w4, [x11, x17] + WORD $0x5100c080 // sub w0, w4, #48 + WORD $0x7100241f // cmp w0, #9 + WORD $0x54000348 // b.hi LBB0_13 $104(%rip) + WORD $0x71004c7f // cmp w3, #19 + WORD $0x9b0f7da4 // mul x4, x13, x15 + WORD $0x8b200080 // add x0, x4, w0, uxtb + WORD $0x1a832464 // cinc w4, w3, lo + WORD $0x7100487f // cmp w3, #18 + WORD $0x1a909610 // cinc w16, w16, hi + WORD $0xaa0403e3 // mov x3, x4 + WORD $0x9a8081ad // csel x13, x13, x0, hi + WORD $0x91000631 // add x17, x17, #1 + WORD $0xeb11011f // cmp x8, x17 + WORD $0x54fffe41 // b.ne LBB0_7 $-56(%rip) + WORD $0x52800020 // mov w0, #1 + WORD $0xaa0803f1 // mov x17, x8 + WORD $0x7100021f // cmp w16, #0 + WORD $0x1a9fd7ef // cset w15, gt + WORD $0xb400038d // cbz x13, LBB0_18 $112(%rip) + WORD $0x1400002d // b LBB0_26 $180(%rip) +LBB0_10: + WORD $0x5280002e // mov w14, #1 + WORD $0xaa0c03ed // mov x13, x12 + WORD $0x5100e9af // sub w15, w13, #58 + WORD $0x31002dff // cmn w15, #11 + WORD $0x54fffac8 // b.hi LBB0_4 $-168(%rip) +LBB0_11: + WORD $0xf9000031 // str x17, [x1] +LBB0_12: + WORD $0x92800028 // mov x8, #-2 + WORD $0x1400006c // b LBB0_48 $432(%rip) +LBB0_13: + WORD $0x7100b89f // cmp w4, #46 + WORD $0x540001a1 // b.ne LBB0_17 $52(%rip) + WORD $0x9100062f // add x15, x17, #1 + WORD $0x52800100 // mov w0, #8 + WORD $0xf9000040 // str x0, [x2] + WORD $0xeb0801ff // cmp x15, x8 + WORD $0x54000c62 // b.hs LBB0_47 $396(%rip) + WORD $0x8b110171 // add x17, x11, x17 + WORD $0x39400631 // ldrb w17, [x17, #1] + WORD $0x5100ea31 // sub w17, w17, #58 + WORD $0x31002e3f // cmn w17, #11 + WORD $0x54000848 // b.hi LBB0_39 $264(%rip) + WORD $0xf900002f // str x15, [x1] + WORD $0x17fffff1 // b LBB0_12 $-60(%rip) +LBB0_17: + WORD $0x52800020 // mov w0, #1 + WORD $0x7100021f // cmp w16, #0 + WORD $0x1a9fd7ef // cset w15, gt + WORD $0xb500026d // cbnz x13, LBB0_26 $76(%rip) +LBB0_18: + WORD $0x35000250 // cbnz w16, LBB0_26 $72(%rip) + WORD $0xeb08023f // cmp x17, x8 + WORD $0x540001a2 // b.hs LBB0_24 $52(%rip) + WORD $0x52800010 // mov w16, #0 + WORD $0x4b080223 // sub w3, w17, w8 +LBB0_21: + WORD $0x3871696d // ldrb w13, [x11, x17] + WORD $0x7100c1bf // cmp w13, #48 + WORD $0x54000121 // b.ne LBB0_25 $36(%rip) + WORD $0x91000631 // add x17, x17, #1 + WORD $0x51000610 // sub w16, w16, #1 + WORD $0xeb11011f // cmp x8, x17 + WORD $0x54ffff41 // b.ne LBB0_21 $-24(%rip) + WORD $0xd280000d // mov x13, #0 + WORD $0x35000b00 // cbnz w0, LBB0_51 $352(%rip) + WORD $0x14000060 // b LBB0_55 $384(%rip) +LBB0_24: + WORD $0x52800010 // mov w16, #0 +LBB0_25: + WORD $0x52800003 // mov w3, #0 + WORD $0xd280000d // mov x13, #0 +LBB0_26: + WORD $0xeb08023f // cmp x17, x8 + WORD $0x54000242 // b.hs LBB0_32 $72(%rip) + WORD $0x7100487f // cmp w3, #18 + WORD $0x5400020c // b.gt LBB0_32 $64(%rip) + WORD $0x52800144 // mov w4, #10 +LBB0_29: + WORD $0x38716965 // ldrb w5, [x11, x17] + WORD $0x5100c0a5 // sub w5, w5, #48 + WORD $0x710024bf // cmp w5, #9 + WORD $0x54000168 // b.hi LBB0_32 $44(%rip) + WORD $0x9b047dad // mul x13, x13, x4 + WORD $0x8b2501ad // add x13, x13, w5, uxtb + WORD $0x51000610 // sub w16, w16, #1 + WORD $0x91000631 // add x17, x17, #1 + WORD $0xeb08023f // cmp x17, x8 + WORD $0x540000a2 // b.hs LBB0_32 $20(%rip) + WORD $0x11000465 // add w5, w3, #1 + WORD $0x7100487f // cmp w3, #18 + WORD $0xaa0503e3 // mov x3, x5 + WORD $0x54fffe6b // b.lt LBB0_29 $-52(%rip) +LBB0_32: + WORD $0xeb08023f // cmp x17, x8 + WORD $0x54000782 // b.hs LBB0_50 $240(%rip) + WORD $0x38716963 // ldrb w3, [x11, x17] + WORD $0x5100c064 // sub w4, w3, #48 + WORD $0x7100249f // cmp w4, #9 + WORD $0x54000308 // b.hi LBB0_41 $96(%rip) + WORD $0x91000631 // add x17, x17, #1 + WORD $0xeb08023f // cmp x17, x8 + WORD $0x54000100 // b.eq LBB0_37 $32(%rip) +LBB0_35: + WORD $0x38716963 // ldrb w3, [x11, x17] + WORD $0x5100c06f // sub w15, w3, #48 + WORD $0x710025ff // cmp w15, #9 + WORD $0x54000208 // b.hi LBB0_40 $64(%rip) + WORD $0x91000631 // add x17, x17, #1 + WORD $0xeb11011f // cmp x8, x17 + WORD $0x54ffff41 // b.ne LBB0_35 $-24(%rip) +LBB0_37: + WORD $0x5280002f // mov w15, #1 + WORD $0xaa1003e3 // mov x3, x16 + WORD $0x350005c0 // cbnz w0, LBB0_51 $184(%rip) + WORD $0x14000036 // b LBB0_55 $216(%rip) +LBB0_38: + WORD $0x91000628 // add x8, x17, #1 + WORD $0x14000185 // b LBB0_135 $1556(%rip) +LBB0_39: + WORD $0x52800000 // mov w0, #0 + WORD $0xaa0f03f1 // mov x17, x15 + WORD $0x7100021f // cmp w16, #0 + WORD $0x1a9fd7ef // cset w15, gt + WORD $0xb4fff82d // cbz x13, LBB0_18 $-252(%rip) + WORD $0x17ffffd2 // b LBB0_26 $-184(%rip) +LBB0_40: + WORD $0x5280002f // mov w15, #1 +LBB0_41: + WORD $0x321b0063 // orr w3, w3, #0x20 + WORD $0x7101947f // cmp w3, #101 + WORD $0x540003c1 // b.ne LBB0_50 $120(%rip) + WORD $0x91000620 // add x0, x17, #1 + WORD $0x52800103 // mov w3, #8 + WORD $0xf9000043 // str x3, [x2] + WORD $0xeb08001f // cmp x0, x8 + WORD $0x540001c2 // b.hs LBB0_47 $56(%rip) + WORD $0x38606963 // ldrb w3, [x11, x0] + WORD $0x7100b47f // cmp w3, #45 + WORD $0x54000060 // b.eq LBB0_45 $12(%rip) + WORD $0x7100ac7f // cmp w3, #43 + WORD $0x54002841 // b.ne LBB0_117 $1288(%rip) +LBB0_45: + WORD $0x91000a20 // add x0, x17, #2 + WORD $0xeb08001f // cmp x0, x8 + WORD $0x540000c2 // b.hs LBB0_47 $24(%rip) + WORD $0x7100ac7f // cmp w3, #43 + WORD $0x52800031 // mov w17, #1 + WORD $0x5a910631 // cneg w17, w17, ne + WORD $0x38606963 // ldrb w3, [x11, x0] + WORD $0x1400013b // b LBB0_118 $1260(%rip) +LBB0_47: + WORD $0xf9000028 // str x8, [x1] + WORD $0x92800008 // mov x8, #-1 +LBB0_48: + WORD $0xf9000048 // str x8, [x2] +LBB0_49: + WORD $0xa945fbfd // ldp fp, lr, [sp, #88] + WORD $0xa944cff4 // ldp x20, x19, [sp, #72] + WORD $0xa943d7f6 // ldp x22, x21, [sp, #56] + WORD $0xa942dff8 // ldp x24, x23, [sp, #40] + WORD $0xa941e7fa // ldp x26, x25, [sp, #24] + WORD $0xa940effc // ldp x28, x27, [sp, #8] + WORD $0x9101c3ff // add sp, sp, #112 + WORD $0xd65f03c0 // ret +LBB0_50: + WORD $0xaa1003e3 // mov x3, x16 + WORD $0xaa1103e8 // mov x8, x17 + WORD $0x34000140 // cbz w0, LBB0_55 $40(%rip) +LBB0_51: + WORD $0x350000e3 // cbnz w3, LBB0_54 $28(%rip) + WORD $0x93407dd0 // sxtw x16, w14 + WORD $0xb6f80ead // tbz x13, #63, LBB0_77 $468(%rip) + WORD $0x8a1001b1 // and x17, x13, x16 + WORD $0xd2f00000 // mov x0, #-9223372036854775808 + WORD $0xeb00023f // cmp x17, x0 + WORD $0x54000e20 // b.eq LBB0_77 $452(%rip) +LBB0_54: + WORD $0x52800110 // mov w16, #8 + WORD $0xf9000050 // str x16, [x2] +LBB0_55: + WORD $0xd374fdb0 // lsr x16, x13, #52 + WORD $0xb5000590 // cbnz x16, LBB0_65 $176(%rip) + WORD $0x9e6301a0 // ucvtf d0, x13 + WORD $0x531f7dce // lsr w14, w14, #31 + WORD $0x9e660010 // fmov x16, d0 + WORD $0xaa0efe0e // orr x14, x16, x14, lsl #63 + WORD $0x9e6701c0 // fmov d0, x14 + WORD $0xb400284d // cbz x13, LBB0_132 $1288(%rip) + WORD $0x34002823 // cbz w3, LBB0_132 $1284(%rip) + WORD $0x5100046e // sub w14, w3, #1 + WORD $0x710091df // cmp w14, #36 + WORD $0x54000348 // b.hi LBB0_63 $104(%rip) + WORD $0xaa0303ee // mov x14, x3 + WORD $0x71005c7f // cmp w3, #23 + WORD $0x540000e3 // b.lo LBB0_61 $28(%rip) + WORD $0x5100586e // sub w14, w3, #22 +Lloh0: + WORD $0x10009210 // adr x16, _P10_TAB $4672(%rip) +Lloh1: + WORD $0x91000210 // add x16, x16, _P10_TAB@PAGEOFF $0(%rip) + WORD $0xfc6e5a01 // ldr d1, [x16, w14, uxtw #3] + WORD $0x1e600820 // fmul d0, d1, d0 + WORD $0x528002ce // mov w14, #22 +LBB0_61: + WORD $0xd2a4c690 // mov x16, #640942080 + WORD $0xf2cd7eb0 // movk x16, #27637, lsl #32 + WORD $0xf2e86190 // movk x16, #17164, lsl #48 + WORD $0x9e670201 // fmov d1, x16 + WORD $0x1e612000 // fcmp d0, d1 + WORD $0xd2a4c690 // mov x16, #640942080 + WORD $0xf2cd7eb0 // movk x16, #27637, lsl #32 + WORD $0xf2f86190 // movk x16, #49932, lsl #48 + WORD $0x9e670201 // fmov d1, x16 + WORD $0x1e61d408 // fccmp d0, d1, #8, le + WORD $0x54000224 // b.mi LBB0_66 $68(%rip) +Lloh2: + WORD $0x10009009 // adr x9, _P10_TAB $4608(%rip) +Lloh3: + WORD $0x91000129 // add x9, x9, _P10_TAB@PAGEOFF $0(%rip) + WORD $0xfc6e5921 // ldr d1, [x9, w14, uxtw #3] + WORD $0x1e610800 // fmul d0, d0, d1 + WORD $0x14000125 // b LBB0_132 $1172(%rip) +LBB0_63: + WORD $0x3100587f // cmn w3, #22 + WORD $0x540000e3 // b.lo LBB0_65 $28(%rip) + WORD $0x4b0303e9 // neg w9, w3 +Lloh4: + WORD $0x10008f0a // adr x10, _P10_TAB $4576(%rip) +Lloh5: + WORD $0x9100014a // add x10, x10, _P10_TAB@PAGEOFF $0(%rip) + WORD $0xfc695941 // ldr d1, [x10, w9, uxtw #3] + WORD $0x1e611800 // fdiv d0, d0, d1 + WORD $0x1400011d // b LBB0_132 $1140(%rip) +LBB0_65: + WORD $0x5105706e // sub w14, w3, #348 + WORD $0x310ae1df // cmn w14, #696 + WORD $0x54000663 // b.lo LBB0_72 $204(%rip) +LBB0_66: + WORD $0xdac011a0 // clz x0, x13 + WORD $0x9ac021a6 // lsl x6, x13, x0 + WORD $0x1105706e // add w14, w3, #348 +Lloh6: + WORD $0x10009370 // adr x16, _POW10_M128_TAB $4716(%rip) +Lloh7: + WORD $0x91000210 // add x16, x16, _POW10_M128_TAB@PAGEOFF $0(%rip) + WORD $0x8b2e520e // add x14, x16, w14, uxtw #4 + WORD $0xf94005d0 // ldr x16, [x14, #8] + WORD $0x9b067e11 // mul x17, x16, x6 + WORD $0x9bc67e04 // umulh x4, x16, x6 + WORD $0x92402085 // and x5, x4, #0x1ff + WORD $0xaa2603e7 // mvn x7, x6 + WORD $0xeb07023f // cmp x17, x7 + WORD $0x540001c9 // b.ls LBB0_70 $56(%rip) + WORD $0xf107fcbf // cmp x5, #511 + WORD $0x54000181 // b.ne LBB0_70 $48(%rip) + WORD $0xf94001c5 // ldr x5, [x14] + WORD $0x9b067cb3 // mul x19, x5, x6 + WORD $0x9bc67ca5 // umulh x5, x5, x6 + WORD $0xab1100b1 // adds x17, x5, x17 + WORD $0x9a843484 // cinc x4, x4, hs + WORD $0x92402085 // and x5, x4, #0x1ff + WORD $0xeb07027f // cmp x19, x7 + WORD $0xba418a20 // ccmn x17, #1, #0, hi + WORD $0x54000061 // b.ne LBB0_70 $12(%rip) + WORD $0xf107fcbf // cmp x5, #511 + WORD $0x54000320 // b.eq LBB0_72 $100(%rip) +LBB0_70: + WORD $0xd37ffc86 // lsr x6, x4, #63 + WORD $0x910024c7 // add x7, x6, #9 + WORD $0x9ac72484 // lsr x4, x4, x7 + WORD $0xaa1100b1 // orr x17, x5, x17 + WORD $0x92400485 // and x5, x4, #0x3 + WORD $0xf100023f // cmp x17, #0 + WORD $0xfa4108a0 // ccmp x5, #1, #0, eq + WORD $0x54000220 // b.eq LBB0_72 $68(%rip) + WORD $0x528a4d51 // mov w17, #21098 + WORD $0x72a00071 // movk w17, #3, lsl #16 + WORD $0x1b117c71 // mul w17, w3, w17 + WORD $0x13107e31 // asr w17, w17, #16 + WORD $0x1110fe31 // add w17, w17, #1087 + WORD $0x93407e31 // sxtw x17, w17 + WORD $0xcb000220 // sub x0, x17, x0 + WORD $0x8b0000c5 // add x5, x6, x0 + WORD $0x92400080 // and x0, x4, #0x1 + WORD $0x8b040000 // add x0, x0, x4 + WORD $0xd376fc03 // lsr x3, x0, #54 + WORD $0xf100007f // cmp x3, #0 + WORD $0x9a8504a4 // cinc x4, x5, ne + WORD $0xd1200085 // sub x5, x4, #2048 + WORD $0xb11ff8bf // cmn x5, #2046 + WORD $0x54001002 // b.hs LBB0_107 $512(%rip) +LBB0_72: + WORD $0xf940002c // ldr x12, [x1] + WORD $0x8b0c016e // add x14, x11, x12 + WORD $0xcb0c010f // sub x15, x8, x12 + WORD $0xb400056a // cbz x10, LBB0_87 $172(%rip) + WORD $0xf100215f // cmp x10, #8 + WORD $0x54000062 // b.hs LBB0_75 $12(%rip) + WORD $0xd280000b // mov x11, #0 + WORD $0x14000022 // b LBB0_85 $136(%rip) +LBB0_75: + WORD $0xf101015f // cmp x10, #64 + WORD $0x54000142 // b.hs LBB0_78 $40(%rip) + WORD $0xd280000b // mov x11, #0 + WORD $0x14000014 // b LBB0_82 $80(%rip) +LBB0_77: + WORD $0x9b107da9 // mul x9, x13, x16 + WORD $0x9e6301a0 // ucvtf d0, x13 + WORD $0x9241020a // and x10, x16, #0x8000000000000000 + WORD $0x9e66000b // fmov x11, d0 + WORD $0xaa0b014a // orr x10, x10, x11 + WORD $0xa900a44a // stp x10, x9, [x2, #8] + WORD $0x140000dd // b LBB0_135 $884(%rip) +LBB0_78: + WORD $0x927ae54b // and x11, x10, #0xffffffffffffffc0 + WORD $0x9100812c // add x12, x9, #32 + WORD $0x6f00e400 // movi.2d v0, #0000000000000000 + WORD $0xaa0b03ed // mov x13, x11 +LBB0_79: + WORD $0xad3f0180 // stp q0, q0, [x12, #-32] + WORD $0xac820180 // stp q0, q0, [x12], #64 + WORD $0xf10101ad // subs x13, x13, #64 + WORD $0x54ffffa1 // b.ne LBB0_79 $-12(%rip) + WORD $0xeb0b015f // cmp x10, x11 + WORD $0x54000240 // b.eq LBB0_87 $72(%rip) + WORD $0xf27d095f // tst x10, #0x38 + WORD $0x54000160 // b.eq LBB0_85 $44(%rip) +LBB0_82: + WORD $0xaa0b03ed // mov x13, x11 + WORD $0x927df14b // and x11, x10, #0xfffffffffffffff8 + WORD $0x8b0d012c // add x12, x9, x13 + WORD $0xcb0b01ad // sub x13, x13, x11 + WORD $0x6f00e400 // movi.2d v0, #0000000000000000 +LBB0_83: + WORD $0xfc008580 // str d0, [x12], #8 + WORD $0xb10021ad // adds x13, x13, #8 + WORD $0x54ffffc1 // b.ne LBB0_83 $-8(%rip) + WORD $0xeb0b015f // cmp x10, x11 + WORD $0x540000c0 // b.eq LBB0_87 $24(%rip) +LBB0_85: + WORD $0x8b0b012c // add x12, x9, x11 + WORD $0xcb0b014b // sub x11, x10, x11 +LBB0_86: + WORD $0x3800159f // strb wzr, [x12], #1 + WORD $0xf100056b // subs x11, x11, #1 + WORD $0x54ffffc1 // b.ne LBB0_86 $-8(%rip) +LBB0_87: + WORD $0x394001cb // ldrb w11, [x14] + WORD $0x7100b57f // cmp w11, #45 + WORD $0x1a9f17f0 // cset w16, eq + WORD $0xeb1001ff // cmp x15, x16 + WORD $0x540015cd // b.le LBB0_130 $696(%rip) + WORD $0x5280000d // mov w13, #0 + WORD $0x5280000c // mov w12, #0 + WORD $0x52800013 // mov w19, #0 + WORD $0x52800011 // mov w17, #0 + WORD $0x14000006 // b LBB0_91 $24(%rip) +LBB0_89: + WORD $0x38236920 // strb w0, [x9, x3] + WORD $0x11000673 // add w19, w19, #1 +LBB0_90: + WORD $0x91000610 // add x16, x16, #1 + WORD $0xeb1001ff // cmp x15, x16 + WORD $0x5400032d // b.le LBB0_100 $100(%rip) +LBB0_91: + WORD $0x387069c0 // ldrb w0, [x14, x16] + WORD $0x5100c003 // sub w3, w0, #48 + WORD $0x7100247f // cmp w3, #9 + WORD $0x54000108 // b.hi LBB0_95 $32(%rip) + WORD $0x7100c01f // cmp w0, #48 + WORD $0x54000161 // b.ne LBB0_97 $44(%rip) + WORD $0x34000213 // cbz w19, LBB0_99 $64(%rip) + WORD $0x93407e63 // sxtw x3, w19 + WORD $0xeb03015f // cmp x10, x3 + WORD $0x54fffe48 // b.hi LBB0_89 $-56(%rip) + WORD $0x17fffff3 // b LBB0_90 $-52(%rip) +LBB0_95: + WORD $0x7100b81f // cmp w0, #46 + WORD $0x540001e1 // b.ne LBB0_101 $60(%rip) + WORD $0x5280002d // mov w13, #1 + WORD $0xaa1303f1 // mov x17, x19 + WORD $0x17ffffee // b LBB0_90 $-72(%rip) +LBB0_97: + WORD $0xaa1303e3 // mov x3, x19 + WORD $0x93407e63 // sxtw x3, w19 + WORD $0xeb03015f // cmp x10, x3 + WORD $0x54fffd08 // b.hi LBB0_89 $-96(%rip) + WORD $0x5280002c // mov w12, #1 + WORD $0x17ffffe8 // b LBB0_90 $-96(%rip) +LBB0_99: + WORD $0x51000631 // sub w17, w17, #1 + WORD $0x17ffffe6 // b LBB0_90 $-104(%rip) +LBB0_100: + WORD $0x710001bf // cmp w13, #0 + WORD $0x1a91026d // csel w13, w19, w17, eq + WORD $0x14000081 // b LBB0_126 $516(%rip) +LBB0_101: + WORD $0x710001bf // cmp w13, #0 + WORD $0x1a91026d // csel w13, w19, w17, eq + WORD $0x387069d1 // ldrb w17, [x14, x16] + WORD $0x321b0231 // orr w17, w17, #0x20 + WORD $0x7101963f // cmp w17, #101 + WORD $0x54000f61 // b.ne LBB0_126 $492(%rip) + WORD $0x91000611 // add x17, x16, #1 + WORD $0x387149c0 // ldrb w0, [x14, w17, uxtw] + WORD $0x11000a03 // add w3, w16, #2 + WORD $0x52800024 // mov w4, #1 + WORD $0x11000a10 // add w16, w16, #2 + WORD $0x12800005 // mov w5, #-1 + WORD $0x52800026 // mov w6, #1 + WORD $0x7100b41f // cmp w0, #45 + WORD $0x1a910210 // csel w16, w16, w17, eq + WORD $0x1a8600b1 // csel w17, w5, w6, eq + WORD $0x7100ac1f // cmp w0, #43 + WORD $0x1a900060 // csel w0, w3, w16, eq + WORD $0x1a910090 // csel w16, w4, w17, eq + WORD $0x93407c00 // sxtw x0, w0 + WORD $0xeb0001ff // cmp x15, x0 + WORD $0x54000d2d // b.le LBB0_124 $420(%rip) + WORD $0x52800011 // mov w17, #0 + WORD $0x5284e1e3 // mov w3, #9999 + WORD $0x52800144 // mov w4, #10 +LBB0_104: + WORD $0x38e069c5 // ldrsb w5, [x14, x0] + WORD $0x7100c0bf // cmp w5, #48 + WORD $0x54000c8b // b.lt LBB0_125 $400(%rip) + WORD $0x12001ca5 // and w5, w5, #0xff + WORD $0x7100e4bf // cmp w5, #57 + WORD $0x7a439220 // ccmp w17, w3, #0, ls + WORD $0x54000c0c // b.gt LBB0_125 $384(%rip) + WORD $0x1b047e31 // mul w17, w17, w4 + WORD $0x5100c0a5 // sub w5, w5, #48 + WORD $0x0b250231 // add w17, w17, w5, uxtb + WORD $0x91000400 // add x0, x0, #1 + WORD $0xeb0001ff // cmp x15, x0 + WORD $0x54fffe8c // b.gt LBB0_104 $-48(%rip) + WORD $0x14000059 // b LBB0_125 $356(%rip) +LBB0_107: + WORD $0xd1000484 // sub x4, x4, #1 + WORD $0xf100007f // cmp x3, #0 + WORD $0x52800023 // mov w3, #1 + WORD $0x9a830463 // cinc x3, x3, ne + WORD $0x9ac32400 // lsr x0, x0, x3 + WORD $0xb34c2c80 // bfi x0, x4, #52, #12 + WORD $0xb2410003 // orr x3, x0, #0x8000000000000000 + WORD $0x7100b59f // cmp w12, #45 + WORD $0x9a800060 // csel x0, x3, x0, eq + WORD $0x9e670000 // fmov d0, x0 + WORD $0x34000bcf // cbz w15, LBB0_132 $376(%rip) + WORD $0x910005af // add x15, x13, #1 + WORD $0xdac011ed // clz x13, x15 + WORD $0x9acd21e3 // lsl x3, x15, x13 + WORD $0x9b037e0f // mul x15, x16, x3 + WORD $0x9bc37e10 // umulh x16, x16, x3 + WORD $0x92402200 // and x0, x16, #0x1ff + WORD $0xaa2303e4 // mvn x4, x3 + WORD $0xeb0401ff // cmp x15, x4 + WORD $0x540001e9 // b.ls LBB0_113 $60(%rip) + WORD $0xf107fc1f // cmp x0, #511 + WORD $0x540001a1 // b.ne LBB0_113 $52(%rip) + WORD $0xf94001ce // ldr x14, [x14] + WORD $0x9b037dc5 // mul x5, x14, x3 + WORD $0x9bc37dce // umulh x14, x14, x3 + WORD $0xab0f01cf // adds x15, x14, x15 + WORD $0x9a903610 // cinc x16, x16, hs + WORD $0x92402200 // and x0, x16, #0x1ff + WORD $0xeb0400bf // cmp x5, x4 + WORD $0x540000a9 // b.ls LBB0_113 $20(%rip) + WORD $0xb10005ff // cmn x15, #1 + WORD $0x54000061 // b.ne LBB0_113 $12(%rip) + WORD $0xf107fc1f // cmp x0, #511 + WORD $0x54ffec00 // b.eq LBB0_72 $-640(%rip) +LBB0_113: + WORD $0xd37ffe0e // lsr x14, x16, #63 + WORD $0x910025c3 // add x3, x14, #9 + WORD $0x9ac32610 // lsr x16, x16, x3 + WORD $0xaa0f000f // orr x15, x0, x15 + WORD $0xb500008f // cbnz x15, LBB0_115 $16(%rip) + WORD $0x9240060f // and x15, x16, #0x3 + WORD $0xf10005ff // cmp x15, #1 + WORD $0x54ffeb00 // b.eq LBB0_72 $-672(%rip) +LBB0_115: + WORD $0xcb0d022d // sub x13, x17, x13 + WORD $0x8b0d01cf // add x15, x14, x13 + WORD $0x9240020d // and x13, x16, #0x1 + WORD $0x8b1001ad // add x13, x13, x16 + WORD $0xd376fdae // lsr x14, x13, #54 + WORD $0xf10001df // cmp x14, #0 + WORD $0x9a8f05ef // cinc x15, x15, ne + WORD $0xd12001f0 // sub x16, x15, #2048 + WORD $0xb11ffa1f // cmn x16, #2046 + WORD $0x54ffe9c3 // b.lo LBB0_72 $-712(%rip) + WORD $0xd10005ef // sub x15, x15, #1 + WORD $0xf10001df // cmp x14, #0 + WORD $0x5280002e // mov w14, #1 + WORD $0x9a8e05ce // cinc x14, x14, ne + WORD $0x9ace25ad // lsr x13, x13, x14 + WORD $0xb34c2ded // bfi x13, x15, #52, #12 + WORD $0xb24101ae // orr x14, x13, #0x8000000000000000 + WORD $0x7100b59f // cmp w12, #45 + WORD $0x9a8d01cc // csel x12, x14, x13, eq + WORD $0x9e670181 // fmov d1, x12 + WORD $0x1e602020 // fcmp d1, d0 + WORD $0x54000520 // b.eq LBB0_132 $164(%rip) + WORD $0x17ffff41 // b LBB0_72 $-764(%rip) +LBB0_117: + WORD $0x52800031 // mov w17, #1 +LBB0_118: + WORD $0x5100e863 // sub w3, w3, #58 + WORD $0x3100287f // cmn w3, #10 + WORD $0x54000062 // b.hs LBB0_120 $12(%rip) + WORD $0xf9000020 // str x0, [x1] + WORD $0x17fffe57 // b LBB0_12 $-1700(%rip) +LBB0_120: + WORD $0x52800003 // mov w3, #0 + WORD $0x52800144 // mov w4, #10 + WORD $0x5284e205 // mov w5, #10000 +LBB0_121: + WORD $0x38606966 // ldrb w6, [x11, x0] + WORD $0x5100c0c6 // sub w6, w6, #48 + WORD $0x710024df // cmp w6, #9 + WORD $0x54001c08 // b.hi LBB0_191 $896(%rip) + WORD $0x1b047c67 // mul w7, w3, w4 + WORD $0x0b2600e6 // add w6, w7, w6, uxtb + WORD $0x6b05007f // cmp w3, w5 + WORD $0x1a83b0c3 // csel w3, w6, w3, lt + WORD $0x91000400 // add x0, x0, #1 + WORD $0xeb00011f // cmp x8, x0 + WORD $0x54fffec1 // b.ne LBB0_121 $-40(%rip) + WORD $0x1b114063 // madd w3, w3, w17, w16 + WORD $0x17fffec9 // b LBB0_55 $-1244(%rip) +LBB0_124: + WORD $0x52800011 // mov w17, #0 +LBB0_125: + WORD $0x1b10362d // madd w13, w17, w16, w13 +LBB0_126: + WORD $0x34000113 // cbz w19, LBB0_130 $32(%rip) + WORD $0x7104d9bf // cmp w13, #310 + WORD $0x5400008d // b.le LBB0_129 $16(%rip) +LBB0_128: + WORD $0xd2800009 // mov x9, #0 + WORD $0xd2effe0a // mov x10, #9218868437227405312 + WORD $0x14000005 // b LBB0_131 $20(%rip) +LBB0_129: + WORD $0x310529bf // cmn w13, #330 + WORD $0x5400024a // b.ge LBB0_136 $72(%rip) +LBB0_130: + WORD $0xd280000a // mov x10, #0 + WORD $0xd2800009 // mov x9, #0 +LBB0_131: + WORD $0xaa0a0129 // orr x9, x9, x10 + WORD $0xb241012a // orr x10, x9, #0x8000000000000000 + WORD $0x7100b57f // cmp w11, #45 + WORD $0x9a890149 // csel x9, x10, x9, eq + WORD $0x9e670120 // fmov d0, x9 +LBB0_132: + WORD $0x9e660009 // fmov x9, d0 + WORD $0x9240f929 // and x9, x9, #0x7fffffffffffffff + WORD $0xd2effe0a // mov x10, #9218868437227405312 + WORD $0xeb0a013f // cmp x9, x10 + WORD $0x54000061 // b.ne LBB0_134 $12(%rip) + WORD $0x928000e9 // mov x9, #-8 + WORD $0xf9000049 // str x9, [x2] +LBB0_134: + WORD $0xfd000440 // str d0, [x2, #8] +LBB0_135: + WORD $0xf9000028 // str x8, [x1] + WORD $0x17fffe9a // b LBB0_49 $-1432(%rip) +LBB0_136: + WORD $0xb201e7ee // mov x14, #-7378697629483820647 + WORD $0xf293334e // movk x14, #39322 + WORD $0xf2e0332e // movk x14, #409, lsl #48 +Lloh8: + WORD $0x1001cb91 // adr x17, _POW_TAB $14704(%rip) +Lloh9: + WORD $0x91000231 // add x17, x17, _POW_TAB@PAGEOFF $0(%rip) + WORD $0x710005bf // cmp w13, #1 + WORD $0x5400170b // b.lt LBB0_192 $736(%rip) + WORD $0x52800010 // mov w16, #0 + WORD $0xd100052f // sub x15, x9, #1 + WORD $0x92800000 // mov x0, #-1 + WORD $0x52800143 // mov w3, #10 + WORD $0x14000005 // b LBB0_140 $20(%rip) +LBB0_138: + WORD $0x34001593 // cbz w19, LBB0_190 $688(%rip) +LBB0_139: + WORD $0x0b100090 // add w16, w4, w16 + WORD $0x710001bf // cmp w13, #0 + WORD $0x5400160d // b.le LBB0_193 $704(%rip) +LBB0_140: + WORD $0x710021bf // cmp w13, #8 + WORD $0x540000a9 // b.ls LBB0_143 $20(%rip) + WORD $0x52800364 // mov w4, #27 + WORD $0x34ffff53 // cbz w19, LBB0_139 $-24(%rip) + WORD $0x12800347 // mov w7, #-27 + WORD $0x14000006 // b LBB0_145 $24(%rip) +LBB0_143: + WORD $0xb86d5a24 // ldr w4, [x17, w13, uxtw #2] + WORD $0x34fffed3 // cbz w19, LBB0_139 $-40(%rip) + WORD $0x4b0403e7 // neg w7, w4 + WORD $0x3100f4ff // cmn w7, #61 + WORD $0x54000469 // b.ls LBB0_154 $140(%rip) +LBB0_145: + WORD $0xd2800014 // mov x20, #0 + WORD $0xd2800006 // mov x6, #0 + WORD $0x4b0703e5 // neg w5, w7 + WORD $0x0ab37e67 // bic w7, w19, w19, asr #31 +LBB0_146: + WORD $0xeb1400ff // cmp x7, x20 + WORD $0x54000c60 // b.eq LBB0_173 $396(%rip) + WORD $0x38b46935 // ldrsb x21, [x9, x20] + WORD $0x9b0354c6 // madd x6, x6, x3, x21 + WORD $0xd100c0c6 // sub x6, x6, #48 + WORD $0x91000694 // add x20, x20, #1 + WORD $0x9ac524d5 // lsr x21, x6, x5 + WORD $0xb4ffff35 // cbz x21, LBB0_146 $-28(%rip) +LBB0_149: + WORD $0x9ac52007 // lsl x7, x0, x5 + WORD $0xaa2703e7 // mvn x7, x7 + WORD $0x6b140273 // subs w19, w19, w20 + WORD $0x54000c4d // b.le LBB0_176 $392(%rip) + WORD $0xaa1303f5 // mov x21, x19 + WORD $0xaa0903f6 // mov x22, x9 +LBB0_151: + WORD $0x9ac524d7 // lsr x23, x6, x5 + WORD $0x8a0700c6 // and x6, x6, x7 + WORD $0x1100c2f7 // add w23, w23, #48 + WORD $0x390002d7 // strb w23, [x22] + WORD $0x38b4cad7 // ldrsb x23, [x22, w20, sxtw] + WORD $0x9b035cc6 // madd x6, x6, x3, x23 + WORD $0xd100c0c6 // sub x6, x6, #48 + WORD $0x910006d6 // add x22, x22, #1 + WORD $0xf10006b5 // subs x21, x21, #1 + WORD $0x54fffee1 // b.ne LBB0_151 $-36(%rip) + WORD $0x14000056 // b LBB0_177 $344(%rip) +LBB0_152: + WORD $0x7100027f // cmp w19, #0 + WORD $0x1a8d03ed // csel w13, wzr, w13, eq +LBB0_153: + WORD $0x1100f0a7 // add w7, w5, #60 + WORD $0x3101e0bf // cmn w5, #120 + WORD $0x54fffbea // b.ge LBB0_145 $-132(%rip) +LBB0_154: + WORD $0xd2800015 // mov x21, #0 + WORD $0xd2800014 // mov x20, #0 + WORD $0xaa0703e5 // mov x5, x7 + WORD $0x0ab37e67 // bic w7, w19, w19, asr #31 + WORD $0xaa0703e6 // mov x6, x7 +LBB0_155: + WORD $0xeb1500ff // cmp x7, x21 + WORD $0x54000140 // b.eq LBB0_158 $40(%rip) + WORD $0x38b56936 // ldrsb x22, [x9, x21] + WORD $0x9b035a94 // madd x20, x20, x3, x22 + WORD $0xd100c294 // sub x20, x20, #48 + WORD $0x910006b5 // add x21, x21, #1 + WORD $0xd37cfe96 // lsr x22, x20, #60 + WORD $0xb4ffff36 // cbz x22, LBB0_155 $-28(%rip) + WORD $0xaa1403e7 // mov x7, x20 + WORD $0xaa1503e6 // mov x6, x21 + WORD $0x14000008 // b LBB0_160 $32(%rip) +LBB0_158: + WORD $0xb4000694 // cbz x20, LBB0_172 $208(%rip) +LBB0_159: + WORD $0x8b140a87 // add x7, x20, x20, lsl #2 + WORD $0xd37ff8e7 // lsl x7, x7, #1 + WORD $0x110004c6 // add w6, w6, #1 + WORD $0xeb0e029f // cmp x20, x14 + WORD $0xaa0703f4 // mov x20, x7 + WORD $0x54ffff63 // b.lo LBB0_159 $-20(%rip) +LBB0_160: + WORD $0x6b060273 // subs w19, w19, w6 + WORD $0x540001cd // b.le LBB0_163 $56(%rip) + WORD $0xaa1303f4 // mov x20, x19 + WORD $0xaa0903f5 // mov x21, x9 +LBB0_162: + WORD $0xd37cfcf6 // lsr x22, x7, #60 + WORD $0x9240ece7 // and x7, x7, #0xfffffffffffffff + WORD $0x321c06d6 // orr w22, w22, #0x30 + WORD $0x390002b6 // strb w22, [x21] + WORD $0x38a6cab6 // ldrsb x22, [x21, w6, sxtw] + WORD $0x9b0358e7 // madd x7, x7, x3, x22 + WORD $0xd100c0e7 // sub x7, x7, #48 + WORD $0x910006b5 // add x21, x21, #1 + WORD $0xf1000694 // subs x20, x20, #1 + WORD $0x54fffee1 // b.ne LBB0_162 $-36(%rip) + WORD $0x14000002 // b LBB0_164 $8(%rip) +LBB0_163: + WORD $0x52800013 // mov w19, #0 +LBB0_164: + WORD $0xb5000107 // cbnz x7, LBB0_166 $32(%rip) + WORD $0x14000012 // b LBB0_168 $72(%rip) +LBB0_165: + WORD $0xf10002bf // cmp x21, #0 + WORD $0x1a9f058c // csinc w12, w12, wzr, eq + WORD $0x9240ecf4 // and x20, x7, #0xfffffffffffffff + WORD $0x8b140a87 // add x7, x20, x20, lsl #2 + WORD $0xd37ff8e7 // lsl x7, x7, #1 + WORD $0xb4000194 // cbz x20, LBB0_168 $48(%rip) +LBB0_166: + WORD $0x93407e74 // sxtw x20, w19 + WORD $0xd37cfcf5 // lsr x21, x7, #60 + WORD $0xeb14015f // cmp x10, x20 + WORD $0x54fffee9 // b.ls LBB0_165 $-36(%rip) + WORD $0x321c06b5 // orr w21, w21, #0x30 + WORD $0x38346935 // strb w21, [x9, x20] + WORD $0x11000673 // add w19, w19, #1 + WORD $0x9240ecf4 // and x20, x7, #0xfffffffffffffff + WORD $0x8b140a87 // add x7, x20, x20, lsl #2 + WORD $0xd37ff8e7 // lsl x7, x7, #1 + WORD $0xb5fffed4 // cbnz x20, LBB0_166 $-40(%rip) +LBB0_168: + WORD $0x4b0601ad // sub w13, w13, w6 + WORD $0x110005ad // add w13, w13, #1 + WORD $0x7100067f // cmp w19, #1 + WORD $0x54fff7cb // b.lt LBB0_152 $-264(%rip) +LBB0_169: + WORD $0x387349e6 // ldrb w6, [x15, w19, uxtw] + WORD $0x7100c0df // cmp w6, #48 + WORD $0x54fff7a1 // b.ne LBB0_153 $-268(%rip) + WORD $0x71000673 // subs w19, w19, #1 + WORD $0x54ffff8c // b.gt LBB0_169 $-16(%rip) + WORD $0x5280000d // mov w13, #0 +LBB0_172: + WORD $0x52800013 // mov w19, #0 + WORD $0x17ffffb8 // b LBB0_153 $-288(%rip) +LBB0_173: + WORD $0xb4000566 // cbz x6, LBB0_186 $172(%rip) + WORD $0x9ac524d4 // lsr x20, x6, x5 + WORD $0xb4000574 // cbz x20, LBB0_187 $172(%rip) + WORD $0x52800013 // mov w19, #0 + WORD $0x4b0701ad // sub w13, w13, w7 + WORD $0x110005ad // add w13, w13, #1 + WORD $0x9ac52007 // lsl x7, x0, x5 + WORD $0xaa2703e7 // mvn x7, x7 + WORD $0x14000005 // b LBB0_178 $20(%rip) +LBB0_176: + WORD $0x52800013 // mov w19, #0 +LBB0_177: + WORD $0x4b1401ad // sub w13, w13, w20 + WORD $0x110005ad // add w13, w13, #1 + WORD $0xb40002a6 // cbz x6, LBB0_182 $84(%rip) +LBB0_178: + WORD $0xaa1303f4 // mov x20, x19 + WORD $0x14000007 // b LBB0_180 $28(%rip) +LBB0_179: + WORD $0xf100027f // cmp x19, #0 + WORD $0x1a9f058c // csinc w12, w12, wzr, eq + WORD $0x8a0700d3 // and x19, x6, x7 + WORD $0x8b130a66 // add x6, x19, x19, lsl #2 + WORD $0xd37ff8c6 // lsl x6, x6, #1 + WORD $0xb40001d3 // cbz x19, LBB0_183 $56(%rip) +LBB0_180: + WORD $0x9ac524d3 // lsr x19, x6, x5 + WORD $0x93407e95 // sxtw x21, w20 + WORD $0xeb15015f // cmp x10, x21 + WORD $0x54fffee9 // b.ls LBB0_179 $-36(%rip) + WORD $0x1100c273 // add w19, w19, #48 + WORD $0x38356933 // strb w19, [x9, x21] + WORD $0x11000694 // add w20, w20, #1 + WORD $0x8a0700d3 // and x19, x6, x7 + WORD $0x8b130a66 // add x6, x19, x19, lsl #2 + WORD $0xd37ff8c6 // lsl x6, x6, #1 + WORD $0xb5fffed3 // cbnz x19, LBB0_180 $-40(%rip) + WORD $0x14000002 // b LBB0_183 $8(%rip) +LBB0_182: + WORD $0xaa1303f4 // mov x20, x19 +LBB0_183: + WORD $0xaa1403f3 // mov x19, x20 + WORD $0x7100069f // cmp w20, #1 + WORD $0x54ffecab // b.lt LBB0_138 $-620(%rip) +LBB0_184: + WORD $0x387349e5 // ldrb w5, [x15, w19, uxtw] + WORD $0x7100c0bf // cmp w5, #48 + WORD $0x54ffec61 // b.ne LBB0_139 $-628(%rip) + WORD $0x71000673 // subs w19, w19, #1 + WORD $0x54ffff8c // b.gt LBB0_184 $-16(%rip) + WORD $0x1400000a // b LBB0_189 $40(%rip) +LBB0_186: + WORD $0x52800013 // mov w19, #0 + WORD $0x17ffff5e // b LBB0_139 $-648(%rip) +LBB0_187: + WORD $0xaa0703f4 // mov x20, x7 +LBB0_188: + WORD $0x8b0608c6 // add x6, x6, x6, lsl #2 + WORD $0xd37ff8c6 // lsl x6, x6, #1 + WORD $0x11000694 // add w20, w20, #1 + WORD $0x9ac524c7 // lsr x7, x6, x5 + WORD $0xb4ffff87 // cbz x7, LBB0_188 $-16(%rip) + WORD $0x17ffff71 // b LBB0_149 $-572(%rip) +LBB0_189: + WORD $0x52800013 // mov w19, #0 +LBB0_190: + WORD $0x5280000d // mov w13, #0 + WORD $0x0b100090 // add w16, w4, w16 + WORD $0x14000005 // b LBB0_193 $20(%rip) +LBB0_191: + WORD $0xaa0003e8 // mov x8, x0 + WORD $0x1b114063 // madd w3, w3, w17, w16 + WORD $0x17fffdf0 // b LBB0_55 $-2112(%rip) +LBB0_192: + WORD $0x52800010 // mov w16, #0 +LBB0_193: + WORD $0xd100052f // sub x15, x9, #1 + WORD $0x52800d03 // mov w3, #104 + WORD $0xb202e7e4 // mov x4, #-3689348814741910324 + WORD $0xf29999a4 // movk x4, #52429 + WORD $0x92800125 // mov x5, #-10 + WORD $0x52800146 // mov w6, #10 + WORD $0x92800007 // mov x7, #-1 + WORD $0xaa1303f4 // mov x20, x19 +Lloh10: + WORD $0x1001b420 // adr x0, _LSHIFT_TAB $13956(%rip) +Lloh11: + WORD $0x91000000 // add x0, x0, _LSHIFT_TAB@PAGEOFF $0(%rip) + WORD $0x14000004 // b LBB0_196 $16(%rip) +LBB0_194: + WORD $0x7100029f // cmp w20, #0 + WORD $0x1a8d03ed // csel w13, wzr, w13, eq +LBB0_195: + WORD $0x4b130210 // sub w16, w16, w19 +LBB0_196: + WORD $0x37f800cd // tbnz w13, #31, LBB0_199 $24(%rip) + WORD $0x350021ed // cbnz w13, LBB0_274 $1084(%rip) + WORD $0x39c00133 // ldrsb w19, [x9] + WORD $0x7100d67f // cmp w19, #53 + WORD $0x540000eb // b.lt LBB0_201 $28(%rip) + WORD $0x1400010b // b LBB0_274 $1068(%rip) +LBB0_199: + WORD $0x310021bf // cmn w13, #8 + WORD $0x54000082 // b.hs LBB0_201 $16(%rip) + WORD $0x52800373 // mov w19, #27 + WORD $0x350000b4 // cbnz w20, LBB0_202 $20(%rip) + WORD $0x17fffff5 // b LBB0_195 $-44(%rip) +LBB0_201: + WORD $0x4b0d03f3 // neg w19, w13 + WORD $0xb8735a33 // ldr w19, [x17, w19, uxtw #2] + WORD $0x34fffe54 // cbz w20, LBB0_195 $-56(%rip) +LBB0_202: + WORD $0x2a1303f6 // mov w22, w19 + WORD $0x9ba30277 // umaddl x23, w19, w3, x0 + WORD $0xb84046f5 // ldr w21, [x23], #4 + WORD $0x2a1403f8 // mov w24, w20 + WORD $0xaa1803f9 // mov x25, x24 + WORD $0xaa1703fa // mov x26, x23 + WORD $0xaa0903fb // mov x27, x9 +LBB0_203: + WORD $0x3840175c // ldrb w28, [x26], #1 + WORD $0x3400015c // cbz w28, LBB0_208 $40(%rip) + WORD $0x3940037e // ldrb w30, [x27] + WORD $0x6b1c03df // cmp w30, w28 + WORD $0x54001401 // b.ne LBB0_248 $640(%rip) + WORD $0x9100077b // add x27, x27, #1 + WORD $0xf1000739 // subs x25, x25, #1 + WORD $0x54ffff21 // b.ne LBB0_203 $-28(%rip) + WORD $0x38786af7 // ldrb w23, [x23, x24] + WORD $0x34000057 // cbz w23, LBB0_208 $8(%rip) +LBB0_207: + WORD $0x510006b5 // sub w21, w21, #1 +LBB0_208: + WORD $0x0b1402b7 // add w23, w21, w20 + WORD $0x7100069f // cmp w20, #1 + WORD $0x5400068b // b.lt LBB0_218 $208(%rip) + WORD $0xd2800014 // mov x20, #0 + WORD $0x93407ef9 // sxtw x25, w23 + WORD $0xd100073b // sub x27, x25, #1 + WORD $0xd1000718 // sub x24, x24, #1 + WORD $0x14000008 // b LBB0_211 $32(%rip) +LBB0_210: + WORD $0xf100037f // cmp x27, #0 + WORD $0x1a9f058c // csinc w12, w12, wzr, eq + WORD $0xd100073b // sub x27, x25, #1 + WORD $0x9100071c // add x28, x24, #1 + WORD $0xd1000718 // sub x24, x24, #1 + WORD $0xf100079f // cmp x28, #1 + WORD $0x54000249 // b.ls LBB0_213 $72(%rip) +LBB0_211: + WORD $0xaa1b03f9 // mov x25, x27 + WORD $0x38b8693a // ldrsb x26, [x9, x24] + WORD $0xd100c35a // sub x26, x26, #48 + WORD $0x9ad6235a // lsl x26, x26, x22 + WORD $0x8b14035a // add x26, x26, x20 + WORD $0x9bc47f54 // umulh x20, x26, x4 + WORD $0xd343fe94 // lsr x20, x20, #3 + WORD $0x9b056a9b // madd x27, x20, x5, x26 + WORD $0xeb19015f // cmp x10, x25 + WORD $0x54fffe09 // b.ls LBB0_210 $-64(%rip) + WORD $0x1100c37b // add w27, w27, #48 + WORD $0x3839693b // strb w27, [x9, x25] + WORD $0xd100073b // sub x27, x25, #1 + WORD $0x9100071c // add x28, x24, #1 + WORD $0xd1000718 // sub x24, x24, #1 + WORD $0xf100079f // cmp x28, #1 + WORD $0x54fffe08 // b.hi LBB0_211 $-64(%rip) +LBB0_213: + WORD $0xf1002b5f // cmp x26, #10 + WORD $0x540002a3 // b.lo LBB0_218 $84(%rip) + WORD $0x93407f36 // sxtw x22, w25 + WORD $0xd10006d6 // sub x22, x22, #1 + WORD $0x14000007 // b LBB0_216 $28(%rip) +LBB0_215: + WORD $0xf100033f // cmp x25, #0 + WORD $0x1a9f058c // csinc w12, w12, wzr, eq + WORD $0xd10006d6 // sub x22, x22, #1 + WORD $0xf100269f // cmp x20, #9 + WORD $0xaa1803f4 // mov x20, x24 + WORD $0x54000189 // b.ls LBB0_218 $48(%rip) +LBB0_216: + WORD $0x9bc47e98 // umulh x24, x20, x4 + WORD $0xd343ff18 // lsr x24, x24, #3 + WORD $0x9b055319 // madd x25, x24, x5, x20 + WORD $0xeb16015f // cmp x10, x22 + WORD $0x54fffec9 // b.ls LBB0_215 $-40(%rip) + WORD $0x1100c339 // add w25, w25, #48 + WORD $0x38366939 // strb w25, [x9, x22] + WORD $0xd10006d6 // sub x22, x22, #1 + WORD $0xf100269f // cmp x20, #9 + WORD $0xaa1803f4 // mov x20, x24 + WORD $0x54fffec8 // b.hi LBB0_216 $-40(%rip) +LBB0_218: + WORD $0xeb37c15f // cmp x10, w23, sxtw + WORD $0x1a8a82f4 // csel w20, w23, w10, hi + WORD $0x0b0d02ad // add w13, w21, w13 + WORD $0x7100069f // cmp w20, #1 + WORD $0x5400012b // b.lt LBB0_222 $36(%rip) +LBB0_219: + WORD $0x387449f5 // ldrb w21, [x15, w20, uxtw] + WORD $0x7100c2bf // cmp w21, #48 + WORD $0x54000101 // b.ne LBB0_223 $32(%rip) + WORD $0x71000694 // subs w20, w20, #1 + WORD $0x54ffff8c // b.gt LBB0_219 $-16(%rip) + WORD $0x5280000d // mov w13, #0 + WORD $0x52800014 // mov w20, #0 + WORD $0x14000003 // b LBB0_223 $12(%rip) +LBB0_222: + WORD $0x7100029f // cmp w20, #0 + WORD $0x1a8d03ed // csel w13, wzr, w13, eq +LBB0_223: + WORD $0x37f80073 // tbnz w19, #31, LBB0_225 $12(%rip) + WORD $0x4b130210 // sub w16, w16, w19 + WORD $0x17ffff99 // b LBB0_196 $-412(%rip) +LBB0_225: + WORD $0x3100f67f // cmn w19, #61 + WORD $0x54000a88 // b.hi LBB0_249 $336(%rip) + WORD $0xaa1303f5 // mov x21, x19 + WORD $0x14000007 // b LBB0_229 $28(%rip) +LBB0_227: + WORD $0x7100029f // cmp w20, #0 + WORD $0x1a8d03ed // csel w13, wzr, w13, eq +LBB0_228: + WORD $0x1100f2b7 // add w23, w21, #60 + WORD $0x3101e2bf // cmn w21, #120 + WORD $0xaa1703f5 // mov x21, x23 + WORD $0x540009aa // b.ge LBB0_250 $308(%rip) +LBB0_229: + WORD $0xd2800019 // mov x25, #0 + WORD $0xd2800018 // mov x24, #0 + WORD $0x0ab47e97 // bic w23, w20, w20, asr #31 + WORD $0xaa1703f6 // mov x22, x23 +LBB0_230: + WORD $0xeb1902ff // cmp x23, x25 + WORD $0x54000140 // b.eq LBB0_233 $40(%rip) + WORD $0x38b9693a // ldrsb x26, [x9, x25] + WORD $0x9b066b18 // madd x24, x24, x6, x26 + WORD $0xd100c318 // sub x24, x24, #48 + WORD $0x91000739 // add x25, x25, #1 + WORD $0xd37cff1a // lsr x26, x24, #60 + WORD $0xb4ffff3a // cbz x26, LBB0_230 $-28(%rip) + WORD $0xaa1803f7 // mov x23, x24 + WORD $0xaa1903f6 // mov x22, x25 + WORD $0x14000008 // b LBB0_235 $32(%rip) +LBB0_233: + WORD $0xb40006d8 // cbz x24, LBB0_247 $216(%rip) +LBB0_234: + WORD $0x8b180b17 // add x23, x24, x24, lsl #2 + WORD $0xd37ffaf7 // lsl x23, x23, #1 + WORD $0x110006d6 // add w22, w22, #1 + WORD $0xeb0e031f // cmp x24, x14 + WORD $0xaa1703f8 // mov x24, x23 + WORD $0x54ffff63 // b.lo LBB0_234 $-20(%rip) +LBB0_235: + WORD $0x6b160294 // subs w20, w20, w22 + WORD $0x540001ed // b.le LBB0_239 $60(%rip) + WORD $0xaa1403f8 // mov x24, x20 + WORD $0xaa0903f9 // mov x25, x9 +LBB0_237: + WORD $0xd37cfefa // lsr x26, x23, #60 + WORD $0x9240eef7 // and x23, x23, #0xfffffffffffffff + WORD $0x321c075a // orr w26, w26, #0x30 + WORD $0x3900033a // strb w26, [x25] + WORD $0x38b6cb3a // ldrsb x26, [x25, w22, sxtw] + WORD $0x9b066af7 // madd x23, x23, x6, x26 + WORD $0xd100c2f7 // sub x23, x23, #48 + WORD $0x91000739 // add x25, x25, #1 + WORD $0xf1000718 // subs x24, x24, #1 + WORD $0x54fffee1 // b.ne LBB0_237 $-36(%rip) + WORD $0xb5000197 // cbnz x23, LBB0_241 $48(%rip) + WORD $0x14000016 // b LBB0_243 $88(%rip) +LBB0_239: + WORD $0x52800014 // mov w20, #0 + WORD $0xb5000137 // cbnz x23, LBB0_241 $36(%rip) + WORD $0x14000013 // b LBB0_243 $76(%rip) +LBB0_240: + WORD $0xd37cfef8 // lsr x24, x23, #60 + WORD $0xf100031f // cmp x24, #0 + WORD $0x1a9f058c // csinc w12, w12, wzr, eq + WORD $0x9240eef8 // and x24, x23, #0xfffffffffffffff + WORD $0x8b180b17 // add x23, x24, x24, lsl #2 + WORD $0xd37ffaf7 // lsl x23, x23, #1 + WORD $0xb4000198 // cbz x24, LBB0_243 $48(%rip) +LBB0_241: + WORD $0x93407e98 // sxtw x24, w20 + WORD $0xeb18015f // cmp x10, x24 + WORD $0x54fffee9 // b.ls LBB0_240 $-36(%rip) + WORD $0xd37cfef9 // lsr x25, x23, #60 + WORD $0x321c0739 // orr w25, w25, #0x30 + WORD $0x38386939 // strb w25, [x9, x24] + WORD $0x11000694 // add w20, w20, #1 + WORD $0x9240eef8 // and x24, x23, #0xfffffffffffffff + WORD $0x8b180b17 // add x23, x24, x24, lsl #2 + WORD $0xd37ffaf7 // lsl x23, x23, #1 + WORD $0xb5fffed8 // cbnz x24, LBB0_241 $-40(%rip) +LBB0_243: + WORD $0x4b1601ad // sub w13, w13, w22 + WORD $0x110005ad // add w13, w13, #1 + WORD $0x7100069f // cmp w20, #1 + WORD $0x54fff78b // b.lt LBB0_227 $-272(%rip) +LBB0_244: + WORD $0x387449f6 // ldrb w22, [x15, w20, uxtw] + WORD $0x7100c2df // cmp w22, #48 + WORD $0x54fff761 // b.ne LBB0_228 $-276(%rip) + WORD $0x71000694 // subs w20, w20, #1 + WORD $0x54ffff8c // b.gt LBB0_244 $-16(%rip) + WORD $0x5280000d // mov w13, #0 +LBB0_247: + WORD $0x52800014 // mov w20, #0 + WORD $0x17ffffb6 // b LBB0_228 $-296(%rip) +LBB0_248: + WORD $0x13001fd7 // sxtb w23, w30 + WORD $0x6b3c82ff // cmp w23, w28, sxtb + WORD $0x54ffec8b // b.lt LBB0_207 $-624(%rip) + WORD $0x17ffff64 // b LBB0_208 $-624(%rip) +LBB0_249: + WORD $0xaa1303f7 // mov x23, x19 +LBB0_250: + WORD $0xd2800018 // mov x24, #0 + WORD $0xd2800016 // mov x22, #0 + WORD $0x4b1703f5 // neg w21, w23 + WORD $0x0ab47e97 // bic w23, w20, w20, asr #31 +LBB0_251: + WORD $0xeb1802ff // cmp x23, x24 + WORD $0x54000300 // b.eq LBB0_257 $96(%rip) + WORD $0x38b86939 // ldrsb x25, [x9, x24] + WORD $0x9b0666d6 // madd x22, x22, x6, x25 + WORD $0xd100c2d6 // sub x22, x22, #48 + WORD $0x91000718 // add x24, x24, #1 + WORD $0x9ad526d9 // lsr x25, x22, x21 + WORD $0xb4ffff39 // cbz x25, LBB0_251 $-28(%rip) +LBB0_254: + WORD $0x9ad520f7 // lsl x23, x7, x21 + WORD $0xaa3703f7 // mvn x23, x23 + WORD $0x6b180294 // subs w20, w20, w24 + WORD $0x540002ed // b.le LBB0_260 $92(%rip) + WORD $0xaa1403f9 // mov x25, x20 + WORD $0xaa0903fa // mov x26, x9 +LBB0_256: + WORD $0x9ad526db // lsr x27, x22, x21 + WORD $0x8a1702d6 // and x22, x22, x23 + WORD $0x1100c37b // add w27, w27, #48 + WORD $0x3900035b // strb w27, [x26] + WORD $0x38b8cb5b // ldrsb x27, [x26, w24, sxtw] + WORD $0x9b066ed6 // madd x22, x22, x6, x27 + WORD $0xd100c2d6 // sub x22, x22, #48 + WORD $0x9100075a // add x26, x26, #1 + WORD $0xf1000739 // subs x25, x25, #1 + WORD $0x54fffee1 // b.ne LBB0_256 $-36(%rip) + WORD $0x1400000b // b LBB0_261 $44(%rip) +LBB0_257: + WORD $0xb4000576 // cbz x22, LBB0_271 $172(%rip) + WORD $0x9ad526d8 // lsr x24, x22, x21 + WORD $0xb4000598 // cbz x24, LBB0_272 $176(%rip) + WORD $0x52800014 // mov w20, #0 + WORD $0x4b1701ad // sub w13, w13, w23 + WORD $0x110005ad // add w13, w13, #1 + WORD $0x9ad520f7 // lsl x23, x7, x21 + WORD $0xaa3703f7 // mvn x23, x23 + WORD $0x14000005 // b LBB0_262 $20(%rip) +LBB0_260: + WORD $0x52800014 // mov w20, #0 +LBB0_261: + WORD $0x4b1801ad // sub w13, w13, w24 + WORD $0x110005ad // add w13, w13, #1 + WORD $0xb4000296 // cbz x22, LBB0_266 $80(%rip) +LBB0_262: + WORD $0x14000007 // b LBB0_264 $28(%rip) +LBB0_263: + WORD $0xf100031f // cmp x24, #0 + WORD $0x1a9f058c // csinc w12, w12, wzr, eq + WORD $0x8a1702d8 // and x24, x22, x23 + WORD $0x8b180b16 // add x22, x24, x24, lsl #2 + WORD $0xd37ffad6 // lsl x22, x22, #1 + WORD $0xb40001b8 // cbz x24, LBB0_267 $52(%rip) +LBB0_264: + WORD $0x9ad526d8 // lsr x24, x22, x21 + WORD $0x93407e99 // sxtw x25, w20 + WORD $0xeb19015f // cmp x10, x25 + WORD $0x54fffee9 // b.ls LBB0_263 $-36(%rip) + WORD $0x1100c318 // add w24, w24, #48 + WORD $0x38396938 // strb w24, [x9, x25] + WORD $0x11000694 // add w20, w20, #1 + WORD $0x8a1702d8 // and x24, x22, x23 + WORD $0x8b180b16 // add x22, x24, x24, lsl #2 + WORD $0xd37ffad6 // lsl x22, x22, #1 + WORD $0xb5fffed8 // cbnz x24, LBB0_264 $-40(%rip) + WORD $0x14000001 // b LBB0_267 $4(%rip) +LBB0_266: +LBB0_267: + WORD $0x7100069f // cmp w20, #1 + WORD $0x54ffe02b // b.lt LBB0_194 $-1020(%rip) +LBB0_268: + WORD $0x387449f5 // ldrb w21, [x15, w20, uxtw] + WORD $0x7100c2bf // cmp w21, #48 + WORD $0x54ffe001 // b.ne LBB0_195 $-1024(%rip) + WORD $0x71000694 // subs w20, w20, #1 + WORD $0x54ffff8c // b.gt LBB0_268 $-16(%rip) + WORD $0x5280000d // mov w13, #0 + WORD $0x52800014 // mov w20, #0 + WORD $0x4b130210 // sub w16, w16, w19 + WORD $0x17fffefb // b LBB0_196 $-1044(%rip) +LBB0_271: + WORD $0x52800014 // mov w20, #0 + WORD $0x4b130210 // sub w16, w16, w19 + WORD $0x17fffef8 // b LBB0_196 $-1056(%rip) +LBB0_272: + WORD $0xaa1703f8 // mov x24, x23 +LBB0_273: + WORD $0x8b160ad6 // add x22, x22, x22, lsl #2 + WORD $0xd37ffad6 // lsl x22, x22, #1 + WORD $0x11000718 // add w24, w24, #1 + WORD $0x9ad526d7 // lsr x23, x22, x21 + WORD $0xb4ffff97 // cbz x23, LBB0_273 $-16(%rip) + WORD $0x17ffffbb // b LBB0_254 $-276(%rip) +LBB0_274: + WORD $0x310ffa1f // cmn w16, #1022 + WORD $0x54000a6c // b.gt LBB0_299 $332(%rip) + WORD $0x34001194 // cbz w20, LBB0_314 $560(%rip) + WORD $0x110ff611 // add w17, w16, #1021 + WORD $0x3110ea1f // cmn w16, #1082 + WORD $0x54000a88 // b.hi LBB0_302 $336(%rip) + WORD $0x52800143 // mov w3, #10 + WORD $0xaa1403f0 // mov x16, x20 + WORD $0x14000007 // b LBB0_280 $28(%rip) +LBB0_278: + WORD $0x7100021f // cmp w16, #0 + WORD $0x1a8d03ed // csel w13, wzr, w13, eq +LBB0_279: + WORD $0x1100f224 // add w4, w17, #60 + WORD $0x3101e23f // cmn w17, #120 + WORD $0xaa0403f1 // mov x17, x4 + WORD $0x540009aa // b.ge LBB0_303 $308(%rip) +LBB0_280: + WORD $0xd2800007 // mov x7, #0 + WORD $0xd2800006 // mov x6, #0 + WORD $0x0ab07e05 // bic w5, w16, w16, asr #31 + WORD $0xaa0503e4 // mov x4, x5 +LBB0_281: + WORD $0xeb0700bf // cmp x5, x7 + WORD $0x54000140 // b.eq LBB0_284 $40(%rip) + WORD $0x38a76933 // ldrsb x19, [x9, x7] + WORD $0x9b034cc6 // madd x6, x6, x3, x19 + WORD $0xd100c0c6 // sub x6, x6, #48 + WORD $0x910004e7 // add x7, x7, #1 + WORD $0xd37cfcd3 // lsr x19, x6, #60 + WORD $0xb4ffff33 // cbz x19, LBB0_281 $-28(%rip) + WORD $0xaa0603e5 // mov x5, x6 + WORD $0xaa0703e4 // mov x4, x7 + WORD $0x14000008 // b LBB0_286 $32(%rip) +LBB0_284: + WORD $0xb4000686 // cbz x6, LBB0_298 $208(%rip) +LBB0_285: + WORD $0x8b0608c5 // add x5, x6, x6, lsl #2 + WORD $0xd37ff8a5 // lsl x5, x5, #1 + WORD $0x11000484 // add w4, w4, #1 + WORD $0xeb0e00df // cmp x6, x14 + WORD $0xaa0503e6 // mov x6, x5 + WORD $0x54ffff63 // b.lo LBB0_285 $-20(%rip) +LBB0_286: + WORD $0x6b040210 // subs w16, w16, w4 + WORD $0x540001cd // b.le LBB0_289 $56(%rip) + WORD $0xaa1003e6 // mov x6, x16 + WORD $0xaa0903e7 // mov x7, x9 +LBB0_288: + WORD $0xd37cfcb3 // lsr x19, x5, #60 + WORD $0x9240eca5 // and x5, x5, #0xfffffffffffffff + WORD $0x321c0673 // orr w19, w19, #0x30 + WORD $0x390000f3 // strb w19, [x7] + WORD $0x38a4c8f3 // ldrsb x19, [x7, w4, sxtw] + WORD $0x9b034ca5 // madd x5, x5, x3, x19 + WORD $0xd100c0a5 // sub x5, x5, #48 + WORD $0x910004e7 // add x7, x7, #1 + WORD $0xf10004c6 // subs x6, x6, #1 + WORD $0x54fffee1 // b.ne LBB0_288 $-36(%rip) + WORD $0x14000002 // b LBB0_290 $8(%rip) +LBB0_289: + WORD $0x52800010 // mov w16, #0 +LBB0_290: + WORD $0xb5000105 // cbnz x5, LBB0_292 $32(%rip) + WORD $0x14000012 // b LBB0_294 $72(%rip) +LBB0_291: + WORD $0xf10000ff // cmp x7, #0 + WORD $0x1a9f058c // csinc w12, w12, wzr, eq + WORD $0x9240eca6 // and x6, x5, #0xfffffffffffffff + WORD $0x8b0608c5 // add x5, x6, x6, lsl #2 + WORD $0xd37ff8a5 // lsl x5, x5, #1 + WORD $0xb4000186 // cbz x6, LBB0_294 $48(%rip) +LBB0_292: + WORD $0x93407e06 // sxtw x6, w16 + WORD $0xd37cfca7 // lsr x7, x5, #60 + WORD $0xeb06015f // cmp x10, x6 + WORD $0x54fffee9 // b.ls LBB0_291 $-36(%rip) + WORD $0x321c04e7 // orr w7, w7, #0x30 + WORD $0x38266927 // strb w7, [x9, x6] + WORD $0x11000610 // add w16, w16, #1 + WORD $0x9240eca6 // and x6, x5, #0xfffffffffffffff + WORD $0x8b0608c5 // add x5, x6, x6, lsl #2 + WORD $0xd37ff8a5 // lsl x5, x5, #1 + WORD $0xb5fffec6 // cbnz x6, LBB0_292 $-40(%rip) +LBB0_294: + WORD $0x4b0401ad // sub w13, w13, w4 + WORD $0x110005ad // add w13, w13, #1 + WORD $0x7100061f // cmp w16, #1 + WORD $0x54fff7cb // b.lt LBB0_278 $-264(%rip) +LBB0_295: + WORD $0x387049e4 // ldrb w4, [x15, w16, uxtw] + WORD $0x7100c09f // cmp w4, #48 + WORD $0x54fff7a1 // b.ne LBB0_279 $-268(%rip) + WORD $0x71000610 // subs w16, w16, #1 + WORD $0x54ffff8c // b.gt LBB0_295 $-16(%rip) + WORD $0x5280000d // mov w13, #0 +LBB0_298: + WORD $0x52800010 // mov w16, #0 + WORD $0x17ffffb8 // b LBB0_279 $-288(%rip) +LBB0_299: + WORD $0x7110021f // cmp w16, #1024 + WORD $0x54ffb70c // b.gt LBB0_128 $-2336(%rip) + WORD $0x5100060e // sub w14, w16, #1 + WORD $0x340009f4 // cbz w20, LBB0_321 $316(%rip) + WORD $0x1400005f // b LBB0_329 $380(%rip) +LBB0_302: + WORD $0xaa1403f0 // mov x16, x20 + WORD $0xaa1103e4 // mov x4, x17 +LBB0_303: + WORD $0xd2800003 // mov x3, #0 + WORD $0xd2800011 // mov x17, #0 + WORD $0x4b0403ee // neg w14, w4 + WORD $0x52800145 // mov w5, #10 + WORD $0x0ab07e04 // bic w4, w16, w16, asr #31 +LBB0_304: + WORD $0xeb03009f // cmp x4, x3 + WORD $0x540003a0 // b.eq LBB0_310 $116(%rip) + WORD $0x38a36926 // ldrsb x6, [x9, x3] + WORD $0x9b051a31 // madd x17, x17, x5, x6 + WORD $0xd100c231 // sub x17, x17, #48 + WORD $0x91000463 // add x3, x3, #1 + WORD $0x9ace2626 // lsr x6, x17, x14 + WORD $0xb4ffff26 // cbz x6, LBB0_304 $-28(%rip) + WORD $0xaa0303e4 // mov x4, x3 +LBB0_307: + WORD $0x4b0401ad // sub w13, w13, w4 + WORD $0x110005ad // add w13, w13, #1 + WORD $0x92800003 // mov x3, #-1 + WORD $0x9ace2063 // lsl x3, x3, x14 + WORD $0xaa2303e3 // mvn x3, x3 + WORD $0x6b040214 // subs w20, w16, w4 + WORD $0x5400044d // b.le LBB0_315 $136(%rip) + WORD $0x52800150 // mov w16, #10 + WORD $0xaa1403e5 // mov x5, x20 + WORD $0xaa0903e6 // mov x6, x9 +LBB0_309: + WORD $0x9ace2627 // lsr x7, x17, x14 + WORD $0x8a030231 // and x17, x17, x3 + WORD $0x1100c0e7 // add w7, w7, #48 + WORD $0x390000c7 // strb w7, [x6] + WORD $0x38a4c8c7 // ldrsb x7, [x6, w4, sxtw] + WORD $0x9b101e31 // madd x17, x17, x16, x7 + WORD $0xd100c231 // sub x17, x17, #48 + WORD $0x910004c6 // add x6, x6, #1 + WORD $0xf10004a5 // subs x5, x5, #1 + WORD $0x54fffee1 // b.ne LBB0_309 $-36(%rip) + WORD $0x14000015 // b LBB0_316 $84(%rip) +LBB0_310: + WORD $0xb4000211 // cbz x17, LBB0_314 $64(%rip) + WORD $0x9ace2623 // lsr x3, x17, x14 + WORD $0xb4000103 // cbz x3, LBB0_313 $32(%rip) + WORD $0x52800014 // mov w20, #0 + WORD $0x4b0401ad // sub w13, w13, w4 + WORD $0x110005ad // add w13, w13, #1 + WORD $0x92800010 // mov x16, #-1 + WORD $0x9ace2210 // lsl x16, x16, x14 + WORD $0xaa3003e3 // mvn x3, x16 + WORD $0x1400000c // b LBB0_317 $48(%rip) +LBB0_313: + WORD $0x8b110a31 // add x17, x17, x17, lsl #2 + WORD $0xd37ffa31 // lsl x17, x17, #1 + WORD $0x11000484 // add w4, w4, #1 + WORD $0x9ace2623 // lsr x3, x17, x14 + WORD $0xb4ffff83 // cbz x3, LBB0_313 $-16(%rip) + WORD $0x17ffffdc // b LBB0_307 $-144(%rip) +LBB0_314: + WORD $0x5280000a // mov w10, #0 + WORD $0x12807fae // mov w14, #-1022 + WORD $0x1400008a // b LBB0_352 $552(%rip) +LBB0_315: + WORD $0x52800014 // mov w20, #0 +LBB0_316: + WORD $0xb40002d1 // cbz x17, LBB0_322 $88(%rip) +LBB0_317: + WORD $0x14000007 // b LBB0_319 $28(%rip) +LBB0_318: + WORD $0xf100021f // cmp x16, #0 + WORD $0x1a9f058c // csinc w12, w12, wzr, eq + WORD $0x8a030230 // and x16, x17, x3 + WORD $0x8b100a11 // add x17, x16, x16, lsl #2 + WORD $0xd37ffa31 // lsl x17, x17, #1 + WORD $0xb40001f0 // cbz x16, LBB0_323 $60(%rip) +LBB0_319: + WORD $0x9ace2630 // lsr x16, x17, x14 + WORD $0x93407e84 // sxtw x4, w20 + WORD $0xeb04015f // cmp x10, x4 + WORD $0x54fffee9 // b.ls LBB0_318 $-36(%rip) + WORD $0x1100c210 // add w16, w16, #48 + WORD $0x38246930 // strb w16, [x9, x4] + WORD $0x11000694 // add w20, w20, #1 + WORD $0x8a030230 // and x16, x17, x3 + WORD $0x8b100a11 // add x17, x16, x16, lsl #2 + WORD $0xd37ffa31 // lsl x17, x17, #1 + WORD $0xb5fffed0 // cbnz x16, LBB0_319 $-40(%rip) + WORD $0x14000003 // b LBB0_323 $12(%rip) +LBB0_321: + WORD $0x5280000a // mov w10, #0 + WORD $0x14000073 // b LBB0_352 $460(%rip) +LBB0_322: +LBB0_323: + WORD $0x7100069f // cmp w20, #1 + WORD $0x5400014b // b.lt LBB0_327 $40(%rip) +LBB0_324: + WORD $0x387449ee // ldrb w14, [x15, w20, uxtw] + WORD $0x7100c1df // cmp w14, #48 + WORD $0x54000141 // b.ne LBB0_328 $40(%rip) + WORD $0x71000694 // subs w20, w20, #1 + WORD $0x54ffff8c // b.gt LBB0_324 $-16(%rip) + WORD $0x5280000a // mov w10, #0 + WORD $0x5280000d // mov w13, #0 + WORD $0x12807fae // mov w14, #-1022 + WORD $0x1400006d // b LBB0_355 $436(%rip) +LBB0_327: + WORD $0x12807fae // mov w14, #-1022 + WORD $0x35000074 // cbnz w20, LBB0_329 $12(%rip) + WORD $0x14000062 // b LBB0_350 $392(%rip) +LBB0_328: + WORD $0x12807fae // mov w14, #-1022 +LBB0_329: + WORD $0xd2800010 // mov x16, #0 + WORD $0x2a1403e3 // mov w3, w20 + WORD $0x5282b191 // mov w17, #5516 +LBB0_330: + WORD $0xf1009a1f // cmp x16, #38 + WORD $0x54000260 // b.eq LBB0_336 $76(%rip) + WORD $0x8b100004 // add x4, x0, x16 + WORD $0x38716884 // ldrb w4, [x4, x17] + WORD $0x38706925 // ldrb w5, [x9, x16] + WORD $0x6b0400bf // cmp w5, w4 + WORD $0x54000141 // b.ne LBB0_335 $40(%rip) + WORD $0x91000610 // add x16, x16, #1 + WORD $0xeb10007f // cmp x3, x16 + WORD $0x54fffee1 // b.ne LBB0_330 $-36(%rip) + WORD $0x8b030010 // add x16, x0, x3 + WORD $0x5282b191 // mov w17, #5516 + WORD $0x38716a10 // ldrb w16, [x16, x17] + WORD $0x340000f0 // cbz w16, LBB0_336 $28(%rip) +LBB0_334: + WORD $0x528001f0 // mov w16, #15 + WORD $0x14000006 // b LBB0_337 $24(%rip) +LBB0_335: + WORD $0x13001c90 // sxtb w16, w4 + WORD $0x13001cb1 // sxtb w17, w5 + WORD $0x6b10023f // cmp w17, w16 + WORD $0x54ffff6b // b.lt LBB0_334 $-20(%rip) +LBB0_336: + WORD $0x52800210 // mov w16, #16 +LBB0_337: + WORD $0x0b030211 // add w17, w16, w3 + WORD $0x7100047f // cmp w3, #1 + WORD $0x5400078b // b.lt LBB0_347 $240(%rip) + WORD $0xd2800000 // mov x0, #0 + WORD $0x93407e24 // sxtw x4, w17 + WORD $0xd1000484 // sub x4, x4, #1 + WORD $0xd1000463 // sub x3, x3, #1 + WORD $0xd2ff4006 // mov x6, #-432345564227567616 + WORD $0xb202e7e7 // mov x7, #-3689348814741910324 + WORD $0xf29999a7 // movk x7, #52429 + WORD $0x92800133 // mov x19, #-10 + WORD $0xaa1103e5 // mov x5, x17 + WORD $0x14000009 // b LBB0_340 $36(%rip) +LBB0_339: + WORD $0xf10002bf // cmp x21, #0 + WORD $0x1a9f058c // csinc w12, w12, wzr, eq + WORD $0x510004a5 // sub w5, w5, #1 + WORD $0xd1000484 // sub x4, x4, #1 + WORD $0x91000475 // add x21, x3, #1 + WORD $0xd1000463 // sub x3, x3, #1 + WORD $0xf10006bf // cmp x21, #1 + WORD $0x54000229 // b.ls LBB0_342 $68(%rip) +LBB0_340: + WORD $0x38a36934 // ldrsb x20, [x9, x3] + WORD $0x8b14d400 // add x0, x0, x20, lsl #53 + WORD $0x8b060014 // add x20, x0, x6 + WORD $0x9bc77e80 // umulh x0, x20, x7 + WORD $0xd343fc00 // lsr x0, x0, #3 + WORD $0x9b135015 // madd x21, x0, x19, x20 + WORD $0xeb04015f // cmp x10, x4 + WORD $0x54fffe29 // b.ls LBB0_339 $-60(%rip) + WORD $0x1100c2b5 // add w21, w21, #48 + WORD $0x38246935 // strb w21, [x9, x4] + WORD $0x510004a5 // sub w5, w5, #1 + WORD $0xd1000484 // sub x4, x4, #1 + WORD $0x91000475 // add x21, x3, #1 + WORD $0xd1000463 // sub x3, x3, #1 + WORD $0xf10006bf // cmp x21, #1 + WORD $0x54fffe28 // b.hi LBB0_340 $-60(%rip) +LBB0_342: + WORD $0xf1002a9f // cmp x20, #10 + WORD $0x54000303 // b.lo LBB0_347 $96(%rip) + WORD $0x93407ca3 // sxtw x3, w5 + WORD $0xd1000463 // sub x3, x3, #1 + WORD $0xb202e7e4 // mov x4, #-3689348814741910324 + WORD $0xf29999a4 // movk x4, #52429 + WORD $0x92800125 // mov x5, #-10 + WORD $0x14000007 // b LBB0_345 $28(%rip) +LBB0_344: + WORD $0xf10000ff // cmp x7, #0 + WORD $0x1a9f058c // csinc w12, w12, wzr, eq + WORD $0xd1000463 // sub x3, x3, #1 + WORD $0xf100241f // cmp x0, #9 + WORD $0xaa0603e0 // mov x0, x6 + WORD $0x54000189 // b.ls LBB0_347 $48(%rip) +LBB0_345: + WORD $0x9bc47c06 // umulh x6, x0, x4 + WORD $0xd343fcc6 // lsr x6, x6, #3 + WORD $0x9b0500c7 // madd x7, x6, x5, x0 + WORD $0xeb03015f // cmp x10, x3 + WORD $0x54fffec9 // b.ls LBB0_344 $-40(%rip) + WORD $0x1100c0e7 // add w7, w7, #48 + WORD $0x38236927 // strb w7, [x9, x3] + WORD $0xd1000463 // sub x3, x3, #1 + WORD $0xf100241f // cmp x0, #9 + WORD $0xaa0603e0 // mov x0, x6 + WORD $0x54fffec8 // b.hi LBB0_345 $-40(%rip) +LBB0_347: + WORD $0xeb31c15f // cmp x10, w17, sxtw + WORD $0x1a8a822a // csel w10, w17, w10, hi + WORD $0x0b0d020d // add w13, w16, w13 + WORD $0x7100055f // cmp w10, #1 + WORD $0x5400010b // b.lt LBB0_351 $32(%rip) +LBB0_348: + WORD $0x386a49f0 // ldrb w16, [x15, w10, uxtw] + WORD $0x7100c21f // cmp w16, #48 + WORD $0x540000c1 // b.ne LBB0_352 $24(%rip) + WORD $0x7100054a // subs w10, w10, #1 + WORD $0x54ffff8c // b.gt LBB0_348 $-16(%rip) +LBB0_350: + WORD $0x5280000a // mov w10, #0 + WORD $0x14000006 // b LBB0_354 $24(%rip) +LBB0_351: + WORD $0x340000aa // cbz w10, LBB0_354 $20(%rip) +LBB0_352: + WORD $0x710051bf // cmp w13, #20 + WORD $0x5400008d // b.le LBB0_355 $16(%rip) + WORD $0x9280000f // mov x15, #-1 + WORD $0x14000046 // b LBB0_375 $280(%rip) +LBB0_354: + WORD $0x5280000d // mov w13, #0 +LBB0_355: + WORD $0x6b0a01bf // cmp w13, w10 + WORD $0x1a8ab1b0 // csel w16, w13, w10, lt + WORD $0x7100061f // cmp w16, #1 + WORD $0x5400016b // b.lt LBB0_358 $44(%rip) + WORD $0xd280000f // mov x15, #0 + WORD $0x52800151 // mov w17, #10 + WORD $0xaa1003e0 // mov x0, x16 + WORD $0xaa0903e3 // mov x3, x9 +LBB0_357: + WORD $0x38801464 // ldrsb x4, [x3], #1 + WORD $0x9b1111ef // madd x15, x15, x17, x4 + WORD $0xd100c1ef // sub x15, x15, #48 + WORD $0xf1000400 // subs x0, x0, #1 + WORD $0x54ffff81 // b.ne LBB0_357 $-16(%rip) + WORD $0x14000003 // b LBB0_359 $12(%rip) +LBB0_358: + WORD $0x52800010 // mov w16, #0 + WORD $0xd280000f // mov x15, #0 +LBB0_359: + WORD $0x6b1001b1 // subs w17, w13, w16 + WORD $0x540003ad // b.le LBB0_366 $116(%rip) + WORD $0x7100123f // cmp w17, #4 + WORD $0x540002c3 // b.lo LBB0_364 $88(%rip) + WORD $0x121e7620 // and w0, w17, #0xfffffffc + WORD $0x0b000210 // add w16, w16, w0 + WORD $0x52800023 // mov w3, #1 + WORD $0xaa0003e4 // mov x4, x0 + WORD $0x52800025 // mov w5, #1 + WORD $0x52800026 // mov w6, #1 +LBB0_362: + WORD $0x8b0f09ef // add x15, x15, x15, lsl #2 + WORD $0xd37ff9ef // lsl x15, x15, #1 + WORD $0x8b030863 // add x3, x3, x3, lsl #2 + WORD $0xd37ff863 // lsl x3, x3, #1 + WORD $0x8b0508a5 // add x5, x5, x5, lsl #2 + WORD $0xd37ff8a5 // lsl x5, x5, #1 + WORD $0x8b0608c6 // add x6, x6, x6, lsl #2 + WORD $0xd37ff8c6 // lsl x6, x6, #1 + WORD $0x71001084 // subs w4, w4, #4 + WORD $0x54fffee1 // b.ne LBB0_362 $-36(%rip) + WORD $0x9b0f7c6f // mul x15, x3, x15 + WORD $0x9b0f7caf // mul x15, x5, x15 + WORD $0x9b0f7ccf // mul x15, x6, x15 + WORD $0x6b00023f // cmp w17, w0 + WORD $0x540000c0 // b.eq LBB0_366 $24(%rip) +LBB0_364: + WORD $0x4b1001b0 // sub w16, w13, w16 +LBB0_365: + WORD $0x8b0f09ef // add x15, x15, x15, lsl #2 + WORD $0xd37ff9ef // lsl x15, x15, #1 + WORD $0x71000610 // subs w16, w16, #1 + WORD $0x54ffffa1 // b.ne LBB0_365 $-12(%rip) +LBB0_366: + WORD $0x37f801ed // tbnz w13, #31, LBB0_372 $60(%rip) + WORD $0x6b0d015f // cmp w10, w13 + WORD $0x540001ad // b.le LBB0_372 $52(%rip) + WORD $0x8b2d4129 // add x9, x9, w13, uxtw + WORD $0x39c00130 // ldrsb w16, [x9] + WORD $0x110005b1 // add w17, w13, #1 + WORD $0x7100d61f // cmp w16, #53 + WORD $0x7a4a0220 // ccmp w17, w10, #0, eq + WORD $0x540000a0 // b.eq LBB0_370 $20(%rip) + WORD $0x7100d21f // cmp w16, #52 + WORD $0x1a9fd7e9 // cset w9, gt + WORD $0x35000069 // cbnz w9, LBB0_371 $12(%rip) + WORD $0x14000003 // b LBB0_372 $12(%rip) +LBB0_370: + WORD $0x340001ec // cbz w12, LBB0_376 $60(%rip) +LBB0_371: + WORD $0x910005ef // add x15, x15, #1 +LBB0_372: + WORD $0xd2e00409 // mov x9, #9007199254740992 + WORD $0xeb0901ff // cmp x15, x9 + WORD $0x540000a1 // b.ne LBB0_375 $20(%rip) + WORD $0x710ffddf // cmp w14, #1023 + WORD $0x54ff95a0 // b.eq LBB0_128 $-3404(%rip) + WORD $0x110005ce // add w14, w14, #1 + WORD $0xd2e0020f // mov x15, #4503599627370496 +LBB0_375: + WORD $0x9374d1ea // sbfx x10, x15, #52, #1 + WORD $0x110ffdcc // add w12, w14, #1023 + WORD $0x9240cde9 // and x9, x15, #0xfffffffffffff + WORD $0x1200298c // and w12, w12, #0x7ff + WORD $0x8a0cd14a // and x10, x10, x12, lsl #52 + WORD $0x17fffcac // b LBB0_131 $-3408(%rip) +LBB0_376: + WORD $0x34fffe6d // cbz w13, LBB0_372 $-52(%rip) + WORD $0x385ff129 // ldurb w9, [x9, #-1] + WORD $0x12000129 // and w9, w9, #0x1 + WORD $0x35fffde9 // cbnz w9, LBB0_371 $-68(%rip) + WORD $0x17ffffef // b LBB0_372 $-68(%rip) + // .p2align 2, 0x00 +_MASK_USE_NUMBER: + WORD $0x00000002 // .long 2 + WORD $0x00000000 // .p2align 3, 0x00 +_P10_TAB: + WORD $0x00000000; WORD $0x3ff00000 // .quad 0x3ff0000000000000 + WORD $0x00000000; WORD $0x40240000 // .quad 0x4024000000000000 + WORD $0x00000000; WORD $0x40590000 // .quad 0x4059000000000000 + WORD $0x00000000; WORD $0x408f4000 // .quad 0x408f400000000000 + WORD $0x00000000; WORD $0x40c38800 // .quad 0x40c3880000000000 + WORD $0x00000000; WORD $0x40f86a00 // .quad 0x40f86a0000000000 + WORD $0x00000000; WORD $0x412e8480 // .quad 0x412e848000000000 + WORD $0x00000000; WORD $0x416312d0 // .quad 0x416312d000000000 + WORD $0x00000000; WORD $0x4197d784 // .quad 0x4197d78400000000 + WORD $0x00000000; WORD $0x41cdcd65 // .quad 0x41cdcd6500000000 + WORD $0x20000000; WORD $0x4202a05f // .quad 0x4202a05f20000000 + WORD $0xe8000000; WORD $0x42374876 // .quad 0x42374876e8000000 + WORD $0xa2000000; WORD $0x426d1a94 // .quad 0x426d1a94a2000000 + WORD $0xe5400000; WORD $0x42a2309c // .quad 0x42a2309ce5400000 + WORD $0x1e900000; WORD $0x42d6bcc4 // .quad 0x42d6bcc41e900000 + WORD $0x26340000; WORD $0x430c6bf5 // .quad 0x430c6bf526340000 + WORD $0x37e08000; WORD $0x4341c379 // .quad 0x4341c37937e08000 + WORD $0x85d8a000; WORD $0x43763457 // .quad 0x4376345785d8a000 + WORD $0x674ec800; WORD $0x43abc16d // .quad 0x43abc16d674ec800 + WORD $0x60913d00; WORD $0x43e158e4 // .quad 0x43e158e460913d00 + WORD $0x78b58c40; WORD $0x4415af1d // .quad 0x4415af1d78b58c40 + WORD $0xd6e2ef50; WORD $0x444b1ae4 // .quad 0x444b1ae4d6e2ef50 + WORD $0x064dd592; WORD $0x4480f0cf // .quad 0x4480f0cf064dd592 + // .p2align 3, 0x00 +_POW10_M128_TAB: + WORD $0xcd60e453; WORD $0x1732c869 // .quad 1671618768450675795 + WORD $0x081c0288; WORD $0xfa8fd5a0 // .quad -391859759250406776 + WORD $0x205c8eb4; WORD $0x0e7fbd42 // .quad 1044761730281672372 + WORD $0x05118195; WORD $0x9c99e584 // .quad -7162441377172586091 + WORD $0xa873b261; WORD $0x521fac92 // .quad 5917638181279478369 + WORD $0x0655e1fa; WORD $0xc3c05ee5 // .quad -4341365703038344710 + WORD $0x52909ef9; WORD $0xe6a797b7 // .quad -1826324310255427847 + WORD $0x47eb5a78; WORD $0xf4b0769e // .quad -815021110370542984 + WORD $0x939a635c; WORD $0x9028bed2 // .quad -8058981721550724260 + WORD $0xecf3188b; WORD $0x98ee4a22 // .quad -7426917221622671221 + WORD $0x3880fc33; WORD $0x7432ee87 // .quad 8373016921771146291 + WORD $0xa82fdeae; WORD $0xbf29dcab // .quad -4671960508600951122 + WORD $0x06a13b3f; WORD $0x113faa29 // .quad 1242899115359157055 + WORD $0x923bd65a; WORD $0xeef453d6 // .quad -1228264617323800998 + WORD $0xa424c507; WORD $0x4ac7ca59 // .quad 5388497965526861063 + WORD $0x1b6565f8; WORD $0x9558b466 // .quad -7685194413468457480 + WORD $0x0d2df649; WORD $0x5d79bcf0 // .quad 6735622456908576329 + WORD $0xa23ebf76; WORD $0xbaaee17f // .quad -4994806998408183946 + WORD $0x107973dc; WORD $0xf4d82c2c // .quad -803843965719055396 + WORD $0x8ace6f53; WORD $0xe95a99df // .quad -1631822729582842029 + WORD $0x8a4be869; WORD $0x79071b9b // .quad 8720969558280366185 + WORD $0xb6c10594; WORD $0x91d8a02b // .quad -7937418233630358124 + WORD $0x6cdee284; WORD $0x9748e282 // .quad -7545532125859093884 + WORD $0xa47146f9; WORD $0xb64ec836 // .quad -5310086773610559751 + WORD $0x08169b25; WORD $0xfd1b1b23 // .quad -208543120469091547 + WORD $0x4d8d98b7; WORD $0xe3e27a44 // .quad -2025922448585811785 + WORD $0xe50e20f7; WORD $0xfe30f0f5 // .quad -130339450293182217 + WORD $0xb0787f72; WORD $0x8e6d8c6a // .quad -8183730558007214222 + WORD $0x5e51a935; WORD $0xbdbd2d33 // .quad -4774610331293865675 + WORD $0x5c969f4f; WORD $0xb208ef85 // .quad -5617977179081629873 + WORD $0x35e61382; WORD $0xad2c7880 // .quad -5968262914117332094 + WORD $0xb3bc4723; WORD $0xde8b2b66 // .quad -2410785455424649437 + WORD $0x21afcc31; WORD $0x4c3bcb50 // .quad 5493207715531443249 + WORD $0x3055ac76; WORD $0x8b16fb20 // .quad -8424269937281487754 + WORD $0x2a1bbf3d; WORD $0xdf4abe24 // .quad -2356862392440471747 + WORD $0x3c6b1793; WORD $0xaddcb9e8 // .quad -5918651403174471789 + WORD $0x34a2af0d; WORD $0xd71d6dad // .quad -2946077990550589683 + WORD $0x4b85dd78; WORD $0xd953e862 // .quad -2786628235540701832 + WORD $0x40e5ad68; WORD $0x8672648c // .quad -8758827771735200408 + WORD $0x6f33aa6b; WORD $0x87d4713d // .quad -8659171674854020501 + WORD $0x511f18c2; WORD $0x680efdaf // .quad 7498209359040551106 + WORD $0xcb009506; WORD $0xa9c98d8c // .quad -6212278575140137722 + WORD $0x2566def2; WORD $0x0212bd1b // .quad 149389661945913074 + WORD $0xfdc0ba48; WORD $0xd43bf0ef // .quad -3153662200497784248 + WORD $0xf7604b57; WORD $0x014bb630 // .quad 93368538716195671 + WORD $0xfe98746d; WORD $0x84a57695 // .quad -8888567902952197011 + WORD $0x35385e2d; WORD $0x419ea3bd // .quad 4728396691822632493 + WORD $0x7e3e9188; WORD $0xa5ced43b // .quad -6499023860262858360 + WORD $0x828675b9; WORD $0x52064cac // .quad 5910495864778290617 + WORD $0x5dce35ea; WORD $0xcf42894a // .quad -3512093806901185046 + WORD $0xd1940993; WORD $0x7343efeb // .quad 8305745933913819539 + WORD $0x7aa0e1b2; WORD $0x818995ce // .quad -9112587656954322510 + WORD $0xc5f90bf8; WORD $0x1014ebe6 // .quad 1158810380537498616 + WORD $0x19491a1f; WORD $0xa1ebfb42 // .quad -6779048552765515233 + WORD $0x77774ef6; WORD $0xd41a26e0 // .quad -3163173042755514634 + WORD $0x9f9b60a6; WORD $0xca66fa12 // .quad -3862124672529506138 + WORD $0x955522b4; WORD $0x8920b098 // .quad -8565652321871781196 + WORD $0x478238d0; WORD $0xfd00b897 // .quad -215969822234494768 + WORD $0x5d5535b0; WORD $0x55b46e5f // .quad 6175682344898606512 + WORD $0x8cb16382; WORD $0x9e20735e // .quad -7052510166537641086 + WORD $0x34aa831d; WORD $0xeb2189f7 // .quad -1503769105731517667 + WORD $0x2fddbc62; WORD $0xc5a89036 // .quad -4203951689744663454 + WORD $0x01d523e4; WORD $0xa5e9ec75 // .quad -6491397400591784988 + WORD $0xbbd52b7b; WORD $0xf712b443 // .quad -643253593753441413 + WORD $0x2125366e; WORD $0x47b233c9 // .quad 5166248661484910190 + WORD $0x55653b2d; WORD $0x9a6bb0aa // .quad -7319562523736982739 + WORD $0x696e840a; WORD $0x999ec0bb // .quad -7377247228426025974 + WORD $0xeabe89f8; WORD $0xc1069cd4 // .quad -4537767136243840520 + WORD $0x43ca250d; WORD $0xc00670ea // .quad -4609873017105144563 + WORD $0x256e2c76; WORD $0xf148440a // .quad -1060522901877412746 + WORD $0x6a5e5728; WORD $0x38040692 // .quad 4036358391950366504 + WORD $0x5764dbca; WORD $0x96cd2a86 // .quad -7580355841314464822 + WORD $0x04f5ecf2; WORD $0xc6050837 // .quad -4177924046916817678 + WORD $0xed3e12bc; WORD $0xbc807527 // .quad -4863758783215693124 + WORD $0xc633682e; WORD $0xf7864a44 // .quad -610719040218634194 + WORD $0xe88d976b; WORD $0xeba09271 // .quad -1468012460592228501 + WORD $0xfbe0211d; WORD $0x7ab3ee6a // .quad 8841672636718129437 + WORD $0x31587ea3; WORD $0x93445b87 // .quad -7835036815511224669 + WORD $0xbad82964; WORD $0x5960ea05 // .quad 6440404777470273892 + WORD $0xfdae9e4c; WORD $0xb8157268 // .quad -5182110000961642932 + WORD $0x298e33bd; WORD $0x6fb92487 // .quad 8050505971837842365 + WORD $0x3d1a45df; WORD $0xe61acf03 // .quad -1865951482774665761 + WORD $0x79f8e056; WORD $0xa5d3b6d4 // .quad -6497648813669818282 + WORD $0x06306bab; WORD $0x8fd0c162 // .quad -8083748704375247957 + WORD $0x9877186c; WORD $0x8f48a489 // .quad -8122061017087272852 + WORD $0x87bc8696; WORD $0xb3c4f1ba // .quad -5492999862041672042 + WORD $0xfe94de87; WORD $0x331acdab // .quad 3682481783923072647 + WORD $0x29aba83c; WORD $0xe0b62e29 // .quad -2254563809124702148 + WORD $0x7f1d0b14; WORD $0x9ff0c08b // .quad -6921820921902855404 + WORD $0xba0b4925; WORD $0x8c71dcd9 // .quad -8326631408344020699 + WORD $0x5ee44dd9; WORD $0x07ecf0ae // .quad 571095884476206553 + WORD $0x288e1b6f; WORD $0xaf8e5410 // .quad -5796603242002637969 + WORD $0xf69d6150; WORD $0xc9e82cd9 // .quad -3897816162832129712 + WORD $0x32b1a24a; WORD $0xdb71e914 // .quad -2634068034075909558 + WORD $0x3a225cd2; WORD $0xbe311c08 // .quad -4741978110983775022 + WORD $0x9faf056e; WORD $0x892731ac // .quad -8563821548938525330 + WORD $0x48aaf406; WORD $0x6dbd630a // .quad 7907585416552444934 + WORD $0xc79ac6ca; WORD $0xab70fe17 // .quad -6093090917745768758 + WORD $0xdad5b108; WORD $0x092cbbcc // .quad 661109733835780360 + WORD $0xb981787d; WORD $0xd64d3d9d // .quad -3004677628754823043 + WORD $0x08c58ea5; WORD $0x25bbf560 // .quad 2719036592861056677 + WORD $0x93f0eb4e; WORD $0x85f04682 // .quad -8795452545612846258 + WORD $0x0af6f24e; WORD $0xaf2af2b8 // .quad -5824576295778454962 + WORD $0x38ed2621; WORD $0xa76c5823 // .quad -6382629663588669919 + WORD $0x0db4aee1; WORD $0x1af5af66 // .quad 1942651667131707105 + WORD $0x07286faa; WORD $0xd1476e2c // .quad -3366601061058449494 + WORD $0xc890ed4d; WORD $0x50d98d9f // .quad 5825843310384704845 + WORD $0x847945ca; WORD $0x82cca4db // .quad -9021654690802612790 + WORD $0xbab528a0; WORD $0xe50ff107 // .quad -1941067898873894752 + WORD $0x6597973c; WORD $0xa37fce12 // .quad -6665382345075878084 + WORD $0xa96272c8; WORD $0x1e53ed49 // .quad 2185351144835019464 + WORD $0xfefd7d0c; WORD $0xcc5fc196 // .quad -3720041912917459700 + WORD $0x13bb0f7a; WORD $0x25e8e89c // .quad 2731688931043774330 + WORD $0xbebcdc4f; WORD $0xff77b1fc // .quad -38366372719436721 + WORD $0x8c54e9ac; WORD $0x77b19161 // .quad 8624834609543440812 + WORD $0xf73609b1; WORD $0x9faacf3d // .quad -6941508010590729807 + WORD $0xef6a2417; WORD $0xd59df5b9 // .quad -3054014793352862697 + WORD $0x75038c1d; WORD $0xc795830d // .quad -4065198994811024355 + WORD $0x6b44ad1d; WORD $0x4b057328 // .quad 5405853545163697437 + WORD $0xd2446f25; WORD $0xf97ae3d0 // .quad -469812725086392539 + WORD $0x430aec32; WORD $0x4ee367f9 // .quad 5684501474941004850 + WORD $0x836ac577; WORD $0x9becce62 // .quad -7211161980820077193 + WORD $0x93cda73f; WORD $0x229c41f7 // .quad 2493940825248868159 + WORD $0x244576d5; WORD $0xc2e801fb // .quad -4402266457597708587 + WORD $0x78c1110f; WORD $0x6b435275 // .quad 7729112049988473103 + WORD $0xed56d48a; WORD $0xf3a20279 // .quad -891147053569747830 + WORD $0x6b78aaa9; WORD $0x830a1389 // .quad -9004363024039368023 + WORD $0x345644d6; WORD $0x9845418c // .quad -7474495936122174250 + WORD $0xc656d553; WORD $0x23cc986b // .quad 2579604275232953683 + WORD $0x416bd60c; WORD $0xbe5691ef // .quad -4731433901725329908 + WORD $0xb7ec8aa8; WORD $0x2cbfbe86 // .quad 3224505344041192104 + WORD $0x11c6cb8f; WORD $0xedec366b // .quad -1302606358729274481 + WORD $0x32f3d6a9; WORD $0x7bf7d714 // .quad 8932844867666826921 + WORD $0xeb1c3f39; WORD $0x94b3a202 // .quad -7731658001846878407 + WORD $0x3fb0cc53; WORD $0xdaf5ccd9 // .quad -2669001970698630061 + WORD $0xa5e34f07; WORD $0xb9e08a83 // .quad -5052886483881210105 + WORD $0x8f9cff68; WORD $0xd1b3400f // .quad -3336252463373287576 + WORD $0x8f5c22c9; WORD $0xe858ad24 // .quad -1704422086424124727 + WORD $0xb9c21fa1; WORD $0x23100809 // .quad 2526528228819083169 + WORD $0xd99995be; WORD $0x91376c36 // .quad -7982792831656159810 + WORD $0x2832a78a; WORD $0xabd40a0c // .quad -6065211750830921846 + WORD $0x8ffffb2d; WORD $0xb5854744 // .quad -5366805021142811859 + WORD $0x323f516c; WORD $0x16c90c8f // .quad 1641857348316123500 + WORD $0xb3fff9f9; WORD $0xe2e69915 // .quad -2096820258001126919 + WORD $0x7f6792e3; WORD $0xae3da7d9 // .quad -5891368184943504669 + WORD $0x907ffc3b; WORD $0x8dd01fad // .quad -8228041688891786181 + WORD $0xdf41779c; WORD $0x99cd11cf // .quad -7364210231179380836 + WORD $0xf49ffb4a; WORD $0xb1442798 // .quad -5673366092687344822 + WORD $0xd711d583; WORD $0x40405643 // .quad 4629795266307937667 + WORD $0x31c7fa1d; WORD $0xdd95317f // .quad -2480021597431793123 + WORD $0x666b2572; WORD $0x482835ea // .quad 5199465050656154994 + WORD $0x7f1cfc52; WORD $0x8a7d3eef // .quad -8467542526035952558 + WORD $0x0005eecf; WORD $0xda324365 // .quad -2724040723534582065 + WORD $0x5ee43b66; WORD $0xad1c8eab // .quad -5972742139117552794 + WORD $0x40076a82; WORD $0x90bed43e // .quad -8016736922845615486 + WORD $0x369d4a40; WORD $0xd863b256 // .quad -2854241655469553088 + WORD $0xe804a291; WORD $0x5a7744a6 // .quad 6518754469289960081 + WORD $0xe2224e68; WORD $0x873e4f75 // .quad -8701430062309552536 + WORD $0xa205cb36; WORD $0x711515d0 // .quad 8148443086612450102 + WORD $0x5aaae202; WORD $0xa90de353 // .quad -6265101559459552766 + WORD $0xca873e03; WORD $0x0d5a5b44 // .quad 962181821410786819 + WORD $0x31559a83; WORD $0xd3515c28 // .quad -3219690930897053053 + WORD $0xfe9486c2; WORD $0xe858790a // .quad -1704479370831952190 + WORD $0x1ed58091; WORD $0x8412d999 // .quad -8929835859451740015 + WORD $0xbe39a872; WORD $0x626e974d // .quad 7092772823314835570 + WORD $0x668ae0b6; WORD $0xa5178fff // .quad -6550608805887287114 + WORD $0x2dc8128f; WORD $0xfb0a3d21 // .quad -357406007711231345 + WORD $0x402d98e3; WORD $0xce5d73ff // .quad -3576574988931720989 + WORD $0xbc9d0b99; WORD $0x7ce66634 // .quad 8999993282035256217 + WORD $0x881c7f8e; WORD $0x80fa687f // .quad -9152888395723407474 + WORD $0xebc44e80; WORD $0x1c1fffc1 // .quad 2026619565689294464 + WORD $0x6a239f72; WORD $0xa139029f // .quad -6829424476226871438 + WORD $0x66b56220; WORD $0xa327ffb2 // .quad -6690097579743157728 + WORD $0x44ac874e; WORD $0xc9874347 // .quad -3925094576856201394 + WORD $0x0062baa8; WORD $0x4bf1ff9f // .quad 5472436080603216552 + WORD $0x15d7a922; WORD $0xfbe91419 // .quad -294682202642863838 + WORD $0x603db4a9; WORD $0x6f773fc3 // .quad 8031958568804398249 + WORD $0xada6c9b5; WORD $0x9d71ac8f // .quad -7101705404292871755 + WORD $0x384d21d3; WORD $0xcb550fb4 // .quad -3795109844276665901 + WORD $0x99107c22; WORD $0xc4ce17b3 // .quad -4265445736938701790 + WORD $0x46606a48; WORD $0x7e2a53a1 // .quad 9091170749936331336 + WORD $0x7f549b2b; WORD $0xf6019da0 // .quad -720121152745989333 + WORD $0xcbfc426d; WORD $0x2eda7444 // .quad 3376138709496513133 + WORD $0x4f94e0fb; WORD $0x99c10284 // .quad -7367604748107325189 + WORD $0xfefb5308; WORD $0xfa911155 // .quad -391512631556746488 + WORD $0x637a1939; WORD $0xc0314325 // .quad -4597819916706768583 + WORD $0x7eba27ca; WORD $0x793555ab // .quad 8733981247408842698 + WORD $0xbc589f88; WORD $0xf03d93ee // .quad -1135588877456072824 + WORD $0x2f3458de; WORD $0x4bc1558b // .quad 5458738279630526686 + WORD $0x35b763b5; WORD $0x96267c75 // .quad -7627272076051127371 + WORD $0xfb016f16; WORD $0x9eb1aaed // .quad -7011635205744005354 + WORD $0x83253ca2; WORD $0xbbb01b92 // .quad -4922404076636521310 + WORD $0x79c1cadc; WORD $0x465e15a9 // .quad 5070514048102157020 + WORD $0x23ee8bcb; WORD $0xea9c2277 // .quad -1541319077368263733 + WORD $0xec191ec9; WORD $0x0bfacd89 // .quad 863228270850154185 + WORD $0x7675175f; WORD $0x92a1958a // .quad -7880853450996246689 + WORD $0x671f667b; WORD $0xcef980ec // .quad -3532650679864695173 + WORD $0x14125d36; WORD $0xb749faed // .quad -5239380795317920458 + WORD $0x80e7401a; WORD $0x82b7e127 // .quad -9027499368258256870 + WORD $0x5916f484; WORD $0xe51c79a8 // .quad -1937539975720012668 + WORD $0xb0908810; WORD $0xd1b2ecb8 // .quad -3336344095947716592 + WORD $0x37ae58d2; WORD $0x8f31cc09 // .quad -8128491512466089774 + WORD $0xdcb4aa15; WORD $0x861fa7e6 // .quad -8782116138362033643 + WORD $0x8599ef07; WORD $0xb2fe3f0b // .quad -5548928372155224313 + WORD $0x93e1d49a; WORD $0x67a791e0 // .quad 7469098900757009562 + WORD $0x67006ac9; WORD $0xdfbdcece // .quad -2324474446766642487 + WORD $0x5c6d24e0; WORD $0xe0c8bb2c // .quad -2249342214667950880 + WORD $0x006042bd; WORD $0x8bd6a141 // .quad -8370325556870233411 + WORD $0x73886e18; WORD $0x58fae9f7 // .quad 6411694268519837208 + WORD $0x4078536d; WORD $0xaecc4991 // .quad -5851220927660403859 + WORD $0x506a899e; WORD $0xaf39a475 // .quad -5820440219632367202 + WORD $0x90966848; WORD $0xda7f5bf5 // .quad -2702340141148116920 + WORD $0x52429603; WORD $0x6d8406c9 // .quad 7891439908798240259 + WORD $0x7a5e012d; WORD $0x888f9979 // .quad -8606491615858654931 + WORD $0xa6d33b83; WORD $0xc8e5087b // .quad -3970758169284363389 + WORD $0xd8f58178; WORD $0xaab37fd7 // .quad -6146428501395930760 + WORD $0x90880a64; WORD $0xfb1e4a9a // .quad -351761693178066332 + WORD $0xcf32e1d6; WORD $0xd5605fcd // .quad -3071349608317525546 + WORD $0x9a55067f; WORD $0x5cf2eea0 // .quad 6697677969404790399 + WORD $0xa17fcd26; WORD $0x855c3be0 // .quad -8837122532839535322 + WORD $0xc0ea481e; WORD $0xf42faa48 // .quad -851274575098787810 + WORD $0xc9dfc06f; WORD $0xa6b34ad8 // .quad -6434717147622031249 + WORD $0xf124da26; WORD $0xf13b94da // .quad -1064093218873484762 + WORD $0xfc57b08b; WORD $0xd0601d8e // .quad -3431710416100151157 + WORD $0xd6b70858; WORD $0x76c53d08 // .quad 8558313775058847832 + WORD $0x5db6ce57; WORD $0x823c1279 // .quad -9062348037703676329 + WORD $0x0c64ca6e; WORD $0x54768c4b // .quad 6086206200396171886 + WORD $0xb52481ed; WORD $0xa2cb1717 // .quad -6716249028702207507 + WORD $0xcf7dfd09; WORD $0xa9942f5d // .quad -6227300304786948855 + WORD $0xa26da268; WORD $0xcb7ddcdd // .quad -3783625267450371480 + WORD $0x435d7c4c; WORD $0xd3f93b35 // .quad -3172439362556298164 + WORD $0x0b090b02; WORD $0xfe5d5415 // .quad -117845565885576446 + WORD $0x4a1a6daf; WORD $0xc47bc501 // .quad -4288617610811380305 + WORD $0x26e5a6e1; WORD $0x9efa548d // .quad -6991182506319567135 + WORD $0x9ca1091b; WORD $0x359ab641 // .quad 3862600023340550427 + WORD $0x709f109a; WORD $0xc6b8e9b0 // .quad -4127292114472071014 + WORD $0x03c94b62; WORD $0xc30163d2 // .quad -4395122007679087774 + WORD $0x8cc6d4c0; WORD $0xf867241c // .quad -547429124662700864 + WORD $0x425dcf1d; WORD $0x79e0de63 // .quad 8782263791269039901 + WORD $0xd7fc44f8; WORD $0x9b407691 // .quad -7259672230555269896 + WORD $0x12f542e4; WORD $0x985915fc // .quad -7468914334623251740 + WORD $0x4dfb5636; WORD $0xc2109436 // .quad -4462904269766699466 + WORD $0x17b2939d; WORD $0x3e6f5b7b // .quad 4498915137003099037 + WORD $0xe17a2bc4; WORD $0xf294b943 // .quad -966944318780986428 + WORD $0xeecf9c42; WORD $0xa705992c // .quad -6411550076227838910 + WORD $0x6cec5b5a; WORD $0x979cf3ca // .quad -7521869226879198374 + WORD $0x2a838353; WORD $0x50c6ff78 // .quad 5820620459997365075 + WORD $0x08277231; WORD $0xbd8430bd // .quad -4790650515171610063 + WORD $0x35246428; WORD $0xa4f8bf56 // .quad -6559282480285457368 + WORD $0x4a314ebd; WORD $0xece53cec // .quad -1376627125537124675 + WORD $0xe136be99; WORD $0x871b7795 // .quad -8711237568605798759 + WORD $0xae5ed136; WORD $0x940f4613 // .quad -7777920981101784778 + WORD $0x59846e3f; WORD $0x28e2557b // .quad 2946011094524915263 + WORD $0x99f68584; WORD $0xb9131798 // .quad -5110715207949843068 + WORD $0x2fe589cf; WORD $0x331aeada // .quad 3682513868156144079 + WORD $0xc07426e5; WORD $0xe757dd7e // .quad -1776707991509915931 + WORD $0x5def7621; WORD $0x3ff0d2c8 // .quad 4607414176811284001 + WORD $0x3848984f; WORD $0x9096ea6f // .quad -8027971522334779313 + WORD $0x756b53a9; WORD $0x0fed077a // .quad 1147581702586717097 + WORD $0x065abe63; WORD $0xb4bca50b // .quad -5423278384491086237 + WORD $0x12c62894; WORD $0xd3e84959 // .quad -3177208890193991532 + WORD $0xc7f16dfb; WORD $0xe1ebce4d // .quad -2167411962186469893 + WORD $0xabbbd95c; WORD $0x64712dd7 // .quad 7237616480483531100 + WORD $0x9cf6e4bd; WORD $0x8d3360f0 // .quad -8272161504007625539 + WORD $0x96aacfb3; WORD $0xbd8d794d // .quad -4788037454677749837 + WORD $0xc4349dec; WORD $0xb080392c // .quad -5728515861582144020 + WORD $0xfc5583a0; WORD $0xecf0d7a0 // .quad -1373360799919799392 + WORD $0xf541c567; WORD $0xdca04777 // .quad -2548958808550292121 + WORD $0x9db57244; WORD $0xf41686c4 // .quad -858350499949874620 + WORD $0xf9491b60; WORD $0x89e42caa // .quad -8510628282985014432 + WORD $0xc522ced5; WORD $0x311c2875 // .quad 3538747893490044629 + WORD $0xb79b6239; WORD $0xac5d37d5 // .quad -6026599335303880135 + WORD $0x366b828b; WORD $0x7d633293 // .quad 9035120885289943691 + WORD $0x25823ac7; WORD $0xd77485cb // .quad -2921563150702462265 + WORD $0x02033197; WORD $0xae5dff9c // .quad -5882264492762254953 + WORD $0xf77164bc; WORD $0x86a8d39e // .quad -8743505996830120772 + WORD $0x0283fdfc; WORD $0xd9f57f83 // .quad -2741144597525430788 + WORD $0xb54dbdeb; WORD $0xa8530886 // .quad -6317696477610263061 + WORD $0xc324fd7b; WORD $0xd072df63 // .quad -3426430746906788485 + WORD $0x62a12d66; WORD $0xd267caa8 // .quad -3285434578585440922 + WORD $0x59f71e6d; WORD $0x4247cb9e // .quad 4776009810824339053 + WORD $0x3da4bc60; WORD $0x8380dea9 // .quad -8970925639256982432 + WORD $0xf074e608; WORD $0x52d9be85 // .quad 5970012263530423816 + WORD $0x8d0deb78; WORD $0xa4611653 // .quad -6601971030643840136 + WORD $0x6c921f8b; WORD $0x67902e27 // .quad 7462515329413029771 + WORD $0x70516656; WORD $0xcd795be8 // .quad -3640777769877412266 + WORD $0xa3db53b6; WORD $0x00ba1cd8 // .quad 52386062455755702 + WORD $0x4632dff6; WORD $0x806bd971 // .quad -9193015133814464522 + WORD $0xccd228a4; WORD $0x80e8a40e // .quad -9157889458785081180 + WORD $0x97bf97f3; WORD $0xa086cfcd // .quad -6879582898840692749 + WORD $0x8006b2cd; WORD $0x6122cd12 // .quad 6999382250228200141 + WORD $0xfdaf7df0; WORD $0xc8a883c0 // .quad -3987792605123478032 + WORD $0x20085f81; WORD $0x796b8057 // .quad 8749227812785250177 + WORD $0x3d1b5d6c; WORD $0xfad2a4b1 // .quad -373054737976959636 + WORD $0x74053bb0; WORD $0xcbe33036 // .quad -3755104653863994448 + WORD $0xc6311a63; WORD $0x9cc3a6ee // .quad -7150688238876681629 + WORD $0x11068a9c; WORD $0xbedbfc44 // .quad -4693880817329993060 + WORD $0x77bd60fc; WORD $0xc3f490aa // .quad -4326674280168464132 + WORD $0x15482d44; WORD $0xee92fb55 // .quad -1255665003235103420 + WORD $0x15acb93b; WORD $0xf4f1b4d5 // .quad -796656831783192261 + WORD $0x2d4d1c4a; WORD $0x751bdd15 // .quad 8438581409832836170 + WORD $0x2d8bf3c5; WORD $0x99171105 // .quad -7415439547505577019 + WORD $0x78a0635d; WORD $0xd262d45a // .quad -3286831292991118499 + WORD $0x78eef0b6; WORD $0xbf5cd546 // .quad -4657613415954583370 + WORD $0x16c87c34; WORD $0x86fb8971 // .quad -8720225134666286028 + WORD $0x172aace4; WORD $0xef340a98 // .quad -1210330751515841308 + WORD $0xae3d4da0; WORD $0xd45d35e6 // .quad -3144297699952734816 + WORD $0x0e7aac0e; WORD $0x9580869f // .quad -7673985747338482674 + WORD $0x59cca109; WORD $0x89748360 // .quad -8542058143368306423 + WORD $0xd2195712; WORD $0xbae0a846 // .quad -4980796165745715438 + WORD $0x703fc94b; WORD $0x2bd1a438 // .quad 3157485376071780683 + WORD $0x869facd7; WORD $0xe998d258 // .quad -1614309188754756393 + WORD $0x4627ddcf; WORD $0x7b6306a3 // .quad 8890957387685944783 + WORD $0x5423cc06; WORD $0x91ff8377 // .quad -7926472270612804602 + WORD $0x17b1d542; WORD $0x1a3bc84c // .quad 1890324697752655170 + WORD $0x292cbf08; WORD $0xb67f6455 // .quad -5296404319838617848 + WORD $0x1d9e4a93; WORD $0x20caba5f // .quad 2362905872190818963 + WORD $0x7377eeca; WORD $0xe41f3d6a // .quad -2008819381370884406 + WORD $0x7282ee9c; WORD $0x547eb47b // .quad 6088502188546649756 + WORD $0x882af53e; WORD $0x8e938662 // .quad -8173041140997884610 + WORD $0x4f23aa43; WORD $0xe99e619a // .quad -1612744301171463613 + WORD $0x2a35b28d; WORD $0xb23867fb // .quad -5604615407819967859 + WORD $0xe2ec94d4; WORD $0x6405fa00 // .quad 7207441660390446292 + WORD $0xf4c31f31; WORD $0xdec681f9 // .quad -2394083241347571919 + WORD $0x8dd3dd04; WORD $0xde83bc40 // .quad -2412877989897052924 + WORD $0x38f9f37e; WORD $0x8b3c113c // .quad -8413831053483314306 + WORD $0xb148d445; WORD $0x9624ab50 // .quad -7627783505798704059 + WORD $0x4738705e; WORD $0xae0b158b // .quad -5905602798426754978 + WORD $0xdd9b0957; WORD $0x3badd624 // .quad 4300328673033783639 + WORD $0x19068c76; WORD $0xd98ddaee // .quad -2770317479606055818 + WORD $0x0a80e5d6; WORD $0xe54ca5d7 // .quad -1923980597781273130 + WORD $0xcfa417c9; WORD $0x87f8a8d4 // .quad -8648977452394866743 + WORD $0xcd211f4c; WORD $0x5e9fcf4c // .quad 6818396289628184396 + WORD $0x038d1dbc; WORD $0xa9f6d30a // .quad -6199535797066195524 + WORD $0x0069671f; WORD $0x7647c320 // .quad 8522995362035230495 + WORD $0x8470652b; WORD $0xd47487cc // .quad -3137733727905356501 + WORD $0x0041e073; WORD $0x29ecd9f4 // .quad 3021029092058325107 + WORD $0xd2c63f3b; WORD $0x84c8d4df // .quad -8878612607581929669 + WORD $0x00525890; WORD $0xf4681071 // .quad -835399653354481520 + WORD $0xc777cf09; WORD $0xa5fb0a17 // .quad -6486579741050024183 + WORD $0x4066eeb4; WORD $0x7182148d // .quad 8179122470161673908 + WORD $0xb955c2cc; WORD $0xcf79cc9d // .quad -3496538657885142324 + WORD $0x48405530; WORD $0xc6f14cd8 // .quad -4111420493003729616 + WORD $0x93d599bf; WORD $0x81ac1fe2 // .quad -9102865688819295809 + WORD $0x5a506a7c; WORD $0xb8ada00e // .quad -5139275616254662020 + WORD $0x38cb002f; WORD $0xa21727db // .quad -6766896092596731857 + WORD $0xf0e4851c; WORD $0xa6d90811 // .quad -6424094520318327524 + WORD $0x06fdc03b; WORD $0xca9cf1d2 // .quad -3846934097318526917 + WORD $0x6d1da663; WORD $0x908f4a16 // .quad -8030118150397909405 + WORD $0x88bd304a; WORD $0xfd442e46 // .quad -196981603220770742 + WORD $0x043287fe; WORD $0x9a598e4e // .quad -7324666853212387330 + WORD $0x15763e2e; WORD $0x9e4a9cec // .quad -7040642529654063570 + WORD $0x853f29fd; WORD $0x40eff1e1 // .quad 4679224488766679549 + WORD $0x1ad3cdba; WORD $0xc5dd4427 // .quad -4189117143640191558 + WORD $0xe68ef47c; WORD $0xd12bee59 // .quad -3374341425896426372 + WORD $0xe188c128; WORD $0xf7549530 // .quad -624710411122851544 + WORD $0x301958ce; WORD $0x82bb74f8 // .quad -9026492418826348338 + WORD $0x8cf578b9; WORD $0x9a94dd3e // .quad -7307973034592864071 + WORD $0x3c1faf01; WORD $0xe36a5236 // .quad -2059743486678159615 + WORD $0x3032d6e7; WORD $0xc13a148e // .quad -4523280274813692185 + WORD $0xcb279ac1; WORD $0xdc44e6c3 // .quad -2574679358347699519 + WORD $0xbc3f8ca1; WORD $0xf18899b1 // .quad -1042414325089727327 + WORD $0x5ef8c0b9; WORD $0x29ab103a // .quad 3002511419460075705 + WORD $0x15a7b7e5; WORD $0x96f5600f // .quad -7569037980822161435 + WORD $0xf6b6f0e7; WORD $0x7415d448 // .quad 8364825292752482535 + WORD $0xdb11a5de; WORD $0xbcb2b812 // .quad -4849611457600313890 + WORD $0x3464ad21; WORD $0x111b495b // .quad 1232659579085827361 + WORD $0x91d60f56; WORD $0xebdf6617 // .quad -1450328303573004458 + WORD $0x00beec34; WORD $0xcab10dd9 // .quad -3841273781498745804 + WORD $0xbb25c995; WORD $0x936b9fce // .quad -7823984217374209643 + WORD $0x40eea742; WORD $0x3d5d514f // .quad 4421779809981343554 + WORD $0x69ef3bfb; WORD $0xb84687c2 // .quad -5168294253290374149 + WORD $0x112a5112; WORD $0x0cb4a5a3 // .quad 915538744049291538 + WORD $0x046b0afa; WORD $0xe65829b3 // .quad -1848681798185579782 + WORD $0xeaba72ab; WORD $0x47f0e785 // .quad 5183897733458195115 + WORD $0xe2c2e6dc; WORD $0x8ff71a0f // .quad -8072955151507069220 + WORD $0x65690f56; WORD $0x59ed2167 // .quad 6479872166822743894 + WORD $0xdb73a093; WORD $0xb3f4e093 // .quad -5479507920956448621 + WORD $0x3ec3532c; WORD $0x306869c1 // .quad 3488154190101041964 + WORD $0xd25088b8; WORD $0xe0f218b8 // .quad -2237698882768172872 + WORD $0xc73a13fb; WORD $0x1e414218 // .quad 2180096368813151227 + WORD $0x83725573; WORD $0x8c974f73 // .quad -8316090829371189901 + WORD $0xf90898fa; WORD $0xe5d1929e // .quad -1886565557410948870 + WORD $0x644eeacf; WORD $0xafbd2350 // .quad -5783427518286599473 + WORD $0xb74abf39; WORD $0xdf45f746 // .quad -2358206946763686087 + WORD $0x7d62a583; WORD $0xdbac6c24 // .quad -2617598379430861437 + WORD $0x328eb783; WORD $0x6b8bba8c // .quad 7749492695127472003 + WORD $0xce5da772; WORD $0x894bc396 // .quad -8553528014785370254 + WORD $0x3f326564; WORD $0x066ea92f // .quad 463493832054564196 + WORD $0x81f5114f; WORD $0xab9eb47c // .quad -6080224000054324913 + WORD $0x0efefebd; WORD $0xc80a537b // .quad -4032318728359182659 + WORD $0xa27255a2; WORD $0xd686619b // .quad -2988593981640518238 + WORD $0xe95f5f36; WORD $0xbd06742c // .quad -4826042214438183114 + WORD $0x45877585; WORD $0x8613fd01 // .quad -8785400266166405755 + WORD $0x23b73704; WORD $0x2c481138 // .quad 3190819268807046916 + WORD $0x96e952e7; WORD $0xa798fc41 // .quad -6370064314280619289 + WORD $0x2ca504c5; WORD $0xf75a1586 // .quad -623161932418579259 + WORD $0xfca3a7a0; WORD $0xd17f3b51 // .quad -3350894374423386208 + WORD $0xdbe722fb; WORD $0x9a984d73 // .quad -7307005235402693893 + WORD $0x3de648c4; WORD $0x82ef8513 // .quad -9011838011655698236 + WORD $0xd2e0ebba; WORD $0xc13e60d0 // .quad -4522070525825979462 + WORD $0x0d5fdaf5; WORD $0xa3ab6658 // .quad -6653111496142234891 + WORD $0x079926a8; WORD $0x318df905 // .quad 3570783879572301480 + WORD $0x10b7d1b3; WORD $0xcc963fee // .quad -3704703351750405709 + WORD $0x497f7052; WORD $0xfdf17746 // .quad -148206168962011054 + WORD $0x94e5c61f; WORD $0xffbbcfe9 // .quad -19193171260619233 + WORD $0xedefa633; WORD $0xfeb6ea8b // .quad -92628855601256909 + WORD $0xfd0f9bd3; WORD $0x9fd561f1 // .quad -6929524759678968877 + WORD $0xe96b8fc0; WORD $0xfe64a52e // .quad -115786069501571136 + WORD $0x7c5382c8; WORD $0xc7caba6e // .quad -4050219931171323192 + WORD $0xa3c673b0; WORD $0x3dfdce7a // .quad 4466953431550423984 + WORD $0x1b68637b; WORD $0xf9bd690a // .quad -451088895536766085 + WORD $0xa65c084e; WORD $0x06bea10c // .quad 486002885505321038 + WORD $0x51213e2d; WORD $0x9c1661a6 // .quad -7199459587351560659 + WORD $0xcff30a62; WORD $0x486e494f // .quad 5219189625309039202 + WORD $0xe5698db8; WORD $0xc31bfa0f // .quad -4387638465762062920 + WORD $0xc3efccfa; WORD $0x5a89dba3 // .quad 6523987031636299002 + WORD $0xdec3f126; WORD $0xf3e2f893 // .quad -872862063775190746 + WORD $0x5a75e01c; WORD $0xf8962946 // .quad -534194123654701028 + WORD $0x6b3a76b7; WORD $0x986ddb5c // .quad -7463067817500576073 + WORD $0xf1135823; WORD $0xf6bbb397 // .quad -667742654568376285 + WORD $0x86091465; WORD $0xbe895233 // .quad -4717148753448332187 + WORD $0xed582e2c; WORD $0x746aa07d // .quad 8388693718644305452 + WORD $0x678b597f; WORD $0xee2ba6c0 // .quad -1284749923383027329 + WORD $0xb4571cdc; WORD $0xa8c2a44e // .quad -6286281471915778852 + WORD $0x40b717ef; WORD $0x94db4838 // .quad -7720497729755473937 + WORD $0x616ce413; WORD $0x92f34d62 // .quad -7857851839894723565 + WORD $0x50e4ddeb; WORD $0xba121a46 // .quad -5038936143766954517 + WORD $0xf9c81d17; WORD $0x77b020ba // .quad 8624429273841147159 + WORD $0xe51e1566; WORD $0xe896a0d7 // .quad -1686984161281305242 + WORD $0xdc1d122e; WORD $0x0ace1474 // .quad 778582277723329070 + WORD $0xef32cd60; WORD $0x915e2486 // .quad -7971894128441897632 + WORD $0x132456ba; WORD $0x0d819992 // .quad 973227847154161338 + WORD $0xaaff80b8; WORD $0xb5b5ada8 // .quad -5353181642124984136 + WORD $0x97ed6c69; WORD $0x10e1fff6 // .quad 1216534808942701673 + WORD $0xd5bf60e6; WORD $0xe3231912 // .quad -2079791034228842266 + WORD $0x1ef463c1; WORD $0xca8d3ffa // .quad -3851351762838199359 + WORD $0xc5979c8f; WORD $0x8df5efab // .quad -8217398424034108273 + WORD $0xa6b17cb2; WORD $0xbd308ff8 // .quad -4814189703547749198 + WORD $0xb6fd83b3; WORD $0xb1736b96 // .quad -5660062011615247437 + WORD $0xd05ddbde; WORD $0xac7cb3f6 // .quad -6017737129434686498 + WORD $0x64bce4a0; WORD $0xddd0467c // .quad -2463391496091671392 + WORD $0x423aa96b; WORD $0x6bcdf07a // .quad 7768129340171790699 + WORD $0xbef60ee4; WORD $0x8aa22c0d // .quad -8457148712698376476 + WORD $0xd2c953c6; WORD $0x86c16c98 // .quad -8736582398494813242 + WORD $0x2eb3929d; WORD $0xad4ab711 // .quad -5959749872445582691 + WORD $0x077ba8b7; WORD $0xe871c7bf // .quad -1697355961263740745 + WORD $0x7a607744; WORD $0xd89d64d5 // .quad -2838001322129590460 + WORD $0x64ad4972; WORD $0x11471cd7 // .quad 1244995533423855986 + WORD $0x6c7c4a8b; WORD $0x87625f05 // .quad -8691279853972075893 + WORD $0x3dd89bcf; WORD $0xd598e40d // .quad -3055441601647567921 + WORD $0xc79b5d2d; WORD $0xa93af6c6 // .quad -6252413799037706963 + WORD $0x8d4ec2c3; WORD $0x4aff1d10 // .quad 5404070034795315907 + WORD $0x79823479; WORD $0xd389b478 // .quad -3203831230369745799 + WORD $0x585139ba; WORD $0xcedf722a // .quad -3539985255894009414 + WORD $0x4bf160cb; WORD $0x843610cb // .quad -8919923546622172981 + WORD $0xee658828; WORD $0xc2974eb4 // .quad -4424981569867511768 + WORD $0x1eedb8fe; WORD $0xa54394fe // .quad -6538218414850328322 + WORD $0x29feea32; WORD $0x733d2262 // .quad 8303831092947774002 + WORD $0xa6a9273e; WORD $0xce947a3d // .quad -3561087000135522498 + WORD $0x5a3f525f; WORD $0x0806357d // .quad 578208414664970847 + WORD $0x8829b887; WORD $0x811ccc66 // .quad -9143208402725783417 + WORD $0xb0cf26f7; WORD $0xca07c2dc // .quad -3888925500096174345 + WORD $0x2a3426a8; WORD $0xa163ff80 // .quad -6817324484979841368 + WORD $0xdd02f0b5; WORD $0xfc89b393 // .quad -249470856692830027 + WORD $0x34c13052; WORD $0xc9bcff60 // .quad -3909969587797413806 + WORD $0xd443ace2; WORD $0xbbac2078 // .quad -4923524589293425438 + WORD $0x41f17c67; WORD $0xfc2c3f38 // .quad -275775966319379353 + WORD $0x84aa4c0d; WORD $0xd54b944b // .quad -3077202868308390899 + WORD $0x2936edc0; WORD $0x9d9ba783 // .quad -7089889006590693952 + WORD $0x65d4df11; WORD $0x0a9e795e // .quad 765182433041899281 + WORD $0xf384a931; WORD $0xc5029163 // .quad -4250675239810979535 + WORD $0xff4a16d5; WORD $0x4d4617b5 // .quad 5568164059729762005 + WORD $0xf065d37d; WORD $0xf64335bc // .quad -701658031336336515 + WORD $0xbf8e4e45; WORD $0x504bced1 // .quad 5785945546544795205 + WORD $0x163fa42e; WORD $0x99ea0196 // .quad -7356065297226292178 + WORD $0x2f71e1d6; WORD $0xe45ec286 // .quad -1990940103673781802 + WORD $0x9bcf8d39; WORD $0xc06481fb // .quad -4583395603105477319 + WORD $0xbb4e5a4c; WORD $0x5d767327 // .quad 6734696907262548556 + WORD $0x82c37088; WORD $0xf07da27a // .quad -1117558485454458744 + WORD $0xd510f86f; WORD $0x3a6a07f8 // .quad 4209185567039092847 + WORD $0x91ba2655; WORD $0x964e858c // .quad -7616003081050118571 + WORD $0x0a55368b; WORD $0x890489f7 // .quad -8573576096483297653 + WORD $0xb628afea; WORD $0xbbe226ef // .quad -4908317832885260310 + WORD $0xccea842e; WORD $0x2b45ac74 // .quad 3118087934678041646 + WORD $0xa3b2dbe5; WORD $0xeadab0ab // .quad -1523711272679187483 + WORD $0x0012929d; WORD $0x3b0b8bc9 // .quad 4254647968387469981 + WORD $0x464fc96f; WORD $0x92c8ae6b // .quad -7869848573065574033 + WORD $0x40173744; WORD $0x09ce6ebb // .quad 706623942056949572 + WORD $0x17e3bbcb; WORD $0xb77ada06 // .quad -5225624697904579637 + WORD $0x101d0515; WORD $0xcc420a6a // .quad -3728406090856200939 + WORD $0x9ddcaabd; WORD $0xe5599087 // .quad -1920344853953336643 + WORD $0x4a12232d; WORD $0x9fa94682 // .quad -6941939825212513491 + WORD $0xc2a9eab6; WORD $0x8f57fa54 // .quad -8117744561361917258 + WORD $0xdc96abf9; WORD $0x47939822 // .quad 5157633273766521849 + WORD $0xf3546564; WORD $0xb32df8e9 // .quad -5535494683275008668 + WORD $0x93bc56f7; WORD $0x59787e2b // .quad 6447041592208152311 + WORD $0x70297ebd; WORD $0xdff97724 // .quad -2307682335666372931 + WORD $0x3c55b65a; WORD $0x57eb4edb // .quad 6335244004343789146 + WORD $0xc619ef36; WORD $0x8bfbea76 // .quad -8359830487432564938 + WORD $0x0b6b23f1; WORD $0xede62292 // .quad -1304317031425039375 + WORD $0x77a06b03; WORD $0xaefae514 // .quad -5838102090863318269 + WORD $0x8e45eced; WORD $0xe95fab36 // .quad -1630396289281299219 + WORD $0x958885c4; WORD $0xdab99e59 // .quad -2685941595151759932 + WORD $0x18ebb414; WORD $0x11dbcb02 // .quad 1286845328412881940 + WORD $0xfd75539b; WORD $0x88b402f7 // .quad -8596242524610931813 + WORD $0x9f26a119; WORD $0xd652bdc2 // .quad -3003129357911285479 + WORD $0xfcd2a881; WORD $0xaae103b5 // .quad -6133617137336276863 + WORD $0x46f0495f; WORD $0x4be76d33 // .quad 5469460339465668959 + WORD $0x7c0752a2; WORD $0xd59944a3 // .quad -3055335403242958174 + WORD $0x0c562ddb; WORD $0x6f70a440 // .quad 8030098730593431003 + WORD $0x2d8493a5; WORD $0x857fcae6 // .quad -8827113654667930715 + WORD $0x0f6bb952; WORD $0xcb4ccd50 // .quad -3797434642040374958 + WORD $0xb8e5b88e; WORD $0xa6dfbd9f // .quad -6422206049907525490 + WORD $0x1346a7a7; WORD $0x7e2000a4 // .quad 9088264752731695015 + WORD $0xa71f26b2; WORD $0xd097ad07 // .quad -3416071543957018958 + WORD $0x8c0c28c8; WORD $0x8ed40066 // .quad -8154892584824854328 + WORD $0xc873782f; WORD $0x825ecc24 // .quad -9052573742614218705 + WORD $0x2f0f32fa; WORD $0x72890080 // .quad 8253128342678483706 + WORD $0xfa90563b; WORD $0xa2f67f2d // .quad -6704031159840385477 + WORD $0x3ad2ffb9; WORD $0x4f2b40a0 // .quad 5704724409920716729 + WORD $0x79346bca; WORD $0xcbb41ef9 // .quad -3768352931373093942 + WORD $0x4987bfa8; WORD $0xe2f610c8 // .quad -2092466524453879896 + WORD $0xd78186bc; WORD $0xfea126b7 // .quad -98755145788979524 + WORD $0x2df4d7c9; WORD $0x0dd9ca7d // .quad 998051431430019017 + WORD $0xe6b0f436; WORD $0x9f24b832 // .quad -6979250993759194058 + WORD $0x79720dbb; WORD $0x91503d1c // .quad -7975807747567252037 + WORD $0xa05d3143; WORD $0xc6ede63f // .quad -4112377723771604669 + WORD $0x97ce912a; WORD $0x75a44c63 // .quad 8476984389250486570 + WORD $0x88747d94; WORD $0xf8a95fcf // .quad -528786136287117932 + WORD $0x3ee11aba; WORD $0xc986afbe // .quad -3925256793573221702 + WORD $0xb548ce7c; WORD $0x9b69dbe1 // .quad -7248020362820530564 + WORD $0xce996168; WORD $0xfbe85bad // .quad -294884973539139224 + WORD $0x229b021b; WORD $0xc24452da // .quad -4448339435098275301 + WORD $0x423fb9c3; WORD $0xfae27299 // .quad -368606216923924029 + WORD $0xab41c2a2; WORD $0xf2d56790 // .quad -948738275445456222 + WORD $0xc967d41a; WORD $0xdccd879f // .quad -2536221894791146470 + WORD $0x6b0919a5; WORD $0x97c560ba // .quad -7510490449794491995 + WORD $0xbbc1c920; WORD $0x5400e987 // .quad 6053094668365842720 + WORD $0x05cb600f; WORD $0xbdb6b8e9 // .quad -4776427043815727089 + WORD $0xaab23b68; WORD $0x290123e9 // .quad 2954682317029915496 + WORD $0x473e3813; WORD $0xed246723 // .quad -1358847786342270957 + WORD $0x0aaf6521; WORD $0xf9a0b672 // .quad -459166561069996767 + WORD $0x0c86e30b; WORD $0x9436c076 // .quad -7766808894105001205 + WORD $0x8d5b3e69; WORD $0xf808e40e // .quad -573958201337495959 + WORD $0x8fa89bce; WORD $0xb9447093 // .quad -5096825099203863602 + WORD $0x30b20e04; WORD $0xb60b1d12 // .quad -5329133770099257852 + WORD $0x7392c2c2; WORD $0xe7958cb8 // .quad -1759345355577441598 + WORD $0x5e6f48c2; WORD $0xb1c6f22b // .quad -5636551615525730110 + WORD $0x483bb9b9; WORD $0x90bd77f3 // .quad -8017119874876982855 + WORD $0x360b1af3; WORD $0x1e38aeb6 // .quad 2177682517447613171 + WORD $0x1a4aa828; WORD $0xb4ecd5f0 // .quad -5409713825168840664 + WORD $0xc38de1b0; WORD $0x25c6da63 // .quad 2722103146809516464 + WORD $0x20dd5232; WORD $0xe2280b6c // .quad -2150456263033662926 + WORD $0x5a38ad0e; WORD $0x579c487e // .quad 6313000485183335694 + WORD $0x948a535f; WORD $0x8d590723 // .quad -8261564192037121185 + WORD $0xf0c6d851; WORD $0x2d835a9d // .quad 3279564588051781713 + WORD $0x79ace837; WORD $0xb0af48ec // .quad -5715269221619013577 + WORD $0x6cf88e65; WORD $0xf8e43145 // .quad -512230283362660763 + WORD $0x98182244; WORD $0xdcdb1b27 // .quad -2532400508596379068 + WORD $0x641b58ff; WORD $0x1b8e9ecb // .quad 1985699082112030975 + WORD $0xbf0f156b; WORD $0x8a08f0f8 // .quad -8500279345513818773 + WORD $0x3d222f3f; WORD $0xe272467e // .quad -2129562165787349185 + WORD $0xeed2dac5; WORD $0xac8b2d36 // .quad -6013663163464885563 + WORD $0xcc6abb0f; WORD $0x5b0ed81d // .quad 6561419329620589327 + WORD $0xaa879177; WORD $0xd7adf884 // .quad -2905392935903719049 + WORD $0x9fc2b4e9; WORD $0x98e94712 // .quad -7428327965055601431 + WORD $0xea94baea; WORD $0x86ccbb52 // .quad -8733399612580906262 + WORD $0x47b36224; WORD $0x3f2398d7 // .quad 4549648098962661924 + WORD $0xa539e9a5; WORD $0xa87fea27 // .quad -6305063497298744923 + WORD $0x19a03aad; WORD $0x8eec7f0d // .quad -8147997931578836307 + WORD $0x8e88640e; WORD $0xd29fe4b1 // .quad -3269643353196043250 + WORD $0x300424ac; WORD $0x1953cf68 // .quad 1825030320404309164 + WORD $0xf9153e89; WORD $0x83a3eeee // .quad -8961056123388608887 + WORD $0x3c052dd7; WORD $0x5fa8c342 // .quad 6892973918932774359 + WORD $0xb75a8e2b; WORD $0xa48ceaaa // .quad -6589634135808373205 + WORD $0xcb06794d; WORD $0x3792f412 // .quad 4004531380238580045 + WORD $0x653131b6; WORD $0xcdb02555 // .quad -3625356651333078602 + WORD $0xbee40bd0; WORD $0xe2bbd88b // .quad -2108853905778275376 + WORD $0x5f3ebf11; WORD $0x808e1755 // .quad -9183376934724255983 + WORD $0xae9d0ec4; WORD $0x5b6aceae // .quad 6587304654631931588 + WORD $0xb70e6ed6; WORD $0xa0b19d2a // .quad -6867535149977932074 + WORD $0x5a445275; WORD $0xf245825a // .quad -989241218564861323 + WORD $0x64d20a8b; WORD $0xc8de0475 // .quad -3972732919045027189 + WORD $0xf0d56712; WORD $0xeed6e2f0 // .quad -1236551523206076654 + WORD $0xbe068d2e; WORD $0xfb158592 // .quad -354230130378896082 + WORD $0x9685606b; WORD $0x55464dd6 // .quad 6144684325637283947 + WORD $0xb6c4183d; WORD $0x9ced737b // .quad -7138922859127891907 + WORD $0x3c26b886; WORD $0xaa97e14c // .quad -6154202648235558778 + WORD $0xa4751e4c; WORD $0xc428d05a // .quad -4311967555482476980 + WORD $0x4b3066a8; WORD $0xd53dd99f // .quad -3081067291867060568 + WORD $0x4d9265df; WORD $0xf5330471 // .quad -778273425925708321 + WORD $0x8efe4029; WORD $0xe546a803 // .quad -1925667057416912855 + WORD $0xd07b7fab; WORD $0x993fe2c6 // .quad -7403949918844649557 + WORD $0x72bdd033; WORD $0xde985204 // .quad -2407083821771141069 + WORD $0x849a5f96; WORD $0xbf8fdb78 // .quad -4643251380128424042 + WORD $0x8f6d4440; WORD $0x963e6685 // .quad -7620540795641314240 + WORD $0xa5c0f77c; WORD $0xef73d256 // .quad -1192378206733142148 + WORD $0x79a44aa8; WORD $0xdde70013 // .quad -2456994988062127448 + WORD $0x27989aad; WORD $0x95a86376 // .quad -7662765406849295699 + WORD $0x580d5d52; WORD $0x5560c018 // .quad 6152128301777116498 + WORD $0xb17ec159; WORD $0xbb127c53 // .quad -4966770740134231719 + WORD $0x6e10b4a6; WORD $0xaab8f01e // .quad -6144897678060768090 + WORD $0x9dde71af; WORD $0xe9d71b68 // .quad -1596777406740401745 + WORD $0x04ca70e8; WORD $0xcab39613 // .quad -3840561048787980056 + WORD $0x62ab070d; WORD $0x92267121 // .quad -7915514906853832947 + WORD $0xc5fd0d22; WORD $0x3d607b97 // .quad 4422670725869800738 + WORD $0xbb55c8d1; WORD $0xb6b00d69 // .quad -5282707615139903279 + WORD $0xb77c506a; WORD $0x8cb89a7d // .quad -8306719647944912790 + WORD $0x2a2b3b05; WORD $0xe45c10c4 // .quad -1991698500497491195 + WORD $0x92adb242; WORD $0x77f3608e // .quad 8643358275316593218 + WORD $0x9a5b04e3; WORD $0x8eb98a7a // .quad -8162340590452013853 + WORD $0x37591ed3; WORD $0x55f038b2 // .quad 6192511825718353619 + WORD $0x40f1c61c; WORD $0xb267ed19 // .quad -5591239719637629412 + WORD $0xc52f6688; WORD $0x6b6c46de // .quad 7740639782147942024 + WORD $0x912e37a3; WORD $0xdf01e85f // .quad -2377363631119648861 + WORD $0x3b3da015; WORD $0x2323ac4b // .quad 2532056854628769813 + WORD $0xbabce2c6; WORD $0x8b61313b // .quad -8403381297090862394 + WORD $0x0a0d081a; WORD $0xabec975e // .quad -6058300968568813542 + WORD $0xa96c1b77; WORD $0xae397d8a // .quad -5892540602936190089 + WORD $0x8c904a21; WORD $0x96e7bd35 // .quad -7572876210711016927 + WORD $0x53c72255; WORD $0xd9c7dced // .quad -2753989735242849707 + WORD $0x77da2e54; WORD $0x7e50d641 // .quad 9102010423587778132 + WORD $0x545c7575; WORD $0x881cea14 // .quad -8638772612167862923 + WORD $0xd5d0b9e9; WORD $0xdde50bd1 // .quad -2457545025797441047 + WORD $0x697392d2; WORD $0xaa242499 // .quad -6186779746782440750 + WORD $0x4b44e864; WORD $0x955e4ec6 // .quad -7683617300674189212 + WORD $0xc3d07787; WORD $0xd4ad2dbf // .quad -3121788665050663033 + WORD $0xef0b113e; WORD $0xbd5af13b // .quad -4802260812921368258 + WORD $0xda624ab4; WORD $0x84ec3c97 // .quad -8868646943297746252 + WORD $0xeacdd58e; WORD $0xecb1ad8a // .quad -1391139997724322418 + WORD $0xd0fadd61; WORD $0xa6274bbd // .quad -6474122660694794911 + WORD $0xa5814af2; WORD $0x67de18ed // .quad 7484447039699372786 + WORD $0x453994ba; WORD $0xcfb11ead // .quad -3480967307441105734 + WORD $0x8770ced7; WORD $0x80eacf94 // .quad -9157278655470055721 + WORD $0x4b43fcf4; WORD $0x81ceb32c // .quad -9093133594791772940 + WORD $0xa94d028d; WORD $0xa1258379 // .quad -6834912300910181747 + WORD $0x5e14fc31; WORD $0xa2425ff7 // .quad -6754730975062328271 + WORD $0x13a04330; WORD $0x096ee458 // .quad 679731660717048624 + WORD $0x359a3b3e; WORD $0xcad2f7f5 // .quad -3831727700400522434 + WORD $0x188853fc; WORD $0x8bca9d6e // .quad -8373707460958465028 + WORD $0x8300ca0d; WORD $0xfd87b5f2 // .quad -177973607073265139 + WORD $0xcf55347d; WORD $0x775ea264 // .quad 8601490892183123069 + WORD $0x91e07e48; WORD $0x9e74d1b7 // .quad -7028762532061872568 + WORD $0x032a819d; WORD $0x95364afe // .quad -7694880458480647779 + WORD $0x76589dda; WORD $0xc6120625 // .quad -4174267146649952806 + WORD $0x83f52204; WORD $0x3a83ddbd // .quad 4216457482181353988 + WORD $0xd3eec551; WORD $0xf79687ae // .quad -606147914885053103 + WORD $0x72793542; WORD $0xc4926a96 // .quad -4282243101277735614 + WORD $0x44753b52; WORD $0x9abe14cd // .quad -7296371474444240046 + WORD $0x0f178293; WORD $0x75b7053c // .quad 8482254178684994195 + WORD $0x95928a27; WORD $0xc16d9a00 // .quad -4508778324627912153 + WORD $0x12dd6338; WORD $0x5324c68b // .quad 5991131704928854840 + WORD $0xbaf72cb1; WORD $0xf1c90080 // .quad -1024286887357502287 + WORD $0xebca5e03; WORD $0xd3f6fc16 // .quad -3173071712060547581 + WORD $0x74da7bee; WORD $0x971da050 // .quad -7557708332239520786 + WORD $0xa6bcf584; WORD $0x88f4bb1c // .quad -8578025658503072380 + WORD $0x92111aea; WORD $0xbce50864 // .quad -4835449396872013078 + WORD $0xd06c32e5; WORD $0x2b31e9e3 // .quad 3112525982153323237 + WORD $0xb69561a5; WORD $0xec1e4a7d // .quad -1432625727662628443 + WORD $0x62439fcf; WORD $0x3aff322e // .quad 4251171748059520975 + WORD $0x921d5d07; WORD $0x9392ee8e // .quad -7812920107430224633 + WORD $0xfad487c2; WORD $0x09befeb9 // .quad 702278666647013314 + WORD $0x36a4b449; WORD $0xb877aa32 // .quad -5154464115860392887 + WORD $0x7989a9b3; WORD $0x4c2ebe68 // .quad 5489534351736154547 + WORD $0xc44de15b; WORD $0xe69594be // .quad -1831394126398103205 + WORD $0x4bf60a10; WORD $0x0f9d3701 // .quad 1125115960621402640 + WORD $0x3ab0acd9; WORD $0x901d7cf7 // .quad -8062150356639896359 + WORD $0x9ef38c94; WORD $0x538484c1 // .quad 6018080969204141204 + WORD $0x095cd80f; WORD $0xb424dc35 // .quad -5466001927372482545 + WORD $0x06b06fb9; WORD $0x2865a5f2 // .quad 2910915193077788601 + WORD $0x4bb40e13; WORD $0xe12e1342 // .quad -2220816390788215277 + WORD $0x442e45d3; WORD $0xf93f87b7 // .quad -486521013540076077 + WORD $0x6f5088cb; WORD $0x8cbccc09 // .quad -8305539271883716405 + WORD $0x1539d748; WORD $0xf78f69a5 // .quad -608151266925095096 + WORD $0xcb24aafe; WORD $0xafebff0b // .quad -5770238071427257602 + WORD $0x5a884d1b; WORD $0xb573440e // .quad -5371875102083756773 + WORD $0xbdedd5be; WORD $0xdbe6fece // .quad -2601111570856684098 + WORD $0xf8953030; WORD $0x31680a88 // .quad 3560107088838733872 + WORD $0x36b4a597; WORD $0x89705f41 // .quad -8543223759426509417 + WORD $0x36ba7c3d; WORD $0xfdc20d2b // .quad -161552157378970563 + WORD $0x8461cefc; WORD $0xabcc7711 // .quad -6067343680855748868 + WORD $0x04691b4c; WORD $0x3d329076 // .quad 4409745821703674700 + WORD $0xe57a42bc; WORD $0xd6bf94d5 // .quad -2972493582642298180 + WORD $0xc2c1b10f; WORD $0xa63f9a49 // .quad -6467280898289979121 + WORD $0xaf6c69b5; WORD $0x8637bd05 // .quad -8775337516792518219 + WORD $0x33721d53; WORD $0x0fcf80dc // .quad 1139270913992301907 + WORD $0x1b478423; WORD $0xa7c5ac47 // .quad -6357485877563259869 + WORD $0x404ea4a8; WORD $0xd3c36113 // .quad -3187597375937010520 + WORD $0xe219652b; WORD $0xd1b71758 // .quad -3335171328526686933 + WORD $0x083126e9; WORD $0x645a1cac // .quad 7231123676894144233 + WORD $0x8d4fdf3b; WORD $0x83126e97 // .quad -9002011107970261189 + WORD $0x0a3d70a3; WORD $0x3d70a3d7 // .quad 4427218577690292387 + WORD $0x70a3d70a; WORD $0xa3d70a3d // .quad -6640827866535438582 + WORD $0xcccccccc // .space 4, '\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc' + WORD $0xcccccccc // .space 4, '\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc' + WORD $0xcccccccc // .space 4, '\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc' + WORD $0xcccccccc // .space 4, '\xcc\xcc\xcc\xcc' + WORD $0x00000000; WORD $0x00000000 // .quad 0 + WORD $0x00000000; WORD $0x80000000 // .quad -9223372036854775808 + WORD $0x00000000; WORD $0x00000000 // .quad 0 + WORD $0x00000000; WORD $0xa0000000 // .quad -6917529027641081856 + WORD $0x00000000; WORD $0x00000000 // .quad 0 + WORD $0x00000000; WORD $0xc8000000 // .quad -4035225266123964416 + WORD $0x00000000; WORD $0x00000000 // .quad 0 + WORD $0x00000000; WORD $0xfa000000 // .quad -432345564227567616 + WORD $0x00000000; WORD $0x00000000 // .quad 0 + WORD $0x00000000; WORD $0x9c400000 // .quad -7187745005283311616 + WORD $0x00000000; WORD $0x00000000 // .quad 0 + WORD $0x00000000; WORD $0xc3500000 // .quad -4372995238176751616 + WORD $0x00000000; WORD $0x00000000 // .quad 0 + WORD $0x00000000; WORD $0xf4240000 // .quad -854558029293551616 + WORD $0x00000000; WORD $0x00000000 // .quad 0 + WORD $0x00000000; WORD $0x98968000 // .quad -7451627795949551616 + WORD $0x00000000; WORD $0x00000000 // .quad 0 + WORD $0x00000000; WORD $0xbebc2000 // .quad -4702848726509551616 + WORD $0x00000000; WORD $0x00000000 // .quad 0 + WORD $0x00000000; WORD $0xee6b2800 // .quad -1266874889709551616 + WORD $0x00000000; WORD $0x00000000 // .quad 0 + WORD $0x00000000; WORD $0x9502f900 // .quad -7709325833709551616 + WORD $0x00000000; WORD $0x00000000 // .quad 0 + WORD $0x00000000; WORD $0xba43b740 // .quad -5024971273709551616 + WORD $0x00000000; WORD $0x00000000 // .quad 0 + WORD $0x00000000; WORD $0xe8d4a510 // .quad -1669528073709551616 + WORD $0x00000000; WORD $0x00000000 // .quad 0 + WORD $0x00000000; WORD $0x9184e72a // .quad -7960984073709551616 + WORD $0x00000000; WORD $0x00000000 // .quad 0 + WORD $0x80000000; WORD $0xb5e620f4 // .quad -5339544073709551616 + WORD $0x00000000; WORD $0x00000000 // .quad 0 + WORD $0xa0000000; WORD $0xe35fa931 // .quad -2062744073709551616 + WORD $0x00000000; WORD $0x00000000 // .quad 0 + WORD $0x04000000; WORD $0x8e1bc9bf // .quad -8206744073709551616 + WORD $0x00000000; WORD $0x00000000 // .quad 0 + WORD $0xc5000000; WORD $0xb1a2bc2e // .quad -5646744073709551616 + WORD $0x00000000; WORD $0x00000000 // .quad 0 + WORD $0x76400000; WORD $0xde0b6b3a // .quad -2446744073709551616 + WORD $0x00000000; WORD $0x00000000 // .quad 0 + WORD $0x89e80000; WORD $0x8ac72304 // .quad -8446744073709551616 + WORD $0x00000000; WORD $0x00000000 // .quad 0 + WORD $0xac620000; WORD $0xad78ebc5 // .quad -5946744073709551616 + WORD $0x00000000; WORD $0x00000000 // .quad 0 + WORD $0x177a8000; WORD $0xd8d726b7 // .quad -2821744073709551616 + WORD $0x00000000; WORD $0x00000000 // .quad 0 + WORD $0x6eac9000; WORD $0x87867832 // .quad -8681119073709551616 + WORD $0x00000000; WORD $0x00000000 // .quad 0 + WORD $0x0a57b400; WORD $0xa968163f // .quad -6239712823709551616 + WORD $0x00000000; WORD $0x00000000 // .quad 0 + WORD $0xcceda100; WORD $0xd3c21bce // .quad -3187955011209551616 + WORD $0x00000000; WORD $0x00000000 // .quad 0 + WORD $0x401484a0; WORD $0x84595161 // .quad -8910000909647051616 + WORD $0x00000000; WORD $0x00000000 // .quad 0 + WORD $0x9019a5c8; WORD $0xa56fa5b9 // .quad -6525815118631426616 + WORD $0x00000000; WORD $0x00000000 // .quad 0 + WORD $0xf4200f3a; WORD $0xcecb8f27 // .quad -3545582879861895366 + WORD $0x00000000; WORD $0x40000000 // .quad 4611686018427387904 + WORD $0xf8940984; WORD $0x813f3978 // .quad -9133518327554766460 + WORD $0x00000000; WORD $0x50000000 // .quad 5764607523034234880 + WORD $0x36b90be5; WORD $0xa18f07d7 // .quad -6805211891016070171 + WORD $0x00000000; WORD $0xa4000000 // .quad -6629298651489370112 + WORD $0x04674ede; WORD $0xc9f2c9cd // .quad -3894828845342699810 + WORD $0x00000000; WORD $0x4d000000 // .quad 5548434740920451072 + WORD $0x45812296; WORD $0xfc6f7c40 // .quad -256850038250986858 + WORD $0x00000000; WORD $0xf0200000 // .quad -1143914305352105984 + WORD $0x2b70b59d; WORD $0x9dc5ada8 // .quad -7078060301547948643 + WORD $0x00000000; WORD $0x6c280000 // .quad 7793479155164643328 + WORD $0x364ce305; WORD $0xc5371912 // .quad -4235889358507547899 + WORD $0x00000000; WORD $0xc7320000 // .quad -4093209111326359552 + WORD $0xc3e01bc6; WORD $0xf684df56 // .quad -683175679707046970 + WORD $0x00000000; WORD $0x3c7f4000 // .quad 4359273333062107136 + WORD $0x3a6c115c; WORD $0x9a130b96 // .quad -7344513827457986212 + WORD $0x00000000; WORD $0x4b9f1000 // .quad 5449091666327633920 + WORD $0xc90715b3; WORD $0xc097ce7b // .quad -4568956265895094861 + WORD $0x00000000; WORD $0x1e86d400 // .quad 2199678564482154496 + WORD $0xbb48db20; WORD $0xf0bdc21a // .quad -1099509313941480672 + WORD $0x00000000; WORD $0x13144480 // .quad 1374799102801346560 + WORD $0xb50d88f4; WORD $0x96769950 // .quad -7604722348854507276 + WORD $0x00000000; WORD $0x17d955a0 // .quad 1718498878501683200 + WORD $0xe250eb31; WORD $0xbc143fa4 // .quad -4894216917640746191 + WORD $0x00000000; WORD $0x5dcfab08 // .quad 6759809616554491904 + WORD $0x1ae525fd; WORD $0xeb194f8e // .quad -1506085128623544835 + WORD $0x00000000; WORD $0x5aa1cae5 // .quad 6530724019560251392 + WORD $0xd0cf37be; WORD $0x92efd1b8 // .quad -7858832233030797378 + WORD $0x40000000; WORD $0xf14a3d9e // .quad -1059967012404461568 + WORD $0x050305ad; WORD $0xb7abc627 // .quad -5211854272861108819 + WORD $0xd0000000; WORD $0x6d9ccd05 // .quad 7898413271349198848 + WORD $0xc643c719; WORD $0xe596b7b0 // .quad -1903131822648998119 + WORD $0xa2000000; WORD $0xe4820023 // .quad -1981020733047832576 + WORD $0x7bea5c6f; WORD $0x8f7e32ce // .quad -8106986416796705681 + WORD $0x8a800000; WORD $0xdda2802c // .quad -2476275916309790720 + WORD $0x1ae4f38b; WORD $0xb35dbf82 // .quad -5522047002568494197 + WORD $0xad200000; WORD $0xd50b2037 // .quad -3095344895387238400 + WORD $0xa19e306e; WORD $0xe0352f62 // .quad -2290872734783229842 + WORD $0xcc340000; WORD $0x4526f422 // .quad 4982938468024057856 + WORD $0xa502de45; WORD $0x8c213d9d // .quad -8349324486880600507 + WORD $0x7f410000; WORD $0x9670b12b // .quad -7606384970252091392 + WORD $0x0e4395d6; WORD $0xaf298d05 // .quad -5824969590173362730 + WORD $0x5f114000; WORD $0x3c0cdd76 // .quad 4327076842467049472 + WORD $0x51d47b4c; WORD $0xdaf3f046 // .quad -2669525969289315508 + WORD $0xfb6ac800; WORD $0xa5880a69 // .quad -6518949010312869888 + WORD $0xf324cd0f; WORD $0x88d8762b // .quad -8585982758446904049 + WORD $0x7a457a00; WORD $0x8eea0d04 // .quad -8148686262891087360 + WORD $0xefee0053; WORD $0xab0e93b6 // .quad -6120792429631242157 + WORD $0x98d6d880; WORD $0x72a49045 // .quad 8260886245095692416 + WORD $0xabe98068; WORD $0xd5d238a4 // .quad -3039304518611664792 + WORD $0x7f864750; WORD $0x47a6da2b // .quad 5163053903184807760 + WORD $0xeb71f041; WORD $0x85a36366 // .quad -8817094351773372351 + WORD $0x5f67d924; WORD $0x999090b6 // .quad -7381240676301154012 + WORD $0xa64e6c51; WORD $0xa70c3c40 // .quad -6409681921289327535 + WORD $0xf741cf6d; WORD $0xfff4b4e3 // .quad -3178808521666707 + WORD $0xcfe20765; WORD $0xd0cf4b50 // .quad -3400416383184271515 + WORD $0x7a8921a4; WORD $0xbff8f10e // .quad -4613672773753429596 + WORD $0x81ed449f; WORD $0x82818f12 // .quad -9042789267131251553 + WORD $0x192b6a0d; WORD $0xaff72d52 // .quad -5767090967191786995 + WORD $0x226895c7; WORD $0xa321f2d7 // .quad -6691800565486676537 + WORD $0x9f764490; WORD $0x9bf4f8a6 // .quad -7208863708989733744 + WORD $0xeb02bb39; WORD $0xcbea6f8c // .quad -3753064688430957767 + WORD $0x4753d5b4; WORD $0x02f236d0 // .quad 212292400617608628 + WORD $0x25c36a08; WORD $0xfee50b70 // .quad -79644842111309304 + WORD $0x2c946590; WORD $0x01d76242 // .quad 132682750386005392 + WORD $0x179a2245; WORD $0x9f4f2726 // .quad -6967307053960650171 + WORD $0xb7b97ef5; WORD $0x424d3ad2 // .quad 4777539456409894645 + WORD $0x9d80aad6; WORD $0xc722f0ef // .quad -4097447799023424810 + WORD $0x65a7deb2; WORD $0xd2e08987 // .quad -3251447716342407502 + WORD $0x84e0d58b; WORD $0xf8ebad2b // .quad -510123730351893109 + WORD $0x9f88eb2f; WORD $0x63cc55f4 // .quad 7191217214140771119 + WORD $0x330c8577; WORD $0x9b934c3b // .quad -7236356359111015049 + WORD $0xc76b25fb; WORD $0x3cbf6b71 // .quad 4377335499248575995 + WORD $0xffcfa6d5; WORD $0xc2781f49 // .quad -4433759430461380907 + WORD $0x3945ef7a; WORD $0x8bef464e // .quad -8363388681221443718 + WORD $0x7fc3908a; WORD $0xf316271c // .quad -930513269649338230 + WORD $0xe3cbb5ac; WORD $0x97758bf0 // .quad -7532960934977096276 + WORD $0xcfda3a56; WORD $0x97edd871 // .quad -7499099821171918250 + WORD $0x1cbea317; WORD $0x3d52eeed // .quad 4418856886560793367 + WORD $0x43d0c8ec; WORD $0xbde94e8e // .quad -4762188758037509908 + WORD $0x63ee4bdd; WORD $0x4ca7aaa8 // .quad 5523571108200991709 + WORD $0xd4c4fb27; WORD $0xed63a231 // .quad -1341049929119499481 + WORD $0x3e74ef6a; WORD $0x8fe8caa9 // .quad -8076983103442849942 + WORD $0x24fb1cf8; WORD $0x945e455f // .quad -7755685233340769032 + WORD $0x8e122b44; WORD $0xb3e2fd53 // .quad -5484542860876174524 + WORD $0xee39e436; WORD $0xb975d6b6 // .quad -5082920523248573386 + WORD $0x7196b616; WORD $0x60dbbca8 // .quad 6979379479186945558 + WORD $0xa9c85d44; WORD $0xe7d34c64 // .quad -1741964635633328828 + WORD $0x46fe31cd; WORD $0xbc8955e9 // .quad -4861259862362934835 + WORD $0xea1d3a4a; WORD $0x90e40fbe // .quad -8006256924911912374 + WORD $0x98bdbe41; WORD $0x6babab63 // .quad 7758483227328495169 + WORD $0xa4a488dd; WORD $0xb51d13ae // .quad -5396135137712502563 + WORD $0x7eed2dd1; WORD $0xc696963c // .quad -4136954021121544751 + WORD $0x4dcdab14; WORD $0xe264589a // .quad -2133482903713240300 + WORD $0xcf543ca2; WORD $0xfc1e1de5 // .quad -279753253987271518 + WORD $0x70a08aec; WORD $0x8d7eb760 // .quad -8250955842461857044 + WORD $0x43294bcb; WORD $0x3b25a55f // .quad 4261994450943298507 + WORD $0x8cc8ada8; WORD $0xb0de6538 // .quad -5702008784649933400 + WORD $0x13f39ebe; WORD $0x49ef0eb7 // .quad 5327493063679123134 + WORD $0xaffad912; WORD $0xdd15fe86 // .quad -2515824962385028846 + WORD $0x6c784337; WORD $0x6e356932 // .quad 7941369183226839863 + WORD $0x2dfcc7ab; WORD $0x8a2dbf14 // .quad -8489919629131724885 + WORD $0x07965404; WORD $0x49c2c37f // .quad 5315025460606161924 + WORD $0x397bf996; WORD $0xacb92ed9 // .quad -6000713517987268202 + WORD $0xc97be906; WORD $0xdc33745e // .quad -2579590211097073402 + WORD $0x87daf7fb; WORD $0xd7e77a8f // .quad -2889205879056697349 + WORD $0x3ded71a3; WORD $0x69a028bb // .quad 7611128154919104931 + WORD $0xb4e8dafd; WORD $0x86f0ac99 // .quad -8723282702051517699 + WORD $0x0d68ce0c; WORD $0xc40832ea // .quad -4321147861633282548 + WORD $0x222311bc; WORD $0xa8acd7c0 // .quad -6292417359137009220 + WORD $0x90c30190; WORD $0xf50a3fa4 // .quad -789748808614215280 + WORD $0x2aabd62b; WORD $0xd2d80db0 // .quad -3253835680493873621 + WORD $0xda79e0fa; WORD $0x792667c6 // .quad 8729779031470891258 + WORD $0x1aab65db; WORD $0x83c7088e // .quad -8951176327949752869 + WORD $0x91185938; WORD $0x577001b8 // .quad 6300537770911226168 + WORD $0xa1563f52; WORD $0xa4b8cab1 // .quad -6577284391509803182 + WORD $0xb55e6f86; WORD $0xed4c0226 // .quad -1347699823215743098 + WORD $0x09abcf26; WORD $0xcde6fd5e // .quad -3609919470959866074 + WORD $0x315b05b4; WORD $0x544f8158 // .quad 6075216638131242420 + WORD $0xc60b6178; WORD $0x80b05e5a // .quad -9173728696990998152 + WORD $0x3db1c721; WORD $0x696361ae // .quad 7594020797664053025 + WORD $0x778e39d6; WORD $0xa0dc75f1 // .quad -6855474852811359786 + WORD $0xcd1e38e9; WORD $0x03bc3a19 // .quad 269153960225290473 + WORD $0xd571c84c; WORD $0xc913936d // .quad -3957657547586811828 + WORD $0x4065c723; WORD $0x04ab48a0 // .quad 336442450281613091 + WORD $0x4ace3a5f; WORD $0xfb587849 // .quad -335385916056126881 + WORD $0x283f9c76; WORD $0x62eb0d64 // .quad 7127805559067090038 + WORD $0xcec0e47b; WORD $0x9d174b2d // .quad -7127145225176161157 + WORD $0x324f8394; WORD $0x3ba5d0bd // .quad 4298070930406474644 + WORD $0x42711d9a; WORD $0xc45d1df9 // .quad -4297245513042813542 + WORD $0x7ee36479; WORD $0xca8f44ec // .quad -3850783373846682503 + WORD $0x930d6500; WORD $0xf5746577 // .quad -759870872876129024 + WORD $0xcf4e1ecb; WORD $0x7e998b13 // .quad 9122475437414293195 + WORD $0xbbe85f20; WORD $0x9968bf6a // .quad -7392448323188662496 + WORD $0xc321a67e; WORD $0x9e3fedd8 // .quad -7043649776941685122 + WORD $0x6ae276e8; WORD $0xbfc2ef45 // .quad -4628874385558440216 + WORD $0xf3ea101e; WORD $0xc5cfe94e // .quad -4192876202749718498 + WORD $0xc59b14a2; WORD $0xefb3ab16 // .quad -1174406963520662366 + WORD $0x58724a12; WORD $0xbba1f1d1 // .quad -4926390635932268014 + WORD $0x3b80ece5; WORD $0x95d04aee // .quad -7651533379841495835 + WORD $0xae8edc97; WORD $0x2a8a6e45 // .quad 3065383741939440791 + WORD $0xca61281f; WORD $0xbb445da9 // .quad -4952730706374481889 + WORD $0x1a3293bd; WORD $0xf52d09d7 // .quad -779956341003086915 + WORD $0x3cf97226; WORD $0xea157514 // .quad -1579227364540714458 + WORD $0x705f9c56; WORD $0x593c2626 // .quad 6430056314514152534 + WORD $0xa61be758; WORD $0x924d692c // .quad -7904546130479028392 + WORD $0x0c77836c; WORD $0x6f8b2fb0 // .quad 8037570393142690668 + WORD $0xcfa2e12e; WORD $0xb6e0c377 // .quad -5268996644671397586 + WORD $0x0f956447; WORD $0x0b6dfb9c // .quad 823590954573587527 + WORD $0xc38b997a; WORD $0xe498f455 // .quad -1974559787411859078 + WORD $0x89bd5eac; WORD $0x4724bd41 // .quad 5126430365035880108 + WORD $0x9a373fec; WORD $0x8edf98b5 // .quad -8151628894773493780 + WORD $0xec2cb657; WORD $0x58edec91 // .quad 6408037956294850135 + WORD $0x00c50fe7; WORD $0xb2977ee3 // .quad -5577850100039479321 + WORD $0x6737e3ed; WORD $0x2f2967b6 // .quad 3398361426941174765 + WORD $0xc0f653e1; WORD $0xdf3d5e9b // .quad -2360626606621961247 + WORD $0x0082ee74; WORD $0xbd79e0d2 // .quad -4793553135802847628 + WORD $0x5899f46c; WORD $0x8b865b21 // .quad -8392920656779807636 + WORD $0x80a3aa11; WORD $0xecd85906 // .quad -1380255401326171631 + WORD $0xaec07187; WORD $0xae67f1e9 // .quad -5879464802547371641 + WORD $0x20cc9495; WORD $0xe80e6f48 // .quad -1725319251657714539 + WORD $0x1a708de9; WORD $0xda01ee64 // .quad -2737644984756826647 + WORD $0x147fdcdd; WORD $0x3109058d // .quad 3533361486141316317 + WORD $0x908658b2; WORD $0x884134fe // .quad -8628557143114098510 + WORD $0x599fd415; WORD $0xbd4b46f0 // .quad -4806670179178130411 + WORD $0x34a7eede; WORD $0xaa51823e // .quad -6174010410465235234 + WORD $0x7007c91a; WORD $0x6c9e18ac // .quad 7826720331309500698 + WORD $0xc1d1ea96; WORD $0xd4e5e2cd // .quad -3105826994654156138 + WORD $0xc604ddb0; WORD $0x03e2cf6b // .quad 280014188641050032 + WORD $0x9923329e; WORD $0x850fadc0 // .quad -8858670899299929442 + WORD $0xb786151c; WORD $0x84db8346 // .quad -8873354301053463268 + WORD $0xbf6bff45; WORD $0xa6539930 // .quad -6461652605697523899 + WORD $0x65679a63; WORD $0xe6126418 // .quad -1868320839462053277 + WORD $0xef46ff16; WORD $0xcfe87f7c // .quad -3465379738694516970 + WORD $0x3f60c07e; WORD $0x4fcb7e8f // .quad 5749828502977298558 + WORD $0x158c5f6e; WORD $0x81f14fae // .quad -9083391364325154962 + WORD $0x0f38f09d; WORD $0xe3be5e33 // .quad -2036086408133152611 + WORD $0x9aef7749; WORD $0xa26da399 // .quad -6742553186979055799 + WORD $0xd3072cc5; WORD $0x5cadf5bf // .quad 6678264026688335045 + WORD $0x01ab551c; WORD $0xcb090c80 // .quad -3816505465296431844 + WORD $0xc7c8f7f6; WORD $0x73d9732f // .quad 8347830033360418806 + WORD $0x02162a63; WORD $0xfdcb4fa0 // .quad -158945813193151901 + WORD $0xdcdd9afa; WORD $0x2867e7fd // .quad 2911550761636567802 + WORD $0x014dda7e; WORD $0x9e9f11c4 // .quad -7016870160886801794 + WORD $0x541501b8; WORD $0xb281e1fd // .quad -5583933584809066056 + WORD $0x01a1511d; WORD $0xc646d635 // .quad -4159401682681114339 + WORD $0xa91a4226; WORD $0x1f225a7c // .quad 2243455055843443238 + WORD $0x4209a565; WORD $0xf7d88bc2 // .quad -587566084924005019 + WORD $0xe9b06958; WORD $0x3375788d // .quad 3708002419115845976 + WORD $0x6946075f; WORD $0x9ae75759 // .quad -7284757830718584993 + WORD $0x641c83ae; WORD $0x0052d6b1 // .quad 23317005467419566 + WORD $0xc3978937; WORD $0xc1a12d2f // .quad -4494261269970843337 + WORD $0xbd23a49a; WORD $0xc0678c5d // .quad -4582539761593113446 + WORD $0xb47d6b84; WORD $0xf209787b // .quad -1006140569036166268 + WORD $0x963646e0; WORD $0xf840b7ba // .quad -558244341782001952 + WORD $0x50ce6332; WORD $0x9745eb4d // .quad -7546366883288685774 + WORD $0x3bc3d898; WORD $0xb650e5a9 // .quad -5309491445654890344 + WORD $0xa501fbff; WORD $0xbd176620 // .quad -4821272585683469313 + WORD $0x8ab4cebe; WORD $0xa3e51f13 // .quad -6636864307068612930 + WORD $0xce427aff; WORD $0xec5d3fa8 // .quad -1414904713676948737 + WORD $0x36b10137; WORD $0xc66f336c // .quad -4148040191917883081 + WORD $0x80e98cdf; WORD $0x93ba47c9 // .quad -7801844473689174817 + WORD $0x445d4184; WORD $0xb80b0047 // .quad -5185050239897353852 + WORD $0xe123f017; WORD $0xb8a8d9bb // .quad -5140619573684080617 + WORD $0x157491e5; WORD $0xa60dc059 // .quad -6481312799871692315 + WORD $0xd96cec1d; WORD $0xe6d3102a // .quad -1814088448677712867 + WORD $0xad68db2f; WORD $0x87c89837 // .quad -8662506518347195601 + WORD $0xc7e41392; WORD $0x9043ea1a // .quad -8051334308064652398 + WORD $0x98c311fb; WORD $0x29babe45 // .quad 3006924907348169211 + WORD $0x79dd1877; WORD $0xb454e4a1 // .quad -5452481866653427593 + WORD $0xfef3d67a; WORD $0xf4296dd6 // .quad -853029884242176390 + WORD $0xd8545e94; WORD $0xe16a1dc9 // .quad -2203916314889396588 + WORD $0x5f58660c; WORD $0x1899e4a6 // .quad 1772699331562333708 + WORD $0x2734bb1d; WORD $0x8ce2529e // .quad -8294976724446954723 + WORD $0xf72e7f8f; WORD $0x5ec05dcf // .quad 6827560182880305039 + WORD $0xb101e9e4; WORD $0xb01ae745 // .quad -5757034887131305500 + WORD $0xf4fa1f73; WORD $0x76707543 // .quad 8534450228600381299 + WORD $0x1d42645d; WORD $0xdc21a117 // .quad -2584607590486743971 + WORD $0x791c53a8; WORD $0x6a06494a // .quad 7639874402088932264 + WORD $0x72497eba; WORD $0x899504ae // .quad -8532908771695296838 + WORD $0x17636892; WORD $0x0487db9d // .quad 326470965756389522 + WORD $0x0edbde69; WORD $0xabfa45da // .quad -6054449946191733143 + WORD $0x5d3c42b6; WORD $0x45a9d284 // .quad 5019774725622874806 + WORD $0x9292d603; WORD $0xd6f8d750 // .quad -2956376414312278525 + WORD $0xba45a9b2; WORD $0x0b8a2392 // .quad 831516194300602802 + WORD $0x5b9bc5c2; WORD $0x865b8692 // .quad -8765264286586255934 + WORD $0x68d7141e; WORD $0x8e6cac77 // .quad -8183976793979022306 + WORD $0xf282b732; WORD $0xa7f26836 // .quad -6344894339805432014 + WORD $0x430cd926; WORD $0x3207d795 // .quad 3605087062808385830 + WORD $0xaf2364ff; WORD $0xd1ef0244 // .quad -3319431906329402113 + WORD $0x49e807b8; WORD $0x7f44e6bd // .quad 9170708441896323000 + WORD $0xed761f1f; WORD $0x8335616a // .quad -8992173969096958177 + WORD $0x9c6209a6; WORD $0x5f16206c // .quad 6851699533943015846 + WORD $0xa8d3a6e7; WORD $0xa402b9c5 // .quad -6628531442943809817 + WORD $0xc37a8c0f; WORD $0x36dba887 // .quad 3952938399001381903 + WORD $0x130890a1; WORD $0xcd036837 // .quad -3673978285252374367 + WORD $0xda2c9789; WORD $0xc2494954 // .quad -4446942528265218167 + WORD $0x6be55a64; WORD $0x80222122 // .quad -9213765455923815836 + WORD $0x10b7bd6c; WORD $0xf2db9baa // .quad -946992141904134804 + WORD $0x06deb0fd; WORD $0xa02aa96b // .quad -6905520801477381891 + WORD $0x94e5acc7; WORD $0x6f928294 // .quad 8039631859474607303 + WORD $0xc8965d3d; WORD $0xc83553c5 // .quad -4020214983419339459 + WORD $0xba1f17f9; WORD $0xcb772339 // .quad -3785518230938904583 + WORD $0x3abbf48c; WORD $0xfa42a8b7 // .quad -413582710846786420 + WORD $0x14536efb; WORD $0xff2a7604 // .quad -60105885123121413 + WORD $0x84b578d7; WORD $0x9c69a972 // .quad -7176018221920323369 + WORD $0x19684aba; WORD $0xfef51385 // .quad -75132356403901766 + WORD $0x25e2d70d; WORD $0xc38413cf // .quad -4358336758973016307 + WORD $0x5fc25d69; WORD $0x7eb25866 // .quad 9129456591349898601 + WORD $0xef5b8cd1; WORD $0xf46518c2 // .quad -836234930288882479 + WORD $0xfbd97a61; WORD $0xef2f773f // .quad -1211618658047395231 + WORD $0xd5993802; WORD $0x98bf2f79 // .quad -7440175859071633406 + WORD $0xfacfd8fa; WORD $0xaafb550f // .quad -6126209340986631942 + WORD $0x4aff8603; WORD $0xbeeefb58 // .quad -4688533805412153853 + WORD $0xf983cf38; WORD $0x95ba2a53 // .quad -7657761676233289928 + WORD $0x5dbf6784; WORD $0xeeaaba2e // .quad -1248981238337804412 + WORD $0x7bf26183; WORD $0xdd945a74 // .quad -2480258038432112253 + WORD $0xfa97a0b2; WORD $0x952ab45c // .quad -7698142301602209614 + WORD $0x9aeef9e4; WORD $0x94f97111 // .quad -7712008566467528220 + WORD $0x393d88df; WORD $0xba756174 // .quad -5010991858575374113 + WORD $0x01aab85d; WORD $0x7a37cd56 // .quad 8806733365625141341 + WORD $0x478ceb17; WORD $0xe912b9d1 // .quad -1652053804791829737 + WORD $0xc10ab33a; WORD $0xac62e055 // .quad -6025006692552756422 + WORD $0xccb812ee; WORD $0x91abb422 // .quad -7950062655635975442 + WORD $0x314d6009; WORD $0x577b986b // .quad 6303799689591218185 + WORD $0x7fe617aa; WORD $0xb616a12b // .quad -5325892301117581398 + WORD $0xfda0b80b; WORD $0xed5a7e85 // .quad -1343622424865753077 + WORD $0x5fdf9d94; WORD $0xe39c4976 // .quad -2045679357969588844 + WORD $0xbe847307; WORD $0x14588f13 // .quad 1466078993672598279 + WORD $0xfbebc27d; WORD $0x8e41ade9 // .quad -8196078626372074883 + WORD $0xae258fc8; WORD $0x596eb2d8 // .quad 6444284760518135752 + WORD $0x7ae6b31c; WORD $0xb1d21964 // .quad -5633412264537705700 + WORD $0xd9aef3bb; WORD $0x6fca5f8e // .quad 8055355950647669691 + WORD $0x99a05fe3; WORD $0xde469fbd // .quad -2430079312244744221 + WORD $0x480d5854; WORD $0x25de7bb9 // .quad 2728754459941099604 + WORD $0x80043bee; WORD $0x8aec23d6 // .quad -8436328597794046994 + WORD $0x9a10ae6a; WORD $0xaf561aa7 // .quad -5812428961928401302 + WORD $0x20054ae9; WORD $0xada72ccc // .quad -5933724728815170839 + WORD $0x8094da04; WORD $0x1b2ba151 // .quad 1957835834444274180 + WORD $0x28069da4; WORD $0xd910f7ff // .quad -2805469892591575644 + WORD $0xf05d0842; WORD $0x90fb44d2 // .quad -7999724640327104446 + WORD $0x79042286; WORD $0x87aa9aff // .quad -8670947710510816634 + WORD $0xac744a53; WORD $0x353a1607 // .quad 3835402254873283155 + WORD $0x57452b28; WORD $0xa99541bf // .quad -6226998619711132888 + WORD $0x97915ce8; WORD $0x42889b89 // .quad 4794252818591603944 + WORD $0x2d1675f2; WORD $0xd3fa922f // .quad -3172062256211528206 + WORD $0xfebada11; WORD $0x69956135 // .quad 7608094030047140369 + WORD $0x7c2e09b7; WORD $0x847c9b5d // .quad -8900067937773286985 + WORD $0x7e699095; WORD $0x43fab983 // .quad 4898431519131537557 + WORD $0xdb398c25; WORD $0xa59bc234 // .quad -6513398903789220827 + WORD $0x5e03f4bb; WORD $0x94f967e4 // .quad -7712018656367741765 + WORD $0x1207ef2e; WORD $0xcf02b2c2 // .quad -3530062611309138130 + WORD $0xbac278f5; WORD $0x1d1be0ee // .quad 2097517367411243253 + WORD $0x4b44f57d; WORD $0x8161afb9 // .quad -9123818159709293187 + WORD $0x69731732; WORD $0x6462d92a // .quad 7233582727691441970 + WORD $0x9e1632dc; WORD $0xa1ba1ba7 // .quad -6793086681209228580 + WORD $0x03cfdcfe; WORD $0x7d7b8f75 // .quad 9041978409614302462 + WORD $0x859bbf93; WORD $0xca28a291 // .quad -3879672333084147821 + WORD $0x44c3d43e; WORD $0x5cda7352 // .quad 6690786993590490174 + WORD $0xe702af78; WORD $0xfcb2cb35 // .quad -237904397927796872 + WORD $0x6afa64a7; WORD $0x3a088813 // .quad 4181741870994056359 + WORD $0xb061adab; WORD $0x9defbf01 // .quad -7066219276345954901 + WORD $0x45b8fdd0; WORD $0x088aaa18 // .quad 615491320315182544 + WORD $0x1c7a1916; WORD $0xc56baec2 // .quad -4221088077005055722 + WORD $0x57273d45; WORD $0x8aad549e // .quad -8454007886460797627 + WORD $0xa3989f5b; WORD $0xf6c69a72 // .quad -664674077828931749 + WORD $0xf678864b; WORD $0x36ac54e2 // .quad 3939617107816777291 + WORD $0xa63f6399; WORD $0x9a3c2087 // .quad -7332950326284164199 + WORD $0xb416a7dd; WORD $0x84576a1b // .quad -8910536670511192099 + WORD $0x8fcf3c7f; WORD $0xc0cb28a9 // .quad -4554501889427817345 + WORD $0xa11c51d5; WORD $0x656d44a2 // .quad 7308573235570561493 + WORD $0xf3c30b9f; WORD $0xf0fdf2d3 // .quad -1081441343357383777 + WORD $0xa4b1b325; WORD $0x9f644ae5 // .quad -6961356773836868827 + WORD $0x7859e743; WORD $0x969eb7c4 // .quad -7593429867239446717 + WORD $0x0dde1fee; WORD $0x873d5d9f // .quad -8701695967296086034 + WORD $0x96706114; WORD $0xbc4665b5 // .quad -4880101315621920492 + WORD $0xd155a7ea; WORD $0xa90cb506 // .quad -6265433940692719638 + WORD $0xfc0c7959; WORD $0xeb57ff22 // .quad -1488440626100012711 + WORD $0x42d588f2; WORD $0x09a7f124 // .quad 695789805494438130 + WORD $0xdd87cbd8; WORD $0x9316ff75 // .quad -7847804418953589800 + WORD $0x538aeb2f; WORD $0x0c11ed6d // .quad 869737256868047663 + WORD $0x54e9bece; WORD $0xb7dcbf53 // .quad -5198069505264599346 + WORD $0xa86da5fa; WORD $0x8f1668c8 // .quad -8136200465769716230 + WORD $0x2a242e81; WORD $0xe5d3ef28 // .quad -1885900863153361279 + WORD $0x694487bc; WORD $0xf96e017d // .quad -473439272678684740 + WORD $0x1a569d10; WORD $0x8fa47579 // .quad -8096217067111932656 + WORD $0xc395a9ac; WORD $0x37c981dc // .quad 4019886927579031980 + WORD $0x60ec4455; WORD $0xb38d92d7 // .quad -5508585315462527915 + WORD $0xf47b1417; WORD $0x85bbe253 // .quad -8810199395808373737 + WORD $0x3927556a; WORD $0xe070f78d // .quad -2274045625900771990 + WORD $0x78ccec8e; WORD $0x93956d74 // .quad -7812217631593927538 + WORD $0x43b89562; WORD $0x8c469ab8 // .quad -8338807543829064350 + WORD $0x970027b2; WORD $0x387ac8d1 // .quad 4069786015789754290 + WORD $0x54a6babb; WORD $0xaf584166 // .quad -5811823411358942533 + WORD $0xfcc0319e; WORD $0x06997b05 // .quad 475546501309804958 + WORD $0xe9d0696a; WORD $0xdb2e51bf // .quad -2653093245771290262 + WORD $0xbdf81f03; WORD $0x441fece3 // .quad 4908902581746016003 + WORD $0xf22241e2; WORD $0x88fcf317 // .quad -8575712306248138270 + WORD $0xad7626c3; WORD $0xd527e81c // .quad -3087243809672255805 + WORD $0xeeaad25a; WORD $0xab3c2fdd // .quad -6107954364382784934 + WORD $0xd8d3b074; WORD $0x8a71e223 // .quad -8470740780517707660 + WORD $0x6a5586f1; WORD $0xd60b3bd5 // .quad -3023256937051093263 + WORD $0x67844e49; WORD $0xf6872d56 // .quad -682526969396179383 + WORD $0x62757456; WORD $0x85c70565 // .quad -8807064613298015146 + WORD $0x016561db; WORD $0xb428f8ac // .quad -5464844730172612133 + WORD $0xbb12d16c; WORD $0xa738c6be // .quad -6397144748195131028 + WORD $0x01beba52; WORD $0xe13336d7 // .quad -2219369894288377262 + WORD $0x69d785c7; WORD $0xd106f86e // .quad -3384744916816525881 + WORD $0x61173473; WORD $0xecc00246 // .quad -1387106183930235789 + WORD $0x0226b39c; WORD $0x82a45b45 // .quad -9032994600651410532 + WORD $0xf95d0190; WORD $0x27f002d7 // .quad 2877803288514593168 + WORD $0x42b06084; WORD $0xa34d7216 // .quad -6679557232386875260 + WORD $0xf7b441f4; WORD $0x31ec038d // .quad 3597254110643241460 + WORD $0xd35c78a5; WORD $0xcc20ce9b // .quad -3737760522056206171 + WORD $0x75a15271; WORD $0x7e670471 // .quad 9108253656731439729 + WORD $0xc83396ce; WORD $0xff290242 // .quad -60514634142869810 + WORD $0xe984d386; WORD $0x0f0062c6 // .quad 1080972517029761926 + WORD $0xbd203e41; WORD $0x9f79a169 // .quad -6955350673980375487 + WORD $0xa3e60868; WORD $0x52c07b78 // .quad 5962901664714590312 + WORD $0x2c684dd1; WORD $0xc75809c4 // .quad -4082502324048081455 + WORD $0xccdf8a82; WORD $0xa7709a56 // .quad -6381430974388925822 + WORD $0x37826145; WORD $0xf92e0c35 // .quad -491441886632713915 + WORD $0x400bb691; WORD $0x88a66076 // .quad -8600080377420466543 + WORD $0x42b17ccb; WORD $0x9bbcc7a1 // .quad -7224680206786528053 + WORD $0xd00ea435; WORD $0x6acff893 // .quad 7696643601933968437 + WORD $0x935ddbfe; WORD $0xc2abf989 // .quad -4419164240055772162 + WORD $0xc4124d43; WORD $0x0583f6b8 // .quad 397432465562684739 + WORD $0xf83552fe; WORD $0xf356f7eb // .quad -912269281642327298 + WORD $0x7a8b704a; WORD $0xc3727a33 // .quad -4363290727450709942 + WORD $0x7b2153de; WORD $0x98165af3 // .quad -7487697328667536418 + WORD $0x592e4c5c; WORD $0x744f18c0 // .quad 8380944645968776284 + WORD $0x59e9a8d6; WORD $0xbe1bf1b0 // .quad -4747935642407032618 + WORD $0x6f79df73; WORD $0x1162def0 // .quad 1252808770606194547 + WORD $0x7064130c; WORD $0xeda2ee1c // .quad -1323233534581402868 + WORD $0x45ac2ba8; WORD $0x8addcb56 // .quad -8440366555225904216 + WORD $0xc63e8be7; WORD $0x9485d4d1 // .quad -7744549986754458649 + WORD $0xd7173692; WORD $0x6d953e2b // .quad 7896285879677171346 + WORD $0x37ce2ee1; WORD $0xb9a74a06 // .quad -5069001465015685407 + WORD $0xccdd0437; WORD $0xc8fa8db6 // .quad -3964700705685699529 + WORD $0xc5c1ba99; WORD $0xe8111c87 // .quad -1724565812842218855 + WORD $0x400a22a2; WORD $0x1d9c9892 // .quad 2133748077373825698 + WORD $0xdb9914a0; WORD $0x910ab1d4 // .quad -7995382660667468640 + WORD $0xd00cab4b; WORD $0x2503beb6 // .quad 2667185096717282123 + WORD $0x127f59c8; WORD $0xb54d5e4a // .quad -5382542307406947896 + WORD $0x840fd61d; WORD $0x2e44ae64 // .quad 3333981370896602653 + WORD $0x971f303a; WORD $0xe2a0b5dc // .quad -2116491865831296966 + WORD $0xd289e5d2; WORD $0x5ceaecfe // .quad 6695424375237764562 + WORD $0xde737e24; WORD $0x8da471a9 // .quad -8240336443785642460 + WORD $0x872c5f47; WORD $0x7425a83e // .quad 8369280469047205703 + WORD $0x56105dad; WORD $0xb10d8e14 // .quad -5688734536304665171 + WORD $0x28f77719; WORD $0xd12f124e // .quad -3373457468973156583 + WORD $0x6b947518; WORD $0xdd50f199 // .quad -2499232151953443560 + WORD $0xd99aaa6f; WORD $0x82bd6b70 // .quad -9025939945749304721 + WORD $0xe33cc92f; WORD $0x8a5296ff // .quad -8479549122611984081 + WORD $0x1001550b; WORD $0x636cc64d // .quad 7164319141522920715 + WORD $0xdc0bfb7b; WORD $0xace73cbf // .quad -5987750384837592197 + WORD $0x5401aa4e; WORD $0x3c47f7e0 // .quad 4343712908476262990 + WORD $0xd30efa5a; WORD $0xd8210bef // .quad -2873001962619602342 + WORD $0x34810a71; WORD $0x65acfaec // .quad 7326506586225052273 + WORD $0xe3e95c78; WORD $0x8714a775 // .quad -8713155254278333320 + WORD $0x41a14d0d; WORD $0x7f1839a7 // .quad 9158133232781315341 + WORD $0x5ce3b396; WORD $0xa8d9d153 // .quad -6279758049420528746 + WORD $0x1209a050; WORD $0x1ede4811 // .quad 2224294504121868368 + WORD $0x341ca07c; WORD $0xd31045a8 // .quad -3238011543348273028 + WORD $0xab460432; WORD $0x934aed0a // .quad -7833187971778608078 + WORD $0x2091e44d; WORD $0x83ea2b89 // .quad -8941286242233752499 + WORD $0x5617853f; WORD $0xf81da84d // .quad -568112927868484289 + WORD $0x68b65d60; WORD $0xa4e4b66b // .quad -6564921784364802720 + WORD $0xab9d668e; WORD $0x36251260 // .quad 3901544858591782542 + WORD $0x42e3f4b9; WORD $0xce1de406 // .quad -3594466212028615495 + WORD $0x6b426019; WORD $0xc1d72b7c // .quad -4479063491021217767 + WORD $0xe9ce78f3; WORD $0x80d2ae83 // .quad -9164070410158966541 + WORD $0x8612f81f; WORD $0xb24cf65b // .quad -5598829363776522209 + WORD $0xe4421730; WORD $0xa1075a24 // .quad -6843401994271320272 + WORD $0x6797b627; WORD $0xdee033f2 // .quad -2386850686293264857 + WORD $0x1d529cfc; WORD $0xc94930ae // .quad -3942566474411762436 + WORD $0x017da3b1; WORD $0x169840ef // .quad 1628122660560806833 + WORD $0xa4a7443c; WORD $0xfb9b7cd9 // .quad -316522074587315140 + WORD $0x60ee864e; WORD $0x8e1f2895 // .quad -8205795374004271538 + WORD $0x06e88aa5; WORD $0x9d412e08 // .quad -7115355324258153819 + WORD $0xb92a27e2; WORD $0xf1a6f2ba // .quad -1033872180650563614 + WORD $0x08a2ad4e; WORD $0xc491798a // .quad -4282508136895304370 + WORD $0x6774b1db; WORD $0xae10af69 // .quad -5904026244240592421 + WORD $0x8acb58a2; WORD $0xf5b5d7ec // .quad -741449152691742558 + WORD $0xe0a8ef29; WORD $0xacca6da1 // .quad -5995859411864064215 + WORD $0xd6bf1765; WORD $0x9991a6f3 // .quad -7380934748073420955 + WORD $0x58d32af3; WORD $0x17fd090a // .quad 1728547772024695539 + WORD $0xcc6edd3f; WORD $0xbff610b0 // .quad -4614482416664388289 + WORD $0xef07f5b0; WORD $0xddfc4b4c // .quad -2451001303396518480 + WORD $0xff8a948e; WORD $0xeff394dc // .quad -1156417002403097458 + WORD $0x1564f98e; WORD $0x4abdaf10 // .quad 5385653213018257806 + WORD $0x1fb69cd9; WORD $0x95f83d0a // .quad -7640289654143017767 + WORD $0x1abe37f1; WORD $0x9d6d1ad4 // .quad -7102991539009341455 + WORD $0xa7a4440f; WORD $0xbb764c4c // .quad -4938676049251384305 + WORD $0x216dc5ed; WORD $0x84c86189 // .quad -8878739423761676819 + WORD $0xd18d5513; WORD $0xea53df5f // .quad -1561659043136842477 + WORD $0xb4e49bb4; WORD $0x32fd3cf5 // .quad 3674159897003727796 + WORD $0xe2f8552c; WORD $0x92746b9b // .quad -7893565929601608404 + WORD $0x221dc2a1; WORD $0x3fbc8c33 // .quad 4592699871254659745 + WORD $0xdbb66a77; WORD $0xb7118682 // .quad -5255271393574622601 + WORD $0xeaa5334a; WORD $0x0fabaf3f // .quad 1129188820640936778 + WORD $0x92a40515; WORD $0xe4d5e823 // .quad -1957403223540890347 + WORD $0xf2a7400e; WORD $0x29cb4d87 // .quad 3011586022114279438 + WORD $0x3ba6832d; WORD $0x8f05b116 // .quad -8140906042354138323 + WORD $0xef511012; WORD $0x743e20e9 // .quad 8376168546070237202 + WORD $0xca9023f8; WORD $0xb2c71d5b // .quad -5564446534515285000 + WORD $0x6b255416; WORD $0x914da924 // .quad -7976533391121755114 + WORD $0xbd342cf6; WORD $0xdf78e4b2 // .quad -2343872149716718346 + WORD $0xc2f7548e; WORD $0x1ad089b6 // .quad 1932195658189984910 + WORD $0xb6409c1a; WORD $0x8bab8eef // .quad -8382449121214030822 + WORD $0x73b529b1; WORD $0xa184ac24 // .quad -6808127464117294671 + WORD $0xa3d0c320; WORD $0xae9672ab // .quad -5866375383090150624 + WORD $0x90a2741e; WORD $0xc9e5d72d // .quad -3898473311719230434 + WORD $0x8cc4f3e8; WORD $0xda3c0f56 // .quad -2721283210435300376 + WORD $0x7a658892; WORD $0x7e2fa67c // .quad 9092669226243950738 + WORD $0x17fb1871; WORD $0x88658996 // .quad -8618331034163144591 + WORD $0x98feeab7; WORD $0xddbb901b // .quad -2469221522477225289 + WORD $0x9df9de8d; WORD $0xaa7eebfb // .quad -6161227774276542835 + WORD $0x7f3ea565; WORD $0x552a7422 // .quad 6136845133758244197 + WORD $0x85785631; WORD $0xd51ea6fa // .quad -3089848699418290639 + WORD $0x8f87275f; WORD $0xd53a8895 // .quad -3082000819042179233 + WORD $0x936b35de; WORD $0x8533285c // .quad -8848684464777513506 + WORD $0xf368f137; WORD $0x8a892aba // .quad -8464187042230111945 + WORD $0xb8460356; WORD $0xa67ff273 // .quad -6449169562544503978 + WORD $0xb0432d85; WORD $0x2d2b7569 // .quad 3254824252494523781 + WORD $0xa657842c; WORD $0xd01fef10 // .quad -3449775934753242068 + WORD $0x0e29fc73; WORD $0x9c3b2962 // .quad -7189106879045698445 + WORD $0x67f6b29b; WORD $0x8213f56a // .quad -9073638986861858149 + WORD $0x91b47b8f; WORD $0x8349f3ba // .quad -8986383598807123057 + WORD $0x01f45f42; WORD $0xa298f2c5 // .quad -6730362715149934782 + WORD $0x36219a73; WORD $0x241c70a9 // .quad 2602078556773259891 + WORD $0x42717713; WORD $0xcb3f2f76 // .quad -3801267375510030573 + WORD $0x83aa0110; WORD $0xed238cd3 // .quad -1359087822460813040 + WORD $0xd30dd4d7; WORD $0xfe0efb53 // .quad -139898200960150313 + WORD $0x324a40aa; WORD $0xf4363804 // .quad -849429889038008150 + WORD $0x63e8a506; WORD $0x9ec95d14 // .quad -7004965403241175802 + WORD $0x3edcd0d5; WORD $0xb143c605 // .quad -5673473379724898091 + WORD $0x7ce2ce48; WORD $0xc67bb459 // .quad -4144520735624081848 + WORD $0x8e94050a; WORD $0xdd94b786 // .quad -2480155706228734710 + WORD $0xdc1b81da; WORD $0xf81aa16f // .quad -568964901102714406 + WORD $0x191c8326; WORD $0xca7cf2b4 // .quad -3855940325606653146 + WORD $0xe9913128; WORD $0x9b10a4e5 // .quad -7273132090830278360 + WORD $0x1f63a3f0; WORD $0xfd1c2f61 // .quad -208239388580928528 + WORD $0x63f57d72; WORD $0xc1d4ce1f // .quad -4479729095110460046 + WORD $0x673c8cec; WORD $0xbc633b39 // .quad -4871985254153548564 + WORD $0x3cf2dccf; WORD $0xf24a01a7 // .quad -987975350460687153 + WORD $0xe085d813; WORD $0xd5be0503 // .quad -3044990783845967853 + WORD $0x8617ca01; WORD $0x976e4108 // .quad -7535013621679011327 + WORD $0xd8a74e18; WORD $0x4b2d8644 // .quad 5417133557047315992 + WORD $0xa79dbc82; WORD $0xbd49d14a // .quad -4807081008671376254 + WORD $0x0ed1219e; WORD $0xddf8e7d6 // .quad -2451955090545630818 + WORD $0x51852ba2; WORD $0xec9c459d // .quad -1397165242411832414 + WORD $0xc942b503; WORD $0xcabb90e5 // .quad -3838314940804713213 + WORD $0x52f33b45; WORD $0x93e1ab82 // .quad -7790757304148477115 + WORD $0x3b936243; WORD $0x3d6a751f // .quad 4425478360848884291 + WORD $0xe7b00a17; WORD $0xb8da1662 // .quad -5126760611758208489 + WORD $0x0a783ad4; WORD $0x0cc51267 // .quad 920161932633717460 + WORD $0xa19c0c9d; WORD $0xe7109bfb // .quad -1796764746270372707 + WORD $0x668b24c5; WORD $0x27fb2b80 // .quad 2880944217109767365 + WORD $0x450187e2; WORD $0x906a617d // .quad -8040506994060064798 + WORD $0x802dedf6; WORD $0xb1f9f660 // .quad -5622191765467566602 + WORD $0x9641e9da; WORD $0xb484f9dc // .quad -5438947724147693094 + WORD $0xa0396973; WORD $0x5e7873f8 // .quad 6807318348447705459 + WORD $0xbbd26451; WORD $0xe1a63853 // .quad -2186998636757228463 + WORD $0x6423e1e8; WORD $0xdb0b487b // .quad -2662955059861265944 + WORD $0x55637eb2; WORD $0x8d07e334 // .quad -8284403175614349646 + WORD $0x3d2cda62; WORD $0x91ce1a9a // .quad -7940379843253970334 + WORD $0x6abc5e5f; WORD $0xb049dc01 // .quad -5743817951090549153 + WORD $0xcc7810fb; WORD $0x7641a140 // .quad 8521269269642088699 + WORD $0xc56b75f7; WORD $0xdc5c5301 // .quad -2568086420435798537 + WORD $0x7fcb0a9d; WORD $0xa9e904c8 // .quad -6203421752542164323 + WORD $0x1b6329ba; WORD $0x89b9b3e1 // .quad -8522583040413455942 + WORD $0x9fbdcd44; WORD $0x546345fa // .quad 6080780864604458308 + WORD $0x623bf429; WORD $0xac2820d9 // .quad -6041542782089432023 + WORD $0x47ad4095; WORD $0xa97c1779 // .quad -6234081974526590827 + WORD $0xbacaf133; WORD $0xd732290f // .quad -2940242459184402125 + WORD $0xcccc485d; WORD $0x49ed8eab // .quad 5327070802775656541 + WORD $0xd4bed6c0; WORD $0x867f59a9 // .quad -8755180564631333184 + WORD $0xbfff5a74; WORD $0x5c68f256 // .quad 6658838503469570676 + WORD $0x49ee8c70; WORD $0xa81f3014 // .quad -6332289687361778576 + WORD $0x6fff3111; WORD $0x73832eec // .quad 8323548129336963345 + WORD $0x5c6a2f8c; WORD $0xd226fc19 // .quad -3303676090774835316 + WORD $0xc5ff7eab; WORD $0xc831fd53 // .quad -4021154456019173717 + WORD $0xd9c25db7; WORD $0x83585d8f // .quad -8982326584375353929 + WORD $0xb77f5e55; WORD $0xba3e7ca8 // .quad -5026443070023967147 + WORD $0xd032f525; WORD $0xa42e74f3 // .quad -6616222212041804507 + WORD $0xe55f35eb; WORD $0x28ce1bd2 // .quad 2940318199324816875 + WORD $0xc43fb26f; WORD $0xcd3a1230 // .quad -3658591746624867729 + WORD $0xcf5b81b3; WORD $0x7980d163 // .quad 8755227902219092403 + WORD $0x7aa7cf85; WORD $0x80444b5e // .quad -9204148869281624187 + WORD $0xc332621f; WORD $0xd7e105bc // .quad -2891023177508298209 + WORD $0x1951c366; WORD $0xa0555e36 // .quad -6893500068174642330 + WORD $0xf3fefaa7; WORD $0x8dd9472b // .quad -8225464990312760665 + WORD $0x9fa63440; WORD $0xc86ab5c3 // .quad -4005189066790915008 + WORD $0xf0feb951; WORD $0xb14f98f6 // .quad -5670145219463562927 + WORD $0x878fc150; WORD $0xfa856334 // .quad -394800315061255856 + WORD $0x569f33d3; WORD $0x6ed1bf9a // .quad 7985374283903742931 + WORD $0xd4b9d8d2; WORD $0x9c935e00 // .quad -7164279224554366766 + WORD $0xec4700c8; WORD $0x0a862f80 // .quad 758345818024902856 + WORD $0x09e84f07; WORD $0xc3b83581 // .quad -4343663012265570553 + WORD $0x2758c0fa; WORD $0xcd27bb61 // .quad -3663753745896259334 + WORD $0x4c6262c8; WORD $0xf4a642e1 // .quad -817892746904575288 + WORD $0xb897789c; WORD $0x8038d51c // .quad -9207375118826243940 + WORD $0xcfbd7dbd; WORD $0x98e7e9cc // .quad -7428711994456441411 + WORD $0xe6bd56c3; WORD $0xe0470a63 // .quad -2285846861678029117 + WORD $0x03acdd2c; WORD $0xbf21e440 // .quad -4674203974643163860 + WORD $0xe06cac74; WORD $0x1858ccfc // .quad 1754377441329851508 + WORD $0x04981478; WORD $0xeeea5d50 // .quad -1231068949876566920 + WORD $0x0c43ebc8; WORD $0x0f37801e // .quad 1096485900831157192 + WORD $0x02df0ccb; WORD $0x95527a52 // .quad -7686947121313936181 + WORD $0x8f54e6ba; WORD $0xd3056025 // .quad -3241078642388441414 + WORD $0x8396cffd; WORD $0xbaa718e6 // .quad -4996997883215032323 + WORD $0xf32a2069; WORD $0x47c6b82e // .quad 5172023733869224041 + WORD $0x247c83fd; WORD $0xe950df20 // .quad -1634561335591402499 + WORD $0x57fa5441; WORD $0x4cdc331d // .quad 5538357842881958977 + WORD $0x16cdd27e; WORD $0x91d28b74 // .quad -7939129862385708418 + WORD $0xadf8e952; WORD $0xe0133fe4 // .quad -2300424733252327086 + WORD $0x1c81471d; WORD $0xb6472e51 // .quad -5312226309554747619 + WORD $0xd97723a6; WORD $0x58180fdd // .quad 6347841120289366950 + WORD $0x63a198e5; WORD $0xe3d8f9e5 // .quad -2028596868516046619 + WORD $0xa7ea7648; WORD $0x570f09ea // .quad 6273243709394548296 + WORD $0x5e44ff8f; WORD $0x8e679c2f // .quad -8185402070463610993 + WORD $0x51e513da; WORD $0x2cd2cc65 // .quad 3229868618315797466 + WORD $0x35d63f73; WORD $0xb201833b // .quad -5620066569652125837 + WORD $0xa65e58d1; WORD $0xf8077f7e // .quad -574350245532641071 + WORD $0x034bcf4f; WORD $0xde81e40a // .quad -2413397193637769393 + WORD $0x27faf782; WORD $0xfb04afaf // .quad -358968903457900670 + WORD $0x420f6191; WORD $0x8b112e86 // .quad -8425902273664687727 + WORD $0xf1f9b563; WORD $0x79c5db9a // .quad 8774660907532399971 + WORD $0xd29339f6; WORD $0xadd57a27 // .quad -5920691823653471754 + WORD $0xae7822bc; WORD $0x18375281 // .quad 1744954097560724156 + WORD $0xc7380874; WORD $0xd94ad8b1 // .quad -2789178761139451788 + WORD $0x0d0b15b5; WORD $0x8f229391 // .quad -8132775725879323211 + WORD $0x1c830548; WORD $0x87cec76f // .quad -8660765753353239224 + WORD $0x504ddb22; WORD $0xb2eb3875 // .quad -5554283638921766110 + WORD $0xe3a3c69a; WORD $0xa9c2794a // .quad -6214271173264161126 + WORD $0xa46151eb; WORD $0x5fa60692 // .quad 6892203506629956075 + WORD $0x9c8cb841; WORD $0xd433179d // .quad -3156152948152813503 + WORD $0xa6bcd333; WORD $0xdbc7c41b // .quad -2609901835997359309 + WORD $0x81d7f328; WORD $0x849feec2 // .quad -8890124620236590296 + WORD $0x906c0800; WORD $0x12b9b522 // .quad 1349308723430688768 + WORD $0x224deff3; WORD $0xa5c7ea73 // .quad -6500969756868349965 + WORD $0x34870a00; WORD $0xd768226b // .quad -2925050114139026944 + WORD $0xeae16bef; WORD $0xcf39e50f // .quad -3514526177658049553 + WORD $0x00d46640; WORD $0xe6a11583 // .quad -1828156321336891840 + WORD $0xf2cce375; WORD $0x81842f29 // .quad -9114107888677362827 + WORD $0xc1097fd0; WORD $0x60495ae3 // .quad 6938176635183661008 + WORD $0x6f801c53; WORD $0xa1e53af4 // .quad -6780948842419315629 + WORD $0xb14bdfc4; WORD $0x385bb19c // .quad 4061034775552188356 + WORD $0x8b602368; WORD $0xca5e89b1 // .quad -3864500034596756632 + WORD $0xdd9ed7b5; WORD $0x46729e03 // .quad 5076293469440235445 + WORD $0xee382c42; WORD $0xfcf62c1d // .quad -218939024818557886 + WORD $0x6a8346d1; WORD $0x6c07a2c2 // .quad 7784369436827535057 + WORD $0xb4e31ba9; WORD $0x9e19db92 // .quad -7054365918152680535 + WORD $0x05241885; WORD $0xc7098b73 // .quad -4104596259247744891 + WORD $0x621be293; WORD $0xc5a05277 // .quad -4206271379263462765 + WORD $0xc66d1ea7; WORD $0xb8cbee4f // .quad -5130745324059681113 + WORD $0x3aa2db38; WORD $0xf7086715 // .quad -646153205651940552 + WORD $0xdc043328; WORD $0x737f74f1 // .quad 8322499218531169064 + WORD $0x44a5c903; WORD $0x9a65406d // .quad -7321374781173544701 + WORD $0x53053ff2; WORD $0x505f522e // .quad 5791438004736573426 + WORD $0x95cf3b44; WORD $0xc0fe9088 // .quad -4540032458039542972 + WORD $0xe7c68fef; WORD $0x647726b9 // .quad 7239297505920716783 + WORD $0xbb430a15; WORD $0xf13e34aa // .quad -1063354554122040811 + WORD $0x30dc19f5; WORD $0x5eca7834 // .quad 6830403950414141941 + WORD $0xb509e64d; WORD $0x96c6e0ea // .quad -7582125623967357363 + WORD $0x3d132072; WORD $0xb67d1641 // .quad -5297053117264486286 + WORD $0x624c5fe0; WORD $0xbc789925 // .quad -4865971011531808800 + WORD $0x8c57e88f; WORD $0xe41c5bd1 // .quad -2009630378153219953 + WORD $0xbadf77d8; WORD $0xeb96bf6e // .quad -1470777745987373096 + WORD $0xf7b6f159; WORD $0x8e91b962 // .quad -8173548013986844327 + WORD $0x34cbaae7; WORD $0x933e37a5 // .quad -7836765118883190041 + WORD $0xb5a4adb0; WORD $0x723627bb // .quad 8229809056225996208 + WORD $0x81fe95a1; WORD $0xb80dc58e // .quad -5184270380176599647 + WORD $0xa30dd91c; WORD $0xcec3b1aa // .quad -3547796734999668452 + WORD $0x227e3b09; WORD $0xe61136f2 // .quad -1868651956793361655 + WORD $0xa5e8a7b1; WORD $0x213a4f0a // .quad 2394313059052595121 + WORD $0x558ee4e6; WORD $0x8fcac257 // .quad -8085436500636932890 + WORD $0x4f62d19d; WORD $0xa988e2cd // .quad -6230480713039031907 + WORD $0x2af29e1f; WORD $0xb3bd72ed // .quad -5495109607368778209 + WORD $0xa33b8605; WORD $0x93eb1b80 // .quad -7788100891298789883 + WORD $0x75af45a7; WORD $0xe0accfa8 // .quad -2257200990783584857 + WORD $0x660533c3; WORD $0xbc72f130 // .quad -4867563057061743677 + WORD $0x498d8b88; WORD $0x8c6c01c9 // .quad -8328279646880822392 + WORD $0x7f8680b4; WORD $0xeb8fad7c // .quad -1472767802899791692 + WORD $0x9bf0ee6a; WORD $0xaf87023b // .quad -5798663540173640086 + WORD $0x9f6820e1; WORD $0xa67398db // .quad -6452645772052127519 + WORD $0x82ed2a05; WORD $0xdb68c2ca // .quad -2636643406789662203 + WORD $0x43a1148c; WORD $0x88083f89 // .quad -8644589625959967604 + WORD $0x91d43a43; WORD $0x892179be // .quad -8565431156884620733 + WORD $0x948959b0; WORD $0x6a0a4f6b // .quad 7641007041259592112 + WORD $0x364948d4; WORD $0xab69d82e // .quad -6095102927678388012 + WORD $0x79abb01c; WORD $0x848ce346 // .quad -8895485272135061476 + WORD $0xc3db9b09; WORD $0xd6444e39 // .quad -3007192641170597111 + WORD $0x0c0b4e11; WORD $0xf2d80e0c // .quad -947992276657025519 + WORD $0x1a6940e5; WORD $0x85eab0e4 // .quad -8797024428372705051 + WORD $0x0f0e2195; WORD $0x6f8e118f // .quad 8038381691033493909 + WORD $0x2103911f; WORD $0xa7655d1d // .quad -6384594517038493409 + WORD $0xd2d1a9fb; WORD $0x4b7195f2 // .quad 5436291095364479483 + WORD $0x69447567; WORD $0xd13eb464 // .quad -3369057127870728857 + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + // .p2align 2, 0x00 +_POW_TAB: + WORD $0x00000001 // .long 1 + WORD $0x00000003 // .long 3 + WORD $0x00000006 // .long 6 + WORD $0x00000009 // .long 9 + WORD $0x0000000d // .long 13 + WORD $0x00000010 // .long 16 + WORD $0x00000013 // .long 19 + WORD $0x00000017 // .long 23 + WORD $0x0000001a // .long 26 + // .p2align 2, 0x00 +_LSHIFT_TAB: + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .space 4, '\x00\x00\x00\x00' + WORD $0x00000001 // .long 1 + WORD $0x00000035 // .asciz 4, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x00000001 // .long 1 + WORD $0x00003532 // .asciz 4, '25\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x00000001 // .long 1 + WORD $0x00353231 // .asciz 4, '125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x00000002 // .long 2 + WORD $0x00353236 // .asciz 4, '625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x00000002 // .long 2 + WORD $0x35323133 // .asciz 4, '3125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x00000002 // .long 2 + WORD $0x32363531 // .asciz 4, '15625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000035 // .asciz 4, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x00000003 // .long 3 + WORD $0x32313837 // .asciz 4, '78125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000035 // .asciz 4, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x00000003 // .long 3 + WORD $0x36303933 // .asciz 4, '390625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00003532 // .asciz 4, '25\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x00000003 // .long 3 + WORD $0x33353931 // .asciz 4, '1953125\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00353231 // .asciz 4, '125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x00000004 // .long 4 + WORD $0x35363739 // .asciz 4, '9765625\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00353236 // .asciz 4, '625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x00000004 // .long 4 + WORD $0x32383834 // .asciz 4, '48828125\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x35323138 // .asciz 4, '8125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x00000004 // .long 4 + WORD $0x31343432 // .asciz 4, '244140625\x00\x00\x00\x00\x00\x00\x00' + WORD $0x32363034 // .asciz 4, '40625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000035 // .asciz 4, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x00000004 // .long 4 + WORD $0x30323231 // .asciz 4, '1220703125\x00\x00\x00\x00\x00\x00' + WORD $0x31333037 // .asciz 4, '703125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00003532 // .asciz 4, '25\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x00000005 // .long 5 + WORD $0x33303136 // .asciz 4, '6103515625\x00\x00\x00\x00\x00\x00' + WORD $0x36353135 // .asciz 4, '515625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00003532 // .asciz 4, '25\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x00000005 // .long 5 + WORD $0x31353033 // .asciz 4, '30517578125\x00\x00\x00\x00\x00' + WORD $0x38373537 // .asciz 4, '7578125\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00353231 // .asciz 4, '125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x00000005 // .long 5 + WORD $0x35323531 // .asciz 4, '152587890625\x00\x00\x00\x00' + WORD $0x39383738 // .asciz 4, '87890625\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x35323630 // .asciz 4, '0625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x00000006 // .long 6 + WORD $0x39323637 // .asciz 4, '762939453125\x00\x00\x00\x00' + WORD $0x35343933 // .asciz 4, '39453125\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x35323133 // .asciz 4, '3125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x00000006 // .long 6 + WORD $0x34313833 // .asciz 4, '3814697265625\x00\x00\x00' + WORD $0x32373936 // .asciz 4, '697265625\x00\x00\x00\x00\x00\x00\x00' + WORD $0x32363536 // .asciz 4, '65625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000035 // .asciz 4, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x00000006 // .long 6 + WORD $0x37303931 // .asciz 4, '19073486328125\x00\x00' + WORD $0x36383433 // .asciz 4, '3486328125\x00\x00\x00\x00\x00\x00' + WORD $0x31383233 // .asciz 4, '328125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00003532 // .asciz 4, '25\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x00000007 // .long 7 + WORD $0x36333539 // .asciz 4, '95367431640625\x00\x00' + WORD $0x31333437 // .asciz 4, '7431640625\x00\x00\x00\x00\x00\x00' + WORD $0x36303436 // .asciz 4, '640625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00003532 // .asciz 4, '25\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x00000007 // .long 7 + WORD $0x38363734 // .asciz 4, '476837158203125\x00' + WORD $0x35313733 // .asciz 4, '37158203125\x00\x00\x00\x00\x00' + WORD $0x33303238 // .asciz 4, '8203125\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00353231 // .asciz 4, '125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x00000007 // .long 7 + WORD $0x34383332 // .asciz 4, '2384185791015625' + WORD $0x37353831 // .asciz 4, '185791015625\x00\x00\x00\x00' + WORD $0x31303139 // .asciz 4, '91015625\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x35323635 // .asciz 4, '5625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x00000007 // .long 7 + WORD $0x32393131 // .asciz 4, '1192092895507812' + WORD $0x38323930 // .asciz 4, '0928955078125\x00\x00\x00' + WORD $0x30353539 // .asciz 4, '955078125\x00\x00\x00\x00\x00\x00\x00' + WORD $0x32313837 // .asciz 4, '78125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000035 // .asciz 4, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x00000008 // .long 8 + WORD $0x30363935 // .asciz 4, '5960464477539062' + WORD $0x34343634 // .asciz 4, '4644775390625\x00\x00\x00' + WORD $0x33353737 // .asciz 4, '775390625\x00\x00\x00\x00\x00\x00\x00' + WORD $0x32363039 // .asciz 4, '90625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000035 // .asciz 4, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x00000008 // .long 8 + WORD $0x30383932 // .asciz 4, '2980232238769531' + WORD $0x32323332 // .asciz 4, '23223876953125\x00\x00' + WORD $0x36373833 // .asciz 4, '3876953125\x00\x00\x00\x00\x00\x00' + WORD $0x31333539 // .asciz 4, '953125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00003532 // .asciz 4, '25\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x00000008 // .long 8 + WORD $0x30393431 // .asciz 4, '1490116119384765' + WORD $0x31363131 // .asciz 4, '116119384765625\x00' + WORD $0x38333931 // .asciz 4, '19384765625\x00\x00\x00\x00\x00' + WORD $0x35363734 // .asciz 4, '4765625\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00353236 // .asciz 4, '625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x00000009 // .long 9 + WORD $0x30353437 // .asciz 4, '7450580596923828' + WORD $0x35303835 // .asciz 4, '580596923828125\x00' + WORD $0x32393639 // .asciz 4, '96923828125\x00\x00\x00\x00\x00' + WORD $0x38323833 // .asciz 4, '3828125\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00353231 // .asciz 4, '125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x00000009 // .long 9 + WORD $0x35323733 // .asciz 4, '3725290298461914' + WORD $0x32303932 // .asciz 4, '2902984619140625' + WORD $0x36343839 // .asciz 4, '984619140625\x00\x00\x00\x00' + WORD $0x34313931 // .asciz 4, '19140625\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x35323630 // .asciz 4, '0625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x00000009 // .long 9 + WORD $0x32363831 // .asciz 4, '1862645149230957' + WORD $0x31353436 // .asciz 4, '6451492309570312' + WORD $0x33323934 // .asciz 4, '4923095703125\x00\x00\x00' + WORD $0x37353930 // .asciz 4, '095703125\x00\x00\x00\x00\x00\x00\x00' + WORD $0x32313330 // .asciz 4, '03125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000035 // .asciz 4, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x0000000a // .long 10 + WORD $0x33313339 // .asciz 4, '9313225746154785' + WORD $0x37353232 // .asciz 4, '2257461547851562' + WORD $0x35313634 // .asciz 4, '4615478515625\x00\x00\x00' + WORD $0x35383734 // .asciz 4, '478515625\x00\x00\x00\x00\x00\x00\x00' + WORD $0x32363531 // .asciz 4, '15625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000035 // .asciz 4, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x0000000a // .long 10 + WORD $0x36353634 // .asciz 4, '4656612873077392' + WORD $0x38323136 // .asciz 4, '6128730773925781' + WORD $0x37303337 // .asciz 4, '73077392578125\x00\x00' + WORD $0x32393337 // .asciz 4, '7392578125\x00\x00\x00\x00\x00\x00' + WORD $0x31383735 // .asciz 4, '578125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00003532 // .asciz 4, '25\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x0000000a // .long 10 + WORD $0x38323332 // .asciz 4, '2328306436538696' + WORD $0x34363033 // .asciz 4, '3064365386962890' + WORD $0x33353633 // .asciz 4, '365386962890625\x00' + WORD $0x36393638 // .asciz 4, '86962890625\x00\x00\x00\x00\x00' + WORD $0x30393832 // .asciz 4, '2890625\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00353236 // .asciz 4, '625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x0000000a // .long 10 + WORD $0x34363131 // .asciz 4, '1164153218269348' + WORD $0x32333531 // .asciz 4, '1532182693481445' + WORD $0x36323831 // .asciz 4, '1826934814453125' + WORD $0x38343339 // .asciz 4, '934814453125\x00\x00\x00\x00' + WORD $0x35343431 // .asciz 4, '14453125\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x35323133 // .asciz 4, '3125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x0000000b // .long 11 + WORD $0x30323835 // .asciz 4, '5820766091346740' + WORD $0x30363637 // .asciz 4, '7660913467407226' + WORD $0x34333139 // .asciz 4, '9134674072265625' + WORD $0x30343736 // .asciz 4, '674072265625\x00\x00\x00\x00' + WORD $0x36323237 // .asciz 4, '72265625\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x35323635 // .asciz 4, '5625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x0000000b // .long 11 + WORD $0x30313932 // .asciz 4, '2910383045673370' + WORD $0x30333833 // .asciz 4, '3830456733703613' + WORD $0x37363534 // .asciz 4, '4567337036132812' + WORD $0x30373333 // .asciz 4, '3370361328125\x00\x00\x00' + WORD $0x33313633 // .asciz 4, '361328125\x00\x00\x00\x00\x00\x00\x00' + WORD $0x32313832 // .asciz 4, '28125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000035 // .asciz 4, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x0000000b // .long 11 + WORD $0x35353431 // .asciz 4, '1455191522836685' + WORD $0x35313931 // .asciz 4, '1915228366851806' + WORD $0x33383232 // .asciz 4, '2283668518066406' + WORD $0x35383636 // .asciz 4, '66851806640625\x00\x00' + WORD $0x36303831 // .asciz 4, '1806640625\x00\x00\x00\x00\x00\x00' + WORD $0x36303436 // .asciz 4, '640625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00003532 // .asciz 4, '25\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x0000000c // .long 12 + WORD $0x35373237 // .asciz 4, '7275957614183425' + WORD $0x36373539 // .asciz 4, '9576141834259033' + WORD $0x38313431 // .asciz 4, '1418342590332031' + WORD $0x35323433 // .asciz 4, '34259033203125\x00\x00' + WORD $0x33333039 // .asciz 4, '9033203125\x00\x00\x00\x00\x00\x00' + WORD $0x31333032 // .asciz 4, '203125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00003532 // .asciz 4, '25\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x0000000c // .long 12 + WORD $0x37333633 // .asciz 4, '3637978807091712' + WORD $0x38383739 // .asciz 4, '9788070917129516' + WORD $0x39303730 // .asciz 4, '0709171295166015' + WORD $0x32313731 // .asciz 4, '171295166015625\x00' + WORD $0x36313539 // .asciz 4, '95166015625\x00\x00\x00\x00\x00' + WORD $0x35313036 // .asciz 4, '6015625\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00353236 // .asciz 4, '625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x0000000c // .long 12 + WORD $0x38313831 // .asciz 4, '1818989403545856' + WORD $0x34393839 // .asciz 4, '9894035458564758' + WORD $0x34353330 // .asciz 4, '0354585647583007' + WORD $0x36353835 // .asciz 4, '5856475830078125' + WORD $0x38353734 // .asciz 4, '475830078125\x00\x00\x00\x00' + WORD $0x37303033 // .asciz 4, '30078125\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x35323138 // .asciz 4, '8125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x0000000d // .long 13 + WORD $0x34393039 // .asciz 4, '9094947017729282' + WORD $0x30373439 // .asciz 4, '9470177292823791' + WORD $0x32373731 // .asciz 4, '1772928237915039' + WORD $0x32383239 // .asciz 4, '9282379150390625' + WORD $0x31393733 // .asciz 4, '379150390625\x00\x00\x00\x00' + WORD $0x39333035 // .asciz 4, '50390625\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x35323630 // .asciz 4, '0625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x0000000d // .long 13 + WORD $0x37343534 // .asciz 4, '4547473508864641' + WORD $0x35333734 // .asciz 4, '4735088646411895' + WORD $0x36383830 // .asciz 4, '0886464118957519' + WORD $0x31343634 // .asciz 4, '4641189575195312' + WORD $0x35393831 // .asciz 4, '1895751953125\x00\x00\x00' + WORD $0x39313537 // .asciz 4, '751953125\x00\x00\x00\x00\x00\x00\x00' + WORD $0x32313335 // .asciz 4, '53125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000035 // .asciz 4, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x0000000d // .long 13 + WORD $0x33373232 // .asciz 4, '2273736754432320' + WORD $0x37363337 // .asciz 4, '7367544323205947' + WORD $0x33343435 // .asciz 4, '5443232059478759' + WORD $0x30323332 // .asciz 4, '2320594787597656' + WORD $0x37343935 // .asciz 4, '59478759765625\x00\x00' + WORD $0x39353738 // .asciz 4, '8759765625\x00\x00\x00\x00\x00\x00' + WORD $0x36353637 // .asciz 4, '765625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00003532 // .asciz 4, '25\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x0000000d // .long 13 + WORD $0x36333131 // .asciz 4, '1136868377216160' + WORD $0x33383638 // .asciz 4, '8683772161602973' + WORD $0x31323737 // .asciz 4, '7721616029739379' + WORD $0x30363136 // .asciz 4, '6160297393798828' + WORD $0x33373932 // .asciz 4, '297393798828125\x00' + WORD $0x39373339 // .asciz 4, '93798828125\x00\x00\x00\x00\x00' + WORD $0x38323838 // .asciz 4, '8828125\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00353231 // .asciz 4, '125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x0000000e // .long 14 + WORD $0x34383635 // .asciz 4, '5684341886080801' + WORD $0x38313433 // .asciz 4, '3418860808014869' + WORD $0x38303638 // .asciz 4, '8608080148696899' + WORD $0x31303830 // .asciz 4, '0801486968994140' + WORD $0x39363834 // .asciz 4, '486968994140625\x00' + WORD $0x39393836 // .asciz 4, '68994140625\x00\x00\x00\x00\x00' + WORD $0x30343134 // .asciz 4, '4140625\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00353236 // .asciz 4, '625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x0000000e // .long 14 + WORD $0x32343832 // .asciz 4, '2842170943040400' + WORD $0x39303731 // .asciz 4, '1709430404007434' + WORD $0x34303334 // .asciz 4, '4304040074348449' + WORD $0x30303430 // .asciz 4, '0400743484497070' + WORD $0x34333437 // .asciz 4, '7434844970703125' + WORD $0x39343438 // .asciz 4, '844970703125\x00\x00\x00\x00' + WORD $0x30373037 // .asciz 4, '70703125\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x35323133 // .asciz 4, '3125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x0000000e // .long 14 + WORD $0x31323431 // .asciz 4, '1421085471520200' + WORD $0x34353830 // .asciz 4, '0854715202003717' + WORD $0x32353137 // .asciz 4, '7152020037174224' + WORD $0x30303230 // .asciz 4, '0200371742248535' + WORD $0x37313733 // .asciz 4, '3717422485351562' + WORD $0x34323234 // .asciz 4, '4224853515625\x00\x00\x00' + WORD $0x35333538 // .asciz 4, '853515625\x00\x00\x00\x00\x00\x00\x00' + WORD $0x32363531 // .asciz 4, '15625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000035 // .asciz 4, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x0000000f // .long 15 + WORD $0x35303137 // .asciz 4, '7105427357601001' + WORD $0x33373234 // .asciz 4, '4273576010018587' + WORD $0x30363735 // .asciz 4, '5760100185871124' + WORD $0x31303031 // .asciz 4, '1001858711242675' + WORD $0x37383538 // .asciz 4, '8587112426757812' + WORD $0x34323131 // .asciz 4, '1124267578125\x00\x00\x00' + WORD $0x35373632 // .asciz 4, '267578125\x00\x00\x00\x00\x00\x00\x00' + WORD $0x32313837 // .asciz 4, '78125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000035 // .asciz 4, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x0000000f // .long 15 + WORD $0x32353533 // .asciz 4, '3552713678800500' + WORD $0x36333137 // .asciz 4, '7136788005009293' + WORD $0x30383837 // .asciz 4, '7880050092935562' + WORD $0x30303530 // .asciz 4, '0500929355621337' + WORD $0x33393239 // .asciz 4, '9293556213378906' + WORD $0x32363535 // .asciz 4, '55621337890625\x00\x00' + WORD $0x37333331 // .asciz 4, '1337890625\x00\x00\x00\x00\x00\x00' + WORD $0x36303938 // .asciz 4, '890625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00003532 // .asciz 4, '25\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x0000000f // .long 15 + WORD $0x36373731 // .asciz 4, '1776356839400250' + WORD $0x38363533 // .asciz 4, '3568394002504646' + WORD $0x30343933 // .asciz 4, '3940025046467781' + WORD $0x30353230 // .asciz 4, '0250464677810668' + WORD $0x36343634 // .asciz 4, '4646778106689453' + WORD $0x31383737 // .asciz 4, '778106689453125\x00' + WORD $0x38363630 // .asciz 4, '06689453125\x00\x00\x00\x00\x00' + WORD $0x33353439 // .asciz 4, '9453125\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00353231 // .asciz 4, '125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x00000010 // .long 16 + WORD $0x31383838 // .asciz 4, '8881784197001252' + WORD $0x31343837 // .asciz 4, '7841970012523233' + WORD $0x30303739 // .asciz 4, '9700125232338905' + WORD $0x32353231 // .asciz 4, '1252323389053344' + WORD $0x33333233 // .asciz 4, '3233890533447265' + WORD $0x35303938 // .asciz 4, '890533447265625\x00' + WORD $0x34343333 // .asciz 4, '33447265625\x00\x00\x00\x00\x00' + WORD $0x35363237 // .asciz 4, '7265625\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00353236 // .asciz 4, '625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x00000010 // .long 16 + WORD $0x30343434 // .asciz 4, '4440892098500626' + WORD $0x30323938 // .asciz 4, '8920985006261616' + WORD $0x30353839 // .asciz 4, '9850062616169452' + WORD $0x36323630 // .asciz 4, '0626161694526672' + WORD $0x36313631 // .asciz 4, '1616945266723632' + WORD $0x32353439 // .asciz 4, '9452667236328125' + WORD $0x32373636 // .asciz 4, '667236328125\x00\x00\x00\x00' + WORD $0x32333633 // .asciz 4, '36328125\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x35323138 // .asciz 4, '8125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x00000010 // .long 16 + WORD $0x30323232 // .asciz 4, '2220446049250313' + WORD $0x30363434 // .asciz 4, '4460492503130808' + WORD $0x35323934 // .asciz 4, '4925031308084726' + WORD $0x33313330 // .asciz 4, '0313080847263336' + WORD $0x38303830 // .asciz 4, '0808472633361816' + WORD $0x36323734 // .asciz 4, '4726333618164062' + WORD $0x36333333 // .asciz 4, '3336181640625\x00\x00\x00' + WORD $0x36313831 // .asciz 4, '181640625\x00\x00\x00\x00\x00\x00\x00' + WORD $0x32363034 // .asciz 4, '40625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000035 // .asciz 4, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x00000010 // .long 16 + WORD $0x30313131 // .asciz 4, '1110223024625156' + WORD $0x30333232 // .asciz 4, '2230246251565404' + WORD $0x32363432 // .asciz 4, '2462515654042363' + WORD $0x36353135 // .asciz 4, '5156540423631668' + WORD $0x34303435 // .asciz 4, '5404236316680908' + WORD $0x33363332 // .asciz 4, '2363166809082031' + WORD $0x38363631 // .asciz 4, '16680908203125\x00\x00' + WORD $0x38303930 // .asciz 4, '0908203125\x00\x00\x00\x00\x00\x00' + WORD $0x31333032 // .asciz 4, '203125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00003532 // .asciz 4, '25\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x00000011 // .long 17 + WORD $0x31353535 // .asciz 4, '5551115123125782' + WORD $0x31353131 // .asciz 4, '1151231257827021' + WORD $0x32313332 // .asciz 4, '2312578270211815' + WORD $0x32383735 // .asciz 4, '5782702118158340' + WORD $0x31323037 // .asciz 4, '7021181583404541' + WORD $0x35313831 // .asciz 4, '1815834045410156' + WORD $0x30343338 // .asciz 4, '83404541015625\x00\x00' + WORD $0x31343534 // .asciz 4, '4541015625\x00\x00\x00\x00\x00\x00' + WORD $0x36353130 // .asciz 4, '015625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00003532 // .asciz 4, '25\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x00000011 // .long 17 + WORD $0x35373732 // .asciz 4, '2775557561562891' + WORD $0x35373535 // .asciz 4, '5575615628913510' + WORD $0x36353136 // .asciz 4, '6156289135105907' + WORD $0x31393832 // .asciz 4, '2891351059079170' + WORD $0x30313533 // .asciz 4, '3510590791702270' + WORD $0x37303935 // .asciz 4, '5907917022705078' + WORD $0x30373139 // .asciz 4, '917022705078125\x00' + WORD $0x30373232 // .asciz 4, '22705078125\x00\x00\x00\x00\x00' + WORD $0x38373035 // .asciz 4, '5078125\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00353231 // .asciz 4, '125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x00000011 // .long 17 + WORD $0x37383331 // .asciz 4, '1387778780781445' + WORD $0x37383737 // .asciz 4, '7787807814456755' + WORD $0x38373038 // .asciz 4, '8078144567552953' + WORD $0x35343431 // .asciz 4, '1445675529539585' + WORD $0x35353736 // .asciz 4, '6755295395851135' + WORD $0x33353932 // .asciz 4, '2953958511352539' + WORD $0x35383539 // .asciz 4, '9585113525390625' + WORD $0x35333131 // .asciz 4, '113525390625\x00\x00\x00\x00' + WORD $0x39333532 // .asciz 4, '25390625\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x35323630 // .asciz 4, '0625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x00000012 // .long 18 + WORD $0x38333936 // .asciz 4, '6938893903907228' + WORD $0x39333938 // .asciz 4, '8939039072283776' + WORD $0x30393330 // .asciz 4, '0390722837764769' + WORD $0x38323237 // .asciz 4, '7228377647697925' + WORD $0x36373733 // .asciz 4, '3776476979255676' + WORD $0x39363734 // .asciz 4, '4769792556762695' + WORD $0x35323937 // .asciz 4, '7925567626953125' + WORD $0x36373635 // .asciz 4, '567626953125\x00\x00\x00\x00' + WORD $0x35393632 // .asciz 4, '26953125\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x35323133 // .asciz 4, '3125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x00000012 // .long 18 + WORD $0x39363433 // .asciz 4, '3469446951953614' + WORD $0x39363434 // .asciz 4, '4469519536141888' + WORD $0x35393135 // .asciz 4, '5195361418882384' + WORD $0x34313633 // .asciz 4, '3614188823848962' + WORD $0x38383831 // .asciz 4, '1888238489627838' + WORD $0x34383332 // .asciz 4, '2384896278381347' + WORD $0x32363938 // .asciz 4, '8962783813476562' + WORD $0x38333837 // .asciz 4, '7838134765625\x00\x00\x00' + WORD $0x37343331 // .asciz 4, '134765625\x00\x00\x00\x00\x00\x00\x00' + WORD $0x32363536 // .asciz 4, '65625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000035 // .asciz 4, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x00000012 // .long 18 + WORD $0x34333731 // .asciz 4, '1734723475976807' + WORD $0x34333237 // .asciz 4, '7234759768070944' + WORD $0x37393537 // .asciz 4, '7597680709441192' + WORD $0x37303836 // .asciz 4, '6807094411924481' + WORD $0x34343930 // .asciz 4, '0944119244813919' + WORD $0x32393131 // .asciz 4, '1192448139190673' + WORD $0x31383434 // .asciz 4, '4481391906738281' + WORD $0x39313933 // .asciz 4, '39190673828125\x00\x00' + WORD $0x33373630 // .asciz 4, '0673828125\x00\x00\x00\x00\x00\x00' + WORD $0x31383238 // .asciz 4, '828125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00003532 // .asciz 4, '25\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + WORD $0x00000013 // .long 19 + WORD $0x33373638 // .asciz 4, '8673617379884035' + WORD $0x33373136 // .asciz 4, '6173798840354720' + WORD $0x38383937 // .asciz 4, '7988403547205962' + WORD $0x35333034 // .asciz 4, '4035472059622406' + WORD $0x30323734 // .asciz 4, '4720596224069595' + WORD $0x32363935 // .asciz 4, '5962240695953369' + WORD $0x36303432 // .asciz 4, '2406959533691406' + WORD $0x35393539 // .asciz 4, '95953369140625\x00\x00' + WORD $0x39363333 // .asciz 4, '3369140625\x00\x00\x00\x00\x00\x00' + WORD $0x36303431 // .asciz 4, '140625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00003532 // .asciz 4, '25\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00\x00\x00\x00\x00' + WORD $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + +TEXT ·__vnumber(SB), NOSPLIT, $0-24 + NO_LOCAL_POINTERS + +_entry: + MOVD 16(g), R16 + SUB $176, RSP, R17 + CMP R16, R17 + BLS _stack_grow + +_vnumber: + MOVD s+0(FP), R0 + MOVD p+8(FP), R1 + MOVD v+16(FP), R2 + MOVD ·_subr__vnumber(SB), R11 + WORD $0x1000005e // adr x30, .+8 + JMP (R11) + RET + +_stack_grow: + MOVD R30, R3 + CALL runtime·morestack_noctxt<>(SB) + JMP _entry diff --git a/vendor/github.com/bytedance/sonic/internal/native/neon/vnumber_subr_arm64.go b/vendor/github.com/bytedance/sonic/internal/native/neon/vnumber_subr_arm64.go new file mode 100644 index 000000000..78dd2c313 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/neon/vnumber_subr_arm64.go @@ -0,0 +1,25 @@ +// +build !noasm !appengine +// Code generated by asm2asm, DO NOT EDIT. + +package neon + +//go:nosplit +//go:noescape +//goland:noinspection ALL +func __vnumber_entry__() uintptr + +var ( + _subr__vnumber uintptr = __vnumber_entry__() + 0 +) + +const ( + _stack__vnumber = 112 +) + +var ( + _ = _subr__vnumber +) + +const ( + _ = _stack__vnumber +) diff --git a/vendor/github.com/bytedance/sonic/internal/native/neon/vsigned_arm64.go b/vendor/github.com/bytedance/sonic/internal/native/neon/vsigned_arm64.go new file mode 100644 index 000000000..35b4c6083 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/neon/vsigned_arm64.go @@ -0,0 +1,32 @@ + +/* + * Copyright 2021 ByteDance 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 neon + +import ( + `github.com/bytedance/sonic/internal/native/types` +) + +//go:nosplit +func vsigned(s *string, p *int, v *types.JsonState) { + __vsigned(s, p, v) +} + +//go:nosplit +//go:noescape +//goland:noinspection GoUnusedParameter +func __vsigned(s *string, p *int, v *types.JsonState) diff --git a/vendor/github.com/bytedance/sonic/internal/native/neon/vsigned_arm64.s b/vendor/github.com/bytedance/sonic/internal/native/neon/vsigned_arm64.s new file mode 100644 index 000000000..be88502a1 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/neon/vsigned_arm64.s @@ -0,0 +1,156 @@ +// +build !noasm !appengine +// Code generated by asm2asm, DO NOT EDIT. + +#include "go_asm.h" +#include "funcdata.h" +#include "textflag.h" + +TEXT ·__vsigned_entry__(SB), NOSPLIT, $16 + NO_LOCAL_POINTERS + WORD $0x100000a0 // adr x0, .+20 + MOVD R0, ret(FP) + RET + // .p2align 2, 0x00 +_vsigned: + WORD $0xd10083ff // sub sp, sp, #32 + WORD $0xa900fbfd // stp fp, lr, [sp, #8] + WORD $0xa93ffbfd // stp fp, lr, [sp, #-8] + WORD $0xd10023fd // sub fp, sp, #8 + WORD $0xf9400028 // ldr x8, [x1] + WORD $0xa940240a // ldp x10, x9, [x0] + WORD $0x5280012b // mov w11, #9 + WORD $0xa900fc5f // stp xzr, xzr, [x2, #8] + WORD $0xf900004b // str x11, [x2] + WORD $0xf940002b // ldr x11, [x1] + WORD $0xf9000c4b // str x11, [x2, #24] + WORD $0xeb09011f // cmp x8, x9 + WORD $0x54000642 // b.hs LBB0_12 $200(%rip) + WORD $0x3868694c // ldrb w12, [x10, x8] + WORD $0x7100b59f // cmp w12, #45 + WORD $0x540006a1 // b.ne LBB0_13 $212(%rip) + WORD $0x91000508 // add x8, x8, #1 + WORD $0xeb09011f // cmp x8, x9 + WORD $0x54000582 // b.hs LBB0_12 $176(%rip) + WORD $0x3868694c // ldrb w12, [x10, x8] + WORD $0x9280000b // mov x11, #-1 + WORD $0x5100e98d // sub w13, w12, #58 + WORD $0x31002dbf // cmn w13, #11 + WORD $0x54000629 // b.ls LBB0_14 $196(%rip) +LBB0_4: + WORD $0x7100c19f // cmp w12, #48 + WORD $0x54000181 // b.ne LBB0_6 $48(%rip) + WORD $0x8b08014c // add x12, x10, x8 + WORD $0x3940058c // ldrb w12, [x12, #1] + WORD $0x5100b98c // sub w12, w12, #46 + WORD $0x7100dd9f // cmp w12, #55 + WORD $0x5280002d // mov w13, #1 + WORD $0x9acc21ac // lsl x12, x13, x12 + WORD $0xb20903ed // mov x13, #36028797027352576 + WORD $0xf280002d // movk x13, #1 + WORD $0x8a0d018c // and x12, x12, x13 + WORD $0xfa409984 // ccmp x12, #0, #4, ls + WORD $0x540007e0 // b.eq LBB0_22 $252(%rip) +LBB0_6: + WORD $0xd280000c // mov x12, #0 + WORD $0x5280014d // mov w13, #10 +LBB0_7: + WORD $0xeb08013f // cmp x9, x8 + WORD $0x540006c0 // b.eq LBB0_21 $216(%rip) + WORD $0x3868694e // ldrb w14, [x10, x8] + WORD $0x5100c1ce // sub w14, w14, #48 + WORD $0x710025df // cmp w14, #9 + WORD $0x54000448 // b.hi LBB0_15 $136(%rip) + WORD $0x9b4d7d8f // smulh x15, x12, x13 + WORD $0x8b0c098c // add x12, x12, x12, lsl #2 + WORD $0xd37ff98c // lsl x12, x12, #1 + WORD $0xeb8cfdff // cmp x15, x12, asr #63 + WORD $0x540000c1 // b.ne LBB0_11 $24(%rip) + WORD $0x91000508 // add x8, x8, #1 + WORD $0x92401dce // and x14, x14, #0xff + WORD $0x9b2e7d6e // smull x14, w11, w14 + WORD $0xab0e018c // adds x12, x12, x14 + WORD $0x54fffe27 // b.vc LBB0_7 $-60(%rip) +LBB0_11: + WORD $0xd1000508 // sub x8, x8, #1 + WORD $0xf9000028 // str x8, [x1] + WORD $0x92800088 // mov x8, #-5 + WORD $0xf9000048 // str x8, [x2] + WORD $0xa940fbfd // ldp fp, lr, [sp, #8] + WORD $0x910083ff // add sp, sp, #32 + WORD $0xd65f03c0 // ret +LBB0_12: + WORD $0xf9000029 // str x9, [x1] + WORD $0x92800008 // mov x8, #-1 + WORD $0xf9000048 // str x8, [x2] + WORD $0xa940fbfd // ldp fp, lr, [sp, #8] + WORD $0x910083ff // add sp, sp, #32 + WORD $0xd65f03c0 // ret +LBB0_13: + WORD $0x5280002b // mov w11, #1 + WORD $0x5100e98d // sub w13, w12, #58 + WORD $0x31002dbf // cmn w13, #11 + WORD $0x54fffa28 // b.hi LBB0_4 $-188(%rip) +LBB0_14: + WORD $0xf9000028 // str x8, [x1] + WORD $0x92800028 // mov x8, #-2 + WORD $0xf9000048 // str x8, [x2] + WORD $0xa940fbfd // ldp fp, lr, [sp, #8] + WORD $0x910083ff // add sp, sp, #32 + WORD $0xd65f03c0 // ret +LBB0_15: + WORD $0xeb09011f // cmp x8, x9 + WORD $0x540001c2 // b.hs LBB0_20 $56(%rip) + WORD $0x38686949 // ldrb w9, [x10, x8] + WORD $0x7100b93f // cmp w9, #46 + WORD $0x540000a0 // b.eq LBB0_19 $20(%rip) + WORD $0x7101153f // cmp w9, #69 + WORD $0x54000060 // b.eq LBB0_19 $12(%rip) + WORD $0x7101953f // cmp w9, #101 + WORD $0x540000e1 // b.ne LBB0_20 $28(%rip) +LBB0_19: + WORD $0xf9000028 // str x8, [x1] + WORD $0x928000a8 // mov x8, #-6 + WORD $0xf9000048 // str x8, [x2] + WORD $0xa940fbfd // ldp fp, lr, [sp, #8] + WORD $0x910083ff // add sp, sp, #32 + WORD $0xd65f03c0 // ret +LBB0_20: + WORD $0xaa0803e9 // mov x9, x8 +LBB0_21: + WORD $0xf9000029 // str x9, [x1] + WORD $0xf900084c // str x12, [x2, #16] + WORD $0xa940fbfd // ldp fp, lr, [sp, #8] + WORD $0x910083ff // add sp, sp, #32 + WORD $0xd65f03c0 // ret +LBB0_22: + WORD $0x91000508 // add x8, x8, #1 + WORD $0xf9000028 // str x8, [x1] + WORD $0xa940fbfd // ldp fp, lr, [sp, #8] + WORD $0x910083ff // add sp, sp, #32 + WORD $0xd65f03c0 // ret + // .p2align 2, 0x00 +_MASK_USE_NUMBER: + WORD $0x00000002 // .long 2 + +TEXT ·__vsigned(SB), NOSPLIT, $0-24 + NO_LOCAL_POINTERS + +_entry: + MOVD 16(g), R16 + SUB $96, RSP, R17 + CMP R16, R17 + BLS _stack_grow + +_vsigned: + MOVD s+0(FP), R0 + MOVD p+8(FP), R1 + MOVD v+16(FP), R2 + MOVD ·_subr__vsigned(SB), R11 + WORD $0x1000005e // adr x30, .+8 + JMP (R11) + RET + +_stack_grow: + MOVD R30, R3 + CALL runtime·morestack_noctxt<>(SB) + JMP _entry diff --git a/vendor/github.com/bytedance/sonic/internal/native/neon/vsigned_subr_arm64.go b/vendor/github.com/bytedance/sonic/internal/native/neon/vsigned_subr_arm64.go new file mode 100644 index 000000000..902bd4dc8 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/neon/vsigned_subr_arm64.go @@ -0,0 +1,25 @@ +// +build !noasm !appengine +// Code generated by asm2asm, DO NOT EDIT. + +package neon + +//go:nosplit +//go:noescape +//goland:noinspection ALL +func __vsigned_entry__() uintptr + +var ( + _subr__vsigned uintptr = __vsigned_entry__() + 0 +) + +const ( + _stack__vsigned = 32 +) + +var ( + _ = _subr__vsigned +) + +const ( + _ = _stack__vsigned +) diff --git a/vendor/github.com/bytedance/sonic/internal/native/neon/vstring_arm64.go b/vendor/github.com/bytedance/sonic/internal/native/neon/vstring_arm64.go new file mode 100644 index 000000000..5232c81ee --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/neon/vstring_arm64.go @@ -0,0 +1,32 @@ + +/* + * Copyright 2021 ByteDance 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 neon + +import ( + `github.com/bytedance/sonic/internal/native/types` +) + +//go:nosplit +func vstring(s *string, p *int, v *types.JsonState, flags uint64) { + __vstring(s, p, v, flags) +} + +//go:nosplit +//go:noescape +//goland:noinspection GoUnusedParameter +func __vstring(s *string, p *int, v *types.JsonState, flags uint64) diff --git a/vendor/github.com/bytedance/sonic/internal/native/neon/vstring_arm64.s b/vendor/github.com/bytedance/sonic/internal/native/neon/vstring_arm64.s new file mode 100644 index 000000000..9093dfb44 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/neon/vstring_arm64.s @@ -0,0 +1,628 @@ +// +build !noasm !appengine +// Code generated by asm2asm, DO NOT EDIT. + +#include "go_asm.h" +#include "funcdata.h" +#include "textflag.h" + +TEXT ·__vstring_entry__(SB), NOSPLIT, $32 + NO_LOCAL_POINTERS + WORD $0x100000a0 // adr x0, .+20 + MOVD R0, ret(FP) + RET + // .p2align 4, 0x00 +lCPI0_0: + WORD $0x08040201 + WORD $0x80402010 + WORD $0x08040201 + WORD $0x80402010 + // // .byte 1 +// .byte 2 +// .byte 4 +// .byte 8 +// .byte 16 +// .byte 32 +// .byte 64 +// .byte 128 +// .byte 1 +// .byte 2 +// .byte 4 +// .byte 8 +// .byte 16 +// .byte 32 +// .byte 64 +// .byte 128 + +lCPI0_1: + WORD $0x09010800 + WORD $0x0b030a02 + WORD $0x0d050c04 + WORD $0x0f070e06 + // // .byte 0 +// .byte 8 +// .byte 1 +// .byte 9 +// .byte 2 +// .byte 10 +// .byte 3 +// .byte 11 +// .byte 4 +// .byte 12 +// .byte 5 +// .byte 13 +// .byte 6 +// .byte 14 +// .byte 7 +// .byte 15 + +_vstring: + WORD $0xd100c3ff // sub sp, sp, #48 + WORD $0xa900cff4 // stp x20, x19, [sp, #8] + WORD $0xa901fbfd // stp fp, lr, [sp, #24] + WORD $0xa93ffbfd // stp fp, lr, [sp, #-8] + WORD $0xd10023fd // sub fp, sp, #8 + WORD $0xf9400028 // ldr x8, [x1] + WORD $0xf9400409 // ldr x9, [x0, #8] + WORD $0x37280c43 // tbnz w3, #5, LBB0_11 $392(%rip) + WORD $0xeb08012b // subs x11, x9, x8 + WORD $0x54003b00 // b.eq LBB0_75 $1888(%rip) + WORD $0xf940000a // ldr x10, [x0] + WORD $0xf101017f // cmp x11, #64 + WORD $0x54001d43 // b.lo LBB0_26 $936(%rip) + WORD $0xd280000c // mov x12, #0 + WORD $0x92800009 // mov x9, #-1 + WORD $0x4f01e440 // movi.16b v0, #34 + WORD $0x4f02e781 // movi.16b v1, #92 +Lloh0: + WORD $0x10fffced // adr x13, lCPI0_0 $-100(%rip) +Lloh1: + WORD $0x3dc001a2 // ldr q2, [x13, lCPI0_0@PAGEOFF] $0(%rip) +Lloh2: + WORD $0x10fffd2d // adr x13, lCPI0_1 $-92(%rip) +Lloh3: + WORD $0x3dc001a3 // ldr q3, [x13, lCPI0_1@PAGEOFF] $0(%rip) + WORD $0xaa0803ed // mov x13, x8 +LBB0_4: + WORD $0x8b0d014e // add x14, x10, x13 + WORD $0xad4015c4 // ldp q4, q5, [x14] + WORD $0xad411dc6 // ldp q6, q7, [x14, #32] + WORD $0x6e208c90 // cmeq.16b v16, v4, v0 + WORD $0x6e208cb1 // cmeq.16b v17, v5, v0 + WORD $0x6e208cd2 // cmeq.16b v18, v6, v0 + WORD $0x6e208cf3 // cmeq.16b v19, v7, v0 + WORD $0x6e218c84 // cmeq.16b v4, v4, v1 + WORD $0x6e218ca5 // cmeq.16b v5, v5, v1 + WORD $0x6e218cc6 // cmeq.16b v6, v6, v1 + WORD $0x6e218ce7 // cmeq.16b v7, v7, v1 + WORD $0x4e221e10 // and.16b v16, v16, v2 + WORD $0x4e030210 // tbl.16b v16, { v16 }, v3 + WORD $0x4e71ba10 // addv.8h h16, v16 + WORD $0x1e26020e // fmov w14, s16 + WORD $0x4e221e30 // and.16b v16, v17, v2 + WORD $0x4e030210 // tbl.16b v16, { v16 }, v3 + WORD $0x4e71ba10 // addv.8h h16, v16 + WORD $0x1e26020f // fmov w15, s16 + WORD $0x4e221e50 // and.16b v16, v18, v2 + WORD $0x4e030210 // tbl.16b v16, { v16 }, v3 + WORD $0x4e71ba10 // addv.8h h16, v16 + WORD $0x1e260210 // fmov w16, s16 + WORD $0x4e221e70 // and.16b v16, v19, v2 + WORD $0x4e030210 // tbl.16b v16, { v16 }, v3 + WORD $0x4e71ba10 // addv.8h h16, v16 + WORD $0x1e260211 // fmov w17, s16 + WORD $0x4e221c84 // and.16b v4, v4, v2 + WORD $0x4e030084 // tbl.16b v4, { v4 }, v3 + WORD $0x4e71b884 // addv.8h h4, v4 + WORD $0x1e260083 // fmov w3, s4 + WORD $0x4e221ca4 // and.16b v4, v5, v2 + WORD $0x4e030084 // tbl.16b v4, { v4 }, v3 + WORD $0x4e71b884 // addv.8h h4, v4 + WORD $0x1e260084 // fmov w4, s4 + WORD $0x4e221cc4 // and.16b v4, v6, v2 + WORD $0x4e030084 // tbl.16b v4, { v4 }, v3 + WORD $0x4e71b884 // addv.8h h4, v4 + WORD $0x1e260085 // fmov w5, s4 + WORD $0x4e221ce4 // and.16b v4, v7, v2 + WORD $0x4e030084 // tbl.16b v4, { v4 }, v3 + WORD $0x4e71b884 // addv.8h h4, v4 + WORD $0x1e260086 // fmov w6, s4 + WORD $0xd3607e10 // lsl x16, x16, #32 + WORD $0xaa11c210 // orr x16, x16, x17, lsl #48 + WORD $0x53103def // lsl w15, w15, #16 + WORD $0xaa0f020f // orr x15, x16, x15 + WORD $0xaa0e01ee // orr x14, x15, x14 + WORD $0xd3607caf // lsl x15, x5, #32 + WORD $0xaa06c1ef // orr x15, x15, x6, lsl #48 + WORD $0x53103c90 // lsl w16, w4, #16 + WORD $0xaa1001ef // orr x15, x15, x16 + WORD $0xaa0301ef // orr x15, x15, x3 + WORD $0xb500010f // cbnz x15, LBB0_8 $32(%rip) + WORD $0xb500018c // cbnz x12, LBB0_9 $48(%rip) + WORD $0xb50002ce // cbnz x14, LBB0_10 $88(%rip) +LBB0_7: + WORD $0xd101016b // sub x11, x11, #64 + WORD $0x910101ad // add x13, x13, #64 + WORD $0xf100fd7f // cmp x11, #63 + WORD $0x54fff8a8 // b.hi LBB0_4 $-236(%rip) + WORD $0x140000a0 // b LBB0_24 $640(%rip) +LBB0_8: + WORD $0xb100053f // cmn x9, #1 + WORD $0xdac001f0 // rbit x16, x15 + WORD $0xdac01210 // clz x16, x16 + WORD $0x8b0d0210 // add x16, x16, x13 + WORD $0x9a901129 // csel x9, x9, x16, ne +LBB0_9: + WORD $0x8a2c01f0 // bic x16, x15, x12 + WORD $0xaa100591 // orr x17, x12, x16, lsl #1 + WORD $0x8a3101ec // bic x12, x15, x17 + WORD $0x9201f18c // and x12, x12, #0xaaaaaaaaaaaaaaaa + WORD $0xab10018f // adds x15, x12, x16 + WORD $0x1a9f37ec // cset w12, hs + WORD $0xd37ff9ef // lsl x15, x15, #1 + WORD $0xd200f1ef // eor x15, x15, #0x5555555555555555 + WORD $0x8a1101ef // and x15, x15, x17 + WORD $0x8a2f01ce // bic x14, x14, x15 + WORD $0xb4fffd8e // cbz x14, LBB0_7 $-80(%rip) +LBB0_10: + WORD $0xdac001ca // rbit x10, x14 + WORD $0xdac0114a // clz x10, x10 + WORD $0x8b0d014a // add x10, x10, x13 + WORD $0x9100054e // add x14, x10, #1 + WORD $0xb6f8102e // tbz x14, #63, LBB0_23 $516(%rip) + WORD $0x1400017a // b LBB0_76 $1512(%rip) +LBB0_11: + WORD $0xeb08012c // subs x12, x9, x8 + WORD $0x54002ee0 // b.eq LBB0_75 $1500(%rip) + WORD $0xf940000a // ldr x10, [x0] + WORD $0x10fff18f // adr x15, lCPI0_0 $-464(%rip) + WORD $0x10fff1ee // adr x14, lCPI0_1 $-452(%rip) + WORD $0xf101019f // cmp x12, #64 + WORD $0x540015e3 // b.lo LBB0_32 $700(%rip) + WORD $0xd280000b // mov x11, #0 + WORD $0x92800009 // mov x9, #-1 + WORD $0x4f01e440 // movi.16b v0, #34 + WORD $0x3dc001e1 // ldr q1, [x15, lCPI0_0@PAGEOFF] $0(%rip) + WORD $0x3dc001c2 // ldr q2, [x14, lCPI0_1@PAGEOFF] $0(%rip) + WORD $0x4f02e783 // movi.16b v3, #92 + WORD $0x4f01e404 // movi.16b v4, #32 + WORD $0xaa0803ed // mov x13, x8 +LBB0_14: + WORD $0x8b0d0150 // add x16, x10, x13 + WORD $0xad401e10 // ldp q16, q7, [x16] + WORD $0xad411606 // ldp q6, q5, [x16, #32] + WORD $0x6e208e11 // cmeq.16b v17, v16, v0 + WORD $0x4e211e31 // and.16b v17, v17, v1 + WORD $0x4e020231 // tbl.16b v17, { v17 }, v2 + WORD $0x4e71ba31 // addv.8h h17, v17 + WORD $0x1e260230 // fmov w16, s17 + WORD $0x6e208cf1 // cmeq.16b v17, v7, v0 + WORD $0x4e211e31 // and.16b v17, v17, v1 + WORD $0x4e020231 // tbl.16b v17, { v17 }, v2 + WORD $0x4e71ba31 // addv.8h h17, v17 + WORD $0x1e260231 // fmov w17, s17 + WORD $0x6e208cd1 // cmeq.16b v17, v6, v0 + WORD $0x4e211e31 // and.16b v17, v17, v1 + WORD $0x4e020231 // tbl.16b v17, { v17 }, v2 + WORD $0x4e71ba31 // addv.8h h17, v17 + WORD $0x1e260223 // fmov w3, s17 + WORD $0x6e208cb1 // cmeq.16b v17, v5, v0 + WORD $0x4e211e31 // and.16b v17, v17, v1 + WORD $0x4e020231 // tbl.16b v17, { v17 }, v2 + WORD $0x4e71ba31 // addv.8h h17, v17 + WORD $0x1e260224 // fmov w4, s17 + WORD $0x6e238e11 // cmeq.16b v17, v16, v3 + WORD $0x4e211e31 // and.16b v17, v17, v1 + WORD $0x4e020231 // tbl.16b v17, { v17 }, v2 + WORD $0x4e71ba31 // addv.8h h17, v17 + WORD $0x1e260225 // fmov w5, s17 + WORD $0x6e238cf1 // cmeq.16b v17, v7, v3 + WORD $0x4e211e31 // and.16b v17, v17, v1 + WORD $0x4e020231 // tbl.16b v17, { v17 }, v2 + WORD $0x4e71ba31 // addv.8h h17, v17 + WORD $0x1e260226 // fmov w6, s17 + WORD $0x6e238cd1 // cmeq.16b v17, v6, v3 + WORD $0x4e211e31 // and.16b v17, v17, v1 + WORD $0x4e020231 // tbl.16b v17, { v17 }, v2 + WORD $0x4e71ba31 // addv.8h h17, v17 + WORD $0x1e260227 // fmov w7, s17 + WORD $0x6e238cb1 // cmeq.16b v17, v5, v3 + WORD $0x4e211e31 // and.16b v17, v17, v1 + WORD $0x4e020231 // tbl.16b v17, { v17 }, v2 + WORD $0x4e71ba31 // addv.8h h17, v17 + WORD $0x1e260233 // fmov w19, s17 + WORD $0xd3607c63 // lsl x3, x3, #32 + WORD $0xaa04c063 // orr x3, x3, x4, lsl #48 + WORD $0x53103e31 // lsl w17, w17, #16 + WORD $0xaa110071 // orr x17, x3, x17 + WORD $0xaa100230 // orr x16, x17, x16 + WORD $0xd3607cf1 // lsl x17, x7, #32 + WORD $0xaa13c231 // orr x17, x17, x19, lsl #48 + WORD $0x53103cc3 // lsl w3, w6, #16 + WORD $0xaa030231 // orr x17, x17, x3 + WORD $0xaa050231 // orr x17, x17, x5 + WORD $0xb5000451 // cbnz x17, LBB0_19 $136(%rip) + WORD $0xb50004cb // cbnz x11, LBB0_20 $152(%rip) +LBB0_16: + WORD $0x6e303490 // cmhi.16b v16, v4, v16 + WORD $0x4e211e10 // and.16b v16, v16, v1 + WORD $0x4e020210 // tbl.16b v16, { v16 }, v2 + WORD $0x4e71ba10 // addv.8h h16, v16 + WORD $0x1e260211 // fmov w17, s16 + WORD $0x6e273487 // cmhi.16b v7, v4, v7 + WORD $0x4e211ce7 // and.16b v7, v7, v1 + WORD $0x4e0200e7 // tbl.16b v7, { v7 }, v2 + WORD $0x4e71b8e7 // addv.8h h7, v7 + WORD $0x1e2600e3 // fmov w3, s7 + WORD $0x6e263486 // cmhi.16b v6, v4, v6 + WORD $0x4e211cc6 // and.16b v6, v6, v1 + WORD $0x4e0200c6 // tbl.16b v6, { v6 }, v2 + WORD $0x4e71b8c6 // addv.8h h6, v6 + WORD $0x1e2600c4 // fmov w4, s6 + WORD $0x6e253485 // cmhi.16b v5, v4, v5 + WORD $0x4e211ca5 // and.16b v5, v5, v1 + WORD $0x4e0200a5 // tbl.16b v5, { v5 }, v2 + WORD $0x4e71b8a5 // addv.8h h5, v5 + WORD $0x1e2600a5 // fmov w5, s5 + WORD $0xd3607c84 // lsl x4, x4, #32 + WORD $0xaa05c084 // orr x4, x4, x5, lsl #48 + WORD $0x53103c63 // lsl w3, w3, #16 + WORD $0xaa030083 // orr x3, x4, x3 + WORD $0xaa110071 // orr x17, x3, x17 + WORD $0xb50002f0 // cbnz x16, LBB0_21 $92(%rip) + WORD $0xb5002011 // cbnz x17, LBB0_69 $1024(%rip) + WORD $0xd101018c // sub x12, x12, #64 + WORD $0x910101ad // add x13, x13, #64 + WORD $0xf100fd9f // cmp x12, #63 + WORD $0x54fff568 // b.hi LBB0_14 $-340(%rip) + WORD $0x14000026 // b LBB0_25 $152(%rip) +LBB0_19: + WORD $0xb100053f // cmn x9, #1 + WORD $0xdac00223 // rbit x3, x17 + WORD $0xdac01063 // clz x3, x3 + WORD $0x8b0d0063 // add x3, x3, x13 + WORD $0x9a831129 // csel x9, x9, x3, ne +LBB0_20: + WORD $0x8a2b0223 // bic x3, x17, x11 + WORD $0xaa030564 // orr x4, x11, x3, lsl #1 + WORD $0x8a24022b // bic x11, x17, x4 + WORD $0x9201f16b // and x11, x11, #0xaaaaaaaaaaaaaaaa + WORD $0xab030171 // adds x17, x11, x3 + WORD $0x1a9f37eb // cset w11, hs + WORD $0xd37ffa31 // lsl x17, x17, #1 + WORD $0xd200f231 // eor x17, x17, #0x5555555555555555 + WORD $0x8a040231 // and x17, x17, x4 + WORD $0x8a310210 // bic x16, x16, x17 + WORD $0x17ffffd1 // b LBB0_16 $-188(%rip) +LBB0_21: + WORD $0xdac0020a // rbit x10, x16 + WORD $0xdac0114a // clz x10, x10 + WORD $0xdac0022b // rbit x11, x17 + WORD $0xdac0116b // clz x11, x11 + WORD $0xeb0a017f // cmp x11, x10 + WORD $0x54001ca3 // b.lo LBB0_69 $916(%rip) + WORD $0x8b0d014a // add x10, x10, x13 + WORD $0x9100054e // add x14, x10, #1 + WORD $0xb7f81f6e // tbnz x14, #63, LBB0_76 $1004(%rip) +LBB0_23: + WORD $0xf900002e // str x14, [x1] + WORD $0x528000ea // mov w10, #7 + WORD $0xf900004a // str x10, [x2] + WORD $0xeb0e013f // cmp x9, x14 + WORD $0xda9fb129 // csinv x9, x9, xzr, lt + WORD $0xa9012448 // stp x8, x9, [x2, #16] + WORD $0xa941fbfd // ldp fp, lr, [sp, #24] + WORD $0xa940cff4 // ldp x20, x19, [sp, #8] + WORD $0x9100c3ff // add sp, sp, #48 + WORD $0xd65f03c0 // ret +LBB0_24: + WORD $0x8b0d014d // add x13, x10, x13 + WORD $0x14000006 // b LBB0_27 $24(%rip) +LBB0_25: + WORD $0x8b0d014d // add x13, x10, x13 + WORD $0x1400002c // b LBB0_33 $176(%rip) +LBB0_26: + WORD $0xd280000c // mov x12, #0 + WORD $0x8b08014d // add x13, x10, x8 + WORD $0x92800009 // mov x9, #-1 +LBB0_27: + WORD $0xf100816e // subs x14, x11, #32 + WORD $0x54000e83 // b.lo LBB0_42 $464(%rip) + WORD $0xad4005a0 // ldp q0, q1, [x13] + WORD $0x4f01e442 // movi.16b v2, #34 + WORD $0x6e228c03 // cmeq.16b v3, v0, v2 + WORD $0x6e228c22 // cmeq.16b v2, v1, v2 + WORD $0x4f02e784 // movi.16b v4, #92 + WORD $0x6e248c00 // cmeq.16b v0, v0, v4 + WORD $0x6e248c21 // cmeq.16b v1, v1, v4 +Lloh4: + WORD $0x10ffdecb // adr x11, lCPI0_0 $-1064(%rip) +Lloh5: + WORD $0x3dc00164 // ldr q4, [x11, lCPI0_0@PAGEOFF] $0(%rip) + WORD $0x4e241c63 // and.16b v3, v3, v4 +Lloh6: + WORD $0x10ffdeeb // adr x11, lCPI0_1 $-1060(%rip) +Lloh7: + WORD $0x3dc00165 // ldr q5, [x11, lCPI0_1@PAGEOFF] $0(%rip) + WORD $0x4e050063 // tbl.16b v3, { v3 }, v5 + WORD $0x4e71b863 // addv.8h h3, v3 + WORD $0x1e26006b // fmov w11, s3 + WORD $0x4e241c42 // and.16b v2, v2, v4 + WORD $0x4e050042 // tbl.16b v2, { v2 }, v5 + WORD $0x4e71b842 // addv.8h h2, v2 + WORD $0x1e260050 // fmov w16, s2 + WORD $0x4e241c00 // and.16b v0, v0, v4 + WORD $0x4e050000 // tbl.16b v0, { v0 }, v5 + WORD $0x4e71b800 // addv.8h h0, v0 + WORD $0x1e26000f // fmov w15, s0 + WORD $0x4e241c20 // and.16b v0, v1, v4 + WORD $0x4e050000 // tbl.16b v0, { v0 }, v5 + WORD $0x4e71b800 // addv.8h h0, v0 + WORD $0x1e260011 // fmov w17, s0 + WORD $0x33103e0b // bfi w11, w16, #16, #16 + WORD $0x33103e2f // bfi w15, w17, #16, #16 + WORD $0x3500080f // cbnz w15, LBB0_39 $256(%rip) + WORD $0xb50008ac // cbnz x12, LBB0_40 $276(%rip) + WORD $0xb4000a4b // cbz x11, LBB0_41 $328(%rip) +LBB0_31: + WORD $0xdac0016b // rbit x11, x11 + WORD $0xdac0116b // clz x11, x11 + WORD $0x14000036 // b LBB0_38 $216(%rip) +LBB0_32: + WORD $0xd280000b // mov x11, #0 + WORD $0x8b08014d // add x13, x10, x8 + WORD $0x92800009 // mov x9, #-1 +LBB0_33: + WORD $0xf1008190 // subs x16, x12, #32 + WORD $0x54001103 // b.lo LBB0_59 $544(%rip) + WORD $0xad4005a0 // ldp q0, q1, [x13] + WORD $0x4f01e442 // movi.16b v2, #34 + WORD $0x6e228c03 // cmeq.16b v3, v0, v2 + WORD $0x3dc001e4 // ldr q4, [x15, lCPI0_0@PAGEOFF] $0(%rip) + WORD $0x4e241c63 // and.16b v3, v3, v4 + WORD $0x3dc001c5 // ldr q5, [x14, lCPI0_1@PAGEOFF] $0(%rip) + WORD $0x4e050063 // tbl.16b v3, { v3 }, v5 + WORD $0x4e71b863 // addv.8h h3, v3 + WORD $0x1e26006c // fmov w12, s3 + WORD $0x6e228c22 // cmeq.16b v2, v1, v2 + WORD $0x4e241c42 // and.16b v2, v2, v4 + WORD $0x4e050042 // tbl.16b v2, { v2 }, v5 + WORD $0x4e71b842 // addv.8h h2, v2 + WORD $0x1e260051 // fmov w17, s2 + WORD $0x4f02e782 // movi.16b v2, #92 + WORD $0x6e228c03 // cmeq.16b v3, v0, v2 + WORD $0x4e241c63 // and.16b v3, v3, v4 + WORD $0x4e050063 // tbl.16b v3, { v3 }, v5 + WORD $0x4e71b863 // addv.8h h3, v3 + WORD $0x1e26006f // fmov w15, s3 + WORD $0x6e228c22 // cmeq.16b v2, v1, v2 + WORD $0x4e241c42 // and.16b v2, v2, v4 + WORD $0x4e050042 // tbl.16b v2, { v2 }, v5 + WORD $0x4e71b842 // addv.8h h2, v2 + WORD $0x1e260043 // fmov w3, s2 + WORD $0x4f01e402 // movi.16b v2, #32 + WORD $0x6e203440 // cmhi.16b v0, v2, v0 + WORD $0x4e241c00 // and.16b v0, v0, v4 + WORD $0x4e050000 // tbl.16b v0, { v0 }, v5 + WORD $0x4e71b800 // addv.8h h0, v0 + WORD $0x1e26000e // fmov w14, s0 + WORD $0x6e213440 // cmhi.16b v0, v2, v1 + WORD $0x4e241c00 // and.16b v0, v0, v4 + WORD $0x4e050000 // tbl.16b v0, { v0 }, v5 + WORD $0x4e71b800 // addv.8h h0, v0 + WORD $0x1e260004 // fmov w4, s0 + WORD $0x33103e2c // bfi w12, w17, #16, #16 + WORD $0x33103c6f // bfi w15, w3, #16, #16 + WORD $0x33103c8e // bfi w14, w4, #16, #16 + WORD $0x3500092f // cbnz w15, LBB0_55 $292(%rip) + WORD $0xb50009cb // cbnz x11, LBB0_56 $312(%rip) + WORD $0xb4000b6c // cbz x12, LBB0_57 $364(%rip) +LBB0_37: + WORD $0xdac0018b // rbit x11, x12 + WORD $0xdac0116b // clz x11, x11 + WORD $0xdac001cc // rbit x12, x14 + WORD $0xdac0118c // clz x12, x12 + WORD $0xeb0b019f // cmp x12, x11 + WORD $0x54000ee3 // b.lo LBB0_69 $476(%rip) +LBB0_38: + WORD $0xcb0a01aa // sub x10, x13, x10 + WORD $0x8b0b014a // add x10, x10, x11 + WORD $0x9100054e // add x14, x10, #1 + WORD $0xb6fff24e // tbz x14, #63, LBB0_23 $-440(%rip) + WORD $0x1400008b // b LBB0_76 $556(%rip) +LBB0_39: + WORD $0xdac001f0 // rbit x16, x15 + WORD $0xdac01210 // clz x16, x16 + WORD $0xcb0a01b1 // sub x17, x13, x10 + WORD $0x8b100230 // add x16, x17, x16 + WORD $0xb100053f // cmn x9, #1 + WORD $0x9a901129 // csel x9, x9, x16, ne +LBB0_40: + WORD $0x0a2c01f0 // bic w16, w15, w12 + WORD $0x531f7a11 // lsl w17, w16, #1 + WORD $0x331f7a0c // bfi w12, w16, #1, #31 + WORD $0x0a3101ef // bic w15, w15, w17 + WORD $0x1201f1ef // and w15, w15, #0xaaaaaaaa + WORD $0x2b1001ef // adds w15, w15, w16 + WORD $0x3200f3f0 // mov w16, #1431655765 + WORD $0x4a0f060f // eor w15, w16, w15, lsl #1 + WORD $0x0a0c01ec // and w12, w15, w12 + WORD $0x1a9f37ef // cset w15, hs + WORD $0x2a2c03ec // mvn w12, w12 + WORD $0x8a0b018b // and x11, x12, x11 + WORD $0xaa0f03ec // mov x12, x15 + WORD $0xb5fff60b // cbnz x11, LBB0_31 $-320(%rip) +LBB0_41: + WORD $0x910081ad // add x13, x13, #32 + WORD $0xaa0e03eb // mov x11, x14 +LBB0_42: + WORD $0xb5000c4c // cbnz x12, LBB0_71 $392(%rip) + WORD $0xb40003ab // cbz x11, LBB0_52 $116(%rip) +LBB0_44: + WORD $0xcb0a03ec // neg x12, x10 +LBB0_45: + WORD $0xd280000f // mov x15, #0 +LBB0_46: + WORD $0x386f69ae // ldrb w14, [x13, x15] + WORD $0x710089df // cmp w14, #34 + WORD $0x540002c0 // b.eq LBB0_51 $88(%rip) + WORD $0x710171df // cmp w14, #92 + WORD $0x540000a0 // b.eq LBB0_49 $20(%rip) + WORD $0x910005ef // add x15, x15, #1 + WORD $0xeb0f017f // cmp x11, x15 + WORD $0x54ffff21 // b.ne LBB0_46 $-28(%rip) + WORD $0x14000015 // b LBB0_53 $84(%rip) +LBB0_49: + WORD $0xd100056e // sub x14, x11, #1 + WORD $0xeb0f01df // cmp x14, x15 + WORD $0x54000c80 // b.eq LBB0_75 $400(%rip) + WORD $0x8b0f01ad // add x13, x13, x15 + WORD $0x8b0c01ae // add x14, x13, x12 + WORD $0xb100053f // cmn x9, #1 + WORD $0x9a8901c9 // csel x9, x14, x9, eq + WORD $0x910009ad // add x13, x13, #2 + WORD $0xcb0f016e // sub x14, x11, x15 + WORD $0xd1000970 // sub x16, x11, #2 + WORD $0xd10009cb // sub x11, x14, #2 + WORD $0x9280000e // mov x14, #-1 + WORD $0xeb0f021f // cmp x16, x15 + WORD $0x54fffd21 // b.ne LBB0_45 $-92(%rip) + WORD $0x14000059 // b LBB0_76 $356(%rip) +LBB0_51: + WORD $0x8b0f01ab // add x11, x13, x15 + WORD $0x9100056d // add x13, x11, #1 +LBB0_52: + WORD $0xcb0a01ae // sub x14, x13, x10 + WORD $0xb6ffeb6e // tbz x14, #63, LBB0_23 $-660(%rip) + WORD $0x14000054 // b LBB0_76 $336(%rip) +LBB0_53: + WORD $0x710089df // cmp w14, #34 + WORD $0x54000a21 // b.ne LBB0_75 $324(%rip) + WORD $0x8b0f01ad // add x13, x13, x15 + WORD $0x17fffffa // b LBB0_52 $-24(%rip) +LBB0_55: + WORD $0xdac001f1 // rbit x17, x15 + WORD $0xdac01231 // clz x17, x17 + WORD $0xcb0a01a3 // sub x3, x13, x10 + WORD $0x8b110071 // add x17, x3, x17 + WORD $0xb100053f // cmn x9, #1 + WORD $0x9a911129 // csel x9, x9, x17, ne +LBB0_56: + WORD $0x0a2b01f1 // bic w17, w15, w11 + WORD $0x531f7a23 // lsl w3, w17, #1 + WORD $0x331f7a2b // bfi w11, w17, #1, #31 + WORD $0x0a2301ef // bic w15, w15, w3 + WORD $0x1201f1ef // and w15, w15, #0xaaaaaaaa + WORD $0x2b1101ef // adds w15, w15, w17 + WORD $0x3200f3f1 // mov w17, #1431655765 + WORD $0x4a0f062f // eor w15, w17, w15, lsl #1 + WORD $0x0a0b01eb // and w11, w15, w11 + WORD $0x1a9f37ef // cset w15, hs + WORD $0x2a2b03eb // mvn w11, w11 + WORD $0x8a0c016c // and x12, x11, x12 + WORD $0xaa0f03eb // mov x11, x15 + WORD $0xb5fff4ec // cbnz x12, LBB0_37 $-356(%rip) +LBB0_57: + WORD $0x3500044e // cbnz w14, LBB0_69 $136(%rip) + WORD $0x910081ad // add x13, x13, #32 + WORD $0xaa1003ec // mov x12, x16 +LBB0_59: + WORD $0xb50005eb // cbnz x11, LBB0_73 $188(%rip) + WORD $0xb40006cc // cbz x12, LBB0_75 $216(%rip) +LBB0_61: + WORD $0xcb0a03eb // neg x11, x10 +LBB0_62: + WORD $0xd280000f // mov x15, #0 +LBB0_63: + WORD $0x386f69ae // ldrb w14, [x13, x15] + WORD $0x710089df // cmp w14, #34 + WORD $0x54000360 // b.eq LBB0_70 $108(%rip) + WORD $0x710171df // cmp w14, #92 + WORD $0x54000100 // b.eq LBB0_67 $32(%rip) + WORD $0x710081df // cmp w14, #32 + WORD $0x540002a3 // b.lo LBB0_69 $84(%rip) + WORD $0x910005ef // add x15, x15, #1 + WORD $0x9280000e // mov x14, #-1 + WORD $0xeb0f019f // cmp x12, x15 + WORD $0x54fffec1 // b.ne LBB0_63 $-40(%rip) + WORD $0x14000029 // b LBB0_76 $164(%rip) +LBB0_67: + WORD $0xd100058e // sub x14, x12, #1 + WORD $0xeb0f01df // cmp x14, x15 + WORD $0x540004a0 // b.eq LBB0_75 $148(%rip) + WORD $0x8b0f01ad // add x13, x13, x15 + WORD $0x8b0b01ae // add x14, x13, x11 + WORD $0xb100053f // cmn x9, #1 + WORD $0x9a8901c9 // csel x9, x14, x9, eq + WORD $0x910009ad // add x13, x13, #2 + WORD $0xd1000990 // sub x16, x12, #2 + WORD $0xcb0f018c // sub x12, x12, x15 + WORD $0xd100098c // sub x12, x12, #2 + WORD $0x9280000e // mov x14, #-1 + WORD $0xeb0f021f // cmp x16, x15 + WORD $0x54fffcc1 // b.ne LBB0_62 $-104(%rip) + WORD $0x1400001a // b LBB0_76 $104(%rip) +LBB0_69: + WORD $0x9280002e // mov x14, #-2 + WORD $0x14000018 // b LBB0_76 $96(%rip) +LBB0_70: + WORD $0xcb0a01aa // sub x10, x13, x10 + WORD $0x8b0f014a // add x10, x10, x15 + WORD $0x9100054e // add x14, x10, #1 + WORD $0xb6ffe34e // tbz x14, #63, LBB0_23 $-920(%rip) + WORD $0x14000013 // b LBB0_76 $76(%rip) +LBB0_71: + WORD $0xb400022b // cbz x11, LBB0_75 $68(%rip) + WORD $0xaa2a03ec // mvn x12, x10 + WORD $0x8b0c01ac // add x12, x13, x12 + WORD $0xb100053f // cmn x9, #1 + WORD $0x9a890189 // csel x9, x12, x9, eq + WORD $0x910005ad // add x13, x13, #1 + WORD $0xd100056b // sub x11, x11, #1 + WORD $0xb5fff32b // cbnz x11, LBB0_44 $-412(%rip) + WORD $0x17ffffb4 // b LBB0_52 $-304(%rip) +LBB0_73: + WORD $0xb400010c // cbz x12, LBB0_75 $32(%rip) + WORD $0xaa2a03eb // mvn x11, x10 + WORD $0x8b0b01ab // add x11, x13, x11 + WORD $0xb100053f // cmn x9, #1 + WORD $0x9a890169 // csel x9, x11, x9, eq + WORD $0x910005ad // add x13, x13, #1 + WORD $0xd100058c // sub x12, x12, #1 + WORD $0xb5fff98c // cbnz x12, LBB0_61 $-208(%rip) +LBB0_75: + WORD $0x9280000e // mov x14, #-1 +LBB0_76: + WORD $0xf9400408 // ldr x8, [x0, #8] + WORD $0xf9000028 // str x8, [x1] + WORD $0xf900004e // str x14, [x2] + WORD $0xa941fbfd // ldp fp, lr, [sp, #24] + WORD $0xa940cff4 // ldp x20, x19, [sp, #8] + WORD $0x9100c3ff // add sp, sp, #48 + WORD $0xd65f03c0 // ret + // .p2align 2, 0x00 +_MASK_USE_NUMBER: + WORD $0x00000002 // .long 2 + +TEXT ·__vstring(SB), NOSPLIT, $0-32 + NO_LOCAL_POINTERS + +_entry: + MOVD 16(g), R16 + SUB $112, RSP, R17 + CMP R16, R17 + BLS _stack_grow + +_vstring: + MOVD s+0(FP), R0 + MOVD p+8(FP), R1 + MOVD v+16(FP), R2 + MOVD flags+24(FP), R3 + MOVD ·_subr__vstring(SB), R11 + WORD $0x1000005e // adr x30, .+8 + JMP (R11) + RET + +_stack_grow: + MOVD R30, R3 + CALL runtime·morestack_noctxt<>(SB) + JMP _entry diff --git a/vendor/github.com/bytedance/sonic/internal/native/neon/vstring_subr_arm64.go b/vendor/github.com/bytedance/sonic/internal/native/neon/vstring_subr_arm64.go new file mode 100644 index 000000000..0b4a1cf7d --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/neon/vstring_subr_arm64.go @@ -0,0 +1,25 @@ +// +build !noasm !appengine +// Code generated by asm2asm, DO NOT EDIT. + +package neon + +//go:nosplit +//go:noescape +//goland:noinspection ALL +func __vstring_entry__() uintptr + +var ( + _subr__vstring uintptr = __vstring_entry__() + 32 +) + +const ( + _stack__vstring = 48 +) + +var ( + _ = _subr__vstring +) + +const ( + _ = _stack__vstring +) diff --git a/vendor/github.com/bytedance/sonic/internal/native/neon/vunsigned_arm64.go b/vendor/github.com/bytedance/sonic/internal/native/neon/vunsigned_arm64.go new file mode 100644 index 000000000..02019f756 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/neon/vunsigned_arm64.go @@ -0,0 +1,32 @@ + +/* + * Copyright 2021 ByteDance 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 neon + +import ( + `github.com/bytedance/sonic/internal/native/types` +) + +//go:nosplit +func vunsigned(s *string, p *int, v *types.JsonState) { + __vunsigned(s, p, v) +} + +//go:nosplit +//go:noescape +//goland:noinspection GoUnusedParameter +func __vunsigned(s *string, p *int, v *types.JsonState) diff --git a/vendor/github.com/bytedance/sonic/internal/native/neon/vunsigned_arm64.s b/vendor/github.com/bytedance/sonic/internal/native/neon/vunsigned_arm64.s new file mode 100644 index 000000000..c73a44894 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/neon/vunsigned_arm64.s @@ -0,0 +1,150 @@ +// +build !noasm !appengine +// Code generated by asm2asm, DO NOT EDIT. + +#include "go_asm.h" +#include "funcdata.h" +#include "textflag.h" + +TEXT ·__vunsigned_entry__(SB), NOSPLIT, $16 + NO_LOCAL_POINTERS + WORD $0x100000a0 // adr x0, .+20 + MOVD R0, ret(FP) + RET + // .p2align 2, 0x00 +_vunsigned: + WORD $0xd10083ff // sub sp, sp, #32 + WORD $0xa900fbfd // stp fp, lr, [sp, #8] + WORD $0xa93ffbfd // stp fp, lr, [sp, #-8] + WORD $0xd10023fd // sub fp, sp, #8 + WORD $0xf9400028 // ldr x8, [x1] + WORD $0xa940240a // ldp x10, x9, [x0] + WORD $0x5280012b // mov w11, #9 + WORD $0xa900fc5f // stp xzr, xzr, [x2, #8] + WORD $0xf900004b // str x11, [x2] + WORD $0xf940002b // ldr x11, [x1] + WORD $0xf9000c4b // str x11, [x2, #24] + WORD $0xeb09011f // cmp x8, x9 + WORD $0x54000162 // b.hs LBB0_3 $44(%rip) + WORD $0x8b08014b // add x11, x10, x8 + WORD $0x3940016c // ldrb w12, [x11] + WORD $0x7100b59f // cmp w12, #45 + WORD $0x540001a1 // b.ne LBB0_4 $52(%rip) +LBB0_2: + WORD $0xf9000028 // str x8, [x1] + WORD $0x928000a8 // mov x8, #-6 + WORD $0xf9000048 // str x8, [x2] + WORD $0xa940fbfd // ldp fp, lr, [sp, #8] + WORD $0x910083ff // add sp, sp, #32 + WORD $0xd65f03c0 // ret +LBB0_3: + WORD $0xf9000029 // str x9, [x1] + WORD $0x92800008 // mov x8, #-1 + WORD $0xf9000048 // str x8, [x2] + WORD $0xa940fbfd // ldp fp, lr, [sp, #8] + WORD $0x910083ff // add sp, sp, #32 + WORD $0xd65f03c0 // ret +LBB0_4: + WORD $0x5100e98d // sub w13, w12, #58 + WORD $0x31002dbf // cmn w13, #11 + WORD $0x540000e8 // b.hi LBB0_6 $28(%rip) + WORD $0xf9000028 // str x8, [x1] + WORD $0x92800028 // mov x8, #-2 + WORD $0xf9000048 // str x8, [x2] + WORD $0xa940fbfd // ldp fp, lr, [sp, #8] + WORD $0x910083ff // add sp, sp, #32 + WORD $0xd65f03c0 // ret +LBB0_6: + WORD $0x7100c19f // cmp w12, #48 + WORD $0x54000161 // b.ne LBB0_8 $44(%rip) + WORD $0x3940056b // ldrb w11, [x11, #1] + WORD $0x5100b96b // sub w11, w11, #46 + WORD $0x7100dd7f // cmp w11, #55 + WORD $0x5280002c // mov w12, #1 + WORD $0x9acb218b // lsl x11, x12, x11 + WORD $0xb20903ec // mov x12, #36028797027352576 + WORD $0xf280002c // movk x12, #1 + WORD $0x8a0c016b // and x11, x11, x12 + WORD $0xfa409964 // ccmp x11, #0, #4, ls + WORD $0x540005a0 // b.eq LBB0_21 $180(%rip) +LBB0_8: + WORD $0xd280000b // mov x11, #0 + WORD $0xeb08013f // cmp x9, x8 + WORD $0x9a88812c // csel x12, x9, x8, hi + WORD $0x5280014d // mov w13, #10 +LBB0_9: + WORD $0xeb08019f // cmp x12, x8 + WORD $0x54000440 // b.eq LBB0_20 $136(%rip) + WORD $0x3868694e // ldrb w14, [x10, x8] + WORD $0x5100c1ce // sub w14, w14, #48 + WORD $0x710025df // cmp w14, #9 + WORD $0x54000288 // b.hi LBB0_15 $80(%rip) + WORD $0x9bcd7d6f // umulh x15, x11, x13 + WORD $0xeb0f03ff // cmp xzr, x15 + WORD $0x54000141 // b.ne LBB0_14 $40(%rip) + WORD $0x8b0b096b // add x11, x11, x11, lsl #2 + WORD $0xd37ff96b // lsl x11, x11, #1 + WORD $0x91000508 // add x8, x8, #1 + WORD $0xab2e016b // adds x11, x11, w14, uxtb + WORD $0x1a9f37ef // cset w15, hs + WORD $0x934001ee // sbfx x14, x15, #0, #1 + WORD $0xca0f01cf // eor x15, x14, x15 + WORD $0xb500004f // cbnz x15, LBB0_14 $8(%rip) + WORD $0xb6fffdee // tbz x14, #63, LBB0_9 $-68(%rip) +LBB0_14: + WORD $0xd1000508 // sub x8, x8, #1 + WORD $0xf9000028 // str x8, [x1] + WORD $0x92800088 // mov x8, #-5 + WORD $0xf9000048 // str x8, [x2] + WORD $0xa940fbfd // ldp fp, lr, [sp, #8] + WORD $0x910083ff // add sp, sp, #32 + WORD $0xd65f03c0 // ret +LBB0_15: + WORD $0xeb09011f // cmp x8, x9 + WORD $0x54000102 // b.hs LBB0_19 $32(%rip) + WORD $0x38686949 // ldrb w9, [x10, x8] + WORD $0x7100b93f // cmp w9, #46 + WORD $0x54fff7c0 // b.eq LBB0_2 $-264(%rip) + WORD $0x7101153f // cmp w9, #69 + WORD $0x54fff780 // b.eq LBB0_2 $-272(%rip) + WORD $0x7101953f // cmp w9, #101 + WORD $0x54fff740 // b.eq LBB0_2 $-280(%rip) +LBB0_19: + WORD $0xaa0803ec // mov x12, x8 +LBB0_20: + WORD $0xf900002c // str x12, [x1] + WORD $0xf900084b // str x11, [x2, #16] + WORD $0xa940fbfd // ldp fp, lr, [sp, #8] + WORD $0x910083ff // add sp, sp, #32 + WORD $0xd65f03c0 // ret +LBB0_21: + WORD $0x91000508 // add x8, x8, #1 + WORD $0xf9000028 // str x8, [x1] + WORD $0xa940fbfd // ldp fp, lr, [sp, #8] + WORD $0x910083ff // add sp, sp, #32 + WORD $0xd65f03c0 // ret + // .p2align 2, 0x00 +_MASK_USE_NUMBER: + WORD $0x00000002 // .long 2 + +TEXT ·__vunsigned(SB), NOSPLIT, $0-24 + NO_LOCAL_POINTERS + +_entry: + MOVD 16(g), R16 + SUB $96, RSP, R17 + CMP R16, R17 + BLS _stack_grow + +_vunsigned: + MOVD s+0(FP), R0 + MOVD p+8(FP), R1 + MOVD v+16(FP), R2 + MOVD ·_subr__vunsigned(SB), R11 + WORD $0x1000005e // adr x30, .+8 + JMP (R11) + RET + +_stack_grow: + MOVD R30, R3 + CALL runtime·morestack_noctxt<>(SB) + JMP _entry diff --git a/vendor/github.com/bytedance/sonic/internal/native/neon/vunsigned_subr_arm64.go b/vendor/github.com/bytedance/sonic/internal/native/neon/vunsigned_subr_arm64.go new file mode 100644 index 000000000..a78f3f961 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/neon/vunsigned_subr_arm64.go @@ -0,0 +1,25 @@ +// +build !noasm !appengine +// Code generated by asm2asm, DO NOT EDIT. + +package neon + +//go:nosplit +//go:noescape +//goland:noinspection ALL +func __vunsigned_entry__() uintptr + +var ( + _subr__vunsigned uintptr = __vunsigned_entry__() + 0 +) + +const ( + _stack__vunsigned = 32 +) + +var ( + _ = _subr__vunsigned +) + +const ( + _ = _stack__vunsigned +) diff --git a/vendor/github.com/bytedance/sonic/internal/native/recover_amd64_test.tmpl b/vendor/github.com/bytedance/sonic/internal/native/recover_test.tmpl similarity index 99% rename from vendor/github.com/bytedance/sonic/internal/native/recover_amd64_test.tmpl rename to vendor/github.com/bytedance/sonic/internal/native/recover_test.tmpl index f55e8bbd2..b8aeb38cf 100644 --- a/vendor/github.com/bytedance/sonic/internal/native/recover_amd64_test.tmpl +++ b/vendor/github.com/bytedance/sonic/internal/native/recover_test.tmpl @@ -35,7 +35,6 @@ var ( var stubs = []loader.GoC{ {"_f32toa", nil, &__f32toa}, {"_f64toa", nil, &__f64toa}, - {"_fsm_exec", nil, &__fsm_exec}, {"_get_by_path", nil, &__get_by_path}, {"_html_escape", nil, &__html_escape}, {"_i64toa", nil, &__i64toa}, diff --git a/vendor/github.com/bytedance/sonic/internal/native/sse/native_amd64.go b/vendor/github.com/bytedance/sonic/internal/native/sse/native_amd64.go index c2ab79531..a39461028 100644 --- a/vendor/github.com/bytedance/sonic/internal/native/sse/native_amd64.go +++ b/vendor/github.com/bytedance/sonic/internal/native/sse/native_amd64.go @@ -1,3 +1,6 @@ +// +build amd64 + + // Code generated by Makefile, DO NOT EDIT. // Code generated by Makefile, DO NOT EDIT. @@ -71,8 +74,6 @@ var ( __validate_utf8 func(s unsafe.Pointer, p unsafe.Pointer, m unsafe.Pointer) (ret int) __validate_utf8_fast func(s unsafe.Pointer) (ret int) - - __fsm_exec func(m unsafe.Pointer, s unsafe.Pointer, p unsafe.Pointer, flags uint64) (ret int) ) //go:nosplit @@ -185,7 +186,3 @@ func validate_utf8_fast(s *string) (ret int) { return __validate_utf8_fast(rt.NoEscape(unsafe.Pointer(s))) } -//go:nosplit -func fsm_exec(m *types.StateMachine, s *string, p *int, flags uint64) (ret int) { - return __fsm_exec(rt.NoEscape(unsafe.Pointer(m)), rt.NoEscape(unsafe.Pointer(s)), rt.NoEscape(unsafe.Pointer(p)), flags) -} diff --git a/vendor/github.com/bytedance/sonic/internal/native/sse/native_subr_amd64.go b/vendor/github.com/bytedance/sonic/internal/native/sse/native_subr_amd64.go index f87dac89d..854fe50de 100644 --- a/vendor/github.com/bytedance/sonic/internal/native/sse/native_subr_amd64.go +++ b/vendor/github.com/bytedance/sonic/internal/native/sse/native_subr_amd64.go @@ -8,117 +8,111 @@ import ( ) const ( - _entry__f32toa = 31344 - _entry__f64toa = 128 - _entry__format_significand = 36272 - _entry__format_integer = 3280 - _entry__fsm_exec = 18832 - _entry__advance_string = 15024 - _entry__advance_string_default = 37808 - _entry__do_skip_number = 21376 - _entry__get_by_path = 26768 - _entry__skip_one_fast = 22896 - _entry__unescape = 38752 - _entry__unhex16_is = 9584 - _entry__html_escape = 9776 - _entry__i64toa = 3712 - _entry__u64toa = 3984 + _entry__f32toa = 31632 + _entry__f64toa = 160 + _entry__format_significand = 35968 + _entry__format_integer = 2960 + _entry__get_by_path = 26192 + _entry__fsm_exec = 18016 + _entry__advance_string = 14352 + _entry__advance_string_default = 37360 + _entry__do_skip_number = 20608 + _entry__skip_one_fast = 22288 + _entry__html_escape = 8912 + _entry__i64toa = 3392 + _entry__u64toa = 3520 _entry__lspace = 16 - _entry__quote = 5472 - _entry__skip_array = 18800 - _entry__skip_number = 22496 - _entry__skip_object = 21024 - _entry__skip_one = 22672 - _entry__unquote = 7248 - _entry__validate_one = 22720 - _entry__validate_utf8 = 30096 - _entry__validate_utf8_fast = 30784 - _entry__value = 13072 - _entry__vnumber = 16400 - _entry__atof_eisel_lemire64 = 11072 - _entry__atof_native = 12464 - _entry__decimal_to_f64 = 11472 - _entry__left_shift = 36752 - _entry__right_shift = 37296 - _entry__vsigned = 18048 - _entry__vstring = 14848 - _entry__vunsigned = 18416 + _entry__quote = 4832 + _entry__skip_array = 17984 + _entry__skip_number = 21904 + _entry__skip_object = 20256 + _entry__skip_one = 22064 + _entry__unquote = 6576 + _entry__validate_one = 22112 + _entry__validate_utf8 = 30400 + _entry__validate_utf8_fast = 31072 + _entry__value = 12352 + _entry__vnumber = 15744 + _entry__atof_eisel_lemire64 = 10192 + _entry__atof_native = 11744 + _entry__decimal_to_f64 = 10560 + _entry__right_shift = 36928 + _entry__left_shift = 36432 + _entry__vsigned = 17296 + _entry__vstring = 14176 + _entry__vunsigned = 17632 ) const ( - _stack__f32toa = 64 + _stack__f32toa = 48 _stack__f64toa = 80 _stack__format_significand = 24 _stack__format_integer = 16 - _stack__fsm_exec = 160 - _stack__advance_string = 72 - _stack__advance_string_default = 56 - _stack__do_skip_number = 32 - _stack__get_by_path = 264 + _stack__get_by_path = 272 + _stack__fsm_exec = 168 + _stack__advance_string = 64 + _stack__advance_string_default = 64 + _stack__do_skip_number = 48 _stack__skip_one_fast = 136 - _stack__unescape = 64 - _stack__unhex16_is = 8 - _stack__html_escape = 64 + _stack__html_escape = 72 _stack__i64toa = 16 _stack__u64toa = 8 _stack__lspace = 8 - _stack__quote = 80 - _stack__skip_array = 168 - _stack__skip_number = 88 - _stack__skip_object = 168 - _stack__skip_one = 168 - _stack__unquote = 112 - _stack__validate_one = 168 + _stack__quote = 64 + _stack__skip_array = 176 + _stack__skip_number = 104 + _stack__skip_object = 176 + _stack__skip_one = 176 + _stack__unquote = 88 + _stack__validate_one = 176 _stack__validate_utf8 = 48 _stack__validate_utf8_fast = 24 - _stack__value = 352 - _stack__vnumber = 264 - _stack__atof_eisel_lemire64 = 40 - _stack__atof_native = 144 - _stack__decimal_to_f64 = 88 - _stack__left_shift = 32 - _stack__right_shift = 16 + _stack__value = 328 + _stack__vnumber = 240 + _stack__atof_eisel_lemire64 = 32 + _stack__atof_native = 136 + _stack__decimal_to_f64 = 80 + _stack__right_shift = 8 + _stack__left_shift = 24 _stack__vsigned = 16 - _stack__vstring = 128 - _stack__vunsigned = 24 + _stack__vstring = 120 + _stack__vunsigned = 8 ) const ( - _size__f32toa = 3696 - _size__f64toa = 3152 - _size__format_significand = 480 + _size__f32toa = 3328 + _size__f64toa = 2800 + _size__format_significand = 464 _size__format_integer = 432 - _size__fsm_exec = 1656 - _size__advance_string = 1328 - _size__advance_string_default = 944 - _size__do_skip_number = 908 - _size__get_by_path = 3328 - _size__skip_one_fast = 3348 - _size__unescape = 704 - _size__unhex16_is = 128 - _size__html_escape = 1296 - _size__i64toa = 272 - _size__u64toa = 1440 - _size__lspace = 96 - _size__quote = 1760 + _size__get_by_path = 4208 + _size__fsm_exec = 1692 + _size__advance_string = 1344 + _size__advance_string_default = 960 + _size__do_skip_number = 956 + _size__skip_one_fast = 3404 + _size__html_escape = 1280 + _size__i64toa = 48 + _size__u64toa = 1264 + _size__lspace = 128 + _size__quote = 1728 _size__skip_array = 32 _size__skip_number = 160 _size__skip_object = 32 - _size__skip_one = 32 - _size__unquote = 2336 + _size__skip_one = 48 + _size__unquote = 2272 _size__validate_one = 48 - _size__validate_utf8 = 688 + _size__validate_utf8 = 672 _size__validate_utf8_fast = 544 - _size__value = 1268 - _size__vnumber = 1648 - _size__atof_eisel_lemire64 = 400 + _size__value = 1308 + _size__vnumber = 1552 + _size__atof_eisel_lemire64 = 368 _size__atof_native = 608 - _size__decimal_to_f64 = 992 - _size__left_shift = 544 - _size__right_shift = 480 - _size__vsigned = 368 + _size__decimal_to_f64 = 1184 + _size__right_shift = 400 + _size__left_shift = 496 + _size__vsigned = 336 _size__vstring = 128 - _size__vunsigned = 368 + _size__vunsigned = 336 ) var ( @@ -129,16 +123,14 @@ var ( {8, 24}, {10, 32}, {12, 40}, - {13, 48}, - {3638, 64}, - {3642, 48}, - {3643, 40}, - {3645, 32}, - {3647, 24}, - {3649, 16}, - {3651, 8}, - {3652, 0}, - {3682, 64}, + {3286, 48}, + {3287, 40}, + {3289, 32}, + {3291, 24}, + {3293, 16}, + {3295, 8}, + {3296, 0}, + {3318, 48}, } _pcsp__f64toa = [][2]uint32{ {1, 0}, @@ -148,24 +140,24 @@ var ( {10, 32}, {12, 40}, {13, 48}, - {3033, 56}, - {3037, 48}, - {3038, 40}, - {3040, 32}, - {3042, 24}, - {3044, 16}, - {3046, 8}, - {3047, 0}, - {3138, 56}, + {2740, 56}, + {2744, 48}, + {2745, 40}, + {2747, 32}, + {2749, 24}, + {2751, 16}, + {2753, 8}, + {2754, 0}, + {2792, 56}, } _pcsp__format_significand = [][2]uint32{ {1, 0}, {4, 8}, {6, 16}, - {468, 24}, - {469, 16}, - {471, 8}, - {473, 0}, + {452, 24}, + {453, 16}, + {455, 8}, + {457, 0}, } _pcsp__format_integer = [][2]uint32{ {1, 0}, @@ -177,6 +169,24 @@ var ( {424, 8}, {426, 0}, } + _pcsp__get_by_path = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {4012, 104}, + {4016, 48}, + {4017, 40}, + {4019, 32}, + {4021, 24}, + {4023, 16}, + {4025, 8}, + {4026, 0}, + {4194, 104}, + } _pcsp__fsm_exec = [][2]uint32{ {1, 0}, {4, 8}, @@ -185,15 +195,15 @@ var ( {10, 32}, {12, 40}, {13, 48}, - {1317, 88}, - {1321, 48}, - {1322, 40}, - {1324, 32}, - {1326, 24}, - {1328, 16}, - {1330, 8}, - {1331, 0}, - {1656, 88}, + {1342, 104}, + {1346, 48}, + {1347, 40}, + {1349, 32}, + {1351, 24}, + {1353, 16}, + {1355, 8}, + {1356, 0}, + {1692, 104}, } _pcsp__advance_string = [][2]uint32{ {14, 0}, @@ -203,15 +213,15 @@ var ( {24, 32}, {26, 40}, {27, 48}, - {587, 72}, - {591, 48}, - {592, 40}, - {594, 32}, - {596, 24}, - {598, 16}, - {600, 8}, - {601, 0}, - {1325, 72}, + {614, 56}, + {618, 48}, + {619, 40}, + {621, 32}, + {623, 24}, + {625, 16}, + {627, 8}, + {628, 0}, + {1339, 56}, } _pcsp__advance_string_default = [][2]uint32{ {1, 0}, @@ -221,45 +231,31 @@ var ( {10, 32}, {12, 40}, {13, 48}, - {402, 56}, - {406, 48}, - {407, 40}, - {409, 32}, - {411, 24}, - {413, 16}, - {415, 8}, - {416, 0}, - {936, 56}, + {576, 64}, + {580, 48}, + {581, 40}, + {583, 32}, + {585, 24}, + {587, 16}, + {589, 8}, + {590, 0}, + {955, 64}, } _pcsp__do_skip_number = [][2]uint32{ - {1, 0}, - {4, 8}, - {6, 16}, - {8, 24}, - {771, 32}, - {772, 24}, - {774, 16}, - {776, 8}, - {777, 0}, - {908, 32}, - } - _pcsp__get_by_path = [][2]uint32{ {1, 0}, {4, 8}, {6, 16}, {8, 24}, {10, 32}, {12, 40}, - {13, 48}, - {3278, 104}, - {3282, 48}, - {3283, 40}, - {3285, 32}, - {3287, 24}, - {3289, 16}, - {3291, 8}, - {3292, 0}, - {3317, 104}, + {881, 48}, + {882, 40}, + {884, 32}, + {886, 24}, + {888, 16}, + {890, 8}, + {891, 0}, + {956, 48}, } _pcsp__skip_one_fast = [][2]uint32{ {1, 0}, @@ -269,44 +265,15 @@ var ( {10, 32}, {12, 40}, {13, 48}, - {600, 136}, - {604, 48}, - {605, 40}, - {607, 32}, - {609, 24}, - {611, 16}, - {613, 8}, - {614, 0}, - {3348, 136}, - } - _pcsp__unescape = [][2]uint32{ - {1, 0}, - {4, 8}, - {6, 16}, - {8, 24}, - {10, 32}, - {12, 40}, - {13, 48}, - {246, 56}, - {250, 48}, - {251, 40}, - {253, 32}, - {255, 24}, - {257, 16}, - {259, 8}, - {260, 0}, - {695, 56}, - } - _pcsp__unhex16_is = [][2]uint32{ - {1, 0}, - {35, 8}, - {36, 0}, - {62, 8}, - {63, 0}, - {97, 8}, - {98, 0}, - {121, 8}, - {123, 0}, + {658, 136}, + {662, 48}, + {663, 40}, + {665, 32}, + {667, 24}, + {669, 16}, + {671, 8}, + {672, 0}, + {3404, 136}, } _pcsp__html_escape = [][2]uint32{ {1, 0}, @@ -316,47 +283,39 @@ var ( {10, 32}, {12, 40}, {13, 48}, - {1281, 64}, - {1285, 48}, - {1286, 40}, - {1288, 32}, - {1290, 24}, - {1292, 16}, - {1294, 8}, - {1296, 0}, + {1256, 72}, + {1260, 48}, + {1261, 40}, + {1263, 32}, + {1265, 24}, + {1267, 16}, + {1269, 8}, + {1271, 0}, } _pcsp__i64toa = [][2]uint32{ - {1, 0}, - {171, 8}, - {172, 0}, - {207, 8}, - {208, 0}, - {222, 8}, - {223, 0}, - {247, 8}, - {248, 0}, - {253, 8}, - {259, 0}, + {14, 0}, + {34, 8}, + {36, 0}, } _pcsp__u64toa = [][2]uint32{ - {13, 0}, - {162, 8}, - {163, 0}, - {175, 8}, - {240, 0}, - {498, 8}, - {499, 0}, - {519, 8}, - {608, 0}, - {882, 8}, - {976, 0}, - {1434, 8}, - {1436, 0}, + {1, 0}, + {161, 8}, + {162, 0}, + {457, 8}, + {458, 0}, + {772, 8}, + {773, 0}, + {1249, 8}, + {1251, 0}, } _pcsp__lspace = [][2]uint32{ {1, 0}, - {85, 8}, - {87, 0}, + {89, 8}, + {90, 0}, + {103, 8}, + {104, 0}, + {111, 8}, + {113, 0}, } _pcsp__quote = [][2]uint32{ {1, 0}, @@ -366,15 +325,15 @@ var ( {10, 32}, {12, 40}, {13, 48}, - {1701, 80}, - {1705, 48}, - {1706, 40}, - {1708, 32}, - {1710, 24}, - {1712, 16}, - {1714, 8}, - {1715, 0}, - {1750, 80}, + {1681, 64}, + {1685, 48}, + {1686, 40}, + {1688, 32}, + {1690, 24}, + {1692, 16}, + {1694, 8}, + {1695, 0}, + {1722, 64}, } _pcsp__skip_array = [][2]uint32{ {1, 0}, @@ -406,8 +365,8 @@ var ( } _pcsp__skip_one = [][2]uint32{ {1, 0}, - {26, 8}, - {32, 0}, + {30, 8}, + {36, 0}, } _pcsp__unquote = [][2]uint32{ {1, 0}, @@ -417,20 +376,20 @@ var ( {10, 32}, {12, 40}, {13, 48}, - {1614, 104}, - {1618, 48}, - {1619, 40}, - {1621, 32}, - {1623, 24}, - {1625, 16}, - {1627, 8}, - {1628, 0}, - {2329, 104}, + {1684, 88}, + {1688, 48}, + {1689, 40}, + {1691, 32}, + {1693, 24}, + {1695, 16}, + {1697, 8}, + {1698, 0}, + {2270, 88}, } _pcsp__validate_one = [][2]uint32{ {1, 0}, - {31, 8}, - {37, 0}, + {35, 8}, + {41, 0}, } _pcsp__validate_utf8 = [][2]uint32{ {1, 0}, @@ -439,14 +398,14 @@ var ( {8, 24}, {10, 32}, {11, 40}, - {639, 48}, - {643, 40}, - {644, 32}, - {646, 24}, - {648, 16}, - {650, 8}, - {651, 0}, - {682, 48}, + {623, 48}, + {627, 40}, + {628, 32}, + {630, 24}, + {632, 16}, + {634, 8}, + {635, 0}, + {666, 48}, } _pcsp__validate_utf8_fast = [][2]uint32{ {1, 0}, @@ -469,15 +428,15 @@ var ( {10, 32}, {12, 40}, {13, 48}, - {439, 88}, - {443, 48}, - {444, 40}, - {446, 32}, - {448, 24}, - {450, 16}, - {452, 8}, - {453, 0}, - {1268, 88}, + {495, 88}, + {499, 48}, + {500, 40}, + {502, 32}, + {504, 24}, + {506, 16}, + {508, 8}, + {509, 0}, + {1308, 88}, } _pcsp__vnumber = [][2]uint32{ {1, 0}, @@ -487,36 +446,34 @@ var ( {10, 32}, {12, 40}, {13, 48}, - {150, 120}, - {154, 48}, - {155, 40}, - {157, 32}, - {159, 24}, - {161, 16}, - {163, 8}, - {164, 0}, - {1642, 120}, + {803, 104}, + {807, 48}, + {808, 40}, + {810, 32}, + {812, 24}, + {814, 16}, + {816, 8}, + {817, 0}, + {1551, 104}, } _pcsp__atof_eisel_lemire64 = [][2]uint32{ {1, 0}, {4, 8}, {6, 16}, {8, 24}, - {10, 32}, - {315, 40}, - {316, 32}, - {318, 24}, - {320, 16}, - {322, 8}, - {323, 0}, - {387, 40}, + {292, 32}, + {293, 24}, + {295, 16}, + {297, 8}, + {298, 0}, + {362, 32}, } _pcsp__atof_native = [][2]uint32{ {1, 0}, {4, 8}, - {596, 56}, - {600, 8}, - {602, 0}, + {587, 56}, + {591, 8}, + {593, 0}, } _pcsp__decimal_to_f64 = [][2]uint32{ {1, 0}, @@ -526,62 +483,60 @@ var ( {10, 32}, {12, 40}, {13, 48}, - {951, 56}, - {955, 48}, - {956, 40}, - {958, 32}, - {960, 24}, - {962, 16}, - {964, 8}, - {965, 0}, - {977, 56}, + {1144, 56}, + {1148, 48}, + {1149, 40}, + {1151, 32}, + {1153, 24}, + {1155, 16}, + {1157, 8}, + {1158, 0}, + {1169, 56}, } - _pcsp__left_shift = [][2]uint32{ + _pcsp__right_shift = [][2]uint32{ {1, 0}, - {4, 8}, - {6, 16}, - {8, 24}, - {418, 32}, - {419, 24}, - {421, 16}, - {423, 8}, - {424, 0}, - {539, 32}, + {318, 8}, + {319, 0}, + {387, 8}, + {388, 0}, + {396, 8}, + {398, 0}, } - _pcsp__right_shift = [][2]uint32{ + _pcsp__left_shift = [][2]uint32{ {1, 0}, {4, 8}, - {452, 16}, - {453, 8}, - {454, 0}, - {462, 16}, - {463, 8}, - {464, 0}, - {472, 16}, + {6, 16}, + {363, 24}, + {364, 16}, + {366, 8}, + {367, 0}, + {470, 24}, + {471, 16}, {473, 8}, - {475, 0}, + {474, 0}, + {486, 24}, } _pcsp__vsigned = [][2]uint32{ {1, 0}, {4, 8}, - {111, 16}, - {112, 8}, - {113, 0}, - {124, 16}, - {125, 8}, - {126, 0}, - {278, 16}, - {279, 8}, - {280, 0}, - {284, 16}, - {285, 8}, - {286, 0}, - {340, 16}, - {341, 8}, - {342, 0}, - {353, 16}, - {354, 8}, - {356, 0}, + {119, 16}, + {120, 8}, + {121, 0}, + {132, 16}, + {133, 8}, + {134, 0}, + {276, 16}, + {277, 8}, + {278, 0}, + {282, 16}, + {283, 8}, + {284, 0}, + {322, 16}, + {323, 8}, + {324, 0}, + {332, 16}, + {333, 8}, + {335, 0}, } _pcsp__vstring = [][2]uint32{ {1, 0}, @@ -600,32 +555,18 @@ var ( } _pcsp__vunsigned = [][2]uint32{ {1, 0}, - {4, 8}, - {6, 16}, - {72, 24}, - {73, 16}, - {75, 8}, - {76, 0}, - {87, 24}, - {88, 16}, + {78, 8}, + {79, 0}, {90, 8}, {91, 0}, - {114, 24}, - {115, 16}, - {117, 8}, - {118, 0}, - {281, 24}, - {282, 16}, - {284, 8}, - {285, 0}, - {336, 24}, - {337, 16}, - {339, 8}, - {340, 0}, - {348, 24}, - {349, 16}, - {351, 8}, - {353, 0}, + {114, 8}, + {115, 0}, + {273, 8}, + {274, 0}, + {312, 8}, + {313, 0}, + {320, 8}, + {322, 0}, } ) @@ -635,14 +576,12 @@ var Funcs = []loader.CFunc{ {"_f64toa", _entry__f64toa, _size__f64toa, _stack__f64toa, _pcsp__f64toa}, {"_format_significand", _entry__format_significand, _size__format_significand, _stack__format_significand, _pcsp__format_significand}, {"_format_integer", _entry__format_integer, _size__format_integer, _stack__format_integer, _pcsp__format_integer}, + {"_get_by_path", _entry__get_by_path, _size__get_by_path, _stack__get_by_path, _pcsp__get_by_path}, {"_fsm_exec", _entry__fsm_exec, _size__fsm_exec, _stack__fsm_exec, _pcsp__fsm_exec}, {"_advance_string", _entry__advance_string, _size__advance_string, _stack__advance_string, _pcsp__advance_string}, {"_advance_string_default", _entry__advance_string_default, _size__advance_string_default, _stack__advance_string_default, _pcsp__advance_string_default}, {"_do_skip_number", _entry__do_skip_number, _size__do_skip_number, _stack__do_skip_number, _pcsp__do_skip_number}, - {"_get_by_path", _entry__get_by_path, _size__get_by_path, _stack__get_by_path, _pcsp__get_by_path}, {"_skip_one_fast", _entry__skip_one_fast, _size__skip_one_fast, _stack__skip_one_fast, _pcsp__skip_one_fast}, - {"_unescape", _entry__unescape, _size__unescape, _stack__unescape, _pcsp__unescape}, - {"_unhex16_is", _entry__unhex16_is, _size__unhex16_is, _stack__unhex16_is, _pcsp__unhex16_is}, {"_html_escape", _entry__html_escape, _size__html_escape, _stack__html_escape, _pcsp__html_escape}, {"_i64toa", _entry__i64toa, _size__i64toa, _stack__i64toa, _pcsp__i64toa}, {"_u64toa", _entry__u64toa, _size__u64toa, _stack__u64toa, _pcsp__u64toa}, @@ -661,8 +600,8 @@ var Funcs = []loader.CFunc{ {"_atof_eisel_lemire64", _entry__atof_eisel_lemire64, _size__atof_eisel_lemire64, _stack__atof_eisel_lemire64, _pcsp__atof_eisel_lemire64}, {"_atof_native", _entry__atof_native, _size__atof_native, _stack__atof_native, _pcsp__atof_native}, {"_decimal_to_f64", _entry__decimal_to_f64, _size__decimal_to_f64, _stack__decimal_to_f64, _pcsp__decimal_to_f64}, - {"_left_shift", _entry__left_shift, _size__left_shift, _stack__left_shift, _pcsp__left_shift}, {"_right_shift", _entry__right_shift, _size__right_shift, _stack__right_shift, _pcsp__right_shift}, + {"_left_shift", _entry__left_shift, _size__left_shift, _stack__left_shift, _pcsp__left_shift}, {"_vsigned", _entry__vsigned, _size__vsigned, _stack__vsigned, _pcsp__vsigned}, {"_vstring", _entry__vstring, _size__vstring, _stack__vstring, _pcsp__vstring}, {"_vunsigned", _entry__vunsigned, _size__vunsigned, _stack__vunsigned, _pcsp__vunsigned}, diff --git a/vendor/github.com/bytedance/sonic/internal/native/sse/native_text_amd64.go b/vendor/github.com/bytedance/sonic/internal/native/sse/native_text_amd64.go index 95142757a..9f94de48a 100644 --- a/vendor/github.com/bytedance/sonic/internal/native/sse/native_text_amd64.go +++ b/vendor/github.com/bytedance/sonic/internal/native/sse/native_text_amd64.go @@ -11,13265 +11,12938 @@ var Text__native_entry__ = []byte{ //0x00000010 _lspace 0x55, //0x00000010 pushq %rbp 0x48, 0x89, 0xe5, //0x00000011 movq %rsp, %rbp - 0x48, 0x89, 0xd0, //0x00000014 movq %rdx, %rax - 0x48, 0x39, 0xd6, //0x00000017 cmpq %rdx, %rsi - 0x0f, 0x84, 0x39, 0x00, 0x00, 0x00, //0x0000001a je LBB0_1 - 0x4c, 0x8d, 0x04, 0x37, //0x00000020 leaq (%rdi,%rsi), %r8 - 0x48, 0xba, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00000024 movabsq $4294977024, %rdx - 0x90, 0x90, //0x0000002e .p2align 4, 0x90 - //0x00000030 LBB0_3 - 0x0f, 0xbe, 0x0c, 0x07, //0x00000030 movsbl (%rdi,%rax), %ecx - 0x83, 0xf9, 0x20, //0x00000034 cmpl $32, %ecx - 0x0f, 0x87, 0x28, 0x00, 0x00, 0x00, //0x00000037 ja LBB0_7 - 0x48, 0x0f, 0xa3, 0xca, //0x0000003d btq %rcx, %rdx - 0x0f, 0x83, 0x1e, 0x00, 0x00, 0x00, //0x00000041 jae LBB0_7 - 0x48, 0x83, 0xc0, 0x01, //0x00000047 addq $1, %rax - 0x48, 0x39, 0xc6, //0x0000004b cmpq %rax, %rsi - 0x0f, 0x85, 0xdc, 0xff, 0xff, 0xff, //0x0000004e jne LBB0_3 - 0xe9, 0x06, 0x00, 0x00, 0x00, //0x00000054 jmp LBB0_6 - //0x00000059 LBB0_1 - 0x48, 0x01, 0xf8, //0x00000059 addq %rdi, %rax - 0x49, 0x89, 0xc0, //0x0000005c movq %rax, %r8 - //0x0000005f LBB0_6 - 0x49, 0x29, 0xf8, //0x0000005f subq %rdi, %r8 - 0x4c, 0x89, 0xc0, //0x00000062 movq %r8, %rax - //0x00000065 LBB0_7 - 0x5d, //0x00000065 popq %rbp - 0xc3, //0x00000066 retq - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000067 .p2align 4, 0x00 - //0x00000070 LCPI1_0 - 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, //0x00000070 QUAD $0x3030303030303030; QUAD $0x3030303030303030 // .space 16, '0000000000000000' - //0x00000080 .p2align 4, 0x90 - //0x00000080 _f64toa - 0x55, //0x00000080 pushq %rbp - 0x48, 0x89, 0xe5, //0x00000081 movq %rsp, %rbp - 0x41, 0x57, //0x00000084 pushq %r15 - 0x41, 0x56, //0x00000086 pushq %r14 - 0x41, 0x55, //0x00000088 pushq %r13 - 0x41, 0x54, //0x0000008a pushq %r12 - 0x53, //0x0000008c pushq %rbx - 0x50, //0x0000008d pushq %rax - 0x66, 0x48, 0x0f, 0x7e, 0xc2, //0x0000008e movq %xmm0, %rdx - 0x48, 0x89, 0xd0, //0x00000093 movq %rdx, %rax - 0x48, 0xc1, 0xe8, 0x34, //0x00000096 shrq $52, %rax - 0x25, 0xff, 0x07, 0x00, 0x00, //0x0000009a andl $2047, %eax - 0x3d, 0xff, 0x07, 0x00, 0x00, //0x0000009f cmpl $2047, %eax - 0x0f, 0x84, 0xee, 0x0b, 0x00, 0x00, //0x000000a4 je LBB1_130 - 0x48, 0x89, 0xfe, //0x000000aa movq %rdi, %rsi - 0xc6, 0x07, 0x2d, //0x000000ad movb $45, (%rdi) - 0x49, 0x89, 0xd5, //0x000000b0 movq %rdx, %r13 - 0x49, 0xc1, 0xed, 0x3f, //0x000000b3 shrq $63, %r13 - 0x4e, 0x8d, 0x3c, 0x2f, //0x000000b7 leaq (%rdi,%r13), %r15 - 0x48, 0x8d, 0x0c, 0x55, 0x00, 0x00, 0x00, 0x00, //0x000000bb leaq (,%rdx,2), %rcx - 0x48, 0x85, 0xc9, //0x000000c3 testq %rcx, %rcx - 0x0f, 0x84, 0x85, 0x02, 0x00, 0x00, //0x000000c6 je LBB1_6 - 0x48, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, //0x000000cc movabsq $4503599627370495, %rdi - 0x48, 0x21, 0xfa, //0x000000d6 andq %rdi, %rdx - 0x85, 0xc0, //0x000000d9 testl %eax, %eax - 0x0f, 0x84, 0xbe, 0x0b, 0x00, 0x00, //0x000000db je LBB1_131 - 0x48, 0x83, 0xc7, 0x01, //0x000000e1 addq $1, %rdi - 0x48, 0x09, 0xd7, //0x000000e5 orq %rdx, %rdi - 0x44, 0x8d, 0x88, 0xcd, 0xfb, 0xff, 0xff, //0x000000e8 leal $-1075(%rax), %r9d - 0x8d, 0x88, 0x01, 0xfc, 0xff, 0xff, //0x000000ef leal $-1023(%rax), %ecx - 0x83, 0xf9, 0x34, //0x000000f5 cmpl $52, %ecx - 0x0f, 0x87, 0x1d, 0x00, 0x00, 0x00, //0x000000f8 ja LBB1_7 - 0xb9, 0x33, 0x04, 0x00, 0x00, //0x000000fe movl $1075, %ecx - 0x29, 0xc1, //0x00000103 subl %eax, %ecx - 0x48, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x00000105 movq $-1, %rbx - 0x48, 0xd3, 0xe3, //0x0000010c shlq %cl, %rbx - 0x48, 0xf7, 0xd3, //0x0000010f notq %rbx - 0x48, 0x85, 0xdf, //0x00000112 testq %rbx, %rdi - 0x0f, 0x84, 0x0a, 0x04, 0x00, 0x00, //0x00000115 je LBB1_43 - //0x0000011b LBB1_7 - 0x48, 0x89, 0x75, 0xd0, //0x0000011b movq %rsi, $-48(%rbp) - //0x0000011f LBB1_8 - 0x48, 0x85, 0xd2, //0x0000011f testq %rdx, %rdx - 0x0f, 0x94, 0xc1, //0x00000122 sete %cl - 0x83, 0xf8, 0x02, //0x00000125 cmpl $2, %eax - 0x0f, 0x93, 0xc0, //0x00000128 setae %al - 0x20, 0xc8, //0x0000012b andb %cl, %al - 0x4c, 0x8d, 0x04, 0xbd, 0x00, 0x00, 0x00, 0x00, //0x0000012d leaq (,%rdi,4), %r8 - 0x0f, 0xb6, 0xc0, //0x00000135 movzbl %al, %eax - 0x41, 0x69, 0xc9, 0x13, 0x44, 0x13, 0x00, //0x00000138 imull $1262611, %r9d, %ecx - 0x44, 0x8d, 0x91, 0x01, 0x01, 0xf8, 0xff, //0x0000013f leal $-524031(%rcx), %r10d - 0x84, 0xc0, //0x00000146 testb %al, %al - 0x44, 0x0f, 0x44, 0xd1, //0x00000148 cmovel %ecx, %r10d - 0x48, 0x8d, 0x1c, 0xb8, //0x0000014c leaq (%rax,%rdi,4), %rbx - 0x48, 0x83, 0xc3, 0xfe, //0x00000150 addq $-2, %rbx - 0x41, 0xc1, 0xfa, 0x16, //0x00000154 sarl $22, %r10d - 0x41, 0x69, 0xca, 0xb1, 0x6c, 0xe5, 0xff, //0x00000158 imull $-1741647, %r10d, %ecx - 0xc1, 0xe9, 0x13, //0x0000015f shrl $19, %ecx - 0x44, 0x01, 0xc9, //0x00000162 addl %r9d, %ecx - 0xbe, 0x24, 0x01, 0x00, 0x00, //0x00000165 movl $292, %esi - 0x44, 0x29, 0xd6, //0x0000016a subl %r10d, %esi - 0x48, 0xc1, 0xe6, 0x04, //0x0000016d shlq $4, %rsi - 0x80, 0xc1, 0x01, //0x00000171 addb $1, %cl - 0x48, 0xd3, 0xe3, //0x00000174 shlq %cl, %rbx - 0x4c, 0x8d, 0x1d, 0x32, 0xc5, 0x00, 0x00, //0x00000177 leaq $50482(%rip), %r11 /* _pow10_ceil_sig.g+0(%rip) */ - 0x4e, 0x8b, 0x64, 0x1e, 0x08, //0x0000017e movq $8(%rsi,%r11), %r12 - 0x48, 0x89, 0xd8, //0x00000183 movq %rbx, %rax - 0x49, 0xf7, 0xe4, //0x00000186 mulq %r12 - 0x49, 0x89, 0xd1, //0x00000189 movq %rdx, %r9 - 0x4e, 0x8b, 0x34, 0x1e, //0x0000018c movq (%rsi,%r11), %r14 - 0x48, 0x89, 0xd8, //0x00000190 movq %rbx, %rax - 0x49, 0xf7, 0xe6, //0x00000193 mulq %r14 - 0x48, 0x89, 0xd3, //0x00000196 movq %rdx, %rbx - 0x4c, 0x01, 0xc8, //0x00000199 addq %r9, %rax - 0x48, 0x83, 0xd3, 0x00, //0x0000019c adcq $0, %rbx - 0x45, 0x31, 0xdb, //0x000001a0 xorl %r11d, %r11d - 0x48, 0x83, 0xf8, 0x02, //0x000001a3 cmpq $2, %rax - 0x41, 0x0f, 0x93, 0xc3, //0x000001a7 setae %r11b - 0x49, 0xd3, 0xe0, //0x000001ab shlq %cl, %r8 - 0x48, 0x8d, 0x34, 0xbd, 0x02, 0x00, 0x00, 0x00, //0x000001ae leaq $2(,%rdi,4), %rsi - 0x4c, 0x89, 0xc0, //0x000001b6 movq %r8, %rax - 0x49, 0xf7, 0xe4, //0x000001b9 mulq %r12 - 0x49, 0x89, 0xd1, //0x000001bc movq %rdx, %r9 - 0x49, 0x09, 0xdb, //0x000001bf orq %rbx, %r11 - 0x4c, 0x89, 0xc0, //0x000001c2 movq %r8, %rax - 0x49, 0xf7, 0xe6, //0x000001c5 mulq %r14 - 0x49, 0x89, 0xd0, //0x000001c8 movq %rdx, %r8 - 0x4c, 0x01, 0xc8, //0x000001cb addq %r9, %rax - 0x49, 0x83, 0xd0, 0x00, //0x000001ce adcq $0, %r8 - 0x31, 0xdb, //0x000001d2 xorl %ebx, %ebx - 0x48, 0x83, 0xf8, 0x02, //0x000001d4 cmpq $2, %rax - 0x0f, 0x93, 0xc3, //0x000001d8 setae %bl - 0x48, 0xd3, 0xe6, //0x000001db shlq %cl, %rsi - 0x48, 0x89, 0xf0, //0x000001de movq %rsi, %rax - 0x49, 0xf7, 0xe4, //0x000001e1 mulq %r12 - 0x48, 0x89, 0xd1, //0x000001e4 movq %rdx, %rcx - 0x48, 0x89, 0xf0, //0x000001e7 movq %rsi, %rax - 0x49, 0xf7, 0xe6, //0x000001ea mulq %r14 - 0x4c, 0x09, 0xc3, //0x000001ed orq %r8, %rbx - 0x48, 0x01, 0xc8, //0x000001f0 addq %rcx, %rax - 0x48, 0x83, 0xd2, 0x00, //0x000001f3 adcq $0, %rdx - 0x31, 0xc9, //0x000001f7 xorl %ecx, %ecx - 0x48, 0x83, 0xf8, 0x02, //0x000001f9 cmpq $2, %rax - 0x0f, 0x93, 0xc1, //0x000001fd setae %cl - 0x48, 0x09, 0xd1, //0x00000200 orq %rdx, %rcx - 0x83, 0xe7, 0x01, //0x00000203 andl $1, %edi - 0x49, 0x01, 0xfb, //0x00000206 addq %rdi, %r11 - 0x48, 0x29, 0xf9, //0x00000209 subq %rdi, %rcx - 0x48, 0x83, 0xfb, 0x28, //0x0000020c cmpq $40, %rbx - 0x0f, 0x82, 0x43, 0x00, 0x00, 0x00, //0x00000210 jb LBB1_10 - 0x48, 0xba, 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x00000216 movabsq $-3689348814741910323, %rdx - 0x4c, 0x89, 0xc0, //0x00000220 movq %r8, %rax - 0x48, 0xf7, 0xe2, //0x00000223 mulq %rdx - 0x48, 0x89, 0xd7, //0x00000226 movq %rdx, %rdi - 0x48, 0xc1, 0xef, 0x05, //0x00000229 shrq $5, %rdi - 0x48, 0x8d, 0x04, 0xfd, 0x00, 0x00, 0x00, 0x00, //0x0000022d leaq (,%rdi,8), %rax - 0x48, 0x8d, 0x14, 0x80, //0x00000235 leaq (%rax,%rax,4), %rdx - 0x49, 0x39, 0xd3, //0x00000239 cmpq %rdx, %r11 - 0x40, 0x0f, 0x97, 0xc6, //0x0000023c seta %sil - 0x48, 0x8d, 0x14, 0x80, //0x00000240 leaq (%rax,%rax,4), %rdx - 0x48, 0x83, 0xc2, 0x28, //0x00000244 addq $40, %rdx - 0x31, 0xc0, //0x00000248 xorl %eax, %eax - 0x48, 0x39, 0xca, //0x0000024a cmpq %rcx, %rdx - 0x0f, 0x96, 0xc2, //0x0000024d setbe %dl - 0x40, 0x38, 0xd6, //0x00000250 cmpb %dl, %sil - 0x0f, 0x84, 0xa3, 0x02, 0x00, 0x00, //0x00000253 je LBB1_22 - //0x00000259 LBB1_10 - 0x4c, 0x89, 0xc6, //0x00000259 movq %r8, %rsi - 0x48, 0xc1, 0xee, 0x02, //0x0000025c shrq $2, %rsi - 0x4c, 0x89, 0xc2, //0x00000260 movq %r8, %rdx - 0x48, 0x83, 0xe2, 0xfc, //0x00000263 andq $-4, %rdx - 0x49, 0x39, 0xd3, //0x00000267 cmpq %rdx, %r11 - 0x41, 0x0f, 0x97, 0xc1, //0x0000026a seta %r9b - 0x48, 0x8d, 0x7a, 0x04, //0x0000026e leaq $4(%rdx), %rdi - 0x48, 0x39, 0xcf, //0x00000272 cmpq %rcx, %rdi - 0x0f, 0x96, 0xc0, //0x00000275 setbe %al - 0x44, 0x30, 0xc8, //0x00000278 xorb %r9b, %al - 0x0f, 0x84, 0xe3, 0x00, 0x00, 0x00, //0x0000027b je LBB1_14 - 0x48, 0x83, 0xca, 0x02, //0x00000281 orq $2, %rdx - 0xbf, 0x01, 0x00, 0x00, 0x00, //0x00000285 movl $1, %edi - 0x48, 0x39, 0xd3, //0x0000028a cmpq %rdx, %rbx - 0x0f, 0x87, 0x0e, 0x00, 0x00, 0x00, //0x0000028d ja LBB1_13 - 0x0f, 0x94, 0xc0, //0x00000293 sete %al - 0x41, 0xc0, 0xe8, 0x02, //0x00000296 shrb $2, %r8b - 0x41, 0x20, 0xc0, //0x0000029a andb %al, %r8b - 0x41, 0x0f, 0xb6, 0xf8, //0x0000029d movzbl %r8b, %edi - //0x000002a1 LBB1_13 - 0x48, 0x01, 0xf7, //0x000002a1 addq %rsi, %rdi - 0x49, 0xbc, 0xe0, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, //0x000002a4 movabsq $8589934560, %r12 - 0x49, 0x8d, 0x84, 0x24, 0x1f, 0xe4, 0x0b, 0x54, //0x000002ae leaq $1410065439(%r12), %rax - 0x48, 0x39, 0xc7, //0x000002b6 cmpq %rax, %rdi - 0x0f, 0x86, 0xca, 0x00, 0x00, 0x00, //0x000002b9 jbe LBB1_23 - //0x000002bf LBB1_15 - 0x48, 0x89, 0xf8, //0x000002bf movq %rdi, %rax - 0x48, 0xc1, 0xe8, 0x0b, //0x000002c2 shrq $11, %rax - 0xba, 0x0b, 0x00, 0x00, 0x00, //0x000002c6 movl $11, %edx - 0x48, 0x3d, 0xdd, 0x0e, 0xe9, 0x02, //0x000002cb cmpq $48828125, %rax - 0x0f, 0x82, 0x3c, 0x01, 0x00, 0x00, //0x000002d1 jb LBB1_31 - 0x48, 0x89, 0xf8, //0x000002d7 movq %rdi, %rax - 0x48, 0xc1, 0xe8, 0x0c, //0x000002da shrq $12, %rax - 0xba, 0x0c, 0x00, 0x00, 0x00, //0x000002de movl $12, %edx - 0x48, 0x3d, 0x51, 0x4a, 0x8d, 0x0e, //0x000002e3 cmpq $244140625, %rax - 0x0f, 0x82, 0x24, 0x01, 0x00, 0x00, //0x000002e9 jb LBB1_31 - 0x48, 0x89, 0xf8, //0x000002ef movq %rdi, %rax - 0x48, 0xc1, 0xe8, 0x0d, //0x000002f2 shrq $13, %rax - 0xba, 0x0d, 0x00, 0x00, 0x00, //0x000002f6 movl $13, %edx - 0x48, 0x3d, 0x95, 0x73, 0xc2, 0x48, //0x000002fb cmpq $1220703125, %rax - 0x0f, 0x82, 0x0c, 0x01, 0x00, 0x00, //0x00000301 jb LBB1_31 - 0xba, 0x0e, 0x00, 0x00, 0x00, //0x00000307 movl $14, %edx - 0x48, 0xb8, 0x00, 0x40, 0x7a, 0x10, 0xf3, 0x5a, 0x00, 0x00, //0x0000030c movabsq $100000000000000, %rax - 0x48, 0x39, 0xc7, //0x00000316 cmpq %rax, %rdi - 0x0f, 0x82, 0xf4, 0x00, 0x00, 0x00, //0x00000319 jb LBB1_31 - 0xba, 0x0f, 0x00, 0x00, 0x00, //0x0000031f movl $15, %edx - 0x48, 0xb8, 0x00, 0x80, 0xc6, 0xa4, 0x7e, 0x8d, 0x03, 0x00, //0x00000324 movabsq $1000000000000000, %rax - 0x48, 0x39, 0xc7, //0x0000032e cmpq %rax, %rdi - 0x0f, 0x82, 0xdc, 0x00, 0x00, 0x00, //0x00000331 jb LBB1_31 - 0x48, 0xb8, 0x00, 0x00, 0xc1, 0x6f, 0xf2, 0x86, 0x23, 0x00, //0x00000337 movabsq $10000000000000000, %rax - 0x48, 0x39, 0xc7, //0x00000341 cmpq %rax, %rdi - 0xba, 0x11, 0x00, 0x00, 0x00, //0x00000344 movl $17, %edx - //0x00000349 LBB1_21 - 0x83, 0xda, 0x00, //0x00000349 sbbl $0, %edx - 0xe9, 0xc2, 0x00, 0x00, 0x00, //0x0000034c jmp LBB1_31 - //0x00000351 LBB1_6 - 0x41, 0xc6, 0x07, 0x30, //0x00000351 movb $48, (%r15) - 0x41, 0x29, 0xf7, //0x00000355 subl %esi, %r15d - 0x41, 0x83, 0xc7, 0x01, //0x00000358 addl $1, %r15d - 0x44, 0x89, 0xfb, //0x0000035c movl %r15d, %ebx - 0xe9, 0xf3, 0x08, 0x00, 0x00, //0x0000035f jmp LBB1_128 - //0x00000364 LBB1_14 - 0x48, 0x39, 0xf9, //0x00000364 cmpq %rdi, %rcx - 0x48, 0x83, 0xde, 0xff, //0x00000367 sbbq $-1, %rsi - 0x48, 0x89, 0xf7, //0x0000036b movq %rsi, %rdi - 0x49, 0xbc, 0xe0, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, //0x0000036e movabsq $8589934560, %r12 - 0x49, 0x8d, 0x84, 0x24, 0x1f, 0xe4, 0x0b, 0x54, //0x00000378 leaq $1410065439(%r12), %rax - 0x48, 0x39, 0xc7, //0x00000380 cmpq %rax, %rdi - 0x0f, 0x87, 0x36, 0xff, 0xff, 0xff, //0x00000383 ja LBB1_15 - //0x00000389 LBB1_23 - 0xba, 0x01, 0x00, 0x00, 0x00, //0x00000389 movl $1, %edx - 0x48, 0x83, 0xff, 0x0a, //0x0000038e cmpq $10, %rdi - 0x0f, 0x82, 0x7b, 0x00, 0x00, 0x00, //0x00000392 jb LBB1_31 - 0xba, 0x02, 0x00, 0x00, 0x00, //0x00000398 movl $2, %edx - 0x48, 0x83, 0xff, 0x64, //0x0000039d cmpq $100, %rdi - 0x0f, 0x82, 0x6c, 0x00, 0x00, 0x00, //0x000003a1 jb LBB1_31 - 0xba, 0x03, 0x00, 0x00, 0x00, //0x000003a7 movl $3, %edx - 0x48, 0x81, 0xff, 0xe8, 0x03, 0x00, 0x00, //0x000003ac cmpq $1000, %rdi - 0x0f, 0x82, 0x5a, 0x00, 0x00, 0x00, //0x000003b3 jb LBB1_31 - 0xba, 0x04, 0x00, 0x00, 0x00, //0x000003b9 movl $4, %edx - 0x48, 0x81, 0xff, 0x10, 0x27, 0x00, 0x00, //0x000003be cmpq $10000, %rdi - 0x0f, 0x82, 0x48, 0x00, 0x00, 0x00, //0x000003c5 jb LBB1_31 - 0xba, 0x05, 0x00, 0x00, 0x00, //0x000003cb movl $5, %edx - 0x48, 0x81, 0xff, 0xa0, 0x86, 0x01, 0x00, //0x000003d0 cmpq $100000, %rdi - 0x0f, 0x82, 0x36, 0x00, 0x00, 0x00, //0x000003d7 jb LBB1_31 - 0xba, 0x06, 0x00, 0x00, 0x00, //0x000003dd movl $6, %edx - 0x48, 0x81, 0xff, 0x40, 0x42, 0x0f, 0x00, //0x000003e2 cmpq $1000000, %rdi - 0x0f, 0x82, 0x24, 0x00, 0x00, 0x00, //0x000003e9 jb LBB1_31 - 0xba, 0x07, 0x00, 0x00, 0x00, //0x000003ef movl $7, %edx - 0x48, 0x81, 0xff, 0x80, 0x96, 0x98, 0x00, //0x000003f4 cmpq $10000000, %rdi - 0x0f, 0x82, 0x12, 0x00, 0x00, 0x00, //0x000003fb jb LBB1_31 - 0xba, 0x08, 0x00, 0x00, 0x00, //0x00000401 movl $8, %edx - 0x48, 0x81, 0xff, 0x00, 0xe1, 0xf5, 0x05, //0x00000406 cmpq $100000000, %rdi - 0x0f, 0x83, 0x74, 0x08, 0x00, 0x00, //0x0000040d jae LBB1_129 - //0x00000413 LBB1_31 - 0x46, 0x8d, 0x34, 0x12, //0x00000413 leal (%rdx,%r10), %r14d - 0x42, 0x8d, 0x04, 0x12, //0x00000417 leal (%rdx,%r10), %eax - 0x83, 0xc0, 0x05, //0x0000041b addl $5, %eax - 0x83, 0xf8, 0x1b, //0x0000041e cmpl $27, %eax - 0x0f, 0x82, 0x99, 0x00, 0x00, 0x00, //0x00000421 jb LBB1_39 - 0x4d, 0x8d, 0x67, 0x01, //0x00000427 leaq $1(%r15), %r12 - 0x4c, 0x89, 0xe6, //0x0000042b movq %r12, %rsi - 0xe8, 0x7d, 0x89, 0x00, 0x00, //0x0000042e callq _format_significand - 0x48, 0x89, 0xc3, //0x00000433 movq %rax, %rbx - 0x48, 0x8b, 0x7d, 0xd0, //0x00000436 movq $-48(%rbp), %rdi - 0x48, 0x29, 0xf8, //0x0000043a subq %rdi, %rax - 0x4c, 0x29, 0xe8, //0x0000043d subq %r13, %rax - //0x00000440 .p2align 4, 0x90 - //0x00000440 LBB1_33 - 0x48, 0x83, 0xc0, 0xff, //0x00000440 addq $-1, %rax - 0x80, 0x7b, 0xff, 0x30, //0x00000444 cmpb $48, $-1(%rbx) - 0x48, 0x8d, 0x5b, 0xff, //0x00000448 leaq $-1(%rbx), %rbx - 0x0f, 0x84, 0xee, 0xff, 0xff, 0xff, //0x0000044c je LBB1_33 - 0x41, 0x8a, 0x4f, 0x01, //0x00000452 movb $1(%r15), %cl - 0x41, 0x88, 0x0f, //0x00000456 movb %cl, (%r15) - 0x48, 0x83, 0xf8, 0x02, //0x00000459 cmpq $2, %rax - 0x0f, 0x8c, 0x09, 0x00, 0x00, 0x00, //0x0000045d jl LBB1_36 - 0x48, 0x83, 0xc3, 0x01, //0x00000463 addq $1, %rbx - 0x41, 0xc6, 0x04, 0x24, 0x2e, //0x00000467 movb $46, (%r12) - //0x0000046c LBB1_36 - 0xc6, 0x03, 0x65, //0x0000046c movb $101, (%rbx) - 0x45, 0x85, 0xf6, //0x0000046f testl %r14d, %r14d - 0x0f, 0x8e, 0x5e, 0x01, 0x00, 0x00, //0x00000472 jle LBB1_51 - 0x41, 0x83, 0xc6, 0xff, //0x00000478 addl $-1, %r14d - 0xc6, 0x43, 0x01, 0x2b, //0x0000047c movb $43, $1(%rbx) - 0x44, 0x89, 0xf0, //0x00000480 movl %r14d, %eax - 0x83, 0xf8, 0x64, //0x00000483 cmpl $100, %eax - 0x0f, 0x8c, 0x5f, 0x01, 0x00, 0x00, //0x00000486 jl LBB1_52 - //0x0000048c LBB1_38 - 0x89, 0xc1, //0x0000048c movl %eax, %ecx - 0xba, 0xcd, 0xcc, 0xcc, 0xcc, //0x0000048e movl $3435973837, %edx - 0x48, 0x0f, 0xaf, 0xd1, //0x00000493 imulq %rcx, %rdx - 0x48, 0xc1, 0xea, 0x23, //0x00000497 shrq $35, %rdx - 0x8d, 0x0c, 0x12, //0x0000049b leal (%rdx,%rdx), %ecx - 0x8d, 0x0c, 0x89, //0x0000049e leal (%rcx,%rcx,4), %ecx - 0x29, 0xc8, //0x000004a1 subl %ecx, %eax - 0x48, 0x8d, 0x0d, 0x36, 0xc1, 0x00, 0x00, //0x000004a3 leaq $49462(%rip), %rcx /* _Digits+0(%rip) */ - 0x0f, 0xb7, 0x0c, 0x51, //0x000004aa movzwl (%rcx,%rdx,2), %ecx - 0x66, 0x89, 0x4b, 0x02, //0x000004ae movw %cx, $2(%rbx) - 0x0c, 0x30, //0x000004b2 orb $48, %al - 0x88, 0x43, 0x04, //0x000004b4 movb %al, $4(%rbx) - 0x48, 0x83, 0xc3, 0x05, //0x000004b7 addq $5, %rbx - 0xe9, 0x95, 0x07, 0x00, 0x00, //0x000004bb jmp LBB1_127 - //0x000004c0 LBB1_39 - 0x45, 0x85, 0xd2, //0x000004c0 testl %r10d, %r10d - 0x0f, 0x88, 0x45, 0x01, 0x00, 0x00, //0x000004c3 js LBB1_54 - 0x4d, 0x63, 0xf6, //0x000004c9 movslq %r14d, %r14 - 0x4b, 0x8d, 0x1c, 0x37, //0x000004cc leaq (%r15,%r14), %rbx - 0x4c, 0x89, 0xfe, //0x000004d0 movq %r15, %rsi - 0xe8, 0xf8, 0x07, 0x00, 0x00, //0x000004d3 callq _format_integer - 0x48, 0x39, 0xd8, //0x000004d8 cmpq %rbx, %rax - 0x0f, 0x83, 0x70, 0x07, 0x00, 0x00, //0x000004db jae LBB1_104 - 0x4d, 0x01, 0xf7, //0x000004e1 addq %r14, %r15 - 0x4d, 0x89, 0xf8, //0x000004e4 movq %r15, %r8 - 0x49, 0x29, 0xc0, //0x000004e7 subq %rax, %r8 - 0x49, 0x83, 0xf8, 0x08, //0x000004ea cmpq $8, %r8 - 0x0f, 0x83, 0x2a, 0x02, 0x00, 0x00, //0x000004ee jae LBB1_70 - //0x000004f4 LBB1_42 - 0x48, 0x89, 0xc1, //0x000004f4 movq %rax, %rcx - 0xe9, 0x8e, 0x03, 0x00, 0x00, //0x000004f7 jmp LBB1_86 - //0x000004fc LBB1_22 - 0x88, 0xd0, //0x000004fc movb %dl, %al - 0x48, 0x01, 0xc7, //0x000004fe addq %rax, %rdi - 0x41, 0x83, 0xc2, 0x01, //0x00000501 addl $1, %r10d - 0x49, 0xbc, 0xe0, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, //0x00000505 movabsq $8589934560, %r12 - 0x49, 0x8d, 0x84, 0x24, 0x1f, 0xe4, 0x0b, 0x54, //0x0000050f leaq $1410065439(%r12), %rax - 0x48, 0x39, 0xc7, //0x00000517 cmpq %rax, %rdi - 0x0f, 0x87, 0x9f, 0xfd, 0xff, 0xff, //0x0000051a ja LBB1_15 - 0xe9, 0x64, 0xfe, 0xff, 0xff, //0x00000520 jmp LBB1_23 - //0x00000525 LBB1_43 - 0x48, 0xd3, 0xef, //0x00000525 shrq %cl, %rdi - 0x48, 0xb8, 0xe0, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, //0x00000528 movabsq $8589934560, %rax - 0x48, 0x05, 0x1f, 0xe4, 0x0b, 0x54, //0x00000532 addq $1410065439, %rax - 0x49, 0x89, 0xf6, //0x00000538 movq %rsi, %r14 - 0x48, 0x39, 0xc7, //0x0000053b cmpq %rax, %rdi - 0x0f, 0x86, 0x3d, 0x01, 0x00, 0x00, //0x0000053e jbe LBB1_61 - 0x48, 0x89, 0xf8, //0x00000544 movq %rdi, %rax - 0x48, 0xc1, 0xe8, 0x0b, //0x00000547 shrq $11, %rax - 0xba, 0x0b, 0x00, 0x00, 0x00, //0x0000054b movl $11, %edx - 0x48, 0x3d, 0xdd, 0x0e, 0xe9, 0x02, //0x00000550 cmpq $48828125, %rax - 0x0f, 0x82, 0xaf, 0x01, 0x00, 0x00, //0x00000556 jb LBB1_69 - 0x48, 0x89, 0xf8, //0x0000055c movq %rdi, %rax - 0x48, 0xc1, 0xe8, 0x0c, //0x0000055f shrq $12, %rax - 0xba, 0x0c, 0x00, 0x00, 0x00, //0x00000563 movl $12, %edx - 0x48, 0x3d, 0x51, 0x4a, 0x8d, 0x0e, //0x00000568 cmpq $244140625, %rax - 0x0f, 0x82, 0x97, 0x01, 0x00, 0x00, //0x0000056e jb LBB1_69 - 0x48, 0x89, 0xf8, //0x00000574 movq %rdi, %rax - 0x48, 0xc1, 0xe8, 0x0d, //0x00000577 shrq $13, %rax - 0xba, 0x0d, 0x00, 0x00, 0x00, //0x0000057b movl $13, %edx - 0x48, 0x3d, 0x95, 0x73, 0xc2, 0x48, //0x00000580 cmpq $1220703125, %rax - 0x0f, 0x82, 0x7f, 0x01, 0x00, 0x00, //0x00000586 jb LBB1_69 - 0xba, 0x0e, 0x00, 0x00, 0x00, //0x0000058c movl $14, %edx - 0x48, 0xb8, 0x00, 0x40, 0x7a, 0x10, 0xf3, 0x5a, 0x00, 0x00, //0x00000591 movabsq $100000000000000, %rax - 0x48, 0x39, 0xc7, //0x0000059b cmpq %rax, %rdi - 0x0f, 0x82, 0x67, 0x01, 0x00, 0x00, //0x0000059e jb LBB1_69 - 0xba, 0x0f, 0x00, 0x00, 0x00, //0x000005a4 movl $15, %edx - 0x48, 0xb8, 0x00, 0x80, 0xc6, 0xa4, 0x7e, 0x8d, 0x03, 0x00, //0x000005a9 movabsq $1000000000000000, %rax - 0x48, 0x39, 0xc7, //0x000005b3 cmpq %rax, %rdi - 0x0f, 0x82, 0x4f, 0x01, 0x00, 0x00, //0x000005b6 jb LBB1_69 - 0x48, 0xb8, 0x00, 0x00, 0xc1, 0x6f, 0xf2, 0x86, 0x23, 0x00, //0x000005bc movabsq $10000000000000000, %rax - 0x48, 0x39, 0xc7, //0x000005c6 cmpq %rax, %rdi - 0xba, 0x11, 0x00, 0x00, 0x00, //0x000005c9 movl $17, %edx - //0x000005ce LBB1_50 - 0x83, 0xda, 0x00, //0x000005ce sbbl $0, %edx - 0xe9, 0x35, 0x01, 0x00, 0x00, //0x000005d1 jmp LBB1_69 - //0x000005d6 LBB1_51 - 0xc6, 0x43, 0x01, 0x2d, //0x000005d6 movb $45, $1(%rbx) - 0xb8, 0x01, 0x00, 0x00, 0x00, //0x000005da movl $1, %eax - 0x44, 0x29, 0xf0, //0x000005df subl %r14d, %eax - 0x83, 0xf8, 0x64, //0x000005e2 cmpl $100, %eax - 0x0f, 0x8d, 0xa1, 0xfe, 0xff, 0xff, //0x000005e5 jge LBB1_38 - //0x000005eb LBB1_52 - 0x83, 0xf8, 0x0a, //0x000005eb cmpl $10, %eax - 0x0f, 0x8c, 0x7f, 0x00, 0x00, 0x00, //0x000005ee jl LBB1_60 - 0x89, 0xc0, //0x000005f4 movl %eax, %eax - 0x48, 0x8d, 0x0d, 0xe3, 0xbf, 0x00, 0x00, //0x000005f6 leaq $49123(%rip), %rcx /* _Digits+0(%rip) */ - 0x0f, 0xb7, 0x04, 0x41, //0x000005fd movzwl (%rcx,%rax,2), %eax - 0x66, 0x89, 0x43, 0x02, //0x00000601 movw %ax, $2(%rbx) - 0x48, 0x83, 0xc3, 0x04, //0x00000605 addq $4, %rbx - 0xe9, 0x47, 0x06, 0x00, 0x00, //0x00000609 jmp LBB1_127 - //0x0000060e LBB1_54 - 0x45, 0x85, 0xf6, //0x0000060e testl %r14d, %r14d - 0x0f, 0x8f, 0x9a, 0x03, 0x00, 0x00, //0x00000611 jg LBB1_97 - 0x66, 0x41, 0xc7, 0x07, 0x30, 0x2e, //0x00000617 movw $11824, (%r15) - 0x49, 0x83, 0xc7, 0x02, //0x0000061d addq $2, %r15 - 0x45, 0x85, 0xf6, //0x00000621 testl %r14d, %r14d - 0x0f, 0x89, 0x87, 0x03, 0x00, 0x00, //0x00000624 jns LBB1_97 - 0x41, 0x89, 0xd0, //0x0000062a movl %edx, %r8d - 0x41, 0xf7, 0xd0, //0x0000062d notl %r8d - 0x45, 0x29, 0xd0, //0x00000630 subl %r10d, %r8d - 0x31, 0xc0, //0x00000633 xorl %eax, %eax - 0x41, 0x83, 0xf8, 0x1f, //0x00000635 cmpl $31, %r8d - 0x0f, 0x82, 0x5c, 0x03, 0x00, 0x00, //0x00000639 jb LBB1_95 - 0x49, 0x83, 0xc0, 0x01, //0x0000063f addq $1, %r8 - 0x4c, 0x89, 0xc0, //0x00000643 movq %r8, %rax - 0x4c, 0x21, 0xe0, //0x00000646 andq %r12, %rax - 0x48, 0x8d, 0x48, 0xe0, //0x00000649 leaq $-32(%rax), %rcx - 0x48, 0x89, 0xce, //0x0000064d movq %rcx, %rsi - 0x48, 0xc1, 0xee, 0x05, //0x00000650 shrq $5, %rsi - 0x48, 0x83, 0xc6, 0x01, //0x00000654 addq $1, %rsi - 0x41, 0x89, 0xf1, //0x00000658 movl %esi, %r9d - 0x41, 0x83, 0xe1, 0x07, //0x0000065b andl $7, %r9d - 0x48, 0x81, 0xf9, 0xe0, 0x00, 0x00, 0x00, //0x0000065f cmpq $224, %rcx - 0x0f, 0x83, 0x41, 0x02, 0x00, 0x00, //0x00000666 jae LBB1_89 - 0x31, 0xc9, //0x0000066c xorl %ecx, %ecx - 0xe9, 0xdf, 0x02, 0x00, 0x00, //0x0000066e jmp LBB1_91 - //0x00000673 LBB1_60 - 0x04, 0x30, //0x00000673 addb $48, %al - 0x88, 0x43, 0x02, //0x00000675 movb %al, $2(%rbx) - 0x48, 0x83, 0xc3, 0x03, //0x00000678 addq $3, %rbx - 0xe9, 0xd4, 0x05, 0x00, 0x00, //0x0000067c jmp LBB1_127 - //0x00000681 LBB1_61 - 0xba, 0x01, 0x00, 0x00, 0x00, //0x00000681 movl $1, %edx - 0x48, 0x83, 0xff, 0x0a, //0x00000686 cmpq $10, %rdi - 0x0f, 0x82, 0x7b, 0x00, 0x00, 0x00, //0x0000068a jb LBB1_69 - 0xba, 0x02, 0x00, 0x00, 0x00, //0x00000690 movl $2, %edx - 0x48, 0x83, 0xff, 0x64, //0x00000695 cmpq $100, %rdi - 0x0f, 0x82, 0x6c, 0x00, 0x00, 0x00, //0x00000699 jb LBB1_69 - 0xba, 0x03, 0x00, 0x00, 0x00, //0x0000069f movl $3, %edx - 0x48, 0x81, 0xff, 0xe8, 0x03, 0x00, 0x00, //0x000006a4 cmpq $1000, %rdi - 0x0f, 0x82, 0x5a, 0x00, 0x00, 0x00, //0x000006ab jb LBB1_69 - 0xba, 0x04, 0x00, 0x00, 0x00, //0x000006b1 movl $4, %edx - 0x48, 0x81, 0xff, 0x10, 0x27, 0x00, 0x00, //0x000006b6 cmpq $10000, %rdi - 0x0f, 0x82, 0x48, 0x00, 0x00, 0x00, //0x000006bd jb LBB1_69 - 0xba, 0x05, 0x00, 0x00, 0x00, //0x000006c3 movl $5, %edx - 0x48, 0x81, 0xff, 0xa0, 0x86, 0x01, 0x00, //0x000006c8 cmpq $100000, %rdi - 0x0f, 0x82, 0x36, 0x00, 0x00, 0x00, //0x000006cf jb LBB1_69 - 0xba, 0x06, 0x00, 0x00, 0x00, //0x000006d5 movl $6, %edx - 0x48, 0x81, 0xff, 0x40, 0x42, 0x0f, 0x00, //0x000006da cmpq $1000000, %rdi - 0x0f, 0x82, 0x24, 0x00, 0x00, 0x00, //0x000006e1 jb LBB1_69 - 0xba, 0x07, 0x00, 0x00, 0x00, //0x000006e7 movl $7, %edx - 0x48, 0x81, 0xff, 0x80, 0x96, 0x98, 0x00, //0x000006ec cmpq $10000000, %rdi - 0x0f, 0x82, 0x12, 0x00, 0x00, 0x00, //0x000006f3 jb LBB1_69 - 0xba, 0x08, 0x00, 0x00, 0x00, //0x000006f9 movl $8, %edx - 0x48, 0x81, 0xff, 0x00, 0xe1, 0xf5, 0x05, //0x000006fe cmpq $100000000, %rdi - 0x0f, 0x83, 0xa6, 0x05, 0x00, 0x00, //0x00000705 jae LBB1_132 - //0x0000070b LBB1_69 - 0x4c, 0x89, 0xfe, //0x0000070b movq %r15, %rsi - 0xe8, 0xbd, 0x05, 0x00, 0x00, //0x0000070e callq _format_integer - 0x48, 0x89, 0xc3, //0x00000713 movq %rax, %rbx - 0x44, 0x29, 0xf3, //0x00000716 subl %r14d, %ebx - 0xe9, 0x39, 0x05, 0x00, 0x00, //0x00000719 jmp LBB1_128 - //0x0000071e LBB1_70 - 0x49, 0x83, 0xf8, 0x20, //0x0000071e cmpq $32, %r8 - 0x0f, 0x83, 0x07, 0x00, 0x00, 0x00, //0x00000722 jae LBB1_72 - 0x31, 0xd2, //0x00000728 xorl %edx, %edx - 0xe9, 0x1c, 0x01, 0x00, 0x00, //0x0000072a jmp LBB1_82 - //0x0000072f LBB1_72 - 0x4c, 0x89, 0xc2, //0x0000072f movq %r8, %rdx - 0x48, 0x83, 0xe2, 0xe0, //0x00000732 andq $-32, %rdx - 0x48, 0x8d, 0x4a, 0xe0, //0x00000736 leaq $-32(%rdx), %rcx - 0x48, 0x89, 0xcf, //0x0000073a movq %rcx, %rdi - 0x48, 0xc1, 0xef, 0x05, //0x0000073d shrq $5, %rdi - 0x48, 0x83, 0xc7, 0x01, //0x00000741 addq $1, %rdi - 0x89, 0xfe, //0x00000745 movl %edi, %esi - 0x83, 0xe6, 0x07, //0x00000747 andl $7, %esi - 0x48, 0x81, 0xf9, 0xe0, 0x00, 0x00, 0x00, //0x0000074a cmpq $224, %rcx - 0x0f, 0x83, 0x07, 0x00, 0x00, 0x00, //0x00000751 jae LBB1_74 - 0x31, 0xc9, //0x00000757 xorl %ecx, %ecx - 0xe9, 0x9a, 0x00, 0x00, 0x00, //0x00000759 jmp LBB1_76 - //0x0000075e LBB1_74 - 0x48, 0x83, 0xe7, 0xf8, //0x0000075e andq $-8, %rdi - 0x48, 0xf7, 0xdf, //0x00000762 negq %rdi - 0x31, 0xc9, //0x00000765 xorl %ecx, %ecx - 0x66, 0x0f, 0x6f, 0x05, 0x01, 0xf9, 0xff, 0xff, //0x00000767 movdqa $-1791(%rip), %xmm0 /* LCPI1_0+0(%rip) */ - 0x90, //0x0000076f .p2align 4, 0x90 - //0x00000770 LBB1_75 - 0xf3, 0x0f, 0x7f, 0x04, 0x08, //0x00000770 movdqu %xmm0, (%rax,%rcx) - 0xf3, 0x0f, 0x7f, 0x44, 0x08, 0x10, //0x00000775 movdqu %xmm0, $16(%rax,%rcx) - 0xf3, 0x0f, 0x7f, 0x44, 0x08, 0x20, //0x0000077b movdqu %xmm0, $32(%rax,%rcx) - 0xf3, 0x0f, 0x7f, 0x44, 0x08, 0x30, //0x00000781 movdqu %xmm0, $48(%rax,%rcx) - 0xf3, 0x0f, 0x7f, 0x44, 0x08, 0x40, //0x00000787 movdqu %xmm0, $64(%rax,%rcx) - 0xf3, 0x0f, 0x7f, 0x44, 0x08, 0x50, //0x0000078d movdqu %xmm0, $80(%rax,%rcx) - 0xf3, 0x0f, 0x7f, 0x44, 0x08, 0x60, //0x00000793 movdqu %xmm0, $96(%rax,%rcx) - 0xf3, 0x0f, 0x7f, 0x44, 0x08, 0x70, //0x00000799 movdqu %xmm0, $112(%rax,%rcx) - 0xf3, 0x0f, 0x7f, 0x84, 0x08, 0x80, 0x00, 0x00, 0x00, //0x0000079f movdqu %xmm0, $128(%rax,%rcx) - 0xf3, 0x0f, 0x7f, 0x84, 0x08, 0x90, 0x00, 0x00, 0x00, //0x000007a8 movdqu %xmm0, $144(%rax,%rcx) - 0xf3, 0x0f, 0x7f, 0x84, 0x08, 0xa0, 0x00, 0x00, 0x00, //0x000007b1 movdqu %xmm0, $160(%rax,%rcx) - 0xf3, 0x0f, 0x7f, 0x84, 0x08, 0xb0, 0x00, 0x00, 0x00, //0x000007ba movdqu %xmm0, $176(%rax,%rcx) - 0xf3, 0x0f, 0x7f, 0x84, 0x08, 0xc0, 0x00, 0x00, 0x00, //0x000007c3 movdqu %xmm0, $192(%rax,%rcx) - 0xf3, 0x0f, 0x7f, 0x84, 0x08, 0xd0, 0x00, 0x00, 0x00, //0x000007cc movdqu %xmm0, $208(%rax,%rcx) - 0xf3, 0x0f, 0x7f, 0x84, 0x08, 0xe0, 0x00, 0x00, 0x00, //0x000007d5 movdqu %xmm0, $224(%rax,%rcx) - 0xf3, 0x0f, 0x7f, 0x84, 0x08, 0xf0, 0x00, 0x00, 0x00, //0x000007de movdqu %xmm0, $240(%rax,%rcx) - 0x48, 0x81, 0xc1, 0x00, 0x01, 0x00, 0x00, //0x000007e7 addq $256, %rcx - 0x48, 0x83, 0xc7, 0x08, //0x000007ee addq $8, %rdi - 0x0f, 0x85, 0x78, 0xff, 0xff, 0xff, //0x000007f2 jne LBB1_75 - //0x000007f8 LBB1_76 - 0x48, 0x85, 0xf6, //0x000007f8 testq %rsi, %rsi - 0x0f, 0x84, 0x37, 0x00, 0x00, 0x00, //0x000007fb je LBB1_79 - 0x48, 0x01, 0xc1, //0x00000801 addq %rax, %rcx - 0x48, 0x83, 0xc1, 0x10, //0x00000804 addq $16, %rcx - 0x48, 0xc1, 0xe6, 0x05, //0x00000808 shlq $5, %rsi - 0x31, 0xff, //0x0000080c xorl %edi, %edi - 0x66, 0x0f, 0x6f, 0x05, 0x5a, 0xf8, 0xff, 0xff, //0x0000080e movdqa $-1958(%rip), %xmm0 /* LCPI1_0+0(%rip) */ - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000816 .p2align 4, 0x90 - //0x00000820 LBB1_78 - 0xf3, 0x0f, 0x7f, 0x44, 0x39, 0xf0, //0x00000820 movdqu %xmm0, $-16(%rcx,%rdi) - 0xf3, 0x0f, 0x7f, 0x04, 0x39, //0x00000826 movdqu %xmm0, (%rcx,%rdi) - 0x48, 0x83, 0xc7, 0x20, //0x0000082b addq $32, %rdi - 0x48, 0x39, 0xfe, //0x0000082f cmpq %rdi, %rsi - 0x0f, 0x85, 0xe8, 0xff, 0xff, 0xff, //0x00000832 jne LBB1_78 - //0x00000838 LBB1_79 - 0x49, 0x39, 0xd0, //0x00000838 cmpq %rdx, %r8 - 0x0f, 0x84, 0x10, 0x04, 0x00, 0x00, //0x0000083b je LBB1_104 - 0x41, 0xf6, 0xc0, 0x18, //0x00000841 testb $24, %r8b - 0x0f, 0x84, 0x5a, 0x00, 0x00, 0x00, //0x00000845 je LBB1_88 - //0x0000084b LBB1_82 - 0x4c, 0x89, 0xc6, //0x0000084b movq %r8, %rsi - 0x48, 0x83, 0xe6, 0xf8, //0x0000084e andq $-8, %rsi - 0x48, 0x89, 0xc1, //0x00000852 movq %rax, %rcx - 0x48, 0x01, 0xf1, //0x00000855 addq %rsi, %rcx - 0x48, 0xbf, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, //0x00000858 movabsq $3472328296227680304, %rdi - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000862 .p2align 4, 0x90 - //0x00000870 LBB1_83 - 0x48, 0x89, 0x3c, 0x10, //0x00000870 movq %rdi, (%rax,%rdx) - 0x48, 0x83, 0xc2, 0x08, //0x00000874 addq $8, %rdx - 0x48, 0x39, 0xd6, //0x00000878 cmpq %rdx, %rsi - 0x0f, 0x85, 0xef, 0xff, 0xff, 0xff, //0x0000087b jne LBB1_83 - 0x49, 0x39, 0xf0, //0x00000881 cmpq %rsi, %r8 - 0x0f, 0x84, 0xc7, 0x03, 0x00, 0x00, //0x00000884 je LBB1_104 - //0x0000088a LBB1_86 - 0x48, 0x8b, 0x7d, 0xd0, //0x0000088a movq $-48(%rbp), %rdi - 0x90, 0x90, //0x0000088e .p2align 4, 0x90 - //0x00000890 LBB1_87 - 0xc6, 0x01, 0x30, //0x00000890 movb $48, (%rcx) - 0x48, 0x83, 0xc1, 0x01, //0x00000893 addq $1, %rcx - 0x4c, 0x39, 0xf9, //0x00000897 cmpq %r15, %rcx - 0x0f, 0x85, 0xf0, 0xff, 0xff, 0xff, //0x0000089a jne LBB1_87 - 0xe9, 0xb0, 0x03, 0x00, 0x00, //0x000008a0 jmp LBB1_127 - //0x000008a5 LBB1_88 - 0x48, 0x01, 0xd0, //0x000008a5 addq %rdx, %rax - 0xe9, 0x47, 0xfc, 0xff, 0xff, //0x000008a8 jmp LBB1_42 - //0x000008ad LBB1_89 - 0x48, 0x8b, 0x4d, 0xd0, //0x000008ad movq $-48(%rbp), %rcx - 0x4a, 0x8d, 0x1c, 0x29, //0x000008b1 leaq (%rcx,%r13), %rbx - 0x48, 0x81, 0xc3, 0xf2, 0x00, 0x00, 0x00, //0x000008b5 addq $242, %rbx - 0x48, 0x83, 0xe6, 0xf8, //0x000008bc andq $-8, %rsi - 0x48, 0xf7, 0xde, //0x000008c0 negq %rsi - 0x31, 0xc9, //0x000008c3 xorl %ecx, %ecx - 0x66, 0x0f, 0x6f, 0x05, 0xa3, 0xf7, 0xff, 0xff, //0x000008c5 movdqa $-2141(%rip), %xmm0 /* LCPI1_0+0(%rip) */ - //0x000008cd LBB1_90 - 0xf3, 0x0f, 0x7f, 0x84, 0x0b, 0x10, 0xff, 0xff, 0xff, //0x000008cd movdqu %xmm0, $-240(%rbx,%rcx) - 0xf3, 0x0f, 0x7f, 0x84, 0x0b, 0x20, 0xff, 0xff, 0xff, //0x000008d6 movdqu %xmm0, $-224(%rbx,%rcx) - 0xf3, 0x0f, 0x7f, 0x84, 0x0b, 0x30, 0xff, 0xff, 0xff, //0x000008df movdqu %xmm0, $-208(%rbx,%rcx) - 0xf3, 0x0f, 0x7f, 0x84, 0x0b, 0x40, 0xff, 0xff, 0xff, //0x000008e8 movdqu %xmm0, $-192(%rbx,%rcx) - 0xf3, 0x0f, 0x7f, 0x84, 0x0b, 0x50, 0xff, 0xff, 0xff, //0x000008f1 movdqu %xmm0, $-176(%rbx,%rcx) - 0xf3, 0x0f, 0x7f, 0x84, 0x0b, 0x60, 0xff, 0xff, 0xff, //0x000008fa movdqu %xmm0, $-160(%rbx,%rcx) - 0xf3, 0x0f, 0x7f, 0x84, 0x0b, 0x70, 0xff, 0xff, 0xff, //0x00000903 movdqu %xmm0, $-144(%rbx,%rcx) - 0xf3, 0x0f, 0x7f, 0x44, 0x0b, 0x80, //0x0000090c movdqu %xmm0, $-128(%rbx,%rcx) - 0xf3, 0x0f, 0x7f, 0x44, 0x0b, 0x90, //0x00000912 movdqu %xmm0, $-112(%rbx,%rcx) - 0xf3, 0x0f, 0x7f, 0x44, 0x0b, 0xa0, //0x00000918 movdqu %xmm0, $-96(%rbx,%rcx) - 0xf3, 0x0f, 0x7f, 0x44, 0x0b, 0xb0, //0x0000091e movdqu %xmm0, $-80(%rbx,%rcx) - 0xf3, 0x0f, 0x7f, 0x44, 0x0b, 0xc0, //0x00000924 movdqu %xmm0, $-64(%rbx,%rcx) - 0xf3, 0x0f, 0x7f, 0x44, 0x0b, 0xd0, //0x0000092a movdqu %xmm0, $-48(%rbx,%rcx) - 0xf3, 0x0f, 0x7f, 0x44, 0x0b, 0xe0, //0x00000930 movdqu %xmm0, $-32(%rbx,%rcx) - 0xf3, 0x0f, 0x7f, 0x44, 0x0b, 0xf0, //0x00000936 movdqu %xmm0, $-16(%rbx,%rcx) - 0xf3, 0x0f, 0x7f, 0x04, 0x0b, //0x0000093c movdqu %xmm0, (%rbx,%rcx) - 0x48, 0x81, 0xc1, 0x00, 0x01, 0x00, 0x00, //0x00000941 addq $256, %rcx - 0x48, 0x83, 0xc6, 0x08, //0x00000948 addq $8, %rsi - 0x0f, 0x85, 0x7b, 0xff, 0xff, 0xff, //0x0000094c jne LBB1_90 - //0x00000952 LBB1_91 - 0x4d, 0x85, 0xc9, //0x00000952 testq %r9, %r9 - 0x0f, 0x84, 0x34, 0x00, 0x00, 0x00, //0x00000955 je LBB1_94 - 0x4c, 0x01, 0xe9, //0x0000095b addq %r13, %rcx - 0x48, 0x8b, 0x75, 0xd0, //0x0000095e movq $-48(%rbp), %rsi - 0x48, 0x01, 0xf1, //0x00000962 addq %rsi, %rcx - 0x48, 0x83, 0xc1, 0x12, //0x00000965 addq $18, %rcx - 0x49, 0xc1, 0xe1, 0x05, //0x00000969 shlq $5, %r9 - 0x31, 0xf6, //0x0000096d xorl %esi, %esi - 0x66, 0x0f, 0x6f, 0x05, 0xf9, 0xf6, 0xff, 0xff, //0x0000096f movdqa $-2311(%rip), %xmm0 /* LCPI1_0+0(%rip) */ - //0x00000977 LBB1_93 - 0xf3, 0x0f, 0x7f, 0x44, 0x31, 0xf0, //0x00000977 movdqu %xmm0, $-16(%rcx,%rsi) - 0xf3, 0x0f, 0x7f, 0x04, 0x31, //0x0000097d movdqu %xmm0, (%rcx,%rsi) - 0x48, 0x83, 0xc6, 0x20, //0x00000982 addq $32, %rsi - 0x49, 0x39, 0xf1, //0x00000986 cmpq %rsi, %r9 - 0x0f, 0x85, 0xe8, 0xff, 0xff, 0xff, //0x00000989 jne LBB1_93 - //0x0000098f LBB1_94 - 0x49, 0x01, 0xc7, //0x0000098f addq %rax, %r15 - 0x49, 0x39, 0xc0, //0x00000992 cmpq %rax, %r8 - 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00000995 je LBB1_97 - //0x0000099b LBB1_95 - 0x44, 0x01, 0xf0, //0x0000099b addl %r14d, %eax - 0xf7, 0xd8, //0x0000099e negl %eax - //0x000009a0 .p2align 4, 0x90 - //0x000009a0 LBB1_96 - 0x41, 0xc6, 0x07, 0x30, //0x000009a0 movb $48, (%r15) - 0x49, 0x83, 0xc7, 0x01, //0x000009a4 addq $1, %r15 - 0x83, 0xc0, 0xff, //0x000009a8 addl $-1, %eax - 0x0f, 0x85, 0xef, 0xff, 0xff, 0xff, //0x000009ab jne LBB1_96 - //0x000009b1 LBB1_97 - 0x4c, 0x89, 0xfe, //0x000009b1 movq %r15, %rsi - 0xe8, 0xf7, 0x83, 0x00, 0x00, //0x000009b4 callq _format_significand - 0x89, 0xc2, //0x000009b9 movl %eax, %edx - 0x44, 0x28, 0xfa, //0x000009bb subb %r15b, %dl - 0x44, 0x28, 0xf2, //0x000009be subb %r14b, %dl - 0x80, 0xc2, 0x01, //0x000009c1 addb $1, %dl - 0x41, 0x89, 0xc2, //0x000009c4 movl %eax, %r10d - 0x45, 0x29, 0xf2, //0x000009c7 subl %r14d, %r10d - 0x45, 0x29, 0xfa, //0x000009ca subl %r15d, %r10d - 0x41, 0x83, 0xc2, 0x01, //0x000009cd addl $1, %r10d - 0x47, 0x8d, 0x04, 0x3e, //0x000009d1 leal (%r14,%r15), %r8d - 0x41, 0x89, 0xc1, //0x000009d5 movl %eax, %r9d - 0x41, 0xf7, 0xd1, //0x000009d8 notl %r9d - 0x45, 0x01, 0xc1, //0x000009db addl %r8d, %r9d - 0x41, 0x29, 0xc0, //0x000009de subl %eax, %r8d - 0x41, 0x83, 0xc0, 0xfe, //0x000009e1 addl $-2, %r8d - 0x31, 0xc9, //0x000009e5 xorl %ecx, %ecx - 0x44, 0x89, 0xc7, //0x000009e7 movl %r8d, %edi - 0x48, 0x89, 0xc3, //0x000009ea movq %rax, %rbx - 0x90, 0x90, 0x90, //0x000009ed .p2align 4, 0x90 - //0x000009f0 LBB1_98 - 0x48, 0x83, 0xc3, 0xff, //0x000009f0 addq $-1, %rbx - 0x80, 0xc2, 0x03, //0x000009f4 addb $3, %dl - 0x83, 0xc7, 0x01, //0x000009f7 addl $1, %edi - 0x80, 0x7c, 0x08, 0xff, 0x30, //0x000009fa cmpb $48, $-1(%rax,%rcx) - 0x48, 0x8d, 0x49, 0xff, //0x000009ff leaq $-1(%rcx), %rcx - 0x0f, 0x84, 0xe7, 0xff, 0xff, 0xff, //0x00000a03 je LBB1_98 - 0x48, 0x8d, 0x1c, 0x08, //0x00000a09 leaq (%rax,%rcx), %rbx - 0x48, 0x83, 0xc3, 0x01, //0x00000a0d addq $1, %rbx - 0x45, 0x85, 0xf6, //0x00000a11 testl %r14d, %r14d - 0x0f, 0x8e, 0x37, 0x02, 0x00, 0x00, //0x00000a14 jle LBB1_104 - 0x89, 0xc6, //0x00000a1a movl %eax, %esi - 0x44, 0x29, 0xfe, //0x00000a1c subl %r15d, %esi - 0x01, 0xce, //0x00000a1f addl %ecx, %esi - 0x83, 0xc6, 0x01, //0x00000a21 addl $1, %esi - 0x41, 0x39, 0xf6, //0x00000a24 cmpl %esi, %r14d - 0x0f, 0x8d, 0x27, 0x00, 0x00, 0x00, //0x00000a27 jge LBB1_105 - 0x45, 0x89, 0xd1, //0x00000a2d movl %r10d, %r9d - 0x49, 0x8d, 0x34, 0x09, //0x00000a30 leaq (%r9,%rcx), %rsi - 0x85, 0xf6, //0x00000a34 testl %esi, %esi - 0x0f, 0x8e, 0xdd, 0x00, 0x00, 0x00, //0x00000a36 jle LBB1_116 - 0x41, 0x89, 0xf0, //0x00000a3c movl %esi, %r8d - 0x49, 0x8d, 0x58, 0xff, //0x00000a3f leaq $-1(%r8), %rbx - 0x48, 0x83, 0xfb, 0x03, //0x00000a43 cmpq $3, %rbx - 0x0f, 0x83, 0x66, 0x00, 0x00, 0x00, //0x00000a47 jae LBB1_110 - 0x31, 0xdb, //0x00000a4d xorl %ebx, %ebx - 0xe9, 0x88, 0x00, 0x00, 0x00, //0x00000a4f jmp LBB1_113 - //0x00000a54 LBB1_105 - 0x44, 0x89, 0xca, //0x00000a54 movl %r9d, %edx - 0x48, 0x29, 0xca, //0x00000a57 subq %rcx, %rdx - 0x85, 0xd2, //0x00000a5a testl %edx, %edx - 0x0f, 0x8e, 0xef, 0x01, 0x00, 0x00, //0x00000a5c jle LBB1_104 - 0x45, 0x89, 0xc3, //0x00000a62 movl %r8d, %r11d - 0x4d, 0x89, 0xd8, //0x00000a65 movq %r11, %r8 - 0x49, 0x29, 0xc8, //0x00000a68 subq %rcx, %r8 - 0x31, 0xf6, //0x00000a6b xorl %esi, %esi - 0x41, 0x83, 0xf8, 0x1f, //0x00000a6d cmpl $31, %r8d - 0x0f, 0x82, 0xf4, 0x01, 0x00, 0x00, //0x00000a71 jb LBB1_125 - 0x49, 0x29, 0xcb, //0x00000a77 subq %rcx, %r11 - 0x45, 0x89, 0xc0, //0x00000a7a movl %r8d, %r8d - 0x49, 0x83, 0xc0, 0x01, //0x00000a7d addq $1, %r8 - 0x4d, 0x21, 0xc4, //0x00000a81 andq %r8, %r12 - 0x41, 0x89, 0xf9, //0x00000a84 movl %edi, %r9d - 0x49, 0x83, 0xc1, 0x01, //0x00000a87 addq $1, %r9 - 0x49, 0x83, 0xe1, 0xe0, //0x00000a8b andq $-32, %r9 - 0x49, 0x8d, 0x74, 0x24, 0xe0, //0x00000a8f leaq $-32(%r12), %rsi - 0x49, 0x89, 0xf2, //0x00000a94 movq %rsi, %r10 - 0x49, 0xc1, 0xea, 0x05, //0x00000a97 shrq $5, %r10 - 0x49, 0x83, 0xc2, 0x01, //0x00000a9b addq $1, %r10 - 0x48, 0x81, 0xfe, 0xe0, 0x00, 0x00, 0x00, //0x00000a9f cmpq $224, %rsi - 0x0f, 0x83, 0x86, 0x00, 0x00, 0x00, //0x00000aa6 jae LBB1_117 - 0x31, 0xff, //0x00000aac xorl %edi, %edi - 0xe9, 0x34, 0x01, 0x00, 0x00, //0x00000aae jmp LBB1_119 - //0x00000ab3 LBB1_110 - 0x49, 0x01, 0xc9, //0x00000ab3 addq %rcx, %r9 - 0x41, 0x83, 0xe1, 0xfc, //0x00000ab6 andl $-4, %r9d - 0x49, 0xf7, 0xd9, //0x00000aba negq %r9 - 0x31, 0xdb, //0x00000abd xorl %ebx, %ebx - 0x90, //0x00000abf .p2align 4, 0x90 - //0x00000ac0 LBB1_111 - 0x48, 0x8d, 0x34, 0x18, //0x00000ac0 leaq (%rax,%rbx), %rsi - 0x8b, 0x7c, 0x31, 0xfd, //0x00000ac4 movl $-3(%rcx,%rsi), %edi - 0x89, 0x7c, 0x31, 0xfe, //0x00000ac8 movl %edi, $-2(%rcx,%rsi) - 0x48, 0x83, 0xc3, 0xfc, //0x00000acc addq $-4, %rbx - 0x49, 0x39, 0xd9, //0x00000ad0 cmpq %rbx, %r9 - 0x0f, 0x85, 0xe7, 0xff, 0xff, 0xff, //0x00000ad3 jne LBB1_111 - 0x48, 0xf7, 0xdb, //0x00000ad9 negq %rbx - //0x00000adc LBB1_113 - 0x41, 0xf6, 0xc0, 0x03, //0x00000adc testb $3, %r8b - 0x0f, 0x84, 0x33, 0x00, 0x00, 0x00, //0x00000ae0 je LBB1_116 - 0x44, 0x0f, 0xb6, 0xc2, //0x00000ae6 movzbl %dl, %r8d - 0x41, 0x83, 0xe0, 0x03, //0x00000aea andl $3, %r8d - 0x49, 0xf7, 0xd8, //0x00000aee negq %r8 - 0x48, 0x89, 0xc6, //0x00000af1 movq %rax, %rsi - 0x48, 0x29, 0xde, //0x00000af4 subq %rbx, %rsi - 0x31, 0xff, //0x00000af7 xorl %edi, %edi - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000af9 .p2align 4, 0x90 - //0x00000b00 LBB1_115 - 0x48, 0x8d, 0x1c, 0x3e, //0x00000b00 leaq (%rsi,%rdi), %rbx - 0x0f, 0xb6, 0x14, 0x19, //0x00000b04 movzbl (%rcx,%rbx), %edx - 0x88, 0x54, 0x19, 0x01, //0x00000b08 movb %dl, $1(%rcx,%rbx) - 0x48, 0x83, 0xc7, 0xff, //0x00000b0c addq $-1, %rdi - 0x49, 0x39, 0xf8, //0x00000b10 cmpq %rdi, %r8 - 0x0f, 0x85, 0xe7, 0xff, 0xff, 0xff, //0x00000b13 jne LBB1_115 - //0x00000b19 LBB1_116 - 0x49, 0x63, 0xd6, //0x00000b19 movslq %r14d, %rdx - 0x41, 0xc6, 0x04, 0x17, 0x2e, //0x00000b1c movb $46, (%r15,%rdx) - 0x48, 0x8d, 0x1c, 0x08, //0x00000b21 leaq (%rax,%rcx), %rbx - 0x48, 0x83, 0xc3, 0x02, //0x00000b25 addq $2, %rbx - 0x48, 0x8b, 0x7d, 0xd0, //0x00000b29 movq $-48(%rbp), %rdi - 0xe9, 0x23, 0x01, 0x00, 0x00, //0x00000b2d jmp LBB1_127 - //0x00000b32 LBB1_117 - 0x44, 0x89, 0xdb, //0x00000b32 movl %r11d, %ebx - 0x48, 0x83, 0xc3, 0x01, //0x00000b35 addq $1, %rbx - 0x48, 0x83, 0xe3, 0xe0, //0x00000b39 andq $-32, %rbx - 0x48, 0x83, 0xc3, 0xe0, //0x00000b3d addq $-32, %rbx - 0x48, 0xc1, 0xeb, 0x05, //0x00000b41 shrq $5, %rbx - 0x48, 0x83, 0xc3, 0x01, //0x00000b45 addq $1, %rbx - 0x48, 0x83, 0xe3, 0xf8, //0x00000b49 andq $-8, %rbx - 0x48, 0xf7, 0xdb, //0x00000b4d negq %rbx - 0x31, 0xff, //0x00000b50 xorl %edi, %edi - 0x66, 0x0f, 0x6f, 0x05, 0x16, 0xf5, 0xff, 0xff, //0x00000b52 movdqa $-2794(%rip), %xmm0 /* LCPI1_0+0(%rip) */ - //0x00000b5a LBB1_118 - 0x48, 0x8d, 0x34, 0x38, //0x00000b5a leaq (%rax,%rdi), %rsi - 0xf3, 0x0f, 0x7f, 0x44, 0x31, 0x01, //0x00000b5e movdqu %xmm0, $1(%rcx,%rsi) - 0xf3, 0x0f, 0x7f, 0x44, 0x31, 0x11, //0x00000b64 movdqu %xmm0, $17(%rcx,%rsi) - 0xf3, 0x0f, 0x7f, 0x44, 0x31, 0x21, //0x00000b6a movdqu %xmm0, $33(%rcx,%rsi) - 0xf3, 0x0f, 0x7f, 0x44, 0x31, 0x31, //0x00000b70 movdqu %xmm0, $49(%rcx,%rsi) - 0xf3, 0x0f, 0x7f, 0x44, 0x31, 0x41, //0x00000b76 movdqu %xmm0, $65(%rcx,%rsi) - 0xf3, 0x0f, 0x7f, 0x44, 0x31, 0x51, //0x00000b7c movdqu %xmm0, $81(%rcx,%rsi) - 0xf3, 0x0f, 0x7f, 0x44, 0x31, 0x61, //0x00000b82 movdqu %xmm0, $97(%rcx,%rsi) - 0xf3, 0x0f, 0x7f, 0x44, 0x31, 0x71, //0x00000b88 movdqu %xmm0, $113(%rcx,%rsi) - 0xf3, 0x0f, 0x7f, 0x84, 0x31, 0x81, 0x00, 0x00, 0x00, //0x00000b8e movdqu %xmm0, $129(%rcx,%rsi) - 0xf3, 0x0f, 0x7f, 0x84, 0x31, 0x91, 0x00, 0x00, 0x00, //0x00000b97 movdqu %xmm0, $145(%rcx,%rsi) - 0xf3, 0x0f, 0x7f, 0x84, 0x31, 0xa1, 0x00, 0x00, 0x00, //0x00000ba0 movdqu %xmm0, $161(%rcx,%rsi) - 0xf3, 0x0f, 0x7f, 0x84, 0x31, 0xb1, 0x00, 0x00, 0x00, //0x00000ba9 movdqu %xmm0, $177(%rcx,%rsi) - 0xf3, 0x0f, 0x7f, 0x84, 0x31, 0xc1, 0x00, 0x00, 0x00, //0x00000bb2 movdqu %xmm0, $193(%rcx,%rsi) - 0xf3, 0x0f, 0x7f, 0x84, 0x31, 0xd1, 0x00, 0x00, 0x00, //0x00000bbb movdqu %xmm0, $209(%rcx,%rsi) - 0xf3, 0x0f, 0x7f, 0x84, 0x31, 0xe1, 0x00, 0x00, 0x00, //0x00000bc4 movdqu %xmm0, $225(%rcx,%rsi) - 0xf3, 0x0f, 0x7f, 0x84, 0x31, 0xf1, 0x00, 0x00, 0x00, //0x00000bcd movdqu %xmm0, $241(%rcx,%rsi) - 0x48, 0x81, 0xc7, 0x00, 0x01, 0x00, 0x00, //0x00000bd6 addq $256, %rdi - 0x48, 0x83, 0xc3, 0x08, //0x00000bdd addq $8, %rbx - 0x0f, 0x85, 0x73, 0xff, 0xff, 0xff, //0x00000be1 jne LBB1_118 - //0x00000be7 LBB1_119 - 0x49, 0x01, 0xc1, //0x00000be7 addq %rax, %r9 - 0x41, 0xf6, 0xc2, 0x07, //0x00000bea testb $7, %r10b - 0x0f, 0x84, 0x4c, 0x00, 0x00, 0x00, //0x00000bee je LBB1_122 - 0x41, 0x80, 0xc3, 0x01, //0x00000bf4 addb $1, %r11b - 0x41, 0x80, 0xe3, 0xe0, //0x00000bf8 andb $-32, %r11b - 0x41, 0x80, 0xc3, 0xe0, //0x00000bfc addb $-32, %r11b - 0x41, 0xc0, 0xeb, 0x05, //0x00000c00 shrb $5, %r11b - 0x41, 0x80, 0xc3, 0x01, //0x00000c04 addb $1, %r11b - 0x41, 0x0f, 0xb6, 0xf3, //0x00000c08 movzbl %r11b, %esi - 0x83, 0xe6, 0x07, //0x00000c0c andl $7, %esi - 0x48, 0xc1, 0xe6, 0x05, //0x00000c0f shlq $5, %rsi - 0x48, 0x01, 0xf8, //0x00000c13 addq %rdi, %rax - 0x48, 0x83, 0xc0, 0x11, //0x00000c16 addq $17, %rax - 0x31, 0xff, //0x00000c1a xorl %edi, %edi - 0x66, 0x0f, 0x6f, 0x05, 0x4c, 0xf4, 0xff, 0xff, //0x00000c1c movdqa $-2996(%rip), %xmm0 /* LCPI1_0+0(%rip) */ - //0x00000c24 LBB1_121 - 0x48, 0x8d, 0x1c, 0x38, //0x00000c24 leaq (%rax,%rdi), %rbx - 0xf3, 0x0f, 0x7f, 0x44, 0x19, 0xf0, //0x00000c28 movdqu %xmm0, $-16(%rcx,%rbx) - 0xf3, 0x0f, 0x7f, 0x04, 0x19, //0x00000c2e movdqu %xmm0, (%rcx,%rbx) - 0x48, 0x83, 0xc7, 0x20, //0x00000c33 addq $32, %rdi - 0x48, 0x39, 0xfe, //0x00000c37 cmpq %rdi, %rsi - 0x0f, 0x85, 0xe4, 0xff, 0xff, 0xff, //0x00000c3a jne LBB1_121 - //0x00000c40 LBB1_122 - 0x4a, 0x8d, 0x1c, 0x09, //0x00000c40 leaq (%rcx,%r9), %rbx - 0x48, 0x83, 0xc3, 0x01, //0x00000c44 addq $1, %rbx - 0x4d, 0x39, 0xe0, //0x00000c48 cmpq %r12, %r8 - 0x0f, 0x85, 0x17, 0x00, 0x00, 0x00, //0x00000c4b jne LBB1_124 - //0x00000c51 LBB1_104 - 0x48, 0x8b, 0x7d, 0xd0, //0x00000c51 movq $-48(%rbp), %rdi - //0x00000c55 LBB1_127 - 0x29, 0xfb, //0x00000c55 subl %edi, %ebx - //0x00000c57 LBB1_128 - 0x89, 0xd8, //0x00000c57 movl %ebx, %eax - 0x48, 0x83, 0xc4, 0x08, //0x00000c59 addq $8, %rsp - 0x5b, //0x00000c5d popq %rbx - 0x41, 0x5c, //0x00000c5e popq %r12 - 0x41, 0x5d, //0x00000c60 popq %r13 - 0x41, 0x5e, //0x00000c62 popq %r14 - 0x41, 0x5f, //0x00000c64 popq %r15 - 0x5d, //0x00000c66 popq %rbp - 0xc3, //0x00000c67 retq - //0x00000c68 LBB1_124 - 0x44, 0x89, 0xe6, //0x00000c68 movl %r12d, %esi - //0x00000c6b LBB1_125 - 0x48, 0x8b, 0x7d, 0xd0, //0x00000c6b movq $-48(%rbp), %rdi - 0x90, //0x00000c6f .p2align 4, 0x90 - //0x00000c70 LBB1_126 - 0xc6, 0x03, 0x30, //0x00000c70 movb $48, (%rbx) - 0x48, 0x83, 0xc3, 0x01, //0x00000c73 addq $1, %rbx - 0x83, 0xc6, 0x01, //0x00000c77 addl $1, %esi - 0x39, 0xd6, //0x00000c7a cmpl %edx, %esi - 0x0f, 0x8c, 0xee, 0xff, 0xff, 0xff, //0x00000c7c jl LBB1_126 - 0xe9, 0xce, 0xff, 0xff, 0xff, //0x00000c82 jmp LBB1_127 - //0x00000c87 LBB1_129 - 0x48, 0x81, 0xff, 0x00, 0xca, 0x9a, 0x3b, //0x00000c87 cmpq $1000000000, %rdi - 0xba, 0x0a, 0x00, 0x00, 0x00, //0x00000c8e movl $10, %edx - 0xe9, 0xb1, 0xf6, 0xff, 0xff, //0x00000c93 jmp LBB1_21 - //0x00000c98 LBB1_130 - 0x31, 0xdb, //0x00000c98 xorl %ebx, %ebx - 0xe9, 0xb8, 0xff, 0xff, 0xff, //0x00000c9a jmp LBB1_128 - //0x00000c9f LBB1_131 - 0x48, 0x89, 0x75, 0xd0, //0x00000c9f movq %rsi, $-48(%rbp) - 0x41, 0xb9, 0xce, 0xfb, 0xff, 0xff, //0x00000ca3 movl $-1074, %r9d - 0x48, 0x89, 0xd7, //0x00000ca9 movq %rdx, %rdi - 0xe9, 0x6e, 0xf4, 0xff, 0xff, //0x00000cac jmp LBB1_8 - //0x00000cb1 LBB1_132 - 0x48, 0x81, 0xff, 0x00, 0xca, 0x9a, 0x3b, //0x00000cb1 cmpq $1000000000, %rdi - 0xba, 0x0a, 0x00, 0x00, 0x00, //0x00000cb8 movl $10, %edx - 0xe9, 0x0c, 0xf9, 0xff, 0xff, //0x00000cbd jmp LBB1_50 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000cc2 .p2align 4, 0x90 - //0x00000cd0 _format_integer - 0x55, //0x00000cd0 pushq %rbp - 0x48, 0x89, 0xe5, //0x00000cd1 movq %rsp, %rbp - 0x53, //0x00000cd4 pushq %rbx - 0x41, 0x89, 0xd0, //0x00000cd5 movl %edx, %r8d - 0x49, 0x01, 0xf0, //0x00000cd8 addq %rsi, %r8 - 0x48, 0x89, 0xf8, //0x00000cdb movq %rdi, %rax - 0x48, 0xc1, 0xe8, 0x20, //0x00000cde shrq $32, %rax - 0x0f, 0x85, 0x16, 0x00, 0x00, 0x00, //0x00000ce2 jne LBB2_2 - 0x4d, 0x89, 0xc3, //0x00000ce8 movq %r8, %r11 - 0x81, 0xff, 0x10, 0x27, 0x00, 0x00, //0x00000ceb cmpl $10000, %edi - 0x0f, 0x83, 0xc3, 0x00, 0x00, 0x00, //0x00000cf1 jae LBB2_5 - //0x00000cf7 LBB2_4 - 0x89, 0xfa, //0x00000cf7 movl %edi, %edx - 0xe9, 0x1a, 0x01, 0x00, 0x00, //0x00000cf9 jmp LBB2_7 - //0x00000cfe LBB2_2 - 0x48, 0xb9, 0xfd, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x00000cfe movabsq $-6067343680855748867, %rcx - 0x48, 0x89, 0xf8, //0x00000d08 movq %rdi, %rax - 0x48, 0xf7, 0xe1, //0x00000d0b mulq %rcx - 0x48, 0xc1, 0xea, 0x1a, //0x00000d0e shrq $26, %rdx - 0x69, 0xca, 0x00, 0x1f, 0x0a, 0xfa, //0x00000d12 imull $-100000000, %edx, %ecx - 0x01, 0xf9, //0x00000d18 addl %edi, %ecx - 0x41, 0xb9, 0x59, 0x17, 0xb7, 0xd1, //0x00000d1a movl $3518437209, %r9d - 0x48, 0x89, 0xc8, //0x00000d20 movq %rcx, %rax - 0x49, 0x0f, 0xaf, 0xc1, //0x00000d23 imulq %r9, %rax - 0x48, 0xc1, 0xe8, 0x2d, //0x00000d27 shrq $45, %rax - 0x69, 0xf8, 0x10, 0x27, 0x00, 0x00, //0x00000d2b imull $10000, %eax, %edi - 0x29, 0xf9, //0x00000d31 subl %edi, %ecx - 0x48, 0x89, 0xc7, //0x00000d33 movq %rax, %rdi - 0x49, 0x0f, 0xaf, 0xf9, //0x00000d36 imulq %r9, %rdi - 0x48, 0xc1, 0xef, 0x2d, //0x00000d3a shrq $45, %rdi - 0x69, 0xff, 0x10, 0x27, 0x00, 0x00, //0x00000d3e imull $10000, %edi, %edi - 0x29, 0xf8, //0x00000d44 subl %edi, %eax - 0x0f, 0xb7, 0xf9, //0x00000d46 movzwl %cx, %edi - 0xc1, 0xef, 0x02, //0x00000d49 shrl $2, %edi - 0x44, 0x69, 0xcf, 0x7b, 0x14, 0x00, 0x00, //0x00000d4c imull $5243, %edi, %r9d - 0x41, 0xc1, 0xe9, 0x11, //0x00000d53 shrl $17, %r9d - 0x41, 0x6b, 0xf9, 0x64, //0x00000d57 imull $100, %r9d, %edi - 0x29, 0xf9, //0x00000d5b subl %edi, %ecx - 0x44, 0x0f, 0xb7, 0xd1, //0x00000d5d movzwl %cx, %r10d - 0x0f, 0xb7, 0xf8, //0x00000d61 movzwl %ax, %edi - 0xc1, 0xef, 0x02, //0x00000d64 shrl $2, %edi - 0x69, 0xff, 0x7b, 0x14, 0x00, 0x00, //0x00000d67 imull $5243, %edi, %edi - 0xc1, 0xef, 0x11, //0x00000d6d shrl $17, %edi - 0x6b, 0xcf, 0x64, //0x00000d70 imull $100, %edi, %ecx - 0x29, 0xc8, //0x00000d73 subl %ecx, %eax - 0x44, 0x0f, 0xb7, 0xd8, //0x00000d75 movzwl %ax, %r11d - 0x48, 0x8d, 0x0d, 0x60, 0xb8, 0x00, 0x00, //0x00000d79 leaq $47200(%rip), %rcx /* _Digits+0(%rip) */ - 0x42, 0x0f, 0xb7, 0x04, 0x51, //0x00000d80 movzwl (%rcx,%r10,2), %eax - 0x66, 0x41, 0x89, 0x40, 0xfe, //0x00000d85 movw %ax, $-2(%r8) - 0x42, 0x0f, 0xb7, 0x04, 0x49, //0x00000d8a movzwl (%rcx,%r9,2), %eax - 0x66, 0x41, 0x89, 0x40, 0xfc, //0x00000d8f movw %ax, $-4(%r8) - 0x42, 0x0f, 0xb7, 0x04, 0x59, //0x00000d94 movzwl (%rcx,%r11,2), %eax - 0x66, 0x41, 0x89, 0x40, 0xfa, //0x00000d99 movw %ax, $-6(%r8) - 0x4d, 0x8d, 0x58, 0xf8, //0x00000d9e leaq $-8(%r8), %r11 - 0x0f, 0xb7, 0x0c, 0x79, //0x00000da2 movzwl (%rcx,%rdi,2), %ecx - 0x66, 0x41, 0x89, 0x48, 0xf8, //0x00000da6 movw %cx, $-8(%r8) - 0x48, 0x89, 0xd7, //0x00000dab movq %rdx, %rdi - 0x81, 0xff, 0x10, 0x27, 0x00, 0x00, //0x00000dae cmpl $10000, %edi - 0x0f, 0x82, 0x3d, 0xff, 0xff, 0xff, //0x00000db4 jb LBB2_4 - //0x00000dba LBB2_5 - 0x41, 0xb9, 0x59, 0x17, 0xb7, 0xd1, //0x00000dba movl $3518437209, %r9d - 0x4c, 0x8d, 0x15, 0x19, 0xb8, 0x00, 0x00, //0x00000dc0 leaq $47129(%rip), %r10 /* _Digits+0(%rip) */ - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000dc7 .p2align 4, 0x90 - //0x00000dd0 LBB2_6 - 0x89, 0xfa, //0x00000dd0 movl %edi, %edx - 0x49, 0x0f, 0xaf, 0xd1, //0x00000dd2 imulq %r9, %rdx - 0x48, 0xc1, 0xea, 0x2d, //0x00000dd6 shrq $45, %rdx - 0x69, 0xca, 0xf0, 0xd8, 0xff, 0xff, //0x00000dda imull $-10000, %edx, %ecx - 0x01, 0xf9, //0x00000de0 addl %edi, %ecx - 0x48, 0x69, 0xc1, 0x1f, 0x85, 0xeb, 0x51, //0x00000de2 imulq $1374389535, %rcx, %rax - 0x48, 0xc1, 0xe8, 0x25, //0x00000de9 shrq $37, %rax - 0x6b, 0xd8, 0x64, //0x00000ded imull $100, %eax, %ebx - 0x29, 0xd9, //0x00000df0 subl %ebx, %ecx - 0x41, 0x0f, 0xb7, 0x0c, 0x4a, //0x00000df2 movzwl (%r10,%rcx,2), %ecx - 0x66, 0x41, 0x89, 0x4b, 0xfe, //0x00000df7 movw %cx, $-2(%r11) - 0x41, 0x0f, 0xb7, 0x04, 0x42, //0x00000dfc movzwl (%r10,%rax,2), %eax - 0x66, 0x41, 0x89, 0x43, 0xfc, //0x00000e01 movw %ax, $-4(%r11) - 0x49, 0x83, 0xc3, 0xfc, //0x00000e06 addq $-4, %r11 - 0x81, 0xff, 0xff, 0xe0, 0xf5, 0x05, //0x00000e0a cmpl $99999999, %edi - 0x89, 0xd7, //0x00000e10 movl %edx, %edi - 0x0f, 0x87, 0xb8, 0xff, 0xff, 0xff, //0x00000e12 ja LBB2_6 - //0x00000e18 LBB2_7 - 0x83, 0xfa, 0x64, //0x00000e18 cmpl $100, %edx - 0x0f, 0x82, 0x2d, 0x00, 0x00, 0x00, //0x00000e1b jb LBB2_9 - 0x0f, 0xb7, 0xc2, //0x00000e21 movzwl %dx, %eax - 0xc1, 0xe8, 0x02, //0x00000e24 shrl $2, %eax - 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x00000e27 imull $5243, %eax, %eax - 0xc1, 0xe8, 0x11, //0x00000e2d shrl $17, %eax - 0x6b, 0xc8, 0x64, //0x00000e30 imull $100, %eax, %ecx - 0x29, 0xca, //0x00000e33 subl %ecx, %edx - 0x0f, 0xb7, 0xca, //0x00000e35 movzwl %dx, %ecx - 0x48, 0x8d, 0x15, 0xa1, 0xb7, 0x00, 0x00, //0x00000e38 leaq $47009(%rip), %rdx /* _Digits+0(%rip) */ - 0x0f, 0xb7, 0x0c, 0x4a, //0x00000e3f movzwl (%rdx,%rcx,2), %ecx - 0x66, 0x41, 0x89, 0x4b, 0xfe, //0x00000e43 movw %cx, $-2(%r11) - 0x49, 0x83, 0xc3, 0xfe, //0x00000e48 addq $-2, %r11 - 0x89, 0xc2, //0x00000e4c movl %eax, %edx - //0x00000e4e LBB2_9 - 0x83, 0xfa, 0x0a, //0x00000e4e cmpl $10, %edx - 0x0f, 0x82, 0x18, 0x00, 0x00, 0x00, //0x00000e51 jb LBB2_11 - 0x89, 0xd0, //0x00000e57 movl %edx, %eax - 0x48, 0x8d, 0x0d, 0x80, 0xb7, 0x00, 0x00, //0x00000e59 leaq $46976(%rip), %rcx /* _Digits+0(%rip) */ - 0x0f, 0xb7, 0x04, 0x41, //0x00000e60 movzwl (%rcx,%rax,2), %eax - 0x66, 0x41, 0x89, 0x43, 0xfe, //0x00000e64 movw %ax, $-2(%r11) - 0x4c, 0x89, 0xc0, //0x00000e69 movq %r8, %rax - 0x5b, //0x00000e6c popq %rbx - 0x5d, //0x00000e6d popq %rbp - 0xc3, //0x00000e6e retq - //0x00000e6f LBB2_11 - 0x80, 0xc2, 0x30, //0x00000e6f addb $48, %dl - 0x88, 0x16, //0x00000e72 movb %dl, (%rsi) - 0x4c, 0x89, 0xc0, //0x00000e74 movq %r8, %rax - 0x5b, //0x00000e77 popq %rbx - 0x5d, //0x00000e78 popq %rbp - 0xc3, //0x00000e79 retq - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000e7a .p2align 4, 0x90 - //0x00000e80 _i64toa - 0x55, //0x00000e80 pushq %rbp - 0x48, 0x89, 0xe5, //0x00000e81 movq %rsp, %rbp - 0x48, 0x85, 0xf6, //0x00000e84 testq %rsi, %rsi - 0x0f, 0x88, 0xb0, 0x00, 0x00, 0x00, //0x00000e87 js LBB3_12 - 0x48, 0x81, 0xfe, 0x0f, 0x27, 0x00, 0x00, //0x00000e8d cmpq $9999, %rsi - 0x0f, 0x87, 0xb7, 0x00, 0x00, 0x00, //0x00000e94 ja LBB3_9 - 0x0f, 0xb7, 0xc6, //0x00000e9a movzwl %si, %eax - 0xc1, 0xe8, 0x02, //0x00000e9d shrl $2, %eax - 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x00000ea0 imull $5243, %eax, %eax - 0xc1, 0xe8, 0x11, //0x00000ea6 shrl $17, %eax - 0x48, 0x8d, 0x14, 0x00, //0x00000ea9 leaq (%rax,%rax), %rdx - 0x6b, 0xc0, 0x64, //0x00000ead imull $100, %eax, %eax - 0x89, 0xf1, //0x00000eb0 movl %esi, %ecx - 0x29, 0xc1, //0x00000eb2 subl %eax, %ecx - 0x0f, 0xb7, 0xc9, //0x00000eb4 movzwl %cx, %ecx - 0x48, 0x01, 0xc9, //0x00000eb7 addq %rcx, %rcx - 0x81, 0xfe, 0xe8, 0x03, 0x00, 0x00, //0x00000eba cmpl $1000, %esi - 0x0f, 0x82, 0x16, 0x00, 0x00, 0x00, //0x00000ec0 jb LBB3_4 - 0x48, 0x8d, 0x05, 0x13, 0xb7, 0x00, 0x00, //0x00000ec6 leaq $46867(%rip), %rax /* _Digits+0(%rip) */ - 0x8a, 0x04, 0x02, //0x00000ecd movb (%rdx,%rax), %al - 0x88, 0x07, //0x00000ed0 movb %al, (%rdi) - 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00000ed2 movl $1, %eax - 0xe9, 0x0b, 0x00, 0x00, 0x00, //0x00000ed7 jmp LBB3_5 - //0x00000edc LBB3_4 - 0x31, 0xc0, //0x00000edc xorl %eax, %eax - 0x83, 0xfe, 0x64, //0x00000ede cmpl $100, %esi - 0x0f, 0x82, 0x46, 0x00, 0x00, 0x00, //0x00000ee1 jb LBB3_6 - //0x00000ee7 LBB3_5 - 0x0f, 0xb7, 0xd2, //0x00000ee7 movzwl %dx, %edx - 0x48, 0x83, 0xca, 0x01, //0x00000eea orq $1, %rdx - 0x48, 0x8d, 0x35, 0xeb, 0xb6, 0x00, 0x00, //0x00000eee leaq $46827(%rip), %rsi /* _Digits+0(%rip) */ - 0x8a, 0x14, 0x32, //0x00000ef5 movb (%rdx,%rsi), %dl - 0x89, 0xc6, //0x00000ef8 movl %eax, %esi - 0x83, 0xc0, 0x01, //0x00000efa addl $1, %eax - 0x88, 0x14, 0x37, //0x00000efd movb %dl, (%rdi,%rsi) - //0x00000f00 LBB3_7 - 0x48, 0x8d, 0x15, 0xd9, 0xb6, 0x00, 0x00, //0x00000f00 leaq $46809(%rip), %rdx /* _Digits+0(%rip) */ - 0x8a, 0x14, 0x11, //0x00000f07 movb (%rcx,%rdx), %dl - 0x89, 0xc6, //0x00000f0a movl %eax, %esi - 0x83, 0xc0, 0x01, //0x00000f0c addl $1, %eax - 0x88, 0x14, 0x37, //0x00000f0f movb %dl, (%rdi,%rsi) - //0x00000f12 LBB3_8 - 0x0f, 0xb7, 0xc9, //0x00000f12 movzwl %cx, %ecx - 0x48, 0x83, 0xc9, 0x01, //0x00000f15 orq $1, %rcx - 0x48, 0x8d, 0x15, 0xc0, 0xb6, 0x00, 0x00, //0x00000f19 leaq $46784(%rip), %rdx /* _Digits+0(%rip) */ - 0x8a, 0x0c, 0x11, //0x00000f20 movb (%rcx,%rdx), %cl - 0x89, 0xc2, //0x00000f23 movl %eax, %edx - 0x83, 0xc0, 0x01, //0x00000f25 addl $1, %eax - 0x88, 0x0c, 0x17, //0x00000f28 movb %cl, (%rdi,%rdx) - 0x5d, //0x00000f2b popq %rbp - 0xc3, //0x00000f2c retq - //0x00000f2d LBB3_6 - 0x31, 0xc0, //0x00000f2d xorl %eax, %eax - 0x83, 0xfe, 0x0a, //0x00000f2f cmpl $10, %esi - 0x0f, 0x83, 0xc8, 0xff, 0xff, 0xff, //0x00000f32 jae LBB3_7 - 0xe9, 0xd5, 0xff, 0xff, 0xff, //0x00000f38 jmp LBB3_8 - //0x00000f3d LBB3_12 - 0xc6, 0x07, 0x2d, //0x00000f3d movb $45, (%rdi) - 0x48, 0x83, 0xc7, 0x01, //0x00000f40 addq $1, %rdi - 0x48, 0xf7, 0xde, //0x00000f44 negq %rsi - 0xe8, 0x44, 0x00, 0x00, 0x00, //0x00000f47 callq _u64toa - 0x83, 0xc0, 0x01, //0x00000f4c addl $1, %eax - 0x5d, //0x00000f4f popq %rbp - 0xc3, //0x00000f50 retq - //0x00000f51 LBB3_9 - 0x48, 0x81, 0xfe, 0xff, 0xe0, 0xf5, 0x05, //0x00000f51 cmpq $99999999, %rsi - 0x0f, 0x87, 0x06, 0x00, 0x00, 0x00, //0x00000f58 ja LBB3_10 - 0x5d, //0x00000f5e popq %rbp - 0xe9, 0x1c, 0x01, 0x00, 0x00, //0x00000f5f jmp _u32toa_medium - //0x00000f64 LBB3_10 - 0x48, 0xb8, 0xff, 0xff, 0xc0, 0x6f, 0xf2, 0x86, 0x23, 0x00, //0x00000f64 movabsq $9999999999999999, %rax - 0x48, 0x39, 0xc6, //0x00000f6e cmpq %rax, %rsi - 0x0f, 0x87, 0x06, 0x00, 0x00, 0x00, //0x00000f71 ja LBB3_11 - 0x5d, //0x00000f77 popq %rbp - 0xe9, 0x73, 0x02, 0x00, 0x00, //0x00000f78 jmp _u64toa_large_sse2 - //0x00000f7d LBB3_11 - 0x5d, //0x00000f7d popq %rbp - 0xe9, 0xdd, 0x03, 0x00, 0x00, //0x00000f7e jmp _u64toa_xlarge_sse2 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000f83 .p2align 4, 0x90 - //0x00000f90 _u64toa - 0x48, 0x81, 0xfe, 0x0f, 0x27, 0x00, 0x00, //0x00000f90 cmpq $9999, %rsi - 0x0f, 0x87, 0xa7, 0x00, 0x00, 0x00, //0x00000f97 ja LBB4_8 - 0x55, //0x00000f9d pushq %rbp - 0x48, 0x89, 0xe5, //0x00000f9e movq %rsp, %rbp - 0x0f, 0xb7, 0xc6, //0x00000fa1 movzwl %si, %eax - 0xc1, 0xe8, 0x02, //0x00000fa4 shrl $2, %eax - 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x00000fa7 imull $5243, %eax, %eax - 0xc1, 0xe8, 0x11, //0x00000fad shrl $17, %eax - 0x48, 0x8d, 0x14, 0x00, //0x00000fb0 leaq (%rax,%rax), %rdx - 0x6b, 0xc0, 0x64, //0x00000fb4 imull $100, %eax, %eax - 0x89, 0xf1, //0x00000fb7 movl %esi, %ecx - 0x29, 0xc1, //0x00000fb9 subl %eax, %ecx - 0x0f, 0xb7, 0xc9, //0x00000fbb movzwl %cx, %ecx - 0x48, 0x01, 0xc9, //0x00000fbe addq %rcx, %rcx - 0x81, 0xfe, 0xe8, 0x03, 0x00, 0x00, //0x00000fc1 cmpl $1000, %esi - 0x0f, 0x82, 0x16, 0x00, 0x00, 0x00, //0x00000fc7 jb LBB4_3 - 0x48, 0x8d, 0x05, 0x0c, 0xb6, 0x00, 0x00, //0x00000fcd leaq $46604(%rip), %rax /* _Digits+0(%rip) */ - 0x8a, 0x04, 0x02, //0x00000fd4 movb (%rdx,%rax), %al - 0x88, 0x07, //0x00000fd7 movb %al, (%rdi) - 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00000fd9 movl $1, %eax - 0xe9, 0x0b, 0x00, 0x00, 0x00, //0x00000fde jmp LBB4_4 - //0x00000fe3 LBB4_3 - 0x31, 0xc0, //0x00000fe3 xorl %eax, %eax - 0x83, 0xfe, 0x64, //0x00000fe5 cmpl $100, %esi - 0x0f, 0x82, 0x46, 0x00, 0x00, 0x00, //0x00000fe8 jb LBB4_5 - //0x00000fee LBB4_4 - 0x0f, 0xb7, 0xd2, //0x00000fee movzwl %dx, %edx - 0x48, 0x83, 0xca, 0x01, //0x00000ff1 orq $1, %rdx - 0x48, 0x8d, 0x35, 0xe4, 0xb5, 0x00, 0x00, //0x00000ff5 leaq $46564(%rip), %rsi /* _Digits+0(%rip) */ - 0x8a, 0x14, 0x32, //0x00000ffc movb (%rdx,%rsi), %dl - 0x89, 0xc6, //0x00000fff movl %eax, %esi - 0x83, 0xc0, 0x01, //0x00001001 addl $1, %eax - 0x88, 0x14, 0x37, //0x00001004 movb %dl, (%rdi,%rsi) - //0x00001007 LBB4_6 - 0x48, 0x8d, 0x15, 0xd2, 0xb5, 0x00, 0x00, //0x00001007 leaq $46546(%rip), %rdx /* _Digits+0(%rip) */ - 0x8a, 0x14, 0x11, //0x0000100e movb (%rcx,%rdx), %dl - 0x89, 0xc6, //0x00001011 movl %eax, %esi - 0x83, 0xc0, 0x01, //0x00001013 addl $1, %eax - 0x88, 0x14, 0x37, //0x00001016 movb %dl, (%rdi,%rsi) - //0x00001019 LBB4_7 - 0x0f, 0xb7, 0xc9, //0x00001019 movzwl %cx, %ecx - 0x48, 0x83, 0xc9, 0x01, //0x0000101c orq $1, %rcx - 0x48, 0x8d, 0x15, 0xb9, 0xb5, 0x00, 0x00, //0x00001020 leaq $46521(%rip), %rdx /* _Digits+0(%rip) */ - 0x8a, 0x0c, 0x11, //0x00001027 movb (%rcx,%rdx), %cl - 0x89, 0xc2, //0x0000102a movl %eax, %edx - 0x83, 0xc0, 0x01, //0x0000102c addl $1, %eax - 0x88, 0x0c, 0x17, //0x0000102f movb %cl, (%rdi,%rdx) - 0x5d, //0x00001032 popq %rbp - 0xc3, //0x00001033 retq - //0x00001034 LBB4_5 - 0x31, 0xc0, //0x00001034 xorl %eax, %eax - 0x83, 0xfe, 0x0a, //0x00001036 cmpl $10, %esi - 0x0f, 0x83, 0xc8, 0xff, 0xff, 0xff, //0x00001039 jae LBB4_6 - 0xe9, 0xd5, 0xff, 0xff, 0xff, //0x0000103f jmp LBB4_7 - //0x00001044 LBB4_8 - 0x48, 0x81, 0xfe, 0xff, 0xe0, 0xf5, 0x05, //0x00001044 cmpq $99999999, %rsi - 0x0f, 0x87, 0x05, 0x00, 0x00, 0x00, //0x0000104b ja LBB4_9 - 0xe9, 0x2a, 0x00, 0x00, 0x00, //0x00001051 jmp _u32toa_medium - //0x00001056 LBB4_9 - 0x48, 0xb8, 0xff, 0xff, 0xc0, 0x6f, 0xf2, 0x86, 0x23, 0x00, //0x00001056 movabsq $9999999999999999, %rax - 0x48, 0x39, 0xc6, //0x00001060 cmpq %rax, %rsi - 0x0f, 0x87, 0x05, 0x00, 0x00, 0x00, //0x00001063 ja LBB4_10 - 0xe9, 0x82, 0x01, 0x00, 0x00, //0x00001069 jmp _u64toa_large_sse2 - //0x0000106e LBB4_10 - 0xe9, 0xed, 0x02, 0x00, 0x00, //0x0000106e jmp _u64toa_xlarge_sse2 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001073 .p2align 4, 0x90 - //0x00001080 _u32toa_medium - 0x55, //0x00001080 pushq %rbp - 0x48, 0x89, 0xe5, //0x00001081 movq %rsp, %rbp - 0x89, 0xf2, //0x00001084 movl %esi, %edx - 0xb9, 0x59, 0x17, 0xb7, 0xd1, //0x00001086 movl $3518437209, %ecx - 0x48, 0x0f, 0xaf, 0xca, //0x0000108b imulq %rdx, %rcx - 0x48, 0xc1, 0xe9, 0x2d, //0x0000108f shrq $45, %rcx - 0x44, 0x69, 0xc1, 0x10, 0x27, 0x00, 0x00, //0x00001093 imull $10000, %ecx, %r8d - 0x89, 0xf0, //0x0000109a movl %esi, %eax - 0x44, 0x29, 0xc0, //0x0000109c subl %r8d, %eax - 0x4c, 0x69, 0xd2, 0x83, 0xde, 0x1b, 0x43, //0x0000109f imulq $1125899907, %rdx, %r10 - 0x49, 0xc1, 0xea, 0x31, //0x000010a6 shrq $49, %r10 - 0x41, 0x83, 0xe2, 0xfe, //0x000010aa andl $-2, %r10d - 0x48, 0x69, 0xd1, 0x1f, 0x85, 0xeb, 0x51, //0x000010ae imulq $1374389535, %rcx, %rdx - 0x48, 0xc1, 0xea, 0x25, //0x000010b5 shrq $37, %rdx - 0x6b, 0xd2, 0x64, //0x000010b9 imull $100, %edx, %edx - 0x29, 0xd1, //0x000010bc subl %edx, %ecx - 0x48, 0x01, 0xc9, //0x000010be addq %rcx, %rcx - 0x0f, 0xb7, 0xd0, //0x000010c1 movzwl %ax, %edx - 0xc1, 0xea, 0x02, //0x000010c4 shrl $2, %edx - 0x69, 0xd2, 0x7b, 0x14, 0x00, 0x00, //0x000010c7 imull $5243, %edx, %edx - 0xc1, 0xea, 0x11, //0x000010cd shrl $17, %edx - 0x4c, 0x8d, 0x04, 0x12, //0x000010d0 leaq (%rdx,%rdx), %r8 - 0x6b, 0xd2, 0x64, //0x000010d4 imull $100, %edx, %edx - 0x29, 0xd0, //0x000010d7 subl %edx, %eax - 0x44, 0x0f, 0xb7, 0xc8, //0x000010d9 movzwl %ax, %r9d - 0x4d, 0x01, 0xc9, //0x000010dd addq %r9, %r9 - 0x81, 0xfe, 0x80, 0x96, 0x98, 0x00, //0x000010e0 cmpl $10000000, %esi - 0x0f, 0x82, 0x17, 0x00, 0x00, 0x00, //0x000010e6 jb LBB5_2 - 0x48, 0x8d, 0x05, 0xed, 0xb4, 0x00, 0x00, //0x000010ec leaq $46317(%rip), %rax /* _Digits+0(%rip) */ - 0x41, 0x8a, 0x04, 0x02, //0x000010f3 movb (%r10,%rax), %al - 0x88, 0x07, //0x000010f7 movb %al, (%rdi) - 0xb8, 0x01, 0x00, 0x00, 0x00, //0x000010f9 movl $1, %eax - 0xe9, 0x0e, 0x00, 0x00, 0x00, //0x000010fe jmp LBB5_3 - //0x00001103 LBB5_2 - 0x31, 0xc0, //0x00001103 xorl %eax, %eax - 0x81, 0xfe, 0x40, 0x42, 0x0f, 0x00, //0x00001105 cmpl $1000000, %esi - 0x0f, 0x82, 0x73, 0x00, 0x00, 0x00, //0x0000110b jb LBB5_4 - //0x00001111 LBB5_3 - 0x44, 0x89, 0xd2, //0x00001111 movl %r10d, %edx - 0x48, 0x83, 0xca, 0x01, //0x00001114 orq $1, %rdx - 0x48, 0x8d, 0x35, 0xc1, 0xb4, 0x00, 0x00, //0x00001118 leaq $46273(%rip), %rsi /* _Digits+0(%rip) */ - 0x8a, 0x14, 0x32, //0x0000111f movb (%rdx,%rsi), %dl - 0x89, 0xc6, //0x00001122 movl %eax, %esi - 0x83, 0xc0, 0x01, //0x00001124 addl $1, %eax - 0x88, 0x14, 0x37, //0x00001127 movb %dl, (%rdi,%rsi) - //0x0000112a LBB5_5 - 0x48, 0x8d, 0x15, 0xaf, 0xb4, 0x00, 0x00, //0x0000112a leaq $46255(%rip), %rdx /* _Digits+0(%rip) */ - 0x8a, 0x14, 0x11, //0x00001131 movb (%rcx,%rdx), %dl - 0x89, 0xc6, //0x00001134 movl %eax, %esi - 0x83, 0xc0, 0x01, //0x00001136 addl $1, %eax - 0x88, 0x14, 0x37, //0x00001139 movb %dl, (%rdi,%rsi) - //0x0000113c LBB5_6 - 0x89, 0xc9, //0x0000113c movl %ecx, %ecx - 0x48, 0x83, 0xc9, 0x01, //0x0000113e orq $1, %rcx - 0x48, 0x8d, 0x15, 0x97, 0xb4, 0x00, 0x00, //0x00001142 leaq $46231(%rip), %rdx /* _Digits+0(%rip) */ - 0x8a, 0x0c, 0x11, //0x00001149 movb (%rcx,%rdx), %cl - 0x89, 0xc6, //0x0000114c movl %eax, %esi - 0x88, 0x0c, 0x37, //0x0000114e movb %cl, (%rdi,%rsi) - 0x41, 0x8a, 0x0c, 0x10, //0x00001151 movb (%r8,%rdx), %cl - 0x88, 0x4c, 0x37, 0x01, //0x00001155 movb %cl, $1(%rdi,%rsi) - 0x41, 0x0f, 0xb7, 0xc8, //0x00001159 movzwl %r8w, %ecx - 0x48, 0x83, 0xc9, 0x01, //0x0000115d orq $1, %rcx - 0x8a, 0x0c, 0x11, //0x00001161 movb (%rcx,%rdx), %cl - 0x88, 0x4c, 0x37, 0x02, //0x00001164 movb %cl, $2(%rdi,%rsi) - 0x41, 0x8a, 0x0c, 0x11, //0x00001168 movb (%r9,%rdx), %cl - 0x88, 0x4c, 0x37, 0x03, //0x0000116c movb %cl, $3(%rdi,%rsi) - 0x41, 0x0f, 0xb7, 0xc9, //0x00001170 movzwl %r9w, %ecx - 0x48, 0x83, 0xc9, 0x01, //0x00001174 orq $1, %rcx - 0x8a, 0x0c, 0x11, //0x00001178 movb (%rcx,%rdx), %cl - 0x83, 0xc0, 0x05, //0x0000117b addl $5, %eax - 0x88, 0x4c, 0x37, 0x04, //0x0000117e movb %cl, $4(%rdi,%rsi) - 0x5d, //0x00001182 popq %rbp - 0xc3, //0x00001183 retq - //0x00001184 LBB5_4 - 0x31, 0xc0, //0x00001184 xorl %eax, %eax - 0x81, 0xfe, 0xa0, 0x86, 0x01, 0x00, //0x00001186 cmpl $100000, %esi - 0x0f, 0x83, 0x98, 0xff, 0xff, 0xff, //0x0000118c jae LBB5_5 - 0xe9, 0xa5, 0xff, 0xff, 0xff, //0x00001192 jmp LBB5_6 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001197 .p2align 4, 0x00 - //0x000011a0 LCPI6_0 - 0x59, 0x17, 0xb7, 0xd1, 0x00, 0x00, 0x00, 0x00, //0x000011a0 .quad 3518437209 - 0x59, 0x17, 0xb7, 0xd1, 0x00, 0x00, 0x00, 0x00, //0x000011a8 .quad 3518437209 - //0x000011b0 LCPI6_1 - 0xc5, 0x20, //0x000011b0 .word 8389 - 0x7b, 0x14, //0x000011b2 .word 5243 - 0x34, 0x33, //0x000011b4 .word 13108 - 0x00, 0x80, //0x000011b6 .word 32768 - 0xc5, 0x20, //0x000011b8 .word 8389 - 0x7b, 0x14, //0x000011ba .word 5243 - 0x34, 0x33, //0x000011bc .word 13108 - 0x00, 0x80, //0x000011be .word 32768 - //0x000011c0 LCPI6_2 - 0x80, 0x00, //0x000011c0 .word 128 - 0x00, 0x08, //0x000011c2 .word 2048 - 0x00, 0x20, //0x000011c4 .word 8192 - 0x00, 0x80, //0x000011c6 .word 32768 - 0x80, 0x00, //0x000011c8 .word 128 - 0x00, 0x08, //0x000011ca .word 2048 - 0x00, 0x20, //0x000011cc .word 8192 - 0x00, 0x80, //0x000011ce .word 32768 - //0x000011d0 LCPI6_3 - 0x0a, 0x00, //0x000011d0 .word 10 - 0x0a, 0x00, //0x000011d2 .word 10 - 0x0a, 0x00, //0x000011d4 .word 10 - 0x0a, 0x00, //0x000011d6 .word 10 - 0x0a, 0x00, //0x000011d8 .word 10 - 0x0a, 0x00, //0x000011da .word 10 - 0x0a, 0x00, //0x000011dc .word 10 - 0x0a, 0x00, //0x000011de .word 10 - //0x000011e0 LCPI6_4 - 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, //0x000011e0 QUAD $0x3030303030303030; QUAD $0x3030303030303030 // .space 16, '0000000000000000' - //0x000011f0 .p2align 4, 0x90 - //0x000011f0 _u64toa_large_sse2 - 0x55, //0x000011f0 pushq %rbp - 0x48, 0x89, 0xe5, //0x000011f1 movq %rsp, %rbp - 0x48, 0xb9, 0xfd, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x000011f4 movabsq $-6067343680855748867, %rcx - 0x48, 0x89, 0xf0, //0x000011fe movq %rsi, %rax - 0x48, 0xf7, 0xe1, //0x00001201 mulq %rcx - 0x48, 0xc1, 0xea, 0x1a, //0x00001204 shrq $26, %rdx - 0x69, 0xc2, 0x00, 0xe1, 0xf5, 0x05, //0x00001208 imull $100000000, %edx, %eax - 0x29, 0xc6, //0x0000120e subl %eax, %esi - 0x66, 0x0f, 0x6e, 0xc2, //0x00001210 movd %edx, %xmm0 - 0x66, 0x0f, 0x6f, 0x0d, 0x84, 0xff, 0xff, 0xff, //0x00001214 movdqa $-124(%rip), %xmm1 /* LCPI6_0+0(%rip) */ - 0x66, 0x0f, 0x6f, 0xd0, //0x0000121c movdqa %xmm0, %xmm2 - 0x66, 0x0f, 0xf4, 0xd1, //0x00001220 pmuludq %xmm1, %xmm2 - 0x66, 0x0f, 0x73, 0xd2, 0x2d, //0x00001224 psrlq $45, %xmm2 - 0xb8, 0x10, 0x27, 0x00, 0x00, //0x00001229 movl $10000, %eax - 0x66, 0x48, 0x0f, 0x6e, 0xd8, //0x0000122e movq %rax, %xmm3 - 0x66, 0x0f, 0x6f, 0xe2, //0x00001233 movdqa %xmm2, %xmm4 - 0x66, 0x0f, 0xf4, 0xe3, //0x00001237 pmuludq %xmm3, %xmm4 - 0x66, 0x0f, 0xfa, 0xc4, //0x0000123b psubd %xmm4, %xmm0 - 0x66, 0x0f, 0x61, 0xd0, //0x0000123f punpcklwd %xmm0, %xmm2 - 0x66, 0x0f, 0x73, 0xf2, 0x02, //0x00001243 psllq $2, %xmm2 - 0xf2, 0x0f, 0x70, 0xc2, 0x50, //0x00001248 pshuflw $80, %xmm2, %xmm0 - 0x66, 0x0f, 0x70, 0xc0, 0x50, //0x0000124d pshufd $80, %xmm0, %xmm0 - 0x66, 0x0f, 0x6f, 0x15, 0x56, 0xff, 0xff, 0xff, //0x00001252 movdqa $-170(%rip), %xmm2 /* LCPI6_1+0(%rip) */ - 0x66, 0x0f, 0xe4, 0xc2, //0x0000125a pmulhuw %xmm2, %xmm0 - 0x66, 0x0f, 0x6f, 0x25, 0x5a, 0xff, 0xff, 0xff, //0x0000125e movdqa $-166(%rip), %xmm4 /* LCPI6_2+0(%rip) */ - 0x66, 0x0f, 0xe4, 0xc4, //0x00001266 pmulhuw %xmm4, %xmm0 - 0x66, 0x0f, 0x6f, 0x2d, 0x5e, 0xff, 0xff, 0xff, //0x0000126a movdqa $-162(%rip), %xmm5 /* LCPI6_3+0(%rip) */ - 0x66, 0x0f, 0x6f, 0xf0, //0x00001272 movdqa %xmm0, %xmm6 - 0x66, 0x0f, 0xd5, 0xf5, //0x00001276 pmullw %xmm5, %xmm6 - 0x66, 0x0f, 0x73, 0xf6, 0x10, //0x0000127a psllq $16, %xmm6 - 0x66, 0x0f, 0xf9, 0xc6, //0x0000127f psubw %xmm6, %xmm0 - 0x66, 0x0f, 0x6e, 0xf6, //0x00001283 movd %esi, %xmm6 - 0x66, 0x0f, 0xf4, 0xce, //0x00001287 pmuludq %xmm6, %xmm1 - 0x66, 0x0f, 0x73, 0xd1, 0x2d, //0x0000128b psrlq $45, %xmm1 - 0x66, 0x0f, 0xf4, 0xd9, //0x00001290 pmuludq %xmm1, %xmm3 - 0x66, 0x0f, 0xfa, 0xf3, //0x00001294 psubd %xmm3, %xmm6 - 0x66, 0x0f, 0x61, 0xce, //0x00001298 punpcklwd %xmm6, %xmm1 - 0x66, 0x0f, 0x73, 0xf1, 0x02, //0x0000129c psllq $2, %xmm1 - 0xf2, 0x0f, 0x70, 0xc9, 0x50, //0x000012a1 pshuflw $80, %xmm1, %xmm1 - 0x66, 0x0f, 0x70, 0xc9, 0x50, //0x000012a6 pshufd $80, %xmm1, %xmm1 - 0x66, 0x0f, 0xe4, 0xca, //0x000012ab pmulhuw %xmm2, %xmm1 - 0x66, 0x0f, 0xe4, 0xcc, //0x000012af pmulhuw %xmm4, %xmm1 - 0x66, 0x0f, 0xd5, 0xe9, //0x000012b3 pmullw %xmm1, %xmm5 - 0x66, 0x0f, 0x73, 0xf5, 0x10, //0x000012b7 psllq $16, %xmm5 - 0x66, 0x0f, 0xf9, 0xcd, //0x000012bc psubw %xmm5, %xmm1 - 0x66, 0x0f, 0x67, 0xc1, //0x000012c0 packuswb %xmm1, %xmm0 - 0x66, 0x0f, 0x6f, 0x0d, 0x14, 0xff, 0xff, 0xff, //0x000012c4 movdqa $-236(%rip), %xmm1 /* LCPI6_4+0(%rip) */ - 0x66, 0x0f, 0xfc, 0xc8, //0x000012cc paddb %xmm0, %xmm1 - 0x66, 0x0f, 0xef, 0xd2, //0x000012d0 pxor %xmm2, %xmm2 - 0x66, 0x0f, 0x74, 0xd0, //0x000012d4 pcmpeqb %xmm0, %xmm2 - 0x66, 0x0f, 0xd7, 0xc2, //0x000012d8 pmovmskb %xmm2, %eax - 0xf7, 0xd0, //0x000012dc notl %eax - 0x0d, 0x00, 0x80, 0x00, 0x00, //0x000012de orl $32768, %eax - 0x0f, 0xbc, 0xc8, //0x000012e3 bsfl %eax, %ecx - 0xb8, 0x10, 0x00, 0x00, 0x00, //0x000012e6 movl $16, %eax - 0x29, 0xc8, //0x000012eb subl %ecx, %eax - 0x48, 0xc1, 0xe1, 0x04, //0x000012ed shlq $4, %rcx - 0x48, 0x8d, 0x15, 0x48, 0xda, 0x00, 0x00, //0x000012f1 leaq $55880(%rip), %rdx /* _VecShiftShuffles+0(%rip) */ - 0x66, 0x0f, 0x38, 0x00, 0x0c, 0x11, //0x000012f8 pshufb (%rcx,%rdx), %xmm1 - 0xf3, 0x0f, 0x7f, 0x0f, //0x000012fe movdqu %xmm1, (%rdi) - 0x5d, //0x00001302 popq %rbp - 0xc3, //0x00001303 retq - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001304 .p2align 4, 0x00 - //0x00001310 LCPI7_0 - 0x59, 0x17, 0xb7, 0xd1, 0x00, 0x00, 0x00, 0x00, //0x00001310 .quad 3518437209 - 0x59, 0x17, 0xb7, 0xd1, 0x00, 0x00, 0x00, 0x00, //0x00001318 .quad 3518437209 - //0x00001320 LCPI7_1 - 0xc5, 0x20, //0x00001320 .word 8389 - 0x7b, 0x14, //0x00001322 .word 5243 - 0x34, 0x33, //0x00001324 .word 13108 - 0x00, 0x80, //0x00001326 .word 32768 - 0xc5, 0x20, //0x00001328 .word 8389 - 0x7b, 0x14, //0x0000132a .word 5243 - 0x34, 0x33, //0x0000132c .word 13108 - 0x00, 0x80, //0x0000132e .word 32768 - //0x00001330 LCPI7_2 - 0x80, 0x00, //0x00001330 .word 128 - 0x00, 0x08, //0x00001332 .word 2048 - 0x00, 0x20, //0x00001334 .word 8192 - 0x00, 0x80, //0x00001336 .word 32768 - 0x80, 0x00, //0x00001338 .word 128 - 0x00, 0x08, //0x0000133a .word 2048 - 0x00, 0x20, //0x0000133c .word 8192 - 0x00, 0x80, //0x0000133e .word 32768 - //0x00001340 LCPI7_3 - 0x0a, 0x00, //0x00001340 .word 10 - 0x0a, 0x00, //0x00001342 .word 10 - 0x0a, 0x00, //0x00001344 .word 10 - 0x0a, 0x00, //0x00001346 .word 10 - 0x0a, 0x00, //0x00001348 .word 10 - 0x0a, 0x00, //0x0000134a .word 10 - 0x0a, 0x00, //0x0000134c .word 10 - 0x0a, 0x00, //0x0000134e .word 10 - //0x00001350 LCPI7_4 - 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, //0x00001350 QUAD $0x3030303030303030; QUAD $0x3030303030303030 // .space 16, '0000000000000000' - //0x00001360 .p2align 4, 0x90 - //0x00001360 _u64toa_xlarge_sse2 - 0x55, //0x00001360 pushq %rbp - 0x48, 0x89, 0xe5, //0x00001361 movq %rsp, %rbp - 0x48, 0xb9, 0x57, 0x78, 0x13, 0xb1, 0x2f, 0x65, 0xa5, 0x39, //0x00001364 movabsq $4153837486827862103, %rcx - 0x48, 0x89, 0xf0, //0x0000136e movq %rsi, %rax - 0x48, 0xf7, 0xe1, //0x00001371 mulq %rcx - 0x48, 0xc1, 0xea, 0x33, //0x00001374 shrq $51, %rdx - 0x48, 0xb8, 0x00, 0x00, 0xc1, 0x6f, 0xf2, 0x86, 0x23, 0x00, //0x00001378 movabsq $10000000000000000, %rax - 0x48, 0x0f, 0xaf, 0xc2, //0x00001382 imulq %rdx, %rax - 0x48, 0x29, 0xc6, //0x00001386 subq %rax, %rsi - 0x83, 0xfa, 0x09, //0x00001389 cmpl $9, %edx - 0x0f, 0x87, 0x0f, 0x00, 0x00, 0x00, //0x0000138c ja LBB7_2 - 0x80, 0xc2, 0x30, //0x00001392 addb $48, %dl - 0x88, 0x17, //0x00001395 movb %dl, (%rdi) - 0xb9, 0x01, 0x00, 0x00, 0x00, //0x00001397 movl $1, %ecx - 0xe9, 0xa5, 0x00, 0x00, 0x00, //0x0000139c jmp LBB7_7 - //0x000013a1 LBB7_2 - 0x83, 0xfa, 0x63, //0x000013a1 cmpl $99, %edx - 0x0f, 0x87, 0x1a, 0x00, 0x00, 0x00, //0x000013a4 ja LBB7_4 - 0x89, 0xd0, //0x000013aa movl %edx, %eax - 0x48, 0x8d, 0x0d, 0x2d, 0xb2, 0x00, 0x00, //0x000013ac leaq $45613(%rip), %rcx /* _Digits+0(%rip) */ - 0x0f, 0xb7, 0x04, 0x41, //0x000013b3 movzwl (%rcx,%rax,2), %eax - 0x66, 0x89, 0x07, //0x000013b7 movw %ax, (%rdi) - 0xb9, 0x02, 0x00, 0x00, 0x00, //0x000013ba movl $2, %ecx - 0xe9, 0x82, 0x00, 0x00, 0x00, //0x000013bf jmp LBB7_7 - //0x000013c4 LBB7_4 - 0x89, 0xd0, //0x000013c4 movl %edx, %eax - 0xc1, 0xe8, 0x02, //0x000013c6 shrl $2, %eax - 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x000013c9 imull $5243, %eax, %eax - 0xc1, 0xe8, 0x11, //0x000013cf shrl $17, %eax - 0x81, 0xfa, 0xe7, 0x03, 0x00, 0x00, //0x000013d2 cmpl $999, %edx - 0x0f, 0x87, 0x37, 0x00, 0x00, 0x00, //0x000013d8 ja LBB7_6 - 0x83, 0xc0, 0x30, //0x000013de addl $48, %eax - 0x88, 0x07, //0x000013e1 movb %al, (%rdi) - 0x0f, 0xb7, 0xc2, //0x000013e3 movzwl %dx, %eax - 0x89, 0xc1, //0x000013e6 movl %eax, %ecx - 0xc1, 0xe9, 0x02, //0x000013e8 shrl $2, %ecx - 0x69, 0xc9, 0x7b, 0x14, 0x00, 0x00, //0x000013eb imull $5243, %ecx, %ecx - 0xc1, 0xe9, 0x11, //0x000013f1 shrl $17, %ecx - 0x6b, 0xc9, 0x64, //0x000013f4 imull $100, %ecx, %ecx - 0x29, 0xc8, //0x000013f7 subl %ecx, %eax - 0x0f, 0xb7, 0xc0, //0x000013f9 movzwl %ax, %eax - 0x48, 0x8d, 0x0d, 0xdd, 0xb1, 0x00, 0x00, //0x000013fc leaq $45533(%rip), %rcx /* _Digits+0(%rip) */ - 0x0f, 0xb7, 0x04, 0x41, //0x00001403 movzwl (%rcx,%rax,2), %eax - 0x66, 0x89, 0x47, 0x01, //0x00001407 movw %ax, $1(%rdi) - 0xb9, 0x03, 0x00, 0x00, 0x00, //0x0000140b movl $3, %ecx - 0xe9, 0x31, 0x00, 0x00, 0x00, //0x00001410 jmp LBB7_7 - //0x00001415 LBB7_6 - 0x6b, 0xc8, 0x64, //0x00001415 imull $100, %eax, %ecx - 0x29, 0xca, //0x00001418 subl %ecx, %edx - 0x0f, 0xb7, 0xc0, //0x0000141a movzwl %ax, %eax - 0x48, 0x8d, 0x0d, 0xbc, 0xb1, 0x00, 0x00, //0x0000141d leaq $45500(%rip), %rcx /* _Digits+0(%rip) */ - 0x0f, 0xb7, 0x04, 0x41, //0x00001424 movzwl (%rcx,%rax,2), %eax - 0x66, 0x89, 0x07, //0x00001428 movw %ax, (%rdi) - 0x0f, 0xb7, 0xc2, //0x0000142b movzwl %dx, %eax - 0x8a, 0x14, 0x41, //0x0000142e movb (%rcx,%rax,2), %dl - 0x48, 0x01, 0xc0, //0x00001431 addq %rax, %rax - 0x88, 0x57, 0x02, //0x00001434 movb %dl, $2(%rdi) - 0x0f, 0xb7, 0xc0, //0x00001437 movzwl %ax, %eax - 0x8a, 0x44, 0x08, 0x01, //0x0000143a movb $1(%rax,%rcx), %al - 0x88, 0x47, 0x03, //0x0000143e movb %al, $3(%rdi) - 0xb9, 0x04, 0x00, 0x00, 0x00, //0x00001441 movl $4, %ecx - //0x00001446 LBB7_7 - 0x48, 0xba, 0xfd, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x00001446 movabsq $-6067343680855748867, %rdx - 0x48, 0x89, 0xf0, //0x00001450 movq %rsi, %rax - 0x48, 0xf7, 0xe2, //0x00001453 mulq %rdx - 0x48, 0xc1, 0xea, 0x1a, //0x00001456 shrq $26, %rdx - 0x66, 0x0f, 0x6e, 0xc2, //0x0000145a movd %edx, %xmm0 - 0x66, 0x0f, 0x6f, 0x0d, 0xaa, 0xfe, 0xff, 0xff, //0x0000145e movdqa $-342(%rip), %xmm1 /* LCPI7_0+0(%rip) */ - 0x66, 0x0f, 0x6f, 0xd8, //0x00001466 movdqa %xmm0, %xmm3 - 0x66, 0x0f, 0xf4, 0xd9, //0x0000146a pmuludq %xmm1, %xmm3 - 0x66, 0x0f, 0x73, 0xd3, 0x2d, //0x0000146e psrlq $45, %xmm3 - 0xb8, 0x10, 0x27, 0x00, 0x00, //0x00001473 movl $10000, %eax - 0x66, 0x48, 0x0f, 0x6e, 0xd0, //0x00001478 movq %rax, %xmm2 - 0x66, 0x0f, 0x6f, 0xe3, //0x0000147d movdqa %xmm3, %xmm4 - 0x66, 0x0f, 0xf4, 0xe2, //0x00001481 pmuludq %xmm2, %xmm4 - 0x66, 0x0f, 0xfa, 0xc4, //0x00001485 psubd %xmm4, %xmm0 - 0x66, 0x0f, 0x61, 0xd8, //0x00001489 punpcklwd %xmm0, %xmm3 - 0x66, 0x0f, 0x73, 0xf3, 0x02, //0x0000148d psllq $2, %xmm3 - 0xf2, 0x0f, 0x70, 0xc3, 0x50, //0x00001492 pshuflw $80, %xmm3, %xmm0 - 0x66, 0x0f, 0x70, 0xc0, 0x50, //0x00001497 pshufd $80, %xmm0, %xmm0 - 0x66, 0x0f, 0x6f, 0x25, 0x7c, 0xfe, 0xff, 0xff, //0x0000149c movdqa $-388(%rip), %xmm4 /* LCPI7_1+0(%rip) */ - 0x66, 0x0f, 0xe4, 0xc4, //0x000014a4 pmulhuw %xmm4, %xmm0 - 0x66, 0x0f, 0x6f, 0x2d, 0x80, 0xfe, 0xff, 0xff, //0x000014a8 movdqa $-384(%rip), %xmm5 /* LCPI7_2+0(%rip) */ - 0x66, 0x0f, 0xe4, 0xc5, //0x000014b0 pmulhuw %xmm5, %xmm0 - 0x66, 0x0f, 0x6f, 0x1d, 0x84, 0xfe, 0xff, 0xff, //0x000014b4 movdqa $-380(%rip), %xmm3 /* LCPI7_3+0(%rip) */ - 0x66, 0x0f, 0x6f, 0xf0, //0x000014bc movdqa %xmm0, %xmm6 - 0x66, 0x0f, 0xd5, 0xf3, //0x000014c0 pmullw %xmm3, %xmm6 - 0x66, 0x0f, 0x73, 0xf6, 0x10, //0x000014c4 psllq $16, %xmm6 - 0x66, 0x0f, 0xf9, 0xc6, //0x000014c9 psubw %xmm6, %xmm0 - 0x69, 0xc2, 0x00, 0xe1, 0xf5, 0x05, //0x000014cd imull $100000000, %edx, %eax - 0x29, 0xc6, //0x000014d3 subl %eax, %esi - 0x66, 0x0f, 0x6e, 0xf6, //0x000014d5 movd %esi, %xmm6 - 0x66, 0x0f, 0xf4, 0xce, //0x000014d9 pmuludq %xmm6, %xmm1 - 0x66, 0x0f, 0x73, 0xd1, 0x2d, //0x000014dd psrlq $45, %xmm1 - 0x66, 0x0f, 0xf4, 0xd1, //0x000014e2 pmuludq %xmm1, %xmm2 - 0x66, 0x0f, 0xfa, 0xf2, //0x000014e6 psubd %xmm2, %xmm6 - 0x66, 0x0f, 0x61, 0xce, //0x000014ea punpcklwd %xmm6, %xmm1 - 0x66, 0x0f, 0x73, 0xf1, 0x02, //0x000014ee psllq $2, %xmm1 - 0xf2, 0x0f, 0x70, 0xc9, 0x50, //0x000014f3 pshuflw $80, %xmm1, %xmm1 - 0x66, 0x0f, 0x70, 0xc9, 0x50, //0x000014f8 pshufd $80, %xmm1, %xmm1 - 0x66, 0x0f, 0xe4, 0xcc, //0x000014fd pmulhuw %xmm4, %xmm1 - 0x66, 0x0f, 0xe4, 0xcd, //0x00001501 pmulhuw %xmm5, %xmm1 - 0x66, 0x0f, 0xd5, 0xd9, //0x00001505 pmullw %xmm1, %xmm3 - 0x66, 0x0f, 0x73, 0xf3, 0x10, //0x00001509 psllq $16, %xmm3 - 0x66, 0x0f, 0xf9, 0xcb, //0x0000150e psubw %xmm3, %xmm1 - 0x66, 0x0f, 0x67, 0xc1, //0x00001512 packuswb %xmm1, %xmm0 - 0x66, 0x0f, 0xfc, 0x05, 0x32, 0xfe, 0xff, 0xff, //0x00001516 paddb $-462(%rip), %xmm0 /* LCPI7_4+0(%rip) */ - 0x89, 0xc8, //0x0000151e movl %ecx, %eax - 0xf3, 0x0f, 0x7f, 0x04, 0x07, //0x00001520 movdqu %xmm0, (%rdi,%rax) - 0x83, 0xc9, 0x10, //0x00001525 orl $16, %ecx - 0x89, 0xc8, //0x00001528 movl %ecx, %eax - 0x5d, //0x0000152a popq %rbp - 0xc3, //0x0000152b retq - 0x00, 0x00, 0x00, 0x00, //0x0000152c .p2align 4, 0x00 - //0x00001530 LCPI8_0 - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x00001530 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' - //0x00001540 LCPI8_1 - 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, //0x00001540 QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' - //0x00001550 LCPI8_2 - 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x00001550 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' - //0x00001560 .p2align 4, 0x90 - //0x00001560 _quote - 0x55, //0x00001560 pushq %rbp - 0x48, 0x89, 0xe5, //0x00001561 movq %rsp, %rbp - 0x41, 0x57, //0x00001564 pushq %r15 - 0x41, 0x56, //0x00001566 pushq %r14 - 0x41, 0x55, //0x00001568 pushq %r13 - 0x41, 0x54, //0x0000156a pushq %r12 - 0x53, //0x0000156c pushq %rbx - 0x48, 0x83, 0xec, 0x20, //0x0000156d subq $32, %rsp - 0x49, 0x89, 0xcb, //0x00001571 movq %rcx, %r11 - 0x49, 0x89, 0xd7, //0x00001574 movq %rdx, %r15 - 0x4c, 0x8b, 0x11, //0x00001577 movq (%rcx), %r10 - 0x41, 0xf6, 0xc0, 0x01, //0x0000157a testb $1, %r8b - 0x48, 0x89, 0xf0, //0x0000157e movq %rsi, %rax - 0x48, 0x8d, 0x0d, 0x48, 0xd8, 0x00, 0x00, //0x00001581 leaq $55368(%rip), %rcx /* __SingleQuoteTab+0(%rip) */ - 0x4c, 0x8d, 0x25, 0x41, 0xe8, 0x00, 0x00, //0x00001588 leaq $59457(%rip), %r12 /* __DoubleQuoteTab+0(%rip) */ - 0x4c, 0x0f, 0x44, 0xe1, //0x0000158f cmoveq %rcx, %r12 - 0x48, 0x8d, 0x0c, 0xf5, 0x00, 0x00, 0x00, 0x00, //0x00001593 leaq (,%rsi,8), %rcx - 0x49, 0x39, 0xca, //0x0000159b cmpq %rcx, %r10 - 0x0f, 0x8d, 0x0c, 0x04, 0x00, 0x00, //0x0000159e jge LBB8_56 - 0x4d, 0x89, 0xfe, //0x000015a4 movq %r15, %r14 - 0x49, 0x89, 0xf9, //0x000015a7 movq %rdi, %r9 - 0x48, 0x85, 0xc0, //0x000015aa testq %rax, %rax - 0x0f, 0x84, 0xec, 0x03, 0x00, 0x00, //0x000015ad je LBB8_80 - 0x4c, 0x89, 0x5d, 0xc8, //0x000015b3 movq %r11, $-56(%rbp) - 0x66, 0x0f, 0x6f, 0x05, 0x71, 0xff, 0xff, 0xff, //0x000015b7 movdqa $-143(%rip), %xmm0 /* LCPI8_0+0(%rip) */ - 0x66, 0x0f, 0x6f, 0x0d, 0x79, 0xff, 0xff, 0xff, //0x000015bf movdqa $-135(%rip), %xmm1 /* LCPI8_1+0(%rip) */ - 0x66, 0x0f, 0x6f, 0x15, 0x81, 0xff, 0xff, 0xff, //0x000015c7 movdqa $-127(%rip), %xmm2 /* LCPI8_2+0(%rip) */ - 0x66, 0x0f, 0x76, 0xdb, //0x000015cf pcmpeqd %xmm3, %xmm3 - 0x48, 0x89, 0xf9, //0x000015d3 movq %rdi, %rcx - 0x4c, 0x89, 0x7d, 0xd0, //0x000015d6 movq %r15, $-48(%rbp) - 0x4d, 0x89, 0xfe, //0x000015da movq %r15, %r14 - 0x4c, 0x89, 0x65, 0xc0, //0x000015dd movq %r12, $-64(%rbp) - //0x000015e1 LBB8_3 - 0x49, 0x89, 0xc9, //0x000015e1 movq %rcx, %r9 - 0x48, 0x83, 0xf8, 0x10, //0x000015e4 cmpq $16, %rax - 0x0f, 0x9d, 0xc3, //0x000015e8 setge %bl - 0x4d, 0x89, 0xd4, //0x000015eb movq %r10, %r12 - 0x4d, 0x89, 0xf7, //0x000015ee movq %r14, %r15 - 0x49, 0x89, 0xc3, //0x000015f1 movq %rax, %r11 - 0x49, 0x89, 0xcd, //0x000015f4 movq %rcx, %r13 - 0x0f, 0x8c, 0x83, 0x00, 0x00, 0x00, //0x000015f7 jl LBB8_10 - 0x49, 0x83, 0xfa, 0x10, //0x000015fd cmpq $16, %r10 - 0x0f, 0x8c, 0x79, 0x00, 0x00, 0x00, //0x00001601 jl LBB8_10 - 0x45, 0x31, 0xff, //0x00001607 xorl %r15d, %r15d - 0x48, 0x89, 0xc6, //0x0000160a movq %rax, %rsi - 0x4c, 0x89, 0xd2, //0x0000160d movq %r10, %rdx - //0x00001610 .p2align 4, 0x90 - //0x00001610 LBB8_6 - 0xf3, 0x43, 0x0f, 0x6f, 0x24, 0x39, //0x00001610 movdqu (%r9,%r15), %xmm4 - 0x66, 0x0f, 0x6f, 0xe8, //0x00001616 movdqa %xmm0, %xmm5 - 0x66, 0x0f, 0x64, 0xec, //0x0000161a pcmpgtb %xmm4, %xmm5 - 0x66, 0x0f, 0x6f, 0xf4, //0x0000161e movdqa %xmm4, %xmm6 - 0x66, 0x0f, 0x74, 0xf1, //0x00001622 pcmpeqb %xmm1, %xmm6 - 0x66, 0x0f, 0x6f, 0xfc, //0x00001626 movdqa %xmm4, %xmm7 - 0x66, 0x0f, 0x74, 0xfa, //0x0000162a pcmpeqb %xmm2, %xmm7 - 0x66, 0x0f, 0xeb, 0xfe, //0x0000162e por %xmm6, %xmm7 - 0xf3, 0x43, 0x0f, 0x7f, 0x24, 0x3e, //0x00001632 movdqu %xmm4, (%r14,%r15) - 0x66, 0x0f, 0x64, 0xe3, //0x00001638 pcmpgtb %xmm3, %xmm4 - 0x66, 0x0f, 0xdb, 0xe5, //0x0000163c pand %xmm5, %xmm4 - 0x66, 0x0f, 0xeb, 0xe7, //0x00001640 por %xmm7, %xmm4 - 0x66, 0x0f, 0xd7, 0xcc, //0x00001644 pmovmskb %xmm4, %ecx - 0x85, 0xc9, //0x00001648 testl %ecx, %ecx - 0x0f, 0x85, 0x3b, 0x01, 0x00, 0x00, //0x0000164a jne LBB8_23 - 0x4c, 0x8d, 0x5e, 0xf0, //0x00001650 leaq $-16(%rsi), %r11 - 0x4c, 0x8d, 0x62, 0xf0, //0x00001654 leaq $-16(%rdx), %r12 - 0x49, 0x83, 0xc7, 0x10, //0x00001658 addq $16, %r15 - 0x48, 0x83, 0xfe, 0x20, //0x0000165c cmpq $32, %rsi - 0x0f, 0x9d, 0xc3, //0x00001660 setge %bl - 0x0f, 0x8c, 0x10, 0x00, 0x00, 0x00, //0x00001663 jl LBB8_9 - 0x4c, 0x89, 0xde, //0x00001669 movq %r11, %rsi - 0x48, 0x83, 0xfa, 0x1f, //0x0000166c cmpq $31, %rdx - 0x4c, 0x89, 0xe2, //0x00001670 movq %r12, %rdx - 0x0f, 0x8f, 0x97, 0xff, 0xff, 0xff, //0x00001673 jg LBB8_6 - //0x00001679 LBB8_9 - 0x4f, 0x8d, 0x2c, 0x39, //0x00001679 leaq (%r9,%r15), %r13 - 0x4d, 0x01, 0xf7, //0x0000167d addq %r14, %r15 - //0x00001680 LBB8_10 - 0x84, 0xdb, //0x00001680 testb %bl, %bl - 0x0f, 0x84, 0x73, 0x00, 0x00, 0x00, //0x00001682 je LBB8_14 - 0xf3, 0x41, 0x0f, 0x6f, 0x65, 0x00, //0x00001688 movdqu (%r13), %xmm4 - 0x66, 0x0f, 0x6f, 0xe8, //0x0000168e movdqa %xmm0, %xmm5 - 0x66, 0x0f, 0x64, 0xec, //0x00001692 pcmpgtb %xmm4, %xmm5 - 0x66, 0x0f, 0x6f, 0xf4, //0x00001696 movdqa %xmm4, %xmm6 - 0x66, 0x0f, 0x74, 0xf1, //0x0000169a pcmpeqb %xmm1, %xmm6 - 0x66, 0x0f, 0x6f, 0xfc, //0x0000169e movdqa %xmm4, %xmm7 - 0x66, 0x0f, 0x74, 0xfa, //0x000016a2 pcmpeqb %xmm2, %xmm7 - 0x66, 0x0f, 0xeb, 0xfe, //0x000016a6 por %xmm6, %xmm7 - 0x66, 0x48, 0x0f, 0x7e, 0xe1, //0x000016aa movq %xmm4, %rcx - 0x66, 0x0f, 0x64, 0xe3, //0x000016af pcmpgtb %xmm3, %xmm4 - 0x66, 0x0f, 0xdb, 0xe5, //0x000016b3 pand %xmm5, %xmm4 - 0x66, 0x0f, 0xeb, 0xe7, //0x000016b7 por %xmm7, %xmm4 - 0x66, 0x0f, 0xd7, 0xd4, //0x000016bb pmovmskb %xmm4, %edx - 0x81, 0xca, 0x00, 0x00, 0x01, 0x00, //0x000016bf orl $65536, %edx - 0x44, 0x0f, 0xbc, 0xda, //0x000016c5 bsfl %edx, %r11d - 0x4d, 0x39, 0xdc, //0x000016c9 cmpq %r11, %r12 - 0x0f, 0x8d, 0xc9, 0x00, 0x00, 0x00, //0x000016cc jge LBB8_24 - 0x49, 0x83, 0xfc, 0x08, //0x000016d2 cmpq $8, %r12 - 0x0f, 0x82, 0xfe, 0x00, 0x00, 0x00, //0x000016d6 jb LBB8_28 - 0x49, 0x89, 0x0f, //0x000016dc movq %rcx, (%r15) - 0x4d, 0x8d, 0x5d, 0x08, //0x000016df leaq $8(%r13), %r11 - 0x49, 0x83, 0xc7, 0x08, //0x000016e3 addq $8, %r15 - 0x49, 0x8d, 0x5c, 0x24, 0xf8, //0x000016e7 leaq $-8(%r12), %rbx - 0x48, 0x83, 0xfb, 0x04, //0x000016ec cmpq $4, %rbx - 0x0f, 0x8d, 0xf4, 0x00, 0x00, 0x00, //0x000016f0 jge LBB8_29 - 0xe9, 0x01, 0x01, 0x00, 0x00, //0x000016f6 jmp LBB8_30 - //0x000016fb LBB8_14 - 0x4d, 0x85, 0xdb, //0x000016fb testq %r11, %r11 - 0x0f, 0x8e, 0x6f, 0x00, 0x00, 0x00, //0x000016fe jle LBB8_21 - 0x4d, 0x85, 0xe4, //0x00001704 testq %r12, %r12 - 0x0f, 0x8e, 0x66, 0x00, 0x00, 0x00, //0x00001707 jle LBB8_21 - 0x4c, 0x89, 0x4d, 0xb8, //0x0000170d movq %r9, $-72(%rbp) - 0x45, 0x31, 0xc9, //0x00001711 xorl %r9d, %r9d - 0x31, 0xd2, //0x00001714 xorl %edx, %edx - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001716 .p2align 4, 0x90 - //0x00001720 LBB8_17 - 0x43, 0x0f, 0xb6, 0x4c, 0x0d, 0x00, //0x00001720 movzbl (%r13,%r9), %ecx - 0x48, 0x89, 0xcb, //0x00001726 movq %rcx, %rbx - 0x48, 0xc1, 0xe3, 0x04, //0x00001729 shlq $4, %rbx - 0x48, 0x8d, 0x35, 0x9c, 0xd6, 0x00, 0x00, //0x0000172d leaq $54940(%rip), %rsi /* __SingleQuoteTab+0(%rip) */ - 0x48, 0x83, 0x3c, 0x33, 0x00, //0x00001734 cmpq $0, (%rbx,%rsi) - 0x0f, 0x85, 0x8c, 0x00, 0x00, 0x00, //0x00001739 jne LBB8_27 - 0x4d, 0x8d, 0x04, 0x13, //0x0000173f leaq (%r11,%rdx), %r8 - 0x43, 0x88, 0x0c, 0x0f, //0x00001743 movb %cl, (%r15,%r9) - 0x48, 0x8d, 0x5a, 0xff, //0x00001747 leaq $-1(%rdx), %rbx - 0x49, 0x83, 0xf8, 0x02, //0x0000174b cmpq $2, %r8 - 0x0f, 0x8c, 0x14, 0x00, 0x00, 0x00, //0x0000174f jl LBB8_20 - 0x4c, 0x01, 0xe2, //0x00001755 addq %r12, %rdx - 0x49, 0x83, 0xc1, 0x01, //0x00001758 addq $1, %r9 - 0x48, 0x83, 0xfa, 0x01, //0x0000175c cmpq $1, %rdx - 0x48, 0x89, 0xda, //0x00001760 movq %rbx, %rdx - 0x0f, 0x8f, 0xb7, 0xff, 0xff, 0xff, //0x00001763 jg LBB8_17 - //0x00001769 LBB8_20 - 0x49, 0x29, 0xdd, //0x00001769 subq %rbx, %r13 - 0x49, 0x01, 0xdb, //0x0000176c addq %rbx, %r11 - 0x4c, 0x8b, 0x4d, 0xb8, //0x0000176f movq $-72(%rbp), %r9 - //0x00001773 LBB8_21 - 0x4d, 0x85, 0xdb, //0x00001773 testq %r11, %r11 - 0x4c, 0x8b, 0x65, 0xc0, //0x00001776 movq $-64(%rbp), %r12 - 0x0f, 0x84, 0x43, 0x00, 0x00, 0x00, //0x0000177a je LBB8_26 - 0x49, 0xf7, 0xd5, //0x00001780 notq %r13 - 0x4d, 0x01, 0xcd, //0x00001783 addq %r9, %r13 - 0xe9, 0x27, 0x01, 0x00, 0x00, //0x00001786 jmp LBB8_41 - //0x0000178b LBB8_23 - 0x66, 0x0f, 0xbc, 0xc9, //0x0000178b bsfw %cx, %cx - 0x44, 0x0f, 0xb7, 0xe9, //0x0000178f movzwl %cx, %r13d - 0x4d, 0x01, 0xfd, //0x00001793 addq %r15, %r13 - 0xe9, 0x13, 0x01, 0x00, 0x00, //0x00001796 jmp LBB8_40 - //0x0000179b LBB8_24 - 0x41, 0x83, 0xfb, 0x08, //0x0000179b cmpl $8, %r11d - 0x0f, 0x82, 0xa3, 0x00, 0x00, 0x00, //0x0000179f jb LBB8_34 - 0x49, 0x89, 0x0f, //0x000017a5 movq %rcx, (%r15) - 0x4d, 0x8d, 0x65, 0x08, //0x000017a8 leaq $8(%r13), %r12 - 0x49, 0x83, 0xc7, 0x08, //0x000017ac addq $8, %r15 - 0x49, 0x8d, 0x5b, 0xf8, //0x000017b0 leaq $-8(%r11), %rbx - 0x48, 0x83, 0xfb, 0x04, //0x000017b4 cmpq $4, %rbx - 0x0f, 0x8d, 0x9a, 0x00, 0x00, 0x00, //0x000017b8 jge LBB8_35 - 0xe9, 0xa8, 0x00, 0x00, 0x00, //0x000017be jmp LBB8_36 - //0x000017c3 LBB8_26 - 0x4d, 0x29, 0xcd, //0x000017c3 subq %r9, %r13 - 0xe9, 0xe7, 0x00, 0x00, 0x00, //0x000017c6 jmp LBB8_41 - //0x000017cb LBB8_27 - 0x4c, 0x8b, 0x4d, 0xb8, //0x000017cb movq $-72(%rbp), %r9 - 0x4d, 0x29, 0xcd, //0x000017cf subq %r9, %r13 - 0x49, 0x29, 0xd5, //0x000017d2 subq %rdx, %r13 - 0xe9, 0xd4, 0x00, 0x00, 0x00, //0x000017d5 jmp LBB8_40 - //0x000017da LBB8_28 - 0x4d, 0x89, 0xeb, //0x000017da movq %r13, %r11 - 0x4c, 0x89, 0xe3, //0x000017dd movq %r12, %rbx - 0x48, 0x83, 0xfb, 0x04, //0x000017e0 cmpq $4, %rbx - 0x0f, 0x8c, 0x12, 0x00, 0x00, 0x00, //0x000017e4 jl LBB8_30 - //0x000017ea LBB8_29 - 0x41, 0x8b, 0x0b, //0x000017ea movl (%r11), %ecx - 0x41, 0x89, 0x0f, //0x000017ed movl %ecx, (%r15) - 0x49, 0x83, 0xc3, 0x04, //0x000017f0 addq $4, %r11 - 0x49, 0x83, 0xc7, 0x04, //0x000017f4 addq $4, %r15 - 0x48, 0x83, 0xc3, 0xfc, //0x000017f8 addq $-4, %rbx - //0x000017fc LBB8_30 - 0x48, 0x83, 0xfb, 0x02, //0x000017fc cmpq $2, %rbx - 0x0f, 0x82, 0x22, 0x00, 0x00, 0x00, //0x00001800 jb LBB8_31 - 0x41, 0x0f, 0xb7, 0x0b, //0x00001806 movzwl (%r11), %ecx - 0x66, 0x41, 0x89, 0x0f, //0x0000180a movw %cx, (%r15) - 0x49, 0x83, 0xc3, 0x02, //0x0000180e addq $2, %r11 - 0x49, 0x83, 0xc7, 0x02, //0x00001812 addq $2, %r15 - 0x48, 0x83, 0xc3, 0xfe, //0x00001816 addq $-2, %rbx - 0x48, 0x85, 0xdb, //0x0000181a testq %rbx, %rbx - 0x0f, 0x85, 0x0e, 0x00, 0x00, 0x00, //0x0000181d jne LBB8_32 - 0xe9, 0x0f, 0x00, 0x00, 0x00, //0x00001823 jmp LBB8_33 - //0x00001828 LBB8_31 - 0x48, 0x85, 0xdb, //0x00001828 testq %rbx, %rbx - 0x0f, 0x84, 0x06, 0x00, 0x00, 0x00, //0x0000182b je LBB8_33 - //0x00001831 LBB8_32 - 0x41, 0x8a, 0x0b, //0x00001831 movb (%r11), %cl - 0x41, 0x88, 0x0f, //0x00001834 movb %cl, (%r15) - //0x00001837 LBB8_33 - 0x4d, 0x01, 0xec, //0x00001837 addq %r13, %r12 - 0x49, 0xf7, 0xd4, //0x0000183a notq %r12 - 0x4d, 0x01, 0xcc, //0x0000183d addq %r9, %r12 - 0x4d, 0x89, 0xe5, //0x00001840 movq %r12, %r13 - 0xe9, 0x66, 0x00, 0x00, 0x00, //0x00001843 jmp LBB8_40 - //0x00001848 LBB8_34 - 0x4d, 0x89, 0xec, //0x00001848 movq %r13, %r12 - 0x4c, 0x89, 0xdb, //0x0000184b movq %r11, %rbx - 0x48, 0x83, 0xfb, 0x04, //0x0000184e cmpq $4, %rbx - 0x0f, 0x8c, 0x13, 0x00, 0x00, 0x00, //0x00001852 jl LBB8_36 - //0x00001858 LBB8_35 - 0x41, 0x8b, 0x0c, 0x24, //0x00001858 movl (%r12), %ecx - 0x41, 0x89, 0x0f, //0x0000185c movl %ecx, (%r15) - 0x49, 0x83, 0xc4, 0x04, //0x0000185f addq $4, %r12 - 0x49, 0x83, 0xc7, 0x04, //0x00001863 addq $4, %r15 - 0x48, 0x83, 0xc3, 0xfc, //0x00001867 addq $-4, %rbx - //0x0000186b LBB8_36 - 0x48, 0x83, 0xfb, 0x02, //0x0000186b cmpq $2, %rbx - 0x0f, 0x82, 0x23, 0x00, 0x00, 0x00, //0x0000186f jb LBB8_37 - 0x41, 0x0f, 0xb7, 0x0c, 0x24, //0x00001875 movzwl (%r12), %ecx - 0x66, 0x41, 0x89, 0x0f, //0x0000187a movw %cx, (%r15) - 0x49, 0x83, 0xc4, 0x02, //0x0000187e addq $2, %r12 - 0x49, 0x83, 0xc7, 0x02, //0x00001882 addq $2, %r15 - 0x48, 0x83, 0xc3, 0xfe, //0x00001886 addq $-2, %rbx - 0x48, 0x85, 0xdb, //0x0000188a testq %rbx, %rbx - 0x0f, 0x85, 0x0e, 0x00, 0x00, 0x00, //0x0000188d jne LBB8_38 - 0xe9, 0x10, 0x00, 0x00, 0x00, //0x00001893 jmp LBB8_39 - //0x00001898 LBB8_37 - 0x48, 0x85, 0xdb, //0x00001898 testq %rbx, %rbx - 0x0f, 0x84, 0x07, 0x00, 0x00, 0x00, //0x0000189b je LBB8_39 - //0x000018a1 LBB8_38 - 0x41, 0x8a, 0x0c, 0x24, //0x000018a1 movb (%r12), %cl - 0x41, 0x88, 0x0f, //0x000018a5 movb %cl, (%r15) - //0x000018a8 LBB8_39 - 0x4d, 0x29, 0xcd, //0x000018a8 subq %r9, %r13 - 0x4d, 0x01, 0xdd, //0x000018ab addq %r11, %r13 - //0x000018ae LBB8_40 - 0x4c, 0x8b, 0x65, 0xc0, //0x000018ae movq $-64(%rbp), %r12 - //0x000018b2 LBB8_41 - 0x49, 0xbb, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, //0x000018b2 movabsq $12884901889, %r11 - 0x4d, 0x85, 0xed, //0x000018bc testq %r13, %r13 - 0x0f, 0x88, 0x4f, 0x03, 0x00, 0x00, //0x000018bf js LBB8_83 - 0x4d, 0x01, 0xee, //0x000018c5 addq %r13, %r14 - 0x4c, 0x39, 0xe8, //0x000018c8 cmpq %r13, %rax - 0x0f, 0x84, 0xc3, 0x00, 0x00, 0x00, //0x000018cb je LBB8_79 - 0x4d, 0x29, 0xea, //0x000018d1 subq %r13, %r10 - 0xe9, 0x17, 0x00, 0x00, 0x00, //0x000018d4 jmp LBB8_45 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000018d9 .p2align 4, 0x90 - //0x000018e0 LBB8_44 - 0x49, 0x01, 0xf6, //0x000018e0 addq %rsi, %r14 - 0x49, 0x83, 0xc5, 0x01, //0x000018e3 addq $1, %r13 - 0x4c, 0x39, 0xe8, //0x000018e7 cmpq %r13, %rax - 0x0f, 0x84, 0xa4, 0x00, 0x00, 0x00, //0x000018ea je LBB8_79 - //0x000018f0 LBB8_45 - 0x43, 0x0f, 0xb6, 0x0c, 0x29, //0x000018f0 movzbl (%r9,%r13), %ecx - 0x48, 0xc1, 0xe1, 0x04, //0x000018f5 shlq $4, %rcx - 0x49, 0x8b, 0x14, 0x0c, //0x000018f9 movq (%r12,%rcx), %rdx - 0x85, 0xd2, //0x000018fd testl %edx, %edx - 0x0f, 0x84, 0x82, 0x00, 0x00, 0x00, //0x000018ff je LBB8_53 - 0x48, 0x63, 0xf2, //0x00001905 movslq %edx, %rsi - 0x49, 0x29, 0xf2, //0x00001908 subq %rsi, %r10 - 0x0f, 0x8c, 0xdd, 0x02, 0x00, 0x00, //0x0000190b jl LBB8_81 - 0x48, 0xc1, 0xe2, 0x20, //0x00001911 shlq $32, %rdx - 0x49, 0x8d, 0x1c, 0x0c, //0x00001915 leaq (%r12,%rcx), %rbx - 0x48, 0x83, 0xc3, 0x08, //0x00001919 addq $8, %rbx - 0x4c, 0x39, 0xda, //0x0000191d cmpq %r11, %rdx - 0x0f, 0x8c, 0x2a, 0x00, 0x00, 0x00, //0x00001920 jl LBB8_49 - 0x8b, 0x13, //0x00001926 movl (%rbx), %edx - 0x41, 0x89, 0x16, //0x00001928 movl %edx, (%r14) - 0x49, 0x8d, 0x1c, 0x0c, //0x0000192b leaq (%r12,%rcx), %rbx - 0x48, 0x83, 0xc3, 0x0c, //0x0000192f addq $12, %rbx - 0x4d, 0x8d, 0x46, 0x04, //0x00001933 leaq $4(%r14), %r8 - 0x48, 0x8d, 0x4e, 0xfc, //0x00001937 leaq $-4(%rsi), %rcx - 0x48, 0x83, 0xf9, 0x02, //0x0000193b cmpq $2, %rcx - 0x0f, 0x83, 0x1b, 0x00, 0x00, 0x00, //0x0000193f jae LBB8_50 - 0xe9, 0x29, 0x00, 0x00, 0x00, //0x00001945 jmp LBB8_51 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000194a .p2align 4, 0x90 - //0x00001950 LBB8_49 - 0x4d, 0x89, 0xf0, //0x00001950 movq %r14, %r8 - 0x48, 0x89, 0xf1, //0x00001953 movq %rsi, %rcx - 0x48, 0x83, 0xf9, 0x02, //0x00001956 cmpq $2, %rcx - 0x0f, 0x82, 0x13, 0x00, 0x00, 0x00, //0x0000195a jb LBB8_51 - //0x00001960 LBB8_50 - 0x0f, 0xb7, 0x13, //0x00001960 movzwl (%rbx), %edx - 0x66, 0x41, 0x89, 0x10, //0x00001963 movw %dx, (%r8) - 0x48, 0x83, 0xc3, 0x02, //0x00001967 addq $2, %rbx - 0x49, 0x83, 0xc0, 0x02, //0x0000196b addq $2, %r8 - 0x48, 0x83, 0xc1, 0xfe, //0x0000196f addq $-2, %rcx - //0x00001973 LBB8_51 - 0x48, 0x85, 0xc9, //0x00001973 testq %rcx, %rcx - 0x0f, 0x84, 0x64, 0xff, 0xff, 0xff, //0x00001976 je LBB8_44 - 0x0f, 0xb6, 0x0b, //0x0000197c movzbl (%rbx), %ecx - 0x41, 0x88, 0x08, //0x0000197f movb %cl, (%r8) - 0xe9, 0x59, 0xff, 0xff, 0xff, //0x00001982 jmp LBB8_44 - //0x00001987 LBB8_53 - 0x4b, 0x8d, 0x0c, 0x29, //0x00001987 leaq (%r9,%r13), %rcx - 0x4c, 0x29, 0xe8, //0x0000198b subq %r13, %rax - 0x0f, 0x85, 0x4d, 0xfc, 0xff, 0xff, //0x0000198e jne LBB8_3 - //0x00001994 LBB8_79 - 0x4d, 0x01, 0xe9, //0x00001994 addq %r13, %r9 - 0x4c, 0x8b, 0x5d, 0xc8, //0x00001997 movq $-56(%rbp), %r11 - 0x4c, 0x8b, 0x7d, 0xd0, //0x0000199b movq $-48(%rbp), %r15 - //0x0000199f LBB8_80 - 0x4d, 0x29, 0xfe, //0x0000199f subq %r15, %r14 - 0x4d, 0x89, 0x33, //0x000019a2 movq %r14, (%r11) - 0x49, 0x29, 0xf9, //0x000019a5 subq %rdi, %r9 - 0x4c, 0x89, 0xc8, //0x000019a8 movq %r9, %rax - 0xe9, 0x55, 0x02, 0x00, 0x00, //0x000019ab jmp LBB8_82 - //0x000019b0 LBB8_56 - 0x66, 0x0f, 0x6f, 0x05, 0x78, 0xfb, 0xff, 0xff, //0x000019b0 movdqa $-1160(%rip), %xmm0 /* LCPI8_0+0(%rip) */ - 0x66, 0x0f, 0x6f, 0x0d, 0x80, 0xfb, 0xff, 0xff, //0x000019b8 movdqa $-1152(%rip), %xmm1 /* LCPI8_1+0(%rip) */ - 0x66, 0x0f, 0x6f, 0x15, 0x88, 0xfb, 0xff, 0xff, //0x000019c0 movdqa $-1144(%rip), %xmm2 /* LCPI8_2+0(%rip) */ - 0x66, 0x0f, 0x76, 0xdb, //0x000019c8 pcmpeqd %xmm3, %xmm3 - 0x4c, 0x8d, 0x0d, 0xfd, 0xf3, 0x00, 0x00, //0x000019cc leaq $62461(%rip), %r9 /* __EscTab+0(%rip) */ - 0x4c, 0x89, 0xfe, //0x000019d3 movq %r15, %rsi - 0x48, 0x89, 0xc3, //0x000019d6 movq %rax, %rbx - //0x000019d9 LBB8_57 - 0x48, 0x83, 0xfb, 0x10, //0x000019d9 cmpq $16, %rbx - 0x0f, 0x8c, 0x69, 0x00, 0x00, 0x00, //0x000019dd jl LBB8_62 - 0x49, 0x89, 0xda, //0x000019e3 movq %rbx, %r10 - 0x49, 0xf7, 0xda, //0x000019e6 negq %r10 - 0x48, 0x83, 0xc3, 0x10, //0x000019e9 addq $16, %rbx - 0x90, 0x90, 0x90, //0x000019ed .p2align 4, 0x90 - //0x000019f0 LBB8_59 - 0xf3, 0x0f, 0x6f, 0x27, //0x000019f0 movdqu (%rdi), %xmm4 - 0x66, 0x0f, 0x6f, 0xe8, //0x000019f4 movdqa %xmm0, %xmm5 - 0x66, 0x0f, 0x64, 0xec, //0x000019f8 pcmpgtb %xmm4, %xmm5 - 0x66, 0x0f, 0x6f, 0xf4, //0x000019fc movdqa %xmm4, %xmm6 - 0x66, 0x0f, 0x74, 0xf1, //0x00001a00 pcmpeqb %xmm1, %xmm6 - 0x66, 0x0f, 0x6f, 0xfc, //0x00001a04 movdqa %xmm4, %xmm7 - 0x66, 0x0f, 0x74, 0xfa, //0x00001a08 pcmpeqb %xmm2, %xmm7 - 0x66, 0x0f, 0xeb, 0xfe, //0x00001a0c por %xmm6, %xmm7 - 0xf3, 0x0f, 0x7f, 0x26, //0x00001a10 movdqu %xmm4, (%rsi) - 0x66, 0x0f, 0x64, 0xe3, //0x00001a14 pcmpgtb %xmm3, %xmm4 - 0x66, 0x0f, 0xdb, 0xe5, //0x00001a18 pand %xmm5, %xmm4 - 0x66, 0x0f, 0xeb, 0xe7, //0x00001a1c por %xmm7, %xmm4 - 0x66, 0x0f, 0xd7, 0xcc, //0x00001a20 pmovmskb %xmm4, %ecx - 0x85, 0xc9, //0x00001a24 testl %ecx, %ecx - 0x0f, 0x85, 0x22, 0x01, 0x00, 0x00, //0x00001a26 jne LBB8_72 - 0x48, 0x83, 0xc7, 0x10, //0x00001a2c addq $16, %rdi - 0x48, 0x83, 0xc6, 0x10, //0x00001a30 addq $16, %rsi - 0x49, 0x83, 0xc2, 0x10, //0x00001a34 addq $16, %r10 - 0x48, 0x83, 0xc3, 0xf0, //0x00001a38 addq $-16, %rbx - 0x48, 0x83, 0xfb, 0x20, //0x00001a3c cmpq $32, %rbx - 0x0f, 0x8d, 0xaa, 0xff, 0xff, 0xff, //0x00001a40 jge LBB8_59 - 0x49, 0xf7, 0xda, //0x00001a46 negq %r10 - 0x4c, 0x89, 0xd3, //0x00001a49 movq %r10, %rbx - //0x00001a4c LBB8_62 - 0x48, 0x83, 0xfb, 0x08, //0x00001a4c cmpq $8, %rbx - 0x0f, 0x8c, 0x75, 0x00, 0x00, 0x00, //0x00001a50 jl LBB8_66 - 0x0f, 0xb6, 0x0f, //0x00001a56 movzbl (%rdi), %ecx - 0x0f, 0xb6, 0x57, 0x01, //0x00001a59 movzbl $1(%rdi), %edx - 0x42, 0x8a, 0x14, 0x0a, //0x00001a5d movb (%rdx,%r9), %dl - 0x00, 0xd2, //0x00001a61 addb %dl, %dl - 0x42, 0x0a, 0x14, 0x09, //0x00001a63 orb (%rcx,%r9), %dl - 0x0f, 0xb6, 0x4f, 0x02, //0x00001a67 movzbl $2(%rdi), %ecx - 0x42, 0x8a, 0x0c, 0x09, //0x00001a6b movb (%rcx,%r9), %cl - 0xc0, 0xe1, 0x02, //0x00001a6f shlb $2, %cl - 0x08, 0xd1, //0x00001a72 orb %dl, %cl - 0x0f, 0xb6, 0x57, 0x03, //0x00001a74 movzbl $3(%rdi), %edx - 0x42, 0x8a, 0x14, 0x0a, //0x00001a78 movb (%rdx,%r9), %dl - 0xc0, 0xe2, 0x03, //0x00001a7c shlb $3, %dl - 0x08, 0xca, //0x00001a7f orb %cl, %dl - 0x48, 0x8b, 0x0f, //0x00001a81 movq (%rdi), %rcx - 0x48, 0x89, 0x0e, //0x00001a84 movq %rcx, (%rsi) - 0x0f, 0x85, 0x22, 0x01, 0x00, 0x00, //0x00001a87 jne LBB8_76 - 0x0f, 0xb6, 0x4f, 0x04, //0x00001a8d movzbl $4(%rdi), %ecx - 0x0f, 0xb6, 0x57, 0x05, //0x00001a91 movzbl $5(%rdi), %edx - 0x42, 0x8a, 0x14, 0x0a, //0x00001a95 movb (%rdx,%r9), %dl - 0x00, 0xd2, //0x00001a99 addb %dl, %dl - 0x42, 0x0a, 0x14, 0x09, //0x00001a9b orb (%rcx,%r9), %dl - 0x0f, 0xb6, 0x4f, 0x06, //0x00001a9f movzbl $6(%rdi), %ecx - 0x42, 0x8a, 0x0c, 0x09, //0x00001aa3 movb (%rcx,%r9), %cl - 0xc0, 0xe1, 0x02, //0x00001aa7 shlb $2, %cl - 0x08, 0xd1, //0x00001aaa orb %dl, %cl - 0x0f, 0xb6, 0x57, 0x07, //0x00001aac movzbl $7(%rdi), %edx - 0x42, 0x8a, 0x14, 0x0a, //0x00001ab0 movb (%rdx,%r9), %dl - 0xc0, 0xe2, 0x03, //0x00001ab4 shlb $3, %dl - 0x08, 0xca, //0x00001ab7 orb %cl, %dl - 0x0f, 0x85, 0x04, 0x01, 0x00, 0x00, //0x00001ab9 jne LBB8_77 - 0x48, 0x83, 0xc6, 0x08, //0x00001abf addq $8, %rsi - 0x48, 0x83, 0xc7, 0x08, //0x00001ac3 addq $8, %rdi - 0x48, 0x83, 0xc3, 0xf8, //0x00001ac7 addq $-8, %rbx - //0x00001acb LBB8_66 - 0x48, 0x83, 0xfb, 0x04, //0x00001acb cmpq $4, %rbx - 0x0f, 0x8c, 0x41, 0x00, 0x00, 0x00, //0x00001acf jl LBB8_69 - 0x0f, 0xb6, 0x0f, //0x00001ad5 movzbl (%rdi), %ecx - 0x0f, 0xb6, 0x57, 0x01, //0x00001ad8 movzbl $1(%rdi), %edx - 0x42, 0x8a, 0x14, 0x0a, //0x00001adc movb (%rdx,%r9), %dl - 0x00, 0xd2, //0x00001ae0 addb %dl, %dl - 0x42, 0x0a, 0x14, 0x09, //0x00001ae2 orb (%rcx,%r9), %dl - 0x0f, 0xb6, 0x4f, 0x02, //0x00001ae6 movzbl $2(%rdi), %ecx - 0x42, 0x8a, 0x0c, 0x09, //0x00001aea movb (%rcx,%r9), %cl - 0xc0, 0xe1, 0x02, //0x00001aee shlb $2, %cl - 0x08, 0xd1, //0x00001af1 orb %dl, %cl - 0x0f, 0xb6, 0x57, 0x03, //0x00001af3 movzbl $3(%rdi), %edx - 0x42, 0x8a, 0x14, 0x0a, //0x00001af7 movb (%rdx,%r9), %dl - 0xc0, 0xe2, 0x03, //0x00001afb shlb $3, %dl - 0x08, 0xca, //0x00001afe orb %cl, %dl - 0x8b, 0x0f, //0x00001b00 movl (%rdi), %ecx - 0x89, 0x0e, //0x00001b02 movl %ecx, (%rsi) - 0x0f, 0x85, 0xa5, 0x00, 0x00, 0x00, //0x00001b04 jne LBB8_76 - 0x48, 0x83, 0xc6, 0x04, //0x00001b0a addq $4, %rsi - 0x48, 0x83, 0xc7, 0x04, //0x00001b0e addq $4, %rdi - 0x48, 0x83, 0xc3, 0xfc, //0x00001b12 addq $-4, %rbx - //0x00001b16 LBB8_69 - 0x48, 0x85, 0xdb, //0x00001b16 testq %rbx, %rbx - 0x0f, 0x8e, 0xc4, 0x00, 0x00, 0x00, //0x00001b19 jle LBB8_78 - 0x90, //0x00001b1f .p2align 4, 0x90 - //0x00001b20 LBB8_70 - 0x0f, 0xb6, 0x0f, //0x00001b20 movzbl (%rdi), %ecx - 0x42, 0x80, 0x3c, 0x09, 0x00, //0x00001b23 cmpb $0, (%rcx,%r9) - 0x0f, 0x85, 0x36, 0x00, 0x00, 0x00, //0x00001b28 jne LBB8_73 - 0x48, 0x83, 0xc7, 0x01, //0x00001b2e addq $1, %rdi - 0x88, 0x0e, //0x00001b32 movb %cl, (%rsi) - 0x48, 0x83, 0xc6, 0x01, //0x00001b34 addq $1, %rsi - 0x48, 0x8d, 0x4b, 0xff, //0x00001b38 leaq $-1(%rbx), %rcx - 0x48, 0x83, 0xfb, 0x01, //0x00001b3c cmpq $1, %rbx - 0x48, 0x89, 0xcb, //0x00001b40 movq %rcx, %rbx - 0x0f, 0x8f, 0xd7, 0xff, 0xff, 0xff, //0x00001b43 jg LBB8_70 - 0xe9, 0x95, 0x00, 0x00, 0x00, //0x00001b49 jmp LBB8_78 - //0x00001b4e LBB8_72 - 0x66, 0x0f, 0xbc, 0xc9, //0x00001b4e bsfw %cx, %cx - 0x0f, 0xb7, 0xc9, //0x00001b52 movzwl %cx, %ecx - 0x48, 0x01, 0xcf, //0x00001b55 addq %rcx, %rdi - 0x49, 0x01, 0xca, //0x00001b58 addq %rcx, %r10 - 0x49, 0xf7, 0xda, //0x00001b5b negq %r10 - 0x48, 0x01, 0xce, //0x00001b5e addq %rcx, %rsi - 0x4c, 0x89, 0xd3, //0x00001b61 movq %r10, %rbx - //0x00001b64 LBB8_73 - 0x8a, 0x0f, //0x00001b64 movb (%rdi), %cl - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001b66 .p2align 4, 0x90 - //0x00001b70 LBB8_74 - 0x48, 0x89, 0xf2, //0x00001b70 movq %rsi, %rdx - 0x0f, 0xb6, 0xc9, //0x00001b73 movzbl %cl, %ecx - 0x48, 0xc1, 0xe1, 0x04, //0x00001b76 shlq $4, %rcx - 0x49, 0x63, 0x34, 0x0c, //0x00001b7a movslq (%r12,%rcx), %rsi - 0x49, 0x8b, 0x4c, 0x0c, 0x08, //0x00001b7e movq $8(%r12,%rcx), %rcx - 0x48, 0x89, 0x0a, //0x00001b83 movq %rcx, (%rdx) - 0x48, 0x01, 0xd6, //0x00001b86 addq %rdx, %rsi - 0x48, 0x83, 0xfb, 0x02, //0x00001b89 cmpq $2, %rbx - 0x0f, 0x8c, 0x50, 0x00, 0x00, 0x00, //0x00001b8d jl LBB8_78 - 0x0f, 0xb6, 0x4f, 0x01, //0x00001b93 movzbl $1(%rdi), %ecx - 0x48, 0x83, 0xc7, 0x01, //0x00001b97 addq $1, %rdi - 0x48, 0x83, 0xc3, 0xff, //0x00001b9b addq $-1, %rbx - 0x42, 0x80, 0x3c, 0x09, 0x00, //0x00001b9f cmpb $0, (%rcx,%r9) - 0x0f, 0x85, 0xc6, 0xff, 0xff, 0xff, //0x00001ba4 jne LBB8_74 - 0xe9, 0x2a, 0xfe, 0xff, 0xff, //0x00001baa jmp LBB8_57 - //0x00001baf LBB8_76 - 0x0f, 0xb6, 0xca, //0x00001baf movzbl %dl, %ecx - 0x0f, 0xbc, 0xc9, //0x00001bb2 bsfl %ecx, %ecx - 0x48, 0x01, 0xcf, //0x00001bb5 addq %rcx, %rdi - 0x48, 0x29, 0xcb, //0x00001bb8 subq %rcx, %rbx - 0x48, 0x01, 0xce, //0x00001bbb addq %rcx, %rsi - 0xe9, 0xa1, 0xff, 0xff, 0xff, //0x00001bbe jmp LBB8_73 - //0x00001bc3 LBB8_77 - 0x0f, 0xb6, 0xca, //0x00001bc3 movzbl %dl, %ecx - 0x0f, 0xbc, 0xc9, //0x00001bc6 bsfl %ecx, %ecx - 0x48, 0x8d, 0x51, 0x04, //0x00001bc9 leaq $4(%rcx), %rdx - 0x48, 0x01, 0xcf, //0x00001bcd addq %rcx, %rdi - 0x48, 0x83, 0xc7, 0x04, //0x00001bd0 addq $4, %rdi - 0x48, 0x29, 0xd3, //0x00001bd4 subq %rdx, %rbx - 0x48, 0x01, 0xce, //0x00001bd7 addq %rcx, %rsi - 0x48, 0x83, 0xc6, 0x04, //0x00001bda addq $4, %rsi - 0xe9, 0x81, 0xff, 0xff, 0xff, //0x00001bde jmp LBB8_73 - //0x00001be3 LBB8_78 - 0x4c, 0x29, 0xfe, //0x00001be3 subq %r15, %rsi - 0x49, 0x89, 0x33, //0x00001be6 movq %rsi, (%r11) - 0xe9, 0x17, 0x00, 0x00, 0x00, //0x00001be9 jmp LBB8_82 - //0x00001bee LBB8_81 - 0x4c, 0x2b, 0x75, 0xd0, //0x00001bee subq $-48(%rbp), %r14 - 0x48, 0x8b, 0x45, 0xc8, //0x00001bf2 movq $-56(%rbp), %rax - 0x4c, 0x89, 0x30, //0x00001bf6 movq %r14, (%rax) - 0x4c, 0x29, 0xcf, //0x00001bf9 subq %r9, %rdi - 0x49, 0xf7, 0xd5, //0x00001bfc notq %r13 - 0x49, 0x01, 0xfd, //0x00001bff addq %rdi, %r13 - 0x4c, 0x89, 0xe8, //0x00001c02 movq %r13, %rax - //0x00001c05 LBB8_82 - 0x48, 0x83, 0xc4, 0x20, //0x00001c05 addq $32, %rsp - 0x5b, //0x00001c09 popq %rbx - 0x41, 0x5c, //0x00001c0a popq %r12 - 0x41, 0x5d, //0x00001c0c popq %r13 - 0x41, 0x5e, //0x00001c0e popq %r14 - 0x41, 0x5f, //0x00001c10 popq %r15 - 0x5d, //0x00001c12 popq %rbp - 0xc3, //0x00001c13 retq - //0x00001c14 LBB8_83 - 0x48, 0x8b, 0x4d, 0xd0, //0x00001c14 movq $-48(%rbp), %rcx - 0x4c, 0x01, 0xe9, //0x00001c18 addq %r13, %rcx - 0x48, 0xf7, 0xd1, //0x00001c1b notq %rcx - 0x4c, 0x01, 0xf1, //0x00001c1e addq %r14, %rcx - 0x48, 0x8b, 0x45, 0xc8, //0x00001c21 movq $-56(%rbp), %rax - 0x48, 0x89, 0x08, //0x00001c25 movq %rcx, (%rax) - 0x4c, 0x29, 0xcf, //0x00001c28 subq %r9, %rdi - 0x4c, 0x01, 0xef, //0x00001c2b addq %r13, %rdi - 0x48, 0x89, 0xf8, //0x00001c2e movq %rdi, %rax - 0xe9, 0xcf, 0xff, 0xff, 0xff, //0x00001c31 jmp LBB8_82 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001c36 .p2align 4, 0x00 - //0x00001c40 LCPI9_0 - 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x00001c40 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' - //0x00001c50 .p2align 4, 0x90 - //0x00001c50 _unquote - 0x55, //0x00001c50 pushq %rbp - 0x48, 0x89, 0xe5, //0x00001c51 movq %rsp, %rbp - 0x41, 0x57, //0x00001c54 pushq %r15 - 0x41, 0x56, //0x00001c56 pushq %r14 - 0x41, 0x55, //0x00001c58 pushq %r13 - 0x41, 0x54, //0x00001c5a pushq %r12 - 0x53, //0x00001c5c pushq %rbx - 0x48, 0x83, 0xec, 0x38, //0x00001c5d subq $56, %rsp - 0x48, 0x85, 0xf6, //0x00001c61 testq %rsi, %rsi - 0x0f, 0x84, 0x25, 0x06, 0x00, 0x00, //0x00001c64 je LBB9_1 - 0x48, 0x89, 0x4d, 0xd0, //0x00001c6a movq %rcx, $-48(%rbp) - 0x45, 0x89, 0xc2, //0x00001c6e movl %r8d, %r10d - 0x41, 0x83, 0xe2, 0x01, //0x00001c71 andl $1, %r10d - 0x4c, 0x8d, 0x35, 0x54, 0xf2, 0x00, 0x00, //0x00001c75 leaq $62036(%rip), %r14 /* __UnquoteTab+0(%rip) */ - 0x66, 0x0f, 0x6f, 0x0d, 0xbc, 0xff, 0xff, 0xff, //0x00001c7c movdqa $-68(%rip), %xmm1 /* LCPI9_0+0(%rip) */ - 0x49, 0x89, 0xff, //0x00001c84 movq %rdi, %r15 - 0x49, 0x89, 0xf5, //0x00001c87 movq %rsi, %r13 - 0x49, 0x89, 0xd4, //0x00001c8a movq %rdx, %r12 - 0x4c, 0x89, 0x45, 0xc0, //0x00001c8d movq %r8, $-64(%rbp) - //0x00001c91 LBB9_4 - 0x41, 0x80, 0x3f, 0x5c, //0x00001c91 cmpb $92, (%r15) - 0x0f, 0x85, 0x15, 0x00, 0x00, 0x00, //0x00001c95 jne LBB9_6 - 0x45, 0x31, 0xdb, //0x00001c9b xorl %r11d, %r11d - 0xe9, 0xcd, 0x00, 0x00, 0x00, //0x00001c9e jmp LBB9_18 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001ca3 .p2align 4, 0x90 - //0x00001cb0 LBB9_6 - 0x4d, 0x89, 0xe9, //0x00001cb0 movq %r13, %r9 - 0x4c, 0x89, 0xe1, //0x00001cb3 movq %r12, %rcx - 0x4d, 0x89, 0xfb, //0x00001cb6 movq %r15, %r11 - 0x49, 0x83, 0xfd, 0x10, //0x00001cb9 cmpq $16, %r13 - 0x0f, 0x8c, 0x45, 0x00, 0x00, 0x00, //0x00001cbd jl LBB9_12 - 0x31, 0xc9, //0x00001cc3 xorl %ecx, %ecx - 0x4c, 0x89, 0xe8, //0x00001cc5 movq %r13, %rax - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001cc8 .p2align 4, 0x90 - //0x00001cd0 LBB9_8 - 0xf3, 0x41, 0x0f, 0x6f, 0x04, 0x0f, //0x00001cd0 movdqu (%r15,%rcx), %xmm0 - 0xf3, 0x41, 0x0f, 0x7f, 0x04, 0x0c, //0x00001cd6 movdqu %xmm0, (%r12,%rcx) - 0x66, 0x0f, 0x74, 0xc1, //0x00001cdc pcmpeqb %xmm1, %xmm0 - 0x66, 0x0f, 0xd7, 0xd8, //0x00001ce0 pmovmskb %xmm0, %ebx - 0x85, 0xdb, //0x00001ce4 testl %ebx, %ebx - 0x0f, 0x85, 0x6c, 0x00, 0x00, 0x00, //0x00001ce6 jne LBB9_9 - 0x4c, 0x8d, 0x48, 0xf0, //0x00001cec leaq $-16(%rax), %r9 - 0x48, 0x83, 0xc1, 0x10, //0x00001cf0 addq $16, %rcx - 0x48, 0x83, 0xf8, 0x1f, //0x00001cf4 cmpq $31, %rax - 0x4c, 0x89, 0xc8, //0x00001cf8 movq %r9, %rax - 0x0f, 0x8f, 0xcf, 0xff, 0xff, 0xff, //0x00001cfb jg LBB9_8 - 0x4d, 0x8d, 0x1c, 0x0f, //0x00001d01 leaq (%r15,%rcx), %r11 - 0x4c, 0x01, 0xe1, //0x00001d05 addq %r12, %rcx - //0x00001d08 LBB9_12 - 0x4d, 0x85, 0xc9, //0x00001d08 testq %r9, %r9 - 0x0f, 0x84, 0x84, 0x05, 0x00, 0x00, //0x00001d0b je LBB9_2 - 0x31, 0xc0, //0x00001d11 xorl %eax, %eax - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001d13 .p2align 4, 0x90 - //0x00001d20 LBB9_14 - 0x41, 0x0f, 0xb6, 0x1c, 0x03, //0x00001d20 movzbl (%r11,%rax), %ebx - 0x80, 0xfb, 0x5c, //0x00001d25 cmpb $92, %bl - 0x0f, 0x84, 0x15, 0x00, 0x00, 0x00, //0x00001d28 je LBB9_16 - 0x88, 0x1c, 0x01, //0x00001d2e movb %bl, (%rcx,%rax) - 0x48, 0x83, 0xc0, 0x01, //0x00001d31 addq $1, %rax - 0x49, 0x39, 0xc1, //0x00001d35 cmpq %rax, %r9 - 0x0f, 0x85, 0xe2, 0xff, 0xff, 0xff, //0x00001d38 jne LBB9_14 - 0xe9, 0x52, 0x05, 0x00, 0x00, //0x00001d3e jmp LBB9_2 - //0x00001d43 LBB9_16 - 0x4d, 0x29, 0xfb, //0x00001d43 subq %r15, %r11 - 0x49, 0x01, 0xc3, //0x00001d46 addq %rax, %r11 - 0x49, 0x83, 0xfb, 0xff, //0x00001d49 cmpq $-1, %r11 - 0x0f, 0x85, 0x1d, 0x00, 0x00, 0x00, //0x00001d4d jne LBB9_18 - 0xe9, 0x3d, 0x05, 0x00, 0x00, //0x00001d53 jmp LBB9_2 - //0x00001d58 LBB9_9 - 0x66, 0x0f, 0xbc, 0xc3, //0x00001d58 bsfw %bx, %ax - 0x44, 0x0f, 0xb7, 0xd8, //0x00001d5c movzwl %ax, %r11d - 0x49, 0x01, 0xcb, //0x00001d60 addq %rcx, %r11 - 0x49, 0x83, 0xfb, 0xff, //0x00001d63 cmpq $-1, %r11 - 0x0f, 0x84, 0x28, 0x05, 0x00, 0x00, //0x00001d67 je LBB9_2 - 0x90, 0x90, 0x90, //0x00001d6d .p2align 4, 0x90 - //0x00001d70 LBB9_18 - 0x49, 0x8d, 0x4b, 0x02, //0x00001d70 leaq $2(%r11), %rcx - 0x49, 0x29, 0xcd, //0x00001d74 subq %rcx, %r13 - 0x0f, 0x88, 0x4c, 0x06, 0x00, 0x00, //0x00001d77 js LBB9_19 - 0x4d, 0x01, 0xdf, //0x00001d7d addq %r11, %r15 - 0x49, 0x83, 0xc7, 0x02, //0x00001d80 addq $2, %r15 - 0x4d, 0x85, 0xd2, //0x00001d84 testq %r10, %r10 - 0x0f, 0x85, 0x4b, 0x02, 0x00, 0x00, //0x00001d87 jne LBB9_21 - //0x00001d8d LBB9_32 - 0x4d, 0x01, 0xdc, //0x00001d8d addq %r11, %r12 - 0x41, 0x0f, 0xb6, 0x47, 0xff, //0x00001d90 movzbl $-1(%r15), %eax - 0x42, 0x8a, 0x04, 0x30, //0x00001d95 movb (%rax,%r14), %al - 0x3c, 0xff, //0x00001d99 cmpb $-1, %al - 0x0f, 0x84, 0x1f, 0x00, 0x00, 0x00, //0x00001d9b je LBB9_38 - 0x84, 0xc0, //0x00001da1 testb %al, %al - 0x0f, 0x84, 0x3b, 0x06, 0x00, 0x00, //0x00001da3 je LBB9_34 - 0x41, 0x88, 0x04, 0x24, //0x00001da9 movb %al, (%r12) - 0x49, 0x83, 0xc4, 0x01, //0x00001dad addq $1, %r12 - 0x4d, 0x85, 0xed, //0x00001db1 testq %r13, %r13 - 0x0f, 0x85, 0xd7, 0xfe, 0xff, 0xff, //0x00001db4 jne LBB9_4 - 0xe9, 0x1d, 0x06, 0x00, 0x00, //0x00001dba jmp LBB9_37 - 0x90, //0x00001dbf .p2align 4, 0x90 - //0x00001dc0 LBB9_38 - 0x49, 0x83, 0xfd, 0x03, //0x00001dc0 cmpq $3, %r13 - 0x0f, 0x8e, 0xff, 0x05, 0x00, 0x00, //0x00001dc4 jle LBB9_19 - 0x41, 0x8b, 0x1f, //0x00001dca movl (%r15), %ebx - 0x89, 0xd9, //0x00001dcd movl %ebx, %ecx - 0xf7, 0xd1, //0x00001dcf notl %ecx - 0x8d, 0x83, 0xd0, 0xcf, 0xcf, 0xcf, //0x00001dd1 leal $-808464432(%rbx), %eax - 0x81, 0xe1, 0x80, 0x80, 0x80, 0x80, //0x00001dd7 andl $-2139062144, %ecx - 0x85, 0xc1, //0x00001ddd testl %eax, %ecx - 0x0f, 0x85, 0xc8, 0x04, 0x00, 0x00, //0x00001ddf jne LBB9_43 - 0x8d, 0x83, 0x19, 0x19, 0x19, 0x19, //0x00001de5 leal $421075225(%rbx), %eax - 0x09, 0xd8, //0x00001deb orl %ebx, %eax - 0xa9, 0x80, 0x80, 0x80, 0x80, //0x00001ded testl $-2139062144, %eax - 0x0f, 0x85, 0xb5, 0x04, 0x00, 0x00, //0x00001df2 jne LBB9_43 - 0x89, 0xd8, //0x00001df8 movl %ebx, %eax - 0x25, 0x7f, 0x7f, 0x7f, 0x7f, //0x00001dfa andl $2139062143, %eax - 0x41, 0xbb, 0xc0, 0xc0, 0xc0, 0xc0, //0x00001dff movl $-1061109568, %r11d - 0x41, 0x29, 0xc3, //0x00001e05 subl %eax, %r11d - 0x44, 0x8d, 0x88, 0x46, 0x46, 0x46, 0x46, //0x00001e08 leal $1179010630(%rax), %r9d - 0x41, 0x21, 0xcb, //0x00001e0f andl %ecx, %r11d - 0x45, 0x85, 0xcb, //0x00001e12 testl %r9d, %r11d - 0x0f, 0x85, 0x92, 0x04, 0x00, 0x00, //0x00001e15 jne LBB9_43 - 0x41, 0xb9, 0xe0, 0xe0, 0xe0, 0xe0, //0x00001e1b movl $-522133280, %r9d - 0x41, 0x29, 0xc1, //0x00001e21 subl %eax, %r9d - 0x05, 0x39, 0x39, 0x39, 0x39, //0x00001e24 addl $960051513, %eax - 0x44, 0x21, 0xc9, //0x00001e29 andl %r9d, %ecx - 0x85, 0xc1, //0x00001e2c testl %eax, %ecx - 0x0f, 0x85, 0x79, 0x04, 0x00, 0x00, //0x00001e2e jne LBB9_43 - 0x0f, 0xcb, //0x00001e34 bswapl %ebx - 0x89, 0xd9, //0x00001e36 movl %ebx, %ecx - 0xc1, 0xe9, 0x04, //0x00001e38 shrl $4, %ecx - 0xf7, 0xd1, //0x00001e3b notl %ecx - 0x81, 0xe1, 0x01, 0x01, 0x01, 0x01, //0x00001e3d andl $16843009, %ecx - 0x8d, 0x0c, 0xc9, //0x00001e43 leal (%rcx,%rcx,8), %ecx - 0x81, 0xe3, 0x0f, 0x0f, 0x0f, 0x0f, //0x00001e46 andl $252645135, %ebx - 0x01, 0xcb, //0x00001e4c addl %ecx, %ebx - 0x89, 0xd9, //0x00001e4e movl %ebx, %ecx - 0xc1, 0xe9, 0x04, //0x00001e50 shrl $4, %ecx - 0x09, 0xd9, //0x00001e53 orl %ebx, %ecx - 0x89, 0xc8, //0x00001e55 movl %ecx, %eax - 0xc1, 0xe8, 0x08, //0x00001e57 shrl $8, %eax - 0x25, 0x00, 0xff, 0x00, 0x00, //0x00001e5a andl $65280, %eax - 0x0f, 0xb6, 0xd9, //0x00001e5f movzbl %cl, %ebx - 0x09, 0xc3, //0x00001e62 orl %eax, %ebx - 0x4d, 0x8d, 0x4f, 0x04, //0x00001e64 leaq $4(%r15), %r9 - 0x49, 0x8d, 0x45, 0xfc, //0x00001e68 leaq $-4(%r13), %rax - 0x81, 0xfb, 0x80, 0x00, 0x00, 0x00, //0x00001e6c cmpl $128, %ebx - 0x0f, 0x82, 0xb3, 0x01, 0x00, 0x00, //0x00001e72 jb LBB9_58 - 0x41, 0xf6, 0xc0, 0x02, //0x00001e78 testb $2, %r8b - 0x0f, 0x84, 0xbc, 0x01, 0x00, 0x00, //0x00001e7c je LBB9_69 - 0x4d, 0x89, 0xcf, //0x00001e82 movq %r9, %r15 - 0x41, 0x89, 0xde, //0x00001e85 movl %ebx, %r14d - 0x49, 0x89, 0xc5, //0x00001e88 movq %rax, %r13 - //0x00001e8b LBB9_63 - 0x41, 0x81, 0xfe, 0xff, 0x07, 0x00, 0x00, //0x00001e8b cmpl $2047, %r14d - 0x0f, 0x86, 0xa1, 0x02, 0x00, 0x00, //0x00001e92 jbe LBB9_71 - 0x44, 0x89, 0xf0, //0x00001e98 movl %r14d, %eax - 0x25, 0x00, 0xf8, 0xff, 0xff, //0x00001e9b andl $-2048, %eax - 0x3d, 0x00, 0xd8, 0x00, 0x00, //0x00001ea0 cmpl $55296, %eax - 0x0f, 0x85, 0xc5, 0x01, 0x00, 0x00, //0x00001ea5 jne LBB9_74 - 0x4d, 0x85, 0xd2, //0x00001eab testq %r10, %r10 - 0x48, 0x89, 0x7d, 0xc8, //0x00001eae movq %rdi, $-56(%rbp) - 0x48, 0x89, 0x75, 0xb8, //0x00001eb2 movq %rsi, $-72(%rbp) - 0x0f, 0x85, 0xcf, 0x00, 0x00, 0x00, //0x00001eb6 jne LBB9_66 - 0x4c, 0x89, 0x55, 0xb0, //0x00001ebc movq %r10, $-80(%rbp) - 0x48, 0x89, 0x55, 0xa8, //0x00001ec0 movq %rdx, $-88(%rbp) - 0x49, 0x83, 0xfd, 0x06, //0x00001ec4 cmpq $6, %r13 - 0x0f, 0x8c, 0xea, 0x00, 0x00, 0x00, //0x00001ec8 jl LBB9_98 - //0x00001ece LBB9_95 - 0x41, 0x81, 0xfe, 0xff, 0xdb, 0x00, 0x00, //0x00001ece cmpl $56319, %r14d - 0x0f, 0x87, 0xdd, 0x00, 0x00, 0x00, //0x00001ed5 ja LBB9_98 - 0x41, 0x80, 0x3f, 0x5c, //0x00001edb cmpb $92, (%r15) - 0x0f, 0x85, 0xd3, 0x00, 0x00, 0x00, //0x00001edf jne LBB9_98 - 0x41, 0x80, 0x7f, 0x01, 0x75, //0x00001ee5 cmpb $117, $1(%r15) - 0x0f, 0x85, 0xc8, 0x00, 0x00, 0x00, //0x00001eea jne LBB9_98 - 0x49, 0x8d, 0x7f, 0x02, //0x00001ef0 leaq $2(%r15), %rdi - 0xe8, 0x77, 0x06, 0x00, 0x00, //0x00001ef4 callq _unhex16_is - 0x84, 0xc0, //0x00001ef9 testb %al, %al - 0x0f, 0x84, 0x47, 0x05, 0x00, 0x00, //0x00001efb je LBB9_104 - 0x41, 0x8b, 0x47, 0x02, //0x00001f01 movl $2(%r15), %eax - 0x0f, 0xc8, //0x00001f05 bswapl %eax - 0x89, 0xc1, //0x00001f07 movl %eax, %ecx - 0xc1, 0xe9, 0x04, //0x00001f09 shrl $4, %ecx - 0xf7, 0xd1, //0x00001f0c notl %ecx - 0x81, 0xe1, 0x01, 0x01, 0x01, 0x01, //0x00001f0e andl $16843009, %ecx - 0x8d, 0x0c, 0xc9, //0x00001f14 leal (%rcx,%rcx,8), %ecx - 0x25, 0x0f, 0x0f, 0x0f, 0x0f, //0x00001f17 andl $252645135, %eax - 0x01, 0xc8, //0x00001f1c addl %ecx, %eax - 0x89, 0xc1, //0x00001f1e movl %eax, %ecx - 0xc1, 0xe9, 0x04, //0x00001f20 shrl $4, %ecx - 0x09, 0xc1, //0x00001f23 orl %eax, %ecx - 0x89, 0xc8, //0x00001f25 movl %ecx, %eax - 0xc1, 0xe8, 0x08, //0x00001f27 shrl $8, %eax - 0x25, 0x00, 0xff, 0x00, 0x00, //0x00001f2a andl $65280, %eax - 0x0f, 0xb6, 0xd9, //0x00001f2f movzbl %cl, %ebx - 0x09, 0xc3, //0x00001f32 orl %eax, %ebx - 0x49, 0x83, 0xc7, 0x06, //0x00001f34 addq $6, %r15 - 0x49, 0x83, 0xc5, 0xfa, //0x00001f38 addq $-6, %r13 - 0x81, 0xe1, 0x00, 0x00, 0xfc, 0x00, //0x00001f3c andl $16515072, %ecx - 0x81, 0xf9, 0x00, 0x00, 0xdc, 0x00, //0x00001f42 cmpl $14417920, %ecx - 0x48, 0x8b, 0x7d, 0xc8, //0x00001f48 movq $-56(%rbp), %rdi - 0x48, 0x8b, 0x55, 0xa8, //0x00001f4c movq $-88(%rbp), %rdx - 0x48, 0x8b, 0x75, 0xb8, //0x00001f50 movq $-72(%rbp), %rsi - 0x66, 0x0f, 0x6f, 0x0d, 0xe4, 0xfc, 0xff, 0xff, //0x00001f54 movdqa $-796(%rip), %xmm1 /* LCPI9_0+0(%rip) */ - 0x0f, 0x84, 0x53, 0x01, 0x00, 0x00, //0x00001f5c je LBB9_115 - 0x66, 0x41, 0xc7, 0x04, 0x24, 0xef, 0xbf, //0x00001f62 movw $-16401, (%r12) - 0x41, 0xc6, 0x44, 0x24, 0x02, 0xbd, //0x00001f69 movb $-67, $2(%r12) - 0x49, 0x83, 0xc4, 0x03, //0x00001f6f addq $3, %r12 - 0x41, 0x89, 0xde, //0x00001f73 movl %ebx, %r14d - 0x81, 0xfb, 0x80, 0x00, 0x00, 0x00, //0x00001f76 cmpl $128, %ebx - 0x4c, 0x8b, 0x55, 0xb0, //0x00001f7c movq $-80(%rbp), %r10 - 0x0f, 0x83, 0x05, 0xff, 0xff, 0xff, //0x00001f80 jae LBB9_63 - 0xe9, 0xa6, 0x00, 0x00, 0x00, //0x00001f86 jmp LBB9_59 - //0x00001f8b LBB9_66 - 0x4d, 0x85, 0xed, //0x00001f8b testq %r13, %r13 - 0x0f, 0x8e, 0x8e, 0x04, 0x00, 0x00, //0x00001f8e jle LBB9_67 - 0x41, 0x80, 0x3f, 0x5c, //0x00001f94 cmpb $92, (%r15) - 0x0f, 0x85, 0x76, 0x02, 0x00, 0x00, //0x00001f98 jne LBB9_100 - 0x49, 0x83, 0xc5, 0xff, //0x00001f9e addq $-1, %r13 - 0x49, 0x83, 0xc7, 0x01, //0x00001fa2 addq $1, %r15 - 0x4c, 0x89, 0x55, 0xb0, //0x00001fa6 movq %r10, $-80(%rbp) - 0x48, 0x89, 0x55, 0xa8, //0x00001faa movq %rdx, $-88(%rbp) - 0x49, 0x83, 0xfd, 0x06, //0x00001fae cmpq $6, %r13 - 0x0f, 0x8d, 0x16, 0xff, 0xff, 0xff, //0x00001fb2 jge LBB9_95 - //0x00001fb8 LBB9_98 - 0xf6, 0x45, 0xc0, 0x02, //0x00001fb8 testb $2, $-64(%rbp) - 0x0f, 0x84, 0xab, 0x02, 0x00, 0x00, //0x00001fbc je LBB9_81 - 0x66, 0x41, 0xc7, 0x04, 0x24, 0xef, 0xbf, //0x00001fc2 movw $-16401, (%r12) - 0x41, 0xc6, 0x44, 0x24, 0x02, 0xbd, //0x00001fc9 movb $-67, $2(%r12) - 0x49, 0x83, 0xc4, 0x03, //0x00001fcf addq $3, %r12 - 0xe9, 0x27, 0x01, 0x00, 0x00, //0x00001fd3 jmp LBB9_90 - //0x00001fd8 LBB9_21 - 0x45, 0x85, 0xed, //0x00001fd8 testl %r13d, %r13d - 0x0f, 0x84, 0xe8, 0x03, 0x00, 0x00, //0x00001fdb je LBB9_19 - 0x41, 0x80, 0x7f, 0xff, 0x5c, //0x00001fe1 cmpb $92, $-1(%r15) - 0x0f, 0x85, 0x11, 0x04, 0x00, 0x00, //0x00001fe6 jne LBB9_23 - 0x41, 0x80, 0x3f, 0x5c, //0x00001fec cmpb $92, (%r15) - 0x0f, 0x85, 0x28, 0x00, 0x00, 0x00, //0x00001ff0 jne LBB9_31 - 0x41, 0x83, 0xfd, 0x01, //0x00001ff6 cmpl $1, %r13d - 0x0f, 0x8e, 0xc9, 0x03, 0x00, 0x00, //0x00001ffa jle LBB9_19 - 0x41, 0x8a, 0x4f, 0x01, //0x00002000 movb $1(%r15), %cl - 0x80, 0xf9, 0x22, //0x00002004 cmpb $34, %cl - 0x0f, 0x84, 0x09, 0x00, 0x00, 0x00, //0x00002007 je LBB9_30 - 0x80, 0xf9, 0x5c, //0x0000200d cmpb $92, %cl - 0x0f, 0x85, 0x00, 0x04, 0x00, 0x00, //0x00002010 jne LBB9_29 - //0x00002016 LBB9_30 - 0x49, 0x83, 0xc7, 0x01, //0x00002016 addq $1, %r15 - 0x49, 0x83, 0xc5, 0xff, //0x0000201a addq $-1, %r13 - //0x0000201e LBB9_31 - 0x49, 0x83, 0xc7, 0x01, //0x0000201e addq $1, %r15 - 0x49, 0x83, 0xc5, 0xff, //0x00002022 addq $-1, %r13 - 0xe9, 0x62, 0xfd, 0xff, 0xff, //0x00002026 jmp LBB9_32 - //0x0000202b LBB9_58 - 0x49, 0x89, 0xc5, //0x0000202b movq %rax, %r13 - 0x4d, 0x89, 0xcf, //0x0000202e movq %r9, %r15 - //0x00002031 LBB9_59 - 0x41, 0x88, 0x1c, 0x24, //0x00002031 movb %bl, (%r12) - 0x49, 0x83, 0xc4, 0x01, //0x00002035 addq $1, %r12 - 0xe9, 0x5e, 0x00, 0x00, 0x00, //0x00002039 jmp LBB9_60 - //0x0000203e LBB9_69 - 0x81, 0xfb, 0x00, 0x08, 0x00, 0x00, //0x0000203e cmpl $2048, %ebx - 0x0f, 0x82, 0xe6, 0x00, 0x00, 0x00, //0x00002044 jb LBB9_70 - 0x81, 0xe1, 0x00, 0x00, 0xf8, 0x00, //0x0000204a andl $16252928, %ecx - 0x81, 0xf9, 0x00, 0x00, 0xd8, 0x00, //0x00002050 cmpl $14155776, %ecx - 0x0f, 0x84, 0xff, 0x00, 0x00, 0x00, //0x00002056 je LBB9_75 - 0x49, 0x89, 0xc5, //0x0000205c movq %rax, %r13 - 0x41, 0x89, 0xde, //0x0000205f movl %ebx, %r14d - 0x4d, 0x89, 0xcf, //0x00002062 movq %r9, %r15 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002065 .p2align 4, 0x90 - //0x00002070 LBB9_74 - 0x44, 0x89, 0xf0, //0x00002070 movl %r14d, %eax - 0xc1, 0xe8, 0x0c, //0x00002073 shrl $12, %eax - 0x0c, 0xe0, //0x00002076 orb $-32, %al - 0x41, 0x88, 0x04, 0x24, //0x00002078 movb %al, (%r12) - 0x44, 0x89, 0xf0, //0x0000207c movl %r14d, %eax - 0xc1, 0xe8, 0x06, //0x0000207f shrl $6, %eax - 0x24, 0x3f, //0x00002082 andb $63, %al - 0x0c, 0x80, //0x00002084 orb $-128, %al - 0x41, 0x88, 0x44, 0x24, 0x01, //0x00002086 movb %al, $1(%r12) - 0x41, 0x80, 0xe6, 0x3f, //0x0000208b andb $63, %r14b - 0x41, 0x80, 0xce, 0x80, //0x0000208f orb $-128, %r14b - 0x45, 0x88, 0x74, 0x24, 0x02, //0x00002093 movb %r14b, $2(%r12) - 0x49, 0x83, 0xc4, 0x03, //0x00002098 addq $3, %r12 - //0x0000209c LBB9_60 - 0x4c, 0x8b, 0x45, 0xc0, //0x0000209c movq $-64(%rbp), %r8 - 0x4c, 0x8d, 0x35, 0x29, 0xee, 0x00, 0x00, //0x000020a0 leaq $60969(%rip), %r14 /* __UnquoteTab+0(%rip) */ - 0x4d, 0x85, 0xed, //0x000020a7 testq %r13, %r13 - 0x0f, 0x85, 0xe1, 0xfb, 0xff, 0xff, //0x000020aa jne LBB9_4 - 0xe9, 0x27, 0x03, 0x00, 0x00, //0x000020b0 jmp LBB9_37 - //0x000020b5 LBB9_115 - 0x89, 0xd8, //0x000020b5 movl %ebx, %eax - 0x44, 0x89, 0xf3, //0x000020b7 movl %r14d, %ebx - //0x000020ba LBB9_89 - 0xc1, 0xe3, 0x0a, //0x000020ba shll $10, %ebx - 0x89, 0xc1, //0x000020bd movl %eax, %ecx - 0x01, 0xd9, //0x000020bf addl %ebx, %ecx - 0x01, 0xd8, //0x000020c1 addl %ebx, %eax - 0x05, 0x00, 0x24, 0xa0, 0xfc, //0x000020c3 addl $-56613888, %eax - 0x89, 0xc2, //0x000020c8 movl %eax, %edx - 0xc1, 0xea, 0x12, //0x000020ca shrl $18, %edx - 0x80, 0xca, 0xf0, //0x000020cd orb $-16, %dl - 0x41, 0x88, 0x14, 0x24, //0x000020d0 movb %dl, (%r12) - 0x89, 0xc2, //0x000020d4 movl %eax, %edx - 0xc1, 0xea, 0x0c, //0x000020d6 shrl $12, %edx - 0x80, 0xe2, 0x3f, //0x000020d9 andb $63, %dl - 0x80, 0xca, 0x80, //0x000020dc orb $-128, %dl - 0x41, 0x88, 0x54, 0x24, 0x01, //0x000020df movb %dl, $1(%r12) - 0xc1, 0xe8, 0x06, //0x000020e4 shrl $6, %eax - 0x24, 0x3f, //0x000020e7 andb $63, %al - 0x0c, 0x80, //0x000020e9 orb $-128, %al - 0x41, 0x88, 0x44, 0x24, 0x02, //0x000020eb movb %al, $2(%r12) - 0x80, 0xe1, 0x3f, //0x000020f0 andb $63, %cl - 0x80, 0xc9, 0x80, //0x000020f3 orb $-128, %cl - 0x41, 0x88, 0x4c, 0x24, 0x03, //0x000020f6 movb %cl, $3(%r12) - 0x49, 0x83, 0xc4, 0x04, //0x000020fb addq $4, %r12 - //0x000020ff LBB9_90 - 0x48, 0x8b, 0x7d, 0xc8, //0x000020ff movq $-56(%rbp), %rdi - 0x48, 0x8b, 0x55, 0xa8, //0x00002103 movq $-88(%rbp), %rdx - 0x4c, 0x8b, 0x55, 0xb0, //0x00002107 movq $-80(%rbp), %r10 - 0x48, 0x8b, 0x75, 0xb8, //0x0000210b movq $-72(%rbp), %rsi - 0x4c, 0x8b, 0x45, 0xc0, //0x0000210f movq $-64(%rbp), %r8 - 0x4c, 0x8d, 0x35, 0xb6, 0xed, 0x00, 0x00, //0x00002113 leaq $60854(%rip), %r14 /* __UnquoteTab+0(%rip) */ - 0x66, 0x0f, 0x6f, 0x0d, 0x1e, 0xfb, 0xff, 0xff, //0x0000211a movdqa $-1250(%rip), %xmm1 /* LCPI9_0+0(%rip) */ - 0x4d, 0x85, 0xed, //0x00002122 testq %r13, %r13 - 0x0f, 0x85, 0x66, 0xfb, 0xff, 0xff, //0x00002125 jne LBB9_4 - 0xe9, 0xac, 0x02, 0x00, 0x00, //0x0000212b jmp LBB9_37 - //0x00002130 LBB9_70 - 0x49, 0x89, 0xc5, //0x00002130 movq %rax, %r13 - 0x41, 0x89, 0xde, //0x00002133 movl %ebx, %r14d - 0x4d, 0x89, 0xcf, //0x00002136 movq %r9, %r15 - //0x00002139 LBB9_71 - 0x44, 0x89, 0xf0, //0x00002139 movl %r14d, %eax - 0xc1, 0xe8, 0x06, //0x0000213c shrl $6, %eax - 0x0c, 0xc0, //0x0000213f orb $-64, %al - 0x41, 0x88, 0x04, 0x24, //0x00002141 movb %al, (%r12) - 0x41, 0x80, 0xe6, 0x3f, //0x00002145 andb $63, %r14b - 0x41, 0x80, 0xce, 0x80, //0x00002149 orb $-128, %r14b - 0x45, 0x88, 0x74, 0x24, 0x01, //0x0000214d movb %r14b, $1(%r12) - 0x49, 0x83, 0xc4, 0x02, //0x00002152 addq $2, %r12 - 0xe9, 0x41, 0xff, 0xff, 0xff, //0x00002156 jmp LBB9_60 - //0x0000215b LBB9_75 - 0x48, 0x89, 0x45, 0xa0, //0x0000215b movq %rax, $-96(%rbp) - 0x4d, 0x89, 0xce, //0x0000215f movq %r9, %r14 - 0x48, 0x89, 0x75, 0xb8, //0x00002162 movq %rsi, $-72(%rbp) - 0x48, 0x89, 0x55, 0xa8, //0x00002166 movq %rdx, $-88(%rbp) - 0x48, 0x89, 0x7d, 0xc8, //0x0000216a movq %rdi, $-56(%rbp) - 0x4c, 0x89, 0x55, 0xb0, //0x0000216e movq %r10, $-80(%rbp) - 0x4d, 0x85, 0xd2, //0x00002172 testq %r10, %r10 - 0x0f, 0x85, 0xc1, 0x00, 0x00, 0x00, //0x00002175 jne LBB9_76 - 0x48, 0x83, 0x7d, 0xa0, 0x06, //0x0000217b cmpq $6, $-96(%rbp) - 0x0f, 0x8c, 0xe4, 0x00, 0x00, 0x00, //0x00002180 jl LBB9_80 - //0x00002186 LBB9_82 - 0x81, 0xfb, 0xff, 0xdb, 0x00, 0x00, //0x00002186 cmpl $56319, %ebx - 0x0f, 0x87, 0xd8, 0x00, 0x00, 0x00, //0x0000218c ja LBB9_80 - 0x41, 0x80, 0x3e, 0x5c, //0x00002192 cmpb $92, (%r14) - 0x0f, 0x85, 0xce, 0x00, 0x00, 0x00, //0x00002196 jne LBB9_80 - 0x41, 0x80, 0x7e, 0x01, 0x75, //0x0000219c cmpb $117, $1(%r14) - 0x0f, 0x85, 0xc3, 0x00, 0x00, 0x00, //0x000021a1 jne LBB9_80 - 0x49, 0x8d, 0x7e, 0x02, //0x000021a7 leaq $2(%r14), %rdi - 0xe8, 0xc0, 0x03, 0x00, 0x00, //0x000021ab callq _unhex16_is - 0x84, 0xc0, //0x000021b0 testb %al, %al - 0x0f, 0x84, 0x8d, 0x02, 0x00, 0x00, //0x000021b2 je LBB9_86 - 0x4d, 0x89, 0xf7, //0x000021b8 movq %r14, %r15 - 0x41, 0x8b, 0x4e, 0x02, //0x000021bb movl $2(%r14), %ecx - 0x0f, 0xc9, //0x000021bf bswapl %ecx - 0x89, 0xc8, //0x000021c1 movl %ecx, %eax - 0xc1, 0xe8, 0x04, //0x000021c3 shrl $4, %eax - 0xf7, 0xd0, //0x000021c6 notl %eax - 0x25, 0x01, 0x01, 0x01, 0x01, //0x000021c8 andl $16843009, %eax - 0x8d, 0x04, 0xc0, //0x000021cd leal (%rax,%rax,8), %eax - 0x81, 0xe1, 0x0f, 0x0f, 0x0f, 0x0f, //0x000021d0 andl $252645135, %ecx - 0x01, 0xc1, //0x000021d6 addl %eax, %ecx - 0x89, 0xc8, //0x000021d8 movl %ecx, %eax - 0xc1, 0xe8, 0x04, //0x000021da shrl $4, %eax - 0x09, 0xc8, //0x000021dd orl %ecx, %eax - 0x49, 0x83, 0xc7, 0x06, //0x000021df addq $6, %r15 - 0x89, 0xc1, //0x000021e3 movl %eax, %ecx - 0x81, 0xe1, 0x00, 0x00, 0xfc, 0x00, //0x000021e5 andl $16515072, %ecx - 0x81, 0xf9, 0x00, 0x00, 0xdc, 0x00, //0x000021eb cmpl $14417920, %ecx - 0x0f, 0x85, 0x3b, 0x03, 0x00, 0x00, //0x000021f1 jne LBB9_117 - 0x89, 0xc1, //0x000021f7 movl %eax, %ecx - 0xc1, 0xe9, 0x08, //0x000021f9 shrl $8, %ecx - 0x81, 0xe1, 0x00, 0xff, 0x00, 0x00, //0x000021fc andl $65280, %ecx - 0x0f, 0xb6, 0xc0, //0x00002202 movzbl %al, %eax - 0x09, 0xc8, //0x00002205 orl %ecx, %eax - 0x4c, 0x8b, 0x6d, 0xa0, //0x00002207 movq $-96(%rbp), %r13 - 0x49, 0x83, 0xc5, 0xfa, //0x0000220b addq $-6, %r13 - 0xe9, 0xa6, 0xfe, 0xff, 0xff, //0x0000220f jmp LBB9_89 - //0x00002214 LBB9_100 - 0xf6, 0x45, 0xc0, 0x02, //0x00002214 testb $2, $-64(%rbp) - 0x0f, 0x84, 0x1d, 0x03, 0x00, 0x00, //0x00002218 je LBB9_101 - 0x66, 0x41, 0xc7, 0x04, 0x24, 0xef, 0xbf, //0x0000221e movw $-16401, (%r12) - 0x41, 0xc6, 0x44, 0x24, 0x02, 0xbd, //0x00002225 movb $-67, $2(%r12) - 0x49, 0x83, 0xc4, 0x03, //0x0000222b addq $3, %r12 - 0x48, 0x8b, 0x7d, 0xc8, //0x0000222f movq $-56(%rbp), %rdi - 0x48, 0x8b, 0x75, 0xb8, //0x00002233 movq $-72(%rbp), %rsi - 0xe9, 0x60, 0xfe, 0xff, 0xff, //0x00002237 jmp LBB9_60 - //0x0000223c LBB9_76 - 0x49, 0x83, 0xfd, 0x05, //0x0000223c cmpq $5, %r13 - 0x0f, 0x8c, 0x0c, 0x03, 0x00, 0x00, //0x00002240 jl LBB9_91 - 0x41, 0x80, 0x3e, 0x5c, //0x00002246 cmpb $92, (%r14) - 0x0f, 0x85, 0xee, 0x02, 0x00, 0x00, //0x0000224a jne LBB9_102 - 0x49, 0x83, 0xc5, 0xfb, //0x00002250 addq $-5, %r13 - 0x49, 0x83, 0xc7, 0x05, //0x00002254 addq $5, %r15 - 0x4c, 0x89, 0x6d, 0xa0, //0x00002258 movq %r13, $-96(%rbp) - 0x4d, 0x89, 0xfe, //0x0000225c movq %r15, %r14 - 0x48, 0x83, 0x7d, 0xa0, 0x06, //0x0000225f cmpq $6, $-96(%rbp) - 0x0f, 0x8d, 0x1c, 0xff, 0xff, 0xff, //0x00002264 jge LBB9_82 - //0x0000226a LBB9_80 - 0x4d, 0x89, 0xf7, //0x0000226a movq %r14, %r15 - //0x0000226d LBB9_81 - 0x48, 0x8b, 0x45, 0xb0, //0x0000226d movq $-80(%rbp), %rax - 0x48, 0x03, 0x45, 0xc8, //0x00002271 addq $-56(%rbp), %rax - 0x49, 0x29, 0xc7, //0x00002275 subq %rax, %r15 - //0x00002278 LBB9_118 - 0x49, 0x83, 0xc7, 0xfc, //0x00002278 addq $-4, %r15 - 0x48, 0x8b, 0x45, 0xd0, //0x0000227c movq $-48(%rbp), %rax - 0x4c, 0x89, 0x38, //0x00002280 movq %r15, (%rax) - //0x00002283 LBB9_119 - 0x49, 0xc7, 0xc4, 0xfc, 0xff, 0xff, 0xff, //0x00002283 movq $-4, %r12 - 0xe9, 0x0c, 0x00, 0x00, 0x00, //0x0000228a jmp LBB9_120 - //0x0000228f LBB9_1 - 0x45, 0x31, 0xed, //0x0000228f xorl %r13d, %r13d - 0x49, 0x89, 0xd4, //0x00002292 movq %rdx, %r12 - //0x00002295 LBB9_2 - 0x4d, 0x01, 0xec, //0x00002295 addq %r13, %r12 - 0x49, 0x29, 0xd4, //0x00002298 subq %rdx, %r12 - //0x0000229b LBB9_120 - 0x4c, 0x89, 0xe0, //0x0000229b movq %r12, %rax - 0x48, 0x83, 0xc4, 0x38, //0x0000229e addq $56, %rsp - 0x5b, //0x000022a2 popq %rbx - 0x41, 0x5c, //0x000022a3 popq %r12 - 0x41, 0x5d, //0x000022a5 popq %r13 - 0x41, 0x5e, //0x000022a7 popq %r14 - 0x41, 0x5f, //0x000022a9 popq %r15 - 0x5d, //0x000022ab popq %rbp - 0xc3, //0x000022ac retq - //0x000022ad LBB9_43 - 0x4c, 0x89, 0xf8, //0x000022ad movq %r15, %rax - 0x48, 0x29, 0xf8, //0x000022b0 subq %rdi, %rax - 0x48, 0x8b, 0x75, 0xd0, //0x000022b3 movq $-48(%rbp), %rsi - 0x48, 0x89, 0x06, //0x000022b7 movq %rax, (%rsi) - 0x41, 0x8a, 0x0f, //0x000022ba movb (%r15), %cl - 0x8d, 0x51, 0xd0, //0x000022bd leal $-48(%rcx), %edx - 0x80, 0xfa, 0x0a, //0x000022c0 cmpb $10, %dl - 0x0f, 0x82, 0x2a, 0x00, 0x00, 0x00, //0x000022c3 jb LBB9_46 - 0x49, 0xc7, 0xc4, 0xfe, 0xff, 0xff, 0xff, //0x000022c9 movq $-2, %r12 - 0x80, 0xc1, 0xbf, //0x000022d0 addb $-65, %cl - 0x80, 0xf9, 0x25, //0x000022d3 cmpb $37, %cl - 0x0f, 0x87, 0xbf, 0xff, 0xff, 0xff, //0x000022d6 ja LBB9_120 - 0x0f, 0xb6, 0xc9, //0x000022dc movzbl %cl, %ecx - 0x48, 0xba, 0x3f, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, //0x000022df movabsq $270582939711, %rdx - 0x48, 0x0f, 0xa3, 0xca, //0x000022e9 btq %rcx, %rdx - 0x0f, 0x83, 0xa8, 0xff, 0xff, 0xff, //0x000022ed jae LBB9_120 - //0x000022f3 LBB9_46 - 0x48, 0x8d, 0x48, 0x01, //0x000022f3 leaq $1(%rax), %rcx - 0x48, 0x89, 0x0e, //0x000022f7 movq %rcx, (%rsi) - 0x41, 0x8a, 0x4f, 0x01, //0x000022fa movb $1(%r15), %cl - 0x8d, 0x51, 0xd0, //0x000022fe leal $-48(%rcx), %edx - 0x80, 0xfa, 0x09, //0x00002301 cmpb $9, %dl - 0x0f, 0x86, 0x2a, 0x00, 0x00, 0x00, //0x00002304 jbe LBB9_49 - 0x49, 0xc7, 0xc4, 0xfe, 0xff, 0xff, 0xff, //0x0000230a movq $-2, %r12 - 0x80, 0xc1, 0xbf, //0x00002311 addb $-65, %cl - 0x80, 0xf9, 0x25, //0x00002314 cmpb $37, %cl - 0x0f, 0x87, 0x7e, 0xff, 0xff, 0xff, //0x00002317 ja LBB9_120 - 0x0f, 0xb6, 0xc9, //0x0000231d movzbl %cl, %ecx - 0x48, 0xba, 0x3f, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, //0x00002320 movabsq $270582939711, %rdx - 0x48, 0x0f, 0xa3, 0xca, //0x0000232a btq %rcx, %rdx - 0x0f, 0x83, 0x67, 0xff, 0xff, 0xff, //0x0000232e jae LBB9_120 - //0x00002334 LBB9_49 - 0x48, 0x8d, 0x48, 0x02, //0x00002334 leaq $2(%rax), %rcx - 0x48, 0x89, 0x0e, //0x00002338 movq %rcx, (%rsi) - 0x41, 0x8a, 0x4f, 0x02, //0x0000233b movb $2(%r15), %cl - 0x8d, 0x51, 0xd0, //0x0000233f leal $-48(%rcx), %edx - 0x80, 0xfa, 0x0a, //0x00002342 cmpb $10, %dl - 0x0f, 0x82, 0x2a, 0x00, 0x00, 0x00, //0x00002345 jb LBB9_52 - 0x49, 0xc7, 0xc4, 0xfe, 0xff, 0xff, 0xff, //0x0000234b movq $-2, %r12 - 0x80, 0xc1, 0xbf, //0x00002352 addb $-65, %cl - 0x80, 0xf9, 0x25, //0x00002355 cmpb $37, %cl - 0x0f, 0x87, 0x3d, 0xff, 0xff, 0xff, //0x00002358 ja LBB9_120 - 0x0f, 0xb6, 0xc9, //0x0000235e movzbl %cl, %ecx - 0x48, 0xba, 0x3f, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, //0x00002361 movabsq $270582939711, %rdx - 0x48, 0x0f, 0xa3, 0xca, //0x0000236b btq %rcx, %rdx - 0x0f, 0x83, 0x26, 0xff, 0xff, 0xff, //0x0000236f jae LBB9_120 - //0x00002375 LBB9_52 - 0x48, 0x8d, 0x48, 0x03, //0x00002375 leaq $3(%rax), %rcx - 0x48, 0x89, 0x0e, //0x00002379 movq %rcx, (%rsi) - 0x41, 0x8a, 0x4f, 0x03, //0x0000237c movb $3(%r15), %cl - 0x8d, 0x51, 0xd0, //0x00002380 leal $-48(%rcx), %edx - 0x80, 0xfa, 0x0a, //0x00002383 cmpb $10, %dl - 0x0f, 0x82, 0x2a, 0x00, 0x00, 0x00, //0x00002386 jb LBB9_56 - //0x0000238c LBB9_54 - 0x49, 0xc7, 0xc4, 0xfe, 0xff, 0xff, 0xff, //0x0000238c movq $-2, %r12 - 0x80, 0xc1, 0xbf, //0x00002393 addb $-65, %cl - 0x80, 0xf9, 0x25, //0x00002396 cmpb $37, %cl - 0x0f, 0x87, 0xfc, 0xfe, 0xff, 0xff, //0x00002399 ja LBB9_120 - 0x0f, 0xb6, 0xc9, //0x0000239f movzbl %cl, %ecx - 0x48, 0xba, 0x3f, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, //0x000023a2 movabsq $270582939711, %rdx - 0x48, 0x0f, 0xa3, 0xca, //0x000023ac btq %rcx, %rdx - 0x0f, 0x83, 0xe5, 0xfe, 0xff, 0xff, //0x000023b0 jae LBB9_120 - //0x000023b6 LBB9_56 - 0x48, 0x83, 0xc0, 0x04, //0x000023b6 addq $4, %rax - 0x48, 0x89, 0x06, //0x000023ba movq %rax, (%rsi) - 0x49, 0xc7, 0xc4, 0xfe, 0xff, 0xff, 0xff, //0x000023bd movq $-2, %r12 - 0xe9, 0xd2, 0xfe, 0xff, 0xff, //0x000023c4 jmp LBB9_120 - //0x000023c9 LBB9_19 - 0x48, 0x8b, 0x45, 0xd0, //0x000023c9 movq $-48(%rbp), %rax - 0x48, 0x89, 0x30, //0x000023cd movq %rsi, (%rax) - 0x49, 0xc7, 0xc4, 0xff, 0xff, 0xff, 0xff, //0x000023d0 movq $-1, %r12 - 0xe9, 0xbf, 0xfe, 0xff, 0xff, //0x000023d7 jmp LBB9_120 - //0x000023dc LBB9_37 - 0x45, 0x31, 0xed, //0x000023dc xorl %r13d, %r13d - 0xe9, 0xb1, 0xfe, 0xff, 0xff, //0x000023df jmp LBB9_2 - //0x000023e4 LBB9_34 - 0x48, 0xf7, 0xd7, //0x000023e4 notq %rdi - 0x49, 0x01, 0xff, //0x000023e7 addq %rdi, %r15 - 0x48, 0x8b, 0x45, 0xd0, //0x000023ea movq $-48(%rbp), %rax - 0x4c, 0x89, 0x38, //0x000023ee movq %r15, (%rax) - 0x49, 0xc7, 0xc4, 0xfd, 0xff, 0xff, 0xff, //0x000023f1 movq $-3, %r12 - 0xe9, 0x9e, 0xfe, 0xff, 0xff, //0x000023f8 jmp LBB9_120 - //0x000023fd LBB9_23 - 0x48, 0xf7, 0xd7, //0x000023fd notq %rdi - 0x49, 0x01, 0xff, //0x00002400 addq %rdi, %r15 - //0x00002403 LBB9_24 - 0x48, 0x8b, 0x45, 0xd0, //0x00002403 movq $-48(%rbp), %rax - 0x4c, 0x89, 0x38, //0x00002407 movq %r15, (%rax) - 0x49, 0xc7, 0xc4, 0xfe, 0xff, 0xff, 0xff, //0x0000240a movq $-2, %r12 - 0xe9, 0x85, 0xfe, 0xff, 0xff, //0x00002411 jmp LBB9_120 - //0x00002416 LBB9_29 - 0x49, 0x29, 0xff, //0x00002416 subq %rdi, %r15 - 0x49, 0x83, 0xc7, 0x01, //0x00002419 addq $1, %r15 - 0xe9, 0xe1, 0xff, 0xff, 0xff, //0x0000241d jmp LBB9_24 - //0x00002422 LBB9_67 - 0xf6, 0x45, 0xc0, 0x02, //0x00002422 testb $2, $-64(%rbp) - 0x0f, 0x84, 0x26, 0x01, 0x00, 0x00, //0x00002426 je LBB9_91 - 0x66, 0x41, 0xc7, 0x04, 0x24, 0xef, 0xbf, //0x0000242c movw $-16401, (%r12) - 0x41, 0xc6, 0x44, 0x24, 0x02, 0xbd, //0x00002433 movb $-67, $2(%r12) - 0x49, 0x83, 0xc4, 0x03, //0x00002439 addq $3, %r12 - 0x45, 0x31, 0xed, //0x0000243d xorl %r13d, %r13d - 0xe9, 0x50, 0xfe, 0xff, 0xff, //0x00002440 jmp LBB9_2 - //0x00002445 LBB9_86 - 0x4d, 0x89, 0xf7, //0x00002445 movq %r14, %r15 - //0x00002448 LBB9_104 - 0x4c, 0x89, 0xf8, //0x00002448 movq %r15, %rax - 0x48, 0x2b, 0x45, 0xc8, //0x0000244b subq $-56(%rbp), %rax - 0x48, 0x83, 0xc0, 0x02, //0x0000244f addq $2, %rax - 0x48, 0x8b, 0x75, 0xd0, //0x00002453 movq $-48(%rbp), %rsi - 0x48, 0x89, 0x06, //0x00002457 movq %rax, (%rsi) - 0x41, 0x8a, 0x4f, 0x02, //0x0000245a movb $2(%r15), %cl - 0x8d, 0x51, 0xd0, //0x0000245e leal $-48(%rcx), %edx - 0x80, 0xfa, 0x0a, //0x00002461 cmpb $10, %dl - 0x0f, 0x82, 0x2a, 0x00, 0x00, 0x00, //0x00002464 jb LBB9_107 - 0x49, 0xc7, 0xc4, 0xfe, 0xff, 0xff, 0xff, //0x0000246a movq $-2, %r12 - 0x80, 0xc1, 0xbf, //0x00002471 addb $-65, %cl - 0x80, 0xf9, 0x25, //0x00002474 cmpb $37, %cl - 0x0f, 0x87, 0x1e, 0xfe, 0xff, 0xff, //0x00002477 ja LBB9_120 - 0x0f, 0xb6, 0xc9, //0x0000247d movzbl %cl, %ecx - 0x48, 0xba, 0x3f, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, //0x00002480 movabsq $270582939711, %rdx - 0x48, 0x0f, 0xa3, 0xca, //0x0000248a btq %rcx, %rdx - 0x0f, 0x83, 0x07, 0xfe, 0xff, 0xff, //0x0000248e jae LBB9_120 - //0x00002494 LBB9_107 - 0x48, 0x8d, 0x48, 0x01, //0x00002494 leaq $1(%rax), %rcx - 0x48, 0x89, 0x0e, //0x00002498 movq %rcx, (%rsi) - 0x41, 0x8a, 0x4f, 0x03, //0x0000249b movb $3(%r15), %cl - 0x8d, 0x51, 0xd0, //0x0000249f leal $-48(%rcx), %edx - 0x80, 0xfa, 0x09, //0x000024a2 cmpb $9, %dl - 0x0f, 0x86, 0x2a, 0x00, 0x00, 0x00, //0x000024a5 jbe LBB9_110 - 0x49, 0xc7, 0xc4, 0xfe, 0xff, 0xff, 0xff, //0x000024ab movq $-2, %r12 - 0x80, 0xc1, 0xbf, //0x000024b2 addb $-65, %cl - 0x80, 0xf9, 0x25, //0x000024b5 cmpb $37, %cl - 0x0f, 0x87, 0xdd, 0xfd, 0xff, 0xff, //0x000024b8 ja LBB9_120 - 0x0f, 0xb6, 0xc9, //0x000024be movzbl %cl, %ecx - 0x48, 0xba, 0x3f, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, //0x000024c1 movabsq $270582939711, %rdx - 0x48, 0x0f, 0xa3, 0xca, //0x000024cb btq %rcx, %rdx - 0x0f, 0x83, 0xc6, 0xfd, 0xff, 0xff, //0x000024cf jae LBB9_120 - //0x000024d5 LBB9_110 - 0x48, 0x8d, 0x48, 0x02, //0x000024d5 leaq $2(%rax), %rcx - 0x48, 0x89, 0x0e, //0x000024d9 movq %rcx, (%rsi) - 0x41, 0x8a, 0x4f, 0x04, //0x000024dc movb $4(%r15), %cl - 0x8d, 0x51, 0xd0, //0x000024e0 leal $-48(%rcx), %edx - 0x80, 0xfa, 0x0a, //0x000024e3 cmpb $10, %dl - 0x0f, 0x82, 0x2a, 0x00, 0x00, 0x00, //0x000024e6 jb LBB9_113 - 0x49, 0xc7, 0xc4, 0xfe, 0xff, 0xff, 0xff, //0x000024ec movq $-2, %r12 - 0x80, 0xc1, 0xbf, //0x000024f3 addb $-65, %cl - 0x80, 0xf9, 0x25, //0x000024f6 cmpb $37, %cl - 0x0f, 0x87, 0x9c, 0xfd, 0xff, 0xff, //0x000024f9 ja LBB9_120 - 0x0f, 0xb6, 0xc9, //0x000024ff movzbl %cl, %ecx - 0x48, 0xba, 0x3f, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, //0x00002502 movabsq $270582939711, %rdx - 0x48, 0x0f, 0xa3, 0xca, //0x0000250c btq %rcx, %rdx - 0x0f, 0x83, 0x85, 0xfd, 0xff, 0xff, //0x00002510 jae LBB9_120 - //0x00002516 LBB9_113 - 0x48, 0x8d, 0x48, 0x03, //0x00002516 leaq $3(%rax), %rcx - 0x48, 0x89, 0x0e, //0x0000251a movq %rcx, (%rsi) - 0x41, 0x8a, 0x4f, 0x05, //0x0000251d movb $5(%r15), %cl - 0x8d, 0x51, 0xd0, //0x00002521 leal $-48(%rcx), %edx - 0x80, 0xfa, 0x0a, //0x00002524 cmpb $10, %dl - 0x0f, 0x83, 0x5f, 0xfe, 0xff, 0xff, //0x00002527 jae LBB9_54 - 0xe9, 0x84, 0xfe, 0xff, 0xff, //0x0000252d jmp LBB9_56 - //0x00002532 LBB9_117 - 0x4c, 0x2b, 0x7d, 0xc8, //0x00002532 subq $-56(%rbp), %r15 - 0xe9, 0x3d, 0xfd, 0xff, 0xff, //0x00002536 jmp LBB9_118 - //0x0000253b LBB9_101 - 0x4d, 0x89, 0xfe, //0x0000253b movq %r15, %r14 - //0x0000253e LBB9_102 - 0x4c, 0x2b, 0x75, 0xc8, //0x0000253e subq $-56(%rbp), %r14 - 0x49, 0x83, 0xc6, 0xfc, //0x00002542 addq $-4, %r14 - 0x48, 0x8b, 0x45, 0xd0, //0x00002546 movq $-48(%rbp), %rax - 0x4c, 0x89, 0x30, //0x0000254a movq %r14, (%rax) - 0xe9, 0x31, 0xfd, 0xff, 0xff, //0x0000254d jmp LBB9_119 - //0x00002552 LBB9_91 - 0x48, 0x8b, 0x45, 0xd0, //0x00002552 movq $-48(%rbp), %rax - 0x48, 0x8b, 0x4d, 0xb8, //0x00002556 movq $-72(%rbp), %rcx - 0x48, 0x89, 0x08, //0x0000255a movq %rcx, (%rax) - 0x49, 0xc7, 0xc4, 0xff, 0xff, 0xff, 0xff, //0x0000255d movq $-1, %r12 - 0xe9, 0x32, 0xfd, 0xff, 0xff, //0x00002564 jmp LBB9_120 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002569 .p2align 4, 0x90 - //0x00002570 _unhex16_is - 0x55, //0x00002570 pushq %rbp - 0x48, 0x89, 0xe5, //0x00002571 movq %rsp, %rbp - 0x8b, 0x07, //0x00002574 movl (%rdi), %eax - 0x89, 0xc1, //0x00002576 movl %eax, %ecx - 0xf7, 0xd1, //0x00002578 notl %ecx - 0x8d, 0x90, 0xd0, 0xcf, 0xcf, 0xcf, //0x0000257a leal $-808464432(%rax), %edx - 0x81, 0xe1, 0x80, 0x80, 0x80, 0x80, //0x00002580 andl $-2139062144, %ecx - 0x85, 0xd1, //0x00002586 testl %edx, %ecx - 0x0f, 0x84, 0x07, 0x00, 0x00, 0x00, //0x00002588 je LBB10_2 - 0x31, 0xc0, //0x0000258e xorl %eax, %eax - 0x0f, 0xb6, 0xc0, //0x00002590 movzbl %al, %eax - 0x5d, //0x00002593 popq %rbp - 0xc3, //0x00002594 retq - //0x00002595 LBB10_2 - 0x8d, 0x90, 0x19, 0x19, 0x19, 0x19, //0x00002595 leal $421075225(%rax), %edx - 0x09, 0xc2, //0x0000259b orl %eax, %edx - 0xf7, 0xc2, 0x80, 0x80, 0x80, 0x80, //0x0000259d testl $-2139062144, %edx - 0x0f, 0x84, 0x07, 0x00, 0x00, 0x00, //0x000025a3 je LBB10_4 - 0x31, 0xc0, //0x000025a9 xorl %eax, %eax - 0x0f, 0xb6, 0xc0, //0x000025ab movzbl %al, %eax - 0x5d, //0x000025ae popq %rbp - 0xc3, //0x000025af retq - //0x000025b0 LBB10_4 - 0x25, 0x7f, 0x7f, 0x7f, 0x7f, //0x000025b0 andl $2139062143, %eax - 0xba, 0xc0, 0xc0, 0xc0, 0xc0, //0x000025b5 movl $-1061109568, %edx - 0x29, 0xc2, //0x000025ba subl %eax, %edx - 0x8d, 0xb0, 0x46, 0x46, 0x46, 0x46, //0x000025bc leal $1179010630(%rax), %esi - 0x21, 0xca, //0x000025c2 andl %ecx, %edx - 0x85, 0xf2, //0x000025c4 testl %esi, %edx - 0x0f, 0x84, 0x07, 0x00, 0x00, 0x00, //0x000025c6 je LBB10_6 - 0x31, 0xc0, //0x000025cc xorl %eax, %eax - 0x0f, 0xb6, 0xc0, //0x000025ce movzbl %al, %eax - 0x5d, //0x000025d1 popq %rbp - 0xc3, //0x000025d2 retq - //0x000025d3 LBB10_6 - 0xba, 0xe0, 0xe0, 0xe0, 0xe0, //0x000025d3 movl $-522133280, %edx - 0x29, 0xc2, //0x000025d8 subl %eax, %edx - 0x05, 0x39, 0x39, 0x39, 0x39, //0x000025da addl $960051513, %eax - 0x21, 0xd1, //0x000025df andl %edx, %ecx - 0x85, 0xc1, //0x000025e1 testl %eax, %ecx - 0x0f, 0x94, 0xc0, //0x000025e3 sete %al - 0x0f, 0xb6, 0xc0, //0x000025e6 movzbl %al, %eax - 0x5d, //0x000025e9 popq %rbp - 0xc3, //0x000025ea retq - 0x00, 0x00, 0x00, 0x00, 0x00, //0x000025eb .p2align 4, 0x00 - //0x000025f0 LCPI11_0 - 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, //0x000025f0 QUAD $0x2626262626262626; QUAD $0x2626262626262626 // .space 16, '&&&&&&&&&&&&&&&&' - //0x00002600 LCPI11_1 - 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, //0x00002600 QUAD $0xe2e2e2e2e2e2e2e2; QUAD $0xe2e2e2e2e2e2e2e2 // .space 16, '\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2' - //0x00002610 LCPI11_2 - 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, //0x00002610 QUAD $0xfdfdfdfdfdfdfdfd; QUAD $0xfdfdfdfdfdfdfdfd // .space 16, '\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd' - //0x00002620 LCPI11_3 - 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, //0x00002620 QUAD $0x3c3c3c3c3c3c3c3c; QUAD $0x3c3c3c3c3c3c3c3c // .space 16, '<<<<<<<<<<<<<<<<' - //0x00002630 .p2align 4, 0x90 - //0x00002630 _html_escape - 0x55, //0x00002630 pushq %rbp - 0x48, 0x89, 0xe5, //0x00002631 movq %rsp, %rbp - 0x41, 0x57, //0x00002634 pushq %r15 - 0x41, 0x56, //0x00002636 pushq %r14 - 0x41, 0x55, //0x00002638 pushq %r13 - 0x41, 0x54, //0x0000263a pushq %r12 - 0x53, //0x0000263c pushq %rbx - 0x48, 0x83, 0xec, 0x10, //0x0000263d subq $16, %rsp - 0x48, 0x89, 0x4d, 0xc8, //0x00002641 movq %rcx, $-56(%rbp) - 0x49, 0x89, 0xd6, //0x00002645 movq %rdx, %r14 - 0x48, 0x89, 0x55, 0xd0, //0x00002648 movq %rdx, $-48(%rbp) - 0x48, 0x89, 0xf8, //0x0000264c movq %rdi, %rax - 0x48, 0x85, 0xf6, //0x0000264f testq %rsi, %rsi - 0x0f, 0x8e, 0xb2, 0x04, 0x00, 0x00, //0x00002652 jle LBB11_70 - 0x48, 0x8b, 0x45, 0xc8, //0x00002658 movq $-56(%rbp), %rax - 0x4c, 0x8b, 0x08, //0x0000265c movq (%rax), %r9 - 0x66, 0x0f, 0x6f, 0x05, 0x89, 0xff, 0xff, 0xff, //0x0000265f movdqa $-119(%rip), %xmm0 /* LCPI11_0+0(%rip) */ - 0x66, 0x0f, 0x6f, 0x0d, 0x91, 0xff, 0xff, 0xff, //0x00002667 movdqa $-111(%rip), %xmm1 /* LCPI11_1+0(%rip) */ - 0x66, 0x0f, 0x6f, 0x15, 0x99, 0xff, 0xff, 0xff, //0x0000266f movdqa $-103(%rip), %xmm2 /* LCPI11_2+0(%rip) */ - 0x66, 0x0f, 0x6f, 0x1d, 0xa1, 0xff, 0xff, 0xff, //0x00002677 movdqa $-95(%rip), %xmm3 /* LCPI11_3+0(%rip) */ - 0x4c, 0x8d, 0x1d, 0x4a, 0xe9, 0x00, 0x00, //0x0000267f leaq $59722(%rip), %r11 /* __HtmlQuoteTab+0(%rip) */ - 0x49, 0x89, 0xfc, //0x00002686 movq %rdi, %r12 - 0x4c, 0x8b, 0x75, 0xd0, //0x00002689 movq $-48(%rbp), %r14 - 0x90, 0x90, 0x90, //0x0000268d .p2align 4, 0x90 - //0x00002690 LBB11_2 - 0x4d, 0x85, 0xc9, //0x00002690 testq %r9, %r9 - 0x0f, 0x8e, 0x8f, 0x04, 0x00, 0x00, //0x00002693 jle LBB11_3 - 0x48, 0x83, 0xfe, 0x10, //0x00002699 cmpq $16, %rsi - 0x0f, 0x9d, 0xc0, //0x0000269d setge %al - 0x4d, 0x89, 0xcd, //0x000026a0 movq %r9, %r13 - 0x4d, 0x89, 0xf0, //0x000026a3 movq %r14, %r8 - 0x48, 0x89, 0xf1, //0x000026a6 movq %rsi, %rcx - 0x4d, 0x89, 0xe7, //0x000026a9 movq %r12, %r15 - 0x0f, 0x8c, 0x86, 0x00, 0x00, 0x00, //0x000026ac jl LBB11_12 - 0x49, 0x83, 0xf9, 0x10, //0x000026b2 cmpq $16, %r9 - 0x0f, 0x8c, 0x7c, 0x00, 0x00, 0x00, //0x000026b6 jl LBB11_12 - 0x45, 0x31, 0xc0, //0x000026bc xorl %r8d, %r8d - 0x48, 0x89, 0xf3, //0x000026bf movq %rsi, %rbx - 0x4c, 0x89, 0xca, //0x000026c2 movq %r9, %rdx - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000026c5 .p2align 4, 0x90 - //0x000026d0 LBB11_7 - 0xf3, 0x43, 0x0f, 0x6f, 0x24, 0x04, //0x000026d0 movdqu (%r12,%r8), %xmm4 - 0x66, 0x0f, 0x6f, 0xec, //0x000026d6 movdqa %xmm4, %xmm5 - 0x66, 0x0f, 0x6f, 0xf4, //0x000026da movdqa %xmm4, %xmm6 - 0xf3, 0x43, 0x0f, 0x7f, 0x24, 0x06, //0x000026de movdqu %xmm4, (%r14,%r8) - 0x66, 0x0f, 0x74, 0xe0, //0x000026e4 pcmpeqb %xmm0, %xmm4 - 0x66, 0x0f, 0x74, 0xe9, //0x000026e8 pcmpeqb %xmm1, %xmm5 - 0x66, 0x0f, 0xeb, 0xec, //0x000026ec por %xmm4, %xmm5 - 0x66, 0x0f, 0xdb, 0xf2, //0x000026f0 pand %xmm2, %xmm6 - 0x66, 0x0f, 0x74, 0xf3, //0x000026f4 pcmpeqb %xmm3, %xmm6 - 0x66, 0x0f, 0xeb, 0xf5, //0x000026f8 por %xmm5, %xmm6 - 0x66, 0x0f, 0xd7, 0xc6, //0x000026fc pmovmskb %xmm6, %eax - 0x85, 0xc0, //0x00002700 testl %eax, %eax - 0x0f, 0x85, 0x58, 0x01, 0x00, 0x00, //0x00002702 jne LBB11_8 - 0x48, 0x8d, 0x4b, 0xf0, //0x00002708 leaq $-16(%rbx), %rcx - 0x4c, 0x8d, 0x6a, 0xf0, //0x0000270c leaq $-16(%rdx), %r13 - 0x49, 0x83, 0xc0, 0x10, //0x00002710 addq $16, %r8 - 0x48, 0x83, 0xfb, 0x20, //0x00002714 cmpq $32, %rbx - 0x0f, 0x9d, 0xc0, //0x00002718 setge %al - 0x0f, 0x8c, 0x10, 0x00, 0x00, 0x00, //0x0000271b jl LBB11_11 - 0x48, 0x89, 0xcb, //0x00002721 movq %rcx, %rbx - 0x48, 0x83, 0xfa, 0x1f, //0x00002724 cmpq $31, %rdx - 0x4c, 0x89, 0xea, //0x00002728 movq %r13, %rdx - 0x0f, 0x8f, 0x9f, 0xff, 0xff, 0xff, //0x0000272b jg LBB11_7 - //0x00002731 LBB11_11 - 0x4f, 0x8d, 0x3c, 0x04, //0x00002731 leaq (%r12,%r8), %r15 - 0x4d, 0x01, 0xf0, //0x00002735 addq %r14, %r8 - //0x00002738 LBB11_12 - 0x84, 0xc0, //0x00002738 testb %al, %al - 0x0f, 0x84, 0x70, 0x00, 0x00, 0x00, //0x0000273a je LBB11_13 - 0xf3, 0x41, 0x0f, 0x6f, 0x27, //0x00002740 movdqu (%r15), %xmm4 - 0x66, 0x0f, 0x6f, 0xec, //0x00002745 movdqa %xmm4, %xmm5 - 0x66, 0x0f, 0x74, 0xe8, //0x00002749 pcmpeqb %xmm0, %xmm5 - 0x66, 0x0f, 0x6f, 0xf4, //0x0000274d movdqa %xmm4, %xmm6 - 0x66, 0x0f, 0x74, 0xf1, //0x00002751 pcmpeqb %xmm1, %xmm6 - 0x66, 0x0f, 0xeb, 0xf5, //0x00002755 por %xmm5, %xmm6 - 0x66, 0x48, 0x0f, 0x7e, 0xe0, //0x00002759 movq %xmm4, %rax - 0x66, 0x0f, 0xdb, 0xe2, //0x0000275e pand %xmm2, %xmm4 - 0x66, 0x0f, 0x74, 0xe3, //0x00002762 pcmpeqb %xmm3, %xmm4 - 0x66, 0x0f, 0xeb, 0xe6, //0x00002766 por %xmm6, %xmm4 - 0x66, 0x0f, 0xd7, 0xcc, //0x0000276a pmovmskb %xmm4, %ecx - 0x81, 0xc9, 0x00, 0x00, 0x01, 0x00, //0x0000276e orl $65536, %ecx - 0x44, 0x0f, 0xbc, 0xd1, //0x00002774 bsfl %ecx, %r10d - 0x4d, 0x39, 0xd5, //0x00002778 cmpq %r10, %r13 - 0x0f, 0x8d, 0xf8, 0x00, 0x00, 0x00, //0x0000277b jge LBB11_24 - 0x49, 0x83, 0xfd, 0x08, //0x00002781 cmpq $8, %r13 - 0x0f, 0x82, 0x31, 0x01, 0x00, 0x00, //0x00002785 jb LBB11_35 - 0x49, 0x89, 0x00, //0x0000278b movq %rax, (%r8) - 0x4d, 0x8d, 0x57, 0x08, //0x0000278e leaq $8(%r15), %r10 - 0x49, 0x83, 0xc0, 0x08, //0x00002792 addq $8, %r8 - 0x49, 0x8d, 0x5d, 0xf8, //0x00002796 leaq $-8(%r13), %rbx - 0x48, 0x83, 0xfb, 0x04, //0x0000279a cmpq $4, %rbx - 0x0f, 0x8d, 0x28, 0x01, 0x00, 0x00, //0x0000279e jge LBB11_38 - 0xe9, 0x35, 0x01, 0x00, 0x00, //0x000027a4 jmp LBB11_39 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000027a9 .p2align 4, 0x90 - //0x000027b0 LBB11_13 - 0x48, 0x85, 0xc9, //0x000027b0 testq %rcx, %rcx - 0x0f, 0x8e, 0x87, 0x00, 0x00, 0x00, //0x000027b3 jle LBB11_21 - 0x4d, 0x85, 0xed, //0x000027b9 testq %r13, %r13 - 0x0f, 0x8e, 0x7e, 0x00, 0x00, 0x00, //0x000027bc jle LBB11_21 - 0x31, 0xd2, //0x000027c2 xorl %edx, %edx - 0x31, 0xc0, //0x000027c4 xorl %eax, %eax - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000027c6 .p2align 4, 0x90 - //0x000027d0 LBB11_16 - 0x45, 0x0f, 0xb6, 0x1c, 0x17, //0x000027d0 movzbl (%r15,%rdx), %r11d - 0x49, 0x83, 0xfb, 0x3e, //0x000027d5 cmpq $62, %r11 - 0x0f, 0x87, 0x14, 0x00, 0x00, 0x00, //0x000027d9 ja LBB11_17 - 0x48, 0xbb, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x50, //0x000027df movabsq $5764607797912141824, %rbx - 0x4c, 0x0f, 0xa3, 0xdb, //0x000027e9 btq %r11, %rbx - 0x0f, 0x82, 0xae, 0x00, 0x00, 0x00, //0x000027ed jb LBB11_45 - //0x000027f3 LBB11_17 - 0x41, 0x80, 0xfb, 0xe2, //0x000027f3 cmpb $-30, %r11b - 0x0f, 0x84, 0xa4, 0x00, 0x00, 0x00, //0x000027f7 je LBB11_45 - 0x4c, 0x8d, 0x14, 0x01, //0x000027fd leaq (%rcx,%rax), %r10 - 0x45, 0x88, 0x1c, 0x10, //0x00002801 movb %r11b, (%r8,%rdx) - 0x48, 0x8d, 0x58, 0xff, //0x00002805 leaq $-1(%rax), %rbx - 0x49, 0x83, 0xfa, 0x02, //0x00002809 cmpq $2, %r10 - 0x0f, 0x8c, 0x14, 0x00, 0x00, 0x00, //0x0000280d jl LBB11_20 - 0x4c, 0x01, 0xe8, //0x00002813 addq %r13, %rax - 0x48, 0x83, 0xc2, 0x01, //0x00002816 addq $1, %rdx - 0x48, 0x83, 0xf8, 0x01, //0x0000281a cmpq $1, %rax - 0x48, 0x89, 0xd8, //0x0000281e movq %rbx, %rax - 0x0f, 0x8f, 0xa9, 0xff, 0xff, 0xff, //0x00002821 jg LBB11_16 - //0x00002827 LBB11_20 - 0x49, 0x29, 0xdf, //0x00002827 subq %rbx, %r15 - 0x48, 0x01, 0xd9, //0x0000282a addq %rbx, %rcx - 0x4c, 0x8d, 0x1d, 0x9c, 0xe7, 0x00, 0x00, //0x0000282d leaq $59292(%rip), %r11 /* __HtmlQuoteTab+0(%rip) */ - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002834 .p2align 4, 0x90 - //0x00002840 LBB11_21 - 0x48, 0x85, 0xc9, //0x00002840 testq %rcx, %rcx - 0x0f, 0x84, 0x5e, 0x01, 0x00, 0x00, //0x00002843 je LBB11_22 - 0x49, 0xf7, 0xd7, //0x00002849 notq %r15 - 0x4d, 0x01, 0xe7, //0x0000284c addq %r12, %r15 - 0x4d, 0x85, 0xff, //0x0000284f testq %r15, %r15 - 0x0f, 0x89, 0x68, 0x01, 0x00, 0x00, //0x00002852 jns LBB11_49 - 0xe9, 0x88, 0x02, 0x00, 0x00, //0x00002858 jmp LBB11_48 - 0x90, 0x90, 0x90, //0x0000285d .p2align 4, 0x90 - //0x00002860 LBB11_8 - 0x66, 0x0f, 0xbc, 0xc0, //0x00002860 bsfw %ax, %ax - 0x44, 0x0f, 0xb7, 0xf8, //0x00002864 movzwl %ax, %r15d - 0x4d, 0x01, 0xc7, //0x00002868 addq %r8, %r15 - 0x4d, 0x85, 0xff, //0x0000286b testq %r15, %r15 - 0x0f, 0x89, 0x4c, 0x01, 0x00, 0x00, //0x0000286e jns LBB11_49 - 0xe9, 0x6c, 0x02, 0x00, 0x00, //0x00002874 jmp LBB11_48 - //0x00002879 LBB11_24 - 0x41, 0x83, 0xfa, 0x08, //0x00002879 cmpl $8, %r10d - 0x0f, 0x82, 0x8e, 0x00, 0x00, 0x00, //0x0000287d jb LBB11_25 - 0x49, 0x89, 0x00, //0x00002883 movq %rax, (%r8) - 0x4d, 0x8d, 0x6f, 0x08, //0x00002886 leaq $8(%r15), %r13 - 0x49, 0x83, 0xc0, 0x08, //0x0000288a addq $8, %r8 - 0x49, 0x8d, 0x5a, 0xf8, //0x0000288e leaq $-8(%r10), %rbx - 0x48, 0x83, 0xfb, 0x04, //0x00002892 cmpq $4, %rbx - 0x0f, 0x8d, 0x85, 0x00, 0x00, 0x00, //0x00002896 jge LBB11_28 - 0xe9, 0x93, 0x00, 0x00, 0x00, //0x0000289c jmp LBB11_29 - //0x000028a1 LBB11_45 - 0x4d, 0x29, 0xe7, //0x000028a1 subq %r12, %r15 - 0x49, 0x29, 0xc7, //0x000028a4 subq %rax, %r15 - 0x4c, 0x8d, 0x1d, 0x22, 0xe7, 0x00, 0x00, //0x000028a7 leaq $59170(%rip), %r11 /* __HtmlQuoteTab+0(%rip) */ - 0x4d, 0x85, 0xff, //0x000028ae testq %r15, %r15 - 0x0f, 0x89, 0x09, 0x01, 0x00, 0x00, //0x000028b1 jns LBB11_49 - 0xe9, 0x29, 0x02, 0x00, 0x00, //0x000028b7 jmp LBB11_48 - //0x000028bc LBB11_35 - 0x4d, 0x89, 0xfa, //0x000028bc movq %r15, %r10 - 0x4c, 0x89, 0xeb, //0x000028bf movq %r13, %rbx - 0x48, 0x83, 0xfb, 0x04, //0x000028c2 cmpq $4, %rbx - 0x0f, 0x8c, 0x12, 0x00, 0x00, 0x00, //0x000028c6 jl LBB11_39 - //0x000028cc LBB11_38 - 0x41, 0x8b, 0x02, //0x000028cc movl (%r10), %eax - 0x41, 0x89, 0x00, //0x000028cf movl %eax, (%r8) - 0x49, 0x83, 0xc2, 0x04, //0x000028d2 addq $4, %r10 - 0x49, 0x83, 0xc0, 0x04, //0x000028d6 addq $4, %r8 - 0x48, 0x83, 0xc3, 0xfc, //0x000028da addq $-4, %rbx - //0x000028de LBB11_39 - 0x48, 0x83, 0xfb, 0x02, //0x000028de cmpq $2, %rbx - 0x0f, 0x83, 0x7a, 0x00, 0x00, 0x00, //0x000028e2 jae LBB11_40 - 0x48, 0x85, 0xdb, //0x000028e8 testq %rbx, %rbx - 0x0f, 0x84, 0x06, 0x00, 0x00, 0x00, //0x000028eb je LBB11_43 - //0x000028f1 LBB11_42 - 0x41, 0x8a, 0x02, //0x000028f1 movb (%r10), %al - 0x41, 0x88, 0x00, //0x000028f4 movb %al, (%r8) - //0x000028f7 LBB11_43 - 0x4d, 0x01, 0xfd, //0x000028f7 addq %r15, %r13 - 0x49, 0xf7, 0xd5, //0x000028fa notq %r13 - 0x4d, 0x01, 0xe5, //0x000028fd addq %r12, %r13 - 0x4d, 0x89, 0xef, //0x00002900 movq %r13, %r15 - 0x4d, 0x85, 0xff, //0x00002903 testq %r15, %r15 - 0x0f, 0x89, 0xb4, 0x00, 0x00, 0x00, //0x00002906 jns LBB11_49 - 0xe9, 0xd4, 0x01, 0x00, 0x00, //0x0000290c jmp LBB11_48 - //0x00002911 LBB11_25 - 0x4d, 0x89, 0xfd, //0x00002911 movq %r15, %r13 - 0x4c, 0x89, 0xd3, //0x00002914 movq %r10, %rbx - 0x48, 0x83, 0xfb, 0x04, //0x00002917 cmpq $4, %rbx - 0x0f, 0x8c, 0x13, 0x00, 0x00, 0x00, //0x0000291b jl LBB11_29 - //0x00002921 LBB11_28 - 0x41, 0x8b, 0x45, 0x00, //0x00002921 movl (%r13), %eax - 0x41, 0x89, 0x00, //0x00002925 movl %eax, (%r8) - 0x49, 0x83, 0xc5, 0x04, //0x00002928 addq $4, %r13 - 0x49, 0x83, 0xc0, 0x04, //0x0000292c addq $4, %r8 - 0x48, 0x83, 0xc3, 0xfc, //0x00002930 addq $-4, %rbx - //0x00002934 LBB11_29 - 0x48, 0x83, 0xfb, 0x02, //0x00002934 cmpq $2, %rbx - 0x0f, 0x83, 0x46, 0x00, 0x00, 0x00, //0x00002938 jae LBB11_30 - 0x48, 0x85, 0xdb, //0x0000293e testq %rbx, %rbx - 0x0f, 0x84, 0x07, 0x00, 0x00, 0x00, //0x00002941 je LBB11_33 - //0x00002947 LBB11_32 - 0x41, 0x8a, 0x45, 0x00, //0x00002947 movb (%r13), %al - 0x41, 0x88, 0x00, //0x0000294b movb %al, (%r8) - //0x0000294e LBB11_33 - 0x4d, 0x29, 0xe7, //0x0000294e subq %r12, %r15 - 0x4d, 0x01, 0xd7, //0x00002951 addq %r10, %r15 - 0x4d, 0x85, 0xff, //0x00002954 testq %r15, %r15 - 0x0f, 0x89, 0x63, 0x00, 0x00, 0x00, //0x00002957 jns LBB11_49 - 0xe9, 0x83, 0x01, 0x00, 0x00, //0x0000295d jmp LBB11_48 - //0x00002962 LBB11_40 - 0x41, 0x0f, 0xb7, 0x02, //0x00002962 movzwl (%r10), %eax - 0x66, 0x41, 0x89, 0x00, //0x00002966 movw %ax, (%r8) - 0x49, 0x83, 0xc2, 0x02, //0x0000296a addq $2, %r10 - 0x49, 0x83, 0xc0, 0x02, //0x0000296e addq $2, %r8 - 0x48, 0x83, 0xc3, 0xfe, //0x00002972 addq $-2, %rbx - 0x48, 0x85, 0xdb, //0x00002976 testq %rbx, %rbx - 0x0f, 0x85, 0x72, 0xff, 0xff, 0xff, //0x00002979 jne LBB11_42 - 0xe9, 0x73, 0xff, 0xff, 0xff, //0x0000297f jmp LBB11_43 - //0x00002984 LBB11_30 - 0x41, 0x0f, 0xb7, 0x45, 0x00, //0x00002984 movzwl (%r13), %eax - 0x66, 0x41, 0x89, 0x00, //0x00002989 movw %ax, (%r8) - 0x49, 0x83, 0xc5, 0x02, //0x0000298d addq $2, %r13 - 0x49, 0x83, 0xc0, 0x02, //0x00002991 addq $2, %r8 - 0x48, 0x83, 0xc3, 0xfe, //0x00002995 addq $-2, %rbx - 0x48, 0x85, 0xdb, //0x00002999 testq %rbx, %rbx - 0x0f, 0x85, 0xa5, 0xff, 0xff, 0xff, //0x0000299c jne LBB11_32 - 0xe9, 0xa7, 0xff, 0xff, 0xff, //0x000029a2 jmp LBB11_33 - //0x000029a7 LBB11_22 - 0x4d, 0x29, 0xe7, //0x000029a7 subq %r12, %r15 - 0x4d, 0x85, 0xff, //0x000029aa testq %r15, %r15 - 0x0f, 0x88, 0x32, 0x01, 0x00, 0x00, //0x000029ad js LBB11_48 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000029b3 .p2align 4, 0x90 - //0x000029c0 LBB11_49 - 0x4d, 0x01, 0xfc, //0x000029c0 addq %r15, %r12 - 0x4d, 0x01, 0xfe, //0x000029c3 addq %r15, %r14 - 0x4c, 0x29, 0xfe, //0x000029c6 subq %r15, %rsi - 0x0f, 0x8e, 0x38, 0x01, 0x00, 0x00, //0x000029c9 jle LBB11_50 - 0x4d, 0x29, 0xf9, //0x000029cf subq %r15, %r9 - 0x41, 0x8a, 0x0c, 0x24, //0x000029d2 movb (%r12), %cl - 0x80, 0xf9, 0xe2, //0x000029d6 cmpb $-30, %cl - 0x0f, 0x84, 0xb4, 0x00, 0x00, 0x00, //0x000029d9 je LBB11_53 - 0x4c, 0x89, 0xe0, //0x000029df movq %r12, %rax - //0x000029e2 LBB11_57 - 0x0f, 0xb6, 0xc9, //0x000029e2 movzbl %cl, %ecx - 0x48, 0xc1, 0xe1, 0x04, //0x000029e5 shlq $4, %rcx - 0x4a, 0x8b, 0x14, 0x19, //0x000029e9 movq (%rcx,%r11), %rdx - 0x4c, 0x63, 0xfa, //0x000029ed movslq %edx, %r15 - 0x4d, 0x29, 0xf9, //0x000029f0 subq %r15, %r9 - 0x0f, 0x8c, 0x24, 0x01, 0x00, 0x00, //0x000029f3 jl LBB11_58 - 0x48, 0xc1, 0xe2, 0x20, //0x000029f9 shlq $32, %rdx - 0x4e, 0x8d, 0x14, 0x19, //0x000029fd leaq (%rcx,%r11), %r10 - 0x49, 0x83, 0xc2, 0x08, //0x00002a01 addq $8, %r10 - 0x48, 0xbb, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, //0x00002a05 movabsq $12884901889, %rbx - 0x48, 0x39, 0xda, //0x00002a0f cmpq %rbx, %rdx - 0x0f, 0x8c, 0x28, 0x00, 0x00, 0x00, //0x00002a12 jl LBB11_62 - 0x41, 0x8b, 0x12, //0x00002a18 movl (%r10), %edx - 0x41, 0x89, 0x16, //0x00002a1b movl %edx, (%r14) - 0x4e, 0x8d, 0x14, 0x19, //0x00002a1e leaq (%rcx,%r11), %r10 - 0x49, 0x83, 0xc2, 0x0c, //0x00002a22 addq $12, %r10 - 0x4d, 0x8d, 0x46, 0x04, //0x00002a26 leaq $4(%r14), %r8 - 0x49, 0x8d, 0x4f, 0xfc, //0x00002a2a leaq $-4(%r15), %rcx - 0x48, 0x83, 0xf9, 0x02, //0x00002a2e cmpq $2, %rcx - 0x0f, 0x83, 0x18, 0x00, 0x00, 0x00, //0x00002a32 jae LBB11_65 - 0xe9, 0x27, 0x00, 0x00, 0x00, //0x00002a38 jmp LBB11_66 - 0x90, 0x90, 0x90, //0x00002a3d .p2align 4, 0x90 - //0x00002a40 LBB11_62 - 0x4d, 0x89, 0xf0, //0x00002a40 movq %r14, %r8 - 0x4c, 0x89, 0xf9, //0x00002a43 movq %r15, %rcx - 0x48, 0x83, 0xf9, 0x02, //0x00002a46 cmpq $2, %rcx - 0x0f, 0x82, 0x14, 0x00, 0x00, 0x00, //0x00002a4a jb LBB11_66 - //0x00002a50 LBB11_65 - 0x41, 0x0f, 0xb7, 0x12, //0x00002a50 movzwl (%r10), %edx - 0x66, 0x41, 0x89, 0x10, //0x00002a54 movw %dx, (%r8) - 0x49, 0x83, 0xc2, 0x02, //0x00002a58 addq $2, %r10 - 0x49, 0x83, 0xc0, 0x02, //0x00002a5c addq $2, %r8 - 0x48, 0x83, 0xc1, 0xfe, //0x00002a60 addq $-2, %rcx - //0x00002a64 LBB11_66 - 0x48, 0x85, 0xc9, //0x00002a64 testq %rcx, %rcx - 0x0f, 0x84, 0x06, 0x00, 0x00, 0x00, //0x00002a67 je LBB11_68 - 0x41, 0x8a, 0x0a, //0x00002a6d movb (%r10), %cl - 0x41, 0x88, 0x08, //0x00002a70 movb %cl, (%r8) - //0x00002a73 LBB11_68 - 0x4d, 0x01, 0xfe, //0x00002a73 addq %r15, %r14 - //0x00002a76 LBB11_69 - 0x48, 0x83, 0xc0, 0x01, //0x00002a76 addq $1, %rax - 0x48, 0x8d, 0x4e, 0xff, //0x00002a7a leaq $-1(%rsi), %rcx - 0x49, 0x89, 0xc4, //0x00002a7e movq %rax, %r12 - 0x48, 0x83, 0xfe, 0x01, //0x00002a81 cmpq $1, %rsi - 0x48, 0x89, 0xce, //0x00002a85 movq %rcx, %rsi - 0x0f, 0x8f, 0x02, 0xfc, 0xff, 0xff, //0x00002a88 jg LBB11_2 - 0xe9, 0x77, 0x00, 0x00, 0x00, //0x00002a8e jmp LBB11_70 - //0x00002a93 LBB11_53 - 0x48, 0x83, 0xfe, 0x03, //0x00002a93 cmpq $3, %rsi - 0x0f, 0x8c, 0x2b, 0x00, 0x00, 0x00, //0x00002a97 jl LBB11_59 - 0x41, 0x80, 0x7c, 0x24, 0x01, 0x80, //0x00002a9d cmpb $-128, $1(%r12) - 0x0f, 0x85, 0x1f, 0x00, 0x00, 0x00, //0x00002aa3 jne LBB11_59 - 0x41, 0x8a, 0x4c, 0x24, 0x02, //0x00002aa9 movb $2(%r12), %cl - 0x89, 0xc8, //0x00002aae movl %ecx, %eax - 0x24, 0xfe, //0x00002ab0 andb $-2, %al - 0x3c, 0xa8, //0x00002ab2 cmpb $-88, %al - 0x0f, 0x85, 0x0e, 0x00, 0x00, 0x00, //0x00002ab4 jne LBB11_59 - 0x49, 0x8d, 0x44, 0x24, 0x02, //0x00002aba leaq $2(%r12), %rax - 0x48, 0x83, 0xc6, 0xfe, //0x00002abf addq $-2, %rsi - 0xe9, 0x1a, 0xff, 0xff, 0xff, //0x00002ac3 jmp LBB11_57 - //0x00002ac8 LBB11_59 - 0x4d, 0x85, 0xc9, //0x00002ac8 testq %r9, %r9 - 0x0f, 0x8e, 0x57, 0x00, 0x00, 0x00, //0x00002acb jle LBB11_3 - 0x41, 0xc6, 0x06, 0xe2, //0x00002ad1 movb $-30, (%r14) - 0x49, 0x83, 0xc6, 0x01, //0x00002ad5 addq $1, %r14 - 0x49, 0x83, 0xc1, 0xff, //0x00002ad9 addq $-1, %r9 - 0x4c, 0x89, 0xe0, //0x00002add movq %r12, %rax - 0xe9, 0x91, 0xff, 0xff, 0xff, //0x00002ae0 jmp LBB11_69 - //0x00002ae5 LBB11_48 - 0x48, 0x8b, 0x4d, 0xd0, //0x00002ae5 movq $-48(%rbp), %rcx - 0x4c, 0x01, 0xf9, //0x00002ae9 addq %r15, %rcx - 0x48, 0xf7, 0xd1, //0x00002aec notq %rcx - 0x4c, 0x01, 0xf1, //0x00002aef addq %r14, %rcx - 0x48, 0x8b, 0x45, 0xc8, //0x00002af2 movq $-56(%rbp), %rax - 0x48, 0x89, 0x08, //0x00002af6 movq %rcx, (%rax) - 0x4c, 0x29, 0xe7, //0x00002af9 subq %r12, %rdi - 0x4c, 0x01, 0xff, //0x00002afc addq %r15, %rdi - 0x48, 0x89, 0xf8, //0x00002aff movq %rdi, %rax - 0xe9, 0x2a, 0x00, 0x00, 0x00, //0x00002b02 jmp LBB11_71 - //0x00002b07 LBB11_50 - 0x4c, 0x89, 0xe0, //0x00002b07 movq %r12, %rax - //0x00002b0a LBB11_70 - 0x4c, 0x2b, 0x75, 0xd0, //0x00002b0a subq $-48(%rbp), %r14 - 0x48, 0x8b, 0x4d, 0xc8, //0x00002b0e movq $-56(%rbp), %rcx - 0x4c, 0x89, 0x31, //0x00002b12 movq %r14, (%rcx) - 0x48, 0x29, 0xf8, //0x00002b15 subq %rdi, %rax - 0xe9, 0x14, 0x00, 0x00, 0x00, //0x00002b18 jmp LBB11_71 - //0x00002b1d LBB11_58 - 0x4c, 0x2b, 0x75, 0xd0, //0x00002b1d subq $-48(%rbp), %r14 - 0x48, 0x8b, 0x45, 0xc8, //0x00002b21 movq $-56(%rbp), %rax - 0x4c, 0x89, 0x30, //0x00002b25 movq %r14, (%rax) - //0x00002b28 LBB11_3 - 0x49, 0xf7, 0xd4, //0x00002b28 notq %r12 - 0x49, 0x01, 0xfc, //0x00002b2b addq %rdi, %r12 - 0x4c, 0x89, 0xe0, //0x00002b2e movq %r12, %rax - //0x00002b31 LBB11_71 - 0x48, 0x83, 0xc4, 0x10, //0x00002b31 addq $16, %rsp - 0x5b, //0x00002b35 popq %rbx - 0x41, 0x5c, //0x00002b36 popq %r12 - 0x41, 0x5d, //0x00002b38 popq %r13 - 0x41, 0x5e, //0x00002b3a popq %r14 - 0x41, 0x5f, //0x00002b3c popq %r15 - 0x5d, //0x00002b3e popq %rbp - 0xc3, //0x00002b3f retq - //0x00002b40 .p2align 4, 0x90 - //0x00002b40 _atof_eisel_lemire64 - 0x55, //0x00002b40 pushq %rbp - 0x48, 0x89, 0xe5, //0x00002b41 movq %rsp, %rbp - 0x41, 0x57, //0x00002b44 pushq %r15 - 0x41, 0x56, //0x00002b46 pushq %r14 - 0x41, 0x54, //0x00002b48 pushq %r12 - 0x53, //0x00002b4a pushq %rbx - 0x8d, 0x86, 0x5c, 0x01, 0x00, 0x00, //0x00002b4b leal $348(%rsi), %eax - 0x3d, 0xb7, 0x02, 0x00, 0x00, //0x00002b51 cmpl $695, %eax - 0x0f, 0x87, 0x1d, 0x01, 0x00, 0x00, //0x00002b56 ja LBB12_1 - 0x49, 0x89, 0xc8, //0x00002b5c movq %rcx, %r8 - 0x41, 0x89, 0xd1, //0x00002b5f movl %edx, %r9d - 0x48, 0x85, 0xff, //0x00002b62 testq %rdi, %rdi - 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x00002b65 je LBB12_4 - 0x4c, 0x0f, 0xbd, 0xd7, //0x00002b6b bsrq %rdi, %r10 - 0x49, 0x83, 0xf2, 0x3f, //0x00002b6f xorq $63, %r10 - 0xe9, 0x06, 0x00, 0x00, 0x00, //0x00002b73 jmp LBB12_5 - //0x00002b78 LBB12_4 - 0x41, 0xba, 0x40, 0x00, 0x00, 0x00, //0x00002b78 movl $64, %r10d - //0x00002b7e LBB12_5 - 0x44, 0x89, 0xd1, //0x00002b7e movl %r10d, %ecx - 0x48, 0xd3, 0xe7, //0x00002b81 shlq %cl, %rdi - 0x89, 0xc1, //0x00002b84 movl %eax, %ecx - 0x48, 0xc1, 0xe1, 0x04, //0x00002b86 shlq $4, %rcx - 0x4c, 0x8d, 0x25, 0x8f, 0x6e, 0x00, 0x00, //0x00002b8a leaq $28303(%rip), %r12 /* _POW10_M128_TAB+0(%rip) */ - 0x48, 0x89, 0xf8, //0x00002b91 movq %rdi, %rax - 0x4a, 0xf7, 0x64, 0x21, 0x08, //0x00002b94 mulq $8(%rcx,%r12) - 0x49, 0x89, 0xc7, //0x00002b99 movq %rax, %r15 - 0x49, 0x89, 0xd3, //0x00002b9c movq %rdx, %r11 - 0x44, 0x89, 0xdb, //0x00002b9f movl %r11d, %ebx - 0x81, 0xe3, 0xff, 0x01, 0x00, 0x00, //0x00002ba2 andl $511, %ebx - 0x48, 0x81, 0xfb, 0xff, 0x01, 0x00, 0x00, //0x00002ba8 cmpq $511, %rbx - 0x0f, 0x85, 0x52, 0x00, 0x00, 0x00, //0x00002baf jne LBB12_11 - 0x49, 0x89, 0xfe, //0x00002bb5 movq %rdi, %r14 - 0x49, 0xf7, 0xd6, //0x00002bb8 notq %r14 - 0x4c, 0x89, 0xfa, //0x00002bbb movq %r15, %rdx - 0x4d, 0x39, 0xf7, //0x00002bbe cmpq %r14, %r15 - 0x0f, 0x86, 0x43, 0x00, 0x00, 0x00, //0x00002bc1 jbe LBB12_13 - 0x48, 0x89, 0xf8, //0x00002bc7 movq %rdi, %rax - 0x4a, 0xf7, 0x24, 0x21, //0x00002bca mulq (%rcx,%r12) - 0x4c, 0x01, 0xfa, //0x00002bce addq %r15, %rdx - 0x49, 0x83, 0xd3, 0x00, //0x00002bd1 adcq $0, %r11 - 0x44, 0x89, 0xd9, //0x00002bd5 movl %r11d, %ecx - 0xf7, 0xd1, //0x00002bd8 notl %ecx - 0xf7, 0xc1, 0xff, 0x01, 0x00, 0x00, //0x00002bda testl $511, %ecx - 0x0f, 0x85, 0x13, 0x00, 0x00, 0x00, //0x00002be0 jne LBB12_12 - 0x48, 0x83, 0xfa, 0xff, //0x00002be6 cmpq $-1, %rdx - 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00002bea jne LBB12_12 - 0x4c, 0x39, 0xf0, //0x00002bf0 cmpq %r14, %rax - 0x0f, 0x87, 0x80, 0x00, 0x00, 0x00, //0x00002bf3 ja LBB12_1 - //0x00002bf9 LBB12_12 - 0x44, 0x89, 0xdb, //0x00002bf9 movl %r11d, %ebx - 0x81, 0xe3, 0xff, 0x01, 0x00, 0x00, //0x00002bfc andl $511, %ebx - 0xe9, 0x03, 0x00, 0x00, 0x00, //0x00002c02 jmp LBB12_13 - //0x00002c07 LBB12_11 - 0x4c, 0x89, 0xfa, //0x00002c07 movq %r15, %rdx - //0x00002c0a LBB12_13 - 0x4c, 0x89, 0xd8, //0x00002c0a movq %r11, %rax - 0x48, 0xc1, 0xe8, 0x3f, //0x00002c0d shrq $63, %rax - 0x8d, 0x48, 0x09, //0x00002c11 leal $9(%rax), %ecx - 0x49, 0xd3, 0xeb, //0x00002c14 shrq %cl, %r11 - 0x48, 0x85, 0xd2, //0x00002c17 testq %rdx, %rdx - 0x0f, 0x85, 0x18, 0x00, 0x00, 0x00, //0x00002c1a jne LBB12_17 - 0x48, 0x85, 0xdb, //0x00002c20 testq %rbx, %rbx - 0x0f, 0x85, 0x0f, 0x00, 0x00, 0x00, //0x00002c23 jne LBB12_17 - 0x44, 0x89, 0xd9, //0x00002c29 movl %r11d, %ecx - 0x83, 0xe1, 0x03, //0x00002c2c andl $3, %ecx - 0x83, 0xf9, 0x01, //0x00002c2f cmpl $1, %ecx - 0x0f, 0x84, 0x41, 0x00, 0x00, 0x00, //0x00002c32 je LBB12_1 - //0x00002c38 LBB12_17 - 0x69, 0xce, 0x6a, 0x52, 0x03, 0x00, //0x00002c38 imull $217706, %esi, %ecx - 0xc1, 0xf9, 0x10, //0x00002c3e sarl $16, %ecx - 0x81, 0xc1, 0x3f, 0x04, 0x00, 0x00, //0x00002c41 addl $1087, %ecx - 0x48, 0x63, 0xf1, //0x00002c47 movslq %ecx, %rsi - 0x4c, 0x29, 0xd6, //0x00002c4a subq %r10, %rsi - 0x44, 0x89, 0xda, //0x00002c4d movl %r11d, %edx - 0x83, 0xe2, 0x01, //0x00002c50 andl $1, %edx - 0x4c, 0x01, 0xda, //0x00002c53 addq %r11, %rdx - 0x48, 0x89, 0xd1, //0x00002c56 movq %rdx, %rcx - 0x48, 0xc1, 0xe9, 0x36, //0x00002c59 shrq $54, %rcx - 0x48, 0x01, 0xf0, //0x00002c5d addq %rsi, %rax - 0x48, 0x83, 0xf9, 0x01, //0x00002c60 cmpq $1, %rcx - 0x48, 0x83, 0xd8, 0x00, //0x00002c64 sbbq $0, %rax - 0x48, 0x8d, 0x70, 0xff, //0x00002c68 leaq $-1(%rax), %rsi - 0x48, 0x81, 0xfe, 0xfd, 0x07, 0x00, 0x00, //0x00002c6c cmpq $2045, %rsi - 0x0f, 0x86, 0x0b, 0x00, 0x00, 0x00, //0x00002c73 jbe LBB12_19 - //0x00002c79 LBB12_1 - 0x31, 0xc0, //0x00002c79 xorl %eax, %eax - //0x00002c7b LBB12_20 - 0x5b, //0x00002c7b popq %rbx - 0x41, 0x5c, //0x00002c7c popq %r12 - 0x41, 0x5e, //0x00002c7e popq %r14 - 0x41, 0x5f, //0x00002c80 popq %r15 - 0x5d, //0x00002c82 popq %rbp - 0xc3, //0x00002c83 retq - //0x00002c84 LBB12_19 - 0x48, 0x83, 0xf9, 0x01, //0x00002c84 cmpq $1, %rcx - 0xb1, 0x02, //0x00002c88 movb $2, %cl - 0x80, 0xd9, 0x00, //0x00002c8a sbbb $0, %cl - 0x48, 0xd3, 0xea, //0x00002c8d shrq %cl, %rdx - 0x48, 0xc1, 0xe0, 0x34, //0x00002c90 shlq $52, %rax - 0x48, 0xb9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, //0x00002c94 movabsq $4503599627370495, %rcx - 0x48, 0x21, 0xd1, //0x00002c9e andq %rdx, %rcx - 0x48, 0x09, 0xc1, //0x00002ca1 orq %rax, %rcx - 0x48, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x00002ca4 movabsq $-9223372036854775808, %rax - 0x48, 0x09, 0xc8, //0x00002cae orq %rcx, %rax - 0x41, 0x83, 0xf9, 0xff, //0x00002cb1 cmpl $-1, %r9d - 0x48, 0x0f, 0x45, 0xc1, //0x00002cb5 cmovneq %rcx, %rax - 0x49, 0x89, 0x00, //0x00002cb9 movq %rax, (%r8) - 0xb0, 0x01, //0x00002cbc movb $1, %al - 0xe9, 0xb8, 0xff, 0xff, 0xff, //0x00002cbe jmp LBB12_20 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002cc3 .p2align 4, 0x90 - //0x00002cd0 _decimal_to_f64 - 0x55, //0x00002cd0 pushq %rbp - 0x48, 0x89, 0xe5, //0x00002cd1 movq %rsp, %rbp - 0x41, 0x57, //0x00002cd4 pushq %r15 - 0x41, 0x56, //0x00002cd6 pushq %r14 - 0x41, 0x55, //0x00002cd8 pushq %r13 - 0x41, 0x54, //0x00002cda pushq %r12 - 0x53, //0x00002cdc pushq %rbx - 0x50, //0x00002cdd pushq %rax - 0x48, 0x89, 0xf3, //0x00002cde movq %rsi, %rbx - 0x49, 0x89, 0xff, //0x00002ce1 movq %rdi, %r15 - 0x49, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, //0x00002ce4 movabsq $4503599627370496, %r13 - 0x83, 0x7f, 0x10, 0x00, //0x00002cee cmpl $0, $16(%rdi) - 0x0f, 0x84, 0x2f, 0x00, 0x00, 0x00, //0x00002cf2 je LBB13_4 - 0x49, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x7f, //0x00002cf8 movabsq $9218868437227405312, %r14 - 0x41, 0x8b, 0x47, 0x14, //0x00002d02 movl $20(%r15), %eax - 0x45, 0x31, 0xe4, //0x00002d06 xorl %r12d, %r12d - 0x3d, 0x36, 0x01, 0x00, 0x00, //0x00002d09 cmpl $310, %eax - 0x0f, 0x8f, 0x4e, 0x03, 0x00, 0x00, //0x00002d0e jg LBB13_64 - 0x3d, 0xb6, 0xfe, 0xff, 0xff, //0x00002d14 cmpl $-330, %eax - 0x0f, 0x8d, 0x13, 0x00, 0x00, 0x00, //0x00002d19 jge LBB13_5 - 0x45, 0x31, 0xf6, //0x00002d1f xorl %r14d, %r14d - 0xe9, 0x3b, 0x03, 0x00, 0x00, //0x00002d22 jmp LBB13_64 - //0x00002d27 LBB13_4 - 0x45, 0x31, 0xf6, //0x00002d27 xorl %r14d, %r14d - 0x45, 0x31, 0xe4, //0x00002d2a xorl %r12d, %r12d - 0xe9, 0x30, 0x03, 0x00, 0x00, //0x00002d2d jmp LBB13_64 - //0x00002d32 LBB13_5 - 0x85, 0xc0, //0x00002d32 testl %eax, %eax - 0x48, 0x89, 0x5d, 0xd0, //0x00002d34 movq %rbx, $-48(%rbp) - 0x0f, 0x8e, 0x5a, 0x00, 0x00, 0x00, //0x00002d38 jle LBB13_12 - 0x45, 0x31, 0xe4, //0x00002d3e xorl %r12d, %r12d - 0x4c, 0x8d, 0x35, 0x68, 0x98, 0x00, 0x00, //0x00002d41 leaq $39016(%rip), %r14 /* _POW_TAB+0(%rip) */ - 0xe9, 0x2d, 0x00, 0x00, 0x00, //0x00002d48 jmp LBB13_8 - 0x90, 0x90, 0x90, //0x00002d4d .p2align 4, 0x90 - //0x00002d50 LBB13_10 - 0x89, 0xc0, //0x00002d50 movl %eax, %eax - 0x41, 0x8b, 0x1c, 0x86, //0x00002d52 movl (%r14,%rax,4), %ebx - 0x41, 0x83, 0x7f, 0x10, 0x00, //0x00002d56 cmpl $0, $16(%r15) - 0x0f, 0x84, 0x0a, 0x00, 0x00, 0x00, //0x00002d5b je LBB13_7 - //0x00002d61 LBB13_11 - 0x4c, 0x89, 0xff, //0x00002d61 movq %r15, %rdi - 0x89, 0xde, //0x00002d64 movl %ebx, %esi - 0xe8, 0x45, 0x64, 0x00, 0x00, //0x00002d66 callq _right_shift - //0x00002d6b LBB13_7 - 0x41, 0x01, 0xdc, //0x00002d6b addl %ebx, %r12d - 0x41, 0x8b, 0x47, 0x14, //0x00002d6e movl $20(%r15), %eax - 0x85, 0xc0, //0x00002d72 testl %eax, %eax - 0x0f, 0x8e, 0x1e, 0x00, 0x00, 0x00, //0x00002d74 jle LBB13_12 - //0x00002d7a LBB13_8 - 0x83, 0xf8, 0x08, //0x00002d7a cmpl $8, %eax - 0x0f, 0x8e, 0xcd, 0xff, 0xff, 0xff, //0x00002d7d jle LBB13_10 - 0xbb, 0x1b, 0x00, 0x00, 0x00, //0x00002d83 movl $27, %ebx - 0x41, 0x83, 0x7f, 0x10, 0x00, //0x00002d88 cmpl $0, $16(%r15) - 0x0f, 0x85, 0xce, 0xff, 0xff, 0xff, //0x00002d8d jne LBB13_11 - 0xe9, 0xd3, 0xff, 0xff, 0xff, //0x00002d93 jmp LBB13_7 - //0x00002d98 LBB13_12 - 0x4c, 0x8d, 0x35, 0x11, 0x98, 0x00, 0x00, //0x00002d98 leaq $38929(%rip), %r14 /* _POW_TAB+0(%rip) */ - 0xe9, 0x2d, 0x00, 0x00, 0x00, //0x00002d9f jmp LBB13_14 - //0x00002da4 LBB13_18 - 0xbb, 0x1b, 0x00, 0x00, 0x00, //0x00002da4 movl $27, %ebx - 0x41, 0x83, 0x7f, 0x10, 0x00, //0x00002da9 cmpl $0, $16(%r15) - 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x00002dae je LBB13_13 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002db4 .p2align 4, 0x90 - //0x00002dc0 LBB13_20 - 0x4c, 0x89, 0xff, //0x00002dc0 movq %r15, %rdi - 0x89, 0xde, //0x00002dc3 movl %ebx, %esi - 0xe8, 0xc6, 0x61, 0x00, 0x00, //0x00002dc5 callq _left_shift - 0x41, 0x8b, 0x47, 0x14, //0x00002dca movl $20(%r15), %eax - //0x00002dce LBB13_13 - 0x41, 0x29, 0xdc, //0x00002dce subl %ebx, %r12d - //0x00002dd1 LBB13_14 - 0x85, 0xc0, //0x00002dd1 testl %eax, %eax - 0x0f, 0x88, 0x17, 0x00, 0x00, 0x00, //0x00002dd3 js LBB13_17 - 0x0f, 0x85, 0x32, 0x00, 0x00, 0x00, //0x00002dd9 jne LBB13_21 - 0x49, 0x8b, 0x0f, //0x00002ddf movq (%r15), %rcx - 0x80, 0x39, 0x35, //0x00002de2 cmpb $53, (%rcx) - 0x0f, 0x8c, 0x0e, 0x00, 0x00, 0x00, //0x00002de5 jl LBB13_19 - 0xe9, 0x21, 0x00, 0x00, 0x00, //0x00002deb jmp LBB13_21 - //0x00002df0 .p2align 4, 0x90 - //0x00002df0 LBB13_17 - 0x83, 0xf8, 0xf8, //0x00002df0 cmpl $-8, %eax - 0x0f, 0x8c, 0xab, 0xff, 0xff, 0xff, //0x00002df3 jl LBB13_18 - //0x00002df9 LBB13_19 - 0x89, 0xc1, //0x00002df9 movl %eax, %ecx - 0xf7, 0xd9, //0x00002dfb negl %ecx - 0x41, 0x8b, 0x1c, 0x8e, //0x00002dfd movl (%r14,%rcx,4), %ebx - 0x41, 0x83, 0x7f, 0x10, 0x00, //0x00002e01 cmpl $0, $16(%r15) - 0x0f, 0x85, 0xb4, 0xff, 0xff, 0xff, //0x00002e06 jne LBB13_20 - 0xe9, 0xbd, 0xff, 0xff, 0xff, //0x00002e0c jmp LBB13_13 - //0x00002e11 LBB13_21 - 0x41, 0x81, 0xfc, 0x02, 0xfc, 0xff, 0xff, //0x00002e11 cmpl $-1022, %r12d - 0x0f, 0x8f, 0x56, 0x00, 0x00, 0x00, //0x00002e18 jg LBB13_27 - 0x41, 0x83, 0x7f, 0x10, 0x00, //0x00002e1e cmpl $0, $16(%r15) - 0x48, 0x8b, 0x5d, 0xd0, //0x00002e23 movq $-48(%rbp), %rbx - 0x0f, 0x84, 0x64, 0x00, 0x00, 0x00, //0x00002e27 je LBB13_29 - 0x41, 0x81, 0xfc, 0xc6, 0xfb, 0xff, 0xff, //0x00002e2d cmpl $-1082, %r12d - 0x0f, 0x8f, 0x62, 0x00, 0x00, 0x00, //0x00002e34 jg LBB13_30 - 0x41, 0x81, 0xc4, 0xc1, 0x03, 0x00, 0x00, //0x00002e3a addl $961, %r12d - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002e41 .p2align 4, 0x90 - //0x00002e50 LBB13_25 - 0x4c, 0x89, 0xff, //0x00002e50 movq %r15, %rdi - 0xbe, 0x3c, 0x00, 0x00, 0x00, //0x00002e53 movl $60, %esi - 0xe8, 0x53, 0x63, 0x00, 0x00, //0x00002e58 callq _right_shift - 0x41, 0x83, 0xc4, 0x3c, //0x00002e5d addl $60, %r12d - 0x41, 0x83, 0xfc, 0x88, //0x00002e61 cmpl $-120, %r12d - 0x0f, 0x8c, 0xe5, 0xff, 0xff, 0xff, //0x00002e65 jl LBB13_25 - 0x41, 0x83, 0xc4, 0x3c, //0x00002e6b addl $60, %r12d - 0xe9, 0x2f, 0x00, 0x00, 0x00, //0x00002e6f jmp LBB13_31 - //0x00002e74 LBB13_27 - 0x41, 0x81, 0xfc, 0x00, 0x04, 0x00, 0x00, //0x00002e74 cmpl $1024, %r12d - 0x48, 0x8b, 0x5d, 0xd0, //0x00002e7b movq $-48(%rbp), %rbx - 0x0f, 0x8f, 0xa5, 0x01, 0x00, 0x00, //0x00002e7f jg LBB13_61 - 0x41, 0x83, 0xc4, 0xff, //0x00002e85 addl $-1, %r12d - 0x45, 0x89, 0xe6, //0x00002e89 movl %r12d, %r14d - 0xe9, 0x26, 0x00, 0x00, 0x00, //0x00002e8c jmp LBB13_32 - //0x00002e91 LBB13_29 - 0x41, 0xbe, 0x02, 0xfc, 0xff, 0xff, //0x00002e91 movl $-1022, %r14d - 0xe9, 0x33, 0x00, 0x00, 0x00, //0x00002e97 jmp LBB13_34 - //0x00002e9c LBB13_30 - 0x41, 0x81, 0xc4, 0xfd, 0x03, 0x00, 0x00, //0x00002e9c addl $1021, %r12d - //0x00002ea3 LBB13_31 - 0x41, 0xf7, 0xdc, //0x00002ea3 negl %r12d - 0x4c, 0x89, 0xff, //0x00002ea6 movq %r15, %rdi - 0x44, 0x89, 0xe6, //0x00002ea9 movl %r12d, %esi - 0xe8, 0xff, 0x62, 0x00, 0x00, //0x00002eac callq _right_shift - 0x41, 0xbe, 0x02, 0xfc, 0xff, 0xff, //0x00002eb1 movl $-1022, %r14d - //0x00002eb7 LBB13_32 - 0x41, 0x83, 0x7f, 0x10, 0x00, //0x00002eb7 cmpl $0, $16(%r15) - 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x00002ebc je LBB13_34 - 0x4c, 0x89, 0xff, //0x00002ec2 movq %r15, %rdi - 0xbe, 0x35, 0x00, 0x00, 0x00, //0x00002ec5 movl $53, %esi - 0xe8, 0xc1, 0x60, 0x00, 0x00, //0x00002eca callq _left_shift - //0x00002ecf LBB13_34 - 0x41, 0x8b, 0x47, 0x14, //0x00002ecf movl $20(%r15), %eax - 0x49, 0xc7, 0xc4, 0xff, 0xff, 0xff, 0xff, //0x00002ed3 movq $-1, %r12 - 0x83, 0xf8, 0x14, //0x00002eda cmpl $20, %eax - 0x0f, 0x8f, 0x60, 0x01, 0x00, 0x00, //0x00002edd jg LBB13_63 - 0x85, 0xc0, //0x00002ee3 testl %eax, %eax - 0x0f, 0x8e, 0x57, 0x00, 0x00, 0x00, //0x00002ee5 jle LBB13_40 - 0x41, 0x8b, 0x57, 0x10, //0x00002eeb movl $16(%r15), %edx - 0x31, 0xf6, //0x00002eef xorl %esi, %esi - 0x85, 0xd2, //0x00002ef1 testl %edx, %edx - 0x0f, 0x4e, 0xd6, //0x00002ef3 cmovlel %esi, %edx - 0x4c, 0x8d, 0x48, 0xff, //0x00002ef6 leaq $-1(%rax), %r9 - 0x49, 0x39, 0xd1, //0x00002efa cmpq %rdx, %r9 - 0x4c, 0x0f, 0x43, 0xca, //0x00002efd cmovaeq %rdx, %r9 - 0x45, 0x8d, 0x41, 0x01, //0x00002f01 leal $1(%r9), %r8d - 0x45, 0x31, 0xe4, //0x00002f05 xorl %r12d, %r12d - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002f08 .p2align 4, 0x90 - //0x00002f10 LBB13_37 - 0x48, 0x39, 0xf2, //0x00002f10 cmpq %rsi, %rdx - 0x0f, 0x84, 0x2f, 0x00, 0x00, 0x00, //0x00002f13 je LBB13_41 - 0x4b, 0x8d, 0x3c, 0xa4, //0x00002f19 leaq (%r12,%r12,4), %rdi - 0x49, 0x8b, 0x0f, //0x00002f1d movq (%r15), %rcx - 0x48, 0x0f, 0xbe, 0x0c, 0x31, //0x00002f20 movsbq (%rcx,%rsi), %rcx - 0x4c, 0x8d, 0x24, 0x79, //0x00002f25 leaq (%rcx,%rdi,2), %r12 - 0x49, 0x83, 0xc4, 0xd0, //0x00002f29 addq $-48, %r12 - 0x48, 0x83, 0xc6, 0x01, //0x00002f2d addq $1, %rsi - 0x48, 0x39, 0xf0, //0x00002f31 cmpq %rsi, %rax - 0x0f, 0x85, 0xd6, 0xff, 0xff, 0xff, //0x00002f34 jne LBB13_37 - 0x45, 0x89, 0xc1, //0x00002f3a movl %r8d, %r9d - 0xe9, 0x06, 0x00, 0x00, 0x00, //0x00002f3d jmp LBB13_41 - //0x00002f42 LBB13_40 - 0x45, 0x31, 0xc9, //0x00002f42 xorl %r9d, %r9d - 0x45, 0x31, 0xe4, //0x00002f45 xorl %r12d, %r12d - //0x00002f48 LBB13_41 - 0x44, 0x39, 0xc8, //0x00002f48 cmpl %r9d, %eax - 0x0f, 0x8e, 0x5f, 0x00, 0x00, 0x00, //0x00002f4b jle LBB13_49 - 0x89, 0xc6, //0x00002f51 movl %eax, %esi - 0x44, 0x29, 0xce, //0x00002f53 subl %r9d, %esi - 0x44, 0x89, 0xca, //0x00002f56 movl %r9d, %edx - 0xf7, 0xd2, //0x00002f59 notl %edx - 0x01, 0xc2, //0x00002f5b addl %eax, %edx - 0x83, 0xe6, 0x07, //0x00002f5d andl $7, %esi - 0x0f, 0x84, 0x1f, 0x00, 0x00, 0x00, //0x00002f60 je LBB13_46 - 0xf7, 0xde, //0x00002f66 negl %esi - 0x31, 0xff, //0x00002f68 xorl %edi, %edi - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002f6a .p2align 4, 0x90 - //0x00002f70 LBB13_44 - 0x4d, 0x01, 0xe4, //0x00002f70 addq %r12, %r12 - 0x4f, 0x8d, 0x24, 0xa4, //0x00002f73 leaq (%r12,%r12,4), %r12 - 0x83, 0xc7, 0xff, //0x00002f77 addl $-1, %edi - 0x39, 0xfe, //0x00002f7a cmpl %edi, %esi - 0x0f, 0x85, 0xee, 0xff, 0xff, 0xff, //0x00002f7c jne LBB13_44 - 0x41, 0x29, 0xf9, //0x00002f82 subl %edi, %r9d - //0x00002f85 LBB13_46 - 0x83, 0xfa, 0x07, //0x00002f85 cmpl $7, %edx - 0x0f, 0x82, 0x22, 0x00, 0x00, 0x00, //0x00002f88 jb LBB13_49 - 0x89, 0xc2, //0x00002f8e movl %eax, %edx - 0x44, 0x29, 0xca, //0x00002f90 subl %r9d, %edx - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002f93 .p2align 4, 0x90 - //0x00002fa0 LBB13_48 - 0x4d, 0x69, 0xe4, 0x00, 0xe1, 0xf5, 0x05, //0x00002fa0 imulq $100000000, %r12, %r12 - 0x83, 0xc2, 0xf8, //0x00002fa7 addl $-8, %edx - 0x0f, 0x85, 0xf0, 0xff, 0xff, 0xff, //0x00002faa jne LBB13_48 - //0x00002fb0 LBB13_49 - 0x85, 0xc0, //0x00002fb0 testl %eax, %eax - 0x0f, 0x88, 0x4a, 0x00, 0x00, 0x00, //0x00002fb2 js LBB13_57 - 0x41, 0x8b, 0x4f, 0x10, //0x00002fb8 movl $16(%r15), %ecx - 0x39, 0xc1, //0x00002fbc cmpl %eax, %ecx - 0x0f, 0x8e, 0x3e, 0x00, 0x00, 0x00, //0x00002fbe jle LBB13_57 - 0x49, 0x8b, 0x37, //0x00002fc4 movq (%r15), %rsi - 0x8a, 0x14, 0x06, //0x00002fc7 movb (%rsi,%rax), %dl - 0x80, 0xfa, 0x35, //0x00002fca cmpb $53, %dl - 0x0f, 0x85, 0xc3, 0x00, 0x00, 0x00, //0x00002fcd jne LBB13_58 - 0x8d, 0x78, 0x01, //0x00002fd3 leal $1(%rax), %edi - 0x39, 0xcf, //0x00002fd6 cmpl %ecx, %edi - 0x0f, 0x85, 0xb8, 0x00, 0x00, 0x00, //0x00002fd8 jne LBB13_58 - 0x41, 0x83, 0x7f, 0x1c, 0x00, //0x00002fde cmpl $0, $28(%r15) - 0x0f, 0x95, 0xc1, //0x00002fe3 setne %cl - 0x0f, 0x85, 0x18, 0x00, 0x00, 0x00, //0x00002fe6 jne LBB13_59 - 0x85, 0xc0, //0x00002fec testl %eax, %eax - 0x0f, 0x8e, 0x10, 0x00, 0x00, 0x00, //0x00002fee jle LBB13_59 - 0x83, 0xc0, 0xff, //0x00002ff4 addl $-1, %eax - 0x8a, 0x0c, 0x06, //0x00002ff7 movb (%rsi,%rax), %cl - 0x80, 0xe1, 0x01, //0x00002ffa andb $1, %cl - 0xe9, 0x02, 0x00, 0x00, 0x00, //0x00002ffd jmp LBB13_59 - //0x00003002 LBB13_57 - 0x31, 0xc9, //0x00003002 xorl %ecx, %ecx - //0x00003004 LBB13_59 - 0x0f, 0xb6, 0xc1, //0x00003004 movzbl %cl, %eax - 0x49, 0x01, 0xc4, //0x00003007 addq %rax, %r12 - 0x48, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, //0x0000300a movabsq $9007199254740992, %rax - 0x49, 0x39, 0xc4, //0x00003014 cmpq %rax, %r12 - 0x0f, 0x85, 0x26, 0x00, 0x00, 0x00, //0x00003017 jne LBB13_63 - 0x41, 0x81, 0xfe, 0xfe, 0x03, 0x00, 0x00, //0x0000301d cmpl $1022, %r14d - 0x0f, 0x8e, 0x12, 0x00, 0x00, 0x00, //0x00003024 jle LBB13_62 - //0x0000302a LBB13_61 - 0x45, 0x31, 0xe4, //0x0000302a xorl %r12d, %r12d - 0x49, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x7f, //0x0000302d movabsq $9218868437227405312, %r14 - 0xe9, 0x26, 0x00, 0x00, 0x00, //0x00003037 jmp LBB13_64 - //0x0000303c LBB13_62 - 0x41, 0x83, 0xc6, 0x01, //0x0000303c addl $1, %r14d - 0x4d, 0x89, 0xec, //0x00003040 movq %r13, %r12 - //0x00003043 LBB13_63 - 0x4c, 0x89, 0xe0, //0x00003043 movq %r12, %rax - 0x4c, 0x21, 0xe8, //0x00003046 andq %r13, %rax - 0x41, 0x81, 0xc6, 0xff, 0x03, 0x00, 0x00, //0x00003049 addl $1023, %r14d - 0x41, 0x81, 0xe6, 0xff, 0x07, 0x00, 0x00, //0x00003050 andl $2047, %r14d - 0x49, 0xc1, 0xe6, 0x34, //0x00003057 shlq $52, %r14 - 0x48, 0x85, 0xc0, //0x0000305b testq %rax, %rax - 0x4c, 0x0f, 0x44, 0xf0, //0x0000305e cmoveq %rax, %r14 - //0x00003062 LBB13_64 - 0x49, 0x83, 0xc5, 0xff, //0x00003062 addq $-1, %r13 - 0x4d, 0x21, 0xe5, //0x00003066 andq %r12, %r13 - 0x4d, 0x09, 0xf5, //0x00003069 orq %r14, %r13 - 0x48, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x0000306c movabsq $-9223372036854775808, %rax - 0x4c, 0x09, 0xe8, //0x00003076 orq %r13, %rax - 0x41, 0x83, 0x7f, 0x18, 0x00, //0x00003079 cmpl $0, $24(%r15) - 0x49, 0x0f, 0x44, 0xc5, //0x0000307e cmoveq %r13, %rax - 0x48, 0x89, 0x03, //0x00003082 movq %rax, (%rbx) - 0x31, 0xc0, //0x00003085 xorl %eax, %eax - 0x48, 0x83, 0xc4, 0x08, //0x00003087 addq $8, %rsp - 0x5b, //0x0000308b popq %rbx - 0x41, 0x5c, //0x0000308c popq %r12 - 0x41, 0x5d, //0x0000308e popq %r13 - 0x41, 0x5e, //0x00003090 popq %r14 - 0x41, 0x5f, //0x00003092 popq %r15 - 0x5d, //0x00003094 popq %rbp - 0xc3, //0x00003095 retq - //0x00003096 LBB13_58 - 0x80, 0xfa, 0x35, //0x00003096 cmpb $53, %dl - 0x0f, 0x9d, 0xc1, //0x00003099 setge %cl - 0xe9, 0x63, 0xff, 0xff, 0xff, //0x0000309c jmp LBB13_59 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000030a1 .p2align 4, 0x90 - //0x000030b0 _atof_native - 0x55, //0x000030b0 pushq %rbp - 0x48, 0x89, 0xe5, //0x000030b1 movq %rsp, %rbp - 0x48, 0x83, 0xec, 0x30, //0x000030b4 subq $48, %rsp - 0x48, 0xc7, 0x45, 0xd8, 0x00, 0x00, 0x00, 0x00, //0x000030b8 movq $0, $-40(%rbp) - 0x48, 0x89, 0x55, 0xe0, //0x000030c0 movq %rdx, $-32(%rbp) - 0x48, 0x89, 0x4d, 0xe8, //0x000030c4 movq %rcx, $-24(%rbp) - 0x48, 0x85, 0xc9, //0x000030c8 testq %rcx, %rcx - 0x0f, 0x84, 0x45, 0x00, 0x00, 0x00, //0x000030cb je LBB14_5 - 0xc6, 0x02, 0x00, //0x000030d1 movb $0, (%rdx) - 0x48, 0x83, 0xf9, 0x01, //0x000030d4 cmpq $1, %rcx - 0x0f, 0x84, 0x38, 0x00, 0x00, 0x00, //0x000030d8 je LBB14_5 - 0xc6, 0x42, 0x01, 0x00, //0x000030de movb $0, $1(%rdx) - 0x48, 0x83, 0x7d, 0xe8, 0x03, //0x000030e2 cmpq $3, $-24(%rbp) - 0x0f, 0x82, 0x29, 0x00, 0x00, 0x00, //0x000030e7 jb LBB14_5 - 0xb8, 0x02, 0x00, 0x00, 0x00, //0x000030ed movl $2, %eax - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000030f2 .p2align 4, 0x90 - //0x00003100 LBB14_4 - 0x48, 0x8b, 0x4d, 0xe0, //0x00003100 movq $-32(%rbp), %rcx - 0xc6, 0x04, 0x01, 0x00, //0x00003104 movb $0, (%rcx,%rax) - 0x48, 0x83, 0xc0, 0x01, //0x00003108 addq $1, %rax - 0x48, 0x39, 0x45, 0xe8, //0x0000310c cmpq %rax, $-24(%rbp) - 0x0f, 0x87, 0xea, 0xff, 0xff, 0xff, //0x00003110 ja LBB14_4 - //0x00003116 LBB14_5 - 0x0f, 0x57, 0xc0, //0x00003116 xorps %xmm0, %xmm0 - 0x0f, 0x11, 0x45, 0xf0, //0x00003119 movups %xmm0, $-16(%rbp) - 0x31, 0xd2, //0x0000311d xorl %edx, %edx - 0x80, 0x3f, 0x2d, //0x0000311f cmpb $45, (%rdi) - 0x0f, 0x85, 0x1a, 0x00, 0x00, 0x00, //0x00003122 jne LBB14_7 - 0xc7, 0x45, 0xf8, 0x01, 0x00, 0x00, 0x00, //0x00003128 movl $1, $-8(%rbp) - 0xb8, 0x01, 0x00, 0x00, 0x00, //0x0000312f movl $1, %eax - 0x48, 0x39, 0xf0, //0x00003134 cmpq %rsi, %rax - 0x0f, 0x8c, 0x10, 0x00, 0x00, 0x00, //0x00003137 jl LBB14_8 - 0xe9, 0xad, 0x01, 0x00, 0x00, //0x0000313d jmp LBB14_39 - //0x00003142 LBB14_7 - 0x31, 0xc0, //0x00003142 xorl %eax, %eax - 0x48, 0x39, 0xf0, //0x00003144 cmpq %rsi, %rax - 0x0f, 0x8d, 0xa2, 0x01, 0x00, 0x00, //0x00003147 jge LBB14_39 - //0x0000314d LBB14_8 - 0x41, 0xb3, 0x01, //0x0000314d movb $1, %r11b - 0x45, 0x31, 0xc9, //0x00003150 xorl %r9d, %r9d - 0x45, 0x31, 0xd2, //0x00003153 xorl %r10d, %r10d - 0x45, 0x31, 0xc0, //0x00003156 xorl %r8d, %r8d - 0xe9, 0x26, 0x00, 0x00, 0x00, //0x00003159 jmp LBB14_12 - //0x0000315e LBB14_20 - 0xc7, 0x45, 0xfc, 0x01, 0x00, 0x00, 0x00, //0x0000315e movl $1, $-4(%rbp) - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003165 .p2align 4, 0x90 - //0x00003170 LBB14_11 - 0x48, 0x83, 0xc0, 0x01, //0x00003170 addq $1, %rax - 0x48, 0x39, 0xf0, //0x00003174 cmpq %rsi, %rax - 0x41, 0x0f, 0x9c, 0xc3, //0x00003177 setl %r11b - 0x48, 0x39, 0xc6, //0x0000317b cmpq %rax, %rsi - 0x0f, 0x84, 0x91, 0x00, 0x00, 0x00, //0x0000317e je LBB14_22 - //0x00003184 LBB14_12 - 0x0f, 0xb6, 0x0c, 0x07, //0x00003184 movzbl (%rdi,%rax), %ecx - 0x8d, 0x51, 0xd0, //0x00003188 leal $-48(%rcx), %edx - 0x80, 0xfa, 0x09, //0x0000318b cmpb $9, %dl - 0x0f, 0x87, 0x2c, 0x00, 0x00, 0x00, //0x0000318e ja LBB14_17 - 0x80, 0xf9, 0x30, //0x00003194 cmpb $48, %cl - 0x0f, 0x85, 0x43, 0x00, 0x00, 0x00, //0x00003197 jne LBB14_19 - 0x45, 0x85, 0xd2, //0x0000319d testl %r10d, %r10d - 0x0f, 0x84, 0x63, 0x00, 0x00, 0x00, //0x000031a0 je LBB14_21 - 0x4d, 0x63, 0xd9, //0x000031a6 movslq %r9d, %r11 - 0x4c, 0x39, 0x5d, 0xe8, //0x000031a9 cmpq %r11, $-24(%rbp) - 0x0f, 0x87, 0x3a, 0x00, 0x00, 0x00, //0x000031ad ja LBB14_9 - 0xe9, 0x49, 0x00, 0x00, 0x00, //0x000031b3 jmp LBB14_10 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000031b8 .p2align 4, 0x90 - //0x000031c0 LBB14_17 - 0x80, 0xf9, 0x2e, //0x000031c0 cmpb $46, %cl - 0x0f, 0x85, 0x4f, 0x00, 0x00, 0x00, //0x000031c3 jne LBB14_23 - 0x44, 0x89, 0x55, 0xf4, //0x000031c9 movl %r10d, $-12(%rbp) - 0x41, 0xb8, 0x01, 0x00, 0x00, 0x00, //0x000031cd movl $1, %r8d - 0xe9, 0x98, 0xff, 0xff, 0xff, //0x000031d3 jmp LBB14_11 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000031d8 .p2align 4, 0x90 - //0x000031e0 LBB14_19 - 0x4d, 0x63, 0xda, //0x000031e0 movslq %r10d, %r11 - 0x4c, 0x39, 0x5d, 0xe8, //0x000031e3 cmpq %r11, $-24(%rbp) - 0x0f, 0x86, 0x71, 0xff, 0xff, 0xff, //0x000031e7 jbe LBB14_20 - //0x000031ed LBB14_9 - 0x48, 0x8b, 0x55, 0xe0, //0x000031ed movq $-32(%rbp), %rdx - 0x42, 0x88, 0x0c, 0x1a, //0x000031f1 movb %cl, (%rdx,%r11) - 0x44, 0x8b, 0x4d, 0xf0, //0x000031f5 movl $-16(%rbp), %r9d - 0x41, 0x83, 0xc1, 0x01, //0x000031f9 addl $1, %r9d - 0x44, 0x89, 0x4d, 0xf0, //0x000031fd movl %r9d, $-16(%rbp) - //0x00003201 LBB14_10 - 0x45, 0x89, 0xca, //0x00003201 movl %r9d, %r10d - 0xe9, 0x67, 0xff, 0xff, 0xff, //0x00003204 jmp LBB14_11 - //0x00003209 LBB14_21 - 0x83, 0x45, 0xf4, 0xff, //0x00003209 addl $-1, $-12(%rbp) - 0x45, 0x31, 0xd2, //0x0000320d xorl %r10d, %r10d - 0xe9, 0x5b, 0xff, 0xff, 0xff, //0x00003210 jmp LBB14_11 - //0x00003215 LBB14_22 - 0x48, 0x89, 0xf0, //0x00003215 movq %rsi, %rax - //0x00003218 LBB14_23 - 0x45, 0x85, 0xc0, //0x00003218 testl %r8d, %r8d - 0x0f, 0x84, 0x0f, 0x00, 0x00, 0x00, //0x0000321b je LBB14_25 - 0x41, 0xf6, 0xc3, 0x01, //0x00003221 testb $1, %r11b - 0x0f, 0x85, 0x13, 0x00, 0x00, 0x00, //0x00003225 jne LBB14_26 - 0xe9, 0xc2, 0x00, 0x00, 0x00, //0x0000322b jmp LBB14_40 - //0x00003230 LBB14_25 - 0x44, 0x89, 0x4d, 0xf4, //0x00003230 movl %r9d, $-12(%rbp) - 0x41, 0xf6, 0xc3, 0x01, //0x00003234 testb $1, %r11b - 0x0f, 0x84, 0xb4, 0x00, 0x00, 0x00, //0x00003238 je LBB14_40 - //0x0000323e LBB14_26 - 0x89, 0xc2, //0x0000323e movl %eax, %edx - 0x8a, 0x0c, 0x17, //0x00003240 movb (%rdi,%rdx), %cl - 0x80, 0xc9, 0x20, //0x00003243 orb $32, %cl - 0x80, 0xf9, 0x65, //0x00003246 cmpb $101, %cl - 0x0f, 0x85, 0xa3, 0x00, 0x00, 0x00, //0x00003249 jne LBB14_40 - 0x8a, 0x4c, 0x17, 0x01, //0x0000324f movb $1(%rdi,%rdx), %cl - 0x80, 0xf9, 0x2d, //0x00003253 cmpb $45, %cl - 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x00003256 je LBB14_30 - 0x41, 0xb8, 0x01, 0x00, 0x00, 0x00, //0x0000325c movl $1, %r8d - 0x80, 0xf9, 0x2b, //0x00003262 cmpb $43, %cl - 0x0f, 0x85, 0x26, 0x00, 0x00, 0x00, //0x00003265 jne LBB14_32 - 0x83, 0xc0, 0x02, //0x0000326b addl $2, %eax - 0xe9, 0x09, 0x00, 0x00, 0x00, //0x0000326e jmp LBB14_31 - //0x00003273 LBB14_30 - 0x83, 0xc0, 0x02, //0x00003273 addl $2, %eax - 0x41, 0xb8, 0xff, 0xff, 0xff, 0xff, //0x00003276 movl $-1, %r8d - //0x0000327c LBB14_31 - 0x89, 0xc2, //0x0000327c movl %eax, %edx - 0x48, 0x63, 0xc2, //0x0000327e movslq %edx, %rax - 0x31, 0xd2, //0x00003281 xorl %edx, %edx - 0x48, 0x39, 0xf0, //0x00003283 cmpq %rsi, %rax - 0x0f, 0x8c, 0x17, 0x00, 0x00, 0x00, //0x00003286 jl LBB14_33 - 0xe9, 0x57, 0x00, 0x00, 0x00, //0x0000328c jmp LBB14_38 - //0x00003291 LBB14_32 - 0x48, 0x83, 0xc2, 0x01, //0x00003291 addq $1, %rdx - 0x48, 0x63, 0xc2, //0x00003295 movslq %edx, %rax - 0x31, 0xd2, //0x00003298 xorl %edx, %edx - 0x48, 0x39, 0xf0, //0x0000329a cmpq %rsi, %rax - 0x0f, 0x8d, 0x45, 0x00, 0x00, 0x00, //0x0000329d jge LBB14_38 - //0x000032a3 LBB14_33 - 0x31, 0xd2, //0x000032a3 xorl %edx, %edx - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000032a5 .p2align 4, 0x90 - //0x000032b0 LBB14_34 - 0x0f, 0xbe, 0x0c, 0x07, //0x000032b0 movsbl (%rdi,%rax), %ecx - 0x83, 0xf9, 0x30, //0x000032b4 cmpl $48, %ecx - 0x0f, 0x8c, 0x2b, 0x00, 0x00, 0x00, //0x000032b7 jl LBB14_38 - 0x80, 0xf9, 0x39, //0x000032bd cmpb $57, %cl - 0x0f, 0x8f, 0x22, 0x00, 0x00, 0x00, //0x000032c0 jg LBB14_38 - 0x81, 0xfa, 0x0f, 0x27, 0x00, 0x00, //0x000032c6 cmpl $9999, %edx - 0x0f, 0x8f, 0x16, 0x00, 0x00, 0x00, //0x000032cc jg LBB14_38 - 0x8d, 0x14, 0x92, //0x000032d2 leal (%rdx,%rdx,4), %edx - 0x8d, 0x14, 0x51, //0x000032d5 leal (%rcx,%rdx,2), %edx - 0x83, 0xc2, 0xd0, //0x000032d8 addl $-48, %edx - 0x48, 0x83, 0xc0, 0x01, //0x000032db addq $1, %rax - 0x48, 0x39, 0xc6, //0x000032df cmpq %rax, %rsi - 0x0f, 0x85, 0xc8, 0xff, 0xff, 0xff, //0x000032e2 jne LBB14_34 - //0x000032e8 LBB14_38 - 0x41, 0x0f, 0xaf, 0xd0, //0x000032e8 imull %r8d, %edx - 0x03, 0x55, 0xf4, //0x000032ec addl $-12(%rbp), %edx - //0x000032ef LBB14_39 - 0x89, 0x55, 0xf4, //0x000032ef movl %edx, $-12(%rbp) - //0x000032f2 LBB14_40 - 0x48, 0x8d, 0x7d, 0xe0, //0x000032f2 leaq $-32(%rbp), %rdi - 0x48, 0x8d, 0x75, 0xd8, //0x000032f6 leaq $-40(%rbp), %rsi - 0xe8, 0xd1, 0xf9, 0xff, 0xff, //0x000032fa callq _decimal_to_f64 - 0xf2, 0x0f, 0x10, 0x45, 0xd8, //0x000032ff movsd $-40(%rbp), %xmm0 - 0x48, 0x83, 0xc4, 0x30, //0x00003304 addq $48, %rsp - 0x5d, //0x00003308 popq %rbp - 0xc3, //0x00003309 retq - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000330a .p2align 4, 0x90 - //0x00003310 _value - 0x55, //0x00003310 pushq %rbp - 0x48, 0x89, 0xe5, //0x00003311 movq %rsp, %rbp - 0x41, 0x57, //0x00003314 pushq %r15 - 0x41, 0x56, //0x00003316 pushq %r14 - 0x41, 0x55, //0x00003318 pushq %r13 - 0x41, 0x54, //0x0000331a pushq %r12 - 0x53, //0x0000331c pushq %rbx - 0x48, 0x83, 0xec, 0x28, //0x0000331d subq $40, %rsp - 0x49, 0x89, 0xc9, //0x00003321 movq %rcx, %r9 - 0x49, 0x89, 0xd4, //0x00003324 movq %rdx, %r12 - 0x49, 0x89, 0xf5, //0x00003327 movq %rsi, %r13 - 0x49, 0x89, 0xff, //0x0000332a movq %rdi, %r15 - 0x48, 0x89, 0x7d, 0xb8, //0x0000332d movq %rdi, $-72(%rbp) - 0x48, 0x89, 0x75, 0xc0, //0x00003331 movq %rsi, $-64(%rbp) - 0x48, 0x39, 0xf2, //0x00003335 cmpq %rsi, %rdx - 0x0f, 0x83, 0x28, 0x00, 0x00, 0x00, //0x00003338 jae LBB15_5 - 0x43, 0x8a, 0x04, 0x27, //0x0000333e movb (%r15,%r12), %al - 0x3c, 0x0d, //0x00003342 cmpb $13, %al - 0x0f, 0x84, 0x1c, 0x00, 0x00, 0x00, //0x00003344 je LBB15_5 - 0x3c, 0x20, //0x0000334a cmpb $32, %al - 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x0000334c je LBB15_5 - 0x8d, 0x48, 0xf7, //0x00003352 leal $-9(%rax), %ecx - 0x80, 0xf9, 0x01, //0x00003355 cmpb $1, %cl - 0x0f, 0x86, 0x08, 0x00, 0x00, 0x00, //0x00003358 jbe LBB15_5 - 0x4c, 0x89, 0xe3, //0x0000335e movq %r12, %rbx - 0xe9, 0x09, 0x01, 0x00, 0x00, //0x00003361 jmp LBB15_27 - //0x00003366 LBB15_5 - 0x49, 0x8d, 0x5c, 0x24, 0x01, //0x00003366 leaq $1(%r12), %rbx - 0x4c, 0x39, 0xeb, //0x0000336b cmpq %r13, %rbx - 0x0f, 0x83, 0x20, 0x00, 0x00, 0x00, //0x0000336e jae LBB15_9 - 0x41, 0x8a, 0x04, 0x1f, //0x00003374 movb (%r15,%rbx), %al - 0x3c, 0x0d, //0x00003378 cmpb $13, %al - 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x0000337a je LBB15_9 - 0x3c, 0x20, //0x00003380 cmpb $32, %al - 0x0f, 0x84, 0x0c, 0x00, 0x00, 0x00, //0x00003382 je LBB15_9 - 0x8d, 0x48, 0xf7, //0x00003388 leal $-9(%rax), %ecx - 0x80, 0xf9, 0x01, //0x0000338b cmpb $1, %cl - 0x0f, 0x87, 0xdb, 0x00, 0x00, 0x00, //0x0000338e ja LBB15_27 - //0x00003394 LBB15_9 - 0x49, 0x8d, 0x5c, 0x24, 0x02, //0x00003394 leaq $2(%r12), %rbx - 0x4c, 0x39, 0xeb, //0x00003399 cmpq %r13, %rbx - 0x0f, 0x83, 0x20, 0x00, 0x00, 0x00, //0x0000339c jae LBB15_13 - 0x41, 0x8a, 0x04, 0x1f, //0x000033a2 movb (%r15,%rbx), %al - 0x3c, 0x0d, //0x000033a6 cmpb $13, %al - 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x000033a8 je LBB15_13 - 0x3c, 0x20, //0x000033ae cmpb $32, %al - 0x0f, 0x84, 0x0c, 0x00, 0x00, 0x00, //0x000033b0 je LBB15_13 - 0x8d, 0x48, 0xf7, //0x000033b6 leal $-9(%rax), %ecx - 0x80, 0xf9, 0x01, //0x000033b9 cmpb $1, %cl - 0x0f, 0x87, 0xad, 0x00, 0x00, 0x00, //0x000033bc ja LBB15_27 - //0x000033c2 LBB15_13 - 0x49, 0x8d, 0x5c, 0x24, 0x03, //0x000033c2 leaq $3(%r12), %rbx - 0x4c, 0x39, 0xeb, //0x000033c7 cmpq %r13, %rbx - 0x0f, 0x83, 0x20, 0x00, 0x00, 0x00, //0x000033ca jae LBB15_17 - 0x41, 0x8a, 0x04, 0x1f, //0x000033d0 movb (%r15,%rbx), %al - 0x3c, 0x0d, //0x000033d4 cmpb $13, %al - 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x000033d6 je LBB15_17 - 0x3c, 0x20, //0x000033dc cmpb $32, %al - 0x0f, 0x84, 0x0c, 0x00, 0x00, 0x00, //0x000033de je LBB15_17 - 0x8d, 0x48, 0xf7, //0x000033e4 leal $-9(%rax), %ecx - 0x80, 0xf9, 0x01, //0x000033e7 cmpb $1, %cl - 0x0f, 0x87, 0x7f, 0x00, 0x00, 0x00, //0x000033ea ja LBB15_27 - //0x000033f0 LBB15_17 - 0x49, 0x8d, 0x5c, 0x24, 0x04, //0x000033f0 leaq $4(%r12), %rbx - 0x4c, 0x39, 0xeb, //0x000033f5 cmpq %r13, %rbx - 0x0f, 0x83, 0x4c, 0x00, 0x00, 0x00, //0x000033f8 jae LBB15_31 - 0x49, 0x39, 0xdd, //0x000033fe cmpq %rbx, %r13 - 0x0f, 0x84, 0x4f, 0x00, 0x00, 0x00, //0x00003401 je LBB15_23 - 0x4b, 0x8d, 0x04, 0x2f, //0x00003407 leaq (%r15,%r13), %rax - 0x48, 0xb9, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x0000340b movabsq $4294977024, %rcx - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003415 .p2align 4, 0x90 - //0x00003420 LBB15_20 - 0x41, 0x0f, 0xbe, 0x14, 0x1f, //0x00003420 movsbl (%r15,%rbx), %edx - 0x83, 0xfa, 0x20, //0x00003425 cmpl $32, %edx - 0x0f, 0x87, 0x34, 0x00, 0x00, 0x00, //0x00003428 ja LBB15_25 - 0x48, 0x0f, 0xa3, 0xd1, //0x0000342e btq %rdx, %rcx - 0x0f, 0x83, 0x2a, 0x00, 0x00, 0x00, //0x00003432 jae LBB15_25 - 0x48, 0x83, 0xc3, 0x01, //0x00003438 addq $1, %rbx - 0x49, 0x39, 0xdd, //0x0000343c cmpq %rbx, %r13 - 0x0f, 0x85, 0xdb, 0xff, 0xff, 0xff, //0x0000343f jne LBB15_20 - 0xe9, 0x12, 0x00, 0x00, 0x00, //0x00003445 jmp LBB15_24 - //0x0000344a LBB15_31 - 0x48, 0x89, 0x5d, 0xd0, //0x0000344a movq %rbx, $-48(%rbp) - 0x49, 0x89, 0xdc, //0x0000344e movq %rbx, %r12 - 0xe9, 0x64, 0x00, 0x00, 0x00, //0x00003451 jmp LBB15_32 - //0x00003456 LBB15_23 - 0x4c, 0x01, 0xfb, //0x00003456 addq %r15, %rbx - 0x48, 0x89, 0xd8, //0x00003459 movq %rbx, %rax - //0x0000345c LBB15_24 - 0x4c, 0x29, 0xf8, //0x0000345c subq %r15, %rax - 0x48, 0x89, 0xc3, //0x0000345f movq %rax, %rbx - //0x00003462 LBB15_25 - 0x4c, 0x39, 0xeb, //0x00003462 cmpq %r13, %rbx - 0x0f, 0x83, 0x4f, 0x00, 0x00, 0x00, //0x00003465 jae LBB15_32 - 0x41, 0x8a, 0x04, 0x1f, //0x0000346b movb (%r15,%rbx), %al - //0x0000346f LBB15_27 - 0x0f, 0xbe, 0xc8, //0x0000346f movsbl %al, %ecx - 0x83, 0xf9, 0x7d, //0x00003472 cmpl $125, %ecx - 0x0f, 0x87, 0xcf, 0x00, 0x00, 0x00, //0x00003475 ja LBB15_41 - 0x4c, 0x8d, 0x63, 0x01, //0x0000347b leaq $1(%rbx), %r12 - 0x4d, 0x8d, 0x34, 0x1f, //0x0000347f leaq (%r15,%rbx), %r14 - 0x48, 0x8d, 0x15, 0x7a, 0x03, 0x00, 0x00, //0x00003483 leaq $890(%rip), %rdx /* LJTI15_0+0(%rip) */ - 0x48, 0x63, 0x0c, 0x8a, //0x0000348a movslq (%rdx,%rcx,4), %rcx - 0x48, 0x01, 0xd1, //0x0000348e addq %rdx, %rcx - 0xff, 0xe1, //0x00003491 jmpq *%rcx - //0x00003493 LBB15_29 - 0x48, 0x89, 0x5d, 0xd0, //0x00003493 movq %rbx, $-48(%rbp) - 0x41, 0xf6, 0xc0, 0x02, //0x00003497 testb $2, %r8b - 0x0f, 0x85, 0x35, 0x00, 0x00, 0x00, //0x0000349b jne LBB15_35 - 0x48, 0x8d, 0x7d, 0xb8, //0x000034a1 leaq $-72(%rbp), %rdi - 0x48, 0x8d, 0x75, 0xd0, //0x000034a5 leaq $-48(%rbp), %rsi - 0x4c, 0x89, 0xca, //0x000034a9 movq %r9, %rdx - 0xe8, 0x5f, 0x0b, 0x00, 0x00, //0x000034ac callq _vnumber - 0x48, 0x8b, 0x5d, 0xd0, //0x000034b1 movq $-48(%rbp), %rbx - 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x000034b5 jmp LBB15_34 - //0x000034ba LBB15_32 - 0x49, 0xc7, 0x01, 0x01, 0x00, 0x00, 0x00, //0x000034ba movq $1, (%r9) - //0x000034c1 LBB15_33 - 0x4c, 0x89, 0xe3, //0x000034c1 movq %r12, %rbx - //0x000034c4 LBB15_34 - 0x48, 0x89, 0xd8, //0x000034c4 movq %rbx, %rax - 0x48, 0x83, 0xc4, 0x28, //0x000034c7 addq $40, %rsp - 0x5b, //0x000034cb popq %rbx - 0x41, 0x5c, //0x000034cc popq %r12 - 0x41, 0x5d, //0x000034ce popq %r13 - 0x41, 0x5e, //0x000034d0 popq %r14 - 0x41, 0x5f, //0x000034d2 popq %r15 - 0x5d, //0x000034d4 popq %rbp - 0xc3, //0x000034d5 retq - //0x000034d6 LBB15_35 - 0x49, 0x29, 0xdd, //0x000034d6 subq %rbx, %r13 - 0x31, 0xc9, //0x000034d9 xorl %ecx, %ecx - 0x3c, 0x2d, //0x000034db cmpb $45, %al - 0x0f, 0x94, 0xc1, //0x000034dd sete %cl - 0x49, 0x01, 0xce, //0x000034e0 addq %rcx, %r14 - 0x49, 0x29, 0xcd, //0x000034e3 subq %rcx, %r13 - 0x0f, 0x84, 0xf0, 0x02, 0x00, 0x00, //0x000034e6 je LBB15_84 - 0x4d, 0x89, 0xcc, //0x000034ec movq %r9, %r12 - 0x41, 0x8a, 0x06, //0x000034ef movb (%r14), %al - 0x04, 0xd0, //0x000034f2 addb $-48, %al - 0x3c, 0x09, //0x000034f4 cmpb $9, %al - 0x0f, 0x87, 0xf2, 0x02, 0x00, 0x00, //0x000034f6 ja LBB15_86 - 0x4c, 0x89, 0xf7, //0x000034fc movq %r14, %rdi - 0x4c, 0x89, 0xee, //0x000034ff movq %r13, %rsi - 0xe8, 0x79, 0x1e, 0x00, 0x00, //0x00003502 callq _do_skip_number - 0x48, 0x85, 0xc0, //0x00003507 testq %rax, %rax - 0x0f, 0x88, 0xd8, 0x02, 0x00, 0x00, //0x0000350a js LBB15_85 - 0x49, 0x01, 0xc6, //0x00003510 addq %rax, %r14 - 0x4d, 0x29, 0xfe, //0x00003513 subq %r15, %r14 - 0x48, 0xb8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, //0x00003516 movabsq $9223372036854775807, %rax - 0x48, 0x39, 0xc3, //0x00003520 cmpq %rax, %rbx - 0x4d, 0x89, 0xe1, //0x00003523 movq %r12, %r9 - 0x0f, 0x82, 0x0b, 0x00, 0x00, 0x00, //0x00003526 jb LBB15_40 - //0x0000352c LBB15_39 - 0x49, 0x89, 0x19, //0x0000352c movq %rbx, (%r9) - 0x4c, 0x89, 0xf3, //0x0000352f movq %r14, %rbx - 0xe9, 0x8d, 0xff, 0xff, 0xff, //0x00003532 jmp LBB15_34 - //0x00003537 LBB15_40 - 0x49, 0xc7, 0x01, 0x08, 0x00, 0x00, 0x00, //0x00003537 movq $8, (%r9) - 0x49, 0x89, 0x59, 0x18, //0x0000353e movq %rbx, $24(%r9) - 0x4c, 0x89, 0xf3, //0x00003542 movq %r14, %rbx - 0xe9, 0x7a, 0xff, 0xff, 0xff, //0x00003545 jmp LBB15_34 - //0x0000354a LBB15_41 - 0x49, 0xc7, 0x01, 0xfe, 0xff, 0xff, 0xff, //0x0000354a movq $-2, (%r9) - 0xe9, 0x6e, 0xff, 0xff, 0xff, //0x00003551 jmp LBB15_34 - //0x00003556 LBB15_42 - 0x4d, 0x89, 0xce, //0x00003556 movq %r9, %r14 - 0x48, 0xc7, 0x45, 0xc8, 0xff, 0xff, 0xff, 0xff, //0x00003559 movq $-1, $-56(%rbp) - 0x48, 0x8d, 0x7d, 0xb8, //0x00003561 leaq $-72(%rbp), %rdi - 0x48, 0x8d, 0x55, 0xc8, //0x00003565 leaq $-56(%rbp), %rdx - 0x4c, 0x89, 0xe6, //0x00003569 movq %r12, %rsi - 0x4c, 0x89, 0xc1, //0x0000356c movq %r8, %rcx - 0xe8, 0x3c, 0x05, 0x00, 0x00, //0x0000356f callq _advance_string - 0x48, 0x89, 0xc3, //0x00003574 movq %rax, %rbx - 0x48, 0x85, 0xc0, //0x00003577 testq %rax, %rax - 0x0f, 0x88, 0x55, 0x01, 0x00, 0x00, //0x0000357a js LBB15_65 - 0x48, 0x89, 0x5d, 0xd0, //0x00003580 movq %rbx, $-48(%rbp) - 0x4d, 0x89, 0x66, 0x10, //0x00003584 movq %r12, $16(%r14) - 0x48, 0x8b, 0x45, 0xc8, //0x00003588 movq $-56(%rbp), %rax - 0x48, 0x39, 0xd8, //0x0000358c cmpq %rbx, %rax - 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x0000358f movq $-1, %rcx - 0x48, 0x0f, 0x4c, 0xc8, //0x00003596 cmovlq %rax, %rcx - 0x49, 0x89, 0x4e, 0x18, //0x0000359a movq %rcx, $24(%r14) - 0xb8, 0x07, 0x00, 0x00, 0x00, //0x0000359e movl $7, %eax - 0x49, 0x89, 0x06, //0x000035a3 movq %rax, (%r14) - 0xe9, 0x19, 0xff, 0xff, 0xff, //0x000035a6 jmp LBB15_34 - //0x000035ab LBB15_44 - 0x45, 0x85, 0xc0, //0x000035ab testl %r8d, %r8d - 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x000035ae movq $-2, %rax - 0xb9, 0x0b, 0x00, 0x00, 0x00, //0x000035b5 movl $11, %ecx - 0xe9, 0xfd, 0x00, 0x00, 0x00, //0x000035ba jmp LBB15_64 - //0x000035bf LBB15_45 - 0x45, 0x85, 0xc0, //0x000035bf testl %r8d, %r8d - 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x000035c2 movq $-2, %rax - 0xb9, 0x0a, 0x00, 0x00, 0x00, //0x000035c9 movl $10, %ecx - 0xe9, 0xe9, 0x00, 0x00, 0x00, //0x000035ce jmp LBB15_64 - //0x000035d3 LBB15_46 - 0x49, 0xc7, 0x01, 0x05, 0x00, 0x00, 0x00, //0x000035d3 movq $5, (%r9) - 0xe9, 0xe2, 0xfe, 0xff, 0xff, //0x000035da jmp LBB15_33 - //0x000035df LBB15_47 - 0x45, 0x85, 0xc0, //0x000035df testl %r8d, %r8d - 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x000035e2 movq $-2, %rax - 0xb9, 0x0c, 0x00, 0x00, 0x00, //0x000035e9 movl $12, %ecx - 0xe9, 0xc9, 0x00, 0x00, 0x00, //0x000035ee jmp LBB15_64 - //0x000035f3 LBB15_48 - 0x49, 0x8d, 0x4d, 0xfc, //0x000035f3 leaq $-4(%r13), %rcx - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000035f7 movq $-1, %rax - 0x48, 0x39, 0xcb, //0x000035fe cmpq %rcx, %rbx - 0x0f, 0x83, 0x1c, 0x00, 0x00, 0x00, //0x00003601 jae LBB15_51 - 0x43, 0x8b, 0x0c, 0x27, //0x00003607 movl (%r15,%r12), %ecx - 0x81, 0xf9, 0x61, 0x6c, 0x73, 0x65, //0x0000360b cmpl $1702063201, %ecx - 0x0f, 0x85, 0xcd, 0x00, 0x00, 0x00, //0x00003611 jne LBB15_66 - 0x48, 0x83, 0xc3, 0x05, //0x00003617 addq $5, %rbx - 0xb8, 0x04, 0x00, 0x00, 0x00, //0x0000361b movl $4, %eax - 0x49, 0x89, 0xdd, //0x00003620 movq %rbx, %r13 - //0x00003623 LBB15_51 - 0x4c, 0x89, 0x6d, 0xd0, //0x00003623 movq %r13, $-48(%rbp) - 0x4d, 0x89, 0xec, //0x00003627 movq %r13, %r12 - //0x0000362a LBB15_52 - 0x49, 0x89, 0x01, //0x0000362a movq %rax, (%r9) - 0xe9, 0x8f, 0xfe, 0xff, 0xff, //0x0000362d jmp LBB15_33 - //0x00003632 LBB15_53 - 0x49, 0x8d, 0x4d, 0xfd, //0x00003632 leaq $-3(%r13), %rcx - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00003636 movq $-1, %rax - 0x48, 0x39, 0xcb, //0x0000363d cmpq %rcx, %rbx - 0x0f, 0x83, 0x4c, 0x00, 0x00, 0x00, //0x00003640 jae LBB15_57 - 0x41, 0x8b, 0x0e, //0x00003646 movl (%r14), %ecx - 0x81, 0xf9, 0x6e, 0x75, 0x6c, 0x6c, //0x00003649 cmpl $1819047278, %ecx - 0x0f, 0x85, 0xd3, 0x00, 0x00, 0x00, //0x0000364f jne LBB15_70 - 0x48, 0x83, 0xc3, 0x04, //0x00003655 addq $4, %rbx - 0xb8, 0x02, 0x00, 0x00, 0x00, //0x00003659 movl $2, %eax - 0xe9, 0x2c, 0x00, 0x00, 0x00, //0x0000365e jmp LBB15_56 - //0x00003663 LBB15_59 - 0x49, 0x8d, 0x4d, 0xfd, //0x00003663 leaq $-3(%r13), %rcx - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00003667 movq $-1, %rax - 0x48, 0x39, 0xcb, //0x0000366e cmpq %rcx, %rbx - 0x0f, 0x83, 0x1b, 0x00, 0x00, 0x00, //0x00003671 jae LBB15_57 - 0x41, 0x8b, 0x0e, //0x00003677 movl (%r14), %ecx - 0x81, 0xf9, 0x74, 0x72, 0x75, 0x65, //0x0000367a cmpl $1702195828, %ecx - 0x0f, 0x85, 0xd7, 0x00, 0x00, 0x00, //0x00003680 jne LBB15_74 - 0x48, 0x83, 0xc3, 0x04, //0x00003686 addq $4, %rbx - 0xb8, 0x03, 0x00, 0x00, 0x00, //0x0000368a movl $3, %eax - //0x0000368f LBB15_56 - 0x49, 0x89, 0xdd, //0x0000368f movq %rbx, %r13 - //0x00003692 LBB15_57 - 0x4c, 0x89, 0x6d, 0xd0, //0x00003692 movq %r13, $-48(%rbp) - 0x4c, 0x89, 0xeb, //0x00003696 movq %r13, %rbx - //0x00003699 LBB15_58 - 0x49, 0x89, 0x01, //0x00003699 movq %rax, (%r9) - 0xe9, 0x23, 0xfe, 0xff, 0xff, //0x0000369c jmp LBB15_34 - //0x000036a1 LBB15_62 - 0x49, 0xc7, 0x01, 0x06, 0x00, 0x00, 0x00, //0x000036a1 movq $6, (%r9) - 0xe9, 0x14, 0xfe, 0xff, 0xff, //0x000036a8 jmp LBB15_33 - //0x000036ad LBB15_63 - 0x45, 0x85, 0xc0, //0x000036ad testl %r8d, %r8d - 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x000036b0 movq $-2, %rax - 0xb9, 0x0d, 0x00, 0x00, 0x00, //0x000036b7 movl $13, %ecx - //0x000036bc LBB15_64 - 0x48, 0x0f, 0x49, 0xc8, //0x000036bc cmovnsq %rax, %rcx - 0x49, 0x89, 0x09, //0x000036c0 movq %rcx, (%r9) - 0x41, 0xc1, 0xf8, 0x1f, //0x000036c3 sarl $31, %r8d - 0x41, 0xf7, 0xd0, //0x000036c7 notl %r8d - 0x49, 0x63, 0xc0, //0x000036ca movslq %r8d, %rax - 0x49, 0x01, 0xc4, //0x000036cd addq %rax, %r12 - 0xe9, 0xec, 0xfd, 0xff, 0xff, //0x000036d0 jmp LBB15_33 - //0x000036d5 LBB15_65 - 0x4c, 0x89, 0x6d, 0xd0, //0x000036d5 movq %r13, $-48(%rbp) - 0x49, 0x89, 0x1e, //0x000036d9 movq %rbx, (%r14) - 0x4c, 0x89, 0xeb, //0x000036dc movq %r13, %rbx - 0xe9, 0xe0, 0xfd, 0xff, 0xff, //0x000036df jmp LBB15_34 - //0x000036e4 LBB15_66 - 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x000036e4 movq $-2, %rax - 0x80, 0xf9, 0x61, //0x000036eb cmpb $97, %cl - 0x0f, 0x85, 0x36, 0xff, 0xff, 0xff, //0x000036ee jne LBB15_52 - 0x41, 0x80, 0x7c, 0x1f, 0x02, 0x6c, //0x000036f4 cmpb $108, $2(%r15,%rbx) - 0x0f, 0x85, 0xb3, 0x00, 0x00, 0x00, //0x000036fa jne LBB15_79 - 0x41, 0x80, 0x7c, 0x1f, 0x03, 0x73, //0x00003700 cmpb $115, $3(%r15,%rbx) - 0x0f, 0x85, 0xc0, 0x00, 0x00, 0x00, //0x00003706 jne LBB15_81 - 0x31, 0xc9, //0x0000370c xorl %ecx, %ecx - 0x42, 0x80, 0x7c, 0x3b, 0x04, 0x65, //0x0000370e cmpb $101, $4(%rbx,%r15) - 0x0f, 0x94, 0xc1, //0x00003714 sete %cl - 0x4c, 0x8d, 0x24, 0x19, //0x00003717 leaq (%rcx,%rbx), %r12 - 0x49, 0x83, 0xc4, 0x04, //0x0000371b addq $4, %r12 - 0x4c, 0x89, 0x65, 0xd0, //0x0000371f movq %r12, $-48(%rbp) - 0xe9, 0x02, 0xff, 0xff, 0xff, //0x00003723 jmp LBB15_52 - //0x00003728 LBB15_70 - 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00003728 movq $-2, %rax - 0x80, 0xf9, 0x6e, //0x0000372f cmpb $110, %cl - 0x0f, 0x85, 0x61, 0xff, 0xff, 0xff, //0x00003732 jne LBB15_58 - 0x41, 0x80, 0x7c, 0x1f, 0x01, 0x75, //0x00003738 cmpb $117, $1(%r15,%rbx) - 0x0f, 0x85, 0x5f, 0x00, 0x00, 0x00, //0x0000373e jne LBB15_80 - 0x41, 0x80, 0x7c, 0x1f, 0x02, 0x6c, //0x00003744 cmpb $108, $2(%r15,%rbx) - 0x0f, 0x85, 0x6c, 0x00, 0x00, 0x00, //0x0000374a jne LBB15_83 - 0x31, 0xc9, //0x00003750 xorl %ecx, %ecx - 0x42, 0x80, 0x7c, 0x3b, 0x03, 0x6c, //0x00003752 cmpb $108, $3(%rbx,%r15) - 0xe9, 0x30, 0x00, 0x00, 0x00, //0x00003758 jmp LBB15_78 - //0x0000375d LBB15_74 - 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x0000375d movq $-2, %rax - 0x80, 0xf9, 0x74, //0x00003764 cmpb $116, %cl - 0x0f, 0x85, 0x2c, 0xff, 0xff, 0xff, //0x00003767 jne LBB15_58 - 0x41, 0x80, 0x7c, 0x1f, 0x01, 0x72, //0x0000376d cmpb $114, $1(%r15,%rbx) - 0x0f, 0x85, 0x2a, 0x00, 0x00, 0x00, //0x00003773 jne LBB15_80 - 0x41, 0x80, 0x7c, 0x1f, 0x02, 0x75, //0x00003779 cmpb $117, $2(%r15,%rbx) - 0x0f, 0x85, 0x37, 0x00, 0x00, 0x00, //0x0000377f jne LBB15_83 - 0x31, 0xc9, //0x00003785 xorl %ecx, %ecx - 0x42, 0x80, 0x7c, 0x3b, 0x03, 0x65, //0x00003787 cmpb $101, $3(%rbx,%r15) - //0x0000378d LBB15_78 - 0x0f, 0x94, 0xc1, //0x0000378d sete %cl - 0x48, 0x01, 0xcb, //0x00003790 addq %rcx, %rbx - 0x48, 0x83, 0xc3, 0x03, //0x00003793 addq $3, %rbx - 0x48, 0x89, 0x5d, 0xd0, //0x00003797 movq %rbx, $-48(%rbp) - 0x49, 0x89, 0x01, //0x0000379b movq %rax, (%r9) - 0xe9, 0x21, 0xfd, 0xff, 0xff, //0x0000379e jmp LBB15_34 - //0x000037a3 LBB15_80 - 0x48, 0x83, 0xc3, 0x01, //0x000037a3 addq $1, %rbx - 0x48, 0x89, 0x5d, 0xd0, //0x000037a7 movq %rbx, $-48(%rbp) - 0x49, 0x89, 0x01, //0x000037ab movq %rax, (%r9) - 0xe9, 0x11, 0xfd, 0xff, 0xff, //0x000037ae jmp LBB15_34 - //0x000037b3 LBB15_79 - 0x48, 0x83, 0xc3, 0x02, //0x000037b3 addq $2, %rbx - 0xe9, 0x14, 0x00, 0x00, 0x00, //0x000037b7 jmp LBB15_82 - //0x000037bc LBB15_83 - 0x48, 0x83, 0xc3, 0x02, //0x000037bc addq $2, %rbx - 0x48, 0x89, 0x5d, 0xd0, //0x000037c0 movq %rbx, $-48(%rbp) - 0x49, 0x89, 0x01, //0x000037c4 movq %rax, (%r9) - 0xe9, 0xf8, 0xfc, 0xff, 0xff, //0x000037c7 jmp LBB15_34 - //0x000037cc LBB15_81 - 0x48, 0x83, 0xc3, 0x03, //0x000037cc addq $3, %rbx - //0x000037d0 LBB15_82 - 0x49, 0x89, 0xdc, //0x000037d0 movq %rbx, %r12 - 0x48, 0x89, 0x5d, 0xd0, //0x000037d3 movq %rbx, $-48(%rbp) - 0xe9, 0x4e, 0xfe, 0xff, 0xff, //0x000037d7 jmp LBB15_52 - //0x000037dc LBB15_84 - 0x48, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x000037dc movq $-1, %rbx - 0xe9, 0x10, 0x00, 0x00, 0x00, //0x000037e3 jmp LBB15_87 - //0x000037e8 LBB15_85 - 0x48, 0xf7, 0xd0, //0x000037e8 notq %rax - 0x49, 0x01, 0xc6, //0x000037eb addq %rax, %r14 - //0x000037ee LBB15_86 - 0x4d, 0x89, 0xe1, //0x000037ee movq %r12, %r9 - 0x48, 0xc7, 0xc3, 0xfe, 0xff, 0xff, 0xff, //0x000037f1 movq $-2, %rbx - //0x000037f8 LBB15_87 - 0x4d, 0x29, 0xfe, //0x000037f8 subq %r15, %r14 - 0x4c, 0x89, 0x75, 0xd0, //0x000037fb movq %r14, $-48(%rbp) - 0xe9, 0x28, 0xfd, 0xff, 0xff, //0x000037ff jmp LBB15_39 - //0x00003804 .p2align 2, 0x90 - // // .set L15_0_set_32, LBB15_32-LJTI15_0 - // // .set L15_0_set_41, LBB15_41-LJTI15_0 - // // .set L15_0_set_42, LBB15_42-LJTI15_0 - // // .set L15_0_set_44, LBB15_44-LJTI15_0 - // // .set L15_0_set_29, LBB15_29-LJTI15_0 - // // .set L15_0_set_45, LBB15_45-LJTI15_0 - // // .set L15_0_set_46, LBB15_46-LJTI15_0 - // // .set L15_0_set_47, LBB15_47-LJTI15_0 - // // .set L15_0_set_48, LBB15_48-LJTI15_0 - // // .set L15_0_set_53, LBB15_53-LJTI15_0 - // // .set L15_0_set_59, LBB15_59-LJTI15_0 - // // .set L15_0_set_62, LBB15_62-LJTI15_0 - // // .set L15_0_set_63, LBB15_63-LJTI15_0 - //0x00003804 LJTI15_0 - 0xb6, 0xfc, 0xff, 0xff, //0x00003804 .long L15_0_set_32 - 0x46, 0xfd, 0xff, 0xff, //0x00003808 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x0000380c .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x00003810 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x00003814 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x00003818 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x0000381c .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x00003820 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x00003824 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x00003828 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x0000382c .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x00003830 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x00003834 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x00003838 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x0000383c .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x00003840 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x00003844 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x00003848 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x0000384c .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x00003850 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x00003854 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x00003858 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x0000385c .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x00003860 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x00003864 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x00003868 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x0000386c .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x00003870 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x00003874 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x00003878 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x0000387c .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x00003880 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x00003884 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x00003888 .long L15_0_set_41 - 0x52, 0xfd, 0xff, 0xff, //0x0000388c .long L15_0_set_42 - 0x46, 0xfd, 0xff, 0xff, //0x00003890 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x00003894 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x00003898 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x0000389c .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x000038a0 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x000038a4 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x000038a8 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x000038ac .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x000038b0 .long L15_0_set_41 - 0xa7, 0xfd, 0xff, 0xff, //0x000038b4 .long L15_0_set_44 - 0x8f, 0xfc, 0xff, 0xff, //0x000038b8 .long L15_0_set_29 - 0x46, 0xfd, 0xff, 0xff, //0x000038bc .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x000038c0 .long L15_0_set_41 - 0x8f, 0xfc, 0xff, 0xff, //0x000038c4 .long L15_0_set_29 - 0x8f, 0xfc, 0xff, 0xff, //0x000038c8 .long L15_0_set_29 - 0x8f, 0xfc, 0xff, 0xff, //0x000038cc .long L15_0_set_29 - 0x8f, 0xfc, 0xff, 0xff, //0x000038d0 .long L15_0_set_29 - 0x8f, 0xfc, 0xff, 0xff, //0x000038d4 .long L15_0_set_29 - 0x8f, 0xfc, 0xff, 0xff, //0x000038d8 .long L15_0_set_29 - 0x8f, 0xfc, 0xff, 0xff, //0x000038dc .long L15_0_set_29 - 0x8f, 0xfc, 0xff, 0xff, //0x000038e0 .long L15_0_set_29 - 0x8f, 0xfc, 0xff, 0xff, //0x000038e4 .long L15_0_set_29 - 0x8f, 0xfc, 0xff, 0xff, //0x000038e8 .long L15_0_set_29 - 0xbb, 0xfd, 0xff, 0xff, //0x000038ec .long L15_0_set_45 - 0x46, 0xfd, 0xff, 0xff, //0x000038f0 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x000038f4 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x000038f8 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x000038fc .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x00003900 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x00003904 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x00003908 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x0000390c .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x00003910 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x00003914 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x00003918 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x0000391c .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x00003920 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x00003924 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x00003928 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x0000392c .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x00003930 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x00003934 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x00003938 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x0000393c .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x00003940 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x00003944 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x00003948 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x0000394c .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x00003950 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x00003954 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x00003958 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x0000395c .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x00003960 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x00003964 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x00003968 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x0000396c .long L15_0_set_41 - 0xcf, 0xfd, 0xff, 0xff, //0x00003970 .long L15_0_set_46 - 0x46, 0xfd, 0xff, 0xff, //0x00003974 .long L15_0_set_41 - 0xdb, 0xfd, 0xff, 0xff, //0x00003978 .long L15_0_set_47 - 0x46, 0xfd, 0xff, 0xff, //0x0000397c .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x00003980 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x00003984 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x00003988 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x0000398c .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x00003990 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x00003994 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x00003998 .long L15_0_set_41 - 0xef, 0xfd, 0xff, 0xff, //0x0000399c .long L15_0_set_48 - 0x46, 0xfd, 0xff, 0xff, //0x000039a0 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x000039a4 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x000039a8 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x000039ac .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x000039b0 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x000039b4 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x000039b8 .long L15_0_set_41 - 0x2e, 0xfe, 0xff, 0xff, //0x000039bc .long L15_0_set_53 - 0x46, 0xfd, 0xff, 0xff, //0x000039c0 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x000039c4 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x000039c8 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x000039cc .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x000039d0 .long L15_0_set_41 - 0x5f, 0xfe, 0xff, 0xff, //0x000039d4 .long L15_0_set_59 - 0x46, 0xfd, 0xff, 0xff, //0x000039d8 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x000039dc .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x000039e0 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x000039e4 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x000039e8 .long L15_0_set_41 - 0x46, 0xfd, 0xff, 0xff, //0x000039ec .long L15_0_set_41 - 0x9d, 0xfe, 0xff, 0xff, //0x000039f0 .long L15_0_set_62 - 0x46, 0xfd, 0xff, 0xff, //0x000039f4 .long L15_0_set_41 - 0xa9, 0xfe, 0xff, 0xff, //0x000039f8 .long L15_0_set_63 - 0x90, 0x90, 0x90, 0x90, //0x000039fc .p2align 4, 0x90 - //0x00003a00 _vstring - 0x55, //0x00003a00 pushq %rbp - 0x48, 0x89, 0xe5, //0x00003a01 movq %rsp, %rbp - 0x41, 0x57, //0x00003a04 pushq %r15 - 0x41, 0x56, //0x00003a06 pushq %r14 - 0x41, 0x54, //0x00003a08 pushq %r12 - 0x53, //0x00003a0a pushq %rbx - 0x48, 0x83, 0xec, 0x10, //0x00003a0b subq $16, %rsp - 0x49, 0x89, 0xd6, //0x00003a0f movq %rdx, %r14 - 0x48, 0x89, 0xf3, //0x00003a12 movq %rsi, %rbx - 0x49, 0x89, 0xff, //0x00003a15 movq %rdi, %r15 - 0x48, 0xc7, 0x45, 0xd8, 0xff, 0xff, 0xff, 0xff, //0x00003a18 movq $-1, $-40(%rbp) - 0x4c, 0x8b, 0x26, //0x00003a20 movq (%rsi), %r12 - 0x48, 0x8d, 0x55, 0xd8, //0x00003a23 leaq $-40(%rbp), %rdx - 0x4c, 0x89, 0xe6, //0x00003a27 movq %r12, %rsi - 0xe8, 0x81, 0x00, 0x00, 0x00, //0x00003a2a callq _advance_string - 0x48, 0x85, 0xc0, //0x00003a2f testq %rax, %rax - 0x0f, 0x88, 0x27, 0x00, 0x00, 0x00, //0x00003a32 js LBB16_1 - 0x48, 0x89, 0x03, //0x00003a38 movq %rax, (%rbx) - 0x4d, 0x89, 0x66, 0x10, //0x00003a3b movq %r12, $16(%r14) - 0x48, 0x8b, 0x4d, 0xd8, //0x00003a3f movq $-40(%rbp), %rcx - 0x48, 0x39, 0xc1, //0x00003a43 cmpq %rax, %rcx - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00003a46 movq $-1, %rax - 0x48, 0x0f, 0x4c, 0xc1, //0x00003a4d cmovlq %rcx, %rax - 0x49, 0x89, 0x46, 0x18, //0x00003a51 movq %rax, $24(%r14) - 0xb8, 0x07, 0x00, 0x00, 0x00, //0x00003a55 movl $7, %eax - 0xe9, 0x07, 0x00, 0x00, 0x00, //0x00003a5a jmp LBB16_3 - //0x00003a5f LBB16_1 - 0x49, 0x8b, 0x4f, 0x08, //0x00003a5f movq $8(%r15), %rcx - 0x48, 0x89, 0x0b, //0x00003a63 movq %rcx, (%rbx) - //0x00003a66 LBB16_3 - 0x49, 0x89, 0x06, //0x00003a66 movq %rax, (%r14) - 0x48, 0x83, 0xc4, 0x10, //0x00003a69 addq $16, %rsp - 0x5b, //0x00003a6d popq %rbx - 0x41, 0x5c, //0x00003a6e popq %r12 - 0x41, 0x5e, //0x00003a70 popq %r14 - 0x41, 0x5f, //0x00003a72 popq %r15 - 0x5d, //0x00003a74 popq %rbp - 0xc3, //0x00003a75 retq - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00003a76 .p2align 4, 0x00 - //0x00003a80 LCPI17_0 - 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, //0x00003a80 QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' - //0x00003a90 LCPI17_1 - 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x00003a90 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' - //0x00003aa0 LCPI17_2 - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x00003aa0 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' - //0x00003ab0 .p2align 4, 0x90 - //0x00003ab0 _advance_string - 0xf6, 0xc1, 0x20, //0x00003ab0 testb $32, %cl - 0x0f, 0x85, 0x05, 0x00, 0x00, 0x00, //0x00003ab3 jne LBB17_2 - 0xe9, 0xf2, 0x58, 0x00, 0x00, //0x00003ab9 jmp _advance_string_default - //0x00003abe LBB17_2 - 0x55, //0x00003abe pushq %rbp - 0x48, 0x89, 0xe5, //0x00003abf movq %rsp, %rbp - 0x41, 0x57, //0x00003ac2 pushq %r15 - 0x41, 0x56, //0x00003ac4 pushq %r14 - 0x41, 0x55, //0x00003ac6 pushq %r13 - 0x41, 0x54, //0x00003ac8 pushq %r12 - 0x53, //0x00003aca pushq %rbx - 0x48, 0x83, 0xec, 0x18, //0x00003acb subq $24, %rsp - 0x4c, 0x8b, 0x7f, 0x08, //0x00003acf movq $8(%rdi), %r15 - 0x49, 0x29, 0xf7, //0x00003ad3 subq %rsi, %r15 - 0x0f, 0x84, 0xec, 0x04, 0x00, 0x00, //0x00003ad6 je LBB17_47 - 0x48, 0x8b, 0x07, //0x00003adc movq (%rdi), %rax - 0x48, 0x89, 0x45, 0xd0, //0x00003adf movq %rax, $-48(%rbp) - 0x48, 0x89, 0x55, 0xc0, //0x00003ae3 movq %rdx, $-64(%rbp) - 0x48, 0xc7, 0x02, 0xff, 0xff, 0xff, 0xff, //0x00003ae7 movq $-1, (%rdx) - 0x49, 0x83, 0xff, 0x40, //0x00003aee cmpq $64, %r15 - 0x0f, 0x82, 0xf7, 0x03, 0x00, 0x00, //0x00003af2 jb LBB17_48 - 0x48, 0xc7, 0x45, 0xc8, 0xff, 0xff, 0xff, 0xff, //0x00003af8 movq $-1, $-56(%rbp) - 0x45, 0x31, 0xf6, //0x00003b00 xorl %r14d, %r14d - 0x66, 0x44, 0x0f, 0x6f, 0x05, 0x74, 0xff, 0xff, 0xff, //0x00003b03 movdqa $-140(%rip), %xmm8 /* LCPI17_0+0(%rip) */ - 0x66, 0x0f, 0x6f, 0x0d, 0x7c, 0xff, 0xff, 0xff, //0x00003b0c movdqa $-132(%rip), %xmm1 /* LCPI17_1+0(%rip) */ - 0x66, 0x0f, 0x6f, 0x15, 0x84, 0xff, 0xff, 0xff, //0x00003b14 movdqa $-124(%rip), %xmm2 /* LCPI17_2+0(%rip) */ - 0x66, 0x0f, 0x76, 0xdb, //0x00003b1c pcmpeqd %xmm3, %xmm3 - //0x00003b20 .p2align 4, 0x90 - //0x00003b20 LBB17_5 - 0x48, 0x8b, 0x45, 0xd0, //0x00003b20 movq $-48(%rbp), %rax - 0xf3, 0x0f, 0x6f, 0x04, 0x30, //0x00003b24 movdqu (%rax,%rsi), %xmm0 - 0xf3, 0x0f, 0x6f, 0x7c, 0x30, 0x10, //0x00003b29 movdqu $16(%rax,%rsi), %xmm7 - 0xf3, 0x0f, 0x6f, 0x74, 0x30, 0x20, //0x00003b2f movdqu $32(%rax,%rsi), %xmm6 - 0xf3, 0x0f, 0x6f, 0x6c, 0x30, 0x30, //0x00003b35 movdqu $48(%rax,%rsi), %xmm5 - 0x66, 0x0f, 0x6f, 0xe0, //0x00003b3b movdqa %xmm0, %xmm4 - 0x66, 0x41, 0x0f, 0x74, 0xe0, //0x00003b3f pcmpeqb %xmm8, %xmm4 - 0x66, 0x44, 0x0f, 0xd7, 0xe4, //0x00003b44 pmovmskb %xmm4, %r12d - 0x66, 0x0f, 0x6f, 0xe7, //0x00003b49 movdqa %xmm7, %xmm4 - 0x66, 0x41, 0x0f, 0x74, 0xe0, //0x00003b4d pcmpeqb %xmm8, %xmm4 - 0x66, 0x0f, 0xd7, 0xc4, //0x00003b52 pmovmskb %xmm4, %eax - 0x66, 0x0f, 0x6f, 0xe6, //0x00003b56 movdqa %xmm6, %xmm4 - 0x66, 0x41, 0x0f, 0x74, 0xe0, //0x00003b5a pcmpeqb %xmm8, %xmm4 - 0x66, 0x44, 0x0f, 0xd7, 0xcc, //0x00003b5f pmovmskb %xmm4, %r9d - 0x66, 0x0f, 0x6f, 0xe5, //0x00003b64 movdqa %xmm5, %xmm4 - 0x66, 0x41, 0x0f, 0x74, 0xe0, //0x00003b68 pcmpeqb %xmm8, %xmm4 - 0x66, 0x44, 0x0f, 0xd7, 0xdc, //0x00003b6d pmovmskb %xmm4, %r11d - 0x66, 0x0f, 0x6f, 0xe0, //0x00003b72 movdqa %xmm0, %xmm4 - 0x66, 0x0f, 0x74, 0xe1, //0x00003b76 pcmpeqb %xmm1, %xmm4 - 0x66, 0x44, 0x0f, 0xd7, 0xec, //0x00003b7a pmovmskb %xmm4, %r13d - 0x66, 0x0f, 0x6f, 0xe7, //0x00003b7f movdqa %xmm7, %xmm4 - 0x66, 0x0f, 0x74, 0xe1, //0x00003b83 pcmpeqb %xmm1, %xmm4 - 0x66, 0x0f, 0xd7, 0xcc, //0x00003b87 pmovmskb %xmm4, %ecx - 0x66, 0x0f, 0x6f, 0xe6, //0x00003b8b movdqa %xmm6, %xmm4 - 0x66, 0x0f, 0x74, 0xe1, //0x00003b8f pcmpeqb %xmm1, %xmm4 - 0x66, 0x0f, 0xd7, 0xfc, //0x00003b93 pmovmskb %xmm4, %edi - 0x66, 0x0f, 0x6f, 0xe5, //0x00003b97 movdqa %xmm5, %xmm4 - 0x66, 0x0f, 0x74, 0xe1, //0x00003b9b pcmpeqb %xmm1, %xmm4 - 0x66, 0x44, 0x0f, 0xd7, 0xd4, //0x00003b9f pmovmskb %xmm4, %r10d - 0x66, 0x0f, 0x6f, 0xe2, //0x00003ba4 movdqa %xmm2, %xmm4 - 0x66, 0x0f, 0x64, 0xe7, //0x00003ba8 pcmpgtb %xmm7, %xmm4 - 0x66, 0x0f, 0x64, 0xfb, //0x00003bac pcmpgtb %xmm3, %xmm7 - 0x66, 0x0f, 0xdb, 0xfc, //0x00003bb0 pand %xmm4, %xmm7 - 0x66, 0x0f, 0xd7, 0xdf, //0x00003bb4 pmovmskb %xmm7, %ebx - 0x66, 0x0f, 0x6f, 0xe2, //0x00003bb8 movdqa %xmm2, %xmm4 - 0x66, 0x0f, 0x64, 0xe6, //0x00003bbc pcmpgtb %xmm6, %xmm4 - 0x66, 0x0f, 0x64, 0xf3, //0x00003bc0 pcmpgtb %xmm3, %xmm6 - 0x66, 0x0f, 0xdb, 0xf4, //0x00003bc4 pand %xmm4, %xmm6 - 0x66, 0x44, 0x0f, 0xd7, 0xc6, //0x00003bc8 pmovmskb %xmm6, %r8d - 0x66, 0x0f, 0x6f, 0xe2, //0x00003bcd movdqa %xmm2, %xmm4 - 0x66, 0x0f, 0x64, 0xe5, //0x00003bd1 pcmpgtb %xmm5, %xmm4 - 0x66, 0x0f, 0x64, 0xeb, //0x00003bd5 pcmpgtb %xmm3, %xmm5 - 0x66, 0x0f, 0xdb, 0xec, //0x00003bd9 pand %xmm4, %xmm5 - 0x66, 0x0f, 0xd7, 0xd5, //0x00003bdd pmovmskb %xmm5, %edx - 0x49, 0xc1, 0xe3, 0x30, //0x00003be1 shlq $48, %r11 - 0x49, 0xc1, 0xe1, 0x20, //0x00003be5 shlq $32, %r9 - 0x4d, 0x09, 0xd9, //0x00003be9 orq %r11, %r9 - 0x48, 0xc1, 0xe0, 0x10, //0x00003bec shlq $16, %rax - 0x4c, 0x09, 0xc8, //0x00003bf0 orq %r9, %rax - 0x49, 0x09, 0xc4, //0x00003bf3 orq %rax, %r12 - 0x49, 0xc1, 0xe2, 0x30, //0x00003bf6 shlq $48, %r10 - 0x48, 0xc1, 0xe7, 0x20, //0x00003bfa shlq $32, %rdi - 0x4c, 0x09, 0xd7, //0x00003bfe orq %r10, %rdi - 0x48, 0xc1, 0xe1, 0x10, //0x00003c01 shlq $16, %rcx - 0x48, 0x09, 0xf9, //0x00003c05 orq %rdi, %rcx - 0x48, 0xc1, 0xe2, 0x30, //0x00003c08 shlq $48, %rdx - 0x49, 0xc1, 0xe0, 0x20, //0x00003c0c shlq $32, %r8 - 0x49, 0x09, 0xd0, //0x00003c10 orq %rdx, %r8 - 0x48, 0xc1, 0xe3, 0x10, //0x00003c13 shlq $16, %rbx - 0x4c, 0x09, 0xc3, //0x00003c17 orq %r8, %rbx - 0x49, 0x09, 0xcd, //0x00003c1a orq %rcx, %r13 - 0x0f, 0x85, 0x4c, 0x00, 0x00, 0x00, //0x00003c1d jne LBB17_11 - 0x4d, 0x85, 0xf6, //0x00003c23 testq %r14, %r14 - 0x0f, 0x85, 0x60, 0x00, 0x00, 0x00, //0x00003c26 jne LBB17_13 - 0x45, 0x31, 0xf6, //0x00003c2c xorl %r14d, %r14d - //0x00003c2f LBB17_8 - 0x66, 0x0f, 0x6f, 0xe2, //0x00003c2f movdqa %xmm2, %xmm4 - 0x66, 0x0f, 0x64, 0xe0, //0x00003c33 pcmpgtb %xmm0, %xmm4 - 0x66, 0x0f, 0x64, 0xc3, //0x00003c37 pcmpgtb %xmm3, %xmm0 - 0x66, 0x0f, 0xdb, 0xc4, //0x00003c3b pand %xmm4, %xmm0 - 0x66, 0x0f, 0xd7, 0xc0, //0x00003c3f pmovmskb %xmm0, %eax - 0x48, 0x09, 0xc3, //0x00003c43 orq %rax, %rbx - 0x4d, 0x85, 0xe4, //0x00003c46 testq %r12, %r12 - 0x0f, 0x85, 0x8b, 0x00, 0x00, 0x00, //0x00003c49 jne LBB17_14 - 0x48, 0x85, 0xdb, //0x00003c4f testq %rbx, %rbx - 0x0f, 0x85, 0xd6, 0x00, 0x00, 0x00, //0x00003c52 jne LBB17_20 - 0x49, 0x83, 0xc7, 0xc0, //0x00003c58 addq $-64, %r15 - 0x48, 0x83, 0xc6, 0x40, //0x00003c5c addq $64, %rsi - 0x49, 0x83, 0xff, 0x3f, //0x00003c60 cmpq $63, %r15 - 0x0f, 0x87, 0xb6, 0xfe, 0xff, 0xff, //0x00003c64 ja LBB17_5 - 0xe9, 0xe4, 0x00, 0x00, 0x00, //0x00003c6a jmp LBB17_22 - //0x00003c6f LBB17_11 - 0x48, 0x83, 0x7d, 0xc8, 0xff, //0x00003c6f cmpq $-1, $-56(%rbp) - 0x0f, 0x85, 0x12, 0x00, 0x00, 0x00, //0x00003c74 jne LBB17_13 - 0x49, 0x0f, 0xbc, 0xcd, //0x00003c7a bsfq %r13, %rcx - 0x48, 0x01, 0xf1, //0x00003c7e addq %rsi, %rcx - 0x48, 0x8b, 0x45, 0xc0, //0x00003c81 movq $-64(%rbp), %rax - 0x48, 0x89, 0x4d, 0xc8, //0x00003c85 movq %rcx, $-56(%rbp) - 0x48, 0x89, 0x08, //0x00003c89 movq %rcx, (%rax) - //0x00003c8c LBB17_13 - 0x4c, 0x89, 0xf0, //0x00003c8c movq %r14, %rax - 0x48, 0xf7, 0xd0, //0x00003c8f notq %rax - 0x4c, 0x21, 0xe8, //0x00003c92 andq %r13, %rax - 0x48, 0x8d, 0x0c, 0x00, //0x00003c95 leaq (%rax,%rax), %rcx - 0x4c, 0x09, 0xf1, //0x00003c99 orq %r14, %rcx - 0x48, 0x89, 0xca, //0x00003c9c movq %rcx, %rdx - 0x48, 0xf7, 0xd2, //0x00003c9f notq %rdx - 0x4c, 0x21, 0xea, //0x00003ca2 andq %r13, %rdx - 0x48, 0xbf, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x00003ca5 movabsq $-6148914691236517206, %rdi - 0x48, 0x21, 0xfa, //0x00003caf andq %rdi, %rdx - 0x45, 0x31, 0xf6, //0x00003cb2 xorl %r14d, %r14d - 0x48, 0x01, 0xc2, //0x00003cb5 addq %rax, %rdx - 0x41, 0x0f, 0x92, 0xc6, //0x00003cb8 setb %r14b - 0x48, 0x01, 0xd2, //0x00003cbc addq %rdx, %rdx - 0x48, 0xb8, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00003cbf movabsq $6148914691236517205, %rax - 0x48, 0x31, 0xc2, //0x00003cc9 xorq %rax, %rdx - 0x48, 0x21, 0xca, //0x00003ccc andq %rcx, %rdx - 0x48, 0xf7, 0xd2, //0x00003ccf notq %rdx - 0x49, 0x21, 0xd4, //0x00003cd2 andq %rdx, %r12 - 0xe9, 0x55, 0xff, 0xff, 0xff, //0x00003cd5 jmp LBB17_8 - //0x00003cda LBB17_14 - 0x49, 0x0f, 0xbc, 0xc4, //0x00003cda bsfq %r12, %rax - 0x48, 0x85, 0xdb, //0x00003cde testq %rbx, %rbx - 0x0f, 0x84, 0x23, 0x00, 0x00, 0x00, //0x00003ce1 je LBB17_18 - 0x48, 0x0f, 0xbc, 0xcb, //0x00003ce7 bsfq %rbx, %rcx - 0x48, 0x39, 0xc1, //0x00003ceb cmpq %rax, %rcx - 0x0f, 0x82, 0x24, 0x00, 0x00, 0x00, //0x00003cee jb LBB17_19 - //0x00003cf4 LBB17_16 - 0x48, 0x01, 0xf0, //0x00003cf4 addq %rsi, %rax - 0x48, 0x83, 0xc0, 0x01, //0x00003cf7 addq $1, %rax - //0x00003cfb LBB17_17 - 0x48, 0x83, 0xc4, 0x18, //0x00003cfb addq $24, %rsp - 0x5b, //0x00003cff popq %rbx - 0x41, 0x5c, //0x00003d00 popq %r12 - 0x41, 0x5d, //0x00003d02 popq %r13 - 0x41, 0x5e, //0x00003d04 popq %r14 - 0x41, 0x5f, //0x00003d06 popq %r15 - 0x5d, //0x00003d08 popq %rbp - 0xc3, //0x00003d09 retq - //0x00003d0a LBB17_18 - 0xb9, 0x40, 0x00, 0x00, 0x00, //0x00003d0a movl $64, %ecx - 0x48, 0x39, 0xc1, //0x00003d0f cmpq %rax, %rcx - 0x0f, 0x83, 0xdc, 0xff, 0xff, 0xff, //0x00003d12 jae LBB17_16 - //0x00003d18 LBB17_19 - 0x48, 0x01, 0xf1, //0x00003d18 addq %rsi, %rcx - 0x48, 0x8b, 0x45, 0xc0, //0x00003d1b movq $-64(%rbp), %rax - 0x48, 0x89, 0x08, //0x00003d1f movq %rcx, (%rax) - 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00003d22 movq $-2, %rax - 0xe9, 0xcd, 0xff, 0xff, 0xff, //0x00003d29 jmp LBB17_17 - //0x00003d2e LBB17_20 - 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00003d2e movq $-2, %rax - 0x48, 0x83, 0x7d, 0xc8, 0xff, //0x00003d35 cmpq $-1, $-56(%rbp) - 0x0f, 0x85, 0xbb, 0xff, 0xff, 0xff, //0x00003d3a jne LBB17_17 - 0x48, 0x0f, 0xbc, 0xcb, //0x00003d40 bsfq %rbx, %rcx - 0x48, 0x01, 0xf1, //0x00003d44 addq %rsi, %rcx - 0x48, 0x8b, 0x55, 0xc0, //0x00003d47 movq $-64(%rbp), %rdx - 0x48, 0x89, 0x0a, //0x00003d4b movq %rcx, (%rdx) - 0xe9, 0xa8, 0xff, 0xff, 0xff, //0x00003d4e jmp LBB17_17 - //0x00003d53 LBB17_22 - 0x48, 0x03, 0x75, 0xd0, //0x00003d53 addq $-48(%rbp), %rsi - 0x49, 0x83, 0xff, 0x20, //0x00003d57 cmpq $32, %r15 - 0x0f, 0x82, 0xf2, 0x00, 0x00, 0x00, //0x00003d5b jb LBB17_35 - //0x00003d61 LBB17_23 - 0xf3, 0x0f, 0x6f, 0x06, //0x00003d61 movdqu (%rsi), %xmm0 - 0xf3, 0x0f, 0x6f, 0x4e, 0x10, //0x00003d65 movdqu $16(%rsi), %xmm1 - 0x66, 0x0f, 0x6f, 0x15, 0x0e, 0xfd, 0xff, 0xff, //0x00003d6a movdqa $-754(%rip), %xmm2 /* LCPI17_0+0(%rip) */ - 0x66, 0x0f, 0x6f, 0xd8, //0x00003d72 movdqa %xmm0, %xmm3 - 0x66, 0x0f, 0x74, 0xda, //0x00003d76 pcmpeqb %xmm2, %xmm3 - 0x66, 0x0f, 0xd7, 0xc3, //0x00003d7a pmovmskb %xmm3, %eax - 0x66, 0x0f, 0x74, 0xd1, //0x00003d7e pcmpeqb %xmm1, %xmm2 - 0x66, 0x0f, 0xd7, 0xca, //0x00003d82 pmovmskb %xmm2, %ecx - 0x66, 0x0f, 0x6f, 0x15, 0x02, 0xfd, 0xff, 0xff, //0x00003d86 movdqa $-766(%rip), %xmm2 /* LCPI17_1+0(%rip) */ - 0x66, 0x0f, 0x6f, 0xd8, //0x00003d8e movdqa %xmm0, %xmm3 - 0x66, 0x0f, 0x74, 0xda, //0x00003d92 pcmpeqb %xmm2, %xmm3 - 0x66, 0x44, 0x0f, 0xd7, 0xd3, //0x00003d96 pmovmskb %xmm3, %r10d - 0x66, 0x0f, 0x74, 0xd1, //0x00003d9b pcmpeqb %xmm1, %xmm2 - 0x66, 0x0f, 0xd7, 0xd2, //0x00003d9f pmovmskb %xmm2, %edx - 0x66, 0x0f, 0x6f, 0x15, 0xf5, 0xfc, 0xff, 0xff, //0x00003da3 movdqa $-779(%rip), %xmm2 /* LCPI17_2+0(%rip) */ - 0x66, 0x0f, 0x6f, 0xda, //0x00003dab movdqa %xmm2, %xmm3 - 0x66, 0x0f, 0x64, 0xd8, //0x00003daf pcmpgtb %xmm0, %xmm3 - 0x66, 0x0f, 0x76, 0xe4, //0x00003db3 pcmpeqd %xmm4, %xmm4 - 0x66, 0x0f, 0x64, 0xc4, //0x00003db7 pcmpgtb %xmm4, %xmm0 - 0x66, 0x0f, 0xdb, 0xc3, //0x00003dbb pand %xmm3, %xmm0 - 0x66, 0x44, 0x0f, 0xd7, 0xc8, //0x00003dbf pmovmskb %xmm0, %r9d - 0x66, 0x0f, 0x64, 0xd1, //0x00003dc4 pcmpgtb %xmm1, %xmm2 - 0x66, 0x0f, 0x64, 0xcc, //0x00003dc8 pcmpgtb %xmm4, %xmm1 - 0x66, 0x0f, 0xdb, 0xca, //0x00003dcc pand %xmm2, %xmm1 - 0x66, 0x0f, 0xd7, 0xd9, //0x00003dd0 pmovmskb %xmm1, %ebx - 0x48, 0xc1, 0xe1, 0x10, //0x00003dd4 shlq $16, %rcx - 0x48, 0x09, 0xc8, //0x00003dd8 orq %rcx, %rax - 0x48, 0xc1, 0xe2, 0x10, //0x00003ddb shlq $16, %rdx - 0x48, 0xc1, 0xe3, 0x10, //0x00003ddf shlq $16, %rbx - 0x49, 0x09, 0xd2, //0x00003de3 orq %rdx, %r10 - 0x0f, 0x85, 0x21, 0x01, 0x00, 0x00, //0x00003de6 jne LBB17_49 - 0x4d, 0x85, 0xf6, //0x00003dec testq %r14, %r14 - 0x0f, 0x85, 0x3c, 0x01, 0x00, 0x00, //0x00003def jne LBB17_51 - 0x45, 0x31, 0xf6, //0x00003df5 xorl %r14d, %r14d - //0x00003df8 LBB17_26 - 0x4c, 0x09, 0xcb, //0x00003df8 orq %r9, %rbx - 0xb9, 0x40, 0x00, 0x00, 0x00, //0x00003dfb movl $64, %ecx - 0xba, 0x40, 0x00, 0x00, 0x00, //0x00003e00 movl $64, %edx - 0x48, 0x85, 0xc0, //0x00003e05 testq %rax, %rax - 0x0f, 0x84, 0x04, 0x00, 0x00, 0x00, //0x00003e08 je LBB17_28 - 0x48, 0x0f, 0xbc, 0xd0, //0x00003e0e bsfq %rax, %rdx - //0x00003e12 LBB17_28 - 0x48, 0x85, 0xdb, //0x00003e12 testq %rbx, %rbx - 0x0f, 0x84, 0x04, 0x00, 0x00, 0x00, //0x00003e15 je LBB17_30 - 0x48, 0x0f, 0xbc, 0xcb, //0x00003e1b bsfq %rbx, %rcx - //0x00003e1f LBB17_30 - 0x48, 0x85, 0xc0, //0x00003e1f testq %rax, %rax - 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x00003e22 je LBB17_33 - 0x48, 0x39, 0xd1, //0x00003e28 cmpq %rdx, %rcx - 0x0f, 0x82, 0x37, 0x01, 0x00, 0x00, //0x00003e2b jb LBB17_52 - 0x48, 0x2b, 0x75, 0xd0, //0x00003e31 subq $-48(%rbp), %rsi - 0x48, 0x8d, 0x04, 0x16, //0x00003e35 leaq (%rsi,%rdx), %rax - 0x48, 0x83, 0xc0, 0x01, //0x00003e39 addq $1, %rax - 0xe9, 0xb9, 0xfe, 0xff, 0xff, //0x00003e3d jmp LBB17_17 - //0x00003e42 LBB17_33 - 0x48, 0x85, 0xdb, //0x00003e42 testq %rbx, %rbx - 0x0f, 0x85, 0x1d, 0x01, 0x00, 0x00, //0x00003e45 jne LBB17_52 - 0x48, 0x83, 0xc6, 0x20, //0x00003e4b addq $32, %rsi - 0x49, 0x83, 0xc7, 0xe0, //0x00003e4f addq $-32, %r15 - //0x00003e53 LBB17_35 - 0x4d, 0x85, 0xf6, //0x00003e53 testq %r14, %r14 - 0x0f, 0x85, 0x26, 0x01, 0x00, 0x00, //0x00003e56 jne LBB17_54 - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00003e5c movq $-1, %rax - 0x4d, 0x85, 0xff, //0x00003e63 testq %r15, %r15 - 0x0f, 0x84, 0x8f, 0xfe, 0xff, 0xff, //0x00003e66 je LBB17_17 - //0x00003e6c LBB17_37 - 0x48, 0x8b, 0x7d, 0xc0, //0x00003e6c movq $-64(%rbp), %rdi - //0x00003e70 LBB17_38 - 0x0f, 0xb6, 0x0e, //0x00003e70 movzbl (%rsi), %ecx - 0x80, 0xf9, 0x22, //0x00003e73 cmpb $34, %cl - 0x0f, 0x84, 0x63, 0x00, 0x00, 0x00, //0x00003e76 je LBB17_46 - 0x80, 0xf9, 0x5c, //0x00003e7c cmpb $92, %cl - 0x0f, 0x84, 0x26, 0x00, 0x00, 0x00, //0x00003e7f je LBB17_43 - 0x80, 0xf9, 0x1f, //0x00003e85 cmpb $31, %cl - 0x0f, 0x86, 0x46, 0x01, 0x00, 0x00, //0x00003e88 jbe LBB17_58 - 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00003e8e movq $-1, %rcx - 0xba, 0x01, 0x00, 0x00, 0x00, //0x00003e95 movl $1, %edx - //0x00003e9a LBB17_42 - 0x48, 0x01, 0xd6, //0x00003e9a addq %rdx, %rsi - 0x49, 0x01, 0xcf, //0x00003e9d addq %rcx, %r15 - 0x0f, 0x85, 0xca, 0xff, 0xff, 0xff, //0x00003ea0 jne LBB17_38 - 0xe9, 0x50, 0xfe, 0xff, 0xff, //0x00003ea6 jmp LBB17_17 - //0x00003eab LBB17_43 - 0x49, 0x83, 0xff, 0x01, //0x00003eab cmpq $1, %r15 - 0x0f, 0x84, 0x46, 0xfe, 0xff, 0xff, //0x00003eaf je LBB17_17 - 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x00003eb5 movq $-2, %rcx - 0xba, 0x02, 0x00, 0x00, 0x00, //0x00003ebc movl $2, %edx - 0x48, 0x83, 0x7d, 0xc8, 0xff, //0x00003ec1 cmpq $-1, $-56(%rbp) - 0x0f, 0x85, 0xce, 0xff, 0xff, 0xff, //0x00003ec6 jne LBB17_42 - 0x48, 0x89, 0xf3, //0x00003ecc movq %rsi, %rbx - 0x48, 0x2b, 0x5d, 0xd0, //0x00003ecf subq $-48(%rbp), %rbx - 0x48, 0x89, 0x5d, 0xc8, //0x00003ed3 movq %rbx, $-56(%rbp) - 0x48, 0x89, 0x1f, //0x00003ed7 movq %rbx, (%rdi) - 0xe9, 0xbb, 0xff, 0xff, 0xff, //0x00003eda jmp LBB17_42 - //0x00003edf LBB17_46 - 0x48, 0x2b, 0x75, 0xd0, //0x00003edf subq $-48(%rbp), %rsi - 0x48, 0x83, 0xc6, 0x01, //0x00003ee3 addq $1, %rsi - 0x48, 0x89, 0xf0, //0x00003ee7 movq %rsi, %rax - 0xe9, 0x0c, 0xfe, 0xff, 0xff, //0x00003eea jmp LBB17_17 - //0x00003eef LBB17_48 - 0x48, 0x03, 0x75, 0xd0, //0x00003eef addq $-48(%rbp), %rsi - 0x48, 0xc7, 0x45, 0xc8, 0xff, 0xff, 0xff, 0xff, //0x00003ef3 movq $-1, $-56(%rbp) - 0x45, 0x31, 0xf6, //0x00003efb xorl %r14d, %r14d - 0x49, 0x83, 0xff, 0x20, //0x00003efe cmpq $32, %r15 - 0x0f, 0x83, 0x59, 0xfe, 0xff, 0xff, //0x00003f02 jae LBB17_23 - 0xe9, 0x46, 0xff, 0xff, 0xff, //0x00003f08 jmp LBB17_35 - //0x00003f0d LBB17_49 - 0x48, 0x83, 0x7d, 0xc8, 0xff, //0x00003f0d cmpq $-1, $-56(%rbp) - 0x0f, 0x85, 0x19, 0x00, 0x00, 0x00, //0x00003f12 jne LBB17_51 - 0x48, 0x89, 0xf1, //0x00003f18 movq %rsi, %rcx - 0x48, 0x2b, 0x4d, 0xd0, //0x00003f1b subq $-48(%rbp), %rcx - 0x49, 0x0f, 0xbc, 0xd2, //0x00003f1f bsfq %r10, %rdx - 0x48, 0x01, 0xca, //0x00003f23 addq %rcx, %rdx - 0x48, 0x8b, 0x4d, 0xc0, //0x00003f26 movq $-64(%rbp), %rcx - 0x48, 0x89, 0x55, 0xc8, //0x00003f2a movq %rdx, $-56(%rbp) - 0x48, 0x89, 0x11, //0x00003f2e movq %rdx, (%rcx) - //0x00003f31 LBB17_51 - 0x44, 0x89, 0xf1, //0x00003f31 movl %r14d, %ecx - 0xf7, 0xd1, //0x00003f34 notl %ecx - 0x44, 0x21, 0xd1, //0x00003f36 andl %r10d, %ecx - 0x45, 0x8d, 0x04, 0x4e, //0x00003f39 leal (%r14,%rcx,2), %r8d - 0x8d, 0x14, 0x09, //0x00003f3d leal (%rcx,%rcx), %edx - 0xf7, 0xd2, //0x00003f40 notl %edx - 0x44, 0x21, 0xd2, //0x00003f42 andl %r10d, %edx - 0x81, 0xe2, 0xaa, 0xaa, 0xaa, 0xaa, //0x00003f45 andl $-1431655766, %edx - 0x45, 0x31, 0xf6, //0x00003f4b xorl %r14d, %r14d - 0x01, 0xca, //0x00003f4e addl %ecx, %edx - 0x41, 0x0f, 0x92, 0xc6, //0x00003f50 setb %r14b - 0x01, 0xd2, //0x00003f54 addl %edx, %edx - 0x81, 0xf2, 0x55, 0x55, 0x55, 0x55, //0x00003f56 xorl $1431655765, %edx - 0x44, 0x21, 0xc2, //0x00003f5c andl %r8d, %edx - 0xf7, 0xd2, //0x00003f5f notl %edx - 0x21, 0xd0, //0x00003f61 andl %edx, %eax - 0xe9, 0x90, 0xfe, 0xff, 0xff, //0x00003f63 jmp LBB17_26 - //0x00003f68 LBB17_52 - 0x48, 0x2b, 0x75, 0xd0, //0x00003f68 subq $-48(%rbp), %rsi - 0x48, 0x01, 0xce, //0x00003f6c addq %rcx, %rsi - //0x00003f6f LBB17_53 - 0x48, 0x8b, 0x45, 0xc0, //0x00003f6f movq $-64(%rbp), %rax - 0x48, 0x89, 0x30, //0x00003f73 movq %rsi, (%rax) - 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00003f76 movq $-2, %rax - 0xe9, 0x79, 0xfd, 0xff, 0xff, //0x00003f7d jmp LBB17_17 - //0x00003f82 LBB17_54 - 0x4d, 0x85, 0xff, //0x00003f82 testq %r15, %r15 - 0x0f, 0x84, 0x3d, 0x00, 0x00, 0x00, //0x00003f85 je LBB17_47 - 0x48, 0x83, 0x7d, 0xc8, 0xff, //0x00003f8b cmpq $-1, $-56(%rbp) - 0x0f, 0x85, 0x15, 0x00, 0x00, 0x00, //0x00003f90 jne LBB17_57 - 0x48, 0x8b, 0x4d, 0xd0, //0x00003f96 movq $-48(%rbp), %rcx - 0x48, 0xf7, 0xd1, //0x00003f9a notq %rcx - 0x48, 0x01, 0xf1, //0x00003f9d addq %rsi, %rcx - 0x48, 0x8b, 0x45, 0xc0, //0x00003fa0 movq $-64(%rbp), %rax - 0x48, 0x89, 0x4d, 0xc8, //0x00003fa4 movq %rcx, $-56(%rbp) - 0x48, 0x89, 0x08, //0x00003fa8 movq %rcx, (%rax) - //0x00003fab LBB17_57 - 0x48, 0x83, 0xc6, 0x01, //0x00003fab addq $1, %rsi - 0x49, 0x83, 0xc7, 0xff, //0x00003faf addq $-1, %r15 - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00003fb3 movq $-1, %rax - 0x4d, 0x85, 0xff, //0x00003fba testq %r15, %r15 - 0x0f, 0x85, 0xa9, 0xfe, 0xff, 0xff, //0x00003fbd jne LBB17_37 - 0xe9, 0x33, 0xfd, 0xff, 0xff, //0x00003fc3 jmp LBB17_17 - //0x00003fc8 LBB17_47 - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00003fc8 movq $-1, %rax - 0xe9, 0x27, 0xfd, 0xff, 0xff, //0x00003fcf jmp LBB17_17 - //0x00003fd4 LBB17_58 - 0x48, 0x2b, 0x75, 0xd0, //0x00003fd4 subq $-48(%rbp), %rsi - 0xe9, 0x92, 0xff, 0xff, 0xff, //0x00003fd8 jmp LBB17_53 - 0x00, 0x00, 0x00, //0x00003fdd .p2align 4, 0x00 - //0x00003fe0 LCPI18_0 - 0x00, 0x00, 0x30, 0x43, //0x00003fe0 .long 1127219200 - 0x00, 0x00, 0x30, 0x45, //0x00003fe4 .long 1160773632 - 0x00, 0x00, 0x00, 0x00, //0x00003fe8 .long 0 - 0x00, 0x00, 0x00, 0x00, //0x00003fec .long 0 - //0x00003ff0 LCPI18_1 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x43, //0x00003ff0 .quad 0x4330000000000000 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x45, //0x00003ff8 .quad 0x4530000000000000 - //0x00004000 .p2align 3, 0x00 - //0x00004000 LCPI18_2 - 0x00, 0x00, 0x34, 0x26, 0xf5, 0x6b, 0x0c, 0x43, //0x00004000 .quad 0x430c6bf526340000 - //0x00004008 LCPI18_3 - 0x00, 0x00, 0x34, 0x26, 0xf5, 0x6b, 0x0c, 0xc3, //0x00004008 .quad 0xc30c6bf526340000 - //0x00004010 .p2align 4, 0x90 - //0x00004010 _vnumber - 0x55, //0x00004010 pushq %rbp - 0x48, 0x89, 0xe5, //0x00004011 movq %rsp, %rbp - 0x41, 0x57, //0x00004014 pushq %r15 - 0x41, 0x56, //0x00004016 pushq %r14 - 0x41, 0x55, //0x00004018 pushq %r13 - 0x41, 0x54, //0x0000401a pushq %r12 - 0x53, //0x0000401c pushq %rbx - 0x48, 0x83, 0xec, 0x48, //0x0000401d subq $72, %rsp - 0x49, 0x89, 0xd6, //0x00004021 movq %rdx, %r14 - 0x48, 0x8b, 0x06, //0x00004024 movq (%rsi), %rax - 0x4c, 0x8b, 0x3f, //0x00004027 movq (%rdi), %r15 - 0x4c, 0x8b, 0x6f, 0x08, //0x0000402a movq $8(%rdi), %r13 - 0x4c, 0x8b, 0x5a, 0x20, //0x0000402e movq $32(%rdx), %r11 - 0x48, 0x8b, 0x5a, 0x28, //0x00004032 movq $40(%rdx), %rbx - 0x48, 0xc7, 0x02, 0x09, 0x00, 0x00, 0x00, //0x00004036 movq $9, (%rdx) - 0x66, 0x0f, 0x57, 0xc0, //0x0000403d xorpd %xmm0, %xmm0 - 0x66, 0x0f, 0x11, 0x42, 0x08, //0x00004041 movupd %xmm0, $8(%rdx) - 0x48, 0x8b, 0x0e, //0x00004046 movq (%rsi), %rcx - 0x48, 0x89, 0x4a, 0x18, //0x00004049 movq %rcx, $24(%rdx) - 0x4c, 0x39, 0xe8, //0x0000404d cmpq %r13, %rax - 0x0f, 0x83, 0x46, 0x00, 0x00, 0x00, //0x00004050 jae LBB18_6 - 0x41, 0x8a, 0x3c, 0x07, //0x00004056 movb (%r15,%rax), %dil - 0x41, 0xba, 0x01, 0x00, 0x00, 0x00, //0x0000405a movl $1, %r10d - 0x40, 0x80, 0xff, 0x2d, //0x00004060 cmpb $45, %dil - 0x0f, 0x85, 0x17, 0x00, 0x00, 0x00, //0x00004064 jne LBB18_4 - 0x48, 0x83, 0xc0, 0x01, //0x0000406a addq $1, %rax - 0x4c, 0x39, 0xe8, //0x0000406e cmpq %r13, %rax - 0x0f, 0x83, 0x25, 0x00, 0x00, 0x00, //0x00004071 jae LBB18_6 - 0x41, 0x8a, 0x3c, 0x07, //0x00004077 movb (%r15,%rax), %dil - 0x41, 0xba, 0xff, 0xff, 0xff, 0xff, //0x0000407b movl $-1, %r10d - //0x00004081 LBB18_4 - 0x8d, 0x4f, 0xd0, //0x00004081 leal $-48(%rdi), %ecx - 0x80, 0xf9, 0x0a, //0x00004084 cmpb $10, %cl - 0x0f, 0x82, 0x28, 0x00, 0x00, 0x00, //0x00004087 jb LBB18_9 - 0x48, 0x89, 0x06, //0x0000408d movq %rax, (%rsi) - 0x49, 0xc7, 0x06, 0xfe, 0xff, 0xff, 0xff, //0x00004090 movq $-2, (%r14) - 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x00004097 jmp LBB18_8 - //0x0000409c LBB18_6 - 0x4c, 0x89, 0x2e, //0x0000409c movq %r13, (%rsi) - //0x0000409f LBB18_7 - 0x49, 0xc7, 0x06, 0xff, 0xff, 0xff, 0xff, //0x0000409f movq $-1, (%r14) - //0x000040a6 LBB18_8 - 0x48, 0x83, 0xc4, 0x48, //0x000040a6 addq $72, %rsp - 0x5b, //0x000040aa popq %rbx - 0x41, 0x5c, //0x000040ab popq %r12 - 0x41, 0x5d, //0x000040ad popq %r13 - 0x41, 0x5e, //0x000040af popq %r14 - 0x41, 0x5f, //0x000040b1 popq %r15 - 0x5d, //0x000040b3 popq %rbp - 0xc3, //0x000040b4 retq - //0x000040b5 LBB18_9 - 0x40, 0x80, 0xff, 0x30, //0x000040b5 cmpb $48, %dil - 0x0f, 0x85, 0x35, 0x00, 0x00, 0x00, //0x000040b9 jne LBB18_13 - 0x4c, 0x8d, 0x48, 0x01, //0x000040bf leaq $1(%rax), %r9 - 0x4c, 0x39, 0xe8, //0x000040c3 cmpq %r13, %rax - 0x0f, 0x83, 0xcd, 0x00, 0x00, 0x00, //0x000040c6 jae LBB18_22 - 0x43, 0x8a, 0x14, 0x0f, //0x000040cc movb (%r15,%r9), %dl - 0x80, 0xc2, 0xd2, //0x000040d0 addb $-46, %dl - 0x80, 0xfa, 0x37, //0x000040d3 cmpb $55, %dl - 0x0f, 0x87, 0xbd, 0x00, 0x00, 0x00, //0x000040d6 ja LBB18_22 - 0x44, 0x0f, 0xb6, 0xc2, //0x000040dc movzbl %dl, %r8d - 0x48, 0xba, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, //0x000040e0 movabsq $36028797027352577, %rdx - 0x4c, 0x0f, 0xa3, 0xc2, //0x000040ea btq %r8, %rdx - 0x0f, 0x83, 0xa5, 0x00, 0x00, 0x00, //0x000040ee jae LBB18_22 - //0x000040f4 LBB18_13 - 0x4c, 0x39, 0xe8, //0x000040f4 cmpq %r13, %rax - 0x4c, 0x89, 0x5d, 0x98, //0x000040f7 movq %r11, $-104(%rbp) - 0x48, 0x89, 0x5d, 0xa0, //0x000040fb movq %rbx, $-96(%rbp) - 0x48, 0x89, 0x75, 0xc8, //0x000040ff movq %rsi, $-56(%rbp) - 0x0f, 0x83, 0x7e, 0x00, 0x00, 0x00, //0x00004103 jae LBB18_21 - 0x80, 0xf9, 0x09, //0x00004109 cmpb $9, %cl - 0x44, 0x89, 0x55, 0xbc, //0x0000410c movl %r10d, $-68(%rbp) - 0xb1, 0x01, //0x00004110 movb $1, %cl - 0x0f, 0x87, 0x89, 0x00, 0x00, 0x00, //0x00004112 ja LBB18_23 - 0x89, 0x4d, 0xd4, //0x00004118 movl %ecx, $-44(%rbp) - 0x41, 0xb9, 0xd0, 0xff, 0xff, 0xff, //0x0000411b movl $4294967248, %r9d - 0x4d, 0x8d, 0x55, 0xff, //0x00004121 leaq $-1(%r13), %r10 - 0x31, 0xc9, //0x00004125 xorl %ecx, %ecx - 0x45, 0x31, 0xc0, //0x00004127 xorl %r8d, %r8d - 0x45, 0x31, 0xe4, //0x0000412a xorl %r12d, %r12d - 0x90, 0x90, 0x90, //0x0000412d .p2align 4, 0x90 - //0x00004130 LBB18_16 - 0x41, 0x83, 0xf8, 0x12, //0x00004130 cmpl $18, %r8d - 0x0f, 0x8f, 0x26, 0x00, 0x00, 0x00, //0x00004134 jg LBB18_18 - 0x4b, 0x8d, 0x14, 0xa4, //0x0000413a leaq (%r12,%r12,4), %rdx - 0x40, 0x0f, 0xbe, 0xff, //0x0000413e movsbl %dil, %edi - 0x44, 0x01, 0xcf, //0x00004142 addl %r9d, %edi - 0x4c, 0x8d, 0x24, 0x57, //0x00004145 leaq (%rdi,%rdx,2), %r12 - 0x41, 0x83, 0xc0, 0x01, //0x00004149 addl $1, %r8d - 0xe9, 0x11, 0x00, 0x00, 0x00, //0x0000414d jmp LBB18_19 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00004152 .p2align 4, 0x90 - //0x00004160 LBB18_18 - 0x83, 0xc1, 0x01, //0x00004160 addl $1, %ecx - //0x00004163 LBB18_19 - 0x49, 0x39, 0xc2, //0x00004163 cmpq %rax, %r10 - 0x0f, 0x84, 0x7a, 0x00, 0x00, 0x00, //0x00004166 je LBB18_28 - 0x41, 0x0f, 0xb6, 0x7c, 0x07, 0x01, //0x0000416c movzbl $1(%r15,%rax), %edi - 0x8d, 0x57, 0xd0, //0x00004172 leal $-48(%rdi), %edx - 0x48, 0x83, 0xc0, 0x01, //0x00004175 addq $1, %rax - 0x80, 0xfa, 0x0a, //0x00004179 cmpb $10, %dl - 0x0f, 0x82, 0xae, 0xff, 0xff, 0xff, //0x0000417c jb LBB18_16 - 0xe9, 0x25, 0x00, 0x00, 0x00, //0x00004182 jmp LBB18_24 - //0x00004187 LBB18_21 - 0xb1, 0x01, //0x00004187 movb $1, %cl - 0x89, 0x4d, 0xd4, //0x00004189 movl %ecx, $-44(%rbp) - 0x31, 0xc9, //0x0000418c xorl %ecx, %ecx - 0x45, 0x31, 0xc0, //0x0000418e xorl %r8d, %r8d - 0x45, 0x31, 0xe4, //0x00004191 xorl %r12d, %r12d - 0xe9, 0x54, 0x00, 0x00, 0x00, //0x00004194 jmp LBB18_30 - //0x00004199 LBB18_22 - 0x4c, 0x89, 0x0e, //0x00004199 movq %r9, (%rsi) - 0xe9, 0x05, 0xff, 0xff, 0xff, //0x0000419c jmp LBB18_8 - //0x000041a1 LBB18_23 - 0x89, 0x4d, 0xd4, //0x000041a1 movl %ecx, $-44(%rbp) - 0x45, 0x31, 0xe4, //0x000041a4 xorl %r12d, %r12d - 0x45, 0x31, 0xc0, //0x000041a7 xorl %r8d, %r8d - 0x31, 0xc9, //0x000041aa xorl %ecx, %ecx - //0x000041ac LBB18_24 - 0x40, 0x80, 0xff, 0x2e, //0x000041ac cmpb $46, %dil - 0x0f, 0x85, 0x33, 0x00, 0x00, 0x00, //0x000041b0 jne LBB18_29 - 0x48, 0x83, 0xc0, 0x01, //0x000041b6 addq $1, %rax - 0x49, 0xc7, 0x06, 0x08, 0x00, 0x00, 0x00, //0x000041ba movq $8, (%r14) - 0x4c, 0x39, 0xe8, //0x000041c1 cmpq %r13, %rax - 0x0f, 0x83, 0x72, 0x02, 0x00, 0x00, //0x000041c4 jae LBB18_68 - 0x41, 0x8a, 0x14, 0x07, //0x000041ca movb (%r15,%rax), %dl - 0x80, 0xc2, 0xd0, //0x000041ce addb $-48, %dl - 0x80, 0xfa, 0x0a, //0x000041d1 cmpb $10, %dl - 0x0f, 0x83, 0x1b, 0x04, 0x00, 0x00, //0x000041d4 jae LBB18_92 - 0xc7, 0x45, 0xd4, 0x00, 0x00, 0x00, 0x00, //0x000041da movl $0, $-44(%rbp) - 0xe9, 0x03, 0x00, 0x00, 0x00, //0x000041e1 jmp LBB18_29 - //0x000041e6 LBB18_28 - 0x4c, 0x89, 0xe8, //0x000041e6 movq %r13, %rax - //0x000041e9 LBB18_29 - 0x44, 0x8b, 0x55, 0xbc, //0x000041e9 movl $-68(%rbp), %r10d - //0x000041ed LBB18_30 - 0x45, 0x31, 0xdb, //0x000041ed xorl %r11d, %r11d - 0x85, 0xc9, //0x000041f0 testl %ecx, %ecx - 0x41, 0x0f, 0x9f, 0xc3, //0x000041f2 setg %r11b - 0x4d, 0x85, 0xe4, //0x000041f6 testq %r12, %r12 - 0x0f, 0x85, 0x56, 0x00, 0x00, 0x00, //0x000041f9 jne LBB18_39 - 0x85, 0xc9, //0x000041ff testl %ecx, %ecx - 0x0f, 0x85, 0x4e, 0x00, 0x00, 0x00, //0x00004201 jne LBB18_39 - 0x4c, 0x39, 0xe8, //0x00004207 cmpq %r13, %rax - 0x0f, 0x83, 0x3d, 0x00, 0x00, 0x00, //0x0000420a jae LBB18_37 - 0x89, 0xc6, //0x00004210 movl %eax, %esi - 0x44, 0x29, 0xee, //0x00004212 subl %r13d, %esi - 0x45, 0x31, 0xc0, //0x00004215 xorl %r8d, %r8d - 0x31, 0xc9, //0x00004218 xorl %ecx, %ecx - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000421a .p2align 4, 0x90 - //0x00004220 LBB18_34 - 0x41, 0x80, 0x3c, 0x07, 0x30, //0x00004220 cmpb $48, (%r15,%rax) - 0x0f, 0x85, 0x27, 0x00, 0x00, 0x00, //0x00004225 jne LBB18_38 - 0x48, 0x83, 0xc0, 0x01, //0x0000422b addq $1, %rax - 0x83, 0xc1, 0xff, //0x0000422f addl $-1, %ecx - 0x49, 0x39, 0xc5, //0x00004232 cmpq %rax, %r13 - 0x0f, 0x85, 0xe5, 0xff, 0xff, 0xff, //0x00004235 jne LBB18_34 - 0x45, 0x31, 0xe4, //0x0000423b xorl %r12d, %r12d - 0x80, 0x7d, 0xd4, 0x00, //0x0000423e cmpb $0, $-44(%rbp) - 0x0f, 0x85, 0x26, 0x01, 0x00, 0x00, //0x00004242 jne LBB18_58 - 0xe9, 0x55, 0x01, 0x00, 0x00, //0x00004248 jmp LBB18_62 - //0x0000424d LBB18_37 - 0x31, 0xc9, //0x0000424d xorl %ecx, %ecx - 0x45, 0x31, 0xc0, //0x0000424f xorl %r8d, %r8d - //0x00004252 LBB18_38 - 0x45, 0x31, 0xe4, //0x00004252 xorl %r12d, %r12d - //0x00004255 LBB18_39 - 0x4c, 0x39, 0xe8, //0x00004255 cmpq %r13, %rax - 0x0f, 0x83, 0x4f, 0x00, 0x00, 0x00, //0x00004258 jae LBB18_45 - 0x41, 0x83, 0xf8, 0x12, //0x0000425e cmpl $18, %r8d - 0x0f, 0x8f, 0x45, 0x00, 0x00, 0x00, //0x00004262 jg LBB18_45 - 0x41, 0xb9, 0xd0, 0xff, 0xff, 0xff, //0x00004268 movl $4294967248, %r9d - 0x90, 0x90, //0x0000426e .p2align 4, 0x90 - //0x00004270 LBB18_42 - 0x41, 0x0f, 0xb6, 0x3c, 0x07, //0x00004270 movzbl (%r15,%rax), %edi - 0x8d, 0x57, 0xd0, //0x00004275 leal $-48(%rdi), %edx - 0x80, 0xfa, 0x09, //0x00004278 cmpb $9, %dl - 0x0f, 0x87, 0x2c, 0x00, 0x00, 0x00, //0x0000427b ja LBB18_45 - 0x4b, 0x8d, 0x14, 0xa4, //0x00004281 leaq (%r12,%r12,4), %rdx - 0x44, 0x01, 0xcf, //0x00004285 addl %r9d, %edi - 0x4c, 0x8d, 0x24, 0x57, //0x00004288 leaq (%rdi,%rdx,2), %r12 - 0x83, 0xc1, 0xff, //0x0000428c addl $-1, %ecx - 0x48, 0x83, 0xc0, 0x01, //0x0000428f addq $1, %rax - 0x4c, 0x39, 0xe8, //0x00004293 cmpq %r13, %rax - 0x0f, 0x83, 0x11, 0x00, 0x00, 0x00, //0x00004296 jae LBB18_45 - 0x41, 0x8d, 0x50, 0x01, //0x0000429c leal $1(%r8), %edx - 0x41, 0x83, 0xf8, 0x12, //0x000042a0 cmpl $18, %r8d - 0x41, 0x89, 0xd0, //0x000042a4 movl %edx, %r8d - 0x0f, 0x8c, 0xc3, 0xff, 0xff, 0xff, //0x000042a7 jl LBB18_42 - //0x000042ad LBB18_45 - 0x4c, 0x39, 0xe8, //0x000042ad cmpq %r13, %rax - 0x0f, 0x83, 0xa9, 0x00, 0x00, 0x00, //0x000042b0 jae LBB18_57 - 0x41, 0x8a, 0x14, 0x07, //0x000042b6 movb (%r15,%rax), %dl - 0x8d, 0x72, 0xd0, //0x000042ba leal $-48(%rdx), %esi - 0x40, 0x80, 0xfe, 0x09, //0x000042bd cmpb $9, %sil - 0x0f, 0x87, 0x2f, 0x00, 0x00, 0x00, //0x000042c1 ja LBB18_51 - 0x49, 0x8d, 0x75, 0xff, //0x000042c7 leaq $-1(%r13), %rsi - 0x90, 0x90, 0x90, 0x90, 0x90, //0x000042cb .p2align 4, 0x90 - //0x000042d0 LBB18_48 - 0x48, 0x39, 0xc6, //0x000042d0 cmpq %rax, %rsi - 0x0f, 0x84, 0x6f, 0x01, 0x00, 0x00, //0x000042d3 je LBB18_69 - 0x41, 0x0f, 0xb6, 0x54, 0x07, 0x01, //0x000042d9 movzbl $1(%r15,%rax), %edx - 0x8d, 0x7a, 0xd0, //0x000042df leal $-48(%rdx), %edi - 0x48, 0x83, 0xc0, 0x01, //0x000042e2 addq $1, %rax - 0x40, 0x80, 0xff, 0x09, //0x000042e6 cmpb $9, %dil - 0x0f, 0x86, 0xe0, 0xff, 0xff, 0xff, //0x000042ea jbe LBB18_48 - 0x41, 0xbb, 0x01, 0x00, 0x00, 0x00, //0x000042f0 movl $1, %r11d - //0x000042f6 LBB18_51 - 0x80, 0xca, 0x20, //0x000042f6 orb $32, %dl - 0x80, 0xfa, 0x65, //0x000042f9 cmpb $101, %dl - 0x0f, 0x85, 0x5d, 0x00, 0x00, 0x00, //0x000042fc jne LBB18_57 - 0x48, 0x8d, 0x50, 0x01, //0x00004302 leaq $1(%rax), %rdx - 0x49, 0xc7, 0x06, 0x08, 0x00, 0x00, 0x00, //0x00004306 movq $8, (%r14) - 0x4c, 0x39, 0xea, //0x0000430d cmpq %r13, %rdx - 0x0f, 0x83, 0x26, 0x01, 0x00, 0x00, //0x00004310 jae LBB18_68 - 0x44, 0x89, 0x5d, 0xd4, //0x00004316 movl %r11d, $-44(%rbp) - 0x41, 0x8a, 0x34, 0x17, //0x0000431a movb (%r15,%rdx), %sil - 0x40, 0x80, 0xfe, 0x2d, //0x0000431e cmpb $45, %sil - 0x0f, 0x84, 0x10, 0x00, 0x00, 0x00, //0x00004322 je LBB18_55 - 0x41, 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00004328 movl $1, %r8d - 0x40, 0x80, 0xfe, 0x2b, //0x0000432e cmpb $43, %sil - 0x0f, 0x85, 0xad, 0x02, 0x00, 0x00, //0x00004332 jne LBB18_90 - //0x00004338 LBB18_55 - 0x48, 0x83, 0xc0, 0x02, //0x00004338 addq $2, %rax - 0x4c, 0x39, 0xe8, //0x0000433c cmpq %r13, %rax - 0x0f, 0x83, 0xf7, 0x00, 0x00, 0x00, //0x0000433f jae LBB18_68 - 0x31, 0xd2, //0x00004345 xorl %edx, %edx - 0x40, 0x80, 0xfe, 0x2b, //0x00004347 cmpb $43, %sil - 0x0f, 0x94, 0xc2, //0x0000434b sete %dl - 0x44, 0x8d, 0x04, 0x12, //0x0000434e leal (%rdx,%rdx), %r8d - 0x41, 0x83, 0xc0, 0xff, //0x00004352 addl $-1, %r8d - 0x41, 0x8a, 0x34, 0x07, //0x00004356 movb (%r15,%rax), %sil - 0xe9, 0x89, 0x02, 0x00, 0x00, //0x0000435a jmp LBB18_91 - //0x0000435f LBB18_57 - 0x89, 0xce, //0x0000435f movl %ecx, %esi - 0x49, 0x89, 0xc5, //0x00004361 movq %rax, %r13 - 0x80, 0x7d, 0xd4, 0x00, //0x00004364 cmpb $0, $-44(%rbp) - 0x0f, 0x84, 0x34, 0x00, 0x00, 0x00, //0x00004368 je LBB18_62 - //0x0000436e LBB18_58 - 0x85, 0xf6, //0x0000436e testl %esi, %esi - 0x0f, 0x85, 0x25, 0x00, 0x00, 0x00, //0x00004370 jne LBB18_61 - 0x48, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x00004376 movabsq $-9223372036854775808, %rax - 0x49, 0x63, 0xca, //0x00004380 movslq %r10d, %rcx - 0x4d, 0x85, 0xe4, //0x00004383 testq %r12, %r12 - 0x0f, 0x89, 0xef, 0x00, 0x00, 0x00, //0x00004386 jns LBB18_72 - 0x4c, 0x89, 0xe2, //0x0000438c movq %r12, %rdx - 0x48, 0x21, 0xca, //0x0000438f andq %rcx, %rdx - 0x48, 0x39, 0xc2, //0x00004392 cmpq %rax, %rdx - 0x0f, 0x84, 0xe0, 0x00, 0x00, 0x00, //0x00004395 je LBB18_72 - //0x0000439b LBB18_61 - 0x49, 0xc7, 0x06, 0x08, 0x00, 0x00, 0x00, //0x0000439b movq $8, (%r14) - //0x000043a2 LBB18_62 - 0x48, 0xc7, 0x45, 0xb0, 0x00, 0x00, 0x00, 0x00, //0x000043a2 movq $0, $-80(%rbp) - 0x66, 0x49, 0x0f, 0x6e, 0xcc, //0x000043aa movq %r12, %xmm1 - 0x66, 0x0f, 0x62, 0x0d, 0x29, 0xfc, 0xff, 0xff, //0x000043af punpckldq $-983(%rip), %xmm1 /* LCPI18_0+0(%rip) */ - 0x66, 0x0f, 0x5c, 0x0d, 0x31, 0xfc, 0xff, 0xff, //0x000043b7 subpd $-975(%rip), %xmm1 /* LCPI18_1+0(%rip) */ - 0x66, 0x0f, 0x28, 0xc1, //0x000043bf movapd %xmm1, %xmm0 - 0x66, 0x0f, 0x15, 0xc1, //0x000043c3 unpckhpd %xmm1, %xmm0 - 0xf2, 0x0f, 0x58, 0xc1, //0x000043c7 addsd %xmm1, %xmm0 - 0xf2, 0x0f, 0x11, 0x45, 0xc0, //0x000043cb movsd %xmm0, $-64(%rbp) - 0x4c, 0x89, 0xe0, //0x000043d0 movq %r12, %rax - 0x48, 0xc1, 0xe8, 0x34, //0x000043d3 shrq $52, %rax - 0x0f, 0x85, 0x25, 0x01, 0x00, 0x00, //0x000043d7 jne LBB18_78 - 0x66, 0x48, 0x0f, 0x7e, 0xc1, //0x000043dd movq %xmm0, %rcx - 0x44, 0x89, 0xd0, //0x000043e2 movl %r10d, %eax - 0xc1, 0xe8, 0x1f, //0x000043e5 shrl $31, %eax - 0x48, 0xc1, 0xe0, 0x3f, //0x000043e8 shlq $63, %rax - 0x48, 0x09, 0xc8, //0x000043ec orq %rcx, %rax - 0x48, 0x89, 0x45, 0xc0, //0x000043ef movq %rax, $-64(%rbp) - 0x85, 0xf6, //0x000043f3 testl %esi, %esi - 0x0f, 0x84, 0xa8, 0x01, 0x00, 0x00, //0x000043f5 je LBB18_85 - 0x4d, 0x85, 0xe4, //0x000043fb testq %r12, %r12 - 0x0f, 0x84, 0x9f, 0x01, 0x00, 0x00, //0x000043fe je LBB18_85 - 0x66, 0x48, 0x0f, 0x6e, 0xc0, //0x00004404 movq %rax, %xmm0 - 0x8d, 0x46, 0xff, //0x00004409 leal $-1(%rsi), %eax - 0x83, 0xf8, 0x24, //0x0000440c cmpl $36, %eax - 0x0f, 0x87, 0x4a, 0x00, 0x00, 0x00, //0x0000440f ja LBB18_70 - 0x83, 0xfe, 0x17, //0x00004415 cmpl $23, %esi - 0x0f, 0x8c, 0xa1, 0x00, 0x00, 0x00, //0x00004418 jl LBB18_73 - 0x8d, 0x46, 0xea, //0x0000441e leal $-22(%rsi), %eax - 0x48, 0x8d, 0x0d, 0x78, 0xf4, 0x00, 0x00, //0x00004421 leaq $62584(%rip), %rcx /* _P10_TAB+0(%rip) */ - 0xf2, 0x0f, 0x59, 0x04, 0xc1, //0x00004428 mulsd (%rcx,%rax,8), %xmm0 - 0xf2, 0x0f, 0x11, 0x45, 0xc0, //0x0000442d movsd %xmm0, $-64(%rbp) - 0xb8, 0x16, 0x00, 0x00, 0x00, //0x00004432 movl $22, %eax - 0xe9, 0x85, 0x00, 0x00, 0x00, //0x00004437 jmp LBB18_74 - //0x0000443c LBB18_68 - 0x48, 0x8b, 0x45, 0xc8, //0x0000443c movq $-56(%rbp), %rax - 0x4c, 0x89, 0x28, //0x00004440 movq %r13, (%rax) - 0xe9, 0x57, 0xfc, 0xff, 0xff, //0x00004443 jmp LBB18_7 - //0x00004448 LBB18_69 - 0x41, 0xbb, 0x01, 0x00, 0x00, 0x00, //0x00004448 movl $1, %r11d - 0x89, 0xce, //0x0000444e movl %ecx, %esi - 0x80, 0x7d, 0xd4, 0x00, //0x00004450 cmpb $0, $-44(%rbp) - 0x0f, 0x85, 0x14, 0xff, 0xff, 0xff, //0x00004454 jne LBB18_58 - 0xe9, 0x43, 0xff, 0xff, 0xff, //0x0000445a jmp LBB18_62 - //0x0000445f LBB18_70 - 0x83, 0xfe, 0xea, //0x0000445f cmpl $-22, %esi - 0x0f, 0x82, 0x9a, 0x00, 0x00, 0x00, //0x00004462 jb LBB18_78 - 0xf7, 0xde, //0x00004468 negl %esi - 0x48, 0x8d, 0x05, 0x2f, 0xf4, 0x00, 0x00, //0x0000446a leaq $62511(%rip), %rax /* _P10_TAB+0(%rip) */ - 0xf2, 0x0f, 0x5e, 0x04, 0xf0, //0x00004471 divsd (%rax,%rsi,8), %xmm0 - 0xe9, 0x74, 0x00, 0x00, 0x00, //0x00004476 jmp LBB18_77 - //0x0000447b LBB18_72 - 0x66, 0x49, 0x0f, 0x6e, 0xc4, //0x0000447b movq %r12, %xmm0 - 0x4c, 0x0f, 0xaf, 0xe1, //0x00004480 imulq %rcx, %r12 - 0x66, 0x0f, 0x62, 0x05, 0x54, 0xfb, 0xff, 0xff, //0x00004484 punpckldq $-1196(%rip), %xmm0 /* LCPI18_0+0(%rip) */ - 0x66, 0x0f, 0x5c, 0x05, 0x5c, 0xfb, 0xff, 0xff, //0x0000448c subpd $-1188(%rip), %xmm0 /* LCPI18_1+0(%rip) */ - 0x4d, 0x89, 0x66, 0x10, //0x00004494 movq %r12, $16(%r14) - 0x66, 0x0f, 0x28, 0xc8, //0x00004498 movapd %xmm0, %xmm1 - 0x66, 0x0f, 0x15, 0xc8, //0x0000449c unpckhpd %xmm0, %xmm1 - 0xf2, 0x0f, 0x58, 0xc8, //0x000044a0 addsd %xmm0, %xmm1 - 0x48, 0x21, 0xc8, //0x000044a4 andq %rcx, %rax - 0x66, 0x48, 0x0f, 0x7e, 0xc9, //0x000044a7 movq %xmm1, %rcx - 0x48, 0x09, 0xc1, //0x000044ac orq %rax, %rcx - 0x49, 0x89, 0x4e, 0x08, //0x000044af movq %rcx, $8(%r14) - 0x48, 0x8b, 0x45, 0xc8, //0x000044b3 movq $-56(%rbp), %rax - 0x4c, 0x89, 0x28, //0x000044b7 movq %r13, (%rax) - 0xe9, 0xe7, 0xfb, 0xff, 0xff, //0x000044ba jmp LBB18_8 - //0x000044bf LBB18_73 - 0x89, 0xf0, //0x000044bf movl %esi, %eax - //0x000044c1 LBB18_74 - 0x66, 0x0f, 0x2e, 0x05, 0x37, 0xfb, 0xff, 0xff, //0x000044c1 ucomisd $-1225(%rip), %xmm0 /* LCPI18_2+0(%rip) */ - 0x0f, 0x87, 0x33, 0x00, 0x00, 0x00, //0x000044c9 ja LBB18_78 - 0xf2, 0x0f, 0x10, 0x0d, 0x31, 0xfb, 0xff, 0xff, //0x000044cf movsd $-1231(%rip), %xmm1 /* LCPI18_3+0(%rip) */ - 0x66, 0x0f, 0x2e, 0xc8, //0x000044d7 ucomisd %xmm0, %xmm1 - 0x0f, 0x87, 0x21, 0x00, 0x00, 0x00, //0x000044db ja LBB18_78 - 0x89, 0xc0, //0x000044e1 movl %eax, %eax - 0x48, 0x8d, 0x0d, 0xb6, 0xf3, 0x00, 0x00, //0x000044e3 leaq $62390(%rip), %rcx /* _P10_TAB+0(%rip) */ - 0xf2, 0x0f, 0x59, 0x04, 0xc1, //0x000044ea mulsd (%rcx,%rax,8), %xmm0 - //0x000044ef LBB18_77 - 0x48, 0x8b, 0x5d, 0xc8, //0x000044ef movq $-56(%rbp), %rbx - 0xf2, 0x0f, 0x11, 0x45, 0xc0, //0x000044f3 movsd %xmm0, $-64(%rbp) - 0x66, 0x48, 0x0f, 0x7e, 0xc0, //0x000044f8 movq %xmm0, %rax - 0xe9, 0xa5, 0x00, 0x00, 0x00, //0x000044fd jmp LBB18_86 - //0x00004502 LBB18_78 - 0x44, 0x89, 0x5d, 0xd4, //0x00004502 movl %r11d, $-44(%rbp) - 0x48, 0x8d, 0x4d, 0xc0, //0x00004506 leaq $-64(%rbp), %rcx - 0x4c, 0x89, 0xe7, //0x0000450a movq %r12, %rdi - 0x44, 0x89, 0xd2, //0x0000450d movl %r10d, %edx - 0x44, 0x89, 0xd3, //0x00004510 movl %r10d, %ebx - 0x48, 0x89, 0x75, 0xa8, //0x00004513 movq %rsi, $-88(%rbp) - 0xe8, 0x24, 0xe6, 0xff, 0xff, //0x00004517 callq _atof_eisel_lemire64 - 0x84, 0xc0, //0x0000451c testb %al, %al - 0x0f, 0x84, 0x4c, 0x00, 0x00, 0x00, //0x0000451e je LBB18_83 - 0x48, 0x8b, 0x75, 0xa8, //0x00004524 movq $-88(%rbp), %rsi - 0x83, 0x7d, 0xd4, 0x00, //0x00004528 cmpl $0, $-44(%rbp) - 0x0f, 0x84, 0x6d, 0x00, 0x00, 0x00, //0x0000452c je LBB18_84 - 0x89, 0xda, //0x00004532 movl %ebx, %edx - 0x49, 0x83, 0xc4, 0x01, //0x00004534 addq $1, %r12 - 0x48, 0x8d, 0x4d, 0xb0, //0x00004538 leaq $-80(%rbp), %rcx - 0x4c, 0x89, 0xe7, //0x0000453c movq %r12, %rdi - 0xe8, 0xfc, 0xe5, 0xff, 0xff, //0x0000453f callq _atof_eisel_lemire64 - 0x84, 0xc0, //0x00004544 testb %al, %al - 0x0f, 0x84, 0x24, 0x00, 0x00, 0x00, //0x00004546 je LBB18_83 - 0xf2, 0x0f, 0x10, 0x4d, 0xb0, //0x0000454c movsd $-80(%rbp), %xmm1 - 0xf2, 0x0f, 0x10, 0x45, 0xc0, //0x00004551 movsd $-64(%rbp), %xmm0 - 0x66, 0x0f, 0x2e, 0xc8, //0x00004556 ucomisd %xmm0, %xmm1 - 0x0f, 0x85, 0x10, 0x00, 0x00, 0x00, //0x0000455a jne LBB18_83 - 0x0f, 0x8a, 0x0a, 0x00, 0x00, 0x00, //0x00004560 jp LBB18_83 - 0x66, 0x48, 0x0f, 0x7e, 0xc0, //0x00004566 movq %xmm0, %rax - 0xe9, 0x33, 0x00, 0x00, 0x00, //0x0000456b jmp LBB18_85 - //0x00004570 LBB18_83 - 0x48, 0x8b, 0x5d, 0xc8, //0x00004570 movq $-56(%rbp), %rbx - 0x48, 0x8b, 0x03, //0x00004574 movq (%rbx), %rax - 0x49, 0x01, 0xc7, //0x00004577 addq %rax, %r15 - 0x4c, 0x89, 0xee, //0x0000457a movq %r13, %rsi - 0x48, 0x29, 0xc6, //0x0000457d subq %rax, %rsi - 0x4c, 0x89, 0xff, //0x00004580 movq %r15, %rdi - 0x48, 0x8b, 0x55, 0x98, //0x00004583 movq $-104(%rbp), %rdx - 0x48, 0x8b, 0x4d, 0xa0, //0x00004587 movq $-96(%rbp), %rcx - 0xe8, 0x20, 0xeb, 0xff, 0xff, //0x0000458b callq _atof_native - 0xf2, 0x0f, 0x11, 0x45, 0xc0, //0x00004590 movsd %xmm0, $-64(%rbp) - 0x66, 0x48, 0x0f, 0x7e, 0xc0, //0x00004595 movq %xmm0, %rax - 0xe9, 0x0d, 0x00, 0x00, 0x00, //0x0000459a jmp LBB18_87 - //0x0000459f LBB18_84 - 0x48, 0x8b, 0x45, 0xc0, //0x0000459f movq $-64(%rbp), %rax - //0x000045a3 LBB18_85 - 0x48, 0x8b, 0x5d, 0xc8, //0x000045a3 movq $-56(%rbp), %rbx - //0x000045a7 LBB18_86 - 0x66, 0x48, 0x0f, 0x6e, 0xc0, //0x000045a7 movq %rax, %xmm0 - //0x000045ac LBB18_87 - 0x48, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x000045ac movabsq $-9223372036854775808, %rcx - 0x48, 0x83, 0xc1, 0xff, //0x000045b6 addq $-1, %rcx - 0x48, 0x21, 0xc1, //0x000045ba andq %rax, %rcx - 0x48, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x7f, //0x000045bd movabsq $9218868437227405312, %rax - 0x48, 0x39, 0xc1, //0x000045c7 cmpq %rax, %rcx - 0x0f, 0x85, 0x07, 0x00, 0x00, 0x00, //0x000045ca jne LBB18_89 - 0x49, 0xc7, 0x06, 0xf8, 0xff, 0xff, 0xff, //0x000045d0 movq $-8, (%r14) - //0x000045d7 LBB18_89 - 0xf2, 0x41, 0x0f, 0x11, 0x46, 0x08, //0x000045d7 movsd %xmm0, $8(%r14) - 0x4c, 0x89, 0x2b, //0x000045dd movq %r13, (%rbx) - 0xe9, 0xc1, 0xfa, 0xff, 0xff, //0x000045e0 jmp LBB18_8 - //0x000045e5 LBB18_90 - 0x48, 0x89, 0xd0, //0x000045e5 movq %rdx, %rax - //0x000045e8 LBB18_91 - 0x8d, 0x7e, 0xd0, //0x000045e8 leal $-48(%rsi), %edi - 0x40, 0x80, 0xff, 0x09, //0x000045eb cmpb $9, %dil - 0x0f, 0x86, 0x13, 0x00, 0x00, 0x00, //0x000045ef jbe LBB18_93 - //0x000045f5 LBB18_92 - 0x48, 0x8b, 0x4d, 0xc8, //0x000045f5 movq $-56(%rbp), %rcx - 0x48, 0x89, 0x01, //0x000045f9 movq %rax, (%rcx) - 0x49, 0xc7, 0x06, 0xfe, 0xff, 0xff, 0xff, //0x000045fc movq $-2, (%r14) - 0xe9, 0x9e, 0xfa, 0xff, 0xff, //0x00004603 jmp LBB18_8 - //0x00004608 LBB18_93 - 0x4c, 0x39, 0xe8, //0x00004608 cmpq %r13, %rax - 0x0f, 0x83, 0x4a, 0x00, 0x00, 0x00, //0x0000460b jae LBB18_99 - 0x40, 0x80, 0xff, 0x09, //0x00004611 cmpb $9, %dil - 0x0f, 0x87, 0x40, 0x00, 0x00, 0x00, //0x00004615 ja LBB18_99 - 0x4d, 0x8d, 0x4d, 0xff, //0x0000461b leaq $-1(%r13), %r9 - 0x31, 0xff, //0x0000461f xorl %edi, %edi - //0x00004621 LBB18_96 - 0x89, 0xfa, //0x00004621 movl %edi, %edx - 0x40, 0x0f, 0xb6, 0xf6, //0x00004623 movzbl %sil, %esi - 0x81, 0xff, 0x10, 0x27, 0x00, 0x00, //0x00004627 cmpl $10000, %edi - 0x8d, 0x3c, 0x92, //0x0000462d leal (%rdx,%rdx,4), %edi - 0x8d, 0x7c, 0x7e, 0xd0, //0x00004630 leal $-48(%rsi,%rdi,2), %edi - 0x0f, 0x4d, 0xfa, //0x00004634 cmovgel %edx, %edi - 0x49, 0x39, 0xc1, //0x00004637 cmpq %rax, %r9 - 0x0f, 0x84, 0x22, 0x00, 0x00, 0x00, //0x0000463a je LBB18_100 - 0x41, 0x0f, 0xb6, 0x74, 0x07, 0x01, //0x00004640 movzbl $1(%r15,%rax), %esi - 0x8d, 0x56, 0xd0, //0x00004646 leal $-48(%rsi), %edx - 0x48, 0x83, 0xc0, 0x01, //0x00004649 addq $1, %rax - 0x80, 0xfa, 0x0a, //0x0000464d cmpb $10, %dl - 0x0f, 0x82, 0xcb, 0xff, 0xff, 0xff, //0x00004650 jb LBB18_96 - 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x00004656 jmp LBB18_101 - //0x0000465b LBB18_99 - 0x31, 0xff, //0x0000465b xorl %edi, %edi - 0xe9, 0x03, 0x00, 0x00, 0x00, //0x0000465d jmp LBB18_101 - //0x00004662 LBB18_100 - 0x4c, 0x89, 0xe8, //0x00004662 movq %r13, %rax - //0x00004665 LBB18_101 - 0x48, 0x89, 0xfe, //0x00004665 movq %rdi, %rsi - 0x41, 0x0f, 0xaf, 0xf0, //0x00004668 imull %r8d, %esi - 0x01, 0xce, //0x0000466c addl %ecx, %esi - 0x49, 0x89, 0xc5, //0x0000466e movq %rax, %r13 - 0x44, 0x8b, 0x5d, 0xd4, //0x00004671 movl $-44(%rbp), %r11d - 0xe9, 0x28, 0xfd, 0xff, 0xff, //0x00004675 jmp LBB18_62 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000467a .p2align 4, 0x90 - //0x00004680 _vsigned - 0x55, //0x00004680 pushq %rbp - 0x48, 0x89, 0xe5, //0x00004681 movq %rsp, %rbp - 0x53, //0x00004684 pushq %rbx - 0x48, 0x8b, 0x06, //0x00004685 movq (%rsi), %rax - 0x4c, 0x8b, 0x0f, //0x00004688 movq (%rdi), %r9 - 0x4c, 0x8b, 0x5f, 0x08, //0x0000468b movq $8(%rdi), %r11 - 0x48, 0xc7, 0x02, 0x09, 0x00, 0x00, 0x00, //0x0000468f movq $9, (%rdx) - 0x0f, 0x57, 0xc0, //0x00004696 xorps %xmm0, %xmm0 - 0x0f, 0x11, 0x42, 0x08, //0x00004699 movups %xmm0, $8(%rdx) - 0x48, 0x8b, 0x0e, //0x0000469d movq (%rsi), %rcx - 0x48, 0x89, 0x4a, 0x18, //0x000046a0 movq %rcx, $24(%rdx) - 0x4c, 0x39, 0xd8, //0x000046a4 cmpq %r11, %rax - 0x0f, 0x83, 0x45, 0x00, 0x00, 0x00, //0x000046a7 jae LBB19_1 - 0x41, 0x8a, 0x0c, 0x01, //0x000046ad movb (%r9,%rax), %cl - 0x41, 0xb8, 0x01, 0x00, 0x00, 0x00, //0x000046b1 movl $1, %r8d - 0x80, 0xf9, 0x2d, //0x000046b7 cmpb $45, %cl - 0x0f, 0x85, 0x18, 0x00, 0x00, 0x00, //0x000046ba jne LBB19_5 - 0x48, 0x83, 0xc0, 0x01, //0x000046c0 addq $1, %rax - 0x4c, 0x39, 0xd8, //0x000046c4 cmpq %r11, %rax - 0x0f, 0x83, 0x25, 0x00, 0x00, 0x00, //0x000046c7 jae LBB19_1 - 0x41, 0x8a, 0x0c, 0x01, //0x000046cd movb (%r9,%rax), %cl - 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000046d1 movq $-1, %r8 - //0x000046d8 LBB19_5 - 0x8d, 0x79, 0xd0, //0x000046d8 leal $-48(%rcx), %edi - 0x40, 0x80, 0xff, 0x0a, //0x000046db cmpb $10, %dil - 0x0f, 0x82, 0x1a, 0x00, 0x00, 0x00, //0x000046df jb LBB19_7 - 0x48, 0x89, 0x06, //0x000046e5 movq %rax, (%rsi) - 0x48, 0xc7, 0x02, 0xfe, 0xff, 0xff, 0xff, //0x000046e8 movq $-2, (%rdx) - 0x5b, //0x000046ef popq %rbx - 0x5d, //0x000046f0 popq %rbp - 0xc3, //0x000046f1 retq - //0x000046f2 LBB19_1 - 0x4c, 0x89, 0x1e, //0x000046f2 movq %r11, (%rsi) - 0x48, 0xc7, 0x02, 0xff, 0xff, 0xff, 0xff, //0x000046f5 movq $-1, (%rdx) - 0x5b, //0x000046fc popq %rbx - 0x5d, //0x000046fd popq %rbp - 0xc3, //0x000046fe retq - //0x000046ff LBB19_7 - 0x80, 0xf9, 0x30, //0x000046ff cmpb $48, %cl - 0x0f, 0x85, 0x35, 0x00, 0x00, 0x00, //0x00004702 jne LBB19_12 - 0x48, 0x8d, 0x78, 0x01, //0x00004708 leaq $1(%rax), %rdi - 0x4c, 0x39, 0xd8, //0x0000470c cmpq %r11, %rax - 0x0f, 0x83, 0x84, 0x00, 0x00, 0x00, //0x0000470f jae LBB19_11 - 0x41, 0x8a, 0x0c, 0x39, //0x00004715 movb (%r9,%rdi), %cl - 0x80, 0xc1, 0xd2, //0x00004719 addb $-46, %cl - 0x80, 0xf9, 0x37, //0x0000471c cmpb $55, %cl - 0x0f, 0x87, 0x74, 0x00, 0x00, 0x00, //0x0000471f ja LBB19_11 - 0x44, 0x0f, 0xb6, 0xd1, //0x00004725 movzbl %cl, %r10d - 0x48, 0xb9, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, //0x00004729 movabsq $36028797027352577, %rcx - 0x4c, 0x0f, 0xa3, 0xd1, //0x00004733 btq %r10, %rcx - 0x0f, 0x83, 0x5c, 0x00, 0x00, 0x00, //0x00004737 jae LBB19_11 - //0x0000473d LBB19_12 - 0x4c, 0x39, 0xd8, //0x0000473d cmpq %r11, %rax - 0x4d, 0x89, 0xda, //0x00004740 movq %r11, %r10 - 0x4c, 0x0f, 0x47, 0xd0, //0x00004743 cmovaq %rax, %r10 - 0x31, 0xc9, //0x00004747 xorl %ecx, %ecx - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00004749 .p2align 4, 0x90 - //0x00004750 LBB19_13 - 0x49, 0x39, 0xc2, //0x00004750 cmpq %rax, %r10 - 0x0f, 0x84, 0x81, 0x00, 0x00, 0x00, //0x00004753 je LBB19_23 - 0x49, 0x0f, 0xbe, 0x3c, 0x01, //0x00004759 movsbq (%r9,%rax), %rdi - 0x8d, 0x5f, 0xd0, //0x0000475e leal $-48(%rdi), %ebx - 0x80, 0xfb, 0x09, //0x00004761 cmpb $9, %bl - 0x0f, 0x87, 0x35, 0x00, 0x00, 0x00, //0x00004764 ja LBB19_18 - 0x48, 0x6b, 0xc9, 0x0a, //0x0000476a imulq $10, %rcx, %rcx - 0x0f, 0x80, 0x14, 0x00, 0x00, 0x00, //0x0000476e jo LBB19_17 - 0x48, 0x83, 0xc0, 0x01, //0x00004774 addq $1, %rax - 0x83, 0xc7, 0xd0, //0x00004778 addl $-48, %edi - 0x49, 0x0f, 0xaf, 0xf8, //0x0000477b imulq %r8, %rdi - 0x48, 0x01, 0xf9, //0x0000477f addq %rdi, %rcx - 0x0f, 0x81, 0xc8, 0xff, 0xff, 0xff, //0x00004782 jno LBB19_13 - //0x00004788 LBB19_17 - 0x48, 0x83, 0xc0, 0xff, //0x00004788 addq $-1, %rax - 0x48, 0x89, 0x06, //0x0000478c movq %rax, (%rsi) - 0x48, 0xc7, 0x02, 0xfb, 0xff, 0xff, 0xff, //0x0000478f movq $-5, (%rdx) - 0x5b, //0x00004796 popq %rbx - 0x5d, //0x00004797 popq %rbp - 0xc3, //0x00004798 retq - //0x00004799 LBB19_11 - 0x48, 0x89, 0x3e, //0x00004799 movq %rdi, (%rsi) - 0x5b, //0x0000479c popq %rbx - 0x5d, //0x0000479d popq %rbp - 0xc3, //0x0000479e retq - //0x0000479f LBB19_18 - 0x4c, 0x39, 0xd8, //0x0000479f cmpq %r11, %rax - 0x0f, 0x83, 0x2f, 0x00, 0x00, 0x00, //0x000047a2 jae LBB19_22 - 0x41, 0x8a, 0x3c, 0x01, //0x000047a8 movb (%r9,%rax), %dil - 0x40, 0x80, 0xff, 0x2e, //0x000047ac cmpb $46, %dil - 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x000047b0 je LBB19_25 - 0x40, 0x80, 0xff, 0x45, //0x000047b6 cmpb $69, %dil - 0x0f, 0x84, 0x0a, 0x00, 0x00, 0x00, //0x000047ba je LBB19_25 - 0x40, 0x80, 0xff, 0x65, //0x000047c0 cmpb $101, %dil - 0x0f, 0x85, 0x0d, 0x00, 0x00, 0x00, //0x000047c4 jne LBB19_22 - //0x000047ca LBB19_25 - 0x48, 0x89, 0x06, //0x000047ca movq %rax, (%rsi) - 0x48, 0xc7, 0x02, 0xfa, 0xff, 0xff, 0xff, //0x000047cd movq $-6, (%rdx) - 0x5b, //0x000047d4 popq %rbx - 0x5d, //0x000047d5 popq %rbp - 0xc3, //0x000047d6 retq - //0x000047d7 LBB19_22 - 0x49, 0x89, 0xc2, //0x000047d7 movq %rax, %r10 - //0x000047da LBB19_23 - 0x4c, 0x89, 0x16, //0x000047da movq %r10, (%rsi) - 0x48, 0x89, 0x4a, 0x10, //0x000047dd movq %rcx, $16(%rdx) - 0x5b, //0x000047e1 popq %rbx - 0x5d, //0x000047e2 popq %rbp - 0xc3, //0x000047e3 retq - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000047e4 .p2align 4, 0x90 - //0x000047f0 _vunsigned - 0x55, //0x000047f0 pushq %rbp - 0x48, 0x89, 0xe5, //0x000047f1 movq %rsp, %rbp - 0x41, 0x56, //0x000047f4 pushq %r14 - 0x53, //0x000047f6 pushq %rbx - 0x49, 0x89, 0xd0, //0x000047f7 movq %rdx, %r8 - 0x48, 0x8b, 0x0e, //0x000047fa movq (%rsi), %rcx - 0x4c, 0x8b, 0x0f, //0x000047fd movq (%rdi), %r9 - 0x4c, 0x8b, 0x77, 0x08, //0x00004800 movq $8(%rdi), %r14 - 0x48, 0xc7, 0x02, 0x09, 0x00, 0x00, 0x00, //0x00004804 movq $9, (%rdx) - 0x0f, 0x57, 0xc0, //0x0000480b xorps %xmm0, %xmm0 - 0x0f, 0x11, 0x42, 0x08, //0x0000480e movups %xmm0, $8(%rdx) - 0x48, 0x8b, 0x06, //0x00004812 movq (%rsi), %rax - 0x48, 0x89, 0x42, 0x18, //0x00004815 movq %rax, $24(%rdx) - 0x4c, 0x39, 0xf1, //0x00004819 cmpq %r14, %rcx - 0x0f, 0x83, 0x1b, 0x00, 0x00, 0x00, //0x0000481c jae LBB20_1 - 0x41, 0x8a, 0x04, 0x09, //0x00004822 movb (%r9,%rcx), %al - 0x3c, 0x2d, //0x00004826 cmpb $45, %al - 0x0f, 0x85, 0x1e, 0x00, 0x00, 0x00, //0x00004828 jne LBB20_4 - //0x0000482e LBB20_3 - 0x48, 0x89, 0x0e, //0x0000482e movq %rcx, (%rsi) - 0x49, 0xc7, 0x00, 0xfa, 0xff, 0xff, 0xff, //0x00004831 movq $-6, (%r8) - 0x5b, //0x00004838 popq %rbx - 0x41, 0x5e, //0x00004839 popq %r14 - 0x5d, //0x0000483b popq %rbp - 0xc3, //0x0000483c retq - //0x0000483d LBB20_1 - 0x4c, 0x89, 0x36, //0x0000483d movq %r14, (%rsi) - 0x49, 0xc7, 0x00, 0xff, 0xff, 0xff, 0xff, //0x00004840 movq $-1, (%r8) - 0x5b, //0x00004847 popq %rbx - 0x41, 0x5e, //0x00004848 popq %r14 - 0x5d, //0x0000484a popq %rbp - 0xc3, //0x0000484b retq - //0x0000484c LBB20_4 - 0x8d, 0x50, 0xd0, //0x0000484c leal $-48(%rax), %edx - 0x80, 0xfa, 0x0a, //0x0000484f cmpb $10, %dl - 0x0f, 0x82, 0x0f, 0x00, 0x00, 0x00, //0x00004852 jb LBB20_6 - 0x48, 0x89, 0x0e, //0x00004858 movq %rcx, (%rsi) - 0x49, 0xc7, 0x00, 0xfe, 0xff, 0xff, 0xff, //0x0000485b movq $-2, (%r8) - 0x5b, //0x00004862 popq %rbx - 0x41, 0x5e, //0x00004863 popq %r14 - 0x5d, //0x00004865 popq %rbp - 0xc3, //0x00004866 retq - //0x00004867 LBB20_6 - 0x3c, 0x30, //0x00004867 cmpb $48, %al - 0x0f, 0x85, 0x26, 0x00, 0x00, 0x00, //0x00004869 jne LBB20_10 - 0x41, 0x8a, 0x44, 0x09, 0x01, //0x0000486f movb $1(%r9,%rcx), %al - 0x04, 0xd2, //0x00004874 addb $-46, %al - 0x3c, 0x37, //0x00004876 cmpb $55, %al - 0x0f, 0x87, 0xc7, 0x00, 0x00, 0x00, //0x00004878 ja LBB20_9 - 0x0f, 0xb6, 0xc0, //0x0000487e movzbl %al, %eax - 0x48, 0xba, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, //0x00004881 movabsq $36028797027352577, %rdx - 0x48, 0x0f, 0xa3, 0xc2, //0x0000488b btq %rax, %rdx - 0x0f, 0x83, 0xb0, 0x00, 0x00, 0x00, //0x0000488f jae LBB20_9 - //0x00004895 LBB20_10 - 0x49, 0x39, 0xce, //0x00004895 cmpq %rcx, %r14 - 0x49, 0x89, 0xca, //0x00004898 movq %rcx, %r10 - 0x4d, 0x0f, 0x47, 0xd6, //0x0000489b cmovaq %r14, %r10 - 0x31, 0xc0, //0x0000489f xorl %eax, %eax - 0x41, 0xbb, 0x0a, 0x00, 0x00, 0x00, //0x000048a1 movl $10, %r11d - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000048a7 .p2align 4, 0x90 - //0x000048b0 LBB20_11 - 0x49, 0x39, 0xca, //0x000048b0 cmpq %rcx, %r10 - 0x0f, 0x84, 0x80, 0x00, 0x00, 0x00, //0x000048b3 je LBB20_22 - 0x41, 0x0f, 0xbe, 0x1c, 0x09, //0x000048b9 movsbl (%r9,%rcx), %ebx - 0x8d, 0x53, 0xd0, //0x000048be leal $-48(%rbx), %edx - 0x80, 0xfa, 0x09, //0x000048c1 cmpb $9, %dl - 0x0f, 0x87, 0x44, 0x00, 0x00, 0x00, //0x000048c4 ja LBB20_17 - 0x49, 0xf7, 0xe3, //0x000048ca mulq %r11 - 0x0f, 0x80, 0x28, 0x00, 0x00, 0x00, //0x000048cd jo LBB20_16 - 0x48, 0x83, 0xc1, 0x01, //0x000048d3 addq $1, %rcx - 0x83, 0xc3, 0xd0, //0x000048d7 addl $-48, %ebx - 0x31, 0xff, //0x000048da xorl %edi, %edi - 0x48, 0x01, 0xd8, //0x000048dc addq %rbx, %rax - 0x40, 0x0f, 0x92, 0xc7, //0x000048df setb %dil - 0x48, 0x89, 0xfa, //0x000048e3 movq %rdi, %rdx - 0x48, 0xf7, 0xda, //0x000048e6 negq %rdx - 0x48, 0x31, 0xd7, //0x000048e9 xorq %rdx, %rdi - 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x000048ec jne LBB20_16 - 0x48, 0x85, 0xd2, //0x000048f2 testq %rdx, %rdx - 0x0f, 0x89, 0xb5, 0xff, 0xff, 0xff, //0x000048f5 jns LBB20_11 - //0x000048fb LBB20_16 - 0x48, 0x83, 0xc1, 0xff, //0x000048fb addq $-1, %rcx - 0x48, 0x89, 0x0e, //0x000048ff movq %rcx, (%rsi) - 0x49, 0xc7, 0x00, 0xfb, 0xff, 0xff, 0xff, //0x00004902 movq $-5, (%r8) - 0x5b, //0x00004909 popq %rbx - 0x41, 0x5e, //0x0000490a popq %r14 - 0x5d, //0x0000490c popq %rbp - 0xc3, //0x0000490d retq - //0x0000490e LBB20_17 - 0x4c, 0x39, 0xf1, //0x0000490e cmpq %r14, %rcx - 0x0f, 0x83, 0x1f, 0x00, 0x00, 0x00, //0x00004911 jae LBB20_21 - 0x41, 0x8a, 0x14, 0x09, //0x00004917 movb (%r9,%rcx), %dl - 0x80, 0xfa, 0x2e, //0x0000491b cmpb $46, %dl - 0x0f, 0x84, 0x0a, 0xff, 0xff, 0xff, //0x0000491e je LBB20_3 - 0x80, 0xfa, 0x45, //0x00004924 cmpb $69, %dl - 0x0f, 0x84, 0x01, 0xff, 0xff, 0xff, //0x00004927 je LBB20_3 - 0x80, 0xfa, 0x65, //0x0000492d cmpb $101, %dl - 0x0f, 0x84, 0xf8, 0xfe, 0xff, 0xff, //0x00004930 je LBB20_3 - //0x00004936 LBB20_21 - 0x49, 0x89, 0xca, //0x00004936 movq %rcx, %r10 - //0x00004939 LBB20_22 - 0x4c, 0x89, 0x16, //0x00004939 movq %r10, (%rsi) - 0x49, 0x89, 0x40, 0x10, //0x0000493c movq %rax, $16(%r8) - 0x5b, //0x00004940 popq %rbx - 0x41, 0x5e, //0x00004941 popq %r14 - 0x5d, //0x00004943 popq %rbp - 0xc3, //0x00004944 retq - //0x00004945 LBB20_9 - 0x48, 0x83, 0xc1, 0x01, //0x00004945 addq $1, %rcx - 0x48, 0x89, 0x0e, //0x00004949 movq %rcx, (%rsi) - 0x5b, //0x0000494c popq %rbx - 0x41, 0x5e, //0x0000494d popq %r14 - 0x5d, //0x0000494f popq %rbp - 0xc3, //0x00004950 retq - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004951 .p2align 4, 0x00 - //0x00004960 LCPI21_0 - 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004960 .quad 1 - 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004968 .quad 5 - //0x00004970 .p2align 4, 0x90 - //0x00004970 _skip_array - 0x55, //0x00004970 pushq %rbp - 0x48, 0x89, 0xe5, //0x00004971 movq %rsp, %rbp - 0x48, 0x89, 0xd0, //0x00004974 movq %rdx, %rax - 0x48, 0x89, 0xf2, //0x00004977 movq %rsi, %rdx - 0x48, 0x89, 0xfe, //0x0000497a movq %rdi, %rsi - 0x0f, 0x28, 0x05, 0xdc, 0xff, 0xff, 0xff, //0x0000497d movaps $-36(%rip), %xmm0 /* LCPI21_0+0(%rip) */ - 0x0f, 0x11, 0x00, //0x00004984 movups %xmm0, (%rax) - 0x48, 0x89, 0xc7, //0x00004987 movq %rax, %rdi - 0x5d, //0x0000498a popq %rbp - 0xe9, 0x00, 0x00, 0x00, 0x00, //0x0000498b jmp _fsm_exec - //0x00004990 .p2align 4, 0x90 - //0x00004990 _fsm_exec - 0x55, //0x00004990 pushq %rbp - 0x48, 0x89, 0xe5, //0x00004991 movq %rsp, %rbp - 0x41, 0x57, //0x00004994 pushq %r15 - 0x41, 0x56, //0x00004996 pushq %r14 - 0x41, 0x55, //0x00004998 pushq %r13 - 0x41, 0x54, //0x0000499a pushq %r12 - 0x53, //0x0000499c pushq %rbx - 0x48, 0x83, 0xec, 0x28, //0x0000499d subq $40, %rsp - 0x48, 0x89, 0x4d, 0xb0, //0x000049a1 movq %rcx, $-80(%rbp) - 0x48, 0x83, 0x3f, 0x00, //0x000049a5 cmpq $0, (%rdi) - 0x0f, 0x84, 0xfc, 0x04, 0x00, 0x00, //0x000049a9 je LBB22_86 - 0x49, 0x89, 0xd0, //0x000049af movq %rdx, %r8 - 0x49, 0x89, 0xfb, //0x000049b2 movq %rdi, %r11 - 0x48, 0x8d, 0x46, 0x08, //0x000049b5 leaq $8(%rsi), %rax - 0x48, 0x89, 0x45, 0xd0, //0x000049b9 movq %rax, $-48(%rbp) - 0x49, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x000049bd movq $-1, %r14 - 0x49, 0xbc, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x000049c4 movabsq $4294977024, %r12 - 0x48, 0x89, 0x75, 0xc0, //0x000049ce movq %rsi, $-64(%rbp) - 0x48, 0x89, 0x7d, 0xb8, //0x000049d2 movq %rdi, $-72(%rbp) - 0xe9, 0x24, 0x00, 0x00, 0x00, //0x000049d6 jmp LBB22_5 - //0x000049db LBB22_2 - 0x48, 0x8d, 0x48, 0x03, //0x000049db leaq $3(%rax), %rcx - 0x49, 0x89, 0x08, //0x000049df movq %rcx, (%r8) - 0x48, 0x85, 0xc0, //0x000049e2 testq %rax, %rax - 0x0f, 0x8e, 0xc7, 0x04, 0x00, 0x00, //0x000049e5 jle LBB22_87 - 0x90, 0x90, 0x90, 0x90, 0x90, //0x000049eb .p2align 4, 0x90 - //0x000049f0 LBB22_3 - 0x4d, 0x8b, 0x13, //0x000049f0 movq (%r11), %r10 - 0x4d, 0x89, 0xf7, //0x000049f3 movq %r14, %r15 - 0x4d, 0x85, 0xd2, //0x000049f6 testq %r10, %r10 - 0x0f, 0x84, 0xb3, 0x04, 0x00, 0x00, //0x000049f9 je LBB22_87 - //0x000049ff LBB22_5 - 0x4d, 0x89, 0xf1, //0x000049ff movq %r14, %r9 - 0x48, 0x8b, 0x3e, //0x00004a02 movq (%rsi), %rdi - 0x48, 0x8b, 0x4e, 0x08, //0x00004a05 movq $8(%rsi), %rcx - 0x49, 0x8b, 0x10, //0x00004a09 movq (%r8), %rdx - 0x48, 0x39, 0xca, //0x00004a0c cmpq %rcx, %rdx - 0x0f, 0x83, 0x2b, 0x00, 0x00, 0x00, //0x00004a0f jae LBB22_10 - 0x8a, 0x1c, 0x17, //0x00004a15 movb (%rdi,%rdx), %bl - 0x80, 0xfb, 0x0d, //0x00004a18 cmpb $13, %bl - 0x0f, 0x84, 0x1f, 0x00, 0x00, 0x00, //0x00004a1b je LBB22_10 - 0x80, 0xfb, 0x20, //0x00004a21 cmpb $32, %bl - 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00004a24 je LBB22_10 - 0x80, 0xc3, 0xf7, //0x00004a2a addb $-9, %bl - 0x80, 0xfb, 0x01, //0x00004a2d cmpb $1, %bl - 0x0f, 0x86, 0x0a, 0x00, 0x00, 0x00, //0x00004a30 jbe LBB22_10 - 0x49, 0x89, 0xd6, //0x00004a36 movq %rdx, %r14 - 0xe9, 0xfa, 0x00, 0x00, 0x00, //0x00004a39 jmp LBB22_31 - 0x90, 0x90, //0x00004a3e .p2align 4, 0x90 - //0x00004a40 LBB22_10 - 0x4c, 0x8d, 0x72, 0x01, //0x00004a40 leaq $1(%rdx), %r14 - 0x49, 0x39, 0xce, //0x00004a44 cmpq %rcx, %r14 - 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00004a47 jae LBB22_14 - 0x42, 0x8a, 0x1c, 0x37, //0x00004a4d movb (%rdi,%r14), %bl - 0x80, 0xfb, 0x0d, //0x00004a51 cmpb $13, %bl - 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00004a54 je LBB22_14 - 0x80, 0xfb, 0x20, //0x00004a5a cmpb $32, %bl - 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x00004a5d je LBB22_14 - 0x80, 0xc3, 0xf7, //0x00004a63 addb $-9, %bl - 0x80, 0xfb, 0x01, //0x00004a66 cmpb $1, %bl - 0x0f, 0x87, 0xc9, 0x00, 0x00, 0x00, //0x00004a69 ja LBB22_31 - 0x90, //0x00004a6f .p2align 4, 0x90 - //0x00004a70 LBB22_14 - 0x4c, 0x8d, 0x72, 0x02, //0x00004a70 leaq $2(%rdx), %r14 - 0x49, 0x39, 0xce, //0x00004a74 cmpq %rcx, %r14 - 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00004a77 jae LBB22_18 - 0x42, 0x8a, 0x1c, 0x37, //0x00004a7d movb (%rdi,%r14), %bl - 0x80, 0xfb, 0x0d, //0x00004a81 cmpb $13, %bl - 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00004a84 je LBB22_18 - 0x80, 0xfb, 0x20, //0x00004a8a cmpb $32, %bl - 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x00004a8d je LBB22_18 - 0x80, 0xc3, 0xf7, //0x00004a93 addb $-9, %bl - 0x80, 0xfb, 0x01, //0x00004a96 cmpb $1, %bl - 0x0f, 0x87, 0x99, 0x00, 0x00, 0x00, //0x00004a99 ja LBB22_31 - 0x90, //0x00004a9f .p2align 4, 0x90 - //0x00004aa0 LBB22_18 - 0x4c, 0x8d, 0x72, 0x03, //0x00004aa0 leaq $3(%rdx), %r14 - 0x49, 0x39, 0xce, //0x00004aa4 cmpq %rcx, %r14 - 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00004aa7 jae LBB22_22 - 0x42, 0x8a, 0x1c, 0x37, //0x00004aad movb (%rdi,%r14), %bl - 0x80, 0xfb, 0x0d, //0x00004ab1 cmpb $13, %bl - 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00004ab4 je LBB22_22 - 0x80, 0xfb, 0x20, //0x00004aba cmpb $32, %bl - 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x00004abd je LBB22_22 - 0x80, 0xc3, 0xf7, //0x00004ac3 addb $-9, %bl - 0x80, 0xfb, 0x01, //0x00004ac6 cmpb $1, %bl - 0x0f, 0x87, 0x69, 0x00, 0x00, 0x00, //0x00004ac9 ja LBB22_31 - 0x90, //0x00004acf .p2align 4, 0x90 - //0x00004ad0 LBB22_22 - 0x48, 0x83, 0xc2, 0x04, //0x00004ad0 addq $4, %rdx - 0x48, 0x39, 0xd1, //0x00004ad4 cmpq %rdx, %rcx - 0x0f, 0x86, 0xcb, 0x03, 0x00, 0x00, //0x00004ad7 jbe LBB22_85 - 0x48, 0x39, 0xd1, //0x00004add cmpq %rdx, %rcx - 0x0f, 0x84, 0x3a, 0x00, 0x00, 0x00, //0x00004ae0 je LBB22_28 - 0x48, 0x8d, 0x04, 0x0f, //0x00004ae6 leaq (%rdi,%rcx), %rax - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00004aea .p2align 4, 0x90 - //0x00004af0 LBB22_25 - 0x0f, 0xbe, 0x1c, 0x17, //0x00004af0 movsbl (%rdi,%rdx), %ebx - 0x83, 0xfb, 0x20, //0x00004af4 cmpl $32, %ebx - 0x0f, 0x87, 0x2f, 0x00, 0x00, 0x00, //0x00004af7 ja LBB22_30 - 0x49, 0x0f, 0xa3, 0xdc, //0x00004afd btq %rbx, %r12 - 0x0f, 0x83, 0x25, 0x00, 0x00, 0x00, //0x00004b01 jae LBB22_30 - 0x48, 0x83, 0xc2, 0x01, //0x00004b07 addq $1, %rdx - 0x48, 0x39, 0xd1, //0x00004b0b cmpq %rdx, %rcx - 0x0f, 0x85, 0xdc, 0xff, 0xff, 0xff, //0x00004b0e jne LBB22_25 - 0xe9, 0x0d, 0x00, 0x00, 0x00, //0x00004b14 jmp LBB22_29 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00004b19 .p2align 4, 0x90 - //0x00004b20 LBB22_28 - 0x48, 0x01, 0xfa, //0x00004b20 addq %rdi, %rdx - 0x48, 0x89, 0xd0, //0x00004b23 movq %rdx, %rax - //0x00004b26 LBB22_29 - 0x48, 0x29, 0xf8, //0x00004b26 subq %rdi, %rax - 0x48, 0x89, 0xc2, //0x00004b29 movq %rax, %rdx - //0x00004b2c LBB22_30 - 0x49, 0x89, 0xd6, //0x00004b2c movq %rdx, %r14 - 0x48, 0x39, 0xca, //0x00004b2f cmpq %rcx, %rdx - 0x0f, 0x83, 0x73, 0x03, 0x00, 0x00, //0x00004b32 jae LBB22_86 - //0x00004b38 LBB22_31 - 0x49, 0x8d, 0x4e, 0x01, //0x00004b38 leaq $1(%r14), %rcx - 0x49, 0x89, 0x08, //0x00004b3c movq %rcx, (%r8) - 0x42, 0x0f, 0xbe, 0x0c, 0x37, //0x00004b3f movsbl (%rdi,%r14), %ecx - 0x49, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, //0x00004b44 movq $-1, %r15 - 0x85, 0xc9, //0x00004b4b testl %ecx, %ecx - 0x0f, 0x84, 0x5f, 0x03, 0x00, 0x00, //0x00004b4d je LBB22_87 - 0x4d, 0x8b, 0x2b, //0x00004b53 movq (%r11), %r13 - 0x4d, 0x8d, 0x55, 0xff, //0x00004b56 leaq $-1(%r13), %r10 - 0x43, 0x8b, 0x1c, 0xeb, //0x00004b5a movl (%r11,%r13,8), %ebx - 0x49, 0x83, 0xf9, 0xff, //0x00004b5e cmpq $-1, %r9 - 0x4d, 0x0f, 0x45, 0xf1, //0x00004b62 cmovneq %r9, %r14 - 0x83, 0xc3, 0xff, //0x00004b66 addl $-1, %ebx - 0x83, 0xfb, 0x05, //0x00004b69 cmpl $5, %ebx - 0x0f, 0x87, 0x27, 0x00, 0x00, 0x00, //0x00004b6c ja LBB22_37 - 0x48, 0x8d, 0x15, 0x8f, 0x04, 0x00, 0x00, //0x00004b72 leaq $1167(%rip), %rdx /* LJTI22_0+0(%rip) */ - 0x48, 0x63, 0x04, 0x9a, //0x00004b79 movslq (%rdx,%rbx,4), %rax - 0x48, 0x01, 0xd0, //0x00004b7d addq %rdx, %rax - 0xff, 0xe0, //0x00004b80 jmpq *%rax - //0x00004b82 LBB22_34 - 0x83, 0xf9, 0x2c, //0x00004b82 cmpl $44, %ecx - 0x0f, 0x84, 0x6c, 0x01, 0x00, 0x00, //0x00004b85 je LBB22_53 - 0x83, 0xf9, 0x5d, //0x00004b8b cmpl $93, %ecx - 0x0f, 0x84, 0x4f, 0x01, 0x00, 0x00, //0x00004b8e je LBB22_36 - 0xe9, 0x56, 0x04, 0x00, 0x00, //0x00004b94 jmp LBB22_90 - //0x00004b99 LBB22_37 - 0x4d, 0x89, 0x13, //0x00004b99 movq %r10, (%r11) - 0x83, 0xf9, 0x7b, //0x00004b9c cmpl $123, %ecx - 0x0f, 0x86, 0xba, 0x00, 0x00, 0x00, //0x00004b9f jbe LBB22_49 - 0xe9, 0x45, 0x04, 0x00, 0x00, //0x00004ba5 jmp LBB22_90 - //0x00004baa LBB22_38 - 0x83, 0xf9, 0x2c, //0x00004baa cmpl $44, %ecx - 0x0f, 0x85, 0x27, 0x01, 0x00, 0x00, //0x00004bad jne LBB22_39 - 0x49, 0x81, 0xfd, 0xff, 0x0f, 0x00, 0x00, //0x00004bb3 cmpq $4095, %r13 - 0x0f, 0x8f, 0x04, 0x03, 0x00, 0x00, //0x00004bba jg LBB22_92 - 0x49, 0x8d, 0x45, 0x01, //0x00004bc0 leaq $1(%r13), %rax - 0x49, 0x89, 0x03, //0x00004bc4 movq %rax, (%r11) - 0x4b, 0xc7, 0x44, 0xeb, 0x08, 0x03, 0x00, 0x00, 0x00, //0x00004bc7 movq $3, $8(%r11,%r13,8) - 0xe9, 0x1b, 0xfe, 0xff, 0xff, //0x00004bd0 jmp LBB22_3 - //0x00004bd5 LBB22_40 - 0x80, 0xf9, 0x22, //0x00004bd5 cmpb $34, %cl - 0x0f, 0x85, 0x11, 0x04, 0x00, 0x00, //0x00004bd8 jne LBB22_90 - 0x4b, 0xc7, 0x04, 0xeb, 0x04, 0x00, 0x00, 0x00, //0x00004bde movq $4, (%r11,%r13,8) - //0x00004be6 LBB22_42 - 0x48, 0xc7, 0x45, 0xc8, 0xff, 0xff, 0xff, 0xff, //0x00004be6 movq $-1, $-56(%rbp) - 0x4d, 0x8b, 0x28, //0x00004bee movq (%r8), %r13 - 0x48, 0x89, 0xf7, //0x00004bf1 movq %rsi, %rdi - 0x4c, 0x89, 0xee, //0x00004bf4 movq %r13, %rsi - 0x48, 0x8d, 0x55, 0xc8, //0x00004bf7 leaq $-56(%rbp), %rdx - 0x48, 0x8b, 0x4d, 0xb0, //0x00004bfb movq $-80(%rbp), %rcx - 0x4c, 0x89, 0xc3, //0x00004bff movq %r8, %rbx - 0xe8, 0xa9, 0xee, 0xff, 0xff, //0x00004c02 callq _advance_string - 0x49, 0x89, 0xc7, //0x00004c07 movq %rax, %r15 - 0x48, 0x85, 0xc0, //0x00004c0a testq %rax, %rax - 0x0f, 0x88, 0xbd, 0x02, 0x00, 0x00, //0x00004c0d js LBB22_88 - 0x4c, 0x89, 0x3b, //0x00004c13 movq %r15, (%rbx) - 0x4d, 0x85, 0xed, //0x00004c16 testq %r13, %r13 - 0x49, 0x89, 0xd8, //0x00004c19 movq %rbx, %r8 - 0x48, 0x8b, 0x75, 0xc0, //0x00004c1c movq $-64(%rbp), %rsi - 0x4c, 0x8b, 0x5d, 0xb8, //0x00004c20 movq $-72(%rbp), %r11 - 0x0f, 0x8f, 0xc6, 0xfd, 0xff, 0xff, //0x00004c24 jg LBB22_3 - 0xe9, 0xb9, 0x02, 0x00, 0x00, //0x00004c2a jmp LBB22_44 - //0x00004c2f LBB22_45 - 0x80, 0xf9, 0x3a, //0x00004c2f cmpb $58, %cl - 0x0f, 0x85, 0xb7, 0x03, 0x00, 0x00, //0x00004c32 jne LBB22_90 - 0x4b, 0xc7, 0x04, 0xeb, 0x00, 0x00, 0x00, 0x00, //0x00004c38 movq $0, (%r11,%r13,8) - 0xe9, 0xab, 0xfd, 0xff, 0xff, //0x00004c40 jmp LBB22_3 - //0x00004c45 LBB22_47 - 0x80, 0xf9, 0x5d, //0x00004c45 cmpb $93, %cl - 0x0f, 0x84, 0x95, 0x00, 0x00, 0x00, //0x00004c48 je LBB22_36 - 0x4b, 0xc7, 0x04, 0xeb, 0x01, 0x00, 0x00, 0x00, //0x00004c4e movq $1, (%r11,%r13,8) - 0x83, 0xf9, 0x7b, //0x00004c56 cmpl $123, %ecx - 0x0f, 0x87, 0x90, 0x03, 0x00, 0x00, //0x00004c59 ja LBB22_90 - //0x00004c5f LBB22_49 - 0x89, 0xc8, //0x00004c5f movl %ecx, %eax - 0x48, 0x8d, 0x0d, 0xb8, 0x03, 0x00, 0x00, //0x00004c61 leaq $952(%rip), %rcx /* LJTI22_1+0(%rip) */ - 0x48, 0x63, 0x04, 0x81, //0x00004c68 movslq (%rcx,%rax,4), %rax - 0x48, 0x01, 0xc8, //0x00004c6c addq %rcx, %rax - 0xff, 0xe0, //0x00004c6f jmpq *%rax - //0x00004c71 LBB22_52 - 0x49, 0x8b, 0x18, //0x00004c71 movq (%r8), %rbx - 0x4c, 0x8d, 0x7b, 0xff, //0x00004c74 leaq $-1(%rbx), %r15 - 0x48, 0x01, 0xdf, //0x00004c78 addq %rbx, %rdi - 0x48, 0x83, 0xc7, 0xff, //0x00004c7b addq $-1, %rdi - 0x48, 0x8b, 0x45, 0xd0, //0x00004c7f movq $-48(%rbp), %rax - 0x48, 0x8b, 0x30, //0x00004c83 movq (%rax), %rsi - 0x4c, 0x29, 0xfe, //0x00004c86 subq %r15, %rsi - 0x4d, 0x89, 0xc5, //0x00004c89 movq %r8, %r13 - 0xe8, 0xef, 0x06, 0x00, 0x00, //0x00004c8c callq _do_skip_number - 0x4c, 0x8b, 0x5d, 0xb8, //0x00004c91 movq $-72(%rbp), %r11 - 0x48, 0x8b, 0x75, 0xc0, //0x00004c95 movq $-64(%rbp), %rsi - 0x4d, 0x89, 0xe8, //0x00004c99 movq %r13, %r8 - 0x48, 0x8d, 0x48, 0xff, //0x00004c9c leaq $-1(%rax), %rcx - 0x48, 0xc7, 0xc2, 0xfe, 0xff, 0xff, 0xff, //0x00004ca0 movq $-2, %rdx - 0x48, 0x29, 0xc2, //0x00004ca7 subq %rax, %rdx - 0x48, 0x85, 0xc0, //0x00004caa testq %rax, %rax - 0x48, 0x0f, 0x49, 0xd1, //0x00004cad cmovnsq %rcx, %rdx - 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00004cb1 movq $-2, %rax - 0x4c, 0x0f, 0x48, 0xf8, //0x00004cb8 cmovsq %rax, %r15 - 0x48, 0x01, 0xda, //0x00004cbc addq %rbx, %rdx - 0x49, 0x89, 0x55, 0x00, //0x00004cbf movq %rdx, (%r13) - 0x4d, 0x85, 0xff, //0x00004cc3 testq %r15, %r15 - 0x0f, 0x89, 0x24, 0xfd, 0xff, 0xff, //0x00004cc6 jns LBB22_3 - 0xe9, 0xe1, 0x01, 0x00, 0x00, //0x00004ccc jmp LBB22_87 - //0x00004cd1 LBB22_50 - 0x83, 0xf9, 0x22, //0x00004cd1 cmpl $34, %ecx - 0x0f, 0x84, 0x3f, 0x00, 0x00, 0x00, //0x00004cd4 je LBB22_57 - //0x00004cda LBB22_39 - 0x83, 0xf9, 0x7d, //0x00004cda cmpl $125, %ecx - 0x0f, 0x85, 0x0c, 0x03, 0x00, 0x00, //0x00004cdd jne LBB22_90 - //0x00004ce3 LBB22_36 - 0x4d, 0x89, 0x13, //0x00004ce3 movq %r10, (%r11) - 0x4d, 0x89, 0xf7, //0x00004ce6 movq %r14, %r15 - 0x4d, 0x85, 0xd2, //0x00004ce9 testq %r10, %r10 - 0x0f, 0x85, 0x0d, 0xfd, 0xff, 0xff, //0x00004cec jne LBB22_5 - 0xe9, 0xbb, 0x01, 0x00, 0x00, //0x00004cf2 jmp LBB22_87 - //0x00004cf7 LBB22_53 - 0x49, 0x81, 0xfd, 0xff, 0x0f, 0x00, 0x00, //0x00004cf7 cmpq $4095, %r13 - 0x0f, 0x8f, 0xc0, 0x01, 0x00, 0x00, //0x00004cfe jg LBB22_92 - 0x49, 0x8d, 0x45, 0x01, //0x00004d04 leaq $1(%r13), %rax - 0x49, 0x89, 0x03, //0x00004d08 movq %rax, (%r11) - 0x4b, 0xc7, 0x44, 0xeb, 0x08, 0x00, 0x00, 0x00, 0x00, //0x00004d0b movq $0, $8(%r11,%r13,8) - 0xe9, 0xd7, 0xfc, 0xff, 0xff, //0x00004d14 jmp LBB22_3 - //0x00004d19 LBB22_57 - 0x4b, 0xc7, 0x04, 0xeb, 0x02, 0x00, 0x00, 0x00, //0x00004d19 movq $2, (%r11,%r13,8) - 0x48, 0xc7, 0x45, 0xc8, 0xff, 0xff, 0xff, 0xff, //0x00004d21 movq $-1, $-56(%rbp) - 0x4d, 0x8b, 0x28, //0x00004d29 movq (%r8), %r13 - 0x48, 0x89, 0xf7, //0x00004d2c movq %rsi, %rdi - 0x4c, 0x89, 0xee, //0x00004d2f movq %r13, %rsi - 0x48, 0x8d, 0x55, 0xc8, //0x00004d32 leaq $-56(%rbp), %rdx - 0x48, 0x8b, 0x4d, 0xb0, //0x00004d36 movq $-80(%rbp), %rcx - 0x4c, 0x89, 0xc3, //0x00004d3a movq %r8, %rbx - 0xe8, 0x6e, 0xed, 0xff, 0xff, //0x00004d3d callq _advance_string - 0x49, 0x89, 0xc7, //0x00004d42 movq %rax, %r15 - 0x48, 0x85, 0xc0, //0x00004d45 testq %rax, %rax - 0x0f, 0x88, 0x82, 0x01, 0x00, 0x00, //0x00004d48 js LBB22_88 - 0x4c, 0x89, 0x3b, //0x00004d4e movq %r15, (%rbx) - 0x4d, 0x85, 0xed, //0x00004d51 testq %r13, %r13 - 0x0f, 0x8e, 0x8e, 0x01, 0x00, 0x00, //0x00004d54 jle LBB22_44 - 0x4c, 0x8b, 0x5d, 0xb8, //0x00004d5a movq $-72(%rbp), %r11 - 0x49, 0x8b, 0x03, //0x00004d5e movq (%r11), %rax - 0x48, 0x3d, 0xff, 0x0f, 0x00, 0x00, //0x00004d61 cmpq $4095, %rax - 0x0f, 0x8f, 0x57, 0x01, 0x00, 0x00, //0x00004d67 jg LBB22_92 - 0x49, 0x89, 0xd8, //0x00004d6d movq %rbx, %r8 - 0x48, 0x8d, 0x48, 0x01, //0x00004d70 leaq $1(%rax), %rcx - 0x49, 0x89, 0x0b, //0x00004d74 movq %rcx, (%r11) - 0x49, 0xc7, 0x44, 0xc3, 0x08, 0x04, 0x00, 0x00, 0x00, //0x00004d77 movq $4, $8(%r11,%rax,8) - 0x48, 0x8b, 0x75, 0xc0, //0x00004d80 movq $-64(%rbp), %rsi - 0xe9, 0x67, 0xfc, 0xff, 0xff, //0x00004d84 jmp LBB22_3 - //0x00004d89 LBB22_61 - 0x4d, 0x8b, 0x38, //0x00004d89 movq (%r8), %r15 - 0x4c, 0x01, 0xff, //0x00004d8c addq %r15, %rdi - 0x48, 0x8b, 0x45, 0xd0, //0x00004d8f movq $-48(%rbp), %rax - 0x48, 0x8b, 0x30, //0x00004d93 movq (%rax), %rsi - 0x4c, 0x29, 0xfe, //0x00004d96 subq %r15, %rsi - 0x4c, 0x89, 0xc3, //0x00004d99 movq %r8, %rbx - 0xe8, 0xdf, 0x05, 0x00, 0x00, //0x00004d9c callq _do_skip_number - 0x48, 0x85, 0xc0, //0x00004da1 testq %rax, %rax - 0x0f, 0x88, 0x52, 0x01, 0x00, 0x00, //0x00004da4 js LBB22_89 - 0x4c, 0x01, 0xf8, //0x00004daa addq %r15, %rax - 0x48, 0x89, 0x03, //0x00004dad movq %rax, (%rbx) - 0x4d, 0x85, 0xff, //0x00004db0 testq %r15, %r15 - 0x49, 0x89, 0xd8, //0x00004db3 movq %rbx, %r8 - 0x48, 0x8b, 0x75, 0xc0, //0x00004db6 movq $-64(%rbp), %rsi - 0x4c, 0x8b, 0x5d, 0xb8, //0x00004dba movq $-72(%rbp), %r11 - 0x0f, 0x8f, 0x2c, 0xfc, 0xff, 0xff, //0x00004dbe jg LBB22_3 - 0xe9, 0x93, 0x01, 0x00, 0x00, //0x00004dc4 jmp LBB22_63 - //0x00004dc9 LBB22_64 - 0x49, 0x8b, 0x03, //0x00004dc9 movq (%r11), %rax - 0x48, 0x3d, 0xff, 0x0f, 0x00, 0x00, //0x00004dcc cmpq $4095, %rax - 0x0f, 0x8f, 0xec, 0x00, 0x00, 0x00, //0x00004dd2 jg LBB22_92 - 0x48, 0x8d, 0x48, 0x01, //0x00004dd8 leaq $1(%rax), %rcx - 0x49, 0x89, 0x0b, //0x00004ddc movq %rcx, (%r11) - 0x49, 0xc7, 0x44, 0xc3, 0x08, 0x05, 0x00, 0x00, 0x00, //0x00004ddf movq $5, $8(%r11,%rax,8) - 0xe9, 0x03, 0xfc, 0xff, 0xff, //0x00004de8 jmp LBB22_3 - //0x00004ded LBB22_66 - 0x49, 0x8b, 0x00, //0x00004ded movq (%r8), %rax - 0x48, 0x8b, 0x4d, 0xd0, //0x00004df0 movq $-48(%rbp), %rcx - 0x48, 0x8b, 0x09, //0x00004df4 movq (%rcx), %rcx - 0x48, 0x8d, 0x51, 0xfc, //0x00004df7 leaq $-4(%rcx), %rdx - 0x48, 0x39, 0xd0, //0x00004dfb cmpq %rdx, %rax - 0x0f, 0x87, 0xf0, 0x00, 0x00, 0x00, //0x00004dfe ja LBB22_91 - 0x8b, 0x0c, 0x07, //0x00004e04 movl (%rdi,%rax), %ecx - 0x81, 0xf9, 0x61, 0x6c, 0x73, 0x65, //0x00004e07 cmpl $1702063201, %ecx - 0x0f, 0x85, 0xf7, 0x00, 0x00, 0x00, //0x00004e0d jne LBB22_93 - 0x48, 0x8d, 0x48, 0x04, //0x00004e13 leaq $4(%rax), %rcx - 0x49, 0x89, 0x08, //0x00004e17 movq %rcx, (%r8) - 0x48, 0x85, 0xc0, //0x00004e1a testq %rax, %rax - 0x0f, 0x8f, 0xcd, 0xfb, 0xff, 0xff, //0x00004e1d jg LBB22_3 - 0xe9, 0xd3, 0x01, 0x00, 0x00, //0x00004e23 jmp LBB22_69 - //0x00004e28 LBB22_70 - 0x49, 0x8b, 0x00, //0x00004e28 movq (%r8), %rax - 0x48, 0x8b, 0x4d, 0xd0, //0x00004e2b movq $-48(%rbp), %rcx - 0x48, 0x8b, 0x09, //0x00004e2f movq (%rcx), %rcx - 0x48, 0x8d, 0x51, 0xfd, //0x00004e32 leaq $-3(%rcx), %rdx - 0x48, 0x39, 0xd0, //0x00004e36 cmpq %rdx, %rax - 0x0f, 0x87, 0xb5, 0x00, 0x00, 0x00, //0x00004e39 ja LBB22_91 - 0x4c, 0x8d, 0x78, 0xff, //0x00004e3f leaq $-1(%rax), %r15 - 0x81, 0x7c, 0x07, 0xff, 0x6e, 0x75, 0x6c, 0x6c, //0x00004e43 cmpl $1819047278, $-1(%rdi,%rax) - 0x0f, 0x84, 0x8a, 0xfb, 0xff, 0xff, //0x00004e4b je LBB22_2 - 0xe9, 0x0f, 0x01, 0x00, 0x00, //0x00004e51 jmp LBB22_72 - //0x00004e56 LBB22_76 - 0x49, 0x8b, 0x00, //0x00004e56 movq (%r8), %rax - 0x48, 0x8b, 0x4d, 0xd0, //0x00004e59 movq $-48(%rbp), %rcx - 0x48, 0x8b, 0x09, //0x00004e5d movq (%rcx), %rcx - 0x48, 0x8d, 0x51, 0xfd, //0x00004e60 leaq $-3(%rcx), %rdx - 0x48, 0x39, 0xd0, //0x00004e64 cmpq %rdx, %rax - 0x0f, 0x87, 0x87, 0x00, 0x00, 0x00, //0x00004e67 ja LBB22_91 - 0x4c, 0x8d, 0x78, 0xff, //0x00004e6d leaq $-1(%rax), %r15 - 0x81, 0x7c, 0x07, 0xff, 0x74, 0x72, 0x75, 0x65, //0x00004e71 cmpl $1702195828, $-1(%rdi,%rax) - 0x0f, 0x84, 0x5c, 0xfb, 0xff, 0xff, //0x00004e79 je LBB22_2 - 0xe9, 0x25, 0x01, 0x00, 0x00, //0x00004e7f jmp LBB22_78 - //0x00004e84 LBB22_83 - 0x49, 0x8b, 0x03, //0x00004e84 movq (%r11), %rax - 0x48, 0x3d, 0xff, 0x0f, 0x00, 0x00, //0x00004e87 cmpq $4095, %rax - 0x0f, 0x8f, 0x31, 0x00, 0x00, 0x00, //0x00004e8d jg LBB22_92 - 0x48, 0x8d, 0x48, 0x01, //0x00004e93 leaq $1(%rax), %rcx - 0x49, 0x89, 0x0b, //0x00004e97 movq %rcx, (%r11) - 0x49, 0xc7, 0x44, 0xc3, 0x08, 0x06, 0x00, 0x00, 0x00, //0x00004e9a movq $6, $8(%r11,%rax,8) - 0xe9, 0x48, 0xfb, 0xff, 0xff, //0x00004ea3 jmp LBB22_3 - //0x00004ea8 LBB22_85 - 0x49, 0x89, 0x10, //0x00004ea8 movq %rdx, (%r8) - //0x00004eab LBB22_86 - 0x49, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, //0x00004eab movq $-1, %r15 - //0x00004eb2 LBB22_87 - 0x4c, 0x89, 0xf8, //0x00004eb2 movq %r15, %rax - 0x48, 0x83, 0xc4, 0x28, //0x00004eb5 addq $40, %rsp - 0x5b, //0x00004eb9 popq %rbx - 0x41, 0x5c, //0x00004eba popq %r12 - 0x41, 0x5d, //0x00004ebc popq %r13 - 0x41, 0x5e, //0x00004ebe popq %r14 - 0x41, 0x5f, //0x00004ec0 popq %r15 - 0x5d, //0x00004ec2 popq %rbp - 0xc3, //0x00004ec3 retq - //0x00004ec4 LBB22_92 - 0x49, 0xc7, 0xc7, 0xf9, 0xff, 0xff, 0xff, //0x00004ec4 movq $-7, %r15 - 0xe9, 0xe2, 0xff, 0xff, 0xff, //0x00004ecb jmp LBB22_87 - //0x00004ed0 LBB22_88 - 0x49, 0x83, 0xff, 0xff, //0x00004ed0 cmpq $-1, %r15 - 0x48, 0x8d, 0x45, 0xc8, //0x00004ed4 leaq $-56(%rbp), %rax - 0x48, 0x0f, 0x44, 0x45, 0xd0, //0x00004ed8 cmoveq $-48(%rbp), %rax - 0x48, 0x8b, 0x00, //0x00004edd movq (%rax), %rax - 0x48, 0x89, 0x03, //0x00004ee0 movq %rax, (%rbx) - 0xe9, 0xca, 0xff, 0xff, 0xff, //0x00004ee3 jmp LBB22_87 - //0x00004ee8 LBB22_44 - 0x49, 0x83, 0xc5, 0xff, //0x00004ee8 addq $-1, %r13 - 0x4d, 0x89, 0xef, //0x00004eec movq %r13, %r15 - 0xe9, 0xbe, 0xff, 0xff, 0xff, //0x00004eef jmp LBB22_87 - //0x00004ef4 LBB22_91 - 0x49, 0x89, 0x08, //0x00004ef4 movq %rcx, (%r8) - 0xe9, 0xb6, 0xff, 0xff, 0xff, //0x00004ef7 jmp LBB22_87 - //0x00004efc LBB22_89 - 0x48, 0xf7, 0xd0, //0x00004efc notq %rax - 0x49, 0x01, 0xc7, //0x00004eff addq %rax, %r15 - 0x4c, 0x89, 0x3b, //0x00004f02 movq %r15, (%rbx) - 0xe9, 0xe5, 0x00, 0x00, 0x00, //0x00004f05 jmp LBB22_90 - //0x00004f0a LBB22_93 - 0x49, 0xc7, 0xc7, 0xfe, 0xff, 0xff, 0xff, //0x00004f0a movq $-2, %r15 - 0x80, 0xf9, 0x61, //0x00004f11 cmpb $97, %cl - 0x0f, 0x85, 0x98, 0xff, 0xff, 0xff, //0x00004f14 jne LBB22_87 - 0x48, 0x8d, 0x48, 0x01, //0x00004f1a leaq $1(%rax), %rcx - 0x49, 0x89, 0x08, //0x00004f1e movq %rcx, (%r8) - 0x80, 0x7c, 0x07, 0x01, 0x6c, //0x00004f21 cmpb $108, $1(%rdi,%rax) - 0x0f, 0x85, 0x86, 0xff, 0xff, 0xff, //0x00004f26 jne LBB22_87 - 0x48, 0x8d, 0x48, 0x02, //0x00004f2c leaq $2(%rax), %rcx - 0x49, 0x89, 0x08, //0x00004f30 movq %rcx, (%r8) - 0x80, 0x7c, 0x07, 0x02, 0x73, //0x00004f33 cmpb $115, $2(%rdi,%rax) - 0x0f, 0x85, 0x74, 0xff, 0xff, 0xff, //0x00004f38 jne LBB22_87 - 0x48, 0x8d, 0x48, 0x03, //0x00004f3e leaq $3(%rax), %rcx - 0x49, 0x89, 0x08, //0x00004f42 movq %rcx, (%r8) - 0x80, 0x7c, 0x07, 0x03, 0x65, //0x00004f45 cmpb $101, $3(%rdi,%rax) - 0x0f, 0x85, 0x62, 0xff, 0xff, 0xff, //0x00004f4a jne LBB22_87 - 0x48, 0x83, 0xc0, 0x04, //0x00004f50 addq $4, %rax - 0x49, 0x89, 0x00, //0x00004f54 movq %rax, (%r8) - 0xe9, 0x56, 0xff, 0xff, 0xff, //0x00004f57 jmp LBB22_87 - //0x00004f5c LBB22_63 - 0x49, 0x83, 0xc7, 0xff, //0x00004f5c addq $-1, %r15 - 0xe9, 0x4d, 0xff, 0xff, 0xff, //0x00004f60 jmp LBB22_87 - //0x00004f65 LBB22_72 - 0x4d, 0x89, 0x38, //0x00004f65 movq %r15, (%r8) - 0x42, 0x80, 0x3c, 0x3f, 0x6e, //0x00004f68 cmpb $110, (%rdi,%r15) - 0x0f, 0x85, 0x7c, 0x00, 0x00, 0x00, //0x00004f6d jne LBB22_90 - 0x49, 0x89, 0x00, //0x00004f73 movq %rax, (%r8) - 0x80, 0x3c, 0x07, 0x75, //0x00004f76 cmpb $117, (%rdi,%rax) - 0x0f, 0x85, 0x6f, 0x00, 0x00, 0x00, //0x00004f7a jne LBB22_90 - 0x48, 0x8d, 0x48, 0x01, //0x00004f80 leaq $1(%rax), %rcx - 0x49, 0x89, 0x08, //0x00004f84 movq %rcx, (%r8) - 0x80, 0x7c, 0x07, 0x01, 0x6c, //0x00004f87 cmpb $108, $1(%rdi,%rax) - 0x0f, 0x85, 0x5d, 0x00, 0x00, 0x00, //0x00004f8c jne LBB22_90 - 0x48, 0x8d, 0x48, 0x02, //0x00004f92 leaq $2(%rax), %rcx - 0x49, 0x89, 0x08, //0x00004f96 movq %rcx, (%r8) - 0x80, 0x7c, 0x07, 0x02, 0x6c, //0x00004f99 cmpb $108, $2(%rdi,%rax) - 0x0f, 0x84, 0x44, 0x00, 0x00, 0x00, //0x00004f9e je LBB22_82 - 0xe9, 0x46, 0x00, 0x00, 0x00, //0x00004fa4 jmp LBB22_90 - //0x00004fa9 LBB22_78 - 0x4d, 0x89, 0x38, //0x00004fa9 movq %r15, (%r8) - 0x42, 0x80, 0x3c, 0x3f, 0x74, //0x00004fac cmpb $116, (%rdi,%r15) - 0x0f, 0x85, 0x38, 0x00, 0x00, 0x00, //0x00004fb1 jne LBB22_90 - 0x49, 0x89, 0x00, //0x00004fb7 movq %rax, (%r8) - 0x80, 0x3c, 0x07, 0x72, //0x00004fba cmpb $114, (%rdi,%rax) - 0x0f, 0x85, 0x2b, 0x00, 0x00, 0x00, //0x00004fbe jne LBB22_90 - 0x48, 0x8d, 0x48, 0x01, //0x00004fc4 leaq $1(%rax), %rcx - 0x49, 0x89, 0x08, //0x00004fc8 movq %rcx, (%r8) - 0x80, 0x7c, 0x07, 0x01, 0x75, //0x00004fcb cmpb $117, $1(%rdi,%rax) - 0x0f, 0x85, 0x19, 0x00, 0x00, 0x00, //0x00004fd0 jne LBB22_90 - 0x48, 0x8d, 0x48, 0x02, //0x00004fd6 leaq $2(%rax), %rcx - 0x49, 0x89, 0x08, //0x00004fda movq %rcx, (%r8) - 0x80, 0x7c, 0x07, 0x02, 0x65, //0x00004fdd cmpb $101, $2(%rdi,%rax) - 0x0f, 0x85, 0x07, 0x00, 0x00, 0x00, //0x00004fe2 jne LBB22_90 - //0x00004fe8 LBB22_82 - 0x48, 0x83, 0xc0, 0x03, //0x00004fe8 addq $3, %rax - 0x49, 0x89, 0x00, //0x00004fec movq %rax, (%r8) - //0x00004fef LBB22_90 - 0x49, 0xc7, 0xc7, 0xfe, 0xff, 0xff, 0xff, //0x00004fef movq $-2, %r15 - 0xe9, 0xb7, 0xfe, 0xff, 0xff, //0x00004ff6 jmp LBB22_87 - //0x00004ffb LBB22_69 - 0x48, 0x83, 0xc0, 0xff, //0x00004ffb addq $-1, %rax - 0x49, 0x89, 0xc7, //0x00004fff movq %rax, %r15 - 0xe9, 0xab, 0xfe, 0xff, 0xff, //0x00005002 jmp LBB22_87 - 0x90, //0x00005007 .p2align 2, 0x90 - // // .set L22_0_set_34, LBB22_34-LJTI22_0 - // // .set L22_0_set_38, LBB22_38-LJTI22_0 - // // .set L22_0_set_40, LBB22_40-LJTI22_0 - // // .set L22_0_set_45, LBB22_45-LJTI22_0 - // // .set L22_0_set_47, LBB22_47-LJTI22_0 - // // .set L22_0_set_50, LBB22_50-LJTI22_0 - //0x00005008 LJTI22_0 - 0x7a, 0xfb, 0xff, 0xff, //0x00005008 .long L22_0_set_34 - 0xa2, 0xfb, 0xff, 0xff, //0x0000500c .long L22_0_set_38 - 0xcd, 0xfb, 0xff, 0xff, //0x00005010 .long L22_0_set_40 - 0x27, 0xfc, 0xff, 0xff, //0x00005014 .long L22_0_set_45 - 0x3d, 0xfc, 0xff, 0xff, //0x00005018 .long L22_0_set_47 - 0xc9, 0xfc, 0xff, 0xff, //0x0000501c .long L22_0_set_50 - // // .set L22_1_set_87, LBB22_87-LJTI22_1 - // // .set L22_1_set_90, LBB22_90-LJTI22_1 - // // .set L22_1_set_42, LBB22_42-LJTI22_1 - // // .set L22_1_set_61, LBB22_61-LJTI22_1 - // // .set L22_1_set_52, LBB22_52-LJTI22_1 - // // .set L22_1_set_64, LBB22_64-LJTI22_1 - // // .set L22_1_set_66, LBB22_66-LJTI22_1 - // // .set L22_1_set_70, LBB22_70-LJTI22_1 - // // .set L22_1_set_76, LBB22_76-LJTI22_1 - // // .set L22_1_set_83, LBB22_83-LJTI22_1 - //0x00005020 LJTI22_1 - 0x92, 0xfe, 0xff, 0xff, //0x00005020 .long L22_1_set_87 - 0xcf, 0xff, 0xff, 0xff, //0x00005024 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x00005028 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x0000502c .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x00005030 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x00005034 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x00005038 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x0000503c .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x00005040 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x00005044 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x00005048 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x0000504c .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x00005050 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x00005054 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x00005058 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x0000505c .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x00005060 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x00005064 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x00005068 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x0000506c .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x00005070 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x00005074 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x00005078 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x0000507c .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x00005080 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x00005084 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x00005088 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x0000508c .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x00005090 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x00005094 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x00005098 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x0000509c .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x000050a0 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x000050a4 .long L22_1_set_90 - 0xc6, 0xfb, 0xff, 0xff, //0x000050a8 .long L22_1_set_42 - 0xcf, 0xff, 0xff, 0xff, //0x000050ac .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x000050b0 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x000050b4 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x000050b8 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x000050bc .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x000050c0 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x000050c4 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x000050c8 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x000050cc .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x000050d0 .long L22_1_set_90 - 0x69, 0xfd, 0xff, 0xff, //0x000050d4 .long L22_1_set_61 - 0xcf, 0xff, 0xff, 0xff, //0x000050d8 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x000050dc .long L22_1_set_90 - 0x51, 0xfc, 0xff, 0xff, //0x000050e0 .long L22_1_set_52 - 0x51, 0xfc, 0xff, 0xff, //0x000050e4 .long L22_1_set_52 - 0x51, 0xfc, 0xff, 0xff, //0x000050e8 .long L22_1_set_52 - 0x51, 0xfc, 0xff, 0xff, //0x000050ec .long L22_1_set_52 - 0x51, 0xfc, 0xff, 0xff, //0x000050f0 .long L22_1_set_52 - 0x51, 0xfc, 0xff, 0xff, //0x000050f4 .long L22_1_set_52 - 0x51, 0xfc, 0xff, 0xff, //0x000050f8 .long L22_1_set_52 - 0x51, 0xfc, 0xff, 0xff, //0x000050fc .long L22_1_set_52 - 0x51, 0xfc, 0xff, 0xff, //0x00005100 .long L22_1_set_52 - 0x51, 0xfc, 0xff, 0xff, //0x00005104 .long L22_1_set_52 - 0xcf, 0xff, 0xff, 0xff, //0x00005108 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x0000510c .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x00005110 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x00005114 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x00005118 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x0000511c .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x00005120 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x00005124 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x00005128 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x0000512c .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x00005130 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x00005134 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x00005138 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x0000513c .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x00005140 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x00005144 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x00005148 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x0000514c .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x00005150 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x00005154 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x00005158 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x0000515c .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x00005160 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x00005164 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x00005168 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x0000516c .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x00005170 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x00005174 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x00005178 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x0000517c .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x00005180 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x00005184 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x00005188 .long L22_1_set_90 - 0xa9, 0xfd, 0xff, 0xff, //0x0000518c .long L22_1_set_64 - 0xcf, 0xff, 0xff, 0xff, //0x00005190 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x00005194 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x00005198 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x0000519c .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x000051a0 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x000051a4 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x000051a8 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x000051ac .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x000051b0 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x000051b4 .long L22_1_set_90 - 0xcd, 0xfd, 0xff, 0xff, //0x000051b8 .long L22_1_set_66 - 0xcf, 0xff, 0xff, 0xff, //0x000051bc .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x000051c0 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x000051c4 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x000051c8 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x000051cc .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x000051d0 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x000051d4 .long L22_1_set_90 - 0x08, 0xfe, 0xff, 0xff, //0x000051d8 .long L22_1_set_70 - 0xcf, 0xff, 0xff, 0xff, //0x000051dc .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x000051e0 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x000051e4 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x000051e8 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x000051ec .long L22_1_set_90 - 0x36, 0xfe, 0xff, 0xff, //0x000051f0 .long L22_1_set_76 - 0xcf, 0xff, 0xff, 0xff, //0x000051f4 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x000051f8 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x000051fc .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x00005200 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x00005204 .long L22_1_set_90 - 0xcf, 0xff, 0xff, 0xff, //0x00005208 .long L22_1_set_90 - 0x64, 0xfe, 0xff, 0xff, //0x0000520c .long L22_1_set_83 - //0x00005210 .p2align 4, 0x00 - //0x00005210 LCPI23_0 - 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005210 .quad 1 - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005218 .quad 6 - //0x00005220 .p2align 4, 0x90 - //0x00005220 _skip_object - 0x55, //0x00005220 pushq %rbp - 0x48, 0x89, 0xe5, //0x00005221 movq %rsp, %rbp - 0x48, 0x89, 0xd0, //0x00005224 movq %rdx, %rax - 0x48, 0x89, 0xf2, //0x00005227 movq %rsi, %rdx - 0x48, 0x89, 0xfe, //0x0000522a movq %rdi, %rsi - 0x0f, 0x28, 0x05, 0xdc, 0xff, 0xff, 0xff, //0x0000522d movaps $-36(%rip), %xmm0 /* LCPI23_0+0(%rip) */ - 0x0f, 0x11, 0x00, //0x00005234 movups %xmm0, (%rax) - 0x48, 0x89, 0xc7, //0x00005237 movq %rax, %rdi - 0x5d, //0x0000523a popq %rbp - 0xe9, 0x50, 0xf7, 0xff, 0xff, //0x0000523b jmp _fsm_exec - //0x00005240 .p2align 4, 0x90 - //0x00005240 _skip_string - 0x55, //0x00005240 pushq %rbp - 0x48, 0x89, 0xe5, //0x00005241 movq %rsp, %rbp - 0x41, 0x57, //0x00005244 pushq %r15 - 0x41, 0x56, //0x00005246 pushq %r14 - 0x41, 0x54, //0x00005248 pushq %r12 - 0x53, //0x0000524a pushq %rbx - 0x48, 0x83, 0xec, 0x10, //0x0000524b subq $16, %rsp - 0x48, 0x89, 0xd1, //0x0000524f movq %rdx, %rcx - 0x49, 0x89, 0xf6, //0x00005252 movq %rsi, %r14 - 0x49, 0x89, 0xff, //0x00005255 movq %rdi, %r15 - 0x48, 0xc7, 0x45, 0xd8, 0xff, 0xff, 0xff, 0xff, //0x00005258 movq $-1, $-40(%rbp) - 0x48, 0x8b, 0x1e, //0x00005260 movq (%rsi), %rbx - 0x4c, 0x8d, 0x65, 0xd8, //0x00005263 leaq $-40(%rbp), %r12 - 0x48, 0x89, 0xde, //0x00005267 movq %rbx, %rsi - 0x4c, 0x89, 0xe2, //0x0000526a movq %r12, %rdx - 0xe8, 0x3e, 0xe8, 0xff, 0xff, //0x0000526d callq _advance_string - 0x48, 0x85, 0xc0, //0x00005272 testq %rax, %rax - 0x0f, 0x88, 0x0f, 0x00, 0x00, 0x00, //0x00005275 js LBB24_1 - 0x48, 0x83, 0xc3, 0xff, //0x0000527b addq $-1, %rbx - 0x48, 0x89, 0xc1, //0x0000527f movq %rax, %rcx - 0x48, 0x89, 0xd8, //0x00005282 movq %rbx, %rax - 0xe9, 0x10, 0x00, 0x00, 0x00, //0x00005285 jmp LBB24_3 - //0x0000528a LBB24_1 - 0x49, 0x83, 0xc7, 0x08, //0x0000528a addq $8, %r15 - 0x48, 0x83, 0xf8, 0xff, //0x0000528e cmpq $-1, %rax - 0x4d, 0x0f, 0x44, 0xe7, //0x00005292 cmoveq %r15, %r12 - 0x49, 0x8b, 0x0c, 0x24, //0x00005296 movq (%r12), %rcx - //0x0000529a LBB24_3 - 0x49, 0x89, 0x0e, //0x0000529a movq %rcx, (%r14) - 0x48, 0x83, 0xc4, 0x10, //0x0000529d addq $16, %rsp - 0x5b, //0x000052a1 popq %rbx - 0x41, 0x5c, //0x000052a2 popq %r12 - 0x41, 0x5e, //0x000052a4 popq %r14 - 0x41, 0x5f, //0x000052a6 popq %r15 - 0x5d, //0x000052a8 popq %rbp - 0xc3, //0x000052a9 retq - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000052aa .p2align 4, 0x90 - //0x000052b0 _skip_negative - 0x55, //0x000052b0 pushq %rbp - 0x48, 0x89, 0xe5, //0x000052b1 movq %rsp, %rbp - 0x41, 0x56, //0x000052b4 pushq %r14 - 0x53, //0x000052b6 pushq %rbx - 0x49, 0x89, 0xf6, //0x000052b7 movq %rsi, %r14 - 0x48, 0x8b, 0x1e, //0x000052ba movq (%rsi), %rbx - 0x48, 0x8b, 0x07, //0x000052bd movq (%rdi), %rax - 0x48, 0x01, 0xd8, //0x000052c0 addq %rbx, %rax - 0x48, 0x8b, 0x77, 0x08, //0x000052c3 movq $8(%rdi), %rsi - 0x48, 0x29, 0xde, //0x000052c7 subq %rbx, %rsi - 0x48, 0x89, 0xc7, //0x000052ca movq %rax, %rdi - 0xe8, 0xae, 0x00, 0x00, 0x00, //0x000052cd callq _do_skip_number - 0x48, 0x85, 0xc0, //0x000052d2 testq %rax, %rax - 0x0f, 0x88, 0x0f, 0x00, 0x00, 0x00, //0x000052d5 js LBB25_1 - 0x48, 0x01, 0xd8, //0x000052db addq %rbx, %rax - 0x49, 0x89, 0x06, //0x000052de movq %rax, (%r14) - 0x48, 0x83, 0xc3, 0xff, //0x000052e1 addq $-1, %rbx - 0xe9, 0x10, 0x00, 0x00, 0x00, //0x000052e5 jmp LBB25_3 - //0x000052ea LBB25_1 - 0x48, 0xf7, 0xd0, //0x000052ea notq %rax - 0x48, 0x01, 0xc3, //0x000052ed addq %rax, %rbx - 0x49, 0x89, 0x1e, //0x000052f0 movq %rbx, (%r14) - 0x48, 0xc7, 0xc3, 0xfe, 0xff, 0xff, 0xff, //0x000052f3 movq $-2, %rbx - //0x000052fa LBB25_3 - 0x48, 0x89, 0xd8, //0x000052fa movq %rbx, %rax - 0x5b, //0x000052fd popq %rbx - 0x41, 0x5e, //0x000052fe popq %r14 - 0x5d, //0x00005300 popq %rbp - 0xc3, //0x00005301 retq - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005302 .p2align 4, 0x00 - //0x00005310 LCPI26_0 - 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, //0x00005310 QUAD $0x2f2f2f2f2f2f2f2f; QUAD $0x2f2f2f2f2f2f2f2f // .space 16, '////////////////' - //0x00005320 LCPI26_1 - 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, //0x00005320 QUAD $0x3a3a3a3a3a3a3a3a; QUAD $0x3a3a3a3a3a3a3a3a // .space 16, '::::::::::::::::' - //0x00005330 LCPI26_2 - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, //0x00005330 QUAD $0x2b2b2b2b2b2b2b2b; QUAD $0x2b2b2b2b2b2b2b2b // .space 16, '++++++++++++++++' - //0x00005340 LCPI26_3 - 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, //0x00005340 QUAD $0x2d2d2d2d2d2d2d2d; QUAD $0x2d2d2d2d2d2d2d2d // .space 16, '----------------' - //0x00005350 LCPI26_4 - 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, //0x00005350 QUAD $0xdfdfdfdfdfdfdfdf; QUAD $0xdfdfdfdfdfdfdfdf // .space 16, '\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf' - //0x00005360 LCPI26_5 - 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, //0x00005360 QUAD $0x2e2e2e2e2e2e2e2e; QUAD $0x2e2e2e2e2e2e2e2e // .space 16, '................' - //0x00005370 LCPI26_6 - 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, //0x00005370 QUAD $0x4545454545454545; QUAD $0x4545454545454545 // .space 16, 'EEEEEEEEEEEEEEEE' - //0x00005380 .p2align 4, 0x90 - //0x00005380 _do_skip_number - 0x55, //0x00005380 pushq %rbp - 0x48, 0x89, 0xe5, //0x00005381 movq %rsp, %rbp - 0x41, 0x57, //0x00005384 pushq %r15 - 0x41, 0x56, //0x00005386 pushq %r14 - 0x53, //0x00005388 pushq %rbx - 0x48, 0x85, 0xf6, //0x00005389 testq %rsi, %rsi - 0x0f, 0x84, 0x56, 0x02, 0x00, 0x00, //0x0000538c je LBB26_1 - 0x80, 0x3f, 0x30, //0x00005392 cmpb $48, (%rdi) - 0x0f, 0x85, 0x35, 0x00, 0x00, 0x00, //0x00005395 jne LBB26_6 - 0xb8, 0x01, 0x00, 0x00, 0x00, //0x0000539b movl $1, %eax - 0x48, 0x83, 0xfe, 0x01, //0x000053a0 cmpq $1, %rsi - 0x0f, 0x84, 0xd9, 0x02, 0x00, 0x00, //0x000053a4 je LBB26_55 - 0x8a, 0x4f, 0x01, //0x000053aa movb $1(%rdi), %cl - 0x80, 0xc1, 0xd2, //0x000053ad addb $-46, %cl - 0x80, 0xf9, 0x37, //0x000053b0 cmpb $55, %cl - 0x0f, 0x87, 0xca, 0x02, 0x00, 0x00, //0x000053b3 ja LBB26_55 - 0x0f, 0xb6, 0xc9, //0x000053b9 movzbl %cl, %ecx - 0x48, 0xba, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, //0x000053bc movabsq $36028797027352577, %rdx - 0x48, 0x0f, 0xa3, 0xca, //0x000053c6 btq %rcx, %rdx - 0x0f, 0x83, 0xb3, 0x02, 0x00, 0x00, //0x000053ca jae LBB26_55 - //0x000053d0 LBB26_6 - 0x48, 0x83, 0xfe, 0x10, //0x000053d0 cmpq $16, %rsi - 0x0f, 0x82, 0x12, 0x03, 0x00, 0x00, //0x000053d4 jb LBB26_7 - 0x49, 0xc7, 0xc2, 0xff, 0xff, 0xff, 0xff, //0x000053da movq $-1, %r10 - 0x31, 0xc0, //0x000053e1 xorl %eax, %eax - 0x66, 0x44, 0x0f, 0x6f, 0x05, 0x24, 0xff, 0xff, 0xff, //0x000053e3 movdqa $-220(%rip), %xmm8 /* LCPI26_0+0(%rip) */ - 0x66, 0x44, 0x0f, 0x6f, 0x15, 0x2b, 0xff, 0xff, 0xff, //0x000053ec movdqa $-213(%rip), %xmm10 /* LCPI26_1+0(%rip) */ - 0x66, 0x44, 0x0f, 0x6f, 0x0d, 0x32, 0xff, 0xff, 0xff, //0x000053f5 movdqa $-206(%rip), %xmm9 /* LCPI26_2+0(%rip) */ - 0x66, 0x0f, 0x6f, 0x1d, 0x3a, 0xff, 0xff, 0xff, //0x000053fe movdqa $-198(%rip), %xmm3 /* LCPI26_3+0(%rip) */ - 0x66, 0x0f, 0x6f, 0x25, 0x42, 0xff, 0xff, 0xff, //0x00005406 movdqa $-190(%rip), %xmm4 /* LCPI26_4+0(%rip) */ - 0x66, 0x0f, 0x6f, 0x2d, 0x4a, 0xff, 0xff, 0xff, //0x0000540e movdqa $-182(%rip), %xmm5 /* LCPI26_5+0(%rip) */ - 0x66, 0x0f, 0x6f, 0x35, 0x52, 0xff, 0xff, 0xff, //0x00005416 movdqa $-174(%rip), %xmm6 /* LCPI26_6+0(%rip) */ - 0x49, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x0000541e movq $-1, %r9 - 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00005425 movq $-1, %r8 - 0x49, 0x89, 0xf7, //0x0000542c movq %rsi, %r15 - 0x90, //0x0000542f .p2align 4, 0x90 - //0x00005430 LBB26_9 - 0xf3, 0x0f, 0x6f, 0x3c, 0x07, //0x00005430 movdqu (%rdi,%rax), %xmm7 - 0x66, 0x0f, 0x6f, 0xc7, //0x00005435 movdqa %xmm7, %xmm0 - 0x66, 0x41, 0x0f, 0x64, 0xc0, //0x00005439 pcmpgtb %xmm8, %xmm0 - 0x66, 0x41, 0x0f, 0x6f, 0xca, //0x0000543e movdqa %xmm10, %xmm1 - 0x66, 0x0f, 0x64, 0xcf, //0x00005443 pcmpgtb %xmm7, %xmm1 - 0x66, 0x0f, 0xdb, 0xc8, //0x00005447 pand %xmm0, %xmm1 - 0x66, 0x0f, 0x6f, 0xc7, //0x0000544b movdqa %xmm7, %xmm0 - 0x66, 0x41, 0x0f, 0x74, 0xc1, //0x0000544f pcmpeqb %xmm9, %xmm0 - 0x66, 0x0f, 0x6f, 0xd7, //0x00005454 movdqa %xmm7, %xmm2 - 0x66, 0x0f, 0x74, 0xd3, //0x00005458 pcmpeqb %xmm3, %xmm2 - 0x66, 0x0f, 0xeb, 0xd0, //0x0000545c por %xmm0, %xmm2 - 0x66, 0x0f, 0x6f, 0xc7, //0x00005460 movdqa %xmm7, %xmm0 - 0x66, 0x0f, 0xdb, 0xc4, //0x00005464 pand %xmm4, %xmm0 - 0x66, 0x0f, 0x74, 0xc6, //0x00005468 pcmpeqb %xmm6, %xmm0 - 0x66, 0x0f, 0x74, 0xfd, //0x0000546c pcmpeqb %xmm5, %xmm7 - 0x66, 0x44, 0x0f, 0xd7, 0xf0, //0x00005470 pmovmskb %xmm0, %r14d - 0x66, 0x0f, 0xeb, 0xc7, //0x00005475 por %xmm7, %xmm0 - 0x66, 0x0f, 0xeb, 0xca, //0x00005479 por %xmm2, %xmm1 - 0x66, 0x0f, 0xeb, 0xc8, //0x0000547d por %xmm0, %xmm1 - 0x66, 0x0f, 0xd7, 0xdf, //0x00005481 pmovmskb %xmm7, %ebx - 0x66, 0x44, 0x0f, 0xd7, 0xda, //0x00005485 pmovmskb %xmm2, %r11d - 0x66, 0x0f, 0xd7, 0xc9, //0x0000548a pmovmskb %xmm1, %ecx - 0xf7, 0xd1, //0x0000548e notl %ecx - 0x0f, 0xbc, 0xc9, //0x00005490 bsfl %ecx, %ecx - 0x83, 0xf9, 0x10, //0x00005493 cmpl $16, %ecx - 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x00005496 je LBB26_11 - 0xba, 0xff, 0xff, 0xff, 0xff, //0x0000549c movl $-1, %edx - 0xd3, 0xe2, //0x000054a1 shll %cl, %edx - 0xf7, 0xd2, //0x000054a3 notl %edx - 0x21, 0xd3, //0x000054a5 andl %edx, %ebx - 0x41, 0x21, 0xd6, //0x000054a7 andl %edx, %r14d - 0x44, 0x21, 0xda, //0x000054aa andl %r11d, %edx - 0x41, 0x89, 0xd3, //0x000054ad movl %edx, %r11d - //0x000054b0 LBB26_11 - 0x8d, 0x53, 0xff, //0x000054b0 leal $-1(%rbx), %edx - 0x21, 0xda, //0x000054b3 andl %ebx, %edx - 0x0f, 0x85, 0x0e, 0x02, 0x00, 0x00, //0x000054b5 jne LBB26_12 - 0x41, 0x8d, 0x56, 0xff, //0x000054bb leal $-1(%r14), %edx - 0x44, 0x21, 0xf2, //0x000054bf andl %r14d, %edx - 0x0f, 0x85, 0x01, 0x02, 0x00, 0x00, //0x000054c2 jne LBB26_12 - 0x41, 0x8d, 0x53, 0xff, //0x000054c8 leal $-1(%r11), %edx - 0x44, 0x21, 0xda, //0x000054cc andl %r11d, %edx - 0x0f, 0x85, 0xf4, 0x01, 0x00, 0x00, //0x000054cf jne LBB26_12 - 0x85, 0xdb, //0x000054d5 testl %ebx, %ebx - 0x0f, 0x84, 0x13, 0x00, 0x00, 0x00, //0x000054d7 je LBB26_19 - 0x0f, 0xbc, 0xdb, //0x000054dd bsfl %ebx, %ebx - 0x49, 0x83, 0xf8, 0xff, //0x000054e0 cmpq $-1, %r8 - 0x0f, 0x85, 0xf5, 0x01, 0x00, 0x00, //0x000054e4 jne LBB26_56 - 0x48, 0x01, 0xc3, //0x000054ea addq %rax, %rbx - 0x49, 0x89, 0xd8, //0x000054ed movq %rbx, %r8 - //0x000054f0 LBB26_19 - 0x45, 0x85, 0xf6, //0x000054f0 testl %r14d, %r14d - 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x000054f3 je LBB26_22 - 0x41, 0x0f, 0xbc, 0xde, //0x000054f9 bsfl %r14d, %ebx - 0x49, 0x83, 0xf9, 0xff, //0x000054fd cmpq $-1, %r9 - 0x0f, 0x85, 0xd8, 0x01, 0x00, 0x00, //0x00005501 jne LBB26_56 - 0x48, 0x01, 0xc3, //0x00005507 addq %rax, %rbx - 0x49, 0x89, 0xd9, //0x0000550a movq %rbx, %r9 - //0x0000550d LBB26_22 - 0x45, 0x85, 0xdb, //0x0000550d testl %r11d, %r11d - 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x00005510 je LBB26_25 - 0x41, 0x0f, 0xbc, 0xdb, //0x00005516 bsfl %r11d, %ebx - 0x49, 0x83, 0xfa, 0xff, //0x0000551a cmpq $-1, %r10 - 0x0f, 0x85, 0xbb, 0x01, 0x00, 0x00, //0x0000551e jne LBB26_56 - 0x48, 0x01, 0xc3, //0x00005524 addq %rax, %rbx - 0x49, 0x89, 0xda, //0x00005527 movq %rbx, %r10 - //0x0000552a LBB26_25 - 0x83, 0xf9, 0x10, //0x0000552a cmpl $16, %ecx - 0x0f, 0x85, 0xc1, 0x00, 0x00, 0x00, //0x0000552d jne LBB26_57 - 0x49, 0x83, 0xc7, 0xf0, //0x00005533 addq $-16, %r15 - 0x48, 0x83, 0xc0, 0x10, //0x00005537 addq $16, %rax - 0x49, 0x83, 0xff, 0x0f, //0x0000553b cmpq $15, %r15 - 0x0f, 0x87, 0xeb, 0xfe, 0xff, 0xff, //0x0000553f ja LBB26_9 - 0x48, 0x8d, 0x0c, 0x07, //0x00005545 leaq (%rdi,%rax), %rcx - 0x49, 0x89, 0xcb, //0x00005549 movq %rcx, %r11 - 0x48, 0x39, 0xc6, //0x0000554c cmpq %rax, %rsi - 0x0f, 0x84, 0xa8, 0x00, 0x00, 0x00, //0x0000554f je LBB26_41 - //0x00005555 LBB26_28 - 0x4e, 0x8d, 0x1c, 0x39, //0x00005555 leaq (%rcx,%r15), %r11 - 0x48, 0x89, 0xce, //0x00005559 movq %rcx, %rsi - 0x48, 0x29, 0xfe, //0x0000555c subq %rdi, %rsi - 0x31, 0xc0, //0x0000555f xorl %eax, %eax - 0x4c, 0x8d, 0x35, 0xa4, 0x01, 0x00, 0x00, //0x00005561 leaq $420(%rip), %r14 /* LJTI26_0+0(%rip) */ - 0xe9, 0x30, 0x00, 0x00, 0x00, //0x00005568 jmp LBB26_29 - //0x0000556d LBB26_31 - 0x83, 0xfb, 0x65, //0x0000556d cmpl $101, %ebx - 0x0f, 0x85, 0x9c, 0x00, 0x00, 0x00, //0x00005570 jne LBB26_40 - //0x00005576 LBB26_32 - 0x49, 0x83, 0xf9, 0xff, //0x00005576 cmpq $-1, %r9 - 0x0f, 0x85, 0x51, 0x01, 0x00, 0x00, //0x0000557a jne LBB26_58 - 0x4c, 0x8d, 0x0c, 0x06, //0x00005580 leaq (%rsi,%rax), %r9 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00005584 .p2align 4, 0x90 - //0x00005590 LBB26_39 - 0x48, 0x83, 0xc0, 0x01, //0x00005590 addq $1, %rax - 0x49, 0x39, 0xc7, //0x00005594 cmpq %rax, %r15 - 0x0f, 0x84, 0x60, 0x00, 0x00, 0x00, //0x00005597 je LBB26_41 - //0x0000559d LBB26_29 - 0x0f, 0xbe, 0x1c, 0x01, //0x0000559d movsbl (%rcx,%rax), %ebx - 0x8d, 0x53, 0xd0, //0x000055a1 leal $-48(%rbx), %edx - 0x83, 0xfa, 0x0a, //0x000055a4 cmpl $10, %edx - 0x0f, 0x82, 0xe3, 0xff, 0xff, 0xff, //0x000055a7 jb LBB26_39 - 0x8d, 0x53, 0xd5, //0x000055ad leal $-43(%rbx), %edx - 0x83, 0xfa, 0x1a, //0x000055b0 cmpl $26, %edx - 0x0f, 0x87, 0xb4, 0xff, 0xff, 0xff, //0x000055b3 ja LBB26_31 - 0x49, 0x63, 0x14, 0x96, //0x000055b9 movslq (%r14,%rdx,4), %rdx - 0x4c, 0x01, 0xf2, //0x000055bd addq %r14, %rdx - 0xff, 0xe2, //0x000055c0 jmpq *%rdx - //0x000055c2 LBB26_37 - 0x49, 0x83, 0xfa, 0xff, //0x000055c2 cmpq $-1, %r10 - 0x0f, 0x85, 0x05, 0x01, 0x00, 0x00, //0x000055c6 jne LBB26_58 - 0x4c, 0x8d, 0x14, 0x06, //0x000055cc leaq (%rsi,%rax), %r10 - 0xe9, 0xbb, 0xff, 0xff, 0xff, //0x000055d0 jmp LBB26_39 - //0x000055d5 LBB26_35 - 0x49, 0x83, 0xf8, 0xff, //0x000055d5 cmpq $-1, %r8 - 0x0f, 0x85, 0xf2, 0x00, 0x00, 0x00, //0x000055d9 jne LBB26_58 - 0x4c, 0x8d, 0x04, 0x06, //0x000055df leaq (%rsi,%rax), %r8 - 0xe9, 0xa8, 0xff, 0xff, 0xff, //0x000055e3 jmp LBB26_39 - //0x000055e8 LBB26_1 - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000055e8 movq $-1, %rax - 0xe9, 0x8f, 0x00, 0x00, 0x00, //0x000055ef jmp LBB26_55 - //0x000055f4 LBB26_57 - 0x41, 0x89, 0xcb, //0x000055f4 movl %ecx, %r11d - 0x49, 0x01, 0xfb, //0x000055f7 addq %rdi, %r11 - 0x49, 0x01, 0xc3, //0x000055fa addq %rax, %r11 - //0x000055fd LBB26_41 - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000055fd movq $-1, %rax - 0x4d, 0x85, 0xc0, //0x00005604 testq %r8, %r8 - 0x0f, 0x85, 0x1b, 0x00, 0x00, 0x00, //0x00005607 jne LBB26_42 - 0xe9, 0x71, 0x00, 0x00, 0x00, //0x0000560d jmp LBB26_55 - //0x00005612 LBB26_40 - 0x48, 0x01, 0xc1, //0x00005612 addq %rax, %rcx - 0x49, 0x89, 0xcb, //0x00005615 movq %rcx, %r11 - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00005618 movq $-1, %rax - 0x4d, 0x85, 0xc0, //0x0000561f testq %r8, %r8 - 0x0f, 0x84, 0x5b, 0x00, 0x00, 0x00, //0x00005622 je LBB26_55 - //0x00005628 LBB26_42 - 0x4d, 0x85, 0xd2, //0x00005628 testq %r10, %r10 - 0x0f, 0x84, 0x52, 0x00, 0x00, 0x00, //0x0000562b je LBB26_55 - 0x4d, 0x85, 0xc9, //0x00005631 testq %r9, %r9 - 0x0f, 0x84, 0x49, 0x00, 0x00, 0x00, //0x00005634 je LBB26_55 - 0x49, 0x29, 0xfb, //0x0000563a subq %rdi, %r11 - 0x49, 0x8d, 0x43, 0xff, //0x0000563d leaq $-1(%r11), %rax - 0x49, 0x39, 0xc0, //0x00005641 cmpq %rax, %r8 - 0x0f, 0x84, 0x33, 0x00, 0x00, 0x00, //0x00005644 je LBB26_47 - 0x49, 0x39, 0xc2, //0x0000564a cmpq %rax, %r10 - 0x0f, 0x84, 0x2a, 0x00, 0x00, 0x00, //0x0000564d je LBB26_47 - 0x49, 0x39, 0xc1, //0x00005653 cmpq %rax, %r9 - 0x0f, 0x84, 0x21, 0x00, 0x00, 0x00, //0x00005656 je LBB26_47 - 0x4d, 0x85, 0xd2, //0x0000565c testq %r10, %r10 - 0x0f, 0x8e, 0x25, 0x00, 0x00, 0x00, //0x0000565f jle LBB26_51 - 0x49, 0x8d, 0x42, 0xff, //0x00005665 leaq $-1(%r10), %rax - 0x49, 0x39, 0xc1, //0x00005669 cmpq %rax, %r9 - 0x0f, 0x84, 0x18, 0x00, 0x00, 0x00, //0x0000566c je LBB26_51 - 0x49, 0xf7, 0xd2, //0x00005672 notq %r10 - 0x4c, 0x89, 0xd0, //0x00005675 movq %r10, %rax - 0xe9, 0x06, 0x00, 0x00, 0x00, //0x00005678 jmp LBB26_55 - //0x0000567d LBB26_47 - 0x49, 0xf7, 0xdb, //0x0000567d negq %r11 - 0x4c, 0x89, 0xd8, //0x00005680 movq %r11, %rax - //0x00005683 LBB26_55 - 0x5b, //0x00005683 popq %rbx - 0x41, 0x5e, //0x00005684 popq %r14 - 0x41, 0x5f, //0x00005686 popq %r15 - 0x5d, //0x00005688 popq %rbp - 0xc3, //0x00005689 retq - //0x0000568a LBB26_51 - 0x4c, 0x89, 0xc0, //0x0000568a movq %r8, %rax - 0x4c, 0x09, 0xc8, //0x0000568d orq %r9, %rax - 0x0f, 0x99, 0xc0, //0x00005690 setns %al - 0x0f, 0x88, 0x14, 0x00, 0x00, 0x00, //0x00005693 js LBB26_54 - 0x4d, 0x39, 0xc8, //0x00005699 cmpq %r9, %r8 - 0x0f, 0x8c, 0x0b, 0x00, 0x00, 0x00, //0x0000569c jl LBB26_54 - 0x49, 0xf7, 0xd0, //0x000056a2 notq %r8 - 0x4c, 0x89, 0xc0, //0x000056a5 movq %r8, %rax - 0xe9, 0xd6, 0xff, 0xff, 0xff, //0x000056a8 jmp LBB26_55 - //0x000056ad LBB26_54 - 0x49, 0x8d, 0x49, 0xff, //0x000056ad leaq $-1(%r9), %rcx - 0x49, 0x39, 0xc8, //0x000056b1 cmpq %rcx, %r8 - 0x49, 0xf7, 0xd1, //0x000056b4 notq %r9 - 0x4d, 0x0f, 0x45, 0xcb, //0x000056b7 cmovneq %r11, %r9 - 0x84, 0xc0, //0x000056bb testb %al, %al - 0x4d, 0x0f, 0x44, 0xcb, //0x000056bd cmoveq %r11, %r9 - 0x4c, 0x89, 0xc8, //0x000056c1 movq %r9, %rax - 0xe9, 0xba, 0xff, 0xff, 0xff, //0x000056c4 jmp LBB26_55 - //0x000056c9 LBB26_12 - 0x0f, 0xbc, 0xca, //0x000056c9 bsfl %edx, %ecx - 0xe9, 0x10, 0x00, 0x00, 0x00, //0x000056cc jmp LBB26_13 - //0x000056d1 LBB26_58 - 0x48, 0x29, 0xcf, //0x000056d1 subq %rcx, %rdi - 0x48, 0xf7, 0xd0, //0x000056d4 notq %rax - 0x48, 0x01, 0xf8, //0x000056d7 addq %rdi, %rax - 0xe9, 0xa4, 0xff, 0xff, 0xff, //0x000056da jmp LBB26_55 - //0x000056df LBB26_56 - 0x89, 0xd9, //0x000056df movl %ebx, %ecx - //0x000056e1 LBB26_13 - 0x48, 0xf7, 0xd0, //0x000056e1 notq %rax - 0x48, 0x29, 0xc8, //0x000056e4 subq %rcx, %rax - 0xe9, 0x97, 0xff, 0xff, 0xff, //0x000056e7 jmp LBB26_55 - //0x000056ec LBB26_7 - 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000056ec movq $-1, %r8 - 0x48, 0x89, 0xf9, //0x000056f3 movq %rdi, %rcx - 0x49, 0x89, 0xf7, //0x000056f6 movq %rsi, %r15 - 0x49, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x000056f9 movq $-1, %r9 - 0x49, 0xc7, 0xc2, 0xff, 0xff, 0xff, 0xff, //0x00005700 movq $-1, %r10 - 0xe9, 0x49, 0xfe, 0xff, 0xff, //0x00005707 jmp LBB26_28 - //0x0000570c .p2align 2, 0x90 - // // .set L26_0_set_37, LBB26_37-LJTI26_0 - // // .set L26_0_set_40, LBB26_40-LJTI26_0 - // // .set L26_0_set_35, LBB26_35-LJTI26_0 - // // .set L26_0_set_32, LBB26_32-LJTI26_0 - //0x0000570c LJTI26_0 - 0xb6, 0xfe, 0xff, 0xff, //0x0000570c .long L26_0_set_37 - 0x06, 0xff, 0xff, 0xff, //0x00005710 .long L26_0_set_40 - 0xb6, 0xfe, 0xff, 0xff, //0x00005714 .long L26_0_set_37 - 0xc9, 0xfe, 0xff, 0xff, //0x00005718 .long L26_0_set_35 - 0x06, 0xff, 0xff, 0xff, //0x0000571c .long L26_0_set_40 - 0x06, 0xff, 0xff, 0xff, //0x00005720 .long L26_0_set_40 - 0x06, 0xff, 0xff, 0xff, //0x00005724 .long L26_0_set_40 - 0x06, 0xff, 0xff, 0xff, //0x00005728 .long L26_0_set_40 - 0x06, 0xff, 0xff, 0xff, //0x0000572c .long L26_0_set_40 - 0x06, 0xff, 0xff, 0xff, //0x00005730 .long L26_0_set_40 - 0x06, 0xff, 0xff, 0xff, //0x00005734 .long L26_0_set_40 - 0x06, 0xff, 0xff, 0xff, //0x00005738 .long L26_0_set_40 - 0x06, 0xff, 0xff, 0xff, //0x0000573c .long L26_0_set_40 - 0x06, 0xff, 0xff, 0xff, //0x00005740 .long L26_0_set_40 - 0x06, 0xff, 0xff, 0xff, //0x00005744 .long L26_0_set_40 - 0x06, 0xff, 0xff, 0xff, //0x00005748 .long L26_0_set_40 - 0x06, 0xff, 0xff, 0xff, //0x0000574c .long L26_0_set_40 - 0x06, 0xff, 0xff, 0xff, //0x00005750 .long L26_0_set_40 - 0x06, 0xff, 0xff, 0xff, //0x00005754 .long L26_0_set_40 - 0x06, 0xff, 0xff, 0xff, //0x00005758 .long L26_0_set_40 - 0x06, 0xff, 0xff, 0xff, //0x0000575c .long L26_0_set_40 - 0x06, 0xff, 0xff, 0xff, //0x00005760 .long L26_0_set_40 - 0x06, 0xff, 0xff, 0xff, //0x00005764 .long L26_0_set_40 - 0x06, 0xff, 0xff, 0xff, //0x00005768 .long L26_0_set_40 - 0x06, 0xff, 0xff, 0xff, //0x0000576c .long L26_0_set_40 - 0x06, 0xff, 0xff, 0xff, //0x00005770 .long L26_0_set_40 - 0x6a, 0xfe, 0xff, 0xff, //0x00005774 .long L26_0_set_32 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00005778 .p2align 4, 0x90 - //0x00005780 _skip_positive - 0x55, //0x00005780 pushq %rbp - 0x48, 0x89, 0xe5, //0x00005781 movq %rsp, %rbp - 0x41, 0x57, //0x00005784 pushq %r15 - 0x41, 0x56, //0x00005786 pushq %r14 - 0x53, //0x00005788 pushq %rbx - 0x50, //0x00005789 pushq %rax - 0x49, 0x89, 0xf6, //0x0000578a movq %rsi, %r14 - 0x4c, 0x8b, 0x3e, //0x0000578d movq (%rsi), %r15 - 0x49, 0x8d, 0x5f, 0xff, //0x00005790 leaq $-1(%r15), %rbx - 0x48, 0x8b, 0x07, //0x00005794 movq (%rdi), %rax - 0x48, 0x01, 0xd8, //0x00005797 addq %rbx, %rax - 0x48, 0x8b, 0x77, 0x08, //0x0000579a movq $8(%rdi), %rsi - 0x48, 0x29, 0xde, //0x0000579e subq %rbx, %rsi - 0x48, 0x89, 0xc7, //0x000057a1 movq %rax, %rdi - 0xe8, 0xd7, 0xfb, 0xff, 0xff, //0x000057a4 callq _do_skip_number - 0x48, 0x8d, 0x50, 0xff, //0x000057a9 leaq $-1(%rax), %rdx - 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x000057ad movq $-2, %rcx - 0x48, 0xc7, 0xc6, 0xfe, 0xff, 0xff, 0xff, //0x000057b4 movq $-2, %rsi - 0x48, 0x29, 0xc6, //0x000057bb subq %rax, %rsi - 0x48, 0x85, 0xc0, //0x000057be testq %rax, %rax - 0x48, 0x0f, 0x49, 0xf2, //0x000057c1 cmovnsq %rdx, %rsi - 0x48, 0x0f, 0x49, 0xcb, //0x000057c5 cmovnsq %rbx, %rcx - 0x4c, 0x01, 0xfe, //0x000057c9 addq %r15, %rsi - 0x49, 0x89, 0x36, //0x000057cc movq %rsi, (%r14) - 0x48, 0x89, 0xc8, //0x000057cf movq %rcx, %rax - 0x48, 0x83, 0xc4, 0x08, //0x000057d2 addq $8, %rsp - 0x5b, //0x000057d6 popq %rbx - 0x41, 0x5e, //0x000057d7 popq %r14 - 0x41, 0x5f, //0x000057d9 popq %r15 - 0x5d, //0x000057db popq %rbp - 0xc3, //0x000057dc retq - 0x90, 0x90, 0x90, //0x000057dd .p2align 4, 0x90 - //0x000057e0 _skip_number - 0x55, //0x000057e0 pushq %rbp - 0x48, 0x89, 0xe5, //0x000057e1 movq %rsp, %rbp - 0x41, 0x57, //0x000057e4 pushq %r15 - 0x41, 0x56, //0x000057e6 pushq %r14 - 0x41, 0x55, //0x000057e8 pushq %r13 - 0x41, 0x54, //0x000057ea pushq %r12 - 0x53, //0x000057ec pushq %rbx - 0x50, //0x000057ed pushq %rax - 0x49, 0x89, 0xf6, //0x000057ee movq %rsi, %r14 - 0x4c, 0x8b, 0x27, //0x000057f1 movq (%rdi), %r12 - 0x48, 0x8b, 0x77, 0x08, //0x000057f4 movq $8(%rdi), %rsi - 0x4d, 0x8b, 0x2e, //0x000057f8 movq (%r14), %r13 - 0x4c, 0x29, 0xee, //0x000057fb subq %r13, %rsi - 0x31, 0xc0, //0x000057fe xorl %eax, %eax - 0x43, 0x80, 0x3c, 0x2c, 0x2d, //0x00005800 cmpb $45, (%r12,%r13) - 0x4b, 0x8d, 0x1c, 0x2c, //0x00005805 leaq (%r12,%r13), %rbx - 0x0f, 0x94, 0xc0, //0x00005809 sete %al - 0x48, 0x01, 0xc3, //0x0000580c addq %rax, %rbx - 0x48, 0x29, 0xc6, //0x0000580f subq %rax, %rsi - 0x0f, 0x84, 0x42, 0x00, 0x00, 0x00, //0x00005812 je LBB28_1 - 0x8a, 0x03, //0x00005818 movb (%rbx), %al - 0x04, 0xd0, //0x0000581a addb $-48, %al - 0x49, 0xc7, 0xc7, 0xfe, 0xff, 0xff, 0xff, //0x0000581c movq $-2, %r15 - 0x3c, 0x09, //0x00005823 cmpb $9, %al - 0x0f, 0x87, 0x17, 0x00, 0x00, 0x00, //0x00005825 ja LBB28_6 - 0x48, 0x89, 0xdf, //0x0000582b movq %rbx, %rdi - 0xe8, 0x4d, 0xfb, 0xff, 0xff, //0x0000582e callq _do_skip_number - 0x48, 0x85, 0xc0, //0x00005833 testq %rax, %rax - 0x0f, 0x88, 0x2a, 0x00, 0x00, 0x00, //0x00005836 js LBB28_4 - 0x48, 0x01, 0xc3, //0x0000583c addq %rax, %rbx - 0x4d, 0x89, 0xef, //0x0000583f movq %r13, %r15 - //0x00005842 LBB28_6 - 0x4c, 0x29, 0xe3, //0x00005842 subq %r12, %rbx - 0x49, 0x89, 0x1e, //0x00005845 movq %rbx, (%r14) - 0x4c, 0x89, 0xf8, //0x00005848 movq %r15, %rax - 0x48, 0x83, 0xc4, 0x08, //0x0000584b addq $8, %rsp - 0x5b, //0x0000584f popq %rbx - 0x41, 0x5c, //0x00005850 popq %r12 - 0x41, 0x5d, //0x00005852 popq %r13 - 0x41, 0x5e, //0x00005854 popq %r14 - 0x41, 0x5f, //0x00005856 popq %r15 - 0x5d, //0x00005858 popq %rbp - 0xc3, //0x00005859 retq - //0x0000585a LBB28_1 - 0x49, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, //0x0000585a movq $-1, %r15 - 0xe9, 0xdc, 0xff, 0xff, 0xff, //0x00005861 jmp LBB28_6 - //0x00005866 LBB28_4 - 0x48, 0xf7, 0xd0, //0x00005866 notq %rax - 0x48, 0x01, 0xc3, //0x00005869 addq %rax, %rbx - 0xe9, 0xd1, 0xff, 0xff, 0xff, //0x0000586c jmp LBB28_6 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005871 .p2align 4, 0x00 - //0x00005880 LCPI29_0 - 0x01, 0x00, 0x00, 0x00, //0x00005880 .long 1 - 0x00, 0x00, 0x00, 0x00, //0x00005884 .long 0 - 0x00, 0x00, 0x00, 0x00, //0x00005888 .long 0 - 0x00, 0x00, 0x00, 0x00, //0x0000588c .long 0 - //0x00005890 .p2align 4, 0x90 - //0x00005890 _skip_one - 0x55, //0x00005890 pushq %rbp - 0x48, 0x89, 0xe5, //0x00005891 movq %rsp, %rbp - 0x48, 0x89, 0xd0, //0x00005894 movq %rdx, %rax - 0x48, 0x89, 0xf2, //0x00005897 movq %rsi, %rdx - 0x48, 0x89, 0xfe, //0x0000589a movq %rdi, %rsi - 0x0f, 0x28, 0x05, 0xdc, 0xff, 0xff, 0xff, //0x0000589d movaps $-36(%rip), %xmm0 /* LCPI29_0+0(%rip) */ - 0x0f, 0x11, 0x00, //0x000058a4 movups %xmm0, (%rax) - 0x48, 0x89, 0xc7, //0x000058a7 movq %rax, %rdi - 0x5d, //0x000058aa popq %rbp - 0xe9, 0xe0, 0xf0, 0xff, 0xff, //0x000058ab jmp _fsm_exec - //0x000058b0 .p2align 4, 0x00 - //0x000058b0 LCPI30_0 - 0x01, 0x00, 0x00, 0x00, //0x000058b0 .long 1 - 0x00, 0x00, 0x00, 0x00, //0x000058b4 .long 0 - 0x00, 0x00, 0x00, 0x00, //0x000058b8 .long 0 - 0x00, 0x00, 0x00, 0x00, //0x000058bc .long 0 - //0x000058c0 .p2align 4, 0x90 - //0x000058c0 _validate_one - 0x55, //0x000058c0 pushq %rbp - 0x48, 0x89, 0xe5, //0x000058c1 movq %rsp, %rbp - 0x48, 0x89, 0xd0, //0x000058c4 movq %rdx, %rax - 0x48, 0x89, 0xf2, //0x000058c7 movq %rsi, %rdx - 0x48, 0x89, 0xfe, //0x000058ca movq %rdi, %rsi - 0x0f, 0x28, 0x05, 0xdc, 0xff, 0xff, 0xff, //0x000058cd movaps $-36(%rip), %xmm0 /* LCPI30_0+0(%rip) */ - 0x0f, 0x11, 0x00, //0x000058d4 movups %xmm0, (%rax) - 0xb9, 0x20, 0x00, 0x00, 0x00, //0x000058d7 movl $32, %ecx - 0x48, 0x89, 0xc7, //0x000058dc movq %rax, %rdi - 0x5d, //0x000058df popq %rbp - 0xe9, 0xab, 0xf0, 0xff, 0xff, //0x000058e0 jmp _fsm_exec - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000058e5 .p2align 4, 0x00 - //0x000058f0 LCPI31_0 - 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, //0x000058f0 QUAD $0x2c2c2c2c2c2c2c2c; QUAD $0x2c2c2c2c2c2c2c2c // .space 16, ',,,,,,,,,,,,,,,,' - //0x00005900 LCPI31_1 - 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, //0x00005900 QUAD $0xdfdfdfdfdfdfdfdf; QUAD $0xdfdfdfdfdfdfdfdf // .space 16, '\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf' - //0x00005910 LCPI31_2 - 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, //0x00005910 QUAD $0x5d5d5d5d5d5d5d5d; QUAD $0x5d5d5d5d5d5d5d5d // .space 16, ']]]]]]]]]]]]]]]]' - //0x00005920 LCPI31_3 - 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, //0x00005920 QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' - //0x00005930 LCPI31_4 - 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x00005930 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' - //0x00005940 LCPI31_5 - 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, //0x00005940 QUAD $0x7b7b7b7b7b7b7b7b; QUAD $0x7b7b7b7b7b7b7b7b // .space 16, '{{{{{{{{{{{{{{{{' - //0x00005950 LCPI31_6 - 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, //0x00005950 QUAD $0x7d7d7d7d7d7d7d7d; QUAD $0x7d7d7d7d7d7d7d7d // .space 16, '}}}}}}}}}}}}}}}}' - //0x00005960 LCPI31_7 - 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, //0x00005960 QUAD $0x5b5b5b5b5b5b5b5b; QUAD $0x5b5b5b5b5b5b5b5b // .space 16, '[[[[[[[[[[[[[[[[' - //0x00005970 .p2align 4, 0x90 - //0x00005970 _skip_one_fast - 0x55, //0x00005970 pushq %rbp - 0x48, 0x89, 0xe5, //0x00005971 movq %rsp, %rbp - 0x41, 0x57, //0x00005974 pushq %r15 - 0x41, 0x56, //0x00005976 pushq %r14 - 0x41, 0x55, //0x00005978 pushq %r13 - 0x41, 0x54, //0x0000597a pushq %r12 - 0x53, //0x0000597c pushq %rbx - 0x48, 0x83, 0xec, 0x58, //0x0000597d subq $88, %rsp - 0x4c, 0x8b, 0x0f, //0x00005981 movq (%rdi), %r9 - 0x48, 0x8b, 0x57, 0x08, //0x00005984 movq $8(%rdi), %rdx - 0x48, 0x8b, 0x0e, //0x00005988 movq (%rsi), %rcx - 0x48, 0x39, 0xd1, //0x0000598b cmpq %rdx, %rcx - 0x0f, 0x83, 0x26, 0x00, 0x00, 0x00, //0x0000598e jae LBB31_5 - 0x41, 0x8a, 0x04, 0x09, //0x00005994 movb (%r9,%rcx), %al - 0x3c, 0x0d, //0x00005998 cmpb $13, %al - 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x0000599a je LBB31_5 - 0x3c, 0x20, //0x000059a0 cmpb $32, %al - 0x0f, 0x84, 0x12, 0x00, 0x00, 0x00, //0x000059a2 je LBB31_5 - 0x04, 0xf7, //0x000059a8 addb $-9, %al - 0x3c, 0x01, //0x000059aa cmpb $1, %al - 0x0f, 0x86, 0x08, 0x00, 0x00, 0x00, //0x000059ac jbe LBB31_5 - 0x49, 0x89, 0xcc, //0x000059b2 movq %rcx, %r12 - 0xe9, 0xfe, 0x00, 0x00, 0x00, //0x000059b5 jmp LBB31_27 - //0x000059ba LBB31_5 - 0x4c, 0x8d, 0x61, 0x01, //0x000059ba leaq $1(%rcx), %r12 - 0x49, 0x39, 0xd4, //0x000059be cmpq %rdx, %r12 - 0x0f, 0x83, 0x1e, 0x00, 0x00, 0x00, //0x000059c1 jae LBB31_9 - 0x43, 0x8a, 0x04, 0x21, //0x000059c7 movb (%r9,%r12), %al - 0x3c, 0x0d, //0x000059cb cmpb $13, %al - 0x0f, 0x84, 0x12, 0x00, 0x00, 0x00, //0x000059cd je LBB31_9 - 0x3c, 0x20, //0x000059d3 cmpb $32, %al - 0x0f, 0x84, 0x0a, 0x00, 0x00, 0x00, //0x000059d5 je LBB31_9 - 0x04, 0xf7, //0x000059db addb $-9, %al - 0x3c, 0x01, //0x000059dd cmpb $1, %al - 0x0f, 0x87, 0xd3, 0x00, 0x00, 0x00, //0x000059df ja LBB31_27 - //0x000059e5 LBB31_9 - 0x4c, 0x8d, 0x61, 0x02, //0x000059e5 leaq $2(%rcx), %r12 - 0x49, 0x39, 0xd4, //0x000059e9 cmpq %rdx, %r12 - 0x0f, 0x83, 0x1e, 0x00, 0x00, 0x00, //0x000059ec jae LBB31_13 - 0x43, 0x8a, 0x04, 0x21, //0x000059f2 movb (%r9,%r12), %al - 0x3c, 0x0d, //0x000059f6 cmpb $13, %al - 0x0f, 0x84, 0x12, 0x00, 0x00, 0x00, //0x000059f8 je LBB31_13 - 0x3c, 0x20, //0x000059fe cmpb $32, %al - 0x0f, 0x84, 0x0a, 0x00, 0x00, 0x00, //0x00005a00 je LBB31_13 - 0x04, 0xf7, //0x00005a06 addb $-9, %al - 0x3c, 0x01, //0x00005a08 cmpb $1, %al - 0x0f, 0x87, 0xa8, 0x00, 0x00, 0x00, //0x00005a0a ja LBB31_27 - //0x00005a10 LBB31_13 - 0x4c, 0x8d, 0x61, 0x03, //0x00005a10 leaq $3(%rcx), %r12 - 0x49, 0x39, 0xd4, //0x00005a14 cmpq %rdx, %r12 - 0x0f, 0x83, 0x1e, 0x00, 0x00, 0x00, //0x00005a17 jae LBB31_17 - 0x43, 0x8a, 0x04, 0x21, //0x00005a1d movb (%r9,%r12), %al - 0x3c, 0x0d, //0x00005a21 cmpb $13, %al - 0x0f, 0x84, 0x12, 0x00, 0x00, 0x00, //0x00005a23 je LBB31_17 - 0x3c, 0x20, //0x00005a29 cmpb $32, %al - 0x0f, 0x84, 0x0a, 0x00, 0x00, 0x00, //0x00005a2b je LBB31_17 - 0x04, 0xf7, //0x00005a31 addb $-9, %al - 0x3c, 0x01, //0x00005a33 cmpb $1, %al - 0x0f, 0x87, 0x7d, 0x00, 0x00, 0x00, //0x00005a35 ja LBB31_27 - //0x00005a3b LBB31_17 - 0x48, 0x83, 0xc1, 0x04, //0x00005a3b addq $4, %rcx - 0x48, 0x39, 0xca, //0x00005a3f cmpq %rcx, %rdx - 0x0f, 0x86, 0x42, 0x00, 0x00, 0x00, //0x00005a42 jbe LBB31_23 - 0x48, 0x39, 0xca, //0x00005a48 cmpq %rcx, %rdx - 0x0f, 0x84, 0x48, 0x00, 0x00, 0x00, //0x00005a4b je LBB31_24 - 0x4d, 0x8d, 0x04, 0x11, //0x00005a51 leaq (%r9,%rdx), %r8 - 0x48, 0xbb, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00005a55 movabsq $4294977024, %rbx - 0x90, //0x00005a5f .p2align 4, 0x90 - //0x00005a60 LBB31_20 - 0x41, 0x0f, 0xbe, 0x04, 0x09, //0x00005a60 movsbl (%r9,%rcx), %eax - 0x83, 0xf8, 0x20, //0x00005a65 cmpl $32, %eax - 0x0f, 0x87, 0x37, 0x00, 0x00, 0x00, //0x00005a68 ja LBB31_26 - 0x48, 0x0f, 0xa3, 0xc3, //0x00005a6e btq %rax, %rbx - 0x0f, 0x83, 0x2d, 0x00, 0x00, 0x00, //0x00005a72 jae LBB31_26 - 0x48, 0x83, 0xc1, 0x01, //0x00005a78 addq $1, %rcx - 0x48, 0x39, 0xca, //0x00005a7c cmpq %rcx, %rdx - 0x0f, 0x85, 0xdb, 0xff, 0xff, 0xff, //0x00005a7f jne LBB31_20 - 0xe9, 0x15, 0x00, 0x00, 0x00, //0x00005a85 jmp LBB31_25 - //0x00005a8a LBB31_23 - 0x48, 0x89, 0x0e, //0x00005a8a movq %rcx, (%rsi) - 0x49, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x00005a8d movq $-1, %r14 - 0xe9, 0x2c, 0x01, 0x00, 0x00, //0x00005a94 jmp LBB31_44 - //0x00005a99 LBB31_24 - 0x4c, 0x01, 0xc9, //0x00005a99 addq %r9, %rcx - 0x49, 0x89, 0xc8, //0x00005a9c movq %rcx, %r8 - //0x00005a9f LBB31_25 - 0x4d, 0x29, 0xc8, //0x00005a9f subq %r9, %r8 - 0x4c, 0x89, 0xc1, //0x00005aa2 movq %r8, %rcx - //0x00005aa5 LBB31_26 - 0x49, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x00005aa5 movq $-1, %r14 - 0x49, 0x89, 0xcc, //0x00005aac movq %rcx, %r12 - 0x48, 0x39, 0xd1, //0x00005aaf cmpq %rdx, %rcx - 0x0f, 0x83, 0x0d, 0x01, 0x00, 0x00, //0x00005ab2 jae LBB31_44 - //0x00005ab8 LBB31_27 - 0x49, 0x8d, 0x54, 0x24, 0x01, //0x00005ab8 leaq $1(%r12), %rdx - 0x48, 0x89, 0x16, //0x00005abd movq %rdx, (%rsi) - 0x43, 0x0f, 0xbe, 0x04, 0x21, //0x00005ac0 movsbl (%r9,%r12), %eax - 0x83, 0xf8, 0x7b, //0x00005ac5 cmpl $123, %eax - 0x0f, 0x87, 0x1d, 0x01, 0x00, 0x00, //0x00005ac8 ja LBB31_46 - 0x49, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x00005ace movq $-1, %r14 - 0x48, 0x8d, 0x0d, 0xa8, 0x0b, 0x00, 0x00, //0x00005ad5 leaq $2984(%rip), %rcx /* LJTI31_0+0(%rip) */ - 0x48, 0x63, 0x04, 0x81, //0x00005adc movslq (%rcx,%rax,4), %rax - 0x48, 0x01, 0xc8, //0x00005ae0 addq %rcx, %rax - 0xff, 0xe0, //0x00005ae3 jmpq *%rax - //0x00005ae5 LBB31_29 - 0x48, 0x8b, 0x47, 0x08, //0x00005ae5 movq $8(%rdi), %rax - 0x48, 0x89, 0xc1, //0x00005ae9 movq %rax, %rcx - 0x48, 0x29, 0xd1, //0x00005aec subq %rdx, %rcx - 0x48, 0x83, 0xf9, 0x10, //0x00005aef cmpq $16, %rcx - 0x0f, 0x82, 0x40, 0x0b, 0x00, 0x00, //0x00005af3 jb LBB31_117 - 0x4c, 0x89, 0xe1, //0x00005af9 movq %r12, %rcx - 0x48, 0xf7, 0xd1, //0x00005afc notq %rcx - 0x66, 0x0f, 0x6f, 0x05, 0xe9, 0xfd, 0xff, 0xff, //0x00005aff movdqa $-535(%rip), %xmm0 /* LCPI31_0+0(%rip) */ - 0x66, 0x0f, 0x6f, 0x0d, 0xf1, 0xfd, 0xff, 0xff, //0x00005b07 movdqa $-527(%rip), %xmm1 /* LCPI31_1+0(%rip) */ - 0x66, 0x0f, 0x6f, 0x15, 0xf9, 0xfd, 0xff, 0xff, //0x00005b0f movdqa $-519(%rip), %xmm2 /* LCPI31_2+0(%rip) */ - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00005b17 .p2align 4, 0x90 - //0x00005b20 LBB31_31 - 0xf3, 0x41, 0x0f, 0x6f, 0x1c, 0x11, //0x00005b20 movdqu (%r9,%rdx), %xmm3 - 0x66, 0x0f, 0x6f, 0xe3, //0x00005b26 movdqa %xmm3, %xmm4 - 0x66, 0x0f, 0x74, 0xe0, //0x00005b2a pcmpeqb %xmm0, %xmm4 - 0x66, 0x0f, 0xdb, 0xd9, //0x00005b2e pand %xmm1, %xmm3 - 0x66, 0x0f, 0x74, 0xda, //0x00005b32 pcmpeqb %xmm2, %xmm3 - 0x66, 0x0f, 0xeb, 0xdc, //0x00005b36 por %xmm4, %xmm3 - 0x66, 0x0f, 0xd7, 0xfb, //0x00005b3a pmovmskb %xmm3, %edi - 0x85, 0xff, //0x00005b3e testl %edi, %edi - 0x0f, 0x85, 0x6f, 0x00, 0x00, 0x00, //0x00005b40 jne LBB31_41 - 0x48, 0x83, 0xc2, 0x10, //0x00005b46 addq $16, %rdx - 0x48, 0x8d, 0x3c, 0x08, //0x00005b4a leaq (%rax,%rcx), %rdi - 0x48, 0x83, 0xc7, 0xf0, //0x00005b4e addq $-16, %rdi - 0x48, 0x83, 0xc1, 0xf0, //0x00005b52 addq $-16, %rcx - 0x48, 0x83, 0xff, 0x0f, //0x00005b56 cmpq $15, %rdi - 0x0f, 0x87, 0xc0, 0xff, 0xff, 0xff, //0x00005b5a ja LBB31_31 - 0x4c, 0x89, 0xca, //0x00005b60 movq %r9, %rdx - 0x48, 0x29, 0xca, //0x00005b63 subq %rcx, %rdx - 0x48, 0x01, 0xc8, //0x00005b66 addq %rcx, %rax - 0x48, 0x89, 0xc1, //0x00005b69 movq %rax, %rcx - 0x48, 0x85, 0xc9, //0x00005b6c testq %rcx, %rcx - 0x0f, 0x84, 0x35, 0x00, 0x00, 0x00, //0x00005b6f je LBB31_40 - //0x00005b75 LBB31_34 - 0x48, 0x8d, 0x3c, 0x0a, //0x00005b75 leaq (%rdx,%rcx), %rdi - 0x31, 0xc0, //0x00005b79 xorl %eax, %eax - //0x00005b7b LBB31_35 - 0x0f, 0xb6, 0x1c, 0x02, //0x00005b7b movzbl (%rdx,%rax), %ebx - 0x80, 0xfb, 0x2c, //0x00005b7f cmpb $44, %bl - 0x0f, 0x84, 0x94, 0x0a, 0x00, 0x00, //0x00005b82 je LBB31_115 - 0x80, 0xfb, 0x7d, //0x00005b88 cmpb $125, %bl - 0x0f, 0x84, 0x8b, 0x0a, 0x00, 0x00, //0x00005b8b je LBB31_115 - 0x80, 0xfb, 0x5d, //0x00005b91 cmpb $93, %bl - 0x0f, 0x84, 0x82, 0x0a, 0x00, 0x00, //0x00005b94 je LBB31_115 - 0x48, 0x83, 0xc0, 0x01, //0x00005b9a addq $1, %rax - 0x48, 0x39, 0xc1, //0x00005b9e cmpq %rax, %rcx - 0x0f, 0x85, 0xd4, 0xff, 0xff, 0xff, //0x00005ba1 jne LBB31_35 - 0x48, 0x89, 0xfa, //0x00005ba7 movq %rdi, %rdx - //0x00005baa LBB31_40 - 0x4c, 0x29, 0xca, //0x00005baa subq %r9, %rdx - 0x48, 0x89, 0x16, //0x00005bad movq %rdx, (%rsi) - 0xe9, 0x0d, 0x00, 0x00, 0x00, //0x00005bb0 jmp LBB31_43 - //0x00005bb5 LBB31_41 - 0x66, 0x0f, 0xbc, 0xc7, //0x00005bb5 bsfw %di, %ax - 0x0f, 0xb7, 0xc0, //0x00005bb9 movzwl %ax, %eax - 0x48, 0x29, 0xc8, //0x00005bbc subq %rcx, %rax - //0x00005bbf LBB31_42 - 0x48, 0x89, 0x06, //0x00005bbf movq %rax, (%rsi) - //0x00005bc2 LBB31_43 - 0x4d, 0x89, 0xe6, //0x00005bc2 movq %r12, %r14 - //0x00005bc5 LBB31_44 - 0x4c, 0x89, 0xf0, //0x00005bc5 movq %r14, %rax - 0x48, 0x83, 0xc4, 0x58, //0x00005bc8 addq $88, %rsp - 0x5b, //0x00005bcc popq %rbx - 0x41, 0x5c, //0x00005bcd popq %r12 - 0x41, 0x5d, //0x00005bcf popq %r13 - 0x41, 0x5e, //0x00005bd1 popq %r14 - 0x41, 0x5f, //0x00005bd3 popq %r15 - 0x5d, //0x00005bd5 popq %rbp - 0xc3, //0x00005bd6 retq - //0x00005bd7 LBB31_45 - 0x49, 0x8d, 0x44, 0x24, 0x04, //0x00005bd7 leaq $4(%r12), %rax - 0x48, 0x3b, 0x47, 0x08, //0x00005bdc cmpq $8(%rdi), %rax - 0x0f, 0x86, 0xd9, 0xff, 0xff, 0xff, //0x00005be0 jbe LBB31_42 - 0xe9, 0xda, 0xff, 0xff, 0xff, //0x00005be6 jmp LBB31_44 - //0x00005beb LBB31_46 - 0x4c, 0x89, 0x26, //0x00005beb movq %r12, (%rsi) - 0x49, 0xc7, 0xc6, 0xfe, 0xff, 0xff, 0xff, //0x00005bee movq $-2, %r14 - 0xe9, 0xcb, 0xff, 0xff, 0xff, //0x00005bf5 jmp LBB31_44 - //0x00005bfa LBB31_47 - 0x4c, 0x8b, 0x47, 0x08, //0x00005bfa movq $8(%rdi), %r8 - 0x4d, 0x89, 0xc7, //0x00005bfe movq %r8, %r15 - 0x49, 0x29, 0xd7, //0x00005c01 subq %rdx, %r15 - 0x49, 0x83, 0xff, 0x20, //0x00005c04 cmpq $32, %r15 - 0x0f, 0x8c, 0x3c, 0x0a, 0x00, 0x00, //0x00005c08 jl LBB31_118 - 0x4f, 0x8d, 0x14, 0x21, //0x00005c0e leaq (%r9,%r12), %r10 - 0x4d, 0x29, 0xe0, //0x00005c12 subq %r12, %r8 - 0x41, 0xbd, 0x1f, 0x00, 0x00, 0x00, //0x00005c15 movl $31, %r13d - 0x45, 0x31, 0xff, //0x00005c1b xorl %r15d, %r15d - 0x66, 0x0f, 0x6f, 0x05, 0xfa, 0xfc, 0xff, 0xff, //0x00005c1e movdqa $-774(%rip), %xmm0 /* LCPI31_3+0(%rip) */ - 0x66, 0x0f, 0x6f, 0x0d, 0x02, 0xfd, 0xff, 0xff, //0x00005c26 movdqa $-766(%rip), %xmm1 /* LCPI31_4+0(%rip) */ - 0x45, 0x31, 0xdb, //0x00005c2e xorl %r11d, %r11d - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00005c31 .p2align 4, 0x90 - //0x00005c40 LBB31_49 - 0xf3, 0x43, 0x0f, 0x6f, 0x54, 0x3a, 0x01, //0x00005c40 movdqu $1(%r10,%r15), %xmm2 - 0xf3, 0x43, 0x0f, 0x6f, 0x5c, 0x3a, 0x11, //0x00005c47 movdqu $17(%r10,%r15), %xmm3 - 0x66, 0x0f, 0x6f, 0xe2, //0x00005c4e movdqa %xmm2, %xmm4 - 0x66, 0x0f, 0x74, 0xe0, //0x00005c52 pcmpeqb %xmm0, %xmm4 - 0x66, 0x0f, 0xd7, 0xcc, //0x00005c56 pmovmskb %xmm4, %ecx - 0x66, 0x0f, 0x6f, 0xe3, //0x00005c5a movdqa %xmm3, %xmm4 - 0x66, 0x0f, 0x74, 0xe0, //0x00005c5e pcmpeqb %xmm0, %xmm4 - 0x66, 0x0f, 0xd7, 0xc4, //0x00005c62 pmovmskb %xmm4, %eax - 0x48, 0xc1, 0xe0, 0x10, //0x00005c66 shlq $16, %rax - 0x48, 0x09, 0xc8, //0x00005c6a orq %rcx, %rax - 0x66, 0x0f, 0x74, 0xd1, //0x00005c6d pcmpeqb %xmm1, %xmm2 - 0x66, 0x0f, 0xd7, 0xda, //0x00005c71 pmovmskb %xmm2, %ebx - 0x66, 0x0f, 0x74, 0xd9, //0x00005c75 pcmpeqb %xmm1, %xmm3 - 0x66, 0x0f, 0xd7, 0xcb, //0x00005c79 pmovmskb %xmm3, %ecx - 0x48, 0xc1, 0xe1, 0x10, //0x00005c7d shlq $16, %rcx - 0x48, 0x09, 0xd9, //0x00005c81 orq %rbx, %rcx - 0x48, 0x89, 0xcb, //0x00005c84 movq %rcx, %rbx - 0x4c, 0x09, 0xdb, //0x00005c87 orq %r11, %rbx - 0x0f, 0x84, 0x40, 0x00, 0x00, 0x00, //0x00005c8a je LBB31_51 - 0x44, 0x89, 0xdb, //0x00005c90 movl %r11d, %ebx - 0xf7, 0xd3, //0x00005c93 notl %ebx - 0x21, 0xcb, //0x00005c95 andl %ecx, %ebx - 0x8d, 0x14, 0x1b, //0x00005c97 leal (%rbx,%rbx), %edx - 0x44, 0x09, 0xda, //0x00005c9a orl %r11d, %edx - 0x89, 0xd7, //0x00005c9d movl %edx, %edi - 0xf7, 0xd7, //0x00005c9f notl %edi - 0x21, 0xcf, //0x00005ca1 andl %ecx, %edi - 0x81, 0xe7, 0xaa, 0xaa, 0xaa, 0xaa, //0x00005ca3 andl $-1431655766, %edi - 0x45, 0x31, 0xdb, //0x00005ca9 xorl %r11d, %r11d - 0x01, 0xdf, //0x00005cac addl %ebx, %edi - 0x41, 0x0f, 0x92, 0xc3, //0x00005cae setb %r11b - 0x01, 0xff, //0x00005cb2 addl %edi, %edi - 0x81, 0xf7, 0x55, 0x55, 0x55, 0x55, //0x00005cb4 xorl $1431655765, %edi - 0x21, 0xd7, //0x00005cba andl %edx, %edi - 0xf7, 0xd7, //0x00005cbc notl %edi - 0x21, 0xf8, //0x00005cbe andl %edi, %eax - 0xe9, 0x0e, 0x00, 0x00, 0x00, //0x00005cc0 jmp LBB31_52 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00005cc5 .p2align 4, 0x90 - //0x00005cd0 LBB31_51 - 0x45, 0x31, 0xdb, //0x00005cd0 xorl %r11d, %r11d - //0x00005cd3 LBB31_52 - 0x48, 0x85, 0xc0, //0x00005cd3 testq %rax, %rax - 0x0f, 0x85, 0xe6, 0x08, 0x00, 0x00, //0x00005cd6 jne LBB31_110 - 0x49, 0x83, 0xc7, 0x20, //0x00005cdc addq $32, %r15 - 0x4b, 0x8d, 0x04, 0x28, //0x00005ce0 leaq (%r8,%r13), %rax - 0x48, 0x83, 0xc0, 0xe0, //0x00005ce4 addq $-32, %rax - 0x49, 0x83, 0xc5, 0xe0, //0x00005ce8 addq $-32, %r13 - 0x48, 0x83, 0xf8, 0x3f, //0x00005cec cmpq $63, %rax - 0x0f, 0x8f, 0x4a, 0xff, 0xff, 0xff, //0x00005cf0 jg LBB31_49 - 0x4d, 0x85, 0xdb, //0x00005cf6 testq %r11, %r11 - 0x0f, 0x85, 0x5f, 0x09, 0x00, 0x00, //0x00005cf9 jne LBB31_120 - 0x4b, 0x8d, 0x14, 0x17, //0x00005cff leaq (%r15,%r10), %rdx - 0x48, 0x83, 0xc2, 0x01, //0x00005d03 addq $1, %rdx - 0x49, 0xf7, 0xd7, //0x00005d07 notq %r15 - 0x4d, 0x01, 0xc7, //0x00005d0a addq %r8, %r15 - //0x00005d0d LBB31_56 - 0x4d, 0x85, 0xff, //0x00005d0d testq %r15, %r15 - 0x0f, 0x8e, 0xaf, 0xfe, 0xff, 0xff, //0x00005d10 jle LBB31_44 - 0x49, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x00005d16 movq $-1, %r14 - 0xe9, 0xca, 0x08, 0x00, 0x00, //0x00005d1d jmp LBB31_112 - //0x00005d22 LBB31_58 - 0x49, 0xba, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00005d22 movabsq $6148914691236517205, %r10 - 0x48, 0x8b, 0x47, 0x08, //0x00005d2c movq $8(%rdi), %rax - 0x48, 0x29, 0xd0, //0x00005d30 subq %rdx, %rax - 0x49, 0x01, 0xd1, //0x00005d33 addq %rdx, %r9 - 0x45, 0x31, 0xed, //0x00005d36 xorl %r13d, %r13d - 0x66, 0x44, 0x0f, 0x6f, 0x15, 0xee, 0xfb, 0xff, 0xff, //0x00005d39 movdqa $-1042(%rip), %xmm10 /* LCPI31_4+0(%rip) */ - 0x66, 0x0f, 0x6f, 0x0d, 0xd6, 0xfb, 0xff, 0xff, //0x00005d42 movdqa $-1066(%rip), %xmm1 /* LCPI31_3+0(%rip) */ - 0x66, 0x45, 0x0f, 0x76, 0xc9, //0x00005d4a pcmpeqd %xmm9, %xmm9 - 0x66, 0x0f, 0x6f, 0x1d, 0x09, 0xfc, 0xff, 0xff, //0x00005d4f movdqa $-1015(%rip), %xmm3 /* LCPI31_7+0(%rip) */ - 0x66, 0x0f, 0x6f, 0x25, 0xb1, 0xfb, 0xff, 0xff, //0x00005d57 movdqa $-1103(%rip), %xmm4 /* LCPI31_2+0(%rip) */ - 0x45, 0x0f, 0x57, 0xc0, //0x00005d5f xorps %xmm8, %xmm8 - 0x45, 0x31, 0xff, //0x00005d63 xorl %r15d, %r15d - 0x31, 0xc9, //0x00005d66 xorl %ecx, %ecx - 0x48, 0x89, 0x4d, 0xc0, //0x00005d68 movq %rcx, $-64(%rbp) - 0x45, 0x31, 0xdb, //0x00005d6c xorl %r11d, %r11d - 0xe9, 0x60, 0x00, 0x00, 0x00, //0x00005d6f jmp LBB31_60 - //0x00005d74 LBB31_59 - 0x49, 0xc1, 0xff, 0x3f, //0x00005d74 sarq $63, %r15 - 0x4c, 0x89, 0xc0, //0x00005d78 movq %r8, %rax - 0x48, 0xd1, 0xe8, //0x00005d7b shrq %rax - 0x4c, 0x21, 0xd0, //0x00005d7e andq %r10, %rax - 0x49, 0x29, 0xc0, //0x00005d81 subq %rax, %r8 - 0x4c, 0x89, 0xc0, //0x00005d84 movq %r8, %rax - 0x4c, 0x21, 0xe8, //0x00005d87 andq %r13, %rax - 0x49, 0xc1, 0xe8, 0x02, //0x00005d8a shrq $2, %r8 - 0x4d, 0x21, 0xe8, //0x00005d8e andq %r13, %r8 - 0x49, 0x01, 0xc0, //0x00005d91 addq %rax, %r8 - 0x4c, 0x89, 0xc0, //0x00005d94 movq %r8, %rax - 0x48, 0xc1, 0xe8, 0x04, //0x00005d97 shrq $4, %rax - 0x4c, 0x01, 0xc0, //0x00005d9b addq %r8, %rax - 0x48, 0xb9, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, //0x00005d9e movabsq $1085102592571150095, %rcx - 0x48, 0x21, 0xc8, //0x00005da8 andq %rcx, %rax - 0x48, 0xb9, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, //0x00005dab movabsq $72340172838076673, %rcx - 0x48, 0x0f, 0xaf, 0xc1, //0x00005db5 imulq %rcx, %rax - 0x48, 0xc1, 0xe8, 0x38, //0x00005db9 shrq $56, %rax - 0x48, 0x01, 0x45, 0xc0, //0x00005dbd addq %rax, $-64(%rbp) - 0x49, 0x83, 0xc1, 0x40, //0x00005dc1 addq $64, %r9 - 0x48, 0x8b, 0x45, 0xd0, //0x00005dc5 movq $-48(%rbp), %rax - 0x48, 0x83, 0xc0, 0xc0, //0x00005dc9 addq $-64, %rax - 0x4d, 0x89, 0xfd, //0x00005dcd movq %r15, %r13 - 0x4c, 0x8b, 0x7d, 0xc8, //0x00005dd0 movq $-56(%rbp), %r15 - //0x00005dd4 LBB31_60 - 0x48, 0x83, 0xf8, 0x40, //0x00005dd4 cmpq $64, %rax - 0x48, 0x89, 0x45, 0xd0, //0x00005dd8 movq %rax, $-48(%rbp) - 0x0f, 0x8c, 0x2c, 0x02, 0x00, 0x00, //0x00005ddc jl LBB31_67 - //0x00005de2 LBB31_61 - 0xf3, 0x41, 0x0f, 0x6f, 0x01, //0x00005de2 movdqu (%r9), %xmm0 - 0xf3, 0x41, 0x0f, 0x6f, 0x69, 0x10, //0x00005de7 movdqu $16(%r9), %xmm5 - 0xf3, 0x41, 0x0f, 0x6f, 0x79, 0x20, //0x00005ded movdqu $32(%r9), %xmm7 - 0xf3, 0x41, 0x0f, 0x6f, 0x71, 0x30, //0x00005df3 movdqu $48(%r9), %xmm6 - 0x66, 0x0f, 0x6f, 0xd0, //0x00005df9 movdqa %xmm0, %xmm2 - 0x66, 0x41, 0x0f, 0x74, 0xd2, //0x00005dfd pcmpeqb %xmm10, %xmm2 - 0x66, 0x0f, 0xd7, 0xd2, //0x00005e02 pmovmskb %xmm2, %edx - 0x66, 0x0f, 0x6f, 0xd5, //0x00005e06 movdqa %xmm5, %xmm2 - 0x66, 0x41, 0x0f, 0x74, 0xd2, //0x00005e0a pcmpeqb %xmm10, %xmm2 - 0x66, 0x0f, 0xd7, 0xc2, //0x00005e0f pmovmskb %xmm2, %eax - 0x66, 0x0f, 0x6f, 0xd7, //0x00005e13 movdqa %xmm7, %xmm2 - 0x66, 0x41, 0x0f, 0x74, 0xd2, //0x00005e17 pcmpeqb %xmm10, %xmm2 - 0x66, 0x0f, 0xd7, 0xca, //0x00005e1c pmovmskb %xmm2, %ecx - 0x66, 0x0f, 0x6f, 0xd6, //0x00005e20 movdqa %xmm6, %xmm2 - 0x66, 0x41, 0x0f, 0x74, 0xd2, //0x00005e24 pcmpeqb %xmm10, %xmm2 - 0x66, 0x0f, 0xd7, 0xda, //0x00005e29 pmovmskb %xmm2, %ebx - 0x48, 0xc1, 0xe3, 0x30, //0x00005e2d shlq $48, %rbx - 0x48, 0xc1, 0xe1, 0x20, //0x00005e31 shlq $32, %rcx - 0x48, 0x09, 0xd9, //0x00005e35 orq %rbx, %rcx - 0x48, 0xc1, 0xe0, 0x10, //0x00005e38 shlq $16, %rax - 0x48, 0x09, 0xc8, //0x00005e3c orq %rcx, %rax - 0x48, 0x09, 0xc2, //0x00005e3f orq %rax, %rdx - 0x48, 0x89, 0xd0, //0x00005e42 movq %rdx, %rax - 0x4c, 0x09, 0xf8, //0x00005e45 orq %r15, %rax - 0x0f, 0x85, 0x12, 0x00, 0x00, 0x00, //0x00005e48 jne LBB31_63 - 0x48, 0xc7, 0xc2, 0xff, 0xff, 0xff, 0xff, //0x00005e4e movq $-1, %rdx - 0x31, 0xc0, //0x00005e55 xorl %eax, %eax - 0x48, 0x89, 0x45, 0xc8, //0x00005e57 movq %rax, $-56(%rbp) - 0xe9, 0x3e, 0x00, 0x00, 0x00, //0x00005e5b jmp LBB31_64 - //0x00005e60 LBB31_63 - 0x4c, 0x89, 0xf8, //0x00005e60 movq %r15, %rax - 0x48, 0xf7, 0xd0, //0x00005e63 notq %rax - 0x48, 0x21, 0xd0, //0x00005e66 andq %rdx, %rax - 0x4c, 0x8d, 0x04, 0x00, //0x00005e69 leaq (%rax,%rax), %r8 - 0x4d, 0x09, 0xf8, //0x00005e6d orq %r15, %r8 - 0x4c, 0x89, 0xc1, //0x00005e70 movq %r8, %rcx - 0x48, 0xf7, 0xd1, //0x00005e73 notq %rcx - 0x48, 0xbb, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x00005e76 movabsq $-6148914691236517206, %rbx - 0x48, 0x21, 0xda, //0x00005e80 andq %rbx, %rdx - 0x48, 0x21, 0xca, //0x00005e83 andq %rcx, %rdx - 0x31, 0xc9, //0x00005e86 xorl %ecx, %ecx - 0x48, 0x01, 0xc2, //0x00005e88 addq %rax, %rdx - 0x0f, 0x92, 0xc1, //0x00005e8b setb %cl - 0x48, 0x89, 0x4d, 0xc8, //0x00005e8e movq %rcx, $-56(%rbp) - 0x48, 0x01, 0xd2, //0x00005e92 addq %rdx, %rdx - 0x4c, 0x31, 0xd2, //0x00005e95 xorq %r10, %rdx - 0x4c, 0x21, 0xc2, //0x00005e98 andq %r8, %rdx - 0x48, 0xf7, 0xd2, //0x00005e9b notq %rdx - //0x00005e9e LBB31_64 - 0x66, 0x0f, 0x6f, 0xd6, //0x00005e9e movdqa %xmm6, %xmm2 - 0x66, 0x0f, 0x74, 0xd1, //0x00005ea2 pcmpeqb %xmm1, %xmm2 - 0x66, 0x0f, 0xd7, 0xc2, //0x00005ea6 pmovmskb %xmm2, %eax - 0x48, 0xc1, 0xe0, 0x30, //0x00005eaa shlq $48, %rax - 0x66, 0x0f, 0x6f, 0xd7, //0x00005eae movdqa %xmm7, %xmm2 - 0x66, 0x0f, 0x74, 0xd1, //0x00005eb2 pcmpeqb %xmm1, %xmm2 - 0x66, 0x0f, 0xd7, 0xca, //0x00005eb6 pmovmskb %xmm2, %ecx - 0x48, 0xc1, 0xe1, 0x20, //0x00005eba shlq $32, %rcx - 0x48, 0x09, 0xc1, //0x00005ebe orq %rax, %rcx - 0x66, 0x0f, 0x6f, 0xd5, //0x00005ec1 movdqa %xmm5, %xmm2 - 0x66, 0x0f, 0x74, 0xd1, //0x00005ec5 pcmpeqb %xmm1, %xmm2 - 0x66, 0x0f, 0xd7, 0xc2, //0x00005ec9 pmovmskb %xmm2, %eax - 0x48, 0xc1, 0xe0, 0x10, //0x00005ecd shlq $16, %rax - 0x48, 0x09, 0xc8, //0x00005ed1 orq %rcx, %rax - 0x66, 0x0f, 0x6f, 0xd0, //0x00005ed4 movdqa %xmm0, %xmm2 - 0x66, 0x0f, 0x74, 0xd1, //0x00005ed8 pcmpeqb %xmm1, %xmm2 - 0x66, 0x0f, 0xd7, 0xca, //0x00005edc pmovmskb %xmm2, %ecx - 0x48, 0x09, 0xc1, //0x00005ee0 orq %rax, %rcx - 0x48, 0x21, 0xd1, //0x00005ee3 andq %rdx, %rcx - 0x66, 0x48, 0x0f, 0x6e, 0xd1, //0x00005ee6 movq %rcx, %xmm2 - 0x66, 0x41, 0x0f, 0x3a, 0x44, 0xd1, 0x00, //0x00005eeb pclmulqdq $0, %xmm9, %xmm2 - 0x66, 0x49, 0x0f, 0x7e, 0xd7, //0x00005ef2 movq %xmm2, %r15 - 0x4d, 0x31, 0xef, //0x00005ef7 xorq %r13, %r15 - 0x66, 0x0f, 0x6f, 0xd0, //0x00005efa movdqa %xmm0, %xmm2 - 0x66, 0x0f, 0x74, 0xd3, //0x00005efe pcmpeqb %xmm3, %xmm2 - 0x66, 0x44, 0x0f, 0xd7, 0xc2, //0x00005f02 pmovmskb %xmm2, %r8d - 0x66, 0x0f, 0x6f, 0xd5, //0x00005f07 movdqa %xmm5, %xmm2 - 0x66, 0x0f, 0x74, 0xd3, //0x00005f0b pcmpeqb %xmm3, %xmm2 - 0x66, 0x0f, 0xd7, 0xc2, //0x00005f0f pmovmskb %xmm2, %eax - 0x66, 0x0f, 0x6f, 0xd7, //0x00005f13 movdqa %xmm7, %xmm2 - 0x66, 0x0f, 0x74, 0xd3, //0x00005f17 pcmpeqb %xmm3, %xmm2 - 0x66, 0x0f, 0xd7, 0xca, //0x00005f1b pmovmskb %xmm2, %ecx - 0x66, 0x0f, 0x6f, 0xd6, //0x00005f1f movdqa %xmm6, %xmm2 - 0x66, 0x0f, 0x74, 0xd3, //0x00005f23 pcmpeqb %xmm3, %xmm2 - 0x66, 0x0f, 0xd7, 0xda, //0x00005f27 pmovmskb %xmm2, %ebx - 0x48, 0xc1, 0xe3, 0x30, //0x00005f2b shlq $48, %rbx - 0x48, 0xc1, 0xe1, 0x20, //0x00005f2f shlq $32, %rcx - 0x48, 0x09, 0xd9, //0x00005f33 orq %rbx, %rcx - 0x48, 0xc1, 0xe0, 0x10, //0x00005f36 shlq $16, %rax - 0x48, 0x09, 0xc8, //0x00005f3a orq %rcx, %rax - 0x49, 0x09, 0xc0, //0x00005f3d orq %rax, %r8 - 0x4c, 0x89, 0xf8, //0x00005f40 movq %r15, %rax - 0x48, 0xf7, 0xd0, //0x00005f43 notq %rax - 0x49, 0x21, 0xc0, //0x00005f46 andq %rax, %r8 - 0x66, 0x0f, 0x74, 0xc4, //0x00005f49 pcmpeqb %xmm4, %xmm0 - 0x66, 0x0f, 0xd7, 0xc8, //0x00005f4d pmovmskb %xmm0, %ecx - 0x66, 0x0f, 0x74, 0xec, //0x00005f51 pcmpeqb %xmm4, %xmm5 - 0x66, 0x0f, 0xd7, 0xdd, //0x00005f55 pmovmskb %xmm5, %ebx - 0x66, 0x0f, 0x74, 0xfc, //0x00005f59 pcmpeqb %xmm4, %xmm7 - 0x66, 0x44, 0x0f, 0xd7, 0xd7, //0x00005f5d pmovmskb %xmm7, %r10d - 0x66, 0x0f, 0x74, 0xf4, //0x00005f62 pcmpeqb %xmm4, %xmm6 - 0x66, 0x44, 0x0f, 0xd7, 0xee, //0x00005f66 pmovmskb %xmm6, %r13d - 0x49, 0xc1, 0xe5, 0x30, //0x00005f6b shlq $48, %r13 - 0x49, 0xc1, 0xe2, 0x20, //0x00005f6f shlq $32, %r10 - 0x4d, 0x09, 0xea, //0x00005f73 orq %r13, %r10 - 0x48, 0xc1, 0xe3, 0x10, //0x00005f76 shlq $16, %rbx - 0x4c, 0x09, 0xd3, //0x00005f7a orq %r10, %rbx - 0x48, 0x09, 0xd9, //0x00005f7d orq %rbx, %rcx - 0x49, 0xba, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00005f80 movabsq $6148914691236517205, %r10 - 0x49, 0xbd, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, //0x00005f8a movabsq $3689348814741910323, %r13 - 0x48, 0x21, 0xc1, //0x00005f94 andq %rax, %rcx - 0x0f, 0x84, 0xd7, 0xfd, 0xff, 0xff, //0x00005f97 je LBB31_59 - 0x90, 0x90, 0x90, //0x00005f9d .p2align 4, 0x90 - //0x00005fa0 LBB31_65 - 0x48, 0x8d, 0x51, 0xff, //0x00005fa0 leaq $-1(%rcx), %rdx - 0x48, 0x89, 0xd3, //0x00005fa4 movq %rdx, %rbx - 0x4c, 0x21, 0xc3, //0x00005fa7 andq %r8, %rbx - 0x48, 0x89, 0xd8, //0x00005faa movq %rbx, %rax - 0x48, 0xd1, 0xe8, //0x00005fad shrq %rax - 0x4c, 0x21, 0xd0, //0x00005fb0 andq %r10, %rax - 0x48, 0x29, 0xc3, //0x00005fb3 subq %rax, %rbx - 0x48, 0x89, 0xd8, //0x00005fb6 movq %rbx, %rax - 0x4c, 0x21, 0xe8, //0x00005fb9 andq %r13, %rax - 0x48, 0xc1, 0xeb, 0x02, //0x00005fbc shrq $2, %rbx - 0x4c, 0x21, 0xeb, //0x00005fc0 andq %r13, %rbx - 0x48, 0x01, 0xc3, //0x00005fc3 addq %rax, %rbx - 0x48, 0x89, 0xd8, //0x00005fc6 movq %rbx, %rax - 0x48, 0xc1, 0xe8, 0x04, //0x00005fc9 shrq $4, %rax - 0x48, 0x01, 0xd8, //0x00005fcd addq %rbx, %rax - 0x48, 0xbb, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, //0x00005fd0 movabsq $1085102592571150095, %rbx - 0x48, 0x21, 0xd8, //0x00005fda andq %rbx, %rax - 0x48, 0xbb, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, //0x00005fdd movabsq $72340172838076673, %rbx - 0x48, 0x0f, 0xaf, 0xc3, //0x00005fe7 imulq %rbx, %rax - 0x48, 0xc1, 0xe8, 0x38, //0x00005feb shrq $56, %rax - 0x48, 0x03, 0x45, 0xc0, //0x00005fef addq $-64(%rbp), %rax - 0x4c, 0x39, 0xd8, //0x00005ff3 cmpq %r11, %rax - 0x0f, 0x86, 0x92, 0x05, 0x00, 0x00, //0x00005ff6 jbe LBB31_109 - 0x49, 0x83, 0xc3, 0x01, //0x00005ffc addq $1, %r11 - 0x48, 0x21, 0xd1, //0x00006000 andq %rdx, %rcx - 0x0f, 0x85, 0x97, 0xff, 0xff, 0xff, //0x00006003 jne LBB31_65 - 0xe9, 0x66, 0xfd, 0xff, 0xff, //0x00006009 jmp LBB31_59 - //0x0000600e LBB31_67 - 0x48, 0x85, 0xc0, //0x0000600e testq %rax, %rax - 0x0f, 0x8e, 0x3b, 0x06, 0x00, 0x00, //0x00006011 jle LBB31_119 - 0x4c, 0x89, 0xf9, //0x00006017 movq %r15, %rcx - 0x44, 0x0f, 0x11, 0x45, 0xb0, //0x0000601a movups %xmm8, $-80(%rbp) - 0x44, 0x0f, 0x11, 0x45, 0xa0, //0x0000601f movups %xmm8, $-96(%rbp) - 0x44, 0x0f, 0x11, 0x45, 0x90, //0x00006024 movups %xmm8, $-112(%rbp) - 0x44, 0x0f, 0x11, 0x45, 0x80, //0x00006029 movups %xmm8, $-128(%rbp) - 0x44, 0x89, 0xc8, //0x0000602e movl %r9d, %eax - 0x25, 0xff, 0x0f, 0x00, 0x00, //0x00006031 andl $4095, %eax - 0x3d, 0xc1, 0x0f, 0x00, 0x00, //0x00006036 cmpl $4033, %eax - 0x0f, 0x82, 0x31, 0x00, 0x00, 0x00, //0x0000603b jb LBB31_71 - 0x48, 0x83, 0x7d, 0xd0, 0x20, //0x00006041 cmpq $32, $-48(%rbp) - 0x0f, 0x82, 0x38, 0x00, 0x00, 0x00, //0x00006046 jb LBB31_72 - 0x41, 0x0f, 0x10, 0x01, //0x0000604c movups (%r9), %xmm0 - 0x0f, 0x11, 0x45, 0x80, //0x00006050 movups %xmm0, $-128(%rbp) - 0x41, 0x0f, 0x10, 0x41, 0x10, //0x00006054 movups $16(%r9), %xmm0 - 0x0f, 0x11, 0x45, 0x90, //0x00006059 movups %xmm0, $-112(%rbp) - 0x49, 0x83, 0xc1, 0x20, //0x0000605d addq $32, %r9 - 0x48, 0x8b, 0x45, 0xd0, //0x00006061 movq $-48(%rbp), %rax - 0x48, 0x8d, 0x50, 0xe0, //0x00006065 leaq $-32(%rax), %rdx - 0x4c, 0x8d, 0x45, 0xa0, //0x00006069 leaq $-96(%rbp), %r8 - 0xe9, 0x1a, 0x00, 0x00, 0x00, //0x0000606d jmp LBB31_73 - //0x00006072 LBB31_71 - 0x49, 0xba, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00006072 movabsq $6148914691236517205, %r10 - 0x49, 0x89, 0xcf, //0x0000607c movq %rcx, %r15 - 0xe9, 0x5e, 0xfd, 0xff, 0xff, //0x0000607f jmp LBB31_61 - //0x00006084 LBB31_72 - 0x4c, 0x8d, 0x45, 0x80, //0x00006084 leaq $-128(%rbp), %r8 - 0x48, 0x8b, 0x55, 0xd0, //0x00006088 movq $-48(%rbp), %rdx - //0x0000608c LBB31_73 - 0x48, 0x83, 0xfa, 0x10, //0x0000608c cmpq $16, %rdx - 0x0f, 0x82, 0x49, 0x00, 0x00, 0x00, //0x00006090 jb LBB31_74 - 0x41, 0x0f, 0x10, 0x01, //0x00006096 movups (%r9), %xmm0 - 0x41, 0x0f, 0x11, 0x00, //0x0000609a movups %xmm0, (%r8) - 0x49, 0x83, 0xc1, 0x10, //0x0000609e addq $16, %r9 - 0x49, 0x83, 0xc0, 0x10, //0x000060a2 addq $16, %r8 - 0x48, 0x83, 0xc2, 0xf0, //0x000060a6 addq $-16, %rdx - 0x48, 0x83, 0xfa, 0x08, //0x000060aa cmpq $8, %rdx - 0x0f, 0x83, 0x35, 0x00, 0x00, 0x00, //0x000060ae jae LBB31_81 - //0x000060b4 LBB31_75 - 0x48, 0x83, 0xfa, 0x04, //0x000060b4 cmpq $4, %rdx - 0x0f, 0x8c, 0x47, 0x00, 0x00, 0x00, //0x000060b8 jl LBB31_76 - //0x000060be LBB31_82 - 0x41, 0x8b, 0x01, //0x000060be movl (%r9), %eax - 0x41, 0x89, 0x00, //0x000060c1 movl %eax, (%r8) - 0x49, 0x83, 0xc1, 0x04, //0x000060c4 addq $4, %r9 - 0x49, 0x83, 0xc0, 0x04, //0x000060c8 addq $4, %r8 - 0x48, 0x83, 0xc2, 0xfc, //0x000060cc addq $-4, %rdx - 0x48, 0x83, 0xfa, 0x02, //0x000060d0 cmpq $2, %rdx - 0x0f, 0x83, 0x35, 0x00, 0x00, 0x00, //0x000060d4 jae LBB31_77 - 0xe9, 0x44, 0x00, 0x00, 0x00, //0x000060da jmp LBB31_78 - //0x000060df LBB31_74 - 0x48, 0x83, 0xfa, 0x08, //0x000060df cmpq $8, %rdx - 0x0f, 0x82, 0xcb, 0xff, 0xff, 0xff, //0x000060e3 jb LBB31_75 - //0x000060e9 LBB31_81 - 0x49, 0x8b, 0x01, //0x000060e9 movq (%r9), %rax - 0x49, 0x89, 0x00, //0x000060ec movq %rax, (%r8) - 0x49, 0x83, 0xc1, 0x08, //0x000060ef addq $8, %r9 - 0x49, 0x83, 0xc0, 0x08, //0x000060f3 addq $8, %r8 - 0x48, 0x83, 0xc2, 0xf8, //0x000060f7 addq $-8, %rdx - 0x48, 0x83, 0xfa, 0x04, //0x000060fb cmpq $4, %rdx - 0x0f, 0x8d, 0xb9, 0xff, 0xff, 0xff, //0x000060ff jge LBB31_82 - //0x00006105 LBB31_76 - 0x48, 0x83, 0xfa, 0x02, //0x00006105 cmpq $2, %rdx - 0x0f, 0x82, 0x14, 0x00, 0x00, 0x00, //0x00006109 jb LBB31_78 - //0x0000610f LBB31_77 - 0x41, 0x0f, 0xb7, 0x01, //0x0000610f movzwl (%r9), %eax - 0x66, 0x41, 0x89, 0x00, //0x00006113 movw %ax, (%r8) - 0x49, 0x83, 0xc1, 0x02, //0x00006117 addq $2, %r9 - 0x49, 0x83, 0xc0, 0x02, //0x0000611b addq $2, %r8 - 0x48, 0x83, 0xc2, 0xfe, //0x0000611f addq $-2, %rdx - //0x00006123 LBB31_78 - 0x4c, 0x89, 0xc8, //0x00006123 movq %r9, %rax - 0x4c, 0x8d, 0x4d, 0x80, //0x00006126 leaq $-128(%rbp), %r9 - 0x48, 0x85, 0xd2, //0x0000612a testq %rdx, %rdx - 0x49, 0xba, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x0000612d movabsq $6148914691236517205, %r10 - 0x49, 0x89, 0xcf, //0x00006137 movq %rcx, %r15 - 0x0f, 0x84, 0xa2, 0xfc, 0xff, 0xff, //0x0000613a je LBB31_61 - 0x8a, 0x00, //0x00006140 movb (%rax), %al - 0x41, 0x88, 0x00, //0x00006142 movb %al, (%r8) - 0x4c, 0x8d, 0x4d, 0x80, //0x00006145 leaq $-128(%rbp), %r9 - 0xe9, 0x94, 0xfc, 0xff, 0xff, //0x00006149 jmp LBB31_61 - //0x0000614e LBB31_83 - 0x49, 0x8d, 0x44, 0x24, 0x05, //0x0000614e leaq $5(%r12), %rax - 0x48, 0x3b, 0x47, 0x08, //0x00006153 cmpq $8(%rdi), %rax - 0x0f, 0x86, 0x62, 0xfa, 0xff, 0xff, //0x00006157 jbe LBB31_42 - 0xe9, 0x63, 0xfa, 0xff, 0xff, //0x0000615d jmp LBB31_44 - //0x00006162 LBB31_84 - 0x49, 0xba, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00006162 movabsq $6148914691236517205, %r10 - 0x48, 0x8b, 0x47, 0x08, //0x0000616c movq $8(%rdi), %rax - 0x48, 0x29, 0xd0, //0x00006170 subq %rdx, %rax - 0x49, 0x01, 0xd1, //0x00006173 addq %rdx, %r9 - 0x45, 0x31, 0xed, //0x00006176 xorl %r13d, %r13d - 0x66, 0x44, 0x0f, 0x6f, 0x15, 0xae, 0xf7, 0xff, 0xff, //0x00006179 movdqa $-2130(%rip), %xmm10 /* LCPI31_4+0(%rip) */ - 0x66, 0x0f, 0x6f, 0x0d, 0x96, 0xf7, 0xff, 0xff, //0x00006182 movdqa $-2154(%rip), %xmm1 /* LCPI31_3+0(%rip) */ - 0x66, 0x45, 0x0f, 0x76, 0xc9, //0x0000618a pcmpeqd %xmm9, %xmm9 - 0x66, 0x0f, 0x6f, 0x1d, 0xa9, 0xf7, 0xff, 0xff, //0x0000618f movdqa $-2135(%rip), %xmm3 /* LCPI31_5+0(%rip) */ - 0x66, 0x0f, 0x6f, 0x25, 0xb1, 0xf7, 0xff, 0xff, //0x00006197 movdqa $-2127(%rip), %xmm4 /* LCPI31_6+0(%rip) */ - 0x45, 0x0f, 0x57, 0xc0, //0x0000619f xorps %xmm8, %xmm8 - 0x45, 0x31, 0xff, //0x000061a3 xorl %r15d, %r15d - 0x31, 0xc9, //0x000061a6 xorl %ecx, %ecx - 0x48, 0x89, 0x4d, 0xc0, //0x000061a8 movq %rcx, $-64(%rbp) - 0x45, 0x31, 0xdb, //0x000061ac xorl %r11d, %r11d - 0xe9, 0x60, 0x00, 0x00, 0x00, //0x000061af jmp LBB31_86 - //0x000061b4 LBB31_85 - 0x49, 0xc1, 0xff, 0x3f, //0x000061b4 sarq $63, %r15 - 0x4c, 0x89, 0xc0, //0x000061b8 movq %r8, %rax - 0x48, 0xd1, 0xe8, //0x000061bb shrq %rax - 0x4c, 0x21, 0xd0, //0x000061be andq %r10, %rax - 0x49, 0x29, 0xc0, //0x000061c1 subq %rax, %r8 - 0x4c, 0x89, 0xc0, //0x000061c4 movq %r8, %rax - 0x4c, 0x21, 0xe8, //0x000061c7 andq %r13, %rax - 0x49, 0xc1, 0xe8, 0x02, //0x000061ca shrq $2, %r8 - 0x4d, 0x21, 0xe8, //0x000061ce andq %r13, %r8 - 0x49, 0x01, 0xc0, //0x000061d1 addq %rax, %r8 - 0x4c, 0x89, 0xc0, //0x000061d4 movq %r8, %rax - 0x48, 0xc1, 0xe8, 0x04, //0x000061d7 shrq $4, %rax - 0x4c, 0x01, 0xc0, //0x000061db addq %r8, %rax - 0x48, 0xb9, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, //0x000061de movabsq $1085102592571150095, %rcx - 0x48, 0x21, 0xc8, //0x000061e8 andq %rcx, %rax - 0x48, 0xb9, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, //0x000061eb movabsq $72340172838076673, %rcx - 0x48, 0x0f, 0xaf, 0xc1, //0x000061f5 imulq %rcx, %rax - 0x48, 0xc1, 0xe8, 0x38, //0x000061f9 shrq $56, %rax - 0x48, 0x01, 0x45, 0xc0, //0x000061fd addq %rax, $-64(%rbp) - 0x49, 0x83, 0xc1, 0x40, //0x00006201 addq $64, %r9 - 0x48, 0x8b, 0x45, 0xd0, //0x00006205 movq $-48(%rbp), %rax - 0x48, 0x83, 0xc0, 0xc0, //0x00006209 addq $-64, %rax - 0x4d, 0x89, 0xfd, //0x0000620d movq %r15, %r13 - 0x4c, 0x8b, 0x7d, 0xc8, //0x00006210 movq $-56(%rbp), %r15 - //0x00006214 LBB31_86 - 0x48, 0x83, 0xf8, 0x40, //0x00006214 cmpq $64, %rax - 0x48, 0x89, 0x45, 0xd0, //0x00006218 movq %rax, $-48(%rbp) - 0x0f, 0x8c, 0x2c, 0x02, 0x00, 0x00, //0x0000621c jl LBB31_93 - //0x00006222 LBB31_87 - 0xf3, 0x41, 0x0f, 0x6f, 0x01, //0x00006222 movdqu (%r9), %xmm0 - 0xf3, 0x41, 0x0f, 0x6f, 0x69, 0x10, //0x00006227 movdqu $16(%r9), %xmm5 - 0xf3, 0x41, 0x0f, 0x6f, 0x79, 0x20, //0x0000622d movdqu $32(%r9), %xmm7 - 0xf3, 0x41, 0x0f, 0x6f, 0x71, 0x30, //0x00006233 movdqu $48(%r9), %xmm6 - 0x66, 0x0f, 0x6f, 0xd0, //0x00006239 movdqa %xmm0, %xmm2 - 0x66, 0x41, 0x0f, 0x74, 0xd2, //0x0000623d pcmpeqb %xmm10, %xmm2 - 0x66, 0x0f, 0xd7, 0xd2, //0x00006242 pmovmskb %xmm2, %edx - 0x66, 0x0f, 0x6f, 0xd5, //0x00006246 movdqa %xmm5, %xmm2 - 0x66, 0x41, 0x0f, 0x74, 0xd2, //0x0000624a pcmpeqb %xmm10, %xmm2 - 0x66, 0x0f, 0xd7, 0xc2, //0x0000624f pmovmskb %xmm2, %eax - 0x66, 0x0f, 0x6f, 0xd7, //0x00006253 movdqa %xmm7, %xmm2 - 0x66, 0x41, 0x0f, 0x74, 0xd2, //0x00006257 pcmpeqb %xmm10, %xmm2 - 0x66, 0x0f, 0xd7, 0xca, //0x0000625c pmovmskb %xmm2, %ecx - 0x66, 0x0f, 0x6f, 0xd6, //0x00006260 movdqa %xmm6, %xmm2 - 0x66, 0x41, 0x0f, 0x74, 0xd2, //0x00006264 pcmpeqb %xmm10, %xmm2 - 0x66, 0x0f, 0xd7, 0xda, //0x00006269 pmovmskb %xmm2, %ebx - 0x48, 0xc1, 0xe3, 0x30, //0x0000626d shlq $48, %rbx - 0x48, 0xc1, 0xe1, 0x20, //0x00006271 shlq $32, %rcx - 0x48, 0x09, 0xd9, //0x00006275 orq %rbx, %rcx - 0x48, 0xc1, 0xe0, 0x10, //0x00006278 shlq $16, %rax - 0x48, 0x09, 0xc8, //0x0000627c orq %rcx, %rax - 0x48, 0x09, 0xc2, //0x0000627f orq %rax, %rdx - 0x48, 0x89, 0xd0, //0x00006282 movq %rdx, %rax - 0x4c, 0x09, 0xf8, //0x00006285 orq %r15, %rax - 0x0f, 0x85, 0x12, 0x00, 0x00, 0x00, //0x00006288 jne LBB31_89 - 0x48, 0xc7, 0xc2, 0xff, 0xff, 0xff, 0xff, //0x0000628e movq $-1, %rdx - 0x31, 0xc0, //0x00006295 xorl %eax, %eax - 0x48, 0x89, 0x45, 0xc8, //0x00006297 movq %rax, $-56(%rbp) - 0xe9, 0x3e, 0x00, 0x00, 0x00, //0x0000629b jmp LBB31_90 - //0x000062a0 LBB31_89 - 0x4c, 0x89, 0xf8, //0x000062a0 movq %r15, %rax - 0x48, 0xf7, 0xd0, //0x000062a3 notq %rax - 0x48, 0x21, 0xd0, //0x000062a6 andq %rdx, %rax - 0x4c, 0x8d, 0x04, 0x00, //0x000062a9 leaq (%rax,%rax), %r8 - 0x4d, 0x09, 0xf8, //0x000062ad orq %r15, %r8 - 0x4c, 0x89, 0xc1, //0x000062b0 movq %r8, %rcx - 0x48, 0xf7, 0xd1, //0x000062b3 notq %rcx - 0x48, 0xbb, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x000062b6 movabsq $-6148914691236517206, %rbx - 0x48, 0x21, 0xda, //0x000062c0 andq %rbx, %rdx - 0x48, 0x21, 0xca, //0x000062c3 andq %rcx, %rdx - 0x31, 0xc9, //0x000062c6 xorl %ecx, %ecx - 0x48, 0x01, 0xc2, //0x000062c8 addq %rax, %rdx - 0x0f, 0x92, 0xc1, //0x000062cb setb %cl - 0x48, 0x89, 0x4d, 0xc8, //0x000062ce movq %rcx, $-56(%rbp) - 0x48, 0x01, 0xd2, //0x000062d2 addq %rdx, %rdx - 0x4c, 0x31, 0xd2, //0x000062d5 xorq %r10, %rdx - 0x4c, 0x21, 0xc2, //0x000062d8 andq %r8, %rdx - 0x48, 0xf7, 0xd2, //0x000062db notq %rdx - //0x000062de LBB31_90 - 0x66, 0x0f, 0x6f, 0xd6, //0x000062de movdqa %xmm6, %xmm2 - 0x66, 0x0f, 0x74, 0xd1, //0x000062e2 pcmpeqb %xmm1, %xmm2 - 0x66, 0x0f, 0xd7, 0xc2, //0x000062e6 pmovmskb %xmm2, %eax - 0x48, 0xc1, 0xe0, 0x30, //0x000062ea shlq $48, %rax - 0x66, 0x0f, 0x6f, 0xd7, //0x000062ee movdqa %xmm7, %xmm2 - 0x66, 0x0f, 0x74, 0xd1, //0x000062f2 pcmpeqb %xmm1, %xmm2 - 0x66, 0x0f, 0xd7, 0xca, //0x000062f6 pmovmskb %xmm2, %ecx - 0x48, 0xc1, 0xe1, 0x20, //0x000062fa shlq $32, %rcx - 0x48, 0x09, 0xc1, //0x000062fe orq %rax, %rcx - 0x66, 0x0f, 0x6f, 0xd5, //0x00006301 movdqa %xmm5, %xmm2 - 0x66, 0x0f, 0x74, 0xd1, //0x00006305 pcmpeqb %xmm1, %xmm2 - 0x66, 0x0f, 0xd7, 0xc2, //0x00006309 pmovmskb %xmm2, %eax - 0x48, 0xc1, 0xe0, 0x10, //0x0000630d shlq $16, %rax - 0x48, 0x09, 0xc8, //0x00006311 orq %rcx, %rax - 0x66, 0x0f, 0x6f, 0xd0, //0x00006314 movdqa %xmm0, %xmm2 - 0x66, 0x0f, 0x74, 0xd1, //0x00006318 pcmpeqb %xmm1, %xmm2 - 0x66, 0x0f, 0xd7, 0xca, //0x0000631c pmovmskb %xmm2, %ecx - 0x48, 0x09, 0xc1, //0x00006320 orq %rax, %rcx - 0x48, 0x21, 0xd1, //0x00006323 andq %rdx, %rcx - 0x66, 0x48, 0x0f, 0x6e, 0xd1, //0x00006326 movq %rcx, %xmm2 - 0x66, 0x41, 0x0f, 0x3a, 0x44, 0xd1, 0x00, //0x0000632b pclmulqdq $0, %xmm9, %xmm2 - 0x66, 0x49, 0x0f, 0x7e, 0xd7, //0x00006332 movq %xmm2, %r15 - 0x4d, 0x31, 0xef, //0x00006337 xorq %r13, %r15 - 0x66, 0x0f, 0x6f, 0xd0, //0x0000633a movdqa %xmm0, %xmm2 - 0x66, 0x0f, 0x74, 0xd3, //0x0000633e pcmpeqb %xmm3, %xmm2 - 0x66, 0x44, 0x0f, 0xd7, 0xc2, //0x00006342 pmovmskb %xmm2, %r8d - 0x66, 0x0f, 0x6f, 0xd5, //0x00006347 movdqa %xmm5, %xmm2 - 0x66, 0x0f, 0x74, 0xd3, //0x0000634b pcmpeqb %xmm3, %xmm2 - 0x66, 0x0f, 0xd7, 0xc2, //0x0000634f pmovmskb %xmm2, %eax - 0x66, 0x0f, 0x6f, 0xd7, //0x00006353 movdqa %xmm7, %xmm2 - 0x66, 0x0f, 0x74, 0xd3, //0x00006357 pcmpeqb %xmm3, %xmm2 - 0x66, 0x0f, 0xd7, 0xca, //0x0000635b pmovmskb %xmm2, %ecx - 0x66, 0x0f, 0x6f, 0xd6, //0x0000635f movdqa %xmm6, %xmm2 - 0x66, 0x0f, 0x74, 0xd3, //0x00006363 pcmpeqb %xmm3, %xmm2 - 0x66, 0x0f, 0xd7, 0xda, //0x00006367 pmovmskb %xmm2, %ebx - 0x48, 0xc1, 0xe3, 0x30, //0x0000636b shlq $48, %rbx - 0x48, 0xc1, 0xe1, 0x20, //0x0000636f shlq $32, %rcx - 0x48, 0x09, 0xd9, //0x00006373 orq %rbx, %rcx - 0x48, 0xc1, 0xe0, 0x10, //0x00006376 shlq $16, %rax - 0x48, 0x09, 0xc8, //0x0000637a orq %rcx, %rax - 0x49, 0x09, 0xc0, //0x0000637d orq %rax, %r8 - 0x4c, 0x89, 0xf8, //0x00006380 movq %r15, %rax - 0x48, 0xf7, 0xd0, //0x00006383 notq %rax - 0x49, 0x21, 0xc0, //0x00006386 andq %rax, %r8 - 0x66, 0x0f, 0x74, 0xc4, //0x00006389 pcmpeqb %xmm4, %xmm0 - 0x66, 0x0f, 0xd7, 0xc8, //0x0000638d pmovmskb %xmm0, %ecx - 0x66, 0x0f, 0x74, 0xec, //0x00006391 pcmpeqb %xmm4, %xmm5 - 0x66, 0x0f, 0xd7, 0xdd, //0x00006395 pmovmskb %xmm5, %ebx - 0x66, 0x0f, 0x74, 0xfc, //0x00006399 pcmpeqb %xmm4, %xmm7 - 0x66, 0x44, 0x0f, 0xd7, 0xd7, //0x0000639d pmovmskb %xmm7, %r10d - 0x66, 0x0f, 0x74, 0xf4, //0x000063a2 pcmpeqb %xmm4, %xmm6 - 0x66, 0x44, 0x0f, 0xd7, 0xee, //0x000063a6 pmovmskb %xmm6, %r13d - 0x49, 0xc1, 0xe5, 0x30, //0x000063ab shlq $48, %r13 - 0x49, 0xc1, 0xe2, 0x20, //0x000063af shlq $32, %r10 - 0x4d, 0x09, 0xea, //0x000063b3 orq %r13, %r10 - 0x48, 0xc1, 0xe3, 0x10, //0x000063b6 shlq $16, %rbx - 0x4c, 0x09, 0xd3, //0x000063ba orq %r10, %rbx - 0x48, 0x09, 0xd9, //0x000063bd orq %rbx, %rcx - 0x49, 0xba, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x000063c0 movabsq $6148914691236517205, %r10 - 0x49, 0xbd, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, //0x000063ca movabsq $3689348814741910323, %r13 - 0x48, 0x21, 0xc1, //0x000063d4 andq %rax, %rcx - 0x0f, 0x84, 0xd7, 0xfd, 0xff, 0xff, //0x000063d7 je LBB31_85 - 0x90, 0x90, 0x90, //0x000063dd .p2align 4, 0x90 - //0x000063e0 LBB31_91 - 0x48, 0x8d, 0x51, 0xff, //0x000063e0 leaq $-1(%rcx), %rdx - 0x48, 0x89, 0xd3, //0x000063e4 movq %rdx, %rbx - 0x4c, 0x21, 0xc3, //0x000063e7 andq %r8, %rbx - 0x48, 0x89, 0xd8, //0x000063ea movq %rbx, %rax - 0x48, 0xd1, 0xe8, //0x000063ed shrq %rax - 0x4c, 0x21, 0xd0, //0x000063f0 andq %r10, %rax - 0x48, 0x29, 0xc3, //0x000063f3 subq %rax, %rbx - 0x48, 0x89, 0xd8, //0x000063f6 movq %rbx, %rax - 0x4c, 0x21, 0xe8, //0x000063f9 andq %r13, %rax - 0x48, 0xc1, 0xeb, 0x02, //0x000063fc shrq $2, %rbx - 0x4c, 0x21, 0xeb, //0x00006400 andq %r13, %rbx - 0x48, 0x01, 0xc3, //0x00006403 addq %rax, %rbx - 0x48, 0x89, 0xd8, //0x00006406 movq %rbx, %rax - 0x48, 0xc1, 0xe8, 0x04, //0x00006409 shrq $4, %rax - 0x48, 0x01, 0xd8, //0x0000640d addq %rbx, %rax - 0x48, 0xbb, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, //0x00006410 movabsq $1085102592571150095, %rbx - 0x48, 0x21, 0xd8, //0x0000641a andq %rbx, %rax - 0x48, 0xbb, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, //0x0000641d movabsq $72340172838076673, %rbx - 0x48, 0x0f, 0xaf, 0xc3, //0x00006427 imulq %rbx, %rax - 0x48, 0xc1, 0xe8, 0x38, //0x0000642b shrq $56, %rax - 0x48, 0x03, 0x45, 0xc0, //0x0000642f addq $-64(%rbp), %rax - 0x4c, 0x39, 0xd8, //0x00006433 cmpq %r11, %rax - 0x0f, 0x86, 0x52, 0x01, 0x00, 0x00, //0x00006436 jbe LBB31_109 - 0x49, 0x83, 0xc3, 0x01, //0x0000643c addq $1, %r11 - 0x48, 0x21, 0xd1, //0x00006440 andq %rdx, %rcx - 0x0f, 0x85, 0x97, 0xff, 0xff, 0xff, //0x00006443 jne LBB31_91 - 0xe9, 0x66, 0xfd, 0xff, 0xff, //0x00006449 jmp LBB31_85 - //0x0000644e LBB31_93 - 0x48, 0x85, 0xc0, //0x0000644e testq %rax, %rax - 0x0f, 0x8e, 0xfb, 0x01, 0x00, 0x00, //0x00006451 jle LBB31_119 - 0x4c, 0x89, 0xf9, //0x00006457 movq %r15, %rcx - 0x44, 0x0f, 0x11, 0x45, 0xb0, //0x0000645a movups %xmm8, $-80(%rbp) - 0x44, 0x0f, 0x11, 0x45, 0xa0, //0x0000645f movups %xmm8, $-96(%rbp) - 0x44, 0x0f, 0x11, 0x45, 0x90, //0x00006464 movups %xmm8, $-112(%rbp) - 0x44, 0x0f, 0x11, 0x45, 0x80, //0x00006469 movups %xmm8, $-128(%rbp) - 0x44, 0x89, 0xc8, //0x0000646e movl %r9d, %eax - 0x25, 0xff, 0x0f, 0x00, 0x00, //0x00006471 andl $4095, %eax - 0x3d, 0xc1, 0x0f, 0x00, 0x00, //0x00006476 cmpl $4033, %eax - 0x0f, 0x82, 0x31, 0x00, 0x00, 0x00, //0x0000647b jb LBB31_97 - 0x48, 0x83, 0x7d, 0xd0, 0x20, //0x00006481 cmpq $32, $-48(%rbp) - 0x0f, 0x82, 0x38, 0x00, 0x00, 0x00, //0x00006486 jb LBB31_98 - 0x41, 0x0f, 0x10, 0x01, //0x0000648c movups (%r9), %xmm0 - 0x0f, 0x11, 0x45, 0x80, //0x00006490 movups %xmm0, $-128(%rbp) - 0x41, 0x0f, 0x10, 0x41, 0x10, //0x00006494 movups $16(%r9), %xmm0 - 0x0f, 0x11, 0x45, 0x90, //0x00006499 movups %xmm0, $-112(%rbp) - 0x49, 0x83, 0xc1, 0x20, //0x0000649d addq $32, %r9 - 0x48, 0x8b, 0x45, 0xd0, //0x000064a1 movq $-48(%rbp), %rax - 0x48, 0x8d, 0x50, 0xe0, //0x000064a5 leaq $-32(%rax), %rdx - 0x4c, 0x8d, 0x45, 0xa0, //0x000064a9 leaq $-96(%rbp), %r8 - 0xe9, 0x1a, 0x00, 0x00, 0x00, //0x000064ad jmp LBB31_99 - //0x000064b2 LBB31_97 - 0x49, 0xba, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x000064b2 movabsq $6148914691236517205, %r10 - 0x49, 0x89, 0xcf, //0x000064bc movq %rcx, %r15 - 0xe9, 0x5e, 0xfd, 0xff, 0xff, //0x000064bf jmp LBB31_87 - //0x000064c4 LBB31_98 - 0x4c, 0x8d, 0x45, 0x80, //0x000064c4 leaq $-128(%rbp), %r8 - 0x48, 0x8b, 0x55, 0xd0, //0x000064c8 movq $-48(%rbp), %rdx - //0x000064cc LBB31_99 - 0x48, 0x83, 0xfa, 0x10, //0x000064cc cmpq $16, %rdx - 0x0f, 0x82, 0x49, 0x00, 0x00, 0x00, //0x000064d0 jb LBB31_100 - 0x41, 0x0f, 0x10, 0x01, //0x000064d6 movups (%r9), %xmm0 - 0x41, 0x0f, 0x11, 0x00, //0x000064da movups %xmm0, (%r8) - 0x49, 0x83, 0xc1, 0x10, //0x000064de addq $16, %r9 - 0x49, 0x83, 0xc0, 0x10, //0x000064e2 addq $16, %r8 - 0x48, 0x83, 0xc2, 0xf0, //0x000064e6 addq $-16, %rdx - 0x48, 0x83, 0xfa, 0x08, //0x000064ea cmpq $8, %rdx - 0x0f, 0x83, 0x35, 0x00, 0x00, 0x00, //0x000064ee jae LBB31_107 - //0x000064f4 LBB31_101 - 0x48, 0x83, 0xfa, 0x04, //0x000064f4 cmpq $4, %rdx - 0x0f, 0x8c, 0x47, 0x00, 0x00, 0x00, //0x000064f8 jl LBB31_102 - //0x000064fe LBB31_108 - 0x41, 0x8b, 0x01, //0x000064fe movl (%r9), %eax - 0x41, 0x89, 0x00, //0x00006501 movl %eax, (%r8) - 0x49, 0x83, 0xc1, 0x04, //0x00006504 addq $4, %r9 - 0x49, 0x83, 0xc0, 0x04, //0x00006508 addq $4, %r8 - 0x48, 0x83, 0xc2, 0xfc, //0x0000650c addq $-4, %rdx - 0x48, 0x83, 0xfa, 0x02, //0x00006510 cmpq $2, %rdx - 0x0f, 0x83, 0x35, 0x00, 0x00, 0x00, //0x00006514 jae LBB31_103 - 0xe9, 0x44, 0x00, 0x00, 0x00, //0x0000651a jmp LBB31_104 - //0x0000651f LBB31_100 - 0x48, 0x83, 0xfa, 0x08, //0x0000651f cmpq $8, %rdx - 0x0f, 0x82, 0xcb, 0xff, 0xff, 0xff, //0x00006523 jb LBB31_101 - //0x00006529 LBB31_107 - 0x49, 0x8b, 0x01, //0x00006529 movq (%r9), %rax - 0x49, 0x89, 0x00, //0x0000652c movq %rax, (%r8) - 0x49, 0x83, 0xc1, 0x08, //0x0000652f addq $8, %r9 - 0x49, 0x83, 0xc0, 0x08, //0x00006533 addq $8, %r8 - 0x48, 0x83, 0xc2, 0xf8, //0x00006537 addq $-8, %rdx - 0x48, 0x83, 0xfa, 0x04, //0x0000653b cmpq $4, %rdx - 0x0f, 0x8d, 0xb9, 0xff, 0xff, 0xff, //0x0000653f jge LBB31_108 - //0x00006545 LBB31_102 - 0x48, 0x83, 0xfa, 0x02, //0x00006545 cmpq $2, %rdx - 0x0f, 0x82, 0x14, 0x00, 0x00, 0x00, //0x00006549 jb LBB31_104 - //0x0000654f LBB31_103 - 0x41, 0x0f, 0xb7, 0x01, //0x0000654f movzwl (%r9), %eax - 0x66, 0x41, 0x89, 0x00, //0x00006553 movw %ax, (%r8) - 0x49, 0x83, 0xc1, 0x02, //0x00006557 addq $2, %r9 - 0x49, 0x83, 0xc0, 0x02, //0x0000655b addq $2, %r8 - 0x48, 0x83, 0xc2, 0xfe, //0x0000655f addq $-2, %rdx - //0x00006563 LBB31_104 - 0x4c, 0x89, 0xc8, //0x00006563 movq %r9, %rax - 0x4c, 0x8d, 0x4d, 0x80, //0x00006566 leaq $-128(%rbp), %r9 - 0x48, 0x85, 0xd2, //0x0000656a testq %rdx, %rdx - 0x49, 0xba, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x0000656d movabsq $6148914691236517205, %r10 - 0x49, 0x89, 0xcf, //0x00006577 movq %rcx, %r15 - 0x0f, 0x84, 0xa2, 0xfc, 0xff, 0xff, //0x0000657a je LBB31_87 - 0x8a, 0x00, //0x00006580 movb (%rax), %al - 0x41, 0x88, 0x00, //0x00006582 movb %al, (%r8) - 0x4c, 0x8d, 0x4d, 0x80, //0x00006585 leaq $-128(%rbp), %r9 - 0xe9, 0x94, 0xfc, 0xff, 0xff, //0x00006589 jmp LBB31_87 - //0x0000658e LBB31_109 - 0x48, 0x8b, 0x47, 0x08, //0x0000658e movq $8(%rdi), %rax - 0x48, 0x0f, 0xbc, 0xc9, //0x00006592 bsfq %rcx, %rcx - 0x48, 0x2b, 0x4d, 0xd0, //0x00006596 subq $-48(%rbp), %rcx - 0x48, 0x01, 0xc8, //0x0000659a addq %rcx, %rax - 0x48, 0x83, 0xc0, 0x01, //0x0000659d addq $1, %rax - 0x48, 0x89, 0x06, //0x000065a1 movq %rax, (%rsi) - 0x48, 0x8b, 0x4f, 0x08, //0x000065a4 movq $8(%rdi), %rcx - 0x48, 0x39, 0xc8, //0x000065a8 cmpq %rcx, %rax - 0x48, 0x0f, 0x47, 0xc1, //0x000065ab cmovaq %rcx, %rax - 0x48, 0x89, 0x06, //0x000065af movq %rax, (%rsi) - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000065b2 movq $-1, %rax - 0x4c, 0x0f, 0x47, 0xe0, //0x000065b9 cmovaq %rax, %r12 - 0xe9, 0x00, 0xf6, 0xff, 0xff, //0x000065bd jmp LBB31_43 - //0x000065c2 LBB31_110 - 0x0f, 0xbc, 0xc0, //0x000065c2 bsfl %eax, %eax - 0x4c, 0x01, 0xe0, //0x000065c5 addq %r12, %rax - 0x4c, 0x01, 0xf8, //0x000065c8 addq %r15, %rax - 0x48, 0x83, 0xc0, 0x02, //0x000065cb addq $2, %rax - 0xe9, 0xeb, 0xf5, 0xff, 0xff, //0x000065cf jmp LBB31_42 - //0x000065d4 LBB31_111 - 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x000065d4 movq $-2, %rax - 0xb9, 0x02, 0x00, 0x00, 0x00, //0x000065db movl $2, %ecx - 0x48, 0x01, 0xca, //0x000065e0 addq %rcx, %rdx - 0x49, 0x01, 0xc7, //0x000065e3 addq %rax, %r15 - 0x0f, 0x8e, 0xd9, 0xf5, 0xff, 0xff, //0x000065e6 jle LBB31_44 - //0x000065ec LBB31_112 - 0x0f, 0xb6, 0x02, //0x000065ec movzbl (%rdx), %eax - 0x3c, 0x5c, //0x000065ef cmpb $92, %al - 0x0f, 0x84, 0xdd, 0xff, 0xff, 0xff, //0x000065f1 je LBB31_111 - 0x3c, 0x22, //0x000065f7 cmpb $34, %al - 0x0f, 0x84, 0x2b, 0x00, 0x00, 0x00, //0x000065f9 je LBB31_116 - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000065ff movq $-1, %rax - 0xb9, 0x01, 0x00, 0x00, 0x00, //0x00006606 movl $1, %ecx - 0x48, 0x01, 0xca, //0x0000660b addq %rcx, %rdx - 0x49, 0x01, 0xc7, //0x0000660e addq %rax, %r15 - 0x0f, 0x8f, 0xd5, 0xff, 0xff, 0xff, //0x00006611 jg LBB31_112 - 0xe9, 0xa9, 0xf5, 0xff, 0xff, //0x00006617 jmp LBB31_44 - //0x0000661c LBB31_115 - 0x4c, 0x29, 0xca, //0x0000661c subq %r9, %rdx - 0x48, 0x01, 0xc2, //0x0000661f addq %rax, %rdx - 0x48, 0x89, 0x16, //0x00006622 movq %rdx, (%rsi) - 0xe9, 0x98, 0xf5, 0xff, 0xff, //0x00006625 jmp LBB31_43 - //0x0000662a LBB31_116 - 0x4c, 0x29, 0xca, //0x0000662a subq %r9, %rdx - 0x48, 0x83, 0xc2, 0x01, //0x0000662d addq $1, %rdx - 0x48, 0x89, 0x16, //0x00006631 movq %rdx, (%rsi) - 0xe9, 0x89, 0xf5, 0xff, 0xff, //0x00006634 jmp LBB31_43 - //0x00006639 LBB31_117 - 0x4c, 0x01, 0xca, //0x00006639 addq %r9, %rdx - 0x48, 0x85, 0xc9, //0x0000663c testq %rcx, %rcx - 0x0f, 0x85, 0x30, 0xf5, 0xff, 0xff, //0x0000663f jne LBB31_34 - 0xe9, 0x60, 0xf5, 0xff, 0xff, //0x00006645 jmp LBB31_40 - //0x0000664a LBB31_118 - 0x4c, 0x01, 0xca, //0x0000664a addq %r9, %rdx - 0xe9, 0xbb, 0xf6, 0xff, 0xff, //0x0000664d jmp LBB31_56 - //0x00006652 LBB31_119 - 0x48, 0x8b, 0x47, 0x08, //0x00006652 movq $8(%rdi), %rax - 0x48, 0x89, 0x06, //0x00006656 movq %rax, (%rsi) - 0xe9, 0x67, 0xf5, 0xff, 0xff, //0x00006659 jmp LBB31_44 - //0x0000665e LBB31_120 - 0x49, 0x8d, 0x40, 0xff, //0x0000665e leaq $-1(%r8), %rax - 0x4c, 0x39, 0xf8, //0x00006662 cmpq %r15, %rax - 0x0f, 0x84, 0x5a, 0xf5, 0xff, 0xff, //0x00006665 je LBB31_44 - 0x4b, 0x8d, 0x14, 0x17, //0x0000666b leaq (%r15,%r10), %rdx - 0x48, 0x83, 0xc2, 0x02, //0x0000666f addq $2, %rdx - 0x4d, 0x29, 0xf8, //0x00006673 subq %r15, %r8 - 0x49, 0x83, 0xc0, 0xfe, //0x00006676 addq $-2, %r8 - 0x4d, 0x89, 0xc7, //0x0000667a movq %r8, %r15 - 0xe9, 0x8b, 0xf6, 0xff, 0xff, //0x0000667d jmp LBB31_56 - 0x90, 0x90, //0x00006682 .p2align 2, 0x90 - // // .set L31_0_set_44, LBB31_44-LJTI31_0 - // // .set L31_0_set_46, LBB31_46-LJTI31_0 - // // .set L31_0_set_47, LBB31_47-LJTI31_0 - // // .set L31_0_set_29, LBB31_29-LJTI31_0 - // // .set L31_0_set_58, LBB31_58-LJTI31_0 - // // .set L31_0_set_83, LBB31_83-LJTI31_0 - // // .set L31_0_set_45, LBB31_45-LJTI31_0 - // // .set L31_0_set_84, LBB31_84-LJTI31_0 - //0x00006684 LJTI31_0 - 0x41, 0xf5, 0xff, 0xff, //0x00006684 .long L31_0_set_44 - 0x67, 0xf5, 0xff, 0xff, //0x00006688 .long L31_0_set_46 - 0x67, 0xf5, 0xff, 0xff, //0x0000668c .long L31_0_set_46 - 0x67, 0xf5, 0xff, 0xff, //0x00006690 .long L31_0_set_46 - 0x67, 0xf5, 0xff, 0xff, //0x00006694 .long L31_0_set_46 - 0x67, 0xf5, 0xff, 0xff, //0x00006698 .long L31_0_set_46 - 0x67, 0xf5, 0xff, 0xff, //0x0000669c .long L31_0_set_46 - 0x67, 0xf5, 0xff, 0xff, //0x000066a0 .long L31_0_set_46 - 0x67, 0xf5, 0xff, 0xff, //0x000066a4 .long L31_0_set_46 - 0x67, 0xf5, 0xff, 0xff, //0x000066a8 .long L31_0_set_46 - 0x67, 0xf5, 0xff, 0xff, //0x000066ac .long L31_0_set_46 - 0x67, 0xf5, 0xff, 0xff, //0x000066b0 .long L31_0_set_46 - 0x67, 0xf5, 0xff, 0xff, //0x000066b4 .long L31_0_set_46 - 0x67, 0xf5, 0xff, 0xff, //0x000066b8 .long L31_0_set_46 - 0x67, 0xf5, 0xff, 0xff, //0x000066bc .long L31_0_set_46 - 0x67, 0xf5, 0xff, 0xff, //0x000066c0 .long L31_0_set_46 - 0x67, 0xf5, 0xff, 0xff, //0x000066c4 .long L31_0_set_46 - 0x67, 0xf5, 0xff, 0xff, //0x000066c8 .long L31_0_set_46 - 0x67, 0xf5, 0xff, 0xff, //0x000066cc .long L31_0_set_46 - 0x67, 0xf5, 0xff, 0xff, //0x000066d0 .long L31_0_set_46 - 0x67, 0xf5, 0xff, 0xff, //0x000066d4 .long L31_0_set_46 - 0x67, 0xf5, 0xff, 0xff, //0x000066d8 .long L31_0_set_46 - 0x67, 0xf5, 0xff, 0xff, //0x000066dc .long L31_0_set_46 - 0x67, 0xf5, 0xff, 0xff, //0x000066e0 .long L31_0_set_46 - 0x67, 0xf5, 0xff, 0xff, //0x000066e4 .long L31_0_set_46 - 0x67, 0xf5, 0xff, 0xff, //0x000066e8 .long L31_0_set_46 - 0x67, 0xf5, 0xff, 0xff, //0x000066ec .long L31_0_set_46 - 0x67, 0xf5, 0xff, 0xff, //0x000066f0 .long L31_0_set_46 - 0x67, 0xf5, 0xff, 0xff, //0x000066f4 .long L31_0_set_46 - 0x67, 0xf5, 0xff, 0xff, //0x000066f8 .long L31_0_set_46 - 0x67, 0xf5, 0xff, 0xff, //0x000066fc .long L31_0_set_46 - 0x67, 0xf5, 0xff, 0xff, //0x00006700 .long L31_0_set_46 - 0x67, 0xf5, 0xff, 0xff, //0x00006704 .long L31_0_set_46 - 0x67, 0xf5, 0xff, 0xff, //0x00006708 .long L31_0_set_46 - 0x76, 0xf5, 0xff, 0xff, //0x0000670c .long L31_0_set_47 - 0x67, 0xf5, 0xff, 0xff, //0x00006710 .long L31_0_set_46 - 0x67, 0xf5, 0xff, 0xff, //0x00006714 .long L31_0_set_46 - 0x67, 0xf5, 0xff, 0xff, //0x00006718 .long L31_0_set_46 - 0x67, 0xf5, 0xff, 0xff, //0x0000671c .long L31_0_set_46 - 0x67, 0xf5, 0xff, 0xff, //0x00006720 .long L31_0_set_46 - 0x67, 0xf5, 0xff, 0xff, //0x00006724 .long L31_0_set_46 - 0x67, 0xf5, 0xff, 0xff, //0x00006728 .long L31_0_set_46 - 0x67, 0xf5, 0xff, 0xff, //0x0000672c .long L31_0_set_46 - 0x67, 0xf5, 0xff, 0xff, //0x00006730 .long L31_0_set_46 - 0x67, 0xf5, 0xff, 0xff, //0x00006734 .long L31_0_set_46 - 0x61, 0xf4, 0xff, 0xff, //0x00006738 .long L31_0_set_29 - 0x67, 0xf5, 0xff, 0xff, //0x0000673c .long L31_0_set_46 - 0x67, 0xf5, 0xff, 0xff, //0x00006740 .long L31_0_set_46 - 0x61, 0xf4, 0xff, 0xff, //0x00006744 .long L31_0_set_29 - 0x61, 0xf4, 0xff, 0xff, //0x00006748 .long L31_0_set_29 - 0x61, 0xf4, 0xff, 0xff, //0x0000674c .long L31_0_set_29 - 0x61, 0xf4, 0xff, 0xff, //0x00006750 .long L31_0_set_29 - 0x61, 0xf4, 0xff, 0xff, //0x00006754 .long L31_0_set_29 - 0x61, 0xf4, 0xff, 0xff, //0x00006758 .long L31_0_set_29 - 0x61, 0xf4, 0xff, 0xff, //0x0000675c .long L31_0_set_29 - 0x61, 0xf4, 0xff, 0xff, //0x00006760 .long L31_0_set_29 - 0x61, 0xf4, 0xff, 0xff, //0x00006764 .long L31_0_set_29 - 0x61, 0xf4, 0xff, 0xff, //0x00006768 .long L31_0_set_29 - 0x67, 0xf5, 0xff, 0xff, //0x0000676c .long L31_0_set_46 - 0x67, 0xf5, 0xff, 0xff, //0x00006770 .long L31_0_set_46 - 0x67, 0xf5, 0xff, 0xff, //0x00006774 .long L31_0_set_46 - 0x67, 0xf5, 0xff, 0xff, //0x00006778 .long L31_0_set_46 - 0x67, 0xf5, 0xff, 0xff, //0x0000677c .long L31_0_set_46 - 0x67, 0xf5, 0xff, 0xff, //0x00006780 .long L31_0_set_46 - 0x67, 0xf5, 0xff, 0xff, //0x00006784 .long L31_0_set_46 - 0x67, 0xf5, 0xff, 0xff, //0x00006788 .long L31_0_set_46 - 0x67, 0xf5, 0xff, 0xff, //0x0000678c .long L31_0_set_46 - 0x67, 0xf5, 0xff, 0xff, //0x00006790 .long L31_0_set_46 - 0x67, 0xf5, 0xff, 0xff, //0x00006794 .long L31_0_set_46 - 0x67, 0xf5, 0xff, 0xff, //0x00006798 .long L31_0_set_46 - 0x67, 0xf5, 0xff, 0xff, //0x0000679c .long L31_0_set_46 - 0x67, 0xf5, 0xff, 0xff, //0x000067a0 .long L31_0_set_46 - 0x67, 0xf5, 0xff, 0xff, //0x000067a4 .long L31_0_set_46 - 0x67, 0xf5, 0xff, 0xff, //0x000067a8 .long L31_0_set_46 - 0x67, 0xf5, 0xff, 0xff, //0x000067ac .long L31_0_set_46 - 0x67, 0xf5, 0xff, 0xff, //0x000067b0 .long L31_0_set_46 - 0x67, 0xf5, 0xff, 0xff, //0x000067b4 .long L31_0_set_46 - 0x67, 0xf5, 0xff, 0xff, //0x000067b8 .long L31_0_set_46 - 0x67, 0xf5, 0xff, 0xff, //0x000067bc .long L31_0_set_46 - 0x67, 0xf5, 0xff, 0xff, //0x000067c0 .long L31_0_set_46 - 0x67, 0xf5, 0xff, 0xff, //0x000067c4 .long L31_0_set_46 - 0x67, 0xf5, 0xff, 0xff, //0x000067c8 .long L31_0_set_46 - 0x67, 0xf5, 0xff, 0xff, //0x000067cc .long L31_0_set_46 - 0x67, 0xf5, 0xff, 0xff, //0x000067d0 .long L31_0_set_46 - 0x67, 0xf5, 0xff, 0xff, //0x000067d4 .long L31_0_set_46 - 0x67, 0xf5, 0xff, 0xff, //0x000067d8 .long L31_0_set_46 - 0x67, 0xf5, 0xff, 0xff, //0x000067dc .long L31_0_set_46 - 0x67, 0xf5, 0xff, 0xff, //0x000067e0 .long L31_0_set_46 - 0x67, 0xf5, 0xff, 0xff, //0x000067e4 .long L31_0_set_46 - 0x67, 0xf5, 0xff, 0xff, //0x000067e8 .long L31_0_set_46 - 0x67, 0xf5, 0xff, 0xff, //0x000067ec .long L31_0_set_46 - 0x9e, 0xf6, 0xff, 0xff, //0x000067f0 .long L31_0_set_58 - 0x67, 0xf5, 0xff, 0xff, //0x000067f4 .long L31_0_set_46 - 0x67, 0xf5, 0xff, 0xff, //0x000067f8 .long L31_0_set_46 - 0x67, 0xf5, 0xff, 0xff, //0x000067fc .long L31_0_set_46 - 0x67, 0xf5, 0xff, 0xff, //0x00006800 .long L31_0_set_46 - 0x67, 0xf5, 0xff, 0xff, //0x00006804 .long L31_0_set_46 - 0x67, 0xf5, 0xff, 0xff, //0x00006808 .long L31_0_set_46 - 0x67, 0xf5, 0xff, 0xff, //0x0000680c .long L31_0_set_46 - 0x67, 0xf5, 0xff, 0xff, //0x00006810 .long L31_0_set_46 - 0x67, 0xf5, 0xff, 0xff, //0x00006814 .long L31_0_set_46 - 0x67, 0xf5, 0xff, 0xff, //0x00006818 .long L31_0_set_46 - 0xca, 0xfa, 0xff, 0xff, //0x0000681c .long L31_0_set_83 - 0x67, 0xf5, 0xff, 0xff, //0x00006820 .long L31_0_set_46 - 0x67, 0xf5, 0xff, 0xff, //0x00006824 .long L31_0_set_46 - 0x67, 0xf5, 0xff, 0xff, //0x00006828 .long L31_0_set_46 - 0x67, 0xf5, 0xff, 0xff, //0x0000682c .long L31_0_set_46 - 0x67, 0xf5, 0xff, 0xff, //0x00006830 .long L31_0_set_46 - 0x67, 0xf5, 0xff, 0xff, //0x00006834 .long L31_0_set_46 - 0x67, 0xf5, 0xff, 0xff, //0x00006838 .long L31_0_set_46 - 0x53, 0xf5, 0xff, 0xff, //0x0000683c .long L31_0_set_45 - 0x67, 0xf5, 0xff, 0xff, //0x00006840 .long L31_0_set_46 - 0x67, 0xf5, 0xff, 0xff, //0x00006844 .long L31_0_set_46 - 0x67, 0xf5, 0xff, 0xff, //0x00006848 .long L31_0_set_46 - 0x67, 0xf5, 0xff, 0xff, //0x0000684c .long L31_0_set_46 - 0x67, 0xf5, 0xff, 0xff, //0x00006850 .long L31_0_set_46 - 0x53, 0xf5, 0xff, 0xff, //0x00006854 .long L31_0_set_45 - 0x67, 0xf5, 0xff, 0xff, //0x00006858 .long L31_0_set_46 - 0x67, 0xf5, 0xff, 0xff, //0x0000685c .long L31_0_set_46 - 0x67, 0xf5, 0xff, 0xff, //0x00006860 .long L31_0_set_46 - 0x67, 0xf5, 0xff, 0xff, //0x00006864 .long L31_0_set_46 - 0x67, 0xf5, 0xff, 0xff, //0x00006868 .long L31_0_set_46 - 0x67, 0xf5, 0xff, 0xff, //0x0000686c .long L31_0_set_46 - 0xde, 0xfa, 0xff, 0xff, //0x00006870 .long L31_0_set_84 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006874 .p2align 4, 0x00 - //0x00006880 LCPI32_0 - 0x01, 0x00, 0x00, 0x00, //0x00006880 .long 1 - 0x00, 0x00, 0x00, 0x00, //0x00006884 .long 0 - 0x00, 0x00, 0x00, 0x00, //0x00006888 .long 0 - 0x00, 0x00, 0x00, 0x00, //0x0000688c .long 0 - //0x00006890 .p2align 4, 0x90 - //0x00006890 _get_by_path - 0x55, //0x00006890 pushq %rbp - 0x48, 0x89, 0xe5, //0x00006891 movq %rsp, %rbp - 0x41, 0x57, //0x00006894 pushq %r15 - 0x41, 0x56, //0x00006896 pushq %r14 - 0x41, 0x55, //0x00006898 pushq %r13 - 0x41, 0x54, //0x0000689a pushq %r12 - 0x53, //0x0000689c pushq %rbx - 0x48, 0x83, 0xec, 0x38, //0x0000689d subq $56, %rsp - 0x49, 0x89, 0xf5, //0x000068a1 movq %rsi, %r13 - 0x49, 0x89, 0xfc, //0x000068a4 movq %rdi, %r12 - 0x48, 0x8b, 0x42, 0x08, //0x000068a7 movq $8(%rdx), %rax - 0x48, 0x85, 0xc0, //0x000068ab testq %rax, %rax - 0x0f, 0x84, 0x0b, 0x0c, 0x00, 0x00, //0x000068ae je LBB32_221 - 0x4c, 0x8b, 0x0a, //0x000068b4 movq (%rdx), %r9 - 0x48, 0xc1, 0xe0, 0x04, //0x000068b7 shlq $4, %rax - 0x4c, 0x01, 0xc8, //0x000068bb addq %r9, %rax - 0x48, 0x89, 0x45, 0xa8, //0x000068be movq %rax, $-88(%rbp) - 0x49, 0x8b, 0x14, 0x24, //0x000068c2 movq (%r12), %rdx - 0x49, 0x8b, 0x75, 0x00, //0x000068c6 movq (%r13), %rsi - 0x49, 0xba, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x000068ca movabsq $4294977024, %r10 - 0x48, 0x89, 0x4d, 0xa0, //0x000068d4 movq %rcx, $-96(%rbp) - //0x000068d8 LBB32_2 - 0x4d, 0x8b, 0x44, 0x24, 0x08, //0x000068d8 movq $8(%r12), %r8 - 0x4c, 0x39, 0xc6, //0x000068dd cmpq %r8, %rsi - 0x0f, 0x83, 0x2a, 0x00, 0x00, 0x00, //0x000068e0 jae LBB32_7 - 0x8a, 0x04, 0x32, //0x000068e6 movb (%rdx,%rsi), %al - 0x3c, 0x0d, //0x000068e9 cmpb $13, %al - 0x0f, 0x84, 0x1f, 0x00, 0x00, 0x00, //0x000068eb je LBB32_7 - 0x3c, 0x20, //0x000068f1 cmpb $32, %al - 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x000068f3 je LBB32_7 - 0x04, 0xf7, //0x000068f9 addb $-9, %al - 0x3c, 0x01, //0x000068fb cmpb $1, %al - 0x0f, 0x86, 0x0d, 0x00, 0x00, 0x00, //0x000068fd jbe LBB32_7 - 0x48, 0x89, 0xf7, //0x00006903 movq %rsi, %rdi - 0xe9, 0x14, 0x01, 0x00, 0x00, //0x00006906 jmp LBB32_29 - 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000690b .p2align 4, 0x90 - //0x00006910 LBB32_7 - 0x48, 0x8d, 0x7e, 0x01, //0x00006910 leaq $1(%rsi), %rdi + 0x48, 0x39, 0xd6, //0x00000014 cmpq %rdx, %rsi + 0x0f, 0x84, 0x4e, 0x00, 0x00, 0x00, //0x00000017 je LBB0_1 + 0x4c, 0x8d, 0x04, 0x37, //0x0000001d leaq (%rdi,%rsi), %r8 + 0x48, 0x8d, 0x44, 0x3a, 0x01, //0x00000021 leaq $1(%rdx,%rdi), %rax + 0x48, 0x29, 0xf2, //0x00000026 subq %rsi, %rdx + 0x48, 0xbe, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00000029 movabsq $4294977024, %rsi + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000033 .p2align 4, 0x90 + //0x00000040 LBB0_3 + 0x0f, 0xbe, 0x48, 0xff, //0x00000040 movsbl $-1(%rax), %ecx + 0x83, 0xf9, 0x20, //0x00000044 cmpl $32, %ecx + 0x0f, 0x87, 0x2c, 0x00, 0x00, 0x00, //0x00000047 ja LBB0_5 + 0x48, 0x0f, 0xa3, 0xce, //0x0000004d btq %rcx, %rsi + 0x0f, 0x83, 0x22, 0x00, 0x00, 0x00, //0x00000051 jae LBB0_5 + 0x48, 0xff, 0xc0, //0x00000057 incq %rax + 0x48, 0xff, 0xc2, //0x0000005a incq %rdx + 0x0f, 0x85, 0xdd, 0xff, 0xff, 0xff, //0x0000005d jne LBB0_3 + 0x49, 0x29, 0xf8, //0x00000063 subq %rdi, %r8 + 0x4c, 0x89, 0xc0, //0x00000066 movq %r8, %rax + 0x5d, //0x00000069 popq %rbp + 0xc3, //0x0000006a retq + //0x0000006b LBB0_1 + 0x48, 0x01, 0xfa, //0x0000006b addq %rdi, %rdx + 0x49, 0x89, 0xd0, //0x0000006e movq %rdx, %r8 + 0x49, 0x29, 0xf8, //0x00000071 subq %rdi, %r8 + 0x4c, 0x89, 0xc0, //0x00000074 movq %r8, %rax + 0x5d, //0x00000077 popq %rbp + 0xc3, //0x00000078 retq + //0x00000079 LBB0_5 + 0x48, 0xf7, 0xd7, //0x00000079 notq %rdi + 0x48, 0x01, 0xf8, //0x0000007c addq %rdi, %rax + 0x5d, //0x0000007f popq %rbp + 0xc3, //0x00000080 retq + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000081 .p2align 4, 0x00 + //0x00000090 LCPI1_0 + 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, //0x00000090 QUAD $0x3030303030303030; QUAD $0x3030303030303030 // .space 16, '0000000000000000' + //0x000000a0 .p2align 4, 0x90 + //0x000000a0 _f64toa + 0x55, //0x000000a0 pushq %rbp + 0x48, 0x89, 0xe5, //0x000000a1 movq %rsp, %rbp + 0x41, 0x57, //0x000000a4 pushq %r15 + 0x41, 0x56, //0x000000a6 pushq %r14 + 0x41, 0x55, //0x000000a8 pushq %r13 + 0x41, 0x54, //0x000000aa pushq %r12 + 0x53, //0x000000ac pushq %rbx + 0x50, //0x000000ad pushq %rax + 0x66, 0x48, 0x0f, 0x7e, 0xc2, //0x000000ae movq %xmm0, %rdx + 0x48, 0x89, 0xd0, //0x000000b3 movq %rdx, %rax + 0x48, 0xc1, 0xe8, 0x34, //0x000000b6 shrq $52, %rax + 0x25, 0xff, 0x07, 0x00, 0x00, //0x000000ba andl $2047, %eax + 0x3d, 0xff, 0x07, 0x00, 0x00, //0x000000bf cmpl $2047, %eax + 0x0f, 0x84, 0x99, 0x0a, 0x00, 0x00, //0x000000c4 je LBB1_114 + 0x49, 0x89, 0xfe, //0x000000ca movq %rdi, %r14 + 0xc6, 0x07, 0x2d, //0x000000cd movb $45, (%rdi) + 0x49, 0x89, 0xd4, //0x000000d0 movq %rdx, %r12 + 0x49, 0xc1, 0xec, 0x3f, //0x000000d3 shrq $63, %r12 + 0x4e, 0x8d, 0x3c, 0x27, //0x000000d7 leaq (%rdi,%r12), %r15 + 0x48, 0x8d, 0x0c, 0x55, 0x00, 0x00, 0x00, 0x00, //0x000000db leaq (,%rdx,2), %rcx + 0x48, 0x85, 0xc9, //0x000000e3 testq %rcx, %rcx + 0x0f, 0x84, 0x75, 0x02, 0x00, 0x00, //0x000000e6 je LBB1_19 + 0x48, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, //0x000000ec movabsq $4503599627370495, %rdi + 0x48, 0x21, 0xfa, //0x000000f6 andq %rdi, %rdx + 0x85, 0xc0, //0x000000f9 testl %eax, %eax + 0x0f, 0x84, 0x69, 0x0a, 0x00, 0x00, //0x000000fb je LBB1_115 + 0x48, 0xff, 0xc7, //0x00000101 incq %rdi + 0x48, 0x09, 0xd7, //0x00000104 orq %rdx, %rdi + 0x8d, 0x98, 0xcd, 0xfb, 0xff, 0xff, //0x00000107 leal $-1075(%rax), %ebx + 0x8d, 0x88, 0x01, 0xfc, 0xff, 0xff, //0x0000010d leal $-1023(%rax), %ecx + 0x83, 0xf9, 0x34, //0x00000113 cmpl $52, %ecx + 0x0f, 0x87, 0x1d, 0x00, 0x00, 0x00, //0x00000116 ja LBB1_5 + 0xb9, 0x33, 0x04, 0x00, 0x00, //0x0000011c movl $1075, %ecx + 0x29, 0xc1, //0x00000121 subl %eax, %ecx + 0x48, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x00000123 movq $-1, %rsi + 0x48, 0xd3, 0xe6, //0x0000012a shlq %cl, %rsi + 0x48, 0xf7, 0xd6, //0x0000012d notq %rsi + 0x48, 0x85, 0xf7, //0x00000130 testq %rsi, %rdi + 0x0f, 0x84, 0x0d, 0x04, 0x00, 0x00, //0x00000133 je LBB1_43 + //0x00000139 LBB1_5 + 0x48, 0x85, 0xd2, //0x00000139 testq %rdx, %rdx + 0x0f, 0x94, 0xc1, //0x0000013c sete %cl + 0x83, 0xf8, 0x01, //0x0000013f cmpl $1, %eax + 0x0f, 0x97, 0xc0, //0x00000142 seta %al + 0x20, 0xc8, //0x00000145 andb %cl, %al + 0x0f, 0xb6, 0xc0, //0x00000147 movzbl %al, %eax + 0x48, 0x8d, 0x74, 0xb8, 0xfe, //0x0000014a leaq $-2(%rax,%rdi,4), %rsi + 0x44, 0x69, 0xcb, 0x13, 0x44, 0x13, 0x00, //0x0000014f imull $1262611, %ebx, %r9d + 0x31, 0xc9, //0x00000156 xorl %ecx, %ecx + 0x84, 0xc0, //0x00000158 testb %al, %al + 0xb8, 0xff, 0xfe, 0x07, 0x00, //0x0000015a movl $524031, %eax + 0x0f, 0x44, 0xc1, //0x0000015f cmovel %ecx, %eax + 0x41, 0x29, 0xc1, //0x00000162 subl %eax, %r9d + 0x41, 0xc1, 0xf9, 0x16, //0x00000165 sarl $22, %r9d + 0x41, 0x69, 0xc9, 0xb1, 0x6c, 0xe5, 0xff, //0x00000169 imull $-1741647, %r9d, %ecx + 0xc1, 0xe9, 0x13, //0x00000170 shrl $19, %ecx + 0x01, 0xd9, //0x00000173 addl %ebx, %ecx + 0xb8, 0x24, 0x01, 0x00, 0x00, //0x00000175 movl $292, %eax + 0x44, 0x29, 0xc8, //0x0000017a subl %r9d, %eax + 0x48, 0x98, //0x0000017d cltq + 0x48, 0xc1, 0xe0, 0x04, //0x0000017f shlq $4, %rax + 0x48, 0x8d, 0x15, 0xb6, 0xc0, 0x00, 0x00, //0x00000183 leaq $49334(%rip), %rdx /* _pow10_ceil_sig.g+0(%rip) */ + 0x4c, 0x8b, 0x1c, 0x10, //0x0000018a movq (%rax,%rdx), %r11 + 0x4c, 0x8b, 0x6c, 0x10, 0x08, //0x0000018e movq $8(%rax,%rdx), %r13 + 0xfe, 0xc1, //0x00000193 incb %cl + 0x48, 0xd3, 0xe6, //0x00000195 shlq %cl, %rsi + 0x48, 0x89, 0xf0, //0x00000198 movq %rsi, %rax + 0x49, 0xf7, 0xe5, //0x0000019b mulq %r13 + 0x48, 0x89, 0xd3, //0x0000019e movq %rdx, %rbx + 0x48, 0x89, 0xf0, //0x000001a1 movq %rsi, %rax + 0x49, 0xf7, 0xe3, //0x000001a4 mulq %r11 + 0x48, 0x8d, 0x34, 0xbd, 0x00, 0x00, 0x00, 0x00, //0x000001a7 leaq (,%rdi,4), %rsi + 0x48, 0x01, 0xd8, //0x000001af addq %rbx, %rax + 0x48, 0x83, 0xd2, 0x00, //0x000001b2 adcq $0, %rdx + 0x31, 0xdb, //0x000001b6 xorl %ebx, %ebx + 0x48, 0x83, 0xf8, 0x01, //0x000001b8 cmpq $1, %rax + 0x0f, 0x97, 0xc3, //0x000001bc seta %bl + 0x48, 0x09, 0xd3, //0x000001bf orq %rdx, %rbx + 0x48, 0xd3, 0xe6, //0x000001c2 shlq %cl, %rsi + 0x48, 0x89, 0xf0, //0x000001c5 movq %rsi, %rax + 0x49, 0xf7, 0xe5, //0x000001c8 mulq %r13 + 0x49, 0x89, 0xd2, //0x000001cb movq %rdx, %r10 + 0x48, 0x89, 0xf0, //0x000001ce movq %rsi, %rax + 0x49, 0xf7, 0xe3, //0x000001d1 mulq %r11 + 0x49, 0x89, 0xd0, //0x000001d4 movq %rdx, %r8 + 0x48, 0x8d, 0x34, 0xbd, 0x02, 0x00, 0x00, 0x00, //0x000001d7 leaq $2(,%rdi,4), %rsi + 0x4c, 0x01, 0xd0, //0x000001df addq %r10, %rax + 0x49, 0x83, 0xd0, 0x00, //0x000001e2 adcq $0, %r8 + 0x45, 0x31, 0xd2, //0x000001e6 xorl %r10d, %r10d + 0x48, 0x83, 0xf8, 0x01, //0x000001e9 cmpq $1, %rax + 0x41, 0x0f, 0x97, 0xc2, //0x000001ed seta %r10b + 0x4d, 0x09, 0xc2, //0x000001f1 orq %r8, %r10 + 0x48, 0xd3, 0xe6, //0x000001f4 shlq %cl, %rsi + 0x48, 0x89, 0xf0, //0x000001f7 movq %rsi, %rax + 0x49, 0xf7, 0xe5, //0x000001fa mulq %r13 + 0x48, 0x89, 0xd1, //0x000001fd movq %rdx, %rcx + 0x48, 0x89, 0xf0, //0x00000200 movq %rsi, %rax + 0x49, 0xf7, 0xe3, //0x00000203 mulq %r11 + 0x48, 0x01, 0xc8, //0x00000206 addq %rcx, %rax + 0x48, 0x83, 0xd2, 0x00, //0x00000209 adcq $0, %rdx + 0x31, 0xc9, //0x0000020d xorl %ecx, %ecx + 0x48, 0x83, 0xf8, 0x01, //0x0000020f cmpq $1, %rax + 0x0f, 0x97, 0xc1, //0x00000213 seta %cl + 0x48, 0x09, 0xd1, //0x00000216 orq %rdx, %rcx + 0x83, 0xe7, 0x01, //0x00000219 andl $1, %edi + 0x48, 0x01, 0xfb, //0x0000021c addq %rdi, %rbx + 0x48, 0x29, 0xf9, //0x0000021f subq %rdi, %rcx + 0x49, 0x83, 0xfa, 0x28, //0x00000222 cmpq $40, %r10 + 0x0f, 0x82, 0x01, 0x01, 0x00, 0x00, //0x00000226 jb LBB1_17 + 0x48, 0xba, 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x0000022c movabsq $-3689348814741910323, %rdx + 0x4c, 0x89, 0xc0, //0x00000236 movq %r8, %rax + 0x48, 0xf7, 0xe2, //0x00000239 mulq %rdx + 0x48, 0x89, 0xd7, //0x0000023c movq %rdx, %rdi + 0x48, 0xc1, 0xef, 0x05, //0x0000023f shrq $5, %rdi + 0x48, 0x8d, 0x04, 0xfd, 0x00, 0x00, 0x00, 0x00, //0x00000243 leaq (,%rdi,8), %rax + 0x48, 0x8d, 0x14, 0x80, //0x0000024b leaq (%rax,%rax,4), %rdx + 0x48, 0x39, 0xd3, //0x0000024f cmpq %rdx, %rbx + 0x40, 0x0f, 0x96, 0xc6, //0x00000252 setbe %sil + 0x48, 0x8d, 0x44, 0x80, 0x28, //0x00000256 leaq $40(%rax,%rax,4), %rax + 0x48, 0x39, 0xc8, //0x0000025b cmpq %rcx, %rax + 0x0f, 0x96, 0xc2, //0x0000025e setbe %dl + 0x40, 0x38, 0xd6, //0x00000261 cmpb %dl, %sil + 0x0f, 0x84, 0xc3, 0x00, 0x00, 0x00, //0x00000264 je LBB1_17 + 0x31, 0xd2, //0x0000026a xorl %edx, %edx + 0x48, 0x39, 0xc8, //0x0000026c cmpq %rcx, %rax + 0x0f, 0x96, 0xc2, //0x0000026f setbe %dl + 0x48, 0x01, 0xd7, //0x00000272 addq %rdx, %rdi + 0x41, 0xff, 0xc1, //0x00000275 incl %r9d + 0x48, 0xbb, 0xe0, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, //0x00000278 movabsq $8589934560, %rbx + 0x48, 0x8d, 0x83, 0x1f, 0xe4, 0x0b, 0x54, //0x00000282 leaq $1410065439(%rbx), %rax + 0x48, 0x39, 0xc7, //0x00000289 cmpq %rax, %rdi + 0x0f, 0x87, 0x1e, 0x01, 0x00, 0x00, //0x0000028c ja LBB1_23 + //0x00000292 LBB1_8 + 0xba, 0x01, 0x00, 0x00, 0x00, //0x00000292 movl $1, %edx + 0x48, 0x83, 0xff, 0x0a, //0x00000297 cmpq $10, %rdi + 0x0f, 0x82, 0x9c, 0x01, 0x00, 0x00, //0x0000029b jb LBB1_30 + 0xba, 0x02, 0x00, 0x00, 0x00, //0x000002a1 movl $2, %edx + 0x48, 0x83, 0xff, 0x64, //0x000002a6 cmpq $100, %rdi + 0x0f, 0x82, 0x8d, 0x01, 0x00, 0x00, //0x000002aa jb LBB1_30 + 0xba, 0x03, 0x00, 0x00, 0x00, //0x000002b0 movl $3, %edx + 0x48, 0x81, 0xff, 0xe8, 0x03, 0x00, 0x00, //0x000002b5 cmpq $1000, %rdi + 0x0f, 0x82, 0x7b, 0x01, 0x00, 0x00, //0x000002bc jb LBB1_30 + 0xba, 0x04, 0x00, 0x00, 0x00, //0x000002c2 movl $4, %edx + 0x48, 0x81, 0xff, 0x10, 0x27, 0x00, 0x00, //0x000002c7 cmpq $10000, %rdi + 0x0f, 0x82, 0x69, 0x01, 0x00, 0x00, //0x000002ce jb LBB1_30 + 0xba, 0x05, 0x00, 0x00, 0x00, //0x000002d4 movl $5, %edx + 0x48, 0x81, 0xff, 0xa0, 0x86, 0x01, 0x00, //0x000002d9 cmpq $100000, %rdi + 0x0f, 0x82, 0x57, 0x01, 0x00, 0x00, //0x000002e0 jb LBB1_30 + 0xba, 0x06, 0x00, 0x00, 0x00, //0x000002e6 movl $6, %edx + 0x48, 0x81, 0xff, 0x40, 0x42, 0x0f, 0x00, //0x000002eb cmpq $1000000, %rdi + 0x0f, 0x82, 0x45, 0x01, 0x00, 0x00, //0x000002f2 jb LBB1_30 + 0xba, 0x07, 0x00, 0x00, 0x00, //0x000002f8 movl $7, %edx + 0x48, 0x81, 0xff, 0x80, 0x96, 0x98, 0x00, //0x000002fd cmpq $10000000, %rdi + 0x0f, 0x82, 0x33, 0x01, 0x00, 0x00, //0x00000304 jb LBB1_30 + 0xba, 0x08, 0x00, 0x00, 0x00, //0x0000030a movl $8, %edx + 0x48, 0x81, 0xff, 0x00, 0xe1, 0xf5, 0x05, //0x0000030f cmpq $100000000, %rdi + 0x0f, 0x82, 0x21, 0x01, 0x00, 0x00, //0x00000316 jb LBB1_30 + 0x48, 0x81, 0xff, 0x00, 0xca, 0x9a, 0x3b, //0x0000031c cmpq $1000000000, %rdi + 0xba, 0x0a, 0x00, 0x00, 0x00, //0x00000323 movl $10, %edx + 0xe9, 0x0d, 0x01, 0x00, 0x00, //0x00000328 jmp LBB1_29 + //0x0000032d LBB1_17 + 0x4d, 0x89, 0xc3, //0x0000032d movq %r8, %r11 + 0x49, 0xc1, 0xeb, 0x02, //0x00000330 shrq $2, %r11 + 0x4c, 0x89, 0xc2, //0x00000334 movq %r8, %rdx + 0x48, 0x83, 0xe2, 0xfc, //0x00000337 andq $-4, %rdx + 0x48, 0x39, 0xd3, //0x0000033b cmpq %rdx, %rbx + 0x0f, 0x96, 0xc3, //0x0000033e setbe %bl + 0x48, 0x8d, 0x72, 0x04, //0x00000341 leaq $4(%rdx), %rsi + 0x48, 0x39, 0xce, //0x00000345 cmpq %rcx, %rsi + 0x0f, 0x96, 0xc0, //0x00000348 setbe %al + 0x38, 0xc3, //0x0000034b cmpb %al, %bl + 0x0f, 0x84, 0x20, 0x00, 0x00, 0x00, //0x0000034d je LBB1_20 + 0x31, 0xff, //0x00000353 xorl %edi, %edi + 0x48, 0x39, 0xce, //0x00000355 cmpq %rcx, %rsi + 0x40, 0x0f, 0x96, 0xc7, //0x00000358 setbe %dil + 0xe9, 0x32, 0x00, 0x00, 0x00, //0x0000035c jmp LBB1_22 + //0x00000361 LBB1_19 + 0x41, 0xc6, 0x07, 0x30, //0x00000361 movb $48, (%r15) + 0x45, 0x29, 0xf7, //0x00000365 subl %r14d, %r15d + 0x41, 0xff, 0xc7, //0x00000368 incl %r15d + 0x44, 0x89, 0xfb, //0x0000036b movl %r15d, %ebx + 0xe9, 0xdf, 0x07, 0x00, 0x00, //0x0000036e jmp LBB1_113 + //0x00000373 LBB1_20 + 0x48, 0x83, 0xca, 0x02, //0x00000373 orq $2, %rdx + 0xbf, 0x01, 0x00, 0x00, 0x00, //0x00000377 movl $1, %edi + 0x49, 0x39, 0xd2, //0x0000037c cmpq %rdx, %r10 + 0x0f, 0x87, 0x0e, 0x00, 0x00, 0x00, //0x0000037f ja LBB1_22 + 0x0f, 0x94, 0xc0, //0x00000385 sete %al + 0x41, 0xc0, 0xe8, 0x02, //0x00000388 shrb $2, %r8b + 0x41, 0x20, 0xc0, //0x0000038c andb %al, %r8b + 0x41, 0x0f, 0xb6, 0xf8, //0x0000038f movzbl %r8b, %edi + //0x00000393 LBB1_22 + 0x4c, 0x01, 0xdf, //0x00000393 addq %r11, %rdi + 0x48, 0xbb, 0xe0, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, //0x00000396 movabsq $8589934560, %rbx + 0x48, 0x8d, 0x83, 0x1f, 0xe4, 0x0b, 0x54, //0x000003a0 leaq $1410065439(%rbx), %rax + 0x48, 0x39, 0xc7, //0x000003a7 cmpq %rax, %rdi + 0x0f, 0x86, 0xe2, 0xfe, 0xff, 0xff, //0x000003aa jbe LBB1_8 + //0x000003b0 LBB1_23 + 0x48, 0x89, 0xf8, //0x000003b0 movq %rdi, %rax + 0x48, 0xc1, 0xe8, 0x0b, //0x000003b3 shrq $11, %rax + 0xba, 0x0b, 0x00, 0x00, 0x00, //0x000003b7 movl $11, %edx + 0x48, 0x3d, 0xdd, 0x0e, 0xe9, 0x02, //0x000003bc cmpq $48828125, %rax + 0x0f, 0x82, 0x75, 0x00, 0x00, 0x00, //0x000003c2 jb LBB1_30 + 0x48, 0x89, 0xf8, //0x000003c8 movq %rdi, %rax + 0x48, 0xc1, 0xe8, 0x0c, //0x000003cb shrq $12, %rax + 0xba, 0x0c, 0x00, 0x00, 0x00, //0x000003cf movl $12, %edx + 0x48, 0x3d, 0x51, 0x4a, 0x8d, 0x0e, //0x000003d4 cmpq $244140625, %rax + 0x0f, 0x82, 0x5d, 0x00, 0x00, 0x00, //0x000003da jb LBB1_30 + 0x48, 0x89, 0xf8, //0x000003e0 movq %rdi, %rax + 0x48, 0xc1, 0xe8, 0x0d, //0x000003e3 shrq $13, %rax + 0xba, 0x0d, 0x00, 0x00, 0x00, //0x000003e7 movl $13, %edx + 0x48, 0x3d, 0x95, 0x73, 0xc2, 0x48, //0x000003ec cmpq $1220703125, %rax + 0x0f, 0x82, 0x45, 0x00, 0x00, 0x00, //0x000003f2 jb LBB1_30 + 0xba, 0x0e, 0x00, 0x00, 0x00, //0x000003f8 movl $14, %edx + 0x48, 0xb8, 0x00, 0x40, 0x7a, 0x10, 0xf3, 0x5a, 0x00, 0x00, //0x000003fd movabsq $100000000000000, %rax + 0x48, 0x39, 0xc7, //0x00000407 cmpq %rax, %rdi + 0x0f, 0x82, 0x2d, 0x00, 0x00, 0x00, //0x0000040a jb LBB1_30 + 0xba, 0x0f, 0x00, 0x00, 0x00, //0x00000410 movl $15, %edx + 0x48, 0xb8, 0x00, 0x80, 0xc6, 0xa4, 0x7e, 0x8d, 0x03, 0x00, //0x00000415 movabsq $1000000000000000, %rax + 0x48, 0x39, 0xc7, //0x0000041f cmpq %rax, %rdi + 0x0f, 0x82, 0x15, 0x00, 0x00, 0x00, //0x00000422 jb LBB1_30 + 0x48, 0xb8, 0x00, 0x00, 0xc1, 0x6f, 0xf2, 0x86, 0x23, 0x00, //0x00000428 movabsq $10000000000000000, %rax + 0x48, 0x39, 0xc7, //0x00000432 cmpq %rax, %rdi + 0xba, 0x11, 0x00, 0x00, 0x00, //0x00000435 movl $17, %edx + //0x0000043a LBB1_29 + 0x83, 0xda, 0x00, //0x0000043a sbbl $0, %edx + //0x0000043d LBB1_30 + 0x46, 0x8d, 0x2c, 0x0a, //0x0000043d leal (%rdx,%r9), %r13d + 0x42, 0x8d, 0x44, 0x0a, 0x05, //0x00000441 leal $5(%rdx,%r9), %eax + 0x83, 0xf8, 0x1b, //0x00000446 cmpl $27, %eax + 0x0f, 0x82, 0x95, 0x00, 0x00, 0x00, //0x00000449 jb LBB1_38 + 0x4d, 0x8d, 0x67, 0x01, //0x0000044f leaq $1(%r15), %r12 + 0x4c, 0x89, 0xe6, //0x00000453 movq %r12, %rsi + 0xe8, 0x25, 0x88, 0x00, 0x00, //0x00000456 callq _format_significand + 0x48, 0x89, 0xc3, //0x0000045b movq %rax, %rbx + 0x90, 0x90, //0x0000045e .p2align 4, 0x90 + //0x00000460 LBB1_32 + 0x80, 0x7b, 0xff, 0x30, //0x00000460 cmpb $48, $-1(%rbx) + 0x48, 0x8d, 0x5b, 0xff, //0x00000464 leaq $-1(%rbx), %rbx + 0x0f, 0x84, 0xf2, 0xff, 0xff, 0xff, //0x00000468 je LBB1_32 + 0x41, 0x8a, 0x47, 0x01, //0x0000046e movb $1(%r15), %al + 0x41, 0x88, 0x07, //0x00000472 movb %al, (%r15) + 0x48, 0x8d, 0x43, 0x01, //0x00000475 leaq $1(%rbx), %rax + 0x48, 0x89, 0xc1, //0x00000479 movq %rax, %rcx + 0x4c, 0x29, 0xe1, //0x0000047c subq %r12, %rcx + 0x48, 0x83, 0xf9, 0x02, //0x0000047f cmpq $2, %rcx + 0x0f, 0x8c, 0x08, 0x00, 0x00, 0x00, //0x00000483 jl LBB1_35 + 0x41, 0xc6, 0x04, 0x24, 0x2e, //0x00000489 movb $46, (%r12) + 0x48, 0x89, 0xc3, //0x0000048e movq %rax, %rbx + //0x00000491 LBB1_35 + 0xc6, 0x03, 0x65, //0x00000491 movb $101, (%rbx) + 0x45, 0x85, 0xed, //0x00000494 testl %r13d, %r13d + 0x0f, 0x8e, 0x57, 0x01, 0x00, 0x00, //0x00000497 jle LBB1_51 + 0x41, 0xff, 0xcd, //0x0000049d decl %r13d + 0xc6, 0x43, 0x01, 0x2b, //0x000004a0 movb $43, $1(%rbx) + 0x44, 0x89, 0xe8, //0x000004a4 movl %r13d, %eax + 0x83, 0xf8, 0x64, //0x000004a7 cmpl $100, %eax + 0x0f, 0x8c, 0x59, 0x01, 0x00, 0x00, //0x000004aa jl LBB1_52 + //0x000004b0 LBB1_37 + 0x89, 0xc1, //0x000004b0 movl %eax, %ecx + 0xba, 0xcd, 0xcc, 0xcc, 0xcc, //0x000004b2 movl $3435973837, %edx + 0x48, 0x0f, 0xaf, 0xd1, //0x000004b7 imulq %rcx, %rdx + 0x48, 0xc1, 0xea, 0x23, //0x000004bb shrq $35, %rdx + 0x8d, 0x0c, 0x12, //0x000004bf leal (%rdx,%rdx), %ecx + 0x8d, 0x0c, 0x89, //0x000004c2 leal (%rcx,%rcx,4), %ecx + 0x29, 0xc8, //0x000004c5 subl %ecx, %eax + 0x48, 0x8d, 0x0d, 0xa2, 0xbc, 0x00, 0x00, //0x000004c7 leaq $48290(%rip), %rcx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x0c, 0x51, //0x000004ce movzwl (%rcx,%rdx,2), %ecx + 0x66, 0x89, 0x4b, 0x02, //0x000004d2 movw %cx, $2(%rbx) + 0x0c, 0x30, //0x000004d6 orb $48, %al + 0x88, 0x43, 0x04, //0x000004d8 movb %al, $4(%rbx) + 0x48, 0x83, 0xc3, 0x05, //0x000004db addq $5, %rbx + 0xe9, 0x6b, 0x06, 0x00, 0x00, //0x000004df jmp LBB1_112 + //0x000004e4 LBB1_38 + 0x45, 0x85, 0xc9, //0x000004e4 testl %r9d, %r9d + 0x0f, 0x88, 0x3f, 0x01, 0x00, 0x00, //0x000004e7 js LBB1_54 + 0x4d, 0x63, 0xed, //0x000004ed movslq %r13d, %r13 + 0x4b, 0x8d, 0x1c, 0x2f, //0x000004f0 leaq (%r15,%r13), %rbx + 0x4c, 0x89, 0xfe, //0x000004f4 movq %r15, %rsi + 0xe8, 0x94, 0x06, 0x00, 0x00, //0x000004f7 callq _format_integer + 0x48, 0x39, 0xd8, //0x000004fc cmpq %rbx, %rax + 0x0f, 0x83, 0x4a, 0x06, 0x00, 0x00, //0x000004ff jae LBB1_112 + 0x4d, 0x01, 0xec, //0x00000505 addq %r13, %r12 + 0x49, 0x29, 0xc4, //0x00000508 subq %rax, %r12 + 0x4d, 0x01, 0xf4, //0x0000050b addq %r14, %r12 + 0x49, 0x83, 0xfc, 0x20, //0x0000050e cmpq $32, %r12 + 0x0f, 0x82, 0x18, 0x03, 0x00, 0x00, //0x00000512 jb LBB1_76 + 0x4c, 0x89, 0xe1, //0x00000518 movq %r12, %rcx + 0x48, 0x83, 0xe1, 0xe0, //0x0000051b andq $-32, %rcx + 0x48, 0x8d, 0x79, 0xe0, //0x0000051f leaq $-32(%rcx), %rdi + 0x48, 0x89, 0xfe, //0x00000523 movq %rdi, %rsi + 0x48, 0xc1, 0xee, 0x05, //0x00000526 shrq $5, %rsi + 0x48, 0xff, 0xc6, //0x0000052a incq %rsi + 0x89, 0xf2, //0x0000052d movl %esi, %edx + 0x83, 0xe2, 0x07, //0x0000052f andl $7, %edx + 0x48, 0x81, 0xff, 0xe0, 0x00, 0x00, 0x00, //0x00000532 cmpq $224, %rdi + 0x0f, 0x83, 0xf8, 0x01, 0x00, 0x00, //0x00000539 jae LBB1_69 + 0x31, 0xff, //0x0000053f xorl %edi, %edi + 0xe9, 0x92, 0x02, 0x00, 0x00, //0x00000541 jmp LBB1_71 + //0x00000546 LBB1_43 + 0x48, 0xd3, 0xef, //0x00000546 shrq %cl, %rdi + 0x48, 0xb8, 0xe0, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, //0x00000549 movabsq $8589934560, %rax + 0x48, 0x05, 0x1f, 0xe4, 0x0b, 0x54, //0x00000553 addq $1410065439, %rax + 0x48, 0x39, 0xc7, //0x00000559 cmpq %rax, %rdi + 0x0f, 0x86, 0x3b, 0x01, 0x00, 0x00, //0x0000055c jbe LBB1_60 + 0x48, 0x89, 0xf8, //0x00000562 movq %rdi, %rax + 0x48, 0xc1, 0xe8, 0x0b, //0x00000565 shrq $11, %rax + 0xba, 0x0b, 0x00, 0x00, 0x00, //0x00000569 movl $11, %edx + 0x48, 0x3d, 0xdd, 0x0e, 0xe9, 0x02, //0x0000056e cmpq $48828125, %rax + 0x0f, 0x82, 0xad, 0x01, 0x00, 0x00, //0x00000574 jb LBB1_68 + 0x48, 0x89, 0xf8, //0x0000057a movq %rdi, %rax + 0x48, 0xc1, 0xe8, 0x0c, //0x0000057d shrq $12, %rax + 0xba, 0x0c, 0x00, 0x00, 0x00, //0x00000581 movl $12, %edx + 0x48, 0x3d, 0x51, 0x4a, 0x8d, 0x0e, //0x00000586 cmpq $244140625, %rax + 0x0f, 0x82, 0x95, 0x01, 0x00, 0x00, //0x0000058c jb LBB1_68 + 0x48, 0x89, 0xf8, //0x00000592 movq %rdi, %rax + 0x48, 0xc1, 0xe8, 0x0d, //0x00000595 shrq $13, %rax + 0xba, 0x0d, 0x00, 0x00, 0x00, //0x00000599 movl $13, %edx + 0x48, 0x3d, 0x95, 0x73, 0xc2, 0x48, //0x0000059e cmpq $1220703125, %rax + 0x0f, 0x82, 0x7d, 0x01, 0x00, 0x00, //0x000005a4 jb LBB1_68 + 0xba, 0x0e, 0x00, 0x00, 0x00, //0x000005aa movl $14, %edx + 0x48, 0xb8, 0x00, 0x40, 0x7a, 0x10, 0xf3, 0x5a, 0x00, 0x00, //0x000005af movabsq $100000000000000, %rax + 0x48, 0x39, 0xc7, //0x000005b9 cmpq %rax, %rdi + 0x0f, 0x82, 0x65, 0x01, 0x00, 0x00, //0x000005bc jb LBB1_68 + 0xba, 0x0f, 0x00, 0x00, 0x00, //0x000005c2 movl $15, %edx + 0x48, 0xb8, 0x00, 0x80, 0xc6, 0xa4, 0x7e, 0x8d, 0x03, 0x00, //0x000005c7 movabsq $1000000000000000, %rax + 0x48, 0x39, 0xc7, //0x000005d1 cmpq %rax, %rdi + 0x0f, 0x82, 0x4d, 0x01, 0x00, 0x00, //0x000005d4 jb LBB1_68 + 0x48, 0xb8, 0x00, 0x00, 0xc1, 0x6f, 0xf2, 0x86, 0x23, 0x00, //0x000005da movabsq $10000000000000000, %rax + 0x48, 0x39, 0xc7, //0x000005e4 cmpq %rax, %rdi + 0xba, 0x11, 0x00, 0x00, 0x00, //0x000005e7 movl $17, %edx + //0x000005ec LBB1_50 + 0x83, 0xda, 0x00, //0x000005ec sbbl $0, %edx + 0xe9, 0x33, 0x01, 0x00, 0x00, //0x000005ef jmp LBB1_68 + //0x000005f4 LBB1_51 + 0xc6, 0x43, 0x01, 0x2d, //0x000005f4 movb $45, $1(%rbx) + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x000005f8 movl $1, %eax + 0x44, 0x29, 0xe8, //0x000005fd subl %r13d, %eax + 0x83, 0xf8, 0x64, //0x00000600 cmpl $100, %eax + 0x0f, 0x8d, 0xa7, 0xfe, 0xff, 0xff, //0x00000603 jge LBB1_37 + //0x00000609 LBB1_52 + 0x83, 0xf8, 0x0a, //0x00000609 cmpl $10, %eax + 0x0f, 0x8c, 0x7d, 0x00, 0x00, 0x00, //0x0000060c jl LBB1_59 + 0x48, 0x98, //0x00000612 cltq + 0x48, 0x8d, 0x0d, 0x55, 0xbb, 0x00, 0x00, //0x00000614 leaq $47957(%rip), %rcx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x04, 0x41, //0x0000061b movzwl (%rcx,%rax,2), %eax + 0x66, 0x89, 0x43, 0x02, //0x0000061f movw %ax, $2(%rbx) + 0x48, 0x83, 0xc3, 0x04, //0x00000623 addq $4, %rbx + 0xe9, 0x23, 0x05, 0x00, 0x00, //0x00000627 jmp LBB1_112 + //0x0000062c LBB1_54 + 0x45, 0x85, 0xed, //0x0000062c testl %r13d, %r13d + 0x0f, 0x8f, 0x0c, 0x03, 0x00, 0x00, //0x0000062f jg LBB1_85 + 0x66, 0x41, 0xc7, 0x07, 0x30, 0x2e, //0x00000635 movw $11824, (%r15) + 0x49, 0x83, 0xc7, 0x02, //0x0000063b addq $2, %r15 + 0x45, 0x85, 0xed, //0x0000063f testl %r13d, %r13d + 0x0f, 0x89, 0xf9, 0x02, 0x00, 0x00, //0x00000642 jns LBB1_85 + 0x31, 0xc0, //0x00000648 xorl %eax, %eax + 0x41, 0x83, 0xfd, 0xe0, //0x0000064a cmpl $-32, %r13d + 0x0f, 0x87, 0xce, 0x02, 0x00, 0x00, //0x0000064e ja LBB1_83 + 0x45, 0x89, 0xe8, //0x00000654 movl %r13d, %r8d + 0x41, 0xf7, 0xd0, //0x00000657 notl %r8d + 0x49, 0xff, 0xc0, //0x0000065a incq %r8 + 0x4c, 0x89, 0xc0, //0x0000065d movq %r8, %rax + 0x49, 0x89, 0xda, //0x00000660 movq %rbx, %r10 + 0x48, 0x21, 0xd8, //0x00000663 andq %rbx, %rax + 0x48, 0x8d, 0x48, 0xe0, //0x00000666 leaq $-32(%rax), %rcx + 0x48, 0x89, 0xcb, //0x0000066a movq %rcx, %rbx + 0x48, 0xc1, 0xeb, 0x05, //0x0000066d shrq $5, %rbx + 0x48, 0xff, 0xc3, //0x00000671 incq %rbx + 0x41, 0x89, 0xd9, //0x00000674 movl %ebx, %r9d + 0x41, 0x83, 0xe1, 0x07, //0x00000677 andl $7, %r9d + 0x48, 0x81, 0xf9, 0xe0, 0x00, 0x00, 0x00, //0x0000067b cmpq $224, %rcx + 0x0f, 0x83, 0xbc, 0x01, 0x00, 0x00, //0x00000682 jae LBB1_77 + 0x31, 0xdb, //0x00000688 xorl %ebx, %ebx + 0xe9, 0x52, 0x02, 0x00, 0x00, //0x0000068a jmp LBB1_79 + //0x0000068f LBB1_59 + 0x04, 0x30, //0x0000068f addb $48, %al + 0x88, 0x43, 0x02, //0x00000691 movb %al, $2(%rbx) + 0x48, 0x83, 0xc3, 0x03, //0x00000694 addq $3, %rbx + 0xe9, 0xb2, 0x04, 0x00, 0x00, //0x00000698 jmp LBB1_112 + //0x0000069d LBB1_60 + 0xba, 0x01, 0x00, 0x00, 0x00, //0x0000069d movl $1, %edx + 0x48, 0x83, 0xff, 0x0a, //0x000006a2 cmpq $10, %rdi + 0x0f, 0x82, 0x7b, 0x00, 0x00, 0x00, //0x000006a6 jb LBB1_68 + 0xba, 0x02, 0x00, 0x00, 0x00, //0x000006ac movl $2, %edx + 0x48, 0x83, 0xff, 0x64, //0x000006b1 cmpq $100, %rdi + 0x0f, 0x82, 0x6c, 0x00, 0x00, 0x00, //0x000006b5 jb LBB1_68 + 0xba, 0x03, 0x00, 0x00, 0x00, //0x000006bb movl $3, %edx + 0x48, 0x81, 0xff, 0xe8, 0x03, 0x00, 0x00, //0x000006c0 cmpq $1000, %rdi + 0x0f, 0x82, 0x5a, 0x00, 0x00, 0x00, //0x000006c7 jb LBB1_68 + 0xba, 0x04, 0x00, 0x00, 0x00, //0x000006cd movl $4, %edx + 0x48, 0x81, 0xff, 0x10, 0x27, 0x00, 0x00, //0x000006d2 cmpq $10000, %rdi + 0x0f, 0x82, 0x48, 0x00, 0x00, 0x00, //0x000006d9 jb LBB1_68 + 0xba, 0x05, 0x00, 0x00, 0x00, //0x000006df movl $5, %edx + 0x48, 0x81, 0xff, 0xa0, 0x86, 0x01, 0x00, //0x000006e4 cmpq $100000, %rdi + 0x0f, 0x82, 0x36, 0x00, 0x00, 0x00, //0x000006eb jb LBB1_68 + 0xba, 0x06, 0x00, 0x00, 0x00, //0x000006f1 movl $6, %edx + 0x48, 0x81, 0xff, 0x40, 0x42, 0x0f, 0x00, //0x000006f6 cmpq $1000000, %rdi + 0x0f, 0x82, 0x24, 0x00, 0x00, 0x00, //0x000006fd jb LBB1_68 + 0xba, 0x07, 0x00, 0x00, 0x00, //0x00000703 movl $7, %edx + 0x48, 0x81, 0xff, 0x80, 0x96, 0x98, 0x00, //0x00000708 cmpq $10000000, %rdi + 0x0f, 0x82, 0x12, 0x00, 0x00, 0x00, //0x0000070f jb LBB1_68 + 0xba, 0x08, 0x00, 0x00, 0x00, //0x00000715 movl $8, %edx + 0x48, 0x81, 0xff, 0x00, 0xe1, 0xf5, 0x05, //0x0000071a cmpq $100000000, %rdi + 0x0f, 0x83, 0x50, 0x04, 0x00, 0x00, //0x00000721 jae LBB1_116 + //0x00000727 LBB1_68 + 0x4c, 0x89, 0xfe, //0x00000727 movq %r15, %rsi + 0xe8, 0x61, 0x04, 0x00, 0x00, //0x0000072a callq _format_integer + 0x48, 0x89, 0xc3, //0x0000072f movq %rax, %rbx + 0xe9, 0x18, 0x04, 0x00, 0x00, //0x00000732 jmp LBB1_112 + //0x00000737 LBB1_69 + 0x48, 0x29, 0xd6, //0x00000737 subq %rdx, %rsi + 0x31, 0xff, //0x0000073a xorl %edi, %edi + 0x66, 0x0f, 0x6f, 0x05, 0x4c, 0xf9, 0xff, 0xff, //0x0000073c movdqa $-1716(%rip), %xmm0 /* LCPI1_0+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000744 .p2align 4, 0x90 + //0x00000750 LBB1_70 + 0xf3, 0x0f, 0x7f, 0x04, 0x38, //0x00000750 movdqu %xmm0, (%rax,%rdi) + 0xf3, 0x0f, 0x7f, 0x44, 0x38, 0x10, //0x00000755 movdqu %xmm0, $16(%rax,%rdi) + 0xf3, 0x0f, 0x7f, 0x44, 0x38, 0x20, //0x0000075b movdqu %xmm0, $32(%rax,%rdi) + 0xf3, 0x0f, 0x7f, 0x44, 0x38, 0x30, //0x00000761 movdqu %xmm0, $48(%rax,%rdi) + 0xf3, 0x0f, 0x7f, 0x44, 0x38, 0x40, //0x00000767 movdqu %xmm0, $64(%rax,%rdi) + 0xf3, 0x0f, 0x7f, 0x44, 0x38, 0x50, //0x0000076d movdqu %xmm0, $80(%rax,%rdi) + 0xf3, 0x0f, 0x7f, 0x44, 0x38, 0x60, //0x00000773 movdqu %xmm0, $96(%rax,%rdi) + 0xf3, 0x0f, 0x7f, 0x44, 0x38, 0x70, //0x00000779 movdqu %xmm0, $112(%rax,%rdi) + 0xf3, 0x0f, 0x7f, 0x84, 0x38, 0x80, 0x00, 0x00, 0x00, //0x0000077f movdqu %xmm0, $128(%rax,%rdi) + 0xf3, 0x0f, 0x7f, 0x84, 0x38, 0x90, 0x00, 0x00, 0x00, //0x00000788 movdqu %xmm0, $144(%rax,%rdi) + 0xf3, 0x0f, 0x7f, 0x84, 0x38, 0xa0, 0x00, 0x00, 0x00, //0x00000791 movdqu %xmm0, $160(%rax,%rdi) + 0xf3, 0x0f, 0x7f, 0x84, 0x38, 0xb0, 0x00, 0x00, 0x00, //0x0000079a movdqu %xmm0, $176(%rax,%rdi) + 0xf3, 0x0f, 0x7f, 0x84, 0x38, 0xc0, 0x00, 0x00, 0x00, //0x000007a3 movdqu %xmm0, $192(%rax,%rdi) + 0xf3, 0x0f, 0x7f, 0x84, 0x38, 0xd0, 0x00, 0x00, 0x00, //0x000007ac movdqu %xmm0, $208(%rax,%rdi) + 0xf3, 0x0f, 0x7f, 0x84, 0x38, 0xe0, 0x00, 0x00, 0x00, //0x000007b5 movdqu %xmm0, $224(%rax,%rdi) + 0xf3, 0x0f, 0x7f, 0x84, 0x38, 0xf0, 0x00, 0x00, 0x00, //0x000007be movdqu %xmm0, $240(%rax,%rdi) + 0x48, 0x81, 0xc7, 0x00, 0x01, 0x00, 0x00, //0x000007c7 addq $256, %rdi + 0x48, 0x83, 0xc6, 0xf8, //0x000007ce addq $-8, %rsi + 0x0f, 0x85, 0x78, 0xff, 0xff, 0xff, //0x000007d2 jne LBB1_70 + //0x000007d8 LBB1_71 + 0x48, 0x85, 0xd2, //0x000007d8 testq %rdx, %rdx + 0x0f, 0x84, 0x35, 0x00, 0x00, 0x00, //0x000007db je LBB1_74 + 0x48, 0x8d, 0x74, 0x07, 0x10, //0x000007e1 leaq $16(%rdi,%rax), %rsi + 0x48, 0xf7, 0xda, //0x000007e6 negq %rdx + 0x66, 0x0f, 0x6f, 0x05, 0x9f, 0xf8, 0xff, 0xff, //0x000007e9 movdqa $-1889(%rip), %xmm0 /* LCPI1_0+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000007f1 .p2align 4, 0x90 + //0x00000800 LBB1_73 + 0xf3, 0x0f, 0x7f, 0x46, 0xf0, //0x00000800 movdqu %xmm0, $-16(%rsi) + 0xf3, 0x0f, 0x7f, 0x06, //0x00000805 movdqu %xmm0, (%rsi) + 0x48, 0x83, 0xc6, 0x20, //0x00000809 addq $32, %rsi + 0x48, 0xff, 0xc2, //0x0000080d incq %rdx + 0x0f, 0x85, 0xea, 0xff, 0xff, 0xff, //0x00000810 jne LBB1_73 + //0x00000816 LBB1_74 + 0x4c, 0x39, 0xe1, //0x00000816 cmpq %r12, %rcx + 0x0f, 0x84, 0x30, 0x03, 0x00, 0x00, //0x00000819 je LBB1_112 + 0x48, 0x01, 0xc8, //0x0000081f addq %rcx, %rax + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000822 .p2align 4, 0x90 + //0x00000830 LBB1_76 + 0xc6, 0x00, 0x30, //0x00000830 movb $48, (%rax) + 0x48, 0xff, 0xc0, //0x00000833 incq %rax + 0x48, 0x39, 0xc3, //0x00000836 cmpq %rax, %rbx + 0x0f, 0x85, 0xf1, 0xff, 0xff, 0xff, //0x00000839 jne LBB1_76 + 0xe9, 0x0b, 0x03, 0x00, 0x00, //0x0000083f jmp LBB1_112 + //0x00000844 LBB1_77 + 0x4b, 0x8d, 0x8c, 0x34, 0xf2, 0x00, 0x00, 0x00, //0x00000844 leaq $242(%r12,%r14), %rcx + 0x4c, 0x89, 0xce, //0x0000084c movq %r9, %rsi + 0x48, 0x29, 0xde, //0x0000084f subq %rbx, %rsi + 0x31, 0xdb, //0x00000852 xorl %ebx, %ebx + 0x66, 0x0f, 0x6f, 0x05, 0x34, 0xf8, 0xff, 0xff, //0x00000854 movdqa $-1996(%rip), %xmm0 /* LCPI1_0+0(%rip) */ + //0x0000085c LBB1_78 + 0xf3, 0x0f, 0x7f, 0x84, 0x19, 0x10, 0xff, 0xff, 0xff, //0x0000085c movdqu %xmm0, $-240(%rcx,%rbx) + 0xf3, 0x0f, 0x7f, 0x84, 0x19, 0x20, 0xff, 0xff, 0xff, //0x00000865 movdqu %xmm0, $-224(%rcx,%rbx) + 0xf3, 0x0f, 0x7f, 0x84, 0x19, 0x30, 0xff, 0xff, 0xff, //0x0000086e movdqu %xmm0, $-208(%rcx,%rbx) + 0xf3, 0x0f, 0x7f, 0x84, 0x19, 0x40, 0xff, 0xff, 0xff, //0x00000877 movdqu %xmm0, $-192(%rcx,%rbx) + 0xf3, 0x0f, 0x7f, 0x84, 0x19, 0x50, 0xff, 0xff, 0xff, //0x00000880 movdqu %xmm0, $-176(%rcx,%rbx) + 0xf3, 0x0f, 0x7f, 0x84, 0x19, 0x60, 0xff, 0xff, 0xff, //0x00000889 movdqu %xmm0, $-160(%rcx,%rbx) + 0xf3, 0x0f, 0x7f, 0x84, 0x19, 0x70, 0xff, 0xff, 0xff, //0x00000892 movdqu %xmm0, $-144(%rcx,%rbx) + 0xf3, 0x0f, 0x7f, 0x44, 0x19, 0x80, //0x0000089b movdqu %xmm0, $-128(%rcx,%rbx) + 0xf3, 0x0f, 0x7f, 0x44, 0x19, 0x90, //0x000008a1 movdqu %xmm0, $-112(%rcx,%rbx) + 0xf3, 0x0f, 0x7f, 0x44, 0x19, 0xa0, //0x000008a7 movdqu %xmm0, $-96(%rcx,%rbx) + 0xf3, 0x0f, 0x7f, 0x44, 0x19, 0xb0, //0x000008ad movdqu %xmm0, $-80(%rcx,%rbx) + 0xf3, 0x0f, 0x7f, 0x44, 0x19, 0xc0, //0x000008b3 movdqu %xmm0, $-64(%rcx,%rbx) + 0xf3, 0x0f, 0x7f, 0x44, 0x19, 0xd0, //0x000008b9 movdqu %xmm0, $-48(%rcx,%rbx) + 0xf3, 0x0f, 0x7f, 0x44, 0x19, 0xe0, //0x000008bf movdqu %xmm0, $-32(%rcx,%rbx) + 0xf3, 0x0f, 0x7f, 0x44, 0x19, 0xf0, //0x000008c5 movdqu %xmm0, $-16(%rcx,%rbx) + 0xf3, 0x0f, 0x7f, 0x04, 0x19, //0x000008cb movdqu %xmm0, (%rcx,%rbx) + 0x48, 0x81, 0xc3, 0x00, 0x01, 0x00, 0x00, //0x000008d0 addq $256, %rbx + 0x48, 0x83, 0xc6, 0x08, //0x000008d7 addq $8, %rsi + 0x0f, 0x85, 0x7b, 0xff, 0xff, 0xff, //0x000008db jne LBB1_78 + //0x000008e1 LBB1_79 + 0x4d, 0x85, 0xc9, //0x000008e1 testq %r9, %r9 + 0x0f, 0x84, 0x29, 0x00, 0x00, 0x00, //0x000008e4 je LBB1_82 + 0x4c, 0x01, 0xe3, //0x000008ea addq %r12, %rbx + 0x49, 0x8d, 0x4c, 0x1e, 0x12, //0x000008ed leaq $18(%r14,%rbx), %rcx + 0x49, 0xf7, 0xd9, //0x000008f2 negq %r9 + 0x66, 0x0f, 0x6f, 0x05, 0x93, 0xf7, 0xff, 0xff, //0x000008f5 movdqa $-2157(%rip), %xmm0 /* LCPI1_0+0(%rip) */ + //0x000008fd LBB1_81 + 0xf3, 0x0f, 0x7f, 0x41, 0xf0, //0x000008fd movdqu %xmm0, $-16(%rcx) + 0xf3, 0x0f, 0x7f, 0x01, //0x00000902 movdqu %xmm0, (%rcx) + 0x48, 0x83, 0xc1, 0x20, //0x00000906 addq $32, %rcx + 0x49, 0xff, 0xc1, //0x0000090a incq %r9 + 0x0f, 0x85, 0xea, 0xff, 0xff, 0xff, //0x0000090d jne LBB1_81 + //0x00000913 LBB1_82 + 0x49, 0x01, 0xc7, //0x00000913 addq %rax, %r15 + 0x49, 0x39, 0xc0, //0x00000916 cmpq %rax, %r8 + 0x4c, 0x89, 0xd3, //0x00000919 movq %r10, %rbx + 0x0f, 0x84, 0x1f, 0x00, 0x00, 0x00, //0x0000091c je LBB1_85 + //0x00000922 LBB1_83 + 0x44, 0x89, 0xe9, //0x00000922 movl %r13d, %ecx + 0xf7, 0xd9, //0x00000925 negl %ecx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000927 .p2align 4, 0x90 + //0x00000930 LBB1_84 + 0x41, 0xc6, 0x07, 0x30, //0x00000930 movb $48, (%r15) + 0x49, 0xff, 0xc7, //0x00000934 incq %r15 + 0xff, 0xc0, //0x00000937 incl %eax + 0x39, 0xc8, //0x00000939 cmpl %ecx, %eax + 0x0f, 0x8c, 0xef, 0xff, 0xff, 0xff, //0x0000093b jl LBB1_84 + //0x00000941 LBB1_85 + 0x4c, 0x89, 0xfe, //0x00000941 movq %r15, %rsi + 0xe8, 0x37, 0x83, 0x00, 0x00, //0x00000944 callq _format_significand + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000949 .p2align 4, 0x90 + //0x00000950 LBB1_86 + 0x80, 0x78, 0xff, 0x30, //0x00000950 cmpb $48, $-1(%rax) + 0x48, 0x8d, 0x40, 0xff, //0x00000954 leaq $-1(%rax), %rax + 0x0f, 0x84, 0xf2, 0xff, 0xff, 0xff, //0x00000958 je LBB1_86 + 0x48, 0x8d, 0x48, 0x01, //0x0000095e leaq $1(%rax), %rcx + 0x45, 0x85, 0xed, //0x00000962 testl %r13d, %r13d + 0x0f, 0x8e, 0x83, 0x00, 0x00, 0x00, //0x00000965 jle LBB1_91 + 0x89, 0xca, //0x0000096b movl %ecx, %edx + 0x44, 0x29, 0xfa, //0x0000096d subl %r15d, %edx + 0x41, 0x39, 0xd5, //0x00000970 cmpl %edx, %r13d + 0x0f, 0x8d, 0x21, 0x00, 0x00, 0x00, //0x00000973 jge LBB1_92 + 0x43, 0x8d, 0x54, 0x3d, 0x00, //0x00000979 leal (%r13,%r15), %edx + 0x29, 0xd1, //0x0000097e subl %edx, %ecx + 0x48, 0x8d, 0x71, 0xff, //0x00000980 leaq $-1(%rcx), %rsi + 0x89, 0xca, //0x00000984 movl %ecx, %edx + 0x83, 0xe2, 0x03, //0x00000986 andl $3, %edx + 0x48, 0x83, 0xfe, 0x03, //0x00000989 cmpq $3, %rsi + 0x0f, 0x83, 0x63, 0x00, 0x00, 0x00, //0x0000098d jae LBB1_96 + 0x31, 0xc9, //0x00000993 xorl %ecx, %ecx + 0xe9, 0x7e, 0x00, 0x00, 0x00, //0x00000995 jmp LBB1_99 + //0x0000099a LBB1_92 + 0x0f, 0x8e, 0x4e, 0x00, 0x00, 0x00, //0x0000099a jle LBB1_91 + 0x48, 0x89, 0xde, //0x000009a0 movq %rbx, %rsi + 0x45, 0x01, 0xfd, //0x000009a3 addl %r15d, %r13d + 0x41, 0x89, 0xc8, //0x000009a6 movl %ecx, %r8d + 0x41, 0xf7, 0xd0, //0x000009a9 notl %r8d + 0x45, 0x01, 0xe8, //0x000009ac addl %r13d, %r8d + 0x31, 0xd2, //0x000009af xorl %edx, %edx + 0x48, 0x89, 0xcb, //0x000009b1 movq %rcx, %rbx + 0x41, 0x83, 0xf8, 0x1e, //0x000009b4 cmpl $30, %r8d + 0x0f, 0x86, 0x79, 0x01, 0x00, 0x00, //0x000009b8 jbe LBB1_110 + 0x49, 0xff, 0xc0, //0x000009be incq %r8 + 0x48, 0x89, 0xf3, //0x000009c1 movq %rsi, %rbx + 0x4c, 0x21, 0xc3, //0x000009c4 andq %r8, %rbx + 0x48, 0x8d, 0x73, 0xe0, //0x000009c7 leaq $-32(%rbx), %rsi + 0x48, 0x89, 0xf7, //0x000009cb movq %rsi, %rdi + 0x48, 0xc1, 0xef, 0x05, //0x000009ce shrq $5, %rdi + 0x48, 0xff, 0xc7, //0x000009d2 incq %rdi + 0x89, 0xfa, //0x000009d5 movl %edi, %edx + 0x83, 0xe2, 0x07, //0x000009d7 andl $7, %edx + 0x48, 0x81, 0xfe, 0xe0, 0x00, 0x00, 0x00, //0x000009da cmpq $224, %rsi + 0x0f, 0x83, 0x75, 0x00, 0x00, 0x00, //0x000009e1 jae LBB1_104 + 0x31, 0xff, //0x000009e7 xorl %edi, %edi + 0xe9, 0x07, 0x01, 0x00, 0x00, //0x000009e9 jmp LBB1_106 + //0x000009ee LBB1_91 + 0x48, 0x89, 0xcb, //0x000009ee movq %rcx, %rbx + 0xe9, 0x59, 0x01, 0x00, 0x00, //0x000009f1 jmp LBB1_112 + //0x000009f6 LBB1_96 + 0x48, 0x89, 0xd6, //0x000009f6 movq %rdx, %rsi + 0x48, 0x29, 0xce, //0x000009f9 subq %rcx, %rsi + 0x31, 0xc9, //0x000009fc xorl %ecx, %ecx + 0x90, 0x90, //0x000009fe .p2align 4, 0x90 + //0x00000a00 LBB1_97 + 0x8b, 0x7c, 0x08, 0xfd, //0x00000a00 movl $-3(%rax,%rcx), %edi + 0x89, 0x7c, 0x08, 0xfe, //0x00000a04 movl %edi, $-2(%rax,%rcx) + 0x48, 0x83, 0xc1, 0xfc, //0x00000a08 addq $-4, %rcx + 0x48, 0x39, 0xce, //0x00000a0c cmpq %rcx, %rsi + 0x0f, 0x85, 0xeb, 0xff, 0xff, 0xff, //0x00000a0f jne LBB1_97 + 0x48, 0xf7, 0xd9, //0x00000a15 negq %rcx + //0x00000a18 LBB1_99 + 0x48, 0x85, 0xd2, //0x00000a18 testq %rdx, %rdx + 0x0f, 0x84, 0x27, 0x00, 0x00, 0x00, //0x00000a1b je LBB1_102 + 0x48, 0xf7, 0xd9, //0x00000a21 negq %rcx + 0x48, 0xf7, 0xda, //0x00000a24 negq %rdx + 0x31, 0xf6, //0x00000a27 xorl %esi, %esi + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000a29 .p2align 4, 0x90 + //0x00000a30 LBB1_101 + 0x48, 0x8d, 0x3c, 0x31, //0x00000a30 leaq (%rcx,%rsi), %rdi + 0x0f, 0xb6, 0x1c, 0x38, //0x00000a34 movzbl (%rax,%rdi), %ebx + 0x88, 0x5c, 0x38, 0x01, //0x00000a38 movb %bl, $1(%rax,%rdi) + 0x48, 0xff, 0xce, //0x00000a3c decq %rsi + 0x48, 0x39, 0xf2, //0x00000a3f cmpq %rsi, %rdx + 0x0f, 0x85, 0xe8, 0xff, 0xff, 0xff, //0x00000a42 jne LBB1_101 + //0x00000a48 LBB1_102 + 0x49, 0x63, 0xcd, //0x00000a48 movslq %r13d, %rcx + 0x41, 0xc6, 0x04, 0x0f, 0x2e, //0x00000a4b movb $46, (%r15,%rcx) + 0x48, 0x83, 0xc0, 0x02, //0x00000a50 addq $2, %rax + 0x48, 0x89, 0xc3, //0x00000a54 movq %rax, %rbx + 0xe9, 0xf3, 0x00, 0x00, 0x00, //0x00000a57 jmp LBB1_112 + //0x00000a5c LBB1_104 + 0x48, 0x89, 0xd6, //0x00000a5c movq %rdx, %rsi + 0x48, 0x29, 0xfe, //0x00000a5f subq %rdi, %rsi + 0x31, 0xff, //0x00000a62 xorl %edi, %edi + 0x66, 0x0f, 0x6f, 0x05, 0x24, 0xf6, 0xff, 0xff, //0x00000a64 movdqa $-2524(%rip), %xmm0 /* LCPI1_0+0(%rip) */ + //0x00000a6c LBB1_105 + 0xf3, 0x0f, 0x7f, 0x44, 0x38, 0x01, //0x00000a6c movdqu %xmm0, $1(%rax,%rdi) + 0xf3, 0x0f, 0x7f, 0x44, 0x38, 0x11, //0x00000a72 movdqu %xmm0, $17(%rax,%rdi) + 0xf3, 0x0f, 0x7f, 0x44, 0x38, 0x21, //0x00000a78 movdqu %xmm0, $33(%rax,%rdi) + 0xf3, 0x0f, 0x7f, 0x44, 0x38, 0x31, //0x00000a7e movdqu %xmm0, $49(%rax,%rdi) + 0xf3, 0x0f, 0x7f, 0x44, 0x38, 0x41, //0x00000a84 movdqu %xmm0, $65(%rax,%rdi) + 0xf3, 0x0f, 0x7f, 0x44, 0x38, 0x51, //0x00000a8a movdqu %xmm0, $81(%rax,%rdi) + 0xf3, 0x0f, 0x7f, 0x44, 0x38, 0x61, //0x00000a90 movdqu %xmm0, $97(%rax,%rdi) + 0xf3, 0x0f, 0x7f, 0x44, 0x38, 0x71, //0x00000a96 movdqu %xmm0, $113(%rax,%rdi) + 0xf3, 0x0f, 0x7f, 0x84, 0x38, 0x81, 0x00, 0x00, 0x00, //0x00000a9c movdqu %xmm0, $129(%rax,%rdi) + 0xf3, 0x0f, 0x7f, 0x84, 0x38, 0x91, 0x00, 0x00, 0x00, //0x00000aa5 movdqu %xmm0, $145(%rax,%rdi) + 0xf3, 0x0f, 0x7f, 0x84, 0x38, 0xa1, 0x00, 0x00, 0x00, //0x00000aae movdqu %xmm0, $161(%rax,%rdi) + 0xf3, 0x0f, 0x7f, 0x84, 0x38, 0xb1, 0x00, 0x00, 0x00, //0x00000ab7 movdqu %xmm0, $177(%rax,%rdi) + 0xf3, 0x0f, 0x7f, 0x84, 0x38, 0xc1, 0x00, 0x00, 0x00, //0x00000ac0 movdqu %xmm0, $193(%rax,%rdi) + 0xf3, 0x0f, 0x7f, 0x84, 0x38, 0xd1, 0x00, 0x00, 0x00, //0x00000ac9 movdqu %xmm0, $209(%rax,%rdi) + 0xf3, 0x0f, 0x7f, 0x84, 0x38, 0xe1, 0x00, 0x00, 0x00, //0x00000ad2 movdqu %xmm0, $225(%rax,%rdi) + 0xf3, 0x0f, 0x7f, 0x84, 0x38, 0xf1, 0x00, 0x00, 0x00, //0x00000adb movdqu %xmm0, $241(%rax,%rdi) + 0x48, 0x81, 0xc7, 0x00, 0x01, 0x00, 0x00, //0x00000ae4 addq $256, %rdi + 0x48, 0x83, 0xc6, 0x08, //0x00000aeb addq $8, %rsi + 0x0f, 0x85, 0x77, 0xff, 0xff, 0xff, //0x00000aef jne LBB1_105 + //0x00000af5 LBB1_106 + 0x48, 0x89, 0xde, //0x00000af5 movq %rbx, %rsi + 0x48, 0x8d, 0x5c, 0x18, 0x01, //0x00000af8 leaq $1(%rax,%rbx), %rbx + 0x48, 0x85, 0xd2, //0x00000afd testq %rdx, %rdx + 0x0f, 0x84, 0x26, 0x00, 0x00, 0x00, //0x00000b00 je LBB1_109 + 0x48, 0x8d, 0x44, 0x38, 0x11, //0x00000b06 leaq $17(%rax,%rdi), %rax + 0x48, 0xf7, 0xda, //0x00000b0b negq %rdx + 0x66, 0x0f, 0x6f, 0x05, 0x7a, 0xf5, 0xff, 0xff, //0x00000b0e movdqa $-2694(%rip), %xmm0 /* LCPI1_0+0(%rip) */ + //0x00000b16 LBB1_108 + 0xf3, 0x0f, 0x7f, 0x40, 0xf0, //0x00000b16 movdqu %xmm0, $-16(%rax) + 0xf3, 0x0f, 0x7f, 0x00, //0x00000b1b movdqu %xmm0, (%rax) + 0x48, 0x83, 0xc0, 0x20, //0x00000b1f addq $32, %rax + 0x48, 0xff, 0xc2, //0x00000b23 incq %rdx + 0x0f, 0x85, 0xea, 0xff, 0xff, 0xff, //0x00000b26 jne LBB1_108 + //0x00000b2c LBB1_109 + 0x89, 0xf2, //0x00000b2c movl %esi, %edx + 0x49, 0x39, 0xf0, //0x00000b2e cmpq %rsi, %r8 + 0x0f, 0x84, 0x18, 0x00, 0x00, 0x00, //0x00000b31 je LBB1_112 + //0x00000b37 LBB1_110 + 0x41, 0x29, 0xd5, //0x00000b37 subl %edx, %r13d + 0x41, 0x29, 0xcd, //0x00000b3a subl %ecx, %r13d + 0x90, 0x90, 0x90, //0x00000b3d .p2align 4, 0x90 + //0x00000b40 LBB1_111 + 0xc6, 0x03, 0x30, //0x00000b40 movb $48, (%rbx) + 0x48, 0xff, 0xc3, //0x00000b43 incq %rbx + 0x41, 0xff, 0xcd, //0x00000b46 decl %r13d + 0x0f, 0x85, 0xf1, 0xff, 0xff, 0xff, //0x00000b49 jne LBB1_111 + //0x00000b4f LBB1_112 + 0x44, 0x29, 0xf3, //0x00000b4f subl %r14d, %ebx + //0x00000b52 LBB1_113 + 0x89, 0xd8, //0x00000b52 movl %ebx, %eax + 0x48, 0x83, 0xc4, 0x08, //0x00000b54 addq $8, %rsp + 0x5b, //0x00000b58 popq %rbx + 0x41, 0x5c, //0x00000b59 popq %r12 + 0x41, 0x5d, //0x00000b5b popq %r13 + 0x41, 0x5e, //0x00000b5d popq %r14 + 0x41, 0x5f, //0x00000b5f popq %r15 + 0x5d, //0x00000b61 popq %rbp + 0xc3, //0x00000b62 retq + //0x00000b63 LBB1_114 + 0x31, 0xdb, //0x00000b63 xorl %ebx, %ebx + 0xe9, 0xe8, 0xff, 0xff, 0xff, //0x00000b65 jmp LBB1_113 + //0x00000b6a LBB1_115 + 0xbb, 0xce, 0xfb, 0xff, 0xff, //0x00000b6a movl $-1074, %ebx + 0x48, 0x89, 0xd7, //0x00000b6f movq %rdx, %rdi + 0xe9, 0xc2, 0xf5, 0xff, 0xff, //0x00000b72 jmp LBB1_5 + //0x00000b77 LBB1_116 + 0x48, 0x81, 0xff, 0x00, 0xca, 0x9a, 0x3b, //0x00000b77 cmpq $1000000000, %rdi + 0xba, 0x0a, 0x00, 0x00, 0x00, //0x00000b7e movl $10, %edx + 0xe9, 0x64, 0xfa, 0xff, 0xff, //0x00000b83 jmp LBB1_50 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000b88 .p2align 4, 0x90 + //0x00000b90 _format_integer + 0x55, //0x00000b90 pushq %rbp + 0x48, 0x89, 0xe5, //0x00000b91 movq %rsp, %rbp + 0x53, //0x00000b94 pushq %rbx + 0x41, 0x89, 0xd0, //0x00000b95 movl %edx, %r8d + 0x49, 0x01, 0xf0, //0x00000b98 addq %rsi, %r8 + 0x48, 0x89, 0xf8, //0x00000b9b movq %rdi, %rax + 0x48, 0xc1, 0xe8, 0x20, //0x00000b9e shrq $32, %rax + 0x0f, 0x84, 0xc3, 0x00, 0x00, 0x00, //0x00000ba2 je LBB2_1 + 0x48, 0xb9, 0xfd, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x00000ba8 movabsq $-6067343680855748867, %rcx + 0x48, 0x89, 0xf8, //0x00000bb2 movq %rdi, %rax + 0x48, 0xf7, 0xe1, //0x00000bb5 mulq %rcx + 0x48, 0xc1, 0xea, 0x1a, //0x00000bb8 shrq $26, %rdx + 0x69, 0xca, 0x00, 0x1f, 0x0a, 0xfa, //0x00000bbc imull $-100000000, %edx, %ecx + 0x01, 0xf9, //0x00000bc2 addl %edi, %ecx + 0x41, 0xb9, 0x59, 0x17, 0xb7, 0xd1, //0x00000bc4 movl $3518437209, %r9d + 0x48, 0x89, 0xc8, //0x00000bca movq %rcx, %rax + 0x49, 0x0f, 0xaf, 0xc1, //0x00000bcd imulq %r9, %rax + 0x48, 0xc1, 0xe8, 0x2d, //0x00000bd1 shrq $45, %rax + 0x69, 0xf8, 0x10, 0x27, 0x00, 0x00, //0x00000bd5 imull $10000, %eax, %edi + 0x29, 0xf9, //0x00000bdb subl %edi, %ecx + 0x48, 0x89, 0xc7, //0x00000bdd movq %rax, %rdi + 0x49, 0x0f, 0xaf, 0xf9, //0x00000be0 imulq %r9, %rdi + 0x48, 0xc1, 0xef, 0x2d, //0x00000be4 shrq $45, %rdi + 0x69, 0xff, 0x10, 0x27, 0x00, 0x00, //0x00000be8 imull $10000, %edi, %edi + 0x29, 0xf8, //0x00000bee subl %edi, %eax + 0x0f, 0xb7, 0xf9, //0x00000bf0 movzwl %cx, %edi + 0xc1, 0xef, 0x02, //0x00000bf3 shrl $2, %edi + 0x44, 0x69, 0xcf, 0x7b, 0x14, 0x00, 0x00, //0x00000bf6 imull $5243, %edi, %r9d + 0x41, 0xc1, 0xe9, 0x11, //0x00000bfd shrl $17, %r9d + 0x41, 0x6b, 0xf9, 0x64, //0x00000c01 imull $100, %r9d, %edi + 0x29, 0xf9, //0x00000c05 subl %edi, %ecx + 0x44, 0x0f, 0xb7, 0xd1, //0x00000c07 movzwl %cx, %r10d + 0x0f, 0xb7, 0xf8, //0x00000c0b movzwl %ax, %edi + 0xc1, 0xef, 0x02, //0x00000c0e shrl $2, %edi + 0x69, 0xff, 0x7b, 0x14, 0x00, 0x00, //0x00000c11 imull $5243, %edi, %edi + 0xc1, 0xef, 0x11, //0x00000c17 shrl $17, %edi + 0x6b, 0xcf, 0x64, //0x00000c1a imull $100, %edi, %ecx + 0x29, 0xc8, //0x00000c1d subl %ecx, %eax + 0x44, 0x0f, 0xb7, 0xd8, //0x00000c1f movzwl %ax, %r11d + 0x48, 0x8d, 0x0d, 0x46, 0xb5, 0x00, 0x00, //0x00000c23 leaq $46406(%rip), %rcx /* _Digits+0(%rip) */ + 0x42, 0x0f, 0xb7, 0x04, 0x51, //0x00000c2a movzwl (%rcx,%r10,2), %eax + 0x66, 0x41, 0x89, 0x40, 0xfe, //0x00000c2f movw %ax, $-2(%r8) + 0x42, 0x0f, 0xb7, 0x04, 0x49, //0x00000c34 movzwl (%rcx,%r9,2), %eax + 0x66, 0x41, 0x89, 0x40, 0xfc, //0x00000c39 movw %ax, $-4(%r8) + 0x42, 0x0f, 0xb7, 0x04, 0x59, //0x00000c3e movzwl (%rcx,%r11,2), %eax + 0x66, 0x41, 0x89, 0x40, 0xfa, //0x00000c43 movw %ax, $-6(%r8) + 0x4d, 0x8d, 0x58, 0xf8, //0x00000c48 leaq $-8(%r8), %r11 + 0x0f, 0xb7, 0x0c, 0x79, //0x00000c4c movzwl (%rcx,%rdi,2), %ecx + 0x66, 0x41, 0x89, 0x48, 0xf8, //0x00000c50 movw %cx, $-8(%r8) + 0x48, 0x89, 0xd7, //0x00000c55 movq %rdx, %rdi + 0x81, 0xff, 0x10, 0x27, 0x00, 0x00, //0x00000c58 cmpl $10000, %edi + 0x0f, 0x83, 0x16, 0x00, 0x00, 0x00, //0x00000c5e jae LBB2_5 + //0x00000c64 LBB2_4 + 0x89, 0xfa, //0x00000c64 movl %edi, %edx + 0xe9, 0x6d, 0x00, 0x00, 0x00, //0x00000c66 jmp LBB2_7 + //0x00000c6b LBB2_1 + 0x4d, 0x89, 0xc3, //0x00000c6b movq %r8, %r11 + 0x81, 0xff, 0x10, 0x27, 0x00, 0x00, //0x00000c6e cmpl $10000, %edi + 0x0f, 0x82, 0xea, 0xff, 0xff, 0xff, //0x00000c74 jb LBB2_4 + //0x00000c7a LBB2_5 + 0x41, 0xb9, 0x59, 0x17, 0xb7, 0xd1, //0x00000c7a movl $3518437209, %r9d + 0x4c, 0x8d, 0x15, 0xe9, 0xb4, 0x00, 0x00, //0x00000c80 leaq $46313(%rip), %r10 /* _Digits+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000c87 .p2align 4, 0x90 + //0x00000c90 LBB2_6 + 0x89, 0xfa, //0x00000c90 movl %edi, %edx + 0x49, 0x0f, 0xaf, 0xd1, //0x00000c92 imulq %r9, %rdx + 0x48, 0xc1, 0xea, 0x2d, //0x00000c96 shrq $45, %rdx + 0x69, 0xca, 0xf0, 0xd8, 0xff, 0xff, //0x00000c9a imull $-10000, %edx, %ecx + 0x01, 0xf9, //0x00000ca0 addl %edi, %ecx + 0x48, 0x69, 0xc1, 0x1f, 0x85, 0xeb, 0x51, //0x00000ca2 imulq $1374389535, %rcx, %rax + 0x48, 0xc1, 0xe8, 0x25, //0x00000ca9 shrq $37, %rax + 0x6b, 0xd8, 0x64, //0x00000cad imull $100, %eax, %ebx + 0x29, 0xd9, //0x00000cb0 subl %ebx, %ecx + 0x41, 0x0f, 0xb7, 0x0c, 0x4a, //0x00000cb2 movzwl (%r10,%rcx,2), %ecx + 0x66, 0x41, 0x89, 0x4b, 0xfe, //0x00000cb7 movw %cx, $-2(%r11) + 0x41, 0x0f, 0xb7, 0x04, 0x42, //0x00000cbc movzwl (%r10,%rax,2), %eax + 0x66, 0x41, 0x89, 0x43, 0xfc, //0x00000cc1 movw %ax, $-4(%r11) + 0x49, 0x83, 0xc3, 0xfc, //0x00000cc6 addq $-4, %r11 + 0x81, 0xff, 0xff, 0xe0, 0xf5, 0x05, //0x00000cca cmpl $99999999, %edi + 0x89, 0xd7, //0x00000cd0 movl %edx, %edi + 0x0f, 0x87, 0xb8, 0xff, 0xff, 0xff, //0x00000cd2 ja LBB2_6 + //0x00000cd8 LBB2_7 + 0x83, 0xfa, 0x64, //0x00000cd8 cmpl $100, %edx + 0x0f, 0x82, 0x2d, 0x00, 0x00, 0x00, //0x00000cdb jb LBB2_9 + 0x0f, 0xb7, 0xc2, //0x00000ce1 movzwl %dx, %eax + 0xc1, 0xe8, 0x02, //0x00000ce4 shrl $2, %eax + 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x00000ce7 imull $5243, %eax, %eax + 0xc1, 0xe8, 0x11, //0x00000ced shrl $17, %eax + 0x6b, 0xc8, 0x64, //0x00000cf0 imull $100, %eax, %ecx + 0x29, 0xca, //0x00000cf3 subl %ecx, %edx + 0x0f, 0xb7, 0xca, //0x00000cf5 movzwl %dx, %ecx + 0x48, 0x8d, 0x15, 0x71, 0xb4, 0x00, 0x00, //0x00000cf8 leaq $46193(%rip), %rdx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x0c, 0x4a, //0x00000cff movzwl (%rdx,%rcx,2), %ecx + 0x66, 0x41, 0x89, 0x4b, 0xfe, //0x00000d03 movw %cx, $-2(%r11) + 0x49, 0x83, 0xc3, 0xfe, //0x00000d08 addq $-2, %r11 + 0x89, 0xc2, //0x00000d0c movl %eax, %edx + //0x00000d0e LBB2_9 + 0x83, 0xfa, 0x0a, //0x00000d0e cmpl $10, %edx + 0x0f, 0x82, 0x18, 0x00, 0x00, 0x00, //0x00000d11 jb LBB2_11 + 0x89, 0xd0, //0x00000d17 movl %edx, %eax + 0x48, 0x8d, 0x0d, 0x50, 0xb4, 0x00, 0x00, //0x00000d19 leaq $46160(%rip), %rcx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x04, 0x41, //0x00000d20 movzwl (%rcx,%rax,2), %eax + 0x66, 0x41, 0x89, 0x43, 0xfe, //0x00000d24 movw %ax, $-2(%r11) + 0x4c, 0x89, 0xc0, //0x00000d29 movq %r8, %rax + 0x5b, //0x00000d2c popq %rbx + 0x5d, //0x00000d2d popq %rbp + 0xc3, //0x00000d2e retq + //0x00000d2f LBB2_11 + 0x80, 0xc2, 0x30, //0x00000d2f addb $48, %dl + 0x88, 0x16, //0x00000d32 movb %dl, (%rsi) + 0x4c, 0x89, 0xc0, //0x00000d34 movq %r8, %rax + 0x5b, //0x00000d37 popq %rbx + 0x5d, //0x00000d38 popq %rbp + 0xc3, //0x00000d39 retq + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000d3a .p2align 4, 0x90 + //0x00000d40 _i64toa + 0x48, 0x85, 0xf6, //0x00000d40 testq %rsi, %rsi + 0x0f, 0x88, 0x05, 0x00, 0x00, 0x00, //0x00000d43 js LBB3_1 + 0xe9, 0x72, 0x00, 0x00, 0x00, //0x00000d49 jmp _u64toa + //0x00000d4e LBB3_1 + 0x55, //0x00000d4e pushq %rbp + 0x48, 0x89, 0xe5, //0x00000d4f movq %rsp, %rbp + 0xc6, 0x07, 0x2d, //0x00000d52 movb $45, (%rdi) + 0x48, 0xff, 0xc7, //0x00000d55 incq %rdi + 0x48, 0xf7, 0xde, //0x00000d58 negq %rsi + 0xe8, 0x60, 0x00, 0x00, 0x00, //0x00000d5b callq _u64toa + 0xff, 0xc0, //0x00000d60 incl %eax + 0x5d, //0x00000d62 popq %rbp + 0xc3, //0x00000d63 retq + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000d64 .p2align 4, 0x00 + //0x00000d70 LCPI4_0 + 0x59, 0x17, 0xb7, 0xd1, 0x00, 0x00, 0x00, 0x00, //0x00000d70 .quad 3518437209 + 0x59, 0x17, 0xb7, 0xd1, 0x00, 0x00, 0x00, 0x00, //0x00000d78 .quad 3518437209 + //0x00000d80 LCPI4_1 + 0xc5, 0x20, //0x00000d80 .word 8389 + 0x7b, 0x14, //0x00000d82 .word 5243 + 0x34, 0x33, //0x00000d84 .word 13108 + 0x00, 0x80, //0x00000d86 .word 32768 + 0xc5, 0x20, //0x00000d88 .word 8389 + 0x7b, 0x14, //0x00000d8a .word 5243 + 0x34, 0x33, //0x00000d8c .word 13108 + 0x00, 0x80, //0x00000d8e .word 32768 + //0x00000d90 LCPI4_2 + 0x80, 0x00, //0x00000d90 .word 128 + 0x00, 0x08, //0x00000d92 .word 2048 + 0x00, 0x20, //0x00000d94 .word 8192 + 0x00, 0x80, //0x00000d96 .word 32768 + 0x80, 0x00, //0x00000d98 .word 128 + 0x00, 0x08, //0x00000d9a .word 2048 + 0x00, 0x20, //0x00000d9c .word 8192 + 0x00, 0x80, //0x00000d9e .word 32768 + //0x00000da0 LCPI4_3 + 0x0a, 0x00, //0x00000da0 .word 10 + 0x0a, 0x00, //0x00000da2 .word 10 + 0x0a, 0x00, //0x00000da4 .word 10 + 0x0a, 0x00, //0x00000da6 .word 10 + 0x0a, 0x00, //0x00000da8 .word 10 + 0x0a, 0x00, //0x00000daa .word 10 + 0x0a, 0x00, //0x00000dac .word 10 + 0x0a, 0x00, //0x00000dae .word 10 + //0x00000db0 LCPI4_4 + 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, //0x00000db0 QUAD $0x3030303030303030; QUAD $0x3030303030303030 // .space 16, '0000000000000000' + //0x00000dc0 .p2align 4, 0x90 + //0x00000dc0 _u64toa + 0x55, //0x00000dc0 pushq %rbp + 0x48, 0x89, 0xe5, //0x00000dc1 movq %rsp, %rbp + 0x48, 0x81, 0xfe, 0x0f, 0x27, 0x00, 0x00, //0x00000dc4 cmpq $9999, %rsi + 0x0f, 0x87, 0xa2, 0x00, 0x00, 0x00, //0x00000dcb ja LBB4_8 + 0x0f, 0xb7, 0xc6, //0x00000dd1 movzwl %si, %eax + 0xc1, 0xe8, 0x02, //0x00000dd4 shrl $2, %eax + 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x00000dd7 imull $5243, %eax, %eax + 0xc1, 0xe8, 0x11, //0x00000ddd shrl $17, %eax + 0x48, 0x8d, 0x14, 0x00, //0x00000de0 leaq (%rax,%rax), %rdx + 0x6b, 0xc0, 0x64, //0x00000de4 imull $100, %eax, %eax + 0x89, 0xf1, //0x00000de7 movl %esi, %ecx + 0x29, 0xc1, //0x00000de9 subl %eax, %ecx + 0x0f, 0xb7, 0xc1, //0x00000deb movzwl %cx, %eax + 0x48, 0x01, 0xc0, //0x00000dee addq %rax, %rax + 0x81, 0xfe, 0xe8, 0x03, 0x00, 0x00, //0x00000df1 cmpl $1000, %esi + 0x0f, 0x82, 0x16, 0x00, 0x00, 0x00, //0x00000df7 jb LBB4_3 + 0x48, 0x8d, 0x0d, 0x6c, 0xb3, 0x00, 0x00, //0x00000dfd leaq $45932(%rip), %rcx /* _Digits+0(%rip) */ + 0x8a, 0x0c, 0x0a, //0x00000e04 movb (%rdx,%rcx), %cl + 0x88, 0x0f, //0x00000e07 movb %cl, (%rdi) + 0xb9, 0x01, 0x00, 0x00, 0x00, //0x00000e09 movl $1, %ecx + 0xe9, 0x0b, 0x00, 0x00, 0x00, //0x00000e0e jmp LBB4_4 + //0x00000e13 LBB4_3 + 0x31, 0xc9, //0x00000e13 xorl %ecx, %ecx + 0x83, 0xfe, 0x64, //0x00000e15 cmpl $100, %esi + 0x0f, 0x82, 0x45, 0x00, 0x00, 0x00, //0x00000e18 jb LBB4_5 + //0x00000e1e LBB4_4 + 0x0f, 0xb7, 0xd2, //0x00000e1e movzwl %dx, %edx + 0x48, 0x83, 0xca, 0x01, //0x00000e21 orq $1, %rdx + 0x48, 0x8d, 0x35, 0x44, 0xb3, 0x00, 0x00, //0x00000e25 leaq $45892(%rip), %rsi /* _Digits+0(%rip) */ + 0x8a, 0x14, 0x32, //0x00000e2c movb (%rdx,%rsi), %dl + 0x89, 0xce, //0x00000e2f movl %ecx, %esi + 0xff, 0xc1, //0x00000e31 incl %ecx + 0x88, 0x14, 0x37, //0x00000e33 movb %dl, (%rdi,%rsi) + //0x00000e36 LBB4_6 + 0x48, 0x8d, 0x15, 0x33, 0xb3, 0x00, 0x00, //0x00000e36 leaq $45875(%rip), %rdx /* _Digits+0(%rip) */ + 0x8a, 0x14, 0x10, //0x00000e3d movb (%rax,%rdx), %dl + 0x89, 0xce, //0x00000e40 movl %ecx, %esi + 0xff, 0xc1, //0x00000e42 incl %ecx + 0x88, 0x14, 0x37, //0x00000e44 movb %dl, (%rdi,%rsi) + //0x00000e47 LBB4_7 + 0x0f, 0xb7, 0xc0, //0x00000e47 movzwl %ax, %eax + 0x48, 0x83, 0xc8, 0x01, //0x00000e4a orq $1, %rax + 0x48, 0x8d, 0x15, 0x1b, 0xb3, 0x00, 0x00, //0x00000e4e leaq $45851(%rip), %rdx /* _Digits+0(%rip) */ + 0x8a, 0x04, 0x10, //0x00000e55 movb (%rax,%rdx), %al + 0x89, 0xca, //0x00000e58 movl %ecx, %edx + 0xff, 0xc1, //0x00000e5a incl %ecx + 0x88, 0x04, 0x17, //0x00000e5c movb %al, (%rdi,%rdx) + 0x89, 0xc8, //0x00000e5f movl %ecx, %eax + 0x5d, //0x00000e61 popq %rbp + 0xc3, //0x00000e62 retq + //0x00000e63 LBB4_5 + 0x31, 0xc9, //0x00000e63 xorl %ecx, %ecx + 0x83, 0xfe, 0x0a, //0x00000e65 cmpl $10, %esi + 0x0f, 0x83, 0xc8, 0xff, 0xff, 0xff, //0x00000e68 jae LBB4_6 + 0xe9, 0xd4, 0xff, 0xff, 0xff, //0x00000e6e jmp LBB4_7 + //0x00000e73 LBB4_8 + 0x48, 0x81, 0xfe, 0xff, 0xe0, 0xf5, 0x05, //0x00000e73 cmpq $99999999, %rsi + 0x0f, 0x87, 0x1e, 0x01, 0x00, 0x00, //0x00000e7a ja LBB4_16 + 0x89, 0xf0, //0x00000e80 movl %esi, %eax + 0xba, 0x59, 0x17, 0xb7, 0xd1, //0x00000e82 movl $3518437209, %edx + 0x48, 0x0f, 0xaf, 0xd0, //0x00000e87 imulq %rax, %rdx + 0x48, 0xc1, 0xea, 0x2d, //0x00000e8b shrq $45, %rdx + 0x44, 0x69, 0xc2, 0x10, 0x27, 0x00, 0x00, //0x00000e8f imull $10000, %edx, %r8d + 0x89, 0xf1, //0x00000e96 movl %esi, %ecx + 0x44, 0x29, 0xc1, //0x00000e98 subl %r8d, %ecx + 0x4c, 0x69, 0xd0, 0x83, 0xde, 0x1b, 0x43, //0x00000e9b imulq $1125899907, %rax, %r10 + 0x49, 0xc1, 0xea, 0x31, //0x00000ea2 shrq $49, %r10 + 0x41, 0x83, 0xe2, 0xfe, //0x00000ea6 andl $-2, %r10d + 0x0f, 0xb7, 0xc2, //0x00000eaa movzwl %dx, %eax + 0xc1, 0xe8, 0x02, //0x00000ead shrl $2, %eax + 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x00000eb0 imull $5243, %eax, %eax + 0xc1, 0xe8, 0x11, //0x00000eb6 shrl $17, %eax + 0x6b, 0xc0, 0x64, //0x00000eb9 imull $100, %eax, %eax + 0x29, 0xc2, //0x00000ebc subl %eax, %edx + 0x44, 0x0f, 0xb7, 0xca, //0x00000ebe movzwl %dx, %r9d + 0x4d, 0x01, 0xc9, //0x00000ec2 addq %r9, %r9 + 0x0f, 0xb7, 0xc1, //0x00000ec5 movzwl %cx, %eax + 0xc1, 0xe8, 0x02, //0x00000ec8 shrl $2, %eax + 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x00000ecb imull $5243, %eax, %eax + 0xc1, 0xe8, 0x11, //0x00000ed1 shrl $17, %eax + 0x4c, 0x8d, 0x04, 0x00, //0x00000ed4 leaq (%rax,%rax), %r8 + 0x6b, 0xc0, 0x64, //0x00000ed8 imull $100, %eax, %eax + 0x29, 0xc1, //0x00000edb subl %eax, %ecx + 0x44, 0x0f, 0xb7, 0xd9, //0x00000edd movzwl %cx, %r11d + 0x4d, 0x01, 0xdb, //0x00000ee1 addq %r11, %r11 + 0x81, 0xfe, 0x80, 0x96, 0x98, 0x00, //0x00000ee4 cmpl $10000000, %esi + 0x0f, 0x82, 0x17, 0x00, 0x00, 0x00, //0x00000eea jb LBB4_11 + 0x48, 0x8d, 0x05, 0x79, 0xb2, 0x00, 0x00, //0x00000ef0 leaq $45689(%rip), %rax /* _Digits+0(%rip) */ + 0x41, 0x8a, 0x04, 0x02, //0x00000ef7 movb (%r10,%rax), %al + 0x88, 0x07, //0x00000efb movb %al, (%rdi) + 0xb9, 0x01, 0x00, 0x00, 0x00, //0x00000efd movl $1, %ecx + 0xe9, 0x0e, 0x00, 0x00, 0x00, //0x00000f02 jmp LBB4_12 + //0x00000f07 LBB4_11 + 0x31, 0xc9, //0x00000f07 xorl %ecx, %ecx + 0x81, 0xfe, 0x40, 0x42, 0x0f, 0x00, //0x00000f09 cmpl $1000000, %esi + 0x0f, 0x82, 0x76, 0x00, 0x00, 0x00, //0x00000f0f jb LBB4_13 + //0x00000f15 LBB4_12 + 0x44, 0x89, 0xd0, //0x00000f15 movl %r10d, %eax + 0x48, 0x83, 0xc8, 0x01, //0x00000f18 orq $1, %rax + 0x48, 0x8d, 0x35, 0x4d, 0xb2, 0x00, 0x00, //0x00000f1c leaq $45645(%rip), %rsi /* _Digits+0(%rip) */ + 0x8a, 0x04, 0x30, //0x00000f23 movb (%rax,%rsi), %al + 0x89, 0xce, //0x00000f26 movl %ecx, %esi + 0xff, 0xc1, //0x00000f28 incl %ecx + 0x88, 0x04, 0x37, //0x00000f2a movb %al, (%rdi,%rsi) + //0x00000f2d LBB4_14 + 0x48, 0x8d, 0x05, 0x3c, 0xb2, 0x00, 0x00, //0x00000f2d leaq $45628(%rip), %rax /* _Digits+0(%rip) */ + 0x41, 0x8a, 0x04, 0x01, //0x00000f34 movb (%r9,%rax), %al + 0x89, 0xce, //0x00000f38 movl %ecx, %esi + 0xff, 0xc1, //0x00000f3a incl %ecx + 0x88, 0x04, 0x37, //0x00000f3c movb %al, (%rdi,%rsi) + //0x00000f3f LBB4_15 + 0x41, 0x0f, 0xb7, 0xc1, //0x00000f3f movzwl %r9w, %eax + 0x48, 0x83, 0xc8, 0x01, //0x00000f43 orq $1, %rax + 0x48, 0x8d, 0x35, 0x22, 0xb2, 0x00, 0x00, //0x00000f47 leaq $45602(%rip), %rsi /* _Digits+0(%rip) */ + 0x8a, 0x04, 0x30, //0x00000f4e movb (%rax,%rsi), %al + 0x89, 0xca, //0x00000f51 movl %ecx, %edx + 0x88, 0x04, 0x3a, //0x00000f53 movb %al, (%rdx,%rdi) + 0x41, 0x8a, 0x04, 0x30, //0x00000f56 movb (%r8,%rsi), %al + 0x88, 0x44, 0x3a, 0x01, //0x00000f5a movb %al, $1(%rdx,%rdi) + 0x41, 0x0f, 0xb7, 0xc0, //0x00000f5e movzwl %r8w, %eax + 0x48, 0x83, 0xc8, 0x01, //0x00000f62 orq $1, %rax + 0x8a, 0x04, 0x30, //0x00000f66 movb (%rax,%rsi), %al + 0x88, 0x44, 0x3a, 0x02, //0x00000f69 movb %al, $2(%rdx,%rdi) + 0x41, 0x8a, 0x04, 0x33, //0x00000f6d movb (%r11,%rsi), %al + 0x88, 0x44, 0x3a, 0x03, //0x00000f71 movb %al, $3(%rdx,%rdi) + 0x41, 0x0f, 0xb7, 0xc3, //0x00000f75 movzwl %r11w, %eax + 0x48, 0x83, 0xc8, 0x01, //0x00000f79 orq $1, %rax + 0x8a, 0x04, 0x30, //0x00000f7d movb (%rax,%rsi), %al + 0x83, 0xc1, 0x05, //0x00000f80 addl $5, %ecx + 0x88, 0x44, 0x3a, 0x04, //0x00000f83 movb %al, $4(%rdx,%rdi) + 0x89, 0xc8, //0x00000f87 movl %ecx, %eax + 0x5d, //0x00000f89 popq %rbp + 0xc3, //0x00000f8a retq + //0x00000f8b LBB4_13 + 0x31, 0xc9, //0x00000f8b xorl %ecx, %ecx + 0x81, 0xfe, 0xa0, 0x86, 0x01, 0x00, //0x00000f8d cmpl $100000, %esi + 0x0f, 0x83, 0x94, 0xff, 0xff, 0xff, //0x00000f93 jae LBB4_14 + 0xe9, 0xa1, 0xff, 0xff, 0xff, //0x00000f99 jmp LBB4_15 + //0x00000f9e LBB4_16 + 0x48, 0xb8, 0xff, 0xff, 0xc0, 0x6f, 0xf2, 0x86, 0x23, 0x00, //0x00000f9e movabsq $9999999999999999, %rax + 0x48, 0x39, 0xc6, //0x00000fa8 cmpq %rax, %rsi + 0x0f, 0x87, 0x15, 0x01, 0x00, 0x00, //0x00000fab ja LBB4_18 + 0x48, 0xb9, 0xfd, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x00000fb1 movabsq $-6067343680855748867, %rcx + 0x48, 0x89, 0xf0, //0x00000fbb movq %rsi, %rax + 0x48, 0xf7, 0xe1, //0x00000fbe mulq %rcx + 0x48, 0xc1, 0xea, 0x1a, //0x00000fc1 shrq $26, %rdx + 0x69, 0xc2, 0x00, 0xe1, 0xf5, 0x05, //0x00000fc5 imull $100000000, %edx, %eax + 0x29, 0xc6, //0x00000fcb subl %eax, %esi + 0x66, 0x0f, 0x6e, 0xc2, //0x00000fcd movd %edx, %xmm0 + 0x66, 0x0f, 0x6f, 0x0d, 0x97, 0xfd, 0xff, 0xff, //0x00000fd1 movdqa $-617(%rip), %xmm1 /* LCPI4_0+0(%rip) */ + 0x66, 0x0f, 0x6f, 0xd0, //0x00000fd9 movdqa %xmm0, %xmm2 + 0x66, 0x0f, 0xf4, 0xd1, //0x00000fdd pmuludq %xmm1, %xmm2 + 0x66, 0x0f, 0x73, 0xd2, 0x2d, //0x00000fe1 psrlq $45, %xmm2 + 0xb8, 0x10, 0x27, 0x00, 0x00, //0x00000fe6 movl $10000, %eax + 0x66, 0x48, 0x0f, 0x6e, 0xd8, //0x00000feb movq %rax, %xmm3 + 0x66, 0x0f, 0x6f, 0xe2, //0x00000ff0 movdqa %xmm2, %xmm4 + 0x66, 0x0f, 0xf4, 0xe3, //0x00000ff4 pmuludq %xmm3, %xmm4 + 0x66, 0x0f, 0xfa, 0xc4, //0x00000ff8 psubd %xmm4, %xmm0 + 0x66, 0x0f, 0x61, 0xd0, //0x00000ffc punpcklwd %xmm0, %xmm2 + 0x66, 0x0f, 0x73, 0xf2, 0x02, //0x00001000 psllq $2, %xmm2 + 0xf2, 0x0f, 0x70, 0xc2, 0x50, //0x00001005 pshuflw $80, %xmm2, %xmm0 + 0x66, 0x0f, 0x70, 0xc0, 0x50, //0x0000100a pshufd $80, %xmm0, %xmm0 + 0x66, 0x0f, 0x6f, 0x15, 0x69, 0xfd, 0xff, 0xff, //0x0000100f movdqa $-663(%rip), %xmm2 /* LCPI4_1+0(%rip) */ + 0x66, 0x0f, 0xe4, 0xc2, //0x00001017 pmulhuw %xmm2, %xmm0 + 0x66, 0x0f, 0x6f, 0x25, 0x6d, 0xfd, 0xff, 0xff, //0x0000101b movdqa $-659(%rip), %xmm4 /* LCPI4_2+0(%rip) */ + 0x66, 0x0f, 0xe4, 0xc4, //0x00001023 pmulhuw %xmm4, %xmm0 + 0x66, 0x0f, 0x6f, 0x2d, 0x71, 0xfd, 0xff, 0xff, //0x00001027 movdqa $-655(%rip), %xmm5 /* LCPI4_3+0(%rip) */ + 0x66, 0x0f, 0x6f, 0xf0, //0x0000102f movdqa %xmm0, %xmm6 + 0x66, 0x0f, 0xd5, 0xf5, //0x00001033 pmullw %xmm5, %xmm6 + 0x66, 0x0f, 0x73, 0xf6, 0x10, //0x00001037 psllq $16, %xmm6 + 0x66, 0x0f, 0xf9, 0xc6, //0x0000103c psubw %xmm6, %xmm0 + 0x66, 0x0f, 0x6e, 0xf6, //0x00001040 movd %esi, %xmm6 + 0x66, 0x0f, 0xf4, 0xce, //0x00001044 pmuludq %xmm6, %xmm1 + 0x66, 0x0f, 0x73, 0xd1, 0x2d, //0x00001048 psrlq $45, %xmm1 + 0x66, 0x0f, 0xf4, 0xd9, //0x0000104d pmuludq %xmm1, %xmm3 + 0x66, 0x0f, 0xfa, 0xf3, //0x00001051 psubd %xmm3, %xmm6 + 0x66, 0x0f, 0x61, 0xce, //0x00001055 punpcklwd %xmm6, %xmm1 + 0x66, 0x0f, 0x73, 0xf1, 0x02, //0x00001059 psllq $2, %xmm1 + 0xf2, 0x0f, 0x70, 0xc9, 0x50, //0x0000105e pshuflw $80, %xmm1, %xmm1 + 0x66, 0x0f, 0x70, 0xc9, 0x50, //0x00001063 pshufd $80, %xmm1, %xmm1 + 0x66, 0x0f, 0xe4, 0xca, //0x00001068 pmulhuw %xmm2, %xmm1 + 0x66, 0x0f, 0xe4, 0xcc, //0x0000106c pmulhuw %xmm4, %xmm1 + 0x66, 0x0f, 0xd5, 0xe9, //0x00001070 pmullw %xmm1, %xmm5 + 0x66, 0x0f, 0x73, 0xf5, 0x10, //0x00001074 psllq $16, %xmm5 + 0x66, 0x0f, 0xf9, 0xcd, //0x00001079 psubw %xmm5, %xmm1 + 0x66, 0x0f, 0x67, 0xc1, //0x0000107d packuswb %xmm1, %xmm0 + 0x66, 0x0f, 0x6f, 0x0d, 0x27, 0xfd, 0xff, 0xff, //0x00001081 movdqa $-729(%rip), %xmm1 /* LCPI4_4+0(%rip) */ + 0x66, 0x0f, 0xfc, 0xc8, //0x00001089 paddb %xmm0, %xmm1 + 0x66, 0x0f, 0xef, 0xd2, //0x0000108d pxor %xmm2, %xmm2 + 0x66, 0x0f, 0x74, 0xd0, //0x00001091 pcmpeqb %xmm0, %xmm2 + 0x66, 0x0f, 0xd7, 0xc2, //0x00001095 pmovmskb %xmm2, %eax + 0x0d, 0x00, 0x80, 0x00, 0x00, //0x00001099 orl $32768, %eax + 0x35, 0xff, 0x7f, 0xff, 0xff, //0x0000109e xorl $-32769, %eax + 0x0f, 0xbc, 0xc0, //0x000010a3 bsfl %eax, %eax + 0xb9, 0x10, 0x00, 0x00, 0x00, //0x000010a6 movl $16, %ecx + 0x29, 0xc1, //0x000010ab subl %eax, %ecx + 0x48, 0xc1, 0xe0, 0x04, //0x000010ad shlq $4, %rax + 0x48, 0x8d, 0x15, 0x18, 0xd8, 0x00, 0x00, //0x000010b1 leaq $55320(%rip), %rdx /* _VecShiftShuffles+0(%rip) */ + 0x66, 0x0f, 0x38, 0x00, 0x0c, 0x10, //0x000010b8 pshufb (%rax,%rdx), %xmm1 + 0xf3, 0x0f, 0x7f, 0x0f, //0x000010be movdqu %xmm1, (%rdi) + 0x89, 0xc8, //0x000010c2 movl %ecx, %eax + 0x5d, //0x000010c4 popq %rbp + 0xc3, //0x000010c5 retq + //0x000010c6 LBB4_18 + 0x48, 0xb9, 0x57, 0x78, 0x13, 0xb1, 0x2f, 0x65, 0xa5, 0x39, //0x000010c6 movabsq $4153837486827862103, %rcx + 0x48, 0x89, 0xf0, //0x000010d0 movq %rsi, %rax + 0x48, 0xf7, 0xe1, //0x000010d3 mulq %rcx + 0x48, 0xc1, 0xea, 0x33, //0x000010d6 shrq $51, %rdx + 0x48, 0xb8, 0x00, 0x00, 0xc1, 0x6f, 0xf2, 0x86, 0x23, 0x00, //0x000010da movabsq $10000000000000000, %rax + 0x48, 0x0f, 0xaf, 0xc2, //0x000010e4 imulq %rdx, %rax + 0x48, 0x29, 0xc6, //0x000010e8 subq %rax, %rsi + 0x83, 0xfa, 0x09, //0x000010eb cmpl $9, %edx + 0x0f, 0x87, 0x0f, 0x00, 0x00, 0x00, //0x000010ee ja LBB4_20 + 0x80, 0xc2, 0x30, //0x000010f4 addb $48, %dl + 0x88, 0x17, //0x000010f7 movb %dl, (%rdi) + 0xb9, 0x01, 0x00, 0x00, 0x00, //0x000010f9 movl $1, %ecx + 0xe9, 0xba, 0x00, 0x00, 0x00, //0x000010fe jmp LBB4_25 + //0x00001103 LBB4_20 + 0x83, 0xfa, 0x63, //0x00001103 cmpl $99, %edx + 0x0f, 0x87, 0x1f, 0x00, 0x00, 0x00, //0x00001106 ja LBB4_22 + 0x89, 0xd0, //0x0000110c movl %edx, %eax + 0x48, 0x8d, 0x0d, 0x5b, 0xb0, 0x00, 0x00, //0x0000110e leaq $45147(%rip), %rcx /* _Digits+0(%rip) */ + 0x8a, 0x14, 0x41, //0x00001115 movb (%rcx,%rax,2), %dl + 0x8a, 0x44, 0x41, 0x01, //0x00001118 movb $1(%rcx,%rax,2), %al + 0x88, 0x17, //0x0000111c movb %dl, (%rdi) + 0x88, 0x47, 0x01, //0x0000111e movb %al, $1(%rdi) + 0xb9, 0x02, 0x00, 0x00, 0x00, //0x00001121 movl $2, %ecx + 0xe9, 0x92, 0x00, 0x00, 0x00, //0x00001126 jmp LBB4_25 + //0x0000112b LBB4_22 + 0x89, 0xd0, //0x0000112b movl %edx, %eax + 0xc1, 0xe8, 0x02, //0x0000112d shrl $2, %eax + 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x00001130 imull $5243, %eax, %eax + 0xc1, 0xe8, 0x11, //0x00001136 shrl $17, %eax + 0x81, 0xfa, 0xe7, 0x03, 0x00, 0x00, //0x00001139 cmpl $999, %edx + 0x0f, 0x87, 0x3c, 0x00, 0x00, 0x00, //0x0000113f ja LBB4_24 + 0x83, 0xc0, 0x30, //0x00001145 addl $48, %eax + 0x88, 0x07, //0x00001148 movb %al, (%rdi) + 0x0f, 0xb7, 0xc2, //0x0000114a movzwl %dx, %eax + 0x89, 0xc1, //0x0000114d movl %eax, %ecx + 0xc1, 0xe9, 0x02, //0x0000114f shrl $2, %ecx + 0x69, 0xc9, 0x7b, 0x14, 0x00, 0x00, //0x00001152 imull $5243, %ecx, %ecx + 0xc1, 0xe9, 0x11, //0x00001158 shrl $17, %ecx + 0x6b, 0xc9, 0x64, //0x0000115b imull $100, %ecx, %ecx + 0x29, 0xc8, //0x0000115e subl %ecx, %eax + 0x0f, 0xb7, 0xc0, //0x00001160 movzwl %ax, %eax + 0x48, 0x8d, 0x0d, 0x06, 0xb0, 0x00, 0x00, //0x00001163 leaq $45062(%rip), %rcx /* _Digits+0(%rip) */ + 0x8a, 0x14, 0x41, //0x0000116a movb (%rcx,%rax,2), %dl + 0x8a, 0x44, 0x41, 0x01, //0x0000116d movb $1(%rcx,%rax,2), %al + 0x88, 0x57, 0x01, //0x00001171 movb %dl, $1(%rdi) + 0x88, 0x47, 0x02, //0x00001174 movb %al, $2(%rdi) + 0xb9, 0x03, 0x00, 0x00, 0x00, //0x00001177 movl $3, %ecx + 0xe9, 0x3c, 0x00, 0x00, 0x00, //0x0000117c jmp LBB4_25 + //0x00001181 LBB4_24 + 0x6b, 0xc8, 0x64, //0x00001181 imull $100, %eax, %ecx + 0x29, 0xca, //0x00001184 subl %ecx, %edx + 0x0f, 0xb7, 0xc0, //0x00001186 movzwl %ax, %eax + 0x4c, 0x8d, 0x05, 0xe0, 0xaf, 0x00, 0x00, //0x00001189 leaq $45024(%rip), %r8 /* _Digits+0(%rip) */ + 0x41, 0x8a, 0x0c, 0x40, //0x00001190 movb (%r8,%rax,2), %cl + 0x41, 0x8a, 0x44, 0x40, 0x01, //0x00001194 movb $1(%r8,%rax,2), %al + 0x88, 0x0f, //0x00001199 movb %cl, (%rdi) + 0x88, 0x47, 0x01, //0x0000119b movb %al, $1(%rdi) + 0x0f, 0xb7, 0xc2, //0x0000119e movzwl %dx, %eax + 0x41, 0x8a, 0x0c, 0x40, //0x000011a1 movb (%r8,%rax,2), %cl + 0x48, 0x01, 0xc0, //0x000011a5 addq %rax, %rax + 0x88, 0x4f, 0x02, //0x000011a8 movb %cl, $2(%rdi) + 0x83, 0xc8, 0x01, //0x000011ab orl $1, %eax + 0x0f, 0xb7, 0xc0, //0x000011ae movzwl %ax, %eax + 0x42, 0x8a, 0x04, 0x00, //0x000011b1 movb (%rax,%r8), %al + 0x88, 0x47, 0x03, //0x000011b5 movb %al, $3(%rdi) + 0xb9, 0x04, 0x00, 0x00, 0x00, //0x000011b8 movl $4, %ecx + //0x000011bd LBB4_25 + 0x48, 0xba, 0xfd, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x000011bd movabsq $-6067343680855748867, %rdx + 0x48, 0x89, 0xf0, //0x000011c7 movq %rsi, %rax + 0x48, 0xf7, 0xe2, //0x000011ca mulq %rdx + 0x48, 0xc1, 0xea, 0x1a, //0x000011cd shrq $26, %rdx + 0x66, 0x0f, 0x6e, 0xc2, //0x000011d1 movd %edx, %xmm0 + 0x66, 0x0f, 0x6f, 0x0d, 0x93, 0xfb, 0xff, 0xff, //0x000011d5 movdqa $-1133(%rip), %xmm1 /* LCPI4_0+0(%rip) */ + 0x66, 0x0f, 0x6f, 0xd8, //0x000011dd movdqa %xmm0, %xmm3 + 0x66, 0x0f, 0xf4, 0xd9, //0x000011e1 pmuludq %xmm1, %xmm3 + 0x66, 0x0f, 0x73, 0xd3, 0x2d, //0x000011e5 psrlq $45, %xmm3 + 0xb8, 0x10, 0x27, 0x00, 0x00, //0x000011ea movl $10000, %eax + 0x66, 0x48, 0x0f, 0x6e, 0xd0, //0x000011ef movq %rax, %xmm2 + 0x66, 0x0f, 0x6f, 0xe3, //0x000011f4 movdqa %xmm3, %xmm4 + 0x66, 0x0f, 0xf4, 0xe2, //0x000011f8 pmuludq %xmm2, %xmm4 + 0x66, 0x0f, 0xfa, 0xc4, //0x000011fc psubd %xmm4, %xmm0 + 0x66, 0x0f, 0x61, 0xd8, //0x00001200 punpcklwd %xmm0, %xmm3 + 0x66, 0x0f, 0x73, 0xf3, 0x02, //0x00001204 psllq $2, %xmm3 + 0xf2, 0x0f, 0x70, 0xc3, 0x50, //0x00001209 pshuflw $80, %xmm3, %xmm0 + 0x66, 0x0f, 0x70, 0xc0, 0x50, //0x0000120e pshufd $80, %xmm0, %xmm0 + 0x66, 0x0f, 0x6f, 0x25, 0x65, 0xfb, 0xff, 0xff, //0x00001213 movdqa $-1179(%rip), %xmm4 /* LCPI4_1+0(%rip) */ + 0x66, 0x0f, 0xe4, 0xc4, //0x0000121b pmulhuw %xmm4, %xmm0 + 0x66, 0x0f, 0x6f, 0x2d, 0x69, 0xfb, 0xff, 0xff, //0x0000121f movdqa $-1175(%rip), %xmm5 /* LCPI4_2+0(%rip) */ + 0x66, 0x0f, 0xe4, 0xc5, //0x00001227 pmulhuw %xmm5, %xmm0 + 0x66, 0x0f, 0x6f, 0x1d, 0x6d, 0xfb, 0xff, 0xff, //0x0000122b movdqa $-1171(%rip), %xmm3 /* LCPI4_3+0(%rip) */ + 0x66, 0x0f, 0x6f, 0xf0, //0x00001233 movdqa %xmm0, %xmm6 + 0x66, 0x0f, 0xd5, 0xf3, //0x00001237 pmullw %xmm3, %xmm6 + 0x66, 0x0f, 0x73, 0xf6, 0x10, //0x0000123b psllq $16, %xmm6 + 0x66, 0x0f, 0xf9, 0xc6, //0x00001240 psubw %xmm6, %xmm0 + 0x69, 0xc2, 0x00, 0xe1, 0xf5, 0x05, //0x00001244 imull $100000000, %edx, %eax + 0x29, 0xc6, //0x0000124a subl %eax, %esi + 0x66, 0x0f, 0x6e, 0xf6, //0x0000124c movd %esi, %xmm6 + 0x66, 0x0f, 0xf4, 0xce, //0x00001250 pmuludq %xmm6, %xmm1 + 0x66, 0x0f, 0x73, 0xd1, 0x2d, //0x00001254 psrlq $45, %xmm1 + 0x66, 0x0f, 0xf4, 0xd1, //0x00001259 pmuludq %xmm1, %xmm2 + 0x66, 0x0f, 0xfa, 0xf2, //0x0000125d psubd %xmm2, %xmm6 + 0x66, 0x0f, 0x61, 0xce, //0x00001261 punpcklwd %xmm6, %xmm1 + 0x66, 0x0f, 0x73, 0xf1, 0x02, //0x00001265 psllq $2, %xmm1 + 0xf2, 0x0f, 0x70, 0xc9, 0x50, //0x0000126a pshuflw $80, %xmm1, %xmm1 + 0x66, 0x0f, 0x70, 0xc9, 0x50, //0x0000126f pshufd $80, %xmm1, %xmm1 + 0x66, 0x0f, 0xe4, 0xcc, //0x00001274 pmulhuw %xmm4, %xmm1 + 0x66, 0x0f, 0xe4, 0xcd, //0x00001278 pmulhuw %xmm5, %xmm1 + 0x66, 0x0f, 0xd5, 0xd9, //0x0000127c pmullw %xmm1, %xmm3 + 0x66, 0x0f, 0x73, 0xf3, 0x10, //0x00001280 psllq $16, %xmm3 + 0x66, 0x0f, 0xf9, 0xcb, //0x00001285 psubw %xmm3, %xmm1 + 0x66, 0x0f, 0x67, 0xc1, //0x00001289 packuswb %xmm1, %xmm0 + 0x66, 0x0f, 0xfc, 0x05, 0x1b, 0xfb, 0xff, 0xff, //0x0000128d paddb $-1253(%rip), %xmm0 /* LCPI4_4+0(%rip) */ + 0x89, 0xc8, //0x00001295 movl %ecx, %eax + 0xf3, 0x0f, 0x7f, 0x04, 0x07, //0x00001297 movdqu %xmm0, (%rdi,%rax) + 0x83, 0xc9, 0x10, //0x0000129c orl $16, %ecx + 0x89, 0xc8, //0x0000129f movl %ecx, %eax + 0x5d, //0x000012a1 popq %rbp + 0xc3, //0x000012a2 retq + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000012a3 .p2align 4, 0x00 + //0x000012b0 LCPI5_0 + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x000012b0 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' + //0x000012c0 LCPI5_1 + 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, //0x000012c0 QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' + //0x000012d0 LCPI5_2 + 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x000012d0 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + //0x000012e0 .p2align 4, 0x90 + //0x000012e0 _quote + 0x55, //0x000012e0 pushq %rbp + 0x48, 0x89, 0xe5, //0x000012e1 movq %rsp, %rbp + 0x41, 0x57, //0x000012e4 pushq %r15 + 0x41, 0x56, //0x000012e6 pushq %r14 + 0x41, 0x55, //0x000012e8 pushq %r13 + 0x41, 0x54, //0x000012ea pushq %r12 + 0x53, //0x000012ec pushq %rbx + 0x48, 0x83, 0xec, 0x10, //0x000012ed subq $16, %rsp + 0x49, 0x89, 0xcb, //0x000012f1 movq %rcx, %r11 + 0x49, 0x89, 0xd4, //0x000012f4 movq %rdx, %r12 + 0x48, 0x89, 0xf0, //0x000012f7 movq %rsi, %rax + 0x4c, 0x8b, 0x31, //0x000012fa movq (%rcx), %r14 + 0x41, 0xf6, 0xc0, 0x01, //0x000012fd testb $1, %r8b + 0x48, 0x8d, 0x0d, 0x58, 0xd6, 0x00, 0x00, //0x00001301 leaq $54872(%rip), %rcx /* __SingleQuoteTab+0(%rip) */ + 0x4c, 0x8d, 0x05, 0x51, 0xe6, 0x00, 0x00, //0x00001308 leaq $58961(%rip), %r8 /* __DoubleQuoteTab+0(%rip) */ + 0x4c, 0x0f, 0x44, 0xc1, //0x0000130f cmoveq %rcx, %r8 + 0x48, 0x8d, 0x0c, 0xf5, 0x00, 0x00, 0x00, 0x00, //0x00001313 leaq (,%rsi,8), %rcx + 0x49, 0x39, 0xce, //0x0000131b cmpq %rcx, %r14 + 0x0f, 0x8d, 0xee, 0x03, 0x00, 0x00, //0x0000131e jge LBB5_51 + 0x4d, 0x89, 0xe7, //0x00001324 movq %r12, %r15 + 0x49, 0x89, 0xfa, //0x00001327 movq %rdi, %r10 + 0x48, 0x85, 0xc0, //0x0000132a testq %rax, %rax + 0x0f, 0x84, 0xd1, 0x03, 0x00, 0x00, //0x0000132d je LBB5_74 + 0x66, 0x0f, 0x6f, 0x05, 0x75, 0xff, 0xff, 0xff, //0x00001333 movdqa $-139(%rip), %xmm0 /* LCPI5_0+0(%rip) */ + 0x66, 0x0f, 0x6f, 0x0d, 0x7d, 0xff, 0xff, 0xff, //0x0000133b movdqa $-131(%rip), %xmm1 /* LCPI5_1+0(%rip) */ + 0x66, 0x0f, 0x6f, 0x15, 0x85, 0xff, 0xff, 0xff, //0x00001343 movdqa $-123(%rip), %xmm2 /* LCPI5_2+0(%rip) */ + 0x66, 0x0f, 0x76, 0xdb, //0x0000134b pcmpeqd %xmm3, %xmm3 + 0x49, 0x89, 0xfa, //0x0000134f movq %rdi, %r10 + 0x4d, 0x89, 0xe7, //0x00001352 movq %r12, %r15 + 0x4c, 0x89, 0x65, 0xc8, //0x00001355 movq %r12, $-56(%rbp) + //0x00001359 LBB5_3 + 0x48, 0x83, 0xf8, 0x0f, //0x00001359 cmpq $15, %rax + 0x0f, 0x9f, 0xc3, //0x0000135d setg %bl + 0x4d, 0x89, 0xf1, //0x00001360 movq %r14, %r9 + 0x4d, 0x89, 0xfd, //0x00001363 movq %r15, %r13 + 0x48, 0x89, 0xc6, //0x00001366 movq %rax, %rsi + 0x4d, 0x89, 0xd4, //0x00001369 movq %r10, %r12 + 0x49, 0x83, 0xfe, 0x10, //0x0000136c cmpq $16, %r14 + 0x0f, 0x8c, 0x8a, 0x00, 0x00, 0x00, //0x00001370 jl LBB5_9 + 0x48, 0x83, 0xf8, 0x10, //0x00001376 cmpq $16, %rax + 0x0f, 0x8c, 0x80, 0x00, 0x00, 0x00, //0x0000137a jl LBB5_9 + 0x4d, 0x89, 0xd4, //0x00001380 movq %r10, %r12 + 0x48, 0x89, 0xc6, //0x00001383 movq %rax, %rsi + 0x4d, 0x89, 0xfd, //0x00001386 movq %r15, %r13 + 0x4c, 0x89, 0xf1, //0x00001389 movq %r14, %rcx + 0x90, 0x90, 0x90, 0x90, //0x0000138c .p2align 4, 0x90 + //0x00001390 LBB5_6 + 0xf3, 0x41, 0x0f, 0x6f, 0x24, 0x24, //0x00001390 movdqu (%r12), %xmm4 + 0x66, 0x0f, 0x6f, 0xe8, //0x00001396 movdqa %xmm0, %xmm5 + 0x66, 0x0f, 0x64, 0xec, //0x0000139a pcmpgtb %xmm4, %xmm5 + 0x66, 0x0f, 0x6f, 0xf4, //0x0000139e movdqa %xmm4, %xmm6 + 0x66, 0x0f, 0x74, 0xf1, //0x000013a2 pcmpeqb %xmm1, %xmm6 + 0x66, 0x0f, 0x6f, 0xfc, //0x000013a6 movdqa %xmm4, %xmm7 + 0x66, 0x0f, 0x74, 0xfa, //0x000013aa pcmpeqb %xmm2, %xmm7 + 0x66, 0x0f, 0xeb, 0xfe, //0x000013ae por %xmm6, %xmm7 + 0xf3, 0x41, 0x0f, 0x7f, 0x65, 0x00, //0x000013b2 movdqu %xmm4, (%r13) + 0x66, 0x0f, 0x64, 0xe3, //0x000013b8 pcmpgtb %xmm3, %xmm4 + 0x66, 0x0f, 0xdb, 0xe5, //0x000013bc pand %xmm5, %xmm4 + 0x66, 0x0f, 0xeb, 0xe7, //0x000013c0 por %xmm7, %xmm4 + 0x66, 0x0f, 0xd7, 0xdc, //0x000013c4 pmovmskb %xmm4, %ebx + 0x66, 0x85, 0xdb, //0x000013c8 testw %bx, %bx + 0x0f, 0x85, 0x24, 0x01, 0x00, 0x00, //0x000013cb jne LBB5_19 + 0x49, 0x83, 0xc4, 0x10, //0x000013d1 addq $16, %r12 + 0x49, 0x83, 0xc5, 0x10, //0x000013d5 addq $16, %r13 + 0x4c, 0x8d, 0x49, 0xf0, //0x000013d9 leaq $-16(%rcx), %r9 + 0x48, 0x83, 0xfe, 0x1f, //0x000013dd cmpq $31, %rsi + 0x0f, 0x9f, 0xc3, //0x000013e1 setg %bl + 0x48, 0x83, 0xfe, 0x20, //0x000013e4 cmpq $32, %rsi + 0x48, 0x8d, 0x76, 0xf0, //0x000013e8 leaq $-16(%rsi), %rsi + 0x0f, 0x8c, 0x0e, 0x00, 0x00, 0x00, //0x000013ec jl LBB5_9 + 0x48, 0x83, 0xf9, 0x1f, //0x000013f2 cmpq $31, %rcx + 0x4c, 0x89, 0xc9, //0x000013f6 movq %r9, %rcx + 0x0f, 0x8f, 0x91, 0xff, 0xff, 0xff, //0x000013f9 jg LBB5_6 + 0x90, //0x000013ff .p2align 4, 0x90 + //0x00001400 LBB5_9 + 0x84, 0xdb, //0x00001400 testb %bl, %bl + 0x0f, 0x84, 0x78, 0x00, 0x00, 0x00, //0x00001402 je LBB5_13 + 0x4c, 0x89, 0x5d, 0xd0, //0x00001408 movq %r11, $-48(%rbp) + 0xf3, 0x41, 0x0f, 0x6f, 0x24, 0x24, //0x0000140c movdqu (%r12), %xmm4 + 0x66, 0x0f, 0x6f, 0xe8, //0x00001412 movdqa %xmm0, %xmm5 + 0x66, 0x0f, 0x64, 0xec, //0x00001416 pcmpgtb %xmm4, %xmm5 + 0x66, 0x0f, 0x6f, 0xf4, //0x0000141a movdqa %xmm4, %xmm6 + 0x66, 0x0f, 0x74, 0xf1, //0x0000141e pcmpeqb %xmm1, %xmm6 + 0x66, 0x0f, 0x6f, 0xfc, //0x00001422 movdqa %xmm4, %xmm7 + 0x66, 0x0f, 0x74, 0xfa, //0x00001426 pcmpeqb %xmm2, %xmm7 + 0x66, 0x0f, 0xeb, 0xfe, //0x0000142a por %xmm6, %xmm7 + 0x66, 0x48, 0x0f, 0x7e, 0xe1, //0x0000142e movq %xmm4, %rcx + 0x66, 0x0f, 0x64, 0xe3, //0x00001433 pcmpgtb %xmm3, %xmm4 + 0x66, 0x0f, 0xdb, 0xe5, //0x00001437 pand %xmm5, %xmm4 + 0x66, 0x0f, 0xeb, 0xe7, //0x0000143b por %xmm7, %xmm4 + 0x66, 0x0f, 0xd7, 0xf4, //0x0000143f pmovmskb %xmm4, %esi + 0x81, 0xce, 0x00, 0x00, 0x01, 0x00, //0x00001443 orl $65536, %esi + 0x44, 0x0f, 0xbc, 0xde, //0x00001449 bsfl %esi, %r11d + 0x4d, 0x39, 0xd9, //0x0000144d cmpq %r11, %r9 + 0x0f, 0x8d, 0xb1, 0x00, 0x00, 0x00, //0x00001450 jge LBB5_20 + 0x49, 0x83, 0xf9, 0x08, //0x00001456 cmpq $8, %r9 + 0x0f, 0x82, 0xdc, 0x00, 0x00, 0x00, //0x0000145a jb LBB5_23 + 0x49, 0x89, 0x4d, 0x00, //0x00001460 movq %rcx, (%r13) + 0x4d, 0x8d, 0x5c, 0x24, 0x08, //0x00001464 leaq $8(%r12), %r11 + 0x49, 0x83, 0xc5, 0x08, //0x00001469 addq $8, %r13 + 0x49, 0x8d, 0x71, 0xf8, //0x0000146d leaq $-8(%r9), %rsi + 0x48, 0x83, 0xfe, 0x04, //0x00001471 cmpq $4, %rsi + 0x0f, 0x8d, 0xd1, 0x00, 0x00, 0x00, //0x00001475 jge LBB5_24 + 0xe9, 0xdf, 0x00, 0x00, 0x00, //0x0000147b jmp LBB5_25 + //0x00001480 LBB5_13 + 0x4d, 0x85, 0xc9, //0x00001480 testq %r9, %r9 + 0x0f, 0x8e, 0x5b, 0x00, 0x00, 0x00, //0x00001483 jle LBB5_18 + 0x48, 0x85, 0xf6, //0x00001489 testq %rsi, %rsi + 0x0f, 0x8e, 0x52, 0x00, 0x00, 0x00, //0x0000148c jle LBB5_18 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001492 .p2align 4, 0x90 + //0x000014a0 LBB5_15 + 0x41, 0x0f, 0xb6, 0x1c, 0x24, //0x000014a0 movzbl (%r12), %ebx + 0x48, 0x89, 0xd9, //0x000014a5 movq %rbx, %rcx + 0x48, 0xc1, 0xe1, 0x04, //0x000014a8 shlq $4, %rcx + 0x48, 0x8d, 0x15, 0xad, 0xd4, 0x00, 0x00, //0x000014ac leaq $54445(%rip), %rdx /* __SingleQuoteTab+0(%rip) */ + 0x48, 0x83, 0x3c, 0x11, 0x00, //0x000014b3 cmpq $0, (%rcx,%rdx) + 0x0f, 0x85, 0x73, 0x00, 0x00, 0x00, //0x000014b8 jne LBB5_22 + 0x49, 0xff, 0xc4, //0x000014be incq %r12 + 0x41, 0x88, 0x5d, 0x00, //0x000014c1 movb %bl, (%r13) + 0x48, 0x83, 0xfe, 0x02, //0x000014c5 cmpq $2, %rsi + 0x48, 0x8d, 0x76, 0xff, //0x000014c9 leaq $-1(%rsi), %rsi + 0x0f, 0x8c, 0x11, 0x00, 0x00, 0x00, //0x000014cd jl LBB5_18 + 0x49, 0xff, 0xc5, //0x000014d3 incq %r13 + 0x49, 0x83, 0xf9, 0x01, //0x000014d6 cmpq $1, %r9 + 0x4d, 0x8d, 0x49, 0xff, //0x000014da leaq $-1(%r9), %r9 + 0x0f, 0x8f, 0xbc, 0xff, 0xff, 0xff, //0x000014de jg LBB5_15 + //0x000014e4 LBB5_18 + 0x4d, 0x29, 0xd4, //0x000014e4 subq %r10, %r12 + 0x48, 0xf7, 0xde, //0x000014e7 negq %rsi + 0x4d, 0x19, 0xc9, //0x000014ea sbbq %r9, %r9 + 0x4d, 0x31, 0xe1, //0x000014ed xorq %r12, %r9 + 0xe9, 0x1f, 0x01, 0x00, 0x00, //0x000014f0 jmp LBB5_36 + //0x000014f5 LBB5_19 + 0x0f, 0xb7, 0xcb, //0x000014f5 movzwl %bx, %ecx + 0x4d, 0x29, 0xd4, //0x000014f8 subq %r10, %r12 + 0x44, 0x0f, 0xbc, 0xc9, //0x000014fb bsfl %ecx, %r9d + 0x4d, 0x01, 0xe1, //0x000014ff addq %r12, %r9 + 0xe9, 0x0d, 0x01, 0x00, 0x00, //0x00001502 jmp LBB5_36 + //0x00001507 LBB5_20 + 0x41, 0x83, 0xfb, 0x08, //0x00001507 cmpl $8, %r11d + 0x0f, 0x82, 0x99, 0x00, 0x00, 0x00, //0x0000150b jb LBB5_29 + 0x49, 0x89, 0x4d, 0x00, //0x00001511 movq %rcx, (%r13) + 0x49, 0x8d, 0x5c, 0x24, 0x08, //0x00001515 leaq $8(%r12), %rbx + 0x49, 0x83, 0xc5, 0x08, //0x0000151a addq $8, %r13 + 0x49, 0x8d, 0x73, 0xf8, //0x0000151e leaq $-8(%r11), %rsi + 0x48, 0x83, 0xfe, 0x04, //0x00001522 cmpq $4, %rsi + 0x0f, 0x8d, 0x8e, 0x00, 0x00, 0x00, //0x00001526 jge LBB5_30 + 0xe9, 0x9b, 0x00, 0x00, 0x00, //0x0000152c jmp LBB5_31 + //0x00001531 LBB5_22 + 0x4d, 0x29, 0xd4, //0x00001531 subq %r10, %r12 + 0x4d, 0x89, 0xe1, //0x00001534 movq %r12, %r9 + 0xe9, 0xd8, 0x00, 0x00, 0x00, //0x00001537 jmp LBB5_36 + //0x0000153c LBB5_23 + 0x4d, 0x89, 0xe3, //0x0000153c movq %r12, %r11 + 0x4c, 0x89, 0xce, //0x0000153f movq %r9, %rsi + 0x48, 0x83, 0xfe, 0x04, //0x00001542 cmpq $4, %rsi + 0x0f, 0x8c, 0x13, 0x00, 0x00, 0x00, //0x00001546 jl LBB5_25 + //0x0000154c LBB5_24 + 0x41, 0x8b, 0x0b, //0x0000154c movl (%r11), %ecx + 0x41, 0x89, 0x4d, 0x00, //0x0000154f movl %ecx, (%r13) + 0x49, 0x83, 0xc3, 0x04, //0x00001553 addq $4, %r11 + 0x49, 0x83, 0xc5, 0x04, //0x00001557 addq $4, %r13 + 0x48, 0x83, 0xc6, 0xfc, //0x0000155b addq $-4, %rsi + //0x0000155f LBB5_25 + 0x48, 0x83, 0xfe, 0x02, //0x0000155f cmpq $2, %rsi + 0x0f, 0x82, 0x23, 0x00, 0x00, 0x00, //0x00001563 jb LBB5_26 + 0x41, 0x0f, 0xb7, 0x0b, //0x00001569 movzwl (%r11), %ecx + 0x66, 0x41, 0x89, 0x4d, 0x00, //0x0000156d movw %cx, (%r13) + 0x49, 0x83, 0xc3, 0x02, //0x00001572 addq $2, %r11 + 0x49, 0x83, 0xc5, 0x02, //0x00001576 addq $2, %r13 + 0x48, 0x83, 0xc6, 0xfe, //0x0000157a addq $-2, %rsi + 0x48, 0x85, 0xf6, //0x0000157e testq %rsi, %rsi + 0x0f, 0x85, 0x0e, 0x00, 0x00, 0x00, //0x00001581 jne LBB5_27 + 0xe9, 0x10, 0x00, 0x00, 0x00, //0x00001587 jmp LBB5_28 + //0x0000158c LBB5_26 + 0x48, 0x85, 0xf6, //0x0000158c testq %rsi, %rsi + 0x0f, 0x84, 0x07, 0x00, 0x00, 0x00, //0x0000158f je LBB5_28 + //0x00001595 LBB5_27 + 0x41, 0x8a, 0x0b, //0x00001595 movb (%r11), %cl + 0x41, 0x88, 0x4d, 0x00, //0x00001598 movb %cl, (%r13) + //0x0000159c LBB5_28 + 0x4d, 0x29, 0xd1, //0x0000159c subq %r10, %r9 + 0x4d, 0x01, 0xe1, //0x0000159f addq %r12, %r9 + 0x49, 0xf7, 0xd1, //0x000015a2 notq %r9 + 0xe9, 0x66, 0x00, 0x00, 0x00, //0x000015a5 jmp LBB5_35 + //0x000015aa LBB5_29 + 0x4c, 0x89, 0xe3, //0x000015aa movq %r12, %rbx + 0x4c, 0x89, 0xde, //0x000015ad movq %r11, %rsi + 0x48, 0x83, 0xfe, 0x04, //0x000015b0 cmpq $4, %rsi + 0x0f, 0x8c, 0x12, 0x00, 0x00, 0x00, //0x000015b4 jl LBB5_31 + //0x000015ba LBB5_30 + 0x8b, 0x0b, //0x000015ba movl (%rbx), %ecx + 0x41, 0x89, 0x4d, 0x00, //0x000015bc movl %ecx, (%r13) + 0x48, 0x83, 0xc3, 0x04, //0x000015c0 addq $4, %rbx + 0x49, 0x83, 0xc5, 0x04, //0x000015c4 addq $4, %r13 + 0x48, 0x83, 0xc6, 0xfc, //0x000015c8 addq $-4, %rsi + //0x000015cc LBB5_31 + 0x48, 0x83, 0xfe, 0x02, //0x000015cc cmpq $2, %rsi + 0x0f, 0x82, 0x22, 0x00, 0x00, 0x00, //0x000015d0 jb LBB5_32 + 0x0f, 0xb7, 0x0b, //0x000015d6 movzwl (%rbx), %ecx + 0x66, 0x41, 0x89, 0x4d, 0x00, //0x000015d9 movw %cx, (%r13) + 0x48, 0x83, 0xc3, 0x02, //0x000015de addq $2, %rbx + 0x49, 0x83, 0xc5, 0x02, //0x000015e2 addq $2, %r13 + 0x48, 0x83, 0xc6, 0xfe, //0x000015e6 addq $-2, %rsi + 0x48, 0x85, 0xf6, //0x000015ea testq %rsi, %rsi + 0x0f, 0x85, 0x0e, 0x00, 0x00, 0x00, //0x000015ed jne LBB5_33 + 0xe9, 0x0f, 0x00, 0x00, 0x00, //0x000015f3 jmp LBB5_34 + //0x000015f8 LBB5_32 + 0x48, 0x85, 0xf6, //0x000015f8 testq %rsi, %rsi + 0x0f, 0x84, 0x06, 0x00, 0x00, 0x00, //0x000015fb je LBB5_34 + //0x00001601 LBB5_33 + 0x8a, 0x0b, //0x00001601 movb (%rbx), %cl + 0x41, 0x88, 0x4d, 0x00, //0x00001603 movb %cl, (%r13) + //0x00001607 LBB5_34 + 0x4d, 0x29, 0xd4, //0x00001607 subq %r10, %r12 + 0x4d, 0x01, 0xdc, //0x0000160a addq %r11, %r12 + 0x4d, 0x89, 0xe1, //0x0000160d movq %r12, %r9 + //0x00001610 LBB5_35 + 0x4c, 0x8b, 0x5d, 0xd0, //0x00001610 movq $-48(%rbp), %r11 + //0x00001614 LBB5_36 + 0x4d, 0x85, 0xc9, //0x00001614 testq %r9, %r9 + 0x4c, 0x8b, 0x65, 0xc8, //0x00001617 movq $-56(%rbp), %r12 + 0x49, 0xbd, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, //0x0000161b movabsq $12884901889, %r13 + 0x0f, 0x88, 0x55, 0x03, 0x00, 0x00, //0x00001625 js LBB5_78 + 0x4d, 0x01, 0xca, //0x0000162b addq %r9, %r10 + 0x4d, 0x01, 0xcf, //0x0000162e addq %r9, %r15 + 0x4c, 0x39, 0xc8, //0x00001631 cmpq %r9, %rax + 0x0f, 0x84, 0xca, 0x00, 0x00, 0x00, //0x00001634 je LBB5_74 + 0x4d, 0x29, 0xce, //0x0000163a subq %r9, %r14 + 0x49, 0x29, 0xc1, //0x0000163d subq %rax, %r9 + 0xe9, 0x1a, 0x00, 0x00, 0x00, //0x00001640 jmp LBB5_40 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001645 .p2align 4, 0x90 + //0x00001650 LBB5_39 + 0x49, 0xff, 0xc2, //0x00001650 incq %r10 + 0x49, 0x01, 0xc7, //0x00001653 addq %rax, %r15 + 0x49, 0xff, 0xc1, //0x00001656 incq %r9 + 0x0f, 0x84, 0xa5, 0x00, 0x00, 0x00, //0x00001659 je LBB5_74 + //0x0000165f LBB5_40 + 0x41, 0x0f, 0xb6, 0x32, //0x0000165f movzbl (%r10), %esi + 0x48, 0xc1, 0xe6, 0x04, //0x00001663 shlq $4, %rsi + 0x49, 0x8b, 0x1c, 0x30, //0x00001667 movq (%r8,%rsi), %rbx + 0x85, 0xdb, //0x0000166b testl %ebx, %ebx + 0x0f, 0x84, 0x82, 0x00, 0x00, 0x00, //0x0000166d je LBB5_48 + 0x48, 0x63, 0xc3, //0x00001673 movslq %ebx, %rax + 0x49, 0x29, 0xc6, //0x00001676 subq %rax, %r14 + 0x0f, 0x8c, 0xe3, 0x02, 0x00, 0x00, //0x00001679 jl LBB5_75 + 0x48, 0xc1, 0xe3, 0x20, //0x0000167f shlq $32, %rbx + 0x49, 0x8d, 0x4c, 0x30, 0x08, //0x00001683 leaq $8(%r8,%rsi), %rcx + 0x4c, 0x39, 0xeb, //0x00001688 cmpq %r13, %rbx + 0x0f, 0x8c, 0x2f, 0x00, 0x00, 0x00, //0x0000168b jl LBB5_44 + 0x8b, 0x09, //0x00001691 movl (%rcx), %ecx + 0x41, 0x89, 0x0f, //0x00001693 movl %ecx, (%r15) + 0x49, 0x8d, 0x4c, 0x30, 0x0c, //0x00001696 leaq $12(%r8,%rsi), %rcx + 0x49, 0x8d, 0x77, 0x04, //0x0000169b leaq $4(%r15), %rsi + 0x48, 0x8d, 0x58, 0xfc, //0x0000169f leaq $-4(%rax), %rbx + 0x48, 0x83, 0xfb, 0x02, //0x000016a3 cmpq $2, %rbx + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x000016a7 jae LBB5_45 + 0xe9, 0x30, 0x00, 0x00, 0x00, //0x000016ad jmp LBB5_46 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000016b2 .p2align 4, 0x90 + //0x000016c0 LBB5_44 + 0x4c, 0x89, 0xfe, //0x000016c0 movq %r15, %rsi + 0x48, 0x89, 0xc3, //0x000016c3 movq %rax, %rbx + 0x48, 0x83, 0xfb, 0x02, //0x000016c6 cmpq $2, %rbx + 0x0f, 0x82, 0x12, 0x00, 0x00, 0x00, //0x000016ca jb LBB5_46 + //0x000016d0 LBB5_45 + 0x0f, 0xb7, 0x11, //0x000016d0 movzwl (%rcx), %edx + 0x66, 0x89, 0x16, //0x000016d3 movw %dx, (%rsi) + 0x48, 0x83, 0xc1, 0x02, //0x000016d6 addq $2, %rcx + 0x48, 0x83, 0xc6, 0x02, //0x000016da addq $2, %rsi + 0x48, 0x83, 0xc3, 0xfe, //0x000016de addq $-2, %rbx + //0x000016e2 LBB5_46 + 0x48, 0x85, 0xdb, //0x000016e2 testq %rbx, %rbx + 0x0f, 0x84, 0x65, 0xff, 0xff, 0xff, //0x000016e5 je LBB5_39 + 0x0f, 0xb6, 0x09, //0x000016eb movzbl (%rcx), %ecx + 0x88, 0x0e, //0x000016ee movb %cl, (%rsi) + 0xe9, 0x5b, 0xff, 0xff, 0xff, //0x000016f0 jmp LBB5_39 + //0x000016f5 LBB5_48 + 0x4c, 0x89, 0xc8, //0x000016f5 movq %r9, %rax + 0x48, 0xf7, 0xd8, //0x000016f8 negq %rax + 0x4d, 0x85, 0xc9, //0x000016fb testq %r9, %r9 + 0x0f, 0x85, 0x55, 0xfc, 0xff, 0xff, //0x000016fe jne LBB5_3 + //0x00001704 LBB5_74 + 0x4d, 0x29, 0xe7, //0x00001704 subq %r12, %r15 + 0x4d, 0x89, 0x3b, //0x00001707 movq %r15, (%r11) + 0x49, 0x29, 0xfa, //0x0000170a subq %rdi, %r10 + 0xe9, 0x5c, 0x02, 0x00, 0x00, //0x0000170d jmp LBB5_76 + //0x00001712 LBB5_51 + 0x4c, 0x8d, 0x0d, 0x47, 0xf2, 0x00, 0x00, //0x00001712 leaq $62023(%rip), %r9 /* __EscTab+0(%rip) */ + 0x66, 0x0f, 0x6f, 0x05, 0x8f, 0xfb, 0xff, 0xff, //0x00001719 movdqa $-1137(%rip), %xmm0 /* LCPI5_0+0(%rip) */ + 0x66, 0x0f, 0x6f, 0x0d, 0x97, 0xfb, 0xff, 0xff, //0x00001721 movdqa $-1129(%rip), %xmm1 /* LCPI5_1+0(%rip) */ + 0x66, 0x0f, 0x6f, 0x15, 0x9f, 0xfb, 0xff, 0xff, //0x00001729 movdqa $-1121(%rip), %xmm2 /* LCPI5_2+0(%rip) */ + 0x66, 0x0f, 0x76, 0xdb, //0x00001731 pcmpeqd %xmm3, %xmm3 + 0x4c, 0x89, 0xe3, //0x00001735 movq %r12, %rbx + 0x49, 0x89, 0xc2, //0x00001738 movq %rax, %r10 + //0x0000173b LBB5_52 + 0x49, 0x83, 0xfa, 0x10, //0x0000173b cmpq $16, %r10 + 0x0f, 0x8c, 0x6a, 0x00, 0x00, 0x00, //0x0000173f jl LBB5_57 + 0xb9, 0x10, 0x00, 0x00, 0x00, //0x00001745 movl $16, %ecx + 0x31, 0xf6, //0x0000174a xorl %esi, %esi + 0x90, 0x90, 0x90, 0x90, //0x0000174c .p2align 4, 0x90 + //0x00001750 LBB5_54 + 0xf3, 0x0f, 0x6f, 0x24, 0x37, //0x00001750 movdqu (%rdi,%rsi), %xmm4 + 0x66, 0x0f, 0x6f, 0xe8, //0x00001755 movdqa %xmm0, %xmm5 + 0x66, 0x0f, 0x64, 0xec, //0x00001759 pcmpgtb %xmm4, %xmm5 + 0x66, 0x0f, 0x6f, 0xf4, //0x0000175d movdqa %xmm4, %xmm6 + 0x66, 0x0f, 0x74, 0xf1, //0x00001761 pcmpeqb %xmm1, %xmm6 + 0x66, 0x0f, 0x6f, 0xfc, //0x00001765 movdqa %xmm4, %xmm7 + 0x66, 0x0f, 0x74, 0xfa, //0x00001769 pcmpeqb %xmm2, %xmm7 + 0x66, 0x0f, 0xeb, 0xfe, //0x0000176d por %xmm6, %xmm7 + 0xf3, 0x0f, 0x7f, 0x24, 0x33, //0x00001771 movdqu %xmm4, (%rbx,%rsi) + 0x66, 0x0f, 0x64, 0xe3, //0x00001776 pcmpgtb %xmm3, %xmm4 + 0x66, 0x0f, 0xdb, 0xe5, //0x0000177a pand %xmm5, %xmm4 + 0x66, 0x0f, 0xeb, 0xe7, //0x0000177e por %xmm7, %xmm4 + 0x66, 0x0f, 0xd7, 0xd4, //0x00001782 pmovmskb %xmm4, %edx + 0x66, 0x85, 0xd2, //0x00001786 testw %dx, %dx + 0x0f, 0x85, 0x3a, 0x01, 0x00, 0x00, //0x00001789 jne LBB5_67 + 0x48, 0x83, 0xc6, 0x10, //0x0000178f addq $16, %rsi + 0x49, 0x8d, 0x54, 0x0a, 0xf0, //0x00001793 leaq $-16(%r10,%rcx), %rdx + 0x48, 0x83, 0xc1, 0xf0, //0x00001798 addq $-16, %rcx + 0x48, 0x83, 0xfa, 0x1f, //0x0000179c cmpq $31, %rdx + 0x0f, 0x8f, 0xaa, 0xff, 0xff, 0xff, //0x000017a0 jg LBB5_54 + 0x48, 0x01, 0xf7, //0x000017a6 addq %rsi, %rdi + 0x49, 0x29, 0xf2, //0x000017a9 subq %rsi, %r10 + 0x48, 0x01, 0xf3, //0x000017ac addq %rsi, %rbx + //0x000017af LBB5_57 + 0x49, 0x83, 0xfa, 0x08, //0x000017af cmpq $8, %r10 + 0x0f, 0x8c, 0x85, 0x00, 0x00, 0x00, //0x000017b3 jl LBB5_61 + 0x0f, 0xb6, 0x0f, //0x000017b9 movzbl (%rdi), %ecx + 0x42, 0x0f, 0xb6, 0x0c, 0x09, //0x000017bc movzbl (%rcx,%r9), %ecx + 0x0f, 0xb6, 0x57, 0x01, //0x000017c1 movzbl $1(%rdi), %edx + 0x42, 0x0f, 0xb6, 0x14, 0x0a, //0x000017c5 movzbl (%rdx,%r9), %edx + 0x01, 0xd2, //0x000017ca addl %edx, %edx + 0x09, 0xca, //0x000017cc orl %ecx, %edx + 0x0f, 0xb6, 0x4f, 0x02, //0x000017ce movzbl $2(%rdi), %ecx + 0x42, 0x0f, 0xb6, 0x34, 0x09, //0x000017d2 movzbl (%rcx,%r9), %esi + 0xc1, 0xe6, 0x02, //0x000017d7 shll $2, %esi + 0x0f, 0xb6, 0x4f, 0x03, //0x000017da movzbl $3(%rdi), %ecx + 0x42, 0x0f, 0xb6, 0x0c, 0x09, //0x000017de movzbl (%rcx,%r9), %ecx + 0xc1, 0xe1, 0x03, //0x000017e3 shll $3, %ecx + 0x09, 0xf1, //0x000017e6 orl %esi, %ecx + 0x09, 0xd1, //0x000017e8 orl %edx, %ecx + 0x48, 0x8b, 0x17, //0x000017ea movq (%rdi), %rdx + 0x48, 0x89, 0x13, //0x000017ed movq %rdx, (%rbx) + 0x84, 0xc9, //0x000017f0 testb %cl, %cl + 0x0f, 0x85, 0x35, 0x01, 0x00, 0x00, //0x000017f2 jne LBB5_71 + 0x0f, 0xb6, 0x4f, 0x04, //0x000017f8 movzbl $4(%rdi), %ecx + 0x42, 0x0f, 0xb6, 0x0c, 0x09, //0x000017fc movzbl (%rcx,%r9), %ecx + 0x0f, 0xb6, 0x57, 0x05, //0x00001801 movzbl $5(%rdi), %edx + 0x42, 0x0f, 0xb6, 0x14, 0x0a, //0x00001805 movzbl (%rdx,%r9), %edx + 0x01, 0xd2, //0x0000180a addl %edx, %edx + 0x09, 0xca, //0x0000180c orl %ecx, %edx + 0x0f, 0xb6, 0x4f, 0x06, //0x0000180e movzbl $6(%rdi), %ecx + 0x42, 0x0f, 0xb6, 0x34, 0x09, //0x00001812 movzbl (%rcx,%r9), %esi + 0xc1, 0xe6, 0x02, //0x00001817 shll $2, %esi + 0x0f, 0xb6, 0x4f, 0x07, //0x0000181a movzbl $7(%rdi), %ecx + 0x42, 0x0f, 0xb6, 0x0c, 0x09, //0x0000181e movzbl (%rcx,%r9), %ecx + 0xc1, 0xe1, 0x03, //0x00001823 shll $3, %ecx + 0x09, 0xf1, //0x00001826 orl %esi, %ecx + 0x09, 0xd1, //0x00001828 orl %edx, %ecx + 0x84, 0xc9, //0x0000182a testb %cl, %cl + 0x0f, 0x85, 0x0c, 0x01, 0x00, 0x00, //0x0000182c jne LBB5_72 + 0x48, 0x83, 0xc3, 0x08, //0x00001832 addq $8, %rbx + 0x48, 0x83, 0xc7, 0x08, //0x00001836 addq $8, %rdi + 0x49, 0x83, 0xc2, 0xf8, //0x0000183a addq $-8, %r10 + //0x0000183e LBB5_61 + 0x49, 0x83, 0xfa, 0x04, //0x0000183e cmpq $4, %r10 + 0x0f, 0x8c, 0x49, 0x00, 0x00, 0x00, //0x00001842 jl LBB5_64 + 0x0f, 0xb6, 0x0f, //0x00001848 movzbl (%rdi), %ecx + 0x42, 0x0f, 0xb6, 0x0c, 0x09, //0x0000184b movzbl (%rcx,%r9), %ecx + 0x0f, 0xb6, 0x57, 0x01, //0x00001850 movzbl $1(%rdi), %edx + 0x42, 0x0f, 0xb6, 0x14, 0x0a, //0x00001854 movzbl (%rdx,%r9), %edx + 0x01, 0xd2, //0x00001859 addl %edx, %edx + 0x09, 0xca, //0x0000185b orl %ecx, %edx + 0x0f, 0xb6, 0x4f, 0x02, //0x0000185d movzbl $2(%rdi), %ecx + 0x42, 0x0f, 0xb6, 0x34, 0x09, //0x00001861 movzbl (%rcx,%r9), %esi + 0xc1, 0xe6, 0x02, //0x00001866 shll $2, %esi + 0x0f, 0xb6, 0x4f, 0x03, //0x00001869 movzbl $3(%rdi), %ecx + 0x42, 0x0f, 0xb6, 0x0c, 0x09, //0x0000186d movzbl (%rcx,%r9), %ecx + 0xc1, 0xe1, 0x03, //0x00001872 shll $3, %ecx + 0x09, 0xf1, //0x00001875 orl %esi, %ecx + 0x09, 0xd1, //0x00001877 orl %edx, %ecx + 0x8b, 0x17, //0x00001879 movl (%rdi), %edx + 0x89, 0x13, //0x0000187b movl %edx, (%rbx) + 0x84, 0xc9, //0x0000187d testb %cl, %cl + 0x0f, 0x85, 0xa8, 0x00, 0x00, 0x00, //0x0000187f jne LBB5_71 + 0x48, 0x83, 0xc3, 0x04, //0x00001885 addq $4, %rbx + 0x48, 0x83, 0xc7, 0x04, //0x00001889 addq $4, %rdi + 0x49, 0x83, 0xc2, 0xfc, //0x0000188d addq $-4, %r10 + //0x00001891 LBB5_64 + 0x4d, 0x85, 0xd2, //0x00001891 testq %r10, %r10 + 0x0f, 0x8e, 0xbd, 0x00, 0x00, 0x00, //0x00001894 jle LBB5_73 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000189a .p2align 4, 0x90 + //0x000018a0 LBB5_65 + 0x0f, 0xb6, 0x0f, //0x000018a0 movzbl (%rdi), %ecx + 0x42, 0x80, 0x3c, 0x09, 0x00, //0x000018a3 cmpb $0, (%rcx,%r9) + 0x0f, 0x85, 0x33, 0x00, 0x00, 0x00, //0x000018a8 jne LBB5_68 + 0x48, 0xff, 0xc7, //0x000018ae incq %rdi + 0x88, 0x0b, //0x000018b1 movb %cl, (%rbx) + 0x48, 0xff, 0xc3, //0x000018b3 incq %rbx + 0x49, 0x83, 0xfa, 0x01, //0x000018b6 cmpq $1, %r10 + 0x4d, 0x8d, 0x52, 0xff, //0x000018ba leaq $-1(%r10), %r10 + 0x0f, 0x8f, 0xdc, 0xff, 0xff, 0xff, //0x000018be jg LBB5_65 + 0xe9, 0x8e, 0x00, 0x00, 0x00, //0x000018c4 jmp LBB5_73 + //0x000018c9 LBB5_67 + 0x0f, 0xb7, 0xca, //0x000018c9 movzwl %dx, %ecx + 0x0f, 0xbc, 0xc9, //0x000018cc bsfl %ecx, %ecx + 0x48, 0x01, 0xcf, //0x000018cf addq %rcx, %rdi + 0x48, 0x01, 0xf7, //0x000018d2 addq %rsi, %rdi + 0x49, 0x29, 0xca, //0x000018d5 subq %rcx, %r10 + 0x49, 0x29, 0xf2, //0x000018d8 subq %rsi, %r10 + 0x48, 0x01, 0xcb, //0x000018db addq %rcx, %rbx + 0x48, 0x01, 0xf3, //0x000018de addq %rsi, %rbx + //0x000018e1 LBB5_68 + 0x8a, 0x0f, //0x000018e1 movb (%rdi), %cl + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000018e3 .p2align 4, 0x90 + //0x000018f0 LBB5_69 + 0x48, 0x89, 0xda, //0x000018f0 movq %rbx, %rdx + 0x0f, 0xb6, 0xc9, //0x000018f3 movzbl %cl, %ecx + 0x48, 0xc1, 0xe1, 0x04, //0x000018f6 shlq $4, %rcx + 0x49, 0x63, 0x1c, 0x08, //0x000018fa movslq (%r8,%rcx), %rbx + 0x49, 0x8b, 0x4c, 0x08, 0x08, //0x000018fe movq $8(%r8,%rcx), %rcx + 0x48, 0x89, 0x0a, //0x00001903 movq %rcx, (%rdx) + 0x48, 0x01, 0xd3, //0x00001906 addq %rdx, %rbx + 0x49, 0x83, 0xfa, 0x02, //0x00001909 cmpq $2, %r10 + 0x0f, 0x8c, 0x44, 0x00, 0x00, 0x00, //0x0000190d jl LBB5_73 + 0x49, 0xff, 0xca, //0x00001913 decq %r10 + 0x0f, 0xb6, 0x4f, 0x01, //0x00001916 movzbl $1(%rdi), %ecx + 0x48, 0xff, 0xc7, //0x0000191a incq %rdi + 0x42, 0x80, 0x3c, 0x09, 0x00, //0x0000191d cmpb $0, (%rcx,%r9) + 0x0f, 0x85, 0xc8, 0xff, 0xff, 0xff, //0x00001922 jne LBB5_69 + 0xe9, 0x0e, 0xfe, 0xff, 0xff, //0x00001928 jmp LBB5_52 + //0x0000192d LBB5_71 + 0x0f, 0xbc, 0xc9, //0x0000192d bsfl %ecx, %ecx + 0x48, 0x01, 0xcf, //0x00001930 addq %rcx, %rdi + 0x49, 0x29, 0xca, //0x00001933 subq %rcx, %r10 + 0x48, 0x01, 0xcb, //0x00001936 addq %rcx, %rbx + 0xe9, 0xa3, 0xff, 0xff, 0xff, //0x00001939 jmp LBB5_68 + //0x0000193e LBB5_72 + 0x0f, 0xbc, 0xc9, //0x0000193e bsfl %ecx, %ecx + 0x48, 0x8d, 0x51, 0x04, //0x00001941 leaq $4(%rcx), %rdx + 0x48, 0x8d, 0x7c, 0x0f, 0x04, //0x00001945 leaq $4(%rdi,%rcx), %rdi + 0x49, 0x29, 0xd2, //0x0000194a subq %rdx, %r10 + 0x48, 0x8d, 0x5c, 0x0b, 0x04, //0x0000194d leaq $4(%rbx,%rcx), %rbx + 0xe9, 0x8a, 0xff, 0xff, 0xff, //0x00001952 jmp LBB5_68 + //0x00001957 LBB5_73 + 0x4c, 0x29, 0xe3, //0x00001957 subq %r12, %rbx + 0x49, 0x89, 0x1b, //0x0000195a movq %rbx, (%r11) + 0xe9, 0x0f, 0x00, 0x00, 0x00, //0x0000195d jmp LBB5_77 + //0x00001962 LBB5_75 + 0x4d, 0x29, 0xe7, //0x00001962 subq %r12, %r15 + 0x4d, 0x89, 0x3b, //0x00001965 movq %r15, (%r11) + 0x49, 0xf7, 0xd2, //0x00001968 notq %r10 + 0x49, 0x01, 0xfa, //0x0000196b addq %rdi, %r10 + //0x0000196e LBB5_76 + 0x4c, 0x89, 0xd0, //0x0000196e movq %r10, %rax + //0x00001971 LBB5_77 + 0x48, 0x83, 0xc4, 0x10, //0x00001971 addq $16, %rsp + 0x5b, //0x00001975 popq %rbx + 0x41, 0x5c, //0x00001976 popq %r12 + 0x41, 0x5d, //0x00001978 popq %r13 + 0x41, 0x5e, //0x0000197a popq %r14 + 0x41, 0x5f, //0x0000197c popq %r15 + 0x5d, //0x0000197e popq %rbp + 0xc3, //0x0000197f retq + //0x00001980 LBB5_78 + 0x4d, 0x29, 0xe7, //0x00001980 subq %r12, %r15 + 0x49, 0xf7, 0xd1, //0x00001983 notq %r9 + 0x4d, 0x01, 0xcf, //0x00001986 addq %r9, %r15 + 0x4d, 0x89, 0x3b, //0x00001989 movq %r15, (%r11) + 0x49, 0x29, 0xfa, //0x0000198c subq %rdi, %r10 + 0x4d, 0x01, 0xca, //0x0000198f addq %r9, %r10 + 0x49, 0xf7, 0xd2, //0x00001992 notq %r10 + 0xe9, 0xd4, 0xff, 0xff, 0xff, //0x00001995 jmp LBB5_76 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000199a .p2align 4, 0x00 + //0x000019a0 LCPI6_0 + 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x000019a0 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + //0x000019b0 .p2align 4, 0x90 + //0x000019b0 _unquote + 0x55, //0x000019b0 pushq %rbp + 0x48, 0x89, 0xe5, //0x000019b1 movq %rsp, %rbp + 0x41, 0x57, //0x000019b4 pushq %r15 + 0x41, 0x56, //0x000019b6 pushq %r14 + 0x41, 0x55, //0x000019b8 pushq %r13 + 0x41, 0x54, //0x000019ba pushq %r12 + 0x53, //0x000019bc pushq %rbx + 0x48, 0x83, 0xec, 0x28, //0x000019bd subq $40, %rsp + 0x48, 0x85, 0xf6, //0x000019c1 testq %rsi, %rsi + 0x0f, 0x84, 0x6e, 0x06, 0x00, 0x00, //0x000019c4 je LBB6_82 + 0x49, 0x89, 0xf3, //0x000019ca movq %rsi, %r11 + 0x48, 0x89, 0x4d, 0xc8, //0x000019cd movq %rcx, $-56(%rbp) + 0x4c, 0x89, 0xc0, //0x000019d1 movq %r8, %rax + 0x4c, 0x89, 0x45, 0xb8, //0x000019d4 movq %r8, $-72(%rbp) + 0x45, 0x89, 0xc2, //0x000019d8 movl %r8d, %r10d + 0x41, 0x83, 0xe2, 0x01, //0x000019db andl $1, %r10d + 0x4c, 0x8d, 0x05, 0x7a, 0xf0, 0x00, 0x00, //0x000019df leaq $61562(%rip), %r8 /* __UnquoteTab+0(%rip) */ + 0x66, 0x0f, 0x6f, 0x05, 0xb2, 0xff, 0xff, 0xff, //0x000019e6 movdqa $-78(%rip), %xmm0 /* LCPI6_0+0(%rip) */ + 0x49, 0x89, 0xf9, //0x000019ee movq %rdi, %r9 + 0x49, 0x89, 0xf5, //0x000019f1 movq %rsi, %r13 + 0x48, 0x89, 0xd0, //0x000019f4 movq %rdx, %rax + //0x000019f7 LBB6_2 + 0x41, 0x80, 0x39, 0x5c, //0x000019f7 cmpb $92, (%r9) + 0x0f, 0x85, 0x0f, 0x00, 0x00, 0x00, //0x000019fb jne LBB6_4 + 0x31, 0xf6, //0x00001a01 xorl %esi, %esi + 0xe9, 0xc8, 0x00, 0x00, 0x00, //0x00001a03 jmp LBB6_13 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001a08 .p2align 4, 0x90 + //0x00001a10 LBB6_4 + 0x4d, 0x89, 0xef, //0x00001a10 movq %r13, %r15 + 0x48, 0x89, 0xc6, //0x00001a13 movq %rax, %rsi + 0x4d, 0x89, 0xce, //0x00001a16 movq %r9, %r14 + 0x49, 0x83, 0xfd, 0x10, //0x00001a19 cmpq $16, %r13 + 0x0f, 0x8c, 0x3d, 0x00, 0x00, 0x00, //0x00001a1d jl LBB6_7 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001a23 .p2align 4, 0x90 + //0x00001a30 LBB6_5 + 0xf3, 0x41, 0x0f, 0x6f, 0x0e, //0x00001a30 movdqu (%r14), %xmm1 + 0xf3, 0x0f, 0x7f, 0x0e, //0x00001a35 movdqu %xmm1, (%rsi) + 0x66, 0x0f, 0x74, 0xc8, //0x00001a39 pcmpeqb %xmm0, %xmm1 + 0x66, 0x0f, 0xd7, 0xd9, //0x00001a3d pmovmskb %xmm1, %ebx + 0x66, 0x85, 0xdb, //0x00001a41 testw %bx, %bx + 0x0f, 0x85, 0x60, 0x00, 0x00, 0x00, //0x00001a44 jne LBB6_12 + 0x49, 0x83, 0xc6, 0x10, //0x00001a4a addq $16, %r14 + 0x48, 0x83, 0xc6, 0x10, //0x00001a4e addq $16, %rsi + 0x49, 0x83, 0xff, 0x1f, //0x00001a52 cmpq $31, %r15 + 0x4d, 0x8d, 0x7f, 0xf0, //0x00001a56 leaq $-16(%r15), %r15 + 0x0f, 0x8f, 0xd0, 0xff, 0xff, 0xff, //0x00001a5a jg LBB6_5 + //0x00001a60 LBB6_7 + 0x4d, 0x85, 0xff, //0x00001a60 testq %r15, %r15 + 0x0f, 0x84, 0xd5, 0x05, 0x00, 0x00, //0x00001a63 je LBB6_83 + 0x31, 0xdb, //0x00001a69 xorl %ebx, %ebx + 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001a6b .p2align 4, 0x90 + //0x00001a70 LBB6_9 + 0x41, 0x0f, 0xb6, 0x0c, 0x1e, //0x00001a70 movzbl (%r14,%rbx), %ecx + 0x80, 0xf9, 0x5c, //0x00001a75 cmpb $92, %cl + 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x00001a78 je LBB6_11 + 0x88, 0x0c, 0x1e, //0x00001a7e movb %cl, (%rsi,%rbx) + 0x48, 0xff, 0xc3, //0x00001a81 incq %rbx + 0x49, 0x39, 0xdf, //0x00001a84 cmpq %rbx, %r15 + 0x0f, 0x85, 0xe3, 0xff, 0xff, 0xff, //0x00001a87 jne LBB6_9 + 0xe9, 0xac, 0x05, 0x00, 0x00, //0x00001a8d jmp LBB6_83 + //0x00001a92 LBB6_11 + 0x49, 0x01, 0xde, //0x00001a92 addq %rbx, %r14 + 0x4d, 0x29, 0xce, //0x00001a95 subq %r9, %r14 + 0x4c, 0x89, 0xf6, //0x00001a98 movq %r14, %rsi + 0x48, 0x83, 0xfe, 0xff, //0x00001a9b cmpq $-1, %rsi + 0x0f, 0x85, 0x2b, 0x00, 0x00, 0x00, //0x00001a9f jne LBB6_13 + 0xe9, 0x94, 0x05, 0x00, 0x00, //0x00001aa5 jmp LBB6_83 + //0x00001aaa LBB6_12 + 0x0f, 0xb7, 0xcb, //0x00001aaa movzwl %bx, %ecx + 0x4d, 0x29, 0xce, //0x00001aad subq %r9, %r14 + 0x48, 0x0f, 0xbc, 0xf1, //0x00001ab0 bsfq %rcx, %rsi + 0x4c, 0x01, 0xf6, //0x00001ab4 addq %r14, %rsi + 0x48, 0x83, 0xfe, 0xff, //0x00001ab7 cmpq $-1, %rsi + 0x0f, 0x84, 0x7d, 0x05, 0x00, 0x00, //0x00001abb je LBB6_83 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001ac1 .p2align 4, 0x90 + //0x00001ad0 LBB6_13 + 0x48, 0x8d, 0x4e, 0x02, //0x00001ad0 leaq $2(%rsi), %rcx + 0x49, 0x29, 0xcd, //0x00001ad4 subq %rcx, %r13 + 0x0f, 0x88, 0x2a, 0x06, 0x00, 0x00, //0x00001ad7 js LBB6_94 + 0x4d, 0x8d, 0x4c, 0x31, 0x02, //0x00001add leaq $2(%r9,%rsi), %r9 + 0x4d, 0x85, 0xd2, //0x00001ae2 testq %r10, %r10 + 0x0f, 0x85, 0xe5, 0x03, 0x00, 0x00, //0x00001ae5 jne LBB6_58 + //0x00001aeb LBB6_15 + 0x48, 0x01, 0xf0, //0x00001aeb addq %rsi, %rax + 0x41, 0x0f, 0xb6, 0x49, 0xff, //0x00001aee movzbl $-1(%r9), %ecx + 0x42, 0x8a, 0x0c, 0x01, //0x00001af3 movb (%rcx,%r8), %cl + 0x80, 0xf9, 0xff, //0x00001af7 cmpb $-1, %cl + 0x0f, 0x84, 0x20, 0x00, 0x00, 0x00, //0x00001afa je LBB6_18 + 0x84, 0xc9, //0x00001b00 testb %cl, %cl + 0x0f, 0x84, 0x12, 0x06, 0x00, 0x00, //0x00001b02 je LBB6_95 + 0x88, 0x08, //0x00001b08 movb %cl, (%rax) + 0x48, 0xff, 0xc0, //0x00001b0a incq %rax + 0xe9, 0xb0, 0x03, 0x00, 0x00, //0x00001b0d jmp LBB6_57 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001b12 .p2align 4, 0x90 + //0x00001b20 LBB6_18 + 0x49, 0x83, 0xfd, 0x03, //0x00001b20 cmpq $3, %r13 + 0x0f, 0x8e, 0xdd, 0x05, 0x00, 0x00, //0x00001b24 jle LBB6_94 + 0x41, 0x8b, 0x31, //0x00001b2a movl (%r9), %esi + 0x89, 0xf1, //0x00001b2d movl %esi, %ecx + 0xf7, 0xd1, //0x00001b2f notl %ecx + 0x8d, 0x9e, 0xd0, 0xcf, 0xcf, 0xcf, //0x00001b31 leal $-808464432(%rsi), %ebx + 0x81, 0xe1, 0x80, 0x80, 0x80, 0x80, //0x00001b37 andl $-2139062144, %ecx + 0x85, 0xd9, //0x00001b3d testl %ebx, %ecx + 0x0f, 0x85, 0x0e, 0x05, 0x00, 0x00, //0x00001b3f jne LBB6_85 + 0x8d, 0x9e, 0x19, 0x19, 0x19, 0x19, //0x00001b45 leal $421075225(%rsi), %ebx + 0x09, 0xf3, //0x00001b4b orl %esi, %ebx + 0xf7, 0xc3, 0x80, 0x80, 0x80, 0x80, //0x00001b4d testl $-2139062144, %ebx + 0x0f, 0x85, 0xfa, 0x04, 0x00, 0x00, //0x00001b53 jne LBB6_85 + 0x89, 0xf3, //0x00001b59 movl %esi, %ebx + 0x81, 0xe3, 0x7f, 0x7f, 0x7f, 0x7f, //0x00001b5b andl $2139062143, %ebx + 0x41, 0xbe, 0xc0, 0xc0, 0xc0, 0xc0, //0x00001b61 movl $-1061109568, %r14d + 0x41, 0x29, 0xde, //0x00001b67 subl %ebx, %r14d + 0x44, 0x8d, 0xbb, 0x46, 0x46, 0x46, 0x46, //0x00001b6a leal $1179010630(%rbx), %r15d + 0x41, 0x21, 0xce, //0x00001b71 andl %ecx, %r14d + 0x45, 0x85, 0xfe, //0x00001b74 testl %r15d, %r14d + 0x0f, 0x85, 0xd6, 0x04, 0x00, 0x00, //0x00001b77 jne LBB6_85 + 0x41, 0xbe, 0xe0, 0xe0, 0xe0, 0xe0, //0x00001b7d movl $-522133280, %r14d + 0x41, 0x29, 0xde, //0x00001b83 subl %ebx, %r14d + 0x81, 0xc3, 0x39, 0x39, 0x39, 0x39, //0x00001b86 addl $960051513, %ebx + 0x44, 0x21, 0xf1, //0x00001b8c andl %r14d, %ecx + 0x85, 0xd9, //0x00001b8f testl %ebx, %ecx + 0x0f, 0x85, 0xbc, 0x04, 0x00, 0x00, //0x00001b91 jne LBB6_85 + 0x0f, 0xce, //0x00001b97 bswapl %esi + 0x89, 0xf1, //0x00001b99 movl %esi, %ecx + 0xc1, 0xe9, 0x04, //0x00001b9b shrl $4, %ecx + 0xf7, 0xd1, //0x00001b9e notl %ecx + 0x81, 0xe1, 0x01, 0x01, 0x01, 0x01, //0x00001ba0 andl $16843009, %ecx + 0x8d, 0x0c, 0xc9, //0x00001ba6 leal (%rcx,%rcx,8), %ecx + 0x81, 0xe6, 0x0f, 0x0f, 0x0f, 0x0f, //0x00001ba9 andl $252645135, %esi + 0x01, 0xce, //0x00001baf addl %ecx, %esi + 0x89, 0xf1, //0x00001bb1 movl %esi, %ecx + 0xc1, 0xe9, 0x04, //0x00001bb3 shrl $4, %ecx + 0x09, 0xf1, //0x00001bb6 orl %esi, %ecx + 0x44, 0x0f, 0xb6, 0xf9, //0x00001bb8 movzbl %cl, %r15d + 0xc1, 0xe9, 0x08, //0x00001bbc shrl $8, %ecx + 0x81, 0xe1, 0x00, 0xff, 0x00, 0x00, //0x00001bbf andl $65280, %ecx + 0x41, 0x09, 0xcf, //0x00001bc5 orl %ecx, %r15d + 0x4d, 0x8d, 0x75, 0xfc, //0x00001bc8 leaq $-4(%r13), %r14 + 0x41, 0x81, 0xff, 0x80, 0x00, 0x00, 0x00, //0x00001bcc cmpl $128, %r15d + 0x0f, 0x82, 0x46, 0x03, 0x00, 0x00, //0x00001bd3 jb LBB6_66 + 0x45, 0x31, 0xe4, //0x00001bd9 xorl %r12d, %r12d + 0x4d, 0x85, 0xd2, //0x00001bdc testq %r10, %r10 + 0x0f, 0x84, 0x5b, 0x01, 0x00, 0x00, //0x00001bdf je LBB6_40 + //0x00001be5 LBB6_25 + 0x41, 0x81, 0xff, 0x00, 0x08, 0x00, 0x00, //0x00001be5 cmpl $2048, %r15d + 0x0f, 0x82, 0x3c, 0x03, 0x00, 0x00, //0x00001bec jb LBB6_68 + 0x44, 0x89, 0xf9, //0x00001bf2 movl %r15d, %ecx + 0x81, 0xe1, 0x00, 0xf8, 0xff, 0xff, //0x00001bf5 andl $-2048, %ecx + 0x81, 0xf9, 0x00, 0xd8, 0x00, 0x00, //0x00001bfb cmpl $55296, %ecx + 0x0f, 0x85, 0x89, 0x02, 0x00, 0x00, //0x00001c01 jne LBB6_54 + 0x4d, 0x85, 0xf6, //0x00001c07 testq %r14, %r14 + 0x0f, 0x8e, 0x6b, 0x03, 0x00, 0x00, //0x00001c0a jle LBB6_72 + 0x43, 0x80, 0x7c, 0x21, 0x04, 0x5c, //0x00001c10 cmpb $92, $4(%r9,%r12) + 0x0f, 0x85, 0x6e, 0x03, 0x00, 0x00, //0x00001c16 jne LBB6_73 + 0x41, 0x81, 0xff, 0xff, 0xdb, 0x00, 0x00, //0x00001c1c cmpl $56319, %r15d + 0x0f, 0x87, 0x34, 0x03, 0x00, 0x00, //0x00001c23 ja LBB6_70 + 0x49, 0x83, 0xfe, 0x07, //0x00001c29 cmpq $7, %r14 + 0x0f, 0x8c, 0x2a, 0x03, 0x00, 0x00, //0x00001c2d jl LBB6_70 + 0x43, 0x80, 0x7c, 0x21, 0x05, 0x5c, //0x00001c33 cmpb $92, $5(%r9,%r12) + 0x0f, 0x85, 0x1e, 0x03, 0x00, 0x00, //0x00001c39 jne LBB6_70 + 0x43, 0x80, 0x7c, 0x21, 0x06, 0x75, //0x00001c3f cmpb $117, $6(%r9,%r12) + 0x0f, 0x85, 0x12, 0x03, 0x00, 0x00, //0x00001c45 jne LBB6_70 + 0x43, 0x8b, 0x74, 0x21, 0x07, //0x00001c4b movl $7(%r9,%r12), %esi + 0x89, 0xf1, //0x00001c50 movl %esi, %ecx + 0xf7, 0xd1, //0x00001c52 notl %ecx + 0x8d, 0x9e, 0xd0, 0xcf, 0xcf, 0xcf, //0x00001c54 leal $-808464432(%rsi), %ebx + 0x81, 0xe1, 0x80, 0x80, 0x80, 0x80, //0x00001c5a andl $-2139062144, %ecx + 0x85, 0xd9, //0x00001c60 testl %ebx, %ecx + 0x0f, 0x85, 0xe8, 0x04, 0x00, 0x00, //0x00001c62 jne LBB6_99 + 0x8d, 0x9e, 0x19, 0x19, 0x19, 0x19, //0x00001c68 leal $421075225(%rsi), %ebx + 0x09, 0xf3, //0x00001c6e orl %esi, %ebx + 0xf7, 0xc3, 0x80, 0x80, 0x80, 0x80, //0x00001c70 testl $-2139062144, %ebx + 0x0f, 0x85, 0xd4, 0x04, 0x00, 0x00, //0x00001c76 jne LBB6_99 + 0x89, 0xf3, //0x00001c7c movl %esi, %ebx + 0x81, 0xe3, 0x7f, 0x7f, 0x7f, 0x7f, //0x00001c7e andl $2139062143, %ebx + 0xc7, 0x45, 0xd4, 0xc0, 0xc0, 0xc0, 0xc0, //0x00001c84 movl $-1061109568, $-44(%rbp) + 0x29, 0x5d, 0xd4, //0x00001c8b subl %ebx, $-44(%rbp) + 0x48, 0x89, 0x75, 0xb0, //0x00001c8e movq %rsi, $-80(%rbp) + 0x8d, 0xb3, 0x46, 0x46, 0x46, 0x46, //0x00001c92 leal $1179010630(%rbx), %esi + 0x89, 0x75, 0xc4, //0x00001c98 movl %esi, $-60(%rbp) + 0x21, 0x4d, 0xd4, //0x00001c9b andl %ecx, $-44(%rbp) + 0x8b, 0x75, 0xc4, //0x00001c9e movl $-60(%rbp), %esi + 0x85, 0x75, 0xd4, //0x00001ca1 testl %esi, $-44(%rbp) + 0x48, 0x8b, 0x75, 0xb0, //0x00001ca4 movq $-80(%rbp), %rsi + 0x0f, 0x85, 0xa2, 0x04, 0x00, 0x00, //0x00001ca8 jne LBB6_99 + 0xc7, 0x45, 0xd4, 0xe0, 0xe0, 0xe0, 0xe0, //0x00001cae movl $-522133280, $-44(%rbp) + 0x29, 0x5d, 0xd4, //0x00001cb5 subl %ebx, $-44(%rbp) + 0x81, 0xc3, 0x39, 0x39, 0x39, 0x39, //0x00001cb8 addl $960051513, %ebx + 0x23, 0x4d, 0xd4, //0x00001cbe andl $-44(%rbp), %ecx + 0x85, 0xd9, //0x00001cc1 testl %ebx, %ecx + 0x0f, 0x85, 0x87, 0x04, 0x00, 0x00, //0x00001cc3 jne LBB6_99 + 0x0f, 0xce, //0x00001cc9 bswapl %esi + 0x89, 0xf1, //0x00001ccb movl %esi, %ecx + 0xc1, 0xe9, 0x04, //0x00001ccd shrl $4, %ecx + 0xf7, 0xd1, //0x00001cd0 notl %ecx + 0x81, 0xe1, 0x01, 0x01, 0x01, 0x01, //0x00001cd2 andl $16843009, %ecx + 0x8d, 0x0c, 0xc9, //0x00001cd8 leal (%rcx,%rcx,8), %ecx + 0x81, 0xe6, 0x0f, 0x0f, 0x0f, 0x0f, //0x00001cdb andl $252645135, %esi + 0x01, 0xce, //0x00001ce1 addl %ecx, %esi + 0x89, 0xf1, //0x00001ce3 movl %esi, %ecx + 0xc1, 0xe9, 0x04, //0x00001ce5 shrl $4, %ecx + 0x09, 0xf1, //0x00001ce8 orl %esi, %ecx + 0x89, 0xce, //0x00001cea movl %ecx, %esi + 0xc1, 0xee, 0x08, //0x00001cec shrl $8, %esi + 0x81, 0xe6, 0x00, 0xff, 0x00, 0x00, //0x00001cef andl $65280, %esi + 0x0f, 0xb6, 0xd9, //0x00001cf5 movzbl %cl, %ebx + 0x09, 0xf3, //0x00001cf8 orl %esi, %ebx + 0x81, 0xe1, 0x00, 0x00, 0xfc, 0x00, //0x00001cfa andl $16515072, %ecx + 0x81, 0xf9, 0x00, 0x00, 0xdc, 0x00, //0x00001d00 cmpl $14417920, %ecx + 0x0f, 0x84, 0xac, 0x02, 0x00, 0x00, //0x00001d06 je LBB6_77 + 0xf6, 0x45, 0xb8, 0x02, //0x00001d0c testb $2, $-72(%rbp) + 0x0f, 0x84, 0x41, 0x05, 0x00, 0x00, //0x00001d10 je LBB6_114 + 0x49, 0x83, 0xc6, 0xf9, //0x00001d16 addq $-7, %r14 + 0x66, 0xc7, 0x00, 0xef, 0xbf, //0x00001d1a movw $-16401, (%rax) + 0xc6, 0x40, 0x02, 0xbd, //0x00001d1f movb $-67, $2(%rax) + 0x48, 0x83, 0xc0, 0x03, //0x00001d23 addq $3, %rax + 0x49, 0x83, 0xc4, 0x07, //0x00001d27 addq $7, %r12 + 0x41, 0x89, 0xdf, //0x00001d2b movl %ebx, %r15d + 0x83, 0xfb, 0x7f, //0x00001d2e cmpl $127, %ebx + 0x0f, 0x87, 0xae, 0xfe, 0xff, 0xff, //0x00001d31 ja LBB6_25 + 0xe9, 0x44, 0x01, 0x00, 0x00, //0x00001d37 jmp LBB6_53 + 0x90, 0x90, 0x90, 0x90, //0x00001d3c .p2align 4, 0x90 + //0x00001d40 LBB6_40 + 0x41, 0x81, 0xff, 0x00, 0x08, 0x00, 0x00, //0x00001d40 cmpl $2048, %r15d + 0x0f, 0x82, 0xe1, 0x01, 0x00, 0x00, //0x00001d47 jb LBB6_68 + 0x44, 0x89, 0xf9, //0x00001d4d movl %r15d, %ecx + 0x81, 0xe1, 0x00, 0xf8, 0xff, 0xff, //0x00001d50 andl $-2048, %ecx + 0x81, 0xf9, 0x00, 0xd8, 0x00, 0x00, //0x00001d56 cmpl $55296, %ecx + 0x0f, 0x85, 0x2e, 0x01, 0x00, 0x00, //0x00001d5c jne LBB6_54 + 0x41, 0x81, 0xff, 0xff, 0xdb, 0x00, 0x00, //0x00001d62 cmpl $56319, %r15d + 0x0f, 0x87, 0xe4, 0x01, 0x00, 0x00, //0x00001d69 ja LBB6_69 + 0x49, 0x83, 0xfe, 0x06, //0x00001d6f cmpq $6, %r14 + 0x0f, 0x8c, 0xda, 0x01, 0x00, 0x00, //0x00001d73 jl LBB6_69 + 0x43, 0x80, 0x7c, 0x21, 0x04, 0x5c, //0x00001d79 cmpb $92, $4(%r9,%r12) + 0x0f, 0x85, 0xce, 0x01, 0x00, 0x00, //0x00001d7f jne LBB6_69 + 0x43, 0x80, 0x7c, 0x21, 0x05, 0x75, //0x00001d85 cmpb $117, $5(%r9,%r12) + 0x0f, 0x85, 0xc2, 0x01, 0x00, 0x00, //0x00001d8b jne LBB6_69 + 0x43, 0x8b, 0x74, 0x21, 0x06, //0x00001d91 movl $6(%r9,%r12), %esi + 0x89, 0xf1, //0x00001d96 movl %esi, %ecx + 0xf7, 0xd1, //0x00001d98 notl %ecx + 0x8d, 0x9e, 0xd0, 0xcf, 0xcf, 0xcf, //0x00001d9a leal $-808464432(%rsi), %ebx + 0x81, 0xe1, 0x80, 0x80, 0x80, 0x80, //0x00001da0 andl $-2139062144, %ecx + 0x85, 0xd9, //0x00001da6 testl %ebx, %ecx + 0x0f, 0x85, 0x98, 0x03, 0x00, 0x00, //0x00001da8 jne LBB6_98 + 0x8d, 0x9e, 0x19, 0x19, 0x19, 0x19, //0x00001dae leal $421075225(%rsi), %ebx + 0x09, 0xf3, //0x00001db4 orl %esi, %ebx + 0xf7, 0xc3, 0x80, 0x80, 0x80, 0x80, //0x00001db6 testl $-2139062144, %ebx + 0x0f, 0x85, 0x84, 0x03, 0x00, 0x00, //0x00001dbc jne LBB6_98 + 0x89, 0xf3, //0x00001dc2 movl %esi, %ebx + 0x81, 0xe3, 0x7f, 0x7f, 0x7f, 0x7f, //0x00001dc4 andl $2139062143, %ebx + 0xc7, 0x45, 0xd4, 0xc0, 0xc0, 0xc0, 0xc0, //0x00001dca movl $-1061109568, $-44(%rbp) + 0x29, 0x5d, 0xd4, //0x00001dd1 subl %ebx, $-44(%rbp) + 0x48, 0x89, 0x75, 0xb0, //0x00001dd4 movq %rsi, $-80(%rbp) + 0x8d, 0xb3, 0x46, 0x46, 0x46, 0x46, //0x00001dd8 leal $1179010630(%rbx), %esi + 0x89, 0x75, 0xc4, //0x00001dde movl %esi, $-60(%rbp) + 0x21, 0x4d, 0xd4, //0x00001de1 andl %ecx, $-44(%rbp) + 0x8b, 0x75, 0xc4, //0x00001de4 movl $-60(%rbp), %esi + 0x85, 0x75, 0xd4, //0x00001de7 testl %esi, $-44(%rbp) + 0x48, 0x8b, 0x75, 0xb0, //0x00001dea movq $-80(%rbp), %rsi + 0x0f, 0x85, 0x52, 0x03, 0x00, 0x00, //0x00001dee jne LBB6_98 + 0xc7, 0x45, 0xd4, 0xe0, 0xe0, 0xe0, 0xe0, //0x00001df4 movl $-522133280, $-44(%rbp) + 0x29, 0x5d, 0xd4, //0x00001dfb subl %ebx, $-44(%rbp) + 0x81, 0xc3, 0x39, 0x39, 0x39, 0x39, //0x00001dfe addl $960051513, %ebx + 0x23, 0x4d, 0xd4, //0x00001e04 andl $-44(%rbp), %ecx + 0x85, 0xd9, //0x00001e07 testl %ebx, %ecx + 0x0f, 0x85, 0x37, 0x03, 0x00, 0x00, //0x00001e09 jne LBB6_98 + 0x0f, 0xce, //0x00001e0f bswapl %esi + 0x89, 0xf1, //0x00001e11 movl %esi, %ecx + 0xc1, 0xe9, 0x04, //0x00001e13 shrl $4, %ecx + 0xf7, 0xd1, //0x00001e16 notl %ecx + 0x81, 0xe1, 0x01, 0x01, 0x01, 0x01, //0x00001e18 andl $16843009, %ecx + 0x8d, 0x0c, 0xc9, //0x00001e1e leal (%rcx,%rcx,8), %ecx + 0x81, 0xe6, 0x0f, 0x0f, 0x0f, 0x0f, //0x00001e21 andl $252645135, %esi + 0x01, 0xce, //0x00001e27 addl %ecx, %esi + 0x89, 0xf1, //0x00001e29 movl %esi, %ecx + 0xc1, 0xe9, 0x04, //0x00001e2b shrl $4, %ecx + 0x09, 0xf1, //0x00001e2e orl %esi, %ecx + 0x89, 0xce, //0x00001e30 movl %ecx, %esi + 0xc1, 0xee, 0x08, //0x00001e32 shrl $8, %esi + 0x81, 0xe6, 0x00, 0xff, 0x00, 0x00, //0x00001e35 andl $65280, %esi + 0x0f, 0xb6, 0xd9, //0x00001e3b movzbl %cl, %ebx + 0x09, 0xf3, //0x00001e3e orl %esi, %ebx + 0x81, 0xe1, 0x00, 0x00, 0xfc, 0x00, //0x00001e40 andl $16515072, %ecx + 0x81, 0xf9, 0x00, 0x00, 0xdc, 0x00, //0x00001e46 cmpl $14417920, %ecx + 0x0f, 0x84, 0x55, 0x01, 0x00, 0x00, //0x00001e4c je LBB6_76 + 0xf6, 0x45, 0xb8, 0x02, //0x00001e52 testb $2, $-72(%rbp) + 0x0f, 0x84, 0xf1, 0x03, 0x00, 0x00, //0x00001e56 je LBB6_113 + 0x49, 0x83, 0xc6, 0xfa, //0x00001e5c addq $-6, %r14 + 0x66, 0xc7, 0x00, 0xef, 0xbf, //0x00001e60 movw $-16401, (%rax) + 0xc6, 0x40, 0x02, 0xbd, //0x00001e65 movb $-67, $2(%rax) + 0x48, 0x83, 0xc0, 0x03, //0x00001e69 addq $3, %rax + 0x49, 0x83, 0xc4, 0x06, //0x00001e6d addq $6, %r12 + 0x41, 0x89, 0xdf, //0x00001e71 movl %ebx, %r15d + 0x81, 0xfb, 0x80, 0x00, 0x00, 0x00, //0x00001e74 cmpl $128, %ebx + 0x0f, 0x83, 0xc0, 0xfe, 0xff, 0xff, //0x00001e7a jae LBB6_40 + //0x00001e80 LBB6_53 + 0x4f, 0x8d, 0x4c, 0x21, 0x04, //0x00001e80 leaq $4(%r9,%r12), %r9 + 0x41, 0x89, 0xdf, //0x00001e85 movl %ebx, %r15d + 0xe9, 0x96, 0x00, 0x00, 0x00, //0x00001e88 jmp LBB6_67 + 0x90, 0x90, 0x90, //0x00001e8d .p2align 4, 0x90 + //0x00001e90 LBB6_54 + 0x4f, 0x8d, 0x4c, 0x21, 0x04, //0x00001e90 leaq $4(%r9,%r12), %r9 + 0x44, 0x89, 0xf9, //0x00001e95 movl %r15d, %ecx + 0xc1, 0xe9, 0x0c, //0x00001e98 shrl $12, %ecx + 0x80, 0xc9, 0xe0, //0x00001e9b orb $-32, %cl + 0x88, 0x08, //0x00001e9e movb %cl, (%rax) + 0x44, 0x89, 0xf9, //0x00001ea0 movl %r15d, %ecx + 0xc1, 0xe9, 0x06, //0x00001ea3 shrl $6, %ecx + 0x80, 0xe1, 0x3f, //0x00001ea6 andb $63, %cl + 0x80, 0xc9, 0x80, //0x00001ea9 orb $-128, %cl + 0x88, 0x48, 0x01, //0x00001eac movb %cl, $1(%rax) + 0x41, 0x80, 0xe7, 0x3f, //0x00001eaf andb $63, %r15b + 0x41, 0x80, 0xcf, 0x80, //0x00001eb3 orb $-128, %r15b + 0x44, 0x88, 0x78, 0x02, //0x00001eb7 movb %r15b, $2(%rax) + //0x00001ebb LBB6_55 + 0x48, 0x83, 0xc0, 0x03, //0x00001ebb addq $3, %rax + //0x00001ebf LBB6_56 + 0x4d, 0x89, 0xf5, //0x00001ebf movq %r14, %r13 + //0x00001ec2 LBB6_57 + 0x4d, 0x85, 0xed, //0x00001ec2 testq %r13, %r13 + 0x0f, 0x85, 0x2c, 0xfb, 0xff, 0xff, //0x00001ec5 jne LBB6_2 + 0xe9, 0x63, 0x02, 0x00, 0x00, //0x00001ecb jmp LBB6_96 + //0x00001ed0 LBB6_58 + 0x45, 0x85, 0xed, //0x00001ed0 testl %r13d, %r13d + 0x0f, 0x84, 0x2e, 0x02, 0x00, 0x00, //0x00001ed3 je LBB6_94 + 0x41, 0x80, 0x79, 0xff, 0x5c, //0x00001ed9 cmpb $92, $-1(%r9) + 0x0f, 0x85, 0x57, 0x02, 0x00, 0x00, //0x00001ede jne LBB6_97 + 0x41, 0x80, 0x39, 0x5c, //0x00001ee4 cmpb $92, (%r9) + 0x0f, 0x85, 0x26, 0x00, 0x00, 0x00, //0x00001ee8 jne LBB6_65 + 0x41, 0x83, 0xfd, 0x01, //0x00001eee cmpl $1, %r13d + 0x0f, 0x8e, 0x0f, 0x02, 0x00, 0x00, //0x00001ef2 jle LBB6_94 + 0x41, 0x8a, 0x49, 0x01, //0x00001ef8 movb $1(%r9), %cl + 0x80, 0xf9, 0x22, //0x00001efc cmpb $34, %cl + 0x0f, 0x84, 0x09, 0x00, 0x00, 0x00, //0x00001eff je LBB6_64 + 0x80, 0xf9, 0x5c, //0x00001f05 cmpb $92, %cl + 0x0f, 0x85, 0x0c, 0x03, 0x00, 0x00, //0x00001f08 jne LBB6_109 + //0x00001f0e LBB6_64 + 0x49, 0xff, 0xc1, //0x00001f0e incq %r9 + 0x49, 0xff, 0xcd, //0x00001f11 decq %r13 + //0x00001f14 LBB6_65 + 0x49, 0xff, 0xc1, //0x00001f14 incq %r9 + 0x49, 0xff, 0xcd, //0x00001f17 decq %r13 + 0xe9, 0xcc, 0xfb, 0xff, 0xff, //0x00001f1a jmp LBB6_15 + //0x00001f1f LBB6_66 + 0x49, 0x83, 0xc1, 0x04, //0x00001f1f addq $4, %r9 + //0x00001f23 LBB6_67 + 0x44, 0x88, 0x38, //0x00001f23 movb %r15b, (%rax) + 0x48, 0xff, 0xc0, //0x00001f26 incq %rax + 0xe9, 0x91, 0xff, 0xff, 0xff, //0x00001f29 jmp LBB6_56 + //0x00001f2e LBB6_68 + 0x4f, 0x8d, 0x4c, 0x21, 0x04, //0x00001f2e leaq $4(%r9,%r12), %r9 + 0x44, 0x89, 0xf9, //0x00001f33 movl %r15d, %ecx + 0xc1, 0xe9, 0x06, //0x00001f36 shrl $6, %ecx + 0x80, 0xc9, 0xc0, //0x00001f39 orb $-64, %cl + 0x88, 0x08, //0x00001f3c movb %cl, (%rax) + 0x41, 0x80, 0xe7, 0x3f, //0x00001f3e andb $63, %r15b + 0x41, 0x80, 0xcf, 0x80, //0x00001f42 orb $-128, %r15b + 0x44, 0x88, 0x78, 0x01, //0x00001f46 movb %r15b, $1(%rax) + 0x48, 0x83, 0xc0, 0x02, //0x00001f4a addq $2, %rax + 0xe9, 0x6c, 0xff, 0xff, 0xff, //0x00001f4e jmp LBB6_56 + //0x00001f53 LBB6_69 + 0x4f, 0x8d, 0x4c, 0x21, 0x04, //0x00001f53 leaq $4(%r9,%r12), %r9 + 0xe9, 0x0f, 0x00, 0x00, 0x00, //0x00001f58 jmp LBB6_71 + //0x00001f5d LBB6_70 + 0x4f, 0x8d, 0x4c, 0x21, 0x05, //0x00001f5d leaq $5(%r9,%r12), %r9 + 0x4d, 0x29, 0xe5, //0x00001f62 subq %r12, %r13 + 0x49, 0x83, 0xc5, 0xfb, //0x00001f65 addq $-5, %r13 + 0x4d, 0x89, 0xee, //0x00001f69 movq %r13, %r14 + //0x00001f6c LBB6_71 + 0xf6, 0x45, 0xb8, 0x02, //0x00001f6c testb $2, $-72(%rbp) + 0x0f, 0x85, 0x23, 0x00, 0x00, 0x00, //0x00001f70 jne LBB6_75 + 0xe9, 0xfb, 0x02, 0x00, 0x00, //0x00001f76 jmp LBB6_116 + //0x00001f7b LBB6_72 + 0xf6, 0x45, 0xb8, 0x02, //0x00001f7b testb $2, $-72(%rbp) + 0x0f, 0x85, 0x0f, 0x00, 0x00, 0x00, //0x00001f7f jne LBB6_74 + 0xe9, 0x7d, 0x01, 0x00, 0x00, //0x00001f85 jmp LBB6_94 + //0x00001f8a LBB6_73 + 0xf6, 0x45, 0xb8, 0x02, //0x00001f8a testb $2, $-72(%rbp) + 0x0f, 0x84, 0xef, 0x02, 0x00, 0x00, //0x00001f8e je LBB6_117 + //0x00001f94 LBB6_74 + 0x4f, 0x8d, 0x4c, 0x21, 0x04, //0x00001f94 leaq $4(%r9,%r12), %r9 + //0x00001f99 LBB6_75 + 0x66, 0xc7, 0x00, 0xef, 0xbf, //0x00001f99 movw $-16401, (%rax) + 0xc6, 0x40, 0x02, 0xbd, //0x00001f9e movb $-67, $2(%rax) + 0xe9, 0x14, 0xff, 0xff, 0xff, //0x00001fa2 jmp LBB6_55 + //0x00001fa7 LBB6_76 + 0x4f, 0x8d, 0x4c, 0x21, 0x0a, //0x00001fa7 leaq $10(%r9,%r12), %r9 + 0x4d, 0x29, 0xe5, //0x00001fac subq %r12, %r13 + 0x49, 0x83, 0xc5, 0xf6, //0x00001faf addq $-10, %r13 + 0xe9, 0x0c, 0x00, 0x00, 0x00, //0x00001fb3 jmp LBB6_78 + //0x00001fb8 LBB6_77 + 0x4f, 0x8d, 0x4c, 0x21, 0x0b, //0x00001fb8 leaq $11(%r9,%r12), %r9 + 0x4d, 0x29, 0xe5, //0x00001fbd subq %r12, %r13 + 0x49, 0x83, 0xc5, 0xf5, //0x00001fc0 addq $-11, %r13 + //0x00001fc4 LBB6_78 + 0x41, 0xc1, 0xe7, 0x0a, //0x00001fc4 shll $10, %r15d + 0x41, 0x8d, 0x8c, 0x1f, 0x00, 0x24, 0xa0, 0xfc, //0x00001fc8 leal $-56613888(%r15,%rbx), %ecx + 0x81, 0xf9, 0x00, 0x00, 0x11, 0x00, //0x00001fd0 cmpl $1114112, %ecx + 0x0f, 0x82, 0x1c, 0x00, 0x00, 0x00, //0x00001fd6 jb LBB6_81 + 0xf6, 0x45, 0xb8, 0x02, //0x00001fdc testb $2, $-72(%rbp) + 0x0f, 0x84, 0x4d, 0x02, 0x00, 0x00, //0x00001fe0 je LBB6_111 + 0x66, 0xc7, 0x00, 0xef, 0xbf, //0x00001fe6 movw $-16401, (%rax) + 0xc6, 0x40, 0x02, 0xbd, //0x00001feb movb $-67, $2(%rax) + 0x48, 0x83, 0xc0, 0x03, //0x00001fef addq $3, %rax + 0xe9, 0xca, 0xfe, 0xff, 0xff, //0x00001ff3 jmp LBB6_57 + //0x00001ff8 LBB6_81 + 0x89, 0xce, //0x00001ff8 movl %ecx, %esi + 0xc1, 0xee, 0x12, //0x00001ffa shrl $18, %esi + 0x40, 0x80, 0xce, 0xf0, //0x00001ffd orb $-16, %sil + 0x40, 0x88, 0x30, //0x00002001 movb %sil, (%rax) + 0x89, 0xce, //0x00002004 movl %ecx, %esi + 0xc1, 0xee, 0x0c, //0x00002006 shrl $12, %esi + 0x40, 0x80, 0xe6, 0x3f, //0x00002009 andb $63, %sil + 0x40, 0x80, 0xce, 0x80, //0x0000200d orb $-128, %sil + 0x40, 0x88, 0x70, 0x01, //0x00002011 movb %sil, $1(%rax) + 0x89, 0xce, //0x00002015 movl %ecx, %esi + 0xc1, 0xee, 0x06, //0x00002017 shrl $6, %esi + 0x40, 0x80, 0xe6, 0x3f, //0x0000201a andb $63, %sil + 0x40, 0x80, 0xce, 0x80, //0x0000201e orb $-128, %sil + 0x40, 0x88, 0x70, 0x02, //0x00002022 movb %sil, $2(%rax) + 0x80, 0xe1, 0x3f, //0x00002026 andb $63, %cl + 0x80, 0xc9, 0x80, //0x00002029 orb $-128, %cl + 0x88, 0x48, 0x03, //0x0000202c movb %cl, $3(%rax) + 0x48, 0x83, 0xc0, 0x04, //0x0000202f addq $4, %rax + 0xe9, 0x8a, 0xfe, 0xff, 0xff, //0x00002033 jmp LBB6_57 + //0x00002038 LBB6_82 + 0x45, 0x31, 0xed, //0x00002038 xorl %r13d, %r13d + 0x48, 0x89, 0xd0, //0x0000203b movq %rdx, %rax + //0x0000203e LBB6_83 + 0x4c, 0x01, 0xe8, //0x0000203e addq %r13, %rax + 0x48, 0x29, 0xd0, //0x00002041 subq %rdx, %rax + //0x00002044 LBB6_84 + 0x48, 0x83, 0xc4, 0x28, //0x00002044 addq $40, %rsp + 0x5b, //0x00002048 popq %rbx + 0x41, 0x5c, //0x00002049 popq %r12 + 0x41, 0x5d, //0x0000204b popq %r13 + 0x41, 0x5e, //0x0000204d popq %r14 + 0x41, 0x5f, //0x0000204f popq %r15 + 0x5d, //0x00002051 popq %rbp + 0xc3, //0x00002052 retq + //0x00002053 LBB6_85 + 0x4c, 0x89, 0xca, //0x00002053 movq %r9, %rdx + 0x48, 0x29, 0xfa, //0x00002056 subq %rdi, %rdx + 0x48, 0x8b, 0x7d, 0xc8, //0x00002059 movq $-56(%rbp), %rdi + 0x48, 0x89, 0x17, //0x0000205d movq %rdx, (%rdi) + 0x41, 0x8a, 0x09, //0x00002060 movb (%r9), %cl + 0x8d, 0x71, 0xd0, //0x00002063 leal $-48(%rcx), %esi + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00002066 movq $-2, %rax + 0x40, 0x80, 0xfe, 0x0a, //0x0000206d cmpb $10, %sil + 0x0f, 0x82, 0x0f, 0x00, 0x00, 0x00, //0x00002071 jb LBB6_87 + 0x80, 0xe1, 0xdf, //0x00002077 andb $-33, %cl + 0x80, 0xc1, 0xbf, //0x0000207a addb $-65, %cl + 0x80, 0xf9, 0x05, //0x0000207d cmpb $5, %cl + 0x0f, 0x87, 0xbe, 0xff, 0xff, 0xff, //0x00002080 ja LBB6_84 + //0x00002086 LBB6_87 + 0x48, 0x8d, 0x4a, 0x01, //0x00002086 leaq $1(%rdx), %rcx + 0x48, 0x89, 0x0f, //0x0000208a movq %rcx, (%rdi) + 0x41, 0x8a, 0x49, 0x01, //0x0000208d movb $1(%r9), %cl + 0x8d, 0x71, 0xd0, //0x00002091 leal $-48(%rcx), %esi + 0x40, 0x80, 0xfe, 0x0a, //0x00002094 cmpb $10, %sil + 0x0f, 0x82, 0x0f, 0x00, 0x00, 0x00, //0x00002098 jb LBB6_89 + 0x80, 0xe1, 0xdf, //0x0000209e andb $-33, %cl + 0x80, 0xc1, 0xbf, //0x000020a1 addb $-65, %cl + 0x80, 0xf9, 0x05, //0x000020a4 cmpb $5, %cl + 0x0f, 0x87, 0x97, 0xff, 0xff, 0xff, //0x000020a7 ja LBB6_84 + //0x000020ad LBB6_89 + 0x48, 0x8d, 0x4a, 0x02, //0x000020ad leaq $2(%rdx), %rcx + 0x48, 0x89, 0x0f, //0x000020b1 movq %rcx, (%rdi) + 0x41, 0x8a, 0x49, 0x02, //0x000020b4 movb $2(%r9), %cl + 0x8d, 0x71, 0xd0, //0x000020b8 leal $-48(%rcx), %esi + 0x40, 0x80, 0xfe, 0x0a, //0x000020bb cmpb $10, %sil + 0x0f, 0x82, 0x0f, 0x00, 0x00, 0x00, //0x000020bf jb LBB6_91 + 0x80, 0xe1, 0xdf, //0x000020c5 andb $-33, %cl + 0x80, 0xc1, 0xbf, //0x000020c8 addb $-65, %cl + 0x80, 0xf9, 0x05, //0x000020cb cmpb $5, %cl + 0x0f, 0x87, 0x70, 0xff, 0xff, 0xff, //0x000020ce ja LBB6_84 + //0x000020d4 LBB6_91 + 0x48, 0x8d, 0x4a, 0x03, //0x000020d4 leaq $3(%rdx), %rcx + 0x48, 0x89, 0x0f, //0x000020d8 movq %rcx, (%rdi) + 0x41, 0x8a, 0x49, 0x03, //0x000020db movb $3(%r9), %cl + 0x8d, 0x71, 0xd0, //0x000020df leal $-48(%rcx), %esi + 0x40, 0x80, 0xfe, 0x0a, //0x000020e2 cmpb $10, %sil + 0x0f, 0x82, 0x0f, 0x00, 0x00, 0x00, //0x000020e6 jb LBB6_93 + 0x80, 0xe1, 0xdf, //0x000020ec andb $-33, %cl + 0x80, 0xc1, 0xbf, //0x000020ef addb $-65, %cl + 0x80, 0xf9, 0x05, //0x000020f2 cmpb $5, %cl + 0x0f, 0x87, 0x49, 0xff, 0xff, 0xff, //0x000020f5 ja LBB6_84 + //0x000020fb LBB6_93 + 0x48, 0x83, 0xc2, 0x04, //0x000020fb addq $4, %rdx + 0x48, 0x89, 0x17, //0x000020ff movq %rdx, (%rdi) + 0xe9, 0x3d, 0xff, 0xff, 0xff, //0x00002102 jmp LBB6_84 + //0x00002107 LBB6_94 + 0x48, 0x8b, 0x45, 0xc8, //0x00002107 movq $-56(%rbp), %rax + 0x4c, 0x89, 0x18, //0x0000210b movq %r11, (%rax) + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x0000210e movq $-1, %rax + 0xe9, 0x2a, 0xff, 0xff, 0xff, //0x00002115 jmp LBB6_84 + //0x0000211a LBB6_95 + 0x48, 0xf7, 0xd7, //0x0000211a notq %rdi + 0x49, 0x01, 0xf9, //0x0000211d addq %rdi, %r9 + 0x48, 0x8b, 0x45, 0xc8, //0x00002120 movq $-56(%rbp), %rax + 0x4c, 0x89, 0x08, //0x00002124 movq %r9, (%rax) + 0x48, 0xc7, 0xc0, 0xfd, 0xff, 0xff, 0xff, //0x00002127 movq $-3, %rax + 0xe9, 0x11, 0xff, 0xff, 0xff, //0x0000212e jmp LBB6_84 + //0x00002133 LBB6_96 + 0x45, 0x31, 0xed, //0x00002133 xorl %r13d, %r13d + 0xe9, 0x03, 0xff, 0xff, 0xff, //0x00002136 jmp LBB6_83 + //0x0000213b LBB6_97 + 0x48, 0xf7, 0xd7, //0x0000213b notq %rdi + 0x49, 0x01, 0xf9, //0x0000213e addq %rdi, %r9 + 0xe9, 0xda, 0x00, 0x00, 0x00, //0x00002141 jmp LBB6_110 + //0x00002146 LBB6_98 + 0x4b, 0x8d, 0x74, 0x21, 0x04, //0x00002146 leaq $4(%r9,%r12), %rsi + 0xe9, 0x05, 0x00, 0x00, 0x00, //0x0000214b jmp LBB6_100 + //0x00002150 LBB6_99 + 0x4b, 0x8d, 0x74, 0x21, 0x05, //0x00002150 leaq $5(%r9,%r12), %rsi + //0x00002155 LBB6_100 + 0x48, 0x89, 0xf2, //0x00002155 movq %rsi, %rdx + 0x48, 0x29, 0xfa, //0x00002158 subq %rdi, %rdx + 0x48, 0x83, 0xc2, 0x02, //0x0000215b addq $2, %rdx + 0x48, 0x8b, 0x45, 0xc8, //0x0000215f movq $-56(%rbp), %rax + 0x48, 0x89, 0x10, //0x00002163 movq %rdx, (%rax) + 0x8a, 0x4e, 0x02, //0x00002166 movb $2(%rsi), %cl + 0x8d, 0x79, 0xd0, //0x00002169 leal $-48(%rcx), %edi + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x0000216c movq $-2, %rax + 0x40, 0x80, 0xff, 0x0a, //0x00002173 cmpb $10, %dil + 0x0f, 0x82, 0x0f, 0x00, 0x00, 0x00, //0x00002177 jb LBB6_102 + 0x80, 0xe1, 0xdf, //0x0000217d andb $-33, %cl + 0x80, 0xc1, 0xbf, //0x00002180 addb $-65, %cl + 0x80, 0xf9, 0x05, //0x00002183 cmpb $5, %cl + 0x0f, 0x87, 0xb8, 0xfe, 0xff, 0xff, //0x00002186 ja LBB6_84 + //0x0000218c LBB6_102 + 0x48, 0x8d, 0x4a, 0x01, //0x0000218c leaq $1(%rdx), %rcx + 0x48, 0x8b, 0x7d, 0xc8, //0x00002190 movq $-56(%rbp), %rdi + 0x48, 0x89, 0x0f, //0x00002194 movq %rcx, (%rdi) + 0x8a, 0x4e, 0x03, //0x00002197 movb $3(%rsi), %cl + 0x8d, 0x79, 0xd0, //0x0000219a leal $-48(%rcx), %edi + 0x40, 0x80, 0xff, 0x0a, //0x0000219d cmpb $10, %dil + 0x0f, 0x82, 0x0f, 0x00, 0x00, 0x00, //0x000021a1 jb LBB6_104 + 0x80, 0xe1, 0xdf, //0x000021a7 andb $-33, %cl + 0x80, 0xc1, 0xbf, //0x000021aa addb $-65, %cl + 0x80, 0xf9, 0x05, //0x000021ad cmpb $5, %cl + 0x0f, 0x87, 0x8e, 0xfe, 0xff, 0xff, //0x000021b0 ja LBB6_84 + //0x000021b6 LBB6_104 + 0x48, 0x8d, 0x4a, 0x02, //0x000021b6 leaq $2(%rdx), %rcx + 0x48, 0x8b, 0x7d, 0xc8, //0x000021ba movq $-56(%rbp), %rdi + 0x48, 0x89, 0x0f, //0x000021be movq %rcx, (%rdi) + 0x8a, 0x4e, 0x04, //0x000021c1 movb $4(%rsi), %cl + 0x8d, 0x79, 0xd0, //0x000021c4 leal $-48(%rcx), %edi + 0x40, 0x80, 0xff, 0x0a, //0x000021c7 cmpb $10, %dil + 0x0f, 0x82, 0x0f, 0x00, 0x00, 0x00, //0x000021cb jb LBB6_106 + 0x80, 0xe1, 0xdf, //0x000021d1 andb $-33, %cl + 0x80, 0xc1, 0xbf, //0x000021d4 addb $-65, %cl + 0x80, 0xf9, 0x05, //0x000021d7 cmpb $5, %cl + 0x0f, 0x87, 0x64, 0xfe, 0xff, 0xff, //0x000021da ja LBB6_84 + //0x000021e0 LBB6_106 + 0x48, 0x8d, 0x4a, 0x03, //0x000021e0 leaq $3(%rdx), %rcx + 0x48, 0x8b, 0x7d, 0xc8, //0x000021e4 movq $-56(%rbp), %rdi + 0x48, 0x89, 0x0f, //0x000021e8 movq %rcx, (%rdi) + 0x8a, 0x4e, 0x05, //0x000021eb movb $5(%rsi), %cl + 0x8d, 0x71, 0xd0, //0x000021ee leal $-48(%rcx), %esi + 0x40, 0x80, 0xfe, 0x0a, //0x000021f1 cmpb $10, %sil + 0x0f, 0x82, 0x0f, 0x00, 0x00, 0x00, //0x000021f5 jb LBB6_108 + 0x80, 0xe1, 0xdf, //0x000021fb andb $-33, %cl + 0x80, 0xc1, 0xbf, //0x000021fe addb $-65, %cl + 0x80, 0xf9, 0x05, //0x00002201 cmpb $5, %cl + 0x0f, 0x87, 0x3a, 0xfe, 0xff, 0xff, //0x00002204 ja LBB6_84 + //0x0000220a LBB6_108 + 0x48, 0x83, 0xc2, 0x04, //0x0000220a addq $4, %rdx + 0x48, 0x8b, 0x4d, 0xc8, //0x0000220e movq $-56(%rbp), %rcx + 0x48, 0x89, 0x11, //0x00002212 movq %rdx, (%rcx) + 0xe9, 0x2a, 0xfe, 0xff, 0xff, //0x00002215 jmp LBB6_84 + //0x0000221a LBB6_109 + 0x49, 0x29, 0xf9, //0x0000221a subq %rdi, %r9 + 0x49, 0xff, 0xc1, //0x0000221d incq %r9 + //0x00002220 LBB6_110 + 0x48, 0x8b, 0x45, 0xc8, //0x00002220 movq $-56(%rbp), %rax + 0x4c, 0x89, 0x08, //0x00002224 movq %r9, (%rax) + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00002227 movq $-2, %rax + 0xe9, 0x11, 0xfe, 0xff, 0xff, //0x0000222e jmp LBB6_84 + //0x00002233 LBB6_111 + 0x49, 0x29, 0xf9, //0x00002233 subq %rdi, %r9 + 0x49, 0x83, 0xc1, 0xfc, //0x00002236 addq $-4, %r9 + //0x0000223a LBB6_112 + 0x48, 0x8b, 0x45, 0xc8, //0x0000223a movq $-56(%rbp), %rax + 0x4c, 0x89, 0x08, //0x0000223e movq %r9, (%rax) + 0x48, 0xc7, 0xc0, 0xfc, 0xff, 0xff, 0xff, //0x00002241 movq $-4, %rax + 0xe9, 0xf7, 0xfd, 0xff, 0xff, //0x00002248 jmp LBB6_84 + //0x0000224d LBB6_113 + 0x4b, 0x8d, 0x44, 0x21, 0x0a, //0x0000224d leaq $10(%r9,%r12), %rax + 0xe9, 0x05, 0x00, 0x00, 0x00, //0x00002252 jmp LBB6_115 + //0x00002257 LBB6_114 + 0x4b, 0x8d, 0x44, 0x21, 0x0b, //0x00002257 leaq $11(%r9,%r12), %rax + //0x0000225c LBB6_115 + 0x48, 0x29, 0xf8, //0x0000225c subq %rdi, %rax + 0x48, 0x83, 0xc0, 0xfc, //0x0000225f addq $-4, %rax + 0x48, 0x8b, 0x4d, 0xc8, //0x00002263 movq $-56(%rbp), %rcx + 0x48, 0x89, 0x01, //0x00002267 movq %rax, (%rcx) + 0x48, 0xc7, 0xc0, 0xfc, 0xff, 0xff, 0xff, //0x0000226a movq $-4, %rax + 0xe9, 0xce, 0xfd, 0xff, 0xff, //0x00002271 jmp LBB6_84 + //0x00002276 LBB6_116 + 0x49, 0x8d, 0x44, 0x3a, 0x04, //0x00002276 leaq $4(%r10,%rdi), %rax + 0x49, 0x29, 0xc1, //0x0000227b subq %rax, %r9 + 0xe9, 0xb7, 0xff, 0xff, 0xff, //0x0000227e jmp LBB6_112 + //0x00002283 LBB6_117 + 0x4d, 0x01, 0xe1, //0x00002283 addq %r12, %r9 + 0x49, 0x29, 0xf9, //0x00002286 subq %rdi, %r9 + 0xe9, 0xac, 0xff, 0xff, 0xff, //0x00002289 jmp LBB6_112 + 0x00, 0x00, //0x0000228e .p2align 4, 0x00 + //0x00002290 LCPI7_0 + 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, //0x00002290 QUAD $0x2626262626262626; QUAD $0x2626262626262626 // .space 16, '&&&&&&&&&&&&&&&&' + //0x000022a0 LCPI7_1 + 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, //0x000022a0 QUAD $0xe2e2e2e2e2e2e2e2; QUAD $0xe2e2e2e2e2e2e2e2 // .space 16, '\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2' + //0x000022b0 LCPI7_2 + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, //0x000022b0 QUAD $0x0202020202020202; QUAD $0x0202020202020202 // .space 16, '\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02' + //0x000022c0 LCPI7_3 + 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, //0x000022c0 QUAD $0x3e3e3e3e3e3e3e3e; QUAD $0x3e3e3e3e3e3e3e3e // .space 16, '>>>>>>>>>>>>>>>>' + //0x000022d0 .p2align 4, 0x90 + //0x000022d0 _html_escape + 0x55, //0x000022d0 pushq %rbp + 0x48, 0x89, 0xe5, //0x000022d1 movq %rsp, %rbp + 0x41, 0x57, //0x000022d4 pushq %r15 + 0x41, 0x56, //0x000022d6 pushq %r14 + 0x41, 0x55, //0x000022d8 pushq %r13 + 0x41, 0x54, //0x000022da pushq %r12 + 0x53, //0x000022dc pushq %rbx + 0x48, 0x83, 0xec, 0x18, //0x000022dd subq $24, %rsp + 0x48, 0x89, 0x4d, 0xc0, //0x000022e1 movq %rcx, $-64(%rbp) + 0x49, 0x89, 0xd2, //0x000022e5 movq %rdx, %r10 + 0x48, 0x89, 0x55, 0xc8, //0x000022e8 movq %rdx, $-56(%rbp) + 0x48, 0x89, 0x7d, 0xd0, //0x000022ec movq %rdi, $-48(%rbp) + 0x48, 0x89, 0xf8, //0x000022f0 movq %rdi, %rax + 0x48, 0x85, 0xf6, //0x000022f3 testq %rsi, %rsi + 0x0f, 0x8e, 0x93, 0x04, 0x00, 0x00, //0x000022f6 jle LBB7_59 + 0x48, 0x8b, 0x45, 0xc0, //0x000022fc movq $-64(%rbp), %rax + 0x4c, 0x8b, 0x08, //0x00002300 movq (%rax), %r9 + 0x66, 0x0f, 0x6f, 0x05, 0x85, 0xff, 0xff, 0xff, //0x00002303 movdqa $-123(%rip), %xmm0 /* LCPI7_0+0(%rip) */ + 0x66, 0x0f, 0x6f, 0x0d, 0x8d, 0xff, 0xff, 0xff, //0x0000230b movdqa $-115(%rip), %xmm1 /* LCPI7_1+0(%rip) */ + 0x66, 0x0f, 0x6f, 0x15, 0x95, 0xff, 0xff, 0xff, //0x00002313 movdqa $-107(%rip), %xmm2 /* LCPI7_2+0(%rip) */ + 0x66, 0x0f, 0x6f, 0x1d, 0x9d, 0xff, 0xff, 0xff, //0x0000231b movdqa $-99(%rip), %xmm3 /* LCPI7_3+0(%rip) */ + 0x49, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x50, //0x00002323 movabsq $5764607797912141824, %r14 + 0x4c, 0x8d, 0x1d, 0x2c, 0xe8, 0x00, 0x00, //0x0000232d leaq $59436(%rip), %r11 /* __HtmlQuoteTab+0(%rip) */ + 0x4c, 0x8b, 0x7d, 0xd0, //0x00002334 movq $-48(%rbp), %r15 + 0x4c, 0x8b, 0x55, 0xc8, //0x00002338 movq $-56(%rbp), %r10 + 0x90, 0x90, 0x90, 0x90, //0x0000233c .p2align 4, 0x90 + //0x00002340 LBB7_2 + 0x4d, 0x85, 0xc9, //0x00002340 testq %r9, %r9 + 0x0f, 0x8e, 0x65, 0x04, 0x00, 0x00, //0x00002343 jle LBB7_61 + 0x48, 0x83, 0xfe, 0x0f, //0x00002349 cmpq $15, %rsi + 0x0f, 0x9f, 0xc3, //0x0000234d setg %bl + 0x4d, 0x89, 0xcd, //0x00002350 movq %r9, %r13 + 0x4d, 0x89, 0xd0, //0x00002353 movq %r10, %r8 + 0x48, 0x89, 0xf0, //0x00002356 movq %rsi, %rax + 0x4d, 0x89, 0xfc, //0x00002359 movq %r15, %r12 + 0x49, 0x83, 0xf9, 0x10, //0x0000235c cmpq $16, %r9 + 0x0f, 0x8c, 0x8a, 0x00, 0x00, 0x00, //0x00002360 jl LBB7_9 + 0x48, 0x83, 0xfe, 0x10, //0x00002366 cmpq $16, %rsi + 0x0f, 0x8c, 0x80, 0x00, 0x00, 0x00, //0x0000236a jl LBB7_9 + 0x4d, 0x89, 0xfc, //0x00002370 movq %r15, %r12 + 0x48, 0x89, 0xf0, //0x00002373 movq %rsi, %rax + 0x4d, 0x89, 0xd0, //0x00002376 movq %r10, %r8 + 0x4c, 0x89, 0xc9, //0x00002379 movq %r9, %rcx + 0x90, 0x90, 0x90, 0x90, //0x0000237c .p2align 4, 0x90 + //0x00002380 LBB7_6 + 0xf3, 0x41, 0x0f, 0x6f, 0x24, 0x24, //0x00002380 movdqu (%r12), %xmm4 + 0x66, 0x0f, 0x6f, 0xec, //0x00002386 movdqa %xmm4, %xmm5 + 0x66, 0x0f, 0x6f, 0xf4, //0x0000238a movdqa %xmm4, %xmm6 + 0xf3, 0x41, 0x0f, 0x7f, 0x20, //0x0000238e movdqu %xmm4, (%r8) + 0x66, 0x0f, 0x74, 0xe0, //0x00002393 pcmpeqb %xmm0, %xmm4 + 0x66, 0x0f, 0x74, 0xe9, //0x00002397 pcmpeqb %xmm1, %xmm5 + 0x66, 0x0f, 0xeb, 0xec, //0x0000239b por %xmm4, %xmm5 + 0x66, 0x0f, 0xeb, 0xf2, //0x0000239f por %xmm2, %xmm6 + 0x66, 0x0f, 0x74, 0xf3, //0x000023a3 pcmpeqb %xmm3, %xmm6 + 0x66, 0x0f, 0xeb, 0xf5, //0x000023a7 por %xmm5, %xmm6 + 0x66, 0x0f, 0xd7, 0xd6, //0x000023ab pmovmskb %xmm6, %edx + 0x66, 0x85, 0xd2, //0x000023af testw %dx, %dx + 0x0f, 0x85, 0x48, 0x01, 0x00, 0x00, //0x000023b2 jne LBB7_21 + 0x49, 0x83, 0xc4, 0x10, //0x000023b8 addq $16, %r12 + 0x49, 0x83, 0xc0, 0x10, //0x000023bc addq $16, %r8 + 0x4c, 0x8d, 0x69, 0xf0, //0x000023c0 leaq $-16(%rcx), %r13 + 0x48, 0x83, 0xf8, 0x1f, //0x000023c4 cmpq $31, %rax + 0x0f, 0x9f, 0xc3, //0x000023c8 setg %bl + 0x48, 0x83, 0xf8, 0x20, //0x000023cb cmpq $32, %rax + 0x48, 0x8d, 0x40, 0xf0, //0x000023cf leaq $-16(%rax), %rax + 0x0f, 0x8c, 0x17, 0x00, 0x00, 0x00, //0x000023d3 jl LBB7_9 + 0x48, 0x83, 0xf9, 0x1f, //0x000023d9 cmpq $31, %rcx + 0x4c, 0x89, 0xe9, //0x000023dd movq %r13, %rcx + 0x0f, 0x8f, 0x9a, 0xff, 0xff, 0xff, //0x000023e0 jg LBB7_6 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000023e6 .p2align 4, 0x90 + //0x000023f0 LBB7_9 + 0x84, 0xdb, //0x000023f0 testb %bl, %bl + 0x0f, 0x84, 0x78, 0x00, 0x00, 0x00, //0x000023f2 je LBB7_13 + 0x4c, 0x89, 0xf2, //0x000023f8 movq %r14, %rdx + 0xf3, 0x41, 0x0f, 0x6f, 0x24, 0x24, //0x000023fb movdqu (%r12), %xmm4 + 0x66, 0x0f, 0x6f, 0xec, //0x00002401 movdqa %xmm4, %xmm5 + 0x66, 0x0f, 0x74, 0xe8, //0x00002405 pcmpeqb %xmm0, %xmm5 + 0x66, 0x0f, 0x6f, 0xf4, //0x00002409 movdqa %xmm4, %xmm6 + 0x66, 0x0f, 0x74, 0xf1, //0x0000240d pcmpeqb %xmm1, %xmm6 + 0x66, 0x0f, 0xeb, 0xf5, //0x00002411 por %xmm5, %xmm6 + 0x66, 0x48, 0x0f, 0x7e, 0xe0, //0x00002415 movq %xmm4, %rax + 0x66, 0x0f, 0xeb, 0xe2, //0x0000241a por %xmm2, %xmm4 + 0x66, 0x0f, 0x74, 0xe3, //0x0000241e pcmpeqb %xmm3, %xmm4 + 0x66, 0x0f, 0xeb, 0xe6, //0x00002422 por %xmm6, %xmm4 + 0x66, 0x0f, 0xd7, 0xcc, //0x00002426 pmovmskb %xmm4, %ecx + 0x81, 0xc9, 0x00, 0x00, 0x01, 0x00, //0x0000242a orl $65536, %ecx + 0x44, 0x0f, 0xbc, 0xf1, //0x00002430 bsfl %ecx, %r14d + 0x4d, 0x39, 0xf5, //0x00002434 cmpq %r14, %r13 + 0x0f, 0x8d, 0xde, 0x00, 0x00, 0x00, //0x00002437 jge LBB7_22 + 0x49, 0x83, 0xfd, 0x08, //0x0000243d cmpq $8, %r13 + 0x0f, 0x82, 0x11, 0x01, 0x00, 0x00, //0x00002441 jb LBB7_25 + 0x49, 0x89, 0x00, //0x00002447 movq %rax, (%r8) + 0x4d, 0x8d, 0x74, 0x24, 0x08, //0x0000244a leaq $8(%r12), %r14 + 0x49, 0x83, 0xc0, 0x08, //0x0000244f addq $8, %r8 + 0x49, 0x8d, 0x45, 0xf8, //0x00002453 leaq $-8(%r13), %rax + 0x48, 0x83, 0xf8, 0x04, //0x00002457 cmpq $4, %rax + 0x0f, 0x8d, 0x07, 0x01, 0x00, 0x00, //0x0000245b jge LBB7_26 + 0xe9, 0x14, 0x01, 0x00, 0x00, //0x00002461 jmp LBB7_27 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002466 .p2align 4, 0x90 + //0x00002470 LBB7_13 + 0x4d, 0x85, 0xed, //0x00002470 testq %r13, %r13 + 0x0f, 0x8e, 0x67, 0x00, 0x00, 0x00, //0x00002473 jle LBB7_20 + 0x48, 0x85, 0xc0, //0x00002479 testq %rax, %rax + 0x0f, 0x8e, 0x5e, 0x00, 0x00, 0x00, //0x0000247c jle LBB7_20 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002482 .p2align 4, 0x90 + //0x00002490 LBB7_15 + 0x41, 0x0f, 0xb6, 0x0c, 0x24, //0x00002490 movzbl (%r12), %ecx + 0x48, 0x83, 0xf9, 0x3e, //0x00002495 cmpq $62, %rcx + 0x0f, 0x87, 0x0a, 0x00, 0x00, 0x00, //0x00002499 ja LBB7_17 + 0x49, 0x0f, 0xa3, 0xce, //0x0000249f btq %rcx, %r14 + 0x0f, 0x82, 0x9b, 0x00, 0x00, 0x00, //0x000024a3 jb LBB7_24 + //0x000024a9 LBB7_17 + 0x80, 0xf9, 0xe2, //0x000024a9 cmpb $-30, %cl + 0x0f, 0x84, 0x92, 0x00, 0x00, 0x00, //0x000024ac je LBB7_24 + 0x49, 0xff, 0xc4, //0x000024b2 incq %r12 + 0x41, 0x88, 0x08, //0x000024b5 movb %cl, (%r8) + 0x48, 0x83, 0xf8, 0x02, //0x000024b8 cmpq $2, %rax + 0x48, 0x8d, 0x40, 0xff, //0x000024bc leaq $-1(%rax), %rax + 0x0f, 0x8c, 0x1a, 0x00, 0x00, 0x00, //0x000024c0 jl LBB7_20 + 0x49, 0xff, 0xc0, //0x000024c6 incq %r8 + 0x49, 0x83, 0xfd, 0x01, //0x000024c9 cmpq $1, %r13 + 0x4d, 0x8d, 0x6d, 0xff, //0x000024cd leaq $-1(%r13), %r13 + 0x0f, 0x8f, 0xb9, 0xff, 0xff, 0xff, //0x000024d1 jg LBB7_15 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000024d7 .p2align 4, 0x90 + //0x000024e0 LBB7_20 + 0x4d, 0x29, 0xfc, //0x000024e0 subq %r15, %r12 + 0x48, 0xf7, 0xd8, //0x000024e3 negq %rax + 0x4d, 0x19, 0xed, //0x000024e6 sbbq %r13, %r13 + 0x4d, 0x31, 0xe5, //0x000024e9 xorq %r12, %r13 + 0x4d, 0x85, 0xed, //0x000024ec testq %r13, %r13 + 0x0f, 0x89, 0x5b, 0x01, 0x00, 0x00, //0x000024ef jns LBB7_37 + 0xe9, 0x72, 0x02, 0x00, 0x00, //0x000024f5 jmp LBB7_57 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000024fa .p2align 4, 0x90 + //0x00002500 LBB7_21 + 0x0f, 0xb7, 0xc2, //0x00002500 movzwl %dx, %eax + 0x4d, 0x29, 0xfc, //0x00002503 subq %r15, %r12 + 0x44, 0x0f, 0xbc, 0xe8, //0x00002506 bsfl %eax, %r13d + 0x4d, 0x01, 0xe5, //0x0000250a addq %r12, %r13 + 0x4d, 0x85, 0xed, //0x0000250d testq %r13, %r13 + 0x0f, 0x89, 0x3a, 0x01, 0x00, 0x00, //0x00002510 jns LBB7_37 + 0xe9, 0x51, 0x02, 0x00, 0x00, //0x00002516 jmp LBB7_57 + //0x0000251b LBB7_22 + 0x41, 0x83, 0xfe, 0x08, //0x0000251b cmpl $8, %r14d + 0x0f, 0x82, 0xaa, 0x00, 0x00, 0x00, //0x0000251f jb LBB7_31 + 0x49, 0x89, 0x00, //0x00002525 movq %rax, (%r8) + 0x4d, 0x8d, 0x6c, 0x24, 0x08, //0x00002528 leaq $8(%r12), %r13 + 0x49, 0x83, 0xc0, 0x08, //0x0000252d addq $8, %r8 + 0x49, 0x8d, 0x46, 0xf8, //0x00002531 leaq $-8(%r14), %rax + 0x48, 0x83, 0xf8, 0x04, //0x00002535 cmpq $4, %rax + 0x0f, 0x8d, 0xa0, 0x00, 0x00, 0x00, //0x00002539 jge LBB7_32 + 0xe9, 0xae, 0x00, 0x00, 0x00, //0x0000253f jmp LBB7_33 + //0x00002544 LBB7_24 + 0x4d, 0x29, 0xfc, //0x00002544 subq %r15, %r12 + 0x4d, 0x89, 0xe5, //0x00002547 movq %r12, %r13 + 0x4d, 0x85, 0xed, //0x0000254a testq %r13, %r13 + 0x0f, 0x89, 0xfd, 0x00, 0x00, 0x00, //0x0000254d jns LBB7_37 + 0xe9, 0x14, 0x02, 0x00, 0x00, //0x00002553 jmp LBB7_57 + //0x00002558 LBB7_25 + 0x4d, 0x89, 0xe6, //0x00002558 movq %r12, %r14 + 0x4c, 0x89, 0xe8, //0x0000255b movq %r13, %rax + 0x48, 0x83, 0xf8, 0x04, //0x0000255e cmpq $4, %rax + 0x0f, 0x8c, 0x12, 0x00, 0x00, 0x00, //0x00002562 jl LBB7_27 + //0x00002568 LBB7_26 + 0x41, 0x8b, 0x0e, //0x00002568 movl (%r14), %ecx + 0x41, 0x89, 0x08, //0x0000256b movl %ecx, (%r8) + 0x49, 0x83, 0xc6, 0x04, //0x0000256e addq $4, %r14 + 0x49, 0x83, 0xc0, 0x04, //0x00002572 addq $4, %r8 + 0x48, 0x83, 0xc0, 0xfc, //0x00002576 addq $-4, %rax + //0x0000257a LBB7_27 + 0x48, 0x83, 0xf8, 0x02, //0x0000257a cmpq $2, %rax + 0x0f, 0x82, 0x22, 0x00, 0x00, 0x00, //0x0000257e jb LBB7_28 + 0x41, 0x0f, 0xb7, 0x0e, //0x00002584 movzwl (%r14), %ecx + 0x66, 0x41, 0x89, 0x08, //0x00002588 movw %cx, (%r8) + 0x49, 0x83, 0xc6, 0x02, //0x0000258c addq $2, %r14 + 0x49, 0x83, 0xc0, 0x02, //0x00002590 addq $2, %r8 + 0x48, 0x83, 0xc0, 0xfe, //0x00002594 addq $-2, %rax + 0x48, 0x85, 0xc0, //0x00002598 testq %rax, %rax + 0x0f, 0x85, 0x0e, 0x00, 0x00, 0x00, //0x0000259b jne LBB7_29 + 0xe9, 0x0f, 0x00, 0x00, 0x00, //0x000025a1 jmp LBB7_30 + //0x000025a6 LBB7_28 + 0x48, 0x85, 0xc0, //0x000025a6 testq %rax, %rax + 0x0f, 0x84, 0x06, 0x00, 0x00, 0x00, //0x000025a9 je LBB7_30 + //0x000025af LBB7_29 + 0x41, 0x8a, 0x06, //0x000025af movb (%r14), %al + 0x41, 0x88, 0x00, //0x000025b2 movb %al, (%r8) + //0x000025b5 LBB7_30 + 0x4d, 0x29, 0xfd, //0x000025b5 subq %r15, %r13 + 0x4d, 0x01, 0xe5, //0x000025b8 addq %r12, %r13 + 0x49, 0xf7, 0xd5, //0x000025bb notq %r13 + 0x49, 0x89, 0xd6, //0x000025be movq %rdx, %r14 + 0x4d, 0x85, 0xed, //0x000025c1 testq %r13, %r13 + 0x0f, 0x89, 0x86, 0x00, 0x00, 0x00, //0x000025c4 jns LBB7_37 + 0xe9, 0x9d, 0x01, 0x00, 0x00, //0x000025ca jmp LBB7_57 + //0x000025cf LBB7_31 + 0x4d, 0x89, 0xe5, //0x000025cf movq %r12, %r13 + 0x4c, 0x89, 0xf0, //0x000025d2 movq %r14, %rax + 0x48, 0x83, 0xf8, 0x04, //0x000025d5 cmpq $4, %rax + 0x0f, 0x8c, 0x13, 0x00, 0x00, 0x00, //0x000025d9 jl LBB7_33 + //0x000025df LBB7_32 + 0x41, 0x8b, 0x4d, 0x00, //0x000025df movl (%r13), %ecx + 0x41, 0x89, 0x08, //0x000025e3 movl %ecx, (%r8) + 0x49, 0x83, 0xc5, 0x04, //0x000025e6 addq $4, %r13 + 0x49, 0x83, 0xc0, 0x04, //0x000025ea addq $4, %r8 + 0x48, 0x83, 0xc0, 0xfc, //0x000025ee addq $-4, %rax + //0x000025f2 LBB7_33 + 0x48, 0x83, 0xf8, 0x02, //0x000025f2 cmpq $2, %rax + 0x0f, 0x82, 0x23, 0x00, 0x00, 0x00, //0x000025f6 jb LBB7_34 + 0x41, 0x0f, 0xb7, 0x4d, 0x00, //0x000025fc movzwl (%r13), %ecx + 0x66, 0x41, 0x89, 0x08, //0x00002601 movw %cx, (%r8) + 0x49, 0x83, 0xc5, 0x02, //0x00002605 addq $2, %r13 + 0x49, 0x83, 0xc0, 0x02, //0x00002609 addq $2, %r8 + 0x48, 0x83, 0xc0, 0xfe, //0x0000260d addq $-2, %rax + 0x48, 0x85, 0xc0, //0x00002611 testq %rax, %rax + 0x0f, 0x85, 0x0e, 0x00, 0x00, 0x00, //0x00002614 jne LBB7_35 + 0xe9, 0x10, 0x00, 0x00, 0x00, //0x0000261a jmp LBB7_36 + //0x0000261f LBB7_34 + 0x48, 0x85, 0xc0, //0x0000261f testq %rax, %rax + 0x0f, 0x84, 0x07, 0x00, 0x00, 0x00, //0x00002622 je LBB7_36 + //0x00002628 LBB7_35 + 0x41, 0x8a, 0x45, 0x00, //0x00002628 movb (%r13), %al + 0x41, 0x88, 0x00, //0x0000262c movb %al, (%r8) + //0x0000262f LBB7_36 + 0x4d, 0x29, 0xfc, //0x0000262f subq %r15, %r12 + 0x4d, 0x01, 0xf4, //0x00002632 addq %r14, %r12 + 0x4d, 0x89, 0xe5, //0x00002635 movq %r12, %r13 + 0x49, 0x89, 0xd6, //0x00002638 movq %rdx, %r14 + 0x4d, 0x85, 0xed, //0x0000263b testq %r13, %r13 + 0x0f, 0x88, 0x28, 0x01, 0x00, 0x00, //0x0000263e js LBB7_57 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002644 .p2align 4, 0x90 + //0x00002650 LBB7_37 + 0x4d, 0x01, 0xef, //0x00002650 addq %r13, %r15 + 0x4d, 0x01, 0xea, //0x00002653 addq %r13, %r10 + 0x4c, 0x29, 0xee, //0x00002656 subq %r13, %rsi + 0x0f, 0x8e, 0x2d, 0x01, 0x00, 0x00, //0x00002659 jle LBB7_58 + 0x4d, 0x29, 0xe9, //0x0000265f subq %r13, %r9 + 0x41, 0x8a, 0x0f, //0x00002662 movb (%r15), %cl + 0x80, 0xf9, 0xe2, //0x00002665 cmpb $-30, %cl + 0x0f, 0x84, 0xb1, 0x00, 0x00, 0x00, //0x00002668 je LBB7_51 + 0x4c, 0x89, 0xf8, //0x0000266e movq %r15, %rax + //0x00002671 LBB7_40 + 0x0f, 0xb6, 0xd1, //0x00002671 movzbl %cl, %edx + 0x48, 0xc1, 0xe2, 0x04, //0x00002674 shlq $4, %rdx + 0x4a, 0x8b, 0x3c, 0x1a, //0x00002678 movq (%rdx,%r11), %rdi + 0x48, 0x63, 0xdf, //0x0000267c movslq %edi, %rbx + 0x49, 0x29, 0xd9, //0x0000267f subq %rbx, %r9 + 0x0f, 0x8c, 0x1b, 0x01, 0x00, 0x00, //0x00002682 jl LBB7_60 + 0x48, 0xc1, 0xe7, 0x20, //0x00002688 shlq $32, %rdi + 0x4e, 0x8d, 0x7c, 0x1a, 0x08, //0x0000268c leaq $8(%rdx,%r11), %r15 + 0x48, 0xb9, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, //0x00002691 movabsq $12884901889, %rcx + 0x48, 0x39, 0xcf, //0x0000269b cmpq %rcx, %rdi + 0x0f, 0x8c, 0x2c, 0x00, 0x00, 0x00, //0x0000269e jl LBB7_43 + 0x41, 0x8b, 0x0f, //0x000026a4 movl (%r15), %ecx + 0x41, 0x89, 0x0a, //0x000026a7 movl %ecx, (%r10) + 0x4e, 0x8d, 0x7c, 0x1a, 0x0c, //0x000026aa leaq $12(%rdx,%r11), %r15 + 0x4d, 0x8d, 0x42, 0x04, //0x000026af leaq $4(%r10), %r8 + 0x48, 0x8d, 0x7b, 0xfc, //0x000026b3 leaq $-4(%rbx), %rdi + 0x48, 0x83, 0xff, 0x02, //0x000026b7 cmpq $2, %rdi + 0x0f, 0x83, 0x1f, 0x00, 0x00, 0x00, //0x000026bb jae LBB7_44 + 0xe9, 0x2e, 0x00, 0x00, 0x00, //0x000026c1 jmp LBB7_45 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000026c6 .p2align 4, 0x90 + //0x000026d0 LBB7_43 + 0x4d, 0x89, 0xd0, //0x000026d0 movq %r10, %r8 + 0x48, 0x89, 0xdf, //0x000026d3 movq %rbx, %rdi + 0x48, 0x83, 0xff, 0x02, //0x000026d6 cmpq $2, %rdi + 0x0f, 0x82, 0x14, 0x00, 0x00, 0x00, //0x000026da jb LBB7_45 + //0x000026e0 LBB7_44 + 0x41, 0x0f, 0xb7, 0x17, //0x000026e0 movzwl (%r15), %edx + 0x66, 0x41, 0x89, 0x10, //0x000026e4 movw %dx, (%r8) + 0x49, 0x83, 0xc7, 0x02, //0x000026e8 addq $2, %r15 + 0x49, 0x83, 0xc0, 0x02, //0x000026ec addq $2, %r8 + 0x48, 0x83, 0xc7, 0xfe, //0x000026f0 addq $-2, %rdi + //0x000026f4 LBB7_45 + 0x48, 0x85, 0xff, //0x000026f4 testq %rdi, %rdi + 0x0f, 0x84, 0x06, 0x00, 0x00, 0x00, //0x000026f7 je LBB7_47 + 0x41, 0x8a, 0x0f, //0x000026fd movb (%r15), %cl + 0x41, 0x88, 0x08, //0x00002700 movb %cl, (%r8) + //0x00002703 LBB7_47 + 0x49, 0x01, 0xda, //0x00002703 addq %rbx, %r10 + //0x00002706 LBB7_48 + 0x48, 0xff, 0xc0, //0x00002706 incq %rax + 0x49, 0x89, 0xc7, //0x00002709 movq %rax, %r15 + 0x48, 0x83, 0xfe, 0x01, //0x0000270c cmpq $1, %rsi + 0x48, 0x8d, 0x76, 0xff, //0x00002710 leaq $-1(%rsi), %rsi + 0x0f, 0x8f, 0x26, 0xfc, 0xff, 0xff, //0x00002714 jg LBB7_2 + 0xe9, 0x70, 0x00, 0x00, 0x00, //0x0000271a jmp LBB7_59 + //0x0000271f LBB7_51 + 0x48, 0x83, 0xfe, 0x03, //0x0000271f cmpq $3, %rsi + 0x0f, 0x8c, 0x28, 0x00, 0x00, 0x00, //0x00002723 jl LBB7_55 + 0x41, 0x80, 0x7f, 0x01, 0x80, //0x00002729 cmpb $-128, $1(%r15) + 0x0f, 0x85, 0x1d, 0x00, 0x00, 0x00, //0x0000272e jne LBB7_55 + 0x41, 0x8a, 0x4f, 0x02, //0x00002734 movb $2(%r15), %cl + 0x89, 0xc8, //0x00002738 movl %ecx, %eax + 0x24, 0xfe, //0x0000273a andb $-2, %al + 0x3c, 0xa8, //0x0000273c cmpb $-88, %al + 0x0f, 0x85, 0x0d, 0x00, 0x00, 0x00, //0x0000273e jne LBB7_55 + 0x49, 0x8d, 0x47, 0x02, //0x00002744 leaq $2(%r15), %rax + 0x48, 0x83, 0xc6, 0xfe, //0x00002748 addq $-2, %rsi + 0xe9, 0x20, 0xff, 0xff, 0xff, //0x0000274c jmp LBB7_40 + //0x00002751 LBB7_55 + 0x4d, 0x85, 0xc9, //0x00002751 testq %r9, %r9 + 0x0f, 0x8e, 0x54, 0x00, 0x00, 0x00, //0x00002754 jle LBB7_61 + 0x41, 0xc6, 0x02, 0xe2, //0x0000275a movb $-30, (%r10) + 0x49, 0xff, 0xc2, //0x0000275e incq %r10 + 0x49, 0xff, 0xc9, //0x00002761 decq %r9 + 0x4c, 0x89, 0xf8, //0x00002764 movq %r15, %rax + 0xe9, 0x9a, 0xff, 0xff, 0xff, //0x00002767 jmp LBB7_48 + //0x0000276c LBB7_57 + 0x4c, 0x2b, 0x55, 0xc8, //0x0000276c subq $-56(%rbp), %r10 + 0x49, 0xf7, 0xd5, //0x00002770 notq %r13 + 0x4d, 0x01, 0xea, //0x00002773 addq %r13, %r10 + 0x48, 0x8b, 0x45, 0xc0, //0x00002776 movq $-64(%rbp), %rax + 0x4c, 0x89, 0x10, //0x0000277a movq %r10, (%rax) + 0x4c, 0x2b, 0x7d, 0xd0, //0x0000277d subq $-48(%rbp), %r15 + 0x4d, 0x01, 0xef, //0x00002781 addq %r13, %r15 + 0x49, 0xf7, 0xd7, //0x00002784 notq %r15 + 0xe9, 0x29, 0x00, 0x00, 0x00, //0x00002787 jmp LBB7_62 + //0x0000278c LBB7_58 + 0x4c, 0x89, 0xf8, //0x0000278c movq %r15, %rax + //0x0000278f LBB7_59 + 0x4c, 0x2b, 0x55, 0xc8, //0x0000278f subq $-56(%rbp), %r10 + 0x48, 0x8b, 0x4d, 0xc0, //0x00002793 movq $-64(%rbp), %rcx + 0x4c, 0x89, 0x11, //0x00002797 movq %r10, (%rcx) + 0x48, 0x2b, 0x45, 0xd0, //0x0000279a subq $-48(%rbp), %rax + 0xe9, 0x15, 0x00, 0x00, 0x00, //0x0000279e jmp LBB7_63 + //0x000027a3 LBB7_60 + 0x4c, 0x2b, 0x55, 0xc8, //0x000027a3 subq $-56(%rbp), %r10 + 0x48, 0x8b, 0x45, 0xc0, //0x000027a7 movq $-64(%rbp), %rax + 0x4c, 0x89, 0x10, //0x000027ab movq %r10, (%rax) + //0x000027ae LBB7_61 + 0x49, 0xf7, 0xd7, //0x000027ae notq %r15 + 0x4c, 0x03, 0x7d, 0xd0, //0x000027b1 addq $-48(%rbp), %r15 + //0x000027b5 LBB7_62 + 0x4c, 0x89, 0xf8, //0x000027b5 movq %r15, %rax + //0x000027b8 LBB7_63 + 0x48, 0x83, 0xc4, 0x18, //0x000027b8 addq $24, %rsp + 0x5b, //0x000027bc popq %rbx + 0x41, 0x5c, //0x000027bd popq %r12 + 0x41, 0x5d, //0x000027bf popq %r13 + 0x41, 0x5e, //0x000027c1 popq %r14 + 0x41, 0x5f, //0x000027c3 popq %r15 + 0x5d, //0x000027c5 popq %rbp + 0xc3, //0x000027c6 retq + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000027c7 .p2align 4, 0x90 + //0x000027d0 _atof_eisel_lemire64 + 0x55, //0x000027d0 pushq %rbp + 0x48, 0x89, 0xe5, //0x000027d1 movq %rsp, %rbp + 0x41, 0x57, //0x000027d4 pushq %r15 + 0x41, 0x56, //0x000027d6 pushq %r14 + 0x53, //0x000027d8 pushq %rbx + 0x8d, 0x86, 0x5c, 0x01, 0x00, 0x00, //0x000027d9 leal $348(%rsi), %eax + 0x3d, 0xb7, 0x02, 0x00, 0x00, //0x000027df cmpl $695, %eax + 0x0f, 0x87, 0x08, 0x01, 0x00, 0x00, //0x000027e4 ja LBB8_1 + 0x49, 0x89, 0xc8, //0x000027ea movq %rcx, %r8 + 0x41, 0x89, 0xd1, //0x000027ed movl %edx, %r9d + 0x48, 0x85, 0xff, //0x000027f0 testq %rdi, %rdi + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x000027f3 je LBB8_4 + 0x4c, 0x0f, 0xbd, 0xd7, //0x000027f9 bsrq %rdi, %r10 + 0x49, 0x83, 0xf2, 0x3f, //0x000027fd xorq $63, %r10 + 0xe9, 0x06, 0x00, 0x00, 0x00, //0x00002801 jmp LBB8_5 + //0x00002806 LBB8_4 + 0x41, 0xba, 0x40, 0x00, 0x00, 0x00, //0x00002806 movl $64, %r10d + //0x0000280c LBB8_5 + 0x44, 0x89, 0xd1, //0x0000280c movl %r10d, %ecx + 0x48, 0xd3, 0xe7, //0x0000280f shlq %cl, %rdi + 0x89, 0xc1, //0x00002812 movl %eax, %ecx + 0x48, 0xc1, 0xe1, 0x04, //0x00002814 shlq $4, %rcx + 0x4c, 0x8d, 0x3d, 0x91, 0x6d, 0x00, 0x00, //0x00002818 leaq $28049(%rip), %r15 /* _POW10_M128_TAB+0(%rip) */ + 0x48, 0x89, 0xf8, //0x0000281f movq %rdi, %rax + 0x4a, 0xf7, 0x64, 0x39, 0x08, //0x00002822 mulq $8(%rcx,%r15) + 0x49, 0x89, 0xc3, //0x00002827 movq %rax, %r11 + 0x49, 0x89, 0xd6, //0x0000282a movq %rdx, %r14 + 0x81, 0xe2, 0xff, 0x01, 0x00, 0x00, //0x0000282d andl $511, %edx + 0x48, 0x89, 0xfb, //0x00002833 movq %rdi, %rbx + 0x48, 0xf7, 0xd3, //0x00002836 notq %rbx + 0x48, 0x39, 0xd8, //0x00002839 cmpq %rbx, %rax + 0x0f, 0x86, 0x42, 0x00, 0x00, 0x00, //0x0000283c jbe LBB8_11 + 0x81, 0xfa, 0xff, 0x01, 0x00, 0x00, //0x00002842 cmpl $511, %edx + 0x0f, 0x85, 0x36, 0x00, 0x00, 0x00, //0x00002848 jne LBB8_11 + 0x48, 0x89, 0xf8, //0x0000284e movq %rdi, %rax + 0x4a, 0xf7, 0x24, 0x39, //0x00002851 mulq (%rcx,%r15) + 0x49, 0x01, 0xd3, //0x00002855 addq %rdx, %r11 + 0x49, 0x83, 0xd6, 0x00, //0x00002858 adcq $0, %r14 + 0x44, 0x89, 0xf2, //0x0000285c movl %r14d, %edx + 0x81, 0xe2, 0xff, 0x01, 0x00, 0x00, //0x0000285f andl $511, %edx + 0x48, 0x39, 0xd8, //0x00002865 cmpq %rbx, %rax + 0x0f, 0x86, 0x16, 0x00, 0x00, 0x00, //0x00002868 jbe LBB8_11 + 0x49, 0x83, 0xfb, 0xff, //0x0000286e cmpq $-1, %r11 + 0x0f, 0x85, 0x0c, 0x00, 0x00, 0x00, //0x00002872 jne LBB8_11 + 0x81, 0xfa, 0xff, 0x01, 0x00, 0x00, //0x00002878 cmpl $511, %edx + 0x0f, 0x84, 0x6e, 0x00, 0x00, 0x00, //0x0000287e je LBB8_1 + //0x00002884 LBB8_11 + 0x4c, 0x89, 0xf7, //0x00002884 movq %r14, %rdi + 0x48, 0xc1, 0xef, 0x3f, //0x00002887 shrq $63, %rdi + 0x8d, 0x4f, 0x09, //0x0000288b leal $9(%rdi), %ecx + 0x49, 0xd3, 0xee, //0x0000288e shrq %cl, %r14 + 0x4c, 0x09, 0xda, //0x00002891 orq %r11, %rdx + 0x0f, 0x85, 0x0f, 0x00, 0x00, 0x00, //0x00002894 jne LBB8_14 + 0x44, 0x89, 0xf0, //0x0000289a movl %r14d, %eax + 0x83, 0xe0, 0x03, //0x0000289d andl $3, %eax + 0x83, 0xf8, 0x01, //0x000028a0 cmpl $1, %eax + 0x0f, 0x84, 0x49, 0x00, 0x00, 0x00, //0x000028a3 je LBB8_1 + //0x000028a9 LBB8_14 + 0x69, 0xc6, 0x6a, 0x52, 0x03, 0x00, //0x000028a9 imull $217706, %esi, %eax + 0xc1, 0xf8, 0x10, //0x000028af sarl $16, %eax + 0x05, 0x3f, 0x04, 0x00, 0x00, //0x000028b2 addl $1087, %eax + 0x48, 0x98, //0x000028b7 cltq + 0x4c, 0x29, 0xd0, //0x000028b9 subq %r10, %rax + 0x48, 0x83, 0xf7, 0x01, //0x000028bc xorq $1, %rdi + 0x48, 0x29, 0xf8, //0x000028c0 subq %rdi, %rax + 0x44, 0x89, 0xf2, //0x000028c3 movl %r14d, %edx + 0x83, 0xe2, 0x01, //0x000028c6 andl $1, %edx + 0x4c, 0x01, 0xf2, //0x000028c9 addq %r14, %rdx + 0x48, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, //0x000028cc movabsq $126100789566373888, %rcx + 0x48, 0x21, 0xd1, //0x000028d6 andq %rdx, %rcx + 0x48, 0x83, 0xf9, 0x01, //0x000028d9 cmpq $1, %rcx + 0x48, 0x83, 0xd8, 0xff, //0x000028dd sbbq $-1, %rax + 0x48, 0x8d, 0x70, 0xff, //0x000028e1 leaq $-1(%rax), %rsi + 0x48, 0x81, 0xfe, 0xfd, 0x07, 0x00, 0x00, //0x000028e5 cmpq $2045, %rsi + 0x0f, 0x86, 0x09, 0x00, 0x00, 0x00, //0x000028ec jbe LBB8_16 + //0x000028f2 LBB8_1 + 0x31, 0xc0, //0x000028f2 xorl %eax, %eax + //0x000028f4 LBB8_17 + 0x5b, //0x000028f4 popq %rbx + 0x41, 0x5e, //0x000028f5 popq %r14 + 0x41, 0x5f, //0x000028f7 popq %r15 + 0x5d, //0x000028f9 popq %rbp + 0xc3, //0x000028fa retq + //0x000028fb LBB8_16 + 0x48, 0x83, 0xf9, 0x01, //0x000028fb cmpq $1, %rcx + 0xb1, 0x02, //0x000028ff movb $2, %cl + 0x80, 0xd9, 0x00, //0x00002901 sbbb $0, %cl + 0x48, 0xd3, 0xea, //0x00002904 shrq %cl, %rdx + 0x48, 0xc1, 0xe0, 0x34, //0x00002907 shlq $52, %rax + 0x48, 0xb9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, //0x0000290b movabsq $4503599627370495, %rcx + 0x48, 0x21, 0xd1, //0x00002915 andq %rdx, %rcx + 0x48, 0x09, 0xc1, //0x00002918 orq %rax, %rcx + 0x48, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x0000291b movabsq $-9223372036854775808, %rax + 0x48, 0x09, 0xc8, //0x00002925 orq %rcx, %rax + 0x41, 0x83, 0xf9, 0xff, //0x00002928 cmpl $-1, %r9d + 0x48, 0x0f, 0x45, 0xc1, //0x0000292c cmovneq %rcx, %rax + 0x49, 0x89, 0x00, //0x00002930 movq %rax, (%r8) + 0xb0, 0x01, //0x00002933 movb $1, %al + 0xe9, 0xba, 0xff, 0xff, 0xff, //0x00002935 jmp LBB8_17 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000293a .p2align 4, 0x90 + //0x00002940 _decimal_to_f64 + 0x55, //0x00002940 pushq %rbp + 0x48, 0x89, 0xe5, //0x00002941 movq %rsp, %rbp + 0x41, 0x57, //0x00002944 pushq %r15 + 0x41, 0x56, //0x00002946 pushq %r14 + 0x41, 0x55, //0x00002948 pushq %r13 + 0x41, 0x54, //0x0000294a pushq %r12 + 0x53, //0x0000294c pushq %rbx + 0x50, //0x0000294d pushq %rax + 0x48, 0x89, 0xf3, //0x0000294e movq %rsi, %rbx + 0x49, 0x89, 0xfc, //0x00002951 movq %rdi, %r12 + 0x49, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, //0x00002954 movabsq $4503599627370496, %r13 + 0x83, 0x7f, 0x10, 0x00, //0x0000295e cmpl $0, $16(%rdi) + 0x0f, 0x84, 0x30, 0x00, 0x00, 0x00, //0x00002962 je LBB9_4 + 0x49, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x7f, //0x00002968 movabsq $9218868437227405312, %r14 + 0x41, 0x8b, 0x44, 0x24, 0x14, //0x00002972 movl $20(%r12), %eax + 0x45, 0x31, 0xff, //0x00002977 xorl %r15d, %r15d + 0x3d, 0x36, 0x01, 0x00, 0x00, //0x0000297a cmpl $310, %eax + 0x0f, 0x8f, 0x0e, 0x04, 0x00, 0x00, //0x0000297f jg LBB9_78 + 0x3d, 0xb6, 0xfe, 0xff, 0xff, //0x00002985 cmpl $-330, %eax + 0x0f, 0x8d, 0x13, 0x00, 0x00, 0x00, //0x0000298a jge LBB9_5 + 0x45, 0x31, 0xf6, //0x00002990 xorl %r14d, %r14d + 0xe9, 0xfb, 0x03, 0x00, 0x00, //0x00002993 jmp LBB9_78 + //0x00002998 LBB9_4 + 0x45, 0x31, 0xf6, //0x00002998 xorl %r14d, %r14d + 0x45, 0x31, 0xff, //0x0000299b xorl %r15d, %r15d + 0xe9, 0xf0, 0x03, 0x00, 0x00, //0x0000299e jmp LBB9_78 + //0x000029a3 LBB9_5 + 0x85, 0xc0, //0x000029a3 testl %eax, %eax + 0x48, 0x89, 0x5d, 0xd0, //0x000029a5 movq %rbx, $-48(%rbp) + 0x0f, 0x8e, 0xf1, 0x00, 0x00, 0x00, //0x000029a9 jle LBB9_22 + 0x45, 0x31, 0xff, //0x000029af xorl %r15d, %r15d + 0xe9, 0x25, 0x00, 0x00, 0x00, //0x000029b2 jmp LBB9_9 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000029b7 .p2align 4, 0x90 + //0x000029c0 LBB9_7 + 0xf7, 0xdb, //0x000029c0 negl %ebx + 0x4c, 0x89, 0xe7, //0x000029c2 movq %r12, %rdi + 0x89, 0xde, //0x000029c5 movl %ebx, %esi + 0xe8, 0x74, 0x66, 0x00, 0x00, //0x000029c7 callq _right_shift + //0x000029cc LBB9_8 + 0x45, 0x01, 0xf7, //0x000029cc addl %r14d, %r15d + 0x41, 0x8b, 0x44, 0x24, 0x14, //0x000029cf movl $20(%r12), %eax + 0x85, 0xc0, //0x000029d4 testl %eax, %eax + 0x0f, 0x8e, 0xc4, 0x00, 0x00, 0x00, //0x000029d6 jle LBB9_22 + //0x000029dc LBB9_9 + 0x41, 0xbe, 0x1b, 0x00, 0x00, 0x00, //0x000029dc movl $27, %r14d + 0x83, 0xf8, 0x08, //0x000029e2 cmpl $8, %eax + 0x0f, 0x8f, 0x0d, 0x00, 0x00, 0x00, //0x000029e5 jg LBB9_11 + 0x89, 0xc0, //0x000029eb movl %eax, %eax + 0x48, 0x8d, 0x0d, 0x4c, 0x97, 0x00, 0x00, //0x000029ed leaq $38732(%rip), %rcx /* _POW_TAB+0(%rip) */ + 0x44, 0x8b, 0x34, 0x81, //0x000029f4 movl (%rcx,%rax,4), %r14d + //0x000029f8 LBB9_11 + 0x45, 0x85, 0xf6, //0x000029f8 testl %r14d, %r14d + 0x0f, 0x84, 0xcb, 0xff, 0xff, 0xff, //0x000029fb je LBB9_8 + 0x41, 0x83, 0x7c, 0x24, 0x10, 0x00, //0x00002a01 cmpl $0, $16(%r12) + 0x0f, 0x84, 0xbf, 0xff, 0xff, 0xff, //0x00002a07 je LBB9_8 + 0x44, 0x89, 0xf3, //0x00002a0d movl %r14d, %ebx + 0xf7, 0xdb, //0x00002a10 negl %ebx + 0x45, 0x85, 0xf6, //0x00002a12 testl %r14d, %r14d + 0x0f, 0x88, 0x35, 0x00, 0x00, 0x00, //0x00002a15 js LBB9_16 + 0x41, 0x83, 0xfe, 0x3d, //0x00002a1b cmpl $61, %r14d + 0x0f, 0x8c, 0x9b, 0xff, 0xff, 0xff, //0x00002a1f jl LBB9_7 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002a25 .p2align 4, 0x90 + //0x00002a30 LBB9_15 + 0x4c, 0x89, 0xe7, //0x00002a30 movq %r12, %rdi + 0xbe, 0x3c, 0x00, 0x00, 0x00, //0x00002a33 movl $60, %esi + 0xe8, 0x03, 0x66, 0x00, 0x00, //0x00002a38 callq _right_shift + 0x8d, 0x43, 0x3c, //0x00002a3d leal $60(%rbx), %eax + 0x83, 0xfb, 0x88, //0x00002a40 cmpl $-120, %ebx + 0x89, 0xc3, //0x00002a43 movl %eax, %ebx + 0x0f, 0x8c, 0xe5, 0xff, 0xff, 0xff, //0x00002a45 jl LBB9_15 + 0xe9, 0x70, 0xff, 0xff, 0xff, //0x00002a4b jmp LBB9_7 + //0x00002a50 LBB9_16 + 0x41, 0x83, 0xfe, 0xc3, //0x00002a50 cmpl $-61, %r14d + 0x0f, 0x8f, 0x26, 0x00, 0x00, 0x00, //0x00002a54 jg LBB9_18 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002a5a .p2align 4, 0x90 + //0x00002a60 LBB9_17 + 0x4c, 0x89, 0xe7, //0x00002a60 movq %r12, %rdi + 0xbe, 0x3c, 0x00, 0x00, 0x00, //0x00002a63 movl $60, %esi + 0xe8, 0xe3, 0x63, 0x00, 0x00, //0x00002a68 callq _left_shift + 0x8d, 0x73, 0xc4, //0x00002a6d leal $-60(%rbx), %esi + 0x83, 0xfb, 0x78, //0x00002a70 cmpl $120, %ebx + 0x89, 0xf3, //0x00002a73 movl %esi, %ebx + 0x0f, 0x8f, 0xe5, 0xff, 0xff, 0xff, //0x00002a75 jg LBB9_17 + 0xe9, 0x02, 0x00, 0x00, 0x00, //0x00002a7b jmp LBB9_19 + //0x00002a80 LBB9_18 + 0x89, 0xde, //0x00002a80 movl %ebx, %esi + //0x00002a82 LBB9_19 + 0x4c, 0x89, 0xe7, //0x00002a82 movq %r12, %rdi + 0xe8, 0xc6, 0x63, 0x00, 0x00, //0x00002a85 callq _left_shift + 0xe9, 0x3d, 0xff, 0xff, 0xff, //0x00002a8a jmp LBB9_8 + 0x90, //0x00002a8f .p2align 4, 0x90 + //0x00002a90 LBB9_20 + 0x4c, 0x89, 0xe7, //0x00002a90 movq %r12, %rdi + 0xe8, 0xb8, 0x63, 0x00, 0x00, //0x00002a93 callq _left_shift + //0x00002a98 LBB9_21 + 0x45, 0x29, 0xf7, //0x00002a98 subl %r14d, %r15d + 0x41, 0x8b, 0x44, 0x24, 0x14, //0x00002a9b movl $20(%r12), %eax + //0x00002aa0 LBB9_22 + 0x85, 0xc0, //0x00002aa0 testl %eax, %eax + 0x0f, 0x88, 0x18, 0x00, 0x00, 0x00, //0x00002aa2 js LBB9_25 + 0x0f, 0x85, 0xbe, 0x00, 0x00, 0x00, //0x00002aa8 jne LBB9_36 + 0x49, 0x8b, 0x0c, 0x24, //0x00002aae movq (%r12), %rcx + 0x80, 0x39, 0x35, //0x00002ab2 cmpb $53, (%rcx) + 0x0f, 0x8c, 0x14, 0x00, 0x00, 0x00, //0x00002ab5 jl LBB9_26 + 0xe9, 0xac, 0x00, 0x00, 0x00, //0x00002abb jmp LBB9_36 + //0x00002ac0 .p2align 4, 0x90 + //0x00002ac0 LBB9_25 + 0x41, 0xbe, 0x1b, 0x00, 0x00, 0x00, //0x00002ac0 movl $27, %r14d + 0x83, 0xf8, 0xf8, //0x00002ac6 cmpl $-8, %eax + 0x0f, 0x8c, 0x0f, 0x00, 0x00, 0x00, //0x00002ac9 jl LBB9_27 + //0x00002acf LBB9_26 + 0xf7, 0xd8, //0x00002acf negl %eax + 0x48, 0x98, //0x00002ad1 cltq + 0x48, 0x8d, 0x0d, 0x66, 0x96, 0x00, 0x00, //0x00002ad3 leaq $38502(%rip), %rcx /* _POW_TAB+0(%rip) */ + 0x44, 0x8b, 0x34, 0x81, //0x00002ada movl (%rcx,%rax,4), %r14d + //0x00002ade LBB9_27 + 0x45, 0x85, 0xf6, //0x00002ade testl %r14d, %r14d + 0x0f, 0x84, 0xb1, 0xff, 0xff, 0xff, //0x00002ae1 je LBB9_21 + 0x41, 0x83, 0x7c, 0x24, 0x10, 0x00, //0x00002ae7 cmpl $0, $16(%r12) + 0x0f, 0x84, 0xa5, 0xff, 0xff, 0xff, //0x00002aed je LBB9_21 + 0x45, 0x85, 0xf6, //0x00002af3 testl %r14d, %r14d + 0x0f, 0x8e, 0x34, 0x00, 0x00, 0x00, //0x00002af6 jle LBB9_33 + 0x44, 0x89, 0xf6, //0x00002afc movl %r14d, %esi + 0x41, 0x83, 0xfe, 0x3d, //0x00002aff cmpl $61, %r14d + 0x0f, 0x8c, 0x87, 0xff, 0xff, 0xff, //0x00002b03 jl LBB9_20 + 0x44, 0x89, 0xf3, //0x00002b09 movl %r14d, %ebx + 0x90, 0x90, 0x90, 0x90, //0x00002b0c .p2align 4, 0x90 + //0x00002b10 LBB9_32 + 0x4c, 0x89, 0xe7, //0x00002b10 movq %r12, %rdi + 0xbe, 0x3c, 0x00, 0x00, 0x00, //0x00002b13 movl $60, %esi + 0xe8, 0x33, 0x63, 0x00, 0x00, //0x00002b18 callq _left_shift + 0x8d, 0x73, 0xc4, //0x00002b1d leal $-60(%rbx), %esi + 0x83, 0xfb, 0x78, //0x00002b20 cmpl $120, %ebx + 0x89, 0xf3, //0x00002b23 movl %esi, %ebx + 0x0f, 0x8f, 0xe5, 0xff, 0xff, 0xff, //0x00002b25 jg LBB9_32 + 0xe9, 0x60, 0xff, 0xff, 0xff, //0x00002b2b jmp LBB9_20 + //0x00002b30 LBB9_33 + 0x44, 0x89, 0xf3, //0x00002b30 movl %r14d, %ebx + 0x41, 0x83, 0xfe, 0xc3, //0x00002b33 cmpl $-61, %r14d + 0x0f, 0x8f, 0x1e, 0x00, 0x00, 0x00, //0x00002b37 jg LBB9_35 + 0x90, 0x90, 0x90, //0x00002b3d .p2align 4, 0x90 + //0x00002b40 LBB9_34 + 0x4c, 0x89, 0xe7, //0x00002b40 movq %r12, %rdi + 0xbe, 0x3c, 0x00, 0x00, 0x00, //0x00002b43 movl $60, %esi + 0xe8, 0xf3, 0x64, 0x00, 0x00, //0x00002b48 callq _right_shift + 0x8d, 0x43, 0x3c, //0x00002b4d leal $60(%rbx), %eax + 0x83, 0xfb, 0x88, //0x00002b50 cmpl $-120, %ebx + 0x89, 0xc3, //0x00002b53 movl %eax, %ebx + 0x0f, 0x8c, 0xe5, 0xff, 0xff, 0xff, //0x00002b55 jl LBB9_34 + //0x00002b5b LBB9_35 + 0xf7, 0xdb, //0x00002b5b negl %ebx + 0x4c, 0x89, 0xe7, //0x00002b5d movq %r12, %rdi + 0x89, 0xde, //0x00002b60 movl %ebx, %esi + 0xe8, 0xd9, 0x64, 0x00, 0x00, //0x00002b62 callq _right_shift + 0xe9, 0x2c, 0xff, 0xff, 0xff, //0x00002b67 jmp LBB9_21 + //0x00002b6c LBB9_36 + 0x41, 0x81, 0xff, 0x02, 0xfc, 0xff, 0xff, //0x00002b6c cmpl $-1022, %r15d + 0x0f, 0x8f, 0x4b, 0x00, 0x00, 0x00, //0x00002b73 jg LBB9_42 + 0x41, 0x83, 0x7c, 0x24, 0x10, 0x00, //0x00002b79 cmpl $0, $16(%r12) + 0x48, 0x8b, 0x5d, 0xd0, //0x00002b7f movq $-48(%rbp), %rbx + 0x0f, 0x84, 0x57, 0x00, 0x00, 0x00, //0x00002b83 je LBB9_44 + 0x41, 0x81, 0xff, 0xc6, 0xfb, 0xff, 0xff, //0x00002b89 cmpl $-1082, %r15d + 0x0f, 0x8f, 0x55, 0x00, 0x00, 0x00, //0x00002b90 jg LBB9_45 + 0x41, 0x81, 0xc7, 0xc1, 0x03, 0x00, 0x00, //0x00002b96 addl $961, %r15d + 0x90, 0x90, 0x90, //0x00002b9d .p2align 4, 0x90 + //0x00002ba0 LBB9_40 + 0x4c, 0x89, 0xe7, //0x00002ba0 movq %r12, %rdi + 0xbe, 0x3c, 0x00, 0x00, 0x00, //0x00002ba3 movl $60, %esi + 0xe8, 0x93, 0x64, 0x00, 0x00, //0x00002ba8 callq _right_shift + 0x41, 0x83, 0xc7, 0x3c, //0x00002bad addl $60, %r15d + 0x41, 0x83, 0xff, 0x88, //0x00002bb1 cmpl $-120, %r15d + 0x0f, 0x8c, 0xe5, 0xff, 0xff, 0xff, //0x00002bb5 jl LBB9_40 + 0x41, 0x83, 0xc7, 0x3c, //0x00002bbb addl $60, %r15d + 0xe9, 0x2e, 0x00, 0x00, 0x00, //0x00002bbf jmp LBB9_46 + //0x00002bc4 LBB9_42 + 0x41, 0x81, 0xff, 0x00, 0x04, 0x00, 0x00, //0x00002bc4 cmpl $1024, %r15d + 0x48, 0x8b, 0x5d, 0xd0, //0x00002bcb movq $-48(%rbp), %rbx + 0x0f, 0x8f, 0x87, 0x01, 0x00, 0x00, //0x00002bcf jg LBB9_75 + 0x41, 0xff, 0xcf, //0x00002bd5 decl %r15d + 0x45, 0x89, 0xfe, //0x00002bd8 movl %r15d, %r14d + 0xe9, 0x26, 0x00, 0x00, 0x00, //0x00002bdb jmp LBB9_47 + //0x00002be0 LBB9_44 + 0x41, 0xbe, 0x02, 0xfc, 0xff, 0xff, //0x00002be0 movl $-1022, %r14d + 0xe9, 0x34, 0x00, 0x00, 0x00, //0x00002be6 jmp LBB9_49 + //0x00002beb LBB9_45 + 0x41, 0x81, 0xc7, 0xfd, 0x03, 0x00, 0x00, //0x00002beb addl $1021, %r15d + //0x00002bf2 LBB9_46 + 0x41, 0xf7, 0xdf, //0x00002bf2 negl %r15d + 0x4c, 0x89, 0xe7, //0x00002bf5 movq %r12, %rdi + 0x44, 0x89, 0xfe, //0x00002bf8 movl %r15d, %esi + 0xe8, 0x40, 0x64, 0x00, 0x00, //0x00002bfb callq _right_shift + 0x41, 0xbe, 0x02, 0xfc, 0xff, 0xff, //0x00002c00 movl $-1022, %r14d + //0x00002c06 LBB9_47 + 0x41, 0x83, 0x7c, 0x24, 0x10, 0x00, //0x00002c06 cmpl $0, $16(%r12) + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x00002c0c je LBB9_49 + 0x4c, 0x89, 0xe7, //0x00002c12 movq %r12, %rdi + 0xbe, 0x35, 0x00, 0x00, 0x00, //0x00002c15 movl $53, %esi + 0xe8, 0x31, 0x62, 0x00, 0x00, //0x00002c1a callq _left_shift + //0x00002c1f LBB9_49 + 0x4d, 0x63, 0x44, 0x24, 0x14, //0x00002c1f movslq $20(%r12), %r8 + 0x49, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, //0x00002c24 movq $-1, %r15 + 0x49, 0x83, 0xf8, 0x14, //0x00002c2b cmpq $20, %r8 + 0x0f, 0x8f, 0x3f, 0x01, 0x00, 0x00, //0x00002c2f jg LBB9_77 + 0x44, 0x89, 0xc1, //0x00002c35 movl %r8d, %ecx + 0x85, 0xc9, //0x00002c38 testl %ecx, %ecx + 0x0f, 0x8e, 0x3c, 0x00, 0x00, 0x00, //0x00002c3a jle LBB9_54 + 0x49, 0x63, 0x74, 0x24, 0x10, //0x00002c40 movslq $16(%r12), %rsi + 0x31, 0xd2, //0x00002c45 xorl %edx, %edx + 0x45, 0x31, 0xff, //0x00002c47 xorl %r15d, %r15d + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002c4a .p2align 4, 0x90 + //0x00002c50 LBB9_52 + 0x48, 0x39, 0xf2, //0x00002c50 cmpq %rsi, %rdx + 0x0f, 0x8d, 0x28, 0x00, 0x00, 0x00, //0x00002c53 jge LBB9_55 + 0x4b, 0x8d, 0x04, 0xbf, //0x00002c59 leaq (%r15,%r15,4), %rax + 0x49, 0x8b, 0x3c, 0x24, //0x00002c5d movq (%r12), %rdi + 0x48, 0x0f, 0xbe, 0x3c, 0x17, //0x00002c61 movsbq (%rdi,%rdx), %rdi + 0x4c, 0x8d, 0x7c, 0x47, 0xd0, //0x00002c66 leaq $-48(%rdi,%rax,2), %r15 + 0x48, 0xff, 0xc2, //0x00002c6b incq %rdx + 0x48, 0x39, 0xd1, //0x00002c6e cmpq %rdx, %rcx + 0x0f, 0x85, 0xd9, 0xff, 0xff, 0xff, //0x00002c71 jne LBB9_52 + 0xe9, 0x05, 0x00, 0x00, 0x00, //0x00002c77 jmp LBB9_55 + //0x00002c7c LBB9_54 + 0x31, 0xd2, //0x00002c7c xorl %edx, %edx + 0x45, 0x31, 0xff, //0x00002c7e xorl %r15d, %r15d + //0x00002c81 LBB9_55 + 0x41, 0x39, 0xd0, //0x00002c81 cmpl %edx, %r8d + 0x0f, 0x8e, 0x56, 0x00, 0x00, 0x00, //0x00002c84 jle LBB9_63 + 0x89, 0xcf, //0x00002c8a movl %ecx, %edi + 0x29, 0xd7, //0x00002c8c subl %edx, %edi + 0x89, 0xd6, //0x00002c8e movl %edx, %esi + 0xf7, 0xd6, //0x00002c90 notl %esi + 0x44, 0x01, 0xc6, //0x00002c92 addl %r8d, %esi + 0x83, 0xe7, 0x07, //0x00002c95 andl $7, %edi + 0x0f, 0x84, 0x25, 0x00, 0x00, 0x00, //0x00002c98 je LBB9_60 + 0xf7, 0xdf, //0x00002c9e negl %edi + 0x31, 0xc0, //0x00002ca0 xorl %eax, %eax + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002ca2 .p2align 4, 0x90 + //0x00002cb0 LBB9_58 + 0x4d, 0x01, 0xff, //0x00002cb0 addq %r15, %r15 + 0x4f, 0x8d, 0x3c, 0xbf, //0x00002cb3 leaq (%r15,%r15,4), %r15 + 0xff, 0xc8, //0x00002cb7 decl %eax + 0x39, 0xc7, //0x00002cb9 cmpl %eax, %edi + 0x0f, 0x85, 0xef, 0xff, 0xff, 0xff, //0x00002cbb jne LBB9_58 + 0x29, 0xc2, //0x00002cc1 subl %eax, %edx + //0x00002cc3 LBB9_60 + 0x83, 0xfe, 0x07, //0x00002cc3 cmpl $7, %esi + 0x0f, 0x82, 0x14, 0x00, 0x00, 0x00, //0x00002cc6 jb LBB9_63 + 0x89, 0xc8, //0x00002ccc movl %ecx, %eax + 0x29, 0xd0, //0x00002cce subl %edx, %eax + //0x00002cd0 .p2align 4, 0x90 + //0x00002cd0 LBB9_62 + 0x4d, 0x69, 0xff, 0x00, 0xe1, 0xf5, 0x05, //0x00002cd0 imulq $100000000, %r15, %r15 + 0x83, 0xc0, 0xf8, //0x00002cd7 addl $-8, %eax + 0x0f, 0x85, 0xf0, 0xff, 0xff, 0xff, //0x00002cda jne LBB9_62 + //0x00002ce0 LBB9_63 + 0x85, 0xc9, //0x00002ce0 testl %ecx, %ecx + 0x0f, 0x88, 0x4c, 0x00, 0x00, 0x00, //0x00002ce2 js LBB9_71 + 0x41, 0x8b, 0x54, 0x24, 0x10, //0x00002ce8 movl $16(%r12), %edx + 0x44, 0x39, 0xc2, //0x00002ced cmpl %r8d, %edx + 0x0f, 0x8e, 0x3e, 0x00, 0x00, 0x00, //0x00002cf0 jle LBB9_71 + 0x49, 0x8b, 0x34, 0x24, //0x00002cf6 movq (%r12), %rsi + 0x8a, 0x04, 0x0e, //0x00002cfa movb (%rsi,%rcx), %al + 0x8d, 0x79, 0x01, //0x00002cfd leal $1(%rcx), %edi + 0x39, 0xd7, //0x00002d00 cmpl %edx, %edi + 0x0f, 0x85, 0xbf, 0x00, 0x00, 0x00, //0x00002d02 jne LBB9_72 + 0x3c, 0x35, //0x00002d08 cmpb $53, %al + 0x0f, 0x85, 0xb7, 0x00, 0x00, 0x00, //0x00002d0a jne LBB9_72 + 0x41, 0x83, 0x7c, 0x24, 0x1c, 0x00, //0x00002d10 cmpl $0, $28(%r12) + 0x0f, 0x95, 0xc2, //0x00002d16 setne %dl + 0x0f, 0x85, 0x17, 0x00, 0x00, 0x00, //0x00002d19 jne LBB9_73 + 0x85, 0xc9, //0x00002d1f testl %ecx, %ecx + 0x0f, 0x8e, 0x0f, 0x00, 0x00, 0x00, //0x00002d21 jle LBB9_73 + 0x41, 0x8a, 0x54, 0x30, 0xff, //0x00002d27 movb $-1(%r8,%rsi), %dl + 0x80, 0xe2, 0x01, //0x00002d2c andb $1, %dl + 0xe9, 0x02, 0x00, 0x00, 0x00, //0x00002d2f jmp LBB9_73 + //0x00002d34 LBB9_71 + 0x31, 0xd2, //0x00002d34 xorl %edx, %edx + //0x00002d36 LBB9_73 + 0x0f, 0xb6, 0xc2, //0x00002d36 movzbl %dl, %eax + 0x49, 0x01, 0xc7, //0x00002d39 addq %rax, %r15 + 0x48, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, //0x00002d3c movabsq $9007199254740992, %rax + 0x49, 0x39, 0xc7, //0x00002d46 cmpq %rax, %r15 + 0x0f, 0x85, 0x25, 0x00, 0x00, 0x00, //0x00002d49 jne LBB9_77 + 0x41, 0x81, 0xfe, 0xfe, 0x03, 0x00, 0x00, //0x00002d4f cmpl $1022, %r14d + 0x0f, 0x8e, 0x12, 0x00, 0x00, 0x00, //0x00002d56 jle LBB9_76 + //0x00002d5c LBB9_75 + 0x45, 0x31, 0xff, //0x00002d5c xorl %r15d, %r15d + 0x49, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x7f, //0x00002d5f movabsq $9218868437227405312, %r14 + 0xe9, 0x25, 0x00, 0x00, 0x00, //0x00002d69 jmp LBB9_78 + //0x00002d6e LBB9_76 + 0x41, 0xff, 0xc6, //0x00002d6e incl %r14d + 0x4d, 0x89, 0xef, //0x00002d71 movq %r13, %r15 + //0x00002d74 LBB9_77 + 0x4c, 0x89, 0xf8, //0x00002d74 movq %r15, %rax + 0x4c, 0x21, 0xe8, //0x00002d77 andq %r13, %rax + 0x41, 0x81, 0xc6, 0xff, 0x03, 0x00, 0x00, //0x00002d7a addl $1023, %r14d + 0x41, 0x81, 0xe6, 0xff, 0x07, 0x00, 0x00, //0x00002d81 andl $2047, %r14d + 0x49, 0xc1, 0xe6, 0x34, //0x00002d88 shlq $52, %r14 + 0x48, 0x85, 0xc0, //0x00002d8c testq %rax, %rax + 0x4c, 0x0f, 0x44, 0xf0, //0x00002d8f cmoveq %rax, %r14 + //0x00002d93 LBB9_78 + 0x49, 0xff, 0xcd, //0x00002d93 decq %r13 + 0x4d, 0x21, 0xfd, //0x00002d96 andq %r15, %r13 + 0x4d, 0x09, 0xf5, //0x00002d99 orq %r14, %r13 + 0x48, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x00002d9c movabsq $-9223372036854775808, %rax + 0x4c, 0x09, 0xe8, //0x00002da6 orq %r13, %rax + 0x41, 0x83, 0x7c, 0x24, 0x18, 0x00, //0x00002da9 cmpl $0, $24(%r12) + 0x49, 0x0f, 0x44, 0xc5, //0x00002daf cmoveq %r13, %rax + 0x48, 0x89, 0x03, //0x00002db3 movq %rax, (%rbx) + 0x31, 0xc0, //0x00002db6 xorl %eax, %eax + 0x48, 0x83, 0xc4, 0x08, //0x00002db8 addq $8, %rsp + 0x5b, //0x00002dbc popq %rbx + 0x41, 0x5c, //0x00002dbd popq %r12 + 0x41, 0x5d, //0x00002dbf popq %r13 + 0x41, 0x5e, //0x00002dc1 popq %r14 + 0x41, 0x5f, //0x00002dc3 popq %r15 + 0x5d, //0x00002dc5 popq %rbp + 0xc3, //0x00002dc6 retq + //0x00002dc7 LBB9_72 + 0x3c, 0x34, //0x00002dc7 cmpb $52, %al + 0x0f, 0x9f, 0xc2, //0x00002dc9 setg %dl + 0xe9, 0x65, 0xff, 0xff, 0xff, //0x00002dcc jmp LBB9_73 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002dd1 .p2align 4, 0x90 + //0x00002de0 _atof_native + 0x55, //0x00002de0 pushq %rbp + 0x48, 0x89, 0xe5, //0x00002de1 movq %rsp, %rbp + 0x48, 0x83, 0xec, 0x30, //0x00002de4 subq $48, %rsp + 0x48, 0xc7, 0x45, 0xd8, 0x00, 0x00, 0x00, 0x00, //0x00002de8 movq $0, $-40(%rbp) + 0x48, 0x89, 0x55, 0xe0, //0x00002df0 movq %rdx, $-32(%rbp) + 0x48, 0x89, 0x4d, 0xe8, //0x00002df4 movq %rcx, $-24(%rbp) + 0x48, 0x85, 0xc9, //0x00002df8 testq %rcx, %rcx + 0x0f, 0x84, 0x44, 0x00, 0x00, 0x00, //0x00002dfb je LBB10_5 + 0xc6, 0x02, 0x00, //0x00002e01 movb $0, (%rdx) + 0x48, 0x83, 0xf9, 0x01, //0x00002e04 cmpq $1, %rcx + 0x0f, 0x84, 0x37, 0x00, 0x00, 0x00, //0x00002e08 je LBB10_5 + 0xc6, 0x42, 0x01, 0x00, //0x00002e0e movb $0, $1(%rdx) + 0x48, 0x83, 0x7d, 0xe8, 0x03, //0x00002e12 cmpq $3, $-24(%rbp) + 0x0f, 0x82, 0x28, 0x00, 0x00, 0x00, //0x00002e17 jb LBB10_5 + 0xb8, 0x02, 0x00, 0x00, 0x00, //0x00002e1d movl $2, %eax + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002e22 .p2align 4, 0x90 + //0x00002e30 LBB10_4 + 0x48, 0x8b, 0x4d, 0xe0, //0x00002e30 movq $-32(%rbp), %rcx + 0xc6, 0x04, 0x01, 0x00, //0x00002e34 movb $0, (%rcx,%rax) + 0x48, 0xff, 0xc0, //0x00002e38 incq %rax + 0x48, 0x39, 0x45, 0xe8, //0x00002e3b cmpq %rax, $-24(%rbp) + 0x0f, 0x87, 0xeb, 0xff, 0xff, 0xff, //0x00002e3f ja LBB10_4 + //0x00002e45 LBB10_5 + 0x0f, 0x57, 0xc0, //0x00002e45 xorps %xmm0, %xmm0 + 0x0f, 0x11, 0x45, 0xf0, //0x00002e48 movups %xmm0, $-16(%rbp) + 0x80, 0x3f, 0x2d, //0x00002e4c cmpb $45, (%rdi) + 0x0f, 0x85, 0x21, 0x00, 0x00, 0x00, //0x00002e4f jne LBB10_6 + 0xc7, 0x45, 0xf8, 0x01, 0x00, 0x00, 0x00, //0x00002e55 movl $1, $-8(%rbp) + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00002e5c movl $1, %eax + 0x48, 0x39, 0xf0, //0x00002e61 cmpq %rsi, %rax + 0x0f, 0x8c, 0x17, 0x00, 0x00, 0x00, //0x00002e64 jl LBB10_9 + //0x00002e6a LBB10_41 + 0xc7, 0x45, 0xf4, 0x00, 0x00, 0x00, 0x00, //0x00002e6a movl $0, $-12(%rbp) + 0xe9, 0xa3, 0x01, 0x00, 0x00, //0x00002e71 jmp LBB10_40 + //0x00002e76 LBB10_6 + 0x31, 0xc0, //0x00002e76 xorl %eax, %eax + 0x48, 0x39, 0xf0, //0x00002e78 cmpq %rsi, %rax + 0x0f, 0x8d, 0xe9, 0xff, 0xff, 0xff, //0x00002e7b jge LBB10_41 + //0x00002e81 LBB10_9 + 0x41, 0xb3, 0x01, //0x00002e81 movb $1, %r11b + 0x45, 0x31, 0xc9, //0x00002e84 xorl %r9d, %r9d + 0x45, 0x31, 0xd2, //0x00002e87 xorl %r10d, %r10d + 0x45, 0x31, 0xc0, //0x00002e8a xorl %r8d, %r8d + 0xe9, 0x27, 0x00, 0x00, 0x00, //0x00002e8d jmp LBB10_10 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002e92 .p2align 4, 0x90 + //0x00002ea0 LBB10_13 + 0xff, 0x4d, 0xf4, //0x00002ea0 decl $-12(%rbp) + 0x45, 0x31, 0xd2, //0x00002ea3 xorl %r10d, %r10d + //0x00002ea6 LBB10_22 + 0x48, 0xff, 0xc0, //0x00002ea6 incq %rax + 0x48, 0x39, 0xf0, //0x00002ea9 cmpq %rsi, %rax + 0x41, 0x0f, 0x9c, 0xc3, //0x00002eac setl %r11b + 0x48, 0x39, 0xc6, //0x00002eb0 cmpq %rax, %rsi + 0x0f, 0x84, 0x8f, 0x00, 0x00, 0x00, //0x00002eb3 je LBB10_23 + //0x00002eb9 LBB10_10 + 0x0f, 0xb6, 0x0c, 0x07, //0x00002eb9 movzbl (%rdi,%rax), %ecx + 0x8d, 0x51, 0xd0, //0x00002ebd leal $-48(%rcx), %edx + 0x80, 0xfa, 0x09, //0x00002ec0 cmpb $9, %dl + 0x0f, 0x87, 0x47, 0x00, 0x00, 0x00, //0x00002ec3 ja LBB10_19 + 0x45, 0x85, 0xd2, //0x00002ec9 testl %r10d, %r10d + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00002ecc jne LBB10_14 + 0x80, 0xf9, 0x30, //0x00002ed2 cmpb $48, %cl + 0x0f, 0x84, 0xc5, 0xff, 0xff, 0xff, //0x00002ed5 je LBB10_13 + //0x00002edb LBB10_14 + 0x4d, 0x63, 0xd1, //0x00002edb movslq %r9d, %r10 + 0x4c, 0x39, 0x55, 0xe8, //0x00002ede cmpq %r10, $-24(%rbp) + 0x0f, 0x86, 0x40, 0x00, 0x00, 0x00, //0x00002ee2 jbe LBB10_16 + 0x48, 0x8b, 0x55, 0xe0, //0x00002ee8 movq $-32(%rbp), %rdx + 0x42, 0x88, 0x0c, 0x12, //0x00002eec movb %cl, (%rdx,%r10) + 0x44, 0x8b, 0x4d, 0xf0, //0x00002ef0 movl $-16(%rbp), %r9d + 0x41, 0xff, 0xc1, //0x00002ef4 incl %r9d + 0x44, 0x89, 0x4d, 0xf0, //0x00002ef7 movl %r9d, $-16(%rbp) + 0x45, 0x89, 0xca, //0x00002efb movl %r9d, %r10d + 0xe9, 0xa3, 0xff, 0xff, 0xff, //0x00002efe jmp LBB10_22 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002f03 .p2align 4, 0x90 + //0x00002f10 LBB10_19 + 0x80, 0xf9, 0x2e, //0x00002f10 cmpb $46, %cl + 0x0f, 0x85, 0x80, 0x00, 0x00, 0x00, //0x00002f13 jne LBB10_20 + 0x44, 0x89, 0x55, 0xf4, //0x00002f19 movl %r10d, $-12(%rbp) + 0x41, 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00002f1d movl $1, %r8d + 0xe9, 0x7e, 0xff, 0xff, 0xff, //0x00002f23 jmp LBB10_22 + //0x00002f28 LBB10_16 + 0x80, 0xf9, 0x30, //0x00002f28 cmpb $48, %cl + 0x0f, 0x85, 0x08, 0x00, 0x00, 0x00, //0x00002f2b jne LBB10_18 + 0x45, 0x89, 0xca, //0x00002f31 movl %r9d, %r10d + 0xe9, 0x6d, 0xff, 0xff, 0xff, //0x00002f34 jmp LBB10_22 + //0x00002f39 LBB10_18 + 0xc7, 0x45, 0xfc, 0x01, 0x00, 0x00, 0x00, //0x00002f39 movl $1, $-4(%rbp) + 0x45, 0x89, 0xca, //0x00002f40 movl %r9d, %r10d + 0xe9, 0x5e, 0xff, 0xff, 0xff, //0x00002f43 jmp LBB10_22 + //0x00002f48 LBB10_23 + 0x89, 0xf1, //0x00002f48 movl %esi, %ecx + 0x48, 0x89, 0xf0, //0x00002f4a movq %rsi, %rax + 0x45, 0x85, 0xc0, //0x00002f4d testl %r8d, %r8d + 0x0f, 0x85, 0x04, 0x00, 0x00, 0x00, //0x00002f50 jne LBB10_26 + //0x00002f56 LBB10_25 + 0x44, 0x89, 0x4d, 0xf4, //0x00002f56 movl %r9d, $-12(%rbp) + //0x00002f5a LBB10_26 + 0x41, 0xf6, 0xc3, 0x01, //0x00002f5a testb $1, %r11b + 0x0f, 0x84, 0xb5, 0x00, 0x00, 0x00, //0x00002f5e je LBB10_40 + 0x8a, 0x0c, 0x0f, //0x00002f64 movb (%rdi,%rcx), %cl + 0x80, 0xc9, 0x20, //0x00002f67 orb $32, %cl + 0x80, 0xf9, 0x65, //0x00002f6a cmpb $101, %cl + 0x0f, 0x85, 0xa6, 0x00, 0x00, 0x00, //0x00002f6d jne LBB10_40 + 0x89, 0xc2, //0x00002f73 movl %eax, %edx + 0x8a, 0x4c, 0x17, 0x01, //0x00002f75 movb $1(%rdi,%rdx), %cl + 0x80, 0xf9, 0x2d, //0x00002f79 cmpb $45, %cl + 0x0f, 0x84, 0x28, 0x00, 0x00, 0x00, //0x00002f7c je LBB10_32 + 0x41, 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00002f82 movl $1, %r8d + 0x80, 0xf9, 0x2b, //0x00002f88 cmpb $43, %cl + 0x0f, 0x85, 0x38, 0x00, 0x00, 0x00, //0x00002f8b jne LBB10_30 + 0x83, 0xc0, 0x02, //0x00002f91 addl $2, %eax + 0xe9, 0x1a, 0x00, 0x00, 0x00, //0x00002f94 jmp LBB10_33 + //0x00002f99 LBB10_20 + 0x48, 0x89, 0xc1, //0x00002f99 movq %rax, %rcx + 0x45, 0x85, 0xc0, //0x00002f9c testl %r8d, %r8d + 0x0f, 0x85, 0xb5, 0xff, 0xff, 0xff, //0x00002f9f jne LBB10_26 + 0xe9, 0xac, 0xff, 0xff, 0xff, //0x00002fa5 jmp LBB10_25 + //0x00002faa LBB10_32 + 0x83, 0xc0, 0x02, //0x00002faa addl $2, %eax + 0x41, 0xb8, 0xff, 0xff, 0xff, 0xff, //0x00002fad movl $-1, %r8d + //0x00002fb3 LBB10_33 + 0x89, 0xc2, //0x00002fb3 movl %eax, %edx + 0x48, 0x63, 0xd2, //0x00002fb5 movslq %edx, %rdx + 0x45, 0x31, 0xc9, //0x00002fb8 xorl %r9d, %r9d + 0x48, 0x39, 0xf2, //0x00002fbb cmpq %rsi, %rdx + 0x0f, 0x8c, 0x17, 0x00, 0x00, 0x00, //0x00002fbe jl LBB10_35 + 0xe9, 0x48, 0x00, 0x00, 0x00, //0x00002fc4 jmp LBB10_39 + //0x00002fc9 LBB10_30 + 0x48, 0xff, 0xc2, //0x00002fc9 incq %rdx + 0x48, 0x63, 0xd2, //0x00002fcc movslq %edx, %rdx + 0x45, 0x31, 0xc9, //0x00002fcf xorl %r9d, %r9d + 0x48, 0x39, 0xf2, //0x00002fd2 cmpq %rsi, %rdx + 0x0f, 0x8d, 0x36, 0x00, 0x00, 0x00, //0x00002fd5 jge LBB10_39 + //0x00002fdb LBB10_35 + 0x45, 0x31, 0xc9, //0x00002fdb xorl %r9d, %r9d + 0x90, 0x90, //0x00002fde .p2align 4, 0x90 + //0x00002fe0 LBB10_36 + 0x41, 0x81, 0xf9, 0x0f, 0x27, 0x00, 0x00, //0x00002fe0 cmpl $9999, %r9d + 0x0f, 0x8f, 0x24, 0x00, 0x00, 0x00, //0x00002fe7 jg LBB10_39 + 0x0f, 0xb6, 0x0c, 0x17, //0x00002fed movzbl (%rdi,%rdx), %ecx + 0x8d, 0x41, 0xd0, //0x00002ff1 leal $-48(%rcx), %eax + 0x3c, 0x09, //0x00002ff4 cmpb $9, %al + 0x0f, 0x87, 0x15, 0x00, 0x00, 0x00, //0x00002ff6 ja LBB10_39 + 0x43, 0x8d, 0x04, 0x89, //0x00002ffc leal (%r9,%r9,4), %eax + 0x44, 0x8d, 0x4c, 0x41, 0xd0, //0x00003000 leal $-48(%rcx,%rax,2), %r9d + 0x48, 0xff, 0xc2, //0x00003005 incq %rdx + 0x48, 0x39, 0xd6, //0x00003008 cmpq %rdx, %rsi + 0x0f, 0x85, 0xcf, 0xff, 0xff, 0xff, //0x0000300b jne LBB10_36 + //0x00003011 LBB10_39 + 0x45, 0x0f, 0xaf, 0xc8, //0x00003011 imull %r8d, %r9d + 0x44, 0x01, 0x4d, 0xf4, //0x00003015 addl %r9d, $-12(%rbp) + //0x00003019 LBB10_40 + 0x48, 0x8d, 0x7d, 0xe0, //0x00003019 leaq $-32(%rbp), %rdi + 0x48, 0x8d, 0x75, 0xd8, //0x0000301d leaq $-40(%rbp), %rsi + 0xe8, 0x1a, 0xf9, 0xff, 0xff, //0x00003021 callq _decimal_to_f64 + 0xf2, 0x0f, 0x10, 0x45, 0xd8, //0x00003026 movsd $-40(%rbp), %xmm0 + 0x48, 0x83, 0xc4, 0x30, //0x0000302b addq $48, %rsp + 0x5d, //0x0000302f popq %rbp + 0xc3, //0x00003030 retq + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003031 .p2align 4, 0x90 + //0x00003040 _value + 0x55, //0x00003040 pushq %rbp + 0x48, 0x89, 0xe5, //0x00003041 movq %rsp, %rbp + 0x41, 0x57, //0x00003044 pushq %r15 + 0x41, 0x56, //0x00003046 pushq %r14 + 0x41, 0x55, //0x00003048 pushq %r13 + 0x41, 0x54, //0x0000304a pushq %r12 + 0x53, //0x0000304c pushq %rbx + 0x48, 0x83, 0xec, 0x28, //0x0000304d subq $40, %rsp + 0x49, 0x89, 0xc9, //0x00003051 movq %rcx, %r9 + 0x49, 0x89, 0xd4, //0x00003054 movq %rdx, %r12 + 0x49, 0x89, 0xf7, //0x00003057 movq %rsi, %r15 + 0x49, 0x89, 0xfd, //0x0000305a movq %rdi, %r13 + 0x48, 0x89, 0x55, 0xd0, //0x0000305d movq %rdx, $-48(%rbp) + 0x48, 0x89, 0x7d, 0xb0, //0x00003061 movq %rdi, $-80(%rbp) + 0x48, 0x89, 0x75, 0xb8, //0x00003065 movq %rsi, $-72(%rbp) + 0x48, 0x89, 0xd0, //0x00003069 movq %rdx, %rax + 0x48, 0x29, 0xf0, //0x0000306c subq %rsi, %rax + 0x0f, 0x83, 0x2b, 0x00, 0x00, 0x00, //0x0000306f jae LBB11_5 + 0x43, 0x8a, 0x4c, 0x25, 0x00, //0x00003075 movb (%r13,%r12), %cl + 0x80, 0xf9, 0x0d, //0x0000307a cmpb $13, %cl + 0x0f, 0x84, 0x1d, 0x00, 0x00, 0x00, //0x0000307d je LBB11_5 + 0x80, 0xf9, 0x20, //0x00003083 cmpb $32, %cl + 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x00003086 je LBB11_5 + 0x8d, 0x51, 0xf7, //0x0000308c leal $-9(%rcx), %edx + 0x80, 0xfa, 0x01, //0x0000308f cmpb $1, %dl + 0x0f, 0x86, 0x08, 0x00, 0x00, 0x00, //0x00003092 jbe LBB11_5 + 0x4c, 0x89, 0xe3, //0x00003098 movq %r12, %rbx + 0xe9, 0x32, 0x01, 0x00, 0x00, //0x0000309b jmp LBB11_28 + //0x000030a0 LBB11_5 + 0x49, 0x8d, 0x5c, 0x24, 0x01, //0x000030a0 leaq $1(%r12), %rbx + 0x4c, 0x39, 0xfb, //0x000030a5 cmpq %r15, %rbx + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x000030a8 jae LBB11_9 + 0x41, 0x8a, 0x4c, 0x1d, 0x00, //0x000030ae movb (%r13,%rbx), %cl + 0x80, 0xf9, 0x0d, //0x000030b3 cmpb $13, %cl + 0x0f, 0x84, 0x15, 0x00, 0x00, 0x00, //0x000030b6 je LBB11_9 + 0x80, 0xf9, 0x20, //0x000030bc cmpb $32, %cl + 0x0f, 0x84, 0x0c, 0x00, 0x00, 0x00, //0x000030bf je LBB11_9 + 0x8d, 0x51, 0xf7, //0x000030c5 leal $-9(%rcx), %edx + 0x80, 0xfa, 0x01, //0x000030c8 cmpb $1, %dl + 0x0f, 0x87, 0x01, 0x01, 0x00, 0x00, //0x000030cb ja LBB11_28 + //0x000030d1 LBB11_9 + 0x49, 0x8d, 0x5c, 0x24, 0x02, //0x000030d1 leaq $2(%r12), %rbx + 0x4c, 0x39, 0xfb, //0x000030d6 cmpq %r15, %rbx + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x000030d9 jae LBB11_13 + 0x41, 0x8a, 0x4c, 0x1d, 0x00, //0x000030df movb (%r13,%rbx), %cl + 0x80, 0xf9, 0x0d, //0x000030e4 cmpb $13, %cl + 0x0f, 0x84, 0x15, 0x00, 0x00, 0x00, //0x000030e7 je LBB11_13 + 0x80, 0xf9, 0x20, //0x000030ed cmpb $32, %cl + 0x0f, 0x84, 0x0c, 0x00, 0x00, 0x00, //0x000030f0 je LBB11_13 + 0x8d, 0x51, 0xf7, //0x000030f6 leal $-9(%rcx), %edx + 0x80, 0xfa, 0x01, //0x000030f9 cmpb $1, %dl + 0x0f, 0x87, 0xd0, 0x00, 0x00, 0x00, //0x000030fc ja LBB11_28 + //0x00003102 LBB11_13 + 0x49, 0x8d, 0x5c, 0x24, 0x03, //0x00003102 leaq $3(%r12), %rbx + 0x4c, 0x39, 0xfb, //0x00003107 cmpq %r15, %rbx + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x0000310a jae LBB11_17 + 0x41, 0x8a, 0x4c, 0x1d, 0x00, //0x00003110 movb (%r13,%rbx), %cl + 0x80, 0xf9, 0x0d, //0x00003115 cmpb $13, %cl + 0x0f, 0x84, 0x15, 0x00, 0x00, 0x00, //0x00003118 je LBB11_17 + 0x80, 0xf9, 0x20, //0x0000311e cmpb $32, %cl + 0x0f, 0x84, 0x0c, 0x00, 0x00, 0x00, //0x00003121 je LBB11_17 + 0x8d, 0x51, 0xf7, //0x00003127 leal $-9(%rcx), %edx + 0x80, 0xfa, 0x01, //0x0000312a cmpb $1, %dl + 0x0f, 0x87, 0x9f, 0x00, 0x00, 0x00, //0x0000312d ja LBB11_28 + //0x00003133 LBB11_17 + 0x49, 0x8d, 0x4c, 0x24, 0x04, //0x00003133 leaq $4(%r12), %rcx + 0x4c, 0x39, 0xf9, //0x00003138 cmpq %r15, %rcx + 0x0f, 0x83, 0x57, 0x00, 0x00, 0x00, //0x0000313b jae LBB11_23 + 0x49, 0x39, 0xcf, //0x00003141 cmpq %rcx, %r15 + 0x0f, 0x84, 0x5a, 0x00, 0x00, 0x00, //0x00003144 je LBB11_24 + 0x4b, 0x8d, 0x4c, 0x3d, 0x00, //0x0000314a leaq (%r13,%r15), %rcx + 0x48, 0x83, 0xc0, 0x04, //0x0000314f addq $4, %rax + 0x4b, 0x8d, 0x5c, 0x2c, 0x05, //0x00003153 leaq $5(%r12,%r13), %rbx + 0x48, 0xba, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00003158 movabsq $4294977024, %rdx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003162 .p2align 4, 0x90 + //0x00003170 LBB11_20 + 0x0f, 0xbe, 0x73, 0xff, //0x00003170 movsbl $-1(%rbx), %esi + 0x83, 0xfe, 0x20, //0x00003174 cmpl $32, %esi + 0x0f, 0x87, 0x3e, 0x00, 0x00, 0x00, //0x00003177 ja LBB11_26 + 0x48, 0x0f, 0xa3, 0xf2, //0x0000317d btq %rsi, %rdx + 0x0f, 0x83, 0x34, 0x00, 0x00, 0x00, //0x00003181 jae LBB11_26 + 0x48, 0xff, 0xc3, //0x00003187 incq %rbx + 0x48, 0xff, 0xc0, //0x0000318a incq %rax + 0x0f, 0x85, 0xdd, 0xff, 0xff, 0xff, //0x0000318d jne LBB11_20 + 0xe9, 0x0f, 0x00, 0x00, 0x00, //0x00003193 jmp LBB11_25 + //0x00003198 LBB11_23 + 0x48, 0x89, 0x4d, 0xd0, //0x00003198 movq %rcx, $-48(%rbp) + 0x49, 0x89, 0xcc, //0x0000319c movq %rcx, %r12 + 0xe9, 0x7e, 0x00, 0x00, 0x00, //0x0000319f jmp LBB11_32 + //0x000031a4 LBB11_24 + 0x4c, 0x01, 0xe9, //0x000031a4 addq %r13, %rcx + //0x000031a7 LBB11_25 + 0x4c, 0x29, 0xe9, //0x000031a7 subq %r13, %rcx + 0x48, 0x89, 0xcb, //0x000031aa movq %rcx, %rbx + 0x4c, 0x39, 0xfb, //0x000031ad cmpq %r15, %rbx + 0x0f, 0x82, 0x17, 0x00, 0x00, 0x00, //0x000031b0 jb LBB11_27 + 0xe9, 0x67, 0x00, 0x00, 0x00, //0x000031b6 jmp LBB11_32 + //0x000031bb LBB11_26 + 0x4c, 0x89, 0xe8, //0x000031bb movq %r13, %rax + 0x48, 0xf7, 0xd0, //0x000031be notq %rax + 0x48, 0x01, 0xc3, //0x000031c1 addq %rax, %rbx + 0x4c, 0x39, 0xfb, //0x000031c4 cmpq %r15, %rbx + 0x0f, 0x83, 0x55, 0x00, 0x00, 0x00, //0x000031c7 jae LBB11_32 + //0x000031cd LBB11_27 + 0x41, 0x8a, 0x4c, 0x1d, 0x00, //0x000031cd movb (%r13,%rbx), %cl + //0x000031d2 LBB11_28 + 0x4c, 0x8d, 0x63, 0x01, //0x000031d2 leaq $1(%rbx), %r12 + 0x4c, 0x89, 0x65, 0xd0, //0x000031d6 movq %r12, $-48(%rbp) + 0x0f, 0xbe, 0xc1, //0x000031da movsbl %cl, %eax + 0x83, 0xf8, 0x7d, //0x000031dd cmpl $125, %eax + 0x0f, 0x87, 0xbe, 0x00, 0x00, 0x00, //0x000031e0 ja LBB11_40 + 0x4d, 0x8d, 0x74, 0x1d, 0x00, //0x000031e6 leaq (%r13,%rbx), %r14 + 0x48, 0x8d, 0x15, 0x6a, 0x03, 0x00, 0x00, //0x000031eb leaq $874(%rip), %rdx /* LJTI11_0+0(%rip) */ + 0x48, 0x63, 0x04, 0x82, //0x000031f2 movslq (%rdx,%rax,4), %rax + 0x48, 0x01, 0xd0, //0x000031f6 addq %rdx, %rax + 0xff, 0xe0, //0x000031f9 jmpq *%rax + //0x000031fb LBB11_30 + 0x48, 0x89, 0x5d, 0xd0, //0x000031fb movq %rbx, $-48(%rbp) + 0x41, 0xf6, 0xc0, 0x02, //0x000031ff testb $2, %r8b + 0x0f, 0x85, 0x35, 0x00, 0x00, 0x00, //0x00003203 jne LBB11_35 + 0x48, 0x8d, 0x7d, 0xb0, //0x00003209 leaq $-80(%rbp), %rdi + 0x48, 0x8d, 0x75, 0xd0, //0x0000320d leaq $-48(%rbp), %rsi + 0x4c, 0x89, 0xca, //0x00003211 movq %r9, %rdx + 0xe8, 0x67, 0x0b, 0x00, 0x00, //0x00003214 callq _vnumber + 0x48, 0x8b, 0x5d, 0xd0, //0x00003219 movq $-48(%rbp), %rbx + 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x0000321d jmp LBB11_34 + //0x00003222 LBB11_32 + 0x49, 0xc7, 0x01, 0x01, 0x00, 0x00, 0x00, //0x00003222 movq $1, (%r9) + //0x00003229 LBB11_33 + 0x4c, 0x89, 0xe3, //0x00003229 movq %r12, %rbx + //0x0000322c LBB11_34 + 0x48, 0x89, 0xd8, //0x0000322c movq %rbx, %rax + 0x48, 0x83, 0xc4, 0x28, //0x0000322f addq $40, %rsp + 0x5b, //0x00003233 popq %rbx + 0x41, 0x5c, //0x00003234 popq %r12 + 0x41, 0x5d, //0x00003236 popq %r13 + 0x41, 0x5e, //0x00003238 popq %r14 + 0x41, 0x5f, //0x0000323a popq %r15 + 0x5d, //0x0000323c popq %rbp + 0xc3, //0x0000323d retq + //0x0000323e LBB11_35 + 0x49, 0x29, 0xdf, //0x0000323e subq %rbx, %r15 + 0x31, 0xc0, //0x00003241 xorl %eax, %eax + 0x80, 0xf9, 0x2d, //0x00003243 cmpb $45, %cl + 0x0f, 0x94, 0xc0, //0x00003246 sete %al + 0x49, 0x01, 0xc6, //0x00003249 addq %rax, %r14 + 0x49, 0x29, 0xc7, //0x0000324c subq %rax, %r15 + 0x0f, 0x84, 0xd1, 0x02, 0x00, 0x00, //0x0000324f je LBB11_84 + 0x4c, 0x89, 0x4d, 0xc8, //0x00003255 movq %r9, $-56(%rbp) + 0x41, 0x8a, 0x06, //0x00003259 movb (%r14), %al + 0x04, 0xd0, //0x0000325c addb $-48, %al + 0x3c, 0x0a, //0x0000325e cmpb $10, %al + 0x0f, 0x83, 0xd9, 0x02, 0x00, 0x00, //0x00003260 jae LBB11_86 + 0x4c, 0x89, 0xf7, //0x00003266 movq %r14, %rdi + 0x4c, 0x89, 0xfe, //0x00003269 movq %r15, %rsi + 0xe8, 0x0f, 0x1e, 0x00, 0x00, //0x0000326c callq _do_skip_number + 0x48, 0x85, 0xc0, //0x00003271 testq %rax, %rax + 0x0f, 0x88, 0xbf, 0x02, 0x00, 0x00, //0x00003274 js LBB11_85 + 0x49, 0x01, 0xc6, //0x0000327a addq %rax, %r14 + 0x4d, 0x29, 0xee, //0x0000327d subq %r13, %r14 + 0x4c, 0x89, 0x75, 0xd0, //0x00003280 movq %r14, $-48(%rbp) + 0x4d, 0x85, 0xe4, //0x00003284 testq %r12, %r12 + 0x4c, 0x8b, 0x4d, 0xc8, //0x00003287 movq $-56(%rbp), %r9 + 0x0f, 0x8e, 0xc0, 0x02, 0x00, 0x00, //0x0000328b jle LBB11_87 + 0x49, 0xc7, 0x01, 0x08, 0x00, 0x00, 0x00, //0x00003291 movq $8, (%r9) + 0x49, 0x89, 0x59, 0x18, //0x00003298 movq %rbx, $24(%r9) + 0x4c, 0x89, 0xf3, //0x0000329c movq %r14, %rbx + 0xe9, 0x88, 0xff, 0xff, 0xff, //0x0000329f jmp LBB11_34 + //0x000032a4 LBB11_40 + 0x49, 0xc7, 0x01, 0xfe, 0xff, 0xff, 0xff, //0x000032a4 movq $-2, (%r9) + 0xe9, 0x7c, 0xff, 0xff, 0xff, //0x000032ab jmp LBB11_34 + //0x000032b0 LBB11_41 + 0x4d, 0x89, 0xce, //0x000032b0 movq %r9, %r14 + 0x48, 0xc7, 0x45, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000032b3 movq $-1, $-64(%rbp) + 0x48, 0x8d, 0x7d, 0xb0, //0x000032bb leaq $-80(%rbp), %rdi + 0x48, 0x8d, 0x55, 0xc0, //0x000032bf leaq $-64(%rbp), %rdx + 0x4c, 0x89, 0xe6, //0x000032c3 movq %r12, %rsi + 0x4c, 0x89, 0xc1, //0x000032c6 movq %r8, %rcx + 0xe8, 0x42, 0x05, 0x00, 0x00, //0x000032c9 callq _advance_string + 0x48, 0x89, 0xc3, //0x000032ce movq %rax, %rbx + 0x48, 0x85, 0xc0, //0x000032d1 testq %rax, %rax + 0x0f, 0x88, 0x47, 0x01, 0x00, 0x00, //0x000032d4 js LBB11_61 + 0x48, 0x89, 0x5d, 0xd0, //0x000032da movq %rbx, $-48(%rbp) + 0x4d, 0x89, 0x66, 0x10, //0x000032de movq %r12, $16(%r14) + 0x48, 0x8b, 0x45, 0xc0, //0x000032e2 movq $-64(%rbp), %rax + 0x48, 0x39, 0xd8, //0x000032e6 cmpq %rbx, %rax + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x000032e9 movq $-1, %rcx + 0x48, 0x0f, 0x4c, 0xc8, //0x000032f0 cmovlq %rax, %rcx + 0x49, 0x89, 0x4e, 0x18, //0x000032f4 movq %rcx, $24(%r14) + 0xb8, 0x07, 0x00, 0x00, 0x00, //0x000032f8 movl $7, %eax + 0x49, 0x89, 0x06, //0x000032fd movq %rax, (%r14) + 0xe9, 0x27, 0xff, 0xff, 0xff, //0x00003300 jmp LBB11_34 + //0x00003305 LBB11_43 + 0x31, 0xc0, //0x00003305 xorl %eax, %eax + 0x45, 0x85, 0xc0, //0x00003307 testl %r8d, %r8d + 0x0f, 0x99, 0xc0, //0x0000330a setns %al + 0xb9, 0x0b, 0x00, 0x00, 0x00, //0x0000330d movl $11, %ecx + 0xe9, 0xf4, 0x00, 0x00, 0x00, //0x00003312 jmp LBB11_60 + //0x00003317 LBB11_44 + 0x31, 0xc0, //0x00003317 xorl %eax, %eax + 0x45, 0x85, 0xc0, //0x00003319 testl %r8d, %r8d + 0x0f, 0x99, 0xc0, //0x0000331c setns %al + 0xb9, 0x0a, 0x00, 0x00, 0x00, //0x0000331f movl $10, %ecx + 0xe9, 0xe2, 0x00, 0x00, 0x00, //0x00003324 jmp LBB11_60 + //0x00003329 LBB11_45 + 0x49, 0xc7, 0x01, 0x05, 0x00, 0x00, 0x00, //0x00003329 movq $5, (%r9) + 0xe9, 0xf4, 0xfe, 0xff, 0xff, //0x00003330 jmp LBB11_33 + //0x00003335 LBB11_46 + 0x31, 0xc0, //0x00003335 xorl %eax, %eax + 0x45, 0x85, 0xc0, //0x00003337 testl %r8d, %r8d + 0x0f, 0x99, 0xc0, //0x0000333a setns %al + 0xb9, 0x0c, 0x00, 0x00, 0x00, //0x0000333d movl $12, %ecx + 0xe9, 0xc4, 0x00, 0x00, 0x00, //0x00003342 jmp LBB11_60 + //0x00003347 LBB11_47 + 0x49, 0x8d, 0x47, 0xfc, //0x00003347 leaq $-4(%r15), %rax + 0x48, 0x39, 0xc3, //0x0000334b cmpq %rax, %rbx + 0x0f, 0x83, 0x88, 0x00, 0x00, 0x00, //0x0000334e jae LBB11_56 + 0x43, 0x8b, 0x4c, 0x25, 0x00, //0x00003354 movl (%r13,%r12), %ecx + 0x81, 0xf9, 0x61, 0x6c, 0x73, 0x65, //0x00003359 cmpl $1702063201, %ecx + 0x0f, 0x85, 0xcb, 0x00, 0x00, 0x00, //0x0000335f jne LBB11_62 + 0x48, 0x83, 0xc3, 0x05, //0x00003365 addq $5, %rbx + 0x48, 0x89, 0x5d, 0xd0, //0x00003369 movq %rbx, $-48(%rbp) + 0xb8, 0x04, 0x00, 0x00, 0x00, //0x0000336d movl $4, %eax + 0x49, 0x89, 0xdf, //0x00003372 movq %rbx, %r15 + 0xe9, 0x6d, 0x00, 0x00, 0x00, //0x00003375 jmp LBB11_57 + //0x0000337a LBB11_50 + 0x49, 0x8d, 0x47, 0xfd, //0x0000337a leaq $-3(%r15), %rax + 0x48, 0x39, 0xc3, //0x0000337e cmpq %rax, %rbx + 0x0f, 0x83, 0x55, 0x00, 0x00, 0x00, //0x00003381 jae LBB11_56 + 0x41, 0x8b, 0x0e, //0x00003387 movl (%r14), %ecx + 0x81, 0xf9, 0x6e, 0x75, 0x6c, 0x6c, //0x0000338a cmpl $1819047278, %ecx + 0x0f, 0x85, 0xd9, 0x00, 0x00, 0x00, //0x00003390 jne LBB11_66 + 0x48, 0x83, 0xc3, 0x04, //0x00003396 addq $4, %rbx + 0x48, 0x89, 0x5d, 0xd0, //0x0000339a movq %rbx, $-48(%rbp) + 0xb8, 0x02, 0x00, 0x00, 0x00, //0x0000339e movl $2, %eax + 0x49, 0x89, 0xdf, //0x000033a3 movq %rbx, %r15 + 0xe9, 0x3c, 0x00, 0x00, 0x00, //0x000033a6 jmp LBB11_57 + //0x000033ab LBB11_53 + 0x49, 0x8d, 0x47, 0xfd, //0x000033ab leaq $-3(%r15), %rax + 0x48, 0x39, 0xc3, //0x000033af cmpq %rax, %rbx + 0x0f, 0x83, 0x24, 0x00, 0x00, 0x00, //0x000033b2 jae LBB11_56 + 0x41, 0x8b, 0x0e, //0x000033b8 movl (%r14), %ecx + 0x81, 0xf9, 0x74, 0x72, 0x75, 0x65, //0x000033bb cmpl $1702195828, %ecx + 0x0f, 0x85, 0xeb, 0x00, 0x00, 0x00, //0x000033c1 jne LBB11_70 + 0x48, 0x83, 0xc3, 0x04, //0x000033c7 addq $4, %rbx + 0x48, 0x89, 0x5d, 0xd0, //0x000033cb movq %rbx, $-48(%rbp) + 0xb8, 0x03, 0x00, 0x00, 0x00, //0x000033cf movl $3, %eax + 0x49, 0x89, 0xdf, //0x000033d4 movq %rbx, %r15 + 0xe9, 0x0b, 0x00, 0x00, 0x00, //0x000033d7 jmp LBB11_57 + //0x000033dc LBB11_56 + 0x4c, 0x89, 0x7d, 0xd0, //0x000033dc movq %r15, $-48(%rbp) + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000033e0 movq $-1, %rax + //0x000033e7 LBB11_57 + 0x49, 0x89, 0x01, //0x000033e7 movq %rax, (%r9) + 0x4c, 0x89, 0xfb, //0x000033ea movq %r15, %rbx + 0xe9, 0x3a, 0xfe, 0xff, 0xff, //0x000033ed jmp LBB11_34 + //0x000033f2 LBB11_58 + 0x49, 0xc7, 0x01, 0x06, 0x00, 0x00, 0x00, //0x000033f2 movq $6, (%r9) + 0xe9, 0x2b, 0xfe, 0xff, 0xff, //0x000033f9 jmp LBB11_33 + //0x000033fe LBB11_59 + 0x31, 0xc0, //0x000033fe xorl %eax, %eax + 0x45, 0x85, 0xc0, //0x00003400 testl %r8d, %r8d + 0x0f, 0x99, 0xc0, //0x00003403 setns %al + 0xb9, 0x0d, 0x00, 0x00, 0x00, //0x00003406 movl $13, %ecx + //0x0000340b LBB11_60 + 0x48, 0xc7, 0xc2, 0xfe, 0xff, 0xff, 0xff, //0x0000340b movq $-2, %rdx + 0x48, 0x0f, 0x48, 0xd1, //0x00003412 cmovsq %rcx, %rdx + 0x49, 0x89, 0x11, //0x00003416 movq %rdx, (%r9) + 0x49, 0x29, 0xc4, //0x00003419 subq %rax, %r12 + 0xe9, 0x08, 0xfe, 0xff, 0xff, //0x0000341c jmp LBB11_33 + //0x00003421 LBB11_61 + 0x4c, 0x89, 0x7d, 0xd0, //0x00003421 movq %r15, $-48(%rbp) + 0x49, 0x89, 0x1e, //0x00003425 movq %rbx, (%r14) + 0x4c, 0x89, 0xfb, //0x00003428 movq %r15, %rbx + 0xe9, 0xfc, 0xfd, 0xff, 0xff, //0x0000342b jmp LBB11_34 + //0x00003430 LBB11_62 + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00003430 movq $-2, %rax + 0x80, 0xf9, 0x61, //0x00003437 cmpb $97, %cl + 0x0f, 0x85, 0xbd, 0x00, 0x00, 0x00, //0x0000343a jne LBB11_74 + 0x41, 0x80, 0x7c, 0x1d, 0x02, 0x6c, //0x00003440 cmpb $108, $2(%r13,%rbx) + 0x0f, 0x85, 0xc1, 0x00, 0x00, 0x00, //0x00003446 jne LBB11_81 + 0x41, 0x80, 0x7c, 0x1d, 0x03, 0x73, //0x0000344c cmpb $115, $3(%r13,%rbx) + 0x0f, 0x85, 0xbe, 0x00, 0x00, 0x00, //0x00003452 jne LBB11_79 + 0x4c, 0x8d, 0x7b, 0x04, //0x00003458 leaq $4(%rbx), %r15 + 0x48, 0x8d, 0x4b, 0x05, //0x0000345c leaq $5(%rbx), %rcx + 0x41, 0x80, 0x7c, 0x1d, 0x04, 0x65, //0x00003460 cmpb $101, $4(%r13,%rbx) + 0x4c, 0x0f, 0x44, 0xf9, //0x00003466 cmoveq %rcx, %r15 + 0xe9, 0xae, 0x00, 0x00, 0x00, //0x0000346a jmp LBB11_83 + //0x0000346f LBB11_66 + 0x48, 0x89, 0x5d, 0xd0, //0x0000346f movq %rbx, $-48(%rbp) + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00003473 movq $-2, %rax + 0x80, 0xf9, 0x6e, //0x0000347a cmpb $110, %cl + 0x0f, 0x85, 0x72, 0x00, 0x00, 0x00, //0x0000347d jne LBB11_76 + 0x41, 0x80, 0x7c, 0x1d, 0x01, 0x75, //0x00003483 cmpb $117, $1(%r13,%rbx) + 0x0f, 0x85, 0x76, 0x00, 0x00, 0x00, //0x00003489 jne LBB11_77 + 0x41, 0x80, 0x7c, 0x1d, 0x02, 0x6c, //0x0000348f cmpb $108, $2(%r13,%rbx) + 0x0f, 0x85, 0x72, 0x00, 0x00, 0x00, //0x00003495 jne LBB11_81 + 0x4c, 0x8d, 0x7b, 0x03, //0x0000349b leaq $3(%rbx), %r15 + 0x48, 0x8d, 0x4b, 0x04, //0x0000349f leaq $4(%rbx), %rcx + 0x41, 0x80, 0x7c, 0x1d, 0x03, 0x6c, //0x000034a3 cmpb $108, $3(%r13,%rbx) + 0x4c, 0x0f, 0x44, 0xf9, //0x000034a9 cmoveq %rcx, %r15 + 0xe9, 0x6b, 0x00, 0x00, 0x00, //0x000034ad jmp LBB11_83 + //0x000034b2 LBB11_70 + 0x48, 0x89, 0x5d, 0xd0, //0x000034b2 movq %rbx, $-48(%rbp) + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x000034b6 movq $-2, %rax + 0x80, 0xf9, 0x74, //0x000034bd cmpb $116, %cl + 0x0f, 0x85, 0x2f, 0x00, 0x00, 0x00, //0x000034c0 jne LBB11_76 + 0x41, 0x80, 0x7c, 0x1d, 0x01, 0x72, //0x000034c6 cmpb $114, $1(%r13,%rbx) + 0x0f, 0x85, 0x33, 0x00, 0x00, 0x00, //0x000034cc jne LBB11_77 + 0x41, 0x80, 0x7c, 0x1d, 0x02, 0x75, //0x000034d2 cmpb $117, $2(%r13,%rbx) + 0x0f, 0x85, 0x2f, 0x00, 0x00, 0x00, //0x000034d8 jne LBB11_81 + 0x4c, 0x8d, 0x7b, 0x03, //0x000034de leaq $3(%rbx), %r15 + 0x48, 0x8d, 0x4b, 0x04, //0x000034e2 leaq $4(%rbx), %rcx + 0x41, 0x80, 0x7c, 0x1d, 0x03, 0x65, //0x000034e6 cmpb $101, $3(%r13,%rbx) + 0x4c, 0x0f, 0x44, 0xf9, //0x000034ec cmoveq %rcx, %r15 + 0xe9, 0x28, 0x00, 0x00, 0x00, //0x000034f0 jmp LBB11_83 + //0x000034f5 LBB11_76 + 0x49, 0x89, 0xdf, //0x000034f5 movq %rbx, %r15 + 0xe9, 0xea, 0xfe, 0xff, 0xff, //0x000034f8 jmp LBB11_57 + //0x000034fd LBB11_74 + 0x4d, 0x89, 0xe7, //0x000034fd movq %r12, %r15 + 0xe9, 0xe2, 0xfe, 0xff, 0xff, //0x00003500 jmp LBB11_57 + //0x00003505 LBB11_77 + 0x48, 0xff, 0xc3, //0x00003505 incq %rbx + 0xe9, 0x0d, 0x00, 0x00, 0x00, //0x00003508 jmp LBB11_82 + //0x0000350d LBB11_81 + 0x48, 0x83, 0xc3, 0x02, //0x0000350d addq $2, %rbx + 0xe9, 0x04, 0x00, 0x00, 0x00, //0x00003511 jmp LBB11_82 + //0x00003516 LBB11_79 + 0x48, 0x83, 0xc3, 0x03, //0x00003516 addq $3, %rbx + //0x0000351a LBB11_82 + 0x49, 0x89, 0xdf, //0x0000351a movq %rbx, %r15 + //0x0000351d LBB11_83 + 0x4c, 0x89, 0x7d, 0xd0, //0x0000351d movq %r15, $-48(%rbp) + 0xe9, 0xc1, 0xfe, 0xff, 0xff, //0x00003521 jmp LBB11_57 + //0x00003526 LBB11_84 + 0x4d, 0x29, 0xee, //0x00003526 subq %r13, %r14 + 0x4c, 0x89, 0x75, 0xd0, //0x00003529 movq %r14, $-48(%rbp) + 0x48, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x0000352d movq $-1, %rbx + 0xe9, 0x18, 0x00, 0x00, 0x00, //0x00003534 jmp LBB11_87 + //0x00003539 LBB11_85 + 0x48, 0xf7, 0xd0, //0x00003539 notq %rax + 0x49, 0x01, 0xc6, //0x0000353c addq %rax, %r14 + //0x0000353f LBB11_86 + 0x4d, 0x29, 0xee, //0x0000353f subq %r13, %r14 + 0x4c, 0x89, 0x75, 0xd0, //0x00003542 movq %r14, $-48(%rbp) + 0x48, 0xc7, 0xc3, 0xfe, 0xff, 0xff, 0xff, //0x00003546 movq $-2, %rbx + 0x4c, 0x8b, 0x4d, 0xc8, //0x0000354d movq $-56(%rbp), %r9 + //0x00003551 LBB11_87 + 0x49, 0x89, 0x19, //0x00003551 movq %rbx, (%r9) + 0x4c, 0x89, 0xf3, //0x00003554 movq %r14, %rbx + 0xe9, 0xd0, 0xfc, 0xff, 0xff, //0x00003557 jmp LBB11_34 + //0x0000355c .p2align 2, 0x90 + // // .set L11_0_set_32, LBB11_32-LJTI11_0 + // // .set L11_0_set_40, LBB11_40-LJTI11_0 + // // .set L11_0_set_41, LBB11_41-LJTI11_0 + // // .set L11_0_set_43, LBB11_43-LJTI11_0 + // // .set L11_0_set_30, LBB11_30-LJTI11_0 + // // .set L11_0_set_44, LBB11_44-LJTI11_0 + // // .set L11_0_set_45, LBB11_45-LJTI11_0 + // // .set L11_0_set_46, LBB11_46-LJTI11_0 + // // .set L11_0_set_47, LBB11_47-LJTI11_0 + // // .set L11_0_set_50, LBB11_50-LJTI11_0 + // // .set L11_0_set_53, LBB11_53-LJTI11_0 + // // .set L11_0_set_58, LBB11_58-LJTI11_0 + // // .set L11_0_set_59, LBB11_59-LJTI11_0 + //0x0000355c LJTI11_0 + 0xc6, 0xfc, 0xff, 0xff, //0x0000355c .long L11_0_set_32 + 0x48, 0xfd, 0xff, 0xff, //0x00003560 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x00003564 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x00003568 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x0000356c .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x00003570 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x00003574 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x00003578 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x0000357c .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x00003580 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x00003584 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x00003588 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x0000358c .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x00003590 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x00003594 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x00003598 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x0000359c .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x000035a0 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x000035a4 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x000035a8 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x000035ac .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x000035b0 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x000035b4 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x000035b8 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x000035bc .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x000035c0 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x000035c4 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x000035c8 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x000035cc .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x000035d0 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x000035d4 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x000035d8 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x000035dc .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x000035e0 .long L11_0_set_40 + 0x54, 0xfd, 0xff, 0xff, //0x000035e4 .long L11_0_set_41 + 0x48, 0xfd, 0xff, 0xff, //0x000035e8 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x000035ec .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x000035f0 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x000035f4 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x000035f8 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x000035fc .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x00003600 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x00003604 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x00003608 .long L11_0_set_40 + 0xa9, 0xfd, 0xff, 0xff, //0x0000360c .long L11_0_set_43 + 0x9f, 0xfc, 0xff, 0xff, //0x00003610 .long L11_0_set_30 + 0x48, 0xfd, 0xff, 0xff, //0x00003614 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x00003618 .long L11_0_set_40 + 0x9f, 0xfc, 0xff, 0xff, //0x0000361c .long L11_0_set_30 + 0x9f, 0xfc, 0xff, 0xff, //0x00003620 .long L11_0_set_30 + 0x9f, 0xfc, 0xff, 0xff, //0x00003624 .long L11_0_set_30 + 0x9f, 0xfc, 0xff, 0xff, //0x00003628 .long L11_0_set_30 + 0x9f, 0xfc, 0xff, 0xff, //0x0000362c .long L11_0_set_30 + 0x9f, 0xfc, 0xff, 0xff, //0x00003630 .long L11_0_set_30 + 0x9f, 0xfc, 0xff, 0xff, //0x00003634 .long L11_0_set_30 + 0x9f, 0xfc, 0xff, 0xff, //0x00003638 .long L11_0_set_30 + 0x9f, 0xfc, 0xff, 0xff, //0x0000363c .long L11_0_set_30 + 0x9f, 0xfc, 0xff, 0xff, //0x00003640 .long L11_0_set_30 + 0xbb, 0xfd, 0xff, 0xff, //0x00003644 .long L11_0_set_44 + 0x48, 0xfd, 0xff, 0xff, //0x00003648 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x0000364c .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x00003650 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x00003654 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x00003658 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x0000365c .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x00003660 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x00003664 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x00003668 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x0000366c .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x00003670 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x00003674 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x00003678 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x0000367c .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x00003680 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x00003684 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x00003688 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x0000368c .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x00003690 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x00003694 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x00003698 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x0000369c .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x000036a0 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x000036a4 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x000036a8 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x000036ac .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x000036b0 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x000036b4 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x000036b8 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x000036bc .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x000036c0 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x000036c4 .long L11_0_set_40 + 0xcd, 0xfd, 0xff, 0xff, //0x000036c8 .long L11_0_set_45 + 0x48, 0xfd, 0xff, 0xff, //0x000036cc .long L11_0_set_40 + 0xd9, 0xfd, 0xff, 0xff, //0x000036d0 .long L11_0_set_46 + 0x48, 0xfd, 0xff, 0xff, //0x000036d4 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x000036d8 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x000036dc .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x000036e0 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x000036e4 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x000036e8 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x000036ec .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x000036f0 .long L11_0_set_40 + 0xeb, 0xfd, 0xff, 0xff, //0x000036f4 .long L11_0_set_47 + 0x48, 0xfd, 0xff, 0xff, //0x000036f8 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x000036fc .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x00003700 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x00003704 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x00003708 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x0000370c .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x00003710 .long L11_0_set_40 + 0x1e, 0xfe, 0xff, 0xff, //0x00003714 .long L11_0_set_50 + 0x48, 0xfd, 0xff, 0xff, //0x00003718 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x0000371c .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x00003720 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x00003724 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x00003728 .long L11_0_set_40 + 0x4f, 0xfe, 0xff, 0xff, //0x0000372c .long L11_0_set_53 + 0x48, 0xfd, 0xff, 0xff, //0x00003730 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x00003734 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x00003738 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x0000373c .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x00003740 .long L11_0_set_40 + 0x48, 0xfd, 0xff, 0xff, //0x00003744 .long L11_0_set_40 + 0x96, 0xfe, 0xff, 0xff, //0x00003748 .long L11_0_set_58 + 0x48, 0xfd, 0xff, 0xff, //0x0000374c .long L11_0_set_40 + 0xa2, 0xfe, 0xff, 0xff, //0x00003750 .long L11_0_set_59 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003754 .p2align 4, 0x90 + //0x00003760 _vstring + 0x55, //0x00003760 pushq %rbp + 0x48, 0x89, 0xe5, //0x00003761 movq %rsp, %rbp + 0x41, 0x57, //0x00003764 pushq %r15 + 0x41, 0x56, //0x00003766 pushq %r14 + 0x41, 0x54, //0x00003768 pushq %r12 + 0x53, //0x0000376a pushq %rbx + 0x48, 0x83, 0xec, 0x10, //0x0000376b subq $16, %rsp + 0x49, 0x89, 0xd6, //0x0000376f movq %rdx, %r14 + 0x48, 0x89, 0xf3, //0x00003772 movq %rsi, %rbx + 0x49, 0x89, 0xff, //0x00003775 movq %rdi, %r15 + 0x48, 0xc7, 0x45, 0xd8, 0xff, 0xff, 0xff, 0xff, //0x00003778 movq $-1, $-40(%rbp) + 0x4c, 0x8b, 0x26, //0x00003780 movq (%rsi), %r12 + 0x48, 0x8d, 0x55, 0xd8, //0x00003783 leaq $-40(%rbp), %rdx + 0x4c, 0x89, 0xe6, //0x00003787 movq %r12, %rsi + 0xe8, 0x81, 0x00, 0x00, 0x00, //0x0000378a callq _advance_string + 0x48, 0x85, 0xc0, //0x0000378f testq %rax, %rax + 0x0f, 0x88, 0x27, 0x00, 0x00, 0x00, //0x00003792 js LBB12_1 + 0x48, 0x89, 0x03, //0x00003798 movq %rax, (%rbx) + 0x4d, 0x89, 0x66, 0x10, //0x0000379b movq %r12, $16(%r14) + 0x48, 0x8b, 0x4d, 0xd8, //0x0000379f movq $-40(%rbp), %rcx + 0x48, 0x39, 0xc1, //0x000037a3 cmpq %rax, %rcx + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000037a6 movq $-1, %rax + 0x48, 0x0f, 0x4c, 0xc1, //0x000037ad cmovlq %rcx, %rax + 0x49, 0x89, 0x46, 0x18, //0x000037b1 movq %rax, $24(%r14) + 0xb8, 0x07, 0x00, 0x00, 0x00, //0x000037b5 movl $7, %eax + 0xe9, 0x07, 0x00, 0x00, 0x00, //0x000037ba jmp LBB12_3 + //0x000037bf LBB12_1 + 0x49, 0x8b, 0x4f, 0x08, //0x000037bf movq $8(%r15), %rcx + 0x48, 0x89, 0x0b, //0x000037c3 movq %rcx, (%rbx) + //0x000037c6 LBB12_3 + 0x49, 0x89, 0x06, //0x000037c6 movq %rax, (%r14) + 0x48, 0x83, 0xc4, 0x10, //0x000037c9 addq $16, %rsp + 0x5b, //0x000037cd popq %rbx + 0x41, 0x5c, //0x000037ce popq %r12 + 0x41, 0x5e, //0x000037d0 popq %r14 + 0x41, 0x5f, //0x000037d2 popq %r15 + 0x5d, //0x000037d4 popq %rbp + 0xc3, //0x000037d5 retq + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000037d6 .p2align 4, 0x00 + //0x000037e0 LCPI13_0 + 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, //0x000037e0 QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' + //0x000037f0 LCPI13_1 + 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x000037f0 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + //0x00003800 LCPI13_2 + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x00003800 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' + //0x00003810 .p2align 4, 0x90 + //0x00003810 _advance_string + 0xf6, 0xc1, 0x20, //0x00003810 testb $32, %cl + 0x0f, 0x85, 0x05, 0x00, 0x00, 0x00, //0x00003813 jne LBB13_2 + 0xe9, 0xd2, 0x59, 0x00, 0x00, //0x00003819 jmp _advance_string_default + //0x0000381e LBB13_2 + 0x55, //0x0000381e pushq %rbp + 0x48, 0x89, 0xe5, //0x0000381f movq %rsp, %rbp + 0x41, 0x57, //0x00003822 pushq %r15 + 0x41, 0x56, //0x00003824 pushq %r14 + 0x41, 0x55, //0x00003826 pushq %r13 + 0x41, 0x54, //0x00003828 pushq %r12 + 0x53, //0x0000382a pushq %rbx + 0x50, //0x0000382b pushq %rax + 0x4c, 0x8b, 0x67, 0x08, //0x0000382c movq $8(%rdi), %r12 + 0x49, 0x29, 0xf4, //0x00003830 subq %rsi, %r12 + 0x0f, 0x84, 0xf3, 0x04, 0x00, 0x00, //0x00003833 je LBB13_45 + 0x48, 0x8b, 0x07, //0x00003839 movq (%rdi), %rax + 0x48, 0x89, 0x45, 0xd0, //0x0000383c movq %rax, $-48(%rbp) + 0x48, 0x01, 0xc6, //0x00003840 addq %rax, %rsi + 0x48, 0xc7, 0x02, 0xff, 0xff, 0xff, 0xff, //0x00003843 movq $-1, (%rdx) + 0x49, 0x83, 0xfc, 0x40, //0x0000384a cmpq $64, %r12 + 0x0f, 0x82, 0x17, 0x04, 0x00, 0x00, //0x0000384e jb LBB13_46 + 0x45, 0x89, 0xe1, //0x00003854 movl %r12d, %r9d + 0x41, 0x83, 0xe1, 0x3f, //0x00003857 andl $63, %r9d + 0x49, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x0000385b movq $-1, %r14 + 0x45, 0x31, 0xff, //0x00003862 xorl %r15d, %r15d + 0x66, 0x44, 0x0f, 0x6f, 0x05, 0x72, 0xff, 0xff, 0xff, //0x00003865 movdqa $-142(%rip), %xmm8 /* LCPI13_0+0(%rip) */ + 0x66, 0x0f, 0x6f, 0x0d, 0x7a, 0xff, 0xff, 0xff, //0x0000386e movdqa $-134(%rip), %xmm1 /* LCPI13_1+0(%rip) */ + 0x66, 0x0f, 0x6f, 0x15, 0x82, 0xff, 0xff, 0xff, //0x00003876 movdqa $-126(%rip), %xmm2 /* LCPI13_2+0(%rip) */ + 0x66, 0x0f, 0x76, 0xdb, //0x0000387e pcmpeqd %xmm3, %xmm3 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003882 .p2align 4, 0x90 + //0x00003890 LBB13_5 + 0xf3, 0x0f, 0x6f, 0x3e, //0x00003890 movdqu (%rsi), %xmm7 + 0xf3, 0x0f, 0x6f, 0x76, 0x10, //0x00003894 movdqu $16(%rsi), %xmm6 + 0xf3, 0x0f, 0x6f, 0x6e, 0x20, //0x00003899 movdqu $32(%rsi), %xmm5 + 0xf3, 0x0f, 0x6f, 0x66, 0x30, //0x0000389e movdqu $48(%rsi), %xmm4 + 0x66, 0x0f, 0x6f, 0xc7, //0x000038a3 movdqa %xmm7, %xmm0 + 0x66, 0x41, 0x0f, 0x74, 0xc0, //0x000038a7 pcmpeqb %xmm8, %xmm0 + 0x66, 0x44, 0x0f, 0xd7, 0xd8, //0x000038ac pmovmskb %xmm0, %r11d + 0x66, 0x0f, 0x6f, 0xc6, //0x000038b1 movdqa %xmm6, %xmm0 + 0x66, 0x41, 0x0f, 0x74, 0xc0, //0x000038b5 pcmpeqb %xmm8, %xmm0 + 0x66, 0x0f, 0xd7, 0xc8, //0x000038ba pmovmskb %xmm0, %ecx + 0x66, 0x0f, 0x6f, 0xc5, //0x000038be movdqa %xmm5, %xmm0 + 0x66, 0x41, 0x0f, 0x74, 0xc0, //0x000038c2 pcmpeqb %xmm8, %xmm0 + 0x66, 0x44, 0x0f, 0xd7, 0xd0, //0x000038c7 pmovmskb %xmm0, %r10d + 0x66, 0x0f, 0x6f, 0xc4, //0x000038cc movdqa %xmm4, %xmm0 + 0x66, 0x41, 0x0f, 0x74, 0xc0, //0x000038d0 pcmpeqb %xmm8, %xmm0 + 0x66, 0x44, 0x0f, 0xd7, 0xe8, //0x000038d5 pmovmskb %xmm0, %r13d + 0x66, 0x0f, 0x6f, 0xc7, //0x000038da movdqa %xmm7, %xmm0 + 0x66, 0x0f, 0x74, 0xc1, //0x000038de pcmpeqb %xmm1, %xmm0 + 0x66, 0x44, 0x0f, 0xd7, 0xc0, //0x000038e2 pmovmskb %xmm0, %r8d + 0x66, 0x0f, 0x6f, 0xc6, //0x000038e7 movdqa %xmm6, %xmm0 + 0x66, 0x0f, 0x74, 0xc1, //0x000038eb pcmpeqb %xmm1, %xmm0 + 0x66, 0x0f, 0xd7, 0xc0, //0x000038ef pmovmskb %xmm0, %eax + 0x66, 0x0f, 0x6f, 0xc5, //0x000038f3 movdqa %xmm5, %xmm0 + 0x66, 0x0f, 0x74, 0xc1, //0x000038f7 pcmpeqb %xmm1, %xmm0 + 0x48, 0xc1, 0xe1, 0x10, //0x000038fb shlq $16, %rcx + 0x49, 0x09, 0xcb, //0x000038ff orq %rcx, %r11 + 0x66, 0x0f, 0xd7, 0xd8, //0x00003902 pmovmskb %xmm0, %ebx + 0x66, 0x0f, 0x6f, 0xc4, //0x00003906 movdqa %xmm4, %xmm0 + 0x66, 0x0f, 0x74, 0xc1, //0x0000390a pcmpeqb %xmm1, %xmm0 + 0x49, 0xc1, 0xe2, 0x20, //0x0000390e shlq $32, %r10 + 0x4d, 0x09, 0xd3, //0x00003912 orq %r10, %r11 + 0x66, 0x0f, 0xd7, 0xf8, //0x00003915 pmovmskb %xmm0, %edi + 0x66, 0x0f, 0x6f, 0xc2, //0x00003919 movdqa %xmm2, %xmm0 + 0x66, 0x0f, 0x64, 0xc7, //0x0000391d pcmpgtb %xmm7, %xmm0 + 0x66, 0x0f, 0x64, 0xfb, //0x00003921 pcmpgtb %xmm3, %xmm7 + 0x66, 0x0f, 0xdb, 0xf8, //0x00003925 pand %xmm0, %xmm7 + 0x48, 0xc1, 0xe0, 0x10, //0x00003929 shlq $16, %rax + 0x49, 0x09, 0xc0, //0x0000392d orq %rax, %r8 + 0x66, 0x0f, 0xd7, 0xcf, //0x00003930 pmovmskb %xmm7, %ecx + 0x66, 0x0f, 0x6f, 0xc2, //0x00003934 movdqa %xmm2, %xmm0 + 0x66, 0x0f, 0x64, 0xc6, //0x00003938 pcmpgtb %xmm6, %xmm0 + 0x66, 0x0f, 0x64, 0xf3, //0x0000393c pcmpgtb %xmm3, %xmm6 + 0x66, 0x0f, 0xdb, 0xf0, //0x00003940 pand %xmm0, %xmm6 + 0x48, 0xc1, 0xe3, 0x20, //0x00003944 shlq $32, %rbx + 0x49, 0x09, 0xd8, //0x00003948 orq %rbx, %r8 + 0x66, 0x0f, 0xd7, 0xc6, //0x0000394b pmovmskb %xmm6, %eax + 0x66, 0x0f, 0x6f, 0xc2, //0x0000394f movdqa %xmm2, %xmm0 + 0x66, 0x0f, 0x64, 0xc5, //0x00003953 pcmpgtb %xmm5, %xmm0 + 0x66, 0x0f, 0x64, 0xeb, //0x00003957 pcmpgtb %xmm3, %xmm5 + 0x66, 0x0f, 0xdb, 0xe8, //0x0000395b pand %xmm0, %xmm5 + 0x48, 0xc1, 0xe7, 0x30, //0x0000395f shlq $48, %rdi + 0x49, 0x09, 0xf8, //0x00003963 orq %rdi, %r8 + 0x66, 0x0f, 0xd7, 0xdd, //0x00003966 pmovmskb %xmm5, %ebx + 0x66, 0x0f, 0x6f, 0xc2, //0x0000396a movdqa %xmm2, %xmm0 + 0x66, 0x0f, 0x64, 0xc4, //0x0000396e pcmpgtb %xmm4, %xmm0 + 0x66, 0x0f, 0x64, 0xe3, //0x00003972 pcmpgtb %xmm3, %xmm4 + 0x66, 0x0f, 0xdb, 0xe0, //0x00003976 pand %xmm0, %xmm4 + 0x48, 0xc1, 0xe0, 0x10, //0x0000397a shlq $16, %rax + 0x48, 0x09, 0xc1, //0x0000397e orq %rax, %rcx + 0x66, 0x0f, 0xd7, 0xc4, //0x00003981 pmovmskb %xmm4, %eax + 0x49, 0xc1, 0xe5, 0x30, //0x00003985 shlq $48, %r13 + 0x48, 0xc1, 0xe3, 0x20, //0x00003989 shlq $32, %rbx + 0x49, 0x83, 0xfe, 0xff, //0x0000398d cmpq $-1, %r14 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00003991 jne LBB13_7 + 0x4d, 0x85, 0xc0, //0x00003997 testq %r8, %r8 + 0x0f, 0x85, 0x9d, 0x00, 0x00, 0x00, //0x0000399a jne LBB13_12 + //0x000039a0 LBB13_7 + 0x48, 0xc1, 0xe0, 0x30, //0x000039a0 shlq $48, %rax + 0x48, 0x09, 0xd9, //0x000039a4 orq %rbx, %rcx + 0x4d, 0x09, 0xeb, //0x000039a7 orq %r13, %r11 + 0x4c, 0x89, 0xc7, //0x000039aa movq %r8, %rdi + 0x4c, 0x09, 0xff, //0x000039ad orq %r15, %rdi + 0x0f, 0x85, 0x2c, 0x00, 0x00, 0x00, //0x000039b0 jne LBB13_11 + 0x48, 0x09, 0xc1, //0x000039b6 orq %rax, %rcx + 0x4d, 0x85, 0xdb, //0x000039b9 testq %r11, %r11 + 0x0f, 0x85, 0x91, 0x00, 0x00, 0x00, //0x000039bc jne LBB13_13 + //0x000039c2 LBB13_9 + 0x48, 0x85, 0xc9, //0x000039c2 testq %rcx, %rcx + 0x0f, 0x85, 0xde, 0x00, 0x00, 0x00, //0x000039c5 jne LBB13_19 + 0x48, 0x83, 0xc6, 0x40, //0x000039cb addq $64, %rsi + 0x49, 0x83, 0xc4, 0xc0, //0x000039cf addq $-64, %r12 + 0x49, 0x83, 0xfc, 0x3f, //0x000039d3 cmpq $63, %r12 + 0x0f, 0x87, 0xb3, 0xfe, 0xff, 0xff, //0x000039d7 ja LBB13_5 + 0xe9, 0xeb, 0x00, 0x00, 0x00, //0x000039dd jmp LBB13_21 + //0x000039e2 LBB13_11 + 0x4d, 0x89, 0xfd, //0x000039e2 movq %r15, %r13 + 0x49, 0xf7, 0xd5, //0x000039e5 notq %r13 + 0x4d, 0x21, 0xc5, //0x000039e8 andq %r8, %r13 + 0x4f, 0x8d, 0x54, 0x2d, 0x00, //0x000039eb leaq (%r13,%r13), %r10 + 0x4d, 0x09, 0xfa, //0x000039f0 orq %r15, %r10 + 0x4c, 0x89, 0xd3, //0x000039f3 movq %r10, %rbx + 0x48, 0xf7, 0xd3, //0x000039f6 notq %rbx + 0x4c, 0x21, 0xc3, //0x000039f9 andq %r8, %rbx + 0x48, 0xbf, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x000039fc movabsq $-6148914691236517206, %rdi + 0x48, 0x21, 0xfb, //0x00003a06 andq %rdi, %rbx + 0x45, 0x31, 0xff, //0x00003a09 xorl %r15d, %r15d + 0x4c, 0x01, 0xeb, //0x00003a0c addq %r13, %rbx + 0x41, 0x0f, 0x92, 0xc7, //0x00003a0f setb %r15b + 0x48, 0x01, 0xdb, //0x00003a13 addq %rbx, %rbx + 0x48, 0xbf, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00003a16 movabsq $6148914691236517205, %rdi + 0x48, 0x31, 0xfb, //0x00003a20 xorq %rdi, %rbx + 0x4c, 0x21, 0xd3, //0x00003a23 andq %r10, %rbx + 0x48, 0xf7, 0xd3, //0x00003a26 notq %rbx + 0x49, 0x21, 0xdb, //0x00003a29 andq %rbx, %r11 + 0x48, 0x09, 0xc1, //0x00003a2c orq %rax, %rcx + 0x4d, 0x85, 0xdb, //0x00003a2f testq %r11, %r11 + 0x0f, 0x84, 0x8a, 0xff, 0xff, 0xff, //0x00003a32 je LBB13_9 + 0xe9, 0x16, 0x00, 0x00, 0x00, //0x00003a38 jmp LBB13_13 + //0x00003a3d LBB13_12 + 0x48, 0x89, 0xf7, //0x00003a3d movq %rsi, %rdi + 0x48, 0x2b, 0x7d, 0xd0, //0x00003a40 subq $-48(%rbp), %rdi + 0x4d, 0x0f, 0xbc, 0xf0, //0x00003a44 bsfq %r8, %r14 + 0x49, 0x01, 0xfe, //0x00003a48 addq %rdi, %r14 + 0x4c, 0x89, 0x32, //0x00003a4b movq %r14, (%rdx) + 0xe9, 0x4d, 0xff, 0xff, 0xff, //0x00003a4e jmp LBB13_7 + //0x00003a53 LBB13_13 + 0x49, 0x0f, 0xbc, 0xc3, //0x00003a53 bsfq %r11, %rax + 0x48, 0x85, 0xc9, //0x00003a57 testq %rcx, %rcx + 0x0f, 0x84, 0x25, 0x00, 0x00, 0x00, //0x00003a5a je LBB13_17 + 0x48, 0x0f, 0xbc, 0xc9, //0x00003a60 bsfq %rcx, %rcx + 0x48, 0x2b, 0x75, 0xd0, //0x00003a64 subq $-48(%rbp), %rsi + 0x48, 0x39, 0xc1, //0x00003a68 cmpq %rax, %rcx + 0x0f, 0x82, 0x26, 0x00, 0x00, 0x00, //0x00003a6b jb LBB13_18 + //0x00003a71 LBB13_15 + 0x48, 0x8d, 0x44, 0x06, 0x01, //0x00003a71 leaq $1(%rsi,%rax), %rax + //0x00003a76 LBB13_16 + 0x48, 0x83, 0xc4, 0x08, //0x00003a76 addq $8, %rsp + 0x5b, //0x00003a7a popq %rbx + 0x41, 0x5c, //0x00003a7b popq %r12 + 0x41, 0x5d, //0x00003a7d popq %r13 + 0x41, 0x5e, //0x00003a7f popq %r14 + 0x41, 0x5f, //0x00003a81 popq %r15 + 0x5d, //0x00003a83 popq %rbp + 0xc3, //0x00003a84 retq + //0x00003a85 LBB13_17 + 0xb9, 0x40, 0x00, 0x00, 0x00, //0x00003a85 movl $64, %ecx + 0x48, 0x2b, 0x75, 0xd0, //0x00003a8a subq $-48(%rbp), %rsi + 0x48, 0x39, 0xc1, //0x00003a8e cmpq %rax, %rcx + 0x0f, 0x83, 0xda, 0xff, 0xff, 0xff, //0x00003a91 jae LBB13_15 + //0x00003a97 LBB13_18 + 0x48, 0x01, 0xf1, //0x00003a97 addq %rsi, %rcx + 0x48, 0x89, 0x0a, //0x00003a9a movq %rcx, (%rdx) + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00003a9d movq $-2, %rax + 0xe9, 0xcd, 0xff, 0xff, 0xff, //0x00003aa4 jmp LBB13_16 + //0x00003aa9 LBB13_19 + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00003aa9 movq $-2, %rax + 0x49, 0x83, 0xfe, 0xff, //0x00003ab0 cmpq $-1, %r14 + 0x0f, 0x85, 0xbc, 0xff, 0xff, 0xff, //0x00003ab4 jne LBB13_16 + 0x48, 0x0f, 0xbc, 0xc9, //0x00003aba bsfq %rcx, %rcx + 0x48, 0x2b, 0x75, 0xd0, //0x00003abe subq $-48(%rbp), %rsi + 0x48, 0x01, 0xce, //0x00003ac2 addq %rcx, %rsi + 0x48, 0x89, 0x32, //0x00003ac5 movq %rsi, (%rdx) + 0xe9, 0xa9, 0xff, 0xff, 0xff, //0x00003ac8 jmp LBB13_16 + //0x00003acd LBB13_21 + 0x4d, 0x89, 0xcc, //0x00003acd movq %r9, %r12 + 0x49, 0x83, 0xfc, 0x20, //0x00003ad0 cmpq $32, %r12 + 0x0f, 0x82, 0xff, 0x00, 0x00, 0x00, //0x00003ad4 jb LBB13_34 + //0x00003ada LBB13_22 + 0xf3, 0x0f, 0x6f, 0x06, //0x00003ada movdqu (%rsi), %xmm0 + 0xf3, 0x0f, 0x6f, 0x4e, 0x10, //0x00003ade movdqu $16(%rsi), %xmm1 + 0x66, 0x0f, 0x6f, 0x15, 0xf5, 0xfc, 0xff, 0xff, //0x00003ae3 movdqa $-779(%rip), %xmm2 /* LCPI13_0+0(%rip) */ + 0x66, 0x0f, 0x6f, 0xd8, //0x00003aeb movdqa %xmm0, %xmm3 + 0x66, 0x0f, 0x74, 0xda, //0x00003aef pcmpeqb %xmm2, %xmm3 + 0x66, 0x44, 0x0f, 0xd7, 0xc3, //0x00003af3 pmovmskb %xmm3, %r8d + 0x66, 0x0f, 0x74, 0xd1, //0x00003af8 pcmpeqb %xmm1, %xmm2 + 0x66, 0x0f, 0xd7, 0xda, //0x00003afc pmovmskb %xmm2, %ebx + 0x66, 0x0f, 0x6f, 0x15, 0xe8, 0xfc, 0xff, 0xff, //0x00003b00 movdqa $-792(%rip), %xmm2 /* LCPI13_1+0(%rip) */ + 0x66, 0x0f, 0x6f, 0xd8, //0x00003b08 movdqa %xmm0, %xmm3 + 0x66, 0x0f, 0x74, 0xda, //0x00003b0c pcmpeqb %xmm2, %xmm3 + 0x66, 0x0f, 0xd7, 0xcb, //0x00003b10 pmovmskb %xmm3, %ecx + 0x66, 0x0f, 0x74, 0xd1, //0x00003b14 pcmpeqb %xmm1, %xmm2 + 0x66, 0x0f, 0xd7, 0xc2, //0x00003b18 pmovmskb %xmm2, %eax + 0x66, 0x0f, 0x6f, 0x15, 0xdc, 0xfc, 0xff, 0xff, //0x00003b1c movdqa $-804(%rip), %xmm2 /* LCPI13_2+0(%rip) */ + 0x66, 0x0f, 0x6f, 0xda, //0x00003b24 movdqa %xmm2, %xmm3 + 0x66, 0x0f, 0x64, 0xd8, //0x00003b28 pcmpgtb %xmm0, %xmm3 + 0x66, 0x0f, 0x76, 0xe4, //0x00003b2c pcmpeqd %xmm4, %xmm4 + 0x66, 0x0f, 0x64, 0xc4, //0x00003b30 pcmpgtb %xmm4, %xmm0 + 0x66, 0x0f, 0xdb, 0xc3, //0x00003b34 pand %xmm3, %xmm0 + 0x66, 0x44, 0x0f, 0xd7, 0xc8, //0x00003b38 pmovmskb %xmm0, %r9d + 0x66, 0x0f, 0x64, 0xd1, //0x00003b3d pcmpgtb %xmm1, %xmm2 + 0x66, 0x0f, 0x64, 0xcc, //0x00003b41 pcmpgtb %xmm4, %xmm1 + 0x66, 0x0f, 0xdb, 0xca, //0x00003b45 pand %xmm2, %xmm1 + 0x66, 0x0f, 0xd7, 0xf9, //0x00003b49 pmovmskb %xmm1, %edi + 0x48, 0xc1, 0xe3, 0x10, //0x00003b4d shlq $16, %rbx + 0x48, 0xc1, 0xe0, 0x10, //0x00003b51 shlq $16, %rax + 0x48, 0x09, 0xc1, //0x00003b55 orq %rax, %rcx + 0x49, 0x83, 0xfe, 0xff, //0x00003b58 cmpq $-1, %r14 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00003b5c jne LBB13_24 + 0x48, 0x85, 0xc9, //0x00003b62 testq %rcx, %rcx + 0x0f, 0x85, 0x64, 0x01, 0x00, 0x00, //0x00003b65 jne LBB13_49 + //0x00003b6b LBB13_24 + 0x48, 0xc1, 0xe7, 0x10, //0x00003b6b shlq $16, %rdi + 0x4c, 0x09, 0xc3, //0x00003b6f orq %r8, %rbx + 0x48, 0x89, 0xc8, //0x00003b72 movq %rcx, %rax + 0x4c, 0x09, 0xf8, //0x00003b75 orq %r15, %rax + 0x0f, 0x85, 0x06, 0x01, 0x00, 0x00, //0x00003b78 jne LBB13_47 + //0x00003b7e LBB13_25 + 0x4c, 0x09, 0xcf, //0x00003b7e orq %r9, %rdi + 0xb8, 0x40, 0x00, 0x00, 0x00, //0x00003b81 movl $64, %eax + 0xb9, 0x40, 0x00, 0x00, 0x00, //0x00003b86 movl $64, %ecx + 0x48, 0x85, 0xdb, //0x00003b8b testq %rbx, %rbx + 0x0f, 0x84, 0x04, 0x00, 0x00, 0x00, //0x00003b8e je LBB13_27 + 0x48, 0x0f, 0xbc, 0xcb, //0x00003b94 bsfq %rbx, %rcx + //0x00003b98 LBB13_27 + 0x4c, 0x0f, 0xbc, 0xcf, //0x00003b98 bsfq %rdi, %r9 + 0x48, 0x85, 0xff, //0x00003b9c testq %rdi, %rdi + 0x0f, 0x84, 0x03, 0x00, 0x00, 0x00, //0x00003b9f je LBB13_29 + 0x4c, 0x89, 0xc8, //0x00003ba5 movq %r9, %rax + //0x00003ba8 LBB13_29 + 0x48, 0x85, 0xdb, //0x00003ba8 testq %rbx, %rbx + 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x00003bab je LBB13_32 + 0x48, 0x2b, 0x75, 0xd0, //0x00003bb1 subq $-48(%rbp), %rsi + 0x48, 0x39, 0xc8, //0x00003bb5 cmpq %rcx, %rax + 0x0f, 0x82, 0xff, 0x00, 0x00, 0x00, //0x00003bb8 jb LBB13_48 + 0x48, 0x8d, 0x44, 0x0e, 0x01, //0x00003bbe leaq $1(%rsi,%rcx), %rax + 0xe9, 0xae, 0xfe, 0xff, 0xff, //0x00003bc3 jmp LBB13_16 + //0x00003bc8 LBB13_32 + 0x48, 0x85, 0xff, //0x00003bc8 testq %rdi, %rdi + 0x0f, 0x85, 0x14, 0x01, 0x00, 0x00, //0x00003bcb jne LBB13_50 + 0x48, 0x83, 0xc6, 0x20, //0x00003bd1 addq $32, %rsi + 0x49, 0x83, 0xc4, 0xe0, //0x00003bd5 addq $-32, %r12 + //0x00003bd9 LBB13_34 + 0x4d, 0x85, 0xff, //0x00003bd9 testq %r15, %r15 + 0x0f, 0x85, 0x0f, 0x01, 0x00, 0x00, //0x00003bdc jne LBB13_51 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00003be2 movq $-1, %rax + 0x4d, 0x85, 0xe4, //0x00003be9 testq %r12, %r12 + 0x0f, 0x84, 0x84, 0xfe, 0xff, 0xff, //0x00003bec je LBB13_16 + //0x00003bf2 LBB13_36 + 0x0f, 0xb6, 0x0e, //0x00003bf2 movzbl (%rsi), %ecx + 0x80, 0xf9, 0x22, //0x00003bf5 cmpb $34, %cl + 0x0f, 0x84, 0x5e, 0x00, 0x00, 0x00, //0x00003bf8 je LBB13_44 + 0x80, 0xf9, 0x5c, //0x00003bfe cmpb $92, %cl + 0x0f, 0x84, 0x26, 0x00, 0x00, 0x00, //0x00003c01 je LBB13_41 + 0x80, 0xf9, 0x1f, //0x00003c07 cmpb $31, %cl + 0x0f, 0x86, 0x28, 0x01, 0x00, 0x00, //0x00003c0a jbe LBB13_55 + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00003c10 movq $-1, %rcx + 0xbf, 0x01, 0x00, 0x00, 0x00, //0x00003c17 movl $1, %edi + //0x00003c1c LBB13_40 + 0x48, 0x01, 0xfe, //0x00003c1c addq %rdi, %rsi + 0x49, 0x01, 0xcc, //0x00003c1f addq %rcx, %r12 + 0x0f, 0x85, 0xca, 0xff, 0xff, 0xff, //0x00003c22 jne LBB13_36 + 0xe9, 0x49, 0xfe, 0xff, 0xff, //0x00003c28 jmp LBB13_16 + //0x00003c2d LBB13_41 + 0x49, 0x83, 0xfc, 0x01, //0x00003c2d cmpq $1, %r12 + 0x0f, 0x84, 0x3f, 0xfe, 0xff, 0xff, //0x00003c31 je LBB13_16 + 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x00003c37 movq $-2, %rcx + 0xbf, 0x02, 0x00, 0x00, 0x00, //0x00003c3e movl $2, %edi + 0x49, 0x83, 0xfe, 0xff, //0x00003c43 cmpq $-1, %r14 + 0x0f, 0x85, 0xcf, 0xff, 0xff, 0xff, //0x00003c47 jne LBB13_40 + 0x49, 0x89, 0xf6, //0x00003c4d movq %rsi, %r14 + 0x4c, 0x2b, 0x75, 0xd0, //0x00003c50 subq $-48(%rbp), %r14 + 0x4c, 0x89, 0x32, //0x00003c54 movq %r14, (%rdx) + 0xe9, 0xc0, 0xff, 0xff, 0xff, //0x00003c57 jmp LBB13_40 + //0x00003c5c LBB13_44 + 0x48, 0x2b, 0x75, 0xd0, //0x00003c5c subq $-48(%rbp), %rsi + 0x48, 0xff, 0xc6, //0x00003c60 incq %rsi + 0x48, 0x89, 0xf0, //0x00003c63 movq %rsi, %rax + 0xe9, 0x0b, 0xfe, 0xff, 0xff, //0x00003c66 jmp LBB13_16 + //0x00003c6b LBB13_46 + 0x49, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x00003c6b movq $-1, %r14 + 0x45, 0x31, 0xff, //0x00003c72 xorl %r15d, %r15d + 0x49, 0x83, 0xfc, 0x20, //0x00003c75 cmpq $32, %r12 + 0x0f, 0x83, 0x5b, 0xfe, 0xff, 0xff, //0x00003c79 jae LBB13_22 + 0xe9, 0x55, 0xff, 0xff, 0xff, //0x00003c7f jmp LBB13_34 + //0x00003c84 LBB13_47 + 0x45, 0x89, 0xfa, //0x00003c84 movl %r15d, %r10d + 0x41, 0xf7, 0xd2, //0x00003c87 notl %r10d + 0x41, 0x21, 0xca, //0x00003c8a andl %ecx, %r10d + 0x47, 0x8d, 0x04, 0x12, //0x00003c8d leal (%r10,%r10), %r8d + 0x45, 0x09, 0xf8, //0x00003c91 orl %r15d, %r8d + 0x44, 0x89, 0xc0, //0x00003c94 movl %r8d, %eax + 0xf7, 0xd0, //0x00003c97 notl %eax + 0x21, 0xc8, //0x00003c99 andl %ecx, %eax + 0x25, 0xaa, 0xaa, 0xaa, 0xaa, //0x00003c9b andl $-1431655766, %eax + 0x45, 0x31, 0xff, //0x00003ca0 xorl %r15d, %r15d + 0x44, 0x01, 0xd0, //0x00003ca3 addl %r10d, %eax + 0x41, 0x0f, 0x92, 0xc7, //0x00003ca6 setb %r15b + 0x01, 0xc0, //0x00003caa addl %eax, %eax + 0x35, 0x55, 0x55, 0x55, 0x55, //0x00003cac xorl $1431655765, %eax + 0x44, 0x21, 0xc0, //0x00003cb1 andl %r8d, %eax + 0xf7, 0xd0, //0x00003cb4 notl %eax + 0x21, 0xc3, //0x00003cb6 andl %eax, %ebx + 0xe9, 0xc1, 0xfe, 0xff, 0xff, //0x00003cb8 jmp LBB13_25 + //0x00003cbd LBB13_48 + 0x48, 0x01, 0xf0, //0x00003cbd addq %rsi, %rax + 0x48, 0x89, 0x02, //0x00003cc0 movq %rax, (%rdx) + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00003cc3 movq $-2, %rax + 0xe9, 0xa7, 0xfd, 0xff, 0xff, //0x00003cca jmp LBB13_16 + //0x00003ccf LBB13_49 + 0x48, 0x89, 0xf0, //0x00003ccf movq %rsi, %rax + 0x48, 0x2b, 0x45, 0xd0, //0x00003cd2 subq $-48(%rbp), %rax + 0x4c, 0x0f, 0xbc, 0xf1, //0x00003cd6 bsfq %rcx, %r14 + 0x49, 0x01, 0xc6, //0x00003cda addq %rax, %r14 + 0x4c, 0x89, 0x32, //0x00003cdd movq %r14, (%rdx) + 0xe9, 0x86, 0xfe, 0xff, 0xff, //0x00003ce0 jmp LBB13_24 + //0x00003ce5 LBB13_50 + 0x48, 0x2b, 0x75, 0xd0, //0x00003ce5 subq $-48(%rbp), %rsi + 0x4c, 0x01, 0xce, //0x00003ce9 addq %r9, %rsi + 0xe9, 0x4b, 0x00, 0x00, 0x00, //0x00003cec jmp LBB13_56 + //0x00003cf1 LBB13_51 + 0x4d, 0x85, 0xe4, //0x00003cf1 testq %r12, %r12 + 0x0f, 0x84, 0x32, 0x00, 0x00, 0x00, //0x00003cf4 je LBB13_45 + 0x49, 0x83, 0xfe, 0xff, //0x00003cfa cmpq $-1, %r14 + 0x0f, 0x85, 0x0d, 0x00, 0x00, 0x00, //0x00003cfe jne LBB13_54 + 0x4c, 0x8b, 0x75, 0xd0, //0x00003d04 movq $-48(%rbp), %r14 + 0x49, 0xf7, 0xd6, //0x00003d08 notq %r14 + 0x49, 0x01, 0xf6, //0x00003d0b addq %rsi, %r14 + 0x4c, 0x89, 0x32, //0x00003d0e movq %r14, (%rdx) + //0x00003d11 LBB13_54 + 0x48, 0xff, 0xc6, //0x00003d11 incq %rsi + 0x49, 0xff, 0xcc, //0x00003d14 decq %r12 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00003d17 movq $-1, %rax + 0x4d, 0x85, 0xe4, //0x00003d1e testq %r12, %r12 + 0x0f, 0x85, 0xcb, 0xfe, 0xff, 0xff, //0x00003d21 jne LBB13_36 + 0xe9, 0x4a, 0xfd, 0xff, 0xff, //0x00003d27 jmp LBB13_16 + //0x00003d2c LBB13_45 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00003d2c movq $-1, %rax + 0xe9, 0x3e, 0xfd, 0xff, 0xff, //0x00003d33 jmp LBB13_16 + //0x00003d38 LBB13_55 + 0x48, 0x2b, 0x75, 0xd0, //0x00003d38 subq $-48(%rbp), %rsi + //0x00003d3c LBB13_56 + 0x48, 0x89, 0x32, //0x00003d3c movq %rsi, (%rdx) + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00003d3f movq $-2, %rax + 0xe9, 0x2b, 0xfd, 0xff, 0xff, //0x00003d46 jmp LBB13_16 + 0x00, 0x00, 0x00, 0x00, 0x00, //0x00003d4b .p2align 4, 0x00 + //0x00003d50 LCPI14_0 + 0x00, 0x00, 0x30, 0x43, //0x00003d50 .long 1127219200 + 0x00, 0x00, 0x30, 0x45, //0x00003d54 .long 1160773632 + 0x00, 0x00, 0x00, 0x00, //0x00003d58 .long 0 + 0x00, 0x00, 0x00, 0x00, //0x00003d5c .long 0 + //0x00003d60 LCPI14_1 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x43, //0x00003d60 .quad 4841369599423283200 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x45, //0x00003d68 .quad 4985484787499139072 + //0x00003d70 .p2align 3, 0x00 + //0x00003d70 LCPI14_2 + 0x00, 0x00, 0x34, 0x26, 0xf5, 0x6b, 0x0c, 0x43, //0x00003d70 .quad 4831355200913801216 + //0x00003d78 LCPI14_3 + 0x00, 0x00, 0x34, 0x26, 0xf5, 0x6b, 0x0c, 0xc3, //0x00003d78 .quad -4392016835940974592 + //0x00003d80 .p2align 4, 0x90 + //0x00003d80 _vnumber + 0x55, //0x00003d80 pushq %rbp + 0x48, 0x89, 0xe5, //0x00003d81 movq %rsp, %rbp + 0x41, 0x57, //0x00003d84 pushq %r15 + 0x41, 0x56, //0x00003d86 pushq %r14 + 0x41, 0x55, //0x00003d88 pushq %r13 + 0x41, 0x54, //0x00003d8a pushq %r12 + 0x53, //0x00003d8c pushq %rbx + 0x48, 0x83, 0xec, 0x38, //0x00003d8d subq $56, %rsp + 0x48, 0x89, 0xd3, //0x00003d91 movq %rdx, %rbx + 0x49, 0x89, 0xf6, //0x00003d94 movq %rsi, %r14 + 0x48, 0xc7, 0x45, 0xd0, 0x00, 0x00, 0x00, 0x00, //0x00003d97 movq $0, $-48(%rbp) + 0x48, 0x8b, 0x06, //0x00003d9f movq (%rsi), %rax + 0x4c, 0x8b, 0x3f, //0x00003da2 movq (%rdi), %r15 + 0x4c, 0x8b, 0x6f, 0x08, //0x00003da5 movq $8(%rdi), %r13 + 0x4c, 0x8b, 0x52, 0x20, //0x00003da9 movq $32(%rdx), %r10 + 0x4c, 0x8b, 0x5a, 0x28, //0x00003dad movq $40(%rdx), %r11 + 0x48, 0xc7, 0x02, 0x09, 0x00, 0x00, 0x00, //0x00003db1 movq $9, (%rdx) + 0x48, 0xc7, 0x42, 0x08, 0x00, 0x00, 0x00, 0x00, //0x00003db8 movq $0, $8(%rdx) + 0x48, 0xc7, 0x42, 0x10, 0x00, 0x00, 0x00, 0x00, //0x00003dc0 movq $0, $16(%rdx) + 0x48, 0x8b, 0x0e, //0x00003dc8 movq (%rsi), %rcx + 0x48, 0x89, 0x4a, 0x18, //0x00003dcb movq %rcx, $24(%rdx) + 0x4c, 0x39, 0xe8, //0x00003dcf cmpq %r13, %rax + 0x0f, 0x83, 0xc1, 0x02, 0x00, 0x00, //0x00003dd2 jae LBB14_52 + 0x41, 0x8a, 0x3c, 0x07, //0x00003dd8 movb (%r15,%rax), %dil + 0x41, 0xb9, 0x01, 0x00, 0x00, 0x00, //0x00003ddc movl $1, %r9d + 0x40, 0x80, 0xff, 0x2d, //0x00003de2 cmpb $45, %dil + 0x0f, 0x85, 0x16, 0x00, 0x00, 0x00, //0x00003de6 jne LBB14_4 + 0x48, 0xff, 0xc0, //0x00003dec incq %rax + 0x4c, 0x39, 0xe8, //0x00003def cmpq %r13, %rax + 0x0f, 0x83, 0xa1, 0x02, 0x00, 0x00, //0x00003df2 jae LBB14_52 + 0x41, 0x8a, 0x3c, 0x07, //0x00003df8 movb (%r15,%rax), %dil + 0x41, 0xb9, 0xff, 0xff, 0xff, 0xff, //0x00003dfc movl $-1, %r9d + //0x00003e02 LBB14_4 + 0x8d, 0x4f, 0xd0, //0x00003e02 leal $-48(%rdi), %ecx + 0x80, 0xf9, 0x0a, //0x00003e05 cmpb $10, %cl + 0x0f, 0x82, 0x0f, 0x00, 0x00, 0x00, //0x00003e08 jb LBB14_6 + //0x00003e0e LBB14_5 + 0x49, 0x89, 0x06, //0x00003e0e movq %rax, (%r14) + 0x48, 0xc7, 0x03, 0xfe, 0xff, 0xff, 0xff, //0x00003e11 movq $-2, (%rbx) + 0xe9, 0x86, 0x02, 0x00, 0x00, //0x00003e18 jmp LBB14_53 + //0x00003e1d LBB14_6 + 0x40, 0x80, 0xff, 0x30, //0x00003e1d cmpb $48, %dil + 0x0f, 0x85, 0x35, 0x00, 0x00, 0x00, //0x00003e21 jne LBB14_10 + 0x48, 0x8d, 0x70, 0x01, //0x00003e27 leaq $1(%rax), %rsi + 0x4c, 0x39, 0xe8, //0x00003e2b cmpq %r13, %rax + 0x0f, 0x83, 0x9d, 0x00, 0x00, 0x00, //0x00003e2e jae LBB14_19 + 0x41, 0x8a, 0x14, 0x37, //0x00003e34 movb (%r15,%rsi), %dl + 0x80, 0xc2, 0xd2, //0x00003e38 addb $-46, %dl + 0x80, 0xfa, 0x37, //0x00003e3b cmpb $55, %dl + 0x0f, 0x87, 0x8d, 0x00, 0x00, 0x00, //0x00003e3e ja LBB14_19 + 0x44, 0x0f, 0xb6, 0xc2, //0x00003e44 movzbl %dl, %r8d + 0x48, 0xba, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, //0x00003e48 movabsq $36028797027352577, %rdx + 0x4c, 0x0f, 0xa3, 0xc2, //0x00003e52 btq %r8, %rdx + 0x0f, 0x83, 0x75, 0x00, 0x00, 0x00, //0x00003e56 jae LBB14_19 + //0x00003e5c LBB14_10 + 0x4c, 0x39, 0xe8, //0x00003e5c cmpq %r13, %rax + 0x0f, 0x83, 0x60, 0x00, 0x00, 0x00, //0x00003e5f jae LBB14_18 + 0x80, 0xf9, 0x09, //0x00003e65 cmpb $9, %cl + 0x0f, 0x87, 0x6b, 0x00, 0x00, 0x00, //0x00003e68 ja LBB14_20 + 0x4d, 0x8d, 0x45, 0xff, //0x00003e6e leaq $-1(%r13), %r8 + 0x31, 0xc9, //0x00003e72 xorl %ecx, %ecx + 0x31, 0xf6, //0x00003e74 xorl %esi, %esi + 0x45, 0x31, 0xe4, //0x00003e76 xorl %r12d, %r12d + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003e79 .p2align 4, 0x90 + //0x00003e80 LBB14_13 + 0x83, 0xfe, 0x12, //0x00003e80 cmpl $18, %esi + 0x0f, 0x8f, 0x17, 0x00, 0x00, 0x00, //0x00003e83 jg LBB14_15 + 0x48, 0x0f, 0xbe, 0xff, //0x00003e89 movsbq %dil, %rdi + 0x4b, 0x8d, 0x14, 0xa4, //0x00003e8d leaq (%r12,%r12,4), %rdx + 0x4c, 0x8d, 0x64, 0x57, 0xd0, //0x00003e91 leaq $-48(%rdi,%rdx,2), %r12 + 0xff, 0xc6, //0x00003e96 incl %esi + 0xe9, 0x05, 0x00, 0x00, 0x00, //0x00003e98 jmp LBB14_16 + 0x90, 0x90, 0x90, //0x00003e9d .p2align 4, 0x90 + //0x00003ea0 LBB14_15 + 0xff, 0xc1, //0x00003ea0 incl %ecx + //0x00003ea2 LBB14_16 + 0x49, 0x39, 0xc0, //0x00003ea2 cmpq %rax, %r8 + 0x0f, 0x84, 0x7d, 0x00, 0x00, 0x00, //0x00003ea5 je LBB14_24 + 0x41, 0x0f, 0xb6, 0x7c, 0x07, 0x01, //0x00003eab movzbl $1(%r15,%rax), %edi + 0x48, 0xff, 0xc0, //0x00003eb1 incq %rax + 0x8d, 0x57, 0xd0, //0x00003eb4 leal $-48(%rdi), %edx + 0x80, 0xfa, 0x0a, //0x00003eb7 cmpb $10, %dl + 0x0f, 0x82, 0xc0, 0xff, 0xff, 0xff, //0x00003eba jb LBB14_13 + 0xe9, 0x1b, 0x00, 0x00, 0x00, //0x00003ec0 jmp LBB14_21 + //0x00003ec5 LBB14_18 + 0x31, 0xc9, //0x00003ec5 xorl %ecx, %ecx + 0x31, 0xf6, //0x00003ec7 xorl %esi, %esi + 0x45, 0x31, 0xe4, //0x00003ec9 xorl %r12d, %r12d + 0xe9, 0x5a, 0x00, 0x00, 0x00, //0x00003ecc jmp LBB14_25 + //0x00003ed1 LBB14_19 + 0x49, 0x89, 0x36, //0x00003ed1 movq %rsi, (%r14) + 0xe9, 0xca, 0x01, 0x00, 0x00, //0x00003ed4 jmp LBB14_53 + //0x00003ed9 LBB14_20 + 0x45, 0x31, 0xe4, //0x00003ed9 xorl %r12d, %r12d + 0x31, 0xf6, //0x00003edc xorl %esi, %esi + 0x31, 0xc9, //0x00003ede xorl %ecx, %ecx + //0x00003ee0 LBB14_21 + 0x31, 0xd2, //0x00003ee0 xorl %edx, %edx + 0x85, 0xc9, //0x00003ee2 testl %ecx, %ecx + 0x0f, 0x9f, 0xc2, //0x00003ee4 setg %dl + 0x89, 0x55, 0xcc, //0x00003ee7 movl %edx, $-52(%rbp) + 0x41, 0xb8, 0x09, 0x00, 0x00, 0x00, //0x00003eea movl $9, %r8d + 0x40, 0x80, 0xff, 0x2e, //0x00003ef0 cmpb $46, %dil + 0x0f, 0x85, 0x41, 0x00, 0x00, 0x00, //0x00003ef4 jne LBB14_26 + 0x48, 0xff, 0xc0, //0x00003efa incq %rax + 0x48, 0xc7, 0x03, 0x08, 0x00, 0x00, 0x00, //0x00003efd movq $8, (%rbx) + 0x4c, 0x39, 0xe8, //0x00003f04 cmpq %r13, %rax + 0x0f, 0x83, 0x8c, 0x01, 0x00, 0x00, //0x00003f07 jae LBB14_52 + 0x41, 0x8a, 0x14, 0x07, //0x00003f0d movb (%r15,%rax), %dl + 0x80, 0xc2, 0xd0, //0x00003f11 addb $-48, %dl + 0x41, 0xb8, 0x08, 0x00, 0x00, 0x00, //0x00003f14 movl $8, %r8d + 0x80, 0xfa, 0x0a, //0x00003f1a cmpb $10, %dl + 0x0f, 0x83, 0xeb, 0xfe, 0xff, 0xff, //0x00003f1d jae LBB14_5 + 0xe9, 0x13, 0x00, 0x00, 0x00, //0x00003f23 jmp LBB14_26 + //0x00003f28 LBB14_24 + 0x4c, 0x89, 0xe8, //0x00003f28 movq %r13, %rax + //0x00003f2b LBB14_25 + 0x31, 0xd2, //0x00003f2b xorl %edx, %edx + 0x85, 0xc9, //0x00003f2d testl %ecx, %ecx + 0x0f, 0x9f, 0xc2, //0x00003f2f setg %dl + 0x89, 0x55, 0xcc, //0x00003f32 movl %edx, $-52(%rbp) + 0x41, 0xb8, 0x09, 0x00, 0x00, 0x00, //0x00003f35 movl $9, %r8d + //0x00003f3b LBB14_26 + 0x85, 0xc9, //0x00003f3b testl %ecx, %ecx + 0x0f, 0x85, 0x4f, 0x00, 0x00, 0x00, //0x00003f3d jne LBB14_35 + 0x4d, 0x85, 0xe4, //0x00003f43 testq %r12, %r12 + 0x0f, 0x85, 0x46, 0x00, 0x00, 0x00, //0x00003f46 jne LBB14_35 + 0x4c, 0x39, 0xe8, //0x00003f4c cmpq %r13, %rax + 0x0f, 0x83, 0x36, 0x00, 0x00, 0x00, //0x00003f4f jae LBB14_33 + 0x89, 0xc7, //0x00003f55 movl %eax, %edi + 0x44, 0x29, 0xef, //0x00003f57 subl %r13d, %edi + 0x31, 0xf6, //0x00003f5a xorl %esi, %esi + 0x31, 0xc9, //0x00003f5c xorl %ecx, %ecx + 0x90, 0x90, //0x00003f5e .p2align 4, 0x90 + //0x00003f60 LBB14_30 + 0x41, 0x80, 0x3c, 0x07, 0x30, //0x00003f60 cmpb $48, (%r15,%rax) + 0x0f, 0x85, 0x24, 0x00, 0x00, 0x00, //0x00003f65 jne LBB14_34 + 0x48, 0xff, 0xc0, //0x00003f6b incq %rax + 0xff, 0xc9, //0x00003f6e decl %ecx + 0x49, 0x39, 0xc5, //0x00003f70 cmpq %rax, %r13 + 0x0f, 0x85, 0xe7, 0xff, 0xff, 0xff, //0x00003f73 jne LBB14_30 + 0x45, 0x31, 0xe4, //0x00003f79 xorl %r12d, %r12d + 0x41, 0x83, 0xf8, 0x09, //0x00003f7c cmpl $9, %r8d + 0x0f, 0x84, 0x3b, 0x01, 0x00, 0x00, //0x00003f80 je LBB14_55 + 0xe9, 0x6a, 0x01, 0x00, 0x00, //0x00003f86 jmp LBB14_59 + //0x00003f8b LBB14_33 + 0x31, 0xc9, //0x00003f8b xorl %ecx, %ecx + 0x31, 0xf6, //0x00003f8d xorl %esi, %esi + //0x00003f8f LBB14_34 + 0x45, 0x31, 0xe4, //0x00003f8f xorl %r12d, %r12d + //0x00003f92 LBB14_35 + 0x4c, 0x39, 0xe8, //0x00003f92 cmpq %r13, %rax + 0x0f, 0x83, 0x4b, 0x00, 0x00, 0x00, //0x00003f95 jae LBB14_40 + 0x83, 0xfe, 0x12, //0x00003f9b cmpl $18, %esi + 0x0f, 0x8f, 0x42, 0x00, 0x00, 0x00, //0x00003f9e jg LBB14_40 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003fa4 .p2align 4, 0x90 + //0x00003fb0 LBB14_37 + 0x41, 0x0f, 0xb6, 0x3c, 0x07, //0x00003fb0 movzbl (%r15,%rax), %edi + 0x8d, 0x57, 0xd0, //0x00003fb5 leal $-48(%rdi), %edx + 0x80, 0xfa, 0x09, //0x00003fb8 cmpb $9, %dl + 0x0f, 0x87, 0x25, 0x00, 0x00, 0x00, //0x00003fbb ja LBB14_40 + 0x4b, 0x8d, 0x14, 0xa4, //0x00003fc1 leaq (%r12,%r12,4), %rdx + 0x4c, 0x8d, 0x64, 0x57, 0xd0, //0x00003fc5 leaq $-48(%rdi,%rdx,2), %r12 + 0xff, 0xc9, //0x00003fca decl %ecx + 0x48, 0xff, 0xc0, //0x00003fcc incq %rax + 0x4c, 0x39, 0xe8, //0x00003fcf cmpq %r13, %rax + 0x0f, 0x83, 0x0e, 0x00, 0x00, 0x00, //0x00003fd2 jae LBB14_40 + 0x8d, 0x56, 0x01, //0x00003fd8 leal $1(%rsi), %edx + 0x83, 0xfe, 0x12, //0x00003fdb cmpl $18, %esi + 0x89, 0xd6, //0x00003fde movl %edx, %esi + 0x0f, 0x8c, 0xca, 0xff, 0xff, 0xff, //0x00003fe0 jl LBB14_37 + //0x00003fe6 LBB14_40 + 0x4c, 0x39, 0xe8, //0x00003fe6 cmpq %r13, %rax + 0x0f, 0x83, 0xc3, 0x00, 0x00, 0x00, //0x00003fe9 jae LBB14_54 + 0x41, 0x8a, 0x34, 0x07, //0x00003fef movb (%r15,%rax), %sil + 0x8d, 0x56, 0xd0, //0x00003ff3 leal $-48(%rsi), %edx + 0x80, 0xfa, 0x09, //0x00003ff6 cmpb $9, %dl + 0x0f, 0x87, 0x36, 0x00, 0x00, 0x00, //0x00003ff9 ja LBB14_46 + 0x49, 0x8d, 0x7d, 0xff, //0x00003fff leaq $-1(%r13), %rdi + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00004003 .p2align 4, 0x90 + //0x00004010 LBB14_43 + 0x48, 0x39, 0xc7, //0x00004010 cmpq %rax, %rdi + 0x0f, 0x84, 0x42, 0x02, 0x00, 0x00, //0x00004013 je LBB14_76 + 0x41, 0x0f, 0xb6, 0x74, 0x07, 0x01, //0x00004019 movzbl $1(%r15,%rax), %esi + 0x48, 0xff, 0xc0, //0x0000401f incq %rax + 0x8d, 0x56, 0xd0, //0x00004022 leal $-48(%rsi), %edx + 0x80, 0xfa, 0x09, //0x00004025 cmpb $9, %dl + 0x0f, 0x86, 0xe2, 0xff, 0xff, 0xff, //0x00004028 jbe LBB14_43 + 0xc7, 0x45, 0xcc, 0x01, 0x00, 0x00, 0x00, //0x0000402e movl $1, $-52(%rbp) + //0x00004035 LBB14_46 + 0x40, 0x80, 0xce, 0x20, //0x00004035 orb $32, %sil + 0x40, 0x80, 0xfe, 0x65, //0x00004039 cmpb $101, %sil + 0x0f, 0x85, 0x6f, 0x00, 0x00, 0x00, //0x0000403d jne LBB14_54 + 0x48, 0x8d, 0x78, 0x01, //0x00004043 leaq $1(%rax), %rdi + 0x48, 0xc7, 0x03, 0x08, 0x00, 0x00, 0x00, //0x00004047 movq $8, (%rbx) + 0x4c, 0x39, 0xef, //0x0000404e cmpq %r13, %rdi + 0x0f, 0x83, 0x42, 0x00, 0x00, 0x00, //0x00004051 jae LBB14_52 + 0x41, 0x8a, 0x34, 0x3f, //0x00004057 movb (%r15,%rdi), %sil + 0x40, 0x80, 0xfe, 0x2d, //0x0000405b cmpb $45, %sil + 0x0f, 0x84, 0x10, 0x00, 0x00, 0x00, //0x0000405f je LBB14_50 + 0x41, 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00004065 movl $1, %r8d + 0x40, 0x80, 0xfe, 0x2b, //0x0000406b cmpb $43, %sil + 0x0f, 0x85, 0x98, 0x02, 0x00, 0x00, //0x0000406f jne LBB14_85 + //0x00004075 LBB14_50 + 0x48, 0x83, 0xc0, 0x02, //0x00004075 addq $2, %rax + 0x4c, 0x39, 0xe8, //0x00004079 cmpq %r13, %rax + 0x0f, 0x83, 0x17, 0x00, 0x00, 0x00, //0x0000407c jae LBB14_52 + 0x31, 0xd2, //0x00004082 xorl %edx, %edx + 0x40, 0x80, 0xfe, 0x2b, //0x00004084 cmpb $43, %sil + 0x0f, 0x94, 0xc2, //0x00004088 sete %dl + 0x44, 0x8d, 0x44, 0x12, 0xff, //0x0000408b leal $-1(%rdx,%rdx), %r8d + 0x41, 0x8a, 0x34, 0x07, //0x00004090 movb (%r15,%rax), %sil + 0xe9, 0x77, 0x02, 0x00, 0x00, //0x00004094 jmp LBB14_86 + //0x00004099 LBB14_52 + 0x4d, 0x89, 0x2e, //0x00004099 movq %r13, (%r14) + 0x48, 0xc7, 0x03, 0xff, 0xff, 0xff, 0xff, //0x0000409c movq $-1, (%rbx) + //0x000040a3 LBB14_53 + 0x48, 0x83, 0xc4, 0x38, //0x000040a3 addq $56, %rsp + 0x5b, //0x000040a7 popq %rbx + 0x41, 0x5c, //0x000040a8 popq %r12 + 0x41, 0x5d, //0x000040aa popq %r13 + 0x41, 0x5e, //0x000040ac popq %r14 + 0x41, 0x5f, //0x000040ae popq %r15 + 0x5d, //0x000040b0 popq %rbp + 0xc3, //0x000040b1 retq + //0x000040b2 LBB14_54 + 0x89, 0xcf, //0x000040b2 movl %ecx, %edi + 0x49, 0x89, 0xc5, //0x000040b4 movq %rax, %r13 + 0x41, 0x83, 0xf8, 0x09, //0x000040b7 cmpl $9, %r8d + 0x0f, 0x85, 0x34, 0x00, 0x00, 0x00, //0x000040bb jne LBB14_59 + //0x000040c1 LBB14_55 + 0x85, 0xff, //0x000040c1 testl %edi, %edi + 0x0f, 0x85, 0x25, 0x00, 0x00, 0x00, //0x000040c3 jne LBB14_58 + 0x48, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x000040c9 movabsq $-9223372036854775808, %rax + 0x49, 0x63, 0xc9, //0x000040d3 movslq %r9d, %rcx + 0x4d, 0x85, 0xe4, //0x000040d6 testq %r12, %r12 + 0x0f, 0x89, 0xbc, 0x01, 0x00, 0x00, //0x000040d9 jns LBB14_80 + 0x4c, 0x89, 0xe2, //0x000040df movq %r12, %rdx + 0x48, 0x21, 0xca, //0x000040e2 andq %rcx, %rdx + 0x48, 0x39, 0xc2, //0x000040e5 cmpq %rax, %rdx + 0x0f, 0x84, 0xad, 0x01, 0x00, 0x00, //0x000040e8 je LBB14_80 + //0x000040ee LBB14_58 + 0x48, 0xc7, 0x03, 0x08, 0x00, 0x00, 0x00, //0x000040ee movq $8, (%rbx) + //0x000040f5 LBB14_59 + 0x48, 0xc7, 0x45, 0xc0, 0x00, 0x00, 0x00, 0x00, //0x000040f5 movq $0, $-64(%rbp) + 0x66, 0x49, 0x0f, 0x6e, 0xcc, //0x000040fd movq %r12, %xmm1 + 0x66, 0x0f, 0x62, 0x0d, 0x46, 0xfc, 0xff, 0xff, //0x00004102 punpckldq $-954(%rip), %xmm1 /* LCPI14_0+0(%rip) */ + 0x66, 0x0f, 0x5c, 0x0d, 0x4e, 0xfc, 0xff, 0xff, //0x0000410a subpd $-946(%rip), %xmm1 /* LCPI14_1+0(%rip) */ + 0x66, 0x0f, 0x28, 0xc1, //0x00004112 movapd %xmm1, %xmm0 + 0x66, 0x0f, 0x15, 0xc1, //0x00004116 unpckhpd %xmm1, %xmm0 + 0xf2, 0x0f, 0x58, 0xc1, //0x0000411a addsd %xmm1, %xmm0 + 0xf2, 0x0f, 0x11, 0x45, 0xd0, //0x0000411e movsd %xmm0, $-48(%rbp) + 0x4c, 0x89, 0xe0, //0x00004123 movq %r12, %rax + 0x48, 0xc1, 0xe8, 0x34, //0x00004126 shrq $52, %rax + 0x0f, 0x84, 0xc8, 0x00, 0x00, 0x00, //0x0000412a je LBB14_71 + //0x00004130 LBB14_60 + 0x4c, 0x89, 0x5d, 0xb0, //0x00004130 movq %r11, $-80(%rbp) + 0x4c, 0x89, 0x55, 0xa8, //0x00004134 movq %r10, $-88(%rbp) + 0x48, 0x8d, 0x4d, 0xd0, //0x00004138 leaq $-48(%rbp), %rcx + 0x48, 0x89, 0xfe, //0x0000413c movq %rdi, %rsi + 0x4c, 0x89, 0xe7, //0x0000413f movq %r12, %rdi + 0x48, 0x89, 0x75, 0xb8, //0x00004142 movq %rsi, $-72(%rbp) + 0x44, 0x89, 0xca, //0x00004146 movl %r9d, %edx + 0x44, 0x89, 0x4d, 0xc8, //0x00004149 movl %r9d, $-56(%rbp) + 0xe8, 0x7e, 0xe6, 0xff, 0xff, //0x0000414d callq _atof_eisel_lemire64 + 0x84, 0xc0, //0x00004152 testb %al, %al + 0x0f, 0x84, 0x42, 0x00, 0x00, 0x00, //0x00004154 je LBB14_64 + 0x48, 0x8b, 0x75, 0xb8, //0x0000415a movq $-72(%rbp), %rsi + 0x8b, 0x55, 0xc8, //0x0000415e movl $-56(%rbp), %edx + 0x83, 0x7d, 0xcc, 0x00, //0x00004161 cmpl $0, $-52(%rbp) + 0x0f, 0x84, 0x27, 0x01, 0x00, 0x00, //0x00004165 je LBB14_79 + 0x49, 0xff, 0xc4, //0x0000416b incq %r12 + 0x48, 0x8d, 0x4d, 0xc0, //0x0000416e leaq $-64(%rbp), %rcx + 0x4c, 0x89, 0xe7, //0x00004172 movq %r12, %rdi + 0xe8, 0x56, 0xe6, 0xff, 0xff, //0x00004175 callq _atof_eisel_lemire64 + 0x84, 0xc0, //0x0000417a testb %al, %al + 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x0000417c je LBB14_64 + 0xf2, 0x0f, 0x10, 0x4d, 0xc0, //0x00004182 movsd $-64(%rbp), %xmm1 + 0xf2, 0x0f, 0x10, 0x45, 0xd0, //0x00004187 movsd $-48(%rbp), %xmm0 + 0x66, 0x0f, 0x2e, 0xc8, //0x0000418c ucomisd %xmm0, %xmm1 + 0x0f, 0x85, 0x06, 0x00, 0x00, 0x00, //0x00004190 jne LBB14_64 + 0x0f, 0x8b, 0x21, 0x00, 0x00, 0x00, //0x00004196 jnp LBB14_66 + //0x0000419c LBB14_64 + 0x49, 0x8b, 0x06, //0x0000419c movq (%r14), %rax + 0x49, 0x01, 0xc7, //0x0000419f addq %rax, %r15 + 0x4c, 0x89, 0xee, //0x000041a2 movq %r13, %rsi + 0x48, 0x29, 0xc6, //0x000041a5 subq %rax, %rsi + 0x4c, 0x89, 0xff, //0x000041a8 movq %r15, %rdi + 0x48, 0x8b, 0x55, 0xa8, //0x000041ab movq $-88(%rbp), %rdx + 0x48, 0x8b, 0x4d, 0xb0, //0x000041af movq $-80(%rbp), %rcx + 0xe8, 0x28, 0xec, 0xff, 0xff, //0x000041b3 callq _atof_native + //0x000041b8 LBB14_65 + 0xf2, 0x0f, 0x11, 0x45, 0xd0, //0x000041b8 movsd %xmm0, $-48(%rbp) + //0x000041bd LBB14_66 + 0x66, 0x48, 0x0f, 0x7e, 0xc0, //0x000041bd movq %xmm0, %rax + //0x000041c2 LBB14_67 + 0x48, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x000041c2 movabsq $-9223372036854775808, %rcx + 0x48, 0xff, 0xc9, //0x000041cc decq %rcx + 0x48, 0x21, 0xc1, //0x000041cf andq %rax, %rcx + 0x48, 0xba, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x7f, //0x000041d2 movabsq $9218868437227405312, %rdx + 0x48, 0x39, 0xd1, //0x000041dc cmpq %rdx, %rcx + 0x0f, 0x85, 0x07, 0x00, 0x00, 0x00, //0x000041df jne LBB14_69 + 0x48, 0xc7, 0x03, 0xf8, 0xff, 0xff, 0xff, //0x000041e5 movq $-8, (%rbx) + //0x000041ec LBB14_69 + 0x48, 0x89, 0x43, 0x08, //0x000041ec movq %rax, $8(%rbx) + //0x000041f0 LBB14_70 + 0x4d, 0x89, 0x2e, //0x000041f0 movq %r13, (%r14) + 0xe9, 0xab, 0xfe, 0xff, 0xff, //0x000041f3 jmp LBB14_53 + //0x000041f8 LBB14_71 + 0x66, 0x48, 0x0f, 0x7e, 0xc1, //0x000041f8 movq %xmm0, %rcx + 0x44, 0x89, 0xc8, //0x000041fd movl %r9d, %eax + 0xc1, 0xe8, 0x1f, //0x00004200 shrl $31, %eax + 0x48, 0xc1, 0xe0, 0x3f, //0x00004203 shlq $63, %rax + 0x48, 0x09, 0xc8, //0x00004207 orq %rcx, %rax + 0x48, 0x89, 0x45, 0xd0, //0x0000420a movq %rax, $-48(%rbp) + 0x4d, 0x85, 0xe4, //0x0000420e testq %r12, %r12 + 0x0f, 0x84, 0xab, 0xff, 0xff, 0xff, //0x00004211 je LBB14_67 + 0x85, 0xff, //0x00004217 testl %edi, %edi + 0x0f, 0x84, 0xa3, 0xff, 0xff, 0xff, //0x00004219 je LBB14_67 + 0x66, 0x48, 0x0f, 0x6e, 0xc0, //0x0000421f movq %rax, %xmm0 + 0x8d, 0x47, 0xff, //0x00004224 leal $-1(%rdi), %eax + 0x83, 0xf8, 0x24, //0x00004227 cmpl $36, %eax + 0x0f, 0x87, 0x43, 0x00, 0x00, 0x00, //0x0000422a ja LBB14_77 + 0x83, 0xff, 0x17, //0x00004230 cmpl $23, %edi + 0x0f, 0x8c, 0x9f, 0x00, 0x00, 0x00, //0x00004233 jl LBB14_81 + 0x48, 0x63, 0xc7, //0x00004239 movslq %edi, %rax + 0x48, 0x8d, 0x0d, 0xed, 0xf1, 0x00, 0x00, //0x0000423c leaq $61933(%rip), %rcx /* _P10_TAB+0(%rip) */ + 0xf2, 0x0f, 0x59, 0x84, 0xc1, 0x50, 0xff, 0xff, 0xff, //0x00004243 mulsd $-176(%rcx,%rax,8), %xmm0 + 0xf2, 0x0f, 0x11, 0x45, 0xd0, //0x0000424c movsd %xmm0, $-48(%rbp) + 0xb8, 0x16, 0x00, 0x00, 0x00, //0x00004251 movl $22, %eax + 0xe9, 0x7f, 0x00, 0x00, 0x00, //0x00004256 jmp LBB14_82 + //0x0000425b LBB14_76 + 0xc7, 0x45, 0xcc, 0x01, 0x00, 0x00, 0x00, //0x0000425b movl $1, $-52(%rbp) + 0x89, 0xcf, //0x00004262 movl %ecx, %edi + 0x41, 0x83, 0xf8, 0x09, //0x00004264 cmpl $9, %r8d + 0x0f, 0x84, 0x53, 0xfe, 0xff, 0xff, //0x00004268 je LBB14_55 + 0xe9, 0x82, 0xfe, 0xff, 0xff, //0x0000426e jmp LBB14_59 + //0x00004273 LBB14_77 + 0x83, 0xff, 0xea, //0x00004273 cmpl $-22, %edi + 0x0f, 0x82, 0xb4, 0xfe, 0xff, 0xff, //0x00004276 jb LBB14_60 + 0xf7, 0xdf, //0x0000427c negl %edi + 0x48, 0x63, 0xc7, //0x0000427e movslq %edi, %rax + 0x48, 0x8d, 0x0d, 0xa8, 0xf1, 0x00, 0x00, //0x00004281 leaq $61864(%rip), %rcx /* _P10_TAB+0(%rip) */ + 0xf2, 0x0f, 0x5e, 0x04, 0xc1, //0x00004288 divsd (%rcx,%rax,8), %xmm0 + 0xe9, 0x26, 0xff, 0xff, 0xff, //0x0000428d jmp LBB14_65 + //0x00004292 LBB14_79 + 0x48, 0x8b, 0x45, 0xd0, //0x00004292 movq $-48(%rbp), %rax + 0xe9, 0x27, 0xff, 0xff, 0xff, //0x00004296 jmp LBB14_67 + //0x0000429b LBB14_80 + 0x66, 0x49, 0x0f, 0x6e, 0xc4, //0x0000429b movq %r12, %xmm0 + 0x4c, 0x0f, 0xaf, 0xe1, //0x000042a0 imulq %rcx, %r12 + 0x66, 0x0f, 0x62, 0x05, 0xa4, 0xfa, 0xff, 0xff, //0x000042a4 punpckldq $-1372(%rip), %xmm0 /* LCPI14_0+0(%rip) */ + 0x66, 0x0f, 0x5c, 0x05, 0xac, 0xfa, 0xff, 0xff, //0x000042ac subpd $-1364(%rip), %xmm0 /* LCPI14_1+0(%rip) */ + 0x4c, 0x89, 0x63, 0x10, //0x000042b4 movq %r12, $16(%rbx) + 0x66, 0x0f, 0x28, 0xc8, //0x000042b8 movapd %xmm0, %xmm1 + 0x66, 0x0f, 0x15, 0xc8, //0x000042bc unpckhpd %xmm0, %xmm1 + 0xf2, 0x0f, 0x58, 0xc8, //0x000042c0 addsd %xmm0, %xmm1 + 0x48, 0x21, 0xc8, //0x000042c4 andq %rcx, %rax + 0x66, 0x48, 0x0f, 0x7e, 0xc9, //0x000042c7 movq %xmm1, %rcx + 0x48, 0x09, 0xc1, //0x000042cc orq %rax, %rcx + 0x48, 0x89, 0x4b, 0x08, //0x000042cf movq %rcx, $8(%rbx) + 0xe9, 0x18, 0xff, 0xff, 0xff, //0x000042d3 jmp LBB14_70 + //0x000042d8 LBB14_81 + 0x89, 0xf8, //0x000042d8 movl %edi, %eax + //0x000042da LBB14_82 + 0x66, 0x0f, 0x2e, 0x05, 0x8e, 0xfa, 0xff, 0xff, //0x000042da ucomisd $-1394(%rip), %xmm0 /* LCPI14_2+0(%rip) */ + 0x0f, 0x87, 0x48, 0xfe, 0xff, 0xff, //0x000042e2 ja LBB14_60 + 0xf2, 0x0f, 0x10, 0x0d, 0x88, 0xfa, 0xff, 0xff, //0x000042e8 movsd $-1400(%rip), %xmm1 /* LCPI14_3+0(%rip) */ + 0x66, 0x0f, 0x2e, 0xc8, //0x000042f0 ucomisd %xmm0, %xmm1 + 0x0f, 0x87, 0x36, 0xfe, 0xff, 0xff, //0x000042f4 ja LBB14_60 + 0x89, 0xc0, //0x000042fa movl %eax, %eax + 0x48, 0x8d, 0x0d, 0x2d, 0xf1, 0x00, 0x00, //0x000042fc leaq $61741(%rip), %rcx /* _P10_TAB+0(%rip) */ + 0xf2, 0x0f, 0x59, 0x04, 0xc1, //0x00004303 mulsd (%rcx,%rax,8), %xmm0 + 0xe9, 0xab, 0xfe, 0xff, 0xff, //0x00004308 jmp LBB14_65 + //0x0000430d LBB14_85 + 0x48, 0x89, 0xf8, //0x0000430d movq %rdi, %rax + //0x00004310 LBB14_86 + 0x8d, 0x7e, 0xd0, //0x00004310 leal $-48(%rsi), %edi + 0x40, 0x80, 0xff, 0x09, //0x00004313 cmpb $9, %dil + 0x0f, 0x87, 0xf1, 0xfa, 0xff, 0xff, //0x00004317 ja LBB14_5 + 0x44, 0x89, 0x4d, 0xc8, //0x0000431d movl %r9d, $-56(%rbp) + 0x4c, 0x39, 0xe8, //0x00004321 cmpq %r13, %rax + 0x0f, 0x83, 0x49, 0x00, 0x00, 0x00, //0x00004324 jae LBB14_93 + 0x40, 0x80, 0xff, 0x09, //0x0000432a cmpb $9, %dil + 0x0f, 0x87, 0x3f, 0x00, 0x00, 0x00, //0x0000432e ja LBB14_93 + 0x4d, 0x8d, 0x4d, 0xff, //0x00004334 leaq $-1(%r13), %r9 + 0x31, 0xff, //0x00004338 xorl %edi, %edi + //0x0000433a LBB14_90 + 0x89, 0xfa, //0x0000433a movl %edi, %edx + 0x81, 0xff, 0x10, 0x27, 0x00, 0x00, //0x0000433c cmpl $10000, %edi + 0x8d, 0x3c, 0x92, //0x00004342 leal (%rdx,%rdx,4), %edi + 0x40, 0x0f, 0xb6, 0xf6, //0x00004345 movzbl %sil, %esi + 0x8d, 0x7c, 0x7e, 0xd0, //0x00004349 leal $-48(%rsi,%rdi,2), %edi + 0x0f, 0x4d, 0xfa, //0x0000434d cmovgel %edx, %edi + 0x49, 0x39, 0xc1, //0x00004350 cmpq %rax, %r9 + 0x0f, 0x84, 0x21, 0x00, 0x00, 0x00, //0x00004353 je LBB14_94 + 0x41, 0x0f, 0xb6, 0x74, 0x07, 0x01, //0x00004359 movzbl $1(%r15,%rax), %esi + 0x48, 0xff, 0xc0, //0x0000435f incq %rax + 0x8d, 0x56, 0xd0, //0x00004362 leal $-48(%rsi), %edx + 0x80, 0xfa, 0x0a, //0x00004365 cmpb $10, %dl + 0x0f, 0x82, 0xcc, 0xff, 0xff, 0xff, //0x00004368 jb LBB14_90 + 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x0000436e jmp LBB14_95 + //0x00004373 LBB14_93 + 0x31, 0xff, //0x00004373 xorl %edi, %edi + 0xe9, 0x03, 0x00, 0x00, 0x00, //0x00004375 jmp LBB14_95 + //0x0000437a LBB14_94 + 0x4c, 0x89, 0xe8, //0x0000437a movq %r13, %rax + //0x0000437d LBB14_95 + 0x41, 0x0f, 0xaf, 0xf8, //0x0000437d imull %r8d, %edi + 0x01, 0xcf, //0x00004381 addl %ecx, %edi + 0x49, 0x89, 0xc5, //0x00004383 movq %rax, %r13 + 0x44, 0x8b, 0x4d, 0xc8, //0x00004386 movl $-56(%rbp), %r9d + 0xe9, 0x66, 0xfd, 0xff, 0xff, //0x0000438a jmp LBB14_59 + 0x90, //0x0000438f .p2align 4, 0x90 + //0x00004390 _vsigned + 0x55, //0x00004390 pushq %rbp + 0x48, 0x89, 0xe5, //0x00004391 movq %rsp, %rbp + 0x53, //0x00004394 pushq %rbx + 0x48, 0x8b, 0x1e, //0x00004395 movq (%rsi), %rbx + 0x4c, 0x8b, 0x07, //0x00004398 movq (%rdi), %r8 + 0x4c, 0x8b, 0x57, 0x08, //0x0000439b movq $8(%rdi), %r10 + 0x48, 0xc7, 0x02, 0x09, 0x00, 0x00, 0x00, //0x0000439f movq $9, (%rdx) + 0x48, 0xc7, 0x42, 0x08, 0x00, 0x00, 0x00, 0x00, //0x000043a6 movq $0, $8(%rdx) + 0x48, 0xc7, 0x42, 0x10, 0x00, 0x00, 0x00, 0x00, //0x000043ae movq $0, $16(%rdx) + 0x48, 0x8b, 0x0e, //0x000043b6 movq (%rsi), %rcx + 0x48, 0x89, 0x4a, 0x18, //0x000043b9 movq %rcx, $24(%rdx) + 0x4c, 0x39, 0xd3, //0x000043bd cmpq %r10, %rbx + 0x0f, 0x83, 0x44, 0x00, 0x00, 0x00, //0x000043c0 jae LBB15_1 + 0x41, 0x8a, 0x0c, 0x18, //0x000043c6 movb (%r8,%rbx), %cl + 0x41, 0xb9, 0x01, 0x00, 0x00, 0x00, //0x000043ca movl $1, %r9d + 0x80, 0xf9, 0x2d, //0x000043d0 cmpb $45, %cl + 0x0f, 0x85, 0x17, 0x00, 0x00, 0x00, //0x000043d3 jne LBB15_5 + 0x48, 0xff, 0xc3, //0x000043d9 incq %rbx + 0x4c, 0x39, 0xd3, //0x000043dc cmpq %r10, %rbx + 0x0f, 0x83, 0x25, 0x00, 0x00, 0x00, //0x000043df jae LBB15_1 + 0x41, 0x8a, 0x0c, 0x18, //0x000043e5 movb (%r8,%rbx), %cl + 0x49, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x000043e9 movq $-1, %r9 + //0x000043f0 LBB15_5 + 0x8d, 0x79, 0xd0, //0x000043f0 leal $-48(%rcx), %edi + 0x40, 0x80, 0xff, 0x0a, //0x000043f3 cmpb $10, %dil + 0x0f, 0x82, 0x1a, 0x00, 0x00, 0x00, //0x000043f7 jb LBB15_7 + 0x48, 0x89, 0x1e, //0x000043fd movq %rbx, (%rsi) + 0x48, 0xc7, 0x02, 0xfe, 0xff, 0xff, 0xff, //0x00004400 movq $-2, (%rdx) + 0x5b, //0x00004407 popq %rbx + 0x5d, //0x00004408 popq %rbp + 0xc3, //0x00004409 retq + //0x0000440a LBB15_1 + 0x4c, 0x89, 0x16, //0x0000440a movq %r10, (%rsi) + 0x48, 0xc7, 0x02, 0xff, 0xff, 0xff, 0xff, //0x0000440d movq $-1, (%rdx) + 0x5b, //0x00004414 popq %rbx + 0x5d, //0x00004415 popq %rbp + 0xc3, //0x00004416 retq + //0x00004417 LBB15_7 + 0x80, 0xf9, 0x30, //0x00004417 cmpb $48, %cl + 0x0f, 0x85, 0x35, 0x00, 0x00, 0x00, //0x0000441a jne LBB15_8 + 0x48, 0x8d, 0x7b, 0x01, //0x00004420 leaq $1(%rbx), %rdi + 0x4c, 0x39, 0xd3, //0x00004424 cmpq %r10, %rbx + 0x0f, 0x83, 0x7a, 0x00, 0x00, 0x00, //0x00004427 jae LBB15_17 + 0x41, 0x8a, 0x0c, 0x38, //0x0000442d movb (%r8,%rdi), %cl + 0x80, 0xc1, 0xd2, //0x00004431 addb $-46, %cl + 0x80, 0xf9, 0x37, //0x00004434 cmpb $55, %cl + 0x0f, 0x87, 0x6a, 0x00, 0x00, 0x00, //0x00004437 ja LBB15_17 + 0x44, 0x0f, 0xb6, 0xd9, //0x0000443d movzbl %cl, %r11d + 0x48, 0xb9, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, //0x00004441 movabsq $36028797027352577, %rcx + 0x4c, 0x0f, 0xa3, 0xd9, //0x0000444b btq %r11, %rcx + 0x0f, 0x83, 0x52, 0x00, 0x00, 0x00, //0x0000444f jae LBB15_17 + //0x00004455 LBB15_8 + 0x31, 0xff, //0x00004455 xorl %edi, %edi + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00004457 .p2align 4, 0x90 + //0x00004460 LBB15_9 + 0x4c, 0x39, 0xd3, //0x00004460 cmpq %r10, %rbx + 0x0f, 0x83, 0x6c, 0x00, 0x00, 0x00, //0x00004463 jae LBB15_22 + 0x49, 0x0f, 0xbe, 0x0c, 0x18, //0x00004469 movsbq (%r8,%rbx), %rcx + 0x8d, 0x41, 0xd0, //0x0000446e leal $-48(%rcx), %eax + 0x3c, 0x09, //0x00004471 cmpb $9, %al + 0x0f, 0x87, 0x34, 0x00, 0x00, 0x00, //0x00004473 ja LBB15_18 + 0x48, 0x6b, 0xff, 0x0a, //0x00004479 imulq $10, %rdi, %rdi + 0x0f, 0x80, 0x14, 0x00, 0x00, 0x00, //0x0000447d jo LBB15_13 + 0x48, 0xff, 0xc3, //0x00004483 incq %rbx + 0x48, 0x83, 0xc1, 0xd0, //0x00004486 addq $-48, %rcx + 0x49, 0x0f, 0xaf, 0xc9, //0x0000448a imulq %r9, %rcx + 0x48, 0x01, 0xcf, //0x0000448e addq %rcx, %rdi + 0x0f, 0x81, 0xc9, 0xff, 0xff, 0xff, //0x00004491 jno LBB15_9 + //0x00004497 LBB15_13 + 0x48, 0xff, 0xcb, //0x00004497 decq %rbx + 0x48, 0x89, 0x1e, //0x0000449a movq %rbx, (%rsi) + 0x48, 0xc7, 0x02, 0xfb, 0xff, 0xff, 0xff, //0x0000449d movq $-5, (%rdx) + 0x5b, //0x000044a4 popq %rbx + 0x5d, //0x000044a5 popq %rbp + 0xc3, //0x000044a6 retq + //0x000044a7 LBB15_17 + 0x48, 0x89, 0x3e, //0x000044a7 movq %rdi, (%rsi) + 0x5b, //0x000044aa popq %rbx + 0x5d, //0x000044ab popq %rbp + 0xc3, //0x000044ac retq + //0x000044ad LBB15_18 + 0x80, 0xf9, 0x65, //0x000044ad cmpb $101, %cl + 0x0f, 0x84, 0x12, 0x00, 0x00, 0x00, //0x000044b0 je LBB15_21 + 0x80, 0xf9, 0x45, //0x000044b6 cmpb $69, %cl + 0x0f, 0x84, 0x09, 0x00, 0x00, 0x00, //0x000044b9 je LBB15_21 + 0x80, 0xf9, 0x2e, //0x000044bf cmpb $46, %cl + 0x0f, 0x85, 0x0d, 0x00, 0x00, 0x00, //0x000044c2 jne LBB15_22 + //0x000044c8 LBB15_21 + 0x48, 0x89, 0x1e, //0x000044c8 movq %rbx, (%rsi) + 0x48, 0xc7, 0x02, 0xfa, 0xff, 0xff, 0xff, //0x000044cb movq $-6, (%rdx) + 0x5b, //0x000044d2 popq %rbx + 0x5d, //0x000044d3 popq %rbp + 0xc3, //0x000044d4 retq + //0x000044d5 LBB15_22 + 0x48, 0x89, 0x1e, //0x000044d5 movq %rbx, (%rsi) + 0x48, 0x89, 0x7a, 0x10, //0x000044d8 movq %rdi, $16(%rdx) + 0x5b, //0x000044dc popq %rbx + 0x5d, //0x000044dd popq %rbp + 0xc3, //0x000044de retq + 0x90, //0x000044df .p2align 4, 0x90 + //0x000044e0 _vunsigned + 0x55, //0x000044e0 pushq %rbp + 0x48, 0x89, 0xe5, //0x000044e1 movq %rsp, %rbp + 0x49, 0x89, 0xd0, //0x000044e4 movq %rdx, %r8 + 0x48, 0x8b, 0x0e, //0x000044e7 movq (%rsi), %rcx + 0x4c, 0x8b, 0x0f, //0x000044ea movq (%rdi), %r9 + 0x4c, 0x8b, 0x5f, 0x08, //0x000044ed movq $8(%rdi), %r11 + 0x48, 0xc7, 0x02, 0x09, 0x00, 0x00, 0x00, //0x000044f1 movq $9, (%rdx) + 0x48, 0xc7, 0x42, 0x08, 0x00, 0x00, 0x00, 0x00, //0x000044f8 movq $0, $8(%rdx) + 0x48, 0xc7, 0x42, 0x10, 0x00, 0x00, 0x00, 0x00, //0x00004500 movq $0, $16(%rdx) + 0x48, 0x8b, 0x06, //0x00004508 movq (%rsi), %rax + 0x48, 0x89, 0x42, 0x18, //0x0000450b movq %rax, $24(%rdx) + 0x4c, 0x39, 0xd9, //0x0000450f cmpq %r11, %rcx + 0x0f, 0x83, 0x18, 0x00, 0x00, 0x00, //0x00004512 jae LBB16_1 + 0x41, 0x8a, 0x04, 0x09, //0x00004518 movb (%r9,%rcx), %al + 0x3c, 0x2d, //0x0000451c cmpb $45, %al + 0x0f, 0x85, 0x18, 0x00, 0x00, 0x00, //0x0000451e jne LBB16_4 + //0x00004524 LBB16_3 + 0x48, 0x89, 0x0e, //0x00004524 movq %rcx, (%rsi) + 0x49, 0xc7, 0x00, 0xfa, 0xff, 0xff, 0xff, //0x00004527 movq $-6, (%r8) + 0x5d, //0x0000452e popq %rbp + 0xc3, //0x0000452f retq + //0x00004530 LBB16_1 + 0x4c, 0x89, 0x1e, //0x00004530 movq %r11, (%rsi) + 0x49, 0xc7, 0x00, 0xff, 0xff, 0xff, 0xff, //0x00004533 movq $-1, (%r8) + 0x5d, //0x0000453a popq %rbp + 0xc3, //0x0000453b retq + //0x0000453c LBB16_4 + 0x8d, 0x50, 0xd0, //0x0000453c leal $-48(%rax), %edx + 0x80, 0xfa, 0x0a, //0x0000453f cmpb $10, %dl + 0x0f, 0x82, 0x0c, 0x00, 0x00, 0x00, //0x00004542 jb LBB16_6 + 0x48, 0x89, 0x0e, //0x00004548 movq %rcx, (%rsi) + 0x49, 0xc7, 0x00, 0xfe, 0xff, 0xff, 0xff, //0x0000454b movq $-2, (%r8) + 0x5d, //0x00004552 popq %rbp + 0xc3, //0x00004553 retq + //0x00004554 LBB16_6 + 0x3c, 0x30, //0x00004554 cmpb $48, %al + 0x0f, 0x85, 0x26, 0x00, 0x00, 0x00, //0x00004556 jne LBB16_7 + 0x41, 0x8a, 0x44, 0x09, 0x01, //0x0000455c movb $1(%r9,%rcx), %al + 0x04, 0xd2, //0x00004561 addb $-46, %al + 0x3c, 0x37, //0x00004563 cmpb $55, %al + 0x0f, 0x87, 0xaf, 0x00, 0x00, 0x00, //0x00004565 ja LBB16_16 + 0x0f, 0xb6, 0xc0, //0x0000456b movzbl %al, %eax + 0x48, 0xba, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, //0x0000456e movabsq $36028797027352577, %rdx + 0x48, 0x0f, 0xa3, 0xc2, //0x00004578 btq %rax, %rdx + 0x0f, 0x83, 0x98, 0x00, 0x00, 0x00, //0x0000457c jae LBB16_16 + //0x00004582 LBB16_7 + 0x31, 0xc0, //0x00004582 xorl %eax, %eax + 0x41, 0xba, 0x0a, 0x00, 0x00, 0x00, //0x00004584 movl $10, %r10d + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000458a .p2align 4, 0x90 + //0x00004590 LBB16_8 + 0x4c, 0x39, 0xd9, //0x00004590 cmpq %r11, %rcx + 0x0f, 0x83, 0x78, 0x00, 0x00, 0x00, //0x00004593 jae LBB16_20 + 0x41, 0x0f, 0xbe, 0x3c, 0x09, //0x00004599 movsbl (%r9,%rcx), %edi + 0x8d, 0x57, 0xd0, //0x0000459e leal $-48(%rdi), %edx + 0x80, 0xfa, 0x09, //0x000045a1 cmpb $9, %dl + 0x0f, 0x87, 0x49, 0x00, 0x00, 0x00, //0x000045a4 ja LBB16_17 + 0x49, 0xf7, 0xe2, //0x000045aa mulq %r10 + 0x0f, 0x80, 0x31, 0x00, 0x00, 0x00, //0x000045ad jo LBB16_13 + 0x48, 0xff, 0xc1, //0x000045b3 incq %rcx + 0x83, 0xc7, 0xd0, //0x000045b6 addl $-48, %edi + 0x48, 0x63, 0xd7, //0x000045b9 movslq %edi, %rdx + 0x48, 0x89, 0xd7, //0x000045bc movq %rdx, %rdi + 0x48, 0xc1, 0xff, 0x3f, //0x000045bf sarq $63, %rdi + 0x48, 0x01, 0xd0, //0x000045c3 addq %rdx, %rax + 0x48, 0x83, 0xd7, 0x00, //0x000045c6 adcq $0, %rdi + 0x89, 0xfa, //0x000045ca movl %edi, %edx + 0x83, 0xe2, 0x01, //0x000045cc andl $1, %edx + 0x48, 0xf7, 0xda, //0x000045cf negq %rdx + 0x48, 0x31, 0xd7, //0x000045d2 xorq %rdx, %rdi + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x000045d5 jne LBB16_13 + 0x48, 0x85, 0xd2, //0x000045db testq %rdx, %rdx + 0x0f, 0x89, 0xac, 0xff, 0xff, 0xff, //0x000045de jns LBB16_8 + //0x000045e4 LBB16_13 + 0x48, 0xff, 0xc9, //0x000045e4 decq %rcx + 0x48, 0x89, 0x0e, //0x000045e7 movq %rcx, (%rsi) + 0x49, 0xc7, 0x00, 0xfb, 0xff, 0xff, 0xff, //0x000045ea movq $-5, (%r8) + 0x5d, //0x000045f1 popq %rbp + 0xc3, //0x000045f2 retq + //0x000045f3 LBB16_17 + 0x40, 0x80, 0xff, 0x65, //0x000045f3 cmpb $101, %dil + 0x0f, 0x84, 0x27, 0xff, 0xff, 0xff, //0x000045f7 je LBB16_3 + 0x40, 0x80, 0xff, 0x45, //0x000045fd cmpb $69, %dil + 0x0f, 0x84, 0x1d, 0xff, 0xff, 0xff, //0x00004601 je LBB16_3 + 0x40, 0x80, 0xff, 0x2e, //0x00004607 cmpb $46, %dil + 0x0f, 0x84, 0x13, 0xff, 0xff, 0xff, //0x0000460b je LBB16_3 + //0x00004611 LBB16_20 + 0x48, 0x89, 0x0e, //0x00004611 movq %rcx, (%rsi) + 0x49, 0x89, 0x40, 0x10, //0x00004614 movq %rax, $16(%r8) + 0x5d, //0x00004618 popq %rbp + 0xc3, //0x00004619 retq + //0x0000461a LBB16_16 + 0x48, 0xff, 0xc1, //0x0000461a incq %rcx + 0x48, 0x89, 0x0e, //0x0000461d movq %rcx, (%rsi) + 0x5d, //0x00004620 popq %rbp + 0xc3, //0x00004621 retq + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004622 .p2align 4, 0x00 + //0x00004630 LCPI17_0 + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004630 .quad 1 + 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004638 .quad 5 + //0x00004640 .p2align 4, 0x90 + //0x00004640 _skip_array + 0x55, //0x00004640 pushq %rbp + 0x48, 0x89, 0xe5, //0x00004641 movq %rsp, %rbp + 0x48, 0x89, 0xd0, //0x00004644 movq %rdx, %rax + 0x48, 0x89, 0xf2, //0x00004647 movq %rsi, %rdx + 0x48, 0x89, 0xfe, //0x0000464a movq %rdi, %rsi + 0x0f, 0x28, 0x05, 0xdc, 0xff, 0xff, 0xff, //0x0000464d movaps $-36(%rip), %xmm0 /* LCPI17_0+0(%rip) */ + 0x0f, 0x11, 0x00, //0x00004654 movups %xmm0, (%rax) + 0x48, 0x89, 0xc7, //0x00004657 movq %rax, %rdi + 0x5d, //0x0000465a popq %rbp + 0xe9, 0x00, 0x00, 0x00, 0x00, //0x0000465b jmp _fsm_exec + //0x00004660 .p2align 4, 0x90 + //0x00004660 _fsm_exec + 0x55, //0x00004660 pushq %rbp + 0x48, 0x89, 0xe5, //0x00004661 movq %rsp, %rbp + 0x41, 0x57, //0x00004664 pushq %r15 + 0x41, 0x56, //0x00004666 pushq %r14 + 0x41, 0x55, //0x00004668 pushq %r13 + 0x41, 0x54, //0x0000466a pushq %r12 + 0x53, //0x0000466c pushq %rbx + 0x48, 0x83, 0xec, 0x38, //0x0000466d subq $56, %rsp + 0x48, 0x89, 0x4d, 0xa8, //0x00004671 movq %rcx, $-88(%rbp) + 0x4c, 0x8b, 0x0f, //0x00004675 movq (%rdi), %r9 + 0x4d, 0x85, 0xc9, //0x00004678 testq %r9, %r9 + 0x0f, 0x84, 0x16, 0x05, 0x00, 0x00, //0x0000467b je LBB18_2 + 0x49, 0x89, 0xd0, //0x00004681 movq %rdx, %r8 + 0x49, 0x89, 0xfa, //0x00004684 movq %rdi, %r10 + 0x48, 0x8d, 0x46, 0x08, //0x00004687 leaq $8(%rsi), %rax + 0x48, 0x89, 0x45, 0xc8, //0x0000468b movq %rax, $-56(%rbp) + 0x4c, 0x8b, 0x2a, //0x0000468f movq (%rdx), %r13 + 0x49, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x00004692 movq $-1, %r14 + 0x49, 0xbc, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00004699 movabsq $4294977024, %r12 + 0x4c, 0x8d, 0x1d, 0x52, 0x06, 0x00, 0x00, //0x000046a3 leaq $1618(%rip), %r11 /* LJTI18_0+0(%rip) */ + 0x48, 0x89, 0x55, 0xd0, //0x000046aa movq %rdx, $-48(%rbp) + 0x48, 0x89, 0x75, 0xb0, //0x000046ae movq %rsi, $-80(%rbp) + 0x48, 0x89, 0x7d, 0xb8, //0x000046b2 movq %rdi, $-72(%rbp) + 0xe9, 0x3d, 0x00, 0x00, 0x00, //0x000046b6 jmp LBB18_8 + //0x000046bb LBB18_3 + 0x49, 0x8b, 0x02, //0x000046bb movq (%r10), %rax + 0x48, 0x3d, 0xff, 0x0f, 0x00, 0x00, //0x000046be cmpq $4095, %rax + 0x0f, 0x8f, 0xe3, 0x04, 0x00, 0x00, //0x000046c4 jg LBB18_82 + 0x48, 0x8d, 0x48, 0x01, //0x000046ca leaq $1(%rax), %rcx + 0x49, 0x89, 0x0a, //0x000046ce movq %rcx, (%r10) + 0x49, 0xc7, 0x44, 0xc2, 0x08, 0x06, 0x00, 0x00, 0x00, //0x000046d1 movq $6, $8(%r10,%rax,8) + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000046da .p2align 4, 0x90 + //0x000046e0 LBB18_5 + 0x4c, 0x89, 0xe9, //0x000046e0 movq %r13, %rcx + //0x000046e3 LBB18_6 + 0x49, 0x8b, 0x12, //0x000046e3 movq (%r10), %rdx + 0x49, 0x89, 0xcd, //0x000046e6 movq %rcx, %r13 + //0x000046e9 LBB18_7 + 0x49, 0x89, 0xd1, //0x000046e9 movq %rdx, %r9 + 0x4c, 0x89, 0xf0, //0x000046ec movq %r14, %rax + 0x48, 0x85, 0xd2, //0x000046ef testq %rdx, %rdx + 0x0f, 0x84, 0xa6, 0x04, 0x00, 0x00, //0x000046f2 je LBB18_88 + //0x000046f8 LBB18_8 + 0x48, 0x8b, 0x3e, //0x000046f8 movq (%rsi), %rdi + 0x48, 0x8b, 0x46, 0x08, //0x000046fb movq $8(%rsi), %rax + 0x4c, 0x89, 0xea, //0x000046ff movq %r13, %rdx + 0x48, 0x29, 0xc2, //0x00004702 subq %rax, %rdx + 0x0f, 0x83, 0x35, 0x00, 0x00, 0x00, //0x00004705 jae LBB18_13 + 0x42, 0x8a, 0x1c, 0x2f, //0x0000470b movb (%rdi,%r13), %bl + 0x80, 0xfb, 0x0d, //0x0000470f cmpb $13, %bl + 0x0f, 0x84, 0x28, 0x00, 0x00, 0x00, //0x00004712 je LBB18_13 + 0x80, 0xfb, 0x20, //0x00004718 cmpb $32, %bl + 0x0f, 0x84, 0x1f, 0x00, 0x00, 0x00, //0x0000471b je LBB18_13 + 0x80, 0xc3, 0xf7, //0x00004721 addb $-9, %bl + 0x80, 0xfb, 0x01, //0x00004724 cmpb $1, %bl + 0x0f, 0x86, 0x13, 0x00, 0x00, 0x00, //0x00004727 jbe LBB18_13 + 0x4d, 0x89, 0xef, //0x0000472d movq %r13, %r15 + 0xe9, 0x2d, 0x01, 0x00, 0x00, //0x00004730 jmp LBB18_34 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00004735 .p2align 4, 0x90 + //0x00004740 LBB18_13 + 0x4d, 0x8d, 0x7d, 0x01, //0x00004740 leaq $1(%r13), %r15 + 0x49, 0x39, 0xc7, //0x00004744 cmpq %rax, %r15 + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00004747 jae LBB18_17 + 0x42, 0x8a, 0x1c, 0x3f, //0x0000474d movb (%rdi,%r15), %bl + 0x80, 0xfb, 0x0d, //0x00004751 cmpb $13, %bl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00004754 je LBB18_17 + 0x80, 0xfb, 0x20, //0x0000475a cmpb $32, %bl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x0000475d je LBB18_17 + 0x80, 0xc3, 0xf7, //0x00004763 addb $-9, %bl + 0x80, 0xfb, 0x01, //0x00004766 cmpb $1, %bl + 0x0f, 0x87, 0xf3, 0x00, 0x00, 0x00, //0x00004769 ja LBB18_34 + 0x90, //0x0000476f .p2align 4, 0x90 + //0x00004770 LBB18_17 + 0x4d, 0x8d, 0x7d, 0x02, //0x00004770 leaq $2(%r13), %r15 + 0x49, 0x39, 0xc7, //0x00004774 cmpq %rax, %r15 + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00004777 jae LBB18_21 + 0x42, 0x8a, 0x1c, 0x3f, //0x0000477d movb (%rdi,%r15), %bl + 0x80, 0xfb, 0x0d, //0x00004781 cmpb $13, %bl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00004784 je LBB18_21 + 0x80, 0xfb, 0x20, //0x0000478a cmpb $32, %bl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x0000478d je LBB18_21 + 0x80, 0xc3, 0xf7, //0x00004793 addb $-9, %bl + 0x80, 0xfb, 0x01, //0x00004796 cmpb $1, %bl + 0x0f, 0x87, 0xc3, 0x00, 0x00, 0x00, //0x00004799 ja LBB18_34 + 0x90, //0x0000479f .p2align 4, 0x90 + //0x000047a0 LBB18_21 + 0x4d, 0x8d, 0x7d, 0x03, //0x000047a0 leaq $3(%r13), %r15 + 0x49, 0x39, 0xc7, //0x000047a4 cmpq %rax, %r15 + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x000047a7 jae LBB18_25 + 0x42, 0x8a, 0x1c, 0x3f, //0x000047ad movb (%rdi,%r15), %bl + 0x80, 0xfb, 0x0d, //0x000047b1 cmpb $13, %bl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x000047b4 je LBB18_25 + 0x80, 0xfb, 0x20, //0x000047ba cmpb $32, %bl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x000047bd je LBB18_25 + 0x80, 0xc3, 0xf7, //0x000047c3 addb $-9, %bl + 0x80, 0xfb, 0x01, //0x000047c6 cmpb $1, %bl + 0x0f, 0x87, 0x93, 0x00, 0x00, 0x00, //0x000047c9 ja LBB18_34 + 0x90, //0x000047cf .p2align 4, 0x90 + //0x000047d0 LBB18_25 + 0x49, 0x8d, 0x4d, 0x04, //0x000047d0 leaq $4(%r13), %rcx + 0x48, 0x39, 0xc8, //0x000047d4 cmpq %rcx, %rax + 0x0f, 0x86, 0xb7, 0x03, 0x00, 0x00, //0x000047d7 jbe LBB18_79 + 0x48, 0x39, 0xc8, //0x000047dd cmpq %rcx, %rax + 0x0f, 0x84, 0x4a, 0x00, 0x00, 0x00, //0x000047e0 je LBB18_31 + 0x48, 0x8d, 0x0c, 0x07, //0x000047e6 leaq (%rdi,%rax), %rcx + 0x48, 0x83, 0xc2, 0x04, //0x000047ea addq $4, %rdx + 0x4e, 0x8d, 0x7c, 0x2f, 0x05, //0x000047ee leaq $5(%rdi,%r13), %r15 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000047f3 .p2align 4, 0x90 + //0x00004800 LBB18_28 + 0x41, 0x0f, 0xbe, 0x5f, 0xff, //0x00004800 movsbl $-1(%r15), %ebx + 0x83, 0xfb, 0x20, //0x00004805 cmpl $32, %ebx + 0x0f, 0x87, 0x42, 0x00, 0x00, 0x00, //0x00004808 ja LBB18_33 + 0x49, 0x0f, 0xa3, 0xdc, //0x0000480e btq %rbx, %r12 + 0x0f, 0x83, 0x38, 0x00, 0x00, 0x00, //0x00004812 jae LBB18_33 + 0x49, 0xff, 0xc7, //0x00004818 incq %r15 + 0x48, 0xff, 0xc2, //0x0000481b incq %rdx + 0x0f, 0x85, 0xdc, 0xff, 0xff, 0xff, //0x0000481e jne LBB18_28 + 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x00004824 jmp LBB18_32 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00004829 .p2align 4, 0x90 + //0x00004830 LBB18_31 + 0x48, 0x01, 0xf9, //0x00004830 addq %rdi, %rcx + //0x00004833 LBB18_32 + 0x48, 0x29, 0xf9, //0x00004833 subq %rdi, %rcx + 0x49, 0x89, 0xcf, //0x00004836 movq %rcx, %r15 + 0x49, 0x39, 0xc7, //0x00004839 cmpq %rax, %r15 + 0x0f, 0x82, 0x20, 0x00, 0x00, 0x00, //0x0000483c jb LBB18_34 + 0xe9, 0x50, 0x03, 0x00, 0x00, //0x00004842 jmp LBB18_2 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00004847 .p2align 4, 0x90 + //0x00004850 LBB18_33 + 0x48, 0x89, 0xfa, //0x00004850 movq %rdi, %rdx + 0x48, 0xf7, 0xd2, //0x00004853 notq %rdx + 0x49, 0x01, 0xd7, //0x00004856 addq %rdx, %r15 + 0x49, 0x39, 0xc7, //0x00004859 cmpq %rax, %r15 + 0x0f, 0x83, 0x35, 0x03, 0x00, 0x00, //0x0000485c jae LBB18_2 + //0x00004862 LBB18_34 + 0x4d, 0x8d, 0x6f, 0x01, //0x00004862 leaq $1(%r15), %r13 + 0x4d, 0x89, 0x28, //0x00004866 movq %r13, (%r8) + 0x42, 0x0f, 0xbe, 0x0c, 0x3f, //0x00004869 movsbl (%rdi,%r15), %ecx + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x0000486e movq $-1, %rax + 0x85, 0xc9, //0x00004875 testl %ecx, %ecx + 0x0f, 0x84, 0x21, 0x03, 0x00, 0x00, //0x00004877 je LBB18_88 + 0x49, 0x8d, 0x51, 0xff, //0x0000487d leaq $-1(%r9), %rdx + 0x43, 0x8b, 0x1c, 0xca, //0x00004881 movl (%r10,%r9,8), %ebx + 0x49, 0x83, 0xfe, 0xff, //0x00004885 cmpq $-1, %r14 + 0x4d, 0x0f, 0x44, 0xf7, //0x00004889 cmoveq %r15, %r14 + 0xff, 0xcb, //0x0000488d decl %ebx + 0x83, 0xfb, 0x05, //0x0000488f cmpl $5, %ebx + 0x0f, 0x87, 0x20, 0x00, 0x00, 0x00, //0x00004892 ja LBB18_40 + 0x49, 0x63, 0x1c, 0x9b, //0x00004898 movslq (%r11,%rbx,4), %rbx + 0x4c, 0x01, 0xdb, //0x0000489c addq %r11, %rbx + 0xff, 0xe3, //0x0000489f jmpq *%rbx + //0x000048a1 LBB18_37 + 0x83, 0xf9, 0x2c, //0x000048a1 cmpl $44, %ecx + 0x0f, 0x84, 0x5d, 0x01, 0x00, 0x00, //0x000048a4 je LBB18_58 + 0x83, 0xf9, 0x5d, //0x000048aa cmpl $93, %ecx + 0x0f, 0x84, 0xab, 0x00, 0x00, 0x00, //0x000048ad je LBB18_39 + 0xe9, 0x32, 0x03, 0x00, 0x00, //0x000048b3 jmp LBB18_87 + //0x000048b8 LBB18_40 + 0x49, 0x89, 0x12, //0x000048b8 movq %rdx, (%r10) + 0x83, 0xf9, 0x7b, //0x000048bb cmpl $123, %ecx + 0x0f, 0x86, 0xd1, 0x00, 0x00, 0x00, //0x000048be jbe LBB18_56 + 0xe9, 0x21, 0x03, 0x00, 0x00, //0x000048c4 jmp LBB18_87 + //0x000048c9 LBB18_41 + 0x83, 0xf9, 0x2c, //0x000048c9 cmpl $44, %ecx + 0x0f, 0x84, 0x57, 0x01, 0x00, 0x00, //0x000048cc je LBB18_60 + 0x83, 0xf9, 0x7d, //0x000048d2 cmpl $125, %ecx + 0x0f, 0x84, 0x83, 0x00, 0x00, 0x00, //0x000048d5 je LBB18_39 + 0xe9, 0x0a, 0x03, 0x00, 0x00, //0x000048db jmp LBB18_87 + //0x000048e0 LBB18_44 + 0x80, 0xf9, 0x22, //0x000048e0 cmpb $34, %cl + 0x0f, 0x85, 0x01, 0x03, 0x00, 0x00, //0x000048e3 jne LBB18_87 + 0x4b, 0xc7, 0x04, 0xca, 0x04, 0x00, 0x00, 0x00, //0x000048e9 movq $4, (%r10,%r9,8) + //0x000048f1 LBB18_46 + 0x48, 0xc7, 0x45, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000048f1 movq $-1, $-64(%rbp) + 0x48, 0x89, 0xf7, //0x000048f9 movq %rsi, %rdi + 0x4c, 0x89, 0xee, //0x000048fc movq %r13, %rsi + 0x48, 0x8d, 0x55, 0xc0, //0x000048ff leaq $-64(%rbp), %rdx + 0x48, 0x8b, 0x4d, 0xa8, //0x00004903 movq $-88(%rbp), %rcx + 0xe8, 0x04, 0xef, 0xff, 0xff, //0x00004907 callq _advance_string + 0x48, 0x89, 0xc1, //0x0000490c movq %rax, %rcx + 0x48, 0x85, 0xc0, //0x0000490f testq %rax, %rax + 0x0f, 0x88, 0xa1, 0x02, 0x00, 0x00, //0x00004912 js LBB18_81 + //0x00004918 LBB18_47 + 0x4c, 0x8b, 0x45, 0xd0, //0x00004918 movq $-48(%rbp), %r8 + 0x49, 0x89, 0x08, //0x0000491c movq %rcx, (%r8) + 0x4c, 0x89, 0xf8, //0x0000491f movq %r15, %rax + 0x4d, 0x85, 0xed, //0x00004922 testq %r13, %r13 + 0x48, 0x8b, 0x75, 0xb0, //0x00004925 movq $-80(%rbp), %rsi + 0x4c, 0x8b, 0x55, 0xb8, //0x00004929 movq $-72(%rbp), %r10 + 0x4c, 0x8d, 0x1d, 0xc8, 0x03, 0x00, 0x00, //0x0000492d leaq $968(%rip), %r11 /* LJTI18_0+0(%rip) */ + 0x0f, 0x8f, 0xa9, 0xfd, 0xff, 0xff, //0x00004934 jg LBB18_6 + 0xe9, 0x5f, 0x02, 0x00, 0x00, //0x0000493a jmp LBB18_88 + //0x0000493f LBB18_48 + 0x80, 0xf9, 0x3a, //0x0000493f cmpb $58, %cl + 0x0f, 0x85, 0xa2, 0x02, 0x00, 0x00, //0x00004942 jne LBB18_87 + 0x4b, 0xc7, 0x04, 0xca, 0x00, 0x00, 0x00, 0x00, //0x00004948 movq $0, (%r10,%r9,8) + 0xe9, 0x8b, 0xfd, 0xff, 0xff, //0x00004950 jmp LBB18_5 + //0x00004955 LBB18_50 + 0x80, 0xf9, 0x5d, //0x00004955 cmpb $93, %cl + 0x0f, 0x85, 0x26, 0x00, 0x00, 0x00, //0x00004958 jne LBB18_55 + //0x0000495e LBB18_39 + 0x49, 0x89, 0x12, //0x0000495e movq %rdx, (%r10) + 0xe9, 0x83, 0xfd, 0xff, 0xff, //0x00004961 jmp LBB18_7 + //0x00004966 LBB18_52 + 0x83, 0xf9, 0x22, //0x00004966 cmpl $34, %ecx + 0x0f, 0x84, 0xdc, 0x00, 0x00, 0x00, //0x00004969 je LBB18_62 + 0x83, 0xf9, 0x7d, //0x0000496f cmpl $125, %ecx + 0x0f, 0x85, 0x72, 0x02, 0x00, 0x00, //0x00004972 jne LBB18_87 + 0x49, 0x89, 0x12, //0x00004978 movq %rdx, (%r10) + 0x4c, 0x8b, 0x45, 0xd0, //0x0000497b movq $-48(%rbp), %r8 + 0xe9, 0x65, 0xfd, 0xff, 0xff, //0x0000497f jmp LBB18_7 + //0x00004984 LBB18_55 + 0x4b, 0xc7, 0x04, 0xca, 0x01, 0x00, 0x00, 0x00, //0x00004984 movq $1, (%r10,%r9,8) + 0x83, 0xf9, 0x7b, //0x0000498c cmpl $123, %ecx + 0x0f, 0x87, 0x55, 0x02, 0x00, 0x00, //0x0000498f ja LBB18_87 + //0x00004995 LBB18_56 + 0x4a, 0x8d, 0x1c, 0x3f, //0x00004995 leaq (%rdi,%r15), %rbx + 0x89, 0xca, //0x00004999 movl %ecx, %edx + 0x48, 0x8d, 0x0d, 0x72, 0x03, 0x00, 0x00, //0x0000499b leaq $882(%rip), %rcx /* LJTI18_1+0(%rip) */ + 0x48, 0x63, 0x14, 0x91, //0x000049a2 movslq (%rcx,%rdx,4), %rdx + 0x48, 0x01, 0xca, //0x000049a6 addq %rcx, %rdx + 0xff, 0xe2, //0x000049a9 jmpq *%rdx + //0x000049ab LBB18_57 + 0x48, 0x8b, 0x45, 0xc8, //0x000049ab movq $-56(%rbp), %rax + 0x48, 0x8b, 0x30, //0x000049af movq (%rax), %rsi + 0x4c, 0x29, 0xfe, //0x000049b2 subq %r15, %rsi + 0x48, 0x89, 0xdf, //0x000049b5 movq %rbx, %rdi + 0xe8, 0xc3, 0x06, 0x00, 0x00, //0x000049b8 callq _do_skip_number + 0x4c, 0x8d, 0x1d, 0x38, 0x03, 0x00, 0x00, //0x000049bd leaq $824(%rip), %r11 /* LJTI18_0+0(%rip) */ + 0x4c, 0x8b, 0x55, 0xb8, //0x000049c4 movq $-72(%rbp), %r10 + 0x48, 0x8b, 0x75, 0xb0, //0x000049c8 movq $-80(%rbp), %rsi + 0x4c, 0x8b, 0x45, 0xd0, //0x000049cc movq $-48(%rbp), %r8 + 0x48, 0xc7, 0xc2, 0xfe, 0xff, 0xff, 0xff, //0x000049d0 movq $-2, %rdx + 0x48, 0x29, 0xc2, //0x000049d7 subq %rax, %rdx + 0x48, 0x85, 0xc0, //0x000049da testq %rax, %rax + 0x48, 0x8d, 0x48, 0xff, //0x000049dd leaq $-1(%rax), %rcx + 0x48, 0x0f, 0x48, 0xca, //0x000049e1 cmovsq %rdx, %rcx + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x000049e5 movq $-2, %rax + 0x4c, 0x0f, 0x48, 0xf8, //0x000049ec cmovsq %rax, %r15 + 0x4c, 0x01, 0xe9, //0x000049f0 addq %r13, %rcx + 0x49, 0x89, 0x08, //0x000049f3 movq %rcx, (%r8) + 0x4c, 0x89, 0xf8, //0x000049f6 movq %r15, %rax + 0x4d, 0x85, 0xff, //0x000049f9 testq %r15, %r15 + 0x0f, 0x89, 0xe1, 0xfc, 0xff, 0xff, //0x000049fc jns LBB18_6 + 0xe9, 0x97, 0x01, 0x00, 0x00, //0x00004a02 jmp LBB18_88 + //0x00004a07 LBB18_58 + 0x49, 0x81, 0xf9, 0xff, 0x0f, 0x00, 0x00, //0x00004a07 cmpq $4095, %r9 + 0x0f, 0x8f, 0x99, 0x01, 0x00, 0x00, //0x00004a0e jg LBB18_82 + 0x49, 0x8d, 0x41, 0x01, //0x00004a14 leaq $1(%r9), %rax + 0x49, 0x89, 0x02, //0x00004a18 movq %rax, (%r10) + 0x4b, 0xc7, 0x44, 0xca, 0x08, 0x00, 0x00, 0x00, 0x00, //0x00004a1b movq $0, $8(%r10,%r9,8) + 0xe9, 0xb7, 0xfc, 0xff, 0xff, //0x00004a24 jmp LBB18_5 + //0x00004a29 LBB18_60 + 0x49, 0x81, 0xf9, 0xff, 0x0f, 0x00, 0x00, //0x00004a29 cmpq $4095, %r9 + 0x0f, 0x8f, 0x77, 0x01, 0x00, 0x00, //0x00004a30 jg LBB18_82 + 0x49, 0x8d, 0x41, 0x01, //0x00004a36 leaq $1(%r9), %rax + 0x49, 0x89, 0x02, //0x00004a3a movq %rax, (%r10) + 0x4b, 0xc7, 0x44, 0xca, 0x08, 0x03, 0x00, 0x00, 0x00, //0x00004a3d movq $3, $8(%r10,%r9,8) + 0xe9, 0x95, 0xfc, 0xff, 0xff, //0x00004a46 jmp LBB18_5 + //0x00004a4b LBB18_62 + 0x4b, 0xc7, 0x04, 0xca, 0x02, 0x00, 0x00, 0x00, //0x00004a4b movq $2, (%r10,%r9,8) + 0x48, 0xc7, 0x45, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00004a53 movq $-1, $-64(%rbp) + 0x48, 0x89, 0xf7, //0x00004a5b movq %rsi, %rdi + 0x4c, 0x89, 0xee, //0x00004a5e movq %r13, %rsi + 0x48, 0x8d, 0x55, 0xc0, //0x00004a61 leaq $-64(%rbp), %rdx + 0x48, 0x8b, 0x4d, 0xa8, //0x00004a65 movq $-88(%rbp), %rcx + 0xe8, 0xa2, 0xed, 0xff, 0xff, //0x00004a69 callq _advance_string + 0x48, 0x89, 0xc1, //0x00004a6e movq %rax, %rcx + 0x48, 0x85, 0xc0, //0x00004a71 testq %rax, %rax + 0x0f, 0x88, 0x3f, 0x01, 0x00, 0x00, //0x00004a74 js LBB18_81 + 0x4c, 0x8b, 0x45, 0xd0, //0x00004a7a movq $-48(%rbp), %r8 + 0x49, 0x89, 0x08, //0x00004a7e movq %rcx, (%r8) + 0x4c, 0x89, 0xf8, //0x00004a81 movq %r15, %rax + 0x4d, 0x85, 0xed, //0x00004a84 testq %r13, %r13 + 0x48, 0x8b, 0x75, 0xb0, //0x00004a87 movq $-80(%rbp), %rsi + 0x4c, 0x8b, 0x55, 0xb8, //0x00004a8b movq $-72(%rbp), %r10 + 0x4c, 0x8d, 0x1d, 0x66, 0x02, 0x00, 0x00, //0x00004a8f leaq $614(%rip), %r11 /* LJTI18_0+0(%rip) */ + 0x0f, 0x8e, 0x02, 0x01, 0x00, 0x00, //0x00004a96 jle LBB18_88 + 0x49, 0x8b, 0x02, //0x00004a9c movq (%r10), %rax + 0x48, 0x3d, 0xff, 0x0f, 0x00, 0x00, //0x00004a9f cmpq $4095, %rax + 0x0f, 0x8f, 0x02, 0x01, 0x00, 0x00, //0x00004aa5 jg LBB18_82 + 0x48, 0x8d, 0x50, 0x01, //0x00004aab leaq $1(%rax), %rdx + 0x49, 0x89, 0x12, //0x00004aaf movq %rdx, (%r10) + 0x49, 0xc7, 0x44, 0xc2, 0x08, 0x04, 0x00, 0x00, 0x00, //0x00004ab2 movq $4, $8(%r10,%rax,8) + 0xe9, 0x23, 0xfc, 0xff, 0xff, //0x00004abb jmp LBB18_6 + //0x00004ac0 LBB18_66 + 0x4c, 0x01, 0xef, //0x00004ac0 addq %r13, %rdi + 0x48, 0x8b, 0x45, 0xc8, //0x00004ac3 movq $-56(%rbp), %rax + 0x48, 0x8b, 0x30, //0x00004ac7 movq (%rax), %rsi + 0x4c, 0x29, 0xee, //0x00004aca subq %r13, %rsi + 0xe8, 0xae, 0x05, 0x00, 0x00, //0x00004acd callq _do_skip_number + 0x48, 0x89, 0xc1, //0x00004ad2 movq %rax, %rcx + 0x48, 0x85, 0xc0, //0x00004ad5 testq %rax, %rax + 0x0f, 0x88, 0x02, 0x01, 0x00, 0x00, //0x00004ad8 js LBB18_86 + 0x4c, 0x01, 0xe9, //0x00004ade addq %r13, %rcx + 0xe9, 0x32, 0xfe, 0xff, 0xff, //0x00004ae1 jmp LBB18_47 + //0x00004ae6 LBB18_68 + 0x49, 0x8b, 0x02, //0x00004ae6 movq (%r10), %rax + 0x48, 0x3d, 0xff, 0x0f, 0x00, 0x00, //0x00004ae9 cmpq $4095, %rax + 0x0f, 0x8f, 0xb8, 0x00, 0x00, 0x00, //0x00004aef jg LBB18_82 + 0x48, 0x8d, 0x48, 0x01, //0x00004af5 leaq $1(%rax), %rcx + 0x49, 0x89, 0x0a, //0x00004af9 movq %rcx, (%r10) + 0x49, 0xc7, 0x44, 0xc2, 0x08, 0x05, 0x00, 0x00, 0x00, //0x00004afc movq $5, $8(%r10,%rax,8) + 0xe9, 0xd6, 0xfb, 0xff, 0xff, //0x00004b05 jmp LBB18_5 + //0x00004b0a LBB18_70 + 0x48, 0x8b, 0x4d, 0xc8, //0x00004b0a movq $-56(%rbp), %rcx + 0x48, 0x8b, 0x09, //0x00004b0e movq (%rcx), %rcx + 0x48, 0x8d, 0x51, 0xfc, //0x00004b11 leaq $-4(%rcx), %rdx + 0x49, 0x39, 0xd7, //0x00004b15 cmpq %rdx, %r15 + 0x0f, 0x83, 0xd8, 0x00, 0x00, 0x00, //0x00004b18 jae LBB18_90 + 0x42, 0x8b, 0x0c, 0x2f, //0x00004b1e movl (%rdi,%r13), %ecx + 0x81, 0xf9, 0x61, 0x6c, 0x73, 0x65, //0x00004b22 cmpl $1702063201, %ecx + 0x0f, 0x85, 0x21, 0x01, 0x00, 0x00, //0x00004b28 jne LBB18_97 + 0x49, 0x8d, 0x4f, 0x05, //0x00004b2e leaq $5(%r15), %rcx + 0xe9, 0x49, 0x00, 0x00, 0x00, //0x00004b32 jmp LBB18_78 + //0x00004b37 LBB18_73 + 0x48, 0x8b, 0x55, 0xc8, //0x00004b37 movq $-56(%rbp), %rdx + 0x48, 0x8b, 0x12, //0x00004b3b movq (%rdx), %rdx + 0x48, 0x8d, 0x4a, 0xfd, //0x00004b3e leaq $-3(%rdx), %rcx + 0x49, 0x39, 0xcf, //0x00004b42 cmpq %rcx, %r15 + 0x0f, 0x83, 0x8d, 0x00, 0x00, 0x00, //0x00004b45 jae LBB18_92 + 0x81, 0x3b, 0x6e, 0x75, 0x6c, 0x6c, //0x00004b4b cmpl $1819047278, (%rbx) + 0x0f, 0x84, 0x25, 0x00, 0x00, 0x00, //0x00004b51 je LBB18_77 + 0xe9, 0x48, 0x01, 0x00, 0x00, //0x00004b57 jmp LBB18_102 + //0x00004b5c LBB18_75 + 0x48, 0x8b, 0x55, 0xc8, //0x00004b5c movq $-56(%rbp), %rdx + 0x48, 0x8b, 0x12, //0x00004b60 movq (%rdx), %rdx + 0x48, 0x8d, 0x4a, 0xfd, //0x00004b63 leaq $-3(%rdx), %rcx + 0x49, 0x39, 0xcf, //0x00004b67 cmpq %rcx, %r15 + 0x0f, 0x83, 0x68, 0x00, 0x00, 0x00, //0x00004b6a jae LBB18_92 + 0x81, 0x3b, 0x74, 0x72, 0x75, 0x65, //0x00004b70 cmpl $1702195828, (%rbx) + 0x0f, 0x85, 0x82, 0x00, 0x00, 0x00, //0x00004b76 jne LBB18_93 + //0x00004b7c LBB18_77 + 0x49, 0x8d, 0x4f, 0x04, //0x00004b7c leaq $4(%r15), %rcx + //0x00004b80 LBB18_78 + 0x49, 0x89, 0x08, //0x00004b80 movq %rcx, (%r8) + 0x4c, 0x89, 0xf8, //0x00004b83 movq %r15, %rax + 0x4d, 0x85, 0xed, //0x00004b86 testq %r13, %r13 + 0x0f, 0x8f, 0x54, 0xfb, 0xff, 0xff, //0x00004b89 jg LBB18_6 + 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x00004b8f jmp LBB18_88 + //0x00004b94 LBB18_79 + 0x49, 0x89, 0x08, //0x00004b94 movq %rcx, (%r8) + //0x00004b97 LBB18_2 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00004b97 movq $-1, %rax + //0x00004b9e LBB18_88 + 0x48, 0x83, 0xc4, 0x38, //0x00004b9e addq $56, %rsp + 0x5b, //0x00004ba2 popq %rbx + 0x41, 0x5c, //0x00004ba3 popq %r12 + 0x41, 0x5d, //0x00004ba5 popq %r13 + 0x41, 0x5e, //0x00004ba7 popq %r14 + 0x41, 0x5f, //0x00004ba9 popq %r15 + 0x5d, //0x00004bab popq %rbp + 0xc3, //0x00004bac retq + //0x00004bad LBB18_82 + 0x48, 0xc7, 0xc0, 0xf9, 0xff, 0xff, 0xff, //0x00004bad movq $-7, %rax + 0xe9, 0xe5, 0xff, 0xff, 0xff, //0x00004bb4 jmp LBB18_88 + //0x00004bb9 LBB18_81 + 0x48, 0x83, 0xf9, 0xff, //0x00004bb9 cmpq $-1, %rcx + 0x48, 0x8d, 0x45, 0xc0, //0x00004bbd leaq $-64(%rbp), %rax + 0x48, 0x0f, 0x44, 0x45, 0xc8, //0x00004bc1 cmoveq $-56(%rbp), %rax + 0x48, 0x8b, 0x00, //0x00004bc6 movq (%rax), %rax + 0x48, 0x8b, 0x55, 0xd0, //0x00004bc9 movq $-48(%rbp), %rdx + 0x48, 0x89, 0x02, //0x00004bcd movq %rax, (%rdx) + 0x48, 0x89, 0xc8, //0x00004bd0 movq %rcx, %rax + 0xe9, 0xc6, 0xff, 0xff, 0xff, //0x00004bd3 jmp LBB18_88 + //0x00004bd8 LBB18_92 + 0x49, 0x89, 0x10, //0x00004bd8 movq %rdx, (%r8) + 0xe9, 0xbe, 0xff, 0xff, 0xff, //0x00004bdb jmp LBB18_88 + //0x00004be0 LBB18_86 + 0x49, 0x29, 0xcf, //0x00004be0 subq %rcx, %r15 + 0x48, 0x8b, 0x45, 0xd0, //0x00004be3 movq $-48(%rbp), %rax + 0x4c, 0x89, 0x38, //0x00004be7 movq %r15, (%rax) + //0x00004bea LBB18_87 + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00004bea movq $-2, %rax + 0xe9, 0xa8, 0xff, 0xff, 0xff, //0x00004bf1 jmp LBB18_88 + //0x00004bf6 LBB18_90 + 0x49, 0x89, 0x08, //0x00004bf6 movq %rcx, (%r8) + 0xe9, 0xa0, 0xff, 0xff, 0xff, //0x00004bf9 jmp LBB18_88 + //0x00004bfe LBB18_93 + 0x4d, 0x89, 0x38, //0x00004bfe movq %r15, (%r8) + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00004c01 movq $-2, %rax + 0x80, 0x3b, 0x74, //0x00004c08 cmpb $116, (%rbx) + 0x0f, 0x85, 0x8d, 0xff, 0xff, 0xff, //0x00004c0b jne LBB18_88 + 0x49, 0x8d, 0x4f, 0x01, //0x00004c11 leaq $1(%r15), %rcx + 0x49, 0x89, 0x08, //0x00004c15 movq %rcx, (%r8) + 0x42, 0x80, 0x7c, 0x3f, 0x01, 0x72, //0x00004c18 cmpb $114, $1(%rdi,%r15) + 0x0f, 0x85, 0x7a, 0xff, 0xff, 0xff, //0x00004c1e jne LBB18_88 + 0x49, 0x8d, 0x4f, 0x02, //0x00004c24 leaq $2(%r15), %rcx + 0x49, 0x89, 0x08, //0x00004c28 movq %rcx, (%r8) + 0x42, 0x80, 0x7c, 0x3f, 0x02, 0x75, //0x00004c2b cmpb $117, $2(%rdi,%r15) + 0x0f, 0x85, 0x67, 0xff, 0xff, 0xff, //0x00004c31 jne LBB18_88 + 0x49, 0x8d, 0x4f, 0x03, //0x00004c37 leaq $3(%r15), %rcx + 0x49, 0x89, 0x08, //0x00004c3b movq %rcx, (%r8) + 0x42, 0x80, 0x7c, 0x3f, 0x03, 0x65, //0x00004c3e cmpb $101, $3(%rdi,%r15) + 0x0f, 0x84, 0xa6, 0x00, 0x00, 0x00, //0x00004c44 je LBB18_106 + 0xe9, 0x4f, 0xff, 0xff, 0xff, //0x00004c4a jmp LBB18_88 + //0x00004c4f LBB18_97 + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00004c4f movq $-2, %rax + 0x80, 0xf9, 0x61, //0x00004c56 cmpb $97, %cl + 0x0f, 0x85, 0x3f, 0xff, 0xff, 0xff, //0x00004c59 jne LBB18_88 + 0x49, 0x8d, 0x4f, 0x02, //0x00004c5f leaq $2(%r15), %rcx + 0x49, 0x89, 0x08, //0x00004c63 movq %rcx, (%r8) + 0x42, 0x80, 0x7c, 0x3f, 0x02, 0x6c, //0x00004c66 cmpb $108, $2(%rdi,%r15) + 0x0f, 0x85, 0x2c, 0xff, 0xff, 0xff, //0x00004c6c jne LBB18_88 + 0x49, 0x8d, 0x4f, 0x03, //0x00004c72 leaq $3(%r15), %rcx + 0x49, 0x89, 0x08, //0x00004c76 movq %rcx, (%r8) + 0x42, 0x80, 0x7c, 0x3f, 0x03, 0x73, //0x00004c79 cmpb $115, $3(%rdi,%r15) + 0x0f, 0x85, 0x19, 0xff, 0xff, 0xff, //0x00004c7f jne LBB18_88 + 0x49, 0x8d, 0x4f, 0x04, //0x00004c85 leaq $4(%r15), %rcx + 0x49, 0x89, 0x08, //0x00004c89 movq %rcx, (%r8) + 0x42, 0x80, 0x7c, 0x3f, 0x04, 0x65, //0x00004c8c cmpb $101, $4(%rdi,%r15) + 0x0f, 0x85, 0x06, 0xff, 0xff, 0xff, //0x00004c92 jne LBB18_88 + 0x49, 0x83, 0xc7, 0x05, //0x00004c98 addq $5, %r15 + 0x4d, 0x89, 0x38, //0x00004c9c movq %r15, (%r8) + 0xe9, 0xfa, 0xfe, 0xff, 0xff, //0x00004c9f jmp LBB18_88 + //0x00004ca4 LBB18_102 + 0x4d, 0x89, 0x38, //0x00004ca4 movq %r15, (%r8) + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00004ca7 movq $-2, %rax + 0x80, 0x3b, 0x6e, //0x00004cae cmpb $110, (%rbx) + 0x0f, 0x85, 0xe7, 0xfe, 0xff, 0xff, //0x00004cb1 jne LBB18_88 + 0x49, 0x8d, 0x4f, 0x01, //0x00004cb7 leaq $1(%r15), %rcx + 0x49, 0x89, 0x08, //0x00004cbb movq %rcx, (%r8) + 0x42, 0x80, 0x7c, 0x3f, 0x01, 0x75, //0x00004cbe cmpb $117, $1(%rdi,%r15) + 0x0f, 0x85, 0xd4, 0xfe, 0xff, 0xff, //0x00004cc4 jne LBB18_88 + 0x49, 0x8d, 0x4f, 0x02, //0x00004cca leaq $2(%r15), %rcx + 0x49, 0x89, 0x08, //0x00004cce movq %rcx, (%r8) + 0x42, 0x80, 0x7c, 0x3f, 0x02, 0x6c, //0x00004cd1 cmpb $108, $2(%rdi,%r15) + 0x0f, 0x85, 0xc1, 0xfe, 0xff, 0xff, //0x00004cd7 jne LBB18_88 + 0x49, 0x8d, 0x4f, 0x03, //0x00004cdd leaq $3(%r15), %rcx + 0x49, 0x89, 0x08, //0x00004ce1 movq %rcx, (%r8) + 0x42, 0x80, 0x7c, 0x3f, 0x03, 0x6c, //0x00004ce4 cmpb $108, $3(%rdi,%r15) + 0x0f, 0x85, 0xae, 0xfe, 0xff, 0xff, //0x00004cea jne LBB18_88 + //0x00004cf0 LBB18_106 + 0x49, 0x83, 0xc7, 0x04, //0x00004cf0 addq $4, %r15 + 0x4d, 0x89, 0x38, //0x00004cf4 movq %r15, (%r8) + 0xe9, 0xa2, 0xfe, 0xff, 0xff, //0x00004cf7 jmp LBB18_88 + //0x00004cfc .p2align 2, 0x90 + // // .set L18_0_set_37, LBB18_37-LJTI18_0 + // // .set L18_0_set_41, LBB18_41-LJTI18_0 + // // .set L18_0_set_44, LBB18_44-LJTI18_0 + // // .set L18_0_set_48, LBB18_48-LJTI18_0 + // // .set L18_0_set_50, LBB18_50-LJTI18_0 + // // .set L18_0_set_52, LBB18_52-LJTI18_0 + //0x00004cfc LJTI18_0 + 0xa5, 0xfb, 0xff, 0xff, //0x00004cfc .long L18_0_set_37 + 0xcd, 0xfb, 0xff, 0xff, //0x00004d00 .long L18_0_set_41 + 0xe4, 0xfb, 0xff, 0xff, //0x00004d04 .long L18_0_set_44 + 0x43, 0xfc, 0xff, 0xff, //0x00004d08 .long L18_0_set_48 + 0x59, 0xfc, 0xff, 0xff, //0x00004d0c .long L18_0_set_50 + 0x6a, 0xfc, 0xff, 0xff, //0x00004d10 .long L18_0_set_52 + // // .set L18_1_set_88, LBB18_88-LJTI18_1 + // // .set L18_1_set_87, LBB18_87-LJTI18_1 + // // .set L18_1_set_46, LBB18_46-LJTI18_1 + // // .set L18_1_set_66, LBB18_66-LJTI18_1 + // // .set L18_1_set_57, LBB18_57-LJTI18_1 + // // .set L18_1_set_68, LBB18_68-LJTI18_1 + // // .set L18_1_set_70, LBB18_70-LJTI18_1 + // // .set L18_1_set_73, LBB18_73-LJTI18_1 + // // .set L18_1_set_75, LBB18_75-LJTI18_1 + // // .set L18_1_set_3, LBB18_3-LJTI18_1 + //0x00004d14 LJTI18_1 + 0x8a, 0xfe, 0xff, 0xff, //0x00004d14 .long L18_1_set_88 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d18 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d1c .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d20 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d24 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d28 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d2c .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d30 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d34 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d38 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d3c .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d40 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d44 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d48 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d4c .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d50 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d54 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d58 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d5c .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d60 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d64 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d68 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d6c .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d70 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d74 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d78 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d7c .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d80 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d84 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d88 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d8c .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d90 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d94 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004d98 .long L18_1_set_87 + 0xdd, 0xfb, 0xff, 0xff, //0x00004d9c .long L18_1_set_46 + 0xd6, 0xfe, 0xff, 0xff, //0x00004da0 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004da4 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004da8 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004dac .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004db0 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004db4 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004db8 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004dbc .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004dc0 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004dc4 .long L18_1_set_87 + 0xac, 0xfd, 0xff, 0xff, //0x00004dc8 .long L18_1_set_66 + 0xd6, 0xfe, 0xff, 0xff, //0x00004dcc .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004dd0 .long L18_1_set_87 + 0x97, 0xfc, 0xff, 0xff, //0x00004dd4 .long L18_1_set_57 + 0x97, 0xfc, 0xff, 0xff, //0x00004dd8 .long L18_1_set_57 + 0x97, 0xfc, 0xff, 0xff, //0x00004ddc .long L18_1_set_57 + 0x97, 0xfc, 0xff, 0xff, //0x00004de0 .long L18_1_set_57 + 0x97, 0xfc, 0xff, 0xff, //0x00004de4 .long L18_1_set_57 + 0x97, 0xfc, 0xff, 0xff, //0x00004de8 .long L18_1_set_57 + 0x97, 0xfc, 0xff, 0xff, //0x00004dec .long L18_1_set_57 + 0x97, 0xfc, 0xff, 0xff, //0x00004df0 .long L18_1_set_57 + 0x97, 0xfc, 0xff, 0xff, //0x00004df4 .long L18_1_set_57 + 0x97, 0xfc, 0xff, 0xff, //0x00004df8 .long L18_1_set_57 + 0xd6, 0xfe, 0xff, 0xff, //0x00004dfc .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e00 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e04 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e08 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e0c .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e10 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e14 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e18 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e1c .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e20 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e24 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e28 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e2c .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e30 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e34 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e38 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e3c .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e40 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e44 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e48 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e4c .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e50 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e54 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e58 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e5c .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e60 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e64 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e68 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e6c .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e70 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e74 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e78 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e7c .long L18_1_set_87 + 0xd2, 0xfd, 0xff, 0xff, //0x00004e80 .long L18_1_set_68 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e84 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e88 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e8c .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e90 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e94 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e98 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004e9c .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004ea0 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004ea4 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004ea8 .long L18_1_set_87 + 0xf6, 0xfd, 0xff, 0xff, //0x00004eac .long L18_1_set_70 + 0xd6, 0xfe, 0xff, 0xff, //0x00004eb0 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004eb4 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004eb8 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004ebc .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004ec0 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004ec4 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004ec8 .long L18_1_set_87 + 0x23, 0xfe, 0xff, 0xff, //0x00004ecc .long L18_1_set_73 + 0xd6, 0xfe, 0xff, 0xff, //0x00004ed0 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004ed4 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004ed8 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004edc .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004ee0 .long L18_1_set_87 + 0x48, 0xfe, 0xff, 0xff, //0x00004ee4 .long L18_1_set_75 + 0xd6, 0xfe, 0xff, 0xff, //0x00004ee8 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004eec .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004ef0 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004ef4 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004ef8 .long L18_1_set_87 + 0xd6, 0xfe, 0xff, 0xff, //0x00004efc .long L18_1_set_87 + 0xa7, 0xf9, 0xff, 0xff, //0x00004f00 .long L18_1_set_3 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004f04 .p2align 4, 0x00 + //0x00004f10 LCPI19_0 + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004f10 .quad 1 + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004f18 .quad 6 + //0x00004f20 .p2align 4, 0x90 + //0x00004f20 _skip_object + 0x55, //0x00004f20 pushq %rbp + 0x48, 0x89, 0xe5, //0x00004f21 movq %rsp, %rbp + 0x48, 0x89, 0xd0, //0x00004f24 movq %rdx, %rax + 0x48, 0x89, 0xf2, //0x00004f27 movq %rsi, %rdx + 0x48, 0x89, 0xfe, //0x00004f2a movq %rdi, %rsi + 0x0f, 0x28, 0x05, 0xdc, 0xff, 0xff, 0xff, //0x00004f2d movaps $-36(%rip), %xmm0 /* LCPI19_0+0(%rip) */ + 0x0f, 0x11, 0x00, //0x00004f34 movups %xmm0, (%rax) + 0x48, 0x89, 0xc7, //0x00004f37 movq %rax, %rdi + 0x5d, //0x00004f3a popq %rbp + 0xe9, 0x20, 0xf7, 0xff, 0xff, //0x00004f3b jmp _fsm_exec + //0x00004f40 .p2align 4, 0x90 + //0x00004f40 _skip_string + 0x55, //0x00004f40 pushq %rbp + 0x48, 0x89, 0xe5, //0x00004f41 movq %rsp, %rbp + 0x41, 0x57, //0x00004f44 pushq %r15 + 0x41, 0x56, //0x00004f46 pushq %r14 + 0x41, 0x54, //0x00004f48 pushq %r12 + 0x53, //0x00004f4a pushq %rbx + 0x48, 0x83, 0xec, 0x10, //0x00004f4b subq $16, %rsp + 0x48, 0x89, 0xd1, //0x00004f4f movq %rdx, %rcx + 0x49, 0x89, 0xf6, //0x00004f52 movq %rsi, %r14 + 0x49, 0x89, 0xff, //0x00004f55 movq %rdi, %r15 + 0x48, 0xc7, 0x45, 0xd8, 0xff, 0xff, 0xff, 0xff, //0x00004f58 movq $-1, $-40(%rbp) + 0x48, 0x8b, 0x1e, //0x00004f60 movq (%rsi), %rbx + 0x4c, 0x8d, 0x65, 0xd8, //0x00004f63 leaq $-40(%rbp), %r12 + 0x48, 0x89, 0xde, //0x00004f67 movq %rbx, %rsi + 0x4c, 0x89, 0xe2, //0x00004f6a movq %r12, %rdx + 0xe8, 0x9e, 0xe8, 0xff, 0xff, //0x00004f6d callq _advance_string + 0x48, 0x85, 0xc0, //0x00004f72 testq %rax, %rax + 0x0f, 0x88, 0x0e, 0x00, 0x00, 0x00, //0x00004f75 js LBB20_1 + 0x48, 0xff, 0xcb, //0x00004f7b decq %rbx + 0x48, 0x89, 0xc1, //0x00004f7e movq %rax, %rcx + 0x48, 0x89, 0xd8, //0x00004f81 movq %rbx, %rax + 0xe9, 0x10, 0x00, 0x00, 0x00, //0x00004f84 jmp LBB20_3 + //0x00004f89 LBB20_1 + 0x49, 0x83, 0xc7, 0x08, //0x00004f89 addq $8, %r15 + 0x48, 0x83, 0xf8, 0xff, //0x00004f8d cmpq $-1, %rax + 0x4d, 0x0f, 0x44, 0xe7, //0x00004f91 cmoveq %r15, %r12 + 0x49, 0x8b, 0x0c, 0x24, //0x00004f95 movq (%r12), %rcx + //0x00004f99 LBB20_3 + 0x49, 0x89, 0x0e, //0x00004f99 movq %rcx, (%r14) + 0x48, 0x83, 0xc4, 0x10, //0x00004f9c addq $16, %rsp + 0x5b, //0x00004fa0 popq %rbx + 0x41, 0x5c, //0x00004fa1 popq %r12 + 0x41, 0x5e, //0x00004fa3 popq %r14 + 0x41, 0x5f, //0x00004fa5 popq %r15 + 0x5d, //0x00004fa7 popq %rbp + 0xc3, //0x00004fa8 retq + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00004fa9 .p2align 4, 0x90 + //0x00004fb0 _skip_negative + 0x55, //0x00004fb0 pushq %rbp + 0x48, 0x89, 0xe5, //0x00004fb1 movq %rsp, %rbp + 0x41, 0x56, //0x00004fb4 pushq %r14 + 0x53, //0x00004fb6 pushq %rbx + 0x49, 0x89, 0xf6, //0x00004fb7 movq %rsi, %r14 + 0x48, 0x8b, 0x1e, //0x00004fba movq (%rsi), %rbx + 0x48, 0x8b, 0x07, //0x00004fbd movq (%rdi), %rax + 0x48, 0x01, 0xd8, //0x00004fc0 addq %rbx, %rax + 0x48, 0x8b, 0x77, 0x08, //0x00004fc3 movq $8(%rdi), %rsi + 0x48, 0x29, 0xde, //0x00004fc7 subq %rbx, %rsi + 0x48, 0x89, 0xc7, //0x00004fca movq %rax, %rdi + 0xe8, 0xae, 0x00, 0x00, 0x00, //0x00004fcd callq _do_skip_number + 0x48, 0x85, 0xc0, //0x00004fd2 testq %rax, %rax + 0x0f, 0x88, 0x0e, 0x00, 0x00, 0x00, //0x00004fd5 js LBB21_1 + 0x48, 0x01, 0xd8, //0x00004fdb addq %rbx, %rax + 0x49, 0x89, 0x06, //0x00004fde movq %rax, (%r14) + 0x48, 0xff, 0xcb, //0x00004fe1 decq %rbx + 0xe9, 0x10, 0x00, 0x00, 0x00, //0x00004fe4 jmp LBB21_3 + //0x00004fe9 LBB21_1 + 0x48, 0xf7, 0xd0, //0x00004fe9 notq %rax + 0x48, 0x01, 0xc3, //0x00004fec addq %rax, %rbx + 0x49, 0x89, 0x1e, //0x00004fef movq %rbx, (%r14) + 0x48, 0xc7, 0xc3, 0xfe, 0xff, 0xff, 0xff, //0x00004ff2 movq $-2, %rbx + //0x00004ff9 LBB21_3 + 0x48, 0x89, 0xd8, //0x00004ff9 movq %rbx, %rax + 0x5b, //0x00004ffc popq %rbx + 0x41, 0x5e, //0x00004ffd popq %r14 + 0x5d, //0x00004fff popq %rbp + 0xc3, //0x00005000 retq + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005001 .p2align 4, 0x00 + //0x00005010 LCPI22_0 + 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, //0x00005010 QUAD $0x2f2f2f2f2f2f2f2f; QUAD $0x2f2f2f2f2f2f2f2f // .space 16, '////////////////' + //0x00005020 LCPI22_1 + 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, //0x00005020 QUAD $0x3a3a3a3a3a3a3a3a; QUAD $0x3a3a3a3a3a3a3a3a // .space 16, '::::::::::::::::' + //0x00005030 LCPI22_2 + 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, //0x00005030 QUAD $0x2b2b2b2b2b2b2b2b; QUAD $0x2b2b2b2b2b2b2b2b // .space 16, '++++++++++++++++' + //0x00005040 LCPI22_3 + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, //0x00005040 QUAD $0x2d2d2d2d2d2d2d2d; QUAD $0x2d2d2d2d2d2d2d2d // .space 16, '----------------' + //0x00005050 LCPI22_4 + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x00005050 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' + //0x00005060 LCPI22_5 + 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, //0x00005060 QUAD $0x2e2e2e2e2e2e2e2e; QUAD $0x2e2e2e2e2e2e2e2e // .space 16, '................' + //0x00005070 LCPI22_6 + 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, //0x00005070 QUAD $0x6565656565656565; QUAD $0x6565656565656565 // .space 16, 'eeeeeeeeeeeeeeee' + //0x00005080 .p2align 4, 0x90 + //0x00005080 _do_skip_number + 0x55, //0x00005080 pushq %rbp + 0x48, 0x89, 0xe5, //0x00005081 movq %rsp, %rbp + 0x41, 0x57, //0x00005084 pushq %r15 + 0x41, 0x56, //0x00005086 pushq %r14 + 0x41, 0x55, //0x00005088 pushq %r13 + 0x41, 0x54, //0x0000508a pushq %r12 + 0x53, //0x0000508c pushq %rbx + 0x48, 0x85, 0xf6, //0x0000508d testq %rsi, %rsi + 0x0f, 0x84, 0x84, 0x02, 0x00, 0x00, //0x00005090 je LBB22_34 + 0x80, 0x3f, 0x30, //0x00005096 cmpb $48, (%rdi) + 0x0f, 0x85, 0x33, 0x00, 0x00, 0x00, //0x00005099 jne LBB22_5 + 0xba, 0x01, 0x00, 0x00, 0x00, //0x0000509f movl $1, %edx + 0x48, 0x83, 0xfe, 0x01, //0x000050a4 cmpq $1, %rsi + 0x0f, 0x84, 0x40, 0x03, 0x00, 0x00, //0x000050a8 je LBB22_52 + 0x8a, 0x47, 0x01, //0x000050ae movb $1(%rdi), %al + 0x04, 0xd2, //0x000050b1 addb $-46, %al + 0x3c, 0x37, //0x000050b3 cmpb $55, %al + 0x0f, 0x87, 0x33, 0x03, 0x00, 0x00, //0x000050b5 ja LBB22_52 + 0x0f, 0xb6, 0xc0, //0x000050bb movzbl %al, %eax + 0x48, 0xb9, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, //0x000050be movabsq $36028797027352577, %rcx + 0x48, 0x0f, 0xa3, 0xc1, //0x000050c8 btq %rax, %rcx + 0x0f, 0x83, 0x1c, 0x03, 0x00, 0x00, //0x000050cc jae LBB22_52 + //0x000050d2 LBB22_5 + 0x48, 0x83, 0xfe, 0x10, //0x000050d2 cmpq $16, %rsi + 0x0f, 0x82, 0x40, 0x03, 0x00, 0x00, //0x000050d6 jb LBB22_57 + 0x4c, 0x8d, 0x5e, 0xf0, //0x000050dc leaq $-16(%rsi), %r11 + 0x4c, 0x89, 0xd8, //0x000050e0 movq %r11, %rax + 0x48, 0x83, 0xe0, 0xf0, //0x000050e3 andq $-16, %rax + 0x4c, 0x8d, 0x54, 0x38, 0x10, //0x000050e7 leaq $16(%rax,%rdi), %r10 + 0x41, 0x83, 0xe3, 0x0f, //0x000050ec andl $15, %r11d + 0x49, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x000050f0 movq $-1, %r9 + 0x66, 0x44, 0x0f, 0x6f, 0x05, 0x10, 0xff, 0xff, 0xff, //0x000050f7 movdqa $-240(%rip), %xmm8 /* LCPI22_0+0(%rip) */ + 0x66, 0x44, 0x0f, 0x6f, 0x15, 0x17, 0xff, 0xff, 0xff, //0x00005100 movdqa $-233(%rip), %xmm10 /* LCPI22_1+0(%rip) */ + 0x66, 0x44, 0x0f, 0x6f, 0x0d, 0x1e, 0xff, 0xff, 0xff, //0x00005109 movdqa $-226(%rip), %xmm9 /* LCPI22_2+0(%rip) */ + 0x66, 0x0f, 0x6f, 0x1d, 0x26, 0xff, 0xff, 0xff, //0x00005112 movdqa $-218(%rip), %xmm3 /* LCPI22_3+0(%rip) */ + 0x66, 0x0f, 0x6f, 0x25, 0x2e, 0xff, 0xff, 0xff, //0x0000511a movdqa $-210(%rip), %xmm4 /* LCPI22_4+0(%rip) */ + 0x66, 0x0f, 0x6f, 0x2d, 0x36, 0xff, 0xff, 0xff, //0x00005122 movdqa $-202(%rip), %xmm5 /* LCPI22_5+0(%rip) */ + 0x66, 0x0f, 0x6f, 0x35, 0x3e, 0xff, 0xff, 0xff, //0x0000512a movdqa $-194(%rip), %xmm6 /* LCPI22_6+0(%rip) */ + 0x41, 0xbe, 0xff, 0xff, 0xff, 0xff, //0x00005132 movl $4294967295, %r14d + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00005138 movq $-1, %rax + 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x0000513f movq $-1, %r8 + 0x49, 0x89, 0xff, //0x00005146 movq %rdi, %r15 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00005149 .p2align 4, 0x90 + //0x00005150 LBB22_7 + 0xf3, 0x41, 0x0f, 0x6f, 0x3f, //0x00005150 movdqu (%r15), %xmm7 + 0x66, 0x0f, 0x6f, 0xc7, //0x00005155 movdqa %xmm7, %xmm0 + 0x66, 0x41, 0x0f, 0x64, 0xc0, //0x00005159 pcmpgtb %xmm8, %xmm0 + 0x66, 0x41, 0x0f, 0x6f, 0xca, //0x0000515e movdqa %xmm10, %xmm1 + 0x66, 0x0f, 0x64, 0xcf, //0x00005163 pcmpgtb %xmm7, %xmm1 + 0x66, 0x0f, 0xdb, 0xc8, //0x00005167 pand %xmm0, %xmm1 + 0x66, 0x0f, 0x6f, 0xc7, //0x0000516b movdqa %xmm7, %xmm0 + 0x66, 0x41, 0x0f, 0x74, 0xc1, //0x0000516f pcmpeqb %xmm9, %xmm0 + 0x66, 0x0f, 0x6f, 0xd7, //0x00005174 movdqa %xmm7, %xmm2 + 0x66, 0x0f, 0x74, 0xd3, //0x00005178 pcmpeqb %xmm3, %xmm2 + 0x66, 0x0f, 0xeb, 0xd0, //0x0000517c por %xmm0, %xmm2 + 0x66, 0x0f, 0x6f, 0xc7, //0x00005180 movdqa %xmm7, %xmm0 + 0x66, 0x0f, 0xeb, 0xc4, //0x00005184 por %xmm4, %xmm0 + 0x66, 0x0f, 0x74, 0xc6, //0x00005188 pcmpeqb %xmm6, %xmm0 + 0x66, 0x0f, 0x74, 0xfd, //0x0000518c pcmpeqb %xmm5, %xmm7 + 0x66, 0x44, 0x0f, 0xd7, 0xe8, //0x00005190 pmovmskb %xmm0, %r13d + 0x66, 0x0f, 0xeb, 0xc7, //0x00005195 por %xmm7, %xmm0 + 0x66, 0x0f, 0xeb, 0xca, //0x00005199 por %xmm2, %xmm1 + 0x66, 0x0f, 0xeb, 0xc8, //0x0000519d por %xmm0, %xmm1 + 0x66, 0x0f, 0xd7, 0xd7, //0x000051a1 pmovmskb %xmm7, %edx + 0x66, 0x44, 0x0f, 0xd7, 0xe2, //0x000051a5 pmovmskb %xmm2, %r12d + 0x66, 0x0f, 0xd7, 0xc9, //0x000051aa pmovmskb %xmm1, %ecx + 0x4c, 0x31, 0xf1, //0x000051ae xorq %r14, %rcx + 0x48, 0x0f, 0xbc, 0xc9, //0x000051b1 bsfq %rcx, %rcx + 0x83, 0xf9, 0x10, //0x000051b5 cmpl $16, %ecx + 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x000051b8 je LBB22_9 + 0xbb, 0xff, 0xff, 0xff, 0xff, //0x000051be movl $-1, %ebx + 0xd3, 0xe3, //0x000051c3 shll %cl, %ebx + 0xf7, 0xd3, //0x000051c5 notl %ebx + 0x21, 0xda, //0x000051c7 andl %ebx, %edx + 0x41, 0x21, 0xdd, //0x000051c9 andl %ebx, %r13d + 0x44, 0x21, 0xe3, //0x000051cc andl %r12d, %ebx + 0x41, 0x89, 0xdc, //0x000051cf movl %ebx, %r12d + //0x000051d2 LBB22_9 + 0x8d, 0x5a, 0xff, //0x000051d2 leal $-1(%rdx), %ebx + 0x21, 0xd3, //0x000051d5 andl %edx, %ebx + 0x0f, 0x85, 0x05, 0x02, 0x00, 0x00, //0x000051d7 jne LBB22_50 + 0x41, 0x8d, 0x5d, 0xff, //0x000051dd leal $-1(%r13), %ebx + 0x44, 0x21, 0xeb, //0x000051e1 andl %r13d, %ebx + 0x0f, 0x85, 0xf8, 0x01, 0x00, 0x00, //0x000051e4 jne LBB22_50 + 0x41, 0x8d, 0x5c, 0x24, 0xff, //0x000051ea leal $-1(%r12), %ebx + 0x44, 0x21, 0xe3, //0x000051ef andl %r12d, %ebx + 0x0f, 0x85, 0xea, 0x01, 0x00, 0x00, //0x000051f2 jne LBB22_50 + 0x85, 0xd2, //0x000051f8 testl %edx, %edx + 0x0f, 0x84, 0x19, 0x00, 0x00, 0x00, //0x000051fa je LBB22_15 + 0x4c, 0x89, 0xfb, //0x00005200 movq %r15, %rbx + 0x48, 0x29, 0xfb, //0x00005203 subq %rdi, %rbx + 0x0f, 0xbc, 0xd2, //0x00005206 bsfl %edx, %edx + 0x48, 0x01, 0xda, //0x00005209 addq %rbx, %rdx + 0x49, 0x83, 0xf8, 0xff, //0x0000520c cmpq $-1, %r8 + 0x0f, 0x85, 0xd5, 0x01, 0x00, 0x00, //0x00005210 jne LBB22_51 + 0x49, 0x89, 0xd0, //0x00005216 movq %rdx, %r8 + //0x00005219 LBB22_15 + 0x45, 0x85, 0xed, //0x00005219 testl %r13d, %r13d + 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x0000521c je LBB22_18 + 0x4c, 0x89, 0xfb, //0x00005222 movq %r15, %rbx + 0x48, 0x29, 0xfb, //0x00005225 subq %rdi, %rbx + 0x41, 0x0f, 0xbc, 0xd5, //0x00005228 bsfl %r13d, %edx + 0x48, 0x01, 0xda, //0x0000522c addq %rbx, %rdx + 0x48, 0x83, 0xf8, 0xff, //0x0000522f cmpq $-1, %rax + 0x0f, 0x85, 0xb2, 0x01, 0x00, 0x00, //0x00005233 jne LBB22_51 + 0x48, 0x89, 0xd0, //0x00005239 movq %rdx, %rax + //0x0000523c LBB22_18 + 0x45, 0x85, 0xe4, //0x0000523c testl %r12d, %r12d + 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x0000523f je LBB22_21 + 0x4c, 0x89, 0xfb, //0x00005245 movq %r15, %rbx + 0x48, 0x29, 0xfb, //0x00005248 subq %rdi, %rbx + 0x41, 0x0f, 0xbc, 0xd4, //0x0000524b bsfl %r12d, %edx + 0x48, 0x01, 0xda, //0x0000524f addq %rbx, %rdx + 0x49, 0x83, 0xf9, 0xff, //0x00005252 cmpq $-1, %r9 + 0x0f, 0x85, 0x8f, 0x01, 0x00, 0x00, //0x00005256 jne LBB22_51 + 0x49, 0x89, 0xd1, //0x0000525c movq %rdx, %r9 + //0x0000525f LBB22_21 + 0x83, 0xf9, 0x10, //0x0000525f cmpl $16, %ecx + 0x0f, 0x85, 0xbe, 0x00, 0x00, 0x00, //0x00005262 jne LBB22_35 + 0x49, 0x83, 0xc7, 0x10, //0x00005268 addq $16, %r15 + 0x48, 0x83, 0xc6, 0xf0, //0x0000526c addq $-16, %rsi + 0x48, 0x83, 0xfe, 0x0f, //0x00005270 cmpq $15, %rsi + 0x0f, 0x87, 0xd6, 0xfe, 0xff, 0xff, //0x00005274 ja LBB22_7 + 0x4d, 0x85, 0xdb, //0x0000527a testq %r11, %r11 + 0x0f, 0x84, 0xa9, 0x00, 0x00, 0x00, //0x0000527d je LBB22_36 + //0x00005283 LBB22_24 + 0x4b, 0x8d, 0x0c, 0x1a, //0x00005283 leaq (%r10,%r11), %rcx + 0x48, 0x8d, 0x35, 0xae, 0x01, 0x00, 0x00, //0x00005287 leaq $430(%rip), %rsi /* LJTI22_0+0(%rip) */ + 0xe9, 0x19, 0x00, 0x00, 0x00, //0x0000528e jmp LBB22_26 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00005293 .p2align 4, 0x90 + //0x000052a0 LBB22_25 + 0x49, 0x89, 0xda, //0x000052a0 movq %rbx, %r10 + 0x49, 0xff, 0xcb, //0x000052a3 decq %r11 + 0x0f, 0x84, 0x50, 0x01, 0x00, 0x00, //0x000052a6 je LBB22_54 + //0x000052ac LBB22_26 + 0x41, 0x0f, 0xbe, 0x12, //0x000052ac movsbl (%r10), %edx + 0x83, 0xc2, 0xd5, //0x000052b0 addl $-43, %edx + 0x83, 0xfa, 0x3a, //0x000052b3 cmpl $58, %edx + 0x0f, 0x87, 0x70, 0x00, 0x00, 0x00, //0x000052b6 ja LBB22_36 + 0x49, 0x8d, 0x5a, 0x01, //0x000052bc leaq $1(%r10), %rbx + 0x48, 0x63, 0x14, 0x96, //0x000052c0 movslq (%rsi,%rdx,4), %rdx + 0x48, 0x01, 0xf2, //0x000052c4 addq %rsi, %rdx + 0xff, 0xe2, //0x000052c7 jmpq *%rdx + //0x000052c9 LBB22_28 + 0x48, 0x89, 0xda, //0x000052c9 movq %rbx, %rdx + 0x48, 0x29, 0xfa, //0x000052cc subq %rdi, %rdx + 0x49, 0x83, 0xf9, 0xff, //0x000052cf cmpq $-1, %r9 + 0x0f, 0x85, 0x3b, 0x01, 0x00, 0x00, //0x000052d3 jne LBB22_58 + 0x48, 0xff, 0xca, //0x000052d9 decq %rdx + 0x49, 0x89, 0xd1, //0x000052dc movq %rdx, %r9 + 0xe9, 0xbc, 0xff, 0xff, 0xff, //0x000052df jmp LBB22_25 + //0x000052e4 LBB22_30 + 0x48, 0x89, 0xda, //0x000052e4 movq %rbx, %rdx + 0x48, 0x29, 0xfa, //0x000052e7 subq %rdi, %rdx + 0x48, 0x83, 0xf8, 0xff, //0x000052ea cmpq $-1, %rax + 0x0f, 0x85, 0x20, 0x01, 0x00, 0x00, //0x000052ee jne LBB22_58 + 0x48, 0xff, 0xca, //0x000052f4 decq %rdx + 0x48, 0x89, 0xd0, //0x000052f7 movq %rdx, %rax + 0xe9, 0xa1, 0xff, 0xff, 0xff, //0x000052fa jmp LBB22_25 + //0x000052ff LBB22_32 + 0x48, 0x89, 0xda, //0x000052ff movq %rbx, %rdx + 0x48, 0x29, 0xfa, //0x00005302 subq %rdi, %rdx + 0x49, 0x83, 0xf8, 0xff, //0x00005305 cmpq $-1, %r8 + 0x0f, 0x85, 0x05, 0x01, 0x00, 0x00, //0x00005309 jne LBB22_58 + 0x48, 0xff, 0xca, //0x0000530f decq %rdx + 0x49, 0x89, 0xd0, //0x00005312 movq %rdx, %r8 + 0xe9, 0x86, 0xff, 0xff, 0xff, //0x00005315 jmp LBB22_25 + //0x0000531a LBB22_34 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x0000531a movq $-1, %rax + 0xe9, 0xcb, 0x00, 0x00, 0x00, //0x00005321 jmp LBB22_53 + //0x00005326 LBB22_35 + 0x49, 0x01, 0xcf, //0x00005326 addq %rcx, %r15 + 0x4d, 0x89, 0xfa, //0x00005329 movq %r15, %r10 + //0x0000532c LBB22_36 + 0x48, 0xc7, 0xc2, 0xff, 0xff, 0xff, 0xff, //0x0000532c movq $-1, %rdx + 0x48, 0x85, 0xc0, //0x00005333 testq %rax, %rax + 0x0f, 0x84, 0xb2, 0x00, 0x00, 0x00, //0x00005336 je LBB22_52 + //0x0000533c LBB22_37 + 0x4d, 0x85, 0xc9, //0x0000533c testq %r9, %r9 + 0x0f, 0x84, 0xa9, 0x00, 0x00, 0x00, //0x0000533f je LBB22_52 + 0x4d, 0x85, 0xc0, //0x00005345 testq %r8, %r8 + 0x0f, 0x84, 0xa0, 0x00, 0x00, 0x00, //0x00005348 je LBB22_52 + 0x49, 0x29, 0xfa, //0x0000534e subq %rdi, %r10 + 0x49, 0x8d, 0x4a, 0xff, //0x00005351 leaq $-1(%r10), %rcx + 0x48, 0x39, 0xc8, //0x00005355 cmpq %rcx, %rax + 0x0f, 0x84, 0x36, 0x00, 0x00, 0x00, //0x00005358 je LBB22_45 + 0x49, 0x39, 0xc8, //0x0000535e cmpq %rcx, %r8 + 0x0f, 0x84, 0x2d, 0x00, 0x00, 0x00, //0x00005361 je LBB22_45 + 0x49, 0x39, 0xc9, //0x00005367 cmpq %rcx, %r9 + 0x0f, 0x84, 0x24, 0x00, 0x00, 0x00, //0x0000536a je LBB22_45 + 0x4d, 0x85, 0xc9, //0x00005370 testq %r9, %r9 + 0x0f, 0x8e, 0x29, 0x00, 0x00, 0x00, //0x00005373 jle LBB22_46 + 0x49, 0x8d, 0x49, 0xff, //0x00005379 leaq $-1(%r9), %rcx + 0x48, 0x39, 0xc8, //0x0000537d cmpq %rcx, %rax + 0x0f, 0x84, 0x1c, 0x00, 0x00, 0x00, //0x00005380 je LBB22_46 + 0x49, 0xf7, 0xd1, //0x00005386 notq %r9 + 0x4c, 0x89, 0xca, //0x00005389 movq %r9, %rdx + 0x4c, 0x89, 0xc8, //0x0000538c movq %r9, %rax + 0xe9, 0x5d, 0x00, 0x00, 0x00, //0x0000538f jmp LBB22_53 + //0x00005394 LBB22_45 + 0x49, 0xf7, 0xda, //0x00005394 negq %r10 + 0x4c, 0x89, 0xd2, //0x00005397 movq %r10, %rdx + 0x4c, 0x89, 0xd0, //0x0000539a movq %r10, %rax + 0xe9, 0x4f, 0x00, 0x00, 0x00, //0x0000539d jmp LBB22_53 + //0x000053a2 LBB22_46 + 0x4c, 0x89, 0xc1, //0x000053a2 movq %r8, %rcx + 0x48, 0x09, 0xc1, //0x000053a5 orq %rax, %rcx + 0x49, 0x39, 0xc0, //0x000053a8 cmpq %rax, %r8 + 0x0f, 0x8c, 0x17, 0x00, 0x00, 0x00, //0x000053ab jl LBB22_49 + 0x48, 0x85, 0xc9, //0x000053b1 testq %rcx, %rcx + 0x0f, 0x88, 0x0e, 0x00, 0x00, 0x00, //0x000053b4 js LBB22_49 + 0x49, 0xf7, 0xd0, //0x000053ba notq %r8 + 0x4c, 0x89, 0xc2, //0x000053bd movq %r8, %rdx + 0x4c, 0x89, 0xc0, //0x000053c0 movq %r8, %rax + 0xe9, 0x29, 0x00, 0x00, 0x00, //0x000053c3 jmp LBB22_53 + //0x000053c8 LBB22_49 + 0x48, 0x85, 0xc9, //0x000053c8 testq %rcx, %rcx + 0x48, 0x8d, 0x48, 0xff, //0x000053cb leaq $-1(%rax), %rcx + 0x48, 0xf7, 0xd0, //0x000053cf notq %rax + 0x49, 0x0f, 0x48, 0xc2, //0x000053d2 cmovsq %r10, %rax + 0x49, 0x39, 0xc8, //0x000053d6 cmpq %rcx, %r8 + 0x49, 0x0f, 0x45, 0xc2, //0x000053d9 cmovneq %r10, %rax + 0xe9, 0x0f, 0x00, 0x00, 0x00, //0x000053dd jmp LBB22_53 + //0x000053e2 LBB22_50 + 0x49, 0x29, 0xff, //0x000053e2 subq %rdi, %r15 + 0x0f, 0xbc, 0xd3, //0x000053e5 bsfl %ebx, %edx + 0x4c, 0x01, 0xfa, //0x000053e8 addq %r15, %rdx + //0x000053eb LBB22_51 + 0x48, 0xf7, 0xd2, //0x000053eb notq %rdx + //0x000053ee LBB22_52 + 0x48, 0x89, 0xd0, //0x000053ee movq %rdx, %rax + //0x000053f1 LBB22_53 + 0x5b, //0x000053f1 popq %rbx + 0x41, 0x5c, //0x000053f2 popq %r12 + 0x41, 0x5d, //0x000053f4 popq %r13 + 0x41, 0x5e, //0x000053f6 popq %r14 + 0x41, 0x5f, //0x000053f8 popq %r15 + 0x5d, //0x000053fa popq %rbp + 0xc3, //0x000053fb retq + //0x000053fc LBB22_54 + 0x49, 0x89, 0xca, //0x000053fc movq %rcx, %r10 + 0x48, 0xc7, 0xc2, 0xff, 0xff, 0xff, 0xff, //0x000053ff movq $-1, %rdx + 0x48, 0x85, 0xc0, //0x00005406 testq %rax, %rax + 0x0f, 0x85, 0x2d, 0xff, 0xff, 0xff, //0x00005409 jne LBB22_37 + 0xe9, 0xda, 0xff, 0xff, 0xff, //0x0000540f jmp LBB22_52 + //0x00005414 LBB22_58 + 0x48, 0xf7, 0xda, //0x00005414 negq %rdx + 0xe9, 0xd2, 0xff, 0xff, 0xff, //0x00005417 jmp LBB22_52 + //0x0000541c LBB22_57 + 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x0000541c movq $-1, %r8 + 0x49, 0x89, 0xfa, //0x00005423 movq %rdi, %r10 + 0x49, 0x89, 0xf3, //0x00005426 movq %rsi, %r11 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00005429 movq $-1, %rax + 0x49, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00005430 movq $-1, %r9 + 0xe9, 0x47, 0xfe, 0xff, 0xff, //0x00005437 jmp LBB22_24 + //0x0000543c .p2align 2, 0x90 + // // .set L22_0_set_28, LBB22_28-LJTI22_0 + // // .set L22_0_set_36, LBB22_36-LJTI22_0 + // // .set L22_0_set_32, LBB22_32-LJTI22_0 + // // .set L22_0_set_25, LBB22_25-LJTI22_0 + // // .set L22_0_set_30, LBB22_30-LJTI22_0 + //0x0000543c LJTI22_0 + 0x8d, 0xfe, 0xff, 0xff, //0x0000543c .long L22_0_set_28 + 0xf0, 0xfe, 0xff, 0xff, //0x00005440 .long L22_0_set_36 + 0x8d, 0xfe, 0xff, 0xff, //0x00005444 .long L22_0_set_28 + 0xc3, 0xfe, 0xff, 0xff, //0x00005448 .long L22_0_set_32 + 0xf0, 0xfe, 0xff, 0xff, //0x0000544c .long L22_0_set_36 + 0x64, 0xfe, 0xff, 0xff, //0x00005450 .long L22_0_set_25 + 0x64, 0xfe, 0xff, 0xff, //0x00005454 .long L22_0_set_25 + 0x64, 0xfe, 0xff, 0xff, //0x00005458 .long L22_0_set_25 + 0x64, 0xfe, 0xff, 0xff, //0x0000545c .long L22_0_set_25 + 0x64, 0xfe, 0xff, 0xff, //0x00005460 .long L22_0_set_25 + 0x64, 0xfe, 0xff, 0xff, //0x00005464 .long L22_0_set_25 + 0x64, 0xfe, 0xff, 0xff, //0x00005468 .long L22_0_set_25 + 0x64, 0xfe, 0xff, 0xff, //0x0000546c .long L22_0_set_25 + 0x64, 0xfe, 0xff, 0xff, //0x00005470 .long L22_0_set_25 + 0x64, 0xfe, 0xff, 0xff, //0x00005474 .long L22_0_set_25 + 0xf0, 0xfe, 0xff, 0xff, //0x00005478 .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x0000547c .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x00005480 .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x00005484 .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x00005488 .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x0000548c .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x00005490 .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x00005494 .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x00005498 .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x0000549c .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x000054a0 .long L22_0_set_36 + 0xa8, 0xfe, 0xff, 0xff, //0x000054a4 .long L22_0_set_30 + 0xf0, 0xfe, 0xff, 0xff, //0x000054a8 .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x000054ac .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x000054b0 .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x000054b4 .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x000054b8 .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x000054bc .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x000054c0 .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x000054c4 .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x000054c8 .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x000054cc .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x000054d0 .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x000054d4 .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x000054d8 .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x000054dc .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x000054e0 .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x000054e4 .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x000054e8 .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x000054ec .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x000054f0 .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x000054f4 .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x000054f8 .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x000054fc .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x00005500 .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x00005504 .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x00005508 .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x0000550c .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x00005510 .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x00005514 .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x00005518 .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x0000551c .long L22_0_set_36 + 0xf0, 0xfe, 0xff, 0xff, //0x00005520 .long L22_0_set_36 + 0xa8, 0xfe, 0xff, 0xff, //0x00005524 .long L22_0_set_30 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00005528 .p2align 4, 0x90 + //0x00005530 _skip_positive + 0x55, //0x00005530 pushq %rbp + 0x48, 0x89, 0xe5, //0x00005531 movq %rsp, %rbp + 0x41, 0x57, //0x00005534 pushq %r15 + 0x41, 0x56, //0x00005536 pushq %r14 + 0x53, //0x00005538 pushq %rbx + 0x50, //0x00005539 pushq %rax + 0x49, 0x89, 0xf6, //0x0000553a movq %rsi, %r14 + 0x4c, 0x8b, 0x3e, //0x0000553d movq (%rsi), %r15 + 0x49, 0x8d, 0x5f, 0xff, //0x00005540 leaq $-1(%r15), %rbx + 0x48, 0x8b, 0x07, //0x00005544 movq (%rdi), %rax + 0x48, 0x01, 0xd8, //0x00005547 addq %rbx, %rax + 0x48, 0x8b, 0x77, 0x08, //0x0000554a movq $8(%rdi), %rsi + 0x48, 0x29, 0xde, //0x0000554e subq %rbx, %rsi + 0x48, 0x89, 0xc7, //0x00005551 movq %rax, %rdi + 0xe8, 0x27, 0xfb, 0xff, 0xff, //0x00005554 callq _do_skip_number + 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x00005559 movq $-2, %rcx + 0x48, 0xc7, 0xc2, 0xfe, 0xff, 0xff, 0xff, //0x00005560 movq $-2, %rdx + 0x48, 0x29, 0xc2, //0x00005567 subq %rax, %rdx + 0x48, 0x85, 0xc0, //0x0000556a testq %rax, %rax + 0x48, 0x8d, 0x40, 0xff, //0x0000556d leaq $-1(%rax), %rax + 0x48, 0x0f, 0x48, 0xc2, //0x00005571 cmovsq %rdx, %rax + 0x48, 0x0f, 0x49, 0xcb, //0x00005575 cmovnsq %rbx, %rcx + 0x4c, 0x01, 0xf8, //0x00005579 addq %r15, %rax + 0x49, 0x89, 0x06, //0x0000557c movq %rax, (%r14) + 0x48, 0x89, 0xc8, //0x0000557f movq %rcx, %rax + 0x48, 0x83, 0xc4, 0x08, //0x00005582 addq $8, %rsp + 0x5b, //0x00005586 popq %rbx + 0x41, 0x5e, //0x00005587 popq %r14 + 0x41, 0x5f, //0x00005589 popq %r15 + 0x5d, //0x0000558b popq %rbp + 0xc3, //0x0000558c retq + 0x90, 0x90, 0x90, //0x0000558d .p2align 4, 0x90 + //0x00005590 _skip_number + 0x55, //0x00005590 pushq %rbp + 0x48, 0x89, 0xe5, //0x00005591 movq %rsp, %rbp + 0x41, 0x57, //0x00005594 pushq %r15 + 0x41, 0x56, //0x00005596 pushq %r14 + 0x41, 0x55, //0x00005598 pushq %r13 + 0x41, 0x54, //0x0000559a pushq %r12 + 0x53, //0x0000559c pushq %rbx + 0x50, //0x0000559d pushq %rax + 0x49, 0x89, 0xf6, //0x0000559e movq %rsi, %r14 + 0x4c, 0x8b, 0x27, //0x000055a1 movq (%rdi), %r12 + 0x48, 0x8b, 0x77, 0x08, //0x000055a4 movq $8(%rdi), %rsi + 0x4d, 0x8b, 0x2e, //0x000055a8 movq (%r14), %r13 + 0x4c, 0x29, 0xee, //0x000055ab subq %r13, %rsi + 0x31, 0xc0, //0x000055ae xorl %eax, %eax + 0x43, 0x80, 0x3c, 0x2c, 0x2d, //0x000055b0 cmpb $45, (%r12,%r13) + 0x4b, 0x8d, 0x1c, 0x2c, //0x000055b5 leaq (%r12,%r13), %rbx + 0x0f, 0x94, 0xc0, //0x000055b9 sete %al + 0x48, 0x01, 0xc3, //0x000055bc addq %rax, %rbx + 0x48, 0x29, 0xc6, //0x000055bf subq %rax, %rsi + 0x0f, 0x84, 0x42, 0x00, 0x00, 0x00, //0x000055c2 je LBB24_1 + 0x8a, 0x03, //0x000055c8 movb (%rbx), %al + 0x04, 0xd0, //0x000055ca addb $-48, %al + 0x49, 0xc7, 0xc7, 0xfe, 0xff, 0xff, 0xff, //0x000055cc movq $-2, %r15 + 0x3c, 0x09, //0x000055d3 cmpb $9, %al + 0x0f, 0x87, 0x17, 0x00, 0x00, 0x00, //0x000055d5 ja LBB24_6 + 0x48, 0x89, 0xdf, //0x000055db movq %rbx, %rdi + 0xe8, 0x9d, 0xfa, 0xff, 0xff, //0x000055de callq _do_skip_number + 0x48, 0x85, 0xc0, //0x000055e3 testq %rax, %rax + 0x0f, 0x88, 0x2a, 0x00, 0x00, 0x00, //0x000055e6 js LBB24_4 + 0x48, 0x01, 0xc3, //0x000055ec addq %rax, %rbx + 0x4d, 0x89, 0xef, //0x000055ef movq %r13, %r15 + //0x000055f2 LBB24_6 + 0x4c, 0x29, 0xe3, //0x000055f2 subq %r12, %rbx + 0x49, 0x89, 0x1e, //0x000055f5 movq %rbx, (%r14) + 0x4c, 0x89, 0xf8, //0x000055f8 movq %r15, %rax + 0x48, 0x83, 0xc4, 0x08, //0x000055fb addq $8, %rsp + 0x5b, //0x000055ff popq %rbx + 0x41, 0x5c, //0x00005600 popq %r12 + 0x41, 0x5d, //0x00005602 popq %r13 + 0x41, 0x5e, //0x00005604 popq %r14 + 0x41, 0x5f, //0x00005606 popq %r15 + 0x5d, //0x00005608 popq %rbp + 0xc3, //0x00005609 retq + //0x0000560a LBB24_1 + 0x49, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, //0x0000560a movq $-1, %r15 + 0xe9, 0xdc, 0xff, 0xff, 0xff, //0x00005611 jmp LBB24_6 + //0x00005616 LBB24_4 + 0x48, 0xf7, 0xd0, //0x00005616 notq %rax + 0x48, 0x01, 0xc3, //0x00005619 addq %rax, %rbx + 0xe9, 0xd1, 0xff, 0xff, 0xff, //0x0000561c jmp LBB24_6 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00005621 .p2align 4, 0x90 + //0x00005630 _skip_one + 0x55, //0x00005630 pushq %rbp + 0x48, 0x89, 0xe5, //0x00005631 movq %rsp, %rbp + 0x48, 0x89, 0xd0, //0x00005634 movq %rdx, %rax + 0x48, 0x89, 0xf2, //0x00005637 movq %rsi, %rdx + 0x48, 0x89, 0xfe, //0x0000563a movq %rdi, %rsi + 0xbf, 0x01, 0x00, 0x00, 0x00, //0x0000563d movl $1, %edi + 0x66, 0x48, 0x0f, 0x6e, 0xc7, //0x00005642 movq %rdi, %xmm0 + 0xf3, 0x0f, 0x7f, 0x00, //0x00005647 movdqu %xmm0, (%rax) + 0x48, 0x89, 0xc7, //0x0000564b movq %rax, %rdi + 0x5d, //0x0000564e popq %rbp + 0xe9, 0x0c, 0xf0, 0xff, 0xff, //0x0000564f jmp _fsm_exec + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00005654 .p2align 4, 0x90 + //0x00005660 _validate_one + 0x55, //0x00005660 pushq %rbp + 0x48, 0x89, 0xe5, //0x00005661 movq %rsp, %rbp + 0x48, 0x89, 0xd0, //0x00005664 movq %rdx, %rax + 0x48, 0x89, 0xf2, //0x00005667 movq %rsi, %rdx + 0x48, 0x89, 0xfe, //0x0000566a movq %rdi, %rsi + 0xb9, 0x01, 0x00, 0x00, 0x00, //0x0000566d movl $1, %ecx + 0x66, 0x48, 0x0f, 0x6e, 0xc1, //0x00005672 movq %rcx, %xmm0 + 0xf3, 0x0f, 0x7f, 0x00, //0x00005677 movdqu %xmm0, (%rax) + 0xb9, 0x20, 0x00, 0x00, 0x00, //0x0000567b movl $32, %ecx + 0x48, 0x89, 0xc7, //0x00005680 movq %rax, %rdi + 0x5d, //0x00005683 popq %rbp + 0xe9, 0xd7, 0xef, 0xff, 0xff, //0x00005684 jmp _fsm_exec + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005689 .p2align 4, 0x00 + //0x00005690 LCPI27_0 + 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, //0x00005690 QUAD $0x2c2c2c2c2c2c2c2c; QUAD $0x2c2c2c2c2c2c2c2c // .space 16, ',,,,,,,,,,,,,,,,' + //0x000056a0 LCPI27_1 + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x000056a0 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' + //0x000056b0 LCPI27_2 + 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, //0x000056b0 QUAD $0x7d7d7d7d7d7d7d7d; QUAD $0x7d7d7d7d7d7d7d7d // .space 16, '}}}}}}}}}}}}}}}}' + //0x000056c0 LCPI27_3 + 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, //0x000056c0 QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' + //0x000056d0 LCPI27_4 + 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x000056d0 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + //0x000056e0 LCPI27_5 + 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, //0x000056e0 QUAD $0x7b7b7b7b7b7b7b7b; QUAD $0x7b7b7b7b7b7b7b7b // .space 16, '{{{{{{{{{{{{{{{{' + //0x000056f0 LCPI27_6 + 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, //0x000056f0 QUAD $0x5b5b5b5b5b5b5b5b; QUAD $0x5b5b5b5b5b5b5b5b // .space 16, '[[[[[[[[[[[[[[[[' + //0x00005700 LCPI27_7 + 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, //0x00005700 QUAD $0x5d5d5d5d5d5d5d5d; QUAD $0x5d5d5d5d5d5d5d5d // .space 16, ']]]]]]]]]]]]]]]]' + //0x00005710 .p2align 4, 0x90 + //0x00005710 _skip_one_fast + 0x55, //0x00005710 pushq %rbp + 0x48, 0x89, 0xe5, //0x00005711 movq %rsp, %rbp + 0x41, 0x57, //0x00005714 pushq %r15 + 0x41, 0x56, //0x00005716 pushq %r14 + 0x41, 0x55, //0x00005718 pushq %r13 + 0x41, 0x54, //0x0000571a pushq %r12 + 0x53, //0x0000571c pushq %rbx + 0x48, 0x83, 0xec, 0x58, //0x0000571d subq $88, %rsp + 0x4c, 0x8b, 0x07, //0x00005721 movq (%rdi), %r8 + 0x4c, 0x8b, 0x4f, 0x08, //0x00005724 movq $8(%rdi), %r9 + 0x48, 0x8b, 0x16, //0x00005728 movq (%rsi), %rdx + 0x48, 0x89, 0xd0, //0x0000572b movq %rdx, %rax + 0x4c, 0x29, 0xc8, //0x0000572e subq %r9, %rax + 0x0f, 0x83, 0x2a, 0x00, 0x00, 0x00, //0x00005731 jae LBB27_5 + 0x41, 0x8a, 0x0c, 0x10, //0x00005737 movb (%r8,%rdx), %cl + 0x80, 0xf9, 0x0d, //0x0000573b cmpb $13, %cl + 0x0f, 0x84, 0x1d, 0x00, 0x00, 0x00, //0x0000573e je LBB27_5 + 0x80, 0xf9, 0x20, //0x00005744 cmpb $32, %cl + 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x00005747 je LBB27_5 + 0x80, 0xc1, 0xf7, //0x0000574d addb $-9, %cl + 0x80, 0xf9, 0x01, //0x00005750 cmpb $1, %cl + 0x0f, 0x86, 0x08, 0x00, 0x00, 0x00, //0x00005753 jbe LBB27_5 + 0x49, 0x89, 0xd6, //0x00005759 movq %rdx, %r14 + 0xe9, 0x2e, 0x01, 0x00, 0x00, //0x0000575c jmp LBB27_27 + //0x00005761 LBB27_5 + 0x4c, 0x8d, 0x72, 0x01, //0x00005761 leaq $1(%rdx), %r14 + 0x4d, 0x39, 0xce, //0x00005765 cmpq %r9, %r14 + 0x0f, 0x83, 0x22, 0x00, 0x00, 0x00, //0x00005768 jae LBB27_9 + 0x43, 0x8a, 0x0c, 0x30, //0x0000576e movb (%r8,%r14), %cl + 0x80, 0xf9, 0x0d, //0x00005772 cmpb $13, %cl + 0x0f, 0x84, 0x15, 0x00, 0x00, 0x00, //0x00005775 je LBB27_9 + 0x80, 0xf9, 0x20, //0x0000577b cmpb $32, %cl + 0x0f, 0x84, 0x0c, 0x00, 0x00, 0x00, //0x0000577e je LBB27_9 + 0x80, 0xc1, 0xf7, //0x00005784 addb $-9, %cl + 0x80, 0xf9, 0x01, //0x00005787 cmpb $1, %cl + 0x0f, 0x87, 0xff, 0x00, 0x00, 0x00, //0x0000578a ja LBB27_27 + //0x00005790 LBB27_9 + 0x4c, 0x8d, 0x72, 0x02, //0x00005790 leaq $2(%rdx), %r14 + 0x4d, 0x39, 0xce, //0x00005794 cmpq %r9, %r14 + 0x0f, 0x83, 0x22, 0x00, 0x00, 0x00, //0x00005797 jae LBB27_13 + 0x43, 0x8a, 0x0c, 0x30, //0x0000579d movb (%r8,%r14), %cl + 0x80, 0xf9, 0x0d, //0x000057a1 cmpb $13, %cl + 0x0f, 0x84, 0x15, 0x00, 0x00, 0x00, //0x000057a4 je LBB27_13 + 0x80, 0xf9, 0x20, //0x000057aa cmpb $32, %cl + 0x0f, 0x84, 0x0c, 0x00, 0x00, 0x00, //0x000057ad je LBB27_13 + 0x80, 0xc1, 0xf7, //0x000057b3 addb $-9, %cl + 0x80, 0xf9, 0x01, //0x000057b6 cmpb $1, %cl + 0x0f, 0x87, 0xd0, 0x00, 0x00, 0x00, //0x000057b9 ja LBB27_27 + //0x000057bf LBB27_13 + 0x4c, 0x8d, 0x72, 0x03, //0x000057bf leaq $3(%rdx), %r14 + 0x4d, 0x39, 0xce, //0x000057c3 cmpq %r9, %r14 + 0x0f, 0x83, 0x22, 0x00, 0x00, 0x00, //0x000057c6 jae LBB27_17 + 0x43, 0x8a, 0x0c, 0x30, //0x000057cc movb (%r8,%r14), %cl + 0x80, 0xf9, 0x0d, //0x000057d0 cmpb $13, %cl + 0x0f, 0x84, 0x15, 0x00, 0x00, 0x00, //0x000057d3 je LBB27_17 + 0x80, 0xf9, 0x20, //0x000057d9 cmpb $32, %cl + 0x0f, 0x84, 0x0c, 0x00, 0x00, 0x00, //0x000057dc je LBB27_17 + 0x80, 0xc1, 0xf7, //0x000057e2 addb $-9, %cl + 0x80, 0xf9, 0x01, //0x000057e5 cmpb $1, %cl + 0x0f, 0x87, 0xa1, 0x00, 0x00, 0x00, //0x000057e8 ja LBB27_27 + //0x000057ee LBB27_17 + 0x48, 0x8d, 0x4a, 0x04, //0x000057ee leaq $4(%rdx), %rcx + 0x49, 0x39, 0xc9, //0x000057f2 cmpq %rcx, %r9 + 0x0f, 0x86, 0x4e, 0x00, 0x00, 0x00, //0x000057f5 jbe LBB27_23 + 0x49, 0x39, 0xc9, //0x000057fb cmpq %rcx, %r9 + 0x0f, 0x84, 0x54, 0x00, 0x00, 0x00, //0x000057fe je LBB27_24 + 0x4b, 0x8d, 0x0c, 0x08, //0x00005804 leaq (%r8,%r9), %rcx + 0x48, 0x83, 0xc0, 0x04, //0x00005808 addq $4, %rax + 0x4e, 0x8d, 0x74, 0x02, 0x05, //0x0000580c leaq $5(%rdx,%r8), %r14 + 0x48, 0xba, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00005811 movabsq $4294977024, %rdx + 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000581b .p2align 4, 0x90 + //0x00005820 LBB27_20 + 0x41, 0x0f, 0xbe, 0x5e, 0xff, //0x00005820 movsbl $-1(%r14), %ebx + 0x83, 0xfb, 0x20, //0x00005825 cmpl $32, %ebx + 0x0f, 0x87, 0x48, 0x00, 0x00, 0x00, //0x00005828 ja LBB27_26 + 0x48, 0x0f, 0xa3, 0xda, //0x0000582e btq %rbx, %rdx + 0x0f, 0x83, 0x3e, 0x00, 0x00, 0x00, //0x00005832 jae LBB27_26 + 0x49, 0xff, 0xc6, //0x00005838 incq %r14 + 0x48, 0xff, 0xc0, //0x0000583b incq %rax + 0x0f, 0x85, 0xdc, 0xff, 0xff, 0xff, //0x0000583e jne LBB27_20 + 0xe9, 0x12, 0x00, 0x00, 0x00, //0x00005844 jmp LBB27_25 + //0x00005849 LBB27_23 + 0x48, 0x89, 0x0e, //0x00005849 movq %rcx, (%rsi) + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x0000584c movq $-1, %rax + 0xe9, 0x4a, 0x01, 0x00, 0x00, //0x00005853 jmp LBB27_45 + //0x00005858 LBB27_24 + 0x4c, 0x01, 0xc1, //0x00005858 addq %r8, %rcx + //0x0000585b LBB27_25 + 0x4c, 0x29, 0xc1, //0x0000585b subq %r8, %rcx + 0x49, 0x89, 0xce, //0x0000585e movq %rcx, %r14 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00005861 movq $-1, %rax + 0x4d, 0x39, 0xce, //0x00005868 cmpq %r9, %r14 + 0x0f, 0x82, 0x1e, 0x00, 0x00, 0x00, //0x0000586b jb LBB27_27 + 0xe9, 0x2c, 0x01, 0x00, 0x00, //0x00005871 jmp LBB27_45 + //0x00005876 LBB27_26 + 0x4c, 0x89, 0xc0, //0x00005876 movq %r8, %rax + 0x48, 0xf7, 0xd0, //0x00005879 notq %rax + 0x49, 0x01, 0xc6, //0x0000587c addq %rax, %r14 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x0000587f movq $-1, %rax + 0x4d, 0x39, 0xce, //0x00005886 cmpq %r9, %r14 + 0x0f, 0x83, 0x13, 0x01, 0x00, 0x00, //0x00005889 jae LBB27_45 + //0x0000588f LBB27_27 + 0x49, 0x8d, 0x5e, 0x01, //0x0000588f leaq $1(%r14), %rbx + 0x48, 0x89, 0x1e, //0x00005893 movq %rbx, (%rsi) + 0x43, 0x0f, 0xbe, 0x0c, 0x30, //0x00005896 movsbl (%r8,%r14), %ecx + 0x83, 0xf9, 0x7b, //0x0000589b cmpl $123, %ecx + 0x0f, 0x87, 0x20, 0x01, 0x00, 0x00, //0x0000589e ja LBB27_47 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000058a4 movq $-1, %rax + 0x48, 0x8d, 0x15, 0xaa, 0x0b, 0x00, 0x00, //0x000058ab leaq $2986(%rip), %rdx /* LJTI27_0+0(%rip) */ + 0x48, 0x63, 0x0c, 0x8a, //0x000058b2 movslq (%rdx,%rcx,4), %rcx + 0x48, 0x01, 0xd1, //0x000058b6 addq %rdx, %rcx + 0xff, 0xe1, //0x000058b9 jmpq *%rcx + //0x000058bb LBB27_29 + 0x48, 0x8b, 0x4f, 0x08, //0x000058bb movq $8(%rdi), %rcx + 0x48, 0x89, 0xc8, //0x000058bf movq %rcx, %rax + 0x48, 0x29, 0xd8, //0x000058c2 subq %rbx, %rax + 0x4c, 0x01, 0xc3, //0x000058c5 addq %r8, %rbx + 0x48, 0x83, 0xf8, 0x10, //0x000058c8 cmpq $16, %rax + 0x0f, 0x82, 0x7b, 0x00, 0x00, 0x00, //0x000058cc jb LBB27_34 + 0x4c, 0x29, 0xf1, //0x000058d2 subq %r14, %rcx + 0x48, 0x83, 0xc1, 0xef, //0x000058d5 addq $-17, %rcx + 0x48, 0x89, 0xca, //0x000058d9 movq %rcx, %rdx + 0x48, 0x83, 0xe2, 0xf0, //0x000058dc andq $-16, %rdx + 0x4c, 0x01, 0xf2, //0x000058e0 addq %r14, %rdx + 0x49, 0x8d, 0x54, 0x10, 0x11, //0x000058e3 leaq $17(%r8,%rdx), %rdx + 0x83, 0xe1, 0x0f, //0x000058e8 andl $15, %ecx + 0x66, 0x0f, 0x6f, 0x05, 0x9d, 0xfd, 0xff, 0xff, //0x000058eb movdqa $-611(%rip), %xmm0 /* LCPI27_0+0(%rip) */ + 0x66, 0x0f, 0x6f, 0x0d, 0xa5, 0xfd, 0xff, 0xff, //0x000058f3 movdqa $-603(%rip), %xmm1 /* LCPI27_1+0(%rip) */ + 0x66, 0x0f, 0x6f, 0x15, 0xad, 0xfd, 0xff, 0xff, //0x000058fb movdqa $-595(%rip), %xmm2 /* LCPI27_2+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00005903 .p2align 4, 0x90 + //0x00005910 LBB27_31 + 0xf3, 0x0f, 0x6f, 0x1b, //0x00005910 movdqu (%rbx), %xmm3 + 0x66, 0x0f, 0x6f, 0xe3, //0x00005914 movdqa %xmm3, %xmm4 + 0x66, 0x0f, 0x74, 0xe0, //0x00005918 pcmpeqb %xmm0, %xmm4 + 0x66, 0x0f, 0xeb, 0xd9, //0x0000591c por %xmm1, %xmm3 + 0x66, 0x0f, 0x74, 0xda, //0x00005920 pcmpeqb %xmm2, %xmm3 + 0x66, 0x0f, 0xeb, 0xdc, //0x00005924 por %xmm4, %xmm3 + 0x66, 0x0f, 0xd7, 0xfb, //0x00005928 pmovmskb %xmm3, %edi + 0x66, 0x85, 0xff, //0x0000592c testw %di, %di + 0x0f, 0x85, 0x5a, 0x00, 0x00, 0x00, //0x0000592f jne LBB27_42 + 0x48, 0x83, 0xc3, 0x10, //0x00005935 addq $16, %rbx + 0x48, 0x83, 0xc0, 0xf0, //0x00005939 addq $-16, %rax + 0x48, 0x83, 0xf8, 0x0f, //0x0000593d cmpq $15, %rax + 0x0f, 0x87, 0xc9, 0xff, 0xff, 0xff, //0x00005941 ja LBB27_31 + 0x48, 0x89, 0xc8, //0x00005947 movq %rcx, %rax + 0x48, 0x89, 0xd3, //0x0000594a movq %rdx, %rbx + //0x0000594d LBB27_34 + 0x48, 0x85, 0xc0, //0x0000594d testq %rax, %rax + 0x0f, 0x84, 0x31, 0x00, 0x00, 0x00, //0x00005950 je LBB27_41 + 0x48, 0x8d, 0x0c, 0x03, //0x00005956 leaq (%rbx,%rax), %rcx + //0x0000595a LBB27_36 + 0x0f, 0xb6, 0x13, //0x0000595a movzbl (%rbx), %edx + 0x80, 0xfa, 0x2c, //0x0000595d cmpb $44, %dl + 0x0f, 0x84, 0x21, 0x00, 0x00, 0x00, //0x00005960 je LBB27_41 + 0x80, 0xfa, 0x7d, //0x00005966 cmpb $125, %dl + 0x0f, 0x84, 0x18, 0x00, 0x00, 0x00, //0x00005969 je LBB27_41 + 0x80, 0xfa, 0x5d, //0x0000596f cmpb $93, %dl + 0x0f, 0x84, 0x0f, 0x00, 0x00, 0x00, //0x00005972 je LBB27_41 + 0x48, 0xff, 0xc3, //0x00005978 incq %rbx + 0x48, 0xff, 0xc8, //0x0000597b decq %rax + 0x0f, 0x85, 0xd6, 0xff, 0xff, 0xff, //0x0000597e jne LBB27_36 + 0x48, 0x89, 0xcb, //0x00005984 movq %rcx, %rbx + //0x00005987 LBB27_41 + 0x4c, 0x29, 0xc3, //0x00005987 subq %r8, %rbx + 0xe9, 0x0d, 0x00, 0x00, 0x00, //0x0000598a jmp LBB27_43 + //0x0000598f LBB27_42 + 0x0f, 0xb7, 0xc7, //0x0000598f movzwl %di, %eax + 0x48, 0x0f, 0xbc, 0xc0, //0x00005992 bsfq %rax, %rax + 0x4c, 0x29, 0xc3, //0x00005996 subq %r8, %rbx + 0x48, 0x01, 0xc3, //0x00005999 addq %rax, %rbx + //0x0000599c LBB27_43 + 0x48, 0x89, 0x1e, //0x0000599c movq %rbx, (%rsi) + //0x0000599f LBB27_44 + 0x4c, 0x89, 0xf0, //0x0000599f movq %r14, %rax + //0x000059a2 LBB27_45 + 0x48, 0x83, 0xc4, 0x58, //0x000059a2 addq $88, %rsp + 0x5b, //0x000059a6 popq %rbx + 0x41, 0x5c, //0x000059a7 popq %r12 + 0x41, 0x5d, //0x000059a9 popq %r13 + 0x41, 0x5e, //0x000059ab popq %r14 + 0x41, 0x5f, //0x000059ad popq %r15 + 0x5d, //0x000059af popq %rbp + 0xc3, //0x000059b0 retq + //0x000059b1 LBB27_46 + 0x49, 0x8d, 0x4e, 0x04, //0x000059b1 leaq $4(%r14), %rcx + 0x48, 0x3b, 0x4f, 0x08, //0x000059b5 cmpq $8(%rdi), %rcx + 0x0f, 0x87, 0xe3, 0xff, 0xff, 0xff, //0x000059b9 ja LBB27_45 + 0xe9, 0x6a, 0x05, 0x00, 0x00, //0x000059bf jmp LBB27_83 + //0x000059c4 LBB27_47 + 0x4c, 0x89, 0x36, //0x000059c4 movq %r14, (%rsi) + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x000059c7 movq $-2, %rax + 0xe9, 0xcf, 0xff, 0xff, 0xff, //0x000059ce jmp LBB27_45 + //0x000059d3 LBB27_48 + 0x4c, 0x8b, 0x4f, 0x08, //0x000059d3 movq $8(%rdi), %r9 + 0x4d, 0x89, 0xcf, //0x000059d7 movq %r9, %r15 + 0x49, 0x29, 0xdf, //0x000059da subq %rbx, %r15 + 0x49, 0x83, 0xff, 0x20, //0x000059dd cmpq $32, %r15 + 0x0f, 0x8c, 0x3e, 0x0a, 0x00, 0x00, //0x000059e1 jl LBB27_117 + 0x41, 0xba, 0xff, 0xff, 0xff, 0xff, //0x000059e7 movl $4294967295, %r10d + 0x4f, 0x8d, 0x1c, 0x30, //0x000059ed leaq (%r8,%r14), %r11 + 0x4d, 0x29, 0xf1, //0x000059f1 subq %r14, %r9 + 0x41, 0xbd, 0x1f, 0x00, 0x00, 0x00, //0x000059f4 movl $31, %r13d + 0x45, 0x31, 0xff, //0x000059fa xorl %r15d, %r15d + 0x66, 0x0f, 0x6f, 0x05, 0xbb, 0xfc, 0xff, 0xff, //0x000059fd movdqa $-837(%rip), %xmm0 /* LCPI27_3+0(%rip) */ + 0x66, 0x0f, 0x6f, 0x0d, 0xc3, 0xfc, 0xff, 0xff, //0x00005a05 movdqa $-829(%rip), %xmm1 /* LCPI27_4+0(%rip) */ + 0x45, 0x31, 0xe4, //0x00005a0d xorl %r12d, %r12d + 0xe9, 0x2d, 0x00, 0x00, 0x00, //0x00005a10 jmp LBB27_50 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00005a15 .p2align 4, 0x90 + //0x00005a20 LBB27_52 + 0x45, 0x31, 0xe4, //0x00005a20 xorl %r12d, %r12d + 0x85, 0xc9, //0x00005a23 testl %ecx, %ecx + 0x0f, 0x85, 0xa6, 0x00, 0x00, 0x00, //0x00005a25 jne LBB27_110 + //0x00005a2b LBB27_53 + 0x49, 0x83, 0xc7, 0x20, //0x00005a2b addq $32, %r15 + 0x4b, 0x8d, 0x4c, 0x29, 0xe0, //0x00005a2f leaq $-32(%r9,%r13), %rcx + 0x49, 0x83, 0xc5, 0xe0, //0x00005a34 addq $-32, %r13 + 0x48, 0x83, 0xf9, 0x3f, //0x00005a38 cmpq $63, %rcx + 0x0f, 0x8e, 0x60, 0x09, 0x00, 0x00, //0x00005a3c jle LBB27_54 + //0x00005a42 LBB27_50 + 0xf3, 0x43, 0x0f, 0x6f, 0x54, 0x3b, 0x01, //0x00005a42 movdqu $1(%r11,%r15), %xmm2 + 0xf3, 0x43, 0x0f, 0x6f, 0x5c, 0x3b, 0x11, //0x00005a49 movdqu $17(%r11,%r15), %xmm3 + 0x66, 0x0f, 0x6f, 0xe2, //0x00005a50 movdqa %xmm2, %xmm4 + 0x66, 0x0f, 0x74, 0xe0, //0x00005a54 pcmpeqb %xmm0, %xmm4 + 0x66, 0x0f, 0xd7, 0xfc, //0x00005a58 pmovmskb %xmm4, %edi + 0x66, 0x0f, 0x6f, 0xe3, //0x00005a5c movdqa %xmm3, %xmm4 + 0x66, 0x0f, 0x74, 0xe0, //0x00005a60 pcmpeqb %xmm0, %xmm4 + 0x66, 0x0f, 0xd7, 0xcc, //0x00005a64 pmovmskb %xmm4, %ecx + 0x48, 0xc1, 0xe1, 0x10, //0x00005a68 shlq $16, %rcx + 0x48, 0x09, 0xf9, //0x00005a6c orq %rdi, %rcx + 0x66, 0x0f, 0x74, 0xd1, //0x00005a6f pcmpeqb %xmm1, %xmm2 + 0x66, 0x0f, 0xd7, 0xda, //0x00005a73 pmovmskb %xmm2, %ebx + 0x66, 0x0f, 0x74, 0xd9, //0x00005a77 pcmpeqb %xmm1, %xmm3 + 0x66, 0x0f, 0xd7, 0xfb, //0x00005a7b pmovmskb %xmm3, %edi + 0x48, 0xc1, 0xe7, 0x10, //0x00005a7f shlq $16, %rdi + 0x48, 0x09, 0xdf, //0x00005a83 orq %rbx, %rdi + 0x48, 0x89, 0xfb, //0x00005a86 movq %rdi, %rbx + 0x4c, 0x09, 0xe3, //0x00005a89 orq %r12, %rbx + 0x0f, 0x84, 0x8e, 0xff, 0xff, 0xff, //0x00005a8c je LBB27_52 + 0x44, 0x89, 0xe3, //0x00005a92 movl %r12d, %ebx + 0x44, 0x31, 0xd3, //0x00005a95 xorl %r10d, %ebx + 0x21, 0xdf, //0x00005a98 andl %ebx, %edi + 0x8d, 0x1c, 0x3f, //0x00005a9a leal (%rdi,%rdi), %ebx + 0x44, 0x09, 0xe3, //0x00005a9d orl %r12d, %ebx + 0x41, 0x8d, 0x92, 0xab, 0xaa, 0xaa, 0xaa, //0x00005aa0 leal $-1431655765(%r10), %edx + 0x31, 0xda, //0x00005aa7 xorl %ebx, %edx + 0x21, 0xfa, //0x00005aa9 andl %edi, %edx + 0x81, 0xe2, 0xaa, 0xaa, 0xaa, 0xaa, //0x00005aab andl $-1431655766, %edx + 0x45, 0x31, 0xe4, //0x00005ab1 xorl %r12d, %r12d + 0x01, 0xfa, //0x00005ab4 addl %edi, %edx + 0x41, 0x0f, 0x92, 0xc4, //0x00005ab6 setb %r12b + 0x01, 0xd2, //0x00005aba addl %edx, %edx + 0x81, 0xf2, 0x55, 0x55, 0x55, 0x55, //0x00005abc xorl $1431655765, %edx + 0x21, 0xda, //0x00005ac2 andl %ebx, %edx + 0x44, 0x31, 0xd2, //0x00005ac4 xorl %r10d, %edx + 0x21, 0xd1, //0x00005ac7 andl %edx, %ecx + 0x85, 0xc9, //0x00005ac9 testl %ecx, %ecx + 0x0f, 0x84, 0x5a, 0xff, 0xff, 0xff, //0x00005acb je LBB27_53 + //0x00005ad1 LBB27_110 + 0x48, 0x0f, 0xbc, 0xc1, //0x00005ad1 bsfq %rcx, %rax + 0x49, 0x01, 0xc3, //0x00005ad5 addq %rax, %r11 + 0x4d, 0x01, 0xfb, //0x00005ad8 addq %r15, %r11 + 0x4d, 0x29, 0xc3, //0x00005adb subq %r8, %r11 + 0x49, 0x83, 0xc3, 0x02, //0x00005ade addq $2, %r11 + 0x4c, 0x89, 0x1e, //0x00005ae2 movq %r11, (%rsi) + 0xe9, 0xb5, 0xfe, 0xff, 0xff, //0x00005ae5 jmp LBB27_44 + //0x00005aea LBB27_57 + 0x49, 0xbd, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00005aea movabsq $6148914691236517205, %r13 + 0x48, 0x8b, 0x4f, 0x08, //0x00005af4 movq $8(%rdi), %rcx + 0x48, 0x29, 0xd9, //0x00005af8 subq %rbx, %rcx + 0x49, 0x01, 0xd8, //0x00005afb addq %rbx, %r8 + 0x45, 0x31, 0xff, //0x00005afe xorl %r15d, %r15d + 0x66, 0x44, 0x0f, 0x6f, 0x15, 0xb6, 0xfb, 0xff, 0xff, //0x00005b01 movdqa $-1098(%rip), %xmm10 /* LCPI27_3+0(%rip) */ + 0x66, 0x0f, 0x6f, 0x0d, 0xbe, 0xfb, 0xff, 0xff, //0x00005b0a movdqa $-1090(%rip), %xmm1 /* LCPI27_4+0(%rip) */ + 0x66, 0x45, 0x0f, 0x76, 0xc9, //0x00005b12 pcmpeqd %xmm9, %xmm9 + 0x66, 0x0f, 0x6f, 0x1d, 0xd1, 0xfb, 0xff, 0xff, //0x00005b17 movdqa $-1071(%rip), %xmm3 /* LCPI27_6+0(%rip) */ + 0x66, 0x0f, 0x6f, 0x25, 0xd9, 0xfb, 0xff, 0xff, //0x00005b1f movdqa $-1063(%rip), %xmm4 /* LCPI27_7+0(%rip) */ + 0x45, 0x0f, 0x57, 0xc0, //0x00005b27 xorps %xmm8, %xmm8 + 0x45, 0x31, 0xd2, //0x00005b2b xorl %r10d, %r10d + 0x31, 0xd2, //0x00005b2e xorl %edx, %edx + 0x48, 0x89, 0x55, 0xc0, //0x00005b30 movq %rdx, $-64(%rbp) + 0x45, 0x31, 0xdb, //0x00005b34 xorl %r11d, %r11d + 0xe9, 0x60, 0x00, 0x00, 0x00, //0x00005b37 jmp LBB27_59 + //0x00005b3c LBB27_58 + 0x49, 0xc1, 0xf9, 0x3f, //0x00005b3c sarq $63, %r9 + 0x4c, 0x89, 0xf9, //0x00005b40 movq %r15, %rcx + 0x48, 0xd1, 0xe9, //0x00005b43 shrq %rcx + 0x4c, 0x21, 0xe9, //0x00005b46 andq %r13, %rcx + 0x49, 0x29, 0xcf, //0x00005b49 subq %rcx, %r15 + 0x4c, 0x89, 0xf9, //0x00005b4c movq %r15, %rcx + 0x4c, 0x21, 0xd1, //0x00005b4f andq %r10, %rcx + 0x49, 0xc1, 0xef, 0x02, //0x00005b52 shrq $2, %r15 + 0x4d, 0x21, 0xd7, //0x00005b56 andq %r10, %r15 + 0x49, 0x01, 0xcf, //0x00005b59 addq %rcx, %r15 + 0x4c, 0x89, 0xf9, //0x00005b5c movq %r15, %rcx + 0x48, 0xc1, 0xe9, 0x04, //0x00005b5f shrq $4, %rcx + 0x4c, 0x01, 0xf9, //0x00005b63 addq %r15, %rcx + 0x48, 0xba, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, //0x00005b66 movabsq $1085102592571150095, %rdx + 0x48, 0x21, 0xd1, //0x00005b70 andq %rdx, %rcx + 0x48, 0xba, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, //0x00005b73 movabsq $72340172838076673, %rdx + 0x48, 0x0f, 0xaf, 0xca, //0x00005b7d imulq %rdx, %rcx + 0x48, 0xc1, 0xe9, 0x38, //0x00005b81 shrq $56, %rcx + 0x48, 0x01, 0x4d, 0xc0, //0x00005b85 addq %rcx, $-64(%rbp) + 0x49, 0x83, 0xc0, 0x40, //0x00005b89 addq $64, %r8 + 0x48, 0x8b, 0x4d, 0xd0, //0x00005b8d movq $-48(%rbp), %rcx + 0x48, 0x83, 0xc1, 0xc0, //0x00005b91 addq $-64, %rcx + 0x4d, 0x89, 0xcf, //0x00005b95 movq %r9, %r15 + 0x4c, 0x8b, 0x55, 0xc8, //0x00005b98 movq $-56(%rbp), %r10 + //0x00005b9c LBB27_59 + 0x48, 0x83, 0xf9, 0x40, //0x00005b9c cmpq $64, %rcx + 0x48, 0x89, 0x4d, 0xd0, //0x00005ba0 movq %rcx, $-48(%rbp) + 0x0f, 0x8c, 0x34, 0x02, 0x00, 0x00, //0x00005ba4 jl LBB27_66 + //0x00005baa LBB27_60 + 0xf3, 0x41, 0x0f, 0x6f, 0x00, //0x00005baa movdqu (%r8), %xmm0 + 0xf3, 0x41, 0x0f, 0x6f, 0x68, 0x10, //0x00005baf movdqu $16(%r8), %xmm5 + 0xf3, 0x41, 0x0f, 0x6f, 0x78, 0x20, //0x00005bb5 movdqu $32(%r8), %xmm7 + 0xf3, 0x41, 0x0f, 0x6f, 0x70, 0x30, //0x00005bbb movdqu $48(%r8), %xmm6 + 0x66, 0x0f, 0x6f, 0xd0, //0x00005bc1 movdqa %xmm0, %xmm2 + 0x66, 0x41, 0x0f, 0x74, 0xd2, //0x00005bc5 pcmpeqb %xmm10, %xmm2 + 0x66, 0x44, 0x0f, 0xd7, 0xca, //0x00005bca pmovmskb %xmm2, %r9d + 0x66, 0x0f, 0x6f, 0xd5, //0x00005bcf movdqa %xmm5, %xmm2 + 0x66, 0x41, 0x0f, 0x74, 0xd2, //0x00005bd3 pcmpeqb %xmm10, %xmm2 + 0x66, 0x0f, 0xd7, 0xca, //0x00005bd8 pmovmskb %xmm2, %ecx + 0x66, 0x0f, 0x6f, 0xd7, //0x00005bdc movdqa %xmm7, %xmm2 + 0x66, 0x41, 0x0f, 0x74, 0xd2, //0x00005be0 pcmpeqb %xmm10, %xmm2 + 0x66, 0x0f, 0xd7, 0xda, //0x00005be5 pmovmskb %xmm2, %ebx + 0x66, 0x0f, 0x6f, 0xd6, //0x00005be9 movdqa %xmm6, %xmm2 + 0x66, 0x41, 0x0f, 0x74, 0xd2, //0x00005bed pcmpeqb %xmm10, %xmm2 + 0x66, 0x0f, 0xd7, 0xd2, //0x00005bf2 pmovmskb %xmm2, %edx + 0x48, 0xc1, 0xe2, 0x30, //0x00005bf6 shlq $48, %rdx + 0x48, 0xc1, 0xe3, 0x20, //0x00005bfa shlq $32, %rbx + 0x48, 0xc1, 0xe1, 0x10, //0x00005bfe shlq $16, %rcx + 0x49, 0x09, 0xc9, //0x00005c02 orq %rcx, %r9 + 0x49, 0x09, 0xd9, //0x00005c05 orq %rbx, %r9 + 0x49, 0x09, 0xd1, //0x00005c08 orq %rdx, %r9 + 0x66, 0x0f, 0x6f, 0xd0, //0x00005c0b movdqa %xmm0, %xmm2 + 0x66, 0x0f, 0x74, 0xd1, //0x00005c0f pcmpeqb %xmm1, %xmm2 + 0x66, 0x0f, 0xd7, 0xca, //0x00005c13 pmovmskb %xmm2, %ecx + 0x66, 0x0f, 0x6f, 0xd5, //0x00005c17 movdqa %xmm5, %xmm2 + 0x66, 0x0f, 0x74, 0xd1, //0x00005c1b pcmpeqb %xmm1, %xmm2 + 0x66, 0x44, 0x0f, 0xd7, 0xe2, //0x00005c1f pmovmskb %xmm2, %r12d + 0x66, 0x0f, 0x6f, 0xd7, //0x00005c24 movdqa %xmm7, %xmm2 + 0x66, 0x0f, 0x74, 0xd1, //0x00005c28 pcmpeqb %xmm1, %xmm2 + 0x66, 0x0f, 0xd7, 0xda, //0x00005c2c pmovmskb %xmm2, %ebx + 0x66, 0x0f, 0x6f, 0xd6, //0x00005c30 movdqa %xmm6, %xmm2 + 0x66, 0x0f, 0x74, 0xd1, //0x00005c34 pcmpeqb %xmm1, %xmm2 + 0x66, 0x0f, 0xd7, 0xd2, //0x00005c38 pmovmskb %xmm2, %edx + 0x48, 0xc1, 0xe2, 0x30, //0x00005c3c shlq $48, %rdx + 0x48, 0xc1, 0xe3, 0x20, //0x00005c40 shlq $32, %rbx + 0x49, 0xc1, 0xe4, 0x10, //0x00005c44 shlq $16, %r12 + 0x4c, 0x09, 0xe1, //0x00005c48 orq %r12, %rcx + 0x48, 0x09, 0xd9, //0x00005c4b orq %rbx, %rcx + 0x48, 0x09, 0xd1, //0x00005c4e orq %rdx, %rcx + 0x48, 0x89, 0xca, //0x00005c51 movq %rcx, %rdx + 0x4c, 0x09, 0xd2, //0x00005c54 orq %r10, %rdx + 0x0f, 0x84, 0x43, 0x00, 0x00, 0x00, //0x00005c57 je LBB27_62 + 0x4c, 0x89, 0xd2, //0x00005c5d movq %r10, %rdx + 0x48, 0xf7, 0xd2, //0x00005c60 notq %rdx + 0x48, 0x21, 0xca, //0x00005c63 andq %rcx, %rdx + 0x4c, 0x8d, 0x24, 0x12, //0x00005c66 leaq (%rdx,%rdx), %r12 + 0x4d, 0x09, 0xd4, //0x00005c6a orq %r10, %r12 + 0x4d, 0x89, 0xe2, //0x00005c6d movq %r12, %r10 + 0x48, 0xbb, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x00005c70 movabsq $-6148914691236517206, %rbx + 0x49, 0x31, 0xda, //0x00005c7a xorq %rbx, %r10 + 0x48, 0x21, 0xd9, //0x00005c7d andq %rbx, %rcx + 0x4c, 0x21, 0xd1, //0x00005c80 andq %r10, %rcx + 0x31, 0xdb, //0x00005c83 xorl %ebx, %ebx + 0x48, 0x01, 0xd1, //0x00005c85 addq %rdx, %rcx + 0x0f, 0x92, 0xc3, //0x00005c88 setb %bl + 0x48, 0x89, 0x5d, 0xc8, //0x00005c8b movq %rbx, $-56(%rbp) + 0x48, 0x01, 0xc9, //0x00005c8f addq %rcx, %rcx + 0x4c, 0x31, 0xe9, //0x00005c92 xorq %r13, %rcx + 0x4c, 0x21, 0xe1, //0x00005c95 andq %r12, %rcx + 0x48, 0xf7, 0xd1, //0x00005c98 notq %rcx + 0xe9, 0x0d, 0x00, 0x00, 0x00, //0x00005c9b jmp LBB27_63 + //0x00005ca0 LBB27_62 + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00005ca0 movq $-1, %rcx + 0x31, 0xd2, //0x00005ca7 xorl %edx, %edx + 0x48, 0x89, 0x55, 0xc8, //0x00005ca9 movq %rdx, $-56(%rbp) + //0x00005cad LBB27_63 + 0x4c, 0x21, 0xc9, //0x00005cad andq %r9, %rcx + 0x66, 0x48, 0x0f, 0x6e, 0xd1, //0x00005cb0 movq %rcx, %xmm2 + 0x66, 0x41, 0x0f, 0x3a, 0x44, 0xd1, 0x00, //0x00005cb5 pclmulqdq $0, %xmm9, %xmm2 + 0x66, 0x49, 0x0f, 0x7e, 0xd1, //0x00005cbc movq %xmm2, %r9 + 0x4d, 0x31, 0xf9, //0x00005cc1 xorq %r15, %r9 + 0x66, 0x0f, 0x6f, 0xd0, //0x00005cc4 movdqa %xmm0, %xmm2 + 0x66, 0x0f, 0x74, 0xd3, //0x00005cc8 pcmpeqb %xmm3, %xmm2 + 0x66, 0x44, 0x0f, 0xd7, 0xfa, //0x00005ccc pmovmskb %xmm2, %r15d + 0x66, 0x0f, 0x6f, 0xd5, //0x00005cd1 movdqa %xmm5, %xmm2 + 0x66, 0x0f, 0x74, 0xd3, //0x00005cd5 pcmpeqb %xmm3, %xmm2 + 0x66, 0x44, 0x0f, 0xd7, 0xe2, //0x00005cd9 pmovmskb %xmm2, %r12d + 0x66, 0x0f, 0x6f, 0xd7, //0x00005cde movdqa %xmm7, %xmm2 + 0x66, 0x0f, 0x74, 0xd3, //0x00005ce2 pcmpeqb %xmm3, %xmm2 + 0x66, 0x0f, 0xd7, 0xda, //0x00005ce6 pmovmskb %xmm2, %ebx + 0x66, 0x0f, 0x6f, 0xd6, //0x00005cea movdqa %xmm6, %xmm2 + 0x66, 0x0f, 0x74, 0xd3, //0x00005cee pcmpeqb %xmm3, %xmm2 + 0x66, 0x0f, 0xd7, 0xca, //0x00005cf2 pmovmskb %xmm2, %ecx + 0x48, 0xc1, 0xe1, 0x30, //0x00005cf6 shlq $48, %rcx + 0x48, 0xc1, 0xe3, 0x20, //0x00005cfa shlq $32, %rbx + 0x49, 0xc1, 0xe4, 0x10, //0x00005cfe shlq $16, %r12 + 0x4d, 0x09, 0xe7, //0x00005d02 orq %r12, %r15 + 0x49, 0x09, 0xdf, //0x00005d05 orq %rbx, %r15 + 0x49, 0x09, 0xcf, //0x00005d08 orq %rcx, %r15 + 0x4c, 0x89, 0xc9, //0x00005d0b movq %r9, %rcx + 0x48, 0xf7, 0xd1, //0x00005d0e notq %rcx + 0x49, 0x21, 0xcf, //0x00005d11 andq %rcx, %r15 + 0x66, 0x0f, 0x74, 0xc4, //0x00005d14 pcmpeqb %xmm4, %xmm0 + 0x66, 0x44, 0x0f, 0xd7, 0xe0, //0x00005d18 pmovmskb %xmm0, %r12d + 0x66, 0x0f, 0x74, 0xec, //0x00005d1d pcmpeqb %xmm4, %xmm5 + 0x66, 0x0f, 0xd7, 0xdd, //0x00005d21 pmovmskb %xmm5, %ebx + 0x66, 0x0f, 0x74, 0xfc, //0x00005d25 pcmpeqb %xmm4, %xmm7 + 0x66, 0x44, 0x0f, 0xd7, 0xd7, //0x00005d29 pmovmskb %xmm7, %r10d + 0x66, 0x0f, 0x74, 0xf4, //0x00005d2e pcmpeqb %xmm4, %xmm6 + 0x66, 0x44, 0x0f, 0xd7, 0xee, //0x00005d32 pmovmskb %xmm6, %r13d + 0x49, 0xc1, 0xe5, 0x30, //0x00005d37 shlq $48, %r13 + 0x49, 0xc1, 0xe2, 0x20, //0x00005d3b shlq $32, %r10 + 0x48, 0xc1, 0xe3, 0x10, //0x00005d3f shlq $16, %rbx + 0x49, 0x09, 0xdc, //0x00005d43 orq %rbx, %r12 + 0x4d, 0x09, 0xd4, //0x00005d46 orq %r10, %r12 + 0x4d, 0x09, 0xec, //0x00005d49 orq %r13, %r12 + 0x49, 0xbd, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00005d4c movabsq $6148914691236517205, %r13 + 0x49, 0xba, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, //0x00005d56 movabsq $3689348814741910323, %r10 + 0x49, 0x21, 0xcc, //0x00005d60 andq %rcx, %r12 + 0x0f, 0x84, 0xd3, 0xfd, 0xff, 0xff, //0x00005d63 je LBB27_58 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00005d69 .p2align 4, 0x90 + //0x00005d70 LBB27_64 + 0x49, 0x8d, 0x54, 0x24, 0xff, //0x00005d70 leaq $-1(%r12), %rdx + 0x48, 0x89, 0xd3, //0x00005d75 movq %rdx, %rbx + 0x4c, 0x21, 0xfb, //0x00005d78 andq %r15, %rbx + 0x48, 0x89, 0xd9, //0x00005d7b movq %rbx, %rcx + 0x48, 0xd1, 0xe9, //0x00005d7e shrq %rcx + 0x4c, 0x21, 0xe9, //0x00005d81 andq %r13, %rcx + 0x48, 0x29, 0xcb, //0x00005d84 subq %rcx, %rbx + 0x48, 0x89, 0xd9, //0x00005d87 movq %rbx, %rcx + 0x4c, 0x21, 0xd1, //0x00005d8a andq %r10, %rcx + 0x48, 0xc1, 0xeb, 0x02, //0x00005d8d shrq $2, %rbx + 0x4c, 0x21, 0xd3, //0x00005d91 andq %r10, %rbx + 0x48, 0x01, 0xcb, //0x00005d94 addq %rcx, %rbx + 0x48, 0x89, 0xd9, //0x00005d97 movq %rbx, %rcx + 0x48, 0xc1, 0xe9, 0x04, //0x00005d9a shrq $4, %rcx + 0x48, 0x01, 0xd9, //0x00005d9e addq %rbx, %rcx + 0x48, 0xbb, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, //0x00005da1 movabsq $1085102592571150095, %rbx + 0x48, 0x21, 0xd9, //0x00005dab andq %rbx, %rcx + 0x48, 0xbb, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, //0x00005dae movabsq $72340172838076673, %rbx + 0x48, 0x0f, 0xaf, 0xcb, //0x00005db8 imulq %rbx, %rcx + 0x48, 0xc1, 0xe9, 0x38, //0x00005dbc shrq $56, %rcx + 0x48, 0x03, 0x4d, 0xc0, //0x00005dc0 addq $-64(%rbp), %rcx + 0x4c, 0x39, 0xd9, //0x00005dc4 cmpq %r11, %rcx + 0x0f, 0x86, 0xa3, 0x05, 0x00, 0x00, //0x00005dc7 jbe LBB27_109 + 0x49, 0xff, 0xc3, //0x00005dcd incq %r11 + 0x49, 0x21, 0xd4, //0x00005dd0 andq %rdx, %r12 + 0x0f, 0x85, 0x97, 0xff, 0xff, 0xff, //0x00005dd3 jne LBB27_64 + 0xe9, 0x5e, 0xfd, 0xff, 0xff, //0x00005dd9 jmp LBB27_58 + //0x00005dde LBB27_66 + 0x48, 0x85, 0xc9, //0x00005dde testq %rcx, %rcx + 0x0f, 0x8e, 0x46, 0x06, 0x00, 0x00, //0x00005de1 jle LBB27_118 + 0x4c, 0x89, 0xd3, //0x00005de7 movq %r10, %rbx + 0x44, 0x0f, 0x11, 0x45, 0xb0, //0x00005dea movups %xmm8, $-80(%rbp) + 0x44, 0x0f, 0x11, 0x45, 0xa0, //0x00005def movups %xmm8, $-96(%rbp) + 0x44, 0x0f, 0x11, 0x45, 0x90, //0x00005df4 movups %xmm8, $-112(%rbp) + 0x44, 0x0f, 0x11, 0x45, 0x80, //0x00005df9 movups %xmm8, $-128(%rbp) + 0x44, 0x89, 0xc1, //0x00005dfe movl %r8d, %ecx + 0x81, 0xe1, 0xff, 0x0f, 0x00, 0x00, //0x00005e01 andl $4095, %ecx + 0x81, 0xf9, 0xc1, 0x0f, 0x00, 0x00, //0x00005e07 cmpl $4033, %ecx + 0x0f, 0x82, 0x31, 0x00, 0x00, 0x00, //0x00005e0d jb LBB27_70 + 0x48, 0x83, 0x7d, 0xd0, 0x20, //0x00005e13 cmpq $32, $-48(%rbp) + 0x0f, 0x82, 0x38, 0x00, 0x00, 0x00, //0x00005e18 jb LBB27_71 + 0x41, 0x0f, 0x10, 0x00, //0x00005e1e movups (%r8), %xmm0 + 0x0f, 0x11, 0x45, 0x80, //0x00005e22 movups %xmm0, $-128(%rbp) + 0x41, 0x0f, 0x10, 0x40, 0x10, //0x00005e26 movups $16(%r8), %xmm0 + 0x0f, 0x11, 0x45, 0x90, //0x00005e2b movups %xmm0, $-112(%rbp) + 0x49, 0x83, 0xc0, 0x20, //0x00005e2f addq $32, %r8 + 0x48, 0x8b, 0x4d, 0xd0, //0x00005e33 movq $-48(%rbp), %rcx + 0x48, 0x8d, 0x51, 0xe0, //0x00005e37 leaq $-32(%rcx), %rdx + 0x4c, 0x8d, 0x4d, 0xa0, //0x00005e3b leaq $-96(%rbp), %r9 + 0xe9, 0x1a, 0x00, 0x00, 0x00, //0x00005e3f jmp LBB27_72 + //0x00005e44 LBB27_70 + 0x49, 0xbd, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00005e44 movabsq $6148914691236517205, %r13 + 0x49, 0x89, 0xda, //0x00005e4e movq %rbx, %r10 + 0xe9, 0x54, 0xfd, 0xff, 0xff, //0x00005e51 jmp LBB27_60 + //0x00005e56 LBB27_71 + 0x4c, 0x8d, 0x4d, 0x80, //0x00005e56 leaq $-128(%rbp), %r9 + 0x48, 0x8b, 0x55, 0xd0, //0x00005e5a movq $-48(%rbp), %rdx + //0x00005e5e LBB27_72 + 0x48, 0x83, 0xfa, 0x10, //0x00005e5e cmpq $16, %rdx + 0x0f, 0x82, 0x49, 0x00, 0x00, 0x00, //0x00005e62 jb LBB27_73 + 0x41, 0x0f, 0x10, 0x00, //0x00005e68 movups (%r8), %xmm0 + 0x41, 0x0f, 0x11, 0x01, //0x00005e6c movups %xmm0, (%r9) + 0x49, 0x83, 0xc0, 0x10, //0x00005e70 addq $16, %r8 + 0x49, 0x83, 0xc1, 0x10, //0x00005e74 addq $16, %r9 + 0x48, 0x83, 0xc2, 0xf0, //0x00005e78 addq $-16, %rdx + 0x48, 0x83, 0xfa, 0x08, //0x00005e7c cmpq $8, %rdx + 0x0f, 0x83, 0x35, 0x00, 0x00, 0x00, //0x00005e80 jae LBB27_80 + //0x00005e86 LBB27_74 + 0x48, 0x83, 0xfa, 0x04, //0x00005e86 cmpq $4, %rdx + 0x0f, 0x8c, 0x47, 0x00, 0x00, 0x00, //0x00005e8a jl LBB27_75 + //0x00005e90 LBB27_81 + 0x41, 0x8b, 0x08, //0x00005e90 movl (%r8), %ecx + 0x41, 0x89, 0x09, //0x00005e93 movl %ecx, (%r9) + 0x49, 0x83, 0xc0, 0x04, //0x00005e96 addq $4, %r8 + 0x49, 0x83, 0xc1, 0x04, //0x00005e9a addq $4, %r9 + 0x48, 0x83, 0xc2, 0xfc, //0x00005e9e addq $-4, %rdx + 0x48, 0x83, 0xfa, 0x02, //0x00005ea2 cmpq $2, %rdx + 0x0f, 0x83, 0x35, 0x00, 0x00, 0x00, //0x00005ea6 jae LBB27_76 + 0xe9, 0x44, 0x00, 0x00, 0x00, //0x00005eac jmp LBB27_77 + //0x00005eb1 LBB27_73 + 0x48, 0x83, 0xfa, 0x08, //0x00005eb1 cmpq $8, %rdx + 0x0f, 0x82, 0xcb, 0xff, 0xff, 0xff, //0x00005eb5 jb LBB27_74 + //0x00005ebb LBB27_80 + 0x49, 0x8b, 0x08, //0x00005ebb movq (%r8), %rcx + 0x49, 0x89, 0x09, //0x00005ebe movq %rcx, (%r9) + 0x49, 0x83, 0xc0, 0x08, //0x00005ec1 addq $8, %r8 + 0x49, 0x83, 0xc1, 0x08, //0x00005ec5 addq $8, %r9 + 0x48, 0x83, 0xc2, 0xf8, //0x00005ec9 addq $-8, %rdx + 0x48, 0x83, 0xfa, 0x04, //0x00005ecd cmpq $4, %rdx + 0x0f, 0x8d, 0xb9, 0xff, 0xff, 0xff, //0x00005ed1 jge LBB27_81 + //0x00005ed7 LBB27_75 + 0x48, 0x83, 0xfa, 0x02, //0x00005ed7 cmpq $2, %rdx + 0x0f, 0x82, 0x14, 0x00, 0x00, 0x00, //0x00005edb jb LBB27_77 + //0x00005ee1 LBB27_76 + 0x41, 0x0f, 0xb7, 0x08, //0x00005ee1 movzwl (%r8), %ecx + 0x66, 0x41, 0x89, 0x09, //0x00005ee5 movw %cx, (%r9) + 0x49, 0x83, 0xc0, 0x02, //0x00005ee9 addq $2, %r8 + 0x49, 0x83, 0xc1, 0x02, //0x00005eed addq $2, %r9 + 0x48, 0x83, 0xc2, 0xfe, //0x00005ef1 addq $-2, %rdx + //0x00005ef5 LBB27_77 + 0x4c, 0x89, 0xc1, //0x00005ef5 movq %r8, %rcx + 0x4c, 0x8d, 0x45, 0x80, //0x00005ef8 leaq $-128(%rbp), %r8 + 0x48, 0x85, 0xd2, //0x00005efc testq %rdx, %rdx + 0x49, 0xbd, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00005eff movabsq $6148914691236517205, %r13 + 0x49, 0x89, 0xda, //0x00005f09 movq %rbx, %r10 + 0x0f, 0x84, 0x98, 0xfc, 0xff, 0xff, //0x00005f0c je LBB27_60 + 0x8a, 0x09, //0x00005f12 movb (%rcx), %cl + 0x41, 0x88, 0x09, //0x00005f14 movb %cl, (%r9) + 0x4c, 0x8d, 0x45, 0x80, //0x00005f17 leaq $-128(%rbp), %r8 + 0xe9, 0x8a, 0xfc, 0xff, 0xff, //0x00005f1b jmp LBB27_60 + //0x00005f20 LBB27_82 + 0x49, 0x8d, 0x4e, 0x05, //0x00005f20 leaq $5(%r14), %rcx + 0x48, 0x3b, 0x4f, 0x08, //0x00005f24 cmpq $8(%rdi), %rcx + 0x0f, 0x87, 0x74, 0xfa, 0xff, 0xff, //0x00005f28 ja LBB27_45 + //0x00005f2e LBB27_83 + 0x48, 0x89, 0x0e, //0x00005f2e movq %rcx, (%rsi) + 0xe9, 0x69, 0xfa, 0xff, 0xff, //0x00005f31 jmp LBB27_44 + //0x00005f36 LBB27_84 + 0x49, 0xbd, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00005f36 movabsq $6148914691236517205, %r13 + 0x48, 0x8b, 0x4f, 0x08, //0x00005f40 movq $8(%rdi), %rcx + 0x48, 0x29, 0xd9, //0x00005f44 subq %rbx, %rcx + 0x49, 0x01, 0xd8, //0x00005f47 addq %rbx, %r8 + 0x45, 0x31, 0xff, //0x00005f4a xorl %r15d, %r15d + 0x66, 0x44, 0x0f, 0x6f, 0x15, 0x6a, 0xf7, 0xff, 0xff, //0x00005f4d movdqa $-2198(%rip), %xmm10 /* LCPI27_3+0(%rip) */ + 0x66, 0x0f, 0x6f, 0x0d, 0x72, 0xf7, 0xff, 0xff, //0x00005f56 movdqa $-2190(%rip), %xmm1 /* LCPI27_4+0(%rip) */ + 0x66, 0x45, 0x0f, 0x76, 0xc9, //0x00005f5e pcmpeqd %xmm9, %xmm9 + 0x66, 0x0f, 0x6f, 0x1d, 0x75, 0xf7, 0xff, 0xff, //0x00005f63 movdqa $-2187(%rip), %xmm3 /* LCPI27_5+0(%rip) */ + 0x66, 0x0f, 0x6f, 0x25, 0x3d, 0xf7, 0xff, 0xff, //0x00005f6b movdqa $-2243(%rip), %xmm4 /* LCPI27_2+0(%rip) */ + 0x45, 0x0f, 0x57, 0xc0, //0x00005f73 xorps %xmm8, %xmm8 + 0x45, 0x31, 0xd2, //0x00005f77 xorl %r10d, %r10d + 0x31, 0xd2, //0x00005f7a xorl %edx, %edx + 0x48, 0x89, 0x55, 0xc0, //0x00005f7c movq %rdx, $-64(%rbp) + 0x45, 0x31, 0xdb, //0x00005f80 xorl %r11d, %r11d + 0xe9, 0x60, 0x00, 0x00, 0x00, //0x00005f83 jmp LBB27_86 + //0x00005f88 LBB27_85 + 0x49, 0xc1, 0xf9, 0x3f, //0x00005f88 sarq $63, %r9 + 0x4c, 0x89, 0xf9, //0x00005f8c movq %r15, %rcx + 0x48, 0xd1, 0xe9, //0x00005f8f shrq %rcx + 0x4c, 0x21, 0xe9, //0x00005f92 andq %r13, %rcx + 0x49, 0x29, 0xcf, //0x00005f95 subq %rcx, %r15 + 0x4c, 0x89, 0xf9, //0x00005f98 movq %r15, %rcx + 0x4c, 0x21, 0xd1, //0x00005f9b andq %r10, %rcx + 0x49, 0xc1, 0xef, 0x02, //0x00005f9e shrq $2, %r15 + 0x4d, 0x21, 0xd7, //0x00005fa2 andq %r10, %r15 + 0x49, 0x01, 0xcf, //0x00005fa5 addq %rcx, %r15 + 0x4c, 0x89, 0xf9, //0x00005fa8 movq %r15, %rcx + 0x48, 0xc1, 0xe9, 0x04, //0x00005fab shrq $4, %rcx + 0x4c, 0x01, 0xf9, //0x00005faf addq %r15, %rcx + 0x48, 0xba, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, //0x00005fb2 movabsq $1085102592571150095, %rdx + 0x48, 0x21, 0xd1, //0x00005fbc andq %rdx, %rcx + 0x48, 0xba, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, //0x00005fbf movabsq $72340172838076673, %rdx + 0x48, 0x0f, 0xaf, 0xca, //0x00005fc9 imulq %rdx, %rcx + 0x48, 0xc1, 0xe9, 0x38, //0x00005fcd shrq $56, %rcx + 0x48, 0x01, 0x4d, 0xc0, //0x00005fd1 addq %rcx, $-64(%rbp) + 0x49, 0x83, 0xc0, 0x40, //0x00005fd5 addq $64, %r8 + 0x48, 0x8b, 0x4d, 0xd0, //0x00005fd9 movq $-48(%rbp), %rcx + 0x48, 0x83, 0xc1, 0xc0, //0x00005fdd addq $-64, %rcx + 0x4d, 0x89, 0xcf, //0x00005fe1 movq %r9, %r15 + 0x4c, 0x8b, 0x55, 0xc8, //0x00005fe4 movq $-56(%rbp), %r10 + //0x00005fe8 LBB27_86 + 0x48, 0x83, 0xf9, 0x40, //0x00005fe8 cmpq $64, %rcx + 0x48, 0x89, 0x4d, 0xd0, //0x00005fec movq %rcx, $-48(%rbp) + 0x0f, 0x8c, 0x38, 0x02, 0x00, 0x00, //0x00005ff0 jl LBB27_93 + //0x00005ff6 LBB27_87 + 0xf3, 0x41, 0x0f, 0x6f, 0x00, //0x00005ff6 movdqu (%r8), %xmm0 + 0xf3, 0x41, 0x0f, 0x6f, 0x68, 0x10, //0x00005ffb movdqu $16(%r8), %xmm5 + 0xf3, 0x41, 0x0f, 0x6f, 0x78, 0x20, //0x00006001 movdqu $32(%r8), %xmm7 + 0xf3, 0x41, 0x0f, 0x6f, 0x70, 0x30, //0x00006007 movdqu $48(%r8), %xmm6 + 0x66, 0x0f, 0x6f, 0xd0, //0x0000600d movdqa %xmm0, %xmm2 + 0x66, 0x41, 0x0f, 0x74, 0xd2, //0x00006011 pcmpeqb %xmm10, %xmm2 + 0x66, 0x44, 0x0f, 0xd7, 0xca, //0x00006016 pmovmskb %xmm2, %r9d + 0x66, 0x0f, 0x6f, 0xd5, //0x0000601b movdqa %xmm5, %xmm2 + 0x66, 0x41, 0x0f, 0x74, 0xd2, //0x0000601f pcmpeqb %xmm10, %xmm2 + 0x66, 0x0f, 0xd7, 0xca, //0x00006024 pmovmskb %xmm2, %ecx + 0x66, 0x0f, 0x6f, 0xd7, //0x00006028 movdqa %xmm7, %xmm2 + 0x66, 0x41, 0x0f, 0x74, 0xd2, //0x0000602c pcmpeqb %xmm10, %xmm2 + 0x66, 0x0f, 0xd7, 0xda, //0x00006031 pmovmskb %xmm2, %ebx + 0x66, 0x0f, 0x6f, 0xd6, //0x00006035 movdqa %xmm6, %xmm2 + 0x66, 0x41, 0x0f, 0x74, 0xd2, //0x00006039 pcmpeqb %xmm10, %xmm2 + 0x66, 0x0f, 0xd7, 0xd2, //0x0000603e pmovmskb %xmm2, %edx + 0x48, 0xc1, 0xe2, 0x30, //0x00006042 shlq $48, %rdx + 0x48, 0xc1, 0xe3, 0x20, //0x00006046 shlq $32, %rbx + 0x48, 0xc1, 0xe1, 0x10, //0x0000604a shlq $16, %rcx + 0x49, 0x09, 0xc9, //0x0000604e orq %rcx, %r9 + 0x49, 0x09, 0xd9, //0x00006051 orq %rbx, %r9 + 0x49, 0x09, 0xd1, //0x00006054 orq %rdx, %r9 + 0x66, 0x0f, 0x6f, 0xd0, //0x00006057 movdqa %xmm0, %xmm2 + 0x66, 0x0f, 0x74, 0xd1, //0x0000605b pcmpeqb %xmm1, %xmm2 + 0x66, 0x0f, 0xd7, 0xca, //0x0000605f pmovmskb %xmm2, %ecx + 0x66, 0x0f, 0x6f, 0xd5, //0x00006063 movdqa %xmm5, %xmm2 + 0x66, 0x0f, 0x74, 0xd1, //0x00006067 pcmpeqb %xmm1, %xmm2 + 0x66, 0x44, 0x0f, 0xd7, 0xe2, //0x0000606b pmovmskb %xmm2, %r12d + 0x66, 0x0f, 0x6f, 0xd7, //0x00006070 movdqa %xmm7, %xmm2 + 0x66, 0x0f, 0x74, 0xd1, //0x00006074 pcmpeqb %xmm1, %xmm2 + 0x66, 0x0f, 0xd7, 0xda, //0x00006078 pmovmskb %xmm2, %ebx + 0x66, 0x0f, 0x6f, 0xd6, //0x0000607c movdqa %xmm6, %xmm2 + 0x66, 0x0f, 0x74, 0xd1, //0x00006080 pcmpeqb %xmm1, %xmm2 + 0x66, 0x0f, 0xd7, 0xd2, //0x00006084 pmovmskb %xmm2, %edx + 0x48, 0xc1, 0xe2, 0x30, //0x00006088 shlq $48, %rdx + 0x48, 0xc1, 0xe3, 0x20, //0x0000608c shlq $32, %rbx + 0x49, 0xc1, 0xe4, 0x10, //0x00006090 shlq $16, %r12 + 0x4c, 0x09, 0xe1, //0x00006094 orq %r12, %rcx + 0x48, 0x09, 0xd9, //0x00006097 orq %rbx, %rcx + 0x48, 0x09, 0xd1, //0x0000609a orq %rdx, %rcx + 0x48, 0x89, 0xca, //0x0000609d movq %rcx, %rdx + 0x4c, 0x09, 0xd2, //0x000060a0 orq %r10, %rdx + 0x0f, 0x84, 0x43, 0x00, 0x00, 0x00, //0x000060a3 je LBB27_89 + 0x4c, 0x89, 0xd2, //0x000060a9 movq %r10, %rdx + 0x48, 0xf7, 0xd2, //0x000060ac notq %rdx + 0x48, 0x21, 0xca, //0x000060af andq %rcx, %rdx + 0x4c, 0x8d, 0x24, 0x12, //0x000060b2 leaq (%rdx,%rdx), %r12 + 0x4d, 0x09, 0xd4, //0x000060b6 orq %r10, %r12 + 0x4d, 0x89, 0xe2, //0x000060b9 movq %r12, %r10 + 0x48, 0xbb, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x000060bc movabsq $-6148914691236517206, %rbx + 0x49, 0x31, 0xda, //0x000060c6 xorq %rbx, %r10 + 0x48, 0x21, 0xd9, //0x000060c9 andq %rbx, %rcx + 0x4c, 0x21, 0xd1, //0x000060cc andq %r10, %rcx + 0x31, 0xdb, //0x000060cf xorl %ebx, %ebx + 0x48, 0x01, 0xd1, //0x000060d1 addq %rdx, %rcx + 0x0f, 0x92, 0xc3, //0x000060d4 setb %bl + 0x48, 0x89, 0x5d, 0xc8, //0x000060d7 movq %rbx, $-56(%rbp) + 0x48, 0x01, 0xc9, //0x000060db addq %rcx, %rcx + 0x4c, 0x31, 0xe9, //0x000060de xorq %r13, %rcx + 0x4c, 0x21, 0xe1, //0x000060e1 andq %r12, %rcx + 0x48, 0xf7, 0xd1, //0x000060e4 notq %rcx + 0xe9, 0x0d, 0x00, 0x00, 0x00, //0x000060e7 jmp LBB27_90 + //0x000060ec LBB27_89 + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x000060ec movq $-1, %rcx + 0x31, 0xd2, //0x000060f3 xorl %edx, %edx + 0x48, 0x89, 0x55, 0xc8, //0x000060f5 movq %rdx, $-56(%rbp) + //0x000060f9 LBB27_90 + 0x4c, 0x21, 0xc9, //0x000060f9 andq %r9, %rcx + 0x66, 0x48, 0x0f, 0x6e, 0xd1, //0x000060fc movq %rcx, %xmm2 + 0x66, 0x41, 0x0f, 0x3a, 0x44, 0xd1, 0x00, //0x00006101 pclmulqdq $0, %xmm9, %xmm2 + 0x66, 0x49, 0x0f, 0x7e, 0xd1, //0x00006108 movq %xmm2, %r9 + 0x4d, 0x31, 0xf9, //0x0000610d xorq %r15, %r9 + 0x66, 0x0f, 0x6f, 0xd0, //0x00006110 movdqa %xmm0, %xmm2 + 0x66, 0x0f, 0x74, 0xd3, //0x00006114 pcmpeqb %xmm3, %xmm2 + 0x66, 0x44, 0x0f, 0xd7, 0xfa, //0x00006118 pmovmskb %xmm2, %r15d + 0x66, 0x0f, 0x6f, 0xd5, //0x0000611d movdqa %xmm5, %xmm2 + 0x66, 0x0f, 0x74, 0xd3, //0x00006121 pcmpeqb %xmm3, %xmm2 + 0x66, 0x44, 0x0f, 0xd7, 0xe2, //0x00006125 pmovmskb %xmm2, %r12d + 0x66, 0x0f, 0x6f, 0xd7, //0x0000612a movdqa %xmm7, %xmm2 + 0x66, 0x0f, 0x74, 0xd3, //0x0000612e pcmpeqb %xmm3, %xmm2 + 0x66, 0x0f, 0xd7, 0xda, //0x00006132 pmovmskb %xmm2, %ebx + 0x66, 0x0f, 0x6f, 0xd6, //0x00006136 movdqa %xmm6, %xmm2 + 0x66, 0x0f, 0x74, 0xd3, //0x0000613a pcmpeqb %xmm3, %xmm2 + 0x66, 0x0f, 0xd7, 0xca, //0x0000613e pmovmskb %xmm2, %ecx + 0x48, 0xc1, 0xe1, 0x30, //0x00006142 shlq $48, %rcx + 0x48, 0xc1, 0xe3, 0x20, //0x00006146 shlq $32, %rbx + 0x49, 0xc1, 0xe4, 0x10, //0x0000614a shlq $16, %r12 + 0x4d, 0x09, 0xe7, //0x0000614e orq %r12, %r15 + 0x49, 0x09, 0xdf, //0x00006151 orq %rbx, %r15 + 0x49, 0x09, 0xcf, //0x00006154 orq %rcx, %r15 + 0x4c, 0x89, 0xc9, //0x00006157 movq %r9, %rcx + 0x48, 0xf7, 0xd1, //0x0000615a notq %rcx + 0x49, 0x21, 0xcf, //0x0000615d andq %rcx, %r15 + 0x66, 0x0f, 0x74, 0xc4, //0x00006160 pcmpeqb %xmm4, %xmm0 + 0x66, 0x44, 0x0f, 0xd7, 0xe0, //0x00006164 pmovmskb %xmm0, %r12d + 0x66, 0x0f, 0x74, 0xec, //0x00006169 pcmpeqb %xmm4, %xmm5 + 0x66, 0x0f, 0xd7, 0xdd, //0x0000616d pmovmskb %xmm5, %ebx + 0x66, 0x0f, 0x74, 0xfc, //0x00006171 pcmpeqb %xmm4, %xmm7 + 0x66, 0x44, 0x0f, 0xd7, 0xd7, //0x00006175 pmovmskb %xmm7, %r10d + 0x66, 0x0f, 0x74, 0xf4, //0x0000617a pcmpeqb %xmm4, %xmm6 + 0x66, 0x44, 0x0f, 0xd7, 0xee, //0x0000617e pmovmskb %xmm6, %r13d + 0x49, 0xc1, 0xe5, 0x30, //0x00006183 shlq $48, %r13 + 0x49, 0xc1, 0xe2, 0x20, //0x00006187 shlq $32, %r10 + 0x48, 0xc1, 0xe3, 0x10, //0x0000618b shlq $16, %rbx + 0x49, 0x09, 0xdc, //0x0000618f orq %rbx, %r12 + 0x4d, 0x09, 0xd4, //0x00006192 orq %r10, %r12 + 0x4d, 0x09, 0xec, //0x00006195 orq %r13, %r12 + 0x49, 0xbd, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00006198 movabsq $6148914691236517205, %r13 + 0x49, 0xba, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, //0x000061a2 movabsq $3689348814741910323, %r10 + 0x49, 0x21, 0xcc, //0x000061ac andq %rcx, %r12 + 0x0f, 0x84, 0xd3, 0xfd, 0xff, 0xff, //0x000061af je LBB27_85 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000061b5 .p2align 4, 0x90 + //0x000061c0 LBB27_91 + 0x49, 0x8d, 0x54, 0x24, 0xff, //0x000061c0 leaq $-1(%r12), %rdx + 0x48, 0x89, 0xd3, //0x000061c5 movq %rdx, %rbx + 0x4c, 0x21, 0xfb, //0x000061c8 andq %r15, %rbx + 0x48, 0x89, 0xd9, //0x000061cb movq %rbx, %rcx + 0x48, 0xd1, 0xe9, //0x000061ce shrq %rcx + 0x4c, 0x21, 0xe9, //0x000061d1 andq %r13, %rcx + 0x48, 0x29, 0xcb, //0x000061d4 subq %rcx, %rbx + 0x48, 0x89, 0xd9, //0x000061d7 movq %rbx, %rcx + 0x4c, 0x21, 0xd1, //0x000061da andq %r10, %rcx + 0x48, 0xc1, 0xeb, 0x02, //0x000061dd shrq $2, %rbx + 0x4c, 0x21, 0xd3, //0x000061e1 andq %r10, %rbx + 0x48, 0x01, 0xcb, //0x000061e4 addq %rcx, %rbx + 0x48, 0x89, 0xd9, //0x000061e7 movq %rbx, %rcx + 0x48, 0xc1, 0xe9, 0x04, //0x000061ea shrq $4, %rcx + 0x48, 0x01, 0xd9, //0x000061ee addq %rbx, %rcx + 0x48, 0xbb, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, //0x000061f1 movabsq $1085102592571150095, %rbx + 0x48, 0x21, 0xd9, //0x000061fb andq %rbx, %rcx + 0x48, 0xbb, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, //0x000061fe movabsq $72340172838076673, %rbx + 0x48, 0x0f, 0xaf, 0xcb, //0x00006208 imulq %rbx, %rcx + 0x48, 0xc1, 0xe9, 0x38, //0x0000620c shrq $56, %rcx + 0x48, 0x03, 0x4d, 0xc0, //0x00006210 addq $-64(%rbp), %rcx + 0x4c, 0x39, 0xd9, //0x00006214 cmpq %r11, %rcx + 0x0f, 0x86, 0x53, 0x01, 0x00, 0x00, //0x00006217 jbe LBB27_109 + 0x49, 0xff, 0xc3, //0x0000621d incq %r11 + 0x49, 0x21, 0xd4, //0x00006220 andq %rdx, %r12 + 0x0f, 0x85, 0x97, 0xff, 0xff, 0xff, //0x00006223 jne LBB27_91 + 0xe9, 0x5a, 0xfd, 0xff, 0xff, //0x00006229 jmp LBB27_85 + //0x0000622e LBB27_93 + 0x48, 0x85, 0xc9, //0x0000622e testq %rcx, %rcx + 0x0f, 0x8e, 0xf6, 0x01, 0x00, 0x00, //0x00006231 jle LBB27_118 + 0x4c, 0x89, 0xd3, //0x00006237 movq %r10, %rbx + 0x44, 0x0f, 0x11, 0x45, 0xb0, //0x0000623a movups %xmm8, $-80(%rbp) + 0x44, 0x0f, 0x11, 0x45, 0xa0, //0x0000623f movups %xmm8, $-96(%rbp) + 0x44, 0x0f, 0x11, 0x45, 0x90, //0x00006244 movups %xmm8, $-112(%rbp) + 0x44, 0x0f, 0x11, 0x45, 0x80, //0x00006249 movups %xmm8, $-128(%rbp) + 0x44, 0x89, 0xc1, //0x0000624e movl %r8d, %ecx + 0x81, 0xe1, 0xff, 0x0f, 0x00, 0x00, //0x00006251 andl $4095, %ecx + 0x81, 0xf9, 0xc1, 0x0f, 0x00, 0x00, //0x00006257 cmpl $4033, %ecx + 0x0f, 0x82, 0x31, 0x00, 0x00, 0x00, //0x0000625d jb LBB27_97 + 0x48, 0x83, 0x7d, 0xd0, 0x20, //0x00006263 cmpq $32, $-48(%rbp) + 0x0f, 0x82, 0x38, 0x00, 0x00, 0x00, //0x00006268 jb LBB27_98 + 0x41, 0x0f, 0x10, 0x00, //0x0000626e movups (%r8), %xmm0 + 0x0f, 0x11, 0x45, 0x80, //0x00006272 movups %xmm0, $-128(%rbp) + 0x41, 0x0f, 0x10, 0x40, 0x10, //0x00006276 movups $16(%r8), %xmm0 + 0x0f, 0x11, 0x45, 0x90, //0x0000627b movups %xmm0, $-112(%rbp) + 0x49, 0x83, 0xc0, 0x20, //0x0000627f addq $32, %r8 + 0x48, 0x8b, 0x4d, 0xd0, //0x00006283 movq $-48(%rbp), %rcx + 0x48, 0x8d, 0x51, 0xe0, //0x00006287 leaq $-32(%rcx), %rdx + 0x4c, 0x8d, 0x4d, 0xa0, //0x0000628b leaq $-96(%rbp), %r9 + 0xe9, 0x1a, 0x00, 0x00, 0x00, //0x0000628f jmp LBB27_99 + //0x00006294 LBB27_97 + 0x49, 0xbd, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00006294 movabsq $6148914691236517205, %r13 + 0x49, 0x89, 0xda, //0x0000629e movq %rbx, %r10 + 0xe9, 0x50, 0xfd, 0xff, 0xff, //0x000062a1 jmp LBB27_87 + //0x000062a6 LBB27_98 + 0x4c, 0x8d, 0x4d, 0x80, //0x000062a6 leaq $-128(%rbp), %r9 + 0x48, 0x8b, 0x55, 0xd0, //0x000062aa movq $-48(%rbp), %rdx + //0x000062ae LBB27_99 + 0x48, 0x83, 0xfa, 0x10, //0x000062ae cmpq $16, %rdx + 0x0f, 0x82, 0x49, 0x00, 0x00, 0x00, //0x000062b2 jb LBB27_100 + 0x41, 0x0f, 0x10, 0x00, //0x000062b8 movups (%r8), %xmm0 + 0x41, 0x0f, 0x11, 0x01, //0x000062bc movups %xmm0, (%r9) + 0x49, 0x83, 0xc0, 0x10, //0x000062c0 addq $16, %r8 + 0x49, 0x83, 0xc1, 0x10, //0x000062c4 addq $16, %r9 + 0x48, 0x83, 0xc2, 0xf0, //0x000062c8 addq $-16, %rdx + 0x48, 0x83, 0xfa, 0x08, //0x000062cc cmpq $8, %rdx + 0x0f, 0x83, 0x35, 0x00, 0x00, 0x00, //0x000062d0 jae LBB27_107 + //0x000062d6 LBB27_101 + 0x48, 0x83, 0xfa, 0x04, //0x000062d6 cmpq $4, %rdx + 0x0f, 0x8c, 0x47, 0x00, 0x00, 0x00, //0x000062da jl LBB27_102 + //0x000062e0 LBB27_108 + 0x41, 0x8b, 0x08, //0x000062e0 movl (%r8), %ecx + 0x41, 0x89, 0x09, //0x000062e3 movl %ecx, (%r9) + 0x49, 0x83, 0xc0, 0x04, //0x000062e6 addq $4, %r8 + 0x49, 0x83, 0xc1, 0x04, //0x000062ea addq $4, %r9 + 0x48, 0x83, 0xc2, 0xfc, //0x000062ee addq $-4, %rdx + 0x48, 0x83, 0xfa, 0x02, //0x000062f2 cmpq $2, %rdx + 0x0f, 0x83, 0x35, 0x00, 0x00, 0x00, //0x000062f6 jae LBB27_103 + 0xe9, 0x44, 0x00, 0x00, 0x00, //0x000062fc jmp LBB27_104 + //0x00006301 LBB27_100 + 0x48, 0x83, 0xfa, 0x08, //0x00006301 cmpq $8, %rdx + 0x0f, 0x82, 0xcb, 0xff, 0xff, 0xff, //0x00006305 jb LBB27_101 + //0x0000630b LBB27_107 + 0x49, 0x8b, 0x08, //0x0000630b movq (%r8), %rcx + 0x49, 0x89, 0x09, //0x0000630e movq %rcx, (%r9) + 0x49, 0x83, 0xc0, 0x08, //0x00006311 addq $8, %r8 + 0x49, 0x83, 0xc1, 0x08, //0x00006315 addq $8, %r9 + 0x48, 0x83, 0xc2, 0xf8, //0x00006319 addq $-8, %rdx + 0x48, 0x83, 0xfa, 0x04, //0x0000631d cmpq $4, %rdx + 0x0f, 0x8d, 0xb9, 0xff, 0xff, 0xff, //0x00006321 jge LBB27_108 + //0x00006327 LBB27_102 + 0x48, 0x83, 0xfa, 0x02, //0x00006327 cmpq $2, %rdx + 0x0f, 0x82, 0x14, 0x00, 0x00, 0x00, //0x0000632b jb LBB27_104 + //0x00006331 LBB27_103 + 0x41, 0x0f, 0xb7, 0x08, //0x00006331 movzwl (%r8), %ecx + 0x66, 0x41, 0x89, 0x09, //0x00006335 movw %cx, (%r9) + 0x49, 0x83, 0xc0, 0x02, //0x00006339 addq $2, %r8 + 0x49, 0x83, 0xc1, 0x02, //0x0000633d addq $2, %r9 + 0x48, 0x83, 0xc2, 0xfe, //0x00006341 addq $-2, %rdx + //0x00006345 LBB27_104 + 0x4c, 0x89, 0xc1, //0x00006345 movq %r8, %rcx + 0x4c, 0x8d, 0x45, 0x80, //0x00006348 leaq $-128(%rbp), %r8 + 0x48, 0x85, 0xd2, //0x0000634c testq %rdx, %rdx + 0x49, 0xbd, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x0000634f movabsq $6148914691236517205, %r13 + 0x49, 0x89, 0xda, //0x00006359 movq %rbx, %r10 + 0x0f, 0x84, 0x94, 0xfc, 0xff, 0xff, //0x0000635c je LBB27_87 + 0x8a, 0x09, //0x00006362 movb (%rcx), %cl + 0x41, 0x88, 0x09, //0x00006364 movb %cl, (%r9) + 0x4c, 0x8d, 0x45, 0x80, //0x00006367 leaq $-128(%rbp), %r8 + 0xe9, 0x86, 0xfc, 0xff, 0xff, //0x0000636b jmp LBB27_87 + //0x00006370 LBB27_109 + 0x48, 0x8b, 0x47, 0x08, //0x00006370 movq $8(%rdi), %rax + 0x49, 0x0f, 0xbc, 0xcc, //0x00006374 bsfq %r12, %rcx + 0x48, 0x2b, 0x4d, 0xd0, //0x00006378 subq $-48(%rbp), %rcx + 0x48, 0x8d, 0x44, 0x01, 0x01, //0x0000637c leaq $1(%rcx,%rax), %rax + 0x48, 0x89, 0x06, //0x00006381 movq %rax, (%rsi) + 0x48, 0x8b, 0x4f, 0x08, //0x00006384 movq $8(%rdi), %rcx + 0x48, 0x39, 0xc8, //0x00006388 cmpq %rcx, %rax + 0x48, 0x0f, 0x47, 0xc1, //0x0000638b cmovaq %rcx, %rax + 0x48, 0x89, 0x06, //0x0000638f movq %rax, (%rsi) + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00006392 movq $-1, %rax + 0x4c, 0x0f, 0x47, 0xf0, //0x00006399 cmovaq %rax, %r14 + 0xe9, 0xfd, 0xf5, 0xff, 0xff, //0x0000639d jmp LBB27_44 + //0x000063a2 LBB27_54 + 0x4d, 0x85, 0xe4, //0x000063a2 testq %r12, %r12 + 0x0f, 0x85, 0x8e, 0x00, 0x00, 0x00, //0x000063a5 jne LBB27_119 + 0x4b, 0x8d, 0x5c, 0x1f, 0x01, //0x000063ab leaq $1(%r15,%r11), %rbx + 0x49, 0xf7, 0xd7, //0x000063b0 notq %r15 + 0x4d, 0x01, 0xcf, //0x000063b3 addq %r9, %r15 + //0x000063b6 LBB27_56 + 0x4d, 0x85, 0xff, //0x000063b6 testq %r15, %r15 + 0x0f, 0x8f, 0x24, 0x00, 0x00, 0x00, //0x000063b9 jg LBB27_113 + 0xe9, 0xde, 0xf5, 0xff, 0xff, //0x000063bf jmp LBB27_45 + //0x000063c4 LBB27_111 + 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x000063c4 movq $-2, %rcx + 0xb8, 0x02, 0x00, 0x00, 0x00, //0x000063cb movl $2, %eax + 0x48, 0x01, 0xc3, //0x000063d0 addq %rax, %rbx + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000063d3 movq $-1, %rax + 0x49, 0x01, 0xcf, //0x000063da addq %rcx, %r15 + 0x0f, 0x8e, 0xbf, 0xf5, 0xff, 0xff, //0x000063dd jle LBB27_45 + //0x000063e3 LBB27_113 + 0x0f, 0xb6, 0x03, //0x000063e3 movzbl (%rbx), %eax + 0x3c, 0x5c, //0x000063e6 cmpb $92, %al + 0x0f, 0x84, 0xd6, 0xff, 0xff, 0xff, //0x000063e8 je LBB27_111 + 0x3c, 0x22, //0x000063ee cmpb $34, %al + 0x0f, 0x84, 0x24, 0x00, 0x00, 0x00, //0x000063f0 je LBB27_116 + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x000063f6 movq $-1, %rcx + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x000063fd movl $1, %eax + 0x48, 0x01, 0xc3, //0x00006402 addq %rax, %rbx + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00006405 movq $-1, %rax + 0x49, 0x01, 0xcf, //0x0000640c addq %rcx, %r15 + 0x0f, 0x8f, 0xce, 0xff, 0xff, 0xff, //0x0000640f jg LBB27_113 + 0xe9, 0x88, 0xf5, 0xff, 0xff, //0x00006415 jmp LBB27_45 + //0x0000641a LBB27_116 + 0x4c, 0x29, 0xc3, //0x0000641a subq %r8, %rbx + 0x48, 0xff, 0xc3, //0x0000641d incq %rbx + 0xe9, 0x77, 0xf5, 0xff, 0xff, //0x00006420 jmp LBB27_43 + //0x00006425 LBB27_117 + 0x4c, 0x01, 0xc3, //0x00006425 addq %r8, %rbx + 0xe9, 0x89, 0xff, 0xff, 0xff, //0x00006428 jmp LBB27_56 + //0x0000642d LBB27_118 + 0x48, 0x8b, 0x4f, 0x08, //0x0000642d movq $8(%rdi), %rcx + 0x48, 0x89, 0x0e, //0x00006431 movq %rcx, (%rsi) + 0xe9, 0x69, 0xf5, 0xff, 0xff, //0x00006434 jmp LBB27_45 + //0x00006439 LBB27_119 + 0x49, 0x8d, 0x49, 0xff, //0x00006439 leaq $-1(%r9), %rcx + 0x4c, 0x39, 0xf9, //0x0000643d cmpq %r15, %rcx + 0x0f, 0x84, 0x5c, 0xf5, 0xff, 0xff, //0x00006440 je LBB27_45 + 0x4b, 0x8d, 0x5c, 0x1f, 0x02, //0x00006446 leaq $2(%r15,%r11), %rbx + 0x4d, 0x29, 0xf9, //0x0000644b subq %r15, %r9 + 0x49, 0x83, 0xc1, 0xfe, //0x0000644e addq $-2, %r9 + 0x4d, 0x89, 0xcf, //0x00006452 movq %r9, %r15 + 0xe9, 0x5c, 0xff, 0xff, 0xff, //0x00006455 jmp LBB27_56 + 0x90, 0x90, //0x0000645a .p2align 2, 0x90 + // // .set L27_0_set_45, LBB27_45-LJTI27_0 + // // .set L27_0_set_47, LBB27_47-LJTI27_0 + // // .set L27_0_set_48, LBB27_48-LJTI27_0 + // // .set L27_0_set_29, LBB27_29-LJTI27_0 + // // .set L27_0_set_57, LBB27_57-LJTI27_0 + // // .set L27_0_set_82, LBB27_82-LJTI27_0 + // // .set L27_0_set_46, LBB27_46-LJTI27_0 + // // .set L27_0_set_84, LBB27_84-LJTI27_0 + //0x0000645c LJTI27_0 + 0x46, 0xf5, 0xff, 0xff, //0x0000645c .long L27_0_set_45 + 0x68, 0xf5, 0xff, 0xff, //0x00006460 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00006464 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00006468 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x0000646c .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00006470 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00006474 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00006478 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x0000647c .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00006480 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00006484 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00006488 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x0000648c .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00006490 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00006494 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00006498 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x0000649c .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x000064a0 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x000064a4 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x000064a8 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x000064ac .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x000064b0 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x000064b4 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x000064b8 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x000064bc .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x000064c0 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x000064c4 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x000064c8 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x000064cc .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x000064d0 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x000064d4 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x000064d8 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x000064dc .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x000064e0 .long L27_0_set_47 + 0x77, 0xf5, 0xff, 0xff, //0x000064e4 .long L27_0_set_48 + 0x68, 0xf5, 0xff, 0xff, //0x000064e8 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x000064ec .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x000064f0 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x000064f4 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x000064f8 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x000064fc .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00006500 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00006504 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00006508 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x0000650c .long L27_0_set_47 + 0x5f, 0xf4, 0xff, 0xff, //0x00006510 .long L27_0_set_29 + 0x68, 0xf5, 0xff, 0xff, //0x00006514 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00006518 .long L27_0_set_47 + 0x5f, 0xf4, 0xff, 0xff, //0x0000651c .long L27_0_set_29 + 0x5f, 0xf4, 0xff, 0xff, //0x00006520 .long L27_0_set_29 + 0x5f, 0xf4, 0xff, 0xff, //0x00006524 .long L27_0_set_29 + 0x5f, 0xf4, 0xff, 0xff, //0x00006528 .long L27_0_set_29 + 0x5f, 0xf4, 0xff, 0xff, //0x0000652c .long L27_0_set_29 + 0x5f, 0xf4, 0xff, 0xff, //0x00006530 .long L27_0_set_29 + 0x5f, 0xf4, 0xff, 0xff, //0x00006534 .long L27_0_set_29 + 0x5f, 0xf4, 0xff, 0xff, //0x00006538 .long L27_0_set_29 + 0x5f, 0xf4, 0xff, 0xff, //0x0000653c .long L27_0_set_29 + 0x5f, 0xf4, 0xff, 0xff, //0x00006540 .long L27_0_set_29 + 0x68, 0xf5, 0xff, 0xff, //0x00006544 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00006548 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x0000654c .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00006550 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00006554 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00006558 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x0000655c .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00006560 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00006564 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00006568 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x0000656c .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00006570 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00006574 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00006578 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x0000657c .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00006580 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00006584 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00006588 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x0000658c .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00006590 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00006594 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00006598 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x0000659c .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x000065a0 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x000065a4 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x000065a8 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x000065ac .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x000065b0 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x000065b4 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x000065b8 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x000065bc .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x000065c0 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x000065c4 .long L27_0_set_47 + 0x8e, 0xf6, 0xff, 0xff, //0x000065c8 .long L27_0_set_57 + 0x68, 0xf5, 0xff, 0xff, //0x000065cc .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x000065d0 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x000065d4 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x000065d8 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x000065dc .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x000065e0 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x000065e4 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x000065e8 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x000065ec .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x000065f0 .long L27_0_set_47 + 0xc4, 0xfa, 0xff, 0xff, //0x000065f4 .long L27_0_set_82 + 0x68, 0xf5, 0xff, 0xff, //0x000065f8 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x000065fc .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00006600 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00006604 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00006608 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x0000660c .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00006610 .long L27_0_set_47 + 0x55, 0xf5, 0xff, 0xff, //0x00006614 .long L27_0_set_46 + 0x68, 0xf5, 0xff, 0xff, //0x00006618 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x0000661c .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00006620 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00006624 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00006628 .long L27_0_set_47 + 0x55, 0xf5, 0xff, 0xff, //0x0000662c .long L27_0_set_46 + 0x68, 0xf5, 0xff, 0xff, //0x00006630 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00006634 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00006638 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x0000663c .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00006640 .long L27_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00006644 .long L27_0_set_47 + 0xda, 0xfa, 0xff, 0xff, //0x00006648 .long L27_0_set_84 + 0x90, 0x90, 0x90, 0x90, //0x0000664c .p2align 4, 0x90 + //0x00006650 _get_by_path + 0x55, //0x00006650 pushq %rbp + 0x48, 0x89, 0xe5, //0x00006651 movq %rsp, %rbp + 0x41, 0x57, //0x00006654 pushq %r15 + 0x41, 0x56, //0x00006656 pushq %r14 + 0x41, 0x55, //0x00006658 pushq %r13 + 0x41, 0x54, //0x0000665a pushq %r12 + 0x53, //0x0000665c pushq %rbx + 0x48, 0x83, 0xec, 0x38, //0x0000665d subq $56, %rsp + 0x49, 0x89, 0xf7, //0x00006661 movq %rsi, %r15 + 0x49, 0x89, 0xfb, //0x00006664 movq %rdi, %r11 + 0x4c, 0x8b, 0x52, 0x08, //0x00006667 movq $8(%rdx), %r10 + 0x4d, 0x85, 0xd2, //0x0000666b testq %r10, %r10 + 0x0f, 0x84, 0x4c, 0x0f, 0x00, 0x00, //0x0000666e je LBB28_244 + 0x48, 0x8b, 0x02, //0x00006674 movq (%rdx), %rax + 0x49, 0xc1, 0xe2, 0x04, //0x00006677 shlq $4, %r10 + 0x48, 0x89, 0x45, 0xb8, //0x0000667b movq %rax, $-72(%rbp) + 0x49, 0x01, 0xc2, //0x0000667f addq %rax, %r10 + 0x4d, 0x8b, 0x0b, //0x00006682 movq (%r11), %r9 + 0x49, 0x8b, 0x17, //0x00006685 movq (%r15), %rdx + 0x49, 0xbc, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00006688 movabsq $4294977024, %r12 + 0x4c, 0x89, 0x5d, 0xc0, //0x00006692 movq %r11, $-64(%rbp) + 0x48, 0x89, 0x4d, 0xa0, //0x00006696 movq %rcx, $-96(%rbp) + 0x4c, 0x89, 0x55, 0xa8, //0x0000669a movq %r10, $-88(%rbp) + //0x0000669e LBB28_2 + 0x4d, 0x8b, 0x43, 0x08, //0x0000669e movq $8(%r11), %r8 + 0x48, 0x89, 0xd7, //0x000066a2 movq %rdx, %rdi + 0x4c, 0x29, 0xc7, //0x000066a5 subq %r8, %rdi + 0x0f, 0x83, 0x32, 0x00, 0x00, 0x00, //0x000066a8 jae LBB28_7 + 0x41, 0x8a, 0x04, 0x11, //0x000066ae movb (%r9,%rdx), %al + 0x3c, 0x0d, //0x000066b2 cmpb $13, %al + 0x0f, 0x84, 0x26, 0x00, 0x00, 0x00, //0x000066b4 je LBB28_7 + 0x3c, 0x20, //0x000066ba cmpb $32, %al + 0x0f, 0x84, 0x1e, 0x00, 0x00, 0x00, //0x000066bc je LBB28_7 + 0x04, 0xf7, //0x000066c2 addb $-9, %al + 0x3c, 0x01, //0x000066c4 cmpb $1, %al + 0x0f, 0x86, 0x14, 0x00, 0x00, 0x00, //0x000066c6 jbe LBB28_7 + 0x48, 0x89, 0xd6, //0x000066cc movq %rdx, %rsi + 0xe9, 0xfe, 0x00, 0x00, 0x00, //0x000066cf jmp LBB28_28 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000066d4 .p2align 4, 0x90 + //0x000066e0 LBB28_7 + 0x48, 0x8d, 0x72, 0x01, //0x000066e0 leaq $1(%rdx), %rsi + 0x4c, 0x39, 0xc6, //0x000066e4 cmpq %r8, %rsi + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x000066e7 jae LBB28_11 + 0x41, 0x8a, 0x04, 0x31, //0x000066ed movb (%r9,%rsi), %al + 0x3c, 0x0d, //0x000066f1 cmpb $13, %al + 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x000066f3 je LBB28_11 + 0x3c, 0x20, //0x000066f9 cmpb $32, %al + 0x0f, 0x84, 0x0f, 0x00, 0x00, 0x00, //0x000066fb je LBB28_11 + 0x04, 0xf7, //0x00006701 addb $-9, %al + 0x3c, 0x01, //0x00006703 cmpb $1, %al + 0x0f, 0x87, 0xc7, 0x00, 0x00, 0x00, //0x00006705 ja LBB28_28 + 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000670b .p2align 4, 0x90 + //0x00006710 LBB28_11 + 0x48, 0x8d, 0x72, 0x02, //0x00006710 leaq $2(%rdx), %rsi + 0x4c, 0x39, 0xc6, //0x00006714 cmpq %r8, %rsi + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00006717 jae LBB28_15 + 0x41, 0x8a, 0x04, 0x31, //0x0000671d movb (%r9,%rsi), %al + 0x3c, 0x0d, //0x00006721 cmpb $13, %al + 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x00006723 je LBB28_15 + 0x3c, 0x20, //0x00006729 cmpb $32, %al + 0x0f, 0x84, 0x0f, 0x00, 0x00, 0x00, //0x0000672b je LBB28_15 + 0x04, 0xf7, //0x00006731 addb $-9, %al + 0x3c, 0x01, //0x00006733 cmpb $1, %al + 0x0f, 0x87, 0x97, 0x00, 0x00, 0x00, //0x00006735 ja LBB28_28 + 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000673b .p2align 4, 0x90 + //0x00006740 LBB28_15 + 0x48, 0x8d, 0x72, 0x03, //0x00006740 leaq $3(%rdx), %rsi + 0x4c, 0x39, 0xc6, //0x00006744 cmpq %r8, %rsi + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00006747 jae LBB28_19 + 0x41, 0x8a, 0x04, 0x31, //0x0000674d movb (%r9,%rsi), %al + 0x3c, 0x0d, //0x00006751 cmpb $13, %al + 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x00006753 je LBB28_19 + 0x3c, 0x20, //0x00006759 cmpb $32, %al + 0x0f, 0x84, 0x0f, 0x00, 0x00, 0x00, //0x0000675b je LBB28_19 + 0x04, 0xf7, //0x00006761 addb $-9, %al + 0x3c, 0x01, //0x00006763 cmpb $1, %al + 0x0f, 0x87, 0x67, 0x00, 0x00, 0x00, //0x00006765 ja LBB28_28 + 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000676b .p2align 4, 0x90 + //0x00006770 LBB28_19 + 0x48, 0x8d, 0x42, 0x04, //0x00006770 leaq $4(%rdx), %rax + 0x49, 0x39, 0xc0, //0x00006774 cmpq %rax, %r8 + 0x0f, 0x86, 0x83, 0x00, 0x00, 0x00, //0x00006777 jbe LBB28_25 + 0x49, 0x39, 0xc0, //0x0000677d cmpq %rax, %r8 + 0x0f, 0x84, 0x94, 0x00, 0x00, 0x00, //0x00006780 je LBB28_26 + 0x4b, 0x8d, 0x04, 0x01, //0x00006786 leaq (%r9,%r8), %rax + 0x48, 0x83, 0xc7, 0x04, //0x0000678a addq $4, %rdi + 0x49, 0x8d, 0x74, 0x11, 0x05, //0x0000678e leaq $5(%r9,%rdx), %rsi + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00006793 .p2align 4, 0x90 + //0x000067a0 LBB28_22 + 0x0f, 0xbe, 0x5e, 0xff, //0x000067a0 movsbl $-1(%rsi), %ebx + 0x83, 0xfb, 0x20, //0x000067a4 cmpl $32, %ebx + 0x0f, 0x87, 0xfd, 0x0b, 0x00, 0x00, //0x000067a7 ja LBB28_29 + 0x49, 0x0f, 0xa3, 0xdc, //0x000067ad btq %rbx, %r12 + 0x0f, 0x83, 0xf3, 0x0b, 0x00, 0x00, //0x000067b1 jae LBB28_29 + 0x48, 0xff, 0xc6, //0x000067b7 incq %rsi + 0x48, 0xff, 0xc7, //0x000067ba incq %rdi + 0x0f, 0x85, 0xdd, 0xff, 0xff, 0xff, //0x000067bd jne LBB28_22 + 0x4c, 0x29, 0xc8, //0x000067c3 subq %r9, %rax + 0x48, 0x89, 0xc6, //0x000067c6 movq %rax, %rsi + 0x4c, 0x39, 0xc6, //0x000067c9 cmpq %r8, %rsi + 0x0f, 0x83, 0x5a, 0x00, 0x00, 0x00, //0x000067cc jae LBB28_30 + //0x000067d2 LBB28_28 + 0x48, 0x8d, 0x46, 0x01, //0x000067d2 leaq $1(%rsi), %rax + 0x49, 0x89, 0x07, //0x000067d6 movq %rax, (%r15) + 0x41, 0x8a, 0x34, 0x31, //0x000067d9 movb (%r9,%rsi), %sil + 0x48, 0x8b, 0x55, 0xb8, //0x000067dd movq $-72(%rbp), %rdx + 0x48, 0x8b, 0x12, //0x000067e1 movq (%rdx), %rdx + 0x48, 0x85, 0xd2, //0x000067e4 testq %rdx, %rdx + 0x0f, 0x85, 0x63, 0x00, 0x00, 0x00, //0x000067e7 jne LBB28_31 + 0xe9, 0x29, 0x0e, 0x00, 0x00, //0x000067ed jmp LBB28_251 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000067f2 .p2align 4, 0x90 + //0x00006800 LBB28_25 + 0x49, 0x89, 0x07, //0x00006800 movq %rax, (%r15) + 0x31, 0xf6, //0x00006803 xorl %esi, %esi + 0x48, 0x8b, 0x55, 0xb8, //0x00006805 movq $-72(%rbp), %rdx + 0x48, 0x8b, 0x12, //0x00006809 movq (%rdx), %rdx + 0x48, 0x85, 0xd2, //0x0000680c testq %rdx, %rdx + 0x0f, 0x85, 0x3b, 0x00, 0x00, 0x00, //0x0000680f jne LBB28_31 + 0xe9, 0x01, 0x0e, 0x00, 0x00, //0x00006815 jmp LBB28_251 + //0x0000681a LBB28_26 + 0x4c, 0x01, 0xc8, //0x0000681a addq %r9, %rax + 0x4c, 0x29, 0xc8, //0x0000681d subq %r9, %rax + 0x48, 0x89, 0xc6, //0x00006820 movq %rax, %rsi + 0x4c, 0x39, 0xc6, //0x00006823 cmpq %r8, %rsi + 0x0f, 0x82, 0xa6, 0xff, 0xff, 0xff, //0x00006826 jb LBB28_28 + //0x0000682c LBB28_30 + 0x31, 0xf6, //0x0000682c xorl %esi, %esi + 0x48, 0x89, 0xd0, //0x0000682e movq %rdx, %rax + 0x48, 0x8b, 0x55, 0xb8, //0x00006831 movq $-72(%rbp), %rdx + 0x48, 0x8b, 0x12, //0x00006835 movq (%rdx), %rdx + 0x48, 0x85, 0xd2, //0x00006838 testq %rdx, %rdx + 0x0f, 0x84, 0xda, 0x0d, 0x00, 0x00, //0x0000683b je LBB28_251 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00006841 .p2align 4, 0x90 + //0x00006850 LBB28_31 + 0x8a, 0x52, 0x17, //0x00006850 movb $23(%rdx), %dl + 0x80, 0xe2, 0x1f, //0x00006853 andb $31, %dl + 0x80, 0xfa, 0x02, //0x00006856 cmpb $2, %dl + 0x0f, 0x84, 0x21, 0x00, 0x00, 0x00, //0x00006859 je LBB28_184 + 0x80, 0xfa, 0x18, //0x0000685f cmpb $24, %dl + 0x0f, 0x85, 0xb3, 0x0d, 0x00, 0x00, //0x00006862 jne LBB28_251 + 0x40, 0x80, 0xfe, 0x7b, //0x00006868 cmpb $123, %sil + 0x4c, 0x89, 0x7d, 0xd0, //0x0000686c movq %r15, $-48(%rbp) + 0x0f, 0x84, 0x78, 0x01, 0x00, 0x00, //0x00006870 je LBB28_34 + 0xe9, 0x71, 0x0d, 0x00, 0x00, //0x00006876 jmp LBB28_247 + 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000687b .p2align 4, 0x90 + //0x00006880 LBB28_184 + 0x40, 0x80, 0xfe, 0x5b, //0x00006880 cmpb $91, %sil + 0x0f, 0x85, 0x62, 0x0d, 0x00, 0x00, //0x00006884 jne LBB28_247 + 0x48, 0x8b, 0x55, 0xb8, //0x0000688a movq $-72(%rbp), %rdx + 0x48, 0x8b, 0x52, 0x08, //0x0000688e movq $8(%rdx), %rdx + 0x4c, 0x8b, 0x32, //0x00006892 movq (%rdx), %r14 + 0x4d, 0x85, 0xf6, //0x00006895 testq %r14, %r14 + 0x0f, 0x88, 0x7d, 0x0d, 0x00, 0x00, //0x00006898 js LBB28_251 + 0x4d, 0x8b, 0x43, 0x08, //0x0000689e movq $8(%r11), %r8 + 0x48, 0x89, 0xc6, //0x000068a2 movq %rax, %rsi + 0x4c, 0x29, 0xc6, //0x000068a5 subq %r8, %rsi + 0x0f, 0x83, 0x32, 0x00, 0x00, 0x00, //0x000068a8 jae LBB28_191 + 0x41, 0x8a, 0x14, 0x01, //0x000068ae movb (%r9,%rax), %dl + 0x80, 0xfa, 0x0d, //0x000068b2 cmpb $13, %dl + 0x0f, 0x84, 0x25, 0x00, 0x00, 0x00, //0x000068b5 je LBB28_191 + 0x80, 0xfa, 0x20, //0x000068bb cmpb $32, %dl + 0x0f, 0x84, 0x1c, 0x00, 0x00, 0x00, //0x000068be je LBB28_191 + 0x80, 0xc2, 0xf7, //0x000068c4 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x000068c7 cmpb $1, %dl + 0x0f, 0x86, 0x10, 0x00, 0x00, 0x00, //0x000068ca jbe LBB28_191 + 0x48, 0x89, 0xc7, //0x000068d0 movq %rax, %rdi + 0xe9, 0x12, 0x0b, 0x00, 0x00, //0x000068d3 jmp LBB28_213 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000068d8 .p2align 4, 0x90 + //0x000068e0 LBB28_191 + 0x48, 0x8d, 0x78, 0x01, //0x000068e0 leaq $1(%rax), %rdi + 0x4c, 0x39, 0xc7, //0x000068e4 cmpq %r8, %rdi + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x000068e7 jae LBB28_195 + 0x41, 0x8a, 0x14, 0x39, //0x000068ed movb (%r9,%rdi), %dl + 0x80, 0xfa, 0x0d, //0x000068f1 cmpb $13, %dl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x000068f4 je LBB28_195 + 0x80, 0xfa, 0x20, //0x000068fa cmpb $32, %dl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x000068fd je LBB28_195 + 0x80, 0xc2, 0xf7, //0x00006903 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x00006906 cmpb $1, %dl + 0x0f, 0x87, 0xdb, 0x0a, 0x00, 0x00, //0x00006909 ja LBB28_213 + 0x90, //0x0000690f .p2align 4, 0x90 + //0x00006910 LBB28_195 + 0x48, 0x8d, 0x78, 0x02, //0x00006910 leaq $2(%rax), %rdi 0x4c, 0x39, 0xc7, //0x00006914 cmpq %r8, %rdi - 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00006917 jae LBB32_11 - 0x8a, 0x04, 0x3a, //0x0000691d movb (%rdx,%rdi), %al - 0x3c, 0x0d, //0x00006920 cmpb $13, %al - 0x0f, 0x84, 0x18, 0x00, 0x00, 0x00, //0x00006922 je LBB32_11 - 0x3c, 0x20, //0x00006928 cmpb $32, %al - 0x0f, 0x84, 0x10, 0x00, 0x00, 0x00, //0x0000692a je LBB32_11 - 0x04, 0xf7, //0x00006930 addb $-9, %al - 0x3c, 0x01, //0x00006932 cmpb $1, %al - 0x0f, 0x87, 0xe5, 0x00, 0x00, 0x00, //0x00006934 ja LBB32_29 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000693a .p2align 4, 0x90 - //0x00006940 LBB32_11 - 0x48, 0x8d, 0x7e, 0x02, //0x00006940 leaq $2(%rsi), %rdi + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00006917 jae LBB28_199 + 0x41, 0x8a, 0x14, 0x39, //0x0000691d movb (%r9,%rdi), %dl + 0x80, 0xfa, 0x0d, //0x00006921 cmpb $13, %dl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00006924 je LBB28_199 + 0x80, 0xfa, 0x20, //0x0000692a cmpb $32, %dl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x0000692d je LBB28_199 + 0x80, 0xc2, 0xf7, //0x00006933 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x00006936 cmpb $1, %dl + 0x0f, 0x87, 0xab, 0x0a, 0x00, 0x00, //0x00006939 ja LBB28_213 + 0x90, //0x0000693f .p2align 4, 0x90 + //0x00006940 LBB28_199 + 0x48, 0x8d, 0x78, 0x03, //0x00006940 leaq $3(%rax), %rdi 0x4c, 0x39, 0xc7, //0x00006944 cmpq %r8, %rdi - 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00006947 jae LBB32_15 - 0x8a, 0x04, 0x3a, //0x0000694d movb (%rdx,%rdi), %al - 0x3c, 0x0d, //0x00006950 cmpb $13, %al - 0x0f, 0x84, 0x18, 0x00, 0x00, 0x00, //0x00006952 je LBB32_15 - 0x3c, 0x20, //0x00006958 cmpb $32, %al - 0x0f, 0x84, 0x10, 0x00, 0x00, 0x00, //0x0000695a je LBB32_15 - 0x04, 0xf7, //0x00006960 addb $-9, %al - 0x3c, 0x01, //0x00006962 cmpb $1, %al - 0x0f, 0x87, 0xb5, 0x00, 0x00, 0x00, //0x00006964 ja LBB32_29 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000696a .p2align 4, 0x90 - //0x00006970 LBB32_15 - 0x48, 0x8d, 0x7e, 0x03, //0x00006970 leaq $3(%rsi), %rdi - 0x4c, 0x39, 0xc7, //0x00006974 cmpq %r8, %rdi - 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00006977 jae LBB32_19 - 0x8a, 0x04, 0x3a, //0x0000697d movb (%rdx,%rdi), %al - 0x3c, 0x0d, //0x00006980 cmpb $13, %al - 0x0f, 0x84, 0x18, 0x00, 0x00, 0x00, //0x00006982 je LBB32_19 - 0x3c, 0x20, //0x00006988 cmpb $32, %al - 0x0f, 0x84, 0x10, 0x00, 0x00, 0x00, //0x0000698a je LBB32_19 - 0x04, 0xf7, //0x00006990 addb $-9, %al - 0x3c, 0x01, //0x00006992 cmpb $1, %al - 0x0f, 0x87, 0x85, 0x00, 0x00, 0x00, //0x00006994 ja LBB32_29 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000699a .p2align 4, 0x90 - //0x000069a0 LBB32_19 - 0x48, 0x8d, 0x46, 0x04, //0x000069a0 leaq $4(%rsi), %rax - 0x49, 0x39, 0xc0, //0x000069a4 cmpq %rax, %r8 - 0x0f, 0x86, 0x43, 0x00, 0x00, 0x00, //0x000069a7 jbe LBB32_25 - 0x49, 0x39, 0xc0, //0x000069ad cmpq %rax, %r8 - 0x0f, 0x84, 0x51, 0x00, 0x00, 0x00, //0x000069b0 je LBB32_26 - 0x4a, 0x8d, 0x3c, 0x02, //0x000069b6 leaq (%rdx,%r8), %rdi - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000069ba .p2align 4, 0x90 - //0x000069c0 LBB32_22 - 0x0f, 0xbe, 0x1c, 0x02, //0x000069c0 movsbl (%rdx,%rax), %ebx - 0x83, 0xfb, 0x20, //0x000069c4 cmpl $32, %ebx - 0x0f, 0x87, 0x46, 0x00, 0x00, 0x00, //0x000069c7 ja LBB32_28 - 0x49, 0x0f, 0xa3, 0xda, //0x000069cd btq %rbx, %r10 - 0x0f, 0x83, 0x3c, 0x00, 0x00, 0x00, //0x000069d1 jae LBB32_28 - 0x48, 0x83, 0xc0, 0x01, //0x000069d7 addq $1, %rax - 0x49, 0x39, 0xc0, //0x000069db cmpq %rax, %r8 - 0x0f, 0x85, 0xdc, 0xff, 0xff, 0xff, //0x000069de jne LBB32_22 - 0xe9, 0x24, 0x00, 0x00, 0x00, //0x000069e4 jmp LBB32_27 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000069e9 .p2align 4, 0x90 - //0x000069f0 LBB32_25 - 0x49, 0x89, 0x45, 0x00, //0x000069f0 movq %rax, (%r13) - 0x31, 0xff, //0x000069f4 xorl %edi, %edi - 0x49, 0x8b, 0x31, //0x000069f6 movq (%r9), %rsi - 0x48, 0x85, 0xf6, //0x000069f9 testq %rsi, %rsi - 0x0f, 0x85, 0x4e, 0x00, 0x00, 0x00, //0x000069fc jne LBB32_31 - 0xe9, 0x2e, 0x0b, 0x00, 0x00, //0x00006a02 jmp LBB32_228 - //0x00006a07 LBB32_26 - 0x48, 0x01, 0xd0, //0x00006a07 addq %rdx, %rax - 0x48, 0x89, 0xc7, //0x00006a0a movq %rax, %rdi - //0x00006a0d LBB32_27 - 0x48, 0x29, 0xd7, //0x00006a0d subq %rdx, %rdi - 0x48, 0x89, 0xf8, //0x00006a10 movq %rdi, %rax - //0x00006a13 LBB32_28 - 0x48, 0x89, 0xc7, //0x00006a13 movq %rax, %rdi - 0x4c, 0x39, 0xc0, //0x00006a16 cmpq %r8, %rax - 0x0f, 0x83, 0x1d, 0x00, 0x00, 0x00, //0x00006a19 jae LBB32_30 - //0x00006a1f LBB32_29 - 0x48, 0x8d, 0x47, 0x01, //0x00006a1f leaq $1(%rdi), %rax - 0x49, 0x89, 0x45, 0x00, //0x00006a23 movq %rax, (%r13) - 0x40, 0x8a, 0x3c, 0x3a, //0x00006a27 movb (%rdx,%rdi), %dil - 0x49, 0x8b, 0x31, //0x00006a2b movq (%r9), %rsi - 0x48, 0x85, 0xf6, //0x00006a2e testq %rsi, %rsi - 0x0f, 0x85, 0x19, 0x00, 0x00, 0x00, //0x00006a31 jne LBB32_31 - 0xe9, 0xf9, 0x0a, 0x00, 0x00, //0x00006a37 jmp LBB32_228 - //0x00006a3c LBB32_30 - 0x31, 0xff, //0x00006a3c xorl %edi, %edi - 0x48, 0x89, 0xf0, //0x00006a3e movq %rsi, %rax - 0x49, 0x8b, 0x31, //0x00006a41 movq (%r9), %rsi - 0x48, 0x85, 0xf6, //0x00006a44 testq %rsi, %rsi - 0x0f, 0x84, 0xe8, 0x0a, 0x00, 0x00, //0x00006a47 je LBB32_228 - 0x90, 0x90, 0x90, //0x00006a4d .p2align 4, 0x90 - //0x00006a50 LBB32_31 - 0x8a, 0x5e, 0x17, //0x00006a50 movb $23(%rsi), %bl - 0x80, 0xe3, 0x1f, //0x00006a53 andb $31, %bl - 0x80, 0xfb, 0x02, //0x00006a56 cmpb $2, %bl - 0x4c, 0x89, 0x4d, 0xb8, //0x00006a59 movq %r9, $-72(%rbp) - 0x0f, 0x84, 0x0d, 0x07, 0x00, 0x00, //0x00006a5d je LBB32_161 - 0x80, 0xfb, 0x18, //0x00006a63 cmpb $24, %bl - 0x0f, 0x85, 0xc9, 0x0a, 0x00, 0x00, //0x00006a66 jne LBB32_228 - 0x40, 0x80, 0xff, 0x7b, //0x00006a6c cmpb $123, %dil - 0x4c, 0x89, 0x6d, 0xd0, //0x00006a70 movq %r13, $-48(%rbp) - 0x0f, 0x85, 0xd2, 0x0a, 0x00, 0x00, //0x00006a74 jne LBB32_234 - //0x00006a7a LBB32_34 - 0x49, 0x8b, 0x4c, 0x24, 0x08, //0x00006a7a movq $8(%r12), %rcx - 0x48, 0x39, 0xc8, //0x00006a7f cmpq %rcx, %rax - 0x0f, 0x83, 0x38, 0x00, 0x00, 0x00, //0x00006a82 jae LBB32_39 - 0x8a, 0x1c, 0x02, //0x00006a88 movb (%rdx,%rax), %bl - 0x80, 0xfb, 0x0d, //0x00006a8b cmpb $13, %bl - 0x0f, 0x84, 0x2c, 0x00, 0x00, 0x00, //0x00006a8e je LBB32_39 - 0x80, 0xfb, 0x20, //0x00006a94 cmpb $32, %bl - 0x0f, 0x84, 0x23, 0x00, 0x00, 0x00, //0x00006a97 je LBB32_39 - 0x80, 0xc3, 0xf7, //0x00006a9d addb $-9, %bl - 0x80, 0xfb, 0x01, //0x00006aa0 cmpb $1, %bl - 0x0f, 0x86, 0x17, 0x00, 0x00, 0x00, //0x00006aa3 jbe LBB32_39 - 0x49, 0x89, 0xc7, //0x00006aa9 movq %rax, %r15 - 0xe9, 0x04, 0x01, 0x00, 0x00, //0x00006aac jmp LBB32_60 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00006ab1 .p2align 4, 0x90 - //0x00006ac0 LBB32_39 - 0x4c, 0x8d, 0x78, 0x01, //0x00006ac0 leaq $1(%rax), %r15 - 0x49, 0x39, 0xcf, //0x00006ac4 cmpq %rcx, %r15 - 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00006ac7 jae LBB32_43 - 0x42, 0x8a, 0x1c, 0x3a, //0x00006acd movb (%rdx,%r15), %bl - 0x80, 0xfb, 0x0d, //0x00006ad1 cmpb $13, %bl - 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00006ad4 je LBB32_43 - 0x80, 0xfb, 0x20, //0x00006ada cmpb $32, %bl - 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x00006add je LBB32_43 - 0x80, 0xc3, 0xf7, //0x00006ae3 addb $-9, %bl - 0x80, 0xfb, 0x01, //0x00006ae6 cmpb $1, %bl - 0x0f, 0x87, 0xc6, 0x00, 0x00, 0x00, //0x00006ae9 ja LBB32_60 - 0x90, //0x00006aef .p2align 4, 0x90 - //0x00006af0 LBB32_43 - 0x4c, 0x8d, 0x78, 0x02, //0x00006af0 leaq $2(%rax), %r15 - 0x49, 0x39, 0xcf, //0x00006af4 cmpq %rcx, %r15 - 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00006af7 jae LBB32_47 - 0x42, 0x8a, 0x1c, 0x3a, //0x00006afd movb (%rdx,%r15), %bl - 0x80, 0xfb, 0x0d, //0x00006b01 cmpb $13, %bl - 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00006b04 je LBB32_47 - 0x80, 0xfb, 0x20, //0x00006b0a cmpb $32, %bl - 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x00006b0d je LBB32_47 - 0x80, 0xc3, 0xf7, //0x00006b13 addb $-9, %bl - 0x80, 0xfb, 0x01, //0x00006b16 cmpb $1, %bl - 0x0f, 0x87, 0x96, 0x00, 0x00, 0x00, //0x00006b19 ja LBB32_60 - 0x90, //0x00006b1f .p2align 4, 0x90 - //0x00006b20 LBB32_47 - 0x4c, 0x8d, 0x78, 0x03, //0x00006b20 leaq $3(%rax), %r15 - 0x49, 0x39, 0xcf, //0x00006b24 cmpq %rcx, %r15 - 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00006b27 jae LBB32_51 - 0x42, 0x8a, 0x1c, 0x3a, //0x00006b2d movb (%rdx,%r15), %bl - 0x80, 0xfb, 0x0d, //0x00006b31 cmpb $13, %bl - 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00006b34 je LBB32_51 - 0x80, 0xfb, 0x20, //0x00006b3a cmpb $32, %bl - 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x00006b3d je LBB32_51 - 0x80, 0xc3, 0xf7, //0x00006b43 addb $-9, %bl - 0x80, 0xfb, 0x01, //0x00006b46 cmpb $1, %bl - 0x0f, 0x87, 0x66, 0x00, 0x00, 0x00, //0x00006b49 ja LBB32_60 - 0x90, //0x00006b4f .p2align 4, 0x90 - //0x00006b50 LBB32_51 - 0x4c, 0x8d, 0x78, 0x04, //0x00006b50 leaq $4(%rax), %r15 - 0x4c, 0x39, 0xf9, //0x00006b54 cmpq %r15, %rcx - 0x0f, 0x86, 0xec, 0x09, 0x00, 0x00, //0x00006b57 jbe LBB32_231 - 0x4c, 0x39, 0xf9, //0x00006b5d cmpq %r15, %rcx - 0x0f, 0x84, 0x3a, 0x00, 0x00, 0x00, //0x00006b60 je LBB32_57 - 0x48, 0x8d, 0x34, 0x0a, //0x00006b66 leaq (%rdx,%rcx), %rsi - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00006b6a .p2align 4, 0x90 - //0x00006b70 LBB32_54 - 0x42, 0x0f, 0xbe, 0x3c, 0x3a, //0x00006b70 movsbl (%rdx,%r15), %edi - 0x83, 0xff, 0x20, //0x00006b75 cmpl $32, %edi - 0x0f, 0x87, 0x2e, 0x00, 0x00, 0x00, //0x00006b78 ja LBB32_59 - 0x49, 0x0f, 0xa3, 0xfa, //0x00006b7e btq %rdi, %r10 - 0x0f, 0x83, 0x24, 0x00, 0x00, 0x00, //0x00006b82 jae LBB32_59 - 0x49, 0x83, 0xc7, 0x01, //0x00006b88 addq $1, %r15 - 0x4c, 0x39, 0xf9, //0x00006b8c cmpq %r15, %rcx - 0x0f, 0x85, 0xdb, 0xff, 0xff, 0xff, //0x00006b8f jne LBB32_54 - 0xe9, 0x0c, 0x00, 0x00, 0x00, //0x00006b95 jmp LBB32_58 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00006b9a .p2align 4, 0x90 - //0x00006ba0 LBB32_57 - 0x49, 0x01, 0xd7, //0x00006ba0 addq %rdx, %r15 - 0x4c, 0x89, 0xfe, //0x00006ba3 movq %r15, %rsi - //0x00006ba6 LBB32_58 - 0x48, 0x29, 0xd6, //0x00006ba6 subq %rdx, %rsi - 0x49, 0x89, 0xf7, //0x00006ba9 movq %rsi, %r15 - //0x00006bac LBB32_59 - 0x49, 0x39, 0xcf, //0x00006bac cmpq %rcx, %r15 - 0x0f, 0x83, 0x97, 0x09, 0x00, 0x00, //0x00006baf jae LBB32_234 - //0x00006bb5 LBB32_60 - 0x4c, 0x89, 0xe8, //0x00006bb5 movq %r13, %rax - 0x4d, 0x8d, 0x6f, 0x01, //0x00006bb8 leaq $1(%r15), %r13 - 0x4c, 0x89, 0x28, //0x00006bbc movq %r13, (%rax) - 0x42, 0x8a, 0x0c, 0x3a, //0x00006bbf movb (%rdx,%r15), %cl - 0x80, 0xf9, 0x22, //0x00006bc3 cmpb $34, %cl - 0x0f, 0x85, 0x2f, 0x09, 0x00, 0x00, //0x00006bc6 jne LBB32_224 - 0x48, 0x8b, 0x45, 0xb8, //0x00006bcc movq $-72(%rbp), %rax - 0x48, 0x8b, 0x40, 0x08, //0x00006bd0 movq $8(%rax), %rax - 0x48, 0x8b, 0x18, //0x00006bd4 movq (%rax), %rbx - 0x4c, 0x8b, 0x70, 0x08, //0x00006bd7 movq $8(%rax), %r14 - 0x48, 0xc7, 0x45, 0xb0, 0xff, 0xff, 0xff, 0xff, //0x00006bdb movq $-1, $-80(%rbp) - 0x4c, 0x89, 0xe7, //0x00006be3 movq %r12, %rdi - 0x4c, 0x89, 0xee, //0x00006be6 movq %r13, %rsi - 0x48, 0x8d, 0x55, 0xb0, //0x00006be9 leaq $-80(%rbp), %rdx - 0xe8, 0xbe, 0x27, 0x00, 0x00, //0x00006bed callq _advance_string_default - 0x48, 0x85, 0xc0, //0x00006bf2 testq %rax, %rax - 0x0f, 0x88, 0x72, 0x09, 0x00, 0x00, //0x00006bf5 js LBB32_236 - 0x48, 0x8b, 0x4d, 0xd0, //0x00006bfb movq $-48(%rbp), %rcx - 0x48, 0x89, 0x01, //0x00006bff movq %rax, (%rcx) - 0x48, 0x8b, 0x4d, 0xb0, //0x00006c02 movq $-80(%rbp), %rcx - 0x48, 0x83, 0xf9, 0xff, //0x00006c06 cmpq $-1, %rcx - 0x0f, 0x84, 0x09, 0x00, 0x00, 0x00, //0x00006c0a je LBB32_64 - 0x48, 0x39, 0xc1, //0x00006c10 cmpq %rax, %rcx - 0x0f, 0x8e, 0x58, 0x01, 0x00, 0x00, //0x00006c13 jle LBB32_136 - //0x00006c19 LBB32_64 - 0x48, 0x89, 0xc2, //0x00006c19 movq %rax, %rdx - 0x4c, 0x29, 0xfa, //0x00006c1c subq %r15, %rdx - 0x48, 0x83, 0xc2, 0xfe, //0x00006c1f addq $-2, %rdx - 0x41, 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00006c23 movl $1, %r8d - 0x48, 0x89, 0xd1, //0x00006c29 movq %rdx, %rcx - 0x4c, 0x09, 0xf1, //0x00006c2c orq %r14, %rcx - 0x0f, 0x85, 0x1b, 0x00, 0x00, 0x00, //0x00006c2f jne LBB32_66 - 0x49, 0xba, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00006c35 movabsq $4294977024, %r10 - 0xe9, 0x5f, 0x00, 0x00, 0x00, //0x00006c3f jmp LBB32_76 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00006c44 .p2align 4, 0x90 - //0x00006c50 LBB32_66 - 0x4c, 0x39, 0xf2, //0x00006c50 cmpq %r14, %rdx - 0x49, 0xba, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00006c53 movabsq $4294977024, %r10 - 0x0f, 0x85, 0x3d, 0x00, 0x00, 0x00, //0x00006c5d jne LBB32_71 - 0x49, 0x8b, 0x3c, 0x24, //0x00006c63 movq (%r12), %rdi - 0x49, 0x01, 0xfd, //0x00006c67 addq %rdi, %r13 - 0x31, 0xf6, //0x00006c6a xorl %esi, %esi - 0x4c, 0x89, 0xf2, //0x00006c6c movq %r14, %rdx - 0x90, //0x00006c6f .p2align 4, 0x90 - //0x00006c70 LBB32_68 - 0x48, 0x83, 0xfa, 0x10, //0x00006c70 cmpq $16, %rdx - 0x0f, 0x82, 0x68, 0x00, 0x00, 0x00, //0x00006c74 jb LBB32_72 - 0xf3, 0x41, 0x0f, 0x6f, 0x44, 0x35, 0x00, //0x00006c7a movdqu (%r13,%rsi), %xmm0 - 0xf3, 0x0f, 0x6f, 0x0c, 0x33, //0x00006c81 movdqu (%rbx,%rsi), %xmm1 - 0x66, 0x0f, 0x74, 0xc8, //0x00006c86 pcmpeqb %xmm0, %xmm1 - 0x66, 0x0f, 0xd7, 0xc9, //0x00006c8a pmovmskb %xmm1, %ecx - 0x48, 0x83, 0xc2, 0xf0, //0x00006c8e addq $-16, %rdx - 0x48, 0x83, 0xc6, 0x10, //0x00006c92 addq $16, %rsi - 0x66, 0x83, 0xf9, 0xff, //0x00006c96 cmpw $-1, %cx - 0x0f, 0x84, 0xd0, 0xff, 0xff, 0xff, //0x00006c9a je LBB32_68 - //0x00006ca0 LBB32_71 - 0x45, 0x31, 0xc0, //0x00006ca0 xorl %r8d, %r8d - //0x00006ca3 LBB32_76 - 0x4c, 0x8b, 0x6d, 0xd0, //0x00006ca3 movq $-48(%rbp), %r13 - 0x49, 0x8b, 0x14, 0x24, //0x00006ca7 movq (%r12), %rdx - 0x49, 0x8b, 0x74, 0x24, 0x08, //0x00006cab movq $8(%r12), %rsi - 0x48, 0x39, 0xf0, //0x00006cb0 cmpq %rsi, %rax - 0x0f, 0x83, 0x27, 0x02, 0x00, 0x00, //0x00006cb3 jae LBB32_82 - //0x00006cb9 LBB32_78 - 0x8a, 0x1c, 0x02, //0x00006cb9 movb (%rdx,%rax), %bl - 0x80, 0xfb, 0x0d, //0x00006cbc cmpb $13, %bl - 0x0f, 0x84, 0x1b, 0x02, 0x00, 0x00, //0x00006cbf je LBB32_82 - 0x80, 0xfb, 0x20, //0x00006cc5 cmpb $32, %bl - 0x0f, 0x84, 0x12, 0x02, 0x00, 0x00, //0x00006cc8 je LBB32_82 - 0x80, 0xc3, 0xf7, //0x00006cce addb $-9, %bl - 0x80, 0xfb, 0x01, //0x00006cd1 cmpb $1, %bl - 0x0f, 0x86, 0x06, 0x02, 0x00, 0x00, //0x00006cd4 jbe LBB32_82 - 0x48, 0x89, 0xc7, //0x00006cda movq %rax, %rdi - 0xe9, 0xf3, 0x02, 0x00, 0x00, //0x00006cdd jmp LBB32_107 - //0x00006ce2 LBB32_72 - 0x44, 0x01, 0xff, //0x00006ce2 addl %r15d, %edi - 0x8d, 0x0c, 0x3e, //0x00006ce5 leal (%rsi,%rdi), %ecx - 0x83, 0xc1, 0x01, //0x00006ce8 addl $1, %ecx - 0x81, 0xe1, 0xff, 0x0f, 0x00, 0x00, //0x00006ceb andl $4095, %ecx - 0x81, 0xf9, 0xf0, 0x0f, 0x00, 0x00, //0x00006cf1 cmpl $4080, %ecx - 0x0f, 0x87, 0x57, 0x00, 0x00, 0x00, //0x00006cf7 ja LBB32_101 - 0x8d, 0x0c, 0x33, //0x00006cfd leal (%rbx,%rsi), %ecx - 0x81, 0xe1, 0xff, 0x0f, 0x00, 0x00, //0x00006d00 andl $4095, %ecx - 0x81, 0xf9, 0xf1, 0x0f, 0x00, 0x00, //0x00006d06 cmpl $4081, %ecx - 0x0f, 0x83, 0x42, 0x00, 0x00, 0x00, //0x00006d0c jae LBB32_101 - 0xf3, 0x41, 0x0f, 0x6f, 0x44, 0x35, 0x00, //0x00006d12 movdqu (%r13,%rsi), %xmm0 - 0xf3, 0x0f, 0x6f, 0x0c, 0x33, //0x00006d19 movdqu (%rbx,%rsi), %xmm1 - 0x66, 0x0f, 0x74, 0xc8, //0x00006d1e pcmpeqb %xmm0, %xmm1 - 0x66, 0x0f, 0xd7, 0xf1, //0x00006d22 pmovmskb %xmm1, %esi - 0x66, 0x83, 0xfe, 0xff, //0x00006d26 cmpw $-1, %si - 0x0f, 0x84, 0x73, 0xff, 0xff, 0xff, //0x00006d2a je LBB32_76 - 0xf7, 0xd6, //0x00006d30 notl %esi - 0x66, 0x0f, 0xbc, 0xce, //0x00006d32 bsfw %si, %cx - 0x0f, 0xb7, 0xc9, //0x00006d36 movzwl %cx, %ecx - 0x45, 0x31, 0xc0, //0x00006d39 xorl %r8d, %r8d - 0x48, 0x39, 0xca, //0x00006d3c cmpq %rcx, %rdx - 0x41, 0x0f, 0x96, 0xc0, //0x00006d3f setbe %r8b - 0xe9, 0x5b, 0xff, 0xff, 0xff, //0x00006d43 jmp LBB32_76 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00006d48 .p2align 4, 0x90 - //0x00006d50 LBB32_100 - 0x48, 0x83, 0xc6, 0x01, //0x00006d50 addq $1, %rsi - //0x00006d54 LBB32_101 - 0x49, 0x39, 0xf6, //0x00006d54 cmpq %rsi, %r14 - 0x0f, 0x84, 0x46, 0xff, 0xff, 0xff, //0x00006d57 je LBB32_76 - 0x41, 0x0f, 0xb6, 0x4c, 0x35, 0x00, //0x00006d5d movzbl (%r13,%rsi), %ecx - 0x3a, 0x0c, 0x33, //0x00006d63 cmpb (%rbx,%rsi), %cl - 0x0f, 0x84, 0xe4, 0xff, 0xff, 0xff, //0x00006d66 je LBB32_100 - 0xe9, 0x2f, 0xff, 0xff, 0xff, //0x00006d6c jmp LBB32_71 - //0x00006d71 LBB32_136 - 0x48, 0xc7, 0x45, 0xc0, 0x00, 0x00, 0x00, 0x00, //0x00006d71 movq $0, $-64(%rbp) - 0x49, 0x8b, 0x0c, 0x24, //0x00006d79 movq (%r12), %rcx - 0x4a, 0x8d, 0x34, 0x29, //0x00006d7d leaq (%rcx,%r13), %rsi - 0x48, 0x89, 0x75, 0xc8, //0x00006d81 movq %rsi, $-56(%rbp) - 0x48, 0x01, 0xc1, //0x00006d85 addq %rax, %rcx - 0x48, 0x83, 0xc1, 0xff, //0x00006d88 addq $-1, %rcx - 0x48, 0x83, 0xc0, 0xff, //0x00006d8c addq $-1, %rax - 0x4e, 0x8d, 0x3c, 0x33, //0x00006d90 leaq (%rbx,%r14), %r15 - 0x49, 0x39, 0xc5, //0x00006d94 cmpq %rax, %r13 - 0x0f, 0x8d, 0xdf, 0x00, 0x00, 0x00, //0x00006d97 jge LBB32_153 - 0x4d, 0x85, 0xf6, //0x00006d9d testq %r14, %r14 - 0x4c, 0x8b, 0x6d, 0xd0, //0x00006da0 movq $-48(%rbp), %r13 - 0x48, 0x8d, 0x55, 0xc0, //0x00006da4 leaq $-64(%rbp), %rdx - 0x0f, 0x8e, 0xd2, 0x00, 0x00, 0x00, //0x00006da8 jle LBB32_154 - 0x49, 0xba, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00006dae movabsq $4294977024, %r10 - 0x49, 0x89, 0xce, //0x00006db8 movq %rcx, %r14 - //0x00006dbb LBB32_139 - 0x8a, 0x06, //0x00006dbb movb (%rsi), %al - 0x3c, 0x5c, //0x00006dbd cmpb $92, %al - 0x0f, 0x85, 0x6d, 0x00, 0x00, 0x00, //0x00006dbf jne LBB32_146 - 0x48, 0x8d, 0x7d, 0xc8, //0x00006dc5 leaq $-56(%rbp), %rdi - 0x4c, 0x89, 0xf6, //0x00006dc9 movq %r14, %rsi - 0xe8, 0x8f, 0x29, 0x00, 0x00, //0x00006dcc callq _unescape - 0x49, 0x89, 0xc0, //0x00006dd1 movq %rax, %r8 - 0x48, 0x85, 0xc0, //0x00006dd4 testq %rax, %rax - 0x0f, 0x88, 0xcd, 0x00, 0x00, 0x00, //0x00006dd7 js LBB32_158 - 0x49, 0x8d, 0x34, 0x28, //0x00006ddd leaq (%r8,%rbp), %rsi - 0x48, 0x83, 0xc6, 0xc0, //0x00006de1 addq $-64, %rsi - 0x48, 0x8d, 0x55, 0xc0, //0x00006de5 leaq $-64(%rbp), %rdx - 0x4c, 0x39, 0xfb, //0x00006de9 cmpq %r15, %rbx - 0x0f, 0x83, 0x59, 0x00, 0x00, 0x00, //0x00006dec jae LBB32_148 - 0x48, 0x39, 0xd6, //0x00006df2 cmpq %rdx, %rsi - 0x49, 0xba, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00006df5 movabsq $4294977024, %r10 - 0x48, 0x89, 0xd1, //0x00006dff movq %rdx, %rcx - 0x0f, 0x86, 0x50, 0x00, 0x00, 0x00, //0x00006e02 jbe LBB32_149 - //0x00006e08 LBB32_143 - 0x0f, 0xb6, 0x03, //0x00006e08 movzbl (%rbx), %eax - 0x3a, 0x01, //0x00006e0b cmpb (%rcx), %al - 0x0f, 0x85, 0x45, 0x00, 0x00, 0x00, //0x00006e0d jne LBB32_149 - 0x48, 0x83, 0xc3, 0x01, //0x00006e13 addq $1, %rbx - 0x48, 0x83, 0xc1, 0x01, //0x00006e17 addq $1, %rcx - 0x4c, 0x39, 0xfb, //0x00006e1b cmpq %r15, %rbx - 0x0f, 0x83, 0x34, 0x00, 0x00, 0x00, //0x00006e1e jae LBB32_149 - 0x48, 0x39, 0xf1, //0x00006e24 cmpq %rsi, %rcx - 0x0f, 0x82, 0xdb, 0xff, 0xff, 0xff, //0x00006e27 jb LBB32_143 - 0xe9, 0x26, 0x00, 0x00, 0x00, //0x00006e2d jmp LBB32_149 - //0x00006e32 LBB32_146 - 0x3a, 0x03, //0x00006e32 cmpb (%rbx), %al - 0x0f, 0x85, 0x68, 0x00, 0x00, 0x00, //0x00006e34 jne LBB32_160 - 0x48, 0x83, 0xc6, 0x01, //0x00006e3a addq $1, %rsi - 0x48, 0x89, 0x75, 0xc8, //0x00006e3e movq %rsi, $-56(%rbp) - 0x48, 0x83, 0xc3, 0x01, //0x00006e42 addq $1, %rbx - 0xe9, 0x1a, 0x00, 0x00, 0x00, //0x00006e46 jmp LBB32_151 - //0x00006e4b LBB32_148 - 0x48, 0x89, 0xd1, //0x00006e4b movq %rdx, %rcx - 0x49, 0xba, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00006e4e movabsq $4294977024, %r10 - //0x00006e58 LBB32_149 - 0x48, 0x39, 0xf1, //0x00006e58 cmpq %rsi, %rcx - 0x0f, 0x85, 0x41, 0x00, 0x00, 0x00, //0x00006e5b jne LBB32_160 - 0x48, 0x8b, 0x75, 0xc8, //0x00006e61 movq $-56(%rbp), %rsi - //0x00006e65 LBB32_151 - 0x4c, 0x39, 0xf6, //0x00006e65 cmpq %r14, %rsi - 0x0f, 0x83, 0x1f, 0x00, 0x00, 0x00, //0x00006e68 jae LBB32_155 - 0x4c, 0x39, 0xfb, //0x00006e6e cmpq %r15, %rbx - 0x0f, 0x82, 0x44, 0xff, 0xff, 0xff, //0x00006e71 jb LBB32_139 - 0xe9, 0x11, 0x00, 0x00, 0x00, //0x00006e77 jmp LBB32_155 - //0x00006e7c LBB32_153 - 0x4c, 0x8b, 0x6d, 0xd0, //0x00006e7c movq $-48(%rbp), %r13 - //0x00006e80 LBB32_154 - 0x49, 0xba, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00006e80 movabsq $4294977024, %r10 - 0x49, 0x89, 0xce, //0x00006e8a movq %rcx, %r14 - //0x00006e8d LBB32_155 - 0x4c, 0x31, 0xf6, //0x00006e8d xorq %r14, %rsi - 0x4c, 0x31, 0xfb, //0x00006e90 xorq %r15, %rbx - 0x45, 0x31, 0xc0, //0x00006e93 xorl %r8d, %r8d - 0x48, 0x09, 0xf3, //0x00006e96 orq %rsi, %rbx - 0x41, 0x0f, 0x94, 0xc0, //0x00006e99 sete %r8b - 0xe9, 0x1e, 0x00, 0x00, 0x00, //0x00006e9d jmp LBB32_156 - //0x00006ea2 LBB32_160 - 0x45, 0x31, 0xc0, //0x00006ea2 xorl %r8d, %r8d - 0xe9, 0x16, 0x00, 0x00, 0x00, //0x00006ea5 jmp LBB32_156 - //0x00006eaa LBB32_158 - 0x48, 0x8b, 0x45, 0xc8, //0x00006eaa movq $-56(%rbp), %rax - 0x49, 0x2b, 0x04, 0x24, //0x00006eae subq (%r12), %rax - 0x49, 0x89, 0x45, 0x00, //0x00006eb2 movq %rax, (%r13) - 0x49, 0xba, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00006eb6 movabsq $4294977024, %r10 - //0x00006ec0 LBB32_156 - 0x4d, 0x85, 0xc0, //0x00006ec0 testq %r8, %r8 - 0x0f, 0x88, 0x92, 0x06, 0x00, 0x00, //0x00006ec3 js LBB32_235 - 0x49, 0x8b, 0x45, 0x00, //0x00006ec9 movq (%r13), %rax - 0x49, 0x8b, 0x14, 0x24, //0x00006ecd movq (%r12), %rdx - 0x49, 0x8b, 0x74, 0x24, 0x08, //0x00006ed1 movq $8(%r12), %rsi - 0x48, 0x39, 0xf0, //0x00006ed6 cmpq %rsi, %rax - 0x0f, 0x82, 0xda, 0xfd, 0xff, 0xff, //0x00006ed9 jb LBB32_78 - 0x90, //0x00006edf .p2align 4, 0x90 - //0x00006ee0 LBB32_82 - 0x48, 0x8d, 0x78, 0x01, //0x00006ee0 leaq $1(%rax), %rdi - 0x48, 0x39, 0xf7, //0x00006ee4 cmpq %rsi, %rdi - 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00006ee7 jae LBB32_86 - 0x8a, 0x1c, 0x3a, //0x00006eed movb (%rdx,%rdi), %bl - 0x80, 0xfb, 0x0d, //0x00006ef0 cmpb $13, %bl - 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x00006ef3 je LBB32_86 - 0x80, 0xfb, 0x20, //0x00006ef9 cmpb $32, %bl - 0x0f, 0x84, 0x0e, 0x00, 0x00, 0x00, //0x00006efc je LBB32_86 - 0x80, 0xc3, 0xf7, //0x00006f02 addb $-9, %bl - 0x80, 0xfb, 0x01, //0x00006f05 cmpb $1, %bl - 0x0f, 0x87, 0xc7, 0x00, 0x00, 0x00, //0x00006f08 ja LBB32_107 - 0x90, 0x90, //0x00006f0e .p2align 4, 0x90 - //0x00006f10 LBB32_86 - 0x48, 0x8d, 0x78, 0x02, //0x00006f10 leaq $2(%rax), %rdi - 0x48, 0x39, 0xf7, //0x00006f14 cmpq %rsi, %rdi - 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00006f17 jae LBB32_90 - 0x8a, 0x1c, 0x3a, //0x00006f1d movb (%rdx,%rdi), %bl - 0x80, 0xfb, 0x0d, //0x00006f20 cmpb $13, %bl - 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x00006f23 je LBB32_90 - 0x80, 0xfb, 0x20, //0x00006f29 cmpb $32, %bl - 0x0f, 0x84, 0x0e, 0x00, 0x00, 0x00, //0x00006f2c je LBB32_90 - 0x80, 0xc3, 0xf7, //0x00006f32 addb $-9, %bl - 0x80, 0xfb, 0x01, //0x00006f35 cmpb $1, %bl - 0x0f, 0x87, 0x97, 0x00, 0x00, 0x00, //0x00006f38 ja LBB32_107 - 0x90, 0x90, //0x00006f3e .p2align 4, 0x90 - //0x00006f40 LBB32_90 - 0x48, 0x8d, 0x78, 0x03, //0x00006f40 leaq $3(%rax), %rdi - 0x48, 0x39, 0xf7, //0x00006f44 cmpq %rsi, %rdi - 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00006f47 jae LBB32_94 - 0x8a, 0x1c, 0x3a, //0x00006f4d movb (%rdx,%rdi), %bl - 0x80, 0xfb, 0x0d, //0x00006f50 cmpb $13, %bl - 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x00006f53 je LBB32_94 - 0x80, 0xfb, 0x20, //0x00006f59 cmpb $32, %bl - 0x0f, 0x84, 0x0e, 0x00, 0x00, 0x00, //0x00006f5c je LBB32_94 - 0x80, 0xc3, 0xf7, //0x00006f62 addb $-9, %bl - 0x80, 0xfb, 0x01, //0x00006f65 cmpb $1, %bl - 0x0f, 0x87, 0x67, 0x00, 0x00, 0x00, //0x00006f68 ja LBB32_107 - 0x90, 0x90, //0x00006f6e .p2align 4, 0x90 - //0x00006f70 LBB32_94 - 0x48, 0x8d, 0x78, 0x04, //0x00006f70 leaq $4(%rax), %rdi - 0x48, 0x39, 0xfe, //0x00006f74 cmpq %rdi, %rsi - 0x0f, 0x86, 0x93, 0x05, 0x00, 0x00, //0x00006f77 jbe LBB32_232 - 0x48, 0x39, 0xfe, //0x00006f7d cmpq %rdi, %rsi - 0x0f, 0x84, 0x3a, 0x00, 0x00, 0x00, //0x00006f80 je LBB32_104 - 0x48, 0x8d, 0x1c, 0x32, //0x00006f86 leaq (%rdx,%rsi), %rbx - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00006f8a .p2align 4, 0x90 - //0x00006f90 LBB32_97 - 0x0f, 0xbe, 0x0c, 0x3a, //0x00006f90 movsbl (%rdx,%rdi), %ecx - 0x83, 0xf9, 0x20, //0x00006f94 cmpl $32, %ecx - 0x0f, 0x87, 0x2f, 0x00, 0x00, 0x00, //0x00006f97 ja LBB32_106 - 0x49, 0x0f, 0xa3, 0xca, //0x00006f9d btq %rcx, %r10 - 0x0f, 0x83, 0x25, 0x00, 0x00, 0x00, //0x00006fa1 jae LBB32_106 - 0x48, 0x83, 0xc7, 0x01, //0x00006fa7 addq $1, %rdi - 0x48, 0x39, 0xfe, //0x00006fab cmpq %rdi, %rsi - 0x0f, 0x85, 0xdc, 0xff, 0xff, 0xff, //0x00006fae jne LBB32_97 - 0xe9, 0x0d, 0x00, 0x00, 0x00, //0x00006fb4 jmp LBB32_105 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00006fb9 .p2align 4, 0x90 - //0x00006fc0 LBB32_104 - 0x48, 0x01, 0xd7, //0x00006fc0 addq %rdx, %rdi - 0x48, 0x89, 0xfb, //0x00006fc3 movq %rdi, %rbx - //0x00006fc6 LBB32_105 - 0x48, 0x29, 0xd3, //0x00006fc6 subq %rdx, %rbx - 0x48, 0x89, 0xdf, //0x00006fc9 movq %rbx, %rdi - //0x00006fcc LBB32_106 - 0x48, 0x39, 0xf7, //0x00006fcc cmpq %rsi, %rdi - 0x0f, 0x83, 0x77, 0x05, 0x00, 0x00, //0x00006fcf jae LBB32_234 - //0x00006fd5 LBB32_107 - 0x48, 0x8d, 0x77, 0x01, //0x00006fd5 leaq $1(%rdi), %rsi - 0x49, 0x89, 0x75, 0x00, //0x00006fd9 movq %rsi, (%r13) - 0x80, 0x3c, 0x3a, 0x3a, //0x00006fdd cmpb $58, (%rdx,%rdi) - 0x0f, 0x85, 0x0c, 0x05, 0x00, 0x00, //0x00006fe1 jne LBB32_233 - 0x4d, 0x85, 0xc0, //0x00006fe7 testq %r8, %r8 - 0x0f, 0x85, 0xb9, 0x04, 0x00, 0x00, //0x00006fea jne LBB32_220 - 0x4c, 0x89, 0xe7, //0x00006ff0 movq %r12, %rdi - 0x4c, 0x89, 0xee, //0x00006ff3 movq %r13, %rsi - 0xe8, 0x75, 0xe9, 0xff, 0xff, //0x00006ff6 callq _skip_one_fast - 0x49, 0x8b, 0x14, 0x24, //0x00006ffb movq (%r12), %rdx - 0x49, 0x8b, 0x4c, 0x24, 0x08, //0x00006fff movq $8(%r12), %rcx - 0x49, 0x8b, 0x45, 0x00, //0x00007004 movq (%r13), %rax - 0x48, 0x39, 0xc8, //0x00007008 cmpq %rcx, %rax - 0x0f, 0x83, 0x3f, 0x00, 0x00, 0x00, //0x0000700b jae LBB32_114 - 0x8a, 0x1c, 0x02, //0x00007011 movb (%rdx,%rax), %bl - 0x80, 0xfb, 0x0d, //0x00007014 cmpb $13, %bl - 0x0f, 0x84, 0x33, 0x00, 0x00, 0x00, //0x00007017 je LBB32_114 - 0x80, 0xfb, 0x20, //0x0000701d cmpb $32, %bl - 0x0f, 0x84, 0x2a, 0x00, 0x00, 0x00, //0x00007020 je LBB32_114 - 0x80, 0xc3, 0xf7, //0x00007026 addb $-9, %bl - 0x80, 0xfb, 0x01, //0x00007029 cmpb $1, %bl - 0x0f, 0x86, 0x1e, 0x00, 0x00, 0x00, //0x0000702c jbe LBB32_114 - 0x48, 0x89, 0xc6, //0x00007032 movq %rax, %rsi - 0x49, 0xba, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00007035 movabsq $4294977024, %r10 - 0xe9, 0x11, 0x01, 0x00, 0x00, //0x0000703f jmp LBB32_135 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007044 .p2align 4, 0x90 - //0x00007050 LBB32_114 - 0x48, 0x8d, 0x70, 0x01, //0x00007050 leaq $1(%rax), %rsi - 0x48, 0x39, 0xce, //0x00007054 cmpq %rcx, %rsi - 0x49, 0xba, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00007057 movabsq $4294977024, %r10 - 0x0f, 0x83, 0x29, 0x00, 0x00, 0x00, //0x00007061 jae LBB32_118 - 0x8a, 0x1c, 0x32, //0x00007067 movb (%rdx,%rsi), %bl - 0x80, 0xfb, 0x0d, //0x0000706a cmpb $13, %bl - 0x0f, 0x84, 0x1d, 0x00, 0x00, 0x00, //0x0000706d je LBB32_118 - 0x80, 0xfb, 0x20, //0x00007073 cmpb $32, %bl - 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x00007076 je LBB32_118 - 0x80, 0xc3, 0xf7, //0x0000707c addb $-9, %bl - 0x80, 0xfb, 0x01, //0x0000707f cmpb $1, %bl - 0x0f, 0x87, 0xcd, 0x00, 0x00, 0x00, //0x00007082 ja LBB32_135 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007088 .p2align 4, 0x90 - //0x00007090 LBB32_118 - 0x48, 0x8d, 0x70, 0x02, //0x00007090 leaq $2(%rax), %rsi - 0x48, 0x39, 0xce, //0x00007094 cmpq %rcx, %rsi - 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00007097 jae LBB32_122 - 0x8a, 0x1c, 0x32, //0x0000709d movb (%rdx,%rsi), %bl - 0x80, 0xfb, 0x0d, //0x000070a0 cmpb $13, %bl - 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x000070a3 je LBB32_122 - 0x80, 0xfb, 0x20, //0x000070a9 cmpb $32, %bl - 0x0f, 0x84, 0x0e, 0x00, 0x00, 0x00, //0x000070ac je LBB32_122 - 0x80, 0xc3, 0xf7, //0x000070b2 addb $-9, %bl - 0x80, 0xfb, 0x01, //0x000070b5 cmpb $1, %bl - 0x0f, 0x87, 0x97, 0x00, 0x00, 0x00, //0x000070b8 ja LBB32_135 - 0x90, 0x90, //0x000070be .p2align 4, 0x90 - //0x000070c0 LBB32_122 - 0x48, 0x8d, 0x70, 0x03, //0x000070c0 leaq $3(%rax), %rsi - 0x48, 0x39, 0xce, //0x000070c4 cmpq %rcx, %rsi - 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x000070c7 jae LBB32_126 - 0x8a, 0x1c, 0x32, //0x000070cd movb (%rdx,%rsi), %bl - 0x80, 0xfb, 0x0d, //0x000070d0 cmpb $13, %bl - 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x000070d3 je LBB32_126 - 0x80, 0xfb, 0x20, //0x000070d9 cmpb $32, %bl - 0x0f, 0x84, 0x0e, 0x00, 0x00, 0x00, //0x000070dc je LBB32_126 - 0x80, 0xc3, 0xf7, //0x000070e2 addb $-9, %bl - 0x80, 0xfb, 0x01, //0x000070e5 cmpb $1, %bl - 0x0f, 0x87, 0x67, 0x00, 0x00, 0x00, //0x000070e8 ja LBB32_135 - 0x90, 0x90, //0x000070ee .p2align 4, 0x90 - //0x000070f0 LBB32_126 - 0x48, 0x8d, 0x70, 0x04, //0x000070f0 leaq $4(%rax), %rsi - 0x48, 0x39, 0xf1, //0x000070f4 cmpq %rsi, %rcx - 0x0f, 0x86, 0xf6, 0x03, 0x00, 0x00, //0x000070f7 jbe LBB32_233 - 0x48, 0x39, 0xf1, //0x000070fd cmpq %rsi, %rcx - 0x0f, 0x84, 0x3a, 0x00, 0x00, 0x00, //0x00007100 je LBB32_132 - 0x48, 0x8d, 0x3c, 0x0a, //0x00007106 leaq (%rdx,%rcx), %rdi - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000710a .p2align 4, 0x90 - //0x00007110 LBB32_129 - 0x0f, 0xbe, 0x1c, 0x32, //0x00007110 movsbl (%rdx,%rsi), %ebx - 0x83, 0xfb, 0x20, //0x00007114 cmpl $32, %ebx - 0x0f, 0x87, 0x2f, 0x00, 0x00, 0x00, //0x00007117 ja LBB32_134 - 0x49, 0x0f, 0xa3, 0xda, //0x0000711d btq %rbx, %r10 - 0x0f, 0x83, 0x25, 0x00, 0x00, 0x00, //0x00007121 jae LBB32_134 - 0x48, 0x83, 0xc6, 0x01, //0x00007127 addq $1, %rsi - 0x48, 0x39, 0xf1, //0x0000712b cmpq %rsi, %rcx - 0x0f, 0x85, 0xdc, 0xff, 0xff, 0xff, //0x0000712e jne LBB32_129 - 0xe9, 0x0d, 0x00, 0x00, 0x00, //0x00007134 jmp LBB32_133 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007139 .p2align 4, 0x90 - //0x00007140 LBB32_132 - 0x48, 0x01, 0xd6, //0x00007140 addq %rdx, %rsi - 0x48, 0x89, 0xf7, //0x00007143 movq %rsi, %rdi - //0x00007146 LBB32_133 - 0x48, 0x29, 0xd7, //0x00007146 subq %rdx, %rdi - 0x48, 0x89, 0xfe, //0x00007149 movq %rdi, %rsi - //0x0000714c LBB32_134 - 0x48, 0x39, 0xce, //0x0000714c cmpq %rcx, %rsi - 0x0f, 0x83, 0xf7, 0x03, 0x00, 0x00, //0x0000714f jae LBB32_234 - //0x00007155 LBB32_135 - 0x48, 0x8d, 0x46, 0x01, //0x00007155 leaq $1(%rsi), %rax - 0x49, 0x89, 0x45, 0x00, //0x00007159 movq %rax, (%r13) - 0x8a, 0x0c, 0x32, //0x0000715d movb (%rdx,%rsi), %cl - 0x80, 0xf9, 0x2c, //0x00007160 cmpb $44, %cl - 0x0f, 0x84, 0x11, 0xf9, 0xff, 0xff, //0x00007163 je LBB32_34 - 0xe9, 0xaa, 0x03, 0x00, 0x00, //0x00007169 jmp LBB32_225 - 0x90, 0x90, //0x0000716e .p2align 4, 0x90 - //0x00007170 LBB32_161 - 0x40, 0x80, 0xff, 0x5b, //0x00007170 cmpb $91, %dil - 0x0f, 0x85, 0xd2, 0x03, 0x00, 0x00, //0x00007174 jne LBB32_234 - 0x49, 0x8b, 0x71, 0x08, //0x0000717a movq $8(%r9), %rsi - 0x4c, 0x8b, 0x36, //0x0000717e movq (%rsi), %r14 - 0x4d, 0x85, 0xf6, //0x00007181 testq %r14, %r14 - 0x0f, 0x88, 0xab, 0x03, 0x00, 0x00, //0x00007184 js LBB32_228 - 0x49, 0x8b, 0x4c, 0x24, 0x08, //0x0000718a movq $8(%r12), %rcx - 0x48, 0x39, 0xc8, //0x0000718f cmpq %rcx, %rax - 0x0f, 0x83, 0x38, 0x00, 0x00, 0x00, //0x00007192 jae LBB32_168 - 0x40, 0x8a, 0x34, 0x02, //0x00007198 movb (%rdx,%rax), %sil - 0x40, 0x80, 0xfe, 0x0d, //0x0000719c cmpb $13, %sil - 0x0f, 0x84, 0x2a, 0x00, 0x00, 0x00, //0x000071a0 je LBB32_168 - 0x40, 0x80, 0xfe, 0x20, //0x000071a6 cmpb $32, %sil - 0x0f, 0x84, 0x20, 0x00, 0x00, 0x00, //0x000071aa je LBB32_168 - 0x40, 0x80, 0xc6, 0xf7, //0x000071b0 addb $-9, %sil - 0x40, 0x80, 0xfe, 0x01, //0x000071b4 cmpb $1, %sil - 0x0f, 0x86, 0x12, 0x00, 0x00, 0x00, //0x000071b8 jbe LBB32_168 - 0x48, 0x89, 0xc6, //0x000071be movq %rax, %rsi - 0xe9, 0x30, 0x01, 0x00, 0x00, //0x000071c1 jmp LBB32_190 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000071c6 .p2align 4, 0x90 - //0x000071d0 LBB32_168 - 0x48, 0x8d, 0x70, 0x01, //0x000071d0 leaq $1(%rax), %rsi - 0x48, 0x39, 0xce, //0x000071d4 cmpq %rcx, %rsi - 0x0f, 0x83, 0x33, 0x00, 0x00, 0x00, //0x000071d7 jae LBB32_172 - 0x40, 0x8a, 0x3c, 0x32, //0x000071dd movb (%rdx,%rsi), %dil - 0x40, 0x80, 0xff, 0x0d, //0x000071e1 cmpb $13, %dil - 0x0f, 0x84, 0x25, 0x00, 0x00, 0x00, //0x000071e5 je LBB32_172 - 0x40, 0x80, 0xff, 0x20, //0x000071eb cmpb $32, %dil - 0x0f, 0x84, 0x1b, 0x00, 0x00, 0x00, //0x000071ef je LBB32_172 - 0x40, 0x80, 0xc7, 0xf7, //0x000071f5 addb $-9, %dil - 0x40, 0x80, 0xff, 0x01, //0x000071f9 cmpb $1, %dil - 0x0f, 0x87, 0xf3, 0x00, 0x00, 0x00, //0x000071fd ja LBB32_190 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007203 .p2align 4, 0x90 - //0x00007210 LBB32_172 - 0x48, 0x8d, 0x70, 0x02, //0x00007210 leaq $2(%rax), %rsi - 0x48, 0x39, 0xce, //0x00007214 cmpq %rcx, %rsi - 0x0f, 0x83, 0x33, 0x00, 0x00, 0x00, //0x00007217 jae LBB32_176 - 0x40, 0x8a, 0x3c, 0x32, //0x0000721d movb (%rdx,%rsi), %dil - 0x40, 0x80, 0xff, 0x0d, //0x00007221 cmpb $13, %dil - 0x0f, 0x84, 0x25, 0x00, 0x00, 0x00, //0x00007225 je LBB32_176 - 0x40, 0x80, 0xff, 0x20, //0x0000722b cmpb $32, %dil - 0x0f, 0x84, 0x1b, 0x00, 0x00, 0x00, //0x0000722f je LBB32_176 - 0x40, 0x80, 0xc7, 0xf7, //0x00007235 addb $-9, %dil - 0x40, 0x80, 0xff, 0x01, //0x00007239 cmpb $1, %dil - 0x0f, 0x87, 0xb3, 0x00, 0x00, 0x00, //0x0000723d ja LBB32_190 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007243 .p2align 4, 0x90 - //0x00007250 LBB32_176 - 0x48, 0x8d, 0x70, 0x03, //0x00007250 leaq $3(%rax), %rsi - 0x48, 0x39, 0xce, //0x00007254 cmpq %rcx, %rsi - 0x0f, 0x83, 0x33, 0x00, 0x00, 0x00, //0x00007257 jae LBB32_180 - 0x40, 0x8a, 0x3c, 0x32, //0x0000725d movb (%rdx,%rsi), %dil - 0x40, 0x80, 0xff, 0x0d, //0x00007261 cmpb $13, %dil - 0x0f, 0x84, 0x25, 0x00, 0x00, 0x00, //0x00007265 je LBB32_180 - 0x40, 0x80, 0xff, 0x20, //0x0000726b cmpb $32, %dil - 0x0f, 0x84, 0x1b, 0x00, 0x00, 0x00, //0x0000726f je LBB32_180 - 0x40, 0x80, 0xc7, 0xf7, //0x00007275 addb $-9, %dil - 0x40, 0x80, 0xff, 0x01, //0x00007279 cmpb $1, %dil - 0x0f, 0x87, 0x73, 0x00, 0x00, 0x00, //0x0000727d ja LBB32_190 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007283 .p2align 4, 0x90 - //0x00007290 LBB32_180 - 0x48, 0x8d, 0x70, 0x04, //0x00007290 leaq $4(%rax), %rsi - 0x48, 0x39, 0xf1, //0x00007294 cmpq %rsi, %rcx - 0x0f, 0x86, 0x3c, 0x00, 0x00, 0x00, //0x00007297 jbe LBB32_186 - 0x48, 0x39, 0xf1, //0x0000729d cmpq %rsi, %rcx - 0x0f, 0x84, 0x3b, 0x00, 0x00, 0x00, //0x000072a0 je LBB32_187 - 0x48, 0x8d, 0x3c, 0x0a, //0x000072a6 leaq (%rdx,%rcx), %rdi - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000072aa .p2align 4, 0x90 - //0x000072b0 LBB32_183 - 0x0f, 0xbe, 0x1c, 0x32, //0x000072b0 movsbl (%rdx,%rsi), %ebx - 0x83, 0xfb, 0x20, //0x000072b4 cmpl $32, %ebx - 0x0f, 0x87, 0x30, 0x00, 0x00, 0x00, //0x000072b7 ja LBB32_189 - 0x49, 0x0f, 0xa3, 0xda, //0x000072bd btq %rbx, %r10 - 0x0f, 0x83, 0x26, 0x00, 0x00, 0x00, //0x000072c1 jae LBB32_189 - 0x48, 0x83, 0xc6, 0x01, //0x000072c7 addq $1, %rsi - 0x48, 0x39, 0xf1, //0x000072cb cmpq %rsi, %rcx - 0x0f, 0x85, 0xdc, 0xff, 0xff, 0xff, //0x000072ce jne LBB32_183 - 0xe9, 0x0e, 0x00, 0x00, 0x00, //0x000072d4 jmp LBB32_188 - //0x000072d9 LBB32_186 - 0x48, 0x89, 0xf0, //0x000072d9 movq %rsi, %rax - 0xe9, 0x27, 0x00, 0x00, 0x00, //0x000072dc jmp LBB32_191 - //0x000072e1 LBB32_187 - 0x48, 0x01, 0xd6, //0x000072e1 addq %rdx, %rsi - 0x48, 0x89, 0xf7, //0x000072e4 movq %rsi, %rdi - //0x000072e7 LBB32_188 - 0x48, 0x29, 0xd7, //0x000072e7 subq %rdx, %rdi - 0x48, 0x89, 0xfe, //0x000072ea movq %rdi, %rsi - //0x000072ed LBB32_189 - 0x48, 0x39, 0xce, //0x000072ed cmpq %rcx, %rsi - 0x0f, 0x83, 0x12, 0x00, 0x00, 0x00, //0x000072f0 jae LBB32_191 - //0x000072f6 LBB32_190 - 0x48, 0x8d, 0x46, 0x01, //0x000072f6 leaq $1(%rsi), %rax - 0x49, 0x89, 0x45, 0x00, //0x000072fa movq %rax, (%r13) - 0x80, 0x3c, 0x32, 0x5d, //0x000072fe cmpb $93, (%rdx,%rsi) - 0x0f, 0x84, 0x19, 0x02, 0x00, 0x00, //0x00007302 je LBB32_226 - //0x00007308 LBB32_191 - 0x48, 0x83, 0xc0, 0xff, //0x00007308 addq $-1, %rax - 0x49, 0x89, 0x45, 0x00, //0x0000730c movq %rax, (%r13) - 0x48, 0x89, 0xc6, //0x00007310 movq %rax, %rsi - 0x4d, 0x85, 0xf6, //0x00007313 testq %r14, %r14 - 0x0f, 0x8e, 0x8d, 0x01, 0x00, 0x00, //0x00007316 jle LBB32_220 - 0x90, 0x90, 0x90, 0x90, //0x0000731c .p2align 4, 0x90 - //0x00007320 LBB32_192 - 0x4c, 0x89, 0xe7, //0x00007320 movq %r12, %rdi - 0x4c, 0x89, 0xee, //0x00007323 movq %r13, %rsi - 0xe8, 0x45, 0xe6, 0xff, 0xff, //0x00007326 callq _skip_one_fast - 0x49, 0x8b, 0x14, 0x24, //0x0000732b movq (%r12), %rdx - 0x49, 0x8b, 0x4c, 0x24, 0x08, //0x0000732f movq $8(%r12), %rcx - 0x49, 0x8b, 0x45, 0x00, //0x00007334 movq (%r13), %rax - 0x48, 0x39, 0xc8, //0x00007338 cmpq %rcx, %rax - 0x0f, 0x83, 0x3f, 0x00, 0x00, 0x00, //0x0000733b jae LBB32_197 - 0x8a, 0x1c, 0x02, //0x00007341 movb (%rdx,%rax), %bl - 0x80, 0xfb, 0x0d, //0x00007344 cmpb $13, %bl - 0x0f, 0x84, 0x33, 0x00, 0x00, 0x00, //0x00007347 je LBB32_197 - 0x80, 0xfb, 0x20, //0x0000734d cmpb $32, %bl - 0x0f, 0x84, 0x2a, 0x00, 0x00, 0x00, //0x00007350 je LBB32_197 - 0x80, 0xc3, 0xf7, //0x00007356 addb $-9, %bl - 0x80, 0xfb, 0x01, //0x00007359 cmpb $1, %bl - 0x0f, 0x86, 0x1e, 0x00, 0x00, 0x00, //0x0000735c jbe LBB32_197 - 0x48, 0x89, 0xc7, //0x00007362 movq %rax, %rdi - 0x49, 0xba, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00007365 movabsq $4294977024, %r10 - 0xe9, 0x11, 0x01, 0x00, 0x00, //0x0000736f jmp LBB32_218 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007374 .p2align 4, 0x90 - //0x00007380 LBB32_197 - 0x48, 0x8d, 0x78, 0x01, //0x00007380 leaq $1(%rax), %rdi - 0x48, 0x39, 0xcf, //0x00007384 cmpq %rcx, %rdi - 0x49, 0xba, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00007387 movabsq $4294977024, %r10 - 0x0f, 0x83, 0x29, 0x00, 0x00, 0x00, //0x00007391 jae LBB32_201 - 0x8a, 0x1c, 0x3a, //0x00007397 movb (%rdx,%rdi), %bl - 0x80, 0xfb, 0x0d, //0x0000739a cmpb $13, %bl - 0x0f, 0x84, 0x1d, 0x00, 0x00, 0x00, //0x0000739d je LBB32_201 - 0x80, 0xfb, 0x20, //0x000073a3 cmpb $32, %bl - 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x000073a6 je LBB32_201 - 0x80, 0xc3, 0xf7, //0x000073ac addb $-9, %bl - 0x80, 0xfb, 0x01, //0x000073af cmpb $1, %bl - 0x0f, 0x87, 0xcd, 0x00, 0x00, 0x00, //0x000073b2 ja LBB32_218 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000073b8 .p2align 4, 0x90 - //0x000073c0 LBB32_201 - 0x48, 0x8d, 0x78, 0x02, //0x000073c0 leaq $2(%rax), %rdi - 0x48, 0x39, 0xcf, //0x000073c4 cmpq %rcx, %rdi - 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x000073c7 jae LBB32_205 - 0x8a, 0x1c, 0x3a, //0x000073cd movb (%rdx,%rdi), %bl - 0x80, 0xfb, 0x0d, //0x000073d0 cmpb $13, %bl - 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x000073d3 je LBB32_205 - 0x80, 0xfb, 0x20, //0x000073d9 cmpb $32, %bl - 0x0f, 0x84, 0x0e, 0x00, 0x00, 0x00, //0x000073dc je LBB32_205 - 0x80, 0xc3, 0xf7, //0x000073e2 addb $-9, %bl - 0x80, 0xfb, 0x01, //0x000073e5 cmpb $1, %bl - 0x0f, 0x87, 0x97, 0x00, 0x00, 0x00, //0x000073e8 ja LBB32_218 - 0x90, 0x90, //0x000073ee .p2align 4, 0x90 - //0x000073f0 LBB32_205 - 0x48, 0x8d, 0x78, 0x03, //0x000073f0 leaq $3(%rax), %rdi - 0x48, 0x39, 0xcf, //0x000073f4 cmpq %rcx, %rdi - 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x000073f7 jae LBB32_209 - 0x8a, 0x1c, 0x3a, //0x000073fd movb (%rdx,%rdi), %bl - 0x80, 0xfb, 0x0d, //0x00007400 cmpb $13, %bl - 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x00007403 je LBB32_209 - 0x80, 0xfb, 0x20, //0x00007409 cmpb $32, %bl - 0x0f, 0x84, 0x0e, 0x00, 0x00, 0x00, //0x0000740c je LBB32_209 - 0x80, 0xc3, 0xf7, //0x00007412 addb $-9, %bl - 0x80, 0xfb, 0x01, //0x00007415 cmpb $1, %bl - 0x0f, 0x87, 0x67, 0x00, 0x00, 0x00, //0x00007418 ja LBB32_218 - 0x90, 0x90, //0x0000741e .p2align 4, 0x90 - //0x00007420 LBB32_209 - 0x48, 0x8d, 0x78, 0x04, //0x00007420 leaq $4(%rax), %rdi - 0x48, 0x39, 0xf9, //0x00007424 cmpq %rdi, %rcx - 0x0f, 0x86, 0xe3, 0x00, 0x00, 0x00, //0x00007427 jbe LBB32_232 - 0x48, 0x39, 0xf9, //0x0000742d cmpq %rdi, %rcx - 0x0f, 0x84, 0x3a, 0x00, 0x00, 0x00, //0x00007430 je LBB32_215 - 0x48, 0x8d, 0x34, 0x0a, //0x00007436 leaq (%rdx,%rcx), %rsi - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000743a .p2align 4, 0x90 - //0x00007440 LBB32_212 - 0x0f, 0xbe, 0x1c, 0x3a, //0x00007440 movsbl (%rdx,%rdi), %ebx - 0x83, 0xfb, 0x20, //0x00007444 cmpl $32, %ebx - 0x0f, 0x87, 0x2f, 0x00, 0x00, 0x00, //0x00007447 ja LBB32_217 - 0x49, 0x0f, 0xa3, 0xda, //0x0000744d btq %rbx, %r10 - 0x0f, 0x83, 0x25, 0x00, 0x00, 0x00, //0x00007451 jae LBB32_217 - 0x48, 0x83, 0xc7, 0x01, //0x00007457 addq $1, %rdi - 0x48, 0x39, 0xf9, //0x0000745b cmpq %rdi, %rcx - 0x0f, 0x85, 0xdc, 0xff, 0xff, 0xff, //0x0000745e jne LBB32_212 - 0xe9, 0x0d, 0x00, 0x00, 0x00, //0x00007464 jmp LBB32_216 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007469 .p2align 4, 0x90 - //0x00007470 LBB32_215 - 0x48, 0x01, 0xd7, //0x00007470 addq %rdx, %rdi - 0x48, 0x89, 0xfe, //0x00007473 movq %rdi, %rsi - //0x00007476 LBB32_216 - 0x48, 0x29, 0xd6, //0x00007476 subq %rdx, %rsi - 0x48, 0x89, 0xf7, //0x00007479 movq %rsi, %rdi - //0x0000747c LBB32_217 - 0x48, 0x39, 0xcf, //0x0000747c cmpq %rcx, %rdi - 0x0f, 0x83, 0xc7, 0x00, 0x00, 0x00, //0x0000747f jae LBB32_234 - //0x00007485 LBB32_218 - 0x48, 0x8d, 0x77, 0x01, //0x00007485 leaq $1(%rdi), %rsi - 0x49, 0x89, 0x75, 0x00, //0x00007489 movq %rsi, (%r13) - 0x8a, 0x04, 0x3a, //0x0000748d movb (%rdx,%rdi), %al - 0x3c, 0x2c, //0x00007490 cmpb $44, %al - 0x0f, 0x85, 0x4b, 0x00, 0x00, 0x00, //0x00007492 jne LBB32_222 - 0x49, 0x8d, 0x46, 0xff, //0x00007498 leaq $-1(%r14), %rax - 0x49, 0x83, 0xfe, 0x02, //0x0000749c cmpq $2, %r14 - 0x49, 0x89, 0xc6, //0x000074a0 movq %rax, %r14 - 0x0f, 0x8d, 0x77, 0xfe, 0xff, 0xff, //0x000074a3 jge LBB32_192 - //0x000074a9 LBB32_220 - 0x4c, 0x8b, 0x4d, 0xb8, //0x000074a9 movq $-72(%rbp), %r9 - 0x49, 0x83, 0xc1, 0x10, //0x000074ad addq $16, %r9 - 0x4c, 0x3b, 0x4d, 0xa8, //0x000074b1 cmpq $-88(%rbp), %r9 - 0x48, 0x8b, 0x4d, 0xa0, //0x000074b5 movq $-96(%rbp), %rcx - 0x0f, 0x85, 0x19, 0xf4, 0xff, 0xff, //0x000074b9 jne LBB32_2 - //0x000074bf LBB32_221 - 0x66, 0x0f, 0x6f, 0x05, 0xb9, 0xf3, 0xff, 0xff, //0x000074bf movdqa $-3143(%rip), %xmm0 /* LCPI32_0+0(%rip) */ - 0xf3, 0x0f, 0x7f, 0x01, //0x000074c7 movdqu %xmm0, (%rcx) - 0x48, 0x89, 0xcf, //0x000074cb movq %rcx, %rdi - 0x4c, 0x89, 0xe6, //0x000074ce movq %r12, %rsi - 0x4c, 0x89, 0xea, //0x000074d1 movq %r13, %rdx - 0x31, 0xc9, //0x000074d4 xorl %ecx, %ecx - 0xe8, 0xb5, 0xd4, 0xff, 0xff, //0x000074d6 callq _fsm_exec - 0x49, 0x89, 0xc0, //0x000074db movq %rax, %r8 - 0xe9, 0x78, 0x00, 0x00, 0x00, //0x000074de jmp LBB32_235 - //0x000074e3 LBB32_222 - 0x3c, 0x5d, //0x000074e3 cmpb $93, %al - 0x0f, 0x85, 0x08, 0x00, 0x00, 0x00, //0x000074e5 jne LBB32_233 - 0x48, 0x89, 0xf0, //0x000074eb movq %rsi, %rax - 0xe9, 0x2e, 0x00, 0x00, 0x00, //0x000074ee jmp LBB32_226 - //0x000074f3 LBB32_233 - 0x48, 0x89, 0xf0, //0x000074f3 movq %rsi, %rax - 0xe9, 0x51, 0x00, 0x00, 0x00, //0x000074f6 jmp LBB32_234 - //0x000074fb LBB32_224 - 0x4c, 0x89, 0xe8, //0x000074fb movq %r13, %rax - 0x80, 0xf9, 0x7d, //0x000074fe cmpb $125, %cl - 0x4c, 0x8b, 0x6d, 0xd0, //0x00007501 movq $-48(%rbp), %r13 - 0x0f, 0x85, 0x41, 0x00, 0x00, 0x00, //0x00007505 jne LBB32_234 - 0xe9, 0x11, 0x00, 0x00, 0x00, //0x0000750b jmp LBB32_226 - //0x00007510 LBB32_232 - 0x48, 0x89, 0xf8, //0x00007510 movq %rdi, %rax - 0xe9, 0x34, 0x00, 0x00, 0x00, //0x00007513 jmp LBB32_234 - //0x00007518 LBB32_225 - 0x80, 0xf9, 0x7d, //0x00007518 cmpb $125, %cl - 0x0f, 0x85, 0x2b, 0x00, 0x00, 0x00, //0x0000751b jne LBB32_234 - //0x00007521 LBB32_226 - 0x48, 0x83, 0xc0, 0xff, //0x00007521 addq $-1, %rax - 0x49, 0x89, 0x45, 0x00, //0x00007525 movq %rax, (%r13) - 0x49, 0xc7, 0xc0, 0xdf, 0xff, 0xff, 0xff, //0x00007529 movq $-33, %r8 - 0xe9, 0x26, 0x00, 0x00, 0x00, //0x00007530 jmp LBB32_235 - //0x00007535 LBB32_228 - 0x48, 0x83, 0xc0, 0xff, //0x00007535 addq $-1, %rax - 0x49, 0x89, 0x45, 0x00, //0x00007539 movq %rax, (%r13) - 0x49, 0xc7, 0xc0, 0xde, 0xff, 0xff, 0xff, //0x0000753d movq $-34, %r8 - 0xe9, 0x12, 0x00, 0x00, 0x00, //0x00007544 jmp LBB32_235 - //0x00007549 LBB32_231 - 0x4c, 0x89, 0xf8, //0x00007549 movq %r15, %rax - //0x0000754c LBB32_234 - 0x48, 0x83, 0xc0, 0xff, //0x0000754c addq $-1, %rax - 0x49, 0x89, 0x45, 0x00, //0x00007550 movq %rax, (%r13) - 0x49, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00007554 movq $-2, %r8 - //0x0000755b LBB32_235 - 0x4c, 0x89, 0xc0, //0x0000755b movq %r8, %rax - 0x48, 0x83, 0xc4, 0x38, //0x0000755e addq $56, %rsp - 0x5b, //0x00007562 popq %rbx - 0x41, 0x5c, //0x00007563 popq %r12 - 0x41, 0x5d, //0x00007565 popq %r13 - 0x41, 0x5e, //0x00007567 popq %r14 - 0x41, 0x5f, //0x00007569 popq %r15 - 0x5d, //0x0000756b popq %rbp - 0xc3, //0x0000756c retq - //0x0000756d LBB32_236 - 0x49, 0x8b, 0x44, 0x24, 0x08, //0x0000756d movq $8(%r12), %rax - 0x48, 0x8b, 0x4d, 0xd0, //0x00007572 movq $-48(%rbp), %rcx - 0x48, 0x89, 0x01, //0x00007576 movq %rax, (%rcx) - 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00007579 movq $-1, %r8 - 0xe9, 0xd6, 0xff, 0xff, 0xff, //0x00007580 jmp LBB32_235 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007585 .p2align 4, 0x90 - //0x00007590 _validate_utf8 - 0x55, //0x00007590 pushq %rbp - 0x48, 0x89, 0xe5, //0x00007591 movq %rsp, %rbp - 0x41, 0x57, //0x00007594 pushq %r15 - 0x41, 0x56, //0x00007596 pushq %r14 - 0x41, 0x54, //0x00007598 pushq %r12 - 0x53, //0x0000759a pushq %rbx - 0x50, //0x0000759b pushq %rax - 0x4c, 0x8b, 0x17, //0x0000759c movq (%rdi), %r10 - 0x4c, 0x8b, 0x5f, 0x08, //0x0000759f movq $8(%rdi), %r11 - 0x48, 0x8b, 0x0e, //0x000075a3 movq (%rsi), %rcx - 0x4c, 0x01, 0xd1, //0x000075a6 addq %r10, %rcx - 0x4f, 0x8d, 0x04, 0x1a, //0x000075a9 leaq (%r10,%r11), %r8 - 0x49, 0x83, 0xc0, 0xfd, //0x000075ad addq $-3, %r8 - 0xe9, 0x0d, 0x00, 0x00, 0x00, //0x000075b1 jmp LBB33_1 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000075b6 .p2align 4, 0x90 - //0x000075c0 LBB33_19 - 0x48, 0x01, 0xd9, //0x000075c0 addq %rbx, %rcx - //0x000075c3 LBB33_1 - 0x4c, 0x39, 0xc1, //0x000075c3 cmpq %r8, %rcx - 0x0f, 0x83, 0xe1, 0x00, 0x00, 0x00, //0x000075c6 jae LBB33_2 - 0xbb, 0x01, 0x00, 0x00, 0x00, //0x000075cc movl $1, %ebx - 0x80, 0x39, 0x00, //0x000075d1 cmpb $0, (%rcx) - 0x0f, 0x89, 0xe6, 0xff, 0xff, 0xff, //0x000075d4 jns LBB33_19 - 0x8b, 0x01, //0x000075da movl (%rcx), %eax - 0x89, 0xc7, //0x000075dc movl %eax, %edi - 0x81, 0xe7, 0xf0, 0xc0, 0xc0, 0x00, //0x000075de andl $12632304, %edi - 0x81, 0xff, 0xe0, 0x80, 0x80, 0x00, //0x000075e4 cmpl $8421600, %edi - 0x0f, 0x85, 0x30, 0x00, 0x00, 0x00, //0x000075ea jne LBB33_10 - 0x89, 0xc7, //0x000075f0 movl %eax, %edi - 0x81, 0xe7, 0x0f, 0x20, 0x00, 0x00, //0x000075f2 andl $8207, %edi - 0x81, 0xff, 0x0d, 0x20, 0x00, 0x00, //0x000075f8 cmpl $8205, %edi - 0x0f, 0x84, 0x1c, 0x00, 0x00, 0x00, //0x000075fe je LBB33_10 - 0xbb, 0x03, 0x00, 0x00, 0x00, //0x00007604 movl $3, %ebx - 0x85, 0xff, //0x00007609 testl %edi, %edi - 0x0f, 0x85, 0xaf, 0xff, 0xff, 0xff, //0x0000760b jne LBB33_19 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007611 .p2align 4, 0x90 - //0x00007620 LBB33_10 - 0x89, 0xc7, //0x00007620 movl %eax, %edi - 0x81, 0xe7, 0xe0, 0xc0, 0x00, 0x00, //0x00007622 andl $49376, %edi - 0x81, 0xff, 0xc0, 0x80, 0x00, 0x00, //0x00007628 cmpl $32960, %edi - 0x0f, 0x85, 0x10, 0x00, 0x00, 0x00, //0x0000762e jne LBB33_12 - 0x89, 0xc7, //0x00007634 movl %eax, %edi - 0xbb, 0x02, 0x00, 0x00, 0x00, //0x00007636 movl $2, %ebx - 0x83, 0xe7, 0x1e, //0x0000763b andl $30, %edi - 0x0f, 0x85, 0x7c, 0xff, 0xff, 0xff, //0x0000763e jne LBB33_19 - //0x00007644 LBB33_12 - 0x89, 0xc7, //0x00007644 movl %eax, %edi - 0x81, 0xe7, 0xf8, 0xc0, 0xc0, 0xc0, //0x00007646 andl $-1061109512, %edi - 0x81, 0xff, 0xf0, 0x80, 0x80, 0x80, //0x0000764c cmpl $-2139062032, %edi - 0x0f, 0x85, 0x26, 0x00, 0x00, 0x00, //0x00007652 jne LBB33_16 - 0x89, 0xc7, //0x00007658 movl %eax, %edi - 0x81, 0xe7, 0x07, 0x30, 0x00, 0x00, //0x0000765a andl $12295, %edi - 0x0f, 0x84, 0x18, 0x00, 0x00, 0x00, //0x00007660 je LBB33_16 - 0xbb, 0x04, 0x00, 0x00, 0x00, //0x00007666 movl $4, %ebx - 0xa8, 0x04, //0x0000766b testb $4, %al - 0x0f, 0x84, 0x4d, 0xff, 0xff, 0xff, //0x0000766d je LBB33_19 - 0x25, 0x03, 0x30, 0x00, 0x00, //0x00007673 andl $12291, %eax - 0x0f, 0x84, 0x42, 0xff, 0xff, 0xff, //0x00007678 je LBB33_19 - //0x0000767e LBB33_16 - 0x48, 0x89, 0xcf, //0x0000767e movq %rcx, %rdi - 0x4c, 0x29, 0xd7, //0x00007681 subq %r10, %rdi - 0x48, 0x8b, 0x1a, //0x00007684 movq (%rdx), %rbx - 0x48, 0x81, 0xfb, 0x00, 0x10, 0x00, 0x00, //0x00007687 cmpq $4096, %rbx - 0x0f, 0x83, 0x97, 0x01, 0x00, 0x00, //0x0000768e jae LBB33_17 - 0x48, 0x63, 0xc7, //0x00007694 movslq %edi, %rax - 0x48, 0x8d, 0x7b, 0x01, //0x00007697 leaq $1(%rbx), %rdi - 0x48, 0x89, 0x3a, //0x0000769b movq %rdi, (%rdx) - 0x48, 0x89, 0x44, 0xda, 0x08, //0x0000769e movq %rax, $8(%rdx,%rbx,8) - 0xbb, 0x01, 0x00, 0x00, 0x00, //0x000076a3 movl $1, %ebx - 0xe9, 0x13, 0xff, 0xff, 0xff, //0x000076a8 jmp LBB33_19 - //0x000076ad LBB33_2 - 0x4d, 0x01, 0xd3, //0x000076ad addq %r10, %r11 - 0x4c, 0x39, 0xd9, //0x000076b0 cmpq %r11, %rcx - 0x0f, 0x83, 0x4e, 0x01, 0x00, 0x00, //0x000076b3 jae LBB33_36 - 0x4c, 0x8d, 0x45, 0xdc, //0x000076b9 leaq $-36(%rbp), %r8 - 0x4c, 0x8d, 0x4d, 0xda, //0x000076bd leaq $-38(%rbp), %r9 - 0xe9, 0x17, 0x00, 0x00, 0x00, //0x000076c1 jmp LBB33_4 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000076c6 .p2align 4, 0x90 - //0x000076d0 LBB33_5 - 0x48, 0x83, 0xc1, 0x01, //0x000076d0 addq $1, %rcx - 0x4c, 0x39, 0xd9, //0x000076d4 cmpq %r11, %rcx - 0x0f, 0x83, 0x2a, 0x01, 0x00, 0x00, //0x000076d7 jae LBB33_36 - //0x000076dd LBB33_4 - 0x80, 0x39, 0x00, //0x000076dd cmpb $0, (%rcx) - 0x0f, 0x89, 0xea, 0xff, 0xff, 0xff, //0x000076e0 jns LBB33_5 - 0xc6, 0x45, 0xdc, 0x00, //0x000076e6 movb $0, $-36(%rbp) - 0xc6, 0x45, 0xda, 0x00, //0x000076ea movb $0, $-38(%rbp) - 0x4c, 0x89, 0xdb, //0x000076ee movq %r11, %rbx - 0x48, 0x29, 0xcb, //0x000076f1 subq %rcx, %rbx - 0x48, 0x83, 0xfb, 0x02, //0x000076f4 cmpq $2, %rbx - 0x0f, 0x82, 0x35, 0x00, 0x00, 0x00, //0x000076f8 jb LBB33_21 - 0x44, 0x0f, 0xb6, 0x21, //0x000076fe movzbl (%rcx), %r12d - 0x44, 0x0f, 0xb6, 0x71, 0x01, //0x00007702 movzbl $1(%rcx), %r14d - 0x44, 0x88, 0x65, 0xdc, //0x00007707 movb %r12b, $-36(%rbp) - 0x4c, 0x8d, 0x79, 0x02, //0x0000770b leaq $2(%rcx), %r15 - 0x48, 0x83, 0xc3, 0xfe, //0x0000770f addq $-2, %rbx - 0x4c, 0x89, 0xcf, //0x00007713 movq %r9, %rdi - 0x48, 0x85, 0xdb, //0x00007716 testq %rbx, %rbx - 0x0f, 0x84, 0x29, 0x00, 0x00, 0x00, //0x00007719 je LBB33_24 - //0x0000771f LBB33_25 - 0x41, 0x0f, 0xb6, 0x07, //0x0000771f movzbl (%r15), %eax - 0x88, 0x07, //0x00007723 movb %al, (%rdi) - 0x44, 0x0f, 0xb6, 0x65, 0xdc, //0x00007725 movzbl $-36(%rbp), %r12d - 0x0f, 0xb6, 0x7d, 0xda, //0x0000772a movzbl $-38(%rbp), %edi - 0xe9, 0x17, 0x00, 0x00, 0x00, //0x0000772e jmp LBB33_26 - //0x00007733 LBB33_21 - 0x45, 0x31, 0xe4, //0x00007733 xorl %r12d, %r12d - 0x45, 0x31, 0xf6, //0x00007736 xorl %r14d, %r14d - 0x4c, 0x89, 0xc7, //0x00007739 movq %r8, %rdi - 0x49, 0x89, 0xcf, //0x0000773c movq %rcx, %r15 - 0x48, 0x85, 0xdb, //0x0000773f testq %rbx, %rbx - 0x0f, 0x85, 0xd7, 0xff, 0xff, 0xff, //0x00007742 jne LBB33_25 - //0x00007748 LBB33_24 - 0x31, 0xff, //0x00007748 xorl %edi, %edi - //0x0000774a LBB33_26 - 0x40, 0x0f, 0xb6, 0xc7, //0x0000774a movzbl %dil, %eax - 0xc1, 0xe0, 0x10, //0x0000774e shll $16, %eax - 0x41, 0x0f, 0xb6, 0xde, //0x00007751 movzbl %r14b, %ebx - 0xc1, 0xe3, 0x08, //0x00007755 shll $8, %ebx - 0x09, 0xc3, //0x00007758 orl %eax, %ebx - 0x41, 0x0f, 0xb6, 0xfc, //0x0000775a movzbl %r12b, %edi - 0x09, 0xdf, //0x0000775e orl %ebx, %edi - 0x89, 0xf8, //0x00007760 movl %edi, %eax - 0x25, 0xf0, 0xc0, 0xc0, 0x00, //0x00007762 andl $12632304, %eax - 0x3d, 0xe0, 0x80, 0x80, 0x00, //0x00007767 cmpl $8421600, %eax - 0x0f, 0x85, 0x2e, 0x00, 0x00, 0x00, //0x0000776c jne LBB33_29 - 0x89, 0xf8, //0x00007772 movl %edi, %eax - 0x25, 0x0f, 0x20, 0x00, 0x00, //0x00007774 andl $8207, %eax - 0x3d, 0x0d, 0x20, 0x00, 0x00, //0x00007779 cmpl $8205, %eax - 0x0f, 0x84, 0x1c, 0x00, 0x00, 0x00, //0x0000777e je LBB33_29 - 0xbb, 0x03, 0x00, 0x00, 0x00, //0x00007784 movl $3, %ebx - 0x85, 0xc0, //0x00007789 testl %eax, %eax - 0x0f, 0x85, 0x30, 0x00, 0x00, 0x00, //0x0000778b jne LBB33_34 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007791 .p2align 4, 0x90 - //0x000077a0 LBB33_29 - 0x41, 0xf6, 0xc4, 0x1e, //0x000077a0 testb $30, %r12b - 0x0f, 0x84, 0x28, 0x00, 0x00, 0x00, //0x000077a4 je LBB33_31 - 0x81, 0xe7, 0xe0, 0xc0, 0x00, 0x00, //0x000077aa andl $49376, %edi - 0xbb, 0x02, 0x00, 0x00, 0x00, //0x000077b0 movl $2, %ebx - 0x81, 0xff, 0xc0, 0x80, 0x00, 0x00, //0x000077b5 cmpl $32960, %edi - 0x0f, 0x85, 0x11, 0x00, 0x00, 0x00, //0x000077bb jne LBB33_31 - //0x000077c1 LBB33_34 - 0x48, 0x01, 0xd9, //0x000077c1 addq %rbx, %rcx - 0x4c, 0x39, 0xd9, //0x000077c4 cmpq %r11, %rcx - 0x0f, 0x82, 0x10, 0xff, 0xff, 0xff, //0x000077c7 jb LBB33_4 - 0xe9, 0x35, 0x00, 0x00, 0x00, //0x000077cd jmp LBB33_36 - //0x000077d2 LBB33_31 - 0x48, 0x89, 0xc8, //0x000077d2 movq %rcx, %rax - 0x4c, 0x29, 0xd0, //0x000077d5 subq %r10, %rax - 0x48, 0x8b, 0x3a, //0x000077d8 movq (%rdx), %rdi - 0x48, 0x81, 0xff, 0x00, 0x10, 0x00, 0x00, //0x000077db cmpq $4096, %rdi - 0x0f, 0x83, 0x34, 0x00, 0x00, 0x00, //0x000077e2 jae LBB33_32 - 0x48, 0x98, //0x000077e8 cltq - 0x48, 0x8d, 0x5f, 0x01, //0x000077ea leaq $1(%rdi), %rbx - 0x48, 0x89, 0x1a, //0x000077ee movq %rbx, (%rdx) - 0x48, 0x89, 0x44, 0xfa, 0x08, //0x000077f1 movq %rax, $8(%rdx,%rdi,8) - 0xbb, 0x01, 0x00, 0x00, 0x00, //0x000077f6 movl $1, %ebx - 0x48, 0x01, 0xd9, //0x000077fb addq %rbx, %rcx - 0x4c, 0x39, 0xd9, //0x000077fe cmpq %r11, %rcx - 0x0f, 0x82, 0xd6, 0xfe, 0xff, 0xff, //0x00007801 jb LBB33_4 - //0x00007807 LBB33_36 - 0x4c, 0x29, 0xd1, //0x00007807 subq %r10, %rcx - 0x48, 0x89, 0x0e, //0x0000780a movq %rcx, (%rsi) - 0x31, 0xc0, //0x0000780d xorl %eax, %eax - //0x0000780f LBB33_37 - 0x48, 0x83, 0xc4, 0x08, //0x0000780f addq $8, %rsp - 0x5b, //0x00007813 popq %rbx - 0x41, 0x5c, //0x00007814 popq %r12 - 0x41, 0x5e, //0x00007816 popq %r14 - 0x41, 0x5f, //0x00007818 popq %r15 - 0x5d, //0x0000781a popq %rbp - 0xc3, //0x0000781b retq - //0x0000781c LBB33_32 - 0x48, 0x89, 0x06, //0x0000781c movq %rax, (%rsi) - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x0000781f movq $-1, %rax - 0xe9, 0xe4, 0xff, 0xff, 0xff, //0x00007826 jmp LBB33_37 - //0x0000782b LBB33_17 - 0x48, 0x89, 0x3e, //0x0000782b movq %rdi, (%rsi) - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x0000782e movq $-1, %rax - 0xe9, 0xd5, 0xff, 0xff, 0xff, //0x00007835 jmp LBB33_37 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000783a .p2align 4, 0x90 - //0x00007840 _validate_utf8_fast - 0x55, //0x00007840 pushq %rbp - 0x48, 0x89, 0xe5, //0x00007841 movq %rsp, %rbp - 0x53, //0x00007844 pushq %rbx - 0x50, //0x00007845 pushq %rax - 0x4c, 0x8b, 0x17, //0x00007846 movq (%rdi), %r10 - 0x4c, 0x8b, 0x5f, 0x08, //0x00007849 movq $8(%rdi), %r11 - 0x4b, 0x8d, 0x34, 0x1a, //0x0000784d leaq (%r10,%r11), %rsi - 0x48, 0x83, 0xc6, 0xfd, //0x00007851 addq $-3, %rsi - 0x4c, 0x89, 0xd0, //0x00007855 movq %r10, %rax - 0x4c, 0x39, 0xd6, //0x00007858 cmpq %r10, %rsi - 0x0f, 0x86, 0xdd, 0x00, 0x00, 0x00, //0x0000785b jbe LBB34_14 - 0x4c, 0x89, 0xd0, //0x00007861 movq %r10, %rax - 0xe9, 0x13, 0x00, 0x00, 0x00, //0x00007864 jmp LBB34_3 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007869 .p2align 4, 0x90 - //0x00007870 LBB34_2 - 0x48, 0x01, 0xd0, //0x00007870 addq %rdx, %rax - 0x48, 0x39, 0xf0, //0x00007873 cmpq %rsi, %rax - 0x0f, 0x83, 0xc2, 0x00, 0x00, 0x00, //0x00007876 jae LBB34_14 - //0x0000787c LBB34_3 - 0xba, 0x01, 0x00, 0x00, 0x00, //0x0000787c movl $1, %edx - 0x80, 0x38, 0x00, //0x00007881 cmpb $0, (%rax) - 0x0f, 0x89, 0xe6, 0xff, 0xff, 0xff, //0x00007884 jns LBB34_2 - 0x8b, 0x38, //0x0000788a movl (%rax), %edi - 0x89, 0xf9, //0x0000788c movl %edi, %ecx - 0x81, 0xe1, 0xf0, 0xc0, 0xc0, 0x00, //0x0000788e andl $12632304, %ecx - 0x81, 0xf9, 0xe0, 0x80, 0x80, 0x00, //0x00007894 cmpl $8421600, %ecx - 0x0f, 0x85, 0x30, 0x00, 0x00, 0x00, //0x0000789a jne LBB34_7 - 0x89, 0xf9, //0x000078a0 movl %edi, %ecx - 0x81, 0xe1, 0x0f, 0x20, 0x00, 0x00, //0x000078a2 andl $8207, %ecx - 0x81, 0xf9, 0x0d, 0x20, 0x00, 0x00, //0x000078a8 cmpl $8205, %ecx - 0x0f, 0x84, 0x1c, 0x00, 0x00, 0x00, //0x000078ae je LBB34_7 - 0xba, 0x03, 0x00, 0x00, 0x00, //0x000078b4 movl $3, %edx - 0x85, 0xc9, //0x000078b9 testl %ecx, %ecx - 0x0f, 0x85, 0xaf, 0xff, 0xff, 0xff, //0x000078bb jne LBB34_2 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000078c1 .p2align 4, 0x90 - //0x000078d0 LBB34_7 - 0x89, 0xf9, //0x000078d0 movl %edi, %ecx - 0x81, 0xe1, 0xe0, 0xc0, 0x00, 0x00, //0x000078d2 andl $49376, %ecx - 0x81, 0xf9, 0xc0, 0x80, 0x00, 0x00, //0x000078d8 cmpl $32960, %ecx - 0x0f, 0x85, 0x10, 0x00, 0x00, 0x00, //0x000078de jne LBB34_9 - 0x89, 0xf9, //0x000078e4 movl %edi, %ecx - 0xba, 0x02, 0x00, 0x00, 0x00, //0x000078e6 movl $2, %edx - 0x83, 0xe1, 0x1e, //0x000078eb andl $30, %ecx - 0x0f, 0x85, 0x7c, 0xff, 0xff, 0xff, //0x000078ee jne LBB34_2 - //0x000078f4 LBB34_9 - 0x89, 0xf9, //0x000078f4 movl %edi, %ecx - 0x81, 0xe1, 0xf8, 0xc0, 0xc0, 0xc0, //0x000078f6 andl $-1061109512, %ecx - 0x81, 0xf9, 0xf0, 0x80, 0x80, 0x80, //0x000078fc cmpl $-2139062032, %ecx - 0x0f, 0x85, 0x29, 0x00, 0x00, 0x00, //0x00007902 jne LBB34_13 - 0x89, 0xf9, //0x00007908 movl %edi, %ecx - 0x81, 0xe1, 0x07, 0x30, 0x00, 0x00, //0x0000790a andl $12295, %ecx - 0x0f, 0x84, 0x1b, 0x00, 0x00, 0x00, //0x00007910 je LBB34_13 - 0xba, 0x04, 0x00, 0x00, 0x00, //0x00007916 movl $4, %edx - 0x40, 0xf6, 0xc7, 0x04, //0x0000791b testb $4, %dil - 0x0f, 0x84, 0x4b, 0xff, 0xff, 0xff, //0x0000791f je LBB34_2 - 0x81, 0xe7, 0x03, 0x30, 0x00, 0x00, //0x00007925 andl $12291, %edi - 0x0f, 0x84, 0x3f, 0xff, 0xff, 0xff, //0x0000792b je LBB34_2 - //0x00007931 LBB34_13 - 0x48, 0xf7, 0xd0, //0x00007931 notq %rax - 0x4c, 0x01, 0xd0, //0x00007934 addq %r10, %rax - 0x48, 0x83, 0xc4, 0x08, //0x00007937 addq $8, %rsp - 0x5b, //0x0000793b popq %rbx - 0x5d, //0x0000793c popq %rbp - 0xc3, //0x0000793d retq - //0x0000793e LBB34_14 - 0x4d, 0x01, 0xd3, //0x0000793e addq %r10, %r11 - 0x4c, 0x39, 0xd8, //0x00007941 cmpq %r11, %rax - 0x0f, 0x83, 0x03, 0x01, 0x00, 0x00, //0x00007944 jae LBB34_30 - 0x4c, 0x8d, 0x45, 0xf4, //0x0000794a leaq $-12(%rbp), %r8 - 0x4c, 0x8d, 0x4d, 0xf2, //0x0000794e leaq $-14(%rbp), %r9 - 0xe9, 0x16, 0x00, 0x00, 0x00, //0x00007952 jmp LBB34_17 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007957 .p2align 4, 0x90 - //0x00007960 LBB34_16 - 0x48, 0x83, 0xc0, 0x01, //0x00007960 addq $1, %rax - 0x4c, 0x39, 0xd8, //0x00007964 cmpq %r11, %rax - 0x0f, 0x83, 0xe0, 0x00, 0x00, 0x00, //0x00007967 jae LBB34_30 - //0x0000796d LBB34_17 - 0x80, 0x38, 0x00, //0x0000796d cmpb $0, (%rax) - 0x0f, 0x89, 0xea, 0xff, 0xff, 0xff, //0x00007970 jns LBB34_16 - 0xc6, 0x45, 0xf4, 0x00, //0x00007976 movb $0, $-12(%rbp) - 0xc6, 0x45, 0xf2, 0x00, //0x0000797a movb $0, $-14(%rbp) - 0x4c, 0x89, 0xda, //0x0000797e movq %r11, %rdx - 0x48, 0x29, 0xc2, //0x00007981 subq %rax, %rdx - 0x48, 0x83, 0xfa, 0x02, //0x00007984 cmpq $2, %rdx - 0x0f, 0x82, 0x31, 0x00, 0x00, 0x00, //0x00007988 jb LBB34_21 - 0x0f, 0xb6, 0x30, //0x0000798e movzbl (%rax), %esi - 0x0f, 0xb6, 0x78, 0x01, //0x00007991 movzbl $1(%rax), %edi - 0x40, 0x88, 0x75, 0xf4, //0x00007995 movb %sil, $-12(%rbp) - 0x48, 0x8d, 0x48, 0x02, //0x00007999 leaq $2(%rax), %rcx - 0x48, 0x83, 0xc2, 0xfe, //0x0000799d addq $-2, %rdx - 0x4c, 0x89, 0xcb, //0x000079a1 movq %r9, %rbx - 0x48, 0x85, 0xd2, //0x000079a4 testq %rdx, %rdx - 0x0f, 0x84, 0x25, 0x00, 0x00, 0x00, //0x000079a7 je LBB34_22 - //0x000079ad LBB34_20 - 0x0f, 0xb6, 0x09, //0x000079ad movzbl (%rcx), %ecx - 0x88, 0x0b, //0x000079b0 movb %cl, (%rbx) - 0x0f, 0xb6, 0x75, 0xf4, //0x000079b2 movzbl $-12(%rbp), %esi - 0x0f, 0xb6, 0x4d, 0xf2, //0x000079b6 movzbl $-14(%rbp), %ecx - 0xe9, 0x15, 0x00, 0x00, 0x00, //0x000079ba jmp LBB34_23 - //0x000079bf LBB34_21 - 0x31, 0xf6, //0x000079bf xorl %esi, %esi - 0x31, 0xff, //0x000079c1 xorl %edi, %edi - 0x4c, 0x89, 0xc3, //0x000079c3 movq %r8, %rbx - 0x48, 0x89, 0xc1, //0x000079c6 movq %rax, %rcx - 0x48, 0x85, 0xd2, //0x000079c9 testq %rdx, %rdx - 0x0f, 0x85, 0xdb, 0xff, 0xff, 0xff, //0x000079cc jne LBB34_20 - //0x000079d2 LBB34_22 - 0x31, 0xc9, //0x000079d2 xorl %ecx, %ecx - //0x000079d4 LBB34_23 - 0x0f, 0xb6, 0xc9, //0x000079d4 movzbl %cl, %ecx - 0xc1, 0xe1, 0x10, //0x000079d7 shll $16, %ecx - 0x40, 0x0f, 0xb6, 0xff, //0x000079da movzbl %dil, %edi - 0xc1, 0xe7, 0x08, //0x000079de shll $8, %edi - 0x09, 0xcf, //0x000079e1 orl %ecx, %edi - 0x40, 0x0f, 0xb6, 0xd6, //0x000079e3 movzbl %sil, %edx - 0x09, 0xfa, //0x000079e7 orl %edi, %edx - 0x89, 0xd1, //0x000079e9 movl %edx, %ecx - 0x81, 0xe1, 0xf0, 0xc0, 0xc0, 0x00, //0x000079eb andl $12632304, %ecx - 0x81, 0xf9, 0xe0, 0x80, 0x80, 0x00, //0x000079f1 cmpl $8421600, %ecx - 0x0f, 0x85, 0x23, 0x00, 0x00, 0x00, //0x000079f7 jne LBB34_26 - 0x89, 0xd7, //0x000079fd movl %edx, %edi - 0x81, 0xe7, 0x0f, 0x20, 0x00, 0x00, //0x000079ff andl $8207, %edi - 0x81, 0xff, 0x0d, 0x20, 0x00, 0x00, //0x00007a05 cmpl $8205, %edi - 0x0f, 0x84, 0x0f, 0x00, 0x00, 0x00, //0x00007a0b je LBB34_26 - 0xb9, 0x03, 0x00, 0x00, 0x00, //0x00007a11 movl $3, %ecx - 0x85, 0xff, //0x00007a16 testl %edi, %edi - 0x0f, 0x85, 0x23, 0x00, 0x00, 0x00, //0x00007a18 jne LBB34_28 - 0x90, 0x90, //0x00007a1e .p2align 4, 0x90 - //0x00007a20 LBB34_26 - 0x40, 0xf6, 0xc6, 0x1e, //0x00007a20 testb $30, %sil - 0x0f, 0x84, 0x07, 0xff, 0xff, 0xff, //0x00007a24 je LBB34_13 - 0x81, 0xe2, 0xe0, 0xc0, 0x00, 0x00, //0x00007a2a andl $49376, %edx - 0xb9, 0x02, 0x00, 0x00, 0x00, //0x00007a30 movl $2, %ecx - 0x81, 0xfa, 0xc0, 0x80, 0x00, 0x00, //0x00007a35 cmpl $32960, %edx - 0x0f, 0x85, 0xf0, 0xfe, 0xff, 0xff, //0x00007a3b jne LBB34_13 - //0x00007a41 LBB34_28 - 0x48, 0x01, 0xc8, //0x00007a41 addq %rcx, %rax - 0x4c, 0x39, 0xd8, //0x00007a44 cmpq %r11, %rax - 0x0f, 0x82, 0x20, 0xff, 0xff, 0xff, //0x00007a47 jb LBB34_17 - //0x00007a4d LBB34_30 - 0x31, 0xc0, //0x00007a4d xorl %eax, %eax - 0x48, 0x83, 0xc4, 0x08, //0x00007a4f addq $8, %rsp - 0x5b, //0x00007a53 popq %rbx - 0x5d, //0x00007a54 popq %rbp - 0xc3, //0x00007a55 retq - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007a56 .p2align 4, 0x00 - //0x00007a60 LCPI35_0 - 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, //0x00007a60 QUAD $0x3030303030303030; QUAD $0x3030303030303030 // .space 16, '0000000000000000' - //0x00007a70 .p2align 4, 0x90 - //0x00007a70 _f32toa - 0x55, //0x00007a70 pushq %rbp - 0x48, 0x89, 0xe5, //0x00007a71 movq %rsp, %rbp - 0x41, 0x57, //0x00007a74 pushq %r15 - 0x41, 0x56, //0x00007a76 pushq %r14 - 0x41, 0x55, //0x00007a78 pushq %r13 - 0x41, 0x54, //0x00007a7a pushq %r12 - 0x53, //0x00007a7c pushq %rbx - 0x48, 0x83, 0xec, 0x10, //0x00007a7d subq $16, %rsp - 0x66, 0x0f, 0x7e, 0xc0, //0x00007a81 movd %xmm0, %eax - 0x89, 0xc1, //0x00007a85 movl %eax, %ecx - 0xc1, 0xe9, 0x17, //0x00007a87 shrl $23, %ecx - 0x0f, 0xb6, 0xd1, //0x00007a8a movzbl %cl, %edx - 0x81, 0xfa, 0xff, 0x00, 0x00, 0x00, //0x00007a8d cmpl $255, %edx - 0x0f, 0x84, 0x1c, 0x0e, 0x00, 0x00, //0x00007a93 je LBB35_1 - 0xc6, 0x07, 0x2d, //0x00007a99 movb $45, (%rdi) - 0x41, 0x89, 0xc2, //0x00007a9c movl %eax, %r10d - 0x41, 0xc1, 0xea, 0x1f, //0x00007a9f shrl $31, %r10d - 0x4e, 0x8d, 0x0c, 0x17, //0x00007aa3 leaq (%rdi,%r10), %r9 - 0xa9, 0xff, 0xff, 0xff, 0x7f, //0x00007aa7 testl $2147483647, %eax - 0x0f, 0x84, 0xa9, 0x01, 0x00, 0x00, //0x00007aac je LBB35_3 - 0x25, 0xff, 0xff, 0x7f, 0x00, //0x00007ab2 andl $8388607, %eax - 0x85, 0xd2, //0x00007ab7 testl %edx, %edx - 0x0f, 0x84, 0xfd, 0x0d, 0x00, 0x00, //0x00007ab9 je LBB35_5 - 0x44, 0x8d, 0x98, 0x00, 0x00, 0x80, 0x00, //0x00007abf leal $8388608(%rax), %r11d - 0x44, 0x8d, 0x82, 0x6a, 0xff, 0xff, 0xff, //0x00007ac6 leal $-150(%rdx), %r8d - 0x8d, 0x4a, 0x81, //0x00007acd leal $-127(%rdx), %ecx - 0x83, 0xf9, 0x17, //0x00007ad0 cmpl $23, %ecx - 0x0f, 0x87, 0x1c, 0x00, 0x00, 0x00, //0x00007ad3 ja LBB35_10 - 0xb9, 0x96, 0x00, 0x00, 0x00, //0x00007ad9 movl $150, %ecx - 0x29, 0xd1, //0x00007ade subl %edx, %ecx - 0x48, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x00007ae0 movq $-1, %rsi - 0x48, 0xd3, 0xe6, //0x00007ae7 shlq %cl, %rsi - 0xf7, 0xd6, //0x00007aea notl %esi - 0x44, 0x85, 0xde, //0x00007aec testl %r11d, %esi - 0x0f, 0x84, 0x22, 0x03, 0x00, 0x00, //0x00007aef je LBB35_12 - //0x00007af5 LBB35_10 - 0x4c, 0x89, 0x4d, 0xc8, //0x00007af5 movq %r9, $-56(%rbp) - 0x48, 0x89, 0x7d, 0xd0, //0x00007af9 movq %rdi, $-48(%rbp) - //0x00007afd LBB35_6 - 0x45, 0x89, 0xdf, //0x00007afd movl %r11d, %r15d - 0x41, 0x83, 0xe7, 0x01, //0x00007b00 andl $1, %r15d - 0x85, 0xc0, //0x00007b04 testl %eax, %eax - 0x0f, 0x94, 0xc0, //0x00007b06 sete %al - 0x83, 0xfa, 0x02, //0x00007b09 cmpl $2, %edx - 0x0f, 0x93, 0xc1, //0x00007b0c setae %cl - 0x20, 0xc1, //0x00007b0f andb %al, %cl - 0x0f, 0xb6, 0xc9, //0x00007b11 movzbl %cl, %ecx - 0x45, 0x89, 0xd9, //0x00007b14 movl %r11d, %r9d - 0x41, 0xc1, 0xe1, 0x02, //0x00007b17 shll $2, %r9d - 0x42, 0x8d, 0x04, 0x99, //0x00007b1b leal (%rcx,%r11,4), %eax - 0x83, 0xc0, 0xfe, //0x00007b1f addl $-2, %eax - 0x41, 0x69, 0xd0, 0x13, 0x44, 0x13, 0x00, //0x00007b22 imull $1262611, %r8d, %edx - 0x44, 0x8d, 0xb2, 0x01, 0x01, 0xf8, 0xff, //0x00007b29 leal $-524031(%rdx), %r14d - 0x84, 0xc9, //0x00007b30 testb %cl, %cl - 0x44, 0x0f, 0x44, 0xf2, //0x00007b32 cmovel %edx, %r14d - 0x41, 0xc1, 0xfe, 0x16, //0x00007b36 sarl $22, %r14d - 0x41, 0x69, 0xce, 0xb1, 0x6c, 0xe5, 0xff, //0x00007b3a imull $-1741647, %r14d, %ecx - 0xc1, 0xe9, 0x13, //0x00007b41 shrl $19, %ecx - 0x44, 0x01, 0xc1, //0x00007b44 addl %r8d, %ecx - 0xba, 0x1f, 0x00, 0x00, 0x00, //0x00007b47 movl $31, %edx - 0x44, 0x29, 0xf2, //0x00007b4c subl %r14d, %edx - 0x80, 0xc1, 0x01, //0x00007b4f addb $1, %cl - 0xd3, 0xe0, //0x00007b52 shll %cl, %eax - 0x48, 0x8d, 0x35, 0x05, 0xbe, 0x00, 0x00, //0x00007b54 leaq $48645(%rip), %rsi /* _pow10_ceil_sig_f32.g+0(%rip) */ - 0x4c, 0x8b, 0x2c, 0xd6, //0x00007b5b movq (%rsi,%rdx,8), %r13 - 0x49, 0xf7, 0xe5, //0x00007b5f mulq %r13 - 0x49, 0x89, 0xd0, //0x00007b62 movq %rdx, %r8 - 0x48, 0xc1, 0xe8, 0x20, //0x00007b65 shrq $32, %rax - 0x45, 0x31, 0xe4, //0x00007b69 xorl %r12d, %r12d - 0x83, 0xf8, 0x02, //0x00007b6c cmpl $2, %eax - 0x41, 0x0f, 0x93, 0xc4, //0x00007b6f setae %r12b - 0x41, 0xd3, 0xe1, //0x00007b73 shll %cl, %r9d - 0x46, 0x8d, 0x1c, 0x9d, 0x02, 0x00, 0x00, 0x00, //0x00007b76 leal $2(,%r11,4), %r11d - 0x4c, 0x89, 0xc8, //0x00007b7e movq %r9, %rax - 0x49, 0xf7, 0xe5, //0x00007b81 mulq %r13 - 0x49, 0x89, 0xd1, //0x00007b84 movq %rdx, %r9 - 0x45, 0x09, 0xc4, //0x00007b87 orl %r8d, %r12d - 0x48, 0xc1, 0xe8, 0x20, //0x00007b8a shrq $32, %rax - 0x31, 0xdb, //0x00007b8e xorl %ebx, %ebx - 0x83, 0xf8, 0x02, //0x00007b90 cmpl $2, %eax - 0x0f, 0x93, 0xc3, //0x00007b93 setae %bl - 0x41, 0xd3, 0xe3, //0x00007b96 shll %cl, %r11d - 0x44, 0x09, 0xcb, //0x00007b99 orl %r9d, %ebx - 0x4c, 0x89, 0xd8, //0x00007b9c movq %r11, %rax - 0x49, 0xf7, 0xe5, //0x00007b9f mulq %r13 - 0x48, 0xc1, 0xe8, 0x20, //0x00007ba2 shrq $32, %rax - 0x31, 0xc9, //0x00007ba6 xorl %ecx, %ecx - 0x83, 0xf8, 0x02, //0x00007ba8 cmpl $2, %eax - 0x0f, 0x93, 0xc1, //0x00007bab setae %cl - 0x09, 0xd1, //0x00007bae orl %edx, %ecx - 0x45, 0x01, 0xfc, //0x00007bb0 addl %r15d, %r12d - 0x44, 0x29, 0xf9, //0x00007bb3 subl %r15d, %ecx - 0x83, 0xfb, 0x28, //0x00007bb6 cmpl $40, %ebx - 0x0f, 0x82, 0x42, 0x00, 0x00, 0x00, //0x00007bb9 jb LBB35_31 - 0x44, 0x89, 0xc8, //0x00007bbf movl %r9d, %eax - 0xba, 0xcd, 0xcc, 0xcc, 0xcc, //0x00007bc2 movl $3435973837, %edx - 0x48, 0x0f, 0xaf, 0xd0, //0x00007bc7 imulq %rax, %rdx - 0x48, 0xc1, 0xea, 0x25, //0x00007bcb shrq $37, %rdx - 0x44, 0x89, 0xe0, //0x00007bcf movl %r12d, %eax - 0x48, 0x8d, 0x34, 0xd5, 0x00, 0x00, 0x00, 0x00, //0x00007bd2 leaq (,%rdx,8), %rsi - 0x48, 0x8d, 0x3c, 0xb6, //0x00007bda leaq (%rsi,%rsi,4), %rdi - 0x48, 0x39, 0xc7, //0x00007bde cmpq %rax, %rdi - 0x41, 0x0f, 0x92, 0xc3, //0x00007be1 setb %r11b - 0x48, 0x8d, 0x34, 0xb6, //0x00007be5 leaq (%rsi,%rsi,4), %rsi - 0x48, 0x83, 0xc6, 0x28, //0x00007be9 addq $40, %rsi - 0x89, 0xcf, //0x00007bed movl %ecx, %edi - 0x31, 0xc0, //0x00007bef xorl %eax, %eax - 0x48, 0x39, 0xfe, //0x00007bf1 cmpq %rdi, %rsi - 0x41, 0x0f, 0x96, 0xc0, //0x00007bf4 setbe %r8b - 0x45, 0x38, 0xc3, //0x00007bf8 cmpb %r8b, %r11b - 0x0f, 0x84, 0xb7, 0x00, 0x00, 0x00, //0x00007bfb je LBB35_8 - //0x00007c01 LBB35_31 - 0x4d, 0x89, 0xc8, //0x00007c01 movq %r9, %r8 - 0x49, 0xc1, 0xe8, 0x02, //0x00007c04 shrq $2, %r8 - 0x44, 0x89, 0xca, //0x00007c08 movl %r9d, %edx - 0x83, 0xe2, 0xfc, //0x00007c0b andl $-4, %edx - 0x41, 0x39, 0xd4, //0x00007c0e cmpl %edx, %r12d - 0x40, 0x0f, 0x97, 0xc6, //0x00007c11 seta %sil - 0x8d, 0x7a, 0x04, //0x00007c15 leal $4(%rdx), %edi - 0x39, 0xcf, //0x00007c18 cmpl %ecx, %edi - 0x0f, 0x96, 0xc0, //0x00007c1a setbe %al - 0x40, 0x30, 0xf0, //0x00007c1d xorb %sil, %al - 0x0f, 0x84, 0x48, 0x00, 0x00, 0x00, //0x00007c20 je LBB35_32 - 0x83, 0xca, 0x02, //0x00007c26 orl $2, %edx - 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00007c29 movl $1, %eax - 0x39, 0xd3, //0x00007c2e cmpl %edx, %ebx - 0x4c, 0x8b, 0x65, 0xc8, //0x00007c30 movq $-56(%rbp), %r12 - 0x0f, 0x87, 0x0e, 0x00, 0x00, 0x00, //0x00007c34 ja LBB35_35 - 0x0f, 0x94, 0xc0, //0x00007c3a sete %al - 0x41, 0xc0, 0xe9, 0x02, //0x00007c3d shrb $2, %r9b - 0x41, 0x20, 0xc1, //0x00007c41 andb %al, %r9b - 0x41, 0x0f, 0xb6, 0xc1, //0x00007c44 movzbl %r9b, %eax - //0x00007c48 LBB35_35 - 0x44, 0x01, 0xc0, //0x00007c48 addl %r8d, %eax - 0x3d, 0xa0, 0x86, 0x01, 0x00, //0x00007c4b cmpl $100000, %eax - 0x0f, 0x83, 0x30, 0x00, 0x00, 0x00, //0x00007c50 jae LBB35_37 - 0xe9, 0x75, 0x00, 0x00, 0x00, //0x00007c56 jmp LBB35_40 - //0x00007c5b LBB35_3 - 0x41, 0xc6, 0x01, 0x30, //0x00007c5b movb $48, (%r9) - 0x41, 0x29, 0xf9, //0x00007c5f subl %edi, %r9d - 0x41, 0x83, 0xc1, 0x01, //0x00007c62 addl $1, %r9d - 0x44, 0x89, 0xc8, //0x00007c66 movl %r9d, %eax - 0xe9, 0x38, 0x0c, 0x00, 0x00, //0x00007c69 jmp LBB35_156 - //0x00007c6e LBB35_32 - 0x39, 0xf9, //0x00007c6e cmpl %edi, %ecx - 0x41, 0x83, 0xd8, 0xff, //0x00007c70 sbbl $-1, %r8d - 0x44, 0x89, 0xc0, //0x00007c74 movl %r8d, %eax - 0x4c, 0x8b, 0x65, 0xc8, //0x00007c77 movq $-56(%rbp), %r12 - 0x3d, 0xa0, 0x86, 0x01, 0x00, //0x00007c7b cmpl $100000, %eax - 0x0f, 0x82, 0x4a, 0x00, 0x00, 0x00, //0x00007c80 jb LBB35_40 - //0x00007c86 LBB35_37 - 0x41, 0xbd, 0x06, 0x00, 0x00, 0x00, //0x00007c86 movl $6, %r13d - 0x3d, 0x40, 0x42, 0x0f, 0x00, //0x00007c8c cmpl $1000000, %eax - 0x0f, 0x82, 0x77, 0x00, 0x00, 0x00, //0x00007c91 jb LBB35_45 - 0x41, 0xbd, 0x07, 0x00, 0x00, 0x00, //0x00007c97 movl $7, %r13d - 0x3d, 0x80, 0x96, 0x98, 0x00, //0x00007c9d cmpl $10000000, %eax - 0x0f, 0x82, 0x66, 0x00, 0x00, 0x00, //0x00007ca2 jb LBB35_45 - 0x3d, 0x00, 0xe1, 0xf5, 0x05, //0x00007ca8 cmpl $100000000, %eax - 0x41, 0xbd, 0x09, 0x00, 0x00, 0x00, //0x00007cad movl $9, %r13d - 0xe9, 0x52, 0x00, 0x00, 0x00, //0x00007cb3 jmp LBB35_44 - //0x00007cb8 LBB35_8 - 0x44, 0x88, 0xc0, //0x00007cb8 movb %r8b, %al - 0x01, 0xd0, //0x00007cbb addl %edx, %eax - 0x41, 0x83, 0xc6, 0x01, //0x00007cbd addl $1, %r14d - 0x4c, 0x8b, 0x65, 0xc8, //0x00007cc1 movq $-56(%rbp), %r12 - 0x3d, 0xa0, 0x86, 0x01, 0x00, //0x00007cc5 cmpl $100000, %eax - 0x0f, 0x83, 0xb6, 0xff, 0xff, 0xff, //0x00007cca jae LBB35_37 - //0x00007cd0 LBB35_40 - 0x41, 0xbd, 0x01, 0x00, 0x00, 0x00, //0x00007cd0 movl $1, %r13d - 0x83, 0xf8, 0x0a, //0x00007cd6 cmpl $10, %eax - 0x0f, 0x82, 0x2f, 0x00, 0x00, 0x00, //0x00007cd9 jb LBB35_45 - 0x41, 0xbd, 0x02, 0x00, 0x00, 0x00, //0x00007cdf movl $2, %r13d - 0x83, 0xf8, 0x64, //0x00007ce5 cmpl $100, %eax - 0x0f, 0x82, 0x20, 0x00, 0x00, 0x00, //0x00007ce8 jb LBB35_45 - 0x41, 0xbd, 0x03, 0x00, 0x00, 0x00, //0x00007cee movl $3, %r13d - 0x3d, 0xe8, 0x03, 0x00, 0x00, //0x00007cf4 cmpl $1000, %eax - 0x0f, 0x82, 0x0f, 0x00, 0x00, 0x00, //0x00007cf9 jb LBB35_45 - 0x3d, 0x10, 0x27, 0x00, 0x00, //0x00007cff cmpl $10000, %eax - 0x41, 0xbd, 0x05, 0x00, 0x00, 0x00, //0x00007d04 movl $5, %r13d - //0x00007d0a LBB35_44 - 0x41, 0x83, 0xdd, 0x00, //0x00007d0a sbbl $0, %r13d - //0x00007d0e LBB35_45 - 0x47, 0x8d, 0x0c, 0x2e, //0x00007d0e leal (%r14,%r13), %r9d - 0x43, 0x8d, 0x0c, 0x2e, //0x00007d12 leal (%r14,%r13), %ecx - 0x83, 0xc1, 0x05, //0x00007d16 addl $5, %ecx - 0x83, 0xf9, 0x1b, //0x00007d19 cmpl $27, %ecx - 0x0f, 0x82, 0x6d, 0x00, 0x00, 0x00, //0x00007d1c jb LBB35_70 - 0x44, 0x89, 0xea, //0x00007d22 movl %r13d, %edx - 0x49, 0x8d, 0x0c, 0x14, //0x00007d25 leaq (%r12,%rdx), %rcx - 0x48, 0x83, 0xc1, 0x01, //0x00007d29 addq $1, %rcx - 0x3d, 0x10, 0x27, 0x00, 0x00, //0x00007d2d cmpl $10000, %eax - 0x0f, 0x82, 0xc6, 0x00, 0x00, 0x00, //0x00007d32 jb LBB35_47 - 0x89, 0xc6, //0x00007d38 movl %eax, %esi - 0xbb, 0x59, 0x17, 0xb7, 0xd1, //0x00007d3a movl $3518437209, %ebx - 0x48, 0x0f, 0xaf, 0xde, //0x00007d3f imulq %rsi, %rbx - 0x48, 0xc1, 0xeb, 0x2d, //0x00007d43 shrq $45, %rbx - 0x44, 0x69, 0xc3, 0xf0, 0xd8, 0xff, 0xff, //0x00007d47 imull $-10000, %ebx, %r8d - 0x41, 0x01, 0xc0, //0x00007d4e addl %eax, %r8d - 0x4c, 0x8b, 0x6d, 0xd0, //0x00007d51 movq $-48(%rbp), %r13 - 0x0f, 0x84, 0x48, 0x03, 0x00, 0x00, //0x00007d55 je LBB35_49 - 0x44, 0x89, 0xc0, //0x00007d5b movl %r8d, %eax - 0x48, 0x69, 0xc0, 0x1f, 0x85, 0xeb, 0x51, //0x00007d5e imulq $1374389535, %rax, %rax - 0x48, 0xc1, 0xe8, 0x25, //0x00007d65 shrq $37, %rax - 0x6b, 0xf0, 0x64, //0x00007d69 imull $100, %eax, %esi - 0x41, 0x29, 0xf0, //0x00007d6c subl %esi, %r8d - 0x48, 0x8d, 0x35, 0x6a, 0x48, 0x00, 0x00, //0x00007d6f leaq $18538(%rip), %rsi /* _Digits+0(%rip) */ - 0x42, 0x0f, 0xb7, 0x3c, 0x46, //0x00007d76 movzwl (%rsi,%r8,2), %edi - 0x66, 0x89, 0x79, 0xfe, //0x00007d7b movw %di, $-2(%rcx) - 0x0f, 0xb7, 0x04, 0x46, //0x00007d7f movzwl (%rsi,%rax,2), %eax - 0x66, 0x89, 0x41, 0xfc, //0x00007d83 movw %ax, $-4(%rcx) - 0x45, 0x31, 0xc0, //0x00007d87 xorl %r8d, %r8d - 0xe9, 0x1a, 0x03, 0x00, 0x00, //0x00007d8a jmp LBB35_51 - //0x00007d8f LBB35_70 - 0x45, 0x89, 0xe8, //0x00007d8f movl %r13d, %r8d - 0x45, 0x85, 0xf6, //0x00007d92 testl %r14d, %r14d - 0x0f, 0x88, 0x1c, 0x01, 0x00, 0x00, //0x00007d95 js LBB35_71 - 0x4b, 0x8d, 0x14, 0x04, //0x00007d9b leaq (%r12,%r8), %rdx - 0x3d, 0x10, 0x27, 0x00, 0x00, //0x00007d9f cmpl $10000, %eax - 0x0f, 0x82, 0x77, 0x01, 0x00, 0x00, //0x00007da4 jb LBB35_124 - 0x89, 0xc1, //0x00007daa movl %eax, %ecx - 0xbe, 0x59, 0x17, 0xb7, 0xd1, //0x00007dac movl $3518437209, %esi - 0x48, 0x0f, 0xaf, 0xf1, //0x00007db1 imulq %rcx, %rsi - 0x48, 0xc1, 0xee, 0x2d, //0x00007db5 shrq $45, %rsi - 0x69, 0xce, 0xf0, 0xd8, 0xff, 0xff, //0x00007db9 imull $-10000, %esi, %ecx - 0x01, 0xc1, //0x00007dbf addl %eax, %ecx - 0x48, 0x69, 0xc1, 0x1f, 0x85, 0xeb, 0x51, //0x00007dc1 imulq $1374389535, %rcx, %rax - 0x48, 0xc1, 0xe8, 0x25, //0x00007dc8 shrq $37, %rax - 0x6b, 0xf8, 0x64, //0x00007dcc imull $100, %eax, %edi - 0x29, 0xf9, //0x00007dcf subl %edi, %ecx - 0x48, 0x8d, 0x3d, 0x08, 0x48, 0x00, 0x00, //0x00007dd1 leaq $18440(%rip), %rdi /* _Digits+0(%rip) */ - 0x0f, 0xb7, 0x0c, 0x4f, //0x00007dd8 movzwl (%rdi,%rcx,2), %ecx - 0x66, 0x89, 0x4a, 0xfe, //0x00007ddc movw %cx, $-2(%rdx) - 0x48, 0x8d, 0x4a, 0xfc, //0x00007de0 leaq $-4(%rdx), %rcx - 0x0f, 0xb7, 0x04, 0x47, //0x00007de4 movzwl (%rdi,%rax,2), %eax - 0x66, 0x89, 0x42, 0xfc, //0x00007de8 movw %ax, $-4(%rdx) - 0x89, 0xf0, //0x00007dec movl %esi, %eax - 0x83, 0xf8, 0x64, //0x00007dee cmpl $100, %eax - 0x0f, 0x83, 0x36, 0x01, 0x00, 0x00, //0x00007df1 jae LBB35_128 - //0x00007df7 LBB35_127 - 0x89, 0xc3, //0x00007df7 movl %eax, %ebx - 0xe9, 0x70, 0x01, 0x00, 0x00, //0x00007df9 jmp LBB35_130 - //0x00007dfe LBB35_47 - 0x45, 0x31, 0xc0, //0x00007dfe xorl %r8d, %r8d - 0x89, 0xc3, //0x00007e01 movl %eax, %ebx - 0x4c, 0x8b, 0x6d, 0xd0, //0x00007e03 movq $-48(%rbp), %r13 - 0x83, 0xfb, 0x64, //0x00007e07 cmpl $100, %ebx - 0x0f, 0x83, 0xa6, 0x02, 0x00, 0x00, //0x00007e0a jae LBB35_54 - //0x00007e10 LBB35_53 - 0x89, 0xd8, //0x00007e10 movl %ebx, %eax - 0xe9, 0xe8, 0x02, 0x00, 0x00, //0x00007e12 jmp LBB35_56 - //0x00007e17 LBB35_12 - 0x41, 0xd3, 0xeb, //0x00007e17 shrl %cl, %r11d - 0x41, 0x81, 0xfb, 0xa0, 0x86, 0x01, 0x00, //0x00007e1a cmpl $100000, %r11d - 0x0f, 0x82, 0xc8, 0x01, 0x00, 0x00, //0x00007e21 jb LBB35_18 - 0xb9, 0x06, 0x00, 0x00, 0x00, //0x00007e27 movl $6, %ecx - 0x41, 0x81, 0xfb, 0x40, 0x42, 0x0f, 0x00, //0x00007e2c cmpl $1000000, %r11d - 0x0f, 0x82, 0x22, 0x00, 0x00, 0x00, //0x00007e33 jb LBB35_16 - 0xb9, 0x07, 0x00, 0x00, 0x00, //0x00007e39 movl $7, %ecx - 0x41, 0x81, 0xfb, 0x80, 0x96, 0x98, 0x00, //0x00007e3e cmpl $10000000, %r11d - 0x0f, 0x82, 0x10, 0x00, 0x00, 0x00, //0x00007e45 jb LBB35_16 - 0x41, 0x81, 0xfb, 0x00, 0xe1, 0xf5, 0x05, //0x00007e4b cmpl $100000000, %r11d - 0xb9, 0x09, 0x00, 0x00, 0x00, //0x00007e52 movl $9, %ecx - 0x48, 0x83, 0xd9, 0x00, //0x00007e57 sbbq $0, %rcx - //0x00007e5b LBB35_16 - 0x4c, 0x01, 0xc9, //0x00007e5b addq %r9, %rcx - //0x00007e5e LBB35_17 - 0x44, 0x89, 0xd8, //0x00007e5e movl %r11d, %eax - 0xba, 0x59, 0x17, 0xb7, 0xd1, //0x00007e61 movl $3518437209, %edx - 0x48, 0x0f, 0xaf, 0xd0, //0x00007e66 imulq %rax, %rdx - 0x48, 0xc1, 0xea, 0x2d, //0x00007e6a shrq $45, %rdx - 0x69, 0xc2, 0xf0, 0xd8, 0xff, 0xff, //0x00007e6e imull $-10000, %edx, %eax - 0x44, 0x01, 0xd8, //0x00007e74 addl %r11d, %eax - 0x48, 0x69, 0xf0, 0x1f, 0x85, 0xeb, 0x51, //0x00007e77 imulq $1374389535, %rax, %rsi - 0x48, 0xc1, 0xee, 0x25, //0x00007e7e shrq $37, %rsi - 0x6b, 0xde, 0x64, //0x00007e82 imull $100, %esi, %ebx - 0x29, 0xd8, //0x00007e85 subl %ebx, %eax - 0x48, 0x8d, 0x1d, 0x52, 0x47, 0x00, 0x00, //0x00007e87 leaq $18258(%rip), %rbx /* _Digits+0(%rip) */ - 0x0f, 0xb7, 0x04, 0x43, //0x00007e8e movzwl (%rbx,%rax,2), %eax - 0x66, 0x89, 0x41, 0xfe, //0x00007e92 movw %ax, $-2(%rcx) - 0x0f, 0xb7, 0x04, 0x73, //0x00007e96 movzwl (%rbx,%rsi,2), %eax - 0x66, 0x89, 0x41, 0xfc, //0x00007e9a movw %ax, $-4(%rcx) - 0x48, 0x89, 0xc8, //0x00007e9e movq %rcx, %rax - 0x48, 0x83, 0xc1, 0xfc, //0x00007ea1 addq $-4, %rcx - 0x41, 0x89, 0xd3, //0x00007ea5 movl %edx, %r11d - 0x41, 0x83, 0xfb, 0x64, //0x00007ea8 cmpl $100, %r11d - 0x0f, 0x83, 0x7d, 0x01, 0x00, 0x00, //0x00007eac jae LBB35_25 - 0xe9, 0xbb, 0x01, 0x00, 0x00, //0x00007eb2 jmp LBB35_27 - //0x00007eb7 LBB35_71 - 0x45, 0x85, 0xc9, //0x00007eb7 testl %r9d, %r9d - 0x0f, 0x8f, 0x22, 0x06, 0x00, 0x00, //0x00007eba jg LBB35_84 - 0x66, 0x41, 0xc7, 0x04, 0x24, 0x30, 0x2e, //0x00007ec0 movw $11824, (%r12) - 0x49, 0x83, 0xc4, 0x02, //0x00007ec7 addq $2, %r12 - 0x45, 0x85, 0xc9, //0x00007ecb testl %r9d, %r9d - 0x0f, 0x89, 0x0e, 0x06, 0x00, 0x00, //0x00007ece jns LBB35_84 - 0x45, 0x89, 0xeb, //0x00007ed4 movl %r13d, %r11d - 0x41, 0xf7, 0xd3, //0x00007ed7 notl %r11d - 0x45, 0x29, 0xf3, //0x00007eda subl %r14d, %r11d - 0x31, 0xc9, //0x00007edd xorl %ecx, %ecx - 0x41, 0x83, 0xfb, 0x1f, //0x00007edf cmpl $31, %r11d - 0x0f, 0x82, 0xe0, 0x05, 0x00, 0x00, //0x00007ee3 jb LBB35_82 - 0x4c, 0x89, 0xe7, //0x00007ee9 movq %r12, %rdi - 0x49, 0x83, 0xc3, 0x01, //0x00007eec addq $1, %r11 - 0x4c, 0x89, 0xd9, //0x00007ef0 movq %r11, %rcx - 0x48, 0x83, 0xe1, 0xe0, //0x00007ef3 andq $-32, %rcx - 0x48, 0x8d, 0x51, 0xe0, //0x00007ef7 leaq $-32(%rcx), %rdx - 0x49, 0x89, 0xd4, //0x00007efb movq %rdx, %r12 - 0x49, 0xc1, 0xec, 0x05, //0x00007efe shrq $5, %r12 - 0x49, 0x83, 0xc4, 0x01, //0x00007f02 addq $1, %r12 - 0x45, 0x89, 0xe7, //0x00007f06 movl %r12d, %r15d - 0x41, 0x83, 0xe7, 0x07, //0x00007f09 andl $7, %r15d - 0x48, 0x81, 0xfa, 0xe0, 0x00, 0x00, 0x00, //0x00007f0d cmpq $224, %rdx - 0x0f, 0x83, 0xbe, 0x04, 0x00, 0x00, //0x00007f14 jae LBB35_76 - 0x31, 0xd2, //0x00007f1a xorl %edx, %edx - 0xe9, 0x5c, 0x05, 0x00, 0x00, //0x00007f1c jmp LBB35_78 - //0x00007f21 LBB35_124 - 0x48, 0x89, 0xd1, //0x00007f21 movq %rdx, %rcx - 0x83, 0xf8, 0x64, //0x00007f24 cmpl $100, %eax - 0x0f, 0x82, 0xca, 0xfe, 0xff, 0xff, //0x00007f27 jb LBB35_127 - //0x00007f2d LBB35_128 - 0x48, 0x83, 0xc1, 0xff, //0x00007f2d addq $-1, %rcx - 0x4c, 0x8d, 0x1d, 0xa8, 0x46, 0x00, 0x00, //0x00007f31 leaq $18088(%rip), %r11 /* _Digits+0(%rip) */ - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007f38 .p2align 4, 0x90 - //0x00007f40 LBB35_129 - 0x89, 0xc6, //0x00007f40 movl %eax, %esi - 0x48, 0x69, 0xde, 0x1f, 0x85, 0xeb, 0x51, //0x00007f42 imulq $1374389535, %rsi, %rbx - 0x48, 0xc1, 0xeb, 0x25, //0x00007f49 shrq $37, %rbx - 0x6b, 0xf3, 0x64, //0x00007f4d imull $100, %ebx, %esi - 0x89, 0xc7, //0x00007f50 movl %eax, %edi - 0x29, 0xf7, //0x00007f52 subl %esi, %edi - 0x41, 0x0f, 0xb7, 0x34, 0x7b, //0x00007f54 movzwl (%r11,%rdi,2), %esi - 0x66, 0x89, 0x71, 0xff, //0x00007f59 movw %si, $-1(%rcx) - 0x48, 0x83, 0xc1, 0xfe, //0x00007f5d addq $-2, %rcx - 0x3d, 0x0f, 0x27, 0x00, 0x00, //0x00007f61 cmpl $9999, %eax - 0x89, 0xd8, //0x00007f66 movl %ebx, %eax - 0x0f, 0x87, 0xd2, 0xff, 0xff, 0xff, //0x00007f68 ja LBB35_129 - //0x00007f6e LBB35_130 - 0x4d, 0x63, 0xe9, //0x00007f6e movslq %r9d, %r13 - 0x83, 0xfb, 0x0a, //0x00007f71 cmpl $10, %ebx - 0x0f, 0x82, 0x23, 0x00, 0x00, 0x00, //0x00007f74 jb LBB35_132 - 0x89, 0xd8, //0x00007f7a movl %ebx, %eax - 0x48, 0x8d, 0x0d, 0x5d, 0x46, 0x00, 0x00, //0x00007f7c leaq $18013(%rip), %rcx /* _Digits+0(%rip) */ - 0x0f, 0xb7, 0x04, 0x41, //0x00007f83 movzwl (%rcx,%rax,2), %eax - 0x66, 0x41, 0x89, 0x04, 0x24, //0x00007f87 movw %ax, (%r12) - 0x4d, 0x01, 0xec, //0x00007f8c addq %r13, %r12 - 0x4d, 0x39, 0xe8, //0x00007f8f cmpq %r13, %r8 - 0x0f, 0x8c, 0x18, 0x00, 0x00, 0x00, //0x00007f92 jl LBB35_135 - 0xe9, 0xdd, 0x03, 0x00, 0x00, //0x00007f98 jmp LBB35_134 - //0x00007f9d LBB35_132 - 0x80, 0xc3, 0x30, //0x00007f9d addb $48, %bl - 0x41, 0x88, 0x1c, 0x24, //0x00007fa0 movb %bl, (%r12) - 0x4d, 0x01, 0xec, //0x00007fa4 addq %r13, %r12 - 0x4d, 0x39, 0xe8, //0x00007fa7 cmpq %r13, %r8 - 0x0f, 0x8d, 0xca, 0x03, 0x00, 0x00, //0x00007faa jge LBB35_134 - //0x00007fb0 LBB35_135 - 0x48, 0x8b, 0x45, 0xd0, //0x00007fb0 movq $-48(%rbp), %rax - 0x4c, 0x01, 0xd0, //0x00007fb4 addq %r10, %rax - 0x4d, 0x8d, 0x34, 0x00, //0x00007fb7 leaq (%r8,%rax), %r14 - 0x49, 0x83, 0xc6, 0x01, //0x00007fbb addq $1, %r14 - 0x49, 0x01, 0xc5, //0x00007fbf addq %rax, %r13 - 0x4d, 0x39, 0xee, //0x00007fc2 cmpq %r13, %r14 - 0x4d, 0x89, 0xef, //0x00007fc5 movq %r13, %r15 - 0x4d, 0x0f, 0x47, 0xfe, //0x00007fc8 cmovaq %r14, %r15 - 0x4e, 0x8d, 0x1c, 0x00, //0x00007fcc leaq (%rax,%r8), %r11 - 0x4d, 0x29, 0xdf, //0x00007fd0 subq %r11, %r15 - 0x49, 0x83, 0xff, 0x08, //0x00007fd3 cmpq $8, %r15 - 0x0f, 0x82, 0xd3, 0x03, 0x00, 0x00, //0x00007fd7 jb LBB35_152 - 0x49, 0x83, 0xff, 0x20, //0x00007fdd cmpq $32, %r15 - 0x0f, 0x83, 0xfb, 0x01, 0x00, 0x00, //0x00007fe1 jae LBB35_141 - 0x45, 0x31, 0xc9, //0x00007fe7 xorl %r9d, %r9d - 0xe9, 0x3b, 0x03, 0x00, 0x00, //0x00007fea jmp LBB35_138 - //0x00007fef LBB35_18 - 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00007fef movl $1, %eax - 0x41, 0x83, 0xfb, 0x0a, //0x00007ff4 cmpl $10, %r11d - 0x0f, 0x82, 0x21, 0x00, 0x00, 0x00, //0x00007ff8 jb LBB35_21 - 0xb8, 0x02, 0x00, 0x00, 0x00, //0x00007ffe movl $2, %eax - 0x41, 0x83, 0xfb, 0x64, //0x00008003 cmpl $100, %r11d - 0x0f, 0x82, 0x12, 0x00, 0x00, 0x00, //0x00008007 jb LBB35_21 - 0xb8, 0x03, 0x00, 0x00, 0x00, //0x0000800d movl $3, %eax - 0x41, 0x81, 0xfb, 0xe8, 0x03, 0x00, 0x00, //0x00008012 cmpl $1000, %r11d - 0x0f, 0x83, 0x67, 0x03, 0x00, 0x00, //0x00008019 jae LBB35_23 - //0x0000801f LBB35_21 - 0x4c, 0x01, 0xc8, //0x0000801f addq %r9, %rax - 0x48, 0x89, 0xc1, //0x00008022 movq %rax, %rcx - 0x41, 0x83, 0xfb, 0x64, //0x00008025 cmpl $100, %r11d - 0x0f, 0x82, 0x43, 0x00, 0x00, 0x00, //0x00008029 jb LBB35_27 - //0x0000802f LBB35_25 - 0x48, 0x83, 0xc1, 0xff, //0x0000802f addq $-1, %rcx - 0x4c, 0x8d, 0x05, 0xa6, 0x45, 0x00, 0x00, //0x00008033 leaq $17830(%rip), %r8 /* _Digits+0(%rip) */ - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000803a .p2align 4, 0x90 - //0x00008040 LBB35_26 - 0x44, 0x89, 0xde, //0x00008040 movl %r11d, %esi - 0x44, 0x89, 0xdb, //0x00008043 movl %r11d, %ebx - 0x4c, 0x69, 0xdb, 0x1f, 0x85, 0xeb, 0x51, //0x00008046 imulq $1374389535, %rbx, %r11 - 0x49, 0xc1, 0xeb, 0x25, //0x0000804d shrq $37, %r11 - 0x41, 0x6b, 0xdb, 0x64, //0x00008051 imull $100, %r11d, %ebx - 0x89, 0xf2, //0x00008055 movl %esi, %edx - 0x29, 0xda, //0x00008057 subl %ebx, %edx - 0x41, 0x0f, 0xb7, 0x14, 0x50, //0x00008059 movzwl (%r8,%rdx,2), %edx - 0x66, 0x89, 0x51, 0xff, //0x0000805e movw %dx, $-1(%rcx) - 0x48, 0x83, 0xc1, 0xfe, //0x00008062 addq $-2, %rcx - 0x81, 0xfe, 0x0f, 0x27, 0x00, 0x00, //0x00008066 cmpl $9999, %esi - 0x0f, 0x87, 0xce, 0xff, 0xff, 0xff, //0x0000806c ja LBB35_26 - //0x00008072 LBB35_27 - 0x41, 0x83, 0xfb, 0x0a, //0x00008072 cmpl $10, %r11d - 0x0f, 0x82, 0x19, 0x00, 0x00, 0x00, //0x00008076 jb LBB35_29 - 0x44, 0x89, 0xd9, //0x0000807c movl %r11d, %ecx - 0x48, 0x8d, 0x15, 0x5a, 0x45, 0x00, 0x00, //0x0000807f leaq $17754(%rip), %rdx /* _Digits+0(%rip) */ - 0x0f, 0xb7, 0x0c, 0x4a, //0x00008086 movzwl (%rdx,%rcx,2), %ecx - 0x66, 0x41, 0x89, 0x09, //0x0000808a movw %cx, (%r9) - 0x29, 0xf8, //0x0000808e subl %edi, %eax - 0xe9, 0x11, 0x08, 0x00, 0x00, //0x00008090 jmp LBB35_156 - //0x00008095 LBB35_29 - 0x41, 0x80, 0xc3, 0x30, //0x00008095 addb $48, %r11b - 0x45, 0x88, 0x19, //0x00008099 movb %r11b, (%r9) - 0x29, 0xf8, //0x0000809c subl %edi, %eax - 0xe9, 0x03, 0x08, 0x00, 0x00, //0x0000809e jmp LBB35_156 - //0x000080a3 LBB35_49 - 0x41, 0xb8, 0x04, 0x00, 0x00, 0x00, //0x000080a3 movl $4, %r8d - //0x000080a9 LBB35_51 - 0x48, 0x83, 0xc1, 0xfc, //0x000080a9 addq $-4, %rcx - 0x83, 0xfb, 0x64, //0x000080ad cmpl $100, %ebx - 0x0f, 0x82, 0x5a, 0xfd, 0xff, 0xff, //0x000080b0 jb LBB35_53 - //0x000080b6 LBB35_54 - 0x48, 0x83, 0xc1, 0xff, //0x000080b6 addq $-1, %rcx - 0x4c, 0x8d, 0x1d, 0x1f, 0x45, 0x00, 0x00, //0x000080ba leaq $17695(%rip), %r11 /* _Digits+0(%rip) */ - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000080c1 .p2align 4, 0x90 - //0x000080d0 LBB35_55 - 0x89, 0xd8, //0x000080d0 movl %ebx, %eax - 0x48, 0x69, 0xc0, 0x1f, 0x85, 0xeb, 0x51, //0x000080d2 imulq $1374389535, %rax, %rax - 0x48, 0xc1, 0xe8, 0x25, //0x000080d9 shrq $37, %rax - 0x6b, 0xf0, 0x64, //0x000080dd imull $100, %eax, %esi - 0x89, 0xdf, //0x000080e0 movl %ebx, %edi - 0x29, 0xf7, //0x000080e2 subl %esi, %edi - 0x41, 0x0f, 0xb7, 0x34, 0x7b, //0x000080e4 movzwl (%r11,%rdi,2), %esi - 0x66, 0x89, 0x71, 0xff, //0x000080e9 movw %si, $-1(%rcx) - 0x48, 0x83, 0xc1, 0xfe, //0x000080ed addq $-2, %rcx - 0x81, 0xfb, 0x0f, 0x27, 0x00, 0x00, //0x000080f1 cmpl $9999, %ebx - 0x89, 0xc3, //0x000080f7 movl %eax, %ebx - 0x0f, 0x87, 0xd1, 0xff, 0xff, 0xff, //0x000080f9 ja LBB35_55 - //0x000080ff LBB35_56 - 0x49, 0x8d, 0x4c, 0x24, 0x01, //0x000080ff leaq $1(%r12), %rcx - 0x83, 0xf8, 0x0a, //0x00008104 cmpl $10, %eax - 0x0f, 0x82, 0x1f, 0x00, 0x00, 0x00, //0x00008107 jb LBB35_58 - 0x89, 0xc6, //0x0000810d movl %eax, %esi - 0x48, 0x8d, 0x3d, 0xca, 0x44, 0x00, 0x00, //0x0000810f leaq $17610(%rip), %rdi /* _Digits+0(%rip) */ - 0x8a, 0x04, 0x77, //0x00008116 movb (%rdi,%rsi,2), %al - 0x8a, 0x5c, 0x77, 0x01, //0x00008119 movb $1(%rdi,%rsi,2), %bl - 0x41, 0x88, 0x44, 0x24, 0x01, //0x0000811d movb %al, $1(%r12) - 0x41, 0x88, 0x5c, 0x24, 0x02, //0x00008122 movb %bl, $2(%r12) - 0xe9, 0x04, 0x00, 0x00, 0x00, //0x00008127 jmp LBB35_59 - //0x0000812c LBB35_58 - 0x04, 0x30, //0x0000812c addb $48, %al - 0x88, 0x01, //0x0000812e movb %al, (%rcx) - //0x00008130 LBB35_59 - 0x4d, 0x29, 0xc2, //0x00008130 subq %r8, %r10 - 0x4d, 0x01, 0xea, //0x00008133 addq %r13, %r10 - 0xbb, 0x01, 0x00, 0x00, 0x00, //0x00008136 movl $1, %ebx - 0x4c, 0x29, 0xc3, //0x0000813b subq %r8, %rbx - 0x90, 0x90, //0x0000813e .p2align 4, 0x90 - //0x00008140 LBB35_60 - 0x48, 0x83, 0xc3, 0xff, //0x00008140 addq $-1, %rbx - 0x41, 0x80, 0x3c, 0x12, 0x30, //0x00008144 cmpb $48, (%r10,%rdx) - 0x4d, 0x8d, 0x52, 0xff, //0x00008149 leaq $-1(%r10), %r10 - 0x0f, 0x84, 0xed, 0xff, 0xff, 0xff, //0x0000814d je LBB35_60 - 0x41, 0x88, 0x04, 0x24, //0x00008153 movb %al, (%r12) - 0x48, 0x01, 0xd3, //0x00008157 addq %rdx, %rbx - 0x48, 0x83, 0xfb, 0x02, //0x0000815a cmpq $2, %rbx - 0x0f, 0x8c, 0x46, 0x00, 0x00, 0x00, //0x0000815e jl LBB35_62 - 0x49, 0x8d, 0x04, 0x12, //0x00008164 leaq (%r10,%rdx), %rax - 0x48, 0x83, 0xc0, 0x02, //0x00008168 addq $2, %rax - 0xc6, 0x01, 0x2e, //0x0000816c movb $46, (%rcx) - 0xc6, 0x00, 0x65, //0x0000816f movb $101, (%rax) - 0x45, 0x85, 0xc9, //0x00008172 testl %r9d, %r9d - 0x0f, 0x8e, 0x43, 0x00, 0x00, 0x00, //0x00008175 jle LBB35_65 - //0x0000817b LBB35_66 - 0x41, 0x83, 0xc1, 0xff, //0x0000817b addl $-1, %r9d - 0xc6, 0x40, 0x01, 0x2b, //0x0000817f movb $43, $1(%rax) - 0x44, 0x89, 0xc9, //0x00008183 movl %r9d, %ecx - 0x83, 0xf9, 0x0a, //0x00008186 cmpl $10, %ecx - 0x0f, 0x8c, 0x44, 0x00, 0x00, 0x00, //0x00008189 jl LBB35_69 - //0x0000818f LBB35_68 - 0x48, 0x63, 0xc9, //0x0000818f movslq %ecx, %rcx - 0x48, 0x8d, 0x15, 0x47, 0x44, 0x00, 0x00, //0x00008192 leaq $17479(%rip), %rdx /* _Digits+0(%rip) */ - 0x0f, 0xb7, 0x0c, 0x4a, //0x00008199 movzwl (%rdx,%rcx,2), %ecx - 0x66, 0x89, 0x48, 0x02, //0x0000819d movw %cx, $2(%rax) - 0x48, 0x83, 0xc0, 0x04, //0x000081a1 addq $4, %rax - 0xe9, 0xf9, 0x06, 0x00, 0x00, //0x000081a5 jmp LBB35_155 - //0x000081aa LBB35_62 - 0x49, 0x8d, 0x04, 0x12, //0x000081aa leaq (%r10,%rdx), %rax - 0x48, 0x83, 0xc0, 0x01, //0x000081ae addq $1, %rax - 0xc6, 0x00, 0x65, //0x000081b2 movb $101, (%rax) - 0x45, 0x85, 0xc9, //0x000081b5 testl %r9d, %r9d - 0x0f, 0x8f, 0xbd, 0xff, 0xff, 0xff, //0x000081b8 jg LBB35_66 - //0x000081be LBB35_65 - 0xc6, 0x40, 0x01, 0x2d, //0x000081be movb $45, $1(%rax) - 0xb9, 0x01, 0x00, 0x00, 0x00, //0x000081c2 movl $1, %ecx - 0x44, 0x29, 0xc9, //0x000081c7 subl %r9d, %ecx - 0x83, 0xf9, 0x0a, //0x000081ca cmpl $10, %ecx - 0x0f, 0x8d, 0xbc, 0xff, 0xff, 0xff, //0x000081cd jge LBB35_68 - //0x000081d3 LBB35_69 - 0x80, 0xc1, 0x30, //0x000081d3 addb $48, %cl - 0x88, 0x48, 0x02, //0x000081d6 movb %cl, $2(%rax) - 0x48, 0x83, 0xc0, 0x03, //0x000081d9 addq $3, %rax - 0xe9, 0xc1, 0x06, 0x00, 0x00, //0x000081dd jmp LBB35_155 - //0x000081e2 LBB35_141 - 0x4c, 0x89, 0xe6, //0x000081e2 movq %r12, %rsi - 0x4d, 0x89, 0xf9, //0x000081e5 movq %r15, %r9 - 0x49, 0x83, 0xe1, 0xe0, //0x000081e8 andq $-32, %r9 - 0x49, 0x8d, 0x41, 0xe0, //0x000081ec leaq $-32(%r9), %rax - 0x48, 0x89, 0xc3, //0x000081f0 movq %rax, %rbx - 0x48, 0xc1, 0xeb, 0x05, //0x000081f3 shrq $5, %rbx - 0x48, 0x83, 0xc3, 0x01, //0x000081f7 addq $1, %rbx - 0x41, 0x89, 0xdc, //0x000081fb movl %ebx, %r12d - 0x41, 0x83, 0xe4, 0x07, //0x000081fe andl $7, %r12d - 0x48, 0x3d, 0xe0, 0x00, 0x00, 0x00, //0x00008202 cmpq $224, %rax - 0x0f, 0x83, 0x07, 0x00, 0x00, 0x00, //0x00008208 jae LBB35_143 - 0x31, 0xc9, //0x0000820e xorl %ecx, %ecx - 0xe9, 0xb0, 0x00, 0x00, 0x00, //0x00008210 jmp LBB35_145 - //0x00008215 LBB35_143 - 0x4b, 0x8d, 0x04, 0x02, //0x00008215 leaq (%r10,%r8), %rax - 0x48, 0x8b, 0x4d, 0xd0, //0x00008219 movq $-48(%rbp), %rcx - 0x48, 0x01, 0xc8, //0x0000821d addq %rcx, %rax - 0x48, 0x05, 0xf0, 0x00, 0x00, 0x00, //0x00008220 addq $240, %rax - 0x48, 0x83, 0xe3, 0xf8, //0x00008226 andq $-8, %rbx - 0x48, 0xf7, 0xdb, //0x0000822a negq %rbx - 0x31, 0xc9, //0x0000822d xorl %ecx, %ecx - 0x66, 0x0f, 0x6f, 0x05, 0x29, 0xf8, 0xff, 0xff, //0x0000822f movdqa $-2007(%rip), %xmm0 /* LCPI35_0+0(%rip) */ - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008237 .p2align 4, 0x90 - //0x00008240 LBB35_144 - 0xf3, 0x0f, 0x7f, 0x84, 0x08, 0x10, 0xff, 0xff, 0xff, //0x00008240 movdqu %xmm0, $-240(%rax,%rcx) - 0xf3, 0x0f, 0x7f, 0x84, 0x08, 0x20, 0xff, 0xff, 0xff, //0x00008249 movdqu %xmm0, $-224(%rax,%rcx) - 0xf3, 0x0f, 0x7f, 0x84, 0x08, 0x30, 0xff, 0xff, 0xff, //0x00008252 movdqu %xmm0, $-208(%rax,%rcx) - 0xf3, 0x0f, 0x7f, 0x84, 0x08, 0x40, 0xff, 0xff, 0xff, //0x0000825b movdqu %xmm0, $-192(%rax,%rcx) - 0xf3, 0x0f, 0x7f, 0x84, 0x08, 0x50, 0xff, 0xff, 0xff, //0x00008264 movdqu %xmm0, $-176(%rax,%rcx) - 0xf3, 0x0f, 0x7f, 0x84, 0x08, 0x60, 0xff, 0xff, 0xff, //0x0000826d movdqu %xmm0, $-160(%rax,%rcx) - 0xf3, 0x0f, 0x7f, 0x84, 0x08, 0x70, 0xff, 0xff, 0xff, //0x00008276 movdqu %xmm0, $-144(%rax,%rcx) - 0xf3, 0x0f, 0x7f, 0x44, 0x08, 0x80, //0x0000827f movdqu %xmm0, $-128(%rax,%rcx) - 0xf3, 0x0f, 0x7f, 0x44, 0x08, 0x90, //0x00008285 movdqu %xmm0, $-112(%rax,%rcx) - 0xf3, 0x0f, 0x7f, 0x44, 0x08, 0xa0, //0x0000828b movdqu %xmm0, $-96(%rax,%rcx) - 0xf3, 0x0f, 0x7f, 0x44, 0x08, 0xb0, //0x00008291 movdqu %xmm0, $-80(%rax,%rcx) - 0xf3, 0x0f, 0x7f, 0x44, 0x08, 0xc0, //0x00008297 movdqu %xmm0, $-64(%rax,%rcx) - 0xf3, 0x0f, 0x7f, 0x44, 0x08, 0xd0, //0x0000829d movdqu %xmm0, $-48(%rax,%rcx) - 0xf3, 0x0f, 0x7f, 0x44, 0x08, 0xe0, //0x000082a3 movdqu %xmm0, $-32(%rax,%rcx) - 0xf3, 0x0f, 0x7f, 0x44, 0x08, 0xf0, //0x000082a9 movdqu %xmm0, $-16(%rax,%rcx) - 0xf3, 0x0f, 0x7f, 0x04, 0x08, //0x000082af movdqu %xmm0, (%rax,%rcx) - 0x48, 0x81, 0xc1, 0x00, 0x01, 0x00, 0x00, //0x000082b4 addq $256, %rcx - 0x48, 0x83, 0xc3, 0x08, //0x000082bb addq $8, %rbx - 0x0f, 0x85, 0x7b, 0xff, 0xff, 0xff, //0x000082bf jne LBB35_144 - //0x000082c5 LBB35_145 - 0x4d, 0x85, 0xe4, //0x000082c5 testq %r12, %r12 - 0x0f, 0x84, 0x3a, 0x00, 0x00, 0x00, //0x000082c8 je LBB35_148 - 0x4c, 0x01, 0xd1, //0x000082ce addq %r10, %rcx - 0x4c, 0x01, 0xc1, //0x000082d1 addq %r8, %rcx - 0x48, 0x8b, 0x45, 0xd0, //0x000082d4 movq $-48(%rbp), %rax - 0x48, 0x01, 0xc8, //0x000082d8 addq %rcx, %rax - 0x48, 0x83, 0xc0, 0x10, //0x000082db addq $16, %rax - 0x49, 0xc1, 0xe4, 0x05, //0x000082df shlq $5, %r12 - 0x31, 0xc9, //0x000082e3 xorl %ecx, %ecx - 0x66, 0x0f, 0x6f, 0x05, 0x73, 0xf7, 0xff, 0xff, //0x000082e5 movdqa $-2189(%rip), %xmm0 /* LCPI35_0+0(%rip) */ - 0x90, 0x90, 0x90, //0x000082ed .p2align 4, 0x90 - //0x000082f0 LBB35_147 - 0xf3, 0x0f, 0x7f, 0x44, 0x08, 0xf0, //0x000082f0 movdqu %xmm0, $-16(%rax,%rcx) - 0xf3, 0x0f, 0x7f, 0x04, 0x08, //0x000082f6 movdqu %xmm0, (%rax,%rcx) - 0x48, 0x83, 0xc1, 0x20, //0x000082fb addq $32, %rcx - 0x49, 0x39, 0xcc, //0x000082ff cmpq %rcx, %r12 - 0x0f, 0x85, 0xe8, 0xff, 0xff, 0xff, //0x00008302 jne LBB35_147 - //0x00008308 LBB35_148 - 0x4d, 0x39, 0xcf, //0x00008308 cmpq %r9, %r15 - 0x0f, 0x85, 0x0c, 0x00, 0x00, 0x00, //0x0000830b jne LBB35_150 - 0x48, 0x89, 0xf0, //0x00008311 movq %rsi, %rax - 0x4c, 0x8b, 0x6d, 0xd0, //0x00008314 movq $-48(%rbp), %r13 - 0xe9, 0x86, 0x05, 0x00, 0x00, //0x00008318 jmp LBB35_155 - //0x0000831d LBB35_150 - 0x41, 0xf6, 0xc7, 0x18, //0x0000831d testb $24, %r15b - 0x49, 0x89, 0xf4, //0x00008321 movq %rsi, %r12 - 0x0f, 0x84, 0x83, 0x00, 0x00, 0x00, //0x00008324 je LBB35_151 - //0x0000832a LBB35_138 - 0x4d, 0x39, 0xee, //0x0000832a cmpq %r13, %r14 - 0x4d, 0x0f, 0x47, 0xee, //0x0000832d cmovaq %r14, %r13 - 0x4d, 0x29, 0xdd, //0x00008331 subq %r11, %r13 - 0x4d, 0x89, 0xeb, //0x00008334 movq %r13, %r11 - 0x49, 0x83, 0xe3, 0xf8, //0x00008337 andq $-8, %r11 - 0x4c, 0x01, 0xda, //0x0000833b addq %r11, %rdx - 0x4d, 0x01, 0xca, //0x0000833e addq %r9, %r10 - 0x4d, 0x01, 0xc2, //0x00008341 addq %r8, %r10 - 0x4c, 0x03, 0x55, 0xd0, //0x00008344 addq $-48(%rbp), %r10 - 0x4c, 0x89, 0xd9, //0x00008348 movq %r11, %rcx - 0x4c, 0x29, 0xc9, //0x0000834b subq %r9, %rcx - 0x31, 0xdb, //0x0000834e xorl %ebx, %ebx - 0x48, 0xb8, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, //0x00008350 movabsq $3472328296227680304, %rax - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000835a .p2align 4, 0x90 - //0x00008360 LBB35_139 - 0x49, 0x89, 0x04, 0x1a, //0x00008360 movq %rax, (%r10,%rbx) - 0x48, 0x83, 0xc3, 0x08, //0x00008364 addq $8, %rbx - 0x48, 0x39, 0xd9, //0x00008368 cmpq %rbx, %rcx - 0x0f, 0x85, 0xef, 0xff, 0xff, 0xff, //0x0000836b jne LBB35_139 - 0x4d, 0x39, 0xdd, //0x00008371 cmpq %r11, %r13 - 0x0f, 0x85, 0x36, 0x00, 0x00, 0x00, //0x00008374 jne LBB35_152 - //0x0000837a LBB35_134 - 0x4c, 0x89, 0xe0, //0x0000837a movq %r12, %rax - 0x4c, 0x8b, 0x6d, 0xd0, //0x0000837d movq $-48(%rbp), %r13 - 0xe9, 0x1d, 0x05, 0x00, 0x00, //0x00008381 jmp LBB35_155 - //0x00008386 LBB35_23 - 0x41, 0x81, 0xfb, 0x10, 0x27, 0x00, 0x00, //0x00008386 cmpl $10000, %r11d - 0x4c, 0x89, 0xc9, //0x0000838d movq %r9, %rcx - 0x48, 0x83, 0xd9, 0x00, //0x00008390 sbbq $0, %rcx - 0x48, 0x83, 0xc1, 0x05, //0x00008394 addq $5, %rcx - 0x41, 0x81, 0xfb, 0x10, 0x27, 0x00, 0x00, //0x00008398 cmpl $10000, %r11d - 0x0f, 0x83, 0xb9, 0xfa, 0xff, 0xff, //0x0000839f jae LBB35_17 - 0x48, 0x89, 0xc8, //0x000083a5 movq %rcx, %rax - 0xe9, 0x82, 0xfc, 0xff, 0xff, //0x000083a8 jmp LBB35_25 - //0x000083ad LBB35_151 - 0x4c, 0x01, 0xca, //0x000083ad addq %r9, %rdx - //0x000083b0 LBB35_152 - 0x4c, 0x8b, 0x6d, 0xd0, //0x000083b0 movq $-48(%rbp), %r13 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000083b4 .p2align 4, 0x90 - //0x000083c0 LBB35_153 - 0xc6, 0x02, 0x30, //0x000083c0 movb $48, (%rdx) - 0x48, 0x83, 0xc2, 0x01, //0x000083c3 addq $1, %rdx - 0x4c, 0x39, 0xe2, //0x000083c7 cmpq %r12, %rdx - 0x0f, 0x82, 0xf0, 0xff, 0xff, 0xff, //0x000083ca jb LBB35_153 - 0x4c, 0x89, 0xe0, //0x000083d0 movq %r12, %rax - 0xe9, 0xcb, 0x04, 0x00, 0x00, //0x000083d3 jmp LBB35_155 - //0x000083d8 LBB35_76 - 0x48, 0x8b, 0x55, 0xd0, //0x000083d8 movq $-48(%rbp), %rdx - 0x49, 0x8d, 0x1c, 0x12, //0x000083dc leaq (%r10,%rdx), %rbx - 0x48, 0x81, 0xc3, 0xf2, 0x00, 0x00, 0x00, //0x000083e0 addq $242, %rbx - 0x49, 0x83, 0xe4, 0xf8, //0x000083e7 andq $-8, %r12 - 0x49, 0xf7, 0xdc, //0x000083eb negq %r12 - 0x31, 0xd2, //0x000083ee xorl %edx, %edx - 0x66, 0x0f, 0x6f, 0x05, 0x68, 0xf6, 0xff, 0xff, //0x000083f0 movdqa $-2456(%rip), %xmm0 /* LCPI35_0+0(%rip) */ - //0x000083f8 LBB35_77 - 0xf3, 0x0f, 0x7f, 0x84, 0x13, 0x10, 0xff, 0xff, 0xff, //0x000083f8 movdqu %xmm0, $-240(%rbx,%rdx) - 0xf3, 0x0f, 0x7f, 0x84, 0x13, 0x20, 0xff, 0xff, 0xff, //0x00008401 movdqu %xmm0, $-224(%rbx,%rdx) - 0xf3, 0x0f, 0x7f, 0x84, 0x13, 0x30, 0xff, 0xff, 0xff, //0x0000840a movdqu %xmm0, $-208(%rbx,%rdx) - 0xf3, 0x0f, 0x7f, 0x84, 0x13, 0x40, 0xff, 0xff, 0xff, //0x00008413 movdqu %xmm0, $-192(%rbx,%rdx) - 0xf3, 0x0f, 0x7f, 0x84, 0x13, 0x50, 0xff, 0xff, 0xff, //0x0000841c movdqu %xmm0, $-176(%rbx,%rdx) - 0xf3, 0x0f, 0x7f, 0x84, 0x13, 0x60, 0xff, 0xff, 0xff, //0x00008425 movdqu %xmm0, $-160(%rbx,%rdx) - 0xf3, 0x0f, 0x7f, 0x84, 0x13, 0x70, 0xff, 0xff, 0xff, //0x0000842e movdqu %xmm0, $-144(%rbx,%rdx) - 0xf3, 0x0f, 0x7f, 0x44, 0x13, 0x80, //0x00008437 movdqu %xmm0, $-128(%rbx,%rdx) - 0xf3, 0x0f, 0x7f, 0x44, 0x13, 0x90, //0x0000843d movdqu %xmm0, $-112(%rbx,%rdx) - 0xf3, 0x0f, 0x7f, 0x44, 0x13, 0xa0, //0x00008443 movdqu %xmm0, $-96(%rbx,%rdx) - 0xf3, 0x0f, 0x7f, 0x44, 0x13, 0xb0, //0x00008449 movdqu %xmm0, $-80(%rbx,%rdx) - 0xf3, 0x0f, 0x7f, 0x44, 0x13, 0xc0, //0x0000844f movdqu %xmm0, $-64(%rbx,%rdx) - 0xf3, 0x0f, 0x7f, 0x44, 0x13, 0xd0, //0x00008455 movdqu %xmm0, $-48(%rbx,%rdx) - 0xf3, 0x0f, 0x7f, 0x44, 0x13, 0xe0, //0x0000845b movdqu %xmm0, $-32(%rbx,%rdx) - 0xf3, 0x0f, 0x7f, 0x44, 0x13, 0xf0, //0x00008461 movdqu %xmm0, $-16(%rbx,%rdx) - 0xf3, 0x0f, 0x7f, 0x04, 0x13, //0x00008467 movdqu %xmm0, (%rbx,%rdx) - 0x48, 0x81, 0xc2, 0x00, 0x01, 0x00, 0x00, //0x0000846c addq $256, %rdx - 0x49, 0x83, 0xc4, 0x08, //0x00008473 addq $8, %r12 - 0x0f, 0x85, 0x7b, 0xff, 0xff, 0xff, //0x00008477 jne LBB35_77 - //0x0000847d LBB35_78 - 0x4d, 0x85, 0xff, //0x0000847d testq %r15, %r15 - 0x0f, 0x84, 0x34, 0x00, 0x00, 0x00, //0x00008480 je LBB35_81 - 0x4c, 0x01, 0xd2, //0x00008486 addq %r10, %rdx - 0x48, 0x8b, 0x75, 0xd0, //0x00008489 movq $-48(%rbp), %rsi - 0x48, 0x01, 0xf2, //0x0000848d addq %rsi, %rdx - 0x48, 0x83, 0xc2, 0x12, //0x00008490 addq $18, %rdx - 0x49, 0xc1, 0xe7, 0x05, //0x00008494 shlq $5, %r15 - 0x31, 0xf6, //0x00008498 xorl %esi, %esi - 0x66, 0x0f, 0x6f, 0x05, 0xbe, 0xf5, 0xff, 0xff, //0x0000849a movdqa $-2626(%rip), %xmm0 /* LCPI35_0+0(%rip) */ - //0x000084a2 LBB35_80 - 0xf3, 0x0f, 0x7f, 0x44, 0x32, 0xf0, //0x000084a2 movdqu %xmm0, $-16(%rdx,%rsi) - 0xf3, 0x0f, 0x7f, 0x04, 0x32, //0x000084a8 movdqu %xmm0, (%rdx,%rsi) - 0x48, 0x83, 0xc6, 0x20, //0x000084ad addq $32, %rsi - 0x49, 0x39, 0xf7, //0x000084b1 cmpq %rsi, %r15 - 0x0f, 0x85, 0xe8, 0xff, 0xff, 0xff, //0x000084b4 jne LBB35_80 - //0x000084ba LBB35_81 - 0x49, 0x89, 0xfc, //0x000084ba movq %rdi, %r12 - 0x49, 0x01, 0xcc, //0x000084bd addq %rcx, %r12 - 0x49, 0x39, 0xcb, //0x000084c0 cmpq %rcx, %r11 - 0x0f, 0x84, 0x19, 0x00, 0x00, 0x00, //0x000084c3 je LBB35_84 - //0x000084c9 LBB35_82 - 0x44, 0x01, 0xc9, //0x000084c9 addl %r9d, %ecx - 0xf7, 0xd9, //0x000084cc negl %ecx - 0x90, 0x90, //0x000084ce .p2align 4, 0x90 - //0x000084d0 LBB35_83 - 0x41, 0xc6, 0x04, 0x24, 0x30, //0x000084d0 movb $48, (%r12) - 0x49, 0x83, 0xc4, 0x01, //0x000084d5 addq $1, %r12 - 0x83, 0xc1, 0xff, //0x000084d9 addl $-1, %ecx - 0x0f, 0x85, 0xee, 0xff, 0xff, 0xff, //0x000084dc jne LBB35_83 - //0x000084e2 LBB35_84 - 0x4f, 0x8d, 0x3c, 0x04, //0x000084e2 leaq (%r12,%r8), %r15 - 0x3d, 0x10, 0x27, 0x00, 0x00, //0x000084e6 cmpl $10000, %eax - 0x0f, 0x82, 0x50, 0x00, 0x00, 0x00, //0x000084eb jb LBB35_85 - 0x89, 0xc2, //0x000084f1 movl %eax, %edx - 0xbb, 0x59, 0x17, 0xb7, 0xd1, //0x000084f3 movl $3518437209, %ebx - 0x48, 0x0f, 0xaf, 0xda, //0x000084f8 imulq %rdx, %rbx - 0x48, 0xc1, 0xeb, 0x2d, //0x000084fc shrq $45, %rbx - 0x69, 0xd3, 0xf0, 0xd8, 0xff, 0xff, //0x00008500 imull $-10000, %ebx, %edx - 0x01, 0xc2, //0x00008506 addl %eax, %edx - 0x0f, 0x84, 0x4b, 0x00, 0x00, 0x00, //0x00008508 je LBB35_87 - 0x89, 0xd0, //0x0000850e movl %edx, %eax - 0x48, 0x69, 0xc0, 0x1f, 0x85, 0xeb, 0x51, //0x00008510 imulq $1374389535, %rax, %rax - 0x48, 0xc1, 0xe8, 0x25, //0x00008517 shrq $37, %rax - 0x6b, 0xf0, 0x64, //0x0000851b imull $100, %eax, %esi - 0x29, 0xf2, //0x0000851e subl %esi, %edx - 0x48, 0x8d, 0x35, 0xb9, 0x40, 0x00, 0x00, //0x00008520 leaq $16569(%rip), %rsi /* _Digits+0(%rip) */ - 0x0f, 0xb7, 0x14, 0x56, //0x00008527 movzwl (%rsi,%rdx,2), %edx - 0x66, 0x41, 0x89, 0x57, 0xfe, //0x0000852b movw %dx, $-2(%r15) - 0x0f, 0xb7, 0x04, 0x46, //0x00008530 movzwl (%rsi,%rax,2), %eax - 0x66, 0x41, 0x89, 0x47, 0xfc, //0x00008534 movw %ax, $-4(%r15) - 0x45, 0x31, 0xdb, //0x00008539 xorl %r11d, %r11d - 0xe9, 0x1e, 0x00, 0x00, 0x00, //0x0000853c jmp LBB35_89 - //0x00008541 LBB35_85 - 0x45, 0x31, 0xdb, //0x00008541 xorl %r11d, %r11d - 0x4c, 0x89, 0xfa, //0x00008544 movq %r15, %rdx - 0x89, 0xc3, //0x00008547 movl %eax, %ebx - 0x83, 0xfb, 0x64, //0x00008549 cmpl $100, %ebx - 0x0f, 0x83, 0x1a, 0x00, 0x00, 0x00, //0x0000854c jae LBB35_92 - //0x00008552 LBB35_91 - 0x89, 0xd8, //0x00008552 movl %ebx, %eax - 0xe9, 0x55, 0x00, 0x00, 0x00, //0x00008554 jmp LBB35_94 - //0x00008559 LBB35_87 - 0x41, 0xbb, 0x04, 0x00, 0x00, 0x00, //0x00008559 movl $4, %r11d - //0x0000855f LBB35_89 - 0x49, 0x8d, 0x57, 0xfc, //0x0000855f leaq $-4(%r15), %rdx - 0x83, 0xfb, 0x64, //0x00008563 cmpl $100, %ebx - 0x0f, 0x82, 0xe6, 0xff, 0xff, 0xff, //0x00008566 jb LBB35_91 - //0x0000856c LBB35_92 - 0x48, 0x83, 0xc2, 0xff, //0x0000856c addq $-1, %rdx - 0x48, 0x8d, 0x35, 0x69, 0x40, 0x00, 0x00, //0x00008570 leaq $16489(%rip), %rsi /* _Digits+0(%rip) */ - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008577 .p2align 4, 0x90 - //0x00008580 LBB35_93 - 0x89, 0xd8, //0x00008580 movl %ebx, %eax - 0x48, 0x69, 0xc0, 0x1f, 0x85, 0xeb, 0x51, //0x00008582 imulq $1374389535, %rax, %rax - 0x48, 0xc1, 0xe8, 0x25, //0x00008589 shrq $37, %rax - 0x6b, 0xf8, 0x64, //0x0000858d imull $100, %eax, %edi - 0x89, 0xd9, //0x00008590 movl %ebx, %ecx - 0x29, 0xf9, //0x00008592 subl %edi, %ecx - 0x0f, 0xb7, 0x0c, 0x4e, //0x00008594 movzwl (%rsi,%rcx,2), %ecx - 0x66, 0x89, 0x4a, 0xff, //0x00008598 movw %cx, $-1(%rdx) - 0x48, 0x83, 0xc2, 0xfe, //0x0000859c addq $-2, %rdx - 0x81, 0xfb, 0x0f, 0x27, 0x00, 0x00, //0x000085a0 cmpl $9999, %ebx - 0x89, 0xc3, //0x000085a6 movl %eax, %ebx - 0x0f, 0x87, 0xd2, 0xff, 0xff, 0xff, //0x000085a8 ja LBB35_93 - //0x000085ae LBB35_94 - 0x83, 0xf8, 0x0a, //0x000085ae cmpl $10, %eax - 0x0f, 0x82, 0x1a, 0x00, 0x00, 0x00, //0x000085b1 jb LBB35_96 - 0x89, 0xc0, //0x000085b7 movl %eax, %eax - 0x48, 0x8d, 0x0d, 0x20, 0x40, 0x00, 0x00, //0x000085b9 leaq $16416(%rip), %rcx /* _Digits+0(%rip) */ - 0x0f, 0xb7, 0x04, 0x41, //0x000085c0 movzwl (%rcx,%rax,2), %eax - 0x4d, 0x89, 0xe2, //0x000085c4 movq %r12, %r10 - 0x66, 0x41, 0x89, 0x04, 0x24, //0x000085c7 movw %ax, (%r12) - 0xe9, 0x09, 0x00, 0x00, 0x00, //0x000085cc jmp LBB35_97 - //0x000085d1 LBB35_96 - 0x04, 0x30, //0x000085d1 addb $48, %al - 0x4d, 0x89, 0xe2, //0x000085d3 movq %r12, %r10 - 0x41, 0x88, 0x04, 0x24, //0x000085d6 movb %al, (%r12) - //0x000085da LBB35_97 - 0x4d, 0x29, 0xdf, //0x000085da subq %r11, %r15 - 0x4d, 0x29, 0xd8, //0x000085dd subq %r11, %r8 - 0x49, 0x83, 0xc0, 0x01, //0x000085e0 addq $1, %r8 - 0x43, 0x8d, 0x04, 0x33, //0x000085e4 leal (%r11,%r14), %eax - 0xb1, 0x01, //0x000085e8 movb $1, %cl - 0x28, 0xc1, //0x000085ea subb %al, %cl - 0xba, 0x01, 0x00, 0x00, 0x00, //0x000085ec movl $1, %edx - 0x44, 0x29, 0xf2, //0x000085f1 subl %r14d, %edx - 0x44, 0x29, 0xda, //0x000085f4 subl %r11d, %edx - 0x47, 0x8d, 0x24, 0x1e, //0x000085f7 leal (%r14,%r11), %r12d - 0x41, 0x83, 0xc4, 0xfe, //0x000085fb addl $-2, %r12d - 0x45, 0x01, 0xde, //0x000085ff addl %r11d, %r14d - 0x41, 0x83, 0xc6, 0xff, //0x00008602 addl $-1, %r14d - 0x31, 0xdb, //0x00008606 xorl %ebx, %ebx - 0x44, 0x89, 0xe6, //0x00008608 movl %r12d, %esi - 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000860b .p2align 4, 0x90 - //0x00008610 LBB35_98 - 0x80, 0xc1, 0x03, //0x00008610 addb $3, %cl - 0x83, 0xc6, 0x01, //0x00008613 addl $1, %esi - 0x41, 0x80, 0x7c, 0x1f, 0xff, 0x30, //0x00008616 cmpb $48, $-1(%r15,%rbx) - 0x48, 0x8d, 0x5b, 0xff, //0x0000861c leaq $-1(%rbx), %rbx - 0x0f, 0x84, 0xea, 0xff, 0xff, 0xff, //0x00008620 je LBB35_98 - 0x49, 0x8d, 0x04, 0x1f, //0x00008626 leaq (%r15,%rbx), %rax - 0x48, 0x83, 0xc0, 0x01, //0x0000862a addq $1, %rax - 0x45, 0x85, 0xc9, //0x0000862e testl %r9d, %r9d - 0x0f, 0x8e, 0x45, 0x00, 0x00, 0x00, //0x00008631 jle LBB35_100 - 0x45, 0x29, 0xdd, //0x00008637 subl %r11d, %r13d - 0x42, 0x8d, 0x3c, 0x2b, //0x0000863a leal (%rbx,%r13), %edi - 0x83, 0xc7, 0x01, //0x0000863e addl $1, %edi - 0x41, 0x39, 0xf9, //0x00008641 cmpl %edi, %r9d - 0x0f, 0x8d, 0x3b, 0x00, 0x00, 0x00, //0x00008644 jge LBB35_102 - 0x83, 0xc2, 0xff, //0x0000864a addl $-1, %edx - 0x48, 0x63, 0xc2, //0x0000864d movslq %edx, %rax - 0x48, 0x8d, 0x34, 0x18, //0x00008650 leaq (%rax,%rbx), %rsi - 0x48, 0x83, 0xc6, 0x01, //0x00008654 addq $1, %rsi - 0x85, 0xf6, //0x00008658 testl %esi, %esi - 0x4c, 0x8b, 0x6d, 0xd0, //0x0000865a movq $-48(%rbp), %r13 - 0x0f, 0x8e, 0xf5, 0x00, 0x00, 0x00, //0x0000865e jle LBB35_120 - 0x41, 0x89, 0xf0, //0x00008664 movl %esi, %r8d - 0x49, 0x8d, 0x50, 0xff, //0x00008667 leaq $-1(%r8), %rdx - 0x48, 0x83, 0xfa, 0x03, //0x0000866b cmpq $3, %rdx - 0x0f, 0x83, 0x7b, 0x00, 0x00, 0x00, //0x0000866f jae LBB35_121 - 0x31, 0xd2, //0x00008675 xorl %edx, %edx - 0xe9, 0xa0, 0x00, 0x00, 0x00, //0x00008677 jmp LBB35_117 - //0x0000867c LBB35_100 - 0x4c, 0x8b, 0x6d, 0xd0, //0x0000867c movq $-48(%rbp), %r13 - 0xe9, 0x1e, 0x02, 0x00, 0x00, //0x00008680 jmp LBB35_155 - //0x00008685 LBB35_102 - 0x45, 0x89, 0xf6, //0x00008685 movl %r14d, %r14d - 0x49, 0x29, 0xde, //0x00008688 subq %rbx, %r14 - 0x45, 0x85, 0xf6, //0x0000868b testl %r14d, %r14d - 0x4c, 0x8b, 0x6d, 0xd0, //0x0000868e movq $-48(%rbp), %r13 - 0x0f, 0x8e, 0x0b, 0x02, 0x00, 0x00, //0x00008692 jle LBB35_155 - 0x45, 0x89, 0xe3, //0x00008698 movl %r12d, %r11d - 0x4c, 0x89, 0xd9, //0x0000869b movq %r11, %rcx - 0x48, 0x29, 0xd9, //0x0000869e subq %rbx, %rcx - 0x31, 0xd2, //0x000086a1 xorl %edx, %edx - 0x83, 0xf9, 0x1f, //0x000086a3 cmpl $31, %ecx - 0x0f, 0x82, 0xe4, 0x01, 0x00, 0x00, //0x000086a6 jb LBB35_112 - 0x49, 0x29, 0xdb, //0x000086ac subq %rbx, %r11 - 0x41, 0x89, 0xc9, //0x000086af movl %ecx, %r9d - 0x49, 0x83, 0xc1, 0x01, //0x000086b2 addq $1, %r9 - 0x4c, 0x89, 0xca, //0x000086b6 movq %r9, %rdx - 0x48, 0x83, 0xe2, 0xe0, //0x000086b9 andq $-32, %rdx - 0x4d, 0x01, 0xc2, //0x000086bd addq %r8, %r10 - 0x89, 0xf0, //0x000086c0 movl %esi, %eax - 0x48, 0x83, 0xc0, 0x01, //0x000086c2 addq $1, %rax - 0x48, 0x83, 0xe0, 0xe0, //0x000086c6 andq $-32, %rax - 0x4c, 0x01, 0xd0, //0x000086ca addq %r10, %rax - 0x48, 0x8d, 0x4a, 0xe0, //0x000086cd leaq $-32(%rdx), %rcx - 0x49, 0x89, 0xc8, //0x000086d1 movq %rcx, %r8 - 0x49, 0xc1, 0xe8, 0x05, //0x000086d4 shrq $5, %r8 - 0x49, 0x83, 0xc0, 0x01, //0x000086d8 addq $1, %r8 - 0x48, 0x81, 0xf9, 0xe0, 0x00, 0x00, 0x00, //0x000086dc cmpq $224, %rcx - 0x0f, 0x83, 0x85, 0x00, 0x00, 0x00, //0x000086e3 jae LBB35_106 - 0x31, 0xc9, //0x000086e9 xorl %ecx, %ecx - 0xe9, 0x33, 0x01, 0x00, 0x00, //0x000086eb jmp LBB35_108 - //0x000086f0 LBB35_121 - 0x83, 0xe6, 0xfc, //0x000086f0 andl $-4, %esi - 0x48, 0xf7, 0xde, //0x000086f3 negq %rsi - 0x31, 0xd2, //0x000086f6 xorl %edx, %edx - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000086f8 .p2align 4, 0x90 - //0x00008700 LBB35_122 - 0x49, 0x8d, 0x3c, 0x17, //0x00008700 leaq (%r15,%rdx), %rdi - 0x8b, 0x44, 0x3b, 0xfd, //0x00008704 movl $-3(%rbx,%rdi), %eax - 0x89, 0x44, 0x3b, 0xfe, //0x00008708 movl %eax, $-2(%rbx,%rdi) - 0x48, 0x83, 0xc2, 0xfc, //0x0000870c addq $-4, %rdx - 0x48, 0x39, 0xd6, //0x00008710 cmpq %rdx, %rsi - 0x0f, 0x85, 0xe7, 0xff, 0xff, 0xff, //0x00008713 jne LBB35_122 - 0x48, 0xf7, 0xda, //0x00008719 negq %rdx - //0x0000871c LBB35_117 - 0x41, 0xf6, 0xc0, 0x03, //0x0000871c testb $3, %r8b - 0x0f, 0x84, 0x33, 0x00, 0x00, 0x00, //0x00008720 je LBB35_120 - 0x0f, 0xb6, 0xf9, //0x00008726 movzbl %cl, %edi - 0x83, 0xe7, 0x03, //0x00008729 andl $3, %edi - 0x48, 0xf7, 0xdf, //0x0000872c negq %rdi - 0x4c, 0x89, 0xf9, //0x0000872f movq %r15, %rcx - 0x48, 0x29, 0xd1, //0x00008732 subq %rdx, %rcx - 0x31, 0xd2, //0x00008735 xorl %edx, %edx - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008737 .p2align 4, 0x90 - //0x00008740 LBB35_119 - 0x48, 0x8d, 0x34, 0x11, //0x00008740 leaq (%rcx,%rdx), %rsi - 0x0f, 0xb6, 0x04, 0x33, //0x00008744 movzbl (%rbx,%rsi), %eax - 0x88, 0x44, 0x33, 0x01, //0x00008748 movb %al, $1(%rbx,%rsi) - 0x48, 0x83, 0xc2, 0xff, //0x0000874c addq $-1, %rdx - 0x48, 0x39, 0xd7, //0x00008750 cmpq %rdx, %rdi - 0x0f, 0x85, 0xe7, 0xff, 0xff, 0xff, //0x00008753 jne LBB35_119 - //0x00008759 LBB35_120 - 0x49, 0x63, 0xc1, //0x00008759 movslq %r9d, %rax - 0x41, 0xc6, 0x04, 0x02, 0x2e, //0x0000875c movb $46, (%r10,%rax) - 0x49, 0x8d, 0x04, 0x1f, //0x00008761 leaq (%r15,%rbx), %rax - 0x48, 0x83, 0xc0, 0x02, //0x00008765 addq $2, %rax - 0xe9, 0x35, 0x01, 0x00, 0x00, //0x00008769 jmp LBB35_155 - //0x0000876e LBB35_106 - 0x44, 0x89, 0xde, //0x0000876e movl %r11d, %esi - 0x48, 0x83, 0xc6, 0x01, //0x00008771 addq $1, %rsi - 0x48, 0x83, 0xe6, 0xe0, //0x00008775 andq $-32, %rsi - 0x48, 0x83, 0xc6, 0xe0, //0x00008779 addq $-32, %rsi - 0x48, 0xc1, 0xee, 0x05, //0x0000877d shrq $5, %rsi - 0x48, 0x83, 0xc6, 0x01, //0x00008781 addq $1, %rsi - 0x48, 0x83, 0xe6, 0xf8, //0x00008785 andq $-8, %rsi - 0x48, 0xf7, 0xde, //0x00008789 negq %rsi - 0x31, 0xc9, //0x0000878c xorl %ecx, %ecx - 0x66, 0x0f, 0x6f, 0x05, 0xca, 0xf2, 0xff, 0xff, //0x0000878e movdqa $-3382(%rip), %xmm0 /* LCPI35_0+0(%rip) */ - //0x00008796 LBB35_107 - 0x49, 0x8d, 0x3c, 0x0f, //0x00008796 leaq (%r15,%rcx), %rdi - 0xf3, 0x0f, 0x7f, 0x44, 0x3b, 0x01, //0x0000879a movdqu %xmm0, $1(%rbx,%rdi) - 0xf3, 0x0f, 0x7f, 0x44, 0x3b, 0x11, //0x000087a0 movdqu %xmm0, $17(%rbx,%rdi) - 0xf3, 0x0f, 0x7f, 0x44, 0x3b, 0x21, //0x000087a6 movdqu %xmm0, $33(%rbx,%rdi) - 0xf3, 0x0f, 0x7f, 0x44, 0x3b, 0x31, //0x000087ac movdqu %xmm0, $49(%rbx,%rdi) - 0xf3, 0x0f, 0x7f, 0x44, 0x3b, 0x41, //0x000087b2 movdqu %xmm0, $65(%rbx,%rdi) - 0xf3, 0x0f, 0x7f, 0x44, 0x3b, 0x51, //0x000087b8 movdqu %xmm0, $81(%rbx,%rdi) - 0xf3, 0x0f, 0x7f, 0x44, 0x3b, 0x61, //0x000087be movdqu %xmm0, $97(%rbx,%rdi) - 0xf3, 0x0f, 0x7f, 0x44, 0x3b, 0x71, //0x000087c4 movdqu %xmm0, $113(%rbx,%rdi) - 0xf3, 0x0f, 0x7f, 0x84, 0x3b, 0x81, 0x00, 0x00, 0x00, //0x000087ca movdqu %xmm0, $129(%rbx,%rdi) - 0xf3, 0x0f, 0x7f, 0x84, 0x3b, 0x91, 0x00, 0x00, 0x00, //0x000087d3 movdqu %xmm0, $145(%rbx,%rdi) - 0xf3, 0x0f, 0x7f, 0x84, 0x3b, 0xa1, 0x00, 0x00, 0x00, //0x000087dc movdqu %xmm0, $161(%rbx,%rdi) - 0xf3, 0x0f, 0x7f, 0x84, 0x3b, 0xb1, 0x00, 0x00, 0x00, //0x000087e5 movdqu %xmm0, $177(%rbx,%rdi) - 0xf3, 0x0f, 0x7f, 0x84, 0x3b, 0xc1, 0x00, 0x00, 0x00, //0x000087ee movdqu %xmm0, $193(%rbx,%rdi) - 0xf3, 0x0f, 0x7f, 0x84, 0x3b, 0xd1, 0x00, 0x00, 0x00, //0x000087f7 movdqu %xmm0, $209(%rbx,%rdi) - 0xf3, 0x0f, 0x7f, 0x84, 0x3b, 0xe1, 0x00, 0x00, 0x00, //0x00008800 movdqu %xmm0, $225(%rbx,%rdi) - 0xf3, 0x0f, 0x7f, 0x84, 0x3b, 0xf1, 0x00, 0x00, 0x00, //0x00008809 movdqu %xmm0, $241(%rbx,%rdi) - 0x48, 0x81, 0xc1, 0x00, 0x01, 0x00, 0x00, //0x00008812 addq $256, %rcx - 0x48, 0x83, 0xc6, 0x08, //0x00008819 addq $8, %rsi - 0x0f, 0x85, 0x73, 0xff, 0xff, 0xff, //0x0000881d jne LBB35_107 - //0x00008823 LBB35_108 - 0x48, 0x01, 0xd8, //0x00008823 addq %rbx, %rax - 0x41, 0xf6, 0xc0, 0x07, //0x00008826 testb $7, %r8b - 0x0f, 0x84, 0x4d, 0x00, 0x00, 0x00, //0x0000882a je LBB35_111 - 0x41, 0x80, 0xc3, 0x01, //0x00008830 addb $1, %r11b - 0x41, 0x80, 0xe3, 0xe0, //0x00008834 andb $-32, %r11b - 0x41, 0x80, 0xc3, 0xe0, //0x00008838 addb $-32, %r11b - 0x41, 0xc0, 0xeb, 0x05, //0x0000883c shrb $5, %r11b - 0x41, 0x80, 0xc3, 0x01, //0x00008840 addb $1, %r11b - 0x45, 0x0f, 0xb6, 0xc3, //0x00008844 movzbl %r11b, %r8d - 0x41, 0x83, 0xe0, 0x07, //0x00008848 andl $7, %r8d - 0x49, 0xc1, 0xe0, 0x05, //0x0000884c shlq $5, %r8 - 0x4c, 0x01, 0xf9, //0x00008850 addq %r15, %rcx - 0x48, 0x83, 0xc1, 0x11, //0x00008853 addq $17, %rcx - 0x31, 0xf6, //0x00008857 xorl %esi, %esi - 0x66, 0x0f, 0x6f, 0x05, 0xff, 0xf1, 0xff, 0xff, //0x00008859 movdqa $-3585(%rip), %xmm0 /* LCPI35_0+0(%rip) */ - //0x00008861 LBB35_110 - 0x48, 0x8d, 0x3c, 0x31, //0x00008861 leaq (%rcx,%rsi), %rdi - 0xf3, 0x0f, 0x7f, 0x44, 0x3b, 0xf0, //0x00008865 movdqu %xmm0, $-16(%rbx,%rdi) - 0xf3, 0x0f, 0x7f, 0x04, 0x3b, //0x0000886b movdqu %xmm0, (%rbx,%rdi) - 0x48, 0x83, 0xc6, 0x20, //0x00008870 addq $32, %rsi - 0x49, 0x39, 0xf0, //0x00008874 cmpq %rsi, %r8 - 0x0f, 0x85, 0xe4, 0xff, 0xff, 0xff, //0x00008877 jne LBB35_110 - //0x0000887d LBB35_111 - 0x49, 0x39, 0xd1, //0x0000887d cmpq %rdx, %r9 - 0x0f, 0x84, 0x1d, 0x00, 0x00, 0x00, //0x00008880 je LBB35_155 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008886 .p2align 4, 0x90 - //0x00008890 LBB35_112 - 0xc6, 0x00, 0x30, //0x00008890 movb $48, (%rax) - 0x48, 0x83, 0xc0, 0x01, //0x00008893 addq $1, %rax - 0x83, 0xc2, 0x01, //0x00008897 addl $1, %edx - 0x44, 0x39, 0xf2, //0x0000889a cmpl %r14d, %edx - 0x0f, 0x8c, 0xed, 0xff, 0xff, 0xff, //0x0000889d jl LBB35_112 - //0x000088a3 LBB35_155 - 0x44, 0x29, 0xe8, //0x000088a3 subl %r13d, %eax - //0x000088a6 LBB35_156 - 0x48, 0x83, 0xc4, 0x10, //0x000088a6 addq $16, %rsp - 0x5b, //0x000088aa popq %rbx - 0x41, 0x5c, //0x000088ab popq %r12 - 0x41, 0x5d, //0x000088ad popq %r13 - 0x41, 0x5e, //0x000088af popq %r14 - 0x41, 0x5f, //0x000088b1 popq %r15 - 0x5d, //0x000088b3 popq %rbp - 0xc3, //0x000088b4 retq - //0x000088b5 LBB35_1 - 0x31, 0xc0, //0x000088b5 xorl %eax, %eax - 0xe9, 0xea, 0xff, 0xff, 0xff, //0x000088b7 jmp LBB35_156 - //0x000088bc LBB35_5 - 0x4c, 0x89, 0x4d, 0xc8, //0x000088bc movq %r9, $-56(%rbp) - 0x48, 0x89, 0x7d, 0xd0, //0x000088c0 movq %rdi, $-48(%rbp) - 0x41, 0xb8, 0x6b, 0xff, 0xff, 0xff, //0x000088c4 movl $-149, %r8d - 0x41, 0x89, 0xc3, //0x000088ca movl %eax, %r11d - 0xe9, 0x2b, 0xf2, 0xff, 0xff, //0x000088cd jmp LBB35_6 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000088d2 .p2align 4, 0x00 - //0x000088e0 LCPI36_0 - 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, //0x000088e0 QUAD $0x4040404040404040; QUAD $0x4040404040404040 // .space 16, '@@@@@@@@@@@@@@@@' - //0x000088f0 LCPI36_1 - 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, //0x000088f0 QUAD $0x5b5b5b5b5b5b5b5b; QUAD $0x5b5b5b5b5b5b5b5b // .space 16, '[[[[[[[[[[[[[[[[' - //0x00008900 LCPI36_2 - 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, //0x00008900 QUAD $0x0101010101010101; QUAD $0x0101010101010101 // .space 16, '\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01' - //0x00008910 LCPI36_3 - 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, //0x00008910 QUAD $0xbfbfbfbfbfbfbfbf; QUAD $0xbfbfbfbfbfbfbfbf // .space 16, '\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf' - //0x00008920 LCPI36_4 - 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, //0x00008920 QUAD $0x1919191919191919; QUAD $0x1919191919191919 // .space 16, '\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19' - //0x00008930 LCPI36_5 - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x00008930 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' - //0x00008940 LCPI36_6 - 0xbf, //0x00008940 .byte 191 - 0xbf, //0x00008941 .byte 191 - 0xbf, //0x00008942 .byte 191 - 0xbf, //0x00008943 .byte 191 - 0xbf, //0x00008944 .byte 191 - 0xbf, //0x00008945 .byte 191 - 0xbf, //0x00008946 .byte 191 - 0xbf, //0x00008947 .byte 191 - 0x00, //0x00008948 BYTE $0x00 // .space 1, '\x00' - 0x00, //0x00008949 BYTE $0x00 // .space 1, '\x00' - 0x00, //0x0000894a BYTE $0x00 // .space 1, '\x00' - 0x00, //0x0000894b BYTE $0x00 // .space 1, '\x00' - 0x00, //0x0000894c BYTE $0x00 // .space 1, '\x00' - 0x00, //0x0000894d BYTE $0x00 // .space 1, '\x00' - 0x00, //0x0000894e BYTE $0x00 // .space 1, '\x00' - 0x00, //0x0000894f BYTE $0x00 // .space 1, '\x00' - //0x00008950 LCPI36_7 - 0x1a, //0x00008950 .byte 26 - 0x1a, //0x00008951 .byte 26 - 0x1a, //0x00008952 .byte 26 - 0x1a, //0x00008953 .byte 26 - 0x1a, //0x00008954 .byte 26 - 0x1a, //0x00008955 .byte 26 - 0x1a, //0x00008956 .byte 26 - 0x1a, //0x00008957 .byte 26 - 0x00, //0x00008958 BYTE $0x00 // .space 1, '\x00' - 0x00, //0x00008959 BYTE $0x00 // .space 1, '\x00' - 0x00, //0x0000895a BYTE $0x00 // .space 1, '\x00' - 0x00, //0x0000895b BYTE $0x00 // .space 1, '\x00' - 0x00, //0x0000895c BYTE $0x00 // .space 1, '\x00' - 0x00, //0x0000895d BYTE $0x00 // .space 1, '\x00' - 0x00, //0x0000895e BYTE $0x00 // .space 1, '\x00' - 0x00, //0x0000895f BYTE $0x00 // .space 1, '\x00' - //0x00008960 LCPI36_8 - 0x20, //0x00008960 .byte 32 - 0x20, //0x00008961 .byte 32 - 0x20, //0x00008962 .byte 32 - 0x20, //0x00008963 .byte 32 - 0x20, //0x00008964 .byte 32 - 0x20, //0x00008965 .byte 32 - 0x20, //0x00008966 .byte 32 - 0x20, //0x00008967 .byte 32 - 0x00, //0x00008968 BYTE $0x00 // .space 1, '\x00' - 0x00, //0x00008969 BYTE $0x00 // .space 1, '\x00' - 0x00, //0x0000896a BYTE $0x00 // .space 1, '\x00' - 0x00, //0x0000896b BYTE $0x00 // .space 1, '\x00' - 0x00, //0x0000896c BYTE $0x00 // .space 1, '\x00' - 0x00, //0x0000896d BYTE $0x00 // .space 1, '\x00' - 0x00, //0x0000896e BYTE $0x00 // .space 1, '\x00' - 0x00, //0x0000896f BYTE $0x00 // .space 1, '\x00' - //0x00008970 .p2align 4, 0x90 - //0x00008970 _to_lower - 0x55, //0x00008970 pushq %rbp - 0x48, 0x89, 0xe5, //0x00008971 movq %rsp, %rbp - 0x48, 0x83, 0xfa, 0x10, //0x00008974 cmpq $16, %rdx - 0x0f, 0x82, 0xfc, 0x00, 0x00, 0x00, //0x00008978 jb LBB36_1 - 0x4c, 0x8d, 0x42, 0xf0, //0x0000897e leaq $-16(%rdx), %r8 - 0x41, 0xf6, 0xc0, 0x10, //0x00008982 testb $16, %r8b - 0x0f, 0x84, 0x18, 0x00, 0x00, 0x00, //0x00008986 je LBB36_6 - 0x49, 0x83, 0xf8, 0x10, //0x0000898c cmpq $16, %r8 - 0x0f, 0x83, 0x58, 0x00, 0x00, 0x00, //0x00008990 jae LBB36_8 - //0x00008996 LBB36_2 - 0x4d, 0x85, 0xc0, //0x00008996 testq %r8, %r8 - 0x0f, 0x85, 0xe7, 0x00, 0x00, 0x00, //0x00008999 jne LBB36_3 - 0xe9, 0x9a, 0x01, 0x00, 0x00, //0x0000899f jmp LBB36_32 - //0x000089a4 LBB36_6 - 0xf3, 0x0f, 0x6f, 0x06, //0x000089a4 movdqu (%rsi), %xmm0 - 0x66, 0x0f, 0x6f, 0xc8, //0x000089a8 movdqa %xmm0, %xmm1 - 0x66, 0x0f, 0x64, 0x0d, 0x2c, 0xff, 0xff, 0xff, //0x000089ac pcmpgtb $-212(%rip), %xmm1 /* LCPI36_0+0(%rip) */ - 0x66, 0x0f, 0x6f, 0x15, 0x34, 0xff, 0xff, 0xff, //0x000089b4 movdqa $-204(%rip), %xmm2 /* LCPI36_1+0(%rip) */ - 0x66, 0x0f, 0x64, 0xd0, //0x000089bc pcmpgtb %xmm0, %xmm2 - 0x66, 0x0f, 0xdb, 0xd1, //0x000089c0 pand %xmm1, %xmm2 - 0x66, 0x0f, 0xdb, 0x15, 0x34, 0xff, 0xff, 0xff, //0x000089c4 pand $-204(%rip), %xmm2 /* LCPI36_2+0(%rip) */ - 0x66, 0x0f, 0x71, 0xf2, 0x05, //0x000089cc psllw $5, %xmm2 - 0x66, 0x0f, 0xfc, 0xd0, //0x000089d1 paddb %xmm0, %xmm2 - 0xf3, 0x0f, 0x7f, 0x17, //0x000089d5 movdqu %xmm2, (%rdi) - 0x48, 0x83, 0xc6, 0x10, //0x000089d9 addq $16, %rsi - 0x48, 0x83, 0xc7, 0x10, //0x000089dd addq $16, %rdi - 0x4c, 0x89, 0xc2, //0x000089e1 movq %r8, %rdx - 0x49, 0x83, 0xf8, 0x10, //0x000089e4 cmpq $16, %r8 - 0x0f, 0x82, 0xa8, 0xff, 0xff, 0xff, //0x000089e8 jb LBB36_2 - //0x000089ee LBB36_8 - 0x66, 0x0f, 0x6f, 0x05, 0xea, 0xfe, 0xff, 0xff, //0x000089ee movdqa $-278(%rip), %xmm0 /* LCPI36_0+0(%rip) */ - 0x66, 0x0f, 0x6f, 0x0d, 0xf2, 0xfe, 0xff, 0xff, //0x000089f6 movdqa $-270(%rip), %xmm1 /* LCPI36_1+0(%rip) */ - 0x66, 0x0f, 0x6f, 0x15, 0xfa, 0xfe, 0xff, 0xff, //0x000089fe movdqa $-262(%rip), %xmm2 /* LCPI36_2+0(%rip) */ - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008a06 .p2align 4, 0x90 - //0x00008a10 LBB36_9 - 0xf3, 0x0f, 0x6f, 0x1e, //0x00008a10 movdqu (%rsi), %xmm3 - 0x66, 0x0f, 0x6f, 0xe3, //0x00008a14 movdqa %xmm3, %xmm4 - 0x66, 0x0f, 0x64, 0xe0, //0x00008a18 pcmpgtb %xmm0, %xmm4 - 0x66, 0x0f, 0x6f, 0xe9, //0x00008a1c movdqa %xmm1, %xmm5 - 0x66, 0x0f, 0x64, 0xeb, //0x00008a20 pcmpgtb %xmm3, %xmm5 - 0x66, 0x0f, 0xdb, 0xec, //0x00008a24 pand %xmm4, %xmm5 - 0x66, 0x0f, 0xdb, 0xea, //0x00008a28 pand %xmm2, %xmm5 - 0x66, 0x0f, 0x71, 0xf5, 0x05, //0x00008a2c psllw $5, %xmm5 - 0x66, 0x0f, 0xfc, 0xeb, //0x00008a31 paddb %xmm3, %xmm5 - 0xf3, 0x0f, 0x7f, 0x2f, //0x00008a35 movdqu %xmm5, (%rdi) - 0xf3, 0x0f, 0x6f, 0x5e, 0x10, //0x00008a39 movdqu $16(%rsi), %xmm3 - 0x66, 0x0f, 0x6f, 0xe3, //0x00008a3e movdqa %xmm3, %xmm4 - 0x66, 0x0f, 0x64, 0xe0, //0x00008a42 pcmpgtb %xmm0, %xmm4 - 0x66, 0x0f, 0x6f, 0xe9, //0x00008a46 movdqa %xmm1, %xmm5 - 0x66, 0x0f, 0x64, 0xeb, //0x00008a4a pcmpgtb %xmm3, %xmm5 - 0x66, 0x0f, 0xdb, 0xec, //0x00008a4e pand %xmm4, %xmm5 - 0x66, 0x0f, 0xdb, 0xea, //0x00008a52 pand %xmm2, %xmm5 - 0x66, 0x0f, 0x71, 0xf5, 0x05, //0x00008a56 psllw $5, %xmm5 - 0x66, 0x0f, 0xfc, 0xeb, //0x00008a5b paddb %xmm3, %xmm5 - 0xf3, 0x0f, 0x7f, 0x6f, 0x10, //0x00008a5f movdqu %xmm5, $16(%rdi) - 0x48, 0x83, 0xc6, 0x20, //0x00008a64 addq $32, %rsi - 0x48, 0x83, 0xc7, 0x20, //0x00008a68 addq $32, %rdi - 0x48, 0x83, 0xc2, 0xe0, //0x00008a6c addq $-32, %rdx - 0x48, 0x83, 0xfa, 0x0f, //0x00008a70 cmpq $15, %rdx - 0x0f, 0x87, 0x96, 0xff, 0xff, 0xff, //0x00008a74 ja LBB36_9 - //0x00008a7a LBB36_1 - 0x49, 0x89, 0xd0, //0x00008a7a movq %rdx, %r8 - 0x4d, 0x85, 0xc0, //0x00008a7d testq %r8, %r8 - 0x0f, 0x84, 0xb8, 0x00, 0x00, 0x00, //0x00008a80 je LBB36_32 - //0x00008a86 LBB36_3 - 0x49, 0x83, 0xf8, 0x08, //0x00008a86 cmpq $8, %r8 - 0x0f, 0x82, 0x1a, 0x00, 0x00, 0x00, //0x00008a8a jb LBB36_4 - 0x4a, 0x8d, 0x04, 0x06, //0x00008a90 leaq (%rsi,%r8), %rax - 0x48, 0x39, 0xc7, //0x00008a94 cmpq %rax, %rdi - 0x0f, 0x83, 0xa3, 0x00, 0x00, 0x00, //0x00008a97 jae LBB36_12 - 0x4a, 0x8d, 0x04, 0x07, //0x00008a9d leaq (%rdi,%r8), %rax - 0x48, 0x39, 0xc6, //0x00008aa1 cmpq %rax, %rsi - 0x0f, 0x83, 0x96, 0x00, 0x00, 0x00, //0x00008aa4 jae LBB36_12 - //0x00008aaa LBB36_4 - 0x49, 0x89, 0xf3, //0x00008aaa movq %rsi, %r11 - 0x4d, 0x89, 0xc1, //0x00008aad movq %r8, %r9 - 0x48, 0x89, 0xf8, //0x00008ab0 movq %rdi, %rax - //0x00008ab3 LBB36_17 - 0x41, 0xf6, 0xc1, 0x01, //0x00008ab3 testb $1, %r9b - 0x0f, 0x85, 0x12, 0x00, 0x00, 0x00, //0x00008ab7 jne LBB36_28 - 0x4d, 0x89, 0xc8, //0x00008abd movq %r9, %r8 - 0x49, 0x83, 0xf9, 0x01, //0x00008ac0 cmpq $1, %r9 - 0x0f, 0x85, 0x33, 0x00, 0x00, 0x00, //0x00008ac4 jne LBB36_30 - 0xe9, 0x6f, 0x00, 0x00, 0x00, //0x00008aca jmp LBB36_32 - //0x00008acf LBB36_28 - 0x41, 0x0f, 0xb6, 0x0b, //0x00008acf movzbl (%r11), %ecx - 0x8d, 0x71, 0xbf, //0x00008ad3 leal $-65(%rcx), %esi - 0x8d, 0x79, 0x20, //0x00008ad6 leal $32(%rcx), %edi - 0x40, 0x80, 0xfe, 0x1a, //0x00008ad9 cmpb $26, %sil - 0x40, 0x0f, 0xb6, 0xf7, //0x00008add movzbl %dil, %esi - 0x0f, 0x43, 0xf1, //0x00008ae1 cmovael %ecx, %esi - 0x4d, 0x8d, 0x41, 0xff, //0x00008ae4 leaq $-1(%r9), %r8 - 0x40, 0x88, 0x30, //0x00008ae8 movb %sil, (%rax) - 0x49, 0x83, 0xc3, 0x01, //0x00008aeb addq $1, %r11 - 0x48, 0x83, 0xc0, 0x01, //0x00008aef addq $1, %rax - 0x49, 0x83, 0xf9, 0x01, //0x00008af3 cmpq $1, %r9 - 0x0f, 0x84, 0x41, 0x00, 0x00, 0x00, //0x00008af7 je LBB36_32 - //0x00008afd LBB36_30 - 0x31, 0xf6, //0x00008afd xorl %esi, %esi - 0x90, //0x00008aff .p2align 4, 0x90 - //0x00008b00 LBB36_31 - 0x41, 0x0f, 0xb6, 0x3c, 0x33, //0x00008b00 movzbl (%r11,%rsi), %edi - 0x8d, 0x4f, 0xbf, //0x00008b05 leal $-65(%rdi), %ecx - 0x8d, 0x57, 0x20, //0x00008b08 leal $32(%rdi), %edx - 0x80, 0xf9, 0x1a, //0x00008b0b cmpb $26, %cl - 0x0f, 0xb6, 0xca, //0x00008b0e movzbl %dl, %ecx - 0x0f, 0x43, 0xcf, //0x00008b11 cmovael %edi, %ecx - 0x88, 0x0c, 0x30, //0x00008b14 movb %cl, (%rax,%rsi) - 0x41, 0x0f, 0xb6, 0x4c, 0x33, 0x01, //0x00008b17 movzbl $1(%r11,%rsi), %ecx - 0x8d, 0x51, 0xbf, //0x00008b1d leal $-65(%rcx), %edx - 0x8d, 0x79, 0x20, //0x00008b20 leal $32(%rcx), %edi - 0x80, 0xfa, 0x1a, //0x00008b23 cmpb $26, %dl - 0x40, 0x0f, 0xb6, 0xd7, //0x00008b26 movzbl %dil, %edx - 0x0f, 0x43, 0xd1, //0x00008b2a cmovael %ecx, %edx - 0x88, 0x54, 0x30, 0x01, //0x00008b2d movb %dl, $1(%rax,%rsi) - 0x48, 0x83, 0xc6, 0x02, //0x00008b31 addq $2, %rsi - 0x49, 0x39, 0xf0, //0x00008b35 cmpq %rsi, %r8 - 0x0f, 0x85, 0xc2, 0xff, 0xff, 0xff, //0x00008b38 jne LBB36_31 - //0x00008b3e LBB36_32 - 0x5d, //0x00008b3e popq %rbp - 0xc3, //0x00008b3f retq - //0x00008b40 LBB36_12 - 0x49, 0x83, 0xf8, 0x20, //0x00008b40 cmpq $32, %r8 - 0x0f, 0x83, 0x07, 0x00, 0x00, 0x00, //0x00008b44 jae LBB36_19 - 0x31, 0xc9, //0x00008b4a xorl %ecx, %ecx - 0xe9, 0xba, 0x01, 0x00, 0x00, //0x00008b4c jmp LBB36_14 - //0x00008b51 LBB36_19 - 0x4c, 0x89, 0xc1, //0x00008b51 movq %r8, %rcx - 0x48, 0x83, 0xe1, 0xe0, //0x00008b54 andq $-32, %rcx - 0x48, 0x8d, 0x41, 0xe0, //0x00008b58 leaq $-32(%rcx), %rax - 0x49, 0x89, 0xc1, //0x00008b5c movq %rax, %r9 - 0x49, 0xc1, 0xe9, 0x05, //0x00008b5f shrq $5, %r9 - 0x49, 0x83, 0xc1, 0x01, //0x00008b63 addq $1, %r9 - 0x48, 0x85, 0xc0, //0x00008b67 testq %rax, %rax - 0x0f, 0x84, 0x1d, 0x02, 0x00, 0x00, //0x00008b6a je LBB36_20 - 0x4c, 0x89, 0xca, //0x00008b70 movq %r9, %rdx - 0x48, 0x83, 0xe2, 0xfe, //0x00008b73 andq $-2, %rdx - 0x48, 0xf7, 0xda, //0x00008b77 negq %rdx - 0x31, 0xc0, //0x00008b7a xorl %eax, %eax - 0x66, 0x0f, 0x6f, 0x05, 0x8c, 0xfd, 0xff, 0xff, //0x00008b7c movdqa $-628(%rip), %xmm0 /* LCPI36_3+0(%rip) */ - 0x66, 0x0f, 0x6f, 0x0d, 0x94, 0xfd, 0xff, 0xff, //0x00008b84 movdqa $-620(%rip), %xmm1 /* LCPI36_4+0(%rip) */ - 0x66, 0x0f, 0x6f, 0x15, 0x9c, 0xfd, 0xff, 0xff, //0x00008b8c movdqa $-612(%rip), %xmm2 /* LCPI36_5+0(%rip) */ - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008b94 .p2align 4, 0x90 - //0x00008ba0 LBB36_22 - 0xf3, 0x0f, 0x6f, 0x1c, 0x06, //0x00008ba0 movdqu (%rsi,%rax), %xmm3 - 0xf3, 0x0f, 0x6f, 0x64, 0x06, 0x10, //0x00008ba5 movdqu $16(%rsi,%rax), %xmm4 - 0x66, 0x0f, 0x6f, 0xeb, //0x00008bab movdqa %xmm3, %xmm5 - 0x66, 0x0f, 0xfc, 0xe8, //0x00008baf paddb %xmm0, %xmm5 - 0x66, 0x0f, 0x6f, 0xf4, //0x00008bb3 movdqa %xmm4, %xmm6 - 0x66, 0x0f, 0xfc, 0xf0, //0x00008bb7 paddb %xmm0, %xmm6 - 0x66, 0x0f, 0x6f, 0xfd, //0x00008bbb movdqa %xmm5, %xmm7 - 0x66, 0x0f, 0xda, 0xf9, //0x00008bbf pminub %xmm1, %xmm7 - 0x66, 0x0f, 0x74, 0xfd, //0x00008bc3 pcmpeqb %xmm5, %xmm7 - 0x66, 0x0f, 0x6f, 0xee, //0x00008bc7 movdqa %xmm6, %xmm5 - 0x66, 0x0f, 0xda, 0xe9, //0x00008bcb pminub %xmm1, %xmm5 - 0x66, 0x0f, 0x74, 0xee, //0x00008bcf pcmpeqb %xmm6, %xmm5 - 0x66, 0x0f, 0x6f, 0xf7, //0x00008bd3 movdqa %xmm7, %xmm6 - 0x66, 0x0f, 0xdf, 0xf3, //0x00008bd7 pandn %xmm3, %xmm6 - 0x66, 0x0f, 0xfc, 0xda, //0x00008bdb paddb %xmm2, %xmm3 - 0x66, 0x0f, 0xdb, 0xdf, //0x00008bdf pand %xmm7, %xmm3 - 0x66, 0x0f, 0xeb, 0xde, //0x00008be3 por %xmm6, %xmm3 - 0x66, 0x0f, 0x6f, 0xf5, //0x00008be7 movdqa %xmm5, %xmm6 - 0x66, 0x0f, 0xdf, 0xf4, //0x00008beb pandn %xmm4, %xmm6 - 0x66, 0x0f, 0xfc, 0xe2, //0x00008bef paddb %xmm2, %xmm4 - 0x66, 0x0f, 0xdb, 0xe5, //0x00008bf3 pand %xmm5, %xmm4 - 0x66, 0x0f, 0xeb, 0xe6, //0x00008bf7 por %xmm6, %xmm4 - 0xf3, 0x0f, 0x7f, 0x1c, 0x07, //0x00008bfb movdqu %xmm3, (%rdi,%rax) - 0xf3, 0x0f, 0x7f, 0x64, 0x07, 0x10, //0x00008c00 movdqu %xmm4, $16(%rdi,%rax) - 0xf3, 0x0f, 0x6f, 0x5c, 0x06, 0x20, //0x00008c06 movdqu $32(%rsi,%rax), %xmm3 - 0xf3, 0x0f, 0x6f, 0x64, 0x06, 0x30, //0x00008c0c movdqu $48(%rsi,%rax), %xmm4 - 0x66, 0x0f, 0x6f, 0xeb, //0x00008c12 movdqa %xmm3, %xmm5 - 0x66, 0x0f, 0xfc, 0xe8, //0x00008c16 paddb %xmm0, %xmm5 - 0x66, 0x0f, 0x6f, 0xf4, //0x00008c1a movdqa %xmm4, %xmm6 - 0x66, 0x0f, 0xfc, 0xf0, //0x00008c1e paddb %xmm0, %xmm6 - 0x66, 0x0f, 0x6f, 0xfd, //0x00008c22 movdqa %xmm5, %xmm7 - 0x66, 0x0f, 0xda, 0xf9, //0x00008c26 pminub %xmm1, %xmm7 - 0x66, 0x0f, 0x74, 0xfd, //0x00008c2a pcmpeqb %xmm5, %xmm7 - 0x66, 0x0f, 0x6f, 0xee, //0x00008c2e movdqa %xmm6, %xmm5 - 0x66, 0x0f, 0xda, 0xe9, //0x00008c32 pminub %xmm1, %xmm5 - 0x66, 0x0f, 0x74, 0xee, //0x00008c36 pcmpeqb %xmm6, %xmm5 - 0x66, 0x0f, 0x6f, 0xf7, //0x00008c3a movdqa %xmm7, %xmm6 - 0x66, 0x0f, 0xdf, 0xf3, //0x00008c3e pandn %xmm3, %xmm6 - 0x66, 0x0f, 0xfc, 0xda, //0x00008c42 paddb %xmm2, %xmm3 - 0x66, 0x0f, 0xdb, 0xdf, //0x00008c46 pand %xmm7, %xmm3 - 0x66, 0x0f, 0xeb, 0xde, //0x00008c4a por %xmm6, %xmm3 - 0x66, 0x0f, 0x6f, 0xf5, //0x00008c4e movdqa %xmm5, %xmm6 - 0x66, 0x0f, 0xdf, 0xf4, //0x00008c52 pandn %xmm4, %xmm6 - 0x66, 0x0f, 0xfc, 0xe2, //0x00008c56 paddb %xmm2, %xmm4 - 0x66, 0x0f, 0xdb, 0xe5, //0x00008c5a pand %xmm5, %xmm4 - 0x66, 0x0f, 0xeb, 0xe6, //0x00008c5e por %xmm6, %xmm4 - 0xf3, 0x0f, 0x7f, 0x5c, 0x07, 0x20, //0x00008c62 movdqu %xmm3, $32(%rdi,%rax) - 0xf3, 0x0f, 0x7f, 0x64, 0x07, 0x30, //0x00008c68 movdqu %xmm4, $48(%rdi,%rax) - 0x48, 0x83, 0xc0, 0x40, //0x00008c6e addq $64, %rax - 0x48, 0x83, 0xc2, 0x02, //0x00008c72 addq $2, %rdx - 0x0f, 0x85, 0x24, 0xff, 0xff, 0xff, //0x00008c76 jne LBB36_22 - 0x41, 0xf6, 0xc1, 0x01, //0x00008c7c testb $1, %r9b - 0x0f, 0x84, 0x72, 0x00, 0x00, 0x00, //0x00008c80 je LBB36_25 - //0x00008c86 LBB36_24 - 0xf3, 0x0f, 0x6f, 0x04, 0x06, //0x00008c86 movdqu (%rsi,%rax), %xmm0 - 0xf3, 0x0f, 0x6f, 0x4c, 0x06, 0x10, //0x00008c8b movdqu $16(%rsi,%rax), %xmm1 - 0x66, 0x0f, 0x6f, 0x15, 0x77, 0xfc, 0xff, 0xff, //0x00008c91 movdqa $-905(%rip), %xmm2 /* LCPI36_3+0(%rip) */ - 0x66, 0x0f, 0x6f, 0xd8, //0x00008c99 movdqa %xmm0, %xmm3 - 0x66, 0x0f, 0xfc, 0xda, //0x00008c9d paddb %xmm2, %xmm3 - 0x66, 0x0f, 0xfc, 0xd1, //0x00008ca1 paddb %xmm1, %xmm2 - 0x66, 0x0f, 0x6f, 0x25, 0x73, 0xfc, 0xff, 0xff, //0x00008ca5 movdqa $-909(%rip), %xmm4 /* LCPI36_4+0(%rip) */ - 0x66, 0x0f, 0x6f, 0xeb, //0x00008cad movdqa %xmm3, %xmm5 - 0x66, 0x0f, 0xda, 0xec, //0x00008cb1 pminub %xmm4, %xmm5 - 0x66, 0x0f, 0x74, 0xeb, //0x00008cb5 pcmpeqb %xmm3, %xmm5 - 0x66, 0x0f, 0xda, 0xe2, //0x00008cb9 pminub %xmm2, %xmm4 - 0x66, 0x0f, 0x74, 0xe2, //0x00008cbd pcmpeqb %xmm2, %xmm4 - 0x66, 0x0f, 0x6f, 0x15, 0x67, 0xfc, 0xff, 0xff, //0x00008cc1 movdqa $-921(%rip), %xmm2 /* LCPI36_5+0(%rip) */ - 0x66, 0x0f, 0x6f, 0xdd, //0x00008cc9 movdqa %xmm5, %xmm3 - 0x66, 0x0f, 0xdf, 0xd8, //0x00008ccd pandn %xmm0, %xmm3 - 0x66, 0x0f, 0xfc, 0xc2, //0x00008cd1 paddb %xmm2, %xmm0 - 0x66, 0x0f, 0xfc, 0xd1, //0x00008cd5 paddb %xmm1, %xmm2 - 0x66, 0x0f, 0xdb, 0xc5, //0x00008cd9 pand %xmm5, %xmm0 - 0x66, 0x0f, 0xeb, 0xc3, //0x00008cdd por %xmm3, %xmm0 - 0x66, 0x0f, 0xdb, 0xd4, //0x00008ce1 pand %xmm4, %xmm2 - 0x66, 0x0f, 0xdf, 0xe1, //0x00008ce5 pandn %xmm1, %xmm4 - 0x66, 0x0f, 0xeb, 0xe2, //0x00008ce9 por %xmm2, %xmm4 - 0xf3, 0x0f, 0x7f, 0x04, 0x07, //0x00008ced movdqu %xmm0, (%rdi,%rax) - 0xf3, 0x0f, 0x7f, 0x64, 0x07, 0x10, //0x00008cf2 movdqu %xmm4, $16(%rdi,%rax) - //0x00008cf8 LBB36_25 - 0x49, 0x39, 0xc8, //0x00008cf8 cmpq %rcx, %r8 - 0x0f, 0x84, 0x3d, 0xfe, 0xff, 0xff, //0x00008cfb je LBB36_32 - 0x41, 0xf6, 0xc0, 0x18, //0x00008d01 testb $24, %r8b - 0x0f, 0x84, 0x93, 0x00, 0x00, 0x00, //0x00008d05 je LBB36_27 - //0x00008d0b LBB36_14 - 0x4d, 0x89, 0xc2, //0x00008d0b movq %r8, %r10 - 0x49, 0x83, 0xe2, 0xf8, //0x00008d0e andq $-8, %r10 - 0x4e, 0x8d, 0x1c, 0x16, //0x00008d12 leaq (%rsi,%r10), %r11 - 0x45, 0x89, 0xc1, //0x00008d16 movl %r8d, %r9d - 0x41, 0x83, 0xe1, 0x07, //0x00008d19 andl $7, %r9d - 0x4a, 0x8d, 0x04, 0x17, //0x00008d1d leaq (%rdi,%r10), %rax - 0x66, 0x0f, 0x6f, 0x05, 0x17, 0xfc, 0xff, 0xff, //0x00008d21 movdqa $-1001(%rip), %xmm0 /* LCPI36_6+0(%rip) */ - 0x66, 0x0f, 0x6f, 0x0d, 0x1f, 0xfc, 0xff, 0xff, //0x00008d29 movdqa $-993(%rip), %xmm1 /* LCPI36_7+0(%rip) */ - 0x66, 0x0f, 0x6f, 0x15, 0x27, 0xfc, 0xff, 0xff, //0x00008d31 movdqa $-985(%rip), %xmm2 /* LCPI36_8+0(%rip) */ - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008d39 .p2align 4, 0x90 - //0x00008d40 LBB36_15 - 0xf3, 0x0f, 0x7e, 0x1c, 0x0e, //0x00008d40 movq (%rsi,%rcx), %xmm3 - 0x66, 0x0f, 0x6f, 0xe3, //0x00008d45 movdqa %xmm3, %xmm4 - 0x66, 0x0f, 0xfc, 0xe0, //0x00008d49 paddb %xmm0, %xmm4 - 0x66, 0x0f, 0x6f, 0xec, //0x00008d4d movdqa %xmm4, %xmm5 - 0x66, 0x0f, 0xde, 0xe9, //0x00008d51 pmaxub %xmm1, %xmm5 - 0x66, 0x0f, 0x74, 0xec, //0x00008d55 pcmpeqb %xmm4, %xmm5 - 0x66, 0x0f, 0x6f, 0xe5, //0x00008d59 movdqa %xmm5, %xmm4 - 0x66, 0x0f, 0xdb, 0xe3, //0x00008d5d pand %xmm3, %xmm4 - 0x66, 0x0f, 0xfc, 0xda, //0x00008d61 paddb %xmm2, %xmm3 - 0x66, 0x0f, 0xdf, 0xeb, //0x00008d65 pandn %xmm3, %xmm5 - 0x66, 0x0f, 0xeb, 0xec, //0x00008d69 por %xmm4, %xmm5 - 0x66, 0x0f, 0xd6, 0x2c, 0x0f, //0x00008d6d movq %xmm5, (%rdi,%rcx) - 0x48, 0x83, 0xc1, 0x08, //0x00008d72 addq $8, %rcx - 0x49, 0x39, 0xca, //0x00008d76 cmpq %rcx, %r10 - 0x0f, 0x85, 0xc1, 0xff, 0xff, 0xff, //0x00008d79 jne LBB36_15 - 0x4d, 0x39, 0xd0, //0x00008d7f cmpq %r10, %r8 - 0x0f, 0x85, 0x2b, 0xfd, 0xff, 0xff, //0x00008d82 jne LBB36_17 - 0xe9, 0xb1, 0xfd, 0xff, 0xff, //0x00008d88 jmp LBB36_32 - //0x00008d8d LBB36_20 - 0x31, 0xc0, //0x00008d8d xorl %eax, %eax - 0x41, 0xf6, 0xc1, 0x01, //0x00008d8f testb $1, %r9b - 0x0f, 0x85, 0xed, 0xfe, 0xff, 0xff, //0x00008d93 jne LBB36_24 - 0xe9, 0x5a, 0xff, 0xff, 0xff, //0x00008d99 jmp LBB36_25 - //0x00008d9e LBB36_27 - 0x48, 0x01, 0xcf, //0x00008d9e addq %rcx, %rdi - 0x41, 0x83, 0xe0, 0x1f, //0x00008da1 andl $31, %r8d - 0x48, 0x01, 0xce, //0x00008da5 addq %rcx, %rsi - 0xe9, 0xfd, 0xfc, 0xff, 0xff, //0x00008da8 jmp LBB36_4 - 0x90, 0x90, 0x90, //0x00008dad .p2align 4, 0x90 - //0x00008db0 _format_significand - 0x55, //0x00008db0 pushq %rbp - 0x48, 0x89, 0xe5, //0x00008db1 movq %rsp, %rbp - 0x41, 0x56, //0x00008db4 pushq %r14 - 0x53, //0x00008db6 pushq %rbx - 0x4c, 0x63, 0xc2, //0x00008db7 movslq %edx, %r8 - 0x49, 0x01, 0xf0, //0x00008dba addq %rsi, %r8 - 0x48, 0x89, 0xf8, //0x00008dbd movq %rdi, %rax - 0x48, 0xc1, 0xe8, 0x20, //0x00008dc0 shrq $32, %rax - 0x0f, 0x85, 0x1c, 0x00, 0x00, 0x00, //0x00008dc4 jne LBB37_2 - 0x45, 0x31, 0xc9, //0x00008dca xorl %r9d, %r9d - 0x4d, 0x89, 0xc6, //0x00008dcd movq %r8, %r14 - 0x48, 0x89, 0xfa, //0x00008dd0 movq %rdi, %rdx - 0x81, 0xfa, 0x10, 0x27, 0x00, 0x00, //0x00008dd3 cmpl $10000, %edx - 0x0f, 0x83, 0xe3, 0x00, 0x00, 0x00, //0x00008dd9 jae LBB37_8 - //0x00008ddf LBB37_7 - 0x89, 0xd7, //0x00008ddf movl %edx, %edi - 0xe9, 0x32, 0x01, 0x00, 0x00, //0x00008de1 jmp LBB37_10 - //0x00008de6 LBB37_2 - 0x48, 0xb9, 0xfd, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x00008de6 movabsq $-6067343680855748867, %rcx - 0x48, 0x89, 0xf8, //0x00008df0 movq %rdi, %rax - 0x48, 0xf7, 0xe1, //0x00008df3 mulq %rcx - 0x48, 0xc1, 0xea, 0x1a, //0x00008df6 shrq $26, %rdx - 0x69, 0xca, 0x00, 0x1f, 0x0a, 0xfa, //0x00008dfa imull $-100000000, %edx, %ecx - 0x01, 0xf9, //0x00008e00 addl %edi, %ecx - 0x0f, 0x84, 0xa4, 0x00, 0x00, 0x00, //0x00008e02 je LBB37_3 - 0x89, 0xc8, //0x00008e08 movl %ecx, %eax - 0x41, 0xb9, 0x59, 0x17, 0xb7, 0xd1, //0x00008e0a movl $3518437209, %r9d - 0x49, 0x0f, 0xaf, 0xc1, //0x00008e10 imulq %r9, %rax - 0x48, 0xc1, 0xe8, 0x2d, //0x00008e14 shrq $45, %rax - 0x69, 0xf8, 0x10, 0x27, 0x00, 0x00, //0x00008e18 imull $10000, %eax, %edi - 0x29, 0xf9, //0x00008e1e subl %edi, %ecx - 0x48, 0x89, 0xc7, //0x00008e20 movq %rax, %rdi - 0x49, 0x0f, 0xaf, 0xf9, //0x00008e23 imulq %r9, %rdi - 0x48, 0xc1, 0xef, 0x2d, //0x00008e27 shrq $45, %rdi - 0x69, 0xff, 0x10, 0x27, 0x00, 0x00, //0x00008e2b imull $10000, %edi, %edi - 0x29, 0xf8, //0x00008e31 subl %edi, %eax - 0x0f, 0xb7, 0xf9, //0x00008e33 movzwl %cx, %edi - 0xc1, 0xef, 0x02, //0x00008e36 shrl $2, %edi - 0x44, 0x69, 0xcf, 0x7b, 0x14, 0x00, 0x00, //0x00008e39 imull $5243, %edi, %r9d - 0x41, 0xc1, 0xe9, 0x11, //0x00008e40 shrl $17, %r9d - 0x41, 0x6b, 0xf9, 0x64, //0x00008e44 imull $100, %r9d, %edi - 0x29, 0xf9, //0x00008e48 subl %edi, %ecx - 0x44, 0x0f, 0xb7, 0xd1, //0x00008e4a movzwl %cx, %r10d - 0x0f, 0xb7, 0xf8, //0x00008e4e movzwl %ax, %edi - 0xc1, 0xef, 0x02, //0x00008e51 shrl $2, %edi - 0x69, 0xff, 0x7b, 0x14, 0x00, 0x00, //0x00008e54 imull $5243, %edi, %edi - 0xc1, 0xef, 0x11, //0x00008e5a shrl $17, %edi - 0x6b, 0xcf, 0x64, //0x00008e5d imull $100, %edi, %ecx - 0x29, 0xc8, //0x00008e60 subl %ecx, %eax - 0x44, 0x0f, 0xb7, 0xd8, //0x00008e62 movzwl %ax, %r11d - 0x48, 0x8d, 0x0d, 0x73, 0x37, 0x00, 0x00, //0x00008e66 leaq $14195(%rip), %rcx /* _Digits+0(%rip) */ - 0x42, 0x0f, 0xb7, 0x04, 0x51, //0x00008e6d movzwl (%rcx,%r10,2), %eax - 0x66, 0x41, 0x89, 0x40, 0xfe, //0x00008e72 movw %ax, $-2(%r8) - 0x42, 0x0f, 0xb7, 0x04, 0x49, //0x00008e77 movzwl (%rcx,%r9,2), %eax - 0x66, 0x41, 0x89, 0x40, 0xfc, //0x00008e7c movw %ax, $-4(%r8) - 0x42, 0x0f, 0xb7, 0x04, 0x59, //0x00008e81 movzwl (%rcx,%r11,2), %eax - 0x66, 0x41, 0x89, 0x40, 0xfa, //0x00008e86 movw %ax, $-6(%r8) - 0x0f, 0xb7, 0x04, 0x79, //0x00008e8b movzwl (%rcx,%rdi,2), %eax - 0x66, 0x41, 0x89, 0x40, 0xf8, //0x00008e8f movw %ax, $-8(%r8) - 0x45, 0x31, 0xc9, //0x00008e94 xorl %r9d, %r9d - 0x4d, 0x8d, 0x70, 0xf8, //0x00008e97 leaq $-8(%r8), %r14 - 0x81, 0xfa, 0x10, 0x27, 0x00, 0x00, //0x00008e9b cmpl $10000, %edx - 0x0f, 0x82, 0x38, 0xff, 0xff, 0xff, //0x00008ea1 jb LBB37_7 - 0xe9, 0x16, 0x00, 0x00, 0x00, //0x00008ea7 jmp LBB37_8 - //0x00008eac LBB37_3 - 0x41, 0xb9, 0x08, 0x00, 0x00, 0x00, //0x00008eac movl $8, %r9d - 0x4d, 0x8d, 0x70, 0xf8, //0x00008eb2 leaq $-8(%r8), %r14 - 0x81, 0xfa, 0x10, 0x27, 0x00, 0x00, //0x00008eb6 cmpl $10000, %edx - 0x0f, 0x82, 0x1d, 0xff, 0xff, 0xff, //0x00008ebc jb LBB37_7 - //0x00008ec2 LBB37_8 - 0x41, 0xba, 0x59, 0x17, 0xb7, 0xd1, //0x00008ec2 movl $3518437209, %r10d - 0x4c, 0x8d, 0x1d, 0x11, 0x37, 0x00, 0x00, //0x00008ec8 leaq $14097(%rip), %r11 /* _Digits+0(%rip) */ - 0x90, //0x00008ecf .p2align 4, 0x90 - //0x00008ed0 LBB37_9 - 0x89, 0xd7, //0x00008ed0 movl %edx, %edi - 0x49, 0x0f, 0xaf, 0xfa, //0x00008ed2 imulq %r10, %rdi - 0x48, 0xc1, 0xef, 0x2d, //0x00008ed6 shrq $45, %rdi - 0x69, 0xc7, 0xf0, 0xd8, 0xff, 0xff, //0x00008eda imull $-10000, %edi, %eax - 0x01, 0xd0, //0x00008ee0 addl %edx, %eax - 0x48, 0x69, 0xd8, 0x1f, 0x85, 0xeb, 0x51, //0x00008ee2 imulq $1374389535, %rax, %rbx - 0x48, 0xc1, 0xeb, 0x25, //0x00008ee9 shrq $37, %rbx - 0x6b, 0xcb, 0x64, //0x00008eed imull $100, %ebx, %ecx - 0x29, 0xc8, //0x00008ef0 subl %ecx, %eax - 0x41, 0x0f, 0xb7, 0x04, 0x43, //0x00008ef2 movzwl (%r11,%rax,2), %eax - 0x66, 0x41, 0x89, 0x46, 0xfe, //0x00008ef7 movw %ax, $-2(%r14) - 0x41, 0x0f, 0xb7, 0x04, 0x5b, //0x00008efc movzwl (%r11,%rbx,2), %eax - 0x66, 0x41, 0x89, 0x46, 0xfc, //0x00008f01 movw %ax, $-4(%r14) - 0x49, 0x83, 0xc6, 0xfc, //0x00008f06 addq $-4, %r14 - 0x81, 0xfa, 0xff, 0xe0, 0xf5, 0x05, //0x00008f0a cmpl $99999999, %edx - 0x89, 0xfa, //0x00008f10 movl %edi, %edx - 0x0f, 0x87, 0xb8, 0xff, 0xff, 0xff, //0x00008f12 ja LBB37_9 - //0x00008f18 LBB37_10 - 0x83, 0xff, 0x64, //0x00008f18 cmpl $100, %edi - 0x0f, 0x83, 0x20, 0x00, 0x00, 0x00, //0x00008f1b jae LBB37_11 - 0x83, 0xff, 0x0a, //0x00008f21 cmpl $10, %edi - 0x0f, 0x82, 0x4d, 0x00, 0x00, 0x00, //0x00008f24 jb LBB37_14 - //0x00008f2a LBB37_13 - 0x89, 0xf8, //0x00008f2a movl %edi, %eax - 0x48, 0x8d, 0x0d, 0xad, 0x36, 0x00, 0x00, //0x00008f2c leaq $13997(%rip), %rcx /* _Digits+0(%rip) */ - 0x0f, 0xb7, 0x04, 0x41, //0x00008f33 movzwl (%rcx,%rax,2), %eax - 0x66, 0x41, 0x89, 0x46, 0xfe, //0x00008f37 movw %ax, $-2(%r14) - 0xe9, 0x3d, 0x00, 0x00, 0x00, //0x00008f3c jmp LBB37_15 - //0x00008f41 LBB37_11 - 0x0f, 0xb7, 0xc7, //0x00008f41 movzwl %di, %eax - 0xc1, 0xe8, 0x02, //0x00008f44 shrl $2, %eax - 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x00008f47 imull $5243, %eax, %eax - 0xc1, 0xe8, 0x11, //0x00008f4d shrl $17, %eax - 0x6b, 0xc8, 0x64, //0x00008f50 imull $100, %eax, %ecx - 0x29, 0xcf, //0x00008f53 subl %ecx, %edi - 0x0f, 0xb7, 0xcf, //0x00008f55 movzwl %di, %ecx - 0x48, 0x8d, 0x15, 0x81, 0x36, 0x00, 0x00, //0x00008f58 leaq $13953(%rip), %rdx /* _Digits+0(%rip) */ - 0x0f, 0xb7, 0x0c, 0x4a, //0x00008f5f movzwl (%rdx,%rcx,2), %ecx - 0x66, 0x41, 0x89, 0x4e, 0xfe, //0x00008f63 movw %cx, $-2(%r14) - 0x49, 0x83, 0xc6, 0xfe, //0x00008f68 addq $-2, %r14 - 0x89, 0xc7, //0x00008f6c movl %eax, %edi - 0x83, 0xff, 0x0a, //0x00008f6e cmpl $10, %edi - 0x0f, 0x83, 0xb3, 0xff, 0xff, 0xff, //0x00008f71 jae LBB37_13 - //0x00008f77 LBB37_14 - 0x40, 0x80, 0xc7, 0x30, //0x00008f77 addb $48, %dil - 0x40, 0x88, 0x3e, //0x00008f7b movb %dil, (%rsi) - //0x00008f7e LBB37_15 - 0x4d, 0x29, 0xc8, //0x00008f7e subq %r9, %r8 - 0x4c, 0x89, 0xc0, //0x00008f81 movq %r8, %rax - 0x5b, //0x00008f84 popq %rbx - 0x41, 0x5e, //0x00008f85 popq %r14 - 0x5d, //0x00008f87 popq %rbp - 0xc3, //0x00008f88 retq - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008f89 .p2align 4, 0x90 - //0x00008f90 _left_shift - 0x55, //0x00008f90 pushq %rbp - 0x48, 0x89, 0xe5, //0x00008f91 movq %rsp, %rbp - 0x41, 0x57, //0x00008f94 pushq %r15 - 0x41, 0x56, //0x00008f96 pushq %r14 - 0x53, //0x00008f98 pushq %rbx - 0x89, 0xf1, //0x00008f99 movl %esi, %ecx - 0x4c, 0x6b, 0xf1, 0x68, //0x00008f9b imulq $104, %rcx, %r14 - 0x48, 0x8d, 0x15, 0x2a, 0x90, 0x00, 0x00, //0x00008f9f leaq $36906(%rip), %rdx /* _LSHIFT_TAB+0(%rip) */ - 0x45, 0x8b, 0x04, 0x16, //0x00008fa6 movl (%r14,%rdx), %r8d - 0x4c, 0x8b, 0x1f, //0x00008faa movq (%rdi), %r11 - 0x4c, 0x63, 0x4f, 0x10, //0x00008fad movslq $16(%rdi), %r9 - 0x45, 0x89, 0xca, //0x00008fb1 movl %r9d, %r10d - 0x4d, 0x85, 0xc9, //0x00008fb4 testq %r9, %r9 - 0x0f, 0x84, 0x4c, 0x00, 0x00, 0x00, //0x00008fb7 je LBB38_1 - 0x49, 0x8d, 0x34, 0x16, //0x00008fbd leaq (%r14,%rdx), %rsi - 0x48, 0x83, 0xc6, 0x04, //0x00008fc1 addq $4, %rsi - 0x31, 0xdb, //0x00008fc5 xorl %ebx, %ebx - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008fc7 .p2align 4, 0x90 - //0x00008fd0 LBB38_3 - 0x0f, 0xb6, 0x04, 0x1e, //0x00008fd0 movzbl (%rsi,%rbx), %eax - 0x84, 0xc0, //0x00008fd4 testb %al, %al - 0x0f, 0x84, 0x41, 0x00, 0x00, 0x00, //0x00008fd6 je LBB38_10 - 0x41, 0x38, 0x04, 0x1b, //0x00008fdc cmpb %al, (%r11,%rbx) - 0x0f, 0x85, 0xba, 0x01, 0x00, 0x00, //0x00008fe0 jne LBB38_5 - 0x48, 0x83, 0xc3, 0x01, //0x00008fe6 addq $1, %rbx - 0x49, 0x39, 0xd9, //0x00008fea cmpq %rbx, %r9 - 0x0f, 0x85, 0xdd, 0xff, 0xff, 0xff, //0x00008fed jne LBB38_3 - 0x44, 0x89, 0xce, //0x00008ff3 movl %r9d, %esi - 0x4c, 0x01, 0xf2, //0x00008ff6 addq %r14, %rdx - 0x80, 0x7c, 0x16, 0x04, 0x00, //0x00008ff9 cmpb $0, $4(%rsi,%rdx) - 0x0f, 0x85, 0x15, 0x00, 0x00, 0x00, //0x00008ffe jne LBB38_9 - 0xe9, 0x14, 0x00, 0x00, 0x00, //0x00009004 jmp LBB38_10 - //0x00009009 LBB38_1 - 0x31, 0xf6, //0x00009009 xorl %esi, %esi - 0x4c, 0x01, 0xf2, //0x0000900b addq %r14, %rdx - 0x80, 0x7c, 0x16, 0x04, 0x00, //0x0000900e cmpb $0, $4(%rsi,%rdx) - 0x0f, 0x84, 0x04, 0x00, 0x00, 0x00, //0x00009013 je LBB38_10 - //0x00009019 LBB38_9 - 0x41, 0x83, 0xc0, 0xff, //0x00009019 addl $-1, %r8d - //0x0000901d LBB38_10 - 0x45, 0x85, 0xd2, //0x0000901d testl %r10d, %r10d - 0x0f, 0x8e, 0xa2, 0x00, 0x00, 0x00, //0x00009020 jle LBB38_25 - 0x43, 0x8d, 0x04, 0x10, //0x00009026 leal (%r8,%r10), %eax - 0x4c, 0x63, 0xf8, //0x0000902a movslq %eax, %r15 - 0x41, 0x83, 0xc1, 0xff, //0x0000902d addl $-1, %r9d - 0x49, 0x83, 0xc7, 0xff, //0x00009031 addq $-1, %r15 - 0x31, 0xd2, //0x00009035 xorl %edx, %edx - 0x49, 0xbe, 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x00009037 movabsq $-3689348814741910323, %r14 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00009041 .p2align 4, 0x90 - //0x00009050 LBB38_12 - 0x44, 0x89, 0xc8, //0x00009050 movl %r9d, %eax - 0x49, 0x0f, 0xbe, 0x34, 0x03, //0x00009053 movsbq (%r11,%rax), %rsi - 0x48, 0x83, 0xc6, 0xd0, //0x00009058 addq $-48, %rsi - 0x48, 0xd3, 0xe6, //0x0000905c shlq %cl, %rsi - 0x48, 0x01, 0xd6, //0x0000905f addq %rdx, %rsi - 0x48, 0x89, 0xf0, //0x00009062 movq %rsi, %rax - 0x49, 0xf7, 0xe6, //0x00009065 mulq %r14 - 0x48, 0xc1, 0xea, 0x03, //0x00009068 shrq $3, %rdx - 0x48, 0x8d, 0x04, 0x12, //0x0000906c leaq (%rdx,%rdx), %rax - 0x48, 0x8d, 0x1c, 0x80, //0x00009070 leaq (%rax,%rax,4), %rbx - 0x48, 0x89, 0xf0, //0x00009074 movq %rsi, %rax - 0x48, 0x29, 0xd8, //0x00009077 subq %rbx, %rax - 0x4c, 0x39, 0x7f, 0x08, //0x0000907a cmpq %r15, $8(%rdi) - 0x0f, 0x86, 0x0c, 0x00, 0x00, 0x00, //0x0000907e jbe LBB38_18 - 0x04, 0x30, //0x00009084 addb $48, %al - 0x43, 0x88, 0x04, 0x3b, //0x00009086 movb %al, (%r11,%r15) - 0xe9, 0x11, 0x00, 0x00, 0x00, //0x0000908a jmp LBB38_20 - 0x90, //0x0000908f .p2align 4, 0x90 - //0x00009090 LBB38_18 - 0x48, 0x85, 0xc0, //0x00009090 testq %rax, %rax - 0x0f, 0x84, 0x07, 0x00, 0x00, 0x00, //0x00009093 je LBB38_20 - 0xc7, 0x47, 0x1c, 0x01, 0x00, 0x00, 0x00, //0x00009099 movl $1, $28(%rdi) - //0x000090a0 LBB38_20 - 0x49, 0x83, 0xfa, 0x02, //0x000090a0 cmpq $2, %r10 - 0x0f, 0x8c, 0x14, 0x00, 0x00, 0x00, //0x000090a4 jl LBB38_14 - 0x49, 0x83, 0xc2, 0xff, //0x000090aa addq $-1, %r10 - 0x4c, 0x8b, 0x1f, //0x000090ae movq (%rdi), %r11 - 0x41, 0x83, 0xc1, 0xff, //0x000090b1 addl $-1, %r9d - 0x49, 0x83, 0xc7, 0xff, //0x000090b5 addq $-1, %r15 - 0xe9, 0x92, 0xff, 0xff, 0xff, //0x000090b9 jmp LBB38_12 - //0x000090be LBB38_14 - 0x48, 0x83, 0xfe, 0x0a, //0x000090be cmpq $10, %rsi - 0x0f, 0x83, 0x71, 0x00, 0x00, 0x00, //0x000090c2 jae LBB38_15 - //0x000090c8 LBB38_25 - 0x48, 0x63, 0x4f, 0x10, //0x000090c8 movslq $16(%rdi), %rcx - 0x49, 0x63, 0xc0, //0x000090cc movslq %r8d, %rax - 0x48, 0x01, 0xc8, //0x000090cf addq %rcx, %rax - 0x89, 0x47, 0x10, //0x000090d2 movl %eax, $16(%rdi) - 0x48, 0x8b, 0x4f, 0x08, //0x000090d5 movq $8(%rdi), %rcx - 0x48, 0x39, 0xc1, //0x000090d9 cmpq %rax, %rcx - 0x0f, 0x87, 0x05, 0x00, 0x00, 0x00, //0x000090dc ja LBB38_27 - 0x89, 0x4f, 0x10, //0x000090e2 movl %ecx, $16(%rdi) - 0x89, 0xc8, //0x000090e5 movl %ecx, %eax - //0x000090e7 LBB38_27 - 0x44, 0x01, 0x47, 0x14, //0x000090e7 addl %r8d, $20(%rdi) - 0x85, 0xc0, //0x000090eb testl %eax, %eax - 0x0f, 0x8e, 0x32, 0x00, 0x00, 0x00, //0x000090ed jle LBB38_31 - 0x48, 0x8b, 0x0f, //0x000090f3 movq (%rdi), %rcx - 0x89, 0xc2, //0x000090f6 movl %eax, %edx - 0x48, 0x83, 0xc2, 0x01, //0x000090f8 addq $1, %rdx - 0x83, 0xc0, 0xff, //0x000090fc addl $-1, %eax - 0x90, //0x000090ff .p2align 4, 0x90 - //0x00009100 LBB38_29 - 0x89, 0xc6, //0x00009100 movl %eax, %esi - 0x80, 0x3c, 0x31, 0x30, //0x00009102 cmpb $48, (%rcx,%rsi) - 0x0f, 0x85, 0x26, 0x00, 0x00, 0x00, //0x00009106 jne LBB38_33 - 0x89, 0x47, 0x10, //0x0000910c movl %eax, $16(%rdi) - 0x48, 0x83, 0xc2, 0xff, //0x0000910f addq $-1, %rdx - 0x83, 0xc0, 0xff, //0x00009113 addl $-1, %eax - 0x48, 0x83, 0xfa, 0x01, //0x00009116 cmpq $1, %rdx - 0x0f, 0x8f, 0xe0, 0xff, 0xff, 0xff, //0x0000911a jg LBB38_29 - 0xe9, 0x06, 0x00, 0x00, 0x00, //0x00009120 jmp LBB38_32 - //0x00009125 LBB38_31 - 0x0f, 0x85, 0x07, 0x00, 0x00, 0x00, //0x00009125 jne LBB38_33 - //0x0000912b LBB38_32 - 0xc7, 0x47, 0x14, 0x00, 0x00, 0x00, 0x00, //0x0000912b movl $0, $20(%rdi) - //0x00009132 LBB38_33 - 0x5b, //0x00009132 popq %rbx - 0x41, 0x5e, //0x00009133 popq %r14 - 0x41, 0x5f, //0x00009135 popq %r15 - 0x5d, //0x00009137 popq %rbp - 0xc3, //0x00009138 retq - //0x00009139 LBB38_15 - 0x45, 0x01, 0xc1, //0x00009139 addl %r8d, %r9d - 0x49, 0x63, 0xf1, //0x0000913c movslq %r9d, %rsi - 0x48, 0x83, 0xc6, 0xff, //0x0000913f addq $-1, %rsi - 0xe9, 0x1e, 0x00, 0x00, 0x00, //0x00009143 jmp LBB38_16 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00009148 .p2align 4, 0x90 - //0x00009150 LBB38_17 - 0x04, 0x30, //0x00009150 addb $48, %al - 0x48, 0x8b, 0x1f, //0x00009152 movq (%rdi), %rbx - 0x88, 0x04, 0x33, //0x00009155 movb %al, (%rbx,%rsi) - //0x00009158 LBB38_24 - 0x48, 0x83, 0xc6, 0xff, //0x00009158 addq $-1, %rsi - 0x48, 0x83, 0xf9, 0x09, //0x0000915c cmpq $9, %rcx - 0x0f, 0x86, 0x62, 0xff, 0xff, 0xff, //0x00009160 jbe LBB38_25 - //0x00009166 LBB38_16 - 0x48, 0x89, 0xd1, //0x00009166 movq %rdx, %rcx - 0x48, 0x89, 0xd0, //0x00009169 movq %rdx, %rax - 0x49, 0xf7, 0xe6, //0x0000916c mulq %r14 - 0x48, 0xc1, 0xea, 0x03, //0x0000916f shrq $3, %rdx - 0x48, 0x8d, 0x04, 0x12, //0x00009173 leaq (%rdx,%rdx), %rax - 0x48, 0x8d, 0x1c, 0x80, //0x00009177 leaq (%rax,%rax,4), %rbx - 0x48, 0x89, 0xc8, //0x0000917b movq %rcx, %rax - 0x48, 0x29, 0xd8, //0x0000917e subq %rbx, %rax - 0x48, 0x39, 0x77, 0x08, //0x00009181 cmpq %rsi, $8(%rdi) - 0x0f, 0x87, 0xc5, 0xff, 0xff, 0xff, //0x00009185 ja LBB38_17 - 0x48, 0x85, 0xc0, //0x0000918b testq %rax, %rax - 0x0f, 0x84, 0xc4, 0xff, 0xff, 0xff, //0x0000918e je LBB38_24 - 0xc7, 0x47, 0x1c, 0x01, 0x00, 0x00, 0x00, //0x00009194 movl $1, $28(%rdi) - 0xe9, 0xb8, 0xff, 0xff, 0xff, //0x0000919b jmp LBB38_24 - //0x000091a0 LBB38_5 - 0x0f, 0x8c, 0x73, 0xfe, 0xff, 0xff, //0x000091a0 jl LBB38_9 - 0xe9, 0x72, 0xfe, 0xff, 0xff, //0x000091a6 jmp LBB38_10 - 0x90, 0x90, 0x90, 0x90, 0x90, //0x000091ab .p2align 4, 0x90 - //0x000091b0 _right_shift - 0x55, //0x000091b0 pushq %rbp - 0x48, 0x89, 0xe5, //0x000091b1 movq %rsp, %rbp - 0x53, //0x000091b4 pushq %rbx - 0x89, 0xf1, //0x000091b5 movl %esi, %ecx - 0x44, 0x8b, 0x47, 0x10, //0x000091b7 movl $16(%rdi), %r8d - 0x31, 0xd2, //0x000091bb xorl %edx, %edx - 0x45, 0x85, 0xc0, //0x000091bd testl %r8d, %r8d - 0x41, 0xbb, 0x00, 0x00, 0x00, 0x00, //0x000091c0 movl $0, %r11d - 0x45, 0x0f, 0x4f, 0xd8, //0x000091c6 cmovgl %r8d, %r11d - 0x31, 0xc0, //0x000091ca xorl %eax, %eax - 0x90, 0x90, 0x90, 0x90, //0x000091cc .p2align 4, 0x90 - //0x000091d0 LBB39_1 - 0x49, 0x39, 0xd3, //0x000091d0 cmpq %rdx, %r11 - 0x0f, 0x84, 0x4f, 0x01, 0x00, 0x00, //0x000091d3 je LBB39_2 - 0x48, 0x8d, 0x04, 0x80, //0x000091d9 leaq (%rax,%rax,4), %rax - 0x48, 0x8b, 0x37, //0x000091dd movq (%rdi), %rsi - 0x48, 0x0f, 0xbe, 0x34, 0x16, //0x000091e0 movsbq (%rsi,%rdx), %rsi - 0x48, 0x8d, 0x04, 0x46, //0x000091e5 leaq (%rsi,%rax,2), %rax - 0x48, 0x83, 0xc0, 0xd0, //0x000091e9 addq $-48, %rax - 0x48, 0x83, 0xc2, 0x01, //0x000091ed addq $1, %rdx - 0x48, 0x89, 0xc6, //0x000091f1 movq %rax, %rsi - 0x48, 0xd3, 0xee, //0x000091f4 shrq %cl, %rsi - 0x48, 0x85, 0xf6, //0x000091f7 testq %rsi, %rsi - 0x0f, 0x84, 0xd0, 0xff, 0xff, 0xff, //0x000091fa je LBB39_1 - 0x41, 0x89, 0xd3, //0x00009200 movl %edx, %r11d - //0x00009203 LBB39_7 - 0x8b, 0x57, 0x14, //0x00009203 movl $20(%rdi), %edx - 0x44, 0x29, 0xda, //0x00009206 subl %r11d, %edx - 0x83, 0xc2, 0x01, //0x00009209 addl $1, %edx - 0x49, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x0000920c movq $-1, %r9 - 0x49, 0xd3, 0xe1, //0x00009213 shlq %cl, %r9 - 0x89, 0x57, 0x14, //0x00009216 movl %edx, $20(%rdi) - 0x49, 0xf7, 0xd1, //0x00009219 notq %r9 - 0x45, 0x31, 0xd2, //0x0000921c xorl %r10d, %r10d - 0x45, 0x39, 0xc3, //0x0000921f cmpl %r8d, %r11d - 0x0f, 0x8d, 0x80, 0x00, 0x00, 0x00, //0x00009222 jge LBB39_10 - 0x4d, 0x63, 0xc3, //0x00009228 movslq %r11d, %r8 - 0x48, 0x8b, 0x37, //0x0000922b movq (%rdi), %rsi - 0x45, 0x31, 0xd2, //0x0000922e xorl %r10d, %r10d - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00009231 .p2align 4, 0x90 - //0x00009240 LBB39_9 - 0x48, 0x89, 0xc2, //0x00009240 movq %rax, %rdx - 0x48, 0xd3, 0xea, //0x00009243 shrq %cl, %rdx - 0x4c, 0x21, 0xc8, //0x00009246 andq %r9, %rax - 0x80, 0xc2, 0x30, //0x00009249 addb $48, %dl - 0x42, 0x88, 0x14, 0x16, //0x0000924c movb %dl, (%rsi,%r10) - 0x48, 0x8b, 0x37, //0x00009250 movq (%rdi), %rsi - 0x4a, 0x8d, 0x14, 0x06, //0x00009253 leaq (%rsi,%r8), %rdx - 0x4d, 0x0f, 0xbe, 0x1c, 0x12, //0x00009257 movsbq (%r10,%rdx), %r11 - 0x4b, 0x8d, 0x5c, 0x10, 0x01, //0x0000925c leaq $1(%r8,%r10), %rbx - 0x49, 0x83, 0xc2, 0x01, //0x00009261 addq $1, %r10 - 0x48, 0x8d, 0x04, 0x80, //0x00009265 leaq (%rax,%rax,4), %rax - 0x49, 0x8d, 0x04, 0x43, //0x00009269 leaq (%r11,%rax,2), %rax - 0x48, 0x83, 0xc0, 0xd0, //0x0000926d addq $-48, %rax - 0x48, 0x63, 0x57, 0x10, //0x00009271 movslq $16(%rdi), %rdx - 0x48, 0x39, 0xd3, //0x00009275 cmpq %rdx, %rbx - 0x0f, 0x8c, 0xc2, 0xff, 0xff, 0xff, //0x00009278 jl LBB39_9 - 0xe9, 0x25, 0x00, 0x00, 0x00, //0x0000927e jmp LBB39_10 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00009283 .p2align 4, 0x90 - //0x00009290 LBB39_12 - 0x40, 0x80, 0xc6, 0x30, //0x00009290 addb $48, %sil - 0x48, 0x8b, 0x1f, //0x00009294 movq (%rdi), %rbx - 0x40, 0x88, 0x34, 0x13, //0x00009297 movb %sil, (%rbx,%rdx) - 0x83, 0xc2, 0x01, //0x0000929b addl $1, %edx - 0x41, 0x89, 0xd2, //0x0000929e movl %edx, %r10d - //0x000092a1 LBB39_15 - 0x48, 0x01, 0xc0, //0x000092a1 addq %rax, %rax - 0x48, 0x8d, 0x04, 0x80, //0x000092a4 leaq (%rax,%rax,4), %rax - //0x000092a8 LBB39_10 - 0x48, 0x85, 0xc0, //0x000092a8 testq %rax, %rax - 0x0f, 0x84, 0x2b, 0x00, 0x00, 0x00, //0x000092ab je LBB39_16 - 0x48, 0x89, 0xc6, //0x000092b1 movq %rax, %rsi - 0x48, 0xd3, 0xee, //0x000092b4 shrq %cl, %rsi - 0x4c, 0x21, 0xc8, //0x000092b7 andq %r9, %rax - 0x49, 0x63, 0xd2, //0x000092ba movslq %r10d, %rdx - 0x48, 0x39, 0x57, 0x08, //0x000092bd cmpq %rdx, $8(%rdi) - 0x0f, 0x87, 0xc9, 0xff, 0xff, 0xff, //0x000092c1 ja LBB39_12 - 0x48, 0x85, 0xf6, //0x000092c7 testq %rsi, %rsi - 0x0f, 0x84, 0xd1, 0xff, 0xff, 0xff, //0x000092ca je LBB39_15 - 0xc7, 0x47, 0x1c, 0x01, 0x00, 0x00, 0x00, //0x000092d0 movl $1, $28(%rdi) - 0xe9, 0xc5, 0xff, 0xff, 0xff, //0x000092d7 jmp LBB39_15 - //0x000092dc LBB39_16 - 0x44, 0x89, 0x57, 0x10, //0x000092dc movl %r10d, $16(%rdi) - 0x45, 0x85, 0xd2, //0x000092e0 testl %r10d, %r10d - 0x0f, 0x8e, 0x85, 0x00, 0x00, 0x00, //0x000092e3 jle LBB39_20 - 0x48, 0x8b, 0x07, //0x000092e9 movq (%rdi), %rax - 0x44, 0x89, 0xd1, //0x000092ec movl %r10d, %ecx - 0x48, 0x83, 0xc1, 0x01, //0x000092ef addq $1, %rcx - 0x41, 0x83, 0xc2, 0xff, //0x000092f3 addl $-1, %r10d - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000092f7 .p2align 4, 0x90 - //0x00009300 LBB39_18 - 0x44, 0x89, 0xd2, //0x00009300 movl %r10d, %edx - 0x80, 0x3c, 0x10, 0x30, //0x00009303 cmpb $48, (%rax,%rdx) - 0x0f, 0x85, 0x67, 0x00, 0x00, 0x00, //0x00009307 jne LBB39_22 - 0x44, 0x89, 0x57, 0x10, //0x0000930d movl %r10d, $16(%rdi) - 0x48, 0x83, 0xc1, 0xff, //0x00009311 addq $-1, %rcx - 0x41, 0x83, 0xc2, 0xff, //0x00009315 addl $-1, %r10d - 0x48, 0x83, 0xf9, 0x01, //0x00009319 cmpq $1, %rcx - 0x0f, 0x8f, 0xdd, 0xff, 0xff, 0xff, //0x0000931d jg LBB39_18 - 0xe9, 0x4f, 0x00, 0x00, 0x00, //0x00009323 jmp LBB39_21 - //0x00009328 LBB39_2 - 0x48, 0x85, 0xc0, //0x00009328 testq %rax, %rax - 0x0f, 0x84, 0x50, 0x00, 0x00, 0x00, //0x0000932b je LBB39_23 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00009331 .p2align 4, 0x90 - 0x48, 0x89, 0xc2, //0x00009340 movq %rax, %rdx - 0x48, 0xd3, 0xea, //0x00009343 shrq %cl, %rdx - 0x48, 0x85, 0xd2, //0x00009346 testq %rdx, %rdx - 0x0f, 0x85, 0xb4, 0xfe, 0xff, 0xff, //0x00009349 jne LBB39_7 - //0x0000934f LBB39_4 - 0x48, 0x01, 0xc0, //0x0000934f addq %rax, %rax - 0x48, 0x8d, 0x04, 0x80, //0x00009352 leaq (%rax,%rax,4), %rax - 0x41, 0x83, 0xc3, 0x01, //0x00009356 addl $1, %r11d - 0x48, 0x89, 0xc2, //0x0000935a movq %rax, %rdx - 0x48, 0xd3, 0xea, //0x0000935d shrq %cl, %rdx - 0x48, 0x85, 0xd2, //0x00009360 testq %rdx, %rdx - 0x0f, 0x84, 0xe6, 0xff, 0xff, 0xff, //0x00009363 je LBB39_4 - 0xe9, 0x95, 0xfe, 0xff, 0xff, //0x00009369 jmp LBB39_7 - //0x0000936e LBB39_20 - 0x0f, 0x84, 0x03, 0x00, 0x00, 0x00, //0x0000936e je LBB39_21 - //0x00009374 LBB39_22 - 0x5b, //0x00009374 popq %rbx - 0x5d, //0x00009375 popq %rbp - 0xc3, //0x00009376 retq - //0x00009377 LBB39_21 - 0xc7, 0x47, 0x14, 0x00, 0x00, 0x00, 0x00, //0x00009377 movl $0, $20(%rdi) - 0x5b, //0x0000937e popq %rbx - 0x5d, //0x0000937f popq %rbp - 0xc3, //0x00009380 retq - //0x00009381 LBB39_23 - 0xc7, 0x47, 0x10, 0x00, 0x00, 0x00, 0x00, //0x00009381 movl $0, $16(%rdi) - 0x5b, //0x00009388 popq %rbx - 0x5d, //0x00009389 popq %rbp - 0xc3, //0x0000938a retq - 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000938b .p2align 4, 0x00 - //0x00009390 LCPI40_0 - 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, //0x00009390 QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' - //0x000093a0 LCPI40_1 - 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x000093a0 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' - //0x000093b0 .p2align 4, 0x90 - //0x000093b0 _advance_string_default - 0x55, //0x000093b0 pushq %rbp - 0x48, 0x89, 0xe5, //0x000093b1 movq %rsp, %rbp - 0x41, 0x57, //0x000093b4 pushq %r15 - 0x41, 0x56, //0x000093b6 pushq %r14 - 0x41, 0x55, //0x000093b8 pushq %r13 - 0x41, 0x54, //0x000093ba pushq %r12 - 0x53, //0x000093bc pushq %rbx - 0x50, //0x000093bd pushq %rax - 0x4c, 0x8b, 0x7f, 0x08, //0x000093be movq $8(%rdi), %r15 - 0x49, 0x29, 0xf7, //0x000093c2 subq %rsi, %r15 - 0x0f, 0x84, 0x81, 0x03, 0x00, 0x00, //0x000093c5 je LBB40_17 - 0x4c, 0x8b, 0x0f, //0x000093cb movq (%rdi), %r9 - 0x48, 0xc7, 0x02, 0xff, 0xff, 0xff, 0xff, //0x000093ce movq $-1, (%rdx) - 0x49, 0x83, 0xff, 0x40, //0x000093d5 cmpq $64, %r15 - 0x0f, 0x82, 0xf8, 0x01, 0x00, 0x00, //0x000093d9 jb LBB40_18 - 0x48, 0x89, 0xf7, //0x000093df movq %rsi, %rdi - 0x48, 0xf7, 0xd7, //0x000093e2 notq %rdi - 0x48, 0xc7, 0x45, 0xd0, 0xff, 0xff, 0xff, 0xff, //0x000093e5 movq $-1, $-48(%rbp) - 0x45, 0x31, 0xf6, //0x000093ed xorl %r14d, %r14d - 0x66, 0x0f, 0x6f, 0x05, 0x98, 0xff, 0xff, 0xff, //0x000093f0 movdqa $-104(%rip), %xmm0 /* LCPI40_0+0(%rip) */ - 0x66, 0x0f, 0x6f, 0x0d, 0xa0, 0xff, 0xff, 0xff, //0x000093f8 movdqa $-96(%rip), %xmm1 /* LCPI40_1+0(%rip) */ - //0x00009400 .p2align 4, 0x90 - //0x00009400 LBB40_3 - 0xf3, 0x41, 0x0f, 0x6f, 0x14, 0x31, //0x00009400 movdqu (%r9,%rsi), %xmm2 - 0xf3, 0x41, 0x0f, 0x6f, 0x5c, 0x31, 0x10, //0x00009406 movdqu $16(%r9,%rsi), %xmm3 - 0xf3, 0x41, 0x0f, 0x6f, 0x64, 0x31, 0x20, //0x0000940d movdqu $32(%r9,%rsi), %xmm4 - 0xf3, 0x41, 0x0f, 0x6f, 0x6c, 0x31, 0x30, //0x00009414 movdqu $48(%r9,%rsi), %xmm5 - 0x66, 0x0f, 0x6f, 0xf2, //0x0000941b movdqa %xmm2, %xmm6 - 0x66, 0x0f, 0x74, 0xf0, //0x0000941f pcmpeqb %xmm0, %xmm6 - 0x66, 0x44, 0x0f, 0xd7, 0xe6, //0x00009423 pmovmskb %xmm6, %r12d - 0x66, 0x0f, 0x6f, 0xf3, //0x00009428 movdqa %xmm3, %xmm6 - 0x66, 0x0f, 0x74, 0xf0, //0x0000942c pcmpeqb %xmm0, %xmm6 - 0x66, 0x0f, 0xd7, 0xde, //0x00009430 pmovmskb %xmm6, %ebx - 0x66, 0x0f, 0x6f, 0xf4, //0x00009434 movdqa %xmm4, %xmm6 - 0x66, 0x0f, 0x74, 0xf0, //0x00009438 pcmpeqb %xmm0, %xmm6 - 0x66, 0x0f, 0xd7, 0xc6, //0x0000943c pmovmskb %xmm6, %eax - 0x66, 0x0f, 0x6f, 0xf5, //0x00009440 movdqa %xmm5, %xmm6 - 0x66, 0x0f, 0x74, 0xf0, //0x00009444 pcmpeqb %xmm0, %xmm6 - 0x66, 0x44, 0x0f, 0xd7, 0xc6, //0x00009448 pmovmskb %xmm6, %r8d - 0x66, 0x0f, 0x74, 0xd1, //0x0000944d pcmpeqb %xmm1, %xmm2 - 0x66, 0x44, 0x0f, 0xd7, 0xea, //0x00009451 pmovmskb %xmm2, %r13d - 0x66, 0x0f, 0x74, 0xd9, //0x00009456 pcmpeqb %xmm1, %xmm3 - 0x66, 0x0f, 0xd7, 0xcb, //0x0000945a pmovmskb %xmm3, %ecx - 0x66, 0x0f, 0x74, 0xe1, //0x0000945e pcmpeqb %xmm1, %xmm4 - 0x66, 0x44, 0x0f, 0xd7, 0xd4, //0x00009462 pmovmskb %xmm4, %r10d - 0x66, 0x0f, 0x74, 0xe9, //0x00009467 pcmpeqb %xmm1, %xmm5 - 0x66, 0x44, 0x0f, 0xd7, 0xdd, //0x0000946b pmovmskb %xmm5, %r11d - 0x49, 0xc1, 0xe0, 0x30, //0x00009470 shlq $48, %r8 - 0x48, 0xc1, 0xe0, 0x20, //0x00009474 shlq $32, %rax - 0x4c, 0x09, 0xc0, //0x00009478 orq %r8, %rax - 0x48, 0xc1, 0xe3, 0x10, //0x0000947b shlq $16, %rbx - 0x48, 0x09, 0xc3, //0x0000947f orq %rax, %rbx - 0x49, 0x09, 0xdc, //0x00009482 orq %rbx, %r12 - 0x49, 0xc1, 0xe3, 0x30, //0x00009485 shlq $48, %r11 - 0x49, 0xc1, 0xe2, 0x20, //0x00009489 shlq $32, %r10 - 0x4d, 0x09, 0xda, //0x0000948d orq %r11, %r10 - 0x48, 0xc1, 0xe1, 0x10, //0x00009490 shlq $16, %rcx - 0x4c, 0x09, 0xd1, //0x00009494 orq %r10, %rcx - 0x49, 0x09, 0xcd, //0x00009497 orq %rcx, %r13 - 0x0f, 0x85, 0x30, 0x00, 0x00, 0x00, //0x0000949a jne LBB40_7 - 0x4d, 0x85, 0xf6, //0x000094a0 testq %r14, %r14 - 0x0f, 0x85, 0x40, 0x00, 0x00, 0x00, //0x000094a3 jne LBB40_9 - 0x45, 0x31, 0xf6, //0x000094a9 xorl %r14d, %r14d - 0x4d, 0x85, 0xe4, //0x000094ac testq %r12, %r12 - 0x0f, 0x85, 0x86, 0x00, 0x00, 0x00, //0x000094af jne LBB40_10 - //0x000094b5 LBB40_6 - 0x49, 0x83, 0xc7, 0xc0, //0x000094b5 addq $-64, %r15 - 0x48, 0x83, 0xc7, 0xc0, //0x000094b9 addq $-64, %rdi - 0x48, 0x83, 0xc6, 0x40, //0x000094bd addq $64, %rsi - 0x49, 0x83, 0xff, 0x3f, //0x000094c1 cmpq $63, %r15 - 0x0f, 0x87, 0x35, 0xff, 0xff, 0xff, //0x000094c5 ja LBB40_3 - 0xe9, 0x81, 0x00, 0x00, 0x00, //0x000094cb jmp LBB40_12 - //0x000094d0 LBB40_7 - 0x48, 0x83, 0x7d, 0xd0, 0xff, //0x000094d0 cmpq $-1, $-48(%rbp) - 0x0f, 0x85, 0x0e, 0x00, 0x00, 0x00, //0x000094d5 jne LBB40_9 - 0x49, 0x0f, 0xbc, 0xc5, //0x000094db bsfq %r13, %rax - 0x48, 0x01, 0xf0, //0x000094df addq %rsi, %rax - 0x48, 0x89, 0x45, 0xd0, //0x000094e2 movq %rax, $-48(%rbp) - 0x48, 0x89, 0x02, //0x000094e6 movq %rax, (%rdx) - //0x000094e9 LBB40_9 - 0x4c, 0x89, 0xf0, //0x000094e9 movq %r14, %rax - 0x48, 0xf7, 0xd0, //0x000094ec notq %rax - 0x4c, 0x21, 0xe8, //0x000094ef andq %r13, %rax - 0x4c, 0x8d, 0x04, 0x00, //0x000094f2 leaq (%rax,%rax), %r8 - 0x4d, 0x09, 0xf0, //0x000094f6 orq %r14, %r8 - 0x4c, 0x89, 0xc1, //0x000094f9 movq %r8, %rcx - 0x48, 0xf7, 0xd1, //0x000094fc notq %rcx - 0x4c, 0x21, 0xe9, //0x000094ff andq %r13, %rcx - 0x48, 0xbb, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x00009502 movabsq $-6148914691236517206, %rbx - 0x48, 0x21, 0xd9, //0x0000950c andq %rbx, %rcx - 0x45, 0x31, 0xf6, //0x0000950f xorl %r14d, %r14d - 0x48, 0x01, 0xc1, //0x00009512 addq %rax, %rcx - 0x41, 0x0f, 0x92, 0xc6, //0x00009515 setb %r14b - 0x48, 0x01, 0xc9, //0x00009519 addq %rcx, %rcx - 0x48, 0xb8, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x0000951c movabsq $6148914691236517205, %rax - 0x48, 0x31, 0xc1, //0x00009526 xorq %rax, %rcx - 0x4c, 0x21, 0xc1, //0x00009529 andq %r8, %rcx - 0x48, 0xf7, 0xd1, //0x0000952c notq %rcx - 0x49, 0x21, 0xcc, //0x0000952f andq %rcx, %r12 - 0x4d, 0x85, 0xe4, //0x00009532 testq %r12, %r12 - 0x0f, 0x84, 0x7a, 0xff, 0xff, 0xff, //0x00009535 je LBB40_6 - //0x0000953b LBB40_10 - 0x49, 0x0f, 0xbc, 0xc4, //0x0000953b bsfq %r12, %rax - 0x48, 0x29, 0xf8, //0x0000953f subq %rdi, %rax - //0x00009542 LBB40_11 - 0x48, 0x83, 0xc4, 0x08, //0x00009542 addq $8, %rsp - 0x5b, //0x00009546 popq %rbx - 0x41, 0x5c, //0x00009547 popq %r12 - 0x41, 0x5d, //0x00009549 popq %r13 - 0x41, 0x5e, //0x0000954b popq %r14 - 0x41, 0x5f, //0x0000954d popq %r15 - 0x5d, //0x0000954f popq %rbp - 0xc3, //0x00009550 retq - //0x00009551 LBB40_12 - 0x4c, 0x01, 0xce, //0x00009551 addq %r9, %rsi - 0x49, 0x83, 0xff, 0x20, //0x00009554 cmpq $32, %r15 - 0x0f, 0x82, 0xf6, 0x00, 0x00, 0x00, //0x00009558 jb LBB40_23 - //0x0000955e LBB40_13 - 0xf3, 0x0f, 0x6f, 0x06, //0x0000955e movdqu (%rsi), %xmm0 - 0xf3, 0x0f, 0x6f, 0x4e, 0x10, //0x00009562 movdqu $16(%rsi), %xmm1 - 0x66, 0x0f, 0x6f, 0x15, 0x21, 0xfe, 0xff, 0xff, //0x00009567 movdqa $-479(%rip), %xmm2 /* LCPI40_0+0(%rip) */ - 0x66, 0x0f, 0x6f, 0x1d, 0x29, 0xfe, 0xff, 0xff, //0x0000956f movdqa $-471(%rip), %xmm3 /* LCPI40_1+0(%rip) */ - 0x66, 0x0f, 0x6f, 0xe0, //0x00009577 movdqa %xmm0, %xmm4 - 0x66, 0x0f, 0x74, 0xe2, //0x0000957b pcmpeqb %xmm2, %xmm4 - 0x66, 0x0f, 0xd7, 0xfc, //0x0000957f pmovmskb %xmm4, %edi - 0x66, 0x0f, 0x74, 0xd1, //0x00009583 pcmpeqb %xmm1, %xmm2 - 0x66, 0x0f, 0xd7, 0xca, //0x00009587 pmovmskb %xmm2, %ecx - 0x66, 0x0f, 0x74, 0xc3, //0x0000958b pcmpeqb %xmm3, %xmm0 - 0x66, 0x0f, 0xd7, 0xc0, //0x0000958f pmovmskb %xmm0, %eax - 0x66, 0x0f, 0x74, 0xcb, //0x00009593 pcmpeqb %xmm3, %xmm1 - 0x66, 0x0f, 0xd7, 0xd9, //0x00009597 pmovmskb %xmm1, %ebx - 0x48, 0xc1, 0xe1, 0x10, //0x0000959b shlq $16, %rcx - 0x48, 0x09, 0xcf, //0x0000959f orq %rcx, %rdi - 0x48, 0xc1, 0xe3, 0x10, //0x000095a2 shlq $16, %rbx - 0x48, 0x09, 0xd8, //0x000095a6 orq %rbx, %rax - 0x0f, 0x85, 0x45, 0x00, 0x00, 0x00, //0x000095a9 jne LBB40_19 - 0x4d, 0x85, 0xf6, //0x000095af testq %r14, %r14 - 0x0f, 0x85, 0x5b, 0x00, 0x00, 0x00, //0x000095b2 jne LBB40_21 - 0x45, 0x31, 0xf6, //0x000095b8 xorl %r14d, %r14d - 0x48, 0x85, 0xff, //0x000095bb testq %rdi, %rdi - 0x0f, 0x84, 0x88, 0x00, 0x00, 0x00, //0x000095be je LBB40_22 - //0x000095c4 LBB40_16 - 0x48, 0x0f, 0xbc, 0xc7, //0x000095c4 bsfq %rdi, %rax - 0x4c, 0x29, 0xce, //0x000095c8 subq %r9, %rsi - 0x48, 0x01, 0xf0, //0x000095cb addq %rsi, %rax - 0x48, 0x83, 0xc0, 0x01, //0x000095ce addq $1, %rax - 0xe9, 0x6b, 0xff, 0xff, 0xff, //0x000095d2 jmp LBB40_11 - //0x000095d7 LBB40_18 - 0x4c, 0x01, 0xce, //0x000095d7 addq %r9, %rsi - 0x48, 0xc7, 0x45, 0xd0, 0xff, 0xff, 0xff, 0xff, //0x000095da movq $-1, $-48(%rbp) - 0x45, 0x31, 0xf6, //0x000095e2 xorl %r14d, %r14d - 0x49, 0x83, 0xff, 0x20, //0x000095e5 cmpq $32, %r15 - 0x0f, 0x83, 0x6f, 0xff, 0xff, 0xff, //0x000095e9 jae LBB40_13 - 0xe9, 0x60, 0x00, 0x00, 0x00, //0x000095ef jmp LBB40_23 - //0x000095f4 LBB40_19 - 0x48, 0x83, 0x7d, 0xd0, 0xff, //0x000095f4 cmpq $-1, $-48(%rbp) - 0x0f, 0x85, 0x14, 0x00, 0x00, 0x00, //0x000095f9 jne LBB40_21 - 0x48, 0x89, 0xf1, //0x000095ff movq %rsi, %rcx - 0x4c, 0x29, 0xc9, //0x00009602 subq %r9, %rcx - 0x48, 0x0f, 0xbc, 0xd8, //0x00009605 bsfq %rax, %rbx - 0x48, 0x01, 0xcb, //0x00009609 addq %rcx, %rbx - 0x48, 0x89, 0x5d, 0xd0, //0x0000960c movq %rbx, $-48(%rbp) - 0x48, 0x89, 0x1a, //0x00009610 movq %rbx, (%rdx) - //0x00009613 LBB40_21 - 0x44, 0x89, 0xf1, //0x00009613 movl %r14d, %ecx - 0xf7, 0xd1, //0x00009616 notl %ecx - 0x21, 0xc1, //0x00009618 andl %eax, %ecx - 0x45, 0x8d, 0x04, 0x4e, //0x0000961a leal (%r14,%rcx,2), %r8d - 0x8d, 0x1c, 0x09, //0x0000961e leal (%rcx,%rcx), %ebx - 0xf7, 0xd3, //0x00009621 notl %ebx - 0x21, 0xc3, //0x00009623 andl %eax, %ebx - 0x81, 0xe3, 0xaa, 0xaa, 0xaa, 0xaa, //0x00009625 andl $-1431655766, %ebx - 0x45, 0x31, 0xf6, //0x0000962b xorl %r14d, %r14d - 0x01, 0xcb, //0x0000962e addl %ecx, %ebx - 0x41, 0x0f, 0x92, 0xc6, //0x00009630 setb %r14b - 0x01, 0xdb, //0x00009634 addl %ebx, %ebx - 0x81, 0xf3, 0x55, 0x55, 0x55, 0x55, //0x00009636 xorl $1431655765, %ebx - 0x44, 0x21, 0xc3, //0x0000963c andl %r8d, %ebx - 0xf7, 0xd3, //0x0000963f notl %ebx - 0x21, 0xdf, //0x00009641 andl %ebx, %edi - 0x48, 0x85, 0xff, //0x00009643 testq %rdi, %rdi - 0x0f, 0x85, 0x78, 0xff, 0xff, 0xff, //0x00009646 jne LBB40_16 - //0x0000964c LBB40_22 - 0x48, 0x83, 0xc6, 0x20, //0x0000964c addq $32, %rsi - 0x49, 0x83, 0xc7, 0xe0, //0x00009650 addq $-32, %r15 - //0x00009654 LBB40_23 - 0x4d, 0x85, 0xf6, //0x00009654 testq %r14, %r14 - 0x0f, 0x85, 0xb5, 0x00, 0x00, 0x00, //0x00009657 jne LBB40_37 - 0x4d, 0x85, 0xff, //0x0000965d testq %r15, %r15 - 0x0f, 0x84, 0xa1, 0x00, 0x00, 0x00, //0x00009660 je LBB40_36 - //0x00009666 LBB40_25 - 0x4c, 0x89, 0xcf, //0x00009666 movq %r9, %rdi - 0x48, 0xf7, 0xd7, //0x00009669 notq %rdi - 0x48, 0x83, 0xc7, 0x01, //0x0000966c addq $1, %rdi - //0x00009670 LBB40_26 - 0x31, 0xc0, //0x00009670 xorl %eax, %eax - //0x00009672 LBB40_27 - 0x48, 0x89, 0xc3, //0x00009672 movq %rax, %rbx - 0x0f, 0xb6, 0x0c, 0x06, //0x00009675 movzbl (%rsi,%rax), %ecx - 0x80, 0xf9, 0x22, //0x00009679 cmpb $34, %cl - 0x0f, 0x84, 0x7e, 0x00, 0x00, 0x00, //0x0000967c je LBB40_35 - 0x80, 0xf9, 0x5c, //0x00009682 cmpb $92, %cl - 0x0f, 0x84, 0x12, 0x00, 0x00, 0x00, //0x00009685 je LBB40_30 - 0x48, 0x8d, 0x43, 0x01, //0x0000968b leaq $1(%rbx), %rax - 0x49, 0x39, 0xc7, //0x0000968f cmpq %rax, %r15 - 0x0f, 0x85, 0xda, 0xff, 0xff, 0xff, //0x00009692 jne LBB40_27 - 0xe9, 0x53, 0x00, 0x00, 0x00, //0x00009698 jmp LBB40_34 - //0x0000969d LBB40_30 - 0x49, 0x8d, 0x4f, 0xff, //0x0000969d leaq $-1(%r15), %rcx - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000096a1 movq $-1, %rax - 0x48, 0x39, 0xd9, //0x000096a8 cmpq %rbx, %rcx - 0x0f, 0x84, 0x91, 0xfe, 0xff, 0xff, //0x000096ab je LBB40_11 - 0x48, 0x83, 0x7d, 0xd0, 0xff, //0x000096b1 cmpq $-1, $-48(%rbp) - 0x0f, 0x85, 0x0e, 0x00, 0x00, 0x00, //0x000096b6 jne LBB40_33 - 0x48, 0x8d, 0x0c, 0x37, //0x000096bc leaq (%rdi,%rsi), %rcx - 0x48, 0x01, 0xd9, //0x000096c0 addq %rbx, %rcx - 0x48, 0x89, 0x4d, 0xd0, //0x000096c3 movq %rcx, $-48(%rbp) - 0x48, 0x89, 0x0a, //0x000096c7 movq %rcx, (%rdx) - //0x000096ca LBB40_33 - 0x48, 0x01, 0xde, //0x000096ca addq %rbx, %rsi - 0x48, 0x83, 0xc6, 0x02, //0x000096cd addq $2, %rsi - 0x4c, 0x89, 0xf9, //0x000096d1 movq %r15, %rcx - 0x48, 0x29, 0xd9, //0x000096d4 subq %rbx, %rcx - 0x48, 0x83, 0xc1, 0xfe, //0x000096d7 addq $-2, %rcx - 0x49, 0x83, 0xc7, 0xfe, //0x000096db addq $-2, %r15 - 0x49, 0x39, 0xdf, //0x000096df cmpq %rbx, %r15 - 0x49, 0x89, 0xcf, //0x000096e2 movq %rcx, %r15 - 0x0f, 0x85, 0x85, 0xff, 0xff, 0xff, //0x000096e5 jne LBB40_26 - 0xe9, 0x52, 0xfe, 0xff, 0xff, //0x000096eb jmp LBB40_11 - //0x000096f0 LBB40_34 - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000096f0 movq $-1, %rax - 0x80, 0xf9, 0x22, //0x000096f7 cmpb $34, %cl - 0x0f, 0x85, 0x42, 0xfe, 0xff, 0xff, //0x000096fa jne LBB40_11 - //0x00009700 LBB40_35 - 0x48, 0x01, 0xde, //0x00009700 addq %rbx, %rsi - 0x48, 0x83, 0xc6, 0x01, //0x00009703 addq $1, %rsi - //0x00009707 LBB40_36 - 0x4c, 0x29, 0xce, //0x00009707 subq %r9, %rsi - 0x48, 0x89, 0xf0, //0x0000970a movq %rsi, %rax - 0xe9, 0x30, 0xfe, 0xff, 0xff, //0x0000970d jmp LBB40_11 - //0x00009712 LBB40_37 - 0x4d, 0x85, 0xff, //0x00009712 testq %r15, %r15 - 0x0f, 0x84, 0x31, 0x00, 0x00, 0x00, //0x00009715 je LBB40_17 - 0x48, 0x83, 0x7d, 0xd0, 0xff, //0x0000971b cmpq $-1, $-48(%rbp) - 0x0f, 0x85, 0x10, 0x00, 0x00, 0x00, //0x00009720 jne LBB40_40 - 0x4c, 0x89, 0xc8, //0x00009726 movq %r9, %rax - 0x48, 0xf7, 0xd0, //0x00009729 notq %rax - 0x48, 0x01, 0xf0, //0x0000972c addq %rsi, %rax - 0x48, 0x89, 0x45, 0xd0, //0x0000972f movq %rax, $-48(%rbp) - 0x48, 0x89, 0x02, //0x00009733 movq %rax, (%rdx) - //0x00009736 LBB40_40 - 0x48, 0x83, 0xc6, 0x01, //0x00009736 addq $1, %rsi - 0x49, 0x83, 0xc7, 0xff, //0x0000973a addq $-1, %r15 - 0x4d, 0x85, 0xff, //0x0000973e testq %r15, %r15 - 0x0f, 0x85, 0x1f, 0xff, 0xff, 0xff, //0x00009741 jne LBB40_25 - 0xe9, 0xbb, 0xff, 0xff, 0xff, //0x00009747 jmp LBB40_36 - //0x0000974c LBB40_17 - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x0000974c movq $-1, %rax - 0xe9, 0xea, 0xfd, 0xff, 0xff, //0x00009753 jmp LBB40_11 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00009758 .p2align 4, 0x90 - //0x00009760 _unescape - 0x55, //0x00009760 pushq %rbp - 0x48, 0x89, 0xe5, //0x00009761 movq %rsp, %rbp - 0x41, 0x57, //0x00009764 pushq %r15 - 0x41, 0x56, //0x00009766 pushq %r14 - 0x41, 0x55, //0x00009768 pushq %r13 - 0x41, 0x54, //0x0000976a pushq %r12 - 0x53, //0x0000976c pushq %rbx - 0x50, //0x0000976d pushq %rax - 0x4c, 0x8b, 0x2f, //0x0000976e movq (%rdi), %r13 - 0x4c, 0x29, 0xee, //0x00009771 subq %r13, %rsi - 0x48, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x00009774 movq $-1, %rbx - 0x48, 0x85, 0xf6, //0x0000977b testq %rsi, %rsi - 0x0f, 0x8e, 0xcf, 0x00, 0x00, 0x00, //0x0000977e jle LBB41_13 - 0x49, 0x89, 0xd6, //0x00009784 movq %rdx, %r14 - 0x49, 0x89, 0xff, //0x00009787 movq %rdi, %r15 - 0x49, 0x8d, 0x45, 0x01, //0x0000978a leaq $1(%r13), %rax - 0x41, 0x0f, 0xb6, 0x4d, 0x01, //0x0000978e movzbl $1(%r13), %ecx - 0x48, 0x8d, 0x15, 0x36, 0x77, 0x00, 0x00, //0x00009793 leaq $30518(%rip), %rdx /* __UnquoteTab+0(%rip) */ - 0x8a, 0x0c, 0x11, //0x0000979a movb (%rcx,%rdx), %cl - 0x80, 0xf9, 0xff, //0x0000979d cmpb $-1, %cl - 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x000097a0 je LBB41_4 - 0x84, 0xc9, //0x000097a6 testb %cl, %cl - 0x0f, 0x85, 0x21, 0x00, 0x00, 0x00, //0x000097a8 jne LBB41_6 - 0x49, 0x89, 0x07, //0x000097ae movq %rax, (%r15) - 0x48, 0xc7, 0xc3, 0xfd, 0xff, 0xff, 0xff, //0x000097b1 movq $-3, %rbx - 0xe9, 0x96, 0x00, 0x00, 0x00, //0x000097b8 jmp LBB41_13 - //0x000097bd LBB41_4 - 0x48, 0x83, 0xfe, 0x03, //0x000097bd cmpq $3, %rsi - 0x0f, 0x8f, 0x19, 0x00, 0x00, 0x00, //0x000097c1 jg LBB41_7 - 0x49, 0x89, 0x07, //0x000097c7 movq %rax, (%r15) - 0xe9, 0x84, 0x00, 0x00, 0x00, //0x000097ca jmp LBB41_13 - //0x000097cf LBB41_6 - 0x41, 0x88, 0x0e, //0x000097cf movb %cl, (%r14) - 0x49, 0x83, 0x07, 0x02, //0x000097d2 addq $2, (%r15) - 0xbb, 0x01, 0x00, 0x00, 0x00, //0x000097d6 movl $1, %ebx - 0xe9, 0x73, 0x00, 0x00, 0x00, //0x000097db jmp LBB41_13 - //0x000097e0 LBB41_7 - 0x41, 0x8b, 0x4d, 0x02, //0x000097e0 movl $2(%r13), %ecx - 0x89, 0xc8, //0x000097e4 movl %ecx, %eax - 0xf7, 0xd0, //0x000097e6 notl %eax - 0x8d, 0x91, 0xd0, 0xcf, 0xcf, 0xcf, //0x000097e8 leal $-808464432(%rcx), %edx - 0x25, 0x80, 0x80, 0x80, 0x80, //0x000097ee andl $-2139062144, %eax - 0x85, 0xd0, //0x000097f3 testl %edx, %eax - 0x0f, 0x85, 0x4a, 0x00, 0x00, 0x00, //0x000097f5 jne LBB41_11 - 0x8d, 0x91, 0x19, 0x19, 0x19, 0x19, //0x000097fb leal $421075225(%rcx), %edx - 0x09, 0xca, //0x00009801 orl %ecx, %edx - 0xf7, 0xc2, 0x80, 0x80, 0x80, 0x80, //0x00009803 testl $-2139062144, %edx - 0x0f, 0x85, 0x36, 0x00, 0x00, 0x00, //0x00009809 jne LBB41_11 - 0x89, 0xca, //0x0000980f movl %ecx, %edx - 0x81, 0xe2, 0x7f, 0x7f, 0x7f, 0x7f, //0x00009811 andl $2139062143, %edx - 0xbf, 0xc0, 0xc0, 0xc0, 0xc0, //0x00009817 movl $-1061109568, %edi - 0x29, 0xd7, //0x0000981c subl %edx, %edi - 0x8d, 0x9a, 0x46, 0x46, 0x46, 0x46, //0x0000981e leal $1179010630(%rdx), %ebx - 0x21, 0xc7, //0x00009824 andl %eax, %edi - 0x85, 0xdf, //0x00009826 testl %ebx, %edi - 0x0f, 0x85, 0x17, 0x00, 0x00, 0x00, //0x00009828 jne LBB41_11 - 0xbf, 0xe0, 0xe0, 0xe0, 0xe0, //0x0000982e movl $-522133280, %edi - 0x29, 0xd7, //0x00009833 subl %edx, %edi - 0x81, 0xc2, 0x39, 0x39, 0x39, 0x39, //0x00009835 addl $960051513, %edx - 0x21, 0xf8, //0x0000983b andl %edi, %eax - 0x85, 0xd0, //0x0000983d testl %edx, %eax - 0x0f, 0x84, 0x20, 0x00, 0x00, 0x00, //0x0000983f je LBB41_14 - //0x00009845 LBB41_11 - 0x49, 0x83, 0xc5, 0x02, //0x00009845 addq $2, %r13 - 0x4d, 0x89, 0x2f, //0x00009849 movq %r13, (%r15) - //0x0000984c LBB41_12 - 0x48, 0xc7, 0xc3, 0xfe, 0xff, 0xff, 0xff, //0x0000984c movq $-2, %rbx - //0x00009853 LBB41_13 - 0x48, 0x89, 0xd8, //0x00009853 movq %rbx, %rax - 0x48, 0x83, 0xc4, 0x08, //0x00009856 addq $8, %rsp - 0x5b, //0x0000985a popq %rbx - 0x41, 0x5c, //0x0000985b popq %r12 - 0x41, 0x5d, //0x0000985d popq %r13 - 0x41, 0x5e, //0x0000985f popq %r14 - 0x41, 0x5f, //0x00009861 popq %r15 - 0x5d, //0x00009863 popq %rbp - 0xc3, //0x00009864 retq - //0x00009865 LBB41_14 - 0x0f, 0xc9, //0x00009865 bswapl %ecx - 0x89, 0xc8, //0x00009867 movl %ecx, %eax - 0xc1, 0xe8, 0x04, //0x00009869 shrl $4, %eax - 0xf7, 0xd0, //0x0000986c notl %eax - 0x25, 0x01, 0x01, 0x01, 0x01, //0x0000986e andl $16843009, %eax - 0x8d, 0x04, 0xc0, //0x00009873 leal (%rax,%rax,8), %eax - 0x81, 0xe1, 0x0f, 0x0f, 0x0f, 0x0f, //0x00009876 andl $252645135, %ecx - 0x01, 0xc1, //0x0000987c addl %eax, %ecx - 0x89, 0xc8, //0x0000987e movl %ecx, %eax - 0xc1, 0xe8, 0x04, //0x00009880 shrl $4, %eax - 0x09, 0xc8, //0x00009883 orl %ecx, %eax - 0x89, 0xc1, //0x00009885 movl %eax, %ecx - 0xc1, 0xe9, 0x08, //0x00009887 shrl $8, %ecx - 0x81, 0xe1, 0x00, 0xff, 0x00, 0x00, //0x0000988a andl $65280, %ecx - 0x44, 0x0f, 0xb6, 0xe0, //0x00009890 movzbl %al, %r12d - 0x41, 0x09, 0xcc, //0x00009894 orl %ecx, %r12d - 0x49, 0x8d, 0x55, 0x06, //0x00009897 leaq $6(%r13), %rdx - 0x49, 0x89, 0x17, //0x0000989b movq %rdx, (%r15) - 0x41, 0x83, 0xfc, 0x7f, //0x0000989e cmpl $127, %r12d - 0x0f, 0x86, 0x4c, 0x00, 0x00, 0x00, //0x000098a2 jbe LBB41_18 - 0x41, 0x81, 0xfc, 0xff, 0x07, 0x00, 0x00, //0x000098a8 cmpl $2047, %r12d - 0x0f, 0x86, 0x4c, 0x00, 0x00, 0x00, //0x000098af jbe LBB41_19 - 0x89, 0xc7, //0x000098b5 movl %eax, %edi - 0x81, 0xe7, 0x00, 0x00, 0xf8, 0x00, //0x000098b7 andl $16252928, %edi - 0x81, 0xff, 0x00, 0x00, 0xd8, 0x00, //0x000098bd cmpl $14155776, %edi - 0x0f, 0x84, 0x55, 0x00, 0x00, 0x00, //0x000098c3 je LBB41_20 - 0xc1, 0xe9, 0x0c, //0x000098c9 shrl $12, %ecx - 0x80, 0xc9, 0xe0, //0x000098cc orb $-32, %cl - 0x41, 0x88, 0x0e, //0x000098cf movb %cl, (%r14) - 0x41, 0xc1, 0xec, 0x06, //0x000098d2 shrl $6, %r12d - 0x41, 0x80, 0xe4, 0x3f, //0x000098d6 andb $63, %r12b - 0x41, 0x80, 0xcc, 0x80, //0x000098da orb $-128, %r12b - 0x45, 0x88, 0x66, 0x01, //0x000098de movb %r12b, $1(%r14) - 0x24, 0x3f, //0x000098e2 andb $63, %al - 0x0c, 0x80, //0x000098e4 orb $-128, %al - 0x41, 0x88, 0x46, 0x02, //0x000098e6 movb %al, $2(%r14) - 0xbb, 0x03, 0x00, 0x00, 0x00, //0x000098ea movl $3, %ebx - 0xe9, 0x5f, 0xff, 0xff, 0xff, //0x000098ef jmp LBB41_13 - //0x000098f4 LBB41_18 - 0x41, 0x88, 0x06, //0x000098f4 movb %al, (%r14) - 0xbb, 0x01, 0x00, 0x00, 0x00, //0x000098f7 movl $1, %ebx - 0xe9, 0x52, 0xff, 0xff, 0xff, //0x000098fc jmp LBB41_13 - //0x00009901 LBB41_19 - 0x41, 0xc1, 0xec, 0x06, //0x00009901 shrl $6, %r12d - 0x41, 0x80, 0xcc, 0xc0, //0x00009905 orb $-64, %r12b - 0x45, 0x88, 0x26, //0x00009909 movb %r12b, (%r14) - 0x24, 0x3f, //0x0000990c andb $63, %al - 0x0c, 0x80, //0x0000990e orb $-128, %al - 0x41, 0x88, 0x46, 0x01, //0x00009910 movb %al, $1(%r14) - 0xbb, 0x02, 0x00, 0x00, 0x00, //0x00009914 movl $2, %ebx - 0xe9, 0x35, 0xff, 0xff, 0xff, //0x00009919 jmp LBB41_13 - //0x0000991e LBB41_20 - 0x48, 0xc7, 0xc3, 0xfc, 0xff, 0xff, 0xff, //0x0000991e movq $-4, %rbx - 0x48, 0x83, 0xfe, 0x06, //0x00009925 cmpq $6, %rsi - 0x0f, 0x8c, 0x24, 0xff, 0xff, 0xff, //0x00009929 jl LBB41_13 - 0x41, 0x81, 0xfc, 0xff, 0xdb, 0x00, 0x00, //0x0000992f cmpl $56319, %r12d - 0x0f, 0x87, 0x17, 0xff, 0xff, 0xff, //0x00009936 ja LBB41_13 - 0x80, 0x3a, 0x5c, //0x0000993c cmpb $92, (%rdx) - 0x0f, 0x85, 0x0e, 0xff, 0xff, 0xff, //0x0000993f jne LBB41_13 - 0x41, 0x80, 0x7d, 0x07, 0x75, //0x00009945 cmpb $117, $7(%r13) - 0x0f, 0x85, 0x03, 0xff, 0xff, 0xff, //0x0000994a jne LBB41_13 - 0x49, 0x8d, 0x7d, 0x08, //0x00009950 leaq $8(%r13), %rdi - 0x48, 0x89, 0x7d, 0xd0, //0x00009954 movq %rdi, $-48(%rbp) - 0xe8, 0x13, 0x8c, 0xff, 0xff, //0x00009958 callq _unhex16_is - 0x84, 0xc0, //0x0000995d testb %al, %al - 0x0f, 0x84, 0x9a, 0x00, 0x00, 0x00, //0x0000995f je LBB41_27 - 0x48, 0x8b, 0x45, 0xd0, //0x00009965 movq $-48(%rbp), %rax - 0x8b, 0x08, //0x00009969 movl (%rax), %ecx - 0x0f, 0xc9, //0x0000996b bswapl %ecx - 0x89, 0xc8, //0x0000996d movl %ecx, %eax - 0xc1, 0xe8, 0x04, //0x0000996f shrl $4, %eax - 0xf7, 0xd0, //0x00009972 notl %eax - 0x25, 0x01, 0x01, 0x01, 0x01, //0x00009974 andl $16843009, %eax - 0x8d, 0x04, 0xc0, //0x00009979 leal (%rax,%rax,8), %eax - 0x81, 0xe1, 0x0f, 0x0f, 0x0f, 0x0f, //0x0000997c andl $252645135, %ecx - 0x01, 0xc1, //0x00009982 addl %eax, %ecx - 0x89, 0xc8, //0x00009984 movl %ecx, %eax - 0xc1, 0xe8, 0x04, //0x00009986 shrl $4, %eax - 0x09, 0xc8, //0x00009989 orl %ecx, %eax - 0x89, 0xc1, //0x0000998b movl %eax, %ecx - 0x81, 0xe1, 0x00, 0x00, 0xfc, 0x00, //0x0000998d andl $16515072, %ecx - 0x81, 0xf9, 0x00, 0x00, 0xdc, 0x00, //0x00009993 cmpl $14417920, %ecx - 0x0f, 0x85, 0x6c, 0x00, 0x00, 0x00, //0x00009999 jne LBB41_28 - 0x89, 0xc1, //0x0000999f movl %eax, %ecx - 0xc1, 0xe9, 0x08, //0x000099a1 shrl $8, %ecx - 0x81, 0xe1, 0x00, 0xff, 0x00, 0x00, //0x000099a4 andl $65280, %ecx - 0x0f, 0xb6, 0xc0, //0x000099aa movzbl %al, %eax - 0x09, 0xc8, //0x000099ad orl %ecx, %eax - 0x41, 0xc1, 0xe4, 0x0a, //0x000099af shll $10, %r12d - 0x42, 0x8d, 0x0c, 0x20, //0x000099b3 leal (%rax,%r12), %ecx - 0x44, 0x01, 0xe0, //0x000099b7 addl %r12d, %eax - 0x05, 0x00, 0x24, 0xa0, 0xfc, //0x000099ba addl $-56613888, %eax - 0x89, 0xc2, //0x000099bf movl %eax, %edx - 0xc1, 0xea, 0x12, //0x000099c1 shrl $18, %edx - 0x80, 0xca, 0xf0, //0x000099c4 orb $-16, %dl - 0x41, 0x88, 0x16, //0x000099c7 movb %dl, (%r14) - 0x89, 0xc2, //0x000099ca movl %eax, %edx - 0xc1, 0xea, 0x0c, //0x000099cc shrl $12, %edx - 0x80, 0xe2, 0x3f, //0x000099cf andb $63, %dl - 0x80, 0xca, 0x80, //0x000099d2 orb $-128, %dl - 0x41, 0x88, 0x56, 0x01, //0x000099d5 movb %dl, $1(%r14) - 0xc1, 0xe8, 0x06, //0x000099d9 shrl $6, %eax - 0x24, 0x3f, //0x000099dc andb $63, %al - 0x0c, 0x80, //0x000099de orb $-128, %al - 0x41, 0x88, 0x46, 0x02, //0x000099e0 movb %al, $2(%r14) - 0x80, 0xe1, 0x3f, //0x000099e4 andb $63, %cl - 0x80, 0xc9, 0x80, //0x000099e7 orb $-128, %cl - 0x41, 0x88, 0x4e, 0x03, //0x000099ea movb %cl, $3(%r14) - 0x49, 0x83, 0xc5, 0x0c, //0x000099ee addq $12, %r13 - 0x4d, 0x89, 0x2f, //0x000099f2 movq %r13, (%r15) - 0xbb, 0x04, 0x00, 0x00, 0x00, //0x000099f5 movl $4, %ebx - 0xe9, 0x54, 0xfe, 0xff, 0xff, //0x000099fa jmp LBB41_13 - //0x000099ff LBB41_27 - 0x48, 0x8b, 0x45, 0xd0, //0x000099ff movq $-48(%rbp), %rax - 0x49, 0x89, 0x07, //0x00009a03 movq %rax, (%r15) - 0xe9, 0x41, 0xfe, 0xff, 0xff, //0x00009a06 jmp LBB41_12 - //0x00009a0b LBB41_28 - 0x48, 0x8b, 0x45, 0xd0, //0x00009a0b movq $-48(%rbp), %rax - 0x49, 0x89, 0x07, //0x00009a0f movq %rax, (%r15) - 0xe9, 0x3c, 0xfe, 0xff, 0xff, //0x00009a12 jmp LBB41_13 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00009a17 .p2align 4, 0x00 - //0x00009a20 _POW10_M128_TAB - 0x53, 0xe4, 0x60, 0xcd, 0x69, 0xc8, 0x32, 0x17, //0x00009a20 .quad 1671618768450675795 - 0x88, 0x02, 0x1c, 0x08, 0xa0, 0xd5, 0x8f, 0xfa, //0x00009a28 .quad -391859759250406776 - 0xb4, 0x8e, 0x5c, 0x20, 0x42, 0xbd, 0x7f, 0x0e, //0x00009a30 .quad 1044761730281672372 - 0x95, 0x81, 0x11, 0x05, 0x84, 0xe5, 0x99, 0x9c, //0x00009a38 .quad -7162441377172586091 - 0x61, 0xb2, 0x73, 0xa8, 0x92, 0xac, 0x1f, 0x52, //0x00009a40 .quad 5917638181279478369 - 0xfa, 0xe1, 0x55, 0x06, 0xe5, 0x5e, 0xc0, 0xc3, //0x00009a48 .quad -4341365703038344710 - 0xf9, 0x9e, 0x90, 0x52, 0xb7, 0x97, 0xa7, 0xe6, //0x00009a50 .quad -1826324310255427847 - 0x78, 0x5a, 0xeb, 0x47, 0x9e, 0x76, 0xb0, 0xf4, //0x00009a58 .quad -815021110370542984 - 0x5c, 0x63, 0x9a, 0x93, 0xd2, 0xbe, 0x28, 0x90, //0x00009a60 .quad -8058981721550724260 - 0x8b, 0x18, 0xf3, 0xec, 0x22, 0x4a, 0xee, 0x98, //0x00009a68 .quad -7426917221622671221 - 0x33, 0xfc, 0x80, 0x38, 0x87, 0xee, 0x32, 0x74, //0x00009a70 .quad 8373016921771146291 - 0xae, 0xde, 0x2f, 0xa8, 0xab, 0xdc, 0x29, 0xbf, //0x00009a78 .quad -4671960508600951122 - 0x3f, 0x3b, 0xa1, 0x06, 0x29, 0xaa, 0x3f, 0x11, //0x00009a80 .quad 1242899115359157055 - 0x5a, 0xd6, 0x3b, 0x92, 0xd6, 0x53, 0xf4, 0xee, //0x00009a88 .quad -1228264617323800998 - 0x07, 0xc5, 0x24, 0xa4, 0x59, 0xca, 0xc7, 0x4a, //0x00009a90 .quad 5388497965526861063 - 0xf8, 0x65, 0x65, 0x1b, 0x66, 0xb4, 0x58, 0x95, //0x00009a98 .quad -7685194413468457480 - 0x49, 0xf6, 0x2d, 0x0d, 0xf0, 0xbc, 0x79, 0x5d, //0x00009aa0 .quad 6735622456908576329 - 0x76, 0xbf, 0x3e, 0xa2, 0x7f, 0xe1, 0xae, 0xba, //0x00009aa8 .quad -4994806998408183946 - 0xdc, 0x73, 0x79, 0x10, 0x2c, 0x2c, 0xd8, 0xf4, //0x00009ab0 .quad -803843965719055396 - 0x53, 0x6f, 0xce, 0x8a, 0xdf, 0x99, 0x5a, 0xe9, //0x00009ab8 .quad -1631822729582842029 - 0x69, 0xe8, 0x4b, 0x8a, 0x9b, 0x1b, 0x07, 0x79, //0x00009ac0 .quad 8720969558280366185 - 0x94, 0x05, 0xc1, 0xb6, 0x2b, 0xa0, 0xd8, 0x91, //0x00009ac8 .quad -7937418233630358124 - 0x84, 0xe2, 0xde, 0x6c, 0x82, 0xe2, 0x48, 0x97, //0x00009ad0 .quad -7545532125859093884 - 0xf9, 0x46, 0x71, 0xa4, 0x36, 0xc8, 0x4e, 0xb6, //0x00009ad8 .quad -5310086773610559751 - 0x25, 0x9b, 0x16, 0x08, 0x23, 0x1b, 0x1b, 0xfd, //0x00009ae0 .quad -208543120469091547 - 0xb7, 0x98, 0x8d, 0x4d, 0x44, 0x7a, 0xe2, 0xe3, //0x00009ae8 .quad -2025922448585811785 - 0xf7, 0x20, 0x0e, 0xe5, 0xf5, 0xf0, 0x30, 0xfe, //0x00009af0 .quad -130339450293182217 - 0x72, 0x7f, 0x78, 0xb0, 0x6a, 0x8c, 0x6d, 0x8e, //0x00009af8 .quad -8183730558007214222 - 0x35, 0xa9, 0x51, 0x5e, 0x33, 0x2d, 0xbd, 0xbd, //0x00009b00 .quad -4774610331293865675 - 0x4f, 0x9f, 0x96, 0x5c, 0x85, 0xef, 0x08, 0xb2, //0x00009b08 .quad -5617977179081629873 - 0x82, 0x13, 0xe6, 0x35, 0x80, 0x78, 0x2c, 0xad, //0x00009b10 .quad -5968262914117332094 - 0x23, 0x47, 0xbc, 0xb3, 0x66, 0x2b, 0x8b, 0xde, //0x00009b18 .quad -2410785455424649437 - 0x31, 0xcc, 0xaf, 0x21, 0x50, 0xcb, 0x3b, 0x4c, //0x00009b20 .quad 5493207715531443249 - 0x76, 0xac, 0x55, 0x30, 0x20, 0xfb, 0x16, 0x8b, //0x00009b28 .quad -8424269937281487754 - 0x3d, 0xbf, 0x1b, 0x2a, 0x24, 0xbe, 0x4a, 0xdf, //0x00009b30 .quad -2356862392440471747 - 0x93, 0x17, 0x6b, 0x3c, 0xe8, 0xb9, 0xdc, 0xad, //0x00009b38 .quad -5918651403174471789 - 0x0d, 0xaf, 0xa2, 0x34, 0xad, 0x6d, 0x1d, 0xd7, //0x00009b40 .quad -2946077990550589683 - 0x78, 0xdd, 0x85, 0x4b, 0x62, 0xe8, 0x53, 0xd9, //0x00009b48 .quad -2786628235540701832 - 0x68, 0xad, 0xe5, 0x40, 0x8c, 0x64, 0x72, 0x86, //0x00009b50 .quad -8758827771735200408 - 0x6b, 0xaa, 0x33, 0x6f, 0x3d, 0x71, 0xd4, 0x87, //0x00009b58 .quad -8659171674854020501 - 0xc2, 0x18, 0x1f, 0x51, 0xaf, 0xfd, 0x0e, 0x68, //0x00009b60 .quad 7498209359040551106 - 0x06, 0x95, 0x00, 0xcb, 0x8c, 0x8d, 0xc9, 0xa9, //0x00009b68 .quad -6212278575140137722 - 0xf2, 0xde, 0x66, 0x25, 0x1b, 0xbd, 0x12, 0x02, //0x00009b70 .quad 149389661945913074 - 0x48, 0xba, 0xc0, 0xfd, 0xef, 0xf0, 0x3b, 0xd4, //0x00009b78 .quad -3153662200497784248 - 0x57, 0x4b, 0x60, 0xf7, 0x30, 0xb6, 0x4b, 0x01, //0x00009b80 .quad 93368538716195671 - 0x6d, 0x74, 0x98, 0xfe, 0x95, 0x76, 0xa5, 0x84, //0x00009b88 .quad -8888567902952197011 - 0x2d, 0x5e, 0x38, 0x35, 0xbd, 0xa3, 0x9e, 0x41, //0x00009b90 .quad 4728396691822632493 - 0x88, 0x91, 0x3e, 0x7e, 0x3b, 0xd4, 0xce, 0xa5, //0x00009b98 .quad -6499023860262858360 - 0xb9, 0x75, 0x86, 0x82, 0xac, 0x4c, 0x06, 0x52, //0x00009ba0 .quad 5910495864778290617 - 0xea, 0x35, 0xce, 0x5d, 0x4a, 0x89, 0x42, 0xcf, //0x00009ba8 .quad -3512093806901185046 - 0x93, 0x09, 0x94, 0xd1, 0xeb, 0xef, 0x43, 0x73, //0x00009bb0 .quad 8305745933913819539 - 0xb2, 0xe1, 0xa0, 0x7a, 0xce, 0x95, 0x89, 0x81, //0x00009bb8 .quad -9112587656954322510 - 0xf8, 0x0b, 0xf9, 0xc5, 0xe6, 0xeb, 0x14, 0x10, //0x00009bc0 .quad 1158810380537498616 - 0x1f, 0x1a, 0x49, 0x19, 0x42, 0xfb, 0xeb, 0xa1, //0x00009bc8 .quad -6779048552765515233 - 0xf6, 0x4e, 0x77, 0x77, 0xe0, 0x26, 0x1a, 0xd4, //0x00009bd0 .quad -3163173042755514634 - 0xa6, 0x60, 0x9b, 0x9f, 0x12, 0xfa, 0x66, 0xca, //0x00009bd8 .quad -3862124672529506138 - 0xb4, 0x22, 0x55, 0x95, 0x98, 0xb0, 0x20, 0x89, //0x00009be0 .quad -8565652321871781196 - 0xd0, 0x38, 0x82, 0x47, 0x97, 0xb8, 0x00, 0xfd, //0x00009be8 .quad -215969822234494768 - 0xb0, 0x35, 0x55, 0x5d, 0x5f, 0x6e, 0xb4, 0x55, //0x00009bf0 .quad 6175682344898606512 - 0x82, 0x63, 0xb1, 0x8c, 0x5e, 0x73, 0x20, 0x9e, //0x00009bf8 .quad -7052510166537641086 - 0x1d, 0x83, 0xaa, 0x34, 0xf7, 0x89, 0x21, 0xeb, //0x00009c00 .quad -1503769105731517667 - 0x62, 0xbc, 0xdd, 0x2f, 0x36, 0x90, 0xa8, 0xc5, //0x00009c08 .quad -4203951689744663454 - 0xe4, 0x23, 0xd5, 0x01, 0x75, 0xec, 0xe9, 0xa5, //0x00009c10 .quad -6491397400591784988 - 0x7b, 0x2b, 0xd5, 0xbb, 0x43, 0xb4, 0x12, 0xf7, //0x00009c18 .quad -643253593753441413 - 0x6e, 0x36, 0x25, 0x21, 0xc9, 0x33, 0xb2, 0x47, //0x00009c20 .quad 5166248661484910190 - 0x2d, 0x3b, 0x65, 0x55, 0xaa, 0xb0, 0x6b, 0x9a, //0x00009c28 .quad -7319562523736982739 - 0x0a, 0x84, 0x6e, 0x69, 0xbb, 0xc0, 0x9e, 0x99, //0x00009c30 .quad -7377247228426025974 - 0xf8, 0x89, 0xbe, 0xea, 0xd4, 0x9c, 0x06, 0xc1, //0x00009c38 .quad -4537767136243840520 - 0x0d, 0x25, 0xca, 0x43, 0xea, 0x70, 0x06, 0xc0, //0x00009c40 .quad -4609873017105144563 - 0x76, 0x2c, 0x6e, 0x25, 0x0a, 0x44, 0x48, 0xf1, //0x00009c48 .quad -1060522901877412746 - 0x28, 0x57, 0x5e, 0x6a, 0x92, 0x06, 0x04, 0x38, //0x00009c50 .quad 4036358391950366504 - 0xca, 0xdb, 0x64, 0x57, 0x86, 0x2a, 0xcd, 0x96, //0x00009c58 .quad -7580355841314464822 - 0xf2, 0xec, 0xf5, 0x04, 0x37, 0x08, 0x05, 0xc6, //0x00009c60 .quad -4177924046916817678 - 0xbc, 0x12, 0x3e, 0xed, 0x27, 0x75, 0x80, 0xbc, //0x00009c68 .quad -4863758783215693124 - 0x2e, 0x68, 0x33, 0xc6, 0x44, 0x4a, 0x86, 0xf7, //0x00009c70 .quad -610719040218634194 - 0x6b, 0x97, 0x8d, 0xe8, 0x71, 0x92, 0xa0, 0xeb, //0x00009c78 .quad -1468012460592228501 - 0x1d, 0x21, 0xe0, 0xfb, 0x6a, 0xee, 0xb3, 0x7a, //0x00009c80 .quad 8841672636718129437 - 0xa3, 0x7e, 0x58, 0x31, 0x87, 0x5b, 0x44, 0x93, //0x00009c88 .quad -7835036815511224669 - 0x64, 0x29, 0xd8, 0xba, 0x05, 0xea, 0x60, 0x59, //0x00009c90 .quad 6440404777470273892 - 0x4c, 0x9e, 0xae, 0xfd, 0x68, 0x72, 0x15, 0xb8, //0x00009c98 .quad -5182110000961642932 - 0xbd, 0x33, 0x8e, 0x29, 0x87, 0x24, 0xb9, 0x6f, //0x00009ca0 .quad 8050505971837842365 - 0xdf, 0x45, 0x1a, 0x3d, 0x03, 0xcf, 0x1a, 0xe6, //0x00009ca8 .quad -1865951482774665761 - 0x56, 0xe0, 0xf8, 0x79, 0xd4, 0xb6, 0xd3, 0xa5, //0x00009cb0 .quad -6497648813669818282 - 0xab, 0x6b, 0x30, 0x06, 0x62, 0xc1, 0xd0, 0x8f, //0x00009cb8 .quad -8083748704375247957 - 0x6c, 0x18, 0x77, 0x98, 0x89, 0xa4, 0x48, 0x8f, //0x00009cc0 .quad -8122061017087272852 - 0x96, 0x86, 0xbc, 0x87, 0xba, 0xf1, 0xc4, 0xb3, //0x00009cc8 .quad -5492999862041672042 - 0x87, 0xde, 0x94, 0xfe, 0xab, 0xcd, 0x1a, 0x33, //0x00009cd0 .quad 3682481783923072647 - 0x3c, 0xa8, 0xab, 0x29, 0x29, 0x2e, 0xb6, 0xe0, //0x00009cd8 .quad -2254563809124702148 - 0x14, 0x0b, 0x1d, 0x7f, 0x8b, 0xc0, 0xf0, 0x9f, //0x00009ce0 .quad -6921820921902855404 - 0x25, 0x49, 0x0b, 0xba, 0xd9, 0xdc, 0x71, 0x8c, //0x00009ce8 .quad -8326631408344020699 - 0xd9, 0x4d, 0xe4, 0x5e, 0xae, 0xf0, 0xec, 0x07, //0x00009cf0 .quad 571095884476206553 - 0x6f, 0x1b, 0x8e, 0x28, 0x10, 0x54, 0x8e, 0xaf, //0x00009cf8 .quad -5796603242002637969 - 0x50, 0x61, 0x9d, 0xf6, 0xd9, 0x2c, 0xe8, 0xc9, //0x00009d00 .quad -3897816162832129712 - 0x4a, 0xa2, 0xb1, 0x32, 0x14, 0xe9, 0x71, 0xdb, //0x00009d08 .quad -2634068034075909558 - 0xd2, 0x5c, 0x22, 0x3a, 0x08, 0x1c, 0x31, 0xbe, //0x00009d10 .quad -4741978110983775022 - 0x6e, 0x05, 0xaf, 0x9f, 0xac, 0x31, 0x27, 0x89, //0x00009d18 .quad -8563821548938525330 - 0x06, 0xf4, 0xaa, 0x48, 0x0a, 0x63, 0xbd, 0x6d, //0x00009d20 .quad 7907585416552444934 - 0xca, 0xc6, 0x9a, 0xc7, 0x17, 0xfe, 0x70, 0xab, //0x00009d28 .quad -6093090917745768758 - 0x08, 0xb1, 0xd5, 0xda, 0xcc, 0xbb, 0x2c, 0x09, //0x00009d30 .quad 661109733835780360 - 0x7d, 0x78, 0x81, 0xb9, 0x9d, 0x3d, 0x4d, 0xd6, //0x00009d38 .quad -3004677628754823043 - 0xa5, 0x8e, 0xc5, 0x08, 0x60, 0xf5, 0xbb, 0x25, //0x00009d40 .quad 2719036592861056677 - 0x4e, 0xeb, 0xf0, 0x93, 0x82, 0x46, 0xf0, 0x85, //0x00009d48 .quad -8795452545612846258 - 0x4e, 0xf2, 0xf6, 0x0a, 0xb8, 0xf2, 0x2a, 0xaf, //0x00009d50 .quad -5824576295778454962 - 0x21, 0x26, 0xed, 0x38, 0x23, 0x58, 0x6c, 0xa7, //0x00009d58 .quad -6382629663588669919 - 0xe1, 0xae, 0xb4, 0x0d, 0x66, 0xaf, 0xf5, 0x1a, //0x00009d60 .quad 1942651667131707105 - 0xaa, 0x6f, 0x28, 0x07, 0x2c, 0x6e, 0x47, 0xd1, //0x00009d68 .quad -3366601061058449494 - 0x4d, 0xed, 0x90, 0xc8, 0x9f, 0x8d, 0xd9, 0x50, //0x00009d70 .quad 5825843310384704845 - 0xca, 0x45, 0x79, 0x84, 0xdb, 0xa4, 0xcc, 0x82, //0x00009d78 .quad -9021654690802612790 - 0xa0, 0x28, 0xb5, 0xba, 0x07, 0xf1, 0x0f, 0xe5, //0x00009d80 .quad -1941067898873894752 - 0x3c, 0x97, 0x97, 0x65, 0x12, 0xce, 0x7f, 0xa3, //0x00009d88 .quad -6665382345075878084 - 0xc8, 0x72, 0x62, 0xa9, 0x49, 0xed, 0x53, 0x1e, //0x00009d90 .quad 2185351144835019464 - 0x0c, 0x7d, 0xfd, 0xfe, 0x96, 0xc1, 0x5f, 0xcc, //0x00009d98 .quad -3720041912917459700 - 0x7a, 0x0f, 0xbb, 0x13, 0x9c, 0xe8, 0xe8, 0x25, //0x00009da0 .quad 2731688931043774330 - 0x4f, 0xdc, 0xbc, 0xbe, 0xfc, 0xb1, 0x77, 0xff, //0x00009da8 .quad -38366372719436721 - 0xac, 0xe9, 0x54, 0x8c, 0x61, 0x91, 0xb1, 0x77, //0x00009db0 .quad 8624834609543440812 - 0xb1, 0x09, 0x36, 0xf7, 0x3d, 0xcf, 0xaa, 0x9f, //0x00009db8 .quad -6941508010590729807 - 0x17, 0x24, 0x6a, 0xef, 0xb9, 0xf5, 0x9d, 0xd5, //0x00009dc0 .quad -3054014793352862697 - 0x1d, 0x8c, 0x03, 0x75, 0x0d, 0x83, 0x95, 0xc7, //0x00009dc8 .quad -4065198994811024355 - 0x1d, 0xad, 0x44, 0x6b, 0x28, 0x73, 0x05, 0x4b, //0x00009dd0 .quad 5405853545163697437 - 0x25, 0x6f, 0x44, 0xd2, 0xd0, 0xe3, 0x7a, 0xf9, //0x00009dd8 .quad -469812725086392539 - 0x32, 0xec, 0x0a, 0x43, 0xf9, 0x67, 0xe3, 0x4e, //0x00009de0 .quad 5684501474941004850 - 0x77, 0xc5, 0x6a, 0x83, 0x62, 0xce, 0xec, 0x9b, //0x00009de8 .quad -7211161980820077193 - 0x3f, 0xa7, 0xcd, 0x93, 0xf7, 0x41, 0x9c, 0x22, //0x00009df0 .quad 2493940825248868159 - 0xd5, 0x76, 0x45, 0x24, 0xfb, 0x01, 0xe8, 0xc2, //0x00009df8 .quad -4402266457597708587 - 0x0f, 0x11, 0xc1, 0x78, 0x75, 0x52, 0x43, 0x6b, //0x00009e00 .quad 7729112049988473103 - 0x8a, 0xd4, 0x56, 0xed, 0x79, 0x02, 0xa2, 0xf3, //0x00009e08 .quad -891147053569747830 - 0xa9, 0xaa, 0x78, 0x6b, 0x89, 0x13, 0x0a, 0x83, //0x00009e10 .quad -9004363024039368023 - 0xd6, 0x44, 0x56, 0x34, 0x8c, 0x41, 0x45, 0x98, //0x00009e18 .quad -7474495936122174250 - 0x53, 0xd5, 0x56, 0xc6, 0x6b, 0x98, 0xcc, 0x23, //0x00009e20 .quad 2579604275232953683 - 0x0c, 0xd6, 0x6b, 0x41, 0xef, 0x91, 0x56, 0xbe, //0x00009e28 .quad -4731433901725329908 - 0xa8, 0x8a, 0xec, 0xb7, 0x86, 0xbe, 0xbf, 0x2c, //0x00009e30 .quad 3224505344041192104 - 0x8f, 0xcb, 0xc6, 0x11, 0x6b, 0x36, 0xec, 0xed, //0x00009e38 .quad -1302606358729274481 - 0xa9, 0xd6, 0xf3, 0x32, 0x14, 0xd7, 0xf7, 0x7b, //0x00009e40 .quad 8932844867666826921 - 0x39, 0x3f, 0x1c, 0xeb, 0x02, 0xa2, 0xb3, 0x94, //0x00009e48 .quad -7731658001846878407 - 0x53, 0xcc, 0xb0, 0x3f, 0xd9, 0xcc, 0xf5, 0xda, //0x00009e50 .quad -2669001970698630061 - 0x07, 0x4f, 0xe3, 0xa5, 0x83, 0x8a, 0xe0, 0xb9, //0x00009e58 .quad -5052886483881210105 - 0x68, 0xff, 0x9c, 0x8f, 0x0f, 0x40, 0xb3, 0xd1, //0x00009e60 .quad -3336252463373287576 - 0xc9, 0x22, 0x5c, 0x8f, 0x24, 0xad, 0x58, 0xe8, //0x00009e68 .quad -1704422086424124727 - 0xa1, 0x1f, 0xc2, 0xb9, 0x09, 0x08, 0x10, 0x23, //0x00009e70 .quad 2526528228819083169 - 0xbe, 0x95, 0x99, 0xd9, 0x36, 0x6c, 0x37, 0x91, //0x00009e78 .quad -7982792831656159810 - 0x8a, 0xa7, 0x32, 0x28, 0x0c, 0x0a, 0xd4, 0xab, //0x00009e80 .quad -6065211750830921846 - 0x2d, 0xfb, 0xff, 0x8f, 0x44, 0x47, 0x85, 0xb5, //0x00009e88 .quad -5366805021142811859 - 0x6c, 0x51, 0x3f, 0x32, 0x8f, 0x0c, 0xc9, 0x16, //0x00009e90 .quad 1641857348316123500 - 0xf9, 0xf9, 0xff, 0xb3, 0x15, 0x99, 0xe6, 0xe2, //0x00009e98 .quad -2096820258001126919 - 0xe3, 0x92, 0x67, 0x7f, 0xd9, 0xa7, 0x3d, 0xae, //0x00009ea0 .quad -5891368184943504669 - 0x3b, 0xfc, 0x7f, 0x90, 0xad, 0x1f, 0xd0, 0x8d, //0x00009ea8 .quad -8228041688891786181 - 0x9c, 0x77, 0x41, 0xdf, 0xcf, 0x11, 0xcd, 0x99, //0x00009eb0 .quad -7364210231179380836 - 0x4a, 0xfb, 0x9f, 0xf4, 0x98, 0x27, 0x44, 0xb1, //0x00009eb8 .quad -5673366092687344822 - 0x83, 0xd5, 0x11, 0xd7, 0x43, 0x56, 0x40, 0x40, //0x00009ec0 .quad 4629795266307937667 - 0x1d, 0xfa, 0xc7, 0x31, 0x7f, 0x31, 0x95, 0xdd, //0x00009ec8 .quad -2480021597431793123 - 0x72, 0x25, 0x6b, 0x66, 0xea, 0x35, 0x28, 0x48, //0x00009ed0 .quad 5199465050656154994 - 0x52, 0xfc, 0x1c, 0x7f, 0xef, 0x3e, 0x7d, 0x8a, //0x00009ed8 .quad -8467542526035952558 - 0xcf, 0xee, 0x05, 0x00, 0x65, 0x43, 0x32, 0xda, //0x00009ee0 .quad -2724040723534582065 - 0x66, 0x3b, 0xe4, 0x5e, 0xab, 0x8e, 0x1c, 0xad, //0x00009ee8 .quad -5972742139117552794 - 0x82, 0x6a, 0x07, 0x40, 0x3e, 0xd4, 0xbe, 0x90, //0x00009ef0 .quad -8016736922845615486 - 0x40, 0x4a, 0x9d, 0x36, 0x56, 0xb2, 0x63, 0xd8, //0x00009ef8 .quad -2854241655469553088 - 0x91, 0xa2, 0x04, 0xe8, 0xa6, 0x44, 0x77, 0x5a, //0x00009f00 .quad 6518754469289960081 - 0x68, 0x4e, 0x22, 0xe2, 0x75, 0x4f, 0x3e, 0x87, //0x00009f08 .quad -8701430062309552536 - 0x36, 0xcb, 0x05, 0xa2, 0xd0, 0x15, 0x15, 0x71, //0x00009f10 .quad 8148443086612450102 - 0x02, 0xe2, 0xaa, 0x5a, 0x53, 0xe3, 0x0d, 0xa9, //0x00009f18 .quad -6265101559459552766 - 0x03, 0x3e, 0x87, 0xca, 0x44, 0x5b, 0x5a, 0x0d, //0x00009f20 .quad 962181821410786819 - 0x83, 0x9a, 0x55, 0x31, 0x28, 0x5c, 0x51, 0xd3, //0x00009f28 .quad -3219690930897053053 - 0xc2, 0x86, 0x94, 0xfe, 0x0a, 0x79, 0x58, 0xe8, //0x00009f30 .quad -1704479370831952190 - 0x91, 0x80, 0xd5, 0x1e, 0x99, 0xd9, 0x12, 0x84, //0x00009f38 .quad -8929835859451740015 - 0x72, 0xa8, 0x39, 0xbe, 0x4d, 0x97, 0x6e, 0x62, //0x00009f40 .quad 7092772823314835570 - 0xb6, 0xe0, 0x8a, 0x66, 0xff, 0x8f, 0x17, 0xa5, //0x00009f48 .quad -6550608805887287114 - 0x8f, 0x12, 0xc8, 0x2d, 0x21, 0x3d, 0x0a, 0xfb, //0x00009f50 .quad -357406007711231345 - 0xe3, 0x98, 0x2d, 0x40, 0xff, 0x73, 0x5d, 0xce, //0x00009f58 .quad -3576574988931720989 - 0x99, 0x0b, 0x9d, 0xbc, 0x34, 0x66, 0xe6, 0x7c, //0x00009f60 .quad 8999993282035256217 - 0x8e, 0x7f, 0x1c, 0x88, 0x7f, 0x68, 0xfa, 0x80, //0x00009f68 .quad -9152888395723407474 - 0x80, 0x4e, 0xc4, 0xeb, 0xc1, 0xff, 0x1f, 0x1c, //0x00009f70 .quad 2026619565689294464 - 0x72, 0x9f, 0x23, 0x6a, 0x9f, 0x02, 0x39, 0xa1, //0x00009f78 .quad -6829424476226871438 - 0x20, 0x62, 0xb5, 0x66, 0xb2, 0xff, 0x27, 0xa3, //0x00009f80 .quad -6690097579743157728 - 0x4e, 0x87, 0xac, 0x44, 0x47, 0x43, 0x87, 0xc9, //0x00009f88 .quad -3925094576856201394 - 0xa8, 0xba, 0x62, 0x00, 0x9f, 0xff, 0xf1, 0x4b, //0x00009f90 .quad 5472436080603216552 - 0x22, 0xa9, 0xd7, 0x15, 0x19, 0x14, 0xe9, 0xfb, //0x00009f98 .quad -294682202642863838 - 0xa9, 0xb4, 0x3d, 0x60, 0xc3, 0x3f, 0x77, 0x6f, //0x00009fa0 .quad 8031958568804398249 - 0xb5, 0xc9, 0xa6, 0xad, 0x8f, 0xac, 0x71, 0x9d, //0x00009fa8 .quad -7101705404292871755 - 0xd3, 0x21, 0x4d, 0x38, 0xb4, 0x0f, 0x55, 0xcb, //0x00009fb0 .quad -3795109844276665901 - 0x22, 0x7c, 0x10, 0x99, 0xb3, 0x17, 0xce, 0xc4, //0x00009fb8 .quad -4265445736938701790 - 0x48, 0x6a, 0x60, 0x46, 0xa1, 0x53, 0x2a, 0x7e, //0x00009fc0 .quad 9091170749936331336 - 0x2b, 0x9b, 0x54, 0x7f, 0xa0, 0x9d, 0x01, 0xf6, //0x00009fc8 .quad -720121152745989333 - 0x6d, 0x42, 0xfc, 0xcb, 0x44, 0x74, 0xda, 0x2e, //0x00009fd0 .quad 3376138709496513133 - 0xfb, 0xe0, 0x94, 0x4f, 0x84, 0x02, 0xc1, 0x99, //0x00009fd8 .quad -7367604748107325189 - 0x08, 0x53, 0xfb, 0xfe, 0x55, 0x11, 0x91, 0xfa, //0x00009fe0 .quad -391512631556746488 - 0x39, 0x19, 0x7a, 0x63, 0x25, 0x43, 0x31, 0xc0, //0x00009fe8 .quad -4597819916706768583 - 0xca, 0x27, 0xba, 0x7e, 0xab, 0x55, 0x35, 0x79, //0x00009ff0 .quad 8733981247408842698 - 0x88, 0x9f, 0x58, 0xbc, 0xee, 0x93, 0x3d, 0xf0, //0x00009ff8 .quad -1135588877456072824 - 0xde, 0x58, 0x34, 0x2f, 0x8b, 0x55, 0xc1, 0x4b, //0x0000a000 .quad 5458738279630526686 - 0xb5, 0x63, 0xb7, 0x35, 0x75, 0x7c, 0x26, 0x96, //0x0000a008 .quad -7627272076051127371 - 0x16, 0x6f, 0x01, 0xfb, 0xed, 0xaa, 0xb1, 0x9e, //0x0000a010 .quad -7011635205744005354 - 0xa2, 0x3c, 0x25, 0x83, 0x92, 0x1b, 0xb0, 0xbb, //0x0000a018 .quad -4922404076636521310 - 0xdc, 0xca, 0xc1, 0x79, 0xa9, 0x15, 0x5e, 0x46, //0x0000a020 .quad 5070514048102157020 - 0xcb, 0x8b, 0xee, 0x23, 0x77, 0x22, 0x9c, 0xea, //0x0000a028 .quad -1541319077368263733 - 0xc9, 0x1e, 0x19, 0xec, 0x89, 0xcd, 0xfa, 0x0b, //0x0000a030 .quad 863228270850154185 - 0x5f, 0x17, 0x75, 0x76, 0x8a, 0x95, 0xa1, 0x92, //0x0000a038 .quad -7880853450996246689 - 0x7b, 0x66, 0x1f, 0x67, 0xec, 0x80, 0xf9, 0xce, //0x0000a040 .quad -3532650679864695173 - 0x36, 0x5d, 0x12, 0x14, 0xed, 0xfa, 0x49, 0xb7, //0x0000a048 .quad -5239380795317920458 - 0x1a, 0x40, 0xe7, 0x80, 0x27, 0xe1, 0xb7, 0x82, //0x0000a050 .quad -9027499368258256870 - 0x84, 0xf4, 0x16, 0x59, 0xa8, 0x79, 0x1c, 0xe5, //0x0000a058 .quad -1937539975720012668 - 0x10, 0x88, 0x90, 0xb0, 0xb8, 0xec, 0xb2, 0xd1, //0x0000a060 .quad -3336344095947716592 - 0xd2, 0x58, 0xae, 0x37, 0x09, 0xcc, 0x31, 0x8f, //0x0000a068 .quad -8128491512466089774 - 0x15, 0xaa, 0xb4, 0xdc, 0xe6, 0xa7, 0x1f, 0x86, //0x0000a070 .quad -8782116138362033643 - 0x07, 0xef, 0x99, 0x85, 0x0b, 0x3f, 0xfe, 0xb2, //0x0000a078 .quad -5548928372155224313 - 0x9a, 0xd4, 0xe1, 0x93, 0xe0, 0x91, 0xa7, 0x67, //0x0000a080 .quad 7469098900757009562 - 0xc9, 0x6a, 0x00, 0x67, 0xce, 0xce, 0xbd, 0xdf, //0x0000a088 .quad -2324474446766642487 - 0xe0, 0x24, 0x6d, 0x5c, 0x2c, 0xbb, 0xc8, 0xe0, //0x0000a090 .quad -2249342214667950880 - 0xbd, 0x42, 0x60, 0x00, 0x41, 0xa1, 0xd6, 0x8b, //0x0000a098 .quad -8370325556870233411 - 0x18, 0x6e, 0x88, 0x73, 0xf7, 0xe9, 0xfa, 0x58, //0x0000a0a0 .quad 6411694268519837208 - 0x6d, 0x53, 0x78, 0x40, 0x91, 0x49, 0xcc, 0xae, //0x0000a0a8 .quad -5851220927660403859 - 0x9e, 0x89, 0x6a, 0x50, 0x75, 0xa4, 0x39, 0xaf, //0x0000a0b0 .quad -5820440219632367202 - 0x48, 0x68, 0x96, 0x90, 0xf5, 0x5b, 0x7f, 0xda, //0x0000a0b8 .quad -2702340141148116920 - 0x03, 0x96, 0x42, 0x52, 0xc9, 0x06, 0x84, 0x6d, //0x0000a0c0 .quad 7891439908798240259 - 0x2d, 0x01, 0x5e, 0x7a, 0x79, 0x99, 0x8f, 0x88, //0x0000a0c8 .quad -8606491615858654931 - 0x83, 0x3b, 0xd3, 0xa6, 0x7b, 0x08, 0xe5, 0xc8, //0x0000a0d0 .quad -3970758169284363389 - 0x78, 0x81, 0xf5, 0xd8, 0xd7, 0x7f, 0xb3, 0xaa, //0x0000a0d8 .quad -6146428501395930760 - 0x64, 0x0a, 0x88, 0x90, 0x9a, 0x4a, 0x1e, 0xfb, //0x0000a0e0 .quad -351761693178066332 - 0xd6, 0xe1, 0x32, 0xcf, 0xcd, 0x5f, 0x60, 0xd5, //0x0000a0e8 .quad -3071349608317525546 - 0x7f, 0x06, 0x55, 0x9a, 0xa0, 0xee, 0xf2, 0x5c, //0x0000a0f0 .quad 6697677969404790399 - 0x26, 0xcd, 0x7f, 0xa1, 0xe0, 0x3b, 0x5c, 0x85, //0x0000a0f8 .quad -8837122532839535322 - 0x1e, 0x48, 0xea, 0xc0, 0x48, 0xaa, 0x2f, 0xf4, //0x0000a100 .quad -851274575098787810 - 0x6f, 0xc0, 0xdf, 0xc9, 0xd8, 0x4a, 0xb3, 0xa6, //0x0000a108 .quad -6434717147622031249 - 0x26, 0xda, 0x24, 0xf1, 0xda, 0x94, 0x3b, 0xf1, //0x0000a110 .quad -1064093218873484762 - 0x8b, 0xb0, 0x57, 0xfc, 0x8e, 0x1d, 0x60, 0xd0, //0x0000a118 .quad -3431710416100151157 - 0x58, 0x08, 0xb7, 0xd6, 0x08, 0x3d, 0xc5, 0x76, //0x0000a120 .quad 8558313775058847832 - 0x57, 0xce, 0xb6, 0x5d, 0x79, 0x12, 0x3c, 0x82, //0x0000a128 .quad -9062348037703676329 - 0x6e, 0xca, 0x64, 0x0c, 0x4b, 0x8c, 0x76, 0x54, //0x0000a130 .quad 6086206200396171886 - 0xed, 0x81, 0x24, 0xb5, 0x17, 0x17, 0xcb, 0xa2, //0x0000a138 .quad -6716249028702207507 - 0x09, 0xfd, 0x7d, 0xcf, 0x5d, 0x2f, 0x94, 0xa9, //0x0000a140 .quad -6227300304786948855 - 0x68, 0xa2, 0x6d, 0xa2, 0xdd, 0xdc, 0x7d, 0xcb, //0x0000a148 .quad -3783625267450371480 - 0x4c, 0x7c, 0x5d, 0x43, 0x35, 0x3b, 0xf9, 0xd3, //0x0000a150 .quad -3172439362556298164 - 0x02, 0x0b, 0x09, 0x0b, 0x15, 0x54, 0x5d, 0xfe, //0x0000a158 .quad -117845565885576446 - 0xaf, 0x6d, 0x1a, 0x4a, 0x01, 0xc5, 0x7b, 0xc4, //0x0000a160 .quad -4288617610811380305 - 0xe1, 0xa6, 0xe5, 0x26, 0x8d, 0x54, 0xfa, 0x9e, //0x0000a168 .quad -6991182506319567135 - 0x1b, 0x09, 0xa1, 0x9c, 0x41, 0xb6, 0x9a, 0x35, //0x0000a170 .quad 3862600023340550427 - 0x9a, 0x10, 0x9f, 0x70, 0xb0, 0xe9, 0xb8, 0xc6, //0x0000a178 .quad -4127292114472071014 - 0x62, 0x4b, 0xc9, 0x03, 0xd2, 0x63, 0x01, 0xc3, //0x0000a180 .quad -4395122007679087774 - 0xc0, 0xd4, 0xc6, 0x8c, 0x1c, 0x24, 0x67, 0xf8, //0x0000a188 .quad -547429124662700864 - 0x1d, 0xcf, 0x5d, 0x42, 0x63, 0xde, 0xe0, 0x79, //0x0000a190 .quad 8782263791269039901 - 0xf8, 0x44, 0xfc, 0xd7, 0x91, 0x76, 0x40, 0x9b, //0x0000a198 .quad -7259672230555269896 - 0xe4, 0x42, 0xf5, 0x12, 0xfc, 0x15, 0x59, 0x98, //0x0000a1a0 .quad -7468914334623251740 - 0x36, 0x56, 0xfb, 0x4d, 0x36, 0x94, 0x10, 0xc2, //0x0000a1a8 .quad -4462904269766699466 - 0x9d, 0x93, 0xb2, 0x17, 0x7b, 0x5b, 0x6f, 0x3e, //0x0000a1b0 .quad 4498915137003099037 - 0xc4, 0x2b, 0x7a, 0xe1, 0x43, 0xb9, 0x94, 0xf2, //0x0000a1b8 .quad -966944318780986428 - 0x42, 0x9c, 0xcf, 0xee, 0x2c, 0x99, 0x05, 0xa7, //0x0000a1c0 .quad -6411550076227838910 - 0x5a, 0x5b, 0xec, 0x6c, 0xca, 0xf3, 0x9c, 0x97, //0x0000a1c8 .quad -7521869226879198374 - 0x53, 0x83, 0x83, 0x2a, 0x78, 0xff, 0xc6, 0x50, //0x0000a1d0 .quad 5820620459997365075 - 0x31, 0x72, 0x27, 0x08, 0xbd, 0x30, 0x84, 0xbd, //0x0000a1d8 .quad -4790650515171610063 - 0x28, 0x64, 0x24, 0x35, 0x56, 0xbf, 0xf8, 0xa4, //0x0000a1e0 .quad -6559282480285457368 - 0xbd, 0x4e, 0x31, 0x4a, 0xec, 0x3c, 0xe5, 0xec, //0x0000a1e8 .quad -1376627125537124675 - 0x99, 0xbe, 0x36, 0xe1, 0x95, 0x77, 0x1b, 0x87, //0x0000a1f0 .quad -8711237568605798759 - 0x36, 0xd1, 0x5e, 0xae, 0x13, 0x46, 0x0f, 0x94, //0x0000a1f8 .quad -7777920981101784778 - 0x3f, 0x6e, 0x84, 0x59, 0x7b, 0x55, 0xe2, 0x28, //0x0000a200 .quad 2946011094524915263 - 0x84, 0x85, 0xf6, 0x99, 0x98, 0x17, 0x13, 0xb9, //0x0000a208 .quad -5110715207949843068 - 0xcf, 0x89, 0xe5, 0x2f, 0xda, 0xea, 0x1a, 0x33, //0x0000a210 .quad 3682513868156144079 - 0xe5, 0x26, 0x74, 0xc0, 0x7e, 0xdd, 0x57, 0xe7, //0x0000a218 .quad -1776707991509915931 - 0x21, 0x76, 0xef, 0x5d, 0xc8, 0xd2, 0xf0, 0x3f, //0x0000a220 .quad 4607414176811284001 - 0x4f, 0x98, 0x48, 0x38, 0x6f, 0xea, 0x96, 0x90, //0x0000a228 .quad -8027971522334779313 - 0xa9, 0x53, 0x6b, 0x75, 0x7a, 0x07, 0xed, 0x0f, //0x0000a230 .quad 1147581702586717097 - 0x63, 0xbe, 0x5a, 0x06, 0x0b, 0xa5, 0xbc, 0xb4, //0x0000a238 .quad -5423278384491086237 - 0x94, 0x28, 0xc6, 0x12, 0x59, 0x49, 0xe8, 0xd3, //0x0000a240 .quad -3177208890193991532 - 0xfb, 0x6d, 0xf1, 0xc7, 0x4d, 0xce, 0xeb, 0xe1, //0x0000a248 .quad -2167411962186469893 - 0x5c, 0xd9, 0xbb, 0xab, 0xd7, 0x2d, 0x71, 0x64, //0x0000a250 .quad 7237616480483531100 - 0xbd, 0xe4, 0xf6, 0x9c, 0xf0, 0x60, 0x33, 0x8d, //0x0000a258 .quad -8272161504007625539 - 0xb3, 0xcf, 0xaa, 0x96, 0x4d, 0x79, 0x8d, 0xbd, //0x0000a260 .quad -4788037454677749837 - 0xec, 0x9d, 0x34, 0xc4, 0x2c, 0x39, 0x80, 0xb0, //0x0000a268 .quad -5728515861582144020 - 0xa0, 0x83, 0x55, 0xfc, 0xa0, 0xd7, 0xf0, 0xec, //0x0000a270 .quad -1373360799919799392 - 0x67, 0xc5, 0x41, 0xf5, 0x77, 0x47, 0xa0, 0xdc, //0x0000a278 .quad -2548958808550292121 - 0x44, 0x72, 0xb5, 0x9d, 0xc4, 0x86, 0x16, 0xf4, //0x0000a280 .quad -858350499949874620 - 0x60, 0x1b, 0x49, 0xf9, 0xaa, 0x2c, 0xe4, 0x89, //0x0000a288 .quad -8510628282985014432 - 0xd5, 0xce, 0x22, 0xc5, 0x75, 0x28, 0x1c, 0x31, //0x0000a290 .quad 3538747893490044629 - 0x39, 0x62, 0x9b, 0xb7, 0xd5, 0x37, 0x5d, 0xac, //0x0000a298 .quad -6026599335303880135 - 0x8b, 0x82, 0x6b, 0x36, 0x93, 0x32, 0x63, 0x7d, //0x0000a2a0 .quad 9035120885289943691 - 0xc7, 0x3a, 0x82, 0x25, 0xcb, 0x85, 0x74, 0xd7, //0x0000a2a8 .quad -2921563150702462265 - 0x97, 0x31, 0x03, 0x02, 0x9c, 0xff, 0x5d, 0xae, //0x0000a2b0 .quad -5882264492762254953 - 0xbc, 0x64, 0x71, 0xf7, 0x9e, 0xd3, 0xa8, 0x86, //0x0000a2b8 .quad -8743505996830120772 - 0xfc, 0xfd, 0x83, 0x02, 0x83, 0x7f, 0xf5, 0xd9, //0x0000a2c0 .quad -2741144597525430788 - 0xeb, 0xbd, 0x4d, 0xb5, 0x86, 0x08, 0x53, 0xa8, //0x0000a2c8 .quad -6317696477610263061 - 0x7b, 0xfd, 0x24, 0xc3, 0x63, 0xdf, 0x72, 0xd0, //0x0000a2d0 .quad -3426430746906788485 - 0x66, 0x2d, 0xa1, 0x62, 0xa8, 0xca, 0x67, 0xd2, //0x0000a2d8 .quad -3285434578585440922 - 0x6d, 0x1e, 0xf7, 0x59, 0x9e, 0xcb, 0x47, 0x42, //0x0000a2e0 .quad 4776009810824339053 - 0x60, 0xbc, 0xa4, 0x3d, 0xa9, 0xde, 0x80, 0x83, //0x0000a2e8 .quad -8970925639256982432 - 0x08, 0xe6, 0x74, 0xf0, 0x85, 0xbe, 0xd9, 0x52, //0x0000a2f0 .quad 5970012263530423816 - 0x78, 0xeb, 0x0d, 0x8d, 0x53, 0x16, 0x61, 0xa4, //0x0000a2f8 .quad -6601971030643840136 - 0x8b, 0x1f, 0x92, 0x6c, 0x27, 0x2e, 0x90, 0x67, //0x0000a300 .quad 7462515329413029771 - 0x56, 0x66, 0x51, 0x70, 0xe8, 0x5b, 0x79, 0xcd, //0x0000a308 .quad -3640777769877412266 - 0xb6, 0x53, 0xdb, 0xa3, 0xd8, 0x1c, 0xba, 0x00, //0x0000a310 .quad 52386062455755702 - 0xf6, 0xdf, 0x32, 0x46, 0x71, 0xd9, 0x6b, 0x80, //0x0000a318 .quad -9193015133814464522 - 0xa4, 0x28, 0xd2, 0xcc, 0x0e, 0xa4, 0xe8, 0x80, //0x0000a320 .quad -9157889458785081180 - 0xf3, 0x97, 0xbf, 0x97, 0xcd, 0xcf, 0x86, 0xa0, //0x0000a328 .quad -6879582898840692749 - 0xcd, 0xb2, 0x06, 0x80, 0x12, 0xcd, 0x22, 0x61, //0x0000a330 .quad 6999382250228200141 - 0xf0, 0x7d, 0xaf, 0xfd, 0xc0, 0x83, 0xa8, 0xc8, //0x0000a338 .quad -3987792605123478032 - 0x81, 0x5f, 0x08, 0x20, 0x57, 0x80, 0x6b, 0x79, //0x0000a340 .quad 8749227812785250177 - 0x6c, 0x5d, 0x1b, 0x3d, 0xb1, 0xa4, 0xd2, 0xfa, //0x0000a348 .quad -373054737976959636 - 0xb0, 0x3b, 0x05, 0x74, 0x36, 0x30, 0xe3, 0xcb, //0x0000a350 .quad -3755104653863994448 - 0x63, 0x1a, 0x31, 0xc6, 0xee, 0xa6, 0xc3, 0x9c, //0x0000a358 .quad -7150688238876681629 - 0x9c, 0x8a, 0x06, 0x11, 0x44, 0xfc, 0xdb, 0xbe, //0x0000a360 .quad -4693880817329993060 - 0xfc, 0x60, 0xbd, 0x77, 0xaa, 0x90, 0xf4, 0xc3, //0x0000a368 .quad -4326674280168464132 - 0x44, 0x2d, 0x48, 0x15, 0x55, 0xfb, 0x92, 0xee, //0x0000a370 .quad -1255665003235103420 - 0x3b, 0xb9, 0xac, 0x15, 0xd5, 0xb4, 0xf1, 0xf4, //0x0000a378 .quad -796656831783192261 - 0x4a, 0x1c, 0x4d, 0x2d, 0x15, 0xdd, 0x1b, 0x75, //0x0000a380 .quad 8438581409832836170 - 0xc5, 0xf3, 0x8b, 0x2d, 0x05, 0x11, 0x17, 0x99, //0x0000a388 .quad -7415439547505577019 - 0x5d, 0x63, 0xa0, 0x78, 0x5a, 0xd4, 0x62, 0xd2, //0x0000a390 .quad -3286831292991118499 - 0xb6, 0xf0, 0xee, 0x78, 0x46, 0xd5, 0x5c, 0xbf, //0x0000a398 .quad -4657613415954583370 - 0x34, 0x7c, 0xc8, 0x16, 0x71, 0x89, 0xfb, 0x86, //0x0000a3a0 .quad -8720225134666286028 - 0xe4, 0xac, 0x2a, 0x17, 0x98, 0x0a, 0x34, 0xef, //0x0000a3a8 .quad -1210330751515841308 - 0xa0, 0x4d, 0x3d, 0xae, 0xe6, 0x35, 0x5d, 0xd4, //0x0000a3b0 .quad -3144297699952734816 - 0x0e, 0xac, 0x7a, 0x0e, 0x9f, 0x86, 0x80, 0x95, //0x0000a3b8 .quad -7673985747338482674 - 0x09, 0xa1, 0xcc, 0x59, 0x60, 0x83, 0x74, 0x89, //0x0000a3c0 .quad -8542058143368306423 - 0x12, 0x57, 0x19, 0xd2, 0x46, 0xa8, 0xe0, 0xba, //0x0000a3c8 .quad -4980796165745715438 - 0x4b, 0xc9, 0x3f, 0x70, 0x38, 0xa4, 0xd1, 0x2b, //0x0000a3d0 .quad 3157485376071780683 - 0xd7, 0xac, 0x9f, 0x86, 0x58, 0xd2, 0x98, 0xe9, //0x0000a3d8 .quad -1614309188754756393 - 0xcf, 0xdd, 0x27, 0x46, 0xa3, 0x06, 0x63, 0x7b, //0x0000a3e0 .quad 8890957387685944783 - 0x06, 0xcc, 0x23, 0x54, 0x77, 0x83, 0xff, 0x91, //0x0000a3e8 .quad -7926472270612804602 - 0x42, 0xd5, 0xb1, 0x17, 0x4c, 0xc8, 0x3b, 0x1a, //0x0000a3f0 .quad 1890324697752655170 - 0x08, 0xbf, 0x2c, 0x29, 0x55, 0x64, 0x7f, 0xb6, //0x0000a3f8 .quad -5296404319838617848 - 0x93, 0x4a, 0x9e, 0x1d, 0x5f, 0xba, 0xca, 0x20, //0x0000a400 .quad 2362905872190818963 - 0xca, 0xee, 0x77, 0x73, 0x6a, 0x3d, 0x1f, 0xe4, //0x0000a408 .quad -2008819381370884406 - 0x9c, 0xee, 0x82, 0x72, 0x7b, 0xb4, 0x7e, 0x54, //0x0000a410 .quad 6088502188546649756 - 0x3e, 0xf5, 0x2a, 0x88, 0x62, 0x86, 0x93, 0x8e, //0x0000a418 .quad -8173041140997884610 - 0x43, 0xaa, 0x23, 0x4f, 0x9a, 0x61, 0x9e, 0xe9, //0x0000a420 .quad -1612744301171463613 - 0x8d, 0xb2, 0x35, 0x2a, 0xfb, 0x67, 0x38, 0xb2, //0x0000a428 .quad -5604615407819967859 - 0xd4, 0x94, 0xec, 0xe2, 0x00, 0xfa, 0x05, 0x64, //0x0000a430 .quad 7207441660390446292 - 0x31, 0x1f, 0xc3, 0xf4, 0xf9, 0x81, 0xc6, 0xde, //0x0000a438 .quad -2394083241347571919 - 0x04, 0xdd, 0xd3, 0x8d, 0x40, 0xbc, 0x83, 0xde, //0x0000a440 .quad -2412877989897052924 - 0x7e, 0xf3, 0xf9, 0x38, 0x3c, 0x11, 0x3c, 0x8b, //0x0000a448 .quad -8413831053483314306 - 0x45, 0xd4, 0x48, 0xb1, 0x50, 0xab, 0x24, 0x96, //0x0000a450 .quad -7627783505798704059 - 0x5e, 0x70, 0x38, 0x47, 0x8b, 0x15, 0x0b, 0xae, //0x0000a458 .quad -5905602798426754978 - 0x57, 0x09, 0x9b, 0xdd, 0x24, 0xd6, 0xad, 0x3b, //0x0000a460 .quad 4300328673033783639 - 0x76, 0x8c, 0x06, 0x19, 0xee, 0xda, 0x8d, 0xd9, //0x0000a468 .quad -2770317479606055818 - 0xd6, 0xe5, 0x80, 0x0a, 0xd7, 0xa5, 0x4c, 0xe5, //0x0000a470 .quad -1923980597781273130 - 0xc9, 0x17, 0xa4, 0xcf, 0xd4, 0xa8, 0xf8, 0x87, //0x0000a478 .quad -8648977452394866743 - 0x4c, 0x1f, 0x21, 0xcd, 0x4c, 0xcf, 0x9f, 0x5e, //0x0000a480 .quad 6818396289628184396 - 0xbc, 0x1d, 0x8d, 0x03, 0x0a, 0xd3, 0xf6, 0xa9, //0x0000a488 .quad -6199535797066195524 - 0x1f, 0x67, 0x69, 0x00, 0x20, 0xc3, 0x47, 0x76, //0x0000a490 .quad 8522995362035230495 - 0x2b, 0x65, 0x70, 0x84, 0xcc, 0x87, 0x74, 0xd4, //0x0000a498 .quad -3137733727905356501 - 0x73, 0xe0, 0x41, 0x00, 0xf4, 0xd9, 0xec, 0x29, //0x0000a4a0 .quad 3021029092058325107 - 0x3b, 0x3f, 0xc6, 0xd2, 0xdf, 0xd4, 0xc8, 0x84, //0x0000a4a8 .quad -8878612607581929669 - 0x90, 0x58, 0x52, 0x00, 0x71, 0x10, 0x68, 0xf4, //0x0000a4b0 .quad -835399653354481520 - 0x09, 0xcf, 0x77, 0xc7, 0x17, 0x0a, 0xfb, 0xa5, //0x0000a4b8 .quad -6486579741050024183 - 0xb4, 0xee, 0x66, 0x40, 0x8d, 0x14, 0x82, 0x71, //0x0000a4c0 .quad 8179122470161673908 - 0xcc, 0xc2, 0x55, 0xb9, 0x9d, 0xcc, 0x79, 0xcf, //0x0000a4c8 .quad -3496538657885142324 - 0x30, 0x55, 0x40, 0x48, 0xd8, 0x4c, 0xf1, 0xc6, //0x0000a4d0 .quad -4111420493003729616 - 0xbf, 0x99, 0xd5, 0x93, 0xe2, 0x1f, 0xac, 0x81, //0x0000a4d8 .quad -9102865688819295809 - 0x7c, 0x6a, 0x50, 0x5a, 0x0e, 0xa0, 0xad, 0xb8, //0x0000a4e0 .quad -5139275616254662020 - 0x2f, 0x00, 0xcb, 0x38, 0xdb, 0x27, 0x17, 0xa2, //0x0000a4e8 .quad -6766896092596731857 - 0x1c, 0x85, 0xe4, 0xf0, 0x11, 0x08, 0xd9, 0xa6, //0x0000a4f0 .quad -6424094520318327524 - 0x3b, 0xc0, 0xfd, 0x06, 0xd2, 0xf1, 0x9c, 0xca, //0x0000a4f8 .quad -3846934097318526917 - 0x63, 0xa6, 0x1d, 0x6d, 0x16, 0x4a, 0x8f, 0x90, //0x0000a500 .quad -8030118150397909405 - 0x4a, 0x30, 0xbd, 0x88, 0x46, 0x2e, 0x44, 0xfd, //0x0000a508 .quad -196981603220770742 - 0xfe, 0x87, 0x32, 0x04, 0x4e, 0x8e, 0x59, 0x9a, //0x0000a510 .quad -7324666853212387330 - 0x2e, 0x3e, 0x76, 0x15, 0xec, 0x9c, 0x4a, 0x9e, //0x0000a518 .quad -7040642529654063570 - 0xfd, 0x29, 0x3f, 0x85, 0xe1, 0xf1, 0xef, 0x40, //0x0000a520 .quad 4679224488766679549 - 0xba, 0xcd, 0xd3, 0x1a, 0x27, 0x44, 0xdd, 0xc5, //0x0000a528 .quad -4189117143640191558 - 0x7c, 0xf4, 0x8e, 0xe6, 0x59, 0xee, 0x2b, 0xd1, //0x0000a530 .quad -3374341425896426372 - 0x28, 0xc1, 0x88, 0xe1, 0x30, 0x95, 0x54, 0xf7, //0x0000a538 .quad -624710411122851544 - 0xce, 0x58, 0x19, 0x30, 0xf8, 0x74, 0xbb, 0x82, //0x0000a540 .quad -9026492418826348338 - 0xb9, 0x78, 0xf5, 0x8c, 0x3e, 0xdd, 0x94, 0x9a, //0x0000a548 .quad -7307973034592864071 - 0x01, 0xaf, 0x1f, 0x3c, 0x36, 0x52, 0x6a, 0xe3, //0x0000a550 .quad -2059743486678159615 - 0xe7, 0xd6, 0x32, 0x30, 0x8e, 0x14, 0x3a, 0xc1, //0x0000a558 .quad -4523280274813692185 - 0xc1, 0x9a, 0x27, 0xcb, 0xc3, 0xe6, 0x44, 0xdc, //0x0000a560 .quad -2574679358347699519 - 0xa1, 0x8c, 0x3f, 0xbc, 0xb1, 0x99, 0x88, 0xf1, //0x0000a568 .quad -1042414325089727327 - 0xb9, 0xc0, 0xf8, 0x5e, 0x3a, 0x10, 0xab, 0x29, //0x0000a570 .quad 3002511419460075705 - 0xe5, 0xb7, 0xa7, 0x15, 0x0f, 0x60, 0xf5, 0x96, //0x0000a578 .quad -7569037980822161435 - 0xe7, 0xf0, 0xb6, 0xf6, 0x48, 0xd4, 0x15, 0x74, //0x0000a580 .quad 8364825292752482535 - 0xde, 0xa5, 0x11, 0xdb, 0x12, 0xb8, 0xb2, 0xbc, //0x0000a588 .quad -4849611457600313890 - 0x21, 0xad, 0x64, 0x34, 0x5b, 0x49, 0x1b, 0x11, //0x0000a590 .quad 1232659579085827361 - 0x56, 0x0f, 0xd6, 0x91, 0x17, 0x66, 0xdf, 0xeb, //0x0000a598 .quad -1450328303573004458 - 0x34, 0xec, 0xbe, 0x00, 0xd9, 0x0d, 0xb1, 0xca, //0x0000a5a0 .quad -3841273781498745804 - 0x95, 0xc9, 0x25, 0xbb, 0xce, 0x9f, 0x6b, 0x93, //0x0000a5a8 .quad -7823984217374209643 - 0x42, 0xa7, 0xee, 0x40, 0x4f, 0x51, 0x5d, 0x3d, //0x0000a5b0 .quad 4421779809981343554 - 0xfb, 0x3b, 0xef, 0x69, 0xc2, 0x87, 0x46, 0xb8, //0x0000a5b8 .quad -5168294253290374149 - 0x12, 0x51, 0x2a, 0x11, 0xa3, 0xa5, 0xb4, 0x0c, //0x0000a5c0 .quad 915538744049291538 - 0xfa, 0x0a, 0x6b, 0x04, 0xb3, 0x29, 0x58, 0xe6, //0x0000a5c8 .quad -1848681798185579782 - 0xab, 0x72, 0xba, 0xea, 0x85, 0xe7, 0xf0, 0x47, //0x0000a5d0 .quad 5183897733458195115 - 0xdc, 0xe6, 0xc2, 0xe2, 0x0f, 0x1a, 0xf7, 0x8f, //0x0000a5d8 .quad -8072955151507069220 - 0x56, 0x0f, 0x69, 0x65, 0x67, 0x21, 0xed, 0x59, //0x0000a5e0 .quad 6479872166822743894 - 0x93, 0xa0, 0x73, 0xdb, 0x93, 0xe0, 0xf4, 0xb3, //0x0000a5e8 .quad -5479507920956448621 - 0x2c, 0x53, 0xc3, 0x3e, 0xc1, 0x69, 0x68, 0x30, //0x0000a5f0 .quad 3488154190101041964 - 0xb8, 0x88, 0x50, 0xd2, 0xb8, 0x18, 0xf2, 0xe0, //0x0000a5f8 .quad -2237698882768172872 - 0xfb, 0x13, 0x3a, 0xc7, 0x18, 0x42, 0x41, 0x1e, //0x0000a600 .quad 2180096368813151227 - 0x73, 0x55, 0x72, 0x83, 0x73, 0x4f, 0x97, 0x8c, //0x0000a608 .quad -8316090829371189901 - 0xfa, 0x98, 0x08, 0xf9, 0x9e, 0x92, 0xd1, 0xe5, //0x0000a610 .quad -1886565557410948870 - 0xcf, 0xea, 0x4e, 0x64, 0x50, 0x23, 0xbd, 0xaf, //0x0000a618 .quad -5783427518286599473 - 0x39, 0xbf, 0x4a, 0xb7, 0x46, 0xf7, 0x45, 0xdf, //0x0000a620 .quad -2358206946763686087 - 0x83, 0xa5, 0x62, 0x7d, 0x24, 0x6c, 0xac, 0xdb, //0x0000a628 .quad -2617598379430861437 - 0x83, 0xb7, 0x8e, 0x32, 0x8c, 0xba, 0x8b, 0x6b, //0x0000a630 .quad 7749492695127472003 - 0x72, 0xa7, 0x5d, 0xce, 0x96, 0xc3, 0x4b, 0x89, //0x0000a638 .quad -8553528014785370254 - 0x64, 0x65, 0x32, 0x3f, 0x2f, 0xa9, 0x6e, 0x06, //0x0000a640 .quad 463493832054564196 - 0x4f, 0x11, 0xf5, 0x81, 0x7c, 0xb4, 0x9e, 0xab, //0x0000a648 .quad -6080224000054324913 - 0xbd, 0xfe, 0xfe, 0x0e, 0x7b, 0x53, 0x0a, 0xc8, //0x0000a650 .quad -4032318728359182659 - 0xa2, 0x55, 0x72, 0xa2, 0x9b, 0x61, 0x86, 0xd6, //0x0000a658 .quad -2988593981640518238 - 0x36, 0x5f, 0x5f, 0xe9, 0x2c, 0x74, 0x06, 0xbd, //0x0000a660 .quad -4826042214438183114 - 0x85, 0x75, 0x87, 0x45, 0x01, 0xfd, 0x13, 0x86, //0x0000a668 .quad -8785400266166405755 - 0x04, 0x37, 0xb7, 0x23, 0x38, 0x11, 0x48, 0x2c, //0x0000a670 .quad 3190819268807046916 - 0xe7, 0x52, 0xe9, 0x96, 0x41, 0xfc, 0x98, 0xa7, //0x0000a678 .quad -6370064314280619289 - 0xc5, 0x04, 0xa5, 0x2c, 0x86, 0x15, 0x5a, 0xf7, //0x0000a680 .quad -623161932418579259 - 0xa0, 0xa7, 0xa3, 0xfc, 0x51, 0x3b, 0x7f, 0xd1, //0x0000a688 .quad -3350894374423386208 - 0xfb, 0x22, 0xe7, 0xdb, 0x73, 0x4d, 0x98, 0x9a, //0x0000a690 .quad -7307005235402693893 - 0xc4, 0x48, 0xe6, 0x3d, 0x13, 0x85, 0xef, 0x82, //0x0000a698 .quad -9011838011655698236 - 0xba, 0xeb, 0xe0, 0xd2, 0xd0, 0x60, 0x3e, 0xc1, //0x0000a6a0 .quad -4522070525825979462 - 0xf5, 0xda, 0x5f, 0x0d, 0x58, 0x66, 0xab, 0xa3, //0x0000a6a8 .quad -6653111496142234891 - 0xa8, 0x26, 0x99, 0x07, 0x05, 0xf9, 0x8d, 0x31, //0x0000a6b0 .quad 3570783879572301480 - 0xb3, 0xd1, 0xb7, 0x10, 0xee, 0x3f, 0x96, 0xcc, //0x0000a6b8 .quad -3704703351750405709 - 0x52, 0x70, 0x7f, 0x49, 0x46, 0x77, 0xf1, 0xfd, //0x0000a6c0 .quad -148206168962011054 - 0x1f, 0xc6, 0xe5, 0x94, 0xe9, 0xcf, 0xbb, 0xff, //0x0000a6c8 .quad -19193171260619233 - 0x33, 0xa6, 0xef, 0xed, 0x8b, 0xea, 0xb6, 0xfe, //0x0000a6d0 .quad -92628855601256909 - 0xd3, 0x9b, 0x0f, 0xfd, 0xf1, 0x61, 0xd5, 0x9f, //0x0000a6d8 .quad -6929524759678968877 - 0xc0, 0x8f, 0x6b, 0xe9, 0x2e, 0xa5, 0x64, 0xfe, //0x0000a6e0 .quad -115786069501571136 - 0xc8, 0x82, 0x53, 0x7c, 0x6e, 0xba, 0xca, 0xc7, //0x0000a6e8 .quad -4050219931171323192 - 0xb0, 0x73, 0xc6, 0xa3, 0x7a, 0xce, 0xfd, 0x3d, //0x0000a6f0 .quad 4466953431550423984 - 0x7b, 0x63, 0x68, 0x1b, 0x0a, 0x69, 0xbd, 0xf9, //0x0000a6f8 .quad -451088895536766085 - 0x4e, 0x08, 0x5c, 0xa6, 0x0c, 0xa1, 0xbe, 0x06, //0x0000a700 .quad 486002885505321038 - 0x2d, 0x3e, 0x21, 0x51, 0xa6, 0x61, 0x16, 0x9c, //0x0000a708 .quad -7199459587351560659 - 0x62, 0x0a, 0xf3, 0xcf, 0x4f, 0x49, 0x6e, 0x48, //0x0000a710 .quad 5219189625309039202 - 0xb8, 0x8d, 0x69, 0xe5, 0x0f, 0xfa, 0x1b, 0xc3, //0x0000a718 .quad -4387638465762062920 - 0xfa, 0xcc, 0xef, 0xc3, 0xa3, 0xdb, 0x89, 0x5a, //0x0000a720 .quad 6523987031636299002 - 0x26, 0xf1, 0xc3, 0xde, 0x93, 0xf8, 0xe2, 0xf3, //0x0000a728 .quad -872862063775190746 - 0x1c, 0xe0, 0x75, 0x5a, 0x46, 0x29, 0x96, 0xf8, //0x0000a730 .quad -534194123654701028 - 0xb7, 0x76, 0x3a, 0x6b, 0x5c, 0xdb, 0x6d, 0x98, //0x0000a738 .quad -7463067817500576073 - 0x23, 0x58, 0x13, 0xf1, 0x97, 0xb3, 0xbb, 0xf6, //0x0000a740 .quad -667742654568376285 - 0x65, 0x14, 0x09, 0x86, 0x33, 0x52, 0x89, 0xbe, //0x0000a748 .quad -4717148753448332187 - 0x2c, 0x2e, 0x58, 0xed, 0x7d, 0xa0, 0x6a, 0x74, //0x0000a750 .quad 8388693718644305452 - 0x7f, 0x59, 0x8b, 0x67, 0xc0, 0xa6, 0x2b, 0xee, //0x0000a758 .quad -1284749923383027329 - 0xdc, 0x1c, 0x57, 0xb4, 0x4e, 0xa4, 0xc2, 0xa8, //0x0000a760 .quad -6286281471915778852 - 0xef, 0x17, 0xb7, 0x40, 0x38, 0x48, 0xdb, 0x94, //0x0000a768 .quad -7720497729755473937 - 0x13, 0xe4, 0x6c, 0x61, 0x62, 0x4d, 0xf3, 0x92, //0x0000a770 .quad -7857851839894723565 - 0xeb, 0xdd, 0xe4, 0x50, 0x46, 0x1a, 0x12, 0xba, //0x0000a778 .quad -5038936143766954517 - 0x17, 0x1d, 0xc8, 0xf9, 0xba, 0x20, 0xb0, 0x77, //0x0000a780 .quad 8624429273841147159 - 0x66, 0x15, 0x1e, 0xe5, 0xd7, 0xa0, 0x96, 0xe8, //0x0000a788 .quad -1686984161281305242 - 0x2e, 0x12, 0x1d, 0xdc, 0x74, 0x14, 0xce, 0x0a, //0x0000a790 .quad 778582277723329070 - 0x60, 0xcd, 0x32, 0xef, 0x86, 0x24, 0x5e, 0x91, //0x0000a798 .quad -7971894128441897632 - 0xba, 0x56, 0x24, 0x13, 0x92, 0x99, 0x81, 0x0d, //0x0000a7a0 .quad 973227847154161338 - 0xb8, 0x80, 0xff, 0xaa, 0xa8, 0xad, 0xb5, 0xb5, //0x0000a7a8 .quad -5353181642124984136 - 0x69, 0x6c, 0xed, 0x97, 0xf6, 0xff, 0xe1, 0x10, //0x0000a7b0 .quad 1216534808942701673 - 0xe6, 0x60, 0xbf, 0xd5, 0x12, 0x19, 0x23, 0xe3, //0x0000a7b8 .quad -2079791034228842266 - 0xc1, 0x63, 0xf4, 0x1e, 0xfa, 0x3f, 0x8d, 0xca, //0x0000a7c0 .quad -3851351762838199359 - 0x8f, 0x9c, 0x97, 0xc5, 0xab, 0xef, 0xf5, 0x8d, //0x0000a7c8 .quad -8217398424034108273 - 0xb2, 0x7c, 0xb1, 0xa6, 0xf8, 0x8f, 0x30, 0xbd, //0x0000a7d0 .quad -4814189703547749198 - 0xb3, 0x83, 0xfd, 0xb6, 0x96, 0x6b, 0x73, 0xb1, //0x0000a7d8 .quad -5660062011615247437 - 0xde, 0xdb, 0x5d, 0xd0, 0xf6, 0xb3, 0x7c, 0xac, //0x0000a7e0 .quad -6017737129434686498 - 0xa0, 0xe4, 0xbc, 0x64, 0x7c, 0x46, 0xd0, 0xdd, //0x0000a7e8 .quad -2463391496091671392 - 0x6b, 0xa9, 0x3a, 0x42, 0x7a, 0xf0, 0xcd, 0x6b, //0x0000a7f0 .quad 7768129340171790699 - 0xe4, 0x0e, 0xf6, 0xbe, 0x0d, 0x2c, 0xa2, 0x8a, //0x0000a7f8 .quad -8457148712698376476 - 0xc6, 0x53, 0xc9, 0xd2, 0x98, 0x6c, 0xc1, 0x86, //0x0000a800 .quad -8736582398494813242 - 0x9d, 0x92, 0xb3, 0x2e, 0x11, 0xb7, 0x4a, 0xad, //0x0000a808 .quad -5959749872445582691 - 0xb7, 0xa8, 0x7b, 0x07, 0xbf, 0xc7, 0x71, 0xe8, //0x0000a810 .quad -1697355961263740745 - 0x44, 0x77, 0x60, 0x7a, 0xd5, 0x64, 0x9d, 0xd8, //0x0000a818 .quad -2838001322129590460 - 0x72, 0x49, 0xad, 0x64, 0xd7, 0x1c, 0x47, 0x11, //0x0000a820 .quad 1244995533423855986 - 0x8b, 0x4a, 0x7c, 0x6c, 0x05, 0x5f, 0x62, 0x87, //0x0000a828 .quad -8691279853972075893 - 0xcf, 0x9b, 0xd8, 0x3d, 0x0d, 0xe4, 0x98, 0xd5, //0x0000a830 .quad -3055441601647567921 - 0x2d, 0x5d, 0x9b, 0xc7, 0xc6, 0xf6, 0x3a, 0xa9, //0x0000a838 .quad -6252413799037706963 - 0xc3, 0xc2, 0x4e, 0x8d, 0x10, 0x1d, 0xff, 0x4a, //0x0000a840 .quad 5404070034795315907 - 0x79, 0x34, 0x82, 0x79, 0x78, 0xb4, 0x89, 0xd3, //0x0000a848 .quad -3203831230369745799 - 0xba, 0x39, 0x51, 0x58, 0x2a, 0x72, 0xdf, 0xce, //0x0000a850 .quad -3539985255894009414 - 0xcb, 0x60, 0xf1, 0x4b, 0xcb, 0x10, 0x36, 0x84, //0x0000a858 .quad -8919923546622172981 - 0x28, 0x88, 0x65, 0xee, 0xb4, 0x4e, 0x97, 0xc2, //0x0000a860 .quad -4424981569867511768 - 0xfe, 0xb8, 0xed, 0x1e, 0xfe, 0x94, 0x43, 0xa5, //0x0000a868 .quad -6538218414850328322 - 0x32, 0xea, 0xfe, 0x29, 0x62, 0x22, 0x3d, 0x73, //0x0000a870 .quad 8303831092947774002 - 0x3e, 0x27, 0xa9, 0xa6, 0x3d, 0x7a, 0x94, 0xce, //0x0000a878 .quad -3561087000135522498 - 0x5f, 0x52, 0x3f, 0x5a, 0x7d, 0x35, 0x06, 0x08, //0x0000a880 .quad 578208414664970847 - 0x87, 0xb8, 0x29, 0x88, 0x66, 0xcc, 0x1c, 0x81, //0x0000a888 .quad -9143208402725783417 - 0xf7, 0x26, 0xcf, 0xb0, 0xdc, 0xc2, 0x07, 0xca, //0x0000a890 .quad -3888925500096174345 - 0xa8, 0x26, 0x34, 0x2a, 0x80, 0xff, 0x63, 0xa1, //0x0000a898 .quad -6817324484979841368 - 0xb5, 0xf0, 0x02, 0xdd, 0x93, 0xb3, 0x89, 0xfc, //0x0000a8a0 .quad -249470856692830027 - 0x52, 0x30, 0xc1, 0x34, 0x60, 0xff, 0xbc, 0xc9, //0x0000a8a8 .quad -3909969587797413806 - 0xe2, 0xac, 0x43, 0xd4, 0x78, 0x20, 0xac, 0xbb, //0x0000a8b0 .quad -4923524589293425438 - 0x67, 0x7c, 0xf1, 0x41, 0x38, 0x3f, 0x2c, 0xfc, //0x0000a8b8 .quad -275775966319379353 - 0x0d, 0x4c, 0xaa, 0x84, 0x4b, 0x94, 0x4b, 0xd5, //0x0000a8c0 .quad -3077202868308390899 - 0xc0, 0xed, 0x36, 0x29, 0x83, 0xa7, 0x9b, 0x9d, //0x0000a8c8 .quad -7089889006590693952 - 0x11, 0xdf, 0xd4, 0x65, 0x5e, 0x79, 0x9e, 0x0a, //0x0000a8d0 .quad 765182433041899281 - 0x31, 0xa9, 0x84, 0xf3, 0x63, 0x91, 0x02, 0xc5, //0x0000a8d8 .quad -4250675239810979535 - 0xd5, 0x16, 0x4a, 0xff, 0xb5, 0x17, 0x46, 0x4d, //0x0000a8e0 .quad 5568164059729762005 - 0x7d, 0xd3, 0x65, 0xf0, 0xbc, 0x35, 0x43, 0xf6, //0x0000a8e8 .quad -701658031336336515 - 0x45, 0x4e, 0x8e, 0xbf, 0xd1, 0xce, 0x4b, 0x50, //0x0000a8f0 .quad 5785945546544795205 - 0x2e, 0xa4, 0x3f, 0x16, 0x96, 0x01, 0xea, 0x99, //0x0000a8f8 .quad -7356065297226292178 - 0xd6, 0xe1, 0x71, 0x2f, 0x86, 0xc2, 0x5e, 0xe4, //0x0000a900 .quad -1990940103673781802 - 0x39, 0x8d, 0xcf, 0x9b, 0xfb, 0x81, 0x64, 0xc0, //0x0000a908 .quad -4583395603105477319 - 0x4c, 0x5a, 0x4e, 0xbb, 0x27, 0x73, 0x76, 0x5d, //0x0000a910 .quad 6734696907262548556 - 0x88, 0x70, 0xc3, 0x82, 0x7a, 0xa2, 0x7d, 0xf0, //0x0000a918 .quad -1117558485454458744 - 0x6f, 0xf8, 0x10, 0xd5, 0xf8, 0x07, 0x6a, 0x3a, //0x0000a920 .quad 4209185567039092847 - 0x55, 0x26, 0xba, 0x91, 0x8c, 0x85, 0x4e, 0x96, //0x0000a928 .quad -7616003081050118571 - 0x8b, 0x36, 0x55, 0x0a, 0xf7, 0x89, 0x04, 0x89, //0x0000a930 .quad -8573576096483297653 - 0xea, 0xaf, 0x28, 0xb6, 0xef, 0x26, 0xe2, 0xbb, //0x0000a938 .quad -4908317832885260310 - 0x2e, 0x84, 0xea, 0xcc, 0x74, 0xac, 0x45, 0x2b, //0x0000a940 .quad 3118087934678041646 - 0xe5, 0xdb, 0xb2, 0xa3, 0xab, 0xb0, 0xda, 0xea, //0x0000a948 .quad -1523711272679187483 - 0x9d, 0x92, 0x12, 0x00, 0xc9, 0x8b, 0x0b, 0x3b, //0x0000a950 .quad 4254647968387469981 - 0x6f, 0xc9, 0x4f, 0x46, 0x6b, 0xae, 0xc8, 0x92, //0x0000a958 .quad -7869848573065574033 - 0x44, 0x37, 0x17, 0x40, 0xbb, 0x6e, 0xce, 0x09, //0x0000a960 .quad 706623942056949572 - 0xcb, 0xbb, 0xe3, 0x17, 0x06, 0xda, 0x7a, 0xb7, //0x0000a968 .quad -5225624697904579637 - 0x15, 0x05, 0x1d, 0x10, 0x6a, 0x0a, 0x42, 0xcc, //0x0000a970 .quad -3728406090856200939 - 0xbd, 0xaa, 0xdc, 0x9d, 0x87, 0x90, 0x59, 0xe5, //0x0000a978 .quad -1920344853953336643 - 0x2d, 0x23, 0x12, 0x4a, 0x82, 0x46, 0xa9, 0x9f, //0x0000a980 .quad -6941939825212513491 - 0xb6, 0xea, 0xa9, 0xc2, 0x54, 0xfa, 0x57, 0x8f, //0x0000a988 .quad -8117744561361917258 - 0xf9, 0xab, 0x96, 0xdc, 0x22, 0x98, 0x93, 0x47, //0x0000a990 .quad 5157633273766521849 - 0x64, 0x65, 0x54, 0xf3, 0xe9, 0xf8, 0x2d, 0xb3, //0x0000a998 .quad -5535494683275008668 - 0xf7, 0x56, 0xbc, 0x93, 0x2b, 0x7e, 0x78, 0x59, //0x0000a9a0 .quad 6447041592208152311 - 0xbd, 0x7e, 0x29, 0x70, 0x24, 0x77, 0xf9, 0xdf, //0x0000a9a8 .quad -2307682335666372931 - 0x5a, 0xb6, 0x55, 0x3c, 0xdb, 0x4e, 0xeb, 0x57, //0x0000a9b0 .quad 6335244004343789146 - 0x36, 0xef, 0x19, 0xc6, 0x76, 0xea, 0xfb, 0x8b, //0x0000a9b8 .quad -8359830487432564938 - 0xf1, 0x23, 0x6b, 0x0b, 0x92, 0x22, 0xe6, 0xed, //0x0000a9c0 .quad -1304317031425039375 - 0x03, 0x6b, 0xa0, 0x77, 0x14, 0xe5, 0xfa, 0xae, //0x0000a9c8 .quad -5838102090863318269 - 0xed, 0xec, 0x45, 0x8e, 0x36, 0xab, 0x5f, 0xe9, //0x0000a9d0 .quad -1630396289281299219 - 0xc4, 0x85, 0x88, 0x95, 0x59, 0x9e, 0xb9, 0xda, //0x0000a9d8 .quad -2685941595151759932 - 0x14, 0xb4, 0xeb, 0x18, 0x02, 0xcb, 0xdb, 0x11, //0x0000a9e0 .quad 1286845328412881940 - 0x9b, 0x53, 0x75, 0xfd, 0xf7, 0x02, 0xb4, 0x88, //0x0000a9e8 .quad -8596242524610931813 - 0x19, 0xa1, 0x26, 0x9f, 0xc2, 0xbd, 0x52, 0xd6, //0x0000a9f0 .quad -3003129357911285479 - 0x81, 0xa8, 0xd2, 0xfc, 0xb5, 0x03, 0xe1, 0xaa, //0x0000a9f8 .quad -6133617137336276863 - 0x5f, 0x49, 0xf0, 0x46, 0x33, 0x6d, 0xe7, 0x4b, //0x0000aa00 .quad 5469460339465668959 - 0xa2, 0x52, 0x07, 0x7c, 0xa3, 0x44, 0x99, 0xd5, //0x0000aa08 .quad -3055335403242958174 - 0xdb, 0x2d, 0x56, 0x0c, 0x40, 0xa4, 0x70, 0x6f, //0x0000aa10 .quad 8030098730593431003 - 0xa5, 0x93, 0x84, 0x2d, 0xe6, 0xca, 0x7f, 0x85, //0x0000aa18 .quad -8827113654667930715 - 0x52, 0xb9, 0x6b, 0x0f, 0x50, 0xcd, 0x4c, 0xcb, //0x0000aa20 .quad -3797434642040374958 - 0x8e, 0xb8, 0xe5, 0xb8, 0x9f, 0xbd, 0xdf, 0xa6, //0x0000aa28 .quad -6422206049907525490 - 0xa7, 0xa7, 0x46, 0x13, 0xa4, 0x00, 0x20, 0x7e, //0x0000aa30 .quad 9088264752731695015 - 0xb2, 0x26, 0x1f, 0xa7, 0x07, 0xad, 0x97, 0xd0, //0x0000aa38 .quad -3416071543957018958 - 0xc8, 0x28, 0x0c, 0x8c, 0x66, 0x00, 0xd4, 0x8e, //0x0000aa40 .quad -8154892584824854328 - 0x2f, 0x78, 0x73, 0xc8, 0x24, 0xcc, 0x5e, 0x82, //0x0000aa48 .quad -9052573742614218705 - 0xfa, 0x32, 0x0f, 0x2f, 0x80, 0x00, 0x89, 0x72, //0x0000aa50 .quad 8253128342678483706 - 0x3b, 0x56, 0x90, 0xfa, 0x2d, 0x7f, 0xf6, 0xa2, //0x0000aa58 .quad -6704031159840385477 - 0xb9, 0xff, 0xd2, 0x3a, 0xa0, 0x40, 0x2b, 0x4f, //0x0000aa60 .quad 5704724409920716729 - 0xca, 0x6b, 0x34, 0x79, 0xf9, 0x1e, 0xb4, 0xcb, //0x0000aa68 .quad -3768352931373093942 - 0xa8, 0xbf, 0x87, 0x49, 0xc8, 0x10, 0xf6, 0xe2, //0x0000aa70 .quad -2092466524453879896 - 0xbc, 0x86, 0x81, 0xd7, 0xb7, 0x26, 0xa1, 0xfe, //0x0000aa78 .quad -98755145788979524 - 0xc9, 0xd7, 0xf4, 0x2d, 0x7d, 0xca, 0xd9, 0x0d, //0x0000aa80 .quad 998051431430019017 - 0x36, 0xf4, 0xb0, 0xe6, 0x32, 0xb8, 0x24, 0x9f, //0x0000aa88 .quad -6979250993759194058 - 0xbb, 0x0d, 0x72, 0x79, 0x1c, 0x3d, 0x50, 0x91, //0x0000aa90 .quad -7975807747567252037 - 0x43, 0x31, 0x5d, 0xa0, 0x3f, 0xe6, 0xed, 0xc6, //0x0000aa98 .quad -4112377723771604669 - 0x2a, 0x91, 0xce, 0x97, 0x63, 0x4c, 0xa4, 0x75, //0x0000aaa0 .quad 8476984389250486570 - 0x94, 0x7d, 0x74, 0x88, 0xcf, 0x5f, 0xa9, 0xf8, //0x0000aaa8 .quad -528786136287117932 - 0xba, 0x1a, 0xe1, 0x3e, 0xbe, 0xaf, 0x86, 0xc9, //0x0000aab0 .quad -3925256793573221702 - 0x7c, 0xce, 0x48, 0xb5, 0xe1, 0xdb, 0x69, 0x9b, //0x0000aab8 .quad -7248020362820530564 - 0x68, 0x61, 0x99, 0xce, 0xad, 0x5b, 0xe8, 0xfb, //0x0000aac0 .quad -294884973539139224 - 0x1b, 0x02, 0x9b, 0x22, 0xda, 0x52, 0x44, 0xc2, //0x0000aac8 .quad -4448339435098275301 - 0xc3, 0xb9, 0x3f, 0x42, 0x99, 0x72, 0xe2, 0xfa, //0x0000aad0 .quad -368606216923924029 - 0xa2, 0xc2, 0x41, 0xab, 0x90, 0x67, 0xd5, 0xf2, //0x0000aad8 .quad -948738275445456222 - 0x1a, 0xd4, 0x67, 0xc9, 0x9f, 0x87, 0xcd, 0xdc, //0x0000aae0 .quad -2536221894791146470 - 0xa5, 0x19, 0x09, 0x6b, 0xba, 0x60, 0xc5, 0x97, //0x0000aae8 .quad -7510490449794491995 - 0x20, 0xc9, 0xc1, 0xbb, 0x87, 0xe9, 0x00, 0x54, //0x0000aaf0 .quad 6053094668365842720 - 0x0f, 0x60, 0xcb, 0x05, 0xe9, 0xb8, 0xb6, 0xbd, //0x0000aaf8 .quad -4776427043815727089 - 0x68, 0x3b, 0xb2, 0xaa, 0xe9, 0x23, 0x01, 0x29, //0x0000ab00 .quad 2954682317029915496 - 0x13, 0x38, 0x3e, 0x47, 0x23, 0x67, 0x24, 0xed, //0x0000ab08 .quad -1358847786342270957 - 0x21, 0x65, 0xaf, 0x0a, 0x72, 0xb6, 0xa0, 0xf9, //0x0000ab10 .quad -459166561069996767 - 0x0b, 0xe3, 0x86, 0x0c, 0x76, 0xc0, 0x36, 0x94, //0x0000ab18 .quad -7766808894105001205 - 0x69, 0x3e, 0x5b, 0x8d, 0x0e, 0xe4, 0x08, 0xf8, //0x0000ab20 .quad -573958201337495959 - 0xce, 0x9b, 0xa8, 0x8f, 0x93, 0x70, 0x44, 0xb9, //0x0000ab28 .quad -5096825099203863602 - 0x04, 0x0e, 0xb2, 0x30, 0x12, 0x1d, 0x0b, 0xb6, //0x0000ab30 .quad -5329133770099257852 - 0xc2, 0xc2, 0x92, 0x73, 0xb8, 0x8c, 0x95, 0xe7, //0x0000ab38 .quad -1759345355577441598 - 0xc2, 0x48, 0x6f, 0x5e, 0x2b, 0xf2, 0xc6, 0xb1, //0x0000ab40 .quad -5636551615525730110 - 0xb9, 0xb9, 0x3b, 0x48, 0xf3, 0x77, 0xbd, 0x90, //0x0000ab48 .quad -8017119874876982855 - 0xf3, 0x1a, 0x0b, 0x36, 0xb6, 0xae, 0x38, 0x1e, //0x0000ab50 .quad 2177682517447613171 - 0x28, 0xa8, 0x4a, 0x1a, 0xf0, 0xd5, 0xec, 0xb4, //0x0000ab58 .quad -5409713825168840664 - 0xb0, 0xe1, 0x8d, 0xc3, 0x63, 0xda, 0xc6, 0x25, //0x0000ab60 .quad 2722103146809516464 - 0x32, 0x52, 0xdd, 0x20, 0x6c, 0x0b, 0x28, 0xe2, //0x0000ab68 .quad -2150456263033662926 - 0x0e, 0xad, 0x38, 0x5a, 0x7e, 0x48, 0x9c, 0x57, //0x0000ab70 .quad 6313000485183335694 - 0x5f, 0x53, 0x8a, 0x94, 0x23, 0x07, 0x59, 0x8d, //0x0000ab78 .quad -8261564192037121185 - 0x51, 0xd8, 0xc6, 0xf0, 0x9d, 0x5a, 0x83, 0x2d, //0x0000ab80 .quad 3279564588051781713 - 0x37, 0xe8, 0xac, 0x79, 0xec, 0x48, 0xaf, 0xb0, //0x0000ab88 .quad -5715269221619013577 - 0x65, 0x8e, 0xf8, 0x6c, 0x45, 0x31, 0xe4, 0xf8, //0x0000ab90 .quad -512230283362660763 - 0x44, 0x22, 0x18, 0x98, 0x27, 0x1b, 0xdb, 0xdc, //0x0000ab98 .quad -2532400508596379068 - 0xff, 0x58, 0x1b, 0x64, 0xcb, 0x9e, 0x8e, 0x1b, //0x0000aba0 .quad 1985699082112030975 - 0x6b, 0x15, 0x0f, 0xbf, 0xf8, 0xf0, 0x08, 0x8a, //0x0000aba8 .quad -8500279345513818773 - 0x3f, 0x2f, 0x22, 0x3d, 0x7e, 0x46, 0x72, 0xe2, //0x0000abb0 .quad -2129562165787349185 - 0xc5, 0xda, 0xd2, 0xee, 0x36, 0x2d, 0x8b, 0xac, //0x0000abb8 .quad -6013663163464885563 - 0x0f, 0xbb, 0x6a, 0xcc, 0x1d, 0xd8, 0x0e, 0x5b, //0x0000abc0 .quad 6561419329620589327 - 0x77, 0x91, 0x87, 0xaa, 0x84, 0xf8, 0xad, 0xd7, //0x0000abc8 .quad -2905392935903719049 - 0xe9, 0xb4, 0xc2, 0x9f, 0x12, 0x47, 0xe9, 0x98, //0x0000abd0 .quad -7428327965055601431 - 0xea, 0xba, 0x94, 0xea, 0x52, 0xbb, 0xcc, 0x86, //0x0000abd8 .quad -8733399612580906262 - 0x24, 0x62, 0xb3, 0x47, 0xd7, 0x98, 0x23, 0x3f, //0x0000abe0 .quad 4549648098962661924 - 0xa5, 0xe9, 0x39, 0xa5, 0x27, 0xea, 0x7f, 0xa8, //0x0000abe8 .quad -6305063497298744923 - 0xad, 0x3a, 0xa0, 0x19, 0x0d, 0x7f, 0xec, 0x8e, //0x0000abf0 .quad -8147997931578836307 - 0x0e, 0x64, 0x88, 0x8e, 0xb1, 0xe4, 0x9f, 0xd2, //0x0000abf8 .quad -3269643353196043250 - 0xac, 0x24, 0x04, 0x30, 0x68, 0xcf, 0x53, 0x19, //0x0000ac00 .quad 1825030320404309164 - 0x89, 0x3e, 0x15, 0xf9, 0xee, 0xee, 0xa3, 0x83, //0x0000ac08 .quad -8961056123388608887 - 0xd7, 0x2d, 0x05, 0x3c, 0x42, 0xc3, 0xa8, 0x5f, //0x0000ac10 .quad 6892973918932774359 - 0x2b, 0x8e, 0x5a, 0xb7, 0xaa, 0xea, 0x8c, 0xa4, //0x0000ac18 .quad -6589634135808373205 - 0x4d, 0x79, 0x06, 0xcb, 0x12, 0xf4, 0x92, 0x37, //0x0000ac20 .quad 4004531380238580045 - 0xb6, 0x31, 0x31, 0x65, 0x55, 0x25, 0xb0, 0xcd, //0x0000ac28 .quad -3625356651333078602 - 0xd0, 0x0b, 0xe4, 0xbe, 0x8b, 0xd8, 0xbb, 0xe2, //0x0000ac30 .quad -2108853905778275376 - 0x11, 0xbf, 0x3e, 0x5f, 0x55, 0x17, 0x8e, 0x80, //0x0000ac38 .quad -9183376934724255983 - 0xc4, 0x0e, 0x9d, 0xae, 0xae, 0xce, 0x6a, 0x5b, //0x0000ac40 .quad 6587304654631931588 - 0xd6, 0x6e, 0x0e, 0xb7, 0x2a, 0x9d, 0xb1, 0xa0, //0x0000ac48 .quad -6867535149977932074 - 0x75, 0x52, 0x44, 0x5a, 0x5a, 0x82, 0x45, 0xf2, //0x0000ac50 .quad -989241218564861323 - 0x8b, 0x0a, 0xd2, 0x64, 0x75, 0x04, 0xde, 0xc8, //0x0000ac58 .quad -3972732919045027189 - 0x12, 0x67, 0xd5, 0xf0, 0xf0, 0xe2, 0xd6, 0xee, //0x0000ac60 .quad -1236551523206076654 - 0x2e, 0x8d, 0x06, 0xbe, 0x92, 0x85, 0x15, 0xfb, //0x0000ac68 .quad -354230130378896082 - 0x6b, 0x60, 0x85, 0x96, 0xd6, 0x4d, 0x46, 0x55, //0x0000ac70 .quad 6144684325637283947 - 0x3d, 0x18, 0xc4, 0xb6, 0x7b, 0x73, 0xed, 0x9c, //0x0000ac78 .quad -7138922859127891907 - 0x86, 0xb8, 0x26, 0x3c, 0x4c, 0xe1, 0x97, 0xaa, //0x0000ac80 .quad -6154202648235558778 - 0x4c, 0x1e, 0x75, 0xa4, 0x5a, 0xd0, 0x28, 0xc4, //0x0000ac88 .quad -4311967555482476980 - 0xa8, 0x66, 0x30, 0x4b, 0x9f, 0xd9, 0x3d, 0xd5, //0x0000ac90 .quad -3081067291867060568 - 0xdf, 0x65, 0x92, 0x4d, 0x71, 0x04, 0x33, 0xf5, //0x0000ac98 .quad -778273425925708321 - 0x29, 0x40, 0xfe, 0x8e, 0x03, 0xa8, 0x46, 0xe5, //0x0000aca0 .quad -1925667057416912855 - 0xab, 0x7f, 0x7b, 0xd0, 0xc6, 0xe2, 0x3f, 0x99, //0x0000aca8 .quad -7403949918844649557 - 0x33, 0xd0, 0xbd, 0x72, 0x04, 0x52, 0x98, 0xde, //0x0000acb0 .quad -2407083821771141069 - 0x96, 0x5f, 0x9a, 0x84, 0x78, 0xdb, 0x8f, 0xbf, //0x0000acb8 .quad -4643251380128424042 - 0x40, 0x44, 0x6d, 0x8f, 0x85, 0x66, 0x3e, 0x96, //0x0000acc0 .quad -7620540795641314240 - 0x7c, 0xf7, 0xc0, 0xa5, 0x56, 0xd2, 0x73, 0xef, //0x0000acc8 .quad -1192378206733142148 - 0xa8, 0x4a, 0xa4, 0x79, 0x13, 0x00, 0xe7, 0xdd, //0x0000acd0 .quad -2456994988062127448 - 0xad, 0x9a, 0x98, 0x27, 0x76, 0x63, 0xa8, 0x95, //0x0000acd8 .quad -7662765406849295699 - 0x52, 0x5d, 0x0d, 0x58, 0x18, 0xc0, 0x60, 0x55, //0x0000ace0 .quad 6152128301777116498 - 0x59, 0xc1, 0x7e, 0xb1, 0x53, 0x7c, 0x12, 0xbb, //0x0000ace8 .quad -4966770740134231719 - 0xa6, 0xb4, 0x10, 0x6e, 0x1e, 0xf0, 0xb8, 0xaa, //0x0000acf0 .quad -6144897678060768090 - 0xaf, 0x71, 0xde, 0x9d, 0x68, 0x1b, 0xd7, 0xe9, //0x0000acf8 .quad -1596777406740401745 - 0xe8, 0x70, 0xca, 0x04, 0x13, 0x96, 0xb3, 0xca, //0x0000ad00 .quad -3840561048787980056 - 0x0d, 0x07, 0xab, 0x62, 0x21, 0x71, 0x26, 0x92, //0x0000ad08 .quad -7915514906853832947 - 0x22, 0x0d, 0xfd, 0xc5, 0x97, 0x7b, 0x60, 0x3d, //0x0000ad10 .quad 4422670725869800738 - 0xd1, 0xc8, 0x55, 0xbb, 0x69, 0x0d, 0xb0, 0xb6, //0x0000ad18 .quad -5282707615139903279 - 0x6a, 0x50, 0x7c, 0xb7, 0x7d, 0x9a, 0xb8, 0x8c, //0x0000ad20 .quad -8306719647944912790 - 0x05, 0x3b, 0x2b, 0x2a, 0xc4, 0x10, 0x5c, 0xe4, //0x0000ad28 .quad -1991698500497491195 - 0x42, 0xb2, 0xad, 0x92, 0x8e, 0x60, 0xf3, 0x77, //0x0000ad30 .quad 8643358275316593218 - 0xe3, 0x04, 0x5b, 0x9a, 0x7a, 0x8a, 0xb9, 0x8e, //0x0000ad38 .quad -8162340590452013853 - 0xd3, 0x1e, 0x59, 0x37, 0xb2, 0x38, 0xf0, 0x55, //0x0000ad40 .quad 6192511825718353619 - 0x1c, 0xc6, 0xf1, 0x40, 0x19, 0xed, 0x67, 0xb2, //0x0000ad48 .quad -5591239719637629412 - 0x88, 0x66, 0x2f, 0xc5, 0xde, 0x46, 0x6c, 0x6b, //0x0000ad50 .quad 7740639782147942024 - 0xa3, 0x37, 0x2e, 0x91, 0x5f, 0xe8, 0x01, 0xdf, //0x0000ad58 .quad -2377363631119648861 - 0x15, 0xa0, 0x3d, 0x3b, 0x4b, 0xac, 0x23, 0x23, //0x0000ad60 .quad 2532056854628769813 - 0xc6, 0xe2, 0xbc, 0xba, 0x3b, 0x31, 0x61, 0x8b, //0x0000ad68 .quad -8403381297090862394 - 0x1a, 0x08, 0x0d, 0x0a, 0x5e, 0x97, 0xec, 0xab, //0x0000ad70 .quad -6058300968568813542 - 0x77, 0x1b, 0x6c, 0xa9, 0x8a, 0x7d, 0x39, 0xae, //0x0000ad78 .quad -5892540602936190089 - 0x21, 0x4a, 0x90, 0x8c, 0x35, 0xbd, 0xe7, 0x96, //0x0000ad80 .quad -7572876210711016927 - 0x55, 0x22, 0xc7, 0x53, 0xed, 0xdc, 0xc7, 0xd9, //0x0000ad88 .quad -2753989735242849707 - 0x54, 0x2e, 0xda, 0x77, 0x41, 0xd6, 0x50, 0x7e, //0x0000ad90 .quad 9102010423587778132 - 0x75, 0x75, 0x5c, 0x54, 0x14, 0xea, 0x1c, 0x88, //0x0000ad98 .quad -8638772612167862923 - 0xe9, 0xb9, 0xd0, 0xd5, 0xd1, 0x0b, 0xe5, 0xdd, //0x0000ada0 .quad -2457545025797441047 - 0xd2, 0x92, 0x73, 0x69, 0x99, 0x24, 0x24, 0xaa, //0x0000ada8 .quad -6186779746782440750 - 0x64, 0xe8, 0x44, 0x4b, 0xc6, 0x4e, 0x5e, 0x95, //0x0000adb0 .quad -7683617300674189212 - 0x87, 0x77, 0xd0, 0xc3, 0xbf, 0x2d, 0xad, 0xd4, //0x0000adb8 .quad -3121788665050663033 - 0x3e, 0x11, 0x0b, 0xef, 0x3b, 0xf1, 0x5a, 0xbd, //0x0000adc0 .quad -4802260812921368258 - 0xb4, 0x4a, 0x62, 0xda, 0x97, 0x3c, 0xec, 0x84, //0x0000adc8 .quad -8868646943297746252 - 0x8e, 0xd5, 0xcd, 0xea, 0x8a, 0xad, 0xb1, 0xec, //0x0000add0 .quad -1391139997724322418 - 0x61, 0xdd, 0xfa, 0xd0, 0xbd, 0x4b, 0x27, 0xa6, //0x0000add8 .quad -6474122660694794911 - 0xf2, 0x4a, 0x81, 0xa5, 0xed, 0x18, 0xde, 0x67, //0x0000ade0 .quad 7484447039699372786 - 0xba, 0x94, 0x39, 0x45, 0xad, 0x1e, 0xb1, 0xcf, //0x0000ade8 .quad -3480967307441105734 - 0xd7, 0xce, 0x70, 0x87, 0x94, 0xcf, 0xea, 0x80, //0x0000adf0 .quad -9157278655470055721 - 0xf4, 0xfc, 0x43, 0x4b, 0x2c, 0xb3, 0xce, 0x81, //0x0000adf8 .quad -9093133594791772940 - 0x8d, 0x02, 0x4d, 0xa9, 0x79, 0x83, 0x25, 0xa1, //0x0000ae00 .quad -6834912300910181747 - 0x31, 0xfc, 0x14, 0x5e, 0xf7, 0x5f, 0x42, 0xa2, //0x0000ae08 .quad -6754730975062328271 - 0x30, 0x43, 0xa0, 0x13, 0x58, 0xe4, 0x6e, 0x09, //0x0000ae10 .quad 679731660717048624 - 0x3e, 0x3b, 0x9a, 0x35, 0xf5, 0xf7, 0xd2, 0xca, //0x0000ae18 .quad -3831727700400522434 - 0xfc, 0x53, 0x88, 0x18, 0x6e, 0x9d, 0xca, 0x8b, //0x0000ae20 .quad -8373707460958465028 - 0x0d, 0xca, 0x00, 0x83, 0xf2, 0xb5, 0x87, 0xfd, //0x0000ae28 .quad -177973607073265139 - 0x7d, 0x34, 0x55, 0xcf, 0x64, 0xa2, 0x5e, 0x77, //0x0000ae30 .quad 8601490892183123069 - 0x48, 0x7e, 0xe0, 0x91, 0xb7, 0xd1, 0x74, 0x9e, //0x0000ae38 .quad -7028762532061872568 - 0x9d, 0x81, 0x2a, 0x03, 0xfe, 0x4a, 0x36, 0x95, //0x0000ae40 .quad -7694880458480647779 - 0xda, 0x9d, 0x58, 0x76, 0x25, 0x06, 0x12, 0xc6, //0x0000ae48 .quad -4174267146649952806 - 0x04, 0x22, 0xf5, 0x83, 0xbd, 0xdd, 0x83, 0x3a, //0x0000ae50 .quad 4216457482181353988 - 0x51, 0xc5, 0xee, 0xd3, 0xae, 0x87, 0x96, 0xf7, //0x0000ae58 .quad -606147914885053103 - 0x42, 0x35, 0x79, 0x72, 0x96, 0x6a, 0x92, 0xc4, //0x0000ae60 .quad -4282243101277735614 - 0x52, 0x3b, 0x75, 0x44, 0xcd, 0x14, 0xbe, 0x9a, //0x0000ae68 .quad -7296371474444240046 - 0x93, 0x82, 0x17, 0x0f, 0x3c, 0x05, 0xb7, 0x75, //0x0000ae70 .quad 8482254178684994195 - 0x27, 0x8a, 0x92, 0x95, 0x00, 0x9a, 0x6d, 0xc1, //0x0000ae78 .quad -4508778324627912153 - 0x38, 0x63, 0xdd, 0x12, 0x8b, 0xc6, 0x24, 0x53, //0x0000ae80 .quad 5991131704928854840 - 0xb1, 0x2c, 0xf7, 0xba, 0x80, 0x00, 0xc9, 0xf1, //0x0000ae88 .quad -1024286887357502287 - 0x03, 0x5e, 0xca, 0xeb, 0x16, 0xfc, 0xf6, 0xd3, //0x0000ae90 .quad -3173071712060547581 - 0xee, 0x7b, 0xda, 0x74, 0x50, 0xa0, 0x1d, 0x97, //0x0000ae98 .quad -7557708332239520786 - 0x84, 0xf5, 0xbc, 0xa6, 0x1c, 0xbb, 0xf4, 0x88, //0x0000aea0 .quad -8578025658503072380 - 0xea, 0x1a, 0x11, 0x92, 0x64, 0x08, 0xe5, 0xbc, //0x0000aea8 .quad -4835449396872013078 - 0xe5, 0x32, 0x6c, 0xd0, 0xe3, 0xe9, 0x31, 0x2b, //0x0000aeb0 .quad 3112525982153323237 - 0xa5, 0x61, 0x95, 0xb6, 0x7d, 0x4a, 0x1e, 0xec, //0x0000aeb8 .quad -1432625727662628443 - 0xcf, 0x9f, 0x43, 0x62, 0x2e, 0x32, 0xff, 0x3a, //0x0000aec0 .quad 4251171748059520975 - 0x07, 0x5d, 0x1d, 0x92, 0x8e, 0xee, 0x92, 0x93, //0x0000aec8 .quad -7812920107430224633 - 0xc2, 0x87, 0xd4, 0xfa, 0xb9, 0xfe, 0xbe, 0x09, //0x0000aed0 .quad 702278666647013314 - 0x49, 0xb4, 0xa4, 0x36, 0x32, 0xaa, 0x77, 0xb8, //0x0000aed8 .quad -5154464115860392887 - 0xb3, 0xa9, 0x89, 0x79, 0x68, 0xbe, 0x2e, 0x4c, //0x0000aee0 .quad 5489534351736154547 - 0x5b, 0xe1, 0x4d, 0xc4, 0xbe, 0x94, 0x95, 0xe6, //0x0000aee8 .quad -1831394126398103205 - 0x10, 0x0a, 0xf6, 0x4b, 0x01, 0x37, 0x9d, 0x0f, //0x0000aef0 .quad 1125115960621402640 - 0xd9, 0xac, 0xb0, 0x3a, 0xf7, 0x7c, 0x1d, 0x90, //0x0000aef8 .quad -8062150356639896359 - 0x94, 0x8c, 0xf3, 0x9e, 0xc1, 0x84, 0x84, 0x53, //0x0000af00 .quad 6018080969204141204 - 0x0f, 0xd8, 0x5c, 0x09, 0x35, 0xdc, 0x24, 0xb4, //0x0000af08 .quad -5466001927372482545 - 0xb9, 0x6f, 0xb0, 0x06, 0xf2, 0xa5, 0x65, 0x28, //0x0000af10 .quad 2910915193077788601 - 0x13, 0x0e, 0xb4, 0x4b, 0x42, 0x13, 0x2e, 0xe1, //0x0000af18 .quad -2220816390788215277 - 0xd3, 0x45, 0x2e, 0x44, 0xb7, 0x87, 0x3f, 0xf9, //0x0000af20 .quad -486521013540076077 - 0xcb, 0x88, 0x50, 0x6f, 0x09, 0xcc, 0xbc, 0x8c, //0x0000af28 .quad -8305539271883716405 - 0x48, 0xd7, 0x39, 0x15, 0xa5, 0x69, 0x8f, 0xf7, //0x0000af30 .quad -608151266925095096 - 0xfe, 0xaa, 0x24, 0xcb, 0x0b, 0xff, 0xeb, 0xaf, //0x0000af38 .quad -5770238071427257602 - 0x1b, 0x4d, 0x88, 0x5a, 0x0e, 0x44, 0x73, 0xb5, //0x0000af40 .quad -5371875102083756773 - 0xbe, 0xd5, 0xed, 0xbd, 0xce, 0xfe, 0xe6, 0xdb, //0x0000af48 .quad -2601111570856684098 - 0x30, 0x30, 0x95, 0xf8, 0x88, 0x0a, 0x68, 0x31, //0x0000af50 .quad 3560107088838733872 - 0x97, 0xa5, 0xb4, 0x36, 0x41, 0x5f, 0x70, 0x89, //0x0000af58 .quad -8543223759426509417 - 0x3d, 0x7c, 0xba, 0x36, 0x2b, 0x0d, 0xc2, 0xfd, //0x0000af60 .quad -161552157378970563 - 0xfc, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x0000af68 .quad -6067343680855748868 - 0x4c, 0x1b, 0x69, 0x04, 0x76, 0x90, 0x32, 0x3d, //0x0000af70 .quad 4409745821703674700 - 0xbc, 0x42, 0x7a, 0xe5, 0xd5, 0x94, 0xbf, 0xd6, //0x0000af78 .quad -2972493582642298180 - 0x0f, 0xb1, 0xc1, 0xc2, 0x49, 0x9a, 0x3f, 0xa6, //0x0000af80 .quad -6467280898289979121 - 0xb5, 0x69, 0x6c, 0xaf, 0x05, 0xbd, 0x37, 0x86, //0x0000af88 .quad -8775337516792518219 - 0x53, 0x1d, 0x72, 0x33, 0xdc, 0x80, 0xcf, 0x0f, //0x0000af90 .quad 1139270913992301907 - 0x23, 0x84, 0x47, 0x1b, 0x47, 0xac, 0xc5, 0xa7, //0x0000af98 .quad -6357485877563259869 - 0xa8, 0xa4, 0x4e, 0x40, 0x13, 0x61, 0xc3, 0xd3, //0x0000afa0 .quad -3187597375937010520 - 0x2b, 0x65, 0x19, 0xe2, 0x58, 0x17, 0xb7, 0xd1, //0x0000afa8 .quad -3335171328526686933 - 0xe9, 0x26, 0x31, 0x08, 0xac, 0x1c, 0x5a, 0x64, //0x0000afb0 .quad 7231123676894144233 - 0x3b, 0xdf, 0x4f, 0x8d, 0x97, 0x6e, 0x12, 0x83, //0x0000afb8 .quad -9002011107970261189 - 0xa3, 0x70, 0x3d, 0x0a, 0xd7, 0xa3, 0x70, 0x3d, //0x0000afc0 .quad 4427218577690292387 - 0x0a, 0xd7, 0xa3, 0x70, 0x3d, 0x0a, 0xd7, 0xa3, //0x0000afc8 .quad -6640827866535438582 - 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x0000afd0 QUAD $0xcccccccccccccccc; QUAD $0xcccccccccccccccc // .space 16, '\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000afe0 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x0000afe8 .quad -9223372036854775808 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000aff0 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, //0x0000aff8 .quad -6917529027641081856 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b000 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc8, //0x0000b008 .quad -4035225266123964416 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b010 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, //0x0000b018 .quad -432345564227567616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b020 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x9c, //0x0000b028 .quad -7187745005283311616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b030 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0xc3, //0x0000b038 .quad -4372995238176751616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b040 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0xf4, //0x0000b048 .quad -854558029293551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b050 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x96, 0x98, //0x0000b058 .quad -7451627795949551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b060 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xbc, 0xbe, //0x0000b068 .quad -4702848726509551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b070 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x6b, 0xee, //0x0000b078 .quad -1266874889709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b080 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0xf9, 0x02, 0x95, //0x0000b088 .quad -7709325833709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b090 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x40, 0xb7, 0x43, 0xba, //0x0000b098 .quad -5024971273709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b0a0 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x10, 0xa5, 0xd4, 0xe8, //0x0000b0a8 .quad -1669528073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b0b0 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x2a, 0xe7, 0x84, 0x91, //0x0000b0b8 .quad -7960984073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b0c0 .quad 0 - 0x00, 0x00, 0x00, 0x80, 0xf4, 0x20, 0xe6, 0xb5, //0x0000b0c8 .quad -5339544073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b0d0 .quad 0 - 0x00, 0x00, 0x00, 0xa0, 0x31, 0xa9, 0x5f, 0xe3, //0x0000b0d8 .quad -2062744073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b0e0 .quad 0 - 0x00, 0x00, 0x00, 0x04, 0xbf, 0xc9, 0x1b, 0x8e, //0x0000b0e8 .quad -8206744073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b0f0 .quad 0 - 0x00, 0x00, 0x00, 0xc5, 0x2e, 0xbc, 0xa2, 0xb1, //0x0000b0f8 .quad -5646744073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b100 .quad 0 - 0x00, 0x00, 0x40, 0x76, 0x3a, 0x6b, 0x0b, 0xde, //0x0000b108 .quad -2446744073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b110 .quad 0 - 0x00, 0x00, 0xe8, 0x89, 0x04, 0x23, 0xc7, 0x8a, //0x0000b118 .quad -8446744073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b120 .quad 0 - 0x00, 0x00, 0x62, 0xac, 0xc5, 0xeb, 0x78, 0xad, //0x0000b128 .quad -5946744073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b130 .quad 0 - 0x00, 0x80, 0x7a, 0x17, 0xb7, 0x26, 0xd7, 0xd8, //0x0000b138 .quad -2821744073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b140 .quad 0 - 0x00, 0x90, 0xac, 0x6e, 0x32, 0x78, 0x86, 0x87, //0x0000b148 .quad -8681119073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b150 .quad 0 - 0x00, 0xb4, 0x57, 0x0a, 0x3f, 0x16, 0x68, 0xa9, //0x0000b158 .quad -6239712823709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b160 .quad 0 - 0x00, 0xa1, 0xed, 0xcc, 0xce, 0x1b, 0xc2, 0xd3, //0x0000b168 .quad -3187955011209551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b170 .quad 0 - 0xa0, 0x84, 0x14, 0x40, 0x61, 0x51, 0x59, 0x84, //0x0000b178 .quad -8910000909647051616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b180 .quad 0 - 0xc8, 0xa5, 0x19, 0x90, 0xb9, 0xa5, 0x6f, 0xa5, //0x0000b188 .quad -6525815118631426616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b190 .quad 0 - 0x3a, 0x0f, 0x20, 0xf4, 0x27, 0x8f, 0xcb, 0xce, //0x0000b198 .quad -3545582879861895366 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, //0x0000b1a0 .quad 4611686018427387904 - 0x84, 0x09, 0x94, 0xf8, 0x78, 0x39, 0x3f, 0x81, //0x0000b1a8 .quad -9133518327554766460 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, //0x0000b1b0 .quad 5764607523034234880 - 0xe5, 0x0b, 0xb9, 0x36, 0xd7, 0x07, 0x8f, 0xa1, //0x0000b1b8 .quad -6805211891016070171 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa4, //0x0000b1c0 .quad -6629298651489370112 - 0xde, 0x4e, 0x67, 0x04, 0xcd, 0xc9, 0xf2, 0xc9, //0x0000b1c8 .quad -3894828845342699810 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4d, //0x0000b1d0 .quad 5548434740920451072 - 0x96, 0x22, 0x81, 0x45, 0x40, 0x7c, 0x6f, 0xfc, //0x0000b1d8 .quad -256850038250986858 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xf0, //0x0000b1e0 .quad -1143914305352105984 - 0x9d, 0xb5, 0x70, 0x2b, 0xa8, 0xad, 0xc5, 0x9d, //0x0000b1e8 .quad -7078060301547948643 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x6c, //0x0000b1f0 .quad 7793479155164643328 - 0x05, 0xe3, 0x4c, 0x36, 0x12, 0x19, 0x37, 0xc5, //0x0000b1f8 .quad -4235889358507547899 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0xc7, //0x0000b200 .quad -4093209111326359552 - 0xc6, 0x1b, 0xe0, 0xc3, 0x56, 0xdf, 0x84, 0xf6, //0x0000b208 .quad -683175679707046970 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7f, 0x3c, //0x0000b210 .quad 4359273333062107136 - 0x5c, 0x11, 0x6c, 0x3a, 0x96, 0x0b, 0x13, 0x9a, //0x0000b218 .quad -7344513827457986212 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x9f, 0x4b, //0x0000b220 .quad 5449091666327633920 - 0xb3, 0x15, 0x07, 0xc9, 0x7b, 0xce, 0x97, 0xc0, //0x0000b228 .quad -4568956265895094861 - 0x00, 0x00, 0x00, 0x00, 0x00, 0xd4, 0x86, 0x1e, //0x0000b230 .quad 2199678564482154496 - 0x20, 0xdb, 0x48, 0xbb, 0x1a, 0xc2, 0xbd, 0xf0, //0x0000b238 .quad -1099509313941480672 - 0x00, 0x00, 0x00, 0x00, 0x80, 0x44, 0x14, 0x13, //0x0000b240 .quad 1374799102801346560 - 0xf4, 0x88, 0x0d, 0xb5, 0x50, 0x99, 0x76, 0x96, //0x0000b248 .quad -7604722348854507276 - 0x00, 0x00, 0x00, 0x00, 0xa0, 0x55, 0xd9, 0x17, //0x0000b250 .quad 1718498878501683200 - 0x31, 0xeb, 0x50, 0xe2, 0xa4, 0x3f, 0x14, 0xbc, //0x0000b258 .quad -4894216917640746191 - 0x00, 0x00, 0x00, 0x00, 0x08, 0xab, 0xcf, 0x5d, //0x0000b260 .quad 6759809616554491904 - 0xfd, 0x25, 0xe5, 0x1a, 0x8e, 0x4f, 0x19, 0xeb, //0x0000b268 .quad -1506085128623544835 - 0x00, 0x00, 0x00, 0x00, 0xe5, 0xca, 0xa1, 0x5a, //0x0000b270 .quad 6530724019560251392 - 0xbe, 0x37, 0xcf, 0xd0, 0xb8, 0xd1, 0xef, 0x92, //0x0000b278 .quad -7858832233030797378 - 0x00, 0x00, 0x00, 0x40, 0x9e, 0x3d, 0x4a, 0xf1, //0x0000b280 .quad -1059967012404461568 - 0xad, 0x05, 0x03, 0x05, 0x27, 0xc6, 0xab, 0xb7, //0x0000b288 .quad -5211854272861108819 - 0x00, 0x00, 0x00, 0xd0, 0x05, 0xcd, 0x9c, 0x6d, //0x0000b290 .quad 7898413271349198848 - 0x19, 0xc7, 0x43, 0xc6, 0xb0, 0xb7, 0x96, 0xe5, //0x0000b298 .quad -1903131822648998119 - 0x00, 0x00, 0x00, 0xa2, 0x23, 0x00, 0x82, 0xe4, //0x0000b2a0 .quad -1981020733047832576 - 0x6f, 0x5c, 0xea, 0x7b, 0xce, 0x32, 0x7e, 0x8f, //0x0000b2a8 .quad -8106986416796705681 - 0x00, 0x00, 0x80, 0x8a, 0x2c, 0x80, 0xa2, 0xdd, //0x0000b2b0 .quad -2476275916309790720 - 0x8b, 0xf3, 0xe4, 0x1a, 0x82, 0xbf, 0x5d, 0xb3, //0x0000b2b8 .quad -5522047002568494197 - 0x00, 0x00, 0x20, 0xad, 0x37, 0x20, 0x0b, 0xd5, //0x0000b2c0 .quad -3095344895387238400 - 0x6e, 0x30, 0x9e, 0xa1, 0x62, 0x2f, 0x35, 0xe0, //0x0000b2c8 .quad -2290872734783229842 - 0x00, 0x00, 0x34, 0xcc, 0x22, 0xf4, 0x26, 0x45, //0x0000b2d0 .quad 4982938468024057856 - 0x45, 0xde, 0x02, 0xa5, 0x9d, 0x3d, 0x21, 0x8c, //0x0000b2d8 .quad -8349324486880600507 - 0x00, 0x00, 0x41, 0x7f, 0x2b, 0xb1, 0x70, 0x96, //0x0000b2e0 .quad -7606384970252091392 - 0xd6, 0x95, 0x43, 0x0e, 0x05, 0x8d, 0x29, 0xaf, //0x0000b2e8 .quad -5824969590173362730 - 0x00, 0x40, 0x11, 0x5f, 0x76, 0xdd, 0x0c, 0x3c, //0x0000b2f0 .quad 4327076842467049472 - 0x4c, 0x7b, 0xd4, 0x51, 0x46, 0xf0, 0xf3, 0xda, //0x0000b2f8 .quad -2669525969289315508 - 0x00, 0xc8, 0x6a, 0xfb, 0x69, 0x0a, 0x88, 0xa5, //0x0000b300 .quad -6518949010312869888 - 0x0f, 0xcd, 0x24, 0xf3, 0x2b, 0x76, 0xd8, 0x88, //0x0000b308 .quad -8585982758446904049 - 0x00, 0x7a, 0x45, 0x7a, 0x04, 0x0d, 0xea, 0x8e, //0x0000b310 .quad -8148686262891087360 - 0x53, 0x00, 0xee, 0xef, 0xb6, 0x93, 0x0e, 0xab, //0x0000b318 .quad -6120792429631242157 - 0x80, 0xd8, 0xd6, 0x98, 0x45, 0x90, 0xa4, 0x72, //0x0000b320 .quad 8260886245095692416 - 0x68, 0x80, 0xe9, 0xab, 0xa4, 0x38, 0xd2, 0xd5, //0x0000b328 .quad -3039304518611664792 - 0x50, 0x47, 0x86, 0x7f, 0x2b, 0xda, 0xa6, 0x47, //0x0000b330 .quad 5163053903184807760 - 0x41, 0xf0, 0x71, 0xeb, 0x66, 0x63, 0xa3, 0x85, //0x0000b338 .quad -8817094351773372351 - 0x24, 0xd9, 0x67, 0x5f, 0xb6, 0x90, 0x90, 0x99, //0x0000b340 .quad -7381240676301154012 - 0x51, 0x6c, 0x4e, 0xa6, 0x40, 0x3c, 0x0c, 0xa7, //0x0000b348 .quad -6409681921289327535 - 0x6d, 0xcf, 0x41, 0xf7, 0xe3, 0xb4, 0xf4, 0xff, //0x0000b350 .quad -3178808521666707 - 0x65, 0x07, 0xe2, 0xcf, 0x50, 0x4b, 0xcf, 0xd0, //0x0000b358 .quad -3400416383184271515 - 0xa4, 0x21, 0x89, 0x7a, 0x0e, 0xf1, 0xf8, 0xbf, //0x0000b360 .quad -4613672773753429596 - 0x9f, 0x44, 0xed, 0x81, 0x12, 0x8f, 0x81, 0x82, //0x0000b368 .quad -9042789267131251553 - 0x0d, 0x6a, 0x2b, 0x19, 0x52, 0x2d, 0xf7, 0xaf, //0x0000b370 .quad -5767090967191786995 - 0xc7, 0x95, 0x68, 0x22, 0xd7, 0xf2, 0x21, 0xa3, //0x0000b378 .quad -6691800565486676537 - 0x90, 0x44, 0x76, 0x9f, 0xa6, 0xf8, 0xf4, 0x9b, //0x0000b380 .quad -7208863708989733744 - 0x39, 0xbb, 0x02, 0xeb, 0x8c, 0x6f, 0xea, 0xcb, //0x0000b388 .quad -3753064688430957767 - 0xb4, 0xd5, 0x53, 0x47, 0xd0, 0x36, 0xf2, 0x02, //0x0000b390 .quad 212292400617608628 - 0x08, 0x6a, 0xc3, 0x25, 0x70, 0x0b, 0xe5, 0xfe, //0x0000b398 .quad -79644842111309304 - 0x90, 0x65, 0x94, 0x2c, 0x42, 0x62, 0xd7, 0x01, //0x0000b3a0 .quad 132682750386005392 - 0x45, 0x22, 0x9a, 0x17, 0x26, 0x27, 0x4f, 0x9f, //0x0000b3a8 .quad -6967307053960650171 - 0xf5, 0x7e, 0xb9, 0xb7, 0xd2, 0x3a, 0x4d, 0x42, //0x0000b3b0 .quad 4777539456409894645 - 0xd6, 0xaa, 0x80, 0x9d, 0xef, 0xf0, 0x22, 0xc7, //0x0000b3b8 .quad -4097447799023424810 - 0xb2, 0xde, 0xa7, 0x65, 0x87, 0x89, 0xe0, 0xd2, //0x0000b3c0 .quad -3251447716342407502 - 0x8b, 0xd5, 0xe0, 0x84, 0x2b, 0xad, 0xeb, 0xf8, //0x0000b3c8 .quad -510123730351893109 - 0x2f, 0xeb, 0x88, 0x9f, 0xf4, 0x55, 0xcc, 0x63, //0x0000b3d0 .quad 7191217214140771119 - 0x77, 0x85, 0x0c, 0x33, 0x3b, 0x4c, 0x93, 0x9b, //0x0000b3d8 .quad -7236356359111015049 - 0xfb, 0x25, 0x6b, 0xc7, 0x71, 0x6b, 0xbf, 0x3c, //0x0000b3e0 .quad 4377335499248575995 - 0xd5, 0xa6, 0xcf, 0xff, 0x49, 0x1f, 0x78, 0xc2, //0x0000b3e8 .quad -4433759430461380907 - 0x7a, 0xef, 0x45, 0x39, 0x4e, 0x46, 0xef, 0x8b, //0x0000b3f0 .quad -8363388681221443718 - 0x8a, 0x90, 0xc3, 0x7f, 0x1c, 0x27, 0x16, 0xf3, //0x0000b3f8 .quad -930513269649338230 - 0xac, 0xb5, 0xcb, 0xe3, 0xf0, 0x8b, 0x75, 0x97, //0x0000b400 .quad -7532960934977096276 - 0x56, 0x3a, 0xda, 0xcf, 0x71, 0xd8, 0xed, 0x97, //0x0000b408 .quad -7499099821171918250 - 0x17, 0xa3, 0xbe, 0x1c, 0xed, 0xee, 0x52, 0x3d, //0x0000b410 .quad 4418856886560793367 - 0xec, 0xc8, 0xd0, 0x43, 0x8e, 0x4e, 0xe9, 0xbd, //0x0000b418 .quad -4762188758037509908 - 0xdd, 0x4b, 0xee, 0x63, 0xa8, 0xaa, 0xa7, 0x4c, //0x0000b420 .quad 5523571108200991709 - 0x27, 0xfb, 0xc4, 0xd4, 0x31, 0xa2, 0x63, 0xed, //0x0000b428 .quad -1341049929119499481 - 0x6a, 0xef, 0x74, 0x3e, 0xa9, 0xca, 0xe8, 0x8f, //0x0000b430 .quad -8076983103442849942 - 0xf8, 0x1c, 0xfb, 0x24, 0x5f, 0x45, 0x5e, 0x94, //0x0000b438 .quad -7755685233340769032 - 0x44, 0x2b, 0x12, 0x8e, 0x53, 0xfd, 0xe2, 0xb3, //0x0000b440 .quad -5484542860876174524 - 0x36, 0xe4, 0x39, 0xee, 0xb6, 0xd6, 0x75, 0xb9, //0x0000b448 .quad -5082920523248573386 - 0x16, 0xb6, 0x96, 0x71, 0xa8, 0xbc, 0xdb, 0x60, //0x0000b450 .quad 6979379479186945558 - 0x44, 0x5d, 0xc8, 0xa9, 0x64, 0x4c, 0xd3, 0xe7, //0x0000b458 .quad -1741964635633328828 - 0xcd, 0x31, 0xfe, 0x46, 0xe9, 0x55, 0x89, 0xbc, //0x0000b460 .quad -4861259862362934835 - 0x4a, 0x3a, 0x1d, 0xea, 0xbe, 0x0f, 0xe4, 0x90, //0x0000b468 .quad -8006256924911912374 - 0x41, 0xbe, 0xbd, 0x98, 0x63, 0xab, 0xab, 0x6b, //0x0000b470 .quad 7758483227328495169 - 0xdd, 0x88, 0xa4, 0xa4, 0xae, 0x13, 0x1d, 0xb5, //0x0000b478 .quad -5396135137712502563 - 0xd1, 0x2d, 0xed, 0x7e, 0x3c, 0x96, 0x96, 0xc6, //0x0000b480 .quad -4136954021121544751 - 0x14, 0xab, 0xcd, 0x4d, 0x9a, 0x58, 0x64, 0xe2, //0x0000b488 .quad -2133482903713240300 - 0xa2, 0x3c, 0x54, 0xcf, 0xe5, 0x1d, 0x1e, 0xfc, //0x0000b490 .quad -279753253987271518 - 0xec, 0x8a, 0xa0, 0x70, 0x60, 0xb7, 0x7e, 0x8d, //0x0000b498 .quad -8250955842461857044 - 0xcb, 0x4b, 0x29, 0x43, 0x5f, 0xa5, 0x25, 0x3b, //0x0000b4a0 .quad 4261994450943298507 - 0xa8, 0xad, 0xc8, 0x8c, 0x38, 0x65, 0xde, 0xb0, //0x0000b4a8 .quad -5702008784649933400 - 0xbe, 0x9e, 0xf3, 0x13, 0xb7, 0x0e, 0xef, 0x49, //0x0000b4b0 .quad 5327493063679123134 - 0x12, 0xd9, 0xfa, 0xaf, 0x86, 0xfe, 0x15, 0xdd, //0x0000b4b8 .quad -2515824962385028846 - 0x37, 0x43, 0x78, 0x6c, 0x32, 0x69, 0x35, 0x6e, //0x0000b4c0 .quad 7941369183226839863 - 0xab, 0xc7, 0xfc, 0x2d, 0x14, 0xbf, 0x2d, 0x8a, //0x0000b4c8 .quad -8489919629131724885 - 0x04, 0x54, 0x96, 0x07, 0x7f, 0xc3, 0xc2, 0x49, //0x0000b4d0 .quad 5315025460606161924 - 0x96, 0xf9, 0x7b, 0x39, 0xd9, 0x2e, 0xb9, 0xac, //0x0000b4d8 .quad -6000713517987268202 - 0x06, 0xe9, 0x7b, 0xc9, 0x5e, 0x74, 0x33, 0xdc, //0x0000b4e0 .quad -2579590211097073402 - 0xfb, 0xf7, 0xda, 0x87, 0x8f, 0x7a, 0xe7, 0xd7, //0x0000b4e8 .quad -2889205879056697349 - 0xa3, 0x71, 0xed, 0x3d, 0xbb, 0x28, 0xa0, 0x69, //0x0000b4f0 .quad 7611128154919104931 - 0xfd, 0xda, 0xe8, 0xb4, 0x99, 0xac, 0xf0, 0x86, //0x0000b4f8 .quad -8723282702051517699 - 0x0c, 0xce, 0x68, 0x0d, 0xea, 0x32, 0x08, 0xc4, //0x0000b500 .quad -4321147861633282548 - 0xbc, 0x11, 0x23, 0x22, 0xc0, 0xd7, 0xac, 0xa8, //0x0000b508 .quad -6292417359137009220 - 0x90, 0x01, 0xc3, 0x90, 0xa4, 0x3f, 0x0a, 0xf5, //0x0000b510 .quad -789748808614215280 - 0x2b, 0xd6, 0xab, 0x2a, 0xb0, 0x0d, 0xd8, 0xd2, //0x0000b518 .quad -3253835680493873621 - 0xfa, 0xe0, 0x79, 0xda, 0xc6, 0x67, 0x26, 0x79, //0x0000b520 .quad 8729779031470891258 - 0xdb, 0x65, 0xab, 0x1a, 0x8e, 0x08, 0xc7, 0x83, //0x0000b528 .quad -8951176327949752869 - 0x38, 0x59, 0x18, 0x91, 0xb8, 0x01, 0x70, 0x57, //0x0000b530 .quad 6300537770911226168 - 0x52, 0x3f, 0x56, 0xa1, 0xb1, 0xca, 0xb8, 0xa4, //0x0000b538 .quad -6577284391509803182 - 0x86, 0x6f, 0x5e, 0xb5, 0x26, 0x02, 0x4c, 0xed, //0x0000b540 .quad -1347699823215743098 - 0x26, 0xcf, 0xab, 0x09, 0x5e, 0xfd, 0xe6, 0xcd, //0x0000b548 .quad -3609919470959866074 - 0xb4, 0x05, 0x5b, 0x31, 0x58, 0x81, 0x4f, 0x54, //0x0000b550 .quad 6075216638131242420 - 0x78, 0x61, 0x0b, 0xc6, 0x5a, 0x5e, 0xb0, 0x80, //0x0000b558 .quad -9173728696990998152 - 0x21, 0xc7, 0xb1, 0x3d, 0xae, 0x61, 0x63, 0x69, //0x0000b560 .quad 7594020797664053025 - 0xd6, 0x39, 0x8e, 0x77, 0xf1, 0x75, 0xdc, 0xa0, //0x0000b568 .quad -6855474852811359786 - 0xe9, 0x38, 0x1e, 0xcd, 0x19, 0x3a, 0xbc, 0x03, //0x0000b570 .quad 269153960225290473 - 0x4c, 0xc8, 0x71, 0xd5, 0x6d, 0x93, 0x13, 0xc9, //0x0000b578 .quad -3957657547586811828 - 0x23, 0xc7, 0x65, 0x40, 0xa0, 0x48, 0xab, 0x04, //0x0000b580 .quad 336442450281613091 - 0x5f, 0x3a, 0xce, 0x4a, 0x49, 0x78, 0x58, 0xfb, //0x0000b588 .quad -335385916056126881 - 0x76, 0x9c, 0x3f, 0x28, 0x64, 0x0d, 0xeb, 0x62, //0x0000b590 .quad 7127805559067090038 - 0x7b, 0xe4, 0xc0, 0xce, 0x2d, 0x4b, 0x17, 0x9d, //0x0000b598 .quad -7127145225176161157 - 0x94, 0x83, 0x4f, 0x32, 0xbd, 0xd0, 0xa5, 0x3b, //0x0000b5a0 .quad 4298070930406474644 - 0x9a, 0x1d, 0x71, 0x42, 0xf9, 0x1d, 0x5d, 0xc4, //0x0000b5a8 .quad -4297245513042813542 - 0x79, 0x64, 0xe3, 0x7e, 0xec, 0x44, 0x8f, 0xca, //0x0000b5b0 .quad -3850783373846682503 - 0x00, 0x65, 0x0d, 0x93, 0x77, 0x65, 0x74, 0xf5, //0x0000b5b8 .quad -759870872876129024 - 0xcb, 0x1e, 0x4e, 0xcf, 0x13, 0x8b, 0x99, 0x7e, //0x0000b5c0 .quad 9122475437414293195 - 0x20, 0x5f, 0xe8, 0xbb, 0x6a, 0xbf, 0x68, 0x99, //0x0000b5c8 .quad -7392448323188662496 - 0x7e, 0xa6, 0x21, 0xc3, 0xd8, 0xed, 0x3f, 0x9e, //0x0000b5d0 .quad -7043649776941685122 - 0xe8, 0x76, 0xe2, 0x6a, 0x45, 0xef, 0xc2, 0xbf, //0x0000b5d8 .quad -4628874385558440216 - 0x1e, 0x10, 0xea, 0xf3, 0x4e, 0xe9, 0xcf, 0xc5, //0x0000b5e0 .quad -4192876202749718498 - 0xa2, 0x14, 0x9b, 0xc5, 0x16, 0xab, 0xb3, 0xef, //0x0000b5e8 .quad -1174406963520662366 - 0x12, 0x4a, 0x72, 0x58, 0xd1, 0xf1, 0xa1, 0xbb, //0x0000b5f0 .quad -4926390635932268014 - 0xe5, 0xec, 0x80, 0x3b, 0xee, 0x4a, 0xd0, 0x95, //0x0000b5f8 .quad -7651533379841495835 - 0x97, 0xdc, 0x8e, 0xae, 0x45, 0x6e, 0x8a, 0x2a, //0x0000b600 .quad 3065383741939440791 - 0x1f, 0x28, 0x61, 0xca, 0xa9, 0x5d, 0x44, 0xbb, //0x0000b608 .quad -4952730706374481889 - 0xbd, 0x93, 0x32, 0x1a, 0xd7, 0x09, 0x2d, 0xf5, //0x0000b610 .quad -779956341003086915 - 0x26, 0x72, 0xf9, 0x3c, 0x14, 0x75, 0x15, 0xea, //0x0000b618 .quad -1579227364540714458 - 0x56, 0x9c, 0x5f, 0x70, 0x26, 0x26, 0x3c, 0x59, //0x0000b620 .quad 6430056314514152534 - 0x58, 0xe7, 0x1b, 0xa6, 0x2c, 0x69, 0x4d, 0x92, //0x0000b628 .quad -7904546130479028392 - 0x6c, 0x83, 0x77, 0x0c, 0xb0, 0x2f, 0x8b, 0x6f, //0x0000b630 .quad 8037570393142690668 - 0x2e, 0xe1, 0xa2, 0xcf, 0x77, 0xc3, 0xe0, 0xb6, //0x0000b638 .quad -5268996644671397586 - 0x47, 0x64, 0x95, 0x0f, 0x9c, 0xfb, 0x6d, 0x0b, //0x0000b640 .quad 823590954573587527 - 0x7a, 0x99, 0x8b, 0xc3, 0x55, 0xf4, 0x98, 0xe4, //0x0000b648 .quad -1974559787411859078 - 0xac, 0x5e, 0xbd, 0x89, 0x41, 0xbd, 0x24, 0x47, //0x0000b650 .quad 5126430365035880108 - 0xec, 0x3f, 0x37, 0x9a, 0xb5, 0x98, 0xdf, 0x8e, //0x0000b658 .quad -8151628894773493780 - 0x57, 0xb6, 0x2c, 0xec, 0x91, 0xec, 0xed, 0x58, //0x0000b660 .quad 6408037956294850135 - 0xe7, 0x0f, 0xc5, 0x00, 0xe3, 0x7e, 0x97, 0xb2, //0x0000b668 .quad -5577850100039479321 - 0xed, 0xe3, 0x37, 0x67, 0xb6, 0x67, 0x29, 0x2f, //0x0000b670 .quad 3398361426941174765 - 0xe1, 0x53, 0xf6, 0xc0, 0x9b, 0x5e, 0x3d, 0xdf, //0x0000b678 .quad -2360626606621961247 - 0x74, 0xee, 0x82, 0x00, 0xd2, 0xe0, 0x79, 0xbd, //0x0000b680 .quad -4793553135802847628 - 0x6c, 0xf4, 0x99, 0x58, 0x21, 0x5b, 0x86, 0x8b, //0x0000b688 .quad -8392920656779807636 - 0x11, 0xaa, 0xa3, 0x80, 0x06, 0x59, 0xd8, 0xec, //0x0000b690 .quad -1380255401326171631 - 0x87, 0x71, 0xc0, 0xae, 0xe9, 0xf1, 0x67, 0xae, //0x0000b698 .quad -5879464802547371641 - 0x95, 0x94, 0xcc, 0x20, 0x48, 0x6f, 0x0e, 0xe8, //0x0000b6a0 .quad -1725319251657714539 - 0xe9, 0x8d, 0x70, 0x1a, 0x64, 0xee, 0x01, 0xda, //0x0000b6a8 .quad -2737644984756826647 - 0xdd, 0xdc, 0x7f, 0x14, 0x8d, 0x05, 0x09, 0x31, //0x0000b6b0 .quad 3533361486141316317 - 0xb2, 0x58, 0x86, 0x90, 0xfe, 0x34, 0x41, 0x88, //0x0000b6b8 .quad -8628557143114098510 - 0x15, 0xd4, 0x9f, 0x59, 0xf0, 0x46, 0x4b, 0xbd, //0x0000b6c0 .quad -4806670179178130411 - 0xde, 0xee, 0xa7, 0x34, 0x3e, 0x82, 0x51, 0xaa, //0x0000b6c8 .quad -6174010410465235234 - 0x1a, 0xc9, 0x07, 0x70, 0xac, 0x18, 0x9e, 0x6c, //0x0000b6d0 .quad 7826720331309500698 - 0x96, 0xea, 0xd1, 0xc1, 0xcd, 0xe2, 0xe5, 0xd4, //0x0000b6d8 .quad -3105826994654156138 - 0xb0, 0xdd, 0x04, 0xc6, 0x6b, 0xcf, 0xe2, 0x03, //0x0000b6e0 .quad 280014188641050032 - 0x9e, 0x32, 0x23, 0x99, 0xc0, 0xad, 0x0f, 0x85, //0x0000b6e8 .quad -8858670899299929442 - 0x1c, 0x15, 0x86, 0xb7, 0x46, 0x83, 0xdb, 0x84, //0x0000b6f0 .quad -8873354301053463268 - 0x45, 0xff, 0x6b, 0xbf, 0x30, 0x99, 0x53, 0xa6, //0x0000b6f8 .quad -6461652605697523899 - 0x63, 0x9a, 0x67, 0x65, 0x18, 0x64, 0x12, 0xe6, //0x0000b700 .quad -1868320839462053277 - 0x16, 0xff, 0x46, 0xef, 0x7c, 0x7f, 0xe8, 0xcf, //0x0000b708 .quad -3465379738694516970 - 0x7e, 0xc0, 0x60, 0x3f, 0x8f, 0x7e, 0xcb, 0x4f, //0x0000b710 .quad 5749828502977298558 - 0x6e, 0x5f, 0x8c, 0x15, 0xae, 0x4f, 0xf1, 0x81, //0x0000b718 .quad -9083391364325154962 - 0x9d, 0xf0, 0x38, 0x0f, 0x33, 0x5e, 0xbe, 0xe3, //0x0000b720 .quad -2036086408133152611 - 0x49, 0x77, 0xef, 0x9a, 0x99, 0xa3, 0x6d, 0xa2, //0x0000b728 .quad -6742553186979055799 - 0xc5, 0x2c, 0x07, 0xd3, 0xbf, 0xf5, 0xad, 0x5c, //0x0000b730 .quad 6678264026688335045 - 0x1c, 0x55, 0xab, 0x01, 0x80, 0x0c, 0x09, 0xcb, //0x0000b738 .quad -3816505465296431844 - 0xf6, 0xf7, 0xc8, 0xc7, 0x2f, 0x73, 0xd9, 0x73, //0x0000b740 .quad 8347830033360418806 - 0x63, 0x2a, 0x16, 0x02, 0xa0, 0x4f, 0xcb, 0xfd, //0x0000b748 .quad -158945813193151901 - 0xfa, 0x9a, 0xdd, 0xdc, 0xfd, 0xe7, 0x67, 0x28, //0x0000b750 .quad 2911550761636567802 - 0x7e, 0xda, 0x4d, 0x01, 0xc4, 0x11, 0x9f, 0x9e, //0x0000b758 .quad -7016870160886801794 - 0xb8, 0x01, 0x15, 0x54, 0xfd, 0xe1, 0x81, 0xb2, //0x0000b760 .quad -5583933584809066056 - 0x1d, 0x51, 0xa1, 0x01, 0x35, 0xd6, 0x46, 0xc6, //0x0000b768 .quad -4159401682681114339 - 0x26, 0x42, 0x1a, 0xa9, 0x7c, 0x5a, 0x22, 0x1f, //0x0000b770 .quad 2243455055843443238 - 0x65, 0xa5, 0x09, 0x42, 0xc2, 0x8b, 0xd8, 0xf7, //0x0000b778 .quad -587566084924005019 - 0x58, 0x69, 0xb0, 0xe9, 0x8d, 0x78, 0x75, 0x33, //0x0000b780 .quad 3708002419115845976 - 0x5f, 0x07, 0x46, 0x69, 0x59, 0x57, 0xe7, 0x9a, //0x0000b788 .quad -7284757830718584993 - 0xae, 0x83, 0x1c, 0x64, 0xb1, 0xd6, 0x52, 0x00, //0x0000b790 .quad 23317005467419566 - 0x37, 0x89, 0x97, 0xc3, 0x2f, 0x2d, 0xa1, 0xc1, //0x0000b798 .quad -4494261269970843337 - 0x9a, 0xa4, 0x23, 0xbd, 0x5d, 0x8c, 0x67, 0xc0, //0x0000b7a0 .quad -4582539761593113446 - 0x84, 0x6b, 0x7d, 0xb4, 0x7b, 0x78, 0x09, 0xf2, //0x0000b7a8 .quad -1006140569036166268 - 0xe0, 0x46, 0x36, 0x96, 0xba, 0xb7, 0x40, 0xf8, //0x0000b7b0 .quad -558244341782001952 - 0x32, 0x63, 0xce, 0x50, 0x4d, 0xeb, 0x45, 0x97, //0x0000b7b8 .quad -7546366883288685774 - 0x98, 0xd8, 0xc3, 0x3b, 0xa9, 0xe5, 0x50, 0xb6, //0x0000b7c0 .quad -5309491445654890344 - 0xff, 0xfb, 0x01, 0xa5, 0x20, 0x66, 0x17, 0xbd, //0x0000b7c8 .quad -4821272585683469313 - 0xbe, 0xce, 0xb4, 0x8a, 0x13, 0x1f, 0xe5, 0xa3, //0x0000b7d0 .quad -6636864307068612930 - 0xff, 0x7a, 0x42, 0xce, 0xa8, 0x3f, 0x5d, 0xec, //0x0000b7d8 .quad -1414904713676948737 - 0x37, 0x01, 0xb1, 0x36, 0x6c, 0x33, 0x6f, 0xc6, //0x0000b7e0 .quad -4148040191917883081 - 0xdf, 0x8c, 0xe9, 0x80, 0xc9, 0x47, 0xba, 0x93, //0x0000b7e8 .quad -7801844473689174817 - 0x84, 0x41, 0x5d, 0x44, 0x47, 0x00, 0x0b, 0xb8, //0x0000b7f0 .quad -5185050239897353852 - 0x17, 0xf0, 0x23, 0xe1, 0xbb, 0xd9, 0xa8, 0xb8, //0x0000b7f8 .quad -5140619573684080617 - 0xe5, 0x91, 0x74, 0x15, 0x59, 0xc0, 0x0d, 0xa6, //0x0000b800 .quad -6481312799871692315 - 0x1d, 0xec, 0x6c, 0xd9, 0x2a, 0x10, 0xd3, 0xe6, //0x0000b808 .quad -1814088448677712867 - 0x2f, 0xdb, 0x68, 0xad, 0x37, 0x98, 0xc8, 0x87, //0x0000b810 .quad -8662506518347195601 - 0x92, 0x13, 0xe4, 0xc7, 0x1a, 0xea, 0x43, 0x90, //0x0000b818 .quad -8051334308064652398 - 0xfb, 0x11, 0xc3, 0x98, 0x45, 0xbe, 0xba, 0x29, //0x0000b820 .quad 3006924907348169211 - 0x77, 0x18, 0xdd, 0x79, 0xa1, 0xe4, 0x54, 0xb4, //0x0000b828 .quad -5452481866653427593 - 0x7a, 0xd6, 0xf3, 0xfe, 0xd6, 0x6d, 0x29, 0xf4, //0x0000b830 .quad -853029884242176390 - 0x94, 0x5e, 0x54, 0xd8, 0xc9, 0x1d, 0x6a, 0xe1, //0x0000b838 .quad -2203916314889396588 - 0x0c, 0x66, 0x58, 0x5f, 0xa6, 0xe4, 0x99, 0x18, //0x0000b840 .quad 1772699331562333708 - 0x1d, 0xbb, 0x34, 0x27, 0x9e, 0x52, 0xe2, 0x8c, //0x0000b848 .quad -8294976724446954723 - 0x8f, 0x7f, 0x2e, 0xf7, 0xcf, 0x5d, 0xc0, 0x5e, //0x0000b850 .quad 6827560182880305039 - 0xe4, 0xe9, 0x01, 0xb1, 0x45, 0xe7, 0x1a, 0xb0, //0x0000b858 .quad -5757034887131305500 - 0x73, 0x1f, 0xfa, 0xf4, 0x43, 0x75, 0x70, 0x76, //0x0000b860 .quad 8534450228600381299 - 0x5d, 0x64, 0x42, 0x1d, 0x17, 0xa1, 0x21, 0xdc, //0x0000b868 .quad -2584607590486743971 - 0xa8, 0x53, 0x1c, 0x79, 0x4a, 0x49, 0x06, 0x6a, //0x0000b870 .quad 7639874402088932264 - 0xba, 0x7e, 0x49, 0x72, 0xae, 0x04, 0x95, 0x89, //0x0000b878 .quad -8532908771695296838 - 0x92, 0x68, 0x63, 0x17, 0x9d, 0xdb, 0x87, 0x04, //0x0000b880 .quad 326470965756389522 - 0x69, 0xde, 0xdb, 0x0e, 0xda, 0x45, 0xfa, 0xab, //0x0000b888 .quad -6054449946191733143 - 0xb6, 0x42, 0x3c, 0x5d, 0x84, 0xd2, 0xa9, 0x45, //0x0000b890 .quad 5019774725622874806 - 0x03, 0xd6, 0x92, 0x92, 0x50, 0xd7, 0xf8, 0xd6, //0x0000b898 .quad -2956376414312278525 - 0xb2, 0xa9, 0x45, 0xba, 0x92, 0x23, 0x8a, 0x0b, //0x0000b8a0 .quad 831516194300602802 - 0xc2, 0xc5, 0x9b, 0x5b, 0x92, 0x86, 0x5b, 0x86, //0x0000b8a8 .quad -8765264286586255934 - 0x1e, 0x14, 0xd7, 0x68, 0x77, 0xac, 0x6c, 0x8e, //0x0000b8b0 .quad -8183976793979022306 - 0x32, 0xb7, 0x82, 0xf2, 0x36, 0x68, 0xf2, 0xa7, //0x0000b8b8 .quad -6344894339805432014 - 0x26, 0xd9, 0x0c, 0x43, 0x95, 0xd7, 0x07, 0x32, //0x0000b8c0 .quad 3605087062808385830 - 0xff, 0x64, 0x23, 0xaf, 0x44, 0x02, 0xef, 0xd1, //0x0000b8c8 .quad -3319431906329402113 - 0xb8, 0x07, 0xe8, 0x49, 0xbd, 0xe6, 0x44, 0x7f, //0x0000b8d0 .quad 9170708441896323000 - 0x1f, 0x1f, 0x76, 0xed, 0x6a, 0x61, 0x35, 0x83, //0x0000b8d8 .quad -8992173969096958177 - 0xa6, 0x09, 0x62, 0x9c, 0x6c, 0x20, 0x16, 0x5f, //0x0000b8e0 .quad 6851699533943015846 - 0xe7, 0xa6, 0xd3, 0xa8, 0xc5, 0xb9, 0x02, 0xa4, //0x0000b8e8 .quad -6628531442943809817 - 0x0f, 0x8c, 0x7a, 0xc3, 0x87, 0xa8, 0xdb, 0x36, //0x0000b8f0 .quad 3952938399001381903 - 0xa1, 0x90, 0x08, 0x13, 0x37, 0x68, 0x03, 0xcd, //0x0000b8f8 .quad -3673978285252374367 - 0x89, 0x97, 0x2c, 0xda, 0x54, 0x49, 0x49, 0xc2, //0x0000b900 .quad -4446942528265218167 - 0x64, 0x5a, 0xe5, 0x6b, 0x22, 0x21, 0x22, 0x80, //0x0000b908 .quad -9213765455923815836 - 0x6c, 0xbd, 0xb7, 0x10, 0xaa, 0x9b, 0xdb, 0xf2, //0x0000b910 .quad -946992141904134804 - 0xfd, 0xb0, 0xde, 0x06, 0x6b, 0xa9, 0x2a, 0xa0, //0x0000b918 .quad -6905520801477381891 - 0xc7, 0xac, 0xe5, 0x94, 0x94, 0x82, 0x92, 0x6f, //0x0000b920 .quad 8039631859474607303 - 0x3d, 0x5d, 0x96, 0xc8, 0xc5, 0x53, 0x35, 0xc8, //0x0000b928 .quad -4020214983419339459 - 0xf9, 0x17, 0x1f, 0xba, 0x39, 0x23, 0x77, 0xcb, //0x0000b930 .quad -3785518230938904583 - 0x8c, 0xf4, 0xbb, 0x3a, 0xb7, 0xa8, 0x42, 0xfa, //0x0000b938 .quad -413582710846786420 - 0xfb, 0x6e, 0x53, 0x14, 0x04, 0x76, 0x2a, 0xff, //0x0000b940 .quad -60105885123121413 - 0xd7, 0x78, 0xb5, 0x84, 0x72, 0xa9, 0x69, 0x9c, //0x0000b948 .quad -7176018221920323369 - 0xba, 0x4a, 0x68, 0x19, 0x85, 0x13, 0xf5, 0xfe, //0x0000b950 .quad -75132356403901766 - 0x0d, 0xd7, 0xe2, 0x25, 0xcf, 0x13, 0x84, 0xc3, //0x0000b958 .quad -4358336758973016307 - 0x69, 0x5d, 0xc2, 0x5f, 0x66, 0x58, 0xb2, 0x7e, //0x0000b960 .quad 9129456591349898601 - 0xd1, 0x8c, 0x5b, 0xef, 0xc2, 0x18, 0x65, 0xf4, //0x0000b968 .quad -836234930288882479 - 0x61, 0x7a, 0xd9, 0xfb, 0x3f, 0x77, 0x2f, 0xef, //0x0000b970 .quad -1211618658047395231 - 0x02, 0x38, 0x99, 0xd5, 0x79, 0x2f, 0xbf, 0x98, //0x0000b978 .quad -7440175859071633406 - 0xfa, 0xd8, 0xcf, 0xfa, 0x0f, 0x55, 0xfb, 0xaa, //0x0000b980 .quad -6126209340986631942 - 0x03, 0x86, 0xff, 0x4a, 0x58, 0xfb, 0xee, 0xbe, //0x0000b988 .quad -4688533805412153853 - 0x38, 0xcf, 0x83, 0xf9, 0x53, 0x2a, 0xba, 0x95, //0x0000b990 .quad -7657761676233289928 - 0x84, 0x67, 0xbf, 0x5d, 0x2e, 0xba, 0xaa, 0xee, //0x0000b998 .quad -1248981238337804412 - 0x83, 0x61, 0xf2, 0x7b, 0x74, 0x5a, 0x94, 0xdd, //0x0000b9a0 .quad -2480258038432112253 - 0xb2, 0xa0, 0x97, 0xfa, 0x5c, 0xb4, 0x2a, 0x95, //0x0000b9a8 .quad -7698142301602209614 - 0xe4, 0xf9, 0xee, 0x9a, 0x11, 0x71, 0xf9, 0x94, //0x0000b9b0 .quad -7712008566467528220 - 0xdf, 0x88, 0x3d, 0x39, 0x74, 0x61, 0x75, 0xba, //0x0000b9b8 .quad -5010991858575374113 - 0x5d, 0xb8, 0xaa, 0x01, 0x56, 0xcd, 0x37, 0x7a, //0x0000b9c0 .quad 8806733365625141341 - 0x17, 0xeb, 0x8c, 0x47, 0xd1, 0xb9, 0x12, 0xe9, //0x0000b9c8 .quad -1652053804791829737 - 0x3a, 0xb3, 0x0a, 0xc1, 0x55, 0xe0, 0x62, 0xac, //0x0000b9d0 .quad -6025006692552756422 - 0xee, 0x12, 0xb8, 0xcc, 0x22, 0xb4, 0xab, 0x91, //0x0000b9d8 .quad -7950062655635975442 - 0x09, 0x60, 0x4d, 0x31, 0x6b, 0x98, 0x7b, 0x57, //0x0000b9e0 .quad 6303799689591218185 - 0xaa, 0x17, 0xe6, 0x7f, 0x2b, 0xa1, 0x16, 0xb6, //0x0000b9e8 .quad -5325892301117581398 - 0x0b, 0xb8, 0xa0, 0xfd, 0x85, 0x7e, 0x5a, 0xed, //0x0000b9f0 .quad -1343622424865753077 - 0x94, 0x9d, 0xdf, 0x5f, 0x76, 0x49, 0x9c, 0xe3, //0x0000b9f8 .quad -2045679357969588844 - 0x07, 0x73, 0x84, 0xbe, 0x13, 0x8f, 0x58, 0x14, //0x0000ba00 .quad 1466078993672598279 - 0x7d, 0xc2, 0xeb, 0xfb, 0xe9, 0xad, 0x41, 0x8e, //0x0000ba08 .quad -8196078626372074883 - 0xc8, 0x8f, 0x25, 0xae, 0xd8, 0xb2, 0x6e, 0x59, //0x0000ba10 .quad 6444284760518135752 - 0x1c, 0xb3, 0xe6, 0x7a, 0x64, 0x19, 0xd2, 0xb1, //0x0000ba18 .quad -5633412264537705700 - 0xbb, 0xf3, 0xae, 0xd9, 0x8e, 0x5f, 0xca, 0x6f, //0x0000ba20 .quad 8055355950647669691 - 0xe3, 0x5f, 0xa0, 0x99, 0xbd, 0x9f, 0x46, 0xde, //0x0000ba28 .quad -2430079312244744221 - 0x54, 0x58, 0x0d, 0x48, 0xb9, 0x7b, 0xde, 0x25, //0x0000ba30 .quad 2728754459941099604 - 0xee, 0x3b, 0x04, 0x80, 0xd6, 0x23, 0xec, 0x8a, //0x0000ba38 .quad -8436328597794046994 - 0x6a, 0xae, 0x10, 0x9a, 0xa7, 0x1a, 0x56, 0xaf, //0x0000ba40 .quad -5812428961928401302 - 0xe9, 0x4a, 0x05, 0x20, 0xcc, 0x2c, 0xa7, 0xad, //0x0000ba48 .quad -5933724728815170839 - 0x04, 0xda, 0x94, 0x80, 0x51, 0xa1, 0x2b, 0x1b, //0x0000ba50 .quad 1957835834444274180 - 0xa4, 0x9d, 0x06, 0x28, 0xff, 0xf7, 0x10, 0xd9, //0x0000ba58 .quad -2805469892591575644 - 0x42, 0x08, 0x5d, 0xf0, 0xd2, 0x44, 0xfb, 0x90, //0x0000ba60 .quad -7999724640327104446 - 0x86, 0x22, 0x04, 0x79, 0xff, 0x9a, 0xaa, 0x87, //0x0000ba68 .quad -8670947710510816634 - 0x53, 0x4a, 0x74, 0xac, 0x07, 0x16, 0x3a, 0x35, //0x0000ba70 .quad 3835402254873283155 - 0x28, 0x2b, 0x45, 0x57, 0xbf, 0x41, 0x95, 0xa9, //0x0000ba78 .quad -6226998619711132888 - 0xe8, 0x5c, 0x91, 0x97, 0x89, 0x9b, 0x88, 0x42, //0x0000ba80 .quad 4794252818591603944 - 0xf2, 0x75, 0x16, 0x2d, 0x2f, 0x92, 0xfa, 0xd3, //0x0000ba88 .quad -3172062256211528206 - 0x11, 0xda, 0xba, 0xfe, 0x35, 0x61, 0x95, 0x69, //0x0000ba90 .quad 7608094030047140369 - 0xb7, 0x09, 0x2e, 0x7c, 0x5d, 0x9b, 0x7c, 0x84, //0x0000ba98 .quad -8900067937773286985 - 0x95, 0x90, 0x69, 0x7e, 0x83, 0xb9, 0xfa, 0x43, //0x0000baa0 .quad 4898431519131537557 - 0x25, 0x8c, 0x39, 0xdb, 0x34, 0xc2, 0x9b, 0xa5, //0x0000baa8 .quad -6513398903789220827 - 0xbb, 0xf4, 0x03, 0x5e, 0xe4, 0x67, 0xf9, 0x94, //0x0000bab0 .quad -7712018656367741765 - 0x2e, 0xef, 0x07, 0x12, 0xc2, 0xb2, 0x02, 0xcf, //0x0000bab8 .quad -3530062611309138130 - 0xf5, 0x78, 0xc2, 0xba, 0xee, 0xe0, 0x1b, 0x1d, //0x0000bac0 .quad 2097517367411243253 - 0x7d, 0xf5, 0x44, 0x4b, 0xb9, 0xaf, 0x61, 0x81, //0x0000bac8 .quad -9123818159709293187 - 0x32, 0x17, 0x73, 0x69, 0x2a, 0xd9, 0x62, 0x64, //0x0000bad0 .quad 7233582727691441970 - 0xdc, 0x32, 0x16, 0x9e, 0xa7, 0x1b, 0xba, 0xa1, //0x0000bad8 .quad -6793086681209228580 - 0xfe, 0xdc, 0xcf, 0x03, 0x75, 0x8f, 0x7b, 0x7d, //0x0000bae0 .quad 9041978409614302462 - 0x93, 0xbf, 0x9b, 0x85, 0x91, 0xa2, 0x28, 0xca, //0x0000bae8 .quad -3879672333084147821 - 0x3e, 0xd4, 0xc3, 0x44, 0x52, 0x73, 0xda, 0x5c, //0x0000baf0 .quad 6690786993590490174 - 0x78, 0xaf, 0x02, 0xe7, 0x35, 0xcb, 0xb2, 0xfc, //0x0000baf8 .quad -237904397927796872 - 0xa7, 0x64, 0xfa, 0x6a, 0x13, 0x88, 0x08, 0x3a, //0x0000bb00 .quad 4181741870994056359 - 0xab, 0xad, 0x61, 0xb0, 0x01, 0xbf, 0xef, 0x9d, //0x0000bb08 .quad -7066219276345954901 - 0xd0, 0xfd, 0xb8, 0x45, 0x18, 0xaa, 0x8a, 0x08, //0x0000bb10 .quad 615491320315182544 - 0x16, 0x19, 0x7a, 0x1c, 0xc2, 0xae, 0x6b, 0xc5, //0x0000bb18 .quad -4221088077005055722 - 0x45, 0x3d, 0x27, 0x57, 0x9e, 0x54, 0xad, 0x8a, //0x0000bb20 .quad -8454007886460797627 - 0x5b, 0x9f, 0x98, 0xa3, 0x72, 0x9a, 0xc6, 0xf6, //0x0000bb28 .quad -664674077828931749 - 0x4b, 0x86, 0x78, 0xf6, 0xe2, 0x54, 0xac, 0x36, //0x0000bb30 .quad 3939617107816777291 - 0x99, 0x63, 0x3f, 0xa6, 0x87, 0x20, 0x3c, 0x9a, //0x0000bb38 .quad -7332950326284164199 - 0xdd, 0xa7, 0x16, 0xb4, 0x1b, 0x6a, 0x57, 0x84, //0x0000bb40 .quad -8910536670511192099 - 0x7f, 0x3c, 0xcf, 0x8f, 0xa9, 0x28, 0xcb, 0xc0, //0x0000bb48 .quad -4554501889427817345 - 0xd5, 0x51, 0x1c, 0xa1, 0xa2, 0x44, 0x6d, 0x65, //0x0000bb50 .quad 7308573235570561493 - 0x9f, 0x0b, 0xc3, 0xf3, 0xd3, 0xf2, 0xfd, 0xf0, //0x0000bb58 .quad -1081441343357383777 - 0x25, 0xb3, 0xb1, 0xa4, 0xe5, 0x4a, 0x64, 0x9f, //0x0000bb60 .quad -6961356773836868827 - 0x43, 0xe7, 0x59, 0x78, 0xc4, 0xb7, 0x9e, 0x96, //0x0000bb68 .quad -7593429867239446717 - 0xee, 0x1f, 0xde, 0x0d, 0x9f, 0x5d, 0x3d, 0x87, //0x0000bb70 .quad -8701695967296086034 - 0x14, 0x61, 0x70, 0x96, 0xb5, 0x65, 0x46, 0xbc, //0x0000bb78 .quad -4880101315621920492 - 0xea, 0xa7, 0x55, 0xd1, 0x06, 0xb5, 0x0c, 0xa9, //0x0000bb80 .quad -6265433940692719638 - 0x59, 0x79, 0x0c, 0xfc, 0x22, 0xff, 0x57, 0xeb, //0x0000bb88 .quad -1488440626100012711 - 0xf2, 0x88, 0xd5, 0x42, 0x24, 0xf1, 0xa7, 0x09, //0x0000bb90 .quad 695789805494438130 - 0xd8, 0xcb, 0x87, 0xdd, 0x75, 0xff, 0x16, 0x93, //0x0000bb98 .quad -7847804418953589800 - 0x2f, 0xeb, 0x8a, 0x53, 0x6d, 0xed, 0x11, 0x0c, //0x0000bba0 .quad 869737256868047663 - 0xce, 0xbe, 0xe9, 0x54, 0x53, 0xbf, 0xdc, 0xb7, //0x0000bba8 .quad -5198069505264599346 - 0xfa, 0xa5, 0x6d, 0xa8, 0xc8, 0x68, 0x16, 0x8f, //0x0000bbb0 .quad -8136200465769716230 - 0x81, 0x2e, 0x24, 0x2a, 0x28, 0xef, 0xd3, 0xe5, //0x0000bbb8 .quad -1885900863153361279 - 0xbc, 0x87, 0x44, 0x69, 0x7d, 0x01, 0x6e, 0xf9, //0x0000bbc0 .quad -473439272678684740 - 0x10, 0x9d, 0x56, 0x1a, 0x79, 0x75, 0xa4, 0x8f, //0x0000bbc8 .quad -8096217067111932656 - 0xac, 0xa9, 0x95, 0xc3, 0xdc, 0x81, 0xc9, 0x37, //0x0000bbd0 .quad 4019886927579031980 - 0x55, 0x44, 0xec, 0x60, 0xd7, 0x92, 0x8d, 0xb3, //0x0000bbd8 .quad -5508585315462527915 - 0x17, 0x14, 0x7b, 0xf4, 0x53, 0xe2, 0xbb, 0x85, //0x0000bbe0 .quad -8810199395808373737 - 0x6a, 0x55, 0x27, 0x39, 0x8d, 0xf7, 0x70, 0xe0, //0x0000bbe8 .quad -2274045625900771990 - 0x8e, 0xec, 0xcc, 0x78, 0x74, 0x6d, 0x95, 0x93, //0x0000bbf0 .quad -7812217631593927538 - 0x62, 0x95, 0xb8, 0x43, 0xb8, 0x9a, 0x46, 0x8c, //0x0000bbf8 .quad -8338807543829064350 - 0xb2, 0x27, 0x00, 0x97, 0xd1, 0xc8, 0x7a, 0x38, //0x0000bc00 .quad 4069786015789754290 - 0xbb, 0xba, 0xa6, 0x54, 0x66, 0x41, 0x58, 0xaf, //0x0000bc08 .quad -5811823411358942533 - 0x9e, 0x31, 0xc0, 0xfc, 0x05, 0x7b, 0x99, 0x06, //0x0000bc10 .quad 475546501309804958 - 0x6a, 0x69, 0xd0, 0xe9, 0xbf, 0x51, 0x2e, 0xdb, //0x0000bc18 .quad -2653093245771290262 - 0x03, 0x1f, 0xf8, 0xbd, 0xe3, 0xec, 0x1f, 0x44, //0x0000bc20 .quad 4908902581746016003 - 0xe2, 0x41, 0x22, 0xf2, 0x17, 0xf3, 0xfc, 0x88, //0x0000bc28 .quad -8575712306248138270 - 0xc3, 0x26, 0x76, 0xad, 0x1c, 0xe8, 0x27, 0xd5, //0x0000bc30 .quad -3087243809672255805 - 0x5a, 0xd2, 0xaa, 0xee, 0xdd, 0x2f, 0x3c, 0xab, //0x0000bc38 .quad -6107954364382784934 - 0x74, 0xb0, 0xd3, 0xd8, 0x23, 0xe2, 0x71, 0x8a, //0x0000bc40 .quad -8470740780517707660 - 0xf1, 0x86, 0x55, 0x6a, 0xd5, 0x3b, 0x0b, 0xd6, //0x0000bc48 .quad -3023256937051093263 - 0x49, 0x4e, 0x84, 0x67, 0x56, 0x2d, 0x87, 0xf6, //0x0000bc50 .quad -682526969396179383 - 0x56, 0x74, 0x75, 0x62, 0x65, 0x05, 0xc7, 0x85, //0x0000bc58 .quad -8807064613298015146 - 0xdb, 0x61, 0x65, 0x01, 0xac, 0xf8, 0x28, 0xb4, //0x0000bc60 .quad -5464844730172612133 - 0x6c, 0xd1, 0x12, 0xbb, 0xbe, 0xc6, 0x38, 0xa7, //0x0000bc68 .quad -6397144748195131028 - 0x52, 0xba, 0xbe, 0x01, 0xd7, 0x36, 0x33, 0xe1, //0x0000bc70 .quad -2219369894288377262 - 0xc7, 0x85, 0xd7, 0x69, 0x6e, 0xf8, 0x06, 0xd1, //0x0000bc78 .quad -3384744916816525881 - 0x73, 0x34, 0x17, 0x61, 0x46, 0x02, 0xc0, 0xec, //0x0000bc80 .quad -1387106183930235789 - 0x9c, 0xb3, 0x26, 0x02, 0x45, 0x5b, 0xa4, 0x82, //0x0000bc88 .quad -9032994600651410532 - 0x90, 0x01, 0x5d, 0xf9, 0xd7, 0x02, 0xf0, 0x27, //0x0000bc90 .quad 2877803288514593168 - 0x84, 0x60, 0xb0, 0x42, 0x16, 0x72, 0x4d, 0xa3, //0x0000bc98 .quad -6679557232386875260 - 0xf4, 0x41, 0xb4, 0xf7, 0x8d, 0x03, 0xec, 0x31, //0x0000bca0 .quad 3597254110643241460 - 0xa5, 0x78, 0x5c, 0xd3, 0x9b, 0xce, 0x20, 0xcc, //0x0000bca8 .quad -3737760522056206171 - 0x71, 0x52, 0xa1, 0x75, 0x71, 0x04, 0x67, 0x7e, //0x0000bcb0 .quad 9108253656731439729 - 0xce, 0x96, 0x33, 0xc8, 0x42, 0x02, 0x29, 0xff, //0x0000bcb8 .quad -60514634142869810 - 0x86, 0xd3, 0x84, 0xe9, 0xc6, 0x62, 0x00, 0x0f, //0x0000bcc0 .quad 1080972517029761926 - 0x41, 0x3e, 0x20, 0xbd, 0x69, 0xa1, 0x79, 0x9f, //0x0000bcc8 .quad -6955350673980375487 - 0x68, 0x08, 0xe6, 0xa3, 0x78, 0x7b, 0xc0, 0x52, //0x0000bcd0 .quad 5962901664714590312 - 0xd1, 0x4d, 0x68, 0x2c, 0xc4, 0x09, 0x58, 0xc7, //0x0000bcd8 .quad -4082502324048081455 - 0x82, 0x8a, 0xdf, 0xcc, 0x56, 0x9a, 0x70, 0xa7, //0x0000bce0 .quad -6381430974388925822 - 0x45, 0x61, 0x82, 0x37, 0x35, 0x0c, 0x2e, 0xf9, //0x0000bce8 .quad -491441886632713915 - 0x91, 0xb6, 0x0b, 0x40, 0x76, 0x60, 0xa6, 0x88, //0x0000bcf0 .quad -8600080377420466543 - 0xcb, 0x7c, 0xb1, 0x42, 0xa1, 0xc7, 0xbc, 0x9b, //0x0000bcf8 .quad -7224680206786528053 - 0x35, 0xa4, 0x0e, 0xd0, 0x93, 0xf8, 0xcf, 0x6a, //0x0000bd00 .quad 7696643601933968437 - 0xfe, 0xdb, 0x5d, 0x93, 0x89, 0xf9, 0xab, 0xc2, //0x0000bd08 .quad -4419164240055772162 - 0x43, 0x4d, 0x12, 0xc4, 0xb8, 0xf6, 0x83, 0x05, //0x0000bd10 .quad 397432465562684739 - 0xfe, 0x52, 0x35, 0xf8, 0xeb, 0xf7, 0x56, 0xf3, //0x0000bd18 .quad -912269281642327298 - 0x4a, 0x70, 0x8b, 0x7a, 0x33, 0x7a, 0x72, 0xc3, //0x0000bd20 .quad -4363290727450709942 - 0xde, 0x53, 0x21, 0x7b, 0xf3, 0x5a, 0x16, 0x98, //0x0000bd28 .quad -7487697328667536418 - 0x5c, 0x4c, 0x2e, 0x59, 0xc0, 0x18, 0x4f, 0x74, //0x0000bd30 .quad 8380944645968776284 - 0xd6, 0xa8, 0xe9, 0x59, 0xb0, 0xf1, 0x1b, 0xbe, //0x0000bd38 .quad -4747935642407032618 - 0x73, 0xdf, 0x79, 0x6f, 0xf0, 0xde, 0x62, 0x11, //0x0000bd40 .quad 1252808770606194547 - 0x0c, 0x13, 0x64, 0x70, 0x1c, 0xee, 0xa2, 0xed, //0x0000bd48 .quad -1323233534581402868 - 0xa8, 0x2b, 0xac, 0x45, 0x56, 0xcb, 0xdd, 0x8a, //0x0000bd50 .quad -8440366555225904216 - 0xe7, 0x8b, 0x3e, 0xc6, 0xd1, 0xd4, 0x85, 0x94, //0x0000bd58 .quad -7744549986754458649 - 0x92, 0x36, 0x17, 0xd7, 0x2b, 0x3e, 0x95, 0x6d, //0x0000bd60 .quad 7896285879677171346 - 0xe1, 0x2e, 0xce, 0x37, 0x06, 0x4a, 0xa7, 0xb9, //0x0000bd68 .quad -5069001465015685407 - 0x37, 0x04, 0xdd, 0xcc, 0xb6, 0x8d, 0xfa, 0xc8, //0x0000bd70 .quad -3964700705685699529 - 0x99, 0xba, 0xc1, 0xc5, 0x87, 0x1c, 0x11, 0xe8, //0x0000bd78 .quad -1724565812842218855 - 0xa2, 0x22, 0x0a, 0x40, 0x92, 0x98, 0x9c, 0x1d, //0x0000bd80 .quad 2133748077373825698 - 0xa0, 0x14, 0x99, 0xdb, 0xd4, 0xb1, 0x0a, 0x91, //0x0000bd88 .quad -7995382660667468640 - 0x4b, 0xab, 0x0c, 0xd0, 0xb6, 0xbe, 0x03, 0x25, //0x0000bd90 .quad 2667185096717282123 - 0xc8, 0x59, 0x7f, 0x12, 0x4a, 0x5e, 0x4d, 0xb5, //0x0000bd98 .quad -5382542307406947896 - 0x1d, 0xd6, 0x0f, 0x84, 0x64, 0xae, 0x44, 0x2e, //0x0000bda0 .quad 3333981370896602653 - 0x3a, 0x30, 0x1f, 0x97, 0xdc, 0xb5, 0xa0, 0xe2, //0x0000bda8 .quad -2116491865831296966 - 0xd2, 0xe5, 0x89, 0xd2, 0xfe, 0xec, 0xea, 0x5c, //0x0000bdb0 .quad 6695424375237764562 - 0x24, 0x7e, 0x73, 0xde, 0xa9, 0x71, 0xa4, 0x8d, //0x0000bdb8 .quad -8240336443785642460 - 0x47, 0x5f, 0x2c, 0x87, 0x3e, 0xa8, 0x25, 0x74, //0x0000bdc0 .quad 8369280469047205703 - 0xad, 0x5d, 0x10, 0x56, 0x14, 0x8e, 0x0d, 0xb1, //0x0000bdc8 .quad -5688734536304665171 - 0x19, 0x77, 0xf7, 0x28, 0x4e, 0x12, 0x2f, 0xd1, //0x0000bdd0 .quad -3373457468973156583 - 0x18, 0x75, 0x94, 0x6b, 0x99, 0xf1, 0x50, 0xdd, //0x0000bdd8 .quad -2499232151953443560 - 0x6f, 0xaa, 0x9a, 0xd9, 0x70, 0x6b, 0xbd, 0x82, //0x0000bde0 .quad -9025939945749304721 - 0x2f, 0xc9, 0x3c, 0xe3, 0xff, 0x96, 0x52, 0x8a, //0x0000bde8 .quad -8479549122611984081 - 0x0b, 0x55, 0x01, 0x10, 0x4d, 0xc6, 0x6c, 0x63, //0x0000bdf0 .quad 7164319141522920715 - 0x7b, 0xfb, 0x0b, 0xdc, 0xbf, 0x3c, 0xe7, 0xac, //0x0000bdf8 .quad -5987750384837592197 - 0x4e, 0xaa, 0x01, 0x54, 0xe0, 0xf7, 0x47, 0x3c, //0x0000be00 .quad 4343712908476262990 - 0x5a, 0xfa, 0x0e, 0xd3, 0xef, 0x0b, 0x21, 0xd8, //0x0000be08 .quad -2873001962619602342 - 0x71, 0x0a, 0x81, 0x34, 0xec, 0xfa, 0xac, 0x65, //0x0000be10 .quad 7326506586225052273 - 0x78, 0x5c, 0xe9, 0xe3, 0x75, 0xa7, 0x14, 0x87, //0x0000be18 .quad -8713155254278333320 - 0x0d, 0x4d, 0xa1, 0x41, 0xa7, 0x39, 0x18, 0x7f, //0x0000be20 .quad 9158133232781315341 - 0x96, 0xb3, 0xe3, 0x5c, 0x53, 0xd1, 0xd9, 0xa8, //0x0000be28 .quad -6279758049420528746 - 0x50, 0xa0, 0x09, 0x12, 0x11, 0x48, 0xde, 0x1e, //0x0000be30 .quad 2224294504121868368 - 0x7c, 0xa0, 0x1c, 0x34, 0xa8, 0x45, 0x10, 0xd3, //0x0000be38 .quad -3238011543348273028 - 0x32, 0x04, 0x46, 0xab, 0x0a, 0xed, 0x4a, 0x93, //0x0000be40 .quad -7833187971778608078 - 0x4d, 0xe4, 0x91, 0x20, 0x89, 0x2b, 0xea, 0x83, //0x0000be48 .quad -8941286242233752499 - 0x3f, 0x85, 0x17, 0x56, 0x4d, 0xa8, 0x1d, 0xf8, //0x0000be50 .quad -568112927868484289 - 0x60, 0x5d, 0xb6, 0x68, 0x6b, 0xb6, 0xe4, 0xa4, //0x0000be58 .quad -6564921784364802720 - 0x8e, 0x66, 0x9d, 0xab, 0x60, 0x12, 0x25, 0x36, //0x0000be60 .quad 3901544858591782542 - 0xb9, 0xf4, 0xe3, 0x42, 0x06, 0xe4, 0x1d, 0xce, //0x0000be68 .quad -3594466212028615495 - 0x19, 0x60, 0x42, 0x6b, 0x7c, 0x2b, 0xd7, 0xc1, //0x0000be70 .quad -4479063491021217767 - 0xf3, 0x78, 0xce, 0xe9, 0x83, 0xae, 0xd2, 0x80, //0x0000be78 .quad -9164070410158966541 - 0x1f, 0xf8, 0x12, 0x86, 0x5b, 0xf6, 0x4c, 0xb2, //0x0000be80 .quad -5598829363776522209 - 0x30, 0x17, 0x42, 0xe4, 0x24, 0x5a, 0x07, 0xa1, //0x0000be88 .quad -6843401994271320272 - 0x27, 0xb6, 0x97, 0x67, 0xf2, 0x33, 0xe0, 0xde, //0x0000be90 .quad -2386850686293264857 - 0xfc, 0x9c, 0x52, 0x1d, 0xae, 0x30, 0x49, 0xc9, //0x0000be98 .quad -3942566474411762436 - 0xb1, 0xa3, 0x7d, 0x01, 0xef, 0x40, 0x98, 0x16, //0x0000bea0 .quad 1628122660560806833 - 0x3c, 0x44, 0xa7, 0xa4, 0xd9, 0x7c, 0x9b, 0xfb, //0x0000bea8 .quad -316522074587315140 - 0x4e, 0x86, 0xee, 0x60, 0x95, 0x28, 0x1f, 0x8e, //0x0000beb0 .quad -8205795374004271538 - 0xa5, 0x8a, 0xe8, 0x06, 0x08, 0x2e, 0x41, 0x9d, //0x0000beb8 .quad -7115355324258153819 - 0xe2, 0x27, 0x2a, 0xb9, 0xba, 0xf2, 0xa6, 0xf1, //0x0000bec0 .quad -1033872180650563614 - 0x4e, 0xad, 0xa2, 0x08, 0x8a, 0x79, 0x91, 0xc4, //0x0000bec8 .quad -4282508136895304370 - 0xdb, 0xb1, 0x74, 0x67, 0x69, 0xaf, 0x10, 0xae, //0x0000bed0 .quad -5904026244240592421 - 0xa2, 0x58, 0xcb, 0x8a, 0xec, 0xd7, 0xb5, 0xf5, //0x0000bed8 .quad -741449152691742558 - 0x29, 0xef, 0xa8, 0xe0, 0xa1, 0x6d, 0xca, 0xac, //0x0000bee0 .quad -5995859411864064215 - 0x65, 0x17, 0xbf, 0xd6, 0xf3, 0xa6, 0x91, 0x99, //0x0000bee8 .quad -7380934748073420955 - 0xf3, 0x2a, 0xd3, 0x58, 0x0a, 0x09, 0xfd, 0x17, //0x0000bef0 .quad 1728547772024695539 - 0x3f, 0xdd, 0x6e, 0xcc, 0xb0, 0x10, 0xf6, 0xbf, //0x0000bef8 .quad -4614482416664388289 - 0xb0, 0xf5, 0x07, 0xef, 0x4c, 0x4b, 0xfc, 0xdd, //0x0000bf00 .quad -2451001303396518480 - 0x8e, 0x94, 0x8a, 0xff, 0xdc, 0x94, 0xf3, 0xef, //0x0000bf08 .quad -1156417002403097458 - 0x8e, 0xf9, 0x64, 0x15, 0x10, 0xaf, 0xbd, 0x4a, //0x0000bf10 .quad 5385653213018257806 - 0xd9, 0x9c, 0xb6, 0x1f, 0x0a, 0x3d, 0xf8, 0x95, //0x0000bf18 .quad -7640289654143017767 - 0xf1, 0x37, 0xbe, 0x1a, 0xd4, 0x1a, 0x6d, 0x9d, //0x0000bf20 .quad -7102991539009341455 - 0x0f, 0x44, 0xa4, 0xa7, 0x4c, 0x4c, 0x76, 0xbb, //0x0000bf28 .quad -4938676049251384305 - 0xed, 0xc5, 0x6d, 0x21, 0x89, 0x61, 0xc8, 0x84, //0x0000bf30 .quad -8878739423761676819 - 0x13, 0x55, 0x8d, 0xd1, 0x5f, 0xdf, 0x53, 0xea, //0x0000bf38 .quad -1561659043136842477 - 0xb4, 0x9b, 0xe4, 0xb4, 0xf5, 0x3c, 0xfd, 0x32, //0x0000bf40 .quad 3674159897003727796 - 0x2c, 0x55, 0xf8, 0xe2, 0x9b, 0x6b, 0x74, 0x92, //0x0000bf48 .quad -7893565929601608404 - 0xa1, 0xc2, 0x1d, 0x22, 0x33, 0x8c, 0xbc, 0x3f, //0x0000bf50 .quad 4592699871254659745 - 0x77, 0x6a, 0xb6, 0xdb, 0x82, 0x86, 0x11, 0xb7, //0x0000bf58 .quad -5255271393574622601 - 0x4a, 0x33, 0xa5, 0xea, 0x3f, 0xaf, 0xab, 0x0f, //0x0000bf60 .quad 1129188820640936778 - 0x15, 0x05, 0xa4, 0x92, 0x23, 0xe8, 0xd5, 0xe4, //0x0000bf68 .quad -1957403223540890347 - 0x0e, 0x40, 0xa7, 0xf2, 0x87, 0x4d, 0xcb, 0x29, //0x0000bf70 .quad 3011586022114279438 - 0x2d, 0x83, 0xa6, 0x3b, 0x16, 0xb1, 0x05, 0x8f, //0x0000bf78 .quad -8140906042354138323 - 0x12, 0x10, 0x51, 0xef, 0xe9, 0x20, 0x3e, 0x74, //0x0000bf80 .quad 8376168546070237202 - 0xf8, 0x23, 0x90, 0xca, 0x5b, 0x1d, 0xc7, 0xb2, //0x0000bf88 .quad -5564446534515285000 - 0x16, 0x54, 0x25, 0x6b, 0x24, 0xa9, 0x4d, 0x91, //0x0000bf90 .quad -7976533391121755114 - 0xf6, 0x2c, 0x34, 0xbd, 0xb2, 0xe4, 0x78, 0xdf, //0x0000bf98 .quad -2343872149716718346 - 0x8e, 0x54, 0xf7, 0xc2, 0xb6, 0x89, 0xd0, 0x1a, //0x0000bfa0 .quad 1932195658189984910 - 0x1a, 0x9c, 0x40, 0xb6, 0xef, 0x8e, 0xab, 0x8b, //0x0000bfa8 .quad -8382449121214030822 - 0xb1, 0x29, 0xb5, 0x73, 0x24, 0xac, 0x84, 0xa1, //0x0000bfb0 .quad -6808127464117294671 - 0x20, 0xc3, 0xd0, 0xa3, 0xab, 0x72, 0x96, 0xae, //0x0000bfb8 .quad -5866375383090150624 - 0x1e, 0x74, 0xa2, 0x90, 0x2d, 0xd7, 0xe5, 0xc9, //0x0000bfc0 .quad -3898473311719230434 - 0xe8, 0xf3, 0xc4, 0x8c, 0x56, 0x0f, 0x3c, 0xda, //0x0000bfc8 .quad -2721283210435300376 - 0x92, 0x88, 0x65, 0x7a, 0x7c, 0xa6, 0x2f, 0x7e, //0x0000bfd0 .quad 9092669226243950738 - 0x71, 0x18, 0xfb, 0x17, 0x96, 0x89, 0x65, 0x88, //0x0000bfd8 .quad -8618331034163144591 - 0xb7, 0xea, 0xfe, 0x98, 0x1b, 0x90, 0xbb, 0xdd, //0x0000bfe0 .quad -2469221522477225289 - 0x8d, 0xde, 0xf9, 0x9d, 0xfb, 0xeb, 0x7e, 0xaa, //0x0000bfe8 .quad -6161227774276542835 - 0x65, 0xa5, 0x3e, 0x7f, 0x22, 0x74, 0x2a, 0x55, //0x0000bff0 .quad 6136845133758244197 - 0x31, 0x56, 0x78, 0x85, 0xfa, 0xa6, 0x1e, 0xd5, //0x0000bff8 .quad -3089848699418290639 - 0x5f, 0x27, 0x87, 0x8f, 0x95, 0x88, 0x3a, 0xd5, //0x0000c000 .quad -3082000819042179233 - 0xde, 0x35, 0x6b, 0x93, 0x5c, 0x28, 0x33, 0x85, //0x0000c008 .quad -8848684464777513506 - 0x37, 0xf1, 0x68, 0xf3, 0xba, 0x2a, 0x89, 0x8a, //0x0000c010 .quad -8464187042230111945 - 0x56, 0x03, 0x46, 0xb8, 0x73, 0xf2, 0x7f, 0xa6, //0x0000c018 .quad -6449169562544503978 - 0x85, 0x2d, 0x43, 0xb0, 0x69, 0x75, 0x2b, 0x2d, //0x0000c020 .quad 3254824252494523781 - 0x2c, 0x84, 0x57, 0xa6, 0x10, 0xef, 0x1f, 0xd0, //0x0000c028 .quad -3449775934753242068 - 0x73, 0xfc, 0x29, 0x0e, 0x62, 0x29, 0x3b, 0x9c, //0x0000c030 .quad -7189106879045698445 - 0x9b, 0xb2, 0xf6, 0x67, 0x6a, 0xf5, 0x13, 0x82, //0x0000c038 .quad -9073638986861858149 - 0x8f, 0x7b, 0xb4, 0x91, 0xba, 0xf3, 0x49, 0x83, //0x0000c040 .quad -8986383598807123057 - 0x42, 0x5f, 0xf4, 0x01, 0xc5, 0xf2, 0x98, 0xa2, //0x0000c048 .quad -6730362715149934782 - 0x73, 0x9a, 0x21, 0x36, 0xa9, 0x70, 0x1c, 0x24, //0x0000c050 .quad 2602078556773259891 - 0x13, 0x77, 0x71, 0x42, 0x76, 0x2f, 0x3f, 0xcb, //0x0000c058 .quad -3801267375510030573 - 0x10, 0x01, 0xaa, 0x83, 0xd3, 0x8c, 0x23, 0xed, //0x0000c060 .quad -1359087822460813040 - 0xd7, 0xd4, 0x0d, 0xd3, 0x53, 0xfb, 0x0e, 0xfe, //0x0000c068 .quad -139898200960150313 - 0xaa, 0x40, 0x4a, 0x32, 0x04, 0x38, 0x36, 0xf4, //0x0000c070 .quad -849429889038008150 - 0x06, 0xa5, 0xe8, 0x63, 0x14, 0x5d, 0xc9, 0x9e, //0x0000c078 .quad -7004965403241175802 - 0xd5, 0xd0, 0xdc, 0x3e, 0x05, 0xc6, 0x43, 0xb1, //0x0000c080 .quad -5673473379724898091 - 0x48, 0xce, 0xe2, 0x7c, 0x59, 0xb4, 0x7b, 0xc6, //0x0000c088 .quad -4144520735624081848 - 0x0a, 0x05, 0x94, 0x8e, 0x86, 0xb7, 0x94, 0xdd, //0x0000c090 .quad -2480155706228734710 - 0xda, 0x81, 0x1b, 0xdc, 0x6f, 0xa1, 0x1a, 0xf8, //0x0000c098 .quad -568964901102714406 - 0x26, 0x83, 0x1c, 0x19, 0xb4, 0xf2, 0x7c, 0xca, //0x0000c0a0 .quad -3855940325606653146 - 0x28, 0x31, 0x91, 0xe9, 0xe5, 0xa4, 0x10, 0x9b, //0x0000c0a8 .quad -7273132090830278360 - 0xf0, 0xa3, 0x63, 0x1f, 0x61, 0x2f, 0x1c, 0xfd, //0x0000c0b0 .quad -208239388580928528 - 0x72, 0x7d, 0xf5, 0x63, 0x1f, 0xce, 0xd4, 0xc1, //0x0000c0b8 .quad -4479729095110460046 - 0xec, 0x8c, 0x3c, 0x67, 0x39, 0x3b, 0x63, 0xbc, //0x0000c0c0 .quad -4871985254153548564 - 0xcf, 0xdc, 0xf2, 0x3c, 0xa7, 0x01, 0x4a, 0xf2, //0x0000c0c8 .quad -987975350460687153 - 0x13, 0xd8, 0x85, 0xe0, 0x03, 0x05, 0xbe, 0xd5, //0x0000c0d0 .quad -3044990783845967853 - 0x01, 0xca, 0x17, 0x86, 0x08, 0x41, 0x6e, 0x97, //0x0000c0d8 .quad -7535013621679011327 - 0x18, 0x4e, 0xa7, 0xd8, 0x44, 0x86, 0x2d, 0x4b, //0x0000c0e0 .quad 5417133557047315992 - 0x82, 0xbc, 0x9d, 0xa7, 0x4a, 0xd1, 0x49, 0xbd, //0x0000c0e8 .quad -4807081008671376254 - 0x9e, 0x21, 0xd1, 0x0e, 0xd6, 0xe7, 0xf8, 0xdd, //0x0000c0f0 .quad -2451955090545630818 - 0xa2, 0x2b, 0x85, 0x51, 0x9d, 0x45, 0x9c, 0xec, //0x0000c0f8 .quad -1397165242411832414 - 0x03, 0xb5, 0x42, 0xc9, 0xe5, 0x90, 0xbb, 0xca, //0x0000c100 .quad -3838314940804713213 - 0x45, 0x3b, 0xf3, 0x52, 0x82, 0xab, 0xe1, 0x93, //0x0000c108 .quad -7790757304148477115 - 0x43, 0x62, 0x93, 0x3b, 0x1f, 0x75, 0x6a, 0x3d, //0x0000c110 .quad 4425478360848884291 - 0x17, 0x0a, 0xb0, 0xe7, 0x62, 0x16, 0xda, 0xb8, //0x0000c118 .quad -5126760611758208489 - 0xd4, 0x3a, 0x78, 0x0a, 0x67, 0x12, 0xc5, 0x0c, //0x0000c120 .quad 920161932633717460 - 0x9d, 0x0c, 0x9c, 0xa1, 0xfb, 0x9b, 0x10, 0xe7, //0x0000c128 .quad -1796764746270372707 - 0xc5, 0x24, 0x8b, 0x66, 0x80, 0x2b, 0xfb, 0x27, //0x0000c130 .quad 2880944217109767365 - 0xe2, 0x87, 0x01, 0x45, 0x7d, 0x61, 0x6a, 0x90, //0x0000c138 .quad -8040506994060064798 - 0xf6, 0xed, 0x2d, 0x80, 0x60, 0xf6, 0xf9, 0xb1, //0x0000c140 .quad -5622191765467566602 - 0xda, 0xe9, 0x41, 0x96, 0xdc, 0xf9, 0x84, 0xb4, //0x0000c148 .quad -5438947724147693094 - 0x73, 0x69, 0x39, 0xa0, 0xf8, 0x73, 0x78, 0x5e, //0x0000c150 .quad 6807318348447705459 - 0x51, 0x64, 0xd2, 0xbb, 0x53, 0x38, 0xa6, 0xe1, //0x0000c158 .quad -2186998636757228463 - 0xe8, 0xe1, 0x23, 0x64, 0x7b, 0x48, 0x0b, 0xdb, //0x0000c160 .quad -2662955059861265944 - 0xb2, 0x7e, 0x63, 0x55, 0x34, 0xe3, 0x07, 0x8d, //0x0000c168 .quad -8284403175614349646 - 0x62, 0xda, 0x2c, 0x3d, 0x9a, 0x1a, 0xce, 0x91, //0x0000c170 .quad -7940379843253970334 - 0x5f, 0x5e, 0xbc, 0x6a, 0x01, 0xdc, 0x49, 0xb0, //0x0000c178 .quad -5743817951090549153 - 0xfb, 0x10, 0x78, 0xcc, 0x40, 0xa1, 0x41, 0x76, //0x0000c180 .quad 8521269269642088699 - 0xf7, 0x75, 0x6b, 0xc5, 0x01, 0x53, 0x5c, 0xdc, //0x0000c188 .quad -2568086420435798537 - 0x9d, 0x0a, 0xcb, 0x7f, 0xc8, 0x04, 0xe9, 0xa9, //0x0000c190 .quad -6203421752542164323 - 0xba, 0x29, 0x63, 0x1b, 0xe1, 0xb3, 0xb9, 0x89, //0x0000c198 .quad -8522583040413455942 - 0x44, 0xcd, 0xbd, 0x9f, 0xfa, 0x45, 0x63, 0x54, //0x0000c1a0 .quad 6080780864604458308 - 0x29, 0xf4, 0x3b, 0x62, 0xd9, 0x20, 0x28, 0xac, //0x0000c1a8 .quad -6041542782089432023 - 0x95, 0x40, 0xad, 0x47, 0x79, 0x17, 0x7c, 0xa9, //0x0000c1b0 .quad -6234081974526590827 - 0x33, 0xf1, 0xca, 0xba, 0x0f, 0x29, 0x32, 0xd7, //0x0000c1b8 .quad -2940242459184402125 - 0x5d, 0x48, 0xcc, 0xcc, 0xab, 0x8e, 0xed, 0x49, //0x0000c1c0 .quad 5327070802775656541 - 0xc0, 0xd6, 0xbe, 0xd4, 0xa9, 0x59, 0x7f, 0x86, //0x0000c1c8 .quad -8755180564631333184 - 0x74, 0x5a, 0xff, 0xbf, 0x56, 0xf2, 0x68, 0x5c, //0x0000c1d0 .quad 6658838503469570676 - 0x70, 0x8c, 0xee, 0x49, 0x14, 0x30, 0x1f, 0xa8, //0x0000c1d8 .quad -6332289687361778576 - 0x11, 0x31, 0xff, 0x6f, 0xec, 0x2e, 0x83, 0x73, //0x0000c1e0 .quad 8323548129336963345 - 0x8c, 0x2f, 0x6a, 0x5c, 0x19, 0xfc, 0x26, 0xd2, //0x0000c1e8 .quad -3303676090774835316 - 0xab, 0x7e, 0xff, 0xc5, 0x53, 0xfd, 0x31, 0xc8, //0x0000c1f0 .quad -4021154456019173717 - 0xb7, 0x5d, 0xc2, 0xd9, 0x8f, 0x5d, 0x58, 0x83, //0x0000c1f8 .quad -8982326584375353929 - 0x55, 0x5e, 0x7f, 0xb7, 0xa8, 0x7c, 0x3e, 0xba, //0x0000c200 .quad -5026443070023967147 - 0x25, 0xf5, 0x32, 0xd0, 0xf3, 0x74, 0x2e, 0xa4, //0x0000c208 .quad -6616222212041804507 - 0xeb, 0x35, 0x5f, 0xe5, 0xd2, 0x1b, 0xce, 0x28, //0x0000c210 .quad 2940318199324816875 - 0x6f, 0xb2, 0x3f, 0xc4, 0x30, 0x12, 0x3a, 0xcd, //0x0000c218 .quad -3658591746624867729 - 0xb3, 0x81, 0x5b, 0xcf, 0x63, 0xd1, 0x80, 0x79, //0x0000c220 .quad 8755227902219092403 - 0x85, 0xcf, 0xa7, 0x7a, 0x5e, 0x4b, 0x44, 0x80, //0x0000c228 .quad -9204148869281624187 - 0x1f, 0x62, 0x32, 0xc3, 0xbc, 0x05, 0xe1, 0xd7, //0x0000c230 .quad -2891023177508298209 - 0x66, 0xc3, 0x51, 0x19, 0x36, 0x5e, 0x55, 0xa0, //0x0000c238 .quad -6893500068174642330 - 0xa7, 0xfa, 0xfe, 0xf3, 0x2b, 0x47, 0xd9, 0x8d, //0x0000c240 .quad -8225464990312760665 - 0x40, 0x34, 0xa6, 0x9f, 0xc3, 0xb5, 0x6a, 0xc8, //0x0000c248 .quad -4005189066790915008 - 0x51, 0xb9, 0xfe, 0xf0, 0xf6, 0x98, 0x4f, 0xb1, //0x0000c250 .quad -5670145219463562927 - 0x50, 0xc1, 0x8f, 0x87, 0x34, 0x63, 0x85, 0xfa, //0x0000c258 .quad -394800315061255856 - 0xd3, 0x33, 0x9f, 0x56, 0x9a, 0xbf, 0xd1, 0x6e, //0x0000c260 .quad 7985374283903742931 - 0xd2, 0xd8, 0xb9, 0xd4, 0x00, 0x5e, 0x93, 0x9c, //0x0000c268 .quad -7164279224554366766 - 0xc8, 0x00, 0x47, 0xec, 0x80, 0x2f, 0x86, 0x0a, //0x0000c270 .quad 758345818024902856 - 0x07, 0x4f, 0xe8, 0x09, 0x81, 0x35, 0xb8, 0xc3, //0x0000c278 .quad -4343663012265570553 - 0xfa, 0xc0, 0x58, 0x27, 0x61, 0xbb, 0x27, 0xcd, //0x0000c280 .quad -3663753745896259334 - 0xc8, 0x62, 0x62, 0x4c, 0xe1, 0x42, 0xa6, 0xf4, //0x0000c288 .quad -817892746904575288 - 0x9c, 0x78, 0x97, 0xb8, 0x1c, 0xd5, 0x38, 0x80, //0x0000c290 .quad -9207375118826243940 - 0xbd, 0x7d, 0xbd, 0xcf, 0xcc, 0xe9, 0xe7, 0x98, //0x0000c298 .quad -7428711994456441411 - 0xc3, 0x56, 0xbd, 0xe6, 0x63, 0x0a, 0x47, 0xe0, //0x0000c2a0 .quad -2285846861678029117 - 0x2c, 0xdd, 0xac, 0x03, 0x40, 0xe4, 0x21, 0xbf, //0x0000c2a8 .quad -4674203974643163860 - 0x74, 0xac, 0x6c, 0xe0, 0xfc, 0xcc, 0x58, 0x18, //0x0000c2b0 .quad 1754377441329851508 - 0x78, 0x14, 0x98, 0x04, 0x50, 0x5d, 0xea, 0xee, //0x0000c2b8 .quad -1231068949876566920 - 0xc8, 0xeb, 0x43, 0x0c, 0x1e, 0x80, 0x37, 0x0f, //0x0000c2c0 .quad 1096485900831157192 - 0xcb, 0x0c, 0xdf, 0x02, 0x52, 0x7a, 0x52, 0x95, //0x0000c2c8 .quad -7686947121313936181 - 0xba, 0xe6, 0x54, 0x8f, 0x25, 0x60, 0x05, 0xd3, //0x0000c2d0 .quad -3241078642388441414 - 0xfd, 0xcf, 0x96, 0x83, 0xe6, 0x18, 0xa7, 0xba, //0x0000c2d8 .quad -4996997883215032323 - 0x69, 0x20, 0x2a, 0xf3, 0x2e, 0xb8, 0xc6, 0x47, //0x0000c2e0 .quad 5172023733869224041 - 0xfd, 0x83, 0x7c, 0x24, 0x20, 0xdf, 0x50, 0xe9, //0x0000c2e8 .quad -1634561335591402499 - 0x41, 0x54, 0xfa, 0x57, 0x1d, 0x33, 0xdc, 0x4c, //0x0000c2f0 .quad 5538357842881958977 - 0x7e, 0xd2, 0xcd, 0x16, 0x74, 0x8b, 0xd2, 0x91, //0x0000c2f8 .quad -7939129862385708418 - 0x52, 0xe9, 0xf8, 0xad, 0xe4, 0x3f, 0x13, 0xe0, //0x0000c300 .quad -2300424733252327086 - 0x1d, 0x47, 0x81, 0x1c, 0x51, 0x2e, 0x47, 0xb6, //0x0000c308 .quad -5312226309554747619 - 0xa6, 0x23, 0x77, 0xd9, 0xdd, 0x0f, 0x18, 0x58, //0x0000c310 .quad 6347841120289366950 - 0xe5, 0x98, 0xa1, 0x63, 0xe5, 0xf9, 0xd8, 0xe3, //0x0000c318 .quad -2028596868516046619 - 0x48, 0x76, 0xea, 0xa7, 0xea, 0x09, 0x0f, 0x57, //0x0000c320 .quad 6273243709394548296 - 0x8f, 0xff, 0x44, 0x5e, 0x2f, 0x9c, 0x67, 0x8e, //0x0000c328 .quad -8185402070463610993 - 0xda, 0x13, 0xe5, 0x51, 0x65, 0xcc, 0xd2, 0x2c, //0x0000c330 .quad 3229868618315797466 - 0x73, 0x3f, 0xd6, 0x35, 0x3b, 0x83, 0x01, 0xb2, //0x0000c338 .quad -5620066569652125837 - 0xd1, 0x58, 0x5e, 0xa6, 0x7e, 0x7f, 0x07, 0xf8, //0x0000c340 .quad -574350245532641071 - 0x4f, 0xcf, 0x4b, 0x03, 0x0a, 0xe4, 0x81, 0xde, //0x0000c348 .quad -2413397193637769393 - 0x82, 0xf7, 0xfa, 0x27, 0xaf, 0xaf, 0x04, 0xfb, //0x0000c350 .quad -358968903457900670 - 0x91, 0x61, 0x0f, 0x42, 0x86, 0x2e, 0x11, 0x8b, //0x0000c358 .quad -8425902273664687727 - 0x63, 0xb5, 0xf9, 0xf1, 0x9a, 0xdb, 0xc5, 0x79, //0x0000c360 .quad 8774660907532399971 - 0xf6, 0x39, 0x93, 0xd2, 0x27, 0x7a, 0xd5, 0xad, //0x0000c368 .quad -5920691823653471754 - 0xbc, 0x22, 0x78, 0xae, 0x81, 0x52, 0x37, 0x18, //0x0000c370 .quad 1744954097560724156 - 0x74, 0x08, 0x38, 0xc7, 0xb1, 0xd8, 0x4a, 0xd9, //0x0000c378 .quad -2789178761139451788 - 0xb5, 0x15, 0x0b, 0x0d, 0x91, 0x93, 0x22, 0x8f, //0x0000c380 .quad -8132775725879323211 - 0x48, 0x05, 0x83, 0x1c, 0x6f, 0xc7, 0xce, 0x87, //0x0000c388 .quad -8660765753353239224 - 0x22, 0xdb, 0x4d, 0x50, 0x75, 0x38, 0xeb, 0xb2, //0x0000c390 .quad -5554283638921766110 - 0x9a, 0xc6, 0xa3, 0xe3, 0x4a, 0x79, 0xc2, 0xa9, //0x0000c398 .quad -6214271173264161126 - 0xeb, 0x51, 0x61, 0xa4, 0x92, 0x06, 0xa6, 0x5f, //0x0000c3a0 .quad 6892203506629956075 - 0x41, 0xb8, 0x8c, 0x9c, 0x9d, 0x17, 0x33, 0xd4, //0x0000c3a8 .quad -3156152948152813503 - 0x33, 0xd3, 0xbc, 0xa6, 0x1b, 0xc4, 0xc7, 0xdb, //0x0000c3b0 .quad -2609901835997359309 - 0x28, 0xf3, 0xd7, 0x81, 0xc2, 0xee, 0x9f, 0x84, //0x0000c3b8 .quad -8890124620236590296 - 0x00, 0x08, 0x6c, 0x90, 0x22, 0xb5, 0xb9, 0x12, //0x0000c3c0 .quad 1349308723430688768 - 0xf3, 0xef, 0x4d, 0x22, 0x73, 0xea, 0xc7, 0xa5, //0x0000c3c8 .quad -6500969756868349965 - 0x00, 0x0a, 0x87, 0x34, 0x6b, 0x22, 0x68, 0xd7, //0x0000c3d0 .quad -2925050114139026944 - 0xef, 0x6b, 0xe1, 0xea, 0x0f, 0xe5, 0x39, 0xcf, //0x0000c3d8 .quad -3514526177658049553 - 0x40, 0x66, 0xd4, 0x00, 0x83, 0x15, 0xa1, 0xe6, //0x0000c3e0 .quad -1828156321336891840 - 0x75, 0xe3, 0xcc, 0xf2, 0x29, 0x2f, 0x84, 0x81, //0x0000c3e8 .quad -9114107888677362827 - 0xd0, 0x7f, 0x09, 0xc1, 0xe3, 0x5a, 0x49, 0x60, //0x0000c3f0 .quad 6938176635183661008 - 0x53, 0x1c, 0x80, 0x6f, 0xf4, 0x3a, 0xe5, 0xa1, //0x0000c3f8 .quad -6780948842419315629 - 0xc4, 0xdf, 0x4b, 0xb1, 0x9c, 0xb1, 0x5b, 0x38, //0x0000c400 .quad 4061034775552188356 - 0x68, 0x23, 0x60, 0x8b, 0xb1, 0x89, 0x5e, 0xca, //0x0000c408 .quad -3864500034596756632 - 0xb5, 0xd7, 0x9e, 0xdd, 0x03, 0x9e, 0x72, 0x46, //0x0000c410 .quad 5076293469440235445 - 0x42, 0x2c, 0x38, 0xee, 0x1d, 0x2c, 0xf6, 0xfc, //0x0000c418 .quad -218939024818557886 - 0xd1, 0x46, 0x83, 0x6a, 0xc2, 0xa2, 0x07, 0x6c, //0x0000c420 .quad 7784369436827535057 - 0xa9, 0x1b, 0xe3, 0xb4, 0x92, 0xdb, 0x19, 0x9e, //0x0000c428 .quad -7054365918152680535 - 0x85, 0x18, 0x24, 0x05, 0x73, 0x8b, 0x09, 0xc7, //0x0000c430 .quad -4104596259247744891 - 0x93, 0xe2, 0x1b, 0x62, 0x77, 0x52, 0xa0, 0xc5, //0x0000c438 .quad -4206271379263462765 - 0xa7, 0x1e, 0x6d, 0xc6, 0x4f, 0xee, 0xcb, 0xb8, //0x0000c440 .quad -5130745324059681113 - 0x38, 0xdb, 0xa2, 0x3a, 0x15, 0x67, 0x08, 0xf7, //0x0000c448 .quad -646153205651940552 - 0x28, 0x33, 0x04, 0xdc, 0xf1, 0x74, 0x7f, 0x73, //0x0000c450 .quad 8322499218531169064 - 0x03, 0xc9, 0xa5, 0x44, 0x6d, 0x40, 0x65, 0x9a, //0x0000c458 .quad -7321374781173544701 - 0xf2, 0x3f, 0x05, 0x53, 0x2e, 0x52, 0x5f, 0x50, //0x0000c460 .quad 5791438004736573426 - 0x44, 0x3b, 0xcf, 0x95, 0x88, 0x90, 0xfe, 0xc0, //0x0000c468 .quad -4540032458039542972 - 0xef, 0x8f, 0xc6, 0xe7, 0xb9, 0x26, 0x77, 0x64, //0x0000c470 .quad 7239297505920716783 - 0x15, 0x0a, 0x43, 0xbb, 0xaa, 0x34, 0x3e, 0xf1, //0x0000c478 .quad -1063354554122040811 - 0xf5, 0x19, 0xdc, 0x30, 0x34, 0x78, 0xca, 0x5e, //0x0000c480 .quad 6830403950414141941 - 0x4d, 0xe6, 0x09, 0xb5, 0xea, 0xe0, 0xc6, 0x96, //0x0000c488 .quad -7582125623967357363 - 0x72, 0x20, 0x13, 0x3d, 0x41, 0x16, 0x7d, 0xb6, //0x0000c490 .quad -5297053117264486286 - 0xe0, 0x5f, 0x4c, 0x62, 0x25, 0x99, 0x78, 0xbc, //0x0000c498 .quad -4865971011531808800 - 0x8f, 0xe8, 0x57, 0x8c, 0xd1, 0x5b, 0x1c, 0xe4, //0x0000c4a0 .quad -2009630378153219953 - 0xd8, 0x77, 0xdf, 0xba, 0x6e, 0xbf, 0x96, 0xeb, //0x0000c4a8 .quad -1470777745987373096 - 0x59, 0xf1, 0xb6, 0xf7, 0x62, 0xb9, 0x91, 0x8e, //0x0000c4b0 .quad -8173548013986844327 - 0xe7, 0xaa, 0xcb, 0x34, 0xa5, 0x37, 0x3e, 0x93, //0x0000c4b8 .quad -7836765118883190041 - 0xb0, 0xad, 0xa4, 0xb5, 0xbb, 0x27, 0x36, 0x72, //0x0000c4c0 .quad 8229809056225996208 - 0xa1, 0x95, 0xfe, 0x81, 0x8e, 0xc5, 0x0d, 0xb8, //0x0000c4c8 .quad -5184270380176599647 - 0x1c, 0xd9, 0x0d, 0xa3, 0xaa, 0xb1, 0xc3, 0xce, //0x0000c4d0 .quad -3547796734999668452 - 0x09, 0x3b, 0x7e, 0x22, 0xf2, 0x36, 0x11, 0xe6, //0x0000c4d8 .quad -1868651956793361655 - 0xb1, 0xa7, 0xe8, 0xa5, 0x0a, 0x4f, 0x3a, 0x21, //0x0000c4e0 .quad 2394313059052595121 - 0xe6, 0xe4, 0x8e, 0x55, 0x57, 0xc2, 0xca, 0x8f, //0x0000c4e8 .quad -8085436500636932890 - 0x9d, 0xd1, 0x62, 0x4f, 0xcd, 0xe2, 0x88, 0xa9, //0x0000c4f0 .quad -6230480713039031907 - 0x1f, 0x9e, 0xf2, 0x2a, 0xed, 0x72, 0xbd, 0xb3, //0x0000c4f8 .quad -5495109607368778209 - 0x05, 0x86, 0x3b, 0xa3, 0x80, 0x1b, 0xeb, 0x93, //0x0000c500 .quad -7788100891298789883 - 0xa7, 0x45, 0xaf, 0x75, 0xa8, 0xcf, 0xac, 0xe0, //0x0000c508 .quad -2257200990783584857 - 0xc3, 0x33, 0x05, 0x66, 0x30, 0xf1, 0x72, 0xbc, //0x0000c510 .quad -4867563057061743677 - 0x88, 0x8b, 0x8d, 0x49, 0xc9, 0x01, 0x6c, 0x8c, //0x0000c518 .quad -8328279646880822392 - 0xb4, 0x80, 0x86, 0x7f, 0x7c, 0xad, 0x8f, 0xeb, //0x0000c520 .quad -1472767802899791692 - 0x6a, 0xee, 0xf0, 0x9b, 0x3b, 0x02, 0x87, 0xaf, //0x0000c528 .quad -5798663540173640086 - 0xe1, 0x20, 0x68, 0x9f, 0xdb, 0x98, 0x73, 0xa6, //0x0000c530 .quad -6452645772052127519 - 0x05, 0x2a, 0xed, 0x82, 0xca, 0xc2, 0x68, 0xdb, //0x0000c538 .quad -2636643406789662203 - 0x8c, 0x14, 0xa1, 0x43, 0x89, 0x3f, 0x08, 0x88, //0x0000c540 .quad -8644589625959967604 - 0x43, 0x3a, 0xd4, 0x91, 0xbe, 0x79, 0x21, 0x89, //0x0000c548 .quad -8565431156884620733 - 0xb0, 0x59, 0x89, 0x94, 0x6b, 0x4f, 0x0a, 0x6a, //0x0000c550 .quad 7641007041259592112 - 0xd4, 0x48, 0x49, 0x36, 0x2e, 0xd8, 0x69, 0xab, //0x0000c558 .quad -6095102927678388012 - 0x1c, 0xb0, 0xab, 0x79, 0x46, 0xe3, 0x8c, 0x84, //0x0000c560 .quad -8895485272135061476 - 0x09, 0x9b, 0xdb, 0xc3, 0x39, 0x4e, 0x44, 0xd6, //0x0000c568 .quad -3007192641170597111 - 0x11, 0x4e, 0x0b, 0x0c, 0x0c, 0x0e, 0xd8, 0xf2, //0x0000c570 .quad -947992276657025519 - 0xe5, 0x40, 0x69, 0x1a, 0xe4, 0xb0, 0xea, 0x85, //0x0000c578 .quad -8797024428372705051 - 0x95, 0x21, 0x0e, 0x0f, 0x8f, 0x11, 0x8e, 0x6f, //0x0000c580 .quad 8038381691033493909 - 0x1f, 0x91, 0x03, 0x21, 0x1d, 0x5d, 0x65, 0xa7, //0x0000c588 .quad -6384594517038493409 - 0xfb, 0xa9, 0xd1, 0xd2, 0xf2, 0x95, 0x71, 0x4b, //0x0000c590 .quad 5436291095364479483 - 0x67, 0x75, 0x44, 0x69, 0x64, 0xb4, 0x3e, 0xd1, //0x0000c598 .quad -3369057127870728857 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000c5a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - //0x0000c5b0 .p2align 4, 0x00 - //0x0000c5b0 _POW_TAB - 0x01, 0x00, 0x00, 0x00, //0x0000c5b0 .long 1 - 0x03, 0x00, 0x00, 0x00, //0x0000c5b4 .long 3 - 0x06, 0x00, 0x00, 0x00, //0x0000c5b8 .long 6 - 0x09, 0x00, 0x00, 0x00, //0x0000c5bc .long 9 - 0x0d, 0x00, 0x00, 0x00, //0x0000c5c0 .long 13 - 0x10, 0x00, 0x00, 0x00, //0x0000c5c4 .long 16 - 0x13, 0x00, 0x00, 0x00, //0x0000c5c8 .long 19 - 0x17, 0x00, 0x00, 0x00, //0x0000c5cc .long 23 - 0x1a, 0x00, 0x00, 0x00, //0x0000c5d0 .long 26 - //0x0000c5d4 .p2align 2, 0x00 - //0x0000c5d4 _MASK_USE_NUMBER - 0x02, 0x00, 0x00, 0x00, //0x0000c5d4 .long 2 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000c5d8 .p2align 4, 0x00 - //0x0000c5e0 _Digits - 0x30, 0x30, 0x30, 0x31, 0x30, 0x32, 0x30, 0x33, 0x30, 0x34, 0x30, 0x35, 0x30, 0x36, 0x30, 0x37, //0x0000c5e0 QUAD $0x3330323031303030; QUAD $0x3730363035303430 // .ascii 16, '0001020304050607' - 0x30, 0x38, 0x30, 0x39, 0x31, 0x30, 0x31, 0x31, 0x31, 0x32, 0x31, 0x33, 0x31, 0x34, 0x31, 0x35, //0x0000c5f0 QUAD $0x3131303139303830; QUAD $0x3531343133313231 // .ascii 16, '0809101112131415' - 0x31, 0x36, 0x31, 0x37, 0x31, 0x38, 0x31, 0x39, 0x32, 0x30, 0x32, 0x31, 0x32, 0x32, 0x32, 0x33, //0x0000c600 QUAD $0x3931383137313631; QUAD $0x3332323231323032 // .ascii 16, '1617181920212223' - 0x32, 0x34, 0x32, 0x35, 0x32, 0x36, 0x32, 0x37, 0x32, 0x38, 0x32, 0x39, 0x33, 0x30, 0x33, 0x31, //0x0000c610 QUAD $0x3732363235323432; QUAD $0x3133303339323832 // .ascii 16, '2425262728293031' - 0x33, 0x32, 0x33, 0x33, 0x33, 0x34, 0x33, 0x35, 0x33, 0x36, 0x33, 0x37, 0x33, 0x38, 0x33, 0x39, //0x0000c620 QUAD $0x3533343333333233; QUAD $0x3933383337333633 // .ascii 16, '3233343536373839' - 0x34, 0x30, 0x34, 0x31, 0x34, 0x32, 0x34, 0x33, 0x34, 0x34, 0x34, 0x35, 0x34, 0x36, 0x34, 0x37, //0x0000c630 QUAD $0x3334323431343034; QUAD $0x3734363435343434 // .ascii 16, '4041424344454647' - 0x34, 0x38, 0x34, 0x39, 0x35, 0x30, 0x35, 0x31, 0x35, 0x32, 0x35, 0x33, 0x35, 0x34, 0x35, 0x35, //0x0000c640 QUAD $0x3135303539343834; QUAD $0x3535343533353235 // .ascii 16, '4849505152535455' - 0x35, 0x36, 0x35, 0x37, 0x35, 0x38, 0x35, 0x39, 0x36, 0x30, 0x36, 0x31, 0x36, 0x32, 0x36, 0x33, //0x0000c650 QUAD $0x3935383537353635; QUAD $0x3336323631363036 // .ascii 16, '5657585960616263' - 0x36, 0x34, 0x36, 0x35, 0x36, 0x36, 0x36, 0x37, 0x36, 0x38, 0x36, 0x39, 0x37, 0x30, 0x37, 0x31, //0x0000c660 QUAD $0x3736363635363436; QUAD $0x3137303739363836 // .ascii 16, '6465666768697071' - 0x37, 0x32, 0x37, 0x33, 0x37, 0x34, 0x37, 0x35, 0x37, 0x36, 0x37, 0x37, 0x37, 0x38, 0x37, 0x39, //0x0000c670 QUAD $0x3537343733373237; QUAD $0x3937383737373637 // .ascii 16, '7273747576777879' - 0x38, 0x30, 0x38, 0x31, 0x38, 0x32, 0x38, 0x33, 0x38, 0x34, 0x38, 0x35, 0x38, 0x36, 0x38, 0x37, //0x0000c680 QUAD $0x3338323831383038; QUAD $0x3738363835383438 // .ascii 16, '8081828384858687' - 0x38, 0x38, 0x38, 0x39, 0x39, 0x30, 0x39, 0x31, 0x39, 0x32, 0x39, 0x33, 0x39, 0x34, 0x39, 0x35, //0x0000c690 QUAD $0x3139303939383838; QUAD $0x3539343933393239 // .ascii 16, '8889909192939495' - 0x39, 0x36, 0x39, 0x37, 0x39, 0x38, 0x39, 0x39, //0x0000c6a0 QUAD $0x3939383937393639 // .ascii 8, '96979899' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000c6a8 .p2align 4, 0x00 - //0x0000c6b0 _pow10_ceil_sig.g - 0x4f, 0xdc, 0xbc, 0xbe, 0xfc, 0xb1, 0x77, 0xff, //0x0000c6b0 .quad -38366372719436721 - 0x7b, 0x0f, 0xbb, 0x13, 0x9c, 0xe8, 0xe8, 0x25, //0x0000c6b8 .quad 2731688931043774331 - 0xb1, 0x09, 0x36, 0xf7, 0x3d, 0xcf, 0xaa, 0x9f, //0x0000c6c0 .quad -6941508010590729807 - 0xad, 0xe9, 0x54, 0x8c, 0x61, 0x91, 0xb1, 0x77, //0x0000c6c8 .quad 8624834609543440813 - 0x1d, 0x8c, 0x03, 0x75, 0x0d, 0x83, 0x95, 0xc7, //0x0000c6d0 .quad -4065198994811024355 - 0x18, 0x24, 0x6a, 0xef, 0xb9, 0xf5, 0x9d, 0xd5, //0x0000c6d8 .quad -3054014793352862696 - 0x25, 0x6f, 0x44, 0xd2, 0xd0, 0xe3, 0x7a, 0xf9, //0x0000c6e0 .quad -469812725086392539 - 0x1e, 0xad, 0x44, 0x6b, 0x28, 0x73, 0x05, 0x4b, //0x0000c6e8 .quad 5405853545163697438 - 0x77, 0xc5, 0x6a, 0x83, 0x62, 0xce, 0xec, 0x9b, //0x0000c6f0 .quad -7211161980820077193 - 0x33, 0xec, 0x0a, 0x43, 0xf9, 0x67, 0xe3, 0x4e, //0x0000c6f8 .quad 5684501474941004851 - 0xd5, 0x76, 0x45, 0x24, 0xfb, 0x01, 0xe8, 0xc2, //0x0000c700 .quad -4402266457597708587 - 0x40, 0xa7, 0xcd, 0x93, 0xf7, 0x41, 0x9c, 0x22, //0x0000c708 .quad 2493940825248868160 - 0x8a, 0xd4, 0x56, 0xed, 0x79, 0x02, 0xa2, 0xf3, //0x0000c710 .quad -891147053569747830 - 0x10, 0x11, 0xc1, 0x78, 0x75, 0x52, 0x43, 0x6b, //0x0000c718 .quad 7729112049988473104 - 0xd6, 0x44, 0x56, 0x34, 0x8c, 0x41, 0x45, 0x98, //0x0000c720 .quad -7474495936122174250 - 0xaa, 0xaa, 0x78, 0x6b, 0x89, 0x13, 0x0a, 0x83, //0x0000c728 .quad -9004363024039368022 - 0x0c, 0xd6, 0x6b, 0x41, 0xef, 0x91, 0x56, 0xbe, //0x0000c730 .quad -4731433901725329908 - 0x54, 0xd5, 0x56, 0xc6, 0x6b, 0x98, 0xcc, 0x23, //0x0000c738 .quad 2579604275232953684 - 0x8f, 0xcb, 0xc6, 0x11, 0x6b, 0x36, 0xec, 0xed, //0x0000c740 .quad -1302606358729274481 - 0xa9, 0x8a, 0xec, 0xb7, 0x86, 0xbe, 0xbf, 0x2c, //0x0000c748 .quad 3224505344041192105 - 0x39, 0x3f, 0x1c, 0xeb, 0x02, 0xa2, 0xb3, 0x94, //0x0000c750 .quad -7731658001846878407 - 0xaa, 0xd6, 0xf3, 0x32, 0x14, 0xd7, 0xf7, 0x7b, //0x0000c758 .quad 8932844867666826922 - 0x07, 0x4f, 0xe3, 0xa5, 0x83, 0x8a, 0xe0, 0xb9, //0x0000c760 .quad -5052886483881210105 - 0x54, 0xcc, 0xb0, 0x3f, 0xd9, 0xcc, 0xf5, 0xda, //0x0000c768 .quad -2669001970698630060 - 0xc9, 0x22, 0x5c, 0x8f, 0x24, 0xad, 0x58, 0xe8, //0x0000c770 .quad -1704422086424124727 - 0x69, 0xff, 0x9c, 0x8f, 0x0f, 0x40, 0xb3, 0xd1, //0x0000c778 .quad -3336252463373287575 - 0xbe, 0x95, 0x99, 0xd9, 0x36, 0x6c, 0x37, 0x91, //0x0000c780 .quad -7982792831656159810 - 0xa2, 0x1f, 0xc2, 0xb9, 0x09, 0x08, 0x10, 0x23, //0x0000c788 .quad 2526528228819083170 - 0x2d, 0xfb, 0xff, 0x8f, 0x44, 0x47, 0x85, 0xb5, //0x0000c790 .quad -5366805021142811859 - 0x8b, 0xa7, 0x32, 0x28, 0x0c, 0x0a, 0xd4, 0xab, //0x0000c798 .quad -6065211750830921845 - 0xf9, 0xf9, 0xff, 0xb3, 0x15, 0x99, 0xe6, 0xe2, //0x0000c7a0 .quad -2096820258001126919 - 0x6d, 0x51, 0x3f, 0x32, 0x8f, 0x0c, 0xc9, 0x16, //0x0000c7a8 .quad 1641857348316123501 - 0x3b, 0xfc, 0x7f, 0x90, 0xad, 0x1f, 0xd0, 0x8d, //0x0000c7b0 .quad -8228041688891786181 - 0xe4, 0x92, 0x67, 0x7f, 0xd9, 0xa7, 0x3d, 0xae, //0x0000c7b8 .quad -5891368184943504668 - 0x4a, 0xfb, 0x9f, 0xf4, 0x98, 0x27, 0x44, 0xb1, //0x0000c7c0 .quad -5673366092687344822 - 0x9d, 0x77, 0x41, 0xdf, 0xcf, 0x11, 0xcd, 0x99, //0x0000c7c8 .quad -7364210231179380835 - 0x1d, 0xfa, 0xc7, 0x31, 0x7f, 0x31, 0x95, 0xdd, //0x0000c7d0 .quad -2480021597431793123 - 0x84, 0xd5, 0x11, 0xd7, 0x43, 0x56, 0x40, 0x40, //0x0000c7d8 .quad 4629795266307937668 - 0x52, 0xfc, 0x1c, 0x7f, 0xef, 0x3e, 0x7d, 0x8a, //0x0000c7e0 .quad -8467542526035952558 - 0x73, 0x25, 0x6b, 0x66, 0xea, 0x35, 0x28, 0x48, //0x0000c7e8 .quad 5199465050656154995 - 0x66, 0x3b, 0xe4, 0x5e, 0xab, 0x8e, 0x1c, 0xad, //0x0000c7f0 .quad -5972742139117552794 - 0xd0, 0xee, 0x05, 0x00, 0x65, 0x43, 0x32, 0xda, //0x0000c7f8 .quad -2724040723534582064 - 0x40, 0x4a, 0x9d, 0x36, 0x56, 0xb2, 0x63, 0xd8, //0x0000c800 .quad -2854241655469553088 - 0x83, 0x6a, 0x07, 0x40, 0x3e, 0xd4, 0xbe, 0x90, //0x0000c808 .quad -8016736922845615485 - 0x68, 0x4e, 0x22, 0xe2, 0x75, 0x4f, 0x3e, 0x87, //0x0000c810 .quad -8701430062309552536 - 0x92, 0xa2, 0x04, 0xe8, 0xa6, 0x44, 0x77, 0x5a, //0x0000c818 .quad 6518754469289960082 - 0x02, 0xe2, 0xaa, 0x5a, 0x53, 0xe3, 0x0d, 0xa9, //0x0000c820 .quad -6265101559459552766 - 0x37, 0xcb, 0x05, 0xa2, 0xd0, 0x15, 0x15, 0x71, //0x0000c828 .quad 8148443086612450103 - 0x83, 0x9a, 0x55, 0x31, 0x28, 0x5c, 0x51, 0xd3, //0x0000c830 .quad -3219690930897053053 - 0x04, 0x3e, 0x87, 0xca, 0x44, 0x5b, 0x5a, 0x0d, //0x0000c838 .quad 962181821410786820 - 0x91, 0x80, 0xd5, 0x1e, 0x99, 0xd9, 0x12, 0x84, //0x0000c840 .quad -8929835859451740015 - 0xc3, 0x86, 0x94, 0xfe, 0x0a, 0x79, 0x58, 0xe8, //0x0000c848 .quad -1704479370831952189 - 0xb6, 0xe0, 0x8a, 0x66, 0xff, 0x8f, 0x17, 0xa5, //0x0000c850 .quad -6550608805887287114 - 0x73, 0xa8, 0x39, 0xbe, 0x4d, 0x97, 0x6e, 0x62, //0x0000c858 .quad 7092772823314835571 - 0xe3, 0x98, 0x2d, 0x40, 0xff, 0x73, 0x5d, 0xce, //0x0000c860 .quad -3576574988931720989 - 0x90, 0x12, 0xc8, 0x2d, 0x21, 0x3d, 0x0a, 0xfb, //0x0000c868 .quad -357406007711231344 - 0x8e, 0x7f, 0x1c, 0x88, 0x7f, 0x68, 0xfa, 0x80, //0x0000c870 .quad -9152888395723407474 - 0x9a, 0x0b, 0x9d, 0xbc, 0x34, 0x66, 0xe6, 0x7c, //0x0000c878 .quad 8999993282035256218 - 0x72, 0x9f, 0x23, 0x6a, 0x9f, 0x02, 0x39, 0xa1, //0x0000c880 .quad -6829424476226871438 - 0x81, 0x4e, 0xc4, 0xeb, 0xc1, 0xff, 0x1f, 0x1c, //0x0000c888 .quad 2026619565689294465 - 0x4e, 0x87, 0xac, 0x44, 0x47, 0x43, 0x87, 0xc9, //0x0000c890 .quad -3925094576856201394 - 0x21, 0x62, 0xb5, 0x66, 0xb2, 0xff, 0x27, 0xa3, //0x0000c898 .quad -6690097579743157727 - 0x22, 0xa9, 0xd7, 0x15, 0x19, 0x14, 0xe9, 0xfb, //0x0000c8a0 .quad -294682202642863838 - 0xa9, 0xba, 0x62, 0x00, 0x9f, 0xff, 0xf1, 0x4b, //0x0000c8a8 .quad 5472436080603216553 - 0xb5, 0xc9, 0xa6, 0xad, 0x8f, 0xac, 0x71, 0x9d, //0x0000c8b0 .quad -7101705404292871755 - 0xaa, 0xb4, 0x3d, 0x60, 0xc3, 0x3f, 0x77, 0x6f, //0x0000c8b8 .quad 8031958568804398250 - 0x22, 0x7c, 0x10, 0x99, 0xb3, 0x17, 0xce, 0xc4, //0x0000c8c0 .quad -4265445736938701790 - 0xd4, 0x21, 0x4d, 0x38, 0xb4, 0x0f, 0x55, 0xcb, //0x0000c8c8 .quad -3795109844276665900 - 0x2b, 0x9b, 0x54, 0x7f, 0xa0, 0x9d, 0x01, 0xf6, //0x0000c8d0 .quad -720121152745989333 - 0x49, 0x6a, 0x60, 0x46, 0xa1, 0x53, 0x2a, 0x7e, //0x0000c8d8 .quad 9091170749936331337 - 0xfb, 0xe0, 0x94, 0x4f, 0x84, 0x02, 0xc1, 0x99, //0x0000c8e0 .quad -7367604748107325189 - 0x6e, 0x42, 0xfc, 0xcb, 0x44, 0x74, 0xda, 0x2e, //0x0000c8e8 .quad 3376138709496513134 - 0x39, 0x19, 0x7a, 0x63, 0x25, 0x43, 0x31, 0xc0, //0x0000c8f0 .quad -4597819916706768583 - 0x09, 0x53, 0xfb, 0xfe, 0x55, 0x11, 0x91, 0xfa, //0x0000c8f8 .quad -391512631556746487 - 0x88, 0x9f, 0x58, 0xbc, 0xee, 0x93, 0x3d, 0xf0, //0x0000c900 .quad -1135588877456072824 - 0xcb, 0x27, 0xba, 0x7e, 0xab, 0x55, 0x35, 0x79, //0x0000c908 .quad 8733981247408842699 - 0xb5, 0x63, 0xb7, 0x35, 0x75, 0x7c, 0x26, 0x96, //0x0000c910 .quad -7627272076051127371 - 0xdf, 0x58, 0x34, 0x2f, 0x8b, 0x55, 0xc1, 0x4b, //0x0000c918 .quad 5458738279630526687 - 0xa2, 0x3c, 0x25, 0x83, 0x92, 0x1b, 0xb0, 0xbb, //0x0000c920 .quad -4922404076636521310 - 0x17, 0x6f, 0x01, 0xfb, 0xed, 0xaa, 0xb1, 0x9e, //0x0000c928 .quad -7011635205744005353 - 0xcb, 0x8b, 0xee, 0x23, 0x77, 0x22, 0x9c, 0xea, //0x0000c930 .quad -1541319077368263733 - 0xdd, 0xca, 0xc1, 0x79, 0xa9, 0x15, 0x5e, 0x46, //0x0000c938 .quad 5070514048102157021 - 0x5f, 0x17, 0x75, 0x76, 0x8a, 0x95, 0xa1, 0x92, //0x0000c940 .quad -7880853450996246689 - 0xca, 0x1e, 0x19, 0xec, 0x89, 0xcd, 0xfa, 0x0b, //0x0000c948 .quad 863228270850154186 - 0x36, 0x5d, 0x12, 0x14, 0xed, 0xfa, 0x49, 0xb7, //0x0000c950 .quad -5239380795317920458 - 0x7c, 0x66, 0x1f, 0x67, 0xec, 0x80, 0xf9, 0xce, //0x0000c958 .quad -3532650679864695172 - 0x84, 0xf4, 0x16, 0x59, 0xa8, 0x79, 0x1c, 0xe5, //0x0000c960 .quad -1937539975720012668 - 0x1b, 0x40, 0xe7, 0x80, 0x27, 0xe1, 0xb7, 0x82, //0x0000c968 .quad -9027499368258256869 - 0xd2, 0x58, 0xae, 0x37, 0x09, 0xcc, 0x31, 0x8f, //0x0000c970 .quad -8128491512466089774 - 0x11, 0x88, 0x90, 0xb0, 0xb8, 0xec, 0xb2, 0xd1, //0x0000c978 .quad -3336344095947716591 - 0x07, 0xef, 0x99, 0x85, 0x0b, 0x3f, 0xfe, 0xb2, //0x0000c980 .quad -5548928372155224313 - 0x16, 0xaa, 0xb4, 0xdc, 0xe6, 0xa7, 0x1f, 0x86, //0x0000c988 .quad -8782116138362033642 - 0xc9, 0x6a, 0x00, 0x67, 0xce, 0xce, 0xbd, 0xdf, //0x0000c990 .quad -2324474446766642487 - 0x9b, 0xd4, 0xe1, 0x93, 0xe0, 0x91, 0xa7, 0x67, //0x0000c998 .quad 7469098900757009563 - 0xbd, 0x42, 0x60, 0x00, 0x41, 0xa1, 0xd6, 0x8b, //0x0000c9a0 .quad -8370325556870233411 - 0xe1, 0x24, 0x6d, 0x5c, 0x2c, 0xbb, 0xc8, 0xe0, //0x0000c9a8 .quad -2249342214667950879 - 0x6d, 0x53, 0x78, 0x40, 0x91, 0x49, 0xcc, 0xae, //0x0000c9b0 .quad -5851220927660403859 - 0x19, 0x6e, 0x88, 0x73, 0xf7, 0xe9, 0xfa, 0x58, //0x0000c9b8 .quad 6411694268519837209 - 0x48, 0x68, 0x96, 0x90, 0xf5, 0x5b, 0x7f, 0xda, //0x0000c9c0 .quad -2702340141148116920 - 0x9f, 0x89, 0x6a, 0x50, 0x75, 0xa4, 0x39, 0xaf, //0x0000c9c8 .quad -5820440219632367201 - 0x2d, 0x01, 0x5e, 0x7a, 0x79, 0x99, 0x8f, 0x88, //0x0000c9d0 .quad -8606491615858654931 - 0x04, 0x96, 0x42, 0x52, 0xc9, 0x06, 0x84, 0x6d, //0x0000c9d8 .quad 7891439908798240260 - 0x78, 0x81, 0xf5, 0xd8, 0xd7, 0x7f, 0xb3, 0xaa, //0x0000c9e0 .quad -6146428501395930760 - 0x84, 0x3b, 0xd3, 0xa6, 0x7b, 0x08, 0xe5, 0xc8, //0x0000c9e8 .quad -3970758169284363388 - 0xd6, 0xe1, 0x32, 0xcf, 0xcd, 0x5f, 0x60, 0xd5, //0x0000c9f0 .quad -3071349608317525546 - 0x65, 0x0a, 0x88, 0x90, 0x9a, 0x4a, 0x1e, 0xfb, //0x0000c9f8 .quad -351761693178066331 - 0x26, 0xcd, 0x7f, 0xa1, 0xe0, 0x3b, 0x5c, 0x85, //0x0000ca00 .quad -8837122532839535322 - 0x80, 0x06, 0x55, 0x9a, 0xa0, 0xee, 0xf2, 0x5c, //0x0000ca08 .quad 6697677969404790400 - 0x6f, 0xc0, 0xdf, 0xc9, 0xd8, 0x4a, 0xb3, 0xa6, //0x0000ca10 .quad -6434717147622031249 - 0x1f, 0x48, 0xea, 0xc0, 0x48, 0xaa, 0x2f, 0xf4, //0x0000ca18 .quad -851274575098787809 - 0x8b, 0xb0, 0x57, 0xfc, 0x8e, 0x1d, 0x60, 0xd0, //0x0000ca20 .quad -3431710416100151157 - 0x27, 0xda, 0x24, 0xf1, 0xda, 0x94, 0x3b, 0xf1, //0x0000ca28 .quad -1064093218873484761 - 0x57, 0xce, 0xb6, 0x5d, 0x79, 0x12, 0x3c, 0x82, //0x0000ca30 .quad -9062348037703676329 - 0x59, 0x08, 0xb7, 0xd6, 0x08, 0x3d, 0xc5, 0x76, //0x0000ca38 .quad 8558313775058847833 - 0xed, 0x81, 0x24, 0xb5, 0x17, 0x17, 0xcb, 0xa2, //0x0000ca40 .quad -6716249028702207507 - 0x6f, 0xca, 0x64, 0x0c, 0x4b, 0x8c, 0x76, 0x54, //0x0000ca48 .quad 6086206200396171887 - 0x68, 0xa2, 0x6d, 0xa2, 0xdd, 0xdc, 0x7d, 0xcb, //0x0000ca50 .quad -3783625267450371480 - 0x0a, 0xfd, 0x7d, 0xcf, 0x5d, 0x2f, 0x94, 0xa9, //0x0000ca58 .quad -6227300304786948854 - 0x02, 0x0b, 0x09, 0x0b, 0x15, 0x54, 0x5d, 0xfe, //0x0000ca60 .quad -117845565885576446 - 0x4d, 0x7c, 0x5d, 0x43, 0x35, 0x3b, 0xf9, 0xd3, //0x0000ca68 .quad -3172439362556298163 - 0xe1, 0xa6, 0xe5, 0x26, 0x8d, 0x54, 0xfa, 0x9e, //0x0000ca70 .quad -6991182506319567135 - 0xb0, 0x6d, 0x1a, 0x4a, 0x01, 0xc5, 0x7b, 0xc4, //0x0000ca78 .quad -4288617610811380304 - 0x9a, 0x10, 0x9f, 0x70, 0xb0, 0xe9, 0xb8, 0xc6, //0x0000ca80 .quad -4127292114472071014 - 0x1c, 0x09, 0xa1, 0x9c, 0x41, 0xb6, 0x9a, 0x35, //0x0000ca88 .quad 3862600023340550428 - 0xc0, 0xd4, 0xc6, 0x8c, 0x1c, 0x24, 0x67, 0xf8, //0x0000ca90 .quad -547429124662700864 - 0x63, 0x4b, 0xc9, 0x03, 0xd2, 0x63, 0x01, 0xc3, //0x0000ca98 .quad -4395122007679087773 - 0xf8, 0x44, 0xfc, 0xd7, 0x91, 0x76, 0x40, 0x9b, //0x0000caa0 .quad -7259672230555269896 - 0x1e, 0xcf, 0x5d, 0x42, 0x63, 0xde, 0xe0, 0x79, //0x0000caa8 .quad 8782263791269039902 - 0x36, 0x56, 0xfb, 0x4d, 0x36, 0x94, 0x10, 0xc2, //0x0000cab0 .quad -4462904269766699466 - 0xe5, 0x42, 0xf5, 0x12, 0xfc, 0x15, 0x59, 0x98, //0x0000cab8 .quad -7468914334623251739 - 0xc4, 0x2b, 0x7a, 0xe1, 0x43, 0xb9, 0x94, 0xf2, //0x0000cac0 .quad -966944318780986428 - 0x9e, 0x93, 0xb2, 0x17, 0x7b, 0x5b, 0x6f, 0x3e, //0x0000cac8 .quad 4498915137003099038 - 0x5a, 0x5b, 0xec, 0x6c, 0xca, 0xf3, 0x9c, 0x97, //0x0000cad0 .quad -7521869226879198374 - 0x43, 0x9c, 0xcf, 0xee, 0x2c, 0x99, 0x05, 0xa7, //0x0000cad8 .quad -6411550076227838909 - 0x31, 0x72, 0x27, 0x08, 0xbd, 0x30, 0x84, 0xbd, //0x0000cae0 .quad -4790650515171610063 - 0x54, 0x83, 0x83, 0x2a, 0x78, 0xff, 0xc6, 0x50, //0x0000cae8 .quad 5820620459997365076 - 0xbd, 0x4e, 0x31, 0x4a, 0xec, 0x3c, 0xe5, 0xec, //0x0000caf0 .quad -1376627125537124675 - 0x29, 0x64, 0x24, 0x35, 0x56, 0xbf, 0xf8, 0xa4, //0x0000caf8 .quad -6559282480285457367 - 0x36, 0xd1, 0x5e, 0xae, 0x13, 0x46, 0x0f, 0x94, //0x0000cb00 .quad -7777920981101784778 - 0x9a, 0xbe, 0x36, 0xe1, 0x95, 0x77, 0x1b, 0x87, //0x0000cb08 .quad -8711237568605798758 - 0x84, 0x85, 0xf6, 0x99, 0x98, 0x17, 0x13, 0xb9, //0x0000cb10 .quad -5110715207949843068 - 0x40, 0x6e, 0x84, 0x59, 0x7b, 0x55, 0xe2, 0x28, //0x0000cb18 .quad 2946011094524915264 - 0xe5, 0x26, 0x74, 0xc0, 0x7e, 0xdd, 0x57, 0xe7, //0x0000cb20 .quad -1776707991509915931 - 0xd0, 0x89, 0xe5, 0x2f, 0xda, 0xea, 0x1a, 0x33, //0x0000cb28 .quad 3682513868156144080 - 0x4f, 0x98, 0x48, 0x38, 0x6f, 0xea, 0x96, 0x90, //0x0000cb30 .quad -8027971522334779313 - 0x22, 0x76, 0xef, 0x5d, 0xc8, 0xd2, 0xf0, 0x3f, //0x0000cb38 .quad 4607414176811284002 - 0x63, 0xbe, 0x5a, 0x06, 0x0b, 0xa5, 0xbc, 0xb4, //0x0000cb40 .quad -5423278384491086237 - 0xaa, 0x53, 0x6b, 0x75, 0x7a, 0x07, 0xed, 0x0f, //0x0000cb48 .quad 1147581702586717098 - 0xfb, 0x6d, 0xf1, 0xc7, 0x4d, 0xce, 0xeb, 0xe1, //0x0000cb50 .quad -2167411962186469893 - 0x95, 0x28, 0xc6, 0x12, 0x59, 0x49, 0xe8, 0xd3, //0x0000cb58 .quad -3177208890193991531 - 0xbd, 0xe4, 0xf6, 0x9c, 0xf0, 0x60, 0x33, 0x8d, //0x0000cb60 .quad -8272161504007625539 - 0x5d, 0xd9, 0xbb, 0xab, 0xd7, 0x2d, 0x71, 0x64, //0x0000cb68 .quad 7237616480483531101 - 0xec, 0x9d, 0x34, 0xc4, 0x2c, 0x39, 0x80, 0xb0, //0x0000cb70 .quad -5728515861582144020 - 0xb4, 0xcf, 0xaa, 0x96, 0x4d, 0x79, 0x8d, 0xbd, //0x0000cb78 .quad -4788037454677749836 - 0x67, 0xc5, 0x41, 0xf5, 0x77, 0x47, 0xa0, 0xdc, //0x0000cb80 .quad -2548958808550292121 - 0xa1, 0x83, 0x55, 0xfc, 0xa0, 0xd7, 0xf0, 0xec, //0x0000cb88 .quad -1373360799919799391 - 0x60, 0x1b, 0x49, 0xf9, 0xaa, 0x2c, 0xe4, 0x89, //0x0000cb90 .quad -8510628282985014432 - 0x45, 0x72, 0xb5, 0x9d, 0xc4, 0x86, 0x16, 0xf4, //0x0000cb98 .quad -858350499949874619 - 0x39, 0x62, 0x9b, 0xb7, 0xd5, 0x37, 0x5d, 0xac, //0x0000cba0 .quad -6026599335303880135 - 0xd6, 0xce, 0x22, 0xc5, 0x75, 0x28, 0x1c, 0x31, //0x0000cba8 .quad 3538747893490044630 - 0xc7, 0x3a, 0x82, 0x25, 0xcb, 0x85, 0x74, 0xd7, //0x0000cbb0 .quad -2921563150702462265 - 0x8c, 0x82, 0x6b, 0x36, 0x93, 0x32, 0x63, 0x7d, //0x0000cbb8 .quad 9035120885289943692 - 0xbc, 0x64, 0x71, 0xf7, 0x9e, 0xd3, 0xa8, 0x86, //0x0000cbc0 .quad -8743505996830120772 - 0x98, 0x31, 0x03, 0x02, 0x9c, 0xff, 0x5d, 0xae, //0x0000cbc8 .quad -5882264492762254952 - 0xeb, 0xbd, 0x4d, 0xb5, 0x86, 0x08, 0x53, 0xa8, //0x0000cbd0 .quad -6317696477610263061 - 0xfd, 0xfd, 0x83, 0x02, 0x83, 0x7f, 0xf5, 0xd9, //0x0000cbd8 .quad -2741144597525430787 - 0x66, 0x2d, 0xa1, 0x62, 0xa8, 0xca, 0x67, 0xd2, //0x0000cbe0 .quad -3285434578585440922 - 0x7c, 0xfd, 0x24, 0xc3, 0x63, 0xdf, 0x72, 0xd0, //0x0000cbe8 .quad -3426430746906788484 - 0x60, 0xbc, 0xa4, 0x3d, 0xa9, 0xde, 0x80, 0x83, //0x0000cbf0 .quad -8970925639256982432 - 0x6e, 0x1e, 0xf7, 0x59, 0x9e, 0xcb, 0x47, 0x42, //0x0000cbf8 .quad 4776009810824339054 - 0x78, 0xeb, 0x0d, 0x8d, 0x53, 0x16, 0x61, 0xa4, //0x0000cc00 .quad -6601971030643840136 - 0x09, 0xe6, 0x74, 0xf0, 0x85, 0xbe, 0xd9, 0x52, //0x0000cc08 .quad 5970012263530423817 - 0x56, 0x66, 0x51, 0x70, 0xe8, 0x5b, 0x79, 0xcd, //0x0000cc10 .quad -3640777769877412266 - 0x8c, 0x1f, 0x92, 0x6c, 0x27, 0x2e, 0x90, 0x67, //0x0000cc18 .quad 7462515329413029772 - 0xf6, 0xdf, 0x32, 0x46, 0x71, 0xd9, 0x6b, 0x80, //0x0000cc20 .quad -9193015133814464522 - 0xb7, 0x53, 0xdb, 0xa3, 0xd8, 0x1c, 0xba, 0x00, //0x0000cc28 .quad 52386062455755703 - 0xf3, 0x97, 0xbf, 0x97, 0xcd, 0xcf, 0x86, 0xa0, //0x0000cc30 .quad -6879582898840692749 - 0xa5, 0x28, 0xd2, 0xcc, 0x0e, 0xa4, 0xe8, 0x80, //0x0000cc38 .quad -9157889458785081179 - 0xf0, 0x7d, 0xaf, 0xfd, 0xc0, 0x83, 0xa8, 0xc8, //0x0000cc40 .quad -3987792605123478032 - 0xce, 0xb2, 0x06, 0x80, 0x12, 0xcd, 0x22, 0x61, //0x0000cc48 .quad 6999382250228200142 - 0x6c, 0x5d, 0x1b, 0x3d, 0xb1, 0xa4, 0xd2, 0xfa, //0x0000cc50 .quad -373054737976959636 - 0x82, 0x5f, 0x08, 0x20, 0x57, 0x80, 0x6b, 0x79, //0x0000cc58 .quad 8749227812785250178 - 0x63, 0x1a, 0x31, 0xc6, 0xee, 0xa6, 0xc3, 0x9c, //0x0000cc60 .quad -7150688238876681629 - 0xb1, 0x3b, 0x05, 0x74, 0x36, 0x30, 0xe3, 0xcb, //0x0000cc68 .quad -3755104653863994447 - 0xfc, 0x60, 0xbd, 0x77, 0xaa, 0x90, 0xf4, 0xc3, //0x0000cc70 .quad -4326674280168464132 - 0x9d, 0x8a, 0x06, 0x11, 0x44, 0xfc, 0xdb, 0xbe, //0x0000cc78 .quad -4693880817329993059 - 0x3b, 0xb9, 0xac, 0x15, 0xd5, 0xb4, 0xf1, 0xf4, //0x0000cc80 .quad -796656831783192261 - 0x45, 0x2d, 0x48, 0x15, 0x55, 0xfb, 0x92, 0xee, //0x0000cc88 .quad -1255665003235103419 - 0xc5, 0xf3, 0x8b, 0x2d, 0x05, 0x11, 0x17, 0x99, //0x0000cc90 .quad -7415439547505577019 - 0x4b, 0x1c, 0x4d, 0x2d, 0x15, 0xdd, 0x1b, 0x75, //0x0000cc98 .quad 8438581409832836171 - 0xb6, 0xf0, 0xee, 0x78, 0x46, 0xd5, 0x5c, 0xbf, //0x0000cca0 .quad -4657613415954583370 - 0x5e, 0x63, 0xa0, 0x78, 0x5a, 0xd4, 0x62, 0xd2, //0x0000cca8 .quad -3286831292991118498 - 0xe4, 0xac, 0x2a, 0x17, 0x98, 0x0a, 0x34, 0xef, //0x0000ccb0 .quad -1210330751515841308 - 0x35, 0x7c, 0xc8, 0x16, 0x71, 0x89, 0xfb, 0x86, //0x0000ccb8 .quad -8720225134666286027 - 0x0e, 0xac, 0x7a, 0x0e, 0x9f, 0x86, 0x80, 0x95, //0x0000ccc0 .quad -7673985747338482674 - 0xa1, 0x4d, 0x3d, 0xae, 0xe6, 0x35, 0x5d, 0xd4, //0x0000ccc8 .quad -3144297699952734815 - 0x12, 0x57, 0x19, 0xd2, 0x46, 0xa8, 0xe0, 0xba, //0x0000ccd0 .quad -4980796165745715438 - 0x0a, 0xa1, 0xcc, 0x59, 0x60, 0x83, 0x74, 0x89, //0x0000ccd8 .quad -8542058143368306422 - 0xd7, 0xac, 0x9f, 0x86, 0x58, 0xd2, 0x98, 0xe9, //0x0000cce0 .quad -1614309188754756393 - 0x4c, 0xc9, 0x3f, 0x70, 0x38, 0xa4, 0xd1, 0x2b, //0x0000cce8 .quad 3157485376071780684 - 0x06, 0xcc, 0x23, 0x54, 0x77, 0x83, 0xff, 0x91, //0x0000ccf0 .quad -7926472270612804602 - 0xd0, 0xdd, 0x27, 0x46, 0xa3, 0x06, 0x63, 0x7b, //0x0000ccf8 .quad 8890957387685944784 - 0x08, 0xbf, 0x2c, 0x29, 0x55, 0x64, 0x7f, 0xb6, //0x0000cd00 .quad -5296404319838617848 - 0x43, 0xd5, 0xb1, 0x17, 0x4c, 0xc8, 0x3b, 0x1a, //0x0000cd08 .quad 1890324697752655171 - 0xca, 0xee, 0x77, 0x73, 0x6a, 0x3d, 0x1f, 0xe4, //0x0000cd10 .quad -2008819381370884406 - 0x94, 0x4a, 0x9e, 0x1d, 0x5f, 0xba, 0xca, 0x20, //0x0000cd18 .quad 2362905872190818964 - 0x3e, 0xf5, 0x2a, 0x88, 0x62, 0x86, 0x93, 0x8e, //0x0000cd20 .quad -8173041140997884610 - 0x9d, 0xee, 0x82, 0x72, 0x7b, 0xb4, 0x7e, 0x54, //0x0000cd28 .quad 6088502188546649757 - 0x8d, 0xb2, 0x35, 0x2a, 0xfb, 0x67, 0x38, 0xb2, //0x0000cd30 .quad -5604615407819967859 - 0x44, 0xaa, 0x23, 0x4f, 0x9a, 0x61, 0x9e, 0xe9, //0x0000cd38 .quad -1612744301171463612 - 0x31, 0x1f, 0xc3, 0xf4, 0xf9, 0x81, 0xc6, 0xde, //0x0000cd40 .quad -2394083241347571919 - 0xd5, 0x94, 0xec, 0xe2, 0x00, 0xfa, 0x05, 0x64, //0x0000cd48 .quad 7207441660390446293 - 0x7e, 0xf3, 0xf9, 0x38, 0x3c, 0x11, 0x3c, 0x8b, //0x0000cd50 .quad -8413831053483314306 - 0x05, 0xdd, 0xd3, 0x8d, 0x40, 0xbc, 0x83, 0xde, //0x0000cd58 .quad -2412877989897052923 - 0x5e, 0x70, 0x38, 0x47, 0x8b, 0x15, 0x0b, 0xae, //0x0000cd60 .quad -5905602798426754978 - 0x46, 0xd4, 0x48, 0xb1, 0x50, 0xab, 0x24, 0x96, //0x0000cd68 .quad -7627783505798704058 - 0x76, 0x8c, 0x06, 0x19, 0xee, 0xda, 0x8d, 0xd9, //0x0000cd70 .quad -2770317479606055818 - 0x58, 0x09, 0x9b, 0xdd, 0x24, 0xd6, 0xad, 0x3b, //0x0000cd78 .quad 4300328673033783640 - 0xc9, 0x17, 0xa4, 0xcf, 0xd4, 0xa8, 0xf8, 0x87, //0x0000cd80 .quad -8648977452394866743 - 0xd7, 0xe5, 0x80, 0x0a, 0xd7, 0xa5, 0x4c, 0xe5, //0x0000cd88 .quad -1923980597781273129 - 0xbc, 0x1d, 0x8d, 0x03, 0x0a, 0xd3, 0xf6, 0xa9, //0x0000cd90 .quad -6199535797066195524 - 0x4d, 0x1f, 0x21, 0xcd, 0x4c, 0xcf, 0x9f, 0x5e, //0x0000cd98 .quad 6818396289628184397 - 0x2b, 0x65, 0x70, 0x84, 0xcc, 0x87, 0x74, 0xd4, //0x0000cda0 .quad -3137733727905356501 - 0x20, 0x67, 0x69, 0x00, 0x20, 0xc3, 0x47, 0x76, //0x0000cda8 .quad 8522995362035230496 - 0x3b, 0x3f, 0xc6, 0xd2, 0xdf, 0xd4, 0xc8, 0x84, //0x0000cdb0 .quad -8878612607581929669 - 0x74, 0xe0, 0x41, 0x00, 0xf4, 0xd9, 0xec, 0x29, //0x0000cdb8 .quad 3021029092058325108 - 0x09, 0xcf, 0x77, 0xc7, 0x17, 0x0a, 0xfb, 0xa5, //0x0000cdc0 .quad -6486579741050024183 - 0x91, 0x58, 0x52, 0x00, 0x71, 0x10, 0x68, 0xf4, //0x0000cdc8 .quad -835399653354481519 - 0xcc, 0xc2, 0x55, 0xb9, 0x9d, 0xcc, 0x79, 0xcf, //0x0000cdd0 .quad -3496538657885142324 - 0xb5, 0xee, 0x66, 0x40, 0x8d, 0x14, 0x82, 0x71, //0x0000cdd8 .quad 8179122470161673909 - 0xbf, 0x99, 0xd5, 0x93, 0xe2, 0x1f, 0xac, 0x81, //0x0000cde0 .quad -9102865688819295809 - 0x31, 0x55, 0x40, 0x48, 0xd8, 0x4c, 0xf1, 0xc6, //0x0000cde8 .quad -4111420493003729615 - 0x2f, 0x00, 0xcb, 0x38, 0xdb, 0x27, 0x17, 0xa2, //0x0000cdf0 .quad -6766896092596731857 - 0x7d, 0x6a, 0x50, 0x5a, 0x0e, 0xa0, 0xad, 0xb8, //0x0000cdf8 .quad -5139275616254662019 - 0x3b, 0xc0, 0xfd, 0x06, 0xd2, 0xf1, 0x9c, 0xca, //0x0000ce00 .quad -3846934097318526917 - 0x1d, 0x85, 0xe4, 0xf0, 0x11, 0x08, 0xd9, 0xa6, //0x0000ce08 .quad -6424094520318327523 - 0x4a, 0x30, 0xbd, 0x88, 0x46, 0x2e, 0x44, 0xfd, //0x0000ce10 .quad -196981603220770742 - 0x64, 0xa6, 0x1d, 0x6d, 0x16, 0x4a, 0x8f, 0x90, //0x0000ce18 .quad -8030118150397909404 - 0x2e, 0x3e, 0x76, 0x15, 0xec, 0x9c, 0x4a, 0x9e, //0x0000ce20 .quad -7040642529654063570 - 0xff, 0x87, 0x32, 0x04, 0x4e, 0x8e, 0x59, 0x9a, //0x0000ce28 .quad -7324666853212387329 - 0xba, 0xcd, 0xd3, 0x1a, 0x27, 0x44, 0xdd, 0xc5, //0x0000ce30 .quad -4189117143640191558 - 0xfe, 0x29, 0x3f, 0x85, 0xe1, 0xf1, 0xef, 0x40, //0x0000ce38 .quad 4679224488766679550 - 0x28, 0xc1, 0x88, 0xe1, 0x30, 0x95, 0x54, 0xf7, //0x0000ce40 .quad -624710411122851544 - 0x7d, 0xf4, 0x8e, 0xe6, 0x59, 0xee, 0x2b, 0xd1, //0x0000ce48 .quad -3374341425896426371 - 0xb9, 0x78, 0xf5, 0x8c, 0x3e, 0xdd, 0x94, 0x9a, //0x0000ce50 .quad -7307973034592864071 - 0xcf, 0x58, 0x19, 0x30, 0xf8, 0x74, 0xbb, 0x82, //0x0000ce58 .quad -9026492418826348337 - 0xe7, 0xd6, 0x32, 0x30, 0x8e, 0x14, 0x3a, 0xc1, //0x0000ce60 .quad -4523280274813692185 - 0x02, 0xaf, 0x1f, 0x3c, 0x36, 0x52, 0x6a, 0xe3, //0x0000ce68 .quad -2059743486678159614 - 0xa1, 0x8c, 0x3f, 0xbc, 0xb1, 0x99, 0x88, 0xf1, //0x0000ce70 .quad -1042414325089727327 - 0xc2, 0x9a, 0x27, 0xcb, 0xc3, 0xe6, 0x44, 0xdc, //0x0000ce78 .quad -2574679358347699518 - 0xe5, 0xb7, 0xa7, 0x15, 0x0f, 0x60, 0xf5, 0x96, //0x0000ce80 .quad -7569037980822161435 - 0xba, 0xc0, 0xf8, 0x5e, 0x3a, 0x10, 0xab, 0x29, //0x0000ce88 .quad 3002511419460075706 - 0xde, 0xa5, 0x11, 0xdb, 0x12, 0xb8, 0xb2, 0xbc, //0x0000ce90 .quad -4849611457600313890 - 0xe8, 0xf0, 0xb6, 0xf6, 0x48, 0xd4, 0x15, 0x74, //0x0000ce98 .quad 8364825292752482536 - 0x56, 0x0f, 0xd6, 0x91, 0x17, 0x66, 0xdf, 0xeb, //0x0000cea0 .quad -1450328303573004458 - 0x22, 0xad, 0x64, 0x34, 0x5b, 0x49, 0x1b, 0x11, //0x0000cea8 .quad 1232659579085827362 - 0x95, 0xc9, 0x25, 0xbb, 0xce, 0x9f, 0x6b, 0x93, //0x0000ceb0 .quad -7823984217374209643 - 0x35, 0xec, 0xbe, 0x00, 0xd9, 0x0d, 0xb1, 0xca, //0x0000ceb8 .quad -3841273781498745803 - 0xfb, 0x3b, 0xef, 0x69, 0xc2, 0x87, 0x46, 0xb8, //0x0000cec0 .quad -5168294253290374149 - 0x43, 0xa7, 0xee, 0x40, 0x4f, 0x51, 0x5d, 0x3d, //0x0000cec8 .quad 4421779809981343555 - 0xfa, 0x0a, 0x6b, 0x04, 0xb3, 0x29, 0x58, 0xe6, //0x0000ced0 .quad -1848681798185579782 - 0x13, 0x51, 0x2a, 0x11, 0xa3, 0xa5, 0xb4, 0x0c, //0x0000ced8 .quad 915538744049291539 - 0xdc, 0xe6, 0xc2, 0xe2, 0x0f, 0x1a, 0xf7, 0x8f, //0x0000cee0 .quad -8072955151507069220 - 0xac, 0x72, 0xba, 0xea, 0x85, 0xe7, 0xf0, 0x47, //0x0000cee8 .quad 5183897733458195116 - 0x93, 0xa0, 0x73, 0xdb, 0x93, 0xe0, 0xf4, 0xb3, //0x0000cef0 .quad -5479507920956448621 - 0x57, 0x0f, 0x69, 0x65, 0x67, 0x21, 0xed, 0x59, //0x0000cef8 .quad 6479872166822743895 - 0xb8, 0x88, 0x50, 0xd2, 0xb8, 0x18, 0xf2, 0xe0, //0x0000cf00 .quad -2237698882768172872 - 0x2d, 0x53, 0xc3, 0x3e, 0xc1, 0x69, 0x68, 0x30, //0x0000cf08 .quad 3488154190101041965 - 0x73, 0x55, 0x72, 0x83, 0x73, 0x4f, 0x97, 0x8c, //0x0000cf10 .quad -8316090829371189901 - 0xfc, 0x13, 0x3a, 0xc7, 0x18, 0x42, 0x41, 0x1e, //0x0000cf18 .quad 2180096368813151228 - 0xcf, 0xea, 0x4e, 0x64, 0x50, 0x23, 0xbd, 0xaf, //0x0000cf20 .quad -5783427518286599473 - 0xfb, 0x98, 0x08, 0xf9, 0x9e, 0x92, 0xd1, 0xe5, //0x0000cf28 .quad -1886565557410948869 - 0x83, 0xa5, 0x62, 0x7d, 0x24, 0x6c, 0xac, 0xdb, //0x0000cf30 .quad -2617598379430861437 - 0x3a, 0xbf, 0x4a, 0xb7, 0x46, 0xf7, 0x45, 0xdf, //0x0000cf38 .quad -2358206946763686086 - 0x72, 0xa7, 0x5d, 0xce, 0x96, 0xc3, 0x4b, 0x89, //0x0000cf40 .quad -8553528014785370254 - 0x84, 0xb7, 0x8e, 0x32, 0x8c, 0xba, 0x8b, 0x6b, //0x0000cf48 .quad 7749492695127472004 - 0x4f, 0x11, 0xf5, 0x81, 0x7c, 0xb4, 0x9e, 0xab, //0x0000cf50 .quad -6080224000054324913 - 0x65, 0x65, 0x32, 0x3f, 0x2f, 0xa9, 0x6e, 0x06, //0x0000cf58 .quad 463493832054564197 - 0xa2, 0x55, 0x72, 0xa2, 0x9b, 0x61, 0x86, 0xd6, //0x0000cf60 .quad -2988593981640518238 - 0xbe, 0xfe, 0xfe, 0x0e, 0x7b, 0x53, 0x0a, 0xc8, //0x0000cf68 .quad -4032318728359182658 - 0x85, 0x75, 0x87, 0x45, 0x01, 0xfd, 0x13, 0x86, //0x0000cf70 .quad -8785400266166405755 - 0x37, 0x5f, 0x5f, 0xe9, 0x2c, 0x74, 0x06, 0xbd, //0x0000cf78 .quad -4826042214438183113 - 0xe7, 0x52, 0xe9, 0x96, 0x41, 0xfc, 0x98, 0xa7, //0x0000cf80 .quad -6370064314280619289 - 0x05, 0x37, 0xb7, 0x23, 0x38, 0x11, 0x48, 0x2c, //0x0000cf88 .quad 3190819268807046917 - 0xa0, 0xa7, 0xa3, 0xfc, 0x51, 0x3b, 0x7f, 0xd1, //0x0000cf90 .quad -3350894374423386208 - 0xc6, 0x04, 0xa5, 0x2c, 0x86, 0x15, 0x5a, 0xf7, //0x0000cf98 .quad -623161932418579258 - 0xc4, 0x48, 0xe6, 0x3d, 0x13, 0x85, 0xef, 0x82, //0x0000cfa0 .quad -9011838011655698236 - 0xfc, 0x22, 0xe7, 0xdb, 0x73, 0x4d, 0x98, 0x9a, //0x0000cfa8 .quad -7307005235402693892 - 0xf5, 0xda, 0x5f, 0x0d, 0x58, 0x66, 0xab, 0xa3, //0x0000cfb0 .quad -6653111496142234891 - 0xbb, 0xeb, 0xe0, 0xd2, 0xd0, 0x60, 0x3e, 0xc1, //0x0000cfb8 .quad -4522070525825979461 - 0xb3, 0xd1, 0xb7, 0x10, 0xee, 0x3f, 0x96, 0xcc, //0x0000cfc0 .quad -3704703351750405709 - 0xa9, 0x26, 0x99, 0x07, 0x05, 0xf9, 0x8d, 0x31, //0x0000cfc8 .quad 3570783879572301481 - 0x1f, 0xc6, 0xe5, 0x94, 0xe9, 0xcf, 0xbb, 0xff, //0x0000cfd0 .quad -19193171260619233 - 0x53, 0x70, 0x7f, 0x49, 0x46, 0x77, 0xf1, 0xfd, //0x0000cfd8 .quad -148206168962011053 - 0xd3, 0x9b, 0x0f, 0xfd, 0xf1, 0x61, 0xd5, 0x9f, //0x0000cfe0 .quad -6929524759678968877 - 0x34, 0xa6, 0xef, 0xed, 0x8b, 0xea, 0xb6, 0xfe, //0x0000cfe8 .quad -92628855601256908 - 0xc8, 0x82, 0x53, 0x7c, 0x6e, 0xba, 0xca, 0xc7, //0x0000cff0 .quad -4050219931171323192 - 0xc1, 0x8f, 0x6b, 0xe9, 0x2e, 0xa5, 0x64, 0xfe, //0x0000cff8 .quad -115786069501571135 - 0x7b, 0x63, 0x68, 0x1b, 0x0a, 0x69, 0xbd, 0xf9, //0x0000d000 .quad -451088895536766085 - 0xb1, 0x73, 0xc6, 0xa3, 0x7a, 0xce, 0xfd, 0x3d, //0x0000d008 .quad 4466953431550423985 - 0x2d, 0x3e, 0x21, 0x51, 0xa6, 0x61, 0x16, 0x9c, //0x0000d010 .quad -7199459587351560659 - 0x4f, 0x08, 0x5c, 0xa6, 0x0c, 0xa1, 0xbe, 0x06, //0x0000d018 .quad 486002885505321039 - 0xb8, 0x8d, 0x69, 0xe5, 0x0f, 0xfa, 0x1b, 0xc3, //0x0000d020 .quad -4387638465762062920 - 0x63, 0x0a, 0xf3, 0xcf, 0x4f, 0x49, 0x6e, 0x48, //0x0000d028 .quad 5219189625309039203 - 0x26, 0xf1, 0xc3, 0xde, 0x93, 0xf8, 0xe2, 0xf3, //0x0000d030 .quad -872862063775190746 - 0xfb, 0xcc, 0xef, 0xc3, 0xa3, 0xdb, 0x89, 0x5a, //0x0000d038 .quad 6523987031636299003 - 0xb7, 0x76, 0x3a, 0x6b, 0x5c, 0xdb, 0x6d, 0x98, //0x0000d040 .quad -7463067817500576073 - 0x1d, 0xe0, 0x75, 0x5a, 0x46, 0x29, 0x96, 0xf8, //0x0000d048 .quad -534194123654701027 - 0x65, 0x14, 0x09, 0x86, 0x33, 0x52, 0x89, 0xbe, //0x0000d050 .quad -4717148753448332187 - 0x24, 0x58, 0x13, 0xf1, 0x97, 0xb3, 0xbb, 0xf6, //0x0000d058 .quad -667742654568376284 - 0x7f, 0x59, 0x8b, 0x67, 0xc0, 0xa6, 0x2b, 0xee, //0x0000d060 .quad -1284749923383027329 - 0x2d, 0x2e, 0x58, 0xed, 0x7d, 0xa0, 0x6a, 0x74, //0x0000d068 .quad 8388693718644305453 - 0xef, 0x17, 0xb7, 0x40, 0x38, 0x48, 0xdb, 0x94, //0x0000d070 .quad -7720497729755473937 - 0xdd, 0x1c, 0x57, 0xb4, 0x4e, 0xa4, 0xc2, 0xa8, //0x0000d078 .quad -6286281471915778851 - 0xeb, 0xdd, 0xe4, 0x50, 0x46, 0x1a, 0x12, 0xba, //0x0000d080 .quad -5038936143766954517 - 0x14, 0xe4, 0x6c, 0x61, 0x62, 0x4d, 0xf3, 0x92, //0x0000d088 .quad -7857851839894723564 - 0x66, 0x15, 0x1e, 0xe5, 0xd7, 0xa0, 0x96, 0xe8, //0x0000d090 .quad -1686984161281305242 - 0x18, 0x1d, 0xc8, 0xf9, 0xba, 0x20, 0xb0, 0x77, //0x0000d098 .quad 8624429273841147160 - 0x60, 0xcd, 0x32, 0xef, 0x86, 0x24, 0x5e, 0x91, //0x0000d0a0 .quad -7971894128441897632 - 0x2f, 0x12, 0x1d, 0xdc, 0x74, 0x14, 0xce, 0x0a, //0x0000d0a8 .quad 778582277723329071 - 0xb8, 0x80, 0xff, 0xaa, 0xa8, 0xad, 0xb5, 0xb5, //0x0000d0b0 .quad -5353181642124984136 - 0xbb, 0x56, 0x24, 0x13, 0x92, 0x99, 0x81, 0x0d, //0x0000d0b8 .quad 973227847154161339 - 0xe6, 0x60, 0xbf, 0xd5, 0x12, 0x19, 0x23, 0xe3, //0x0000d0c0 .quad -2079791034228842266 - 0x6a, 0x6c, 0xed, 0x97, 0xf6, 0xff, 0xe1, 0x10, //0x0000d0c8 .quad 1216534808942701674 - 0x8f, 0x9c, 0x97, 0xc5, 0xab, 0xef, 0xf5, 0x8d, //0x0000d0d0 .quad -8217398424034108273 - 0xc2, 0x63, 0xf4, 0x1e, 0xfa, 0x3f, 0x8d, 0xca, //0x0000d0d8 .quad -3851351762838199358 - 0xb3, 0x83, 0xfd, 0xb6, 0x96, 0x6b, 0x73, 0xb1, //0x0000d0e0 .quad -5660062011615247437 - 0xb3, 0x7c, 0xb1, 0xa6, 0xf8, 0x8f, 0x30, 0xbd, //0x0000d0e8 .quad -4814189703547749197 - 0xa0, 0xe4, 0xbc, 0x64, 0x7c, 0x46, 0xd0, 0xdd, //0x0000d0f0 .quad -2463391496091671392 - 0xdf, 0xdb, 0x5d, 0xd0, 0xf6, 0xb3, 0x7c, 0xac, //0x0000d0f8 .quad -6017737129434686497 - 0xe4, 0x0e, 0xf6, 0xbe, 0x0d, 0x2c, 0xa2, 0x8a, //0x0000d100 .quad -8457148712698376476 - 0x6c, 0xa9, 0x3a, 0x42, 0x7a, 0xf0, 0xcd, 0x6b, //0x0000d108 .quad 7768129340171790700 - 0x9d, 0x92, 0xb3, 0x2e, 0x11, 0xb7, 0x4a, 0xad, //0x0000d110 .quad -5959749872445582691 - 0xc7, 0x53, 0xc9, 0xd2, 0x98, 0x6c, 0xc1, 0x86, //0x0000d118 .quad -8736582398494813241 - 0x44, 0x77, 0x60, 0x7a, 0xd5, 0x64, 0x9d, 0xd8, //0x0000d120 .quad -2838001322129590460 - 0xb8, 0xa8, 0x7b, 0x07, 0xbf, 0xc7, 0x71, 0xe8, //0x0000d128 .quad -1697355961263740744 - 0x8b, 0x4a, 0x7c, 0x6c, 0x05, 0x5f, 0x62, 0x87, //0x0000d130 .quad -8691279853972075893 - 0x73, 0x49, 0xad, 0x64, 0xd7, 0x1c, 0x47, 0x11, //0x0000d138 .quad 1244995533423855987 - 0x2d, 0x5d, 0x9b, 0xc7, 0xc6, 0xf6, 0x3a, 0xa9, //0x0000d140 .quad -6252413799037706963 - 0xd0, 0x9b, 0xd8, 0x3d, 0x0d, 0xe4, 0x98, 0xd5, //0x0000d148 .quad -3055441601647567920 - 0x79, 0x34, 0x82, 0x79, 0x78, 0xb4, 0x89, 0xd3, //0x0000d150 .quad -3203831230369745799 - 0xc4, 0xc2, 0x4e, 0x8d, 0x10, 0x1d, 0xff, 0x4a, //0x0000d158 .quad 5404070034795315908 - 0xcb, 0x60, 0xf1, 0x4b, 0xcb, 0x10, 0x36, 0x84, //0x0000d160 .quad -8919923546622172981 - 0xbb, 0x39, 0x51, 0x58, 0x2a, 0x72, 0xdf, 0xce, //0x0000d168 .quad -3539985255894009413 - 0xfe, 0xb8, 0xed, 0x1e, 0xfe, 0x94, 0x43, 0xa5, //0x0000d170 .quad -6538218414850328322 - 0x29, 0x88, 0x65, 0xee, 0xb4, 0x4e, 0x97, 0xc2, //0x0000d178 .quad -4424981569867511767 - 0x3e, 0x27, 0xa9, 0xa6, 0x3d, 0x7a, 0x94, 0xce, //0x0000d180 .quad -3561087000135522498 - 0x33, 0xea, 0xfe, 0x29, 0x62, 0x22, 0x3d, 0x73, //0x0000d188 .quad 8303831092947774003 - 0x87, 0xb8, 0x29, 0x88, 0x66, 0xcc, 0x1c, 0x81, //0x0000d190 .quad -9143208402725783417 - 0x60, 0x52, 0x3f, 0x5a, 0x7d, 0x35, 0x06, 0x08, //0x0000d198 .quad 578208414664970848 - 0xa8, 0x26, 0x34, 0x2a, 0x80, 0xff, 0x63, 0xa1, //0x0000d1a0 .quad -6817324484979841368 - 0xf8, 0x26, 0xcf, 0xb0, 0xdc, 0xc2, 0x07, 0xca, //0x0000d1a8 .quad -3888925500096174344 - 0x52, 0x30, 0xc1, 0x34, 0x60, 0xff, 0xbc, 0xc9, //0x0000d1b0 .quad -3909969587797413806 - 0xb6, 0xf0, 0x02, 0xdd, 0x93, 0xb3, 0x89, 0xfc, //0x0000d1b8 .quad -249470856692830026 - 0x67, 0x7c, 0xf1, 0x41, 0x38, 0x3f, 0x2c, 0xfc, //0x0000d1c0 .quad -275775966319379353 - 0xe3, 0xac, 0x43, 0xd4, 0x78, 0x20, 0xac, 0xbb, //0x0000d1c8 .quad -4923524589293425437 - 0xc0, 0xed, 0x36, 0x29, 0x83, 0xa7, 0x9b, 0x9d, //0x0000d1d0 .quad -7089889006590693952 - 0x0e, 0x4c, 0xaa, 0x84, 0x4b, 0x94, 0x4b, 0xd5, //0x0000d1d8 .quad -3077202868308390898 - 0x31, 0xa9, 0x84, 0xf3, 0x63, 0x91, 0x02, 0xc5, //0x0000d1e0 .quad -4250675239810979535 - 0x12, 0xdf, 0xd4, 0x65, 0x5e, 0x79, 0x9e, 0x0a, //0x0000d1e8 .quad 765182433041899282 - 0x7d, 0xd3, 0x65, 0xf0, 0xbc, 0x35, 0x43, 0xf6, //0x0000d1f0 .quad -701658031336336515 - 0xd6, 0x16, 0x4a, 0xff, 0xb5, 0x17, 0x46, 0x4d, //0x0000d1f8 .quad 5568164059729762006 - 0x2e, 0xa4, 0x3f, 0x16, 0x96, 0x01, 0xea, 0x99, //0x0000d200 .quad -7356065297226292178 - 0x46, 0x4e, 0x8e, 0xbf, 0xd1, 0xce, 0x4b, 0x50, //0x0000d208 .quad 5785945546544795206 - 0x39, 0x8d, 0xcf, 0x9b, 0xfb, 0x81, 0x64, 0xc0, //0x0000d210 .quad -4583395603105477319 - 0xd7, 0xe1, 0x71, 0x2f, 0x86, 0xc2, 0x5e, 0xe4, //0x0000d218 .quad -1990940103673781801 - 0x88, 0x70, 0xc3, 0x82, 0x7a, 0xa2, 0x7d, 0xf0, //0x0000d220 .quad -1117558485454458744 - 0x4d, 0x5a, 0x4e, 0xbb, 0x27, 0x73, 0x76, 0x5d, //0x0000d228 .quad 6734696907262548557 - 0x55, 0x26, 0xba, 0x91, 0x8c, 0x85, 0x4e, 0x96, //0x0000d230 .quad -7616003081050118571 - 0x70, 0xf8, 0x10, 0xd5, 0xf8, 0x07, 0x6a, 0x3a, //0x0000d238 .quad 4209185567039092848 - 0xea, 0xaf, 0x28, 0xb6, 0xef, 0x26, 0xe2, 0xbb, //0x0000d240 .quad -4908317832885260310 - 0x8c, 0x36, 0x55, 0x0a, 0xf7, 0x89, 0x04, 0x89, //0x0000d248 .quad -8573576096483297652 - 0xe5, 0xdb, 0xb2, 0xa3, 0xab, 0xb0, 0xda, 0xea, //0x0000d250 .quad -1523711272679187483 - 0x2f, 0x84, 0xea, 0xcc, 0x74, 0xac, 0x45, 0x2b, //0x0000d258 .quad 3118087934678041647 - 0x6f, 0xc9, 0x4f, 0x46, 0x6b, 0xae, 0xc8, 0x92, //0x0000d260 .quad -7869848573065574033 - 0x9e, 0x92, 0x12, 0x00, 0xc9, 0x8b, 0x0b, 0x3b, //0x0000d268 .quad 4254647968387469982 - 0xcb, 0xbb, 0xe3, 0x17, 0x06, 0xda, 0x7a, 0xb7, //0x0000d270 .quad -5225624697904579637 - 0x45, 0x37, 0x17, 0x40, 0xbb, 0x6e, 0xce, 0x09, //0x0000d278 .quad 706623942056949573 - 0xbd, 0xaa, 0xdc, 0x9d, 0x87, 0x90, 0x59, 0xe5, //0x0000d280 .quad -1920344853953336643 - 0x16, 0x05, 0x1d, 0x10, 0x6a, 0x0a, 0x42, 0xcc, //0x0000d288 .quad -3728406090856200938 - 0xb6, 0xea, 0xa9, 0xc2, 0x54, 0xfa, 0x57, 0x8f, //0x0000d290 .quad -8117744561361917258 - 0x2e, 0x23, 0x12, 0x4a, 0x82, 0x46, 0xa9, 0x9f, //0x0000d298 .quad -6941939825212513490 - 0x64, 0x65, 0x54, 0xf3, 0xe9, 0xf8, 0x2d, 0xb3, //0x0000d2a0 .quad -5535494683275008668 - 0xfa, 0xab, 0x96, 0xdc, 0x22, 0x98, 0x93, 0x47, //0x0000d2a8 .quad 5157633273766521850 - 0xbd, 0x7e, 0x29, 0x70, 0x24, 0x77, 0xf9, 0xdf, //0x0000d2b0 .quad -2307682335666372931 - 0xf8, 0x56, 0xbc, 0x93, 0x2b, 0x7e, 0x78, 0x59, //0x0000d2b8 .quad 6447041592208152312 - 0x36, 0xef, 0x19, 0xc6, 0x76, 0xea, 0xfb, 0x8b, //0x0000d2c0 .quad -8359830487432564938 - 0x5b, 0xb6, 0x55, 0x3c, 0xdb, 0x4e, 0xeb, 0x57, //0x0000d2c8 .quad 6335244004343789147 - 0x03, 0x6b, 0xa0, 0x77, 0x14, 0xe5, 0xfa, 0xae, //0x0000d2d0 .quad -5838102090863318269 - 0xf2, 0x23, 0x6b, 0x0b, 0x92, 0x22, 0xe6, 0xed, //0x0000d2d8 .quad -1304317031425039374 - 0xc4, 0x85, 0x88, 0x95, 0x59, 0x9e, 0xb9, 0xda, //0x0000d2e0 .quad -2685941595151759932 - 0xee, 0xec, 0x45, 0x8e, 0x36, 0xab, 0x5f, 0xe9, //0x0000d2e8 .quad -1630396289281299218 - 0x9b, 0x53, 0x75, 0xfd, 0xf7, 0x02, 0xb4, 0x88, //0x0000d2f0 .quad -8596242524610931813 - 0x15, 0xb4, 0xeb, 0x18, 0x02, 0xcb, 0xdb, 0x11, //0x0000d2f8 .quad 1286845328412881941 - 0x81, 0xa8, 0xd2, 0xfc, 0xb5, 0x03, 0xe1, 0xaa, //0x0000d300 .quad -6133617137336276863 - 0x1a, 0xa1, 0x26, 0x9f, 0xc2, 0xbd, 0x52, 0xd6, //0x0000d308 .quad -3003129357911285478 - 0xa2, 0x52, 0x07, 0x7c, 0xa3, 0x44, 0x99, 0xd5, //0x0000d310 .quad -3055335403242958174 - 0x60, 0x49, 0xf0, 0x46, 0x33, 0x6d, 0xe7, 0x4b, //0x0000d318 .quad 5469460339465668960 - 0xa5, 0x93, 0x84, 0x2d, 0xe6, 0xca, 0x7f, 0x85, //0x0000d320 .quad -8827113654667930715 - 0xdc, 0x2d, 0x56, 0x0c, 0x40, 0xa4, 0x70, 0x6f, //0x0000d328 .quad 8030098730593431004 - 0x8e, 0xb8, 0xe5, 0xb8, 0x9f, 0xbd, 0xdf, 0xa6, //0x0000d330 .quad -6422206049907525490 - 0x53, 0xb9, 0x6b, 0x0f, 0x50, 0xcd, 0x4c, 0xcb, //0x0000d338 .quad -3797434642040374957 - 0xb2, 0x26, 0x1f, 0xa7, 0x07, 0xad, 0x97, 0xd0, //0x0000d340 .quad -3416071543957018958 - 0xa8, 0xa7, 0x46, 0x13, 0xa4, 0x00, 0x20, 0x7e, //0x0000d348 .quad 9088264752731695016 - 0x2f, 0x78, 0x73, 0xc8, 0x24, 0xcc, 0x5e, 0x82, //0x0000d350 .quad -9052573742614218705 - 0xc9, 0x28, 0x0c, 0x8c, 0x66, 0x00, 0xd4, 0x8e, //0x0000d358 .quad -8154892584824854327 - 0x3b, 0x56, 0x90, 0xfa, 0x2d, 0x7f, 0xf6, 0xa2, //0x0000d360 .quad -6704031159840385477 - 0xfb, 0x32, 0x0f, 0x2f, 0x80, 0x00, 0x89, 0x72, //0x0000d368 .quad 8253128342678483707 - 0xca, 0x6b, 0x34, 0x79, 0xf9, 0x1e, 0xb4, 0xcb, //0x0000d370 .quad -3768352931373093942 - 0xba, 0xff, 0xd2, 0x3a, 0xa0, 0x40, 0x2b, 0x4f, //0x0000d378 .quad 5704724409920716730 - 0xbc, 0x86, 0x81, 0xd7, 0xb7, 0x26, 0xa1, 0xfe, //0x0000d380 .quad -98755145788979524 - 0xa9, 0xbf, 0x87, 0x49, 0xc8, 0x10, 0xf6, 0xe2, //0x0000d388 .quad -2092466524453879895 - 0x36, 0xf4, 0xb0, 0xe6, 0x32, 0xb8, 0x24, 0x9f, //0x0000d390 .quad -6979250993759194058 - 0xca, 0xd7, 0xf4, 0x2d, 0x7d, 0xca, 0xd9, 0x0d, //0x0000d398 .quad 998051431430019018 - 0x43, 0x31, 0x5d, 0xa0, 0x3f, 0xe6, 0xed, 0xc6, //0x0000d3a0 .quad -4112377723771604669 - 0xbc, 0x0d, 0x72, 0x79, 0x1c, 0x3d, 0x50, 0x91, //0x0000d3a8 .quad -7975807747567252036 - 0x94, 0x7d, 0x74, 0x88, 0xcf, 0x5f, 0xa9, 0xf8, //0x0000d3b0 .quad -528786136287117932 - 0x2b, 0x91, 0xce, 0x97, 0x63, 0x4c, 0xa4, 0x75, //0x0000d3b8 .quad 8476984389250486571 - 0x7c, 0xce, 0x48, 0xb5, 0xe1, 0xdb, 0x69, 0x9b, //0x0000d3c0 .quad -7248020362820530564 - 0xbb, 0x1a, 0xe1, 0x3e, 0xbe, 0xaf, 0x86, 0xc9, //0x0000d3c8 .quad -3925256793573221701 - 0x1b, 0x02, 0x9b, 0x22, 0xda, 0x52, 0x44, 0xc2, //0x0000d3d0 .quad -4448339435098275301 - 0x69, 0x61, 0x99, 0xce, 0xad, 0x5b, 0xe8, 0xfb, //0x0000d3d8 .quad -294884973539139223 - 0xa2, 0xc2, 0x41, 0xab, 0x90, 0x67, 0xd5, 0xf2, //0x0000d3e0 .quad -948738275445456222 - 0xc4, 0xb9, 0x3f, 0x42, 0x99, 0x72, 0xe2, 0xfa, //0x0000d3e8 .quad -368606216923924028 - 0xa5, 0x19, 0x09, 0x6b, 0xba, 0x60, 0xc5, 0x97, //0x0000d3f0 .quad -7510490449794491995 - 0x1b, 0xd4, 0x67, 0xc9, 0x9f, 0x87, 0xcd, 0xdc, //0x0000d3f8 .quad -2536221894791146469 - 0x0f, 0x60, 0xcb, 0x05, 0xe9, 0xb8, 0xb6, 0xbd, //0x0000d400 .quad -4776427043815727089 - 0x21, 0xc9, 0xc1, 0xbb, 0x87, 0xe9, 0x00, 0x54, //0x0000d408 .quad 6053094668365842721 - 0x13, 0x38, 0x3e, 0x47, 0x23, 0x67, 0x24, 0xed, //0x0000d410 .quad -1358847786342270957 - 0x69, 0x3b, 0xb2, 0xaa, 0xe9, 0x23, 0x01, 0x29, //0x0000d418 .quad 2954682317029915497 - 0x0b, 0xe3, 0x86, 0x0c, 0x76, 0xc0, 0x36, 0x94, //0x0000d420 .quad -7766808894105001205 - 0x22, 0x65, 0xaf, 0x0a, 0x72, 0xb6, 0xa0, 0xf9, //0x0000d428 .quad -459166561069996766 - 0xce, 0x9b, 0xa8, 0x8f, 0x93, 0x70, 0x44, 0xb9, //0x0000d430 .quad -5096825099203863602 - 0x6a, 0x3e, 0x5b, 0x8d, 0x0e, 0xe4, 0x08, 0xf8, //0x0000d438 .quad -573958201337495958 - 0xc2, 0xc2, 0x92, 0x73, 0xb8, 0x8c, 0x95, 0xe7, //0x0000d440 .quad -1759345355577441598 - 0x05, 0x0e, 0xb2, 0x30, 0x12, 0x1d, 0x0b, 0xb6, //0x0000d448 .quad -5329133770099257851 - 0xb9, 0xb9, 0x3b, 0x48, 0xf3, 0x77, 0xbd, 0x90, //0x0000d450 .quad -8017119874876982855 - 0xc3, 0x48, 0x6f, 0x5e, 0x2b, 0xf2, 0xc6, 0xb1, //0x0000d458 .quad -5636551615525730109 - 0x28, 0xa8, 0x4a, 0x1a, 0xf0, 0xd5, 0xec, 0xb4, //0x0000d460 .quad -5409713825168840664 - 0xf4, 0x1a, 0x0b, 0x36, 0xb6, 0xae, 0x38, 0x1e, //0x0000d468 .quad 2177682517447613172 - 0x32, 0x52, 0xdd, 0x20, 0x6c, 0x0b, 0x28, 0xe2, //0x0000d470 .quad -2150456263033662926 - 0xb1, 0xe1, 0x8d, 0xc3, 0x63, 0xda, 0xc6, 0x25, //0x0000d478 .quad 2722103146809516465 - 0x5f, 0x53, 0x8a, 0x94, 0x23, 0x07, 0x59, 0x8d, //0x0000d480 .quad -8261564192037121185 - 0x0f, 0xad, 0x38, 0x5a, 0x7e, 0x48, 0x9c, 0x57, //0x0000d488 .quad 6313000485183335695 - 0x37, 0xe8, 0xac, 0x79, 0xec, 0x48, 0xaf, 0xb0, //0x0000d490 .quad -5715269221619013577 - 0x52, 0xd8, 0xc6, 0xf0, 0x9d, 0x5a, 0x83, 0x2d, //0x0000d498 .quad 3279564588051781714 - 0x44, 0x22, 0x18, 0x98, 0x27, 0x1b, 0xdb, 0xdc, //0x0000d4a0 .quad -2532400508596379068 - 0x66, 0x8e, 0xf8, 0x6c, 0x45, 0x31, 0xe4, 0xf8, //0x0000d4a8 .quad -512230283362660762 - 0x6b, 0x15, 0x0f, 0xbf, 0xf8, 0xf0, 0x08, 0x8a, //0x0000d4b0 .quad -8500279345513818773 - 0x00, 0x59, 0x1b, 0x64, 0xcb, 0x9e, 0x8e, 0x1b, //0x0000d4b8 .quad 1985699082112030976 - 0xc5, 0xda, 0xd2, 0xee, 0x36, 0x2d, 0x8b, 0xac, //0x0000d4c0 .quad -6013663163464885563 - 0x40, 0x2f, 0x22, 0x3d, 0x7e, 0x46, 0x72, 0xe2, //0x0000d4c8 .quad -2129562165787349184 - 0x77, 0x91, 0x87, 0xaa, 0x84, 0xf8, 0xad, 0xd7, //0x0000d4d0 .quad -2905392935903719049 - 0x10, 0xbb, 0x6a, 0xcc, 0x1d, 0xd8, 0x0e, 0x5b, //0x0000d4d8 .quad 6561419329620589328 - 0xea, 0xba, 0x94, 0xea, 0x52, 0xbb, 0xcc, 0x86, //0x0000d4e0 .quad -8733399612580906262 - 0xea, 0xb4, 0xc2, 0x9f, 0x12, 0x47, 0xe9, 0x98, //0x0000d4e8 .quad -7428327965055601430 - 0xa5, 0xe9, 0x39, 0xa5, 0x27, 0xea, 0x7f, 0xa8, //0x0000d4f0 .quad -6305063497298744923 - 0x25, 0x62, 0xb3, 0x47, 0xd7, 0x98, 0x23, 0x3f, //0x0000d4f8 .quad 4549648098962661925 - 0x0e, 0x64, 0x88, 0x8e, 0xb1, 0xe4, 0x9f, 0xd2, //0x0000d500 .quad -3269643353196043250 - 0xae, 0x3a, 0xa0, 0x19, 0x0d, 0x7f, 0xec, 0x8e, //0x0000d508 .quad -8147997931578836306 - 0x89, 0x3e, 0x15, 0xf9, 0xee, 0xee, 0xa3, 0x83, //0x0000d510 .quad -8961056123388608887 - 0xad, 0x24, 0x04, 0x30, 0x68, 0xcf, 0x53, 0x19, //0x0000d518 .quad 1825030320404309165 - 0x2b, 0x8e, 0x5a, 0xb7, 0xaa, 0xea, 0x8c, 0xa4, //0x0000d520 .quad -6589634135808373205 - 0xd8, 0x2d, 0x05, 0x3c, 0x42, 0xc3, 0xa8, 0x5f, //0x0000d528 .quad 6892973918932774360 - 0xb6, 0x31, 0x31, 0x65, 0x55, 0x25, 0xb0, 0xcd, //0x0000d530 .quad -3625356651333078602 - 0x4e, 0x79, 0x06, 0xcb, 0x12, 0xf4, 0x92, 0x37, //0x0000d538 .quad 4004531380238580046 - 0x11, 0xbf, 0x3e, 0x5f, 0x55, 0x17, 0x8e, 0x80, //0x0000d540 .quad -9183376934724255983 - 0xd1, 0x0b, 0xe4, 0xbe, 0x8b, 0xd8, 0xbb, 0xe2, //0x0000d548 .quad -2108853905778275375 - 0xd6, 0x6e, 0x0e, 0xb7, 0x2a, 0x9d, 0xb1, 0xa0, //0x0000d550 .quad -6867535149977932074 - 0xc5, 0x0e, 0x9d, 0xae, 0xae, 0xce, 0x6a, 0x5b, //0x0000d558 .quad 6587304654631931589 - 0x8b, 0x0a, 0xd2, 0x64, 0x75, 0x04, 0xde, 0xc8, //0x0000d560 .quad -3972732919045027189 - 0x76, 0x52, 0x44, 0x5a, 0x5a, 0x82, 0x45, 0xf2, //0x0000d568 .quad -989241218564861322 - 0x2e, 0x8d, 0x06, 0xbe, 0x92, 0x85, 0x15, 0xfb, //0x0000d570 .quad -354230130378896082 - 0x13, 0x67, 0xd5, 0xf0, 0xf0, 0xe2, 0xd6, 0xee, //0x0000d578 .quad -1236551523206076653 - 0x3d, 0x18, 0xc4, 0xb6, 0x7b, 0x73, 0xed, 0x9c, //0x0000d580 .quad -7138922859127891907 - 0x6c, 0x60, 0x85, 0x96, 0xd6, 0x4d, 0x46, 0x55, //0x0000d588 .quad 6144684325637283948 - 0x4c, 0x1e, 0x75, 0xa4, 0x5a, 0xd0, 0x28, 0xc4, //0x0000d590 .quad -4311967555482476980 - 0x87, 0xb8, 0x26, 0x3c, 0x4c, 0xe1, 0x97, 0xaa, //0x0000d598 .quad -6154202648235558777 - 0xdf, 0x65, 0x92, 0x4d, 0x71, 0x04, 0x33, 0xf5, //0x0000d5a0 .quad -778273425925708321 - 0xa9, 0x66, 0x30, 0x4b, 0x9f, 0xd9, 0x3d, 0xd5, //0x0000d5a8 .quad -3081067291867060567 - 0xab, 0x7f, 0x7b, 0xd0, 0xc6, 0xe2, 0x3f, 0x99, //0x0000d5b0 .quad -7403949918844649557 - 0x2a, 0x40, 0xfe, 0x8e, 0x03, 0xa8, 0x46, 0xe5, //0x0000d5b8 .quad -1925667057416912854 - 0x96, 0x5f, 0x9a, 0x84, 0x78, 0xdb, 0x8f, 0xbf, //0x0000d5c0 .quad -4643251380128424042 - 0x34, 0xd0, 0xbd, 0x72, 0x04, 0x52, 0x98, 0xde, //0x0000d5c8 .quad -2407083821771141068 - 0x7c, 0xf7, 0xc0, 0xa5, 0x56, 0xd2, 0x73, 0xef, //0x0000d5d0 .quad -1192378206733142148 - 0x41, 0x44, 0x6d, 0x8f, 0x85, 0x66, 0x3e, 0x96, //0x0000d5d8 .quad -7620540795641314239 - 0xad, 0x9a, 0x98, 0x27, 0x76, 0x63, 0xa8, 0x95, //0x0000d5e0 .quad -7662765406849295699 - 0xa9, 0x4a, 0xa4, 0x79, 0x13, 0x00, 0xe7, 0xdd, //0x0000d5e8 .quad -2456994988062127447 - 0x59, 0xc1, 0x7e, 0xb1, 0x53, 0x7c, 0x12, 0xbb, //0x0000d5f0 .quad -4966770740134231719 - 0x53, 0x5d, 0x0d, 0x58, 0x18, 0xc0, 0x60, 0x55, //0x0000d5f8 .quad 6152128301777116499 - 0xaf, 0x71, 0xde, 0x9d, 0x68, 0x1b, 0xd7, 0xe9, //0x0000d600 .quad -1596777406740401745 - 0xa7, 0xb4, 0x10, 0x6e, 0x1e, 0xf0, 0xb8, 0xaa, //0x0000d608 .quad -6144897678060768089 - 0x0d, 0x07, 0xab, 0x62, 0x21, 0x71, 0x26, 0x92, //0x0000d610 .quad -7915514906853832947 - 0xe9, 0x70, 0xca, 0x04, 0x13, 0x96, 0xb3, 0xca, //0x0000d618 .quad -3840561048787980055 - 0xd1, 0xc8, 0x55, 0xbb, 0x69, 0x0d, 0xb0, 0xb6, //0x0000d620 .quad -5282707615139903279 - 0x23, 0x0d, 0xfd, 0xc5, 0x97, 0x7b, 0x60, 0x3d, //0x0000d628 .quad 4422670725869800739 - 0x05, 0x3b, 0x2b, 0x2a, 0xc4, 0x10, 0x5c, 0xe4, //0x0000d630 .quad -1991698500497491195 - 0x6b, 0x50, 0x7c, 0xb7, 0x7d, 0x9a, 0xb8, 0x8c, //0x0000d638 .quad -8306719647944912789 - 0xe3, 0x04, 0x5b, 0x9a, 0x7a, 0x8a, 0xb9, 0x8e, //0x0000d640 .quad -8162340590452013853 - 0x43, 0xb2, 0xad, 0x92, 0x8e, 0x60, 0xf3, 0x77, //0x0000d648 .quad 8643358275316593219 - 0x1c, 0xc6, 0xf1, 0x40, 0x19, 0xed, 0x67, 0xb2, //0x0000d650 .quad -5591239719637629412 - 0xd4, 0x1e, 0x59, 0x37, 0xb2, 0x38, 0xf0, 0x55, //0x0000d658 .quad 6192511825718353620 - 0xa3, 0x37, 0x2e, 0x91, 0x5f, 0xe8, 0x01, 0xdf, //0x0000d660 .quad -2377363631119648861 - 0x89, 0x66, 0x2f, 0xc5, 0xde, 0x46, 0x6c, 0x6b, //0x0000d668 .quad 7740639782147942025 - 0xc6, 0xe2, 0xbc, 0xba, 0x3b, 0x31, 0x61, 0x8b, //0x0000d670 .quad -8403381297090862394 - 0x16, 0xa0, 0x3d, 0x3b, 0x4b, 0xac, 0x23, 0x23, //0x0000d678 .quad 2532056854628769814 - 0x77, 0x1b, 0x6c, 0xa9, 0x8a, 0x7d, 0x39, 0xae, //0x0000d680 .quad -5892540602936190089 - 0x1b, 0x08, 0x0d, 0x0a, 0x5e, 0x97, 0xec, 0xab, //0x0000d688 .quad -6058300968568813541 - 0x55, 0x22, 0xc7, 0x53, 0xed, 0xdc, 0xc7, 0xd9, //0x0000d690 .quad -2753989735242849707 - 0x22, 0x4a, 0x90, 0x8c, 0x35, 0xbd, 0xe7, 0x96, //0x0000d698 .quad -7572876210711016926 - 0x75, 0x75, 0x5c, 0x54, 0x14, 0xea, 0x1c, 0x88, //0x0000d6a0 .quad -8638772612167862923 - 0x55, 0x2e, 0xda, 0x77, 0x41, 0xd6, 0x50, 0x7e, //0x0000d6a8 .quad 9102010423587778133 - 0xd2, 0x92, 0x73, 0x69, 0x99, 0x24, 0x24, 0xaa, //0x0000d6b0 .quad -6186779746782440750 - 0xea, 0xb9, 0xd0, 0xd5, 0xd1, 0x0b, 0xe5, 0xdd, //0x0000d6b8 .quad -2457545025797441046 - 0x87, 0x77, 0xd0, 0xc3, 0xbf, 0x2d, 0xad, 0xd4, //0x0000d6c0 .quad -3121788665050663033 - 0x65, 0xe8, 0x44, 0x4b, 0xc6, 0x4e, 0x5e, 0x95, //0x0000d6c8 .quad -7683617300674189211 - 0xb4, 0x4a, 0x62, 0xda, 0x97, 0x3c, 0xec, 0x84, //0x0000d6d0 .quad -8868646943297746252 - 0x3f, 0x11, 0x0b, 0xef, 0x3b, 0xf1, 0x5a, 0xbd, //0x0000d6d8 .quad -4802260812921368257 - 0x61, 0xdd, 0xfa, 0xd0, 0xbd, 0x4b, 0x27, 0xa6, //0x0000d6e0 .quad -6474122660694794911 - 0x8f, 0xd5, 0xcd, 0xea, 0x8a, 0xad, 0xb1, 0xec, //0x0000d6e8 .quad -1391139997724322417 - 0xba, 0x94, 0x39, 0x45, 0xad, 0x1e, 0xb1, 0xcf, //0x0000d6f0 .quad -3480967307441105734 - 0xf3, 0x4a, 0x81, 0xa5, 0xed, 0x18, 0xde, 0x67, //0x0000d6f8 .quad 7484447039699372787 - 0xf4, 0xfc, 0x43, 0x4b, 0x2c, 0xb3, 0xce, 0x81, //0x0000d700 .quad -9093133594791772940 - 0xd8, 0xce, 0x70, 0x87, 0x94, 0xcf, 0xea, 0x80, //0x0000d708 .quad -9157278655470055720 - 0x31, 0xfc, 0x14, 0x5e, 0xf7, 0x5f, 0x42, 0xa2, //0x0000d710 .quad -6754730975062328271 - 0x8e, 0x02, 0x4d, 0xa9, 0x79, 0x83, 0x25, 0xa1, //0x0000d718 .quad -6834912300910181746 - 0x3e, 0x3b, 0x9a, 0x35, 0xf5, 0xf7, 0xd2, 0xca, //0x0000d720 .quad -3831727700400522434 - 0x31, 0x43, 0xa0, 0x13, 0x58, 0xe4, 0x6e, 0x09, //0x0000d728 .quad 679731660717048625 - 0x0d, 0xca, 0x00, 0x83, 0xf2, 0xb5, 0x87, 0xfd, //0x0000d730 .quad -177973607073265139 - 0xfd, 0x53, 0x88, 0x18, 0x6e, 0x9d, 0xca, 0x8b, //0x0000d738 .quad -8373707460958465027 - 0x48, 0x7e, 0xe0, 0x91, 0xb7, 0xd1, 0x74, 0x9e, //0x0000d740 .quad -7028762532061872568 - 0x7e, 0x34, 0x55, 0xcf, 0x64, 0xa2, 0x5e, 0x77, //0x0000d748 .quad 8601490892183123070 - 0xda, 0x9d, 0x58, 0x76, 0x25, 0x06, 0x12, 0xc6, //0x0000d750 .quad -4174267146649952806 - 0x9e, 0x81, 0x2a, 0x03, 0xfe, 0x4a, 0x36, 0x95, //0x0000d758 .quad -7694880458480647778 - 0x51, 0xc5, 0xee, 0xd3, 0xae, 0x87, 0x96, 0xf7, //0x0000d760 .quad -606147914885053103 - 0x05, 0x22, 0xf5, 0x83, 0xbd, 0xdd, 0x83, 0x3a, //0x0000d768 .quad 4216457482181353989 - 0x52, 0x3b, 0x75, 0x44, 0xcd, 0x14, 0xbe, 0x9a, //0x0000d770 .quad -7296371474444240046 - 0x43, 0x35, 0x79, 0x72, 0x96, 0x6a, 0x92, 0xc4, //0x0000d778 .quad -4282243101277735613 - 0x27, 0x8a, 0x92, 0x95, 0x00, 0x9a, 0x6d, 0xc1, //0x0000d780 .quad -4508778324627912153 - 0x94, 0x82, 0x17, 0x0f, 0x3c, 0x05, 0xb7, 0x75, //0x0000d788 .quad 8482254178684994196 - 0xb1, 0x2c, 0xf7, 0xba, 0x80, 0x00, 0xc9, 0xf1, //0x0000d790 .quad -1024286887357502287 - 0x39, 0x63, 0xdd, 0x12, 0x8b, 0xc6, 0x24, 0x53, //0x0000d798 .quad 5991131704928854841 - 0xee, 0x7b, 0xda, 0x74, 0x50, 0xa0, 0x1d, 0x97, //0x0000d7a0 .quad -7557708332239520786 - 0x04, 0x5e, 0xca, 0xeb, 0x16, 0xfc, 0xf6, 0xd3, //0x0000d7a8 .quad -3173071712060547580 - 0xea, 0x1a, 0x11, 0x92, 0x64, 0x08, 0xe5, 0xbc, //0x0000d7b0 .quad -4835449396872013078 - 0x85, 0xf5, 0xbc, 0xa6, 0x1c, 0xbb, 0xf4, 0x88, //0x0000d7b8 .quad -8578025658503072379 - 0xa5, 0x61, 0x95, 0xb6, 0x7d, 0x4a, 0x1e, 0xec, //0x0000d7c0 .quad -1432625727662628443 - 0xe6, 0x32, 0x6c, 0xd0, 0xe3, 0xe9, 0x31, 0x2b, //0x0000d7c8 .quad 3112525982153323238 - 0x07, 0x5d, 0x1d, 0x92, 0x8e, 0xee, 0x92, 0x93, //0x0000d7d0 .quad -7812920107430224633 - 0xd0, 0x9f, 0x43, 0x62, 0x2e, 0x32, 0xff, 0x3a, //0x0000d7d8 .quad 4251171748059520976 - 0x49, 0xb4, 0xa4, 0x36, 0x32, 0xaa, 0x77, 0xb8, //0x0000d7e0 .quad -5154464115860392887 - 0xc3, 0x87, 0xd4, 0xfa, 0xb9, 0xfe, 0xbe, 0x09, //0x0000d7e8 .quad 702278666647013315 - 0x5b, 0xe1, 0x4d, 0xc4, 0xbe, 0x94, 0x95, 0xe6, //0x0000d7f0 .quad -1831394126398103205 - 0xb4, 0xa9, 0x89, 0x79, 0x68, 0xbe, 0x2e, 0x4c, //0x0000d7f8 .quad 5489534351736154548 - 0xd9, 0xac, 0xb0, 0x3a, 0xf7, 0x7c, 0x1d, 0x90, //0x0000d800 .quad -8062150356639896359 - 0x11, 0x0a, 0xf6, 0x4b, 0x01, 0x37, 0x9d, 0x0f, //0x0000d808 .quad 1125115960621402641 - 0x0f, 0xd8, 0x5c, 0x09, 0x35, 0xdc, 0x24, 0xb4, //0x0000d810 .quad -5466001927372482545 - 0x95, 0x8c, 0xf3, 0x9e, 0xc1, 0x84, 0x84, 0x53, //0x0000d818 .quad 6018080969204141205 - 0x13, 0x0e, 0xb4, 0x4b, 0x42, 0x13, 0x2e, 0xe1, //0x0000d820 .quad -2220816390788215277 - 0xba, 0x6f, 0xb0, 0x06, 0xf2, 0xa5, 0x65, 0x28, //0x0000d828 .quad 2910915193077788602 - 0xcb, 0x88, 0x50, 0x6f, 0x09, 0xcc, 0xbc, 0x8c, //0x0000d830 .quad -8305539271883716405 - 0xd4, 0x45, 0x2e, 0x44, 0xb7, 0x87, 0x3f, 0xf9, //0x0000d838 .quad -486521013540076076 - 0xfe, 0xaa, 0x24, 0xcb, 0x0b, 0xff, 0xeb, 0xaf, //0x0000d840 .quad -5770238071427257602 - 0x49, 0xd7, 0x39, 0x15, 0xa5, 0x69, 0x8f, 0xf7, //0x0000d848 .quad -608151266925095095 - 0xbe, 0xd5, 0xed, 0xbd, 0xce, 0xfe, 0xe6, 0xdb, //0x0000d850 .quad -2601111570856684098 - 0x1c, 0x4d, 0x88, 0x5a, 0x0e, 0x44, 0x73, 0xb5, //0x0000d858 .quad -5371875102083756772 - 0x97, 0xa5, 0xb4, 0x36, 0x41, 0x5f, 0x70, 0x89, //0x0000d860 .quad -8543223759426509417 - 0x31, 0x30, 0x95, 0xf8, 0x88, 0x0a, 0x68, 0x31, //0x0000d868 .quad 3560107088838733873 - 0xfc, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x0000d870 .quad -6067343680855748868 - 0x3e, 0x7c, 0xba, 0x36, 0x2b, 0x0d, 0xc2, 0xfd, //0x0000d878 .quad -161552157378970562 - 0xbc, 0x42, 0x7a, 0xe5, 0xd5, 0x94, 0xbf, 0xd6, //0x0000d880 .quad -2972493582642298180 - 0x4d, 0x1b, 0x69, 0x04, 0x76, 0x90, 0x32, 0x3d, //0x0000d888 .quad 4409745821703674701 - 0xb5, 0x69, 0x6c, 0xaf, 0x05, 0xbd, 0x37, 0x86, //0x0000d890 .quad -8775337516792518219 - 0x10, 0xb1, 0xc1, 0xc2, 0x49, 0x9a, 0x3f, 0xa6, //0x0000d898 .quad -6467280898289979120 - 0x23, 0x84, 0x47, 0x1b, 0x47, 0xac, 0xc5, 0xa7, //0x0000d8a0 .quad -6357485877563259869 - 0x54, 0x1d, 0x72, 0x33, 0xdc, 0x80, 0xcf, 0x0f, //0x0000d8a8 .quad 1139270913992301908 - 0x2b, 0x65, 0x19, 0xe2, 0x58, 0x17, 0xb7, 0xd1, //0x0000d8b0 .quad -3335171328526686933 - 0xa9, 0xa4, 0x4e, 0x40, 0x13, 0x61, 0xc3, 0xd3, //0x0000d8b8 .quad -3187597375937010519 - 0x3b, 0xdf, 0x4f, 0x8d, 0x97, 0x6e, 0x12, 0x83, //0x0000d8c0 .quad -9002011107970261189 - 0xea, 0x26, 0x31, 0x08, 0xac, 0x1c, 0x5a, 0x64, //0x0000d8c8 .quad 7231123676894144234 - 0x0a, 0xd7, 0xa3, 0x70, 0x3d, 0x0a, 0xd7, 0xa3, //0x0000d8d0 .quad -6640827866535438582 - 0xa4, 0x70, 0x3d, 0x0a, 0xd7, 0xa3, 0x70, 0x3d, //0x0000d8d8 .quad 4427218577690292388 - 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x0000d8e0 .quad -3689348814741910324 - 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x0000d8e8 .quad -3689348814741910323 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x0000d8f0 .quad -9223372036854775808 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d8f8 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, //0x0000d900 .quad -6917529027641081856 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d908 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc8, //0x0000d910 .quad -4035225266123964416 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d918 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, //0x0000d920 .quad -432345564227567616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d928 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x9c, //0x0000d930 .quad -7187745005283311616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d938 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0xc3, //0x0000d940 .quad -4372995238176751616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d948 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0xf4, //0x0000d950 .quad -854558029293551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d958 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x96, 0x98, //0x0000d960 .quad -7451627795949551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d968 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xbc, 0xbe, //0x0000d970 .quad -4702848726509551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d978 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x6b, 0xee, //0x0000d980 .quad -1266874889709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d988 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0xf9, 0x02, 0x95, //0x0000d990 .quad -7709325833709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d998 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x40, 0xb7, 0x43, 0xba, //0x0000d9a0 .quad -5024971273709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d9a8 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x10, 0xa5, 0xd4, 0xe8, //0x0000d9b0 .quad -1669528073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d9b8 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x2a, 0xe7, 0x84, 0x91, //0x0000d9c0 .quad -7960984073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d9c8 .quad 0 - 0x00, 0x00, 0x00, 0x80, 0xf4, 0x20, 0xe6, 0xb5, //0x0000d9d0 .quad -5339544073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d9d8 .quad 0 - 0x00, 0x00, 0x00, 0xa0, 0x31, 0xa9, 0x5f, 0xe3, //0x0000d9e0 .quad -2062744073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d9e8 .quad 0 - 0x00, 0x00, 0x00, 0x04, 0xbf, 0xc9, 0x1b, 0x8e, //0x0000d9f0 .quad -8206744073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d9f8 .quad 0 - 0x00, 0x00, 0x00, 0xc5, 0x2e, 0xbc, 0xa2, 0xb1, //0x0000da00 .quad -5646744073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000da08 .quad 0 - 0x00, 0x00, 0x40, 0x76, 0x3a, 0x6b, 0x0b, 0xde, //0x0000da10 .quad -2446744073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000da18 .quad 0 - 0x00, 0x00, 0xe8, 0x89, 0x04, 0x23, 0xc7, 0x8a, //0x0000da20 .quad -8446744073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000da28 .quad 0 - 0x00, 0x00, 0x62, 0xac, 0xc5, 0xeb, 0x78, 0xad, //0x0000da30 .quad -5946744073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000da38 .quad 0 - 0x00, 0x80, 0x7a, 0x17, 0xb7, 0x26, 0xd7, 0xd8, //0x0000da40 .quad -2821744073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000da48 .quad 0 - 0x00, 0x90, 0xac, 0x6e, 0x32, 0x78, 0x86, 0x87, //0x0000da50 .quad -8681119073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000da58 .quad 0 - 0x00, 0xb4, 0x57, 0x0a, 0x3f, 0x16, 0x68, 0xa9, //0x0000da60 .quad -6239712823709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000da68 .quad 0 - 0x00, 0xa1, 0xed, 0xcc, 0xce, 0x1b, 0xc2, 0xd3, //0x0000da70 .quad -3187955011209551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000da78 .quad 0 - 0xa0, 0x84, 0x14, 0x40, 0x61, 0x51, 0x59, 0x84, //0x0000da80 .quad -8910000909647051616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000da88 .quad 0 - 0xc8, 0xa5, 0x19, 0x90, 0xb9, 0xa5, 0x6f, 0xa5, //0x0000da90 .quad -6525815118631426616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000da98 .quad 0 - 0x3a, 0x0f, 0x20, 0xf4, 0x27, 0x8f, 0xcb, 0xce, //0x0000daa0 .quad -3545582879861895366 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000daa8 .quad 0 - 0x84, 0x09, 0x94, 0xf8, 0x78, 0x39, 0x3f, 0x81, //0x0000dab0 .quad -9133518327554766460 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, //0x0000dab8 .quad 4611686018427387904 - 0xe5, 0x0b, 0xb9, 0x36, 0xd7, 0x07, 0x8f, 0xa1, //0x0000dac0 .quad -6805211891016070171 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, //0x0000dac8 .quad 5764607523034234880 - 0xde, 0x4e, 0x67, 0x04, 0xcd, 0xc9, 0xf2, 0xc9, //0x0000dad0 .quad -3894828845342699810 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa4, //0x0000dad8 .quad -6629298651489370112 - 0x96, 0x22, 0x81, 0x45, 0x40, 0x7c, 0x6f, 0xfc, //0x0000dae0 .quad -256850038250986858 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4d, //0x0000dae8 .quad 5548434740920451072 - 0x9d, 0xb5, 0x70, 0x2b, 0xa8, 0xad, 0xc5, 0x9d, //0x0000daf0 .quad -7078060301547948643 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xf0, //0x0000daf8 .quad -1143914305352105984 - 0x05, 0xe3, 0x4c, 0x36, 0x12, 0x19, 0x37, 0xc5, //0x0000db00 .quad -4235889358507547899 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x6c, //0x0000db08 .quad 7793479155164643328 - 0xc6, 0x1b, 0xe0, 0xc3, 0x56, 0xdf, 0x84, 0xf6, //0x0000db10 .quad -683175679707046970 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0xc7, //0x0000db18 .quad -4093209111326359552 - 0x5c, 0x11, 0x6c, 0x3a, 0x96, 0x0b, 0x13, 0x9a, //0x0000db20 .quad -7344513827457986212 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7f, 0x3c, //0x0000db28 .quad 4359273333062107136 - 0xb3, 0x15, 0x07, 0xc9, 0x7b, 0xce, 0x97, 0xc0, //0x0000db30 .quad -4568956265895094861 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x9f, 0x4b, //0x0000db38 .quad 5449091666327633920 - 0x20, 0xdb, 0x48, 0xbb, 0x1a, 0xc2, 0xbd, 0xf0, //0x0000db40 .quad -1099509313941480672 - 0x00, 0x00, 0x00, 0x00, 0x00, 0xd4, 0x86, 0x1e, //0x0000db48 .quad 2199678564482154496 - 0xf4, 0x88, 0x0d, 0xb5, 0x50, 0x99, 0x76, 0x96, //0x0000db50 .quad -7604722348854507276 - 0x00, 0x00, 0x00, 0x00, 0x80, 0x44, 0x14, 0x13, //0x0000db58 .quad 1374799102801346560 - 0x31, 0xeb, 0x50, 0xe2, 0xa4, 0x3f, 0x14, 0xbc, //0x0000db60 .quad -4894216917640746191 - 0x00, 0x00, 0x00, 0x00, 0xa0, 0x55, 0xd9, 0x17, //0x0000db68 .quad 1718498878501683200 - 0xfd, 0x25, 0xe5, 0x1a, 0x8e, 0x4f, 0x19, 0xeb, //0x0000db70 .quad -1506085128623544835 - 0x00, 0x00, 0x00, 0x00, 0x08, 0xab, 0xcf, 0x5d, //0x0000db78 .quad 6759809616554491904 - 0xbe, 0x37, 0xcf, 0xd0, 0xb8, 0xd1, 0xef, 0x92, //0x0000db80 .quad -7858832233030797378 - 0x00, 0x00, 0x00, 0x00, 0xe5, 0xca, 0xa1, 0x5a, //0x0000db88 .quad 6530724019560251392 - 0xad, 0x05, 0x03, 0x05, 0x27, 0xc6, 0xab, 0xb7, //0x0000db90 .quad -5211854272861108819 - 0x00, 0x00, 0x00, 0x40, 0x9e, 0x3d, 0x4a, 0xf1, //0x0000db98 .quad -1059967012404461568 - 0x19, 0xc7, 0x43, 0xc6, 0xb0, 0xb7, 0x96, 0xe5, //0x0000dba0 .quad -1903131822648998119 - 0x00, 0x00, 0x00, 0xd0, 0x05, 0xcd, 0x9c, 0x6d, //0x0000dba8 .quad 7898413271349198848 - 0x6f, 0x5c, 0xea, 0x7b, 0xce, 0x32, 0x7e, 0x8f, //0x0000dbb0 .quad -8106986416796705681 - 0x00, 0x00, 0x00, 0xa2, 0x23, 0x00, 0x82, 0xe4, //0x0000dbb8 .quad -1981020733047832576 - 0x8b, 0xf3, 0xe4, 0x1a, 0x82, 0xbf, 0x5d, 0xb3, //0x0000dbc0 .quad -5522047002568494197 - 0x00, 0x00, 0x80, 0x8a, 0x2c, 0x80, 0xa2, 0xdd, //0x0000dbc8 .quad -2476275916309790720 - 0x6e, 0x30, 0x9e, 0xa1, 0x62, 0x2f, 0x35, 0xe0, //0x0000dbd0 .quad -2290872734783229842 - 0x00, 0x00, 0x20, 0xad, 0x37, 0x20, 0x0b, 0xd5, //0x0000dbd8 .quad -3095344895387238400 - 0x45, 0xde, 0x02, 0xa5, 0x9d, 0x3d, 0x21, 0x8c, //0x0000dbe0 .quad -8349324486880600507 - 0x00, 0x00, 0x34, 0xcc, 0x22, 0xf4, 0x26, 0x45, //0x0000dbe8 .quad 4982938468024057856 - 0xd6, 0x95, 0x43, 0x0e, 0x05, 0x8d, 0x29, 0xaf, //0x0000dbf0 .quad -5824969590173362730 - 0x00, 0x00, 0x41, 0x7f, 0x2b, 0xb1, 0x70, 0x96, //0x0000dbf8 .quad -7606384970252091392 - 0x4c, 0x7b, 0xd4, 0x51, 0x46, 0xf0, 0xf3, 0xda, //0x0000dc00 .quad -2669525969289315508 - 0x00, 0x40, 0x11, 0x5f, 0x76, 0xdd, 0x0c, 0x3c, //0x0000dc08 .quad 4327076842467049472 - 0x0f, 0xcd, 0x24, 0xf3, 0x2b, 0x76, 0xd8, 0x88, //0x0000dc10 .quad -8585982758446904049 - 0x00, 0xc8, 0x6a, 0xfb, 0x69, 0x0a, 0x88, 0xa5, //0x0000dc18 .quad -6518949010312869888 - 0x53, 0x00, 0xee, 0xef, 0xb6, 0x93, 0x0e, 0xab, //0x0000dc20 .quad -6120792429631242157 - 0x00, 0x7a, 0x45, 0x7a, 0x04, 0x0d, 0xea, 0x8e, //0x0000dc28 .quad -8148686262891087360 - 0x68, 0x80, 0xe9, 0xab, 0xa4, 0x38, 0xd2, 0xd5, //0x0000dc30 .quad -3039304518611664792 - 0x80, 0xd8, 0xd6, 0x98, 0x45, 0x90, 0xa4, 0x72, //0x0000dc38 .quad 8260886245095692416 - 0x41, 0xf0, 0x71, 0xeb, 0x66, 0x63, 0xa3, 0x85, //0x0000dc40 .quad -8817094351773372351 - 0x50, 0x47, 0x86, 0x7f, 0x2b, 0xda, 0xa6, 0x47, //0x0000dc48 .quad 5163053903184807760 - 0x51, 0x6c, 0x4e, 0xa6, 0x40, 0x3c, 0x0c, 0xa7, //0x0000dc50 .quad -6409681921289327535 - 0x24, 0xd9, 0x67, 0x5f, 0xb6, 0x90, 0x90, 0x99, //0x0000dc58 .quad -7381240676301154012 - 0x65, 0x07, 0xe2, 0xcf, 0x50, 0x4b, 0xcf, 0xd0, //0x0000dc60 .quad -3400416383184271515 - 0x6d, 0xcf, 0x41, 0xf7, 0xe3, 0xb4, 0xf4, 0xff, //0x0000dc68 .quad -3178808521666707 - 0x9f, 0x44, 0xed, 0x81, 0x12, 0x8f, 0x81, 0x82, //0x0000dc70 .quad -9042789267131251553 - 0xa5, 0x21, 0x89, 0x7a, 0x0e, 0xf1, 0xf8, 0xbf, //0x0000dc78 .quad -4613672773753429595 - 0xc7, 0x95, 0x68, 0x22, 0xd7, 0xf2, 0x21, 0xa3, //0x0000dc80 .quad -6691800565486676537 - 0x0e, 0x6a, 0x2b, 0x19, 0x52, 0x2d, 0xf7, 0xaf, //0x0000dc88 .quad -5767090967191786994 - 0x39, 0xbb, 0x02, 0xeb, 0x8c, 0x6f, 0xea, 0xcb, //0x0000dc90 .quad -3753064688430957767 - 0x91, 0x44, 0x76, 0x9f, 0xa6, 0xf8, 0xf4, 0x9b, //0x0000dc98 .quad -7208863708989733743 - 0x08, 0x6a, 0xc3, 0x25, 0x70, 0x0b, 0xe5, 0xfe, //0x0000dca0 .quad -79644842111309304 - 0xb5, 0xd5, 0x53, 0x47, 0xd0, 0x36, 0xf2, 0x02, //0x0000dca8 .quad 212292400617608629 - 0x45, 0x22, 0x9a, 0x17, 0x26, 0x27, 0x4f, 0x9f, //0x0000dcb0 .quad -6967307053960650171 - 0x91, 0x65, 0x94, 0x2c, 0x42, 0x62, 0xd7, 0x01, //0x0000dcb8 .quad 132682750386005393 - 0xd6, 0xaa, 0x80, 0x9d, 0xef, 0xf0, 0x22, 0xc7, //0x0000dcc0 .quad -4097447799023424810 - 0xf6, 0x7e, 0xb9, 0xb7, 0xd2, 0x3a, 0x4d, 0x42, //0x0000dcc8 .quad 4777539456409894646 - 0x8b, 0xd5, 0xe0, 0x84, 0x2b, 0xad, 0xeb, 0xf8, //0x0000dcd0 .quad -510123730351893109 - 0xb3, 0xde, 0xa7, 0x65, 0x87, 0x89, 0xe0, 0xd2, //0x0000dcd8 .quad -3251447716342407501 - 0x77, 0x85, 0x0c, 0x33, 0x3b, 0x4c, 0x93, 0x9b, //0x0000dce0 .quad -7236356359111015049 - 0x30, 0xeb, 0x88, 0x9f, 0xf4, 0x55, 0xcc, 0x63, //0x0000dce8 .quad 7191217214140771120 - 0xd5, 0xa6, 0xcf, 0xff, 0x49, 0x1f, 0x78, 0xc2, //0x0000dcf0 .quad -4433759430461380907 - 0xfc, 0x25, 0x6b, 0xc7, 0x71, 0x6b, 0xbf, 0x3c, //0x0000dcf8 .quad 4377335499248575996 - 0x8a, 0x90, 0xc3, 0x7f, 0x1c, 0x27, 0x16, 0xf3, //0x0000dd00 .quad -930513269649338230 - 0x7b, 0xef, 0x45, 0x39, 0x4e, 0x46, 0xef, 0x8b, //0x0000dd08 .quad -8363388681221443717 - 0x56, 0x3a, 0xda, 0xcf, 0x71, 0xd8, 0xed, 0x97, //0x0000dd10 .quad -7499099821171918250 - 0xad, 0xb5, 0xcb, 0xe3, 0xf0, 0x8b, 0x75, 0x97, //0x0000dd18 .quad -7532960934977096275 - 0xec, 0xc8, 0xd0, 0x43, 0x8e, 0x4e, 0xe9, 0xbd, //0x0000dd20 .quad -4762188758037509908 - 0x18, 0xa3, 0xbe, 0x1c, 0xed, 0xee, 0x52, 0x3d, //0x0000dd28 .quad 4418856886560793368 - 0x27, 0xfb, 0xc4, 0xd4, 0x31, 0xa2, 0x63, 0xed, //0x0000dd30 .quad -1341049929119499481 - 0xde, 0x4b, 0xee, 0x63, 0xa8, 0xaa, 0xa7, 0x4c, //0x0000dd38 .quad 5523571108200991710 - 0xf8, 0x1c, 0xfb, 0x24, 0x5f, 0x45, 0x5e, 0x94, //0x0000dd40 .quad -7755685233340769032 - 0x6b, 0xef, 0x74, 0x3e, 0xa9, 0xca, 0xe8, 0x8f, //0x0000dd48 .quad -8076983103442849941 - 0x36, 0xe4, 0x39, 0xee, 0xb6, 0xd6, 0x75, 0xb9, //0x0000dd50 .quad -5082920523248573386 - 0x45, 0x2b, 0x12, 0x8e, 0x53, 0xfd, 0xe2, 0xb3, //0x0000dd58 .quad -5484542860876174523 - 0x44, 0x5d, 0xc8, 0xa9, 0x64, 0x4c, 0xd3, 0xe7, //0x0000dd60 .quad -1741964635633328828 - 0x17, 0xb6, 0x96, 0x71, 0xa8, 0xbc, 0xdb, 0x60, //0x0000dd68 .quad 6979379479186945559 - 0x4a, 0x3a, 0x1d, 0xea, 0xbe, 0x0f, 0xe4, 0x90, //0x0000dd70 .quad -8006256924911912374 - 0xce, 0x31, 0xfe, 0x46, 0xe9, 0x55, 0x89, 0xbc, //0x0000dd78 .quad -4861259862362934834 - 0xdd, 0x88, 0xa4, 0xa4, 0xae, 0x13, 0x1d, 0xb5, //0x0000dd80 .quad -5396135137712502563 - 0x42, 0xbe, 0xbd, 0x98, 0x63, 0xab, 0xab, 0x6b, //0x0000dd88 .quad 7758483227328495170 - 0x14, 0xab, 0xcd, 0x4d, 0x9a, 0x58, 0x64, 0xe2, //0x0000dd90 .quad -2133482903713240300 - 0xd2, 0x2d, 0xed, 0x7e, 0x3c, 0x96, 0x96, 0xc6, //0x0000dd98 .quad -4136954021121544750 - 0xec, 0x8a, 0xa0, 0x70, 0x60, 0xb7, 0x7e, 0x8d, //0x0000dda0 .quad -8250955842461857044 - 0xa3, 0x3c, 0x54, 0xcf, 0xe5, 0x1d, 0x1e, 0xfc, //0x0000dda8 .quad -279753253987271517 - 0xa8, 0xad, 0xc8, 0x8c, 0x38, 0x65, 0xde, 0xb0, //0x0000ddb0 .quad -5702008784649933400 - 0xcc, 0x4b, 0x29, 0x43, 0x5f, 0xa5, 0x25, 0x3b, //0x0000ddb8 .quad 4261994450943298508 - 0x12, 0xd9, 0xfa, 0xaf, 0x86, 0xfe, 0x15, 0xdd, //0x0000ddc0 .quad -2515824962385028846 - 0xbf, 0x9e, 0xf3, 0x13, 0xb7, 0x0e, 0xef, 0x49, //0x0000ddc8 .quad 5327493063679123135 - 0xab, 0xc7, 0xfc, 0x2d, 0x14, 0xbf, 0x2d, 0x8a, //0x0000ddd0 .quad -8489919629131724885 - 0x38, 0x43, 0x78, 0x6c, 0x32, 0x69, 0x35, 0x6e, //0x0000ddd8 .quad 7941369183226839864 - 0x96, 0xf9, 0x7b, 0x39, 0xd9, 0x2e, 0xb9, 0xac, //0x0000dde0 .quad -6000713517987268202 - 0x05, 0x54, 0x96, 0x07, 0x7f, 0xc3, 0xc2, 0x49, //0x0000dde8 .quad 5315025460606161925 - 0xfb, 0xf7, 0xda, 0x87, 0x8f, 0x7a, 0xe7, 0xd7, //0x0000ddf0 .quad -2889205879056697349 - 0x07, 0xe9, 0x7b, 0xc9, 0x5e, 0x74, 0x33, 0xdc, //0x0000ddf8 .quad -2579590211097073401 - 0xfd, 0xda, 0xe8, 0xb4, 0x99, 0xac, 0xf0, 0x86, //0x0000de00 .quad -8723282702051517699 - 0xa4, 0x71, 0xed, 0x3d, 0xbb, 0x28, 0xa0, 0x69, //0x0000de08 .quad 7611128154919104932 - 0xbc, 0x11, 0x23, 0x22, 0xc0, 0xd7, 0xac, 0xa8, //0x0000de10 .quad -6292417359137009220 - 0x0d, 0xce, 0x68, 0x0d, 0xea, 0x32, 0x08, 0xc4, //0x0000de18 .quad -4321147861633282547 - 0x2b, 0xd6, 0xab, 0x2a, 0xb0, 0x0d, 0xd8, 0xd2, //0x0000de20 .quad -3253835680493873621 - 0x91, 0x01, 0xc3, 0x90, 0xa4, 0x3f, 0x0a, 0xf5, //0x0000de28 .quad -789748808614215279 - 0xdb, 0x65, 0xab, 0x1a, 0x8e, 0x08, 0xc7, 0x83, //0x0000de30 .quad -8951176327949752869 - 0xfb, 0xe0, 0x79, 0xda, 0xc6, 0x67, 0x26, 0x79, //0x0000de38 .quad 8729779031470891259 - 0x52, 0x3f, 0x56, 0xa1, 0xb1, 0xca, 0xb8, 0xa4, //0x0000de40 .quad -6577284391509803182 - 0x39, 0x59, 0x18, 0x91, 0xb8, 0x01, 0x70, 0x57, //0x0000de48 .quad 6300537770911226169 - 0x26, 0xcf, 0xab, 0x09, 0x5e, 0xfd, 0xe6, 0xcd, //0x0000de50 .quad -3609919470959866074 - 0x87, 0x6f, 0x5e, 0xb5, 0x26, 0x02, 0x4c, 0xed, //0x0000de58 .quad -1347699823215743097 - 0x78, 0x61, 0x0b, 0xc6, 0x5a, 0x5e, 0xb0, 0x80, //0x0000de60 .quad -9173728696990998152 - 0xb5, 0x05, 0x5b, 0x31, 0x58, 0x81, 0x4f, 0x54, //0x0000de68 .quad 6075216638131242421 - 0xd6, 0x39, 0x8e, 0x77, 0xf1, 0x75, 0xdc, 0xa0, //0x0000de70 .quad -6855474852811359786 - 0x22, 0xc7, 0xb1, 0x3d, 0xae, 0x61, 0x63, 0x69, //0x0000de78 .quad 7594020797664053026 - 0x4c, 0xc8, 0x71, 0xd5, 0x6d, 0x93, 0x13, 0xc9, //0x0000de80 .quad -3957657547586811828 - 0xea, 0x38, 0x1e, 0xcd, 0x19, 0x3a, 0xbc, 0x03, //0x0000de88 .quad 269153960225290474 - 0x5f, 0x3a, 0xce, 0x4a, 0x49, 0x78, 0x58, 0xfb, //0x0000de90 .quad -335385916056126881 - 0x24, 0xc7, 0x65, 0x40, 0xa0, 0x48, 0xab, 0x04, //0x0000de98 .quad 336442450281613092 - 0x7b, 0xe4, 0xc0, 0xce, 0x2d, 0x4b, 0x17, 0x9d, //0x0000dea0 .quad -7127145225176161157 - 0x77, 0x9c, 0x3f, 0x28, 0x64, 0x0d, 0xeb, 0x62, //0x0000dea8 .quad 7127805559067090039 - 0x9a, 0x1d, 0x71, 0x42, 0xf9, 0x1d, 0x5d, 0xc4, //0x0000deb0 .quad -4297245513042813542 - 0x95, 0x83, 0x4f, 0x32, 0xbd, 0xd0, 0xa5, 0x3b, //0x0000deb8 .quad 4298070930406474645 - 0x00, 0x65, 0x0d, 0x93, 0x77, 0x65, 0x74, 0xf5, //0x0000dec0 .quad -759870872876129024 - 0x7a, 0x64, 0xe3, 0x7e, 0xec, 0x44, 0x8f, 0xca, //0x0000dec8 .quad -3850783373846682502 - 0x20, 0x5f, 0xe8, 0xbb, 0x6a, 0xbf, 0x68, 0x99, //0x0000ded0 .quad -7392448323188662496 - 0xcc, 0x1e, 0x4e, 0xcf, 0x13, 0x8b, 0x99, 0x7e, //0x0000ded8 .quad 9122475437414293196 - 0xe8, 0x76, 0xe2, 0x6a, 0x45, 0xef, 0xc2, 0xbf, //0x0000dee0 .quad -4628874385558440216 - 0x7f, 0xa6, 0x21, 0xc3, 0xd8, 0xed, 0x3f, 0x9e, //0x0000dee8 .quad -7043649776941685121 - 0xa2, 0x14, 0x9b, 0xc5, 0x16, 0xab, 0xb3, 0xef, //0x0000def0 .quad -1174406963520662366 - 0x1f, 0x10, 0xea, 0xf3, 0x4e, 0xe9, 0xcf, 0xc5, //0x0000def8 .quad -4192876202749718497 - 0xe5, 0xec, 0x80, 0x3b, 0xee, 0x4a, 0xd0, 0x95, //0x0000df00 .quad -7651533379841495835 - 0x13, 0x4a, 0x72, 0x58, 0xd1, 0xf1, 0xa1, 0xbb, //0x0000df08 .quad -4926390635932268013 - 0x1f, 0x28, 0x61, 0xca, 0xa9, 0x5d, 0x44, 0xbb, //0x0000df10 .quad -4952730706374481889 - 0x98, 0xdc, 0x8e, 0xae, 0x45, 0x6e, 0x8a, 0x2a, //0x0000df18 .quad 3065383741939440792 - 0x26, 0x72, 0xf9, 0x3c, 0x14, 0x75, 0x15, 0xea, //0x0000df20 .quad -1579227364540714458 - 0xbe, 0x93, 0x32, 0x1a, 0xd7, 0x09, 0x2d, 0xf5, //0x0000df28 .quad -779956341003086914 - 0x58, 0xe7, 0x1b, 0xa6, 0x2c, 0x69, 0x4d, 0x92, //0x0000df30 .quad -7904546130479028392 - 0x57, 0x9c, 0x5f, 0x70, 0x26, 0x26, 0x3c, 0x59, //0x0000df38 .quad 6430056314514152535 - 0x2e, 0xe1, 0xa2, 0xcf, 0x77, 0xc3, 0xe0, 0xb6, //0x0000df40 .quad -5268996644671397586 - 0x6d, 0x83, 0x77, 0x0c, 0xb0, 0x2f, 0x8b, 0x6f, //0x0000df48 .quad 8037570393142690669 - 0x7a, 0x99, 0x8b, 0xc3, 0x55, 0xf4, 0x98, 0xe4, //0x0000df50 .quad -1974559787411859078 - 0x48, 0x64, 0x95, 0x0f, 0x9c, 0xfb, 0x6d, 0x0b, //0x0000df58 .quad 823590954573587528 - 0xec, 0x3f, 0x37, 0x9a, 0xb5, 0x98, 0xdf, 0x8e, //0x0000df60 .quad -8151628894773493780 - 0xad, 0x5e, 0xbd, 0x89, 0x41, 0xbd, 0x24, 0x47, //0x0000df68 .quad 5126430365035880109 - 0xe7, 0x0f, 0xc5, 0x00, 0xe3, 0x7e, 0x97, 0xb2, //0x0000df70 .quad -5577850100039479321 - 0x58, 0xb6, 0x2c, 0xec, 0x91, 0xec, 0xed, 0x58, //0x0000df78 .quad 6408037956294850136 - 0xe1, 0x53, 0xf6, 0xc0, 0x9b, 0x5e, 0x3d, 0xdf, //0x0000df80 .quad -2360626606621961247 - 0xee, 0xe3, 0x37, 0x67, 0xb6, 0x67, 0x29, 0x2f, //0x0000df88 .quad 3398361426941174766 - 0x6c, 0xf4, 0x99, 0x58, 0x21, 0x5b, 0x86, 0x8b, //0x0000df90 .quad -8392920656779807636 - 0x75, 0xee, 0x82, 0x00, 0xd2, 0xe0, 0x79, 0xbd, //0x0000df98 .quad -4793553135802847627 - 0x87, 0x71, 0xc0, 0xae, 0xe9, 0xf1, 0x67, 0xae, //0x0000dfa0 .quad -5879464802547371641 - 0x12, 0xaa, 0xa3, 0x80, 0x06, 0x59, 0xd8, 0xec, //0x0000dfa8 .quad -1380255401326171630 - 0xe9, 0x8d, 0x70, 0x1a, 0x64, 0xee, 0x01, 0xda, //0x0000dfb0 .quad -2737644984756826647 - 0x96, 0x94, 0xcc, 0x20, 0x48, 0x6f, 0x0e, 0xe8, //0x0000dfb8 .quad -1725319251657714538 - 0xb2, 0x58, 0x86, 0x90, 0xfe, 0x34, 0x41, 0x88, //0x0000dfc0 .quad -8628557143114098510 - 0xde, 0xdc, 0x7f, 0x14, 0x8d, 0x05, 0x09, 0x31, //0x0000dfc8 .quad 3533361486141316318 - 0xde, 0xee, 0xa7, 0x34, 0x3e, 0x82, 0x51, 0xaa, //0x0000dfd0 .quad -6174010410465235234 - 0x16, 0xd4, 0x9f, 0x59, 0xf0, 0x46, 0x4b, 0xbd, //0x0000dfd8 .quad -4806670179178130410 - 0x96, 0xea, 0xd1, 0xc1, 0xcd, 0xe2, 0xe5, 0xd4, //0x0000dfe0 .quad -3105826994654156138 - 0x1b, 0xc9, 0x07, 0x70, 0xac, 0x18, 0x9e, 0x6c, //0x0000dfe8 .quad 7826720331309500699 - 0x9e, 0x32, 0x23, 0x99, 0xc0, 0xad, 0x0f, 0x85, //0x0000dff0 .quad -8858670899299929442 - 0xb1, 0xdd, 0x04, 0xc6, 0x6b, 0xcf, 0xe2, 0x03, //0x0000dff8 .quad 280014188641050033 - 0x45, 0xff, 0x6b, 0xbf, 0x30, 0x99, 0x53, 0xa6, //0x0000e000 .quad -6461652605697523899 - 0x1d, 0x15, 0x86, 0xb7, 0x46, 0x83, 0xdb, 0x84, //0x0000e008 .quad -8873354301053463267 - 0x16, 0xff, 0x46, 0xef, 0x7c, 0x7f, 0xe8, 0xcf, //0x0000e010 .quad -3465379738694516970 - 0x64, 0x9a, 0x67, 0x65, 0x18, 0x64, 0x12, 0xe6, //0x0000e018 .quad -1868320839462053276 - 0x6e, 0x5f, 0x8c, 0x15, 0xae, 0x4f, 0xf1, 0x81, //0x0000e020 .quad -9083391364325154962 - 0x7f, 0xc0, 0x60, 0x3f, 0x8f, 0x7e, 0xcb, 0x4f, //0x0000e028 .quad 5749828502977298559 - 0x49, 0x77, 0xef, 0x9a, 0x99, 0xa3, 0x6d, 0xa2, //0x0000e030 .quad -6742553186979055799 - 0x9e, 0xf0, 0x38, 0x0f, 0x33, 0x5e, 0xbe, 0xe3, //0x0000e038 .quad -2036086408133152610 - 0x1c, 0x55, 0xab, 0x01, 0x80, 0x0c, 0x09, 0xcb, //0x0000e040 .quad -3816505465296431844 - 0xc6, 0x2c, 0x07, 0xd3, 0xbf, 0xf5, 0xad, 0x5c, //0x0000e048 .quad 6678264026688335046 - 0x63, 0x2a, 0x16, 0x02, 0xa0, 0x4f, 0xcb, 0xfd, //0x0000e050 .quad -158945813193151901 - 0xf7, 0xf7, 0xc8, 0xc7, 0x2f, 0x73, 0xd9, 0x73, //0x0000e058 .quad 8347830033360418807 - 0x7e, 0xda, 0x4d, 0x01, 0xc4, 0x11, 0x9f, 0x9e, //0x0000e060 .quad -7016870160886801794 - 0xfb, 0x9a, 0xdd, 0xdc, 0xfd, 0xe7, 0x67, 0x28, //0x0000e068 .quad 2911550761636567803 - 0x1d, 0x51, 0xa1, 0x01, 0x35, 0xd6, 0x46, 0xc6, //0x0000e070 .quad -4159401682681114339 - 0xb9, 0x01, 0x15, 0x54, 0xfd, 0xe1, 0x81, 0xb2, //0x0000e078 .quad -5583933584809066055 - 0x65, 0xa5, 0x09, 0x42, 0xc2, 0x8b, 0xd8, 0xf7, //0x0000e080 .quad -587566084924005019 - 0x27, 0x42, 0x1a, 0xa9, 0x7c, 0x5a, 0x22, 0x1f, //0x0000e088 .quad 2243455055843443239 - 0x5f, 0x07, 0x46, 0x69, 0x59, 0x57, 0xe7, 0x9a, //0x0000e090 .quad -7284757830718584993 - 0x59, 0x69, 0xb0, 0xe9, 0x8d, 0x78, 0x75, 0x33, //0x0000e098 .quad 3708002419115845977 - 0x37, 0x89, 0x97, 0xc3, 0x2f, 0x2d, 0xa1, 0xc1, //0x0000e0a0 .quad -4494261269970843337 - 0xaf, 0x83, 0x1c, 0x64, 0xb1, 0xd6, 0x52, 0x00, //0x0000e0a8 .quad 23317005467419567 - 0x84, 0x6b, 0x7d, 0xb4, 0x7b, 0x78, 0x09, 0xf2, //0x0000e0b0 .quad -1006140569036166268 - 0x9b, 0xa4, 0x23, 0xbd, 0x5d, 0x8c, 0x67, 0xc0, //0x0000e0b8 .quad -4582539761593113445 - 0x32, 0x63, 0xce, 0x50, 0x4d, 0xeb, 0x45, 0x97, //0x0000e0c0 .quad -7546366883288685774 - 0xe1, 0x46, 0x36, 0x96, 0xba, 0xb7, 0x40, 0xf8, //0x0000e0c8 .quad -558244341782001951 - 0xff, 0xfb, 0x01, 0xa5, 0x20, 0x66, 0x17, 0xbd, //0x0000e0d0 .quad -4821272585683469313 - 0x99, 0xd8, 0xc3, 0x3b, 0xa9, 0xe5, 0x50, 0xb6, //0x0000e0d8 .quad -5309491445654890343 - 0xff, 0x7a, 0x42, 0xce, 0xa8, 0x3f, 0x5d, 0xec, //0x0000e0e0 .quad -1414904713676948737 - 0xbf, 0xce, 0xb4, 0x8a, 0x13, 0x1f, 0xe5, 0xa3, //0x0000e0e8 .quad -6636864307068612929 - 0xdf, 0x8c, 0xe9, 0x80, 0xc9, 0x47, 0xba, 0x93, //0x0000e0f0 .quad -7801844473689174817 - 0x38, 0x01, 0xb1, 0x36, 0x6c, 0x33, 0x6f, 0xc6, //0x0000e0f8 .quad -4148040191917883080 - 0x17, 0xf0, 0x23, 0xe1, 0xbb, 0xd9, 0xa8, 0xb8, //0x0000e100 .quad -5140619573684080617 - 0x85, 0x41, 0x5d, 0x44, 0x47, 0x00, 0x0b, 0xb8, //0x0000e108 .quad -5185050239897353851 - 0x1d, 0xec, 0x6c, 0xd9, 0x2a, 0x10, 0xd3, 0xe6, //0x0000e110 .quad -1814088448677712867 - 0xe6, 0x91, 0x74, 0x15, 0x59, 0xc0, 0x0d, 0xa6, //0x0000e118 .quad -6481312799871692314 - 0x92, 0x13, 0xe4, 0xc7, 0x1a, 0xea, 0x43, 0x90, //0x0000e120 .quad -8051334308064652398 - 0x30, 0xdb, 0x68, 0xad, 0x37, 0x98, 0xc8, 0x87, //0x0000e128 .quad -8662506518347195600 - 0x77, 0x18, 0xdd, 0x79, 0xa1, 0xe4, 0x54, 0xb4, //0x0000e130 .quad -5452481866653427593 - 0xfc, 0x11, 0xc3, 0x98, 0x45, 0xbe, 0xba, 0x29, //0x0000e138 .quad 3006924907348169212 - 0x94, 0x5e, 0x54, 0xd8, 0xc9, 0x1d, 0x6a, 0xe1, //0x0000e140 .quad -2203916314889396588 - 0x7b, 0xd6, 0xf3, 0xfe, 0xd6, 0x6d, 0x29, 0xf4, //0x0000e148 .quad -853029884242176389 - 0x1d, 0xbb, 0x34, 0x27, 0x9e, 0x52, 0xe2, 0x8c, //0x0000e150 .quad -8294976724446954723 - 0x0d, 0x66, 0x58, 0x5f, 0xa6, 0xe4, 0x99, 0x18, //0x0000e158 .quad 1772699331562333709 - 0xe4, 0xe9, 0x01, 0xb1, 0x45, 0xe7, 0x1a, 0xb0, //0x0000e160 .quad -5757034887131305500 - 0x90, 0x7f, 0x2e, 0xf7, 0xcf, 0x5d, 0xc0, 0x5e, //0x0000e168 .quad 6827560182880305040 - 0x5d, 0x64, 0x42, 0x1d, 0x17, 0xa1, 0x21, 0xdc, //0x0000e170 .quad -2584607590486743971 - 0x74, 0x1f, 0xfa, 0xf4, 0x43, 0x75, 0x70, 0x76, //0x0000e178 .quad 8534450228600381300 - 0xba, 0x7e, 0x49, 0x72, 0xae, 0x04, 0x95, 0x89, //0x0000e180 .quad -8532908771695296838 - 0xa9, 0x53, 0x1c, 0x79, 0x4a, 0x49, 0x06, 0x6a, //0x0000e188 .quad 7639874402088932265 - 0x69, 0xde, 0xdb, 0x0e, 0xda, 0x45, 0xfa, 0xab, //0x0000e190 .quad -6054449946191733143 - 0x93, 0x68, 0x63, 0x17, 0x9d, 0xdb, 0x87, 0x04, //0x0000e198 .quad 326470965756389523 - 0x03, 0xd6, 0x92, 0x92, 0x50, 0xd7, 0xf8, 0xd6, //0x0000e1a0 .quad -2956376414312278525 - 0xb7, 0x42, 0x3c, 0x5d, 0x84, 0xd2, 0xa9, 0x45, //0x0000e1a8 .quad 5019774725622874807 - 0xc2, 0xc5, 0x9b, 0x5b, 0x92, 0x86, 0x5b, 0x86, //0x0000e1b0 .quad -8765264286586255934 - 0xb3, 0xa9, 0x45, 0xba, 0x92, 0x23, 0x8a, 0x0b, //0x0000e1b8 .quad 831516194300602803 - 0x32, 0xb7, 0x82, 0xf2, 0x36, 0x68, 0xf2, 0xa7, //0x0000e1c0 .quad -6344894339805432014 - 0x1f, 0x14, 0xd7, 0x68, 0x77, 0xac, 0x6c, 0x8e, //0x0000e1c8 .quad -8183976793979022305 - 0xff, 0x64, 0x23, 0xaf, 0x44, 0x02, 0xef, 0xd1, //0x0000e1d0 .quad -3319431906329402113 - 0x27, 0xd9, 0x0c, 0x43, 0x95, 0xd7, 0x07, 0x32, //0x0000e1d8 .quad 3605087062808385831 - 0x1f, 0x1f, 0x76, 0xed, 0x6a, 0x61, 0x35, 0x83, //0x0000e1e0 .quad -8992173969096958177 - 0xb9, 0x07, 0xe8, 0x49, 0xbd, 0xe6, 0x44, 0x7f, //0x0000e1e8 .quad 9170708441896323001 - 0xe7, 0xa6, 0xd3, 0xa8, 0xc5, 0xb9, 0x02, 0xa4, //0x0000e1f0 .quad -6628531442943809817 - 0xa7, 0x09, 0x62, 0x9c, 0x6c, 0x20, 0x16, 0x5f, //0x0000e1f8 .quad 6851699533943015847 - 0xa1, 0x90, 0x08, 0x13, 0x37, 0x68, 0x03, 0xcd, //0x0000e200 .quad -3673978285252374367 - 0x10, 0x8c, 0x7a, 0xc3, 0x87, 0xa8, 0xdb, 0x36, //0x0000e208 .quad 3952938399001381904 - 0x64, 0x5a, 0xe5, 0x6b, 0x22, 0x21, 0x22, 0x80, //0x0000e210 .quad -9213765455923815836 - 0x8a, 0x97, 0x2c, 0xda, 0x54, 0x49, 0x49, 0xc2, //0x0000e218 .quad -4446942528265218166 - 0xfd, 0xb0, 0xde, 0x06, 0x6b, 0xa9, 0x2a, 0xa0, //0x0000e220 .quad -6905520801477381891 - 0x6d, 0xbd, 0xb7, 0x10, 0xaa, 0x9b, 0xdb, 0xf2, //0x0000e228 .quad -946992141904134803 - 0x3d, 0x5d, 0x96, 0xc8, 0xc5, 0x53, 0x35, 0xc8, //0x0000e230 .quad -4020214983419339459 - 0xc8, 0xac, 0xe5, 0x94, 0x94, 0x82, 0x92, 0x6f, //0x0000e238 .quad 8039631859474607304 - 0x8c, 0xf4, 0xbb, 0x3a, 0xb7, 0xa8, 0x42, 0xfa, //0x0000e240 .quad -413582710846786420 - 0xfa, 0x17, 0x1f, 0xba, 0x39, 0x23, 0x77, 0xcb, //0x0000e248 .quad -3785518230938904582 - 0xd7, 0x78, 0xb5, 0x84, 0x72, 0xa9, 0x69, 0x9c, //0x0000e250 .quad -7176018221920323369 - 0xfc, 0x6e, 0x53, 0x14, 0x04, 0x76, 0x2a, 0xff, //0x0000e258 .quad -60105885123121412 - 0x0d, 0xd7, 0xe2, 0x25, 0xcf, 0x13, 0x84, 0xc3, //0x0000e260 .quad -4358336758973016307 - 0xbb, 0x4a, 0x68, 0x19, 0x85, 0x13, 0xf5, 0xfe, //0x0000e268 .quad -75132356403901765 - 0xd1, 0x8c, 0x5b, 0xef, 0xc2, 0x18, 0x65, 0xf4, //0x0000e270 .quad -836234930288882479 - 0x6a, 0x5d, 0xc2, 0x5f, 0x66, 0x58, 0xb2, 0x7e, //0x0000e278 .quad 9129456591349898602 - 0x02, 0x38, 0x99, 0xd5, 0x79, 0x2f, 0xbf, 0x98, //0x0000e280 .quad -7440175859071633406 - 0x62, 0x7a, 0xd9, 0xfb, 0x3f, 0x77, 0x2f, 0xef, //0x0000e288 .quad -1211618658047395230 - 0x03, 0x86, 0xff, 0x4a, 0x58, 0xfb, 0xee, 0xbe, //0x0000e290 .quad -4688533805412153853 - 0xfb, 0xd8, 0xcf, 0xfa, 0x0f, 0x55, 0xfb, 0xaa, //0x0000e298 .quad -6126209340986631941 - 0x84, 0x67, 0xbf, 0x5d, 0x2e, 0xba, 0xaa, 0xee, //0x0000e2a0 .quad -1248981238337804412 - 0x39, 0xcf, 0x83, 0xf9, 0x53, 0x2a, 0xba, 0x95, //0x0000e2a8 .quad -7657761676233289927 - 0xb2, 0xa0, 0x97, 0xfa, 0x5c, 0xb4, 0x2a, 0x95, //0x0000e2b0 .quad -7698142301602209614 - 0x84, 0x61, 0xf2, 0x7b, 0x74, 0x5a, 0x94, 0xdd, //0x0000e2b8 .quad -2480258038432112252 - 0xdf, 0x88, 0x3d, 0x39, 0x74, 0x61, 0x75, 0xba, //0x0000e2c0 .quad -5010991858575374113 - 0xe5, 0xf9, 0xee, 0x9a, 0x11, 0x71, 0xf9, 0x94, //0x0000e2c8 .quad -7712008566467528219 - 0x17, 0xeb, 0x8c, 0x47, 0xd1, 0xb9, 0x12, 0xe9, //0x0000e2d0 .quad -1652053804791829737 - 0x5e, 0xb8, 0xaa, 0x01, 0x56, 0xcd, 0x37, 0x7a, //0x0000e2d8 .quad 8806733365625141342 - 0xee, 0x12, 0xb8, 0xcc, 0x22, 0xb4, 0xab, 0x91, //0x0000e2e0 .quad -7950062655635975442 - 0x3b, 0xb3, 0x0a, 0xc1, 0x55, 0xe0, 0x62, 0xac, //0x0000e2e8 .quad -6025006692552756421 - 0xaa, 0x17, 0xe6, 0x7f, 0x2b, 0xa1, 0x16, 0xb6, //0x0000e2f0 .quad -5325892301117581398 - 0x0a, 0x60, 0x4d, 0x31, 0x6b, 0x98, 0x7b, 0x57, //0x0000e2f8 .quad 6303799689591218186 - 0x94, 0x9d, 0xdf, 0x5f, 0x76, 0x49, 0x9c, 0xe3, //0x0000e300 .quad -2045679357969588844 - 0x0c, 0xb8, 0xa0, 0xfd, 0x85, 0x7e, 0x5a, 0xed, //0x0000e308 .quad -1343622424865753076 - 0x7d, 0xc2, 0xeb, 0xfb, 0xe9, 0xad, 0x41, 0x8e, //0x0000e310 .quad -8196078626372074883 - 0x08, 0x73, 0x84, 0xbe, 0x13, 0x8f, 0x58, 0x14, //0x0000e318 .quad 1466078993672598280 - 0x1c, 0xb3, 0xe6, 0x7a, 0x64, 0x19, 0xd2, 0xb1, //0x0000e320 .quad -5633412264537705700 - 0xc9, 0x8f, 0x25, 0xae, 0xd8, 0xb2, 0x6e, 0x59, //0x0000e328 .quad 6444284760518135753 - 0xe3, 0x5f, 0xa0, 0x99, 0xbd, 0x9f, 0x46, 0xde, //0x0000e330 .quad -2430079312244744221 - 0xbc, 0xf3, 0xae, 0xd9, 0x8e, 0x5f, 0xca, 0x6f, //0x0000e338 .quad 8055355950647669692 - 0xee, 0x3b, 0x04, 0x80, 0xd6, 0x23, 0xec, 0x8a, //0x0000e340 .quad -8436328597794046994 - 0x55, 0x58, 0x0d, 0x48, 0xb9, 0x7b, 0xde, 0x25, //0x0000e348 .quad 2728754459941099605 - 0xe9, 0x4a, 0x05, 0x20, 0xcc, 0x2c, 0xa7, 0xad, //0x0000e350 .quad -5933724728815170839 - 0x6b, 0xae, 0x10, 0x9a, 0xa7, 0x1a, 0x56, 0xaf, //0x0000e358 .quad -5812428961928401301 - 0xa4, 0x9d, 0x06, 0x28, 0xff, 0xf7, 0x10, 0xd9, //0x0000e360 .quad -2805469892591575644 - 0x05, 0xda, 0x94, 0x80, 0x51, 0xa1, 0x2b, 0x1b, //0x0000e368 .quad 1957835834444274181 - 0x86, 0x22, 0x04, 0x79, 0xff, 0x9a, 0xaa, 0x87, //0x0000e370 .quad -8670947710510816634 - 0x43, 0x08, 0x5d, 0xf0, 0xd2, 0x44, 0xfb, 0x90, //0x0000e378 .quad -7999724640327104445 - 0x28, 0x2b, 0x45, 0x57, 0xbf, 0x41, 0x95, 0xa9, //0x0000e380 .quad -6226998619711132888 - 0x54, 0x4a, 0x74, 0xac, 0x07, 0x16, 0x3a, 0x35, //0x0000e388 .quad 3835402254873283156 - 0xf2, 0x75, 0x16, 0x2d, 0x2f, 0x92, 0xfa, 0xd3, //0x0000e390 .quad -3172062256211528206 - 0xe9, 0x5c, 0x91, 0x97, 0x89, 0x9b, 0x88, 0x42, //0x0000e398 .quad 4794252818591603945 - 0xb7, 0x09, 0x2e, 0x7c, 0x5d, 0x9b, 0x7c, 0x84, //0x0000e3a0 .quad -8900067937773286985 - 0x12, 0xda, 0xba, 0xfe, 0x35, 0x61, 0x95, 0x69, //0x0000e3a8 .quad 7608094030047140370 - 0x25, 0x8c, 0x39, 0xdb, 0x34, 0xc2, 0x9b, 0xa5, //0x0000e3b0 .quad -6513398903789220827 - 0x96, 0x90, 0x69, 0x7e, 0x83, 0xb9, 0xfa, 0x43, //0x0000e3b8 .quad 4898431519131537558 - 0x2e, 0xef, 0x07, 0x12, 0xc2, 0xb2, 0x02, 0xcf, //0x0000e3c0 .quad -3530062611309138130 - 0xbc, 0xf4, 0x03, 0x5e, 0xe4, 0x67, 0xf9, 0x94, //0x0000e3c8 .quad -7712018656367741764 - 0x7d, 0xf5, 0x44, 0x4b, 0xb9, 0xaf, 0x61, 0x81, //0x0000e3d0 .quad -9123818159709293187 - 0xf6, 0x78, 0xc2, 0xba, 0xee, 0xe0, 0x1b, 0x1d, //0x0000e3d8 .quad 2097517367411243254 - 0xdc, 0x32, 0x16, 0x9e, 0xa7, 0x1b, 0xba, 0xa1, //0x0000e3e0 .quad -6793086681209228580 - 0x33, 0x17, 0x73, 0x69, 0x2a, 0xd9, 0x62, 0x64, //0x0000e3e8 .quad 7233582727691441971 - 0x93, 0xbf, 0x9b, 0x85, 0x91, 0xa2, 0x28, 0xca, //0x0000e3f0 .quad -3879672333084147821 - 0xff, 0xdc, 0xcf, 0x03, 0x75, 0x8f, 0x7b, 0x7d, //0x0000e3f8 .quad 9041978409614302463 - 0x78, 0xaf, 0x02, 0xe7, 0x35, 0xcb, 0xb2, 0xfc, //0x0000e400 .quad -237904397927796872 - 0x3f, 0xd4, 0xc3, 0x44, 0x52, 0x73, 0xda, 0x5c, //0x0000e408 .quad 6690786993590490175 - 0xab, 0xad, 0x61, 0xb0, 0x01, 0xbf, 0xef, 0x9d, //0x0000e410 .quad -7066219276345954901 - 0xa8, 0x64, 0xfa, 0x6a, 0x13, 0x88, 0x08, 0x3a, //0x0000e418 .quad 4181741870994056360 - 0x16, 0x19, 0x7a, 0x1c, 0xc2, 0xae, 0x6b, 0xc5, //0x0000e420 .quad -4221088077005055722 - 0xd1, 0xfd, 0xb8, 0x45, 0x18, 0xaa, 0x8a, 0x08, //0x0000e428 .quad 615491320315182545 - 0x5b, 0x9f, 0x98, 0xa3, 0x72, 0x9a, 0xc6, 0xf6, //0x0000e430 .quad -664674077828931749 - 0x46, 0x3d, 0x27, 0x57, 0x9e, 0x54, 0xad, 0x8a, //0x0000e438 .quad -8454007886460797626 - 0x99, 0x63, 0x3f, 0xa6, 0x87, 0x20, 0x3c, 0x9a, //0x0000e440 .quad -7332950326284164199 - 0x4c, 0x86, 0x78, 0xf6, 0xe2, 0x54, 0xac, 0x36, //0x0000e448 .quad 3939617107816777292 - 0x7f, 0x3c, 0xcf, 0x8f, 0xa9, 0x28, 0xcb, 0xc0, //0x0000e450 .quad -4554501889427817345 - 0xde, 0xa7, 0x16, 0xb4, 0x1b, 0x6a, 0x57, 0x84, //0x0000e458 .quad -8910536670511192098 - 0x9f, 0x0b, 0xc3, 0xf3, 0xd3, 0xf2, 0xfd, 0xf0, //0x0000e460 .quad -1081441343357383777 - 0xd6, 0x51, 0x1c, 0xa1, 0xa2, 0x44, 0x6d, 0x65, //0x0000e468 .quad 7308573235570561494 - 0x43, 0xe7, 0x59, 0x78, 0xc4, 0xb7, 0x9e, 0x96, //0x0000e470 .quad -7593429867239446717 - 0x26, 0xb3, 0xb1, 0xa4, 0xe5, 0x4a, 0x64, 0x9f, //0x0000e478 .quad -6961356773836868826 - 0x14, 0x61, 0x70, 0x96, 0xb5, 0x65, 0x46, 0xbc, //0x0000e480 .quad -4880101315621920492 - 0xef, 0x1f, 0xde, 0x0d, 0x9f, 0x5d, 0x3d, 0x87, //0x0000e488 .quad -8701695967296086033 - 0x59, 0x79, 0x0c, 0xfc, 0x22, 0xff, 0x57, 0xeb, //0x0000e490 .quad -1488440626100012711 - 0xeb, 0xa7, 0x55, 0xd1, 0x06, 0xb5, 0x0c, 0xa9, //0x0000e498 .quad -6265433940692719637 - 0xd8, 0xcb, 0x87, 0xdd, 0x75, 0xff, 0x16, 0x93, //0x0000e4a0 .quad -7847804418953589800 - 0xf3, 0x88, 0xd5, 0x42, 0x24, 0xf1, 0xa7, 0x09, //0x0000e4a8 .quad 695789805494438131 - 0xce, 0xbe, 0xe9, 0x54, 0x53, 0xbf, 0xdc, 0xb7, //0x0000e4b0 .quad -5198069505264599346 - 0x30, 0xeb, 0x8a, 0x53, 0x6d, 0xed, 0x11, 0x0c, //0x0000e4b8 .quad 869737256868047664 - 0x81, 0x2e, 0x24, 0x2a, 0x28, 0xef, 0xd3, 0xe5, //0x0000e4c0 .quad -1885900863153361279 - 0xfb, 0xa5, 0x6d, 0xa8, 0xc8, 0x68, 0x16, 0x8f, //0x0000e4c8 .quad -8136200465769716229 - 0x10, 0x9d, 0x56, 0x1a, 0x79, 0x75, 0xa4, 0x8f, //0x0000e4d0 .quad -8096217067111932656 - 0xbd, 0x87, 0x44, 0x69, 0x7d, 0x01, 0x6e, 0xf9, //0x0000e4d8 .quad -473439272678684739 - 0x55, 0x44, 0xec, 0x60, 0xd7, 0x92, 0x8d, 0xb3, //0x0000e4e0 .quad -5508585315462527915 - 0xad, 0xa9, 0x95, 0xc3, 0xdc, 0x81, 0xc9, 0x37, //0x0000e4e8 .quad 4019886927579031981 - 0x6a, 0x55, 0x27, 0x39, 0x8d, 0xf7, 0x70, 0xe0, //0x0000e4f0 .quad -2274045625900771990 - 0x18, 0x14, 0x7b, 0xf4, 0x53, 0xe2, 0xbb, 0x85, //0x0000e4f8 .quad -8810199395808373736 - 0x62, 0x95, 0xb8, 0x43, 0xb8, 0x9a, 0x46, 0x8c, //0x0000e500 .quad -8338807543829064350 - 0x8f, 0xec, 0xcc, 0x78, 0x74, 0x6d, 0x95, 0x93, //0x0000e508 .quad -7812217631593927537 - 0xbb, 0xba, 0xa6, 0x54, 0x66, 0x41, 0x58, 0xaf, //0x0000e510 .quad -5811823411358942533 - 0xb3, 0x27, 0x00, 0x97, 0xd1, 0xc8, 0x7a, 0x38, //0x0000e518 .quad 4069786015789754291 - 0x6a, 0x69, 0xd0, 0xe9, 0xbf, 0x51, 0x2e, 0xdb, //0x0000e520 .quad -2653093245771290262 - 0x9f, 0x31, 0xc0, 0xfc, 0x05, 0x7b, 0x99, 0x06, //0x0000e528 .quad 475546501309804959 - 0xe2, 0x41, 0x22, 0xf2, 0x17, 0xf3, 0xfc, 0x88, //0x0000e530 .quad -8575712306248138270 - 0x04, 0x1f, 0xf8, 0xbd, 0xe3, 0xec, 0x1f, 0x44, //0x0000e538 .quad 4908902581746016004 - 0x5a, 0xd2, 0xaa, 0xee, 0xdd, 0x2f, 0x3c, 0xab, //0x0000e540 .quad -6107954364382784934 - 0xc4, 0x26, 0x76, 0xad, 0x1c, 0xe8, 0x27, 0xd5, //0x0000e548 .quad -3087243809672255804 - 0xf1, 0x86, 0x55, 0x6a, 0xd5, 0x3b, 0x0b, 0xd6, //0x0000e550 .quad -3023256937051093263 - 0x75, 0xb0, 0xd3, 0xd8, 0x23, 0xe2, 0x71, 0x8a, //0x0000e558 .quad -8470740780517707659 - 0x56, 0x74, 0x75, 0x62, 0x65, 0x05, 0xc7, 0x85, //0x0000e560 .quad -8807064613298015146 - 0x4a, 0x4e, 0x84, 0x67, 0x56, 0x2d, 0x87, 0xf6, //0x0000e568 .quad -682526969396179382 - 0x6c, 0xd1, 0x12, 0xbb, 0xbe, 0xc6, 0x38, 0xa7, //0x0000e570 .quad -6397144748195131028 - 0xdc, 0x61, 0x65, 0x01, 0xac, 0xf8, 0x28, 0xb4, //0x0000e578 .quad -5464844730172612132 - 0xc7, 0x85, 0xd7, 0x69, 0x6e, 0xf8, 0x06, 0xd1, //0x0000e580 .quad -3384744916816525881 - 0x53, 0xba, 0xbe, 0x01, 0xd7, 0x36, 0x33, 0xe1, //0x0000e588 .quad -2219369894288377261 - 0x9c, 0xb3, 0x26, 0x02, 0x45, 0x5b, 0xa4, 0x82, //0x0000e590 .quad -9032994600651410532 - 0x74, 0x34, 0x17, 0x61, 0x46, 0x02, 0xc0, 0xec, //0x0000e598 .quad -1387106183930235788 - 0x84, 0x60, 0xb0, 0x42, 0x16, 0x72, 0x4d, 0xa3, //0x0000e5a0 .quad -6679557232386875260 - 0x91, 0x01, 0x5d, 0xf9, 0xd7, 0x02, 0xf0, 0x27, //0x0000e5a8 .quad 2877803288514593169 - 0xa5, 0x78, 0x5c, 0xd3, 0x9b, 0xce, 0x20, 0xcc, //0x0000e5b0 .quad -3737760522056206171 - 0xf5, 0x41, 0xb4, 0xf7, 0x8d, 0x03, 0xec, 0x31, //0x0000e5b8 .quad 3597254110643241461 - 0xce, 0x96, 0x33, 0xc8, 0x42, 0x02, 0x29, 0xff, //0x0000e5c0 .quad -60514634142869810 - 0x72, 0x52, 0xa1, 0x75, 0x71, 0x04, 0x67, 0x7e, //0x0000e5c8 .quad 9108253656731439730 - 0x41, 0x3e, 0x20, 0xbd, 0x69, 0xa1, 0x79, 0x9f, //0x0000e5d0 .quad -6955350673980375487 - 0x87, 0xd3, 0x84, 0xe9, 0xc6, 0x62, 0x00, 0x0f, //0x0000e5d8 .quad 1080972517029761927 - 0xd1, 0x4d, 0x68, 0x2c, 0xc4, 0x09, 0x58, 0xc7, //0x0000e5e0 .quad -4082502324048081455 - 0x69, 0x08, 0xe6, 0xa3, 0x78, 0x7b, 0xc0, 0x52, //0x0000e5e8 .quad 5962901664714590313 - 0x45, 0x61, 0x82, 0x37, 0x35, 0x0c, 0x2e, 0xf9, //0x0000e5f0 .quad -491441886632713915 - 0x83, 0x8a, 0xdf, 0xcc, 0x56, 0x9a, 0x70, 0xa7, //0x0000e5f8 .quad -6381430974388925821 - 0xcb, 0x7c, 0xb1, 0x42, 0xa1, 0xc7, 0xbc, 0x9b, //0x0000e600 .quad -7224680206786528053 - 0x92, 0xb6, 0x0b, 0x40, 0x76, 0x60, 0xa6, 0x88, //0x0000e608 .quad -8600080377420466542 - 0xfe, 0xdb, 0x5d, 0x93, 0x89, 0xf9, 0xab, 0xc2, //0x0000e610 .quad -4419164240055772162 - 0x36, 0xa4, 0x0e, 0xd0, 0x93, 0xf8, 0xcf, 0x6a, //0x0000e618 .quad 7696643601933968438 - 0xfe, 0x52, 0x35, 0xf8, 0xeb, 0xf7, 0x56, 0xf3, //0x0000e620 .quad -912269281642327298 - 0x44, 0x4d, 0x12, 0xc4, 0xb8, 0xf6, 0x83, 0x05, //0x0000e628 .quad 397432465562684740 - 0xde, 0x53, 0x21, 0x7b, 0xf3, 0x5a, 0x16, 0x98, //0x0000e630 .quad -7487697328667536418 - 0x4b, 0x70, 0x8b, 0x7a, 0x33, 0x7a, 0x72, 0xc3, //0x0000e638 .quad -4363290727450709941 - 0xd6, 0xa8, 0xe9, 0x59, 0xb0, 0xf1, 0x1b, 0xbe, //0x0000e640 .quad -4747935642407032618 - 0x5d, 0x4c, 0x2e, 0x59, 0xc0, 0x18, 0x4f, 0x74, //0x0000e648 .quad 8380944645968776285 - 0x0c, 0x13, 0x64, 0x70, 0x1c, 0xee, 0xa2, 0xed, //0x0000e650 .quad -1323233534581402868 - 0x74, 0xdf, 0x79, 0x6f, 0xf0, 0xde, 0x62, 0x11, //0x0000e658 .quad 1252808770606194548 - 0xe7, 0x8b, 0x3e, 0xc6, 0xd1, 0xd4, 0x85, 0x94, //0x0000e660 .quad -7744549986754458649 - 0xa9, 0x2b, 0xac, 0x45, 0x56, 0xcb, 0xdd, 0x8a, //0x0000e668 .quad -8440366555225904215 - 0xe1, 0x2e, 0xce, 0x37, 0x06, 0x4a, 0xa7, 0xb9, //0x0000e670 .quad -5069001465015685407 - 0x93, 0x36, 0x17, 0xd7, 0x2b, 0x3e, 0x95, 0x6d, //0x0000e678 .quad 7896285879677171347 - 0x99, 0xba, 0xc1, 0xc5, 0x87, 0x1c, 0x11, 0xe8, //0x0000e680 .quad -1724565812842218855 - 0x38, 0x04, 0xdd, 0xcc, 0xb6, 0x8d, 0xfa, 0xc8, //0x0000e688 .quad -3964700705685699528 - 0xa0, 0x14, 0x99, 0xdb, 0xd4, 0xb1, 0x0a, 0x91, //0x0000e690 .quad -7995382660667468640 - 0xa3, 0x22, 0x0a, 0x40, 0x92, 0x98, 0x9c, 0x1d, //0x0000e698 .quad 2133748077373825699 - 0xc8, 0x59, 0x7f, 0x12, 0x4a, 0x5e, 0x4d, 0xb5, //0x0000e6a0 .quad -5382542307406947896 - 0x4c, 0xab, 0x0c, 0xd0, 0xb6, 0xbe, 0x03, 0x25, //0x0000e6a8 .quad 2667185096717282124 - 0x3a, 0x30, 0x1f, 0x97, 0xdc, 0xb5, 0xa0, 0xe2, //0x0000e6b0 .quad -2116491865831296966 - 0x1e, 0xd6, 0x0f, 0x84, 0x64, 0xae, 0x44, 0x2e, //0x0000e6b8 .quad 3333981370896602654 - 0x24, 0x7e, 0x73, 0xde, 0xa9, 0x71, 0xa4, 0x8d, //0x0000e6c0 .quad -8240336443785642460 - 0xd3, 0xe5, 0x89, 0xd2, 0xfe, 0xec, 0xea, 0x5c, //0x0000e6c8 .quad 6695424375237764563 - 0xad, 0x5d, 0x10, 0x56, 0x14, 0x8e, 0x0d, 0xb1, //0x0000e6d0 .quad -5688734536304665171 - 0x48, 0x5f, 0x2c, 0x87, 0x3e, 0xa8, 0x25, 0x74, //0x0000e6d8 .quad 8369280469047205704 - 0x18, 0x75, 0x94, 0x6b, 0x99, 0xf1, 0x50, 0xdd, //0x0000e6e0 .quad -2499232151953443560 - 0x1a, 0x77, 0xf7, 0x28, 0x4e, 0x12, 0x2f, 0xd1, //0x0000e6e8 .quad -3373457468973156582 - 0x2f, 0xc9, 0x3c, 0xe3, 0xff, 0x96, 0x52, 0x8a, //0x0000e6f0 .quad -8479549122611984081 - 0x70, 0xaa, 0x9a, 0xd9, 0x70, 0x6b, 0xbd, 0x82, //0x0000e6f8 .quad -9025939945749304720 - 0x7b, 0xfb, 0x0b, 0xdc, 0xbf, 0x3c, 0xe7, 0xac, //0x0000e700 .quad -5987750384837592197 - 0x0c, 0x55, 0x01, 0x10, 0x4d, 0xc6, 0x6c, 0x63, //0x0000e708 .quad 7164319141522920716 - 0x5a, 0xfa, 0x0e, 0xd3, 0xef, 0x0b, 0x21, 0xd8, //0x0000e710 .quad -2873001962619602342 - 0x4f, 0xaa, 0x01, 0x54, 0xe0, 0xf7, 0x47, 0x3c, //0x0000e718 .quad 4343712908476262991 - 0x78, 0x5c, 0xe9, 0xe3, 0x75, 0xa7, 0x14, 0x87, //0x0000e720 .quad -8713155254278333320 - 0x72, 0x0a, 0x81, 0x34, 0xec, 0xfa, 0xac, 0x65, //0x0000e728 .quad 7326506586225052274 - 0x96, 0xb3, 0xe3, 0x5c, 0x53, 0xd1, 0xd9, 0xa8, //0x0000e730 .quad -6279758049420528746 - 0x0e, 0x4d, 0xa1, 0x41, 0xa7, 0x39, 0x18, 0x7f, //0x0000e738 .quad 9158133232781315342 - 0x7c, 0xa0, 0x1c, 0x34, 0xa8, 0x45, 0x10, 0xd3, //0x0000e740 .quad -3238011543348273028 - 0x51, 0xa0, 0x09, 0x12, 0x11, 0x48, 0xde, 0x1e, //0x0000e748 .quad 2224294504121868369 - 0x4d, 0xe4, 0x91, 0x20, 0x89, 0x2b, 0xea, 0x83, //0x0000e750 .quad -8941286242233752499 - 0x33, 0x04, 0x46, 0xab, 0x0a, 0xed, 0x4a, 0x93, //0x0000e758 .quad -7833187971778608077 - 0x60, 0x5d, 0xb6, 0x68, 0x6b, 0xb6, 0xe4, 0xa4, //0x0000e760 .quad -6564921784364802720 - 0x40, 0x85, 0x17, 0x56, 0x4d, 0xa8, 0x1d, 0xf8, //0x0000e768 .quad -568112927868484288 - 0xb9, 0xf4, 0xe3, 0x42, 0x06, 0xe4, 0x1d, 0xce, //0x0000e770 .quad -3594466212028615495 - 0x8f, 0x66, 0x9d, 0xab, 0x60, 0x12, 0x25, 0x36, //0x0000e778 .quad 3901544858591782543 - 0xf3, 0x78, 0xce, 0xe9, 0x83, 0xae, 0xd2, 0x80, //0x0000e780 .quad -9164070410158966541 - 0x1a, 0x60, 0x42, 0x6b, 0x7c, 0x2b, 0xd7, 0xc1, //0x0000e788 .quad -4479063491021217766 - 0x30, 0x17, 0x42, 0xe4, 0x24, 0x5a, 0x07, 0xa1, //0x0000e790 .quad -6843401994271320272 - 0x20, 0xf8, 0x12, 0x86, 0x5b, 0xf6, 0x4c, 0xb2, //0x0000e798 .quad -5598829363776522208 - 0xfc, 0x9c, 0x52, 0x1d, 0xae, 0x30, 0x49, 0xc9, //0x0000e7a0 .quad -3942566474411762436 - 0x28, 0xb6, 0x97, 0x67, 0xf2, 0x33, 0xe0, 0xde, //0x0000e7a8 .quad -2386850686293264856 - 0x3c, 0x44, 0xa7, 0xa4, 0xd9, 0x7c, 0x9b, 0xfb, //0x0000e7b0 .quad -316522074587315140 - 0xb2, 0xa3, 0x7d, 0x01, 0xef, 0x40, 0x98, 0x16, //0x0000e7b8 .quad 1628122660560806834 - 0xa5, 0x8a, 0xe8, 0x06, 0x08, 0x2e, 0x41, 0x9d, //0x0000e7c0 .quad -7115355324258153819 - 0x4f, 0x86, 0xee, 0x60, 0x95, 0x28, 0x1f, 0x8e, //0x0000e7c8 .quad -8205795374004271537 - 0x4e, 0xad, 0xa2, 0x08, 0x8a, 0x79, 0x91, 0xc4, //0x0000e7d0 .quad -4282508136895304370 - 0xe3, 0x27, 0x2a, 0xb9, 0xba, 0xf2, 0xa6, 0xf1, //0x0000e7d8 .quad -1033872180650563613 - 0xa2, 0x58, 0xcb, 0x8a, 0xec, 0xd7, 0xb5, 0xf5, //0x0000e7e0 .quad -741449152691742558 - 0xdc, 0xb1, 0x74, 0x67, 0x69, 0xaf, 0x10, 0xae, //0x0000e7e8 .quad -5904026244240592420 - 0x65, 0x17, 0xbf, 0xd6, 0xf3, 0xa6, 0x91, 0x99, //0x0000e7f0 .quad -7380934748073420955 - 0x2a, 0xef, 0xa8, 0xe0, 0xa1, 0x6d, 0xca, 0xac, //0x0000e7f8 .quad -5995859411864064214 - 0x3f, 0xdd, 0x6e, 0xcc, 0xb0, 0x10, 0xf6, 0xbf, //0x0000e800 .quad -4614482416664388289 - 0xf4, 0x2a, 0xd3, 0x58, 0x0a, 0x09, 0xfd, 0x17, //0x0000e808 .quad 1728547772024695540 - 0x8e, 0x94, 0x8a, 0xff, 0xdc, 0x94, 0xf3, 0xef, //0x0000e810 .quad -1156417002403097458 - 0xb1, 0xf5, 0x07, 0xef, 0x4c, 0x4b, 0xfc, 0xdd, //0x0000e818 .quad -2451001303396518479 - 0xd9, 0x9c, 0xb6, 0x1f, 0x0a, 0x3d, 0xf8, 0x95, //0x0000e820 .quad -7640289654143017767 - 0x8f, 0xf9, 0x64, 0x15, 0x10, 0xaf, 0xbd, 0x4a, //0x0000e828 .quad 5385653213018257807 - 0x0f, 0x44, 0xa4, 0xa7, 0x4c, 0x4c, 0x76, 0xbb, //0x0000e830 .quad -4938676049251384305 - 0xf2, 0x37, 0xbe, 0x1a, 0xd4, 0x1a, 0x6d, 0x9d, //0x0000e838 .quad -7102991539009341454 - 0x13, 0x55, 0x8d, 0xd1, 0x5f, 0xdf, 0x53, 0xea, //0x0000e840 .quad -1561659043136842477 - 0xee, 0xc5, 0x6d, 0x21, 0x89, 0x61, 0xc8, 0x84, //0x0000e848 .quad -8878739423761676818 - 0x2c, 0x55, 0xf8, 0xe2, 0x9b, 0x6b, 0x74, 0x92, //0x0000e850 .quad -7893565929601608404 - 0xb5, 0x9b, 0xe4, 0xb4, 0xf5, 0x3c, 0xfd, 0x32, //0x0000e858 .quad 3674159897003727797 - 0x77, 0x6a, 0xb6, 0xdb, 0x82, 0x86, 0x11, 0xb7, //0x0000e860 .quad -5255271393574622601 - 0xa2, 0xc2, 0x1d, 0x22, 0x33, 0x8c, 0xbc, 0x3f, //0x0000e868 .quad 4592699871254659746 - 0x15, 0x05, 0xa4, 0x92, 0x23, 0xe8, 0xd5, 0xe4, //0x0000e870 .quad -1957403223540890347 - 0x4b, 0x33, 0xa5, 0xea, 0x3f, 0xaf, 0xab, 0x0f, //0x0000e878 .quad 1129188820640936779 - 0x2d, 0x83, 0xa6, 0x3b, 0x16, 0xb1, 0x05, 0x8f, //0x0000e880 .quad -8140906042354138323 - 0x0f, 0x40, 0xa7, 0xf2, 0x87, 0x4d, 0xcb, 0x29, //0x0000e888 .quad 3011586022114279439 - 0xf8, 0x23, 0x90, 0xca, 0x5b, 0x1d, 0xc7, 0xb2, //0x0000e890 .quad -5564446534515285000 - 0x13, 0x10, 0x51, 0xef, 0xe9, 0x20, 0x3e, 0x74, //0x0000e898 .quad 8376168546070237203 - 0xf6, 0x2c, 0x34, 0xbd, 0xb2, 0xe4, 0x78, 0xdf, //0x0000e8a0 .quad -2343872149716718346 - 0x17, 0x54, 0x25, 0x6b, 0x24, 0xa9, 0x4d, 0x91, //0x0000e8a8 .quad -7976533391121755113 - 0x1a, 0x9c, 0x40, 0xb6, 0xef, 0x8e, 0xab, 0x8b, //0x0000e8b0 .quad -8382449121214030822 - 0x8f, 0x54, 0xf7, 0xc2, 0xb6, 0x89, 0xd0, 0x1a, //0x0000e8b8 .quad 1932195658189984911 - 0x20, 0xc3, 0xd0, 0xa3, 0xab, 0x72, 0x96, 0xae, //0x0000e8c0 .quad -5866375383090150624 - 0xb2, 0x29, 0xb5, 0x73, 0x24, 0xac, 0x84, 0xa1, //0x0000e8c8 .quad -6808127464117294670 - 0xe8, 0xf3, 0xc4, 0x8c, 0x56, 0x0f, 0x3c, 0xda, //0x0000e8d0 .quad -2721283210435300376 - 0x1f, 0x74, 0xa2, 0x90, 0x2d, 0xd7, 0xe5, 0xc9, //0x0000e8d8 .quad -3898473311719230433 - 0x71, 0x18, 0xfb, 0x17, 0x96, 0x89, 0x65, 0x88, //0x0000e8e0 .quad -8618331034163144591 - 0x93, 0x88, 0x65, 0x7a, 0x7c, 0xa6, 0x2f, 0x7e, //0x0000e8e8 .quad 9092669226243950739 - 0x8d, 0xde, 0xf9, 0x9d, 0xfb, 0xeb, 0x7e, 0xaa, //0x0000e8f0 .quad -6161227774276542835 - 0xb8, 0xea, 0xfe, 0x98, 0x1b, 0x90, 0xbb, 0xdd, //0x0000e8f8 .quad -2469221522477225288 - 0x31, 0x56, 0x78, 0x85, 0xfa, 0xa6, 0x1e, 0xd5, //0x0000e900 .quad -3089848699418290639 - 0x66, 0xa5, 0x3e, 0x7f, 0x22, 0x74, 0x2a, 0x55, //0x0000e908 .quad 6136845133758244198 - 0xde, 0x35, 0x6b, 0x93, 0x5c, 0x28, 0x33, 0x85, //0x0000e910 .quad -8848684464777513506 - 0x60, 0x27, 0x87, 0x8f, 0x95, 0x88, 0x3a, 0xd5, //0x0000e918 .quad -3082000819042179232 - 0x56, 0x03, 0x46, 0xb8, 0x73, 0xf2, 0x7f, 0xa6, //0x0000e920 .quad -6449169562544503978 - 0x38, 0xf1, 0x68, 0xf3, 0xba, 0x2a, 0x89, 0x8a, //0x0000e928 .quad -8464187042230111944 - 0x2c, 0x84, 0x57, 0xa6, 0x10, 0xef, 0x1f, 0xd0, //0x0000e930 .quad -3449775934753242068 - 0x86, 0x2d, 0x43, 0xb0, 0x69, 0x75, 0x2b, 0x2d, //0x0000e938 .quad 3254824252494523782 - 0x9b, 0xb2, 0xf6, 0x67, 0x6a, 0xf5, 0x13, 0x82, //0x0000e940 .quad -9073638986861858149 - 0x74, 0xfc, 0x29, 0x0e, 0x62, 0x29, 0x3b, 0x9c, //0x0000e948 .quad -7189106879045698444 - 0x42, 0x5f, 0xf4, 0x01, 0xc5, 0xf2, 0x98, 0xa2, //0x0000e950 .quad -6730362715149934782 - 0x90, 0x7b, 0xb4, 0x91, 0xba, 0xf3, 0x49, 0x83, //0x0000e958 .quad -8986383598807123056 - 0x13, 0x77, 0x71, 0x42, 0x76, 0x2f, 0x3f, 0xcb, //0x0000e960 .quad -3801267375510030573 - 0x74, 0x9a, 0x21, 0x36, 0xa9, 0x70, 0x1c, 0x24, //0x0000e968 .quad 2602078556773259892 - 0xd7, 0xd4, 0x0d, 0xd3, 0x53, 0xfb, 0x0e, 0xfe, //0x0000e970 .quad -139898200960150313 - 0x11, 0x01, 0xaa, 0x83, 0xd3, 0x8c, 0x23, 0xed, //0x0000e978 .quad -1359087822460813039 - 0x06, 0xa5, 0xe8, 0x63, 0x14, 0x5d, 0xc9, 0x9e, //0x0000e980 .quad -7004965403241175802 - 0xab, 0x40, 0x4a, 0x32, 0x04, 0x38, 0x36, 0xf4, //0x0000e988 .quad -849429889038008149 - 0x48, 0xce, 0xe2, 0x7c, 0x59, 0xb4, 0x7b, 0xc6, //0x0000e990 .quad -4144520735624081848 - 0xd6, 0xd0, 0xdc, 0x3e, 0x05, 0xc6, 0x43, 0xb1, //0x0000e998 .quad -5673473379724898090 - 0xda, 0x81, 0x1b, 0xdc, 0x6f, 0xa1, 0x1a, 0xf8, //0x0000e9a0 .quad -568964901102714406 - 0x0b, 0x05, 0x94, 0x8e, 0x86, 0xb7, 0x94, 0xdd, //0x0000e9a8 .quad -2480155706228734709 - 0x28, 0x31, 0x91, 0xe9, 0xe5, 0xa4, 0x10, 0x9b, //0x0000e9b0 .quad -7273132090830278360 - 0x27, 0x83, 0x1c, 0x19, 0xb4, 0xf2, 0x7c, 0xca, //0x0000e9b8 .quad -3855940325606653145 - 0x72, 0x7d, 0xf5, 0x63, 0x1f, 0xce, 0xd4, 0xc1, //0x0000e9c0 .quad -4479729095110460046 - 0xf1, 0xa3, 0x63, 0x1f, 0x61, 0x2f, 0x1c, 0xfd, //0x0000e9c8 .quad -208239388580928527 - 0xcf, 0xdc, 0xf2, 0x3c, 0xa7, 0x01, 0x4a, 0xf2, //0x0000e9d0 .quad -987975350460687153 - 0xed, 0x8c, 0x3c, 0x67, 0x39, 0x3b, 0x63, 0xbc, //0x0000e9d8 .quad -4871985254153548563 - 0x01, 0xca, 0x17, 0x86, 0x08, 0x41, 0x6e, 0x97, //0x0000e9e0 .quad -7535013621679011327 - 0x14, 0xd8, 0x85, 0xe0, 0x03, 0x05, 0xbe, 0xd5, //0x0000e9e8 .quad -3044990783845967852 - 0x82, 0xbc, 0x9d, 0xa7, 0x4a, 0xd1, 0x49, 0xbd, //0x0000e9f0 .quad -4807081008671376254 - 0x19, 0x4e, 0xa7, 0xd8, 0x44, 0x86, 0x2d, 0x4b, //0x0000e9f8 .quad 5417133557047315993 - 0xa2, 0x2b, 0x85, 0x51, 0x9d, 0x45, 0x9c, 0xec, //0x0000ea00 .quad -1397165242411832414 - 0x9f, 0x21, 0xd1, 0x0e, 0xd6, 0xe7, 0xf8, 0xdd, //0x0000ea08 .quad -2451955090545630817 - 0x45, 0x3b, 0xf3, 0x52, 0x82, 0xab, 0xe1, 0x93, //0x0000ea10 .quad -7790757304148477115 - 0x04, 0xb5, 0x42, 0xc9, 0xe5, 0x90, 0xbb, 0xca, //0x0000ea18 .quad -3838314940804713212 - 0x17, 0x0a, 0xb0, 0xe7, 0x62, 0x16, 0xda, 0xb8, //0x0000ea20 .quad -5126760611758208489 - 0x44, 0x62, 0x93, 0x3b, 0x1f, 0x75, 0x6a, 0x3d, //0x0000ea28 .quad 4425478360848884292 - 0x9d, 0x0c, 0x9c, 0xa1, 0xfb, 0x9b, 0x10, 0xe7, //0x0000ea30 .quad -1796764746270372707 - 0xd5, 0x3a, 0x78, 0x0a, 0x67, 0x12, 0xc5, 0x0c, //0x0000ea38 .quad 920161932633717461 - 0xe2, 0x87, 0x01, 0x45, 0x7d, 0x61, 0x6a, 0x90, //0x0000ea40 .quad -8040506994060064798 - 0xc6, 0x24, 0x8b, 0x66, 0x80, 0x2b, 0xfb, 0x27, //0x0000ea48 .quad 2880944217109767366 - 0xda, 0xe9, 0x41, 0x96, 0xdc, 0xf9, 0x84, 0xb4, //0x0000ea50 .quad -5438947724147693094 - 0xf7, 0xed, 0x2d, 0x80, 0x60, 0xf6, 0xf9, 0xb1, //0x0000ea58 .quad -5622191765467566601 - 0x51, 0x64, 0xd2, 0xbb, 0x53, 0x38, 0xa6, 0xe1, //0x0000ea60 .quad -2186998636757228463 - 0x74, 0x69, 0x39, 0xa0, 0xf8, 0x73, 0x78, 0x5e, //0x0000ea68 .quad 6807318348447705460 - 0xb2, 0x7e, 0x63, 0x55, 0x34, 0xe3, 0x07, 0x8d, //0x0000ea70 .quad -8284403175614349646 - 0xe9, 0xe1, 0x23, 0x64, 0x7b, 0x48, 0x0b, 0xdb, //0x0000ea78 .quad -2662955059861265943 - 0x5f, 0x5e, 0xbc, 0x6a, 0x01, 0xdc, 0x49, 0xb0, //0x0000ea80 .quad -5743817951090549153 - 0x63, 0xda, 0x2c, 0x3d, 0x9a, 0x1a, 0xce, 0x91, //0x0000ea88 .quad -7940379843253970333 - 0xf7, 0x75, 0x6b, 0xc5, 0x01, 0x53, 0x5c, 0xdc, //0x0000ea90 .quad -2568086420435798537 - 0xfc, 0x10, 0x78, 0xcc, 0x40, 0xa1, 0x41, 0x76, //0x0000ea98 .quad 8521269269642088700 - 0xba, 0x29, 0x63, 0x1b, 0xe1, 0xb3, 0xb9, 0x89, //0x0000eaa0 .quad -8522583040413455942 - 0x9e, 0x0a, 0xcb, 0x7f, 0xc8, 0x04, 0xe9, 0xa9, //0x0000eaa8 .quad -6203421752542164322 - 0x29, 0xf4, 0x3b, 0x62, 0xd9, 0x20, 0x28, 0xac, //0x0000eab0 .quad -6041542782089432023 - 0x45, 0xcd, 0xbd, 0x9f, 0xfa, 0x45, 0x63, 0x54, //0x0000eab8 .quad 6080780864604458309 - 0x33, 0xf1, 0xca, 0xba, 0x0f, 0x29, 0x32, 0xd7, //0x0000eac0 .quad -2940242459184402125 - 0x96, 0x40, 0xad, 0x47, 0x79, 0x17, 0x7c, 0xa9, //0x0000eac8 .quad -6234081974526590826 - 0xc0, 0xd6, 0xbe, 0xd4, 0xa9, 0x59, 0x7f, 0x86, //0x0000ead0 .quad -8755180564631333184 - 0x5e, 0x48, 0xcc, 0xcc, 0xab, 0x8e, 0xed, 0x49, //0x0000ead8 .quad 5327070802775656542 - 0x70, 0x8c, 0xee, 0x49, 0x14, 0x30, 0x1f, 0xa8, //0x0000eae0 .quad -6332289687361778576 - 0x75, 0x5a, 0xff, 0xbf, 0x56, 0xf2, 0x68, 0x5c, //0x0000eae8 .quad 6658838503469570677 - 0x8c, 0x2f, 0x6a, 0x5c, 0x19, 0xfc, 0x26, 0xd2, //0x0000eaf0 .quad -3303676090774835316 - 0x12, 0x31, 0xff, 0x6f, 0xec, 0x2e, 0x83, 0x73, //0x0000eaf8 .quad 8323548129336963346 - 0xb7, 0x5d, 0xc2, 0xd9, 0x8f, 0x5d, 0x58, 0x83, //0x0000eb00 .quad -8982326584375353929 - 0xac, 0x7e, 0xff, 0xc5, 0x53, 0xfd, 0x31, 0xc8, //0x0000eb08 .quad -4021154456019173716 - 0x25, 0xf5, 0x32, 0xd0, 0xf3, 0x74, 0x2e, 0xa4, //0x0000eb10 .quad -6616222212041804507 - 0x56, 0x5e, 0x7f, 0xb7, 0xa8, 0x7c, 0x3e, 0xba, //0x0000eb18 .quad -5026443070023967146 - 0x6f, 0xb2, 0x3f, 0xc4, 0x30, 0x12, 0x3a, 0xcd, //0x0000eb20 .quad -3658591746624867729 - 0xec, 0x35, 0x5f, 0xe5, 0xd2, 0x1b, 0xce, 0x28, //0x0000eb28 .quad 2940318199324816876 - 0x85, 0xcf, 0xa7, 0x7a, 0x5e, 0x4b, 0x44, 0x80, //0x0000eb30 .quad -9204148869281624187 - 0xb4, 0x81, 0x5b, 0xcf, 0x63, 0xd1, 0x80, 0x79, //0x0000eb38 .quad 8755227902219092404 - 0x66, 0xc3, 0x51, 0x19, 0x36, 0x5e, 0x55, 0xa0, //0x0000eb40 .quad -6893500068174642330 - 0x20, 0x62, 0x32, 0xc3, 0xbc, 0x05, 0xe1, 0xd7, //0x0000eb48 .quad -2891023177508298208 - 0x40, 0x34, 0xa6, 0x9f, 0xc3, 0xb5, 0x6a, 0xc8, //0x0000eb50 .quad -4005189066790915008 - 0xa8, 0xfa, 0xfe, 0xf3, 0x2b, 0x47, 0xd9, 0x8d, //0x0000eb58 .quad -8225464990312760664 - 0x50, 0xc1, 0x8f, 0x87, 0x34, 0x63, 0x85, 0xfa, //0x0000eb60 .quad -394800315061255856 - 0x52, 0xb9, 0xfe, 0xf0, 0xf6, 0x98, 0x4f, 0xb1, //0x0000eb68 .quad -5670145219463562926 - 0xd2, 0xd8, 0xb9, 0xd4, 0x00, 0x5e, 0x93, 0x9c, //0x0000eb70 .quad -7164279224554366766 - 0xd4, 0x33, 0x9f, 0x56, 0x9a, 0xbf, 0xd1, 0x6e, //0x0000eb78 .quad 7985374283903742932 - 0x07, 0x4f, 0xe8, 0x09, 0x81, 0x35, 0xb8, 0xc3, //0x0000eb80 .quad -4343663012265570553 - 0xc9, 0x00, 0x47, 0xec, 0x80, 0x2f, 0x86, 0x0a, //0x0000eb88 .quad 758345818024902857 - 0xc8, 0x62, 0x62, 0x4c, 0xe1, 0x42, 0xa6, 0xf4, //0x0000eb90 .quad -817892746904575288 - 0xfb, 0xc0, 0x58, 0x27, 0x61, 0xbb, 0x27, 0xcd, //0x0000eb98 .quad -3663753745896259333 - 0xbd, 0x7d, 0xbd, 0xcf, 0xcc, 0xe9, 0xe7, 0x98, //0x0000eba0 .quad -7428711994456441411 - 0x9d, 0x78, 0x97, 0xb8, 0x1c, 0xd5, 0x38, 0x80, //0x0000eba8 .quad -9207375118826243939 - 0x2c, 0xdd, 0xac, 0x03, 0x40, 0xe4, 0x21, 0xbf, //0x0000ebb0 .quad -4674203974643163860 - 0xc4, 0x56, 0xbd, 0xe6, 0x63, 0x0a, 0x47, 0xe0, //0x0000ebb8 .quad -2285846861678029116 - 0x78, 0x14, 0x98, 0x04, 0x50, 0x5d, 0xea, 0xee, //0x0000ebc0 .quad -1231068949876566920 - 0x75, 0xac, 0x6c, 0xe0, 0xfc, 0xcc, 0x58, 0x18, //0x0000ebc8 .quad 1754377441329851509 - 0xcb, 0x0c, 0xdf, 0x02, 0x52, 0x7a, 0x52, 0x95, //0x0000ebd0 .quad -7686947121313936181 - 0xc9, 0xeb, 0x43, 0x0c, 0x1e, 0x80, 0x37, 0x0f, //0x0000ebd8 .quad 1096485900831157193 - 0xfd, 0xcf, 0x96, 0x83, 0xe6, 0x18, 0xa7, 0xba, //0x0000ebe0 .quad -4996997883215032323 - 0xbb, 0xe6, 0x54, 0x8f, 0x25, 0x60, 0x05, 0xd3, //0x0000ebe8 .quad -3241078642388441413 - 0xfd, 0x83, 0x7c, 0x24, 0x20, 0xdf, 0x50, 0xe9, //0x0000ebf0 .quad -1634561335591402499 - 0x6a, 0x20, 0x2a, 0xf3, 0x2e, 0xb8, 0xc6, 0x47, //0x0000ebf8 .quad 5172023733869224042 - 0x7e, 0xd2, 0xcd, 0x16, 0x74, 0x8b, 0xd2, 0x91, //0x0000ec00 .quad -7939129862385708418 - 0x42, 0x54, 0xfa, 0x57, 0x1d, 0x33, 0xdc, 0x4c, //0x0000ec08 .quad 5538357842881958978 - 0x1d, 0x47, 0x81, 0x1c, 0x51, 0x2e, 0x47, 0xb6, //0x0000ec10 .quad -5312226309554747619 - 0x53, 0xe9, 0xf8, 0xad, 0xe4, 0x3f, 0x13, 0xe0, //0x0000ec18 .quad -2300424733252327085 - 0xe5, 0x98, 0xa1, 0x63, 0xe5, 0xf9, 0xd8, 0xe3, //0x0000ec20 .quad -2028596868516046619 - 0xa7, 0x23, 0x77, 0xd9, 0xdd, 0x0f, 0x18, 0x58, //0x0000ec28 .quad 6347841120289366951 - 0x8f, 0xff, 0x44, 0x5e, 0x2f, 0x9c, 0x67, 0x8e, //0x0000ec30 .quad -8185402070463610993 - 0x49, 0x76, 0xea, 0xa7, 0xea, 0x09, 0x0f, 0x57, //0x0000ec38 .quad 6273243709394548297 - 0x73, 0x3f, 0xd6, 0x35, 0x3b, 0x83, 0x01, 0xb2, //0x0000ec40 .quad -5620066569652125837 - 0xdb, 0x13, 0xe5, 0x51, 0x65, 0xcc, 0xd2, 0x2c, //0x0000ec48 .quad 3229868618315797467 - 0x4f, 0xcf, 0x4b, 0x03, 0x0a, 0xe4, 0x81, 0xde, //0x0000ec50 .quad -2413397193637769393 - 0xd2, 0x58, 0x5e, 0xa6, 0x7e, 0x7f, 0x07, 0xf8, //0x0000ec58 .quad -574350245532641070 - 0x91, 0x61, 0x0f, 0x42, 0x86, 0x2e, 0x11, 0x8b, //0x0000ec60 .quad -8425902273664687727 - 0x83, 0xf7, 0xfa, 0x27, 0xaf, 0xaf, 0x04, 0xfb, //0x0000ec68 .quad -358968903457900669 - 0xf6, 0x39, 0x93, 0xd2, 0x27, 0x7a, 0xd5, 0xad, //0x0000ec70 .quad -5920691823653471754 - 0x64, 0xb5, 0xf9, 0xf1, 0x9a, 0xdb, 0xc5, 0x79, //0x0000ec78 .quad 8774660907532399972 - 0x74, 0x08, 0x38, 0xc7, 0xb1, 0xd8, 0x4a, 0xd9, //0x0000ec80 .quad -2789178761139451788 - 0xbd, 0x22, 0x78, 0xae, 0x81, 0x52, 0x37, 0x18, //0x0000ec88 .quad 1744954097560724157 - 0x48, 0x05, 0x83, 0x1c, 0x6f, 0xc7, 0xce, 0x87, //0x0000ec90 .quad -8660765753353239224 - 0xb6, 0x15, 0x0b, 0x0d, 0x91, 0x93, 0x22, 0x8f, //0x0000ec98 .quad -8132775725879323210 - 0x9a, 0xc6, 0xa3, 0xe3, 0x4a, 0x79, 0xc2, 0xa9, //0x0000eca0 .quad -6214271173264161126 - 0x23, 0xdb, 0x4d, 0x50, 0x75, 0x38, 0xeb, 0xb2, //0x0000eca8 .quad -5554283638921766109 - 0x41, 0xb8, 0x8c, 0x9c, 0x9d, 0x17, 0x33, 0xd4, //0x0000ecb0 .quad -3156152948152813503 - 0xec, 0x51, 0x61, 0xa4, 0x92, 0x06, 0xa6, 0x5f, //0x0000ecb8 .quad 6892203506629956076 - 0x28, 0xf3, 0xd7, 0x81, 0xc2, 0xee, 0x9f, 0x84, //0x0000ecc0 .quad -8890124620236590296 - 0x34, 0xd3, 0xbc, 0xa6, 0x1b, 0xc4, 0xc7, 0xdb, //0x0000ecc8 .quad -2609901835997359308 - 0xf3, 0xef, 0x4d, 0x22, 0x73, 0xea, 0xc7, 0xa5, //0x0000ecd0 .quad -6500969756868349965 - 0x01, 0x08, 0x6c, 0x90, 0x22, 0xb5, 0xb9, 0x12, //0x0000ecd8 .quad 1349308723430688769 - 0xef, 0x6b, 0xe1, 0xea, 0x0f, 0xe5, 0x39, 0xcf, //0x0000ece0 .quad -3514526177658049553 - 0x01, 0x0a, 0x87, 0x34, 0x6b, 0x22, 0x68, 0xd7, //0x0000ece8 .quad -2925050114139026943 - 0x75, 0xe3, 0xcc, 0xf2, 0x29, 0x2f, 0x84, 0x81, //0x0000ecf0 .quad -9114107888677362827 - 0x41, 0x66, 0xd4, 0x00, 0x83, 0x15, 0xa1, 0xe6, //0x0000ecf8 .quad -1828156321336891839 - 0x53, 0x1c, 0x80, 0x6f, 0xf4, 0x3a, 0xe5, 0xa1, //0x0000ed00 .quad -6780948842419315629 - 0xd1, 0x7f, 0x09, 0xc1, 0xe3, 0x5a, 0x49, 0x60, //0x0000ed08 .quad 6938176635183661009 - 0x68, 0x23, 0x60, 0x8b, 0xb1, 0x89, 0x5e, 0xca, //0x0000ed10 .quad -3864500034596756632 - 0xc5, 0xdf, 0x4b, 0xb1, 0x9c, 0xb1, 0x5b, 0x38, //0x0000ed18 .quad 4061034775552188357 - 0x42, 0x2c, 0x38, 0xee, 0x1d, 0x2c, 0xf6, 0xfc, //0x0000ed20 .quad -218939024818557886 - 0xb6, 0xd7, 0x9e, 0xdd, 0x03, 0x9e, 0x72, 0x46, //0x0000ed28 .quad 5076293469440235446 - 0xa9, 0x1b, 0xe3, 0xb4, 0x92, 0xdb, 0x19, 0x9e, //0x0000ed30 .quad -7054365918152680535 - 0xd2, 0x46, 0x83, 0x6a, 0xc2, 0xa2, 0x07, 0x6c, //0x0000ed38 .quad 7784369436827535058 - //0x0000ed40 .p2align 4, 0x00 - //0x0000ed40 _VecShiftShuffles - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, //0x0000ed40 QUAD $0x0706050403020100; QUAD $0x0f0e0d0c0b0a0908 // .ascii 16, '\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f' - 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, //0x0000ed50 QUAD $0x0807060504030201; QUAD $0xff0f0e0d0c0b0a09 // .ascii 16, '\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff' - 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, //0x0000ed60 QUAD $0x0908070605040302; QUAD $0xffff0f0e0d0c0b0a // .ascii 16, '\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff' - 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, //0x0000ed70 QUAD $0x0a09080706050403; QUAD $0xffffff0f0e0d0c0b // .ascii 16, '\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff' - 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, //0x0000ed80 QUAD $0x0b0a090807060504; QUAD $0xffffffff0f0e0d0c // .ascii 16, '\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff' - 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, //0x0000ed90 QUAD $0x0c0b0a0908070605; QUAD $0xffffffffff0f0e0d // .ascii 16, '\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff' - 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x0000eda0 QUAD $0x0d0c0b0a09080706; QUAD $0xffffffffffff0f0e // .ascii 16, '\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff\xff' - 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x0000edb0 QUAD $0x0e0d0c0b0a090807; QUAD $0xffffffffffffff0f // .ascii 16, '\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff\xff\xff' - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x0000edc0 QUAD $0x0f0e0d0c0b0a0908; QUAD $0xffffffffffffffff // .ascii 16, '\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff\xff\xff\xff' - //0x0000edd0 .p2align 4, 0x00 - //0x0000edd0 __SingleQuoteTab - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000edd0 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x30, 0x30, 0x00, 0x00, //0x0000edd8 QUAD $0x000030303030755c // .asciz 8, '\\u0000\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ede0 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x30, 0x31, 0x00, 0x00, //0x0000ede8 QUAD $0x000031303030755c // .asciz 8, '\\u0001\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000edf0 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x30, 0x32, 0x00, 0x00, //0x0000edf8 QUAD $0x000032303030755c // .asciz 8, '\\u0002\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ee00 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x30, 0x33, 0x00, 0x00, //0x0000ee08 QUAD $0x000033303030755c // .asciz 8, '\\u0003\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ee10 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x30, 0x34, 0x00, 0x00, //0x0000ee18 QUAD $0x000034303030755c // .asciz 8, '\\u0004\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ee20 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x30, 0x35, 0x00, 0x00, //0x0000ee28 QUAD $0x000035303030755c // .asciz 8, '\\u0005\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ee30 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x30, 0x36, 0x00, 0x00, //0x0000ee38 QUAD $0x000036303030755c // .asciz 8, '\\u0006\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ee40 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x30, 0x37, 0x00, 0x00, //0x0000ee48 QUAD $0x000037303030755c // .asciz 8, '\\u0007\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ee50 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x30, 0x38, 0x00, 0x00, //0x0000ee58 QUAD $0x000038303030755c // .asciz 8, '\\u0008\x00\x00' - 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ee60 .quad 2 - 0x5c, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ee68 QUAD $0x000000000000745c // .asciz 8, '\\t\x00\x00\x00\x00\x00\x00' - 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ee70 .quad 2 - 0x5c, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ee78 QUAD $0x0000000000006e5c // .asciz 8, '\\n\x00\x00\x00\x00\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ee80 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x30, 0x62, 0x00, 0x00, //0x0000ee88 QUAD $0x000062303030755c // .asciz 8, '\\u000b\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ee90 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x30, 0x63, 0x00, 0x00, //0x0000ee98 QUAD $0x000063303030755c // .asciz 8, '\\u000c\x00\x00' - 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eea0 .quad 2 - 0x5c, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eea8 QUAD $0x000000000000725c // .asciz 8, '\\r\x00\x00\x00\x00\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eeb0 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x30, 0x65, 0x00, 0x00, //0x0000eeb8 QUAD $0x000065303030755c // .asciz 8, '\\u000e\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eec0 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x30, 0x66, 0x00, 0x00, //0x0000eec8 QUAD $0x000066303030755c // .asciz 8, '\\u000f\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eed0 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x31, 0x30, 0x00, 0x00, //0x0000eed8 QUAD $0x000030313030755c // .asciz 8, '\\u0010\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eee0 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x31, 0x31, 0x00, 0x00, //0x0000eee8 QUAD $0x000031313030755c // .asciz 8, '\\u0011\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eef0 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x31, 0x32, 0x00, 0x00, //0x0000eef8 QUAD $0x000032313030755c // .asciz 8, '\\u0012\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ef00 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x31, 0x33, 0x00, 0x00, //0x0000ef08 QUAD $0x000033313030755c // .asciz 8, '\\u0013\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ef10 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x31, 0x34, 0x00, 0x00, //0x0000ef18 QUAD $0x000034313030755c // .asciz 8, '\\u0014\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ef20 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x31, 0x35, 0x00, 0x00, //0x0000ef28 QUAD $0x000035313030755c // .asciz 8, '\\u0015\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ef30 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x31, 0x36, 0x00, 0x00, //0x0000ef38 QUAD $0x000036313030755c // .asciz 8, '\\u0016\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ef40 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x31, 0x37, 0x00, 0x00, //0x0000ef48 QUAD $0x000037313030755c // .asciz 8, '\\u0017\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ef50 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x31, 0x38, 0x00, 0x00, //0x0000ef58 QUAD $0x000038313030755c // .asciz 8, '\\u0018\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ef60 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x31, 0x39, 0x00, 0x00, //0x0000ef68 QUAD $0x000039313030755c // .asciz 8, '\\u0019\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ef70 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x31, 0x61, 0x00, 0x00, //0x0000ef78 QUAD $0x000061313030755c // .asciz 8, '\\u001a\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ef80 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x31, 0x62, 0x00, 0x00, //0x0000ef88 QUAD $0x000062313030755c // .asciz 8, '\\u001b\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ef90 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x31, 0x63, 0x00, 0x00, //0x0000ef98 QUAD $0x000063313030755c // .asciz 8, '\\u001c\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000efa0 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x31, 0x64, 0x00, 0x00, //0x0000efa8 QUAD $0x000064313030755c // .asciz 8, '\\u001d\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000efb0 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x31, 0x65, 0x00, 0x00, //0x0000efb8 QUAD $0x000065313030755c // .asciz 8, '\\u001e\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000efc0 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x31, 0x66, 0x00, 0x00, //0x0000efc8 QUAD $0x000066313030755c // .asciz 8, '\\u001f\x00\x00' + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00006947 jae LBB28_203 + 0x41, 0x8a, 0x14, 0x39, //0x0000694d movb (%r9,%rdi), %dl + 0x80, 0xfa, 0x0d, //0x00006951 cmpb $13, %dl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00006954 je LBB28_203 + 0x80, 0xfa, 0x20, //0x0000695a cmpb $32, %dl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x0000695d je LBB28_203 + 0x80, 0xc2, 0xf7, //0x00006963 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x00006966 cmpb $1, %dl + 0x0f, 0x87, 0x7b, 0x0a, 0x00, 0x00, //0x00006969 ja LBB28_213 + 0x90, //0x0000696f .p2align 4, 0x90 + //0x00006970 LBB28_203 + 0x48, 0x8d, 0x50, 0x04, //0x00006970 leaq $4(%rax), %rdx + 0x49, 0x39, 0xd0, //0x00006974 cmpq %rdx, %r8 + 0x0f, 0x86, 0x22, 0x0a, 0x00, 0x00, //0x00006977 jbe LBB28_209 + 0x49, 0x39, 0xd0, //0x0000697d cmpq %rdx, %r8 + 0x0f, 0x84, 0x3b, 0x0a, 0x00, 0x00, //0x00006980 je LBB28_210 + 0x4b, 0x8d, 0x14, 0x01, //0x00006986 leaq (%r9,%r8), %rdx + 0x48, 0x83, 0xc6, 0x04, //0x0000698a addq $4, %rsi + 0x49, 0x8d, 0x7c, 0x01, 0x05, //0x0000698e leaq $5(%r9,%rax), %rdi + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00006993 .p2align 4, 0x90 + //0x000069a0 LBB28_206 + 0x0f, 0xbe, 0x4f, 0xff, //0x000069a0 movsbl $-1(%rdi), %ecx + 0x83, 0xf9, 0x20, //0x000069a4 cmpl $32, %ecx + 0x0f, 0x87, 0x2b, 0x0a, 0x00, 0x00, //0x000069a7 ja LBB28_212 + 0x49, 0x0f, 0xa3, 0xcc, //0x000069ad btq %rcx, %r12 + 0x0f, 0x83, 0x21, 0x0a, 0x00, 0x00, //0x000069b1 jae LBB28_212 + 0x48, 0xff, 0xc7, //0x000069b7 incq %rdi + 0x48, 0xff, 0xc6, //0x000069ba incq %rsi + 0x0f, 0x85, 0xdd, 0xff, 0xff, 0xff, //0x000069bd jne LBB28_206 + 0xe9, 0xfc, 0x09, 0x00, 0x00, //0x000069c3 jmp LBB28_211 + //0x000069c8 LBB28_180 + 0x4c, 0x89, 0xca, //0x000069c8 movq %r9, %rdx + 0x48, 0xf7, 0xd2, //0x000069cb notq %rdx + 0x48, 0x01, 0xd7, //0x000069ce addq %rdx, %rdi + 0x48, 0x39, 0xcf, //0x000069d1 cmpq %rcx, %rdi + 0x0f, 0x83, 0x12, 0x0c, 0x00, 0x00, //0x000069d4 jae LBB28_247 + //0x000069da LBB28_181 + 0x48, 0x8d, 0x47, 0x01, //0x000069da leaq $1(%rdi), %rax + 0x49, 0x89, 0x07, //0x000069de movq %rax, (%r15) + 0x41, 0x8a, 0x0c, 0x39, //0x000069e1 movb (%r9,%rdi), %cl + 0x80, 0xf9, 0x2c, //0x000069e5 cmpb $44, %cl + 0x0f, 0x85, 0x42, 0x0c, 0x00, 0x00, //0x000069e8 jne LBB28_253 + //0x000069ee LBB28_34 + 0x49, 0x8b, 0x4b, 0x08, //0x000069ee movq $8(%r11), %rcx + 0x48, 0x89, 0xc6, //0x000069f2 movq %rax, %rsi + 0x48, 0x29, 0xce, //0x000069f5 subq %rcx, %rsi + 0x0f, 0x83, 0x32, 0x00, 0x00, 0x00, //0x000069f8 jae LBB28_39 + 0x41, 0x8a, 0x14, 0x01, //0x000069fe movb (%r9,%rax), %dl + 0x80, 0xfa, 0x0d, //0x00006a02 cmpb $13, %dl + 0x0f, 0x84, 0x25, 0x00, 0x00, 0x00, //0x00006a05 je LBB28_39 + 0x80, 0xfa, 0x20, //0x00006a0b cmpb $32, %dl + 0x0f, 0x84, 0x1c, 0x00, 0x00, 0x00, //0x00006a0e je LBB28_39 + 0x80, 0xc2, 0xf7, //0x00006a14 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x00006a17 cmpb $1, %dl + 0x0f, 0x86, 0x10, 0x00, 0x00, 0x00, //0x00006a1a jbe LBB28_39 + 0x49, 0x89, 0xc5, //0x00006a20 movq %rax, %r13 + 0xe9, 0x2a, 0x01, 0x00, 0x00, //0x00006a23 jmp LBB28_60 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00006a28 .p2align 4, 0x90 + //0x00006a30 LBB28_39 + 0x4c, 0x8d, 0x68, 0x01, //0x00006a30 leaq $1(%rax), %r13 + 0x49, 0x39, 0xcd, //0x00006a34 cmpq %rcx, %r13 + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00006a37 jae LBB28_43 + 0x43, 0x8a, 0x14, 0x29, //0x00006a3d movb (%r9,%r13), %dl + 0x80, 0xfa, 0x0d, //0x00006a41 cmpb $13, %dl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00006a44 je LBB28_43 + 0x80, 0xfa, 0x20, //0x00006a4a cmpb $32, %dl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x00006a4d je LBB28_43 + 0x80, 0xc2, 0xf7, //0x00006a53 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x00006a56 cmpb $1, %dl + 0x0f, 0x87, 0xf3, 0x00, 0x00, 0x00, //0x00006a59 ja LBB28_60 + 0x90, //0x00006a5f .p2align 4, 0x90 + //0x00006a60 LBB28_43 + 0x4c, 0x8d, 0x68, 0x02, //0x00006a60 leaq $2(%rax), %r13 + 0x49, 0x39, 0xcd, //0x00006a64 cmpq %rcx, %r13 + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00006a67 jae LBB28_47 + 0x43, 0x8a, 0x14, 0x29, //0x00006a6d movb (%r9,%r13), %dl + 0x80, 0xfa, 0x0d, //0x00006a71 cmpb $13, %dl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00006a74 je LBB28_47 + 0x80, 0xfa, 0x20, //0x00006a7a cmpb $32, %dl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x00006a7d je LBB28_47 + 0x80, 0xc2, 0xf7, //0x00006a83 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x00006a86 cmpb $1, %dl + 0x0f, 0x87, 0xc3, 0x00, 0x00, 0x00, //0x00006a89 ja LBB28_60 + 0x90, //0x00006a8f .p2align 4, 0x90 + //0x00006a90 LBB28_47 + 0x4c, 0x8d, 0x68, 0x03, //0x00006a90 leaq $3(%rax), %r13 + 0x49, 0x39, 0xcd, //0x00006a94 cmpq %rcx, %r13 + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00006a97 jae LBB28_51 + 0x43, 0x8a, 0x14, 0x29, //0x00006a9d movb (%r9,%r13), %dl + 0x80, 0xfa, 0x0d, //0x00006aa1 cmpb $13, %dl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00006aa4 je LBB28_51 + 0x80, 0xfa, 0x20, //0x00006aaa cmpb $32, %dl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x00006aad je LBB28_51 + 0x80, 0xc2, 0xf7, //0x00006ab3 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x00006ab6 cmpb $1, %dl + 0x0f, 0x87, 0x93, 0x00, 0x00, 0x00, //0x00006ab9 ja LBB28_60 + 0x90, //0x00006abf .p2align 4, 0x90 + //0x00006ac0 LBB28_51 + 0x48, 0x8d, 0x50, 0x04, //0x00006ac0 leaq $4(%rax), %rdx + 0x48, 0x39, 0xd1, //0x00006ac4 cmpq %rdx, %rcx + 0x0f, 0x86, 0x19, 0x0b, 0x00, 0x00, //0x00006ac7 jbe LBB28_245 + 0x48, 0x39, 0xd1, //0x00006acd cmpq %rdx, %rcx + 0x0f, 0x84, 0x4a, 0x00, 0x00, 0x00, //0x00006ad0 je LBB28_57 + 0x49, 0x8d, 0x14, 0x09, //0x00006ad6 leaq (%r9,%rcx), %rdx + 0x48, 0x83, 0xc6, 0x04, //0x00006ada addq $4, %rsi + 0x4d, 0x8d, 0x6c, 0x01, 0x05, //0x00006ade leaq $5(%r9,%rax), %r13 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00006ae3 .p2align 4, 0x90 + //0x00006af0 LBB28_54 + 0x41, 0x0f, 0xbe, 0x7d, 0xff, //0x00006af0 movsbl $-1(%r13), %edi + 0x83, 0xff, 0x20, //0x00006af5 cmpl $32, %edi + 0x0f, 0x87, 0x42, 0x00, 0x00, 0x00, //0x00006af8 ja LBB28_59 + 0x49, 0x0f, 0xa3, 0xfc, //0x00006afe btq %rdi, %r12 + 0x0f, 0x83, 0x38, 0x00, 0x00, 0x00, //0x00006b02 jae LBB28_59 + 0x49, 0xff, 0xc5, //0x00006b08 incq %r13 + 0x48, 0xff, 0xc6, //0x00006b0b incq %rsi + 0x0f, 0x85, 0xdc, 0xff, 0xff, 0xff, //0x00006b0e jne LBB28_54 + 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x00006b14 jmp LBB28_58 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00006b19 .p2align 4, 0x90 + //0x00006b20 LBB28_57 + 0x4c, 0x01, 0xca, //0x00006b20 addq %r9, %rdx + //0x00006b23 LBB28_58 + 0x4c, 0x29, 0xca, //0x00006b23 subq %r9, %rdx + 0x49, 0x89, 0xd5, //0x00006b26 movq %rdx, %r13 + 0x49, 0x39, 0xcd, //0x00006b29 cmpq %rcx, %r13 + 0x0f, 0x82, 0x20, 0x00, 0x00, 0x00, //0x00006b2c jb LBB28_60 + 0xe9, 0xb5, 0x0a, 0x00, 0x00, //0x00006b32 jmp LBB28_247 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00006b37 .p2align 4, 0x90 + //0x00006b40 LBB28_59 + 0x4c, 0x89, 0xca, //0x00006b40 movq %r9, %rdx + 0x48, 0xf7, 0xd2, //0x00006b43 notq %rdx + 0x49, 0x01, 0xd5, //0x00006b46 addq %rdx, %r13 + 0x49, 0x39, 0xcd, //0x00006b49 cmpq %rcx, %r13 + 0x0f, 0x83, 0x9a, 0x0a, 0x00, 0x00, //0x00006b4c jae LBB28_247 + //0x00006b52 LBB28_60 + 0x49, 0x8d, 0x5d, 0x01, //0x00006b52 leaq $1(%r13), %rbx + 0x49, 0x89, 0x1f, //0x00006b56 movq %rbx, (%r15) + 0x43, 0x8a, 0x0c, 0x29, //0x00006b59 movb (%r9,%r13), %cl + 0x80, 0xf9, 0x22, //0x00006b5d cmpb $34, %cl + 0x0f, 0x85, 0xc7, 0x0a, 0x00, 0x00, //0x00006b60 jne LBB28_252 + 0x48, 0x8b, 0x45, 0xb8, //0x00006b66 movq $-72(%rbp), %rax + 0x48, 0x8b, 0x40, 0x08, //0x00006b6a movq $8(%rax), %rax + 0x4c, 0x8b, 0x30, //0x00006b6e movq (%rax), %r14 + 0x4c, 0x8b, 0x78, 0x08, //0x00006b71 movq $8(%rax), %r15 + 0x48, 0xc7, 0x45, 0xb0, 0xff, 0xff, 0xff, 0xff, //0x00006b75 movq $-1, $-80(%rbp) + 0x4c, 0x89, 0xdf, //0x00006b7d movq %r11, %rdi + 0x48, 0x89, 0xde, //0x00006b80 movq %rbx, %rsi + 0x48, 0x8d, 0x55, 0xb0, //0x00006b83 leaq $-80(%rbp), %rdx + 0xe8, 0x64, 0x26, 0x00, 0x00, //0x00006b87 callq _advance_string_default + 0x48, 0x85, 0xc0, //0x00006b8c testq %rax, %rax + 0x0f, 0x88, 0xb6, 0x0a, 0x00, 0x00, //0x00006b8f js LBB28_255 + 0x48, 0x8b, 0x4d, 0xd0, //0x00006b95 movq $-48(%rbp), %rcx + 0x48, 0x89, 0x01, //0x00006b99 movq %rax, (%rcx) + 0x48, 0x8b, 0x4d, 0xb0, //0x00006b9c movq $-80(%rbp), %rcx + 0x48, 0x83, 0xf9, 0xff, //0x00006ba0 cmpq $-1, %rcx + 0x0f, 0x84, 0x09, 0x00, 0x00, 0x00, //0x00006ba4 je LBB28_64 + 0x48, 0x39, 0xc1, //0x00006baa cmpq %rax, %rcx + 0x0f, 0x8e, 0x61, 0x01, 0x00, 0x00, //0x00006bad jle LBB28_87 + //0x00006bb3 LBB28_64 + 0x48, 0x89, 0xc2, //0x00006bb3 movq %rax, %rdx + 0x4c, 0x29, 0xea, //0x00006bb6 subq %r13, %rdx + 0x48, 0x83, 0xc2, 0xfe, //0x00006bb9 addq $-2, %rdx + 0x41, 0xba, 0x01, 0x00, 0x00, 0x00, //0x00006bbd movl $1, %r10d + 0x48, 0x89, 0xd1, //0x00006bc3 movq %rdx, %rcx + 0x4c, 0x09, 0xf9, //0x00006bc6 orq %r15, %rcx + 0x4c, 0x8b, 0x5d, 0xc0, //0x00006bc9 movq $-64(%rbp), %r11 + 0x0f, 0x84, 0x00, 0x01, 0x00, 0x00, //0x00006bcd je LBB28_82 + 0x4c, 0x39, 0xfa, //0x00006bd3 cmpq %r15, %rdx + 0x0f, 0x85, 0xf4, 0x00, 0x00, 0x00, //0x00006bd6 jne LBB28_81 + 0x49, 0x03, 0x1b, //0x00006bdc addq (%r11), %rbx + 0x49, 0x83, 0xff, 0x10, //0x00006bdf cmpq $16, %r15 + 0x0f, 0x82, 0x5f, 0x00, 0x00, 0x00, //0x00006be3 jb LBB28_71 + 0x49, 0x8d, 0x57, 0xf0, //0x00006be9 leaq $-16(%r15), %rdx + 0x48, 0x89, 0xd1, //0x00006bed movq %rdx, %rcx + 0x48, 0x83, 0xe1, 0xf0, //0x00006bf0 andq $-16, %rcx + 0x4c, 0x8d, 0x44, 0x0b, 0x10, //0x00006bf4 leaq $16(%rbx,%rcx), %r8 + 0x49, 0x8d, 0x7c, 0x0e, 0x10, //0x00006bf9 leaq $16(%r14,%rcx), %rdi + 0x83, 0xe2, 0x0f, //0x00006bfe andl $15, %edx + 0x31, 0xf6, //0x00006c01 xorl %esi, %esi + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00006c03 .p2align 4, 0x90 + //0x00006c10 LBB28_68 + 0xf3, 0x0f, 0x6f, 0x04, 0x33, //0x00006c10 movdqu (%rbx,%rsi), %xmm0 + 0xf3, 0x41, 0x0f, 0x6f, 0x0c, 0x36, //0x00006c15 movdqu (%r14,%rsi), %xmm1 + 0x66, 0x0f, 0x74, 0xc8, //0x00006c1b pcmpeqb %xmm0, %xmm1 + 0x66, 0x0f, 0xd7, 0xc9, //0x00006c1f pmovmskb %xmm1, %ecx + 0x66, 0x83, 0xf9, 0xff, //0x00006c23 cmpw $-1, %cx + 0x0f, 0x85, 0xa3, 0x00, 0x00, 0x00, //0x00006c27 jne LBB28_81 + 0x49, 0x83, 0xc7, 0xf0, //0x00006c2d addq $-16, %r15 + 0x48, 0x83, 0xc6, 0x10, //0x00006c31 addq $16, %rsi + 0x49, 0x83, 0xff, 0x0f, //0x00006c35 cmpq $15, %r15 + 0x0f, 0x87, 0xd1, 0xff, 0xff, 0xff, //0x00006c39 ja LBB28_68 + 0x49, 0x89, 0xd7, //0x00006c3f movq %rdx, %r15 + 0x49, 0x89, 0xfe, //0x00006c42 movq %rdi, %r14 + 0x4c, 0x89, 0xc3, //0x00006c45 movq %r8, %rbx + //0x00006c48 LBB28_71 + 0x44, 0x89, 0xf1, //0x00006c48 movl %r14d, %ecx + 0x81, 0xe1, 0xff, 0x0f, 0x00, 0x00, //0x00006c4b andl $4095, %ecx + 0x81, 0xf9, 0xf0, 0x0f, 0x00, 0x00, //0x00006c51 cmpl $4080, %ecx + 0x0f, 0x87, 0x47, 0x00, 0x00, 0x00, //0x00006c57 ja LBB28_76 + 0x89, 0xd9, //0x00006c5d movl %ebx, %ecx + 0x81, 0xe1, 0xff, 0x0f, 0x00, 0x00, //0x00006c5f andl $4095, %ecx + 0x81, 0xf9, 0xf1, 0x0f, 0x00, 0x00, //0x00006c65 cmpl $4081, %ecx + 0x0f, 0x83, 0x33, 0x00, 0x00, 0x00, //0x00006c6b jae LBB28_76 + 0xf3, 0x0f, 0x6f, 0x03, //0x00006c71 movdqu (%rbx), %xmm0 + 0xf3, 0x41, 0x0f, 0x6f, 0x0e, //0x00006c75 movdqu (%r14), %xmm1 + 0x66, 0x0f, 0x74, 0xc8, //0x00006c7a pcmpeqb %xmm0, %xmm1 + 0x66, 0x0f, 0xd7, 0xd1, //0x00006c7e pmovmskb %xmm1, %edx + 0x66, 0x83, 0xfa, 0xff, //0x00006c82 cmpw $-1, %dx + 0x0f, 0x84, 0x47, 0x00, 0x00, 0x00, //0x00006c86 je LBB28_82 + 0xf7, 0xd2, //0x00006c8c notl %edx + 0x0f, 0xb7, 0xca, //0x00006c8e movzwl %dx, %ecx + 0x48, 0x0f, 0xbc, 0xc9, //0x00006c91 bsfq %rcx, %rcx + 0x45, 0x31, 0xd2, //0x00006c95 xorl %r10d, %r10d + 0x4c, 0x39, 0xf9, //0x00006c98 cmpq %r15, %rcx + 0x41, 0x0f, 0x93, 0xc2, //0x00006c9b setae %r10b + 0xe9, 0x2f, 0x00, 0x00, 0x00, //0x00006c9f jmp LBB28_82 + //0x00006ca4 LBB28_76 + 0x4d, 0x85, 0xff, //0x00006ca4 testq %r15, %r15 + 0x0f, 0x84, 0x26, 0x00, 0x00, 0x00, //0x00006ca7 je LBB28_82 + 0x31, 0xd2, //0x00006cad xorl %edx, %edx + 0x90, //0x00006caf .p2align 4, 0x90 + //0x00006cb0 LBB28_78 + 0x0f, 0xb6, 0x0c, 0x13, //0x00006cb0 movzbl (%rbx,%rdx), %ecx + 0x41, 0x3a, 0x0c, 0x16, //0x00006cb4 cmpb (%r14,%rdx), %cl + 0x0f, 0x85, 0x12, 0x00, 0x00, 0x00, //0x00006cb8 jne LBB28_81 + 0x48, 0xff, 0xc2, //0x00006cbe incq %rdx + 0x49, 0x39, 0xd7, //0x00006cc1 cmpq %rdx, %r15 + 0x0f, 0x85, 0xe6, 0xff, 0xff, 0xff, //0x00006cc4 jne LBB28_78 + 0xe9, 0x04, 0x00, 0x00, 0x00, //0x00006cca jmp LBB28_82 + 0x90, //0x00006ccf .p2align 4, 0x90 + //0x00006cd0 LBB28_81 + 0x45, 0x31, 0xd2, //0x00006cd0 xorl %r10d, %r10d + //0x00006cd3 LBB28_82 + 0x4d, 0x8b, 0x0b, //0x00006cd3 movq (%r11), %r9 + 0x4c, 0x8b, 0x7d, 0xd0, //0x00006cd6 movq $-48(%rbp), %r15 + 0x49, 0x8b, 0x73, 0x08, //0x00006cda movq $8(%r11), %rsi + 0x48, 0x89, 0xc7, //0x00006cde movq %rax, %rdi + 0x48, 0x29, 0xf7, //0x00006ce1 subq %rsi, %rdi + 0x0f, 0x83, 0x16, 0x04, 0x00, 0x00, //0x00006ce4 jae LBB28_132 + //0x00006cea LBB28_83 + 0x41, 0x8a, 0x14, 0x01, //0x00006cea movb (%r9,%rax), %dl + 0x80, 0xfa, 0x0d, //0x00006cee cmpb $13, %dl + 0x0f, 0x84, 0x09, 0x04, 0x00, 0x00, //0x00006cf1 je LBB28_132 + 0x80, 0xfa, 0x20, //0x00006cf7 cmpb $32, %dl + 0x0f, 0x84, 0x00, 0x04, 0x00, 0x00, //0x00006cfa je LBB28_132 + 0x80, 0xc2, 0xf7, //0x00006d00 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x00006d03 cmpb $1, %dl + 0x0f, 0x86, 0xf4, 0x03, 0x00, 0x00, //0x00006d06 jbe LBB28_132 + 0x48, 0x89, 0xc3, //0x00006d0c movq %rax, %rbx + 0xe9, 0x0e, 0x05, 0x00, 0x00, //0x00006d0f jmp LBB28_153 + //0x00006d14 LBB28_87 + 0x48, 0xc7, 0x45, 0xc8, 0x00, 0x00, 0x00, 0x00, //0x00006d14 movq $0, $-56(%rbp) + 0x48, 0x8b, 0x4d, 0xc0, //0x00006d1c movq $-64(%rbp), %rcx + 0x4c, 0x8b, 0x09, //0x00006d20 movq (%rcx), %r9 + 0x4c, 0x01, 0xcb, //0x00006d23 addq %r9, %rbx + 0x4d, 0x8d, 0x44, 0x01, 0xff, //0x00006d26 leaq $-1(%r9,%rax), %r8 + 0x4f, 0x8d, 0x1c, 0x3e, //0x00006d2b leaq (%r14,%r15), %r11 + 0x4d, 0x85, 0xff, //0x00006d2f testq %r15, %r15 + 0x0f, 0x8e, 0xa0, 0x03, 0x00, 0x00, //0x00006d32 jle LBB28_129 + 0x49, 0x39, 0xd8, //0x00006d38 cmpq %rbx, %r8 + 0x4c, 0x8b, 0x7d, 0xd0, //0x00006d3b movq $-48(%rbp), %r15 + 0x0f, 0x86, 0x97, 0x03, 0x00, 0x00, //0x00006d3f jbe LBB28_130 + //0x00006d45 LBB28_89 + 0x8a, 0x0b, //0x00006d45 movb (%rbx), %cl + 0x80, 0xf9, 0x5c, //0x00006d47 cmpb $92, %cl + 0x0f, 0x85, 0x58, 0x00, 0x00, 0x00, //0x00006d4a jne LBB28_94 + 0x4c, 0x89, 0xc2, //0x00006d50 movq %r8, %rdx + 0x48, 0x29, 0xda, //0x00006d53 subq %rbx, %rdx + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00006d56 movq $-1, %rcx + 0x48, 0x85, 0xd2, //0x00006d5d testq %rdx, %rdx + 0x0f, 0x8e, 0x22, 0x09, 0x00, 0x00, //0x00006d60 jle LBB28_259 + 0x0f, 0xb6, 0x73, 0x01, //0x00006d66 movzbl $1(%rbx), %esi + 0x48, 0x8d, 0x3d, 0xef, 0x9c, 0x00, 0x00, //0x00006d6a leaq $40175(%rip), %rdi /* __UnquoteTab+0(%rip) */ + 0x44, 0x8a, 0x3c, 0x3e, //0x00006d71 movb (%rsi,%rdi), %r15b + 0x41, 0x80, 0xff, 0xff, //0x00006d75 cmpb $-1, %r15b + 0x0f, 0x84, 0x3d, 0x00, 0x00, 0x00, //0x00006d79 je LBB28_96 + 0x45, 0x84, 0xff, //0x00006d7f testb %r15b, %r15b + 0x0f, 0x84, 0xee, 0x08, 0x00, 0x00, //0x00006d82 je LBB28_257 + 0x44, 0x88, 0x7d, 0xc8, //0x00006d88 movb %r15b, $-56(%rbp) + 0x48, 0x83, 0xc3, 0x02, //0x00006d8c addq $2, %rbx + 0xba, 0x01, 0x00, 0x00, 0x00, //0x00006d90 movl $1, %edx + 0x4c, 0x8d, 0x54, 0x15, 0xc8, //0x00006d95 leaq $-56(%rbp,%rdx), %r10 + 0x4d, 0x39, 0xde, //0x00006d9a cmpq %r11, %r14 + 0x0f, 0x82, 0x30, 0x01, 0x00, 0x00, //0x00006d9d jb LBB28_107 + 0xe9, 0x08, 0x03, 0x00, 0x00, //0x00006da3 jmp LBB28_113 + //0x00006da8 LBB28_94 + 0x41, 0x3a, 0x0e, //0x00006da8 cmpb (%r14), %cl + 0x0f, 0x85, 0xe6, 0x05, 0x00, 0x00, //0x00006dab jne LBB28_183 + 0x48, 0xff, 0xc3, //0x00006db1 incq %rbx + 0x49, 0xff, 0xc6, //0x00006db4 incq %r14 + 0xe9, 0x05, 0x03, 0x00, 0x00, //0x00006db7 jmp LBB28_115 + //0x00006dbc LBB28_96 + 0x48, 0x83, 0xfa, 0x03, //0x00006dbc cmpq $3, %rdx + 0x0f, 0x8e, 0xbf, 0x08, 0x00, 0x00, //0x00006dc0 jle LBB28_258 + 0x8b, 0x4b, 0x02, //0x00006dc6 movl $2(%rbx), %ecx + 0x89, 0xce, //0x00006dc9 movl %ecx, %esi + 0xf7, 0xd6, //0x00006dcb notl %esi + 0x8d, 0xb9, 0xd0, 0xcf, 0xcf, 0xcf, //0x00006dcd leal $-808464432(%rcx), %edi + 0x81, 0xe6, 0x80, 0x80, 0x80, 0x80, //0x00006dd3 andl $-2139062144, %esi + 0x85, 0xfe, //0x00006dd9 testl %edi, %esi + 0x0f, 0x85, 0x85, 0x08, 0x00, 0x00, //0x00006ddb jne LBB28_256 + 0x8d, 0xb9, 0x19, 0x19, 0x19, 0x19, //0x00006de1 leal $421075225(%rcx), %edi + 0x09, 0xcf, //0x00006de7 orl %ecx, %edi + 0xf7, 0xc7, 0x80, 0x80, 0x80, 0x80, //0x00006de9 testl $-2139062144, %edi + 0x0f, 0x85, 0x71, 0x08, 0x00, 0x00, //0x00006def jne LBB28_256 + 0x89, 0xcf, //0x00006df5 movl %ecx, %edi + 0x81, 0xe7, 0x7f, 0x7f, 0x7f, 0x7f, //0x00006df7 andl $2139062143, %edi + 0x41, 0xba, 0xc0, 0xc0, 0xc0, 0xc0, //0x00006dfd movl $-1061109568, %r10d + 0x41, 0x29, 0xfa, //0x00006e03 subl %edi, %r10d + 0x44, 0x8d, 0xbf, 0x46, 0x46, 0x46, 0x46, //0x00006e06 leal $1179010630(%rdi), %r15d + 0x41, 0x21, 0xf2, //0x00006e0d andl %esi, %r10d + 0x45, 0x85, 0xfa, //0x00006e10 testl %r15d, %r10d + 0x0f, 0x85, 0x4d, 0x08, 0x00, 0x00, //0x00006e13 jne LBB28_256 + 0x41, 0xba, 0xe0, 0xe0, 0xe0, 0xe0, //0x00006e19 movl $-522133280, %r10d + 0x41, 0x29, 0xfa, //0x00006e1f subl %edi, %r10d + 0x81, 0xc7, 0x39, 0x39, 0x39, 0x39, //0x00006e22 addl $960051513, %edi + 0x44, 0x21, 0xd6, //0x00006e28 andl %r10d, %esi + 0x85, 0xfe, //0x00006e2b testl %edi, %esi + 0x0f, 0x85, 0x33, 0x08, 0x00, 0x00, //0x00006e2d jne LBB28_256 + 0x0f, 0xc9, //0x00006e33 bswapl %ecx + 0x89, 0xce, //0x00006e35 movl %ecx, %esi + 0xc1, 0xee, 0x04, //0x00006e37 shrl $4, %esi + 0xf7, 0xd6, //0x00006e3a notl %esi + 0x81, 0xe6, 0x01, 0x01, 0x01, 0x01, //0x00006e3c andl $16843009, %esi + 0x8d, 0x34, 0xf6, //0x00006e42 leal (%rsi,%rsi,8), %esi + 0x81, 0xe1, 0x0f, 0x0f, 0x0f, 0x0f, //0x00006e45 andl $252645135, %ecx + 0x01, 0xf1, //0x00006e4b addl %esi, %ecx + 0x41, 0x89, 0xcf, //0x00006e4d movl %ecx, %r15d + 0x41, 0xc1, 0xef, 0x04, //0x00006e50 shrl $4, %r15d + 0x41, 0x09, 0xcf, //0x00006e54 orl %ecx, %r15d + 0x44, 0x89, 0xfe, //0x00006e57 movl %r15d, %esi + 0xc1, 0xee, 0x08, //0x00006e5a shrl $8, %esi + 0x81, 0xe6, 0x00, 0xff, 0x00, 0x00, //0x00006e5d andl $65280, %esi + 0x41, 0x0f, 0xb6, 0xcf, //0x00006e63 movzbl %r15b, %ecx + 0x09, 0xf1, //0x00006e67 orl %esi, %ecx + 0x4c, 0x8d, 0x53, 0x06, //0x00006e69 leaq $6(%rbx), %r10 + 0x83, 0xf9, 0x7f, //0x00006e6d cmpl $127, %ecx + 0x0f, 0x86, 0xb2, 0x00, 0x00, 0x00, //0x00006e70 jbe LBB28_117 + 0x81, 0xf9, 0xff, 0x07, 0x00, 0x00, //0x00006e76 cmpl $2047, %ecx + 0x0f, 0x86, 0xc5, 0x00, 0x00, 0x00, //0x00006e7c jbe LBB28_118 + 0x44, 0x89, 0xff, //0x00006e82 movl %r15d, %edi + 0x81, 0xe7, 0x00, 0x00, 0xf8, 0x00, //0x00006e85 andl $16252928, %edi + 0x81, 0xff, 0x00, 0x00, 0xd8, 0x00, //0x00006e8b cmpl $14155776, %edi + 0x0f, 0x84, 0xe3, 0x00, 0x00, 0x00, //0x00006e91 je LBB28_119 + 0xc1, 0xee, 0x0c, //0x00006e97 shrl $12, %esi + 0x40, 0x80, 0xce, 0xe0, //0x00006e9a orb $-32, %sil + 0x40, 0x88, 0x75, 0xc8, //0x00006e9e movb %sil, $-56(%rbp) + 0xc1, 0xe9, 0x06, //0x00006ea2 shrl $6, %ecx + 0x80, 0xe1, 0x3f, //0x00006ea5 andb $63, %cl + 0x80, 0xc9, 0x80, //0x00006ea8 orb $-128, %cl + 0x88, 0x4d, 0xc9, //0x00006eab movb %cl, $-55(%rbp) + 0x41, 0x80, 0xe7, 0x3f, //0x00006eae andb $63, %r15b + 0x41, 0x80, 0xcf, 0x80, //0x00006eb2 orb $-128, %r15b + 0x44, 0x88, 0x7d, 0xca, //0x00006eb6 movb %r15b, $-54(%rbp) + 0xba, 0x03, 0x00, 0x00, 0x00, //0x00006eba movl $3, %edx + 0x41, 0x89, 0xf7, //0x00006ebf movl %esi, %r15d + 0x4c, 0x89, 0xd3, //0x00006ec2 movq %r10, %rbx + 0x4c, 0x8d, 0x54, 0x15, 0xc8, //0x00006ec5 leaq $-56(%rbp,%rdx), %r10 + 0x4d, 0x39, 0xde, //0x00006eca cmpq %r11, %r14 + 0x0f, 0x83, 0xdd, 0x01, 0x00, 0x00, //0x00006ecd jae LBB28_113 + //0x00006ed3 LBB28_107 + 0x48, 0x8d, 0x4d, 0xc8, //0x00006ed3 leaq $-56(%rbp), %rcx + 0x49, 0x39, 0xca, //0x00006ed7 cmpq %rcx, %r10 + 0x0f, 0x86, 0xd0, 0x01, 0x00, 0x00, //0x00006eda jbe LBB28_113 + 0x45, 0x38, 0x3e, //0x00006ee0 cmpb %r15b, (%r14) + 0x0f, 0x85, 0xc7, 0x01, 0x00, 0x00, //0x00006ee3 jne LBB28_113 + 0x49, 0xff, 0xc6, //0x00006ee9 incq %r14 + 0x48, 0x8d, 0x75, 0xc9, //0x00006eec leaq $-55(%rbp), %rsi + 0x4c, 0x89, 0xf7, //0x00006ef0 movq %r14, %rdi + 0x4c, 0x8b, 0x7d, 0xd0, //0x00006ef3 movq $-48(%rbp), %r15 + //0x00006ef7 LBB28_110 + 0x49, 0x89, 0xfe, //0x00006ef7 movq %rdi, %r14 + 0x48, 0x89, 0xf2, //0x00006efa movq %rsi, %rdx + 0x4c, 0x39, 0xd6, //0x00006efd cmpq %r10, %rsi + 0x0f, 0x83, 0xb2, 0x01, 0x00, 0x00, //0x00006f00 jae LBB28_114 + 0x4d, 0x39, 0xde, //0x00006f06 cmpq %r11, %r14 + 0x0f, 0x83, 0xa9, 0x01, 0x00, 0x00, //0x00006f09 jae LBB28_114 + 0x41, 0x0f, 0xb6, 0x0e, //0x00006f0f movzbl (%r14), %ecx + 0x49, 0x8d, 0x7e, 0x01, //0x00006f13 leaq $1(%r14), %rdi + 0x48, 0x8d, 0x72, 0x01, //0x00006f17 leaq $1(%rdx), %rsi + 0x3a, 0x0a, //0x00006f1b cmpb (%rdx), %cl + 0x0f, 0x84, 0xd4, 0xff, 0xff, 0xff, //0x00006f1d je LBB28_110 + 0xe9, 0x90, 0x01, 0x00, 0x00, //0x00006f23 jmp LBB28_114 + //0x00006f28 LBB28_117 + 0x44, 0x88, 0x7d, 0xc8, //0x00006f28 movb %r15b, $-56(%rbp) + 0xba, 0x01, 0x00, 0x00, 0x00, //0x00006f2c movl $1, %edx + 0x4c, 0x89, 0xd3, //0x00006f31 movq %r10, %rbx + 0x4c, 0x8d, 0x54, 0x15, 0xc8, //0x00006f34 leaq $-56(%rbp,%rdx), %r10 + 0x4d, 0x39, 0xde, //0x00006f39 cmpq %r11, %r14 + 0x0f, 0x82, 0x91, 0xff, 0xff, 0xff, //0x00006f3c jb LBB28_107 + 0xe9, 0x69, 0x01, 0x00, 0x00, //0x00006f42 jmp LBB28_113 + //0x00006f47 LBB28_118 + 0xc1, 0xe9, 0x06, //0x00006f47 shrl $6, %ecx + 0x80, 0xc9, 0xc0, //0x00006f4a orb $-64, %cl + 0x88, 0x4d, 0xc8, //0x00006f4d movb %cl, $-56(%rbp) + 0x41, 0x80, 0xe7, 0x3f, //0x00006f50 andb $63, %r15b + 0x41, 0x80, 0xcf, 0x80, //0x00006f54 orb $-128, %r15b + 0x44, 0x88, 0x7d, 0xc9, //0x00006f58 movb %r15b, $-55(%rbp) + 0xba, 0x02, 0x00, 0x00, 0x00, //0x00006f5c movl $2, %edx + 0x41, 0x89, 0xcf, //0x00006f61 movl %ecx, %r15d + 0x4c, 0x89, 0xd3, //0x00006f64 movq %r10, %rbx + 0x4c, 0x8d, 0x54, 0x15, 0xc8, //0x00006f67 leaq $-56(%rbp,%rdx), %r10 + 0x4d, 0x39, 0xde, //0x00006f6c cmpq %r11, %r14 + 0x0f, 0x82, 0x5e, 0xff, 0xff, 0xff, //0x00006f6f jb LBB28_107 + 0xe9, 0x36, 0x01, 0x00, 0x00, //0x00006f75 jmp LBB28_113 + //0x00006f7a LBB28_119 + 0x48, 0x83, 0xfa, 0x06, //0x00006f7a cmpq $6, %rdx + 0x0f, 0x8c, 0x1f, 0x07, 0x00, 0x00, //0x00006f7e jl LBB28_261 + 0x81, 0xf9, 0xff, 0xdb, 0x00, 0x00, //0x00006f84 cmpl $56319, %ecx + 0x0f, 0x87, 0x13, 0x07, 0x00, 0x00, //0x00006f8a ja LBB28_261 + 0x41, 0x80, 0x3a, 0x5c, //0x00006f90 cmpb $92, (%r10) + 0x0f, 0x85, 0x09, 0x07, 0x00, 0x00, //0x00006f94 jne LBB28_261 + 0x80, 0x7b, 0x07, 0x75, //0x00006f9a cmpb $117, $7(%rbx) + 0x0f, 0x85, 0xff, 0x06, 0x00, 0x00, //0x00006f9e jne LBB28_261 + 0x4c, 0x8d, 0x53, 0x08, //0x00006fa4 leaq $8(%rbx), %r10 + 0x8b, 0x53, 0x08, //0x00006fa8 movl $8(%rbx), %edx + 0x89, 0xd7, //0x00006fab movl %edx, %edi + 0xf7, 0xd7, //0x00006fad notl %edi + 0x8d, 0xb2, 0xd0, 0xcf, 0xcf, 0xcf, //0x00006faf leal $-808464432(%rdx), %esi + 0x81, 0xe7, 0x80, 0x80, 0x80, 0x80, //0x00006fb5 andl $-2139062144, %edi + 0x85, 0xf7, //0x00006fbb testl %esi, %edi + 0x0f, 0x85, 0xd4, 0x06, 0x00, 0x00, //0x00006fbd jne LBB28_260 + 0x8d, 0xb2, 0x19, 0x19, 0x19, 0x19, //0x00006fc3 leal $421075225(%rdx), %esi + 0x09, 0xd6, //0x00006fc9 orl %edx, %esi + 0xf7, 0xc6, 0x80, 0x80, 0x80, 0x80, //0x00006fcb testl $-2139062144, %esi + 0x0f, 0x85, 0xc0, 0x06, 0x00, 0x00, //0x00006fd1 jne LBB28_260 + 0x89, 0xd6, //0x00006fd7 movl %edx, %esi + 0x81, 0xe6, 0x7f, 0x7f, 0x7f, 0x7f, //0x00006fd9 andl $2139062143, %esi + 0x41, 0xbf, 0xc0, 0xc0, 0xc0, 0xc0, //0x00006fdf movl $-1061109568, %r15d + 0x41, 0x29, 0xf7, //0x00006fe5 subl %esi, %r15d + 0x44, 0x8d, 0xae, 0x46, 0x46, 0x46, 0x46, //0x00006fe8 leal $1179010630(%rsi), %r13d + 0x41, 0x21, 0xff, //0x00006fef andl %edi, %r15d + 0x45, 0x85, 0xef, //0x00006ff2 testl %r13d, %r15d + 0x0f, 0x85, 0x9c, 0x06, 0x00, 0x00, //0x00006ff5 jne LBB28_260 + 0x41, 0xbf, 0xe0, 0xe0, 0xe0, 0xe0, //0x00006ffb movl $-522133280, %r15d + 0x41, 0x29, 0xf7, //0x00007001 subl %esi, %r15d + 0x81, 0xc6, 0x39, 0x39, 0x39, 0x39, //0x00007004 addl $960051513, %esi + 0x44, 0x21, 0xff, //0x0000700a andl %r15d, %edi + 0x85, 0xf7, //0x0000700d testl %esi, %edi + 0x0f, 0x85, 0x82, 0x06, 0x00, 0x00, //0x0000700f jne LBB28_260 + 0x0f, 0xca, //0x00007015 bswapl %edx + 0x89, 0xd6, //0x00007017 movl %edx, %esi + 0xc1, 0xee, 0x04, //0x00007019 shrl $4, %esi + 0xf7, 0xd6, //0x0000701c notl %esi + 0x81, 0xe6, 0x01, 0x01, 0x01, 0x01, //0x0000701e andl $16843009, %esi + 0x8d, 0x34, 0xf6, //0x00007024 leal (%rsi,%rsi,8), %esi + 0x81, 0xe2, 0x0f, 0x0f, 0x0f, 0x0f, //0x00007027 andl $252645135, %edx + 0x01, 0xf2, //0x0000702d addl %esi, %edx + 0x89, 0xd6, //0x0000702f movl %edx, %esi + 0xc1, 0xee, 0x04, //0x00007031 shrl $4, %esi + 0x09, 0xd6, //0x00007034 orl %edx, %esi + 0x89, 0xf2, //0x00007036 movl %esi, %edx + 0x81, 0xe2, 0x00, 0x00, 0xfc, 0x00, //0x00007038 andl $16515072, %edx + 0x81, 0xfa, 0x00, 0x00, 0xdc, 0x00, //0x0000703e cmpl $14417920, %edx + 0x0f, 0x85, 0x59, 0x06, 0x00, 0x00, //0x00007044 jne LBB28_261 + 0x89, 0xf2, //0x0000704a movl %esi, %edx + 0xc1, 0xea, 0x08, //0x0000704c shrl $8, %edx + 0x81, 0xe2, 0x00, 0xff, 0x00, 0x00, //0x0000704f andl $65280, %edx + 0x40, 0x0f, 0xb6, 0xf6, //0x00007055 movzbl %sil, %esi + 0x09, 0xd6, //0x00007059 orl %edx, %esi + 0xc1, 0xe1, 0x0a, //0x0000705b shll $10, %ecx + 0x8d, 0x8c, 0x31, 0x00, 0x24, 0xa0, 0xfc, //0x0000705e leal $-56613888(%rcx,%rsi), %ecx + 0x41, 0x89, 0xcf, //0x00007065 movl %ecx, %r15d + 0x41, 0xc1, 0xef, 0x12, //0x00007068 shrl $18, %r15d + 0x41, 0x80, 0xcf, 0xf0, //0x0000706c orb $-16, %r15b + 0x44, 0x88, 0x7d, 0xc8, //0x00007070 movb %r15b, $-56(%rbp) + 0x89, 0xca, //0x00007074 movl %ecx, %edx + 0xc1, 0xea, 0x0c, //0x00007076 shrl $12, %edx + 0x80, 0xe2, 0x3f, //0x00007079 andb $63, %dl + 0x80, 0xca, 0x80, //0x0000707c orb $-128, %dl + 0x88, 0x55, 0xc9, //0x0000707f movb %dl, $-55(%rbp) + 0x89, 0xca, //0x00007082 movl %ecx, %edx + 0xc1, 0xea, 0x06, //0x00007084 shrl $6, %edx + 0x80, 0xe2, 0x3f, //0x00007087 andb $63, %dl + 0x80, 0xca, 0x80, //0x0000708a orb $-128, %dl + 0x88, 0x55, 0xca, //0x0000708d movb %dl, $-54(%rbp) + 0x80, 0xe1, 0x3f, //0x00007090 andb $63, %cl + 0x80, 0xc9, 0x80, //0x00007093 orb $-128, %cl + 0x88, 0x4d, 0xcb, //0x00007096 movb %cl, $-53(%rbp) + 0x48, 0x83, 0xc3, 0x0c, //0x00007099 addq $12, %rbx + 0xba, 0x04, 0x00, 0x00, 0x00, //0x0000709d movl $4, %edx + 0x4c, 0x8d, 0x54, 0x15, 0xc8, //0x000070a2 leaq $-56(%rbp,%rdx), %r10 + 0x4d, 0x39, 0xde, //0x000070a7 cmpq %r11, %r14 + 0x0f, 0x82, 0x23, 0xfe, 0xff, 0xff, //0x000070aa jb LBB28_107 + //0x000070b0 LBB28_113 + 0x48, 0x8d, 0x55, 0xc8, //0x000070b0 leaq $-56(%rbp), %rdx + 0x4c, 0x8b, 0x7d, 0xd0, //0x000070b4 movq $-48(%rbp), %r15 + //0x000070b8 LBB28_114 + 0x4c, 0x39, 0xd2, //0x000070b8 cmpq %r10, %rdx + 0x0f, 0x85, 0xd6, 0x02, 0x00, 0x00, //0x000070bb jne LBB28_183 + //0x000070c1 LBB28_115 + 0x49, 0x39, 0xd8, //0x000070c1 cmpq %rbx, %r8 + 0x0f, 0x86, 0x12, 0x00, 0x00, 0x00, //0x000070c4 jbe LBB28_130 + 0x4d, 0x39, 0xde, //0x000070ca cmpq %r11, %r14 + 0x0f, 0x82, 0x72, 0xfc, 0xff, 0xff, //0x000070cd jb LBB28_89 + 0xe9, 0x04, 0x00, 0x00, 0x00, //0x000070d3 jmp LBB28_130 + //0x000070d8 LBB28_129 + 0x4c, 0x8b, 0x7d, 0xd0, //0x000070d8 movq $-48(%rbp), %r15 + //0x000070dc LBB28_130 + 0x49, 0x31, 0xd8, //0x000070dc xorq %rbx, %r8 + 0x4d, 0x31, 0xde, //0x000070df xorq %r11, %r14 + 0x45, 0x31, 0xd2, //0x000070e2 xorl %r10d, %r10d + 0x4d, 0x09, 0xc6, //0x000070e5 orq %r8, %r14 + 0x41, 0x0f, 0x94, 0xc2, //0x000070e8 sete %r10b + //0x000070ec LBB28_131 + 0x4c, 0x8b, 0x5d, 0xc0, //0x000070ec movq $-64(%rbp), %r11 + 0x49, 0x8b, 0x73, 0x08, //0x000070f0 movq $8(%r11), %rsi + 0x48, 0x89, 0xc7, //0x000070f4 movq %rax, %rdi + 0x48, 0x29, 0xf7, //0x000070f7 subq %rsi, %rdi + 0x0f, 0x82, 0xea, 0xfb, 0xff, 0xff, //0x000070fa jb LBB28_83 + //0x00007100 .p2align 4, 0x90 + //0x00007100 LBB28_132 + 0x48, 0x8d, 0x58, 0x01, //0x00007100 leaq $1(%rax), %rbx + 0x48, 0x39, 0xf3, //0x00007104 cmpq %rsi, %rbx + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00007107 jae LBB28_136 + 0x41, 0x8a, 0x14, 0x19, //0x0000710d movb (%r9,%rbx), %dl + 0x80, 0xfa, 0x0d, //0x00007111 cmpb $13, %dl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00007114 je LBB28_136 + 0x80, 0xfa, 0x20, //0x0000711a cmpb $32, %dl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x0000711d je LBB28_136 + 0x80, 0xc2, 0xf7, //0x00007123 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x00007126 cmpb $1, %dl + 0x0f, 0x87, 0xf3, 0x00, 0x00, 0x00, //0x00007129 ja LBB28_153 + 0x90, //0x0000712f .p2align 4, 0x90 + //0x00007130 LBB28_136 + 0x48, 0x8d, 0x58, 0x02, //0x00007130 leaq $2(%rax), %rbx + 0x48, 0x39, 0xf3, //0x00007134 cmpq %rsi, %rbx + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00007137 jae LBB28_140 + 0x41, 0x8a, 0x14, 0x19, //0x0000713d movb (%r9,%rbx), %dl + 0x80, 0xfa, 0x0d, //0x00007141 cmpb $13, %dl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00007144 je LBB28_140 + 0x80, 0xfa, 0x20, //0x0000714a cmpb $32, %dl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x0000714d je LBB28_140 + 0x80, 0xc2, 0xf7, //0x00007153 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x00007156 cmpb $1, %dl + 0x0f, 0x87, 0xc3, 0x00, 0x00, 0x00, //0x00007159 ja LBB28_153 + 0x90, //0x0000715f .p2align 4, 0x90 + //0x00007160 LBB28_140 + 0x48, 0x8d, 0x58, 0x03, //0x00007160 leaq $3(%rax), %rbx + 0x48, 0x39, 0xf3, //0x00007164 cmpq %rsi, %rbx + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00007167 jae LBB28_144 + 0x41, 0x8a, 0x14, 0x19, //0x0000716d movb (%r9,%rbx), %dl + 0x80, 0xfa, 0x0d, //0x00007171 cmpb $13, %dl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00007174 je LBB28_144 + 0x80, 0xfa, 0x20, //0x0000717a cmpb $32, %dl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x0000717d je LBB28_144 + 0x80, 0xc2, 0xf7, //0x00007183 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x00007186 cmpb $1, %dl + 0x0f, 0x87, 0x93, 0x00, 0x00, 0x00, //0x00007189 ja LBB28_153 + 0x90, //0x0000718f .p2align 4, 0x90 + //0x00007190 LBB28_144 + 0x48, 0x8d, 0x50, 0x04, //0x00007190 leaq $4(%rax), %rdx + 0x48, 0x39, 0xd6, //0x00007194 cmpq %rdx, %rsi + 0x0f, 0x86, 0x49, 0x04, 0x00, 0x00, //0x00007197 jbe LBB28_245 + 0x48, 0x39, 0xd6, //0x0000719d cmpq %rdx, %rsi + 0x0f, 0x84, 0x4a, 0x00, 0x00, 0x00, //0x000071a0 je LBB28_150 + 0x49, 0x8d, 0x14, 0x31, //0x000071a6 leaq (%r9,%rsi), %rdx + 0x48, 0x83, 0xc7, 0x04, //0x000071aa addq $4, %rdi + 0x49, 0x8d, 0x5c, 0x01, 0x05, //0x000071ae leaq $5(%r9,%rax), %rbx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000071b3 .p2align 4, 0x90 + //0x000071c0 LBB28_147 + 0x0f, 0xbe, 0x4b, 0xff, //0x000071c0 movsbl $-1(%rbx), %ecx + 0x83, 0xf9, 0x20, //0x000071c4 cmpl $32, %ecx + 0x0f, 0x87, 0x43, 0x00, 0x00, 0x00, //0x000071c7 ja LBB28_152 + 0x49, 0x0f, 0xa3, 0xcc, //0x000071cd btq %rcx, %r12 + 0x0f, 0x83, 0x39, 0x00, 0x00, 0x00, //0x000071d1 jae LBB28_152 + 0x48, 0xff, 0xc3, //0x000071d7 incq %rbx + 0x48, 0xff, 0xc7, //0x000071da incq %rdi + 0x0f, 0x85, 0xdd, 0xff, 0xff, 0xff, //0x000071dd jne LBB28_147 + 0xe9, 0x0b, 0x00, 0x00, 0x00, //0x000071e3 jmp LBB28_151 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000071e8 .p2align 4, 0x90 + //0x000071f0 LBB28_150 + 0x4c, 0x01, 0xca, //0x000071f0 addq %r9, %rdx + //0x000071f3 LBB28_151 + 0x4c, 0x29, 0xca, //0x000071f3 subq %r9, %rdx + 0x48, 0x89, 0xd3, //0x000071f6 movq %rdx, %rbx + 0x48, 0x39, 0xf3, //0x000071f9 cmpq %rsi, %rbx + 0x0f, 0x82, 0x20, 0x00, 0x00, 0x00, //0x000071fc jb LBB28_153 + 0xe9, 0xe5, 0x03, 0x00, 0x00, //0x00007202 jmp LBB28_247 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007207 .p2align 4, 0x90 + //0x00007210 LBB28_152 + 0x4c, 0x89, 0xc9, //0x00007210 movq %r9, %rcx + 0x48, 0xf7, 0xd1, //0x00007213 notq %rcx + 0x48, 0x01, 0xcb, //0x00007216 addq %rcx, %rbx + 0x48, 0x39, 0xf3, //0x00007219 cmpq %rsi, %rbx + 0x0f, 0x83, 0xca, 0x03, 0x00, 0x00, //0x0000721c jae LBB28_247 + //0x00007222 LBB28_153 + 0x48, 0x8d, 0x53, 0x01, //0x00007222 leaq $1(%rbx), %rdx + 0x49, 0x89, 0x17, //0x00007226 movq %rdx, (%r15) + 0x41, 0x80, 0x3c, 0x19, 0x3a, //0x00007229 cmpb $58, (%r9,%rbx) + 0x0f, 0x85, 0xb5, 0x03, 0x00, 0x00, //0x0000722e jne LBB28_246 + 0x4d, 0x85, 0xd2, //0x00007234 testq %r10, %r10 + 0x0f, 0x85, 0x66, 0x03, 0x00, 0x00, //0x00007237 jne LBB28_243 + 0x4c, 0x89, 0xdf, //0x0000723d movq %r11, %rdi + 0x4c, 0x89, 0xfe, //0x00007240 movq %r15, %rsi + 0xe8, 0xc8, 0xe4, 0xff, 0xff, //0x00007243 callq _skip_one_fast + 0x4c, 0x8b, 0x5d, 0xc0, //0x00007248 movq $-64(%rbp), %r11 + 0x4d, 0x8b, 0x0b, //0x0000724c movq (%r11), %r9 + 0x49, 0x8b, 0x4b, 0x08, //0x0000724f movq $8(%r11), %rcx + 0x49, 0x8b, 0x07, //0x00007253 movq (%r15), %rax + 0x48, 0x89, 0xc6, //0x00007256 movq %rax, %rsi + 0x48, 0x29, 0xce, //0x00007259 subq %rcx, %rsi + 0x0f, 0x83, 0x2e, 0x00, 0x00, 0x00, //0x0000725c jae LBB28_160 + 0x41, 0x8a, 0x14, 0x01, //0x00007262 movb (%r9,%rax), %dl + 0x80, 0xfa, 0x0d, //0x00007266 cmpb $13, %dl + 0x0f, 0x84, 0x21, 0x00, 0x00, 0x00, //0x00007269 je LBB28_160 + 0x80, 0xfa, 0x20, //0x0000726f cmpb $32, %dl + 0x0f, 0x84, 0x18, 0x00, 0x00, 0x00, //0x00007272 je LBB28_160 + 0x80, 0xc2, 0xf7, //0x00007278 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x0000727b cmpb $1, %dl + 0x0f, 0x86, 0x0c, 0x00, 0x00, 0x00, //0x0000727e jbe LBB28_160 + 0x48, 0x89, 0xc7, //0x00007284 movq %rax, %rdi + 0xe9, 0x4e, 0xf7, 0xff, 0xff, //0x00007287 jmp LBB28_181 + 0x90, 0x90, 0x90, 0x90, //0x0000728c .p2align 4, 0x90 + //0x00007290 LBB28_160 + 0x48, 0x8d, 0x78, 0x01, //0x00007290 leaq $1(%rax), %rdi + 0x48, 0x39, 0xcf, //0x00007294 cmpq %rcx, %rdi + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00007297 jae LBB28_164 + 0x41, 0x8a, 0x14, 0x39, //0x0000729d movb (%r9,%rdi), %dl + 0x80, 0xfa, 0x0d, //0x000072a1 cmpb $13, %dl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x000072a4 je LBB28_164 + 0x80, 0xfa, 0x20, //0x000072aa cmpb $32, %dl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x000072ad je LBB28_164 + 0x80, 0xc2, 0xf7, //0x000072b3 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x000072b6 cmpb $1, %dl + 0x0f, 0x87, 0x1b, 0xf7, 0xff, 0xff, //0x000072b9 ja LBB28_181 + 0x90, //0x000072bf .p2align 4, 0x90 + //0x000072c0 LBB28_164 + 0x48, 0x8d, 0x78, 0x02, //0x000072c0 leaq $2(%rax), %rdi + 0x48, 0x39, 0xcf, //0x000072c4 cmpq %rcx, %rdi + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x000072c7 jae LBB28_168 + 0x41, 0x8a, 0x14, 0x39, //0x000072cd movb (%r9,%rdi), %dl + 0x80, 0xfa, 0x0d, //0x000072d1 cmpb $13, %dl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x000072d4 je LBB28_168 + 0x80, 0xfa, 0x20, //0x000072da cmpb $32, %dl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x000072dd je LBB28_168 + 0x80, 0xc2, 0xf7, //0x000072e3 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x000072e6 cmpb $1, %dl + 0x0f, 0x87, 0xeb, 0xf6, 0xff, 0xff, //0x000072e9 ja LBB28_181 + 0x90, //0x000072ef .p2align 4, 0x90 + //0x000072f0 LBB28_168 + 0x48, 0x8d, 0x78, 0x03, //0x000072f0 leaq $3(%rax), %rdi + 0x48, 0x39, 0xcf, //0x000072f4 cmpq %rcx, %rdi + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x000072f7 jae LBB28_172 + 0x41, 0x8a, 0x14, 0x39, //0x000072fd movb (%r9,%rdi), %dl + 0x80, 0xfa, 0x0d, //0x00007301 cmpb $13, %dl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00007304 je LBB28_172 + 0x80, 0xfa, 0x20, //0x0000730a cmpb $32, %dl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x0000730d je LBB28_172 + 0x80, 0xc2, 0xf7, //0x00007313 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x00007316 cmpb $1, %dl + 0x0f, 0x87, 0xbb, 0xf6, 0xff, 0xff, //0x00007319 ja LBB28_181 + 0x90, //0x0000731f .p2align 4, 0x90 + //0x00007320 LBB28_172 + 0x48, 0x8d, 0x50, 0x04, //0x00007320 leaq $4(%rax), %rdx + 0x48, 0x39, 0xd1, //0x00007324 cmpq %rdx, %rcx + 0x0f, 0x86, 0xb9, 0x02, 0x00, 0x00, //0x00007327 jbe LBB28_245 + 0x48, 0x39, 0xd1, //0x0000732d cmpq %rdx, %rcx + 0x0f, 0x84, 0x4a, 0x00, 0x00, 0x00, //0x00007330 je LBB28_178 + 0x49, 0x8d, 0x14, 0x09, //0x00007336 leaq (%r9,%rcx), %rdx + 0x48, 0x83, 0xc6, 0x04, //0x0000733a addq $4, %rsi + 0x49, 0x8d, 0x7c, 0x01, 0x05, //0x0000733e leaq $5(%r9,%rax), %rdi + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007343 .p2align 4, 0x90 + //0x00007350 LBB28_175 + 0x0f, 0xbe, 0x5f, 0xff, //0x00007350 movsbl $-1(%rdi), %ebx + 0x83, 0xfb, 0x20, //0x00007354 cmpl $32, %ebx + 0x0f, 0x87, 0x6b, 0xf6, 0xff, 0xff, //0x00007357 ja LBB28_180 + 0x49, 0x0f, 0xa3, 0xdc, //0x0000735d btq %rbx, %r12 + 0x0f, 0x83, 0x61, 0xf6, 0xff, 0xff, //0x00007361 jae LBB28_180 + 0x48, 0xff, 0xc7, //0x00007367 incq %rdi + 0x48, 0xff, 0xc6, //0x0000736a incq %rsi + 0x0f, 0x85, 0xdd, 0xff, 0xff, 0xff, //0x0000736d jne LBB28_175 + 0xe9, 0x0b, 0x00, 0x00, 0x00, //0x00007373 jmp LBB28_179 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007378 .p2align 4, 0x90 + //0x00007380 LBB28_178 + 0x4c, 0x01, 0xca, //0x00007380 addq %r9, %rdx + //0x00007383 LBB28_179 + 0x4c, 0x29, 0xca, //0x00007383 subq %r9, %rdx + 0x48, 0x89, 0xd7, //0x00007386 movq %rdx, %rdi + 0x48, 0x39, 0xcf, //0x00007389 cmpq %rcx, %rdi + 0x0f, 0x82, 0x48, 0xf6, 0xff, 0xff, //0x0000738c jb LBB28_181 + 0xe9, 0x55, 0x02, 0x00, 0x00, //0x00007392 jmp LBB28_247 + //0x00007397 LBB28_183 + 0x45, 0x31, 0xd2, //0x00007397 xorl %r10d, %r10d + 0xe9, 0x4d, 0xfd, 0xff, 0xff, //0x0000739a jmp LBB28_131 + //0x0000739f LBB28_209 + 0x49, 0x89, 0x17, //0x0000739f movq %rdx, (%r15) + 0x48, 0x89, 0xd0, //0x000073a2 movq %rdx, %rax + 0xe9, 0x52, 0x00, 0x00, 0x00, //0x000073a5 jmp LBB28_214 + //0x000073aa LBB28_29 + 0x4c, 0x89, 0xc8, //0x000073aa movq %r9, %rax + 0x48, 0xf7, 0xd0, //0x000073ad notq %rax + 0x48, 0x01, 0xc6, //0x000073b0 addq %rax, %rsi + 0x4c, 0x39, 0xc6, //0x000073b3 cmpq %r8, %rsi + 0x0f, 0x82, 0x16, 0xf4, 0xff, 0xff, //0x000073b6 jb LBB28_28 + 0xe9, 0x6b, 0xf4, 0xff, 0xff, //0x000073bc jmp LBB28_30 + //0x000073c1 LBB28_210 + 0x4c, 0x01, 0xca, //0x000073c1 addq %r9, %rdx + //0x000073c4 LBB28_211 + 0x4c, 0x29, 0xca, //0x000073c4 subq %r9, %rdx + 0x48, 0x89, 0xd7, //0x000073c7 movq %rdx, %rdi + 0x4c, 0x39, 0xc7, //0x000073ca cmpq %r8, %rdi + 0x0f, 0x82, 0x17, 0x00, 0x00, 0x00, //0x000073cd jb LBB28_213 + 0xe9, 0x24, 0x00, 0x00, 0x00, //0x000073d3 jmp LBB28_214 + //0x000073d8 LBB28_212 + 0x4c, 0x89, 0xc9, //0x000073d8 movq %r9, %rcx + 0x48, 0xf7, 0xd1, //0x000073db notq %rcx + 0x48, 0x01, 0xcf, //0x000073de addq %rcx, %rdi + 0x4c, 0x39, 0xc7, //0x000073e1 cmpq %r8, %rdi + 0x0f, 0x83, 0x12, 0x00, 0x00, 0x00, //0x000073e4 jae LBB28_214 + //0x000073ea LBB28_213 + 0x48, 0x8d, 0x47, 0x01, //0x000073ea leaq $1(%rdi), %rax + 0x49, 0x89, 0x07, //0x000073ee movq %rax, (%r15) + 0x41, 0x80, 0x3c, 0x39, 0x5d, //0x000073f1 cmpb $93, (%r9,%rdi) + 0x0f, 0x84, 0x3d, 0x02, 0x00, 0x00, //0x000073f6 je LBB28_254 + //0x000073fc LBB28_214 + 0x48, 0xff, 0xc8, //0x000073fc decq %rax + 0x49, 0x89, 0x07, //0x000073ff movq %rax, (%r15) + 0x48, 0x89, 0xc2, //0x00007402 movq %rax, %rdx + 0x4d, 0x85, 0xf6, //0x00007405 testq %r14, %r14 + 0x0f, 0x8e, 0x95, 0x01, 0x00, 0x00, //0x00007408 jle LBB28_243 + 0x90, 0x90, //0x0000740e .p2align 4, 0x90 + //0x00007410 LBB28_215 + 0x4c, 0x89, 0xdf, //0x00007410 movq %r11, %rdi + 0x4c, 0x89, 0xfe, //0x00007413 movq %r15, %rsi + 0xe8, 0xf5, 0xe2, 0xff, 0xff, //0x00007416 callq _skip_one_fast + 0x4c, 0x8b, 0x5d, 0xc0, //0x0000741b movq $-64(%rbp), %r11 + 0x4d, 0x8b, 0x0b, //0x0000741f movq (%r11), %r9 + 0x49, 0x8b, 0x4b, 0x08, //0x00007422 movq $8(%r11), %rcx + 0x49, 0x8b, 0x07, //0x00007426 movq (%r15), %rax + 0x48, 0x89, 0xc6, //0x00007429 movq %rax, %rsi + 0x48, 0x29, 0xce, //0x0000742c subq %rcx, %rsi + 0x0f, 0x83, 0x2b, 0x00, 0x00, 0x00, //0x0000742f jae LBB28_220 + 0x41, 0x8a, 0x14, 0x01, //0x00007435 movb (%r9,%rax), %dl + 0x80, 0xfa, 0x0d, //0x00007439 cmpb $13, %dl + 0x0f, 0x84, 0x1e, 0x00, 0x00, 0x00, //0x0000743c je LBB28_220 + 0x80, 0xfa, 0x20, //0x00007442 cmpb $32, %dl + 0x0f, 0x84, 0x15, 0x00, 0x00, 0x00, //0x00007445 je LBB28_220 + 0x80, 0xc2, 0xf7, //0x0000744b addb $-9, %dl + 0x80, 0xfa, 0x01, //0x0000744e cmpb $1, %dl + 0x0f, 0x86, 0x09, 0x00, 0x00, 0x00, //0x00007451 jbe LBB28_220 + 0x48, 0x89, 0xc7, //0x00007457 movq %rax, %rdi + 0xe9, 0x23, 0x01, 0x00, 0x00, //0x0000745a jmp LBB28_241 + 0x90, //0x0000745f .p2align 4, 0x90 + //0x00007460 LBB28_220 + 0x48, 0x8d, 0x78, 0x01, //0x00007460 leaq $1(%rax), %rdi + 0x48, 0x39, 0xcf, //0x00007464 cmpq %rcx, %rdi + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00007467 jae LBB28_224 + 0x41, 0x8a, 0x14, 0x39, //0x0000746d movb (%r9,%rdi), %dl + 0x80, 0xfa, 0x0d, //0x00007471 cmpb $13, %dl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00007474 je LBB28_224 + 0x80, 0xfa, 0x20, //0x0000747a cmpb $32, %dl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x0000747d je LBB28_224 + 0x80, 0xc2, 0xf7, //0x00007483 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x00007486 cmpb $1, %dl + 0x0f, 0x87, 0xf3, 0x00, 0x00, 0x00, //0x00007489 ja LBB28_241 + 0x90, //0x0000748f .p2align 4, 0x90 + //0x00007490 LBB28_224 + 0x48, 0x8d, 0x78, 0x02, //0x00007490 leaq $2(%rax), %rdi + 0x48, 0x39, 0xcf, //0x00007494 cmpq %rcx, %rdi + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00007497 jae LBB28_228 + 0x41, 0x8a, 0x14, 0x39, //0x0000749d movb (%r9,%rdi), %dl + 0x80, 0xfa, 0x0d, //0x000074a1 cmpb $13, %dl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x000074a4 je LBB28_228 + 0x80, 0xfa, 0x20, //0x000074aa cmpb $32, %dl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x000074ad je LBB28_228 + 0x80, 0xc2, 0xf7, //0x000074b3 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x000074b6 cmpb $1, %dl + 0x0f, 0x87, 0xc3, 0x00, 0x00, 0x00, //0x000074b9 ja LBB28_241 + 0x90, //0x000074bf .p2align 4, 0x90 + //0x000074c0 LBB28_228 + 0x48, 0x8d, 0x78, 0x03, //0x000074c0 leaq $3(%rax), %rdi + 0x48, 0x39, 0xcf, //0x000074c4 cmpq %rcx, %rdi + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x000074c7 jae LBB28_232 + 0x41, 0x8a, 0x14, 0x39, //0x000074cd movb (%r9,%rdi), %dl + 0x80, 0xfa, 0x0d, //0x000074d1 cmpb $13, %dl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x000074d4 je LBB28_232 + 0x80, 0xfa, 0x20, //0x000074da cmpb $32, %dl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x000074dd je LBB28_232 + 0x80, 0xc2, 0xf7, //0x000074e3 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x000074e6 cmpb $1, %dl + 0x0f, 0x87, 0x93, 0x00, 0x00, 0x00, //0x000074e9 ja LBB28_241 + 0x90, //0x000074ef .p2align 4, 0x90 + //0x000074f0 LBB28_232 + 0x48, 0x8d, 0x50, 0x04, //0x000074f0 leaq $4(%rax), %rdx + 0x48, 0x39, 0xd1, //0x000074f4 cmpq %rdx, %rcx + 0x0f, 0x86, 0xe9, 0x00, 0x00, 0x00, //0x000074f7 jbe LBB28_245 + 0x48, 0x39, 0xd1, //0x000074fd cmpq %rdx, %rcx + 0x0f, 0x84, 0x4a, 0x00, 0x00, 0x00, //0x00007500 je LBB28_238 + 0x49, 0x8d, 0x14, 0x09, //0x00007506 leaq (%r9,%rcx), %rdx + 0x48, 0x83, 0xc6, 0x04, //0x0000750a addq $4, %rsi + 0x49, 0x8d, 0x7c, 0x01, 0x05, //0x0000750e leaq $5(%r9,%rax), %rdi + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007513 .p2align 4, 0x90 + //0x00007520 LBB28_235 + 0x0f, 0xbe, 0x5f, 0xff, //0x00007520 movsbl $-1(%rdi), %ebx + 0x83, 0xfb, 0x20, //0x00007524 cmpl $32, %ebx + 0x0f, 0x87, 0x43, 0x00, 0x00, 0x00, //0x00007527 ja LBB28_240 + 0x49, 0x0f, 0xa3, 0xdc, //0x0000752d btq %rbx, %r12 + 0x0f, 0x83, 0x39, 0x00, 0x00, 0x00, //0x00007531 jae LBB28_240 + 0x48, 0xff, 0xc7, //0x00007537 incq %rdi + 0x48, 0xff, 0xc6, //0x0000753a incq %rsi + 0x0f, 0x85, 0xdd, 0xff, 0xff, 0xff, //0x0000753d jne LBB28_235 + 0xe9, 0x0b, 0x00, 0x00, 0x00, //0x00007543 jmp LBB28_239 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007548 .p2align 4, 0x90 + //0x00007550 LBB28_238 + 0x4c, 0x01, 0xca, //0x00007550 addq %r9, %rdx + //0x00007553 LBB28_239 + 0x4c, 0x29, 0xca, //0x00007553 subq %r9, %rdx + 0x48, 0x89, 0xd7, //0x00007556 movq %rdx, %rdi + 0x48, 0x39, 0xcf, //0x00007559 cmpq %rcx, %rdi + 0x0f, 0x82, 0x20, 0x00, 0x00, 0x00, //0x0000755c jb LBB28_241 + 0xe9, 0x85, 0x00, 0x00, 0x00, //0x00007562 jmp LBB28_247 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007567 .p2align 4, 0x90 + //0x00007570 LBB28_240 + 0x4c, 0x89, 0xca, //0x00007570 movq %r9, %rdx + 0x48, 0xf7, 0xd2, //0x00007573 notq %rdx + 0x48, 0x01, 0xd7, //0x00007576 addq %rdx, %rdi + 0x48, 0x39, 0xcf, //0x00007579 cmpq %rcx, %rdi + 0x0f, 0x83, 0x6a, 0x00, 0x00, 0x00, //0x0000757c jae LBB28_247 + //0x00007582 LBB28_241 + 0x48, 0x8d, 0x57, 0x01, //0x00007582 leaq $1(%rdi), %rdx + 0x49, 0x89, 0x17, //0x00007586 movq %rdx, (%r15) + 0x41, 0x8a, 0x04, 0x39, //0x00007589 movb (%r9,%rdi), %al + 0x3c, 0x2c, //0x0000758d cmpb $44, %al + 0x0f, 0x85, 0x76, 0x00, 0x00, 0x00, //0x0000758f jne LBB28_249 + 0x49, 0x83, 0xfe, 0x02, //0x00007595 cmpq $2, %r14 + 0x4d, 0x8d, 0x76, 0xff, //0x00007599 leaq $-1(%r14), %r14 + 0x0f, 0x8d, 0x6d, 0xfe, 0xff, 0xff, //0x0000759d jge LBB28_215 + //0x000075a3 LBB28_243 + 0x48, 0x8b, 0x45, 0xb8, //0x000075a3 movq $-72(%rbp), %rax + 0x48, 0x83, 0xc0, 0x10, //0x000075a7 addq $16, %rax + 0x4c, 0x8b, 0x55, 0xa8, //0x000075ab movq $-88(%rbp), %r10 + 0x48, 0x89, 0x45, 0xb8, //0x000075af movq %rax, $-72(%rbp) + 0x4c, 0x39, 0xd0, //0x000075b3 cmpq %r10, %rax + 0x48, 0x8b, 0x4d, 0xa0, //0x000075b6 movq $-96(%rbp), %rcx + 0x0f, 0x85, 0xde, 0xf0, 0xff, 0xff, //0x000075ba jne LBB28_2 + //0x000075c0 LBB28_244 + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x000075c0 movl $1, %eax + 0x66, 0x48, 0x0f, 0x6e, 0xc0, //0x000075c5 movq %rax, %xmm0 + 0xf3, 0x0f, 0x7f, 0x01, //0x000075ca movdqu %xmm0, (%rcx) + 0x48, 0x89, 0xcf, //0x000075ce movq %rcx, %rdi + 0x4c, 0x89, 0xde, //0x000075d1 movq %r11, %rsi + 0x4c, 0x89, 0xfa, //0x000075d4 movq %r15, %rdx + 0x31, 0xc9, //0x000075d7 xorl %ecx, %ecx + 0xe8, 0x82, 0xd0, 0xff, 0xff, //0x000075d9 callq _fsm_exec + 0x48, 0x89, 0xc1, //0x000075de movq %rax, %rcx + 0xe9, 0x13, 0x00, 0x00, 0x00, //0x000075e1 jmp LBB28_248 + //0x000075e6 LBB28_245 + 0x49, 0x89, 0x17, //0x000075e6 movq %rdx, (%r15) + //0x000075e9 LBB28_246 + 0x48, 0x89, 0xd0, //0x000075e9 movq %rdx, %rax + //0x000075ec LBB28_247 + 0x48, 0xff, 0xc8, //0x000075ec decq %rax + 0x49, 0x89, 0x07, //0x000075ef movq %rax, (%r15) + 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x000075f2 movq $-2, %rcx + //0x000075f9 LBB28_248 + 0x48, 0x89, 0xc8, //0x000075f9 movq %rcx, %rax + 0x48, 0x83, 0xc4, 0x38, //0x000075fc addq $56, %rsp + 0x5b, //0x00007600 popq %rbx + 0x41, 0x5c, //0x00007601 popq %r12 + 0x41, 0x5d, //0x00007603 popq %r13 + 0x41, 0x5e, //0x00007605 popq %r14 + 0x41, 0x5f, //0x00007607 popq %r15 + 0x5d, //0x00007609 popq %rbp + 0xc3, //0x0000760a retq + //0x0000760b LBB28_249 + 0x3c, 0x5d, //0x0000760b cmpb $93, %al + 0x0f, 0x85, 0xd6, 0xff, 0xff, 0xff, //0x0000760d jne LBB28_246 + 0x48, 0x89, 0xd0, //0x00007613 movq %rdx, %rax + 0xe9, 0x1e, 0x00, 0x00, 0x00, //0x00007616 jmp LBB28_254 + //0x0000761b LBB28_251 + 0x48, 0xff, 0xc8, //0x0000761b decq %rax + 0x49, 0x89, 0x07, //0x0000761e movq %rax, (%r15) + 0x48, 0xc7, 0xc1, 0xde, 0xff, 0xff, 0xff, //0x00007621 movq $-34, %rcx + 0xe9, 0xcc, 0xff, 0xff, 0xff, //0x00007628 jmp LBB28_248 + //0x0000762d LBB28_252 + 0x48, 0x89, 0xd8, //0x0000762d movq %rbx, %rax + //0x00007630 LBB28_253 + 0x80, 0xf9, 0x7d, //0x00007630 cmpb $125, %cl + 0x0f, 0x85, 0xb3, 0xff, 0xff, 0xff, //0x00007633 jne LBB28_247 + //0x00007639 LBB28_254 + 0x48, 0xff, 0xc8, //0x00007639 decq %rax + 0x49, 0x89, 0x07, //0x0000763c movq %rax, (%r15) + 0x48, 0xc7, 0xc1, 0xdf, 0xff, 0xff, 0xff, //0x0000763f movq $-33, %rcx + 0xe9, 0xae, 0xff, 0xff, 0xff, //0x00007646 jmp LBB28_248 + //0x0000764b LBB28_255 + 0x48, 0x8b, 0x45, 0xc0, //0x0000764b movq $-64(%rbp), %rax + 0x48, 0x8b, 0x40, 0x08, //0x0000764f movq $8(%rax), %rax + 0x48, 0x8b, 0x4d, 0xd0, //0x00007653 movq $-48(%rbp), %rcx + 0x48, 0x89, 0x01, //0x00007657 movq %rax, (%rcx) + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x0000765a movq $-1, %rcx + 0xe9, 0x93, 0xff, 0xff, 0xff, //0x00007661 jmp LBB28_248 + //0x00007666 LBB28_256 + 0x48, 0x83, 0xc3, 0x02, //0x00007666 addq $2, %rbx + 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x0000766a movq $-2, %rcx + 0xe9, 0x12, 0x00, 0x00, 0x00, //0x00007671 jmp LBB28_259 + //0x00007676 LBB28_257 + 0x48, 0xff, 0xc3, //0x00007676 incq %rbx + 0x48, 0xc7, 0xc1, 0xfd, 0xff, 0xff, 0xff, //0x00007679 movq $-3, %rcx + 0xe9, 0x03, 0x00, 0x00, 0x00, //0x00007680 jmp LBB28_259 + //0x00007685 LBB28_258 + 0x48, 0xff, 0xc3, //0x00007685 incq %rbx + //0x00007688 LBB28_259 + 0x48, 0x8b, 0x45, 0xd0, //0x00007688 movq $-48(%rbp), %rax + 0x4c, 0x29, 0xcb, //0x0000768c subq %r9, %rbx + 0x48, 0x89, 0x18, //0x0000768f movq %rbx, (%rax) + 0xe9, 0x62, 0xff, 0xff, 0xff, //0x00007692 jmp LBB28_248 + //0x00007697 LBB28_260 + 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x00007697 movq $-2, %rcx + 0xe9, 0x07, 0x00, 0x00, 0x00, //0x0000769e jmp LBB28_262 + //0x000076a3 LBB28_261 + 0x48, 0xc7, 0xc1, 0xfc, 0xff, 0xff, 0xff, //0x000076a3 movq $-4, %rcx + //0x000076aa LBB28_262 + 0x4c, 0x89, 0xd3, //0x000076aa movq %r10, %rbx + 0xe9, 0xd6, 0xff, 0xff, 0xff, //0x000076ad jmp LBB28_259 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000076b2 .p2align 4, 0x90 + //0x000076c0 _validate_utf8 + 0x55, //0x000076c0 pushq %rbp + 0x48, 0x89, 0xe5, //0x000076c1 movq %rsp, %rbp + 0x41, 0x57, //0x000076c4 pushq %r15 + 0x41, 0x56, //0x000076c6 pushq %r14 + 0x41, 0x54, //0x000076c8 pushq %r12 + 0x53, //0x000076ca pushq %rbx + 0x50, //0x000076cb pushq %rax + 0x4c, 0x8b, 0x17, //0x000076cc movq (%rdi), %r10 + 0x4c, 0x8b, 0x5f, 0x08, //0x000076cf movq $8(%rdi), %r11 + 0x48, 0x8b, 0x0e, //0x000076d3 movq (%rsi), %rcx + 0x4c, 0x01, 0xd1, //0x000076d6 addq %r10, %rcx + 0x4f, 0x8d, 0x44, 0x1a, 0xfd, //0x000076d9 leaq $-3(%r10,%r11), %r8 + 0xe9, 0x10, 0x00, 0x00, 0x00, //0x000076de jmp LBB29_1 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000076e3 .p2align 4, 0x90 + //0x000076f0 LBB29_19 + 0x48, 0x01, 0xd9, //0x000076f0 addq %rbx, %rcx + //0x000076f3 LBB29_1 + 0x4c, 0x39, 0xc1, //0x000076f3 cmpq %r8, %rcx + 0x0f, 0x83, 0xe1, 0x00, 0x00, 0x00, //0x000076f6 jae LBB29_2 + 0xbb, 0x01, 0x00, 0x00, 0x00, //0x000076fc movl $1, %ebx + 0x80, 0x39, 0x00, //0x00007701 cmpb $0, (%rcx) + 0x0f, 0x89, 0xe6, 0xff, 0xff, 0xff, //0x00007704 jns LBB29_19 + 0x8b, 0x01, //0x0000770a movl (%rcx), %eax + 0x89, 0xc7, //0x0000770c movl %eax, %edi + 0x81, 0xe7, 0xf0, 0xc0, 0xc0, 0x00, //0x0000770e andl $12632304, %edi + 0x81, 0xff, 0xe0, 0x80, 0x80, 0x00, //0x00007714 cmpl $8421600, %edi + 0x0f, 0x85, 0x30, 0x00, 0x00, 0x00, //0x0000771a jne LBB29_10 + 0x89, 0xc7, //0x00007720 movl %eax, %edi + 0x81, 0xe7, 0x0f, 0x20, 0x00, 0x00, //0x00007722 andl $8207, %edi + 0x81, 0xff, 0x0d, 0x20, 0x00, 0x00, //0x00007728 cmpl $8205, %edi + 0x0f, 0x84, 0x1c, 0x00, 0x00, 0x00, //0x0000772e je LBB29_10 + 0xbb, 0x03, 0x00, 0x00, 0x00, //0x00007734 movl $3, %ebx + 0x85, 0xff, //0x00007739 testl %edi, %edi + 0x0f, 0x85, 0xaf, 0xff, 0xff, 0xff, //0x0000773b jne LBB29_19 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007741 .p2align 4, 0x90 + //0x00007750 LBB29_10 + 0x89, 0xc7, //0x00007750 movl %eax, %edi + 0x81, 0xe7, 0xe0, 0xc0, 0x00, 0x00, //0x00007752 andl $49376, %edi + 0x81, 0xff, 0xc0, 0x80, 0x00, 0x00, //0x00007758 cmpl $32960, %edi + 0x0f, 0x85, 0x10, 0x00, 0x00, 0x00, //0x0000775e jne LBB29_12 + 0x89, 0xc7, //0x00007764 movl %eax, %edi + 0xbb, 0x02, 0x00, 0x00, 0x00, //0x00007766 movl $2, %ebx + 0x83, 0xe7, 0x1e, //0x0000776b andl $30, %edi + 0x0f, 0x85, 0x7c, 0xff, 0xff, 0xff, //0x0000776e jne LBB29_19 + //0x00007774 LBB29_12 + 0x89, 0xc7, //0x00007774 movl %eax, %edi + 0x81, 0xe7, 0xf8, 0xc0, 0xc0, 0xc0, //0x00007776 andl $-1061109512, %edi + 0x81, 0xff, 0xf0, 0x80, 0x80, 0x80, //0x0000777c cmpl $-2139062032, %edi + 0x0f, 0x85, 0x26, 0x00, 0x00, 0x00, //0x00007782 jne LBB29_16 + 0x89, 0xc7, //0x00007788 movl %eax, %edi + 0x81, 0xe7, 0x07, 0x30, 0x00, 0x00, //0x0000778a andl $12295, %edi + 0x0f, 0x84, 0x18, 0x00, 0x00, 0x00, //0x00007790 je LBB29_16 + 0xbb, 0x04, 0x00, 0x00, 0x00, //0x00007796 movl $4, %ebx + 0xa8, 0x04, //0x0000779b testb $4, %al + 0x0f, 0x84, 0x4d, 0xff, 0xff, 0xff, //0x0000779d je LBB29_19 + 0x25, 0x03, 0x30, 0x00, 0x00, //0x000077a3 andl $12291, %eax + 0x0f, 0x84, 0x42, 0xff, 0xff, 0xff, //0x000077a8 je LBB29_19 + //0x000077ae LBB29_16 + 0x48, 0x89, 0xcf, //0x000077ae movq %rcx, %rdi + 0x4c, 0x29, 0xd7, //0x000077b1 subq %r10, %rdi + 0x48, 0x8b, 0x1a, //0x000077b4 movq (%rdx), %rbx + 0x48, 0x81, 0xfb, 0x00, 0x10, 0x00, 0x00, //0x000077b7 cmpq $4096, %rbx + 0x0f, 0x83, 0x87, 0x01, 0x00, 0x00, //0x000077be jae LBB29_17 + 0x48, 0x63, 0xc7, //0x000077c4 movslq %edi, %rax + 0x48, 0x8d, 0x7b, 0x01, //0x000077c7 leaq $1(%rbx), %rdi + 0x48, 0x89, 0x3a, //0x000077cb movq %rdi, (%rdx) + 0x48, 0x89, 0x44, 0xda, 0x08, //0x000077ce movq %rax, $8(%rdx,%rbx,8) + 0xbb, 0x01, 0x00, 0x00, 0x00, //0x000077d3 movl $1, %ebx + 0xe9, 0x13, 0xff, 0xff, 0xff, //0x000077d8 jmp LBB29_19 + //0x000077dd LBB29_2 + 0x4d, 0x01, 0xd3, //0x000077dd addq %r10, %r11 + 0x4c, 0x39, 0xd9, //0x000077e0 cmpq %r11, %rcx + 0x0f, 0x83, 0x3e, 0x01, 0x00, 0x00, //0x000077e3 jae LBB29_36 + 0x4c, 0x8d, 0x45, 0xdc, //0x000077e9 leaq $-36(%rbp), %r8 + 0x4c, 0x8d, 0x4d, 0xda, //0x000077ed leaq $-38(%rbp), %r9 + 0xe9, 0x16, 0x00, 0x00, 0x00, //0x000077f1 jmp LBB29_4 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000077f6 .p2align 4, 0x90 + //0x00007800 LBB29_5 + 0x48, 0xff, 0xc1, //0x00007800 incq %rcx + 0x4c, 0x39, 0xd9, //0x00007803 cmpq %r11, %rcx + 0x0f, 0x83, 0x1b, 0x01, 0x00, 0x00, //0x00007806 jae LBB29_36 + //0x0000780c LBB29_4 + 0x80, 0x39, 0x00, //0x0000780c cmpb $0, (%rcx) + 0x0f, 0x89, 0xeb, 0xff, 0xff, 0xff, //0x0000780f jns LBB29_5 + 0xc6, 0x45, 0xdc, 0x00, //0x00007815 movb $0, $-36(%rbp) + 0xc6, 0x45, 0xda, 0x00, //0x00007819 movb $0, $-38(%rbp) + 0x4c, 0x89, 0xdb, //0x0000781d movq %r11, %rbx + 0x48, 0x29, 0xcb, //0x00007820 subq %rcx, %rbx + 0x48, 0x83, 0xfb, 0x02, //0x00007823 cmpq $2, %rbx + 0x0f, 0x82, 0x35, 0x00, 0x00, 0x00, //0x00007827 jb LBB29_21 + 0x44, 0x0f, 0xb6, 0x21, //0x0000782d movzbl (%rcx), %r12d + 0x44, 0x0f, 0xb6, 0x71, 0x01, //0x00007831 movzbl $1(%rcx), %r14d + 0x44, 0x88, 0x65, 0xdc, //0x00007836 movb %r12b, $-36(%rbp) + 0x4c, 0x8d, 0x79, 0x02, //0x0000783a leaq $2(%rcx), %r15 + 0x48, 0x83, 0xc3, 0xfe, //0x0000783e addq $-2, %rbx + 0x4c, 0x89, 0xcf, //0x00007842 movq %r9, %rdi + 0x48, 0x85, 0xdb, //0x00007845 testq %rbx, %rbx + 0x0f, 0x84, 0x29, 0x00, 0x00, 0x00, //0x00007848 je LBB29_24 + //0x0000784e LBB29_25 + 0x41, 0x0f, 0xb6, 0x07, //0x0000784e movzbl (%r15), %eax + 0x88, 0x07, //0x00007852 movb %al, (%rdi) + 0x44, 0x0f, 0xb6, 0x65, 0xdc, //0x00007854 movzbl $-36(%rbp), %r12d + 0x0f, 0xb6, 0x7d, 0xda, //0x00007859 movzbl $-38(%rbp), %edi + 0xe9, 0x17, 0x00, 0x00, 0x00, //0x0000785d jmp LBB29_26 + //0x00007862 LBB29_21 + 0x45, 0x31, 0xe4, //0x00007862 xorl %r12d, %r12d + 0x45, 0x31, 0xf6, //0x00007865 xorl %r14d, %r14d + 0x4c, 0x89, 0xc7, //0x00007868 movq %r8, %rdi + 0x49, 0x89, 0xcf, //0x0000786b movq %rcx, %r15 + 0x48, 0x85, 0xdb, //0x0000786e testq %rbx, %rbx + 0x0f, 0x85, 0xd7, 0xff, 0xff, 0xff, //0x00007871 jne LBB29_25 + //0x00007877 LBB29_24 + 0x31, 0xff, //0x00007877 xorl %edi, %edi + //0x00007879 LBB29_26 + 0x40, 0x0f, 0xb6, 0xc7, //0x00007879 movzbl %dil, %eax + 0xc1, 0xe0, 0x10, //0x0000787d shll $16, %eax + 0x41, 0x0f, 0xb6, 0xde, //0x00007880 movzbl %r14b, %ebx + 0xc1, 0xe3, 0x08, //0x00007884 shll $8, %ebx + 0x41, 0x0f, 0xb6, 0xfc, //0x00007887 movzbl %r12b, %edi + 0x09, 0xdf, //0x0000788b orl %ebx, %edi + 0x09, 0xf8, //0x0000788d orl %edi, %eax + 0x25, 0xf0, 0xc0, 0xc0, 0x00, //0x0000788f andl $12632304, %eax + 0x3d, 0xe0, 0x80, 0x80, 0x00, //0x00007894 cmpl $8421600, %eax + 0x0f, 0x85, 0x21, 0x00, 0x00, 0x00, //0x00007899 jne LBB29_29 + 0x89, 0xf8, //0x0000789f movl %edi, %eax + 0x25, 0x0f, 0x20, 0x00, 0x00, //0x000078a1 andl $8207, %eax + 0x3d, 0x0d, 0x20, 0x00, 0x00, //0x000078a6 cmpl $8205, %eax + 0x0f, 0x84, 0x0f, 0x00, 0x00, 0x00, //0x000078ab je LBB29_29 + 0xbb, 0x03, 0x00, 0x00, 0x00, //0x000078b1 movl $3, %ebx + 0x85, 0xc0, //0x000078b6 testl %eax, %eax + 0x0f, 0x85, 0x23, 0x00, 0x00, 0x00, //0x000078b8 jne LBB29_34 + 0x90, 0x90, //0x000078be .p2align 4, 0x90 + //0x000078c0 LBB29_29 + 0x41, 0xf6, 0xc4, 0x1e, //0x000078c0 testb $30, %r12b + 0x0f, 0x84, 0x28, 0x00, 0x00, 0x00, //0x000078c4 je LBB29_31 + 0x81, 0xe7, 0xe0, 0xc0, 0x00, 0x00, //0x000078ca andl $49376, %edi + 0xbb, 0x02, 0x00, 0x00, 0x00, //0x000078d0 movl $2, %ebx + 0x81, 0xff, 0xc0, 0x80, 0x00, 0x00, //0x000078d5 cmpl $32960, %edi + 0x0f, 0x85, 0x11, 0x00, 0x00, 0x00, //0x000078db jne LBB29_31 + //0x000078e1 LBB29_34 + 0x48, 0x01, 0xd9, //0x000078e1 addq %rbx, %rcx + 0x4c, 0x39, 0xd9, //0x000078e4 cmpq %r11, %rcx + 0x0f, 0x82, 0x1f, 0xff, 0xff, 0xff, //0x000078e7 jb LBB29_4 + 0xe9, 0x35, 0x00, 0x00, 0x00, //0x000078ed jmp LBB29_36 + //0x000078f2 LBB29_31 + 0x48, 0x89, 0xc8, //0x000078f2 movq %rcx, %rax + 0x4c, 0x29, 0xd0, //0x000078f5 subq %r10, %rax + 0x48, 0x8b, 0x3a, //0x000078f8 movq (%rdx), %rdi + 0x48, 0x81, 0xff, 0x00, 0x10, 0x00, 0x00, //0x000078fb cmpq $4096, %rdi + 0x0f, 0x83, 0x34, 0x00, 0x00, 0x00, //0x00007902 jae LBB29_32 + 0x48, 0x98, //0x00007908 cltq + 0x48, 0x8d, 0x5f, 0x01, //0x0000790a leaq $1(%rdi), %rbx + 0x48, 0x89, 0x1a, //0x0000790e movq %rbx, (%rdx) + 0x48, 0x89, 0x44, 0xfa, 0x08, //0x00007911 movq %rax, $8(%rdx,%rdi,8) + 0xbb, 0x01, 0x00, 0x00, 0x00, //0x00007916 movl $1, %ebx + 0x48, 0x01, 0xd9, //0x0000791b addq %rbx, %rcx + 0x4c, 0x39, 0xd9, //0x0000791e cmpq %r11, %rcx + 0x0f, 0x82, 0xe5, 0xfe, 0xff, 0xff, //0x00007921 jb LBB29_4 + //0x00007927 LBB29_36 + 0x4c, 0x29, 0xd1, //0x00007927 subq %r10, %rcx + 0x48, 0x89, 0x0e, //0x0000792a movq %rcx, (%rsi) + 0x31, 0xc0, //0x0000792d xorl %eax, %eax + //0x0000792f LBB29_37 + 0x48, 0x83, 0xc4, 0x08, //0x0000792f addq $8, %rsp + 0x5b, //0x00007933 popq %rbx + 0x41, 0x5c, //0x00007934 popq %r12 + 0x41, 0x5e, //0x00007936 popq %r14 + 0x41, 0x5f, //0x00007938 popq %r15 + 0x5d, //0x0000793a popq %rbp + 0xc3, //0x0000793b retq + //0x0000793c LBB29_32 + 0x48, 0x89, 0x06, //0x0000793c movq %rax, (%rsi) + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x0000793f movq $-1, %rax + 0xe9, 0xe4, 0xff, 0xff, 0xff, //0x00007946 jmp LBB29_37 + //0x0000794b LBB29_17 + 0x48, 0x89, 0x3e, //0x0000794b movq %rdi, (%rsi) + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x0000794e movq $-1, %rax + 0xe9, 0xd5, 0xff, 0xff, 0xff, //0x00007955 jmp LBB29_37 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000795a .p2align 4, 0x90 + //0x00007960 _validate_utf8_fast + 0x55, //0x00007960 pushq %rbp + 0x48, 0x89, 0xe5, //0x00007961 movq %rsp, %rbp + 0x53, //0x00007964 pushq %rbx + 0x50, //0x00007965 pushq %rax + 0x4c, 0x8b, 0x17, //0x00007966 movq (%rdi), %r10 + 0x4c, 0x8b, 0x5f, 0x08, //0x00007969 movq $8(%rdi), %r11 + 0x4b, 0x8d, 0x74, 0x1a, 0xfd, //0x0000796d leaq $-3(%r10,%r11), %rsi + 0x4c, 0x89, 0xd0, //0x00007972 movq %r10, %rax + 0x49, 0x39, 0xf2, //0x00007975 cmpq %rsi, %r10 + 0x0f, 0x83, 0xe0, 0x00, 0x00, 0x00, //0x00007978 jae LBB30_14 + 0x4c, 0x89, 0xd0, //0x0000797e movq %r10, %rax + 0xe9, 0x16, 0x00, 0x00, 0x00, //0x00007981 jmp LBB30_3 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007986 .p2align 4, 0x90 + //0x00007990 LBB30_2 + 0x48, 0x01, 0xd0, //0x00007990 addq %rdx, %rax + 0x48, 0x39, 0xf0, //0x00007993 cmpq %rsi, %rax + 0x0f, 0x83, 0xc2, 0x00, 0x00, 0x00, //0x00007996 jae LBB30_14 + //0x0000799c LBB30_3 + 0xba, 0x01, 0x00, 0x00, 0x00, //0x0000799c movl $1, %edx + 0x80, 0x38, 0x00, //0x000079a1 cmpb $0, (%rax) + 0x0f, 0x89, 0xe6, 0xff, 0xff, 0xff, //0x000079a4 jns LBB30_2 + 0x8b, 0x38, //0x000079aa movl (%rax), %edi + 0x89, 0xf9, //0x000079ac movl %edi, %ecx + 0x81, 0xe1, 0xf0, 0xc0, 0xc0, 0x00, //0x000079ae andl $12632304, %ecx + 0x81, 0xf9, 0xe0, 0x80, 0x80, 0x00, //0x000079b4 cmpl $8421600, %ecx + 0x0f, 0x85, 0x30, 0x00, 0x00, 0x00, //0x000079ba jne LBB30_7 + 0x89, 0xf9, //0x000079c0 movl %edi, %ecx + 0x81, 0xe1, 0x0f, 0x20, 0x00, 0x00, //0x000079c2 andl $8207, %ecx + 0x81, 0xf9, 0x0d, 0x20, 0x00, 0x00, //0x000079c8 cmpl $8205, %ecx + 0x0f, 0x84, 0x1c, 0x00, 0x00, 0x00, //0x000079ce je LBB30_7 + 0xba, 0x03, 0x00, 0x00, 0x00, //0x000079d4 movl $3, %edx + 0x85, 0xc9, //0x000079d9 testl %ecx, %ecx + 0x0f, 0x85, 0xaf, 0xff, 0xff, 0xff, //0x000079db jne LBB30_2 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000079e1 .p2align 4, 0x90 + //0x000079f0 LBB30_7 + 0x89, 0xf9, //0x000079f0 movl %edi, %ecx + 0x81, 0xe1, 0xe0, 0xc0, 0x00, 0x00, //0x000079f2 andl $49376, %ecx + 0x81, 0xf9, 0xc0, 0x80, 0x00, 0x00, //0x000079f8 cmpl $32960, %ecx + 0x0f, 0x85, 0x10, 0x00, 0x00, 0x00, //0x000079fe jne LBB30_9 + 0x89, 0xf9, //0x00007a04 movl %edi, %ecx + 0xba, 0x02, 0x00, 0x00, 0x00, //0x00007a06 movl $2, %edx + 0x83, 0xe1, 0x1e, //0x00007a0b andl $30, %ecx + 0x0f, 0x85, 0x7c, 0xff, 0xff, 0xff, //0x00007a0e jne LBB30_2 + //0x00007a14 LBB30_9 + 0x89, 0xf9, //0x00007a14 movl %edi, %ecx + 0x81, 0xe1, 0xf8, 0xc0, 0xc0, 0xc0, //0x00007a16 andl $-1061109512, %ecx + 0x81, 0xf9, 0xf0, 0x80, 0x80, 0x80, //0x00007a1c cmpl $-2139062032, %ecx + 0x0f, 0x85, 0x29, 0x00, 0x00, 0x00, //0x00007a22 jne LBB30_13 + 0x89, 0xf9, //0x00007a28 movl %edi, %ecx + 0x81, 0xe1, 0x07, 0x30, 0x00, 0x00, //0x00007a2a andl $12295, %ecx + 0x0f, 0x84, 0x1b, 0x00, 0x00, 0x00, //0x00007a30 je LBB30_13 + 0xba, 0x04, 0x00, 0x00, 0x00, //0x00007a36 movl $4, %edx + 0x40, 0xf6, 0xc7, 0x04, //0x00007a3b testb $4, %dil + 0x0f, 0x84, 0x4b, 0xff, 0xff, 0xff, //0x00007a3f je LBB30_2 + 0x81, 0xe7, 0x03, 0x30, 0x00, 0x00, //0x00007a45 andl $12291, %edi + 0x0f, 0x84, 0x3f, 0xff, 0xff, 0xff, //0x00007a4b je LBB30_2 + //0x00007a51 LBB30_13 + 0x48, 0xf7, 0xd0, //0x00007a51 notq %rax + 0x4c, 0x01, 0xd0, //0x00007a54 addq %r10, %rax + 0x48, 0x83, 0xc4, 0x08, //0x00007a57 addq $8, %rsp + 0x5b, //0x00007a5b popq %rbx + 0x5d, //0x00007a5c popq %rbp + 0xc3, //0x00007a5d retq + //0x00007a5e LBB30_14 + 0x4d, 0x01, 0xd3, //0x00007a5e addq %r10, %r11 + 0x4c, 0x39, 0xd8, //0x00007a61 cmpq %r11, %rax + 0x0f, 0x83, 0x03, 0x01, 0x00, 0x00, //0x00007a64 jae LBB30_30 + 0x4c, 0x8d, 0x45, 0xf4, //0x00007a6a leaq $-12(%rbp), %r8 + 0x4c, 0x8d, 0x4d, 0xf2, //0x00007a6e leaq $-14(%rbp), %r9 + 0xe9, 0x15, 0x00, 0x00, 0x00, //0x00007a72 jmp LBB30_17 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007a77 .p2align 4, 0x90 + //0x00007a80 LBB30_16 + 0x48, 0xff, 0xc0, //0x00007a80 incq %rax + 0x4c, 0x39, 0xd8, //0x00007a83 cmpq %r11, %rax + 0x0f, 0x83, 0xe1, 0x00, 0x00, 0x00, //0x00007a86 jae LBB30_30 + //0x00007a8c LBB30_17 + 0x80, 0x38, 0x00, //0x00007a8c cmpb $0, (%rax) + 0x0f, 0x89, 0xeb, 0xff, 0xff, 0xff, //0x00007a8f jns LBB30_16 + 0xc6, 0x45, 0xf4, 0x00, //0x00007a95 movb $0, $-12(%rbp) + 0xc6, 0x45, 0xf2, 0x00, //0x00007a99 movb $0, $-14(%rbp) + 0x4c, 0x89, 0xda, //0x00007a9d movq %r11, %rdx + 0x48, 0x29, 0xc2, //0x00007aa0 subq %rax, %rdx + 0x48, 0x83, 0xfa, 0x02, //0x00007aa3 cmpq $2, %rdx + 0x0f, 0x82, 0x31, 0x00, 0x00, 0x00, //0x00007aa7 jb LBB30_21 + 0x0f, 0xb6, 0x30, //0x00007aad movzbl (%rax), %esi + 0x0f, 0xb6, 0x78, 0x01, //0x00007ab0 movzbl $1(%rax), %edi + 0x40, 0x88, 0x75, 0xf4, //0x00007ab4 movb %sil, $-12(%rbp) + 0x48, 0x8d, 0x48, 0x02, //0x00007ab8 leaq $2(%rax), %rcx + 0x48, 0x83, 0xc2, 0xfe, //0x00007abc addq $-2, %rdx + 0x4c, 0x89, 0xcb, //0x00007ac0 movq %r9, %rbx + 0x48, 0x85, 0xd2, //0x00007ac3 testq %rdx, %rdx + 0x0f, 0x84, 0x25, 0x00, 0x00, 0x00, //0x00007ac6 je LBB30_22 + //0x00007acc LBB30_20 + 0x0f, 0xb6, 0x09, //0x00007acc movzbl (%rcx), %ecx + 0x88, 0x0b, //0x00007acf movb %cl, (%rbx) + 0x0f, 0xb6, 0x75, 0xf4, //0x00007ad1 movzbl $-12(%rbp), %esi + 0x0f, 0xb6, 0x4d, 0xf2, //0x00007ad5 movzbl $-14(%rbp), %ecx + 0xe9, 0x15, 0x00, 0x00, 0x00, //0x00007ad9 jmp LBB30_23 + //0x00007ade LBB30_21 + 0x31, 0xf6, //0x00007ade xorl %esi, %esi + 0x31, 0xff, //0x00007ae0 xorl %edi, %edi + 0x4c, 0x89, 0xc3, //0x00007ae2 movq %r8, %rbx + 0x48, 0x89, 0xc1, //0x00007ae5 movq %rax, %rcx + 0x48, 0x85, 0xd2, //0x00007ae8 testq %rdx, %rdx + 0x0f, 0x85, 0xdb, 0xff, 0xff, 0xff, //0x00007aeb jne LBB30_20 + //0x00007af1 LBB30_22 + 0x31, 0xc9, //0x00007af1 xorl %ecx, %ecx + //0x00007af3 LBB30_23 + 0x0f, 0xb6, 0xc9, //0x00007af3 movzbl %cl, %ecx + 0xc1, 0xe1, 0x10, //0x00007af6 shll $16, %ecx + 0x40, 0x0f, 0xb6, 0xff, //0x00007af9 movzbl %dil, %edi + 0xc1, 0xe7, 0x08, //0x00007afd shll $8, %edi + 0x40, 0x0f, 0xb6, 0xd6, //0x00007b00 movzbl %sil, %edx + 0x09, 0xfa, //0x00007b04 orl %edi, %edx + 0x09, 0xd1, //0x00007b06 orl %edx, %ecx + 0x81, 0xe1, 0xf0, 0xc0, 0xc0, 0x00, //0x00007b08 andl $12632304, %ecx + 0x81, 0xf9, 0xe0, 0x80, 0x80, 0x00, //0x00007b0e cmpl $8421600, %ecx + 0x0f, 0x85, 0x26, 0x00, 0x00, 0x00, //0x00007b14 jne LBB30_26 + 0x89, 0xd7, //0x00007b1a movl %edx, %edi + 0x81, 0xe7, 0x0f, 0x20, 0x00, 0x00, //0x00007b1c andl $8207, %edi + 0x81, 0xff, 0x0d, 0x20, 0x00, 0x00, //0x00007b22 cmpl $8205, %edi + 0x0f, 0x84, 0x12, 0x00, 0x00, 0x00, //0x00007b28 je LBB30_26 + 0xb9, 0x03, 0x00, 0x00, 0x00, //0x00007b2e movl $3, %ecx + 0x85, 0xff, //0x00007b33 testl %edi, %edi + 0x0f, 0x85, 0x26, 0x00, 0x00, 0x00, //0x00007b35 jne LBB30_28 + 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007b3b .p2align 4, 0x90 + //0x00007b40 LBB30_26 + 0x40, 0xf6, 0xc6, 0x1e, //0x00007b40 testb $30, %sil + 0x0f, 0x84, 0x07, 0xff, 0xff, 0xff, //0x00007b44 je LBB30_13 + 0x81, 0xe2, 0xe0, 0xc0, 0x00, 0x00, //0x00007b4a andl $49376, %edx + 0xb9, 0x02, 0x00, 0x00, 0x00, //0x00007b50 movl $2, %ecx + 0x81, 0xfa, 0xc0, 0x80, 0x00, 0x00, //0x00007b55 cmpl $32960, %edx + 0x0f, 0x85, 0xf0, 0xfe, 0xff, 0xff, //0x00007b5b jne LBB30_13 + //0x00007b61 LBB30_28 + 0x48, 0x01, 0xc8, //0x00007b61 addq %rcx, %rax + 0x4c, 0x39, 0xd8, //0x00007b64 cmpq %r11, %rax + 0x0f, 0x82, 0x1f, 0xff, 0xff, 0xff, //0x00007b67 jb LBB30_17 + //0x00007b6d LBB30_30 + 0x31, 0xc0, //0x00007b6d xorl %eax, %eax + 0x48, 0x83, 0xc4, 0x08, //0x00007b6f addq $8, %rsp + 0x5b, //0x00007b73 popq %rbx + 0x5d, //0x00007b74 popq %rbp + 0xc3, //0x00007b75 retq + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007b76 .p2align 4, 0x00 + //0x00007b80 LCPI31_0 + 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, //0x00007b80 QUAD $0x3030303030303030; QUAD $0x3030303030303030 // .space 16, '0000000000000000' + //0x00007b90 .p2align 4, 0x90 + //0x00007b90 _f32toa + 0x55, //0x00007b90 pushq %rbp + 0x48, 0x89, 0xe5, //0x00007b91 movq %rsp, %rbp + 0x41, 0x57, //0x00007b94 pushq %r15 + 0x41, 0x56, //0x00007b96 pushq %r14 + 0x41, 0x55, //0x00007b98 pushq %r13 + 0x41, 0x54, //0x00007b9a pushq %r12 + 0x53, //0x00007b9c pushq %rbx + 0x66, 0x0f, 0x7e, 0xc0, //0x00007b9d movd %xmm0, %eax + 0x89, 0xc1, //0x00007ba1 movl %eax, %ecx + 0xc1, 0xe9, 0x17, //0x00007ba3 shrl $23, %ecx + 0x0f, 0xb6, 0xd9, //0x00007ba6 movzbl %cl, %ebx + 0x81, 0xfb, 0xff, 0x00, 0x00, 0x00, //0x00007ba9 cmpl $255, %ebx + 0x0f, 0x84, 0xbc, 0x0c, 0x00, 0x00, //0x00007baf je LBB31_139 + 0xc6, 0x07, 0x2d, //0x00007bb5 movb $45, (%rdi) + 0x41, 0x89, 0xc1, //0x00007bb8 movl %eax, %r9d + 0x41, 0xc1, 0xe9, 0x1f, //0x00007bbb shrl $31, %r9d + 0x4e, 0x8d, 0x04, 0x0f, //0x00007bbf leaq (%rdi,%r9), %r8 + 0xa9, 0xff, 0xff, 0xff, 0x7f, //0x00007bc3 testl $2147483647, %eax + 0x0f, 0x84, 0xc6, 0x01, 0x00, 0x00, //0x00007bc8 je LBB31_14 + 0x25, 0xff, 0xff, 0x7f, 0x00, //0x00007bce andl $8388607, %eax + 0x85, 0xdb, //0x00007bd3 testl %ebx, %ebx + 0x0f, 0x84, 0x9e, 0x0c, 0x00, 0x00, //0x00007bd5 je LBB31_140 + 0x8d, 0xb0, 0x00, 0x00, 0x80, 0x00, //0x00007bdb leal $8388608(%rax), %esi + 0x44, 0x8d, 0xbb, 0x6a, 0xff, 0xff, 0xff, //0x00007be1 leal $-150(%rbx), %r15d + 0x8d, 0x4b, 0x81, //0x00007be8 leal $-127(%rbx), %ecx + 0x83, 0xf9, 0x17, //0x00007beb cmpl $23, %ecx + 0x0f, 0x87, 0x1b, 0x00, 0x00, 0x00, //0x00007bee ja LBB31_5 + 0xb9, 0x96, 0x00, 0x00, 0x00, //0x00007bf4 movl $150, %ecx + 0x29, 0xd9, //0x00007bf9 subl %ebx, %ecx + 0x48, 0xc7, 0xc2, 0xff, 0xff, 0xff, 0xff, //0x00007bfb movq $-1, %rdx + 0x48, 0xd3, 0xe2, //0x00007c02 shlq %cl, %rdx + 0xf7, 0xd2, //0x00007c05 notl %edx + 0x85, 0xf2, //0x00007c07 testl %esi, %edx + 0x0f, 0x84, 0x12, 0x04, 0x00, 0x00, //0x00007c09 je LBB31_32 + //0x00007c0f LBB31_5 + 0x41, 0x89, 0xf6, //0x00007c0f movl %esi, %r14d + 0x41, 0x83, 0xe6, 0x01, //0x00007c12 andl $1, %r14d + 0x85, 0xc0, //0x00007c16 testl %eax, %eax + 0x0f, 0x94, 0xc0, //0x00007c18 sete %al + 0x83, 0xfb, 0x01, //0x00007c1b cmpl $1, %ebx + 0x0f, 0x97, 0xc1, //0x00007c1e seta %cl + 0x20, 0xc1, //0x00007c21 andb %al, %cl + 0x0f, 0xb6, 0xc9, //0x00007c23 movzbl %cl, %ecx + 0x41, 0x89, 0xf2, //0x00007c26 movl %esi, %r10d + 0x41, 0xc1, 0xe2, 0x02, //0x00007c29 shll $2, %r10d + 0x8d, 0x44, 0xb1, 0xfe, //0x00007c2d leal $-2(%rcx,%rsi,4), %eax + 0x45, 0x69, 0xdf, 0x13, 0x44, 0x13, 0x00, //0x00007c31 imull $1262611, %r15d, %r11d + 0x31, 0xd2, //0x00007c38 xorl %edx, %edx + 0x84, 0xc9, //0x00007c3a testb %cl, %cl + 0xb9, 0xff, 0xfe, 0x07, 0x00, //0x00007c3c movl $524031, %ecx + 0x0f, 0x44, 0xca, //0x00007c41 cmovel %edx, %ecx + 0x41, 0x29, 0xcb, //0x00007c44 subl %ecx, %r11d + 0x41, 0xc1, 0xfb, 0x16, //0x00007c47 sarl $22, %r11d + 0x41, 0x69, 0xcb, 0xb1, 0x6c, 0xe5, 0xff, //0x00007c4b imull $-1741647, %r11d, %ecx + 0xc1, 0xe9, 0x13, //0x00007c52 shrl $19, %ecx + 0x44, 0x01, 0xf9, //0x00007c55 addl %r15d, %ecx + 0xba, 0x1f, 0x00, 0x00, 0x00, //0x00007c58 movl $31, %edx + 0x44, 0x29, 0xda, //0x00007c5d subl %r11d, %edx + 0x48, 0x63, 0xd2, //0x00007c60 movslq %edx, %rdx + 0x48, 0x8d, 0x1d, 0x86, 0xb8, 0x00, 0x00, //0x00007c63 leaq $47238(%rip), %rbx /* _pow10_ceil_sig_f32.g+0(%rip) */ + 0xfe, 0xc1, //0x00007c6a incb %cl + 0xd3, 0xe0, //0x00007c6c shll %cl, %eax + 0x4c, 0x8b, 0x24, 0xd3, //0x00007c6e movq (%rbx,%rdx,8), %r12 + 0x49, 0xf7, 0xe4, //0x00007c72 mulq %r12 + 0x48, 0xc1, 0xe8, 0x20, //0x00007c75 shrq $32, %rax + 0x31, 0xdb, //0x00007c79 xorl %ebx, %ebx + 0x83, 0xf8, 0x01, //0x00007c7b cmpl $1, %eax + 0x0f, 0x97, 0xc3, //0x00007c7e seta %bl + 0x41, 0xd3, 0xe2, //0x00007c81 shll %cl, %r10d + 0x09, 0xd3, //0x00007c84 orl %edx, %ebx + 0x4c, 0x89, 0xd0, //0x00007c86 movq %r10, %rax + 0x49, 0xf7, 0xe4, //0x00007c89 mulq %r12 + 0x49, 0x89, 0xd2, //0x00007c8c movq %rdx, %r10 + 0x48, 0xc1, 0xe8, 0x20, //0x00007c8f shrq $32, %rax + 0x45, 0x31, 0xff, //0x00007c93 xorl %r15d, %r15d + 0x83, 0xf8, 0x01, //0x00007c96 cmpl $1, %eax + 0x41, 0x0f, 0x97, 0xc7, //0x00007c99 seta %r15b + 0x8d, 0x04, 0xb5, 0x02, 0x00, 0x00, 0x00, //0x00007c9d leal $2(,%rsi,4), %eax + 0xd3, 0xe0, //0x00007ca4 shll %cl, %eax + 0x45, 0x09, 0xd7, //0x00007ca6 orl %r10d, %r15d + 0x49, 0xf7, 0xe4, //0x00007ca9 mulq %r12 + 0x48, 0xc1, 0xe8, 0x20, //0x00007cac shrq $32, %rax + 0x31, 0xc9, //0x00007cb0 xorl %ecx, %ecx + 0x83, 0xf8, 0x01, //0x00007cb2 cmpl $1, %eax + 0x0f, 0x97, 0xc1, //0x00007cb5 seta %cl + 0x09, 0xd1, //0x00007cb8 orl %edx, %ecx + 0x44, 0x01, 0xf3, //0x00007cba addl %r14d, %ebx + 0x44, 0x29, 0xf1, //0x00007cbd subl %r14d, %ecx + 0x41, 0x83, 0xff, 0x28, //0x00007cc0 cmpl $40, %r15d + 0x0f, 0x82, 0x9a, 0x00, 0x00, 0x00, //0x00007cc4 jb LBB31_12 + 0x44, 0x89, 0xd2, //0x00007cca movl %r10d, %edx + 0xb8, 0xcd, 0xcc, 0xcc, 0xcc, //0x00007ccd movl $3435973837, %eax + 0x48, 0x0f, 0xaf, 0xc2, //0x00007cd2 imulq %rdx, %rax + 0x48, 0xc1, 0xe8, 0x25, //0x00007cd6 shrq $37, %rax + 0x41, 0x89, 0xde, //0x00007cda movl %ebx, %r14d + 0x48, 0x8d, 0x34, 0xc5, 0x00, 0x00, 0x00, 0x00, //0x00007cdd leaq (,%rax,8), %rsi + 0x48, 0x8d, 0x14, 0xb6, //0x00007ce5 leaq (%rsi,%rsi,4), %rdx + 0x4c, 0x39, 0xf2, //0x00007ce9 cmpq %r14, %rdx + 0x41, 0x0f, 0x93, 0xc4, //0x00007cec setae %r12b + 0x4c, 0x8d, 0x74, 0xb6, 0x28, //0x00007cf0 leaq $40(%rsi,%rsi,4), %r14 + 0x89, 0xce, //0x00007cf5 movl %ecx, %esi + 0x49, 0x39, 0xf6, //0x00007cf7 cmpq %rsi, %r14 + 0x0f, 0x96, 0xc2, //0x00007cfa setbe %dl + 0x41, 0x38, 0xd4, //0x00007cfd cmpb %dl, %r12b + 0x0f, 0x84, 0x5e, 0x00, 0x00, 0x00, //0x00007d00 je LBB31_12 + 0x45, 0x31, 0xed, //0x00007d06 xorl %r13d, %r13d + 0x49, 0x39, 0xf6, //0x00007d09 cmpq %rsi, %r14 + 0x41, 0x0f, 0x96, 0xc5, //0x00007d0c setbe %r13b + 0x41, 0x01, 0xc5, //0x00007d10 addl %eax, %r13d + 0x41, 0xff, 0xc3, //0x00007d13 incl %r11d + 0x41, 0x81, 0xfd, 0xa0, 0x86, 0x01, 0x00, //0x00007d16 cmpl $100000, %r13d + 0x0f, 0x83, 0xb0, 0x00, 0x00, 0x00, //0x00007d1d jae LBB31_18 + //0x00007d23 LBB31_8 + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00007d23 movl $1, %eax + 0x41, 0x83, 0xfd, 0x0a, //0x00007d28 cmpl $10, %r13d + 0x0f, 0x82, 0xd4, 0x00, 0x00, 0x00, //0x00007d2c jb LBB31_22 + 0xb8, 0x02, 0x00, 0x00, 0x00, //0x00007d32 movl $2, %eax + 0x41, 0x83, 0xfd, 0x64, //0x00007d37 cmpl $100, %r13d + 0x0f, 0x82, 0xc5, 0x00, 0x00, 0x00, //0x00007d3b jb LBB31_22 + 0xb8, 0x03, 0x00, 0x00, 0x00, //0x00007d41 movl $3, %eax + 0x41, 0x81, 0xfd, 0xe8, 0x03, 0x00, 0x00, //0x00007d46 cmpl $1000, %r13d + 0x0f, 0x82, 0xb3, 0x00, 0x00, 0x00, //0x00007d4d jb LBB31_22 + 0x41, 0x81, 0xfd, 0x10, 0x27, 0x00, 0x00, //0x00007d53 cmpl $10000, %r13d + 0xb8, 0x05, 0x00, 0x00, 0x00, //0x00007d5a movl $5, %eax + 0xe9, 0x9f, 0x00, 0x00, 0x00, //0x00007d5f jmp LBB31_21 + //0x00007d64 LBB31_12 + 0x4d, 0x89, 0xd6, //0x00007d64 movq %r10, %r14 + 0x49, 0xc1, 0xee, 0x02, //0x00007d67 shrq $2, %r14 + 0x44, 0x89, 0xd6, //0x00007d6b movl %r10d, %esi + 0x83, 0xe6, 0xfc, //0x00007d6e andl $-4, %esi + 0x39, 0xf3, //0x00007d71 cmpl %esi, %ebx + 0x0f, 0x96, 0xc2, //0x00007d73 setbe %dl + 0x8d, 0x5e, 0x04, //0x00007d76 leal $4(%rsi), %ebx + 0x39, 0xcb, //0x00007d79 cmpl %ecx, %ebx + 0x0f, 0x96, 0xc0, //0x00007d7b setbe %al + 0x38, 0xc2, //0x00007d7e cmpb %al, %dl + 0x0f, 0x84, 0x1d, 0x00, 0x00, 0x00, //0x00007d80 je LBB31_15 + 0x45, 0x31, 0xed, //0x00007d86 xorl %r13d, %r13d + 0x39, 0xcb, //0x00007d89 cmpl %ecx, %ebx + 0x41, 0x0f, 0x96, 0xc5, //0x00007d8b setbe %r13b + 0xe9, 0x2f, 0x00, 0x00, 0x00, //0x00007d8f jmp LBB31_17 + //0x00007d94 LBB31_14 + 0x41, 0xc6, 0x00, 0x30, //0x00007d94 movb $48, (%r8) + 0x41, 0x29, 0xf8, //0x00007d98 subl %edi, %r8d + 0x41, 0xff, 0xc0, //0x00007d9b incl %r8d + 0xe9, 0xc0, 0x0a, 0x00, 0x00, //0x00007d9e jmp LBB31_138 + //0x00007da3 LBB31_15 + 0x83, 0xce, 0x02, //0x00007da3 orl $2, %esi + 0x41, 0xbd, 0x01, 0x00, 0x00, 0x00, //0x00007da6 movl $1, %r13d + 0x41, 0x39, 0xf7, //0x00007dac cmpl %esi, %r15d + 0x0f, 0x87, 0x0e, 0x00, 0x00, 0x00, //0x00007daf ja LBB31_17 + 0x0f, 0x94, 0xc0, //0x00007db5 sete %al + 0x41, 0xc0, 0xea, 0x02, //0x00007db8 shrb $2, %r10b + 0x41, 0x20, 0xc2, //0x00007dbc andb %al, %r10b + 0x45, 0x0f, 0xb6, 0xea, //0x00007dbf movzbl %r10b, %r13d + //0x00007dc3 LBB31_17 + 0x45, 0x01, 0xf5, //0x00007dc3 addl %r14d, %r13d + 0x41, 0x81, 0xfd, 0xa0, 0x86, 0x01, 0x00, //0x00007dc6 cmpl $100000, %r13d + 0x0f, 0x82, 0x50, 0xff, 0xff, 0xff, //0x00007dcd jb LBB31_8 + //0x00007dd3 LBB31_18 + 0xb8, 0x06, 0x00, 0x00, 0x00, //0x00007dd3 movl $6, %eax + 0x41, 0x81, 0xfd, 0x40, 0x42, 0x0f, 0x00, //0x00007dd8 cmpl $1000000, %r13d + 0x0f, 0x82, 0x21, 0x00, 0x00, 0x00, //0x00007ddf jb LBB31_22 + 0xb8, 0x07, 0x00, 0x00, 0x00, //0x00007de5 movl $7, %eax + 0x41, 0x81, 0xfd, 0x80, 0x96, 0x98, 0x00, //0x00007dea cmpl $10000000, %r13d + 0x0f, 0x82, 0x0f, 0x00, 0x00, 0x00, //0x00007df1 jb LBB31_22 + 0x41, 0x81, 0xfd, 0x00, 0xe1, 0xf5, 0x05, //0x00007df7 cmpl $100000000, %r13d + 0xb8, 0x09, 0x00, 0x00, 0x00, //0x00007dfe movl $9, %eax + //0x00007e03 LBB31_21 + 0x83, 0xd8, 0x00, //0x00007e03 sbbl $0, %eax + //0x00007e06 LBB31_22 + 0x46, 0x8d, 0x14, 0x18, //0x00007e06 leal (%rax,%r11), %r10d + 0x42, 0x8d, 0x4c, 0x18, 0x05, //0x00007e0a leal $5(%rax,%r11), %ecx + 0x83, 0xf9, 0x1b, //0x00007e0f cmpl $27, %ecx + 0x0f, 0x82, 0x77, 0x00, 0x00, 0x00, //0x00007e12 jb LBB31_26 + 0x89, 0xc0, //0x00007e18 movl %eax, %eax + 0x49, 0x8d, 0x5c, 0x00, 0x01, //0x00007e1a leaq $1(%r8,%rax), %rbx + 0x41, 0x81, 0xfd, 0x10, 0x27, 0x00, 0x00, //0x00007e1f cmpl $10000, %r13d + 0x0f, 0x82, 0xd9, 0x00, 0x00, 0x00, //0x00007e26 jb LBB31_30 + 0x44, 0x89, 0xe8, //0x00007e2c movl %r13d, %eax + 0x41, 0xbe, 0x59, 0x17, 0xb7, 0xd1, //0x00007e2f movl $3518437209, %r14d + 0x4c, 0x0f, 0xaf, 0xf0, //0x00007e35 imulq %rax, %r14 + 0x49, 0xc1, 0xee, 0x2d, //0x00007e39 shrq $45, %r14 + 0x41, 0x69, 0xc6, 0xf0, 0xd8, 0xff, 0xff, //0x00007e3d imull $-10000, %r14d, %eax + 0x44, 0x01, 0xe8, //0x00007e44 addl %r13d, %eax + 0x0f, 0x84, 0xa3, 0x04, 0x00, 0x00, //0x00007e47 je LBB31_62 + 0x89, 0xc1, //0x00007e4d movl %eax, %ecx + 0x48, 0x69, 0xc9, 0x1f, 0x85, 0xeb, 0x51, //0x00007e4f imulq $1374389535, %rcx, %rcx + 0x48, 0xc1, 0xe9, 0x25, //0x00007e56 shrq $37, %rcx + 0x6b, 0xd1, 0x64, //0x00007e5a imull $100, %ecx, %edx + 0x29, 0xd0, //0x00007e5d subl %edx, %eax + 0x48, 0x8d, 0x15, 0x0a, 0x43, 0x00, 0x00, //0x00007e5f leaq $17162(%rip), %rdx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x04, 0x42, //0x00007e66 movzwl (%rdx,%rax,2), %eax + 0x66, 0x89, 0x43, 0xfe, //0x00007e6a movw %ax, $-2(%rbx) + 0x0f, 0xb7, 0x04, 0x4a, //0x00007e6e movzwl (%rdx,%rcx,2), %eax + 0x66, 0x89, 0x43, 0xfc, //0x00007e72 movw %ax, $-4(%rbx) + 0x45, 0x31, 0xc9, //0x00007e76 xorl %r9d, %r9d + 0x48, 0x8d, 0x4b, 0xfc, //0x00007e79 leaq $-4(%rbx), %rcx + 0x41, 0x83, 0xfe, 0x64, //0x00007e7d cmpl $100, %r14d + 0x0f, 0x83, 0x91, 0x00, 0x00, 0x00, //0x00007e81 jae LBB31_64 + //0x00007e87 LBB31_31 + 0x44, 0x89, 0xf2, //0x00007e87 movl %r14d, %edx + 0xe9, 0xd4, 0x00, 0x00, 0x00, //0x00007e8a jmp LBB31_66 + //0x00007e8f LBB31_26 + 0x41, 0x89, 0xc4, //0x00007e8f movl %eax, %r12d + 0x45, 0x85, 0xdb, //0x00007e92 testl %r11d, %r11d + 0x0f, 0x88, 0x1d, 0x02, 0x00, 0x00, //0x00007e95 js LBB31_38 + 0x4b, 0x8d, 0x34, 0x20, //0x00007e9b leaq (%r8,%r12), %rsi + 0x41, 0x81, 0xfd, 0x10, 0x27, 0x00, 0x00, //0x00007e9f cmpl $10000, %r13d + 0x0f, 0x82, 0xa8, 0x02, 0x00, 0x00, //0x00007ea6 jb LBB31_43 + 0x44, 0x89, 0xe8, //0x00007eac movl %r13d, %eax + 0xb9, 0x59, 0x17, 0xb7, 0xd1, //0x00007eaf movl $3518437209, %ecx + 0x48, 0x0f, 0xaf, 0xc8, //0x00007eb4 imulq %rax, %rcx + 0x48, 0xc1, 0xe9, 0x2d, //0x00007eb8 shrq $45, %rcx + 0x69, 0xc1, 0xf0, 0xd8, 0xff, 0xff, //0x00007ebc imull $-10000, %ecx, %eax + 0x44, 0x01, 0xe8, //0x00007ec2 addl %r13d, %eax + 0x48, 0x69, 0xd0, 0x1f, 0x85, 0xeb, 0x51, //0x00007ec5 imulq $1374389535, %rax, %rdx + 0x48, 0xc1, 0xea, 0x25, //0x00007ecc shrq $37, %rdx + 0x6b, 0xda, 0x64, //0x00007ed0 imull $100, %edx, %ebx + 0x29, 0xd8, //0x00007ed3 subl %ebx, %eax + 0x48, 0x8d, 0x1d, 0x94, 0x42, 0x00, 0x00, //0x00007ed5 leaq $17044(%rip), %rbx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x04, 0x43, //0x00007edc movzwl (%rbx,%rax,2), %eax + 0x66, 0x89, 0x46, 0xfe, //0x00007ee0 movw %ax, $-2(%rsi) + 0x48, 0x8d, 0x46, 0xfc, //0x00007ee4 leaq $-4(%rsi), %rax + 0x0f, 0xb7, 0x14, 0x53, //0x00007ee8 movzwl (%rbx,%rdx,2), %edx + 0x66, 0x89, 0x56, 0xfc, //0x00007eec movw %dx, $-4(%rsi) + 0x41, 0x89, 0xcd, //0x00007ef0 movl %ecx, %r13d + 0x41, 0x83, 0xfd, 0x64, //0x00007ef3 cmpl $100, %r13d + 0x0f, 0x83, 0x64, 0x02, 0x00, 0x00, //0x00007ef7 jae LBB31_44 + //0x00007efd LBB31_29 + 0x44, 0x89, 0xe9, //0x00007efd movl %r13d, %ecx + 0xe9, 0x9e, 0x02, 0x00, 0x00, //0x00007f00 jmp LBB31_46 + //0x00007f05 LBB31_30 + 0x45, 0x31, 0xc9, //0x00007f05 xorl %r9d, %r9d + 0x48, 0x89, 0xd9, //0x00007f08 movq %rbx, %rcx + 0x45, 0x89, 0xee, //0x00007f0b movl %r13d, %r14d + 0x41, 0x83, 0xfe, 0x64, //0x00007f0e cmpl $100, %r14d + 0x0f, 0x82, 0x6f, 0xff, 0xff, 0xff, //0x00007f12 jb LBB31_31 + //0x00007f18 LBB31_64 + 0x48, 0xff, 0xc9, //0x00007f18 decq %rcx + 0x4c, 0x8d, 0x1d, 0x4e, 0x42, 0x00, 0x00, //0x00007f1b leaq $16974(%rip), %r11 /* _Digits+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007f22 .p2align 4, 0x90 + //0x00007f30 LBB31_65 + 0x44, 0x89, 0xf2, //0x00007f30 movl %r14d, %edx + 0x48, 0x69, 0xd2, 0x1f, 0x85, 0xeb, 0x51, //0x00007f33 imulq $1374389535, %rdx, %rdx + 0x48, 0xc1, 0xea, 0x25, //0x00007f3a shrq $37, %rdx + 0x6b, 0xc2, 0x64, //0x00007f3e imull $100, %edx, %eax + 0x44, 0x89, 0xf6, //0x00007f41 movl %r14d, %esi + 0x29, 0xc6, //0x00007f44 subl %eax, %esi + 0x41, 0x0f, 0xb7, 0x04, 0x73, //0x00007f46 movzwl (%r11,%rsi,2), %eax + 0x66, 0x89, 0x41, 0xff, //0x00007f4b movw %ax, $-1(%rcx) + 0x48, 0x83, 0xc1, 0xfe, //0x00007f4f addq $-2, %rcx + 0x41, 0x81, 0xfe, 0x0f, 0x27, 0x00, 0x00, //0x00007f53 cmpl $9999, %r14d + 0x41, 0x89, 0xd6, //0x00007f5a movl %edx, %r14d + 0x0f, 0x87, 0xcd, 0xff, 0xff, 0xff, //0x00007f5d ja LBB31_65 + //0x00007f63 LBB31_66 + 0x49, 0x8d, 0x70, 0x01, //0x00007f63 leaq $1(%r8), %rsi + 0x83, 0xfa, 0x0a, //0x00007f67 cmpl $10, %edx + 0x0f, 0x82, 0x1d, 0x00, 0x00, 0x00, //0x00007f6a jb LBB31_68 + 0x89, 0xd0, //0x00007f70 movl %edx, %eax + 0x48, 0x8d, 0x0d, 0xf7, 0x41, 0x00, 0x00, //0x00007f72 leaq $16887(%rip), %rcx /* _Digits+0(%rip) */ + 0x8a, 0x14, 0x41, //0x00007f79 movb (%rcx,%rax,2), %dl + 0x8a, 0x44, 0x41, 0x01, //0x00007f7c movb $1(%rcx,%rax,2), %al + 0x41, 0x88, 0x50, 0x01, //0x00007f80 movb %dl, $1(%r8) + 0x41, 0x88, 0x40, 0x02, //0x00007f84 movb %al, $2(%r8) + 0xe9, 0x05, 0x00, 0x00, 0x00, //0x00007f88 jmp LBB31_69 + //0x00007f8d LBB31_68 + 0x80, 0xc2, 0x30, //0x00007f8d addb $48, %dl + 0x88, 0x16, //0x00007f90 movb %dl, (%rsi) + //0x00007f92 LBB31_69 + 0x4c, 0x29, 0xcb, //0x00007f92 subq %r9, %rbx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007f95 .p2align 4, 0x90 + //0x00007fa0 LBB31_70 + 0x80, 0x7b, 0xff, 0x30, //0x00007fa0 cmpb $48, $-1(%rbx) + 0x48, 0x8d, 0x5b, 0xff, //0x00007fa4 leaq $-1(%rbx), %rbx + 0x0f, 0x84, 0xf2, 0xff, 0xff, 0xff, //0x00007fa8 je LBB31_70 + 0x41, 0x88, 0x10, //0x00007fae movb %dl, (%r8) + 0x48, 0x8d, 0x43, 0x01, //0x00007fb1 leaq $1(%rbx), %rax + 0x48, 0x89, 0xc1, //0x00007fb5 movq %rax, %rcx + 0x48, 0x29, 0xf1, //0x00007fb8 subq %rsi, %rcx + 0x48, 0x83, 0xf9, 0x02, //0x00007fbb cmpq $2, %rcx + 0x0f, 0x8c, 0x06, 0x00, 0x00, 0x00, //0x00007fbf jl LBB31_73 + 0xc6, 0x06, 0x2e, //0x00007fc5 movb $46, (%rsi) + 0x48, 0x89, 0xc3, //0x00007fc8 movq %rax, %rbx + //0x00007fcb LBB31_73 + 0xc6, 0x03, 0x65, //0x00007fcb movb $101, (%rbx) + 0x45, 0x85, 0xd2, //0x00007fce testl %r10d, %r10d + 0x0f, 0x8e, 0x42, 0x01, 0x00, 0x00, //0x00007fd1 jle LBB31_76 + 0x41, 0xff, 0xca, //0x00007fd7 decl %r10d + 0xc6, 0x43, 0x01, 0x2b, //0x00007fda movb $43, $1(%rbx) + 0x44, 0x89, 0xd0, //0x00007fde movl %r10d, %eax + 0x83, 0xf8, 0x64, //0x00007fe1 cmpl $100, %eax + 0x0f, 0x8c, 0x44, 0x01, 0x00, 0x00, //0x00007fe4 jl LBB31_77 + //0x00007fea LBB31_75 + 0x89, 0xc1, //0x00007fea movl %eax, %ecx + 0xba, 0xcd, 0xcc, 0xcc, 0xcc, //0x00007fec movl $3435973837, %edx + 0x48, 0x0f, 0xaf, 0xd1, //0x00007ff1 imulq %rcx, %rdx + 0x48, 0xc1, 0xea, 0x23, //0x00007ff5 shrq $35, %rdx + 0x8d, 0x0c, 0x12, //0x00007ff9 leal (%rdx,%rdx), %ecx + 0x8d, 0x0c, 0x89, //0x00007ffc leal (%rcx,%rcx,4), %ecx + 0x29, 0xc8, //0x00007fff subl %ecx, %eax + 0x48, 0x8d, 0x0d, 0x68, 0x41, 0x00, 0x00, //0x00008001 leaq $16744(%rip), %rcx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x0c, 0x51, //0x00008008 movzwl (%rcx,%rdx,2), %ecx + 0x66, 0x89, 0x4b, 0x02, //0x0000800c movw %cx, $2(%rbx) + 0x0c, 0x30, //0x00008010 orb $48, %al + 0x88, 0x43, 0x04, //0x00008012 movb %al, $4(%rbx) + 0x48, 0x83, 0xc3, 0x05, //0x00008015 addq $5, %rbx + 0x49, 0x89, 0xd8, //0x00008019 movq %rbx, %r8 + 0xe9, 0x3f, 0x08, 0x00, 0x00, //0x0000801c jmp LBB31_137 + //0x00008021 LBB31_32 + 0xd3, 0xee, //0x00008021 shrl %cl, %esi + 0x81, 0xfe, 0xa0, 0x86, 0x01, 0x00, //0x00008023 cmpl $100000, %esi + 0x0f, 0x82, 0x17, 0x02, 0x00, 0x00, //0x00008029 jb LBB31_52 + 0xb8, 0x06, 0x00, 0x00, 0x00, //0x0000802f movl $6, %eax + 0x81, 0xfe, 0x40, 0x42, 0x0f, 0x00, //0x00008034 cmpl $1000000, %esi + 0x0f, 0x82, 0x20, 0x00, 0x00, 0x00, //0x0000803a jb LBB31_36 + 0xb8, 0x07, 0x00, 0x00, 0x00, //0x00008040 movl $7, %eax + 0x81, 0xfe, 0x80, 0x96, 0x98, 0x00, //0x00008045 cmpl $10000000, %esi + 0x0f, 0x82, 0x0f, 0x00, 0x00, 0x00, //0x0000804b jb LBB31_36 + 0x81, 0xfe, 0x00, 0xe1, 0xf5, 0x05, //0x00008051 cmpl $100000000, %esi + 0xb8, 0x09, 0x00, 0x00, 0x00, //0x00008057 movl $9, %eax + 0x48, 0x83, 0xd8, 0x00, //0x0000805c sbbq $0, %rax + //0x00008060 LBB31_36 + 0x4c, 0x01, 0xc0, //0x00008060 addq %r8, %rax + //0x00008063 LBB31_37 + 0x89, 0xf1, //0x00008063 movl %esi, %ecx + 0xba, 0x59, 0x17, 0xb7, 0xd1, //0x00008065 movl $3518437209, %edx + 0x48, 0x0f, 0xaf, 0xd1, //0x0000806a imulq %rcx, %rdx + 0x48, 0xc1, 0xea, 0x2d, //0x0000806e shrq $45, %rdx + 0x69, 0xca, 0xf0, 0xd8, 0xff, 0xff, //0x00008072 imull $-10000, %edx, %ecx + 0x01, 0xf1, //0x00008078 addl %esi, %ecx + 0x48, 0x69, 0xf1, 0x1f, 0x85, 0xeb, 0x51, //0x0000807a imulq $1374389535, %rcx, %rsi + 0x48, 0xc1, 0xee, 0x25, //0x00008081 shrq $37, %rsi + 0x6b, 0xde, 0x64, //0x00008085 imull $100, %esi, %ebx + 0x29, 0xd9, //0x00008088 subl %ebx, %ecx + 0x48, 0x8d, 0x1d, 0xdf, 0x40, 0x00, 0x00, //0x0000808a leaq $16607(%rip), %rbx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x0c, 0x4b, //0x00008091 movzwl (%rbx,%rcx,2), %ecx + 0x66, 0x89, 0x48, 0xfe, //0x00008095 movw %cx, $-2(%rax) + 0x0f, 0xb7, 0x0c, 0x73, //0x00008099 movzwl (%rbx,%rsi,2), %ecx + 0x66, 0x89, 0x48, 0xfc, //0x0000809d movw %cx, $-4(%rax) + 0x49, 0x89, 0xc1, //0x000080a1 movq %rax, %r9 + 0x48, 0x83, 0xc0, 0xfc, //0x000080a4 addq $-4, %rax + 0x89, 0xd6, //0x000080a8 movl %edx, %esi + 0x83, 0xfe, 0x64, //0x000080aa cmpl $100, %esi + 0x0f, 0x83, 0xd2, 0x01, 0x00, 0x00, //0x000080ad jae LBB31_56 + 0xe9, 0x07, 0x02, 0x00, 0x00, //0x000080b3 jmp LBB31_58 + //0x000080b8 LBB31_38 + 0x45, 0x85, 0xd2, //0x000080b8 testl %r10d, %r10d + 0x0f, 0x8f, 0x70, 0x04, 0x00, 0x00, //0x000080bb jg LBB31_98 + 0x66, 0x41, 0xc7, 0x00, 0x30, 0x2e, //0x000080c1 movw $11824, (%r8) + 0x49, 0x83, 0xc0, 0x02, //0x000080c7 addq $2, %r8 + 0x45, 0x85, 0xd2, //0x000080cb testl %r10d, %r10d + 0x0f, 0x89, 0x5d, 0x04, 0x00, 0x00, //0x000080ce jns LBB31_98 + 0x31, 0xf6, //0x000080d4 xorl %esi, %esi + 0x41, 0x83, 0xfa, 0xe0, //0x000080d6 cmpl $-32, %r10d + 0x0f, 0x87, 0x33, 0x04, 0x00, 0x00, //0x000080da ja LBB31_96 + 0x45, 0x89, 0xd3, //0x000080e0 movl %r10d, %r11d + 0x41, 0xf7, 0xd3, //0x000080e3 notl %r11d + 0x49, 0xff, 0xc3, //0x000080e6 incq %r11 + 0x4c, 0x89, 0xde, //0x000080e9 movq %r11, %rsi + 0x48, 0x83, 0xe6, 0xe0, //0x000080ec andq $-32, %rsi + 0x48, 0x8d, 0x4e, 0xe0, //0x000080f0 leaq $-32(%rsi), %rcx + 0x48, 0x89, 0xc8, //0x000080f4 movq %rcx, %rax + 0x48, 0xc1, 0xe8, 0x05, //0x000080f7 shrq $5, %rax + 0x48, 0xff, 0xc0, //0x000080fb incq %rax + 0x41, 0x89, 0xc6, //0x000080fe movl %eax, %r14d + 0x41, 0x83, 0xe6, 0x07, //0x00008101 andl $7, %r14d + 0x48, 0x81, 0xf9, 0xe0, 0x00, 0x00, 0x00, //0x00008105 cmpq $224, %rcx + 0x0f, 0x83, 0x27, 0x03, 0x00, 0x00, //0x0000810c jae LBB31_90 + 0x31, 0xc0, //0x00008112 xorl %eax, %eax + 0xe9, 0xbc, 0x03, 0x00, 0x00, //0x00008114 jmp LBB31_92 + //0x00008119 LBB31_76 + 0xc6, 0x43, 0x01, 0x2d, //0x00008119 movb $45, $1(%rbx) + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x0000811d movl $1, %eax + 0x44, 0x29, 0xd0, //0x00008122 subl %r10d, %eax + 0x83, 0xf8, 0x64, //0x00008125 cmpl $100, %eax + 0x0f, 0x8d, 0xbc, 0xfe, 0xff, 0xff, //0x00008128 jge LBB31_75 + //0x0000812e LBB31_77 + 0x83, 0xf8, 0x0a, //0x0000812e cmpl $10, %eax + 0x0f, 0x8c, 0xfe, 0x00, 0x00, 0x00, //0x00008131 jl LBB31_79 + 0x48, 0x98, //0x00008137 cltq + 0x48, 0x8d, 0x0d, 0x30, 0x40, 0x00, 0x00, //0x00008139 leaq $16432(%rip), %rcx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x04, 0x41, //0x00008140 movzwl (%rcx,%rax,2), %eax + 0x66, 0x89, 0x43, 0x02, //0x00008144 movw %ax, $2(%rbx) + 0x48, 0x83, 0xc3, 0x04, //0x00008148 addq $4, %rbx + 0x49, 0x89, 0xd8, //0x0000814c movq %rbx, %r8 + 0xe9, 0x0c, 0x07, 0x00, 0x00, //0x0000814f jmp LBB31_137 + //0x00008154 LBB31_43 + 0x48, 0x89, 0xf0, //0x00008154 movq %rsi, %rax + 0x41, 0x83, 0xfd, 0x64, //0x00008157 cmpl $100, %r13d + 0x0f, 0x82, 0x9c, 0xfd, 0xff, 0xff, //0x0000815b jb LBB31_29 + //0x00008161 LBB31_44 + 0x48, 0xff, 0xc8, //0x00008161 decq %rax + 0x4c, 0x8d, 0x1d, 0x05, 0x40, 0x00, 0x00, //0x00008164 leaq $16389(%rip), %r11 /* _Digits+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000816b .p2align 4, 0x90 + //0x00008170 LBB31_45 + 0x44, 0x89, 0xe9, //0x00008170 movl %r13d, %ecx + 0x48, 0x69, 0xc9, 0x1f, 0x85, 0xeb, 0x51, //0x00008173 imulq $1374389535, %rcx, %rcx + 0x48, 0xc1, 0xe9, 0x25, //0x0000817a shrq $37, %rcx + 0x6b, 0xd9, 0x64, //0x0000817e imull $100, %ecx, %ebx + 0x44, 0x89, 0xea, //0x00008181 movl %r13d, %edx + 0x29, 0xda, //0x00008184 subl %ebx, %edx + 0x41, 0x0f, 0xb7, 0x14, 0x53, //0x00008186 movzwl (%r11,%rdx,2), %edx + 0x66, 0x89, 0x50, 0xff, //0x0000818b movw %dx, $-1(%rax) + 0x48, 0x83, 0xc0, 0xfe, //0x0000818f addq $-2, %rax + 0x41, 0x81, 0xfd, 0x0f, 0x27, 0x00, 0x00, //0x00008193 cmpl $9999, %r13d + 0x41, 0x89, 0xcd, //0x0000819a movl %ecx, %r13d + 0x0f, 0x87, 0xcd, 0xff, 0xff, 0xff, //0x0000819d ja LBB31_45 + //0x000081a3 LBB31_46 + 0x49, 0x63, 0xc2, //0x000081a3 movslq %r10d, %rax + 0x83, 0xf9, 0x0a, //0x000081a6 cmpl $10, %ecx + 0x0f, 0x82, 0x22, 0x00, 0x00, 0x00, //0x000081a9 jb LBB31_48 + 0x89, 0xc9, //0x000081af movl %ecx, %ecx + 0x48, 0x8d, 0x15, 0xb8, 0x3f, 0x00, 0x00, //0x000081b1 leaq $16312(%rip), %rdx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x0c, 0x4a, //0x000081b8 movzwl (%rdx,%rcx,2), %ecx + 0x66, 0x41, 0x89, 0x08, //0x000081bc movw %cx, (%r8) + 0x49, 0x01, 0xc0, //0x000081c0 addq %rax, %r8 + 0x49, 0x39, 0xc4, //0x000081c3 cmpq %rax, %r12 + 0x0f, 0x8c, 0x17, 0x00, 0x00, 0x00, //0x000081c6 jl LBB31_49 + 0xe9, 0x8f, 0x06, 0x00, 0x00, //0x000081cc jmp LBB31_137 + //0x000081d1 LBB31_48 + 0x80, 0xc1, 0x30, //0x000081d1 addb $48, %cl + 0x41, 0x88, 0x08, //0x000081d4 movb %cl, (%r8) + 0x49, 0x01, 0xc0, //0x000081d7 addq %rax, %r8 + 0x49, 0x39, 0xc4, //0x000081da cmpq %rax, %r12 + 0x0f, 0x8d, 0x7d, 0x06, 0x00, 0x00, //0x000081dd jge LBB31_137 + //0x000081e3 LBB31_49 + 0x4b, 0x8d, 0x04, 0x21, //0x000081e3 leaq (%r9,%r12), %rax + 0x4c, 0x8d, 0x5c, 0x07, 0x01, //0x000081e7 leaq $1(%rdi,%rax), %r11 + 0x4d, 0x39, 0xc3, //0x000081ec cmpq %r8, %r11 + 0x4d, 0x0f, 0x46, 0xd8, //0x000081ef cmovbeq %r8, %r11 + 0x4a, 0x8d, 0x0c, 0x0f, //0x000081f3 leaq (%rdi,%r9), %rcx + 0x4c, 0x01, 0xe1, //0x000081f7 addq %r12, %rcx + 0x49, 0x29, 0xcb, //0x000081fa subq %rcx, %r11 + 0x49, 0x83, 0xfb, 0x20, //0x000081fd cmpq $32, %r11 + 0x0f, 0x82, 0xf9, 0x01, 0x00, 0x00, //0x00008201 jb LBB31_87 + 0x4d, 0x89, 0xda, //0x00008207 movq %r11, %r10 + 0x49, 0x83, 0xe2, 0xe0, //0x0000820a andq $-32, %r10 + 0x49, 0x8d, 0x4a, 0xe0, //0x0000820e leaq $-32(%r10), %rcx + 0x48, 0x89, 0xcb, //0x00008212 movq %rcx, %rbx + 0x48, 0xc1, 0xeb, 0x05, //0x00008215 shrq $5, %rbx + 0x48, 0xff, 0xc3, //0x00008219 incq %rbx + 0x89, 0xda, //0x0000821c movl %ebx, %edx + 0x83, 0xe2, 0x07, //0x0000821e andl $7, %edx + 0x48, 0x81, 0xf9, 0xe0, 0x00, 0x00, 0x00, //0x00008221 cmpq $224, %rcx + 0x0f, 0x83, 0xdb, 0x00, 0x00, 0x00, //0x00008228 jae LBB31_80 + 0x31, 0xc0, //0x0000822e xorl %eax, %eax + 0xe9, 0x6f, 0x01, 0x00, 0x00, //0x00008230 jmp LBB31_82 + //0x00008235 LBB31_79 + 0x04, 0x30, //0x00008235 addb $48, %al + 0x88, 0x43, 0x02, //0x00008237 movb %al, $2(%rbx) + 0x48, 0x83, 0xc3, 0x03, //0x0000823a addq $3, %rbx + 0x49, 0x89, 0xd8, //0x0000823e movq %rbx, %r8 + 0xe9, 0x1a, 0x06, 0x00, 0x00, //0x00008241 jmp LBB31_137 + //0x00008246 LBB31_52 + 0x41, 0xb9, 0x01, 0x00, 0x00, 0x00, //0x00008246 movl $1, %r9d + 0x83, 0xfe, 0x0a, //0x0000824c cmpl $10, %esi + 0x0f, 0x82, 0x21, 0x00, 0x00, 0x00, //0x0000824f jb LBB31_55 + 0x41, 0xb9, 0x02, 0x00, 0x00, 0x00, //0x00008255 movl $2, %r9d + 0x83, 0xfe, 0x64, //0x0000825b cmpl $100, %esi + 0x0f, 0x82, 0x12, 0x00, 0x00, 0x00, //0x0000825e jb LBB31_55 + 0x41, 0xb9, 0x03, 0x00, 0x00, 0x00, //0x00008264 movl $3, %r9d + 0x81, 0xfe, 0xe8, 0x03, 0x00, 0x00, //0x0000826a cmpl $1000, %esi + 0x0f, 0x83, 0x9e, 0x01, 0x00, 0x00, //0x00008270 jae LBB31_88 + //0x00008276 LBB31_55 + 0x4d, 0x01, 0xc1, //0x00008276 addq %r8, %r9 + 0x4c, 0x89, 0xc8, //0x00008279 movq %r9, %rax + 0x83, 0xfe, 0x64, //0x0000827c cmpl $100, %esi + 0x0f, 0x82, 0x3a, 0x00, 0x00, 0x00, //0x0000827f jb LBB31_58 + //0x00008285 LBB31_56 + 0x48, 0xff, 0xc8, //0x00008285 decq %rax + 0x4c, 0x8d, 0x15, 0xe1, 0x3e, 0x00, 0x00, //0x00008288 leaq $16097(%rip), %r10 /* _Digits+0(%rip) */ + 0x90, //0x0000828f .p2align 4, 0x90 + //0x00008290 LBB31_57 + 0x89, 0xf3, //0x00008290 movl %esi, %ebx + 0x89, 0xf6, //0x00008292 movl %esi, %esi + 0x48, 0x69, 0xf6, 0x1f, 0x85, 0xeb, 0x51, //0x00008294 imulq $1374389535, %rsi, %rsi + 0x48, 0xc1, 0xee, 0x25, //0x0000829b shrq $37, %rsi + 0x6b, 0xce, 0x64, //0x0000829f imull $100, %esi, %ecx + 0x89, 0xda, //0x000082a2 movl %ebx, %edx + 0x29, 0xca, //0x000082a4 subl %ecx, %edx + 0x41, 0x0f, 0xb7, 0x0c, 0x52, //0x000082a6 movzwl (%r10,%rdx,2), %ecx + 0x66, 0x89, 0x48, 0xff, //0x000082ab movw %cx, $-1(%rax) + 0x48, 0x83, 0xc0, 0xfe, //0x000082af addq $-2, %rax + 0x81, 0xfb, 0x0f, 0x27, 0x00, 0x00, //0x000082b3 cmpl $9999, %ebx + 0x0f, 0x87, 0xd1, 0xff, 0xff, 0xff, //0x000082b9 ja LBB31_57 + //0x000082bf LBB31_58 + 0x83, 0xfe, 0x0a, //0x000082bf cmpl $10, %esi + 0x0f, 0x82, 0x16, 0x00, 0x00, 0x00, //0x000082c2 jb LBB31_60 + 0x89, 0xf0, //0x000082c8 movl %esi, %eax + 0x48, 0x8d, 0x0d, 0x9f, 0x3e, 0x00, 0x00, //0x000082ca leaq $16031(%rip), %rcx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x04, 0x41, //0x000082d1 movzwl (%rcx,%rax,2), %eax + 0x66, 0x41, 0x89, 0x00, //0x000082d5 movw %ax, (%r8) + 0xe9, 0x07, 0x00, 0x00, 0x00, //0x000082d9 jmp LBB31_61 + //0x000082de LBB31_60 + 0x40, 0x80, 0xc6, 0x30, //0x000082de addb $48, %sil + 0x41, 0x88, 0x30, //0x000082e2 movb %sil, (%r8) + //0x000082e5 LBB31_61 + 0x41, 0x29, 0xf9, //0x000082e5 subl %edi, %r9d + 0x45, 0x89, 0xc8, //0x000082e8 movl %r9d, %r8d + 0xe9, 0x73, 0x05, 0x00, 0x00, //0x000082eb jmp LBB31_138 + //0x000082f0 LBB31_62 + 0x41, 0xb9, 0x04, 0x00, 0x00, 0x00, //0x000082f0 movl $4, %r9d + 0x48, 0x8d, 0x4b, 0xfc, //0x000082f6 leaq $-4(%rbx), %rcx + 0x41, 0x83, 0xfe, 0x64, //0x000082fa cmpl $100, %r14d + 0x0f, 0x82, 0x83, 0xfb, 0xff, 0xff, //0x000082fe jb LBB31_31 + 0xe9, 0x0f, 0xfc, 0xff, 0xff, //0x00008304 jmp LBB31_64 + //0x00008309 LBB31_80 + 0x48, 0x29, 0xd3, //0x00008309 subq %rdx, %rbx + 0x48, 0x8d, 0x8c, 0x07, 0xf0, 0x00, 0x00, 0x00, //0x0000830c leaq $240(%rdi,%rax), %rcx + 0x31, 0xc0, //0x00008314 xorl %eax, %eax + 0x66, 0x0f, 0x6f, 0x05, 0x62, 0xf8, 0xff, 0xff, //0x00008316 movdqa $-1950(%rip), %xmm0 /* LCPI31_0+0(%rip) */ + 0x90, 0x90, //0x0000831e .p2align 4, 0x90 + //0x00008320 LBB31_81 + 0xf3, 0x0f, 0x7f, 0x84, 0x01, 0x10, 0xff, 0xff, 0xff, //0x00008320 movdqu %xmm0, $-240(%rcx,%rax) + 0xf3, 0x0f, 0x7f, 0x84, 0x01, 0x20, 0xff, 0xff, 0xff, //0x00008329 movdqu %xmm0, $-224(%rcx,%rax) + 0xf3, 0x0f, 0x7f, 0x84, 0x01, 0x30, 0xff, 0xff, 0xff, //0x00008332 movdqu %xmm0, $-208(%rcx,%rax) + 0xf3, 0x0f, 0x7f, 0x84, 0x01, 0x40, 0xff, 0xff, 0xff, //0x0000833b movdqu %xmm0, $-192(%rcx,%rax) + 0xf3, 0x0f, 0x7f, 0x84, 0x01, 0x50, 0xff, 0xff, 0xff, //0x00008344 movdqu %xmm0, $-176(%rcx,%rax) + 0xf3, 0x0f, 0x7f, 0x84, 0x01, 0x60, 0xff, 0xff, 0xff, //0x0000834d movdqu %xmm0, $-160(%rcx,%rax) + 0xf3, 0x0f, 0x7f, 0x84, 0x01, 0x70, 0xff, 0xff, 0xff, //0x00008356 movdqu %xmm0, $-144(%rcx,%rax) + 0xf3, 0x0f, 0x7f, 0x44, 0x01, 0x80, //0x0000835f movdqu %xmm0, $-128(%rcx,%rax) + 0xf3, 0x0f, 0x7f, 0x44, 0x01, 0x90, //0x00008365 movdqu %xmm0, $-112(%rcx,%rax) + 0xf3, 0x0f, 0x7f, 0x44, 0x01, 0xa0, //0x0000836b movdqu %xmm0, $-96(%rcx,%rax) + 0xf3, 0x0f, 0x7f, 0x44, 0x01, 0xb0, //0x00008371 movdqu %xmm0, $-80(%rcx,%rax) + 0xf3, 0x0f, 0x7f, 0x44, 0x01, 0xc0, //0x00008377 movdqu %xmm0, $-64(%rcx,%rax) + 0xf3, 0x0f, 0x7f, 0x44, 0x01, 0xd0, //0x0000837d movdqu %xmm0, $-48(%rcx,%rax) + 0xf3, 0x0f, 0x7f, 0x44, 0x01, 0xe0, //0x00008383 movdqu %xmm0, $-32(%rcx,%rax) + 0xf3, 0x0f, 0x7f, 0x44, 0x01, 0xf0, //0x00008389 movdqu %xmm0, $-16(%rcx,%rax) + 0xf3, 0x0f, 0x7f, 0x04, 0x01, //0x0000838f movdqu %xmm0, (%rcx,%rax) + 0x48, 0x05, 0x00, 0x01, 0x00, 0x00, //0x00008394 addq $256, %rax + 0x48, 0x83, 0xc3, 0xf8, //0x0000839a addq $-8, %rbx + 0x0f, 0x85, 0x7c, 0xff, 0xff, 0xff, //0x0000839e jne LBB31_81 + //0x000083a4 LBB31_82 + 0x48, 0x85, 0xd2, //0x000083a4 testq %rdx, %rdx + 0x0f, 0x84, 0x39, 0x00, 0x00, 0x00, //0x000083a7 je LBB31_85 + 0x4c, 0x01, 0xc8, //0x000083ad addq %r9, %rax + 0x4c, 0x01, 0xe0, //0x000083b0 addq %r12, %rax + 0x48, 0x8d, 0x44, 0x07, 0x10, //0x000083b3 leaq $16(%rdi,%rax), %rax + 0x48, 0xf7, 0xda, //0x000083b8 negq %rdx + 0x66, 0x0f, 0x6f, 0x05, 0xbd, 0xf7, 0xff, 0xff, //0x000083bb movdqa $-2115(%rip), %xmm0 /* LCPI31_0+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000083c3 .p2align 4, 0x90 + //0x000083d0 LBB31_84 + 0xf3, 0x0f, 0x7f, 0x40, 0xf0, //0x000083d0 movdqu %xmm0, $-16(%rax) + 0xf3, 0x0f, 0x7f, 0x00, //0x000083d5 movdqu %xmm0, (%rax) + 0x48, 0x83, 0xc0, 0x20, //0x000083d9 addq $32, %rax + 0x48, 0xff, 0xc2, //0x000083dd incq %rdx + 0x0f, 0x85, 0xea, 0xff, 0xff, 0xff, //0x000083e0 jne LBB31_84 + //0x000083e6 LBB31_85 + 0x4d, 0x39, 0xda, //0x000083e6 cmpq %r11, %r10 + 0x0f, 0x84, 0x71, 0x04, 0x00, 0x00, //0x000083e9 je LBB31_137 + 0x4c, 0x01, 0xd6, //0x000083ef addq %r10, %rsi + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000083f2 .p2align 4, 0x90 + //0x00008400 LBB31_87 + 0xc6, 0x06, 0x30, //0x00008400 movb $48, (%rsi) + 0x48, 0xff, 0xc6, //0x00008403 incq %rsi + 0x4c, 0x39, 0xc6, //0x00008406 cmpq %r8, %rsi + 0x0f, 0x82, 0xf1, 0xff, 0xff, 0xff, //0x00008409 jb LBB31_87 + 0xe9, 0x4c, 0x04, 0x00, 0x00, //0x0000840f jmp LBB31_137 + //0x00008414 LBB31_88 + 0x81, 0xfe, 0x10, 0x27, 0x00, 0x00, //0x00008414 cmpl $10000, %esi + 0x4c, 0x89, 0xc0, //0x0000841a movq %r8, %rax + 0x48, 0x83, 0xd8, 0x00, //0x0000841d sbbq $0, %rax + 0x48, 0x83, 0xc0, 0x05, //0x00008421 addq $5, %rax + 0x81, 0xfe, 0x10, 0x27, 0x00, 0x00, //0x00008425 cmpl $10000, %esi + 0x0f, 0x83, 0x32, 0xfc, 0xff, 0xff, //0x0000842b jae LBB31_37 + 0x49, 0x89, 0xc1, //0x00008431 movq %rax, %r9 + 0xe9, 0x4c, 0xfe, 0xff, 0xff, //0x00008434 jmp LBB31_56 + //0x00008439 LBB31_90 + 0x49, 0x8d, 0x9c, 0x39, 0xf2, 0x00, 0x00, 0x00, //0x00008439 leaq $242(%r9,%rdi), %rbx + 0x4d, 0x89, 0xf7, //0x00008441 movq %r14, %r15 + 0x49, 0x29, 0xc7, //0x00008444 subq %rax, %r15 + 0x31, 0xc0, //0x00008447 xorl %eax, %eax + 0x66, 0x0f, 0x6f, 0x05, 0x2f, 0xf7, 0xff, 0xff, //0x00008449 movdqa $-2257(%rip), %xmm0 /* LCPI31_0+0(%rip) */ + //0x00008451 LBB31_91 + 0xf3, 0x0f, 0x7f, 0x84, 0x03, 0x10, 0xff, 0xff, 0xff, //0x00008451 movdqu %xmm0, $-240(%rbx,%rax) + 0xf3, 0x0f, 0x7f, 0x84, 0x03, 0x20, 0xff, 0xff, 0xff, //0x0000845a movdqu %xmm0, $-224(%rbx,%rax) + 0xf3, 0x0f, 0x7f, 0x84, 0x03, 0x30, 0xff, 0xff, 0xff, //0x00008463 movdqu %xmm0, $-208(%rbx,%rax) + 0xf3, 0x0f, 0x7f, 0x84, 0x03, 0x40, 0xff, 0xff, 0xff, //0x0000846c movdqu %xmm0, $-192(%rbx,%rax) + 0xf3, 0x0f, 0x7f, 0x84, 0x03, 0x50, 0xff, 0xff, 0xff, //0x00008475 movdqu %xmm0, $-176(%rbx,%rax) + 0xf3, 0x0f, 0x7f, 0x84, 0x03, 0x60, 0xff, 0xff, 0xff, //0x0000847e movdqu %xmm0, $-160(%rbx,%rax) + 0xf3, 0x0f, 0x7f, 0x84, 0x03, 0x70, 0xff, 0xff, 0xff, //0x00008487 movdqu %xmm0, $-144(%rbx,%rax) + 0xf3, 0x0f, 0x7f, 0x44, 0x03, 0x80, //0x00008490 movdqu %xmm0, $-128(%rbx,%rax) + 0xf3, 0x0f, 0x7f, 0x44, 0x03, 0x90, //0x00008496 movdqu %xmm0, $-112(%rbx,%rax) + 0xf3, 0x0f, 0x7f, 0x44, 0x03, 0xa0, //0x0000849c movdqu %xmm0, $-96(%rbx,%rax) + 0xf3, 0x0f, 0x7f, 0x44, 0x03, 0xb0, //0x000084a2 movdqu %xmm0, $-80(%rbx,%rax) + 0xf3, 0x0f, 0x7f, 0x44, 0x03, 0xc0, //0x000084a8 movdqu %xmm0, $-64(%rbx,%rax) + 0xf3, 0x0f, 0x7f, 0x44, 0x03, 0xd0, //0x000084ae movdqu %xmm0, $-48(%rbx,%rax) + 0xf3, 0x0f, 0x7f, 0x44, 0x03, 0xe0, //0x000084b4 movdqu %xmm0, $-32(%rbx,%rax) + 0xf3, 0x0f, 0x7f, 0x44, 0x03, 0xf0, //0x000084ba movdqu %xmm0, $-16(%rbx,%rax) + 0xf3, 0x0f, 0x7f, 0x04, 0x03, //0x000084c0 movdqu %xmm0, (%rbx,%rax) + 0x48, 0x05, 0x00, 0x01, 0x00, 0x00, //0x000084c5 addq $256, %rax + 0x49, 0x83, 0xc7, 0x08, //0x000084cb addq $8, %r15 + 0x0f, 0x85, 0x7c, 0xff, 0xff, 0xff, //0x000084cf jne LBB31_91 + //0x000084d5 LBB31_92 + 0x4d, 0x85, 0xf6, //0x000084d5 testq %r14, %r14 + 0x0f, 0x84, 0x29, 0x00, 0x00, 0x00, //0x000084d8 je LBB31_95 + 0x4c, 0x01, 0xc8, //0x000084de addq %r9, %rax + 0x48, 0x8d, 0x44, 0x07, 0x12, //0x000084e1 leaq $18(%rdi,%rax), %rax + 0x49, 0xf7, 0xde, //0x000084e6 negq %r14 + 0x66, 0x0f, 0x6f, 0x05, 0x8f, 0xf6, 0xff, 0xff, //0x000084e9 movdqa $-2417(%rip), %xmm0 /* LCPI31_0+0(%rip) */ + //0x000084f1 LBB31_94 + 0xf3, 0x0f, 0x7f, 0x40, 0xf0, //0x000084f1 movdqu %xmm0, $-16(%rax) + 0xf3, 0x0f, 0x7f, 0x00, //0x000084f6 movdqu %xmm0, (%rax) + 0x48, 0x83, 0xc0, 0x20, //0x000084fa addq $32, %rax + 0x49, 0xff, 0xc6, //0x000084fe incq %r14 + 0x0f, 0x85, 0xea, 0xff, 0xff, 0xff, //0x00008501 jne LBB31_94 + //0x00008507 LBB31_95 + 0x49, 0x01, 0xf0, //0x00008507 addq %rsi, %r8 + 0x49, 0x39, 0xf3, //0x0000850a cmpq %rsi, %r11 + 0x0f, 0x84, 0x1e, 0x00, 0x00, 0x00, //0x0000850d je LBB31_98 + //0x00008513 LBB31_96 + 0x44, 0x89, 0xd0, //0x00008513 movl %r10d, %eax + 0xf7, 0xd8, //0x00008516 negl %eax + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008518 .p2align 4, 0x90 + //0x00008520 LBB31_97 + 0x41, 0xc6, 0x00, 0x30, //0x00008520 movb $48, (%r8) + 0x49, 0xff, 0xc0, //0x00008524 incq %r8 + 0xff, 0xc6, //0x00008527 incl %esi + 0x39, 0xc6, //0x00008529 cmpl %eax, %esi + 0x0f, 0x8c, 0xef, 0xff, 0xff, 0xff, //0x0000852b jl LBB31_97 + //0x00008531 LBB31_98 + 0x4b, 0x8d, 0x04, 0x20, //0x00008531 leaq (%r8,%r12), %rax + 0x41, 0x81, 0xfd, 0x10, 0x27, 0x00, 0x00, //0x00008535 cmpl $10000, %r13d + 0x0f, 0x82, 0x63, 0x00, 0x00, 0x00, //0x0000853c jb LBB31_101 + 0x44, 0x89, 0xe9, //0x00008542 movl %r13d, %ecx + 0x41, 0xbb, 0x59, 0x17, 0xb7, 0xd1, //0x00008545 movl $3518437209, %r11d + 0x4c, 0x0f, 0xaf, 0xd9, //0x0000854b imulq %rcx, %r11 + 0x49, 0xc1, 0xeb, 0x2d, //0x0000854f shrq $45, %r11 + 0x41, 0x69, 0xcb, 0xf0, 0xd8, 0xff, 0xff, //0x00008553 imull $-10000, %r11d, %ecx + 0x44, 0x01, 0xe9, //0x0000855a addl %r13d, %ecx + 0x0f, 0x84, 0x87, 0x01, 0x00, 0x00, //0x0000855d je LBB31_103 + 0x89, 0xca, //0x00008563 movl %ecx, %edx + 0x48, 0x69, 0xd2, 0x1f, 0x85, 0xeb, 0x51, //0x00008565 imulq $1374389535, %rdx, %rdx + 0x48, 0xc1, 0xea, 0x25, //0x0000856c shrq $37, %rdx + 0x6b, 0xda, 0x64, //0x00008570 imull $100, %edx, %ebx + 0x29, 0xd9, //0x00008573 subl %ebx, %ecx + 0x48, 0x8d, 0x1d, 0xf4, 0x3b, 0x00, 0x00, //0x00008575 leaq $15348(%rip), %rbx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x0c, 0x4b, //0x0000857c movzwl (%rbx,%rcx,2), %ecx + 0x66, 0x89, 0x48, 0xfe, //0x00008580 movw %cx, $-2(%rax) + 0x0f, 0xb7, 0x0c, 0x53, //0x00008584 movzwl (%rbx,%rdx,2), %ecx + 0x66, 0x89, 0x48, 0xfc, //0x00008588 movw %cx, $-4(%rax) + 0x45, 0x31, 0xc9, //0x0000858c xorl %r9d, %r9d + 0x48, 0x83, 0xc0, 0xfc, //0x0000858f addq $-4, %rax + 0x41, 0x83, 0xfb, 0x64, //0x00008593 cmpl $100, %r11d + 0x0f, 0x83, 0x18, 0x00, 0x00, 0x00, //0x00008597 jae LBB31_105 + //0x0000859d LBB31_102 + 0x44, 0x89, 0xd9, //0x0000859d movl %r11d, %ecx + 0xe9, 0x4d, 0x00, 0x00, 0x00, //0x000085a0 jmp LBB31_107 + //0x000085a5 LBB31_101 + 0x45, 0x31, 0xc9, //0x000085a5 xorl %r9d, %r9d + 0x45, 0x89, 0xeb, //0x000085a8 movl %r13d, %r11d + 0x41, 0x83, 0xfb, 0x64, //0x000085ab cmpl $100, %r11d + 0x0f, 0x82, 0xe8, 0xff, 0xff, 0xff, //0x000085af jb LBB31_102 + //0x000085b5 LBB31_105 + 0x48, 0xff, 0xc8, //0x000085b5 decq %rax + 0x48, 0x8d, 0x15, 0xb1, 0x3b, 0x00, 0x00, //0x000085b8 leaq $15281(%rip), %rdx /* _Digits+0(%rip) */ + 0x90, //0x000085bf .p2align 4, 0x90 + //0x000085c0 LBB31_106 + 0x44, 0x89, 0xd9, //0x000085c0 movl %r11d, %ecx + 0x48, 0x69, 0xc9, 0x1f, 0x85, 0xeb, 0x51, //0x000085c3 imulq $1374389535, %rcx, %rcx + 0x48, 0xc1, 0xe9, 0x25, //0x000085ca shrq $37, %rcx + 0x6b, 0xd9, 0x64, //0x000085ce imull $100, %ecx, %ebx + 0x44, 0x89, 0xde, //0x000085d1 movl %r11d, %esi + 0x29, 0xde, //0x000085d4 subl %ebx, %esi + 0x0f, 0xb7, 0x34, 0x72, //0x000085d6 movzwl (%rdx,%rsi,2), %esi + 0x66, 0x89, 0x70, 0xff, //0x000085da movw %si, $-1(%rax) + 0x48, 0x83, 0xc0, 0xfe, //0x000085de addq $-2, %rax + 0x41, 0x81, 0xfb, 0x0f, 0x27, 0x00, 0x00, //0x000085e2 cmpl $9999, %r11d + 0x41, 0x89, 0xcb, //0x000085e9 movl %ecx, %r11d + 0x0f, 0x87, 0xce, 0xff, 0xff, 0xff, //0x000085ec ja LBB31_106 + //0x000085f2 LBB31_107 + 0x83, 0xf9, 0x0a, //0x000085f2 cmpl $10, %ecx + 0x0f, 0x82, 0x16, 0x00, 0x00, 0x00, //0x000085f5 jb LBB31_109 + 0x89, 0xc8, //0x000085fb movl %ecx, %eax + 0x48, 0x8d, 0x0d, 0x6c, 0x3b, 0x00, 0x00, //0x000085fd leaq $15212(%rip), %rcx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x04, 0x41, //0x00008604 movzwl (%rcx,%rax,2), %eax + 0x66, 0x41, 0x89, 0x00, //0x00008608 movw %ax, (%r8) + 0xe9, 0x06, 0x00, 0x00, 0x00, //0x0000860c jmp LBB31_110 + //0x00008611 LBB31_109 + 0x80, 0xc1, 0x30, //0x00008611 addb $48, %cl + 0x41, 0x88, 0x08, //0x00008614 movb %cl, (%r8) + //0x00008617 LBB31_110 + 0x4d, 0x29, 0xcc, //0x00008617 subq %r9, %r12 + 0x49, 0x8d, 0x74, 0x24, 0x01, //0x0000861a leaq $1(%r12), %rsi + 0x49, 0x8d, 0x54, 0x24, 0x11, //0x0000861f leaq $17(%r12), %rdx + 0x49, 0x8d, 0x44, 0x24, 0x02, //0x00008624 leaq $2(%r12), %rax + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008629 .p2align 4, 0x90 + //0x00008630 LBB31_111 + 0x48, 0xff, 0xca, //0x00008630 decq %rdx + 0x48, 0xff, 0xce, //0x00008633 decq %rsi + 0x48, 0xff, 0xc8, //0x00008636 decq %rax + 0x43, 0x80, 0x7c, 0x20, 0xff, 0x30, //0x00008639 cmpb $48, $-1(%r8,%r12) + 0x4d, 0x8d, 0x64, 0x24, 0xff, //0x0000863f leaq $-1(%r12), %r12 + 0x0f, 0x84, 0xe6, 0xff, 0xff, 0xff, //0x00008644 je LBB31_111 + 0x4d, 0x8d, 0x0c, 0x30, //0x0000864a leaq (%r8,%rsi), %r9 + 0x45, 0x85, 0xd2, //0x0000864e testl %r10d, %r10d + 0x0f, 0x8e, 0x8b, 0x00, 0x00, 0x00, //0x00008651 jle LBB31_116 + 0x44, 0x89, 0xc9, //0x00008657 movl %r9d, %ecx + 0x44, 0x29, 0xc1, //0x0000865a subl %r8d, %ecx + 0x41, 0x39, 0xca, //0x0000865d cmpl %ecx, %r10d + 0x0f, 0x8d, 0x23, 0x00, 0x00, 0x00, //0x00008660 jge LBB31_117 + 0x43, 0x8d, 0x0c, 0x02, //0x00008666 leal (%r10,%r8), %ecx + 0x41, 0x29, 0xc9, //0x0000866a subl %ecx, %r9d + 0x49, 0x8d, 0x49, 0xff, //0x0000866d leaq $-1(%r9), %rcx + 0x45, 0x89, 0xcb, //0x00008671 movl %r9d, %r11d + 0x41, 0x83, 0xe3, 0x03, //0x00008674 andl $3, %r11d + 0x48, 0x83, 0xf9, 0x03, //0x00008678 cmpq $3, %rcx + 0x0f, 0x83, 0x81, 0x00, 0x00, 0x00, //0x0000867c jae LBB31_121 + 0x31, 0xc9, //0x00008682 xorl %ecx, %ecx + 0xe9, 0xa3, 0x00, 0x00, 0x00, //0x00008684 jmp LBB31_124 + //0x00008689 LBB31_117 + 0x0f, 0x8e, 0x53, 0x00, 0x00, 0x00, //0x00008689 jle LBB31_116 + 0x45, 0x01, 0xc2, //0x0000868f addl %r8d, %r10d + 0x45, 0x89, 0xcf, //0x00008692 movl %r9d, %r15d + 0x41, 0xf7, 0xd7, //0x00008695 notl %r15d + 0x45, 0x01, 0xd7, //0x00008698 addl %r10d, %r15d + 0x45, 0x31, 0xf6, //0x0000869b xorl %r14d, %r14d + 0x4d, 0x89, 0xcb, //0x0000869e movq %r9, %r11 + 0x41, 0x83, 0xff, 0x1e, //0x000086a1 cmpl $30, %r15d + 0x0f, 0x86, 0x9b, 0x01, 0x00, 0x00, //0x000086a5 jbe LBB31_135 + 0x49, 0xff, 0xc7, //0x000086ab incq %r15 + 0x4d, 0x89, 0xfe, //0x000086ae movq %r15, %r14 + 0x49, 0x83, 0xe6, 0xe0, //0x000086b1 andq $-32, %r14 + 0x4f, 0x8d, 0x1c, 0x30, //0x000086b5 leaq (%r8,%r14), %r11 + 0x49, 0x8d, 0x5e, 0xe0, //0x000086b9 leaq $-32(%r14), %rbx + 0x48, 0x89, 0xd8, //0x000086bd movq %rbx, %rax + 0x48, 0xc1, 0xe8, 0x05, //0x000086c0 shrq $5, %rax + 0x48, 0xff, 0xc0, //0x000086c4 incq %rax + 0x41, 0x89, 0xc4, //0x000086c7 movl %eax, %r12d + 0x41, 0x83, 0xe4, 0x07, //0x000086ca andl $7, %r12d + 0x48, 0x81, 0xfb, 0xe0, 0x00, 0x00, 0x00, //0x000086ce cmpq $224, %rbx + 0x0f, 0x83, 0x8f, 0x00, 0x00, 0x00, //0x000086d5 jae LBB31_129 + 0x31, 0xc0, //0x000086db xorl %eax, %eax + 0xe9, 0x23, 0x01, 0x00, 0x00, //0x000086dd jmp LBB31_131 + //0x000086e2 LBB31_116 + 0x4d, 0x89, 0xc8, //0x000086e2 movq %r9, %r8 + 0xe9, 0x76, 0x01, 0x00, 0x00, //0x000086e5 jmp LBB31_137 + //0x000086ea LBB31_103 + 0x41, 0xb9, 0x04, 0x00, 0x00, 0x00, //0x000086ea movl $4, %r9d + 0x48, 0x83, 0xc0, 0xfc, //0x000086f0 addq $-4, %rax + 0x41, 0x83, 0xfb, 0x64, //0x000086f4 cmpl $100, %r11d + 0x0f, 0x82, 0x9f, 0xfe, 0xff, 0xff, //0x000086f8 jb LBB31_102 + 0xe9, 0xb2, 0xfe, 0xff, 0xff, //0x000086fe jmp LBB31_105 + //0x00008703 LBB31_121 + 0x4d, 0x89, 0xde, //0x00008703 movq %r11, %r14 + 0x4d, 0x29, 0xce, //0x00008706 subq %r9, %r14 + 0x31, 0xc9, //0x00008709 xorl %ecx, %ecx + 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000870b .p2align 4, 0x90 + //0x00008710 LBB31_122 + 0x49, 0x8d, 0x1c, 0x08, //0x00008710 leaq (%r8,%rcx), %rbx + 0x8b, 0x54, 0x1e, 0xfc, //0x00008714 movl $-4(%rsi,%rbx), %edx + 0x89, 0x54, 0x1e, 0xfd, //0x00008718 movl %edx, $-3(%rsi,%rbx) + 0x48, 0x83, 0xc1, 0xfc, //0x0000871c addq $-4, %rcx + 0x49, 0x39, 0xce, //0x00008720 cmpq %rcx, %r14 + 0x0f, 0x85, 0xe7, 0xff, 0xff, 0xff, //0x00008723 jne LBB31_122 + 0x48, 0xf7, 0xd9, //0x00008729 negq %rcx + //0x0000872c LBB31_124 + 0x4d, 0x85, 0xdb, //0x0000872c testq %r11, %r11 + 0x0f, 0x84, 0x25, 0x00, 0x00, 0x00, //0x0000872f je LBB31_127 + 0x49, 0xf7, 0xdb, //0x00008735 negq %r11 + 0x4c, 0x89, 0xc2, //0x00008738 movq %r8, %rdx + 0x48, 0x29, 0xca, //0x0000873b subq %rcx, %rdx + 0x31, 0xc9, //0x0000873e xorl %ecx, %ecx + //0x00008740 .p2align 4, 0x90 + //0x00008740 LBB31_126 + 0x48, 0x8d, 0x34, 0x0a, //0x00008740 leaq (%rdx,%rcx), %rsi + 0x41, 0x0f, 0xb6, 0x1c, 0x34, //0x00008744 movzbl (%r12,%rsi), %ebx + 0x41, 0x88, 0x5c, 0x34, 0x01, //0x00008749 movb %bl, $1(%r12,%rsi) + 0x48, 0xff, 0xc9, //0x0000874e decq %rcx + 0x49, 0x39, 0xcb, //0x00008751 cmpq %rcx, %r11 + 0x0f, 0x85, 0xe6, 0xff, 0xff, 0xff, //0x00008754 jne LBB31_126 + //0x0000875a LBB31_127 + 0x49, 0x63, 0xca, //0x0000875a movslq %r10d, %rcx + 0x41, 0xc6, 0x04, 0x08, 0x2e, //0x0000875d movb $46, (%r8,%rcx) + 0x49, 0x01, 0xc0, //0x00008762 addq %rax, %r8 + 0xe9, 0xf6, 0x00, 0x00, 0x00, //0x00008765 jmp LBB31_137 + //0x0000876a LBB31_129 + 0x4c, 0x89, 0xe3, //0x0000876a movq %r12, %rbx + 0x48, 0x29, 0xc3, //0x0000876d subq %rax, %rbx + 0x31, 0xc0, //0x00008770 xorl %eax, %eax + 0x66, 0x0f, 0x6f, 0x05, 0x06, 0xf4, 0xff, 0xff, //0x00008772 movdqa $-3066(%rip), %xmm0 /* LCPI31_0+0(%rip) */ + //0x0000877a LBB31_130 + 0x49, 0x8d, 0x0c, 0x00, //0x0000877a leaq (%r8,%rax), %rcx + 0xf3, 0x0f, 0x7f, 0x04, 0x0e, //0x0000877e movdqu %xmm0, (%rsi,%rcx) + 0xf3, 0x0f, 0x7f, 0x44, 0x0e, 0x10, //0x00008783 movdqu %xmm0, $16(%rsi,%rcx) + 0xf3, 0x0f, 0x7f, 0x44, 0x0e, 0x20, //0x00008789 movdqu %xmm0, $32(%rsi,%rcx) + 0xf3, 0x0f, 0x7f, 0x44, 0x0e, 0x30, //0x0000878f movdqu %xmm0, $48(%rsi,%rcx) + 0xf3, 0x0f, 0x7f, 0x44, 0x0e, 0x40, //0x00008795 movdqu %xmm0, $64(%rsi,%rcx) + 0xf3, 0x0f, 0x7f, 0x44, 0x0e, 0x50, //0x0000879b movdqu %xmm0, $80(%rsi,%rcx) + 0xf3, 0x0f, 0x7f, 0x44, 0x0e, 0x60, //0x000087a1 movdqu %xmm0, $96(%rsi,%rcx) + 0xf3, 0x0f, 0x7f, 0x44, 0x0e, 0x70, //0x000087a7 movdqu %xmm0, $112(%rsi,%rcx) + 0xf3, 0x0f, 0x7f, 0x84, 0x0e, 0x80, 0x00, 0x00, 0x00, //0x000087ad movdqu %xmm0, $128(%rsi,%rcx) + 0xf3, 0x0f, 0x7f, 0x84, 0x0e, 0x90, 0x00, 0x00, 0x00, //0x000087b6 movdqu %xmm0, $144(%rsi,%rcx) + 0xf3, 0x0f, 0x7f, 0x84, 0x0e, 0xa0, 0x00, 0x00, 0x00, //0x000087bf movdqu %xmm0, $160(%rsi,%rcx) + 0xf3, 0x0f, 0x7f, 0x84, 0x0e, 0xb0, 0x00, 0x00, 0x00, //0x000087c8 movdqu %xmm0, $176(%rsi,%rcx) + 0xf3, 0x0f, 0x7f, 0x84, 0x0e, 0xc0, 0x00, 0x00, 0x00, //0x000087d1 movdqu %xmm0, $192(%rsi,%rcx) + 0xf3, 0x0f, 0x7f, 0x84, 0x0e, 0xd0, 0x00, 0x00, 0x00, //0x000087da movdqu %xmm0, $208(%rsi,%rcx) + 0xf3, 0x0f, 0x7f, 0x84, 0x0e, 0xe0, 0x00, 0x00, 0x00, //0x000087e3 movdqu %xmm0, $224(%rsi,%rcx) + 0xf3, 0x0f, 0x7f, 0x84, 0x0e, 0xf0, 0x00, 0x00, 0x00, //0x000087ec movdqu %xmm0, $240(%rsi,%rcx) + 0x48, 0x05, 0x00, 0x01, 0x00, 0x00, //0x000087f5 addq $256, %rax + 0x48, 0x83, 0xc3, 0x08, //0x000087fb addq $8, %rbx + 0x0f, 0x85, 0x75, 0xff, 0xff, 0xff, //0x000087ff jne LBB31_130 + //0x00008805 LBB31_131 + 0x49, 0x01, 0xf3, //0x00008805 addq %rsi, %r11 + 0x4d, 0x85, 0xe4, //0x00008808 testq %r12, %r12 + 0x0f, 0x84, 0x29, 0x00, 0x00, 0x00, //0x0000880b je LBB31_134 + 0x49, 0x01, 0xc0, //0x00008811 addq %rax, %r8 + 0x49, 0x01, 0xd0, //0x00008814 addq %rdx, %r8 + 0x49, 0xf7, 0xdc, //0x00008817 negq %r12 + 0x66, 0x0f, 0x6f, 0x05, 0x5e, 0xf3, 0xff, 0xff, //0x0000881a movdqa $-3234(%rip), %xmm0 /* LCPI31_0+0(%rip) */ + //0x00008822 LBB31_133 + 0xf3, 0x41, 0x0f, 0x7f, 0x40, 0xf0, //0x00008822 movdqu %xmm0, $-16(%r8) + 0xf3, 0x41, 0x0f, 0x7f, 0x00, //0x00008828 movdqu %xmm0, (%r8) + 0x49, 0x83, 0xc0, 0x20, //0x0000882d addq $32, %r8 + 0x49, 0xff, 0xc4, //0x00008831 incq %r12 + 0x0f, 0x85, 0xe8, 0xff, 0xff, 0xff, //0x00008834 jne LBB31_133 + //0x0000883a LBB31_134 + 0x4d, 0x89, 0xd8, //0x0000883a movq %r11, %r8 + 0x4d, 0x39, 0xf7, //0x0000883d cmpq %r14, %r15 + 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x00008840 je LBB31_137 + //0x00008846 LBB31_135 + 0x45, 0x29, 0xf2, //0x00008846 subl %r14d, %r10d + 0x45, 0x29, 0xca, //0x00008849 subl %r9d, %r10d + 0x4d, 0x89, 0xd8, //0x0000884c movq %r11, %r8 + 0x90, //0x0000884f .p2align 4, 0x90 + //0x00008850 LBB31_136 + 0x41, 0xc6, 0x00, 0x30, //0x00008850 movb $48, (%r8) + 0x49, 0xff, 0xc0, //0x00008854 incq %r8 + 0x41, 0xff, 0xca, //0x00008857 decl %r10d + 0x0f, 0x85, 0xf0, 0xff, 0xff, 0xff, //0x0000885a jne LBB31_136 + //0x00008860 LBB31_137 + 0x41, 0x29, 0xf8, //0x00008860 subl %edi, %r8d + //0x00008863 LBB31_138 + 0x44, 0x89, 0xc0, //0x00008863 movl %r8d, %eax + 0x5b, //0x00008866 popq %rbx + 0x41, 0x5c, //0x00008867 popq %r12 + 0x41, 0x5d, //0x00008869 popq %r13 + 0x41, 0x5e, //0x0000886b popq %r14 + 0x41, 0x5f, //0x0000886d popq %r15 + 0x5d, //0x0000886f popq %rbp + 0xc3, //0x00008870 retq + //0x00008871 LBB31_139 + 0x45, 0x31, 0xc0, //0x00008871 xorl %r8d, %r8d + 0xe9, 0xea, 0xff, 0xff, 0xff, //0x00008874 jmp LBB31_138 + //0x00008879 LBB31_140 + 0x41, 0xbf, 0x6b, 0xff, 0xff, 0xff, //0x00008879 movl $-149, %r15d + 0x89, 0xc6, //0x0000887f movl %eax, %esi + 0xe9, 0x89, 0xf3, 0xff, 0xff, //0x00008881 jmp LBB31_5 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00008886 .p2align 4, 0x00 + //0x00008890 LCPI32_0 + 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, //0x00008890 QUAD $0x4040404040404040; QUAD $0x4040404040404040 // .space 16, '@@@@@@@@@@@@@@@@' + //0x000088a0 LCPI32_1 + 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, //0x000088a0 QUAD $0x5b5b5b5b5b5b5b5b; QUAD $0x5b5b5b5b5b5b5b5b // .space 16, '[[[[[[[[[[[[[[[[' + //0x000088b0 LCPI32_2 + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, //0x000088b0 QUAD $0x0101010101010101; QUAD $0x0101010101010101 // .space 16, '\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01' + //0x000088c0 LCPI32_3 + 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, //0x000088c0 QUAD $0xbfbfbfbfbfbfbfbf; QUAD $0xbfbfbfbfbfbfbfbf // .space 16, '\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf' + //0x000088d0 LCPI32_4 + 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, //0x000088d0 QUAD $0x1919191919191919; QUAD $0x1919191919191919 // .space 16, '\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19' + //0x000088e0 LCPI32_5 + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x000088e0 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' + //0x000088f0 .p2align 4, 0x90 + //0x000088f0 _to_lower + 0x55, //0x000088f0 pushq %rbp + 0x48, 0x89, 0xe5, //0x000088f1 movq %rsp, %rbp + 0x48, 0x83, 0xfa, 0x10, //0x000088f4 cmpq $16, %rdx + 0x0f, 0x82, 0xef, 0x00, 0x00, 0x00, //0x000088f8 jb LBB32_8 + 0x48, 0x8d, 0x4a, 0xf0, //0x000088fe leaq $-16(%rdx), %rcx + 0xf6, 0xc1, 0x10, //0x00008902 testb $16, %cl + 0x0f, 0x85, 0x4f, 0x00, 0x00, 0x00, //0x00008905 jne LBB32_2 + 0xf3, 0x0f, 0x6f, 0x06, //0x0000890b movdqu (%rsi), %xmm0 + 0x66, 0x0f, 0x6f, 0xc8, //0x0000890f movdqa %xmm0, %xmm1 + 0x66, 0x0f, 0x64, 0x0d, 0x75, 0xff, 0xff, 0xff, //0x00008913 pcmpgtb $-139(%rip), %xmm1 /* LCPI32_0+0(%rip) */ + 0x66, 0x0f, 0x6f, 0x15, 0x7d, 0xff, 0xff, 0xff, //0x0000891b movdqa $-131(%rip), %xmm2 /* LCPI32_1+0(%rip) */ + 0x66, 0x0f, 0x64, 0xd0, //0x00008923 pcmpgtb %xmm0, %xmm2 + 0x66, 0x0f, 0xdb, 0xd1, //0x00008927 pand %xmm1, %xmm2 + 0x66, 0x0f, 0xdb, 0x15, 0x7d, 0xff, 0xff, 0xff, //0x0000892b pand $-131(%rip), %xmm2 /* LCPI32_2+0(%rip) */ + 0x66, 0x0f, 0x71, 0xf2, 0x05, //0x00008933 psllw $5, %xmm2 + 0x66, 0x0f, 0xfc, 0xd0, //0x00008938 paddb %xmm0, %xmm2 + 0xf3, 0x0f, 0x7f, 0x17, //0x0000893c movdqu %xmm2, (%rdi) + 0x48, 0x83, 0xc6, 0x10, //0x00008940 addq $16, %rsi + 0x48, 0x83, 0xc7, 0x10, //0x00008944 addq $16, %rdi + 0x48, 0x89, 0xc8, //0x00008948 movq %rcx, %rax + 0x48, 0x83, 0xf9, 0x10, //0x0000894b cmpq $16, %rcx + 0x0f, 0x83, 0x12, 0x00, 0x00, 0x00, //0x0000894f jae LBB32_5 + 0xe9, 0x90, 0x00, 0x00, 0x00, //0x00008955 jmp LBB32_7 + //0x0000895a LBB32_2 + 0x48, 0x89, 0xd0, //0x0000895a movq %rdx, %rax + 0x48, 0x83, 0xf9, 0x10, //0x0000895d cmpq $16, %rcx + 0x0f, 0x82, 0x83, 0x00, 0x00, 0x00, //0x00008961 jb LBB32_7 + //0x00008967 LBB32_5 + 0x66, 0x0f, 0x6f, 0x05, 0x21, 0xff, 0xff, 0xff, //0x00008967 movdqa $-223(%rip), %xmm0 /* LCPI32_0+0(%rip) */ + 0x66, 0x0f, 0x6f, 0x0d, 0x29, 0xff, 0xff, 0xff, //0x0000896f movdqa $-215(%rip), %xmm1 /* LCPI32_1+0(%rip) */ + 0x66, 0x0f, 0x6f, 0x15, 0x31, 0xff, 0xff, 0xff, //0x00008977 movdqa $-207(%rip), %xmm2 /* LCPI32_2+0(%rip) */ + 0x90, //0x0000897f .p2align 4, 0x90 + //0x00008980 LBB32_6 + 0xf3, 0x0f, 0x6f, 0x1e, //0x00008980 movdqu (%rsi), %xmm3 + 0x66, 0x0f, 0x6f, 0xe3, //0x00008984 movdqa %xmm3, %xmm4 + 0x66, 0x0f, 0x64, 0xe0, //0x00008988 pcmpgtb %xmm0, %xmm4 + 0x66, 0x0f, 0x6f, 0xe9, //0x0000898c movdqa %xmm1, %xmm5 + 0x66, 0x0f, 0x64, 0xeb, //0x00008990 pcmpgtb %xmm3, %xmm5 + 0x66, 0x0f, 0xdb, 0xec, //0x00008994 pand %xmm4, %xmm5 + 0x66, 0x0f, 0xdb, 0xea, //0x00008998 pand %xmm2, %xmm5 + 0x66, 0x0f, 0x71, 0xf5, 0x05, //0x0000899c psllw $5, %xmm5 + 0x66, 0x0f, 0xfc, 0xeb, //0x000089a1 paddb %xmm3, %xmm5 + 0xf3, 0x0f, 0x7f, 0x2f, //0x000089a5 movdqu %xmm5, (%rdi) + 0xf3, 0x0f, 0x6f, 0x5e, 0x10, //0x000089a9 movdqu $16(%rsi), %xmm3 + 0x66, 0x0f, 0x6f, 0xe3, //0x000089ae movdqa %xmm3, %xmm4 + 0x66, 0x0f, 0x64, 0xe0, //0x000089b2 pcmpgtb %xmm0, %xmm4 + 0x66, 0x0f, 0x6f, 0xe9, //0x000089b6 movdqa %xmm1, %xmm5 + 0x66, 0x0f, 0x64, 0xeb, //0x000089ba pcmpgtb %xmm3, %xmm5 + 0x66, 0x0f, 0xdb, 0xec, //0x000089be pand %xmm4, %xmm5 + 0x66, 0x0f, 0xdb, 0xea, //0x000089c2 pand %xmm2, %xmm5 + 0x66, 0x0f, 0x71, 0xf5, 0x05, //0x000089c6 psllw $5, %xmm5 + 0x66, 0x0f, 0xfc, 0xeb, //0x000089cb paddb %xmm3, %xmm5 + 0xf3, 0x0f, 0x7f, 0x6f, 0x10, //0x000089cf movdqu %xmm5, $16(%rdi) + 0x48, 0x83, 0xc6, 0x20, //0x000089d4 addq $32, %rsi + 0x48, 0x83, 0xc7, 0x20, //0x000089d8 addq $32, %rdi + 0x48, 0x83, 0xc0, 0xe0, //0x000089dc addq $-32, %rax + 0x48, 0x83, 0xf8, 0x0f, //0x000089e0 cmpq $15, %rax + 0x0f, 0x87, 0x96, 0xff, 0xff, 0xff, //0x000089e4 ja LBB32_6 + //0x000089ea LBB32_7 + 0x83, 0xe2, 0x0f, //0x000089ea andl $15, %edx + //0x000089ed LBB32_8 + 0x48, 0x85, 0xd2, //0x000089ed testq %rdx, %rdx + 0x0f, 0x84, 0x69, 0x02, 0x00, 0x00, //0x000089f0 je LBB32_16 + 0x48, 0x83, 0xfa, 0x1f, //0x000089f6 cmpq $31, %rdx + 0x0f, 0x86, 0x1a, 0x00, 0x00, 0x00, //0x000089fa jbe LBB32_10 + 0x48, 0x8d, 0x04, 0x16, //0x00008a00 leaq (%rsi,%rdx), %rax + 0x48, 0x39, 0xc7, //0x00008a04 cmpq %rax, %rdi + 0x0f, 0x83, 0x28, 0x00, 0x00, 0x00, //0x00008a07 jae LBB32_19 + 0x48, 0x8d, 0x04, 0x17, //0x00008a0d leaq (%rdi,%rdx), %rax + 0x48, 0x39, 0xc6, //0x00008a11 cmpq %rax, %rsi + 0x0f, 0x83, 0x1b, 0x00, 0x00, 0x00, //0x00008a14 jae LBB32_19 + //0x00008a1a LBB32_10 + 0xf6, 0xc2, 0x01, //0x00008a1a testb $1, %dl + 0x0f, 0x85, 0xcf, 0x01, 0x00, 0x00, //0x00008a1d jne LBB32_12 + //0x00008a23 LBB32_11 + 0x49, 0x89, 0xd0, //0x00008a23 movq %rdx, %r8 + 0x48, 0x83, 0xfa, 0x01, //0x00008a26 cmpq $1, %rdx + 0x0f, 0x85, 0xec, 0x01, 0x00, 0x00, //0x00008a2a jne LBB32_14 + 0xe9, 0x2a, 0x02, 0x00, 0x00, //0x00008a30 jmp LBB32_16 + //0x00008a35 LBB32_19 + 0x49, 0x89, 0xd0, //0x00008a35 movq %rdx, %r8 + 0x49, 0x83, 0xe0, 0xe0, //0x00008a38 andq $-32, %r8 + 0x49, 0x8d, 0x48, 0xe0, //0x00008a3c leaq $-32(%r8), %rcx + 0x48, 0x89, 0xc8, //0x00008a40 movq %rcx, %rax + 0x48, 0xc1, 0xe8, 0x05, //0x00008a43 shrq $5, %rax + 0x48, 0xff, 0xc0, //0x00008a47 incq %rax + 0x41, 0x89, 0xc1, //0x00008a4a movl %eax, %r9d + 0x41, 0x83, 0xe1, 0x01, //0x00008a4d andl $1, %r9d + 0x48, 0x85, 0xc9, //0x00008a51 testq %rcx, %rcx + 0x0f, 0x84, 0x07, 0x02, 0x00, 0x00, //0x00008a54 je LBB32_20 + 0x4c, 0x29, 0xc8, //0x00008a5a subq %r9, %rax + 0x31, 0xc9, //0x00008a5d xorl %ecx, %ecx + 0x66, 0x0f, 0x6f, 0x05, 0x59, 0xfe, 0xff, 0xff, //0x00008a5f movdqa $-423(%rip), %xmm0 /* LCPI32_3+0(%rip) */ + 0x66, 0x0f, 0x6f, 0x0d, 0x61, 0xfe, 0xff, 0xff, //0x00008a67 movdqa $-415(%rip), %xmm1 /* LCPI32_4+0(%rip) */ + 0x66, 0x0f, 0x6f, 0x15, 0x69, 0xfe, 0xff, 0xff, //0x00008a6f movdqa $-407(%rip), %xmm2 /* LCPI32_5+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008a77 .p2align 4, 0x90 + //0x00008a80 LBB32_22 + 0xf3, 0x0f, 0x6f, 0x1c, 0x0e, //0x00008a80 movdqu (%rsi,%rcx), %xmm3 + 0xf3, 0x0f, 0x6f, 0x64, 0x0e, 0x10, //0x00008a85 movdqu $16(%rsi,%rcx), %xmm4 + 0x66, 0x0f, 0x6f, 0xeb, //0x00008a8b movdqa %xmm3, %xmm5 + 0x66, 0x0f, 0xfc, 0xe8, //0x00008a8f paddb %xmm0, %xmm5 + 0x66, 0x0f, 0x6f, 0xf4, //0x00008a93 movdqa %xmm4, %xmm6 + 0x66, 0x0f, 0xfc, 0xf0, //0x00008a97 paddb %xmm0, %xmm6 + 0x66, 0x0f, 0x6f, 0xfd, //0x00008a9b movdqa %xmm5, %xmm7 + 0x66, 0x0f, 0xda, 0xf9, //0x00008a9f pminub %xmm1, %xmm7 + 0x66, 0x0f, 0x74, 0xfd, //0x00008aa3 pcmpeqb %xmm5, %xmm7 + 0x66, 0x0f, 0x6f, 0xee, //0x00008aa7 movdqa %xmm6, %xmm5 + 0x66, 0x0f, 0xda, 0xe9, //0x00008aab pminub %xmm1, %xmm5 + 0x66, 0x0f, 0x74, 0xee, //0x00008aaf pcmpeqb %xmm6, %xmm5 + 0x66, 0x0f, 0x6f, 0xf7, //0x00008ab3 movdqa %xmm7, %xmm6 + 0x66, 0x0f, 0xdf, 0xf3, //0x00008ab7 pandn %xmm3, %xmm6 + 0x66, 0x0f, 0xfc, 0xda, //0x00008abb paddb %xmm2, %xmm3 + 0x66, 0x0f, 0xdb, 0xdf, //0x00008abf pand %xmm7, %xmm3 + 0x66, 0x0f, 0xeb, 0xde, //0x00008ac3 por %xmm6, %xmm3 + 0x66, 0x0f, 0x6f, 0xf5, //0x00008ac7 movdqa %xmm5, %xmm6 + 0x66, 0x0f, 0xdf, 0xf4, //0x00008acb pandn %xmm4, %xmm6 + 0x66, 0x0f, 0xfc, 0xe2, //0x00008acf paddb %xmm2, %xmm4 + 0x66, 0x0f, 0xdb, 0xe5, //0x00008ad3 pand %xmm5, %xmm4 + 0x66, 0x0f, 0xeb, 0xe6, //0x00008ad7 por %xmm6, %xmm4 + 0xf3, 0x0f, 0x7f, 0x1c, 0x0f, //0x00008adb movdqu %xmm3, (%rdi,%rcx) + 0xf3, 0x0f, 0x7f, 0x64, 0x0f, 0x10, //0x00008ae0 movdqu %xmm4, $16(%rdi,%rcx) + 0xf3, 0x0f, 0x6f, 0x5c, 0x0e, 0x20, //0x00008ae6 movdqu $32(%rsi,%rcx), %xmm3 + 0xf3, 0x0f, 0x6f, 0x64, 0x0e, 0x30, //0x00008aec movdqu $48(%rsi,%rcx), %xmm4 + 0x66, 0x0f, 0x6f, 0xeb, //0x00008af2 movdqa %xmm3, %xmm5 + 0x66, 0x0f, 0xfc, 0xe8, //0x00008af6 paddb %xmm0, %xmm5 + 0x66, 0x0f, 0x6f, 0xf4, //0x00008afa movdqa %xmm4, %xmm6 + 0x66, 0x0f, 0xfc, 0xf0, //0x00008afe paddb %xmm0, %xmm6 + 0x66, 0x0f, 0x6f, 0xfd, //0x00008b02 movdqa %xmm5, %xmm7 + 0x66, 0x0f, 0xda, 0xf9, //0x00008b06 pminub %xmm1, %xmm7 + 0x66, 0x0f, 0x74, 0xfd, //0x00008b0a pcmpeqb %xmm5, %xmm7 + 0x66, 0x0f, 0x6f, 0xee, //0x00008b0e movdqa %xmm6, %xmm5 + 0x66, 0x0f, 0xda, 0xe9, //0x00008b12 pminub %xmm1, %xmm5 + 0x66, 0x0f, 0x74, 0xee, //0x00008b16 pcmpeqb %xmm6, %xmm5 + 0x66, 0x0f, 0x6f, 0xf7, //0x00008b1a movdqa %xmm7, %xmm6 + 0x66, 0x0f, 0xdf, 0xf3, //0x00008b1e pandn %xmm3, %xmm6 + 0x66, 0x0f, 0xfc, 0xda, //0x00008b22 paddb %xmm2, %xmm3 + 0x66, 0x0f, 0xdb, 0xdf, //0x00008b26 pand %xmm7, %xmm3 + 0x66, 0x0f, 0xeb, 0xde, //0x00008b2a por %xmm6, %xmm3 + 0x66, 0x0f, 0x6f, 0xf5, //0x00008b2e movdqa %xmm5, %xmm6 + 0x66, 0x0f, 0xdf, 0xf4, //0x00008b32 pandn %xmm4, %xmm6 + 0x66, 0x0f, 0xfc, 0xe2, //0x00008b36 paddb %xmm2, %xmm4 + 0x66, 0x0f, 0xdb, 0xe5, //0x00008b3a pand %xmm5, %xmm4 + 0x66, 0x0f, 0xeb, 0xe6, //0x00008b3e por %xmm6, %xmm4 + 0xf3, 0x0f, 0x7f, 0x5c, 0x0f, 0x20, //0x00008b42 movdqu %xmm3, $32(%rdi,%rcx) + 0xf3, 0x0f, 0x7f, 0x64, 0x0f, 0x30, //0x00008b48 movdqu %xmm4, $48(%rdi,%rcx) + 0x48, 0x83, 0xc1, 0x40, //0x00008b4e addq $64, %rcx + 0x48, 0x83, 0xc0, 0xfe, //0x00008b52 addq $-2, %rax + 0x0f, 0x85, 0x24, 0xff, 0xff, 0xff, //0x00008b56 jne LBB32_22 + 0x4d, 0x85, 0xc9, //0x00008b5c testq %r9, %r9 + 0x0f, 0x84, 0x72, 0x00, 0x00, 0x00, //0x00008b5f je LBB32_25 + //0x00008b65 LBB32_24 + 0xf3, 0x0f, 0x6f, 0x04, 0x0e, //0x00008b65 movdqu (%rsi,%rcx), %xmm0 + 0xf3, 0x0f, 0x6f, 0x4c, 0x0e, 0x10, //0x00008b6a movdqu $16(%rsi,%rcx), %xmm1 + 0x66, 0x0f, 0x6f, 0x15, 0x48, 0xfd, 0xff, 0xff, //0x00008b70 movdqa $-696(%rip), %xmm2 /* LCPI32_3+0(%rip) */ + 0x66, 0x0f, 0x6f, 0xd8, //0x00008b78 movdqa %xmm0, %xmm3 + 0x66, 0x0f, 0xfc, 0xda, //0x00008b7c paddb %xmm2, %xmm3 + 0x66, 0x0f, 0xfc, 0xd1, //0x00008b80 paddb %xmm1, %xmm2 + 0x66, 0x0f, 0x6f, 0x25, 0x44, 0xfd, 0xff, 0xff, //0x00008b84 movdqa $-700(%rip), %xmm4 /* LCPI32_4+0(%rip) */ + 0x66, 0x0f, 0x6f, 0xeb, //0x00008b8c movdqa %xmm3, %xmm5 + 0x66, 0x0f, 0xda, 0xec, //0x00008b90 pminub %xmm4, %xmm5 + 0x66, 0x0f, 0x74, 0xeb, //0x00008b94 pcmpeqb %xmm3, %xmm5 + 0x66, 0x0f, 0xda, 0xe2, //0x00008b98 pminub %xmm2, %xmm4 + 0x66, 0x0f, 0x74, 0xe2, //0x00008b9c pcmpeqb %xmm2, %xmm4 + 0x66, 0x0f, 0x6f, 0x15, 0x38, 0xfd, 0xff, 0xff, //0x00008ba0 movdqa $-712(%rip), %xmm2 /* LCPI32_5+0(%rip) */ + 0x66, 0x0f, 0x6f, 0xdd, //0x00008ba8 movdqa %xmm5, %xmm3 + 0x66, 0x0f, 0xdf, 0xd8, //0x00008bac pandn %xmm0, %xmm3 + 0x66, 0x0f, 0xfc, 0xc2, //0x00008bb0 paddb %xmm2, %xmm0 + 0x66, 0x0f, 0xfc, 0xd1, //0x00008bb4 paddb %xmm1, %xmm2 + 0x66, 0x0f, 0xdb, 0xc5, //0x00008bb8 pand %xmm5, %xmm0 + 0x66, 0x0f, 0xeb, 0xc3, //0x00008bbc por %xmm3, %xmm0 + 0x66, 0x0f, 0xdb, 0xd4, //0x00008bc0 pand %xmm4, %xmm2 + 0x66, 0x0f, 0xdf, 0xe1, //0x00008bc4 pandn %xmm1, %xmm4 + 0x66, 0x0f, 0xeb, 0xe2, //0x00008bc8 por %xmm2, %xmm4 + 0xf3, 0x0f, 0x7f, 0x04, 0x0f, //0x00008bcc movdqu %xmm0, (%rdi,%rcx) + 0xf3, 0x0f, 0x7f, 0x64, 0x0f, 0x10, //0x00008bd1 movdqu %xmm4, $16(%rdi,%rcx) + //0x00008bd7 LBB32_25 + 0x4c, 0x39, 0xc2, //0x00008bd7 cmpq %r8, %rdx + 0x0f, 0x84, 0x7f, 0x00, 0x00, 0x00, //0x00008bda je LBB32_16 + 0x83, 0xe2, 0x1f, //0x00008be0 andl $31, %edx + 0x4c, 0x01, 0xc6, //0x00008be3 addq %r8, %rsi + 0x4c, 0x01, 0xc7, //0x00008be6 addq %r8, %rdi + 0xf6, 0xc2, 0x01, //0x00008be9 testb $1, %dl + 0x0f, 0x84, 0x31, 0xfe, 0xff, 0xff, //0x00008bec je LBB32_11 + //0x00008bf2 LBB32_12 + 0x0f, 0xb6, 0x06, //0x00008bf2 movzbl (%rsi), %eax + 0x44, 0x8d, 0x40, 0xbf, //0x00008bf5 leal $-65(%rax), %r8d + 0x8d, 0x48, 0x20, //0x00008bf9 leal $32(%rax), %ecx + 0x41, 0x80, 0xf8, 0x1a, //0x00008bfc cmpb $26, %r8b + 0x0f, 0xb6, 0xc9, //0x00008c00 movzbl %cl, %ecx + 0x0f, 0x43, 0xc8, //0x00008c03 cmovael %eax, %ecx + 0x4c, 0x8d, 0x42, 0xff, //0x00008c06 leaq $-1(%rdx), %r8 + 0x88, 0x0f, //0x00008c0a movb %cl, (%rdi) + 0x48, 0xff, 0xc6, //0x00008c0c incq %rsi + 0x48, 0xff, 0xc7, //0x00008c0f incq %rdi + 0x48, 0x83, 0xfa, 0x01, //0x00008c12 cmpq $1, %rdx + 0x0f, 0x84, 0x43, 0x00, 0x00, 0x00, //0x00008c16 je LBB32_16 + //0x00008c1c LBB32_14 + 0x31, 0xc9, //0x00008c1c xorl %ecx, %ecx + 0x90, 0x90, //0x00008c1e .p2align 4, 0x90 + //0x00008c20 LBB32_15 + 0x0f, 0xb6, 0x14, 0x0e, //0x00008c20 movzbl (%rsi,%rcx), %edx + 0x44, 0x8d, 0x4a, 0xbf, //0x00008c24 leal $-65(%rdx), %r9d + 0x8d, 0x42, 0x20, //0x00008c28 leal $32(%rdx), %eax + 0x41, 0x80, 0xf9, 0x1a, //0x00008c2b cmpb $26, %r9b + 0x0f, 0xb6, 0xc0, //0x00008c2f movzbl %al, %eax + 0x0f, 0x43, 0xc2, //0x00008c32 cmovael %edx, %eax + 0x88, 0x04, 0x0f, //0x00008c35 movb %al, (%rdi,%rcx) + 0x0f, 0xb6, 0x44, 0x0e, 0x01, //0x00008c38 movzbl $1(%rsi,%rcx), %eax + 0x44, 0x8d, 0x48, 0xbf, //0x00008c3d leal $-65(%rax), %r9d + 0x8d, 0x50, 0x20, //0x00008c41 leal $32(%rax), %edx + 0x41, 0x80, 0xf9, 0x1a, //0x00008c44 cmpb $26, %r9b + 0x0f, 0xb6, 0xd2, //0x00008c48 movzbl %dl, %edx + 0x0f, 0x43, 0xd0, //0x00008c4b cmovael %eax, %edx + 0x88, 0x54, 0x0f, 0x01, //0x00008c4e movb %dl, $1(%rdi,%rcx) + 0x48, 0x83, 0xc1, 0x02, //0x00008c52 addq $2, %rcx + 0x49, 0x39, 0xc8, //0x00008c56 cmpq %rcx, %r8 + 0x0f, 0x85, 0xc1, 0xff, 0xff, 0xff, //0x00008c59 jne LBB32_15 + //0x00008c5f LBB32_16 + 0x5d, //0x00008c5f popq %rbp + 0xc3, //0x00008c60 retq + //0x00008c61 LBB32_20 + 0x31, 0xc9, //0x00008c61 xorl %ecx, %ecx + 0x4d, 0x85, 0xc9, //0x00008c63 testq %r9, %r9 + 0x0f, 0x85, 0xf9, 0xfe, 0xff, 0xff, //0x00008c66 jne LBB32_24 + 0xe9, 0x66, 0xff, 0xff, 0xff, //0x00008c6c jmp LBB32_25 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008c71 .p2align 4, 0x90 + //0x00008c80 _format_significand + 0x55, //0x00008c80 pushq %rbp + 0x48, 0x89, 0xe5, //0x00008c81 movq %rsp, %rbp + 0x41, 0x56, //0x00008c84 pushq %r14 + 0x53, //0x00008c86 pushq %rbx + 0x4c, 0x63, 0xc2, //0x00008c87 movslq %edx, %r8 + 0x49, 0x01, 0xf0, //0x00008c8a addq %rsi, %r8 + 0x48, 0x89, 0xf8, //0x00008c8d movq %rdi, %rax + 0x48, 0xc1, 0xe8, 0x20, //0x00008c90 shrq $32, %rax + 0x0f, 0x84, 0xb6, 0x00, 0x00, 0x00, //0x00008c94 je LBB33_1 + 0x48, 0xb9, 0xfd, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x00008c9a movabsq $-6067343680855748867, %rcx + 0x48, 0x89, 0xf8, //0x00008ca4 movq %rdi, %rax + 0x48, 0xf7, 0xe1, //0x00008ca7 mulq %rcx + 0x48, 0xc1, 0xea, 0x1a, //0x00008caa shrq $26, %rdx + 0x69, 0xca, 0x00, 0x1f, 0x0a, 0xfa, //0x00008cae imull $-100000000, %edx, %ecx + 0x01, 0xf9, //0x00008cb4 addl %edi, %ecx + 0x0f, 0x84, 0xb0, 0x00, 0x00, 0x00, //0x00008cb6 je LBB33_3 + 0x89, 0xc8, //0x00008cbc movl %ecx, %eax + 0x41, 0xb9, 0x59, 0x17, 0xb7, 0xd1, //0x00008cbe movl $3518437209, %r9d + 0x49, 0x0f, 0xaf, 0xc1, //0x00008cc4 imulq %r9, %rax + 0x48, 0xc1, 0xe8, 0x2d, //0x00008cc8 shrq $45, %rax + 0x69, 0xf8, 0x10, 0x27, 0x00, 0x00, //0x00008ccc imull $10000, %eax, %edi + 0x29, 0xf9, //0x00008cd2 subl %edi, %ecx + 0x48, 0x89, 0xc7, //0x00008cd4 movq %rax, %rdi + 0x49, 0x0f, 0xaf, 0xf9, //0x00008cd7 imulq %r9, %rdi + 0x48, 0xc1, 0xef, 0x2d, //0x00008cdb shrq $45, %rdi + 0x69, 0xff, 0x10, 0x27, 0x00, 0x00, //0x00008cdf imull $10000, %edi, %edi + 0x29, 0xf8, //0x00008ce5 subl %edi, %eax + 0x0f, 0xb7, 0xf9, //0x00008ce7 movzwl %cx, %edi + 0xc1, 0xef, 0x02, //0x00008cea shrl $2, %edi + 0x44, 0x69, 0xcf, 0x7b, 0x14, 0x00, 0x00, //0x00008ced imull $5243, %edi, %r9d + 0x41, 0xc1, 0xe9, 0x11, //0x00008cf4 shrl $17, %r9d + 0x41, 0x6b, 0xf9, 0x64, //0x00008cf8 imull $100, %r9d, %edi + 0x29, 0xf9, //0x00008cfc subl %edi, %ecx + 0x44, 0x0f, 0xb7, 0xd1, //0x00008cfe movzwl %cx, %r10d + 0x0f, 0xb7, 0xf8, //0x00008d02 movzwl %ax, %edi + 0xc1, 0xef, 0x02, //0x00008d05 shrl $2, %edi + 0x69, 0xff, 0x7b, 0x14, 0x00, 0x00, //0x00008d08 imull $5243, %edi, %edi + 0xc1, 0xef, 0x11, //0x00008d0e shrl $17, %edi + 0x6b, 0xcf, 0x64, //0x00008d11 imull $100, %edi, %ecx + 0x29, 0xc8, //0x00008d14 subl %ecx, %eax + 0x44, 0x0f, 0xb7, 0xd8, //0x00008d16 movzwl %ax, %r11d + 0x48, 0x8d, 0x0d, 0x4f, 0x34, 0x00, 0x00, //0x00008d1a leaq $13391(%rip), %rcx /* _Digits+0(%rip) */ + 0x42, 0x0f, 0xb7, 0x04, 0x51, //0x00008d21 movzwl (%rcx,%r10,2), %eax + 0x66, 0x41, 0x89, 0x40, 0xfe, //0x00008d26 movw %ax, $-2(%r8) + 0x42, 0x0f, 0xb7, 0x04, 0x49, //0x00008d2b movzwl (%rcx,%r9,2), %eax + 0x66, 0x41, 0x89, 0x40, 0xfc, //0x00008d30 movw %ax, $-4(%r8) + 0x42, 0x0f, 0xb7, 0x04, 0x59, //0x00008d35 movzwl (%rcx,%r11,2), %eax + 0x66, 0x41, 0x89, 0x40, 0xfa, //0x00008d3a movw %ax, $-6(%r8) + 0x0f, 0xb7, 0x04, 0x79, //0x00008d3f movzwl (%rcx,%rdi,2), %eax + 0x66, 0x41, 0x89, 0x40, 0xf8, //0x00008d43 movw %ax, $-8(%r8) + 0x45, 0x31, 0xc9, //0x00008d48 xorl %r9d, %r9d + 0xe9, 0x22, 0x00, 0x00, 0x00, //0x00008d4b jmp LBB33_5 + //0x00008d50 LBB33_1 + 0x45, 0x31, 0xc9, //0x00008d50 xorl %r9d, %r9d + 0x4d, 0x89, 0xc6, //0x00008d53 movq %r8, %r14 + 0x48, 0x89, 0xfa, //0x00008d56 movq %rdi, %rdx + 0x81, 0xfa, 0x10, 0x27, 0x00, 0x00, //0x00008d59 cmpl $10000, %edx + 0x0f, 0x83, 0x1d, 0x00, 0x00, 0x00, //0x00008d5f jae LBB33_8 + //0x00008d65 LBB33_7 + 0x89, 0xd7, //0x00008d65 movl %edx, %edi + 0xe9, 0x6c, 0x00, 0x00, 0x00, //0x00008d67 jmp LBB33_10 + //0x00008d6c LBB33_3 + 0x41, 0xb9, 0x08, 0x00, 0x00, 0x00, //0x00008d6c movl $8, %r9d + //0x00008d72 LBB33_5 + 0x4d, 0x8d, 0x70, 0xf8, //0x00008d72 leaq $-8(%r8), %r14 + 0x81, 0xfa, 0x10, 0x27, 0x00, 0x00, //0x00008d76 cmpl $10000, %edx + 0x0f, 0x82, 0xe3, 0xff, 0xff, 0xff, //0x00008d7c jb LBB33_7 + //0x00008d82 LBB33_8 + 0x41, 0xba, 0x59, 0x17, 0xb7, 0xd1, //0x00008d82 movl $3518437209, %r10d + 0x4c, 0x8d, 0x1d, 0xe1, 0x33, 0x00, 0x00, //0x00008d88 leaq $13281(%rip), %r11 /* _Digits+0(%rip) */ + 0x90, //0x00008d8f .p2align 4, 0x90 + //0x00008d90 LBB33_9 + 0x89, 0xd7, //0x00008d90 movl %edx, %edi + 0x49, 0x0f, 0xaf, 0xfa, //0x00008d92 imulq %r10, %rdi + 0x48, 0xc1, 0xef, 0x2d, //0x00008d96 shrq $45, %rdi + 0x69, 0xc7, 0xf0, 0xd8, 0xff, 0xff, //0x00008d9a imull $-10000, %edi, %eax + 0x01, 0xd0, //0x00008da0 addl %edx, %eax + 0x48, 0x69, 0xd8, 0x1f, 0x85, 0xeb, 0x51, //0x00008da2 imulq $1374389535, %rax, %rbx + 0x48, 0xc1, 0xeb, 0x25, //0x00008da9 shrq $37, %rbx + 0x6b, 0xcb, 0x64, //0x00008dad imull $100, %ebx, %ecx + 0x29, 0xc8, //0x00008db0 subl %ecx, %eax + 0x41, 0x0f, 0xb7, 0x04, 0x43, //0x00008db2 movzwl (%r11,%rax,2), %eax + 0x66, 0x41, 0x89, 0x46, 0xfe, //0x00008db7 movw %ax, $-2(%r14) + 0x41, 0x0f, 0xb7, 0x04, 0x5b, //0x00008dbc movzwl (%r11,%rbx,2), %eax + 0x66, 0x41, 0x89, 0x46, 0xfc, //0x00008dc1 movw %ax, $-4(%r14) + 0x49, 0x83, 0xc6, 0xfc, //0x00008dc6 addq $-4, %r14 + 0x81, 0xfa, 0xff, 0xe0, 0xf5, 0x05, //0x00008dca cmpl $99999999, %edx + 0x89, 0xfa, //0x00008dd0 movl %edi, %edx + 0x0f, 0x87, 0xb8, 0xff, 0xff, 0xff, //0x00008dd2 ja LBB33_9 + //0x00008dd8 LBB33_10 + 0x83, 0xff, 0x64, //0x00008dd8 cmpl $100, %edi + 0x0f, 0x83, 0x20, 0x00, 0x00, 0x00, //0x00008ddb jae LBB33_11 + 0x83, 0xff, 0x0a, //0x00008de1 cmpl $10, %edi + 0x0f, 0x82, 0x4d, 0x00, 0x00, 0x00, //0x00008de4 jb LBB33_14 + //0x00008dea LBB33_13 + 0x89, 0xf8, //0x00008dea movl %edi, %eax + 0x48, 0x8d, 0x0d, 0x7d, 0x33, 0x00, 0x00, //0x00008dec leaq $13181(%rip), %rcx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x04, 0x41, //0x00008df3 movzwl (%rcx,%rax,2), %eax + 0x66, 0x41, 0x89, 0x46, 0xfe, //0x00008df7 movw %ax, $-2(%r14) + 0xe9, 0x3d, 0x00, 0x00, 0x00, //0x00008dfc jmp LBB33_15 + //0x00008e01 LBB33_11 + 0x0f, 0xb7, 0xc7, //0x00008e01 movzwl %di, %eax + 0xc1, 0xe8, 0x02, //0x00008e04 shrl $2, %eax + 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x00008e07 imull $5243, %eax, %eax + 0xc1, 0xe8, 0x11, //0x00008e0d shrl $17, %eax + 0x6b, 0xc8, 0x64, //0x00008e10 imull $100, %eax, %ecx + 0x29, 0xcf, //0x00008e13 subl %ecx, %edi + 0x0f, 0xb7, 0xcf, //0x00008e15 movzwl %di, %ecx + 0x48, 0x8d, 0x15, 0x51, 0x33, 0x00, 0x00, //0x00008e18 leaq $13137(%rip), %rdx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x0c, 0x4a, //0x00008e1f movzwl (%rdx,%rcx,2), %ecx + 0x66, 0x41, 0x89, 0x4e, 0xfe, //0x00008e23 movw %cx, $-2(%r14) + 0x49, 0x83, 0xc6, 0xfe, //0x00008e28 addq $-2, %r14 + 0x89, 0xc7, //0x00008e2c movl %eax, %edi + 0x83, 0xff, 0x0a, //0x00008e2e cmpl $10, %edi + 0x0f, 0x83, 0xb3, 0xff, 0xff, 0xff, //0x00008e31 jae LBB33_13 + //0x00008e37 LBB33_14 + 0x40, 0x80, 0xc7, 0x30, //0x00008e37 addb $48, %dil + 0x40, 0x88, 0x3e, //0x00008e3b movb %dil, (%rsi) + //0x00008e3e LBB33_15 + 0x4d, 0x29, 0xc8, //0x00008e3e subq %r9, %r8 + 0x4c, 0x89, 0xc0, //0x00008e41 movq %r8, %rax + 0x5b, //0x00008e44 popq %rbx + 0x41, 0x5e, //0x00008e45 popq %r14 + 0x5d, //0x00008e47 popq %rbp + 0xc3, //0x00008e48 retq + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008e49 .p2align 4, 0x90 + //0x00008e50 _left_shift + 0x55, //0x00008e50 pushq %rbp + 0x48, 0x89, 0xe5, //0x00008e51 movq %rsp, %rbp + 0x41, 0x56, //0x00008e54 pushq %r14 + 0x53, //0x00008e56 pushq %rbx + 0x89, 0xf1, //0x00008e57 movl %esi, %ecx + 0x48, 0x6b, 0xd1, 0x68, //0x00008e59 imulq $104, %rcx, %rdx + 0x48, 0x8d, 0x35, 0xfc, 0x8c, 0x00, 0x00, //0x00008e5d leaq $36092(%rip), %rsi /* _LSHIFT_TAB+0(%rip) */ + 0x44, 0x8b, 0x04, 0x32, //0x00008e64 movl (%rdx,%rsi), %r8d + 0x4c, 0x8b, 0x17, //0x00008e68 movq (%rdi), %r10 + 0x4c, 0x63, 0x4f, 0x10, //0x00008e6b movslq $16(%rdi), %r9 + 0x8a, 0x44, 0x32, 0x04, //0x00008e6f movb $4(%rdx,%rsi), %al + 0x4d, 0x85, 0xc9, //0x00008e73 testq %r9, %r9 + 0x0f, 0x84, 0x36, 0x00, 0x00, 0x00, //0x00008e76 je LBB34_6 + 0x48, 0x8d, 0x54, 0x32, 0x05, //0x00008e7c leaq $5(%rdx,%rsi), %rdx + 0x31, 0xf6, //0x00008e81 xorl %esi, %esi + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008e83 .p2align 4, 0x90 + //0x00008e90 LBB34_3 + 0x84, 0xc0, //0x00008e90 testb %al, %al + 0x0f, 0x84, 0x25, 0x00, 0x00, 0x00, //0x00008e92 je LBB34_8 + 0x41, 0x38, 0x04, 0x32, //0x00008e98 cmpb %al, (%r10,%rsi) + 0x0f, 0x85, 0x89, 0x01, 0x00, 0x00, //0x00008e9c jne LBB34_5 + 0x0f, 0xb6, 0x04, 0x32, //0x00008ea2 movzbl (%rdx,%rsi), %eax + 0x48, 0xff, 0xc6, //0x00008ea6 incq %rsi + 0x49, 0x39, 0xf1, //0x00008ea9 cmpq %rsi, %r9 + 0x0f, 0x85, 0xde, 0xff, 0xff, 0xff, //0x00008eac jne LBB34_3 + //0x00008eb2 LBB34_6 + 0x84, 0xc0, //0x00008eb2 testb %al, %al + 0x0f, 0x84, 0x03, 0x00, 0x00, 0x00, //0x00008eb4 je LBB34_8 + //0x00008eba LBB34_7 + 0x41, 0xff, 0xc8, //0x00008eba decl %r8d + //0x00008ebd LBB34_8 + 0x45, 0x85, 0xc9, //0x00008ebd testl %r9d, %r9d + 0x0f, 0x8e, 0x8c, 0x00, 0x00, 0x00, //0x00008ec0 jle LBB34_23 + 0x43, 0x8d, 0x04, 0x08, //0x00008ec6 leal (%r8,%r9), %eax + 0x4c, 0x63, 0xf0, //0x00008eca movslq %eax, %r14 + 0x49, 0xff, 0xce, //0x00008ecd decq %r14 + 0x31, 0xd2, //0x00008ed0 xorl %edx, %edx + 0x49, 0xbb, 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x00008ed2 movabsq $-3689348814741910323, %r11 + 0x90, 0x90, 0x90, 0x90, //0x00008edc .p2align 4, 0x90 + //0x00008ee0 LBB34_10 + 0x4b, 0x0f, 0xbe, 0x74, 0x0a, 0xff, //0x00008ee0 movsbq $-1(%r10,%r9), %rsi + 0x48, 0x83, 0xc6, 0xd0, //0x00008ee6 addq $-48, %rsi + 0x48, 0xd3, 0xe6, //0x00008eea shlq %cl, %rsi + 0x48, 0x01, 0xd6, //0x00008eed addq %rdx, %rsi + 0x48, 0x89, 0xf0, //0x00008ef0 movq %rsi, %rax + 0x49, 0xf7, 0xe3, //0x00008ef3 mulq %r11 + 0x48, 0xc1, 0xea, 0x03, //0x00008ef6 shrq $3, %rdx + 0x48, 0x8d, 0x04, 0x12, //0x00008efa leaq (%rdx,%rdx), %rax + 0x48, 0x8d, 0x1c, 0x80, //0x00008efe leaq (%rax,%rax,4), %rbx + 0x48, 0x89, 0xf0, //0x00008f02 movq %rsi, %rax + 0x48, 0x29, 0xd8, //0x00008f05 subq %rbx, %rax + 0x4c, 0x39, 0x77, 0x08, //0x00008f08 cmpq %r14, $8(%rdi) + 0x0f, 0x86, 0x0e, 0x00, 0x00, 0x00, //0x00008f0c jbe LBB34_16 + 0x04, 0x30, //0x00008f12 addb $48, %al + 0x43, 0x88, 0x04, 0x32, //0x00008f14 movb %al, (%r10,%r14) + 0xe9, 0x13, 0x00, 0x00, 0x00, //0x00008f18 jmp LBB34_18 + 0x90, 0x90, 0x90, //0x00008f1d .p2align 4, 0x90 + //0x00008f20 LBB34_16 + 0x48, 0x85, 0xc0, //0x00008f20 testq %rax, %rax + 0x0f, 0x84, 0x07, 0x00, 0x00, 0x00, //0x00008f23 je LBB34_18 + 0xc7, 0x47, 0x1c, 0x01, 0x00, 0x00, 0x00, //0x00008f29 movl $1, $28(%rdi) + //0x00008f30 LBB34_18 + 0x49, 0x83, 0xf9, 0x02, //0x00008f30 cmpq $2, %r9 + 0x0f, 0x8c, 0x0e, 0x00, 0x00, 0x00, //0x00008f34 jl LBB34_12 + 0x49, 0xff, 0xc9, //0x00008f3a decq %r9 + 0x4c, 0x8b, 0x17, //0x00008f3d movq (%rdi), %r10 + 0x49, 0xff, 0xce, //0x00008f40 decq %r14 + 0xe9, 0x98, 0xff, 0xff, 0xff, //0x00008f43 jmp LBB34_10 + //0x00008f48 LBB34_12 + 0x48, 0x83, 0xfe, 0x0a, //0x00008f48 cmpq $10, %rsi + 0x0f, 0x83, 0x6e, 0x00, 0x00, 0x00, //0x00008f4c jae LBB34_13 + //0x00008f52 LBB34_23 + 0x48, 0x63, 0x4f, 0x10, //0x00008f52 movslq $16(%rdi), %rcx + 0x49, 0x63, 0xc0, //0x00008f56 movslq %r8d, %rax + 0x48, 0x01, 0xc8, //0x00008f59 addq %rcx, %rax + 0x89, 0x47, 0x10, //0x00008f5c movl %eax, $16(%rdi) + 0x48, 0x8b, 0x4f, 0x08, //0x00008f5f movq $8(%rdi), %rcx + 0x48, 0x39, 0xc1, //0x00008f63 cmpq %rax, %rcx + 0x0f, 0x87, 0x05, 0x00, 0x00, 0x00, //0x00008f66 ja LBB34_25 + 0x89, 0x4f, 0x10, //0x00008f6c movl %ecx, $16(%rdi) + 0x89, 0xc8, //0x00008f6f movl %ecx, %eax + //0x00008f71 LBB34_25 + 0x44, 0x01, 0x47, 0x14, //0x00008f71 addl %r8d, $20(%rdi) + 0x85, 0xc0, //0x00008f75 testl %eax, %eax + 0x0f, 0x8e, 0x36, 0x00, 0x00, 0x00, //0x00008f77 jle LBB34_29 + 0x48, 0x8b, 0x0f, //0x00008f7d movq (%rdi), %rcx + 0x89, 0xc0, //0x00008f80 movl %eax, %eax + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008f82 .p2align 4, 0x90 + //0x00008f90 LBB34_27 + 0x80, 0x7c, 0x01, 0xff, 0x30, //0x00008f90 cmpb $48, $-1(%rcx,%rax) + 0x0f, 0x85, 0x20, 0x00, 0x00, 0x00, //0x00008f95 jne LBB34_31 + 0x89, 0xc2, //0x00008f9b movl %eax, %edx + 0x48, 0xff, 0xc8, //0x00008f9d decq %rax + 0xff, 0xca, //0x00008fa0 decl %edx + 0x89, 0x57, 0x10, //0x00008fa2 movl %edx, $16(%rdi) + 0x48, 0x8d, 0x50, 0x01, //0x00008fa5 leaq $1(%rax), %rdx + 0x48, 0x83, 0xfa, 0x01, //0x00008fa9 cmpq $1, %rdx + 0x0f, 0x8f, 0xdd, 0xff, 0xff, 0xff, //0x00008fad jg LBB34_27 + //0x00008fb3 LBB34_29 + 0x85, 0xc0, //0x00008fb3 testl %eax, %eax + 0x0f, 0x84, 0x64, 0x00, 0x00, 0x00, //0x00008fb5 je LBB34_30 + //0x00008fbb LBB34_31 + 0x5b, //0x00008fbb popq %rbx + 0x41, 0x5e, //0x00008fbc popq %r14 + 0x5d, //0x00008fbe popq %rbp + 0xc3, //0x00008fbf retq + //0x00008fc0 LBB34_13 + 0x49, 0x63, 0xf6, //0x00008fc0 movslq %r14d, %rsi + 0x48, 0xff, 0xce, //0x00008fc3 decq %rsi + 0xe9, 0x1a, 0x00, 0x00, 0x00, //0x00008fc6 jmp LBB34_14 + 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008fcb .p2align 4, 0x90 + //0x00008fd0 LBB34_15 + 0x04, 0x30, //0x00008fd0 addb $48, %al + 0x48, 0x8b, 0x1f, //0x00008fd2 movq (%rdi), %rbx + 0x88, 0x04, 0x33, //0x00008fd5 movb %al, (%rbx,%rsi) + //0x00008fd8 LBB34_22 + 0x48, 0xff, 0xce, //0x00008fd8 decq %rsi + 0x48, 0x83, 0xf9, 0x09, //0x00008fdb cmpq $9, %rcx + 0x0f, 0x86, 0x6d, 0xff, 0xff, 0xff, //0x00008fdf jbe LBB34_23 + //0x00008fe5 LBB34_14 + 0x48, 0x89, 0xd1, //0x00008fe5 movq %rdx, %rcx + 0x48, 0x89, 0xd0, //0x00008fe8 movq %rdx, %rax + 0x49, 0xf7, 0xe3, //0x00008feb mulq %r11 + 0x48, 0xc1, 0xea, 0x03, //0x00008fee shrq $3, %rdx + 0x48, 0x8d, 0x04, 0x12, //0x00008ff2 leaq (%rdx,%rdx), %rax + 0x48, 0x8d, 0x1c, 0x80, //0x00008ff6 leaq (%rax,%rax,4), %rbx + 0x48, 0x89, 0xc8, //0x00008ffa movq %rcx, %rax + 0x48, 0x29, 0xd8, //0x00008ffd subq %rbx, %rax + 0x48, 0x39, 0x77, 0x08, //0x00009000 cmpq %rsi, $8(%rdi) + 0x0f, 0x87, 0xc6, 0xff, 0xff, 0xff, //0x00009004 ja LBB34_15 + 0x48, 0x85, 0xc0, //0x0000900a testq %rax, %rax + 0x0f, 0x84, 0xc5, 0xff, 0xff, 0xff, //0x0000900d je LBB34_22 + 0xc7, 0x47, 0x1c, 0x01, 0x00, 0x00, 0x00, //0x00009013 movl $1, $28(%rdi) + 0xe9, 0xb9, 0xff, 0xff, 0xff, //0x0000901a jmp LBB34_22 + //0x0000901f LBB34_30 + 0xc7, 0x47, 0x14, 0x00, 0x00, 0x00, 0x00, //0x0000901f movl $0, $20(%rdi) + 0x5b, //0x00009026 popq %rbx + 0x41, 0x5e, //0x00009027 popq %r14 + 0x5d, //0x00009029 popq %rbp + 0xc3, //0x0000902a retq + //0x0000902b LBB34_5 + 0x0f, 0x8c, 0x89, 0xfe, 0xff, 0xff, //0x0000902b jl LBB34_7 + 0xe9, 0x87, 0xfe, 0xff, 0xff, //0x00009031 jmp LBB34_8 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00009036 .p2align 4, 0x90 + //0x00009040 _right_shift + 0x55, //0x00009040 pushq %rbp + 0x48, 0x89, 0xe5, //0x00009041 movq %rsp, %rbp + 0x89, 0xf1, //0x00009044 movl %esi, %ecx + 0x4c, 0x63, 0x4f, 0x10, //0x00009046 movslq $16(%rdi), %r9 + 0x31, 0xf6, //0x0000904a xorl %esi, %esi + 0x31, 0xc0, //0x0000904c xorl %eax, %eax + 0x90, 0x90, //0x0000904e .p2align 4, 0x90 + //0x00009050 LBB35_1 + 0x4c, 0x39, 0xce, //0x00009050 cmpq %r9, %rsi + 0x0f, 0x8d, 0x27, 0x01, 0x00, 0x00, //0x00009053 jge LBB35_2 + 0x48, 0x8d, 0x04, 0x80, //0x00009059 leaq (%rax,%rax,4), %rax + 0x48, 0x8b, 0x17, //0x0000905d movq (%rdi), %rdx + 0x48, 0x0f, 0xbe, 0x14, 0x32, //0x00009060 movsbq (%rdx,%rsi), %rdx + 0x48, 0x8d, 0x44, 0x42, 0xd0, //0x00009065 leaq $-48(%rdx,%rax,2), %rax + 0x48, 0xff, 0xc6, //0x0000906a incq %rsi + 0x48, 0x89, 0xc2, //0x0000906d movq %rax, %rdx + 0x48, 0xd3, 0xea, //0x00009070 shrq %cl, %rdx + 0x48, 0x85, 0xd2, //0x00009073 testq %rdx, %rdx + 0x0f, 0x84, 0xd4, 0xff, 0xff, 0xff, //0x00009076 je LBB35_1 + //0x0000907c LBB35_6 + 0x8b, 0x57, 0x14, //0x0000907c movl $20(%rdi), %edx + 0x29, 0xf2, //0x0000907f subl %esi, %edx + 0xff, 0xc2, //0x00009081 incl %edx + 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00009083 movq $-1, %r8 + 0x49, 0xd3, 0xe0, //0x0000908a shlq %cl, %r8 + 0x89, 0x57, 0x14, //0x0000908d movl %edx, $20(%rdi) + 0x49, 0xf7, 0xd0, //0x00009090 notq %r8 + 0x45, 0x31, 0xd2, //0x00009093 xorl %r10d, %r10d + 0x44, 0x39, 0xce, //0x00009096 cmpl %r9d, %esi + 0x0f, 0x8d, 0x69, 0x00, 0x00, 0x00, //0x00009099 jge LBB35_9 + 0x4c, 0x63, 0xce, //0x0000909f movslq %esi, %r9 + 0x48, 0x8b, 0x37, //0x000090a2 movq (%rdi), %rsi + 0x45, 0x31, 0xd2, //0x000090a5 xorl %r10d, %r10d + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000090a8 .p2align 4, 0x90 + //0x000090b0 LBB35_8 + 0x48, 0x89, 0xc2, //0x000090b0 movq %rax, %rdx + 0x48, 0xd3, 0xea, //0x000090b3 shrq %cl, %rdx + 0x4c, 0x21, 0xc0, //0x000090b6 andq %r8, %rax + 0x80, 0xc2, 0x30, //0x000090b9 addb $48, %dl + 0x42, 0x88, 0x14, 0x16, //0x000090bc movb %dl, (%rsi,%r10) + 0x48, 0x8d, 0x04, 0x80, //0x000090c0 leaq (%rax,%rax,4), %rax + 0x48, 0x8b, 0x37, //0x000090c4 movq (%rdi), %rsi + 0x4a, 0x8d, 0x14, 0x0e, //0x000090c7 leaq (%rsi,%r9), %rdx + 0x49, 0x0f, 0xbe, 0x14, 0x12, //0x000090cb movsbq (%r10,%rdx), %rdx + 0x48, 0x8d, 0x44, 0x42, 0xd0, //0x000090d0 leaq $-48(%rdx,%rax,2), %rax + 0x4c, 0x63, 0x5f, 0x10, //0x000090d5 movslq $16(%rdi), %r11 + 0x4b, 0x8d, 0x54, 0x11, 0x01, //0x000090d9 leaq $1(%r9,%r10), %rdx + 0x49, 0xff, 0xc2, //0x000090de incq %r10 + 0x4c, 0x39, 0xda, //0x000090e1 cmpq %r11, %rdx + 0x0f, 0x8c, 0xc6, 0xff, 0xff, 0xff, //0x000090e4 jl LBB35_8 + 0xe9, 0x19, 0x00, 0x00, 0x00, //0x000090ea jmp LBB35_9 + 0x90, //0x000090ef .p2align 4, 0x90 + //0x000090f0 LBB35_11 + 0x40, 0x80, 0xc6, 0x30, //0x000090f0 addb $48, %sil + 0x48, 0x8b, 0x17, //0x000090f4 movq (%rdi), %rdx + 0x42, 0x88, 0x34, 0x0a, //0x000090f7 movb %sil, (%rdx,%r9) + 0x41, 0xff, 0xc1, //0x000090fb incl %r9d + 0x45, 0x89, 0xca, //0x000090fe movl %r9d, %r10d + //0x00009101 LBB35_14 + 0x48, 0x01, 0xc0, //0x00009101 addq %rax, %rax + 0x48, 0x8d, 0x04, 0x80, //0x00009104 leaq (%rax,%rax,4), %rax + //0x00009108 LBB35_9 + 0x48, 0x85, 0xc0, //0x00009108 testq %rax, %rax + 0x0f, 0x84, 0x2b, 0x00, 0x00, 0x00, //0x0000910b je LBB35_15 + 0x48, 0x89, 0xc6, //0x00009111 movq %rax, %rsi + 0x48, 0xd3, 0xee, //0x00009114 shrq %cl, %rsi + 0x4c, 0x21, 0xc0, //0x00009117 andq %r8, %rax + 0x4d, 0x63, 0xca, //0x0000911a movslq %r10d, %r9 + 0x4c, 0x39, 0x4f, 0x08, //0x0000911d cmpq %r9, $8(%rdi) + 0x0f, 0x87, 0xc9, 0xff, 0xff, 0xff, //0x00009121 ja LBB35_11 + 0x48, 0x85, 0xf6, //0x00009127 testq %rsi, %rsi + 0x0f, 0x84, 0xd1, 0xff, 0xff, 0xff, //0x0000912a je LBB35_14 + 0xc7, 0x47, 0x1c, 0x01, 0x00, 0x00, 0x00, //0x00009130 movl $1, $28(%rdi) + 0xe9, 0xc5, 0xff, 0xff, 0xff, //0x00009137 jmp LBB35_14 + //0x0000913c LBB35_15 + 0x44, 0x89, 0x57, 0x10, //0x0000913c movl %r10d, $16(%rdi) + 0x45, 0x85, 0xd2, //0x00009140 testl %r10d, %r10d + 0x0f, 0x8e, 0x2c, 0x00, 0x00, 0x00, //0x00009143 jle LBB35_19 + 0x48, 0x8b, 0x07, //0x00009149 movq (%rdi), %rax + 0x45, 0x89, 0xd2, //0x0000914c movl %r10d, %r10d + 0x90, //0x0000914f .p2align 4, 0x90 + //0x00009150 LBB35_17 + 0x42, 0x80, 0x7c, 0x10, 0xff, 0x30, //0x00009150 cmpb $48, $-1(%rax,%r10) + 0x0f, 0x85, 0x22, 0x00, 0x00, 0x00, //0x00009156 jne LBB35_21 + 0x44, 0x89, 0xd1, //0x0000915c movl %r10d, %ecx + 0x49, 0xff, 0xca, //0x0000915f decq %r10 + 0xff, 0xc9, //0x00009162 decl %ecx + 0x89, 0x4f, 0x10, //0x00009164 movl %ecx, $16(%rdi) + 0x49, 0x8d, 0x4a, 0x01, //0x00009167 leaq $1(%r10), %rcx + 0x48, 0x83, 0xf9, 0x01, //0x0000916b cmpq $1, %rcx + 0x0f, 0x8f, 0xdb, 0xff, 0xff, 0xff, //0x0000916f jg LBB35_17 + //0x00009175 LBB35_19 + 0x45, 0x85, 0xd2, //0x00009175 testl %r10d, %r10d + 0x0f, 0x84, 0x3e, 0x00, 0x00, 0x00, //0x00009178 je LBB35_20 + //0x0000917e LBB35_21 + 0x5d, //0x0000917e popq %rbp + 0xc3, //0x0000917f retq + //0x00009180 LBB35_2 + 0x48, 0x85, 0xc0, //0x00009180 testq %rax, %rax + 0x0f, 0x84, 0x3c, 0x00, 0x00, 0x00, //0x00009183 je LBB35_22 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00009189 .p2align 4, 0x90 + 0x48, 0x89, 0xc2, //0x00009190 movq %rax, %rdx + 0x48, 0xd3, 0xea, //0x00009193 shrq %cl, %rdx + 0x48, 0x85, 0xd2, //0x00009196 testq %rdx, %rdx + 0x0f, 0x85, 0xdd, 0xfe, 0xff, 0xff, //0x00009199 jne LBB35_6 + //0x0000919f LBB35_4 + 0x48, 0x01, 0xc0, //0x0000919f addq %rax, %rax + 0x48, 0x8d, 0x04, 0x80, //0x000091a2 leaq (%rax,%rax,4), %rax + 0xff, 0xc6, //0x000091a6 incl %esi + 0x48, 0x89, 0xc2, //0x000091a8 movq %rax, %rdx + 0x48, 0xd3, 0xea, //0x000091ab shrq %cl, %rdx + 0x48, 0x85, 0xd2, //0x000091ae testq %rdx, %rdx + 0x0f, 0x84, 0xe8, 0xff, 0xff, 0xff, //0x000091b1 je LBB35_4 + 0xe9, 0xc0, 0xfe, 0xff, 0xff, //0x000091b7 jmp LBB35_6 + //0x000091bc LBB35_20 + 0xc7, 0x47, 0x14, 0x00, 0x00, 0x00, 0x00, //0x000091bc movl $0, $20(%rdi) + 0x5d, //0x000091c3 popq %rbp + 0xc3, //0x000091c4 retq + //0x000091c5 LBB35_22 + 0xc7, 0x47, 0x10, 0x00, 0x00, 0x00, 0x00, //0x000091c5 movl $0, $16(%rdi) + 0x5d, //0x000091cc popq %rbp + 0xc3, //0x000091cd retq + 0x00, 0x00, //0x000091ce .p2align 4, 0x00 + //0x000091d0 LCPI36_0 + 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, //0x000091d0 QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' + //0x000091e0 LCPI36_1 + 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x000091e0 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + //0x000091f0 .p2align 4, 0x90 + //0x000091f0 _advance_string_default + 0x55, //0x000091f0 pushq %rbp + 0x48, 0x89, 0xe5, //0x000091f1 movq %rsp, %rbp + 0x41, 0x57, //0x000091f4 pushq %r15 + 0x41, 0x56, //0x000091f6 pushq %r14 + 0x41, 0x55, //0x000091f8 pushq %r13 + 0x41, 0x54, //0x000091fa pushq %r12 + 0x53, //0x000091fc pushq %rbx + 0x48, 0x83, 0xec, 0x10, //0x000091fd subq $16, %rsp + 0x4c, 0x8b, 0x67, 0x08, //0x00009201 movq $8(%rdi), %r12 + 0x49, 0x29, 0xf4, //0x00009205 subq %rsi, %r12 + 0x0f, 0x84, 0x91, 0x03, 0x00, 0x00, //0x00009208 je LBB36_17 + 0x48, 0x8b, 0x07, //0x0000920e movq (%rdi), %rax + 0x48, 0x89, 0x45, 0xd0, //0x00009211 movq %rax, $-48(%rbp) + 0x48, 0x01, 0xc6, //0x00009215 addq %rax, %rsi + 0x48, 0x89, 0x55, 0xc8, //0x00009218 movq %rdx, $-56(%rbp) + 0x48, 0xc7, 0x02, 0xff, 0xff, 0xff, 0xff, //0x0000921c movq $-1, (%rdx) + 0x49, 0x83, 0xfc, 0x40, //0x00009223 cmpq $64, %r12 + 0x0f, 0x82, 0x12, 0x02, 0x00, 0x00, //0x00009227 jb LBB36_18 + 0x45, 0x89, 0xe1, //0x0000922d movl %r12d, %r9d + 0x41, 0x83, 0xe1, 0x3f, //0x00009230 andl $63, %r9d + 0x49, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x00009234 movq $-1, %r14 + 0x45, 0x31, 0xff, //0x0000923b xorl %r15d, %r15d + 0x66, 0x0f, 0x6f, 0x05, 0x8a, 0xff, 0xff, 0xff, //0x0000923e movdqa $-118(%rip), %xmm0 /* LCPI36_0+0(%rip) */ + 0x66, 0x0f, 0x6f, 0x0d, 0x92, 0xff, 0xff, 0xff, //0x00009246 movdqa $-110(%rip), %xmm1 /* LCPI36_1+0(%rip) */ + 0x48, 0x8b, 0x55, 0xd0, //0x0000924e movq $-48(%rbp), %rdx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00009252 .p2align 4, 0x90 + //0x00009260 LBB36_3 + 0xf3, 0x0f, 0x6f, 0x16, //0x00009260 movdqu (%rsi), %xmm2 + 0xf3, 0x0f, 0x6f, 0x5e, 0x10, //0x00009264 movdqu $16(%rsi), %xmm3 + 0xf3, 0x0f, 0x6f, 0x66, 0x20, //0x00009269 movdqu $32(%rsi), %xmm4 + 0xf3, 0x0f, 0x6f, 0x6e, 0x30, //0x0000926e movdqu $48(%rsi), %xmm5 + 0x66, 0x0f, 0x6f, 0xf2, //0x00009273 movdqa %xmm2, %xmm6 + 0x66, 0x0f, 0x74, 0xf0, //0x00009277 pcmpeqb %xmm0, %xmm6 + 0x66, 0x0f, 0xd7, 0xde, //0x0000927b pmovmskb %xmm6, %ebx + 0x66, 0x0f, 0x6f, 0xf3, //0x0000927f movdqa %xmm3, %xmm6 + 0x66, 0x0f, 0x74, 0xf0, //0x00009283 pcmpeqb %xmm0, %xmm6 + 0x66, 0x0f, 0xd7, 0xce, //0x00009287 pmovmskb %xmm6, %ecx + 0x66, 0x0f, 0x6f, 0xf4, //0x0000928b movdqa %xmm4, %xmm6 + 0x66, 0x0f, 0x74, 0xf0, //0x0000928f pcmpeqb %xmm0, %xmm6 + 0x66, 0x0f, 0xd7, 0xc6, //0x00009293 pmovmskb %xmm6, %eax + 0x66, 0x0f, 0x6f, 0xf5, //0x00009297 movdqa %xmm5, %xmm6 + 0x66, 0x0f, 0x74, 0xf0, //0x0000929b pcmpeqb %xmm0, %xmm6 + 0x66, 0x44, 0x0f, 0xd7, 0xee, //0x0000929f pmovmskb %xmm6, %r13d + 0x66, 0x0f, 0x74, 0xd1, //0x000092a4 pcmpeqb %xmm1, %xmm2 + 0x66, 0x0f, 0xd7, 0xfa, //0x000092a8 pmovmskb %xmm2, %edi + 0x66, 0x0f, 0x74, 0xd9, //0x000092ac pcmpeqb %xmm1, %xmm3 + 0x66, 0x44, 0x0f, 0xd7, 0xd3, //0x000092b0 pmovmskb %xmm3, %r10d + 0x66, 0x0f, 0x74, 0xe1, //0x000092b5 pcmpeqb %xmm1, %xmm4 + 0x66, 0x44, 0x0f, 0xd7, 0xdc, //0x000092b9 pmovmskb %xmm4, %r11d + 0x66, 0x0f, 0x74, 0xe9, //0x000092be pcmpeqb %xmm1, %xmm5 + 0x66, 0x44, 0x0f, 0xd7, 0xc5, //0x000092c2 pmovmskb %xmm5, %r8d + 0x49, 0xc1, 0xe5, 0x30, //0x000092c7 shlq $48, %r13 + 0x48, 0xc1, 0xe0, 0x20, //0x000092cb shlq $32, %rax + 0x48, 0xc1, 0xe1, 0x10, //0x000092cf shlq $16, %rcx + 0x48, 0x09, 0xcb, //0x000092d3 orq %rcx, %rbx + 0x48, 0x09, 0xc3, //0x000092d6 orq %rax, %rbx + 0x49, 0xc1, 0xe0, 0x30, //0x000092d9 shlq $48, %r8 + 0x49, 0xc1, 0xe3, 0x20, //0x000092dd shlq $32, %r11 + 0x49, 0xc1, 0xe2, 0x10, //0x000092e1 shlq $16, %r10 + 0x4c, 0x09, 0xd7, //0x000092e5 orq %r10, %rdi + 0x4c, 0x09, 0xdf, //0x000092e8 orq %r11, %rdi + 0x4c, 0x09, 0xc7, //0x000092eb orq %r8, %rdi + 0x0f, 0x84, 0x0a, 0x00, 0x00, 0x00, //0x000092ee je LBB36_5 + 0x49, 0x83, 0xfe, 0xff, //0x000092f4 cmpq $-1, %r14 + 0x0f, 0x84, 0x2f, 0x00, 0x00, 0x00, //0x000092f8 je LBB36_8 + //0x000092fe LBB36_5 + 0x4c, 0x09, 0xeb, //0x000092fe orq %r13, %rbx + 0x48, 0x89, 0xf8, //0x00009301 movq %rdi, %rax + 0x4c, 0x09, 0xf8, //0x00009304 orq %r15, %rax + 0x0f, 0x85, 0x43, 0x00, 0x00, 0x00, //0x00009307 jne LBB36_9 + //0x0000930d LBB36_6 + 0x48, 0x85, 0xdb, //0x0000930d testq %rbx, %rbx + 0x0f, 0x85, 0x0e, 0x01, 0x00, 0x00, //0x00009310 jne LBB36_15 + //0x00009316 LBB36_7 + 0x48, 0x83, 0xc6, 0x40, //0x00009316 addq $64, %rsi + 0x49, 0x83, 0xc4, 0xc0, //0x0000931a addq $-64, %r12 + 0x49, 0x83, 0xfc, 0x3f, //0x0000931e cmpq $63, %r12 + 0x0f, 0x87, 0x38, 0xff, 0xff, 0xff, //0x00009322 ja LBB36_3 + 0xe9, 0x7a, 0x00, 0x00, 0x00, //0x00009328 jmp LBB36_10 + //0x0000932d LBB36_8 + 0x48, 0x89, 0xf0, //0x0000932d movq %rsi, %rax + 0x48, 0x29, 0xd0, //0x00009330 subq %rdx, %rax + 0x4c, 0x0f, 0xbc, 0xf7, //0x00009333 bsfq %rdi, %r14 + 0x49, 0x01, 0xc6, //0x00009337 addq %rax, %r14 + 0x48, 0x8b, 0x45, 0xc8, //0x0000933a movq $-56(%rbp), %rax + 0x4c, 0x89, 0x30, //0x0000933e movq %r14, (%rax) + 0x4c, 0x09, 0xeb, //0x00009341 orq %r13, %rbx + 0x48, 0x89, 0xf8, //0x00009344 movq %rdi, %rax + 0x4c, 0x09, 0xf8, //0x00009347 orq %r15, %rax + 0x0f, 0x84, 0xbd, 0xff, 0xff, 0xff, //0x0000934a je LBB36_6 + //0x00009350 LBB36_9 + 0x4c, 0x89, 0xf8, //0x00009350 movq %r15, %rax + 0x48, 0xf7, 0xd0, //0x00009353 notq %rax + 0x48, 0x21, 0xf8, //0x00009356 andq %rdi, %rax + 0x4c, 0x8d, 0x04, 0x00, //0x00009359 leaq (%rax,%rax), %r8 + 0x4d, 0x09, 0xf8, //0x0000935d orq %r15, %r8 + 0x4c, 0x89, 0xc1, //0x00009360 movq %r8, %rcx + 0x48, 0xf7, 0xd1, //0x00009363 notq %rcx + 0x48, 0x21, 0xf9, //0x00009366 andq %rdi, %rcx + 0x48, 0xbf, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x00009369 movabsq $-6148914691236517206, %rdi + 0x48, 0x21, 0xf9, //0x00009373 andq %rdi, %rcx + 0x45, 0x31, 0xff, //0x00009376 xorl %r15d, %r15d + 0x48, 0x01, 0xc1, //0x00009379 addq %rax, %rcx + 0x41, 0x0f, 0x92, 0xc7, //0x0000937c setb %r15b + 0x48, 0x01, 0xc9, //0x00009380 addq %rcx, %rcx + 0x48, 0xb8, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00009383 movabsq $6148914691236517205, %rax + 0x48, 0x31, 0xc1, //0x0000938d xorq %rax, %rcx + 0x4c, 0x21, 0xc1, //0x00009390 andq %r8, %rcx + 0x48, 0xf7, 0xd1, //0x00009393 notq %rcx + 0x48, 0x21, 0xcb, //0x00009396 andq %rcx, %rbx + 0x48, 0x85, 0xdb, //0x00009399 testq %rbx, %rbx + 0x0f, 0x84, 0x74, 0xff, 0xff, 0xff, //0x0000939c je LBB36_7 + 0xe9, 0x7d, 0x00, 0x00, 0x00, //0x000093a2 jmp LBB36_15 + //0x000093a7 LBB36_10 + 0x4d, 0x89, 0xcc, //0x000093a7 movq %r9, %r12 + 0x49, 0x83, 0xfc, 0x20, //0x000093aa cmpq $32, %r12 + 0x0f, 0x82, 0x0f, 0x01, 0x00, 0x00, //0x000093ae jb LBB36_22 + //0x000093b4 LBB36_11 + 0xf3, 0x0f, 0x6f, 0x06, //0x000093b4 movdqu (%rsi), %xmm0 + 0xf3, 0x0f, 0x6f, 0x4e, 0x10, //0x000093b8 movdqu $16(%rsi), %xmm1 + 0x66, 0x0f, 0x6f, 0x15, 0x0b, 0xfe, 0xff, 0xff, //0x000093bd movdqa $-501(%rip), %xmm2 /* LCPI36_0+0(%rip) */ + 0x66, 0x0f, 0x6f, 0x1d, 0x13, 0xfe, 0xff, 0xff, //0x000093c5 movdqa $-493(%rip), %xmm3 /* LCPI36_1+0(%rip) */ + 0x66, 0x0f, 0x6f, 0xe0, //0x000093cd movdqa %xmm0, %xmm4 + 0x66, 0x0f, 0x74, 0xe2, //0x000093d1 pcmpeqb %xmm2, %xmm4 + 0x66, 0x0f, 0xd7, 0xfc, //0x000093d5 pmovmskb %xmm4, %edi + 0x66, 0x0f, 0x74, 0xd1, //0x000093d9 pcmpeqb %xmm1, %xmm2 + 0x66, 0x0f, 0xd7, 0xda, //0x000093dd pmovmskb %xmm2, %ebx + 0x66, 0x0f, 0x74, 0xc3, //0x000093e1 pcmpeqb %xmm3, %xmm0 + 0x66, 0x0f, 0xd7, 0xc0, //0x000093e5 pmovmskb %xmm0, %eax + 0x66, 0x0f, 0x74, 0xcb, //0x000093e9 pcmpeqb %xmm3, %xmm1 + 0x66, 0x0f, 0xd7, 0xc9, //0x000093ed pmovmskb %xmm1, %ecx + 0x48, 0xc1, 0xe3, 0x10, //0x000093f1 shlq $16, %rbx + 0x48, 0xc1, 0xe1, 0x10, //0x000093f5 shlq $16, %rcx + 0x48, 0x09, 0xc8, //0x000093f9 orq %rcx, %rax + 0x0f, 0x84, 0x0a, 0x00, 0x00, 0x00, //0x000093fc je LBB36_13 + 0x49, 0x83, 0xfe, 0xff, //0x00009402 cmpq $-1, %r14 + 0x0f, 0x84, 0x50, 0x00, 0x00, 0x00, //0x00009406 je LBB36_19 + //0x0000940c LBB36_13 + 0x48, 0x09, 0xfb, //0x0000940c orq %rdi, %rbx + 0x48, 0x89, 0xc1, //0x0000940f movq %rax, %rcx + 0x4c, 0x09, 0xf9, //0x00009412 orq %r15, %rcx + 0x0f, 0x85, 0x64, 0x00, 0x00, 0x00, //0x00009415 jne LBB36_20 + //0x0000941b LBB36_14 + 0x48, 0x85, 0xdb, //0x0000941b testq %rbx, %rbx + 0x0f, 0x84, 0x97, 0x00, 0x00, 0x00, //0x0000941e je LBB36_21 + //0x00009424 LBB36_15 + 0x48, 0x0f, 0xbc, 0xc3, //0x00009424 bsfq %rbx, %rax + 0x48, 0x29, 0xd6, //0x00009428 subq %rdx, %rsi + 0x48, 0x8d, 0x44, 0x06, 0x01, //0x0000942b leaq $1(%rsi,%rax), %rax + //0x00009430 LBB36_16 + 0x48, 0x83, 0xc4, 0x10, //0x00009430 addq $16, %rsp + 0x5b, //0x00009434 popq %rbx + 0x41, 0x5c, //0x00009435 popq %r12 + 0x41, 0x5d, //0x00009437 popq %r13 + 0x41, 0x5e, //0x00009439 popq %r14 + 0x41, 0x5f, //0x0000943b popq %r15 + 0x5d, //0x0000943d popq %rbp + 0xc3, //0x0000943e retq + //0x0000943f LBB36_18 + 0x49, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x0000943f movq $-1, %r14 + 0x45, 0x31, 0xff, //0x00009446 xorl %r15d, %r15d + 0x48, 0x8b, 0x55, 0xd0, //0x00009449 movq $-48(%rbp), %rdx + 0x49, 0x83, 0xfc, 0x20, //0x0000944d cmpq $32, %r12 + 0x0f, 0x83, 0x5d, 0xff, 0xff, 0xff, //0x00009451 jae LBB36_11 + 0xe9, 0x67, 0x00, 0x00, 0x00, //0x00009457 jmp LBB36_22 + //0x0000945c LBB36_19 + 0x48, 0x89, 0xf1, //0x0000945c movq %rsi, %rcx + 0x48, 0x29, 0xd1, //0x0000945f subq %rdx, %rcx + 0x4c, 0x0f, 0xbc, 0xf0, //0x00009462 bsfq %rax, %r14 + 0x49, 0x01, 0xce, //0x00009466 addq %rcx, %r14 + 0x48, 0x8b, 0x4d, 0xc8, //0x00009469 movq $-56(%rbp), %rcx + 0x4c, 0x89, 0x31, //0x0000946d movq %r14, (%rcx) + 0x48, 0x09, 0xfb, //0x00009470 orq %rdi, %rbx + 0x48, 0x89, 0xc1, //0x00009473 movq %rax, %rcx + 0x4c, 0x09, 0xf9, //0x00009476 orq %r15, %rcx + 0x0f, 0x84, 0x9c, 0xff, 0xff, 0xff, //0x00009479 je LBB36_14 + //0x0000947f LBB36_20 + 0x44, 0x89, 0xf9, //0x0000947f movl %r15d, %ecx + 0xf7, 0xd1, //0x00009482 notl %ecx + 0x21, 0xc1, //0x00009484 andl %eax, %ecx + 0x44, 0x8d, 0x04, 0x09, //0x00009486 leal (%rcx,%rcx), %r8d + 0x45, 0x09, 0xf8, //0x0000948a orl %r15d, %r8d + 0x44, 0x89, 0xc7, //0x0000948d movl %r8d, %edi + 0xf7, 0xd7, //0x00009490 notl %edi + 0x21, 0xc7, //0x00009492 andl %eax, %edi + 0x81, 0xe7, 0xaa, 0xaa, 0xaa, 0xaa, //0x00009494 andl $-1431655766, %edi + 0x45, 0x31, 0xff, //0x0000949a xorl %r15d, %r15d + 0x01, 0xcf, //0x0000949d addl %ecx, %edi + 0x41, 0x0f, 0x92, 0xc7, //0x0000949f setb %r15b + 0x01, 0xff, //0x000094a3 addl %edi, %edi + 0x81, 0xf7, 0x55, 0x55, 0x55, 0x55, //0x000094a5 xorl $1431655765, %edi + 0x44, 0x21, 0xc7, //0x000094ab andl %r8d, %edi + 0xf7, 0xd7, //0x000094ae notl %edi + 0x21, 0xfb, //0x000094b0 andl %edi, %ebx + 0x48, 0x85, 0xdb, //0x000094b2 testq %rbx, %rbx + 0x0f, 0x85, 0x69, 0xff, 0xff, 0xff, //0x000094b5 jne LBB36_15 + //0x000094bb LBB36_21 + 0x48, 0x83, 0xc6, 0x20, //0x000094bb addq $32, %rsi + 0x49, 0x83, 0xc4, 0xe0, //0x000094bf addq $-32, %r12 + //0x000094c3 LBB36_22 + 0x4d, 0x85, 0xff, //0x000094c3 testq %r15, %r15 + 0x0f, 0x85, 0x90, 0x00, 0x00, 0x00, //0x000094c6 jne LBB36_33 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000094cc movq $-1, %rax + 0x4d, 0x85, 0xe4, //0x000094d3 testq %r12, %r12 + 0x0f, 0x84, 0x54, 0xff, 0xff, 0xff, //0x000094d6 je LBB36_16 + //0x000094dc LBB36_24 + 0x49, 0x89, 0xd1, //0x000094dc movq %rdx, %r9 + 0x49, 0xf7, 0xd1, //0x000094df notq %r9 + 0x48, 0x8b, 0x4d, 0xc8, //0x000094e2 movq $-56(%rbp), %rcx + //0x000094e6 LBB36_25 + 0x48, 0x8d, 0x7e, 0x01, //0x000094e6 leaq $1(%rsi), %rdi + 0x0f, 0xb6, 0x1e, //0x000094ea movzbl (%rsi), %ebx + 0x80, 0xfb, 0x22, //0x000094ed cmpb $34, %bl + 0x0f, 0x84, 0x5b, 0x00, 0x00, 0x00, //0x000094f0 je LBB36_32 + 0x4d, 0x8d, 0x54, 0x24, 0xff, //0x000094f6 leaq $-1(%r12), %r10 + 0x80, 0xfb, 0x5c, //0x000094fb cmpb $92, %bl + 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x000094fe je LBB36_28 + 0x4d, 0x89, 0xd4, //0x00009504 movq %r10, %r12 + 0x48, 0x89, 0xfe, //0x00009507 movq %rdi, %rsi + 0x4d, 0x85, 0xd2, //0x0000950a testq %r10, %r10 + 0x0f, 0x85, 0xd3, 0xff, 0xff, 0xff, //0x0000950d jne LBB36_25 + 0xe9, 0x18, 0xff, 0xff, 0xff, //0x00009513 jmp LBB36_16 + //0x00009518 LBB36_28 + 0x4d, 0x85, 0xd2, //0x00009518 testq %r10, %r10 + 0x0f, 0x84, 0x0f, 0xff, 0xff, 0xff, //0x0000951b je LBB36_16 + 0x49, 0x83, 0xfe, 0xff, //0x00009521 cmpq $-1, %r14 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00009525 jne LBB36_31 + 0x4c, 0x01, 0xcf, //0x0000952b addq %r9, %rdi + 0x48, 0x89, 0x39, //0x0000952e movq %rdi, (%rcx) + 0x49, 0x89, 0xfe, //0x00009531 movq %rdi, %r14 + //0x00009534 LBB36_31 + 0x48, 0x83, 0xc6, 0x02, //0x00009534 addq $2, %rsi + 0x49, 0x83, 0xc4, 0xfe, //0x00009538 addq $-2, %r12 + 0x4d, 0x89, 0xe2, //0x0000953c movq %r12, %r10 + 0x48, 0x8b, 0x55, 0xd0, //0x0000953f movq $-48(%rbp), %rdx + 0x4d, 0x85, 0xd2, //0x00009543 testq %r10, %r10 + 0x0f, 0x85, 0x9a, 0xff, 0xff, 0xff, //0x00009546 jne LBB36_25 + 0xe9, 0xdf, 0xfe, 0xff, 0xff, //0x0000954c jmp LBB36_16 + //0x00009551 LBB36_32 + 0x48, 0x29, 0xd7, //0x00009551 subq %rdx, %rdi + 0x48, 0x89, 0xf8, //0x00009554 movq %rdi, %rax + 0xe9, 0xd4, 0xfe, 0xff, 0xff, //0x00009557 jmp LBB36_16 + //0x0000955c LBB36_33 + 0x4d, 0x85, 0xe4, //0x0000955c testq %r12, %r12 + 0x0f, 0x84, 0x3a, 0x00, 0x00, 0x00, //0x0000955f je LBB36_17 + 0x49, 0x83, 0xfe, 0xff, //0x00009565 cmpq $-1, %r14 + 0x0f, 0x85, 0x11, 0x00, 0x00, 0x00, //0x00009569 jne LBB36_36 + 0x4c, 0x8b, 0x75, 0xd0, //0x0000956f movq $-48(%rbp), %r14 + 0x49, 0xf7, 0xd6, //0x00009573 notq %r14 + 0x49, 0x01, 0xf6, //0x00009576 addq %rsi, %r14 + 0x48, 0x8b, 0x45, 0xc8, //0x00009579 movq $-56(%rbp), %rax + 0x4c, 0x89, 0x30, //0x0000957d movq %r14, (%rax) + //0x00009580 LBB36_36 + 0x48, 0xff, 0xc6, //0x00009580 incq %rsi + 0x49, 0xff, 0xcc, //0x00009583 decq %r12 + 0x48, 0x8b, 0x55, 0xd0, //0x00009586 movq $-48(%rbp), %rdx + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x0000958a movq $-1, %rax + 0x4d, 0x85, 0xe4, //0x00009591 testq %r12, %r12 + 0x0f, 0x85, 0x42, 0xff, 0xff, 0xff, //0x00009594 jne LBB36_24 + 0xe9, 0x91, 0xfe, 0xff, 0xff, //0x0000959a jmp LBB36_16 + //0x0000959f LBB36_17 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x0000959f movq $-1, %rax + 0xe9, 0x85, 0xfe, 0xff, 0xff, //0x000095a6 jmp LBB36_16 + 0x00, 0x00, 0x00, 0x00, 0x00, //0x000095ab .p2align 4, 0x00 + //0x000095b0 _POW10_M128_TAB + 0x53, 0xe4, 0x60, 0xcd, 0x69, 0xc8, 0x32, 0x17, //0x000095b0 .quad 1671618768450675795 + 0x88, 0x02, 0x1c, 0x08, 0xa0, 0xd5, 0x8f, 0xfa, //0x000095b8 .quad -391859759250406776 + 0xb4, 0x8e, 0x5c, 0x20, 0x42, 0xbd, 0x7f, 0x0e, //0x000095c0 .quad 1044761730281672372 + 0x95, 0x81, 0x11, 0x05, 0x84, 0xe5, 0x99, 0x9c, //0x000095c8 .quad -7162441377172586091 + 0x61, 0xb2, 0x73, 0xa8, 0x92, 0xac, 0x1f, 0x52, //0x000095d0 .quad 5917638181279478369 + 0xfa, 0xe1, 0x55, 0x06, 0xe5, 0x5e, 0xc0, 0xc3, //0x000095d8 .quad -4341365703038344710 + 0xf9, 0x9e, 0x90, 0x52, 0xb7, 0x97, 0xa7, 0xe6, //0x000095e0 .quad -1826324310255427847 + 0x78, 0x5a, 0xeb, 0x47, 0x9e, 0x76, 0xb0, 0xf4, //0x000095e8 .quad -815021110370542984 + 0x5c, 0x63, 0x9a, 0x93, 0xd2, 0xbe, 0x28, 0x90, //0x000095f0 .quad -8058981721550724260 + 0x8b, 0x18, 0xf3, 0xec, 0x22, 0x4a, 0xee, 0x98, //0x000095f8 .quad -7426917221622671221 + 0x33, 0xfc, 0x80, 0x38, 0x87, 0xee, 0x32, 0x74, //0x00009600 .quad 8373016921771146291 + 0xae, 0xde, 0x2f, 0xa8, 0xab, 0xdc, 0x29, 0xbf, //0x00009608 .quad -4671960508600951122 + 0x3f, 0x3b, 0xa1, 0x06, 0x29, 0xaa, 0x3f, 0x11, //0x00009610 .quad 1242899115359157055 + 0x5a, 0xd6, 0x3b, 0x92, 0xd6, 0x53, 0xf4, 0xee, //0x00009618 .quad -1228264617323800998 + 0x07, 0xc5, 0x24, 0xa4, 0x59, 0xca, 0xc7, 0x4a, //0x00009620 .quad 5388497965526861063 + 0xf8, 0x65, 0x65, 0x1b, 0x66, 0xb4, 0x58, 0x95, //0x00009628 .quad -7685194413468457480 + 0x49, 0xf6, 0x2d, 0x0d, 0xf0, 0xbc, 0x79, 0x5d, //0x00009630 .quad 6735622456908576329 + 0x76, 0xbf, 0x3e, 0xa2, 0x7f, 0xe1, 0xae, 0xba, //0x00009638 .quad -4994806998408183946 + 0xdc, 0x73, 0x79, 0x10, 0x2c, 0x2c, 0xd8, 0xf4, //0x00009640 .quad -803843965719055396 + 0x53, 0x6f, 0xce, 0x8a, 0xdf, 0x99, 0x5a, 0xe9, //0x00009648 .quad -1631822729582842029 + 0x69, 0xe8, 0x4b, 0x8a, 0x9b, 0x1b, 0x07, 0x79, //0x00009650 .quad 8720969558280366185 + 0x94, 0x05, 0xc1, 0xb6, 0x2b, 0xa0, 0xd8, 0x91, //0x00009658 .quad -7937418233630358124 + 0x84, 0xe2, 0xde, 0x6c, 0x82, 0xe2, 0x48, 0x97, //0x00009660 .quad -7545532125859093884 + 0xf9, 0x46, 0x71, 0xa4, 0x36, 0xc8, 0x4e, 0xb6, //0x00009668 .quad -5310086773610559751 + 0x25, 0x9b, 0x16, 0x08, 0x23, 0x1b, 0x1b, 0xfd, //0x00009670 .quad -208543120469091547 + 0xb7, 0x98, 0x8d, 0x4d, 0x44, 0x7a, 0xe2, 0xe3, //0x00009678 .quad -2025922448585811785 + 0xf7, 0x20, 0x0e, 0xe5, 0xf5, 0xf0, 0x30, 0xfe, //0x00009680 .quad -130339450293182217 + 0x72, 0x7f, 0x78, 0xb0, 0x6a, 0x8c, 0x6d, 0x8e, //0x00009688 .quad -8183730558007214222 + 0x35, 0xa9, 0x51, 0x5e, 0x33, 0x2d, 0xbd, 0xbd, //0x00009690 .quad -4774610331293865675 + 0x4f, 0x9f, 0x96, 0x5c, 0x85, 0xef, 0x08, 0xb2, //0x00009698 .quad -5617977179081629873 + 0x82, 0x13, 0xe6, 0x35, 0x80, 0x78, 0x2c, 0xad, //0x000096a0 .quad -5968262914117332094 + 0x23, 0x47, 0xbc, 0xb3, 0x66, 0x2b, 0x8b, 0xde, //0x000096a8 .quad -2410785455424649437 + 0x31, 0xcc, 0xaf, 0x21, 0x50, 0xcb, 0x3b, 0x4c, //0x000096b0 .quad 5493207715531443249 + 0x76, 0xac, 0x55, 0x30, 0x20, 0xfb, 0x16, 0x8b, //0x000096b8 .quad -8424269937281487754 + 0x3d, 0xbf, 0x1b, 0x2a, 0x24, 0xbe, 0x4a, 0xdf, //0x000096c0 .quad -2356862392440471747 + 0x93, 0x17, 0x6b, 0x3c, 0xe8, 0xb9, 0xdc, 0xad, //0x000096c8 .quad -5918651403174471789 + 0x0d, 0xaf, 0xa2, 0x34, 0xad, 0x6d, 0x1d, 0xd7, //0x000096d0 .quad -2946077990550589683 + 0x78, 0xdd, 0x85, 0x4b, 0x62, 0xe8, 0x53, 0xd9, //0x000096d8 .quad -2786628235540701832 + 0x68, 0xad, 0xe5, 0x40, 0x8c, 0x64, 0x72, 0x86, //0x000096e0 .quad -8758827771735200408 + 0x6b, 0xaa, 0x33, 0x6f, 0x3d, 0x71, 0xd4, 0x87, //0x000096e8 .quad -8659171674854020501 + 0xc2, 0x18, 0x1f, 0x51, 0xaf, 0xfd, 0x0e, 0x68, //0x000096f0 .quad 7498209359040551106 + 0x06, 0x95, 0x00, 0xcb, 0x8c, 0x8d, 0xc9, 0xa9, //0x000096f8 .quad -6212278575140137722 + 0xf2, 0xde, 0x66, 0x25, 0x1b, 0xbd, 0x12, 0x02, //0x00009700 .quad 149389661945913074 + 0x48, 0xba, 0xc0, 0xfd, 0xef, 0xf0, 0x3b, 0xd4, //0x00009708 .quad -3153662200497784248 + 0x57, 0x4b, 0x60, 0xf7, 0x30, 0xb6, 0x4b, 0x01, //0x00009710 .quad 93368538716195671 + 0x6d, 0x74, 0x98, 0xfe, 0x95, 0x76, 0xa5, 0x84, //0x00009718 .quad -8888567902952197011 + 0x2d, 0x5e, 0x38, 0x35, 0xbd, 0xa3, 0x9e, 0x41, //0x00009720 .quad 4728396691822632493 + 0x88, 0x91, 0x3e, 0x7e, 0x3b, 0xd4, 0xce, 0xa5, //0x00009728 .quad -6499023860262858360 + 0xb9, 0x75, 0x86, 0x82, 0xac, 0x4c, 0x06, 0x52, //0x00009730 .quad 5910495864778290617 + 0xea, 0x35, 0xce, 0x5d, 0x4a, 0x89, 0x42, 0xcf, //0x00009738 .quad -3512093806901185046 + 0x93, 0x09, 0x94, 0xd1, 0xeb, 0xef, 0x43, 0x73, //0x00009740 .quad 8305745933913819539 + 0xb2, 0xe1, 0xa0, 0x7a, 0xce, 0x95, 0x89, 0x81, //0x00009748 .quad -9112587656954322510 + 0xf8, 0x0b, 0xf9, 0xc5, 0xe6, 0xeb, 0x14, 0x10, //0x00009750 .quad 1158810380537498616 + 0x1f, 0x1a, 0x49, 0x19, 0x42, 0xfb, 0xeb, 0xa1, //0x00009758 .quad -6779048552765515233 + 0xf6, 0x4e, 0x77, 0x77, 0xe0, 0x26, 0x1a, 0xd4, //0x00009760 .quad -3163173042755514634 + 0xa6, 0x60, 0x9b, 0x9f, 0x12, 0xfa, 0x66, 0xca, //0x00009768 .quad -3862124672529506138 + 0xb4, 0x22, 0x55, 0x95, 0x98, 0xb0, 0x20, 0x89, //0x00009770 .quad -8565652321871781196 + 0xd0, 0x38, 0x82, 0x47, 0x97, 0xb8, 0x00, 0xfd, //0x00009778 .quad -215969822234494768 + 0xb0, 0x35, 0x55, 0x5d, 0x5f, 0x6e, 0xb4, 0x55, //0x00009780 .quad 6175682344898606512 + 0x82, 0x63, 0xb1, 0x8c, 0x5e, 0x73, 0x20, 0x9e, //0x00009788 .quad -7052510166537641086 + 0x1d, 0x83, 0xaa, 0x34, 0xf7, 0x89, 0x21, 0xeb, //0x00009790 .quad -1503769105731517667 + 0x62, 0xbc, 0xdd, 0x2f, 0x36, 0x90, 0xa8, 0xc5, //0x00009798 .quad -4203951689744663454 + 0xe4, 0x23, 0xd5, 0x01, 0x75, 0xec, 0xe9, 0xa5, //0x000097a0 .quad -6491397400591784988 + 0x7b, 0x2b, 0xd5, 0xbb, 0x43, 0xb4, 0x12, 0xf7, //0x000097a8 .quad -643253593753441413 + 0x6e, 0x36, 0x25, 0x21, 0xc9, 0x33, 0xb2, 0x47, //0x000097b0 .quad 5166248661484910190 + 0x2d, 0x3b, 0x65, 0x55, 0xaa, 0xb0, 0x6b, 0x9a, //0x000097b8 .quad -7319562523736982739 + 0x0a, 0x84, 0x6e, 0x69, 0xbb, 0xc0, 0x9e, 0x99, //0x000097c0 .quad -7377247228426025974 + 0xf8, 0x89, 0xbe, 0xea, 0xd4, 0x9c, 0x06, 0xc1, //0x000097c8 .quad -4537767136243840520 + 0x0d, 0x25, 0xca, 0x43, 0xea, 0x70, 0x06, 0xc0, //0x000097d0 .quad -4609873017105144563 + 0x76, 0x2c, 0x6e, 0x25, 0x0a, 0x44, 0x48, 0xf1, //0x000097d8 .quad -1060522901877412746 + 0x28, 0x57, 0x5e, 0x6a, 0x92, 0x06, 0x04, 0x38, //0x000097e0 .quad 4036358391950366504 + 0xca, 0xdb, 0x64, 0x57, 0x86, 0x2a, 0xcd, 0x96, //0x000097e8 .quad -7580355841314464822 + 0xf2, 0xec, 0xf5, 0x04, 0x37, 0x08, 0x05, 0xc6, //0x000097f0 .quad -4177924046916817678 + 0xbc, 0x12, 0x3e, 0xed, 0x27, 0x75, 0x80, 0xbc, //0x000097f8 .quad -4863758783215693124 + 0x2e, 0x68, 0x33, 0xc6, 0x44, 0x4a, 0x86, 0xf7, //0x00009800 .quad -610719040218634194 + 0x6b, 0x97, 0x8d, 0xe8, 0x71, 0x92, 0xa0, 0xeb, //0x00009808 .quad -1468012460592228501 + 0x1d, 0x21, 0xe0, 0xfb, 0x6a, 0xee, 0xb3, 0x7a, //0x00009810 .quad 8841672636718129437 + 0xa3, 0x7e, 0x58, 0x31, 0x87, 0x5b, 0x44, 0x93, //0x00009818 .quad -7835036815511224669 + 0x64, 0x29, 0xd8, 0xba, 0x05, 0xea, 0x60, 0x59, //0x00009820 .quad 6440404777470273892 + 0x4c, 0x9e, 0xae, 0xfd, 0x68, 0x72, 0x15, 0xb8, //0x00009828 .quad -5182110000961642932 + 0xbd, 0x33, 0x8e, 0x29, 0x87, 0x24, 0xb9, 0x6f, //0x00009830 .quad 8050505971837842365 + 0xdf, 0x45, 0x1a, 0x3d, 0x03, 0xcf, 0x1a, 0xe6, //0x00009838 .quad -1865951482774665761 + 0x56, 0xe0, 0xf8, 0x79, 0xd4, 0xb6, 0xd3, 0xa5, //0x00009840 .quad -6497648813669818282 + 0xab, 0x6b, 0x30, 0x06, 0x62, 0xc1, 0xd0, 0x8f, //0x00009848 .quad -8083748704375247957 + 0x6c, 0x18, 0x77, 0x98, 0x89, 0xa4, 0x48, 0x8f, //0x00009850 .quad -8122061017087272852 + 0x96, 0x86, 0xbc, 0x87, 0xba, 0xf1, 0xc4, 0xb3, //0x00009858 .quad -5492999862041672042 + 0x87, 0xde, 0x94, 0xfe, 0xab, 0xcd, 0x1a, 0x33, //0x00009860 .quad 3682481783923072647 + 0x3c, 0xa8, 0xab, 0x29, 0x29, 0x2e, 0xb6, 0xe0, //0x00009868 .quad -2254563809124702148 + 0x14, 0x0b, 0x1d, 0x7f, 0x8b, 0xc0, 0xf0, 0x9f, //0x00009870 .quad -6921820921902855404 + 0x25, 0x49, 0x0b, 0xba, 0xd9, 0xdc, 0x71, 0x8c, //0x00009878 .quad -8326631408344020699 + 0xd9, 0x4d, 0xe4, 0x5e, 0xae, 0xf0, 0xec, 0x07, //0x00009880 .quad 571095884476206553 + 0x6f, 0x1b, 0x8e, 0x28, 0x10, 0x54, 0x8e, 0xaf, //0x00009888 .quad -5796603242002637969 + 0x50, 0x61, 0x9d, 0xf6, 0xd9, 0x2c, 0xe8, 0xc9, //0x00009890 .quad -3897816162832129712 + 0x4a, 0xa2, 0xb1, 0x32, 0x14, 0xe9, 0x71, 0xdb, //0x00009898 .quad -2634068034075909558 + 0xd2, 0x5c, 0x22, 0x3a, 0x08, 0x1c, 0x31, 0xbe, //0x000098a0 .quad -4741978110983775022 + 0x6e, 0x05, 0xaf, 0x9f, 0xac, 0x31, 0x27, 0x89, //0x000098a8 .quad -8563821548938525330 + 0x06, 0xf4, 0xaa, 0x48, 0x0a, 0x63, 0xbd, 0x6d, //0x000098b0 .quad 7907585416552444934 + 0xca, 0xc6, 0x9a, 0xc7, 0x17, 0xfe, 0x70, 0xab, //0x000098b8 .quad -6093090917745768758 + 0x08, 0xb1, 0xd5, 0xda, 0xcc, 0xbb, 0x2c, 0x09, //0x000098c0 .quad 661109733835780360 + 0x7d, 0x78, 0x81, 0xb9, 0x9d, 0x3d, 0x4d, 0xd6, //0x000098c8 .quad -3004677628754823043 + 0xa5, 0x8e, 0xc5, 0x08, 0x60, 0xf5, 0xbb, 0x25, //0x000098d0 .quad 2719036592861056677 + 0x4e, 0xeb, 0xf0, 0x93, 0x82, 0x46, 0xf0, 0x85, //0x000098d8 .quad -8795452545612846258 + 0x4e, 0xf2, 0xf6, 0x0a, 0xb8, 0xf2, 0x2a, 0xaf, //0x000098e0 .quad -5824576295778454962 + 0x21, 0x26, 0xed, 0x38, 0x23, 0x58, 0x6c, 0xa7, //0x000098e8 .quad -6382629663588669919 + 0xe1, 0xae, 0xb4, 0x0d, 0x66, 0xaf, 0xf5, 0x1a, //0x000098f0 .quad 1942651667131707105 + 0xaa, 0x6f, 0x28, 0x07, 0x2c, 0x6e, 0x47, 0xd1, //0x000098f8 .quad -3366601061058449494 + 0x4d, 0xed, 0x90, 0xc8, 0x9f, 0x8d, 0xd9, 0x50, //0x00009900 .quad 5825843310384704845 + 0xca, 0x45, 0x79, 0x84, 0xdb, 0xa4, 0xcc, 0x82, //0x00009908 .quad -9021654690802612790 + 0xa0, 0x28, 0xb5, 0xba, 0x07, 0xf1, 0x0f, 0xe5, //0x00009910 .quad -1941067898873894752 + 0x3c, 0x97, 0x97, 0x65, 0x12, 0xce, 0x7f, 0xa3, //0x00009918 .quad -6665382345075878084 + 0xc8, 0x72, 0x62, 0xa9, 0x49, 0xed, 0x53, 0x1e, //0x00009920 .quad 2185351144835019464 + 0x0c, 0x7d, 0xfd, 0xfe, 0x96, 0xc1, 0x5f, 0xcc, //0x00009928 .quad -3720041912917459700 + 0x7a, 0x0f, 0xbb, 0x13, 0x9c, 0xe8, 0xe8, 0x25, //0x00009930 .quad 2731688931043774330 + 0x4f, 0xdc, 0xbc, 0xbe, 0xfc, 0xb1, 0x77, 0xff, //0x00009938 .quad -38366372719436721 + 0xac, 0xe9, 0x54, 0x8c, 0x61, 0x91, 0xb1, 0x77, //0x00009940 .quad 8624834609543440812 + 0xb1, 0x09, 0x36, 0xf7, 0x3d, 0xcf, 0xaa, 0x9f, //0x00009948 .quad -6941508010590729807 + 0x17, 0x24, 0x6a, 0xef, 0xb9, 0xf5, 0x9d, 0xd5, //0x00009950 .quad -3054014793352862697 + 0x1d, 0x8c, 0x03, 0x75, 0x0d, 0x83, 0x95, 0xc7, //0x00009958 .quad -4065198994811024355 + 0x1d, 0xad, 0x44, 0x6b, 0x28, 0x73, 0x05, 0x4b, //0x00009960 .quad 5405853545163697437 + 0x25, 0x6f, 0x44, 0xd2, 0xd0, 0xe3, 0x7a, 0xf9, //0x00009968 .quad -469812725086392539 + 0x32, 0xec, 0x0a, 0x43, 0xf9, 0x67, 0xe3, 0x4e, //0x00009970 .quad 5684501474941004850 + 0x77, 0xc5, 0x6a, 0x83, 0x62, 0xce, 0xec, 0x9b, //0x00009978 .quad -7211161980820077193 + 0x3f, 0xa7, 0xcd, 0x93, 0xf7, 0x41, 0x9c, 0x22, //0x00009980 .quad 2493940825248868159 + 0xd5, 0x76, 0x45, 0x24, 0xfb, 0x01, 0xe8, 0xc2, //0x00009988 .quad -4402266457597708587 + 0x0f, 0x11, 0xc1, 0x78, 0x75, 0x52, 0x43, 0x6b, //0x00009990 .quad 7729112049988473103 + 0x8a, 0xd4, 0x56, 0xed, 0x79, 0x02, 0xa2, 0xf3, //0x00009998 .quad -891147053569747830 + 0xa9, 0xaa, 0x78, 0x6b, 0x89, 0x13, 0x0a, 0x83, //0x000099a0 .quad -9004363024039368023 + 0xd6, 0x44, 0x56, 0x34, 0x8c, 0x41, 0x45, 0x98, //0x000099a8 .quad -7474495936122174250 + 0x53, 0xd5, 0x56, 0xc6, 0x6b, 0x98, 0xcc, 0x23, //0x000099b0 .quad 2579604275232953683 + 0x0c, 0xd6, 0x6b, 0x41, 0xef, 0x91, 0x56, 0xbe, //0x000099b8 .quad -4731433901725329908 + 0xa8, 0x8a, 0xec, 0xb7, 0x86, 0xbe, 0xbf, 0x2c, //0x000099c0 .quad 3224505344041192104 + 0x8f, 0xcb, 0xc6, 0x11, 0x6b, 0x36, 0xec, 0xed, //0x000099c8 .quad -1302606358729274481 + 0xa9, 0xd6, 0xf3, 0x32, 0x14, 0xd7, 0xf7, 0x7b, //0x000099d0 .quad 8932844867666826921 + 0x39, 0x3f, 0x1c, 0xeb, 0x02, 0xa2, 0xb3, 0x94, //0x000099d8 .quad -7731658001846878407 + 0x53, 0xcc, 0xb0, 0x3f, 0xd9, 0xcc, 0xf5, 0xda, //0x000099e0 .quad -2669001970698630061 + 0x07, 0x4f, 0xe3, 0xa5, 0x83, 0x8a, 0xe0, 0xb9, //0x000099e8 .quad -5052886483881210105 + 0x68, 0xff, 0x9c, 0x8f, 0x0f, 0x40, 0xb3, 0xd1, //0x000099f0 .quad -3336252463373287576 + 0xc9, 0x22, 0x5c, 0x8f, 0x24, 0xad, 0x58, 0xe8, //0x000099f8 .quad -1704422086424124727 + 0xa1, 0x1f, 0xc2, 0xb9, 0x09, 0x08, 0x10, 0x23, //0x00009a00 .quad 2526528228819083169 + 0xbe, 0x95, 0x99, 0xd9, 0x36, 0x6c, 0x37, 0x91, //0x00009a08 .quad -7982792831656159810 + 0x8a, 0xa7, 0x32, 0x28, 0x0c, 0x0a, 0xd4, 0xab, //0x00009a10 .quad -6065211750830921846 + 0x2d, 0xfb, 0xff, 0x8f, 0x44, 0x47, 0x85, 0xb5, //0x00009a18 .quad -5366805021142811859 + 0x6c, 0x51, 0x3f, 0x32, 0x8f, 0x0c, 0xc9, 0x16, //0x00009a20 .quad 1641857348316123500 + 0xf9, 0xf9, 0xff, 0xb3, 0x15, 0x99, 0xe6, 0xe2, //0x00009a28 .quad -2096820258001126919 + 0xe3, 0x92, 0x67, 0x7f, 0xd9, 0xa7, 0x3d, 0xae, //0x00009a30 .quad -5891368184943504669 + 0x3b, 0xfc, 0x7f, 0x90, 0xad, 0x1f, 0xd0, 0x8d, //0x00009a38 .quad -8228041688891786181 + 0x9c, 0x77, 0x41, 0xdf, 0xcf, 0x11, 0xcd, 0x99, //0x00009a40 .quad -7364210231179380836 + 0x4a, 0xfb, 0x9f, 0xf4, 0x98, 0x27, 0x44, 0xb1, //0x00009a48 .quad -5673366092687344822 + 0x83, 0xd5, 0x11, 0xd7, 0x43, 0x56, 0x40, 0x40, //0x00009a50 .quad 4629795266307937667 + 0x1d, 0xfa, 0xc7, 0x31, 0x7f, 0x31, 0x95, 0xdd, //0x00009a58 .quad -2480021597431793123 + 0x72, 0x25, 0x6b, 0x66, 0xea, 0x35, 0x28, 0x48, //0x00009a60 .quad 5199465050656154994 + 0x52, 0xfc, 0x1c, 0x7f, 0xef, 0x3e, 0x7d, 0x8a, //0x00009a68 .quad -8467542526035952558 + 0xcf, 0xee, 0x05, 0x00, 0x65, 0x43, 0x32, 0xda, //0x00009a70 .quad -2724040723534582065 + 0x66, 0x3b, 0xe4, 0x5e, 0xab, 0x8e, 0x1c, 0xad, //0x00009a78 .quad -5972742139117552794 + 0x82, 0x6a, 0x07, 0x40, 0x3e, 0xd4, 0xbe, 0x90, //0x00009a80 .quad -8016736922845615486 + 0x40, 0x4a, 0x9d, 0x36, 0x56, 0xb2, 0x63, 0xd8, //0x00009a88 .quad -2854241655469553088 + 0x91, 0xa2, 0x04, 0xe8, 0xa6, 0x44, 0x77, 0x5a, //0x00009a90 .quad 6518754469289960081 + 0x68, 0x4e, 0x22, 0xe2, 0x75, 0x4f, 0x3e, 0x87, //0x00009a98 .quad -8701430062309552536 + 0x36, 0xcb, 0x05, 0xa2, 0xd0, 0x15, 0x15, 0x71, //0x00009aa0 .quad 8148443086612450102 + 0x02, 0xe2, 0xaa, 0x5a, 0x53, 0xe3, 0x0d, 0xa9, //0x00009aa8 .quad -6265101559459552766 + 0x03, 0x3e, 0x87, 0xca, 0x44, 0x5b, 0x5a, 0x0d, //0x00009ab0 .quad 962181821410786819 + 0x83, 0x9a, 0x55, 0x31, 0x28, 0x5c, 0x51, 0xd3, //0x00009ab8 .quad -3219690930897053053 + 0xc2, 0x86, 0x94, 0xfe, 0x0a, 0x79, 0x58, 0xe8, //0x00009ac0 .quad -1704479370831952190 + 0x91, 0x80, 0xd5, 0x1e, 0x99, 0xd9, 0x12, 0x84, //0x00009ac8 .quad -8929835859451740015 + 0x72, 0xa8, 0x39, 0xbe, 0x4d, 0x97, 0x6e, 0x62, //0x00009ad0 .quad 7092772823314835570 + 0xb6, 0xe0, 0x8a, 0x66, 0xff, 0x8f, 0x17, 0xa5, //0x00009ad8 .quad -6550608805887287114 + 0x8f, 0x12, 0xc8, 0x2d, 0x21, 0x3d, 0x0a, 0xfb, //0x00009ae0 .quad -357406007711231345 + 0xe3, 0x98, 0x2d, 0x40, 0xff, 0x73, 0x5d, 0xce, //0x00009ae8 .quad -3576574988931720989 + 0x99, 0x0b, 0x9d, 0xbc, 0x34, 0x66, 0xe6, 0x7c, //0x00009af0 .quad 8999993282035256217 + 0x8e, 0x7f, 0x1c, 0x88, 0x7f, 0x68, 0xfa, 0x80, //0x00009af8 .quad -9152888395723407474 + 0x80, 0x4e, 0xc4, 0xeb, 0xc1, 0xff, 0x1f, 0x1c, //0x00009b00 .quad 2026619565689294464 + 0x72, 0x9f, 0x23, 0x6a, 0x9f, 0x02, 0x39, 0xa1, //0x00009b08 .quad -6829424476226871438 + 0x20, 0x62, 0xb5, 0x66, 0xb2, 0xff, 0x27, 0xa3, //0x00009b10 .quad -6690097579743157728 + 0x4e, 0x87, 0xac, 0x44, 0x47, 0x43, 0x87, 0xc9, //0x00009b18 .quad -3925094576856201394 + 0xa8, 0xba, 0x62, 0x00, 0x9f, 0xff, 0xf1, 0x4b, //0x00009b20 .quad 5472436080603216552 + 0x22, 0xa9, 0xd7, 0x15, 0x19, 0x14, 0xe9, 0xfb, //0x00009b28 .quad -294682202642863838 + 0xa9, 0xb4, 0x3d, 0x60, 0xc3, 0x3f, 0x77, 0x6f, //0x00009b30 .quad 8031958568804398249 + 0xb5, 0xc9, 0xa6, 0xad, 0x8f, 0xac, 0x71, 0x9d, //0x00009b38 .quad -7101705404292871755 + 0xd3, 0x21, 0x4d, 0x38, 0xb4, 0x0f, 0x55, 0xcb, //0x00009b40 .quad -3795109844276665901 + 0x22, 0x7c, 0x10, 0x99, 0xb3, 0x17, 0xce, 0xc4, //0x00009b48 .quad -4265445736938701790 + 0x48, 0x6a, 0x60, 0x46, 0xa1, 0x53, 0x2a, 0x7e, //0x00009b50 .quad 9091170749936331336 + 0x2b, 0x9b, 0x54, 0x7f, 0xa0, 0x9d, 0x01, 0xf6, //0x00009b58 .quad -720121152745989333 + 0x6d, 0x42, 0xfc, 0xcb, 0x44, 0x74, 0xda, 0x2e, //0x00009b60 .quad 3376138709496513133 + 0xfb, 0xe0, 0x94, 0x4f, 0x84, 0x02, 0xc1, 0x99, //0x00009b68 .quad -7367604748107325189 + 0x08, 0x53, 0xfb, 0xfe, 0x55, 0x11, 0x91, 0xfa, //0x00009b70 .quad -391512631556746488 + 0x39, 0x19, 0x7a, 0x63, 0x25, 0x43, 0x31, 0xc0, //0x00009b78 .quad -4597819916706768583 + 0xca, 0x27, 0xba, 0x7e, 0xab, 0x55, 0x35, 0x79, //0x00009b80 .quad 8733981247408842698 + 0x88, 0x9f, 0x58, 0xbc, 0xee, 0x93, 0x3d, 0xf0, //0x00009b88 .quad -1135588877456072824 + 0xde, 0x58, 0x34, 0x2f, 0x8b, 0x55, 0xc1, 0x4b, //0x00009b90 .quad 5458738279630526686 + 0xb5, 0x63, 0xb7, 0x35, 0x75, 0x7c, 0x26, 0x96, //0x00009b98 .quad -7627272076051127371 + 0x16, 0x6f, 0x01, 0xfb, 0xed, 0xaa, 0xb1, 0x9e, //0x00009ba0 .quad -7011635205744005354 + 0xa2, 0x3c, 0x25, 0x83, 0x92, 0x1b, 0xb0, 0xbb, //0x00009ba8 .quad -4922404076636521310 + 0xdc, 0xca, 0xc1, 0x79, 0xa9, 0x15, 0x5e, 0x46, //0x00009bb0 .quad 5070514048102157020 + 0xcb, 0x8b, 0xee, 0x23, 0x77, 0x22, 0x9c, 0xea, //0x00009bb8 .quad -1541319077368263733 + 0xc9, 0x1e, 0x19, 0xec, 0x89, 0xcd, 0xfa, 0x0b, //0x00009bc0 .quad 863228270850154185 + 0x5f, 0x17, 0x75, 0x76, 0x8a, 0x95, 0xa1, 0x92, //0x00009bc8 .quad -7880853450996246689 + 0x7b, 0x66, 0x1f, 0x67, 0xec, 0x80, 0xf9, 0xce, //0x00009bd0 .quad -3532650679864695173 + 0x36, 0x5d, 0x12, 0x14, 0xed, 0xfa, 0x49, 0xb7, //0x00009bd8 .quad -5239380795317920458 + 0x1a, 0x40, 0xe7, 0x80, 0x27, 0xe1, 0xb7, 0x82, //0x00009be0 .quad -9027499368258256870 + 0x84, 0xf4, 0x16, 0x59, 0xa8, 0x79, 0x1c, 0xe5, //0x00009be8 .quad -1937539975720012668 + 0x10, 0x88, 0x90, 0xb0, 0xb8, 0xec, 0xb2, 0xd1, //0x00009bf0 .quad -3336344095947716592 + 0xd2, 0x58, 0xae, 0x37, 0x09, 0xcc, 0x31, 0x8f, //0x00009bf8 .quad -8128491512466089774 + 0x15, 0xaa, 0xb4, 0xdc, 0xe6, 0xa7, 0x1f, 0x86, //0x00009c00 .quad -8782116138362033643 + 0x07, 0xef, 0x99, 0x85, 0x0b, 0x3f, 0xfe, 0xb2, //0x00009c08 .quad -5548928372155224313 + 0x9a, 0xd4, 0xe1, 0x93, 0xe0, 0x91, 0xa7, 0x67, //0x00009c10 .quad 7469098900757009562 + 0xc9, 0x6a, 0x00, 0x67, 0xce, 0xce, 0xbd, 0xdf, //0x00009c18 .quad -2324474446766642487 + 0xe0, 0x24, 0x6d, 0x5c, 0x2c, 0xbb, 0xc8, 0xe0, //0x00009c20 .quad -2249342214667950880 + 0xbd, 0x42, 0x60, 0x00, 0x41, 0xa1, 0xd6, 0x8b, //0x00009c28 .quad -8370325556870233411 + 0x18, 0x6e, 0x88, 0x73, 0xf7, 0xe9, 0xfa, 0x58, //0x00009c30 .quad 6411694268519837208 + 0x6d, 0x53, 0x78, 0x40, 0x91, 0x49, 0xcc, 0xae, //0x00009c38 .quad -5851220927660403859 + 0x9e, 0x89, 0x6a, 0x50, 0x75, 0xa4, 0x39, 0xaf, //0x00009c40 .quad -5820440219632367202 + 0x48, 0x68, 0x96, 0x90, 0xf5, 0x5b, 0x7f, 0xda, //0x00009c48 .quad -2702340141148116920 + 0x03, 0x96, 0x42, 0x52, 0xc9, 0x06, 0x84, 0x6d, //0x00009c50 .quad 7891439908798240259 + 0x2d, 0x01, 0x5e, 0x7a, 0x79, 0x99, 0x8f, 0x88, //0x00009c58 .quad -8606491615858654931 + 0x83, 0x3b, 0xd3, 0xa6, 0x7b, 0x08, 0xe5, 0xc8, //0x00009c60 .quad -3970758169284363389 + 0x78, 0x81, 0xf5, 0xd8, 0xd7, 0x7f, 0xb3, 0xaa, //0x00009c68 .quad -6146428501395930760 + 0x64, 0x0a, 0x88, 0x90, 0x9a, 0x4a, 0x1e, 0xfb, //0x00009c70 .quad -351761693178066332 + 0xd6, 0xe1, 0x32, 0xcf, 0xcd, 0x5f, 0x60, 0xd5, //0x00009c78 .quad -3071349608317525546 + 0x7f, 0x06, 0x55, 0x9a, 0xa0, 0xee, 0xf2, 0x5c, //0x00009c80 .quad 6697677969404790399 + 0x26, 0xcd, 0x7f, 0xa1, 0xe0, 0x3b, 0x5c, 0x85, //0x00009c88 .quad -8837122532839535322 + 0x1e, 0x48, 0xea, 0xc0, 0x48, 0xaa, 0x2f, 0xf4, //0x00009c90 .quad -851274575098787810 + 0x6f, 0xc0, 0xdf, 0xc9, 0xd8, 0x4a, 0xb3, 0xa6, //0x00009c98 .quad -6434717147622031249 + 0x26, 0xda, 0x24, 0xf1, 0xda, 0x94, 0x3b, 0xf1, //0x00009ca0 .quad -1064093218873484762 + 0x8b, 0xb0, 0x57, 0xfc, 0x8e, 0x1d, 0x60, 0xd0, //0x00009ca8 .quad -3431710416100151157 + 0x58, 0x08, 0xb7, 0xd6, 0x08, 0x3d, 0xc5, 0x76, //0x00009cb0 .quad 8558313775058847832 + 0x57, 0xce, 0xb6, 0x5d, 0x79, 0x12, 0x3c, 0x82, //0x00009cb8 .quad -9062348037703676329 + 0x6e, 0xca, 0x64, 0x0c, 0x4b, 0x8c, 0x76, 0x54, //0x00009cc0 .quad 6086206200396171886 + 0xed, 0x81, 0x24, 0xb5, 0x17, 0x17, 0xcb, 0xa2, //0x00009cc8 .quad -6716249028702207507 + 0x09, 0xfd, 0x7d, 0xcf, 0x5d, 0x2f, 0x94, 0xa9, //0x00009cd0 .quad -6227300304786948855 + 0x68, 0xa2, 0x6d, 0xa2, 0xdd, 0xdc, 0x7d, 0xcb, //0x00009cd8 .quad -3783625267450371480 + 0x4c, 0x7c, 0x5d, 0x43, 0x35, 0x3b, 0xf9, 0xd3, //0x00009ce0 .quad -3172439362556298164 + 0x02, 0x0b, 0x09, 0x0b, 0x15, 0x54, 0x5d, 0xfe, //0x00009ce8 .quad -117845565885576446 + 0xaf, 0x6d, 0x1a, 0x4a, 0x01, 0xc5, 0x7b, 0xc4, //0x00009cf0 .quad -4288617610811380305 + 0xe1, 0xa6, 0xe5, 0x26, 0x8d, 0x54, 0xfa, 0x9e, //0x00009cf8 .quad -6991182506319567135 + 0x1b, 0x09, 0xa1, 0x9c, 0x41, 0xb6, 0x9a, 0x35, //0x00009d00 .quad 3862600023340550427 + 0x9a, 0x10, 0x9f, 0x70, 0xb0, 0xe9, 0xb8, 0xc6, //0x00009d08 .quad -4127292114472071014 + 0x62, 0x4b, 0xc9, 0x03, 0xd2, 0x63, 0x01, 0xc3, //0x00009d10 .quad -4395122007679087774 + 0xc0, 0xd4, 0xc6, 0x8c, 0x1c, 0x24, 0x67, 0xf8, //0x00009d18 .quad -547429124662700864 + 0x1d, 0xcf, 0x5d, 0x42, 0x63, 0xde, 0xe0, 0x79, //0x00009d20 .quad 8782263791269039901 + 0xf8, 0x44, 0xfc, 0xd7, 0x91, 0x76, 0x40, 0x9b, //0x00009d28 .quad -7259672230555269896 + 0xe4, 0x42, 0xf5, 0x12, 0xfc, 0x15, 0x59, 0x98, //0x00009d30 .quad -7468914334623251740 + 0x36, 0x56, 0xfb, 0x4d, 0x36, 0x94, 0x10, 0xc2, //0x00009d38 .quad -4462904269766699466 + 0x9d, 0x93, 0xb2, 0x17, 0x7b, 0x5b, 0x6f, 0x3e, //0x00009d40 .quad 4498915137003099037 + 0xc4, 0x2b, 0x7a, 0xe1, 0x43, 0xb9, 0x94, 0xf2, //0x00009d48 .quad -966944318780986428 + 0x42, 0x9c, 0xcf, 0xee, 0x2c, 0x99, 0x05, 0xa7, //0x00009d50 .quad -6411550076227838910 + 0x5a, 0x5b, 0xec, 0x6c, 0xca, 0xf3, 0x9c, 0x97, //0x00009d58 .quad -7521869226879198374 + 0x53, 0x83, 0x83, 0x2a, 0x78, 0xff, 0xc6, 0x50, //0x00009d60 .quad 5820620459997365075 + 0x31, 0x72, 0x27, 0x08, 0xbd, 0x30, 0x84, 0xbd, //0x00009d68 .quad -4790650515171610063 + 0x28, 0x64, 0x24, 0x35, 0x56, 0xbf, 0xf8, 0xa4, //0x00009d70 .quad -6559282480285457368 + 0xbd, 0x4e, 0x31, 0x4a, 0xec, 0x3c, 0xe5, 0xec, //0x00009d78 .quad -1376627125537124675 + 0x99, 0xbe, 0x36, 0xe1, 0x95, 0x77, 0x1b, 0x87, //0x00009d80 .quad -8711237568605798759 + 0x36, 0xd1, 0x5e, 0xae, 0x13, 0x46, 0x0f, 0x94, //0x00009d88 .quad -7777920981101784778 + 0x3f, 0x6e, 0x84, 0x59, 0x7b, 0x55, 0xe2, 0x28, //0x00009d90 .quad 2946011094524915263 + 0x84, 0x85, 0xf6, 0x99, 0x98, 0x17, 0x13, 0xb9, //0x00009d98 .quad -5110715207949843068 + 0xcf, 0x89, 0xe5, 0x2f, 0xda, 0xea, 0x1a, 0x33, //0x00009da0 .quad 3682513868156144079 + 0xe5, 0x26, 0x74, 0xc0, 0x7e, 0xdd, 0x57, 0xe7, //0x00009da8 .quad -1776707991509915931 + 0x21, 0x76, 0xef, 0x5d, 0xc8, 0xd2, 0xf0, 0x3f, //0x00009db0 .quad 4607414176811284001 + 0x4f, 0x98, 0x48, 0x38, 0x6f, 0xea, 0x96, 0x90, //0x00009db8 .quad -8027971522334779313 + 0xa9, 0x53, 0x6b, 0x75, 0x7a, 0x07, 0xed, 0x0f, //0x00009dc0 .quad 1147581702586717097 + 0x63, 0xbe, 0x5a, 0x06, 0x0b, 0xa5, 0xbc, 0xb4, //0x00009dc8 .quad -5423278384491086237 + 0x94, 0x28, 0xc6, 0x12, 0x59, 0x49, 0xe8, 0xd3, //0x00009dd0 .quad -3177208890193991532 + 0xfb, 0x6d, 0xf1, 0xc7, 0x4d, 0xce, 0xeb, 0xe1, //0x00009dd8 .quad -2167411962186469893 + 0x5c, 0xd9, 0xbb, 0xab, 0xd7, 0x2d, 0x71, 0x64, //0x00009de0 .quad 7237616480483531100 + 0xbd, 0xe4, 0xf6, 0x9c, 0xf0, 0x60, 0x33, 0x8d, //0x00009de8 .quad -8272161504007625539 + 0xb3, 0xcf, 0xaa, 0x96, 0x4d, 0x79, 0x8d, 0xbd, //0x00009df0 .quad -4788037454677749837 + 0xec, 0x9d, 0x34, 0xc4, 0x2c, 0x39, 0x80, 0xb0, //0x00009df8 .quad -5728515861582144020 + 0xa0, 0x83, 0x55, 0xfc, 0xa0, 0xd7, 0xf0, 0xec, //0x00009e00 .quad -1373360799919799392 + 0x67, 0xc5, 0x41, 0xf5, 0x77, 0x47, 0xa0, 0xdc, //0x00009e08 .quad -2548958808550292121 + 0x44, 0x72, 0xb5, 0x9d, 0xc4, 0x86, 0x16, 0xf4, //0x00009e10 .quad -858350499949874620 + 0x60, 0x1b, 0x49, 0xf9, 0xaa, 0x2c, 0xe4, 0x89, //0x00009e18 .quad -8510628282985014432 + 0xd5, 0xce, 0x22, 0xc5, 0x75, 0x28, 0x1c, 0x31, //0x00009e20 .quad 3538747893490044629 + 0x39, 0x62, 0x9b, 0xb7, 0xd5, 0x37, 0x5d, 0xac, //0x00009e28 .quad -6026599335303880135 + 0x8b, 0x82, 0x6b, 0x36, 0x93, 0x32, 0x63, 0x7d, //0x00009e30 .quad 9035120885289943691 + 0xc7, 0x3a, 0x82, 0x25, 0xcb, 0x85, 0x74, 0xd7, //0x00009e38 .quad -2921563150702462265 + 0x97, 0x31, 0x03, 0x02, 0x9c, 0xff, 0x5d, 0xae, //0x00009e40 .quad -5882264492762254953 + 0xbc, 0x64, 0x71, 0xf7, 0x9e, 0xd3, 0xa8, 0x86, //0x00009e48 .quad -8743505996830120772 + 0xfc, 0xfd, 0x83, 0x02, 0x83, 0x7f, 0xf5, 0xd9, //0x00009e50 .quad -2741144597525430788 + 0xeb, 0xbd, 0x4d, 0xb5, 0x86, 0x08, 0x53, 0xa8, //0x00009e58 .quad -6317696477610263061 + 0x7b, 0xfd, 0x24, 0xc3, 0x63, 0xdf, 0x72, 0xd0, //0x00009e60 .quad -3426430746906788485 + 0x66, 0x2d, 0xa1, 0x62, 0xa8, 0xca, 0x67, 0xd2, //0x00009e68 .quad -3285434578585440922 + 0x6d, 0x1e, 0xf7, 0x59, 0x9e, 0xcb, 0x47, 0x42, //0x00009e70 .quad 4776009810824339053 + 0x60, 0xbc, 0xa4, 0x3d, 0xa9, 0xde, 0x80, 0x83, //0x00009e78 .quad -8970925639256982432 + 0x08, 0xe6, 0x74, 0xf0, 0x85, 0xbe, 0xd9, 0x52, //0x00009e80 .quad 5970012263530423816 + 0x78, 0xeb, 0x0d, 0x8d, 0x53, 0x16, 0x61, 0xa4, //0x00009e88 .quad -6601971030643840136 + 0x8b, 0x1f, 0x92, 0x6c, 0x27, 0x2e, 0x90, 0x67, //0x00009e90 .quad 7462515329413029771 + 0x56, 0x66, 0x51, 0x70, 0xe8, 0x5b, 0x79, 0xcd, //0x00009e98 .quad -3640777769877412266 + 0xb6, 0x53, 0xdb, 0xa3, 0xd8, 0x1c, 0xba, 0x00, //0x00009ea0 .quad 52386062455755702 + 0xf6, 0xdf, 0x32, 0x46, 0x71, 0xd9, 0x6b, 0x80, //0x00009ea8 .quad -9193015133814464522 + 0xa4, 0x28, 0xd2, 0xcc, 0x0e, 0xa4, 0xe8, 0x80, //0x00009eb0 .quad -9157889458785081180 + 0xf3, 0x97, 0xbf, 0x97, 0xcd, 0xcf, 0x86, 0xa0, //0x00009eb8 .quad -6879582898840692749 + 0xcd, 0xb2, 0x06, 0x80, 0x12, 0xcd, 0x22, 0x61, //0x00009ec0 .quad 6999382250228200141 + 0xf0, 0x7d, 0xaf, 0xfd, 0xc0, 0x83, 0xa8, 0xc8, //0x00009ec8 .quad -3987792605123478032 + 0x81, 0x5f, 0x08, 0x20, 0x57, 0x80, 0x6b, 0x79, //0x00009ed0 .quad 8749227812785250177 + 0x6c, 0x5d, 0x1b, 0x3d, 0xb1, 0xa4, 0xd2, 0xfa, //0x00009ed8 .quad -373054737976959636 + 0xb0, 0x3b, 0x05, 0x74, 0x36, 0x30, 0xe3, 0xcb, //0x00009ee0 .quad -3755104653863994448 + 0x63, 0x1a, 0x31, 0xc6, 0xee, 0xa6, 0xc3, 0x9c, //0x00009ee8 .quad -7150688238876681629 + 0x9c, 0x8a, 0x06, 0x11, 0x44, 0xfc, 0xdb, 0xbe, //0x00009ef0 .quad -4693880817329993060 + 0xfc, 0x60, 0xbd, 0x77, 0xaa, 0x90, 0xf4, 0xc3, //0x00009ef8 .quad -4326674280168464132 + 0x44, 0x2d, 0x48, 0x15, 0x55, 0xfb, 0x92, 0xee, //0x00009f00 .quad -1255665003235103420 + 0x3b, 0xb9, 0xac, 0x15, 0xd5, 0xb4, 0xf1, 0xf4, //0x00009f08 .quad -796656831783192261 + 0x4a, 0x1c, 0x4d, 0x2d, 0x15, 0xdd, 0x1b, 0x75, //0x00009f10 .quad 8438581409832836170 + 0xc5, 0xf3, 0x8b, 0x2d, 0x05, 0x11, 0x17, 0x99, //0x00009f18 .quad -7415439547505577019 + 0x5d, 0x63, 0xa0, 0x78, 0x5a, 0xd4, 0x62, 0xd2, //0x00009f20 .quad -3286831292991118499 + 0xb6, 0xf0, 0xee, 0x78, 0x46, 0xd5, 0x5c, 0xbf, //0x00009f28 .quad -4657613415954583370 + 0x34, 0x7c, 0xc8, 0x16, 0x71, 0x89, 0xfb, 0x86, //0x00009f30 .quad -8720225134666286028 + 0xe4, 0xac, 0x2a, 0x17, 0x98, 0x0a, 0x34, 0xef, //0x00009f38 .quad -1210330751515841308 + 0xa0, 0x4d, 0x3d, 0xae, 0xe6, 0x35, 0x5d, 0xd4, //0x00009f40 .quad -3144297699952734816 + 0x0e, 0xac, 0x7a, 0x0e, 0x9f, 0x86, 0x80, 0x95, //0x00009f48 .quad -7673985747338482674 + 0x09, 0xa1, 0xcc, 0x59, 0x60, 0x83, 0x74, 0x89, //0x00009f50 .quad -8542058143368306423 + 0x12, 0x57, 0x19, 0xd2, 0x46, 0xa8, 0xe0, 0xba, //0x00009f58 .quad -4980796165745715438 + 0x4b, 0xc9, 0x3f, 0x70, 0x38, 0xa4, 0xd1, 0x2b, //0x00009f60 .quad 3157485376071780683 + 0xd7, 0xac, 0x9f, 0x86, 0x58, 0xd2, 0x98, 0xe9, //0x00009f68 .quad -1614309188754756393 + 0xcf, 0xdd, 0x27, 0x46, 0xa3, 0x06, 0x63, 0x7b, //0x00009f70 .quad 8890957387685944783 + 0x06, 0xcc, 0x23, 0x54, 0x77, 0x83, 0xff, 0x91, //0x00009f78 .quad -7926472270612804602 + 0x42, 0xd5, 0xb1, 0x17, 0x4c, 0xc8, 0x3b, 0x1a, //0x00009f80 .quad 1890324697752655170 + 0x08, 0xbf, 0x2c, 0x29, 0x55, 0x64, 0x7f, 0xb6, //0x00009f88 .quad -5296404319838617848 + 0x93, 0x4a, 0x9e, 0x1d, 0x5f, 0xba, 0xca, 0x20, //0x00009f90 .quad 2362905872190818963 + 0xca, 0xee, 0x77, 0x73, 0x6a, 0x3d, 0x1f, 0xe4, //0x00009f98 .quad -2008819381370884406 + 0x9c, 0xee, 0x82, 0x72, 0x7b, 0xb4, 0x7e, 0x54, //0x00009fa0 .quad 6088502188546649756 + 0x3e, 0xf5, 0x2a, 0x88, 0x62, 0x86, 0x93, 0x8e, //0x00009fa8 .quad -8173041140997884610 + 0x43, 0xaa, 0x23, 0x4f, 0x9a, 0x61, 0x9e, 0xe9, //0x00009fb0 .quad -1612744301171463613 + 0x8d, 0xb2, 0x35, 0x2a, 0xfb, 0x67, 0x38, 0xb2, //0x00009fb8 .quad -5604615407819967859 + 0xd4, 0x94, 0xec, 0xe2, 0x00, 0xfa, 0x05, 0x64, //0x00009fc0 .quad 7207441660390446292 + 0x31, 0x1f, 0xc3, 0xf4, 0xf9, 0x81, 0xc6, 0xde, //0x00009fc8 .quad -2394083241347571919 + 0x04, 0xdd, 0xd3, 0x8d, 0x40, 0xbc, 0x83, 0xde, //0x00009fd0 .quad -2412877989897052924 + 0x7e, 0xf3, 0xf9, 0x38, 0x3c, 0x11, 0x3c, 0x8b, //0x00009fd8 .quad -8413831053483314306 + 0x45, 0xd4, 0x48, 0xb1, 0x50, 0xab, 0x24, 0x96, //0x00009fe0 .quad -7627783505798704059 + 0x5e, 0x70, 0x38, 0x47, 0x8b, 0x15, 0x0b, 0xae, //0x00009fe8 .quad -5905602798426754978 + 0x57, 0x09, 0x9b, 0xdd, 0x24, 0xd6, 0xad, 0x3b, //0x00009ff0 .quad 4300328673033783639 + 0x76, 0x8c, 0x06, 0x19, 0xee, 0xda, 0x8d, 0xd9, //0x00009ff8 .quad -2770317479606055818 + 0xd6, 0xe5, 0x80, 0x0a, 0xd7, 0xa5, 0x4c, 0xe5, //0x0000a000 .quad -1923980597781273130 + 0xc9, 0x17, 0xa4, 0xcf, 0xd4, 0xa8, 0xf8, 0x87, //0x0000a008 .quad -8648977452394866743 + 0x4c, 0x1f, 0x21, 0xcd, 0x4c, 0xcf, 0x9f, 0x5e, //0x0000a010 .quad 6818396289628184396 + 0xbc, 0x1d, 0x8d, 0x03, 0x0a, 0xd3, 0xf6, 0xa9, //0x0000a018 .quad -6199535797066195524 + 0x1f, 0x67, 0x69, 0x00, 0x20, 0xc3, 0x47, 0x76, //0x0000a020 .quad 8522995362035230495 + 0x2b, 0x65, 0x70, 0x84, 0xcc, 0x87, 0x74, 0xd4, //0x0000a028 .quad -3137733727905356501 + 0x73, 0xe0, 0x41, 0x00, 0xf4, 0xd9, 0xec, 0x29, //0x0000a030 .quad 3021029092058325107 + 0x3b, 0x3f, 0xc6, 0xd2, 0xdf, 0xd4, 0xc8, 0x84, //0x0000a038 .quad -8878612607581929669 + 0x90, 0x58, 0x52, 0x00, 0x71, 0x10, 0x68, 0xf4, //0x0000a040 .quad -835399653354481520 + 0x09, 0xcf, 0x77, 0xc7, 0x17, 0x0a, 0xfb, 0xa5, //0x0000a048 .quad -6486579741050024183 + 0xb4, 0xee, 0x66, 0x40, 0x8d, 0x14, 0x82, 0x71, //0x0000a050 .quad 8179122470161673908 + 0xcc, 0xc2, 0x55, 0xb9, 0x9d, 0xcc, 0x79, 0xcf, //0x0000a058 .quad -3496538657885142324 + 0x30, 0x55, 0x40, 0x48, 0xd8, 0x4c, 0xf1, 0xc6, //0x0000a060 .quad -4111420493003729616 + 0xbf, 0x99, 0xd5, 0x93, 0xe2, 0x1f, 0xac, 0x81, //0x0000a068 .quad -9102865688819295809 + 0x7c, 0x6a, 0x50, 0x5a, 0x0e, 0xa0, 0xad, 0xb8, //0x0000a070 .quad -5139275616254662020 + 0x2f, 0x00, 0xcb, 0x38, 0xdb, 0x27, 0x17, 0xa2, //0x0000a078 .quad -6766896092596731857 + 0x1c, 0x85, 0xe4, 0xf0, 0x11, 0x08, 0xd9, 0xa6, //0x0000a080 .quad -6424094520318327524 + 0x3b, 0xc0, 0xfd, 0x06, 0xd2, 0xf1, 0x9c, 0xca, //0x0000a088 .quad -3846934097318526917 + 0x63, 0xa6, 0x1d, 0x6d, 0x16, 0x4a, 0x8f, 0x90, //0x0000a090 .quad -8030118150397909405 + 0x4a, 0x30, 0xbd, 0x88, 0x46, 0x2e, 0x44, 0xfd, //0x0000a098 .quad -196981603220770742 + 0xfe, 0x87, 0x32, 0x04, 0x4e, 0x8e, 0x59, 0x9a, //0x0000a0a0 .quad -7324666853212387330 + 0x2e, 0x3e, 0x76, 0x15, 0xec, 0x9c, 0x4a, 0x9e, //0x0000a0a8 .quad -7040642529654063570 + 0xfd, 0x29, 0x3f, 0x85, 0xe1, 0xf1, 0xef, 0x40, //0x0000a0b0 .quad 4679224488766679549 + 0xba, 0xcd, 0xd3, 0x1a, 0x27, 0x44, 0xdd, 0xc5, //0x0000a0b8 .quad -4189117143640191558 + 0x7c, 0xf4, 0x8e, 0xe6, 0x59, 0xee, 0x2b, 0xd1, //0x0000a0c0 .quad -3374341425896426372 + 0x28, 0xc1, 0x88, 0xe1, 0x30, 0x95, 0x54, 0xf7, //0x0000a0c8 .quad -624710411122851544 + 0xce, 0x58, 0x19, 0x30, 0xf8, 0x74, 0xbb, 0x82, //0x0000a0d0 .quad -9026492418826348338 + 0xb9, 0x78, 0xf5, 0x8c, 0x3e, 0xdd, 0x94, 0x9a, //0x0000a0d8 .quad -7307973034592864071 + 0x01, 0xaf, 0x1f, 0x3c, 0x36, 0x52, 0x6a, 0xe3, //0x0000a0e0 .quad -2059743486678159615 + 0xe7, 0xd6, 0x32, 0x30, 0x8e, 0x14, 0x3a, 0xc1, //0x0000a0e8 .quad -4523280274813692185 + 0xc1, 0x9a, 0x27, 0xcb, 0xc3, 0xe6, 0x44, 0xdc, //0x0000a0f0 .quad -2574679358347699519 + 0xa1, 0x8c, 0x3f, 0xbc, 0xb1, 0x99, 0x88, 0xf1, //0x0000a0f8 .quad -1042414325089727327 + 0xb9, 0xc0, 0xf8, 0x5e, 0x3a, 0x10, 0xab, 0x29, //0x0000a100 .quad 3002511419460075705 + 0xe5, 0xb7, 0xa7, 0x15, 0x0f, 0x60, 0xf5, 0x96, //0x0000a108 .quad -7569037980822161435 + 0xe7, 0xf0, 0xb6, 0xf6, 0x48, 0xd4, 0x15, 0x74, //0x0000a110 .quad 8364825292752482535 + 0xde, 0xa5, 0x11, 0xdb, 0x12, 0xb8, 0xb2, 0xbc, //0x0000a118 .quad -4849611457600313890 + 0x21, 0xad, 0x64, 0x34, 0x5b, 0x49, 0x1b, 0x11, //0x0000a120 .quad 1232659579085827361 + 0x56, 0x0f, 0xd6, 0x91, 0x17, 0x66, 0xdf, 0xeb, //0x0000a128 .quad -1450328303573004458 + 0x34, 0xec, 0xbe, 0x00, 0xd9, 0x0d, 0xb1, 0xca, //0x0000a130 .quad -3841273781498745804 + 0x95, 0xc9, 0x25, 0xbb, 0xce, 0x9f, 0x6b, 0x93, //0x0000a138 .quad -7823984217374209643 + 0x42, 0xa7, 0xee, 0x40, 0x4f, 0x51, 0x5d, 0x3d, //0x0000a140 .quad 4421779809981343554 + 0xfb, 0x3b, 0xef, 0x69, 0xc2, 0x87, 0x46, 0xb8, //0x0000a148 .quad -5168294253290374149 + 0x12, 0x51, 0x2a, 0x11, 0xa3, 0xa5, 0xb4, 0x0c, //0x0000a150 .quad 915538744049291538 + 0xfa, 0x0a, 0x6b, 0x04, 0xb3, 0x29, 0x58, 0xe6, //0x0000a158 .quad -1848681798185579782 + 0xab, 0x72, 0xba, 0xea, 0x85, 0xe7, 0xf0, 0x47, //0x0000a160 .quad 5183897733458195115 + 0xdc, 0xe6, 0xc2, 0xe2, 0x0f, 0x1a, 0xf7, 0x8f, //0x0000a168 .quad -8072955151507069220 + 0x56, 0x0f, 0x69, 0x65, 0x67, 0x21, 0xed, 0x59, //0x0000a170 .quad 6479872166822743894 + 0x93, 0xa0, 0x73, 0xdb, 0x93, 0xe0, 0xf4, 0xb3, //0x0000a178 .quad -5479507920956448621 + 0x2c, 0x53, 0xc3, 0x3e, 0xc1, 0x69, 0x68, 0x30, //0x0000a180 .quad 3488154190101041964 + 0xb8, 0x88, 0x50, 0xd2, 0xb8, 0x18, 0xf2, 0xe0, //0x0000a188 .quad -2237698882768172872 + 0xfb, 0x13, 0x3a, 0xc7, 0x18, 0x42, 0x41, 0x1e, //0x0000a190 .quad 2180096368813151227 + 0x73, 0x55, 0x72, 0x83, 0x73, 0x4f, 0x97, 0x8c, //0x0000a198 .quad -8316090829371189901 + 0xfa, 0x98, 0x08, 0xf9, 0x9e, 0x92, 0xd1, 0xe5, //0x0000a1a0 .quad -1886565557410948870 + 0xcf, 0xea, 0x4e, 0x64, 0x50, 0x23, 0xbd, 0xaf, //0x0000a1a8 .quad -5783427518286599473 + 0x39, 0xbf, 0x4a, 0xb7, 0x46, 0xf7, 0x45, 0xdf, //0x0000a1b0 .quad -2358206946763686087 + 0x83, 0xa5, 0x62, 0x7d, 0x24, 0x6c, 0xac, 0xdb, //0x0000a1b8 .quad -2617598379430861437 + 0x83, 0xb7, 0x8e, 0x32, 0x8c, 0xba, 0x8b, 0x6b, //0x0000a1c0 .quad 7749492695127472003 + 0x72, 0xa7, 0x5d, 0xce, 0x96, 0xc3, 0x4b, 0x89, //0x0000a1c8 .quad -8553528014785370254 + 0x64, 0x65, 0x32, 0x3f, 0x2f, 0xa9, 0x6e, 0x06, //0x0000a1d0 .quad 463493832054564196 + 0x4f, 0x11, 0xf5, 0x81, 0x7c, 0xb4, 0x9e, 0xab, //0x0000a1d8 .quad -6080224000054324913 + 0xbd, 0xfe, 0xfe, 0x0e, 0x7b, 0x53, 0x0a, 0xc8, //0x0000a1e0 .quad -4032318728359182659 + 0xa2, 0x55, 0x72, 0xa2, 0x9b, 0x61, 0x86, 0xd6, //0x0000a1e8 .quad -2988593981640518238 + 0x36, 0x5f, 0x5f, 0xe9, 0x2c, 0x74, 0x06, 0xbd, //0x0000a1f0 .quad -4826042214438183114 + 0x85, 0x75, 0x87, 0x45, 0x01, 0xfd, 0x13, 0x86, //0x0000a1f8 .quad -8785400266166405755 + 0x04, 0x37, 0xb7, 0x23, 0x38, 0x11, 0x48, 0x2c, //0x0000a200 .quad 3190819268807046916 + 0xe7, 0x52, 0xe9, 0x96, 0x41, 0xfc, 0x98, 0xa7, //0x0000a208 .quad -6370064314280619289 + 0xc5, 0x04, 0xa5, 0x2c, 0x86, 0x15, 0x5a, 0xf7, //0x0000a210 .quad -623161932418579259 + 0xa0, 0xa7, 0xa3, 0xfc, 0x51, 0x3b, 0x7f, 0xd1, //0x0000a218 .quad -3350894374423386208 + 0xfb, 0x22, 0xe7, 0xdb, 0x73, 0x4d, 0x98, 0x9a, //0x0000a220 .quad -7307005235402693893 + 0xc4, 0x48, 0xe6, 0x3d, 0x13, 0x85, 0xef, 0x82, //0x0000a228 .quad -9011838011655698236 + 0xba, 0xeb, 0xe0, 0xd2, 0xd0, 0x60, 0x3e, 0xc1, //0x0000a230 .quad -4522070525825979462 + 0xf5, 0xda, 0x5f, 0x0d, 0x58, 0x66, 0xab, 0xa3, //0x0000a238 .quad -6653111496142234891 + 0xa8, 0x26, 0x99, 0x07, 0x05, 0xf9, 0x8d, 0x31, //0x0000a240 .quad 3570783879572301480 + 0xb3, 0xd1, 0xb7, 0x10, 0xee, 0x3f, 0x96, 0xcc, //0x0000a248 .quad -3704703351750405709 + 0x52, 0x70, 0x7f, 0x49, 0x46, 0x77, 0xf1, 0xfd, //0x0000a250 .quad -148206168962011054 + 0x1f, 0xc6, 0xe5, 0x94, 0xe9, 0xcf, 0xbb, 0xff, //0x0000a258 .quad -19193171260619233 + 0x33, 0xa6, 0xef, 0xed, 0x8b, 0xea, 0xb6, 0xfe, //0x0000a260 .quad -92628855601256909 + 0xd3, 0x9b, 0x0f, 0xfd, 0xf1, 0x61, 0xd5, 0x9f, //0x0000a268 .quad -6929524759678968877 + 0xc0, 0x8f, 0x6b, 0xe9, 0x2e, 0xa5, 0x64, 0xfe, //0x0000a270 .quad -115786069501571136 + 0xc8, 0x82, 0x53, 0x7c, 0x6e, 0xba, 0xca, 0xc7, //0x0000a278 .quad -4050219931171323192 + 0xb0, 0x73, 0xc6, 0xa3, 0x7a, 0xce, 0xfd, 0x3d, //0x0000a280 .quad 4466953431550423984 + 0x7b, 0x63, 0x68, 0x1b, 0x0a, 0x69, 0xbd, 0xf9, //0x0000a288 .quad -451088895536766085 + 0x4e, 0x08, 0x5c, 0xa6, 0x0c, 0xa1, 0xbe, 0x06, //0x0000a290 .quad 486002885505321038 + 0x2d, 0x3e, 0x21, 0x51, 0xa6, 0x61, 0x16, 0x9c, //0x0000a298 .quad -7199459587351560659 + 0x62, 0x0a, 0xf3, 0xcf, 0x4f, 0x49, 0x6e, 0x48, //0x0000a2a0 .quad 5219189625309039202 + 0xb8, 0x8d, 0x69, 0xe5, 0x0f, 0xfa, 0x1b, 0xc3, //0x0000a2a8 .quad -4387638465762062920 + 0xfa, 0xcc, 0xef, 0xc3, 0xa3, 0xdb, 0x89, 0x5a, //0x0000a2b0 .quad 6523987031636299002 + 0x26, 0xf1, 0xc3, 0xde, 0x93, 0xf8, 0xe2, 0xf3, //0x0000a2b8 .quad -872862063775190746 + 0x1c, 0xe0, 0x75, 0x5a, 0x46, 0x29, 0x96, 0xf8, //0x0000a2c0 .quad -534194123654701028 + 0xb7, 0x76, 0x3a, 0x6b, 0x5c, 0xdb, 0x6d, 0x98, //0x0000a2c8 .quad -7463067817500576073 + 0x23, 0x58, 0x13, 0xf1, 0x97, 0xb3, 0xbb, 0xf6, //0x0000a2d0 .quad -667742654568376285 + 0x65, 0x14, 0x09, 0x86, 0x33, 0x52, 0x89, 0xbe, //0x0000a2d8 .quad -4717148753448332187 + 0x2c, 0x2e, 0x58, 0xed, 0x7d, 0xa0, 0x6a, 0x74, //0x0000a2e0 .quad 8388693718644305452 + 0x7f, 0x59, 0x8b, 0x67, 0xc0, 0xa6, 0x2b, 0xee, //0x0000a2e8 .quad -1284749923383027329 + 0xdc, 0x1c, 0x57, 0xb4, 0x4e, 0xa4, 0xc2, 0xa8, //0x0000a2f0 .quad -6286281471915778852 + 0xef, 0x17, 0xb7, 0x40, 0x38, 0x48, 0xdb, 0x94, //0x0000a2f8 .quad -7720497729755473937 + 0x13, 0xe4, 0x6c, 0x61, 0x62, 0x4d, 0xf3, 0x92, //0x0000a300 .quad -7857851839894723565 + 0xeb, 0xdd, 0xe4, 0x50, 0x46, 0x1a, 0x12, 0xba, //0x0000a308 .quad -5038936143766954517 + 0x17, 0x1d, 0xc8, 0xf9, 0xba, 0x20, 0xb0, 0x77, //0x0000a310 .quad 8624429273841147159 + 0x66, 0x15, 0x1e, 0xe5, 0xd7, 0xa0, 0x96, 0xe8, //0x0000a318 .quad -1686984161281305242 + 0x2e, 0x12, 0x1d, 0xdc, 0x74, 0x14, 0xce, 0x0a, //0x0000a320 .quad 778582277723329070 + 0x60, 0xcd, 0x32, 0xef, 0x86, 0x24, 0x5e, 0x91, //0x0000a328 .quad -7971894128441897632 + 0xba, 0x56, 0x24, 0x13, 0x92, 0x99, 0x81, 0x0d, //0x0000a330 .quad 973227847154161338 + 0xb8, 0x80, 0xff, 0xaa, 0xa8, 0xad, 0xb5, 0xb5, //0x0000a338 .quad -5353181642124984136 + 0x69, 0x6c, 0xed, 0x97, 0xf6, 0xff, 0xe1, 0x10, //0x0000a340 .quad 1216534808942701673 + 0xe6, 0x60, 0xbf, 0xd5, 0x12, 0x19, 0x23, 0xe3, //0x0000a348 .quad -2079791034228842266 + 0xc1, 0x63, 0xf4, 0x1e, 0xfa, 0x3f, 0x8d, 0xca, //0x0000a350 .quad -3851351762838199359 + 0x8f, 0x9c, 0x97, 0xc5, 0xab, 0xef, 0xf5, 0x8d, //0x0000a358 .quad -8217398424034108273 + 0xb2, 0x7c, 0xb1, 0xa6, 0xf8, 0x8f, 0x30, 0xbd, //0x0000a360 .quad -4814189703547749198 + 0xb3, 0x83, 0xfd, 0xb6, 0x96, 0x6b, 0x73, 0xb1, //0x0000a368 .quad -5660062011615247437 + 0xde, 0xdb, 0x5d, 0xd0, 0xf6, 0xb3, 0x7c, 0xac, //0x0000a370 .quad -6017737129434686498 + 0xa0, 0xe4, 0xbc, 0x64, 0x7c, 0x46, 0xd0, 0xdd, //0x0000a378 .quad -2463391496091671392 + 0x6b, 0xa9, 0x3a, 0x42, 0x7a, 0xf0, 0xcd, 0x6b, //0x0000a380 .quad 7768129340171790699 + 0xe4, 0x0e, 0xf6, 0xbe, 0x0d, 0x2c, 0xa2, 0x8a, //0x0000a388 .quad -8457148712698376476 + 0xc6, 0x53, 0xc9, 0xd2, 0x98, 0x6c, 0xc1, 0x86, //0x0000a390 .quad -8736582398494813242 + 0x9d, 0x92, 0xb3, 0x2e, 0x11, 0xb7, 0x4a, 0xad, //0x0000a398 .quad -5959749872445582691 + 0xb7, 0xa8, 0x7b, 0x07, 0xbf, 0xc7, 0x71, 0xe8, //0x0000a3a0 .quad -1697355961263740745 + 0x44, 0x77, 0x60, 0x7a, 0xd5, 0x64, 0x9d, 0xd8, //0x0000a3a8 .quad -2838001322129590460 + 0x72, 0x49, 0xad, 0x64, 0xd7, 0x1c, 0x47, 0x11, //0x0000a3b0 .quad 1244995533423855986 + 0x8b, 0x4a, 0x7c, 0x6c, 0x05, 0x5f, 0x62, 0x87, //0x0000a3b8 .quad -8691279853972075893 + 0xcf, 0x9b, 0xd8, 0x3d, 0x0d, 0xe4, 0x98, 0xd5, //0x0000a3c0 .quad -3055441601647567921 + 0x2d, 0x5d, 0x9b, 0xc7, 0xc6, 0xf6, 0x3a, 0xa9, //0x0000a3c8 .quad -6252413799037706963 + 0xc3, 0xc2, 0x4e, 0x8d, 0x10, 0x1d, 0xff, 0x4a, //0x0000a3d0 .quad 5404070034795315907 + 0x79, 0x34, 0x82, 0x79, 0x78, 0xb4, 0x89, 0xd3, //0x0000a3d8 .quad -3203831230369745799 + 0xba, 0x39, 0x51, 0x58, 0x2a, 0x72, 0xdf, 0xce, //0x0000a3e0 .quad -3539985255894009414 + 0xcb, 0x60, 0xf1, 0x4b, 0xcb, 0x10, 0x36, 0x84, //0x0000a3e8 .quad -8919923546622172981 + 0x28, 0x88, 0x65, 0xee, 0xb4, 0x4e, 0x97, 0xc2, //0x0000a3f0 .quad -4424981569867511768 + 0xfe, 0xb8, 0xed, 0x1e, 0xfe, 0x94, 0x43, 0xa5, //0x0000a3f8 .quad -6538218414850328322 + 0x32, 0xea, 0xfe, 0x29, 0x62, 0x22, 0x3d, 0x73, //0x0000a400 .quad 8303831092947774002 + 0x3e, 0x27, 0xa9, 0xa6, 0x3d, 0x7a, 0x94, 0xce, //0x0000a408 .quad -3561087000135522498 + 0x5f, 0x52, 0x3f, 0x5a, 0x7d, 0x35, 0x06, 0x08, //0x0000a410 .quad 578208414664970847 + 0x87, 0xb8, 0x29, 0x88, 0x66, 0xcc, 0x1c, 0x81, //0x0000a418 .quad -9143208402725783417 + 0xf7, 0x26, 0xcf, 0xb0, 0xdc, 0xc2, 0x07, 0xca, //0x0000a420 .quad -3888925500096174345 + 0xa8, 0x26, 0x34, 0x2a, 0x80, 0xff, 0x63, 0xa1, //0x0000a428 .quad -6817324484979841368 + 0xb5, 0xf0, 0x02, 0xdd, 0x93, 0xb3, 0x89, 0xfc, //0x0000a430 .quad -249470856692830027 + 0x52, 0x30, 0xc1, 0x34, 0x60, 0xff, 0xbc, 0xc9, //0x0000a438 .quad -3909969587797413806 + 0xe2, 0xac, 0x43, 0xd4, 0x78, 0x20, 0xac, 0xbb, //0x0000a440 .quad -4923524589293425438 + 0x67, 0x7c, 0xf1, 0x41, 0x38, 0x3f, 0x2c, 0xfc, //0x0000a448 .quad -275775966319379353 + 0x0d, 0x4c, 0xaa, 0x84, 0x4b, 0x94, 0x4b, 0xd5, //0x0000a450 .quad -3077202868308390899 + 0xc0, 0xed, 0x36, 0x29, 0x83, 0xa7, 0x9b, 0x9d, //0x0000a458 .quad -7089889006590693952 + 0x11, 0xdf, 0xd4, 0x65, 0x5e, 0x79, 0x9e, 0x0a, //0x0000a460 .quad 765182433041899281 + 0x31, 0xa9, 0x84, 0xf3, 0x63, 0x91, 0x02, 0xc5, //0x0000a468 .quad -4250675239810979535 + 0xd5, 0x16, 0x4a, 0xff, 0xb5, 0x17, 0x46, 0x4d, //0x0000a470 .quad 5568164059729762005 + 0x7d, 0xd3, 0x65, 0xf0, 0xbc, 0x35, 0x43, 0xf6, //0x0000a478 .quad -701658031336336515 + 0x45, 0x4e, 0x8e, 0xbf, 0xd1, 0xce, 0x4b, 0x50, //0x0000a480 .quad 5785945546544795205 + 0x2e, 0xa4, 0x3f, 0x16, 0x96, 0x01, 0xea, 0x99, //0x0000a488 .quad -7356065297226292178 + 0xd6, 0xe1, 0x71, 0x2f, 0x86, 0xc2, 0x5e, 0xe4, //0x0000a490 .quad -1990940103673781802 + 0x39, 0x8d, 0xcf, 0x9b, 0xfb, 0x81, 0x64, 0xc0, //0x0000a498 .quad -4583395603105477319 + 0x4c, 0x5a, 0x4e, 0xbb, 0x27, 0x73, 0x76, 0x5d, //0x0000a4a0 .quad 6734696907262548556 + 0x88, 0x70, 0xc3, 0x82, 0x7a, 0xa2, 0x7d, 0xf0, //0x0000a4a8 .quad -1117558485454458744 + 0x6f, 0xf8, 0x10, 0xd5, 0xf8, 0x07, 0x6a, 0x3a, //0x0000a4b0 .quad 4209185567039092847 + 0x55, 0x26, 0xba, 0x91, 0x8c, 0x85, 0x4e, 0x96, //0x0000a4b8 .quad -7616003081050118571 + 0x8b, 0x36, 0x55, 0x0a, 0xf7, 0x89, 0x04, 0x89, //0x0000a4c0 .quad -8573576096483297653 + 0xea, 0xaf, 0x28, 0xb6, 0xef, 0x26, 0xe2, 0xbb, //0x0000a4c8 .quad -4908317832885260310 + 0x2e, 0x84, 0xea, 0xcc, 0x74, 0xac, 0x45, 0x2b, //0x0000a4d0 .quad 3118087934678041646 + 0xe5, 0xdb, 0xb2, 0xa3, 0xab, 0xb0, 0xda, 0xea, //0x0000a4d8 .quad -1523711272679187483 + 0x9d, 0x92, 0x12, 0x00, 0xc9, 0x8b, 0x0b, 0x3b, //0x0000a4e0 .quad 4254647968387469981 + 0x6f, 0xc9, 0x4f, 0x46, 0x6b, 0xae, 0xc8, 0x92, //0x0000a4e8 .quad -7869848573065574033 + 0x44, 0x37, 0x17, 0x40, 0xbb, 0x6e, 0xce, 0x09, //0x0000a4f0 .quad 706623942056949572 + 0xcb, 0xbb, 0xe3, 0x17, 0x06, 0xda, 0x7a, 0xb7, //0x0000a4f8 .quad -5225624697904579637 + 0x15, 0x05, 0x1d, 0x10, 0x6a, 0x0a, 0x42, 0xcc, //0x0000a500 .quad -3728406090856200939 + 0xbd, 0xaa, 0xdc, 0x9d, 0x87, 0x90, 0x59, 0xe5, //0x0000a508 .quad -1920344853953336643 + 0x2d, 0x23, 0x12, 0x4a, 0x82, 0x46, 0xa9, 0x9f, //0x0000a510 .quad -6941939825212513491 + 0xb6, 0xea, 0xa9, 0xc2, 0x54, 0xfa, 0x57, 0x8f, //0x0000a518 .quad -8117744561361917258 + 0xf9, 0xab, 0x96, 0xdc, 0x22, 0x98, 0x93, 0x47, //0x0000a520 .quad 5157633273766521849 + 0x64, 0x65, 0x54, 0xf3, 0xe9, 0xf8, 0x2d, 0xb3, //0x0000a528 .quad -5535494683275008668 + 0xf7, 0x56, 0xbc, 0x93, 0x2b, 0x7e, 0x78, 0x59, //0x0000a530 .quad 6447041592208152311 + 0xbd, 0x7e, 0x29, 0x70, 0x24, 0x77, 0xf9, 0xdf, //0x0000a538 .quad -2307682335666372931 + 0x5a, 0xb6, 0x55, 0x3c, 0xdb, 0x4e, 0xeb, 0x57, //0x0000a540 .quad 6335244004343789146 + 0x36, 0xef, 0x19, 0xc6, 0x76, 0xea, 0xfb, 0x8b, //0x0000a548 .quad -8359830487432564938 + 0xf1, 0x23, 0x6b, 0x0b, 0x92, 0x22, 0xe6, 0xed, //0x0000a550 .quad -1304317031425039375 + 0x03, 0x6b, 0xa0, 0x77, 0x14, 0xe5, 0xfa, 0xae, //0x0000a558 .quad -5838102090863318269 + 0xed, 0xec, 0x45, 0x8e, 0x36, 0xab, 0x5f, 0xe9, //0x0000a560 .quad -1630396289281299219 + 0xc4, 0x85, 0x88, 0x95, 0x59, 0x9e, 0xb9, 0xda, //0x0000a568 .quad -2685941595151759932 + 0x14, 0xb4, 0xeb, 0x18, 0x02, 0xcb, 0xdb, 0x11, //0x0000a570 .quad 1286845328412881940 + 0x9b, 0x53, 0x75, 0xfd, 0xf7, 0x02, 0xb4, 0x88, //0x0000a578 .quad -8596242524610931813 + 0x19, 0xa1, 0x26, 0x9f, 0xc2, 0xbd, 0x52, 0xd6, //0x0000a580 .quad -3003129357911285479 + 0x81, 0xa8, 0xd2, 0xfc, 0xb5, 0x03, 0xe1, 0xaa, //0x0000a588 .quad -6133617137336276863 + 0x5f, 0x49, 0xf0, 0x46, 0x33, 0x6d, 0xe7, 0x4b, //0x0000a590 .quad 5469460339465668959 + 0xa2, 0x52, 0x07, 0x7c, 0xa3, 0x44, 0x99, 0xd5, //0x0000a598 .quad -3055335403242958174 + 0xdb, 0x2d, 0x56, 0x0c, 0x40, 0xa4, 0x70, 0x6f, //0x0000a5a0 .quad 8030098730593431003 + 0xa5, 0x93, 0x84, 0x2d, 0xe6, 0xca, 0x7f, 0x85, //0x0000a5a8 .quad -8827113654667930715 + 0x52, 0xb9, 0x6b, 0x0f, 0x50, 0xcd, 0x4c, 0xcb, //0x0000a5b0 .quad -3797434642040374958 + 0x8e, 0xb8, 0xe5, 0xb8, 0x9f, 0xbd, 0xdf, 0xa6, //0x0000a5b8 .quad -6422206049907525490 + 0xa7, 0xa7, 0x46, 0x13, 0xa4, 0x00, 0x20, 0x7e, //0x0000a5c0 .quad 9088264752731695015 + 0xb2, 0x26, 0x1f, 0xa7, 0x07, 0xad, 0x97, 0xd0, //0x0000a5c8 .quad -3416071543957018958 + 0xc8, 0x28, 0x0c, 0x8c, 0x66, 0x00, 0xd4, 0x8e, //0x0000a5d0 .quad -8154892584824854328 + 0x2f, 0x78, 0x73, 0xc8, 0x24, 0xcc, 0x5e, 0x82, //0x0000a5d8 .quad -9052573742614218705 + 0xfa, 0x32, 0x0f, 0x2f, 0x80, 0x00, 0x89, 0x72, //0x0000a5e0 .quad 8253128342678483706 + 0x3b, 0x56, 0x90, 0xfa, 0x2d, 0x7f, 0xf6, 0xa2, //0x0000a5e8 .quad -6704031159840385477 + 0xb9, 0xff, 0xd2, 0x3a, 0xa0, 0x40, 0x2b, 0x4f, //0x0000a5f0 .quad 5704724409920716729 + 0xca, 0x6b, 0x34, 0x79, 0xf9, 0x1e, 0xb4, 0xcb, //0x0000a5f8 .quad -3768352931373093942 + 0xa8, 0xbf, 0x87, 0x49, 0xc8, 0x10, 0xf6, 0xe2, //0x0000a600 .quad -2092466524453879896 + 0xbc, 0x86, 0x81, 0xd7, 0xb7, 0x26, 0xa1, 0xfe, //0x0000a608 .quad -98755145788979524 + 0xc9, 0xd7, 0xf4, 0x2d, 0x7d, 0xca, 0xd9, 0x0d, //0x0000a610 .quad 998051431430019017 + 0x36, 0xf4, 0xb0, 0xe6, 0x32, 0xb8, 0x24, 0x9f, //0x0000a618 .quad -6979250993759194058 + 0xbb, 0x0d, 0x72, 0x79, 0x1c, 0x3d, 0x50, 0x91, //0x0000a620 .quad -7975807747567252037 + 0x43, 0x31, 0x5d, 0xa0, 0x3f, 0xe6, 0xed, 0xc6, //0x0000a628 .quad -4112377723771604669 + 0x2a, 0x91, 0xce, 0x97, 0x63, 0x4c, 0xa4, 0x75, //0x0000a630 .quad 8476984389250486570 + 0x94, 0x7d, 0x74, 0x88, 0xcf, 0x5f, 0xa9, 0xf8, //0x0000a638 .quad -528786136287117932 + 0xba, 0x1a, 0xe1, 0x3e, 0xbe, 0xaf, 0x86, 0xc9, //0x0000a640 .quad -3925256793573221702 + 0x7c, 0xce, 0x48, 0xb5, 0xe1, 0xdb, 0x69, 0x9b, //0x0000a648 .quad -7248020362820530564 + 0x68, 0x61, 0x99, 0xce, 0xad, 0x5b, 0xe8, 0xfb, //0x0000a650 .quad -294884973539139224 + 0x1b, 0x02, 0x9b, 0x22, 0xda, 0x52, 0x44, 0xc2, //0x0000a658 .quad -4448339435098275301 + 0xc3, 0xb9, 0x3f, 0x42, 0x99, 0x72, 0xe2, 0xfa, //0x0000a660 .quad -368606216923924029 + 0xa2, 0xc2, 0x41, 0xab, 0x90, 0x67, 0xd5, 0xf2, //0x0000a668 .quad -948738275445456222 + 0x1a, 0xd4, 0x67, 0xc9, 0x9f, 0x87, 0xcd, 0xdc, //0x0000a670 .quad -2536221894791146470 + 0xa5, 0x19, 0x09, 0x6b, 0xba, 0x60, 0xc5, 0x97, //0x0000a678 .quad -7510490449794491995 + 0x20, 0xc9, 0xc1, 0xbb, 0x87, 0xe9, 0x00, 0x54, //0x0000a680 .quad 6053094668365842720 + 0x0f, 0x60, 0xcb, 0x05, 0xe9, 0xb8, 0xb6, 0xbd, //0x0000a688 .quad -4776427043815727089 + 0x68, 0x3b, 0xb2, 0xaa, 0xe9, 0x23, 0x01, 0x29, //0x0000a690 .quad 2954682317029915496 + 0x13, 0x38, 0x3e, 0x47, 0x23, 0x67, 0x24, 0xed, //0x0000a698 .quad -1358847786342270957 + 0x21, 0x65, 0xaf, 0x0a, 0x72, 0xb6, 0xa0, 0xf9, //0x0000a6a0 .quad -459166561069996767 + 0x0b, 0xe3, 0x86, 0x0c, 0x76, 0xc0, 0x36, 0x94, //0x0000a6a8 .quad -7766808894105001205 + 0x69, 0x3e, 0x5b, 0x8d, 0x0e, 0xe4, 0x08, 0xf8, //0x0000a6b0 .quad -573958201337495959 + 0xce, 0x9b, 0xa8, 0x8f, 0x93, 0x70, 0x44, 0xb9, //0x0000a6b8 .quad -5096825099203863602 + 0x04, 0x0e, 0xb2, 0x30, 0x12, 0x1d, 0x0b, 0xb6, //0x0000a6c0 .quad -5329133770099257852 + 0xc2, 0xc2, 0x92, 0x73, 0xb8, 0x8c, 0x95, 0xe7, //0x0000a6c8 .quad -1759345355577441598 + 0xc2, 0x48, 0x6f, 0x5e, 0x2b, 0xf2, 0xc6, 0xb1, //0x0000a6d0 .quad -5636551615525730110 + 0xb9, 0xb9, 0x3b, 0x48, 0xf3, 0x77, 0xbd, 0x90, //0x0000a6d8 .quad -8017119874876982855 + 0xf3, 0x1a, 0x0b, 0x36, 0xb6, 0xae, 0x38, 0x1e, //0x0000a6e0 .quad 2177682517447613171 + 0x28, 0xa8, 0x4a, 0x1a, 0xf0, 0xd5, 0xec, 0xb4, //0x0000a6e8 .quad -5409713825168840664 + 0xb0, 0xe1, 0x8d, 0xc3, 0x63, 0xda, 0xc6, 0x25, //0x0000a6f0 .quad 2722103146809516464 + 0x32, 0x52, 0xdd, 0x20, 0x6c, 0x0b, 0x28, 0xe2, //0x0000a6f8 .quad -2150456263033662926 + 0x0e, 0xad, 0x38, 0x5a, 0x7e, 0x48, 0x9c, 0x57, //0x0000a700 .quad 6313000485183335694 + 0x5f, 0x53, 0x8a, 0x94, 0x23, 0x07, 0x59, 0x8d, //0x0000a708 .quad -8261564192037121185 + 0x51, 0xd8, 0xc6, 0xf0, 0x9d, 0x5a, 0x83, 0x2d, //0x0000a710 .quad 3279564588051781713 + 0x37, 0xe8, 0xac, 0x79, 0xec, 0x48, 0xaf, 0xb0, //0x0000a718 .quad -5715269221619013577 + 0x65, 0x8e, 0xf8, 0x6c, 0x45, 0x31, 0xe4, 0xf8, //0x0000a720 .quad -512230283362660763 + 0x44, 0x22, 0x18, 0x98, 0x27, 0x1b, 0xdb, 0xdc, //0x0000a728 .quad -2532400508596379068 + 0xff, 0x58, 0x1b, 0x64, 0xcb, 0x9e, 0x8e, 0x1b, //0x0000a730 .quad 1985699082112030975 + 0x6b, 0x15, 0x0f, 0xbf, 0xf8, 0xf0, 0x08, 0x8a, //0x0000a738 .quad -8500279345513818773 + 0x3f, 0x2f, 0x22, 0x3d, 0x7e, 0x46, 0x72, 0xe2, //0x0000a740 .quad -2129562165787349185 + 0xc5, 0xda, 0xd2, 0xee, 0x36, 0x2d, 0x8b, 0xac, //0x0000a748 .quad -6013663163464885563 + 0x0f, 0xbb, 0x6a, 0xcc, 0x1d, 0xd8, 0x0e, 0x5b, //0x0000a750 .quad 6561419329620589327 + 0x77, 0x91, 0x87, 0xaa, 0x84, 0xf8, 0xad, 0xd7, //0x0000a758 .quad -2905392935903719049 + 0xe9, 0xb4, 0xc2, 0x9f, 0x12, 0x47, 0xe9, 0x98, //0x0000a760 .quad -7428327965055601431 + 0xea, 0xba, 0x94, 0xea, 0x52, 0xbb, 0xcc, 0x86, //0x0000a768 .quad -8733399612580906262 + 0x24, 0x62, 0xb3, 0x47, 0xd7, 0x98, 0x23, 0x3f, //0x0000a770 .quad 4549648098962661924 + 0xa5, 0xe9, 0x39, 0xa5, 0x27, 0xea, 0x7f, 0xa8, //0x0000a778 .quad -6305063497298744923 + 0xad, 0x3a, 0xa0, 0x19, 0x0d, 0x7f, 0xec, 0x8e, //0x0000a780 .quad -8147997931578836307 + 0x0e, 0x64, 0x88, 0x8e, 0xb1, 0xe4, 0x9f, 0xd2, //0x0000a788 .quad -3269643353196043250 + 0xac, 0x24, 0x04, 0x30, 0x68, 0xcf, 0x53, 0x19, //0x0000a790 .quad 1825030320404309164 + 0x89, 0x3e, 0x15, 0xf9, 0xee, 0xee, 0xa3, 0x83, //0x0000a798 .quad -8961056123388608887 + 0xd7, 0x2d, 0x05, 0x3c, 0x42, 0xc3, 0xa8, 0x5f, //0x0000a7a0 .quad 6892973918932774359 + 0x2b, 0x8e, 0x5a, 0xb7, 0xaa, 0xea, 0x8c, 0xa4, //0x0000a7a8 .quad -6589634135808373205 + 0x4d, 0x79, 0x06, 0xcb, 0x12, 0xf4, 0x92, 0x37, //0x0000a7b0 .quad 4004531380238580045 + 0xb6, 0x31, 0x31, 0x65, 0x55, 0x25, 0xb0, 0xcd, //0x0000a7b8 .quad -3625356651333078602 + 0xd0, 0x0b, 0xe4, 0xbe, 0x8b, 0xd8, 0xbb, 0xe2, //0x0000a7c0 .quad -2108853905778275376 + 0x11, 0xbf, 0x3e, 0x5f, 0x55, 0x17, 0x8e, 0x80, //0x0000a7c8 .quad -9183376934724255983 + 0xc4, 0x0e, 0x9d, 0xae, 0xae, 0xce, 0x6a, 0x5b, //0x0000a7d0 .quad 6587304654631931588 + 0xd6, 0x6e, 0x0e, 0xb7, 0x2a, 0x9d, 0xb1, 0xa0, //0x0000a7d8 .quad -6867535149977932074 + 0x75, 0x52, 0x44, 0x5a, 0x5a, 0x82, 0x45, 0xf2, //0x0000a7e0 .quad -989241218564861323 + 0x8b, 0x0a, 0xd2, 0x64, 0x75, 0x04, 0xde, 0xc8, //0x0000a7e8 .quad -3972732919045027189 + 0x12, 0x67, 0xd5, 0xf0, 0xf0, 0xe2, 0xd6, 0xee, //0x0000a7f0 .quad -1236551523206076654 + 0x2e, 0x8d, 0x06, 0xbe, 0x92, 0x85, 0x15, 0xfb, //0x0000a7f8 .quad -354230130378896082 + 0x6b, 0x60, 0x85, 0x96, 0xd6, 0x4d, 0x46, 0x55, //0x0000a800 .quad 6144684325637283947 + 0x3d, 0x18, 0xc4, 0xb6, 0x7b, 0x73, 0xed, 0x9c, //0x0000a808 .quad -7138922859127891907 + 0x86, 0xb8, 0x26, 0x3c, 0x4c, 0xe1, 0x97, 0xaa, //0x0000a810 .quad -6154202648235558778 + 0x4c, 0x1e, 0x75, 0xa4, 0x5a, 0xd0, 0x28, 0xc4, //0x0000a818 .quad -4311967555482476980 + 0xa8, 0x66, 0x30, 0x4b, 0x9f, 0xd9, 0x3d, 0xd5, //0x0000a820 .quad -3081067291867060568 + 0xdf, 0x65, 0x92, 0x4d, 0x71, 0x04, 0x33, 0xf5, //0x0000a828 .quad -778273425925708321 + 0x29, 0x40, 0xfe, 0x8e, 0x03, 0xa8, 0x46, 0xe5, //0x0000a830 .quad -1925667057416912855 + 0xab, 0x7f, 0x7b, 0xd0, 0xc6, 0xe2, 0x3f, 0x99, //0x0000a838 .quad -7403949918844649557 + 0x33, 0xd0, 0xbd, 0x72, 0x04, 0x52, 0x98, 0xde, //0x0000a840 .quad -2407083821771141069 + 0x96, 0x5f, 0x9a, 0x84, 0x78, 0xdb, 0x8f, 0xbf, //0x0000a848 .quad -4643251380128424042 + 0x40, 0x44, 0x6d, 0x8f, 0x85, 0x66, 0x3e, 0x96, //0x0000a850 .quad -7620540795641314240 + 0x7c, 0xf7, 0xc0, 0xa5, 0x56, 0xd2, 0x73, 0xef, //0x0000a858 .quad -1192378206733142148 + 0xa8, 0x4a, 0xa4, 0x79, 0x13, 0x00, 0xe7, 0xdd, //0x0000a860 .quad -2456994988062127448 + 0xad, 0x9a, 0x98, 0x27, 0x76, 0x63, 0xa8, 0x95, //0x0000a868 .quad -7662765406849295699 + 0x52, 0x5d, 0x0d, 0x58, 0x18, 0xc0, 0x60, 0x55, //0x0000a870 .quad 6152128301777116498 + 0x59, 0xc1, 0x7e, 0xb1, 0x53, 0x7c, 0x12, 0xbb, //0x0000a878 .quad -4966770740134231719 + 0xa6, 0xb4, 0x10, 0x6e, 0x1e, 0xf0, 0xb8, 0xaa, //0x0000a880 .quad -6144897678060768090 + 0xaf, 0x71, 0xde, 0x9d, 0x68, 0x1b, 0xd7, 0xe9, //0x0000a888 .quad -1596777406740401745 + 0xe8, 0x70, 0xca, 0x04, 0x13, 0x96, 0xb3, 0xca, //0x0000a890 .quad -3840561048787980056 + 0x0d, 0x07, 0xab, 0x62, 0x21, 0x71, 0x26, 0x92, //0x0000a898 .quad -7915514906853832947 + 0x22, 0x0d, 0xfd, 0xc5, 0x97, 0x7b, 0x60, 0x3d, //0x0000a8a0 .quad 4422670725869800738 + 0xd1, 0xc8, 0x55, 0xbb, 0x69, 0x0d, 0xb0, 0xb6, //0x0000a8a8 .quad -5282707615139903279 + 0x6a, 0x50, 0x7c, 0xb7, 0x7d, 0x9a, 0xb8, 0x8c, //0x0000a8b0 .quad -8306719647944912790 + 0x05, 0x3b, 0x2b, 0x2a, 0xc4, 0x10, 0x5c, 0xe4, //0x0000a8b8 .quad -1991698500497491195 + 0x42, 0xb2, 0xad, 0x92, 0x8e, 0x60, 0xf3, 0x77, //0x0000a8c0 .quad 8643358275316593218 + 0xe3, 0x04, 0x5b, 0x9a, 0x7a, 0x8a, 0xb9, 0x8e, //0x0000a8c8 .quad -8162340590452013853 + 0xd3, 0x1e, 0x59, 0x37, 0xb2, 0x38, 0xf0, 0x55, //0x0000a8d0 .quad 6192511825718353619 + 0x1c, 0xc6, 0xf1, 0x40, 0x19, 0xed, 0x67, 0xb2, //0x0000a8d8 .quad -5591239719637629412 + 0x88, 0x66, 0x2f, 0xc5, 0xde, 0x46, 0x6c, 0x6b, //0x0000a8e0 .quad 7740639782147942024 + 0xa3, 0x37, 0x2e, 0x91, 0x5f, 0xe8, 0x01, 0xdf, //0x0000a8e8 .quad -2377363631119648861 + 0x15, 0xa0, 0x3d, 0x3b, 0x4b, 0xac, 0x23, 0x23, //0x0000a8f0 .quad 2532056854628769813 + 0xc6, 0xe2, 0xbc, 0xba, 0x3b, 0x31, 0x61, 0x8b, //0x0000a8f8 .quad -8403381297090862394 + 0x1a, 0x08, 0x0d, 0x0a, 0x5e, 0x97, 0xec, 0xab, //0x0000a900 .quad -6058300968568813542 + 0x77, 0x1b, 0x6c, 0xa9, 0x8a, 0x7d, 0x39, 0xae, //0x0000a908 .quad -5892540602936190089 + 0x21, 0x4a, 0x90, 0x8c, 0x35, 0xbd, 0xe7, 0x96, //0x0000a910 .quad -7572876210711016927 + 0x55, 0x22, 0xc7, 0x53, 0xed, 0xdc, 0xc7, 0xd9, //0x0000a918 .quad -2753989735242849707 + 0x54, 0x2e, 0xda, 0x77, 0x41, 0xd6, 0x50, 0x7e, //0x0000a920 .quad 9102010423587778132 + 0x75, 0x75, 0x5c, 0x54, 0x14, 0xea, 0x1c, 0x88, //0x0000a928 .quad -8638772612167862923 + 0xe9, 0xb9, 0xd0, 0xd5, 0xd1, 0x0b, 0xe5, 0xdd, //0x0000a930 .quad -2457545025797441047 + 0xd2, 0x92, 0x73, 0x69, 0x99, 0x24, 0x24, 0xaa, //0x0000a938 .quad -6186779746782440750 + 0x64, 0xe8, 0x44, 0x4b, 0xc6, 0x4e, 0x5e, 0x95, //0x0000a940 .quad -7683617300674189212 + 0x87, 0x77, 0xd0, 0xc3, 0xbf, 0x2d, 0xad, 0xd4, //0x0000a948 .quad -3121788665050663033 + 0x3e, 0x11, 0x0b, 0xef, 0x3b, 0xf1, 0x5a, 0xbd, //0x0000a950 .quad -4802260812921368258 + 0xb4, 0x4a, 0x62, 0xda, 0x97, 0x3c, 0xec, 0x84, //0x0000a958 .quad -8868646943297746252 + 0x8e, 0xd5, 0xcd, 0xea, 0x8a, 0xad, 0xb1, 0xec, //0x0000a960 .quad -1391139997724322418 + 0x61, 0xdd, 0xfa, 0xd0, 0xbd, 0x4b, 0x27, 0xa6, //0x0000a968 .quad -6474122660694794911 + 0xf2, 0x4a, 0x81, 0xa5, 0xed, 0x18, 0xde, 0x67, //0x0000a970 .quad 7484447039699372786 + 0xba, 0x94, 0x39, 0x45, 0xad, 0x1e, 0xb1, 0xcf, //0x0000a978 .quad -3480967307441105734 + 0xd7, 0xce, 0x70, 0x87, 0x94, 0xcf, 0xea, 0x80, //0x0000a980 .quad -9157278655470055721 + 0xf4, 0xfc, 0x43, 0x4b, 0x2c, 0xb3, 0xce, 0x81, //0x0000a988 .quad -9093133594791772940 + 0x8d, 0x02, 0x4d, 0xa9, 0x79, 0x83, 0x25, 0xa1, //0x0000a990 .quad -6834912300910181747 + 0x31, 0xfc, 0x14, 0x5e, 0xf7, 0x5f, 0x42, 0xa2, //0x0000a998 .quad -6754730975062328271 + 0x30, 0x43, 0xa0, 0x13, 0x58, 0xe4, 0x6e, 0x09, //0x0000a9a0 .quad 679731660717048624 + 0x3e, 0x3b, 0x9a, 0x35, 0xf5, 0xf7, 0xd2, 0xca, //0x0000a9a8 .quad -3831727700400522434 + 0xfc, 0x53, 0x88, 0x18, 0x6e, 0x9d, 0xca, 0x8b, //0x0000a9b0 .quad -8373707460958465028 + 0x0d, 0xca, 0x00, 0x83, 0xf2, 0xb5, 0x87, 0xfd, //0x0000a9b8 .quad -177973607073265139 + 0x7d, 0x34, 0x55, 0xcf, 0x64, 0xa2, 0x5e, 0x77, //0x0000a9c0 .quad 8601490892183123069 + 0x48, 0x7e, 0xe0, 0x91, 0xb7, 0xd1, 0x74, 0x9e, //0x0000a9c8 .quad -7028762532061872568 + 0x9d, 0x81, 0x2a, 0x03, 0xfe, 0x4a, 0x36, 0x95, //0x0000a9d0 .quad -7694880458480647779 + 0xda, 0x9d, 0x58, 0x76, 0x25, 0x06, 0x12, 0xc6, //0x0000a9d8 .quad -4174267146649952806 + 0x04, 0x22, 0xf5, 0x83, 0xbd, 0xdd, 0x83, 0x3a, //0x0000a9e0 .quad 4216457482181353988 + 0x51, 0xc5, 0xee, 0xd3, 0xae, 0x87, 0x96, 0xf7, //0x0000a9e8 .quad -606147914885053103 + 0x42, 0x35, 0x79, 0x72, 0x96, 0x6a, 0x92, 0xc4, //0x0000a9f0 .quad -4282243101277735614 + 0x52, 0x3b, 0x75, 0x44, 0xcd, 0x14, 0xbe, 0x9a, //0x0000a9f8 .quad -7296371474444240046 + 0x93, 0x82, 0x17, 0x0f, 0x3c, 0x05, 0xb7, 0x75, //0x0000aa00 .quad 8482254178684994195 + 0x27, 0x8a, 0x92, 0x95, 0x00, 0x9a, 0x6d, 0xc1, //0x0000aa08 .quad -4508778324627912153 + 0x38, 0x63, 0xdd, 0x12, 0x8b, 0xc6, 0x24, 0x53, //0x0000aa10 .quad 5991131704928854840 + 0xb1, 0x2c, 0xf7, 0xba, 0x80, 0x00, 0xc9, 0xf1, //0x0000aa18 .quad -1024286887357502287 + 0x03, 0x5e, 0xca, 0xeb, 0x16, 0xfc, 0xf6, 0xd3, //0x0000aa20 .quad -3173071712060547581 + 0xee, 0x7b, 0xda, 0x74, 0x50, 0xa0, 0x1d, 0x97, //0x0000aa28 .quad -7557708332239520786 + 0x84, 0xf5, 0xbc, 0xa6, 0x1c, 0xbb, 0xf4, 0x88, //0x0000aa30 .quad -8578025658503072380 + 0xea, 0x1a, 0x11, 0x92, 0x64, 0x08, 0xe5, 0xbc, //0x0000aa38 .quad -4835449396872013078 + 0xe5, 0x32, 0x6c, 0xd0, 0xe3, 0xe9, 0x31, 0x2b, //0x0000aa40 .quad 3112525982153323237 + 0xa5, 0x61, 0x95, 0xb6, 0x7d, 0x4a, 0x1e, 0xec, //0x0000aa48 .quad -1432625727662628443 + 0xcf, 0x9f, 0x43, 0x62, 0x2e, 0x32, 0xff, 0x3a, //0x0000aa50 .quad 4251171748059520975 + 0x07, 0x5d, 0x1d, 0x92, 0x8e, 0xee, 0x92, 0x93, //0x0000aa58 .quad -7812920107430224633 + 0xc2, 0x87, 0xd4, 0xfa, 0xb9, 0xfe, 0xbe, 0x09, //0x0000aa60 .quad 702278666647013314 + 0x49, 0xb4, 0xa4, 0x36, 0x32, 0xaa, 0x77, 0xb8, //0x0000aa68 .quad -5154464115860392887 + 0xb3, 0xa9, 0x89, 0x79, 0x68, 0xbe, 0x2e, 0x4c, //0x0000aa70 .quad 5489534351736154547 + 0x5b, 0xe1, 0x4d, 0xc4, 0xbe, 0x94, 0x95, 0xe6, //0x0000aa78 .quad -1831394126398103205 + 0x10, 0x0a, 0xf6, 0x4b, 0x01, 0x37, 0x9d, 0x0f, //0x0000aa80 .quad 1125115960621402640 + 0xd9, 0xac, 0xb0, 0x3a, 0xf7, 0x7c, 0x1d, 0x90, //0x0000aa88 .quad -8062150356639896359 + 0x94, 0x8c, 0xf3, 0x9e, 0xc1, 0x84, 0x84, 0x53, //0x0000aa90 .quad 6018080969204141204 + 0x0f, 0xd8, 0x5c, 0x09, 0x35, 0xdc, 0x24, 0xb4, //0x0000aa98 .quad -5466001927372482545 + 0xb9, 0x6f, 0xb0, 0x06, 0xf2, 0xa5, 0x65, 0x28, //0x0000aaa0 .quad 2910915193077788601 + 0x13, 0x0e, 0xb4, 0x4b, 0x42, 0x13, 0x2e, 0xe1, //0x0000aaa8 .quad -2220816390788215277 + 0xd3, 0x45, 0x2e, 0x44, 0xb7, 0x87, 0x3f, 0xf9, //0x0000aab0 .quad -486521013540076077 + 0xcb, 0x88, 0x50, 0x6f, 0x09, 0xcc, 0xbc, 0x8c, //0x0000aab8 .quad -8305539271883716405 + 0x48, 0xd7, 0x39, 0x15, 0xa5, 0x69, 0x8f, 0xf7, //0x0000aac0 .quad -608151266925095096 + 0xfe, 0xaa, 0x24, 0xcb, 0x0b, 0xff, 0xeb, 0xaf, //0x0000aac8 .quad -5770238071427257602 + 0x1b, 0x4d, 0x88, 0x5a, 0x0e, 0x44, 0x73, 0xb5, //0x0000aad0 .quad -5371875102083756773 + 0xbe, 0xd5, 0xed, 0xbd, 0xce, 0xfe, 0xe6, 0xdb, //0x0000aad8 .quad -2601111570856684098 + 0x30, 0x30, 0x95, 0xf8, 0x88, 0x0a, 0x68, 0x31, //0x0000aae0 .quad 3560107088838733872 + 0x97, 0xa5, 0xb4, 0x36, 0x41, 0x5f, 0x70, 0x89, //0x0000aae8 .quad -8543223759426509417 + 0x3d, 0x7c, 0xba, 0x36, 0x2b, 0x0d, 0xc2, 0xfd, //0x0000aaf0 .quad -161552157378970563 + 0xfc, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x0000aaf8 .quad -6067343680855748868 + 0x4c, 0x1b, 0x69, 0x04, 0x76, 0x90, 0x32, 0x3d, //0x0000ab00 .quad 4409745821703674700 + 0xbc, 0x42, 0x7a, 0xe5, 0xd5, 0x94, 0xbf, 0xd6, //0x0000ab08 .quad -2972493582642298180 + 0x0f, 0xb1, 0xc1, 0xc2, 0x49, 0x9a, 0x3f, 0xa6, //0x0000ab10 .quad -6467280898289979121 + 0xb5, 0x69, 0x6c, 0xaf, 0x05, 0xbd, 0x37, 0x86, //0x0000ab18 .quad -8775337516792518219 + 0x53, 0x1d, 0x72, 0x33, 0xdc, 0x80, 0xcf, 0x0f, //0x0000ab20 .quad 1139270913992301907 + 0x23, 0x84, 0x47, 0x1b, 0x47, 0xac, 0xc5, 0xa7, //0x0000ab28 .quad -6357485877563259869 + 0xa8, 0xa4, 0x4e, 0x40, 0x13, 0x61, 0xc3, 0xd3, //0x0000ab30 .quad -3187597375937010520 + 0x2b, 0x65, 0x19, 0xe2, 0x58, 0x17, 0xb7, 0xd1, //0x0000ab38 .quad -3335171328526686933 + 0xe9, 0x26, 0x31, 0x08, 0xac, 0x1c, 0x5a, 0x64, //0x0000ab40 .quad 7231123676894144233 + 0x3b, 0xdf, 0x4f, 0x8d, 0x97, 0x6e, 0x12, 0x83, //0x0000ab48 .quad -9002011107970261189 + 0xa3, 0x70, 0x3d, 0x0a, 0xd7, 0xa3, 0x70, 0x3d, //0x0000ab50 .quad 4427218577690292387 + 0x0a, 0xd7, 0xa3, 0x70, 0x3d, 0x0a, 0xd7, 0xa3, //0x0000ab58 .quad -6640827866535438582 + 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x0000ab60 QUAD $0xcccccccccccccccc; QUAD $0xcccccccccccccccc // .space 16, '\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ab70 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x0000ab78 .quad -9223372036854775808 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ab80 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, //0x0000ab88 .quad -6917529027641081856 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ab90 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc8, //0x0000ab98 .quad -4035225266123964416 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000aba0 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, //0x0000aba8 .quad -432345564227567616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000abb0 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x9c, //0x0000abb8 .quad -7187745005283311616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000abc0 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0xc3, //0x0000abc8 .quad -4372995238176751616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000abd0 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0xf4, //0x0000abd8 .quad -854558029293551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000abe0 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x96, 0x98, //0x0000abe8 .quad -7451627795949551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000abf0 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xbc, 0xbe, //0x0000abf8 .quad -4702848726509551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ac00 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x6b, 0xee, //0x0000ac08 .quad -1266874889709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ac10 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf9, 0x02, 0x95, //0x0000ac18 .quad -7709325833709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ac20 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x40, 0xb7, 0x43, 0xba, //0x0000ac28 .quad -5024971273709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ac30 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x10, 0xa5, 0xd4, 0xe8, //0x0000ac38 .quad -1669528073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ac40 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x2a, 0xe7, 0x84, 0x91, //0x0000ac48 .quad -7960984073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ac50 .quad 0 + 0x00, 0x00, 0x00, 0x80, 0xf4, 0x20, 0xe6, 0xb5, //0x0000ac58 .quad -5339544073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ac60 .quad 0 + 0x00, 0x00, 0x00, 0xa0, 0x31, 0xa9, 0x5f, 0xe3, //0x0000ac68 .quad -2062744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ac70 .quad 0 + 0x00, 0x00, 0x00, 0x04, 0xbf, 0xc9, 0x1b, 0x8e, //0x0000ac78 .quad -8206744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ac80 .quad 0 + 0x00, 0x00, 0x00, 0xc5, 0x2e, 0xbc, 0xa2, 0xb1, //0x0000ac88 .quad -5646744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ac90 .quad 0 + 0x00, 0x00, 0x40, 0x76, 0x3a, 0x6b, 0x0b, 0xde, //0x0000ac98 .quad -2446744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000aca0 .quad 0 + 0x00, 0x00, 0xe8, 0x89, 0x04, 0x23, 0xc7, 0x8a, //0x0000aca8 .quad -8446744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000acb0 .quad 0 + 0x00, 0x00, 0x62, 0xac, 0xc5, 0xeb, 0x78, 0xad, //0x0000acb8 .quad -5946744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000acc0 .quad 0 + 0x00, 0x80, 0x7a, 0x17, 0xb7, 0x26, 0xd7, 0xd8, //0x0000acc8 .quad -2821744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000acd0 .quad 0 + 0x00, 0x90, 0xac, 0x6e, 0x32, 0x78, 0x86, 0x87, //0x0000acd8 .quad -8681119073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ace0 .quad 0 + 0x00, 0xb4, 0x57, 0x0a, 0x3f, 0x16, 0x68, 0xa9, //0x0000ace8 .quad -6239712823709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000acf0 .quad 0 + 0x00, 0xa1, 0xed, 0xcc, 0xce, 0x1b, 0xc2, 0xd3, //0x0000acf8 .quad -3187955011209551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ad00 .quad 0 + 0xa0, 0x84, 0x14, 0x40, 0x61, 0x51, 0x59, 0x84, //0x0000ad08 .quad -8910000909647051616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ad10 .quad 0 + 0xc8, 0xa5, 0x19, 0x90, 0xb9, 0xa5, 0x6f, 0xa5, //0x0000ad18 .quad -6525815118631426616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ad20 .quad 0 + 0x3a, 0x0f, 0x20, 0xf4, 0x27, 0x8f, 0xcb, 0xce, //0x0000ad28 .quad -3545582879861895366 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, //0x0000ad30 .quad 4611686018427387904 + 0x84, 0x09, 0x94, 0xf8, 0x78, 0x39, 0x3f, 0x81, //0x0000ad38 .quad -9133518327554766460 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, //0x0000ad40 .quad 5764607523034234880 + 0xe5, 0x0b, 0xb9, 0x36, 0xd7, 0x07, 0x8f, 0xa1, //0x0000ad48 .quad -6805211891016070171 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa4, //0x0000ad50 .quad -6629298651489370112 + 0xde, 0x4e, 0x67, 0x04, 0xcd, 0xc9, 0xf2, 0xc9, //0x0000ad58 .quad -3894828845342699810 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4d, //0x0000ad60 .quad 5548434740920451072 + 0x96, 0x22, 0x81, 0x45, 0x40, 0x7c, 0x6f, 0xfc, //0x0000ad68 .quad -256850038250986858 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xf0, //0x0000ad70 .quad -1143914305352105984 + 0x9d, 0xb5, 0x70, 0x2b, 0xa8, 0xad, 0xc5, 0x9d, //0x0000ad78 .quad -7078060301547948643 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x6c, //0x0000ad80 .quad 7793479155164643328 + 0x05, 0xe3, 0x4c, 0x36, 0x12, 0x19, 0x37, 0xc5, //0x0000ad88 .quad -4235889358507547899 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0xc7, //0x0000ad90 .quad -4093209111326359552 + 0xc6, 0x1b, 0xe0, 0xc3, 0x56, 0xdf, 0x84, 0xf6, //0x0000ad98 .quad -683175679707046970 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7f, 0x3c, //0x0000ada0 .quad 4359273333062107136 + 0x5c, 0x11, 0x6c, 0x3a, 0x96, 0x0b, 0x13, 0x9a, //0x0000ada8 .quad -7344513827457986212 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x9f, 0x4b, //0x0000adb0 .quad 5449091666327633920 + 0xb3, 0x15, 0x07, 0xc9, 0x7b, 0xce, 0x97, 0xc0, //0x0000adb8 .quad -4568956265895094861 + 0x00, 0x00, 0x00, 0x00, 0x00, 0xd4, 0x86, 0x1e, //0x0000adc0 .quad 2199678564482154496 + 0x20, 0xdb, 0x48, 0xbb, 0x1a, 0xc2, 0xbd, 0xf0, //0x0000adc8 .quad -1099509313941480672 + 0x00, 0x00, 0x00, 0x00, 0x80, 0x44, 0x14, 0x13, //0x0000add0 .quad 1374799102801346560 + 0xf4, 0x88, 0x0d, 0xb5, 0x50, 0x99, 0x76, 0x96, //0x0000add8 .quad -7604722348854507276 + 0x00, 0x00, 0x00, 0x00, 0xa0, 0x55, 0xd9, 0x17, //0x0000ade0 .quad 1718498878501683200 + 0x31, 0xeb, 0x50, 0xe2, 0xa4, 0x3f, 0x14, 0xbc, //0x0000ade8 .quad -4894216917640746191 + 0x00, 0x00, 0x00, 0x00, 0x08, 0xab, 0xcf, 0x5d, //0x0000adf0 .quad 6759809616554491904 + 0xfd, 0x25, 0xe5, 0x1a, 0x8e, 0x4f, 0x19, 0xeb, //0x0000adf8 .quad -1506085128623544835 + 0x00, 0x00, 0x00, 0x00, 0xe5, 0xca, 0xa1, 0x5a, //0x0000ae00 .quad 6530724019560251392 + 0xbe, 0x37, 0xcf, 0xd0, 0xb8, 0xd1, 0xef, 0x92, //0x0000ae08 .quad -7858832233030797378 + 0x00, 0x00, 0x00, 0x40, 0x9e, 0x3d, 0x4a, 0xf1, //0x0000ae10 .quad -1059967012404461568 + 0xad, 0x05, 0x03, 0x05, 0x27, 0xc6, 0xab, 0xb7, //0x0000ae18 .quad -5211854272861108819 + 0x00, 0x00, 0x00, 0xd0, 0x05, 0xcd, 0x9c, 0x6d, //0x0000ae20 .quad 7898413271349198848 + 0x19, 0xc7, 0x43, 0xc6, 0xb0, 0xb7, 0x96, 0xe5, //0x0000ae28 .quad -1903131822648998119 + 0x00, 0x00, 0x00, 0xa2, 0x23, 0x00, 0x82, 0xe4, //0x0000ae30 .quad -1981020733047832576 + 0x6f, 0x5c, 0xea, 0x7b, 0xce, 0x32, 0x7e, 0x8f, //0x0000ae38 .quad -8106986416796705681 + 0x00, 0x00, 0x80, 0x8a, 0x2c, 0x80, 0xa2, 0xdd, //0x0000ae40 .quad -2476275916309790720 + 0x8b, 0xf3, 0xe4, 0x1a, 0x82, 0xbf, 0x5d, 0xb3, //0x0000ae48 .quad -5522047002568494197 + 0x00, 0x00, 0x20, 0xad, 0x37, 0x20, 0x0b, 0xd5, //0x0000ae50 .quad -3095344895387238400 + 0x6e, 0x30, 0x9e, 0xa1, 0x62, 0x2f, 0x35, 0xe0, //0x0000ae58 .quad -2290872734783229842 + 0x00, 0x00, 0x34, 0xcc, 0x22, 0xf4, 0x26, 0x45, //0x0000ae60 .quad 4982938468024057856 + 0x45, 0xde, 0x02, 0xa5, 0x9d, 0x3d, 0x21, 0x8c, //0x0000ae68 .quad -8349324486880600507 + 0x00, 0x00, 0x41, 0x7f, 0x2b, 0xb1, 0x70, 0x96, //0x0000ae70 .quad -7606384970252091392 + 0xd6, 0x95, 0x43, 0x0e, 0x05, 0x8d, 0x29, 0xaf, //0x0000ae78 .quad -5824969590173362730 + 0x00, 0x40, 0x11, 0x5f, 0x76, 0xdd, 0x0c, 0x3c, //0x0000ae80 .quad 4327076842467049472 + 0x4c, 0x7b, 0xd4, 0x51, 0x46, 0xf0, 0xf3, 0xda, //0x0000ae88 .quad -2669525969289315508 + 0x00, 0xc8, 0x6a, 0xfb, 0x69, 0x0a, 0x88, 0xa5, //0x0000ae90 .quad -6518949010312869888 + 0x0f, 0xcd, 0x24, 0xf3, 0x2b, 0x76, 0xd8, 0x88, //0x0000ae98 .quad -8585982758446904049 + 0x00, 0x7a, 0x45, 0x7a, 0x04, 0x0d, 0xea, 0x8e, //0x0000aea0 .quad -8148686262891087360 + 0x53, 0x00, 0xee, 0xef, 0xb6, 0x93, 0x0e, 0xab, //0x0000aea8 .quad -6120792429631242157 + 0x80, 0xd8, 0xd6, 0x98, 0x45, 0x90, 0xa4, 0x72, //0x0000aeb0 .quad 8260886245095692416 + 0x68, 0x80, 0xe9, 0xab, 0xa4, 0x38, 0xd2, 0xd5, //0x0000aeb8 .quad -3039304518611664792 + 0x50, 0x47, 0x86, 0x7f, 0x2b, 0xda, 0xa6, 0x47, //0x0000aec0 .quad 5163053903184807760 + 0x41, 0xf0, 0x71, 0xeb, 0x66, 0x63, 0xa3, 0x85, //0x0000aec8 .quad -8817094351773372351 + 0x24, 0xd9, 0x67, 0x5f, 0xb6, 0x90, 0x90, 0x99, //0x0000aed0 .quad -7381240676301154012 + 0x51, 0x6c, 0x4e, 0xa6, 0x40, 0x3c, 0x0c, 0xa7, //0x0000aed8 .quad -6409681921289327535 + 0x6d, 0xcf, 0x41, 0xf7, 0xe3, 0xb4, 0xf4, 0xff, //0x0000aee0 .quad -3178808521666707 + 0x65, 0x07, 0xe2, 0xcf, 0x50, 0x4b, 0xcf, 0xd0, //0x0000aee8 .quad -3400416383184271515 + 0xa4, 0x21, 0x89, 0x7a, 0x0e, 0xf1, 0xf8, 0xbf, //0x0000aef0 .quad -4613672773753429596 + 0x9f, 0x44, 0xed, 0x81, 0x12, 0x8f, 0x81, 0x82, //0x0000aef8 .quad -9042789267131251553 + 0x0d, 0x6a, 0x2b, 0x19, 0x52, 0x2d, 0xf7, 0xaf, //0x0000af00 .quad -5767090967191786995 + 0xc7, 0x95, 0x68, 0x22, 0xd7, 0xf2, 0x21, 0xa3, //0x0000af08 .quad -6691800565486676537 + 0x90, 0x44, 0x76, 0x9f, 0xa6, 0xf8, 0xf4, 0x9b, //0x0000af10 .quad -7208863708989733744 + 0x39, 0xbb, 0x02, 0xeb, 0x8c, 0x6f, 0xea, 0xcb, //0x0000af18 .quad -3753064688430957767 + 0xb4, 0xd5, 0x53, 0x47, 0xd0, 0x36, 0xf2, 0x02, //0x0000af20 .quad 212292400617608628 + 0x08, 0x6a, 0xc3, 0x25, 0x70, 0x0b, 0xe5, 0xfe, //0x0000af28 .quad -79644842111309304 + 0x90, 0x65, 0x94, 0x2c, 0x42, 0x62, 0xd7, 0x01, //0x0000af30 .quad 132682750386005392 + 0x45, 0x22, 0x9a, 0x17, 0x26, 0x27, 0x4f, 0x9f, //0x0000af38 .quad -6967307053960650171 + 0xf5, 0x7e, 0xb9, 0xb7, 0xd2, 0x3a, 0x4d, 0x42, //0x0000af40 .quad 4777539456409894645 + 0xd6, 0xaa, 0x80, 0x9d, 0xef, 0xf0, 0x22, 0xc7, //0x0000af48 .quad -4097447799023424810 + 0xb2, 0xde, 0xa7, 0x65, 0x87, 0x89, 0xe0, 0xd2, //0x0000af50 .quad -3251447716342407502 + 0x8b, 0xd5, 0xe0, 0x84, 0x2b, 0xad, 0xeb, 0xf8, //0x0000af58 .quad -510123730351893109 + 0x2f, 0xeb, 0x88, 0x9f, 0xf4, 0x55, 0xcc, 0x63, //0x0000af60 .quad 7191217214140771119 + 0x77, 0x85, 0x0c, 0x33, 0x3b, 0x4c, 0x93, 0x9b, //0x0000af68 .quad -7236356359111015049 + 0xfb, 0x25, 0x6b, 0xc7, 0x71, 0x6b, 0xbf, 0x3c, //0x0000af70 .quad 4377335499248575995 + 0xd5, 0xa6, 0xcf, 0xff, 0x49, 0x1f, 0x78, 0xc2, //0x0000af78 .quad -4433759430461380907 + 0x7a, 0xef, 0x45, 0x39, 0x4e, 0x46, 0xef, 0x8b, //0x0000af80 .quad -8363388681221443718 + 0x8a, 0x90, 0xc3, 0x7f, 0x1c, 0x27, 0x16, 0xf3, //0x0000af88 .quad -930513269649338230 + 0xac, 0xb5, 0xcb, 0xe3, 0xf0, 0x8b, 0x75, 0x97, //0x0000af90 .quad -7532960934977096276 + 0x56, 0x3a, 0xda, 0xcf, 0x71, 0xd8, 0xed, 0x97, //0x0000af98 .quad -7499099821171918250 + 0x17, 0xa3, 0xbe, 0x1c, 0xed, 0xee, 0x52, 0x3d, //0x0000afa0 .quad 4418856886560793367 + 0xec, 0xc8, 0xd0, 0x43, 0x8e, 0x4e, 0xe9, 0xbd, //0x0000afa8 .quad -4762188758037509908 + 0xdd, 0x4b, 0xee, 0x63, 0xa8, 0xaa, 0xa7, 0x4c, //0x0000afb0 .quad 5523571108200991709 + 0x27, 0xfb, 0xc4, 0xd4, 0x31, 0xa2, 0x63, 0xed, //0x0000afb8 .quad -1341049929119499481 + 0x6a, 0xef, 0x74, 0x3e, 0xa9, 0xca, 0xe8, 0x8f, //0x0000afc0 .quad -8076983103442849942 + 0xf8, 0x1c, 0xfb, 0x24, 0x5f, 0x45, 0x5e, 0x94, //0x0000afc8 .quad -7755685233340769032 + 0x44, 0x2b, 0x12, 0x8e, 0x53, 0xfd, 0xe2, 0xb3, //0x0000afd0 .quad -5484542860876174524 + 0x36, 0xe4, 0x39, 0xee, 0xb6, 0xd6, 0x75, 0xb9, //0x0000afd8 .quad -5082920523248573386 + 0x16, 0xb6, 0x96, 0x71, 0xa8, 0xbc, 0xdb, 0x60, //0x0000afe0 .quad 6979379479186945558 + 0x44, 0x5d, 0xc8, 0xa9, 0x64, 0x4c, 0xd3, 0xe7, //0x0000afe8 .quad -1741964635633328828 + 0xcd, 0x31, 0xfe, 0x46, 0xe9, 0x55, 0x89, 0xbc, //0x0000aff0 .quad -4861259862362934835 + 0x4a, 0x3a, 0x1d, 0xea, 0xbe, 0x0f, 0xe4, 0x90, //0x0000aff8 .quad -8006256924911912374 + 0x41, 0xbe, 0xbd, 0x98, 0x63, 0xab, 0xab, 0x6b, //0x0000b000 .quad 7758483227328495169 + 0xdd, 0x88, 0xa4, 0xa4, 0xae, 0x13, 0x1d, 0xb5, //0x0000b008 .quad -5396135137712502563 + 0xd1, 0x2d, 0xed, 0x7e, 0x3c, 0x96, 0x96, 0xc6, //0x0000b010 .quad -4136954021121544751 + 0x14, 0xab, 0xcd, 0x4d, 0x9a, 0x58, 0x64, 0xe2, //0x0000b018 .quad -2133482903713240300 + 0xa2, 0x3c, 0x54, 0xcf, 0xe5, 0x1d, 0x1e, 0xfc, //0x0000b020 .quad -279753253987271518 + 0xec, 0x8a, 0xa0, 0x70, 0x60, 0xb7, 0x7e, 0x8d, //0x0000b028 .quad -8250955842461857044 + 0xcb, 0x4b, 0x29, 0x43, 0x5f, 0xa5, 0x25, 0x3b, //0x0000b030 .quad 4261994450943298507 + 0xa8, 0xad, 0xc8, 0x8c, 0x38, 0x65, 0xde, 0xb0, //0x0000b038 .quad -5702008784649933400 + 0xbe, 0x9e, 0xf3, 0x13, 0xb7, 0x0e, 0xef, 0x49, //0x0000b040 .quad 5327493063679123134 + 0x12, 0xd9, 0xfa, 0xaf, 0x86, 0xfe, 0x15, 0xdd, //0x0000b048 .quad -2515824962385028846 + 0x37, 0x43, 0x78, 0x6c, 0x32, 0x69, 0x35, 0x6e, //0x0000b050 .quad 7941369183226839863 + 0xab, 0xc7, 0xfc, 0x2d, 0x14, 0xbf, 0x2d, 0x8a, //0x0000b058 .quad -8489919629131724885 + 0x04, 0x54, 0x96, 0x07, 0x7f, 0xc3, 0xc2, 0x49, //0x0000b060 .quad 5315025460606161924 + 0x96, 0xf9, 0x7b, 0x39, 0xd9, 0x2e, 0xb9, 0xac, //0x0000b068 .quad -6000713517987268202 + 0x06, 0xe9, 0x7b, 0xc9, 0x5e, 0x74, 0x33, 0xdc, //0x0000b070 .quad -2579590211097073402 + 0xfb, 0xf7, 0xda, 0x87, 0x8f, 0x7a, 0xe7, 0xd7, //0x0000b078 .quad -2889205879056697349 + 0xa3, 0x71, 0xed, 0x3d, 0xbb, 0x28, 0xa0, 0x69, //0x0000b080 .quad 7611128154919104931 + 0xfd, 0xda, 0xe8, 0xb4, 0x99, 0xac, 0xf0, 0x86, //0x0000b088 .quad -8723282702051517699 + 0x0c, 0xce, 0x68, 0x0d, 0xea, 0x32, 0x08, 0xc4, //0x0000b090 .quad -4321147861633282548 + 0xbc, 0x11, 0x23, 0x22, 0xc0, 0xd7, 0xac, 0xa8, //0x0000b098 .quad -6292417359137009220 + 0x90, 0x01, 0xc3, 0x90, 0xa4, 0x3f, 0x0a, 0xf5, //0x0000b0a0 .quad -789748808614215280 + 0x2b, 0xd6, 0xab, 0x2a, 0xb0, 0x0d, 0xd8, 0xd2, //0x0000b0a8 .quad -3253835680493873621 + 0xfa, 0xe0, 0x79, 0xda, 0xc6, 0x67, 0x26, 0x79, //0x0000b0b0 .quad 8729779031470891258 + 0xdb, 0x65, 0xab, 0x1a, 0x8e, 0x08, 0xc7, 0x83, //0x0000b0b8 .quad -8951176327949752869 + 0x38, 0x59, 0x18, 0x91, 0xb8, 0x01, 0x70, 0x57, //0x0000b0c0 .quad 6300537770911226168 + 0x52, 0x3f, 0x56, 0xa1, 0xb1, 0xca, 0xb8, 0xa4, //0x0000b0c8 .quad -6577284391509803182 + 0x86, 0x6f, 0x5e, 0xb5, 0x26, 0x02, 0x4c, 0xed, //0x0000b0d0 .quad -1347699823215743098 + 0x26, 0xcf, 0xab, 0x09, 0x5e, 0xfd, 0xe6, 0xcd, //0x0000b0d8 .quad -3609919470959866074 + 0xb4, 0x05, 0x5b, 0x31, 0x58, 0x81, 0x4f, 0x54, //0x0000b0e0 .quad 6075216638131242420 + 0x78, 0x61, 0x0b, 0xc6, 0x5a, 0x5e, 0xb0, 0x80, //0x0000b0e8 .quad -9173728696990998152 + 0x21, 0xc7, 0xb1, 0x3d, 0xae, 0x61, 0x63, 0x69, //0x0000b0f0 .quad 7594020797664053025 + 0xd6, 0x39, 0x8e, 0x77, 0xf1, 0x75, 0xdc, 0xa0, //0x0000b0f8 .quad -6855474852811359786 + 0xe9, 0x38, 0x1e, 0xcd, 0x19, 0x3a, 0xbc, 0x03, //0x0000b100 .quad 269153960225290473 + 0x4c, 0xc8, 0x71, 0xd5, 0x6d, 0x93, 0x13, 0xc9, //0x0000b108 .quad -3957657547586811828 + 0x23, 0xc7, 0x65, 0x40, 0xa0, 0x48, 0xab, 0x04, //0x0000b110 .quad 336442450281613091 + 0x5f, 0x3a, 0xce, 0x4a, 0x49, 0x78, 0x58, 0xfb, //0x0000b118 .quad -335385916056126881 + 0x76, 0x9c, 0x3f, 0x28, 0x64, 0x0d, 0xeb, 0x62, //0x0000b120 .quad 7127805559067090038 + 0x7b, 0xe4, 0xc0, 0xce, 0x2d, 0x4b, 0x17, 0x9d, //0x0000b128 .quad -7127145225176161157 + 0x94, 0x83, 0x4f, 0x32, 0xbd, 0xd0, 0xa5, 0x3b, //0x0000b130 .quad 4298070930406474644 + 0x9a, 0x1d, 0x71, 0x42, 0xf9, 0x1d, 0x5d, 0xc4, //0x0000b138 .quad -4297245513042813542 + 0x79, 0x64, 0xe3, 0x7e, 0xec, 0x44, 0x8f, 0xca, //0x0000b140 .quad -3850783373846682503 + 0x00, 0x65, 0x0d, 0x93, 0x77, 0x65, 0x74, 0xf5, //0x0000b148 .quad -759870872876129024 + 0xcb, 0x1e, 0x4e, 0xcf, 0x13, 0x8b, 0x99, 0x7e, //0x0000b150 .quad 9122475437414293195 + 0x20, 0x5f, 0xe8, 0xbb, 0x6a, 0xbf, 0x68, 0x99, //0x0000b158 .quad -7392448323188662496 + 0x7e, 0xa6, 0x21, 0xc3, 0xd8, 0xed, 0x3f, 0x9e, //0x0000b160 .quad -7043649776941685122 + 0xe8, 0x76, 0xe2, 0x6a, 0x45, 0xef, 0xc2, 0xbf, //0x0000b168 .quad -4628874385558440216 + 0x1e, 0x10, 0xea, 0xf3, 0x4e, 0xe9, 0xcf, 0xc5, //0x0000b170 .quad -4192876202749718498 + 0xa2, 0x14, 0x9b, 0xc5, 0x16, 0xab, 0xb3, 0xef, //0x0000b178 .quad -1174406963520662366 + 0x12, 0x4a, 0x72, 0x58, 0xd1, 0xf1, 0xa1, 0xbb, //0x0000b180 .quad -4926390635932268014 + 0xe5, 0xec, 0x80, 0x3b, 0xee, 0x4a, 0xd0, 0x95, //0x0000b188 .quad -7651533379841495835 + 0x97, 0xdc, 0x8e, 0xae, 0x45, 0x6e, 0x8a, 0x2a, //0x0000b190 .quad 3065383741939440791 + 0x1f, 0x28, 0x61, 0xca, 0xa9, 0x5d, 0x44, 0xbb, //0x0000b198 .quad -4952730706374481889 + 0xbd, 0x93, 0x32, 0x1a, 0xd7, 0x09, 0x2d, 0xf5, //0x0000b1a0 .quad -779956341003086915 + 0x26, 0x72, 0xf9, 0x3c, 0x14, 0x75, 0x15, 0xea, //0x0000b1a8 .quad -1579227364540714458 + 0x56, 0x9c, 0x5f, 0x70, 0x26, 0x26, 0x3c, 0x59, //0x0000b1b0 .quad 6430056314514152534 + 0x58, 0xe7, 0x1b, 0xa6, 0x2c, 0x69, 0x4d, 0x92, //0x0000b1b8 .quad -7904546130479028392 + 0x6c, 0x83, 0x77, 0x0c, 0xb0, 0x2f, 0x8b, 0x6f, //0x0000b1c0 .quad 8037570393142690668 + 0x2e, 0xe1, 0xa2, 0xcf, 0x77, 0xc3, 0xe0, 0xb6, //0x0000b1c8 .quad -5268996644671397586 + 0x47, 0x64, 0x95, 0x0f, 0x9c, 0xfb, 0x6d, 0x0b, //0x0000b1d0 .quad 823590954573587527 + 0x7a, 0x99, 0x8b, 0xc3, 0x55, 0xf4, 0x98, 0xe4, //0x0000b1d8 .quad -1974559787411859078 + 0xac, 0x5e, 0xbd, 0x89, 0x41, 0xbd, 0x24, 0x47, //0x0000b1e0 .quad 5126430365035880108 + 0xec, 0x3f, 0x37, 0x9a, 0xb5, 0x98, 0xdf, 0x8e, //0x0000b1e8 .quad -8151628894773493780 + 0x57, 0xb6, 0x2c, 0xec, 0x91, 0xec, 0xed, 0x58, //0x0000b1f0 .quad 6408037956294850135 + 0xe7, 0x0f, 0xc5, 0x00, 0xe3, 0x7e, 0x97, 0xb2, //0x0000b1f8 .quad -5577850100039479321 + 0xed, 0xe3, 0x37, 0x67, 0xb6, 0x67, 0x29, 0x2f, //0x0000b200 .quad 3398361426941174765 + 0xe1, 0x53, 0xf6, 0xc0, 0x9b, 0x5e, 0x3d, 0xdf, //0x0000b208 .quad -2360626606621961247 + 0x74, 0xee, 0x82, 0x00, 0xd2, 0xe0, 0x79, 0xbd, //0x0000b210 .quad -4793553135802847628 + 0x6c, 0xf4, 0x99, 0x58, 0x21, 0x5b, 0x86, 0x8b, //0x0000b218 .quad -8392920656779807636 + 0x11, 0xaa, 0xa3, 0x80, 0x06, 0x59, 0xd8, 0xec, //0x0000b220 .quad -1380255401326171631 + 0x87, 0x71, 0xc0, 0xae, 0xe9, 0xf1, 0x67, 0xae, //0x0000b228 .quad -5879464802547371641 + 0x95, 0x94, 0xcc, 0x20, 0x48, 0x6f, 0x0e, 0xe8, //0x0000b230 .quad -1725319251657714539 + 0xe9, 0x8d, 0x70, 0x1a, 0x64, 0xee, 0x01, 0xda, //0x0000b238 .quad -2737644984756826647 + 0xdd, 0xdc, 0x7f, 0x14, 0x8d, 0x05, 0x09, 0x31, //0x0000b240 .quad 3533361486141316317 + 0xb2, 0x58, 0x86, 0x90, 0xfe, 0x34, 0x41, 0x88, //0x0000b248 .quad -8628557143114098510 + 0x15, 0xd4, 0x9f, 0x59, 0xf0, 0x46, 0x4b, 0xbd, //0x0000b250 .quad -4806670179178130411 + 0xde, 0xee, 0xa7, 0x34, 0x3e, 0x82, 0x51, 0xaa, //0x0000b258 .quad -6174010410465235234 + 0x1a, 0xc9, 0x07, 0x70, 0xac, 0x18, 0x9e, 0x6c, //0x0000b260 .quad 7826720331309500698 + 0x96, 0xea, 0xd1, 0xc1, 0xcd, 0xe2, 0xe5, 0xd4, //0x0000b268 .quad -3105826994654156138 + 0xb0, 0xdd, 0x04, 0xc6, 0x6b, 0xcf, 0xe2, 0x03, //0x0000b270 .quad 280014188641050032 + 0x9e, 0x32, 0x23, 0x99, 0xc0, 0xad, 0x0f, 0x85, //0x0000b278 .quad -8858670899299929442 + 0x1c, 0x15, 0x86, 0xb7, 0x46, 0x83, 0xdb, 0x84, //0x0000b280 .quad -8873354301053463268 + 0x45, 0xff, 0x6b, 0xbf, 0x30, 0x99, 0x53, 0xa6, //0x0000b288 .quad -6461652605697523899 + 0x63, 0x9a, 0x67, 0x65, 0x18, 0x64, 0x12, 0xe6, //0x0000b290 .quad -1868320839462053277 + 0x16, 0xff, 0x46, 0xef, 0x7c, 0x7f, 0xe8, 0xcf, //0x0000b298 .quad -3465379738694516970 + 0x7e, 0xc0, 0x60, 0x3f, 0x8f, 0x7e, 0xcb, 0x4f, //0x0000b2a0 .quad 5749828502977298558 + 0x6e, 0x5f, 0x8c, 0x15, 0xae, 0x4f, 0xf1, 0x81, //0x0000b2a8 .quad -9083391364325154962 + 0x9d, 0xf0, 0x38, 0x0f, 0x33, 0x5e, 0xbe, 0xe3, //0x0000b2b0 .quad -2036086408133152611 + 0x49, 0x77, 0xef, 0x9a, 0x99, 0xa3, 0x6d, 0xa2, //0x0000b2b8 .quad -6742553186979055799 + 0xc5, 0x2c, 0x07, 0xd3, 0xbf, 0xf5, 0xad, 0x5c, //0x0000b2c0 .quad 6678264026688335045 + 0x1c, 0x55, 0xab, 0x01, 0x80, 0x0c, 0x09, 0xcb, //0x0000b2c8 .quad -3816505465296431844 + 0xf6, 0xf7, 0xc8, 0xc7, 0x2f, 0x73, 0xd9, 0x73, //0x0000b2d0 .quad 8347830033360418806 + 0x63, 0x2a, 0x16, 0x02, 0xa0, 0x4f, 0xcb, 0xfd, //0x0000b2d8 .quad -158945813193151901 + 0xfa, 0x9a, 0xdd, 0xdc, 0xfd, 0xe7, 0x67, 0x28, //0x0000b2e0 .quad 2911550761636567802 + 0x7e, 0xda, 0x4d, 0x01, 0xc4, 0x11, 0x9f, 0x9e, //0x0000b2e8 .quad -7016870160886801794 + 0xb8, 0x01, 0x15, 0x54, 0xfd, 0xe1, 0x81, 0xb2, //0x0000b2f0 .quad -5583933584809066056 + 0x1d, 0x51, 0xa1, 0x01, 0x35, 0xd6, 0x46, 0xc6, //0x0000b2f8 .quad -4159401682681114339 + 0x26, 0x42, 0x1a, 0xa9, 0x7c, 0x5a, 0x22, 0x1f, //0x0000b300 .quad 2243455055843443238 + 0x65, 0xa5, 0x09, 0x42, 0xc2, 0x8b, 0xd8, 0xf7, //0x0000b308 .quad -587566084924005019 + 0x58, 0x69, 0xb0, 0xe9, 0x8d, 0x78, 0x75, 0x33, //0x0000b310 .quad 3708002419115845976 + 0x5f, 0x07, 0x46, 0x69, 0x59, 0x57, 0xe7, 0x9a, //0x0000b318 .quad -7284757830718584993 + 0xae, 0x83, 0x1c, 0x64, 0xb1, 0xd6, 0x52, 0x00, //0x0000b320 .quad 23317005467419566 + 0x37, 0x89, 0x97, 0xc3, 0x2f, 0x2d, 0xa1, 0xc1, //0x0000b328 .quad -4494261269970843337 + 0x9a, 0xa4, 0x23, 0xbd, 0x5d, 0x8c, 0x67, 0xc0, //0x0000b330 .quad -4582539761593113446 + 0x84, 0x6b, 0x7d, 0xb4, 0x7b, 0x78, 0x09, 0xf2, //0x0000b338 .quad -1006140569036166268 + 0xe0, 0x46, 0x36, 0x96, 0xba, 0xb7, 0x40, 0xf8, //0x0000b340 .quad -558244341782001952 + 0x32, 0x63, 0xce, 0x50, 0x4d, 0xeb, 0x45, 0x97, //0x0000b348 .quad -7546366883288685774 + 0x98, 0xd8, 0xc3, 0x3b, 0xa9, 0xe5, 0x50, 0xb6, //0x0000b350 .quad -5309491445654890344 + 0xff, 0xfb, 0x01, 0xa5, 0x20, 0x66, 0x17, 0xbd, //0x0000b358 .quad -4821272585683469313 + 0xbe, 0xce, 0xb4, 0x8a, 0x13, 0x1f, 0xe5, 0xa3, //0x0000b360 .quad -6636864307068612930 + 0xff, 0x7a, 0x42, 0xce, 0xa8, 0x3f, 0x5d, 0xec, //0x0000b368 .quad -1414904713676948737 + 0x37, 0x01, 0xb1, 0x36, 0x6c, 0x33, 0x6f, 0xc6, //0x0000b370 .quad -4148040191917883081 + 0xdf, 0x8c, 0xe9, 0x80, 0xc9, 0x47, 0xba, 0x93, //0x0000b378 .quad -7801844473689174817 + 0x84, 0x41, 0x5d, 0x44, 0x47, 0x00, 0x0b, 0xb8, //0x0000b380 .quad -5185050239897353852 + 0x17, 0xf0, 0x23, 0xe1, 0xbb, 0xd9, 0xa8, 0xb8, //0x0000b388 .quad -5140619573684080617 + 0xe5, 0x91, 0x74, 0x15, 0x59, 0xc0, 0x0d, 0xa6, //0x0000b390 .quad -6481312799871692315 + 0x1d, 0xec, 0x6c, 0xd9, 0x2a, 0x10, 0xd3, 0xe6, //0x0000b398 .quad -1814088448677712867 + 0x2f, 0xdb, 0x68, 0xad, 0x37, 0x98, 0xc8, 0x87, //0x0000b3a0 .quad -8662506518347195601 + 0x92, 0x13, 0xe4, 0xc7, 0x1a, 0xea, 0x43, 0x90, //0x0000b3a8 .quad -8051334308064652398 + 0xfb, 0x11, 0xc3, 0x98, 0x45, 0xbe, 0xba, 0x29, //0x0000b3b0 .quad 3006924907348169211 + 0x77, 0x18, 0xdd, 0x79, 0xa1, 0xe4, 0x54, 0xb4, //0x0000b3b8 .quad -5452481866653427593 + 0x7a, 0xd6, 0xf3, 0xfe, 0xd6, 0x6d, 0x29, 0xf4, //0x0000b3c0 .quad -853029884242176390 + 0x94, 0x5e, 0x54, 0xd8, 0xc9, 0x1d, 0x6a, 0xe1, //0x0000b3c8 .quad -2203916314889396588 + 0x0c, 0x66, 0x58, 0x5f, 0xa6, 0xe4, 0x99, 0x18, //0x0000b3d0 .quad 1772699331562333708 + 0x1d, 0xbb, 0x34, 0x27, 0x9e, 0x52, 0xe2, 0x8c, //0x0000b3d8 .quad -8294976724446954723 + 0x8f, 0x7f, 0x2e, 0xf7, 0xcf, 0x5d, 0xc0, 0x5e, //0x0000b3e0 .quad 6827560182880305039 + 0xe4, 0xe9, 0x01, 0xb1, 0x45, 0xe7, 0x1a, 0xb0, //0x0000b3e8 .quad -5757034887131305500 + 0x73, 0x1f, 0xfa, 0xf4, 0x43, 0x75, 0x70, 0x76, //0x0000b3f0 .quad 8534450228600381299 + 0x5d, 0x64, 0x42, 0x1d, 0x17, 0xa1, 0x21, 0xdc, //0x0000b3f8 .quad -2584607590486743971 + 0xa8, 0x53, 0x1c, 0x79, 0x4a, 0x49, 0x06, 0x6a, //0x0000b400 .quad 7639874402088932264 + 0xba, 0x7e, 0x49, 0x72, 0xae, 0x04, 0x95, 0x89, //0x0000b408 .quad -8532908771695296838 + 0x92, 0x68, 0x63, 0x17, 0x9d, 0xdb, 0x87, 0x04, //0x0000b410 .quad 326470965756389522 + 0x69, 0xde, 0xdb, 0x0e, 0xda, 0x45, 0xfa, 0xab, //0x0000b418 .quad -6054449946191733143 + 0xb6, 0x42, 0x3c, 0x5d, 0x84, 0xd2, 0xa9, 0x45, //0x0000b420 .quad 5019774725622874806 + 0x03, 0xd6, 0x92, 0x92, 0x50, 0xd7, 0xf8, 0xd6, //0x0000b428 .quad -2956376414312278525 + 0xb2, 0xa9, 0x45, 0xba, 0x92, 0x23, 0x8a, 0x0b, //0x0000b430 .quad 831516194300602802 + 0xc2, 0xc5, 0x9b, 0x5b, 0x92, 0x86, 0x5b, 0x86, //0x0000b438 .quad -8765264286586255934 + 0x1e, 0x14, 0xd7, 0x68, 0x77, 0xac, 0x6c, 0x8e, //0x0000b440 .quad -8183976793979022306 + 0x32, 0xb7, 0x82, 0xf2, 0x36, 0x68, 0xf2, 0xa7, //0x0000b448 .quad -6344894339805432014 + 0x26, 0xd9, 0x0c, 0x43, 0x95, 0xd7, 0x07, 0x32, //0x0000b450 .quad 3605087062808385830 + 0xff, 0x64, 0x23, 0xaf, 0x44, 0x02, 0xef, 0xd1, //0x0000b458 .quad -3319431906329402113 + 0xb8, 0x07, 0xe8, 0x49, 0xbd, 0xe6, 0x44, 0x7f, //0x0000b460 .quad 9170708441896323000 + 0x1f, 0x1f, 0x76, 0xed, 0x6a, 0x61, 0x35, 0x83, //0x0000b468 .quad -8992173969096958177 + 0xa6, 0x09, 0x62, 0x9c, 0x6c, 0x20, 0x16, 0x5f, //0x0000b470 .quad 6851699533943015846 + 0xe7, 0xa6, 0xd3, 0xa8, 0xc5, 0xb9, 0x02, 0xa4, //0x0000b478 .quad -6628531442943809817 + 0x0f, 0x8c, 0x7a, 0xc3, 0x87, 0xa8, 0xdb, 0x36, //0x0000b480 .quad 3952938399001381903 + 0xa1, 0x90, 0x08, 0x13, 0x37, 0x68, 0x03, 0xcd, //0x0000b488 .quad -3673978285252374367 + 0x89, 0x97, 0x2c, 0xda, 0x54, 0x49, 0x49, 0xc2, //0x0000b490 .quad -4446942528265218167 + 0x64, 0x5a, 0xe5, 0x6b, 0x22, 0x21, 0x22, 0x80, //0x0000b498 .quad -9213765455923815836 + 0x6c, 0xbd, 0xb7, 0x10, 0xaa, 0x9b, 0xdb, 0xf2, //0x0000b4a0 .quad -946992141904134804 + 0xfd, 0xb0, 0xde, 0x06, 0x6b, 0xa9, 0x2a, 0xa0, //0x0000b4a8 .quad -6905520801477381891 + 0xc7, 0xac, 0xe5, 0x94, 0x94, 0x82, 0x92, 0x6f, //0x0000b4b0 .quad 8039631859474607303 + 0x3d, 0x5d, 0x96, 0xc8, 0xc5, 0x53, 0x35, 0xc8, //0x0000b4b8 .quad -4020214983419339459 + 0xf9, 0x17, 0x1f, 0xba, 0x39, 0x23, 0x77, 0xcb, //0x0000b4c0 .quad -3785518230938904583 + 0x8c, 0xf4, 0xbb, 0x3a, 0xb7, 0xa8, 0x42, 0xfa, //0x0000b4c8 .quad -413582710846786420 + 0xfb, 0x6e, 0x53, 0x14, 0x04, 0x76, 0x2a, 0xff, //0x0000b4d0 .quad -60105885123121413 + 0xd7, 0x78, 0xb5, 0x84, 0x72, 0xa9, 0x69, 0x9c, //0x0000b4d8 .quad -7176018221920323369 + 0xba, 0x4a, 0x68, 0x19, 0x85, 0x13, 0xf5, 0xfe, //0x0000b4e0 .quad -75132356403901766 + 0x0d, 0xd7, 0xe2, 0x25, 0xcf, 0x13, 0x84, 0xc3, //0x0000b4e8 .quad -4358336758973016307 + 0x69, 0x5d, 0xc2, 0x5f, 0x66, 0x58, 0xb2, 0x7e, //0x0000b4f0 .quad 9129456591349898601 + 0xd1, 0x8c, 0x5b, 0xef, 0xc2, 0x18, 0x65, 0xf4, //0x0000b4f8 .quad -836234930288882479 + 0x61, 0x7a, 0xd9, 0xfb, 0x3f, 0x77, 0x2f, 0xef, //0x0000b500 .quad -1211618658047395231 + 0x02, 0x38, 0x99, 0xd5, 0x79, 0x2f, 0xbf, 0x98, //0x0000b508 .quad -7440175859071633406 + 0xfa, 0xd8, 0xcf, 0xfa, 0x0f, 0x55, 0xfb, 0xaa, //0x0000b510 .quad -6126209340986631942 + 0x03, 0x86, 0xff, 0x4a, 0x58, 0xfb, 0xee, 0xbe, //0x0000b518 .quad -4688533805412153853 + 0x38, 0xcf, 0x83, 0xf9, 0x53, 0x2a, 0xba, 0x95, //0x0000b520 .quad -7657761676233289928 + 0x84, 0x67, 0xbf, 0x5d, 0x2e, 0xba, 0xaa, 0xee, //0x0000b528 .quad -1248981238337804412 + 0x83, 0x61, 0xf2, 0x7b, 0x74, 0x5a, 0x94, 0xdd, //0x0000b530 .quad -2480258038432112253 + 0xb2, 0xa0, 0x97, 0xfa, 0x5c, 0xb4, 0x2a, 0x95, //0x0000b538 .quad -7698142301602209614 + 0xe4, 0xf9, 0xee, 0x9a, 0x11, 0x71, 0xf9, 0x94, //0x0000b540 .quad -7712008566467528220 + 0xdf, 0x88, 0x3d, 0x39, 0x74, 0x61, 0x75, 0xba, //0x0000b548 .quad -5010991858575374113 + 0x5d, 0xb8, 0xaa, 0x01, 0x56, 0xcd, 0x37, 0x7a, //0x0000b550 .quad 8806733365625141341 + 0x17, 0xeb, 0x8c, 0x47, 0xd1, 0xb9, 0x12, 0xe9, //0x0000b558 .quad -1652053804791829737 + 0x3a, 0xb3, 0x0a, 0xc1, 0x55, 0xe0, 0x62, 0xac, //0x0000b560 .quad -6025006692552756422 + 0xee, 0x12, 0xb8, 0xcc, 0x22, 0xb4, 0xab, 0x91, //0x0000b568 .quad -7950062655635975442 + 0x09, 0x60, 0x4d, 0x31, 0x6b, 0x98, 0x7b, 0x57, //0x0000b570 .quad 6303799689591218185 + 0xaa, 0x17, 0xe6, 0x7f, 0x2b, 0xa1, 0x16, 0xb6, //0x0000b578 .quad -5325892301117581398 + 0x0b, 0xb8, 0xa0, 0xfd, 0x85, 0x7e, 0x5a, 0xed, //0x0000b580 .quad -1343622424865753077 + 0x94, 0x9d, 0xdf, 0x5f, 0x76, 0x49, 0x9c, 0xe3, //0x0000b588 .quad -2045679357969588844 + 0x07, 0x73, 0x84, 0xbe, 0x13, 0x8f, 0x58, 0x14, //0x0000b590 .quad 1466078993672598279 + 0x7d, 0xc2, 0xeb, 0xfb, 0xe9, 0xad, 0x41, 0x8e, //0x0000b598 .quad -8196078626372074883 + 0xc8, 0x8f, 0x25, 0xae, 0xd8, 0xb2, 0x6e, 0x59, //0x0000b5a0 .quad 6444284760518135752 + 0x1c, 0xb3, 0xe6, 0x7a, 0x64, 0x19, 0xd2, 0xb1, //0x0000b5a8 .quad -5633412264537705700 + 0xbb, 0xf3, 0xae, 0xd9, 0x8e, 0x5f, 0xca, 0x6f, //0x0000b5b0 .quad 8055355950647669691 + 0xe3, 0x5f, 0xa0, 0x99, 0xbd, 0x9f, 0x46, 0xde, //0x0000b5b8 .quad -2430079312244744221 + 0x54, 0x58, 0x0d, 0x48, 0xb9, 0x7b, 0xde, 0x25, //0x0000b5c0 .quad 2728754459941099604 + 0xee, 0x3b, 0x04, 0x80, 0xd6, 0x23, 0xec, 0x8a, //0x0000b5c8 .quad -8436328597794046994 + 0x6a, 0xae, 0x10, 0x9a, 0xa7, 0x1a, 0x56, 0xaf, //0x0000b5d0 .quad -5812428961928401302 + 0xe9, 0x4a, 0x05, 0x20, 0xcc, 0x2c, 0xa7, 0xad, //0x0000b5d8 .quad -5933724728815170839 + 0x04, 0xda, 0x94, 0x80, 0x51, 0xa1, 0x2b, 0x1b, //0x0000b5e0 .quad 1957835834444274180 + 0xa4, 0x9d, 0x06, 0x28, 0xff, 0xf7, 0x10, 0xd9, //0x0000b5e8 .quad -2805469892591575644 + 0x42, 0x08, 0x5d, 0xf0, 0xd2, 0x44, 0xfb, 0x90, //0x0000b5f0 .quad -7999724640327104446 + 0x86, 0x22, 0x04, 0x79, 0xff, 0x9a, 0xaa, 0x87, //0x0000b5f8 .quad -8670947710510816634 + 0x53, 0x4a, 0x74, 0xac, 0x07, 0x16, 0x3a, 0x35, //0x0000b600 .quad 3835402254873283155 + 0x28, 0x2b, 0x45, 0x57, 0xbf, 0x41, 0x95, 0xa9, //0x0000b608 .quad -6226998619711132888 + 0xe8, 0x5c, 0x91, 0x97, 0x89, 0x9b, 0x88, 0x42, //0x0000b610 .quad 4794252818591603944 + 0xf2, 0x75, 0x16, 0x2d, 0x2f, 0x92, 0xfa, 0xd3, //0x0000b618 .quad -3172062256211528206 + 0x11, 0xda, 0xba, 0xfe, 0x35, 0x61, 0x95, 0x69, //0x0000b620 .quad 7608094030047140369 + 0xb7, 0x09, 0x2e, 0x7c, 0x5d, 0x9b, 0x7c, 0x84, //0x0000b628 .quad -8900067937773286985 + 0x95, 0x90, 0x69, 0x7e, 0x83, 0xb9, 0xfa, 0x43, //0x0000b630 .quad 4898431519131537557 + 0x25, 0x8c, 0x39, 0xdb, 0x34, 0xc2, 0x9b, 0xa5, //0x0000b638 .quad -6513398903789220827 + 0xbb, 0xf4, 0x03, 0x5e, 0xe4, 0x67, 0xf9, 0x94, //0x0000b640 .quad -7712018656367741765 + 0x2e, 0xef, 0x07, 0x12, 0xc2, 0xb2, 0x02, 0xcf, //0x0000b648 .quad -3530062611309138130 + 0xf5, 0x78, 0xc2, 0xba, 0xee, 0xe0, 0x1b, 0x1d, //0x0000b650 .quad 2097517367411243253 + 0x7d, 0xf5, 0x44, 0x4b, 0xb9, 0xaf, 0x61, 0x81, //0x0000b658 .quad -9123818159709293187 + 0x32, 0x17, 0x73, 0x69, 0x2a, 0xd9, 0x62, 0x64, //0x0000b660 .quad 7233582727691441970 + 0xdc, 0x32, 0x16, 0x9e, 0xa7, 0x1b, 0xba, 0xa1, //0x0000b668 .quad -6793086681209228580 + 0xfe, 0xdc, 0xcf, 0x03, 0x75, 0x8f, 0x7b, 0x7d, //0x0000b670 .quad 9041978409614302462 + 0x93, 0xbf, 0x9b, 0x85, 0x91, 0xa2, 0x28, 0xca, //0x0000b678 .quad -3879672333084147821 + 0x3e, 0xd4, 0xc3, 0x44, 0x52, 0x73, 0xda, 0x5c, //0x0000b680 .quad 6690786993590490174 + 0x78, 0xaf, 0x02, 0xe7, 0x35, 0xcb, 0xb2, 0xfc, //0x0000b688 .quad -237904397927796872 + 0xa7, 0x64, 0xfa, 0x6a, 0x13, 0x88, 0x08, 0x3a, //0x0000b690 .quad 4181741870994056359 + 0xab, 0xad, 0x61, 0xb0, 0x01, 0xbf, 0xef, 0x9d, //0x0000b698 .quad -7066219276345954901 + 0xd0, 0xfd, 0xb8, 0x45, 0x18, 0xaa, 0x8a, 0x08, //0x0000b6a0 .quad 615491320315182544 + 0x16, 0x19, 0x7a, 0x1c, 0xc2, 0xae, 0x6b, 0xc5, //0x0000b6a8 .quad -4221088077005055722 + 0x45, 0x3d, 0x27, 0x57, 0x9e, 0x54, 0xad, 0x8a, //0x0000b6b0 .quad -8454007886460797627 + 0x5b, 0x9f, 0x98, 0xa3, 0x72, 0x9a, 0xc6, 0xf6, //0x0000b6b8 .quad -664674077828931749 + 0x4b, 0x86, 0x78, 0xf6, 0xe2, 0x54, 0xac, 0x36, //0x0000b6c0 .quad 3939617107816777291 + 0x99, 0x63, 0x3f, 0xa6, 0x87, 0x20, 0x3c, 0x9a, //0x0000b6c8 .quad -7332950326284164199 + 0xdd, 0xa7, 0x16, 0xb4, 0x1b, 0x6a, 0x57, 0x84, //0x0000b6d0 .quad -8910536670511192099 + 0x7f, 0x3c, 0xcf, 0x8f, 0xa9, 0x28, 0xcb, 0xc0, //0x0000b6d8 .quad -4554501889427817345 + 0xd5, 0x51, 0x1c, 0xa1, 0xa2, 0x44, 0x6d, 0x65, //0x0000b6e0 .quad 7308573235570561493 + 0x9f, 0x0b, 0xc3, 0xf3, 0xd3, 0xf2, 0xfd, 0xf0, //0x0000b6e8 .quad -1081441343357383777 + 0x25, 0xb3, 0xb1, 0xa4, 0xe5, 0x4a, 0x64, 0x9f, //0x0000b6f0 .quad -6961356773836868827 + 0x43, 0xe7, 0x59, 0x78, 0xc4, 0xb7, 0x9e, 0x96, //0x0000b6f8 .quad -7593429867239446717 + 0xee, 0x1f, 0xde, 0x0d, 0x9f, 0x5d, 0x3d, 0x87, //0x0000b700 .quad -8701695967296086034 + 0x14, 0x61, 0x70, 0x96, 0xb5, 0x65, 0x46, 0xbc, //0x0000b708 .quad -4880101315621920492 + 0xea, 0xa7, 0x55, 0xd1, 0x06, 0xb5, 0x0c, 0xa9, //0x0000b710 .quad -6265433940692719638 + 0x59, 0x79, 0x0c, 0xfc, 0x22, 0xff, 0x57, 0xeb, //0x0000b718 .quad -1488440626100012711 + 0xf2, 0x88, 0xd5, 0x42, 0x24, 0xf1, 0xa7, 0x09, //0x0000b720 .quad 695789805494438130 + 0xd8, 0xcb, 0x87, 0xdd, 0x75, 0xff, 0x16, 0x93, //0x0000b728 .quad -7847804418953589800 + 0x2f, 0xeb, 0x8a, 0x53, 0x6d, 0xed, 0x11, 0x0c, //0x0000b730 .quad 869737256868047663 + 0xce, 0xbe, 0xe9, 0x54, 0x53, 0xbf, 0xdc, 0xb7, //0x0000b738 .quad -5198069505264599346 + 0xfa, 0xa5, 0x6d, 0xa8, 0xc8, 0x68, 0x16, 0x8f, //0x0000b740 .quad -8136200465769716230 + 0x81, 0x2e, 0x24, 0x2a, 0x28, 0xef, 0xd3, 0xe5, //0x0000b748 .quad -1885900863153361279 + 0xbc, 0x87, 0x44, 0x69, 0x7d, 0x01, 0x6e, 0xf9, //0x0000b750 .quad -473439272678684740 + 0x10, 0x9d, 0x56, 0x1a, 0x79, 0x75, 0xa4, 0x8f, //0x0000b758 .quad -8096217067111932656 + 0xac, 0xa9, 0x95, 0xc3, 0xdc, 0x81, 0xc9, 0x37, //0x0000b760 .quad 4019886927579031980 + 0x55, 0x44, 0xec, 0x60, 0xd7, 0x92, 0x8d, 0xb3, //0x0000b768 .quad -5508585315462527915 + 0x17, 0x14, 0x7b, 0xf4, 0x53, 0xe2, 0xbb, 0x85, //0x0000b770 .quad -8810199395808373737 + 0x6a, 0x55, 0x27, 0x39, 0x8d, 0xf7, 0x70, 0xe0, //0x0000b778 .quad -2274045625900771990 + 0x8e, 0xec, 0xcc, 0x78, 0x74, 0x6d, 0x95, 0x93, //0x0000b780 .quad -7812217631593927538 + 0x62, 0x95, 0xb8, 0x43, 0xb8, 0x9a, 0x46, 0x8c, //0x0000b788 .quad -8338807543829064350 + 0xb2, 0x27, 0x00, 0x97, 0xd1, 0xc8, 0x7a, 0x38, //0x0000b790 .quad 4069786015789754290 + 0xbb, 0xba, 0xa6, 0x54, 0x66, 0x41, 0x58, 0xaf, //0x0000b798 .quad -5811823411358942533 + 0x9e, 0x31, 0xc0, 0xfc, 0x05, 0x7b, 0x99, 0x06, //0x0000b7a0 .quad 475546501309804958 + 0x6a, 0x69, 0xd0, 0xe9, 0xbf, 0x51, 0x2e, 0xdb, //0x0000b7a8 .quad -2653093245771290262 + 0x03, 0x1f, 0xf8, 0xbd, 0xe3, 0xec, 0x1f, 0x44, //0x0000b7b0 .quad 4908902581746016003 + 0xe2, 0x41, 0x22, 0xf2, 0x17, 0xf3, 0xfc, 0x88, //0x0000b7b8 .quad -8575712306248138270 + 0xc3, 0x26, 0x76, 0xad, 0x1c, 0xe8, 0x27, 0xd5, //0x0000b7c0 .quad -3087243809672255805 + 0x5a, 0xd2, 0xaa, 0xee, 0xdd, 0x2f, 0x3c, 0xab, //0x0000b7c8 .quad -6107954364382784934 + 0x74, 0xb0, 0xd3, 0xd8, 0x23, 0xe2, 0x71, 0x8a, //0x0000b7d0 .quad -8470740780517707660 + 0xf1, 0x86, 0x55, 0x6a, 0xd5, 0x3b, 0x0b, 0xd6, //0x0000b7d8 .quad -3023256937051093263 + 0x49, 0x4e, 0x84, 0x67, 0x56, 0x2d, 0x87, 0xf6, //0x0000b7e0 .quad -682526969396179383 + 0x56, 0x74, 0x75, 0x62, 0x65, 0x05, 0xc7, 0x85, //0x0000b7e8 .quad -8807064613298015146 + 0xdb, 0x61, 0x65, 0x01, 0xac, 0xf8, 0x28, 0xb4, //0x0000b7f0 .quad -5464844730172612133 + 0x6c, 0xd1, 0x12, 0xbb, 0xbe, 0xc6, 0x38, 0xa7, //0x0000b7f8 .quad -6397144748195131028 + 0x52, 0xba, 0xbe, 0x01, 0xd7, 0x36, 0x33, 0xe1, //0x0000b800 .quad -2219369894288377262 + 0xc7, 0x85, 0xd7, 0x69, 0x6e, 0xf8, 0x06, 0xd1, //0x0000b808 .quad -3384744916816525881 + 0x73, 0x34, 0x17, 0x61, 0x46, 0x02, 0xc0, 0xec, //0x0000b810 .quad -1387106183930235789 + 0x9c, 0xb3, 0x26, 0x02, 0x45, 0x5b, 0xa4, 0x82, //0x0000b818 .quad -9032994600651410532 + 0x90, 0x01, 0x5d, 0xf9, 0xd7, 0x02, 0xf0, 0x27, //0x0000b820 .quad 2877803288514593168 + 0x84, 0x60, 0xb0, 0x42, 0x16, 0x72, 0x4d, 0xa3, //0x0000b828 .quad -6679557232386875260 + 0xf4, 0x41, 0xb4, 0xf7, 0x8d, 0x03, 0xec, 0x31, //0x0000b830 .quad 3597254110643241460 + 0xa5, 0x78, 0x5c, 0xd3, 0x9b, 0xce, 0x20, 0xcc, //0x0000b838 .quad -3737760522056206171 + 0x71, 0x52, 0xa1, 0x75, 0x71, 0x04, 0x67, 0x7e, //0x0000b840 .quad 9108253656731439729 + 0xce, 0x96, 0x33, 0xc8, 0x42, 0x02, 0x29, 0xff, //0x0000b848 .quad -60514634142869810 + 0x86, 0xd3, 0x84, 0xe9, 0xc6, 0x62, 0x00, 0x0f, //0x0000b850 .quad 1080972517029761926 + 0x41, 0x3e, 0x20, 0xbd, 0x69, 0xa1, 0x79, 0x9f, //0x0000b858 .quad -6955350673980375487 + 0x68, 0x08, 0xe6, 0xa3, 0x78, 0x7b, 0xc0, 0x52, //0x0000b860 .quad 5962901664714590312 + 0xd1, 0x4d, 0x68, 0x2c, 0xc4, 0x09, 0x58, 0xc7, //0x0000b868 .quad -4082502324048081455 + 0x82, 0x8a, 0xdf, 0xcc, 0x56, 0x9a, 0x70, 0xa7, //0x0000b870 .quad -6381430974388925822 + 0x45, 0x61, 0x82, 0x37, 0x35, 0x0c, 0x2e, 0xf9, //0x0000b878 .quad -491441886632713915 + 0x91, 0xb6, 0x0b, 0x40, 0x76, 0x60, 0xa6, 0x88, //0x0000b880 .quad -8600080377420466543 + 0xcb, 0x7c, 0xb1, 0x42, 0xa1, 0xc7, 0xbc, 0x9b, //0x0000b888 .quad -7224680206786528053 + 0x35, 0xa4, 0x0e, 0xd0, 0x93, 0xf8, 0xcf, 0x6a, //0x0000b890 .quad 7696643601933968437 + 0xfe, 0xdb, 0x5d, 0x93, 0x89, 0xf9, 0xab, 0xc2, //0x0000b898 .quad -4419164240055772162 + 0x43, 0x4d, 0x12, 0xc4, 0xb8, 0xf6, 0x83, 0x05, //0x0000b8a0 .quad 397432465562684739 + 0xfe, 0x52, 0x35, 0xf8, 0xeb, 0xf7, 0x56, 0xf3, //0x0000b8a8 .quad -912269281642327298 + 0x4a, 0x70, 0x8b, 0x7a, 0x33, 0x7a, 0x72, 0xc3, //0x0000b8b0 .quad -4363290727450709942 + 0xde, 0x53, 0x21, 0x7b, 0xf3, 0x5a, 0x16, 0x98, //0x0000b8b8 .quad -7487697328667536418 + 0x5c, 0x4c, 0x2e, 0x59, 0xc0, 0x18, 0x4f, 0x74, //0x0000b8c0 .quad 8380944645968776284 + 0xd6, 0xa8, 0xe9, 0x59, 0xb0, 0xf1, 0x1b, 0xbe, //0x0000b8c8 .quad -4747935642407032618 + 0x73, 0xdf, 0x79, 0x6f, 0xf0, 0xde, 0x62, 0x11, //0x0000b8d0 .quad 1252808770606194547 + 0x0c, 0x13, 0x64, 0x70, 0x1c, 0xee, 0xa2, 0xed, //0x0000b8d8 .quad -1323233534581402868 + 0xa8, 0x2b, 0xac, 0x45, 0x56, 0xcb, 0xdd, 0x8a, //0x0000b8e0 .quad -8440366555225904216 + 0xe7, 0x8b, 0x3e, 0xc6, 0xd1, 0xd4, 0x85, 0x94, //0x0000b8e8 .quad -7744549986754458649 + 0x92, 0x36, 0x17, 0xd7, 0x2b, 0x3e, 0x95, 0x6d, //0x0000b8f0 .quad 7896285879677171346 + 0xe1, 0x2e, 0xce, 0x37, 0x06, 0x4a, 0xa7, 0xb9, //0x0000b8f8 .quad -5069001465015685407 + 0x37, 0x04, 0xdd, 0xcc, 0xb6, 0x8d, 0xfa, 0xc8, //0x0000b900 .quad -3964700705685699529 + 0x99, 0xba, 0xc1, 0xc5, 0x87, 0x1c, 0x11, 0xe8, //0x0000b908 .quad -1724565812842218855 + 0xa2, 0x22, 0x0a, 0x40, 0x92, 0x98, 0x9c, 0x1d, //0x0000b910 .quad 2133748077373825698 + 0xa0, 0x14, 0x99, 0xdb, 0xd4, 0xb1, 0x0a, 0x91, //0x0000b918 .quad -7995382660667468640 + 0x4b, 0xab, 0x0c, 0xd0, 0xb6, 0xbe, 0x03, 0x25, //0x0000b920 .quad 2667185096717282123 + 0xc8, 0x59, 0x7f, 0x12, 0x4a, 0x5e, 0x4d, 0xb5, //0x0000b928 .quad -5382542307406947896 + 0x1d, 0xd6, 0x0f, 0x84, 0x64, 0xae, 0x44, 0x2e, //0x0000b930 .quad 3333981370896602653 + 0x3a, 0x30, 0x1f, 0x97, 0xdc, 0xb5, 0xa0, 0xe2, //0x0000b938 .quad -2116491865831296966 + 0xd2, 0xe5, 0x89, 0xd2, 0xfe, 0xec, 0xea, 0x5c, //0x0000b940 .quad 6695424375237764562 + 0x24, 0x7e, 0x73, 0xde, 0xa9, 0x71, 0xa4, 0x8d, //0x0000b948 .quad -8240336443785642460 + 0x47, 0x5f, 0x2c, 0x87, 0x3e, 0xa8, 0x25, 0x74, //0x0000b950 .quad 8369280469047205703 + 0xad, 0x5d, 0x10, 0x56, 0x14, 0x8e, 0x0d, 0xb1, //0x0000b958 .quad -5688734536304665171 + 0x19, 0x77, 0xf7, 0x28, 0x4e, 0x12, 0x2f, 0xd1, //0x0000b960 .quad -3373457468973156583 + 0x18, 0x75, 0x94, 0x6b, 0x99, 0xf1, 0x50, 0xdd, //0x0000b968 .quad -2499232151953443560 + 0x6f, 0xaa, 0x9a, 0xd9, 0x70, 0x6b, 0xbd, 0x82, //0x0000b970 .quad -9025939945749304721 + 0x2f, 0xc9, 0x3c, 0xe3, 0xff, 0x96, 0x52, 0x8a, //0x0000b978 .quad -8479549122611984081 + 0x0b, 0x55, 0x01, 0x10, 0x4d, 0xc6, 0x6c, 0x63, //0x0000b980 .quad 7164319141522920715 + 0x7b, 0xfb, 0x0b, 0xdc, 0xbf, 0x3c, 0xe7, 0xac, //0x0000b988 .quad -5987750384837592197 + 0x4e, 0xaa, 0x01, 0x54, 0xe0, 0xf7, 0x47, 0x3c, //0x0000b990 .quad 4343712908476262990 + 0x5a, 0xfa, 0x0e, 0xd3, 0xef, 0x0b, 0x21, 0xd8, //0x0000b998 .quad -2873001962619602342 + 0x71, 0x0a, 0x81, 0x34, 0xec, 0xfa, 0xac, 0x65, //0x0000b9a0 .quad 7326506586225052273 + 0x78, 0x5c, 0xe9, 0xe3, 0x75, 0xa7, 0x14, 0x87, //0x0000b9a8 .quad -8713155254278333320 + 0x0d, 0x4d, 0xa1, 0x41, 0xa7, 0x39, 0x18, 0x7f, //0x0000b9b0 .quad 9158133232781315341 + 0x96, 0xb3, 0xe3, 0x5c, 0x53, 0xd1, 0xd9, 0xa8, //0x0000b9b8 .quad -6279758049420528746 + 0x50, 0xa0, 0x09, 0x12, 0x11, 0x48, 0xde, 0x1e, //0x0000b9c0 .quad 2224294504121868368 + 0x7c, 0xa0, 0x1c, 0x34, 0xa8, 0x45, 0x10, 0xd3, //0x0000b9c8 .quad -3238011543348273028 + 0x32, 0x04, 0x46, 0xab, 0x0a, 0xed, 0x4a, 0x93, //0x0000b9d0 .quad -7833187971778608078 + 0x4d, 0xe4, 0x91, 0x20, 0x89, 0x2b, 0xea, 0x83, //0x0000b9d8 .quad -8941286242233752499 + 0x3f, 0x85, 0x17, 0x56, 0x4d, 0xa8, 0x1d, 0xf8, //0x0000b9e0 .quad -568112927868484289 + 0x60, 0x5d, 0xb6, 0x68, 0x6b, 0xb6, 0xe4, 0xa4, //0x0000b9e8 .quad -6564921784364802720 + 0x8e, 0x66, 0x9d, 0xab, 0x60, 0x12, 0x25, 0x36, //0x0000b9f0 .quad 3901544858591782542 + 0xb9, 0xf4, 0xe3, 0x42, 0x06, 0xe4, 0x1d, 0xce, //0x0000b9f8 .quad -3594466212028615495 + 0x19, 0x60, 0x42, 0x6b, 0x7c, 0x2b, 0xd7, 0xc1, //0x0000ba00 .quad -4479063491021217767 + 0xf3, 0x78, 0xce, 0xe9, 0x83, 0xae, 0xd2, 0x80, //0x0000ba08 .quad -9164070410158966541 + 0x1f, 0xf8, 0x12, 0x86, 0x5b, 0xf6, 0x4c, 0xb2, //0x0000ba10 .quad -5598829363776522209 + 0x30, 0x17, 0x42, 0xe4, 0x24, 0x5a, 0x07, 0xa1, //0x0000ba18 .quad -6843401994271320272 + 0x27, 0xb6, 0x97, 0x67, 0xf2, 0x33, 0xe0, 0xde, //0x0000ba20 .quad -2386850686293264857 + 0xfc, 0x9c, 0x52, 0x1d, 0xae, 0x30, 0x49, 0xc9, //0x0000ba28 .quad -3942566474411762436 + 0xb1, 0xa3, 0x7d, 0x01, 0xef, 0x40, 0x98, 0x16, //0x0000ba30 .quad 1628122660560806833 + 0x3c, 0x44, 0xa7, 0xa4, 0xd9, 0x7c, 0x9b, 0xfb, //0x0000ba38 .quad -316522074587315140 + 0x4e, 0x86, 0xee, 0x60, 0x95, 0x28, 0x1f, 0x8e, //0x0000ba40 .quad -8205795374004271538 + 0xa5, 0x8a, 0xe8, 0x06, 0x08, 0x2e, 0x41, 0x9d, //0x0000ba48 .quad -7115355324258153819 + 0xe2, 0x27, 0x2a, 0xb9, 0xba, 0xf2, 0xa6, 0xf1, //0x0000ba50 .quad -1033872180650563614 + 0x4e, 0xad, 0xa2, 0x08, 0x8a, 0x79, 0x91, 0xc4, //0x0000ba58 .quad -4282508136895304370 + 0xdb, 0xb1, 0x74, 0x67, 0x69, 0xaf, 0x10, 0xae, //0x0000ba60 .quad -5904026244240592421 + 0xa2, 0x58, 0xcb, 0x8a, 0xec, 0xd7, 0xb5, 0xf5, //0x0000ba68 .quad -741449152691742558 + 0x29, 0xef, 0xa8, 0xe0, 0xa1, 0x6d, 0xca, 0xac, //0x0000ba70 .quad -5995859411864064215 + 0x65, 0x17, 0xbf, 0xd6, 0xf3, 0xa6, 0x91, 0x99, //0x0000ba78 .quad -7380934748073420955 + 0xf3, 0x2a, 0xd3, 0x58, 0x0a, 0x09, 0xfd, 0x17, //0x0000ba80 .quad 1728547772024695539 + 0x3f, 0xdd, 0x6e, 0xcc, 0xb0, 0x10, 0xf6, 0xbf, //0x0000ba88 .quad -4614482416664388289 + 0xb0, 0xf5, 0x07, 0xef, 0x4c, 0x4b, 0xfc, 0xdd, //0x0000ba90 .quad -2451001303396518480 + 0x8e, 0x94, 0x8a, 0xff, 0xdc, 0x94, 0xf3, 0xef, //0x0000ba98 .quad -1156417002403097458 + 0x8e, 0xf9, 0x64, 0x15, 0x10, 0xaf, 0xbd, 0x4a, //0x0000baa0 .quad 5385653213018257806 + 0xd9, 0x9c, 0xb6, 0x1f, 0x0a, 0x3d, 0xf8, 0x95, //0x0000baa8 .quad -7640289654143017767 + 0xf1, 0x37, 0xbe, 0x1a, 0xd4, 0x1a, 0x6d, 0x9d, //0x0000bab0 .quad -7102991539009341455 + 0x0f, 0x44, 0xa4, 0xa7, 0x4c, 0x4c, 0x76, 0xbb, //0x0000bab8 .quad -4938676049251384305 + 0xed, 0xc5, 0x6d, 0x21, 0x89, 0x61, 0xc8, 0x84, //0x0000bac0 .quad -8878739423761676819 + 0x13, 0x55, 0x8d, 0xd1, 0x5f, 0xdf, 0x53, 0xea, //0x0000bac8 .quad -1561659043136842477 + 0xb4, 0x9b, 0xe4, 0xb4, 0xf5, 0x3c, 0xfd, 0x32, //0x0000bad0 .quad 3674159897003727796 + 0x2c, 0x55, 0xf8, 0xe2, 0x9b, 0x6b, 0x74, 0x92, //0x0000bad8 .quad -7893565929601608404 + 0xa1, 0xc2, 0x1d, 0x22, 0x33, 0x8c, 0xbc, 0x3f, //0x0000bae0 .quad 4592699871254659745 + 0x77, 0x6a, 0xb6, 0xdb, 0x82, 0x86, 0x11, 0xb7, //0x0000bae8 .quad -5255271393574622601 + 0x4a, 0x33, 0xa5, 0xea, 0x3f, 0xaf, 0xab, 0x0f, //0x0000baf0 .quad 1129188820640936778 + 0x15, 0x05, 0xa4, 0x92, 0x23, 0xe8, 0xd5, 0xe4, //0x0000baf8 .quad -1957403223540890347 + 0x0e, 0x40, 0xa7, 0xf2, 0x87, 0x4d, 0xcb, 0x29, //0x0000bb00 .quad 3011586022114279438 + 0x2d, 0x83, 0xa6, 0x3b, 0x16, 0xb1, 0x05, 0x8f, //0x0000bb08 .quad -8140906042354138323 + 0x12, 0x10, 0x51, 0xef, 0xe9, 0x20, 0x3e, 0x74, //0x0000bb10 .quad 8376168546070237202 + 0xf8, 0x23, 0x90, 0xca, 0x5b, 0x1d, 0xc7, 0xb2, //0x0000bb18 .quad -5564446534515285000 + 0x16, 0x54, 0x25, 0x6b, 0x24, 0xa9, 0x4d, 0x91, //0x0000bb20 .quad -7976533391121755114 + 0xf6, 0x2c, 0x34, 0xbd, 0xb2, 0xe4, 0x78, 0xdf, //0x0000bb28 .quad -2343872149716718346 + 0x8e, 0x54, 0xf7, 0xc2, 0xb6, 0x89, 0xd0, 0x1a, //0x0000bb30 .quad 1932195658189984910 + 0x1a, 0x9c, 0x40, 0xb6, 0xef, 0x8e, 0xab, 0x8b, //0x0000bb38 .quad -8382449121214030822 + 0xb1, 0x29, 0xb5, 0x73, 0x24, 0xac, 0x84, 0xa1, //0x0000bb40 .quad -6808127464117294671 + 0x20, 0xc3, 0xd0, 0xa3, 0xab, 0x72, 0x96, 0xae, //0x0000bb48 .quad -5866375383090150624 + 0x1e, 0x74, 0xa2, 0x90, 0x2d, 0xd7, 0xe5, 0xc9, //0x0000bb50 .quad -3898473311719230434 + 0xe8, 0xf3, 0xc4, 0x8c, 0x56, 0x0f, 0x3c, 0xda, //0x0000bb58 .quad -2721283210435300376 + 0x92, 0x88, 0x65, 0x7a, 0x7c, 0xa6, 0x2f, 0x7e, //0x0000bb60 .quad 9092669226243950738 + 0x71, 0x18, 0xfb, 0x17, 0x96, 0x89, 0x65, 0x88, //0x0000bb68 .quad -8618331034163144591 + 0xb7, 0xea, 0xfe, 0x98, 0x1b, 0x90, 0xbb, 0xdd, //0x0000bb70 .quad -2469221522477225289 + 0x8d, 0xde, 0xf9, 0x9d, 0xfb, 0xeb, 0x7e, 0xaa, //0x0000bb78 .quad -6161227774276542835 + 0x65, 0xa5, 0x3e, 0x7f, 0x22, 0x74, 0x2a, 0x55, //0x0000bb80 .quad 6136845133758244197 + 0x31, 0x56, 0x78, 0x85, 0xfa, 0xa6, 0x1e, 0xd5, //0x0000bb88 .quad -3089848699418290639 + 0x5f, 0x27, 0x87, 0x8f, 0x95, 0x88, 0x3a, 0xd5, //0x0000bb90 .quad -3082000819042179233 + 0xde, 0x35, 0x6b, 0x93, 0x5c, 0x28, 0x33, 0x85, //0x0000bb98 .quad -8848684464777513506 + 0x37, 0xf1, 0x68, 0xf3, 0xba, 0x2a, 0x89, 0x8a, //0x0000bba0 .quad -8464187042230111945 + 0x56, 0x03, 0x46, 0xb8, 0x73, 0xf2, 0x7f, 0xa6, //0x0000bba8 .quad -6449169562544503978 + 0x85, 0x2d, 0x43, 0xb0, 0x69, 0x75, 0x2b, 0x2d, //0x0000bbb0 .quad 3254824252494523781 + 0x2c, 0x84, 0x57, 0xa6, 0x10, 0xef, 0x1f, 0xd0, //0x0000bbb8 .quad -3449775934753242068 + 0x73, 0xfc, 0x29, 0x0e, 0x62, 0x29, 0x3b, 0x9c, //0x0000bbc0 .quad -7189106879045698445 + 0x9b, 0xb2, 0xf6, 0x67, 0x6a, 0xf5, 0x13, 0x82, //0x0000bbc8 .quad -9073638986861858149 + 0x8f, 0x7b, 0xb4, 0x91, 0xba, 0xf3, 0x49, 0x83, //0x0000bbd0 .quad -8986383598807123057 + 0x42, 0x5f, 0xf4, 0x01, 0xc5, 0xf2, 0x98, 0xa2, //0x0000bbd8 .quad -6730362715149934782 + 0x73, 0x9a, 0x21, 0x36, 0xa9, 0x70, 0x1c, 0x24, //0x0000bbe0 .quad 2602078556773259891 + 0x13, 0x77, 0x71, 0x42, 0x76, 0x2f, 0x3f, 0xcb, //0x0000bbe8 .quad -3801267375510030573 + 0x10, 0x01, 0xaa, 0x83, 0xd3, 0x8c, 0x23, 0xed, //0x0000bbf0 .quad -1359087822460813040 + 0xd7, 0xd4, 0x0d, 0xd3, 0x53, 0xfb, 0x0e, 0xfe, //0x0000bbf8 .quad -139898200960150313 + 0xaa, 0x40, 0x4a, 0x32, 0x04, 0x38, 0x36, 0xf4, //0x0000bc00 .quad -849429889038008150 + 0x06, 0xa5, 0xe8, 0x63, 0x14, 0x5d, 0xc9, 0x9e, //0x0000bc08 .quad -7004965403241175802 + 0xd5, 0xd0, 0xdc, 0x3e, 0x05, 0xc6, 0x43, 0xb1, //0x0000bc10 .quad -5673473379724898091 + 0x48, 0xce, 0xe2, 0x7c, 0x59, 0xb4, 0x7b, 0xc6, //0x0000bc18 .quad -4144520735624081848 + 0x0a, 0x05, 0x94, 0x8e, 0x86, 0xb7, 0x94, 0xdd, //0x0000bc20 .quad -2480155706228734710 + 0xda, 0x81, 0x1b, 0xdc, 0x6f, 0xa1, 0x1a, 0xf8, //0x0000bc28 .quad -568964901102714406 + 0x26, 0x83, 0x1c, 0x19, 0xb4, 0xf2, 0x7c, 0xca, //0x0000bc30 .quad -3855940325606653146 + 0x28, 0x31, 0x91, 0xe9, 0xe5, 0xa4, 0x10, 0x9b, //0x0000bc38 .quad -7273132090830278360 + 0xf0, 0xa3, 0x63, 0x1f, 0x61, 0x2f, 0x1c, 0xfd, //0x0000bc40 .quad -208239388580928528 + 0x72, 0x7d, 0xf5, 0x63, 0x1f, 0xce, 0xd4, 0xc1, //0x0000bc48 .quad -4479729095110460046 + 0xec, 0x8c, 0x3c, 0x67, 0x39, 0x3b, 0x63, 0xbc, //0x0000bc50 .quad -4871985254153548564 + 0xcf, 0xdc, 0xf2, 0x3c, 0xa7, 0x01, 0x4a, 0xf2, //0x0000bc58 .quad -987975350460687153 + 0x13, 0xd8, 0x85, 0xe0, 0x03, 0x05, 0xbe, 0xd5, //0x0000bc60 .quad -3044990783845967853 + 0x01, 0xca, 0x17, 0x86, 0x08, 0x41, 0x6e, 0x97, //0x0000bc68 .quad -7535013621679011327 + 0x18, 0x4e, 0xa7, 0xd8, 0x44, 0x86, 0x2d, 0x4b, //0x0000bc70 .quad 5417133557047315992 + 0x82, 0xbc, 0x9d, 0xa7, 0x4a, 0xd1, 0x49, 0xbd, //0x0000bc78 .quad -4807081008671376254 + 0x9e, 0x21, 0xd1, 0x0e, 0xd6, 0xe7, 0xf8, 0xdd, //0x0000bc80 .quad -2451955090545630818 + 0xa2, 0x2b, 0x85, 0x51, 0x9d, 0x45, 0x9c, 0xec, //0x0000bc88 .quad -1397165242411832414 + 0x03, 0xb5, 0x42, 0xc9, 0xe5, 0x90, 0xbb, 0xca, //0x0000bc90 .quad -3838314940804713213 + 0x45, 0x3b, 0xf3, 0x52, 0x82, 0xab, 0xe1, 0x93, //0x0000bc98 .quad -7790757304148477115 + 0x43, 0x62, 0x93, 0x3b, 0x1f, 0x75, 0x6a, 0x3d, //0x0000bca0 .quad 4425478360848884291 + 0x17, 0x0a, 0xb0, 0xe7, 0x62, 0x16, 0xda, 0xb8, //0x0000bca8 .quad -5126760611758208489 + 0xd4, 0x3a, 0x78, 0x0a, 0x67, 0x12, 0xc5, 0x0c, //0x0000bcb0 .quad 920161932633717460 + 0x9d, 0x0c, 0x9c, 0xa1, 0xfb, 0x9b, 0x10, 0xe7, //0x0000bcb8 .quad -1796764746270372707 + 0xc5, 0x24, 0x8b, 0x66, 0x80, 0x2b, 0xfb, 0x27, //0x0000bcc0 .quad 2880944217109767365 + 0xe2, 0x87, 0x01, 0x45, 0x7d, 0x61, 0x6a, 0x90, //0x0000bcc8 .quad -8040506994060064798 + 0xf6, 0xed, 0x2d, 0x80, 0x60, 0xf6, 0xf9, 0xb1, //0x0000bcd0 .quad -5622191765467566602 + 0xda, 0xe9, 0x41, 0x96, 0xdc, 0xf9, 0x84, 0xb4, //0x0000bcd8 .quad -5438947724147693094 + 0x73, 0x69, 0x39, 0xa0, 0xf8, 0x73, 0x78, 0x5e, //0x0000bce0 .quad 6807318348447705459 + 0x51, 0x64, 0xd2, 0xbb, 0x53, 0x38, 0xa6, 0xe1, //0x0000bce8 .quad -2186998636757228463 + 0xe8, 0xe1, 0x23, 0x64, 0x7b, 0x48, 0x0b, 0xdb, //0x0000bcf0 .quad -2662955059861265944 + 0xb2, 0x7e, 0x63, 0x55, 0x34, 0xe3, 0x07, 0x8d, //0x0000bcf8 .quad -8284403175614349646 + 0x62, 0xda, 0x2c, 0x3d, 0x9a, 0x1a, 0xce, 0x91, //0x0000bd00 .quad -7940379843253970334 + 0x5f, 0x5e, 0xbc, 0x6a, 0x01, 0xdc, 0x49, 0xb0, //0x0000bd08 .quad -5743817951090549153 + 0xfb, 0x10, 0x78, 0xcc, 0x40, 0xa1, 0x41, 0x76, //0x0000bd10 .quad 8521269269642088699 + 0xf7, 0x75, 0x6b, 0xc5, 0x01, 0x53, 0x5c, 0xdc, //0x0000bd18 .quad -2568086420435798537 + 0x9d, 0x0a, 0xcb, 0x7f, 0xc8, 0x04, 0xe9, 0xa9, //0x0000bd20 .quad -6203421752542164323 + 0xba, 0x29, 0x63, 0x1b, 0xe1, 0xb3, 0xb9, 0x89, //0x0000bd28 .quad -8522583040413455942 + 0x44, 0xcd, 0xbd, 0x9f, 0xfa, 0x45, 0x63, 0x54, //0x0000bd30 .quad 6080780864604458308 + 0x29, 0xf4, 0x3b, 0x62, 0xd9, 0x20, 0x28, 0xac, //0x0000bd38 .quad -6041542782089432023 + 0x95, 0x40, 0xad, 0x47, 0x79, 0x17, 0x7c, 0xa9, //0x0000bd40 .quad -6234081974526590827 + 0x33, 0xf1, 0xca, 0xba, 0x0f, 0x29, 0x32, 0xd7, //0x0000bd48 .quad -2940242459184402125 + 0x5d, 0x48, 0xcc, 0xcc, 0xab, 0x8e, 0xed, 0x49, //0x0000bd50 .quad 5327070802775656541 + 0xc0, 0xd6, 0xbe, 0xd4, 0xa9, 0x59, 0x7f, 0x86, //0x0000bd58 .quad -8755180564631333184 + 0x74, 0x5a, 0xff, 0xbf, 0x56, 0xf2, 0x68, 0x5c, //0x0000bd60 .quad 6658838503469570676 + 0x70, 0x8c, 0xee, 0x49, 0x14, 0x30, 0x1f, 0xa8, //0x0000bd68 .quad -6332289687361778576 + 0x11, 0x31, 0xff, 0x6f, 0xec, 0x2e, 0x83, 0x73, //0x0000bd70 .quad 8323548129336963345 + 0x8c, 0x2f, 0x6a, 0x5c, 0x19, 0xfc, 0x26, 0xd2, //0x0000bd78 .quad -3303676090774835316 + 0xab, 0x7e, 0xff, 0xc5, 0x53, 0xfd, 0x31, 0xc8, //0x0000bd80 .quad -4021154456019173717 + 0xb7, 0x5d, 0xc2, 0xd9, 0x8f, 0x5d, 0x58, 0x83, //0x0000bd88 .quad -8982326584375353929 + 0x55, 0x5e, 0x7f, 0xb7, 0xa8, 0x7c, 0x3e, 0xba, //0x0000bd90 .quad -5026443070023967147 + 0x25, 0xf5, 0x32, 0xd0, 0xf3, 0x74, 0x2e, 0xa4, //0x0000bd98 .quad -6616222212041804507 + 0xeb, 0x35, 0x5f, 0xe5, 0xd2, 0x1b, 0xce, 0x28, //0x0000bda0 .quad 2940318199324816875 + 0x6f, 0xb2, 0x3f, 0xc4, 0x30, 0x12, 0x3a, 0xcd, //0x0000bda8 .quad -3658591746624867729 + 0xb3, 0x81, 0x5b, 0xcf, 0x63, 0xd1, 0x80, 0x79, //0x0000bdb0 .quad 8755227902219092403 + 0x85, 0xcf, 0xa7, 0x7a, 0x5e, 0x4b, 0x44, 0x80, //0x0000bdb8 .quad -9204148869281624187 + 0x1f, 0x62, 0x32, 0xc3, 0xbc, 0x05, 0xe1, 0xd7, //0x0000bdc0 .quad -2891023177508298209 + 0x66, 0xc3, 0x51, 0x19, 0x36, 0x5e, 0x55, 0xa0, //0x0000bdc8 .quad -6893500068174642330 + 0xa7, 0xfa, 0xfe, 0xf3, 0x2b, 0x47, 0xd9, 0x8d, //0x0000bdd0 .quad -8225464990312760665 + 0x40, 0x34, 0xa6, 0x9f, 0xc3, 0xb5, 0x6a, 0xc8, //0x0000bdd8 .quad -4005189066790915008 + 0x51, 0xb9, 0xfe, 0xf0, 0xf6, 0x98, 0x4f, 0xb1, //0x0000bde0 .quad -5670145219463562927 + 0x50, 0xc1, 0x8f, 0x87, 0x34, 0x63, 0x85, 0xfa, //0x0000bde8 .quad -394800315061255856 + 0xd3, 0x33, 0x9f, 0x56, 0x9a, 0xbf, 0xd1, 0x6e, //0x0000bdf0 .quad 7985374283903742931 + 0xd2, 0xd8, 0xb9, 0xd4, 0x00, 0x5e, 0x93, 0x9c, //0x0000bdf8 .quad -7164279224554366766 + 0xc8, 0x00, 0x47, 0xec, 0x80, 0x2f, 0x86, 0x0a, //0x0000be00 .quad 758345818024902856 + 0x07, 0x4f, 0xe8, 0x09, 0x81, 0x35, 0xb8, 0xc3, //0x0000be08 .quad -4343663012265570553 + 0xfa, 0xc0, 0x58, 0x27, 0x61, 0xbb, 0x27, 0xcd, //0x0000be10 .quad -3663753745896259334 + 0xc8, 0x62, 0x62, 0x4c, 0xe1, 0x42, 0xa6, 0xf4, //0x0000be18 .quad -817892746904575288 + 0x9c, 0x78, 0x97, 0xb8, 0x1c, 0xd5, 0x38, 0x80, //0x0000be20 .quad -9207375118826243940 + 0xbd, 0x7d, 0xbd, 0xcf, 0xcc, 0xe9, 0xe7, 0x98, //0x0000be28 .quad -7428711994456441411 + 0xc3, 0x56, 0xbd, 0xe6, 0x63, 0x0a, 0x47, 0xe0, //0x0000be30 .quad -2285846861678029117 + 0x2c, 0xdd, 0xac, 0x03, 0x40, 0xe4, 0x21, 0xbf, //0x0000be38 .quad -4674203974643163860 + 0x74, 0xac, 0x6c, 0xe0, 0xfc, 0xcc, 0x58, 0x18, //0x0000be40 .quad 1754377441329851508 + 0x78, 0x14, 0x98, 0x04, 0x50, 0x5d, 0xea, 0xee, //0x0000be48 .quad -1231068949876566920 + 0xc8, 0xeb, 0x43, 0x0c, 0x1e, 0x80, 0x37, 0x0f, //0x0000be50 .quad 1096485900831157192 + 0xcb, 0x0c, 0xdf, 0x02, 0x52, 0x7a, 0x52, 0x95, //0x0000be58 .quad -7686947121313936181 + 0xba, 0xe6, 0x54, 0x8f, 0x25, 0x60, 0x05, 0xd3, //0x0000be60 .quad -3241078642388441414 + 0xfd, 0xcf, 0x96, 0x83, 0xe6, 0x18, 0xa7, 0xba, //0x0000be68 .quad -4996997883215032323 + 0x69, 0x20, 0x2a, 0xf3, 0x2e, 0xb8, 0xc6, 0x47, //0x0000be70 .quad 5172023733869224041 + 0xfd, 0x83, 0x7c, 0x24, 0x20, 0xdf, 0x50, 0xe9, //0x0000be78 .quad -1634561335591402499 + 0x41, 0x54, 0xfa, 0x57, 0x1d, 0x33, 0xdc, 0x4c, //0x0000be80 .quad 5538357842881958977 + 0x7e, 0xd2, 0xcd, 0x16, 0x74, 0x8b, 0xd2, 0x91, //0x0000be88 .quad -7939129862385708418 + 0x52, 0xe9, 0xf8, 0xad, 0xe4, 0x3f, 0x13, 0xe0, //0x0000be90 .quad -2300424733252327086 + 0x1d, 0x47, 0x81, 0x1c, 0x51, 0x2e, 0x47, 0xb6, //0x0000be98 .quad -5312226309554747619 + 0xa6, 0x23, 0x77, 0xd9, 0xdd, 0x0f, 0x18, 0x58, //0x0000bea0 .quad 6347841120289366950 + 0xe5, 0x98, 0xa1, 0x63, 0xe5, 0xf9, 0xd8, 0xe3, //0x0000bea8 .quad -2028596868516046619 + 0x48, 0x76, 0xea, 0xa7, 0xea, 0x09, 0x0f, 0x57, //0x0000beb0 .quad 6273243709394548296 + 0x8f, 0xff, 0x44, 0x5e, 0x2f, 0x9c, 0x67, 0x8e, //0x0000beb8 .quad -8185402070463610993 + 0xda, 0x13, 0xe5, 0x51, 0x65, 0xcc, 0xd2, 0x2c, //0x0000bec0 .quad 3229868618315797466 + 0x73, 0x3f, 0xd6, 0x35, 0x3b, 0x83, 0x01, 0xb2, //0x0000bec8 .quad -5620066569652125837 + 0xd1, 0x58, 0x5e, 0xa6, 0x7e, 0x7f, 0x07, 0xf8, //0x0000bed0 .quad -574350245532641071 + 0x4f, 0xcf, 0x4b, 0x03, 0x0a, 0xe4, 0x81, 0xde, //0x0000bed8 .quad -2413397193637769393 + 0x82, 0xf7, 0xfa, 0x27, 0xaf, 0xaf, 0x04, 0xfb, //0x0000bee0 .quad -358968903457900670 + 0x91, 0x61, 0x0f, 0x42, 0x86, 0x2e, 0x11, 0x8b, //0x0000bee8 .quad -8425902273664687727 + 0x63, 0xb5, 0xf9, 0xf1, 0x9a, 0xdb, 0xc5, 0x79, //0x0000bef0 .quad 8774660907532399971 + 0xf6, 0x39, 0x93, 0xd2, 0x27, 0x7a, 0xd5, 0xad, //0x0000bef8 .quad -5920691823653471754 + 0xbc, 0x22, 0x78, 0xae, 0x81, 0x52, 0x37, 0x18, //0x0000bf00 .quad 1744954097560724156 + 0x74, 0x08, 0x38, 0xc7, 0xb1, 0xd8, 0x4a, 0xd9, //0x0000bf08 .quad -2789178761139451788 + 0xb5, 0x15, 0x0b, 0x0d, 0x91, 0x93, 0x22, 0x8f, //0x0000bf10 .quad -8132775725879323211 + 0x48, 0x05, 0x83, 0x1c, 0x6f, 0xc7, 0xce, 0x87, //0x0000bf18 .quad -8660765753353239224 + 0x22, 0xdb, 0x4d, 0x50, 0x75, 0x38, 0xeb, 0xb2, //0x0000bf20 .quad -5554283638921766110 + 0x9a, 0xc6, 0xa3, 0xe3, 0x4a, 0x79, 0xc2, 0xa9, //0x0000bf28 .quad -6214271173264161126 + 0xeb, 0x51, 0x61, 0xa4, 0x92, 0x06, 0xa6, 0x5f, //0x0000bf30 .quad 6892203506629956075 + 0x41, 0xb8, 0x8c, 0x9c, 0x9d, 0x17, 0x33, 0xd4, //0x0000bf38 .quad -3156152948152813503 + 0x33, 0xd3, 0xbc, 0xa6, 0x1b, 0xc4, 0xc7, 0xdb, //0x0000bf40 .quad -2609901835997359309 + 0x28, 0xf3, 0xd7, 0x81, 0xc2, 0xee, 0x9f, 0x84, //0x0000bf48 .quad -8890124620236590296 + 0x00, 0x08, 0x6c, 0x90, 0x22, 0xb5, 0xb9, 0x12, //0x0000bf50 .quad 1349308723430688768 + 0xf3, 0xef, 0x4d, 0x22, 0x73, 0xea, 0xc7, 0xa5, //0x0000bf58 .quad -6500969756868349965 + 0x00, 0x0a, 0x87, 0x34, 0x6b, 0x22, 0x68, 0xd7, //0x0000bf60 .quad -2925050114139026944 + 0xef, 0x6b, 0xe1, 0xea, 0x0f, 0xe5, 0x39, 0xcf, //0x0000bf68 .quad -3514526177658049553 + 0x40, 0x66, 0xd4, 0x00, 0x83, 0x15, 0xa1, 0xe6, //0x0000bf70 .quad -1828156321336891840 + 0x75, 0xe3, 0xcc, 0xf2, 0x29, 0x2f, 0x84, 0x81, //0x0000bf78 .quad -9114107888677362827 + 0xd0, 0x7f, 0x09, 0xc1, 0xe3, 0x5a, 0x49, 0x60, //0x0000bf80 .quad 6938176635183661008 + 0x53, 0x1c, 0x80, 0x6f, 0xf4, 0x3a, 0xe5, 0xa1, //0x0000bf88 .quad -6780948842419315629 + 0xc4, 0xdf, 0x4b, 0xb1, 0x9c, 0xb1, 0x5b, 0x38, //0x0000bf90 .quad 4061034775552188356 + 0x68, 0x23, 0x60, 0x8b, 0xb1, 0x89, 0x5e, 0xca, //0x0000bf98 .quad -3864500034596756632 + 0xb5, 0xd7, 0x9e, 0xdd, 0x03, 0x9e, 0x72, 0x46, //0x0000bfa0 .quad 5076293469440235445 + 0x42, 0x2c, 0x38, 0xee, 0x1d, 0x2c, 0xf6, 0xfc, //0x0000bfa8 .quad -218939024818557886 + 0xd1, 0x46, 0x83, 0x6a, 0xc2, 0xa2, 0x07, 0x6c, //0x0000bfb0 .quad 7784369436827535057 + 0xa9, 0x1b, 0xe3, 0xb4, 0x92, 0xdb, 0x19, 0x9e, //0x0000bfb8 .quad -7054365918152680535 + 0x85, 0x18, 0x24, 0x05, 0x73, 0x8b, 0x09, 0xc7, //0x0000bfc0 .quad -4104596259247744891 + 0x93, 0xe2, 0x1b, 0x62, 0x77, 0x52, 0xa0, 0xc5, //0x0000bfc8 .quad -4206271379263462765 + 0xa7, 0x1e, 0x6d, 0xc6, 0x4f, 0xee, 0xcb, 0xb8, //0x0000bfd0 .quad -5130745324059681113 + 0x38, 0xdb, 0xa2, 0x3a, 0x15, 0x67, 0x08, 0xf7, //0x0000bfd8 .quad -646153205651940552 + 0x28, 0x33, 0x04, 0xdc, 0xf1, 0x74, 0x7f, 0x73, //0x0000bfe0 .quad 8322499218531169064 + 0x03, 0xc9, 0xa5, 0x44, 0x6d, 0x40, 0x65, 0x9a, //0x0000bfe8 .quad -7321374781173544701 + 0xf2, 0x3f, 0x05, 0x53, 0x2e, 0x52, 0x5f, 0x50, //0x0000bff0 .quad 5791438004736573426 + 0x44, 0x3b, 0xcf, 0x95, 0x88, 0x90, 0xfe, 0xc0, //0x0000bff8 .quad -4540032458039542972 + 0xef, 0x8f, 0xc6, 0xe7, 0xb9, 0x26, 0x77, 0x64, //0x0000c000 .quad 7239297505920716783 + 0x15, 0x0a, 0x43, 0xbb, 0xaa, 0x34, 0x3e, 0xf1, //0x0000c008 .quad -1063354554122040811 + 0xf5, 0x19, 0xdc, 0x30, 0x34, 0x78, 0xca, 0x5e, //0x0000c010 .quad 6830403950414141941 + 0x4d, 0xe6, 0x09, 0xb5, 0xea, 0xe0, 0xc6, 0x96, //0x0000c018 .quad -7582125623967357363 + 0x72, 0x20, 0x13, 0x3d, 0x41, 0x16, 0x7d, 0xb6, //0x0000c020 .quad -5297053117264486286 + 0xe0, 0x5f, 0x4c, 0x62, 0x25, 0x99, 0x78, 0xbc, //0x0000c028 .quad -4865971011531808800 + 0x8f, 0xe8, 0x57, 0x8c, 0xd1, 0x5b, 0x1c, 0xe4, //0x0000c030 .quad -2009630378153219953 + 0xd8, 0x77, 0xdf, 0xba, 0x6e, 0xbf, 0x96, 0xeb, //0x0000c038 .quad -1470777745987373096 + 0x59, 0xf1, 0xb6, 0xf7, 0x62, 0xb9, 0x91, 0x8e, //0x0000c040 .quad -8173548013986844327 + 0xe7, 0xaa, 0xcb, 0x34, 0xa5, 0x37, 0x3e, 0x93, //0x0000c048 .quad -7836765118883190041 + 0xb0, 0xad, 0xa4, 0xb5, 0xbb, 0x27, 0x36, 0x72, //0x0000c050 .quad 8229809056225996208 + 0xa1, 0x95, 0xfe, 0x81, 0x8e, 0xc5, 0x0d, 0xb8, //0x0000c058 .quad -5184270380176599647 + 0x1c, 0xd9, 0x0d, 0xa3, 0xaa, 0xb1, 0xc3, 0xce, //0x0000c060 .quad -3547796734999668452 + 0x09, 0x3b, 0x7e, 0x22, 0xf2, 0x36, 0x11, 0xe6, //0x0000c068 .quad -1868651956793361655 + 0xb1, 0xa7, 0xe8, 0xa5, 0x0a, 0x4f, 0x3a, 0x21, //0x0000c070 .quad 2394313059052595121 + 0xe6, 0xe4, 0x8e, 0x55, 0x57, 0xc2, 0xca, 0x8f, //0x0000c078 .quad -8085436500636932890 + 0x9d, 0xd1, 0x62, 0x4f, 0xcd, 0xe2, 0x88, 0xa9, //0x0000c080 .quad -6230480713039031907 + 0x1f, 0x9e, 0xf2, 0x2a, 0xed, 0x72, 0xbd, 0xb3, //0x0000c088 .quad -5495109607368778209 + 0x05, 0x86, 0x3b, 0xa3, 0x80, 0x1b, 0xeb, 0x93, //0x0000c090 .quad -7788100891298789883 + 0xa7, 0x45, 0xaf, 0x75, 0xa8, 0xcf, 0xac, 0xe0, //0x0000c098 .quad -2257200990783584857 + 0xc3, 0x33, 0x05, 0x66, 0x30, 0xf1, 0x72, 0xbc, //0x0000c0a0 .quad -4867563057061743677 + 0x88, 0x8b, 0x8d, 0x49, 0xc9, 0x01, 0x6c, 0x8c, //0x0000c0a8 .quad -8328279646880822392 + 0xb4, 0x80, 0x86, 0x7f, 0x7c, 0xad, 0x8f, 0xeb, //0x0000c0b0 .quad -1472767802899791692 + 0x6a, 0xee, 0xf0, 0x9b, 0x3b, 0x02, 0x87, 0xaf, //0x0000c0b8 .quad -5798663540173640086 + 0xe1, 0x20, 0x68, 0x9f, 0xdb, 0x98, 0x73, 0xa6, //0x0000c0c0 .quad -6452645772052127519 + 0x05, 0x2a, 0xed, 0x82, 0xca, 0xc2, 0x68, 0xdb, //0x0000c0c8 .quad -2636643406789662203 + 0x8c, 0x14, 0xa1, 0x43, 0x89, 0x3f, 0x08, 0x88, //0x0000c0d0 .quad -8644589625959967604 + 0x43, 0x3a, 0xd4, 0x91, 0xbe, 0x79, 0x21, 0x89, //0x0000c0d8 .quad -8565431156884620733 + 0xb0, 0x59, 0x89, 0x94, 0x6b, 0x4f, 0x0a, 0x6a, //0x0000c0e0 .quad 7641007041259592112 + 0xd4, 0x48, 0x49, 0x36, 0x2e, 0xd8, 0x69, 0xab, //0x0000c0e8 .quad -6095102927678388012 + 0x1c, 0xb0, 0xab, 0x79, 0x46, 0xe3, 0x8c, 0x84, //0x0000c0f0 .quad -8895485272135061476 + 0x09, 0x9b, 0xdb, 0xc3, 0x39, 0x4e, 0x44, 0xd6, //0x0000c0f8 .quad -3007192641170597111 + 0x11, 0x4e, 0x0b, 0x0c, 0x0c, 0x0e, 0xd8, 0xf2, //0x0000c100 .quad -947992276657025519 + 0xe5, 0x40, 0x69, 0x1a, 0xe4, 0xb0, 0xea, 0x85, //0x0000c108 .quad -8797024428372705051 + 0x95, 0x21, 0x0e, 0x0f, 0x8f, 0x11, 0x8e, 0x6f, //0x0000c110 .quad 8038381691033493909 + 0x1f, 0x91, 0x03, 0x21, 0x1d, 0x5d, 0x65, 0xa7, //0x0000c118 .quad -6384594517038493409 + 0xfb, 0xa9, 0xd1, 0xd2, 0xf2, 0x95, 0x71, 0x4b, //0x0000c120 .quad 5436291095364479483 + 0x67, 0x75, 0x44, 0x69, 0x64, 0xb4, 0x3e, 0xd1, //0x0000c128 .quad -3369057127870728857 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000c130 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + //0x0000c140 .p2align 4, 0x00 + //0x0000c140 _POW_TAB + 0x01, 0x00, 0x00, 0x00, //0x0000c140 .long 1 + 0x03, 0x00, 0x00, 0x00, //0x0000c144 .long 3 + 0x06, 0x00, 0x00, 0x00, //0x0000c148 .long 6 + 0x09, 0x00, 0x00, 0x00, //0x0000c14c .long 9 + 0x0d, 0x00, 0x00, 0x00, //0x0000c150 .long 13 + 0x10, 0x00, 0x00, 0x00, //0x0000c154 .long 16 + 0x13, 0x00, 0x00, 0x00, //0x0000c158 .long 19 + 0x17, 0x00, 0x00, 0x00, //0x0000c15c .long 23 + 0x1a, 0x00, 0x00, 0x00, //0x0000c160 .long 26 + //0x0000c164 .p2align 2, 0x00 + //0x0000c164 _MASK_USE_NUMBER + 0x02, 0x00, 0x00, 0x00, //0x0000c164 .long 2 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000c168 .p2align 4, 0x00 + //0x0000c170 _Digits + 0x30, 0x30, 0x30, 0x31, 0x30, 0x32, 0x30, 0x33, 0x30, 0x34, 0x30, 0x35, 0x30, 0x36, 0x30, 0x37, //0x0000c170 QUAD $0x3330323031303030; QUAD $0x3730363035303430 // .ascii 16, '0001020304050607' + 0x30, 0x38, 0x30, 0x39, 0x31, 0x30, 0x31, 0x31, 0x31, 0x32, 0x31, 0x33, 0x31, 0x34, 0x31, 0x35, //0x0000c180 QUAD $0x3131303139303830; QUAD $0x3531343133313231 // .ascii 16, '0809101112131415' + 0x31, 0x36, 0x31, 0x37, 0x31, 0x38, 0x31, 0x39, 0x32, 0x30, 0x32, 0x31, 0x32, 0x32, 0x32, 0x33, //0x0000c190 QUAD $0x3931383137313631; QUAD $0x3332323231323032 // .ascii 16, '1617181920212223' + 0x32, 0x34, 0x32, 0x35, 0x32, 0x36, 0x32, 0x37, 0x32, 0x38, 0x32, 0x39, 0x33, 0x30, 0x33, 0x31, //0x0000c1a0 QUAD $0x3732363235323432; QUAD $0x3133303339323832 // .ascii 16, '2425262728293031' + 0x33, 0x32, 0x33, 0x33, 0x33, 0x34, 0x33, 0x35, 0x33, 0x36, 0x33, 0x37, 0x33, 0x38, 0x33, 0x39, //0x0000c1b0 QUAD $0x3533343333333233; QUAD $0x3933383337333633 // .ascii 16, '3233343536373839' + 0x34, 0x30, 0x34, 0x31, 0x34, 0x32, 0x34, 0x33, 0x34, 0x34, 0x34, 0x35, 0x34, 0x36, 0x34, 0x37, //0x0000c1c0 QUAD $0x3334323431343034; QUAD $0x3734363435343434 // .ascii 16, '4041424344454647' + 0x34, 0x38, 0x34, 0x39, 0x35, 0x30, 0x35, 0x31, 0x35, 0x32, 0x35, 0x33, 0x35, 0x34, 0x35, 0x35, //0x0000c1d0 QUAD $0x3135303539343834; QUAD $0x3535343533353235 // .ascii 16, '4849505152535455' + 0x35, 0x36, 0x35, 0x37, 0x35, 0x38, 0x35, 0x39, 0x36, 0x30, 0x36, 0x31, 0x36, 0x32, 0x36, 0x33, //0x0000c1e0 QUAD $0x3935383537353635; QUAD $0x3336323631363036 // .ascii 16, '5657585960616263' + 0x36, 0x34, 0x36, 0x35, 0x36, 0x36, 0x36, 0x37, 0x36, 0x38, 0x36, 0x39, 0x37, 0x30, 0x37, 0x31, //0x0000c1f0 QUAD $0x3736363635363436; QUAD $0x3137303739363836 // .ascii 16, '6465666768697071' + 0x37, 0x32, 0x37, 0x33, 0x37, 0x34, 0x37, 0x35, 0x37, 0x36, 0x37, 0x37, 0x37, 0x38, 0x37, 0x39, //0x0000c200 QUAD $0x3537343733373237; QUAD $0x3937383737373637 // .ascii 16, '7273747576777879' + 0x38, 0x30, 0x38, 0x31, 0x38, 0x32, 0x38, 0x33, 0x38, 0x34, 0x38, 0x35, 0x38, 0x36, 0x38, 0x37, //0x0000c210 QUAD $0x3338323831383038; QUAD $0x3738363835383438 // .ascii 16, '8081828384858687' + 0x38, 0x38, 0x38, 0x39, 0x39, 0x30, 0x39, 0x31, 0x39, 0x32, 0x39, 0x33, 0x39, 0x34, 0x39, 0x35, //0x0000c220 QUAD $0x3139303939383838; QUAD $0x3539343933393239 // .ascii 16, '8889909192939495' + 0x39, 0x36, 0x39, 0x37, 0x39, 0x38, 0x39, 0x39, //0x0000c230 QUAD $0x3939383937393639 // .ascii 8, '96979899' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000c238 .p2align 4, 0x00 + //0x0000c240 _pow10_ceil_sig.g + 0x4f, 0xdc, 0xbc, 0xbe, 0xfc, 0xb1, 0x77, 0xff, //0x0000c240 .quad -38366372719436721 + 0x7b, 0x0f, 0xbb, 0x13, 0x9c, 0xe8, 0xe8, 0x25, //0x0000c248 .quad 2731688931043774331 + 0xb1, 0x09, 0x36, 0xf7, 0x3d, 0xcf, 0xaa, 0x9f, //0x0000c250 .quad -6941508010590729807 + 0xad, 0xe9, 0x54, 0x8c, 0x61, 0x91, 0xb1, 0x77, //0x0000c258 .quad 8624834609543440813 + 0x1d, 0x8c, 0x03, 0x75, 0x0d, 0x83, 0x95, 0xc7, //0x0000c260 .quad -4065198994811024355 + 0x18, 0x24, 0x6a, 0xef, 0xb9, 0xf5, 0x9d, 0xd5, //0x0000c268 .quad -3054014793352862696 + 0x25, 0x6f, 0x44, 0xd2, 0xd0, 0xe3, 0x7a, 0xf9, //0x0000c270 .quad -469812725086392539 + 0x1e, 0xad, 0x44, 0x6b, 0x28, 0x73, 0x05, 0x4b, //0x0000c278 .quad 5405853545163697438 + 0x77, 0xc5, 0x6a, 0x83, 0x62, 0xce, 0xec, 0x9b, //0x0000c280 .quad -7211161980820077193 + 0x33, 0xec, 0x0a, 0x43, 0xf9, 0x67, 0xe3, 0x4e, //0x0000c288 .quad 5684501474941004851 + 0xd5, 0x76, 0x45, 0x24, 0xfb, 0x01, 0xe8, 0xc2, //0x0000c290 .quad -4402266457597708587 + 0x40, 0xa7, 0xcd, 0x93, 0xf7, 0x41, 0x9c, 0x22, //0x0000c298 .quad 2493940825248868160 + 0x8a, 0xd4, 0x56, 0xed, 0x79, 0x02, 0xa2, 0xf3, //0x0000c2a0 .quad -891147053569747830 + 0x10, 0x11, 0xc1, 0x78, 0x75, 0x52, 0x43, 0x6b, //0x0000c2a8 .quad 7729112049988473104 + 0xd6, 0x44, 0x56, 0x34, 0x8c, 0x41, 0x45, 0x98, //0x0000c2b0 .quad -7474495936122174250 + 0xaa, 0xaa, 0x78, 0x6b, 0x89, 0x13, 0x0a, 0x83, //0x0000c2b8 .quad -9004363024039368022 + 0x0c, 0xd6, 0x6b, 0x41, 0xef, 0x91, 0x56, 0xbe, //0x0000c2c0 .quad -4731433901725329908 + 0x54, 0xd5, 0x56, 0xc6, 0x6b, 0x98, 0xcc, 0x23, //0x0000c2c8 .quad 2579604275232953684 + 0x8f, 0xcb, 0xc6, 0x11, 0x6b, 0x36, 0xec, 0xed, //0x0000c2d0 .quad -1302606358729274481 + 0xa9, 0x8a, 0xec, 0xb7, 0x86, 0xbe, 0xbf, 0x2c, //0x0000c2d8 .quad 3224505344041192105 + 0x39, 0x3f, 0x1c, 0xeb, 0x02, 0xa2, 0xb3, 0x94, //0x0000c2e0 .quad -7731658001846878407 + 0xaa, 0xd6, 0xf3, 0x32, 0x14, 0xd7, 0xf7, 0x7b, //0x0000c2e8 .quad 8932844867666826922 + 0x07, 0x4f, 0xe3, 0xa5, 0x83, 0x8a, 0xe0, 0xb9, //0x0000c2f0 .quad -5052886483881210105 + 0x54, 0xcc, 0xb0, 0x3f, 0xd9, 0xcc, 0xf5, 0xda, //0x0000c2f8 .quad -2669001970698630060 + 0xc9, 0x22, 0x5c, 0x8f, 0x24, 0xad, 0x58, 0xe8, //0x0000c300 .quad -1704422086424124727 + 0x69, 0xff, 0x9c, 0x8f, 0x0f, 0x40, 0xb3, 0xd1, //0x0000c308 .quad -3336252463373287575 + 0xbe, 0x95, 0x99, 0xd9, 0x36, 0x6c, 0x37, 0x91, //0x0000c310 .quad -7982792831656159810 + 0xa2, 0x1f, 0xc2, 0xb9, 0x09, 0x08, 0x10, 0x23, //0x0000c318 .quad 2526528228819083170 + 0x2d, 0xfb, 0xff, 0x8f, 0x44, 0x47, 0x85, 0xb5, //0x0000c320 .quad -5366805021142811859 + 0x8b, 0xa7, 0x32, 0x28, 0x0c, 0x0a, 0xd4, 0xab, //0x0000c328 .quad -6065211750830921845 + 0xf9, 0xf9, 0xff, 0xb3, 0x15, 0x99, 0xe6, 0xe2, //0x0000c330 .quad -2096820258001126919 + 0x6d, 0x51, 0x3f, 0x32, 0x8f, 0x0c, 0xc9, 0x16, //0x0000c338 .quad 1641857348316123501 + 0x3b, 0xfc, 0x7f, 0x90, 0xad, 0x1f, 0xd0, 0x8d, //0x0000c340 .quad -8228041688891786181 + 0xe4, 0x92, 0x67, 0x7f, 0xd9, 0xa7, 0x3d, 0xae, //0x0000c348 .quad -5891368184943504668 + 0x4a, 0xfb, 0x9f, 0xf4, 0x98, 0x27, 0x44, 0xb1, //0x0000c350 .quad -5673366092687344822 + 0x9d, 0x77, 0x41, 0xdf, 0xcf, 0x11, 0xcd, 0x99, //0x0000c358 .quad -7364210231179380835 + 0x1d, 0xfa, 0xc7, 0x31, 0x7f, 0x31, 0x95, 0xdd, //0x0000c360 .quad -2480021597431793123 + 0x84, 0xd5, 0x11, 0xd7, 0x43, 0x56, 0x40, 0x40, //0x0000c368 .quad 4629795266307937668 + 0x52, 0xfc, 0x1c, 0x7f, 0xef, 0x3e, 0x7d, 0x8a, //0x0000c370 .quad -8467542526035952558 + 0x73, 0x25, 0x6b, 0x66, 0xea, 0x35, 0x28, 0x48, //0x0000c378 .quad 5199465050656154995 + 0x66, 0x3b, 0xe4, 0x5e, 0xab, 0x8e, 0x1c, 0xad, //0x0000c380 .quad -5972742139117552794 + 0xd0, 0xee, 0x05, 0x00, 0x65, 0x43, 0x32, 0xda, //0x0000c388 .quad -2724040723534582064 + 0x40, 0x4a, 0x9d, 0x36, 0x56, 0xb2, 0x63, 0xd8, //0x0000c390 .quad -2854241655469553088 + 0x83, 0x6a, 0x07, 0x40, 0x3e, 0xd4, 0xbe, 0x90, //0x0000c398 .quad -8016736922845615485 + 0x68, 0x4e, 0x22, 0xe2, 0x75, 0x4f, 0x3e, 0x87, //0x0000c3a0 .quad -8701430062309552536 + 0x92, 0xa2, 0x04, 0xe8, 0xa6, 0x44, 0x77, 0x5a, //0x0000c3a8 .quad 6518754469289960082 + 0x02, 0xe2, 0xaa, 0x5a, 0x53, 0xe3, 0x0d, 0xa9, //0x0000c3b0 .quad -6265101559459552766 + 0x37, 0xcb, 0x05, 0xa2, 0xd0, 0x15, 0x15, 0x71, //0x0000c3b8 .quad 8148443086612450103 + 0x83, 0x9a, 0x55, 0x31, 0x28, 0x5c, 0x51, 0xd3, //0x0000c3c0 .quad -3219690930897053053 + 0x04, 0x3e, 0x87, 0xca, 0x44, 0x5b, 0x5a, 0x0d, //0x0000c3c8 .quad 962181821410786820 + 0x91, 0x80, 0xd5, 0x1e, 0x99, 0xd9, 0x12, 0x84, //0x0000c3d0 .quad -8929835859451740015 + 0xc3, 0x86, 0x94, 0xfe, 0x0a, 0x79, 0x58, 0xe8, //0x0000c3d8 .quad -1704479370831952189 + 0xb6, 0xe0, 0x8a, 0x66, 0xff, 0x8f, 0x17, 0xa5, //0x0000c3e0 .quad -6550608805887287114 + 0x73, 0xa8, 0x39, 0xbe, 0x4d, 0x97, 0x6e, 0x62, //0x0000c3e8 .quad 7092772823314835571 + 0xe3, 0x98, 0x2d, 0x40, 0xff, 0x73, 0x5d, 0xce, //0x0000c3f0 .quad -3576574988931720989 + 0x90, 0x12, 0xc8, 0x2d, 0x21, 0x3d, 0x0a, 0xfb, //0x0000c3f8 .quad -357406007711231344 + 0x8e, 0x7f, 0x1c, 0x88, 0x7f, 0x68, 0xfa, 0x80, //0x0000c400 .quad -9152888395723407474 + 0x9a, 0x0b, 0x9d, 0xbc, 0x34, 0x66, 0xe6, 0x7c, //0x0000c408 .quad 8999993282035256218 + 0x72, 0x9f, 0x23, 0x6a, 0x9f, 0x02, 0x39, 0xa1, //0x0000c410 .quad -6829424476226871438 + 0x81, 0x4e, 0xc4, 0xeb, 0xc1, 0xff, 0x1f, 0x1c, //0x0000c418 .quad 2026619565689294465 + 0x4e, 0x87, 0xac, 0x44, 0x47, 0x43, 0x87, 0xc9, //0x0000c420 .quad -3925094576856201394 + 0x21, 0x62, 0xb5, 0x66, 0xb2, 0xff, 0x27, 0xa3, //0x0000c428 .quad -6690097579743157727 + 0x22, 0xa9, 0xd7, 0x15, 0x19, 0x14, 0xe9, 0xfb, //0x0000c430 .quad -294682202642863838 + 0xa9, 0xba, 0x62, 0x00, 0x9f, 0xff, 0xf1, 0x4b, //0x0000c438 .quad 5472436080603216553 + 0xb5, 0xc9, 0xa6, 0xad, 0x8f, 0xac, 0x71, 0x9d, //0x0000c440 .quad -7101705404292871755 + 0xaa, 0xb4, 0x3d, 0x60, 0xc3, 0x3f, 0x77, 0x6f, //0x0000c448 .quad 8031958568804398250 + 0x22, 0x7c, 0x10, 0x99, 0xb3, 0x17, 0xce, 0xc4, //0x0000c450 .quad -4265445736938701790 + 0xd4, 0x21, 0x4d, 0x38, 0xb4, 0x0f, 0x55, 0xcb, //0x0000c458 .quad -3795109844276665900 + 0x2b, 0x9b, 0x54, 0x7f, 0xa0, 0x9d, 0x01, 0xf6, //0x0000c460 .quad -720121152745989333 + 0x49, 0x6a, 0x60, 0x46, 0xa1, 0x53, 0x2a, 0x7e, //0x0000c468 .quad 9091170749936331337 + 0xfb, 0xe0, 0x94, 0x4f, 0x84, 0x02, 0xc1, 0x99, //0x0000c470 .quad -7367604748107325189 + 0x6e, 0x42, 0xfc, 0xcb, 0x44, 0x74, 0xda, 0x2e, //0x0000c478 .quad 3376138709496513134 + 0x39, 0x19, 0x7a, 0x63, 0x25, 0x43, 0x31, 0xc0, //0x0000c480 .quad -4597819916706768583 + 0x09, 0x53, 0xfb, 0xfe, 0x55, 0x11, 0x91, 0xfa, //0x0000c488 .quad -391512631556746487 + 0x88, 0x9f, 0x58, 0xbc, 0xee, 0x93, 0x3d, 0xf0, //0x0000c490 .quad -1135588877456072824 + 0xcb, 0x27, 0xba, 0x7e, 0xab, 0x55, 0x35, 0x79, //0x0000c498 .quad 8733981247408842699 + 0xb5, 0x63, 0xb7, 0x35, 0x75, 0x7c, 0x26, 0x96, //0x0000c4a0 .quad -7627272076051127371 + 0xdf, 0x58, 0x34, 0x2f, 0x8b, 0x55, 0xc1, 0x4b, //0x0000c4a8 .quad 5458738279630526687 + 0xa2, 0x3c, 0x25, 0x83, 0x92, 0x1b, 0xb0, 0xbb, //0x0000c4b0 .quad -4922404076636521310 + 0x17, 0x6f, 0x01, 0xfb, 0xed, 0xaa, 0xb1, 0x9e, //0x0000c4b8 .quad -7011635205744005353 + 0xcb, 0x8b, 0xee, 0x23, 0x77, 0x22, 0x9c, 0xea, //0x0000c4c0 .quad -1541319077368263733 + 0xdd, 0xca, 0xc1, 0x79, 0xa9, 0x15, 0x5e, 0x46, //0x0000c4c8 .quad 5070514048102157021 + 0x5f, 0x17, 0x75, 0x76, 0x8a, 0x95, 0xa1, 0x92, //0x0000c4d0 .quad -7880853450996246689 + 0xca, 0x1e, 0x19, 0xec, 0x89, 0xcd, 0xfa, 0x0b, //0x0000c4d8 .quad 863228270850154186 + 0x36, 0x5d, 0x12, 0x14, 0xed, 0xfa, 0x49, 0xb7, //0x0000c4e0 .quad -5239380795317920458 + 0x7c, 0x66, 0x1f, 0x67, 0xec, 0x80, 0xf9, 0xce, //0x0000c4e8 .quad -3532650679864695172 + 0x84, 0xf4, 0x16, 0x59, 0xa8, 0x79, 0x1c, 0xe5, //0x0000c4f0 .quad -1937539975720012668 + 0x1b, 0x40, 0xe7, 0x80, 0x27, 0xe1, 0xb7, 0x82, //0x0000c4f8 .quad -9027499368258256869 + 0xd2, 0x58, 0xae, 0x37, 0x09, 0xcc, 0x31, 0x8f, //0x0000c500 .quad -8128491512466089774 + 0x11, 0x88, 0x90, 0xb0, 0xb8, 0xec, 0xb2, 0xd1, //0x0000c508 .quad -3336344095947716591 + 0x07, 0xef, 0x99, 0x85, 0x0b, 0x3f, 0xfe, 0xb2, //0x0000c510 .quad -5548928372155224313 + 0x16, 0xaa, 0xb4, 0xdc, 0xe6, 0xa7, 0x1f, 0x86, //0x0000c518 .quad -8782116138362033642 + 0xc9, 0x6a, 0x00, 0x67, 0xce, 0xce, 0xbd, 0xdf, //0x0000c520 .quad -2324474446766642487 + 0x9b, 0xd4, 0xe1, 0x93, 0xe0, 0x91, 0xa7, 0x67, //0x0000c528 .quad 7469098900757009563 + 0xbd, 0x42, 0x60, 0x00, 0x41, 0xa1, 0xd6, 0x8b, //0x0000c530 .quad -8370325556870233411 + 0xe1, 0x24, 0x6d, 0x5c, 0x2c, 0xbb, 0xc8, 0xe0, //0x0000c538 .quad -2249342214667950879 + 0x6d, 0x53, 0x78, 0x40, 0x91, 0x49, 0xcc, 0xae, //0x0000c540 .quad -5851220927660403859 + 0x19, 0x6e, 0x88, 0x73, 0xf7, 0xe9, 0xfa, 0x58, //0x0000c548 .quad 6411694268519837209 + 0x48, 0x68, 0x96, 0x90, 0xf5, 0x5b, 0x7f, 0xda, //0x0000c550 .quad -2702340141148116920 + 0x9f, 0x89, 0x6a, 0x50, 0x75, 0xa4, 0x39, 0xaf, //0x0000c558 .quad -5820440219632367201 + 0x2d, 0x01, 0x5e, 0x7a, 0x79, 0x99, 0x8f, 0x88, //0x0000c560 .quad -8606491615858654931 + 0x04, 0x96, 0x42, 0x52, 0xc9, 0x06, 0x84, 0x6d, //0x0000c568 .quad 7891439908798240260 + 0x78, 0x81, 0xf5, 0xd8, 0xd7, 0x7f, 0xb3, 0xaa, //0x0000c570 .quad -6146428501395930760 + 0x84, 0x3b, 0xd3, 0xa6, 0x7b, 0x08, 0xe5, 0xc8, //0x0000c578 .quad -3970758169284363388 + 0xd6, 0xe1, 0x32, 0xcf, 0xcd, 0x5f, 0x60, 0xd5, //0x0000c580 .quad -3071349608317525546 + 0x65, 0x0a, 0x88, 0x90, 0x9a, 0x4a, 0x1e, 0xfb, //0x0000c588 .quad -351761693178066331 + 0x26, 0xcd, 0x7f, 0xa1, 0xe0, 0x3b, 0x5c, 0x85, //0x0000c590 .quad -8837122532839535322 + 0x80, 0x06, 0x55, 0x9a, 0xa0, 0xee, 0xf2, 0x5c, //0x0000c598 .quad 6697677969404790400 + 0x6f, 0xc0, 0xdf, 0xc9, 0xd8, 0x4a, 0xb3, 0xa6, //0x0000c5a0 .quad -6434717147622031249 + 0x1f, 0x48, 0xea, 0xc0, 0x48, 0xaa, 0x2f, 0xf4, //0x0000c5a8 .quad -851274575098787809 + 0x8b, 0xb0, 0x57, 0xfc, 0x8e, 0x1d, 0x60, 0xd0, //0x0000c5b0 .quad -3431710416100151157 + 0x27, 0xda, 0x24, 0xf1, 0xda, 0x94, 0x3b, 0xf1, //0x0000c5b8 .quad -1064093218873484761 + 0x57, 0xce, 0xb6, 0x5d, 0x79, 0x12, 0x3c, 0x82, //0x0000c5c0 .quad -9062348037703676329 + 0x59, 0x08, 0xb7, 0xd6, 0x08, 0x3d, 0xc5, 0x76, //0x0000c5c8 .quad 8558313775058847833 + 0xed, 0x81, 0x24, 0xb5, 0x17, 0x17, 0xcb, 0xa2, //0x0000c5d0 .quad -6716249028702207507 + 0x6f, 0xca, 0x64, 0x0c, 0x4b, 0x8c, 0x76, 0x54, //0x0000c5d8 .quad 6086206200396171887 + 0x68, 0xa2, 0x6d, 0xa2, 0xdd, 0xdc, 0x7d, 0xcb, //0x0000c5e0 .quad -3783625267450371480 + 0x0a, 0xfd, 0x7d, 0xcf, 0x5d, 0x2f, 0x94, 0xa9, //0x0000c5e8 .quad -6227300304786948854 + 0x02, 0x0b, 0x09, 0x0b, 0x15, 0x54, 0x5d, 0xfe, //0x0000c5f0 .quad -117845565885576446 + 0x4d, 0x7c, 0x5d, 0x43, 0x35, 0x3b, 0xf9, 0xd3, //0x0000c5f8 .quad -3172439362556298163 + 0xe1, 0xa6, 0xe5, 0x26, 0x8d, 0x54, 0xfa, 0x9e, //0x0000c600 .quad -6991182506319567135 + 0xb0, 0x6d, 0x1a, 0x4a, 0x01, 0xc5, 0x7b, 0xc4, //0x0000c608 .quad -4288617610811380304 + 0x9a, 0x10, 0x9f, 0x70, 0xb0, 0xe9, 0xb8, 0xc6, //0x0000c610 .quad -4127292114472071014 + 0x1c, 0x09, 0xa1, 0x9c, 0x41, 0xb6, 0x9a, 0x35, //0x0000c618 .quad 3862600023340550428 + 0xc0, 0xd4, 0xc6, 0x8c, 0x1c, 0x24, 0x67, 0xf8, //0x0000c620 .quad -547429124662700864 + 0x63, 0x4b, 0xc9, 0x03, 0xd2, 0x63, 0x01, 0xc3, //0x0000c628 .quad -4395122007679087773 + 0xf8, 0x44, 0xfc, 0xd7, 0x91, 0x76, 0x40, 0x9b, //0x0000c630 .quad -7259672230555269896 + 0x1e, 0xcf, 0x5d, 0x42, 0x63, 0xde, 0xe0, 0x79, //0x0000c638 .quad 8782263791269039902 + 0x36, 0x56, 0xfb, 0x4d, 0x36, 0x94, 0x10, 0xc2, //0x0000c640 .quad -4462904269766699466 + 0xe5, 0x42, 0xf5, 0x12, 0xfc, 0x15, 0x59, 0x98, //0x0000c648 .quad -7468914334623251739 + 0xc4, 0x2b, 0x7a, 0xe1, 0x43, 0xb9, 0x94, 0xf2, //0x0000c650 .quad -966944318780986428 + 0x9e, 0x93, 0xb2, 0x17, 0x7b, 0x5b, 0x6f, 0x3e, //0x0000c658 .quad 4498915137003099038 + 0x5a, 0x5b, 0xec, 0x6c, 0xca, 0xf3, 0x9c, 0x97, //0x0000c660 .quad -7521869226879198374 + 0x43, 0x9c, 0xcf, 0xee, 0x2c, 0x99, 0x05, 0xa7, //0x0000c668 .quad -6411550076227838909 + 0x31, 0x72, 0x27, 0x08, 0xbd, 0x30, 0x84, 0xbd, //0x0000c670 .quad -4790650515171610063 + 0x54, 0x83, 0x83, 0x2a, 0x78, 0xff, 0xc6, 0x50, //0x0000c678 .quad 5820620459997365076 + 0xbd, 0x4e, 0x31, 0x4a, 0xec, 0x3c, 0xe5, 0xec, //0x0000c680 .quad -1376627125537124675 + 0x29, 0x64, 0x24, 0x35, 0x56, 0xbf, 0xf8, 0xa4, //0x0000c688 .quad -6559282480285457367 + 0x36, 0xd1, 0x5e, 0xae, 0x13, 0x46, 0x0f, 0x94, //0x0000c690 .quad -7777920981101784778 + 0x9a, 0xbe, 0x36, 0xe1, 0x95, 0x77, 0x1b, 0x87, //0x0000c698 .quad -8711237568605798758 + 0x84, 0x85, 0xf6, 0x99, 0x98, 0x17, 0x13, 0xb9, //0x0000c6a0 .quad -5110715207949843068 + 0x40, 0x6e, 0x84, 0x59, 0x7b, 0x55, 0xe2, 0x28, //0x0000c6a8 .quad 2946011094524915264 + 0xe5, 0x26, 0x74, 0xc0, 0x7e, 0xdd, 0x57, 0xe7, //0x0000c6b0 .quad -1776707991509915931 + 0xd0, 0x89, 0xe5, 0x2f, 0xda, 0xea, 0x1a, 0x33, //0x0000c6b8 .quad 3682513868156144080 + 0x4f, 0x98, 0x48, 0x38, 0x6f, 0xea, 0x96, 0x90, //0x0000c6c0 .quad -8027971522334779313 + 0x22, 0x76, 0xef, 0x5d, 0xc8, 0xd2, 0xf0, 0x3f, //0x0000c6c8 .quad 4607414176811284002 + 0x63, 0xbe, 0x5a, 0x06, 0x0b, 0xa5, 0xbc, 0xb4, //0x0000c6d0 .quad -5423278384491086237 + 0xaa, 0x53, 0x6b, 0x75, 0x7a, 0x07, 0xed, 0x0f, //0x0000c6d8 .quad 1147581702586717098 + 0xfb, 0x6d, 0xf1, 0xc7, 0x4d, 0xce, 0xeb, 0xe1, //0x0000c6e0 .quad -2167411962186469893 + 0x95, 0x28, 0xc6, 0x12, 0x59, 0x49, 0xe8, 0xd3, //0x0000c6e8 .quad -3177208890193991531 + 0xbd, 0xe4, 0xf6, 0x9c, 0xf0, 0x60, 0x33, 0x8d, //0x0000c6f0 .quad -8272161504007625539 + 0x5d, 0xd9, 0xbb, 0xab, 0xd7, 0x2d, 0x71, 0x64, //0x0000c6f8 .quad 7237616480483531101 + 0xec, 0x9d, 0x34, 0xc4, 0x2c, 0x39, 0x80, 0xb0, //0x0000c700 .quad -5728515861582144020 + 0xb4, 0xcf, 0xaa, 0x96, 0x4d, 0x79, 0x8d, 0xbd, //0x0000c708 .quad -4788037454677749836 + 0x67, 0xc5, 0x41, 0xf5, 0x77, 0x47, 0xa0, 0xdc, //0x0000c710 .quad -2548958808550292121 + 0xa1, 0x83, 0x55, 0xfc, 0xa0, 0xd7, 0xf0, 0xec, //0x0000c718 .quad -1373360799919799391 + 0x60, 0x1b, 0x49, 0xf9, 0xaa, 0x2c, 0xe4, 0x89, //0x0000c720 .quad -8510628282985014432 + 0x45, 0x72, 0xb5, 0x9d, 0xc4, 0x86, 0x16, 0xf4, //0x0000c728 .quad -858350499949874619 + 0x39, 0x62, 0x9b, 0xb7, 0xd5, 0x37, 0x5d, 0xac, //0x0000c730 .quad -6026599335303880135 + 0xd6, 0xce, 0x22, 0xc5, 0x75, 0x28, 0x1c, 0x31, //0x0000c738 .quad 3538747893490044630 + 0xc7, 0x3a, 0x82, 0x25, 0xcb, 0x85, 0x74, 0xd7, //0x0000c740 .quad -2921563150702462265 + 0x8c, 0x82, 0x6b, 0x36, 0x93, 0x32, 0x63, 0x7d, //0x0000c748 .quad 9035120885289943692 + 0xbc, 0x64, 0x71, 0xf7, 0x9e, 0xd3, 0xa8, 0x86, //0x0000c750 .quad -8743505996830120772 + 0x98, 0x31, 0x03, 0x02, 0x9c, 0xff, 0x5d, 0xae, //0x0000c758 .quad -5882264492762254952 + 0xeb, 0xbd, 0x4d, 0xb5, 0x86, 0x08, 0x53, 0xa8, //0x0000c760 .quad -6317696477610263061 + 0xfd, 0xfd, 0x83, 0x02, 0x83, 0x7f, 0xf5, 0xd9, //0x0000c768 .quad -2741144597525430787 + 0x66, 0x2d, 0xa1, 0x62, 0xa8, 0xca, 0x67, 0xd2, //0x0000c770 .quad -3285434578585440922 + 0x7c, 0xfd, 0x24, 0xc3, 0x63, 0xdf, 0x72, 0xd0, //0x0000c778 .quad -3426430746906788484 + 0x60, 0xbc, 0xa4, 0x3d, 0xa9, 0xde, 0x80, 0x83, //0x0000c780 .quad -8970925639256982432 + 0x6e, 0x1e, 0xf7, 0x59, 0x9e, 0xcb, 0x47, 0x42, //0x0000c788 .quad 4776009810824339054 + 0x78, 0xeb, 0x0d, 0x8d, 0x53, 0x16, 0x61, 0xa4, //0x0000c790 .quad -6601971030643840136 + 0x09, 0xe6, 0x74, 0xf0, 0x85, 0xbe, 0xd9, 0x52, //0x0000c798 .quad 5970012263530423817 + 0x56, 0x66, 0x51, 0x70, 0xe8, 0x5b, 0x79, 0xcd, //0x0000c7a0 .quad -3640777769877412266 + 0x8c, 0x1f, 0x92, 0x6c, 0x27, 0x2e, 0x90, 0x67, //0x0000c7a8 .quad 7462515329413029772 + 0xf6, 0xdf, 0x32, 0x46, 0x71, 0xd9, 0x6b, 0x80, //0x0000c7b0 .quad -9193015133814464522 + 0xb7, 0x53, 0xdb, 0xa3, 0xd8, 0x1c, 0xba, 0x00, //0x0000c7b8 .quad 52386062455755703 + 0xf3, 0x97, 0xbf, 0x97, 0xcd, 0xcf, 0x86, 0xa0, //0x0000c7c0 .quad -6879582898840692749 + 0xa5, 0x28, 0xd2, 0xcc, 0x0e, 0xa4, 0xe8, 0x80, //0x0000c7c8 .quad -9157889458785081179 + 0xf0, 0x7d, 0xaf, 0xfd, 0xc0, 0x83, 0xa8, 0xc8, //0x0000c7d0 .quad -3987792605123478032 + 0xce, 0xb2, 0x06, 0x80, 0x12, 0xcd, 0x22, 0x61, //0x0000c7d8 .quad 6999382250228200142 + 0x6c, 0x5d, 0x1b, 0x3d, 0xb1, 0xa4, 0xd2, 0xfa, //0x0000c7e0 .quad -373054737976959636 + 0x82, 0x5f, 0x08, 0x20, 0x57, 0x80, 0x6b, 0x79, //0x0000c7e8 .quad 8749227812785250178 + 0x63, 0x1a, 0x31, 0xc6, 0xee, 0xa6, 0xc3, 0x9c, //0x0000c7f0 .quad -7150688238876681629 + 0xb1, 0x3b, 0x05, 0x74, 0x36, 0x30, 0xe3, 0xcb, //0x0000c7f8 .quad -3755104653863994447 + 0xfc, 0x60, 0xbd, 0x77, 0xaa, 0x90, 0xf4, 0xc3, //0x0000c800 .quad -4326674280168464132 + 0x9d, 0x8a, 0x06, 0x11, 0x44, 0xfc, 0xdb, 0xbe, //0x0000c808 .quad -4693880817329993059 + 0x3b, 0xb9, 0xac, 0x15, 0xd5, 0xb4, 0xf1, 0xf4, //0x0000c810 .quad -796656831783192261 + 0x45, 0x2d, 0x48, 0x15, 0x55, 0xfb, 0x92, 0xee, //0x0000c818 .quad -1255665003235103419 + 0xc5, 0xf3, 0x8b, 0x2d, 0x05, 0x11, 0x17, 0x99, //0x0000c820 .quad -7415439547505577019 + 0x4b, 0x1c, 0x4d, 0x2d, 0x15, 0xdd, 0x1b, 0x75, //0x0000c828 .quad 8438581409832836171 + 0xb6, 0xf0, 0xee, 0x78, 0x46, 0xd5, 0x5c, 0xbf, //0x0000c830 .quad -4657613415954583370 + 0x5e, 0x63, 0xa0, 0x78, 0x5a, 0xd4, 0x62, 0xd2, //0x0000c838 .quad -3286831292991118498 + 0xe4, 0xac, 0x2a, 0x17, 0x98, 0x0a, 0x34, 0xef, //0x0000c840 .quad -1210330751515841308 + 0x35, 0x7c, 0xc8, 0x16, 0x71, 0x89, 0xfb, 0x86, //0x0000c848 .quad -8720225134666286027 + 0x0e, 0xac, 0x7a, 0x0e, 0x9f, 0x86, 0x80, 0x95, //0x0000c850 .quad -7673985747338482674 + 0xa1, 0x4d, 0x3d, 0xae, 0xe6, 0x35, 0x5d, 0xd4, //0x0000c858 .quad -3144297699952734815 + 0x12, 0x57, 0x19, 0xd2, 0x46, 0xa8, 0xe0, 0xba, //0x0000c860 .quad -4980796165745715438 + 0x0a, 0xa1, 0xcc, 0x59, 0x60, 0x83, 0x74, 0x89, //0x0000c868 .quad -8542058143368306422 + 0xd7, 0xac, 0x9f, 0x86, 0x58, 0xd2, 0x98, 0xe9, //0x0000c870 .quad -1614309188754756393 + 0x4c, 0xc9, 0x3f, 0x70, 0x38, 0xa4, 0xd1, 0x2b, //0x0000c878 .quad 3157485376071780684 + 0x06, 0xcc, 0x23, 0x54, 0x77, 0x83, 0xff, 0x91, //0x0000c880 .quad -7926472270612804602 + 0xd0, 0xdd, 0x27, 0x46, 0xa3, 0x06, 0x63, 0x7b, //0x0000c888 .quad 8890957387685944784 + 0x08, 0xbf, 0x2c, 0x29, 0x55, 0x64, 0x7f, 0xb6, //0x0000c890 .quad -5296404319838617848 + 0x43, 0xd5, 0xb1, 0x17, 0x4c, 0xc8, 0x3b, 0x1a, //0x0000c898 .quad 1890324697752655171 + 0xca, 0xee, 0x77, 0x73, 0x6a, 0x3d, 0x1f, 0xe4, //0x0000c8a0 .quad -2008819381370884406 + 0x94, 0x4a, 0x9e, 0x1d, 0x5f, 0xba, 0xca, 0x20, //0x0000c8a8 .quad 2362905872190818964 + 0x3e, 0xf5, 0x2a, 0x88, 0x62, 0x86, 0x93, 0x8e, //0x0000c8b0 .quad -8173041140997884610 + 0x9d, 0xee, 0x82, 0x72, 0x7b, 0xb4, 0x7e, 0x54, //0x0000c8b8 .quad 6088502188546649757 + 0x8d, 0xb2, 0x35, 0x2a, 0xfb, 0x67, 0x38, 0xb2, //0x0000c8c0 .quad -5604615407819967859 + 0x44, 0xaa, 0x23, 0x4f, 0x9a, 0x61, 0x9e, 0xe9, //0x0000c8c8 .quad -1612744301171463612 + 0x31, 0x1f, 0xc3, 0xf4, 0xf9, 0x81, 0xc6, 0xde, //0x0000c8d0 .quad -2394083241347571919 + 0xd5, 0x94, 0xec, 0xe2, 0x00, 0xfa, 0x05, 0x64, //0x0000c8d8 .quad 7207441660390446293 + 0x7e, 0xf3, 0xf9, 0x38, 0x3c, 0x11, 0x3c, 0x8b, //0x0000c8e0 .quad -8413831053483314306 + 0x05, 0xdd, 0xd3, 0x8d, 0x40, 0xbc, 0x83, 0xde, //0x0000c8e8 .quad -2412877989897052923 + 0x5e, 0x70, 0x38, 0x47, 0x8b, 0x15, 0x0b, 0xae, //0x0000c8f0 .quad -5905602798426754978 + 0x46, 0xd4, 0x48, 0xb1, 0x50, 0xab, 0x24, 0x96, //0x0000c8f8 .quad -7627783505798704058 + 0x76, 0x8c, 0x06, 0x19, 0xee, 0xda, 0x8d, 0xd9, //0x0000c900 .quad -2770317479606055818 + 0x58, 0x09, 0x9b, 0xdd, 0x24, 0xd6, 0xad, 0x3b, //0x0000c908 .quad 4300328673033783640 + 0xc9, 0x17, 0xa4, 0xcf, 0xd4, 0xa8, 0xf8, 0x87, //0x0000c910 .quad -8648977452394866743 + 0xd7, 0xe5, 0x80, 0x0a, 0xd7, 0xa5, 0x4c, 0xe5, //0x0000c918 .quad -1923980597781273129 + 0xbc, 0x1d, 0x8d, 0x03, 0x0a, 0xd3, 0xf6, 0xa9, //0x0000c920 .quad -6199535797066195524 + 0x4d, 0x1f, 0x21, 0xcd, 0x4c, 0xcf, 0x9f, 0x5e, //0x0000c928 .quad 6818396289628184397 + 0x2b, 0x65, 0x70, 0x84, 0xcc, 0x87, 0x74, 0xd4, //0x0000c930 .quad -3137733727905356501 + 0x20, 0x67, 0x69, 0x00, 0x20, 0xc3, 0x47, 0x76, //0x0000c938 .quad 8522995362035230496 + 0x3b, 0x3f, 0xc6, 0xd2, 0xdf, 0xd4, 0xc8, 0x84, //0x0000c940 .quad -8878612607581929669 + 0x74, 0xe0, 0x41, 0x00, 0xf4, 0xd9, 0xec, 0x29, //0x0000c948 .quad 3021029092058325108 + 0x09, 0xcf, 0x77, 0xc7, 0x17, 0x0a, 0xfb, 0xa5, //0x0000c950 .quad -6486579741050024183 + 0x91, 0x58, 0x52, 0x00, 0x71, 0x10, 0x68, 0xf4, //0x0000c958 .quad -835399653354481519 + 0xcc, 0xc2, 0x55, 0xb9, 0x9d, 0xcc, 0x79, 0xcf, //0x0000c960 .quad -3496538657885142324 + 0xb5, 0xee, 0x66, 0x40, 0x8d, 0x14, 0x82, 0x71, //0x0000c968 .quad 8179122470161673909 + 0xbf, 0x99, 0xd5, 0x93, 0xe2, 0x1f, 0xac, 0x81, //0x0000c970 .quad -9102865688819295809 + 0x31, 0x55, 0x40, 0x48, 0xd8, 0x4c, 0xf1, 0xc6, //0x0000c978 .quad -4111420493003729615 + 0x2f, 0x00, 0xcb, 0x38, 0xdb, 0x27, 0x17, 0xa2, //0x0000c980 .quad -6766896092596731857 + 0x7d, 0x6a, 0x50, 0x5a, 0x0e, 0xa0, 0xad, 0xb8, //0x0000c988 .quad -5139275616254662019 + 0x3b, 0xc0, 0xfd, 0x06, 0xd2, 0xf1, 0x9c, 0xca, //0x0000c990 .quad -3846934097318526917 + 0x1d, 0x85, 0xe4, 0xf0, 0x11, 0x08, 0xd9, 0xa6, //0x0000c998 .quad -6424094520318327523 + 0x4a, 0x30, 0xbd, 0x88, 0x46, 0x2e, 0x44, 0xfd, //0x0000c9a0 .quad -196981603220770742 + 0x64, 0xa6, 0x1d, 0x6d, 0x16, 0x4a, 0x8f, 0x90, //0x0000c9a8 .quad -8030118150397909404 + 0x2e, 0x3e, 0x76, 0x15, 0xec, 0x9c, 0x4a, 0x9e, //0x0000c9b0 .quad -7040642529654063570 + 0xff, 0x87, 0x32, 0x04, 0x4e, 0x8e, 0x59, 0x9a, //0x0000c9b8 .quad -7324666853212387329 + 0xba, 0xcd, 0xd3, 0x1a, 0x27, 0x44, 0xdd, 0xc5, //0x0000c9c0 .quad -4189117143640191558 + 0xfe, 0x29, 0x3f, 0x85, 0xe1, 0xf1, 0xef, 0x40, //0x0000c9c8 .quad 4679224488766679550 + 0x28, 0xc1, 0x88, 0xe1, 0x30, 0x95, 0x54, 0xf7, //0x0000c9d0 .quad -624710411122851544 + 0x7d, 0xf4, 0x8e, 0xe6, 0x59, 0xee, 0x2b, 0xd1, //0x0000c9d8 .quad -3374341425896426371 + 0xb9, 0x78, 0xf5, 0x8c, 0x3e, 0xdd, 0x94, 0x9a, //0x0000c9e0 .quad -7307973034592864071 + 0xcf, 0x58, 0x19, 0x30, 0xf8, 0x74, 0xbb, 0x82, //0x0000c9e8 .quad -9026492418826348337 + 0xe7, 0xd6, 0x32, 0x30, 0x8e, 0x14, 0x3a, 0xc1, //0x0000c9f0 .quad -4523280274813692185 + 0x02, 0xaf, 0x1f, 0x3c, 0x36, 0x52, 0x6a, 0xe3, //0x0000c9f8 .quad -2059743486678159614 + 0xa1, 0x8c, 0x3f, 0xbc, 0xb1, 0x99, 0x88, 0xf1, //0x0000ca00 .quad -1042414325089727327 + 0xc2, 0x9a, 0x27, 0xcb, 0xc3, 0xe6, 0x44, 0xdc, //0x0000ca08 .quad -2574679358347699518 + 0xe5, 0xb7, 0xa7, 0x15, 0x0f, 0x60, 0xf5, 0x96, //0x0000ca10 .quad -7569037980822161435 + 0xba, 0xc0, 0xf8, 0x5e, 0x3a, 0x10, 0xab, 0x29, //0x0000ca18 .quad 3002511419460075706 + 0xde, 0xa5, 0x11, 0xdb, 0x12, 0xb8, 0xb2, 0xbc, //0x0000ca20 .quad -4849611457600313890 + 0xe8, 0xf0, 0xb6, 0xf6, 0x48, 0xd4, 0x15, 0x74, //0x0000ca28 .quad 8364825292752482536 + 0x56, 0x0f, 0xd6, 0x91, 0x17, 0x66, 0xdf, 0xeb, //0x0000ca30 .quad -1450328303573004458 + 0x22, 0xad, 0x64, 0x34, 0x5b, 0x49, 0x1b, 0x11, //0x0000ca38 .quad 1232659579085827362 + 0x95, 0xc9, 0x25, 0xbb, 0xce, 0x9f, 0x6b, 0x93, //0x0000ca40 .quad -7823984217374209643 + 0x35, 0xec, 0xbe, 0x00, 0xd9, 0x0d, 0xb1, 0xca, //0x0000ca48 .quad -3841273781498745803 + 0xfb, 0x3b, 0xef, 0x69, 0xc2, 0x87, 0x46, 0xb8, //0x0000ca50 .quad -5168294253290374149 + 0x43, 0xa7, 0xee, 0x40, 0x4f, 0x51, 0x5d, 0x3d, //0x0000ca58 .quad 4421779809981343555 + 0xfa, 0x0a, 0x6b, 0x04, 0xb3, 0x29, 0x58, 0xe6, //0x0000ca60 .quad -1848681798185579782 + 0x13, 0x51, 0x2a, 0x11, 0xa3, 0xa5, 0xb4, 0x0c, //0x0000ca68 .quad 915538744049291539 + 0xdc, 0xe6, 0xc2, 0xe2, 0x0f, 0x1a, 0xf7, 0x8f, //0x0000ca70 .quad -8072955151507069220 + 0xac, 0x72, 0xba, 0xea, 0x85, 0xe7, 0xf0, 0x47, //0x0000ca78 .quad 5183897733458195116 + 0x93, 0xa0, 0x73, 0xdb, 0x93, 0xe0, 0xf4, 0xb3, //0x0000ca80 .quad -5479507920956448621 + 0x57, 0x0f, 0x69, 0x65, 0x67, 0x21, 0xed, 0x59, //0x0000ca88 .quad 6479872166822743895 + 0xb8, 0x88, 0x50, 0xd2, 0xb8, 0x18, 0xf2, 0xe0, //0x0000ca90 .quad -2237698882768172872 + 0x2d, 0x53, 0xc3, 0x3e, 0xc1, 0x69, 0x68, 0x30, //0x0000ca98 .quad 3488154190101041965 + 0x73, 0x55, 0x72, 0x83, 0x73, 0x4f, 0x97, 0x8c, //0x0000caa0 .quad -8316090829371189901 + 0xfc, 0x13, 0x3a, 0xc7, 0x18, 0x42, 0x41, 0x1e, //0x0000caa8 .quad 2180096368813151228 + 0xcf, 0xea, 0x4e, 0x64, 0x50, 0x23, 0xbd, 0xaf, //0x0000cab0 .quad -5783427518286599473 + 0xfb, 0x98, 0x08, 0xf9, 0x9e, 0x92, 0xd1, 0xe5, //0x0000cab8 .quad -1886565557410948869 + 0x83, 0xa5, 0x62, 0x7d, 0x24, 0x6c, 0xac, 0xdb, //0x0000cac0 .quad -2617598379430861437 + 0x3a, 0xbf, 0x4a, 0xb7, 0x46, 0xf7, 0x45, 0xdf, //0x0000cac8 .quad -2358206946763686086 + 0x72, 0xa7, 0x5d, 0xce, 0x96, 0xc3, 0x4b, 0x89, //0x0000cad0 .quad -8553528014785370254 + 0x84, 0xb7, 0x8e, 0x32, 0x8c, 0xba, 0x8b, 0x6b, //0x0000cad8 .quad 7749492695127472004 + 0x4f, 0x11, 0xf5, 0x81, 0x7c, 0xb4, 0x9e, 0xab, //0x0000cae0 .quad -6080224000054324913 + 0x65, 0x65, 0x32, 0x3f, 0x2f, 0xa9, 0x6e, 0x06, //0x0000cae8 .quad 463493832054564197 + 0xa2, 0x55, 0x72, 0xa2, 0x9b, 0x61, 0x86, 0xd6, //0x0000caf0 .quad -2988593981640518238 + 0xbe, 0xfe, 0xfe, 0x0e, 0x7b, 0x53, 0x0a, 0xc8, //0x0000caf8 .quad -4032318728359182658 + 0x85, 0x75, 0x87, 0x45, 0x01, 0xfd, 0x13, 0x86, //0x0000cb00 .quad -8785400266166405755 + 0x37, 0x5f, 0x5f, 0xe9, 0x2c, 0x74, 0x06, 0xbd, //0x0000cb08 .quad -4826042214438183113 + 0xe7, 0x52, 0xe9, 0x96, 0x41, 0xfc, 0x98, 0xa7, //0x0000cb10 .quad -6370064314280619289 + 0x05, 0x37, 0xb7, 0x23, 0x38, 0x11, 0x48, 0x2c, //0x0000cb18 .quad 3190819268807046917 + 0xa0, 0xa7, 0xa3, 0xfc, 0x51, 0x3b, 0x7f, 0xd1, //0x0000cb20 .quad -3350894374423386208 + 0xc6, 0x04, 0xa5, 0x2c, 0x86, 0x15, 0x5a, 0xf7, //0x0000cb28 .quad -623161932418579258 + 0xc4, 0x48, 0xe6, 0x3d, 0x13, 0x85, 0xef, 0x82, //0x0000cb30 .quad -9011838011655698236 + 0xfc, 0x22, 0xe7, 0xdb, 0x73, 0x4d, 0x98, 0x9a, //0x0000cb38 .quad -7307005235402693892 + 0xf5, 0xda, 0x5f, 0x0d, 0x58, 0x66, 0xab, 0xa3, //0x0000cb40 .quad -6653111496142234891 + 0xbb, 0xeb, 0xe0, 0xd2, 0xd0, 0x60, 0x3e, 0xc1, //0x0000cb48 .quad -4522070525825979461 + 0xb3, 0xd1, 0xb7, 0x10, 0xee, 0x3f, 0x96, 0xcc, //0x0000cb50 .quad -3704703351750405709 + 0xa9, 0x26, 0x99, 0x07, 0x05, 0xf9, 0x8d, 0x31, //0x0000cb58 .quad 3570783879572301481 + 0x1f, 0xc6, 0xe5, 0x94, 0xe9, 0xcf, 0xbb, 0xff, //0x0000cb60 .quad -19193171260619233 + 0x53, 0x70, 0x7f, 0x49, 0x46, 0x77, 0xf1, 0xfd, //0x0000cb68 .quad -148206168962011053 + 0xd3, 0x9b, 0x0f, 0xfd, 0xf1, 0x61, 0xd5, 0x9f, //0x0000cb70 .quad -6929524759678968877 + 0x34, 0xa6, 0xef, 0xed, 0x8b, 0xea, 0xb6, 0xfe, //0x0000cb78 .quad -92628855601256908 + 0xc8, 0x82, 0x53, 0x7c, 0x6e, 0xba, 0xca, 0xc7, //0x0000cb80 .quad -4050219931171323192 + 0xc1, 0x8f, 0x6b, 0xe9, 0x2e, 0xa5, 0x64, 0xfe, //0x0000cb88 .quad -115786069501571135 + 0x7b, 0x63, 0x68, 0x1b, 0x0a, 0x69, 0xbd, 0xf9, //0x0000cb90 .quad -451088895536766085 + 0xb1, 0x73, 0xc6, 0xa3, 0x7a, 0xce, 0xfd, 0x3d, //0x0000cb98 .quad 4466953431550423985 + 0x2d, 0x3e, 0x21, 0x51, 0xa6, 0x61, 0x16, 0x9c, //0x0000cba0 .quad -7199459587351560659 + 0x4f, 0x08, 0x5c, 0xa6, 0x0c, 0xa1, 0xbe, 0x06, //0x0000cba8 .quad 486002885505321039 + 0xb8, 0x8d, 0x69, 0xe5, 0x0f, 0xfa, 0x1b, 0xc3, //0x0000cbb0 .quad -4387638465762062920 + 0x63, 0x0a, 0xf3, 0xcf, 0x4f, 0x49, 0x6e, 0x48, //0x0000cbb8 .quad 5219189625309039203 + 0x26, 0xf1, 0xc3, 0xde, 0x93, 0xf8, 0xe2, 0xf3, //0x0000cbc0 .quad -872862063775190746 + 0xfb, 0xcc, 0xef, 0xc3, 0xa3, 0xdb, 0x89, 0x5a, //0x0000cbc8 .quad 6523987031636299003 + 0xb7, 0x76, 0x3a, 0x6b, 0x5c, 0xdb, 0x6d, 0x98, //0x0000cbd0 .quad -7463067817500576073 + 0x1d, 0xe0, 0x75, 0x5a, 0x46, 0x29, 0x96, 0xf8, //0x0000cbd8 .quad -534194123654701027 + 0x65, 0x14, 0x09, 0x86, 0x33, 0x52, 0x89, 0xbe, //0x0000cbe0 .quad -4717148753448332187 + 0x24, 0x58, 0x13, 0xf1, 0x97, 0xb3, 0xbb, 0xf6, //0x0000cbe8 .quad -667742654568376284 + 0x7f, 0x59, 0x8b, 0x67, 0xc0, 0xa6, 0x2b, 0xee, //0x0000cbf0 .quad -1284749923383027329 + 0x2d, 0x2e, 0x58, 0xed, 0x7d, 0xa0, 0x6a, 0x74, //0x0000cbf8 .quad 8388693718644305453 + 0xef, 0x17, 0xb7, 0x40, 0x38, 0x48, 0xdb, 0x94, //0x0000cc00 .quad -7720497729755473937 + 0xdd, 0x1c, 0x57, 0xb4, 0x4e, 0xa4, 0xc2, 0xa8, //0x0000cc08 .quad -6286281471915778851 + 0xeb, 0xdd, 0xe4, 0x50, 0x46, 0x1a, 0x12, 0xba, //0x0000cc10 .quad -5038936143766954517 + 0x14, 0xe4, 0x6c, 0x61, 0x62, 0x4d, 0xf3, 0x92, //0x0000cc18 .quad -7857851839894723564 + 0x66, 0x15, 0x1e, 0xe5, 0xd7, 0xa0, 0x96, 0xe8, //0x0000cc20 .quad -1686984161281305242 + 0x18, 0x1d, 0xc8, 0xf9, 0xba, 0x20, 0xb0, 0x77, //0x0000cc28 .quad 8624429273841147160 + 0x60, 0xcd, 0x32, 0xef, 0x86, 0x24, 0x5e, 0x91, //0x0000cc30 .quad -7971894128441897632 + 0x2f, 0x12, 0x1d, 0xdc, 0x74, 0x14, 0xce, 0x0a, //0x0000cc38 .quad 778582277723329071 + 0xb8, 0x80, 0xff, 0xaa, 0xa8, 0xad, 0xb5, 0xb5, //0x0000cc40 .quad -5353181642124984136 + 0xbb, 0x56, 0x24, 0x13, 0x92, 0x99, 0x81, 0x0d, //0x0000cc48 .quad 973227847154161339 + 0xe6, 0x60, 0xbf, 0xd5, 0x12, 0x19, 0x23, 0xe3, //0x0000cc50 .quad -2079791034228842266 + 0x6a, 0x6c, 0xed, 0x97, 0xf6, 0xff, 0xe1, 0x10, //0x0000cc58 .quad 1216534808942701674 + 0x8f, 0x9c, 0x97, 0xc5, 0xab, 0xef, 0xf5, 0x8d, //0x0000cc60 .quad -8217398424034108273 + 0xc2, 0x63, 0xf4, 0x1e, 0xfa, 0x3f, 0x8d, 0xca, //0x0000cc68 .quad -3851351762838199358 + 0xb3, 0x83, 0xfd, 0xb6, 0x96, 0x6b, 0x73, 0xb1, //0x0000cc70 .quad -5660062011615247437 + 0xb3, 0x7c, 0xb1, 0xa6, 0xf8, 0x8f, 0x30, 0xbd, //0x0000cc78 .quad -4814189703547749197 + 0xa0, 0xe4, 0xbc, 0x64, 0x7c, 0x46, 0xd0, 0xdd, //0x0000cc80 .quad -2463391496091671392 + 0xdf, 0xdb, 0x5d, 0xd0, 0xf6, 0xb3, 0x7c, 0xac, //0x0000cc88 .quad -6017737129434686497 + 0xe4, 0x0e, 0xf6, 0xbe, 0x0d, 0x2c, 0xa2, 0x8a, //0x0000cc90 .quad -8457148712698376476 + 0x6c, 0xa9, 0x3a, 0x42, 0x7a, 0xf0, 0xcd, 0x6b, //0x0000cc98 .quad 7768129340171790700 + 0x9d, 0x92, 0xb3, 0x2e, 0x11, 0xb7, 0x4a, 0xad, //0x0000cca0 .quad -5959749872445582691 + 0xc7, 0x53, 0xc9, 0xd2, 0x98, 0x6c, 0xc1, 0x86, //0x0000cca8 .quad -8736582398494813241 + 0x44, 0x77, 0x60, 0x7a, 0xd5, 0x64, 0x9d, 0xd8, //0x0000ccb0 .quad -2838001322129590460 + 0xb8, 0xa8, 0x7b, 0x07, 0xbf, 0xc7, 0x71, 0xe8, //0x0000ccb8 .quad -1697355961263740744 + 0x8b, 0x4a, 0x7c, 0x6c, 0x05, 0x5f, 0x62, 0x87, //0x0000ccc0 .quad -8691279853972075893 + 0x73, 0x49, 0xad, 0x64, 0xd7, 0x1c, 0x47, 0x11, //0x0000ccc8 .quad 1244995533423855987 + 0x2d, 0x5d, 0x9b, 0xc7, 0xc6, 0xf6, 0x3a, 0xa9, //0x0000ccd0 .quad -6252413799037706963 + 0xd0, 0x9b, 0xd8, 0x3d, 0x0d, 0xe4, 0x98, 0xd5, //0x0000ccd8 .quad -3055441601647567920 + 0x79, 0x34, 0x82, 0x79, 0x78, 0xb4, 0x89, 0xd3, //0x0000cce0 .quad -3203831230369745799 + 0xc4, 0xc2, 0x4e, 0x8d, 0x10, 0x1d, 0xff, 0x4a, //0x0000cce8 .quad 5404070034795315908 + 0xcb, 0x60, 0xf1, 0x4b, 0xcb, 0x10, 0x36, 0x84, //0x0000ccf0 .quad -8919923546622172981 + 0xbb, 0x39, 0x51, 0x58, 0x2a, 0x72, 0xdf, 0xce, //0x0000ccf8 .quad -3539985255894009413 + 0xfe, 0xb8, 0xed, 0x1e, 0xfe, 0x94, 0x43, 0xa5, //0x0000cd00 .quad -6538218414850328322 + 0x29, 0x88, 0x65, 0xee, 0xb4, 0x4e, 0x97, 0xc2, //0x0000cd08 .quad -4424981569867511767 + 0x3e, 0x27, 0xa9, 0xa6, 0x3d, 0x7a, 0x94, 0xce, //0x0000cd10 .quad -3561087000135522498 + 0x33, 0xea, 0xfe, 0x29, 0x62, 0x22, 0x3d, 0x73, //0x0000cd18 .quad 8303831092947774003 + 0x87, 0xb8, 0x29, 0x88, 0x66, 0xcc, 0x1c, 0x81, //0x0000cd20 .quad -9143208402725783417 + 0x60, 0x52, 0x3f, 0x5a, 0x7d, 0x35, 0x06, 0x08, //0x0000cd28 .quad 578208414664970848 + 0xa8, 0x26, 0x34, 0x2a, 0x80, 0xff, 0x63, 0xa1, //0x0000cd30 .quad -6817324484979841368 + 0xf8, 0x26, 0xcf, 0xb0, 0xdc, 0xc2, 0x07, 0xca, //0x0000cd38 .quad -3888925500096174344 + 0x52, 0x30, 0xc1, 0x34, 0x60, 0xff, 0xbc, 0xc9, //0x0000cd40 .quad -3909969587797413806 + 0xb6, 0xf0, 0x02, 0xdd, 0x93, 0xb3, 0x89, 0xfc, //0x0000cd48 .quad -249470856692830026 + 0x67, 0x7c, 0xf1, 0x41, 0x38, 0x3f, 0x2c, 0xfc, //0x0000cd50 .quad -275775966319379353 + 0xe3, 0xac, 0x43, 0xd4, 0x78, 0x20, 0xac, 0xbb, //0x0000cd58 .quad -4923524589293425437 + 0xc0, 0xed, 0x36, 0x29, 0x83, 0xa7, 0x9b, 0x9d, //0x0000cd60 .quad -7089889006590693952 + 0x0e, 0x4c, 0xaa, 0x84, 0x4b, 0x94, 0x4b, 0xd5, //0x0000cd68 .quad -3077202868308390898 + 0x31, 0xa9, 0x84, 0xf3, 0x63, 0x91, 0x02, 0xc5, //0x0000cd70 .quad -4250675239810979535 + 0x12, 0xdf, 0xd4, 0x65, 0x5e, 0x79, 0x9e, 0x0a, //0x0000cd78 .quad 765182433041899282 + 0x7d, 0xd3, 0x65, 0xf0, 0xbc, 0x35, 0x43, 0xf6, //0x0000cd80 .quad -701658031336336515 + 0xd6, 0x16, 0x4a, 0xff, 0xb5, 0x17, 0x46, 0x4d, //0x0000cd88 .quad 5568164059729762006 + 0x2e, 0xa4, 0x3f, 0x16, 0x96, 0x01, 0xea, 0x99, //0x0000cd90 .quad -7356065297226292178 + 0x46, 0x4e, 0x8e, 0xbf, 0xd1, 0xce, 0x4b, 0x50, //0x0000cd98 .quad 5785945546544795206 + 0x39, 0x8d, 0xcf, 0x9b, 0xfb, 0x81, 0x64, 0xc0, //0x0000cda0 .quad -4583395603105477319 + 0xd7, 0xe1, 0x71, 0x2f, 0x86, 0xc2, 0x5e, 0xe4, //0x0000cda8 .quad -1990940103673781801 + 0x88, 0x70, 0xc3, 0x82, 0x7a, 0xa2, 0x7d, 0xf0, //0x0000cdb0 .quad -1117558485454458744 + 0x4d, 0x5a, 0x4e, 0xbb, 0x27, 0x73, 0x76, 0x5d, //0x0000cdb8 .quad 6734696907262548557 + 0x55, 0x26, 0xba, 0x91, 0x8c, 0x85, 0x4e, 0x96, //0x0000cdc0 .quad -7616003081050118571 + 0x70, 0xf8, 0x10, 0xd5, 0xf8, 0x07, 0x6a, 0x3a, //0x0000cdc8 .quad 4209185567039092848 + 0xea, 0xaf, 0x28, 0xb6, 0xef, 0x26, 0xe2, 0xbb, //0x0000cdd0 .quad -4908317832885260310 + 0x8c, 0x36, 0x55, 0x0a, 0xf7, 0x89, 0x04, 0x89, //0x0000cdd8 .quad -8573576096483297652 + 0xe5, 0xdb, 0xb2, 0xa3, 0xab, 0xb0, 0xda, 0xea, //0x0000cde0 .quad -1523711272679187483 + 0x2f, 0x84, 0xea, 0xcc, 0x74, 0xac, 0x45, 0x2b, //0x0000cde8 .quad 3118087934678041647 + 0x6f, 0xc9, 0x4f, 0x46, 0x6b, 0xae, 0xc8, 0x92, //0x0000cdf0 .quad -7869848573065574033 + 0x9e, 0x92, 0x12, 0x00, 0xc9, 0x8b, 0x0b, 0x3b, //0x0000cdf8 .quad 4254647968387469982 + 0xcb, 0xbb, 0xe3, 0x17, 0x06, 0xda, 0x7a, 0xb7, //0x0000ce00 .quad -5225624697904579637 + 0x45, 0x37, 0x17, 0x40, 0xbb, 0x6e, 0xce, 0x09, //0x0000ce08 .quad 706623942056949573 + 0xbd, 0xaa, 0xdc, 0x9d, 0x87, 0x90, 0x59, 0xe5, //0x0000ce10 .quad -1920344853953336643 + 0x16, 0x05, 0x1d, 0x10, 0x6a, 0x0a, 0x42, 0xcc, //0x0000ce18 .quad -3728406090856200938 + 0xb6, 0xea, 0xa9, 0xc2, 0x54, 0xfa, 0x57, 0x8f, //0x0000ce20 .quad -8117744561361917258 + 0x2e, 0x23, 0x12, 0x4a, 0x82, 0x46, 0xa9, 0x9f, //0x0000ce28 .quad -6941939825212513490 + 0x64, 0x65, 0x54, 0xf3, 0xe9, 0xf8, 0x2d, 0xb3, //0x0000ce30 .quad -5535494683275008668 + 0xfa, 0xab, 0x96, 0xdc, 0x22, 0x98, 0x93, 0x47, //0x0000ce38 .quad 5157633273766521850 + 0xbd, 0x7e, 0x29, 0x70, 0x24, 0x77, 0xf9, 0xdf, //0x0000ce40 .quad -2307682335666372931 + 0xf8, 0x56, 0xbc, 0x93, 0x2b, 0x7e, 0x78, 0x59, //0x0000ce48 .quad 6447041592208152312 + 0x36, 0xef, 0x19, 0xc6, 0x76, 0xea, 0xfb, 0x8b, //0x0000ce50 .quad -8359830487432564938 + 0x5b, 0xb6, 0x55, 0x3c, 0xdb, 0x4e, 0xeb, 0x57, //0x0000ce58 .quad 6335244004343789147 + 0x03, 0x6b, 0xa0, 0x77, 0x14, 0xe5, 0xfa, 0xae, //0x0000ce60 .quad -5838102090863318269 + 0xf2, 0x23, 0x6b, 0x0b, 0x92, 0x22, 0xe6, 0xed, //0x0000ce68 .quad -1304317031425039374 + 0xc4, 0x85, 0x88, 0x95, 0x59, 0x9e, 0xb9, 0xda, //0x0000ce70 .quad -2685941595151759932 + 0xee, 0xec, 0x45, 0x8e, 0x36, 0xab, 0x5f, 0xe9, //0x0000ce78 .quad -1630396289281299218 + 0x9b, 0x53, 0x75, 0xfd, 0xf7, 0x02, 0xb4, 0x88, //0x0000ce80 .quad -8596242524610931813 + 0x15, 0xb4, 0xeb, 0x18, 0x02, 0xcb, 0xdb, 0x11, //0x0000ce88 .quad 1286845328412881941 + 0x81, 0xa8, 0xd2, 0xfc, 0xb5, 0x03, 0xe1, 0xaa, //0x0000ce90 .quad -6133617137336276863 + 0x1a, 0xa1, 0x26, 0x9f, 0xc2, 0xbd, 0x52, 0xd6, //0x0000ce98 .quad -3003129357911285478 + 0xa2, 0x52, 0x07, 0x7c, 0xa3, 0x44, 0x99, 0xd5, //0x0000cea0 .quad -3055335403242958174 + 0x60, 0x49, 0xf0, 0x46, 0x33, 0x6d, 0xe7, 0x4b, //0x0000cea8 .quad 5469460339465668960 + 0xa5, 0x93, 0x84, 0x2d, 0xe6, 0xca, 0x7f, 0x85, //0x0000ceb0 .quad -8827113654667930715 + 0xdc, 0x2d, 0x56, 0x0c, 0x40, 0xa4, 0x70, 0x6f, //0x0000ceb8 .quad 8030098730593431004 + 0x8e, 0xb8, 0xe5, 0xb8, 0x9f, 0xbd, 0xdf, 0xa6, //0x0000cec0 .quad -6422206049907525490 + 0x53, 0xb9, 0x6b, 0x0f, 0x50, 0xcd, 0x4c, 0xcb, //0x0000cec8 .quad -3797434642040374957 + 0xb2, 0x26, 0x1f, 0xa7, 0x07, 0xad, 0x97, 0xd0, //0x0000ced0 .quad -3416071543957018958 + 0xa8, 0xa7, 0x46, 0x13, 0xa4, 0x00, 0x20, 0x7e, //0x0000ced8 .quad 9088264752731695016 + 0x2f, 0x78, 0x73, 0xc8, 0x24, 0xcc, 0x5e, 0x82, //0x0000cee0 .quad -9052573742614218705 + 0xc9, 0x28, 0x0c, 0x8c, 0x66, 0x00, 0xd4, 0x8e, //0x0000cee8 .quad -8154892584824854327 + 0x3b, 0x56, 0x90, 0xfa, 0x2d, 0x7f, 0xf6, 0xa2, //0x0000cef0 .quad -6704031159840385477 + 0xfb, 0x32, 0x0f, 0x2f, 0x80, 0x00, 0x89, 0x72, //0x0000cef8 .quad 8253128342678483707 + 0xca, 0x6b, 0x34, 0x79, 0xf9, 0x1e, 0xb4, 0xcb, //0x0000cf00 .quad -3768352931373093942 + 0xba, 0xff, 0xd2, 0x3a, 0xa0, 0x40, 0x2b, 0x4f, //0x0000cf08 .quad 5704724409920716730 + 0xbc, 0x86, 0x81, 0xd7, 0xb7, 0x26, 0xa1, 0xfe, //0x0000cf10 .quad -98755145788979524 + 0xa9, 0xbf, 0x87, 0x49, 0xc8, 0x10, 0xf6, 0xe2, //0x0000cf18 .quad -2092466524453879895 + 0x36, 0xf4, 0xb0, 0xe6, 0x32, 0xb8, 0x24, 0x9f, //0x0000cf20 .quad -6979250993759194058 + 0xca, 0xd7, 0xf4, 0x2d, 0x7d, 0xca, 0xd9, 0x0d, //0x0000cf28 .quad 998051431430019018 + 0x43, 0x31, 0x5d, 0xa0, 0x3f, 0xe6, 0xed, 0xc6, //0x0000cf30 .quad -4112377723771604669 + 0xbc, 0x0d, 0x72, 0x79, 0x1c, 0x3d, 0x50, 0x91, //0x0000cf38 .quad -7975807747567252036 + 0x94, 0x7d, 0x74, 0x88, 0xcf, 0x5f, 0xa9, 0xf8, //0x0000cf40 .quad -528786136287117932 + 0x2b, 0x91, 0xce, 0x97, 0x63, 0x4c, 0xa4, 0x75, //0x0000cf48 .quad 8476984389250486571 + 0x7c, 0xce, 0x48, 0xb5, 0xe1, 0xdb, 0x69, 0x9b, //0x0000cf50 .quad -7248020362820530564 + 0xbb, 0x1a, 0xe1, 0x3e, 0xbe, 0xaf, 0x86, 0xc9, //0x0000cf58 .quad -3925256793573221701 + 0x1b, 0x02, 0x9b, 0x22, 0xda, 0x52, 0x44, 0xc2, //0x0000cf60 .quad -4448339435098275301 + 0x69, 0x61, 0x99, 0xce, 0xad, 0x5b, 0xe8, 0xfb, //0x0000cf68 .quad -294884973539139223 + 0xa2, 0xc2, 0x41, 0xab, 0x90, 0x67, 0xd5, 0xf2, //0x0000cf70 .quad -948738275445456222 + 0xc4, 0xb9, 0x3f, 0x42, 0x99, 0x72, 0xe2, 0xfa, //0x0000cf78 .quad -368606216923924028 + 0xa5, 0x19, 0x09, 0x6b, 0xba, 0x60, 0xc5, 0x97, //0x0000cf80 .quad -7510490449794491995 + 0x1b, 0xd4, 0x67, 0xc9, 0x9f, 0x87, 0xcd, 0xdc, //0x0000cf88 .quad -2536221894791146469 + 0x0f, 0x60, 0xcb, 0x05, 0xe9, 0xb8, 0xb6, 0xbd, //0x0000cf90 .quad -4776427043815727089 + 0x21, 0xc9, 0xc1, 0xbb, 0x87, 0xe9, 0x00, 0x54, //0x0000cf98 .quad 6053094668365842721 + 0x13, 0x38, 0x3e, 0x47, 0x23, 0x67, 0x24, 0xed, //0x0000cfa0 .quad -1358847786342270957 + 0x69, 0x3b, 0xb2, 0xaa, 0xe9, 0x23, 0x01, 0x29, //0x0000cfa8 .quad 2954682317029915497 + 0x0b, 0xe3, 0x86, 0x0c, 0x76, 0xc0, 0x36, 0x94, //0x0000cfb0 .quad -7766808894105001205 + 0x22, 0x65, 0xaf, 0x0a, 0x72, 0xb6, 0xa0, 0xf9, //0x0000cfb8 .quad -459166561069996766 + 0xce, 0x9b, 0xa8, 0x8f, 0x93, 0x70, 0x44, 0xb9, //0x0000cfc0 .quad -5096825099203863602 + 0x6a, 0x3e, 0x5b, 0x8d, 0x0e, 0xe4, 0x08, 0xf8, //0x0000cfc8 .quad -573958201337495958 + 0xc2, 0xc2, 0x92, 0x73, 0xb8, 0x8c, 0x95, 0xe7, //0x0000cfd0 .quad -1759345355577441598 + 0x05, 0x0e, 0xb2, 0x30, 0x12, 0x1d, 0x0b, 0xb6, //0x0000cfd8 .quad -5329133770099257851 + 0xb9, 0xb9, 0x3b, 0x48, 0xf3, 0x77, 0xbd, 0x90, //0x0000cfe0 .quad -8017119874876982855 + 0xc3, 0x48, 0x6f, 0x5e, 0x2b, 0xf2, 0xc6, 0xb1, //0x0000cfe8 .quad -5636551615525730109 + 0x28, 0xa8, 0x4a, 0x1a, 0xf0, 0xd5, 0xec, 0xb4, //0x0000cff0 .quad -5409713825168840664 + 0xf4, 0x1a, 0x0b, 0x36, 0xb6, 0xae, 0x38, 0x1e, //0x0000cff8 .quad 2177682517447613172 + 0x32, 0x52, 0xdd, 0x20, 0x6c, 0x0b, 0x28, 0xe2, //0x0000d000 .quad -2150456263033662926 + 0xb1, 0xe1, 0x8d, 0xc3, 0x63, 0xda, 0xc6, 0x25, //0x0000d008 .quad 2722103146809516465 + 0x5f, 0x53, 0x8a, 0x94, 0x23, 0x07, 0x59, 0x8d, //0x0000d010 .quad -8261564192037121185 + 0x0f, 0xad, 0x38, 0x5a, 0x7e, 0x48, 0x9c, 0x57, //0x0000d018 .quad 6313000485183335695 + 0x37, 0xe8, 0xac, 0x79, 0xec, 0x48, 0xaf, 0xb0, //0x0000d020 .quad -5715269221619013577 + 0x52, 0xd8, 0xc6, 0xf0, 0x9d, 0x5a, 0x83, 0x2d, //0x0000d028 .quad 3279564588051781714 + 0x44, 0x22, 0x18, 0x98, 0x27, 0x1b, 0xdb, 0xdc, //0x0000d030 .quad -2532400508596379068 + 0x66, 0x8e, 0xf8, 0x6c, 0x45, 0x31, 0xe4, 0xf8, //0x0000d038 .quad -512230283362660762 + 0x6b, 0x15, 0x0f, 0xbf, 0xf8, 0xf0, 0x08, 0x8a, //0x0000d040 .quad -8500279345513818773 + 0x00, 0x59, 0x1b, 0x64, 0xcb, 0x9e, 0x8e, 0x1b, //0x0000d048 .quad 1985699082112030976 + 0xc5, 0xda, 0xd2, 0xee, 0x36, 0x2d, 0x8b, 0xac, //0x0000d050 .quad -6013663163464885563 + 0x40, 0x2f, 0x22, 0x3d, 0x7e, 0x46, 0x72, 0xe2, //0x0000d058 .quad -2129562165787349184 + 0x77, 0x91, 0x87, 0xaa, 0x84, 0xf8, 0xad, 0xd7, //0x0000d060 .quad -2905392935903719049 + 0x10, 0xbb, 0x6a, 0xcc, 0x1d, 0xd8, 0x0e, 0x5b, //0x0000d068 .quad 6561419329620589328 + 0xea, 0xba, 0x94, 0xea, 0x52, 0xbb, 0xcc, 0x86, //0x0000d070 .quad -8733399612580906262 + 0xea, 0xb4, 0xc2, 0x9f, 0x12, 0x47, 0xe9, 0x98, //0x0000d078 .quad -7428327965055601430 + 0xa5, 0xe9, 0x39, 0xa5, 0x27, 0xea, 0x7f, 0xa8, //0x0000d080 .quad -6305063497298744923 + 0x25, 0x62, 0xb3, 0x47, 0xd7, 0x98, 0x23, 0x3f, //0x0000d088 .quad 4549648098962661925 + 0x0e, 0x64, 0x88, 0x8e, 0xb1, 0xe4, 0x9f, 0xd2, //0x0000d090 .quad -3269643353196043250 + 0xae, 0x3a, 0xa0, 0x19, 0x0d, 0x7f, 0xec, 0x8e, //0x0000d098 .quad -8147997931578836306 + 0x89, 0x3e, 0x15, 0xf9, 0xee, 0xee, 0xa3, 0x83, //0x0000d0a0 .quad -8961056123388608887 + 0xad, 0x24, 0x04, 0x30, 0x68, 0xcf, 0x53, 0x19, //0x0000d0a8 .quad 1825030320404309165 + 0x2b, 0x8e, 0x5a, 0xb7, 0xaa, 0xea, 0x8c, 0xa4, //0x0000d0b0 .quad -6589634135808373205 + 0xd8, 0x2d, 0x05, 0x3c, 0x42, 0xc3, 0xa8, 0x5f, //0x0000d0b8 .quad 6892973918932774360 + 0xb6, 0x31, 0x31, 0x65, 0x55, 0x25, 0xb0, 0xcd, //0x0000d0c0 .quad -3625356651333078602 + 0x4e, 0x79, 0x06, 0xcb, 0x12, 0xf4, 0x92, 0x37, //0x0000d0c8 .quad 4004531380238580046 + 0x11, 0xbf, 0x3e, 0x5f, 0x55, 0x17, 0x8e, 0x80, //0x0000d0d0 .quad -9183376934724255983 + 0xd1, 0x0b, 0xe4, 0xbe, 0x8b, 0xd8, 0xbb, 0xe2, //0x0000d0d8 .quad -2108853905778275375 + 0xd6, 0x6e, 0x0e, 0xb7, 0x2a, 0x9d, 0xb1, 0xa0, //0x0000d0e0 .quad -6867535149977932074 + 0xc5, 0x0e, 0x9d, 0xae, 0xae, 0xce, 0x6a, 0x5b, //0x0000d0e8 .quad 6587304654631931589 + 0x8b, 0x0a, 0xd2, 0x64, 0x75, 0x04, 0xde, 0xc8, //0x0000d0f0 .quad -3972732919045027189 + 0x76, 0x52, 0x44, 0x5a, 0x5a, 0x82, 0x45, 0xf2, //0x0000d0f8 .quad -989241218564861322 + 0x2e, 0x8d, 0x06, 0xbe, 0x92, 0x85, 0x15, 0xfb, //0x0000d100 .quad -354230130378896082 + 0x13, 0x67, 0xd5, 0xf0, 0xf0, 0xe2, 0xd6, 0xee, //0x0000d108 .quad -1236551523206076653 + 0x3d, 0x18, 0xc4, 0xb6, 0x7b, 0x73, 0xed, 0x9c, //0x0000d110 .quad -7138922859127891907 + 0x6c, 0x60, 0x85, 0x96, 0xd6, 0x4d, 0x46, 0x55, //0x0000d118 .quad 6144684325637283948 + 0x4c, 0x1e, 0x75, 0xa4, 0x5a, 0xd0, 0x28, 0xc4, //0x0000d120 .quad -4311967555482476980 + 0x87, 0xb8, 0x26, 0x3c, 0x4c, 0xe1, 0x97, 0xaa, //0x0000d128 .quad -6154202648235558777 + 0xdf, 0x65, 0x92, 0x4d, 0x71, 0x04, 0x33, 0xf5, //0x0000d130 .quad -778273425925708321 + 0xa9, 0x66, 0x30, 0x4b, 0x9f, 0xd9, 0x3d, 0xd5, //0x0000d138 .quad -3081067291867060567 + 0xab, 0x7f, 0x7b, 0xd0, 0xc6, 0xe2, 0x3f, 0x99, //0x0000d140 .quad -7403949918844649557 + 0x2a, 0x40, 0xfe, 0x8e, 0x03, 0xa8, 0x46, 0xe5, //0x0000d148 .quad -1925667057416912854 + 0x96, 0x5f, 0x9a, 0x84, 0x78, 0xdb, 0x8f, 0xbf, //0x0000d150 .quad -4643251380128424042 + 0x34, 0xd0, 0xbd, 0x72, 0x04, 0x52, 0x98, 0xde, //0x0000d158 .quad -2407083821771141068 + 0x7c, 0xf7, 0xc0, 0xa5, 0x56, 0xd2, 0x73, 0xef, //0x0000d160 .quad -1192378206733142148 + 0x41, 0x44, 0x6d, 0x8f, 0x85, 0x66, 0x3e, 0x96, //0x0000d168 .quad -7620540795641314239 + 0xad, 0x9a, 0x98, 0x27, 0x76, 0x63, 0xa8, 0x95, //0x0000d170 .quad -7662765406849295699 + 0xa9, 0x4a, 0xa4, 0x79, 0x13, 0x00, 0xe7, 0xdd, //0x0000d178 .quad -2456994988062127447 + 0x59, 0xc1, 0x7e, 0xb1, 0x53, 0x7c, 0x12, 0xbb, //0x0000d180 .quad -4966770740134231719 + 0x53, 0x5d, 0x0d, 0x58, 0x18, 0xc0, 0x60, 0x55, //0x0000d188 .quad 6152128301777116499 + 0xaf, 0x71, 0xde, 0x9d, 0x68, 0x1b, 0xd7, 0xe9, //0x0000d190 .quad -1596777406740401745 + 0xa7, 0xb4, 0x10, 0x6e, 0x1e, 0xf0, 0xb8, 0xaa, //0x0000d198 .quad -6144897678060768089 + 0x0d, 0x07, 0xab, 0x62, 0x21, 0x71, 0x26, 0x92, //0x0000d1a0 .quad -7915514906853832947 + 0xe9, 0x70, 0xca, 0x04, 0x13, 0x96, 0xb3, 0xca, //0x0000d1a8 .quad -3840561048787980055 + 0xd1, 0xc8, 0x55, 0xbb, 0x69, 0x0d, 0xb0, 0xb6, //0x0000d1b0 .quad -5282707615139903279 + 0x23, 0x0d, 0xfd, 0xc5, 0x97, 0x7b, 0x60, 0x3d, //0x0000d1b8 .quad 4422670725869800739 + 0x05, 0x3b, 0x2b, 0x2a, 0xc4, 0x10, 0x5c, 0xe4, //0x0000d1c0 .quad -1991698500497491195 + 0x6b, 0x50, 0x7c, 0xb7, 0x7d, 0x9a, 0xb8, 0x8c, //0x0000d1c8 .quad -8306719647944912789 + 0xe3, 0x04, 0x5b, 0x9a, 0x7a, 0x8a, 0xb9, 0x8e, //0x0000d1d0 .quad -8162340590452013853 + 0x43, 0xb2, 0xad, 0x92, 0x8e, 0x60, 0xf3, 0x77, //0x0000d1d8 .quad 8643358275316593219 + 0x1c, 0xc6, 0xf1, 0x40, 0x19, 0xed, 0x67, 0xb2, //0x0000d1e0 .quad -5591239719637629412 + 0xd4, 0x1e, 0x59, 0x37, 0xb2, 0x38, 0xf0, 0x55, //0x0000d1e8 .quad 6192511825718353620 + 0xa3, 0x37, 0x2e, 0x91, 0x5f, 0xe8, 0x01, 0xdf, //0x0000d1f0 .quad -2377363631119648861 + 0x89, 0x66, 0x2f, 0xc5, 0xde, 0x46, 0x6c, 0x6b, //0x0000d1f8 .quad 7740639782147942025 + 0xc6, 0xe2, 0xbc, 0xba, 0x3b, 0x31, 0x61, 0x8b, //0x0000d200 .quad -8403381297090862394 + 0x16, 0xa0, 0x3d, 0x3b, 0x4b, 0xac, 0x23, 0x23, //0x0000d208 .quad 2532056854628769814 + 0x77, 0x1b, 0x6c, 0xa9, 0x8a, 0x7d, 0x39, 0xae, //0x0000d210 .quad -5892540602936190089 + 0x1b, 0x08, 0x0d, 0x0a, 0x5e, 0x97, 0xec, 0xab, //0x0000d218 .quad -6058300968568813541 + 0x55, 0x22, 0xc7, 0x53, 0xed, 0xdc, 0xc7, 0xd9, //0x0000d220 .quad -2753989735242849707 + 0x22, 0x4a, 0x90, 0x8c, 0x35, 0xbd, 0xe7, 0x96, //0x0000d228 .quad -7572876210711016926 + 0x75, 0x75, 0x5c, 0x54, 0x14, 0xea, 0x1c, 0x88, //0x0000d230 .quad -8638772612167862923 + 0x55, 0x2e, 0xda, 0x77, 0x41, 0xd6, 0x50, 0x7e, //0x0000d238 .quad 9102010423587778133 + 0xd2, 0x92, 0x73, 0x69, 0x99, 0x24, 0x24, 0xaa, //0x0000d240 .quad -6186779746782440750 + 0xea, 0xb9, 0xd0, 0xd5, 0xd1, 0x0b, 0xe5, 0xdd, //0x0000d248 .quad -2457545025797441046 + 0x87, 0x77, 0xd0, 0xc3, 0xbf, 0x2d, 0xad, 0xd4, //0x0000d250 .quad -3121788665050663033 + 0x65, 0xe8, 0x44, 0x4b, 0xc6, 0x4e, 0x5e, 0x95, //0x0000d258 .quad -7683617300674189211 + 0xb4, 0x4a, 0x62, 0xda, 0x97, 0x3c, 0xec, 0x84, //0x0000d260 .quad -8868646943297746252 + 0x3f, 0x11, 0x0b, 0xef, 0x3b, 0xf1, 0x5a, 0xbd, //0x0000d268 .quad -4802260812921368257 + 0x61, 0xdd, 0xfa, 0xd0, 0xbd, 0x4b, 0x27, 0xa6, //0x0000d270 .quad -6474122660694794911 + 0x8f, 0xd5, 0xcd, 0xea, 0x8a, 0xad, 0xb1, 0xec, //0x0000d278 .quad -1391139997724322417 + 0xba, 0x94, 0x39, 0x45, 0xad, 0x1e, 0xb1, 0xcf, //0x0000d280 .quad -3480967307441105734 + 0xf3, 0x4a, 0x81, 0xa5, 0xed, 0x18, 0xde, 0x67, //0x0000d288 .quad 7484447039699372787 + 0xf4, 0xfc, 0x43, 0x4b, 0x2c, 0xb3, 0xce, 0x81, //0x0000d290 .quad -9093133594791772940 + 0xd8, 0xce, 0x70, 0x87, 0x94, 0xcf, 0xea, 0x80, //0x0000d298 .quad -9157278655470055720 + 0x31, 0xfc, 0x14, 0x5e, 0xf7, 0x5f, 0x42, 0xa2, //0x0000d2a0 .quad -6754730975062328271 + 0x8e, 0x02, 0x4d, 0xa9, 0x79, 0x83, 0x25, 0xa1, //0x0000d2a8 .quad -6834912300910181746 + 0x3e, 0x3b, 0x9a, 0x35, 0xf5, 0xf7, 0xd2, 0xca, //0x0000d2b0 .quad -3831727700400522434 + 0x31, 0x43, 0xa0, 0x13, 0x58, 0xe4, 0x6e, 0x09, //0x0000d2b8 .quad 679731660717048625 + 0x0d, 0xca, 0x00, 0x83, 0xf2, 0xb5, 0x87, 0xfd, //0x0000d2c0 .quad -177973607073265139 + 0xfd, 0x53, 0x88, 0x18, 0x6e, 0x9d, 0xca, 0x8b, //0x0000d2c8 .quad -8373707460958465027 + 0x48, 0x7e, 0xe0, 0x91, 0xb7, 0xd1, 0x74, 0x9e, //0x0000d2d0 .quad -7028762532061872568 + 0x7e, 0x34, 0x55, 0xcf, 0x64, 0xa2, 0x5e, 0x77, //0x0000d2d8 .quad 8601490892183123070 + 0xda, 0x9d, 0x58, 0x76, 0x25, 0x06, 0x12, 0xc6, //0x0000d2e0 .quad -4174267146649952806 + 0x9e, 0x81, 0x2a, 0x03, 0xfe, 0x4a, 0x36, 0x95, //0x0000d2e8 .quad -7694880458480647778 + 0x51, 0xc5, 0xee, 0xd3, 0xae, 0x87, 0x96, 0xf7, //0x0000d2f0 .quad -606147914885053103 + 0x05, 0x22, 0xf5, 0x83, 0xbd, 0xdd, 0x83, 0x3a, //0x0000d2f8 .quad 4216457482181353989 + 0x52, 0x3b, 0x75, 0x44, 0xcd, 0x14, 0xbe, 0x9a, //0x0000d300 .quad -7296371474444240046 + 0x43, 0x35, 0x79, 0x72, 0x96, 0x6a, 0x92, 0xc4, //0x0000d308 .quad -4282243101277735613 + 0x27, 0x8a, 0x92, 0x95, 0x00, 0x9a, 0x6d, 0xc1, //0x0000d310 .quad -4508778324627912153 + 0x94, 0x82, 0x17, 0x0f, 0x3c, 0x05, 0xb7, 0x75, //0x0000d318 .quad 8482254178684994196 + 0xb1, 0x2c, 0xf7, 0xba, 0x80, 0x00, 0xc9, 0xf1, //0x0000d320 .quad -1024286887357502287 + 0x39, 0x63, 0xdd, 0x12, 0x8b, 0xc6, 0x24, 0x53, //0x0000d328 .quad 5991131704928854841 + 0xee, 0x7b, 0xda, 0x74, 0x50, 0xa0, 0x1d, 0x97, //0x0000d330 .quad -7557708332239520786 + 0x04, 0x5e, 0xca, 0xeb, 0x16, 0xfc, 0xf6, 0xd3, //0x0000d338 .quad -3173071712060547580 + 0xea, 0x1a, 0x11, 0x92, 0x64, 0x08, 0xe5, 0xbc, //0x0000d340 .quad -4835449396872013078 + 0x85, 0xf5, 0xbc, 0xa6, 0x1c, 0xbb, 0xf4, 0x88, //0x0000d348 .quad -8578025658503072379 + 0xa5, 0x61, 0x95, 0xb6, 0x7d, 0x4a, 0x1e, 0xec, //0x0000d350 .quad -1432625727662628443 + 0xe6, 0x32, 0x6c, 0xd0, 0xe3, 0xe9, 0x31, 0x2b, //0x0000d358 .quad 3112525982153323238 + 0x07, 0x5d, 0x1d, 0x92, 0x8e, 0xee, 0x92, 0x93, //0x0000d360 .quad -7812920107430224633 + 0xd0, 0x9f, 0x43, 0x62, 0x2e, 0x32, 0xff, 0x3a, //0x0000d368 .quad 4251171748059520976 + 0x49, 0xb4, 0xa4, 0x36, 0x32, 0xaa, 0x77, 0xb8, //0x0000d370 .quad -5154464115860392887 + 0xc3, 0x87, 0xd4, 0xfa, 0xb9, 0xfe, 0xbe, 0x09, //0x0000d378 .quad 702278666647013315 + 0x5b, 0xe1, 0x4d, 0xc4, 0xbe, 0x94, 0x95, 0xe6, //0x0000d380 .quad -1831394126398103205 + 0xb4, 0xa9, 0x89, 0x79, 0x68, 0xbe, 0x2e, 0x4c, //0x0000d388 .quad 5489534351736154548 + 0xd9, 0xac, 0xb0, 0x3a, 0xf7, 0x7c, 0x1d, 0x90, //0x0000d390 .quad -8062150356639896359 + 0x11, 0x0a, 0xf6, 0x4b, 0x01, 0x37, 0x9d, 0x0f, //0x0000d398 .quad 1125115960621402641 + 0x0f, 0xd8, 0x5c, 0x09, 0x35, 0xdc, 0x24, 0xb4, //0x0000d3a0 .quad -5466001927372482545 + 0x95, 0x8c, 0xf3, 0x9e, 0xc1, 0x84, 0x84, 0x53, //0x0000d3a8 .quad 6018080969204141205 + 0x13, 0x0e, 0xb4, 0x4b, 0x42, 0x13, 0x2e, 0xe1, //0x0000d3b0 .quad -2220816390788215277 + 0xba, 0x6f, 0xb0, 0x06, 0xf2, 0xa5, 0x65, 0x28, //0x0000d3b8 .quad 2910915193077788602 + 0xcb, 0x88, 0x50, 0x6f, 0x09, 0xcc, 0xbc, 0x8c, //0x0000d3c0 .quad -8305539271883716405 + 0xd4, 0x45, 0x2e, 0x44, 0xb7, 0x87, 0x3f, 0xf9, //0x0000d3c8 .quad -486521013540076076 + 0xfe, 0xaa, 0x24, 0xcb, 0x0b, 0xff, 0xeb, 0xaf, //0x0000d3d0 .quad -5770238071427257602 + 0x49, 0xd7, 0x39, 0x15, 0xa5, 0x69, 0x8f, 0xf7, //0x0000d3d8 .quad -608151266925095095 + 0xbe, 0xd5, 0xed, 0xbd, 0xce, 0xfe, 0xe6, 0xdb, //0x0000d3e0 .quad -2601111570856684098 + 0x1c, 0x4d, 0x88, 0x5a, 0x0e, 0x44, 0x73, 0xb5, //0x0000d3e8 .quad -5371875102083756772 + 0x97, 0xa5, 0xb4, 0x36, 0x41, 0x5f, 0x70, 0x89, //0x0000d3f0 .quad -8543223759426509417 + 0x31, 0x30, 0x95, 0xf8, 0x88, 0x0a, 0x68, 0x31, //0x0000d3f8 .quad 3560107088838733873 + 0xfc, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x0000d400 .quad -6067343680855748868 + 0x3e, 0x7c, 0xba, 0x36, 0x2b, 0x0d, 0xc2, 0xfd, //0x0000d408 .quad -161552157378970562 + 0xbc, 0x42, 0x7a, 0xe5, 0xd5, 0x94, 0xbf, 0xd6, //0x0000d410 .quad -2972493582642298180 + 0x4d, 0x1b, 0x69, 0x04, 0x76, 0x90, 0x32, 0x3d, //0x0000d418 .quad 4409745821703674701 + 0xb5, 0x69, 0x6c, 0xaf, 0x05, 0xbd, 0x37, 0x86, //0x0000d420 .quad -8775337516792518219 + 0x10, 0xb1, 0xc1, 0xc2, 0x49, 0x9a, 0x3f, 0xa6, //0x0000d428 .quad -6467280898289979120 + 0x23, 0x84, 0x47, 0x1b, 0x47, 0xac, 0xc5, 0xa7, //0x0000d430 .quad -6357485877563259869 + 0x54, 0x1d, 0x72, 0x33, 0xdc, 0x80, 0xcf, 0x0f, //0x0000d438 .quad 1139270913992301908 + 0x2b, 0x65, 0x19, 0xe2, 0x58, 0x17, 0xb7, 0xd1, //0x0000d440 .quad -3335171328526686933 + 0xa9, 0xa4, 0x4e, 0x40, 0x13, 0x61, 0xc3, 0xd3, //0x0000d448 .quad -3187597375937010519 + 0x3b, 0xdf, 0x4f, 0x8d, 0x97, 0x6e, 0x12, 0x83, //0x0000d450 .quad -9002011107970261189 + 0xea, 0x26, 0x31, 0x08, 0xac, 0x1c, 0x5a, 0x64, //0x0000d458 .quad 7231123676894144234 + 0x0a, 0xd7, 0xa3, 0x70, 0x3d, 0x0a, 0xd7, 0xa3, //0x0000d460 .quad -6640827866535438582 + 0xa4, 0x70, 0x3d, 0x0a, 0xd7, 0xa3, 0x70, 0x3d, //0x0000d468 .quad 4427218577690292388 + 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x0000d470 .quad -3689348814741910324 + 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x0000d478 .quad -3689348814741910323 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x0000d480 .quad -9223372036854775808 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d488 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, //0x0000d490 .quad -6917529027641081856 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d498 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc8, //0x0000d4a0 .quad -4035225266123964416 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d4a8 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, //0x0000d4b0 .quad -432345564227567616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d4b8 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x9c, //0x0000d4c0 .quad -7187745005283311616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d4c8 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0xc3, //0x0000d4d0 .quad -4372995238176751616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d4d8 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0xf4, //0x0000d4e0 .quad -854558029293551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d4e8 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x96, 0x98, //0x0000d4f0 .quad -7451627795949551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d4f8 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xbc, 0xbe, //0x0000d500 .quad -4702848726509551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d508 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x6b, 0xee, //0x0000d510 .quad -1266874889709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d518 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf9, 0x02, 0x95, //0x0000d520 .quad -7709325833709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d528 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x40, 0xb7, 0x43, 0xba, //0x0000d530 .quad -5024971273709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d538 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x10, 0xa5, 0xd4, 0xe8, //0x0000d540 .quad -1669528073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d548 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x2a, 0xe7, 0x84, 0x91, //0x0000d550 .quad -7960984073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d558 .quad 0 + 0x00, 0x00, 0x00, 0x80, 0xf4, 0x20, 0xe6, 0xb5, //0x0000d560 .quad -5339544073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d568 .quad 0 + 0x00, 0x00, 0x00, 0xa0, 0x31, 0xa9, 0x5f, 0xe3, //0x0000d570 .quad -2062744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d578 .quad 0 + 0x00, 0x00, 0x00, 0x04, 0xbf, 0xc9, 0x1b, 0x8e, //0x0000d580 .quad -8206744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d588 .quad 0 + 0x00, 0x00, 0x00, 0xc5, 0x2e, 0xbc, 0xa2, 0xb1, //0x0000d590 .quad -5646744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d598 .quad 0 + 0x00, 0x00, 0x40, 0x76, 0x3a, 0x6b, 0x0b, 0xde, //0x0000d5a0 .quad -2446744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d5a8 .quad 0 + 0x00, 0x00, 0xe8, 0x89, 0x04, 0x23, 0xc7, 0x8a, //0x0000d5b0 .quad -8446744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d5b8 .quad 0 + 0x00, 0x00, 0x62, 0xac, 0xc5, 0xeb, 0x78, 0xad, //0x0000d5c0 .quad -5946744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d5c8 .quad 0 + 0x00, 0x80, 0x7a, 0x17, 0xb7, 0x26, 0xd7, 0xd8, //0x0000d5d0 .quad -2821744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d5d8 .quad 0 + 0x00, 0x90, 0xac, 0x6e, 0x32, 0x78, 0x86, 0x87, //0x0000d5e0 .quad -8681119073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d5e8 .quad 0 + 0x00, 0xb4, 0x57, 0x0a, 0x3f, 0x16, 0x68, 0xa9, //0x0000d5f0 .quad -6239712823709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d5f8 .quad 0 + 0x00, 0xa1, 0xed, 0xcc, 0xce, 0x1b, 0xc2, 0xd3, //0x0000d600 .quad -3187955011209551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d608 .quad 0 + 0xa0, 0x84, 0x14, 0x40, 0x61, 0x51, 0x59, 0x84, //0x0000d610 .quad -8910000909647051616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d618 .quad 0 + 0xc8, 0xa5, 0x19, 0x90, 0xb9, 0xa5, 0x6f, 0xa5, //0x0000d620 .quad -6525815118631426616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d628 .quad 0 + 0x3a, 0x0f, 0x20, 0xf4, 0x27, 0x8f, 0xcb, 0xce, //0x0000d630 .quad -3545582879861895366 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d638 .quad 0 + 0x84, 0x09, 0x94, 0xf8, 0x78, 0x39, 0x3f, 0x81, //0x0000d640 .quad -9133518327554766460 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, //0x0000d648 .quad 4611686018427387904 + 0xe5, 0x0b, 0xb9, 0x36, 0xd7, 0x07, 0x8f, 0xa1, //0x0000d650 .quad -6805211891016070171 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, //0x0000d658 .quad 5764607523034234880 + 0xde, 0x4e, 0x67, 0x04, 0xcd, 0xc9, 0xf2, 0xc9, //0x0000d660 .quad -3894828845342699810 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa4, //0x0000d668 .quad -6629298651489370112 + 0x96, 0x22, 0x81, 0x45, 0x40, 0x7c, 0x6f, 0xfc, //0x0000d670 .quad -256850038250986858 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4d, //0x0000d678 .quad 5548434740920451072 + 0x9d, 0xb5, 0x70, 0x2b, 0xa8, 0xad, 0xc5, 0x9d, //0x0000d680 .quad -7078060301547948643 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xf0, //0x0000d688 .quad -1143914305352105984 + 0x05, 0xe3, 0x4c, 0x36, 0x12, 0x19, 0x37, 0xc5, //0x0000d690 .quad -4235889358507547899 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x6c, //0x0000d698 .quad 7793479155164643328 + 0xc6, 0x1b, 0xe0, 0xc3, 0x56, 0xdf, 0x84, 0xf6, //0x0000d6a0 .quad -683175679707046970 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0xc7, //0x0000d6a8 .quad -4093209111326359552 + 0x5c, 0x11, 0x6c, 0x3a, 0x96, 0x0b, 0x13, 0x9a, //0x0000d6b0 .quad -7344513827457986212 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7f, 0x3c, //0x0000d6b8 .quad 4359273333062107136 + 0xb3, 0x15, 0x07, 0xc9, 0x7b, 0xce, 0x97, 0xc0, //0x0000d6c0 .quad -4568956265895094861 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x9f, 0x4b, //0x0000d6c8 .quad 5449091666327633920 + 0x20, 0xdb, 0x48, 0xbb, 0x1a, 0xc2, 0xbd, 0xf0, //0x0000d6d0 .quad -1099509313941480672 + 0x00, 0x00, 0x00, 0x00, 0x00, 0xd4, 0x86, 0x1e, //0x0000d6d8 .quad 2199678564482154496 + 0xf4, 0x88, 0x0d, 0xb5, 0x50, 0x99, 0x76, 0x96, //0x0000d6e0 .quad -7604722348854507276 + 0x00, 0x00, 0x00, 0x00, 0x80, 0x44, 0x14, 0x13, //0x0000d6e8 .quad 1374799102801346560 + 0x31, 0xeb, 0x50, 0xe2, 0xa4, 0x3f, 0x14, 0xbc, //0x0000d6f0 .quad -4894216917640746191 + 0x00, 0x00, 0x00, 0x00, 0xa0, 0x55, 0xd9, 0x17, //0x0000d6f8 .quad 1718498878501683200 + 0xfd, 0x25, 0xe5, 0x1a, 0x8e, 0x4f, 0x19, 0xeb, //0x0000d700 .quad -1506085128623544835 + 0x00, 0x00, 0x00, 0x00, 0x08, 0xab, 0xcf, 0x5d, //0x0000d708 .quad 6759809616554491904 + 0xbe, 0x37, 0xcf, 0xd0, 0xb8, 0xd1, 0xef, 0x92, //0x0000d710 .quad -7858832233030797378 + 0x00, 0x00, 0x00, 0x00, 0xe5, 0xca, 0xa1, 0x5a, //0x0000d718 .quad 6530724019560251392 + 0xad, 0x05, 0x03, 0x05, 0x27, 0xc6, 0xab, 0xb7, //0x0000d720 .quad -5211854272861108819 + 0x00, 0x00, 0x00, 0x40, 0x9e, 0x3d, 0x4a, 0xf1, //0x0000d728 .quad -1059967012404461568 + 0x19, 0xc7, 0x43, 0xc6, 0xb0, 0xb7, 0x96, 0xe5, //0x0000d730 .quad -1903131822648998119 + 0x00, 0x00, 0x00, 0xd0, 0x05, 0xcd, 0x9c, 0x6d, //0x0000d738 .quad 7898413271349198848 + 0x6f, 0x5c, 0xea, 0x7b, 0xce, 0x32, 0x7e, 0x8f, //0x0000d740 .quad -8106986416796705681 + 0x00, 0x00, 0x00, 0xa2, 0x23, 0x00, 0x82, 0xe4, //0x0000d748 .quad -1981020733047832576 + 0x8b, 0xf3, 0xe4, 0x1a, 0x82, 0xbf, 0x5d, 0xb3, //0x0000d750 .quad -5522047002568494197 + 0x00, 0x00, 0x80, 0x8a, 0x2c, 0x80, 0xa2, 0xdd, //0x0000d758 .quad -2476275916309790720 + 0x6e, 0x30, 0x9e, 0xa1, 0x62, 0x2f, 0x35, 0xe0, //0x0000d760 .quad -2290872734783229842 + 0x00, 0x00, 0x20, 0xad, 0x37, 0x20, 0x0b, 0xd5, //0x0000d768 .quad -3095344895387238400 + 0x45, 0xde, 0x02, 0xa5, 0x9d, 0x3d, 0x21, 0x8c, //0x0000d770 .quad -8349324486880600507 + 0x00, 0x00, 0x34, 0xcc, 0x22, 0xf4, 0x26, 0x45, //0x0000d778 .quad 4982938468024057856 + 0xd6, 0x95, 0x43, 0x0e, 0x05, 0x8d, 0x29, 0xaf, //0x0000d780 .quad -5824969590173362730 + 0x00, 0x00, 0x41, 0x7f, 0x2b, 0xb1, 0x70, 0x96, //0x0000d788 .quad -7606384970252091392 + 0x4c, 0x7b, 0xd4, 0x51, 0x46, 0xf0, 0xf3, 0xda, //0x0000d790 .quad -2669525969289315508 + 0x00, 0x40, 0x11, 0x5f, 0x76, 0xdd, 0x0c, 0x3c, //0x0000d798 .quad 4327076842467049472 + 0x0f, 0xcd, 0x24, 0xf3, 0x2b, 0x76, 0xd8, 0x88, //0x0000d7a0 .quad -8585982758446904049 + 0x00, 0xc8, 0x6a, 0xfb, 0x69, 0x0a, 0x88, 0xa5, //0x0000d7a8 .quad -6518949010312869888 + 0x53, 0x00, 0xee, 0xef, 0xb6, 0x93, 0x0e, 0xab, //0x0000d7b0 .quad -6120792429631242157 + 0x00, 0x7a, 0x45, 0x7a, 0x04, 0x0d, 0xea, 0x8e, //0x0000d7b8 .quad -8148686262891087360 + 0x68, 0x80, 0xe9, 0xab, 0xa4, 0x38, 0xd2, 0xd5, //0x0000d7c0 .quad -3039304518611664792 + 0x80, 0xd8, 0xd6, 0x98, 0x45, 0x90, 0xa4, 0x72, //0x0000d7c8 .quad 8260886245095692416 + 0x41, 0xf0, 0x71, 0xeb, 0x66, 0x63, 0xa3, 0x85, //0x0000d7d0 .quad -8817094351773372351 + 0x50, 0x47, 0x86, 0x7f, 0x2b, 0xda, 0xa6, 0x47, //0x0000d7d8 .quad 5163053903184807760 + 0x51, 0x6c, 0x4e, 0xa6, 0x40, 0x3c, 0x0c, 0xa7, //0x0000d7e0 .quad -6409681921289327535 + 0x24, 0xd9, 0x67, 0x5f, 0xb6, 0x90, 0x90, 0x99, //0x0000d7e8 .quad -7381240676301154012 + 0x65, 0x07, 0xe2, 0xcf, 0x50, 0x4b, 0xcf, 0xd0, //0x0000d7f0 .quad -3400416383184271515 + 0x6d, 0xcf, 0x41, 0xf7, 0xe3, 0xb4, 0xf4, 0xff, //0x0000d7f8 .quad -3178808521666707 + 0x9f, 0x44, 0xed, 0x81, 0x12, 0x8f, 0x81, 0x82, //0x0000d800 .quad -9042789267131251553 + 0xa5, 0x21, 0x89, 0x7a, 0x0e, 0xf1, 0xf8, 0xbf, //0x0000d808 .quad -4613672773753429595 + 0xc7, 0x95, 0x68, 0x22, 0xd7, 0xf2, 0x21, 0xa3, //0x0000d810 .quad -6691800565486676537 + 0x0e, 0x6a, 0x2b, 0x19, 0x52, 0x2d, 0xf7, 0xaf, //0x0000d818 .quad -5767090967191786994 + 0x39, 0xbb, 0x02, 0xeb, 0x8c, 0x6f, 0xea, 0xcb, //0x0000d820 .quad -3753064688430957767 + 0x91, 0x44, 0x76, 0x9f, 0xa6, 0xf8, 0xf4, 0x9b, //0x0000d828 .quad -7208863708989733743 + 0x08, 0x6a, 0xc3, 0x25, 0x70, 0x0b, 0xe5, 0xfe, //0x0000d830 .quad -79644842111309304 + 0xb5, 0xd5, 0x53, 0x47, 0xd0, 0x36, 0xf2, 0x02, //0x0000d838 .quad 212292400617608629 + 0x45, 0x22, 0x9a, 0x17, 0x26, 0x27, 0x4f, 0x9f, //0x0000d840 .quad -6967307053960650171 + 0x91, 0x65, 0x94, 0x2c, 0x42, 0x62, 0xd7, 0x01, //0x0000d848 .quad 132682750386005393 + 0xd6, 0xaa, 0x80, 0x9d, 0xef, 0xf0, 0x22, 0xc7, //0x0000d850 .quad -4097447799023424810 + 0xf6, 0x7e, 0xb9, 0xb7, 0xd2, 0x3a, 0x4d, 0x42, //0x0000d858 .quad 4777539456409894646 + 0x8b, 0xd5, 0xe0, 0x84, 0x2b, 0xad, 0xeb, 0xf8, //0x0000d860 .quad -510123730351893109 + 0xb3, 0xde, 0xa7, 0x65, 0x87, 0x89, 0xe0, 0xd2, //0x0000d868 .quad -3251447716342407501 + 0x77, 0x85, 0x0c, 0x33, 0x3b, 0x4c, 0x93, 0x9b, //0x0000d870 .quad -7236356359111015049 + 0x30, 0xeb, 0x88, 0x9f, 0xf4, 0x55, 0xcc, 0x63, //0x0000d878 .quad 7191217214140771120 + 0xd5, 0xa6, 0xcf, 0xff, 0x49, 0x1f, 0x78, 0xc2, //0x0000d880 .quad -4433759430461380907 + 0xfc, 0x25, 0x6b, 0xc7, 0x71, 0x6b, 0xbf, 0x3c, //0x0000d888 .quad 4377335499248575996 + 0x8a, 0x90, 0xc3, 0x7f, 0x1c, 0x27, 0x16, 0xf3, //0x0000d890 .quad -930513269649338230 + 0x7b, 0xef, 0x45, 0x39, 0x4e, 0x46, 0xef, 0x8b, //0x0000d898 .quad -8363388681221443717 + 0x56, 0x3a, 0xda, 0xcf, 0x71, 0xd8, 0xed, 0x97, //0x0000d8a0 .quad -7499099821171918250 + 0xad, 0xb5, 0xcb, 0xe3, 0xf0, 0x8b, 0x75, 0x97, //0x0000d8a8 .quad -7532960934977096275 + 0xec, 0xc8, 0xd0, 0x43, 0x8e, 0x4e, 0xe9, 0xbd, //0x0000d8b0 .quad -4762188758037509908 + 0x18, 0xa3, 0xbe, 0x1c, 0xed, 0xee, 0x52, 0x3d, //0x0000d8b8 .quad 4418856886560793368 + 0x27, 0xfb, 0xc4, 0xd4, 0x31, 0xa2, 0x63, 0xed, //0x0000d8c0 .quad -1341049929119499481 + 0xde, 0x4b, 0xee, 0x63, 0xa8, 0xaa, 0xa7, 0x4c, //0x0000d8c8 .quad 5523571108200991710 + 0xf8, 0x1c, 0xfb, 0x24, 0x5f, 0x45, 0x5e, 0x94, //0x0000d8d0 .quad -7755685233340769032 + 0x6b, 0xef, 0x74, 0x3e, 0xa9, 0xca, 0xe8, 0x8f, //0x0000d8d8 .quad -8076983103442849941 + 0x36, 0xe4, 0x39, 0xee, 0xb6, 0xd6, 0x75, 0xb9, //0x0000d8e0 .quad -5082920523248573386 + 0x45, 0x2b, 0x12, 0x8e, 0x53, 0xfd, 0xe2, 0xb3, //0x0000d8e8 .quad -5484542860876174523 + 0x44, 0x5d, 0xc8, 0xa9, 0x64, 0x4c, 0xd3, 0xe7, //0x0000d8f0 .quad -1741964635633328828 + 0x17, 0xb6, 0x96, 0x71, 0xa8, 0xbc, 0xdb, 0x60, //0x0000d8f8 .quad 6979379479186945559 + 0x4a, 0x3a, 0x1d, 0xea, 0xbe, 0x0f, 0xe4, 0x90, //0x0000d900 .quad -8006256924911912374 + 0xce, 0x31, 0xfe, 0x46, 0xe9, 0x55, 0x89, 0xbc, //0x0000d908 .quad -4861259862362934834 + 0xdd, 0x88, 0xa4, 0xa4, 0xae, 0x13, 0x1d, 0xb5, //0x0000d910 .quad -5396135137712502563 + 0x42, 0xbe, 0xbd, 0x98, 0x63, 0xab, 0xab, 0x6b, //0x0000d918 .quad 7758483227328495170 + 0x14, 0xab, 0xcd, 0x4d, 0x9a, 0x58, 0x64, 0xe2, //0x0000d920 .quad -2133482903713240300 + 0xd2, 0x2d, 0xed, 0x7e, 0x3c, 0x96, 0x96, 0xc6, //0x0000d928 .quad -4136954021121544750 + 0xec, 0x8a, 0xa0, 0x70, 0x60, 0xb7, 0x7e, 0x8d, //0x0000d930 .quad -8250955842461857044 + 0xa3, 0x3c, 0x54, 0xcf, 0xe5, 0x1d, 0x1e, 0xfc, //0x0000d938 .quad -279753253987271517 + 0xa8, 0xad, 0xc8, 0x8c, 0x38, 0x65, 0xde, 0xb0, //0x0000d940 .quad -5702008784649933400 + 0xcc, 0x4b, 0x29, 0x43, 0x5f, 0xa5, 0x25, 0x3b, //0x0000d948 .quad 4261994450943298508 + 0x12, 0xd9, 0xfa, 0xaf, 0x86, 0xfe, 0x15, 0xdd, //0x0000d950 .quad -2515824962385028846 + 0xbf, 0x9e, 0xf3, 0x13, 0xb7, 0x0e, 0xef, 0x49, //0x0000d958 .quad 5327493063679123135 + 0xab, 0xc7, 0xfc, 0x2d, 0x14, 0xbf, 0x2d, 0x8a, //0x0000d960 .quad -8489919629131724885 + 0x38, 0x43, 0x78, 0x6c, 0x32, 0x69, 0x35, 0x6e, //0x0000d968 .quad 7941369183226839864 + 0x96, 0xf9, 0x7b, 0x39, 0xd9, 0x2e, 0xb9, 0xac, //0x0000d970 .quad -6000713517987268202 + 0x05, 0x54, 0x96, 0x07, 0x7f, 0xc3, 0xc2, 0x49, //0x0000d978 .quad 5315025460606161925 + 0xfb, 0xf7, 0xda, 0x87, 0x8f, 0x7a, 0xe7, 0xd7, //0x0000d980 .quad -2889205879056697349 + 0x07, 0xe9, 0x7b, 0xc9, 0x5e, 0x74, 0x33, 0xdc, //0x0000d988 .quad -2579590211097073401 + 0xfd, 0xda, 0xe8, 0xb4, 0x99, 0xac, 0xf0, 0x86, //0x0000d990 .quad -8723282702051517699 + 0xa4, 0x71, 0xed, 0x3d, 0xbb, 0x28, 0xa0, 0x69, //0x0000d998 .quad 7611128154919104932 + 0xbc, 0x11, 0x23, 0x22, 0xc0, 0xd7, 0xac, 0xa8, //0x0000d9a0 .quad -6292417359137009220 + 0x0d, 0xce, 0x68, 0x0d, 0xea, 0x32, 0x08, 0xc4, //0x0000d9a8 .quad -4321147861633282547 + 0x2b, 0xd6, 0xab, 0x2a, 0xb0, 0x0d, 0xd8, 0xd2, //0x0000d9b0 .quad -3253835680493873621 + 0x91, 0x01, 0xc3, 0x90, 0xa4, 0x3f, 0x0a, 0xf5, //0x0000d9b8 .quad -789748808614215279 + 0xdb, 0x65, 0xab, 0x1a, 0x8e, 0x08, 0xc7, 0x83, //0x0000d9c0 .quad -8951176327949752869 + 0xfb, 0xe0, 0x79, 0xda, 0xc6, 0x67, 0x26, 0x79, //0x0000d9c8 .quad 8729779031470891259 + 0x52, 0x3f, 0x56, 0xa1, 0xb1, 0xca, 0xb8, 0xa4, //0x0000d9d0 .quad -6577284391509803182 + 0x39, 0x59, 0x18, 0x91, 0xb8, 0x01, 0x70, 0x57, //0x0000d9d8 .quad 6300537770911226169 + 0x26, 0xcf, 0xab, 0x09, 0x5e, 0xfd, 0xe6, 0xcd, //0x0000d9e0 .quad -3609919470959866074 + 0x87, 0x6f, 0x5e, 0xb5, 0x26, 0x02, 0x4c, 0xed, //0x0000d9e8 .quad -1347699823215743097 + 0x78, 0x61, 0x0b, 0xc6, 0x5a, 0x5e, 0xb0, 0x80, //0x0000d9f0 .quad -9173728696990998152 + 0xb5, 0x05, 0x5b, 0x31, 0x58, 0x81, 0x4f, 0x54, //0x0000d9f8 .quad 6075216638131242421 + 0xd6, 0x39, 0x8e, 0x77, 0xf1, 0x75, 0xdc, 0xa0, //0x0000da00 .quad -6855474852811359786 + 0x22, 0xc7, 0xb1, 0x3d, 0xae, 0x61, 0x63, 0x69, //0x0000da08 .quad 7594020797664053026 + 0x4c, 0xc8, 0x71, 0xd5, 0x6d, 0x93, 0x13, 0xc9, //0x0000da10 .quad -3957657547586811828 + 0xea, 0x38, 0x1e, 0xcd, 0x19, 0x3a, 0xbc, 0x03, //0x0000da18 .quad 269153960225290474 + 0x5f, 0x3a, 0xce, 0x4a, 0x49, 0x78, 0x58, 0xfb, //0x0000da20 .quad -335385916056126881 + 0x24, 0xc7, 0x65, 0x40, 0xa0, 0x48, 0xab, 0x04, //0x0000da28 .quad 336442450281613092 + 0x7b, 0xe4, 0xc0, 0xce, 0x2d, 0x4b, 0x17, 0x9d, //0x0000da30 .quad -7127145225176161157 + 0x77, 0x9c, 0x3f, 0x28, 0x64, 0x0d, 0xeb, 0x62, //0x0000da38 .quad 7127805559067090039 + 0x9a, 0x1d, 0x71, 0x42, 0xf9, 0x1d, 0x5d, 0xc4, //0x0000da40 .quad -4297245513042813542 + 0x95, 0x83, 0x4f, 0x32, 0xbd, 0xd0, 0xa5, 0x3b, //0x0000da48 .quad 4298070930406474645 + 0x00, 0x65, 0x0d, 0x93, 0x77, 0x65, 0x74, 0xf5, //0x0000da50 .quad -759870872876129024 + 0x7a, 0x64, 0xe3, 0x7e, 0xec, 0x44, 0x8f, 0xca, //0x0000da58 .quad -3850783373846682502 + 0x20, 0x5f, 0xe8, 0xbb, 0x6a, 0xbf, 0x68, 0x99, //0x0000da60 .quad -7392448323188662496 + 0xcc, 0x1e, 0x4e, 0xcf, 0x13, 0x8b, 0x99, 0x7e, //0x0000da68 .quad 9122475437414293196 + 0xe8, 0x76, 0xe2, 0x6a, 0x45, 0xef, 0xc2, 0xbf, //0x0000da70 .quad -4628874385558440216 + 0x7f, 0xa6, 0x21, 0xc3, 0xd8, 0xed, 0x3f, 0x9e, //0x0000da78 .quad -7043649776941685121 + 0xa2, 0x14, 0x9b, 0xc5, 0x16, 0xab, 0xb3, 0xef, //0x0000da80 .quad -1174406963520662366 + 0x1f, 0x10, 0xea, 0xf3, 0x4e, 0xe9, 0xcf, 0xc5, //0x0000da88 .quad -4192876202749718497 + 0xe5, 0xec, 0x80, 0x3b, 0xee, 0x4a, 0xd0, 0x95, //0x0000da90 .quad -7651533379841495835 + 0x13, 0x4a, 0x72, 0x58, 0xd1, 0xf1, 0xa1, 0xbb, //0x0000da98 .quad -4926390635932268013 + 0x1f, 0x28, 0x61, 0xca, 0xa9, 0x5d, 0x44, 0xbb, //0x0000daa0 .quad -4952730706374481889 + 0x98, 0xdc, 0x8e, 0xae, 0x45, 0x6e, 0x8a, 0x2a, //0x0000daa8 .quad 3065383741939440792 + 0x26, 0x72, 0xf9, 0x3c, 0x14, 0x75, 0x15, 0xea, //0x0000dab0 .quad -1579227364540714458 + 0xbe, 0x93, 0x32, 0x1a, 0xd7, 0x09, 0x2d, 0xf5, //0x0000dab8 .quad -779956341003086914 + 0x58, 0xe7, 0x1b, 0xa6, 0x2c, 0x69, 0x4d, 0x92, //0x0000dac0 .quad -7904546130479028392 + 0x57, 0x9c, 0x5f, 0x70, 0x26, 0x26, 0x3c, 0x59, //0x0000dac8 .quad 6430056314514152535 + 0x2e, 0xe1, 0xa2, 0xcf, 0x77, 0xc3, 0xe0, 0xb6, //0x0000dad0 .quad -5268996644671397586 + 0x6d, 0x83, 0x77, 0x0c, 0xb0, 0x2f, 0x8b, 0x6f, //0x0000dad8 .quad 8037570393142690669 + 0x7a, 0x99, 0x8b, 0xc3, 0x55, 0xf4, 0x98, 0xe4, //0x0000dae0 .quad -1974559787411859078 + 0x48, 0x64, 0x95, 0x0f, 0x9c, 0xfb, 0x6d, 0x0b, //0x0000dae8 .quad 823590954573587528 + 0xec, 0x3f, 0x37, 0x9a, 0xb5, 0x98, 0xdf, 0x8e, //0x0000daf0 .quad -8151628894773493780 + 0xad, 0x5e, 0xbd, 0x89, 0x41, 0xbd, 0x24, 0x47, //0x0000daf8 .quad 5126430365035880109 + 0xe7, 0x0f, 0xc5, 0x00, 0xe3, 0x7e, 0x97, 0xb2, //0x0000db00 .quad -5577850100039479321 + 0x58, 0xb6, 0x2c, 0xec, 0x91, 0xec, 0xed, 0x58, //0x0000db08 .quad 6408037956294850136 + 0xe1, 0x53, 0xf6, 0xc0, 0x9b, 0x5e, 0x3d, 0xdf, //0x0000db10 .quad -2360626606621961247 + 0xee, 0xe3, 0x37, 0x67, 0xb6, 0x67, 0x29, 0x2f, //0x0000db18 .quad 3398361426941174766 + 0x6c, 0xf4, 0x99, 0x58, 0x21, 0x5b, 0x86, 0x8b, //0x0000db20 .quad -8392920656779807636 + 0x75, 0xee, 0x82, 0x00, 0xd2, 0xe0, 0x79, 0xbd, //0x0000db28 .quad -4793553135802847627 + 0x87, 0x71, 0xc0, 0xae, 0xe9, 0xf1, 0x67, 0xae, //0x0000db30 .quad -5879464802547371641 + 0x12, 0xaa, 0xa3, 0x80, 0x06, 0x59, 0xd8, 0xec, //0x0000db38 .quad -1380255401326171630 + 0xe9, 0x8d, 0x70, 0x1a, 0x64, 0xee, 0x01, 0xda, //0x0000db40 .quad -2737644984756826647 + 0x96, 0x94, 0xcc, 0x20, 0x48, 0x6f, 0x0e, 0xe8, //0x0000db48 .quad -1725319251657714538 + 0xb2, 0x58, 0x86, 0x90, 0xfe, 0x34, 0x41, 0x88, //0x0000db50 .quad -8628557143114098510 + 0xde, 0xdc, 0x7f, 0x14, 0x8d, 0x05, 0x09, 0x31, //0x0000db58 .quad 3533361486141316318 + 0xde, 0xee, 0xa7, 0x34, 0x3e, 0x82, 0x51, 0xaa, //0x0000db60 .quad -6174010410465235234 + 0x16, 0xd4, 0x9f, 0x59, 0xf0, 0x46, 0x4b, 0xbd, //0x0000db68 .quad -4806670179178130410 + 0x96, 0xea, 0xd1, 0xc1, 0xcd, 0xe2, 0xe5, 0xd4, //0x0000db70 .quad -3105826994654156138 + 0x1b, 0xc9, 0x07, 0x70, 0xac, 0x18, 0x9e, 0x6c, //0x0000db78 .quad 7826720331309500699 + 0x9e, 0x32, 0x23, 0x99, 0xc0, 0xad, 0x0f, 0x85, //0x0000db80 .quad -8858670899299929442 + 0xb1, 0xdd, 0x04, 0xc6, 0x6b, 0xcf, 0xe2, 0x03, //0x0000db88 .quad 280014188641050033 + 0x45, 0xff, 0x6b, 0xbf, 0x30, 0x99, 0x53, 0xa6, //0x0000db90 .quad -6461652605697523899 + 0x1d, 0x15, 0x86, 0xb7, 0x46, 0x83, 0xdb, 0x84, //0x0000db98 .quad -8873354301053463267 + 0x16, 0xff, 0x46, 0xef, 0x7c, 0x7f, 0xe8, 0xcf, //0x0000dba0 .quad -3465379738694516970 + 0x64, 0x9a, 0x67, 0x65, 0x18, 0x64, 0x12, 0xe6, //0x0000dba8 .quad -1868320839462053276 + 0x6e, 0x5f, 0x8c, 0x15, 0xae, 0x4f, 0xf1, 0x81, //0x0000dbb0 .quad -9083391364325154962 + 0x7f, 0xc0, 0x60, 0x3f, 0x8f, 0x7e, 0xcb, 0x4f, //0x0000dbb8 .quad 5749828502977298559 + 0x49, 0x77, 0xef, 0x9a, 0x99, 0xa3, 0x6d, 0xa2, //0x0000dbc0 .quad -6742553186979055799 + 0x9e, 0xf0, 0x38, 0x0f, 0x33, 0x5e, 0xbe, 0xe3, //0x0000dbc8 .quad -2036086408133152610 + 0x1c, 0x55, 0xab, 0x01, 0x80, 0x0c, 0x09, 0xcb, //0x0000dbd0 .quad -3816505465296431844 + 0xc6, 0x2c, 0x07, 0xd3, 0xbf, 0xf5, 0xad, 0x5c, //0x0000dbd8 .quad 6678264026688335046 + 0x63, 0x2a, 0x16, 0x02, 0xa0, 0x4f, 0xcb, 0xfd, //0x0000dbe0 .quad -158945813193151901 + 0xf7, 0xf7, 0xc8, 0xc7, 0x2f, 0x73, 0xd9, 0x73, //0x0000dbe8 .quad 8347830033360418807 + 0x7e, 0xda, 0x4d, 0x01, 0xc4, 0x11, 0x9f, 0x9e, //0x0000dbf0 .quad -7016870160886801794 + 0xfb, 0x9a, 0xdd, 0xdc, 0xfd, 0xe7, 0x67, 0x28, //0x0000dbf8 .quad 2911550761636567803 + 0x1d, 0x51, 0xa1, 0x01, 0x35, 0xd6, 0x46, 0xc6, //0x0000dc00 .quad -4159401682681114339 + 0xb9, 0x01, 0x15, 0x54, 0xfd, 0xe1, 0x81, 0xb2, //0x0000dc08 .quad -5583933584809066055 + 0x65, 0xa5, 0x09, 0x42, 0xc2, 0x8b, 0xd8, 0xf7, //0x0000dc10 .quad -587566084924005019 + 0x27, 0x42, 0x1a, 0xa9, 0x7c, 0x5a, 0x22, 0x1f, //0x0000dc18 .quad 2243455055843443239 + 0x5f, 0x07, 0x46, 0x69, 0x59, 0x57, 0xe7, 0x9a, //0x0000dc20 .quad -7284757830718584993 + 0x59, 0x69, 0xb0, 0xe9, 0x8d, 0x78, 0x75, 0x33, //0x0000dc28 .quad 3708002419115845977 + 0x37, 0x89, 0x97, 0xc3, 0x2f, 0x2d, 0xa1, 0xc1, //0x0000dc30 .quad -4494261269970843337 + 0xaf, 0x83, 0x1c, 0x64, 0xb1, 0xd6, 0x52, 0x00, //0x0000dc38 .quad 23317005467419567 + 0x84, 0x6b, 0x7d, 0xb4, 0x7b, 0x78, 0x09, 0xf2, //0x0000dc40 .quad -1006140569036166268 + 0x9b, 0xa4, 0x23, 0xbd, 0x5d, 0x8c, 0x67, 0xc0, //0x0000dc48 .quad -4582539761593113445 + 0x32, 0x63, 0xce, 0x50, 0x4d, 0xeb, 0x45, 0x97, //0x0000dc50 .quad -7546366883288685774 + 0xe1, 0x46, 0x36, 0x96, 0xba, 0xb7, 0x40, 0xf8, //0x0000dc58 .quad -558244341782001951 + 0xff, 0xfb, 0x01, 0xa5, 0x20, 0x66, 0x17, 0xbd, //0x0000dc60 .quad -4821272585683469313 + 0x99, 0xd8, 0xc3, 0x3b, 0xa9, 0xe5, 0x50, 0xb6, //0x0000dc68 .quad -5309491445654890343 + 0xff, 0x7a, 0x42, 0xce, 0xa8, 0x3f, 0x5d, 0xec, //0x0000dc70 .quad -1414904713676948737 + 0xbf, 0xce, 0xb4, 0x8a, 0x13, 0x1f, 0xe5, 0xa3, //0x0000dc78 .quad -6636864307068612929 + 0xdf, 0x8c, 0xe9, 0x80, 0xc9, 0x47, 0xba, 0x93, //0x0000dc80 .quad -7801844473689174817 + 0x38, 0x01, 0xb1, 0x36, 0x6c, 0x33, 0x6f, 0xc6, //0x0000dc88 .quad -4148040191917883080 + 0x17, 0xf0, 0x23, 0xe1, 0xbb, 0xd9, 0xa8, 0xb8, //0x0000dc90 .quad -5140619573684080617 + 0x85, 0x41, 0x5d, 0x44, 0x47, 0x00, 0x0b, 0xb8, //0x0000dc98 .quad -5185050239897353851 + 0x1d, 0xec, 0x6c, 0xd9, 0x2a, 0x10, 0xd3, 0xe6, //0x0000dca0 .quad -1814088448677712867 + 0xe6, 0x91, 0x74, 0x15, 0x59, 0xc0, 0x0d, 0xa6, //0x0000dca8 .quad -6481312799871692314 + 0x92, 0x13, 0xe4, 0xc7, 0x1a, 0xea, 0x43, 0x90, //0x0000dcb0 .quad -8051334308064652398 + 0x30, 0xdb, 0x68, 0xad, 0x37, 0x98, 0xc8, 0x87, //0x0000dcb8 .quad -8662506518347195600 + 0x77, 0x18, 0xdd, 0x79, 0xa1, 0xe4, 0x54, 0xb4, //0x0000dcc0 .quad -5452481866653427593 + 0xfc, 0x11, 0xc3, 0x98, 0x45, 0xbe, 0xba, 0x29, //0x0000dcc8 .quad 3006924907348169212 + 0x94, 0x5e, 0x54, 0xd8, 0xc9, 0x1d, 0x6a, 0xe1, //0x0000dcd0 .quad -2203916314889396588 + 0x7b, 0xd6, 0xf3, 0xfe, 0xd6, 0x6d, 0x29, 0xf4, //0x0000dcd8 .quad -853029884242176389 + 0x1d, 0xbb, 0x34, 0x27, 0x9e, 0x52, 0xe2, 0x8c, //0x0000dce0 .quad -8294976724446954723 + 0x0d, 0x66, 0x58, 0x5f, 0xa6, 0xe4, 0x99, 0x18, //0x0000dce8 .quad 1772699331562333709 + 0xe4, 0xe9, 0x01, 0xb1, 0x45, 0xe7, 0x1a, 0xb0, //0x0000dcf0 .quad -5757034887131305500 + 0x90, 0x7f, 0x2e, 0xf7, 0xcf, 0x5d, 0xc0, 0x5e, //0x0000dcf8 .quad 6827560182880305040 + 0x5d, 0x64, 0x42, 0x1d, 0x17, 0xa1, 0x21, 0xdc, //0x0000dd00 .quad -2584607590486743971 + 0x74, 0x1f, 0xfa, 0xf4, 0x43, 0x75, 0x70, 0x76, //0x0000dd08 .quad 8534450228600381300 + 0xba, 0x7e, 0x49, 0x72, 0xae, 0x04, 0x95, 0x89, //0x0000dd10 .quad -8532908771695296838 + 0xa9, 0x53, 0x1c, 0x79, 0x4a, 0x49, 0x06, 0x6a, //0x0000dd18 .quad 7639874402088932265 + 0x69, 0xde, 0xdb, 0x0e, 0xda, 0x45, 0xfa, 0xab, //0x0000dd20 .quad -6054449946191733143 + 0x93, 0x68, 0x63, 0x17, 0x9d, 0xdb, 0x87, 0x04, //0x0000dd28 .quad 326470965756389523 + 0x03, 0xd6, 0x92, 0x92, 0x50, 0xd7, 0xf8, 0xd6, //0x0000dd30 .quad -2956376414312278525 + 0xb7, 0x42, 0x3c, 0x5d, 0x84, 0xd2, 0xa9, 0x45, //0x0000dd38 .quad 5019774725622874807 + 0xc2, 0xc5, 0x9b, 0x5b, 0x92, 0x86, 0x5b, 0x86, //0x0000dd40 .quad -8765264286586255934 + 0xb3, 0xa9, 0x45, 0xba, 0x92, 0x23, 0x8a, 0x0b, //0x0000dd48 .quad 831516194300602803 + 0x32, 0xb7, 0x82, 0xf2, 0x36, 0x68, 0xf2, 0xa7, //0x0000dd50 .quad -6344894339805432014 + 0x1f, 0x14, 0xd7, 0x68, 0x77, 0xac, 0x6c, 0x8e, //0x0000dd58 .quad -8183976793979022305 + 0xff, 0x64, 0x23, 0xaf, 0x44, 0x02, 0xef, 0xd1, //0x0000dd60 .quad -3319431906329402113 + 0x27, 0xd9, 0x0c, 0x43, 0x95, 0xd7, 0x07, 0x32, //0x0000dd68 .quad 3605087062808385831 + 0x1f, 0x1f, 0x76, 0xed, 0x6a, 0x61, 0x35, 0x83, //0x0000dd70 .quad -8992173969096958177 + 0xb9, 0x07, 0xe8, 0x49, 0xbd, 0xe6, 0x44, 0x7f, //0x0000dd78 .quad 9170708441896323001 + 0xe7, 0xa6, 0xd3, 0xa8, 0xc5, 0xb9, 0x02, 0xa4, //0x0000dd80 .quad -6628531442943809817 + 0xa7, 0x09, 0x62, 0x9c, 0x6c, 0x20, 0x16, 0x5f, //0x0000dd88 .quad 6851699533943015847 + 0xa1, 0x90, 0x08, 0x13, 0x37, 0x68, 0x03, 0xcd, //0x0000dd90 .quad -3673978285252374367 + 0x10, 0x8c, 0x7a, 0xc3, 0x87, 0xa8, 0xdb, 0x36, //0x0000dd98 .quad 3952938399001381904 + 0x64, 0x5a, 0xe5, 0x6b, 0x22, 0x21, 0x22, 0x80, //0x0000dda0 .quad -9213765455923815836 + 0x8a, 0x97, 0x2c, 0xda, 0x54, 0x49, 0x49, 0xc2, //0x0000dda8 .quad -4446942528265218166 + 0xfd, 0xb0, 0xde, 0x06, 0x6b, 0xa9, 0x2a, 0xa0, //0x0000ddb0 .quad -6905520801477381891 + 0x6d, 0xbd, 0xb7, 0x10, 0xaa, 0x9b, 0xdb, 0xf2, //0x0000ddb8 .quad -946992141904134803 + 0x3d, 0x5d, 0x96, 0xc8, 0xc5, 0x53, 0x35, 0xc8, //0x0000ddc0 .quad -4020214983419339459 + 0xc8, 0xac, 0xe5, 0x94, 0x94, 0x82, 0x92, 0x6f, //0x0000ddc8 .quad 8039631859474607304 + 0x8c, 0xf4, 0xbb, 0x3a, 0xb7, 0xa8, 0x42, 0xfa, //0x0000ddd0 .quad -413582710846786420 + 0xfa, 0x17, 0x1f, 0xba, 0x39, 0x23, 0x77, 0xcb, //0x0000ddd8 .quad -3785518230938904582 + 0xd7, 0x78, 0xb5, 0x84, 0x72, 0xa9, 0x69, 0x9c, //0x0000dde0 .quad -7176018221920323369 + 0xfc, 0x6e, 0x53, 0x14, 0x04, 0x76, 0x2a, 0xff, //0x0000dde8 .quad -60105885123121412 + 0x0d, 0xd7, 0xe2, 0x25, 0xcf, 0x13, 0x84, 0xc3, //0x0000ddf0 .quad -4358336758973016307 + 0xbb, 0x4a, 0x68, 0x19, 0x85, 0x13, 0xf5, 0xfe, //0x0000ddf8 .quad -75132356403901765 + 0xd1, 0x8c, 0x5b, 0xef, 0xc2, 0x18, 0x65, 0xf4, //0x0000de00 .quad -836234930288882479 + 0x6a, 0x5d, 0xc2, 0x5f, 0x66, 0x58, 0xb2, 0x7e, //0x0000de08 .quad 9129456591349898602 + 0x02, 0x38, 0x99, 0xd5, 0x79, 0x2f, 0xbf, 0x98, //0x0000de10 .quad -7440175859071633406 + 0x62, 0x7a, 0xd9, 0xfb, 0x3f, 0x77, 0x2f, 0xef, //0x0000de18 .quad -1211618658047395230 + 0x03, 0x86, 0xff, 0x4a, 0x58, 0xfb, 0xee, 0xbe, //0x0000de20 .quad -4688533805412153853 + 0xfb, 0xd8, 0xcf, 0xfa, 0x0f, 0x55, 0xfb, 0xaa, //0x0000de28 .quad -6126209340986631941 + 0x84, 0x67, 0xbf, 0x5d, 0x2e, 0xba, 0xaa, 0xee, //0x0000de30 .quad -1248981238337804412 + 0x39, 0xcf, 0x83, 0xf9, 0x53, 0x2a, 0xba, 0x95, //0x0000de38 .quad -7657761676233289927 + 0xb2, 0xa0, 0x97, 0xfa, 0x5c, 0xb4, 0x2a, 0x95, //0x0000de40 .quad -7698142301602209614 + 0x84, 0x61, 0xf2, 0x7b, 0x74, 0x5a, 0x94, 0xdd, //0x0000de48 .quad -2480258038432112252 + 0xdf, 0x88, 0x3d, 0x39, 0x74, 0x61, 0x75, 0xba, //0x0000de50 .quad -5010991858575374113 + 0xe5, 0xf9, 0xee, 0x9a, 0x11, 0x71, 0xf9, 0x94, //0x0000de58 .quad -7712008566467528219 + 0x17, 0xeb, 0x8c, 0x47, 0xd1, 0xb9, 0x12, 0xe9, //0x0000de60 .quad -1652053804791829737 + 0x5e, 0xb8, 0xaa, 0x01, 0x56, 0xcd, 0x37, 0x7a, //0x0000de68 .quad 8806733365625141342 + 0xee, 0x12, 0xb8, 0xcc, 0x22, 0xb4, 0xab, 0x91, //0x0000de70 .quad -7950062655635975442 + 0x3b, 0xb3, 0x0a, 0xc1, 0x55, 0xe0, 0x62, 0xac, //0x0000de78 .quad -6025006692552756421 + 0xaa, 0x17, 0xe6, 0x7f, 0x2b, 0xa1, 0x16, 0xb6, //0x0000de80 .quad -5325892301117581398 + 0x0a, 0x60, 0x4d, 0x31, 0x6b, 0x98, 0x7b, 0x57, //0x0000de88 .quad 6303799689591218186 + 0x94, 0x9d, 0xdf, 0x5f, 0x76, 0x49, 0x9c, 0xe3, //0x0000de90 .quad -2045679357969588844 + 0x0c, 0xb8, 0xa0, 0xfd, 0x85, 0x7e, 0x5a, 0xed, //0x0000de98 .quad -1343622424865753076 + 0x7d, 0xc2, 0xeb, 0xfb, 0xe9, 0xad, 0x41, 0x8e, //0x0000dea0 .quad -8196078626372074883 + 0x08, 0x73, 0x84, 0xbe, 0x13, 0x8f, 0x58, 0x14, //0x0000dea8 .quad 1466078993672598280 + 0x1c, 0xb3, 0xe6, 0x7a, 0x64, 0x19, 0xd2, 0xb1, //0x0000deb0 .quad -5633412264537705700 + 0xc9, 0x8f, 0x25, 0xae, 0xd8, 0xb2, 0x6e, 0x59, //0x0000deb8 .quad 6444284760518135753 + 0xe3, 0x5f, 0xa0, 0x99, 0xbd, 0x9f, 0x46, 0xde, //0x0000dec0 .quad -2430079312244744221 + 0xbc, 0xf3, 0xae, 0xd9, 0x8e, 0x5f, 0xca, 0x6f, //0x0000dec8 .quad 8055355950647669692 + 0xee, 0x3b, 0x04, 0x80, 0xd6, 0x23, 0xec, 0x8a, //0x0000ded0 .quad -8436328597794046994 + 0x55, 0x58, 0x0d, 0x48, 0xb9, 0x7b, 0xde, 0x25, //0x0000ded8 .quad 2728754459941099605 + 0xe9, 0x4a, 0x05, 0x20, 0xcc, 0x2c, 0xa7, 0xad, //0x0000dee0 .quad -5933724728815170839 + 0x6b, 0xae, 0x10, 0x9a, 0xa7, 0x1a, 0x56, 0xaf, //0x0000dee8 .quad -5812428961928401301 + 0xa4, 0x9d, 0x06, 0x28, 0xff, 0xf7, 0x10, 0xd9, //0x0000def0 .quad -2805469892591575644 + 0x05, 0xda, 0x94, 0x80, 0x51, 0xa1, 0x2b, 0x1b, //0x0000def8 .quad 1957835834444274181 + 0x86, 0x22, 0x04, 0x79, 0xff, 0x9a, 0xaa, 0x87, //0x0000df00 .quad -8670947710510816634 + 0x43, 0x08, 0x5d, 0xf0, 0xd2, 0x44, 0xfb, 0x90, //0x0000df08 .quad -7999724640327104445 + 0x28, 0x2b, 0x45, 0x57, 0xbf, 0x41, 0x95, 0xa9, //0x0000df10 .quad -6226998619711132888 + 0x54, 0x4a, 0x74, 0xac, 0x07, 0x16, 0x3a, 0x35, //0x0000df18 .quad 3835402254873283156 + 0xf2, 0x75, 0x16, 0x2d, 0x2f, 0x92, 0xfa, 0xd3, //0x0000df20 .quad -3172062256211528206 + 0xe9, 0x5c, 0x91, 0x97, 0x89, 0x9b, 0x88, 0x42, //0x0000df28 .quad 4794252818591603945 + 0xb7, 0x09, 0x2e, 0x7c, 0x5d, 0x9b, 0x7c, 0x84, //0x0000df30 .quad -8900067937773286985 + 0x12, 0xda, 0xba, 0xfe, 0x35, 0x61, 0x95, 0x69, //0x0000df38 .quad 7608094030047140370 + 0x25, 0x8c, 0x39, 0xdb, 0x34, 0xc2, 0x9b, 0xa5, //0x0000df40 .quad -6513398903789220827 + 0x96, 0x90, 0x69, 0x7e, 0x83, 0xb9, 0xfa, 0x43, //0x0000df48 .quad 4898431519131537558 + 0x2e, 0xef, 0x07, 0x12, 0xc2, 0xb2, 0x02, 0xcf, //0x0000df50 .quad -3530062611309138130 + 0xbc, 0xf4, 0x03, 0x5e, 0xe4, 0x67, 0xf9, 0x94, //0x0000df58 .quad -7712018656367741764 + 0x7d, 0xf5, 0x44, 0x4b, 0xb9, 0xaf, 0x61, 0x81, //0x0000df60 .quad -9123818159709293187 + 0xf6, 0x78, 0xc2, 0xba, 0xee, 0xe0, 0x1b, 0x1d, //0x0000df68 .quad 2097517367411243254 + 0xdc, 0x32, 0x16, 0x9e, 0xa7, 0x1b, 0xba, 0xa1, //0x0000df70 .quad -6793086681209228580 + 0x33, 0x17, 0x73, 0x69, 0x2a, 0xd9, 0x62, 0x64, //0x0000df78 .quad 7233582727691441971 + 0x93, 0xbf, 0x9b, 0x85, 0x91, 0xa2, 0x28, 0xca, //0x0000df80 .quad -3879672333084147821 + 0xff, 0xdc, 0xcf, 0x03, 0x75, 0x8f, 0x7b, 0x7d, //0x0000df88 .quad 9041978409614302463 + 0x78, 0xaf, 0x02, 0xe7, 0x35, 0xcb, 0xb2, 0xfc, //0x0000df90 .quad -237904397927796872 + 0x3f, 0xd4, 0xc3, 0x44, 0x52, 0x73, 0xda, 0x5c, //0x0000df98 .quad 6690786993590490175 + 0xab, 0xad, 0x61, 0xb0, 0x01, 0xbf, 0xef, 0x9d, //0x0000dfa0 .quad -7066219276345954901 + 0xa8, 0x64, 0xfa, 0x6a, 0x13, 0x88, 0x08, 0x3a, //0x0000dfa8 .quad 4181741870994056360 + 0x16, 0x19, 0x7a, 0x1c, 0xc2, 0xae, 0x6b, 0xc5, //0x0000dfb0 .quad -4221088077005055722 + 0xd1, 0xfd, 0xb8, 0x45, 0x18, 0xaa, 0x8a, 0x08, //0x0000dfb8 .quad 615491320315182545 + 0x5b, 0x9f, 0x98, 0xa3, 0x72, 0x9a, 0xc6, 0xf6, //0x0000dfc0 .quad -664674077828931749 + 0x46, 0x3d, 0x27, 0x57, 0x9e, 0x54, 0xad, 0x8a, //0x0000dfc8 .quad -8454007886460797626 + 0x99, 0x63, 0x3f, 0xa6, 0x87, 0x20, 0x3c, 0x9a, //0x0000dfd0 .quad -7332950326284164199 + 0x4c, 0x86, 0x78, 0xf6, 0xe2, 0x54, 0xac, 0x36, //0x0000dfd8 .quad 3939617107816777292 + 0x7f, 0x3c, 0xcf, 0x8f, 0xa9, 0x28, 0xcb, 0xc0, //0x0000dfe0 .quad -4554501889427817345 + 0xde, 0xa7, 0x16, 0xb4, 0x1b, 0x6a, 0x57, 0x84, //0x0000dfe8 .quad -8910536670511192098 + 0x9f, 0x0b, 0xc3, 0xf3, 0xd3, 0xf2, 0xfd, 0xf0, //0x0000dff0 .quad -1081441343357383777 + 0xd6, 0x51, 0x1c, 0xa1, 0xa2, 0x44, 0x6d, 0x65, //0x0000dff8 .quad 7308573235570561494 + 0x43, 0xe7, 0x59, 0x78, 0xc4, 0xb7, 0x9e, 0x96, //0x0000e000 .quad -7593429867239446717 + 0x26, 0xb3, 0xb1, 0xa4, 0xe5, 0x4a, 0x64, 0x9f, //0x0000e008 .quad -6961356773836868826 + 0x14, 0x61, 0x70, 0x96, 0xb5, 0x65, 0x46, 0xbc, //0x0000e010 .quad -4880101315621920492 + 0xef, 0x1f, 0xde, 0x0d, 0x9f, 0x5d, 0x3d, 0x87, //0x0000e018 .quad -8701695967296086033 + 0x59, 0x79, 0x0c, 0xfc, 0x22, 0xff, 0x57, 0xeb, //0x0000e020 .quad -1488440626100012711 + 0xeb, 0xa7, 0x55, 0xd1, 0x06, 0xb5, 0x0c, 0xa9, //0x0000e028 .quad -6265433940692719637 + 0xd8, 0xcb, 0x87, 0xdd, 0x75, 0xff, 0x16, 0x93, //0x0000e030 .quad -7847804418953589800 + 0xf3, 0x88, 0xd5, 0x42, 0x24, 0xf1, 0xa7, 0x09, //0x0000e038 .quad 695789805494438131 + 0xce, 0xbe, 0xe9, 0x54, 0x53, 0xbf, 0xdc, 0xb7, //0x0000e040 .quad -5198069505264599346 + 0x30, 0xeb, 0x8a, 0x53, 0x6d, 0xed, 0x11, 0x0c, //0x0000e048 .quad 869737256868047664 + 0x81, 0x2e, 0x24, 0x2a, 0x28, 0xef, 0xd3, 0xe5, //0x0000e050 .quad -1885900863153361279 + 0xfb, 0xa5, 0x6d, 0xa8, 0xc8, 0x68, 0x16, 0x8f, //0x0000e058 .quad -8136200465769716229 + 0x10, 0x9d, 0x56, 0x1a, 0x79, 0x75, 0xa4, 0x8f, //0x0000e060 .quad -8096217067111932656 + 0xbd, 0x87, 0x44, 0x69, 0x7d, 0x01, 0x6e, 0xf9, //0x0000e068 .quad -473439272678684739 + 0x55, 0x44, 0xec, 0x60, 0xd7, 0x92, 0x8d, 0xb3, //0x0000e070 .quad -5508585315462527915 + 0xad, 0xa9, 0x95, 0xc3, 0xdc, 0x81, 0xc9, 0x37, //0x0000e078 .quad 4019886927579031981 + 0x6a, 0x55, 0x27, 0x39, 0x8d, 0xf7, 0x70, 0xe0, //0x0000e080 .quad -2274045625900771990 + 0x18, 0x14, 0x7b, 0xf4, 0x53, 0xe2, 0xbb, 0x85, //0x0000e088 .quad -8810199395808373736 + 0x62, 0x95, 0xb8, 0x43, 0xb8, 0x9a, 0x46, 0x8c, //0x0000e090 .quad -8338807543829064350 + 0x8f, 0xec, 0xcc, 0x78, 0x74, 0x6d, 0x95, 0x93, //0x0000e098 .quad -7812217631593927537 + 0xbb, 0xba, 0xa6, 0x54, 0x66, 0x41, 0x58, 0xaf, //0x0000e0a0 .quad -5811823411358942533 + 0xb3, 0x27, 0x00, 0x97, 0xd1, 0xc8, 0x7a, 0x38, //0x0000e0a8 .quad 4069786015789754291 + 0x6a, 0x69, 0xd0, 0xe9, 0xbf, 0x51, 0x2e, 0xdb, //0x0000e0b0 .quad -2653093245771290262 + 0x9f, 0x31, 0xc0, 0xfc, 0x05, 0x7b, 0x99, 0x06, //0x0000e0b8 .quad 475546501309804959 + 0xe2, 0x41, 0x22, 0xf2, 0x17, 0xf3, 0xfc, 0x88, //0x0000e0c0 .quad -8575712306248138270 + 0x04, 0x1f, 0xf8, 0xbd, 0xe3, 0xec, 0x1f, 0x44, //0x0000e0c8 .quad 4908902581746016004 + 0x5a, 0xd2, 0xaa, 0xee, 0xdd, 0x2f, 0x3c, 0xab, //0x0000e0d0 .quad -6107954364382784934 + 0xc4, 0x26, 0x76, 0xad, 0x1c, 0xe8, 0x27, 0xd5, //0x0000e0d8 .quad -3087243809672255804 + 0xf1, 0x86, 0x55, 0x6a, 0xd5, 0x3b, 0x0b, 0xd6, //0x0000e0e0 .quad -3023256937051093263 + 0x75, 0xb0, 0xd3, 0xd8, 0x23, 0xe2, 0x71, 0x8a, //0x0000e0e8 .quad -8470740780517707659 + 0x56, 0x74, 0x75, 0x62, 0x65, 0x05, 0xc7, 0x85, //0x0000e0f0 .quad -8807064613298015146 + 0x4a, 0x4e, 0x84, 0x67, 0x56, 0x2d, 0x87, 0xf6, //0x0000e0f8 .quad -682526969396179382 + 0x6c, 0xd1, 0x12, 0xbb, 0xbe, 0xc6, 0x38, 0xa7, //0x0000e100 .quad -6397144748195131028 + 0xdc, 0x61, 0x65, 0x01, 0xac, 0xf8, 0x28, 0xb4, //0x0000e108 .quad -5464844730172612132 + 0xc7, 0x85, 0xd7, 0x69, 0x6e, 0xf8, 0x06, 0xd1, //0x0000e110 .quad -3384744916816525881 + 0x53, 0xba, 0xbe, 0x01, 0xd7, 0x36, 0x33, 0xe1, //0x0000e118 .quad -2219369894288377261 + 0x9c, 0xb3, 0x26, 0x02, 0x45, 0x5b, 0xa4, 0x82, //0x0000e120 .quad -9032994600651410532 + 0x74, 0x34, 0x17, 0x61, 0x46, 0x02, 0xc0, 0xec, //0x0000e128 .quad -1387106183930235788 + 0x84, 0x60, 0xb0, 0x42, 0x16, 0x72, 0x4d, 0xa3, //0x0000e130 .quad -6679557232386875260 + 0x91, 0x01, 0x5d, 0xf9, 0xd7, 0x02, 0xf0, 0x27, //0x0000e138 .quad 2877803288514593169 + 0xa5, 0x78, 0x5c, 0xd3, 0x9b, 0xce, 0x20, 0xcc, //0x0000e140 .quad -3737760522056206171 + 0xf5, 0x41, 0xb4, 0xf7, 0x8d, 0x03, 0xec, 0x31, //0x0000e148 .quad 3597254110643241461 + 0xce, 0x96, 0x33, 0xc8, 0x42, 0x02, 0x29, 0xff, //0x0000e150 .quad -60514634142869810 + 0x72, 0x52, 0xa1, 0x75, 0x71, 0x04, 0x67, 0x7e, //0x0000e158 .quad 9108253656731439730 + 0x41, 0x3e, 0x20, 0xbd, 0x69, 0xa1, 0x79, 0x9f, //0x0000e160 .quad -6955350673980375487 + 0x87, 0xd3, 0x84, 0xe9, 0xc6, 0x62, 0x00, 0x0f, //0x0000e168 .quad 1080972517029761927 + 0xd1, 0x4d, 0x68, 0x2c, 0xc4, 0x09, 0x58, 0xc7, //0x0000e170 .quad -4082502324048081455 + 0x69, 0x08, 0xe6, 0xa3, 0x78, 0x7b, 0xc0, 0x52, //0x0000e178 .quad 5962901664714590313 + 0x45, 0x61, 0x82, 0x37, 0x35, 0x0c, 0x2e, 0xf9, //0x0000e180 .quad -491441886632713915 + 0x83, 0x8a, 0xdf, 0xcc, 0x56, 0x9a, 0x70, 0xa7, //0x0000e188 .quad -6381430974388925821 + 0xcb, 0x7c, 0xb1, 0x42, 0xa1, 0xc7, 0xbc, 0x9b, //0x0000e190 .quad -7224680206786528053 + 0x92, 0xb6, 0x0b, 0x40, 0x76, 0x60, 0xa6, 0x88, //0x0000e198 .quad -8600080377420466542 + 0xfe, 0xdb, 0x5d, 0x93, 0x89, 0xf9, 0xab, 0xc2, //0x0000e1a0 .quad -4419164240055772162 + 0x36, 0xa4, 0x0e, 0xd0, 0x93, 0xf8, 0xcf, 0x6a, //0x0000e1a8 .quad 7696643601933968438 + 0xfe, 0x52, 0x35, 0xf8, 0xeb, 0xf7, 0x56, 0xf3, //0x0000e1b0 .quad -912269281642327298 + 0x44, 0x4d, 0x12, 0xc4, 0xb8, 0xf6, 0x83, 0x05, //0x0000e1b8 .quad 397432465562684740 + 0xde, 0x53, 0x21, 0x7b, 0xf3, 0x5a, 0x16, 0x98, //0x0000e1c0 .quad -7487697328667536418 + 0x4b, 0x70, 0x8b, 0x7a, 0x33, 0x7a, 0x72, 0xc3, //0x0000e1c8 .quad -4363290727450709941 + 0xd6, 0xa8, 0xe9, 0x59, 0xb0, 0xf1, 0x1b, 0xbe, //0x0000e1d0 .quad -4747935642407032618 + 0x5d, 0x4c, 0x2e, 0x59, 0xc0, 0x18, 0x4f, 0x74, //0x0000e1d8 .quad 8380944645968776285 + 0x0c, 0x13, 0x64, 0x70, 0x1c, 0xee, 0xa2, 0xed, //0x0000e1e0 .quad -1323233534581402868 + 0x74, 0xdf, 0x79, 0x6f, 0xf0, 0xde, 0x62, 0x11, //0x0000e1e8 .quad 1252808770606194548 + 0xe7, 0x8b, 0x3e, 0xc6, 0xd1, 0xd4, 0x85, 0x94, //0x0000e1f0 .quad -7744549986754458649 + 0xa9, 0x2b, 0xac, 0x45, 0x56, 0xcb, 0xdd, 0x8a, //0x0000e1f8 .quad -8440366555225904215 + 0xe1, 0x2e, 0xce, 0x37, 0x06, 0x4a, 0xa7, 0xb9, //0x0000e200 .quad -5069001465015685407 + 0x93, 0x36, 0x17, 0xd7, 0x2b, 0x3e, 0x95, 0x6d, //0x0000e208 .quad 7896285879677171347 + 0x99, 0xba, 0xc1, 0xc5, 0x87, 0x1c, 0x11, 0xe8, //0x0000e210 .quad -1724565812842218855 + 0x38, 0x04, 0xdd, 0xcc, 0xb6, 0x8d, 0xfa, 0xc8, //0x0000e218 .quad -3964700705685699528 + 0xa0, 0x14, 0x99, 0xdb, 0xd4, 0xb1, 0x0a, 0x91, //0x0000e220 .quad -7995382660667468640 + 0xa3, 0x22, 0x0a, 0x40, 0x92, 0x98, 0x9c, 0x1d, //0x0000e228 .quad 2133748077373825699 + 0xc8, 0x59, 0x7f, 0x12, 0x4a, 0x5e, 0x4d, 0xb5, //0x0000e230 .quad -5382542307406947896 + 0x4c, 0xab, 0x0c, 0xd0, 0xb6, 0xbe, 0x03, 0x25, //0x0000e238 .quad 2667185096717282124 + 0x3a, 0x30, 0x1f, 0x97, 0xdc, 0xb5, 0xa0, 0xe2, //0x0000e240 .quad -2116491865831296966 + 0x1e, 0xd6, 0x0f, 0x84, 0x64, 0xae, 0x44, 0x2e, //0x0000e248 .quad 3333981370896602654 + 0x24, 0x7e, 0x73, 0xde, 0xa9, 0x71, 0xa4, 0x8d, //0x0000e250 .quad -8240336443785642460 + 0xd3, 0xe5, 0x89, 0xd2, 0xfe, 0xec, 0xea, 0x5c, //0x0000e258 .quad 6695424375237764563 + 0xad, 0x5d, 0x10, 0x56, 0x14, 0x8e, 0x0d, 0xb1, //0x0000e260 .quad -5688734536304665171 + 0x48, 0x5f, 0x2c, 0x87, 0x3e, 0xa8, 0x25, 0x74, //0x0000e268 .quad 8369280469047205704 + 0x18, 0x75, 0x94, 0x6b, 0x99, 0xf1, 0x50, 0xdd, //0x0000e270 .quad -2499232151953443560 + 0x1a, 0x77, 0xf7, 0x28, 0x4e, 0x12, 0x2f, 0xd1, //0x0000e278 .quad -3373457468973156582 + 0x2f, 0xc9, 0x3c, 0xe3, 0xff, 0x96, 0x52, 0x8a, //0x0000e280 .quad -8479549122611984081 + 0x70, 0xaa, 0x9a, 0xd9, 0x70, 0x6b, 0xbd, 0x82, //0x0000e288 .quad -9025939945749304720 + 0x7b, 0xfb, 0x0b, 0xdc, 0xbf, 0x3c, 0xe7, 0xac, //0x0000e290 .quad -5987750384837592197 + 0x0c, 0x55, 0x01, 0x10, 0x4d, 0xc6, 0x6c, 0x63, //0x0000e298 .quad 7164319141522920716 + 0x5a, 0xfa, 0x0e, 0xd3, 0xef, 0x0b, 0x21, 0xd8, //0x0000e2a0 .quad -2873001962619602342 + 0x4f, 0xaa, 0x01, 0x54, 0xe0, 0xf7, 0x47, 0x3c, //0x0000e2a8 .quad 4343712908476262991 + 0x78, 0x5c, 0xe9, 0xe3, 0x75, 0xa7, 0x14, 0x87, //0x0000e2b0 .quad -8713155254278333320 + 0x72, 0x0a, 0x81, 0x34, 0xec, 0xfa, 0xac, 0x65, //0x0000e2b8 .quad 7326506586225052274 + 0x96, 0xb3, 0xe3, 0x5c, 0x53, 0xd1, 0xd9, 0xa8, //0x0000e2c0 .quad -6279758049420528746 + 0x0e, 0x4d, 0xa1, 0x41, 0xa7, 0x39, 0x18, 0x7f, //0x0000e2c8 .quad 9158133232781315342 + 0x7c, 0xa0, 0x1c, 0x34, 0xa8, 0x45, 0x10, 0xd3, //0x0000e2d0 .quad -3238011543348273028 + 0x51, 0xa0, 0x09, 0x12, 0x11, 0x48, 0xde, 0x1e, //0x0000e2d8 .quad 2224294504121868369 + 0x4d, 0xe4, 0x91, 0x20, 0x89, 0x2b, 0xea, 0x83, //0x0000e2e0 .quad -8941286242233752499 + 0x33, 0x04, 0x46, 0xab, 0x0a, 0xed, 0x4a, 0x93, //0x0000e2e8 .quad -7833187971778608077 + 0x60, 0x5d, 0xb6, 0x68, 0x6b, 0xb6, 0xe4, 0xa4, //0x0000e2f0 .quad -6564921784364802720 + 0x40, 0x85, 0x17, 0x56, 0x4d, 0xa8, 0x1d, 0xf8, //0x0000e2f8 .quad -568112927868484288 + 0xb9, 0xf4, 0xe3, 0x42, 0x06, 0xe4, 0x1d, 0xce, //0x0000e300 .quad -3594466212028615495 + 0x8f, 0x66, 0x9d, 0xab, 0x60, 0x12, 0x25, 0x36, //0x0000e308 .quad 3901544858591782543 + 0xf3, 0x78, 0xce, 0xe9, 0x83, 0xae, 0xd2, 0x80, //0x0000e310 .quad -9164070410158966541 + 0x1a, 0x60, 0x42, 0x6b, 0x7c, 0x2b, 0xd7, 0xc1, //0x0000e318 .quad -4479063491021217766 + 0x30, 0x17, 0x42, 0xe4, 0x24, 0x5a, 0x07, 0xa1, //0x0000e320 .quad -6843401994271320272 + 0x20, 0xf8, 0x12, 0x86, 0x5b, 0xf6, 0x4c, 0xb2, //0x0000e328 .quad -5598829363776522208 + 0xfc, 0x9c, 0x52, 0x1d, 0xae, 0x30, 0x49, 0xc9, //0x0000e330 .quad -3942566474411762436 + 0x28, 0xb6, 0x97, 0x67, 0xf2, 0x33, 0xe0, 0xde, //0x0000e338 .quad -2386850686293264856 + 0x3c, 0x44, 0xa7, 0xa4, 0xd9, 0x7c, 0x9b, 0xfb, //0x0000e340 .quad -316522074587315140 + 0xb2, 0xa3, 0x7d, 0x01, 0xef, 0x40, 0x98, 0x16, //0x0000e348 .quad 1628122660560806834 + 0xa5, 0x8a, 0xe8, 0x06, 0x08, 0x2e, 0x41, 0x9d, //0x0000e350 .quad -7115355324258153819 + 0x4f, 0x86, 0xee, 0x60, 0x95, 0x28, 0x1f, 0x8e, //0x0000e358 .quad -8205795374004271537 + 0x4e, 0xad, 0xa2, 0x08, 0x8a, 0x79, 0x91, 0xc4, //0x0000e360 .quad -4282508136895304370 + 0xe3, 0x27, 0x2a, 0xb9, 0xba, 0xf2, 0xa6, 0xf1, //0x0000e368 .quad -1033872180650563613 + 0xa2, 0x58, 0xcb, 0x8a, 0xec, 0xd7, 0xb5, 0xf5, //0x0000e370 .quad -741449152691742558 + 0xdc, 0xb1, 0x74, 0x67, 0x69, 0xaf, 0x10, 0xae, //0x0000e378 .quad -5904026244240592420 + 0x65, 0x17, 0xbf, 0xd6, 0xf3, 0xa6, 0x91, 0x99, //0x0000e380 .quad -7380934748073420955 + 0x2a, 0xef, 0xa8, 0xe0, 0xa1, 0x6d, 0xca, 0xac, //0x0000e388 .quad -5995859411864064214 + 0x3f, 0xdd, 0x6e, 0xcc, 0xb0, 0x10, 0xf6, 0xbf, //0x0000e390 .quad -4614482416664388289 + 0xf4, 0x2a, 0xd3, 0x58, 0x0a, 0x09, 0xfd, 0x17, //0x0000e398 .quad 1728547772024695540 + 0x8e, 0x94, 0x8a, 0xff, 0xdc, 0x94, 0xf3, 0xef, //0x0000e3a0 .quad -1156417002403097458 + 0xb1, 0xf5, 0x07, 0xef, 0x4c, 0x4b, 0xfc, 0xdd, //0x0000e3a8 .quad -2451001303396518479 + 0xd9, 0x9c, 0xb6, 0x1f, 0x0a, 0x3d, 0xf8, 0x95, //0x0000e3b0 .quad -7640289654143017767 + 0x8f, 0xf9, 0x64, 0x15, 0x10, 0xaf, 0xbd, 0x4a, //0x0000e3b8 .quad 5385653213018257807 + 0x0f, 0x44, 0xa4, 0xa7, 0x4c, 0x4c, 0x76, 0xbb, //0x0000e3c0 .quad -4938676049251384305 + 0xf2, 0x37, 0xbe, 0x1a, 0xd4, 0x1a, 0x6d, 0x9d, //0x0000e3c8 .quad -7102991539009341454 + 0x13, 0x55, 0x8d, 0xd1, 0x5f, 0xdf, 0x53, 0xea, //0x0000e3d0 .quad -1561659043136842477 + 0xee, 0xc5, 0x6d, 0x21, 0x89, 0x61, 0xc8, 0x84, //0x0000e3d8 .quad -8878739423761676818 + 0x2c, 0x55, 0xf8, 0xe2, 0x9b, 0x6b, 0x74, 0x92, //0x0000e3e0 .quad -7893565929601608404 + 0xb5, 0x9b, 0xe4, 0xb4, 0xf5, 0x3c, 0xfd, 0x32, //0x0000e3e8 .quad 3674159897003727797 + 0x77, 0x6a, 0xb6, 0xdb, 0x82, 0x86, 0x11, 0xb7, //0x0000e3f0 .quad -5255271393574622601 + 0xa2, 0xc2, 0x1d, 0x22, 0x33, 0x8c, 0xbc, 0x3f, //0x0000e3f8 .quad 4592699871254659746 + 0x15, 0x05, 0xa4, 0x92, 0x23, 0xe8, 0xd5, 0xe4, //0x0000e400 .quad -1957403223540890347 + 0x4b, 0x33, 0xa5, 0xea, 0x3f, 0xaf, 0xab, 0x0f, //0x0000e408 .quad 1129188820640936779 + 0x2d, 0x83, 0xa6, 0x3b, 0x16, 0xb1, 0x05, 0x8f, //0x0000e410 .quad -8140906042354138323 + 0x0f, 0x40, 0xa7, 0xf2, 0x87, 0x4d, 0xcb, 0x29, //0x0000e418 .quad 3011586022114279439 + 0xf8, 0x23, 0x90, 0xca, 0x5b, 0x1d, 0xc7, 0xb2, //0x0000e420 .quad -5564446534515285000 + 0x13, 0x10, 0x51, 0xef, 0xe9, 0x20, 0x3e, 0x74, //0x0000e428 .quad 8376168546070237203 + 0xf6, 0x2c, 0x34, 0xbd, 0xb2, 0xe4, 0x78, 0xdf, //0x0000e430 .quad -2343872149716718346 + 0x17, 0x54, 0x25, 0x6b, 0x24, 0xa9, 0x4d, 0x91, //0x0000e438 .quad -7976533391121755113 + 0x1a, 0x9c, 0x40, 0xb6, 0xef, 0x8e, 0xab, 0x8b, //0x0000e440 .quad -8382449121214030822 + 0x8f, 0x54, 0xf7, 0xc2, 0xb6, 0x89, 0xd0, 0x1a, //0x0000e448 .quad 1932195658189984911 + 0x20, 0xc3, 0xd0, 0xa3, 0xab, 0x72, 0x96, 0xae, //0x0000e450 .quad -5866375383090150624 + 0xb2, 0x29, 0xb5, 0x73, 0x24, 0xac, 0x84, 0xa1, //0x0000e458 .quad -6808127464117294670 + 0xe8, 0xf3, 0xc4, 0x8c, 0x56, 0x0f, 0x3c, 0xda, //0x0000e460 .quad -2721283210435300376 + 0x1f, 0x74, 0xa2, 0x90, 0x2d, 0xd7, 0xe5, 0xc9, //0x0000e468 .quad -3898473311719230433 + 0x71, 0x18, 0xfb, 0x17, 0x96, 0x89, 0x65, 0x88, //0x0000e470 .quad -8618331034163144591 + 0x93, 0x88, 0x65, 0x7a, 0x7c, 0xa6, 0x2f, 0x7e, //0x0000e478 .quad 9092669226243950739 + 0x8d, 0xde, 0xf9, 0x9d, 0xfb, 0xeb, 0x7e, 0xaa, //0x0000e480 .quad -6161227774276542835 + 0xb8, 0xea, 0xfe, 0x98, 0x1b, 0x90, 0xbb, 0xdd, //0x0000e488 .quad -2469221522477225288 + 0x31, 0x56, 0x78, 0x85, 0xfa, 0xa6, 0x1e, 0xd5, //0x0000e490 .quad -3089848699418290639 + 0x66, 0xa5, 0x3e, 0x7f, 0x22, 0x74, 0x2a, 0x55, //0x0000e498 .quad 6136845133758244198 + 0xde, 0x35, 0x6b, 0x93, 0x5c, 0x28, 0x33, 0x85, //0x0000e4a0 .quad -8848684464777513506 + 0x60, 0x27, 0x87, 0x8f, 0x95, 0x88, 0x3a, 0xd5, //0x0000e4a8 .quad -3082000819042179232 + 0x56, 0x03, 0x46, 0xb8, 0x73, 0xf2, 0x7f, 0xa6, //0x0000e4b0 .quad -6449169562544503978 + 0x38, 0xf1, 0x68, 0xf3, 0xba, 0x2a, 0x89, 0x8a, //0x0000e4b8 .quad -8464187042230111944 + 0x2c, 0x84, 0x57, 0xa6, 0x10, 0xef, 0x1f, 0xd0, //0x0000e4c0 .quad -3449775934753242068 + 0x86, 0x2d, 0x43, 0xb0, 0x69, 0x75, 0x2b, 0x2d, //0x0000e4c8 .quad 3254824252494523782 + 0x9b, 0xb2, 0xf6, 0x67, 0x6a, 0xf5, 0x13, 0x82, //0x0000e4d0 .quad -9073638986861858149 + 0x74, 0xfc, 0x29, 0x0e, 0x62, 0x29, 0x3b, 0x9c, //0x0000e4d8 .quad -7189106879045698444 + 0x42, 0x5f, 0xf4, 0x01, 0xc5, 0xf2, 0x98, 0xa2, //0x0000e4e0 .quad -6730362715149934782 + 0x90, 0x7b, 0xb4, 0x91, 0xba, 0xf3, 0x49, 0x83, //0x0000e4e8 .quad -8986383598807123056 + 0x13, 0x77, 0x71, 0x42, 0x76, 0x2f, 0x3f, 0xcb, //0x0000e4f0 .quad -3801267375510030573 + 0x74, 0x9a, 0x21, 0x36, 0xa9, 0x70, 0x1c, 0x24, //0x0000e4f8 .quad 2602078556773259892 + 0xd7, 0xd4, 0x0d, 0xd3, 0x53, 0xfb, 0x0e, 0xfe, //0x0000e500 .quad -139898200960150313 + 0x11, 0x01, 0xaa, 0x83, 0xd3, 0x8c, 0x23, 0xed, //0x0000e508 .quad -1359087822460813039 + 0x06, 0xa5, 0xe8, 0x63, 0x14, 0x5d, 0xc9, 0x9e, //0x0000e510 .quad -7004965403241175802 + 0xab, 0x40, 0x4a, 0x32, 0x04, 0x38, 0x36, 0xf4, //0x0000e518 .quad -849429889038008149 + 0x48, 0xce, 0xe2, 0x7c, 0x59, 0xb4, 0x7b, 0xc6, //0x0000e520 .quad -4144520735624081848 + 0xd6, 0xd0, 0xdc, 0x3e, 0x05, 0xc6, 0x43, 0xb1, //0x0000e528 .quad -5673473379724898090 + 0xda, 0x81, 0x1b, 0xdc, 0x6f, 0xa1, 0x1a, 0xf8, //0x0000e530 .quad -568964901102714406 + 0x0b, 0x05, 0x94, 0x8e, 0x86, 0xb7, 0x94, 0xdd, //0x0000e538 .quad -2480155706228734709 + 0x28, 0x31, 0x91, 0xe9, 0xe5, 0xa4, 0x10, 0x9b, //0x0000e540 .quad -7273132090830278360 + 0x27, 0x83, 0x1c, 0x19, 0xb4, 0xf2, 0x7c, 0xca, //0x0000e548 .quad -3855940325606653145 + 0x72, 0x7d, 0xf5, 0x63, 0x1f, 0xce, 0xd4, 0xc1, //0x0000e550 .quad -4479729095110460046 + 0xf1, 0xa3, 0x63, 0x1f, 0x61, 0x2f, 0x1c, 0xfd, //0x0000e558 .quad -208239388580928527 + 0xcf, 0xdc, 0xf2, 0x3c, 0xa7, 0x01, 0x4a, 0xf2, //0x0000e560 .quad -987975350460687153 + 0xed, 0x8c, 0x3c, 0x67, 0x39, 0x3b, 0x63, 0xbc, //0x0000e568 .quad -4871985254153548563 + 0x01, 0xca, 0x17, 0x86, 0x08, 0x41, 0x6e, 0x97, //0x0000e570 .quad -7535013621679011327 + 0x14, 0xd8, 0x85, 0xe0, 0x03, 0x05, 0xbe, 0xd5, //0x0000e578 .quad -3044990783845967852 + 0x82, 0xbc, 0x9d, 0xa7, 0x4a, 0xd1, 0x49, 0xbd, //0x0000e580 .quad -4807081008671376254 + 0x19, 0x4e, 0xa7, 0xd8, 0x44, 0x86, 0x2d, 0x4b, //0x0000e588 .quad 5417133557047315993 + 0xa2, 0x2b, 0x85, 0x51, 0x9d, 0x45, 0x9c, 0xec, //0x0000e590 .quad -1397165242411832414 + 0x9f, 0x21, 0xd1, 0x0e, 0xd6, 0xe7, 0xf8, 0xdd, //0x0000e598 .quad -2451955090545630817 + 0x45, 0x3b, 0xf3, 0x52, 0x82, 0xab, 0xe1, 0x93, //0x0000e5a0 .quad -7790757304148477115 + 0x04, 0xb5, 0x42, 0xc9, 0xe5, 0x90, 0xbb, 0xca, //0x0000e5a8 .quad -3838314940804713212 + 0x17, 0x0a, 0xb0, 0xe7, 0x62, 0x16, 0xda, 0xb8, //0x0000e5b0 .quad -5126760611758208489 + 0x44, 0x62, 0x93, 0x3b, 0x1f, 0x75, 0x6a, 0x3d, //0x0000e5b8 .quad 4425478360848884292 + 0x9d, 0x0c, 0x9c, 0xa1, 0xfb, 0x9b, 0x10, 0xe7, //0x0000e5c0 .quad -1796764746270372707 + 0xd5, 0x3a, 0x78, 0x0a, 0x67, 0x12, 0xc5, 0x0c, //0x0000e5c8 .quad 920161932633717461 + 0xe2, 0x87, 0x01, 0x45, 0x7d, 0x61, 0x6a, 0x90, //0x0000e5d0 .quad -8040506994060064798 + 0xc6, 0x24, 0x8b, 0x66, 0x80, 0x2b, 0xfb, 0x27, //0x0000e5d8 .quad 2880944217109767366 + 0xda, 0xe9, 0x41, 0x96, 0xdc, 0xf9, 0x84, 0xb4, //0x0000e5e0 .quad -5438947724147693094 + 0xf7, 0xed, 0x2d, 0x80, 0x60, 0xf6, 0xf9, 0xb1, //0x0000e5e8 .quad -5622191765467566601 + 0x51, 0x64, 0xd2, 0xbb, 0x53, 0x38, 0xa6, 0xe1, //0x0000e5f0 .quad -2186998636757228463 + 0x74, 0x69, 0x39, 0xa0, 0xf8, 0x73, 0x78, 0x5e, //0x0000e5f8 .quad 6807318348447705460 + 0xb2, 0x7e, 0x63, 0x55, 0x34, 0xe3, 0x07, 0x8d, //0x0000e600 .quad -8284403175614349646 + 0xe9, 0xe1, 0x23, 0x64, 0x7b, 0x48, 0x0b, 0xdb, //0x0000e608 .quad -2662955059861265943 + 0x5f, 0x5e, 0xbc, 0x6a, 0x01, 0xdc, 0x49, 0xb0, //0x0000e610 .quad -5743817951090549153 + 0x63, 0xda, 0x2c, 0x3d, 0x9a, 0x1a, 0xce, 0x91, //0x0000e618 .quad -7940379843253970333 + 0xf7, 0x75, 0x6b, 0xc5, 0x01, 0x53, 0x5c, 0xdc, //0x0000e620 .quad -2568086420435798537 + 0xfc, 0x10, 0x78, 0xcc, 0x40, 0xa1, 0x41, 0x76, //0x0000e628 .quad 8521269269642088700 + 0xba, 0x29, 0x63, 0x1b, 0xe1, 0xb3, 0xb9, 0x89, //0x0000e630 .quad -8522583040413455942 + 0x9e, 0x0a, 0xcb, 0x7f, 0xc8, 0x04, 0xe9, 0xa9, //0x0000e638 .quad -6203421752542164322 + 0x29, 0xf4, 0x3b, 0x62, 0xd9, 0x20, 0x28, 0xac, //0x0000e640 .quad -6041542782089432023 + 0x45, 0xcd, 0xbd, 0x9f, 0xfa, 0x45, 0x63, 0x54, //0x0000e648 .quad 6080780864604458309 + 0x33, 0xf1, 0xca, 0xba, 0x0f, 0x29, 0x32, 0xd7, //0x0000e650 .quad -2940242459184402125 + 0x96, 0x40, 0xad, 0x47, 0x79, 0x17, 0x7c, 0xa9, //0x0000e658 .quad -6234081974526590826 + 0xc0, 0xd6, 0xbe, 0xd4, 0xa9, 0x59, 0x7f, 0x86, //0x0000e660 .quad -8755180564631333184 + 0x5e, 0x48, 0xcc, 0xcc, 0xab, 0x8e, 0xed, 0x49, //0x0000e668 .quad 5327070802775656542 + 0x70, 0x8c, 0xee, 0x49, 0x14, 0x30, 0x1f, 0xa8, //0x0000e670 .quad -6332289687361778576 + 0x75, 0x5a, 0xff, 0xbf, 0x56, 0xf2, 0x68, 0x5c, //0x0000e678 .quad 6658838503469570677 + 0x8c, 0x2f, 0x6a, 0x5c, 0x19, 0xfc, 0x26, 0xd2, //0x0000e680 .quad -3303676090774835316 + 0x12, 0x31, 0xff, 0x6f, 0xec, 0x2e, 0x83, 0x73, //0x0000e688 .quad 8323548129336963346 + 0xb7, 0x5d, 0xc2, 0xd9, 0x8f, 0x5d, 0x58, 0x83, //0x0000e690 .quad -8982326584375353929 + 0xac, 0x7e, 0xff, 0xc5, 0x53, 0xfd, 0x31, 0xc8, //0x0000e698 .quad -4021154456019173716 + 0x25, 0xf5, 0x32, 0xd0, 0xf3, 0x74, 0x2e, 0xa4, //0x0000e6a0 .quad -6616222212041804507 + 0x56, 0x5e, 0x7f, 0xb7, 0xa8, 0x7c, 0x3e, 0xba, //0x0000e6a8 .quad -5026443070023967146 + 0x6f, 0xb2, 0x3f, 0xc4, 0x30, 0x12, 0x3a, 0xcd, //0x0000e6b0 .quad -3658591746624867729 + 0xec, 0x35, 0x5f, 0xe5, 0xd2, 0x1b, 0xce, 0x28, //0x0000e6b8 .quad 2940318199324816876 + 0x85, 0xcf, 0xa7, 0x7a, 0x5e, 0x4b, 0x44, 0x80, //0x0000e6c0 .quad -9204148869281624187 + 0xb4, 0x81, 0x5b, 0xcf, 0x63, 0xd1, 0x80, 0x79, //0x0000e6c8 .quad 8755227902219092404 + 0x66, 0xc3, 0x51, 0x19, 0x36, 0x5e, 0x55, 0xa0, //0x0000e6d0 .quad -6893500068174642330 + 0x20, 0x62, 0x32, 0xc3, 0xbc, 0x05, 0xe1, 0xd7, //0x0000e6d8 .quad -2891023177508298208 + 0x40, 0x34, 0xa6, 0x9f, 0xc3, 0xb5, 0x6a, 0xc8, //0x0000e6e0 .quad -4005189066790915008 + 0xa8, 0xfa, 0xfe, 0xf3, 0x2b, 0x47, 0xd9, 0x8d, //0x0000e6e8 .quad -8225464990312760664 + 0x50, 0xc1, 0x8f, 0x87, 0x34, 0x63, 0x85, 0xfa, //0x0000e6f0 .quad -394800315061255856 + 0x52, 0xb9, 0xfe, 0xf0, 0xf6, 0x98, 0x4f, 0xb1, //0x0000e6f8 .quad -5670145219463562926 + 0xd2, 0xd8, 0xb9, 0xd4, 0x00, 0x5e, 0x93, 0x9c, //0x0000e700 .quad -7164279224554366766 + 0xd4, 0x33, 0x9f, 0x56, 0x9a, 0xbf, 0xd1, 0x6e, //0x0000e708 .quad 7985374283903742932 + 0x07, 0x4f, 0xe8, 0x09, 0x81, 0x35, 0xb8, 0xc3, //0x0000e710 .quad -4343663012265570553 + 0xc9, 0x00, 0x47, 0xec, 0x80, 0x2f, 0x86, 0x0a, //0x0000e718 .quad 758345818024902857 + 0xc8, 0x62, 0x62, 0x4c, 0xe1, 0x42, 0xa6, 0xf4, //0x0000e720 .quad -817892746904575288 + 0xfb, 0xc0, 0x58, 0x27, 0x61, 0xbb, 0x27, 0xcd, //0x0000e728 .quad -3663753745896259333 + 0xbd, 0x7d, 0xbd, 0xcf, 0xcc, 0xe9, 0xe7, 0x98, //0x0000e730 .quad -7428711994456441411 + 0x9d, 0x78, 0x97, 0xb8, 0x1c, 0xd5, 0x38, 0x80, //0x0000e738 .quad -9207375118826243939 + 0x2c, 0xdd, 0xac, 0x03, 0x40, 0xe4, 0x21, 0xbf, //0x0000e740 .quad -4674203974643163860 + 0xc4, 0x56, 0xbd, 0xe6, 0x63, 0x0a, 0x47, 0xe0, //0x0000e748 .quad -2285846861678029116 + 0x78, 0x14, 0x98, 0x04, 0x50, 0x5d, 0xea, 0xee, //0x0000e750 .quad -1231068949876566920 + 0x75, 0xac, 0x6c, 0xe0, 0xfc, 0xcc, 0x58, 0x18, //0x0000e758 .quad 1754377441329851509 + 0xcb, 0x0c, 0xdf, 0x02, 0x52, 0x7a, 0x52, 0x95, //0x0000e760 .quad -7686947121313936181 + 0xc9, 0xeb, 0x43, 0x0c, 0x1e, 0x80, 0x37, 0x0f, //0x0000e768 .quad 1096485900831157193 + 0xfd, 0xcf, 0x96, 0x83, 0xe6, 0x18, 0xa7, 0xba, //0x0000e770 .quad -4996997883215032323 + 0xbb, 0xe6, 0x54, 0x8f, 0x25, 0x60, 0x05, 0xd3, //0x0000e778 .quad -3241078642388441413 + 0xfd, 0x83, 0x7c, 0x24, 0x20, 0xdf, 0x50, 0xe9, //0x0000e780 .quad -1634561335591402499 + 0x6a, 0x20, 0x2a, 0xf3, 0x2e, 0xb8, 0xc6, 0x47, //0x0000e788 .quad 5172023733869224042 + 0x7e, 0xd2, 0xcd, 0x16, 0x74, 0x8b, 0xd2, 0x91, //0x0000e790 .quad -7939129862385708418 + 0x42, 0x54, 0xfa, 0x57, 0x1d, 0x33, 0xdc, 0x4c, //0x0000e798 .quad 5538357842881958978 + 0x1d, 0x47, 0x81, 0x1c, 0x51, 0x2e, 0x47, 0xb6, //0x0000e7a0 .quad -5312226309554747619 + 0x53, 0xe9, 0xf8, 0xad, 0xe4, 0x3f, 0x13, 0xe0, //0x0000e7a8 .quad -2300424733252327085 + 0xe5, 0x98, 0xa1, 0x63, 0xe5, 0xf9, 0xd8, 0xe3, //0x0000e7b0 .quad -2028596868516046619 + 0xa7, 0x23, 0x77, 0xd9, 0xdd, 0x0f, 0x18, 0x58, //0x0000e7b8 .quad 6347841120289366951 + 0x8f, 0xff, 0x44, 0x5e, 0x2f, 0x9c, 0x67, 0x8e, //0x0000e7c0 .quad -8185402070463610993 + 0x49, 0x76, 0xea, 0xa7, 0xea, 0x09, 0x0f, 0x57, //0x0000e7c8 .quad 6273243709394548297 + 0x73, 0x3f, 0xd6, 0x35, 0x3b, 0x83, 0x01, 0xb2, //0x0000e7d0 .quad -5620066569652125837 + 0xdb, 0x13, 0xe5, 0x51, 0x65, 0xcc, 0xd2, 0x2c, //0x0000e7d8 .quad 3229868618315797467 + 0x4f, 0xcf, 0x4b, 0x03, 0x0a, 0xe4, 0x81, 0xde, //0x0000e7e0 .quad -2413397193637769393 + 0xd2, 0x58, 0x5e, 0xa6, 0x7e, 0x7f, 0x07, 0xf8, //0x0000e7e8 .quad -574350245532641070 + 0x91, 0x61, 0x0f, 0x42, 0x86, 0x2e, 0x11, 0x8b, //0x0000e7f0 .quad -8425902273664687727 + 0x83, 0xf7, 0xfa, 0x27, 0xaf, 0xaf, 0x04, 0xfb, //0x0000e7f8 .quad -358968903457900669 + 0xf6, 0x39, 0x93, 0xd2, 0x27, 0x7a, 0xd5, 0xad, //0x0000e800 .quad -5920691823653471754 + 0x64, 0xb5, 0xf9, 0xf1, 0x9a, 0xdb, 0xc5, 0x79, //0x0000e808 .quad 8774660907532399972 + 0x74, 0x08, 0x38, 0xc7, 0xb1, 0xd8, 0x4a, 0xd9, //0x0000e810 .quad -2789178761139451788 + 0xbd, 0x22, 0x78, 0xae, 0x81, 0x52, 0x37, 0x18, //0x0000e818 .quad 1744954097560724157 + 0x48, 0x05, 0x83, 0x1c, 0x6f, 0xc7, 0xce, 0x87, //0x0000e820 .quad -8660765753353239224 + 0xb6, 0x15, 0x0b, 0x0d, 0x91, 0x93, 0x22, 0x8f, //0x0000e828 .quad -8132775725879323210 + 0x9a, 0xc6, 0xa3, 0xe3, 0x4a, 0x79, 0xc2, 0xa9, //0x0000e830 .quad -6214271173264161126 + 0x23, 0xdb, 0x4d, 0x50, 0x75, 0x38, 0xeb, 0xb2, //0x0000e838 .quad -5554283638921766109 + 0x41, 0xb8, 0x8c, 0x9c, 0x9d, 0x17, 0x33, 0xd4, //0x0000e840 .quad -3156152948152813503 + 0xec, 0x51, 0x61, 0xa4, 0x92, 0x06, 0xa6, 0x5f, //0x0000e848 .quad 6892203506629956076 + 0x28, 0xf3, 0xd7, 0x81, 0xc2, 0xee, 0x9f, 0x84, //0x0000e850 .quad -8890124620236590296 + 0x34, 0xd3, 0xbc, 0xa6, 0x1b, 0xc4, 0xc7, 0xdb, //0x0000e858 .quad -2609901835997359308 + 0xf3, 0xef, 0x4d, 0x22, 0x73, 0xea, 0xc7, 0xa5, //0x0000e860 .quad -6500969756868349965 + 0x01, 0x08, 0x6c, 0x90, 0x22, 0xb5, 0xb9, 0x12, //0x0000e868 .quad 1349308723430688769 + 0xef, 0x6b, 0xe1, 0xea, 0x0f, 0xe5, 0x39, 0xcf, //0x0000e870 .quad -3514526177658049553 + 0x01, 0x0a, 0x87, 0x34, 0x6b, 0x22, 0x68, 0xd7, //0x0000e878 .quad -2925050114139026943 + 0x75, 0xe3, 0xcc, 0xf2, 0x29, 0x2f, 0x84, 0x81, //0x0000e880 .quad -9114107888677362827 + 0x41, 0x66, 0xd4, 0x00, 0x83, 0x15, 0xa1, 0xe6, //0x0000e888 .quad -1828156321336891839 + 0x53, 0x1c, 0x80, 0x6f, 0xf4, 0x3a, 0xe5, 0xa1, //0x0000e890 .quad -6780948842419315629 + 0xd1, 0x7f, 0x09, 0xc1, 0xe3, 0x5a, 0x49, 0x60, //0x0000e898 .quad 6938176635183661009 + 0x68, 0x23, 0x60, 0x8b, 0xb1, 0x89, 0x5e, 0xca, //0x0000e8a0 .quad -3864500034596756632 + 0xc5, 0xdf, 0x4b, 0xb1, 0x9c, 0xb1, 0x5b, 0x38, //0x0000e8a8 .quad 4061034775552188357 + 0x42, 0x2c, 0x38, 0xee, 0x1d, 0x2c, 0xf6, 0xfc, //0x0000e8b0 .quad -218939024818557886 + 0xb6, 0xd7, 0x9e, 0xdd, 0x03, 0x9e, 0x72, 0x46, //0x0000e8b8 .quad 5076293469440235446 + 0xa9, 0x1b, 0xe3, 0xb4, 0x92, 0xdb, 0x19, 0x9e, //0x0000e8c0 .quad -7054365918152680535 + 0xd2, 0x46, 0x83, 0x6a, 0xc2, 0xa2, 0x07, 0x6c, //0x0000e8c8 .quad 7784369436827535058 + //0x0000e8d0 .p2align 4, 0x00 + //0x0000e8d0 _VecShiftShuffles + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, //0x0000e8d0 QUAD $0x0706050403020100; QUAD $0x0f0e0d0c0b0a0908 // .ascii 16, '\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f' + 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, //0x0000e8e0 QUAD $0x0807060504030201; QUAD $0xff0f0e0d0c0b0a09 // .ascii 16, '\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff' + 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, //0x0000e8f0 QUAD $0x0908070605040302; QUAD $0xffff0f0e0d0c0b0a // .ascii 16, '\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff' + 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, //0x0000e900 QUAD $0x0a09080706050403; QUAD $0xffffff0f0e0d0c0b // .ascii 16, '\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff' + 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, //0x0000e910 QUAD $0x0b0a090807060504; QUAD $0xffffffff0f0e0d0c // .ascii 16, '\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff' + 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, //0x0000e920 QUAD $0x0c0b0a0908070605; QUAD $0xffffffffff0f0e0d // .ascii 16, '\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff' + 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x0000e930 QUAD $0x0d0c0b0a09080706; QUAD $0xffffffffffff0f0e // .ascii 16, '\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff\xff' + 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x0000e940 QUAD $0x0e0d0c0b0a090807; QUAD $0xffffffffffffff0f // .ascii 16, '\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff\xff\xff' + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x0000e950 QUAD $0x0f0e0d0c0b0a0908; QUAD $0xffffffffffffffff // .ascii 16, '\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff\xff\xff\xff' + //0x0000e960 .p2align 4, 0x00 + //0x0000e960 __SingleQuoteTab + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e960 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x30, 0x00, 0x00, //0x0000e968 QUAD $0x000030303030755c // .asciz 8, '\\u0000\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e970 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x31, 0x00, 0x00, //0x0000e978 QUAD $0x000031303030755c // .asciz 8, '\\u0001\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e980 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x32, 0x00, 0x00, //0x0000e988 QUAD $0x000032303030755c // .asciz 8, '\\u0002\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e990 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x33, 0x00, 0x00, //0x0000e998 QUAD $0x000033303030755c // .asciz 8, '\\u0003\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e9a0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x34, 0x00, 0x00, //0x0000e9a8 QUAD $0x000034303030755c // .asciz 8, '\\u0004\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e9b0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x35, 0x00, 0x00, //0x0000e9b8 QUAD $0x000035303030755c // .asciz 8, '\\u0005\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e9c0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x36, 0x00, 0x00, //0x0000e9c8 QUAD $0x000036303030755c // .asciz 8, '\\u0006\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e9d0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x37, 0x00, 0x00, //0x0000e9d8 QUAD $0x000037303030755c // .asciz 8, '\\u0007\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e9e0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x38, 0x00, 0x00, //0x0000e9e8 QUAD $0x000038303030755c // .asciz 8, '\\u0008\x00\x00' + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e9f0 .quad 2 + 0x5c, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e9f8 QUAD $0x000000000000745c // .asciz 8, '\\t\x00\x00\x00\x00\x00\x00' + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ea00 .quad 2 + 0x5c, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ea08 QUAD $0x0000000000006e5c // .asciz 8, '\\n\x00\x00\x00\x00\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ea10 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x62, 0x00, 0x00, //0x0000ea18 QUAD $0x000062303030755c // .asciz 8, '\\u000b\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ea20 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x63, 0x00, 0x00, //0x0000ea28 QUAD $0x000063303030755c // .asciz 8, '\\u000c\x00\x00' + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ea30 .quad 2 + 0x5c, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ea38 QUAD $0x000000000000725c // .asciz 8, '\\r\x00\x00\x00\x00\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ea40 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x65, 0x00, 0x00, //0x0000ea48 QUAD $0x000065303030755c // .asciz 8, '\\u000e\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ea50 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x66, 0x00, 0x00, //0x0000ea58 QUAD $0x000066303030755c // .asciz 8, '\\u000f\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ea60 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x30, 0x00, 0x00, //0x0000ea68 QUAD $0x000030313030755c // .asciz 8, '\\u0010\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ea70 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x31, 0x00, 0x00, //0x0000ea78 QUAD $0x000031313030755c // .asciz 8, '\\u0011\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ea80 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x32, 0x00, 0x00, //0x0000ea88 QUAD $0x000032313030755c // .asciz 8, '\\u0012\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ea90 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x33, 0x00, 0x00, //0x0000ea98 QUAD $0x000033313030755c // .asciz 8, '\\u0013\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eaa0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x34, 0x00, 0x00, //0x0000eaa8 QUAD $0x000034313030755c // .asciz 8, '\\u0014\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eab0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x35, 0x00, 0x00, //0x0000eab8 QUAD $0x000035313030755c // .asciz 8, '\\u0015\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eac0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x36, 0x00, 0x00, //0x0000eac8 QUAD $0x000036313030755c // .asciz 8, '\\u0016\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ead0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x37, 0x00, 0x00, //0x0000ead8 QUAD $0x000037313030755c // .asciz 8, '\\u0017\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eae0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x38, 0x00, 0x00, //0x0000eae8 QUAD $0x000038313030755c // .asciz 8, '\\u0018\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eaf0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x39, 0x00, 0x00, //0x0000eaf8 QUAD $0x000039313030755c // .asciz 8, '\\u0019\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eb00 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x61, 0x00, 0x00, //0x0000eb08 QUAD $0x000061313030755c // .asciz 8, '\\u001a\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eb10 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x62, 0x00, 0x00, //0x0000eb18 QUAD $0x000062313030755c // .asciz 8, '\\u001b\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eb20 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x63, 0x00, 0x00, //0x0000eb28 QUAD $0x000063313030755c // .asciz 8, '\\u001c\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eb30 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x64, 0x00, 0x00, //0x0000eb38 QUAD $0x000064313030755c // .asciz 8, '\\u001d\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eb40 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x65, 0x00, 0x00, //0x0000eb48 QUAD $0x000065313030755c // .asciz 8, '\\u001e\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eb50 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x66, 0x00, 0x00, //0x0000eb58 QUAD $0x000066313030755c // .asciz 8, '\\u001f\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eb60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eb70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eb80 .quad 2 + 0x5c, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eb88 QUAD $0x000000000000225c // .asciz 8, '\\"\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eb90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eba0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ebb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ebc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ebd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ebe0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ebf0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ec00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ec10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ec20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ec30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ec40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ec50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ec60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ec70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ec80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ec90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eca0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ecb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ecc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ecd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ece0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ecf0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ed00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ed10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ed20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ed30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ed40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ed50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ed60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ed70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ed80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ed90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eda0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000edb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000edc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000edd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ede0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000edf0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ee00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ee10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ee20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ee30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ee40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ee50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ee60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ee70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ee80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ee90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eea0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eeb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eec0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eed0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eee0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eef0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ef00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ef10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ef20 .quad 2 + 0x5c, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ef28 QUAD $0x0000000000005c5c // .asciz 8, '\\\\\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ef30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ef40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ef50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ef60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ef70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ef80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ef90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000efa0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000efb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000efc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000efd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000efe0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eff0 .quad 2 - 0x5c, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eff8 QUAD $0x000000000000225c // .asciz 8, '\\"\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eff0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f000 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f010 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f020 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' @@ -13327,8 +13000,7 @@ var Text__native_entry__ = []byte{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f360 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f370 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f380 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f390 .quad 2 - 0x5c, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f398 QUAD $0x0000000000005c5c // .asciz 8, '\\\\\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f390 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f3a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f3b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f3c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' @@ -13421,41 +13093,76 @@ var Text__native_entry__ = []byte{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f930 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f940 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f950 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f960 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f970 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f980 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f990 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f9a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f9b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f9c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f9d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f9e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f9f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fa00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fa10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fa20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fa30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fa40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fa50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fa60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fa70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fa80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fa90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000faa0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fab0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fac0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fad0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fae0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000faf0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fb00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fb10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fb20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fb30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fb40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fb50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + //0x0000f960 .p2align 4, 0x00 + //0x0000f960 __DoubleQuoteTab + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f960 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x30, 0x00, //0x0000f968 QUAD $0x0030303030755c5c // .asciz 8, '\\\\u0000\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f970 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x31, 0x00, //0x0000f978 QUAD $0x0031303030755c5c // .asciz 8, '\\\\u0001\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f980 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x32, 0x00, //0x0000f988 QUAD $0x0032303030755c5c // .asciz 8, '\\\\u0002\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f990 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x33, 0x00, //0x0000f998 QUAD $0x0033303030755c5c // .asciz 8, '\\\\u0003\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f9a0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x34, 0x00, //0x0000f9a8 QUAD $0x0034303030755c5c // .asciz 8, '\\\\u0004\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f9b0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x35, 0x00, //0x0000f9b8 QUAD $0x0035303030755c5c // .asciz 8, '\\\\u0005\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f9c0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x36, 0x00, //0x0000f9c8 QUAD $0x0036303030755c5c // .asciz 8, '\\\\u0006\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f9d0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x37, 0x00, //0x0000f9d8 QUAD $0x0037303030755c5c // .asciz 8, '\\\\u0007\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f9e0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x38, 0x00, //0x0000f9e8 QUAD $0x0038303030755c5c // .asciz 8, '\\\\u0008\x00' + 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f9f0 .quad 3 + 0x5c, 0x5c, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f9f8 QUAD $0x0000000000745c5c // .asciz 8, '\\\\t\x00\x00\x00\x00\x00' + 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fa00 .quad 3 + 0x5c, 0x5c, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fa08 QUAD $0x00000000006e5c5c // .asciz 8, '\\\\n\x00\x00\x00\x00\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fa10 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x62, 0x00, //0x0000fa18 QUAD $0x0062303030755c5c // .asciz 8, '\\\\u000b\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fa20 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x63, 0x00, //0x0000fa28 QUAD $0x0063303030755c5c // .asciz 8, '\\\\u000c\x00' + 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fa30 .quad 3 + 0x5c, 0x5c, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fa38 QUAD $0x0000000000725c5c // .asciz 8, '\\\\r\x00\x00\x00\x00\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fa40 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x65, 0x00, //0x0000fa48 QUAD $0x0065303030755c5c // .asciz 8, '\\\\u000e\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fa50 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x66, 0x00, //0x0000fa58 QUAD $0x0066303030755c5c // .asciz 8, '\\\\u000f\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fa60 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x30, 0x00, //0x0000fa68 QUAD $0x0030313030755c5c // .asciz 8, '\\\\u0010\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fa70 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x31, 0x00, //0x0000fa78 QUAD $0x0031313030755c5c // .asciz 8, '\\\\u0011\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fa80 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x32, 0x00, //0x0000fa88 QUAD $0x0032313030755c5c // .asciz 8, '\\\\u0012\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fa90 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x33, 0x00, //0x0000fa98 QUAD $0x0033313030755c5c // .asciz 8, '\\\\u0013\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000faa0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x34, 0x00, //0x0000faa8 QUAD $0x0034313030755c5c // .asciz 8, '\\\\u0014\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fab0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x35, 0x00, //0x0000fab8 QUAD $0x0035313030755c5c // .asciz 8, '\\\\u0015\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fac0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x36, 0x00, //0x0000fac8 QUAD $0x0036313030755c5c // .asciz 8, '\\\\u0016\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fad0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x37, 0x00, //0x0000fad8 QUAD $0x0037313030755c5c // .asciz 8, '\\\\u0017\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fae0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x38, 0x00, //0x0000fae8 QUAD $0x0038313030755c5c // .asciz 8, '\\\\u0018\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000faf0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x39, 0x00, //0x0000faf8 QUAD $0x0039313030755c5c // .asciz 8, '\\\\u0019\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fb00 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x61, 0x00, //0x0000fb08 QUAD $0x0061313030755c5c // .asciz 8, '\\\\u001a\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fb10 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x62, 0x00, //0x0000fb18 QUAD $0x0062313030755c5c // .asciz 8, '\\\\u001b\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fb20 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x63, 0x00, //0x0000fb28 QUAD $0x0063313030755c5c // .asciz 8, '\\\\u001c\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fb30 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x64, 0x00, //0x0000fb38 QUAD $0x0064313030755c5c // .asciz 8, '\\\\u001d\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fb40 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x65, 0x00, //0x0000fb48 QUAD $0x0065313030755c5c // .asciz 8, '\\\\u001e\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fb50 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x66, 0x00, //0x0000fb58 QUAD $0x0066313030755c5c // .asciz 8, '\\\\u001f\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fb60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fb70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fb80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fb80 .quad 4 + 0x5c, 0x5c, 0x5c, 0x22, 0x00, 0x00, 0x00, 0x00, //0x0000fb88 QUAD $0x00000000225c5c5c // .asciz 8, '\\\\\\"\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fb90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fba0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fbb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' @@ -13492,76 +13199,42 @@ var Text__native_entry__ = []byte{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fda0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fdb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fdc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - //0x0000fdd0 .p2align 4, 0x00 - //0x0000fdd0 __DoubleQuoteTab - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fdd0 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x30, 0x00, //0x0000fdd8 QUAD $0x0030303030755c5c // .asciz 8, '\\\\u0000\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fde0 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x31, 0x00, //0x0000fde8 QUAD $0x0031303030755c5c // .asciz 8, '\\\\u0001\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fdf0 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x32, 0x00, //0x0000fdf8 QUAD $0x0032303030755c5c // .asciz 8, '\\\\u0002\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fe00 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x33, 0x00, //0x0000fe08 QUAD $0x0033303030755c5c // .asciz 8, '\\\\u0003\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fe10 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x34, 0x00, //0x0000fe18 QUAD $0x0034303030755c5c // .asciz 8, '\\\\u0004\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fe20 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x35, 0x00, //0x0000fe28 QUAD $0x0035303030755c5c // .asciz 8, '\\\\u0005\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fe30 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x36, 0x00, //0x0000fe38 QUAD $0x0036303030755c5c // .asciz 8, '\\\\u0006\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fe40 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x37, 0x00, //0x0000fe48 QUAD $0x0037303030755c5c // .asciz 8, '\\\\u0007\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fe50 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x38, 0x00, //0x0000fe58 QUAD $0x0038303030755c5c // .asciz 8, '\\\\u0008\x00' - 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fe60 .quad 3 - 0x5c, 0x5c, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fe68 QUAD $0x0000000000745c5c // .asciz 8, '\\\\t\x00\x00\x00\x00\x00' - 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fe70 .quad 3 - 0x5c, 0x5c, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fe78 QUAD $0x00000000006e5c5c // .asciz 8, '\\\\n\x00\x00\x00\x00\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fe80 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x62, 0x00, //0x0000fe88 QUAD $0x0062303030755c5c // .asciz 8, '\\\\u000b\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fe90 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x63, 0x00, //0x0000fe98 QUAD $0x0063303030755c5c // .asciz 8, '\\\\u000c\x00' - 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fea0 .quad 3 - 0x5c, 0x5c, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fea8 QUAD $0x0000000000725c5c // .asciz 8, '\\\\r\x00\x00\x00\x00\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000feb0 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x65, 0x00, //0x0000feb8 QUAD $0x0065303030755c5c // .asciz 8, '\\\\u000e\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fec0 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x66, 0x00, //0x0000fec8 QUAD $0x0066303030755c5c // .asciz 8, '\\\\u000f\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fed0 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x30, 0x00, //0x0000fed8 QUAD $0x0030313030755c5c // .asciz 8, '\\\\u0010\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fee0 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x31, 0x00, //0x0000fee8 QUAD $0x0031313030755c5c // .asciz 8, '\\\\u0011\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fef0 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x32, 0x00, //0x0000fef8 QUAD $0x0032313030755c5c // .asciz 8, '\\\\u0012\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ff00 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x33, 0x00, //0x0000ff08 QUAD $0x0033313030755c5c // .asciz 8, '\\\\u0013\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ff10 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x34, 0x00, //0x0000ff18 QUAD $0x0034313030755c5c // .asciz 8, '\\\\u0014\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ff20 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x35, 0x00, //0x0000ff28 QUAD $0x0035313030755c5c // .asciz 8, '\\\\u0015\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ff30 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x36, 0x00, //0x0000ff38 QUAD $0x0036313030755c5c // .asciz 8, '\\\\u0016\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ff40 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x37, 0x00, //0x0000ff48 QUAD $0x0037313030755c5c // .asciz 8, '\\\\u0017\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ff50 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x38, 0x00, //0x0000ff58 QUAD $0x0038313030755c5c // .asciz 8, '\\\\u0018\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ff60 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x39, 0x00, //0x0000ff68 QUAD $0x0039313030755c5c // .asciz 8, '\\\\u0019\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ff70 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x61, 0x00, //0x0000ff78 QUAD $0x0061313030755c5c // .asciz 8, '\\\\u001a\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ff80 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x62, 0x00, //0x0000ff88 QUAD $0x0062313030755c5c // .asciz 8, '\\\\u001b\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ff90 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x63, 0x00, //0x0000ff98 QUAD $0x0063313030755c5c // .asciz 8, '\\\\u001c\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ffa0 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x64, 0x00, //0x0000ffa8 QUAD $0x0064313030755c5c // .asciz 8, '\\\\u001d\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ffb0 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x65, 0x00, //0x0000ffb8 QUAD $0x0065313030755c5c // .asciz 8, '\\\\u001e\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ffc0 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x66, 0x00, //0x0000ffc8 QUAD $0x0066313030755c5c // .asciz 8, '\\\\u001f\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fdd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fde0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fdf0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fe00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fe10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fe20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fe30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fe40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fe50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fe60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fe70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fe80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fe90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fea0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000feb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fec0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fed0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fee0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fef0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ff00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ff10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ff20 .quad 4 + 0x5c, 0x5c, 0x5c, 0x5c, 0x00, 0x00, 0x00, 0x00, //0x0000ff28 QUAD $0x000000005c5c5c5c // .asciz 8, '\\\\\\\\\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ff30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ff40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ff50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ff60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ff70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ff80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ff90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ffa0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ffb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ffc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ffd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ffe0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fff0 .quad 4 - 0x5c, 0x5c, 0x5c, 0x22, 0x00, 0x00, 0x00, 0x00, //0x0000fff8 QUAD $0x00000000225c5c5c // .asciz 8, '\\\\\\"\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fff0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010000 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010010 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010020 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' @@ -13619,8 +13292,7 @@ var Text__native_entry__ = []byte{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010360 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010370 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010380 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010390 .quad 4 - 0x5c, 0x5c, 0x5c, 0x5c, 0x00, 0x00, 0x00, 0x00, //0x00010398 QUAD $0x000000005c5c5c5c // .asciz 8, '\\\\\\\\\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010390 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000103a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000103b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000103c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' @@ -13713,38 +13385,46 @@ var Text__native_entry__ = []byte{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010930 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010940 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010950 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010960 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010970 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010980 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010990 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000109a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000109b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000109c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000109d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000109e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000109f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010a00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010a10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010a20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010a30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010a40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010a50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010a60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010a70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010a80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010a90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010aa0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010ab0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010ac0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010ad0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010ae0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010af0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010b00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010b10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010b20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010b30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010b40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010b50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + //0x00010960 .p2align 4, 0x00 + //0x00010960 __EscTab + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, //0x00010960 QUAD $0x0101010101010101; QUAD $0x0101010101010101 // .ascii 16, '\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01' + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, //0x00010970 QUAD $0x0101010101010101; QUAD $0x0101010101010101 // .ascii 16, '\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01' + 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010980 QUAD $0x0000000000010000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010990 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000109a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, //0x000109b0 QUAD $0x0000000000000000; LONG $0x00000000; BYTE $0x01 // .ascii 13, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000109bd QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000109cd QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000109dd QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000109ed QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000109fd QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010a0d QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010a1d QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010a2d QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010a3d QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010a4d QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, //0x00010a5d WORD $0x0000; BYTE $0x00 // .space 3, '\x00\x00\x00' + //0x00010a60 .p2align 4, 0x00 + //0x00010a60 __UnquoteTab + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010a60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010a70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2f, //0x00010a80 QUAD $0x0000000000220000; QUAD $0x2f00000000000000 // .ascii 16, '\x00\x00"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00/' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010a90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010aa0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, //0x00010ab0 QUAD $0x0000000000000000; QUAD $0x0000005c00000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\\\x00\x00\x00' + 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, //0x00010ac0 QUAD $0x000c000000080000; QUAD $0x000a000000000000 // .ascii 16, '\x00\x00\x08\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\n\x00' + 0x00, 0x00, 0x0d, 0x00, 0x09, 0xff, //0x00010ad0 LONG $0x000d0000; WORD $0xff09 // .ascii 6, '\x00\x00\r\x00\t\xff' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010ad6 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010ae6 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010af6 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010b06 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010b16 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010b26 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010b36 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010b46 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010b56 QUAD $0x0000000000000000; WORD $0x0000 // .space 10, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + //0x00010b60 .p2align 4, 0x00 + //0x00010b60 __HtmlQuoteTab 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010b60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010b70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010b80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' @@ -13783,47 +13463,42 @@ var Text__native_entry__ = []byte{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010d90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010da0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010db0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010dc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - //0x00010dd0 .p2align 4, 0x00 - //0x00010dd0 __EscTab - 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, //0x00010dd0 QUAD $0x0101010101010101; QUAD $0x0101010101010101 // .ascii 16, '\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01' - 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, //0x00010de0 QUAD $0x0101010101010101; QUAD $0x0101010101010101 // .ascii 16, '\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01' - 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010df0 QUAD $0x0000000000010000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010e00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010e10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, //0x00010e20 QUAD $0x0000000000000000; LONG $0x00000000; BYTE $0x01 // .ascii 13, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010e2d QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010e3d QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010e4d QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010e5d QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010e6d QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010e7d QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010e8d QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010e9d QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010ead QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010ebd QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, //0x00010ecd WORD $0x0000; BYTE $0x00 // .space 3, '\x00\x00\x00' - //0x00010ed0 .p2align 4, 0x00 - //0x00010ed0 __UnquoteTab - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010ed0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010ee0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2f, //0x00010ef0 QUAD $0x0000000000220000; QUAD $0x2f00000000000000 // .ascii 16, '\x00\x00"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00/' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010f00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010f10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, //0x00010f20 QUAD $0x0000000000000000; QUAD $0x0000005c00000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\\\x00\x00\x00' - 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, //0x00010f30 QUAD $0x000c000000080000; QUAD $0x000a000000000000 // .ascii 16, '\x00\x00\x08\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\n\x00' - 0x00, 0x00, 0x0d, 0x00, 0x09, 0xff, //0x00010f40 LONG $0x000d0000; WORD $0xff09 // .ascii 6, '\x00\x00\r\x00\t\xff' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010f46 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010f56 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010f66 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010f76 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010f86 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010f96 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010fa6 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010fb6 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010fc6 QUAD $0x0000000000000000; WORD $0x0000 // .space 10, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - //0x00010fd0 .p2align 4, 0x00 - //0x00010fd0 __HtmlQuoteTab + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010dc0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x32, 0x36, 0x00, 0x00, //0x00010dc8 QUAD $0x000036323030755c // .asciz 8, '\\u0026\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010dd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010de0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010df0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010e00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010e10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010e20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010e30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010e40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010e50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010e60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010e70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010e80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010e90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010ea0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010eb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010ec0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010ed0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010ee0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010ef0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010f00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010f10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010f20 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x33, 0x63, 0x00, 0x00, //0x00010f28 QUAD $0x000063333030755c // .asciz 8, '\\u003c\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010f30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010f40 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x33, 0x65, 0x00, 0x00, //0x00010f48 QUAD $0x000065333030755c // .asciz 8, '\\u003e\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010f50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010f60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010f70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010f80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010f90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010fa0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010fb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010fc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010fd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010fe0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010ff0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' @@ -13862,8 +13537,7 @@ var Text__native_entry__ = []byte{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011200 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011210 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011220 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011230 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x32, 0x36, 0x00, 0x00, //0x00011238 QUAD $0x000036323030755c // .asciz 8, '\\u0026\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011230 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011240 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011250 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011260 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' @@ -13885,11 +13559,9 @@ var Text__native_entry__ = []byte{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011360 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011370 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011380 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011390 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x33, 0x63, 0x00, 0x00, //0x00011398 QUAD $0x000063333030755c // .asciz 8, '\\u003c\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011390 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000113a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000113b0 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x33, 0x65, 0x00, 0x00, //0x000113b8 QUAD $0x000065333030755c // .asciz 8, '\\u003e\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000113b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000113c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000113d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000113e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' @@ -13924,8 +13596,10 @@ var Text__native_entry__ = []byte{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000115b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000115c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000115d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000115e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000115f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000115e0 .quad 6 + 0x5c, 0x75, 0x32, 0x30, 0x32, 0x38, 0x00, 0x00, //0x000115e8 QUAD $0x000038323032755c // .asciz 8, '\\u2028\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000115f0 .quad 6 + 0x5c, 0x75, 0x32, 0x30, 0x32, 0x39, 0x00, 0x00, //0x000115f8 QUAD $0x000039323032755c // .asciz 8, '\\u2029\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011600 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011610 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011620 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' @@ -13995,10 +13669,8 @@ var Text__native_entry__ = []byte{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011a20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011a30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011a40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011a50 .quad 6 - 0x5c, 0x75, 0x32, 0x30, 0x32, 0x38, 0x00, 0x00, //0x00011a58 QUAD $0x000038323032755c // .asciz 8, '\\u2028\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011a60 .quad 6 - 0x5c, 0x75, 0x32, 0x30, 0x32, 0x39, 0x00, 0x00, //0x00011a68 QUAD $0x000039323032755c // .asciz 8, '\\u2029\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011a50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011a60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011a70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011a80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011a90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' @@ -14014,668 +13686,597 @@ var Text__native_entry__ = []byte{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011b30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011b40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011b50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + //0x00011b60 .p2align 4, 0x00 + //0x00011b60 _LSHIFT_TAB 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011b60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011b70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011b80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011b90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011ba0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011bb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011bc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011bd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011be0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011bf0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011c00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011c10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011c20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011c30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011c40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011c50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011c60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011c70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011c80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011c90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011ca0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011cb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011cc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011cd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011ce0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011cf0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011d00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011d10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011d20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011d30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011d40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011d50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011d60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011d70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011d80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011d90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011da0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011db0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011dc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011dd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011de0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011df0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011e00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011e10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011e20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011e30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011e40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011e50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011e60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011e70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011e80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011e90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011ea0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011eb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011ec0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011ed0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011ee0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011ef0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011f00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011f10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011f20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011f30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011f40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011f50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011f60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011f70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011f80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011f90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011fa0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011fb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011fc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - //0x00011fd0 .p2align 4, 0x00 - //0x00011fd0 _LSHIFT_TAB - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011fd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011fe0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011ff0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012000 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012010 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012020 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012030 QUAD $0x0000000000000000 // .space 8, '\x00\x00\x00\x00\x00\x00\x00\x00' - 0x01, 0x00, 0x00, 0x00, //0x00012038 .long 1 - 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001203c QUAD $0x0000000000000035; QUAD $0x0000000000000000 // .asciz 16, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001204c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001205c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001206c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001207c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001208c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x0001209c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x01, 0x00, 0x00, 0x00, //0x000120a0 .long 1 - 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000120a4 QUAD $0x0000000000003532; QUAD $0x0000000000000000 // .asciz 16, '25\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000120b4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000120c4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000120d4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000120e4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000120f4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00012104 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x01, 0x00, 0x00, 0x00, //0x00012108 .long 1 - 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001210c QUAD $0x0000000000353231; QUAD $0x0000000000000000 // .asciz 16, '125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001211c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001212c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001213c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001214c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001215c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x0001216c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x02, 0x00, 0x00, 0x00, //0x00012170 .long 2 - 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012174 QUAD $0x0000000000353236; QUAD $0x0000000000000000 // .asciz 16, '625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012184 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012194 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000121a4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000121b4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000121c4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x000121d4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x02, 0x00, 0x00, 0x00, //0x000121d8 .long 2 - 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000121dc QUAD $0x0000000035323133; QUAD $0x0000000000000000 // .asciz 16, '3125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000121ec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000121fc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001220c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001221c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001222c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x0001223c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x02, 0x00, 0x00, 0x00, //0x00012240 .long 2 - 0x31, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012244 QUAD $0x0000003532363531; QUAD $0x0000000000000000 // .asciz 16, '15625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012254 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012264 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012274 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012284 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012294 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x000122a4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x03, 0x00, 0x00, 0x00, //0x000122a8 .long 3 - 0x37, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000122ac QUAD $0x0000003532313837; QUAD $0x0000000000000000 // .asciz 16, '78125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000122bc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000122cc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000122dc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000122ec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000122fc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x0001230c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x03, 0x00, 0x00, 0x00, //0x00012310 .long 3 - 0x33, 0x39, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012314 QUAD $0x0000353236303933; QUAD $0x0000000000000000 // .asciz 16, '390625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012324 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012334 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012344 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012354 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012364 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00012374 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x03, 0x00, 0x00, 0x00, //0x00012378 .long 3 - 0x31, 0x39, 0x35, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001237c QUAD $0x0035323133353931; QUAD $0x0000000000000000 // .asciz 16, '1953125\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001238c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001239c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000123ac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000123bc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000123cc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x000123dc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x04, 0x00, 0x00, 0x00, //0x000123e0 .long 4 - 0x39, 0x37, 0x36, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000123e4 QUAD $0x0035323635363739; QUAD $0x0000000000000000 // .asciz 16, '9765625\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000123f4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012404 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012414 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012424 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012434 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00012444 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x04, 0x00, 0x00, 0x00, //0x00012448 .long 4 - 0x34, 0x38, 0x38, 0x32, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001244c QUAD $0x3532313832383834; QUAD $0x0000000000000000 // .asciz 16, '48828125\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001245c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001246c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001247c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001248c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001249c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x000124ac LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x04, 0x00, 0x00, 0x00, //0x000124b0 .long 4 - 0x32, 0x34, 0x34, 0x31, 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000124b4 QUAD $0x3236303431343432; QUAD $0x0000000000000035 // .asciz 16, '244140625\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000124c4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000124d4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000124e4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000124f4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012504 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00012514 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x04, 0x00, 0x00, 0x00, //0x00012518 .long 4 - 0x31, 0x32, 0x32, 0x30, 0x37, 0x30, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001251c QUAD $0x3133303730323231; QUAD $0x0000000000003532 // .asciz 16, '1220703125\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001252c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001253c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001254c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001255c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001256c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x0001257c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x05, 0x00, 0x00, 0x00, //0x00012580 .long 5 - 0x36, 0x31, 0x30, 0x33, 0x35, 0x31, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012584 QUAD $0x3635313533303136; QUAD $0x0000000000003532 // .asciz 16, '6103515625\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012594 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000125a4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000125b4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000125c4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000125d4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x000125e4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x05, 0x00, 0x00, 0x00, //0x000125e8 .long 5 - 0x33, 0x30, 0x35, 0x31, 0x37, 0x35, 0x37, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000125ec QUAD $0x3837353731353033; QUAD $0x0000000000353231 // .asciz 16, '30517578125\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000125fc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001260c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001261c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001262c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001263c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x0001264c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x05, 0x00, 0x00, 0x00, //0x00012650 .long 5 - 0x31, 0x35, 0x32, 0x35, 0x38, 0x37, 0x38, 0x39, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, //0x00012654 QUAD $0x3938373835323531; QUAD $0x0000000035323630 // .asciz 16, '152587890625\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012664 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012674 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012684 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012694 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000126a4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x000126b4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x06, 0x00, 0x00, 0x00, //0x000126b8 .long 6 - 0x37, 0x36, 0x32, 0x39, 0x33, 0x39, 0x34, 0x35, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, //0x000126bc QUAD $0x3534393339323637; QUAD $0x0000000035323133 // .asciz 16, '762939453125\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000126cc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000126dc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000126ec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000126fc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001270c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x0001271c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x06, 0x00, 0x00, 0x00, //0x00012720 .long 6 - 0x33, 0x38, 0x31, 0x34, 0x36, 0x39, 0x37, 0x32, 0x36, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, //0x00012724 QUAD $0x3237393634313833; QUAD $0x0000003532363536 // .asciz 16, '3814697265625\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012734 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012744 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012754 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012764 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012774 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00012784 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x06, 0x00, 0x00, 0x00, //0x00012788 .long 6 - 0x31, 0x39, 0x30, 0x37, 0x33, 0x34, 0x38, 0x36, 0x33, 0x32, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, //0x0001278c QUAD $0x3638343337303931; QUAD $0x0000353231383233 // .asciz 16, '19073486328125\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001279c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000127ac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000127bc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000127cc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000127dc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x000127ec LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x07, 0x00, 0x00, 0x00, //0x000127f0 .long 7 - 0x39, 0x35, 0x33, 0x36, 0x37, 0x34, 0x33, 0x31, 0x36, 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, //0x000127f4 QUAD $0x3133343736333539; QUAD $0x0000353236303436 // .asciz 16, '95367431640625\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012804 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012814 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012824 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012834 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012844 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00012854 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x07, 0x00, 0x00, 0x00, //0x00012858 .long 7 - 0x34, 0x37, 0x36, 0x38, 0x33, 0x37, 0x31, 0x35, 0x38, 0x32, 0x30, 0x33, 0x31, 0x32, 0x35, 0x00, //0x0001285c QUAD $0x3531373338363734; QUAD $0x0035323133303238 // .asciz 16, '476837158203125\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001286c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001287c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001288c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001289c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000128ac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x000128bc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x07, 0x00, 0x00, 0x00, //0x000128c0 .long 7 - 0x32, 0x33, 0x38, 0x34, 0x31, 0x38, 0x35, 0x37, 0x39, 0x31, 0x30, 0x31, 0x35, 0x36, 0x32, 0x35, //0x000128c4 QUAD $0x3735383134383332; QUAD $0x3532363531303139 // .asciz 16, '2384185791015625' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000128d4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000128e4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000128f4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012904 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012914 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00012924 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x07, 0x00, 0x00, 0x00, //0x00012928 .long 7 - 0x31, 0x31, 0x39, 0x32, 0x30, 0x39, 0x32, 0x38, 0x39, 0x35, 0x35, 0x30, 0x37, 0x38, 0x31, 0x32, //0x0001292c QUAD $0x3832393032393131; QUAD $0x3231383730353539 // .asciz 16, '1192092895507812' - 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001293c QUAD $0x0000000000000035; QUAD $0x0000000000000000 // .asciz 16, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001294c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001295c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001296c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001297c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x0001298c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x08, 0x00, 0x00, 0x00, //0x00012990 .long 8 - 0x35, 0x39, 0x36, 0x30, 0x34, 0x36, 0x34, 0x34, 0x37, 0x37, 0x35, 0x33, 0x39, 0x30, 0x36, 0x32, //0x00012994 QUAD $0x3434363430363935; QUAD $0x3236303933353737 // .asciz 16, '5960464477539062' - 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000129a4 QUAD $0x0000000000000035; QUAD $0x0000000000000000 // .asciz 16, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000129b4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000129c4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000129d4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000129e4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x000129f4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x08, 0x00, 0x00, 0x00, //0x000129f8 .long 8 - 0x32, 0x39, 0x38, 0x30, 0x32, 0x33, 0x32, 0x32, 0x33, 0x38, 0x37, 0x36, 0x39, 0x35, 0x33, 0x31, //0x000129fc QUAD $0x3232333230383932; QUAD $0x3133353936373833 // .asciz 16, '2980232238769531' - 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012a0c QUAD $0x0000000000003532; QUAD $0x0000000000000000 // .asciz 16, '25\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012a1c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012a2c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012a3c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012a4c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00012a5c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x08, 0x00, 0x00, 0x00, //0x00012a60 .long 8 - 0x31, 0x34, 0x39, 0x30, 0x31, 0x31, 0x36, 0x31, 0x31, 0x39, 0x33, 0x38, 0x34, 0x37, 0x36, 0x35, //0x00012a64 QUAD $0x3136313130393431; QUAD $0x3536373438333931 // .asciz 16, '1490116119384765' - 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012a74 QUAD $0x0000000000353236; QUAD $0x0000000000000000 // .asciz 16, '625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012a84 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012a94 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012aa4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012ab4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00012ac4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x09, 0x00, 0x00, 0x00, //0x00012ac8 .long 9 - 0x37, 0x34, 0x35, 0x30, 0x35, 0x38, 0x30, 0x35, 0x39, 0x36, 0x39, 0x32, 0x33, 0x38, 0x32, 0x38, //0x00012acc QUAD $0x3530383530353437; QUAD $0x3832383332393639 // .asciz 16, '7450580596923828' - 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012adc QUAD $0x0000000000353231; QUAD $0x0000000000000000 // .asciz 16, '125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012aec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012afc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012b0c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012b1c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00012b2c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x09, 0x00, 0x00, 0x00, //0x00012b30 .long 9 - 0x33, 0x37, 0x32, 0x35, 0x32, 0x39, 0x30, 0x32, 0x39, 0x38, 0x34, 0x36, 0x31, 0x39, 0x31, 0x34, //0x00012b34 QUAD $0x3230393235323733; QUAD $0x3431393136343839 // .asciz 16, '3725290298461914' - 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012b44 QUAD $0x0000000035323630; QUAD $0x0000000000000000 // .asciz 16, '0625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012b54 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012b64 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012b74 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012b84 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00012b94 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x09, 0x00, 0x00, 0x00, //0x00012b98 .long 9 - 0x31, 0x38, 0x36, 0x32, 0x36, 0x34, 0x35, 0x31, 0x34, 0x39, 0x32, 0x33, 0x30, 0x39, 0x35, 0x37, //0x00012b9c QUAD $0x3135343632363831; QUAD $0x3735393033323934 // .asciz 16, '1862645149230957' - 0x30, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012bac QUAD $0x0000003532313330; QUAD $0x0000000000000000 // .asciz 16, '03125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012bbc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012bcc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012bdc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012bec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00012bfc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0a, 0x00, 0x00, 0x00, //0x00012c00 .long 10 - 0x39, 0x33, 0x31, 0x33, 0x32, 0x32, 0x35, 0x37, 0x34, 0x36, 0x31, 0x35, 0x34, 0x37, 0x38, 0x35, //0x00012c04 QUAD $0x3735323233313339; QUAD $0x3538373435313634 // .asciz 16, '9313225746154785' - 0x31, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012c14 QUAD $0x0000003532363531; QUAD $0x0000000000000000 // .asciz 16, '15625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012c24 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012c34 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012c44 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012c54 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00012c64 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0a, 0x00, 0x00, 0x00, //0x00012c68 .long 10 - 0x34, 0x36, 0x35, 0x36, 0x36, 0x31, 0x32, 0x38, 0x37, 0x33, 0x30, 0x37, 0x37, 0x33, 0x39, 0x32, //0x00012c6c QUAD $0x3832313636353634; QUAD $0x3239333737303337 // .asciz 16, '4656612873077392' - 0x35, 0x37, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012c7c QUAD $0x0000353231383735; QUAD $0x0000000000000000 // .asciz 16, '578125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012c8c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012c9c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012cac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012cbc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00012ccc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0a, 0x00, 0x00, 0x00, //0x00012cd0 .long 10 - 0x32, 0x33, 0x32, 0x38, 0x33, 0x30, 0x36, 0x34, 0x33, 0x36, 0x35, 0x33, 0x38, 0x36, 0x39, 0x36, //0x00012cd4 QUAD $0x3436303338323332; QUAD $0x3639363833353633 // .asciz 16, '2328306436538696' - 0x32, 0x38, 0x39, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012ce4 QUAD $0x0035323630393832; QUAD $0x0000000000000000 // .asciz 16, '2890625\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012cf4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012d04 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012d14 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012d24 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00012d34 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0a, 0x00, 0x00, 0x00, //0x00012d38 .long 10 - 0x31, 0x31, 0x36, 0x34, 0x31, 0x35, 0x33, 0x32, 0x31, 0x38, 0x32, 0x36, 0x39, 0x33, 0x34, 0x38, //0x00012d3c QUAD $0x3233353134363131; QUAD $0x3834333936323831 // .asciz 16, '1164153218269348' - 0x31, 0x34, 0x34, 0x35, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012d4c QUAD $0x3532313335343431; QUAD $0x0000000000000000 // .asciz 16, '14453125\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012d5c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012d6c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012d7c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012d8c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00012d9c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0b, 0x00, 0x00, 0x00, //0x00012da0 .long 11 - 0x35, 0x38, 0x32, 0x30, 0x37, 0x36, 0x36, 0x30, 0x39, 0x31, 0x33, 0x34, 0x36, 0x37, 0x34, 0x30, //0x00012da4 QUAD $0x3036363730323835; QUAD $0x3034373634333139 // .asciz 16, '5820766091346740' - 0x37, 0x32, 0x32, 0x36, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012db4 QUAD $0x3532363536323237; QUAD $0x0000000000000000 // .asciz 16, '72265625\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012dc4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012dd4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012de4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012df4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00012e04 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0b, 0x00, 0x00, 0x00, //0x00012e08 .long 11 - 0x32, 0x39, 0x31, 0x30, 0x33, 0x38, 0x33, 0x30, 0x34, 0x35, 0x36, 0x37, 0x33, 0x33, 0x37, 0x30, //0x00012e0c QUAD $0x3033383330313932; QUAD $0x3037333337363534 // .asciz 16, '2910383045673370' - 0x33, 0x36, 0x31, 0x33, 0x32, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012e1c QUAD $0x3231383233313633; QUAD $0x0000000000000035 // .asciz 16, '361328125\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012e2c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012e3c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012e4c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012e5c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00012e6c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0b, 0x00, 0x00, 0x00, //0x00012e70 .long 11 - 0x31, 0x34, 0x35, 0x35, 0x31, 0x39, 0x31, 0x35, 0x32, 0x32, 0x38, 0x33, 0x36, 0x36, 0x38, 0x35, //0x00012e74 QUAD $0x3531393135353431; QUAD $0x3538363633383232 // .asciz 16, '1455191522836685' - 0x31, 0x38, 0x30, 0x36, 0x36, 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012e84 QUAD $0x3630343636303831; QUAD $0x0000000000003532 // .asciz 16, '1806640625\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012e94 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012ea4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012eb4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012ec4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00012ed4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0c, 0x00, 0x00, 0x00, //0x00012ed8 .long 12 - 0x37, 0x32, 0x37, 0x35, 0x39, 0x35, 0x37, 0x36, 0x31, 0x34, 0x31, 0x38, 0x33, 0x34, 0x32, 0x35, //0x00012edc QUAD $0x3637353935373237; QUAD $0x3532343338313431 // .asciz 16, '7275957614183425' - 0x39, 0x30, 0x33, 0x33, 0x32, 0x30, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012eec QUAD $0x3133303233333039; QUAD $0x0000000000003532 // .asciz 16, '9033203125\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012efc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012f0c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012f1c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012f2c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00012f3c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0c, 0x00, 0x00, 0x00, //0x00012f40 .long 12 - 0x33, 0x36, 0x33, 0x37, 0x39, 0x37, 0x38, 0x38, 0x30, 0x37, 0x30, 0x39, 0x31, 0x37, 0x31, 0x32, //0x00012f44 QUAD $0x3838373937333633; QUAD $0x3231373139303730 // .asciz 16, '3637978807091712' - 0x39, 0x35, 0x31, 0x36, 0x36, 0x30, 0x31, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012f54 QUAD $0x3531303636313539; QUAD $0x0000000000353236 // .asciz 16, '95166015625\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012f64 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012f74 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012f84 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012f94 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00012fa4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0c, 0x00, 0x00, 0x00, //0x00012fa8 .long 12 - 0x31, 0x38, 0x31, 0x38, 0x39, 0x38, 0x39, 0x34, 0x30, 0x33, 0x35, 0x34, 0x35, 0x38, 0x35, 0x36, //0x00012fac QUAD $0x3439383938313831; QUAD $0x3635383534353330 // .asciz 16, '1818989403545856' - 0x34, 0x37, 0x35, 0x38, 0x33, 0x30, 0x30, 0x37, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, //0x00012fbc QUAD $0x3730303338353734; QUAD $0x0000000035323138 // .asciz 16, '475830078125\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012fcc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012fdc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012fec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012ffc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x0001300c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0d, 0x00, 0x00, 0x00, //0x00013010 .long 13 - 0x39, 0x30, 0x39, 0x34, 0x39, 0x34, 0x37, 0x30, 0x31, 0x37, 0x37, 0x32, 0x39, 0x32, 0x38, 0x32, //0x00013014 QUAD $0x3037343934393039; QUAD $0x3238323932373731 // .asciz 16, '9094947017729282' - 0x33, 0x37, 0x39, 0x31, 0x35, 0x30, 0x33, 0x39, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, //0x00013024 QUAD $0x3933303531393733; QUAD $0x0000000035323630 // .asciz 16, '379150390625\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013034 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013044 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013054 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013064 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00013074 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0d, 0x00, 0x00, 0x00, //0x00013078 .long 13 - 0x34, 0x35, 0x34, 0x37, 0x34, 0x37, 0x33, 0x35, 0x30, 0x38, 0x38, 0x36, 0x34, 0x36, 0x34, 0x31, //0x0001307c QUAD $0x3533373437343534; QUAD $0x3134363436383830 // .asciz 16, '4547473508864641' - 0x31, 0x38, 0x39, 0x35, 0x37, 0x35, 0x31, 0x39, 0x35, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, //0x0001308c QUAD $0x3931353735393831; QUAD $0x0000003532313335 // .asciz 16, '1895751953125\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001309c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000130ac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000130bc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000130cc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x000130dc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0d, 0x00, 0x00, 0x00, //0x000130e0 .long 13 - 0x32, 0x32, 0x37, 0x33, 0x37, 0x33, 0x36, 0x37, 0x35, 0x34, 0x34, 0x33, 0x32, 0x33, 0x32, 0x30, //0x000130e4 QUAD $0x3736333733373232; QUAD $0x3032333233343435 // .asciz 16, '2273736754432320' - 0x35, 0x39, 0x34, 0x37, 0x38, 0x37, 0x35, 0x39, 0x37, 0x36, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, //0x000130f4 QUAD $0x3935373837343935; QUAD $0x0000353236353637 // .asciz 16, '59478759765625\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013104 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013114 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013124 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013134 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00013144 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0d, 0x00, 0x00, 0x00, //0x00013148 .long 13 - 0x31, 0x31, 0x33, 0x36, 0x38, 0x36, 0x38, 0x33, 0x37, 0x37, 0x32, 0x31, 0x36, 0x31, 0x36, 0x30, //0x0001314c QUAD $0x3338363836333131; QUAD $0x3036313631323737 // .asciz 16, '1136868377216160' - 0x32, 0x39, 0x37, 0x33, 0x39, 0x33, 0x37, 0x39, 0x38, 0x38, 0x32, 0x38, 0x31, 0x32, 0x35, 0x00, //0x0001315c QUAD $0x3937333933373932; QUAD $0x0035323138323838 // .asciz 16, '297393798828125\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001316c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001317c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001318c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001319c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x000131ac LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0e, 0x00, 0x00, 0x00, //0x000131b0 .long 14 - 0x35, 0x36, 0x38, 0x34, 0x33, 0x34, 0x31, 0x38, 0x38, 0x36, 0x30, 0x38, 0x30, 0x38, 0x30, 0x31, //0x000131b4 QUAD $0x3831343334383635; QUAD $0x3130383038303638 // .asciz 16, '5684341886080801' - 0x34, 0x38, 0x36, 0x39, 0x36, 0x38, 0x39, 0x39, 0x34, 0x31, 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, //0x000131c4 QUAD $0x3939383639363834; QUAD $0x0035323630343134 // .asciz 16, '486968994140625\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000131d4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000131e4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000131f4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013204 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00013214 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0e, 0x00, 0x00, 0x00, //0x00013218 .long 14 - 0x32, 0x38, 0x34, 0x32, 0x31, 0x37, 0x30, 0x39, 0x34, 0x33, 0x30, 0x34, 0x30, 0x34, 0x30, 0x30, //0x0001321c QUAD $0x3930373132343832; QUAD $0x3030343034303334 // .asciz 16, '2842170943040400' - 0x37, 0x34, 0x33, 0x34, 0x38, 0x34, 0x34, 0x39, 0x37, 0x30, 0x37, 0x30, 0x33, 0x31, 0x32, 0x35, //0x0001322c QUAD $0x3934343834333437; QUAD $0x3532313330373037 // .asciz 16, '7434844970703125' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001323c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001324c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001325c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001326c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x0001327c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0e, 0x00, 0x00, 0x00, //0x00013280 .long 14 - 0x31, 0x34, 0x32, 0x31, 0x30, 0x38, 0x35, 0x34, 0x37, 0x31, 0x35, 0x32, 0x30, 0x32, 0x30, 0x30, //0x00013284 QUAD $0x3435383031323431; QUAD $0x3030323032353137 // .asciz 16, '1421085471520200' - 0x33, 0x37, 0x31, 0x37, 0x34, 0x32, 0x32, 0x34, 0x38, 0x35, 0x33, 0x35, 0x31, 0x35, 0x36, 0x32, //0x00013294 QUAD $0x3432323437313733; QUAD $0x3236353135333538 // .asciz 16, '3717422485351562' - 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000132a4 QUAD $0x0000000000000035; QUAD $0x0000000000000000 // .asciz 16, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000132b4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000132c4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000132d4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x000132e4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0f, 0x00, 0x00, 0x00, //0x000132e8 .long 15 - 0x37, 0x31, 0x30, 0x35, 0x34, 0x32, 0x37, 0x33, 0x35, 0x37, 0x36, 0x30, 0x31, 0x30, 0x30, 0x31, //0x000132ec QUAD $0x3337323435303137; QUAD $0x3130303130363735 // .asciz 16, '7105427357601001' - 0x38, 0x35, 0x38, 0x37, 0x31, 0x31, 0x32, 0x34, 0x32, 0x36, 0x37, 0x35, 0x37, 0x38, 0x31, 0x32, //0x000132fc QUAD $0x3432313137383538; QUAD $0x3231383735373632 // .asciz 16, '8587112426757812' - 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001330c QUAD $0x0000000000000035; QUAD $0x0000000000000000 // .asciz 16, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001331c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001332c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001333c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x0001334c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0f, 0x00, 0x00, 0x00, //0x00013350 .long 15 - 0x33, 0x35, 0x35, 0x32, 0x37, 0x31, 0x33, 0x36, 0x37, 0x38, 0x38, 0x30, 0x30, 0x35, 0x30, 0x30, //0x00013354 QUAD $0x3633313732353533; QUAD $0x3030353030383837 // .asciz 16, '3552713678800500' - 0x39, 0x32, 0x39, 0x33, 0x35, 0x35, 0x36, 0x32, 0x31, 0x33, 0x33, 0x37, 0x38, 0x39, 0x30, 0x36, //0x00013364 QUAD $0x3236353533393239; QUAD $0x3630393837333331 // .asciz 16, '9293556213378906' - 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013374 QUAD $0x0000000000003532; QUAD $0x0000000000000000 // .asciz 16, '25\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013384 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013394 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000133a4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x000133b4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0f, 0x00, 0x00, 0x00, //0x000133b8 .long 15 - 0x31, 0x37, 0x37, 0x36, 0x33, 0x35, 0x36, 0x38, 0x33, 0x39, 0x34, 0x30, 0x30, 0x32, 0x35, 0x30, //0x000133bc QUAD $0x3836353336373731; QUAD $0x3035323030343933 // .asciz 16, '1776356839400250' - 0x34, 0x36, 0x34, 0x36, 0x37, 0x37, 0x38, 0x31, 0x30, 0x36, 0x36, 0x38, 0x39, 0x34, 0x35, 0x33, //0x000133cc QUAD $0x3138373736343634; QUAD $0x3335343938363630 // .asciz 16, '4646778106689453' - 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000133dc QUAD $0x0000000000353231; QUAD $0x0000000000000000 // .asciz 16, '125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000133ec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000133fc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001340c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x0001341c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x10, 0x00, 0x00, 0x00, //0x00013420 .long 16 - 0x38, 0x38, 0x38, 0x31, 0x37, 0x38, 0x34, 0x31, 0x39, 0x37, 0x30, 0x30, 0x31, 0x32, 0x35, 0x32, //0x00013424 QUAD $0x3134383731383838; QUAD $0x3235323130303739 // .asciz 16, '8881784197001252' - 0x33, 0x32, 0x33, 0x33, 0x38, 0x39, 0x30, 0x35, 0x33, 0x33, 0x34, 0x34, 0x37, 0x32, 0x36, 0x35, //0x00013434 QUAD $0x3530393833333233; QUAD $0x3536323734343333 // .asciz 16, '3233890533447265' - 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013444 QUAD $0x0000000000353236; QUAD $0x0000000000000000 // .asciz 16, '625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013454 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013464 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013474 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00013484 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x10, 0x00, 0x00, 0x00, //0x00013488 .long 16 - 0x34, 0x34, 0x34, 0x30, 0x38, 0x39, 0x32, 0x30, 0x39, 0x38, 0x35, 0x30, 0x30, 0x36, 0x32, 0x36, //0x0001348c QUAD $0x3032393830343434; QUAD $0x3632363030353839 // .asciz 16, '4440892098500626' - 0x31, 0x36, 0x31, 0x36, 0x39, 0x34, 0x35, 0x32, 0x36, 0x36, 0x37, 0x32, 0x33, 0x36, 0x33, 0x32, //0x0001349c QUAD $0x3235343936313631; QUAD $0x3233363332373636 // .asciz 16, '1616945266723632' - 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000134ac QUAD $0x0000000035323138; QUAD $0x0000000000000000 // .asciz 16, '8125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000134bc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000134cc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000134dc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x000134ec LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x10, 0x00, 0x00, 0x00, //0x000134f0 .long 16 - 0x32, 0x32, 0x32, 0x30, 0x34, 0x34, 0x36, 0x30, 0x34, 0x39, 0x32, 0x35, 0x30, 0x33, 0x31, 0x33, //0x000134f4 QUAD $0x3036343430323232; QUAD $0x3331333035323934 // .asciz 16, '2220446049250313' - 0x30, 0x38, 0x30, 0x38, 0x34, 0x37, 0x32, 0x36, 0x33, 0x33, 0x33, 0x36, 0x31, 0x38, 0x31, 0x36, //0x00013504 QUAD $0x3632373438303830; QUAD $0x3631383136333333 // .asciz 16, '0808472633361816' - 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013514 QUAD $0x0000003532363034; QUAD $0x0000000000000000 // .asciz 16, '40625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013524 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013534 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013544 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00013554 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x10, 0x00, 0x00, 0x00, //0x00013558 .long 16 - 0x31, 0x31, 0x31, 0x30, 0x32, 0x32, 0x33, 0x30, 0x32, 0x34, 0x36, 0x32, 0x35, 0x31, 0x35, 0x36, //0x0001355c QUAD $0x3033323230313131; QUAD $0x3635313532363432 // .asciz 16, '1110223024625156' - 0x35, 0x34, 0x30, 0x34, 0x32, 0x33, 0x36, 0x33, 0x31, 0x36, 0x36, 0x38, 0x30, 0x39, 0x30, 0x38, //0x0001356c QUAD $0x3336333234303435; QUAD $0x3830393038363631 // .asciz 16, '5404236316680908' - 0x32, 0x30, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001357c QUAD $0x0000353231333032; QUAD $0x0000000000000000 // .asciz 16, '203125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001358c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001359c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000135ac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x000135bc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x11, 0x00, 0x00, 0x00, //0x000135c0 .long 17 - 0x35, 0x35, 0x35, 0x31, 0x31, 0x31, 0x35, 0x31, 0x32, 0x33, 0x31, 0x32, 0x35, 0x37, 0x38, 0x32, //0x000135c4 QUAD $0x3135313131353535; QUAD $0x3238373532313332 // .asciz 16, '5551115123125782' - 0x37, 0x30, 0x32, 0x31, 0x31, 0x38, 0x31, 0x35, 0x38, 0x33, 0x34, 0x30, 0x34, 0x35, 0x34, 0x31, //0x000135d4 QUAD $0x3531383131323037; QUAD $0x3134353430343338 // .asciz 16, '7021181583404541' - 0x30, 0x31, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000135e4 QUAD $0x0000353236353130; QUAD $0x0000000000000000 // .asciz 16, '015625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000135f4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013604 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013614 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00013624 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x11, 0x00, 0x00, 0x00, //0x00013628 .long 17 - 0x32, 0x37, 0x37, 0x35, 0x35, 0x35, 0x37, 0x35, 0x36, 0x31, 0x35, 0x36, 0x32, 0x38, 0x39, 0x31, //0x0001362c QUAD $0x3537353535373732; QUAD $0x3139383236353136 // .asciz 16, '2775557561562891' - 0x33, 0x35, 0x31, 0x30, 0x35, 0x39, 0x30, 0x37, 0x39, 0x31, 0x37, 0x30, 0x32, 0x32, 0x37, 0x30, //0x0001363c QUAD $0x3730393530313533; QUAD $0x3037323230373139 // .asciz 16, '3510590791702270' - 0x35, 0x30, 0x37, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001364c QUAD $0x0035323138373035; QUAD $0x0000000000000000 // .asciz 16, '5078125\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001365c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001366c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001367c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x0001368c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x11, 0x00, 0x00, 0x00, //0x00013690 .long 17 - 0x31, 0x33, 0x38, 0x37, 0x37, 0x37, 0x38, 0x37, 0x38, 0x30, 0x37, 0x38, 0x31, 0x34, 0x34, 0x35, //0x00013694 QUAD $0x3738373737383331; QUAD $0x3534343138373038 // .asciz 16, '1387778780781445' - 0x36, 0x37, 0x35, 0x35, 0x32, 0x39, 0x35, 0x33, 0x39, 0x35, 0x38, 0x35, 0x31, 0x31, 0x33, 0x35, //0x000136a4 QUAD $0x3335393235353736; QUAD $0x3533313135383539 // .asciz 16, '6755295395851135' - 0x32, 0x35, 0x33, 0x39, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000136b4 QUAD $0x3532363039333532; QUAD $0x0000000000000000 // .asciz 16, '25390625\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000136c4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000136d4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000136e4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x000136f4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x12, 0x00, 0x00, 0x00, //0x000136f8 .long 18 - 0x36, 0x39, 0x33, 0x38, 0x38, 0x39, 0x33, 0x39, 0x30, 0x33, 0x39, 0x30, 0x37, 0x32, 0x32, 0x38, //0x000136fc QUAD $0x3933393838333936; QUAD $0x3832323730393330 // .asciz 16, '6938893903907228' - 0x33, 0x37, 0x37, 0x36, 0x34, 0x37, 0x36, 0x39, 0x37, 0x39, 0x32, 0x35, 0x35, 0x36, 0x37, 0x36, //0x0001370c QUAD $0x3936373436373733; QUAD $0x3637363535323937 // .asciz 16, '3776476979255676' - 0x32, 0x36, 0x39, 0x35, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001371c QUAD $0x3532313335393632; QUAD $0x0000000000000000 // .asciz 16, '26953125\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001372c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001373c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001374c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x0001375c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x12, 0x00, 0x00, 0x00, //0x00013760 .long 18 - 0x33, 0x34, 0x36, 0x39, 0x34, 0x34, 0x36, 0x39, 0x35, 0x31, 0x39, 0x35, 0x33, 0x36, 0x31, 0x34, //0x00013764 QUAD $0x3936343439363433; QUAD $0x3431363335393135 // .asciz 16, '3469446951953614' - 0x31, 0x38, 0x38, 0x38, 0x32, 0x33, 0x38, 0x34, 0x38, 0x39, 0x36, 0x32, 0x37, 0x38, 0x33, 0x38, //0x00013774 QUAD $0x3438333238383831; QUAD $0x3833383732363938 // .asciz 16, '1888238489627838' - 0x31, 0x33, 0x34, 0x37, 0x36, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013784 QUAD $0x3236353637343331; QUAD $0x0000000000000035 // .asciz 16, '134765625\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013794 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000137a4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000137b4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x000137c4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x12, 0x00, 0x00, 0x00, //0x000137c8 .long 18 - 0x31, 0x37, 0x33, 0x34, 0x37, 0x32, 0x33, 0x34, 0x37, 0x35, 0x39, 0x37, 0x36, 0x38, 0x30, 0x37, //0x000137cc QUAD $0x3433323734333731; QUAD $0x3730383637393537 // .asciz 16, '1734723475976807' - 0x30, 0x39, 0x34, 0x34, 0x31, 0x31, 0x39, 0x32, 0x34, 0x34, 0x38, 0x31, 0x33, 0x39, 0x31, 0x39, //0x000137dc QUAD $0x3239313134343930; QUAD $0x3931393331383434 // .asciz 16, '0944119244813919' - 0x30, 0x36, 0x37, 0x33, 0x38, 0x32, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000137ec QUAD $0x3138323833373630; QUAD $0x0000000000003532 // .asciz 16, '0673828125\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000137fc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001380c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001381c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x0001382c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x13, 0x00, 0x00, 0x00, //0x00013830 .long 19 - 0x38, 0x36, 0x37, 0x33, 0x36, 0x31, 0x37, 0x33, 0x37, 0x39, 0x38, 0x38, 0x34, 0x30, 0x33, 0x35, //0x00013834 QUAD $0x3337313633373638; QUAD $0x3533303438383937 // .asciz 16, '8673617379884035' - 0x34, 0x37, 0x32, 0x30, 0x35, 0x39, 0x36, 0x32, 0x32, 0x34, 0x30, 0x36, 0x39, 0x35, 0x39, 0x35, //0x00013844 QUAD $0x3236393530323734; QUAD $0x3539353936303432 // .asciz 16, '4720596224069595' - 0x33, 0x33, 0x36, 0x39, 0x31, 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013854 QUAD $0x3630343139363333; QUAD $0x0000000000003532 // .asciz 16, '3369140625\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013864 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013874 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013884 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00013894 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013898 .p2align 4, 0x00 - //0x000138a0 _P10_TAB - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x3f, //0x000138a0 .quad 0x3ff0000000000000 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x40, //0x000138a8 .quad 0x4024000000000000 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x59, 0x40, //0x000138b0 .quad 0x4059000000000000 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x8f, 0x40, //0x000138b8 .quad 0x408f400000000000 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0xc3, 0x40, //0x000138c0 .quad 0x40c3880000000000 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x6a, 0xf8, 0x40, //0x000138c8 .quad 0x40f86a0000000000 - 0x00, 0x00, 0x00, 0x00, 0x80, 0x84, 0x2e, 0x41, //0x000138d0 .quad 0x412e848000000000 - 0x00, 0x00, 0x00, 0x00, 0xd0, 0x12, 0x63, 0x41, //0x000138d8 .quad 0x416312d000000000 - 0x00, 0x00, 0x00, 0x00, 0x84, 0xd7, 0x97, 0x41, //0x000138e0 .quad 0x4197d78400000000 - 0x00, 0x00, 0x00, 0x00, 0x65, 0xcd, 0xcd, 0x41, //0x000138e8 .quad 0x41cdcd6500000000 - 0x00, 0x00, 0x00, 0x20, 0x5f, 0xa0, 0x02, 0x42, //0x000138f0 .quad 0x4202a05f20000000 - 0x00, 0x00, 0x00, 0xe8, 0x76, 0x48, 0x37, 0x42, //0x000138f8 .quad 0x42374876e8000000 - 0x00, 0x00, 0x00, 0xa2, 0x94, 0x1a, 0x6d, 0x42, //0x00013900 .quad 0x426d1a94a2000000 - 0x00, 0x00, 0x40, 0xe5, 0x9c, 0x30, 0xa2, 0x42, //0x00013908 .quad 0x42a2309ce5400000 - 0x00, 0x00, 0x90, 0x1e, 0xc4, 0xbc, 0xd6, 0x42, //0x00013910 .quad 0x42d6bcc41e900000 - 0x00, 0x00, 0x34, 0x26, 0xf5, 0x6b, 0x0c, 0x43, //0x00013918 .quad 0x430c6bf526340000 - 0x00, 0x80, 0xe0, 0x37, 0x79, 0xc3, 0x41, 0x43, //0x00013920 .quad 0x4341c37937e08000 - 0x00, 0xa0, 0xd8, 0x85, 0x57, 0x34, 0x76, 0x43, //0x00013928 .quad 0x4376345785d8a000 - 0x00, 0xc8, 0x4e, 0x67, 0x6d, 0xc1, 0xab, 0x43, //0x00013930 .quad 0x43abc16d674ec800 - 0x00, 0x3d, 0x91, 0x60, 0xe4, 0x58, 0xe1, 0x43, //0x00013938 .quad 0x43e158e460913d00 - 0x40, 0x8c, 0xb5, 0x78, 0x1d, 0xaf, 0x15, 0x44, //0x00013940 .quad 0x4415af1d78b58c40 - 0x50, 0xef, 0xe2, 0xd6, 0xe4, 0x1a, 0x4b, 0x44, //0x00013948 .quad 0x444b1ae4d6e2ef50 - 0x92, 0xd5, 0x4d, 0x06, 0xcf, 0xf0, 0x80, 0x44, //0x00013950 .quad 0x4480f0cf064dd592 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013958 .p2align 4, 0x00 - //0x00013960 _pow10_ceil_sig_f32.g - 0xf5, 0xfc, 0x43, 0x4b, 0x2c, 0xb3, 0xce, 0x81, //0x00013960 .quad -9093133594791772939 - 0x32, 0xfc, 0x14, 0x5e, 0xf7, 0x5f, 0x42, 0xa2, //0x00013968 .quad -6754730975062328270 - 0x3f, 0x3b, 0x9a, 0x35, 0xf5, 0xf7, 0xd2, 0xca, //0x00013970 .quad -3831727700400522433 - 0x0e, 0xca, 0x00, 0x83, 0xf2, 0xb5, 0x87, 0xfd, //0x00013978 .quad -177973607073265138 - 0x49, 0x7e, 0xe0, 0x91, 0xb7, 0xd1, 0x74, 0x9e, //0x00013980 .quad -7028762532061872567 - 0xdb, 0x9d, 0x58, 0x76, 0x25, 0x06, 0x12, 0xc6, //0x00013988 .quad -4174267146649952805 - 0x52, 0xc5, 0xee, 0xd3, 0xae, 0x87, 0x96, 0xf7, //0x00013990 .quad -606147914885053102 - 0x53, 0x3b, 0x75, 0x44, 0xcd, 0x14, 0xbe, 0x9a, //0x00013998 .quad -7296371474444240045 - 0x28, 0x8a, 0x92, 0x95, 0x00, 0x9a, 0x6d, 0xc1, //0x000139a0 .quad -4508778324627912152 - 0xb2, 0x2c, 0xf7, 0xba, 0x80, 0x00, 0xc9, 0xf1, //0x000139a8 .quad -1024286887357502286 - 0xef, 0x7b, 0xda, 0x74, 0x50, 0xa0, 0x1d, 0x97, //0x000139b0 .quad -7557708332239520785 - 0xeb, 0x1a, 0x11, 0x92, 0x64, 0x08, 0xe5, 0xbc, //0x000139b8 .quad -4835449396872013077 - 0xa6, 0x61, 0x95, 0xb6, 0x7d, 0x4a, 0x1e, 0xec, //0x000139c0 .quad -1432625727662628442 - 0x08, 0x5d, 0x1d, 0x92, 0x8e, 0xee, 0x92, 0x93, //0x000139c8 .quad -7812920107430224632 - 0x4a, 0xb4, 0xa4, 0x36, 0x32, 0xaa, 0x77, 0xb8, //0x000139d0 .quad -5154464115860392886 - 0x5c, 0xe1, 0x4d, 0xc4, 0xbe, 0x94, 0x95, 0xe6, //0x000139d8 .quad -1831394126398103204 - 0xda, 0xac, 0xb0, 0x3a, 0xf7, 0x7c, 0x1d, 0x90, //0x000139e0 .quad -8062150356639896358 - 0x10, 0xd8, 0x5c, 0x09, 0x35, 0xdc, 0x24, 0xb4, //0x000139e8 .quad -5466001927372482544 - 0x14, 0x0e, 0xb4, 0x4b, 0x42, 0x13, 0x2e, 0xe1, //0x000139f0 .quad -2220816390788215276 - 0xcc, 0x88, 0x50, 0x6f, 0x09, 0xcc, 0xbc, 0x8c, //0x000139f8 .quad -8305539271883716404 - 0xff, 0xaa, 0x24, 0xcb, 0x0b, 0xff, 0xeb, 0xaf, //0x00013a00 .quad -5770238071427257601 - 0xbf, 0xd5, 0xed, 0xbd, 0xce, 0xfe, 0xe6, 0xdb, //0x00013a08 .quad -2601111570856684097 - 0x98, 0xa5, 0xb4, 0x36, 0x41, 0x5f, 0x70, 0x89, //0x00013a10 .quad -8543223759426509416 - 0xfd, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x00013a18 .quad -6067343680855748867 - 0xbd, 0x42, 0x7a, 0xe5, 0xd5, 0x94, 0xbf, 0xd6, //0x00013a20 .quad -2972493582642298179 - 0xb6, 0x69, 0x6c, 0xaf, 0x05, 0xbd, 0x37, 0x86, //0x00013a28 .quad -8775337516792518218 - 0x24, 0x84, 0x47, 0x1b, 0x47, 0xac, 0xc5, 0xa7, //0x00013a30 .quad -6357485877563259868 - 0x2c, 0x65, 0x19, 0xe2, 0x58, 0x17, 0xb7, 0xd1, //0x00013a38 .quad -3335171328526686932 - 0x3c, 0xdf, 0x4f, 0x8d, 0x97, 0x6e, 0x12, 0x83, //0x00013a40 .quad -9002011107970261188 - 0x0b, 0xd7, 0xa3, 0x70, 0x3d, 0x0a, 0xd7, 0xa3, //0x00013a48 .quad -6640827866535438581 - 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x00013a50 .quad -3689348814741910323 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x00013a58 .quad -9223372036854775808 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, //0x00013a60 .quad -6917529027641081856 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc8, //0x00013a68 .quad -4035225266123964416 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, //0x00013a70 .quad -432345564227567616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x9c, //0x00013a78 .quad -7187745005283311616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0xc3, //0x00013a80 .quad -4372995238176751616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0xf4, //0x00013a88 .quad -854558029293551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x96, 0x98, //0x00013a90 .quad -7451627795949551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xbc, 0xbe, //0x00013a98 .quad -4702848726509551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x6b, 0xee, //0x00013aa0 .quad -1266874889709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0xf9, 0x02, 0x95, //0x00013aa8 .quad -7709325833709551616 - 0x00, 0x00, 0x00, 0x00, 0x40, 0xb7, 0x43, 0xba, //0x00013ab0 .quad -5024971273709551616 - 0x00, 0x00, 0x00, 0x00, 0x10, 0xa5, 0xd4, 0xe8, //0x00013ab8 .quad -1669528073709551616 - 0x00, 0x00, 0x00, 0x00, 0x2a, 0xe7, 0x84, 0x91, //0x00013ac0 .quad -7960984073709551616 - 0x00, 0x00, 0x00, 0x80, 0xf4, 0x20, 0xe6, 0xb5, //0x00013ac8 .quad -5339544073709551616 - 0x00, 0x00, 0x00, 0xa0, 0x31, 0xa9, 0x5f, 0xe3, //0x00013ad0 .quad -2062744073709551616 - 0x00, 0x00, 0x00, 0x04, 0xbf, 0xc9, 0x1b, 0x8e, //0x00013ad8 .quad -8206744073709551616 - 0x00, 0x00, 0x00, 0xc5, 0x2e, 0xbc, 0xa2, 0xb1, //0x00013ae0 .quad -5646744073709551616 - 0x00, 0x00, 0x40, 0x76, 0x3a, 0x6b, 0x0b, 0xde, //0x00013ae8 .quad -2446744073709551616 - 0x00, 0x00, 0xe8, 0x89, 0x04, 0x23, 0xc7, 0x8a, //0x00013af0 .quad -8446744073709551616 - 0x00, 0x00, 0x62, 0xac, 0xc5, 0xeb, 0x78, 0xad, //0x00013af8 .quad -5946744073709551616 - 0x00, 0x80, 0x7a, 0x17, 0xb7, 0x26, 0xd7, 0xd8, //0x00013b00 .quad -2821744073709551616 - 0x00, 0x90, 0xac, 0x6e, 0x32, 0x78, 0x86, 0x87, //0x00013b08 .quad -8681119073709551616 - 0x00, 0xb4, 0x57, 0x0a, 0x3f, 0x16, 0x68, 0xa9, //0x00013b10 .quad -6239712823709551616 - 0x00, 0xa1, 0xed, 0xcc, 0xce, 0x1b, 0xc2, 0xd3, //0x00013b18 .quad -3187955011209551616 - 0xa0, 0x84, 0x14, 0x40, 0x61, 0x51, 0x59, 0x84, //0x00013b20 .quad -8910000909647051616 - 0xc8, 0xa5, 0x19, 0x90, 0xb9, 0xa5, 0x6f, 0xa5, //0x00013b28 .quad -6525815118631426616 - 0x3a, 0x0f, 0x20, 0xf4, 0x27, 0x8f, 0xcb, 0xce, //0x00013b30 .quad -3545582879861895366 - 0x85, 0x09, 0x94, 0xf8, 0x78, 0x39, 0x3f, 0x81, //0x00013b38 .quad -9133518327554766459 - 0xe6, 0x0b, 0xb9, 0x36, 0xd7, 0x07, 0x8f, 0xa1, //0x00013b40 .quad -6805211891016070170 - 0xdf, 0x4e, 0x67, 0x04, 0xcd, 0xc9, 0xf2, 0xc9, //0x00013b48 .quad -3894828845342699809 - 0x97, 0x22, 0x81, 0x45, 0x40, 0x7c, 0x6f, 0xfc, //0x00013b50 .quad -256850038250986857 - 0x9e, 0xb5, 0x70, 0x2b, 0xa8, 0xad, 0xc5, 0x9d, //0x00013b58 .quad -7078060301547948642 - 0x06, 0xe3, 0x4c, 0x36, 0x12, 0x19, 0x37, 0xc5, //0x00013b60 .quad -4235889358507547898 - 0xc7, 0x1b, 0xe0, 0xc3, 0x56, 0xdf, 0x84, 0xf6, //0x00013b68 .quad -683175679707046969 - 0x5d, 0x11, 0x6c, 0x3a, 0x96, 0x0b, 0x13, 0x9a, //0x00013b70 .quad -7344513827457986211 - 0xb4, 0x15, 0x07, 0xc9, 0x7b, 0xce, 0x97, 0xc0, //0x00013b78 .quad -4568956265895094860 - 0x21, 0xdb, 0x48, 0xbb, 0x1a, 0xc2, 0xbd, 0xf0, //0x00013b80 .quad -1099509313941480671 - 0xf5, 0x88, 0x0d, 0xb5, 0x50, 0x99, 0x76, 0x96, //0x00013b88 .quad -7604722348854507275 - 0x32, 0xeb, 0x50, 0xe2, 0xa4, 0x3f, 0x14, 0xbc, //0x00013b90 .quad -4894216917640746190 - 0xfe, 0x25, 0xe5, 0x1a, 0x8e, 0x4f, 0x19, 0xeb, //0x00013b98 .quad -1506085128623544834 - 0xbf, 0x37, 0xcf, 0xd0, 0xb8, 0xd1, 0xef, 0x92, //0x00013ba0 .quad -7858832233030797377 - 0xae, 0x05, 0x03, 0x05, 0x27, 0xc6, 0xab, 0xb7, //0x00013ba8 .quad -5211854272861108818 - 0x1a, 0xc7, 0x43, 0xc6, 0xb0, 0xb7, 0x96, 0xe5, //0x00013bb0 .quad -1903131822648998118 - 0x70, 0x5c, 0xea, 0x7b, 0xce, 0x32, 0x7e, 0x8f, //0x00013bb8 .quad -8106986416796705680 - 0x8c, 0xf3, 0xe4, 0x1a, 0x82, 0xbf, 0x5d, 0xb3, //0x00013bc0 .quad -5522047002568494196 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011bc0 QUAD $0x0000000000000000 // .space 8, '\x00\x00\x00\x00\x00\x00\x00\x00' + 0x01, 0x00, 0x00, 0x00, //0x00011bc8 .long 1 + 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011bcc QUAD $0x0000000000000035; QUAD $0x0000000000000000 // .asciz 16, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011bdc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011bec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011bfc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011c0c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011c1c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00011c2c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x01, 0x00, 0x00, 0x00, //0x00011c30 .long 1 + 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011c34 QUAD $0x0000000000003532; QUAD $0x0000000000000000 // .asciz 16, '25\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011c44 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011c54 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011c64 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011c74 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011c84 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00011c94 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x01, 0x00, 0x00, 0x00, //0x00011c98 .long 1 + 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011c9c QUAD $0x0000000000353231; QUAD $0x0000000000000000 // .asciz 16, '125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011cac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011cbc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011ccc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011cdc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011cec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00011cfc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x02, 0x00, 0x00, 0x00, //0x00011d00 .long 2 + 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011d04 QUAD $0x0000000000353236; QUAD $0x0000000000000000 // .asciz 16, '625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011d14 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011d24 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011d34 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011d44 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011d54 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00011d64 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x02, 0x00, 0x00, 0x00, //0x00011d68 .long 2 + 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011d6c QUAD $0x0000000035323133; QUAD $0x0000000000000000 // .asciz 16, '3125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011d7c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011d8c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011d9c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011dac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011dbc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00011dcc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x02, 0x00, 0x00, 0x00, //0x00011dd0 .long 2 + 0x31, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011dd4 QUAD $0x0000003532363531; QUAD $0x0000000000000000 // .asciz 16, '15625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011de4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011df4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011e04 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011e14 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011e24 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00011e34 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x03, 0x00, 0x00, 0x00, //0x00011e38 .long 3 + 0x37, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011e3c QUAD $0x0000003532313837; QUAD $0x0000000000000000 // .asciz 16, '78125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011e4c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011e5c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011e6c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011e7c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011e8c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00011e9c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x03, 0x00, 0x00, 0x00, //0x00011ea0 .long 3 + 0x33, 0x39, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011ea4 QUAD $0x0000353236303933; QUAD $0x0000000000000000 // .asciz 16, '390625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011eb4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011ec4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011ed4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011ee4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011ef4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00011f04 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x03, 0x00, 0x00, 0x00, //0x00011f08 .long 3 + 0x31, 0x39, 0x35, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011f0c QUAD $0x0035323133353931; QUAD $0x0000000000000000 // .asciz 16, '1953125\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011f1c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011f2c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011f3c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011f4c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011f5c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00011f6c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x04, 0x00, 0x00, 0x00, //0x00011f70 .long 4 + 0x39, 0x37, 0x36, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011f74 QUAD $0x0035323635363739; QUAD $0x0000000000000000 // .asciz 16, '9765625\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011f84 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011f94 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011fa4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011fb4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011fc4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00011fd4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x04, 0x00, 0x00, 0x00, //0x00011fd8 .long 4 + 0x34, 0x38, 0x38, 0x32, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011fdc QUAD $0x3532313832383834; QUAD $0x0000000000000000 // .asciz 16, '48828125\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011fec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011ffc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001200c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001201c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001202c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0001203c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x04, 0x00, 0x00, 0x00, //0x00012040 .long 4 + 0x32, 0x34, 0x34, 0x31, 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012044 QUAD $0x3236303431343432; QUAD $0x0000000000000035 // .asciz 16, '244140625\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012054 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012064 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012074 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012084 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012094 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000120a4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x04, 0x00, 0x00, 0x00, //0x000120a8 .long 4 + 0x31, 0x32, 0x32, 0x30, 0x37, 0x30, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000120ac QUAD $0x3133303730323231; QUAD $0x0000000000003532 // .asciz 16, '1220703125\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000120bc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000120cc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000120dc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000120ec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000120fc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0001210c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x05, 0x00, 0x00, 0x00, //0x00012110 .long 5 + 0x36, 0x31, 0x30, 0x33, 0x35, 0x31, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012114 QUAD $0x3635313533303136; QUAD $0x0000000000003532 // .asciz 16, '6103515625\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012124 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012134 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012144 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012154 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012164 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012174 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x05, 0x00, 0x00, 0x00, //0x00012178 .long 5 + 0x33, 0x30, 0x35, 0x31, 0x37, 0x35, 0x37, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001217c QUAD $0x3837353731353033; QUAD $0x0000000000353231 // .asciz 16, '30517578125\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001218c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001219c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000121ac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000121bc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000121cc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000121dc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x05, 0x00, 0x00, 0x00, //0x000121e0 .long 5 + 0x31, 0x35, 0x32, 0x35, 0x38, 0x37, 0x38, 0x39, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, //0x000121e4 QUAD $0x3938373835323531; QUAD $0x0000000035323630 // .asciz 16, '152587890625\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000121f4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012204 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012214 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012224 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012234 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012244 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x06, 0x00, 0x00, 0x00, //0x00012248 .long 6 + 0x37, 0x36, 0x32, 0x39, 0x33, 0x39, 0x34, 0x35, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, //0x0001224c QUAD $0x3534393339323637; QUAD $0x0000000035323133 // .asciz 16, '762939453125\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001225c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001226c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001227c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001228c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001229c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000122ac LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x06, 0x00, 0x00, 0x00, //0x000122b0 .long 6 + 0x33, 0x38, 0x31, 0x34, 0x36, 0x39, 0x37, 0x32, 0x36, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, //0x000122b4 QUAD $0x3237393634313833; QUAD $0x0000003532363536 // .asciz 16, '3814697265625\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000122c4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000122d4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000122e4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000122f4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012304 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012314 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x06, 0x00, 0x00, 0x00, //0x00012318 .long 6 + 0x31, 0x39, 0x30, 0x37, 0x33, 0x34, 0x38, 0x36, 0x33, 0x32, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, //0x0001231c QUAD $0x3638343337303931; QUAD $0x0000353231383233 // .asciz 16, '19073486328125\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001232c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001233c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001234c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001235c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001236c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0001237c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x07, 0x00, 0x00, 0x00, //0x00012380 .long 7 + 0x39, 0x35, 0x33, 0x36, 0x37, 0x34, 0x33, 0x31, 0x36, 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, //0x00012384 QUAD $0x3133343736333539; QUAD $0x0000353236303436 // .asciz 16, '95367431640625\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012394 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000123a4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000123b4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000123c4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000123d4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000123e4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x07, 0x00, 0x00, 0x00, //0x000123e8 .long 7 + 0x34, 0x37, 0x36, 0x38, 0x33, 0x37, 0x31, 0x35, 0x38, 0x32, 0x30, 0x33, 0x31, 0x32, 0x35, 0x00, //0x000123ec QUAD $0x3531373338363734; QUAD $0x0035323133303238 // .asciz 16, '476837158203125\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000123fc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001240c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001241c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001242c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001243c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0001244c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x07, 0x00, 0x00, 0x00, //0x00012450 .long 7 + 0x32, 0x33, 0x38, 0x34, 0x31, 0x38, 0x35, 0x37, 0x39, 0x31, 0x30, 0x31, 0x35, 0x36, 0x32, 0x35, //0x00012454 QUAD $0x3735383134383332; QUAD $0x3532363531303139 // .asciz 16, '2384185791015625' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012464 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012474 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012484 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012494 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000124a4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000124b4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x07, 0x00, 0x00, 0x00, //0x000124b8 .long 7 + 0x31, 0x31, 0x39, 0x32, 0x30, 0x39, 0x32, 0x38, 0x39, 0x35, 0x35, 0x30, 0x37, 0x38, 0x31, 0x32, //0x000124bc QUAD $0x3832393032393131; QUAD $0x3231383730353539 // .asciz 16, '1192092895507812' + 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000124cc QUAD $0x0000000000000035; QUAD $0x0000000000000000 // .asciz 16, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000124dc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000124ec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000124fc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001250c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0001251c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x08, 0x00, 0x00, 0x00, //0x00012520 .long 8 + 0x35, 0x39, 0x36, 0x30, 0x34, 0x36, 0x34, 0x34, 0x37, 0x37, 0x35, 0x33, 0x39, 0x30, 0x36, 0x32, //0x00012524 QUAD $0x3434363430363935; QUAD $0x3236303933353737 // .asciz 16, '5960464477539062' + 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012534 QUAD $0x0000000000000035; QUAD $0x0000000000000000 // .asciz 16, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012544 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012554 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012564 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012574 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012584 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x08, 0x00, 0x00, 0x00, //0x00012588 .long 8 + 0x32, 0x39, 0x38, 0x30, 0x32, 0x33, 0x32, 0x32, 0x33, 0x38, 0x37, 0x36, 0x39, 0x35, 0x33, 0x31, //0x0001258c QUAD $0x3232333230383932; QUAD $0x3133353936373833 // .asciz 16, '2980232238769531' + 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001259c QUAD $0x0000000000003532; QUAD $0x0000000000000000 // .asciz 16, '25\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000125ac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000125bc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000125cc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000125dc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000125ec LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x08, 0x00, 0x00, 0x00, //0x000125f0 .long 8 + 0x31, 0x34, 0x39, 0x30, 0x31, 0x31, 0x36, 0x31, 0x31, 0x39, 0x33, 0x38, 0x34, 0x37, 0x36, 0x35, //0x000125f4 QUAD $0x3136313130393431; QUAD $0x3536373438333931 // .asciz 16, '1490116119384765' + 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012604 QUAD $0x0000000000353236; QUAD $0x0000000000000000 // .asciz 16, '625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012614 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012624 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012634 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012644 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012654 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x09, 0x00, 0x00, 0x00, //0x00012658 .long 9 + 0x37, 0x34, 0x35, 0x30, 0x35, 0x38, 0x30, 0x35, 0x39, 0x36, 0x39, 0x32, 0x33, 0x38, 0x32, 0x38, //0x0001265c QUAD $0x3530383530353437; QUAD $0x3832383332393639 // .asciz 16, '7450580596923828' + 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001266c QUAD $0x0000000000353231; QUAD $0x0000000000000000 // .asciz 16, '125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001267c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001268c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001269c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000126ac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000126bc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x09, 0x00, 0x00, 0x00, //0x000126c0 .long 9 + 0x33, 0x37, 0x32, 0x35, 0x32, 0x39, 0x30, 0x32, 0x39, 0x38, 0x34, 0x36, 0x31, 0x39, 0x31, 0x34, //0x000126c4 QUAD $0x3230393235323733; QUAD $0x3431393136343839 // .asciz 16, '3725290298461914' + 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000126d4 QUAD $0x0000000035323630; QUAD $0x0000000000000000 // .asciz 16, '0625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000126e4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000126f4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012704 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012714 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012724 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x09, 0x00, 0x00, 0x00, //0x00012728 .long 9 + 0x31, 0x38, 0x36, 0x32, 0x36, 0x34, 0x35, 0x31, 0x34, 0x39, 0x32, 0x33, 0x30, 0x39, 0x35, 0x37, //0x0001272c QUAD $0x3135343632363831; QUAD $0x3735393033323934 // .asciz 16, '1862645149230957' + 0x30, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001273c QUAD $0x0000003532313330; QUAD $0x0000000000000000 // .asciz 16, '03125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001274c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001275c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001276c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001277c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0001278c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0a, 0x00, 0x00, 0x00, //0x00012790 .long 10 + 0x39, 0x33, 0x31, 0x33, 0x32, 0x32, 0x35, 0x37, 0x34, 0x36, 0x31, 0x35, 0x34, 0x37, 0x38, 0x35, //0x00012794 QUAD $0x3735323233313339; QUAD $0x3538373435313634 // .asciz 16, '9313225746154785' + 0x31, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000127a4 QUAD $0x0000003532363531; QUAD $0x0000000000000000 // .asciz 16, '15625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000127b4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000127c4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000127d4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000127e4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000127f4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0a, 0x00, 0x00, 0x00, //0x000127f8 .long 10 + 0x34, 0x36, 0x35, 0x36, 0x36, 0x31, 0x32, 0x38, 0x37, 0x33, 0x30, 0x37, 0x37, 0x33, 0x39, 0x32, //0x000127fc QUAD $0x3832313636353634; QUAD $0x3239333737303337 // .asciz 16, '4656612873077392' + 0x35, 0x37, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001280c QUAD $0x0000353231383735; QUAD $0x0000000000000000 // .asciz 16, '578125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001281c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001282c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001283c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001284c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0001285c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0a, 0x00, 0x00, 0x00, //0x00012860 .long 10 + 0x32, 0x33, 0x32, 0x38, 0x33, 0x30, 0x36, 0x34, 0x33, 0x36, 0x35, 0x33, 0x38, 0x36, 0x39, 0x36, //0x00012864 QUAD $0x3436303338323332; QUAD $0x3639363833353633 // .asciz 16, '2328306436538696' + 0x32, 0x38, 0x39, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012874 QUAD $0x0035323630393832; QUAD $0x0000000000000000 // .asciz 16, '2890625\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012884 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012894 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000128a4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000128b4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000128c4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0a, 0x00, 0x00, 0x00, //0x000128c8 .long 10 + 0x31, 0x31, 0x36, 0x34, 0x31, 0x35, 0x33, 0x32, 0x31, 0x38, 0x32, 0x36, 0x39, 0x33, 0x34, 0x38, //0x000128cc QUAD $0x3233353134363131; QUAD $0x3834333936323831 // .asciz 16, '1164153218269348' + 0x31, 0x34, 0x34, 0x35, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000128dc QUAD $0x3532313335343431; QUAD $0x0000000000000000 // .asciz 16, '14453125\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000128ec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000128fc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001290c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001291c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0001292c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0b, 0x00, 0x00, 0x00, //0x00012930 .long 11 + 0x35, 0x38, 0x32, 0x30, 0x37, 0x36, 0x36, 0x30, 0x39, 0x31, 0x33, 0x34, 0x36, 0x37, 0x34, 0x30, //0x00012934 QUAD $0x3036363730323835; QUAD $0x3034373634333139 // .asciz 16, '5820766091346740' + 0x37, 0x32, 0x32, 0x36, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012944 QUAD $0x3532363536323237; QUAD $0x0000000000000000 // .asciz 16, '72265625\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012954 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012964 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012974 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012984 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012994 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0b, 0x00, 0x00, 0x00, //0x00012998 .long 11 + 0x32, 0x39, 0x31, 0x30, 0x33, 0x38, 0x33, 0x30, 0x34, 0x35, 0x36, 0x37, 0x33, 0x33, 0x37, 0x30, //0x0001299c QUAD $0x3033383330313932; QUAD $0x3037333337363534 // .asciz 16, '2910383045673370' + 0x33, 0x36, 0x31, 0x33, 0x32, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000129ac QUAD $0x3231383233313633; QUAD $0x0000000000000035 // .asciz 16, '361328125\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000129bc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000129cc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000129dc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000129ec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000129fc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0b, 0x00, 0x00, 0x00, //0x00012a00 .long 11 + 0x31, 0x34, 0x35, 0x35, 0x31, 0x39, 0x31, 0x35, 0x32, 0x32, 0x38, 0x33, 0x36, 0x36, 0x38, 0x35, //0x00012a04 QUAD $0x3531393135353431; QUAD $0x3538363633383232 // .asciz 16, '1455191522836685' + 0x31, 0x38, 0x30, 0x36, 0x36, 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012a14 QUAD $0x3630343636303831; QUAD $0x0000000000003532 // .asciz 16, '1806640625\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012a24 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012a34 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012a44 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012a54 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012a64 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0c, 0x00, 0x00, 0x00, //0x00012a68 .long 12 + 0x37, 0x32, 0x37, 0x35, 0x39, 0x35, 0x37, 0x36, 0x31, 0x34, 0x31, 0x38, 0x33, 0x34, 0x32, 0x35, //0x00012a6c QUAD $0x3637353935373237; QUAD $0x3532343338313431 // .asciz 16, '7275957614183425' + 0x39, 0x30, 0x33, 0x33, 0x32, 0x30, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012a7c QUAD $0x3133303233333039; QUAD $0x0000000000003532 // .asciz 16, '9033203125\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012a8c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012a9c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012aac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012abc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012acc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0c, 0x00, 0x00, 0x00, //0x00012ad0 .long 12 + 0x33, 0x36, 0x33, 0x37, 0x39, 0x37, 0x38, 0x38, 0x30, 0x37, 0x30, 0x39, 0x31, 0x37, 0x31, 0x32, //0x00012ad4 QUAD $0x3838373937333633; QUAD $0x3231373139303730 // .asciz 16, '3637978807091712' + 0x39, 0x35, 0x31, 0x36, 0x36, 0x30, 0x31, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012ae4 QUAD $0x3531303636313539; QUAD $0x0000000000353236 // .asciz 16, '95166015625\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012af4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012b04 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012b14 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012b24 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012b34 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0c, 0x00, 0x00, 0x00, //0x00012b38 .long 12 + 0x31, 0x38, 0x31, 0x38, 0x39, 0x38, 0x39, 0x34, 0x30, 0x33, 0x35, 0x34, 0x35, 0x38, 0x35, 0x36, //0x00012b3c QUAD $0x3439383938313831; QUAD $0x3635383534353330 // .asciz 16, '1818989403545856' + 0x34, 0x37, 0x35, 0x38, 0x33, 0x30, 0x30, 0x37, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, //0x00012b4c QUAD $0x3730303338353734; QUAD $0x0000000035323138 // .asciz 16, '475830078125\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012b5c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012b6c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012b7c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012b8c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012b9c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0d, 0x00, 0x00, 0x00, //0x00012ba0 .long 13 + 0x39, 0x30, 0x39, 0x34, 0x39, 0x34, 0x37, 0x30, 0x31, 0x37, 0x37, 0x32, 0x39, 0x32, 0x38, 0x32, //0x00012ba4 QUAD $0x3037343934393039; QUAD $0x3238323932373731 // .asciz 16, '9094947017729282' + 0x33, 0x37, 0x39, 0x31, 0x35, 0x30, 0x33, 0x39, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, //0x00012bb4 QUAD $0x3933303531393733; QUAD $0x0000000035323630 // .asciz 16, '379150390625\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012bc4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012bd4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012be4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012bf4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012c04 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0d, 0x00, 0x00, 0x00, //0x00012c08 .long 13 + 0x34, 0x35, 0x34, 0x37, 0x34, 0x37, 0x33, 0x35, 0x30, 0x38, 0x38, 0x36, 0x34, 0x36, 0x34, 0x31, //0x00012c0c QUAD $0x3533373437343534; QUAD $0x3134363436383830 // .asciz 16, '4547473508864641' + 0x31, 0x38, 0x39, 0x35, 0x37, 0x35, 0x31, 0x39, 0x35, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, //0x00012c1c QUAD $0x3931353735393831; QUAD $0x0000003532313335 // .asciz 16, '1895751953125\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012c2c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012c3c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012c4c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012c5c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012c6c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0d, 0x00, 0x00, 0x00, //0x00012c70 .long 13 + 0x32, 0x32, 0x37, 0x33, 0x37, 0x33, 0x36, 0x37, 0x35, 0x34, 0x34, 0x33, 0x32, 0x33, 0x32, 0x30, //0x00012c74 QUAD $0x3736333733373232; QUAD $0x3032333233343435 // .asciz 16, '2273736754432320' + 0x35, 0x39, 0x34, 0x37, 0x38, 0x37, 0x35, 0x39, 0x37, 0x36, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, //0x00012c84 QUAD $0x3935373837343935; QUAD $0x0000353236353637 // .asciz 16, '59478759765625\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012c94 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012ca4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012cb4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012cc4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012cd4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0d, 0x00, 0x00, 0x00, //0x00012cd8 .long 13 + 0x31, 0x31, 0x33, 0x36, 0x38, 0x36, 0x38, 0x33, 0x37, 0x37, 0x32, 0x31, 0x36, 0x31, 0x36, 0x30, //0x00012cdc QUAD $0x3338363836333131; QUAD $0x3036313631323737 // .asciz 16, '1136868377216160' + 0x32, 0x39, 0x37, 0x33, 0x39, 0x33, 0x37, 0x39, 0x38, 0x38, 0x32, 0x38, 0x31, 0x32, 0x35, 0x00, //0x00012cec QUAD $0x3937333933373932; QUAD $0x0035323138323838 // .asciz 16, '297393798828125\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012cfc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012d0c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012d1c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012d2c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012d3c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0e, 0x00, 0x00, 0x00, //0x00012d40 .long 14 + 0x35, 0x36, 0x38, 0x34, 0x33, 0x34, 0x31, 0x38, 0x38, 0x36, 0x30, 0x38, 0x30, 0x38, 0x30, 0x31, //0x00012d44 QUAD $0x3831343334383635; QUAD $0x3130383038303638 // .asciz 16, '5684341886080801' + 0x34, 0x38, 0x36, 0x39, 0x36, 0x38, 0x39, 0x39, 0x34, 0x31, 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, //0x00012d54 QUAD $0x3939383639363834; QUAD $0x0035323630343134 // .asciz 16, '486968994140625\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012d64 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012d74 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012d84 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012d94 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012da4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0e, 0x00, 0x00, 0x00, //0x00012da8 .long 14 + 0x32, 0x38, 0x34, 0x32, 0x31, 0x37, 0x30, 0x39, 0x34, 0x33, 0x30, 0x34, 0x30, 0x34, 0x30, 0x30, //0x00012dac QUAD $0x3930373132343832; QUAD $0x3030343034303334 // .asciz 16, '2842170943040400' + 0x37, 0x34, 0x33, 0x34, 0x38, 0x34, 0x34, 0x39, 0x37, 0x30, 0x37, 0x30, 0x33, 0x31, 0x32, 0x35, //0x00012dbc QUAD $0x3934343834333437; QUAD $0x3532313330373037 // .asciz 16, '7434844970703125' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012dcc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012ddc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012dec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012dfc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012e0c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0e, 0x00, 0x00, 0x00, //0x00012e10 .long 14 + 0x31, 0x34, 0x32, 0x31, 0x30, 0x38, 0x35, 0x34, 0x37, 0x31, 0x35, 0x32, 0x30, 0x32, 0x30, 0x30, //0x00012e14 QUAD $0x3435383031323431; QUAD $0x3030323032353137 // .asciz 16, '1421085471520200' + 0x33, 0x37, 0x31, 0x37, 0x34, 0x32, 0x32, 0x34, 0x38, 0x35, 0x33, 0x35, 0x31, 0x35, 0x36, 0x32, //0x00012e24 QUAD $0x3432323437313733; QUAD $0x3236353135333538 // .asciz 16, '3717422485351562' + 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012e34 QUAD $0x0000000000000035; QUAD $0x0000000000000000 // .asciz 16, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012e44 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012e54 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012e64 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012e74 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0f, 0x00, 0x00, 0x00, //0x00012e78 .long 15 + 0x37, 0x31, 0x30, 0x35, 0x34, 0x32, 0x37, 0x33, 0x35, 0x37, 0x36, 0x30, 0x31, 0x30, 0x30, 0x31, //0x00012e7c QUAD $0x3337323435303137; QUAD $0x3130303130363735 // .asciz 16, '7105427357601001' + 0x38, 0x35, 0x38, 0x37, 0x31, 0x31, 0x32, 0x34, 0x32, 0x36, 0x37, 0x35, 0x37, 0x38, 0x31, 0x32, //0x00012e8c QUAD $0x3432313137383538; QUAD $0x3231383735373632 // .asciz 16, '8587112426757812' + 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012e9c QUAD $0x0000000000000035; QUAD $0x0000000000000000 // .asciz 16, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012eac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012ebc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012ecc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012edc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0f, 0x00, 0x00, 0x00, //0x00012ee0 .long 15 + 0x33, 0x35, 0x35, 0x32, 0x37, 0x31, 0x33, 0x36, 0x37, 0x38, 0x38, 0x30, 0x30, 0x35, 0x30, 0x30, //0x00012ee4 QUAD $0x3633313732353533; QUAD $0x3030353030383837 // .asciz 16, '3552713678800500' + 0x39, 0x32, 0x39, 0x33, 0x35, 0x35, 0x36, 0x32, 0x31, 0x33, 0x33, 0x37, 0x38, 0x39, 0x30, 0x36, //0x00012ef4 QUAD $0x3236353533393239; QUAD $0x3630393837333331 // .asciz 16, '9293556213378906' + 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012f04 QUAD $0x0000000000003532; QUAD $0x0000000000000000 // .asciz 16, '25\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012f14 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012f24 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012f34 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012f44 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0f, 0x00, 0x00, 0x00, //0x00012f48 .long 15 + 0x31, 0x37, 0x37, 0x36, 0x33, 0x35, 0x36, 0x38, 0x33, 0x39, 0x34, 0x30, 0x30, 0x32, 0x35, 0x30, //0x00012f4c QUAD $0x3836353336373731; QUAD $0x3035323030343933 // .asciz 16, '1776356839400250' + 0x34, 0x36, 0x34, 0x36, 0x37, 0x37, 0x38, 0x31, 0x30, 0x36, 0x36, 0x38, 0x39, 0x34, 0x35, 0x33, //0x00012f5c QUAD $0x3138373736343634; QUAD $0x3335343938363630 // .asciz 16, '4646778106689453' + 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012f6c QUAD $0x0000000000353231; QUAD $0x0000000000000000 // .asciz 16, '125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012f7c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012f8c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012f9c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012fac LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x10, 0x00, 0x00, 0x00, //0x00012fb0 .long 16 + 0x38, 0x38, 0x38, 0x31, 0x37, 0x38, 0x34, 0x31, 0x39, 0x37, 0x30, 0x30, 0x31, 0x32, 0x35, 0x32, //0x00012fb4 QUAD $0x3134383731383838; QUAD $0x3235323130303739 // .asciz 16, '8881784197001252' + 0x33, 0x32, 0x33, 0x33, 0x38, 0x39, 0x30, 0x35, 0x33, 0x33, 0x34, 0x34, 0x37, 0x32, 0x36, 0x35, //0x00012fc4 QUAD $0x3530393833333233; QUAD $0x3536323734343333 // .asciz 16, '3233890533447265' + 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012fd4 QUAD $0x0000000000353236; QUAD $0x0000000000000000 // .asciz 16, '625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012fe4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012ff4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013004 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00013014 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x10, 0x00, 0x00, 0x00, //0x00013018 .long 16 + 0x34, 0x34, 0x34, 0x30, 0x38, 0x39, 0x32, 0x30, 0x39, 0x38, 0x35, 0x30, 0x30, 0x36, 0x32, 0x36, //0x0001301c QUAD $0x3032393830343434; QUAD $0x3632363030353839 // .asciz 16, '4440892098500626' + 0x31, 0x36, 0x31, 0x36, 0x39, 0x34, 0x35, 0x32, 0x36, 0x36, 0x37, 0x32, 0x33, 0x36, 0x33, 0x32, //0x0001302c QUAD $0x3235343936313631; QUAD $0x3233363332373636 // .asciz 16, '1616945266723632' + 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001303c QUAD $0x0000000035323138; QUAD $0x0000000000000000 // .asciz 16, '8125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001304c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001305c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001306c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0001307c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x10, 0x00, 0x00, 0x00, //0x00013080 .long 16 + 0x32, 0x32, 0x32, 0x30, 0x34, 0x34, 0x36, 0x30, 0x34, 0x39, 0x32, 0x35, 0x30, 0x33, 0x31, 0x33, //0x00013084 QUAD $0x3036343430323232; QUAD $0x3331333035323934 // .asciz 16, '2220446049250313' + 0x30, 0x38, 0x30, 0x38, 0x34, 0x37, 0x32, 0x36, 0x33, 0x33, 0x33, 0x36, 0x31, 0x38, 0x31, 0x36, //0x00013094 QUAD $0x3632373438303830; QUAD $0x3631383136333333 // .asciz 16, '0808472633361816' + 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000130a4 QUAD $0x0000003532363034; QUAD $0x0000000000000000 // .asciz 16, '40625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000130b4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000130c4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000130d4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000130e4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x10, 0x00, 0x00, 0x00, //0x000130e8 .long 16 + 0x31, 0x31, 0x31, 0x30, 0x32, 0x32, 0x33, 0x30, 0x32, 0x34, 0x36, 0x32, 0x35, 0x31, 0x35, 0x36, //0x000130ec QUAD $0x3033323230313131; QUAD $0x3635313532363432 // .asciz 16, '1110223024625156' + 0x35, 0x34, 0x30, 0x34, 0x32, 0x33, 0x36, 0x33, 0x31, 0x36, 0x36, 0x38, 0x30, 0x39, 0x30, 0x38, //0x000130fc QUAD $0x3336333234303435; QUAD $0x3830393038363631 // .asciz 16, '5404236316680908' + 0x32, 0x30, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001310c QUAD $0x0000353231333032; QUAD $0x0000000000000000 // .asciz 16, '203125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001311c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001312c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001313c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0001314c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x11, 0x00, 0x00, 0x00, //0x00013150 .long 17 + 0x35, 0x35, 0x35, 0x31, 0x31, 0x31, 0x35, 0x31, 0x32, 0x33, 0x31, 0x32, 0x35, 0x37, 0x38, 0x32, //0x00013154 QUAD $0x3135313131353535; QUAD $0x3238373532313332 // .asciz 16, '5551115123125782' + 0x37, 0x30, 0x32, 0x31, 0x31, 0x38, 0x31, 0x35, 0x38, 0x33, 0x34, 0x30, 0x34, 0x35, 0x34, 0x31, //0x00013164 QUAD $0x3531383131323037; QUAD $0x3134353430343338 // .asciz 16, '7021181583404541' + 0x30, 0x31, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013174 QUAD $0x0000353236353130; QUAD $0x0000000000000000 // .asciz 16, '015625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013184 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013194 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000131a4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000131b4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x11, 0x00, 0x00, 0x00, //0x000131b8 .long 17 + 0x32, 0x37, 0x37, 0x35, 0x35, 0x35, 0x37, 0x35, 0x36, 0x31, 0x35, 0x36, 0x32, 0x38, 0x39, 0x31, //0x000131bc QUAD $0x3537353535373732; QUAD $0x3139383236353136 // .asciz 16, '2775557561562891' + 0x33, 0x35, 0x31, 0x30, 0x35, 0x39, 0x30, 0x37, 0x39, 0x31, 0x37, 0x30, 0x32, 0x32, 0x37, 0x30, //0x000131cc QUAD $0x3730393530313533; QUAD $0x3037323230373139 // .asciz 16, '3510590791702270' + 0x35, 0x30, 0x37, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000131dc QUAD $0x0035323138373035; QUAD $0x0000000000000000 // .asciz 16, '5078125\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000131ec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000131fc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001320c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0001321c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x11, 0x00, 0x00, 0x00, //0x00013220 .long 17 + 0x31, 0x33, 0x38, 0x37, 0x37, 0x37, 0x38, 0x37, 0x38, 0x30, 0x37, 0x38, 0x31, 0x34, 0x34, 0x35, //0x00013224 QUAD $0x3738373737383331; QUAD $0x3534343138373038 // .asciz 16, '1387778780781445' + 0x36, 0x37, 0x35, 0x35, 0x32, 0x39, 0x35, 0x33, 0x39, 0x35, 0x38, 0x35, 0x31, 0x31, 0x33, 0x35, //0x00013234 QUAD $0x3335393235353736; QUAD $0x3533313135383539 // .asciz 16, '6755295395851135' + 0x32, 0x35, 0x33, 0x39, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013244 QUAD $0x3532363039333532; QUAD $0x0000000000000000 // .asciz 16, '25390625\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013254 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013264 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013274 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00013284 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x12, 0x00, 0x00, 0x00, //0x00013288 .long 18 + 0x36, 0x39, 0x33, 0x38, 0x38, 0x39, 0x33, 0x39, 0x30, 0x33, 0x39, 0x30, 0x37, 0x32, 0x32, 0x38, //0x0001328c QUAD $0x3933393838333936; QUAD $0x3832323730393330 // .asciz 16, '6938893903907228' + 0x33, 0x37, 0x37, 0x36, 0x34, 0x37, 0x36, 0x39, 0x37, 0x39, 0x32, 0x35, 0x35, 0x36, 0x37, 0x36, //0x0001329c QUAD $0x3936373436373733; QUAD $0x3637363535323937 // .asciz 16, '3776476979255676' + 0x32, 0x36, 0x39, 0x35, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000132ac QUAD $0x3532313335393632; QUAD $0x0000000000000000 // .asciz 16, '26953125\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000132bc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000132cc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000132dc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000132ec LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x12, 0x00, 0x00, 0x00, //0x000132f0 .long 18 + 0x33, 0x34, 0x36, 0x39, 0x34, 0x34, 0x36, 0x39, 0x35, 0x31, 0x39, 0x35, 0x33, 0x36, 0x31, 0x34, //0x000132f4 QUAD $0x3936343439363433; QUAD $0x3431363335393135 // .asciz 16, '3469446951953614' + 0x31, 0x38, 0x38, 0x38, 0x32, 0x33, 0x38, 0x34, 0x38, 0x39, 0x36, 0x32, 0x37, 0x38, 0x33, 0x38, //0x00013304 QUAD $0x3438333238383831; QUAD $0x3833383732363938 // .asciz 16, '1888238489627838' + 0x31, 0x33, 0x34, 0x37, 0x36, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013314 QUAD $0x3236353637343331; QUAD $0x0000000000000035 // .asciz 16, '134765625\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013324 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013334 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013344 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00013354 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x12, 0x00, 0x00, 0x00, //0x00013358 .long 18 + 0x31, 0x37, 0x33, 0x34, 0x37, 0x32, 0x33, 0x34, 0x37, 0x35, 0x39, 0x37, 0x36, 0x38, 0x30, 0x37, //0x0001335c QUAD $0x3433323734333731; QUAD $0x3730383637393537 // .asciz 16, '1734723475976807' + 0x30, 0x39, 0x34, 0x34, 0x31, 0x31, 0x39, 0x32, 0x34, 0x34, 0x38, 0x31, 0x33, 0x39, 0x31, 0x39, //0x0001336c QUAD $0x3239313134343930; QUAD $0x3931393331383434 // .asciz 16, '0944119244813919' + 0x30, 0x36, 0x37, 0x33, 0x38, 0x32, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001337c QUAD $0x3138323833373630; QUAD $0x0000000000003532 // .asciz 16, '0673828125\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001338c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001339c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000133ac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000133bc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x13, 0x00, 0x00, 0x00, //0x000133c0 .long 19 + 0x38, 0x36, 0x37, 0x33, 0x36, 0x31, 0x37, 0x33, 0x37, 0x39, 0x38, 0x38, 0x34, 0x30, 0x33, 0x35, //0x000133c4 QUAD $0x3337313633373638; QUAD $0x3533303438383937 // .asciz 16, '8673617379884035' + 0x34, 0x37, 0x32, 0x30, 0x35, 0x39, 0x36, 0x32, 0x32, 0x34, 0x30, 0x36, 0x39, 0x35, 0x39, 0x35, //0x000133d4 QUAD $0x3236393530323734; QUAD $0x3539353936303432 // .asciz 16, '4720596224069595' + 0x33, 0x33, 0x36, 0x39, 0x31, 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000133e4 QUAD $0x3630343139363333; QUAD $0x0000000000003532 // .asciz 16, '3369140625\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000133f4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013404 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013414 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00013424 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013428 .p2align 4, 0x00 + //0x00013430 _P10_TAB + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x3f, //0x00013430 .quad 4607182418800017408 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x40, //0x00013438 .quad 4621819117588971520 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x59, 0x40, //0x00013440 .quad 4636737291354636288 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x8f, 0x40, //0x00013448 .quad 4652007308841189376 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0xc3, 0x40, //0x00013450 .quad 4666723172467343360 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x6a, 0xf8, 0x40, //0x00013458 .quad 4681608360884174848 + 0x00, 0x00, 0x00, 0x00, 0x80, 0x84, 0x2e, 0x41, //0x00013460 .quad 4696837146684686336 + 0x00, 0x00, 0x00, 0x00, 0xd0, 0x12, 0x63, 0x41, //0x00013468 .quad 4711630319722168320 + 0x00, 0x00, 0x00, 0x00, 0x84, 0xd7, 0x97, 0x41, //0x00013470 .quad 4726483295884279808 + 0x00, 0x00, 0x00, 0x00, 0x65, 0xcd, 0xcd, 0x41, //0x00013478 .quad 4741671816366391296 + 0x00, 0x00, 0x00, 0x20, 0x5f, 0xa0, 0x02, 0x42, //0x00013480 .quad 4756540486875873280 + 0x00, 0x00, 0x00, 0xe8, 0x76, 0x48, 0x37, 0x42, //0x00013488 .quad 4771362005757984768 + 0x00, 0x00, 0x00, 0xa2, 0x94, 0x1a, 0x6d, 0x42, //0x00013490 .quad 4786511204640096256 + 0x00, 0x00, 0x40, 0xe5, 0x9c, 0x30, 0xa2, 0x42, //0x00013498 .quad 4801453603149578240 + 0x00, 0x00, 0x90, 0x1e, 0xc4, 0xbc, 0xd6, 0x42, //0x000134a0 .quad 4816244402031689728 + 0x00, 0x00, 0x34, 0x26, 0xf5, 0x6b, 0x0c, 0x43, //0x000134a8 .quad 4831355200913801216 + 0x00, 0x80, 0xe0, 0x37, 0x79, 0xc3, 0x41, 0x43, //0x000134b0 .quad 4846369599423283200 + 0x00, 0xa0, 0xd8, 0x85, 0x57, 0x34, 0x76, 0x43, //0x000134b8 .quad 4861130398305394688 + 0x00, 0xc8, 0x4e, 0x67, 0x6d, 0xc1, 0xab, 0x43, //0x000134c0 .quad 4876203697187506176 + 0x00, 0x3d, 0x91, 0x60, 0xe4, 0x58, 0xe1, 0x43, //0x000134c8 .quad 4891288408196988160 + 0x40, 0x8c, 0xb5, 0x78, 0x1d, 0xaf, 0x15, 0x44, //0x000134d0 .quad 4906019910204099648 + 0x50, 0xef, 0xe2, 0xd6, 0xe4, 0x1a, 0x4b, 0x44, //0x000134d8 .quad 4921056587992461136 + 0x92, 0xd5, 0x4d, 0x06, 0xcf, 0xf0, 0x80, 0x44, //0x000134e0 .quad 4936209963552724370 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000134e8 .p2align 4, 0x00 + //0x000134f0 _pow10_ceil_sig_f32.g + 0xf5, 0xfc, 0x43, 0x4b, 0x2c, 0xb3, 0xce, 0x81, //0x000134f0 .quad -9093133594791772939 + 0x32, 0xfc, 0x14, 0x5e, 0xf7, 0x5f, 0x42, 0xa2, //0x000134f8 .quad -6754730975062328270 + 0x3f, 0x3b, 0x9a, 0x35, 0xf5, 0xf7, 0xd2, 0xca, //0x00013500 .quad -3831727700400522433 + 0x0e, 0xca, 0x00, 0x83, 0xf2, 0xb5, 0x87, 0xfd, //0x00013508 .quad -177973607073265138 + 0x49, 0x7e, 0xe0, 0x91, 0xb7, 0xd1, 0x74, 0x9e, //0x00013510 .quad -7028762532061872567 + 0xdb, 0x9d, 0x58, 0x76, 0x25, 0x06, 0x12, 0xc6, //0x00013518 .quad -4174267146649952805 + 0x52, 0xc5, 0xee, 0xd3, 0xae, 0x87, 0x96, 0xf7, //0x00013520 .quad -606147914885053102 + 0x53, 0x3b, 0x75, 0x44, 0xcd, 0x14, 0xbe, 0x9a, //0x00013528 .quad -7296371474444240045 + 0x28, 0x8a, 0x92, 0x95, 0x00, 0x9a, 0x6d, 0xc1, //0x00013530 .quad -4508778324627912152 + 0xb2, 0x2c, 0xf7, 0xba, 0x80, 0x00, 0xc9, 0xf1, //0x00013538 .quad -1024286887357502286 + 0xef, 0x7b, 0xda, 0x74, 0x50, 0xa0, 0x1d, 0x97, //0x00013540 .quad -7557708332239520785 + 0xeb, 0x1a, 0x11, 0x92, 0x64, 0x08, 0xe5, 0xbc, //0x00013548 .quad -4835449396872013077 + 0xa6, 0x61, 0x95, 0xb6, 0x7d, 0x4a, 0x1e, 0xec, //0x00013550 .quad -1432625727662628442 + 0x08, 0x5d, 0x1d, 0x92, 0x8e, 0xee, 0x92, 0x93, //0x00013558 .quad -7812920107430224632 + 0x4a, 0xb4, 0xa4, 0x36, 0x32, 0xaa, 0x77, 0xb8, //0x00013560 .quad -5154464115860392886 + 0x5c, 0xe1, 0x4d, 0xc4, 0xbe, 0x94, 0x95, 0xe6, //0x00013568 .quad -1831394126398103204 + 0xda, 0xac, 0xb0, 0x3a, 0xf7, 0x7c, 0x1d, 0x90, //0x00013570 .quad -8062150356639896358 + 0x10, 0xd8, 0x5c, 0x09, 0x35, 0xdc, 0x24, 0xb4, //0x00013578 .quad -5466001927372482544 + 0x14, 0x0e, 0xb4, 0x4b, 0x42, 0x13, 0x2e, 0xe1, //0x00013580 .quad -2220816390788215276 + 0xcc, 0x88, 0x50, 0x6f, 0x09, 0xcc, 0xbc, 0x8c, //0x00013588 .quad -8305539271883716404 + 0xff, 0xaa, 0x24, 0xcb, 0x0b, 0xff, 0xeb, 0xaf, //0x00013590 .quad -5770238071427257601 + 0xbf, 0xd5, 0xed, 0xbd, 0xce, 0xfe, 0xe6, 0xdb, //0x00013598 .quad -2601111570856684097 + 0x98, 0xa5, 0xb4, 0x36, 0x41, 0x5f, 0x70, 0x89, //0x000135a0 .quad -8543223759426509416 + 0xfd, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x000135a8 .quad -6067343680855748867 + 0xbd, 0x42, 0x7a, 0xe5, 0xd5, 0x94, 0xbf, 0xd6, //0x000135b0 .quad -2972493582642298179 + 0xb6, 0x69, 0x6c, 0xaf, 0x05, 0xbd, 0x37, 0x86, //0x000135b8 .quad -8775337516792518218 + 0x24, 0x84, 0x47, 0x1b, 0x47, 0xac, 0xc5, 0xa7, //0x000135c0 .quad -6357485877563259868 + 0x2c, 0x65, 0x19, 0xe2, 0x58, 0x17, 0xb7, 0xd1, //0x000135c8 .quad -3335171328526686932 + 0x3c, 0xdf, 0x4f, 0x8d, 0x97, 0x6e, 0x12, 0x83, //0x000135d0 .quad -9002011107970261188 + 0x0b, 0xd7, 0xa3, 0x70, 0x3d, 0x0a, 0xd7, 0xa3, //0x000135d8 .quad -6640827866535438581 + 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x000135e0 .quad -3689348814741910323 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x000135e8 .quad -9223372036854775808 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, //0x000135f0 .quad -6917529027641081856 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc8, //0x000135f8 .quad -4035225266123964416 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, //0x00013600 .quad -432345564227567616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x9c, //0x00013608 .quad -7187745005283311616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0xc3, //0x00013610 .quad -4372995238176751616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0xf4, //0x00013618 .quad -854558029293551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x96, 0x98, //0x00013620 .quad -7451627795949551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xbc, 0xbe, //0x00013628 .quad -4702848726509551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x6b, 0xee, //0x00013630 .quad -1266874889709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf9, 0x02, 0x95, //0x00013638 .quad -7709325833709551616 + 0x00, 0x00, 0x00, 0x00, 0x40, 0xb7, 0x43, 0xba, //0x00013640 .quad -5024971273709551616 + 0x00, 0x00, 0x00, 0x00, 0x10, 0xa5, 0xd4, 0xe8, //0x00013648 .quad -1669528073709551616 + 0x00, 0x00, 0x00, 0x00, 0x2a, 0xe7, 0x84, 0x91, //0x00013650 .quad -7960984073709551616 + 0x00, 0x00, 0x00, 0x80, 0xf4, 0x20, 0xe6, 0xb5, //0x00013658 .quad -5339544073709551616 + 0x00, 0x00, 0x00, 0xa0, 0x31, 0xa9, 0x5f, 0xe3, //0x00013660 .quad -2062744073709551616 + 0x00, 0x00, 0x00, 0x04, 0xbf, 0xc9, 0x1b, 0x8e, //0x00013668 .quad -8206744073709551616 + 0x00, 0x00, 0x00, 0xc5, 0x2e, 0xbc, 0xa2, 0xb1, //0x00013670 .quad -5646744073709551616 + 0x00, 0x00, 0x40, 0x76, 0x3a, 0x6b, 0x0b, 0xde, //0x00013678 .quad -2446744073709551616 + 0x00, 0x00, 0xe8, 0x89, 0x04, 0x23, 0xc7, 0x8a, //0x00013680 .quad -8446744073709551616 + 0x00, 0x00, 0x62, 0xac, 0xc5, 0xeb, 0x78, 0xad, //0x00013688 .quad -5946744073709551616 + 0x00, 0x80, 0x7a, 0x17, 0xb7, 0x26, 0xd7, 0xd8, //0x00013690 .quad -2821744073709551616 + 0x00, 0x90, 0xac, 0x6e, 0x32, 0x78, 0x86, 0x87, //0x00013698 .quad -8681119073709551616 + 0x00, 0xb4, 0x57, 0x0a, 0x3f, 0x16, 0x68, 0xa9, //0x000136a0 .quad -6239712823709551616 + 0x00, 0xa1, 0xed, 0xcc, 0xce, 0x1b, 0xc2, 0xd3, //0x000136a8 .quad -3187955011209551616 + 0xa0, 0x84, 0x14, 0x40, 0x61, 0x51, 0x59, 0x84, //0x000136b0 .quad -8910000909647051616 + 0xc8, 0xa5, 0x19, 0x90, 0xb9, 0xa5, 0x6f, 0xa5, //0x000136b8 .quad -6525815118631426616 + 0x3a, 0x0f, 0x20, 0xf4, 0x27, 0x8f, 0xcb, 0xce, //0x000136c0 .quad -3545582879861895366 + 0x85, 0x09, 0x94, 0xf8, 0x78, 0x39, 0x3f, 0x81, //0x000136c8 .quad -9133518327554766459 + 0xe6, 0x0b, 0xb9, 0x36, 0xd7, 0x07, 0x8f, 0xa1, //0x000136d0 .quad -6805211891016070170 + 0xdf, 0x4e, 0x67, 0x04, 0xcd, 0xc9, 0xf2, 0xc9, //0x000136d8 .quad -3894828845342699809 + 0x97, 0x22, 0x81, 0x45, 0x40, 0x7c, 0x6f, 0xfc, //0x000136e0 .quad -256850038250986857 + 0x9e, 0xb5, 0x70, 0x2b, 0xa8, 0xad, 0xc5, 0x9d, //0x000136e8 .quad -7078060301547948642 + 0x06, 0xe3, 0x4c, 0x36, 0x12, 0x19, 0x37, 0xc5, //0x000136f0 .quad -4235889358507547898 + 0xc7, 0x1b, 0xe0, 0xc3, 0x56, 0xdf, 0x84, 0xf6, //0x000136f8 .quad -683175679707046969 + 0x5d, 0x11, 0x6c, 0x3a, 0x96, 0x0b, 0x13, 0x9a, //0x00013700 .quad -7344513827457986211 + 0xb4, 0x15, 0x07, 0xc9, 0x7b, 0xce, 0x97, 0xc0, //0x00013708 .quad -4568956265895094860 + 0x21, 0xdb, 0x48, 0xbb, 0x1a, 0xc2, 0xbd, 0xf0, //0x00013710 .quad -1099509313941480671 + 0xf5, 0x88, 0x0d, 0xb5, 0x50, 0x99, 0x76, 0x96, //0x00013718 .quad -7604722348854507275 + 0x32, 0xeb, 0x50, 0xe2, 0xa4, 0x3f, 0x14, 0xbc, //0x00013720 .quad -4894216917640746190 + 0xfe, 0x25, 0xe5, 0x1a, 0x8e, 0x4f, 0x19, 0xeb, //0x00013728 .quad -1506085128623544834 + 0xbf, 0x37, 0xcf, 0xd0, 0xb8, 0xd1, 0xef, 0x92, //0x00013730 .quad -7858832233030797377 + 0xae, 0x05, 0x03, 0x05, 0x27, 0xc6, 0xab, 0xb7, //0x00013738 .quad -5211854272861108818 + 0x1a, 0xc7, 0x43, 0xc6, 0xb0, 0xb7, 0x96, 0xe5, //0x00013740 .quad -1903131822648998118 + 0x70, 0x5c, 0xea, 0x7b, 0xce, 0x32, 0x7e, 0x8f, //0x00013748 .quad -8106986416796705680 + 0x8c, 0xf3, 0xe4, 0x1a, 0x82, 0xbf, 0x5d, 0xb3, //0x00013750 .quad -5522047002568494196 } diff --git a/vendor/github.com/bytedance/sonic/internal/native/types/types.go b/vendor/github.com/bytedance/sonic/internal/native/types/types.go index b4afec9ba..c9d47e169 100644 --- a/vendor/github.com/bytedance/sonic/internal/native/types/types.go +++ b/vendor/github.com/bytedance/sonic/internal/native/types/types.go @@ -159,4 +159,4 @@ func NewDbuf() *byte { func FreeDbuf(p *byte) { digitPool.Put(p) -} \ No newline at end of file +} diff --git a/vendor/github.com/bytedance/sonic/internal/rt/asm_amd64.s b/vendor/github.com/bytedance/sonic/internal/rt/asm_amd64.s index 8250e38d3..4998d5f79 100644 --- a/vendor/github.com/bytedance/sonic/internal/rt/asm_amd64.s +++ b/vendor/github.com/bytedance/sonic/internal/rt/asm_amd64.s @@ -1,5 +1,4 @@ -// +build !noasm !appengine -// Code generated by asm2asm, DO NOT EDIT· +// +build !noasm,amd64 !appengine,amd64 #include "go_asm.h" #include "funcdata.h" diff --git a/vendor/github.com/bytedance/sonic/internal/rt/asm_arm64.s b/vendor/github.com/bytedance/sonic/internal/rt/asm_compat.s similarity index 65% rename from vendor/github.com/bytedance/sonic/internal/rt/asm_arm64.s rename to vendor/github.com/bytedance/sonic/internal/rt/asm_compat.s index a168a8266..7d50b6483 100644 --- a/vendor/github.com/bytedance/sonic/internal/rt/asm_arm64.s +++ b/vendor/github.com/bytedance/sonic/internal/rt/asm_compat.s @@ -1,5 +1,4 @@ -// +build !noasm !appengine -// Code generated by asm2asm, DO NOT EDIT. +// +build !noasm,!amd64 !appengine,!amd64 #include "go_asm.h" #include "funcdata.h" diff --git a/vendor/github.com/bytedance/sonic/internal/rt/fastmem.go b/vendor/github.com/bytedance/sonic/internal/rt/fastmem.go index e3bf0db91..a68d98aff 100644 --- a/vendor/github.com/bytedance/sonic/internal/rt/fastmem.go +++ b/vendor/github.com/bytedance/sonic/internal/rt/fastmem.go @@ -66,15 +66,16 @@ func FuncAddr(f interface{}) unsafe.Pointer { } } +//go:nocheckptr func IndexChar(src string, index int) unsafe.Pointer { return unsafe.Pointer(uintptr((*GoString)(unsafe.Pointer(&src)).Ptr) + uintptr(index)) } +//go:nocheckptr func IndexByte(ptr []byte, index int) unsafe.Pointer { return unsafe.Pointer(uintptr((*GoSlice)(unsafe.Pointer(&ptr)).Ptr) + uintptr(index)) } -//go:nosplit func GuardSlice(buf *[]byte, n int) { c := cap(*buf) l := len(*buf) diff --git a/vendor/github.com/bytedance/sonic/internal/rt/fastvalue.go b/vendor/github.com/bytedance/sonic/internal/rt/fastvalue.go index 2b2757f5b..befaeb715 100644 --- a/vendor/github.com/bytedance/sonic/internal/rt/fastvalue.go +++ b/vendor/github.com/bytedance/sonic/internal/rt/fastvalue.go @@ -211,3 +211,24 @@ func findReflectRtypeItab() *GoItab { v := reflect.TypeOf(struct{}{}) return (*GoIface)(unsafe.Pointer(&v)).Itab } + +func AssertI2I2(t *GoType, i GoIface) (r GoIface) { + inter := IfaceType(t) + tab := i.Itab + if tab == nil { + return + } + if (*GoInterfaceType)(tab.it) != inter { + tab = Getitab(inter, tab.Vt, true) + if tab == nil { + return + } + } + r.Itab = tab + r.Value = i.Value + return +} + +//go:noescape +//go:linkname Getitab runtime.getitab +func Getitab(inter *GoInterfaceType, typ *GoType, canfail bool) *GoItab diff --git a/vendor/github.com/bytedance/sonic/loader/funcdata_go121.go b/vendor/github.com/bytedance/sonic/loader/funcdata_go121.go index f50663e2a..ebeaca5a7 100644 --- a/vendor/github.com/bytedance/sonic/loader/funcdata_go121.go +++ b/vendor/github.com/bytedance/sonic/loader/funcdata_go121.go @@ -1,5 +1,5 @@ -//go:build go1.21 && !go1.22 -// +build go1.21,!go1.22 +//go:build go1.21 && !go1.23 +// +build go1.21,!go1.23 /* * Copyright 2021 ByteDance Inc. diff --git a/vendor/github.com/bytedance/sonic/loader/funcdata_latest.go b/vendor/github.com/bytedance/sonic/loader/funcdata_latest.go index 52c6097fb..08618dca4 100644 --- a/vendor/github.com/bytedance/sonic/loader/funcdata_latest.go +++ b/vendor/github.com/bytedance/sonic/loader/funcdata_latest.go @@ -1,5 +1,5 @@ -// go:build go1.18 && !go1.22 -// +build go1.18,!go1.22 +// go:build go1.18 && !go1.23 +// +build go1.18,!go1.23 /* * Copyright 2021 ByteDance Inc. diff --git a/vendor/github.com/bytedance/sonic/loader/loader_latest.go b/vendor/github.com/bytedance/sonic/loader/loader_latest.go index b6e3e75f8..3664c04ba 100644 --- a/vendor/github.com/bytedance/sonic/loader/loader_latest.go +++ b/vendor/github.com/bytedance/sonic/loader/loader_latest.go @@ -1,5 +1,4 @@ -//go:build go1.16 && !go1.22 -// +build go1.16,!go1.22 +// +build go1.16,!go1.23 /* * Copyright 2021 ByteDance Inc. diff --git a/vendor/github.com/bytedance/sonic/loader/mmap_unix.go b/vendor/github.com/bytedance/sonic/loader/mmap_unix.go index 3ea944ed6..26bdb6584 100644 --- a/vendor/github.com/bytedance/sonic/loader/mmap_unix.go +++ b/vendor/github.com/bytedance/sonic/loader/mmap_unix.go @@ -1,5 +1,5 @@ -//go:build darwin || linux -// +build darwin linux +//go:build !windows +// +build !windows /** * Copyright 2023 ByteDance Inc. diff --git a/vendor/github.com/bytedance/sonic/loader/stubs.go b/vendor/github.com/bytedance/sonic/loader/stubs.go index 8377649b7..80f8de836 100644 --- a/vendor/github.com/bytedance/sonic/loader/stubs.go +++ b/vendor/github.com/bytedance/sonic/loader/stubs.go @@ -17,7 +17,8 @@ package loader import ( - `sync` + "sync/atomic" + "unsafe" _ `unsafe` ) @@ -25,16 +26,35 @@ import ( //goland:noinspection GoUnusedGlobalVariable var lastmoduledatap *moduledata -var moduledataMux sync.Mutex - func registerModule(mod *moduledata) { - moduledataMux.Lock() - lastmoduledatap.next = mod - lastmoduledatap = mod - moduledataMux.Unlock() + registerModuleLockFree(&lastmoduledatap, mod) } //go:linkname moduledataverify1 runtime.moduledataverify1 func moduledataverify1(_ *moduledata) +func registerModuleLockFree(tail **moduledata, mod *moduledata) { + for { + oldTail := loadModule(tail) + if casModule(tail, oldTail, mod) { + storeModule(&oldTail.next, mod) + break + } + } +} + +func loadModule(p **moduledata) *moduledata { + return (*moduledata)(atomic.LoadPointer((*unsafe.Pointer)(unsafe.Pointer(p)))) +} +func storeModule(p **moduledata, value *moduledata) { + atomic.StorePointer((*unsafe.Pointer)(unsafe.Pointer(p)), unsafe.Pointer(value)) +} + +func casModule(p **moduledata, oldValue *moduledata, newValue *moduledata) bool { + return atomic.CompareAndSwapPointer( + (*unsafe.Pointer)(unsafe.Pointer(p)), + unsafe.Pointer(oldValue), + unsafe.Pointer(newValue), + ) +} diff --git a/vendor/github.com/bytedance/sonic/sonic.go b/vendor/github.com/bytedance/sonic/sonic.go index 1da238895..145527fc0 100644 --- a/vendor/github.com/bytedance/sonic/sonic.go +++ b/vendor/github.com/bytedance/sonic/sonic.go @@ -1,4 +1,4 @@ -// +build amd64,go1.16,!go1.22 +// +build amd64,go1.16,!go1.23 /* * Copyright 2021 ByteDance Inc. @@ -61,6 +61,9 @@ func (cfg Config) Froze() API { if cfg.NoValidateJSONMarshaler { api.encoderOpts |= encoder.NoValidateJSONMarshaler } + if cfg.NoEncoderNewline { + api.encoderOpts |= encoder.NoEncoderNewline + } // configure decoder options: if cfg.UseInt64 { diff --git a/vendor/github.com/cespare/xxhash/v2/README.md b/vendor/github.com/cespare/xxhash/v2/README.md index 8bf0e5b78..33c88305c 100644 --- a/vendor/github.com/cespare/xxhash/v2/README.md +++ b/vendor/github.com/cespare/xxhash/v2/README.md @@ -70,3 +70,5 @@ benchstat <(go test -benchtime 500ms -count 15 -bench 'Sum64$') - [VictoriaMetrics](https://github.com/VictoriaMetrics/VictoriaMetrics) - [FreeCache](https://github.com/coocood/freecache) - [FastCache](https://github.com/VictoriaMetrics/fastcache) +- [Ristretto](https://github.com/dgraph-io/ristretto) +- [Badger](https://github.com/dgraph-io/badger) diff --git a/vendor/github.com/cespare/xxhash/v2/xxhash.go b/vendor/github.com/cespare/xxhash/v2/xxhash.go index a9e0d45c9..78bddf1ce 100644 --- a/vendor/github.com/cespare/xxhash/v2/xxhash.go +++ b/vendor/github.com/cespare/xxhash/v2/xxhash.go @@ -19,10 +19,13 @@ const ( // Store the primes in an array as well. // // The consts are used when possible in Go code to avoid MOVs but we need a -// contiguous array of the assembly code. +// contiguous array for the assembly code. var primes = [...]uint64{prime1, prime2, prime3, prime4, prime5} // Digest implements hash.Hash64. +// +// Note that a zero-valued Digest is not ready to receive writes. +// Call Reset or create a Digest using New before calling other methods. type Digest struct { v1 uint64 v2 uint64 @@ -33,19 +36,31 @@ type Digest struct { n int // how much of mem is used } -// New creates a new Digest that computes the 64-bit xxHash algorithm. +// New creates a new Digest with a zero seed. func New() *Digest { + return NewWithSeed(0) +} + +// NewWithSeed creates a new Digest with the given seed. +func NewWithSeed(seed uint64) *Digest { var d Digest - d.Reset() + d.ResetWithSeed(seed) return &d } // Reset clears the Digest's state so that it can be reused. +// It uses a seed value of zero. func (d *Digest) Reset() { - d.v1 = primes[0] + prime2 - d.v2 = prime2 - d.v3 = 0 - d.v4 = -primes[0] + d.ResetWithSeed(0) +} + +// ResetWithSeed clears the Digest's state so that it can be reused. +// It uses the given seed to initialize the state. +func (d *Digest) ResetWithSeed(seed uint64) { + d.v1 = seed + prime1 + prime2 + d.v2 = seed + prime2 + d.v3 = seed + d.v4 = seed - prime1 d.total = 0 d.n = 0 } diff --git a/vendor/github.com/cespare/xxhash/v2/xxhash_asm.go b/vendor/github.com/cespare/xxhash/v2/xxhash_asm.go index 9216e0a40..78f95f256 100644 --- a/vendor/github.com/cespare/xxhash/v2/xxhash_asm.go +++ b/vendor/github.com/cespare/xxhash/v2/xxhash_asm.go @@ -6,7 +6,7 @@ package xxhash -// Sum64 computes the 64-bit xxHash digest of b. +// Sum64 computes the 64-bit xxHash digest of b with a zero seed. // //go:noescape func Sum64(b []byte) uint64 diff --git a/vendor/github.com/cespare/xxhash/v2/xxhash_other.go b/vendor/github.com/cespare/xxhash/v2/xxhash_other.go index 26df13bba..118e49e81 100644 --- a/vendor/github.com/cespare/xxhash/v2/xxhash_other.go +++ b/vendor/github.com/cespare/xxhash/v2/xxhash_other.go @@ -3,7 +3,7 @@ package xxhash -// Sum64 computes the 64-bit xxHash digest of b. +// Sum64 computes the 64-bit xxHash digest of b with a zero seed. func Sum64(b []byte) uint64 { // A simpler version would be // d := New() diff --git a/vendor/github.com/cespare/xxhash/v2/xxhash_safe.go b/vendor/github.com/cespare/xxhash/v2/xxhash_safe.go index e86f1b5fd..05f5e7dfe 100644 --- a/vendor/github.com/cespare/xxhash/v2/xxhash_safe.go +++ b/vendor/github.com/cespare/xxhash/v2/xxhash_safe.go @@ -5,7 +5,7 @@ package xxhash -// Sum64String computes the 64-bit xxHash digest of s. +// Sum64String computes the 64-bit xxHash digest of s with a zero seed. func Sum64String(s string) uint64 { return Sum64([]byte(s)) } diff --git a/vendor/github.com/cespare/xxhash/v2/xxhash_unsafe.go b/vendor/github.com/cespare/xxhash/v2/xxhash_unsafe.go index 1c1638fd8..cf9d42aed 100644 --- a/vendor/github.com/cespare/xxhash/v2/xxhash_unsafe.go +++ b/vendor/github.com/cespare/xxhash/v2/xxhash_unsafe.go @@ -33,7 +33,7 @@ import ( // // See https://github.com/golang/go/issues/42739 for discussion. -// Sum64String computes the 64-bit xxHash digest of s. +// Sum64String computes the 64-bit xxHash digest of s with a zero seed. // It may be faster than Sum64([]byte(s)) by avoiding a copy. func Sum64String(s string) uint64 { b := *(*[]byte)(unsafe.Pointer(&sliceHeader{s, len(s)})) diff --git a/vendor/github.com/cloudevents/sdk-go/protocol/kafka_sarama/v2/doc.go b/vendor/github.com/cloudevents/sdk-go/protocol/kafka_sarama/v2/doc.go index e42c22d7a..1a2945c42 100644 --- a/vendor/github.com/cloudevents/sdk-go/protocol/kafka_sarama/v2/doc.go +++ b/vendor/github.com/cloudevents/sdk-go/protocol/kafka_sarama/v2/doc.go @@ -4,6 +4,6 @@ */ /* -Package kafka_sarama implements a Kafka binding using github.com/Shopify/sarama module +Package kafka_sarama implements a Kafka binding using github.com/IBM/sarama module */ package kafka_sarama diff --git a/vendor/github.com/cloudevents/sdk-go/protocol/kafka_sarama/v2/message.go b/vendor/github.com/cloudevents/sdk-go/protocol/kafka_sarama/v2/message.go index b9ff657d5..187530f63 100644 --- a/vendor/github.com/cloudevents/sdk-go/protocol/kafka_sarama/v2/message.go +++ b/vendor/github.com/cloudevents/sdk-go/protocol/kafka_sarama/v2/message.go @@ -8,13 +8,14 @@ package kafka_sarama import ( "bytes" "context" + "strconv" "strings" "github.com/cloudevents/sdk-go/v2/binding" "github.com/cloudevents/sdk-go/v2/binding/format" "github.com/cloudevents/sdk-go/v2/binding/spec" - "github.com/Shopify/sarama" + "github.com/IBM/sarama" ) const ( @@ -35,15 +36,17 @@ type Message struct { } // Check if http.Message implements binding.Message -var _ binding.Message = (*Message)(nil) -var _ binding.MessageMetadataReader = (*Message)(nil) +var ( + _ binding.Message = (*Message)(nil) + _ binding.MessageMetadataReader = (*Message)(nil) +) // NewMessageFromConsumerMessage returns a binding.Message that holds the provided ConsumerMessage. // The returned binding.Message *can* be read several times safely // This function *doesn't* guarantee that the returned binding.Message is always a kafka_sarama.Message instance func NewMessageFromConsumerMessage(cm *sarama.ConsumerMessage) *Message { var contentType string - headers := make(map[string][]byte, len(cm.Headers)) + headers := make(map[string][]byte, len(cm.Headers)+3) for _, r := range cm.Headers { k := strings.ToLower(string(r.Key)) if k == contentTypeHeader { @@ -51,6 +54,9 @@ func NewMessageFromConsumerMessage(cm *sarama.ConsumerMessage) *Message { } headers[k] = r.Value } + headers[prefix+"kafkaoffset"] = []byte(strconv.FormatInt(cm.Offset, 10)) + headers[prefix+"kafkapartition"] = []byte(strconv.FormatInt(int64(cm.Partition), 10)) + headers[prefix+"kafkatopic"] = []byte(cm.Topic) return NewMessage(cm.Value, contentType, headers) } diff --git a/vendor/github.com/cloudevents/sdk-go/protocol/kafka_sarama/v2/protocol.go b/vendor/github.com/cloudevents/sdk-go/protocol/kafka_sarama/v2/protocol.go index 1c70c0852..f82525dd0 100644 --- a/vendor/github.com/cloudevents/sdk-go/protocol/kafka_sarama/v2/protocol.go +++ b/vendor/github.com/cloudevents/sdk-go/protocol/kafka_sarama/v2/protocol.go @@ -10,7 +10,7 @@ import ( "errors" "sync" - "github.com/Shopify/sarama" + "github.com/IBM/sarama" "github.com/cloudevents/sdk-go/v2/binding" cecontext "github.com/cloudevents/sdk-go/v2/context" diff --git a/vendor/github.com/cloudevents/sdk-go/protocol/kafka_sarama/v2/receiver.go b/vendor/github.com/cloudevents/sdk-go/protocol/kafka_sarama/v2/receiver.go index c8f2fdfc4..c2b61f098 100644 --- a/vendor/github.com/cloudevents/sdk-go/protocol/kafka_sarama/v2/receiver.go +++ b/vendor/github.com/cloudevents/sdk-go/protocol/kafka_sarama/v2/receiver.go @@ -10,8 +10,7 @@ import ( "io" "sync" - "github.com/Shopify/sarama" - + "github.com/IBM/sarama" "github.com/cloudevents/sdk-go/v2/binding" "github.com/cloudevents/sdk-go/v2/protocol" ) @@ -67,8 +66,7 @@ func (r *Receiver) ConsumeClaim(session sarama.ConsumerGroupSession, claim saram return nil } m := NewMessageFromConsumerMessage(msg) - - r.incoming <- msgErr{ + msgErrObj := msgErr{ msg: binding.WithFinish(m, func(err error) { if protocol.IsACK(err) { session.MarkMessage(msg, "") @@ -76,6 +74,15 @@ func (r *Receiver) ConsumeClaim(session sarama.ConsumerGroupSession, claim saram }), } + // Need to use select clause here, otherwise r.incoming <- msgErrObj can become a blocking operation, + // resulting in never reaching outside block's case <-session.Context().Done() + select { + case r.incoming <- msgErrObj: + // do nothing + case <-session.Context().Done(): + return nil + } + // Should return when `session.Context()` is done. // If not, will raise `ErrRebalanceInProgress` or `read tcp :: i/o timeout` when kafka rebalance. see: // https://github.com/Shopify/sarama/issues/1192 diff --git a/vendor/github.com/cloudevents/sdk-go/protocol/kafka_sarama/v2/sender.go b/vendor/github.com/cloudevents/sdk-go/protocol/kafka_sarama/v2/sender.go index ffd04609d..9c6a16a22 100644 --- a/vendor/github.com/cloudevents/sdk-go/protocol/kafka_sarama/v2/sender.go +++ b/vendor/github.com/cloudevents/sdk-go/protocol/kafka_sarama/v2/sender.go @@ -8,7 +8,7 @@ package kafka_sarama import ( "context" - "github.com/Shopify/sarama" + "github.com/IBM/sarama" "github.com/cloudevents/sdk-go/v2/binding" ) diff --git a/vendor/github.com/cloudevents/sdk-go/protocol/kafka_sarama/v2/write_producer_message.go b/vendor/github.com/cloudevents/sdk-go/protocol/kafka_sarama/v2/write_producer_message.go index 180f2386c..4ed822c39 100644 --- a/vendor/github.com/cloudevents/sdk-go/protocol/kafka_sarama/v2/write_producer_message.go +++ b/vendor/github.com/cloudevents/sdk-go/protocol/kafka_sarama/v2/write_producer_message.go @@ -10,7 +10,7 @@ import ( "context" "io" - "github.com/Shopify/sarama" + "github.com/IBM/sarama" "github.com/cloudevents/sdk-go/v2/binding" "github.com/cloudevents/sdk-go/v2/binding/format" diff --git a/vendor/github.com/cpuguy83/go-md2man/v2/md2man/roff.go b/vendor/github.com/cpuguy83/go-md2man/v2/md2man/roff.go index 4b19188d9..8a290f197 100644 --- a/vendor/github.com/cpuguy83/go-md2man/v2/md2man/roff.go +++ b/vendor/github.com/cpuguy83/go-md2man/v2/md2man/roff.go @@ -1,6 +1,7 @@ package md2man import ( + "bufio" "bytes" "fmt" "io" @@ -21,34 +22,35 @@ type roffRenderer struct { } const ( - titleHeader = ".TH " - topLevelHeader = "\n\n.SH " - secondLevelHdr = "\n.SH " - otherHeader = "\n.SS " - crTag = "\n" - emphTag = "\\fI" - emphCloseTag = "\\fP" - strongTag = "\\fB" - strongCloseTag = "\\fP" - breakTag = "\n.br\n" - paraTag = "\n.PP\n" - hruleTag = "\n.ti 0\n\\l'\\n(.lu'\n" - linkTag = "\n\\[la]" - linkCloseTag = "\\[ra]" - codespanTag = "\\fB" - codespanCloseTag = "\\fR" - codeTag = "\n.EX\n" - codeCloseTag = "\n.EE\n" - quoteTag = "\n.PP\n.RS\n" - quoteCloseTag = "\n.RE\n" - listTag = "\n.RS\n" - listCloseTag = "\n.RE\n" - dtTag = "\n.TP\n" - dd2Tag = "\n" - tableStart = "\n.TS\nallbox;\n" - tableEnd = ".TE\n" - tableCellStart = "T{\n" - tableCellEnd = "\nT}\n" + titleHeader = ".TH " + topLevelHeader = "\n\n.SH " + secondLevelHdr = "\n.SH " + otherHeader = "\n.SS " + crTag = "\n" + emphTag = "\\fI" + emphCloseTag = "\\fP" + strongTag = "\\fB" + strongCloseTag = "\\fP" + breakTag = "\n.br\n" + paraTag = "\n.PP\n" + hruleTag = "\n.ti 0\n\\l'\\n(.lu'\n" + linkTag = "\n\\[la]" + linkCloseTag = "\\[ra]" + codespanTag = "\\fB" + codespanCloseTag = "\\fR" + codeTag = "\n.EX\n" + codeCloseTag = ".EE\n" // Do not prepend a newline character since code blocks, by definition, include a newline already (or at least as how blackfriday gives us on). + quoteTag = "\n.PP\n.RS\n" + quoteCloseTag = "\n.RE\n" + listTag = "\n.RS\n" + listCloseTag = "\n.RE\n" + dtTag = "\n.TP\n" + dd2Tag = "\n" + tableStart = "\n.TS\nallbox;\n" + tableEnd = ".TE\n" + tableCellStart = "T{\n" + tableCellEnd = "\nT}\n" + tablePreprocessor = `'\" t` ) // NewRoffRenderer creates a new blackfriday Renderer for generating roff documents @@ -75,6 +77,16 @@ func (r *roffRenderer) GetExtensions() blackfriday.Extensions { // RenderHeader handles outputting the header at document start func (r *roffRenderer) RenderHeader(w io.Writer, ast *blackfriday.Node) { + // We need to walk the tree to check if there are any tables. + // If there are, we need to enable the roff table preprocessor. + ast.Walk(func(node *blackfriday.Node, entering bool) blackfriday.WalkStatus { + if node.Type == blackfriday.Table { + out(w, tablePreprocessor+"\n") + return blackfriday.Terminate + } + return blackfriday.GoToNext + }) + // disable hyphenation out(w, ".nh\n") } @@ -322,6 +334,28 @@ func out(w io.Writer, output string) { } func escapeSpecialChars(w io.Writer, text []byte) { + scanner := bufio.NewScanner(bytes.NewReader(text)) + + // count the number of lines in the text + // we need to know this to avoid adding a newline after the last line + n := bytes.Count(text, []byte{'\n'}) + idx := 0 + + for scanner.Scan() { + dt := scanner.Bytes() + if idx < n { + idx++ + dt = append(dt, '\n') + } + escapeSpecialCharsLine(w, dt) + } + + if err := scanner.Err(); err != nil { + panic(err) + } +} + +func escapeSpecialCharsLine(w io.Writer, text []byte) { for i := 0; i < len(text); i++ { // escape initial apostrophe or period if len(text) >= 1 && (text[0] == '\'' || text[0] == '.') { diff --git a/vendor/github.com/eapache/go-resiliency/breaker/breaker.go b/vendor/github.com/eapache/go-resiliency/breaker/breaker.go index f88ca7248..921438625 100644 --- a/vendor/github.com/eapache/go-resiliency/breaker/breaker.go +++ b/vendor/github.com/eapache/go-resiliency/breaker/breaker.go @@ -12,10 +12,13 @@ import ( // because the breaker is currently open. var ErrBreakerOpen = errors.New("circuit breaker is open") +// State is a type representing the possible states of a circuit breaker. +type State uint32 + const ( - closed uint32 = iota - open - halfOpen + Closed State = iota + Open + HalfOpen ) // Breaker implements the circuit-breaker resiliency pattern @@ -24,7 +27,7 @@ type Breaker struct { timeout time.Duration lock sync.Mutex - state uint32 + state State errors, successes int lastError time.Time } @@ -46,9 +49,9 @@ func New(errorThreshold, successThreshold int, timeout time.Duration) *Breaker { // already open, or it will run the given function and pass along its return // value. It is safe to call Run concurrently on the same Breaker. func (b *Breaker) Run(work func() error) error { - state := atomic.LoadUint32(&b.state) + state := b.GetState() - if state == open { + if state == Open { return ErrBreakerOpen } @@ -61,9 +64,9 @@ func (b *Breaker) Run(work func() error) error { // the return value of the function. It is safe to call Go concurrently on the // same Breaker. func (b *Breaker) Go(work func() error) error { - state := atomic.LoadUint32(&b.state) + state := b.GetState() - if state == open { + if state == Open { return ErrBreakerOpen } @@ -75,7 +78,13 @@ func (b *Breaker) Go(work func() error) error { return nil } -func (b *Breaker) doWork(state uint32, work func() error) error { +// GetState returns the current State of the circuit-breaker at the moment +// that it is called. +func (b *Breaker) GetState() State { + return (State)(atomic.LoadUint32((*uint32)(&b.state))) +} + +func (b *Breaker) doWork(state State, work func() error) error { var panicValue interface{} result := func() error { @@ -85,7 +94,7 @@ func (b *Breaker) doWork(state uint32, work func() error) error { return work() }() - if result == nil && panicValue == nil && state == closed { + if result == nil && panicValue == nil && state == Closed { // short-circuit the normal, success path without contending // on the lock return nil @@ -108,7 +117,7 @@ func (b *Breaker) processResult(result error, panicValue interface{}) { defer b.lock.Unlock() if result == nil && panicValue == nil { - if b.state == halfOpen { + if b.state == HalfOpen { b.successes++ if b.successes == b.successThreshold { b.closeBreaker() @@ -123,26 +132,26 @@ func (b *Breaker) processResult(result error, panicValue interface{}) { } switch b.state { - case closed: + case Closed: b.errors++ if b.errors == b.errorThreshold { b.openBreaker() } else { b.lastError = time.Now() } - case halfOpen: + case HalfOpen: b.openBreaker() } } } func (b *Breaker) openBreaker() { - b.changeState(open) + b.changeState(Open) go b.timer() } func (b *Breaker) closeBreaker() { - b.changeState(closed) + b.changeState(Closed) } func (b *Breaker) timer() { @@ -151,11 +160,11 @@ func (b *Breaker) timer() { b.lock.Lock() defer b.lock.Unlock() - b.changeState(halfOpen) + b.changeState(HalfOpen) } -func (b *Breaker) changeState(newState uint32) { +func (b *Breaker) changeState(newState State) { b.errors = 0 b.successes = 0 - atomic.StoreUint32(&b.state, newState) + atomic.StoreUint32((*uint32)(&b.state), (uint32)(newState)) } diff --git a/vendor/github.com/go-playground/validator/v10/Makefile b/vendor/github.com/go-playground/validator/v10/Makefile index 09f171ba1..e097dfaf2 100644 --- a/vendor/github.com/go-playground/validator/v10/Makefile +++ b/vendor/github.com/go-playground/validator/v10/Makefile @@ -1,4 +1,4 @@ -GOCMD=GO111MODULE=on go +GOCMD=go linters-install: @golangci-lint --version >/dev/null 2>&1 || { \ @@ -15,4 +15,4 @@ test: bench: $(GOCMD) test -run=NONE -bench=. -benchmem ./... -.PHONY: test lint linters-install \ No newline at end of file +.PHONY: test lint linters-install diff --git a/vendor/github.com/go-playground/validator/v10/README.md b/vendor/github.com/go-playground/validator/v10/README.md index 810097b3a..a6e1d0b51 100644 --- a/vendor/github.com/go-playground/validator/v10/README.md +++ b/vendor/github.com/go-playground/validator/v10/README.md @@ -1,7 +1,7 @@ Package validator ================= [![Join the chat at https://gitter.im/go-playground/validator](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/go-playground/validator?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) -![Project status](https://img.shields.io/badge/version-10.17.0-green.svg) +![Project status](https://img.shields.io/badge/version-10.19.0-green.svg) [![Build Status](https://travis-ci.org/go-playground/validator.svg?branch=master)](https://travis-ci.org/go-playground/validator) [![Coverage Status](https://coveralls.io/repos/go-playground/validator/badge.svg?branch=master&service=github)](https://coveralls.io/github/go-playground/validator?branch=master) [![Go Report Card](https://goreportcard.com/badge/github.com/go-playground/validator)](https://goreportcard.com/report/github.com/go-playground/validator) diff --git a/vendor/github.com/go-playground/validator/v10/cache.go b/vendor/github.com/go-playground/validator/v10/cache.go index 0f4fa6b5c..b6bdd11a1 100644 --- a/vendor/github.com/go-playground/validator/v10/cache.go +++ b/vendor/github.com/go-playground/validator/v10/cache.go @@ -126,7 +126,7 @@ func (v *Validate) extractStructCache(current reflect.Value, sName string) *cStr fld = typ.Field(i) - if !fld.Anonymous && len(fld.PkgPath) > 0 { + if !v.privateFieldValidation && !fld.Anonymous && len(fld.PkgPath) > 0 { continue } diff --git a/vendor/github.com/go-playground/validator/v10/options.go b/vendor/github.com/go-playground/validator/v10/options.go index 1dea56fd7..86a0db218 100644 --- a/vendor/github.com/go-playground/validator/v10/options.go +++ b/vendor/github.com/go-playground/validator/v10/options.go @@ -14,3 +14,13 @@ func WithRequiredStructEnabled() Option { v.requiredStructEnabled = true } } + +// WithPrivateFieldValidation activates validation for unexported fields via the use of the `unsafe` package. +// +// By opting into this feature you are acknowledging that you are aware of the risks and accept any current or future +// consequences of using this feature. +func WithPrivateFieldValidation() Option { + return func(v *Validate) { + v.privateFieldValidation = true + } +} diff --git a/vendor/github.com/go-playground/validator/v10/validator.go b/vendor/github.com/go-playground/validator/v10/validator.go index a072d39ce..901e7b50a 100644 --- a/vendor/github.com/go-playground/validator/v10/validator.go +++ b/vendor/github.com/go-playground/validator/v10/validator.go @@ -5,6 +5,7 @@ import ( "fmt" "reflect" "strconv" + "unsafe" ) // per validate construct @@ -156,7 +157,7 @@ func (v *validate) traverseField(ctx context.Context, parent reflect.Value, curr structNs: v.str2, fieldLen: uint8(len(cf.altName)), structfieldLen: uint8(len(cf.name)), - value: current.Interface(), + value: getValue(current), param: ct.param, kind: kind, typ: current.Type(), @@ -410,7 +411,7 @@ OUTER: structNs: v.str2, fieldLen: uint8(len(cf.altName)), structfieldLen: uint8(len(cf.name)), - value: current.Interface(), + value: getValue(current), param: ct.param, kind: kind, typ: typ, @@ -430,7 +431,7 @@ OUTER: structNs: v.str2, fieldLen: uint8(len(cf.altName)), structfieldLen: uint8(len(cf.name)), - value: current.Interface(), + value: getValue(current), param: ct.param, kind: kind, typ: typ, @@ -470,7 +471,7 @@ OUTER: structNs: v.str2, fieldLen: uint8(len(cf.altName)), structfieldLen: uint8(len(cf.name)), - value: current.Interface(), + value: getValue(current), param: ct.param, kind: kind, typ: typ, @@ -484,3 +485,26 @@ OUTER: } } + +func getValue(val reflect.Value) interface{} { + if val.CanInterface() { + return val.Interface() + } + + if val.CanAddr() { + return reflect.NewAt(val.Type(), unsafe.Pointer(val.UnsafeAddr())).Elem().Interface() + } + + switch val.Kind() { + case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: + return val.Int() + case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr: + return val.Uint() + case reflect.Complex64, reflect.Complex128: + return val.Complex() + case reflect.Float32, reflect.Float64: + return val.Float() + default: + return val.String() + } +} diff --git a/vendor/github.com/go-playground/validator/v10/validator_instance.go b/vendor/github.com/go-playground/validator/v10/validator_instance.go index d5a7be1de..1a345138e 100644 --- a/vendor/github.com/go-playground/validator/v10/validator_instance.go +++ b/vendor/github.com/go-playground/validator/v10/validator_instance.go @@ -80,20 +80,21 @@ type internalValidationFuncWrapper struct { // Validate contains the validator settings and cache type Validate struct { - tagName string - pool *sync.Pool - tagNameFunc TagNameFunc - structLevelFuncs map[reflect.Type]StructLevelFuncCtx - customFuncs map[reflect.Type]CustomTypeFunc - aliases map[string]string - validations map[string]internalValidationFuncWrapper - transTagFunc map[ut.Translator]map[string]TranslationFunc // map[]map[]TranslationFunc - rules map[reflect.Type]map[string]string - tagCache *tagCache - structCache *structCache - hasCustomFuncs bool - hasTagNameFunc bool - requiredStructEnabled bool + tagName string + pool *sync.Pool + tagNameFunc TagNameFunc + structLevelFuncs map[reflect.Type]StructLevelFuncCtx + customFuncs map[reflect.Type]CustomTypeFunc + aliases map[string]string + validations map[string]internalValidationFuncWrapper + transTagFunc map[ut.Translator]map[string]TranslationFunc // map[]map[]TranslationFunc + rules map[reflect.Type]map[string]string + tagCache *tagCache + structCache *structCache + hasCustomFuncs bool + hasTagNameFunc bool + requiredStructEnabled bool + privateFieldValidation bool } // New returns a new instance of 'validate' with sane defaults. diff --git a/vendor/github.com/golang/protobuf/AUTHORS b/vendor/github.com/golang/protobuf/AUTHORS deleted file mode 100644 index 15167cd74..000000000 --- a/vendor/github.com/golang/protobuf/AUTHORS +++ /dev/null @@ -1,3 +0,0 @@ -# This source code refers to The Go Authors for copyright purposes. -# The master list of authors is in the main Go distribution, -# visible at http://tip.golang.org/AUTHORS. diff --git a/vendor/github.com/golang/protobuf/CONTRIBUTORS b/vendor/github.com/golang/protobuf/CONTRIBUTORS deleted file mode 100644 index 1c4577e96..000000000 --- a/vendor/github.com/golang/protobuf/CONTRIBUTORS +++ /dev/null @@ -1,3 +0,0 @@ -# This source code was written by the Go contributors. -# The master list of contributors is in the main Go distribution, -# visible at http://tip.golang.org/CONTRIBUTORS. diff --git a/vendor/github.com/golang/protobuf/LICENSE b/vendor/github.com/golang/protobuf/LICENSE deleted file mode 100644 index 0f646931a..000000000 --- a/vendor/github.com/golang/protobuf/LICENSE +++ /dev/null @@ -1,28 +0,0 @@ -Copyright 2010 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/golang/protobuf/jsonpb/decode.go b/vendor/github.com/golang/protobuf/jsonpb/decode.go deleted file mode 100644 index 6c16c255f..000000000 --- a/vendor/github.com/golang/protobuf/jsonpb/decode.go +++ /dev/null @@ -1,530 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package jsonpb - -import ( - "encoding/json" - "errors" - "fmt" - "io" - "math" - "reflect" - "strconv" - "strings" - "time" - - "github.com/golang/protobuf/proto" - "google.golang.org/protobuf/encoding/protojson" - protoV2 "google.golang.org/protobuf/proto" - "google.golang.org/protobuf/reflect/protoreflect" - "google.golang.org/protobuf/reflect/protoregistry" -) - -const wrapJSONUnmarshalV2 = false - -// UnmarshalNext unmarshals the next JSON object from d into m. -func UnmarshalNext(d *json.Decoder, m proto.Message) error { - return new(Unmarshaler).UnmarshalNext(d, m) -} - -// Unmarshal unmarshals a JSON object from r into m. -func Unmarshal(r io.Reader, m proto.Message) error { - return new(Unmarshaler).Unmarshal(r, m) -} - -// UnmarshalString unmarshals a JSON object from s into m. -func UnmarshalString(s string, m proto.Message) error { - return new(Unmarshaler).Unmarshal(strings.NewReader(s), m) -} - -// Unmarshaler is a configurable object for converting from a JSON -// representation to a protocol buffer object. -type Unmarshaler struct { - // AllowUnknownFields specifies whether to allow messages to contain - // unknown JSON fields, as opposed to failing to unmarshal. - AllowUnknownFields bool - - // AnyResolver is used to resolve the google.protobuf.Any well-known type. - // If unset, the global registry is used by default. - AnyResolver AnyResolver -} - -// JSONPBUnmarshaler is implemented by protobuf messages that customize the way -// they are unmarshaled from JSON. Messages that implement this should also -// implement JSONPBMarshaler so that the custom format can be produced. -// -// The JSON unmarshaling must follow the JSON to proto specification: -// https://developers.google.com/protocol-buffers/docs/proto3#json -// -// Deprecated: Custom types should implement protobuf reflection instead. -type JSONPBUnmarshaler interface { - UnmarshalJSONPB(*Unmarshaler, []byte) error -} - -// Unmarshal unmarshals a JSON object from r into m. -func (u *Unmarshaler) Unmarshal(r io.Reader, m proto.Message) error { - return u.UnmarshalNext(json.NewDecoder(r), m) -} - -// UnmarshalNext unmarshals the next JSON object from d into m. -func (u *Unmarshaler) UnmarshalNext(d *json.Decoder, m proto.Message) error { - if m == nil { - return errors.New("invalid nil message") - } - - // Parse the next JSON object from the stream. - raw := json.RawMessage{} - if err := d.Decode(&raw); err != nil { - return err - } - - // Check for custom unmarshalers first since they may not properly - // implement protobuf reflection that the logic below relies on. - if jsu, ok := m.(JSONPBUnmarshaler); ok { - return jsu.UnmarshalJSONPB(u, raw) - } - - mr := proto.MessageReflect(m) - - // NOTE: For historical reasons, a top-level null is treated as a noop. - // This is incorrect, but kept for compatibility. - if string(raw) == "null" && mr.Descriptor().FullName() != "google.protobuf.Value" { - return nil - } - - if wrapJSONUnmarshalV2 { - // NOTE: If input message is non-empty, we need to preserve merge semantics - // of the old jsonpb implementation. These semantics are not supported by - // the protobuf JSON specification. - isEmpty := true - mr.Range(func(protoreflect.FieldDescriptor, protoreflect.Value) bool { - isEmpty = false // at least one iteration implies non-empty - return false - }) - if !isEmpty { - // Perform unmarshaling into a newly allocated, empty message. - mr = mr.New() - - // Use a defer to copy all unmarshaled fields into the original message. - dst := proto.MessageReflect(m) - defer mr.Range(func(fd protoreflect.FieldDescriptor, v protoreflect.Value) bool { - dst.Set(fd, v) - return true - }) - } - - // Unmarshal using the v2 JSON unmarshaler. - opts := protojson.UnmarshalOptions{ - DiscardUnknown: u.AllowUnknownFields, - } - if u.AnyResolver != nil { - opts.Resolver = anyResolver{u.AnyResolver} - } - return opts.Unmarshal(raw, mr.Interface()) - } else { - if err := u.unmarshalMessage(mr, raw); err != nil { - return err - } - return protoV2.CheckInitialized(mr.Interface()) - } -} - -func (u *Unmarshaler) unmarshalMessage(m protoreflect.Message, in []byte) error { - md := m.Descriptor() - fds := md.Fields() - - if jsu, ok := proto.MessageV1(m.Interface()).(JSONPBUnmarshaler); ok { - return jsu.UnmarshalJSONPB(u, in) - } - - if string(in) == "null" && md.FullName() != "google.protobuf.Value" { - return nil - } - - switch wellKnownType(md.FullName()) { - case "Any": - var jsonObject map[string]json.RawMessage - if err := json.Unmarshal(in, &jsonObject); err != nil { - return err - } - - rawTypeURL, ok := jsonObject["@type"] - if !ok { - return errors.New("Any JSON doesn't have '@type'") - } - typeURL, err := unquoteString(string(rawTypeURL)) - if err != nil { - return fmt.Errorf("can't unmarshal Any's '@type': %q", rawTypeURL) - } - m.Set(fds.ByNumber(1), protoreflect.ValueOfString(typeURL)) - - var m2 protoreflect.Message - if u.AnyResolver != nil { - mi, err := u.AnyResolver.Resolve(typeURL) - if err != nil { - return err - } - m2 = proto.MessageReflect(mi) - } else { - mt, err := protoregistry.GlobalTypes.FindMessageByURL(typeURL) - if err != nil { - if err == protoregistry.NotFound { - return fmt.Errorf("could not resolve Any message type: %v", typeURL) - } - return err - } - m2 = mt.New() - } - - if wellKnownType(m2.Descriptor().FullName()) != "" { - rawValue, ok := jsonObject["value"] - if !ok { - return errors.New("Any JSON doesn't have 'value'") - } - if err := u.unmarshalMessage(m2, rawValue); err != nil { - return fmt.Errorf("can't unmarshal Any nested proto %v: %v", typeURL, err) - } - } else { - delete(jsonObject, "@type") - rawJSON, err := json.Marshal(jsonObject) - if err != nil { - return fmt.Errorf("can't generate JSON for Any's nested proto to be unmarshaled: %v", err) - } - if err = u.unmarshalMessage(m2, rawJSON); err != nil { - return fmt.Errorf("can't unmarshal Any nested proto %v: %v", typeURL, err) - } - } - - rawWire, err := protoV2.Marshal(m2.Interface()) - if err != nil { - return fmt.Errorf("can't marshal proto %v into Any.Value: %v", typeURL, err) - } - m.Set(fds.ByNumber(2), protoreflect.ValueOfBytes(rawWire)) - return nil - case "BoolValue", "BytesValue", "StringValue", - "Int32Value", "UInt32Value", "FloatValue", - "Int64Value", "UInt64Value", "DoubleValue": - fd := fds.ByNumber(1) - v, err := u.unmarshalValue(m.NewField(fd), in, fd) - if err != nil { - return err - } - m.Set(fd, v) - return nil - case "Duration": - v, err := unquoteString(string(in)) - if err != nil { - return err - } - d, err := time.ParseDuration(v) - if err != nil { - return fmt.Errorf("bad Duration: %v", err) - } - - sec := d.Nanoseconds() / 1e9 - nsec := d.Nanoseconds() % 1e9 - m.Set(fds.ByNumber(1), protoreflect.ValueOfInt64(int64(sec))) - m.Set(fds.ByNumber(2), protoreflect.ValueOfInt32(int32(nsec))) - return nil - case "Timestamp": - v, err := unquoteString(string(in)) - if err != nil { - return err - } - t, err := time.Parse(time.RFC3339Nano, v) - if err != nil { - return fmt.Errorf("bad Timestamp: %v", err) - } - - sec := t.Unix() - nsec := t.Nanosecond() - m.Set(fds.ByNumber(1), protoreflect.ValueOfInt64(int64(sec))) - m.Set(fds.ByNumber(2), protoreflect.ValueOfInt32(int32(nsec))) - return nil - case "Value": - switch { - case string(in) == "null": - m.Set(fds.ByNumber(1), protoreflect.ValueOfEnum(0)) - case string(in) == "true": - m.Set(fds.ByNumber(4), protoreflect.ValueOfBool(true)) - case string(in) == "false": - m.Set(fds.ByNumber(4), protoreflect.ValueOfBool(false)) - case hasPrefixAndSuffix('"', in, '"'): - s, err := unquoteString(string(in)) - if err != nil { - return fmt.Errorf("unrecognized type for Value %q", in) - } - m.Set(fds.ByNumber(3), protoreflect.ValueOfString(s)) - case hasPrefixAndSuffix('[', in, ']'): - v := m.Mutable(fds.ByNumber(6)) - return u.unmarshalMessage(v.Message(), in) - case hasPrefixAndSuffix('{', in, '}'): - v := m.Mutable(fds.ByNumber(5)) - return u.unmarshalMessage(v.Message(), in) - default: - f, err := strconv.ParseFloat(string(in), 0) - if err != nil { - return fmt.Errorf("unrecognized type for Value %q", in) - } - m.Set(fds.ByNumber(2), protoreflect.ValueOfFloat64(f)) - } - return nil - case "ListValue": - var jsonArray []json.RawMessage - if err := json.Unmarshal(in, &jsonArray); err != nil { - return fmt.Errorf("bad ListValue: %v", err) - } - - lv := m.Mutable(fds.ByNumber(1)).List() - for _, raw := range jsonArray { - ve := lv.NewElement() - if err := u.unmarshalMessage(ve.Message(), raw); err != nil { - return err - } - lv.Append(ve) - } - return nil - case "Struct": - var jsonObject map[string]json.RawMessage - if err := json.Unmarshal(in, &jsonObject); err != nil { - return fmt.Errorf("bad StructValue: %v", err) - } - - mv := m.Mutable(fds.ByNumber(1)).Map() - for key, raw := range jsonObject { - kv := protoreflect.ValueOf(key).MapKey() - vv := mv.NewValue() - if err := u.unmarshalMessage(vv.Message(), raw); err != nil { - return fmt.Errorf("bad value in StructValue for key %q: %v", key, err) - } - mv.Set(kv, vv) - } - return nil - } - - var jsonObject map[string]json.RawMessage - if err := json.Unmarshal(in, &jsonObject); err != nil { - return err - } - - // Handle known fields. - for i := 0; i < fds.Len(); i++ { - fd := fds.Get(i) - if fd.IsWeak() && fd.Message().IsPlaceholder() { - continue // weak reference is not linked in - } - - // Search for any raw JSON value associated with this field. - var raw json.RawMessage - name := string(fd.Name()) - if fd.Kind() == protoreflect.GroupKind { - name = string(fd.Message().Name()) - } - if v, ok := jsonObject[name]; ok { - delete(jsonObject, name) - raw = v - } - name = string(fd.JSONName()) - if v, ok := jsonObject[name]; ok { - delete(jsonObject, name) - raw = v - } - - field := m.NewField(fd) - // Unmarshal the field value. - if raw == nil || (string(raw) == "null" && !isSingularWellKnownValue(fd) && !isSingularJSONPBUnmarshaler(field, fd)) { - continue - } - v, err := u.unmarshalValue(field, raw, fd) - if err != nil { - return err - } - m.Set(fd, v) - } - - // Handle extension fields. - for name, raw := range jsonObject { - if !strings.HasPrefix(name, "[") || !strings.HasSuffix(name, "]") { - continue - } - - // Resolve the extension field by name. - xname := protoreflect.FullName(name[len("[") : len(name)-len("]")]) - xt, _ := protoregistry.GlobalTypes.FindExtensionByName(xname) - if xt == nil && isMessageSet(md) { - xt, _ = protoregistry.GlobalTypes.FindExtensionByName(xname.Append("message_set_extension")) - } - if xt == nil { - continue - } - delete(jsonObject, name) - fd := xt.TypeDescriptor() - if fd.ContainingMessage().FullName() != m.Descriptor().FullName() { - return fmt.Errorf("extension field %q does not extend message %q", xname, m.Descriptor().FullName()) - } - - field := m.NewField(fd) - // Unmarshal the field value. - if raw == nil || (string(raw) == "null" && !isSingularWellKnownValue(fd) && !isSingularJSONPBUnmarshaler(field, fd)) { - continue - } - v, err := u.unmarshalValue(field, raw, fd) - if err != nil { - return err - } - m.Set(fd, v) - } - - if !u.AllowUnknownFields && len(jsonObject) > 0 { - for name := range jsonObject { - return fmt.Errorf("unknown field %q in %v", name, md.FullName()) - } - } - return nil -} - -func isSingularWellKnownValue(fd protoreflect.FieldDescriptor) bool { - if fd.Cardinality() == protoreflect.Repeated { - return false - } - if md := fd.Message(); md != nil { - return md.FullName() == "google.protobuf.Value" - } - if ed := fd.Enum(); ed != nil { - return ed.FullName() == "google.protobuf.NullValue" - } - return false -} - -func isSingularJSONPBUnmarshaler(v protoreflect.Value, fd protoreflect.FieldDescriptor) bool { - if fd.Message() != nil && fd.Cardinality() != protoreflect.Repeated { - _, ok := proto.MessageV1(v.Interface()).(JSONPBUnmarshaler) - return ok - } - return false -} - -func (u *Unmarshaler) unmarshalValue(v protoreflect.Value, in []byte, fd protoreflect.FieldDescriptor) (protoreflect.Value, error) { - switch { - case fd.IsList(): - var jsonArray []json.RawMessage - if err := json.Unmarshal(in, &jsonArray); err != nil { - return v, err - } - lv := v.List() - for _, raw := range jsonArray { - ve, err := u.unmarshalSingularValue(lv.NewElement(), raw, fd) - if err != nil { - return v, err - } - lv.Append(ve) - } - return v, nil - case fd.IsMap(): - var jsonObject map[string]json.RawMessage - if err := json.Unmarshal(in, &jsonObject); err != nil { - return v, err - } - kfd := fd.MapKey() - vfd := fd.MapValue() - mv := v.Map() - for key, raw := range jsonObject { - var kv protoreflect.MapKey - if kfd.Kind() == protoreflect.StringKind { - kv = protoreflect.ValueOf(key).MapKey() - } else { - v, err := u.unmarshalSingularValue(kfd.Default(), []byte(key), kfd) - if err != nil { - return v, err - } - kv = v.MapKey() - } - - vv, err := u.unmarshalSingularValue(mv.NewValue(), raw, vfd) - if err != nil { - return v, err - } - mv.Set(kv, vv) - } - return v, nil - default: - return u.unmarshalSingularValue(v, in, fd) - } -} - -var nonFinite = map[string]float64{ - `"NaN"`: math.NaN(), - `"Infinity"`: math.Inf(+1), - `"-Infinity"`: math.Inf(-1), -} - -func (u *Unmarshaler) unmarshalSingularValue(v protoreflect.Value, in []byte, fd protoreflect.FieldDescriptor) (protoreflect.Value, error) { - switch fd.Kind() { - case protoreflect.BoolKind: - return unmarshalValue(in, new(bool)) - case protoreflect.Int32Kind, protoreflect.Sint32Kind, protoreflect.Sfixed32Kind: - return unmarshalValue(trimQuote(in), new(int32)) - case protoreflect.Int64Kind, protoreflect.Sint64Kind, protoreflect.Sfixed64Kind: - return unmarshalValue(trimQuote(in), new(int64)) - case protoreflect.Uint32Kind, protoreflect.Fixed32Kind: - return unmarshalValue(trimQuote(in), new(uint32)) - case protoreflect.Uint64Kind, protoreflect.Fixed64Kind: - return unmarshalValue(trimQuote(in), new(uint64)) - case protoreflect.FloatKind: - if f, ok := nonFinite[string(in)]; ok { - return protoreflect.ValueOfFloat32(float32(f)), nil - } - return unmarshalValue(trimQuote(in), new(float32)) - case protoreflect.DoubleKind: - if f, ok := nonFinite[string(in)]; ok { - return protoreflect.ValueOfFloat64(float64(f)), nil - } - return unmarshalValue(trimQuote(in), new(float64)) - case protoreflect.StringKind: - return unmarshalValue(in, new(string)) - case protoreflect.BytesKind: - return unmarshalValue(in, new([]byte)) - case protoreflect.EnumKind: - if hasPrefixAndSuffix('"', in, '"') { - vd := fd.Enum().Values().ByName(protoreflect.Name(trimQuote(in))) - if vd == nil { - return v, fmt.Errorf("unknown value %q for enum %s", in, fd.Enum().FullName()) - } - return protoreflect.ValueOfEnum(vd.Number()), nil - } - return unmarshalValue(in, new(protoreflect.EnumNumber)) - case protoreflect.MessageKind, protoreflect.GroupKind: - err := u.unmarshalMessage(v.Message(), in) - return v, err - default: - panic(fmt.Sprintf("invalid kind %v", fd.Kind())) - } -} - -func unmarshalValue(in []byte, v interface{}) (protoreflect.Value, error) { - err := json.Unmarshal(in, v) - return protoreflect.ValueOf(reflect.ValueOf(v).Elem().Interface()), err -} - -func unquoteString(in string) (out string, err error) { - err = json.Unmarshal([]byte(in), &out) - return out, err -} - -func hasPrefixAndSuffix(prefix byte, in []byte, suffix byte) bool { - if len(in) >= 2 && in[0] == prefix && in[len(in)-1] == suffix { - return true - } - return false -} - -// trimQuote is like unquoteString but simply strips surrounding quotes. -// This is incorrect, but is behavior done by the legacy implementation. -func trimQuote(in []byte) []byte { - if len(in) >= 2 && in[0] == '"' && in[len(in)-1] == '"' { - in = in[1 : len(in)-1] - } - return in -} diff --git a/vendor/github.com/golang/protobuf/jsonpb/encode.go b/vendor/github.com/golang/protobuf/jsonpb/encode.go deleted file mode 100644 index 685c80a62..000000000 --- a/vendor/github.com/golang/protobuf/jsonpb/encode.go +++ /dev/null @@ -1,559 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package jsonpb - -import ( - "encoding/json" - "errors" - "fmt" - "io" - "math" - "reflect" - "sort" - "strconv" - "strings" - "time" - - "github.com/golang/protobuf/proto" - "google.golang.org/protobuf/encoding/protojson" - protoV2 "google.golang.org/protobuf/proto" - "google.golang.org/protobuf/reflect/protoreflect" - "google.golang.org/protobuf/reflect/protoregistry" -) - -const wrapJSONMarshalV2 = false - -// Marshaler is a configurable object for marshaling protocol buffer messages -// to the specified JSON representation. -type Marshaler struct { - // OrigName specifies whether to use the original protobuf name for fields. - OrigName bool - - // EnumsAsInts specifies whether to render enum values as integers, - // as opposed to string values. - EnumsAsInts bool - - // EmitDefaults specifies whether to render fields with zero values. - EmitDefaults bool - - // Indent controls whether the output is compact or not. - // If empty, the output is compact JSON. Otherwise, every JSON object - // entry and JSON array value will be on its own line. - // Each line will be preceded by repeated copies of Indent, where the - // number of copies is the current indentation depth. - Indent string - - // AnyResolver is used to resolve the google.protobuf.Any well-known type. - // If unset, the global registry is used by default. - AnyResolver AnyResolver -} - -// JSONPBMarshaler is implemented by protobuf messages that customize the -// way they are marshaled to JSON. Messages that implement this should also -// implement JSONPBUnmarshaler so that the custom format can be parsed. -// -// The JSON marshaling must follow the proto to JSON specification: -// https://developers.google.com/protocol-buffers/docs/proto3#json -// -// Deprecated: Custom types should implement protobuf reflection instead. -type JSONPBMarshaler interface { - MarshalJSONPB(*Marshaler) ([]byte, error) -} - -// Marshal serializes a protobuf message as JSON into w. -func (jm *Marshaler) Marshal(w io.Writer, m proto.Message) error { - b, err := jm.marshal(m) - if len(b) > 0 { - if _, err := w.Write(b); err != nil { - return err - } - } - return err -} - -// MarshalToString serializes a protobuf message as JSON in string form. -func (jm *Marshaler) MarshalToString(m proto.Message) (string, error) { - b, err := jm.marshal(m) - if err != nil { - return "", err - } - return string(b), nil -} - -func (jm *Marshaler) marshal(m proto.Message) ([]byte, error) { - v := reflect.ValueOf(m) - if m == nil || (v.Kind() == reflect.Ptr && v.IsNil()) { - return nil, errors.New("Marshal called with nil") - } - - // Check for custom marshalers first since they may not properly - // implement protobuf reflection that the logic below relies on. - if jsm, ok := m.(JSONPBMarshaler); ok { - return jsm.MarshalJSONPB(jm) - } - - if wrapJSONMarshalV2 { - opts := protojson.MarshalOptions{ - UseProtoNames: jm.OrigName, - UseEnumNumbers: jm.EnumsAsInts, - EmitUnpopulated: jm.EmitDefaults, - Indent: jm.Indent, - } - if jm.AnyResolver != nil { - opts.Resolver = anyResolver{jm.AnyResolver} - } - return opts.Marshal(proto.MessageReflect(m).Interface()) - } else { - // Check for unpopulated required fields first. - m2 := proto.MessageReflect(m) - if err := protoV2.CheckInitialized(m2.Interface()); err != nil { - return nil, err - } - - w := jsonWriter{Marshaler: jm} - err := w.marshalMessage(m2, "", "") - return w.buf, err - } -} - -type jsonWriter struct { - *Marshaler - buf []byte -} - -func (w *jsonWriter) write(s string) { - w.buf = append(w.buf, s...) -} - -func (w *jsonWriter) marshalMessage(m protoreflect.Message, indent, typeURL string) error { - if jsm, ok := proto.MessageV1(m.Interface()).(JSONPBMarshaler); ok { - b, err := jsm.MarshalJSONPB(w.Marshaler) - if err != nil { - return err - } - if typeURL != "" { - // we are marshaling this object to an Any type - var js map[string]*json.RawMessage - if err = json.Unmarshal(b, &js); err != nil { - return fmt.Errorf("type %T produced invalid JSON: %v", m.Interface(), err) - } - turl, err := json.Marshal(typeURL) - if err != nil { - return fmt.Errorf("failed to marshal type URL %q to JSON: %v", typeURL, err) - } - js["@type"] = (*json.RawMessage)(&turl) - if b, err = json.Marshal(js); err != nil { - return err - } - } - w.write(string(b)) - return nil - } - - md := m.Descriptor() - fds := md.Fields() - - // Handle well-known types. - const secondInNanos = int64(time.Second / time.Nanosecond) - switch wellKnownType(md.FullName()) { - case "Any": - return w.marshalAny(m, indent) - case "BoolValue", "BytesValue", "StringValue", - "Int32Value", "UInt32Value", "FloatValue", - "Int64Value", "UInt64Value", "DoubleValue": - fd := fds.ByNumber(1) - return w.marshalValue(fd, m.Get(fd), indent) - case "Duration": - const maxSecondsInDuration = 315576000000 - // "Generated output always contains 0, 3, 6, or 9 fractional digits, - // depending on required precision." - s := m.Get(fds.ByNumber(1)).Int() - ns := m.Get(fds.ByNumber(2)).Int() - if s < -maxSecondsInDuration || s > maxSecondsInDuration { - return fmt.Errorf("seconds out of range %v", s) - } - if ns <= -secondInNanos || ns >= secondInNanos { - return fmt.Errorf("ns out of range (%v, %v)", -secondInNanos, secondInNanos) - } - if (s > 0 && ns < 0) || (s < 0 && ns > 0) { - return errors.New("signs of seconds and nanos do not match") - } - var sign string - if s < 0 || ns < 0 { - sign, s, ns = "-", -1*s, -1*ns - } - x := fmt.Sprintf("%s%d.%09d", sign, s, ns) - x = strings.TrimSuffix(x, "000") - x = strings.TrimSuffix(x, "000") - x = strings.TrimSuffix(x, ".000") - w.write(fmt.Sprintf(`"%vs"`, x)) - return nil - case "Timestamp": - // "RFC 3339, where generated output will always be Z-normalized - // and uses 0, 3, 6 or 9 fractional digits." - s := m.Get(fds.ByNumber(1)).Int() - ns := m.Get(fds.ByNumber(2)).Int() - if ns < 0 || ns >= secondInNanos { - return fmt.Errorf("ns out of range [0, %v)", secondInNanos) - } - 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") - x = strings.TrimSuffix(x, ".000") - w.write(fmt.Sprintf(`"%vZ"`, x)) - return nil - case "Value": - // JSON value; which is a null, number, string, bool, object, or array. - od := md.Oneofs().Get(0) - fd := m.WhichOneof(od) - if fd == nil { - return errors.New("nil Value") - } - return w.marshalValue(fd, m.Get(fd), indent) - case "Struct", "ListValue": - // JSON object or array. - fd := fds.ByNumber(1) - return w.marshalValue(fd, m.Get(fd), indent) - } - - w.write("{") - if w.Indent != "" { - w.write("\n") - } - - firstField := true - if typeURL != "" { - if err := w.marshalTypeURL(indent, typeURL); err != nil { - return err - } - firstField = false - } - - for i := 0; i < fds.Len(); { - fd := fds.Get(i) - if od := fd.ContainingOneof(); od != nil { - fd = m.WhichOneof(od) - i += od.Fields().Len() - if fd == nil { - continue - } - } else { - i++ - } - - v := m.Get(fd) - - if !m.Has(fd) { - if !w.EmitDefaults || fd.ContainingOneof() != nil { - continue - } - if fd.Cardinality() != protoreflect.Repeated && (fd.Message() != nil || fd.Syntax() == protoreflect.Proto2) { - v = protoreflect.Value{} // use "null" for singular messages or proto2 scalars - } - } - - if !firstField { - w.writeComma() - } - if err := w.marshalField(fd, v, indent); err != nil { - return err - } - firstField = false - } - - // Handle proto2 extensions. - if md.ExtensionRanges().Len() > 0 { - // Collect a sorted list of all extension descriptor and values. - type ext struct { - desc protoreflect.FieldDescriptor - val protoreflect.Value - } - var exts []ext - m.Range(func(fd protoreflect.FieldDescriptor, v protoreflect.Value) bool { - if fd.IsExtension() { - exts = append(exts, ext{fd, v}) - } - return true - }) - sort.Slice(exts, func(i, j int) bool { - return exts[i].desc.Number() < exts[j].desc.Number() - }) - - for _, ext := range exts { - if !firstField { - w.writeComma() - } - if err := w.marshalField(ext.desc, ext.val, indent); err != nil { - return err - } - firstField = false - } - } - - if w.Indent != "" { - w.write("\n") - w.write(indent) - } - w.write("}") - return nil -} - -func (w *jsonWriter) writeComma() { - if w.Indent != "" { - w.write(",\n") - } else { - w.write(",") - } -} - -func (w *jsonWriter) marshalAny(m protoreflect.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." - md := m.Descriptor() - typeURL := m.Get(md.Fields().ByNumber(1)).String() - rawVal := m.Get(md.Fields().ByNumber(2)).Bytes() - - var m2 protoreflect.Message - if w.AnyResolver != nil { - mi, err := w.AnyResolver.Resolve(typeURL) - if err != nil { - return err - } - m2 = proto.MessageReflect(mi) - } else { - mt, err := protoregistry.GlobalTypes.FindMessageByURL(typeURL) - if err != nil { - return err - } - m2 = mt.New() - } - - if err := protoV2.Unmarshal(rawVal, m2.Interface()); err != nil { - return err - } - - if wellKnownType(m2.Descriptor().FullName()) == "" { - return w.marshalMessage(m2, indent, typeURL) - } - - w.write("{") - if w.Indent != "" { - w.write("\n") - } - if err := w.marshalTypeURL(indent, typeURL); err != nil { - return err - } - w.writeComma() - if w.Indent != "" { - w.write(indent) - w.write(w.Indent) - w.write(`"value": `) - } else { - w.write(`"value":`) - } - if err := w.marshalMessage(m2, indent+w.Indent, ""); err != nil { - return err - } - if w.Indent != "" { - w.write("\n") - w.write(indent) - } - w.write("}") - return nil -} - -func (w *jsonWriter) marshalTypeURL(indent, typeURL string) error { - if w.Indent != "" { - w.write(indent) - w.write(w.Indent) - } - w.write(`"@type":`) - if w.Indent != "" { - w.write(" ") - } - b, err := json.Marshal(typeURL) - if err != nil { - return err - } - w.write(string(b)) - return nil -} - -// marshalField writes field description and value to the Writer. -func (w *jsonWriter) marshalField(fd protoreflect.FieldDescriptor, v protoreflect.Value, indent string) error { - if w.Indent != "" { - w.write(indent) - w.write(w.Indent) - } - w.write(`"`) - switch { - case fd.IsExtension(): - // For message set, use the fname of the message as the extension name. - name := string(fd.FullName()) - if isMessageSet(fd.ContainingMessage()) { - name = strings.TrimSuffix(name, ".message_set_extension") - } - - w.write("[" + name + "]") - case w.OrigName: - name := string(fd.Name()) - if fd.Kind() == protoreflect.GroupKind { - name = string(fd.Message().Name()) - } - w.write(name) - default: - w.write(string(fd.JSONName())) - } - w.write(`":`) - if w.Indent != "" { - w.write(" ") - } - return w.marshalValue(fd, v, indent) -} - -func (w *jsonWriter) marshalValue(fd protoreflect.FieldDescriptor, v protoreflect.Value, indent string) error { - switch { - case fd.IsList(): - w.write("[") - comma := "" - lv := v.List() - for i := 0; i < lv.Len(); i++ { - w.write(comma) - if w.Indent != "" { - w.write("\n") - w.write(indent) - w.write(w.Indent) - w.write(w.Indent) - } - if err := w.marshalSingularValue(fd, lv.Get(i), indent+w.Indent); err != nil { - return err - } - comma = "," - } - if w.Indent != "" { - w.write("\n") - w.write(indent) - w.write(w.Indent) - } - w.write("]") - return nil - case fd.IsMap(): - kfd := fd.MapKey() - vfd := fd.MapValue() - mv := v.Map() - - // Collect a sorted list of all map keys and values. - type entry struct{ key, val protoreflect.Value } - var entries []entry - mv.Range(func(k protoreflect.MapKey, v protoreflect.Value) bool { - entries = append(entries, entry{k.Value(), v}) - return true - }) - sort.Slice(entries, func(i, j int) bool { - switch kfd.Kind() { - case protoreflect.BoolKind: - return !entries[i].key.Bool() && entries[j].key.Bool() - case protoreflect.Int32Kind, protoreflect.Sint32Kind, protoreflect.Sfixed32Kind, protoreflect.Int64Kind, protoreflect.Sint64Kind, protoreflect.Sfixed64Kind: - return entries[i].key.Int() < entries[j].key.Int() - case protoreflect.Uint32Kind, protoreflect.Fixed32Kind, protoreflect.Uint64Kind, protoreflect.Fixed64Kind: - return entries[i].key.Uint() < entries[j].key.Uint() - case protoreflect.StringKind: - return entries[i].key.String() < entries[j].key.String() - default: - panic("invalid kind") - } - }) - - w.write(`{`) - comma := "" - for _, entry := range entries { - w.write(comma) - if w.Indent != "" { - w.write("\n") - w.write(indent) - w.write(w.Indent) - w.write(w.Indent) - } - - s := fmt.Sprint(entry.key.Interface()) - b, err := json.Marshal(s) - if err != nil { - return err - } - w.write(string(b)) - - w.write(`:`) - if w.Indent != "" { - w.write(` `) - } - - if err := w.marshalSingularValue(vfd, entry.val, indent+w.Indent); err != nil { - return err - } - comma = "," - } - if w.Indent != "" { - w.write("\n") - w.write(indent) - w.write(w.Indent) - } - w.write(`}`) - return nil - default: - return w.marshalSingularValue(fd, v, indent) - } -} - -func (w *jsonWriter) marshalSingularValue(fd protoreflect.FieldDescriptor, v protoreflect.Value, indent string) error { - switch { - case !v.IsValid(): - w.write("null") - return nil - case fd.Message() != nil: - return w.marshalMessage(v.Message(), indent+w.Indent, "") - case fd.Enum() != nil: - if fd.Enum().FullName() == "google.protobuf.NullValue" { - w.write("null") - return nil - } - - vd := fd.Enum().Values().ByNumber(v.Enum()) - if vd == nil || w.EnumsAsInts { - w.write(strconv.Itoa(int(v.Enum()))) - } else { - w.write(`"` + string(vd.Name()) + `"`) - } - return nil - default: - switch v.Interface().(type) { - case float32, float64: - switch { - case math.IsInf(v.Float(), +1): - w.write(`"Infinity"`) - return nil - case math.IsInf(v.Float(), -1): - w.write(`"-Infinity"`) - return nil - case math.IsNaN(v.Float()): - w.write(`"NaN"`) - return nil - } - case int64, uint64: - w.write(fmt.Sprintf(`"%d"`, v.Interface())) - return nil - } - - b, err := json.Marshal(v.Interface()) - if err != nil { - return err - } - w.write(string(b)) - return nil - } -} diff --git a/vendor/github.com/golang/protobuf/jsonpb/json.go b/vendor/github.com/golang/protobuf/jsonpb/json.go deleted file mode 100644 index 480e2448d..000000000 --- a/vendor/github.com/golang/protobuf/jsonpb/json.go +++ /dev/null @@ -1,69 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package jsonpb provides functionality to marshal and unmarshal between a -// protocol buffer message and JSON. It follows the specification at -// https://developers.google.com/protocol-buffers/docs/proto3#json. -// -// Do not rely on the default behavior of the standard encoding/json package -// when called on generated message types as it does not operate correctly. -// -// Deprecated: Use the "google.golang.org/protobuf/encoding/protojson" -// package instead. -package jsonpb - -import ( - "github.com/golang/protobuf/proto" - "google.golang.org/protobuf/reflect/protoreflect" - "google.golang.org/protobuf/reflect/protoregistry" - "google.golang.org/protobuf/runtime/protoimpl" -) - -// AnyResolver takes a type URL, present in an Any message, -// and resolves it into an instance of the associated message. -type AnyResolver interface { - Resolve(typeURL string) (proto.Message, error) -} - -type anyResolver struct{ AnyResolver } - -func (r anyResolver) FindMessageByName(message protoreflect.FullName) (protoreflect.MessageType, error) { - return r.FindMessageByURL(string(message)) -} - -func (r anyResolver) FindMessageByURL(url string) (protoreflect.MessageType, error) { - m, err := r.Resolve(url) - if err != nil { - return nil, err - } - return protoimpl.X.MessageTypeOf(m), nil -} - -func (r anyResolver) FindExtensionByName(field protoreflect.FullName) (protoreflect.ExtensionType, error) { - return protoregistry.GlobalTypes.FindExtensionByName(field) -} - -func (r anyResolver) FindExtensionByNumber(message protoreflect.FullName, field protoreflect.FieldNumber) (protoreflect.ExtensionType, error) { - return protoregistry.GlobalTypes.FindExtensionByNumber(message, field) -} - -func wellKnownType(s protoreflect.FullName) string { - if s.Parent() == "google.protobuf" { - switch s.Name() { - case "Empty", "Any", - "BoolValue", "BytesValue", "StringValue", - "Int32Value", "UInt32Value", "FloatValue", - "Int64Value", "UInt64Value", "DoubleValue", - "Duration", "Timestamp", - "NullValue", "Struct", "Value", "ListValue": - return string(s.Name()) - } - } - return "" -} - -func isMessageSet(md protoreflect.MessageDescriptor) bool { - ms, ok := md.(interface{ IsMessageSet() bool }) - return ok && ms.IsMessageSet() -} diff --git a/vendor/github.com/golang/protobuf/proto/buffer.go b/vendor/github.com/golang/protobuf/proto/buffer.go deleted file mode 100644 index e810e6fea..000000000 --- a/vendor/github.com/golang/protobuf/proto/buffer.go +++ /dev/null @@ -1,324 +0,0 @@ -// Copyright 2019 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package proto - -import ( - "errors" - "fmt" - - "google.golang.org/protobuf/encoding/prototext" - "google.golang.org/protobuf/encoding/protowire" - "google.golang.org/protobuf/runtime/protoimpl" -) - -const ( - WireVarint = 0 - WireFixed32 = 5 - WireFixed64 = 1 - WireBytes = 2 - WireStartGroup = 3 - WireEndGroup = 4 -) - -// EncodeVarint returns the varint encoded bytes of v. -func EncodeVarint(v uint64) []byte { - return protowire.AppendVarint(nil, v) -} - -// SizeVarint returns the length of the varint encoded bytes of v. -// This is equal to len(EncodeVarint(v)). -func SizeVarint(v uint64) int { - return protowire.SizeVarint(v) -} - -// DecodeVarint parses a varint encoded integer from b, -// returning the integer value and the length of the varint. -// It returns (0, 0) if there is a parse error. -func DecodeVarint(b []byte) (uint64, int) { - v, n := protowire.ConsumeVarint(b) - if n < 0 { - return 0, 0 - } - return v, n -} - -// Buffer is a buffer for encoding and decoding the protobuf wire format. -// It may be reused between invocations to reduce memory usage. -type Buffer struct { - buf []byte - idx int - deterministic bool -} - -// NewBuffer allocates a new Buffer initialized with buf, -// where the contents of buf are considered the unread portion of the buffer. -func NewBuffer(buf []byte) *Buffer { - return &Buffer{buf: buf} -} - -// SetDeterministic specifies whether to use deterministic serialization. -// -// Deterministic serialization guarantees that for a given binary, equal -// messages will always be serialized to the same bytes. This implies: -// -// - Repeated serialization of a message will return the same bytes. -// - Different processes of the same binary (which may be executing on -// different machines) will serialize equal messages to the same bytes. -// -// Note that the deterministic serialization is NOT canonical across -// languages. It is not guaranteed to remain stable over time. It is unstable -// across different builds with schema changes due to unknown fields. -// Users who need canonical serialization (e.g., persistent storage in a -// canonical form, fingerprinting, etc.) should define their own -// canonicalization specification and implement their own serializer rather -// than relying on this API. -// -// If deterministic serialization is requested, map entries will be sorted -// by keys in lexographical order. This is an implementation detail and -// subject to change. -func (b *Buffer) SetDeterministic(deterministic bool) { - b.deterministic = deterministic -} - -// SetBuf sets buf as the internal buffer, -// where the contents of buf are considered the unread portion of the buffer. -func (b *Buffer) SetBuf(buf []byte) { - b.buf = buf - b.idx = 0 -} - -// Reset clears the internal buffer of all written and unread data. -func (b *Buffer) Reset() { - b.buf = b.buf[:0] - b.idx = 0 -} - -// Bytes returns the internal buffer. -func (b *Buffer) Bytes() []byte { - return b.buf -} - -// Unread returns the unread portion of the buffer. -func (b *Buffer) Unread() []byte { - return b.buf[b.idx:] -} - -// Marshal appends the wire-format encoding of m to the buffer. -func (b *Buffer) Marshal(m Message) error { - var err error - b.buf, err = marshalAppend(b.buf, m, b.deterministic) - return err -} - -// Unmarshal parses the wire-format message in the buffer and -// places the decoded results in m. -// It does not reset m before unmarshaling. -func (b *Buffer) Unmarshal(m Message) error { - err := UnmarshalMerge(b.Unread(), m) - b.idx = len(b.buf) - return err -} - -type unknownFields struct{ XXX_unrecognized protoimpl.UnknownFields } - -func (m *unknownFields) String() string { panic("not implemented") } -func (m *unknownFields) Reset() { panic("not implemented") } -func (m *unknownFields) ProtoMessage() { panic("not implemented") } - -// DebugPrint dumps the encoded bytes of b with a header and footer including s -// to stdout. This is only intended for debugging. -func (*Buffer) DebugPrint(s string, b []byte) { - m := MessageReflect(new(unknownFields)) - m.SetUnknown(b) - b, _ = prototext.MarshalOptions{AllowPartial: true, Indent: "\t"}.Marshal(m.Interface()) - fmt.Printf("==== %s ====\n%s==== %s ====\n", s, b, s) -} - -// EncodeVarint appends an unsigned varint encoding to the buffer. -func (b *Buffer) EncodeVarint(v uint64) error { - b.buf = protowire.AppendVarint(b.buf, v) - return nil -} - -// EncodeZigzag32 appends a 32-bit zig-zag varint encoding to the buffer. -func (b *Buffer) EncodeZigzag32(v uint64) error { - return b.EncodeVarint(uint64((uint32(v) << 1) ^ uint32((int32(v) >> 31)))) -} - -// EncodeZigzag64 appends a 64-bit zig-zag varint encoding to the buffer. -func (b *Buffer) EncodeZigzag64(v uint64) error { - return b.EncodeVarint(uint64((uint64(v) << 1) ^ uint64((int64(v) >> 63)))) -} - -// EncodeFixed32 appends a 32-bit little-endian integer to the buffer. -func (b *Buffer) EncodeFixed32(v uint64) error { - b.buf = protowire.AppendFixed32(b.buf, uint32(v)) - return nil -} - -// EncodeFixed64 appends a 64-bit little-endian integer to the buffer. -func (b *Buffer) EncodeFixed64(v uint64) error { - b.buf = protowire.AppendFixed64(b.buf, uint64(v)) - return nil -} - -// EncodeRawBytes appends a length-prefixed raw bytes to the buffer. -func (b *Buffer) EncodeRawBytes(v []byte) error { - b.buf = protowire.AppendBytes(b.buf, v) - return nil -} - -// EncodeStringBytes appends a length-prefixed raw bytes to the buffer. -// It does not validate whether v contains valid UTF-8. -func (b *Buffer) EncodeStringBytes(v string) error { - b.buf = protowire.AppendString(b.buf, v) - return nil -} - -// EncodeMessage appends a length-prefixed encoded message to the buffer. -func (b *Buffer) EncodeMessage(m Message) error { - var err error - b.buf = protowire.AppendVarint(b.buf, uint64(Size(m))) - b.buf, err = marshalAppend(b.buf, m, b.deterministic) - return err -} - -// DecodeVarint consumes an encoded unsigned varint from the buffer. -func (b *Buffer) DecodeVarint() (uint64, error) { - v, n := protowire.ConsumeVarint(b.buf[b.idx:]) - if n < 0 { - return 0, protowire.ParseError(n) - } - b.idx += n - return uint64(v), nil -} - -// DecodeZigzag32 consumes an encoded 32-bit zig-zag varint from the buffer. -func (b *Buffer) DecodeZigzag32() (uint64, error) { - v, err := b.DecodeVarint() - if err != nil { - return 0, err - } - return uint64((uint32(v) >> 1) ^ uint32((int32(v&1)<<31)>>31)), nil -} - -// DecodeZigzag64 consumes an encoded 64-bit zig-zag varint from the buffer. -func (b *Buffer) DecodeZigzag64() (uint64, error) { - v, err := b.DecodeVarint() - if err != nil { - return 0, err - } - return uint64((uint64(v) >> 1) ^ uint64((int64(v&1)<<63)>>63)), nil -} - -// DecodeFixed32 consumes a 32-bit little-endian integer from the buffer. -func (b *Buffer) DecodeFixed32() (uint64, error) { - v, n := protowire.ConsumeFixed32(b.buf[b.idx:]) - if n < 0 { - return 0, protowire.ParseError(n) - } - b.idx += n - return uint64(v), nil -} - -// DecodeFixed64 consumes a 64-bit little-endian integer from the buffer. -func (b *Buffer) DecodeFixed64() (uint64, error) { - v, n := protowire.ConsumeFixed64(b.buf[b.idx:]) - if n < 0 { - return 0, protowire.ParseError(n) - } - b.idx += n - return uint64(v), nil -} - -// DecodeRawBytes consumes a length-prefixed raw bytes from the buffer. -// If alloc is specified, it returns a copy the raw bytes -// rather than a sub-slice of the buffer. -func (b *Buffer) DecodeRawBytes(alloc bool) ([]byte, error) { - v, n := protowire.ConsumeBytes(b.buf[b.idx:]) - if n < 0 { - return nil, protowire.ParseError(n) - } - b.idx += n - if alloc { - v = append([]byte(nil), v...) - } - return v, nil -} - -// DecodeStringBytes consumes a length-prefixed raw bytes from the buffer. -// It does not validate whether the raw bytes contain valid UTF-8. -func (b *Buffer) DecodeStringBytes() (string, error) { - v, n := protowire.ConsumeString(b.buf[b.idx:]) - if n < 0 { - return "", protowire.ParseError(n) - } - b.idx += n - return v, nil -} - -// DecodeMessage consumes a length-prefixed message from the buffer. -// It does not reset m before unmarshaling. -func (b *Buffer) DecodeMessage(m Message) error { - v, err := b.DecodeRawBytes(false) - if err != nil { - return err - } - return UnmarshalMerge(v, m) -} - -// DecodeGroup consumes a message group from the buffer. -// It assumes that the start group marker has already been consumed and -// consumes all bytes until (and including the end group marker). -// It does not reset m before unmarshaling. -func (b *Buffer) DecodeGroup(m Message) error { - v, n, err := consumeGroup(b.buf[b.idx:]) - if err != nil { - return err - } - b.idx += n - return UnmarshalMerge(v, m) -} - -// consumeGroup parses b until it finds an end group marker, returning -// the raw bytes of the message (excluding the end group marker) and the -// the total length of the message (including the end group marker). -func consumeGroup(b []byte) ([]byte, int, error) { - b0 := b - depth := 1 // assume this follows a start group marker - for { - _, wtyp, tagLen := protowire.ConsumeTag(b) - if tagLen < 0 { - return nil, 0, protowire.ParseError(tagLen) - } - b = b[tagLen:] - - var valLen int - switch wtyp { - case protowire.VarintType: - _, valLen = protowire.ConsumeVarint(b) - case protowire.Fixed32Type: - _, valLen = protowire.ConsumeFixed32(b) - case protowire.Fixed64Type: - _, valLen = protowire.ConsumeFixed64(b) - case protowire.BytesType: - _, valLen = protowire.ConsumeBytes(b) - case protowire.StartGroupType: - depth++ - case protowire.EndGroupType: - depth-- - default: - return nil, 0, errors.New("proto: cannot parse reserved wire type") - } - if valLen < 0 { - return nil, 0, protowire.ParseError(valLen) - } - b = b[valLen:] - - if depth == 0 { - return b0[:len(b0)-len(b)-tagLen], len(b0) - len(b), nil - } - } -} diff --git a/vendor/github.com/golang/protobuf/proto/defaults.go b/vendor/github.com/golang/protobuf/proto/defaults.go deleted file mode 100644 index d399bf069..000000000 --- a/vendor/github.com/golang/protobuf/proto/defaults.go +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright 2019 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package proto - -import ( - "google.golang.org/protobuf/reflect/protoreflect" -) - -// SetDefaults sets unpopulated scalar fields to their default values. -// Fields within a oneof are not set even if they have a default value. -// SetDefaults is recursively called upon any populated message fields. -func SetDefaults(m Message) { - if m != nil { - setDefaults(MessageReflect(m)) - } -} - -func setDefaults(m protoreflect.Message) { - fds := m.Descriptor().Fields() - for i := 0; i < fds.Len(); i++ { - fd := fds.Get(i) - if !m.Has(fd) { - if fd.HasDefault() && fd.ContainingOneof() == nil { - v := fd.Default() - if fd.Kind() == protoreflect.BytesKind { - v = protoreflect.ValueOf(append([]byte(nil), v.Bytes()...)) // copy the default bytes - } - m.Set(fd, v) - } - continue - } - } - - m.Range(func(fd protoreflect.FieldDescriptor, v protoreflect.Value) bool { - switch { - // Handle singular message. - case fd.Cardinality() != protoreflect.Repeated: - if fd.Message() != nil { - setDefaults(m.Get(fd).Message()) - } - // Handle list of messages. - case fd.IsList(): - if fd.Message() != nil { - ls := m.Get(fd).List() - for i := 0; i < ls.Len(); i++ { - setDefaults(ls.Get(i).Message()) - } - } - // Handle map of messages. - case fd.IsMap(): - if fd.MapValue().Message() != nil { - ms := m.Get(fd).Map() - ms.Range(func(_ protoreflect.MapKey, v protoreflect.Value) bool { - setDefaults(v.Message()) - return true - }) - } - } - return true - }) -} diff --git a/vendor/github.com/golang/protobuf/proto/deprecated.go b/vendor/github.com/golang/protobuf/proto/deprecated.go deleted file mode 100644 index e8db57e09..000000000 --- a/vendor/github.com/golang/protobuf/proto/deprecated.go +++ /dev/null @@ -1,113 +0,0 @@ -// Copyright 2018 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package proto - -import ( - "encoding/json" - "errors" - "fmt" - "strconv" - - protoV2 "google.golang.org/protobuf/proto" -) - -var ( - // Deprecated: No longer returned. - ErrNil = errors.New("proto: Marshal called with nil") - - // Deprecated: No longer returned. - ErrTooLarge = errors.New("proto: message encodes to over 2 GB") - - // Deprecated: No longer returned. - ErrInternalBadWireType = errors.New("proto: internal error: bad wiretype for oneof") -) - -// Deprecated: Do not use. -type Stats struct{ Emalloc, Dmalloc, Encode, Decode, Chit, Cmiss, Size uint64 } - -// Deprecated: Do not use. -func GetStats() Stats { return Stats{} } - -// Deprecated: Do not use. -func MarshalMessageSet(interface{}) ([]byte, error) { - return nil, errors.New("proto: not implemented") -} - -// Deprecated: Do not use. -func UnmarshalMessageSet([]byte, interface{}) error { - return errors.New("proto: not implemented") -} - -// Deprecated: Do not use. -func MarshalMessageSetJSON(interface{}) ([]byte, error) { - return nil, errors.New("proto: not implemented") -} - -// Deprecated: Do not use. -func UnmarshalMessageSetJSON([]byte, interface{}) error { - return errors.New("proto: not implemented") -} - -// Deprecated: Do not use. -func RegisterMessageSetType(Message, int32, string) {} - -// Deprecated: Do not use. -func EnumName(m map[int32]string, v int32) string { - s, ok := m[v] - if ok { - return s - } - return strconv.Itoa(int(v)) -} - -// Deprecated: Do not use. -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 -} - -// Deprecated: Do not use; this type existed for intenal-use only. -type InternalMessageInfo struct{} - -// Deprecated: Do not use; this method existed for intenal-use only. -func (*InternalMessageInfo) DiscardUnknown(m Message) { - DiscardUnknown(m) -} - -// Deprecated: Do not use; this method existed for intenal-use only. -func (*InternalMessageInfo) Marshal(b []byte, m Message, deterministic bool) ([]byte, error) { - return protoV2.MarshalOptions{Deterministic: deterministic}.MarshalAppend(b, MessageV2(m)) -} - -// Deprecated: Do not use; this method existed for intenal-use only. -func (*InternalMessageInfo) Merge(dst, src Message) { - protoV2.Merge(MessageV2(dst), MessageV2(src)) -} - -// Deprecated: Do not use; this method existed for intenal-use only. -func (*InternalMessageInfo) Size(m Message) int { - return protoV2.Size(MessageV2(m)) -} - -// Deprecated: Do not use; this method existed for intenal-use only. -func (*InternalMessageInfo) Unmarshal(m Message, b []byte) error { - return protoV2.UnmarshalOptions{Merge: true}.Unmarshal(b, MessageV2(m)) -} diff --git a/vendor/github.com/golang/protobuf/proto/discard.go b/vendor/github.com/golang/protobuf/proto/discard.go deleted file mode 100644 index 2187e877f..000000000 --- a/vendor/github.com/golang/protobuf/proto/discard.go +++ /dev/null @@ -1,58 +0,0 @@ -// Copyright 2019 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package proto - -import ( - "google.golang.org/protobuf/reflect/protoreflect" -) - -// DiscardUnknown recursively discards all unknown fields from this message -// and all embedded messages. -// -// When unmarshaling a message with unrecognized fields, the tags and values -// of such fields are preserved in the Message. This allows a later call to -// marshal to be able to produce a message that continues to have those -// unrecognized fields. To avoid this, DiscardUnknown is used to -// explicitly clear the unknown fields after unmarshaling. -func DiscardUnknown(m Message) { - if m != nil { - discardUnknown(MessageReflect(m)) - } -} - -func discardUnknown(m protoreflect.Message) { - m.Range(func(fd protoreflect.FieldDescriptor, val protoreflect.Value) bool { - switch { - // Handle singular message. - case fd.Cardinality() != protoreflect.Repeated: - if fd.Message() != nil { - discardUnknown(m.Get(fd).Message()) - } - // Handle list of messages. - case fd.IsList(): - if fd.Message() != nil { - ls := m.Get(fd).List() - for i := 0; i < ls.Len(); i++ { - discardUnknown(ls.Get(i).Message()) - } - } - // Handle map of messages. - case fd.IsMap(): - if fd.MapValue().Message() != nil { - ms := m.Get(fd).Map() - ms.Range(func(_ protoreflect.MapKey, v protoreflect.Value) bool { - discardUnknown(v.Message()) - return true - }) - } - } - return true - }) - - // Discard unknown fields. - if len(m.GetUnknown()) > 0 { - m.SetUnknown(nil) - } -} diff --git a/vendor/github.com/golang/protobuf/proto/extensions.go b/vendor/github.com/golang/protobuf/proto/extensions.go deleted file mode 100644 index 42fc120c9..000000000 --- a/vendor/github.com/golang/protobuf/proto/extensions.go +++ /dev/null @@ -1,356 +0,0 @@ -// Copyright 2010 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package proto - -import ( - "errors" - "fmt" - "reflect" - - "google.golang.org/protobuf/encoding/protowire" - "google.golang.org/protobuf/proto" - "google.golang.org/protobuf/reflect/protoreflect" - "google.golang.org/protobuf/reflect/protoregistry" - "google.golang.org/protobuf/runtime/protoiface" - "google.golang.org/protobuf/runtime/protoimpl" -) - -type ( - // ExtensionDesc represents an extension descriptor and - // is used to interact with an extension field in a message. - // - // Variables of this type are generated in code by protoc-gen-go. - ExtensionDesc = protoimpl.ExtensionInfo - - // ExtensionRange represents a range of message extensions. - // Used in code generated by protoc-gen-go. - ExtensionRange = protoiface.ExtensionRangeV1 - - // Deprecated: Do not use; this is an internal type. - Extension = protoimpl.ExtensionFieldV1 - - // Deprecated: Do not use; this is an internal type. - XXX_InternalExtensions = protoimpl.ExtensionFields -) - -// ErrMissingExtension reports whether the extension was not present. -var ErrMissingExtension = errors.New("proto: missing extension") - -var errNotExtendable = errors.New("proto: not an extendable proto.Message") - -// HasExtension reports whether the extension field is present in m -// either as an explicitly populated field or as an unknown field. -func HasExtension(m Message, xt *ExtensionDesc) (has bool) { - mr := MessageReflect(m) - if mr == nil || !mr.IsValid() { - return false - } - - // Check whether any populated known field matches the field number. - xtd := xt.TypeDescriptor() - if isValidExtension(mr.Descriptor(), xtd) { - has = mr.Has(xtd) - } else { - mr.Range(func(fd protoreflect.FieldDescriptor, _ protoreflect.Value) bool { - has = int32(fd.Number()) == xt.Field - return !has - }) - } - - // Check whether any unknown field matches the field number. - for b := mr.GetUnknown(); !has && len(b) > 0; { - num, _, n := protowire.ConsumeField(b) - has = int32(num) == xt.Field - b = b[n:] - } - return has -} - -// ClearExtension removes the extension field from m -// either as an explicitly populated field or as an unknown field. -func ClearExtension(m Message, xt *ExtensionDesc) { - mr := MessageReflect(m) - if mr == nil || !mr.IsValid() { - return - } - - xtd := xt.TypeDescriptor() - if isValidExtension(mr.Descriptor(), xtd) { - mr.Clear(xtd) - } else { - mr.Range(func(fd protoreflect.FieldDescriptor, _ protoreflect.Value) bool { - if int32(fd.Number()) == xt.Field { - mr.Clear(fd) - return false - } - return true - }) - } - clearUnknown(mr, fieldNum(xt.Field)) -} - -// ClearAllExtensions clears all extensions from m. -// This includes populated fields and unknown fields in the extension range. -func ClearAllExtensions(m Message) { - mr := MessageReflect(m) - if mr == nil || !mr.IsValid() { - return - } - - mr.Range(func(fd protoreflect.FieldDescriptor, _ protoreflect.Value) bool { - if fd.IsExtension() { - mr.Clear(fd) - } - return true - }) - clearUnknown(mr, mr.Descriptor().ExtensionRanges()) -} - -// GetExtension retrieves a proto2 extended field from m. -// -// If the descriptor is type complete (i.e., ExtensionDesc.ExtensionType is non-nil), -// then GetExtension parses the encoded field and returns a Go value of the specified type. -// If the field is not present, then the default value is returned (if one is specified), -// otherwise ErrMissingExtension is reported. -// -// If the descriptor is type incomplete (i.e., ExtensionDesc.ExtensionType is nil), -// then GetExtension returns the raw encoded bytes for the extension field. -func GetExtension(m Message, xt *ExtensionDesc) (interface{}, error) { - mr := MessageReflect(m) - if mr == nil || !mr.IsValid() || mr.Descriptor().ExtensionRanges().Len() == 0 { - return nil, errNotExtendable - } - - // Retrieve the unknown fields for this extension field. - var bo protoreflect.RawFields - for bi := mr.GetUnknown(); len(bi) > 0; { - num, _, n := protowire.ConsumeField(bi) - if int32(num) == xt.Field { - bo = append(bo, bi[:n]...) - } - bi = bi[n:] - } - - // For type incomplete descriptors, only retrieve the unknown fields. - if xt.ExtensionType == nil { - return []byte(bo), nil - } - - // If the extension field only exists as unknown fields, unmarshal it. - // This is rarely done since proto.Unmarshal eagerly unmarshals extensions. - xtd := xt.TypeDescriptor() - if !isValidExtension(mr.Descriptor(), xtd) { - return nil, fmt.Errorf("proto: bad extended type; %T does not extend %T", xt.ExtendedType, m) - } - if !mr.Has(xtd) && len(bo) > 0 { - m2 := mr.New() - if err := (proto.UnmarshalOptions{ - Resolver: extensionResolver{xt}, - }.Unmarshal(bo, m2.Interface())); err != nil { - return nil, err - } - if m2.Has(xtd) { - mr.Set(xtd, m2.Get(xtd)) - clearUnknown(mr, fieldNum(xt.Field)) - } - } - - // Check whether the message has the extension field set or a default. - var pv protoreflect.Value - switch { - case mr.Has(xtd): - pv = mr.Get(xtd) - case xtd.HasDefault(): - pv = xtd.Default() - default: - return nil, ErrMissingExtension - } - - v := xt.InterfaceOf(pv) - rv := reflect.ValueOf(v) - if isScalarKind(rv.Kind()) { - rv2 := reflect.New(rv.Type()) - rv2.Elem().Set(rv) - v = rv2.Interface() - } - return v, nil -} - -// extensionResolver is a custom extension resolver that stores a single -// extension type that takes precedence over the global registry. -type extensionResolver struct{ xt protoreflect.ExtensionType } - -func (r extensionResolver) FindExtensionByName(field protoreflect.FullName) (protoreflect.ExtensionType, error) { - if xtd := r.xt.TypeDescriptor(); xtd.FullName() == field { - return r.xt, nil - } - return protoregistry.GlobalTypes.FindExtensionByName(field) -} - -func (r extensionResolver) FindExtensionByNumber(message protoreflect.FullName, field protoreflect.FieldNumber) (protoreflect.ExtensionType, error) { - if xtd := r.xt.TypeDescriptor(); xtd.ContainingMessage().FullName() == message && xtd.Number() == field { - return r.xt, nil - } - return protoregistry.GlobalTypes.FindExtensionByNumber(message, field) -} - -// GetExtensions returns a list of the extensions values present in m, -// corresponding with the provided list of extension descriptors, xts. -// If an extension is missing in m, the corresponding value is nil. -func GetExtensions(m Message, xts []*ExtensionDesc) ([]interface{}, error) { - mr := MessageReflect(m) - if mr == nil || !mr.IsValid() { - return nil, errNotExtendable - } - - vs := make([]interface{}, len(xts)) - for i, xt := range xts { - v, err := GetExtension(m, xt) - if err != nil { - if err == ErrMissingExtension { - continue - } - return vs, err - } - vs[i] = v - } - return vs, nil -} - -// SetExtension sets an extension field in m to the provided value. -func SetExtension(m Message, xt *ExtensionDesc, v interface{}) error { - mr := MessageReflect(m) - if mr == nil || !mr.IsValid() || mr.Descriptor().ExtensionRanges().Len() == 0 { - return errNotExtendable - } - - rv := reflect.ValueOf(v) - if reflect.TypeOf(v) != reflect.TypeOf(xt.ExtensionType) { - return fmt.Errorf("proto: bad extension value type. got: %T, want: %T", v, xt.ExtensionType) - } - if rv.Kind() == reflect.Ptr { - if rv.IsNil() { - return fmt.Errorf("proto: SetExtension called with nil value of type %T", v) - } - if isScalarKind(rv.Elem().Kind()) { - v = rv.Elem().Interface() - } - } - - xtd := xt.TypeDescriptor() - if !isValidExtension(mr.Descriptor(), xtd) { - return fmt.Errorf("proto: bad extended type; %T does not extend %T", xt.ExtendedType, m) - } - mr.Set(xtd, xt.ValueOf(v)) - clearUnknown(mr, fieldNum(xt.Field)) - return nil -} - -// SetRawExtension inserts b into the unknown fields of m. -// -// Deprecated: Use Message.ProtoReflect.SetUnknown instead. -func SetRawExtension(m Message, fnum int32, b []byte) { - mr := MessageReflect(m) - if mr == nil || !mr.IsValid() { - return - } - - // Verify that the raw field is valid. - for b0 := b; len(b0) > 0; { - num, _, n := protowire.ConsumeField(b0) - if int32(num) != fnum { - panic(fmt.Sprintf("mismatching field number: got %d, want %d", num, fnum)) - } - b0 = b0[n:] - } - - ClearExtension(m, &ExtensionDesc{Field: fnum}) - mr.SetUnknown(append(mr.GetUnknown(), b...)) -} - -// ExtensionDescs returns a list of extension descriptors found in m, -// containing descriptors for both populated extension fields in m and -// also unknown fields of m that are in the extension range. -// For the later case, an type incomplete descriptor is provided where only -// the ExtensionDesc.Field field is populated. -// The order of the extension descriptors is undefined. -func ExtensionDescs(m Message) ([]*ExtensionDesc, error) { - mr := MessageReflect(m) - if mr == nil || !mr.IsValid() || mr.Descriptor().ExtensionRanges().Len() == 0 { - return nil, errNotExtendable - } - - // Collect a set of known extension descriptors. - extDescs := make(map[protoreflect.FieldNumber]*ExtensionDesc) - mr.Range(func(fd protoreflect.FieldDescriptor, v protoreflect.Value) bool { - if fd.IsExtension() { - xt := fd.(protoreflect.ExtensionTypeDescriptor) - if xd, ok := xt.Type().(*ExtensionDesc); ok { - extDescs[fd.Number()] = xd - } - } - return true - }) - - // Collect a set of unknown extension descriptors. - extRanges := mr.Descriptor().ExtensionRanges() - for b := mr.GetUnknown(); len(b) > 0; { - num, _, n := protowire.ConsumeField(b) - if extRanges.Has(num) && extDescs[num] == nil { - extDescs[num] = nil - } - b = b[n:] - } - - // Transpose the set of descriptors into a list. - var xts []*ExtensionDesc - for num, xt := range extDescs { - if xt == nil { - xt = &ExtensionDesc{Field: int32(num)} - } - xts = append(xts, xt) - } - return xts, nil -} - -// isValidExtension reports whether xtd is a valid extension descriptor for md. -func isValidExtension(md protoreflect.MessageDescriptor, xtd protoreflect.ExtensionTypeDescriptor) bool { - return xtd.ContainingMessage() == md && md.ExtensionRanges().Has(xtd.Number()) -} - -// isScalarKind reports whether k is a protobuf scalar kind (except bytes). -// This function exists for historical reasons since the representation of -// scalars differs between v1 and v2, where v1 uses *T and v2 uses T. -func isScalarKind(k reflect.Kind) bool { - switch k { - case reflect.Bool, reflect.Int32, reflect.Int64, reflect.Uint32, reflect.Uint64, reflect.Float32, reflect.Float64, reflect.String: - return true - default: - return false - } -} - -// clearUnknown removes unknown fields from m where remover.Has reports true. -func clearUnknown(m protoreflect.Message, remover interface { - Has(protoreflect.FieldNumber) bool -}) { - var bo protoreflect.RawFields - for bi := m.GetUnknown(); len(bi) > 0; { - num, _, n := protowire.ConsumeField(bi) - if !remover.Has(num) { - bo = append(bo, bi[:n]...) - } - bi = bi[n:] - } - if bi := m.GetUnknown(); len(bi) != len(bo) { - m.SetUnknown(bo) - } -} - -type fieldNum protoreflect.FieldNumber - -func (n1 fieldNum) Has(n2 protoreflect.FieldNumber) bool { - return protoreflect.FieldNumber(n1) == n2 -} diff --git a/vendor/github.com/golang/protobuf/proto/properties.go b/vendor/github.com/golang/protobuf/proto/properties.go deleted file mode 100644 index dcdc2202f..000000000 --- a/vendor/github.com/golang/protobuf/proto/properties.go +++ /dev/null @@ -1,306 +0,0 @@ -// Copyright 2010 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package proto - -import ( - "fmt" - "reflect" - "strconv" - "strings" - "sync" - - "google.golang.org/protobuf/reflect/protoreflect" - "google.golang.org/protobuf/runtime/protoimpl" -) - -// StructProperties represents protocol buffer type information for a -// generated protobuf message in the open-struct API. -// -// Deprecated: Do not use. -type StructProperties struct { - // Prop are the properties for each field. - // - // Fields belonging to a oneof are stored in OneofTypes instead, with a - // single Properties representing the parent oneof held here. - // - // The order of Prop matches the order of fields in the Go struct. - // Struct fields that are not related to protobufs have a "XXX_" prefix - // in the Properties.Name and must be ignored by the user. - Prop []*Properties - - // OneofTypes contains information about the oneof fields in this message. - // It is keyed by the protobuf field name. - OneofTypes map[string]*OneofProperties -} - -// Properties represents the type information for a protobuf message field. -// -// Deprecated: Do not use. -type Properties struct { - // Name is a placeholder name with little meaningful semantic value. - // If the name has an "XXX_" prefix, the entire Properties must be ignored. - Name string - // OrigName is the protobuf field name or oneof name. - OrigName string - // JSONName is the JSON name for the protobuf field. - JSONName string - // Enum is a placeholder name for enums. - // For historical reasons, this is neither the Go name for the enum, - // nor the protobuf name for the enum. - Enum string // Deprecated: Do not use. - // Weak contains the full name of the weakly referenced message. - Weak string - // Wire is a string representation of the wire type. - Wire string - // WireType is the protobuf wire type for the field. - WireType int - // Tag is the protobuf field number. - Tag int - // Required reports whether this is a required field. - Required bool - // Optional reports whether this is a optional field. - Optional bool - // Repeated reports whether this is a repeated field. - Repeated bool - // Packed reports whether this is a packed repeated field of scalars. - Packed bool - // Proto3 reports whether this field operates under the proto3 syntax. - Proto3 bool - // Oneof reports whether this field belongs within a oneof. - Oneof bool - - // Default is the default value in string form. - Default string - // HasDefault reports whether the field has a default value. - HasDefault bool - - // MapKeyProp is the properties for the key field for a map field. - MapKeyProp *Properties - // MapValProp is the properties for the value field for a map field. - MapValProp *Properties -} - -// OneofProperties represents the type information for a protobuf oneof. -// -// Deprecated: Do not use. -type OneofProperties struct { - // Type is a pointer to the generated wrapper type for the field value. - // This is nil for messages that are not in the open-struct API. - Type reflect.Type - // Field is the index into StructProperties.Prop for the containing oneof. - Field int - // Prop is the properties for the field. - Prop *Properties -} - -// String formats the properties in the protobuf struct field tag style. -func (p *Properties) String() string { - s := p.Wire - 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 != "" { - s += ",json=" + p.JSONName - } - if len(p.Enum) > 0 { - s += ",enum=" + p.Enum - } - if len(p.Weak) > 0 { - s += ",weak=" + p.Weak - } - if p.Proto3 { - s += ",proto3" - } - if p.Oneof { - s += ",oneof" - } - 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(tag string) { - // For example: "bytes,49,opt,name=foo,def=hello!" - for len(tag) > 0 { - i := strings.IndexByte(tag, ',') - if i < 0 { - i = len(tag) - } - switch s := tag[:i]; { - case strings.HasPrefix(s, "name="): - p.OrigName = s[len("name="):] - case strings.HasPrefix(s, "json="): - p.JSONName = s[len("json="):] - case strings.HasPrefix(s, "enum="): - p.Enum = s[len("enum="):] - case strings.HasPrefix(s, "weak="): - p.Weak = s[len("weak="):] - case strings.Trim(s, "0123456789") == "": - n, _ := strconv.ParseUint(s, 10, 32) - p.Tag = int(n) - case s == "opt": - p.Optional = true - case s == "req": - p.Required = true - case s == "rep": - p.Repeated = true - case s == "varint" || s == "zigzag32" || s == "zigzag64": - p.Wire = s - p.WireType = WireVarint - case s == "fixed32": - p.Wire = s - p.WireType = WireFixed32 - case s == "fixed64": - p.Wire = s - p.WireType = WireFixed64 - case s == "bytes": - p.Wire = s - p.WireType = WireBytes - case s == "group": - p.Wire = s - p.WireType = WireStartGroup - case s == "packed": - p.Packed = true - case s == "proto3": - p.Proto3 = true - case s == "oneof": - p.Oneof = true - case strings.HasPrefix(s, "def="): - // The default tag is special in that everything afterwards is the - // default regardless of the presence of commas. - p.HasDefault = true - p.Default, i = tag[len("def="):], len(tag) - } - tag = strings.TrimPrefix(tag[i:], ",") - } -} - -// Init populates the properties from a protocol buffer struct tag. -// -// Deprecated: Do not use. -func (p *Properties) Init(typ reflect.Type, name, tag string, f *reflect.StructField) { - p.Name = name - p.OrigName = name - if tag == "" { - return - } - p.Parse(tag) - - if typ != nil && typ.Kind() == reflect.Map { - p.MapKeyProp = new(Properties) - p.MapKeyProp.Init(nil, "Key", f.Tag.Get("protobuf_key"), nil) - p.MapValProp = new(Properties) - p.MapValProp.Init(nil, "Value", f.Tag.Get("protobuf_val"), nil) - } -} - -var propertiesCache sync.Map // map[reflect.Type]*StructProperties - -// GetProperties returns the list of properties for the type represented by t, -// which must be a generated protocol buffer message in the open-struct API, -// where protobuf message fields are represented by exported Go struct fields. -// -// Deprecated: Use protobuf reflection instead. -func GetProperties(t reflect.Type) *StructProperties { - if p, ok := propertiesCache.Load(t); ok { - return p.(*StructProperties) - } - p, _ := propertiesCache.LoadOrStore(t, newProperties(t)) - return p.(*StructProperties) -} - -func newProperties(t reflect.Type) *StructProperties { - if t.Kind() != reflect.Struct { - panic(fmt.Sprintf("%v is not a generated message in the open-struct API", t)) - } - - var hasOneof bool - prop := new(StructProperties) - - // Construct a list of properties for each field in the struct. - for i := 0; i < t.NumField(); i++ { - p := new(Properties) - f := t.Field(i) - tagField := f.Tag.Get("protobuf") - p.Init(f.Type, f.Name, tagField, &f) - - tagOneof := f.Tag.Get("protobuf_oneof") - if tagOneof != "" { - hasOneof = true - p.OrigName = tagOneof - } - - // Rename unrelated struct fields with the "XXX_" prefix since so much - // user code simply checks for this to exclude special fields. - if tagField == "" && tagOneof == "" && !strings.HasPrefix(p.Name, "XXX_") { - p.Name = "XXX_" + p.Name - p.OrigName = "XXX_" + p.OrigName - } else if p.Weak != "" { - p.Name = p.OrigName // avoid possible "XXX_" prefix on weak field - } - - prop.Prop = append(prop.Prop, p) - } - - // Construct a mapping of oneof field names to properties. - if hasOneof { - var oneofWrappers []interface{} - if fn, ok := reflect.PtrTo(t).MethodByName("XXX_OneofFuncs"); ok { - oneofWrappers = fn.Func.Call([]reflect.Value{reflect.Zero(fn.Type.In(0))})[3].Interface().([]interface{}) - } - if fn, ok := reflect.PtrTo(t).MethodByName("XXX_OneofWrappers"); ok { - oneofWrappers = fn.Func.Call([]reflect.Value{reflect.Zero(fn.Type.In(0))})[0].Interface().([]interface{}) - } - if m, ok := reflect.Zero(reflect.PtrTo(t)).Interface().(protoreflect.ProtoMessage); ok { - if m, ok := m.ProtoReflect().(interface{ ProtoMessageInfo() *protoimpl.MessageInfo }); ok { - oneofWrappers = m.ProtoMessageInfo().OneofWrappers - } - } - - prop.OneofTypes = make(map[string]*OneofProperties) - for _, wrapper := range oneofWrappers { - p := &OneofProperties{ - Type: reflect.ValueOf(wrapper).Type(), // *T - Prop: new(Properties), - } - f := p.Type.Elem().Field(0) - p.Prop.Name = f.Name - p.Prop.Parse(f.Tag.Get("protobuf")) - - // Determine the struct field that contains this oneof. - // Each wrapper is assignable to exactly one parent field. - var foundOneof bool - for i := 0; i < t.NumField() && !foundOneof; i++ { - if p.Type.AssignableTo(t.Field(i).Type) { - p.Field = i - foundOneof = true - } - } - if !foundOneof { - panic(fmt.Sprintf("%v is not a generated message in the open-struct API", t)) - } - prop.OneofTypes[p.Prop.OrigName] = p - } - } - - return prop -} - -func (sp *StructProperties) Len() int { return len(sp.Prop) } -func (sp *StructProperties) Less(i, j int) bool { return false } -func (sp *StructProperties) Swap(i, j int) { return } diff --git a/vendor/github.com/golang/protobuf/proto/proto.go b/vendor/github.com/golang/protobuf/proto/proto.go deleted file mode 100644 index 5aee89c32..000000000 --- a/vendor/github.com/golang/protobuf/proto/proto.go +++ /dev/null @@ -1,167 +0,0 @@ -// Copyright 2019 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package proto provides functionality for handling protocol buffer messages. -// In particular, it provides marshaling and unmarshaling between a protobuf -// message and the binary wire format. -// -// See https://developers.google.com/protocol-buffers/docs/gotutorial for -// more information. -// -// Deprecated: Use the "google.golang.org/protobuf/proto" package instead. -package proto - -import ( - protoV2 "google.golang.org/protobuf/proto" - "google.golang.org/protobuf/reflect/protoreflect" - "google.golang.org/protobuf/runtime/protoiface" - "google.golang.org/protobuf/runtime/protoimpl" -) - -const ( - ProtoPackageIsVersion1 = true - ProtoPackageIsVersion2 = true - ProtoPackageIsVersion3 = true - ProtoPackageIsVersion4 = true -) - -// GeneratedEnum is any enum type generated by protoc-gen-go -// which is a named int32 kind. -// This type exists for documentation purposes. -type GeneratedEnum interface{} - -// GeneratedMessage is any message type generated by protoc-gen-go -// which is a pointer to a named struct kind. -// This type exists for documentation purposes. -type GeneratedMessage interface{} - -// Message is a protocol buffer message. -// -// This is the v1 version of the message interface and is marginally better -// than an empty interface as it lacks any method to programatically interact -// with the contents of the message. -// -// A v2 message is declared in "google.golang.org/protobuf/proto".Message and -// exposes protobuf reflection as a first-class feature of the interface. -// -// To convert a v1 message to a v2 message, use the MessageV2 function. -// To convert a v2 message to a v1 message, use the MessageV1 function. -type Message = protoiface.MessageV1 - -// MessageV1 converts either a v1 or v2 message to a v1 message. -// It returns nil if m is nil. -func MessageV1(m GeneratedMessage) protoiface.MessageV1 { - return protoimpl.X.ProtoMessageV1Of(m) -} - -// MessageV2 converts either a v1 or v2 message to a v2 message. -// It returns nil if m is nil. -func MessageV2(m GeneratedMessage) protoV2.Message { - return protoimpl.X.ProtoMessageV2Of(m) -} - -// MessageReflect returns a reflective view for a message. -// It returns nil if m is nil. -func MessageReflect(m Message) protoreflect.Message { - return protoimpl.X.MessageOf(m) -} - -// Marshaler is implemented by messages that can marshal themselves. -// This interface is used by the following functions: Size, Marshal, -// Buffer.Marshal, and Buffer.EncodeMessage. -// -// Deprecated: Do not implement. -type Marshaler interface { - // Marshal formats the encoded bytes of the message. - // It should be deterministic and emit valid protobuf wire data. - // The caller takes ownership of the returned buffer. - Marshal() ([]byte, error) -} - -// Unmarshaler is implemented by messages that can unmarshal themselves. -// This interface is used by the following functions: Unmarshal, UnmarshalMerge, -// Buffer.Unmarshal, Buffer.DecodeMessage, and Buffer.DecodeGroup. -// -// Deprecated: Do not implement. -type Unmarshaler interface { - // Unmarshal parses the encoded bytes of the protobuf wire input. - // The provided buffer is only valid for during method call. - // It should not reset the receiver message. - Unmarshal([]byte) error -} - -// Merger is implemented by messages that can merge themselves. -// This interface is used by the following functions: Clone and Merge. -// -// Deprecated: Do not implement. -type Merger interface { - // Merge merges the contents of src into the receiver message. - // It clones all data structures in src such that it aliases no mutable - // memory referenced by src. - Merge(src Message) -} - -// RequiredNotSetError is an error type returned when -// marshaling or unmarshaling a message with missing required fields. -type RequiredNotSetError struct { - err error -} - -func (e *RequiredNotSetError) Error() string { - if e.err != nil { - return e.err.Error() - } - return "proto: required field not set" -} -func (e *RequiredNotSetError) RequiredNotSet() bool { - return true -} - -func checkRequiredNotSet(m protoV2.Message) error { - if err := protoV2.CheckInitialized(m); err != nil { - return &RequiredNotSetError{err: err} - } - return nil -} - -// Clone returns a deep copy of src. -func Clone(src Message) Message { - return MessageV1(protoV2.Clone(MessageV2(src))) -} - -// Merge merges src into dst, which must be messages of the same type. -// -// Populated scalar fields in src are copied to dst, while populated -// singular messages in src are merged into dst by recursively calling Merge. -// The elements of every list field in src is appended to the corresponded -// list fields in dst. The entries of every map field in src is copied into -// the corresponding map field in dst, possibly replacing existing entries. -// The unknown fields of src are appended to the unknown fields of dst. -func Merge(dst, src Message) { - protoV2.Merge(MessageV2(dst), MessageV2(src)) -} - -// Equal reports whether two messages are equal. -// If two messages marshal to the same bytes under deterministic serialization, -// then Equal is guaranteed to report true. -// -// Two messages are equal if they are the same protobuf message type, -// have the same set of populated known and extension field values, -// and the same set of unknown fields values. -// -// Scalar values are compared with the equivalent of the == operator in Go, -// except bytes values which are compared using bytes.Equal and -// floating point values which specially treat NaNs as equal. -// Message values are compared by recursively calling Equal. -// Lists are equal if each element value is also equal. -// Maps are equal if they have the same set of keys, where the pair of values -// for each key is also equal. -func Equal(x, y Message) bool { - return protoV2.Equal(MessageV2(x), MessageV2(y)) -} - -func isMessageSet(md protoreflect.MessageDescriptor) bool { - ms, ok := md.(interface{ IsMessageSet() bool }) - return ok && ms.IsMessageSet() -} diff --git a/vendor/github.com/golang/protobuf/proto/registry.go b/vendor/github.com/golang/protobuf/proto/registry.go deleted file mode 100644 index 066b4323b..000000000 --- a/vendor/github.com/golang/protobuf/proto/registry.go +++ /dev/null @@ -1,317 +0,0 @@ -// Copyright 2019 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package proto - -import ( - "bytes" - "compress/gzip" - "fmt" - "io/ioutil" - "reflect" - "strings" - "sync" - - "google.golang.org/protobuf/reflect/protodesc" - "google.golang.org/protobuf/reflect/protoreflect" - "google.golang.org/protobuf/reflect/protoregistry" - "google.golang.org/protobuf/runtime/protoimpl" -) - -// filePath is the path to the proto source file. -type filePath = string // e.g., "google/protobuf/descriptor.proto" - -// fileDescGZIP is the compressed contents of the encoded FileDescriptorProto. -type fileDescGZIP = []byte - -var fileCache sync.Map // map[filePath]fileDescGZIP - -// RegisterFile is called from generated code to register the compressed -// FileDescriptorProto with the file path for a proto source file. -// -// Deprecated: Use protoregistry.GlobalFiles.RegisterFile instead. -func RegisterFile(s filePath, d fileDescGZIP) { - // Decompress the descriptor. - zr, err := gzip.NewReader(bytes.NewReader(d)) - if err != nil { - panic(fmt.Sprintf("proto: invalid compressed file descriptor: %v", err)) - } - b, err := ioutil.ReadAll(zr) - if err != nil { - panic(fmt.Sprintf("proto: invalid compressed file descriptor: %v", err)) - } - - // Construct a protoreflect.FileDescriptor from the raw descriptor. - // Note that DescBuilder.Build automatically registers the constructed - // file descriptor with the v2 registry. - protoimpl.DescBuilder{RawDescriptor: b}.Build() - - // Locally cache the raw descriptor form for the file. - fileCache.Store(s, d) -} - -// FileDescriptor returns the compressed FileDescriptorProto given the file path -// for a proto source file. It returns nil if not found. -// -// Deprecated: Use protoregistry.GlobalFiles.FindFileByPath instead. -func FileDescriptor(s filePath) fileDescGZIP { - if v, ok := fileCache.Load(s); ok { - return v.(fileDescGZIP) - } - - // Find the descriptor in the v2 registry. - var b []byte - if fd, _ := protoregistry.GlobalFiles.FindFileByPath(s); fd != nil { - b, _ = Marshal(protodesc.ToFileDescriptorProto(fd)) - } - - // Locally cache the raw descriptor form for the file. - if len(b) > 0 { - v, _ := fileCache.LoadOrStore(s, protoimpl.X.CompressGZIP(b)) - return v.(fileDescGZIP) - } - return nil -} - -// enumName is the name of an enum. For historical reasons, the enum name is -// neither the full Go name nor the full protobuf name of the enum. -// The name is the dot-separated combination of just the proto package that the -// enum is declared within followed by the Go type name of the generated enum. -type enumName = string // e.g., "my.proto.package.GoMessage_GoEnum" - -// enumsByName maps enum values by name to their numeric counterpart. -type enumsByName = map[string]int32 - -// enumsByNumber maps enum values by number to their name counterpart. -type enumsByNumber = map[int32]string - -var enumCache sync.Map // map[enumName]enumsByName -var numFilesCache sync.Map // map[protoreflect.FullName]int - -// RegisterEnum is called from the generated code to register the mapping of -// enum value names to enum numbers for the enum identified by s. -// -// Deprecated: Use protoregistry.GlobalTypes.RegisterEnum instead. -func RegisterEnum(s enumName, _ enumsByNumber, m enumsByName) { - if _, ok := enumCache.Load(s); ok { - panic("proto: duplicate enum registered: " + s) - } - enumCache.Store(s, m) - - // This does not forward registration to the v2 registry since this API - // lacks sufficient information to construct a complete v2 enum descriptor. -} - -// EnumValueMap returns the mapping from enum value names to enum numbers for -// the enum of the given name. It returns nil if not found. -// -// Deprecated: Use protoregistry.GlobalTypes.FindEnumByName instead. -func EnumValueMap(s enumName) enumsByName { - if v, ok := enumCache.Load(s); ok { - return v.(enumsByName) - } - - // Check whether the cache is stale. If the number of files in the current - // package differs, then it means that some enums may have been recently - // registered upstream that we do not know about. - var protoPkg protoreflect.FullName - if i := strings.LastIndexByte(s, '.'); i >= 0 { - protoPkg = protoreflect.FullName(s[:i]) - } - v, _ := numFilesCache.Load(protoPkg) - numFiles, _ := v.(int) - if protoregistry.GlobalFiles.NumFilesByPackage(protoPkg) == numFiles { - return nil // cache is up-to-date; was not found earlier - } - - // Update the enum cache for all enums declared in the given proto package. - numFiles = 0 - protoregistry.GlobalFiles.RangeFilesByPackage(protoPkg, func(fd protoreflect.FileDescriptor) bool { - walkEnums(fd, func(ed protoreflect.EnumDescriptor) { - name := protoimpl.X.LegacyEnumName(ed) - if _, ok := enumCache.Load(name); !ok { - m := make(enumsByName) - evs := ed.Values() - for i := evs.Len() - 1; i >= 0; i-- { - ev := evs.Get(i) - m[string(ev.Name())] = int32(ev.Number()) - } - enumCache.LoadOrStore(name, m) - } - }) - numFiles++ - return true - }) - numFilesCache.Store(protoPkg, numFiles) - - // Check cache again for enum map. - if v, ok := enumCache.Load(s); ok { - return v.(enumsByName) - } - return nil -} - -// walkEnums recursively walks all enums declared in d. -func walkEnums(d interface { - Enums() protoreflect.EnumDescriptors - Messages() protoreflect.MessageDescriptors -}, f func(protoreflect.EnumDescriptor)) { - eds := d.Enums() - for i := eds.Len() - 1; i >= 0; i-- { - f(eds.Get(i)) - } - mds := d.Messages() - for i := mds.Len() - 1; i >= 0; i-- { - walkEnums(mds.Get(i), f) - } -} - -// messageName is the full name of protobuf message. -type messageName = string - -var messageTypeCache sync.Map // map[messageName]reflect.Type - -// RegisterType is called from generated code to register the message Go type -// for a message of the given name. -// -// Deprecated: Use protoregistry.GlobalTypes.RegisterMessage instead. -func RegisterType(m Message, s messageName) { - mt := protoimpl.X.LegacyMessageTypeOf(m, protoreflect.FullName(s)) - if err := protoregistry.GlobalTypes.RegisterMessage(mt); err != nil { - panic(err) - } - messageTypeCache.Store(s, reflect.TypeOf(m)) -} - -// RegisterMapType is called from generated code to register the Go map type -// for a protobuf message representing a map entry. -// -// Deprecated: Do not use. -func RegisterMapType(m interface{}, s messageName) { - t := reflect.TypeOf(m) - if t.Kind() != reflect.Map { - panic(fmt.Sprintf("invalid map kind: %v", t)) - } - if _, ok := messageTypeCache.Load(s); ok { - panic(fmt.Errorf("proto: duplicate proto message registered: %s", s)) - } - messageTypeCache.Store(s, t) -} - -// MessageType returns the message type for a named message. -// It returns nil if not found. -// -// Deprecated: Use protoregistry.GlobalTypes.FindMessageByName instead. -func MessageType(s messageName) reflect.Type { - if v, ok := messageTypeCache.Load(s); ok { - return v.(reflect.Type) - } - - // Derive the message type from the v2 registry. - var t reflect.Type - if mt, _ := protoregistry.GlobalTypes.FindMessageByName(protoreflect.FullName(s)); mt != nil { - t = messageGoType(mt) - } - - // If we could not get a concrete type, it is possible that it is a - // pseudo-message for a map entry. - if t == nil { - d, _ := protoregistry.GlobalFiles.FindDescriptorByName(protoreflect.FullName(s)) - if md, _ := d.(protoreflect.MessageDescriptor); md != nil && md.IsMapEntry() { - kt := goTypeForField(md.Fields().ByNumber(1)) - vt := goTypeForField(md.Fields().ByNumber(2)) - t = reflect.MapOf(kt, vt) - } - } - - // Locally cache the message type for the given name. - if t != nil { - v, _ := messageTypeCache.LoadOrStore(s, t) - return v.(reflect.Type) - } - return nil -} - -func goTypeForField(fd protoreflect.FieldDescriptor) reflect.Type { - switch k := fd.Kind(); k { - case protoreflect.EnumKind: - if et, _ := protoregistry.GlobalTypes.FindEnumByName(fd.Enum().FullName()); et != nil { - return enumGoType(et) - } - return reflect.TypeOf(protoreflect.EnumNumber(0)) - case protoreflect.MessageKind, protoreflect.GroupKind: - if mt, _ := protoregistry.GlobalTypes.FindMessageByName(fd.Message().FullName()); mt != nil { - return messageGoType(mt) - } - return reflect.TypeOf((*protoreflect.Message)(nil)).Elem() - default: - return reflect.TypeOf(fd.Default().Interface()) - } -} - -func enumGoType(et protoreflect.EnumType) reflect.Type { - return reflect.TypeOf(et.New(0)) -} - -func messageGoType(mt protoreflect.MessageType) reflect.Type { - return reflect.TypeOf(MessageV1(mt.Zero().Interface())) -} - -// MessageName returns the full protobuf name for the given message type. -// -// Deprecated: Use protoreflect.MessageDescriptor.FullName instead. -func MessageName(m Message) messageName { - if m == nil { - return "" - } - if m, ok := m.(interface{ XXX_MessageName() messageName }); ok { - return m.XXX_MessageName() - } - return messageName(protoimpl.X.MessageDescriptorOf(m).FullName()) -} - -// RegisterExtension is called from the generated code to register -// the extension descriptor. -// -// Deprecated: Use protoregistry.GlobalTypes.RegisterExtension instead. -func RegisterExtension(d *ExtensionDesc) { - if err := protoregistry.GlobalTypes.RegisterExtension(d); err != nil { - panic(err) - } -} - -type extensionsByNumber = map[int32]*ExtensionDesc - -var extensionCache sync.Map // map[messageName]extensionsByNumber - -// RegisteredExtensions returns a map of the registered extensions for the -// provided protobuf message, indexed by the extension field number. -// -// Deprecated: Use protoregistry.GlobalTypes.RangeExtensionsByMessage instead. -func RegisteredExtensions(m Message) extensionsByNumber { - // Check whether the cache is stale. If the number of extensions for - // the given message differs, then it means that some extensions were - // recently registered upstream that we do not know about. - s := MessageName(m) - v, _ := extensionCache.Load(s) - xs, _ := v.(extensionsByNumber) - if protoregistry.GlobalTypes.NumExtensionsByMessage(protoreflect.FullName(s)) == len(xs) { - return xs // cache is up-to-date - } - - // Cache is stale, re-compute the extensions map. - xs = make(extensionsByNumber) - protoregistry.GlobalTypes.RangeExtensionsByMessage(protoreflect.FullName(s), func(xt protoreflect.ExtensionType) bool { - if xd, ok := xt.(*ExtensionDesc); ok { - xs[int32(xt.TypeDescriptor().Number())] = xd - } else { - // TODO: This implies that the protoreflect.ExtensionType is a - // custom type not generated by protoc-gen-go. We could try and - // convert the type to an ExtensionDesc. - } - return true - }) - extensionCache.Store(s, xs) - return xs -} diff --git a/vendor/github.com/golang/protobuf/proto/text_decode.go b/vendor/github.com/golang/protobuf/proto/text_decode.go deleted file mode 100644 index 47eb3e445..000000000 --- a/vendor/github.com/golang/protobuf/proto/text_decode.go +++ /dev/null @@ -1,801 +0,0 @@ -// Copyright 2010 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package proto - -import ( - "encoding" - "errors" - "fmt" - "reflect" - "strconv" - "strings" - "unicode/utf8" - - "google.golang.org/protobuf/encoding/prototext" - protoV2 "google.golang.org/protobuf/proto" - "google.golang.org/protobuf/reflect/protoreflect" - "google.golang.org/protobuf/reflect/protoregistry" -) - -const wrapTextUnmarshalV2 = false - -// ParseError is returned by UnmarshalText. -type ParseError struct { - Message string - - // Deprecated: Do not use. - Line, Offset int -} - -func (e *ParseError) Error() string { - if wrapTextUnmarshalV2 { - return e.Message - } - if e.Line == 1 { - return fmt.Sprintf("line 1.%d: %v", e.Offset, e.Message) - } - return fmt.Sprintf("line %d: %v", e.Line, e.Message) -} - -// UnmarshalText parses a proto text formatted string into m. -func UnmarshalText(s string, m Message) error { - if u, ok := m.(encoding.TextUnmarshaler); ok { - return u.UnmarshalText([]byte(s)) - } - - m.Reset() - mi := MessageV2(m) - - if wrapTextUnmarshalV2 { - err := prototext.UnmarshalOptions{ - AllowPartial: true, - }.Unmarshal([]byte(s), mi) - if err != nil { - return &ParseError{Message: err.Error()} - } - return checkRequiredNotSet(mi) - } else { - if err := newTextParser(s).unmarshalMessage(mi.ProtoReflect(), ""); err != nil { - return err - } - return checkRequiredNotSet(mi) - } -} - -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 -} - -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 newTextParser(s string) *textParser { - p := new(textParser) - p.s = s - p.line = 1 - p.cur.line = 1 - return p -} - -func (p *textParser) unmarshalMessage(m protoreflect.Message, terminator string) (err error) { - md := m.Descriptor() - fds := md.Fields() - - // 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 ... > - seen := make(map[protoreflect.FieldNumber]bool) - for { - tok := p.next() - if tok.err != nil { - return tok.err - } - if tok.value == terminator { - break - } - if tok.value == "[" { - if err := p.unmarshalExtensionOrAny(m, seen); err != nil { - return err - } - continue - } - - // This is a normal, non-extension field. - name := protoreflect.Name(tok.value) - fd := fds.ByName(name) - switch { - case fd == nil: - gd := fds.ByName(protoreflect.Name(strings.ToLower(string(name)))) - if gd != nil && gd.Kind() == protoreflect.GroupKind && gd.Message().Name() == name { - fd = gd - } - case fd.Kind() == protoreflect.GroupKind && fd.Message().Name() != name: - fd = nil - case fd.IsWeak() && fd.Message().IsPlaceholder(): - fd = nil - } - if fd == nil { - typeName := string(md.FullName()) - if m, ok := m.Interface().(Message); ok { - t := reflect.TypeOf(m) - if t.Kind() == reflect.Ptr { - typeName = t.Elem().String() - } - } - return p.errorf("unknown field name %q in %v", name, typeName) - } - if od := fd.ContainingOneof(); od != nil && m.WhichOneof(od) != nil { - return p.errorf("field '%s' would overwrite already parsed oneof '%s'", name, od.Name()) - } - if fd.Cardinality() != protoreflect.Repeated && seen[fd.Number()] { - return p.errorf("non-repeated field %q was repeated", fd.Name()) - } - seen[fd.Number()] = true - - // Consume any colon. - if err := p.checkForColon(fd); err != nil { - return err - } - - // Parse into the field. - v := m.Get(fd) - if !m.Has(fd) && (fd.IsList() || fd.IsMap() || fd.Message() != nil) { - v = m.Mutable(fd) - } - if v, err = p.unmarshalValue(v, fd); err != nil { - return err - } - m.Set(fd, v) - - if err := p.consumeOptionalSeparator(); err != nil { - return err - } - } - return nil -} - -func (p *textParser) unmarshalExtensionOrAny(m protoreflect.Message, seen map[protoreflect.FieldNumber]bool) error { - name, err := p.consumeExtensionOrAnyName() - if err != nil { - return err - } - - // If it contains a slash, it's an Any type URL. - if slashIdx := strings.LastIndex(name, "/"); slashIdx >= 0 { - 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) - } - - mt, err := protoregistry.GlobalTypes.FindMessageByURL(name) - if err != nil { - return p.errorf("unrecognized message %q in google.protobuf.Any", name[slashIdx+len("/"):]) - } - m2 := mt.New() - if err := p.unmarshalMessage(m2, terminator); err != nil { - return err - } - b, err := protoV2.Marshal(m2.Interface()) - if err != nil { - return p.errorf("failed to marshal message of type %q: %v", name[slashIdx+len("/"):], err) - } - - urlFD := m.Descriptor().Fields().ByName("type_url") - valFD := m.Descriptor().Fields().ByName("value") - if seen[urlFD.Number()] { - return p.errorf("Any message unpacked multiple times, or %q already set", urlFD.Name()) - } - if seen[valFD.Number()] { - return p.errorf("Any message unpacked multiple times, or %q already set", valFD.Name()) - } - m.Set(urlFD, protoreflect.ValueOfString(name)) - m.Set(valFD, protoreflect.ValueOfBytes(b)) - seen[urlFD.Number()] = true - seen[valFD.Number()] = true - return nil - } - - xname := protoreflect.FullName(name) - xt, _ := protoregistry.GlobalTypes.FindExtensionByName(xname) - if xt == nil && isMessageSet(m.Descriptor()) { - xt, _ = protoregistry.GlobalTypes.FindExtensionByName(xname.Append("message_set_extension")) - } - if xt == nil { - return p.errorf("unrecognized extension %q", name) - } - fd := xt.TypeDescriptor() - if fd.ContainingMessage().FullName() != m.Descriptor().FullName() { - return p.errorf("extension field %q does not extend message %q", name, m.Descriptor().FullName()) - } - - if err := p.checkForColon(fd); err != nil { - return err - } - - v := m.Get(fd) - if !m.Has(fd) && (fd.IsList() || fd.IsMap() || fd.Message() != nil) { - v = m.Mutable(fd) - } - v, err = p.unmarshalValue(v, fd) - if err != nil { - return err - } - m.Set(fd, v) - return p.consumeOptionalSeparator() -} - -func (p *textParser) unmarshalValue(v protoreflect.Value, fd protoreflect.FieldDescriptor) (protoreflect.Value, error) { - tok := p.next() - if tok.err != nil { - return v, tok.err - } - if tok.value == "" { - return v, p.errorf("unexpected EOF") - } - - switch { - case fd.IsList(): - lv := v.List() - var err error - if tok.value == "[" { - // Repeated field with list notation, like [1,2,3]. - for { - vv := lv.NewElement() - vv, err = p.unmarshalSingularValue(vv, fd) - if err != nil { - return v, err - } - lv.Append(vv) - - tok := p.next() - if tok.err != nil { - return v, tok.err - } - if tok.value == "]" { - break - } - if tok.value != "," { - return v, p.errorf("Expected ']' or ',' found %q", tok.value) - } - } - return v, nil - } - - // One value of the repeated field. - p.back() - vv := lv.NewElement() - vv, err = p.unmarshalSingularValue(vv, fd) - if err != nil { - return v, err - } - lv.Append(vv) - return v, nil - case fd.IsMap(): - // 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. - var terminator string - switch tok.value { - case "<": - terminator = ">" - case "{": - terminator = "}" - default: - return v, p.errorf("expected '{' or '<', found %q", tok.value) - } - - keyFD := fd.MapKey() - valFD := fd.MapValue() - - mv := v.Map() - kv := keyFD.Default() - vv := mv.NewValue() - for { - tok := p.next() - if tok.err != nil { - return v, tok.err - } - if tok.value == terminator { - break - } - var err error - switch tok.value { - case "key": - if err := p.consumeToken(":"); err != nil { - return v, err - } - if kv, err = p.unmarshalSingularValue(kv, keyFD); err != nil { - return v, err - } - if err := p.consumeOptionalSeparator(); err != nil { - return v, err - } - case "value": - if err := p.checkForColon(valFD); err != nil { - return v, err - } - if vv, err = p.unmarshalSingularValue(vv, valFD); err != nil { - return v, err - } - if err := p.consumeOptionalSeparator(); err != nil { - return v, err - } - default: - p.back() - return v, p.errorf(`expected "key", "value", or %q, found %q`, terminator, tok.value) - } - } - mv.Set(kv.MapKey(), vv) - return v, nil - default: - p.back() - return p.unmarshalSingularValue(v, fd) - } -} - -func (p *textParser) unmarshalSingularValue(v protoreflect.Value, fd protoreflect.FieldDescriptor) (protoreflect.Value, error) { - tok := p.next() - if tok.err != nil { - return v, tok.err - } - if tok.value == "" { - return v, p.errorf("unexpected EOF") - } - - switch fd.Kind() { - case protoreflect.BoolKind: - switch tok.value { - case "true", "1", "t", "True": - return protoreflect.ValueOfBool(true), nil - case "false", "0", "f", "False": - return protoreflect.ValueOfBool(false), nil - } - case protoreflect.Int32Kind, protoreflect.Sint32Kind, protoreflect.Sfixed32Kind: - if x, err := strconv.ParseInt(tok.value, 0, 32); err == nil { - return protoreflect.ValueOfInt32(int32(x)), nil - } - - // The C++ parser accepts large positive hex numbers that uses - // two's complement arithmetic to represent negative numbers. - // This feature is here for backwards compatibility with C++. - if strings.HasPrefix(tok.value, "0x") { - if x, err := strconv.ParseUint(tok.value, 0, 32); err == nil { - return protoreflect.ValueOfInt32(int32(-(int64(^x) + 1))), nil - } - } - case protoreflect.Int64Kind, protoreflect.Sint64Kind, protoreflect.Sfixed64Kind: - if x, err := strconv.ParseInt(tok.value, 0, 64); err == nil { - return protoreflect.ValueOfInt64(int64(x)), nil - } - - // The C++ parser accepts large positive hex numbers that uses - // two's complement arithmetic to represent negative numbers. - // This feature is here for backwards compatibility with C++. - if strings.HasPrefix(tok.value, "0x") { - if x, err := strconv.ParseUint(tok.value, 0, 64); err == nil { - return protoreflect.ValueOfInt64(int64(-(int64(^x) + 1))), nil - } - } - case protoreflect.Uint32Kind, protoreflect.Fixed32Kind: - if x, err := strconv.ParseUint(tok.value, 0, 32); err == nil { - return protoreflect.ValueOfUint32(uint32(x)), nil - } - case protoreflect.Uint64Kind, protoreflect.Fixed64Kind: - if x, err := strconv.ParseUint(tok.value, 0, 64); err == nil { - return protoreflect.ValueOfUint64(uint64(x)), nil - } - case protoreflect.FloatKind: - // Ignore 'f' for compatibility with output generated by C++, - // but don't remove 'f' when the value is "-inf" or "inf". - v := tok.value - if strings.HasSuffix(v, "f") && v != "-inf" && v != "inf" { - v = v[:len(v)-len("f")] - } - if x, err := strconv.ParseFloat(v, 32); err == nil { - return protoreflect.ValueOfFloat32(float32(x)), nil - } - case protoreflect.DoubleKind: - // Ignore 'f' for compatibility with output generated by C++, - // but don't remove 'f' when the value is "-inf" or "inf". - v := tok.value - if strings.HasSuffix(v, "f") && v != "-inf" && v != "inf" { - v = v[:len(v)-len("f")] - } - if x, err := strconv.ParseFloat(v, 64); err == nil { - return protoreflect.ValueOfFloat64(float64(x)), nil - } - case protoreflect.StringKind: - if isQuote(tok.value[0]) { - return protoreflect.ValueOfString(tok.unquoted), nil - } - case protoreflect.BytesKind: - if isQuote(tok.value[0]) { - return protoreflect.ValueOfBytes([]byte(tok.unquoted)), nil - } - case protoreflect.EnumKind: - if x, err := strconv.ParseInt(tok.value, 0, 32); err == nil { - return protoreflect.ValueOfEnum(protoreflect.EnumNumber(x)), nil - } - vd := fd.Enum().Values().ByName(protoreflect.Name(tok.value)) - if vd != nil { - return protoreflect.ValueOfEnum(vd.Number()), nil - } - case protoreflect.MessageKind, protoreflect.GroupKind: - var terminator string - switch tok.value { - case "{": - terminator = "}" - case "<": - terminator = ">" - default: - return v, p.errorf("expected '{' or '<', found %q", tok.value) - } - err := p.unmarshalMessage(v.Message(), terminator) - return v, err - default: - panic(fmt.Sprintf("invalid kind %v", fd.Kind())) - } - return v, p.errorf("invalid %v: %v", fd.Kind(), tok.value) -} - -// 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(fd protoreflect.FieldDescriptor) *ParseError { - tok := p.next() - if tok.err != nil { - return tok.err - } - if tok.value != ":" { - if fd.Message() == nil { - return p.errorf("expected ':', found %q", tok.value) - } - p.back() - } - return nil -} - -// consumeExtensionOrAnyName consumes an extension name or an Any type URL and -// the following ']'. It returns the name or URL consumed. -func (p *textParser) consumeExtensionOrAnyName() (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) - } - if p.done && tok.value != "]" { - return "", p.errorf("unclosed type_url or extension name") - } - } - return strings.Join(parts, ""), nil -} - -// consumeOptionalSeparator consumes an optional semicolon or comma. -// It is used in unmarshalMessage 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) 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 -} - -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) -} - -// 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 -} - -var errBadUTF8 = errors.New("proto: bad UTF-8") - -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': - if len(s) < 2 { - return "", "", fmt.Errorf(`\%c requires 2 following digits`, r) - } - ss := string(r) + s[:2] - s = s[2:] - i, err := strconv.ParseUint(ss, 8, 8) - if err != nil { - return "", "", fmt.Errorf(`\%s contains non-octal digits`, ss) - } - return string([]byte{byte(i)}), s, nil - case 'x', 'X', 'u', 'U': - var n int - switch r { - case 'x', 'X': - n = 2 - case 'u': - n = 4 - case 'U': - n = 8 - } - if len(s) < n { - return "", "", fmt.Errorf(`\%c requires %d following digits`, r, n) - } - ss := s[:n] - s = s[n:] - i, err := strconv.ParseUint(ss, 16, 64) - if err != nil { - return "", "", fmt.Errorf(`\%c%s contains non-hexadecimal digits`, r, ss) - } - if r == 'x' || r == 'X' { - return string([]byte{byte(i)}), s, nil - } - if i > utf8.MaxRune { - return "", "", fmt.Errorf(`\%c%s is not a valid Unicode code point`, r, ss) - } - return string(rune(i)), s, nil - } - return "", "", fmt.Errorf(`unknown escape \%c`, r) -} - -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 -} diff --git a/vendor/github.com/golang/protobuf/proto/text_encode.go b/vendor/github.com/golang/protobuf/proto/text_encode.go deleted file mode 100644 index a31134eeb..000000000 --- a/vendor/github.com/golang/protobuf/proto/text_encode.go +++ /dev/null @@ -1,560 +0,0 @@ -// Copyright 2010 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package proto - -import ( - "bytes" - "encoding" - "fmt" - "io" - "math" - "sort" - "strings" - - "google.golang.org/protobuf/encoding/prototext" - "google.golang.org/protobuf/encoding/protowire" - "google.golang.org/protobuf/proto" - "google.golang.org/protobuf/reflect/protoreflect" - "google.golang.org/protobuf/reflect/protoregistry" -) - -const wrapTextMarshalV2 = 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 the proto text format of m to w. -func (tm *TextMarshaler) Marshal(w io.Writer, m Message) error { - b, err := tm.marshal(m) - if len(b) > 0 { - if _, err := w.Write(b); err != nil { - return err - } - } - return err -} - -// Text returns a proto text formatted string of m. -func (tm *TextMarshaler) Text(m Message) string { - b, _ := tm.marshal(m) - return string(b) -} - -func (tm *TextMarshaler) marshal(m Message) ([]byte, error) { - mr := MessageReflect(m) - if mr == nil || !mr.IsValid() { - return []byte(""), nil - } - - if wrapTextMarshalV2 { - if m, ok := m.(encoding.TextMarshaler); ok { - return m.MarshalText() - } - - opts := prototext.MarshalOptions{ - AllowPartial: true, - EmitUnknown: true, - } - if !tm.Compact { - opts.Indent = " " - } - if !tm.ExpandAny { - opts.Resolver = (*protoregistry.Types)(nil) - } - return opts.Marshal(mr.Interface()) - } else { - w := &textWriter{ - compact: tm.Compact, - expandAny: tm.ExpandAny, - complete: true, - } - - if m, ok := m.(encoding.TextMarshaler); ok { - b, err := m.MarshalText() - if err != nil { - return nil, err - } - w.Write(b) - return w.buf, nil - } - - err := w.writeMessage(mr) - return w.buf, err - } -} - -var ( - defaultTextMarshaler = TextMarshaler{} - compactTextMarshaler = TextMarshaler{Compact: true} -) - -// MarshalText writes the proto text format of m to w. -func MarshalText(w io.Writer, m Message) error { return defaultTextMarshaler.Marshal(w, m) } - -// MarshalTextString returns a proto text formatted string of m. -func MarshalTextString(m Message) string { return defaultTextMarshaler.Text(m) } - -// CompactText writes the compact proto text format of m to w. -func CompactText(w io.Writer, m Message) error { return compactTextMarshaler.Marshal(w, m) } - -// CompactTextString returns a compact proto text formatted string of m. -func CompactTextString(m Message) string { return compactTextMarshaler.Text(m) } - -var ( - newline = []byte("\n") - endBraceNewline = []byte("}\n") - posInf = []byte("inf") - negInf = []byte("-inf") - nan = []byte("nan") -) - -// textWriter is an io.Writer that tracks its indentation level. -type textWriter struct { - compact bool // same as TextMarshaler.Compact - expandAny bool // same as TextMarshaler.ExpandAny - complete bool // whether the current position is a complete line - indent int // indentation level; never negative - buf []byte -} - -func (w *textWriter) Write(p []byte) (n int, _ error) { - newlines := bytes.Count(p, newline) - if newlines == 0 { - if !w.compact && w.complete { - w.writeIndent() - } - w.buf = append(w.buf, p...) - w.complete = false - return len(p), nil - } - - frags := bytes.SplitN(p, newline, newlines+1) - if w.compact { - for i, frag := range frags { - if i > 0 { - w.buf = append(w.buf, ' ') - n++ - } - w.buf = append(w.buf, frag...) - n += len(frag) - } - return n, nil - } - - for i, frag := range frags { - if w.complete { - w.writeIndent() - } - w.buf = append(w.buf, frag...) - n += len(frag) - if i+1 < len(frags) { - w.buf = append(w.buf, '\n') - 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() - } - w.buf = append(w.buf, c) - w.complete = c == '\n' - return nil -} - -func (w *textWriter) writeName(fd protoreflect.FieldDescriptor) { - if !w.compact && w.complete { - w.writeIndent() - } - w.complete = false - - if fd.Kind() != protoreflect.GroupKind { - w.buf = append(w.buf, fd.Name()...) - w.WriteByte(':') - } else { - // Use message type name for group field name. - w.buf = append(w.buf, fd.Message().Name()...) - } - - if !w.compact { - w.WriteByte(' ') - } -} - -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 -} - -// 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 (w *textWriter) writeProto3Any(m protoreflect.Message) (bool, error) { - md := m.Descriptor() - fdURL := md.Fields().ByName("type_url") - fdVal := md.Fields().ByName("value") - - url := m.Get(fdURL).String() - mt, err := protoregistry.GlobalTypes.FindMessageByURL(url) - if err != nil { - return false, nil - } - - b := m.Get(fdVal).Bytes() - m2 := mt.New() - if err := proto.Unmarshal(b, m2.Interface()); err != nil { - return false, nil - } - w.Write([]byte("[")) - if requiresQuotes(url) { - w.writeQuotedString(url) - } else { - w.Write([]byte(url)) - } - if w.compact { - w.Write([]byte("]:<")) - } else { - w.Write([]byte("]: <\n")) - w.indent++ - } - if err := w.writeMessage(m2); err != nil { - return true, err - } - if w.compact { - w.Write([]byte("> ")) - } else { - w.indent-- - w.Write([]byte(">\n")) - } - return true, nil -} - -func (w *textWriter) writeMessage(m protoreflect.Message) error { - md := m.Descriptor() - if w.expandAny && md.FullName() == "google.protobuf.Any" { - if canExpand, err := w.writeProto3Any(m); canExpand { - return err - } - } - - fds := md.Fields() - for i := 0; i < fds.Len(); { - fd := fds.Get(i) - if od := fd.ContainingOneof(); od != nil { - fd = m.WhichOneof(od) - i += od.Fields().Len() - } else { - i++ - } - if fd == nil || !m.Has(fd) { - continue - } - - switch { - case fd.IsList(): - lv := m.Get(fd).List() - for j := 0; j < lv.Len(); j++ { - w.writeName(fd) - v := lv.Get(j) - if err := w.writeSingularValue(v, fd); err != nil { - return err - } - w.WriteByte('\n') - } - case fd.IsMap(): - kfd := fd.MapKey() - vfd := fd.MapValue() - mv := m.Get(fd).Map() - - type entry struct{ key, val protoreflect.Value } - var entries []entry - mv.Range(func(k protoreflect.MapKey, v protoreflect.Value) bool { - entries = append(entries, entry{k.Value(), v}) - return true - }) - sort.Slice(entries, func(i, j int) bool { - switch kfd.Kind() { - case protoreflect.BoolKind: - return !entries[i].key.Bool() && entries[j].key.Bool() - case protoreflect.Int32Kind, protoreflect.Sint32Kind, protoreflect.Sfixed32Kind, protoreflect.Int64Kind, protoreflect.Sint64Kind, protoreflect.Sfixed64Kind: - return entries[i].key.Int() < entries[j].key.Int() - case protoreflect.Uint32Kind, protoreflect.Fixed32Kind, protoreflect.Uint64Kind, protoreflect.Fixed64Kind: - return entries[i].key.Uint() < entries[j].key.Uint() - case protoreflect.StringKind: - return entries[i].key.String() < entries[j].key.String() - default: - panic("invalid kind") - } - }) - for _, entry := range entries { - w.writeName(fd) - w.WriteByte('<') - if !w.compact { - w.WriteByte('\n') - } - w.indent++ - w.writeName(kfd) - if err := w.writeSingularValue(entry.key, kfd); err != nil { - return err - } - w.WriteByte('\n') - w.writeName(vfd) - if err := w.writeSingularValue(entry.val, vfd); err != nil { - return err - } - w.WriteByte('\n') - w.indent-- - w.WriteByte('>') - w.WriteByte('\n') - } - default: - w.writeName(fd) - if err := w.writeSingularValue(m.Get(fd), fd); err != nil { - return err - } - w.WriteByte('\n') - } - } - - if b := m.GetUnknown(); len(b) > 0 { - w.writeUnknownFields(b) - } - return w.writeExtensions(m) -} - -func (w *textWriter) writeSingularValue(v protoreflect.Value, fd protoreflect.FieldDescriptor) error { - switch fd.Kind() { - case protoreflect.FloatKind, protoreflect.DoubleKind: - switch vf := v.Float(); { - case math.IsInf(vf, +1): - w.Write(posInf) - case math.IsInf(vf, -1): - w.Write(negInf) - case math.IsNaN(vf): - w.Write(nan) - default: - fmt.Fprint(w, v.Interface()) - } - case protoreflect.StringKind: - // NOTE: This does not validate UTF-8 for historical reasons. - w.writeQuotedString(string(v.String())) - case protoreflect.BytesKind: - w.writeQuotedString(string(v.Bytes())) - case protoreflect.MessageKind, protoreflect.GroupKind: - var bra, ket byte = '<', '>' - if fd.Kind() == protoreflect.GroupKind { - bra, ket = '{', '}' - } - w.WriteByte(bra) - if !w.compact { - w.WriteByte('\n') - } - w.indent++ - m := v.Message() - if m2, ok := m.Interface().(encoding.TextMarshaler); ok { - b, err := m2.MarshalText() - if err != nil { - return err - } - w.Write(b) - } else { - w.writeMessage(m) - } - w.indent-- - w.WriteByte(ket) - case protoreflect.EnumKind: - if ev := fd.Enum().Values().ByNumber(v.Enum()); ev != nil { - fmt.Fprint(w, ev.Name()) - } else { - fmt.Fprint(w, v.Enum()) - } - default: - fmt.Fprint(w, v.Interface()) - } - return nil -} - -// writeQuotedString writes a quoted string in the protocol buffer text format. -func (w *textWriter) writeQuotedString(s string) { - w.WriteByte('"') - for i := 0; i < len(s); i++ { - switch c := s[i]; c { - case '\n': - w.buf = append(w.buf, `\n`...) - case '\r': - w.buf = append(w.buf, `\r`...) - case '\t': - w.buf = append(w.buf, `\t`...) - case '"': - w.buf = append(w.buf, `\"`...) - case '\\': - w.buf = append(w.buf, `\\`...) - default: - if isPrint := c >= 0x20 && c < 0x7f; isPrint { - w.buf = append(w.buf, c) - } else { - w.buf = append(w.buf, fmt.Sprintf(`\%03o`, c)...) - } - } - } - w.WriteByte('"') -} - -func (w *textWriter) writeUnknownFields(b []byte) { - if !w.compact { - fmt.Fprintf(w, "/* %d unknown bytes */\n", len(b)) - } - - for len(b) > 0 { - num, wtyp, n := protowire.ConsumeTag(b) - if n < 0 { - return - } - b = b[n:] - - if wtyp == protowire.EndGroupType { - w.indent-- - w.Write(endBraceNewline) - continue - } - fmt.Fprint(w, num) - if wtyp != protowire.StartGroupType { - w.WriteByte(':') - } - if !w.compact || wtyp == protowire.StartGroupType { - w.WriteByte(' ') - } - switch wtyp { - case protowire.VarintType: - v, n := protowire.ConsumeVarint(b) - if n < 0 { - return - } - b = b[n:] - fmt.Fprint(w, v) - case protowire.Fixed32Type: - v, n := protowire.ConsumeFixed32(b) - if n < 0 { - return - } - b = b[n:] - fmt.Fprint(w, v) - case protowire.Fixed64Type: - v, n := protowire.ConsumeFixed64(b) - if n < 0 { - return - } - b = b[n:] - fmt.Fprint(w, v) - case protowire.BytesType: - v, n := protowire.ConsumeBytes(b) - if n < 0 { - return - } - b = b[n:] - fmt.Fprintf(w, "%q", v) - case protowire.StartGroupType: - w.WriteByte('{') - w.indent++ - default: - fmt.Fprintf(w, "/* unknown wire type %d */", wtyp) - } - w.WriteByte('\n') - } -} - -// writeExtensions writes all the extensions in m. -func (w *textWriter) writeExtensions(m protoreflect.Message) error { - md := m.Descriptor() - if md.ExtensionRanges().Len() == 0 { - return nil - } - - type ext struct { - desc protoreflect.FieldDescriptor - val protoreflect.Value - } - var exts []ext - m.Range(func(fd protoreflect.FieldDescriptor, v protoreflect.Value) bool { - if fd.IsExtension() { - exts = append(exts, ext{fd, v}) - } - return true - }) - sort.Slice(exts, func(i, j int) bool { - return exts[i].desc.Number() < exts[j].desc.Number() - }) - - for _, ext := range exts { - // For message set, use the name of the message as the extension name. - name := string(ext.desc.FullName()) - if isMessageSet(ext.desc.ContainingMessage()) { - name = strings.TrimSuffix(name, ".message_set_extension") - } - - if !ext.desc.IsList() { - if err := w.writeSingularExtension(name, ext.val, ext.desc); err != nil { - return err - } - } else { - lv := ext.val.List() - for i := 0; i < lv.Len(); i++ { - if err := w.writeSingularExtension(name, lv.Get(i), ext.desc); err != nil { - return err - } - } - } - } - return nil -} - -func (w *textWriter) writeSingularExtension(name string, v protoreflect.Value, fd protoreflect.FieldDescriptor) error { - fmt.Fprintf(w, "[%s]:", name) - if !w.compact { - w.WriteByte(' ') - } - if err := w.writeSingularValue(v, fd); err != nil { - return err - } - w.WriteByte('\n') - return nil -} - -func (w *textWriter) writeIndent() { - if !w.complete { - return - } - for i := 0; i < w.indent*2; i++ { - w.buf = append(w.buf, ' ') - } - w.complete = false -} diff --git a/vendor/github.com/golang/protobuf/proto/wire.go b/vendor/github.com/golang/protobuf/proto/wire.go deleted file mode 100644 index d7c28da5a..000000000 --- a/vendor/github.com/golang/protobuf/proto/wire.go +++ /dev/null @@ -1,78 +0,0 @@ -// Copyright 2019 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package proto - -import ( - protoV2 "google.golang.org/protobuf/proto" - "google.golang.org/protobuf/runtime/protoiface" -) - -// Size returns the size in bytes of the wire-format encoding of m. -func Size(m Message) int { - if m == nil { - return 0 - } - mi := MessageV2(m) - return protoV2.Size(mi) -} - -// Marshal returns the wire-format encoding of m. -func Marshal(m Message) ([]byte, error) { - b, err := marshalAppend(nil, m, false) - if b == nil { - b = zeroBytes - } - return b, err -} - -var zeroBytes = make([]byte, 0, 0) - -func marshalAppend(buf []byte, m Message, deterministic bool) ([]byte, error) { - if m == nil { - return nil, ErrNil - } - mi := MessageV2(m) - nbuf, err := protoV2.MarshalOptions{ - Deterministic: deterministic, - AllowPartial: true, - }.MarshalAppend(buf, mi) - if err != nil { - return buf, err - } - if len(buf) == len(nbuf) { - if !mi.ProtoReflect().IsValid() { - return buf, ErrNil - } - } - return nbuf, checkRequiredNotSet(mi) -} - -// Unmarshal parses a wire-format message in b and places the decoded results in m. -// -// Unmarshal resets m before starting to unmarshal, so any existing data in m is always -// removed. Use UnmarshalMerge to preserve and append to existing data. -func Unmarshal(b []byte, m Message) error { - m.Reset() - return UnmarshalMerge(b, m) -} - -// UnmarshalMerge parses a wire-format message in b and places the decoded results in m. -func UnmarshalMerge(b []byte, m Message) error { - mi := MessageV2(m) - out, err := protoV2.UnmarshalOptions{ - AllowPartial: true, - Merge: true, - }.UnmarshalState(protoiface.UnmarshalInput{ - Buf: b, - Message: mi.ProtoReflect(), - }) - if err != nil { - return err - } - if out.Flags&protoiface.UnmarshalInitialized > 0 { - return nil - } - return checkRequiredNotSet(mi) -} diff --git a/vendor/github.com/golang/protobuf/proto/wrappers.go b/vendor/github.com/golang/protobuf/proto/wrappers.go deleted file mode 100644 index 398e34859..000000000 --- a/vendor/github.com/golang/protobuf/proto/wrappers.go +++ /dev/null @@ -1,34 +0,0 @@ -// Copyright 2019 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package proto - -// Bool stores v in a new bool value and returns a pointer to it. -func Bool(v bool) *bool { return &v } - -// Int stores v in a new int32 value and returns a pointer to it. -// -// Deprecated: Use Int32 instead. -func Int(v int) *int32 { return Int32(int32(v)) } - -// Int32 stores v in a new int32 value and returns a pointer to it. -func Int32(v int32) *int32 { return &v } - -// Int64 stores v in a new int64 value and returns a pointer to it. -func Int64(v int64) *int64 { return &v } - -// Uint32 stores v in a new uint32 value and returns a pointer to it. -func Uint32(v uint32) *uint32 { return &v } - -// Uint64 stores v in a new uint64 value and returns a pointer to it. -func Uint64(v uint64) *uint64 { return &v } - -// Float32 stores v in a new float32 value and returns a pointer to it. -func Float32(v float32) *float32 { return &v } - -// Float64 stores v in a new float64 value and returns a pointer to it. -func Float64(v float64) *float64 { return &v } - -// String stores v in a new string value and returns a pointer to it. -func String(v string) *string { return &v } diff --git a/vendor/github.com/golang/protobuf/ptypes/any.go b/vendor/github.com/golang/protobuf/ptypes/any.go deleted file mode 100644 index 85f9f5736..000000000 --- a/vendor/github.com/golang/protobuf/ptypes/any.go +++ /dev/null @@ -1,179 +0,0 @@ -// 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 ptypes - -import ( - "fmt" - "strings" - - "github.com/golang/protobuf/proto" - "google.golang.org/protobuf/reflect/protoreflect" - "google.golang.org/protobuf/reflect/protoregistry" - - anypb "github.com/golang/protobuf/ptypes/any" -) - -const urlPrefix = "type.googleapis.com/" - -// AnyMessageName returns the message name contained in an anypb.Any message. -// Most type assertions should use the Is function instead. -// -// Deprecated: Call the any.MessageName method instead. -func AnyMessageName(any *anypb.Any) (string, error) { - name, err := anyMessageName(any) - return string(name), err -} -func anyMessageName(any *anypb.Any) (protoreflect.FullName, error) { - if any == nil { - return "", fmt.Errorf("message is nil") - } - name := protoreflect.FullName(any.TypeUrl) - if i := strings.LastIndex(any.TypeUrl, "/"); i >= 0 { - name = name[i+len("/"):] - } - if !name.IsValid() { - return "", fmt.Errorf("message type url %q is invalid", any.TypeUrl) - } - return name, nil -} - -// MarshalAny marshals the given message m into an anypb.Any message. -// -// Deprecated: Call the anypb.New function instead. -func MarshalAny(m proto.Message) (*anypb.Any, error) { - switch dm := m.(type) { - case DynamicAny: - m = dm.Message - case *DynamicAny: - if dm == nil { - return nil, proto.ErrNil - } - m = dm.Message - } - b, err := proto.Marshal(m) - if err != nil { - return nil, err - } - return &anypb.Any{TypeUrl: urlPrefix + proto.MessageName(m), Value: b}, nil -} - -// Empty returns a new message of the type specified in an anypb.Any message. -// It returns protoregistry.NotFound if the corresponding message type could not -// be resolved in the global registry. -// -// Deprecated: Use protoregistry.GlobalTypes.FindMessageByName instead -// to resolve the message name and create a new instance of it. -func Empty(any *anypb.Any) (proto.Message, error) { - name, err := anyMessageName(any) - if err != nil { - return nil, err - } - mt, err := protoregistry.GlobalTypes.FindMessageByName(name) - if err != nil { - return nil, err - } - return proto.MessageV1(mt.New().Interface()), nil -} - -// UnmarshalAny unmarshals the encoded value contained in the anypb.Any message -// into the provided message m. It returns an error if the target message -// does not match the type in the Any message or if an unmarshal error occurs. -// -// The target message m may be a *DynamicAny message. If the underlying message -// type could not be resolved, then this returns protoregistry.NotFound. -// -// Deprecated: Call the any.UnmarshalTo method instead. -func UnmarshalAny(any *anypb.Any, m proto.Message) error { - if dm, ok := m.(*DynamicAny); ok { - if dm.Message == nil { - var err error - dm.Message, err = Empty(any) - if err != nil { - return err - } - } - m = dm.Message - } - - anyName, err := AnyMessageName(any) - if err != nil { - return err - } - msgName := proto.MessageName(m) - if anyName != msgName { - return fmt.Errorf("mismatched message type: got %q want %q", anyName, msgName) - } - return proto.Unmarshal(any.Value, m) -} - -// Is reports whether the Any message contains a message of the specified type. -// -// Deprecated: Call the any.MessageIs method instead. -func Is(any *anypb.Any, m proto.Message) bool { - if any == nil || m == nil { - return false - } - name := proto.MessageName(m) - if !strings.HasSuffix(any.TypeUrl, name) { - return false - } - return len(any.TypeUrl) == len(name) || any.TypeUrl[len(any.TypeUrl)-len(name)-1] == '/' -} - -// DynamicAny is a value that can be passed to UnmarshalAny to automatically -// allocate a proto.Message for the type specified in an anypb.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) -// -// Deprecated: Use the any.UnmarshalNew method instead to unmarshal -// the any message contents into a new instance of the underlying message. -type DynamicAny struct{ proto.Message } - -func (m DynamicAny) String() string { - if m.Message == nil { - return "" - } - return m.Message.String() -} -func (m DynamicAny) Reset() { - if m.Message == nil { - return - } - m.Message.Reset() -} -func (m DynamicAny) ProtoMessage() { - return -} -func (m DynamicAny) ProtoReflect() protoreflect.Message { - if m.Message == nil { - return nil - } - return dynamicAny{proto.MessageReflect(m.Message)} -} - -type dynamicAny struct{ protoreflect.Message } - -func (m dynamicAny) Type() protoreflect.MessageType { - return dynamicAnyType{m.Message.Type()} -} -func (m dynamicAny) New() protoreflect.Message { - return dynamicAnyType{m.Message.Type()}.New() -} -func (m dynamicAny) Interface() protoreflect.ProtoMessage { - return DynamicAny{proto.MessageV1(m.Message.Interface())} -} - -type dynamicAnyType struct{ protoreflect.MessageType } - -func (t dynamicAnyType) New() protoreflect.Message { - return dynamicAny{t.MessageType.New()} -} -func (t dynamicAnyType) Zero() protoreflect.Message { - return dynamicAny{t.MessageType.Zero()} -} diff --git a/vendor/github.com/golang/protobuf/ptypes/any/any.pb.go b/vendor/github.com/golang/protobuf/ptypes/any/any.pb.go deleted file mode 100644 index 0ef27d33d..000000000 --- a/vendor/github.com/golang/protobuf/ptypes/any/any.pb.go +++ /dev/null @@ -1,62 +0,0 @@ -// Code generated by protoc-gen-go. DO NOT EDIT. -// source: github.com/golang/protobuf/ptypes/any/any.proto - -package any - -import ( - protoreflect "google.golang.org/protobuf/reflect/protoreflect" - protoimpl "google.golang.org/protobuf/runtime/protoimpl" - anypb "google.golang.org/protobuf/types/known/anypb" - reflect "reflect" -) - -// Symbols defined in public import of google/protobuf/any.proto. - -type Any = anypb.Any - -var File_github_com_golang_protobuf_ptypes_any_any_proto protoreflect.FileDescriptor - -var file_github_com_golang_protobuf_ptypes_any_any_proto_rawDesc = []byte{ - 0x0a, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x6c, - 0x61, 0x6e, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x70, 0x74, 0x79, - 0x70, 0x65, 0x73, 0x2f, 0x61, 0x6e, 0x79, 0x2f, 0x61, 0x6e, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2f, 0x61, 0x6e, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x42, 0x2b, 0x5a, 0x29, - 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, - 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x70, 0x74, 0x79, 0x70, 0x65, - 0x73, 0x2f, 0x61, 0x6e, 0x79, 0x3b, 0x61, 0x6e, 0x79, 0x50, 0x00, 0x62, 0x06, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x33, -} - -var file_github_com_golang_protobuf_ptypes_any_any_proto_goTypes = []interface{}{} -var file_github_com_golang_protobuf_ptypes_any_any_proto_depIdxs = []int32{ - 0, // [0:0] is the sub-list for method output_type - 0, // [0:0] is the sub-list for method input_type - 0, // [0:0] is the sub-list for extension type_name - 0, // [0:0] is the sub-list for extension extendee - 0, // [0:0] is the sub-list for field type_name -} - -func init() { file_github_com_golang_protobuf_ptypes_any_any_proto_init() } -func file_github_com_golang_protobuf_ptypes_any_any_proto_init() { - if File_github_com_golang_protobuf_ptypes_any_any_proto != nil { - return - } - type x struct{} - out := protoimpl.TypeBuilder{ - File: protoimpl.DescBuilder{ - GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_github_com_golang_protobuf_ptypes_any_any_proto_rawDesc, - NumEnums: 0, - NumMessages: 0, - NumExtensions: 0, - NumServices: 0, - }, - GoTypes: file_github_com_golang_protobuf_ptypes_any_any_proto_goTypes, - DependencyIndexes: file_github_com_golang_protobuf_ptypes_any_any_proto_depIdxs, - }.Build() - File_github_com_golang_protobuf_ptypes_any_any_proto = out.File - file_github_com_golang_protobuf_ptypes_any_any_proto_rawDesc = nil - file_github_com_golang_protobuf_ptypes_any_any_proto_goTypes = nil - file_github_com_golang_protobuf_ptypes_any_any_proto_depIdxs = nil -} diff --git a/vendor/github.com/golang/protobuf/ptypes/doc.go b/vendor/github.com/golang/protobuf/ptypes/doc.go deleted file mode 100644 index d3c33259d..000000000 --- a/vendor/github.com/golang/protobuf/ptypes/doc.go +++ /dev/null @@ -1,10 +0,0 @@ -// 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 ptypes provides functionality for interacting with well-known types. -// -// Deprecated: Well-known types have specialized functionality directly -// injected into the generated packages for each message type. -// See the deprecation notice for each function for the suggested alternative. -package ptypes diff --git a/vendor/github.com/golang/protobuf/ptypes/duration.go b/vendor/github.com/golang/protobuf/ptypes/duration.go deleted file mode 100644 index b2b55dd85..000000000 --- a/vendor/github.com/golang/protobuf/ptypes/duration.go +++ /dev/null @@ -1,76 +0,0 @@ -// 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 ptypes - -import ( - "errors" - "fmt" - "time" - - durationpb "github.com/golang/protobuf/ptypes/duration" -) - -// Range of google.protobuf.Duration as specified in duration.proto. -// This is about 10,000 years in seconds. -const ( - maxSeconds = int64(10000 * 365.25 * 24 * 60 * 60) - minSeconds = -maxSeconds -) - -// Duration converts a durationpb.Duration to a time.Duration. -// Duration returns an error if dur is invalid or overflows a time.Duration. -// -// Deprecated: Call the dur.AsDuration and dur.CheckValid methods instead. -func Duration(dur *durationpb.Duration) (time.Duration, error) { - if err := validateDuration(dur); err != nil { - return 0, err - } - d := time.Duration(dur.Seconds) * time.Second - if int64(d/time.Second) != dur.Seconds { - return 0, fmt.Errorf("duration: %v is out of range for time.Duration", dur) - } - if dur.Nanos != 0 { - d += time.Duration(dur.Nanos) * time.Nanosecond - if (d < 0) != (dur.Nanos < 0) { - return 0, fmt.Errorf("duration: %v is out of range for time.Duration", dur) - } - } - return d, nil -} - -// DurationProto converts a time.Duration to a durationpb.Duration. -// -// Deprecated: Call the durationpb.New function instead. -func DurationProto(d time.Duration) *durationpb.Duration { - nanos := d.Nanoseconds() - secs := nanos / 1e9 - nanos -= secs * 1e9 - return &durationpb.Duration{ - Seconds: int64(secs), - Nanos: int32(nanos), - } -} - -// validateDuration determines whether the durationpb.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 -// Note that the range of durationpb.Duration is about 10,000 years, -// while the range of time.Duration is about 290 years. -func validateDuration(dur *durationpb.Duration) error { - if dur == nil { - return errors.New("duration: nil Duration") - } - if dur.Seconds < minSeconds || dur.Seconds > maxSeconds { - return fmt.Errorf("duration: %v: seconds out of range", dur) - } - if dur.Nanos <= -1e9 || dur.Nanos >= 1e9 { - return fmt.Errorf("duration: %v: nanos out of range", dur) - } - // Seconds and Nanos must have the same sign, unless d.Nanos is zero. - if (dur.Seconds < 0 && dur.Nanos > 0) || (dur.Seconds > 0 && dur.Nanos < 0) { - return fmt.Errorf("duration: %v: seconds and nanos have different signs", dur) - } - return nil -} diff --git a/vendor/github.com/golang/protobuf/ptypes/duration/duration.pb.go b/vendor/github.com/golang/protobuf/ptypes/duration/duration.pb.go deleted file mode 100644 index d0079ee3e..000000000 --- a/vendor/github.com/golang/protobuf/ptypes/duration/duration.pb.go +++ /dev/null @@ -1,63 +0,0 @@ -// Code generated by protoc-gen-go. DO NOT EDIT. -// source: github.com/golang/protobuf/ptypes/duration/duration.proto - -package duration - -import ( - protoreflect "google.golang.org/protobuf/reflect/protoreflect" - protoimpl "google.golang.org/protobuf/runtime/protoimpl" - durationpb "google.golang.org/protobuf/types/known/durationpb" - reflect "reflect" -) - -// Symbols defined in public import of google/protobuf/duration.proto. - -type Duration = durationpb.Duration - -var File_github_com_golang_protobuf_ptypes_duration_duration_proto protoreflect.FileDescriptor - -var file_github_com_golang_protobuf_ptypes_duration_duration_proto_rawDesc = []byte{ - 0x0a, 0x39, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x6c, - 0x61, 0x6e, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x70, 0x74, 0x79, - 0x70, 0x65, 0x73, 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x64, 0x75, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x42, 0x35, 0x5a, 0x33, 0x67, - 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, - 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x70, 0x74, 0x79, 0x70, 0x65, 0x73, - 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x3b, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x50, 0x00, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, -} - -var file_github_com_golang_protobuf_ptypes_duration_duration_proto_goTypes = []interface{}{} -var file_github_com_golang_protobuf_ptypes_duration_duration_proto_depIdxs = []int32{ - 0, // [0:0] is the sub-list for method output_type - 0, // [0:0] is the sub-list for method input_type - 0, // [0:0] is the sub-list for extension type_name - 0, // [0:0] is the sub-list for extension extendee - 0, // [0:0] is the sub-list for field type_name -} - -func init() { file_github_com_golang_protobuf_ptypes_duration_duration_proto_init() } -func file_github_com_golang_protobuf_ptypes_duration_duration_proto_init() { - if File_github_com_golang_protobuf_ptypes_duration_duration_proto != nil { - return - } - type x struct{} - out := protoimpl.TypeBuilder{ - File: protoimpl.DescBuilder{ - GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_github_com_golang_protobuf_ptypes_duration_duration_proto_rawDesc, - NumEnums: 0, - NumMessages: 0, - NumExtensions: 0, - NumServices: 0, - }, - GoTypes: file_github_com_golang_protobuf_ptypes_duration_duration_proto_goTypes, - DependencyIndexes: file_github_com_golang_protobuf_ptypes_duration_duration_proto_depIdxs, - }.Build() - File_github_com_golang_protobuf_ptypes_duration_duration_proto = out.File - file_github_com_golang_protobuf_ptypes_duration_duration_proto_rawDesc = nil - file_github_com_golang_protobuf_ptypes_duration_duration_proto_goTypes = nil - file_github_com_golang_protobuf_ptypes_duration_duration_proto_depIdxs = nil -} diff --git a/vendor/github.com/golang/protobuf/ptypes/timestamp.go b/vendor/github.com/golang/protobuf/ptypes/timestamp.go deleted file mode 100644 index 8368a3f70..000000000 --- a/vendor/github.com/golang/protobuf/ptypes/timestamp.go +++ /dev/null @@ -1,112 +0,0 @@ -// 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 ptypes - -import ( - "errors" - "fmt" - "time" - - timestamppb "github.com/golang/protobuf/ptypes/timestamp" -) - -// Range of google.protobuf.Duration as specified in timestamp.proto. -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 -) - -// Timestamp converts a timestamppb.Timestamp 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. -// -// Deprecated: Call the ts.AsTime and ts.CheckValid methods instead. -func Timestamp(ts *timestamppb.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) -} - -// TimestampNow returns a google.protobuf.Timestamp for the current time. -// -// Deprecated: Call the timestamppb.Now function instead. -func TimestampNow() *timestamppb.Timestamp { - ts, err := TimestampProto(time.Now()) - if err != nil { - panic("ptypes: time.Now() out of Timestamp range") - } - return ts -} - -// TimestampProto converts the time.Time to a google.protobuf.Timestamp proto. -// It returns an error if the resulting Timestamp is invalid. -// -// Deprecated: Call the timestamppb.New function instead. -func TimestampProto(t time.Time) (*timestamppb.Timestamp, error) { - ts := ×tamppb.Timestamp{ - Seconds: t.Unix(), - Nanos: int32(t.Nanosecond()), - } - 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. -// -// Deprecated: Call the ts.AsTime method instead, -// followed by a call to the Format method on the time.Time value. -func TimestampString(ts *timestamppb.Timestamp) string { - t, err := Timestamp(ts) - if err != nil { - return fmt.Sprintf("(%v)", err) - } - return t.Format(time.RFC3339Nano) -} - -// 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 *timestamppb.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 -} diff --git a/vendor/github.com/golang/protobuf/ptypes/timestamp/timestamp.pb.go b/vendor/github.com/golang/protobuf/ptypes/timestamp/timestamp.pb.go deleted file mode 100644 index a76f80760..000000000 --- a/vendor/github.com/golang/protobuf/ptypes/timestamp/timestamp.pb.go +++ /dev/null @@ -1,64 +0,0 @@ -// Code generated by protoc-gen-go. DO NOT EDIT. -// source: github.com/golang/protobuf/ptypes/timestamp/timestamp.proto - -package timestamp - -import ( - protoreflect "google.golang.org/protobuf/reflect/protoreflect" - protoimpl "google.golang.org/protobuf/runtime/protoimpl" - timestamppb "google.golang.org/protobuf/types/known/timestamppb" - reflect "reflect" -) - -// Symbols defined in public import of google/protobuf/timestamp.proto. - -type Timestamp = timestamppb.Timestamp - -var File_github_com_golang_protobuf_ptypes_timestamp_timestamp_proto protoreflect.FileDescriptor - -var file_github_com_golang_protobuf_ptypes_timestamp_timestamp_proto_rawDesc = []byte{ - 0x0a, 0x3b, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x6c, - 0x61, 0x6e, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x70, 0x74, 0x79, - 0x70, 0x65, 0x73, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2f, 0x74, 0x69, - 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, - 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x42, 0x37, - 0x5a, 0x35, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x6c, - 0x61, 0x6e, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x70, 0x74, 0x79, - 0x70, 0x65, 0x73, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x3b, 0x74, 0x69, - 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x50, 0x00, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x33, -} - -var file_github_com_golang_protobuf_ptypes_timestamp_timestamp_proto_goTypes = []interface{}{} -var file_github_com_golang_protobuf_ptypes_timestamp_timestamp_proto_depIdxs = []int32{ - 0, // [0:0] is the sub-list for method output_type - 0, // [0:0] is the sub-list for method input_type - 0, // [0:0] is the sub-list for extension type_name - 0, // [0:0] is the sub-list for extension extendee - 0, // [0:0] is the sub-list for field type_name -} - -func init() { file_github_com_golang_protobuf_ptypes_timestamp_timestamp_proto_init() } -func file_github_com_golang_protobuf_ptypes_timestamp_timestamp_proto_init() { - if File_github_com_golang_protobuf_ptypes_timestamp_timestamp_proto != nil { - return - } - type x struct{} - out := protoimpl.TypeBuilder{ - File: protoimpl.DescBuilder{ - GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_github_com_golang_protobuf_ptypes_timestamp_timestamp_proto_rawDesc, - NumEnums: 0, - NumMessages: 0, - NumExtensions: 0, - NumServices: 0, - }, - GoTypes: file_github_com_golang_protobuf_ptypes_timestamp_timestamp_proto_goTypes, - DependencyIndexes: file_github_com_golang_protobuf_ptypes_timestamp_timestamp_proto_depIdxs, - }.Build() - File_github_com_golang_protobuf_ptypes_timestamp_timestamp_proto = out.File - file_github_com_golang_protobuf_ptypes_timestamp_timestamp_proto_rawDesc = nil - file_github_com_golang_protobuf_ptypes_timestamp_timestamp_proto_goTypes = nil - file_github_com_golang_protobuf_ptypes_timestamp_timestamp_proto_depIdxs = nil -} diff --git a/vendor/github.com/gomarkdown/markdown/README.md b/vendor/github.com/gomarkdown/markdown/README.md index 152653971..5127ed647 100644 --- a/vendor/github.com/gomarkdown/markdown/README.md +++ b/vendor/github.com/gomarkdown/markdown/README.md @@ -9,11 +9,11 @@ It's very fast and supports common extensions. Tutorial: https://blog.kowalczyk.info/article/cxn3/advanced-markdown-processing-in-go.html Code examples: -* https://onlinetool.io/goplayground/#txO7hJ-ibeU : basic markdown => HTML -* https://onlinetool.io/goplayground/#yFRIWRiu-KL : customize HTML renderer -* https://onlinetool.io/goplayground/#2yV5-HDKBUV : modify AST -* https://onlinetool.io/goplayground/#9fqKwRbuJ04 : customize parser -* https://onlinetool.io/goplayground/#Bk0zTvrzUDR : syntax highlight +* https://tools.arslexis.io/goplayground/#txO7hJ-ibeU : basic markdown => HTML +* https://tools.arslexis.io/goplayground/#yFRIWRiu-KL : customize HTML renderer +* https://tools.arslexis.io/goplayground/#2yV5-HDKBUV : modify AST +* https://tools.arslexis.io/goplayground/#9fqKwRbuJ04 : customize parser +* https://tools.arslexis.io/goplayground/#Bk0zTvrzUDR : syntax highlight Those examples are also in [examples](./examples) directory. diff --git a/vendor/github.com/gomarkdown/markdown/parser/parser.go b/vendor/github.com/gomarkdown/markdown/parser/parser.go index bd9e51529..f0a0d9cd9 100644 --- a/vendor/github.com/gomarkdown/markdown/parser/parser.go +++ b/vendor/github.com/gomarkdown/markdown/parser/parser.go @@ -907,6 +907,9 @@ func isListItem(d ast.Node) bool { } func NormalizeNewlines(d []byte) []byte { + res := make([]byte, len(d)) + copy(res, d) + d = res wi := 0 n := len(d) for i := 0; i < n; i++ { diff --git a/vendor/github.com/klauspost/compress/.goreleaser.yml b/vendor/github.com/klauspost/compress/.goreleaser.yml index 4c28dff46..a22953805 100644 --- a/vendor/github.com/klauspost/compress/.goreleaser.yml +++ b/vendor/github.com/klauspost/compress/.goreleaser.yml @@ -3,7 +3,6 @@ before: hooks: - ./gen.sh - - go install mvdan.cc/garble@v0.10.1 builds: - @@ -32,7 +31,6 @@ builds: - mips64le goarm: - 7 - gobinary: garble - id: "s2d" binary: s2d @@ -59,7 +57,6 @@ builds: - mips64le goarm: - 7 - gobinary: garble - id: "s2sx" binary: s2sx @@ -87,7 +84,6 @@ builds: - mips64le goarm: - 7 - gobinary: garble archives: - diff --git a/vendor/github.com/klauspost/compress/README.md b/vendor/github.com/klauspost/compress/README.md index c918f11d8..05c7359e4 100644 --- a/vendor/github.com/klauspost/compress/README.md +++ b/vendor/github.com/klauspost/compress/README.md @@ -16,6 +16,18 @@ This package provides various compression algorithms. # changelog +* Feb 5th, 2024 - [1.17.6](https://github.com/klauspost/compress/releases/tag/v1.17.6) + * zstd: Fix incorrect repeat coding in best mode https://github.com/klauspost/compress/pull/923 + * s2: Fix DecodeConcurrent deadlock on errors https://github.com/klauspost/compress/pull/925 + +* Jan 26th, 2024 - [v1.17.5](https://github.com/klauspost/compress/releases/tag/v1.17.5) + * flate: Fix reset with dictionary on custom window encodes https://github.com/klauspost/compress/pull/912 + * zstd: Add Frame header encoding and stripping https://github.com/klauspost/compress/pull/908 + * zstd: Limit better/best default window to 8MB https://github.com/klauspost/compress/pull/913 + * zstd: Speed improvements by @greatroar in https://github.com/klauspost/compress/pull/896 https://github.com/klauspost/compress/pull/910 + * s2: Fix callbacks for skippable blocks and disallow 0xfe (Padding) by @Jille in https://github.com/klauspost/compress/pull/916 https://github.com/klauspost/compress/pull/917 +https://github.com/klauspost/compress/pull/919 https://github.com/klauspost/compress/pull/918 + * Dec 1st, 2023 - [v1.17.4](https://github.com/klauspost/compress/releases/tag/v1.17.4) * huff0: Speed up symbol counting by @greatroar in https://github.com/klauspost/compress/pull/887 * huff0: Remove byteReader by @greatroar in https://github.com/klauspost/compress/pull/886 @@ -43,6 +55,10 @@ This package provides various compression algorithms. * s2: Do 2 overlapping match checks https://github.com/klauspost/compress/pull/839 * flate: Add amd64 assembly matchlen https://github.com/klauspost/compress/pull/837 * gzip: Copy bufio.Reader on Reset by @thatguystone in https://github.com/klauspost/compress/pull/860 + +
+ See changes to v1.16.x + * July 1st, 2023 - [v1.16.7](https://github.com/klauspost/compress/releases/tag/v1.16.7) * zstd: Fix default level first dictionary encode https://github.com/klauspost/compress/pull/829 @@ -81,6 +97,7 @@ This package provides various compression algorithms. * s2: Add LZ4 block converter. https://github.com/klauspost/compress/pull/748 * s2: Support io.ReaderAt in ReadSeeker. https://github.com/klauspost/compress/pull/747 * s2c/s2sx: Use concurrent decoding. https://github.com/klauspost/compress/pull/746 +
See changes to v1.15.x @@ -548,6 +565,8 @@ the stateless compress described below. For compression performance, see: [this spreadsheet](https://docs.google.com/spreadsheets/d/1nuNE2nPfuINCZJRMt6wFWhKpToF95I47XjSsc-1rbPQ/edit?usp=sharing). +To disable all assembly add `-tags=noasm`. This works across all packages. + # Stateless compression This package offers stateless compression as a special option for gzip/deflate. diff --git a/vendor/github.com/klauspost/compress/internal/snapref/encode_other.go b/vendor/github.com/klauspost/compress/internal/snapref/encode_other.go index 2aa6a95a0..2754bac6f 100644 --- a/vendor/github.com/klauspost/compress/internal/snapref/encode_other.go +++ b/vendor/github.com/klauspost/compress/internal/snapref/encode_other.go @@ -51,7 +51,7 @@ func emitCopy(dst []byte, offset, length int) int { i := 0 // The maximum length for a single tagCopy1 or tagCopy2 op is 64 bytes. The // threshold for this loop is a little higher (at 68 = 64 + 4), and the - // length emitted down below is is a little lower (at 60 = 64 - 4), because + // length emitted down below is a little lower (at 60 = 64 - 4), because // it's shorter to encode a length 67 copy as a length 60 tagCopy2 followed // by a length 7 tagCopy1 (which encodes as 3+2 bytes) than to encode it as // a length 64 tagCopy2 followed by a length 3 tagCopy2 (which encodes as diff --git a/vendor/github.com/klauspost/compress/s2/encode_all.go b/vendor/github.com/klauspost/compress/s2/encode_all.go index 5e57995d4..997704569 100644 --- a/vendor/github.com/klauspost/compress/s2/encode_all.go +++ b/vendor/github.com/klauspost/compress/s2/encode_all.go @@ -117,6 +117,12 @@ func encodeBlockGo(dst, src []byte) (d int) { i-- base-- } + + // Bail if we exceed the maximum size. + if d+(base-nextEmit) > dstLimit { + return 0 + } + d += emitLiteral(dst[d:], src[nextEmit:base]) // Extend forward @@ -152,7 +158,6 @@ func encodeBlockGo(dst, src []byte) (d int) { if s >= sLimit { goto emitRemainder } - cv = load64(src, s) continue } @@ -325,6 +330,11 @@ func encodeBlockSnappyGo(dst, src []byte) (d int) { i-- base-- } + // Bail if we exceed the maximum size. + if d+(base-nextEmit) > dstLimit { + return 0 + } + d += emitLiteral(dst[d:], src[nextEmit:base]) // Extend forward @@ -532,6 +542,11 @@ searchDict: i-- base-- } + // Bail if we exceed the maximum size. + if d+(base-nextEmit) > dstLimit { + return 0 + } + d += emitLiteral(dst[d:], src[nextEmit:base]) if debug && nextEmit != base { fmt.Println("emitted ", base-nextEmit, "literals") @@ -880,6 +895,11 @@ searchDict: i-- base-- } + // Bail if we exceed the maximum size. + if d+(base-nextEmit) > dstLimit { + return 0 + } + d += emitLiteral(dst[d:], src[nextEmit:base]) if debug && nextEmit != base { fmt.Println("emitted ", base-nextEmit, "literals") diff --git a/vendor/github.com/klauspost/compress/s2/encodeblock_amd64.s b/vendor/github.com/klauspost/compress/s2/encodeblock_amd64.s index 5f110d194..2ff5b3340 100644 --- a/vendor/github.com/klauspost/compress/s2/encodeblock_amd64.s +++ b/vendor/github.com/klauspost/compress/s2/encodeblock_amd64.s @@ -100,6 +100,15 @@ repeat_extend_back_loop_encodeBlockAsm: JNZ repeat_extend_back_loop_encodeBlockAsm repeat_extend_back_end_encodeBlockAsm: + MOVL SI, BX + SUBL 12(SP), BX + LEAQ 5(AX)(BX*1), BX + CMPQ BX, (SP) + JB repeat_dst_size_check_encodeBlockAsm + MOVQ $0x00000000, ret+48(FP) + RET + +repeat_dst_size_check_encodeBlockAsm: MOVL 12(SP), BX CMPL BX, SI JEQ emit_literal_done_repeat_emit_encodeBlockAsm @@ -1513,6 +1522,15 @@ repeat_extend_back_loop_encodeBlockAsm4MB: JNZ repeat_extend_back_loop_encodeBlockAsm4MB repeat_extend_back_end_encodeBlockAsm4MB: + MOVL SI, BX + SUBL 12(SP), BX + LEAQ 4(AX)(BX*1), BX + CMPQ BX, (SP) + JB repeat_dst_size_check_encodeBlockAsm4MB + MOVQ $0x00000000, ret+48(FP) + RET + +repeat_dst_size_check_encodeBlockAsm4MB: MOVL 12(SP), BX CMPL BX, SI JEQ emit_literal_done_repeat_emit_encodeBlockAsm4MB @@ -2828,6 +2846,15 @@ repeat_extend_back_loop_encodeBlockAsm12B: JNZ repeat_extend_back_loop_encodeBlockAsm12B repeat_extend_back_end_encodeBlockAsm12B: + MOVL SI, BX + SUBL 12(SP), BX + LEAQ 3(AX)(BX*1), BX + CMPQ BX, (SP) + JB repeat_dst_size_check_encodeBlockAsm12B + MOVQ $0x00000000, ret+48(FP) + RET + +repeat_dst_size_check_encodeBlockAsm12B: MOVL 12(SP), BX CMPL BX, SI JEQ emit_literal_done_repeat_emit_encodeBlockAsm12B @@ -3903,6 +3930,15 @@ repeat_extend_back_loop_encodeBlockAsm10B: JNZ repeat_extend_back_loop_encodeBlockAsm10B repeat_extend_back_end_encodeBlockAsm10B: + MOVL SI, BX + SUBL 12(SP), BX + LEAQ 3(AX)(BX*1), BX + CMPQ BX, (SP) + JB repeat_dst_size_check_encodeBlockAsm10B + MOVQ $0x00000000, ret+48(FP) + RET + +repeat_dst_size_check_encodeBlockAsm10B: MOVL 12(SP), BX CMPL BX, SI JEQ emit_literal_done_repeat_emit_encodeBlockAsm10B @@ -4978,6 +5014,15 @@ repeat_extend_back_loop_encodeBlockAsm8B: JNZ repeat_extend_back_loop_encodeBlockAsm8B repeat_extend_back_end_encodeBlockAsm8B: + MOVL SI, BX + SUBL 12(SP), BX + LEAQ 3(AX)(BX*1), BX + CMPQ BX, (SP) + JB repeat_dst_size_check_encodeBlockAsm8B + MOVQ $0x00000000, ret+48(FP) + RET + +repeat_dst_size_check_encodeBlockAsm8B: MOVL 12(SP), BX CMPL BX, SI JEQ emit_literal_done_repeat_emit_encodeBlockAsm8B @@ -10756,6 +10801,15 @@ repeat_extend_back_loop_encodeSnappyBlockAsm: JNZ repeat_extend_back_loop_encodeSnappyBlockAsm repeat_extend_back_end_encodeSnappyBlockAsm: + MOVL SI, BX + SUBL 12(SP), BX + LEAQ 5(AX)(BX*1), BX + CMPQ BX, (SP) + JB repeat_dst_size_check_encodeSnappyBlockAsm + MOVQ $0x00000000, ret+48(FP) + RET + +repeat_dst_size_check_encodeSnappyBlockAsm: MOVL 12(SP), BX CMPL BX, SI JEQ emit_literal_done_repeat_emit_encodeSnappyBlockAsm @@ -11678,6 +11732,15 @@ repeat_extend_back_loop_encodeSnappyBlockAsm64K: JNZ repeat_extend_back_loop_encodeSnappyBlockAsm64K repeat_extend_back_end_encodeSnappyBlockAsm64K: + MOVL SI, BX + SUBL 12(SP), BX + LEAQ 3(AX)(BX*1), BX + CMPQ BX, (SP) + JB repeat_dst_size_check_encodeSnappyBlockAsm64K + MOVQ $0x00000000, ret+48(FP) + RET + +repeat_dst_size_check_encodeSnappyBlockAsm64K: MOVL 12(SP), BX CMPL BX, SI JEQ emit_literal_done_repeat_emit_encodeSnappyBlockAsm64K @@ -12504,6 +12567,15 @@ repeat_extend_back_loop_encodeSnappyBlockAsm12B: JNZ repeat_extend_back_loop_encodeSnappyBlockAsm12B repeat_extend_back_end_encodeSnappyBlockAsm12B: + MOVL SI, BX + SUBL 12(SP), BX + LEAQ 3(AX)(BX*1), BX + CMPQ BX, (SP) + JB repeat_dst_size_check_encodeSnappyBlockAsm12B + MOVQ $0x00000000, ret+48(FP) + RET + +repeat_dst_size_check_encodeSnappyBlockAsm12B: MOVL 12(SP), BX CMPL BX, SI JEQ emit_literal_done_repeat_emit_encodeSnappyBlockAsm12B @@ -13330,6 +13402,15 @@ repeat_extend_back_loop_encodeSnappyBlockAsm10B: JNZ repeat_extend_back_loop_encodeSnappyBlockAsm10B repeat_extend_back_end_encodeSnappyBlockAsm10B: + MOVL SI, BX + SUBL 12(SP), BX + LEAQ 3(AX)(BX*1), BX + CMPQ BX, (SP) + JB repeat_dst_size_check_encodeSnappyBlockAsm10B + MOVQ $0x00000000, ret+48(FP) + RET + +repeat_dst_size_check_encodeSnappyBlockAsm10B: MOVL 12(SP), BX CMPL BX, SI JEQ emit_literal_done_repeat_emit_encodeSnappyBlockAsm10B @@ -14156,6 +14237,15 @@ repeat_extend_back_loop_encodeSnappyBlockAsm8B: JNZ repeat_extend_back_loop_encodeSnappyBlockAsm8B repeat_extend_back_end_encodeSnappyBlockAsm8B: + MOVL SI, BX + SUBL 12(SP), BX + LEAQ 3(AX)(BX*1), BX + CMPQ BX, (SP) + JB repeat_dst_size_check_encodeSnappyBlockAsm8B + MOVQ $0x00000000, ret+48(FP) + RET + +repeat_dst_size_check_encodeSnappyBlockAsm8B: MOVL 12(SP), BX CMPL BX, SI JEQ emit_literal_done_repeat_emit_encodeSnappyBlockAsm8B @@ -17949,6 +18039,15 @@ repeat_extend_back_loop_calcBlockSize: JNZ repeat_extend_back_loop_calcBlockSize repeat_extend_back_end_calcBlockSize: + MOVL SI, BX + SUBL 12(SP), BX + LEAQ 5(AX)(BX*1), BX + CMPQ BX, (SP) + JB repeat_dst_size_check_calcBlockSize + MOVQ $0x00000000, ret+24(FP) + RET + +repeat_dst_size_check_calcBlockSize: MOVL 12(SP), BX CMPL BX, SI JEQ emit_literal_done_repeat_emit_calcBlockSize @@ -18531,6 +18630,15 @@ repeat_extend_back_loop_calcBlockSizeSmall: JNZ repeat_extend_back_loop_calcBlockSizeSmall repeat_extend_back_end_calcBlockSizeSmall: + MOVL SI, BX + SUBL 12(SP), BX + LEAQ 3(AX)(BX*1), BX + CMPQ BX, (SP) + JB repeat_dst_size_check_calcBlockSizeSmall + MOVQ $0x00000000, ret+24(FP) + RET + +repeat_dst_size_check_calcBlockSizeSmall: MOVL 12(SP), BX CMPL BX, SI JEQ emit_literal_done_repeat_emit_calcBlockSizeSmall diff --git a/vendor/github.com/klauspost/compress/s2/reader.go b/vendor/github.com/klauspost/compress/s2/reader.go index 46ead58fe..8372d752f 100644 --- a/vendor/github.com/klauspost/compress/s2/reader.go +++ b/vendor/github.com/klauspost/compress/s2/reader.go @@ -452,6 +452,12 @@ func (r *Reader) DecodeConcurrent(w io.Writer, concurrent int) (written int64, e for toWrite := range queue { entry := <-toWrite reUse <- toWrite + if hasErr() || entry == nil { + if entry != nil { + writtenBlocks <- entry + } + continue + } if hasErr() { writtenBlocks <- entry continue @@ -471,13 +477,13 @@ func (r *Reader) DecodeConcurrent(w io.Writer, concurrent int) (written int64, e } }() - // Reader defer func() { - close(queue) if r.err != nil { - err = r.err setErr(r.err) + } else if err != nil { + setErr(err) } + close(queue) wg.Wait() if err == nil { err = aErr @@ -485,6 +491,7 @@ func (r *Reader) DecodeConcurrent(w io.Writer, concurrent int) (written int64, e written = aWritten }() + // Reader for !hasErr() { if !r.readFull(r.buf[:4], true) { if r.err == io.EOF { @@ -553,11 +560,13 @@ func (r *Reader) DecodeConcurrent(w io.Writer, concurrent int) (written int64, e if err != nil { writtenBlocks <- decoded setErr(err) + entry <- nil return } if !r.ignoreCRC && crc(decoded) != checksum { writtenBlocks <- decoded setErr(ErrCRC) + entry <- nil return } entry <- decoded diff --git a/vendor/github.com/klauspost/compress/s2/writer.go b/vendor/github.com/klauspost/compress/s2/writer.go index bba66a876..637c93147 100644 --- a/vendor/github.com/klauspost/compress/s2/writer.go +++ b/vendor/github.com/klauspost/compress/s2/writer.go @@ -215,7 +215,7 @@ func (w *Writer) ReadFrom(r io.Reader) (n int64, err error) { return 0, err } if len(w.ibuf) > 0 { - err := w.Flush() + err := w.AsyncFlush() if err != nil { return 0, err } @@ -225,7 +225,7 @@ func (w *Writer) ReadFrom(r io.Reader) (n int64, err error) { if err := w.EncodeBuffer(buf); err != nil { return 0, err } - return int64(len(buf)), w.Flush() + return int64(len(buf)), w.AsyncFlush() } for { inbuf := w.buffers.Get().([]byte)[:w.blockSize+obufHeaderLen] @@ -354,7 +354,7 @@ func (w *Writer) EncodeBuffer(buf []byte) (err error) { } // Flush queued data first. if len(w.ibuf) > 0 { - err := w.Flush() + err := w.AsyncFlush() if err != nil { return err } @@ -716,9 +716,9 @@ func (w *Writer) writeSync(p []byte) (nRet int, errRet error) { return nRet, nil } -// Flush flushes the Writer to its underlying io.Writer. -// This does not apply padding. -func (w *Writer) Flush() error { +// AsyncFlush writes any buffered bytes to a block and starts compressing it. +// It does not wait for the output has been written as Flush() does. +func (w *Writer) AsyncFlush() error { if err := w.err(nil); err != nil { return err } @@ -738,6 +738,15 @@ func (w *Writer) Flush() error { } } } + return w.err(nil) +} + +// Flush flushes the Writer to its underlying io.Writer. +// This does not apply padding. +func (w *Writer) Flush() error { + if err := w.AsyncFlush(); err != nil { + return err + } if w.output == nil { return w.err(nil) } @@ -928,7 +937,7 @@ func WriterUncompressed() WriterOption { // WriterBlockSize allows to override the default block size. // Blocks will be this size or smaller. -// Minimum size is 4KB and and maximum size is 4MB. +// Minimum size is 4KB and maximum size is 4MB. // // Bigger blocks may give bigger throughput on systems with many cores, // and will increase compression slightly, but it will limit the possible diff --git a/vendor/github.com/klauspost/compress/zstd/blockdec.go b/vendor/github.com/klauspost/compress/zstd/blockdec.go index 9f17ce601..03744fbc7 100644 --- a/vendor/github.com/klauspost/compress/zstd/blockdec.go +++ b/vendor/github.com/klauspost/compress/zstd/blockdec.go @@ -554,6 +554,9 @@ func (b *blockDec) prepareSequences(in []byte, hist *history) (err error) { if debugDecoder { printf("Compression modes: 0b%b", compMode) } + if compMode&3 != 0 { + return errors.New("corrupt block: reserved bits not zero") + } for i := uint(0); i < 3; i++ { mode := seqCompMode((compMode >> (6 - i*2)) & 3) if debugDecoder { diff --git a/vendor/github.com/klauspost/compress/zstd/blockenc.go b/vendor/github.com/klauspost/compress/zstd/blockenc.go index 2cfe925ad..32a7f401d 100644 --- a/vendor/github.com/klauspost/compress/zstd/blockenc.go +++ b/vendor/github.com/klauspost/compress/zstd/blockenc.go @@ -427,6 +427,16 @@ func (b *blockEnc) encodeLits(lits []byte, raw bool) error { return nil } +// encodeRLE will encode an RLE block. +func (b *blockEnc) encodeRLE(val byte, length uint32) { + var bh blockHeader + bh.setLast(b.last) + bh.setSize(length) + bh.setType(blockTypeRLE) + b.output = bh.appendTo(b.output) + b.output = append(b.output, val) +} + // fuzzFseEncoder can be used to fuzz the FSE encoder. func fuzzFseEncoder(data []byte) int { if len(data) > maxSequences || len(data) < 2 { @@ -479,6 +489,16 @@ func (b *blockEnc) encode(org []byte, raw, rawAllLits bool) error { if len(b.sequences) == 0 { return b.encodeLits(b.literals, rawAllLits) } + if len(b.sequences) == 1 && len(org) > 0 && len(b.literals) <= 1 { + // Check common RLE cases. + seq := b.sequences[0] + if seq.litLen == uint32(len(b.literals)) && seq.offset-3 == 1 { + // Offset == 1 and 0 or 1 literals. + b.encodeRLE(org[0], b.sequences[0].matchLen+zstdMinMatch+seq.litLen) + return nil + } + } + // We want some difference to at least account for the headers. saved := b.size - len(b.literals) - (b.size >> 6) if saved < 16 { diff --git a/vendor/github.com/klauspost/compress/zstd/decoder.go b/vendor/github.com/klauspost/compress/zstd/decoder.go index f04aaa21e..bbca17234 100644 --- a/vendor/github.com/klauspost/compress/zstd/decoder.go +++ b/vendor/github.com/klauspost/compress/zstd/decoder.go @@ -82,7 +82,7 @@ var ( // can run multiple concurrent stateless decodes. It is even possible to // use stateless decodes while a stream is being decoded. // -// The Reset function can be used to initiate a new stream, which is will considerably +// The Reset function can be used to initiate a new stream, which will considerably // reduce the allocations normally caused by NewReader. func NewReader(r io.Reader, opts ...DOption) (*Decoder, error) { initPredefined() diff --git a/vendor/github.com/klauspost/compress/zstd/enc_best.go b/vendor/github.com/klauspost/compress/zstd/enc_best.go index c81a15357..4613724e9 100644 --- a/vendor/github.com/klauspost/compress/zstd/enc_best.go +++ b/vendor/github.com/klauspost/compress/zstd/enc_best.go @@ -135,8 +135,20 @@ func (e *bestFastEncoder) Encode(blk *blockEnc, src []byte) { break } + // Add block to history s := e.addBlock(src) blk.size = len(src) + + // Check RLE first + if len(src) > zstdMinMatch { + ml := matchLen(src[1:], src) + if ml == len(src)-1 { + blk.literals = append(blk.literals, src[0]) + blk.sequences = append(blk.sequences, seq{litLen: 1, matchLen: uint32(len(src)-1) - zstdMinMatch, offset: 1 + 3}) + return + } + } + if len(src) < minNonLiteralBlockSize { blk.extraLits = len(src) blk.literals = blk.literals[:len(src)] @@ -201,14 +213,6 @@ encodeLoop: if delta >= e.maxMatchOff || delta <= 0 || load3232(src, offset) != first { return } - if debugAsserts { - if offset >= s { - panic(fmt.Sprintf("offset: %d - s:%d - rep: %d - cur :%d - max: %d", offset, s, rep, e.cur, e.maxMatchOff)) - } - if !bytes.Equal(src[s:s+4], src[offset:offset+4]) { - panic(fmt.Sprintf("first match mismatch: %v != %v, first: %08x", src[s:s+4], src[offset:offset+4], first)) - } - } // Try to quick reject if we already have a long match. if m.length > 16 { left := len(src) - int(m.s+m.length) @@ -227,8 +231,10 @@ encodeLoop: } } l := 4 + e.matchlen(s+4, offset+4, src) - if true { + if m.rep <= 0 { // Extend candidate match backwards as far as possible. + // Do not extend repeats as we can assume they are optimal + // and offsets change if s == nextEmit. tMin := s - e.maxMatchOff if tMin < 0 { tMin = 0 @@ -239,7 +245,14 @@ encodeLoop: l++ } } - + if debugAsserts { + if offset >= s { + panic(fmt.Sprintf("offset: %d - s:%d - rep: %d - cur :%d - max: %d", offset, s, rep, e.cur, e.maxMatchOff)) + } + if !bytes.Equal(src[s:s+l], src[offset:offset+l]) { + panic(fmt.Sprintf("second match mismatch: %v != %v, first: %08x", src[s:s+4], src[offset:offset+4], first)) + } + } cand := match{offset: offset, s: s, length: l, rep: rep} cand.estBits(bitsPerByte) if m.est >= highScore || cand.est-m.est+(cand.s-m.s)*bitsPerByte>>10 < 0 { @@ -336,24 +349,31 @@ encodeLoop: } if debugAsserts { + if best.offset >= best.s { + panic(fmt.Sprintf("best.offset > s: %d >= %d", best.offset, best.s)) + } + if best.s < nextEmit { + panic(fmt.Sprintf("s %d < nextEmit %d", best.s, nextEmit)) + } + if best.offset < s-e.maxMatchOff { + panic(fmt.Sprintf("best.offset < s-e.maxMatchOff: %d < %d", best.offset, s-e.maxMatchOff)) + } if !bytes.Equal(src[best.s:best.s+best.length], src[best.offset:best.offset+best.length]) { panic(fmt.Sprintf("match mismatch: %v != %v", src[best.s:best.s+best.length], src[best.offset:best.offset+best.length])) } } // We have a match, we can store the forward value + s = best.s if best.rep > 0 { var seq seq seq.matchLen = uint32(best.length - zstdMinMatch) - if debugAsserts && s < nextEmit { - panic("s < nextEmit") - } addLiterals(&seq, best.s) // Repeat. If bit 4 is set, this is a non-lit repeat. seq.offset = uint32(best.rep & 3) if debugSequences { - println("repeat sequence", seq, "next s:", s) + println("repeat sequence", seq, "next s:", best.s, "off:", best.s-best.offset) } blk.sequences = append(blk.sequences, seq) @@ -396,7 +416,6 @@ encodeLoop: // A 4-byte match has been found. Update recent offsets. // We'll later see if more than 4 bytes. - s = best.s t := best.offset offset1, offset2, offset3 = s-t, offset1, offset2 diff --git a/vendor/github.com/klauspost/compress/zstd/enc_better.go b/vendor/github.com/klauspost/compress/zstd/enc_better.go index 20d25b0e0..a4f5bf91f 100644 --- a/vendor/github.com/klauspost/compress/zstd/enc_better.go +++ b/vendor/github.com/klauspost/compress/zstd/enc_better.go @@ -102,9 +102,20 @@ func (e *betterFastEncoder) Encode(blk *blockEnc, src []byte) { e.cur = e.maxMatchOff break } - + // Add block to history s := e.addBlock(src) blk.size = len(src) + + // Check RLE first + if len(src) > zstdMinMatch { + ml := matchLen(src[1:], src) + if ml == len(src)-1 { + blk.literals = append(blk.literals, src[0]) + blk.sequences = append(blk.sequences, seq{litLen: 1, matchLen: uint32(len(src)-1) - zstdMinMatch, offset: 1 + 3}) + return + } + } + if len(src) < minNonLiteralBlockSize { blk.extraLits = len(src) blk.literals = blk.literals[:len(src)] diff --git a/vendor/github.com/klauspost/cpuid/v2/cpuid.go b/vendor/github.com/klauspost/cpuid/v2/cpuid.go index 15b760337..805f5e7b4 100644 --- a/vendor/github.com/klauspost/cpuid/v2/cpuid.go +++ b/vendor/github.com/klauspost/cpuid/v2/cpuid.go @@ -67,195 +67,200 @@ const ( // Keep index -1 as unknown UNKNOWN = -1 - // Add features - ADX FeatureID = iota // Intel ADX (Multi-Precision Add-Carry Instruction Extensions) - AESNI // Advanced Encryption Standard New Instructions - AMD3DNOW // AMD 3DNOW - AMD3DNOWEXT // AMD 3DNowExt - AMXBF16 // Tile computational operations on BFLOAT16 numbers - AMXFP16 // Tile computational operations on FP16 numbers - AMXINT8 // Tile computational operations on 8-bit integers - AMXTILE // Tile architecture - APX_F // Intel APX - AVX // AVX functions - AVX10 // If set the Intel AVX10 Converged Vector ISA is supported - AVX10_128 // If set indicates that AVX10 128-bit vector support is present - AVX10_256 // If set indicates that AVX10 256-bit vector support is present - AVX10_512 // If set indicates that AVX10 512-bit vector support is present - AVX2 // AVX2 functions - AVX512BF16 // AVX-512 BFLOAT16 Instructions - AVX512BITALG // AVX-512 Bit Algorithms - AVX512BW // AVX-512 Byte and Word Instructions - AVX512CD // AVX-512 Conflict Detection Instructions - AVX512DQ // AVX-512 Doubleword and Quadword Instructions - AVX512ER // AVX-512 Exponential and Reciprocal Instructions - AVX512F // AVX-512 Foundation - AVX512FP16 // AVX-512 FP16 Instructions - AVX512IFMA // AVX-512 Integer Fused Multiply-Add Instructions - AVX512PF // AVX-512 Prefetch Instructions - AVX512VBMI // AVX-512 Vector Bit Manipulation Instructions - AVX512VBMI2 // AVX-512 Vector Bit Manipulation Instructions, Version 2 - AVX512VL // AVX-512 Vector Length Extensions - AVX512VNNI // AVX-512 Vector Neural Network Instructions - AVX512VP2INTERSECT // AVX-512 Intersect for D/Q - AVX512VPOPCNTDQ // AVX-512 Vector Population Count Doubleword and Quadword - AVXIFMA // AVX-IFMA instructions - AVXNECONVERT // AVX-NE-CONVERT instructions - AVXSLOW // Indicates the CPU performs 2 128 bit operations instead of one - AVXVNNI // AVX (VEX encoded) VNNI neural network instructions - AVXVNNIINT8 // AVX-VNNI-INT8 instructions - BHI_CTRL // Branch History Injection and Intra-mode Branch Target Injection / CVE-2022-0001, CVE-2022-0002 / INTEL-SA-00598 - BMI1 // Bit Manipulation Instruction Set 1 - BMI2 // Bit Manipulation Instruction Set 2 - CETIBT // Intel CET Indirect Branch Tracking - CETSS // Intel CET Shadow Stack - CLDEMOTE // Cache Line Demote - CLMUL // Carry-less Multiplication - CLZERO // CLZERO instruction supported - CMOV // i686 CMOV - CMPCCXADD // CMPCCXADD instructions - CMPSB_SCADBS_SHORT // Fast short CMPSB and SCASB - CMPXCHG8 // CMPXCHG8 instruction - CPBOOST // Core Performance Boost - CPPC // AMD: Collaborative Processor Performance Control - CX16 // CMPXCHG16B Instruction - EFER_LMSLE_UNS // AMD: =Core::X86::Msr::EFER[LMSLE] is not supported, and MBZ - ENQCMD // Enqueue Command - ERMS // Enhanced REP MOVSB/STOSB - F16C // Half-precision floating-point conversion - FLUSH_L1D // Flush L1D cache - FMA3 // Intel FMA 3. Does not imply AVX. - FMA4 // Bulldozer FMA4 functions - FP128 // AMD: When set, the internal FP/SIMD execution datapath is no more than 128-bits wide - FP256 // AMD: When set, the internal FP/SIMD execution datapath is no more than 256-bits wide - FSRM // Fast Short Rep Mov - FXSR // FXSAVE, FXRESTOR instructions, CR4 bit 9 - FXSROPT // FXSAVE/FXRSTOR optimizations - GFNI // Galois Field New Instructions. May require other features (AVX, AVX512VL,AVX512F) based on usage. - HLE // Hardware Lock Elision - HRESET // If set CPU supports history reset and the IA32_HRESET_ENABLE MSR - HTT // Hyperthreading (enabled) - HWA // Hardware assert supported. Indicates support for MSRC001_10 - HYBRID_CPU // This part has CPUs of more than one type. - HYPERVISOR // This bit has been reserved by Intel & AMD for use by hypervisors - IA32_ARCH_CAP // IA32_ARCH_CAPABILITIES MSR (Intel) - IA32_CORE_CAP // IA32_CORE_CAPABILITIES MSR - IBPB // Indirect Branch Restricted Speculation (IBRS) and Indirect Branch Predictor Barrier (IBPB) - IBRS // AMD: Indirect Branch Restricted Speculation - IBRS_PREFERRED // AMD: IBRS is preferred over software solution - IBRS_PROVIDES_SMP // AMD: IBRS provides Same Mode Protection - IBS // Instruction Based Sampling (AMD) - IBSBRNTRGT // Instruction Based Sampling Feature (AMD) - IBSFETCHSAM // Instruction Based Sampling Feature (AMD) - IBSFFV // Instruction Based Sampling Feature (AMD) - IBSOPCNT // Instruction Based Sampling Feature (AMD) - IBSOPCNTEXT // Instruction Based Sampling Feature (AMD) - IBSOPSAM // Instruction Based Sampling Feature (AMD) - IBSRDWROPCNT // Instruction Based Sampling Feature (AMD) - IBSRIPINVALIDCHK // Instruction Based Sampling Feature (AMD) - IBS_FETCH_CTLX // AMD: IBS fetch control extended MSR supported - IBS_OPDATA4 // AMD: IBS op data 4 MSR supported - IBS_OPFUSE // AMD: Indicates support for IbsOpFuse - IBS_PREVENTHOST // Disallowing IBS use by the host supported - IBS_ZEN4 // AMD: Fetch and Op IBS support IBS extensions added with Zen4 - IDPRED_CTRL // IPRED_DIS - INT_WBINVD // WBINVD/WBNOINVD are interruptible. - INVLPGB // NVLPGB and TLBSYNC instruction supported - KEYLOCKER // Key locker - KEYLOCKERW // Key locker wide - LAHF // LAHF/SAHF in long mode - LAM // If set, CPU supports Linear Address Masking - LBRVIRT // LBR virtualization - LZCNT // LZCNT instruction - MCAOVERFLOW // MCA overflow recovery support. - MCDT_NO // Processor do not exhibit MXCSR Configuration Dependent Timing behavior and do not need to mitigate it. - MCOMMIT // MCOMMIT instruction supported - MD_CLEAR // VERW clears CPU buffers - MMX // standard MMX - MMXEXT // SSE integer functions or AMD MMX ext - MOVBE // MOVBE instruction (big-endian) - MOVDIR64B // Move 64 Bytes as Direct Store - MOVDIRI // Move Doubleword as Direct Store - MOVSB_ZL // Fast Zero-Length MOVSB - MOVU // AMD: MOVU SSE instructions are more efficient and should be preferred to SSE MOVL/MOVH. MOVUPS is more efficient than MOVLPS/MOVHPS. MOVUPD is more efficient than MOVLPD/MOVHPD - MPX // Intel MPX (Memory Protection Extensions) - MSRIRC // Instruction Retired Counter MSR available - MSRLIST // Read/Write List of Model Specific Registers - MSR_PAGEFLUSH // Page Flush MSR available - NRIPS // Indicates support for NRIP save on VMEXIT - NX // NX (No-Execute) bit - OSXSAVE // XSAVE enabled by OS - PCONFIG // PCONFIG for Intel Multi-Key Total Memory Encryption - POPCNT // POPCNT instruction - PPIN // AMD: Protected Processor Inventory Number support. Indicates that Protected Processor Inventory Number (PPIN) capability can be enabled - PREFETCHI // PREFETCHIT0/1 instructions - PSFD // Predictive Store Forward Disable - RDPRU // RDPRU instruction supported - RDRAND // RDRAND instruction is available - RDSEED // RDSEED instruction is available - RDTSCP // RDTSCP Instruction - RRSBA_CTRL // Restricted RSB Alternate - RTM // Restricted Transactional Memory - RTM_ALWAYS_ABORT // Indicates that the loaded microcode is forcing RTM abort. - SERIALIZE // Serialize Instruction Execution - SEV // AMD Secure Encrypted Virtualization supported - SEV_64BIT // AMD SEV guest execution only allowed from a 64-bit host - SEV_ALTERNATIVE // AMD SEV Alternate Injection supported - SEV_DEBUGSWAP // Full debug state swap supported for SEV-ES guests - SEV_ES // AMD SEV Encrypted State supported - SEV_RESTRICTED // AMD SEV Restricted Injection supported - SEV_SNP // AMD SEV Secure Nested Paging supported - SGX // Software Guard Extensions - SGXLC // Software Guard Extensions Launch Control - SHA // Intel SHA Extensions - SME // AMD Secure Memory Encryption supported - SME_COHERENT // AMD Hardware cache coherency across encryption domains enforced - SPEC_CTRL_SSBD // Speculative Store Bypass Disable - SRBDS_CTRL // SRBDS mitigation MSR available - SSE // SSE functions - SSE2 // P4 SSE functions - SSE3 // Prescott SSE3 functions - SSE4 // Penryn SSE4.1 functions - SSE42 // Nehalem SSE4.2 functions - SSE4A // AMD Barcelona microarchitecture SSE4a instructions - SSSE3 // Conroe SSSE3 functions - STIBP // Single Thread Indirect Branch Predictors - STIBP_ALWAYSON // AMD: Single Thread Indirect Branch Prediction Mode has Enhanced Performance and may be left Always On - STOSB_SHORT // Fast short STOSB - SUCCOR // Software uncorrectable error containment and recovery capability. - SVM // AMD Secure Virtual Machine - SVMDA // Indicates support for the SVM decode assists. - SVMFBASID // SVM, Indicates that TLB flush events, including CR3 writes and CR4.PGE toggles, flush only the current ASID's TLB entries. Also indicates support for the extended VMCBTLB_Control - SVML // AMD SVM lock. Indicates support for SVM-Lock. - SVMNP // AMD SVM nested paging - SVMPF // SVM pause intercept filter. Indicates support for the pause intercept filter - SVMPFT // SVM PAUSE filter threshold. Indicates support for the PAUSE filter cycle count threshold - SYSCALL // System-Call Extension (SCE): SYSCALL and SYSRET instructions. - SYSEE // SYSENTER and SYSEXIT instructions - TBM // AMD Trailing Bit Manipulation - TDX_GUEST // Intel Trust Domain Extensions Guest - TLB_FLUSH_NESTED // AMD: Flushing includes all the nested translations for guest translations - TME // Intel Total Memory Encryption. The following MSRs are supported: IA32_TME_CAPABILITY, IA32_TME_ACTIVATE, IA32_TME_EXCLUDE_MASK, and IA32_TME_EXCLUDE_BASE. - TOPEXT // TopologyExtensions: topology extensions support. Indicates support for CPUID Fn8000_001D_EAX_x[N:0]-CPUID Fn8000_001E_EDX. - TSCRATEMSR // MSR based TSC rate control. Indicates support for MSR TSC ratio MSRC000_0104 - TSXLDTRK // Intel TSX Suspend Load Address Tracking - VAES // Vector AES. AVX(512) versions requires additional checks. - VMCBCLEAN // VMCB clean bits. Indicates support for VMCB clean bits. - VMPL // AMD VM Permission Levels supported - VMSA_REGPROT // AMD VMSA Register Protection supported - VMX // Virtual Machine Extensions - VPCLMULQDQ // Carry-Less Multiplication Quadword. Requires AVX for 3 register versions. - VTE // AMD Virtual Transparent Encryption supported - WAITPKG // TPAUSE, UMONITOR, UMWAIT - WBNOINVD // Write Back and Do Not Invalidate Cache - WRMSRNS // Non-Serializing Write to Model Specific Register - X87 // FPU - XGETBV1 // Supports XGETBV with ECX = 1 - XOP // Bulldozer XOP functions - XSAVE // XSAVE, XRESTOR, XSETBV, XGETBV - XSAVEC // Supports XSAVEC and the compacted form of XRSTOR. - XSAVEOPT // XSAVEOPT available - XSAVES // Supports XSAVES/XRSTORS and IA32_XSS + // x86 features + ADX FeatureID = iota // Intel ADX (Multi-Precision Add-Carry Instruction Extensions) + AESNI // Advanced Encryption Standard New Instructions + AMD3DNOW // AMD 3DNOW + AMD3DNOWEXT // AMD 3DNowExt + AMXBF16 // Tile computational operations on BFLOAT16 numbers + AMXFP16 // Tile computational operations on FP16 numbers + AMXINT8 // Tile computational operations on 8-bit integers + AMXTILE // Tile architecture + APX_F // Intel APX + AVX // AVX functions + AVX10 // If set the Intel AVX10 Converged Vector ISA is supported + AVX10_128 // If set indicates that AVX10 128-bit vector support is present + AVX10_256 // If set indicates that AVX10 256-bit vector support is present + AVX10_512 // If set indicates that AVX10 512-bit vector support is present + AVX2 // AVX2 functions + AVX512BF16 // AVX-512 BFLOAT16 Instructions + AVX512BITALG // AVX-512 Bit Algorithms + AVX512BW // AVX-512 Byte and Word Instructions + AVX512CD // AVX-512 Conflict Detection Instructions + AVX512DQ // AVX-512 Doubleword and Quadword Instructions + AVX512ER // AVX-512 Exponential and Reciprocal Instructions + AVX512F // AVX-512 Foundation + AVX512FP16 // AVX-512 FP16 Instructions + AVX512IFMA // AVX-512 Integer Fused Multiply-Add Instructions + AVX512PF // AVX-512 Prefetch Instructions + AVX512VBMI // AVX-512 Vector Bit Manipulation Instructions + AVX512VBMI2 // AVX-512 Vector Bit Manipulation Instructions, Version 2 + AVX512VL // AVX-512 Vector Length Extensions + AVX512VNNI // AVX-512 Vector Neural Network Instructions + AVX512VP2INTERSECT // AVX-512 Intersect for D/Q + AVX512VPOPCNTDQ // AVX-512 Vector Population Count Doubleword and Quadword + AVXIFMA // AVX-IFMA instructions + AVXNECONVERT // AVX-NE-CONVERT instructions + AVXSLOW // Indicates the CPU performs 2 128 bit operations instead of one + AVXVNNI // AVX (VEX encoded) VNNI neural network instructions + AVXVNNIINT8 // AVX-VNNI-INT8 instructions + BHI_CTRL // Branch History Injection and Intra-mode Branch Target Injection / CVE-2022-0001, CVE-2022-0002 / INTEL-SA-00598 + BMI1 // Bit Manipulation Instruction Set 1 + BMI2 // Bit Manipulation Instruction Set 2 + CETIBT // Intel CET Indirect Branch Tracking + CETSS // Intel CET Shadow Stack + CLDEMOTE // Cache Line Demote + CLMUL // Carry-less Multiplication + CLZERO // CLZERO instruction supported + CMOV // i686 CMOV + CMPCCXADD // CMPCCXADD instructions + CMPSB_SCADBS_SHORT // Fast short CMPSB and SCASB + CMPXCHG8 // CMPXCHG8 instruction + CPBOOST // Core Performance Boost + CPPC // AMD: Collaborative Processor Performance Control + CX16 // CMPXCHG16B Instruction + EFER_LMSLE_UNS // AMD: =Core::X86::Msr::EFER[LMSLE] is not supported, and MBZ + ENQCMD // Enqueue Command + ERMS // Enhanced REP MOVSB/STOSB + F16C // Half-precision floating-point conversion + FLUSH_L1D // Flush L1D cache + FMA3 // Intel FMA 3. Does not imply AVX. + FMA4 // Bulldozer FMA4 functions + FP128 // AMD: When set, the internal FP/SIMD execution datapath is no more than 128-bits wide + FP256 // AMD: When set, the internal FP/SIMD execution datapath is no more than 256-bits wide + FSRM // Fast Short Rep Mov + FXSR // FXSAVE, FXRESTOR instructions, CR4 bit 9 + FXSROPT // FXSAVE/FXRSTOR optimizations + GFNI // Galois Field New Instructions. May require other features (AVX, AVX512VL,AVX512F) based on usage. + HLE // Hardware Lock Elision + HRESET // If set CPU supports history reset and the IA32_HRESET_ENABLE MSR + HTT // Hyperthreading (enabled) + HWA // Hardware assert supported. Indicates support for MSRC001_10 + HYBRID_CPU // This part has CPUs of more than one type. + HYPERVISOR // This bit has been reserved by Intel & AMD for use by hypervisors + IA32_ARCH_CAP // IA32_ARCH_CAPABILITIES MSR (Intel) + IA32_CORE_CAP // IA32_CORE_CAPABILITIES MSR + IBPB // Indirect Branch Restricted Speculation (IBRS) and Indirect Branch Predictor Barrier (IBPB) + IBPB_BRTYPE // Indicates that MSR 49h (PRED_CMD) bit 0 (IBPB) flushes all branch type predictions from the CPU branch predictor + IBRS // AMD: Indirect Branch Restricted Speculation + IBRS_PREFERRED // AMD: IBRS is preferred over software solution + IBRS_PROVIDES_SMP // AMD: IBRS provides Same Mode Protection + IBS // Instruction Based Sampling (AMD) + IBSBRNTRGT // Instruction Based Sampling Feature (AMD) + IBSFETCHSAM // Instruction Based Sampling Feature (AMD) + IBSFFV // Instruction Based Sampling Feature (AMD) + IBSOPCNT // Instruction Based Sampling Feature (AMD) + IBSOPCNTEXT // Instruction Based Sampling Feature (AMD) + IBSOPSAM // Instruction Based Sampling Feature (AMD) + IBSRDWROPCNT // Instruction Based Sampling Feature (AMD) + IBSRIPINVALIDCHK // Instruction Based Sampling Feature (AMD) + IBS_FETCH_CTLX // AMD: IBS fetch control extended MSR supported + IBS_OPDATA4 // AMD: IBS op data 4 MSR supported + IBS_OPFUSE // AMD: Indicates support for IbsOpFuse + IBS_PREVENTHOST // Disallowing IBS use by the host supported + IBS_ZEN4 // AMD: Fetch and Op IBS support IBS extensions added with Zen4 + IDPRED_CTRL // IPRED_DIS + INT_WBINVD // WBINVD/WBNOINVD are interruptible. + INVLPGB // NVLPGB and TLBSYNC instruction supported + KEYLOCKER // Key locker + KEYLOCKERW // Key locker wide + LAHF // LAHF/SAHF in long mode + LAM // If set, CPU supports Linear Address Masking + LBRVIRT // LBR virtualization + LZCNT // LZCNT instruction + MCAOVERFLOW // MCA overflow recovery support. + MCDT_NO // Processor do not exhibit MXCSR Configuration Dependent Timing behavior and do not need to mitigate it. + MCOMMIT // MCOMMIT instruction supported + MD_CLEAR // VERW clears CPU buffers + MMX // standard MMX + MMXEXT // SSE integer functions or AMD MMX ext + MOVBE // MOVBE instruction (big-endian) + MOVDIR64B // Move 64 Bytes as Direct Store + MOVDIRI // Move Doubleword as Direct Store + MOVSB_ZL // Fast Zero-Length MOVSB + MOVU // AMD: MOVU SSE instructions are more efficient and should be preferred to SSE MOVL/MOVH. MOVUPS is more efficient than MOVLPS/MOVHPS. MOVUPD is more efficient than MOVLPD/MOVHPD + MPX // Intel MPX (Memory Protection Extensions) + MSRIRC // Instruction Retired Counter MSR available + MSRLIST // Read/Write List of Model Specific Registers + MSR_PAGEFLUSH // Page Flush MSR available + NRIPS // Indicates support for NRIP save on VMEXIT + NX // NX (No-Execute) bit + OSXSAVE // XSAVE enabled by OS + PCONFIG // PCONFIG for Intel Multi-Key Total Memory Encryption + POPCNT // POPCNT instruction + PPIN // AMD: Protected Processor Inventory Number support. Indicates that Protected Processor Inventory Number (PPIN) capability can be enabled + PREFETCHI // PREFETCHIT0/1 instructions + PSFD // Predictive Store Forward Disable + RDPRU // RDPRU instruction supported + RDRAND // RDRAND instruction is available + RDSEED // RDSEED instruction is available + RDTSCP // RDTSCP Instruction + RRSBA_CTRL // Restricted RSB Alternate + RTM // Restricted Transactional Memory + RTM_ALWAYS_ABORT // Indicates that the loaded microcode is forcing RTM abort. + SBPB // Indicates support for the Selective Branch Predictor Barrier + SERIALIZE // Serialize Instruction Execution + SEV // AMD Secure Encrypted Virtualization supported + SEV_64BIT // AMD SEV guest execution only allowed from a 64-bit host + SEV_ALTERNATIVE // AMD SEV Alternate Injection supported + SEV_DEBUGSWAP // Full debug state swap supported for SEV-ES guests + SEV_ES // AMD SEV Encrypted State supported + SEV_RESTRICTED // AMD SEV Restricted Injection supported + SEV_SNP // AMD SEV Secure Nested Paging supported + SGX // Software Guard Extensions + SGXLC // Software Guard Extensions Launch Control + SHA // Intel SHA Extensions + SME // AMD Secure Memory Encryption supported + SME_COHERENT // AMD Hardware cache coherency across encryption domains enforced + SPEC_CTRL_SSBD // Speculative Store Bypass Disable + SRBDS_CTRL // SRBDS mitigation MSR available + SRSO_MSR_FIX // Indicates that software may use MSR BP_CFG[BpSpecReduce] to mitigate SRSO. + SRSO_NO // Indicates the CPU is not subject to the SRSO vulnerability + SRSO_USER_KERNEL_NO // Indicates the CPU is not subject to the SRSO vulnerability across user/kernel boundaries + SSE // SSE functions + SSE2 // P4 SSE functions + SSE3 // Prescott SSE3 functions + SSE4 // Penryn SSE4.1 functions + SSE42 // Nehalem SSE4.2 functions + SSE4A // AMD Barcelona microarchitecture SSE4a instructions + SSSE3 // Conroe SSSE3 functions + STIBP // Single Thread Indirect Branch Predictors + STIBP_ALWAYSON // AMD: Single Thread Indirect Branch Prediction Mode has Enhanced Performance and may be left Always On + STOSB_SHORT // Fast short STOSB + SUCCOR // Software uncorrectable error containment and recovery capability. + SVM // AMD Secure Virtual Machine + SVMDA // Indicates support for the SVM decode assists. + SVMFBASID // SVM, Indicates that TLB flush events, including CR3 writes and CR4.PGE toggles, flush only the current ASID's TLB entries. Also indicates support for the extended VMCBTLB_Control + SVML // AMD SVM lock. Indicates support for SVM-Lock. + SVMNP // AMD SVM nested paging + SVMPF // SVM pause intercept filter. Indicates support for the pause intercept filter + SVMPFT // SVM PAUSE filter threshold. Indicates support for the PAUSE filter cycle count threshold + SYSCALL // System-Call Extension (SCE): SYSCALL and SYSRET instructions. + SYSEE // SYSENTER and SYSEXIT instructions + TBM // AMD Trailing Bit Manipulation + TDX_GUEST // Intel Trust Domain Extensions Guest + TLB_FLUSH_NESTED // AMD: Flushing includes all the nested translations for guest translations + TME // Intel Total Memory Encryption. The following MSRs are supported: IA32_TME_CAPABILITY, IA32_TME_ACTIVATE, IA32_TME_EXCLUDE_MASK, and IA32_TME_EXCLUDE_BASE. + TOPEXT // TopologyExtensions: topology extensions support. Indicates support for CPUID Fn8000_001D_EAX_x[N:0]-CPUID Fn8000_001E_EDX. + TSCRATEMSR // MSR based TSC rate control. Indicates support for MSR TSC ratio MSRC000_0104 + TSXLDTRK // Intel TSX Suspend Load Address Tracking + VAES // Vector AES. AVX(512) versions requires additional checks. + VMCBCLEAN // VMCB clean bits. Indicates support for VMCB clean bits. + VMPL // AMD VM Permission Levels supported + VMSA_REGPROT // AMD VMSA Register Protection supported + VMX // Virtual Machine Extensions + VPCLMULQDQ // Carry-Less Multiplication Quadword. Requires AVX for 3 register versions. + VTE // AMD Virtual Transparent Encryption supported + WAITPKG // TPAUSE, UMONITOR, UMWAIT + WBNOINVD // Write Back and Do Not Invalidate Cache + WRMSRNS // Non-Serializing Write to Model Specific Register + X87 // FPU + XGETBV1 // Supports XGETBV with ECX = 1 + XOP // Bulldozer XOP functions + XSAVE // XSAVE, XRESTOR, XSETBV, XGETBV + XSAVEC // Supports XSAVEC and the compacted form of XRSTOR. + XSAVEOPT // XSAVEOPT available + XSAVES // Supports XSAVES/XRSTORS and IA32_XSS // ARM features: AESARM // AES instructions @@ -309,10 +314,11 @@ type CPUInfo struct { L2 int // L2 Cache (per core or shared). Will be -1 if undetected L3 int // L3 Cache (per core, per ccx or shared). Will be -1 if undetected } - SGX SGXSupport - AVX10Level uint8 - maxFunc uint32 - maxExFunc uint32 + SGX SGXSupport + AMDMemEncryption AMDMemEncryptionSupport + AVX10Level uint8 + maxFunc uint32 + maxExFunc uint32 } var cpuid func(op uint32) (eax, ebx, ecx, edx uint32) @@ -1079,6 +1085,32 @@ func hasSGX(available, lc bool) (rval SGXSupport) { return } +type AMDMemEncryptionSupport struct { + Available bool + CBitPossition uint32 + NumVMPL uint32 + PhysAddrReduction uint32 + NumEntryptedGuests uint32 + MinSevNoEsAsid uint32 +} + +func hasAMDMemEncryption(available bool) (rval AMDMemEncryptionSupport) { + rval.Available = available + if !available { + return + } + + _, b, c, d := cpuidex(0x8000001f, 0) + + rval.CBitPossition = b & 0x3f + rval.PhysAddrReduction = (b >> 6) & 0x3F + rval.NumVMPL = (b >> 12) & 0xf + rval.NumEntryptedGuests = c + rval.MinSevNoEsAsid = d + + return +} + func support() flagSet { var fs flagSet mfi := maxFunctionID() @@ -1418,6 +1450,15 @@ func support() flagSet { fs.setIf((a>>24)&1 == 1, VMSA_REGPROT) } + if maxExtendedFunction() >= 0x80000021 && vend == AMD { + a, _, _, _ := cpuid(0x80000021) + fs.setIf((a>>31)&1 == 1, SRSO_MSR_FIX) + fs.setIf((a>>30)&1 == 1, SRSO_USER_KERNEL_NO) + fs.setIf((a>>29)&1 == 1, SRSO_NO) + fs.setIf((a>>28)&1 == 1, IBPB_BRTYPE) + fs.setIf((a>>27)&1 == 1, SBPB) + } + if mfi >= 0x20 { // Microsoft has decided to purposefully hide the information // of the guest TEE when VMs are being created using Hyper-V. diff --git a/vendor/github.com/klauspost/cpuid/v2/detect_x86.go b/vendor/github.com/klauspost/cpuid/v2/detect_x86.go index c7dfa125d..799b400c2 100644 --- a/vendor/github.com/klauspost/cpuid/v2/detect_x86.go +++ b/vendor/github.com/klauspost/cpuid/v2/detect_x86.go @@ -27,6 +27,7 @@ func addInfo(c *CPUInfo, safe bool) { c.Family, c.Model, c.Stepping = familyModel() c.featureSet = support() c.SGX = hasSGX(c.featureSet.inSet(SGX), c.featureSet.inSet(SGXLC)) + c.AMDMemEncryption = hasAMDMemEncryption(c.featureSet.inSet(SME) || c.featureSet.inSet(SEV)) c.ThreadsPerCore = threadsPerCore() c.LogicalCores = logicalCores() c.PhysicalCores = physicalCores() diff --git a/vendor/github.com/klauspost/cpuid/v2/featureid_string.go b/vendor/github.com/klauspost/cpuid/v2/featureid_string.go index 43bd05f51..57a085a53 100644 --- a/vendor/github.com/klauspost/cpuid/v2/featureid_string.go +++ b/vendor/github.com/klauspost/cpuid/v2/featureid_string.go @@ -81,152 +81,157 @@ func _() { _ = x[IA32_ARCH_CAP-71] _ = x[IA32_CORE_CAP-72] _ = x[IBPB-73] - _ = x[IBRS-74] - _ = x[IBRS_PREFERRED-75] - _ = x[IBRS_PROVIDES_SMP-76] - _ = x[IBS-77] - _ = x[IBSBRNTRGT-78] - _ = x[IBSFETCHSAM-79] - _ = x[IBSFFV-80] - _ = x[IBSOPCNT-81] - _ = x[IBSOPCNTEXT-82] - _ = x[IBSOPSAM-83] - _ = x[IBSRDWROPCNT-84] - _ = x[IBSRIPINVALIDCHK-85] - _ = x[IBS_FETCH_CTLX-86] - _ = x[IBS_OPDATA4-87] - _ = x[IBS_OPFUSE-88] - _ = x[IBS_PREVENTHOST-89] - _ = x[IBS_ZEN4-90] - _ = x[IDPRED_CTRL-91] - _ = x[INT_WBINVD-92] - _ = x[INVLPGB-93] - _ = x[KEYLOCKER-94] - _ = x[KEYLOCKERW-95] - _ = x[LAHF-96] - _ = x[LAM-97] - _ = x[LBRVIRT-98] - _ = x[LZCNT-99] - _ = x[MCAOVERFLOW-100] - _ = x[MCDT_NO-101] - _ = x[MCOMMIT-102] - _ = x[MD_CLEAR-103] - _ = x[MMX-104] - _ = x[MMXEXT-105] - _ = x[MOVBE-106] - _ = x[MOVDIR64B-107] - _ = x[MOVDIRI-108] - _ = x[MOVSB_ZL-109] - _ = x[MOVU-110] - _ = x[MPX-111] - _ = x[MSRIRC-112] - _ = x[MSRLIST-113] - _ = x[MSR_PAGEFLUSH-114] - _ = x[NRIPS-115] - _ = x[NX-116] - _ = x[OSXSAVE-117] - _ = x[PCONFIG-118] - _ = x[POPCNT-119] - _ = x[PPIN-120] - _ = x[PREFETCHI-121] - _ = x[PSFD-122] - _ = x[RDPRU-123] - _ = x[RDRAND-124] - _ = x[RDSEED-125] - _ = x[RDTSCP-126] - _ = x[RRSBA_CTRL-127] - _ = x[RTM-128] - _ = x[RTM_ALWAYS_ABORT-129] - _ = x[SERIALIZE-130] - _ = x[SEV-131] - _ = x[SEV_64BIT-132] - _ = x[SEV_ALTERNATIVE-133] - _ = x[SEV_DEBUGSWAP-134] - _ = x[SEV_ES-135] - _ = x[SEV_RESTRICTED-136] - _ = x[SEV_SNP-137] - _ = x[SGX-138] - _ = x[SGXLC-139] - _ = x[SHA-140] - _ = x[SME-141] - _ = x[SME_COHERENT-142] - _ = x[SPEC_CTRL_SSBD-143] - _ = x[SRBDS_CTRL-144] - _ = x[SSE-145] - _ = x[SSE2-146] - _ = x[SSE3-147] - _ = x[SSE4-148] - _ = x[SSE42-149] - _ = x[SSE4A-150] - _ = x[SSSE3-151] - _ = x[STIBP-152] - _ = x[STIBP_ALWAYSON-153] - _ = x[STOSB_SHORT-154] - _ = x[SUCCOR-155] - _ = x[SVM-156] - _ = x[SVMDA-157] - _ = x[SVMFBASID-158] - _ = x[SVML-159] - _ = x[SVMNP-160] - _ = x[SVMPF-161] - _ = x[SVMPFT-162] - _ = x[SYSCALL-163] - _ = x[SYSEE-164] - _ = x[TBM-165] - _ = x[TDX_GUEST-166] - _ = x[TLB_FLUSH_NESTED-167] - _ = x[TME-168] - _ = x[TOPEXT-169] - _ = x[TSCRATEMSR-170] - _ = x[TSXLDTRK-171] - _ = x[VAES-172] - _ = x[VMCBCLEAN-173] - _ = x[VMPL-174] - _ = x[VMSA_REGPROT-175] - _ = x[VMX-176] - _ = x[VPCLMULQDQ-177] - _ = x[VTE-178] - _ = x[WAITPKG-179] - _ = x[WBNOINVD-180] - _ = x[WRMSRNS-181] - _ = x[X87-182] - _ = x[XGETBV1-183] - _ = x[XOP-184] - _ = x[XSAVE-185] - _ = x[XSAVEC-186] - _ = x[XSAVEOPT-187] - _ = x[XSAVES-188] - _ = x[AESARM-189] - _ = x[ARMCPUID-190] - _ = x[ASIMD-191] - _ = x[ASIMDDP-192] - _ = x[ASIMDHP-193] - _ = x[ASIMDRDM-194] - _ = x[ATOMICS-195] - _ = x[CRC32-196] - _ = x[DCPOP-197] - _ = x[EVTSTRM-198] - _ = x[FCMA-199] - _ = x[FP-200] - _ = x[FPHP-201] - _ = x[GPA-202] - _ = x[JSCVT-203] - _ = x[LRCPC-204] - _ = x[PMULL-205] - _ = x[SHA1-206] - _ = x[SHA2-207] - _ = x[SHA3-208] - _ = x[SHA512-209] - _ = x[SM3-210] - _ = x[SM4-211] - _ = x[SVE-212] - _ = x[lastID-213] + _ = x[IBPB_BRTYPE-74] + _ = x[IBRS-75] + _ = x[IBRS_PREFERRED-76] + _ = x[IBRS_PROVIDES_SMP-77] + _ = x[IBS-78] + _ = x[IBSBRNTRGT-79] + _ = x[IBSFETCHSAM-80] + _ = x[IBSFFV-81] + _ = x[IBSOPCNT-82] + _ = x[IBSOPCNTEXT-83] + _ = x[IBSOPSAM-84] + _ = x[IBSRDWROPCNT-85] + _ = x[IBSRIPINVALIDCHK-86] + _ = x[IBS_FETCH_CTLX-87] + _ = x[IBS_OPDATA4-88] + _ = x[IBS_OPFUSE-89] + _ = x[IBS_PREVENTHOST-90] + _ = x[IBS_ZEN4-91] + _ = x[IDPRED_CTRL-92] + _ = x[INT_WBINVD-93] + _ = x[INVLPGB-94] + _ = x[KEYLOCKER-95] + _ = x[KEYLOCKERW-96] + _ = x[LAHF-97] + _ = x[LAM-98] + _ = x[LBRVIRT-99] + _ = x[LZCNT-100] + _ = x[MCAOVERFLOW-101] + _ = x[MCDT_NO-102] + _ = x[MCOMMIT-103] + _ = x[MD_CLEAR-104] + _ = x[MMX-105] + _ = x[MMXEXT-106] + _ = x[MOVBE-107] + _ = x[MOVDIR64B-108] + _ = x[MOVDIRI-109] + _ = x[MOVSB_ZL-110] + _ = x[MOVU-111] + _ = x[MPX-112] + _ = x[MSRIRC-113] + _ = x[MSRLIST-114] + _ = x[MSR_PAGEFLUSH-115] + _ = x[NRIPS-116] + _ = x[NX-117] + _ = x[OSXSAVE-118] + _ = x[PCONFIG-119] + _ = x[POPCNT-120] + _ = x[PPIN-121] + _ = x[PREFETCHI-122] + _ = x[PSFD-123] + _ = x[RDPRU-124] + _ = x[RDRAND-125] + _ = x[RDSEED-126] + _ = x[RDTSCP-127] + _ = x[RRSBA_CTRL-128] + _ = x[RTM-129] + _ = x[RTM_ALWAYS_ABORT-130] + _ = x[SBPB-131] + _ = x[SERIALIZE-132] + _ = x[SEV-133] + _ = x[SEV_64BIT-134] + _ = x[SEV_ALTERNATIVE-135] + _ = x[SEV_DEBUGSWAP-136] + _ = x[SEV_ES-137] + _ = x[SEV_RESTRICTED-138] + _ = x[SEV_SNP-139] + _ = x[SGX-140] + _ = x[SGXLC-141] + _ = x[SHA-142] + _ = x[SME-143] + _ = x[SME_COHERENT-144] + _ = x[SPEC_CTRL_SSBD-145] + _ = x[SRBDS_CTRL-146] + _ = x[SRSO_MSR_FIX-147] + _ = x[SRSO_NO-148] + _ = x[SRSO_USER_KERNEL_NO-149] + _ = x[SSE-150] + _ = x[SSE2-151] + _ = x[SSE3-152] + _ = x[SSE4-153] + _ = x[SSE42-154] + _ = x[SSE4A-155] + _ = x[SSSE3-156] + _ = x[STIBP-157] + _ = x[STIBP_ALWAYSON-158] + _ = x[STOSB_SHORT-159] + _ = x[SUCCOR-160] + _ = x[SVM-161] + _ = x[SVMDA-162] + _ = x[SVMFBASID-163] + _ = x[SVML-164] + _ = x[SVMNP-165] + _ = x[SVMPF-166] + _ = x[SVMPFT-167] + _ = x[SYSCALL-168] + _ = x[SYSEE-169] + _ = x[TBM-170] + _ = x[TDX_GUEST-171] + _ = x[TLB_FLUSH_NESTED-172] + _ = x[TME-173] + _ = x[TOPEXT-174] + _ = x[TSCRATEMSR-175] + _ = x[TSXLDTRK-176] + _ = x[VAES-177] + _ = x[VMCBCLEAN-178] + _ = x[VMPL-179] + _ = x[VMSA_REGPROT-180] + _ = x[VMX-181] + _ = x[VPCLMULQDQ-182] + _ = x[VTE-183] + _ = x[WAITPKG-184] + _ = x[WBNOINVD-185] + _ = x[WRMSRNS-186] + _ = x[X87-187] + _ = x[XGETBV1-188] + _ = x[XOP-189] + _ = x[XSAVE-190] + _ = x[XSAVEC-191] + _ = x[XSAVEOPT-192] + _ = x[XSAVES-193] + _ = x[AESARM-194] + _ = x[ARMCPUID-195] + _ = x[ASIMD-196] + _ = x[ASIMDDP-197] + _ = x[ASIMDHP-198] + _ = x[ASIMDRDM-199] + _ = x[ATOMICS-200] + _ = x[CRC32-201] + _ = x[DCPOP-202] + _ = x[EVTSTRM-203] + _ = x[FCMA-204] + _ = x[FP-205] + _ = x[FPHP-206] + _ = x[GPA-207] + _ = x[JSCVT-208] + _ = x[LRCPC-209] + _ = x[PMULL-210] + _ = x[SHA1-211] + _ = x[SHA2-212] + _ = x[SHA3-213] + _ = x[SHA512-214] + _ = x[SM3-215] + _ = x[SM4-216] + _ = x[SVE-217] + _ = x[lastID-218] _ = x[firstID-0] } -const _FeatureID_name = "firstIDADXAESNIAMD3DNOWAMD3DNOWEXTAMXBF16AMXFP16AMXINT8AMXTILEAPX_FAVXAVX10AVX10_128AVX10_256AVX10_512AVX2AVX512BF16AVX512BITALGAVX512BWAVX512CDAVX512DQAVX512ERAVX512FAVX512FP16AVX512IFMAAVX512PFAVX512VBMIAVX512VBMI2AVX512VLAVX512VNNIAVX512VP2INTERSECTAVX512VPOPCNTDQAVXIFMAAVXNECONVERTAVXSLOWAVXVNNIAVXVNNIINT8BHI_CTRLBMI1BMI2CETIBTCETSSCLDEMOTECLMULCLZEROCMOVCMPCCXADDCMPSB_SCADBS_SHORTCMPXCHG8CPBOOSTCPPCCX16EFER_LMSLE_UNSENQCMDERMSF16CFLUSH_L1DFMA3FMA4FP128FP256FSRMFXSRFXSROPTGFNIHLEHRESETHTTHWAHYBRID_CPUHYPERVISORIA32_ARCH_CAPIA32_CORE_CAPIBPBIBRSIBRS_PREFERREDIBRS_PROVIDES_SMPIBSIBSBRNTRGTIBSFETCHSAMIBSFFVIBSOPCNTIBSOPCNTEXTIBSOPSAMIBSRDWROPCNTIBSRIPINVALIDCHKIBS_FETCH_CTLXIBS_OPDATA4IBS_OPFUSEIBS_PREVENTHOSTIBS_ZEN4IDPRED_CTRLINT_WBINVDINVLPGBKEYLOCKERKEYLOCKERWLAHFLAMLBRVIRTLZCNTMCAOVERFLOWMCDT_NOMCOMMITMD_CLEARMMXMMXEXTMOVBEMOVDIR64BMOVDIRIMOVSB_ZLMOVUMPXMSRIRCMSRLISTMSR_PAGEFLUSHNRIPSNXOSXSAVEPCONFIGPOPCNTPPINPREFETCHIPSFDRDPRURDRANDRDSEEDRDTSCPRRSBA_CTRLRTMRTM_ALWAYS_ABORTSERIALIZESEVSEV_64BITSEV_ALTERNATIVESEV_DEBUGSWAPSEV_ESSEV_RESTRICTEDSEV_SNPSGXSGXLCSHASMESME_COHERENTSPEC_CTRL_SSBDSRBDS_CTRLSSESSE2SSE3SSE4SSE42SSE4ASSSE3STIBPSTIBP_ALWAYSONSTOSB_SHORTSUCCORSVMSVMDASVMFBASIDSVMLSVMNPSVMPFSVMPFTSYSCALLSYSEETBMTDX_GUESTTLB_FLUSH_NESTEDTMETOPEXTTSCRATEMSRTSXLDTRKVAESVMCBCLEANVMPLVMSA_REGPROTVMXVPCLMULQDQVTEWAITPKGWBNOINVDWRMSRNSX87XGETBV1XOPXSAVEXSAVECXSAVEOPTXSAVESAESARMARMCPUIDASIMDASIMDDPASIMDHPASIMDRDMATOMICSCRC32DCPOPEVTSTRMFCMAFPFPHPGPAJSCVTLRCPCPMULLSHA1SHA2SHA3SHA512SM3SM4SVElastID" +const _FeatureID_name = "firstIDADXAESNIAMD3DNOWAMD3DNOWEXTAMXBF16AMXFP16AMXINT8AMXTILEAPX_FAVXAVX10AVX10_128AVX10_256AVX10_512AVX2AVX512BF16AVX512BITALGAVX512BWAVX512CDAVX512DQAVX512ERAVX512FAVX512FP16AVX512IFMAAVX512PFAVX512VBMIAVX512VBMI2AVX512VLAVX512VNNIAVX512VP2INTERSECTAVX512VPOPCNTDQAVXIFMAAVXNECONVERTAVXSLOWAVXVNNIAVXVNNIINT8BHI_CTRLBMI1BMI2CETIBTCETSSCLDEMOTECLMULCLZEROCMOVCMPCCXADDCMPSB_SCADBS_SHORTCMPXCHG8CPBOOSTCPPCCX16EFER_LMSLE_UNSENQCMDERMSF16CFLUSH_L1DFMA3FMA4FP128FP256FSRMFXSRFXSROPTGFNIHLEHRESETHTTHWAHYBRID_CPUHYPERVISORIA32_ARCH_CAPIA32_CORE_CAPIBPBIBPB_BRTYPEIBRSIBRS_PREFERREDIBRS_PROVIDES_SMPIBSIBSBRNTRGTIBSFETCHSAMIBSFFVIBSOPCNTIBSOPCNTEXTIBSOPSAMIBSRDWROPCNTIBSRIPINVALIDCHKIBS_FETCH_CTLXIBS_OPDATA4IBS_OPFUSEIBS_PREVENTHOSTIBS_ZEN4IDPRED_CTRLINT_WBINVDINVLPGBKEYLOCKERKEYLOCKERWLAHFLAMLBRVIRTLZCNTMCAOVERFLOWMCDT_NOMCOMMITMD_CLEARMMXMMXEXTMOVBEMOVDIR64BMOVDIRIMOVSB_ZLMOVUMPXMSRIRCMSRLISTMSR_PAGEFLUSHNRIPSNXOSXSAVEPCONFIGPOPCNTPPINPREFETCHIPSFDRDPRURDRANDRDSEEDRDTSCPRRSBA_CTRLRTMRTM_ALWAYS_ABORTSBPBSERIALIZESEVSEV_64BITSEV_ALTERNATIVESEV_DEBUGSWAPSEV_ESSEV_RESTRICTEDSEV_SNPSGXSGXLCSHASMESME_COHERENTSPEC_CTRL_SSBDSRBDS_CTRLSRSO_MSR_FIXSRSO_NOSRSO_USER_KERNEL_NOSSESSE2SSE3SSE4SSE42SSE4ASSSE3STIBPSTIBP_ALWAYSONSTOSB_SHORTSUCCORSVMSVMDASVMFBASIDSVMLSVMNPSVMPFSVMPFTSYSCALLSYSEETBMTDX_GUESTTLB_FLUSH_NESTEDTMETOPEXTTSCRATEMSRTSXLDTRKVAESVMCBCLEANVMPLVMSA_REGPROTVMXVPCLMULQDQVTEWAITPKGWBNOINVDWRMSRNSX87XGETBV1XOPXSAVEXSAVECXSAVEOPTXSAVESAESARMARMCPUIDASIMDASIMDDPASIMDHPASIMDRDMATOMICSCRC32DCPOPEVTSTRMFCMAFPFPHPGPAJSCVTLRCPCPMULLSHA1SHA2SHA3SHA512SM3SM4SVElastID" -var _FeatureID_index = [...]uint16{0, 7, 10, 15, 23, 34, 41, 48, 55, 62, 67, 70, 75, 84, 93, 102, 106, 116, 128, 136, 144, 152, 160, 167, 177, 187, 195, 205, 216, 224, 234, 252, 267, 274, 286, 293, 300, 311, 319, 323, 327, 333, 338, 346, 351, 357, 361, 370, 388, 396, 403, 407, 411, 425, 431, 435, 439, 448, 452, 456, 461, 466, 470, 474, 481, 485, 488, 494, 497, 500, 510, 520, 533, 546, 550, 554, 568, 585, 588, 598, 609, 615, 623, 634, 642, 654, 670, 684, 695, 705, 720, 728, 739, 749, 756, 765, 775, 779, 782, 789, 794, 805, 812, 819, 827, 830, 836, 841, 850, 857, 865, 869, 872, 878, 885, 898, 903, 905, 912, 919, 925, 929, 938, 942, 947, 953, 959, 965, 975, 978, 994, 1003, 1006, 1015, 1030, 1043, 1049, 1063, 1070, 1073, 1078, 1081, 1084, 1096, 1110, 1120, 1123, 1127, 1131, 1135, 1140, 1145, 1150, 1155, 1169, 1180, 1186, 1189, 1194, 1203, 1207, 1212, 1217, 1223, 1230, 1235, 1238, 1247, 1263, 1266, 1272, 1282, 1290, 1294, 1303, 1307, 1319, 1322, 1332, 1335, 1342, 1350, 1357, 1360, 1367, 1370, 1375, 1381, 1389, 1395, 1401, 1409, 1414, 1421, 1428, 1436, 1443, 1448, 1453, 1460, 1464, 1466, 1470, 1473, 1478, 1483, 1488, 1492, 1496, 1500, 1506, 1509, 1512, 1515, 1521} +var _FeatureID_index = [...]uint16{0, 7, 10, 15, 23, 34, 41, 48, 55, 62, 67, 70, 75, 84, 93, 102, 106, 116, 128, 136, 144, 152, 160, 167, 177, 187, 195, 205, 216, 224, 234, 252, 267, 274, 286, 293, 300, 311, 319, 323, 327, 333, 338, 346, 351, 357, 361, 370, 388, 396, 403, 407, 411, 425, 431, 435, 439, 448, 452, 456, 461, 466, 470, 474, 481, 485, 488, 494, 497, 500, 510, 520, 533, 546, 550, 561, 565, 579, 596, 599, 609, 620, 626, 634, 645, 653, 665, 681, 695, 706, 716, 731, 739, 750, 760, 767, 776, 786, 790, 793, 800, 805, 816, 823, 830, 838, 841, 847, 852, 861, 868, 876, 880, 883, 889, 896, 909, 914, 916, 923, 930, 936, 940, 949, 953, 958, 964, 970, 976, 986, 989, 1005, 1009, 1018, 1021, 1030, 1045, 1058, 1064, 1078, 1085, 1088, 1093, 1096, 1099, 1111, 1125, 1135, 1147, 1154, 1173, 1176, 1180, 1184, 1188, 1193, 1198, 1203, 1208, 1222, 1233, 1239, 1242, 1247, 1256, 1260, 1265, 1270, 1276, 1283, 1288, 1291, 1300, 1316, 1319, 1325, 1335, 1343, 1347, 1356, 1360, 1372, 1375, 1385, 1388, 1395, 1403, 1410, 1413, 1420, 1423, 1428, 1434, 1442, 1448, 1454, 1462, 1467, 1474, 1481, 1489, 1496, 1501, 1506, 1513, 1517, 1519, 1523, 1526, 1531, 1536, 1541, 1545, 1549, 1553, 1559, 1562, 1565, 1568, 1574} func (i FeatureID) String() string { if i < 0 || i >= FeatureID(len(_FeatureID_index)-1) { diff --git a/vendor/github.com/leodido/go-urn/README.md b/vendor/github.com/leodido/go-urn/README.md index 5430e630e..619475bfb 100644 --- a/vendor/github.com/leodido/go-urn/README.md +++ b/vendor/github.com/leodido/go-urn/README.md @@ -2,12 +2,14 @@ **A parser for URNs**. -> As seen on [RFC 2141](https://tools.ietf.org/html/rfc2141#ref-1). +> As seen on [RFC 2141](https://datatracker.ietf.org/doc/html/rfc2141), [RFC 7643](https://datatracker.ietf.org/doc/html/rfc7643#section-10), and on [RFC 8141](https://datatracker.ietf.org/doc/html/rfc8141). [API documentation](https://godoc.org/github.com/leodido/go-urn). Starting with version 1.3 this library also supports [RFC 7643 SCIM URNs](https://datatracker.ietf.org/doc/html/rfc7643#section-10). +Starting with version 1.4 this library also supports [RFC 8141 URNs (2017)](https://datatracker.ietf.org/doc/html/rfc8141). + ## Installation ``` @@ -17,17 +19,17 @@ go get github.com/leodido/go-urn ## Features 1. RFC 2141 URNs parsing (default) -2. RFC 7643 SCIM URNs parsing -3. Fallback mode: first try to parse the input as a RFC 7643 SCIM URN, then fallback to RFC 2141 URN generic format. -4. Normalization as per RFC 2141 -4. Lexical equivalence as per RFC 2141 -5. Precise, fine-grained errors +2. RFC 8141 URNs parsing (supersedes RFC 2141) +3. RFC 7643 SCIM URNs parsing +4. Normalization as per RFCs +5. Lexical equivalence as per RFCs +6. Precise, fine-grained errors ## Performances This implementation results to be really fast. -Usually below ½ microsecond on my machine[1](#mymachine). +Usually below 400 ns on my machine[1](#mymachine). Notice it also performs, while parsing: @@ -35,26 +37,26 @@ Notice it also performs, while parsing: 2. specific-string normalization ``` -Parse/ok/00/urn:a:b______________________________________/-10 71113568 84.88 ns/op 211 B/op 3 allocs/op -Parse/ok/01/URN:foo:a123,456_____________________________/-10 49303754 126.1 ns/op 232 B/op 6 allocs/op -Parse/ok/02/urn:foo:a123%2c456___________________________/-10 46723497 122.1 ns/op 240 B/op 6 allocs/op -Parse/ok/03/urn:ietf:params:scim:schemas:core:2.0:User___/-10 34231863 175.1 ns/op 312 B/op 6 allocs/op -Parse/ok/04/urn:ietf:params:scim:schemas:extension:enterp/-10 25406808 233.6 ns/op 344 B/op 6 allocs/op -Parse/ok/05/urn:ietf:params:scim:schemas:extension:enterp/-10 22353264 265.6 ns/op 376 B/op 6 allocs/op -Parse/ok/06/urn:burnout:nss______________________________/-10 52932087 112.9 ns/op 224 B/op 6 allocs/op -Parse/ok/07/urn:abcdefghilmnopqrstuvzabcdefghilm:x_______/-10 45005554 134.3 ns/op 243 B/op 4 allocs/op -Parse/ok/08/urn:urnurnurn:urn____________________________/-10 46788519 124.7 ns/op 229 B/op 6 allocs/op -Parse/ok/09/urn:ciao:@!=%2c(xyz)+a,b.*@g=$_'_____________/-10 39037539 153.8 ns/op 264 B/op 6 allocs/op -Parse/ok/10/URN:x:abc%1dz%2f%3az_________________________/-10 45692990 121.4 ns/op 243 B/op 5 allocs/op -Parse/no/11/URN:-xxx:x___________________________________/-10 26935477 221.1 ns/op 355 B/op 5 allocs/op -Parse/no/12/urn::colon:nss_______________________________/-10 25088925 232.4 ns/op 355 B/op 5 allocs/op -Parse/no/13/urn:abcdefghilmnopqrstuvzabcdefghilmn:specifi/-10 21206989 295.1 ns/op 355 B/op 5 allocs/op -Parse/no/14/URN:a!?:x____________________________________/-10 26705482 223.5 ns/op 355 B/op 5 allocs/op -Parse/no/15/urn:urn:NSS__________________________________/-10 31609467 202.1 ns/op 307 B/op 5 allocs/op -Parse/no/16/urn:white_space:NSS__________________________/-10 26144792 232.2 ns/op 355 B/op 5 allocs/op -Parse/no/17/urn:concat:no_spaces_________________________/-10 23717426 251.1 ns/op 346 B/op 6 allocs/op -Parse/no/18/urn:a:/______________________________________/-10 27442077 221.9 ns/op 339 B/op 5 allocs/op -Parse/no/19/urn:UrN:NSS__________________________________/-10 32096002 187.4 ns/op 307 B/op 5 allocs/op +ok/00/urn:a:b______________________________________/-10 51372006 109.0 ns/op 275 B/op 3 allocs/op +ok/01/URN:foo:a123,456_____________________________/-10 36024072 160.8 ns/op 296 B/op 6 allocs/op +ok/02/urn:foo:a123%2C456___________________________/-10 31901007 188.4 ns/op 320 B/op 7 allocs/op +ok/03/urn:ietf:params:scim:schemas:core:2.0:User___/-10 22736756 266.6 ns/op 376 B/op 6 allocs/op +ok/04/urn:ietf:params:scim:schemas:extension:enterp/-10 18291859 335.2 ns/op 408 B/op 6 allocs/op +ok/05/urn:ietf:params:scim:schemas:extension:enterp/-10 15283087 379.4 ns/op 440 B/op 6 allocs/op +ok/06/urn:burnout:nss______________________________/-10 39407593 155.1 ns/op 288 B/op 6 allocs/op +ok/07/urn:abcdefghilmnopqrstuvzabcdefghilm:x_______/-10 27832718 211.4 ns/op 307 B/op 4 allocs/op +ok/08/urn:urnurnurn:urn____________________________/-10 33269596 168.1 ns/op 293 B/op 6 allocs/op +ok/09/urn:ciao:!!*_________________________________/-10 41100675 148.8 ns/op 288 B/op 6 allocs/op +ok/10/urn:ciao:=@__________________________________/-10 37214253 149.7 ns/op 284 B/op 6 allocs/op +ok/11/urn:ciao:@!=%2C(xyz)+a,b.*@g=$_'_____________/-10 26534240 229.8 ns/op 336 B/op 7 allocs/op +ok/12/URN:x:abc%1Dz%2F%3az_________________________/-10 28166396 211.8 ns/op 336 B/op 7 allocs/op +no/13/URN:---xxx:x_________________________________/-10 23635159 255.6 ns/op 419 B/op 5 allocs/op +no/14/urn::colon:nss_______________________________/-10 23594779 258.4 ns/op 419 B/op 5 allocs/op +no/15/URN:@,:x_____________________________________/-10 23742535 261.5 ns/op 419 B/op 5 allocs/op +no/16/URN:URN:NSS__________________________________/-10 27432714 223.3 ns/op 371 B/op 5 allocs/op +no/17/urn:UrN:NSS__________________________________/-10 26922117 224.9 ns/op 371 B/op 5 allocs/op +no/18/urn:a:%______________________________________/-10 24926733 224.6 ns/op 371 B/op 5 allocs/op +no/19/urn:urn:NSS__________________________________/-10 27652641 220.7 ns/op 371 B/op 5 allocs/op ``` * [1]: Apple M1 Pro diff --git a/vendor/github.com/leodido/go-urn/kind.go b/vendor/github.com/leodido/go-urn/kind.go index 5e72f804c..f5e140f0a 100644 --- a/vendor/github.com/leodido/go-urn/kind.go +++ b/vendor/github.com/leodido/go-urn/kind.go @@ -6,4 +6,5 @@ const ( NONE Kind = iota RFC2141 RFC7643 + RFC8141 ) diff --git a/vendor/github.com/leodido/go-urn/machine.go b/vendor/github.com/leodido/go-urn/machine.go index 2bbb7fe5d..aec1ba69c 100644 --- a/vendor/github.com/leodido/go-urn/machine.go +++ b/vendor/github.com/leodido/go-urn/machine.go @@ -11,23 +11,82 @@ var ( errIdentifier = "expecting the identifier to be string (1..31 alnum chars, also containing dashes but not at its beginning) [col %d]" errSpecificString = "expecting the specific string to be a string containing alnum, hex, or others ([()+,-.:=@;$_!*']) chars [col %d]" errNoUrnWithinID = "expecting the identifier to not contain the \"urn\" reserved string [col %d]" - errHex = "expecting the specific string hex chars to be well-formed (%%alnum{2}) [col %d]" - errParse = "parsing error [col %d]" + errHex = "expecting the percent encoded chars to be well-formed (%%alnum{2}) [col %d]" errSCIMNamespace = "expecing the SCIM namespace identifier (ietf:params:scim) [col %d]" errSCIMType = "expecting a correct SCIM type (schemas, api, param) [col %d]" errSCIMName = "expecting one or more alnum char in the SCIM name part [col %d]" errSCIMOther = "expecting a well-formed other SCIM part [col %d]" errSCIMOtherIncomplete = "expecting a not empty SCIM other part after colon [col %d]" + err8141InformalID = "informal URN namespace must be in the form urn-[1-9][0-9] [col %d]" + err8141SpecificString = "expecting the specific string to contain alnum, hex, or others ([~&()+,-.:=@;$_!*'] or [/?] not in first position) chars [col %d]" + err8141Identifier = "expecting the indentifier to be a string with (length 2 to 32 chars) containing alnum (or dashes) not starting or ending with a dash [col %d]" + err8141RComponentStart = "expecting only one r-component (starting with the ?+ sequence) [col %d]" + err8141QComponentStart = "expecting only one q-component (starting with the ?= sequence) [col %d]" + err8141MalformedRComp = "expecting a non-empty r-component containing alnum, hex, or others ([~&()+,-.:=@;$_!*'] or [/?] but not at its beginning) [col %d]" + err8141MalformedQComp = "expecting a non-empty q-component containing alnum, hex, or others ([~&()+,-.:=@;$_!*'] or [/?] but not at its beginning) [col %d]" ) +var _toStateActions []byte = []byte{ + 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, 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, 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, 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, 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, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 33, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, +} + +var _eofActions []byte = []byte{ + 0, 1, 1, 1, 1, 4, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 8, 9, + 9, 4, 4, 11, 1, 1, 1, 1, + 12, 12, 12, 12, 12, 12, 12, 12, + 12, 12, 12, 12, 12, 12, 12, 12, + 12, 14, 14, 14, 14, 16, 18, 20, + 20, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 1, 1, 1, 1, 21, + 22, 22, 22, 22, 22, 22, 22, 22, + 22, 22, 22, 22, 22, 22, 22, 22, + 22, 22, 22, 22, 22, 22, 22, 22, + 22, 22, 22, 22, 22, 22, 22, 22, + 23, 24, 24, 25, 25, 0, 26, 28, + 28, 29, 29, 30, 30, 26, 26, 31, + 31, 22, 22, 22, 22, 22, 22, 22, + 22, 22, 22, 22, 22, 22, 22, 22, + 22, 22, 22, 22, 22, 22, 22, 22, + 22, 22, 22, 22, 22, 22, 22, 21, + 21, 22, 22, 22, 34, 34, 35, 37, + 37, 38, 40, 41, 41, 38, 42, 42, + 42, 44, 42, 48, 48, 48, 50, 44, + 50, 0, +} const start int = 1 -const firstFinal int = 87 +const firstFinal int = 172 -const enUrn int = 5 -const enUrnOnly int = 44 -const enScim int = 48 -const enScimOnly int = 83 -const enFail int = 95 +const enScimOnly int = 44 +const enRfc8141Only int = 83 +const enFail int = 193 const enMain int = 1 // Machine is the interface representing the FSM @@ -42,7 +101,7 @@ type machine struct { cs int p, pe, eof, pb int err error - tolower []int + startParsingAt int parsingMode ParsingMode parsingModeSet bool } @@ -83,2655 +142,4564 @@ func (m *machine) Parse(input []byte) (*URN, error) { m.pe = len(input) m.eof = len(input) m.err = nil - m.tolower = []int{} - output := &URN{} - - switch m.parsingMode { - case RFC2141Only: - m.cs = enUrnOnly - break - - case RFC7643Only: - m.cs = enScimOnly - break - - case All: - fallthrough - default: - { - m.cs = start - } - break + m.cs = m.startParsingAt + output := &URN{ + tolower: []int{}, } { if (m.p) == (m.pe) { goto _testEof } + if m.cs == 0 { + goto _out + } + _resume: switch m.cs { case 1: - goto stCase1 + switch (m.data)[(m.p)] { + case 85: + goto tr1 + case 117: + goto tr1 + } + goto tr0 case 0: - goto stCase0 + goto _out case 2: - goto stCase2 + switch (m.data)[(m.p)] { + case 82: + goto tr2 + case 114: + goto tr2 + } + goto tr0 case 3: - goto stCase3 + switch (m.data)[(m.p)] { + case 78: + goto tr3 + case 110: + goto tr3 + } + goto tr0 case 4: - goto stCase4 - case 87: - goto stCase87 + if (m.data)[(m.p)] == 58 { + goto tr4 + } + goto tr0 case 5: - goto stCase5 + switch (m.data)[(m.p)] { + case 85: + goto tr7 + case 117: + goto tr7 + } + switch { + case (m.data)[(m.p)] < 65: + if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { + goto tr6 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr6 + } + default: + goto tr6 + } + goto tr5 case 6: - goto stCase6 + switch (m.data)[(m.p)] { + case 45: + goto tr9 + case 58: + goto tr10 + } + switch { + case (m.data)[(m.p)] < 65: + if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { + goto tr9 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr9 + } + default: + goto tr9 + } + goto tr8 case 7: - goto stCase7 + switch (m.data)[(m.p)] { + case 45: + goto tr11 + case 58: + goto tr10 + } + switch { + case (m.data)[(m.p)] < 65: + if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { + goto tr11 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr11 + } + default: + goto tr11 + } + goto tr8 case 8: - goto stCase8 + switch (m.data)[(m.p)] { + case 45: + goto tr12 + case 58: + goto tr10 + } + switch { + case (m.data)[(m.p)] < 65: + if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { + goto tr12 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr12 + } + default: + goto tr12 + } + goto tr8 case 9: - goto stCase9 + switch (m.data)[(m.p)] { + case 45: + goto tr13 + case 58: + goto tr10 + } + switch { + case (m.data)[(m.p)] < 65: + if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { + goto tr13 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr13 + } + default: + goto tr13 + } + goto tr8 case 10: - goto stCase10 + switch (m.data)[(m.p)] { + case 45: + goto tr14 + case 58: + goto tr10 + } + switch { + case (m.data)[(m.p)] < 65: + if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { + goto tr14 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr14 + } + default: + goto tr14 + } + goto tr8 case 11: - goto stCase11 + switch (m.data)[(m.p)] { + case 45: + goto tr15 + case 58: + goto tr10 + } + switch { + case (m.data)[(m.p)] < 65: + if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { + goto tr15 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr15 + } + default: + goto tr15 + } + goto tr8 case 12: - goto stCase12 + switch (m.data)[(m.p)] { + case 45: + goto tr16 + case 58: + goto tr10 + } + switch { + case (m.data)[(m.p)] < 65: + if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { + goto tr16 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr16 + } + default: + goto tr16 + } + goto tr8 case 13: - goto stCase13 + switch (m.data)[(m.p)] { + case 45: + goto tr17 + case 58: + goto tr10 + } + switch { + case (m.data)[(m.p)] < 65: + if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { + goto tr17 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr17 + } + default: + goto tr17 + } + goto tr8 case 14: - goto stCase14 + switch (m.data)[(m.p)] { + case 45: + goto tr18 + case 58: + goto tr10 + } + switch { + case (m.data)[(m.p)] < 65: + if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { + goto tr18 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr18 + } + default: + goto tr18 + } + goto tr8 case 15: - goto stCase15 + switch (m.data)[(m.p)] { + case 45: + goto tr19 + case 58: + goto tr10 + } + switch { + case (m.data)[(m.p)] < 65: + if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { + goto tr19 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr19 + } + default: + goto tr19 + } + goto tr8 case 16: - goto stCase16 + switch (m.data)[(m.p)] { + case 45: + goto tr20 + case 58: + goto tr10 + } + switch { + case (m.data)[(m.p)] < 65: + if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { + goto tr20 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr20 + } + default: + goto tr20 + } + goto tr8 case 17: - goto stCase17 + switch (m.data)[(m.p)] { + case 45: + goto tr21 + case 58: + goto tr10 + } + switch { + case (m.data)[(m.p)] < 65: + if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { + goto tr21 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr21 + } + default: + goto tr21 + } + goto tr8 case 18: - goto stCase18 + switch (m.data)[(m.p)] { + case 45: + goto tr22 + case 58: + goto tr10 + } + switch { + case (m.data)[(m.p)] < 65: + if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { + goto tr22 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr22 + } + default: + goto tr22 + } + goto tr8 case 19: - goto stCase19 + switch (m.data)[(m.p)] { + case 45: + goto tr23 + case 58: + goto tr10 + } + switch { + case (m.data)[(m.p)] < 65: + if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { + goto tr23 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr23 + } + default: + goto tr23 + } + goto tr8 case 20: - goto stCase20 + switch (m.data)[(m.p)] { + case 45: + goto tr24 + case 58: + goto tr10 + } + switch { + case (m.data)[(m.p)] < 65: + if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { + goto tr24 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr24 + } + default: + goto tr24 + } + goto tr8 case 21: - goto stCase21 + switch (m.data)[(m.p)] { + case 45: + goto tr25 + case 58: + goto tr10 + } + switch { + case (m.data)[(m.p)] < 65: + if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { + goto tr25 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr25 + } + default: + goto tr25 + } + goto tr8 case 22: - goto stCase22 + switch (m.data)[(m.p)] { + case 45: + goto tr26 + case 58: + goto tr10 + } + switch { + case (m.data)[(m.p)] < 65: + if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { + goto tr26 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr26 + } + default: + goto tr26 + } + goto tr8 case 23: - goto stCase23 + switch (m.data)[(m.p)] { + case 45: + goto tr27 + case 58: + goto tr10 + } + switch { + case (m.data)[(m.p)] < 65: + if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { + goto tr27 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr27 + } + default: + goto tr27 + } + goto tr8 case 24: - goto stCase24 + switch (m.data)[(m.p)] { + case 45: + goto tr28 + case 58: + goto tr10 + } + switch { + case (m.data)[(m.p)] < 65: + if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { + goto tr28 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr28 + } + default: + goto tr28 + } + goto tr8 case 25: - goto stCase25 + switch (m.data)[(m.p)] { + case 45: + goto tr29 + case 58: + goto tr10 + } + switch { + case (m.data)[(m.p)] < 65: + if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { + goto tr29 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr29 + } + default: + goto tr29 + } + goto tr8 case 26: - goto stCase26 + switch (m.data)[(m.p)] { + case 45: + goto tr30 + case 58: + goto tr10 + } + switch { + case (m.data)[(m.p)] < 65: + if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { + goto tr30 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr30 + } + default: + goto tr30 + } + goto tr8 case 27: - goto stCase27 + switch (m.data)[(m.p)] { + case 45: + goto tr31 + case 58: + goto tr10 + } + switch { + case (m.data)[(m.p)] < 65: + if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { + goto tr31 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr31 + } + default: + goto tr31 + } + goto tr8 case 28: - goto stCase28 + switch (m.data)[(m.p)] { + case 45: + goto tr32 + case 58: + goto tr10 + } + switch { + case (m.data)[(m.p)] < 65: + if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { + goto tr32 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr32 + } + default: + goto tr32 + } + goto tr8 case 29: - goto stCase29 + switch (m.data)[(m.p)] { + case 45: + goto tr33 + case 58: + goto tr10 + } + switch { + case (m.data)[(m.p)] < 65: + if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { + goto tr33 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr33 + } + default: + goto tr33 + } + goto tr8 case 30: - goto stCase30 + switch (m.data)[(m.p)] { + case 45: + goto tr34 + case 58: + goto tr10 + } + switch { + case (m.data)[(m.p)] < 65: + if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { + goto tr34 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr34 + } + default: + goto tr34 + } + goto tr8 case 31: - goto stCase31 + switch (m.data)[(m.p)] { + case 45: + goto tr35 + case 58: + goto tr10 + } + switch { + case (m.data)[(m.p)] < 65: + if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { + goto tr35 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr35 + } + default: + goto tr35 + } + goto tr8 case 32: - goto stCase32 + switch (m.data)[(m.p)] { + case 45: + goto tr36 + case 58: + goto tr10 + } + switch { + case (m.data)[(m.p)] < 65: + if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { + goto tr36 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr36 + } + default: + goto tr36 + } + goto tr8 case 33: - goto stCase33 + switch (m.data)[(m.p)] { + case 45: + goto tr37 + case 58: + goto tr10 + } + switch { + case (m.data)[(m.p)] < 65: + if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { + goto tr37 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr37 + } + default: + goto tr37 + } + goto tr8 case 34: - goto stCase34 + switch (m.data)[(m.p)] { + case 45: + goto tr38 + case 58: + goto tr10 + } + switch { + case (m.data)[(m.p)] < 65: + if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { + goto tr38 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr38 + } + default: + goto tr38 + } + goto tr8 case 35: - goto stCase35 + switch (m.data)[(m.p)] { + case 45: + goto tr39 + case 58: + goto tr10 + } + switch { + case (m.data)[(m.p)] < 65: + if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { + goto tr39 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr39 + } + default: + goto tr39 + } + goto tr8 case 36: - goto stCase36 + switch (m.data)[(m.p)] { + case 45: + goto tr40 + case 58: + goto tr10 + } + switch { + case (m.data)[(m.p)] < 65: + if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { + goto tr40 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr40 + } + default: + goto tr40 + } + goto tr8 case 37: - goto stCase37 + if (m.data)[(m.p)] == 58 { + goto tr10 + } + goto tr8 case 38: - goto stCase38 - case 88: - goto stCase88 - case 39: - goto stCase39 - case 40: - goto stCase40 - case 89: - goto stCase89 - case 41: - goto stCase41 - case 42: - goto stCase42 - case 43: - goto stCase43 - case 44: - goto stCase44 - case 45: - goto stCase45 - case 46: - goto stCase46 - case 47: - goto stCase47 - case 90: - goto stCase90 - case 48: - goto stCase48 + switch (m.data)[(m.p)] { + case 33: + goto tr42 + case 36: + goto tr42 + case 37: + goto tr43 + case 61: + goto tr42 + case 95: + goto tr42 + } + switch { + case (m.data)[(m.p)] < 48: + if 39 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 46 { + goto tr42 + } + case (m.data)[(m.p)] > 59: + switch { + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr42 + } + case (m.data)[(m.p)] >= 64: + goto tr42 + } + default: + goto tr42 + } + goto tr41 + case 172: + switch (m.data)[(m.p)] { + case 33: + goto tr212 + case 36: + goto tr212 + case 37: + goto tr213 + case 61: + goto tr212 + case 95: + goto tr212 + } + switch { + case (m.data)[(m.p)] < 48: + if 39 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 46 { + goto tr212 + } + case (m.data)[(m.p)] > 59: + switch { + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr212 + } + case (m.data)[(m.p)] >= 64: + goto tr212 + } + default: + goto tr212 + } + goto tr41 + case 39: + switch { + case (m.data)[(m.p)] < 65: + if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { + goto tr45 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr45 + } + default: + goto tr46 + } + goto tr44 + case 40: + switch { + case (m.data)[(m.p)] < 65: + if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { + goto tr47 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr47 + } + default: + goto tr48 + } + goto tr44 + case 173: + switch (m.data)[(m.p)] { + case 33: + goto tr212 + case 36: + goto tr212 + case 37: + goto tr213 + case 61: + goto tr212 + case 95: + goto tr212 + } + switch { + case (m.data)[(m.p)] < 48: + if 39 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 46 { + goto tr212 + } + case (m.data)[(m.p)] > 59: + switch { + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr212 + } + case (m.data)[(m.p)] >= 64: + goto tr212 + } + default: + goto tr212 + } + goto tr44 + case 41: + switch (m.data)[(m.p)] { + case 45: + goto tr9 + case 58: + goto tr10 + case 82: + goto tr49 + case 114: + goto tr49 + } + switch { + case (m.data)[(m.p)] < 65: + if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { + goto tr9 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr9 + } + default: + goto tr9 + } + goto tr5 + case 42: + switch (m.data)[(m.p)] { + case 45: + goto tr11 + case 58: + goto tr10 + case 78: + goto tr50 + case 110: + goto tr50 + } + switch { + case (m.data)[(m.p)] < 65: + if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { + goto tr11 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr11 + } + default: + goto tr11 + } + goto tr5 + case 43: + if (m.data)[(m.p)] == 45 { + goto tr12 + } + switch { + case (m.data)[(m.p)] < 65: + if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { + goto tr12 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr12 + } + default: + goto tr12 + } + goto tr51 + case 44: + switch (m.data)[(m.p)] { + case 85: + goto tr52 + case 117: + goto tr52 + } + goto tr0 + case 45: + switch (m.data)[(m.p)] { + case 82: + goto tr53 + case 114: + goto tr53 + } + goto tr0 + case 46: + switch (m.data)[(m.p)] { + case 78: + goto tr54 + case 110: + goto tr54 + } + goto tr0 + case 47: + if (m.data)[(m.p)] == 58 { + goto tr55 + } + goto tr0 + case 48: + if (m.data)[(m.p)] == 105 { + goto tr57 + } + goto tr56 case 49: - goto stCase49 + if (m.data)[(m.p)] == 101 { + goto tr58 + } + goto tr56 case 50: - goto stCase50 + if (m.data)[(m.p)] == 116 { + goto tr59 + } + goto tr56 case 51: - goto stCase51 + if (m.data)[(m.p)] == 102 { + goto tr60 + } + goto tr56 case 52: - goto stCase52 + if (m.data)[(m.p)] == 58 { + goto tr61 + } + goto tr56 case 53: - goto stCase53 + if (m.data)[(m.p)] == 112 { + goto tr62 + } + goto tr56 case 54: - goto stCase54 + if (m.data)[(m.p)] == 97 { + goto tr63 + } + goto tr56 case 55: - goto stCase55 + if (m.data)[(m.p)] == 114 { + goto tr64 + } + goto tr56 case 56: - goto stCase56 + if (m.data)[(m.p)] == 97 { + goto tr65 + } + goto tr56 case 57: - goto stCase57 + if (m.data)[(m.p)] == 109 { + goto tr66 + } + goto tr56 case 58: - goto stCase58 + if (m.data)[(m.p)] == 115 { + goto tr67 + } + goto tr56 case 59: - goto stCase59 + if (m.data)[(m.p)] == 58 { + goto tr68 + } + goto tr56 case 60: - goto stCase60 + if (m.data)[(m.p)] == 115 { + goto tr69 + } + goto tr56 case 61: - goto stCase61 + if (m.data)[(m.p)] == 99 { + goto tr70 + } + goto tr56 case 62: - goto stCase62 + if (m.data)[(m.p)] == 105 { + goto tr71 + } + goto tr56 case 63: - goto stCase63 + if (m.data)[(m.p)] == 109 { + goto tr72 + } + goto tr56 case 64: - goto stCase64 + if (m.data)[(m.p)] == 58 { + goto tr73 + } + goto tr56 case 65: - goto stCase65 + switch (m.data)[(m.p)] { + case 97: + goto tr75 + case 112: + goto tr76 + case 115: + goto tr77 + } + goto tr74 case 66: - goto stCase66 + if (m.data)[(m.p)] == 112 { + goto tr78 + } + goto tr74 case 67: - goto stCase67 + if (m.data)[(m.p)] == 105 { + goto tr79 + } + goto tr74 case 68: - goto stCase68 + if (m.data)[(m.p)] == 58 { + goto tr80 + } + goto tr74 case 69: - goto stCase69 - case 91: - goto stCase91 + switch { + case (m.data)[(m.p)] < 65: + if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { + goto tr82 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr82 + } + default: + goto tr82 + } + goto tr81 + case 174: + if (m.data)[(m.p)] == 58 { + goto tr215 + } + switch { + case (m.data)[(m.p)] < 65: + if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { + goto tr214 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr214 + } + default: + goto tr214 + } + goto tr81 case 70: - goto stCase70 - case 92: - goto stCase92 + switch (m.data)[(m.p)] { + case 33: + goto tr84 + case 36: + goto tr84 + case 37: + goto tr85 + case 61: + goto tr84 + case 95: + goto tr84 + } + switch { + case (m.data)[(m.p)] < 48: + if 39 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 46 { + goto tr84 + } + case (m.data)[(m.p)] > 59: + switch { + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr84 + } + case (m.data)[(m.p)] >= 64: + goto tr84 + } + default: + goto tr84 + } + goto tr83 + case 175: + switch (m.data)[(m.p)] { + case 33: + goto tr216 + case 36: + goto tr216 + case 37: + goto tr217 + case 61: + goto tr216 + case 95: + goto tr216 + } + switch { + case (m.data)[(m.p)] < 48: + if 39 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 46 { + goto tr216 + } + case (m.data)[(m.p)] > 59: + switch { + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr216 + } + case (m.data)[(m.p)] >= 64: + goto tr216 + } + default: + goto tr216 + } + goto tr83 case 71: - goto stCase71 + switch { + case (m.data)[(m.p)] < 65: + if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { + goto tr87 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr87 + } + default: + goto tr88 + } + goto tr86 case 72: - goto stCase72 - case 93: - goto stCase93 + switch { + case (m.data)[(m.p)] < 65: + if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { + goto tr89 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr89 + } + default: + goto tr90 + } + goto tr86 + case 176: + switch (m.data)[(m.p)] { + case 33: + goto tr216 + case 36: + goto tr216 + case 37: + goto tr217 + case 61: + goto tr216 + case 95: + goto tr216 + } + switch { + case (m.data)[(m.p)] < 48: + if 39 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 46 { + goto tr216 + } + case (m.data)[(m.p)] > 59: + switch { + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr216 + } + case (m.data)[(m.p)] >= 64: + goto tr216 + } + default: + goto tr216 + } + goto tr86 case 73: - goto stCase73 + if (m.data)[(m.p)] == 97 { + goto tr91 + } + goto tr74 case 74: - goto stCase74 + if (m.data)[(m.p)] == 114 { + goto tr92 + } + goto tr74 case 75: - goto stCase75 + if (m.data)[(m.p)] == 97 { + goto tr93 + } + goto tr74 case 76: - goto stCase76 + if (m.data)[(m.p)] == 109 { + goto tr79 + } + goto tr74 case 77: - goto stCase77 + if (m.data)[(m.p)] == 99 { + goto tr94 + } + goto tr74 case 78: - goto stCase78 + if (m.data)[(m.p)] == 104 { + goto tr95 + } + goto tr74 case 79: - goto stCase79 + if (m.data)[(m.p)] == 101 { + goto tr96 + } + goto tr74 case 80: - goto stCase80 + if (m.data)[(m.p)] == 109 { + goto tr97 + } + goto tr74 case 81: - goto stCase81 + if (m.data)[(m.p)] == 97 { + goto tr98 + } + goto tr74 case 82: - goto stCase82 + if (m.data)[(m.p)] == 115 { + goto tr79 + } + goto tr74 case 83: - goto stCase83 + switch (m.data)[(m.p)] { + case 85: + goto tr99 + case 117: + goto tr99 + } + goto tr0 case 84: - goto stCase84 + switch (m.data)[(m.p)] { + case 82: + goto tr100 + case 114: + goto tr100 + } + goto tr0 case 85: - goto stCase85 + switch (m.data)[(m.p)] { + case 78: + goto tr101 + case 110: + goto tr101 + } + goto tr0 case 86: - goto stCase86 + if (m.data)[(m.p)] == 58 { + goto tr102 + } + goto tr0 + case 87: + switch (m.data)[(m.p)] { + case 85: + goto tr105 + case 117: + goto tr105 + } + switch { + case (m.data)[(m.p)] < 65: + if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { + goto tr104 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr104 + } + default: + goto tr104 + } + goto tr103 + case 88: + if (m.data)[(m.p)] == 45 { + goto tr107 + } + switch { + case (m.data)[(m.p)] < 65: + if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { + goto tr108 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr108 + } + default: + goto tr108 + } + goto tr106 + case 89: + if (m.data)[(m.p)] == 45 { + goto tr109 + } + switch { + case (m.data)[(m.p)] < 65: + if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { + goto tr110 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr110 + } + default: + goto tr110 + } + goto tr106 + case 90: + if (m.data)[(m.p)] == 45 { + goto tr111 + } + switch { + case (m.data)[(m.p)] < 65: + if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { + goto tr112 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr112 + } + default: + goto tr112 + } + goto tr106 + case 91: + if (m.data)[(m.p)] == 45 { + goto tr113 + } + switch { + case (m.data)[(m.p)] < 65: + if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { + goto tr114 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr114 + } + default: + goto tr114 + } + goto tr106 + case 92: + if (m.data)[(m.p)] == 45 { + goto tr115 + } + switch { + case (m.data)[(m.p)] < 65: + if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { + goto tr116 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr116 + } + default: + goto tr116 + } + goto tr106 + case 93: + if (m.data)[(m.p)] == 45 { + goto tr117 + } + switch { + case (m.data)[(m.p)] < 65: + if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { + goto tr118 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr118 + } + default: + goto tr118 + } + goto tr106 case 94: - goto stCase94 + if (m.data)[(m.p)] == 45 { + goto tr119 + } + switch { + case (m.data)[(m.p)] < 65: + if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { + goto tr120 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr120 + } + default: + goto tr120 + } + goto tr106 case 95: - goto stCase95 - } - goto stOut - stCase1: - switch (m.data)[(m.p)] { - case 85: - goto tr1 + if (m.data)[(m.p)] == 45 { + goto tr121 + } + switch { + case (m.data)[(m.p)] < 65: + if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { + goto tr122 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr122 + } + default: + goto tr122 + } + goto tr106 + case 96: + if (m.data)[(m.p)] == 45 { + goto tr123 + } + switch { + case (m.data)[(m.p)] < 65: + if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { + goto tr124 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr124 + } + default: + goto tr124 + } + goto tr106 + case 97: + if (m.data)[(m.p)] == 45 { + goto tr125 + } + switch { + case (m.data)[(m.p)] < 65: + if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { + goto tr126 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr126 + } + default: + goto tr126 + } + goto tr106 + case 98: + if (m.data)[(m.p)] == 45 { + goto tr127 + } + switch { + case (m.data)[(m.p)] < 65: + if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { + goto tr128 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr128 + } + default: + goto tr128 + } + goto tr106 + case 99: + if (m.data)[(m.p)] == 45 { + goto tr129 + } + switch { + case (m.data)[(m.p)] < 65: + if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { + goto tr130 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr130 + } + default: + goto tr130 + } + goto tr106 + case 100: + if (m.data)[(m.p)] == 45 { + goto tr131 + } + switch { + case (m.data)[(m.p)] < 65: + if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { + goto tr132 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr132 + } + default: + goto tr132 + } + goto tr106 + case 101: + if (m.data)[(m.p)] == 45 { + goto tr133 + } + switch { + case (m.data)[(m.p)] < 65: + if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { + goto tr134 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr134 + } + default: + goto tr134 + } + goto tr106 + case 102: + if (m.data)[(m.p)] == 45 { + goto tr135 + } + switch { + case (m.data)[(m.p)] < 65: + if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { + goto tr136 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr136 + } + default: + goto tr136 + } + goto tr106 + case 103: + if (m.data)[(m.p)] == 45 { + goto tr137 + } + switch { + case (m.data)[(m.p)] < 65: + if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { + goto tr138 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr138 + } + default: + goto tr138 + } + goto tr106 + case 104: + if (m.data)[(m.p)] == 45 { + goto tr139 + } + switch { + case (m.data)[(m.p)] < 65: + if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { + goto tr140 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr140 + } + default: + goto tr140 + } + goto tr106 + case 105: + if (m.data)[(m.p)] == 45 { + goto tr141 + } + switch { + case (m.data)[(m.p)] < 65: + if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { + goto tr142 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr142 + } + default: + goto tr142 + } + goto tr106 + case 106: + if (m.data)[(m.p)] == 45 { + goto tr143 + } + switch { + case (m.data)[(m.p)] < 65: + if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { + goto tr144 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr144 + } + default: + goto tr144 + } + goto tr106 + case 107: + if (m.data)[(m.p)] == 45 { + goto tr145 + } + switch { + case (m.data)[(m.p)] < 65: + if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { + goto tr146 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr146 + } + default: + goto tr146 + } + goto tr106 + case 108: + if (m.data)[(m.p)] == 45 { + goto tr147 + } + switch { + case (m.data)[(m.p)] < 65: + if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { + goto tr148 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr148 + } + default: + goto tr148 + } + goto tr106 + case 109: + if (m.data)[(m.p)] == 45 { + goto tr149 + } + switch { + case (m.data)[(m.p)] < 65: + if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { + goto tr150 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr150 + } + default: + goto tr150 + } + goto tr106 + case 110: + if (m.data)[(m.p)] == 45 { + goto tr151 + } + switch { + case (m.data)[(m.p)] < 65: + if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { + goto tr152 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr152 + } + default: + goto tr152 + } + goto tr106 + case 111: + if (m.data)[(m.p)] == 45 { + goto tr153 + } + switch { + case (m.data)[(m.p)] < 65: + if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { + goto tr154 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr154 + } + default: + goto tr154 + } + goto tr106 + case 112: + if (m.data)[(m.p)] == 45 { + goto tr155 + } + switch { + case (m.data)[(m.p)] < 65: + if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { + goto tr156 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr156 + } + default: + goto tr156 + } + goto tr106 + case 113: + if (m.data)[(m.p)] == 45 { + goto tr157 + } + switch { + case (m.data)[(m.p)] < 65: + if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { + goto tr158 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr158 + } + default: + goto tr158 + } + goto tr106 + case 114: + if (m.data)[(m.p)] == 45 { + goto tr159 + } + switch { + case (m.data)[(m.p)] < 65: + if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { + goto tr160 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr160 + } + default: + goto tr160 + } + goto tr106 + case 115: + if (m.data)[(m.p)] == 45 { + goto tr161 + } + switch { + case (m.data)[(m.p)] < 65: + if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { + goto tr162 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr162 + } + default: + goto tr162 + } + goto tr106 + case 116: + if (m.data)[(m.p)] == 45 { + goto tr163 + } + switch { + case (m.data)[(m.p)] < 65: + if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { + goto tr164 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr164 + } + default: + goto tr164 + } + goto tr106 case 117: - goto tr1 - } - goto tr0 - tr0: - - m.err = fmt.Errorf(errPrefix, m.p) - (m.p)-- - - { - goto st95 - } - - m.err = fmt.Errorf(errParse, m.p) - (m.p)-- - - { - goto st95 - } - - goto st0 - tr5: - - m.err = fmt.Errorf(errIdentifier, m.p) - (m.p)-- - - { - goto st95 - } - - m.err = fmt.Errorf(errPrefix, m.p) - (m.p)-- - - { - goto st95 - } - - m.err = fmt.Errorf(errParse, m.p) - (m.p)-- - - { - goto st95 - } - - goto st0 - tr8: - - m.err = fmt.Errorf(errIdentifier, m.p) - (m.p)-- - - { - goto st95 - } - - m.err = fmt.Errorf(errParse, m.p) - (m.p)-- - - { - goto st95 - } - - goto st0 - tr41: - - m.err = fmt.Errorf(errSpecificString, m.p) - (m.p)-- - - { - goto st95 - } - - m.err = fmt.Errorf(errParse, m.p) - (m.p)-- - - { - goto st95 - } - - goto st0 - tr44: - - if m.parsingMode == RFC2141Only || m.parsingMode == All { - m.err = fmt.Errorf(errHex, m.p) - (m.p)-- - - { - goto st95 + if (m.data)[(m.p)] == 45 { + goto tr165 } - } - // Otherwise, we expect the machine to fallback to SCIM errors - - m.err = fmt.Errorf(errSpecificString, m.p) - (m.p)-- - - { - goto st95 - } - - m.err = fmt.Errorf(errParse, m.p) - (m.p)-- - - { - goto st95 - } - - goto st0 - tr51: - - m.err = fmt.Errorf(errIdentifier, m.p) - (m.p)-- - - { - goto st95 - } - - m.err = fmt.Errorf(errNoUrnWithinID, m.p) - (m.p)-- - - { - goto st95 - } - - m.err = fmt.Errorf(errParse, m.p) - (m.p)-- - - { - goto st95 - } - - goto st0 - tr52: - - m.err = fmt.Errorf(errPrefix, m.p) - (m.p)-- - - { - goto st95 - } - - goto st0 - tr57: - - // In case we are in fallback mode we are now gonna jump to normal RFC2141 URN parsing - if m.parsingMode == All { - // TODO: store why the machine fallback to the RFC2141 one? - output.scim = nil - // Rewind the cursor after the prefix ends ("urn:") - (m.p) = (4) - 1 - - // Go to the "urn" machine from this point on - { - goto st5 + switch { + case (m.data)[(m.p)] < 65: + if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { + goto tr166 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr166 + } + default: + goto tr166 + } + goto tr106 + case 118: + switch { + case (m.data)[(m.p)] < 65: + if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { + goto tr167 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr167 + } + default: + goto tr167 + } + goto tr106 + case 119: + if (m.data)[(m.p)] == 58 { + goto tr168 + } + goto tr106 + case 120: + switch (m.data)[(m.p)] { + case 33: + goto tr170 + case 37: + goto tr171 + case 61: + goto tr170 + case 95: + goto tr170 + case 126: + goto tr170 + } + switch { + case (m.data)[(m.p)] < 48: + if 36 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 46 { + goto tr170 + } + case (m.data)[(m.p)] > 59: + switch { + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr170 + } + case (m.data)[(m.p)] >= 64: + goto tr170 + } + default: + goto tr170 + } + goto tr169 + case 177: + switch (m.data)[(m.p)] { + case 33: + goto tr218 + case 35: + goto tr219 + case 37: + goto tr220 + case 61: + goto tr218 + case 63: + goto tr221 + case 95: + goto tr218 + case 126: + goto tr218 + } + switch { + case (m.data)[(m.p)] < 64: + if 36 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 59 { + goto tr218 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr218 + } + default: + goto tr218 + } + goto tr169 + case 178: + switch (m.data)[(m.p)] { + case 33: + goto tr222 + case 37: + goto tr223 + case 61: + goto tr222 + case 95: + goto tr222 + case 126: + goto tr222 + } + switch { + case (m.data)[(m.p)] < 63: + if 36 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 59 { + goto tr222 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr222 + } + default: + goto tr222 + } + goto tr183 + case 179: + switch (m.data)[(m.p)] { + case 33: + goto tr224 + case 37: + goto tr225 + case 61: + goto tr224 + case 95: + goto tr224 + case 126: + goto tr224 + } + switch { + case (m.data)[(m.p)] < 63: + if 36 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 59 { + goto tr224 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr224 + } + default: + goto tr224 + } + goto tr183 + case 121: + switch { + case (m.data)[(m.p)] < 65: + if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { + goto tr173 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr173 + } + default: + goto tr174 + } + goto tr172 + case 122: + switch { + case (m.data)[(m.p)] < 65: + if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { + goto tr175 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr175 + } + default: + goto tr176 + } + goto tr172 + case 180: + switch (m.data)[(m.p)] { + case 33: + goto tr224 + case 37: + goto tr225 + case 61: + goto tr224 + case 95: + goto tr224 + case 126: + goto tr224 + } + switch { + case (m.data)[(m.p)] < 63: + if 36 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 59 { + goto tr224 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr224 + } + default: + goto tr224 + } + goto tr172 + case 123: + switch { + case (m.data)[(m.p)] < 65: + if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { + goto tr178 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr178 + } + default: + goto tr179 + } + goto tr177 + case 124: + switch { + case (m.data)[(m.p)] < 65: + if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { + goto tr180 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr180 + } + default: + goto tr181 + } + goto tr177 + case 181: + switch (m.data)[(m.p)] { + case 33: + goto tr218 + case 35: + goto tr219 + case 37: + goto tr220 + case 61: + goto tr218 + case 63: + goto tr221 + case 95: + goto tr218 + case 126: + goto tr218 + } + switch { + case (m.data)[(m.p)] < 64: + if 36 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 59 { + goto tr218 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr218 + } + default: + goto tr218 + } + goto tr177 + case 125: + switch (m.data)[(m.p)] { + case 43: + goto tr182 + case 61: + goto tr184 + } + goto tr183 + case 126: + switch (m.data)[(m.p)] { + case 33: + goto tr186 + case 37: + goto tr187 + case 61: + goto tr186 + case 63: + goto tr188 + case 95: + goto tr186 + case 126: + goto tr186 + } + switch { + case (m.data)[(m.p)] < 48: + if 36 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 46 { + goto tr186 + } + case (m.data)[(m.p)] > 59: + switch { + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr186 + } + case (m.data)[(m.p)] >= 64: + goto tr186 + } + default: + goto tr186 + } + goto tr185 + case 182: + switch (m.data)[(m.p)] { + case 33: + goto tr226 + case 35: + goto tr227 + case 37: + goto tr228 + case 61: + goto tr226 + case 63: + goto tr229 + case 95: + goto tr226 + case 126: + goto tr226 + } + switch { + case (m.data)[(m.p)] < 64: + if 36 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 59 { + goto tr226 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr226 + } + default: + goto tr226 + } + goto tr185 + case 127: + switch { + case (m.data)[(m.p)] < 65: + if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { + goto tr190 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr190 + } + default: + goto tr191 + } + goto tr189 + case 128: + switch { + case (m.data)[(m.p)] < 65: + if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { + goto tr192 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr192 + } + default: + goto tr193 + } + goto tr189 + case 183: + switch (m.data)[(m.p)] { + case 33: + goto tr226 + case 35: + goto tr227 + case 37: + goto tr228 + case 61: + goto tr226 + case 63: + goto tr229 + case 95: + goto tr226 + case 126: + goto tr226 + } + switch { + case (m.data)[(m.p)] < 64: + if 36 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 59 { + goto tr226 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr226 + } + default: + goto tr226 + } + goto tr189 + case 184: + switch (m.data)[(m.p)] { + case 33: + goto tr226 + case 35: + goto tr227 + case 37: + goto tr228 + case 43: + goto tr230 + case 61: + goto tr231 + case 63: + goto tr229 + case 95: + goto tr226 + case 126: + goto tr226 + } + switch { + case (m.data)[(m.p)] < 64: + if 36 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 59 { + goto tr226 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr226 + } + default: + goto tr226 + } + goto tr185 + case 185: + switch (m.data)[(m.p)] { + case 33: + goto tr232 + case 35: + goto tr233 + case 37: + goto tr234 + case 47: + goto tr226 + case 61: + goto tr232 + case 63: + goto tr235 + case 95: + goto tr232 + case 126: + goto tr232 + } + switch { + case (m.data)[(m.p)] < 64: + if 36 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 59 { + goto tr232 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr232 + } + default: + goto tr232 + } + goto tr185 + case 186: + switch (m.data)[(m.p)] { + case 33: + goto tr204 + case 35: + goto tr227 + case 37: + goto tr237 + case 47: + goto tr226 + case 61: + goto tr204 + case 63: + goto tr229 + case 95: + goto tr204 + case 126: + goto tr204 + } + switch { + case (m.data)[(m.p)] < 64: + if 36 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 59 { + goto tr204 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr204 + } + default: + goto tr204 + } + goto tr236 + case 187: + switch (m.data)[(m.p)] { + case 33: + goto tr238 + case 35: + goto tr239 + case 37: + goto tr240 + case 61: + goto tr238 + case 63: + goto tr241 + case 95: + goto tr238 + case 126: + goto tr238 + } + switch { + case (m.data)[(m.p)] < 64: + if 36 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 59 { + goto tr238 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr238 + } + default: + goto tr238 + } + goto tr203 + case 129: + switch { + case (m.data)[(m.p)] < 65: + if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { + goto tr195 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr195 + } + default: + goto tr196 + } + goto tr194 + case 130: + switch { + case (m.data)[(m.p)] < 65: + if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { + goto tr197 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr197 + } + default: + goto tr198 + } + goto tr194 + case 188: + switch (m.data)[(m.p)] { + case 33: + goto tr238 + case 35: + goto tr239 + case 37: + goto tr240 + case 61: + goto tr238 + case 63: + goto tr241 + case 95: + goto tr238 + case 126: + goto tr238 + } + switch { + case (m.data)[(m.p)] < 64: + if 36 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 59 { + goto tr238 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr238 + } + default: + goto tr238 + } + goto tr194 + case 189: + switch (m.data)[(m.p)] { + case 33: + goto tr238 + case 35: + goto tr239 + case 37: + goto tr240 + case 61: + goto tr242 + case 63: + goto tr241 + case 95: + goto tr238 + case 126: + goto tr238 + } + switch { + case (m.data)[(m.p)] < 64: + if 36 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 59 { + goto tr238 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr238 + } + default: + goto tr238 + } + goto tr203 + case 190: + switch (m.data)[(m.p)] { + case 33: + goto tr243 + case 35: + goto tr244 + case 37: + goto tr245 + case 47: + goto tr238 + case 61: + goto tr243 + case 63: + goto tr246 + case 95: + goto tr243 + case 126: + goto tr243 + } + switch { + case (m.data)[(m.p)] < 64: + if 36 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 59 { + goto tr243 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr243 + } + default: + goto tr243 + } + goto tr203 + case 131: + switch { + case (m.data)[(m.p)] < 65: + if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { + goto tr200 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr200 + } + default: + goto tr201 + } + goto tr199 + case 132: + switch { + case (m.data)[(m.p)] < 65: + if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { + goto tr197 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr197 + } + default: + goto tr198 + } + goto tr199 + case 133: + if (m.data)[(m.p)] == 43 { + goto tr202 + } + goto tr185 + case 191: + switch (m.data)[(m.p)] { + case 33: + goto tr232 + case 35: + goto tr233 + case 37: + goto tr234 + case 61: + goto tr232 + case 63: + goto tr247 + case 95: + goto tr232 + case 126: + goto tr232 + } + switch { + case (m.data)[(m.p)] < 48: + if 36 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 46 { + goto tr232 + } + case (m.data)[(m.p)] > 59: + switch { + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr232 + } + case (m.data)[(m.p)] >= 64: + goto tr232 + } + default: + goto tr232 + } + goto tr185 + case 134: + switch (m.data)[(m.p)] { + case 43: + goto tr202 + case 61: + goto tr184 + } + goto tr185 + case 135: + switch (m.data)[(m.p)] { + case 33: + goto tr204 + case 37: + goto tr205 + case 61: + goto tr204 + case 63: + goto tr206 + case 95: + goto tr204 + case 126: + goto tr204 + } + switch { + case (m.data)[(m.p)] < 48: + if 36 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 46 { + goto tr204 + } + case (m.data)[(m.p)] > 59: + switch { + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr204 + } + case (m.data)[(m.p)] >= 64: + goto tr204 + } + default: + goto tr204 + } + goto tr203 + case 136: + if (m.data)[(m.p)] == 61 { + goto tr207 + } + goto tr203 + case 192: + switch (m.data)[(m.p)] { + case 33: + goto tr243 + case 35: + goto tr244 + case 37: + goto tr245 + case 61: + goto tr243 + case 63: + goto tr248 + case 95: + goto tr243 + case 126: + goto tr243 + } + switch { + case (m.data)[(m.p)] < 48: + if 36 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 46 { + goto tr243 + } + case (m.data)[(m.p)] > 59: + switch { + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr243 + } + case (m.data)[(m.p)] >= 64: + goto tr243 + } + default: + goto tr243 } - } - m.err = fmt.Errorf(errSCIMNamespace, m.p) - (m.p)-- - - { - goto st95 - } - - goto st0 - tr75: - - // In case we are in fallback mode we are now gonna jump to normal RFC2141 URN parsing - if m.parsingMode == All { - // TODO: store why the machine fallback to the RFC2141 one? - output.scim = nil - // Rewind the cursor after the prefix ends ("urn:") - (m.p) = (4) - 1 - - // Go to the "urn" machine from this point on - { - goto st5 + goto tr203 + case 137: + if (m.data)[(m.p)] == 58 { + goto tr168 } - } - m.err = fmt.Errorf(errSCIMType, m.p) - (m.p)-- - - { - goto st95 - } - - goto st0 - tr82: - - // In case we are in fallback mode we are now gonna jump to normal RFC2141 URN parsing - if m.parsingMode == All { - // TODO: store why the machine fallback to the RFC2141 one? - output.scim = nil - // Rewind the cursor after the prefix ends ("urn:") - (m.p) = (4) - 1 - - // Go to the "urn" machine from this point on - { - goto st5 + switch { + case (m.data)[(m.p)] < 65: + if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { + goto tr167 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr167 + } + default: + goto tr167 } - } - m.err = fmt.Errorf(errSCIMName, m.p) - (m.p)-- - - { - goto st95 - } - - goto st0 - tr84: - - // In case we are in fallback mode we are now gonna jump to normal RFC2141 URN parsing - if m.parsingMode == All { - // TODO: store why the machine fallback to the RFC2141 one? - output.scim = nil - // Rewind the cursor after the prefix ends ("urn:") - (m.p) = (4) - 1 - - // Go to the "urn" machine from this point on - { - goto st5 + goto tr106 + case 138: + switch (m.data)[(m.p)] { + case 45: + goto tr165 + case 58: + goto tr168 } - } - if m.p == m.pe { - m.err = fmt.Errorf(errSCIMOtherIncomplete, m.p-1) - } else { - m.err = fmt.Errorf(errSCIMOther, m.p) - } - (m.p)-- - - { - goto st95 - } - - goto st0 - tr87: - - if m.parsingMode == RFC2141Only || m.parsingMode == All { - m.err = fmt.Errorf(errHex, m.p) - (m.p)-- - - { - goto st95 + switch { + case (m.data)[(m.p)] < 65: + if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { + goto tr166 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr166 + } + default: + goto tr166 } - } - // Otherwise, we expect the machine to fallback to SCIM errors - - // In case we are in fallback mode we are now gonna jump to normal RFC2141 URN parsing - if m.parsingMode == All { - // TODO: store why the machine fallback to the RFC2141 one? - output.scim = nil - // Rewind the cursor after the prefix ends ("urn:") - (m.p) = (4) - 1 - - // Go to the "urn" machine from this point on - { - goto st5 + goto tr106 + case 139: + switch (m.data)[(m.p)] { + case 45: + goto tr163 + case 58: + goto tr168 } - } - if m.p == m.pe { - m.err = fmt.Errorf(errSCIMOtherIncomplete, m.p-1) - } else { - m.err = fmt.Errorf(errSCIMOther, m.p) - } - (m.p)-- - - { - goto st95 - } - - goto st0 - stCase0: - st0: - m.cs = 0 - goto _out - tr1: - - m.pb = m.p - - // Throw an error when: - // - we are entering here matching the the prefix in the namespace identifier part - // - looking ahead (3 chars) we find a colon - if pos := m.p + 3; pos < m.pe && m.data[pos] == 58 && output.prefix != "" { - m.err = fmt.Errorf(errNoUrnWithinID, pos) - (m.p)-- - - { - goto st95 + switch { + case (m.data)[(m.p)] < 65: + if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { + goto tr164 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr164 + } + default: + goto tr164 } - } - - goto st2 - st2: - if (m.p)++; (m.p) == (m.pe) { - goto _testEof2 - } - stCase2: - switch (m.data)[(m.p)] { - case 82: - goto st3 - case 114: - goto st3 - } - goto tr0 - st3: - if (m.p)++; (m.p) == (m.pe) { - goto _testEof3 - } - stCase3: - switch (m.data)[(m.p)] { - case 78: - goto st4 - case 110: - goto st4 - } - goto tr0 - st4: - if (m.p)++; (m.p) == (m.pe) { - goto _testEof4 - } - stCase4: - if (m.data)[(m.p)] == 58 { - goto tr4 - } - goto tr0 - tr4: - - output.prefix = string(m.text()) - { - goto st48 - } - goto st87 - st87: - if (m.p)++; (m.p) == (m.pe) { - goto _testEof87 - } - stCase87: - goto tr0 - st5: - if (m.p)++; (m.p) == (m.pe) { - goto _testEof5 - } - stCase5: - switch (m.data)[(m.p)] { - case 85: - goto tr7 - case 117: - goto tr7 - } - switch { - case (m.data)[(m.p)] < 65: - if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { - goto tr6 + goto tr106 + case 140: + switch (m.data)[(m.p)] { + case 45: + goto tr161 + case 58: + goto tr168 } - case (m.data)[(m.p)] > 90: - if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { - goto tr6 + switch { + case (m.data)[(m.p)] < 65: + if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { + goto tr162 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr162 + } + default: + goto tr162 } - default: - goto tr6 - } - goto tr5 - tr6: - - m.pb = m.p - - goto st6 - st6: - if (m.p)++; (m.p) == (m.pe) { - goto _testEof6 - } - stCase6: - switch (m.data)[(m.p)] { - case 45: - goto st7 - case 58: - goto tr10 - } - switch { - case (m.data)[(m.p)] < 65: - if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { - goto st7 + goto tr106 + case 141: + switch (m.data)[(m.p)] { + case 45: + goto tr159 + case 58: + goto tr168 } - case (m.data)[(m.p)] > 90: - if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { - goto st7 + switch { + case (m.data)[(m.p)] < 65: + if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { + goto tr160 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr160 + } + default: + goto tr160 } - default: - goto st7 - } - goto tr8 - st7: - if (m.p)++; (m.p) == (m.pe) { - goto _testEof7 - } - stCase7: - switch (m.data)[(m.p)] { - case 45: - goto st8 - case 58: - goto tr10 - } - switch { - case (m.data)[(m.p)] < 65: - if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { - goto st8 + goto tr106 + case 142: + switch (m.data)[(m.p)] { + case 45: + goto tr157 + case 58: + goto tr168 } - case (m.data)[(m.p)] > 90: - if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { - goto st8 + switch { + case (m.data)[(m.p)] < 65: + if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { + goto tr158 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr158 + } + default: + goto tr158 } - default: - goto st8 - } - goto tr8 - st8: - if (m.p)++; (m.p) == (m.pe) { - goto _testEof8 - } - stCase8: - switch (m.data)[(m.p)] { - case 45: - goto st9 - case 58: - goto tr10 - } - switch { - case (m.data)[(m.p)] < 65: - if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { - goto st9 + goto tr106 + case 143: + switch (m.data)[(m.p)] { + case 45: + goto tr155 + case 58: + goto tr168 } - case (m.data)[(m.p)] > 90: - if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { - goto st9 + switch { + case (m.data)[(m.p)] < 65: + if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { + goto tr156 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr156 + } + default: + goto tr156 } - default: - goto st9 - } - goto tr8 - st9: - if (m.p)++; (m.p) == (m.pe) { - goto _testEof9 - } - stCase9: - switch (m.data)[(m.p)] { - case 45: - goto st10 - case 58: - goto tr10 - } - switch { - case (m.data)[(m.p)] < 65: - if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { - goto st10 + goto tr106 + case 144: + switch (m.data)[(m.p)] { + case 45: + goto tr153 + case 58: + goto tr168 } - case (m.data)[(m.p)] > 90: - if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { - goto st10 + switch { + case (m.data)[(m.p)] < 65: + if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { + goto tr154 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr154 + } + default: + goto tr154 } - default: - goto st10 - } - goto tr8 - st10: - if (m.p)++; (m.p) == (m.pe) { - goto _testEof10 - } - stCase10: - switch (m.data)[(m.p)] { - case 45: - goto st11 - case 58: - goto tr10 - } - switch { - case (m.data)[(m.p)] < 65: - if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { - goto st11 + goto tr106 + case 145: + switch (m.data)[(m.p)] { + case 45: + goto tr151 + case 58: + goto tr168 } - case (m.data)[(m.p)] > 90: - if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { - goto st11 + switch { + case (m.data)[(m.p)] < 65: + if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { + goto tr152 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr152 + } + default: + goto tr152 } - default: - goto st11 - } - goto tr8 - st11: - if (m.p)++; (m.p) == (m.pe) { - goto _testEof11 - } - stCase11: - switch (m.data)[(m.p)] { - case 45: - goto st12 - case 58: - goto tr10 - } - switch { - case (m.data)[(m.p)] < 65: - if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { - goto st12 + goto tr106 + case 146: + switch (m.data)[(m.p)] { + case 45: + goto tr149 + case 58: + goto tr168 } - case (m.data)[(m.p)] > 90: - if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { - goto st12 + switch { + case (m.data)[(m.p)] < 65: + if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { + goto tr150 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr150 + } + default: + goto tr150 } - default: - goto st12 - } - goto tr8 - st12: - if (m.p)++; (m.p) == (m.pe) { - goto _testEof12 - } - stCase12: - switch (m.data)[(m.p)] { - case 45: - goto st13 - case 58: - goto tr10 - } - switch { - case (m.data)[(m.p)] < 65: - if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { - goto st13 + goto tr106 + case 147: + switch (m.data)[(m.p)] { + case 45: + goto tr147 + case 58: + goto tr168 + } + switch { + case (m.data)[(m.p)] < 65: + if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { + goto tr148 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr148 + } + default: + goto tr148 } - case (m.data)[(m.p)] > 90: - if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { - goto st13 + goto tr106 + case 148: + switch (m.data)[(m.p)] { + case 45: + goto tr145 + case 58: + goto tr168 } - default: - goto st13 - } - goto tr8 - st13: - if (m.p)++; (m.p) == (m.pe) { - goto _testEof13 - } - stCase13: - switch (m.data)[(m.p)] { - case 45: - goto st14 - case 58: - goto tr10 - } - switch { - case (m.data)[(m.p)] < 65: - if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { - goto st14 + switch { + case (m.data)[(m.p)] < 65: + if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { + goto tr146 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr146 + } + default: + goto tr146 } - case (m.data)[(m.p)] > 90: - if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { - goto st14 + goto tr106 + case 149: + switch (m.data)[(m.p)] { + case 45: + goto tr143 + case 58: + goto tr168 } - default: - goto st14 - } - goto tr8 - st14: - if (m.p)++; (m.p) == (m.pe) { - goto _testEof14 - } - stCase14: - switch (m.data)[(m.p)] { - case 45: - goto st15 - case 58: - goto tr10 - } - switch { - case (m.data)[(m.p)] < 65: - if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { - goto st15 + switch { + case (m.data)[(m.p)] < 65: + if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { + goto tr144 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr144 + } + default: + goto tr144 } - case (m.data)[(m.p)] > 90: - if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { - goto st15 + goto tr106 + case 150: + switch (m.data)[(m.p)] { + case 45: + goto tr141 + case 58: + goto tr168 } - default: - goto st15 - } - goto tr8 - st15: - if (m.p)++; (m.p) == (m.pe) { - goto _testEof15 - } - stCase15: - switch (m.data)[(m.p)] { - case 45: - goto st16 - case 58: - goto tr10 - } - switch { - case (m.data)[(m.p)] < 65: - if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { - goto st16 + switch { + case (m.data)[(m.p)] < 65: + if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { + goto tr142 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr142 + } + default: + goto tr142 } - case (m.data)[(m.p)] > 90: - if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { - goto st16 + goto tr106 + case 151: + switch (m.data)[(m.p)] { + case 45: + goto tr139 + case 58: + goto tr168 } - default: - goto st16 - } - goto tr8 - st16: - if (m.p)++; (m.p) == (m.pe) { - goto _testEof16 - } - stCase16: - switch (m.data)[(m.p)] { - case 45: - goto st17 - case 58: - goto tr10 - } - switch { - case (m.data)[(m.p)] < 65: - if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { - goto st17 + switch { + case (m.data)[(m.p)] < 65: + if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { + goto tr140 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr140 + } + default: + goto tr140 } - case (m.data)[(m.p)] > 90: - if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { - goto st17 + goto tr106 + case 152: + switch (m.data)[(m.p)] { + case 45: + goto tr137 + case 58: + goto tr168 } - default: - goto st17 - } - goto tr8 - st17: - if (m.p)++; (m.p) == (m.pe) { - goto _testEof17 - } - stCase17: - switch (m.data)[(m.p)] { - case 45: - goto st18 - case 58: - goto tr10 - } - switch { - case (m.data)[(m.p)] < 65: - if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { - goto st18 + switch { + case (m.data)[(m.p)] < 65: + if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { + goto tr138 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr138 + } + default: + goto tr138 + } + goto tr106 + case 153: + switch (m.data)[(m.p)] { + case 45: + goto tr135 + case 58: + goto tr168 + } + switch { + case (m.data)[(m.p)] < 65: + if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { + goto tr136 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr136 + } + default: + goto tr136 + } + goto tr106 + case 154: + switch (m.data)[(m.p)] { + case 45: + goto tr133 + case 58: + goto tr168 + } + switch { + case (m.data)[(m.p)] < 65: + if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { + goto tr134 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr134 + } + default: + goto tr134 + } + goto tr106 + case 155: + switch (m.data)[(m.p)] { + case 45: + goto tr131 + case 58: + goto tr168 + } + switch { + case (m.data)[(m.p)] < 65: + if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { + goto tr132 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr132 + } + default: + goto tr132 } - case (m.data)[(m.p)] > 90: - if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { - goto st18 + goto tr106 + case 156: + switch (m.data)[(m.p)] { + case 45: + goto tr129 + case 58: + goto tr168 } - default: - goto st18 - } - goto tr8 - st18: - if (m.p)++; (m.p) == (m.pe) { - goto _testEof18 - } - stCase18: - switch (m.data)[(m.p)] { - case 45: - goto st19 - case 58: - goto tr10 - } - switch { - case (m.data)[(m.p)] < 65: - if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { - goto st19 + switch { + case (m.data)[(m.p)] < 65: + if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { + goto tr130 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr130 + } + default: + goto tr130 } - case (m.data)[(m.p)] > 90: - if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { - goto st19 + goto tr106 + case 157: + switch (m.data)[(m.p)] { + case 45: + goto tr127 + case 58: + goto tr168 } - default: - goto st19 - } - goto tr8 - st19: - if (m.p)++; (m.p) == (m.pe) { - goto _testEof19 - } - stCase19: - switch (m.data)[(m.p)] { - case 45: - goto st20 - case 58: - goto tr10 - } - switch { - case (m.data)[(m.p)] < 65: - if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { - goto st20 + switch { + case (m.data)[(m.p)] < 65: + if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { + goto tr128 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr128 + } + default: + goto tr128 } - case (m.data)[(m.p)] > 90: - if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { - goto st20 + goto tr106 + case 158: + switch (m.data)[(m.p)] { + case 45: + goto tr125 + case 58: + goto tr168 } - default: - goto st20 - } - goto tr8 - st20: - if (m.p)++; (m.p) == (m.pe) { - goto _testEof20 - } - stCase20: - switch (m.data)[(m.p)] { - case 45: - goto st21 - case 58: - goto tr10 - } - switch { - case (m.data)[(m.p)] < 65: - if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { - goto st21 + switch { + case (m.data)[(m.p)] < 65: + if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { + goto tr126 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr126 + } + default: + goto tr126 } - case (m.data)[(m.p)] > 90: - if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { - goto st21 + goto tr106 + case 159: + switch (m.data)[(m.p)] { + case 45: + goto tr123 + case 58: + goto tr168 } - default: - goto st21 - } - goto tr8 - st21: - if (m.p)++; (m.p) == (m.pe) { - goto _testEof21 - } - stCase21: - switch (m.data)[(m.p)] { - case 45: - goto st22 - case 58: - goto tr10 - } - switch { - case (m.data)[(m.p)] < 65: - if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { - goto st22 + switch { + case (m.data)[(m.p)] < 65: + if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { + goto tr124 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr124 + } + default: + goto tr124 } - case (m.data)[(m.p)] > 90: - if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { - goto st22 + goto tr106 + case 160: + switch (m.data)[(m.p)] { + case 45: + goto tr121 + case 58: + goto tr168 } - default: - goto st22 - } - goto tr8 - st22: - if (m.p)++; (m.p) == (m.pe) { - goto _testEof22 - } - stCase22: - switch (m.data)[(m.p)] { - case 45: - goto st23 - case 58: - goto tr10 - } - switch { - case (m.data)[(m.p)] < 65: - if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { - goto st23 + switch { + case (m.data)[(m.p)] < 65: + if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { + goto tr122 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr122 + } + default: + goto tr122 } - case (m.data)[(m.p)] > 90: - if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { - goto st23 + goto tr106 + case 161: + switch (m.data)[(m.p)] { + case 45: + goto tr119 + case 58: + goto tr168 } - default: - goto st23 - } - goto tr8 - st23: - if (m.p)++; (m.p) == (m.pe) { - goto _testEof23 - } - stCase23: - switch (m.data)[(m.p)] { - case 45: - goto st24 - case 58: - goto tr10 - } - switch { - case (m.data)[(m.p)] < 65: - if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { - goto st24 + switch { + case (m.data)[(m.p)] < 65: + if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { + goto tr120 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr120 + } + default: + goto tr120 } - case (m.data)[(m.p)] > 90: - if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { - goto st24 + goto tr106 + case 162: + switch (m.data)[(m.p)] { + case 45: + goto tr117 + case 58: + goto tr168 } - default: - goto st24 - } - goto tr8 - st24: - if (m.p)++; (m.p) == (m.pe) { - goto _testEof24 - } - stCase24: - switch (m.data)[(m.p)] { - case 45: - goto st25 - case 58: - goto tr10 - } - switch { - case (m.data)[(m.p)] < 65: - if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { - goto st25 + switch { + case (m.data)[(m.p)] < 65: + if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { + goto tr118 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr118 + } + default: + goto tr118 } - case (m.data)[(m.p)] > 90: - if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { - goto st25 + goto tr106 + case 163: + switch (m.data)[(m.p)] { + case 45: + goto tr115 + case 58: + goto tr168 } - default: - goto st25 - } - goto tr8 - st25: - if (m.p)++; (m.p) == (m.pe) { - goto _testEof25 - } - stCase25: - switch (m.data)[(m.p)] { - case 45: - goto st26 - case 58: - goto tr10 - } - switch { - case (m.data)[(m.p)] < 65: - if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { - goto st26 + switch { + case (m.data)[(m.p)] < 65: + if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { + goto tr116 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr116 + } + default: + goto tr116 } - case (m.data)[(m.p)] > 90: - if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { - goto st26 + goto tr106 + case 164: + switch (m.data)[(m.p)] { + case 45: + goto tr113 + case 58: + goto tr168 } - default: - goto st26 - } - goto tr8 - st26: - if (m.p)++; (m.p) == (m.pe) { - goto _testEof26 - } - stCase26: - switch (m.data)[(m.p)] { - case 45: - goto st27 - case 58: - goto tr10 - } - switch { - case (m.data)[(m.p)] < 65: - if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { - goto st27 + switch { + case (m.data)[(m.p)] < 65: + if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { + goto tr114 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr114 + } + default: + goto tr114 } - case (m.data)[(m.p)] > 90: - if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { - goto st27 + goto tr106 + case 165: + switch (m.data)[(m.p)] { + case 45: + goto tr111 + case 58: + goto tr168 } - default: - goto st27 - } - goto tr8 - st27: - if (m.p)++; (m.p) == (m.pe) { - goto _testEof27 - } - stCase27: - switch (m.data)[(m.p)] { - case 45: - goto st28 - case 58: - goto tr10 - } - switch { - case (m.data)[(m.p)] < 65: - if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { - goto st28 + switch { + case (m.data)[(m.p)] < 65: + if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { + goto tr112 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr112 + } + default: + goto tr112 } - case (m.data)[(m.p)] > 90: - if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { - goto st28 + goto tr106 + case 166: + switch (m.data)[(m.p)] { + case 45: + goto tr109 + case 58: + goto tr168 } - default: - goto st28 - } - goto tr8 - st28: - if (m.p)++; (m.p) == (m.pe) { - goto _testEof28 - } - stCase28: - switch (m.data)[(m.p)] { - case 45: - goto st29 - case 58: - goto tr10 - } - switch { - case (m.data)[(m.p)] < 65: - if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { - goto st29 + switch { + case (m.data)[(m.p)] < 65: + if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { + goto tr110 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr110 + } + default: + goto tr110 } - case (m.data)[(m.p)] > 90: - if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { - goto st29 + goto tr106 + case 167: + switch (m.data)[(m.p)] { + case 45: + goto tr107 + case 82: + goto tr208 + case 114: + goto tr208 } - default: - goto st29 - } - goto tr8 - st29: - if (m.p)++; (m.p) == (m.pe) { - goto _testEof29 - } - stCase29: - switch (m.data)[(m.p)] { - case 45: - goto st30 - case 58: - goto tr10 - } - switch { - case (m.data)[(m.p)] < 65: - if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { - goto st30 + switch { + case (m.data)[(m.p)] < 65: + if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { + goto tr108 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr108 + } + default: + goto tr108 } - case (m.data)[(m.p)] > 90: - if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { - goto st30 + goto tr103 + case 168: + switch (m.data)[(m.p)] { + case 45: + goto tr109 + case 58: + goto tr168 + case 78: + goto tr209 + case 110: + goto tr209 } - default: - goto st30 - } - goto tr8 - st30: - if (m.p)++; (m.p) == (m.pe) { - goto _testEof30 - } - stCase30: - switch (m.data)[(m.p)] { - case 45: - goto st31 - case 58: - goto tr10 - } - switch { - case (m.data)[(m.p)] < 65: - if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { - goto st31 + switch { + case (m.data)[(m.p)] < 65: + if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { + goto tr110 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr110 + } + default: + goto tr110 } - case (m.data)[(m.p)] > 90: - if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { - goto st31 + goto tr103 + case 169: + switch (m.data)[(m.p)] { + case 45: + goto tr210 + case 58: + goto tr168 } - default: - goto st31 - } - goto tr8 - st31: - if (m.p)++; (m.p) == (m.pe) { - goto _testEof31 - } - stCase31: - switch (m.data)[(m.p)] { - case 45: - goto st32 - case 58: - goto tr10 - } - switch { - case (m.data)[(m.p)] < 65: - if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { - goto st32 + switch { + case (m.data)[(m.p)] < 65: + if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { + goto tr112 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr112 + } + default: + goto tr112 } - case (m.data)[(m.p)] > 90: - if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { - goto st32 + goto tr106 + case 170: + switch (m.data)[(m.p)] { + case 45: + goto tr113 + case 48: + goto tr211 } - default: - goto st32 - } - goto tr8 - st32: - if (m.p)++; (m.p) == (m.pe) { - goto _testEof32 - } - stCase32: - switch (m.data)[(m.p)] { - case 45: - goto st33 - case 58: - goto tr10 - } - switch { - case (m.data)[(m.p)] < 65: - if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { - goto st33 + switch { + case (m.data)[(m.p)] < 65: + if 49 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { + goto tr114 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr211 + } + default: + goto tr211 } - case (m.data)[(m.p)] > 90: - if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { - goto st33 + goto tr106 + case 171: + if (m.data)[(m.p)] == 45 { + goto tr115 } - default: - goto st33 - } - goto tr8 - st33: - if (m.p)++; (m.p) == (m.pe) { - goto _testEof33 - } - stCase33: - switch (m.data)[(m.p)] { - case 45: - goto st34 - case 58: - goto tr10 - } - switch { - case (m.data)[(m.p)] < 65: - if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { - goto st34 + switch { + case (m.data)[(m.p)] < 65: + if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { + goto tr116 + } + case (m.data)[(m.p)] > 90: + if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { + goto tr116 + } + default: + goto tr116 } - case (m.data)[(m.p)] > 90: - if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { - goto st34 + goto tr106 + case 193: + switch (m.data)[(m.p)] { + case 10: + goto tr183 + case 13: + goto tr183 } - default: - goto st34 - } - goto tr8 - st34: - if (m.p)++; (m.p) == (m.pe) { - goto _testEof34 + goto tr249 } - stCase34: - switch (m.data)[(m.p)] { - case 45: - goto st35 - case 58: - goto tr10 - } - switch { - case (m.data)[(m.p)] < 65: - if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { - goto st35 - } - case (m.data)[(m.p)] > 90: - if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { - goto st35 - } - default: - goto st35 + + tr183: + m.cs = 0 + goto _again + tr0: + m.cs = 0 + goto f0 + tr5: + m.cs = 0 + goto f3 + tr8: + m.cs = 0 + goto f5 + tr41: + m.cs = 0 + goto f7 + tr44: + m.cs = 0 + goto f8 + tr51: + m.cs = 0 + goto f10 + tr56: + m.cs = 0 + goto f11 + tr74: + m.cs = 0 + goto f13 + tr81: + m.cs = 0 + goto f15 + tr83: + m.cs = 0 + goto f17 + tr86: + m.cs = 0 + goto f19 + tr103: + m.cs = 0 + goto f20 + tr106: + m.cs = 0 + goto f21 + tr169: + m.cs = 0 + goto f22 + tr172: + m.cs = 0 + goto f23 + tr177: + m.cs = 0 + goto f24 + tr185: + m.cs = 0 + goto f25 + tr189: + m.cs = 0 + goto f27 + tr194: + m.cs = 0 + goto f28 + tr199: + m.cs = 0 + goto f29 + tr203: + m.cs = 0 + goto f30 + tr236: + m.cs = 0 + goto f46 + tr1: + m.cs = 2 + goto f1 + tr2: + m.cs = 3 + goto _again + tr3: + m.cs = 4 + goto _again + tr4: + m.cs = 5 + goto f2 + tr6: + m.cs = 6 + goto f4 + tr9: + m.cs = 7 + goto _again + tr11: + m.cs = 8 + goto _again + tr12: + m.cs = 9 + goto _again + tr13: + m.cs = 10 + goto _again + tr14: + m.cs = 11 + goto _again + tr15: + m.cs = 12 + goto _again + tr16: + m.cs = 13 + goto _again + tr17: + m.cs = 14 + goto _again + tr18: + m.cs = 15 + goto _again + tr19: + m.cs = 16 + goto _again + tr20: + m.cs = 17 + goto _again + tr21: + m.cs = 18 + goto _again + tr22: + m.cs = 19 + goto _again + tr23: + m.cs = 20 + goto _again + tr24: + m.cs = 21 + goto _again + tr25: + m.cs = 22 + goto _again + tr26: + m.cs = 23 + goto _again + tr27: + m.cs = 24 + goto _again + tr28: + m.cs = 25 + goto _again + tr29: + m.cs = 26 + goto _again + tr30: + m.cs = 27 + goto _again + tr31: + m.cs = 28 + goto _again + tr32: + m.cs = 29 + goto _again + tr33: + m.cs = 30 + goto _again + tr34: + m.cs = 31 + goto _again + tr35: + m.cs = 32 + goto _again + tr36: + m.cs = 33 + goto _again + tr37: + m.cs = 34 + goto _again + tr38: + m.cs = 35 + goto _again + tr39: + m.cs = 36 + goto _again + tr40: + m.cs = 37 + goto _again + tr10: + m.cs = 38 + goto f6 + tr213: + m.cs = 39 + goto _again + tr43: + m.cs = 39 + goto f4 + tr45: + m.cs = 40 + goto _again + tr46: + m.cs = 40 + goto f9 + tr7: + m.cs = 41 + goto f1 + tr49: + m.cs = 42 + goto _again + tr50: + m.cs = 43 + goto _again + tr52: + m.cs = 45 + goto f1 + tr53: + m.cs = 46 + goto _again + tr54: + m.cs = 47 + goto _again + tr55: + m.cs = 48 + goto f2 + tr57: + m.cs = 49 + goto f4 + tr58: + m.cs = 50 + goto _again + tr59: + m.cs = 51 + goto _again + tr60: + m.cs = 52 + goto _again + tr61: + m.cs = 53 + goto _again + tr62: + m.cs = 54 + goto _again + tr63: + m.cs = 55 + goto _again + tr64: + m.cs = 56 + goto _again + tr65: + m.cs = 57 + goto _again + tr66: + m.cs = 58 + goto _again + tr67: + m.cs = 59 + goto _again + tr68: + m.cs = 60 + goto _again + tr69: + m.cs = 61 + goto _again + tr70: + m.cs = 62 + goto _again + tr71: + m.cs = 63 + goto _again + tr72: + m.cs = 64 + goto _again + tr73: + m.cs = 65 + goto f12 + tr75: + m.cs = 66 + goto f4 + tr78: + m.cs = 67 + goto _again + tr79: + m.cs = 68 + goto _again + tr80: + m.cs = 69 + goto f14 + tr215: + m.cs = 70 + goto f35 + tr217: + m.cs = 71 + goto _again + tr85: + m.cs = 71 + goto f18 + tr87: + m.cs = 72 + goto _again + tr88: + m.cs = 72 + goto f9 + tr76: + m.cs = 73 + goto f4 + tr91: + m.cs = 74 + goto _again + tr92: + m.cs = 75 + goto _again + tr93: + m.cs = 76 + goto _again + tr77: + m.cs = 77 + goto f4 + tr94: + m.cs = 78 + goto _again + tr95: + m.cs = 79 + goto _again + tr96: + m.cs = 80 + goto _again + tr97: + m.cs = 81 + goto _again + tr98: + m.cs = 82 + goto _again + tr99: + m.cs = 84 + goto f1 + tr100: + m.cs = 85 + goto _again + tr101: + m.cs = 86 + goto _again + tr102: + m.cs = 87 + goto f2 + tr104: + m.cs = 88 + goto f4 + tr107: + m.cs = 89 + goto _again + tr109: + m.cs = 90 + goto _again + tr111: + m.cs = 91 + goto _again + tr113: + m.cs = 92 + goto _again + tr115: + m.cs = 93 + goto _again + tr117: + m.cs = 94 + goto _again + tr119: + m.cs = 95 + goto _again + tr121: + m.cs = 96 + goto _again + tr123: + m.cs = 97 + goto _again + tr125: + m.cs = 98 + goto _again + tr127: + m.cs = 99 + goto _again + tr129: + m.cs = 100 + goto _again + tr131: + m.cs = 101 + goto _again + tr133: + m.cs = 102 + goto _again + tr135: + m.cs = 103 + goto _again + tr137: + m.cs = 104 + goto _again + tr139: + m.cs = 105 + goto _again + tr141: + m.cs = 106 + goto _again + tr143: + m.cs = 107 + goto _again + tr145: + m.cs = 108 + goto _again + tr147: + m.cs = 109 + goto _again + tr149: + m.cs = 110 + goto _again + tr151: + m.cs = 111 + goto _again + tr153: + m.cs = 112 + goto _again + tr155: + m.cs = 113 + goto _again + tr157: + m.cs = 114 + goto _again + tr159: + m.cs = 115 + goto _again + tr161: + m.cs = 116 + goto _again + tr163: + m.cs = 117 + goto _again + tr165: + m.cs = 118 + goto _again + tr167: + m.cs = 119 + goto _again + tr168: + m.cs = 120 + goto f6 + tr225: + m.cs = 121 + goto _again + tr223: + m.cs = 121 + goto f4 + tr173: + m.cs = 122 + goto _again + tr174: + m.cs = 122 + goto f9 + tr220: + m.cs = 123 + goto _again + tr171: + m.cs = 123 + goto f4 + tr178: + m.cs = 124 + goto _again + tr179: + m.cs = 124 + goto f9 + tr221: + m.cs = 125 + goto f38 + tr182: + m.cs = 126 + goto _again + tr228: + m.cs = 127 + goto _again + tr187: + m.cs = 127 + goto f26 + tr234: + m.cs = 127 + goto f44 + tr190: + m.cs = 128 + goto _again + tr191: + m.cs = 128 + goto f9 + tr240: + m.cs = 129 + goto _again + tr205: + m.cs = 129 + goto f31 + tr245: + m.cs = 129 + goto f50 + tr195: + m.cs = 130 + goto _again + tr196: + m.cs = 130 + goto f9 + tr237: + m.cs = 131 + goto f31 + tr200: + m.cs = 132 + goto _again + tr201: + m.cs = 132 + goto f9 + tr188: + m.cs = 133 + goto f26 + tr247: + m.cs = 134 + goto f45 + tr184: + m.cs = 135 + goto _again + tr206: + m.cs = 136 + goto f31 + tr248: + m.cs = 136 + goto f50 + tr166: + m.cs = 137 + goto _again + tr164: + m.cs = 138 + goto _again + tr162: + m.cs = 139 + goto _again + tr160: + m.cs = 140 + goto _again + tr158: + m.cs = 141 + goto _again + tr156: + m.cs = 142 + goto _again + tr154: + m.cs = 143 + goto _again + tr152: + m.cs = 144 + goto _again + tr150: + m.cs = 145 + goto _again + tr148: + m.cs = 146 + goto _again + tr146: + m.cs = 147 + goto _again + tr144: + m.cs = 148 + goto _again + tr142: + m.cs = 149 + goto _again + tr140: + m.cs = 150 + goto _again + tr138: + m.cs = 151 + goto _again + tr136: + m.cs = 152 + goto _again + tr134: + m.cs = 153 + goto _again + tr132: + m.cs = 154 + goto _again + tr130: + m.cs = 155 + goto _again + tr128: + m.cs = 156 + goto _again + tr126: + m.cs = 157 + goto _again + tr124: + m.cs = 158 + goto _again + tr122: + m.cs = 159 + goto _again + tr120: + m.cs = 160 + goto _again + tr118: + m.cs = 161 + goto _again + tr116: + m.cs = 162 + goto _again + tr114: + m.cs = 163 + goto _again + tr112: + m.cs = 164 + goto _again + tr110: + m.cs = 165 + goto _again + tr108: + m.cs = 166 + goto _again + tr105: + m.cs = 167 + goto f1 + tr208: + m.cs = 168 + goto _again + tr209: + m.cs = 169 + goto _again + tr210: + m.cs = 170 + goto f2 + tr211: + m.cs = 171 + goto _again + tr212: + m.cs = 172 + goto _again + tr42: + m.cs = 172 + goto f4 + tr47: + m.cs = 173 + goto _again + tr48: + m.cs = 173 + goto f9 + tr214: + m.cs = 174 + goto _again + tr82: + m.cs = 174 + goto f16 + tr216: + m.cs = 175 + goto _again + tr84: + m.cs = 175 + goto f18 + tr89: + m.cs = 176 + goto _again + tr90: + m.cs = 176 + goto f9 + tr218: + m.cs = 177 + goto _again + tr170: + m.cs = 177 + goto f4 + tr219: + m.cs = 178 + goto f38 + tr227: + m.cs = 178 + goto f42 + tr233: + m.cs = 178 + goto f45 + tr239: + m.cs = 178 + goto f48 + tr244: + m.cs = 178 + goto f51 + tr224: + m.cs = 179 + goto _again + tr222: + m.cs = 179 + goto f4 + tr175: + m.cs = 180 + goto _again + tr176: + m.cs = 180 + goto f9 + tr180: + m.cs = 181 + goto _again + tr181: + m.cs = 181 + goto f9 + tr226: + m.cs = 182 + goto _again + tr186: + m.cs = 182 + goto f26 + tr232: + m.cs = 182 + goto f44 + tr192: + m.cs = 183 + goto _again + tr193: + m.cs = 183 + goto f9 + tr229: + m.cs = 184 + goto f42 + tr235: + m.cs = 184 + goto f45 + tr230: + m.cs = 185 + goto _again + tr231: + m.cs = 186 + goto _again + tr238: + m.cs = 187 + goto _again + tr204: + m.cs = 187 + goto f31 + tr243: + m.cs = 187 + goto f50 + tr197: + m.cs = 188 + goto _again + tr198: + m.cs = 188 + goto f9 + tr241: + m.cs = 189 + goto _again + tr246: + m.cs = 189 + goto f50 + tr242: + m.cs = 190 + goto _again + tr202: + m.cs = 191 + goto _again + tr207: + m.cs = 192 + goto _again + tr249: + m.cs = 193 + goto _again + + f4: + + m.pb = m.p + + goto _again + f9: + + // List of positions in the buffer to later lowercase + output.tolower = append(output.tolower, m.p-m.pb) + + goto _again + f2: + + output.prefix = string(m.text()) + + goto _again + f6: + + output.ID = string(m.text()) + + goto _again + f38: + + output.SS = string(m.text()) + // Iterate upper letters lowering them + for _, i := range output.tolower { + m.data[m.pb+i] = m.data[m.pb+i] + 32 } - goto tr8 - st35: - if (m.p)++; (m.p) == (m.pe) { - goto _testEof35 + output.norm = string(m.text()) + // Revert the buffer to the original + for _, i := range output.tolower { + m.data[m.pb+i] = m.data[m.pb+i] - 32 } - stCase35: - switch (m.data)[(m.p)] { - case 45: - goto st36 - case 58: - goto tr10 + + goto _again + f0: + + m.err = fmt.Errorf(errPrefix, m.p) + (m.p)-- + + m.cs = 193 + goto _again + + goto _again + f5: + + m.err = fmt.Errorf(errIdentifier, m.p) + (m.p)-- + + m.cs = 193 + goto _again + + goto _again + f7: + + m.err = fmt.Errorf(errSpecificString, m.p) + (m.p)-- + + m.cs = 193 + goto _again + + goto _again + f23: + + if m.parsingMode == RFC2141Only || m.parsingMode == RFC8141Only { + m.err = fmt.Errorf(errHex, m.p) + (m.p)-- + + m.cs = 193 + goto _again + } - switch { - case (m.data)[(m.p)] < 65: - if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { - goto st36 - } - case (m.data)[(m.p)] > 90: - if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { - goto st36 - } - default: - goto st36 + + goto _again + f11: + + m.err = fmt.Errorf(errSCIMNamespace, m.p) + (m.p)-- + + m.cs = 193 + goto _again + + goto _again + f13: + + m.err = fmt.Errorf(errSCIMType, m.p) + (m.p)-- + + m.cs = 193 + goto _again + + goto _again + f15: + + m.err = fmt.Errorf(errSCIMName, m.p) + (m.p)-- + + m.cs = 193 + goto _again + + goto _again + f17: + + if m.p == m.pe { + m.err = fmt.Errorf(errSCIMOtherIncomplete, m.p-1) + } else { + m.err = fmt.Errorf(errSCIMOther, m.p) } - goto tr8 - st36: - if (m.p)++; (m.p) == (m.pe) { - goto _testEof36 + (m.p)-- + + m.cs = 193 + goto _again + + goto _again + f14: + + output.scim.Type = scimschema.TypeFromString(string(m.text())) + + goto _again + f16: + + output.scim.pos = m.p + + goto _again + f35: + + output.scim.Name = string(m.data[output.scim.pos:m.p]) + + goto _again + f18: + + output.scim.pos = m.p + + goto _again + f22: + + m.err = fmt.Errorf(err8141SpecificString, m.p) + (m.p)-- + + m.cs = 193 + goto _again + + goto _again + f21: + + m.err = fmt.Errorf(err8141Identifier, m.p) + (m.p)-- + + m.cs = 193 + goto _again + + goto _again + f42: + + output.rComponent = string(m.text()) + + goto _again + f48: + + output.qComponent = string(m.text()) + + goto _again + f44: + + if output.rStart { + m.err = fmt.Errorf(err8141RComponentStart, m.p) + (m.p)-- + + m.cs = 193 + goto _again + } - stCase36: - switch (m.data)[(m.p)] { - case 45: - goto st37 - case 58: - goto tr10 + output.rStart = true + + goto _again + f50: + + if output.qStart { + m.err = fmt.Errorf(err8141QComponentStart, m.p) + (m.p)-- + + m.cs = 193 + goto _again + } - switch { - case (m.data)[(m.p)] < 65: - if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { - goto st37 - } - case (m.data)[(m.p)] > 90: - if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { - goto st37 + output.qStart = true + + goto _again + f25: + + m.err = fmt.Errorf(err8141MalformedRComp, m.p) + (m.p)-- + + m.cs = 193 + goto _again + + goto _again + f30: + + m.err = fmt.Errorf(err8141MalformedQComp, m.p) + (m.p)-- + + m.cs = 193 + goto _again + + goto _again + f1: + + m.pb = m.p + + if m.parsingMode != RFC8141Only { + // Throw an error when: + // - we are entering here matching the the prefix in the namespace identifier part + // - looking ahead (3 chars) we find a colon + if pos := m.p + 3; pos < m.pe && m.data[pos] == 58 && output.prefix != "" { + m.err = fmt.Errorf(errNoUrnWithinID, pos) + (m.p)-- + + m.cs = 193 + goto _again + } - default: - goto st37 - } - goto tr8 - st37: - if (m.p)++; (m.p) == (m.pe) { - goto _testEof37 - } - stCase37: - if (m.data)[(m.p)] == 58 { - goto tr10 } - goto tr8 - tr10: + + goto _again + f12: output.ID = string(m.text()) - goto st38 - st38: - if (m.p)++; (m.p) == (m.pe) { - goto _testEof38 - } - stCase38: - switch (m.data)[(m.p)] { - case 33: - goto tr42 - case 36: - goto tr42 - case 37: - goto tr43 - case 61: - goto tr42 - case 95: - goto tr42 - } - switch { - case (m.data)[(m.p)] < 48: - if 39 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 46 { - goto tr42 - } - case (m.data)[(m.p)] > 59: - switch { - case (m.data)[(m.p)] > 90: - if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { - goto tr42 - } - case (m.data)[(m.p)] >= 64: - goto tr42 - } - default: - goto tr42 - } - goto tr41 - tr42: + output.scim = &SCIM{} - m.pb = m.p + goto _again + f3: + + m.err = fmt.Errorf(errIdentifier, m.p) + (m.p)-- + + m.cs = 193 + goto _again + + m.err = fmt.Errorf(errPrefix, m.p) + (m.p)-- + + m.cs = 193 + goto _again + + goto _again + f10: + + m.err = fmt.Errorf(errIdentifier, m.p) + (m.p)-- + + m.cs = 193 + goto _again + + m.err = fmt.Errorf(errNoUrnWithinID, m.p) + (m.p)-- + + m.cs = 193 + goto _again + + goto _again + f8: + + if m.parsingMode == RFC2141Only || m.parsingMode == RFC8141Only { + m.err = fmt.Errorf(errHex, m.p) + (m.p)-- + + m.cs = 193 + goto _again - goto st88 - st88: - if (m.p)++; (m.p) == (m.pe) { - goto _testEof88 } - stCase88: - switch (m.data)[(m.p)] { - case 33: - goto st88 - case 36: - goto st88 - case 37: - goto st39 - case 61: - goto st88 - case 95: - goto st88 + + m.err = fmt.Errorf(errSpecificString, m.p) + (m.p)-- + + m.cs = 193 + goto _again + + goto _again + f19: + + if m.parsingMode == RFC2141Only || m.parsingMode == RFC8141Only { + m.err = fmt.Errorf(errHex, m.p) + (m.p)-- + + m.cs = 193 + goto _again + } - switch { - case (m.data)[(m.p)] < 48: - if 39 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 46 { - goto st88 - } - case (m.data)[(m.p)] > 59: - switch { - case (m.data)[(m.p)] > 90: - if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { - goto st88 - } - case (m.data)[(m.p)] >= 64: - goto st88 - } - default: - goto st88 + + if m.p == m.pe { + m.err = fmt.Errorf(errSCIMOtherIncomplete, m.p-1) + } else { + m.err = fmt.Errorf(errSCIMOther, m.p) } - goto tr41 - tr43: + (m.p)-- - m.pb = m.p + m.cs = 193 + goto _again - goto st39 - st39: - if (m.p)++; (m.p) == (m.pe) { - goto _testEof39 - } - stCase39: - switch { - case (m.data)[(m.p)] < 65: - if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { - goto st40 - } - case (m.data)[(m.p)] > 90: - if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { - goto st40 - } - default: - goto tr46 - } - goto tr44 - tr46: + goto _again + f24: - m.tolower = append(m.tolower, m.p-m.pb) + if m.parsingMode == RFC2141Only || m.parsingMode == RFC8141Only { + m.err = fmt.Errorf(errHex, m.p) + (m.p)-- + + m.cs = 193 + goto _again - goto st40 - st40: - if (m.p)++; (m.p) == (m.pe) { - goto _testEof40 - } - stCase40: - switch { - case (m.data)[(m.p)] < 65: - if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { - goto st89 - } - case (m.data)[(m.p)] > 90: - if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { - goto st89 - } - default: - goto tr48 } - goto tr44 - tr48: - m.tolower = append(m.tolower, m.p-m.pb) + m.err = fmt.Errorf(err8141SpecificString, m.p) + (m.p)-- - goto st89 - st89: - if (m.p)++; (m.p) == (m.pe) { - goto _testEof89 - } - stCase89: - switch (m.data)[(m.p)] { - case 33: - goto st88 - case 36: - goto st88 - case 37: - goto st39 - case 61: - goto st88 - case 95: - goto st88 - } - switch { - case (m.data)[(m.p)] < 48: - if 39 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 46 { - goto st88 - } - case (m.data)[(m.p)] > 59: - switch { - case (m.data)[(m.p)] > 90: - if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { - goto st88 - } - case (m.data)[(m.p)] >= 64: - goto st88 - } - default: - goto st88 - } - goto tr44 - tr7: + m.cs = 193 + goto _again - m.pb = m.p + goto _again + f27: - // Throw an error when: - // - we are entering here matching the the prefix in the namespace identifier part - // - looking ahead (3 chars) we find a colon - if pos := m.p + 3; pos < m.pe && m.data[pos] == 58 && output.prefix != "" { - m.err = fmt.Errorf(errNoUrnWithinID, pos) + if m.parsingMode == RFC2141Only || m.parsingMode == RFC8141Only { + m.err = fmt.Errorf(errHex, m.p) (m.p)-- - { - goto st95 - } - } + m.cs = 193 + goto _again - goto st41 - st41: - if (m.p)++; (m.p) == (m.pe) { - goto _testEof41 - } - stCase41: - switch (m.data)[(m.p)] { - case 45: - goto st7 - case 58: - goto tr10 - case 82: - goto st42 - case 114: - goto st42 - } - switch { - case (m.data)[(m.p)] < 65: - if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { - goto st7 - } - case (m.data)[(m.p)] > 90: - if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { - goto st7 - } - default: - goto st7 - } - goto tr5 - st42: - if (m.p)++; (m.p) == (m.pe) { - goto _testEof42 - } - stCase42: - switch (m.data)[(m.p)] { - case 45: - goto st8 - case 58: - goto tr10 - case 78: - goto st43 - case 110: - goto st43 - } - switch { - case (m.data)[(m.p)] < 65: - if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { - goto st8 - } - case (m.data)[(m.p)] > 90: - if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { - goto st8 - } - default: - goto st8 - } - goto tr5 - st43: - if (m.p)++; (m.p) == (m.pe) { - goto _testEof43 - } - stCase43: - if (m.data)[(m.p)] == 45 { - goto st9 } - switch { - case (m.data)[(m.p)] < 65: - if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { - goto st9 - } - case (m.data)[(m.p)] > 90: - if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { - goto st9 - } - default: - goto st9 - } - goto tr51 - stCase44: - switch (m.data)[(m.p)] { - case 85: - goto tr53 - case 117: - goto tr53 - } - goto tr52 - tr53: - m.pb = m.p + m.err = fmt.Errorf(err8141MalformedRComp, m.p) + (m.p)-- + + m.cs = 193 + goto _again - // Throw an error when: - // - we are entering here matching the the prefix in the namespace identifier part - // - looking ahead (3 chars) we find a colon - if pos := m.p + 3; pos < m.pe && m.data[pos] == 58 && output.prefix != "" { - m.err = fmt.Errorf(errNoUrnWithinID, pos) + goto _again + f28: + + if m.parsingMode == RFC2141Only || m.parsingMode == RFC8141Only { + m.err = fmt.Errorf(errHex, m.p) (m.p)-- - { - goto st95 - } - } + m.cs = 193 + goto _again - goto st45 - st45: - if (m.p)++; (m.p) == (m.pe) { - goto _testEof45 - } - stCase45: - switch (m.data)[(m.p)] { - case 82: - goto st46 - case 114: - goto st46 - } - goto tr52 - st46: - if (m.p)++; (m.p) == (m.pe) { - goto _testEof46 - } - stCase46: - switch (m.data)[(m.p)] { - case 78: - goto st47 - case 110: - goto st47 - } - goto tr52 - st47: - if (m.p)++; (m.p) == (m.pe) { - goto _testEof47 - } - stCase47: - if (m.data)[(m.p)] == 58 { - goto tr56 } - goto tr52 - tr56: - output.prefix = string(m.text()) - { - goto st5 - } - goto st90 - st90: - if (m.p)++; (m.p) == (m.pe) { - goto _testEof90 - } - stCase90: - goto tr52 - st48: - if (m.p)++; (m.p) == (m.pe) { - goto _testEof48 - } - stCase48: - if (m.data)[(m.p)] == 105 { - goto tr58 - } - goto tr57 - tr58: + m.err = fmt.Errorf(err8141MalformedQComp, m.p) + (m.p)-- - m.pb = m.p + m.cs = 193 + goto _again - goto st49 - st49: - if (m.p)++; (m.p) == (m.pe) { - goto _testEof49 - } - stCase49: - if (m.data)[(m.p)] == 101 { - goto st50 - } - goto tr57 - st50: - if (m.p)++; (m.p) == (m.pe) { - goto _testEof50 - } - stCase50: - if (m.data)[(m.p)] == 116 { - goto st51 - } - goto tr57 - st51: - if (m.p)++; (m.p) == (m.pe) { - goto _testEof51 - } - stCase51: - if (m.data)[(m.p)] == 102 { - goto st52 - } - goto tr57 - st52: - if (m.p)++; (m.p) == (m.pe) { - goto _testEof52 - } - stCase52: - if (m.data)[(m.p)] == 58 { - goto st53 - } - goto tr57 - st53: - if (m.p)++; (m.p) == (m.pe) { - goto _testEof53 - } - stCase53: - if (m.data)[(m.p)] == 112 { - goto st54 - } - goto tr57 - st54: - if (m.p)++; (m.p) == (m.pe) { - goto _testEof54 - } - stCase54: - if (m.data)[(m.p)] == 97 { - goto st55 - } - goto tr57 - st55: - if (m.p)++; (m.p) == (m.pe) { - goto _testEof55 - } - stCase55: - if (m.data)[(m.p)] == 114 { - goto st56 - } - goto tr57 - st56: - if (m.p)++; (m.p) == (m.pe) { - goto _testEof56 - } - stCase56: - if (m.data)[(m.p)] == 97 { - goto st57 - } - goto tr57 - st57: - if (m.p)++; (m.p) == (m.pe) { - goto _testEof57 - } - stCase57: - if (m.data)[(m.p)] == 109 { - goto st58 - } - goto tr57 - st58: - if (m.p)++; (m.p) == (m.pe) { - goto _testEof58 - } - stCase58: - if (m.data)[(m.p)] == 115 { - goto st59 - } - goto tr57 - st59: - if (m.p)++; (m.p) == (m.pe) { - goto _testEof59 - } - stCase59: - if (m.data)[(m.p)] == 58 { - goto st60 - } - goto tr57 - st60: - if (m.p)++; (m.p) == (m.pe) { - goto _testEof60 - } - stCase60: - if (m.data)[(m.p)] == 115 { - goto st61 - } - goto tr57 - st61: - if (m.p)++; (m.p) == (m.pe) { - goto _testEof61 - } - stCase61: - if (m.data)[(m.p)] == 99 { - goto st62 - } - goto tr57 - st62: - if (m.p)++; (m.p) == (m.pe) { - goto _testEof62 - } - stCase62: - if (m.data)[(m.p)] == 105 { - goto st63 - } - goto tr57 - st63: - if (m.p)++; (m.p) == (m.pe) { - goto _testEof63 - } - stCase63: - if (m.data)[(m.p)] == 109 { - goto st64 - } - goto tr57 - st64: - if (m.p)++; (m.p) == (m.pe) { - goto _testEof64 - } - stCase64: - if (m.data)[(m.p)] == 58 { - goto tr74 - } - goto tr57 - tr74: + goto _again + f20: - output.ID = string(m.text()) + m.err = fmt.Errorf(err8141Identifier, m.p) + (m.p)-- - output.scim = &SCIM{} + m.cs = 193 + goto _again + + m.err = fmt.Errorf(errPrefix, m.p) + (m.p)-- + + m.cs = 193 + goto _again + + goto _again + f26: + + if output.rStart { + m.err = fmt.Errorf(err8141RComponentStart, m.p) + (m.p)-- + + m.cs = 193 + goto _again - goto st65 - st65: - if (m.p)++; (m.p) == (m.pe) { - goto _testEof65 - } - stCase65: - switch (m.data)[(m.p)] { - case 97: - goto tr76 - case 112: - goto tr77 - case 115: - goto tr78 } - goto tr75 - tr76: + output.rStart = true m.pb = m.p - goto st66 - st66: - if (m.p)++; (m.p) == (m.pe) { - goto _testEof66 - } - stCase66: - if (m.data)[(m.p)] == 112 { - goto st67 - } - goto tr75 - st67: - if (m.p)++; (m.p) == (m.pe) { - goto _testEof67 - } - stCase67: - if (m.data)[(m.p)] == 105 { - goto st68 - } - goto tr75 - st68: - if (m.p)++; (m.p) == (m.pe) { - goto _testEof68 - } - stCase68: - if (m.data)[(m.p)] == 58 { - goto tr81 - } - goto tr75 - tr81: + goto _again + f45: - output.scim.Type = scimschema.TypeFromString(string(m.text())) + if output.rStart { + m.err = fmt.Errorf(err8141RComponentStart, m.p) + (m.p)-- + + m.cs = 193 + goto _again - goto st69 - st69: - if (m.p)++; (m.p) == (m.pe) { - goto _testEof69 - } - stCase69: - switch { - case (m.data)[(m.p)] < 65: - if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { - goto tr83 - } - case (m.data)[(m.p)] > 90: - if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { - goto tr83 - } - default: - goto tr83 } - goto tr82 - tr83: + output.rStart = true - output.scim.pos = m.p + output.rComponent = string(m.text()) - goto st91 - st91: - if (m.p)++; (m.p) == (m.pe) { - goto _testEof91 - } - stCase91: - if (m.data)[(m.p)] == 58 { - goto tr107 - } - switch { - case (m.data)[(m.p)] < 65: - if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { - goto st91 - } - case (m.data)[(m.p)] > 90: - if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { - goto st91 - } - default: - goto st91 - } - goto tr82 - tr107: + goto _again + f31: - output.scim.Name = string(m.data[output.scim.pos:m.p]) + if output.qStart { + m.err = fmt.Errorf(err8141QComponentStart, m.p) + (m.p)-- + + m.cs = 193 + goto _again - goto st70 - st70: - if (m.p)++; (m.p) == (m.pe) { - goto _testEof70 - } - stCase70: - switch (m.data)[(m.p)] { - case 33: - goto tr85 - case 36: - goto tr85 - case 37: - goto tr86 - case 61: - goto tr85 - case 95: - goto tr85 - } - switch { - case (m.data)[(m.p)] < 48: - if 39 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 46 { - goto tr85 - } - case (m.data)[(m.p)] > 59: - switch { - case (m.data)[(m.p)] > 90: - if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { - goto tr85 - } - case (m.data)[(m.p)] >= 64: - goto tr85 - } - default: - goto tr85 } - goto tr84 - tr85: + output.qStart = true - output.scim.pos = m.p + m.pb = m.p - goto st92 - st92: - if (m.p)++; (m.p) == (m.pe) { - goto _testEof92 - } - stCase92: - switch (m.data)[(m.p)] { - case 33: - goto st92 - case 36: - goto st92 - case 37: - goto st71 - case 61: - goto st92 - case 95: - goto st92 - } - switch { - case (m.data)[(m.p)] < 48: - if 39 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 46 { - goto st92 - } - case (m.data)[(m.p)] > 59: - switch { - case (m.data)[(m.p)] > 90: - if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { - goto st92 - } - case (m.data)[(m.p)] >= 64: - goto st92 - } - default: - goto st92 - } - goto tr84 - tr86: + goto _again + f51: - output.scim.pos = m.p + if output.qStart { + m.err = fmt.Errorf(err8141QComponentStart, m.p) + (m.p)-- + + m.cs = 193 + goto _again - goto st71 - st71: - if (m.p)++; (m.p) == (m.pe) { - goto _testEof71 - } - stCase71: - switch { - case (m.data)[(m.p)] < 65: - if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { - goto st72 - } - case (m.data)[(m.p)] > 90: - if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { - goto st72 - } - default: - goto tr89 } - goto tr87 - tr89: + output.qStart = true - m.tolower = append(m.tolower, m.p-m.pb) + output.qComponent = string(m.text()) - goto st72 - st72: - if (m.p)++; (m.p) == (m.pe) { - goto _testEof72 - } - stCase72: - switch { - case (m.data)[(m.p)] < 65: - if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 { - goto st93 - } - case (m.data)[(m.p)] > 90: - if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { - goto st93 - } - default: - goto tr91 - } - goto tr87 - tr91: + goto _again + f46: - m.tolower = append(m.tolower, m.p-m.pb) + m.err = fmt.Errorf(err8141MalformedRComp, m.p) + (m.p)-- - goto st93 - st93: - if (m.p)++; (m.p) == (m.pe) { - goto _testEof93 - } - stCase93: - switch (m.data)[(m.p)] { - case 33: - goto st92 - case 36: - goto st92 - case 37: - goto st71 - case 61: - goto st92 - case 95: - goto st92 - } - switch { - case (m.data)[(m.p)] < 48: - if 39 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 46 { - goto st92 - } - case (m.data)[(m.p)] > 59: - switch { - case (m.data)[(m.p)] > 90: - if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 { - goto st92 - } - case (m.data)[(m.p)] >= 64: - goto st92 - } - default: - goto st92 - } - goto tr87 - tr77: + m.cs = 193 + goto _again - m.pb = m.p + m.err = fmt.Errorf(err8141MalformedQComp, m.p) + (m.p)-- - goto st73 - st73: - if (m.p)++; (m.p) == (m.pe) { - goto _testEof73 - } - stCase73: - if (m.data)[(m.p)] == 97 { - goto st74 - } - goto tr75 - st74: - if (m.p)++; (m.p) == (m.pe) { - goto _testEof74 - } - stCase74: - if (m.data)[(m.p)] == 114 { - goto st75 - } - goto tr75 - st75: - if (m.p)++; (m.p) == (m.pe) { - goto _testEof75 - } - stCase75: - if (m.data)[(m.p)] == 97 { - goto st76 - } - goto tr75 - st76: - if (m.p)++; (m.p) == (m.pe) { - goto _testEof76 - } - stCase76: - if (m.data)[(m.p)] == 109 { - goto st68 - } - goto tr75 - tr78: + m.cs = 193 + goto _again - m.pb = m.p + goto _again + f29: + + if m.parsingMode == RFC2141Only || m.parsingMode == RFC8141Only { + m.err = fmt.Errorf(errHex, m.p) + (m.p)-- + + m.cs = 193 + goto _again - goto st77 - st77: - if (m.p)++; (m.p) == (m.pe) { - goto _testEof77 - } - stCase77: - if (m.data)[(m.p)] == 99 { - goto st78 - } - goto tr75 - st78: - if (m.p)++; (m.p) == (m.pe) { - goto _testEof78 - } - stCase78: - if (m.data)[(m.p)] == 104 { - goto st79 - } - goto tr75 - st79: - if (m.p)++; (m.p) == (m.pe) { - goto _testEof79 - } - stCase79: - if (m.data)[(m.p)] == 101 { - goto st80 - } - goto tr75 - st80: - if (m.p)++; (m.p) == (m.pe) { - goto _testEof80 - } - stCase80: - if (m.data)[(m.p)] == 109 { - goto st81 - } - goto tr75 - st81: - if (m.p)++; (m.p) == (m.pe) { - goto _testEof81 - } - stCase81: - if (m.data)[(m.p)] == 97 { - goto st82 - } - goto tr75 - st82: - if (m.p)++; (m.p) == (m.pe) { - goto _testEof82 - } - stCase82: - if (m.data)[(m.p)] == 115 { - goto st68 - } - goto tr75 - stCase83: - switch (m.data)[(m.p)] { - case 85: - goto tr100 - case 117: - goto tr100 } - goto tr52 - tr100: - m.pb = m.p + m.err = fmt.Errorf(err8141MalformedRComp, m.p) + (m.p)-- + + m.cs = 193 + goto _again + + m.err = fmt.Errorf(err8141MalformedQComp, m.p) + (m.p)-- + + m.cs = 193 + goto _again + + goto _again + + _again: + switch _toStateActions[m.cs] { + case 33: - // Throw an error when: - // - we are entering here matching the the prefix in the namespace identifier part - // - looking ahead (3 chars) we find a colon - if pos := m.p + 3; pos < m.pe && m.data[pos] == 58 && output.prefix != "" { - m.err = fmt.Errorf(errNoUrnWithinID, pos) (m.p)-- - { - goto st95 - } - } - - goto st84 - st84: - if (m.p)++; (m.p) == (m.pe) { - goto _testEof84 - } - stCase84: - switch (m.data)[(m.p)] { - case 82: - goto st85 - case 114: - goto st85 - } - goto tr52 - st85: - if (m.p)++; (m.p) == (m.pe) { - goto _testEof85 - } - stCase85: - switch (m.data)[(m.p)] { - case 78: - goto st86 - case 110: - goto st86 - } - goto tr52 - st86: - if (m.p)++; (m.p) == (m.pe) { - goto _testEof86 - } - stCase86: - if (m.data)[(m.p)] == 58 { - goto tr103 + m.err = fmt.Errorf(err8141InformalID, m.p) + m.cs = 193 + goto _again } - goto tr52 - tr103: - output.prefix = string(m.text()) - { - goto st48 + if m.cs == 0 { + goto _out } - goto st94 - st94: - if (m.p)++; (m.p) == (m.pe) { - goto _testEof94 + if (m.p)++; (m.p) != (m.pe) { + goto _resume } - stCase94: - goto tr52 - st95: - if (m.p)++; (m.p) == (m.pe) { - goto _testEof95 - } - stCase95: - switch (m.data)[(m.p)] { - case 10: - goto st0 - case 13: - goto st0 - } - goto st95 - stOut: - _testEof2: - m.cs = 2 - goto _testEof - _testEof3: - m.cs = 3 - goto _testEof - _testEof4: - m.cs = 4 - goto _testEof - _testEof87: - m.cs = 87 - goto _testEof - _testEof5: - m.cs = 5 - goto _testEof - _testEof6: - m.cs = 6 - goto _testEof - _testEof7: - m.cs = 7 - goto _testEof - _testEof8: - m.cs = 8 - goto _testEof - _testEof9: - m.cs = 9 - goto _testEof - _testEof10: - m.cs = 10 - goto _testEof - _testEof11: - m.cs = 11 - goto _testEof - _testEof12: - m.cs = 12 - goto _testEof - _testEof13: - m.cs = 13 - goto _testEof - _testEof14: - m.cs = 14 - goto _testEof - _testEof15: - m.cs = 15 - goto _testEof - _testEof16: - m.cs = 16 - goto _testEof - _testEof17: - m.cs = 17 - goto _testEof - _testEof18: - m.cs = 18 - goto _testEof - _testEof19: - m.cs = 19 - goto _testEof - _testEof20: - m.cs = 20 - goto _testEof - _testEof21: - m.cs = 21 - goto _testEof - _testEof22: - m.cs = 22 - goto _testEof - _testEof23: - m.cs = 23 - goto _testEof - _testEof24: - m.cs = 24 - goto _testEof - _testEof25: - m.cs = 25 - goto _testEof - _testEof26: - m.cs = 26 - goto _testEof - _testEof27: - m.cs = 27 - goto _testEof - _testEof28: - m.cs = 28 - goto _testEof - _testEof29: - m.cs = 29 - goto _testEof - _testEof30: - m.cs = 30 - goto _testEof - _testEof31: - m.cs = 31 - goto _testEof - _testEof32: - m.cs = 32 - goto _testEof - _testEof33: - m.cs = 33 - goto _testEof - _testEof34: - m.cs = 34 - goto _testEof - _testEof35: - m.cs = 35 - goto _testEof - _testEof36: - m.cs = 36 - goto _testEof - _testEof37: - m.cs = 37 - goto _testEof - _testEof38: - m.cs = 38 - goto _testEof - _testEof88: - m.cs = 88 - goto _testEof - _testEof39: - m.cs = 39 - goto _testEof - _testEof40: - m.cs = 40 - goto _testEof - _testEof89: - m.cs = 89 - goto _testEof - _testEof41: - m.cs = 41 - goto _testEof - _testEof42: - m.cs = 42 - goto _testEof - _testEof43: - m.cs = 43 - goto _testEof - _testEof45: - m.cs = 45 - goto _testEof - _testEof46: - m.cs = 46 - goto _testEof - _testEof47: - m.cs = 47 - goto _testEof - _testEof90: - m.cs = 90 - goto _testEof - _testEof48: - m.cs = 48 - goto _testEof - _testEof49: - m.cs = 49 - goto _testEof - _testEof50: - m.cs = 50 - goto _testEof - _testEof51: - m.cs = 51 - goto _testEof - _testEof52: - m.cs = 52 - goto _testEof - _testEof53: - m.cs = 53 - goto _testEof - _testEof54: - m.cs = 54 - goto _testEof - _testEof55: - m.cs = 55 - goto _testEof - _testEof56: - m.cs = 56 - goto _testEof - _testEof57: - m.cs = 57 - goto _testEof - _testEof58: - m.cs = 58 - goto _testEof - _testEof59: - m.cs = 59 - goto _testEof - _testEof60: - m.cs = 60 - goto _testEof - _testEof61: - m.cs = 61 - goto _testEof - _testEof62: - m.cs = 62 - goto _testEof - _testEof63: - m.cs = 63 - goto _testEof - _testEof64: - m.cs = 64 - goto _testEof - _testEof65: - m.cs = 65 - goto _testEof - _testEof66: - m.cs = 66 - goto _testEof - _testEof67: - m.cs = 67 - goto _testEof - _testEof68: - m.cs = 68 - goto _testEof - _testEof69: - m.cs = 69 - goto _testEof - _testEof91: - m.cs = 91 - goto _testEof - _testEof70: - m.cs = 70 - goto _testEof - _testEof92: - m.cs = 92 - goto _testEof - _testEof71: - m.cs = 71 - goto _testEof - _testEof72: - m.cs = 72 - goto _testEof - _testEof93: - m.cs = 93 - goto _testEof - _testEof73: - m.cs = 73 - goto _testEof - _testEof74: - m.cs = 74 - goto _testEof - _testEof75: - m.cs = 75 - goto _testEof - _testEof76: - m.cs = 76 - goto _testEof - _testEof77: - m.cs = 77 - goto _testEof - _testEof78: - m.cs = 78 - goto _testEof - _testEof79: - m.cs = 79 - goto _testEof - _testEof80: - m.cs = 80 - goto _testEof - _testEof81: - m.cs = 81 - goto _testEof - _testEof82: - m.cs = 82 - goto _testEof - _testEof84: - m.cs = 84 - goto _testEof - _testEof85: - m.cs = 85 - goto _testEof - _testEof86: - m.cs = 86 - goto _testEof - _testEof94: - m.cs = 94 - goto _testEof - _testEof95: - m.cs = 95 - goto _testEof - _testEof: { } if (m.p) == (m.eof) { - switch m.cs { - case 44, 45, 46, 47, 83, 84, 85, 86: + switch _eofActions[m.cs] { + case 1: m.err = fmt.Errorf(errPrefix, m.p) (m.p)-- - { - goto st95 - } + m.cs = 193 + goto _again - case 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64: + case 6: + + m.err = fmt.Errorf(errIdentifier, m.p) + (m.p)-- - // In case we are in fallback mode we are now gonna jump to normal RFC2141 URN parsing - if m.parsingMode == All { - // TODO: store why the machine fallback to the RFC2141 one? - output.scim = nil - // Rewind the cursor after the prefix ends ("urn:") - (m.p) = (4) - 1 + m.cs = 193 + goto _again - // Go to the "urn" machine from this point on - { - goto st5 - } - } - m.err = fmt.Errorf(errSCIMNamespace, m.p) + case 8: + + m.err = fmt.Errorf(errSpecificString, m.p) (m.p)-- - { - goto st95 - } + m.cs = 193 + goto _again + + case 24: - case 65, 66, 67, 68, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82: + if m.parsingMode == RFC2141Only || m.parsingMode == RFC8141Only { + m.err = fmt.Errorf(errHex, m.p) + (m.p)-- - // In case we are in fallback mode we are now gonna jump to normal RFC2141 URN parsing - if m.parsingMode == All { - // TODO: store why the machine fallback to the RFC2141 one? - output.scim = nil - // Rewind the cursor after the prefix ends ("urn:") - (m.p) = (4) - 1 + m.cs = 193 + goto _again - // Go to the "urn" machine from this point on - { - goto st5 - } } - m.err = fmt.Errorf(errSCIMType, m.p) + + case 12: + + m.err = fmt.Errorf(errSCIMNamespace, m.p) (m.p)-- - { - goto st95 - } + m.cs = 193 + goto _again - case 69: + case 14: - // In case we are in fallback mode we are now gonna jump to normal RFC2141 URN parsing - if m.parsingMode == All { - // TODO: store why the machine fallback to the RFC2141 one? - output.scim = nil - // Rewind the cursor after the prefix ends ("urn:") - (m.p) = (4) - 1 + m.err = fmt.Errorf(errSCIMType, m.p) + (m.p)-- + + m.cs = 193 + goto _again + + case 16: - // Go to the "urn" machine from this point on - { - goto st5 - } - } m.err = fmt.Errorf(errSCIMName, m.p) (m.p)-- - { - goto st95 - } - - case 70: + m.cs = 193 + goto _again - // In case we are in fallback mode we are now gonna jump to normal RFC2141 URN parsing - if m.parsingMode == All { - // TODO: store why the machine fallback to the RFC2141 one? - output.scim = nil - // Rewind the cursor after the prefix ends ("urn:") - (m.p) = (4) - 1 + case 18: - // Go to the "urn" machine from this point on - { - goto st5 - } - } if m.p == m.pe { m.err = fmt.Errorf(errSCIMOtherIncomplete, m.p-1) } else { @@ -2739,94 +4707,127 @@ func (m *machine) Parse(input []byte) (*URN, error) { } (m.p)-- - { - goto st95 - } + m.cs = 193 + goto _again - case 88, 89: + case 23: - raw := m.text() - output.SS = string(raw) - // Iterate upper letters lowering them - for _, i := range m.tolower { - raw[i] = raw[i] + 32 - } - output.norm = string(raw) + m.err = fmt.Errorf(err8141SpecificString, m.p) + (m.p)-- - output.kind = RFC2141 + m.cs = 193 + goto _again - case 1, 2, 3, 4: + case 22: - m.err = fmt.Errorf(errPrefix, m.p) + m.err = fmt.Errorf(err8141Identifier, m.p) (m.p)-- - { - goto st95 - } + m.cs = 193 + goto _again + + case 26: + + m.err = fmt.Errorf(err8141MalformedRComp, m.p) + (m.p)-- - m.err = fmt.Errorf(errParse, m.p) + m.cs = 193 + goto _again + + case 31: + + m.err = fmt.Errorf(err8141MalformedQComp, m.p) (m.p)-- - { - goto st95 + m.cs = 193 + goto _again + + case 34: + + output.SS = string(m.text()) + // Iterate upper letters lowering them + for _, i := range output.tolower { + m.data[m.pb+i] = m.data[m.pb+i] + 32 + } + output.norm = string(m.text()) + // Revert the buffer to the original + for _, i := range output.tolower { + m.data[m.pb+i] = m.data[m.pb+i] - 32 + } + + output.kind = RFC2141 + + case 38: + + output.SS = string(m.text()) + // Iterate upper letters lowering them + for _, i := range output.tolower { + m.data[m.pb+i] = m.data[m.pb+i] + 32 + } + output.norm = string(m.text()) + // Revert the buffer to the original + for _, i := range output.tolower { + m.data[m.pb+i] = m.data[m.pb+i] - 32 } - case 6, 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, 37: + output.kind = RFC8141 + + case 4: m.err = fmt.Errorf(errIdentifier, m.p) (m.p)-- - { - goto st95 - } + m.cs = 193 + goto _again - m.err = fmt.Errorf(errParse, m.p) + m.err = fmt.Errorf(errPrefix, m.p) (m.p)-- - { - goto st95 - } + m.cs = 193 + goto _again - case 38: + case 11: - m.err = fmt.Errorf(errSpecificString, m.p) + m.err = fmt.Errorf(errIdentifier, m.p) (m.p)-- - { - goto st95 - } + m.cs = 193 + goto _again - m.err = fmt.Errorf(errParse, m.p) + m.err = fmt.Errorf(errNoUrnWithinID, m.p) (m.p)-- - { - goto st95 - } + m.cs = 193 + goto _again - case 71, 72: + case 9: - if m.parsingMode == RFC2141Only || m.parsingMode == All { + if m.parsingMode == RFC2141Only || m.parsingMode == RFC8141Only { m.err = fmt.Errorf(errHex, m.p) (m.p)-- - { - goto st95 - } + m.cs = 193 + goto _again + } - // Otherwise, we expect the machine to fallback to SCIM errors - // In case we are in fallback mode we are now gonna jump to normal RFC2141 URN parsing - if m.parsingMode == All { - // TODO: store why the machine fallback to the RFC2141 one? - output.scim = nil - // Rewind the cursor after the prefix ends ("urn:") - (m.p) = (4) - 1 + m.err = fmt.Errorf(errSpecificString, m.p) + (m.p)-- + + m.cs = 193 + goto _again + + case 20: + + if m.parsingMode == RFC2141Only || m.parsingMode == RFC8141Only { + m.err = fmt.Errorf(errHex, m.p) + (m.p)-- + + m.cs = 193 + goto _again - // Go to the "urn" machine from this point on - { - goto st5 - } } + if m.p == m.pe { m.err = fmt.Errorf(errSCIMOtherIncomplete, m.p-1) } else { @@ -2834,109 +4835,188 @@ func (m *machine) Parse(input []byte) (*URN, error) { } (m.p)-- - { - goto st95 - } + m.cs = 193 + goto _again - case 5, 41, 42: + case 25: - m.err = fmt.Errorf(errIdentifier, m.p) - (m.p)-- + if m.parsingMode == RFC2141Only || m.parsingMode == RFC8141Only { + m.err = fmt.Errorf(errHex, m.p) + (m.p)-- + + m.cs = 193 + goto _again - { - goto st95 } - m.err = fmt.Errorf(errPrefix, m.p) + m.err = fmt.Errorf(err8141SpecificString, m.p) (m.p)-- - { - goto st95 + m.cs = 193 + goto _again + + case 28: + + if m.parsingMode == RFC2141Only || m.parsingMode == RFC8141Only { + m.err = fmt.Errorf(errHex, m.p) + (m.p)-- + + m.cs = 193 + goto _again + } - m.err = fmt.Errorf(errParse, m.p) + m.err = fmt.Errorf(err8141MalformedRComp, m.p) (m.p)-- - { - goto st95 - } + m.cs = 193 + goto _again - case 43: + case 29: - m.err = fmt.Errorf(errIdentifier, m.p) - (m.p)-- + if m.parsingMode == RFC2141Only || m.parsingMode == RFC8141Only { + m.err = fmt.Errorf(errHex, m.p) + (m.p)-- + + m.cs = 193 + goto _again - { - goto st95 } - m.err = fmt.Errorf(errNoUrnWithinID, m.p) + m.err = fmt.Errorf(err8141MalformedQComp, m.p) (m.p)-- - { - goto st95 - } + m.cs = 193 + goto _again - m.err = fmt.Errorf(errParse, m.p) + case 21: + + m.err = fmt.Errorf(err8141Identifier, m.p) (m.p)-- - { - goto st95 - } + m.cs = 193 + goto _again + + m.err = fmt.Errorf(errPrefix, m.p) + (m.p)-- + + m.cs = 193 + goto _again + + case 42: + + output.rComponent = string(m.text()) + + output.kind = RFC8141 + + case 48: + + output.qComponent = string(m.text()) + + output.kind = RFC8141 + + case 41: + + output.fComponent = string(m.text()) - case 39, 40: + output.kind = RFC8141 - if m.parsingMode == RFC2141Only || m.parsingMode == All { + case 40: + + m.pb = m.p + + output.fComponent = string(m.text()) + + output.kind = RFC8141 + + case 30: + + if m.parsingMode == RFC2141Only || m.parsingMode == RFC8141Only { m.err = fmt.Errorf(errHex, m.p) (m.p)-- - { - goto st95 - } + m.cs = 193 + goto _again + } - // Otherwise, we expect the machine to fallback to SCIM errors - m.err = fmt.Errorf(errSpecificString, m.p) + m.err = fmt.Errorf(err8141MalformedRComp, m.p) (m.p)-- - { - goto st95 - } + m.cs = 193 + goto _again - m.err = fmt.Errorf(errParse, m.p) + m.err = fmt.Errorf(err8141MalformedQComp, m.p) (m.p)-- - { - goto st95 - } + m.cs = 193 + goto _again - case 91: + case 35: output.scim.Name = string(m.data[output.scim.pos:m.p]) - raw := m.text() - output.SS = string(raw) + output.SS = string(m.text()) // Iterate upper letters lowering them - for _, i := range m.tolower { - raw[i] = raw[i] + 32 + for _, i := range output.tolower { + m.data[m.pb+i] = m.data[m.pb+i] + 32 + } + output.norm = string(m.text()) + // Revert the buffer to the original + for _, i := range output.tolower { + m.data[m.pb+i] = m.data[m.pb+i] - 32 } - output.norm = string(raw) output.kind = RFC7643 - case 92, 93: + case 37: output.scim.Other = string(m.data[output.scim.pos:m.p]) - raw := m.text() - output.SS = string(raw) + output.SS = string(m.text()) // Iterate upper letters lowering them - for _, i := range m.tolower { - raw[i] = raw[i] + 32 + for _, i := range output.tolower { + m.data[m.pb+i] = m.data[m.pb+i] + 32 + } + output.norm = string(m.text()) + // Revert the buffer to the original + for _, i := range output.tolower { + m.data[m.pb+i] = m.data[m.pb+i] - 32 } - output.norm = string(raw) output.kind = RFC7643 + + case 44: + + if output.rStart { + m.err = fmt.Errorf(err8141RComponentStart, m.p) + (m.p)-- + + m.cs = 193 + goto _again + + } + output.rStart = true + + output.rComponent = string(m.text()) + + output.kind = RFC8141 + + case 50: + + if output.qStart { + m.err = fmt.Errorf(err8141QComponentStart, m.p) + (m.p)-- + + m.cs = 193 + goto _again + + } + output.qStart = true + + output.qComponent = string(m.text()) + + output.kind = RFC8141 } } @@ -2954,5 +5034,13 @@ func (m *machine) Parse(input []byte) (*URN, error) { func (m *machine) WithParsingMode(x ParsingMode) { m.parsingMode = x + switch m.parsingMode { + case RFC2141Only: + m.startParsingAt = enMain + case RFC8141Only: + m.startParsingAt = enRfc8141Only + case RFC7643Only: + m.startParsingAt = enScimOnly + } m.parsingModeSet = true } diff --git a/vendor/github.com/leodido/go-urn/machine.go.rl b/vendor/github.com/leodido/go-urn/machine.go.rl index 2fb8744db..0a1742199 100644 --- a/vendor/github.com/leodido/go-urn/machine.go.rl +++ b/vendor/github.com/leodido/go-urn/machine.go.rl @@ -11,13 +11,19 @@ var ( errIdentifier = "expecting the identifier to be string (1..31 alnum chars, also containing dashes but not at its beginning) [col %d]" errSpecificString = "expecting the specific string to be a string containing alnum, hex, or others ([()+,-.:=@;$_!*']) chars [col %d]" errNoUrnWithinID = "expecting the identifier to not contain the \"urn\" reserved string [col %d]" - errHex = "expecting the specific string hex chars to be well-formed (%%alnum{2}) [col %d]" - errParse = "parsing error [col %d]" + errHex = "expecting the percent encoded chars to be well-formed (%%alnum{2}) [col %d]" errSCIMNamespace = "expecing the SCIM namespace identifier (ietf:params:scim) [col %d]" errSCIMType = "expecting a correct SCIM type (schemas, api, param) [col %d]" errSCIMName = "expecting one or more alnum char in the SCIM name part [col %d]" errSCIMOther = "expecting a well-formed other SCIM part [col %d]" errSCIMOtherIncomplete = "expecting a not empty SCIM other part after colon [col %d]" + err8141InformalID = "informal URN namespace must be in the form urn-[1-9][0-9] [col %d]" + err8141SpecificString = "expecting the specific string to contain alnum, hex, or others ([~&()+,-.:=@;$_!*'] or [/?] not in first position) chars [col %d]" + err8141Identifier = "expecting the indentifier to be a string with (length 2 to 32 chars) containing alnum (or dashes) not starting or ending with a dash [col %d]" + err8141RComponentStart = "expecting only one r-component (starting with the ?+ sequence) [col %d]" + err8141QComponentStart = "expecting only one q-component (starting with the ?= sequence) [col %d]" + err8141MalformedRComp = "expecting a non-empty r-component containing alnum, hex, or others ([~&()+,-.:=@;$_!*'] or [/?] but not at its beginning) [col %d]" + err8141MalformedQComp = "expecting a non-empty q-component containing alnum, hex, or others ([~&()+,-.:=@;$_!*'] or [/?] but not at its beginning) [col %d]" ) %%{ @@ -31,7 +37,8 @@ action mark { } action tolower { - m.tolower = append(m.tolower, m.p - m.pb) + // List of positions in the buffer to later lowercase + output.tolower = append(output.tolower, m.p - m.pb) } action set_pre { @@ -39,13 +46,15 @@ action set_pre { } action throw_pre_urn_err { - // Throw an error when: - // - we are entering here matching the the prefix in the namespace identifier part - // - looking ahead (3 chars) we find a colon - if pos := m.p + 3; pos < m.pe && m.data[pos] == 58 && output.prefix != "" { - m.err = fmt.Errorf(errNoUrnWithinID, pos) - fhold; - fgoto fail; + if m.parsingMode != RFC8141Only { + // Throw an error when: + // - we are entering here matching the the prefix in the namespace identifier part + // - looking ahead (3 chars) we find a colon + if pos := m.p + 3; pos < m.pe && m.data[pos] == 58 && output.prefix != "" { + m.err = fmt.Errorf(errNoUrnWithinID, pos) + fhold; + fgoto fail; + } } } @@ -54,13 +63,16 @@ action set_nid { } action set_nss { - raw := m.text() - output.SS = string(raw) + output.SS = string(m.text()) // Iterate upper letters lowering them - for _, i := range m.tolower { - raw[i] = raw[i] + 32 + for _, i := range output.tolower { + m.data[m.pb+i] = m.data[m.pb+i] + 32 + } + output.norm = string(m.text()) + // Revert the buffer to the original + for _, i := range output.tolower { + m.data[m.pb+i] = m.data[m.pb+i] - 32 } - output.norm = string(raw) } action err_pre { @@ -88,79 +100,52 @@ action err_urn { } action err_hex { - if m.parsingMode == RFC2141Only || m.parsingMode == All { + if m.parsingMode == RFC2141Only || m.parsingMode == RFC8141Only { m.err = fmt.Errorf(errHex, m.p) fhold; fgoto fail; } - // Otherwise, we expect the machine to fallback to SCIM errors -} - -action err_parse { - m.err = fmt.Errorf(errParse, m.p) - fhold; - fgoto fail; } action base_type { output.kind = RFC2141; } +pre = ([uU] @err(err_pre) [rR] @err(err_pre) [nN] @err(err_pre)) >mark >throw_pre_urn_err %set_pre; + +nid = (alnum >mark (alnum | '-'){0,31}) $err(err_nid) %set_nid; + +hex = '%' (digit | lower | upper >tolower){2} $err(err_hex); + +sss = (alnum | [()+,\-.:=@;$_!*']); + +nss = (sss | hex)+ $err(err_nss); + +nid_not_urn = (nid - pre %err(err_urn)); + +urn = pre ':' @err(err_pre) (nid_not_urn ':' nss >mark %set_nss) %eof(base_type); + +### SCIM BEG + action err_scim_nid { - // In case we are in fallback mode we are now gonna jump to normal RFC2141 URN parsing - if m.parsingMode == All { - // TODO: store why the machine fallback to the RFC2141 one? - output.scim = nil; - // Rewind the cursor after the prefix ends ("urn:") - fexec 4; - // Go to the "urn" machine from this point on - fgoto urn; - } m.err = fmt.Errorf(errSCIMNamespace, m.p) fhold; fgoto fail; } action err_scim_type { - // In case we are in fallback mode we are now gonna jump to normal RFC2141 URN parsing - if m.parsingMode == All { - // TODO: store why the machine fallback to the RFC2141 one? - output.scim = nil; - // Rewind the cursor after the prefix ends ("urn:") - fexec 4; - // Go to the "urn" machine from this point on - fgoto urn; - } m.err = fmt.Errorf(errSCIMType, m.p) fhold; fgoto fail; } action err_scim_name { - // In case we are in fallback mode we are now gonna jump to normal RFC2141 URN parsing - if m.parsingMode == All { - // TODO: store why the machine fallback to the RFC2141 one? - output.scim = nil; - // Rewind the cursor after the prefix ends ("urn:") - fexec 4; - // Go to the "urn" machine from this point on - fgoto urn; - } m.err = fmt.Errorf(errSCIMName, m.p) fhold; fgoto fail; } action err_scim_other { - // In case we are in fallback mode we are now gonna jump to normal RFC2141 URN parsing - if m.parsingMode == All { - // TODO: store why the machine fallback to the RFC2141 one? - output.scim = nil; - // Rewind the cursor after the prefix ends ("urn:") - fexec 4; - // Go to the "urn" machine from this point on - fgoto urn; - } if m.p == m.pe { m.err = fmt.Errorf(errSCIMOtherIncomplete, m.p-1) } else { @@ -198,41 +183,117 @@ action set_scim_other { output.scim.Other = string(m.data[output.scim.pos:m.p]) } -pre = ([uU] @err(err_pre) [rR] @err(err_pre) [nN] @err(err_pre)) >mark >throw_pre_urn_err %set_pre ; +scim_nid = 'ietf:params:scim' >mark %set_nid %create_scim $err(err_scim_nid); -nid = (alnum >mark (alnum | '-'){0,31}) $err(err_nid) %set_nid; +scim_other = ':' (sss | hex)+ >mark_scim_other %set_scim_other $err(err_scim_other); -hex = '%' (digit | lower | upper >tolower){2} $err(err_hex); +scim_name = (alnum)+ >mark_scim_name %set_scim_name $err(err_scim_name); -sss = (alnum | [()+,\-.:=@;$_!*']); +scim_type = ('schemas' | 'api' | 'param') >mark %set_scim_type $err(err_scim_type); -nss = (sss | hex)+ $err(err_nss); +scim_only := pre ':' @err(err_pre) (scim_nid ':' scim_type ':' scim_name scim_other? %set_nss) %eof(scim_type); -nid_not_urn = (nid - pre %err(err_urn)); +### SCIM END -urn := (nid_not_urn ':' nss >mark %set_nss) $err(err_parse) %eof(base_type); +### 8141 BEG -urn_only := pre ':' $err(err_pre) @{ fgoto urn; }; +action err_nss_8141 { + m.err = fmt.Errorf(err8141SpecificString, m.p) + fhold; + fgoto fail; +} -### SCIM BEG +action err_nid_8141 { + m.err = fmt.Errorf(err8141Identifier, m.p) + fhold; + fgoto fail; +} -scim_nid = 'ietf:params:scim' >mark %set_nid %create_scim $err(err_scim_nid); +action rfc8141_type { + output.kind = RFC8141; +} -scim_other = ':' (sss | hex)+ >mark_scim_other %set_scim_other $err(err_scim_other); +action set_r_component { + output.rComponent = string(m.text()) +} -scim_name = (alnum)+ >mark_scim_name %set_scim_name $err(err_scim_name); +action set_q_component { + output.qComponent = string(m.text()) +} -scim_type = ('schemas' | 'api' | 'param') >mark %set_scim_type $err(err_scim_type); +action set_f_component { + output.fComponent = string(m.text()) +} -scim := (scim_nid ':' scim_type ':' scim_name scim_other? %set_nss) %eof(scim_type); +action informal_nid_match { + fhold; + m.err = fmt.Errorf(err8141InformalID, m.p); + fgoto fail; +} -scim_only := pre ':' $err(err_pre) @{ fgoto scim; }; +action mark_r_start { + if output.rStart { + m.err = fmt.Errorf(err8141RComponentStart, m.p) + fhold; + fgoto fail; + } + output.rStart = true +} -### SCIM END +action mark_q_start { + if output.qStart { + m.err = fmt.Errorf(err8141QComponentStart, m.p) + fhold; + fgoto fail; + } + output.qStart = true +} + +action err_malformed_r_component { + m.err = fmt.Errorf(err8141MalformedRComp, m.p) + fhold; + fgoto fail; +} + +action err_malformed_q_component { + m.err = fmt.Errorf(err8141MalformedQComp, m.p) + fhold; + fgoto fail; +} + +pchar = (sss | '~' | '&' | hex); + +component = pchar (pchar | '/' | '?')*; + +r_start = ('?+') %mark_r_start; + +r_component = r_start <: (r_start | component)+ $err(err_malformed_r_component) >mark %set_r_component; + +q_start = ('?=') %mark_q_start; + +q_component = q_start <: (q_start | component)+ $err(err_malformed_q_component) >mark %set_q_component; + +rq_components = (r_component :>> q_component? | q_component); + +fragment = (pchar | '/' | '?')*; + +f_component = '#' fragment >mark %set_f_component; + +nss_rfc8141 = (pchar >mark (pchar | '/')*) $err(err_nss_8141) %set_nss; + +nid_rfc8141 = (alnum >mark (alnum | '-'){0,30} alnum) $err(err_nid_8141) %set_nid; + +informal_id = pre ('-' [a-zA-z0] %to(informal_nid_match)); + +nid_rfc8141_not_urn = (nid_rfc8141 - informal_id?); + +rfc8141_only := pre ':' @err(err_pre) nid_rfc8141_not_urn ':' nss_rfc8141 rq_components? f_component? %eof(rfc8141_type); + +### 8141 END fail := (any - [\n\r])* @err{ fgoto main; }; -main := (pre ':' $err(err_pre) @{ fgoto scim; }) $err(err_parse); +main := urn; }%% @@ -250,7 +311,7 @@ type machine struct { cs int p, pe, eof, pb int err error - tolower []int + startParsingAt int parsingMode ParsingMode parsingModeSet bool } @@ -297,24 +358,11 @@ func (m *machine) Parse(input []byte) (*URN, error) { m.pe = len(input) m.eof = len(input) m.err = nil - m.tolower = []int{} - output := &URN{} - - switch m.parsingMode { - case RFC2141Only: - m.cs = en_urn_only - break - - case RFC7643Only: - m.cs = en_scim_only - break - - case All: - fallthrough - default: - %% write init; - break + m.cs = m.startParsingAt + output := &URN{ + tolower: []int{}, } + %% write exec; if m.cs < first_final || m.cs == en_fail { @@ -326,5 +374,13 @@ func (m *machine) Parse(input []byte) (*URN, error) { func (m *machine) WithParsingMode(x ParsingMode) { m.parsingMode = x + switch m.parsingMode { + case RFC2141Only: + m.startParsingAt = en_main + case RFC8141Only: + m.startParsingAt = en_rfc8141_only + case RFC7643Only: + m.startParsingAt = en_scim_only + } m.parsingModeSet = true } \ No newline at end of file diff --git a/vendor/github.com/leodido/go-urn/makefile b/vendor/github.com/leodido/go-urn/makefile index 08a14088e..68d5dd0f1 100644 --- a/vendor/github.com/leodido/go-urn/makefile +++ b/vendor/github.com/leodido/go-urn/makefile @@ -30,7 +30,7 @@ machine.go: snake2camel machine.go: removecomments machine.go: - $(RAGEL) -Z -G2 -e -o $@ $< + $(RAGEL) -Z -G1 -e -o $@ $< @./removecomments $@ @./snake2camel $@ $(GOFMT) $@ diff --git a/vendor/github.com/leodido/go-urn/parsing_mode.go b/vendor/github.com/leodido/go-urn/parsing_mode.go index a7f7004d4..fce5aadc3 100644 --- a/vendor/github.com/leodido/go-urn/parsing_mode.go +++ b/vendor/github.com/leodido/go-urn/parsing_mode.go @@ -3,9 +3,10 @@ package urn type ParsingMode int const ( - All ParsingMode = iota // Fallback mode + Default ParsingMode = iota RFC2141Only RFC7643Only + RFC8141Only ) const DefaultParsingMode = RFC2141Only diff --git a/vendor/github.com/leodido/go-urn/scim.go b/vendor/github.com/leodido/go-urn/scim.go index 1547813b0..f6b7aefba 100644 --- a/vendor/github.com/leodido/go-urn/scim.go +++ b/vendor/github.com/leodido/go-urn/scim.go @@ -1,6 +1,13 @@ package urn -import scimschema "github.com/leodido/go-urn/scim/schema" +import ( + "encoding/json" + "fmt" + + scimschema "github.com/leodido/go-urn/scim/schema" +) + +const errInvalidSCIMURN = "invalid SCIM URN: %s" type SCIM struct { Type scimschema.Type @@ -8,3 +15,34 @@ type SCIM struct { Other string pos int } + +func (s SCIM) MarshalJSON() ([]byte, error) { + return json.Marshal(s.String()) +} + +func (s *SCIM) UnmarshalJSON(bytes []byte) error { + var str string + if err := json.Unmarshal(bytes, &str); err != nil { + return err + } + // Parse as SCIM + value, ok := Parse([]byte(str), WithParsingMode(RFC7643Only)) + if !ok { + return fmt.Errorf(errInvalidSCIMURN, str) + } + if value.RFC() != RFC7643 { + return fmt.Errorf(errInvalidSCIMURN, str) + } + *s = *value.SCIM() + + return nil +} + +func (s *SCIM) String() string { + ret := fmt.Sprintf("urn:ietf:params:scim:%s:%s", s.Type.String(), s.Name) + if s.Other != "" { + ret += fmt.Sprintf(":%s", s.Other) + } + + return ret +} diff --git a/vendor/github.com/leodido/go-urn/urn.go b/vendor/github.com/leodido/go-urn/urn.go index 2529b8011..894d6258d 100644 --- a/vendor/github.com/leodido/go-urn/urn.go +++ b/vendor/github.com/leodido/go-urn/urn.go @@ -16,12 +16,18 @@ const errInvalidURN = "invalid URN: %s" // // Details at https://tools.ietf.org/html/rfc2141. type URN struct { - prefix string // Static prefix. Equal to "urn" when empty. - ID string // Namespace identifier (NID) - SS string // Namespace specific string (NSS) - norm string // Normalized namespace specific string - kind Kind - scim *SCIM + prefix string // Static prefix. Equal to "urn" when empty. + ID string // Namespace identifier (NID) + SS string // Namespace specific string (NSS) + norm string // Normalized namespace specific string + kind Kind + scim *SCIM + rComponent string // RFC8141 + qComponent string // RFC8141 + fComponent string // RFC8141 + rStart bool // RFC8141 + qStart bool // RFC8141 + tolower []int } // Normalize turns the receiving URN into its norm version. @@ -32,12 +38,21 @@ func (u *URN) Normalize() *URN { prefix: "urn", ID: strings.ToLower(u.ID), SS: u.norm, + // rComponent: u.rComponent, + // qComponent: u.qComponent, + // fComponent: u.fComponent, } } // Equal checks the lexical equivalence of the current URN with another one. func (u *URN) Equal(x *URN) bool { - return *u.Normalize() == *x.Normalize() + if x == nil { + return false + } + nu := u.Normalize() + nx := x.Normalize() + + return nu.prefix == nx.prefix && nu.ID == nx.ID && nu.SS == nx.SS } // String reassembles the URN into a valid URN string. @@ -53,6 +68,15 @@ func (u *URN) String() string { res += "urn" } res += u.prefix + ":" + u.ID + ":" + u.SS + if u.rComponent != "" { + res += "?+" + u.rComponent + } + if u.qComponent != "" { + res += "?=" + u.qComponent + } + if u.fComponent != "" { + res += "#" + u.fComponent + } } return res @@ -84,6 +108,7 @@ func (u *URN) UnmarshalJSON(bytes []byte) error { } else { *u = *value } + return nil } @@ -92,9 +117,25 @@ func (u *URN) IsSCIM() bool { } func (u *URN) SCIM() *SCIM { - if !u.IsSCIM() { + if u.kind != RFC7643 { return nil } return u.scim } + +func (u *URN) RFC() Kind { + return u.kind +} + +func (u *URN) FComponent() string { + return u.fComponent +} + +func (u *URN) QComponent() string { + return u.qComponent +} + +func (u *URN) RComponent() string { + return u.rComponent +} diff --git a/vendor/github.com/leodido/go-urn/urn8141.go b/vendor/github.com/leodido/go-urn/urn8141.go new file mode 100644 index 000000000..da4dd062e --- /dev/null +++ b/vendor/github.com/leodido/go-urn/urn8141.go @@ -0,0 +1,30 @@ +package urn + +import ( + "encoding/json" + "fmt" +) + +const errInvalidURN8141 = "invalid URN per RFC 8141: %s" + +type URN8141 struct { + *URN +} + +func (u URN8141) MarshalJSON() ([]byte, error) { + return json.Marshal(u.String()) +} + +func (u *URN8141) UnmarshalJSON(bytes []byte) error { + var str string + if err := json.Unmarshal(bytes, &str); err != nil { + return err + } + if value, ok := Parse([]byte(str), WithParsingMode(RFC8141Only)); !ok { + return fmt.Errorf(errInvalidURN8141, str) + } else { + *u = URN8141{value} + } + + return nil +} diff --git a/vendor/github.com/mitchellh/mapstructure/.travis.yml b/vendor/github.com/mitchellh/mapstructure/.travis.yml deleted file mode 100644 index 1689c7d73..000000000 --- a/vendor/github.com/mitchellh/mapstructure/.travis.yml +++ /dev/null @@ -1,8 +0,0 @@ -language: go - -go: - - "1.11.x" - - tip - -script: - - go test diff --git a/vendor/github.com/mitchellh/mapstructure/CHANGELOG.md b/vendor/github.com/mitchellh/mapstructure/CHANGELOG.md index 3b3cb723f..c75823490 100644 --- a/vendor/github.com/mitchellh/mapstructure/CHANGELOG.md +++ b/vendor/github.com/mitchellh/mapstructure/CHANGELOG.md @@ -1,3 +1,78 @@ +## 1.5.0 + +* New option `IgnoreUntaggedFields` to ignore decoding to any fields + without `mapstructure` (or the configured tag name) set [GH-277] +* New option `ErrorUnset` which makes it an error if any fields + in a target struct are not set by the decoding process. [GH-225] +* New function `OrComposeDecodeHookFunc` to help compose decode hooks. [GH-240] +* Decoding to slice from array no longer crashes [GH-265] +* Decode nested struct pointers to map [GH-271] +* Fix issue where `,squash` was ignored if `Squash` option was set. [GH-280] +* Fix issue where fields with `,omitempty` would sometimes decode + into a map with an empty string key [GH-281] + +## 1.4.3 + +* Fix cases where `json.Number` didn't decode properly [GH-261] + +## 1.4.2 + +* Custom name matchers to support any sort of casing, formatting, etc. for + field names. [GH-250] +* Fix possible panic in ComposeDecodeHookFunc [GH-251] + +## 1.4.1 + +* Fix regression where `*time.Time` value would be set to empty and not be sent + to decode hooks properly [GH-232] + +## 1.4.0 + +* A new decode hook type `DecodeHookFuncValue` has been added that has + access to the full values. [GH-183] +* Squash is now supported with embedded fields that are struct pointers [GH-205] +* Empty strings will convert to 0 for all numeric types when weakly decoding [GH-206] + +## 1.3.3 + +* Decoding maps from maps creates a settable value for decode hooks [GH-203] + +## 1.3.2 + +* Decode into interface type with a struct value is supported [GH-187] + +## 1.3.1 + +* Squash should only squash embedded structs. [GH-194] + +## 1.3.0 + +* Added `",omitempty"` support. This will ignore zero values in the source + structure when encoding. [GH-145] + +## 1.2.3 + +* Fix duplicate entries in Keys list with pointer values. [GH-185] + +## 1.2.2 + +* Do not add unsettable (unexported) values to the unused metadata key + or "remain" value. [GH-150] + +## 1.2.1 + +* Go modules checksum mismatch fix + +## 1.2.0 + +* Added support to capture unused values in a field using the `",remain"` value + in the mapstructure tag. There is an example to showcase usage. +* Added `DecoderConfig` option to always squash embedded structs +* `json.Number` can decode into `uint` types +* Empty slices are preserved and not replaced with nil slices +* Fix panic that can occur in when decoding a map into a nil slice of structs +* Improved package documentation for godoc + ## 1.1.2 * Fix error when decode hook decodes interface implementation into interface diff --git a/vendor/github.com/mitchellh/mapstructure/decode_hooks.go b/vendor/github.com/mitchellh/mapstructure/decode_hooks.go index 1f0abc65a..3a754ca72 100644 --- a/vendor/github.com/mitchellh/mapstructure/decode_hooks.go +++ b/vendor/github.com/mitchellh/mapstructure/decode_hooks.go @@ -1,6 +1,7 @@ package mapstructure import ( + "encoding" "errors" "fmt" "net" @@ -16,10 +17,11 @@ func typedDecodeHook(h DecodeHookFunc) DecodeHookFunc { // Create variables here so we can reference them with the reflect pkg var f1 DecodeHookFuncType var f2 DecodeHookFuncKind + var f3 DecodeHookFuncValue // Fill in the variables into this interface and the rest is done // automatically using the reflect package. - potential := []interface{}{f1, f2} + potential := []interface{}{f1, f2, f3} v := reflect.ValueOf(h) vt := v.Type() @@ -38,13 +40,15 @@ func typedDecodeHook(h DecodeHookFunc) DecodeHookFunc { // that took reflect.Kind instead of reflect.Type. func DecodeHookExec( raw DecodeHookFunc, - from reflect.Type, to reflect.Type, - data interface{}) (interface{}, error) { + from reflect.Value, to reflect.Value) (interface{}, error) { + switch f := typedDecodeHook(raw).(type) { case DecodeHookFuncType: - return f(from, to, data) + return f(from.Type(), to.Type(), from.Interface()) case DecodeHookFuncKind: - return f(from.Kind(), to.Kind(), data) + return f(from.Kind(), to.Kind(), from.Interface()) + case DecodeHookFuncValue: + return f(from, to) default: return nil, errors.New("invalid decode hook signature") } @@ -56,25 +60,42 @@ func DecodeHookExec( // The composed funcs are called in order, with the result of the // previous transformation. func ComposeDecodeHookFunc(fs ...DecodeHookFunc) DecodeHookFunc { - return func( - f reflect.Type, - t reflect.Type, - data interface{}) (interface{}, error) { + return func(f reflect.Value, t reflect.Value) (interface{}, error) { var err error + data := f.Interface() + + newFrom := f for _, f1 := range fs { - data, err = DecodeHookExec(f1, f, t, data) + data, err = DecodeHookExec(f1, newFrom, t) if err != nil { return nil, err } + newFrom = reflect.ValueOf(data) + } - // Modify the from kind to be correct with the new data - f = nil - if val := reflect.ValueOf(data); val.IsValid() { - f = val.Type() + return data, nil + } +} + +// OrComposeDecodeHookFunc executes all input hook functions until one of them returns no error. In that case its value is returned. +// If all hooks return an error, OrComposeDecodeHookFunc returns an error concatenating all error messages. +func OrComposeDecodeHookFunc(ff ...DecodeHookFunc) DecodeHookFunc { + return func(a, b reflect.Value) (interface{}, error) { + var allErrs string + var out interface{} + var err error + + for _, f := range ff { + out, err = DecodeHookExec(f, a, b) + if err != nil { + allErrs += err.Error() + "\n" + continue } + + return out, nil } - return data, nil + return nil, errors.New(allErrs) } } @@ -215,3 +236,44 @@ func WeaklyTypedHook( return data, nil } + +func RecursiveStructToMapHookFunc() DecodeHookFunc { + return func(f reflect.Value, t reflect.Value) (interface{}, error) { + if f.Kind() != reflect.Struct { + return f.Interface(), nil + } + + var i interface{} = struct{}{} + if t.Type() != reflect.TypeOf(&i).Elem() { + return f.Interface(), nil + } + + m := make(map[string]interface{}) + t.Set(reflect.ValueOf(m)) + + return f.Interface(), nil + } +} + +// TextUnmarshallerHookFunc returns a DecodeHookFunc that applies +// strings to the UnmarshalText function, when the target type +// implements the encoding.TextUnmarshaler interface +func TextUnmarshallerHookFunc() DecodeHookFuncType { + return func( + f reflect.Type, + t reflect.Type, + data interface{}) (interface{}, error) { + if f.Kind() != reflect.String { + return data, nil + } + result := reflect.New(t).Interface() + unmarshaller, ok := result.(encoding.TextUnmarshaler) + if !ok { + return data, nil + } + if err := unmarshaller.UnmarshalText([]byte(data.(string))); err != nil { + return nil, err + } + return result, nil + } +} diff --git a/vendor/github.com/mitchellh/mapstructure/mapstructure.go b/vendor/github.com/mitchellh/mapstructure/mapstructure.go index 256ee63fb..1efb22ac3 100644 --- a/vendor/github.com/mitchellh/mapstructure/mapstructure.go +++ b/vendor/github.com/mitchellh/mapstructure/mapstructure.go @@ -1,10 +1,161 @@ -// Package mapstructure exposes functionality to convert an arbitrary -// map[string]interface{} into a native Go structure. +// Package mapstructure exposes functionality to convert one arbitrary +// Go type into another, typically to convert a map[string]interface{} +// into a native Go structure. // // The Go structure can be arbitrarily complex, containing slices, // other structs, etc. and the decoder will properly decode nested // maps and so on into the proper structures in the native Go struct. // See the examples to see what the decoder is capable of. +// +// The simplest function to start with is Decode. +// +// Field Tags +// +// When decoding to a struct, mapstructure will use the field name by +// default to perform the mapping. For example, if a struct has a field +// "Username" then mapstructure will look for a key in the source value +// of "username" (case insensitive). +// +// type User struct { +// Username string +// } +// +// You can change the behavior of mapstructure by using struct tags. +// The default struct tag that mapstructure looks for is "mapstructure" +// but you can customize it using DecoderConfig. +// +// Renaming Fields +// +// To rename the key that mapstructure looks for, use the "mapstructure" +// tag and set a value directly. For example, to change the "username" example +// above to "user": +// +// type User struct { +// Username string `mapstructure:"user"` +// } +// +// Embedded Structs and Squashing +// +// Embedded structs are treated as if they're another field with that name. +// By default, the two structs below are equivalent when decoding with +// mapstructure: +// +// type Person struct { +// Name string +// } +// +// type Friend struct { +// Person +// } +// +// type Friend struct { +// Person Person +// } +// +// This would require an input that looks like below: +// +// map[string]interface{}{ +// "person": map[string]interface{}{"name": "alice"}, +// } +// +// If your "person" value is NOT nested, then you can append ",squash" to +// your tag value and mapstructure will treat it as if the embedded struct +// were part of the struct directly. Example: +// +// type Friend struct { +// Person `mapstructure:",squash"` +// } +// +// Now the following input would be accepted: +// +// map[string]interface{}{ +// "name": "alice", +// } +// +// When decoding from a struct to a map, the squash tag squashes the struct +// fields into a single map. Using the example structs from above: +// +// Friend{Person: Person{Name: "alice"}} +// +// Will be decoded into a map: +// +// map[string]interface{}{ +// "name": "alice", +// } +// +// DecoderConfig has a field that changes the behavior of mapstructure +// to always squash embedded structs. +// +// Remainder Values +// +// If there are any unmapped keys in the source value, mapstructure by +// default will silently ignore them. You can error by setting ErrorUnused +// in DecoderConfig. If you're using Metadata you can also maintain a slice +// of the unused keys. +// +// You can also use the ",remain" suffix on your tag to collect all unused +// values in a map. The field with this tag MUST be a map type and should +// probably be a "map[string]interface{}" or "map[interface{}]interface{}". +// See example below: +// +// type Friend struct { +// Name string +// Other map[string]interface{} `mapstructure:",remain"` +// } +// +// Given the input below, Other would be populated with the other +// values that weren't used (everything but "name"): +// +// map[string]interface{}{ +// "name": "bob", +// "address": "123 Maple St.", +// } +// +// Omit Empty Values +// +// When decoding from a struct to any other value, you may use the +// ",omitempty" suffix on your tag to omit that value if it equates to +// the zero value. The zero value of all types is specified in the Go +// specification. +// +// For example, the zero type of a numeric type is zero ("0"). If the struct +// field value is zero and a numeric type, the field is empty, and it won't +// be encoded into the destination type. +// +// type Source struct { +// Age int `mapstructure:",omitempty"` +// } +// +// Unexported fields +// +// Since unexported (private) struct fields cannot be set outside the package +// where they are defined, the decoder will simply skip them. +// +// For this output type definition: +// +// type Exported struct { +// private string // this unexported field will be skipped +// Public string +// } +// +// Using this map as input: +// +// map[string]interface{}{ +// "private": "I will be ignored", +// "Public": "I made it through!", +// } +// +// The following struct will be decoded: +// +// type Exported struct { +// private: "" // field is left with an empty string (zero value) +// Public: "I made it through!" +// } +// +// Other Configuration +// +// mapstructure is highly configurable. See the DecoderConfig struct +// for other features and options that are supported. package mapstructure import ( @@ -21,10 +172,11 @@ import ( // data transformations. See "DecodeHook" in the DecoderConfig // struct. // -// The type should be DecodeHookFuncType or DecodeHookFuncKind. -// Either is accepted. Types are a superset of Kinds (Types can return -// Kinds) and are generally a richer thing to use, but Kinds are simpler -// if you only need those. +// The type must be one of DecodeHookFuncType, DecodeHookFuncKind, or +// DecodeHookFuncValue. +// Values are a superset of Types (Values can return types), and Types are a +// superset of Kinds (Types can return Kinds) and are generally a richer thing +// to use, but Kinds are simpler if you only need those. // // The reason DecodeHookFunc is multi-typed is for backwards compatibility: // we started with Kinds and then realized Types were the better solution, @@ -40,15 +192,22 @@ type DecodeHookFuncType func(reflect.Type, reflect.Type, interface{}) (interface // source and target types. type DecodeHookFuncKind func(reflect.Kind, reflect.Kind, interface{}) (interface{}, error) +// DecodeHookFuncValue is a DecodeHookFunc which has complete access to both the source and target +// values. +type DecodeHookFuncValue func(from reflect.Value, to reflect.Value) (interface{}, error) + // DecoderConfig is the configuration that is used to create a new decoder // and allows customization of various aspects of decoding. type DecoderConfig struct { // DecodeHook, if set, will be called before any decoding and any // type conversion (if WeaklyTypedInput is on). This lets you modify - // the values before they're set down onto the resulting struct. + // the values before they're set down onto the resulting struct. The + // DecodeHook is called for every map and value in the input. This means + // that if a struct has embedded fields with squash tags the decode hook + // is called only once with all of the input data, not once for each + // embedded struct. // - // If an error is returned, the entire decode will fail with that - // error. + // If an error is returned, the entire decode will fail with that error. DecodeHook DecodeHookFunc // If ErrorUnused is true, then it is an error for there to exist @@ -56,6 +215,12 @@ type DecoderConfig struct { // (extra keys). ErrorUnused bool + // If ErrorUnset is true, then it is an error for there to exist + // fields in the result that were not set in the decoding process + // (extra fields). This only applies to decoding to a struct. This + // will affect all nested structs as well. + ErrorUnset bool + // ZeroFields, if set to true, will zero fields before writing them. // For example, a map will be emptied before decoded values are put in // it. If this is false, a map will be merged. @@ -80,6 +245,14 @@ type DecoderConfig struct { // WeaklyTypedInput bool + // Squash will squash embedded structs. A squash tag may also be + // added to an individual struct field using a tag. For example: + // + // type Parent struct { + // Child `mapstructure:",squash"` + // } + Squash bool + // Metadata is the struct that will contain extra metadata about // the decoding. If this is nil, then no metadata will be tracked. Metadata *Metadata @@ -91,6 +264,15 @@ type DecoderConfig struct { // The tag name that mapstructure reads for field names. This // defaults to "mapstructure" TagName string + + // IgnoreUntaggedFields ignores all struct fields without explicit + // TagName, comparable to `mapstructure:"-"` as default behaviour. + IgnoreUntaggedFields bool + + // MatchName is the function used to match the map key to the struct + // field name or tag. Defaults to `strings.EqualFold`. This can be used + // to implement case-sensitive tag values, support snake casing, etc. + MatchName func(mapKey, fieldName string) bool } // A Decoder takes a raw interface value and turns it into structured @@ -112,6 +294,11 @@ type Metadata struct { // Unused is a slice of keys that were found in the raw value but // weren't decoded since there was no matching field in the result interface Unused []string + + // Unset is a slice of field names that were found in the result interface + // but weren't set in the decoding process since there was no matching value + // in the input + Unset []string } // Decode takes an input structure and uses reflection to translate it to @@ -203,12 +390,20 @@ func NewDecoder(config *DecoderConfig) (*Decoder, error) { if config.Metadata.Unused == nil { config.Metadata.Unused = make([]string, 0) } + + if config.Metadata.Unset == nil { + config.Metadata.Unset = make([]string, 0) + } } if config.TagName == "" { config.TagName = "mapstructure" } + if config.MatchName == nil { + config.MatchName = strings.EqualFold + } + result := &Decoder{ config: config, } @@ -261,9 +456,7 @@ func (d *Decoder) decode(name string, input interface{}, outVal reflect.Value) e if d.config.DecodeHook != nil { // We have a DecodeHook, so let's pre-process the input. var err error - input, err = DecodeHookExec( - d.config.DecodeHook, - inputVal.Type(), outVal.Type(), input) + input, err = DecodeHookExec(d.config.DecodeHook, inputVal, outVal) if err != nil { return fmt.Errorf("error decoding '%s': %s", name, err) } @@ -271,6 +464,7 @@ func (d *Decoder) decode(name string, input interface{}, outVal reflect.Value) e var err error outputKind := getKind(outVal) + addMetaKey := true switch outputKind { case reflect.Bool: err = d.decodeBool(name, input, outVal) @@ -289,7 +483,7 @@ func (d *Decoder) decode(name string, input interface{}, outVal reflect.Value) e case reflect.Map: err = d.decodeMap(name, input, outVal) case reflect.Ptr: - err = d.decodePtr(name, input, outVal) + addMetaKey, err = d.decodePtr(name, input, outVal) case reflect.Slice: err = d.decodeSlice(name, input, outVal) case reflect.Array: @@ -303,7 +497,7 @@ func (d *Decoder) decode(name string, input interface{}, outVal reflect.Value) e // If we reached here, then we successfully decoded SOMETHING, so // mark the key as used if we're tracking metainput. - if d.config.Metadata != nil && name != "" { + if addMetaKey && d.config.Metadata != nil && name != "" { d.config.Metadata.Keys = append(d.config.Metadata.Keys, name) } @@ -314,7 +508,34 @@ func (d *Decoder) decode(name string, input interface{}, outVal reflect.Value) e // value to "data" of that type. func (d *Decoder) decodeBasic(name string, data interface{}, val reflect.Value) error { if val.IsValid() && val.Elem().IsValid() { - return d.decode(name, data, val.Elem()) + elem := val.Elem() + + // If we can't address this element, then its not writable. Instead, + // we make a copy of the value (which is a pointer and therefore + // writable), decode into that, and replace the whole value. + copied := false + if !elem.CanAddr() { + copied = true + + // Make *T + copy := reflect.New(elem.Type()) + + // *T = elem + copy.Elem().Set(elem) + + // Set elem so we decode into it + elem = copy + } + + // Decode. If we have an error then return. We also return right + // away if we're not a copy because that means we decoded directly. + if err := d.decode(name, data, elem); err != nil || !copied { + return err + } + + // If we're a copy, we need to set te final result + val.Set(elem.Elem()) + return nil } dataVal := reflect.ValueOf(data) @@ -386,8 +607,8 @@ func (d *Decoder) decodeString(name string, data interface{}, val reflect.Value) if !converted { return fmt.Errorf( - "'%s' expected type '%s', got unconvertible type '%s'", - name, val.Type(), dataVal.Type()) + "'%s' expected type '%s', got unconvertible type '%s', value: '%v'", + name, val.Type(), dataVal.Type(), data) } return nil @@ -412,7 +633,12 @@ func (d *Decoder) decodeInt(name string, data interface{}, val reflect.Value) er val.SetInt(0) } case dataKind == reflect.String && d.config.WeaklyTypedInput: - i, err := strconv.ParseInt(dataVal.String(), 0, val.Type().Bits()) + str := dataVal.String() + if str == "" { + str = "0" + } + + i, err := strconv.ParseInt(str, 0, val.Type().Bits()) if err == nil { val.SetInt(i) } else { @@ -428,8 +654,8 @@ func (d *Decoder) decodeInt(name string, data interface{}, val reflect.Value) er val.SetInt(i) default: return fmt.Errorf( - "'%s' expected type '%s', got unconvertible type '%s'", - name, val.Type(), dataVal.Type()) + "'%s' expected type '%s', got unconvertible type '%s', value: '%v'", + name, val.Type(), dataVal.Type(), data) } return nil @@ -438,6 +664,7 @@ func (d *Decoder) decodeInt(name string, data interface{}, val reflect.Value) er func (d *Decoder) decodeUint(name string, data interface{}, val reflect.Value) error { dataVal := reflect.Indirect(reflect.ValueOf(data)) dataKind := getKind(dataVal) + dataType := dataVal.Type() switch { case dataKind == reflect.Int: @@ -463,16 +690,29 @@ func (d *Decoder) decodeUint(name string, data interface{}, val reflect.Value) e val.SetUint(0) } case dataKind == reflect.String && d.config.WeaklyTypedInput: - i, err := strconv.ParseUint(dataVal.String(), 0, val.Type().Bits()) + str := dataVal.String() + if str == "" { + str = "0" + } + + i, err := strconv.ParseUint(str, 0, val.Type().Bits()) if err == nil { val.SetUint(i) } else { return fmt.Errorf("cannot parse '%s' as uint: %s", name, err) } + case dataType.PkgPath() == "encoding/json" && dataType.Name() == "Number": + jn := data.(json.Number) + i, err := strconv.ParseUint(string(jn), 0, 64) + if err != nil { + return fmt.Errorf( + "error decoding json.Number into %s: %s", name, err) + } + val.SetUint(i) default: return fmt.Errorf( - "'%s' expected type '%s', got unconvertible type '%s'", - name, val.Type(), dataVal.Type()) + "'%s' expected type '%s', got unconvertible type '%s', value: '%v'", + name, val.Type(), dataVal.Type(), data) } return nil @@ -502,8 +742,8 @@ func (d *Decoder) decodeBool(name string, data interface{}, val reflect.Value) e } default: return fmt.Errorf( - "'%s' expected type '%s', got unconvertible type '%s'", - name, val.Type(), dataVal.Type()) + "'%s' expected type '%s', got unconvertible type '%s', value: '%v'", + name, val.Type(), dataVal.Type(), data) } return nil @@ -528,7 +768,12 @@ func (d *Decoder) decodeFloat(name string, data interface{}, val reflect.Value) val.SetFloat(0) } case dataKind == reflect.String && d.config.WeaklyTypedInput: - f, err := strconv.ParseFloat(dataVal.String(), val.Type().Bits()) + str := dataVal.String() + if str == "" { + str = "0" + } + + f, err := strconv.ParseFloat(str, val.Type().Bits()) if err == nil { val.SetFloat(f) } else { @@ -544,8 +789,8 @@ func (d *Decoder) decodeFloat(name string, data interface{}, val reflect.Value) val.SetFloat(i) default: return fmt.Errorf( - "'%s' expected type '%s', got unconvertible type '%s'", - name, val.Type(), dataVal.Type()) + "'%s' expected type '%s', got unconvertible type '%s', value: '%v'", + name, val.Type(), dataVal.Type(), data) } return nil @@ -596,7 +841,7 @@ func (d *Decoder) decodeMapFromSlice(name string, dataVal reflect.Value, val ref for i := 0; i < dataVal.Len(); i++ { err := d.decode( - fmt.Sprintf("%s[%d]", name, i), + name+"["+strconv.Itoa(i)+"]", dataVal.Index(i).Interface(), val) if err != nil { return err @@ -629,7 +874,7 @@ func (d *Decoder) decodeMapFromMap(name string, dataVal reflect.Value, val refle } for _, k := range dataVal.MapKeys() { - fieldName := fmt.Sprintf("%s[%s]", name, k) + fieldName := name + "[" + k.String() + "]" // First decode the key into the proper type currentKey := reflect.Indirect(reflect.New(valKeyType)) @@ -678,27 +923,48 @@ func (d *Decoder) decodeMapFromStruct(name string, dataVal reflect.Value, val re } tagValue := f.Tag.Get(d.config.TagName) - tagParts := strings.Split(tagValue, ",") + keyName := f.Name + + if tagValue == "" && d.config.IgnoreUntaggedFields { + continue + } + + // If Squash is set in the config, we squash the field down. + squash := d.config.Squash && v.Kind() == reflect.Struct && f.Anonymous + + v = dereferencePtrToStructIfNeeded(v, d.config.TagName) // Determine the name of the key in the map - keyName := f.Name - if tagParts[0] != "" { - if tagParts[0] == "-" { + if index := strings.Index(tagValue, ","); index != -1 { + if tagValue[:index] == "-" { + continue + } + // If "omitempty" is specified in the tag, it ignores empty values. + if strings.Index(tagValue[index+1:], "omitempty") != -1 && isEmptyValue(v) { continue } - keyName = tagParts[0] - } - // If "squash" is specified in the tag, we squash the field down. - squash := false - for _, tag := range tagParts[1:] { - if tag == "squash" { - squash = true - break + // If "squash" is specified in the tag, we squash the field down. + squash = squash || strings.Index(tagValue[index+1:], "squash") != -1 + if squash { + // When squashing, the embedded type can be a pointer to a struct. + if v.Kind() == reflect.Ptr && v.Elem().Kind() == reflect.Struct { + v = v.Elem() + } + + // The final type must be a struct + if v.Kind() != reflect.Struct { + return fmt.Errorf("cannot squash non-struct type '%s'", v.Type()) + } } - } - if squash && v.Kind() != reflect.Struct { - return fmt.Errorf("cannot squash non-struct type '%s'", v.Type()) + if keyNameTagValue := tagValue[:index]; keyNameTagValue != "" { + keyName = keyNameTagValue + } + } else if len(tagValue) > 0 { + if tagValue == "-" { + continue + } + keyName = tagValue } switch v.Kind() { @@ -713,11 +979,22 @@ func (d *Decoder) decodeMapFromStruct(name string, dataVal reflect.Value, val re mType := reflect.MapOf(vKeyType, vElemType) vMap := reflect.MakeMap(mType) - err := d.decode(keyName, x.Interface(), vMap) + // Creating a pointer to a map so that other methods can completely + // overwrite the map if need be (looking at you decodeMapFromMap). The + // indirection allows the underlying map to be settable (CanSet() == true) + // where as reflect.MakeMap returns an unsettable map. + addrVal := reflect.New(vMap.Type()) + reflect.Indirect(addrVal).Set(vMap) + + err := d.decode(keyName, x.Interface(), reflect.Indirect(addrVal)) if err != nil { return err } + // the underlying map may have been completely overwritten so pull + // it indirectly out of the enclosing value. + vMap = reflect.Indirect(addrVal) + if squash { for _, k := range vMap.MapKeys() { valMap.SetMapIndex(k, vMap.MapIndex(k)) @@ -738,7 +1015,7 @@ func (d *Decoder) decodeMapFromStruct(name string, dataVal reflect.Value, val re return nil } -func (d *Decoder) decodePtr(name string, data interface{}, val reflect.Value) error { +func (d *Decoder) decodePtr(name string, data interface{}, val reflect.Value) (bool, error) { // If the input data is nil, then we want to just set the output // pointer to be nil as well. isNil := data == nil @@ -759,7 +1036,7 @@ func (d *Decoder) decodePtr(name string, data interface{}, val reflect.Value) er val.Set(nilValue) } - return nil + return true, nil } // Create an element of the concrete (non pointer) type and decode @@ -773,16 +1050,16 @@ func (d *Decoder) decodePtr(name string, data interface{}, val reflect.Value) er } if err := d.decode(name, data, reflect.Indirect(realVal)); err != nil { - return err + return false, err } val.Set(realVal) } else { if err := d.decode(name, data, reflect.Indirect(val)); err != nil { - return err + return false, err } } - return nil + return false, nil } func (d *Decoder) decodeFunc(name string, data interface{}, val reflect.Value) error { @@ -791,8 +1068,8 @@ func (d *Decoder) decodeFunc(name string, data interface{}, val reflect.Value) e dataVal := reflect.Indirect(reflect.ValueOf(data)) if val.Type() != dataVal.Type() { return fmt.Errorf( - "'%s' expected type '%s', got unconvertible type '%s'", - name, val.Type(), dataVal.Type()) + "'%s' expected type '%s', got unconvertible type '%s', value: '%v'", + name, val.Type(), dataVal.Type(), data) } val.Set(dataVal) return nil @@ -805,8 +1082,8 @@ func (d *Decoder) decodeSlice(name string, data interface{}, val reflect.Value) valElemType := valType.Elem() sliceType := reflect.SliceOf(valElemType) - valSlice := val - if valSlice.IsNil() || d.config.ZeroFields { + // If we have a non array/slice type then we first attempt to convert. + if dataValKind != reflect.Array && dataValKind != reflect.Slice { if d.config.WeaklyTypedInput { switch { // Slice and array we use the normal logic @@ -833,18 +1110,17 @@ func (d *Decoder) decodeSlice(name string, data interface{}, val reflect.Value) } } - // Check input type - if dataValKind != reflect.Array && dataValKind != reflect.Slice { - return fmt.Errorf( - "'%s': source data must be an array or slice, got %s", name, dataValKind) - - } + return fmt.Errorf( + "'%s': source data must be an array or slice, got %s", name, dataValKind) + } - // If the input value is empty, then don't allocate since non-nil != nil - if dataVal.Len() == 0 { - return nil - } + // If the input value is nil, then don't allocate since empty != nil + if dataValKind != reflect.Array && dataVal.IsNil() { + return nil + } + valSlice := val + if valSlice.IsNil() || d.config.ZeroFields { // Make a new slice to hold our result, same size as the original data. valSlice = reflect.MakeSlice(sliceType, dataVal.Len(), dataVal.Len()) } @@ -859,7 +1135,7 @@ func (d *Decoder) decodeSlice(name string, data interface{}, val reflect.Value) } currentField := valSlice.Index(i) - fieldName := fmt.Sprintf("%s[%d]", name, i) + fieldName := name + "[" + strconv.Itoa(i) + "]" if err := d.decode(fieldName, currentData, currentField); err != nil { errors = appendErrors(errors, err) } @@ -926,7 +1202,7 @@ func (d *Decoder) decodeArray(name string, data interface{}, val reflect.Value) currentData := dataVal.Index(i).Interface() currentField := valArray.Index(i) - fieldName := fmt.Sprintf("%s[%d]", name, i) + fieldName := name + "[" + strconv.Itoa(i) + "]" if err := d.decode(fieldName, currentData, currentField); err != nil { errors = appendErrors(errors, err) } @@ -962,13 +1238,23 @@ func (d *Decoder) decodeStruct(name string, data interface{}, val reflect.Value) // Not the most efficient way to do this but we can optimize later if // we want to. To convert from struct to struct we go to map first // as an intermediary. - m := make(map[string]interface{}) - mval := reflect.Indirect(reflect.ValueOf(&m)) - if err := d.decodeMapFromStruct(name, dataVal, mval, mval); err != nil { + + // Make a new map to hold our result + mapType := reflect.TypeOf((map[string]interface{})(nil)) + mval := reflect.MakeMap(mapType) + + // Creating a pointer to a map so that other methods can completely + // overwrite the map if need be (looking at you decodeMapFromMap). The + // indirection allows the underlying map to be settable (CanSet() == true) + // where as reflect.MakeMap returns an unsettable map. + addrVal := reflect.New(mval.Type()) + + reflect.Indirect(addrVal).Set(mval) + if err := d.decodeMapFromStruct(name, dataVal, reflect.Indirect(addrVal), mval); err != nil { return err } - result := d.decodeStructFromMap(name, mval, val) + result := d.decodeStructFromMap(name, reflect.Indirect(addrVal), val) return result default: @@ -991,6 +1277,7 @@ func (d *Decoder) decodeStructFromMap(name string, dataVal, val reflect.Value) e dataValKeysUnused[dataValKey.Interface()] = struct{}{} } + targetValKeysUnused := make(map[interface{}]struct{}) errors := make([]string, 0) // This slice will keep track of all the structs we'll be decoding. @@ -1005,6 +1292,11 @@ func (d *Decoder) decodeStructFromMap(name string, dataVal, val reflect.Value) e field reflect.StructField val reflect.Value } + + // remainField is set to a valid field set with the "remain" tag if + // we are keeping track of remaining values. + var remainField *field + fields := []field{} for len(structs) > 0 { structVal := structs[0] @@ -1014,30 +1306,47 @@ func (d *Decoder) decodeStructFromMap(name string, dataVal, val reflect.Value) e for i := 0; i < structType.NumField(); i++ { fieldType := structType.Field(i) - fieldKind := fieldType.Type.Kind() + fieldVal := structVal.Field(i) + if fieldVal.Kind() == reflect.Ptr && fieldVal.Elem().Kind() == reflect.Struct { + // Handle embedded struct pointers as embedded structs. + fieldVal = fieldVal.Elem() + } // If "squash" is specified in the tag, we squash the field down. - squash := false + squash := d.config.Squash && fieldVal.Kind() == reflect.Struct && fieldType.Anonymous + remain := false + + // We always parse the tags cause we're looking for other tags too tagParts := strings.Split(fieldType.Tag.Get(d.config.TagName), ",") for _, tag := range tagParts[1:] { if tag == "squash" { squash = true break } + + if tag == "remain" { + remain = true + break + } } if squash { - if fieldKind != reflect.Struct { + if fieldVal.Kind() != reflect.Struct { errors = appendErrors(errors, - fmt.Errorf("%s: unsupported type for squash: %s", fieldType.Name, fieldKind)) + fmt.Errorf("%s: unsupported type for squash: %s", fieldType.Name, fieldVal.Kind())) } else { - structs = append(structs, structVal.FieldByName(fieldType.Name)) + structs = append(structs, fieldVal) } continue } - // Normal struct field, store it away - fields = append(fields, field{fieldType, structVal.Field(i)}) + // Build our field + if remain { + remainField = &field{fieldType, fieldVal} + } else { + // Normal struct field, store it away + fields = append(fields, field{fieldType, fieldVal}) + } } } @@ -1064,7 +1373,7 @@ func (d *Decoder) decodeStructFromMap(name string, dataVal, val reflect.Value) e continue } - if strings.EqualFold(mK, fieldName) { + if d.config.MatchName(mK, fieldName) { rawMapKey = dataValKey rawMapVal = dataVal.MapIndex(dataValKey) break @@ -1073,14 +1382,12 @@ func (d *Decoder) decodeStructFromMap(name string, dataVal, val reflect.Value) e if !rawMapVal.IsValid() { // There was no matching key in the map for the value in - // the struct. Just ignore. + // the struct. Remember it for potential errors and metadata. + targetValKeysUnused[fieldName] = struct{}{} continue } } - // Delete the key we're using from the unused map so we stop tracking - delete(dataValKeysUnused, rawMapKey.Interface()) - if !fieldValue.IsValid() { // This should never happen panic("field is not valid") @@ -1092,10 +1399,13 @@ func (d *Decoder) decodeStructFromMap(name string, dataVal, val reflect.Value) e continue } + // Delete the key we're using from the unused map so we stop tracking + delete(dataValKeysUnused, rawMapKey.Interface()) + // If the name is empty string, then we're at the root, and we // don't dot-join the fields. if name != "" { - fieldName = fmt.Sprintf("%s.%s", name, fieldName) + fieldName = name + "." + fieldName } if err := d.decode(fieldName, rawMapVal.Interface(), fieldValue); err != nil { @@ -1103,6 +1413,25 @@ func (d *Decoder) decodeStructFromMap(name string, dataVal, val reflect.Value) e } } + // If we have a "remain"-tagged field and we have unused keys then + // we put the unused keys directly into the remain field. + if remainField != nil && len(dataValKeysUnused) > 0 { + // Build a map of only the unused values + remain := map[interface{}]interface{}{} + for key := range dataValKeysUnused { + remain[key] = dataVal.MapIndex(reflect.ValueOf(key)).Interface() + } + + // Decode it as-if we were just decoding this map onto our map. + if err := d.decodeMap(name, remain, remainField.val); err != nil { + errors = appendErrors(errors, err) + } + + // Set the map to nil so we have none so that the next check will + // not error (ErrorUnused) + dataValKeysUnused = nil + } + if d.config.ErrorUnused && len(dataValKeysUnused) > 0 { keys := make([]string, 0, len(dataValKeysUnused)) for rawKey := range dataValKeysUnused { @@ -1114,6 +1443,17 @@ func (d *Decoder) decodeStructFromMap(name string, dataVal, val reflect.Value) e errors = appendErrors(errors, err) } + if d.config.ErrorUnset && len(targetValKeysUnused) > 0 { + keys := make([]string, 0, len(targetValKeysUnused)) + for rawKey := range targetValKeysUnused { + keys = append(keys, rawKey.(string)) + } + sort.Strings(keys) + + err := fmt.Errorf("'%s' has unset fields: %s", name, strings.Join(keys, ", ")) + errors = appendErrors(errors, err) + } + if len(errors) > 0 { return &Error{errors} } @@ -1123,16 +1463,42 @@ func (d *Decoder) decodeStructFromMap(name string, dataVal, val reflect.Value) e for rawKey := range dataValKeysUnused { key := rawKey.(string) if name != "" { - key = fmt.Sprintf("%s.%s", name, key) + key = name + "." + key } d.config.Metadata.Unused = append(d.config.Metadata.Unused, key) } + for rawKey := range targetValKeysUnused { + key := rawKey.(string) + if name != "" { + key = name + "." + key + } + + d.config.Metadata.Unset = append(d.config.Metadata.Unset, key) + } } return nil } +func isEmptyValue(v reflect.Value) bool { + switch getKind(v) { + 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 getKind(val reflect.Value) reflect.Kind { kind := val.Kind() @@ -1147,3 +1513,28 @@ func getKind(val reflect.Value) reflect.Kind { return kind } } + +func isStructTypeConvertibleToMap(typ reflect.Type, checkMapstructureTags bool, tagName string) bool { + for i := 0; i < typ.NumField(); i++ { + f := typ.Field(i) + if f.PkgPath == "" && !checkMapstructureTags { // check for unexported fields + return true + } + if checkMapstructureTags && f.Tag.Get(tagName) != "" { // check for mapstructure tags inside + return true + } + } + return false +} + +func dereferencePtrToStructIfNeeded(v reflect.Value, tagName string) reflect.Value { + if v.Kind() != reflect.Ptr || v.Elem().Kind() != reflect.Struct { + return v + } + deref := v.Elem() + derefT := deref.Type() + if isStructTypeConvertibleToMap(derefT, true, tagName) { + return deref + } + return v +} diff --git a/vendor/github.com/onsi/ginkgo/v2/CHANGELOG.md b/vendor/github.com/onsi/ginkgo/v2/CHANGELOG.md index 9a65dd10c..44222220a 100644 --- a/vendor/github.com/onsi/ginkgo/v2/CHANGELOG.md +++ b/vendor/github.com/onsi/ginkgo/v2/CHANGELOG.md @@ -1,3 +1,38 @@ +## 2.17.1 + +### Fixes +- If the user sets --seed=0, make sure all parallel nodes get the same seed [af0330d] + +## 2.17.0 + +### Features + +- add `--github-output` for nicer output in github actions [e8a2056] + +### Maintenance + +- fix typo in core_dsl.go [977bc6f] +- Fix typo in docs [e297e7b] + +## 2.16.0 + +### Features +- add SpecContext to reporting nodes + +### Fixes +- merge coverages instead of combining them (#1329) (#1340) [23f0cc5] +- core_dsl: disable Getwd() with environment variable (#1357) [cd418b7] + +### Maintenance +- docs/index.md: Typo [2cebe8d] +- fix docs [06de431] +- chore: test with Go 1.22 (#1352) [898cba9] +- Bump golang.org/x/tools from 0.16.1 to 0.17.0 (#1336) [17ae120] +- Bump golang.org/x/sys from 0.15.0 to 0.16.0 (#1327) [5a179ed] +- Bump github.com/go-logr/logr from 1.3.0 to 1.4.1 (#1321) [a1e6b69] +- Bump github-pages and jekyll-feed in /docs (#1351) [d52951d] +- Fix docs for handling failures in goroutines (#1339) [4471b2e] + ## 2.15.0 ### Features diff --git a/vendor/github.com/onsi/ginkgo/v2/core_dsl.go b/vendor/github.com/onsi/ginkgo/v2/core_dsl.go index 2d7a70ecc..a3e8237e9 100644 --- a/vendor/github.com/onsi/ginkgo/v2/core_dsl.go +++ b/vendor/github.com/onsi/ginkgo/v2/core_dsl.go @@ -292,7 +292,7 @@ func RunSpecs(t GinkgoTestingT, description string, args ...interface{}) bool { err = global.Suite.BuildTree() exitIfErr(err) - suitePath, err := os.Getwd() + suitePath, err := getwd() exitIfErr(err) suitePath, err = filepath.Abs(suitePath) exitIfErr(err) @@ -345,6 +345,15 @@ func extractSuiteConfiguration(args []interface{}) Labels { return suiteLabels } +func getwd() (string, error) { + if !strings.EqualFold(os.Getenv("GINKGO_PRESERVE_CACHE"), "true") { + // Getwd calls os.Getenv("PWD"), which breaks test caching if the cache + // is shared between two different directories with the same test code. + return os.Getwd() + } + return "", nil +} + /* PreviewSpecs walks the testing tree and produces a report without actually invoking the specs. See http://onsi.github.io/ginkgo/#previewing-specs for more information. @@ -369,7 +378,7 @@ func PreviewSpecs(description string, args ...any) Report { err = global.Suite.BuildTree() exitIfErr(err) - suitePath, err := os.Getwd() + suitePath, err := getwd() exitIfErr(err) suitePath, err = filepath.Abs(suitePath) exitIfErr(err) @@ -783,8 +792,8 @@ DeferCleanup can be passed: For example: BeforeEach(func() { - DeferCleanup(os.SetEnv, "FOO", os.GetEnv("FOO")) - os.SetEnv("FOO", "BAR") + DeferCleanup(os.Setenv, "FOO", os.GetEnv("FOO")) + os.Setenv("FOO", "BAR") }) will register a cleanup handler that will set the environment variable "FOO" to its current value (obtained by os.GetEnv("FOO")) after the spec runs and then sets the environment variable "FOO" to "BAR" for the current spec. diff --git a/vendor/github.com/onsi/ginkgo/v2/ginkgo/internal/gocovmerge.go b/vendor/github.com/onsi/ginkgo/v2/ginkgo/internal/gocovmerge.go new file mode 100644 index 000000000..3c5079ff4 --- /dev/null +++ b/vendor/github.com/onsi/ginkgo/v2/ginkgo/internal/gocovmerge.go @@ -0,0 +1,129 @@ +// Copyright (c) 2015, Wade Simmons +// All rights reserved. + +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are met: + +// 1. Redistributions of source code must retain the above copyright notice, this +// list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other materials provided with the distribution. + +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR +// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +// ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +// Package gocovmerge takes the results from multiple `go test -coverprofile` +// runs and merges them into one profile + +// this file was originally taken from the gocovmerge project +// see also: https://go.shabbyrobe.org/gocovmerge +package internal + +import ( + "fmt" + "io" + "sort" + + "golang.org/x/tools/cover" +) + +func AddCoverProfile(profiles []*cover.Profile, p *cover.Profile) []*cover.Profile { + i := sort.Search(len(profiles), func(i int) bool { return profiles[i].FileName >= p.FileName }) + if i < len(profiles) && profiles[i].FileName == p.FileName { + MergeCoverProfiles(profiles[i], p) + } else { + profiles = append(profiles, nil) + copy(profiles[i+1:], profiles[i:]) + profiles[i] = p + } + return profiles +} + +func DumpCoverProfiles(profiles []*cover.Profile, out io.Writer) error { + if len(profiles) == 0 { + return nil + } + if _, err := fmt.Fprintf(out, "mode: %s\n", profiles[0].Mode); err != nil { + return err + } + for _, p := range profiles { + for _, b := range p.Blocks { + if _, err := fmt.Fprintf(out, "%s:%d.%d,%d.%d %d %d\n", p.FileName, b.StartLine, b.StartCol, b.EndLine, b.EndCol, b.NumStmt, b.Count); err != nil { + return err + } + } + } + return nil +} + +func MergeCoverProfiles(into *cover.Profile, merge *cover.Profile) error { + if into.Mode != merge.Mode { + return fmt.Errorf("cannot merge profiles with different modes") + } + // Since the blocks are sorted, we can keep track of where the last block + // was inserted and only look at the blocks after that as targets for merge + startIndex := 0 + for _, b := range merge.Blocks { + var err error + startIndex, err = mergeProfileBlock(into, b, startIndex) + if err != nil { + return err + } + } + return nil +} + +func mergeProfileBlock(p *cover.Profile, pb cover.ProfileBlock, startIndex int) (int, error) { + sortFunc := func(i int) bool { + pi := p.Blocks[i+startIndex] + return pi.StartLine >= pb.StartLine && (pi.StartLine != pb.StartLine || pi.StartCol >= pb.StartCol) + } + + i := 0 + if sortFunc(i) != true { + i = sort.Search(len(p.Blocks)-startIndex, sortFunc) + } + + i += startIndex + if i < len(p.Blocks) && p.Blocks[i].StartLine == pb.StartLine && p.Blocks[i].StartCol == pb.StartCol { + if p.Blocks[i].EndLine != pb.EndLine || p.Blocks[i].EndCol != pb.EndCol { + return i, fmt.Errorf("gocovmerge: overlapping merge %v %v %v", p.FileName, p.Blocks[i], pb) + } + switch p.Mode { + case "set": + p.Blocks[i].Count |= pb.Count + case "count", "atomic": + p.Blocks[i].Count += pb.Count + default: + return i, fmt.Errorf("gocovmerge: unsupported covermode '%s'", p.Mode) + } + + } else { + if i > 0 { + pa := p.Blocks[i-1] + if pa.EndLine >= pb.EndLine && (pa.EndLine != pb.EndLine || pa.EndCol > pb.EndCol) { + return i, fmt.Errorf("gocovmerge: overlap before %v %v %v", p.FileName, pa, pb) + } + } + if i < len(p.Blocks)-1 { + pa := p.Blocks[i+1] + if pa.StartLine <= pb.StartLine && (pa.StartLine != pb.StartLine || pa.StartCol < pb.StartCol) { + return i, fmt.Errorf("gocovmerge: overlap after %v %v %v", p.FileName, pa, pb) + } + } + p.Blocks = append(p.Blocks, cover.ProfileBlock{}) + copy(p.Blocks[i+1:], p.Blocks[i:]) + p.Blocks[i] = pb + } + + return i + 1, nil +} diff --git a/vendor/github.com/onsi/ginkgo/v2/ginkgo/internal/profiles_and_reports.go b/vendor/github.com/onsi/ginkgo/v2/ginkgo/internal/profiles_and_reports.go index 26de28b57..5f35864dd 100644 --- a/vendor/github.com/onsi/ginkgo/v2/ginkgo/internal/profiles_and_reports.go +++ b/vendor/github.com/onsi/ginkgo/v2/ginkgo/internal/profiles_and_reports.go @@ -1,7 +1,6 @@ package internal import ( - "bytes" "fmt" "os" "os/exec" @@ -12,6 +11,7 @@ import ( "github.com/google/pprof/profile" "github.com/onsi/ginkgo/v2/reporters" "github.com/onsi/ginkgo/v2/types" + "golang.org/x/tools/cover" ) func AbsPathForGeneratedAsset(assetName string, suite TestSuite, cliConfig types.CLIConfig, process int) string { @@ -144,38 +144,26 @@ func FinalizeProfilesAndReportsForSuites(suites TestSuites, cliConfig types.CLIC return messages, nil } -// loads each profile, combines them, deletes them, stores them in destination +// loads each profile, merges them, deletes them, stores them in destination func MergeAndCleanupCoverProfiles(profiles []string, destination string) error { - combined := &bytes.Buffer{} - modeRegex := regexp.MustCompile(`^mode: .*\n`) - for i, profile := range profiles { - contents, err := os.ReadFile(profile) + var merged []*cover.Profile + for _, file := range profiles { + parsedProfiles, err := cover.ParseProfiles(file) if err != nil { - return fmt.Errorf("Unable to read coverage file %s:\n%s", profile, err.Error()) + return err } - os.Remove(profile) - - // remove the cover mode line from every file - // except the first one - if i > 0 { - contents = modeRegex.ReplaceAll(contents, []byte{}) - } - - _, err = combined.Write(contents) - - // Add a newline to the end of every file if missing. - if err == nil && len(contents) > 0 && contents[len(contents)-1] != '\n' { - _, err = combined.Write([]byte("\n")) - } - - if err != nil { - return fmt.Errorf("Unable to append to coverprofile:\n%s", err.Error()) + os.Remove(file) + for _, p := range parsedProfiles { + merged = AddCoverProfile(merged, p) } } - - err := os.WriteFile(destination, combined.Bytes(), 0666) + dst, err := os.OpenFile(destination, os.O_RDWR|os.O_CREATE|os.O_TRUNC, 0666) + if err != nil { + return err + } + err = DumpCoverProfiles(merged, dst) if err != nil { - return fmt.Errorf("Unable to create combined cover profile:\n%s", err.Error()) + return err } return nil } diff --git a/vendor/github.com/onsi/ginkgo/v2/internal/node.go b/vendor/github.com/onsi/ginkgo/v2/internal/node.go index 16f0dc227..6a15f19ae 100644 --- a/vendor/github.com/onsi/ginkgo/v2/internal/node.go +++ b/vendor/github.com/onsi/ginkgo/v2/internal/node.go @@ -5,9 +5,8 @@ import ( "fmt" "reflect" "sort" - "time" - "sync" + "time" "github.com/onsi/ginkgo/v2/types" ) @@ -16,8 +15,8 @@ var _global_node_id_counter = uint(0) var _global_id_mutex = &sync.Mutex{} func UniqueNodeID() uint { - //There's a reace in the internal integration tests if we don't make - //accessing _global_node_id_counter safe across goroutines. + // There's a reace in the internal integration tests if we don't make + // accessing _global_node_id_counter safe across goroutines. _global_id_mutex.Lock() defer _global_id_mutex.Unlock() _global_node_id_counter += 1 @@ -44,8 +43,8 @@ type Node struct { SynchronizedAfterSuiteProc1Body func(SpecContext) SynchronizedAfterSuiteProc1BodyHasContext bool - ReportEachBody func(types.SpecReport) - ReportSuiteBody func(types.Report) + ReportEachBody func(SpecContext, types.SpecReport) + ReportSuiteBody func(SpecContext, types.Report) MarkedFocus bool MarkedPending bool @@ -209,7 +208,7 @@ func NewNode(deprecationTracker *types.DeprecationTracker, nodeType types.NodeTy args = unrollInterfaceSlice(args) remainingArgs := []interface{}{} - //First get the CodeLocation up-to-date + // First get the CodeLocation up-to-date for _, arg := range args { switch v := arg.(type) { case Offset: @@ -225,11 +224,11 @@ func NewNode(deprecationTracker *types.DeprecationTracker, nodeType types.NodeTy trackedFunctionError := false args = remainingArgs remainingArgs = []interface{}{} - //now process the rest of the args + // now process the rest of the args for _, arg := range args { switch t := reflect.TypeOf(arg); { case t == reflect.TypeOf(float64(0)): - break //ignore deprecated timeouts + break // ignore deprecated timeouts case t == reflect.TypeOf(Focus): node.MarkedFocus = bool(arg.(focusType)) if !nodeType.Is(types.NodeTypesForContainerAndIt) { @@ -325,7 +324,12 @@ func NewNode(deprecationTracker *types.DeprecationTracker, nodeType types.NodeTy node.Body = func(SpecContext) { body() } } else if nodeType.Is(types.NodeTypeReportBeforeEach | types.NodeTypeReportAfterEach) { if node.ReportEachBody == nil { - node.ReportEachBody = arg.(func(types.SpecReport)) + if fn, ok := arg.(func(types.SpecReport)); ok { + node.ReportEachBody = func(_ SpecContext, r types.SpecReport) { fn(r) } + } else { + node.ReportEachBody = arg.(func(SpecContext, types.SpecReport)) + node.HasContext = true + } } else { appendError(types.GinkgoErrors.MultipleBodyFunctions(node.CodeLocation, nodeType)) trackedFunctionError = true @@ -333,7 +337,12 @@ func NewNode(deprecationTracker *types.DeprecationTracker, nodeType types.NodeTy } } else if nodeType.Is(types.NodeTypeReportBeforeSuite | types.NodeTypeReportAfterSuite) { if node.ReportSuiteBody == nil { - node.ReportSuiteBody = arg.(func(types.Report)) + if fn, ok := arg.(func(types.Report)); ok { + node.ReportSuiteBody = func(_ SpecContext, r types.Report) { fn(r) } + } else { + node.ReportSuiteBody = arg.(func(SpecContext, types.Report)) + node.HasContext = true + } } else { appendError(types.GinkgoErrors.MultipleBodyFunctions(node.CodeLocation, nodeType)) trackedFunctionError = true @@ -395,7 +404,7 @@ func NewNode(deprecationTracker *types.DeprecationTracker, nodeType types.NodeTy } } - //validations + // validations if node.MarkedPending && node.MarkedFocus { appendError(types.GinkgoErrors.InvalidDeclarationOfFocusedAndPending(node.CodeLocation, nodeType)) } diff --git a/vendor/github.com/onsi/ginkgo/v2/internal/suite.go b/vendor/github.com/onsi/ginkgo/v2/internal/suite.go index 2b4db48af..a994ee3d6 100644 --- a/vendor/github.com/onsi/ginkgo/v2/internal/suite.go +++ b/vendor/github.com/onsi/ginkgo/v2/internal/suite.go @@ -594,8 +594,8 @@ func (suite *Suite) reportEach(spec Spec, nodeType types.NodeType) { suite.writer.Truncate() suite.outputInterceptor.StartInterceptingOutput() report := suite.currentSpecReport - nodes[i].Body = func(SpecContext) { - nodes[i].ReportEachBody(report) + nodes[i].Body = func(ctx SpecContext) { + nodes[i].ReportEachBody(ctx, report) } state, failure := suite.runNode(nodes[i], time.Time{}, spec.Nodes.BestTextFor(nodes[i])) @@ -762,7 +762,7 @@ func (suite *Suite) runReportSuiteNode(node Node, report types.Report) { report = report.Add(aggregatedReport) } - node.Body = func(SpecContext) { node.ReportSuiteBody(report) } + node.Body = func(ctx SpecContext) { node.ReportSuiteBody(ctx, report) } suite.currentSpecReport.State, suite.currentSpecReport.Failure = suite.runNode(node, time.Time{}, "") suite.currentSpecReport.EndTime = time.Now() @@ -840,7 +840,7 @@ func (suite *Suite) runNode(node Node, specDeadline time.Time, text string) (typ timeoutInPlay = "node" } if (!deadline.IsZero() && deadline.Before(now)) || interruptStatus.Interrupted() { - //we're out of time already. let's wait for a NodeTimeout if we have it, or GracePeriod if we don't + // we're out of time already. let's wait for a NodeTimeout if we have it, or GracePeriod if we don't if node.NodeTimeout > 0 { deadline = now.Add(node.NodeTimeout) timeoutInPlay = "node" @@ -918,9 +918,9 @@ func (suite *Suite) runNode(node Node, specDeadline time.Time, text string) (typ if outcomeFromRun != types.SpecStatePassed { additionalFailure := types.AdditionalFailure{ State: outcomeFromRun, - Failure: failure, //we make a copy - this will include all the configuration set up above... + Failure: failure, // we make a copy - this will include all the configuration set up above... } - //...and then we update the failure with the details from failureFromRun + // ...and then we update the failure with the details from failureFromRun additionalFailure.Failure.Location, additionalFailure.Failure.ForwardedPanic, additionalFailure.Failure.TimelineLocation = failureFromRun.Location, failureFromRun.ForwardedPanic, failureFromRun.TimelineLocation additionalFailure.Failure.ProgressReport = types.ProgressReport{} if outcome == types.SpecStateTimedout { @@ -959,7 +959,7 @@ func (suite *Suite) runNode(node Node, specDeadline time.Time, text string) (typ // tell the spec to stop. it's important we generate the progress report first to make sure we capture where // the spec is actually stuck sc.cancel(fmt.Errorf("%s timeout occurred", timeoutInPlay)) - //and now we wait for the grace period + // and now we wait for the grace period gracePeriodChannel = time.After(gracePeriod) case <-interruptStatus.Channel: interruptStatus = suite.interruptHandler.Status() diff --git a/vendor/github.com/onsi/ginkgo/v2/reporters/default_reporter.go b/vendor/github.com/onsi/ginkgo/v2/reporters/default_reporter.go index 56b7be758..4026859ec 100644 --- a/vendor/github.com/onsi/ginkgo/v2/reporters/default_reporter.go +++ b/vendor/github.com/onsi/ginkgo/v2/reporters/default_reporter.go @@ -182,6 +182,22 @@ func (r *DefaultReporter) WillRun(report types.SpecReport) { r.emitBlock(r.f(r.codeLocationBlock(report, "{{/}}", v.Is(types.VerbosityLevelVeryVerbose), false))) } +func (r *DefaultReporter) wrapTextBlock(sectionName string, fn func()) { + r.emitBlock("\n") + if r.conf.GithubOutput { + r.emitBlock(r.fi(1, "::group::%s", sectionName)) + } else { + r.emitBlock(r.fi(1, "{{gray}}%s >>{{/}}", sectionName)) + } + fn() + if r.conf.GithubOutput { + r.emitBlock(r.fi(1, "::endgroup::")) + } else { + r.emitBlock(r.fi(1, "{{gray}}<< %s{{/}}", sectionName)) + } + +} + func (r *DefaultReporter) DidRun(report types.SpecReport) { v := r.conf.Verbosity() inParallel := report.RunningInParallel @@ -283,26 +299,23 @@ func (r *DefaultReporter) DidRun(report types.SpecReport) { //Emit Stdout/Stderr Output if showSeparateStdSection { - r.emitBlock("\n") - r.emitBlock(r.fi(1, "{{gray}}Captured StdOut/StdErr Output >>{{/}}")) - r.emitBlock(r.fi(1, "%s", report.CapturedStdOutErr)) - r.emitBlock(r.fi(1, "{{gray}}<< Captured StdOut/StdErr Output{{/}}")) + r.wrapTextBlock("Captured StdOut/StdErr Output", func() { + r.emitBlock(r.fi(1, "%s", report.CapturedStdOutErr)) + }) } if showSeparateVisibilityAlwaysReportsSection { - r.emitBlock("\n") - r.emitBlock(r.fi(1, "{{gray}}Report Entries >>{{/}}")) - for _, entry := range report.ReportEntries.WithVisibility(types.ReportEntryVisibilityAlways) { - r.emitReportEntry(1, entry) - } - r.emitBlock(r.fi(1, "{{gray}}<< Report Entries{{/}}")) + r.wrapTextBlock("Report Entries", func() { + for _, entry := range report.ReportEntries.WithVisibility(types.ReportEntryVisibilityAlways) { + r.emitReportEntry(1, entry) + } + }) } if showTimeline { - r.emitBlock("\n") - r.emitBlock(r.fi(1, "{{gray}}Timeline >>{{/}}")) - r.emitTimeline(1, report, timeline) - r.emitBlock(r.fi(1, "{{gray}}<< Timeline{{/}}")) + r.wrapTextBlock("Timeline", func() { + r.emitTimeline(1, report, timeline) + }) } // Emit Failure Message @@ -405,7 +418,11 @@ func (r *DefaultReporter) emitShortFailure(indent uint, state types.SpecState, f func (r *DefaultReporter) emitFailure(indent uint, state types.SpecState, failure types.Failure, includeAdditionalFailure bool) { highlightColor := r.highlightColorForState(state) r.emitBlock(r.fi(indent, highlightColor+"[%s] %s{{/}}", r.humanReadableState(state), failure.Message)) - r.emitBlock(r.fi(indent, highlightColor+"In {{bold}}[%s]{{/}}"+highlightColor+" at: {{bold}}%s{{/}} {{gray}}@ %s{{/}}\n", failure.FailureNodeType, failure.Location, failure.TimelineLocation.Time.Format(types.GINKGO_TIME_FORMAT))) + if r.conf.GithubOutput { + r.emitBlock(r.fi(indent, "::error file=%s,line=%d::%s %s", failure.Location.FileName, failure.Location.LineNumber, failure.FailureNodeType, failure.TimelineLocation.Time.Format(types.GINKGO_TIME_FORMAT))) + } else { + r.emitBlock(r.fi(indent, highlightColor+"In {{bold}}[%s]{{/}}"+highlightColor+" at: {{bold}}%s{{/}} {{gray}}@ %s{{/}}\n", failure.FailureNodeType, failure.Location, failure.TimelineLocation.Time.Format(types.GINKGO_TIME_FORMAT))) + } if failure.ForwardedPanic != "" { r.emitBlock("\n") r.emitBlock(r.fi(indent, highlightColor+"%s{{/}}", failure.ForwardedPanic)) diff --git a/vendor/github.com/onsi/ginkgo/v2/reporting_dsl.go b/vendor/github.com/onsi/ginkgo/v2/reporting_dsl.go index f33786a2d..aa1a35176 100644 --- a/vendor/github.com/onsi/ginkgo/v2/reporting_dsl.go +++ b/vendor/github.com/onsi/ginkgo/v2/reporting_dsl.go @@ -74,12 +74,21 @@ func AddReportEntry(name string, args ...interface{}) { /* ReportBeforeEach nodes are run for each spec, even if the spec is skipped or pending. ReportBeforeEach nodes take a function that -receives a SpecReport. They are called before the spec starts. +receives a SpecReport or both SpecContext and Report for interruptible behavior. They are called before the spec starts. + +Example: + + ReportBeforeEach(func(report SpecReport) { // process report }) + ReportBeforeEach(func(ctx SpecContext, report SpecReport) { + // process report + }), NodeTimeout(1 * time.Minute)) You cannot nest any other Ginkgo nodes within a ReportBeforeEach node's closure. You can learn more about ReportBeforeEach here: https://onsi.github.io/ginkgo/#generating-reports-programmatically + +You can learn about interruptible nodes here: https://onsi.github.io/ginkgo/#spec-timeouts-and-interruptible-nodes */ -func ReportBeforeEach(body func(SpecReport), args ...interface{}) bool { +func ReportBeforeEach(body any, args ...any) bool { combinedArgs := []interface{}{body} combinedArgs = append(combinedArgs, args...) @@ -87,13 +96,23 @@ func ReportBeforeEach(body func(SpecReport), args ...interface{}) bool { } /* -ReportAfterEach nodes are run for each spec, even if the spec is skipped or pending. ReportAfterEach nodes take a function that -receives a SpecReport. They are called after the spec has completed and receive the final report for the spec. +ReportAfterEach nodes are run for each spec, even if the spec is skipped or pending. +ReportAfterEach nodes take a function that receives a SpecReport or both SpecContext and Report for interruptible behavior. +They are called after the spec has completed and receive the final report for the spec. + +Example: + + ReportAfterEach(func(report SpecReport) { // process report }) + ReportAfterEach(func(ctx SpecContext, report SpecReport) { + // process report + }), NodeTimeout(1 * time.Minute)) You cannot nest any other Ginkgo nodes within a ReportAfterEach node's closure. You can learn more about ReportAfterEach here: https://onsi.github.io/ginkgo/#generating-reports-programmatically + +You can learn about interruptible nodes here: https://onsi.github.io/ginkgo/#spec-timeouts-and-interruptible-nodes */ -func ReportAfterEach(body func(SpecReport), args ...interface{}) bool { +func ReportAfterEach(body any, args ...any) bool { combinedArgs := []interface{}{body} combinedArgs = append(combinedArgs, args...) @@ -101,7 +120,15 @@ func ReportAfterEach(body func(SpecReport), args ...interface{}) bool { } /* -ReportBeforeSuite nodes are run at the beginning of the suite. ReportBeforeSuite nodes take a function that receives a suite Report. +ReportBeforeSuite nodes are run at the beginning of the suite. ReportBeforeSuite nodes take a function +that can either receive Report or both SpecContext and Report for interruptible behavior. + +Example Usage: + + ReportBeforeSuite(func(r Report) { // process report }) + ReportBeforeSuite(func(ctx SpecContext, r Report) { + // process report + }, NodeTimeout(1 * time.Minute)) They are called at the beginning of the suite, before any specs have run and any BeforeSuite or SynchronizedBeforeSuite nodes, and are passed in the initial report for the suite. ReportBeforeSuite nodes must be created at the top-level (i.e. not nested in a Context/Describe/When node) @@ -112,18 +139,28 @@ You cannot nest any other Ginkgo nodes within a ReportAfterSuite node's closure. You can learn more about ReportAfterSuite here: https://onsi.github.io/ginkgo/#generating-reports-programmatically You can learn more about Ginkgo's reporting infrastructure, including generating reports with the CLI here: https://onsi.github.io/ginkgo/#generating-machine-readable-reports + +You can learn about interruptible nodes here: https://onsi.github.io/ginkgo/#spec-timeouts-and-interruptible-nodes */ -func ReportBeforeSuite(body func(Report), args ...interface{}) bool { +func ReportBeforeSuite(body any, args ...any) bool { combinedArgs := []interface{}{body} combinedArgs = append(combinedArgs, args...) return pushNode(internal.NewNode(deprecationTracker, types.NodeTypeReportBeforeSuite, "", combinedArgs...)) } /* -ReportAfterSuite nodes are run at the end of the suite. ReportAfterSuite nodes take a function that receives a suite Report. +ReportAfterSuite nodes are run at the end of the suite. ReportAfterSuite nodes execute at the suite's conclusion, +and accept a function that can either receive Report or both SpecContext and Report for interruptible behavior. + +Example Usage: + + ReportAfterSuite("Non-interruptible ReportAfterSuite", func(r Report) { // process report }) + ReportAfterSuite("Interruptible ReportAfterSuite", func(ctx SpecContext, r Report) { + // process report + }, NodeTimeout(1 * time.Minute)) They are called at the end of the suite, after all specs have run and any AfterSuite or SynchronizedAfterSuite nodes, and are passed in the final report for the suite. -ReportAftersuite nodes must be created at the top-level (i.e. not nested in a Context/Describe/When node) +ReportAfterSuite nodes must be created at the top-level (i.e. not nested in a Context/Describe/When node) When running in parallel, Ginkgo ensures that only one of the parallel nodes runs the ReportAfterSuite and that it is passed a report that is aggregated across all parallel nodes @@ -134,8 +171,10 @@ You cannot nest any other Ginkgo nodes within a ReportAfterSuite node's closure. You can learn more about ReportAfterSuite here: https://onsi.github.io/ginkgo/#generating-reports-programmatically You can learn more about Ginkgo's reporting infrastructure, including generating reports with the CLI here: https://onsi.github.io/ginkgo/#generating-machine-readable-reports + +You can learn about interruptible nodes here: https://onsi.github.io/ginkgo/#spec-timeouts-and-interruptible-nodes */ -func ReportAfterSuite(text string, body func(Report), args ...interface{}) bool { +func ReportAfterSuite(text string, body any, args ...interface{}) bool { combinedArgs := []interface{}{body} combinedArgs = append(combinedArgs, args...) return pushNode(internal.NewNode(deprecationTracker, types.NodeTypeReportAfterSuite, text, combinedArgs...)) diff --git a/vendor/github.com/onsi/ginkgo/v2/types/config.go b/vendor/github.com/onsi/ginkgo/v2/types/config.go index c88fc85a7..cef273ee1 100644 --- a/vendor/github.com/onsi/ginkgo/v2/types/config.go +++ b/vendor/github.com/onsi/ginkgo/v2/types/config.go @@ -89,6 +89,7 @@ type ReporterConfig struct { VeryVerbose bool FullTrace bool ShowNodeEvents bool + GithubOutput bool JSONReport string JUnitReport string @@ -264,7 +265,7 @@ var FlagSections = GinkgoFlagSections{ // SuiteConfigFlags provides flags for the Ginkgo test process, and CLI var SuiteConfigFlags = GinkgoFlags{ {KeyPath: "S.RandomSeed", Name: "seed", SectionKey: "order", UsageDefaultValue: "randomly generated by Ginkgo", - Usage: "The seed used to randomize the spec suite."}, + Usage: "The seed used to randomize the spec suite.", AlwaysExport: true}, {KeyPath: "S.RandomizeAllSpecs", Name: "randomize-all", SectionKey: "order", DeprecatedName: "randomizeAllSpecs", DeprecatedDocLink: "changed-command-line-flags", Usage: "If set, ginkgo will randomize all specs together. By default, ginkgo only randomizes the top level Describe, Context and When containers."}, @@ -331,6 +332,8 @@ var ReporterConfigFlags = GinkgoFlags{ Usage: "If set, default reporter prints out the full stack trace when a failure occurs"}, {KeyPath: "R.ShowNodeEvents", Name: "show-node-events", SectionKey: "output", Usage: "If set, default reporter prints node > Enter and < Exit events when specs fail"}, + {KeyPath: "R.GithubOutput", Name: "github-output", SectionKey: "output", + Usage: "If set, default reporter prints easier to manage output in Github Actions."}, {KeyPath: "R.JSONReport", Name: "json-report", UsageArgument: "filename.json", SectionKey: "output", Usage: "If set, Ginkgo will generate a JSON-formatted test report at the specified location."}, diff --git a/vendor/github.com/onsi/ginkgo/v2/types/flags.go b/vendor/github.com/onsi/ginkgo/v2/types/flags.go index 9186ae873..de69f3022 100644 --- a/vendor/github.com/onsi/ginkgo/v2/types/flags.go +++ b/vendor/github.com/onsi/ginkgo/v2/types/flags.go @@ -24,7 +24,8 @@ type GinkgoFlag struct { DeprecatedDocLink string DeprecatedVersion string - ExportAs string + ExportAs string + AlwaysExport bool } type GinkgoFlags []GinkgoFlag @@ -431,7 +432,7 @@ func (ssv stringSliceVar) Set(s string) error { return nil } -//given a set of GinkgoFlags and bindings, generate flag arguments suitable to be passed to an application with that set of flags configured. +// given a set of GinkgoFlags and bindings, generate flag arguments suitable to be passed to an application with that set of flags configured. func GenerateFlagArgs(flags GinkgoFlags, bindings interface{}) ([]string, error) { result := []string{} for _, flag := range flags { @@ -451,19 +452,19 @@ func GenerateFlagArgs(flags GinkgoFlags, bindings interface{}) ([]string, error) iface := value.Interface() switch value.Type() { case reflect.TypeOf(string("")): - if iface.(string) != "" { + if iface.(string) != "" || flag.AlwaysExport { result = append(result, fmt.Sprintf("--%s=%s", name, iface)) } case reflect.TypeOf(int64(0)): - if iface.(int64) != 0 { + if iface.(int64) != 0 || flag.AlwaysExport { result = append(result, fmt.Sprintf("--%s=%d", name, iface)) } case reflect.TypeOf(float64(0)): - if iface.(float64) != 0 { + if iface.(float64) != 0 || flag.AlwaysExport { result = append(result, fmt.Sprintf("--%s=%f", name, iface)) } case reflect.TypeOf(int(0)): - if iface.(int) != 0 { + if iface.(int) != 0 || flag.AlwaysExport { result = append(result, fmt.Sprintf("--%s=%d", name, iface)) } case reflect.TypeOf(bool(true)): @@ -471,7 +472,7 @@ func GenerateFlagArgs(flags GinkgoFlags, bindings interface{}) ([]string, error) result = append(result, fmt.Sprintf("--%s", name)) } case reflect.TypeOf(time.Duration(0)): - if iface.(time.Duration) != time.Duration(0) { + if iface.(time.Duration) != time.Duration(0) || flag.AlwaysExport { result = append(result, fmt.Sprintf("--%s=%s", name, iface)) } diff --git a/vendor/github.com/onsi/ginkgo/v2/types/version.go b/vendor/github.com/onsi/ginkgo/v2/types/version.go index ed9346474..851d42b45 100644 --- a/vendor/github.com/onsi/ginkgo/v2/types/version.go +++ b/vendor/github.com/onsi/ginkgo/v2/types/version.go @@ -1,3 +1,3 @@ package types -const VERSION = "2.15.0" +const VERSION = "2.17.1" diff --git a/vendor/github.com/onsi/gomega/CHANGELOG.md b/vendor/github.com/onsi/gomega/CHANGELOG.md index 9a14b8151..01ec5245c 100644 --- a/vendor/github.com/onsi/gomega/CHANGELOG.md +++ b/vendor/github.com/onsi/gomega/CHANGELOG.md @@ -1,3 +1,16 @@ +## 1.32.0 + +### Maintenance +- Migrate github.com/golang/protobuf to google.golang.org/protobuf [436a197] + + This release drops the deprecated github.com/golang/protobuf and adopts google.golang.org/protobuf. Care was taken to ensure the release is backwards compatible (thanks @jbduncan !). Please open an issue if you run into one. + +- chore: test with Go 1.22 (#733) [32ef35e] +- Bump golang.org/x/net from 0.19.0 to 0.20.0 (#717) [a0d0387] +- Bump github-pages and jekyll-feed in /docs (#732) [b71e477] +- docs: fix typo and broken anchor link to gstruct [f460154] +- docs: fix HaveEach matcher signature [a2862e4] + ## 1.31.1 ### Fixes diff --git a/vendor/github.com/onsi/gomega/ghttp/handlers.go b/vendor/github.com/onsi/gomega/ghttp/handlers.go index b2d1c2c46..eb99514eb 100644 --- a/vendor/github.com/onsi/gomega/ghttp/handlers.go +++ b/vendor/github.com/onsi/gomega/ghttp/handlers.go @@ -11,11 +11,13 @@ import ( "reflect" "strings" - "github.com/golang/protobuf/proto" "github.com/onsi/gomega" . "github.com/onsi/gomega" "github.com/onsi/gomega/internal/gutil" "github.com/onsi/gomega/types" + "google.golang.org/protobuf/proto" + "google.golang.org/protobuf/protoadapt" + "google.golang.org/protobuf/runtime/protoiface" ) type GHTTPWithGomega struct { @@ -193,7 +195,7 @@ func (g GHTTPWithGomega) VerifyFormKV(key string, values ...string) http.Handler // representation of the passed message. // // VerifyProtoRepresenting also verifies that the request's content type is application/x-protobuf -func (g GHTTPWithGomega) VerifyProtoRepresenting(expected proto.Message) http.HandlerFunc { +func (g GHTTPWithGomega) VerifyProtoRepresenting(expected protoiface.MessageV1) http.HandlerFunc { return CombineHandlers( g.VerifyContentType("application/x-protobuf"), func(w http.ResponseWriter, req *http.Request) { @@ -204,13 +206,14 @@ func (g GHTTPWithGomega) VerifyProtoRepresenting(expected proto.Message) http.Ha expectedType := reflect.TypeOf(expected) actualValuePtr := reflect.New(expectedType.Elem()) - actual, ok := actualValuePtr.Interface().(proto.Message) - g.gomega.Expect(ok).Should(BeTrueBecause("Message value should be a proto.Message")) + actual, ok := actualValuePtr.Interface().(protoiface.MessageV1) + g.gomega.Expect(ok).Should(BeTrueBecause("Message value should be a protoiface.MessageV1")) - err = proto.Unmarshal(body, actual) + err = proto.Unmarshal(body, protoadapt.MessageV2Of(actual)) g.gomega.Expect(err).ShouldNot(HaveOccurred(), "Failed to unmarshal protobuf") - g.gomega.Expect(actual).Should(Equal(expected), "ProtoBuf Mismatch") + g.gomega.Expect(proto.Equal(protoadapt.MessageV2Of(expected), protoadapt.MessageV2Of(actual))). + Should(BeTrue(), "ProtoBuf Mismatch") }, ) } @@ -328,9 +331,9 @@ func (g GHTTPWithGomega) RespondWithJSONEncodedPtr(statusCode *int, object inter // containing the protobuf serialization of the provided message. // // Also, RespondWithProto can be given an optional http.Header. The headers defined therein will be added to the response headers. -func (g GHTTPWithGomega) RespondWithProto(statusCode int, message proto.Message, optionalHeader ...http.Header) http.HandlerFunc { +func (g GHTTPWithGomega) RespondWithProto(statusCode int, message protoadapt.MessageV1, optionalHeader ...http.Header) http.HandlerFunc { return func(w http.ResponseWriter, req *http.Request) { - data, err := proto.Marshal(message) + data, err := proto.Marshal(protoadapt.MessageV2Of(message)) g.gomega.Expect(err).ShouldNot(HaveOccurred()) var headers http.Header @@ -397,7 +400,7 @@ func VerifyFormKV(key string, values ...string) http.HandlerFunc { return NewGHTTPWithGomega(gomega.Default).VerifyFormKV(key, values...) } -func VerifyProtoRepresenting(expected proto.Message) http.HandlerFunc { +func VerifyProtoRepresenting(expected protoiface.MessageV1) http.HandlerFunc { return NewGHTTPWithGomega(gomega.Default).VerifyProtoRepresenting(expected) } @@ -417,6 +420,6 @@ func RespondWithJSONEncodedPtr(statusCode *int, object interface{}, optionalHead return NewGHTTPWithGomega(gomega.Default).RespondWithJSONEncodedPtr(statusCode, object, optionalHeader...) } -func RespondWithProto(statusCode int, message proto.Message, optionalHeader ...http.Header) http.HandlerFunc { +func RespondWithProto(statusCode int, message protoadapt.MessageV1, optionalHeader ...http.Header) http.HandlerFunc { return NewGHTTPWithGomega(gomega.Default).RespondWithProto(statusCode, message, optionalHeader...) } diff --git a/vendor/github.com/onsi/gomega/gomega_dsl.go b/vendor/github.com/onsi/gomega/gomega_dsl.go index 5b46a1658..ffb81b1fe 100644 --- a/vendor/github.com/onsi/gomega/gomega_dsl.go +++ b/vendor/github.com/onsi/gomega/gomega_dsl.go @@ -22,7 +22,7 @@ import ( "github.com/onsi/gomega/types" ) -const GOMEGA_VERSION = "1.31.1" +const GOMEGA_VERSION = "1.32.0" const nilGomegaPanic = `You are trying to make an assertion, but haven't registered Gomega's fail handler. If you're using Ginkgo then you probably forgot to put your assertion in an It(). diff --git a/vendor/github.com/pelletier/go-toml/v2/CONTRIBUTING.md b/vendor/github.com/pelletier/go-toml/v2/CONTRIBUTING.md index 04dd12bcb..96ecf9e2b 100644 --- a/vendor/github.com/pelletier/go-toml/v2/CONTRIBUTING.md +++ b/vendor/github.com/pelletier/go-toml/v2/CONTRIBUTING.md @@ -165,25 +165,22 @@ Checklist: ### New release -1. Decide on the next version number. Use semver. -2. Generate release notes using [`gh`][gh]. Example: +1. Decide on the next version number. Use semver. Review commits since last + version to assess. +2. Tag release. For example: ``` -$ gh api -X POST \ - -F tag_name='v2.0.0-beta.5' \ - -F target_commitish='v2' \ - -F previous_tag_name='v2.0.0-beta.4' \ - --jq '.body' \ - repos/pelletier/go-toml/releases/generate-notes +git checkout v2 +git pull +git tag v2.2.0 +git push --tags ``` -3. Look for "Other changes". That would indicate a pull request not labeled - properly. Tweak labels and pull request titles until changelog looks good for - users. -4. [Draft new release][new-release]. -5. Fill tag and target with the same value used to generate the changelog. -6. Set title to the new tag value. -7. Paste the generated changelog. -8. Check "create discussion", in the "Releases" category. -9. Check pre-release if new version is an alpha or beta. +3. CI automatically builds a draft Github release. Review it and edit as + necessary. Look for "Other changes". That would indicate a pull request not + labeled properly. Tweak labels and pull request titles until changelog looks + good for users. +4. Check "create discussion" box, in the "Releases" category. +5. If new version is an alpha or beta only, check pre-release box. + [issues-tracker]: https://github.com/pelletier/go-toml/issues [bug-report]: https://github.com/pelletier/go-toml/issues/new?template=bug_report.md diff --git a/vendor/github.com/pelletier/go-toml/v2/README.md b/vendor/github.com/pelletier/go-toml/v2/README.md index b10f97f0b..d964b25fe 100644 --- a/vendor/github.com/pelletier/go-toml/v2/README.md +++ b/vendor/github.com/pelletier/go-toml/v2/README.md @@ -98,9 +98,9 @@ Given the following struct, let's see how to read it and write it as TOML: ```go type MyConfig struct { - Version int - Name string - Tags []string + Version int + Name string + Tags []string } ``` @@ -119,7 +119,7 @@ tags = ["go", "toml"] var cfg MyConfig err := toml.Unmarshal([]byte(doc), &cfg) if err != nil { - panic(err) + panic(err) } fmt.Println("version:", cfg.Version) fmt.Println("name:", cfg.Name) @@ -140,14 +140,14 @@ as a TOML document: ```go cfg := MyConfig{ - Version: 2, - Name: "go-toml", - Tags: []string{"go", "toml"}, + Version: 2, + Name: "go-toml", + Tags: []string{"go", "toml"}, } b, err := toml.Marshal(cfg) if err != nil { - panic(err) + panic(err) } fmt.Println(string(b)) @@ -175,17 +175,17 @@ the AST level. See https://pkg.go.dev/github.com/pelletier/go-toml/v2/unstable. Execution time speedup compared to other Go TOML libraries: - - - - - - - - - - - + + + + + + + + + + +
Benchmarkgo-toml v1BurntSushi/toml
Marshal/HugoFrontMatter-21.9x2.2x
Marshal/ReferenceFile/map-21.7x2.1x
Marshal/ReferenceFile/struct-22.2x3.0x
Unmarshal/HugoFrontMatter-22.9x2.7x
Unmarshal/ReferenceFile/map-22.6x2.7x
Unmarshal/ReferenceFile/struct-24.6x5.1x
Benchmarkgo-toml v1BurntSushi/toml
Marshal/HugoFrontMatter-21.9x2.2x
Marshal/ReferenceFile/map-21.7x2.1x
Marshal/ReferenceFile/struct-22.2x3.0x
Unmarshal/HugoFrontMatter-22.9x2.7x
Unmarshal/ReferenceFile/map-22.6x2.7x
Unmarshal/ReferenceFile/struct-24.6x5.1x
See more

The table above has the results of the most common use-cases. The table below @@ -193,22 +193,22 @@ contains the results of all benchmarks, including unrealistic ones. It is provided for completeness.

- - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + +
Benchmarkgo-toml v1BurntSushi/toml
Marshal/SimpleDocument/map-21.8x2.7x
Marshal/SimpleDocument/struct-22.7x3.8x
Unmarshal/SimpleDocument/map-23.8x3.0x
Unmarshal/SimpleDocument/struct-25.6x4.1x
UnmarshalDataset/example-23.0x3.2x
UnmarshalDataset/code-22.3x2.9x
UnmarshalDataset/twitter-22.6x2.7x
UnmarshalDataset/citm_catalog-22.2x2.3x
UnmarshalDataset/canada-21.8x1.5x
UnmarshalDataset/config-24.1x2.9x
geomean2.7x2.8x
Benchmarkgo-toml v1BurntSushi/toml
Marshal/SimpleDocument/map-21.8x2.7x
Marshal/SimpleDocument/struct-22.7x3.8x
Unmarshal/SimpleDocument/map-23.8x3.0x
Unmarshal/SimpleDocument/struct-25.6x4.1x
UnmarshalDataset/example-23.0x3.2x
UnmarshalDataset/code-22.3x2.9x
UnmarshalDataset/twitter-22.6x2.7x
UnmarshalDataset/citm_catalog-22.2x2.3x
UnmarshalDataset/canada-21.8x1.5x
UnmarshalDataset/config-24.1x2.9x
geomean2.7x2.8x

This table can be generated with ./ci.sh benchmark -a -html.

@@ -233,24 +233,24 @@ Go-toml provides three handy command line tools: * `tomljson`: Reads a TOML file and outputs its JSON representation. - ``` - $ go install github.com/pelletier/go-toml/v2/cmd/tomljson@latest - $ tomljson --help - ``` + ``` + $ go install github.com/pelletier/go-toml/v2/cmd/tomljson@latest + $ tomljson --help + ``` * `jsontoml`: Reads a JSON file and outputs a TOML representation. - ``` - $ go install github.com/pelletier/go-toml/v2/cmd/jsontoml@latest - $ jsontoml --help - ``` + ``` + $ go install github.com/pelletier/go-toml/v2/cmd/jsontoml@latest + $ jsontoml --help + ``` * `tomll`: Lints and reformats a TOML file. - ``` - $ go install github.com/pelletier/go-toml/v2/cmd/tomll@latest - $ tomll --help - ``` + ``` + $ go install github.com/pelletier/go-toml/v2/cmd/tomll@latest + $ tomll --help + ``` ### Docker image @@ -261,7 +261,7 @@ Those tools are also available as a [Docker image][docker]. For example, to use docker run -i ghcr.io/pelletier/go-toml:v2 tomljson < example.toml ``` -Multiple versions are availble on [ghcr.io][docker]. +Multiple versions are available on [ghcr.io][docker]. [docker]: https://github.com/pelletier/go-toml/pkgs/container/go-toml @@ -293,16 +293,16 @@ element in the interface to decode the object. For example: ```go type inner struct { - B interface{} + B interface{} } type doc struct { - A interface{} + A interface{} } d := doc{ - A: inner{ - B: "Before", - }, + A: inner{ + B: "Before", + }, } data := ` @@ -341,7 +341,7 @@ contained in the doc is superior to the capacity of the array. For example: ```go type doc struct { - A [2]string + A [2]string } d := doc{} err := toml.Unmarshal([]byte(`A = ["one", "two", "many"]`), &d) @@ -565,10 +565,11 @@ complete solutions exist out there. ## Versioning -Go-toml follows [Semantic Versioning](https://semver.org). The supported version -of [TOML](https://github.com/toml-lang/toml) is indicated at the beginning of -this document. The last two major versions of Go are supported -(see [Go Release Policy](https://golang.org/doc/devel/release.html#policy)). +Expect for parts explicitely marked otherwise, go-toml follows [Semantic +Versioning](https://semver.org). The supported version of +[TOML](https://github.com/toml-lang/toml) is indicated at the beginning of this +document. The last two major versions of Go are supported (see [Go Release +Policy](https://golang.org/doc/devel/release.html#policy)). ## License diff --git a/vendor/github.com/pelletier/go-toml/v2/internal/tracker/seen.go b/vendor/github.com/pelletier/go-toml/v2/internal/tracker/seen.go index 40e23f830..ce7dd4af1 100644 --- a/vendor/github.com/pelletier/go-toml/v2/internal/tracker/seen.go +++ b/vendor/github.com/pelletier/go-toml/v2/internal/tracker/seen.go @@ -149,8 +149,9 @@ func (s *SeenTracker) setExplicitFlag(parentIdx int) { // CheckExpression takes a top-level node and checks that it does not contain // keys that have been seen in previous calls, and validates that types are -// consistent. -func (s *SeenTracker) CheckExpression(node *unstable.Node) error { +// consistent. It returns true if it is the first time this node's key is seen. +// Useful to clear array tables on first use. +func (s *SeenTracker) CheckExpression(node *unstable.Node) (bool, error) { if s.entries == nil { s.reset() } @@ -166,7 +167,7 @@ func (s *SeenTracker) CheckExpression(node *unstable.Node) error { } } -func (s *SeenTracker) checkTable(node *unstable.Node) error { +func (s *SeenTracker) checkTable(node *unstable.Node) (bool, error) { if s.currentIdx >= 0 { s.setExplicitFlag(s.currentIdx) } @@ -192,7 +193,7 @@ func (s *SeenTracker) checkTable(node *unstable.Node) error { } else { entry := s.entries[idx] if entry.kind == valueKind { - return fmt.Errorf("toml: expected %s to be a table, not a %s", string(k), entry.kind) + return false, fmt.Errorf("toml: expected %s to be a table, not a %s", string(k), entry.kind) } } parentIdx = idx @@ -201,25 +202,27 @@ func (s *SeenTracker) checkTable(node *unstable.Node) error { k := it.Node().Data idx := s.find(parentIdx, k) + first := false if idx >= 0 { kind := s.entries[idx].kind if kind != tableKind { - return fmt.Errorf("toml: key %s should be a table, not a %s", string(k), kind) + return false, fmt.Errorf("toml: key %s should be a table, not a %s", string(k), kind) } if s.entries[idx].explicit { - return fmt.Errorf("toml: table %s already exists", string(k)) + return false, fmt.Errorf("toml: table %s already exists", string(k)) } s.entries[idx].explicit = true } else { idx = s.create(parentIdx, k, tableKind, true, false) + first = true } s.currentIdx = idx - return nil + return first, nil } -func (s *SeenTracker) checkArrayTable(node *unstable.Node) error { +func (s *SeenTracker) checkArrayTable(node *unstable.Node) (bool, error) { if s.currentIdx >= 0 { s.setExplicitFlag(s.currentIdx) } @@ -242,7 +245,7 @@ func (s *SeenTracker) checkArrayTable(node *unstable.Node) error { } else { entry := s.entries[idx] if entry.kind == valueKind { - return fmt.Errorf("toml: expected %s to be a table, not a %s", string(k), entry.kind) + return false, fmt.Errorf("toml: expected %s to be a table, not a %s", string(k), entry.kind) } } @@ -252,22 +255,23 @@ func (s *SeenTracker) checkArrayTable(node *unstable.Node) error { k := it.Node().Data idx := s.find(parentIdx, k) - if idx >= 0 { + firstTime := idx < 0 + if firstTime { + idx = s.create(parentIdx, k, arrayTableKind, true, false) + } else { kind := s.entries[idx].kind if kind != arrayTableKind { - return fmt.Errorf("toml: key %s already exists as a %s, but should be an array table", kind, string(k)) + return false, fmt.Errorf("toml: key %s already exists as a %s, but should be an array table", kind, string(k)) } s.clear(idx) - } else { - idx = s.create(parentIdx, k, arrayTableKind, true, false) } s.currentIdx = idx - return nil + return firstTime, nil } -func (s *SeenTracker) checkKeyValue(node *unstable.Node) error { +func (s *SeenTracker) checkKeyValue(node *unstable.Node) (bool, error) { parentIdx := s.currentIdx it := node.Key() @@ -281,11 +285,11 @@ func (s *SeenTracker) checkKeyValue(node *unstable.Node) error { } else { entry := s.entries[idx] if it.IsLast() { - return fmt.Errorf("toml: key %s is already defined", string(k)) + return false, fmt.Errorf("toml: key %s is already defined", string(k)) } else if entry.kind != tableKind { - return fmt.Errorf("toml: expected %s to be a table, not a %s", string(k), entry.kind) + return false, fmt.Errorf("toml: expected %s to be a table, not a %s", string(k), entry.kind) } else if entry.explicit { - return fmt.Errorf("toml: cannot redefine table %s that has already been explicitly defined", string(k)) + return false, fmt.Errorf("toml: cannot redefine table %s that has already been explicitly defined", string(k)) } } @@ -303,30 +307,30 @@ func (s *SeenTracker) checkKeyValue(node *unstable.Node) error { return s.checkArray(value) } - return nil + return false, nil } -func (s *SeenTracker) checkArray(node *unstable.Node) error { +func (s *SeenTracker) checkArray(node *unstable.Node) (first bool, err error) { it := node.Children() for it.Next() { n := it.Node() switch n.Kind { case unstable.InlineTable: - err := s.checkInlineTable(n) + first, err = s.checkInlineTable(n) if err != nil { - return err + return false, err } case unstable.Array: - err := s.checkArray(n) + first, err = s.checkArray(n) if err != nil { - return err + return false, err } } } - return nil + return first, nil } -func (s *SeenTracker) checkInlineTable(node *unstable.Node) error { +func (s *SeenTracker) checkInlineTable(node *unstable.Node) (first bool, err error) { if pool.New == nil { pool.New = func() interface{} { return &SeenTracker{} @@ -339,9 +343,9 @@ func (s *SeenTracker) checkInlineTable(node *unstable.Node) error { it := node.Children() for it.Next() { n := it.Node() - err := s.checkKeyValue(n) + first, err = s.checkKeyValue(n) if err != nil { - return err + return false, err } } @@ -352,5 +356,5 @@ func (s *SeenTracker) checkInlineTable(node *unstable.Node) error { // redefinition of its keys: check* functions cannot walk into // a value. pool.Put(s) - return nil + return first, nil } diff --git a/vendor/github.com/pelletier/go-toml/v2/marshaler.go b/vendor/github.com/pelletier/go-toml/v2/marshaler.go index 6fe78533c..7f4e20c12 100644 --- a/vendor/github.com/pelletier/go-toml/v2/marshaler.go +++ b/vendor/github.com/pelletier/go-toml/v2/marshaler.go @@ -3,6 +3,7 @@ package toml import ( "bytes" "encoding" + "encoding/json" "fmt" "io" "math" @@ -37,10 +38,11 @@ type Encoder struct { w io.Writer // global settings - tablesInline bool - arraysMultiline bool - indentSymbol string - indentTables bool + tablesInline bool + arraysMultiline bool + indentSymbol string + indentTables bool + marshalJsonNumbers bool } // NewEncoder returns a new Encoder that writes to w. @@ -87,6 +89,17 @@ func (enc *Encoder) SetIndentTables(indent bool) *Encoder { return enc } +// SetMarshalJsonNumbers forces the encoder to serialize `json.Number` as a +// float or integer instead of relying on TextMarshaler to emit a string. +// +// *Unstable:* This method does not follow the compatibility guarantees of +// semver. It can be changed or removed without a new major version being +// issued. +func (enc *Encoder) SetMarshalJsonNumbers(indent bool) *Encoder { + enc.marshalJsonNumbers = indent + return enc +} + // Encode writes a TOML representation of v to the stream. // // If v cannot be represented to TOML it returns an error. @@ -252,6 +265,18 @@ func (enc *Encoder) encode(b []byte, ctx encoderCtx, v reflect.Value) ([]byte, e return append(b, x.String()...), nil case LocalDateTime: return append(b, x.String()...), nil + case json.Number: + if enc.marshalJsonNumbers { + if x == "" { /// Useful zero value. + return append(b, "0"...), nil + } else if v, err := x.Int64(); err == nil { + return enc.encode(b, ctx, reflect.ValueOf(v)) + } else if f, err := x.Float64(); err == nil { + return enc.encode(b, ctx, reflect.ValueOf(f)) + } else { + return nil, fmt.Errorf("toml: unable to convert %q to int64 or float64", x) + } + } } hasTextMarshaler := v.Type().Implements(textMarshalerType) @@ -707,6 +732,8 @@ func walkStruct(ctx encoderCtx, t *table, v reflect.Value) { if fieldType.Anonymous { if fieldType.Type.Kind() == reflect.Struct { walkStruct(ctx, t, f) + } else if fieldType.Type.Kind() == reflect.Pointer && !f.IsNil() && f.Elem().Kind() == reflect.Struct { + walkStruct(ctx, t, f.Elem()) } continue } else { @@ -998,6 +1025,10 @@ func (enc *Encoder) encodeSliceAsArrayTable(b []byte, ctx encoderCtx, v reflect. scratch = enc.commented(ctx.commented, scratch) + if enc.indentTables { + scratch = enc.indent(ctx.indent, scratch) + } + scratch = append(scratch, "[["...) for i, k := range ctx.parentKey { diff --git a/vendor/github.com/pelletier/go-toml/v2/unmarshaler.go b/vendor/github.com/pelletier/go-toml/v2/unmarshaler.go index c5e5f3390..98231bae6 100644 --- a/vendor/github.com/pelletier/go-toml/v2/unmarshaler.go +++ b/vendor/github.com/pelletier/go-toml/v2/unmarshaler.go @@ -35,6 +35,9 @@ type Decoder struct { // global settings strict bool + + // toggles unmarshaler interface + unmarshalerInterface bool } // NewDecoder creates a new Decoder that will read from r. @@ -54,6 +57,24 @@ func (d *Decoder) DisallowUnknownFields() *Decoder { return d } +// EnableUnmarshalerInterface allows to enable unmarshaler interface. +// +// With this feature enabled, types implementing the unstable/Unmarshaler +// interface can be decoded from any structure of the document. It allows types +// that don't have a straightfoward TOML representation to provide their own +// decoding logic. +// +// Currently, types can only decode from a single value. Tables and array tables +// are not supported. +// +// *Unstable:* This method does not follow the compatibility guarantees of +// semver. It can be changed or removed without a new major version being +// issued. +func (d *Decoder) EnableUnmarshalerInterface() *Decoder { + d.unmarshalerInterface = true + return d +} + // Decode the whole content of r into v. // // By default, values in the document that don't exist in the target Go value @@ -108,6 +129,7 @@ func (d *Decoder) Decode(v interface{}) error { strict: strict{ Enabled: d.strict, }, + unmarshalerInterface: d.unmarshalerInterface, } return dec.FromParser(v) @@ -127,6 +149,10 @@ type decoder struct { // need to be skipped. skipUntilTable bool + // Flag indicating that the current array/slice table should be cleared because + // it is the first encounter of an array table. + clearArrayTable bool + // Tracks position in Go arrays. // This is used when decoding [[array tables]] into Go arrays. Given array // tables are separate TOML expression, we need to keep track of where we @@ -139,6 +165,9 @@ type decoder struct { // Strict mode strict strict + // Flag that enables/disables unmarshaler interface. + unmarshalerInterface bool + // Current context for the error. errorContext *errorContext } @@ -246,9 +275,10 @@ Rules for the unmarshal code: func (d *decoder) handleRootExpression(expr *unstable.Node, v reflect.Value) error { var x reflect.Value var err error + var first bool // used for to clear array tables on first use if !(d.skipUntilTable && expr.Kind == unstable.KeyValue) { - err = d.seen.CheckExpression(expr) + first, err = d.seen.CheckExpression(expr) if err != nil { return err } @@ -267,6 +297,7 @@ func (d *decoder) handleRootExpression(expr *unstable.Node, v reflect.Value) err case unstable.ArrayTable: d.skipUntilTable = false d.strict.EnterArrayTable(expr) + d.clearArrayTable = first x, err = d.handleArrayTable(expr.Key(), v) default: panic(fmt.Errorf("parser should not permit expression of kind %s at document root", expr.Kind)) @@ -307,6 +338,10 @@ func (d *decoder) handleArrayTableCollectionLast(key unstable.Iterator, v reflec reflect.Copy(nelem, elem) elem = nelem } + if d.clearArrayTable && elem.Len() > 0 { + elem.SetLen(0) + d.clearArrayTable = false + } } return d.handleArrayTableCollectionLast(key, elem) case reflect.Ptr: @@ -325,6 +360,10 @@ func (d *decoder) handleArrayTableCollectionLast(key unstable.Iterator, v reflec return v, nil case reflect.Slice: + if d.clearArrayTable && v.Len() > 0 { + v.SetLen(0) + d.clearArrayTable = false + } elemType := v.Type().Elem() var elem reflect.Value if elemType.Kind() == reflect.Interface { @@ -576,7 +615,7 @@ func (d *decoder) handleKeyValues(v reflect.Value) (reflect.Value, error) { break } - err := d.seen.CheckExpression(expr) + _, err := d.seen.CheckExpression(expr) if err != nil { return reflect.Value{}, err } @@ -634,6 +673,14 @@ func (d *decoder) handleValue(value *unstable.Node, v reflect.Value) error { v = initAndDereferencePointer(v) } + if d.unmarshalerInterface { + if v.CanAddr() && v.Addr().CanInterface() { + if outi, ok := v.Addr().Interface().(unstable.Unmarshaler); ok { + return outi.UnmarshalTOML(value) + } + } + } + ok, err := d.tryTextUnmarshaler(value, v) if ok || err != nil { return err diff --git a/vendor/github.com/pelletier/go-toml/v2/unstable/unmarshaler.go b/vendor/github.com/pelletier/go-toml/v2/unstable/unmarshaler.go new file mode 100644 index 000000000..00cfd6de4 --- /dev/null +++ b/vendor/github.com/pelletier/go-toml/v2/unstable/unmarshaler.go @@ -0,0 +1,7 @@ +package unstable + +// The Unmarshaler interface may be implemented by types to customize their +// behavior when being unmarshaled from a TOML document. +type Unmarshaler interface { + UnmarshalTOML(value *Node) error +} diff --git a/vendor/github.com/prometheus/client_golang/prometheus/testutil/promlint/promlint.go b/vendor/github.com/prometheus/client_golang/prometheus/testutil/promlint/promlint.go index dd29cccc3..ea46f38ec 100644 --- a/vendor/github.com/prometheus/client_golang/prometheus/testutil/promlint/promlint.go +++ b/vendor/github.com/prometheus/client_golang/prometheus/testutil/promlint/promlint.go @@ -68,7 +68,7 @@ func (l *Linter) Lint() ([]Problem, error) { var problems []Problem if l.r != nil { - d := expfmt.NewDecoder(l.r, expfmt.FmtText) + d := expfmt.NewDecoder(l.r, expfmt.NewFormat(expfmt.TypeTextPlain)) mf := &dto.MetricFamily{} for { diff --git a/vendor/github.com/prometheus/client_golang/prometheus/testutil/testutil.go b/vendor/github.com/prometheus/client_golang/prometheus/testutil/testutil.go index 269f56435..9dce15eaf 100644 --- a/vendor/github.com/prometheus/client_golang/prometheus/testutil/testutil.go +++ b/vendor/github.com/prometheus/client_golang/prometheus/testutil/testutil.go @@ -265,13 +265,13 @@ func compareMetricFamilies(got, expected []*dto.MetricFamily, metricNames ...str // result. func compare(got, want []*dto.MetricFamily) error { var gotBuf, wantBuf bytes.Buffer - enc := expfmt.NewEncoder(&gotBuf, expfmt.FmtText) + enc := expfmt.NewEncoder(&gotBuf, expfmt.NewFormat(expfmt.TypeTextPlain)) for _, mf := range got { if err := enc.Encode(mf); err != nil { return fmt.Errorf("encoding gathered metrics failed: %w", err) } } - enc = expfmt.NewEncoder(&wantBuf, expfmt.FmtText) + enc = expfmt.NewEncoder(&wantBuf, expfmt.NewFormat(expfmt.TypeTextPlain)) for _, mf := range want { if err := enc.Encode(mf); err != nil { return fmt.Errorf("encoding expected metrics failed: %w", err) diff --git a/vendor/github.com/prometheus/client_model/go/metrics.pb.go b/vendor/github.com/prometheus/client_model/go/metrics.pb.go index cee360db7..2f1549075 100644 --- a/vendor/github.com/prometheus/client_model/go/metrics.pb.go +++ b/vendor/github.com/prometheus/client_model/go/metrics.pb.go @@ -483,6 +483,8 @@ type Histogram struct { // histograms. PositiveDelta []int64 `protobuf:"zigzag64,13,rep,name=positive_delta,json=positiveDelta" json:"positive_delta,omitempty"` // Count delta of each bucket compared to previous one (or to zero for 1st bucket). PositiveCount []float64 `protobuf:"fixed64,14,rep,name=positive_count,json=positiveCount" json:"positive_count,omitempty"` // Absolute count of each bucket. + // Only used for native histograms. These exemplars MUST have a timestamp. + Exemplars []*Exemplar `protobuf:"bytes,16,rep,name=exemplars" json:"exemplars,omitempty"` } func (x *Histogram) Reset() { @@ -622,6 +624,13 @@ func (x *Histogram) GetPositiveCount() []float64 { return nil } +func (x *Histogram) GetExemplars() []*Exemplar { + if x != nil { + return x.Exemplars + } + return nil +} + // A Bucket of a conventional histogram, each of which is treated as // an individual counter-like time series by Prometheus. type Bucket struct { @@ -923,6 +932,7 @@ type MetricFamily struct { Help *string `protobuf:"bytes,2,opt,name=help" json:"help,omitempty"` Type *MetricType `protobuf:"varint,3,opt,name=type,enum=io.prometheus.client.MetricType" json:"type,omitempty"` Metric []*Metric `protobuf:"bytes,4,rep,name=metric" json:"metric,omitempty"` + Unit *string `protobuf:"bytes,5,opt,name=unit" json:"unit,omitempty"` } func (x *MetricFamily) Reset() { @@ -985,6 +995,13 @@ func (x *MetricFamily) GetMetric() []*Metric { return nil } +func (x *MetricFamily) GetUnit() string { + if x != nil && x.Unit != nil { + return *x.Unit + } + return "" +} + var File_io_prometheus_client_metrics_proto protoreflect.FileDescriptor var file_io_prometheus_client_metrics_proto_rawDesc = []byte{ @@ -1028,7 +1045,7 @@ var file_io_prometheus_client_metrics_proto_rawDesc = []byte{ 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x10, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x1f, 0x0a, 0x07, 0x55, 0x6e, 0x74, 0x79, 0x70, 0x65, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xac, 0x05, 0x0a, 0x09, 0x48, + 0x01, 0x28, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xea, 0x05, 0x0a, 0x09, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2c, 0x0a, 0x12, 0x73, @@ -1071,79 +1088,84 @@ var file_io_prometheus_client_metrics_proto_rawDesc = []byte{ 0x03, 0x28, 0x12, 0x52, 0x0d, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x44, 0x65, 0x6c, 0x74, 0x61, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x01, 0x52, 0x0d, 0x70, 0x6f, 0x73, 0x69, - 0x74, 0x69, 0x76, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xc6, 0x01, 0x0a, 0x06, 0x42, 0x75, - 0x63, 0x6b, 0x65, 0x74, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, - 0x76, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, - 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, - 0x34, 0x0a, 0x16, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x5f, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, 0x52, - 0x14, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x75, 0x70, 0x70, 0x65, 0x72, 0x5f, 0x62, - 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x75, 0x70, 0x70, 0x65, - 0x72, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x3a, 0x0a, 0x08, 0x65, 0x78, 0x65, 0x6d, 0x70, 0x6c, - 0x61, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6f, 0x2e, 0x70, 0x72, - 0x6f, 0x6d, 0x65, 0x74, 0x68, 0x65, 0x75, 0x73, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, - 0x45, 0x78, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x72, 0x52, 0x08, 0x65, 0x78, 0x65, 0x6d, 0x70, 0x6c, - 0x61, 0x72, 0x22, 0x3c, 0x0a, 0x0a, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x53, 0x70, 0x61, 0x6e, - 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x11, - 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x22, 0x91, 0x01, 0x0a, 0x08, 0x45, 0x78, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x72, 0x12, 0x35, 0x0a, + 0x74, 0x69, 0x76, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3c, 0x0a, 0x09, 0x65, 0x78, 0x65, + 0x6d, 0x70, 0x6c, 0x61, 0x72, 0x73, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, + 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x6d, 0x65, 0x74, 0x68, 0x65, 0x75, 0x73, 0x2e, 0x63, 0x6c, 0x69, + 0x65, 0x6e, 0x74, 0x2e, 0x45, 0x78, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x72, 0x52, 0x09, 0x65, 0x78, + 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x72, 0x73, 0x22, 0xc6, 0x01, 0x0a, 0x06, 0x42, 0x75, 0x63, 0x6b, + 0x65, 0x74, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, + 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x63, 0x75, + 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x34, 0x0a, + 0x16, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x5f, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, 0x52, 0x14, 0x63, + 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x46, 0x6c, + 0x6f, 0x61, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x75, 0x70, 0x70, 0x65, 0x72, 0x5f, 0x62, 0x6f, 0x75, + 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x75, 0x70, 0x70, 0x65, 0x72, 0x42, + 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x3a, 0x0a, 0x08, 0x65, 0x78, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x72, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x6d, + 0x65, 0x74, 0x68, 0x65, 0x75, 0x73, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x45, 0x78, + 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x72, 0x52, 0x08, 0x65, 0x78, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x72, + 0x22, 0x3c, 0x0a, 0x0a, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x53, 0x70, 0x61, 0x6e, 0x12, 0x16, + 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x11, 0x52, 0x06, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x91, + 0x01, 0x0a, 0x08, 0x45, 0x78, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x72, 0x12, 0x35, 0x0a, 0x05, 0x6c, + 0x61, 0x62, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x69, 0x6f, 0x2e, + 0x70, 0x72, 0x6f, 0x6d, 0x65, 0x74, 0x68, 0x65, 0x75, 0x73, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, + 0x74, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x50, 0x61, 0x69, 0x72, 0x52, 0x05, 0x6c, 0x61, 0x62, + 0x65, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x38, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x22, 0xff, 0x02, 0x0a, 0x06, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x35, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x69, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x6d, 0x65, 0x74, 0x68, 0x65, 0x75, 0x73, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x50, 0x61, 0x69, 0x72, 0x52, 0x05, 0x6c, - 0x61, 0x62, 0x65, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x38, 0x0a, 0x09, 0x74, 0x69, - 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, - 0x74, 0x61, 0x6d, 0x70, 0x22, 0xff, 0x02, 0x0a, 0x06, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, - 0x35, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, - 0x2e, 0x69, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x6d, 0x65, 0x74, 0x68, 0x65, 0x75, 0x73, 0x2e, 0x63, - 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x50, 0x61, 0x69, 0x72, 0x52, - 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x31, 0x0a, 0x05, 0x67, 0x61, 0x75, 0x67, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x69, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x6d, 0x65, - 0x74, 0x68, 0x65, 0x75, 0x73, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x47, 0x61, 0x75, - 0x67, 0x65, 0x52, 0x05, 0x67, 0x61, 0x75, 0x67, 0x65, 0x12, 0x37, 0x0a, 0x07, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x69, 0x6f, 0x2e, + 0x61, 0x62, 0x65, 0x6c, 0x12, 0x31, 0x0a, 0x05, 0x67, 0x61, 0x75, 0x67, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x69, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x6d, 0x65, 0x74, 0x68, + 0x65, 0x75, 0x73, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x47, 0x61, 0x75, 0x67, 0x65, + 0x52, 0x05, 0x67, 0x61, 0x75, 0x67, 0x65, 0x12, 0x37, 0x0a, 0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x69, 0x6f, 0x2e, 0x70, 0x72, + 0x6f, 0x6d, 0x65, 0x74, 0x68, 0x65, 0x75, 0x73, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x12, 0x37, 0x0a, 0x07, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1d, 0x2e, 0x69, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x6d, 0x65, 0x74, 0x68, 0x65, 0x75, + 0x73, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, + 0x52, 0x07, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x37, 0x0a, 0x07, 0x75, 0x6e, 0x74, + 0x79, 0x70, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x69, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x6d, 0x65, 0x74, 0x68, 0x65, 0x75, 0x73, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, - 0x74, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x72, 0x12, 0x37, 0x0a, 0x07, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x69, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x6d, 0x65, 0x74, 0x68, - 0x65, 0x75, 0x73, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x75, 0x6d, 0x6d, 0x61, - 0x72, 0x79, 0x52, 0x07, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x37, 0x0a, 0x07, 0x75, - 0x6e, 0x74, 0x79, 0x70, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x69, - 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x6d, 0x65, 0x74, 0x68, 0x65, 0x75, 0x73, 0x2e, 0x63, 0x6c, 0x69, - 0x65, 0x6e, 0x74, 0x2e, 0x55, 0x6e, 0x74, 0x79, 0x70, 0x65, 0x64, 0x52, 0x07, 0x75, 0x6e, 0x74, - 0x79, 0x70, 0x65, 0x64, 0x12, 0x3d, 0x0a, 0x09, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61, - 0x6d, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x69, 0x6f, 0x2e, 0x70, 0x72, 0x6f, - 0x6d, 0x65, 0x74, 0x68, 0x65, 0x75, 0x73, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x48, - 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x52, 0x09, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x67, - 0x72, 0x61, 0x6d, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, - 0x5f, 0x6d, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x74, 0x69, 0x6d, 0x65, 0x73, - 0x74, 0x61, 0x6d, 0x70, 0x4d, 0x73, 0x22, 0xa2, 0x01, 0x0a, 0x0c, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x68, - 0x65, 0x6c, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x65, 0x6c, 0x70, 0x12, - 0x34, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, - 0x69, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x6d, 0x65, 0x74, 0x68, 0x65, 0x75, 0x73, 0x2e, 0x63, 0x6c, - 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x79, 0x70, 0x65, 0x52, - 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x34, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x18, - 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x69, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x6d, 0x65, - 0x74, 0x68, 0x65, 0x75, 0x73, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x2a, 0x62, 0x0a, 0x0a, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x43, 0x4f, 0x55, - 0x4e, 0x54, 0x45, 0x52, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x47, 0x41, 0x55, 0x47, 0x45, 0x10, - 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x55, 0x4d, 0x4d, 0x41, 0x52, 0x59, 0x10, 0x02, 0x12, 0x0b, - 0x0a, 0x07, 0x55, 0x4e, 0x54, 0x59, 0x50, 0x45, 0x44, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x48, - 0x49, 0x53, 0x54, 0x4f, 0x47, 0x52, 0x41, 0x4d, 0x10, 0x04, 0x12, 0x13, 0x0a, 0x0f, 0x47, 0x41, - 0x55, 0x47, 0x45, 0x5f, 0x48, 0x49, 0x53, 0x54, 0x4f, 0x47, 0x52, 0x41, 0x4d, 0x10, 0x05, 0x42, - 0x52, 0x0a, 0x14, 0x69, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x6d, 0x65, 0x74, 0x68, 0x65, 0x75, 0x73, - 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5a, 0x3a, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, - 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x72, 0x6f, 0x6d, 0x65, 0x74, 0x68, 0x65, 0x75, 0x73, 0x2f, 0x63, - 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2f, 0x67, 0x6f, 0x3b, 0x69, - 0x6f, 0x5f, 0x70, 0x72, 0x6f, 0x6d, 0x65, 0x74, 0x68, 0x65, 0x75, 0x73, 0x5f, 0x63, 0x6c, 0x69, - 0x65, 0x6e, 0x74, + 0x74, 0x2e, 0x55, 0x6e, 0x74, 0x79, 0x70, 0x65, 0x64, 0x52, 0x07, 0x75, 0x6e, 0x74, 0x79, 0x70, + 0x65, 0x64, 0x12, 0x3d, 0x0a, 0x09, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x69, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x6d, 0x65, + 0x74, 0x68, 0x65, 0x75, 0x73, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x48, 0x69, 0x73, + 0x74, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x52, 0x09, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61, + 0x6d, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x5f, 0x6d, + 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x4d, 0x73, 0x22, 0xb6, 0x01, 0x0a, 0x0c, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x46, + 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x65, 0x6c, + 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x65, 0x6c, 0x70, 0x12, 0x34, 0x0a, + 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x69, 0x6f, + 0x2e, 0x70, 0x72, 0x6f, 0x6d, 0x65, 0x74, 0x68, 0x65, 0x75, 0x73, 0x2e, 0x63, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, + 0x79, 0x70, 0x65, 0x12, 0x34, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x18, 0x04, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x69, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x6d, 0x65, 0x74, 0x68, + 0x65, 0x75, 0x73, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x6e, 0x69, + 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x6e, 0x69, 0x74, 0x2a, 0x62, 0x0a, + 0x0a, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x43, + 0x4f, 0x55, 0x4e, 0x54, 0x45, 0x52, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x47, 0x41, 0x55, 0x47, + 0x45, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x55, 0x4d, 0x4d, 0x41, 0x52, 0x59, 0x10, 0x02, + 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x54, 0x59, 0x50, 0x45, 0x44, 0x10, 0x03, 0x12, 0x0d, 0x0a, + 0x09, 0x48, 0x49, 0x53, 0x54, 0x4f, 0x47, 0x52, 0x41, 0x4d, 0x10, 0x04, 0x12, 0x13, 0x0a, 0x0f, + 0x47, 0x41, 0x55, 0x47, 0x45, 0x5f, 0x48, 0x49, 0x53, 0x54, 0x4f, 0x47, 0x52, 0x41, 0x4d, 0x10, + 0x05, 0x42, 0x52, 0x0a, 0x14, 0x69, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x6d, 0x65, 0x74, 0x68, 0x65, + 0x75, 0x73, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5a, 0x3a, 0x67, 0x69, 0x74, 0x68, 0x75, + 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x72, 0x6f, 0x6d, 0x65, 0x74, 0x68, 0x65, 0x75, 0x73, + 0x2f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2f, 0x67, 0x6f, + 0x3b, 0x69, 0x6f, 0x5f, 0x70, 0x72, 0x6f, 0x6d, 0x65, 0x74, 0x68, 0x65, 0x75, 0x73, 0x5f, 0x63, + 0x6c, 0x69, 0x65, 0x6e, 0x74, } var ( @@ -1185,22 +1207,23 @@ var file_io_prometheus_client_metrics_proto_depIdxs = []int32{ 13, // 5: io.prometheus.client.Histogram.created_timestamp:type_name -> google.protobuf.Timestamp 9, // 6: io.prometheus.client.Histogram.negative_span:type_name -> io.prometheus.client.BucketSpan 9, // 7: io.prometheus.client.Histogram.positive_span:type_name -> io.prometheus.client.BucketSpan - 10, // 8: io.prometheus.client.Bucket.exemplar:type_name -> io.prometheus.client.Exemplar - 1, // 9: io.prometheus.client.Exemplar.label:type_name -> io.prometheus.client.LabelPair - 13, // 10: io.prometheus.client.Exemplar.timestamp:type_name -> google.protobuf.Timestamp - 1, // 11: io.prometheus.client.Metric.label:type_name -> io.prometheus.client.LabelPair - 2, // 12: io.prometheus.client.Metric.gauge:type_name -> io.prometheus.client.Gauge - 3, // 13: io.prometheus.client.Metric.counter:type_name -> io.prometheus.client.Counter - 5, // 14: io.prometheus.client.Metric.summary:type_name -> io.prometheus.client.Summary - 6, // 15: io.prometheus.client.Metric.untyped:type_name -> io.prometheus.client.Untyped - 7, // 16: io.prometheus.client.Metric.histogram:type_name -> io.prometheus.client.Histogram - 0, // 17: io.prometheus.client.MetricFamily.type:type_name -> io.prometheus.client.MetricType - 11, // 18: io.prometheus.client.MetricFamily.metric:type_name -> io.prometheus.client.Metric - 19, // [19:19] is the sub-list for method output_type - 19, // [19:19] is the sub-list for method input_type - 19, // [19:19] is the sub-list for extension type_name - 19, // [19:19] is the sub-list for extension extendee - 0, // [0:19] is the sub-list for field type_name + 10, // 8: io.prometheus.client.Histogram.exemplars:type_name -> io.prometheus.client.Exemplar + 10, // 9: io.prometheus.client.Bucket.exemplar:type_name -> io.prometheus.client.Exemplar + 1, // 10: io.prometheus.client.Exemplar.label:type_name -> io.prometheus.client.LabelPair + 13, // 11: io.prometheus.client.Exemplar.timestamp:type_name -> google.protobuf.Timestamp + 1, // 12: io.prometheus.client.Metric.label:type_name -> io.prometheus.client.LabelPair + 2, // 13: io.prometheus.client.Metric.gauge:type_name -> io.prometheus.client.Gauge + 3, // 14: io.prometheus.client.Metric.counter:type_name -> io.prometheus.client.Counter + 5, // 15: io.prometheus.client.Metric.summary:type_name -> io.prometheus.client.Summary + 6, // 16: io.prometheus.client.Metric.untyped:type_name -> io.prometheus.client.Untyped + 7, // 17: io.prometheus.client.Metric.histogram:type_name -> io.prometheus.client.Histogram + 0, // 18: io.prometheus.client.MetricFamily.type:type_name -> io.prometheus.client.MetricType + 11, // 19: io.prometheus.client.MetricFamily.metric:type_name -> io.prometheus.client.Metric + 20, // [20:20] is the sub-list for method output_type + 20, // [20:20] is the sub-list for method input_type + 20, // [20:20] is the sub-list for extension type_name + 20, // [20:20] is the sub-list for extension extendee + 0, // [0:20] is the sub-list for field type_name } func init() { file_io_prometheus_client_metrics_proto_init() } diff --git a/vendor/github.com/prometheus/common/expfmt/decode.go b/vendor/github.com/prometheus/common/expfmt/decode.go index a909b171c..25cfaa216 100644 --- a/vendor/github.com/prometheus/common/expfmt/decode.go +++ b/vendor/github.com/prometheus/common/expfmt/decode.go @@ -45,7 +45,7 @@ func ResponseFormat(h http.Header) Format { mediatype, params, err := mime.ParseMediaType(ct) if err != nil { - return FmtUnknown + return fmtUnknown } const textType = "text/plain" @@ -53,36 +53,36 @@ func ResponseFormat(h http.Header) Format { switch mediatype { case ProtoType: if p, ok := params["proto"]; ok && p != ProtoProtocol { - return FmtUnknown + return fmtUnknown } if e, ok := params["encoding"]; ok && e != "delimited" { - return FmtUnknown + return fmtUnknown } - return FmtProtoDelim + return fmtProtoDelim case textType: if v, ok := params["version"]; ok && v != TextVersion { - return FmtUnknown + return fmtUnknown } - return FmtText + return fmtText } - return FmtUnknown + return fmtUnknown } // NewDecoder returns a new decoder based on the given input format. // If the input format does not imply otherwise, a text format decoder is returned. func NewDecoder(r io.Reader, format Format) Decoder { - switch format { - case FmtProtoDelim: - return &protoDecoder{r: r} + switch format.FormatType() { + case TypeProtoDelim: + return &protoDecoder{r: bufio.NewReader(r)} } return &textDecoder{r: r} } // protoDecoder implements the Decoder interface for protocol buffers. type protoDecoder struct { - r io.Reader + r protodelim.Reader } // Decode implements the Decoder interface. @@ -90,7 +90,7 @@ func (d *protoDecoder) Decode(v *dto.MetricFamily) error { opts := protodelim.UnmarshalOptions{ MaxSize: -1, } - if err := opts.UnmarshalFrom(bufio.NewReader(d.r), v); err != nil { + if err := opts.UnmarshalFrom(d.r, v); err != nil { return err } if !model.IsValidMetricName(model.LabelValue(v.GetName())) { diff --git a/vendor/github.com/prometheus/common/expfmt/encode.go b/vendor/github.com/prometheus/common/expfmt/encode.go index 02b7a5e81..7f6cbe7d2 100644 --- a/vendor/github.com/prometheus/common/expfmt/encode.go +++ b/vendor/github.com/prometheus/common/expfmt/encode.go @@ -22,6 +22,7 @@ import ( "google.golang.org/protobuf/encoding/prototext" "github.com/prometheus/common/internal/bitbucket.org/ww/goautoneg" + "github.com/prometheus/common/model" dto "github.com/prometheus/client_model/go" ) @@ -61,23 +62,32 @@ func (ec encoderCloser) Close() error { // as the support is still experimental. To include the option to negotiate // FmtOpenMetrics, use NegotiateOpenMetrics. func Negotiate(h http.Header) Format { + escapingScheme := Format(fmt.Sprintf("; escaping=%s", Format(model.NameEscapingScheme.String()))) for _, ac := range goautoneg.ParseAccept(h.Get(hdrAccept)) { + if escapeParam := ac.Params[model.EscapingKey]; escapeParam != "" { + switch Format(escapeParam) { + case model.AllowUTF8, model.EscapeUnderscores, model.EscapeDots, model.EscapeValues: + escapingScheme = Format(fmt.Sprintf("; escaping=%s", escapeParam)) + default: + // If the escaping parameter is unknown, ignore it. + } + } ver := ac.Params["version"] if ac.Type+"/"+ac.SubType == ProtoType && ac.Params["proto"] == ProtoProtocol { switch ac.Params["encoding"] { case "delimited": - return FmtProtoDelim + return fmtProtoDelim + escapingScheme case "text": - return FmtProtoText + return fmtProtoText + escapingScheme case "compact-text": - return FmtProtoCompact + return fmtProtoCompact + escapingScheme } } if ac.Type == "text" && ac.SubType == "plain" && (ver == TextVersion || ver == "") { - return FmtText + return fmtText + escapingScheme } } - return FmtText + return fmtText + escapingScheme } // NegotiateIncludingOpenMetrics works like Negotiate but includes @@ -85,29 +95,40 @@ func Negotiate(h http.Header) Format { // temporary and will disappear once FmtOpenMetrics is fully supported and as // such may be negotiated by the normal Negotiate function. func NegotiateIncludingOpenMetrics(h http.Header) Format { + escapingScheme := Format(fmt.Sprintf("; escaping=%s", Format(model.NameEscapingScheme.String()))) for _, ac := range goautoneg.ParseAccept(h.Get(hdrAccept)) { + if escapeParam := ac.Params[model.EscapingKey]; escapeParam != "" { + switch Format(escapeParam) { + case model.AllowUTF8, model.EscapeUnderscores, model.EscapeDots, model.EscapeValues: + escapingScheme = Format(fmt.Sprintf("; escaping=%s", escapeParam)) + default: + // If the escaping parameter is unknown, ignore it. + } + } ver := ac.Params["version"] if ac.Type+"/"+ac.SubType == ProtoType && ac.Params["proto"] == ProtoProtocol { switch ac.Params["encoding"] { case "delimited": - return FmtProtoDelim + return fmtProtoDelim + escapingScheme case "text": - return FmtProtoText + return fmtProtoText + escapingScheme case "compact-text": - return FmtProtoCompact + return fmtProtoCompact + escapingScheme } } if ac.Type == "text" && ac.SubType == "plain" && (ver == TextVersion || ver == "") { - return FmtText + return fmtText + escapingScheme } if ac.Type+"/"+ac.SubType == OpenMetricsType && (ver == OpenMetricsVersion_0_0_1 || ver == OpenMetricsVersion_1_0_0 || ver == "") { - if ver == OpenMetricsVersion_1_0_0 { - return FmtOpenMetrics_1_0_0 + switch ver { + case OpenMetricsVersion_1_0_0: + return fmtOpenMetrics_1_0_0 + escapingScheme + default: + return fmtOpenMetrics_0_0_1 + escapingScheme } - return FmtOpenMetrics_0_0_1 } } - return FmtText + return fmtText + escapingScheme } // NewEncoder returns a new encoder based on content type negotiation. All @@ -116,9 +137,19 @@ func NegotiateIncludingOpenMetrics(h http.Header) Format { // for FmtOpenMetrics, but a future (breaking) release will add the Close method // to the Encoder interface directly. The current version of the Encoder // interface is kept for backwards compatibility. -func NewEncoder(w io.Writer, format Format) Encoder { - switch format { - case FmtProtoDelim: +// In cases where the Format does not allow for UTF-8 names, the global +// NameEscapingScheme will be applied. +// +// NewEncoder can be called with additional options to customize the OpenMetrics text output. +// For example: +// NewEncoder(w, FmtOpenMetrics_1_0_0, WithCreatedLines()) +// +// Extra options are ignored for all other formats. +func NewEncoder(w io.Writer, format Format, options ...EncoderOption) Encoder { + escapingScheme := format.ToEscapingScheme() + + switch format.FormatType() { + case TypeProtoDelim: return encoderCloser{ encode: func(v *dto.MetricFamily) error { _, err := protodelim.MarshalTo(w, v) @@ -126,34 +157,34 @@ func NewEncoder(w io.Writer, format Format) Encoder { }, close: func() error { return nil }, } - case FmtProtoCompact: + case TypeProtoCompact: return encoderCloser{ encode: func(v *dto.MetricFamily) error { - _, err := fmt.Fprintln(w, v.String()) + _, err := fmt.Fprintln(w, model.EscapeMetricFamily(v, escapingScheme).String()) return err }, close: func() error { return nil }, } - case FmtProtoText: + case TypeProtoText: return encoderCloser{ encode: func(v *dto.MetricFamily) error { - _, err := fmt.Fprintln(w, prototext.Format(v)) + _, err := fmt.Fprintln(w, prototext.Format(model.EscapeMetricFamily(v, escapingScheme))) return err }, close: func() error { return nil }, } - case FmtText: + case TypeTextPlain: return encoderCloser{ encode: func(v *dto.MetricFamily) error { - _, err := MetricFamilyToText(w, v) + _, err := MetricFamilyToText(w, model.EscapeMetricFamily(v, escapingScheme)) return err }, close: func() error { return nil }, } - case FmtOpenMetrics_0_0_1, FmtOpenMetrics_1_0_0: + case TypeOpenMetrics: return encoderCloser{ encode: func(v *dto.MetricFamily) error { - _, err := MetricFamilyToOpenMetrics(w, v) + _, err := MetricFamilyToOpenMetrics(w, model.EscapeMetricFamily(v, escapingScheme), options...) return err }, close: func() error { diff --git a/vendor/github.com/prometheus/common/expfmt/expfmt.go b/vendor/github.com/prometheus/common/expfmt/expfmt.go index c4cb20f0d..051b38cd1 100644 --- a/vendor/github.com/prometheus/common/expfmt/expfmt.go +++ b/vendor/github.com/prometheus/common/expfmt/expfmt.go @@ -14,30 +14,164 @@ // Package expfmt contains tools for reading and writing Prometheus metrics. package expfmt +import ( + "fmt" + "strings" + + "github.com/prometheus/common/model" +) + // Format specifies the HTTP content type of the different wire protocols. type Format string -// Constants to assemble the Content-Type values for the different wire protocols. +// Constants to assemble the Content-Type values for the different wire +// protocols. The Content-Type strings here are all for the legacy exposition +// formats, where valid characters for metric names and label names are limited. +// Support for arbitrary UTF-8 characters in those names is already partially +// implemented in this module (see model.ValidationScheme), but to actually use +// it on the wire, new content-type strings will have to be agreed upon and +// added here. const ( TextVersion = "0.0.4" ProtoType = `application/vnd.google.protobuf` ProtoProtocol = `io.prometheus.client.MetricFamily` - ProtoFmt = ProtoType + "; proto=" + ProtoProtocol + ";" + protoFmt = ProtoType + "; proto=" + ProtoProtocol + ";" OpenMetricsType = `application/openmetrics-text` OpenMetricsVersion_0_0_1 = "0.0.1" OpenMetricsVersion_1_0_0 = "1.0.0" - // The Content-Type values for the different wire protocols. - FmtUnknown Format = `` - FmtText Format = `text/plain; version=` + TextVersion + `; charset=utf-8` - FmtProtoDelim Format = ProtoFmt + ` encoding=delimited` - FmtProtoText Format = ProtoFmt + ` encoding=text` - FmtProtoCompact Format = ProtoFmt + ` encoding=compact-text` - FmtOpenMetrics_1_0_0 Format = OpenMetricsType + `; version=` + OpenMetricsVersion_1_0_0 + `; charset=utf-8` - FmtOpenMetrics_0_0_1 Format = OpenMetricsType + `; version=` + OpenMetricsVersion_0_0_1 + `; charset=utf-8` + // The Content-Type values for the different wire protocols. Note that these + // values are now unexported. If code was relying on comparisons to these + // constants, instead use FormatType(). + fmtUnknown Format = `` + fmtText Format = `text/plain; version=` + TextVersion + `; charset=utf-8` + fmtProtoDelim Format = protoFmt + ` encoding=delimited` + fmtProtoText Format = protoFmt + ` encoding=text` + fmtProtoCompact Format = protoFmt + ` encoding=compact-text` + fmtOpenMetrics_1_0_0 Format = OpenMetricsType + `; version=` + OpenMetricsVersion_1_0_0 + `; charset=utf-8` + fmtOpenMetrics_0_0_1 Format = OpenMetricsType + `; version=` + OpenMetricsVersion_0_0_1 + `; charset=utf-8` ) const ( hdrContentType = "Content-Type" hdrAccept = "Accept" ) + +// FormatType is a Go enum representing the overall category for the given +// Format. As the number of Format permutations increases, doing basic string +// comparisons are not feasible, so this enum captures the most useful +// high-level attribute of the Format string. +type FormatType int + +const ( + TypeUnknown FormatType = iota + TypeProtoCompact + TypeProtoDelim + TypeProtoText + TypeTextPlain + TypeOpenMetrics +) + +// NewFormat generates a new Format from the type provided. Mostly used for +// tests, most Formats should be generated as part of content negotiation in +// encode.go. If a type has more than one version, the latest version will be +// returned. +func NewFormat(t FormatType) Format { + switch t { + case TypeProtoCompact: + return fmtProtoCompact + case TypeProtoDelim: + return fmtProtoDelim + case TypeProtoText: + return fmtProtoText + case TypeTextPlain: + return fmtText + case TypeOpenMetrics: + return fmtOpenMetrics_1_0_0 + default: + return fmtUnknown + } +} + +// NewOpenMetricsFormat generates a new OpenMetrics format matching the +// specified version number. +func NewOpenMetricsFormat(version string) (Format, error) { + if version == OpenMetricsVersion_0_0_1 { + return fmtOpenMetrics_0_0_1, nil + } + if version == OpenMetricsVersion_1_0_0 { + return fmtOpenMetrics_1_0_0, nil + } + return fmtUnknown, fmt.Errorf("unknown open metrics version string") +} + +// FormatType deduces an overall FormatType for the given format. +func (f Format) FormatType() FormatType { + toks := strings.Split(string(f), ";") + params := make(map[string]string) + for i, t := range toks { + if i == 0 { + continue + } + args := strings.Split(t, "=") + if len(args) != 2 { + continue + } + params[strings.TrimSpace(args[0])] = strings.TrimSpace(args[1]) + } + + switch strings.TrimSpace(toks[0]) { + case ProtoType: + if params["proto"] != ProtoProtocol { + return TypeUnknown + } + switch params["encoding"] { + case "delimited": + return TypeProtoDelim + case "text": + return TypeProtoText + case "compact-text": + return TypeProtoCompact + default: + return TypeUnknown + } + case OpenMetricsType: + if params["charset"] != "utf-8" { + return TypeUnknown + } + return TypeOpenMetrics + case "text/plain": + v, ok := params["version"] + if !ok { + return TypeTextPlain + } + if v == TextVersion { + return TypeTextPlain + } + return TypeUnknown + default: + return TypeUnknown + } +} + +// ToEscapingScheme returns an EscapingScheme depending on the Format. Iff the +// Format contains a escaping=allow-utf-8 term, it will select NoEscaping. If a valid +// "escaping" term exists, that will be used. Otherwise, the global default will +// be returned. +func (format Format) ToEscapingScheme() model.EscapingScheme { + for _, p := range strings.Split(string(format), ";") { + toks := strings.Split(p, "=") + if len(toks) != 2 { + continue + } + key, value := strings.TrimSpace(toks[0]), strings.TrimSpace(toks[1]) + if key == model.EscapingKey { + scheme, err := model.ToEscapingScheme(value) + if err != nil { + return model.NameEscapingScheme + } + return scheme + } + } + return model.NameEscapingScheme +} diff --git a/vendor/github.com/prometheus/common/expfmt/openmetrics_create.go b/vendor/github.com/prometheus/common/expfmt/openmetrics_create.go index 21cdddcf0..353c5e93f 100644 --- a/vendor/github.com/prometheus/common/expfmt/openmetrics_create.go +++ b/vendor/github.com/prometheus/common/expfmt/openmetrics_create.go @@ -22,11 +22,47 @@ import ( "strconv" "strings" + "google.golang.org/protobuf/types/known/timestamppb" + "github.com/prometheus/common/model" dto "github.com/prometheus/client_model/go" ) +type encoderOption struct { + withCreatedLines bool + withUnit bool +} + +type EncoderOption func(*encoderOption) + +// WithCreatedLines is an EncoderOption that configures the OpenMetrics encoder +// to include _created lines (See +// https://github.com/OpenObservability/OpenMetrics/blob/main/specification/OpenMetrics.md#counter-1). +// Created timestamps can improve the accuracy of series reset detection, but +// come with a bandwidth cost. +// +// At the time of writing, created timestamp ingestion is still experimental in +// Prometheus and need to be enabled with the feature-flag +// `--feature-flag=created-timestamp-zero-ingestion`, and breaking changes are +// still possible. Therefore, it is recommended to use this feature with caution. +func WithCreatedLines() EncoderOption { + return func(t *encoderOption) { + t.withCreatedLines = true + } +} + +// WithUnit is an EncoderOption enabling a set unit to be written to the output +// and to be added to the metric name, if it's not there already, as a suffix. +// Without opting in this way, the unit will not be added to the metric name and, +// on top of that, the unit will not be passed onto the output, even if it +// were declared in the *dto.MetricFamily struct, i.e. even if in.Unit !=nil. +func WithUnit() EncoderOption { + return func(t *encoderOption) { + t.withUnit = true + } +} + // MetricFamilyToOpenMetrics converts a MetricFamily proto message into the // OpenMetrics text format and writes the resulting lines to 'out'. It returns // the number of bytes written and any error encountered. The output will have @@ -35,6 +71,18 @@ import ( // sanity checks. If the input contains duplicate metrics or invalid metric or // label names, the conversion will result in invalid text format output. // +// If metric names conform to the legacy validation pattern, they will be placed +// outside the brackets in the traditional way, like `foo{}`. If the metric name +// fails the legacy validation check, it will be placed quoted inside the +// brackets: `{"foo"}`. As stated above, the input is assumed to be santized and +// no error will be thrown in this case. +// +// Similar to metric names, if label names conform to the legacy validation +// pattern, they will be unquoted as normal, like `foo{bar="baz"}`. If the label +// name fails the legacy validation check, it will be quoted: +// `foo{"bar"="baz"}`. As stated above, the input is assumed to be santized and +// no error will be thrown in this case. +// // This function fulfills the type 'expfmt.encoder'. // // Note that OpenMetrics requires a final `# EOF` line. Since this function acts @@ -47,20 +95,34 @@ import ( // Prometheus to OpenMetrics or vice versa: // // - Counters are expected to have the `_total` suffix in their metric name. In -// the output, the suffix will be truncated from the `# TYPE` and `# HELP` -// line. A counter with a missing `_total` suffix is not an error. However, +// the output, the suffix will be truncated from the `# TYPE`, `# HELP` and `# UNIT` +// lines. A counter with a missing `_total` suffix is not an error. However, // its type will be set to `unknown` in that case to avoid invalid OpenMetrics // output. // -// - No support for the following (optional) features: `# UNIT` line, `_created` -// line, info type, stateset type, gaugehistogram type. +// - According to the OM specs, the `# UNIT` line is optional, but if populated, +// the unit has to be present in the metric name as its suffix: +// (see https://github.com/OpenObservability/OpenMetrics/blob/main/specification/OpenMetrics.md#unit). +// However, in order to accommodate any potential scenario where such a change in the +// metric name is not desirable, the users are here given the choice of either explicitly +// opt in, in case they wish for the unit to be included in the output AND in the metric name +// as a suffix (see the description of the WithUnit function above), +// or not to opt in, in case they don't want for any of that to happen. +// +// - No support for the following (optional) features: info type, +// stateset type, gaugehistogram type. // // - The size of exemplar labels is not checked (i.e. it's possible to create // exemplars that are larger than allowed by the OpenMetrics specification). // // - The value of Counters is not checked. (OpenMetrics doesn't allow counters // with a `NaN` value.) -func MetricFamilyToOpenMetrics(out io.Writer, in *dto.MetricFamily) (written int, err error) { +func MetricFamilyToOpenMetrics(out io.Writer, in *dto.MetricFamily, options ...EncoderOption) (written int, err error) { + toOM := encoderOption{} + for _, option := range options { + option(&toOM) + } + name := in.GetName() if name == "" { return 0, fmt.Errorf("MetricFamily has no name: %s", in) @@ -83,12 +145,15 @@ func MetricFamilyToOpenMetrics(out io.Writer, in *dto.MetricFamily) (written int } var ( - n int - metricType = in.GetType() - shortName = name + n int + metricType = in.GetType() + compliantName = name ) - if metricType == dto.MetricType_COUNTER && strings.HasSuffix(shortName, "_total") { - shortName = name[:len(name)-6] + if metricType == dto.MetricType_COUNTER && strings.HasSuffix(compliantName, "_total") { + compliantName = name[:len(name)-6] + } + if toOM.withUnit && in.Unit != nil && !strings.HasSuffix(compliantName, fmt.Sprintf("_%s", *in.Unit)) { + compliantName = compliantName + fmt.Sprintf("_%s", *in.Unit) } // Comments, first HELP, then TYPE. @@ -98,7 +163,7 @@ func MetricFamilyToOpenMetrics(out io.Writer, in *dto.MetricFamily) (written int if err != nil { return } - n, err = w.WriteString(shortName) + n, err = writeName(w, compliantName) written += n if err != nil { return @@ -124,7 +189,7 @@ func MetricFamilyToOpenMetrics(out io.Writer, in *dto.MetricFamily) (written int if err != nil { return } - n, err = w.WriteString(shortName) + n, err = writeName(w, compliantName) written += n if err != nil { return @@ -151,55 +216,89 @@ func MetricFamilyToOpenMetrics(out io.Writer, in *dto.MetricFamily) (written int if err != nil { return } + if toOM.withUnit && in.Unit != nil { + n, err = w.WriteString("# UNIT ") + written += n + if err != nil { + return + } + n, err = writeName(w, compliantName) + written += n + if err != nil { + return + } + + err = w.WriteByte(' ') + written++ + if err != nil { + return + } + n, err = writeEscapedString(w, *in.Unit, true) + written += n + if err != nil { + return + } + err = w.WriteByte('\n') + written++ + if err != nil { + return + } + } + + var createdTsBytesWritten int // Finally the samples, one line for each. + if metricType == dto.MetricType_COUNTER && strings.HasSuffix(name, "_total") { + compliantName = compliantName + "_total" + } for _, metric := range in.Metric { switch metricType { case dto.MetricType_COUNTER: if metric.Counter == nil { return written, fmt.Errorf( - "expected counter in metric %s %s", name, metric, + "expected counter in metric %s %s", compliantName, metric, ) } - // Note that we have ensured above that either the name - // ends on `_total` or that the rendered type is - // `unknown`. Therefore, no `_total` must be added here. n, err = writeOpenMetricsSample( - w, name, "", metric, "", 0, + w, compliantName, "", metric, "", 0, metric.Counter.GetValue(), 0, false, metric.Counter.Exemplar, ) + if toOM.withCreatedLines && metric.Counter.CreatedTimestamp != nil { + createdTsBytesWritten, err = writeOpenMetricsCreated(w, compliantName, "_total", metric, "", 0, metric.Counter.GetCreatedTimestamp()) + n += createdTsBytesWritten + } case dto.MetricType_GAUGE: if metric.Gauge == nil { return written, fmt.Errorf( - "expected gauge in metric %s %s", name, metric, + "expected gauge in metric %s %s", compliantName, metric, ) } n, err = writeOpenMetricsSample( - w, name, "", metric, "", 0, + w, compliantName, "", metric, "", 0, metric.Gauge.GetValue(), 0, false, nil, ) case dto.MetricType_UNTYPED: if metric.Untyped == nil { return written, fmt.Errorf( - "expected untyped in metric %s %s", name, metric, + "expected untyped in metric %s %s", compliantName, metric, ) } n, err = writeOpenMetricsSample( - w, name, "", metric, "", 0, + w, compliantName, "", metric, "", 0, metric.Untyped.GetValue(), 0, false, nil, ) case dto.MetricType_SUMMARY: if metric.Summary == nil { return written, fmt.Errorf( - "expected summary in metric %s %s", name, metric, + "expected summary in metric %s %s", compliantName, metric, ) } for _, q := range metric.Summary.Quantile { n, err = writeOpenMetricsSample( - w, name, "", metric, + w, compliantName, "", metric, model.QuantileLabel, q.GetQuantile(), q.GetValue(), 0, false, nil, @@ -210,7 +309,7 @@ func MetricFamilyToOpenMetrics(out io.Writer, in *dto.MetricFamily) (written int } } n, err = writeOpenMetricsSample( - w, name, "_sum", metric, "", 0, + w, compliantName, "_sum", metric, "", 0, metric.Summary.GetSampleSum(), 0, false, nil, ) @@ -219,20 +318,24 @@ func MetricFamilyToOpenMetrics(out io.Writer, in *dto.MetricFamily) (written int return } n, err = writeOpenMetricsSample( - w, name, "_count", metric, "", 0, + w, compliantName, "_count", metric, "", 0, 0, metric.Summary.GetSampleCount(), true, nil, ) + if toOM.withCreatedLines && metric.Summary.CreatedTimestamp != nil { + createdTsBytesWritten, err = writeOpenMetricsCreated(w, compliantName, "", metric, "", 0, metric.Summary.GetCreatedTimestamp()) + n += createdTsBytesWritten + } case dto.MetricType_HISTOGRAM: if metric.Histogram == nil { return written, fmt.Errorf( - "expected histogram in metric %s %s", name, metric, + "expected histogram in metric %s %s", compliantName, metric, ) } infSeen := false for _, b := range metric.Histogram.Bucket { n, err = writeOpenMetricsSample( - w, name, "_bucket", metric, + w, compliantName, "_bucket", metric, model.BucketLabel, b.GetUpperBound(), 0, b.GetCumulativeCount(), true, b.Exemplar, @@ -247,7 +350,7 @@ func MetricFamilyToOpenMetrics(out io.Writer, in *dto.MetricFamily) (written int } if !infSeen { n, err = writeOpenMetricsSample( - w, name, "_bucket", metric, + w, compliantName, "_bucket", metric, model.BucketLabel, math.Inf(+1), 0, metric.Histogram.GetSampleCount(), true, nil, @@ -258,7 +361,7 @@ func MetricFamilyToOpenMetrics(out io.Writer, in *dto.MetricFamily) (written int } } n, err = writeOpenMetricsSample( - w, name, "_sum", metric, "", 0, + w, compliantName, "_sum", metric, "", 0, metric.Histogram.GetSampleSum(), 0, false, nil, ) @@ -267,13 +370,17 @@ func MetricFamilyToOpenMetrics(out io.Writer, in *dto.MetricFamily) (written int return } n, err = writeOpenMetricsSample( - w, name, "_count", metric, "", 0, + w, compliantName, "_count", metric, "", 0, 0, metric.Histogram.GetSampleCount(), true, nil, ) + if toOM.withCreatedLines && metric.Histogram.CreatedTimestamp != nil { + createdTsBytesWritten, err = writeOpenMetricsCreated(w, compliantName, "", metric, "", 0, metric.Histogram.GetCreatedTimestamp()) + n += createdTsBytesWritten + } default: return written, fmt.Errorf( - "unexpected type in metric %s %s", name, metric, + "unexpected type in metric %s %s", compliantName, metric, ) } written += n @@ -303,21 +410,9 @@ func writeOpenMetricsSample( floatValue float64, intValue uint64, useIntValue bool, exemplar *dto.Exemplar, ) (int, error) { - var written int - n, err := w.WriteString(name) - written += n - if err != nil { - return written, err - } - if suffix != "" { - n, err = w.WriteString(suffix) - written += n - if err != nil { - return written, err - } - } - n, err = writeOpenMetricsLabelPairs( - w, metric.Label, additionalLabelName, additionalLabelValue, + written := 0 + n, err := writeOpenMetricsNameAndLabelPairs( + w, name+suffix, metric.Label, additionalLabelName, additionalLabelValue, ) written += n if err != nil { @@ -350,7 +445,7 @@ func writeOpenMetricsSample( return written, err } } - if exemplar != nil { + if exemplar != nil && len(exemplar.Label) > 0 { n, err = writeExemplar(w, exemplar) written += n if err != nil { @@ -365,27 +460,58 @@ func writeOpenMetricsSample( return written, nil } -// writeOpenMetricsLabelPairs works like writeOpenMetrics but formats the float -// in OpenMetrics style. -func writeOpenMetricsLabelPairs( +// writeOpenMetricsNameAndLabelPairs works like writeOpenMetricsSample but +// formats the float in OpenMetrics style. +func writeOpenMetricsNameAndLabelPairs( w enhancedWriter, + name string, in []*dto.LabelPair, additionalLabelName string, additionalLabelValue float64, ) (int, error) { - if len(in) == 0 && additionalLabelName == "" { - return 0, nil - } var ( - written int - separator byte = '{' + written int + separator byte = '{' + metricInsideBraces = false ) + + if name != "" { + // If the name does not pass the legacy validity check, we must put the + // metric name inside the braces, quoted. + if !model.IsValidLegacyMetricName(model.LabelValue(name)) { + metricInsideBraces = true + err := w.WriteByte(separator) + written++ + if err != nil { + return written, err + } + separator = ',' + } + + n, err := writeName(w, name) + written += n + if err != nil { + return written, err + } + } + + if len(in) == 0 && additionalLabelName == "" { + if metricInsideBraces { + err := w.WriteByte('}') + written++ + if err != nil { + return written, err + } + } + return written, nil + } + for _, lp := range in { err := w.WriteByte(separator) written++ if err != nil { return written, err } - n, err := w.WriteString(lp.GetName()) + n, err := writeName(w, lp.GetName()) written += n if err != nil { return written, err @@ -442,6 +568,49 @@ func writeOpenMetricsLabelPairs( return written, nil } +// writeOpenMetricsCreated writes the created timestamp for a single time series +// following OpenMetrics text format to w, given the metric name, the metric proto +// message itself, optionally a suffix to be removed, e.g. '_total' for counters, +// an additional label name with a float64 value (use empty string as label name if +// not required) and the timestamp that represents the created timestamp. +// The function returns the number of bytes written and any error encountered. +func writeOpenMetricsCreated(w enhancedWriter, + name, suffixToTrim string, metric *dto.Metric, + additionalLabelName string, additionalLabelValue float64, + createdTimestamp *timestamppb.Timestamp, +) (int, error) { + written := 0 + n, err := writeOpenMetricsNameAndLabelPairs( + w, strings.TrimSuffix(name, suffixToTrim)+"_created", metric.Label, additionalLabelName, additionalLabelValue, + ) + written += n + if err != nil { + return written, err + } + + err = w.WriteByte(' ') + written++ + if err != nil { + return written, err + } + + // TODO(beorn7): Format this directly from components of ts to + // avoid overflow/underflow and precision issues of the float + // conversion. + n, err = writeOpenMetricsFloat(w, float64(createdTimestamp.AsTime().UnixNano())/1e9) + written += n + if err != nil { + return written, err + } + + err = w.WriteByte('\n') + written++ + if err != nil { + return written, err + } + return written, nil +} + // writeExemplar writes the provided exemplar in OpenMetrics format to w. The // function returns the number of bytes written and any error encountered. func writeExemplar(w enhancedWriter, e *dto.Exemplar) (int, error) { @@ -451,7 +620,7 @@ func writeExemplar(w enhancedWriter, e *dto.Exemplar) (int, error) { if err != nil { return written, err } - n, err = writeOpenMetricsLabelPairs(w, e.Label, "", 0) + n, err = writeOpenMetricsNameAndLabelPairs(w, "", e.Label, "", 0) written += n if err != nil { return written, err diff --git a/vendor/github.com/prometheus/common/expfmt/text_create.go b/vendor/github.com/prometheus/common/expfmt/text_create.go index 2946b8f1a..f9b8265a9 100644 --- a/vendor/github.com/prometheus/common/expfmt/text_create.go +++ b/vendor/github.com/prometheus/common/expfmt/text_create.go @@ -62,6 +62,18 @@ var ( // contains duplicate metrics or invalid metric or label names, the conversion // will result in invalid text format output. // +// If metric names conform to the legacy validation pattern, they will be placed +// outside the brackets in the traditional way, like `foo{}`. If the metric name +// fails the legacy validation check, it will be placed quoted inside the +// brackets: `{"foo"}`. As stated above, the input is assumed to be santized and +// no error will be thrown in this case. +// +// Similar to metric names, if label names conform to the legacy validation +// pattern, they will be unquoted as normal, like `foo{bar="baz"}`. If the label +// name fails the legacy validation check, it will be quoted: +// `foo{"bar"="baz"}`. As stated above, the input is assumed to be santized and +// no error will be thrown in this case. +// // This method fulfills the type 'prometheus.encoder'. func MetricFamilyToText(out io.Writer, in *dto.MetricFamily) (written int, err error) { // Fail-fast checks. @@ -98,7 +110,7 @@ func MetricFamilyToText(out io.Writer, in *dto.MetricFamily) (written int, err e if err != nil { return } - n, err = w.WriteString(name) + n, err = writeName(w, name) written += n if err != nil { return @@ -124,7 +136,7 @@ func MetricFamilyToText(out io.Writer, in *dto.MetricFamily) (written int, err e if err != nil { return } - n, err = w.WriteString(name) + n, err = writeName(w, name) written += n if err != nil { return @@ -280,21 +292,9 @@ func writeSample( additionalLabelName string, additionalLabelValue float64, value float64, ) (int, error) { - var written int - n, err := w.WriteString(name) - written += n - if err != nil { - return written, err - } - if suffix != "" { - n, err = w.WriteString(suffix) - written += n - if err != nil { - return written, err - } - } - n, err = writeLabelPairs( - w, metric.Label, additionalLabelName, additionalLabelValue, + written := 0 + n, err := writeNameAndLabelPairs( + w, name+suffix, metric.Label, additionalLabelName, additionalLabelValue, ) written += n if err != nil { @@ -330,32 +330,64 @@ func writeSample( return written, nil } -// writeLabelPairs converts a slice of LabelPair proto messages plus the -// explicitly given additional label pair into text formatted as required by the -// text format and writes it to 'w'. An empty slice in combination with an empty -// string 'additionalLabelName' results in nothing being written. Otherwise, the -// label pairs are written, escaped as required by the text format, and enclosed -// in '{...}'. The function returns the number of bytes written and any error -// encountered. -func writeLabelPairs( +// writeNameAndLabelPairs converts a slice of LabelPair proto messages plus the +// explicitly given metric name and additional label pair into text formatted as +// required by the text format and writes it to 'w'. An empty slice in +// combination with an empty string 'additionalLabelName' results in nothing +// being written. Otherwise, the label pairs are written, escaped as required by +// the text format, and enclosed in '{...}'. The function returns the number of +// bytes written and any error encountered. If the metric name is not +// legacy-valid, it will be put inside the brackets as well. Legacy-invalid +// label names will also be quoted. +func writeNameAndLabelPairs( w enhancedWriter, + name string, in []*dto.LabelPair, additionalLabelName string, additionalLabelValue float64, ) (int, error) { - if len(in) == 0 && additionalLabelName == "" { - return 0, nil - } var ( - written int - separator byte = '{' + written int + separator byte = '{' + metricInsideBraces = false ) + + if name != "" { + // If the name does not pass the legacy validity check, we must put the + // metric name inside the braces. + if !model.IsValidLegacyMetricName(model.LabelValue(name)) { + metricInsideBraces = true + err := w.WriteByte(separator) + written++ + if err != nil { + return written, err + } + separator = ',' + } + n, err := writeName(w, name) + written += n + if err != nil { + return written, err + } + } + + if len(in) == 0 && additionalLabelName == "" { + if metricInsideBraces { + err := w.WriteByte('}') + written++ + if err != nil { + return written, err + } + } + return written, nil + } + for _, lp := range in { err := w.WriteByte(separator) written++ if err != nil { return written, err } - n, err := w.WriteString(lp.GetName()) + n, err := writeName(w, lp.GetName()) written += n if err != nil { return written, err @@ -462,3 +494,27 @@ func writeInt(w enhancedWriter, i int64) (int, error) { numBufPool.Put(bp) return written, err } + +// writeName writes a string as-is if it complies with the legacy naming +// scheme, or escapes it in double quotes if not. +func writeName(w enhancedWriter, name string) (int, error) { + if model.IsValidLegacyMetricName(model.LabelValue(name)) { + return w.WriteString(name) + } + var written int + var err error + err = w.WriteByte('"') + written++ + if err != nil { + return written, err + } + var n int + n, err = writeEscapedString(w, name, true) + written += n + if err != nil { + return written, err + } + err = w.WriteByte('"') + written++ + return written, err +} diff --git a/vendor/github.com/prometheus/common/model/labels.go b/vendor/github.com/prometheus/common/model/labels.go index ef8956335..3317ce22f 100644 --- a/vendor/github.com/prometheus/common/model/labels.go +++ b/vendor/github.com/prometheus/common/model/labels.go @@ -97,17 +97,25 @@ var LabelNameRE = regexp.MustCompile("^[a-zA-Z_][a-zA-Z0-9_]*$") // therewith. type LabelName string -// IsValid is true iff the label name matches the pattern of LabelNameRE. This -// method, however, does not use LabelNameRE for the check but a much faster -// hardcoded implementation. +// IsValid returns true iff name matches the pattern of LabelNameRE for legacy +// names, and iff it's valid UTF-8 if NameValidationScheme is set to +// UTF8Validation. For the legacy matching, it does not use LabelNameRE for the +// check but a much faster hardcoded implementation. func (ln LabelName) IsValid() bool { if len(ln) == 0 { return false } - for i, b := range ln { - if !((b >= 'a' && b <= 'z') || (b >= 'A' && b <= 'Z') || b == '_' || (b >= '0' && b <= '9' && i > 0)) { - return false + switch NameValidationScheme { + case LegacyValidation: + for i, b := range ln { + if !((b >= 'a' && b <= 'z') || (b >= 'A' && b <= 'Z') || b == '_' || (b >= '0' && b <= '9' && i > 0)) { + return false + } } + case UTF8Validation: + return utf8.ValidString(string(ln)) + default: + panic(fmt.Sprintf("Invalid name validation scheme requested: %d", NameValidationScheme)) } return true } @@ -164,7 +172,7 @@ func (l LabelNames) String() string { // A LabelValue is an associated value for a LabelName. type LabelValue string -// IsValid returns true iff the string is a valid UTF8. +// IsValid returns true iff the string is a valid UTF-8. func (lv LabelValue) IsValid() bool { return utf8.ValidString(string(lv)) } diff --git a/vendor/github.com/prometheus/common/model/labelset.go b/vendor/github.com/prometheus/common/model/labelset.go index 6eda08a73..d0ad88da3 100644 --- a/vendor/github.com/prometheus/common/model/labelset.go +++ b/vendor/github.com/prometheus/common/model/labelset.go @@ -17,7 +17,6 @@ import ( "encoding/json" "fmt" "sort" - "strings" ) // A LabelSet is a collection of LabelName and LabelValue pairs. The LabelSet @@ -129,16 +128,6 @@ func (l LabelSet) Merge(other LabelSet) LabelSet { return result } -func (l LabelSet) String() string { - lstrs := make([]string, 0, len(l)) - for l, v := range l { - lstrs = append(lstrs, fmt.Sprintf("%s=%q", l, v)) - } - - sort.Strings(lstrs) - return fmt.Sprintf("{%s}", strings.Join(lstrs, ", ")) -} - // Fingerprint returns the LabelSet's fingerprint. func (ls LabelSet) Fingerprint() Fingerprint { return labelSetToFingerprint(ls) diff --git a/vendor/github.com/prometheus/common/model/labelset_string.go b/vendor/github.com/prometheus/common/model/labelset_string.go new file mode 100644 index 000000000..174753ed3 --- /dev/null +++ b/vendor/github.com/prometheus/common/model/labelset_string.go @@ -0,0 +1,45 @@ +// Copyright 2024 The Prometheus Authors +// 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. + +//go:build go1.21 + +package model + +import ( + "bytes" + "sort" + "strconv" +) + +// String will look like `{foo="bar", more="less"}`. Names are sorted alphabetically. +func (l LabelSet) String() string { + var lna [32]string // On stack to avoid memory allocation for sorting names. + labelNames := lna[:0] + for name := range l { + labelNames = append(labelNames, string(name)) + } + sort.Strings(labelNames) + var bytea [1024]byte // On stack to avoid memory allocation while building the output. + b := bytes.NewBuffer(bytea[:0]) + b.WriteByte('{') + for i, name := range labelNames { + if i > 0 { + b.WriteString(", ") + } + b.WriteString(name) + b.WriteByte('=') + b.Write(strconv.AppendQuote(b.AvailableBuffer(), string(l[LabelName(name)]))) + } + b.WriteByte('}') + return b.String() +} diff --git a/vendor/github.com/prometheus/common/model/labelset_string_go120.go b/vendor/github.com/prometheus/common/model/labelset_string_go120.go new file mode 100644 index 000000000..c4212685e --- /dev/null +++ b/vendor/github.com/prometheus/common/model/labelset_string_go120.go @@ -0,0 +1,39 @@ +// Copyright 2024 The Prometheus Authors +// 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. + +//go:build !go1.21 + +package model + +import ( + "fmt" + "sort" + "strings" +) + +// String was optimized using functions not available for go 1.20 +// or lower. We keep the old implementation for compatibility with client_golang. +// Once client golang drops support for go 1.20 (scheduled for August 2024), this +// file can be removed. +func (l LabelSet) String() string { + labelNames := make([]string, 0, len(l)) + for name := range l { + labelNames = append(labelNames, string(name)) + } + sort.Strings(labelNames) + lstrs := make([]string, 0, len(l)) + for _, name := range labelNames { + lstrs = append(lstrs, fmt.Sprintf("%s=%q", name, l[LabelName(name)])) + } + return fmt.Sprintf("{%s}", strings.Join(lstrs, ", ")) +} diff --git a/vendor/github.com/prometheus/common/model/metric.go b/vendor/github.com/prometheus/common/model/metric.go index f8c5eabaa..eb865e5a5 100644 --- a/vendor/github.com/prometheus/common/model/metric.go +++ b/vendor/github.com/prometheus/common/model/metric.go @@ -18,6 +18,77 @@ import ( "regexp" "sort" "strings" + "unicode/utf8" + + dto "github.com/prometheus/client_model/go" + "google.golang.org/protobuf/proto" +) + +var ( + // NameValidationScheme determines the method of name validation to be used by + // all calls to IsValidMetricName() and LabelName IsValid(). Setting UTF-8 mode + // in isolation from other components that don't support UTF-8 may result in + // bugs or other undefined behavior. This value is intended to be set by + // UTF-8-aware binaries as part of their startup. To avoid need for locking, + // this value should be set once, ideally in an init(), before multiple + // goroutines are started. + NameValidationScheme = LegacyValidation + + // NameEscapingScheme defines the default way that names will be + // escaped when presented to systems that do not support UTF-8 names. If the + // Content-Type "escaping" term is specified, that will override this value. + NameEscapingScheme = ValueEncodingEscaping +) + +// ValidationScheme is a Go enum for determining how metric and label names will +// be validated by this library. +type ValidationScheme int + +const ( + // LegacyValidation is a setting that requirets that metric and label names + // conform to the original Prometheus character requirements described by + // MetricNameRE and LabelNameRE. + LegacyValidation ValidationScheme = iota + + // UTF8Validation only requires that metric and label names be valid UTF-8 + // strings. + UTF8Validation +) + +type EscapingScheme int + +const ( + // NoEscaping indicates that a name will not be escaped. Unescaped names that + // do not conform to the legacy validity check will use a new exposition + // format syntax that will be officially standardized in future versions. + NoEscaping EscapingScheme = iota + + // UnderscoreEscaping replaces all legacy-invalid characters with underscores. + UnderscoreEscaping + + // DotsEscaping is similar to UnderscoreEscaping, except that dots are + // converted to `_dot_` and pre-existing underscores are converted to `__`. + DotsEscaping + + // ValueEncodingEscaping prepends the name with `U__` and replaces all invalid + // characters with the unicode value, surrounded by underscores. Single + // underscores are replaced with double underscores. + ValueEncodingEscaping +) + +const ( + // EscapingKey is the key in an Accept or Content-Type header that defines how + // metric and label names that do not conform to the legacy character + // requirements should be escaped when being scraped by a legacy prometheus + // system. If a system does not explicitly pass an escaping parameter in the + // Accept header, the default NameEscapingScheme will be used. + EscapingKey = "escaping" + + // Possible values for Escaping Key: + AllowUTF8 = "allow-utf-8" // No escaping required. + EscapeUnderscores = "underscores" + EscapeDots = "dots" + EscapeValues = "values" ) // MetricNameRE is a regular expression matching valid metric @@ -84,17 +155,303 @@ func (m Metric) FastFingerprint() Fingerprint { return LabelSet(m).FastFingerprint() } -// IsValidMetricName returns true iff name matches the pattern of MetricNameRE. +// IsValidMetricName returns true iff name matches the pattern of MetricNameRE +// for legacy names, and iff it's valid UTF-8 if the UTF8Validation scheme is +// selected. +func IsValidMetricName(n LabelValue) bool { + switch NameValidationScheme { + case LegacyValidation: + return IsValidLegacyMetricName(n) + case UTF8Validation: + if len(n) == 0 { + return false + } + return utf8.ValidString(string(n)) + default: + panic(fmt.Sprintf("Invalid name validation scheme requested: %d", NameValidationScheme)) + } +} + +// IsValidLegacyMetricName is similar to IsValidMetricName but always uses the +// legacy validation scheme regardless of the value of NameValidationScheme. // This function, however, does not use MetricNameRE for the check but a much // faster hardcoded implementation. -func IsValidMetricName(n LabelValue) bool { +func IsValidLegacyMetricName(n LabelValue) bool { if len(n) == 0 { return false } for i, b := range n { - if !((b >= 'a' && b <= 'z') || (b >= 'A' && b <= 'Z') || b == '_' || b == ':' || (b >= '0' && b <= '9' && i > 0)) { + if !isValidLegacyRune(b, i) { return false } } return true } + +// EscapeMetricFamily escapes the given metric names and labels with the given +// escaping scheme. Returns a new object that uses the same pointers to fields +// when possible and creates new escaped versions so as not to mutate the +// input. +func EscapeMetricFamily(v *dto.MetricFamily, scheme EscapingScheme) *dto.MetricFamily { + if v == nil { + return nil + } + + if scheme == NoEscaping { + return v + } + + out := &dto.MetricFamily{ + Help: v.Help, + Type: v.Type, + Unit: v.Unit, + } + + // If the name is nil, copy as-is, don't try to escape. + if v.Name == nil || IsValidLegacyMetricName(LabelValue(v.GetName())) { + out.Name = v.Name + } else { + out.Name = proto.String(EscapeName(v.GetName(), scheme)) + } + for _, m := range v.Metric { + if !metricNeedsEscaping(m) { + out.Metric = append(out.Metric, m) + continue + } + + escaped := &dto.Metric{ + Gauge: m.Gauge, + Counter: m.Counter, + Summary: m.Summary, + Untyped: m.Untyped, + Histogram: m.Histogram, + TimestampMs: m.TimestampMs, + } + + for _, l := range m.Label { + if l.GetName() == MetricNameLabel { + if l.Value == nil || IsValidLegacyMetricName(LabelValue(l.GetValue())) { + escaped.Label = append(escaped.Label, l) + continue + } + escaped.Label = append(escaped.Label, &dto.LabelPair{ + Name: proto.String(MetricNameLabel), + Value: proto.String(EscapeName(l.GetValue(), scheme)), + }) + continue + } + if l.Name == nil || IsValidLegacyMetricName(LabelValue(l.GetName())) { + escaped.Label = append(escaped.Label, l) + continue + } + escaped.Label = append(escaped.Label, &dto.LabelPair{ + Name: proto.String(EscapeName(l.GetName(), scheme)), + Value: l.Value, + }) + } + out.Metric = append(out.Metric, escaped) + } + return out +} + +func metricNeedsEscaping(m *dto.Metric) bool { + for _, l := range m.Label { + if l.GetName() == MetricNameLabel && !IsValidLegacyMetricName(LabelValue(l.GetValue())) { + return true + } + if !IsValidLegacyMetricName(LabelValue(l.GetName())) { + return true + } + } + return false +} + +const ( + lowerhex = "0123456789abcdef" +) + +// EscapeName escapes the incoming name according to the provided escaping +// scheme. Depending on the rules of escaping, this may cause no change in the +// string that is returned. (Especially NoEscaping, which by definition is a +// noop). This function does not do any validation of the name. +func EscapeName(name string, scheme EscapingScheme) string { + if len(name) == 0 { + return name + } + var escaped strings.Builder + switch scheme { + case NoEscaping: + return name + case UnderscoreEscaping: + if IsValidLegacyMetricName(LabelValue(name)) { + return name + } + for i, b := range name { + if isValidLegacyRune(b, i) { + escaped.WriteRune(b) + } else { + escaped.WriteRune('_') + } + } + return escaped.String() + case DotsEscaping: + // Do not early return for legacy valid names, we still escape underscores. + for i, b := range name { + if b == '_' { + escaped.WriteString("__") + } else if b == '.' { + escaped.WriteString("_dot_") + } else if isValidLegacyRune(b, i) { + escaped.WriteRune(b) + } else { + escaped.WriteRune('_') + } + } + return escaped.String() + case ValueEncodingEscaping: + if IsValidLegacyMetricName(LabelValue(name)) { + return name + } + escaped.WriteString("U__") + for i, b := range name { + if isValidLegacyRune(b, i) { + escaped.WriteRune(b) + } else if !utf8.ValidRune(b) { + escaped.WriteString("_FFFD_") + } else if b < 0x100 { + escaped.WriteRune('_') + for s := 4; s >= 0; s -= 4 { + escaped.WriteByte(lowerhex[b>>uint(s)&0xF]) + } + escaped.WriteRune('_') + } else if b < 0x10000 { + escaped.WriteRune('_') + for s := 12; s >= 0; s -= 4 { + escaped.WriteByte(lowerhex[b>>uint(s)&0xF]) + } + escaped.WriteRune('_') + } + } + return escaped.String() + default: + panic(fmt.Sprintf("invalid escaping scheme %d", scheme)) + } +} + +// lower function taken from strconv.atoi +func lower(c byte) byte { + return c | ('x' - 'X') +} + +// UnescapeName unescapes the incoming name according to the provided escaping +// scheme if possible. Some schemes are partially or totally non-roundtripable. +// If any error is enountered, returns the original input. +func UnescapeName(name string, scheme EscapingScheme) string { + if len(name) == 0 { + return name + } + switch scheme { + case NoEscaping: + return name + case UnderscoreEscaping: + // It is not possible to unescape from underscore replacement. + return name + case DotsEscaping: + name = strings.ReplaceAll(name, "_dot_", ".") + name = strings.ReplaceAll(name, "__", "_") + return name + case ValueEncodingEscaping: + escapedName, found := strings.CutPrefix(name, "U__") + if !found { + return name + } + + var unescaped strings.Builder + TOP: + for i := 0; i < len(escapedName); i++ { + // All non-underscores are treated normally. + if escapedName[i] != '_' { + unescaped.WriteByte(escapedName[i]) + continue + } + i++ + if i >= len(escapedName) { + return name + } + // A double underscore is a single underscore. + if escapedName[i] == '_' { + unescaped.WriteByte('_') + continue + } + // We think we are in a UTF-8 code, process it. + var utf8Val uint + for j := 0; i < len(escapedName); j++ { + // This is too many characters for a utf8 value. + if j > 4 { + return name + } + // Found a closing underscore, convert to a rune, check validity, and append. + if escapedName[i] == '_' { + utf8Rune := rune(utf8Val) + if !utf8.ValidRune(utf8Rune) { + return name + } + unescaped.WriteRune(utf8Rune) + continue TOP + } + r := lower(escapedName[i]) + utf8Val *= 16 + if r >= '0' && r <= '9' { + utf8Val += uint(r) - '0' + } else if r >= 'a' && r <= 'f' { + utf8Val += uint(r) - 'a' + 10 + } else { + return name + } + i++ + } + // Didn't find closing underscore, invalid. + return name + } + return unescaped.String() + default: + panic(fmt.Sprintf("invalid escaping scheme %d", scheme)) + } +} + +func isValidLegacyRune(b rune, i int) bool { + return (b >= 'a' && b <= 'z') || (b >= 'A' && b <= 'Z') || b == '_' || b == ':' || (b >= '0' && b <= '9' && i > 0) +} + +func (e EscapingScheme) String() string { + switch e { + case NoEscaping: + return AllowUTF8 + case UnderscoreEscaping: + return EscapeUnderscores + case DotsEscaping: + return EscapeDots + case ValueEncodingEscaping: + return EscapeValues + default: + panic(fmt.Sprintf("unknown format scheme %d", e)) + } +} + +func ToEscapingScheme(s string) (EscapingScheme, error) { + if s == "" { + return NoEscaping, fmt.Errorf("got empty string instead of escaping scheme") + } + switch s { + case AllowUTF8: + return NoEscaping, nil + case EscapeUnderscores: + return UnderscoreEscaping, nil + case EscapeDots: + return DotsEscaping, nil + case EscapeValues: + return ValueEncodingEscaping, nil + default: + return NoEscaping, fmt.Errorf("unknown format scheme " + s) + } +} diff --git a/vendor/github.com/prometheus/procfs/Makefile.common b/vendor/github.com/prometheus/procfs/Makefile.common index 062a28185..92558151e 100644 --- a/vendor/github.com/prometheus/procfs/Makefile.common +++ b/vendor/github.com/prometheus/procfs/Makefile.common @@ -61,11 +61,11 @@ PROMU_URL := https://github.com/prometheus/promu/releases/download/v$(PROMU_ SKIP_GOLANGCI_LINT := GOLANGCI_LINT := GOLANGCI_LINT_OPTS ?= -GOLANGCI_LINT_VERSION ?= v1.54.2 -# golangci-lint only supports linux, darwin and windows platforms on i386/amd64. +GOLANGCI_LINT_VERSION ?= v1.55.2 +# golangci-lint only supports linux, darwin and windows platforms on i386/amd64/arm64. # windows isn't included here because of the path separator being different. ifeq ($(GOHOSTOS),$(filter $(GOHOSTOS),linux darwin)) - ifeq ($(GOHOSTARCH),$(filter $(GOHOSTARCH),amd64 i386)) + ifeq ($(GOHOSTARCH),$(filter $(GOHOSTARCH),amd64 i386 arm64)) # If we're in CI and there is an Actions file, that means the linter # is being run in Actions, so we don't need to run it here. ifneq (,$(SKIP_GOLANGCI_LINT)) @@ -169,12 +169,16 @@ common-vet: common-lint: $(GOLANGCI_LINT) ifdef GOLANGCI_LINT @echo ">> running golangci-lint" -# 'go list' needs to be executed before staticcheck to prepopulate the modules cache. -# Otherwise staticcheck might fail randomly for some reason not yet explained. - $(GO) list -e -compiled -test=true -export=false -deps=true -find=false -tags= -- ./... > /dev/null $(GOLANGCI_LINT) run $(GOLANGCI_LINT_OPTS) $(pkgs) endif +.PHONY: common-lint-fix +common-lint-fix: $(GOLANGCI_LINT) +ifdef GOLANGCI_LINT + @echo ">> running golangci-lint fix" + $(GOLANGCI_LINT) run --fix $(GOLANGCI_LINT_OPTS) $(pkgs) +endif + .PHONY: common-yamllint common-yamllint: @echo ">> running yamllint on all YAML files in the repository" diff --git a/vendor/github.com/prometheus/procfs/crypto.go b/vendor/github.com/prometheus/procfs/crypto.go index 9a73e2639..13ee66f12 100644 --- a/vendor/github.com/prometheus/procfs/crypto.go +++ b/vendor/github.com/prometheus/procfs/crypto.go @@ -84,7 +84,7 @@ func parseCrypto(r io.Reader) ([]Crypto, error) { kv := strings.Split(text, ":") if len(kv) != 2 { - return nil, fmt.Errorf("%w: Cannot parae line: %q", ErrFileParse, text) + return nil, fmt.Errorf("%w: Cannot parse line: %q", ErrFileParse, text) } k := strings.TrimSpace(kv[0]) diff --git a/vendor/github.com/prometheus/procfs/meminfo.go b/vendor/github.com/prometheus/procfs/meminfo.go index eaf00e224..73a03e8a3 100644 --- a/vendor/github.com/prometheus/procfs/meminfo.go +++ b/vendor/github.com/prometheus/procfs/meminfo.go @@ -126,6 +126,7 @@ type Meminfo struct { VmallocUsed *uint64 // largest contiguous block of vmalloc area which is free VmallocChunk *uint64 + Percpu *uint64 HardwareCorrupted *uint64 AnonHugePages *uint64 ShmemHugePages *uint64 @@ -140,6 +141,55 @@ type Meminfo struct { DirectMap4k *uint64 DirectMap2M *uint64 DirectMap1G *uint64 + + // The struct fields below are the byte-normalized counterparts to the + // existing struct fields. Values are normalized using the optional + // unit field in the meminfo line. + MemTotalBytes *uint64 + MemFreeBytes *uint64 + MemAvailableBytes *uint64 + BuffersBytes *uint64 + CachedBytes *uint64 + SwapCachedBytes *uint64 + ActiveBytes *uint64 + InactiveBytes *uint64 + ActiveAnonBytes *uint64 + InactiveAnonBytes *uint64 + ActiveFileBytes *uint64 + InactiveFileBytes *uint64 + UnevictableBytes *uint64 + MlockedBytes *uint64 + SwapTotalBytes *uint64 + SwapFreeBytes *uint64 + DirtyBytes *uint64 + WritebackBytes *uint64 + AnonPagesBytes *uint64 + MappedBytes *uint64 + ShmemBytes *uint64 + SlabBytes *uint64 + SReclaimableBytes *uint64 + SUnreclaimBytes *uint64 + KernelStackBytes *uint64 + PageTablesBytes *uint64 + NFSUnstableBytes *uint64 + BounceBytes *uint64 + WritebackTmpBytes *uint64 + CommitLimitBytes *uint64 + CommittedASBytes *uint64 + VmallocTotalBytes *uint64 + VmallocUsedBytes *uint64 + VmallocChunkBytes *uint64 + PercpuBytes *uint64 + HardwareCorruptedBytes *uint64 + AnonHugePagesBytes *uint64 + ShmemHugePagesBytes *uint64 + ShmemPmdMappedBytes *uint64 + CmaTotalBytes *uint64 + CmaFreeBytes *uint64 + HugepagesizeBytes *uint64 + DirectMap4kBytes *uint64 + DirectMap2MBytes *uint64 + DirectMap1GBytes *uint64 } // Meminfo returns an information about current kernel/system memory statistics. @@ -162,114 +212,176 @@ func parseMemInfo(r io.Reader) (*Meminfo, error) { var m Meminfo s := bufio.NewScanner(r) for s.Scan() { - // Each line has at least a name and value; we ignore the unit. fields := strings.Fields(s.Text()) - if len(fields) < 2 { - return nil, fmt.Errorf("%w: Malformed line %q", ErrFileParse, s.Text()) - } + var val, valBytes uint64 - v, err := strconv.ParseUint(fields[1], 0, 64) + val, err := strconv.ParseUint(fields[1], 0, 64) if err != nil { return nil, err } + switch len(fields) { + case 2: + // No unit present, use the parsed the value as bytes directly. + valBytes = val + case 3: + // Unit present in optional 3rd field, convert it to + // bytes. The only unit supported within the Linux + // kernel is `kB`. + if fields[2] != "kB" { + return nil, fmt.Errorf("%w: Unsupported unit in optional 3rd field %q", ErrFileParse, fields[2]) + } + + valBytes = 1024 * val + + default: + return nil, fmt.Errorf("%w: Malformed line %q", ErrFileParse, s.Text()) + } + switch fields[0] { case "MemTotal:": - m.MemTotal = &v + m.MemTotal = &val + m.MemTotalBytes = &valBytes case "MemFree:": - m.MemFree = &v + m.MemFree = &val + m.MemFreeBytes = &valBytes case "MemAvailable:": - m.MemAvailable = &v + m.MemAvailable = &val + m.MemAvailableBytes = &valBytes case "Buffers:": - m.Buffers = &v + m.Buffers = &val + m.BuffersBytes = &valBytes case "Cached:": - m.Cached = &v + m.Cached = &val + m.CachedBytes = &valBytes case "SwapCached:": - m.SwapCached = &v + m.SwapCached = &val + m.SwapCachedBytes = &valBytes case "Active:": - m.Active = &v + m.Active = &val + m.ActiveBytes = &valBytes case "Inactive:": - m.Inactive = &v + m.Inactive = &val + m.InactiveBytes = &valBytes case "Active(anon):": - m.ActiveAnon = &v + m.ActiveAnon = &val + m.ActiveAnonBytes = &valBytes case "Inactive(anon):": - m.InactiveAnon = &v + m.InactiveAnon = &val + m.InactiveAnonBytes = &valBytes case "Active(file):": - m.ActiveFile = &v + m.ActiveFile = &val + m.ActiveFileBytes = &valBytes case "Inactive(file):": - m.InactiveFile = &v + m.InactiveFile = &val + m.InactiveFileBytes = &valBytes case "Unevictable:": - m.Unevictable = &v + m.Unevictable = &val + m.UnevictableBytes = &valBytes case "Mlocked:": - m.Mlocked = &v + m.Mlocked = &val + m.MlockedBytes = &valBytes case "SwapTotal:": - m.SwapTotal = &v + m.SwapTotal = &val + m.SwapTotalBytes = &valBytes case "SwapFree:": - m.SwapFree = &v + m.SwapFree = &val + m.SwapFreeBytes = &valBytes case "Dirty:": - m.Dirty = &v + m.Dirty = &val + m.DirtyBytes = &valBytes case "Writeback:": - m.Writeback = &v + m.Writeback = &val + m.WritebackBytes = &valBytes case "AnonPages:": - m.AnonPages = &v + m.AnonPages = &val + m.AnonPagesBytes = &valBytes case "Mapped:": - m.Mapped = &v + m.Mapped = &val + m.MappedBytes = &valBytes case "Shmem:": - m.Shmem = &v + m.Shmem = &val + m.ShmemBytes = &valBytes case "Slab:": - m.Slab = &v + m.Slab = &val + m.SlabBytes = &valBytes case "SReclaimable:": - m.SReclaimable = &v + m.SReclaimable = &val + m.SReclaimableBytes = &valBytes case "SUnreclaim:": - m.SUnreclaim = &v + m.SUnreclaim = &val + m.SUnreclaimBytes = &valBytes case "KernelStack:": - m.KernelStack = &v + m.KernelStack = &val + m.KernelStackBytes = &valBytes case "PageTables:": - m.PageTables = &v + m.PageTables = &val + m.PageTablesBytes = &valBytes case "NFS_Unstable:": - m.NFSUnstable = &v + m.NFSUnstable = &val + m.NFSUnstableBytes = &valBytes case "Bounce:": - m.Bounce = &v + m.Bounce = &val + m.BounceBytes = &valBytes case "WritebackTmp:": - m.WritebackTmp = &v + m.WritebackTmp = &val + m.WritebackTmpBytes = &valBytes case "CommitLimit:": - m.CommitLimit = &v + m.CommitLimit = &val + m.CommitLimitBytes = &valBytes case "Committed_AS:": - m.CommittedAS = &v + m.CommittedAS = &val + m.CommittedASBytes = &valBytes case "VmallocTotal:": - m.VmallocTotal = &v + m.VmallocTotal = &val + m.VmallocTotalBytes = &valBytes case "VmallocUsed:": - m.VmallocUsed = &v + m.VmallocUsed = &val + m.VmallocUsedBytes = &valBytes case "VmallocChunk:": - m.VmallocChunk = &v + m.VmallocChunk = &val + m.VmallocChunkBytes = &valBytes + case "Percpu:": + m.Percpu = &val + m.PercpuBytes = &valBytes case "HardwareCorrupted:": - m.HardwareCorrupted = &v + m.HardwareCorrupted = &val + m.HardwareCorruptedBytes = &valBytes case "AnonHugePages:": - m.AnonHugePages = &v + m.AnonHugePages = &val + m.AnonHugePagesBytes = &valBytes case "ShmemHugePages:": - m.ShmemHugePages = &v + m.ShmemHugePages = &val + m.ShmemHugePagesBytes = &valBytes case "ShmemPmdMapped:": - m.ShmemPmdMapped = &v + m.ShmemPmdMapped = &val + m.ShmemPmdMappedBytes = &valBytes case "CmaTotal:": - m.CmaTotal = &v + m.CmaTotal = &val + m.CmaTotalBytes = &valBytes case "CmaFree:": - m.CmaFree = &v + m.CmaFree = &val + m.CmaFreeBytes = &valBytes case "HugePages_Total:": - m.HugePagesTotal = &v + m.HugePagesTotal = &val case "HugePages_Free:": - m.HugePagesFree = &v + m.HugePagesFree = &val case "HugePages_Rsvd:": - m.HugePagesRsvd = &v + m.HugePagesRsvd = &val case "HugePages_Surp:": - m.HugePagesSurp = &v + m.HugePagesSurp = &val case "Hugepagesize:": - m.Hugepagesize = &v + m.Hugepagesize = &val + m.HugepagesizeBytes = &valBytes case "DirectMap4k:": - m.DirectMap4k = &v + m.DirectMap4k = &val + m.DirectMap4kBytes = &valBytes case "DirectMap2M:": - m.DirectMap2M = &v + m.DirectMap2M = &val + m.DirectMap2MBytes = &valBytes case "DirectMap1G:": - m.DirectMap1G = &v + m.DirectMap1G = &val + m.DirectMap1GBytes = &valBytes } } diff --git a/vendor/github.com/prometheus/procfs/net_ip_socket.go b/vendor/github.com/prometheus/procfs/net_ip_socket.go index 4da81ea57..ba7d9caa0 100644 --- a/vendor/github.com/prometheus/procfs/net_ip_socket.go +++ b/vendor/github.com/prometheus/procfs/net_ip_socket.go @@ -50,10 +50,13 @@ type ( // UsedSockets shows the total number of parsed lines representing the // number of used sockets. UsedSockets uint64 + // Drops shows the total number of dropped packets of all UPD sockets. + Drops *uint64 } // netIPSocketLine represents the fields parsed from a single line // in /proc/net/{t,u}dp{,6}. Fields which are not used by IPSocket are skipped. + // Drops is non-nil for udp{,6}, but nil for tcp{,6}. // For the proc file format details, see https://linux.die.net/man/5/proc. netIPSocketLine struct { Sl uint64 @@ -66,6 +69,7 @@ type ( RxQueue uint64 UID uint64 Inode uint64 + Drops *uint64 } ) @@ -77,13 +81,14 @@ func newNetIPSocket(file string) (NetIPSocket, error) { defer f.Close() var netIPSocket NetIPSocket + isUDP := strings.Contains(file, "udp") lr := io.LimitReader(f, readLimit) s := bufio.NewScanner(lr) s.Scan() // skip first line with headers for s.Scan() { fields := strings.Fields(s.Text()) - line, err := parseNetIPSocketLine(fields) + line, err := parseNetIPSocketLine(fields, isUDP) if err != nil { return nil, err } @@ -104,19 +109,25 @@ func newNetIPSocketSummary(file string) (*NetIPSocketSummary, error) { defer f.Close() var netIPSocketSummary NetIPSocketSummary + var udpPacketDrops uint64 + isUDP := strings.Contains(file, "udp") lr := io.LimitReader(f, readLimit) s := bufio.NewScanner(lr) s.Scan() // skip first line with headers for s.Scan() { fields := strings.Fields(s.Text()) - line, err := parseNetIPSocketLine(fields) + line, err := parseNetIPSocketLine(fields, isUDP) if err != nil { return nil, err } netIPSocketSummary.TxQueueLength += line.TxQueue netIPSocketSummary.RxQueueLength += line.RxQueue netIPSocketSummary.UsedSockets++ + if isUDP { + udpPacketDrops += *line.Drops + netIPSocketSummary.Drops = &udpPacketDrops + } } if err := s.Err(); err != nil { return nil, err @@ -149,7 +160,7 @@ func parseIP(hexIP string) (net.IP, error) { } // parseNetIPSocketLine parses a single line, represented by a list of fields. -func parseNetIPSocketLine(fields []string) (*netIPSocketLine, error) { +func parseNetIPSocketLine(fields []string, isUDP bool) (*netIPSocketLine, error) { line := &netIPSocketLine{} if len(fields) < 10 { return nil, fmt.Errorf( @@ -224,5 +235,14 @@ func parseNetIPSocketLine(fields []string) (*netIPSocketLine, error) { return nil, fmt.Errorf("%s: Cannot parse inode value in %q: %w", ErrFileParse, line.Inode, err) } + // drops + if isUDP { + drops, err := strconv.ParseUint(fields[12], 0, 64) + if err != nil { + return nil, fmt.Errorf("%s: Cannot parse drops value in %q: %w", ErrFileParse, drops, err) + } + line.Drops = &drops + } + return line, nil } diff --git a/vendor/github.com/prometheus/procfs/net_tls_stat.go b/vendor/github.com/prometheus/procfs/net_tls_stat.go new file mode 100644 index 000000000..13994c178 --- /dev/null +++ b/vendor/github.com/prometheus/procfs/net_tls_stat.go @@ -0,0 +1,119 @@ +// Copyright 2023 Prometheus Team +// 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 procfs + +import ( + "bufio" + "fmt" + "os" + "strconv" + "strings" +) + +// TLSStat struct represents data in /proc/net/tls_stat. +// See https://docs.kernel.org/networking/tls.html#statistics +type TLSStat struct { + // number of TX sessions currently installed where host handles cryptography + TLSCurrTxSw int + // number of RX sessions currently installed where host handles cryptography + TLSCurrRxSw int + // number of TX sessions currently installed where NIC handles cryptography + TLSCurrTxDevice int + // number of RX sessions currently installed where NIC handles cryptography + TLSCurrRxDevice int + //number of TX sessions opened with host cryptography + TLSTxSw int + //number of RX sessions opened with host cryptography + TLSRxSw int + // number of TX sessions opened with NIC cryptography + TLSTxDevice int + // number of RX sessions opened with NIC cryptography + TLSRxDevice int + // record decryption failed (e.g. due to incorrect authentication tag) + TLSDecryptError int + // number of RX resyncs sent to NICs handling cryptography + TLSRxDeviceResync int + // number of RX records which had to be re-decrypted due to TLS_RX_EXPECT_NO_PAD mis-prediction. Note that this counter will also increment for non-data records. + TLSDecryptRetry int + // number of data RX records which had to be re-decrypted due to TLS_RX_EXPECT_NO_PAD mis-prediction. + TLSRxNoPadViolation int +} + +// NewTLSStat reads the tls_stat statistics. +func NewTLSStat() (TLSStat, error) { + fs, err := NewFS(DefaultMountPoint) + if err != nil { + return TLSStat{}, err + } + + return fs.NewTLSStat() +} + +// NewTLSStat reads the tls_stat statistics. +func (fs FS) NewTLSStat() (TLSStat, error) { + file, err := os.Open(fs.proc.Path("net/tls_stat")) + if err != nil { + return TLSStat{}, err + } + defer file.Close() + + var ( + tlsstat = TLSStat{} + s = bufio.NewScanner(file) + ) + + for s.Scan() { + fields := strings.Fields(s.Text()) + + if len(fields) != 2 { + return TLSStat{}, fmt.Errorf("%w: %q line %q", ErrFileParse, file.Name(), s.Text()) + } + + name := fields[0] + value, err := strconv.Atoi(fields[1]) + if err != nil { + return TLSStat{}, err + } + + switch name { + case "TlsCurrTxSw": + tlsstat.TLSCurrTxSw = value + case "TlsCurrRxSw": + tlsstat.TLSCurrRxSw = value + case "TlsCurrTxDevice": + tlsstat.TLSCurrTxDevice = value + case "TlsCurrRxDevice": + tlsstat.TLSCurrRxDevice = value + case "TlsTxSw": + tlsstat.TLSTxSw = value + case "TlsRxSw": + tlsstat.TLSRxSw = value + case "TlsTxDevice": + tlsstat.TLSTxDevice = value + case "TlsRxDevice": + tlsstat.TLSRxDevice = value + case "TlsDecryptError": + tlsstat.TLSDecryptError = value + case "TlsRxDeviceResync": + tlsstat.TLSRxDeviceResync = value + case "TlsDecryptRetry": + tlsstat.TLSDecryptRetry = value + case "TlsRxNoPadViolation": + tlsstat.TLSRxNoPadViolation = value + } + + } + + return tlsstat, s.Err() +} diff --git a/vendor/github.com/prometheus/procfs/proc_stat.go b/vendor/github.com/prometheus/procfs/proc_stat.go index 923e55005..06a8d931c 100644 --- a/vendor/github.com/prometheus/procfs/proc_stat.go +++ b/vendor/github.com/prometheus/procfs/proc_stat.go @@ -110,6 +110,11 @@ type ProcStat struct { Policy uint // Aggregated block I/O delays, measured in clock ticks (centiseconds). DelayAcctBlkIOTicks uint64 + // Guest time of the process (time spent running a virtual CPU for a guest + // operating system), measured in clock ticks. + GuestTime int + // Guest time of the process's children, measured in clock ticks. + CGuestTime int proc FS } @@ -189,6 +194,8 @@ func (p Proc) Stat() (ProcStat, error) { &s.RTPriority, &s.Policy, &s.DelayAcctBlkIOTicks, + &s.GuestTime, + &s.CGuestTime, ) if err != nil { return ProcStat{}, err diff --git a/vendor/github.com/tdewolff/minify/v2/README.md b/vendor/github.com/tdewolff/minify/v2/README.md index ebf85755f..570a76816 100644 --- a/vendor/github.com/tdewolff/minify/v2/README.md +++ b/vendor/github.com/tdewolff/minify/v2/README.md @@ -14,7 +14,7 @@ *Did you know that the shortest valid piece of HTML5 is `x`? See for yourself at the [W3C Validator](http://validator.w3.org/)!* -Minify is a minifier package written in [Go][1]. It provides HTML5, CSS3, JS, JSON, SVG and XML minifiers and an interface to implement any other minifier. Minification is the process of removing bytes from a file (such as whitespace) without changing its output and therefore shrinking its size and speeding up transmission over the internet and possibly parsing. The implemented minifiers are designed for high performance. +Minify is a minifier package written in [Go][1]. It provides HTML5, CSS3, JS, JSON, SVG and XML minifiers and an interface to implement any other minifier. Minification is the process of removing bytes from a file (such as whitespace) without changing its output and therefore shrinking its size and speeding up transmission over the internet and possibly parsing. The implemented minifiers are designed for high performance (see https://github.com/privatenumber/minification-benchmarks where this library is (one of) the fastest JS minifiers). The core functionality associates mimetypes with minification functions, allowing embedded resources (like CSS or JS within HTML files) to be minified as well. Users can add new implementations that are triggered based on a mimetype (or pattern), or redirect to an external command (like ClosureCompiler, UglifyCSS, ...). diff --git a/vendor/github.com/tdewolff/minify/v2/css/css.go b/vendor/github.com/tdewolff/minify/v2/css/css.go index 07712d137..39b3828d3 100644 --- a/vendor/github.com/tdewolff/minify/v2/css/css.go +++ b/vendor/github.com/tdewolff/minify/v2/css/css.go @@ -81,14 +81,21 @@ func (t Token) String() string { if len(t.Args) == 0 { return t.TokenType.String() + "(" + string(t.Data) + ")" } - return fmt.Sprint(t.Args) + + sb := strings.Builder{} + sb.Write(t.Data) + for _, arg := range t.Args { + sb.WriteString(arg.String()) + } + sb.WriteByte(')') + return sb.String() } // Equal returns true if both tokens are equal. func (t Token) Equal(t2 Token) bool { if t.TokenType == t2.TokenType && bytes.Equal(t.Data, t2.Data) && len(t.Args) == len(t2.Args) { for i := 0; i < len(t.Args); i++ { - if t.Args[i].TokenType != t2.Args[i].TokenType || !bytes.Equal(t.Args[i].Data, t2.Args[i].Data) { + if !t.Args[i].Equal(t2.Args[i]) { return false } } @@ -405,7 +412,7 @@ func (c *cssMinifier) minifyDeclaration(property []byte, components []css.Token) } values = c.minifyTokens(prop, 0, values) - if len(values) > 0 { + if 0 < len(values) { values = c.minifyProperty(prop, values) } c.writeDeclaration(values, important) @@ -1127,7 +1134,7 @@ func (c *cssMinifier) minifyProperty(prop Hash, values []Token) []Token { } else { values[i] = minifyColor(values[i]) } - if 0 < i && sameValues && !bytes.Equal(values[0].Data, values[i].Data) { + if 0 < i && sameValues && !values[0].Equal(values[i]) { sameValues = false } } diff --git a/vendor/github.com/tdewolff/minify/v2/html/html.go b/vendor/github.com/tdewolff/minify/v2/html/html.go index 1ccc85be5..ab50ff650 100644 --- a/vendor/github.com/tdewolff/minify/v2/html/html.go +++ b/vendor/github.com/tdewolff/minify/v2/html/html.go @@ -504,7 +504,7 @@ func (o *Minifier) Minify(m *minify.M, w io.Writer, r io.Reader, _ map[string]st if 0 < len(attr.Data) && (attr.Data[len(attr.Data)-1] == '\'' || attr.Data[len(attr.Data)-1] == '"') { quote = attr.Data[len(attr.Data)-1] } - val = html.EscapeAttrVal(&attrByteBuffer, val, quote, o.KeepQuotes, isXML) + val = html.EscapeAttrVal(&attrByteBuffer, val, quote, o.KeepQuotes || isXML) w.Write(val) } } diff --git a/vendor/github.com/tdewolff/minify/v2/js/util.go b/vendor/github.com/tdewolff/minify/v2/js/util.go index 97fb7ecf2..a674a7121 100644 --- a/vendor/github.com/tdewolff/minify/v2/js/util.go +++ b/vendor/github.com/tdewolff/minify/v2/js/util.go @@ -1023,7 +1023,7 @@ func replaceEscapes(b []byte, quote byte, prefix, suffix int) []byte { // strip unnecessary escapes j := 0 start := 0 - for i := prefix; i < len(b)-suffix-1; i++ { + for i := prefix; i < len(b)-suffix; i++ { if c := b[i]; c == '\\' { c = b[i+1] if c == quote || c == '\\' || quote != '`' && (c == 'n' || c == 'r') || c == '0' && (len(b)-suffix <= i+2 || b[i+2] < '0' || '7' < b[i+2]) { diff --git a/vendor/github.com/tdewolff/minify/v2/js/vars.go b/vendor/github.com/tdewolff/minify/v2/js/vars.go index 693ceddc2..dee21f945 100644 --- a/vendor/github.com/tdewolff/minify/v2/js/vars.go +++ b/vendor/github.com/tdewolff/minify/v2/js/vars.go @@ -288,112 +288,90 @@ func mergeVarDeclExprStmt(decl *js.VarDecl, exprStmt *js.ExprStmt, forward bool) return false } -func (m *jsMinifier) varNameLen(v *js.Var) int { +func (m *jsMinifier) countHoistLength(ibinding js.IBinding) int { if !m.o.KeepVarNames { - return 2 // assume that var name will be of length one, +1 for the comma + return len(bindingVars(ibinding)) * 2 // assume that var name will be of length one, +1 for the comma } - return len(v.Data) + 1 // +1 for the comma when added to other declaration + + n := 0 + for _, v := range bindingVars(ibinding) { + n += len(v.Data) + 1 // +1 for the comma when added to other declaration + } + return n } func (m *jsMinifier) hoistVars(body *js.BlockStmt) { - // Hoist all variable declarations in the current module/function scope to the top - // Find the best var declaration (that results in the shortest code), all others are converted to expressions. - // This is possible because an ArrayBindingPattern and ObjectBindingPattern can be converted to an ArrayLiteral or ObjectLiteral respectively, as they are supersets of the BindingPatterns. + // Hoist all variable declarations in the current module/function scope to the variable + // declaration that reduces file size the most. All other declarations are converted to + // expressions and their variable names are copied to the only remaining declaration. + // This is possible because an ArrayBindingPattern and ObjectBindingPattern can be converted to + // an ArrayLiteral or ObjectLiteral respectively, as they are supersets of the BindingPatterns. if 1 < len(body.Scope.VarDecls) { // Select which variable declarations will be hoisted (convert to expression) and which not best := 0 scores := make([]int, len(body.Scope.VarDecls)) // savings if hoisting target - hoists := make([][]bool, len(body.Scope.VarDecls)) - for i, target := range body.Scope.VarDecls { - // keep list of target variables to avoid declaring a var more than once - var refsTarget []*js.Var - for _, item := range target.List { - refsTarget = append(refsTarget, bindingVars(item.Binding)...) + hoist := make([]bool, len(body.Scope.VarDecls)) + for i, varDecl := range body.Scope.VarDecls { + hoist[i] = true + if varDecl.InForInOf { + continue } - hoists[i] = make([]bool, len(body.Scope.VarDecls)) - for j, varDecl := range body.Scope.VarDecls { - if i == j { - hoists[i][j] = false - continue - } - - score := 4 // "var " - hoists[i][j] = true - if !varDecl.InForInOf { - // variable names in for-in or for-of cannot be removed - n := 0 // total number of vars with decls - nArrays := 0 // of which lhs arrays - nObjects := 0 // of which lhs objects - nNames := 0 // length of var names and commas - hasDefinitions := false - for k, item := range varDecl.List { - if item.Default != nil { - // move arrays/objects to the front (saves a space) - if _, ok := item.Binding.(*js.BindingObject); ok { - if k != 0 && nArrays == 0 && nObjects == 0 { - varDecl.List[0], varDecl.List[k] = varDecl.List[k], varDecl.List[0] - } - nObjects++ - } else if _, ok := item.Binding.(*js.BindingArray); ok { - if k != 0 && nArrays == 0 && nObjects == 0 { - varDecl.List[0], varDecl.List[k] = varDecl.List[k], varDecl.List[0] - } - nArrays++ - } - - refs := bindingVars(item.Binding) - CountNamesLoop: - for _, ref := range refs { - for _, v := range refsTarget { - if ref == v { - // already exists in target - continue CountNamesLoop - } - } - - // declaration separate from assignment will copy var name + comma - nNames += m.varNameLen(ref) - refsTarget = append(refsTarget, ref) - } - hasDefinitions = true - n++ + // variable names in for-in or for-of cannot be removed + n := 0 // total number of vars with decls + score := 3 // "var" + nArrays := 0 // of which lhs arrays + nObjects := 0 // of which lhs objects + hasDefinitions := false + for j, item := range varDecl.List { + if item.Default != nil { + // move arrays/objects to the front (saves a space) + if _, ok := item.Binding.(*js.BindingObject); ok { + if j != 0 && nArrays == 0 && nObjects == 0 { + varDecl.List[0], varDecl.List[j] = varDecl.List[j], varDecl.List[0] } + nObjects++ + } else if _, ok := item.Binding.(*js.BindingArray); ok { + if j != 0 && nArrays == 0 && nObjects == 0 { + varDecl.List[0], varDecl.List[j] = varDecl.List[j], varDecl.List[0] + } + nArrays++ } - if hasDefinitions { - score -= nNames // copy var names and commas to target - } else if varDecl.InFor { - score-- // semicolon can be reused - } - if nObjects != 0 && !varDecl.InFor && nObjects == n { - score -= 2 // required parenthesis around braces - } - if nArrays != 0 || nObjects != 0 { - score-- // space after var disappears - } - if score < 0 { - // don't hoist if it increases the amount of characters - hoists[i][j] = false - score = 0 - } + score -= m.countHoistLength(item.Binding) // var names and commas + hasDefinitions = true + n++ } - scores[i] += score } - if scores[best] < scores[i] || body.Scope.VarDecls[best].InForInOf { - // select var decl with the most savings if hoist target + if nArrays == 0 && nObjects == 0 { + score++ // required space after var + } + if !hasDefinitions && varDecl.InFor { + score-- // semicolon can be reused + } + if nObjects != 0 && !varDecl.InFor && nObjects == n { + // required parenthesis around braces to not confound it with a block statement + score -= 2 + } + if score < scores[best] || body.Scope.VarDecls[best].InForInOf { + // select var decl that reduces the least when hoist target best = i } + if score < 0 { + // don't hoist if it increases the amount of characters + hoist[i] = false + } + scores[i] = score } - if scores[best] < 0 || body.Scope.VarDecls[best].InForInOf { + if body.Scope.VarDecls[best].InForInOf { // no savings possible return } - hoist := hoists[best] decl := body.Scope.VarDecls[best] if 10000 < len(decl.List) { return } + hoist[best] = false // get original declarations orig := []*js.Var{} diff --git a/vendor/github.com/tdewolff/parse/v2/html/util.go b/vendor/github.com/tdewolff/parse/v2/html/util.go index 0dbd52ca0..1bebd6b06 100644 --- a/vendor/github.com/tdewolff/parse/v2/html/util.go +++ b/vendor/github.com/tdewolff/parse/v2/html/util.go @@ -6,7 +6,7 @@ var ( ) // EscapeAttrVal returns the escaped attribute value bytes with quotes. Either single or double quotes are used, whichever is shorter. If there are no quotes present in the value and the value is in HTML (not XML), it will return the value without quotes. -func EscapeAttrVal(buf *[]byte, b []byte, origQuote byte, mustQuote, isXML bool) []byte { +func EscapeAttrVal(buf *[]byte, b []byte, origQuote byte, mustQuote bool) []byte { singles := 0 doubles := 0 unquoted := true @@ -20,9 +20,9 @@ func EscapeAttrVal(buf *[]byte, b []byte, origQuote byte, mustQuote, isXML bool) } } } - if unquoted && (!mustQuote || origQuote == 0) && !isXML { + if unquoted && (!mustQuote || origQuote == 0) { return b - } else if singles == 0 && origQuote == '\'' && !isXML || doubles == 0 && origQuote == '"' { + } else if singles == 0 && origQuote == '\'' || doubles == 0 && origQuote == '"' { if len(b)+2 > cap(*buf) { *buf = make([]byte, 0, len(b)+2) } @@ -36,14 +36,10 @@ func EscapeAttrVal(buf *[]byte, b []byte, origQuote byte, mustQuote, isXML bool) n := len(b) + 2 var quote byte var escapedQuote []byte - if singles >= doubles || isXML { + if singles > doubles || singles == doubles && origQuote != '\'' { n += doubles * 4 quote = '"' escapedQuote = doubleQuoteEntityBytes - if singles == doubles && origQuote == '\'' && !isXML { - quote = '\'' - escapedQuote = singleQuoteEntityBytes - } } else { n += singles * 4 quote = '\'' diff --git a/vendor/github.com/tdewolff/parse/v2/js/parse.go b/vendor/github.com/tdewolff/parse/v2/js/parse.go index 2bbe51777..aab4002a4 100644 --- a/vendor/github.com/tdewolff/parse/v2/js/parse.go +++ b/vendor/github.com/tdewolff/parse/v2/js/parse.go @@ -75,16 +75,13 @@ func Parse(r *parse.Input, o Options) (*AST, error) { } } - if p.err == nil { - p.err = p.l.Err() - } else { + if p.err != nil { offset := p.l.r.Offset() - len(p.data) - p.err = parse.NewError(buffer.NewReader(p.l.r.Bytes()), offset, p.err.Error()) - } - if p.err == io.EOF { - p.err = nil + return nil, parse.NewError(buffer.NewReader(p.l.r.Bytes()), offset, p.err.Error()) + } else if p.l.Err() != nil && p.l.Err() != io.EOF { + return nil, p.l.Err() } - return ast, p.err + return ast, nil } //////////////////////////////////////////////////////////////// @@ -831,15 +828,17 @@ func (p *Parser) parseExportStmt() (exportStmt ExportStmt) { exportStmt.Default = true p.next() if p.tt == FunctionToken { + // hoistable declaration exportStmt.Decl = p.parseFuncDecl() } else if p.tt == AsyncToken { // async function or async arrow function async := p.data p.next() if p.tt == FunctionToken && !p.prevLT { + // hoistable declaration exportStmt.Decl = p.parseAsyncFuncDecl() } else { // expression - exportStmt.Decl = p.parseAsyncExpression(OpExpr, async) + exportStmt.Decl = p.parseAsyncExpression(OpAssign, async) } } else if p.tt == ClassToken { exportStmt.Decl = p.parseClassDecl() @@ -2003,6 +2002,9 @@ func (p *Parser) parseExpressionSuffix(left IExpr, prec, precLeft OpPrec) IExpr case OptChainToken: if OpCall < prec { return left + } else if precLeft < OpCall { + p.fail("expression") + return nil } p.next() if p.tt == OpenParenToken { diff --git a/vendor/github.com/tidepool-org/go-common/events/config.go b/vendor/github.com/tidepool-org/go-common/events/config.go index 3a90489cf..a07d70ed6 100644 --- a/vendor/github.com/tidepool-org/go-common/events/config.go +++ b/vendor/github.com/tidepool-org/go-common/events/config.go @@ -2,7 +2,7 @@ package events import ( "errors" - "github.com/Shopify/sarama" + "github.com/IBM/sarama" "github.com/kelseyhightower/envconfig" ) diff --git a/vendor/github.com/tidepool-org/go-common/events/consumer.go b/vendor/github.com/tidepool-org/go-common/events/consumer.go index e086ff7c9..f3cd73295 100644 --- a/vendor/github.com/tidepool-org/go-common/events/consumer.go +++ b/vendor/github.com/tidepool-org/go-common/events/consumer.go @@ -2,7 +2,7 @@ package events import ( "context" - "github.com/Shopify/sarama" + "github.com/IBM/sarama" "github.com/cloudevents/sdk-go/protocol/kafka_sarama/v2" cloudevents "github.com/cloudevents/sdk-go/v2" "github.com/cloudevents/sdk-go/v2/binding" diff --git a/vendor/github.com/tidepool-org/go-common/events/consumer_group.go b/vendor/github.com/tidepool-org/go-common/events/consumer_group.go index 850e61512..8f38c1ee5 100644 --- a/vendor/github.com/tidepool-org/go-common/events/consumer_group.go +++ b/vendor/github.com/tidepool-org/go-common/events/consumer_group.go @@ -3,7 +3,7 @@ package events import ( "context" "fmt" - "github.com/Shopify/sarama" + "github.com/IBM/sarama" "github.com/tidepool-org/go-common/errors" "log" "sync" diff --git a/vendor/github.com/tidepool-org/go-common/events/sender.go b/vendor/github.com/tidepool-org/go-common/events/sender.go index 1c498ffa2..b5f38a015 100644 --- a/vendor/github.com/tidepool-org/go-common/events/sender.go +++ b/vendor/github.com/tidepool-org/go-common/events/sender.go @@ -2,7 +2,7 @@ package events import ( "context" - "github.com/Shopify/sarama" + "github.com/IBM/sarama" "github.com/cloudevents/sdk-go/protocol/kafka_sarama/v2" cloudevents "github.com/cloudevents/sdk-go/v2" "github.com/tidepool-org/go-common/errors" @@ -40,7 +40,7 @@ func newKafkaCloudEventsProducerWithTopic(config *CloudEventsConfig, topic strin // We are using a sync producer which requires setting the variables below config.SaramaConfig.Producer.Return.Errors = true config.SaramaConfig.Producer.Return.Successes = true - + sender, err := kafka_sarama.NewSender(config.KafkaBrokers, config.SaramaConfig, topic) if err != nil { return nil, err diff --git a/vendor/go.mongodb.org/mongo-driver/bson/bsoncodec/array_codec.go b/vendor/go.mongodb.org/mongo-driver/bson/bsoncodec/array_codec.go index 6ca8d9ad6..652aa48b8 100644 --- a/vendor/go.mongodb.org/mongo-driver/bson/bsoncodec/array_codec.go +++ b/vendor/go.mongodb.org/mongo-driver/bson/bsoncodec/array_codec.go @@ -15,16 +15,15 @@ import ( // ArrayCodec is the Codec used for bsoncore.Array values. // -// Deprecated: Use [go.mongodb.org/mongo-driver/bson.NewRegistry] to get a registry with the -// ArrayCodec registered. +// Deprecated: ArrayCodec will not be directly accessible in Go Driver 2.0. type ArrayCodec struct{} var defaultArrayCodec = NewArrayCodec() // NewArrayCodec returns an ArrayCodec. // -// Deprecated: Use [go.mongodb.org/mongo-driver/bson.NewRegistry] to get a registry with the -// ArrayCodec registered. +// Deprecated: NewArrayCodec will not be available in Go Driver 2.0. See +// [ArrayCodec] for more details. func NewArrayCodec() *ArrayCodec { return &ArrayCodec{} } diff --git a/vendor/go.mongodb.org/mongo-driver/bson/bsoncodec/byte_slice_codec.go b/vendor/go.mongodb.org/mongo-driver/bson/bsoncodec/byte_slice_codec.go index dde3e7681..0134b5a94 100644 --- a/vendor/go.mongodb.org/mongo-driver/bson/bsoncodec/byte_slice_codec.go +++ b/vendor/go.mongodb.org/mongo-driver/bson/bsoncodec/byte_slice_codec.go @@ -17,13 +17,28 @@ import ( // ByteSliceCodec is the Codec used for []byte values. // -// Deprecated: Use [go.mongodb.org/mongo-driver/bson.NewRegistry] to get a registry with the -// ByteSliceCodec registered. +// Deprecated: ByteSliceCodec will not be directly configurable in Go Driver +// 2.0. To configure the byte slice encode and decode behavior, use the +// configuration methods on a [go.mongodb.org/mongo-driver/bson.Encoder] or +// [go.mongodb.org/mongo-driver/bson.Decoder]. To configure the byte slice +// encode and decode behavior for a mongo.Client, use +// [go.mongodb.org/mongo-driver/mongo/options.ClientOptions.SetBSONOptions]. +// +// For example, to configure a mongo.Client to encode nil byte slices as empty +// BSON binary values, use: +// +// opt := options.Client().SetBSONOptions(&options.BSONOptions{ +// NilByteSliceAsEmpty: true, +// }) +// +// See the deprecation notice for each field in ByteSliceCodec for the +// corresponding settings. type ByteSliceCodec struct { // EncodeNilAsEmpty causes EncodeValue to marshal nil Go byte slices as empty BSON binary values // instead of BSON null. // - // Deprecated: Use bson.Encoder.NilByteSliceAsEmpty instead. + // Deprecated: Use bson.Encoder.NilByteSliceAsEmpty or options.BSONOptions.NilByteSliceAsEmpty + // instead. EncodeNilAsEmpty bool } @@ -38,8 +53,8 @@ var ( // NewByteSliceCodec returns a ByteSliceCodec with options opts. // -// Deprecated: Use [go.mongodb.org/mongo-driver/bson.NewRegistry] to get a registry with the -// ByteSliceCodec registered. +// Deprecated: NewByteSliceCodec will not be available in Go Driver 2.0. See +// [ByteSliceCodec] for more details. func NewByteSliceCodec(opts ...*bsonoptions.ByteSliceCodecOptions) *ByteSliceCodec { byteSliceOpt := bsonoptions.MergeByteSliceCodecOptions(opts...) codec := ByteSliceCodec{} diff --git a/vendor/go.mongodb.org/mongo-driver/bson/bsoncodec/default_value_decoders.go b/vendor/go.mongodb.org/mongo-driver/bson/bsoncodec/default_value_decoders.go index 2ce119731..7e08aab35 100644 --- a/vendor/go.mongodb.org/mongo-driver/bson/bsoncodec/default_value_decoders.go +++ b/vendor/go.mongodb.org/mongo-driver/bson/bsoncodec/default_value_decoders.go @@ -41,7 +41,7 @@ func newDefaultStructCodec() *StructCodec { if err != nil { // This function is called from the codec registration path, so errors can't be propagated. If there's an error // constructing the StructCodec, we panic to avoid losing it. - panic(fmt.Errorf("error creating default StructCodec: %v", err)) + panic(fmt.Errorf("error creating default StructCodec: %w", err)) } return codec } @@ -178,7 +178,7 @@ func (dvd DefaultValueDecoders) DDecodeValue(dc DecodeContext, vr bsonrw.ValueRe for { key, elemVr, err := dr.ReadElement() - if err == bsonrw.ErrEOD { + if errors.Is(err, bsonrw.ErrEOD) { break } else if err != nil { return err @@ -1379,7 +1379,7 @@ func (dvd DefaultValueDecoders) MapDecodeValue(dc DecodeContext, vr bsonrw.Value keyType := val.Type().Key() for { key, vr, err := dr.ReadElement() - if err == bsonrw.ErrEOD { + if errors.Is(err, bsonrw.ErrEOD) { break } if err != nil { @@ -1675,7 +1675,7 @@ func (dvd DefaultValueDecoders) decodeDefault(dc DecodeContext, vr bsonrw.ValueR idx := 0 for { vr, err := ar.ReadValue() - if err == bsonrw.ErrEOA { + if errors.Is(err, bsonrw.ErrEOA) { break } if err != nil { @@ -1787,7 +1787,7 @@ func (DefaultValueDecoders) decodeElemsFromDocumentReader(dc DecodeContext, dr b elems := make([]reflect.Value, 0) for { key, vr, err := dr.ReadElement() - if err == bsonrw.ErrEOD { + if errors.Is(err, bsonrw.ErrEOD) { break } if err != nil { diff --git a/vendor/go.mongodb.org/mongo-driver/bson/bsoncodec/default_value_encoders.go b/vendor/go.mongodb.org/mongo-driver/bson/bsoncodec/default_value_encoders.go index 4ab14a668..4751ae995 100644 --- a/vendor/go.mongodb.org/mongo-driver/bson/bsoncodec/default_value_encoders.go +++ b/vendor/go.mongodb.org/mongo-driver/bson/bsoncodec/default_value_encoders.go @@ -343,7 +343,7 @@ func (dve DefaultValueEncoders) mapEncodeValue(ec EncodeContext, dw bsonrw.Docum } currEncoder, currVal, lookupErr := dve.lookupElementEncoder(ec, encoder, val.MapIndex(key)) - if lookupErr != nil && lookupErr != errInvalidValue { + if lookupErr != nil && !errors.Is(lookupErr, errInvalidValue) { return lookupErr } @@ -352,7 +352,7 @@ func (dve DefaultValueEncoders) mapEncodeValue(ec EncodeContext, dw bsonrw.Docum return err } - if lookupErr == errInvalidValue { + if errors.Is(lookupErr, errInvalidValue) { err = vw.WriteNull() if err != nil { return err @@ -418,7 +418,7 @@ func (dve DefaultValueEncoders) ArrayEncodeValue(ec EncodeContext, vw bsonrw.Val for idx := 0; idx < val.Len(); idx++ { currEncoder, currVal, lookupErr := dve.lookupElementEncoder(ec, encoder, val.Index(idx)) - if lookupErr != nil && lookupErr != errInvalidValue { + if lookupErr != nil && !errors.Is(lookupErr, errInvalidValue) { return lookupErr } @@ -427,7 +427,7 @@ func (dve DefaultValueEncoders) ArrayEncodeValue(ec EncodeContext, vw bsonrw.Val return err } - if lookupErr == errInvalidValue { + if errors.Is(lookupErr, errInvalidValue) { err = vw.WriteNull() if err != nil { return err @@ -487,7 +487,7 @@ func (dve DefaultValueEncoders) SliceEncodeValue(ec EncodeContext, vw bsonrw.Val for idx := 0; idx < val.Len(); idx++ { currEncoder, currVal, lookupErr := dve.lookupElementEncoder(ec, encoder, val.Index(idx)) - if lookupErr != nil && lookupErr != errInvalidValue { + if lookupErr != nil && !errors.Is(lookupErr, errInvalidValue) { return lookupErr } @@ -496,7 +496,7 @@ func (dve DefaultValueEncoders) SliceEncodeValue(ec EncodeContext, vw bsonrw.Val return err } - if lookupErr == errInvalidValue { + if errors.Is(lookupErr, errInvalidValue) { err = vw.WriteNull() if err != nil { return err diff --git a/vendor/go.mongodb.org/mongo-driver/bson/bsoncodec/empty_interface_codec.go b/vendor/go.mongodb.org/mongo-driver/bson/bsoncodec/empty_interface_codec.go index 94f7dcf1e..098368f07 100644 --- a/vendor/go.mongodb.org/mongo-driver/bson/bsoncodec/empty_interface_codec.go +++ b/vendor/go.mongodb.org/mongo-driver/bson/bsoncodec/empty_interface_codec.go @@ -17,13 +17,27 @@ import ( // EmptyInterfaceCodec is the Codec used for interface{} values. // -// Deprecated: Use [go.mongodb.org/mongo-driver/bson.NewRegistry] to get a registry with the -// EmptyInterfaceCodec registered. +// Deprecated: EmptyInterfaceCodec will not be directly configurable in Go +// Driver 2.0. To configure the empty interface encode and decode behavior, use +// the configuration methods on a [go.mongodb.org/mongo-driver/bson.Encoder] or +// [go.mongodb.org/mongo-driver/bson.Decoder]. To configure the empty interface +// encode and decode behavior for a mongo.Client, use +// [go.mongodb.org/mongo-driver/mongo/options.ClientOptions.SetBSONOptions]. +// +// For example, to configure a mongo.Client to unmarshal BSON binary field +// values as a Go byte slice, use: +// +// opt := options.Client().SetBSONOptions(&options.BSONOptions{ +// BinaryAsSlice: true, +// }) +// +// See the deprecation notice for each field in EmptyInterfaceCodec for the +// corresponding settings. type EmptyInterfaceCodec struct { // DecodeBinaryAsSlice causes DecodeValue to unmarshal BSON binary field values that are the // "Generic" or "Old" BSON binary subtype as a Go byte slice instead of a primitive.Binary. // - // Deprecated: Use bson.Decoder.BinaryAsSlice instead. + // Deprecated: Use bson.Decoder.BinaryAsSlice or options.BSONOptions.BinaryAsSlice instead. DecodeBinaryAsSlice bool } @@ -38,8 +52,8 @@ var ( // NewEmptyInterfaceCodec returns a EmptyInterfaceCodec with options opts. // -// Deprecated: Use [go.mongodb.org/mongo-driver/bson.NewRegistry] to get a registry with the -// EmptyInterfaceCodec registered. +// Deprecated: NewEmptyInterfaceCodec will not be available in Go Driver 2.0. See +// [EmptyInterfaceCodec] for more details. func NewEmptyInterfaceCodec(opts ...*bsonoptions.EmptyInterfaceCodecOptions) *EmptyInterfaceCodec { interfaceOpt := bsonoptions.MergeEmptyInterfaceCodecOptions(opts...) diff --git a/vendor/go.mongodb.org/mongo-driver/bson/bsoncodec/map_codec.go b/vendor/go.mongodb.org/mongo-driver/bson/bsoncodec/map_codec.go index 325c1738a..d7e00ffa8 100644 --- a/vendor/go.mongodb.org/mongo-driver/bson/bsoncodec/map_codec.go +++ b/vendor/go.mongodb.org/mongo-driver/bson/bsoncodec/map_codec.go @@ -8,6 +8,7 @@ package bsoncodec import ( "encoding" + "errors" "fmt" "reflect" "strconv" @@ -21,25 +22,40 @@ var defaultMapCodec = NewMapCodec() // MapCodec is the Codec used for map values. // -// Deprecated: Use [go.mongodb.org/mongo-driver/bson.NewRegistry] to get a registry with the -// MapCodec registered. +// Deprecated: MapCodec will not be directly configurable in Go Driver 2.0. To +// configure the map encode and decode behavior, use the configuration methods +// on a [go.mongodb.org/mongo-driver/bson.Encoder] or +// [go.mongodb.org/mongo-driver/bson.Decoder]. To configure the map encode and +// decode behavior for a mongo.Client, use +// [go.mongodb.org/mongo-driver/mongo/options.ClientOptions.SetBSONOptions]. +// +// For example, to configure a mongo.Client to marshal nil Go maps as empty BSON +// documents, use: +// +// opt := options.Client().SetBSONOptions(&options.BSONOptions{ +// NilMapAsEmpty: true, +// }) +// +// See the deprecation notice for each field in MapCodec for the corresponding +// settings. type MapCodec struct { // DecodeZerosMap causes DecodeValue to delete any existing values from Go maps in the destination // value passed to Decode before unmarshaling BSON documents into them. // - // Deprecated: Use bson.Decoder.ZeroMaps instead. + // Deprecated: Use bson.Decoder.ZeroMaps or options.BSONOptions.ZeroMaps instead. DecodeZerosMap bool // EncodeNilAsEmpty causes EncodeValue to marshal nil Go maps as empty BSON documents instead of // BSON null. // - // Deprecated: Use bson.Encoder.NilMapAsEmpty instead. + // Deprecated: Use bson.Encoder.NilMapAsEmpty or options.BSONOptions.NilMapAsEmpty instead. EncodeNilAsEmpty bool // EncodeKeysWithStringer causes the Encoder to convert Go map keys to BSON document field name // strings using fmt.Sprintf() instead of the default string conversion logic. // - // Deprecated: Use bson.Encoder.StringifyMapKeysWithFmt instead. + // Deprecated: Use bson.Encoder.StringifyMapKeysWithFmt or + // options.BSONOptions.StringifyMapKeysWithFmt instead. EncodeKeysWithStringer bool } @@ -61,8 +77,8 @@ type KeyUnmarshaler interface { // NewMapCodec returns a MapCodec with options opts. // -// Deprecated: Use [go.mongodb.org/mongo-driver/bson.NewRegistry] to get a registry with the -// MapCodec registered. +// Deprecated: NewMapCodec will not be available in Go Driver 2.0. See +// [MapCodec] for more details. func NewMapCodec(opts ...*bsonoptions.MapCodecOptions) *MapCodec { mapOpt := bsonoptions.MergeMapCodecOptions(opts...) @@ -128,7 +144,7 @@ func (mc *MapCodec) mapEncodeValue(ec EncodeContext, dw bsonrw.DocumentWriter, v } currEncoder, currVal, lookupErr := defaultValueEncoders.lookupElementEncoder(ec, encoder, val.MapIndex(key)) - if lookupErr != nil && lookupErr != errInvalidValue { + if lookupErr != nil && !errors.Is(lookupErr, errInvalidValue) { return lookupErr } @@ -137,7 +153,7 @@ func (mc *MapCodec) mapEncodeValue(ec EncodeContext, dw bsonrw.DocumentWriter, v return err } - if lookupErr == errInvalidValue { + if errors.Is(lookupErr, errInvalidValue) { err = vw.WriteNull() if err != nil { return err @@ -200,7 +216,7 @@ func (mc *MapCodec) DecodeValue(dc DecodeContext, vr bsonrw.ValueReader, val ref for { key, vr, err := dr.ReadElement() - if err == bsonrw.ErrEOD { + if errors.Is(err, bsonrw.ErrEOD) { break } if err != nil { @@ -313,7 +329,7 @@ func (mc *MapCodec) decodeKey(key string, keyType reflect.Type) (reflect.Value, if mc.EncodeKeysWithStringer { parsed, err := strconv.ParseFloat(key, 64) if err != nil { - return keyVal, fmt.Errorf("Map key is defined to be a decimal type (%v) but got error %v", keyType.Kind(), err) + return keyVal, fmt.Errorf("Map key is defined to be a decimal type (%v) but got error %w", keyType.Kind(), err) } keyVal = reflect.ValueOf(parsed) break diff --git a/vendor/go.mongodb.org/mongo-driver/bson/bsoncodec/pointer_codec.go b/vendor/go.mongodb.org/mongo-driver/bson/bsoncodec/pointer_codec.go index e5923230b..ddfa4a33e 100644 --- a/vendor/go.mongodb.org/mongo-driver/bson/bsoncodec/pointer_codec.go +++ b/vendor/go.mongodb.org/mongo-driver/bson/bsoncodec/pointer_codec.go @@ -18,8 +18,16 @@ var _ ValueDecoder = &PointerCodec{} // PointerCodec is the Codec used for pointers. // -// Deprecated: Use [go.mongodb.org/mongo-driver/bson.NewRegistry] to get a registry with the -// PointerCodec registered. +// Deprecated: PointerCodec will not be directly accessible in Go Driver 2.0. To +// override the default pointer encode and decode behavior, create a new registry +// with [go.mongodb.org/mongo-driver/bson.NewRegistry] and register a new +// encoder and decoder for pointers. +// +// For example, +// +// reg := bson.NewRegistry() +// reg.RegisterKindEncoder(reflect.Ptr, myPointerEncoder) +// reg.RegisterKindDecoder(reflect.Ptr, myPointerDecoder) type PointerCodec struct { ecache typeEncoderCache dcache typeDecoderCache @@ -27,8 +35,8 @@ type PointerCodec struct { // NewPointerCodec returns a PointerCodec that has been initialized. // -// Deprecated: Use [go.mongodb.org/mongo-driver/bson.NewRegistry] to get a registry with the -// PointerCodec registered. +// Deprecated: NewPointerCodec will not be available in Go Driver 2.0. See +// [PointerCodec] for more details. func NewPointerCodec() *PointerCodec { return &PointerCodec{} } diff --git a/vendor/go.mongodb.org/mongo-driver/bson/bsoncodec/slice_codec.go b/vendor/go.mongodb.org/mongo-driver/bson/bsoncodec/slice_codec.go index a43daf005..14c9fd256 100644 --- a/vendor/go.mongodb.org/mongo-driver/bson/bsoncodec/slice_codec.go +++ b/vendor/go.mongodb.org/mongo-driver/bson/bsoncodec/slice_codec.go @@ -7,6 +7,7 @@ package bsoncodec import ( + "errors" "fmt" "reflect" @@ -20,8 +21,22 @@ var defaultSliceCodec = NewSliceCodec() // SliceCodec is the Codec used for slice values. // -// Deprecated: Use [go.mongodb.org/mongo-driver/bson.NewRegistry] to get a registry with the -// SliceCodec registered. +// Deprecated: SliceCodec will not be directly configurable in Go Driver 2.0. To +// configure the slice encode and decode behavior, use the configuration methods +// on a [go.mongodb.org/mongo-driver/bson.Encoder] or +// [go.mongodb.org/mongo-driver/bson.Decoder]. To configure the slice encode and +// decode behavior for a mongo.Client, use +// [go.mongodb.org/mongo-driver/mongo/options.ClientOptions.SetBSONOptions]. +// +// For example, to configure a mongo.Client to marshal nil Go slices as empty +// BSON arrays, use: +// +// opt := options.Client().SetBSONOptions(&options.BSONOptions{ +// NilSliceAsEmpty: true, +// }) +// +// See the deprecation notice for each field in SliceCodec for the corresponding +// settings. type SliceCodec struct { // EncodeNilAsEmpty causes EncodeValue to marshal nil Go slices as empty BSON arrays instead of // BSON null. @@ -32,8 +47,8 @@ type SliceCodec struct { // NewSliceCodec returns a MapCodec with options opts. // -// Deprecated: Use [go.mongodb.org/mongo-driver/bson.NewRegistry] to get a registry with the -// SliceCodec registered. +// Deprecated: NewSliceCodec will not be available in Go Driver 2.0. See +// [SliceCodec] for more details. func NewSliceCodec(opts ...*bsonoptions.SliceCodecOptions) *SliceCodec { sliceOpt := bsonoptions.MergeSliceCodecOptions(opts...) @@ -93,7 +108,7 @@ func (sc SliceCodec) EncodeValue(ec EncodeContext, vw bsonrw.ValueWriter, val re for idx := 0; idx < val.Len(); idx++ { currEncoder, currVal, lookupErr := defaultValueEncoders.lookupElementEncoder(ec, encoder, val.Index(idx)) - if lookupErr != nil && lookupErr != errInvalidValue { + if lookupErr != nil && !errors.Is(lookupErr, errInvalidValue) { return lookupErr } @@ -102,7 +117,7 @@ func (sc SliceCodec) EncodeValue(ec EncodeContext, vw bsonrw.ValueWriter, val re return err } - if lookupErr == errInvalidValue { + if errors.Is(lookupErr, errInvalidValue) { err = vw.WriteNull() if err != nil { return err diff --git a/vendor/go.mongodb.org/mongo-driver/bson/bsoncodec/string_codec.go b/vendor/go.mongodb.org/mongo-driver/bson/bsoncodec/string_codec.go index ff931b725..a8f885a85 100644 --- a/vendor/go.mongodb.org/mongo-driver/bson/bsoncodec/string_codec.go +++ b/vendor/go.mongodb.org/mongo-driver/bson/bsoncodec/string_codec.go @@ -17,8 +17,16 @@ import ( // StringCodec is the Codec used for string values. // -// Deprecated: Use [go.mongodb.org/mongo-driver/bson.NewRegistry] to get a registry with the -// StringCodec registered. +// Deprecated: StringCodec will not be directly accessible in Go Driver 2.0. To +// override the default string encode and decode behavior, create a new registry +// with [go.mongodb.org/mongo-driver/bson.NewRegistry] and register a new +// encoder and decoder for strings. +// +// For example, +// +// reg := bson.NewRegistry() +// reg.RegisterKindEncoder(reflect.String, myStringEncoder) +// reg.RegisterKindDecoder(reflect.String, myStringDecoder) type StringCodec struct { // DecodeObjectIDAsHex specifies if object IDs should be decoded as their hex representation. // If false, a string made from the raw object ID bytes will be used. Defaults to true. @@ -38,8 +46,8 @@ var ( // NewStringCodec returns a StringCodec with options opts. // -// Deprecated: Use [go.mongodb.org/mongo-driver/bson.NewRegistry] to get a registry with the -// StringCodec registered. +// Deprecated: NewStringCodec will not be available in Go Driver 2.0. See +// [StringCodec] for more details. func NewStringCodec(opts ...*bsonoptions.StringCodecOptions) *StringCodec { stringOpt := bsonoptions.MergeStringCodecOptions(opts...) return &StringCodec{*stringOpt.DecodeObjectIDAsHex} diff --git a/vendor/go.mongodb.org/mongo-driver/bson/bsoncodec/struct_codec.go b/vendor/go.mongodb.org/mongo-driver/bson/bsoncodec/struct_codec.go index 4cde0a4d6..f8d9690c1 100644 --- a/vendor/go.mongodb.org/mongo-driver/bson/bsoncodec/struct_codec.go +++ b/vendor/go.mongodb.org/mongo-driver/bson/bsoncodec/struct_codec.go @@ -60,8 +60,22 @@ type Zeroer interface { // StructCodec is the Codec used for struct values. // -// Deprecated: Use [go.mongodb.org/mongo-driver/bson.NewRegistry] to get a registry with the -// StructCodec registered. +// Deprecated: StructCodec will not be directly configurable in Go Driver 2.0. +// To configure the struct encode and decode behavior, use the configuration +// methods on a [go.mongodb.org/mongo-driver/bson.Encoder] or +// [go.mongodb.org/mongo-driver/bson.Decoder]. To configure the struct encode +// and decode behavior for a mongo.Client, use +// [go.mongodb.org/mongo-driver/mongo/options.ClientOptions.SetBSONOptions]. +// +// For example, to configure a mongo.Client to omit zero-value structs when +// using the "omitempty" struct tag, use: +// +// opt := options.Client().SetBSONOptions(&options.BSONOptions{ +// OmitZeroStruct: true, +// }) +// +// See the deprecation notice for each field in StructCodec for the corresponding +// settings. type StructCodec struct { cache sync.Map // map[reflect.Type]*structDescription parser StructTagParser @@ -69,7 +83,7 @@ type StructCodec struct { // DecodeZeroStruct causes DecodeValue to delete any existing values from Go structs in the // destination value passed to Decode before unmarshaling BSON documents into them. // - // Deprecated: Use bson.Decoder.ZeroStructs instead. + // Deprecated: Use bson.Decoder.ZeroStructs or options.BSONOptions.ZeroStructs instead. DecodeZeroStruct bool // DecodeDeepZeroInline causes DecodeValue to delete any existing values from Go structs in the @@ -82,7 +96,7 @@ type StructCodec struct { // MyStruct{}) as empty and omit it from the marshaled BSON when the "omitempty" struct tag // option is set. // - // Deprecated: Use bson.Encoder.OmitZeroStruct instead. + // Deprecated: Use bson.Encoder.OmitZeroStruct or options.BSONOptions.OmitZeroStruct instead. EncodeOmitDefaultStruct bool // AllowUnexportedFields allows encoding and decoding values from un-exported struct fields. @@ -95,7 +109,8 @@ type StructCodec struct { // a duplicate field in the marshaled BSON when the "inline" struct tag option is set. The // default value is true. // - // Deprecated: Use bson.Encoder.ErrorOnInlineDuplicates instead. + // Deprecated: Use bson.Encoder.ErrorOnInlineDuplicates or + // options.BSONOptions.ErrorOnInlineDuplicates instead. OverwriteDuplicatedInlinedFields bool } @@ -104,8 +119,8 @@ var _ ValueDecoder = &StructCodec{} // NewStructCodec returns a StructCodec that uses p for struct tag parsing. // -// Deprecated: Use [go.mongodb.org/mongo-driver/bson.NewRegistry] to get a registry with the -// StructCodec registered. +// Deprecated: NewStructCodec will not be available in Go Driver 2.0. See +// [StructCodec] for more details. func NewStructCodec(p StructTagParser, opts ...*bsonoptions.StructCodecOptions) (*StructCodec, error) { if p == nil { return nil, errors.New("a StructTagParser must be provided to NewStructCodec") @@ -164,11 +179,11 @@ func (sc *StructCodec) EncodeValue(ec EncodeContext, vw bsonrw.ValueWriter, val desc.encoder, rv, err = defaultValueEncoders.lookupElementEncoder(ec, desc.encoder, rv) - if err != nil && err != errInvalidValue { + if err != nil && !errors.Is(err, errInvalidValue) { return err } - if err == errInvalidValue { + if errors.Is(err, errInvalidValue) { if desc.omitEmpty { continue } @@ -189,17 +204,17 @@ func (sc *StructCodec) EncodeValue(ec EncodeContext, vw bsonrw.ValueWriter, val encoder := desc.encoder - var zero bool + var empty bool if cz, ok := encoder.(CodecZeroer); ok { - zero = cz.IsTypeZero(rv.Interface()) + empty = cz.IsTypeZero(rv.Interface()) } else if rv.Kind() == reflect.Interface { - // isZero will not treat an interface rv as an interface, so we need to check for the - // zero interface separately. - zero = rv.IsNil() + // isEmpty will not treat an interface rv as an interface, so we need to check for the + // nil interface separately. + empty = rv.IsNil() } else { - zero = isZero(rv, sc.EncodeOmitDefaultStruct || ec.omitZeroStruct) + empty = isEmpty(rv, sc.EncodeOmitDefaultStruct || ec.omitZeroStruct) } - if desc.omitEmpty && zero { + if desc.omitEmpty && empty { continue } @@ -239,8 +254,8 @@ func (sc *StructCodec) EncodeValue(ec EncodeContext, vw bsonrw.ValueWriter, val } func newDecodeError(key string, original error) error { - de, ok := original.(*DecodeError) - if !ok { + var de *DecodeError + if !errors.As(original, &de) { return &DecodeError{ keys: []string{key}, wrapped: original, @@ -308,7 +323,7 @@ func (sc *StructCodec) DecodeValue(dc DecodeContext, vr bsonrw.ValueReader, val for { name, vr, err := dr.ReadElement() - if err == bsonrw.ErrEOD { + if errors.Is(err, bsonrw.ErrEOD) { break } if err != nil { @@ -391,12 +406,15 @@ func (sc *StructCodec) DecodeValue(dc DecodeContext, vr bsonrw.ValueReader, val return nil } -func isZero(v reflect.Value, omitZeroStruct bool) bool { +func isEmpty(v reflect.Value, omitZeroStruct bool) bool { kind := v.Kind() if (kind != reflect.Ptr || !v.IsNil()) && v.Type().Implements(tZeroer) { return v.Interface().(Zeroer).IsZero() } - if kind == reflect.Struct { + switch kind { + case reflect.Array, reflect.Map, reflect.Slice, reflect.String: + return v.Len() == 0 + case reflect.Struct: if !omitZeroStruct { return false } @@ -410,7 +428,7 @@ func isZero(v reflect.Value, omitZeroStruct bool) bool { if ff.PkgPath != "" && !ff.Anonymous { continue // Private field } - if !isZero(v.Field(i), omitZeroStruct) { + if !isEmpty(v.Field(i), omitZeroStruct) { return false } } diff --git a/vendor/go.mongodb.org/mongo-driver/bson/bsoncodec/time_codec.go b/vendor/go.mongodb.org/mongo-driver/bson/bsoncodec/time_codec.go index 7b005a995..22fb762c4 100644 --- a/vendor/go.mongodb.org/mongo-driver/bson/bsoncodec/time_codec.go +++ b/vendor/go.mongodb.org/mongo-driver/bson/bsoncodec/time_codec.go @@ -23,12 +23,26 @@ const ( // TimeCodec is the Codec used for time.Time values. // -// Deprecated: Use [go.mongodb.org/mongo-driver/bson.NewRegistry] to get a registry with the -// TimeCodec registered. +// Deprecated: TimeCodec will not be directly configurable in Go Driver 2.0. +// To configure the time.Time encode and decode behavior, use the configuration +// methods on a [go.mongodb.org/mongo-driver/bson.Encoder] or +// [go.mongodb.org/mongo-driver/bson.Decoder]. To configure the time.Time encode +// and decode behavior for a mongo.Client, use +// [go.mongodb.org/mongo-driver/mongo/options.ClientOptions.SetBSONOptions]. +// +// For example, to configure a mongo.Client to ..., use: +// +// opt := options.Client().SetBSONOptions(&options.BSONOptions{ +// UseLocalTimeZone: true, +// }) +// +// See the deprecation notice for each field in TimeCodec for the corresponding +// settings. type TimeCodec struct { // UseLocalTimeZone specifies if we should decode into the local time zone. Defaults to false. // - // Deprecated: Use bson.Decoder.UseLocalTimeZone instead. + // Deprecated: Use bson.Decoder.UseLocalTimeZone or options.BSONOptions.UseLocalTimeZone + // instead. UseLocalTimeZone bool } @@ -42,8 +56,8 @@ var ( // NewTimeCodec returns a TimeCodec with options opts. // -// Deprecated: Use [go.mongodb.org/mongo-driver/bson.NewRegistry] to get a registry with the -// TimeCodec registered. +// Deprecated: NewTimeCodec will not be available in Go Driver 2.0. See +// [TimeCodec] for more details. func NewTimeCodec(opts ...*bsonoptions.TimeCodecOptions) *TimeCodec { timeOpt := bsonoptions.MergeTimeCodecOptions(opts...) diff --git a/vendor/go.mongodb.org/mongo-driver/bson/bsoncodec/uint_codec.go b/vendor/go.mongodb.org/mongo-driver/bson/bsoncodec/uint_codec.go index 7eb106905..852547276 100644 --- a/vendor/go.mongodb.org/mongo-driver/bson/bsoncodec/uint_codec.go +++ b/vendor/go.mongodb.org/mongo-driver/bson/bsoncodec/uint_codec.go @@ -18,13 +18,27 @@ import ( // UIntCodec is the Codec used for uint values. // -// Deprecated: Use [go.mongodb.org/mongo-driver/bson.NewRegistry] to get a registry with the -// UIntCodec registered. +// Deprecated: UIntCodec will not be directly configurable in Go Driver 2.0. To +// configure the uint encode and decode behavior, use the configuration methods +// on a [go.mongodb.org/mongo-driver/bson.Encoder] or +// [go.mongodb.org/mongo-driver/bson.Decoder]. To configure the uint encode and +// decode behavior for a mongo.Client, use +// [go.mongodb.org/mongo-driver/mongo/options.ClientOptions.SetBSONOptions]. +// +// For example, to configure a mongo.Client to marshal Go uint values as the +// minimum BSON int size that can represent the value, use: +// +// opt := options.Client().SetBSONOptions(&options.BSONOptions{ +// IntMinSize: true, +// }) +// +// See the deprecation notice for each field in UIntCodec for the corresponding +// settings. type UIntCodec struct { // EncodeToMinSize causes EncodeValue to marshal Go uint values (excluding uint64) as the // minimum BSON int size (either 32-bit or 64-bit) that can represent the integer value. // - // Deprecated: Use bson.Encoder.IntMinSize instead. + // Deprecated: Use bson.Encoder.IntMinSize or options.BSONOptions.IntMinSize instead. EncodeToMinSize bool } @@ -38,8 +52,8 @@ var ( // NewUIntCodec returns a UIntCodec with options opts. // -// Deprecated: Use [go.mongodb.org/mongo-driver/bson.NewRegistry] to get a registry with the -// UIntCodec registered. +// Deprecated: NewUIntCodec will not be available in Go Driver 2.0. See +// [UIntCodec] for more details. func NewUIntCodec(opts ...*bsonoptions.UIntCodecOptions) *UIntCodec { uintOpt := bsonoptions.MergeUIntCodecOptions(opts...) diff --git a/vendor/go.mongodb.org/mongo-driver/bson/bsonrw/copier.go b/vendor/go.mongodb.org/mongo-driver/bson/bsonrw/copier.go index 4d279b7fe..1e25570b8 100644 --- a/vendor/go.mongodb.org/mongo-driver/bson/bsonrw/copier.go +++ b/vendor/go.mongodb.org/mongo-driver/bson/bsonrw/copier.go @@ -7,6 +7,7 @@ package bsonrw import ( + "errors" "fmt" "io" @@ -442,7 +443,7 @@ func (c Copier) copyArray(dst ValueWriter, src ValueReader) error { for { vr, err := ar.ReadValue() - if err == ErrEOA { + if errors.Is(err, ErrEOA) { break } if err != nil { @@ -466,7 +467,7 @@ func (c Copier) copyArray(dst ValueWriter, src ValueReader) error { func (c Copier) copyDocumentCore(dw DocumentWriter, dr DocumentReader) error { for { key, vr, err := dr.ReadElement() - if err == ErrEOD { + if errors.Is(err, ErrEOD) { break } if err != nil { diff --git a/vendor/go.mongodb.org/mongo-driver/bson/bsonrw/extjson_parser.go b/vendor/go.mongodb.org/mongo-driver/bson/bsonrw/extjson_parser.go index 54c76bf74..bb52a0ec3 100644 --- a/vendor/go.mongodb.org/mongo-driver/bson/bsonrw/extjson_parser.go +++ b/vendor/go.mongodb.org/mongo-driver/bson/bsonrw/extjson_parser.go @@ -313,7 +313,7 @@ func (ejp *extJSONParser) readValue(t bsontype.Type) (*extJSONValue, error) { // convert hex to bytes bytes, err := hex.DecodeString(uuidNoHyphens) if err != nil { - return nil, fmt.Errorf("$uuid value does not follow RFC 4122 format regarding hex bytes: %v", err) + return nil, fmt.Errorf("$uuid value does not follow RFC 4122 format regarding hex bytes: %w", err) } ejp.advanceState() diff --git a/vendor/go.mongodb.org/mongo-driver/bson/bsonrw/extjson_reader.go b/vendor/go.mongodb.org/mongo-driver/bson/bsonrw/extjson_reader.go index 2aca37a91..59ddfc448 100644 --- a/vendor/go.mongodb.org/mongo-driver/bson/bsonrw/extjson_reader.go +++ b/vendor/go.mongodb.org/mongo-driver/bson/bsonrw/extjson_reader.go @@ -7,6 +7,7 @@ package bsonrw import ( + "errors" "fmt" "io" "sync" @@ -613,7 +614,7 @@ func (ejvr *extJSONValueReader) ReadElement() (string, ValueReader, error) { name, t, err := ejvr.p.readKey() if err != nil { - if err == ErrEOD { + if errors.Is(err, ErrEOD) { if ejvr.stack[ejvr.frame].mode == mCodeWithScope { _, err := ejvr.p.peekType() if err != nil { @@ -640,7 +641,7 @@ func (ejvr *extJSONValueReader) ReadValue() (ValueReader, error) { t, err := ejvr.p.peekType() if err != nil { - if err == ErrEOA { + if errors.Is(err, ErrEOA) { ejvr.pop() } diff --git a/vendor/go.mongodb.org/mongo-driver/bson/bsonrw/json_scanner.go b/vendor/go.mongodb.org/mongo-driver/bson/bsonrw/json_scanner.go index cd4843a3a..43f3e4f38 100644 --- a/vendor/go.mongodb.org/mongo-driver/bson/bsonrw/json_scanner.go +++ b/vendor/go.mongodb.org/mongo-driver/bson/bsonrw/json_scanner.go @@ -58,7 +58,7 @@ func (js *jsonScanner) nextToken() (*jsonToken, error) { c, err = js.readNextByte() } - if err == io.EOF { + if errors.Is(err, io.EOF) { return &jsonToken{t: jttEOF}, nil } else if err != nil { return nil, err @@ -198,7 +198,7 @@ func (js *jsonScanner) scanString() (*jsonToken, error) { for { c, err = js.readNextByte() if err != nil { - if err == io.EOF { + if errors.Is(err, io.EOF) { return nil, errors.New("end of input in JSON string") } return nil, err @@ -209,7 +209,7 @@ func (js *jsonScanner) scanString() (*jsonToken, error) { case '\\': c, err = js.readNextByte() if err != nil { - if err == io.EOF { + if errors.Is(err, io.EOF) { return nil, errors.New("end of input in JSON string") } return nil, err @@ -248,7 +248,7 @@ func (js *jsonScanner) scanString() (*jsonToken, error) { if utf16.IsSurrogate(rn) { c, err = js.readNextByte() if err != nil { - if err == io.EOF { + if errors.Is(err, io.EOF) { return nil, errors.New("end of input in JSON string") } return nil, err @@ -264,7 +264,7 @@ func (js *jsonScanner) scanString() (*jsonToken, error) { c, err = js.readNextByte() if err != nil { - if err == io.EOF { + if errors.Is(err, io.EOF) { return nil, errors.New("end of input in JSON string") } return nil, err @@ -325,17 +325,17 @@ func (js *jsonScanner) scanLiteral(first byte) (*jsonToken, error) { c5, err := js.readNextByte() - if bytes.Equal([]byte("true"), lit) && (isValueTerminator(c5) || err == io.EOF) { + if bytes.Equal([]byte("true"), lit) && (isValueTerminator(c5) || errors.Is(err, io.EOF)) { js.pos = int(math.Max(0, float64(js.pos-1))) return &jsonToken{t: jttBool, v: true, p: p}, nil - } else if bytes.Equal([]byte("null"), lit) && (isValueTerminator(c5) || err == io.EOF) { + } else if bytes.Equal([]byte("null"), lit) && (isValueTerminator(c5) || errors.Is(err, io.EOF)) { js.pos = int(math.Max(0, float64(js.pos-1))) return &jsonToken{t: jttNull, v: nil, p: p}, nil } else if bytes.Equal([]byte("fals"), lit) { if c5 == 'e' { c5, err = js.readNextByte() - if isValueTerminator(c5) || err == io.EOF { + if isValueTerminator(c5) || errors.Is(err, io.EOF) { js.pos = int(math.Max(0, float64(js.pos-1))) return &jsonToken{t: jttBool, v: false, p: p}, nil } @@ -384,7 +384,7 @@ func (js *jsonScanner) scanNumber(first byte) (*jsonToken, error) { for { c, err = js.readNextByte() - if err != nil && err != io.EOF { + if err != nil && !errors.Is(err, io.EOF) { return nil, err } @@ -413,7 +413,7 @@ func (js *jsonScanner) scanNumber(first byte) (*jsonToken, error) { case '}', ']', ',': s = nssDone default: - if isWhiteSpace(c) || err == io.EOF { + if isWhiteSpace(c) || errors.Is(err, io.EOF) { s = nssDone } else { s = nssInvalid @@ -430,7 +430,7 @@ func (js *jsonScanner) scanNumber(first byte) (*jsonToken, error) { case '}', ']', ',': s = nssDone default: - if isWhiteSpace(c) || err == io.EOF { + if isWhiteSpace(c) || errors.Is(err, io.EOF) { s = nssDone } else if isDigit(c) { s = nssSawIntegerDigits @@ -455,7 +455,7 @@ func (js *jsonScanner) scanNumber(first byte) (*jsonToken, error) { case '}', ']', ',': s = nssDone default: - if isWhiteSpace(c) || err == io.EOF { + if isWhiteSpace(c) || errors.Is(err, io.EOF) { s = nssDone } else if isDigit(c) { s = nssSawFractionDigits @@ -490,7 +490,7 @@ func (js *jsonScanner) scanNumber(first byte) (*jsonToken, error) { case '}', ']', ',': s = nssDone default: - if isWhiteSpace(c) || err == io.EOF { + if isWhiteSpace(c) || errors.Is(err, io.EOF) { s = nssDone } else if isDigit(c) { s = nssSawExponentDigits diff --git a/vendor/go.mongodb.org/mongo-driver/bson/doc.go b/vendor/go.mongodb.org/mongo-driver/bson/doc.go index 048b5eb99..af6098475 100644 --- a/vendor/go.mongodb.org/mongo-driver/bson/doc.go +++ b/vendor/go.mongodb.org/mongo-driver/bson/doc.go @@ -6,9 +6,9 @@ // Package bson is a library for reading, writing, and manipulating BSON. BSON is a binary serialization format used to // store documents and make remote procedure calls in MongoDB. The BSON specification is located at https://bsonspec.org. -// The BSON library handles marshalling and unmarshalling of values through a configurable codec system. For a description -// of the codec system and examples of registering custom codecs, see the bsoncodec package. For additional information and -// usage examples, check out the [Work with BSON] page in the Go Driver docs site. +// The BSON library handles marshaling and unmarshaling of values through a configurable codec system. For a description +// of the codec system and examples of registering custom codecs, see the bsoncodec package. For additional information +// and usage examples, check out the [Work with BSON] page in the Go Driver docs site. // // # Raw BSON // @@ -38,7 +38,7 @@ // bson.D{{"foo", "bar"}, {"hello", "world"}, {"pi", 3.14159}} // bson.M{"foo": "bar", "hello": "world", "pi": 3.14159} // -// When decoding BSON to a D or M, the following type mappings apply when unmarshalling: +// When decoding BSON to a D or M, the following type mappings apply when unmarshaling: // // 1. BSON int32 unmarshals to an int32. // 2. BSON int64 unmarshals to an int64. @@ -62,83 +62,78 @@ // 20. BSON DBPointer unmarshals to a primitive.DBPointer. // 21. BSON symbol unmarshals to a primitive.Symbol. // -// The above mappings also apply when marshalling a D or M to BSON. Some other useful marshalling mappings are: +// The above mappings also apply when marshaling a D or M to BSON. Some other useful marshaling mappings are: // // 1. time.Time marshals to a BSON datetime. // 2. int8, int16, and int32 marshal to a BSON int32. // 3. int marshals to a BSON int32 if the value is between math.MinInt32 and math.MaxInt32, inclusive, and a BSON int64 // otherwise. -// 4. int64 marshals to BSON int64. +// 4. int64 marshals to BSON int64 (unless [Encoder.IntMinSize] is set). // 5. uint8 and uint16 marshal to a BSON int32. -// 6. uint, uint32, and uint64 marshal to a BSON int32 if the value is between math.MinInt32 and math.MaxInt32, -// inclusive, and BSON int64 otherwise. -// 7. BSON null and undefined values will unmarshal into the zero value of a field (e.g. unmarshalling a BSON null or +// 6. uint, uint32, and uint64 marshal to a BSON int64 (unless [Encoder.IntMinSize] is set). +// 7. BSON null and undefined values will unmarshal into the zero value of a field (e.g. unmarshaling a BSON null or // undefined value into a string will yield the empty string.). // // # Structs // -// Structs can be marshalled/unmarshalled to/from BSON or Extended JSON. When transforming structs to/from BSON or Extended +// Structs can be marshaled/unmarshaled to/from BSON or Extended JSON. When transforming structs to/from BSON or Extended // JSON, the following rules apply: // -// 1. Only exported fields in structs will be marshalled or unmarshalled. +// 1. Only exported fields in structs will be marshaled or unmarshaled. // -// 2. When marshalling a struct, each field will be lowercased to generate the key for the corresponding BSON element. +// 2. When marshaling a struct, each field will be lowercased to generate the key for the corresponding BSON element. // For example, a struct field named "Foo" will generate key "foo". This can be overridden via a struct tag (e.g. // `bson:"fooField"` to generate key "fooField" instead). // -// 3. An embedded struct field is marshalled as a subdocument. The key will be the lowercased name of the field's type. +// 3. An embedded struct field is marshaled as a subdocument. The key will be the lowercased name of the field's type. // -// 4. A pointer field is marshalled as the underlying type if the pointer is non-nil. If the pointer is nil, it is -// marshalled as a BSON null value. +// 4. A pointer field is marshaled as the underlying type if the pointer is non-nil. If the pointer is nil, it is +// marshaled as a BSON null value. // -// 5. When unmarshalling, a field of type interface{} will follow the D/M type mappings listed above. BSON documents -// unmarshalled into an interface{} field will be unmarshalled as a D. +// 5. When unmarshaling, a field of type interface{} will follow the D/M type mappings listed above. BSON documents +// unmarshaled into an interface{} field will be unmarshaled as a D. // // The encoding of each struct field can be customized by the "bson" struct tag. // // This tag behavior is configurable, and different struct tag behavior can be configured by initializing a new -// bsoncodec.StructCodec with the desired tag parser and registering that StructCodec onto the Registry. By default, JSON tags -// are not honored, but that can be enabled by creating a StructCodec with JSONFallbackStructTagParser, like below: +// bsoncodec.StructCodec with the desired tag parser and registering that StructCodec onto the Registry. By default, JSON +// tags are not honored, but that can be enabled by creating a StructCodec with JSONFallbackStructTagParser, like below: // // Example: // // structcodec, _ := bsoncodec.NewStructCodec(bsoncodec.JSONFallbackStructTagParser) // // The bson tag gives the name of the field, possibly followed by a comma-separated list of options. -// The name may be empty in order to specify options without overriding the default field name. The following options can be used -// to configure behavior: -// -// 1. omitempty: If the omitempty struct tag is specified on a field, the field will not be marshalled if it is set to -// the zero value. Fields with language primitive types such as integers, booleans, and strings are considered empty if -// their value is equal to the zero value for the type (i.e. 0 for integers, false for booleans, and "" for strings). -// Slices, maps, and arrays are considered empty if they are of length zero. Interfaces and pointers are considered -// empty if their value is nil. By default, structs are only considered empty if the struct type implements the -// bsoncodec.Zeroer interface and the IsZero method returns true. Struct fields whose types do not implement Zeroer are -// never considered empty and will be marshalled as embedded documents. +// The name may be empty in order to specify options without overriding the default field name. The following options can +// be used to configure behavior: +// +// 1. omitempty: If the omitempty struct tag is specified on a field, the field will be omitted from the marshaling if +// the field has an empty value, defined as false, 0, a nil pointer, a nil interface value, and any empty array, +// slice, map, or string. // NOTE: It is recommended that this tag be used for all slice and map fields. // // 2. minsize: If the minsize struct tag is specified on a field of type int64, uint, uint32, or uint64 and the value of -// the field can fit in a signed int32, the field will be serialized as a BSON int32 rather than a BSON int64. For other -// types, this tag is ignored. +// the field can fit in a signed int32, the field will be serialized as a BSON int32 rather than a BSON int64. For +// other types, this tag is ignored. // -// 3. truncate: If the truncate struct tag is specified on a field with a non-float numeric type, BSON doubles unmarshalled -// into that field will be truncated at the decimal point. For example, if 3.14 is unmarshalled into a field of type int, -// it will be unmarshalled as 3. If this tag is not specified, the decoder will throw an error if the value cannot be -// decoded without losing precision. For float64 or non-numeric types, this tag is ignored. +// 3. truncate: If the truncate struct tag is specified on a field with a non-float numeric type, BSON doubles +// unmarshaled into that field will be truncated at the decimal point. For example, if 3.14 is unmarshaled into a +// field of type int, it will be unmarshaled as 3. If this tag is not specified, the decoder will throw an error if +// the value cannot be decoded without losing precision. For float64 or non-numeric types, this tag is ignored. // // 4. inline: If the inline struct tag is specified for a struct or map field, the field will be "flattened" when -// marshalling and "un-flattened" when unmarshalling. This means that all of the fields in that struct/map will be -// pulled up one level and will become top-level fields rather than being fields in a nested document. For example, if a -// map field named "Map" with value map[string]interface{}{"foo": "bar"} is inlined, the resulting document will be -// {"foo": "bar"} instead of {"map": {"foo": "bar"}}. There can only be one inlined map field in a struct. If there are -// duplicated fields in the resulting document when an inlined struct is marshalled, the inlined field will be overwritten. -// If there are duplicated fields in the resulting document when an inlined map is marshalled, an error will be returned. -// This tag can be used with fields that are pointers to structs. If an inlined pointer field is nil, it will not be -// marshalled. For fields that are not maps or structs, this tag is ignored. -// -// # Marshalling and Unmarshalling -// -// Manually marshalling and unmarshalling can be done with the Marshal and Unmarshal family of functions. +// marshaling and "un-flattened" when unmarshaling. This means that all of the fields in that struct/map will be +// pulled up one level and will become top-level fields rather than being fields in a nested document. For example, +// if a map field named "Map" with value map[string]interface{}{"foo": "bar"} is inlined, the resulting document will +// be {"foo": "bar"} instead of {"map": {"foo": "bar"}}. There can only be one inlined map field in a struct. If +// there are duplicated fields in the resulting document when an inlined struct is marshaled, the inlined field will +// be overwritten. If there are duplicated fields in the resulting document when an inlined map is marshaled, an +// error will be returned. This tag can be used with fields that are pointers to structs. If an inlined pointer field +// is nil, it will not be marshaled. For fields that are not maps or structs, this tag is ignored. +// +// # Marshaling and Unmarshaling +// +// Manually marshaling and unmarshaling can be done with the Marshal and Unmarshal family of functions. // // [Work with BSON]: https://www.mongodb.com/docs/drivers/go/current/fundamentals/bson/ package bson diff --git a/vendor/go.mongodb.org/mongo-driver/bson/primitive/decimal.go b/vendor/go.mongodb.org/mongo-driver/bson/primitive/decimal.go index 24ab58fc4..08c39514b 100644 --- a/vendor/go.mongodb.org/mongo-driver/bson/primitive/decimal.go +++ b/vendor/go.mongodb.org/mongo-driver/bson/primitive/decimal.go @@ -164,9 +164,6 @@ func (d Decimal128) BigInt() (*big.Int, int, error) { // Would be handled by the logic below, but that's trivial and common. if high == 0 && low == 0 && exp == 0 { - if posSign { - return new(big.Int), 0, nil - } return new(big.Int), 0, nil } diff --git a/vendor/go.mongodb.org/mongo-driver/bson/primitive/objectid.go b/vendor/go.mongodb.org/mongo-driver/bson/primitive/objectid.go index 9bbaffac2..c130e3ff1 100644 --- a/vendor/go.mongodb.org/mongo-driver/bson/primitive/objectid.go +++ b/vendor/go.mongodb.org/mongo-driver/bson/primitive/objectid.go @@ -183,7 +183,7 @@ func processUniqueBytes() [5]byte { var b [5]byte _, err := io.ReadFull(rand.Reader, b[:]) if err != nil { - panic(fmt.Errorf("cannot initialize objectid package with crypto.rand.Reader: %v", err)) + panic(fmt.Errorf("cannot initialize objectid package with crypto.rand.Reader: %w", err)) } return b @@ -193,7 +193,7 @@ func readRandomUint32() uint32 { var b [4]byte _, err := io.ReadFull(rand.Reader, b[:]) if err != nil { - panic(fmt.Errorf("cannot initialize objectid package with crypto.rand.Reader: %v", err)) + panic(fmt.Errorf("cannot initialize objectid package with crypto.rand.Reader: %w", err)) } return (uint32(b[0]) << 0) | (uint32(b[1]) << 8) | (uint32(b[2]) << 16) | (uint32(b[3]) << 24) diff --git a/vendor/go.mongodb.org/mongo-driver/event/monitoring.go b/vendor/go.mongodb.org/mongo-driver/event/monitoring.go index 53d1caf2e..cc2c7a4e6 100644 --- a/vendor/go.mongodb.org/mongo-driver/event/monitoring.go +++ b/vendor/go.mongodb.org/mongo-driver/event/monitoring.go @@ -120,8 +120,9 @@ type PoolEvent struct { Reason string `json:"reason"` // ServiceID is only set if the Type is PoolCleared and the server is deployed behind a load balancer. This field // can be used to distinguish between individual servers in a load balanced deployment. - ServiceID *primitive.ObjectID `json:"serviceId"` - Error error `json:"error"` + ServiceID *primitive.ObjectID `json:"serviceId"` + Interruption bool `json:"interruptInUseConnections"` + Error error `json:"error"` } // PoolMonitor is a function that allows the user to gain access to events occurring in the pool diff --git a/vendor/go.mongodb.org/mongo-driver/internal/csfle/csfle.go b/vendor/go.mongodb.org/mongo-driver/internal/csfle/csfle.go index 71e71b468..20a6d43a0 100644 --- a/vendor/go.mongodb.org/mongo-driver/internal/csfle/csfle.go +++ b/vendor/go.mongodb.org/mongo-driver/internal/csfle/csfle.go @@ -7,6 +7,7 @@ package csfle import ( + "errors" "fmt" "go.mongodb.org/mongo-driver/x/bsonx/bsoncore" @@ -23,7 +24,7 @@ func GetEncryptedStateCollectionName(efBSON bsoncore.Document, dataCollectionNam fieldName := stateCollection + "Collection" val, err := efBSON.LookupErr(fieldName) if err != nil { - if err != bsoncore.ErrElementNotFound { + if !errors.Is(err, bsoncore.ErrElementNotFound) { return "", err } // Return default name. diff --git a/vendor/go.mongodb.org/mongo-driver/internal/logger/logger.go b/vendor/go.mongodb.org/mongo-driver/internal/logger/logger.go index 03d42814f..2250286e4 100644 --- a/vendor/go.mongodb.org/mongo-driver/internal/logger/logger.go +++ b/vendor/go.mongodb.org/mongo-driver/internal/logger/logger.go @@ -183,7 +183,7 @@ func selectLogSink(sink LogSink) (LogSink, *os.File, error) { if path != "" { logFile, err := os.OpenFile(path, os.O_APPEND|os.O_CREATE|os.O_RDWR, 0666) if err != nil { - return nil, nil, fmt.Errorf("unable to open log file: %v", err) + return nil, nil, fmt.Errorf("unable to open log file: %w", err) } return NewIOSink(logFile), logFile, nil diff --git a/vendor/go.mongodb.org/mongo-driver/mongo/bulk_write.go b/vendor/go.mongodb.org/mongo-driver/mongo/bulk_write.go index 42d286ea7..3fdb67b9a 100644 --- a/vendor/go.mongodb.org/mongo-driver/mongo/bulk_write.go +++ b/vendor/go.mongodb.org/mongo-driver/mongo/bulk_write.go @@ -8,6 +8,7 @@ package mongo import ( "context" + "errors" "go.mongodb.org/mongo-driver/bson/bsoncodec" "go.mongodb.org/mongo-driver/bson/primitive" @@ -71,7 +72,7 @@ func (bw *bulkWrite) execute(ctx context.Context) error { bwErr.WriteErrors = append(bwErr.WriteErrors, batchErr.WriteErrors...) - commandErrorOccurred := err != nil && err != driver.ErrUnacknowledgedWrite + commandErrorOccurred := err != nil && !errors.Is(err, driver.ErrUnacknowledgedWrite) writeErrorOccurred := len(batchErr.WriteErrors) > 0 || batchErr.WriteConcernError != nil if !continueOnError && (commandErrorOccurred || writeErrorOccurred) { if err != nil { @@ -108,8 +109,8 @@ func (bw *bulkWrite) runBatch(ctx context.Context, batch bulkWriteBatch) (BulkWr case *InsertOneModel: res, err := bw.runInsert(ctx, batch) if err != nil { - writeErr, ok := err.(driver.WriteCommandError) - if !ok { + var writeErr driver.WriteCommandError + if !errors.As(err, &writeErr) { return BulkWriteResult{}, batchErr, err } writeErrors = writeErr.WriteErrors @@ -120,8 +121,8 @@ func (bw *bulkWrite) runBatch(ctx context.Context, batch bulkWriteBatch) (BulkWr case *DeleteOneModel, *DeleteManyModel: res, err := bw.runDelete(ctx, batch) if err != nil { - writeErr, ok := err.(driver.WriteCommandError) - if !ok { + var writeErr driver.WriteCommandError + if !errors.As(err, &writeErr) { return BulkWriteResult{}, batchErr, err } writeErrors = writeErr.WriteErrors @@ -132,8 +133,8 @@ func (bw *bulkWrite) runBatch(ctx context.Context, batch bulkWriteBatch) (BulkWr case *ReplaceOneModel, *UpdateOneModel, *UpdateManyModel: res, err := bw.runUpdate(ctx, batch) if err != nil { - writeErr, ok := err.(driver.WriteCommandError) - if !ok { + var writeErr driver.WriteCommandError + if !errors.As(err, &writeErr) { return BulkWriteResult{}, batchErr, err } writeErrors = writeErr.WriteErrors @@ -170,7 +171,7 @@ func (bw *bulkWrite) runInsert(ctx context.Context, batch bulkWriteBatch) (opera if err != nil { return operation.InsertResult{}, err } - doc, _, err = ensureID(doc, primitive.NewObjectID(), bw.collection.bsonOpts, bw.collection.registry) + doc, _, err = ensureID(doc, primitive.NilObjectID, bw.collection.bsonOpts, bw.collection.registry) if err != nil { return operation.InsertResult{}, err } diff --git a/vendor/go.mongodb.org/mongo-driver/mongo/change_stream.go b/vendor/go.mongodb.org/mongo-driver/mongo/change_stream.go index 773cbb0e5..c4c2fb259 100644 --- a/vendor/go.mongodb.org/mongo-driver/mongo/change_stream.go +++ b/vendor/go.mongodb.org/mongo-driver/mongo/change_stream.go @@ -689,8 +689,8 @@ func (cs *ChangeStream) loopNext(ctx context.Context, nonBlocking bool) { } func (cs *ChangeStream) isResumableError() bool { - commandErr, ok := cs.err.(CommandError) - if !ok || commandErr.HasErrorLabel(networkErrorLabel) { + var commandErr CommandError + if !errors.As(cs.err, &commandErr) || commandErr.HasErrorLabel(networkErrorLabel) { // All non-server errors or network errors are resumable. return true } diff --git a/vendor/go.mongodb.org/mongo-driver/mongo/client.go b/vendor/go.mongodb.org/mongo-driver/mongo/client.go index 592927483..280749c7d 100644 --- a/vendor/go.mongodb.org/mongo-driver/mongo/client.go +++ b/vendor/go.mongodb.org/mongo-driver/mongo/client.go @@ -555,7 +555,7 @@ func (c *Client) newMongoCrypt(opts *options.AutoEncryptionOptions) (*mongocrypt kmsProviders, err := marshal(opts.KmsProviders, c.bsonOpts, c.registry) if err != nil { - return nil, fmt.Errorf("error creating KMS providers document: %v", err) + return nil, fmt.Errorf("error creating KMS providers document: %w", err) } // Set the crypt_shared library override path from the "cryptSharedLibPath" extra option if one diff --git a/vendor/go.mongodb.org/mongo-driver/mongo/client_encryption.go b/vendor/go.mongodb.org/mongo-driver/mongo/client_encryption.go index 01c2ec319..b51f57b47 100644 --- a/vendor/go.mongodb.org/mongo-driver/mongo/client_encryption.go +++ b/vendor/go.mongodb.org/mongo-driver/mongo/client_encryption.go @@ -46,7 +46,7 @@ func NewClientEncryption(keyVaultClient *Client, opts ...*options.ClientEncrypti kmsProviders, err := marshal(ceo.KmsProviders, nil, nil) if err != nil { - return nil, fmt.Errorf("error creating KMS providers map: %v", err) + return nil, fmt.Errorf("error creating KMS providers map: %w", err) } mc, err := mongocrypt.NewMongoCrypt(mcopts.MongoCrypt(). diff --git a/vendor/go.mongodb.org/mongo-driver/mongo/collection.go b/vendor/go.mongodb.org/mongo-driver/mongo/collection.go index fcbfcc77a..c7b2a8a11 100644 --- a/vendor/go.mongodb.org/mongo-driver/mongo/collection.go +++ b/vendor/go.mongodb.org/mongo-driver/mongo/collection.go @@ -256,7 +256,7 @@ func (coll *Collection) insert(ctx context.Context, documents []interface{}, if err != nil { return nil, err } - bsoncoreDoc, id, err := ensureID(bsoncoreDoc, primitive.NewObjectID(), coll.bsonOpts, coll.registry) + bsoncoreDoc, id, err := ensureID(bsoncoreDoc, primitive.NilObjectID, coll.bsonOpts, coll.registry) if err != nil { return nil, err } @@ -313,8 +313,8 @@ func (coll *Collection) insert(ctx context.Context, documents []interface{}, op = op.Retry(retry) err = op.Execute(ctx) - wce, ok := err.(driver.WriteCommandError) - if !ok { + var wce driver.WriteCommandError + if !errors.As(err, &wce) { return result, err } @@ -388,8 +388,8 @@ func (coll *Collection) InsertMany(ctx context.Context, documents []interface{}, } imResult := &InsertManyResult{InsertedIDs: result} - writeException, ok := err.(WriteException) - if !ok { + var writeException WriteException + if !errors.As(err, &writeException) { return imResult, err } @@ -1806,7 +1806,7 @@ func (coll *Collection) Drop(ctx context.Context) error { func (coll *Collection) dropEncryptedCollection(ctx context.Context, ef interface{}) error { efBSON, err := marshal(ef, coll.bsonOpts, coll.registry) if err != nil { - return fmt.Errorf("error transforming document: %v", err) + return fmt.Errorf("error transforming document: %w", err) } // Drop the two encryption-related, associated collections: `escCollection` and `ecocCollection`. diff --git a/vendor/go.mongodb.org/mongo-driver/mongo/cursor.go b/vendor/go.mongodb.org/mongo-driver/mongo/cursor.go index d2228ed9c..c77d1109f 100644 --- a/vendor/go.mongodb.org/mongo-driver/mongo/cursor.go +++ b/vendor/go.mongodb.org/mongo-driver/mongo/cursor.go @@ -160,13 +160,13 @@ func (c *Cursor) next(ctx context.Context, nonBlocking bool) bool { ctx = context.Background() } doc, err := c.batch.Next() - switch err { - case nil: + switch { + case err == nil: // Consume the next document in the current batch. c.batchLength-- c.Current = bson.Raw(doc) return true - case io.EOF: // Need to do a getMore + case errors.Is(err, io.EOF): // Need to do a getMore default: c.err = err return false @@ -204,12 +204,12 @@ func (c *Cursor) next(ctx context.Context, nonBlocking bool) bool { c.batch = c.bc.Batch() c.batchLength = c.batch.DocumentCount() doc, err = c.batch.Next() - switch err { - case nil: + switch { + case err == nil: c.batchLength-- c.Current = bson.Raw(doc) return true - case io.EOF: // Empty batch so we continue + case errors.Is(err, io.EOF): // Empty batch so we continue default: c.err = err return false diff --git a/vendor/go.mongodb.org/mongo-driver/mongo/database.go b/vendor/go.mongodb.org/mongo-driver/mongo/database.go index 6760f0d01..c5cda9e5b 100644 --- a/vendor/go.mongodb.org/mongo-driver/mongo/database.go +++ b/vendor/go.mongodb.org/mongo-driver/mongo/database.go @@ -566,7 +566,7 @@ func (db *Database) getEncryptedFieldsFromServer(ctx context.Context, collection } collSpec := collSpecs[0] rawValue, err := collSpec.Options.LookupErr("encryptedFields") - if err == bsoncore.ErrElementNotFound { + if errors.Is(err, bsoncore.ErrElementNotFound) { return nil, nil } else if err != nil { return nil, err @@ -602,7 +602,7 @@ func (db *Database) getEncryptedFieldsFromMap(collectionName string) interface{} func (db *Database) createCollectionWithEncryptedFields(ctx context.Context, name string, ef interface{}, opts ...*options.CreateCollectionOptions) error { efBSON, err := marshal(ef, db.bsonOpts, db.registry) if err != nil { - return fmt.Errorf("error transforming document: %v", err) + return fmt.Errorf("error transforming document: %w", err) } // Check the wire version to ensure server is 7.0.0 or newer. @@ -662,7 +662,7 @@ func (db *Database) createCollectionWithEncryptedFields(ctx context.Context, nam // Create an index on the __safeContent__ field in the collection @collectionName. if _, err := db.Collection(name).Indexes().CreateOne(ctx, IndexModel{Keys: bson.D{{"__safeContent__", 1}}}); err != nil { - return fmt.Errorf("error creating safeContent index: %v", err) + return fmt.Errorf("error creating safeContent index: %w", err) } return nil diff --git a/vendor/go.mongodb.org/mongo-driver/mongo/description/server_selector.go b/vendor/go.mongodb.org/mongo-driver/mongo/description/server_selector.go index aee1f050c..176f0fb53 100644 --- a/vendor/go.mongodb.org/mongo-driver/mongo/description/server_selector.go +++ b/vendor/go.mongodb.org/mongo-driver/mongo/description/server_selector.go @@ -182,7 +182,17 @@ func (writeServerSelector) SelectServer(t Topology, candidates []Server) ([]Serv case Single, LoadBalanced: return candidates, nil default: - result := []Server{} + // Determine the capacity of the results slice. + selected := 0 + for _, candidate := range candidates { + switch candidate.Kind { + case Mongos, RSPrimary, Standalone: + selected++ + } + } + + // Append candidates to the results slice. + result := make([]Server, 0, selected) for _, candidate := range candidates { switch candidate.Kind { case Mongos, RSPrimary, Standalone: diff --git a/vendor/go.mongodb.org/mongo-driver/mongo/errors.go b/vendor/go.mongodb.org/mongo-driver/mongo/errors.go index 72c3bcc24..d92c9ca9b 100644 --- a/vendor/go.mongodb.org/mongo-driver/mongo/errors.go +++ b/vendor/go.mongodb.org/mongo-driver/mongo/errors.go @@ -52,7 +52,7 @@ func replaceErrors(err error) error { return nil } - if err == topology.ErrTopologyClosed { + if errors.Is(err, topology.ErrTopologyClosed) { return ErrClientDisconnected } if de, ok := err.(driver.Error); ok { @@ -630,7 +630,7 @@ const ( // WriteConcernError will be returned over WriteErrors if both are present. func processWriteError(err error) (returnResult, error) { switch { - case err == driver.ErrUnacknowledgedWrite: + case errors.Is(err, driver.ErrUnacknowledgedWrite): return rrAll, ErrUnacknowledgedWrite case err != nil: switch tt := err.(type) { diff --git a/vendor/go.mongodb.org/mongo-driver/mongo/mongo.go b/vendor/go.mongodb.org/mongo-driver/mongo/mongo.go index 393c5b771..ec8e817c7 100644 --- a/vendor/go.mongodb.org/mongo-driver/mongo/mongo.go +++ b/vendor/go.mongodb.org/mongo-driver/mongo/mongo.go @@ -177,8 +177,11 @@ func marshal( } // ensureID inserts the given ObjectID as an element named "_id" at the -// beginning of the given BSON document if there is not an "_id" already. If -// there is already an element named "_id", the document is not modified. It +// beginning of the given BSON document if there is not an "_id" already. +// If the given ObjectID is primitive.NilObjectID, a new object ID will be +// generated with time.Now(). +// +// If there is already an element named "_id", the document is not modified. It // returns the resulting document and the decoded Go value of the "_id" element. func ensureID( doc bsoncore.Document, @@ -219,6 +222,9 @@ func ensureID( const extraSpace = 17 doc = make(bsoncore.Document, 0, len(olddoc)+extraSpace) _, doc = bsoncore.ReserveLength(doc) + if oid.IsZero() { + oid = primitive.NewObjectID() + } doc = bsoncore.AppendObjectIDElement(doc, "_id", oid) // Remove and re-write the BSON document length header. diff --git a/vendor/go.mongodb.org/mongo-driver/mongo/options/clientoptions.go b/vendor/go.mongodb.org/mongo-driver/mongo/options/clientoptions.go index 42664be03..db5674591 100644 --- a/vendor/go.mongodb.org/mongo-driver/mongo/options/clientoptions.go +++ b/vendor/go.mongodb.org/mongo-driver/mongo/options/clientoptions.go @@ -237,7 +237,6 @@ type ClientOptions struct { ZstdLevel *int err error - uri string cs *connstring.ConnString // AuthenticateToAnything skips server type checks when deciding if authentication is possible. @@ -338,7 +337,10 @@ func (c *ClientOptions) validate() error { // GetURI returns the original URI used to configure the ClientOptions instance. If ApplyURI was not called during // construction, this returns "". func (c *ClientOptions) GetURI() string { - return c.uri + if c.cs == nil { + return "" + } + return c.cs.Original } // ApplyURI parses the given URI and sets options accordingly. The URI can contain host names, IPv4/IPv6 literals, or @@ -360,13 +362,12 @@ func (c *ClientOptions) ApplyURI(uri string) *ClientOptions { return c } - c.uri = uri cs, err := connstring.ParseAndValidate(uri) if err != nil { c.err = err return c } - c.cs = &cs + c.cs = cs if cs.AppName != "" { c.AppName = &cs.AppName @@ -1134,9 +1135,6 @@ func MergeClientOptions(opts ...*ClientOptions) *ClientOptions { if opt.err != nil { c.err = opt.err } - if opt.uri != "" { - c.uri = opt.uri - } if opt.cs != nil { c.cs = opt.cs } diff --git a/vendor/go.mongodb.org/mongo-driver/version/version.go b/vendor/go.mongodb.org/mongo-driver/version/version.go index 738d44e6a..13c18479a 100644 --- a/vendor/go.mongodb.org/mongo-driver/version/version.go +++ b/vendor/go.mongodb.org/mongo-driver/version/version.go @@ -8,4 +8,4 @@ package version // import "go.mongodb.org/mongo-driver/version" // Driver is the current version of the driver. -var Driver = "v1.13.1" +var Driver = "v1.14.0" diff --git a/vendor/go.mongodb.org/mongo-driver/x/mongo/driver/auth/sasl.go b/vendor/go.mongodb.org/mongo-driver/x/mongo/driver/auth/sasl.go index a7ae3368f..2a84b53a6 100644 --- a/vendor/go.mongodb.org/mongo-driver/x/mongo/driver/auth/sasl.go +++ b/vendor/go.mongodb.org/mongo-driver/x/mongo/driver/auth/sasl.go @@ -102,7 +102,7 @@ func (sc *saslConversation) Finish(ctx context.Context, cfg *Config, firstRespon var saslResp saslResponse err := bson.Unmarshal(firstResponse, &saslResp) if err != nil { - fullErr := fmt.Errorf("unmarshal error: %v", err) + fullErr := fmt.Errorf("unmarshal error: %w", err) return newError(fullErr, sc.mechanism) } @@ -146,7 +146,7 @@ func (sc *saslConversation) Finish(ctx context.Context, cfg *Config, firstRespon err = bson.Unmarshal(rdr, &saslResp) if err != nil { - fullErr := fmt.Errorf("unmarshal error: %v", err) + fullErr := fmt.Errorf("unmarshal error: %w", err) return newError(fullErr, sc.mechanism) } } diff --git a/vendor/go.mongodb.org/mongo-driver/x/mongo/driver/auth/scram.go b/vendor/go.mongodb.org/mongo-driver/x/mongo/driver/auth/scram.go index f4f069699..c1238cd6a 100644 --- a/vendor/go.mongodb.org/mongo-driver/x/mongo/driver/auth/scram.go +++ b/vendor/go.mongodb.org/mongo-driver/x/mongo/driver/auth/scram.go @@ -14,7 +14,6 @@ package auth import ( "context" - "fmt" "github.com/xdg-go/scram" "github.com/xdg-go/stringprep" @@ -53,7 +52,7 @@ func newScramSHA1Authenticator(cred *Cred) (Authenticator, error) { func newScramSHA256Authenticator(cred *Cred) (Authenticator, error) { passprep, err := stringprep.SASLprep.Prepare(cred.Password) if err != nil { - return nil, newAuthError(fmt.Sprintf("error SASLprepping password '%s'", cred.Password), err) + return nil, newAuthError("error SASLprepping password", err) } client, err := scram.SHA256.NewClientUnprepped(cred.Username, passprep, "") if err != nil { diff --git a/vendor/go.mongodb.org/mongo-driver/x/mongo/driver/batch_cursor.go b/vendor/go.mongodb.org/mongo-driver/x/mongo/driver/batch_cursor.go index fefcfdb47..23b4a6539 100644 --- a/vendor/go.mongodb.org/mongo-driver/x/mongo/driver/batch_cursor.go +++ b/vendor/go.mongodb.org/mongo-driver/x/mongo/driver/batch_cursor.go @@ -79,7 +79,7 @@ type CursorResponse struct { func NewCursorResponse(info ResponseInfo) (CursorResponse, error) { response := info.ServerResponse cur, err := response.LookupErr("cursor") - if err == bsoncore.ErrElementNotFound { + if errors.Is(err, bsoncore.ErrElementNotFound) { return CursorResponse{}, ErrNoCursor } if err != nil { @@ -142,7 +142,7 @@ func NewCursorResponse(info ResponseInfo) (CursorResponse, error) { return CursorResponse{}, fmt.Errorf("expected Connection used to establish a cursor to implement PinnedConnection, but got %T", info.Connection) } if err := refConn.PinToCursor(); err != nil { - return CursorResponse{}, fmt.Errorf("error incrementing connection reference count when creating a cursor: %v", err) + return CursorResponse{}, fmt.Errorf("error incrementing connection reference count when creating a cursor: %w", err) } curresp.Connection = refConn } diff --git a/vendor/go.mongodb.org/mongo-driver/x/mongo/driver/connstring/connstring.go b/vendor/go.mongodb.org/mongo-driver/x/mongo/driver/connstring/connstring.go index cd4313647..52068b8ea 100644 --- a/vendor/go.mongodb.org/mongo-driver/x/mongo/driver/connstring/connstring.go +++ b/vendor/go.mongodb.org/mongo-driver/x/mongo/driver/connstring/connstring.go @@ -73,29 +73,28 @@ var random = randutil.NewLockedRand() // ParseAndValidate parses the provided URI into a ConnString object. // It check that all values are valid. -func ParseAndValidate(s string) (ConnString, error) { - p := parser{dnsResolver: dns.DefaultResolver} - err := p.parse(s) +func ParseAndValidate(s string) (*ConnString, error) { + connStr, err := Parse(s) if err != nil { - return p.ConnString, fmt.Errorf("error parsing uri: %w", err) + return nil, err } - err = p.ConnString.Validate() + err = connStr.Validate() if err != nil { - return p.ConnString, fmt.Errorf("error validating uri: %w", err) + return nil, fmt.Errorf("error validating uri: %w", err) } - return p.ConnString, nil + return connStr, nil } // Parse parses the provided URI into a ConnString object // but does not check that all values are valid. Use `ConnString.Validate()` // to run the validation checks separately. -func Parse(s string) (ConnString, error) { +func Parse(s string) (*ConnString, error) { p := parser{dnsResolver: dns.DefaultResolver} - err := p.parse(s) + connStr, err := p.parse(s) if err != nil { - err = fmt.Errorf("error parsing uri: %w", err) + return nil, fmt.Errorf("error parsing uri: %w", err) } - return p.ConnString, err + return connStr, err } // ConnString represents a connection string to mongodb. @@ -134,6 +133,7 @@ type ConnString struct { MaxConnectingSet bool Password string PasswordSet bool + RawHosts []string ReadConcernLevel string ReadPreference string ReadPreferenceTagSets []map[string]string @@ -202,242 +202,51 @@ func (u *ConnString) HasAuthParameters() bool { // Validate checks that the Auth and SSL parameters are valid values. func (u *ConnString) Validate() error { - p := parser{ - dnsResolver: dns.DefaultResolver, - ConnString: *u, - } - return p.validate() -} - -// ConnectMode informs the driver on how to connect -// to the server. -type ConnectMode uint8 - -var _ fmt.Stringer = ConnectMode(0) - -// ConnectMode constants. -const ( - AutoConnect ConnectMode = iota - SingleConnect -) - -// String implements the fmt.Stringer interface. -func (c ConnectMode) String() string { - switch c { - case AutoConnect: - return "automatic" - case SingleConnect: - return "direct" - default: - return "unknown" - } -} - -// Scheme constants -const ( - SchemeMongoDB = "mongodb" - SchemeMongoDBSRV = "mongodb+srv" -) - -type parser struct { - ConnString - - dnsResolver *dns.Resolver - tlsssl *bool // used to determine if tls and ssl options are both specified and set differently. -} - -func (p *parser) parse(original string) error { - p.Original = original - uri := original - var err error - if strings.HasPrefix(uri, SchemeMongoDBSRV+"://") { - p.Scheme = SchemeMongoDBSRV - // remove the scheme - uri = uri[len(SchemeMongoDBSRV)+3:] - } else if strings.HasPrefix(uri, SchemeMongoDB+"://") { - p.Scheme = SchemeMongoDB - // remove the scheme - uri = uri[len(SchemeMongoDB)+3:] - } else { - return errors.New(`scheme must be "mongodb" or "mongodb+srv"`) - } - - if idx := strings.Index(uri, "@"); idx != -1 { - userInfo := uri[:idx] - uri = uri[idx+1:] - - username := userInfo - var password string - - if idx := strings.Index(userInfo, ":"); idx != -1 { - username = userInfo[:idx] - password = userInfo[idx+1:] - p.PasswordSet = true - } - - // Validate and process the username. - if strings.Contains(username, "/") { - return fmt.Errorf("unescaped slash in username") - } - p.Username, err = url.PathUnescape(username) - if err != nil { - return fmt.Errorf("invalid username: %w", err) - } - p.UsernameSet = true - - // Validate and process the password. - if strings.Contains(password, ":") { - return fmt.Errorf("unescaped colon in password") - } - if strings.Contains(password, "/") { - return fmt.Errorf("unescaped slash in password") - } - p.Password, err = url.PathUnescape(password) - if err != nil { - return fmt.Errorf("invalid password: %w", err) - } - } - - // fetch the hosts field - hosts := uri - if idx := strings.IndexAny(uri, "/?@"); idx != -1 { - if uri[idx] == '@' { - return fmt.Errorf("unescaped @ sign in user info") - } - if uri[idx] == '?' { - return fmt.Errorf("must have a / before the query ?") - } - hosts = uri[:idx] - } - parsedHosts := strings.Split(hosts, ",") - uri = uri[len(hosts):] - extractedDatabase, err := extractDatabaseFromURI(uri) - if err != nil { + if err = u.validateAuth(); err != nil { return err } - uri = extractedDatabase.uri - p.Database = extractedDatabase.db - - // grab connection arguments from URI - connectionArgsFromQueryString, err := extractQueryArgsFromURI(uri) - if err != nil { - return err - } - - // grab connection arguments from TXT record and enable SSL if "mongodb+srv://" - var connectionArgsFromTXT []string - if p.Scheme == SchemeMongoDBSRV { - connectionArgsFromTXT, err = p.dnsResolver.GetConnectionArgsFromTXT(hosts) - if err != nil { - return err - } - - // SSL is enabled by default for SRV, but can be manually disabled with "ssl=false". - p.SSL = true - p.SSLSet = true - } - - // add connection arguments from URI and TXT records to connstring - connectionArgPairs := make([]string, 0, len(connectionArgsFromTXT)+len(connectionArgsFromQueryString)) - connectionArgPairs = append(connectionArgPairs, connectionArgsFromTXT...) - connectionArgPairs = append(connectionArgPairs, connectionArgsFromQueryString...) - - for _, pair := range connectionArgPairs { - err := p.addOption(pair) - if err != nil { - return err - } - } - - // do SRV lookup if "mongodb+srv://" - if p.Scheme == SchemeMongoDBSRV { - parsedHosts, err = p.dnsResolver.ParseHosts(hosts, p.SRVServiceName, true) - if err != nil { - return err - } - - // If p.SRVMaxHosts is non-zero and is less than the number of hosts, randomly - // select SRVMaxHosts hosts from parsedHosts. - if p.SRVMaxHosts > 0 && p.SRVMaxHosts < len(parsedHosts) { - random.Shuffle(len(parsedHosts), func(i, j int) { - parsedHosts[i], parsedHosts[j] = parsedHosts[j], parsedHosts[i] - }) - parsedHosts = parsedHosts[:p.SRVMaxHosts] - } - } - - for _, host := range parsedHosts { - err = p.addHost(host) - if err != nil { - return fmt.Errorf("invalid host %q: %w", host, err) - } - } - if len(p.Hosts) == 0 { - return fmt.Errorf("must have at least 1 host") - } - - err = p.setDefaultAuthParams(extractedDatabase.db) - if err != nil { - return err - } - - // If WTimeout was set from manual options passed in, set WTImeoutSet to true. - if p.WTimeoutSetFromOption { - p.WTimeoutSet = true - } - - return nil -} - -func (p *parser) validate() error { - var err error - - err = p.validateAuth() - if err != nil { - return err - } - - if err = p.validateSSL(); err != nil { + if err = u.validateSSL(); err != nil { return err } // Check for invalid write concern (i.e. w=0 and j=true) - if p.WNumberSet && p.WNumber == 0 && p.JSet && p.J { + if u.WNumberSet && u.WNumber == 0 && u.JSet && u.J { return writeconcern.ErrInconsistent } // Check for invalid use of direct connections. - if (p.ConnectSet && p.Connect == SingleConnect) || (p.DirectConnectionSet && p.DirectConnection) { - if len(p.Hosts) > 1 { + if (u.ConnectSet && u.Connect == SingleConnect) || + (u.DirectConnectionSet && u.DirectConnection) { + if len(u.Hosts) > 1 { return errors.New("a direct connection cannot be made if multiple hosts are specified") } - if p.Scheme == SchemeMongoDBSRV { + if u.Scheme == SchemeMongoDBSRV { return errors.New("a direct connection cannot be made if an SRV URI is used") } - if p.LoadBalancedSet && p.LoadBalanced { + if u.LoadBalancedSet && u.LoadBalanced { return ErrLoadBalancedWithDirectConnection } } // Validation for load-balanced mode. - if p.LoadBalancedSet && p.LoadBalanced { - if len(p.Hosts) > 1 { + if u.LoadBalancedSet && u.LoadBalanced { + if len(u.Hosts) > 1 { return ErrLoadBalancedWithMultipleHosts } - if p.ReplicaSet != "" { + if u.ReplicaSet != "" { return ErrLoadBalancedWithReplicaSet } } // Check for invalid use of SRVMaxHosts. - if p.SRVMaxHosts > 0 { - if p.ReplicaSet != "" { + if u.SRVMaxHosts > 0 { + if u.ReplicaSet != "" { return ErrSRVMaxHostsWithReplicaSet } - if p.LoadBalanced { + if u.LoadBalanced { return ErrSRVMaxHostsWithLoadBalanced } } @@ -445,34 +254,34 @@ func (p *parser) validate() error { return nil } -func (p *parser) setDefaultAuthParams(dbName string) error { +func (u *ConnString) setDefaultAuthParams(dbName string) error { // We do this check here rather than in validateAuth because this function is called as part of parsing and sets // the value of AuthSource if authentication is enabled. - if p.AuthSourceSet && p.AuthSource == "" { + if u.AuthSourceSet && u.AuthSource == "" { return errors.New("authSource must be non-empty when supplied in a URI") } - switch strings.ToLower(p.AuthMechanism) { + switch strings.ToLower(u.AuthMechanism) { case "plain": - if p.AuthSource == "" { - p.AuthSource = dbName - if p.AuthSource == "" { - p.AuthSource = "$external" + if u.AuthSource == "" { + u.AuthSource = dbName + if u.AuthSource == "" { + u.AuthSource = "$external" } } case "gssapi": - if p.AuthMechanismProperties == nil { - p.AuthMechanismProperties = map[string]string{ + if u.AuthMechanismProperties == nil { + u.AuthMechanismProperties = map[string]string{ "SERVICE_NAME": "mongodb", } - } else if v, ok := p.AuthMechanismProperties["SERVICE_NAME"]; !ok || v == "" { - p.AuthMechanismProperties["SERVICE_NAME"] = "mongodb" + } else if v, ok := u.AuthMechanismProperties["SERVICE_NAME"]; !ok || v == "" { + u.AuthMechanismProperties["SERVICE_NAME"] = "mongodb" } fallthrough case "mongodb-aws", "mongodb-x509": - if p.AuthSource == "" { - p.AuthSource = "$external" - } else if p.AuthSource != "$external" { + if u.AuthSource == "" { + u.AuthSource = "$external" + } else if u.AuthSource != "$external" { return fmt.Errorf("auth source must be $external") } case "mongodb-cr": @@ -480,18 +289,18 @@ func (p *parser) setDefaultAuthParams(dbName string) error { case "scram-sha-1": fallthrough case "scram-sha-256": - if p.AuthSource == "" { - p.AuthSource = dbName - if p.AuthSource == "" { - p.AuthSource = "admin" + if u.AuthSource == "" { + u.AuthSource = dbName + if u.AuthSource == "" { + u.AuthSource = "admin" } } case "": // Only set auth source if there is a request for authentication via non-empty credentials. - if p.AuthSource == "" && (p.AuthMechanismProperties != nil || p.Username != "" || p.PasswordSet) { - p.AuthSource = dbName - if p.AuthSource == "" { - p.AuthSource = "admin" + if u.AuthSource == "" && (u.AuthMechanismProperties != nil || u.Username != "" || u.PasswordSet) { + u.AuthSource = dbName + if u.AuthSource == "" { + u.AuthSource = "admin" } } default: @@ -500,83 +309,473 @@ func (p *parser) setDefaultAuthParams(dbName string) error { return nil } -func (p *parser) validateAuth() error { - switch strings.ToLower(p.AuthMechanism) { +func (u *ConnString) addOptions(connectionArgPairs []string) error { + var tlsssl *bool // used to determine if tls and ssl options are both specified and set differently. + for _, pair := range connectionArgPairs { + kv := strings.SplitN(pair, "=", 2) + if len(kv) != 2 || kv[0] == "" { + return fmt.Errorf("invalid option") + } + + key, err := url.QueryUnescape(kv[0]) + if err != nil { + return fmt.Errorf("invalid option key %q: %w", kv[0], err) + } + + value, err := url.QueryUnescape(kv[1]) + if err != nil { + return fmt.Errorf("invalid option value %q: %w", kv[1], err) + } + + lowerKey := strings.ToLower(key) + switch lowerKey { + case "appname": + u.AppName = value + case "authmechanism": + u.AuthMechanism = value + case "authmechanismproperties": + u.AuthMechanismProperties = make(map[string]string) + pairs := strings.Split(value, ",") + for _, pair := range pairs { + kv := strings.SplitN(pair, ":", 2) + if len(kv) != 2 || kv[0] == "" { + return fmt.Errorf("invalid authMechanism property") + } + u.AuthMechanismProperties[kv[0]] = kv[1] + } + u.AuthMechanismPropertiesSet = true + case "authsource": + u.AuthSource = value + u.AuthSourceSet = true + case "compressors": + compressors := strings.Split(value, ",") + if len(compressors) < 1 { + return fmt.Errorf("must have at least 1 compressor") + } + u.Compressors = compressors + case "connect": + switch strings.ToLower(value) { + case "automatic": + case "direct": + u.Connect = SingleConnect + default: + return fmt.Errorf("invalid 'connect' value: %q", value) + } + if u.DirectConnectionSet { + expectedValue := u.Connect == SingleConnect // directConnection should be true if connect=direct + if u.DirectConnection != expectedValue { + return fmt.Errorf("options connect=%q and directConnection=%v conflict", value, u.DirectConnection) + } + } + + u.ConnectSet = true + case "directconnection": + switch strings.ToLower(value) { + case "true": + u.DirectConnection = true + case "false": + default: + return fmt.Errorf("invalid 'directConnection' value: %q", value) + } + + if u.ConnectSet { + expectedValue := AutoConnect + if u.DirectConnection { + expectedValue = SingleConnect + } + + if u.Connect != expectedValue { + return fmt.Errorf("options connect=%q and directConnection=%q conflict", u.Connect, value) + } + } + u.DirectConnectionSet = true + case "connecttimeoutms": + n, err := strconv.Atoi(value) + if err != nil || n < 0 { + return fmt.Errorf("invalid value for %q: %q", key, value) + } + u.ConnectTimeout = time.Duration(n) * time.Millisecond + u.ConnectTimeoutSet = true + case "heartbeatintervalms", "heartbeatfrequencyms": + n, err := strconv.Atoi(value) + if err != nil || n < 0 { + return fmt.Errorf("invalid value for %q: %q", key, value) + } + u.HeartbeatInterval = time.Duration(n) * time.Millisecond + u.HeartbeatIntervalSet = true + case "journal": + switch value { + case "true": + u.J = true + case "false": + u.J = false + default: + return fmt.Errorf("invalid value for %q: %q", key, value) + } + + u.JSet = true + case "loadbalanced": + switch value { + case "true": + u.LoadBalanced = true + case "false": + u.LoadBalanced = false + default: + return fmt.Errorf("invalid value for %q: %q", key, value) + } + + u.LoadBalancedSet = true + case "localthresholdms": + n, err := strconv.Atoi(value) + if err != nil || n < 0 { + return fmt.Errorf("invalid value for %q: %q", key, value) + } + u.LocalThreshold = time.Duration(n) * time.Millisecond + u.LocalThresholdSet = true + case "maxidletimems": + n, err := strconv.Atoi(value) + if err != nil || n < 0 { + return fmt.Errorf("invalid value for %q: %q", key, value) + } + u.MaxConnIdleTime = time.Duration(n) * time.Millisecond + u.MaxConnIdleTimeSet = true + case "maxpoolsize": + n, err := strconv.Atoi(value) + if err != nil || n < 0 { + return fmt.Errorf("invalid value for %q: %q", key, value) + } + u.MaxPoolSize = uint64(n) + u.MaxPoolSizeSet = true + case "minpoolsize": + n, err := strconv.Atoi(value) + if err != nil || n < 0 { + return fmt.Errorf("invalid value for %q: %q", key, value) + } + u.MinPoolSize = uint64(n) + u.MinPoolSizeSet = true + case "maxconnecting": + n, err := strconv.Atoi(value) + if err != nil || n < 0 { + return fmt.Errorf("invalid value for %q: %q", key, value) + } + u.MaxConnecting = uint64(n) + u.MaxConnectingSet = true + case "readconcernlevel": + u.ReadConcernLevel = value + case "readpreference": + u.ReadPreference = value + case "readpreferencetags": + if value == "" { + // If "readPreferenceTags=" is supplied, append an empty map to tag sets to + // represent a wild-card. + u.ReadPreferenceTagSets = append(u.ReadPreferenceTagSets, map[string]string{}) + break + } + + tags := make(map[string]string) + items := strings.Split(value, ",") + for _, item := range items { + parts := strings.Split(item, ":") + if len(parts) != 2 { + return fmt.Errorf("invalid value for %q: %q", key, value) + } + tags[parts[0]] = parts[1] + } + u.ReadPreferenceTagSets = append(u.ReadPreferenceTagSets, tags) + case "maxstaleness", "maxstalenessseconds": + n, err := strconv.Atoi(value) + if err != nil || n < 0 { + return fmt.Errorf("invalid value for %q: %q", key, value) + } + u.MaxStaleness = time.Duration(n) * time.Second + u.MaxStalenessSet = true + case "replicaset": + u.ReplicaSet = value + case "retrywrites": + switch value { + case "true": + u.RetryWrites = true + case "false": + u.RetryWrites = false + default: + return fmt.Errorf("invalid value for %q: %q", key, value) + } + + u.RetryWritesSet = true + case "retryreads": + switch value { + case "true": + u.RetryReads = true + case "false": + u.RetryReads = false + default: + return fmt.Errorf("invalid value for %q: %q", key, value) + } + + u.RetryReadsSet = true + case "servermonitoringmode": + if !IsValidServerMonitoringMode(value) { + return fmt.Errorf("invalid value for %q: %q", key, value) + } + + u.ServerMonitoringMode = value + case "serverselectiontimeoutms": + n, err := strconv.Atoi(value) + if err != nil || n < 0 { + return fmt.Errorf("invalid value for %q: %q", key, value) + } + u.ServerSelectionTimeout = time.Duration(n) * time.Millisecond + u.ServerSelectionTimeoutSet = true + case "sockettimeoutms": + n, err := strconv.Atoi(value) + if err != nil || n < 0 { + return fmt.Errorf("invalid value for %q: %q", key, value) + } + u.SocketTimeout = time.Duration(n) * time.Millisecond + u.SocketTimeoutSet = true + case "srvmaxhosts": + // srvMaxHosts can only be set on URIs with the "mongodb+srv" scheme + if u.Scheme != SchemeMongoDBSRV { + return fmt.Errorf("cannot specify srvMaxHosts on non-SRV URI") + } + + n, err := strconv.Atoi(value) + if err != nil || n < 0 { + return fmt.Errorf("invalid value for %q: %q", key, value) + } + u.SRVMaxHosts = n + case "srvservicename": + // srvServiceName can only be set on URIs with the "mongodb+srv" scheme + if u.Scheme != SchemeMongoDBSRV { + return fmt.Errorf("cannot specify srvServiceName on non-SRV URI") + } + + // srvServiceName must be between 1 and 62 characters according to + // our specification. Empty service names are not valid, and the service + // name (including prepended underscore) should not exceed the 63 character + // limit for DNS query subdomains. + if len(value) < 1 || len(value) > 62 { + return fmt.Errorf("srvServiceName value must be between 1 and 62 characters") + } + u.SRVServiceName = value + case "ssl", "tls": + switch value { + case "true": + u.SSL = true + case "false": + u.SSL = false + default: + return fmt.Errorf("invalid value for %q: %q", key, value) + } + if tlsssl == nil { + tlsssl = new(bool) + *tlsssl = u.SSL + } else if *tlsssl != u.SSL { + return errors.New("tls and ssl options, when both specified, must be equivalent") + } + + u.SSLSet = true + case "sslclientcertificatekeyfile", "tlscertificatekeyfile": + u.SSL = true + u.SSLSet = true + u.SSLClientCertificateKeyFile = value + u.SSLClientCertificateKeyFileSet = true + case "sslclientcertificatekeypassword", "tlscertificatekeyfilepassword": + u.SSLClientCertificateKeyPassword = func() string { return value } + u.SSLClientCertificateKeyPasswordSet = true + case "tlscertificatefile": + u.SSL = true + u.SSLSet = true + u.SSLCertificateFile = value + u.SSLCertificateFileSet = true + case "tlsprivatekeyfile": + u.SSL = true + u.SSLSet = true + u.SSLPrivateKeyFile = value + u.SSLPrivateKeyFileSet = true + case "sslinsecure", "tlsinsecure": + switch value { + case "true": + u.SSLInsecure = true + case "false": + u.SSLInsecure = false + default: + return fmt.Errorf("invalid value for %q: %q", key, value) + } + + u.SSLInsecureSet = true + case "sslcertificateauthorityfile", "tlscafile": + u.SSL = true + u.SSLSet = true + u.SSLCaFile = value + u.SSLCaFileSet = true + case "timeoutms": + n, err := strconv.Atoi(value) + if err != nil || n < 0 { + return fmt.Errorf("invalid value for %q: %q", key, value) + } + u.Timeout = time.Duration(n) * time.Millisecond + u.TimeoutSet = true + case "tlsdisableocspendpointcheck": + u.SSL = true + u.SSLSet = true + + switch value { + case "true": + u.SSLDisableOCSPEndpointCheck = true + case "false": + u.SSLDisableOCSPEndpointCheck = false + default: + return fmt.Errorf("invalid value for %q: %q", key, value) + } + u.SSLDisableOCSPEndpointCheckSet = true + case "w": + if w, err := strconv.Atoi(value); err == nil { + if w < 0 { + return fmt.Errorf("invalid value for %q: %q", key, value) + } + + u.WNumber = w + u.WNumberSet = true + u.WString = "" + break + } + + u.WString = value + u.WNumberSet = false + + case "wtimeoutms": + n, err := strconv.Atoi(value) + if err != nil || n < 0 { + return fmt.Errorf("invalid value for %q: %q", key, value) + } + u.WTimeout = time.Duration(n) * time.Millisecond + u.WTimeoutSet = true + case "wtimeout": + // Defer to wtimeoutms, but not to a manually-set option. + if u.WTimeoutSet { + break + } + n, err := strconv.Atoi(value) + if err != nil || n < 0 { + return fmt.Errorf("invalid value for %q: %q", key, value) + } + u.WTimeout = time.Duration(n) * time.Millisecond + case "zlibcompressionlevel": + level, err := strconv.Atoi(value) + if err != nil || (level < -1 || level > 9) { + return fmt.Errorf("invalid value for %q: %q", key, value) + } + + if level == -1 { + level = wiremessage.DefaultZlibLevel + } + u.ZlibLevel = level + u.ZlibLevelSet = true + case "zstdcompressionlevel": + const maxZstdLevel = 22 // https://github.com/facebook/zstd/blob/a880ca239b447968493dd2fed3850e766d6305cc/contrib/linux-kernel/lib/zstd/compress.c#L3291 + level, err := strconv.Atoi(value) + if err != nil || (level < -1 || level > maxZstdLevel) { + return fmt.Errorf("invalid value for %q: %q", key, value) + } + + if level == -1 { + level = wiremessage.DefaultZstdLevel + } + u.ZstdLevel = level + u.ZstdLevelSet = true + default: + if u.UnknownOptions == nil { + u.UnknownOptions = make(map[string][]string) + } + u.UnknownOptions[lowerKey] = append(u.UnknownOptions[lowerKey], value) + } + + if u.Options == nil { + u.Options = make(map[string][]string) + } + u.Options[lowerKey] = append(u.Options[lowerKey], value) + } + return nil +} + +func (u *ConnString) validateAuth() error { + switch strings.ToLower(u.AuthMechanism) { case "mongodb-cr": - if p.Username == "" { + if u.Username == "" { return fmt.Errorf("username required for MONGO-CR") } - if p.Password == "" { + if u.Password == "" { return fmt.Errorf("password required for MONGO-CR") } - if p.AuthMechanismProperties != nil { + if u.AuthMechanismProperties != nil { return fmt.Errorf("MONGO-CR cannot have mechanism properties") } case "mongodb-x509": - if p.Password != "" { + if u.Password != "" { return fmt.Errorf("password cannot be specified for MONGO-X509") } - if p.AuthMechanismProperties != nil { + if u.AuthMechanismProperties != nil { return fmt.Errorf("MONGO-X509 cannot have mechanism properties") } case "mongodb-aws": - if p.Username != "" && p.Password == "" { + if u.Username != "" && u.Password == "" { return fmt.Errorf("username without password is invalid for MONGODB-AWS") } - if p.Username == "" && p.Password != "" { + if u.Username == "" && u.Password != "" { return fmt.Errorf("password without username is invalid for MONGODB-AWS") } var token bool - for k := range p.AuthMechanismProperties { + for k := range u.AuthMechanismProperties { if k != "AWS_SESSION_TOKEN" { return fmt.Errorf("invalid auth property for MONGODB-AWS") } token = true } - if token && p.Username == "" && p.Password == "" { + if token && u.Username == "" && u.Password == "" { return fmt.Errorf("token without username and password is invalid for MONGODB-AWS") } case "gssapi": - if p.Username == "" { + if u.Username == "" { return fmt.Errorf("username required for GSSAPI") } - for k := range p.AuthMechanismProperties { + for k := range u.AuthMechanismProperties { if k != "SERVICE_NAME" && k != "CANONICALIZE_HOST_NAME" && k != "SERVICE_REALM" && k != "SERVICE_HOST" { return fmt.Errorf("invalid auth property for GSSAPI") } } case "plain": - if p.Username == "" { + if u.Username == "" { return fmt.Errorf("username required for PLAIN") } - if p.Password == "" { + if u.Password == "" { return fmt.Errorf("password required for PLAIN") } - if p.AuthMechanismProperties != nil { + if u.AuthMechanismProperties != nil { return fmt.Errorf("PLAIN cannot have mechanism properties") } case "scram-sha-1": - if p.Username == "" { + if u.Username == "" { return fmt.Errorf("username required for SCRAM-SHA-1") } - if p.Password == "" { + if u.Password == "" { return fmt.Errorf("password required for SCRAM-SHA-1") } - if p.AuthMechanismProperties != nil { + if u.AuthMechanismProperties != nil { return fmt.Errorf("SCRAM-SHA-1 cannot have mechanism properties") } case "scram-sha-256": - if p.Username == "" { + if u.Username == "" { return fmt.Errorf("username required for SCRAM-SHA-256") } - if p.Password == "" { + if u.Password == "" { return fmt.Errorf("password required for SCRAM-SHA-256") } - if p.AuthMechanismProperties != nil { + if u.AuthMechanismProperties != nil { return fmt.Errorf("SCRAM-SHA-256 cannot have mechanism properties") } case "": - if p.UsernameSet && p.Username == "" { + if u.UsernameSet && u.Username == "" { return fmt.Errorf("username required if URI contains user info") } default: @@ -585,457 +784,261 @@ func (p *parser) validateAuth() error { return nil } -func (p *parser) validateSSL() error { - if !p.SSL { +func (u *ConnString) validateSSL() error { + if !u.SSL { return nil } - if p.SSLClientCertificateKeyFileSet { - if p.SSLCertificateFileSet || p.SSLPrivateKeyFileSet { + if u.SSLClientCertificateKeyFileSet { + if u.SSLCertificateFileSet || u.SSLPrivateKeyFileSet { return errors.New("the sslClientCertificateKeyFile/tlsCertificateKeyFile URI option cannot be provided " + "along with tlsCertificateFile or tlsPrivateKeyFile") } return nil } - if p.SSLCertificateFileSet && !p.SSLPrivateKeyFileSet { + if u.SSLCertificateFileSet && !u.SSLPrivateKeyFileSet { return errors.New("the tlsPrivateKeyFile URI option must be provided if the tlsCertificateFile option is specified") } - if p.SSLPrivateKeyFileSet && !p.SSLCertificateFileSet { + if u.SSLPrivateKeyFileSet && !u.SSLCertificateFileSet { return errors.New("the tlsCertificateFile URI option must be provided if the tlsPrivateKeyFile option is specified") } - if p.SSLInsecureSet && p.SSLDisableOCSPEndpointCheckSet { + if u.SSLInsecureSet && u.SSLDisableOCSPEndpointCheckSet { return errors.New("the sslInsecure/tlsInsecure URI option cannot be provided along with " + "tlsDisableOCSPEndpointCheck ") } return nil } -func (p *parser) addHost(host string) error { +func sanitizeHost(host string) (string, error) { if host == "" { - return nil + return host, nil } - host, err := url.QueryUnescape(host) + unescaped, err := url.QueryUnescape(host) if err != nil { - return fmt.Errorf("invalid host %q: %w", host, err) + return "", fmt.Errorf("invalid host %q: %w", host, err) } - _, port, err := net.SplitHostPort(host) + _, port, err := net.SplitHostPort(unescaped) // this is unfortunate that SplitHostPort actually requires // a port to exist. if err != nil { if addrError, ok := err.(*net.AddrError); !ok || addrError.Err != "missing port in address" { - return err + return "", err } } if port != "" { d, err := strconv.Atoi(port) if err != nil { - return fmt.Errorf("port must be an integer: %w", err) + return "", fmt.Errorf("port must be an integer: %w", err) } if d <= 0 || d >= 65536 { - return fmt.Errorf("port must be in the range [1, 65535]") + return "", fmt.Errorf("port must be in the range [1, 65535]") } } - p.Hosts = append(p.Hosts, host) - return nil + return unescaped, nil } -// IsValidServerMonitoringMode will return true if the given string matches a -// valid server monitoring mode. -func IsValidServerMonitoringMode(mode string) bool { - return mode == ServerMonitoringModeAuto || - mode == ServerMonitoringModeStream || - mode == ServerMonitoringModePoll -} +// ConnectMode informs the driver on how to connect +// to the server. +type ConnectMode uint8 -func (p *parser) addOption(pair string) error { - kv := strings.SplitN(pair, "=", 2) - if len(kv) != 2 || kv[0] == "" { - return fmt.Errorf("invalid option") - } +var _ fmt.Stringer = ConnectMode(0) - key, err := url.QueryUnescape(kv[0]) - if err != nil { - return fmt.Errorf("invalid option key %q: %w", kv[0], err) - } +// ConnectMode constants. +const ( + AutoConnect ConnectMode = iota + SingleConnect +) - value, err := url.QueryUnescape(kv[1]) - if err != nil { - return fmt.Errorf("invalid option value %q: %w", kv[1], err) +// String implements the fmt.Stringer interface. +func (c ConnectMode) String() string { + switch c { + case AutoConnect: + return "automatic" + case SingleConnect: + return "direct" + default: + return "unknown" } +} - lowerKey := strings.ToLower(key) - switch lowerKey { - case "appname": - p.AppName = value - case "authmechanism": - p.AuthMechanism = value - case "authmechanismproperties": - p.AuthMechanismProperties = make(map[string]string) - pairs := strings.Split(value, ",") - for _, pair := range pairs { - kv := strings.SplitN(pair, ":", 2) - if len(kv) != 2 || kv[0] == "" { - return fmt.Errorf("invalid authMechanism property") - } - p.AuthMechanismProperties[kv[0]] = kv[1] - } - p.AuthMechanismPropertiesSet = true - case "authsource": - p.AuthSource = value - p.AuthSourceSet = true - case "compressors": - compressors := strings.Split(value, ",") - if len(compressors) < 1 { - return fmt.Errorf("must have at least 1 compressor") - } - p.Compressors = compressors - case "connect": - switch strings.ToLower(value) { - case "automatic": - case "direct": - p.Connect = SingleConnect - default: - return fmt.Errorf("invalid 'connect' value: %q", value) - } - if p.DirectConnectionSet { - expectedValue := p.Connect == SingleConnect // directConnection should be true if connect=direct - if p.DirectConnection != expectedValue { - return fmt.Errorf("options connect=%q and directConnection=%v conflict", value, p.DirectConnection) - } - } +// Scheme constants +const ( + SchemeMongoDB = "mongodb" + SchemeMongoDBSRV = "mongodb+srv" +) - p.ConnectSet = true - case "directconnection": - switch strings.ToLower(value) { - case "true": - p.DirectConnection = true - case "false": - default: - return fmt.Errorf("invalid 'directConnection' value: %q", value) - } +type parser struct { + dnsResolver *dns.Resolver +} - if p.ConnectSet { - expectedValue := AutoConnect - if p.DirectConnection { - expectedValue = SingleConnect - } +func (p *parser) parse(original string) (*ConnString, error) { + connStr := &ConnString{} + connStr.Original = original + uri := original - if p.Connect != expectedValue { - return fmt.Errorf("options connect=%q and directConnection=%q conflict", p.Connect, value) - } - } - p.DirectConnectionSet = true - case "connecttimeoutms": - n, err := strconv.Atoi(value) - if err != nil || n < 0 { - return fmt.Errorf("invalid value for %q: %q", key, value) - } - p.ConnectTimeout = time.Duration(n) * time.Millisecond - p.ConnectTimeoutSet = true - case "heartbeatintervalms", "heartbeatfrequencyms": - n, err := strconv.Atoi(value) - if err != nil || n < 0 { - return fmt.Errorf("invalid value for %q: %q", key, value) - } - p.HeartbeatInterval = time.Duration(n) * time.Millisecond - p.HeartbeatIntervalSet = true - case "journal": - switch value { - case "true": - p.J = true - case "false": - p.J = false - default: - return fmt.Errorf("invalid value for %q: %q", key, value) - } + var err error + if strings.HasPrefix(uri, SchemeMongoDBSRV+"://") { + connStr.Scheme = SchemeMongoDBSRV + // remove the scheme + uri = uri[len(SchemeMongoDBSRV)+3:] + } else if strings.HasPrefix(uri, SchemeMongoDB+"://") { + connStr.Scheme = SchemeMongoDB + // remove the scheme + uri = uri[len(SchemeMongoDB)+3:] + } else { + return nil, errors.New(`scheme must be "mongodb" or "mongodb+srv"`) + } - p.JSet = true - case "loadbalanced": - switch value { - case "true": - p.LoadBalanced = true - case "false": - p.LoadBalanced = false - default: - return fmt.Errorf("invalid value for %q: %q", key, value) - } + if idx := strings.Index(uri, "@"); idx != -1 { + userInfo := uri[:idx] + uri = uri[idx+1:] - p.LoadBalancedSet = true - case "localthresholdms": - n, err := strconv.Atoi(value) - if err != nil || n < 0 { - return fmt.Errorf("invalid value for %q: %q", key, value) - } - p.LocalThreshold = time.Duration(n) * time.Millisecond - p.LocalThresholdSet = true - case "maxidletimems": - n, err := strconv.Atoi(value) - if err != nil || n < 0 { - return fmt.Errorf("invalid value for %q: %q", key, value) - } - p.MaxConnIdleTime = time.Duration(n) * time.Millisecond - p.MaxConnIdleTimeSet = true - case "maxpoolsize": - n, err := strconv.Atoi(value) - if err != nil || n < 0 { - return fmt.Errorf("invalid value for %q: %q", key, value) - } - p.MaxPoolSize = uint64(n) - p.MaxPoolSizeSet = true - case "minpoolsize": - n, err := strconv.Atoi(value) - if err != nil || n < 0 { - return fmt.Errorf("invalid value for %q: %q", key, value) - } - p.MinPoolSize = uint64(n) - p.MinPoolSizeSet = true - case "maxconnecting": - n, err := strconv.Atoi(value) - if err != nil || n < 0 { - return fmt.Errorf("invalid value for %q: %q", key, value) - } - p.MaxConnecting = uint64(n) - p.MaxConnectingSet = true - case "readconcernlevel": - p.ReadConcernLevel = value - case "readpreference": - p.ReadPreference = value - case "readpreferencetags": - if value == "" { - // If "readPreferenceTags=" is supplied, append an empty map to tag sets to - // represent a wild-card. - p.ReadPreferenceTagSets = append(p.ReadPreferenceTagSets, map[string]string{}) - break - } + username := userInfo + var password string - tags := make(map[string]string) - items := strings.Split(value, ",") - for _, item := range items { - parts := strings.Split(item, ":") - if len(parts) != 2 { - return fmt.Errorf("invalid value for %q: %q", key, value) - } - tags[parts[0]] = parts[1] - } - p.ReadPreferenceTagSets = append(p.ReadPreferenceTagSets, tags) - case "maxstaleness", "maxstalenessseconds": - n, err := strconv.Atoi(value) - if err != nil || n < 0 { - return fmt.Errorf("invalid value for %q: %q", key, value) - } - p.MaxStaleness = time.Duration(n) * time.Second - p.MaxStalenessSet = true - case "replicaset": - p.ReplicaSet = value - case "retrywrites": - switch value { - case "true": - p.RetryWrites = true - case "false": - p.RetryWrites = false - default: - return fmt.Errorf("invalid value for %q: %q", key, value) + if idx := strings.Index(userInfo, ":"); idx != -1 { + username = userInfo[:idx] + password = userInfo[idx+1:] + connStr.PasswordSet = true } - p.RetryWritesSet = true - case "retryreads": - switch value { - case "true": - p.RetryReads = true - case "false": - p.RetryReads = false - default: - return fmt.Errorf("invalid value for %q: %q", key, value) + // Validate and process the username. + if strings.Contains(username, "/") { + return nil, fmt.Errorf("unescaped slash in username") } - - p.RetryReadsSet = true - case "servermonitoringmode": - if !IsValidServerMonitoringMode(value) { - return fmt.Errorf("invalid value for %q: %q", key, value) + connStr.Username, err = url.PathUnescape(username) + if err != nil { + return nil, fmt.Errorf("invalid username: %w", err) } + connStr.UsernameSet = true - p.ServerMonitoringMode = value - case "serverselectiontimeoutms": - n, err := strconv.Atoi(value) - if err != nil || n < 0 { - return fmt.Errorf("invalid value for %q: %q", key, value) + // Validate and process the password. + if strings.Contains(password, ":") { + return nil, fmt.Errorf("unescaped colon in password") } - p.ServerSelectionTimeout = time.Duration(n) * time.Millisecond - p.ServerSelectionTimeoutSet = true - case "sockettimeoutms": - n, err := strconv.Atoi(value) - if err != nil || n < 0 { - return fmt.Errorf("invalid value for %q: %q", key, value) + if strings.Contains(password, "/") { + return nil, fmt.Errorf("unescaped slash in password") } - p.SocketTimeout = time.Duration(n) * time.Millisecond - p.SocketTimeoutSet = true - case "srvmaxhosts": - // srvMaxHosts can only be set on URIs with the "mongodb+srv" scheme - if p.Scheme != SchemeMongoDBSRV { - return fmt.Errorf("cannot specify srvMaxHosts on non-SRV URI") + connStr.Password, err = url.PathUnescape(password) + if err != nil { + return nil, fmt.Errorf("invalid password: %w", err) } + } - n, err := strconv.Atoi(value) - if err != nil || n < 0 { - return fmt.Errorf("invalid value for %q: %q", key, value) + // fetch the hosts field + hosts := uri + if idx := strings.IndexAny(uri, "/?@"); idx != -1 { + if uri[idx] == '@' { + return nil, fmt.Errorf("unescaped @ sign in user info") } - p.SRVMaxHosts = n - case "srvservicename": - // srvServiceName can only be set on URIs with the "mongodb+srv" scheme - if p.Scheme != SchemeMongoDBSRV { - return fmt.Errorf("cannot specify srvServiceName on non-SRV URI") + if uri[idx] == '?' { + return nil, fmt.Errorf("must have a / before the query ?") } + hosts = uri[:idx] + } - // srvServiceName must be between 1 and 62 characters according to - // our specification. Empty service names are not valid, and the service - // name (including prepended underscore) should not exceed the 63 character - // limit for DNS query subdomains. - if len(value) < 1 || len(value) > 62 { - return fmt.Errorf("srvServiceName value must be between 1 and 62 characters") - } - p.SRVServiceName = value - case "ssl", "tls": - switch value { - case "true": - p.SSL = true - case "false": - p.SSL = false - default: - return fmt.Errorf("invalid value for %q: %q", key, value) + for _, host := range strings.Split(hosts, ",") { + host, err = sanitizeHost(host) + if err != nil { + return nil, fmt.Errorf("invalid host %q: %w", host, err) } - if p.tlsssl != nil && *p.tlsssl != p.SSL { - return errors.New("tls and ssl options, when both specified, must be equivalent") + if host != "" { + connStr.RawHosts = append(connStr.RawHosts, host) } + } + connStr.Hosts = connStr.RawHosts + uri = uri[len(hosts):] + extractedDatabase, err := extractDatabaseFromURI(uri) + if err != nil { + return nil, err + } - p.tlsssl = new(bool) - *p.tlsssl = p.SSL - - p.SSLSet = true - case "sslclientcertificatekeyfile", "tlscertificatekeyfile": - p.SSL = true - p.SSLSet = true - p.SSLClientCertificateKeyFile = value - p.SSLClientCertificateKeyFileSet = true - case "sslclientcertificatekeypassword", "tlscertificatekeyfilepassword": - p.SSLClientCertificateKeyPassword = func() string { return value } - p.SSLClientCertificateKeyPasswordSet = true - case "tlscertificatefile": - p.SSL = true - p.SSLSet = true - p.SSLCertificateFile = value - p.SSLCertificateFileSet = true - case "tlsprivatekeyfile": - p.SSL = true - p.SSLSet = true - p.SSLPrivateKeyFile = value - p.SSLPrivateKeyFileSet = true - case "sslinsecure", "tlsinsecure": - switch value { - case "true": - p.SSLInsecure = true - case "false": - p.SSLInsecure = false - default: - return fmt.Errorf("invalid value for %q: %q", key, value) - } + uri = extractedDatabase.uri + connStr.Database = extractedDatabase.db - p.SSLInsecureSet = true - case "sslcertificateauthorityfile", "tlscafile": - p.SSL = true - p.SSLSet = true - p.SSLCaFile = value - p.SSLCaFileSet = true - case "timeoutms": - n, err := strconv.Atoi(value) - if err != nil || n < 0 { - return fmt.Errorf("invalid value for %q: %q", key, value) - } - p.Timeout = time.Duration(n) * time.Millisecond - p.TimeoutSet = true - case "tlsdisableocspendpointcheck": - p.SSL = true - p.SSLSet = true - - switch value { - case "true": - p.SSLDisableOCSPEndpointCheck = true - case "false": - p.SSLDisableOCSPEndpointCheck = false - default: - return fmt.Errorf("invalid value for %q: %q", key, value) - } - p.SSLDisableOCSPEndpointCheckSet = true - case "w": - if w, err := strconv.Atoi(value); err == nil { - if w < 0 { - return fmt.Errorf("invalid value for %q: %q", key, value) - } + // grab connection arguments from URI + connectionArgsFromQueryString, err := extractQueryArgsFromURI(uri) + if err != nil { + return nil, err + } - p.WNumber = w - p.WNumberSet = true - p.WString = "" - break + // grab connection arguments from TXT record and enable SSL if "mongodb+srv://" + var connectionArgsFromTXT []string + if connStr.Scheme == SchemeMongoDBSRV && p.dnsResolver != nil { + connectionArgsFromTXT, err = p.dnsResolver.GetConnectionArgsFromTXT(hosts) + if err != nil { + return nil, err } - p.WString = value - p.WNumberSet = false + // SSL is enabled by default for SRV, but can be manually disabled with "ssl=false". + connStr.SSL = true + connStr.SSLSet = true + } + + // add connection arguments from URI and TXT records to connstring + connectionArgPairs := make([]string, 0, len(connectionArgsFromTXT)+len(connectionArgsFromQueryString)) + connectionArgPairs = append(connectionArgPairs, connectionArgsFromTXT...) + connectionArgPairs = append(connectionArgPairs, connectionArgsFromQueryString...) - case "wtimeoutms": - n, err := strconv.Atoi(value) - if err != nil || n < 0 { - return fmt.Errorf("invalid value for %q: %q", key, value) - } - p.WTimeout = time.Duration(n) * time.Millisecond - p.WTimeoutSet = true - case "wtimeout": - // Defer to wtimeoutms, but not to a manually-set option. - if p.WTimeoutSet { - break - } - n, err := strconv.Atoi(value) - if err != nil || n < 0 { - return fmt.Errorf("invalid value for %q: %q", key, value) - } - p.WTimeout = time.Duration(n) * time.Millisecond - case "zlibcompressionlevel": - level, err := strconv.Atoi(value) - if err != nil || (level < -1 || level > 9) { - return fmt.Errorf("invalid value for %q: %q", key, value) - } + err = connStr.addOptions(connectionArgPairs) + if err != nil { + return nil, err + } - if level == -1 { - level = wiremessage.DefaultZlibLevel - } - p.ZlibLevel = level - p.ZlibLevelSet = true - case "zstdcompressionlevel": - const maxZstdLevel = 22 // https://github.com/facebook/zstd/blob/a880ca239b447968493dd2fed3850e766d6305cc/contrib/linux-kernel/lib/zstd/compress.c#L3291 - level, err := strconv.Atoi(value) - if err != nil || (level < -1 || level > maxZstdLevel) { - return fmt.Errorf("invalid value for %q: %q", key, value) + // do SRV lookup if "mongodb+srv://" + if connStr.Scheme == SchemeMongoDBSRV && p.dnsResolver != nil { + parsedHosts, err := p.dnsResolver.ParseHosts(hosts, connStr.SRVServiceName, true) + if err != nil { + return connStr, err } - if level == -1 { - level = wiremessage.DefaultZstdLevel + // If p.SRVMaxHosts is non-zero and is less than the number of hosts, randomly + // select SRVMaxHosts hosts from parsedHosts. + if connStr.SRVMaxHosts > 0 && connStr.SRVMaxHosts < len(parsedHosts) { + random.Shuffle(len(parsedHosts), func(i, j int) { + parsedHosts[i], parsedHosts[j] = parsedHosts[j], parsedHosts[i] + }) + parsedHosts = parsedHosts[:connStr.SRVMaxHosts] } - p.ZstdLevel = level - p.ZstdLevelSet = true - default: - if p.UnknownOptions == nil { - p.UnknownOptions = make(map[string][]string) + + var hosts []string + for _, host := range parsedHosts { + host, err = sanitizeHost(host) + if err != nil { + return connStr, fmt.Errorf("invalid host %q: %w", host, err) + } + if host != "" { + hosts = append(hosts, host) + } } - p.UnknownOptions[lowerKey] = append(p.UnknownOptions[lowerKey], value) + connStr.Hosts = hosts + } + if len(connStr.Hosts) == 0 { + return nil, fmt.Errorf("must have at least 1 host") } - if p.Options == nil { - p.Options = make(map[string][]string) + err = connStr.setDefaultAuthParams(extractedDatabase.db) + if err != nil { + return nil, err } - p.Options[lowerKey] = append(p.Options[lowerKey], value) - return nil + // If WTimeout was set from manual options passed in, set WTImeoutSet to true. + if connStr.WTimeoutSetFromOption { + connStr.WTimeoutSet = true + } + + return connStr, nil +} + +// IsValidServerMonitoringMode will return true if the given string matches a +// valid server monitoring mode. +func IsValidServerMonitoringMode(mode string) bool { + return mode == ServerMonitoringModeAuto || + mode == ServerMonitoringModeStream || + mode == ServerMonitoringModePoll } func extractQueryArgsFromURI(uri string) ([]string, error) { diff --git a/vendor/go.mongodb.org/mongo-driver/x/mongo/driver/crypt.go b/vendor/go.mongodb.org/mongo-driver/x/mongo/driver/crypt.go index 4c254c03c..576c007d6 100644 --- a/vendor/go.mongodb.org/mongo-driver/x/mongo/driver/crypt.go +++ b/vendor/go.mongodb.org/mongo-driver/x/mongo/driver/crypt.go @@ -9,6 +9,7 @@ package driver import ( "context" "crypto/tls" + "errors" "fmt" "io" "strings" @@ -399,7 +400,7 @@ func (c *crypt) decryptKey(kmsCtx *mongocrypt.KmsContext) error { res := make([]byte, bytesNeeded) bytesRead, err := conn.Read(res) - if err != nil && err != io.EOF { + if err != nil && !errors.Is(err, io.EOF) { return err } diff --git a/vendor/go.mongodb.org/mongo-driver/x/mongo/driver/dns/dns.go b/vendor/go.mongodb.org/mongo-driver/x/mongo/driver/dns/dns.go index 848554d3a..6573a4c1a 100644 --- a/vendor/go.mongodb.org/mongo-driver/x/mongo/driver/dns/dns.go +++ b/vendor/go.mongodb.org/mongo-driver/x/mongo/driver/dns/dns.go @@ -104,8 +104,8 @@ func (r *Resolver) fetchSeedlistFromSRV(host string, srvName string, stopOnErr b } func validateSRVResult(recordFromSRV, inputHostName string) error { - separatedInputDomain := strings.Split(inputHostName, ".") - separatedRecord := strings.Split(recordFromSRV, ".") + separatedInputDomain := strings.Split(strings.ToLower(inputHostName), ".") + separatedRecord := strings.Split(strings.ToLower(recordFromSRV), ".") if len(separatedRecord) < 2 { return errors.New("DNS name must contain at least 2 labels") } diff --git a/vendor/go.mongodb.org/mongo-driver/x/mongo/driver/ocsp/config.go b/vendor/go.mongodb.org/mongo-driver/x/mongo/driver/ocsp/config.go index eac2aab7f..5b720cd59 100644 --- a/vendor/go.mongodb.org/mongo-driver/x/mongo/driver/ocsp/config.go +++ b/vendor/go.mongodb.org/mongo-driver/x/mongo/driver/ocsp/config.go @@ -57,11 +57,11 @@ func newConfig(certChain []*x509.Certificate, opts *VerifyOptions) (config, erro var err error cfg.ocspRequestBytes, err = ocsp.CreateRequest(cfg.serverCert, cfg.issuer, nil) if err != nil { - return cfg, fmt.Errorf("error creating OCSP request: %v", err) + return cfg, fmt.Errorf("error creating OCSP request: %w", err) } cfg.ocspRequest, err = ocsp.ParseRequest(cfg.ocspRequestBytes) if err != nil { - return cfg, fmt.Errorf("error parsing OCSP request bytes: %v", err) + return cfg, fmt.Errorf("error parsing OCSP request bytes: %w", err) } return cfg, nil diff --git a/vendor/go.mongodb.org/mongo-driver/x/mongo/driver/ocsp/ocsp.go b/vendor/go.mongodb.org/mongo-driver/x/mongo/driver/ocsp/ocsp.go index 849530fde..870072872 100644 --- a/vendor/go.mongodb.org/mongo-driver/x/mongo/driver/ocsp/ocsp.go +++ b/vendor/go.mongodb.org/mongo-driver/x/mongo/driver/ocsp/ocsp.go @@ -161,10 +161,10 @@ func processStaple(cfg config, staple []byte) (*ResponseDetails, error) { // If the stapled response could not be parsed correctly, error. This can happen if the response is malformed, // the response does not cover the certificate presented by the server, or if the response contains an error // status. - return nil, fmt.Errorf("error parsing stapled response: %v", err) + return nil, fmt.Errorf("error parsing stapled response: %w", err) } if err = verifyResponse(cfg, parsedResponse); err != nil { - return nil, fmt.Errorf("error validating stapled response: %v", err) + return nil, fmt.Errorf("error validating stapled response: %w", err) } return extractResponseDetails(parsedResponse), nil @@ -192,7 +192,7 @@ func isMustStapleCertificate(cert *x509.Certificate) (bool, error) { // Use []*big.Int to ensure that all values in the sequence can be successfully unmarshalled. var featureValues []*big.Int if _, err := asn1.Unmarshal(featureExtension.Value, &featureValues); err != nil { - return false, fmt.Errorf("error unmarshalling TLS feature extension values: %v", err) + return false, fmt.Errorf("error unmarshalling TLS feature extension values: %w", err) } for _, value := range featureValues { diff --git a/vendor/go.mongodb.org/mongo-driver/x/mongo/driver/operation.go b/vendor/go.mongodb.org/mongo-driver/x/mongo/driver/operation.go index 905c9cfc5..b39a63abe 100644 --- a/vendor/go.mongodb.org/mongo-driver/x/mongo/driver/operation.go +++ b/vendor/go.mongodb.org/mongo-driver/x/mongo/driver/operation.go @@ -458,7 +458,7 @@ func (op Operation) getServerAndConnection( if err := pinnedConn.PinToTransaction(); err != nil { // Close the original connection to avoid a leak. _ = conn.Close() - return nil, nil, fmt.Errorf("error incrementing connection reference count when starting a transaction: %v", err) + return nil, nil, fmt.Errorf("error incrementing connection reference count when starting a transaction: %w", err) } op.Client.PinnedConnection = pinnedConn } @@ -1492,7 +1492,7 @@ func (op Operation) addWriteConcern(dst []byte, desc description.SelectedServer) } t, data, err := wc.MarshalBSONValue() - if err == writeconcern.ErrEmptyWriteConcern { + if errors.Is(err, writeconcern.ErrEmptyWriteConcern) { return dst, nil } if err != nil { @@ -1748,7 +1748,7 @@ func (op Operation) createReadPref(desc description.SelectedServer, isOpQuery bo doc = bsoncore.AppendBooleanElement(doc, "enabled", *hedgeEnabled) doc, err = bsoncore.AppendDocumentEnd(doc, hedgeIdx) if err != nil { - return nil, fmt.Errorf("error creating hedge document: %v", err) + return nil, fmt.Errorf("error creating hedge document: %w", err) } } diff --git a/vendor/go.mongodb.org/mongo-driver/x/mongo/driver/topology/connection.go b/vendor/go.mongodb.org/mongo-driver/x/mongo/driver/topology/connection.go index ac78c1204..13035abc0 100644 --- a/vendor/go.mongodb.org/mongo-driver/x/mongo/driver/topology/connection.go +++ b/vendor/go.mongodb.org/mongo-driver/x/mongo/driver/topology/connection.go @@ -337,7 +337,10 @@ func (c *connection) cancellationListenerCallback() { func (c *connection) writeWireMessage(ctx context.Context, wm []byte) error { var err error if atomic.LoadInt64(&c.state) != connConnected { - return ConnectionError{ConnectionID: c.id, message: "connection is closed"} + return ConnectionError{ + ConnectionID: c.id, + message: "connection is closed", + } } var deadline time.Time @@ -388,7 +391,10 @@ func (c *connection) write(ctx context.Context, wm []byte) (err error) { // readWireMessage reads a wiremessage from the connection. The dst parameter will be overwritten. func (c *connection) readWireMessage(ctx context.Context) ([]byte, error) { if atomic.LoadInt64(&c.state) != connConnected { - return nil, ConnectionError{ConnectionID: c.id, message: "connection is closed"} + return nil, ConnectionError{ + ConnectionID: c.id, + message: "connection is closed", + } } var deadline time.Time @@ -411,7 +417,7 @@ func (c *connection) readWireMessage(ctx context.Context) ([]byte, error) { // We closeConnection the connection because we don't know if there are other bytes left to read. c.close() message := errMsg - if err == io.EOF { + if errors.Is(err, io.EOF) { message = "socket was unexpectedly closed" } return nil, ConnectionError{ diff --git a/vendor/go.mongodb.org/mongo-driver/x/mongo/driver/topology/errors.go b/vendor/go.mongodb.org/mongo-driver/x/mongo/driver/topology/errors.go index 7ce41864e..a6630aae7 100644 --- a/vendor/go.mongodb.org/mongo-driver/x/mongo/driver/topology/errors.go +++ b/vendor/go.mongodb.org/mongo-driver/x/mongo/driver/topology/errors.go @@ -8,6 +8,7 @@ package topology import ( "context" + "errors" "fmt" "time" @@ -86,9 +87,9 @@ type pinnedConnections struct { // Error implements the error interface. func (w WaitQueueTimeoutError) Error() string { errorMsg := "timed out while checking out a connection from connection pool" - switch w.Wrapped { - case nil: - case context.Canceled: + switch { + case w.Wrapped == nil: + case errors.Is(w.Wrapped, context.Canceled): errorMsg = fmt.Sprintf( "%s: %s", "canceled while checking out a connection from connection pool", diff --git a/vendor/go.mongodb.org/mongo-driver/x/mongo/driver/topology/pool.go b/vendor/go.mongodb.org/mongo-driver/x/mongo/driver/topology/pool.go index 6e150344d..6ca23c071 100644 --- a/vendor/go.mongodb.org/mongo-driver/x/mongo/driver/topology/pool.go +++ b/vendor/go.mongodb.org/mongo-driver/x/mongo/driver/topology/pool.go @@ -375,6 +375,13 @@ func (p *pool) close(ctx context.Context) { // Empty the idle connections stack and try to deliver ErrPoolClosed to any waiting wantConns // from idleConnWait while holding the idleMu lock. p.idleMu.Lock() + for _, conn := range p.idleConns { + _ = p.removeConnection(conn, reason{ + loggerConn: logger.ReasonConnClosedPoolClosed, + event: event.ReasonPoolClosed, + }, nil) + _ = p.closeConnection(conn) // We don't care about errors while closing the connection. + } p.idleConns = p.idleConns[:0] for { w := p.idleConnWait.popFront() @@ -402,16 +409,6 @@ func (p *pool) close(ctx context.Context) { } p.createConnectionsCond.L.Unlock() - // Now that we're not holding any locks, remove all of the connections we collected from the - // pool. - for _, conn := range conns { - _ = p.removeConnection(conn, reason{ - loggerConn: logger.ReasonConnClosedPoolClosed, - event: event.ReasonPoolClosed, - }, nil) - _ = p.closeConnection(conn) // We don't care about errors while closing the connection. - } - if mustLogPoolMessage(p) { logPoolMessage(p, logger.ConnectionPoolClosed) } @@ -422,6 +419,16 @@ func (p *pool) close(ctx context.Context) { Address: p.address.String(), }) } + + // Now that we're not holding any locks, remove all of the connections we collected from the + // pool. + for _, conn := range conns { + _ = p.removeConnection(conn, reason{ + loggerConn: logger.ReasonConnClosedPoolClosed, + event: event.ReasonPoolClosed, + }, nil) + _ = p.closeConnection(conn) // We don't care about errors while closing the connection. + } } func (p *pool) pinConnectionToCursor() { @@ -782,20 +789,16 @@ func (p *pool) checkInNoEvent(conn *connection) error { // connection should never be perished due to max idle time. conn.bumpIdleDeadline() - if reason, perished := connectionPerished(conn); perished { - _ = p.removeConnection(conn, reason, nil) - go func() { - _ = p.closeConnection(conn) - }() - return nil - } - - if conn.pool.getState() == poolClosed { - _ = p.removeConnection(conn, reason{ + r, perished := connectionPerished(conn) + if !perished && conn.pool.getState() == poolClosed { + perished = true + r = reason{ loggerConn: logger.ReasonConnClosedPoolClosed, event: event.ReasonPoolClosed, - }, nil) - + } + } + if perished { + _ = p.removeConnection(conn, r, nil) go func() { _ = p.closeConnection(conn) }() @@ -825,12 +828,37 @@ func (p *pool) checkInNoEvent(conn *connection) error { return nil } +// clear calls clearImpl internally with a false interruptAllConnections value. +func (p *pool) clear(err error, serviceID *primitive.ObjectID) { + p.clearImpl(err, serviceID, false) +} + +// clearAll does same as the "clear" method but interrupts all connections. +func (p *pool) clearAll(err error, serviceID *primitive.ObjectID) { + p.clearImpl(err, serviceID, true) +} + +// interruptConnections interrupts the input connections. +func (p *pool) interruptConnections(conns []*connection) { + for _, conn := range conns { + _ = p.removeConnection(conn, reason{ + loggerConn: logger.ReasonConnClosedStale, + event: event.ReasonStale, + }, nil) + go func(c *connection) { + _ = p.closeConnection(c) + }(conn) + } +} + // clear marks all connections as stale by incrementing the generation number, stops all background // goroutines, removes all requests from idleConnWait and newConnWait, and sets the pool state to // "paused". If serviceID is nil, clear marks all connections as stale. If serviceID is not nil, // clear marks only connections associated with the given serviceID stale (for use in load balancer // mode). -func (p *pool) clear(err error, serviceID *primitive.ObjectID) { +// If interruptAllConnections is true, this function calls interruptConnections to interrupt all +// non-idle connections. +func (p *pool) clearImpl(err error, serviceID *primitive.ObjectID, interruptAllConnections bool) { if p.getState() == poolClosed { return } @@ -854,7 +882,51 @@ func (p *pool) clear(err error, serviceID *primitive.ObjectID) { } p.lastClearErr = err p.stateMu.Unlock() + } + + if mustLogPoolMessage(p) { + keysAndValues := logger.KeyValues{ + logger.KeyServiceID, serviceID, + } + + logPoolMessage(p, logger.ConnectionPoolCleared, keysAndValues...) + } + + if sendEvent && p.monitor != nil { + event := &event.PoolEvent{ + Type: event.PoolCleared, + Address: p.address.String(), + ServiceID: serviceID, + Interruption: interruptAllConnections, + Error: err, + } + p.monitor.Event(event) + } + + p.removePerishedConns() + if interruptAllConnections { + p.createConnectionsCond.L.Lock() + p.idleMu.Lock() + + idleConns := make(map[*connection]bool, len(p.idleConns)) + for _, idle := range p.idleConns { + idleConns[idle] = true + } + + conns := make([]*connection, 0, len(p.conns)) + for _, conn := range p.conns { + if _, ok := idleConns[conn]; !ok && p.stale(conn) { + conns = append(conns, conn) + } + } + + p.idleMu.Unlock() + p.createConnectionsCond.L.Unlock() + + p.interruptConnections(conns) + } + if serviceID == nil { pcErr := poolClearedError{err: err, address: p.address} // Clear the idle connections wait queue. @@ -881,23 +953,6 @@ func (p *pool) clear(err error, serviceID *primitive.ObjectID) { } p.createConnectionsCond.L.Unlock() } - - if mustLogPoolMessage(p) { - keysAndValues := logger.KeyValues{ - logger.KeyServiceID, serviceID, - } - - logPoolMessage(p, logger.ConnectionPoolCleared, keysAndValues...) - } - - if sendEvent && p.monitor != nil { - p.monitor.Event(&event.PoolEvent{ - Type: event.PoolCleared, - Address: p.address.String(), - ServiceID: serviceID, - Error: err, - }) - } } // getOrQueueForIdleConn attempts to deliver an idle connection to the given wantConn. If there is diff --git a/vendor/go.mongodb.org/mongo-driver/x/mongo/driver/topology/pool_generation_counter.go b/vendor/go.mongodb.org/mongo-driver/x/mongo/driver/topology/pool_generation_counter.go index 47fac2f61..dd10c0ce7 100644 --- a/vendor/go.mongodb.org/mongo-driver/x/mongo/driver/topology/pool_generation_counter.go +++ b/vendor/go.mongodb.org/mongo-driver/x/mongo/driver/topology/pool_generation_counter.go @@ -112,25 +112,21 @@ func (p *poolGenerationMap) stale(serviceIDPtr *primitive.ObjectID, knownGenerat return true } - serviceID := getServiceID(serviceIDPtr) - p.Lock() - defer p.Unlock() - - if stats, ok := p.generationMap[serviceID]; ok { - return knownGeneration < stats.generation + if generation, ok := p.getGeneration(serviceIDPtr); ok { + return knownGeneration < generation } return false } -func (p *poolGenerationMap) getGeneration(serviceIDPtr *primitive.ObjectID) uint64 { +func (p *poolGenerationMap) getGeneration(serviceIDPtr *primitive.ObjectID) (uint64, bool) { serviceID := getServiceID(serviceIDPtr) p.Lock() defer p.Unlock() if stats, ok := p.generationMap[serviceID]; ok { - return stats.generation + return stats.generation, true } - return 0 + return 0, false } func (p *poolGenerationMap) getNumConns(serviceIDPtr *primitive.ObjectID) uint64 { diff --git a/vendor/go.mongodb.org/mongo-driver/x/mongo/driver/topology/rtt_monitor.go b/vendor/go.mongodb.org/mongo-driver/x/mongo/driver/topology/rtt_monitor.go index 0934beed8..3dd031f2e 100644 --- a/vendor/go.mongodb.org/mongo-driver/x/mongo/driver/topology/rtt_monitor.go +++ b/vendor/go.mongodb.org/mongo-driver/x/mongo/driver/topology/rtt_monitor.go @@ -267,7 +267,7 @@ func percentile(perc float64, samples []time.Duration, minSamples int) time.Dura p, err := stats.Percentile(floatSamples, perc) if err != nil { - panic(fmt.Errorf("x/mongo/driver/topology: error calculating %f percentile RTT: %v for samples:\n%v", perc, err, floatSamples)) + panic(fmt.Errorf("x/mongo/driver/topology: error calculating %f percentile RTT: %w for samples:\n%v", perc, err, floatSamples)) } return time.Duration(p) } @@ -318,7 +318,7 @@ func (r *rttMonitor) Stats() string { var err error stdDev, err = stats.StandardDeviation(floatSamples) if err != nil { - panic(fmt.Errorf("x/mongo/driver/topology: error calculating standard deviation RTT: %v for samples:\n%v", err, floatSamples)) + panic(fmt.Errorf("x/mongo/driver/topology: error calculating standard deviation RTT: %w for samples:\n%v", err, floatSamples)) } } diff --git a/vendor/go.mongodb.org/mongo-driver/x/mongo/driver/topology/server.go b/vendor/go.mongodb.org/mongo-driver/x/mongo/driver/topology/server.go index 1a9ee2824..f4c6d744a 100644 --- a/vendor/go.mongodb.org/mongo-driver/x/mongo/driver/topology/server.go +++ b/vendor/go.mongodb.org/mongo-driver/x/mongo/driver/topology/server.go @@ -15,6 +15,7 @@ import ( "sync/atomic" "time" + "go.mongodb.org/mongo-driver/bson" "go.mongodb.org/mongo-driver/bson/primitive" "go.mongodb.org/mongo-driver/event" "go.mongodb.org/mongo-driver/internal/driverutil" @@ -333,7 +334,7 @@ func (s *Server) ProcessHandshakeError(err error, startingGenerationNumber uint6 return } // Ignore the error if the connection is stale. - if startingGenerationNumber < s.pool.generation.getGeneration(serviceID) { + if generation, _ := s.pool.generation.getGeneration(serviceID); startingGenerationNumber < generation { return } @@ -415,8 +416,8 @@ func (s *Server) RequestImmediateCheck() { // (error, true) if the error is a WriteConcernError and the falls under the requirements for SDAM error // handling and (nil, false) otherwise. func getWriteConcernErrorForProcessing(err error) (*driver.WriteConcernError, bool) { - writeCmdErr, ok := err.(driver.WriteCommandError) - if !ok { + var writeCmdErr driver.WriteCommandError + if !errors.As(err, &writeCmdErr) { return nil, false } @@ -549,9 +550,7 @@ func (s *Server) update() { checkNow := s.checkNow done := s.done - defer func() { - _ = recover() - }() + defer logUnexpectedFailure(s.cfg.logger, "Encountered unexpected failure updating server") closeServer := func() { s.subLock.Lock() @@ -603,7 +602,7 @@ func (s *Server) update() { // Perform the next check. desc, err := s.check() - if err == errCheckCancelled { + if errors.Is(err, errCheckCancelled) { if atomic.LoadInt64(&s.state) != serverConnected { continue } @@ -640,7 +639,11 @@ func (s *Server) update() { // Clear the pool once the description has been updated to Unknown. Pass in a nil service ID to clear // because the monitoring routine only runs for non-load balanced deployments in which servers don't return // IDs. - s.pool.clear(err, nil) + if timeoutCnt > 0 { + s.pool.clearAll(err, nil) + } else { + s.pool.clear(err, nil) + } } // We're either not handling a timeout error, or we just handled the 2nd consecutive // timeout error. In either case, reset the timeout count to 0 and return false to @@ -683,10 +686,7 @@ func (s *Server) updateDescription(desc description.Server) { return } - defer func() { - // ¯\_(ツ)_/¯ - _ = recover() - }() + defer logUnexpectedFailure(s.cfg.logger, "Encountered unexpected failure updating server description") // Anytime we update the server description to something other than "unknown", set the pool to // "ready". Do this before updating the description so that connections can be checked out as @@ -1060,10 +1060,24 @@ func (s *Server) publishServerHeartbeatSucceededEvent(connectionID string, } if mustLogServerMessage(s) { - logServerMessage(s, logger.TopologyServerHeartbeatStarted, + descRaw, _ := bson.Marshal(struct { + description.Server `bson:",inline"` + Ok int32 + }{ + Server: desc, + Ok: func() int32 { + if desc.LastError != nil { + return 0 + } + + return 1 + }(), + }) + + logServerMessage(s, logger.TopologyServerHeartbeatSucceeded, logger.KeyAwaited, await, logger.KeyDurationMS, duration.Milliseconds(), - logger.KeyReply, desc) + logger.KeyReply, bson.Raw(descRaw).String()) } } diff --git a/vendor/go.mongodb.org/mongo-driver/x/mongo/driver/topology/topology.go b/vendor/go.mongodb.org/mongo-driver/x/mongo/driver/topology/topology.go index bbffbd1da..3dbbcfb86 100644 --- a/vendor/go.mongodb.org/mongo-driver/x/mongo/driver/topology/topology.go +++ b/vendor/go.mongodb.org/mongo-driver/x/mongo/driver/topology/topology.go @@ -15,7 +15,6 @@ import ( "errors" "fmt" "net" - "net/url" "strconv" "strings" "sync" @@ -30,6 +29,7 @@ import ( "go.mongodb.org/mongo-driver/mongo/description" "go.mongodb.org/mongo-driver/mongo/options" "go.mongodb.org/mongo-driver/x/mongo/driver" + "go.mongodb.org/mongo-driver/x/mongo/driver/connstring" "go.mongodb.org/mongo-driver/x/mongo/driver/dns" ) @@ -87,6 +87,8 @@ type Topology struct { rescanSRVInterval time.Duration pollHeartbeatTime atomic.Value // holds a bool + hosts []string + updateCallback updateTopologyCallback fsm *fsm @@ -153,7 +155,12 @@ func New(cfg *Config) (*Topology, error) { } if t.cfg.URI != "" { - t.pollingRequired = strings.HasPrefix(t.cfg.URI, "mongodb+srv://") && !t.cfg.LoadBalanced + connStr, err := connstring.Parse(t.cfg.URI) + if err != nil { + return nil, err + } + t.pollingRequired = (connStr.Scheme == connstring.SchemeMongoDBSRV) && !t.cfg.LoadBalanced + t.hosts = connStr.RawHosts } t.publishTopologyOpeningEvent() @@ -269,6 +276,32 @@ func logServerSelectionFailed( logger.KeyFailure, err.Error()) } +// logUnexpectedFailure is a defer-recover function for logging unexpected +// failures encountered while maintaining a topology. +// +// Most topology maintenance actions, such as updating a server, should not take +// down a client's application. This function provides a best-effort to log +// unexpected failures. If the logger passed to this function is nil, then the +// recovery will be silent. +func logUnexpectedFailure(log *logger.Logger, msg string, callbacks ...func()) { + r := recover() + if r == nil { + return + } + + defer func() { + for _, clbk := range callbacks { + clbk() + } + }() + + if log == nil { + return + } + + log.Print(logger.LevelInfo, logger.ComponentTopology, fmt.Sprintf("%s: %v", msg, r)) +} + // Connect initializes a Topology and starts the monitoring process. This function // must be called to properly monitor the topology. func (t *Topology) Connect() error { @@ -351,26 +384,21 @@ func (t *Topology) Connect() error { } t.serversLock.Unlock() - uri, err := url.Parse(t.cfg.URI) - if err != nil { - return err - } - parsedHosts := strings.Split(uri.Host, ",") if mustLogTopologyMessage(t, logger.LevelInfo) { - logTopologyThirdPartyUsage(t, parsedHosts) + logTopologyThirdPartyUsage(t, t.hosts) } if t.pollingRequired { // sanity check before passing the hostname to resolver - if len(parsedHosts) != 1 { + if len(t.hosts) != 1 { return fmt.Errorf("URI with SRV must include one and only one hostname") } - _, _, err = net.SplitHostPort(uri.Host) + _, _, err = net.SplitHostPort(t.hosts[0]) if err == nil { // we were able to successfully extract a port from the host, // but should not be able to when using SRV return fmt.Errorf("URI with srv must not include a port number") } - go t.pollSRVRecords(uri.Host) + go t.pollSRVRecords(t.hosts[0]) t.pollingwg.Add(1) } @@ -546,7 +574,7 @@ func (t *Topology) SelectServer(ctx context.Context, ss description.ServerSelect return nil, err } - defer t.Unsubscribe(sub) + defer func() { _ = t.Unsubscribe(sub) }() } suitable, selectErr = t.selectServerFromSubscription(ctx, sub.Updates, selectionState) @@ -768,12 +796,11 @@ func (t *Topology) pollSRVRecords(hosts string) { defer pollTicker.Stop() t.pollHeartbeatTime.Store(false) var doneOnce bool - defer func() { - // ¯\_(ツ)_/¯ - if r := recover(); r != nil && !doneOnce { + defer logUnexpectedFailure(t.cfg.logger, "Encountered unexpected failure polling SRV records", func() { + if !doneOnce { <-t.pollingDone } - }() + }) for { select { diff --git a/vendor/go.uber.org/fx/.golangci.yml b/vendor/go.uber.org/fx/.golangci.yml new file mode 100644 index 000000000..307f22b7c --- /dev/null +++ b/vendor/go.uber.org/fx/.golangci.yml @@ -0,0 +1,95 @@ +output: + # Make output more digestible with quickfix in vim/emacs/etc. + sort-results: true + print-issued-lines: false + +linters: + # We'll track the golangci-lint default linters manually + # instead of letting them change without our control. + disable-all: true + enable: + # golangci-lint defaults: + - gosimple + - govet + - ineffassign + - staticcheck + - unused + + # Our own extras: + - gofumpt + - nolintlint # lints nolint directives + - revive + - errorlint + + # License header check: + - goheader + +linters-settings: + govet: + # These govet checks are disabled by default, but they're useful. + enable: + - niliness + - reflectvaluecompare + - sortslice + - unusedwrite + + goheader: + values: + const: + COMPANY: 'Uber Technologies, Inc.' + regexp: + YEAR_RANGE: '\d{4}(-\d{4})?' + template: |- + Copyright (c) {{ YEAR_RANGE }} {{ COMPANY }} + + 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. + + +issues: + # Print all issues reported by all linters. + max-issues-per-linter: 0 + max-same-issues: 0 + + # Don't ignore some of the issues that golangci-lint considers okay. + # This includes documenting all exported entities. + exclude-use-default: false + + exclude-rules: + # Don't warn on unused parameters. + # Parameter names are useful; replacing them with '_' is undesirable. + - linters: [revive] + text: 'unused-parameter: parameter \S+ seems to be unused, consider removing or renaming it as _' + + # staticcheck already has smarter checks for empty blocks. + # revive's empty-block linter has false positives. + # For example, as of writing this, the following is not allowed. + # for foo() { } + - linters: [revive] + text: 'empty-block: this block is empty, you can remove it' + + # It's okay if internal packages and examples in docs/ + # don't have package comments. + - linters: [revive] + path: '.+/internal/.+|^internal/.+|^docs/.+' + text: 'should have a package comment' + + # It's okay for tests to use dot imports. + - linters: [revive] + path: '_test\.go$' + text: 'should not use dot imports' diff --git a/vendor/go.uber.org/fx/CHANGELOG.md b/vendor/go.uber.org/fx/CHANGELOG.md index 7c43848c4..96b030d02 100644 --- a/vendor/go.uber.org/fx/CHANGELOG.md +++ b/vendor/go.uber.org/fx/CHANGELOG.md @@ -10,6 +10,16 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [1.21.0](https://github.com/uber-go/fx/compare/v1.20.1...v1.21.0) - 2024-03-13 + +### Added +- fxtest: Add WithTestLogger option that uses a `testing.TB` as the + Fx event logger. +- An fxevent logger that can log events using a slog logger has been added. + +### Changed +- Upgrade Dig dependency to v1.17.1 + ## [1.20.1](https://github.com/uber-go/fx/compare/v1.20.0...v1.20.1) - 2023-10-17 ### Added diff --git a/vendor/go.uber.org/fx/Makefile b/vendor/go.uber.org/fx/Makefile index f03be60ed..bbda9cc12 100644 --- a/vendor/go.uber.org/fx/Makefile +++ b/vendor/go.uber.org/fx/Makefile @@ -1,27 +1,27 @@ -export GOBIN ?= $(shell pwd)/bin +# Directory containing the Makefile. +PROJECT_ROOT = $(dir $(abspath $(lastword $(MAKEFILE_LIST)))) + +export GOBIN ?= $(PROJECT_ROOT)/bin +export PATH := $(GOBIN):$(PATH) -GOLINT = $(GOBIN)/golint -STATICCHECK = $(GOBIN)/staticcheck FXLINT = $(GOBIN)/fxlint MDOX = $(GOBIN)/mdox -GO_FILES = $(shell \ - find . '(' -path '*/.*' -o -path './vendor' -o -path '*/testdata/*' ')' -prune \ - -o -name '*.go' -print | cut -b3-) - MODULES = . ./tools ./docs ./internal/e2e # 'make cover' should not run on docs by default. # We run that separately explicitly on a specific platform. COVER_MODULES ?= $(filter-out ./docs,$(MODULES)) +.PHONY: all +all: build lint test + .PHONY: build build: go build ./... -.PHONY: install -install: - go mod download +.PHONY: lint +lint: golangci-lint tidy-lint fx-lint docs-lint .PHONY: test test: @@ -35,52 +35,40 @@ cover: go test -race -coverprofile=cover.out -coverpkg=./... ./... && \ go tool cover -html=cover.out -o cover.html) &&) true -$(GOLINT): tools/go.mod - cd tools && go install golang.org/x/lint/golint - -$(STATICCHECK): tools/go.mod - cd tools && go install honnef.co/go/tools/cmd/staticcheck - -$(MDOX): tools/go.mod - cd tools && go install github.com/bwplotka/mdox - -$(FXLINT): tools/cmd/fxlint/main.go - cd tools && go install go.uber.org/fx/tools/cmd/fxlint - -.PHONY: lint -lint: $(GOLINT) $(STATICCHECK) $(FXLINT) docs-check - @rm -rf lint.log - @echo "Checking formatting..." - @gofmt -d -s $(GO_FILES) 2>&1 | tee lint.log - @echo "Checking vet..." - @$(foreach dir,$(MODULES),(cd $(dir) && go vet ./... 2>&1) &&) true | tee -a lint.log - @echo "Checking lint..." - @$(foreach dir,$(MODULES),(cd $(dir) && $(GOLINT) ./... 2>&1) &&) true | tee -a lint.log - @echo "Checking staticcheck..." - @$(foreach dir,$(MODULES),(cd $(dir) && $(STATICCHECK) ./... 2>&1) &&) true | tee -a lint.log - @echo "Checking fxlint..." - @$(FXLINT) ./... | tee -a lint.log - @echo "Checking for unresolved FIXMEs..." - @git grep -i fixme | grep -v -e vendor -e Makefile -e .md | tee -a lint.log - @echo "Checking for license headers..." - @./checklicense.sh | tee -a lint.log - @[ ! -s lint.log ] - @echo "Checking 'go mod tidy'..." - @make tidy - @if ! git diff --quiet; then \ - echo "'go mod tidy' resulted in changes or working tree is dirty:"; \ - git --no-pager diff; \ - fi +.PHONY: tidy +tidy: + @$(foreach dir,$(MODULES),(cd $(dir) && go mod tidy) &&) true .PHONY: docs docs: cd docs && yarn build -.PHONY: docs-check -docs-check: $(MDOX) +.PHONY: golangci-lint +golangci-lint: + @$(foreach mod,$(MODULES), \ + (cd $(mod) && \ + echo "[lint] golangci-lint: $(mod)" && \ + golangci-lint run --path-prefix $(mod)) &&) true + +.PHONY: tidy-lint +tidy-lint: + @$(foreach mod,$(MODULES), \ + (cd $(mod) && \ + echo "[lint] tidy: $(mod)" && \ + go mod tidy && \ + git diff --exit-code -- go.mod go.sum) &&) true + +.PHONY: fx-lint +fx-lint: $(FXLINT) + @$(FXLINT) ./... + +.PHONY: docs-lint +docs-lint: $(MDOX) @echo "Checking documentation" - @make -C docs check | tee -a lint.log + @make -C docs check -.PHONY: tidy -tidy: - @$(foreach dir,$(MODULES),(cd $(dir) && go mod tidy) &&) true +$(MDOX): tools/go.mod + cd tools && go install github.com/bwplotka/mdox + +$(FXLINT): tools/cmd/fxlint/main.go + cd tools && go install go.uber.org/fx/tools/cmd/fxlint diff --git a/vendor/go.uber.org/fx/annotated.go b/vendor/go.uber.org/fx/annotated.go index 301f77609..4e0238661 100644 --- a/vendor/go.uber.org/fx/annotated.go +++ b/vendor/go.uber.org/fx/annotated.go @@ -56,8 +56,10 @@ import ( // }) // // Annotated cannot be used with constructors which produce fx.Out objects. +// When used with [Supply], Target is a value instead of a constructor. // -// When used with fx.Supply, the target is a value rather than a constructor function. +// This type represents a less powerful version of the [Annotate] construct; +// prefer [Annotate] where possible. type Annotated struct { // If specified, this will be used as the name for all non-error values returned // by the constructor. For more information on named values, see the documentation @@ -109,16 +111,17 @@ var ( } ) -// Annotation can be passed to Annotate(f interface{}, anns ...Annotation) -// for annotating the parameter and result types of a function. +// Annotation specifies how to wrap a target for [Annotate]. +// It can be used to set up additional options for a constructor, +// or with [Supply], for a value. type Annotation interface { apply(*annotated) error build(*annotated) (interface{}, error) } var ( - _typeOfError reflect.Type = reflect.TypeOf((*error)(nil)).Elem() - _nilError = reflect.Zero(_typeOfError) + _typeOfError = reflect.TypeOf((*error)(nil)).Elem() + _nilError = reflect.Zero(_typeOfError) ) // annotationError is a wrapper for an error that was encountered while @@ -178,7 +181,6 @@ func verifyValueQuote(value string) (string, error) { return "", errTagValueSyntaxEndingQuote } return value[i+1:], nil - } // Check whether the tag follows valid struct. @@ -211,7 +213,6 @@ func verifyAnnotateTag(tag string) error { tag = value } return nil - } // Given func(T1, T2, T3, ..., TN), this generates a type roughly @@ -336,8 +337,15 @@ func (pt paramTagsAnnotation) parameters(ann *annotated) ( } // ParamTags is an Annotation that annotates the parameter(s) of a function. +// // When multiple tags are specified, each tag is mapped to the corresponding // positional parameter. +// For example, the following will refer to a named database connection, +// and the default, unnamed logger: +// +// fx.Annotate(func(log *log.Logger, conn *sql.DB) *Handler { +// // ... +// }, fx.ParamTags("", `name:"ro"`)) // // ParamTags cannot be used in a function that takes an fx.In struct as a // parameter. @@ -524,6 +532,12 @@ func (rt resultTagsAnnotation) results(ann *annotated) ( // When multiple tags are specified, each tag is mapped to the corresponding // positional result. // +// For example, the following will produce a named database connection. +// +// fx.Annotate(func() (*sql.DB, error) { +// // ... +// }, fx.ResultTags(`name:"ro"`)) +// // ResultTags cannot be used on a function that returns an fx.Out struct. func ResultTags(tags ...string) Annotation { return resultTagsAnnotation{tags} @@ -644,8 +658,8 @@ func (la *lifecycleHookAnnotation) build(ann *annotated) (interface{}, error) { } var ( - _typeOfLifecycle reflect.Type = reflect.TypeOf((*Lifecycle)(nil)).Elem() - _typeOfContext reflect.Type = reflect.TypeOf((*context.Context)(nil)).Elem() + _typeOfLifecycle = reflect.TypeOf((*Lifecycle)(nil)).Elem() + _typeOfContext = reflect.TypeOf((*context.Context)(nil)).Elem() ) // buildHookInstaller returns a function that appends a hook to Lifecycle when called, @@ -1704,9 +1718,6 @@ func (ann *annotated) currentParamTypes() []reflect.Type { // ) // ) // -// is considered an invalid usage and will not apply any of the -// Annotations to NewGateway. -// // If more tags are given than the number of parameters/results, only // the ones up to the number of parameters/results will be applied. // @@ -1734,7 +1745,7 @@ func (ann *annotated) currentParamTypes() []reflect.Type { // // If we provide the above to the application, // any constructor in the Fx application can inject its HTTP handlers -// by using fx.Annotate, fx.Annotated, or fx.Out. +// by using [Annotate], [Annotated], or [Out]. // // fx.Annotate( // func(..) http.Handler { ... }, diff --git a/vendor/go.uber.org/fx/app.go b/vendor/go.uber.org/fx/app.go index e07bd5bdc..8ede19eb5 100644 --- a/vendor/go.uber.org/fx/app.go +++ b/vendor/go.uber.org/fx/app.go @@ -40,13 +40,19 @@ import ( ) // DefaultTimeout is the default timeout for starting or stopping an -// application. It can be configured with the StartTimeout and StopTimeout +// application. It can be configured with the [StartTimeout] and [StopTimeout] // options. const DefaultTimeout = 15 * time.Second -// An Option configures an App using the functional options paradigm -// popularized by Rob Pike. If you're unfamiliar with this style, see -// https://commandcenter.blogspot.com/2014/01/self-referential-functions-and-design.html. +// An Option specifies the behavior of the application. +// This is the primary means by which you interface with Fx. +// +// Zero or more options are specified at startup with [New]. +// Options cannot be changed once an application has been initialized. +// Options may be grouped into a single option using the [Options] function. +// A group of options providing a logical unit of functionality +// may use [Module] to name that functionality +// and scope certain operations to within that module. type Option interface { fmt.Stringer @@ -73,37 +79,17 @@ func (errs errorOption) String() string { return fmt.Sprintf("fx.Error(%v)", multierr.Combine(errs...)) } -// Options converts a collection of Options into a single Option. This allows -// packages to bundle sophisticated functionality into easy-to-use Fx modules. -// For example, a logging package might export a simple option like this: -// -// package logging -// -// var Module = fx.Provide(func() *log.Logger { -// return log.New(os.Stdout, "", 0) -// }) -// -// A shared all-in-one microservice package could then use Options to bundle -// logging with similar metrics, tracing, and gRPC modules: +// Options bundles a group of options together into a single option. // -// package server +// Use Options to group together options that don't belong in a [Module]. // -// var Module = fx.Options( -// logging.Module, -// metrics.Module, -// tracing.Module, -// grpc.Module, +// var loggingAndMetrics = fx.Options( +// logging.Module, +// metrics.Module, +// fx.Invoke(func(logger *log.Logger) { +// app.globalLogger = logger +// }), // ) -// -// Since this all-in-one module has a minimal API surface, it's easy to add -// new functionality to it without breaking existing users. Individual -// applications can take advantage of all this functionality with only one -// line of code: -// -// app := fx.New(server.Module) -// -// Use this pattern sparingly, since it limits the user's ability to customize -// their application. func Options(opts ...Option) Option { return optionGroup(opts) } @@ -125,6 +111,10 @@ func (og optionGroup) String() string { } // StartTimeout changes the application's start timeout. +// This controls the total time that all [OnStart] hooks have to complete. +// If the timeout is exceeded, the application will fail to start. +// +// Defaults to [DefaultTimeout]. func StartTimeout(v time.Duration) Option { return startTimeoutOption(v) } @@ -145,6 +135,10 @@ func (t startTimeoutOption) String() string { } // StopTimeout changes the application's stop timeout. +// This controls the total time that all [OnStop] hooks have to complete. +// If the timeout is exceeded, the application will exit early. +// +// Defaults to [DefaultTimeout]. func StopTimeout(v time.Duration) Option { return stopTimeoutOption(v) } @@ -186,18 +180,27 @@ func (o recoverFromPanicsOption) String() string { return "fx.RecoverFromPanics()" } -// WithLogger specifies how Fx should build an fxevent.Logger to log its events -// to. The argument must be a constructor with one of the following return -// types. +// WithLogger specifies the [fxevent.Logger] used by Fx to log its own events +// (e.g. a constructor was provided, a function was invoked, etc.). +// +// The argument to this is a constructor with one of the following return +// types: // // fxevent.Logger // (fxevent.Logger, error) // +// The constructor may depend on any other types provided to the application. // For example, // // WithLogger(func(logger *zap.Logger) fxevent.Logger { // return &fxevent.ZapLogger{Logger: logger} // }) +// +// If specified, Fx will construct the logger and log all its events to the +// specified logger. +// +// If Fx fails to build the logger, or no logger is specified, it will fall back to +// [fxevent.ConsoleLogger] configured to write to stderr. func WithLogger(constructor interface{}) Option { return withLoggerOption{ constructor: constructor, @@ -224,14 +227,15 @@ func (l withLoggerOption) String() string { // Printer is the interface required by Fx's logging backend. It's implemented // by most loggers, including the one bundled with the standard library. // -// Note, this will be deprecate with next release and you will need to implement -// fxevent.Logger interface instead. +// Note, this will be deprecated in a future release. +// Prefer to use [fxevent.Logger] instead. type Printer interface { Printf(string, ...interface{}) } // Logger redirects the application's log output to the provided printer. -// Deprecated: use WithLogger instead. +// +// Prefer to use [WithLogger] instead. func Logger(p Printer) Option { return loggerOption{p} } @@ -252,8 +256,11 @@ func (l loggerOption) String() string { return fmt.Sprintf("fx.Logger(%v)", l.p) } -// NopLogger disables the application's log output. Note that this makes some -// failures difficult to debug, since no errors are printed to console. +// NopLogger disables the application's log output. +// +// Note that this makes some failures difficult to debug, +// since no errors are printed to console. +// Prefer to log to an in-memory buffer instead. var NopLogger = WithLogger(func() fxevent.Logger { return fxevent.NopLogger }) // An App is a modular application built around dependency injection. Most @@ -261,11 +268,11 @@ var NopLogger = WithLogger(func() fxevent.Logger { return fxevent.NopLogger }) // convenience method. In more unusual cases, users may need to use the Err, // Start, Done, and Stop methods by hand instead of relying on Run. // -// New creates and initializes an App. All applications begin with a +// [New] creates and initializes an App. All applications begin with a // constructor for the Lifecycle type already registered. // // In addition to that built-in functionality, users typically pass a handful -// of Provide options and one or more Invoke options. The Provide options +// of [Provide] options and one or more [Invoke] options. The Provide options // teach the application how to instantiate a variety of types, and the Invoke // options describe how to initialize the application. // @@ -286,7 +293,7 @@ var NopLogger = WithLogger(func() fxevent.Logger { return fxevent.NopLogger }) // // At this point, the application has successfully started up. If started via // Run, it will continue operating until it receives a shutdown signal from -// Done (see the Done documentation for details); if started explicitly via +// Done (see the [App.Done] documentation for details); if started explicitly via // Start, it will operate until the user calls Stop. On shutdown, OnStop hooks // execute one at a time, in reverse order, and must all complete within a // configurable deadline (again, 15 seconds by default). @@ -340,6 +347,10 @@ type invoke struct { } // ErrorHandler handles Fx application startup errors. +// Register these with [ErrorHook]. +// If specified, and the application fails to start up, +// the failure will still cause a crash, +// but you'll have a chance to log the error or take some other action. type ErrorHandler interface { HandleError(error) } @@ -407,7 +418,7 @@ func ValidateApp(opts ...Option) error { } // New creates and initializes an App, immediately executing any functions -// registered via Invoke options. See the documentation of the App struct for +// registered via [Invoke] options. See the documentation of the App struct for // details on the application's initialization, startup, and shutdown logic. func New(opts ...Option) *App { logger := fxlog.DefaultLogger(os.Stderr) @@ -526,6 +537,8 @@ func (app *App) log() fxevent.Logger { // initialization. On failure to build the dependency graph, it is attached // to the error and if possible, colorized to highlight the root cause of the // failure. +// +// Note that DotGraph does not yet recognize [Decorate] and [Replace]. type DotGraph string type errWithGraph interface { @@ -546,9 +559,14 @@ func (err errorWithGraph) Error() string { } // VisualizeError returns the visualization of the error if available. +// +// Note that VisualizeError does not yet recognize [Decorate] and [Replace]. func VisualizeError(err error) (string, error) { - if e, ok := err.(errWithGraph); ok && e.Graph() != "" { - return string(e.Graph()), nil + var erg errWithGraph + if errors.As(err, &erg) { + if g := erg.Graph(); g != "" { + return string(g), nil + } } return "", errors.New("unable to visualize error") } @@ -563,12 +581,15 @@ func (app *App) exit(code int) { } // Run starts the application, blocks on the signals channel, and then -// gracefully shuts the application down. It uses DefaultTimeout to set a +// gracefully shuts the application down. It uses [DefaultTimeout] to set a // deadline for application startup and shutdown, unless the user has -// configured different timeouts with the StartTimeout or StopTimeout options. +// configured different timeouts with the [StartTimeout] or [StopTimeout] options. // It's designed to make typical applications simple to run. +// The minimal Fx application looks like this: +// +// fx.New().Run() // -// However, all of Run's functionality is implemented in terms of the exported +// All of Run's functionality is implemented in terms of the exported // Start, Done, and Stop methods. Applications with more specialized needs // can use those methods directly instead of relying on Run. func (app *App) Run() { @@ -716,36 +737,31 @@ func (app *App) Stop(ctx context.Context) (err error) { // the same terminal as the running process. // // Alternatively, a signal can be broadcast to all done channels manually by -// using the Shutdown functionality (see the Shutdowner documentation for details). -// -// Note: The channel Done returns will not receive a signal unless the application -// as been started via Start or Run. +// using the Shutdown functionality (see the [Shutdowner] documentation for details). func (app *App) Done() <-chan os.Signal { return app.receivers.Done() } // Wait returns a channel of [ShutdownSignal] to block on after starting the -// application and function, similar to [App.Done], but with a minor difference. -// Should an ExitCode be provided as a [ShutdownOption] to -// the Shutdowner Shutdown method, the exit code will be available as part -// of the ShutdownSignal struct. -// -// Should the app receive a SIGTERM or SIGINT, the given -// signal will be populated in the ShutdownSignal struct. +// application and function, similar to [App.Done], but with a minor difference: +// if the app was shut down via [Shutdowner.Shutdown], +// the exit code (if provied via [ExitCode]) will be available +// in the [ShutdownSignal] struct. +// Otherwise, the signal that was received will be set. func (app *App) Wait() <-chan ShutdownSignal { return app.receivers.Wait() } -// StartTimeout returns the configured startup timeout. Apps default to using -// DefaultTimeout, but users can configure this behavior using the -// StartTimeout option. +// StartTimeout returns the configured startup timeout. +// This defaults to [DefaultTimeout], and can be changed with the +// [StartTimeout] option. func (app *App) StartTimeout() time.Duration { return app.startTimeout } -// StopTimeout returns the configured shutdown timeout. Apps default to using -// DefaultTimeout, but users can configure this behavior using the StopTimeout -// option. +// StopTimeout returns the configured shutdown timeout. +// This defaults to [DefaultTimeout], and can be changed with the +// [StopTimeout] option. func (app *App) StopTimeout() time.Duration { return app.stopTimeout } diff --git a/vendor/go.uber.org/fx/app_unixes.go b/vendor/go.uber.org/fx/app_unixes.go index 5126e1618..8de1c509c 100644 --- a/vendor/go.uber.org/fx/app_unixes.go +++ b/vendor/go.uber.org/fx/app_unixes.go @@ -25,5 +25,7 @@ package fx import "golang.org/x/sys/unix" -const _sigINT = unix.SIGINT -const _sigTERM = unix.SIGTERM +const ( + _sigINT = unix.SIGINT + _sigTERM = unix.SIGTERM +) diff --git a/vendor/go.uber.org/fx/app_wasm.go b/vendor/go.uber.org/fx/app_wasm.go index 5e2ca8d01..fb4197a5a 100644 --- a/vendor/go.uber.org/fx/app_wasm.go +++ b/vendor/go.uber.org/fx/app_wasm.go @@ -25,5 +25,7 @@ package fx import "syscall" -const _sigINT = syscall.SIGINT -const _sigTERM = syscall.SIGTERM +const ( + _sigINT = syscall.SIGINT + _sigTERM = syscall.SIGTERM +) diff --git a/vendor/go.uber.org/fx/app_windows.go b/vendor/go.uber.org/fx/app_windows.go index b19a8d829..cbd571408 100644 --- a/vendor/go.uber.org/fx/app_windows.go +++ b/vendor/go.uber.org/fx/app_windows.go @@ -25,5 +25,7 @@ package fx import "golang.org/x/sys/windows" -const _sigINT = windows.SIGINT -const _sigTERM = windows.SIGTERM +const ( + _sigINT = windows.SIGINT + _sigTERM = windows.SIGTERM +) diff --git a/vendor/go.uber.org/fx/checklicense.sh b/vendor/go.uber.org/fx/checklicense.sh deleted file mode 100644 index 28057d2fb..000000000 --- a/vendor/go.uber.org/fx/checklicense.sh +++ /dev/null @@ -1,17 +0,0 @@ -#!/bin/bash -e - -ERROR_COUNT=0 -while read -r file -do - case "$(head -1 "${file}")" in - *"Copyright (c) "*" Uber Technologies, Inc.") - # everything's cool - ;; - *) - echo "$file is missing license header." - (( ERROR_COUNT++ )) - ;; - esac -done < <(git ls-files "*\.go" | grep -v /testdata/) - -exit $ERROR_COUNT diff --git a/vendor/go.uber.org/fx/decorate.go b/vendor/go.uber.org/fx/decorate.go index 509134517..c07d2a7da 100644 --- a/vendor/go.uber.org/fx/decorate.go +++ b/vendor/go.uber.org/fx/decorate.go @@ -123,6 +123,11 @@ import ( // return r // }), // +// Decorators can not add new values to the graph, +// only modify or replace existing ones. +// Types returned by a decorator that are not already in the graph +// will be ignored. +// // # Decorator scope // // Modifications made to the Fx graph with fx.Decorate are scoped to the @@ -216,7 +221,7 @@ func runDecorator(c container, d decorator, opts ...dig.DecorateOption) (err err decorator := d.Target defer func() { if err != nil { - err = fmt.Errorf("fx.Decorate(%v) from:\n%+vFailed: %v", decorator, d.Stack, err) + err = fmt.Errorf("fx.Decorate(%v) from:\n%+vFailed: %w", decorator, d.Stack, err) } }() diff --git a/vendor/go.uber.org/fx/doc.go b/vendor/go.uber.org/fx/doc.go index 590fe8d39..4ee2227ac 100644 --- a/vendor/go.uber.org/fx/doc.go +++ b/vendor/go.uber.org/fx/doc.go @@ -27,13 +27,334 @@ // to use struct tags or embed special types, so Fx automatically works well // with most Go packages. // -// Basic usage is explained in the package-level example below. If you're new -// to Fx, start there! Advanced features, including named instances, optional -// parameters, and value groups, are explained under the In and Out types. +// # Basic usage +// +// Basic usage is explained in the package-level example. +// If you're new to Fx, start there! +// +// Advanced features, including named instances, optional parameters, +// and value groups, are explained in this section further down. // // # Testing Fx Applications // // To test functions that use the Lifecycle type or to write end-to-end tests // of your Fx application, use the helper functions and types provided by the // go.uber.org/fx/fxtest package. +// +// # Parameter Structs +// +// Fx constructors declare their dependencies as function parameters. This can +// quickly become unreadable if the constructor has a lot of dependencies. +// +// func NewHandler(users *UserGateway, comments *CommentGateway, posts *PostGateway, votes *VoteGateway, authz *AuthZGateway) *Handler { +// // ... +// } +// +// To improve the readability of constructors like this, create a struct that +// lists all the dependencies as fields and change the function to accept that +// struct instead. The new struct is called a parameter struct. +// +// Fx has first class support for parameter structs: any struct embedding +// fx.In gets treated as a parameter struct, so the individual fields in the +// struct are supplied via dependency injection. Using a parameter struct, we +// can make the constructor above much more readable: +// +// type HandlerParams struct { +// fx.In +// +// Users *UserGateway +// Comments *CommentGateway +// Posts *PostGateway +// Votes *VoteGateway +// AuthZ *AuthZGateway +// } +// +// func NewHandler(p HandlerParams) *Handler { +// // ... +// } +// +// Though it's rarelly necessary to mix the two, constructors can receive any +// combination of parameter structs and parameters. +// +// func NewHandler(p HandlerParams, l *log.Logger) *Handler { +// // ... +// } +// +// # Result Structs +// +// Result structs are the inverse of parameter structs. +// These structs represent multiple outputs from a +// single function as fields. Fx treats all structs embedding fx.Out as result +// structs, so other constructors can rely on the result struct's fields +// directly. +// +// Without result structs, we sometimes have function definitions like this: +// +// func SetupGateways(conn *sql.DB) (*UserGateway, *CommentGateway, *PostGateway, error) { +// // ... +// } +// +// With result structs, we can make this both more readable and easier to +// modify in the future: +// +// type Gateways struct { +// fx.Out +// +// Users *UserGateway +// Comments *CommentGateway +// Posts *PostGateway +// } +// +// func SetupGateways(conn *sql.DB) (Gateways, error) { +// // ... +// } +// +// # Named Values +// +// Some use cases require the application container to hold multiple values of +// the same type. +// +// A constructor that produces a result struct can tag any field with +// `name:".."` to have the corresponding value added to the graph under the +// specified name. An application may contain at most one unnamed value of a +// given type, but may contain any number of named values of the same type. +// +// type ConnectionResult struct { +// fx.Out +// +// ReadWrite *sql.DB `name:"rw"` +// ReadOnly *sql.DB `name:"ro"` +// } +// +// func ConnectToDatabase(...) (ConnectionResult, error) { +// // ... +// return ConnectionResult{ReadWrite: rw, ReadOnly: ro}, nil +// } +// +// Similarly, a constructor that accepts a parameter struct can tag any field +// with `name:".."` to have the corresponding value injected by name. +// +// type GatewayParams struct { +// fx.In +// +// WriteToConn *sql.DB `name:"rw"` +// ReadFromConn *sql.DB `name:"ro"` +// } +// +// func NewCommentGateway(p GatewayParams) (*CommentGateway, error) { +// // ... +// } +// +// Note that both the name AND type of the fields on the +// parameter struct must match the corresponding result struct. +// +// # Optional Dependencies +// +// Constructors often have optional dependencies on some types: if those types are +// missing, they can operate in a degraded state. Fx supports optional +// dependencies via the `optional:"true"` tag to fields on parameter structs. +// +// type UserGatewayParams struct { +// fx.In +// +// Conn *sql.DB +// Cache *redis.Client `optional:"true"` +// } +// +// If an optional field isn't available in the container, the constructor +// receives the field's zero value. +// +// func NewUserGateway(p UserGatewayParams, log *log.Logger) (*UserGateway, error) { +// if p.Cache == nil { +// log.Print("Caching disabled") +// } +// // ... +// } +// +// Constructors that declare optional dependencies MUST gracefully handle +// situations in which those dependencies are absent. +// +// The optional tag also allows adding new dependencies without breaking +// existing consumers of the constructor. +// +// The optional tag may be combined with the name tag to declare a named +// value dependency optional. +// +// type GatewayParams struct { +// fx.In +// +// WriteToConn *sql.DB `name:"rw"` +// ReadFromConn *sql.DB `name:"ro" optional:"true"` +// } +// +// func NewCommentGateway(p GatewayParams, log *log.Logger) (*CommentGateway, error) { +// if p.ReadFromConn == nil { +// log.Print("Warning: Using RW connection for reads") +// p.ReadFromConn = p.WriteToConn +// } +// // ... +// } +// +// # Value Groups +// +// To make it easier to produce and consume many values of the same type, Fx +// supports named, unordered collections called value groups. +// +// Constructors can send values into value groups by returning a result struct +// tagged with `group:".."`. +// +// type HandlerResult struct { +// fx.Out +// +// Handler Handler `group:"server"` +// } +// +// func NewHelloHandler() HandlerResult { +// // ... +// } +// +// func NewEchoHandler() HandlerResult { +// // ... +// } +// +// Any number of constructors may provide values to this named collection, but +// the ordering of the final collection is unspecified. +// +// Value groups require parameter and result structs to use fields with +// different types: if a group of constructors each returns type T, parameter +// structs consuming the group must use a field of type []T. +// +// Parameter structs can request a value group by using a field of type []T +// tagged with `group:".."`. +// This will execute all constructors that provide a value to +// that group in an unspecified order, then collect all the results into a +// single slice. +// +// type ServerParams struct { +// fx.In +// +// Handlers []Handler `group:"server"` +// } +// +// func NewServer(p ServerParams) *Server { +// server := newServer() +// for _, h := range p.Handlers { +// server.Register(h) +// } +// return server +// } +// +// Note that values in a value group are unordered. Fx makes no guarantees +// about the order in which these values will be produced. +// +// # Soft Value Groups +// +// By default, when a constructor declares a dependency on a value group, +// all values provided to that value group are eagerly instantiated. +// That is undesirable for cases where an optional component wants to +// constribute to a value group, but only if it was actually used +// by the rest of the application. +// +// A soft value group can be thought of as a best-attempt at populating the +// group with values from constructors that have already run. In other words, +// if a constructor's output type is only consumed by a soft value group, +// it will not be run. +// +// Note that Fx randomizes the order of values in the value group, +// so the slice of values may not match the order in which constructors +// were run. +// +// To declare a soft relationship between a group and its constructors, use +// the `soft` option on the input group tag (`group:"[groupname],soft"`). +// This option is only valid for input parameters. +// +// type Params struct { +// fx.In +// +// Handlers []Handler `group:"server,soft"` +// Logger *zap.Logger +// } +// +// func NewServer(p Params) *Server { +// // ... +// } +// +// With such a declaration, a constructor that provides a value to the 'server' +// value group will be called only if there's another instantiated component +// that consumes the results of that constructor. +// +// func NewHandlerAndLogger() (Handler, *zap.Logger) { +// // ... +// } +// +// func NewHandler() Handler { +// // ... +// } +// +// fx.Provide( +// fx.Annotate(NewHandlerAndLogger, fx.ResultTags(`group:"server"`)), +// fx.Annotate(NewHandler, fx.ResultTags(`group:"server"`)), +// ) +// +// NewHandlerAndLogger will be called because the Logger is consumed by the +// application, but NewHandler will not be called because it's only consumed +// by the soft value group. +// +// # Value group flattening +// +// By default, values of type T produced to a value group are consumed as []T. +// +// type HandlerResult struct { +// fx.Out +// +// Handler Handler `group:"server"` +// } +// +// type ServerParams struct { +// fx.In +// +// Handlers []Handler `group:"server"` +// } +// +// This means that if the producer produces []T, +// the consumer must consume [][]T. +// +// There are cases where it's desirable +// for the producer (the fx.Out) to produce multiple values ([]T), +// and for the consumer (the fx.In) consume them as a single slice ([]T). +// Fx offers flattened value groups for this purpose. +// +// To provide multiple values for a group from a result struct, produce a +// slice and use the `,flatten` option on the group tag. This indicates that +// each element in the slice should be injected into the group individually. +// +// type HandlerResult struct { +// fx.Out +// +// Handler []Handler `group:"server,flatten"` +// // Consumed as []Handler in ServerParams. +// } +// +// # Unexported fields +// +// By default, a type that embeds fx.In may not have any unexported fields. The +// following will return an error if used with Fx. +// +// type Params struct { +// fx.In +// +// Logger *zap.Logger +// mu sync.Mutex +// } +// +// If you have need of unexported fields on such a type, you may opt-into +// ignoring unexported fields by adding the ignore-unexported struct tag to the +// fx.In. For example, +// +// type Params struct { +// fx.In `ignore-unexported:"true"` +// +// Logger *zap.Logger +// mu sync.Mutex +// } package fx // import "go.uber.org/fx" diff --git a/vendor/go.uber.org/fx/fxevent/doc.go b/vendor/go.uber.org/fx/fxevent/doc.go new file mode 100644 index 000000000..748268f7e --- /dev/null +++ b/vendor/go.uber.org/fx/fxevent/doc.go @@ -0,0 +1,73 @@ +// Copyright (c) 2024 Uber Technologies, Inc. +// +// 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. + +// Package fxevent defines a means of changing how Fx logs internal events. +// +// # Changing the Logger +// +// By default, the [ConsoleLogger] is used, writing readable logs to stderr. +// +// You can use the fx.WithLogger option to change this behavior +// by providing a constructor that returns an alternative implementation +// of the [Logger] interface. +// +// fx.WithLogger(func(cfg *Config) Logger { +// return &MyFxLogger{...} +// }) +// +// Because WithLogger accepts a constructor, +// you can pull any other types and values from inside the container, +// allowing use of the same logger that your application uses. +// +// For example, if you're using Zap inside your application, +// you can use the [ZapLogger] implementation of the interface. +// +// fx.New( +// fx.Provide( +// zap.NewProduction, // provide a *zap.Logger +// ), +// fx.WithLogger( +// func(log *zap.Logger) fxevent.Logger { +// return &fxevent.ZapLogger{Logger: log} +// }, +// ), +// ) +// +// # Implementing a Custom Logger +// +// To implement a custom logger, you need to implement the [Logger] interface. +// The Logger.LogEvent method accepts an [Event] object. +// +// [Event] is a union type that represents all the different events that Fx can emit. +// You can use a type switch to handle each event type. +// See 'event.go' for a list of all the possible events. +// +// func (l *MyFxLogger) LogEvent(e fxevent.Event) { +// switch e := e.(type) { +// case *fxevent.OnStartExecuting: +// // ... +// // ... +// } +// } +// +// The events contain enough information for observability and debugging purposes. +// If you need more information in them, +// feel free to open an issue to discuss the addition. +package fxevent diff --git a/vendor/go.uber.org/fx/fxevent/slog.go b/vendor/go.uber.org/fx/fxevent/slog.go new file mode 100644 index 000000000..f699a64b2 --- /dev/null +++ b/vendor/go.uber.org/fx/fxevent/slog.go @@ -0,0 +1,279 @@ +// Copyright (c) 2021 Uber Technologies, Inc. +// +// 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. + +//go:build go1.21 + +package fxevent + +import ( + "context" + "log/slog" + "strconv" + "strings" +) + +var _ Logger = (*SlogLogger)(nil) + +// SlogLogger an Fx event logger that logs events using a slog logger. +type SlogLogger struct { + Logger *slog.Logger + + ctx context.Context + logLevel slog.Level + errorLevel *slog.Level +} + +// UseContext sets the context that will be used when logging to slog. +func (l *SlogLogger) UseContext(ctx context.Context) { + l.ctx = ctx +} + +// UseLogLevel sets the level of non-error logs emitted by Fx to level. +func (l *SlogLogger) UseLogLevel(level slog.Level) { + l.logLevel = level +} + +// UseErrorLevel sets the level of error logs emitted by Fx to level. +func (l *SlogLogger) UseErrorLevel(level slog.Level) { + l.errorLevel = &level +} + +func (l *SlogLogger) filter(fields []any) []any { + filtered := []any{} + + for _, field := range fields { + if field, ok := field.(slog.Attr); ok { + if _, ok := field.Value.Any().(slogFieldSkip); ok { + continue + } + } + + filtered = append(filtered, field) + } + + return filtered +} + +func (l *SlogLogger) logEvent(msg string, fields ...any) { + l.Logger.Log(l.ctx, l.logLevel, msg, l.filter(fields)...) +} + +func (l *SlogLogger) logError(msg string, fields ...any) { + lvl := slog.LevelError + if l.errorLevel != nil { + lvl = *l.errorLevel + } + + l.Logger.Log(l.ctx, lvl, msg, l.filter(fields)...) +} + +// LogEvent logs the given event to the provided Zap logger. +func (l *SlogLogger) LogEvent(event Event) { + switch e := event.(type) { + case *OnStartExecuting: + l.logEvent("OnStart hook executing", + slog.String("callee", e.FunctionName), + slog.String("caller", e.CallerName), + ) + case *OnStartExecuted: + if e.Err != nil { + l.logError("OnStart hook failed", + slog.String("callee", e.FunctionName), + slog.String("caller", e.CallerName), + slogErr(e.Err), + ) + } else { + l.logEvent("OnStart hook executed", + slog.String("callee", e.FunctionName), + slog.String("caller", e.CallerName), + slog.String("runtime", e.Runtime.String()), + ) + } + case *OnStopExecuting: + l.logEvent("OnStop hook executing", + slog.String("callee", e.FunctionName), + slog.String("caller", e.CallerName), + ) + case *OnStopExecuted: + if e.Err != nil { + l.logError("OnStop hook failed", + slog.String("callee", e.FunctionName), + slog.String("caller", e.CallerName), + slogErr(e.Err), + ) + } else { + l.logEvent("OnStop hook executed", + slog.String("callee", e.FunctionName), + slog.String("caller", e.CallerName), + slog.String("runtime", e.Runtime.String()), + ) + } + case *Supplied: + if e.Err != nil { + l.logError("error encountered while applying options", + slog.String("type", e.TypeName), + slogStrings("moduletrace", e.ModuleTrace), + slogStrings("stacktrace", e.StackTrace), + slogMaybeModuleField(e.ModuleName), + slogErr(e.Err)) + } else { + l.logEvent("supplied", + slog.String("type", e.TypeName), + slogStrings("stacktrace", e.StackTrace), + slogStrings("moduletrace", e.ModuleTrace), + slogMaybeModuleField(e.ModuleName), + ) + } + case *Provided: + for _, rtype := range e.OutputTypeNames { + l.logEvent("provided", + slog.String("constructor", e.ConstructorName), + slogStrings("stacktrace", e.StackTrace), + slogStrings("moduletrace", e.ModuleTrace), + slogMaybeModuleField(e.ModuleName), + slog.String("type", rtype), + slogMaybeBool("private", e.Private), + ) + } + if e.Err != nil { + l.logError("error encountered while applying options", + slogMaybeModuleField(e.ModuleName), + slogStrings("stacktrace", e.StackTrace), + slogStrings("moduletrace", e.ModuleTrace), + slogErr(e.Err)) + } + case *Replaced: + for _, rtype := range e.OutputTypeNames { + l.logEvent("replaced", + slogStrings("stacktrace", e.StackTrace), + slogStrings("moduletrace", e.ModuleTrace), + slogMaybeModuleField(e.ModuleName), + slog.String("type", rtype), + ) + } + if e.Err != nil { + l.logError("error encountered while replacing", + slogStrings("stacktrace", e.StackTrace), + slogStrings("moduletrace", e.ModuleTrace), + slogMaybeModuleField(e.ModuleName), + slogErr(e.Err)) + } + case *Decorated: + for _, rtype := range e.OutputTypeNames { + l.logEvent("decorated", + slog.String("decorator", e.DecoratorName), + slogStrings("stacktrace", e.StackTrace), + slogStrings("moduletrace", e.ModuleTrace), + slogMaybeModuleField(e.ModuleName), + slog.String("type", rtype), + ) + } + if e.Err != nil { + l.logError("error encountered while applying options", + slogStrings("stacktrace", e.StackTrace), + slogStrings("moduletrace", e.ModuleTrace), + slogMaybeModuleField(e.ModuleName), + slogErr(e.Err)) + } + case *Run: + if e.Err != nil { + l.logError("error returned", + slog.String("name", e.Name), + slog.String("kind", e.Kind), + slogMaybeModuleField(e.ModuleName), + slogErr(e.Err), + ) + } else { + l.logEvent("run", + slog.String("name", e.Name), + slog.String("kind", e.Kind), + slogMaybeModuleField(e.ModuleName), + ) + } + case *Invoking: + // Do not log stack as it will make logs hard to read. + l.logEvent("invoking", + slog.String("function", e.FunctionName), + slogMaybeModuleField(e.ModuleName), + ) + case *Invoked: + if e.Err != nil { + l.logError("invoke failed", + slogErr(e.Err), + slog.String("stack", e.Trace), + slog.String("function", e.FunctionName), + slogMaybeModuleField(e.ModuleName), + ) + } + case *Stopping: + l.logEvent("received signal", + slog.String("signal", strings.ToUpper(e.Signal.String()))) + case *Stopped: + if e.Err != nil { + l.logError("stop failed", slogErr(e.Err)) + } + case *RollingBack: + l.logError("start failed, rolling back", slogErr(e.StartErr)) + case *RolledBack: + if e.Err != nil { + l.logError("rollback failed", slogErr(e.Err)) + } + case *Started: + if e.Err != nil { + l.logError("start failed", slogErr(e.Err)) + } else { + l.logEvent("started") + } + case *LoggerInitialized: + if e.Err != nil { + l.logError("custom logger initialization failed", slogErr(e.Err)) + } else { + l.logEvent("initialized custom fxevent.Logger", slog.String("function", e.ConstructorName)) + } + } +} + +type slogFieldSkip struct{} + +func slogMaybeModuleField(name string) slog.Attr { + if len(name) == 0 { + return slog.Any("module", slogFieldSkip{}) + } + return slog.String("module", name) +} + +func slogMaybeBool(name string, b bool) slog.Attr { + if !b { + return slog.Any(name, slogFieldSkip{}) + } + return slog.Bool(name, true) +} + +func slogErr(err error) slog.Attr { + return slog.String("error", err.Error()) +} + +func slogStrings(key string, str []string) slog.Attr { + attrs := make([]any, len(str)) + for i, val := range str { + attrs[i] = slog.String(strconv.Itoa(i), val) + } + return slog.Group(key, attrs...) +} diff --git a/vendor/go.uber.org/fx/inout.go b/vendor/go.uber.org/fx/inout.go index 05303944c..e40ab8af6 100644 --- a/vendor/go.uber.org/fx/inout.go +++ b/vendor/go.uber.org/fx/inout.go @@ -22,343 +22,22 @@ package fx import "go.uber.org/dig" -// In can be embedded in a constructor's parameter struct to take advantage of -// advanced dependency injection features. -// -// Modules should take a single parameter struct that embeds an In in order to -// provide a forward-compatible API: since adding fields to a struct is -// backward-compatible, modules can then add optional dependencies in minor -// releases. -// -// # Parameter Structs -// -// Fx constructors declare their dependencies as function parameters. This can -// quickly become unreadable if the constructor has a lot of dependencies. -// -// func NewHandler(users *UserGateway, comments *CommentGateway, posts *PostGateway, votes *VoteGateway, authz *AuthZGateway) *Handler { -// // ... -// } -// -// To improve the readability of constructors like this, create a struct that -// lists all the dependencies as fields and change the function to accept that -// struct instead. The new struct is called a parameter struct. -// -// Fx has first class support for parameter structs: any struct embedding -// fx.In gets treated as a parameter struct, so the individual fields in the -// struct are supplied via dependency injection. Using a parameter struct, we -// can make the constructor above much more readable: -// -// type HandlerParams struct { -// fx.In -// -// Users *UserGateway -// Comments *CommentGateway -// Posts *PostGateway -// Votes *VoteGateway -// AuthZ *AuthZGateway -// } -// -// func NewHandler(p HandlerParams) *Handler { -// // ... -// } -// -// Though it's rarely a good idea, constructors can receive any combination of -// parameter structs and parameters. -// -// func NewHandler(p HandlerParams, l *log.Logger) *Handler { -// // ... -// } -// -// # Optional Dependencies -// -// Constructors often have optional dependencies on some types: if those types are -// missing, they can operate in a degraded state. Fx supports optional -// dependencies via the `optional:"true"` tag to fields on parameter structs. -// -// type UserGatewayParams struct { -// fx.In -// -// Conn *sql.DB -// Cache *redis.Client `optional:"true"` -// } -// -// If an optional field isn't available in the container, the constructor -// receives the field's zero value. -// -// func NewUserGateway(p UserGatewayParams, log *log.Logger) (*UserGateway, error) { -// if p.Cache == nil { -// log.Print("Caching disabled") -// } -// // ... -// } -// -// Constructors that declare optional dependencies MUST gracefully handle -// situations in which those dependencies are absent. -// -// The optional tag also allows adding new dependencies without breaking -// existing consumers of the constructor. -// -// # Named Values -// -// Some use cases require the application container to hold multiple values of -// the same type. For details on producing named values, see the documentation -// for the Out type. -// -// Fx allows functions to consume named values via the `name:".."` tag on -// parameter structs. Note that both the name AND type of the fields on the -// parameter struct must match the corresponding result struct. -// -// type GatewayParams struct { -// fx.In -// -// WriteToConn *sql.DB `name:"rw"` -// ReadFromConn *sql.DB `name:"ro"` -// } -// -// The name tag may be combined with the optional tag to declare the -// dependency optional. -// -// type GatewayParams struct { -// fx.In -// -// WriteToConn *sql.DB `name:"rw"` -// ReadFromConn *sql.DB `name:"ro" optional:"true"` -// } -// -// func NewCommentGateway(p GatewayParams, log *log.Logger) (*CommentGateway, error) { -// if p.ReadFromConn == nil { -// log.Print("Warning: Using RW connection for reads") -// p.ReadFromConn = p.WriteToConn -// } -// // ... -// } -// -// # Value Groups -// -// To make it easier to produce and consume many values of the same type, Fx -// supports named, unordered collections called value groups. For details on -// producing value groups, see the documentation for the Out type. -// -// Functions can depend on a value group by requesting a slice tagged with -// `group:".."`. This will execute all constructors that provide a value to -// that group in an unspecified order, then collect all the results into a -// single slice. Keep in mind that this makes the types of the parameter and -// result struct fields different: if a group of constructors each returns -// type T, parameter structs consuming the group must use a field of type []T. -// -// type ServerParams struct { -// fx.In -// -// Handlers []Handler `group:"server"` -// } -// -// func NewServer(p ServerParams) *Server { -// server := newServer() -// for _, h := range p.Handlers { -// server.Register(h) -// } -// return server -// } -// -// Note that values in a value group are unordered. Fx makes no guarantees -// about the order in which these values will be produced. -// -// # Soft Value Groups -// -// A soft value group can be thought of as a best-attempt at populating the -// group with values from constructors that have already run. In other words, -// if a constructor's output type is only consumed by a soft value group, -// it will not be run. -// -// Note that Fx does not guarantee precise execution order of constructors -// or invokers, which means that the change in code that affects execution -// ordering of other constructors or functions will affect the values -// populated in this group. -// -// To declare a soft relationship between a group and its constructors, use -// the `soft` option on the group tag (`group:"[groupname],soft"`). -// This option is only valid for input parameters. -// -// type Params struct { -// fx.In -// -// Handlers []Handler `group:"server,soft"` -// Logger *zap.Logger -// } -// -// NewHandlerAndLogger := func() (Handler, *zap.Logger) { ... } -// NewHandler := func() Handler { ... } -// Foo := func(Params) { ... } -// -// app := fx.New( -// fx.Provide(fx.Annotate(NewHandlerAndLogger, fx.ResultTags(`group:"server"`))), -// fx.Provide(fx.Annotate(NewHandler, fx.ResultTags(`group::"server"`))), -// fx.Invoke(Foo), -// ) -// -// The only constructor called is `NewHandlerAndLogger`, because this also provides -// `*zap.Logger` needed in the `Params` struct received by `Foo`. The Handlers -// group will be populated with a single Handler returned by `NewHandlerAndLogger`. -// -// In the next example, the slice `s` isn't populated as the provider would be -// called only because `strings` soft group value is its only consumer. -// -// app := fx.New( -// fx.Provide( -// fx.Annotate( -// func() (string, int) { return "hello", 42 }, -// fx.ResultTags(`group:"strings"`), -// ), -// ), -// fx.Invoke( -// fx.Annotate(func(s []string) { -// // s will be an empty slice -// }, fx.ParamTags(`group:"strings,soft"`)), -// ), -// ) -// -// In the next example, the slice `s` will be populated because there is a -// consumer for the same type which is not a `soft` dependency. -// -// app := fx.New( -// fx.Provide( -// fx.Annotate( -// func() string { "hello" }, -// fx.ResultTags(`group:"strings"`), -// ), -// ), -// fx.Invoke( -// fx.Annotate(func(b []string) { -// // b is []string{"hello"} -// }, fx.ParamTags(`group:"strings"`)), -// ), -// fx.Invoke( -// fx.Annotate(func(s []string) { -// // s is []string{"hello"} -// }, fx.ParamTags(`group:"strings,soft"`)), -// ), -// ) -// -// # Unexported fields -// -// By default, a type that embeds fx.In may not have any unexported fields. The -// following will return an error if used with Fx. -// -// type Params struct { -// fx.In -// -// Logger *zap.Logger -// mu sync.Mutex -// } -// -// If you have need of unexported fields on such a type, you may opt-into -// ignoring unexported fields by adding the ignore-unexported struct tag to the -// fx.In. For example, -// -// type Params struct { -// fx.In `ignore-unexported:"true"` -// -// Logger *zap.Logger -// mu sync.Mutex -// } +// In can be embedded into a struct to mark it as a parameter struct. +// This allows it to make use of advanced dependency injection features. +// See package documentation for more information. +// +// It's recommended that shared modules use a single parameter struct to +// provide a forward-compatible API: +// adding new optional fields to a struct is backward-compatible, +// so modules can evolve as needs change. type In = dig.In -// Out is the inverse of In: it can be embedded in result structs to take -// advantage of advanced features. -// -// Modules should return a single result struct that embeds an Out in order to -// provide a forward-compatible API: since adding fields to a struct is -// backward-compatible, minor releases can provide additional types. -// -// # Result Structs -// -// Result structs are the inverse of parameter structs (discussed in the In -// documentation). These structs represent multiple outputs from a -// single function as fields. Fx treats all structs embedding fx.Out as result -// structs, so other constructors can rely on the result struct's fields -// directly. -// -// Without result structs, we sometimes have function definitions like this: -// -// func SetupGateways(conn *sql.DB) (*UserGateway, *CommentGateway, *PostGateway, error) { -// // ... -// } -// -// With result structs, we can make this both more readable and easier to -// modify in the future: -// -// type Gateways struct { -// fx.Out -// -// Users *UserGateway -// Comments *CommentGateway -// Posts *PostGateway -// } -// -// func SetupGateways(conn *sql.DB) (Gateways, error) { -// // ... -// } -// -// # Named Values -// -// Some use cases require the application container to hold multiple values of -// the same type. For details on consuming named values, see the documentation -// for the In type. -// -// A constructor that produces a result struct can tag any field with -// `name:".."` to have the corresponding value added to the graph under the -// specified name. An application may contain at most one unnamed value of a -// given type, but may contain any number of named values of the same type. -// -// type ConnectionResult struct { -// fx.Out -// -// ReadWrite *sql.DB `name:"rw"` -// ReadOnly *sql.DB `name:"ro"` -// } -// -// func ConnectToDatabase(...) (ConnectionResult, error) { -// // ... -// return ConnectionResult{ReadWrite: rw, ReadOnly: ro}, nil -// } -// -// # Value Groups -// -// To make it easier to produce and consume many values of the same type, Fx -// supports named, unordered collections called value groups. For details on -// consuming value groups, see the documentation for the In type. -// -// Constructors can send values into value groups by returning a result struct -// tagged with `group:".."`. -// -// type HandlerResult struct { -// fx.Out -// -// Handler Handler `group:"server"` -// } -// -// func NewHelloHandler() HandlerResult { -// // ... -// } -// -// func NewEchoHandler() HandlerResult { -// // ... -// } -// -// Any number of constructors may provide values to this named collection, but -// the ordering of the final collection is unspecified. Keep in mind that -// value groups require parameter and result structs to use fields with -// different types: if a group of constructors each returns type T, parameter -// structs consuming the group must use a field of type []T. -// -// To provide multiple values for a group from a result struct, produce a -// slice and use the `,flatten` option on the group tag. This indicates that -// each element in the slice should be injected into the group individually. -// -// type IntResult struct { -// fx.Out -// -// Handler []int `group:"server"` // Consume as [][]int -// Handler []int `group:"server,flatten"` // Consume as []int -// } +// Out is the inverse of In: it marks a struct as a result struct so that +// it can be used with advanced dependency injection features. +// See package documentation for more information. +// +// It's recommended that shared modules use a single result struct to +// provide a forward-compatible API: +// adding new fields to a struct is backward-compatible, +// so modules can produce more outputs as they grow. type Out = dig.Out diff --git a/vendor/go.uber.org/fx/internal/fxclock/clock.go b/vendor/go.uber.org/fx/internal/fxclock/clock.go index bf1c7058f..8d9e6e1d8 100644 --- a/vendor/go.uber.org/fx/internal/fxclock/clock.go +++ b/vendor/go.uber.org/fx/internal/fxclock/clock.go @@ -1,4 +1,4 @@ -// Copyright (c) 2021 Uber Technologies, Inc. +// Copyright (c) 2024 Uber Technologies, Inc. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal @@ -22,13 +22,13 @@ package fxclock import ( "context" + "sort" + "sync" "time" ) // Clock defines how Fx accesses time. -// The interface is pretty minimal but it matches github.com/benbjohnson/clock. -// We intentionally don't use that interface directly; -// this keeps it a test dependency for us. +// We keep the interface pretty minimal. type Clock interface { Now() time.Time Since(time.Time) time.Duration @@ -56,3 +56,205 @@ func (systemClock) Sleep(d time.Duration) { func (systemClock) WithTimeout(ctx context.Context, d time.Duration) (context.Context, context.CancelFunc) { return context.WithTimeout(ctx, d) } + +// Mock adapted from +// https://github.com/uber-go/zap/blob/7db06bc9b095571d3dc3d4eebdfbe4dd9bd20405/internal/ztest/clock.go. + +// Mock is a fake source of time. +// It implements standard time operations, +// but allows the user to control the passage of time. +// +// Use the [Add] method to progress time. +type Mock struct { + mu sync.RWMutex + now time.Time + + // The MockClock works by maintaining a list of waiters. + // Each waiter knows the time at which it should be resolved. + // When the clock advances, all waiters that are in range are resolved + // in chronological order. + waiters []waiter + waiterAdded *sync.Cond +} + +var _ Clock = (*Mock)(nil) + +// NewMock builds a new mock clock +// using the current actual time as the initial time. +func NewMock() *Mock { + m := &Mock{now: time.Now()} + m.waiterAdded = sync.NewCond(&m.mu) + return m +} + +// Now reports the current time. +func (c *Mock) Now() time.Time { + c.mu.RLock() + defer c.mu.RUnlock() + return c.now +} + +// Since reports the time elapsed since t. +// This is short for Now().Sub(t). +func (c *Mock) Since(t time.Time) time.Duration { + return c.Now().Sub(t) +} + +// Sleep pauses the current goroutine for the given duration. +// +// With the mock clock, this will freeze +// until the clock is advanced with [Add] past the deadline. +func (c *Mock) Sleep(d time.Duration) { + ch := make(chan struct{}) + c.runAt(c.Now().Add(d), func() { close(ch) }) + <-ch +} + +// WithTimeout returns a new context with a deadline of now + d. +// +// When the deadline is passed, the returned context's Done channel is closed +// and the context's Err method returns context.DeadlineExceeded. +// If the cancel function is called before the deadline is passed, +// the context's Err method returns context.Canceled. +func (c *Mock) WithTimeout(ctx context.Context, d time.Duration) (context.Context, context.CancelFunc) { + // Unfortunately, we can't use context.WithCancelCause here. + // Per its documentation (and verified by trying it): + // + // ctx, cancel := context.WithCancelCause(parent) + // cancel(myError) + // ctx.Err() // returns context.Canceled + // context.Cause(ctx) // returns myError + // + // So it won't do for our purposes. + deadline := c.Now().Add(d) + inner, cancelInner := context.WithCancel(ctx) + dctx := &deadlineCtx{ + inner: inner, + cancelInner: cancelInner, + done: make(chan struct{}), + deadline: deadline, + } + ctx = dctx + + c.runAt(deadline, func() { + dctx.cancel(context.DeadlineExceeded) + }) + return ctx, func() { dctx.cancel(context.Canceled) } +} + +type deadlineCtx struct { + inner context.Context + cancelInner func() + + done chan struct{} + deadline time.Time + + mu sync.Mutex // guards err; the rest is immutable + err error +} + +var _ context.Context = (*deadlineCtx)(nil) + +func (c *deadlineCtx) Deadline() (deadline time.Time, ok bool) { return c.deadline, true } +func (c *deadlineCtx) Done() <-chan struct{} { return c.done } +func (c *deadlineCtx) Value(key any) any { return c.inner.Value(key) } + +func (c *deadlineCtx) Err() error { + c.mu.Lock() + defer c.mu.Unlock() + return c.err +} + +func (c *deadlineCtx) cancel(err error) { + c.mu.Lock() + if c.err == nil { + c.err = err + close(c.done) + c.cancelInner() + } + c.mu.Unlock() +} + +// runAt schedules the given function to be run at the given time. +// The function runs without a lock held, so it may schedule more work. +func (c *Mock) runAt(t time.Time, fn func()) { + c.mu.Lock() + defer c.mu.Unlock() + + c.waiters = append(c.waiters, waiter{until: t, fn: fn}) + c.waiterAdded.Broadcast() +} + +// AwaitScheduled blocks until there are at least N +// operations scheduled for the future. +func (c *Mock) AwaitScheduled(n int) { + c.mu.Lock() + defer c.mu.Unlock() + + // Note: waiterAdded is associated with c.mu, + // the same lock we're holding here. + // + // When we call Wait(), it'll release the lock + // and block until signaled by runAt, + // at which point it'll reacquire the lock + // (waiting until runAt has released it). + for len(c.waiters) < n { + c.waiterAdded.Wait() + } +} + +type waiter struct { + until time.Time + fn func() +} + +// Add progresses time by the given duration. +// Other operations waiting for the time to advance +// will be resolved if they are within range. +// +// Side effects of operations waiting for the time to advance +// will take effect on a best-effort basis. +// Avoid racing with operations that have side effects. +// +// Panics if the duration is negative. +func (c *Mock) Add(d time.Duration) { + if d < 0 { + panic("cannot add negative duration") + } + + c.mu.Lock() + defer c.mu.Unlock() + + sort.Slice(c.waiters, func(i, j int) bool { + return c.waiters[i].until.Before(c.waiters[j].until) + }) + + newTime := c.now.Add(d) + // newTime won't be recorded until the end of this method. + // This ensures that any waiters that are resolved + // are resolved at the time they were expecting. + + for len(c.waiters) > 0 { + w := c.waiters[0] + if w.until.After(newTime) { + break + } + c.waiters[0] = waiter{} // avoid memory leak + c.waiters = c.waiters[1:] + + // The waiter is within range. + // Travel to the time of the waiter and resolve it. + c.now = w.until + + // The waiter may schedule more work + // so we must release the lock. + c.mu.Unlock() + w.fn() + // Sleeping here is necessary to let the side effects of waiters + // take effect before we continue. + time.Sleep(1 * time.Millisecond) + c.mu.Lock() + } + + c.now = newTime +} diff --git a/vendor/go.uber.org/fx/internal/lifecycle/lifecycle.go b/vendor/go.uber.org/fx/internal/lifecycle/lifecycle.go index 9c0b9891d..5abca666d 100644 --- a/vendor/go.uber.org/fx/internal/lifecycle/lifecycle.go +++ b/vendor/go.uber.org/fx/internal/lifecycle/lifecycle.go @@ -195,7 +195,7 @@ func (l *Lifecycle) Start(ctx context.Context) error { l.startRecords = make(HookRecords, 0, len(l.hooks)) l.mu.Unlock() - var returnState appState = incompleteStart + returnState := incompleteStart defer func() { l.mu.Lock() l.state = returnState diff --git a/vendor/go.uber.org/fx/invoke.go b/vendor/go.uber.org/fx/invoke.go index 523aef83b..f60b7c9eb 100644 --- a/vendor/go.uber.org/fx/invoke.go +++ b/vendor/go.uber.org/fx/invoke.go @@ -89,6 +89,7 @@ func (o invokeOption) String() string { } return fmt.Sprintf("fx.Invoke(%s)", strings.Join(items, ", ")) } + func runInvoke(c container, i invoke) error { fn := i.Target switch fn := fn.(type) { diff --git a/vendor/go.uber.org/fx/module.go b/vendor/go.uber.org/fx/module.go index bb4f74484..d0aa13404 100644 --- a/vendor/go.uber.org/fx/module.go +++ b/vendor/go.uber.org/fx/module.go @@ -41,8 +41,40 @@ type container interface { } // Module is a named group of zero or more fx.Options. -// A Module creates a scope in which certain operations are taken -// place. For more information, see [Decorate], [Replace], or [Invoke]. +// +// A Module scopes the effect of certain operations to within the module. +// For more information, see [Decorate], [Replace], or [Invoke]. +// +// Module allows packages to bundle sophisticated functionality into easy-to-use +// logical units. +// For example, a logging package might export a simple option like this: +// +// package logging +// +// var Module = fx.Module("logging", +// fx.Provide(func() *log.Logger { +// return log.New(os.Stdout, "", 0) +// }), +// // ... +// ) +// +// A shared all-in-one microservice package could use Module to bundle +// all required components of a microservice: +// +// package server +// +// var Module = fx.Module("server", +// logging.Module, +// metrics.Module, +// tracing.Module, +// rpc.Module, +// ) +// +// When new global functionality is added to the service ecosystem, +// it can be added to the shared module with minimal churn for users. +// +// Use the all-in-one pattern sparingly. +// It limits the flexibility available to the application. func Module(name string, opts ...Option) Option { mo := moduleOption{ name: name, diff --git a/vendor/go.uber.org/fx/signal.go b/vendor/go.uber.org/fx/signal.go index 1dbfd840e..8a86599ca 100644 --- a/vendor/go.uber.org/fx/signal.go +++ b/vendor/go.uber.org/fx/signal.go @@ -12,7 +12,7 @@ // // 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 PURPSignalE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// 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 diff --git a/vendor/go.uber.org/fx/version.go b/vendor/go.uber.org/fx/version.go index 15934d2ce..1b9be40d6 100644 --- a/vendor/go.uber.org/fx/version.go +++ b/vendor/go.uber.org/fx/version.go @@ -21,4 +21,4 @@ package fx // Version is exported for runtime compatibility checks. -const Version = "1.20.1" +const Version = "1.21.0" diff --git a/vendor/go.uber.org/zap/.golangci.yml b/vendor/go.uber.org/zap/.golangci.yml index fbc6df790..2346df135 100644 --- a/vendor/go.uber.org/zap/.golangci.yml +++ b/vendor/go.uber.org/zap/.golangci.yml @@ -17,7 +17,7 @@ linters: - unused # Our own extras: - - gofmt + - gofumpt - nolintlint # lints nolint directives - revive diff --git a/vendor/go.uber.org/zap/.readme.tmpl b/vendor/go.uber.org/zap/.readme.tmpl index 92aa65d66..4fea3027a 100644 --- a/vendor/go.uber.org/zap/.readme.tmpl +++ b/vendor/go.uber.org/zap/.readme.tmpl @@ -1,7 +1,15 @@ # :zap: zap [![GoDoc][doc-img]][doc] [![Build Status][ci-img]][ci] [![Coverage Status][cov-img]][cov] +
+ Blazing fast, structured, leveled logging in Go. +![Zap logo](assets/logo.png) + +[![GoDoc][doc-img]][doc] [![Build Status][ci-img]][ci] [![Coverage Status][cov-img]][cov] + +
+ ## Installation `go get -u go.uber.org/zap` @@ -92,7 +100,7 @@ standard.
-Released under the [MIT License](LICENSE.txt). +Released under the [MIT License](LICENSE). 1 In particular, keep in mind that we may be benchmarking against slightly older versions of other packages. Versions are diff --git a/vendor/go.uber.org/zap/CHANGELOG.md b/vendor/go.uber.org/zap/CHANGELOG.md index 11b465976..6d6cd5f4d 100644 --- a/vendor/go.uber.org/zap/CHANGELOG.md +++ b/vendor/go.uber.org/zap/CHANGELOG.md @@ -3,14 +3,30 @@ All notable changes to this project will be documented in this file. This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## 1.27.0 (20 Feb 2024) +Enhancements: +* [#1378][]: Add `WithLazy` method for `SugaredLogger`. +* [#1399][]: zaptest: Add `NewTestingWriter` for customizing TestingWriter with more flexibility than `NewLogger`. +* [#1406][]: Add `Log`, `Logw`, `Logln` methods for `SugaredLogger`. +* [#1416][]: Add `WithPanicHook` option for testing panic logs. + +Thanks to @defval, @dimmo, @arxeiss, and @MKrupauskas for their contributions to this release. + +[#1378]: https://github.com/uber-go/zap/pull/1378 +[#1399]: https://github.com/uber-go/zap/pull/1399 +[#1406]: https://github.com/uber-go/zap/pull/1406 +[#1416]: https://github.com/uber-go/zap/pull/1416 + ## 1.26.0 (14 Sep 2023) Enhancements: +* [#1297][]: Add Dict as a Field. * [#1319][]: Add `WithLazy` method to `Logger` which lazily evaluates the structured context. * [#1350][]: String encoding is much (~50%) faster now. -Thanks to @jquirke, @cdvr1993 for their contributions to this release. +Thanks to @hhk7734, @jquirke, and @cdvr1993 for their contributions to this release. +[#1297]: https://github.com/uber-go/zap/pull/1297 [#1319]: https://github.com/uber-go/zap/pull/1319 [#1350]: https://github.com/uber-go/zap/pull/1350 @@ -25,7 +41,7 @@ Enhancements: * [#1273][]: Add `Name` to `Logger` which returns the Logger's name if one is set. * [#1281][]: Add `zap/exp/expfield` package which contains helper methods `Str` and `Strs` for constructing String-like zap.Fields. -* [#1310][]: Reduce stack size on `Any`. +* [#1310][]: Reduce stack size on `Any`. Thanks to @knight42, @dzakaammar, @bcspragu, and @rexywork for their contributions to this release. @@ -352,7 +368,7 @@ to this release. [#675]: https://github.com/uber-go/zap/pull/675 [#704]: https://github.com/uber-go/zap/pull/704 -## v1.9.1 (06 Aug 2018) +## 1.9.1 (06 Aug 2018) Bugfixes: @@ -360,7 +376,7 @@ Bugfixes: [#614]: https://github.com/uber-go/zap/pull/614 -## v1.9.0 (19 Jul 2018) +## 1.9.0 (19 Jul 2018) Enhancements: * [#602][]: Reduce number of allocations when logging with reflection. @@ -373,7 +389,7 @@ Thanks to @nfarah86, @AlekSi, @JeanMertz, @philippgille, @etsangsplk, and [#572]: https://github.com/uber-go/zap/pull/572 [#606]: https://github.com/uber-go/zap/pull/606 -## v1.8.0 (13 Apr 2018) +## 1.8.0 (13 Apr 2018) Enhancements: * [#508][]: Make log level configurable when redirecting the standard @@ -391,14 +407,14 @@ Thanks to @DiSiqueira and @djui for their contributions to this release. [#577]: https://github.com/uber-go/zap/pull/577 [#574]: https://github.com/uber-go/zap/pull/574 -## v1.7.1 (25 Sep 2017) +## 1.7.1 (25 Sep 2017) Bugfixes: * [#504][]: Store strings when using AddByteString with the map encoder. [#504]: https://github.com/uber-go/zap/pull/504 -## v1.7.0 (21 Sep 2017) +## 1.7.0 (21 Sep 2017) Enhancements: @@ -407,7 +423,7 @@ Enhancements: [#487]: https://github.com/uber-go/zap/pull/487 -## v1.6.0 (30 Aug 2017) +## 1.6.0 (30 Aug 2017) Enhancements: @@ -418,7 +434,7 @@ Enhancements: [#490]: https://github.com/uber-go/zap/pull/490 [#491]: https://github.com/uber-go/zap/pull/491 -## v1.5.0 (22 Jul 2017) +## 1.5.0 (22 Jul 2017) Enhancements: @@ -436,7 +452,7 @@ Thanks to @richard-tunein and @pavius for their contributions to this release. [#460]: https://github.com/uber-go/zap/pull/460 [#470]: https://github.com/uber-go/zap/pull/470 -## v1.4.1 (08 Jun 2017) +## 1.4.1 (08 Jun 2017) This release fixes two bugs. @@ -448,7 +464,7 @@ Bugfixes: [#435]: https://github.com/uber-go/zap/pull/435 [#444]: https://github.com/uber-go/zap/pull/444 -## v1.4.0 (12 May 2017) +## 1.4.0 (12 May 2017) This release adds a few small features and is fully backward-compatible. @@ -464,7 +480,7 @@ Enhancements: [#425]: https://github.com/uber-go/zap/pull/425 [#431]: https://github.com/uber-go/zap/pull/431 -## v1.3.0 (25 Apr 2017) +## 1.3.0 (25 Apr 2017) This release adds an enhancement to zap's testing helpers as well as the ability to marshal an AtomicLevel. It is fully backward-compatible. @@ -478,7 +494,7 @@ Enhancements: [#415]: https://github.com/uber-go/zap/pull/415 [#416]: https://github.com/uber-go/zap/pull/416 -## v1.2.0 (13 Apr 2017) +## 1.2.0 (13 Apr 2017) This release adds a gRPC compatibility wrapper. It is fully backward-compatible. @@ -489,7 +505,7 @@ Enhancements: [#402]: https://github.com/uber-go/zap/pull/402 -## v1.1.0 (31 Mar 2017) +## 1.1.0 (31 Mar 2017) This release fixes two bugs and adds some enhancements to zap's testing helpers. It is fully backward-compatible. @@ -510,7 +526,7 @@ Thanks to @moitias for contributing to this release. [#396]: https://github.com/uber-go/zap/pull/396 [#386]: https://github.com/uber-go/zap/pull/386 -## v1.0.0 (14 Mar 2017) +## 1.0.0 (14 Mar 2017) This is zap's first stable release. All exported APIs are now final, and no further breaking changes will be made in the 1.x release series. Anyone using a @@ -569,7 +585,7 @@ contributions to this release. [#365]: https://github.com/uber-go/zap/pull/365 [#372]: https://github.com/uber-go/zap/pull/372 -## v1.0.0-rc.3 (7 Mar 2017) +## 1.0.0-rc.3 (7 Mar 2017) This is the third release candidate for zap's stable release. There are no breaking changes. @@ -595,7 +611,7 @@ Thanks to @ansel1 and @suyash for their contributions to this release. [#353]: https://github.com/uber-go/zap/pull/353 [#311]: https://github.com/uber-go/zap/pull/311 -## v1.0.0-rc.2 (21 Feb 2017) +## 1.0.0-rc.2 (21 Feb 2017) This is the second release candidate for zap's stable release. It includes two breaking changes. @@ -641,7 +657,7 @@ Thanks to @skipor and @chapsuk for their contributions to this release. [#326]: https://github.com/uber-go/zap/pull/326 [#300]: https://github.com/uber-go/zap/pull/300 -## v1.0.0-rc.1 (14 Feb 2017) +## 1.0.0-rc.1 (14 Feb 2017) This is the first release candidate for zap's stable release. There are multiple breaking changes and improvements from the pre-release version. Most notably: @@ -661,7 +677,7 @@ breaking changes and improvements from the pre-release version. Most notably: * Sampling is more accurate, and doesn't depend on the standard library's shared timer heap. -## v0.1.0-beta.1 (6 Feb 2017) +## 0.1.0-beta.1 (6 Feb 2017) This is a minor version, tagged to allow users to pin to the pre-1.0 APIs and upgrade at their leisure. Since this is the first tagged release, there are no diff --git a/vendor/go.uber.org/zap/LICENSE.txt b/vendor/go.uber.org/zap/LICENSE similarity index 100% rename from vendor/go.uber.org/zap/LICENSE.txt rename to vendor/go.uber.org/zap/LICENSE diff --git a/vendor/go.uber.org/zap/README.md b/vendor/go.uber.org/zap/README.md index 9de08927b..a17035cb6 100644 --- a/vendor/go.uber.org/zap/README.md +++ b/vendor/go.uber.org/zap/README.md @@ -1,7 +1,16 @@ -# :zap: zap [![GoDoc][doc-img]][doc] [![Build Status][ci-img]][ci] [![Coverage Status][cov-img]][cov] +# :zap: zap + + +
Blazing fast, structured, leveled logging in Go. +![Zap logo](assets/logo.png) + +[![GoDoc][doc-img]][doc] [![Build Status][ci-img]][ci] [![Coverage Status][cov-img]][cov] + +
+ ## Installation `go get -u go.uber.org/zap` @@ -66,41 +75,44 @@ Log a message and 10 fields: | Package | Time | Time % to zap | Objects Allocated | | :------ | :--: | :-----------: | :---------------: | -| :zap: zap | 1744 ns/op | +0% | 5 allocs/op -| :zap: zap (sugared) | 2483 ns/op | +42% | 10 allocs/op -| zerolog | 918 ns/op | -47% | 1 allocs/op -| go-kit | 5590 ns/op | +221% | 57 allocs/op -| slog | 5640 ns/op | +223% | 40 allocs/op -| apex/log | 21184 ns/op | +1115% | 63 allocs/op -| logrus | 24338 ns/op | +1296% | 79 allocs/op -| log15 | 26054 ns/op | +1394% | 74 allocs/op +| :zap: zap | 656 ns/op | +0% | 5 allocs/op +| :zap: zap (sugared) | 935 ns/op | +43% | 10 allocs/op +| zerolog | 380 ns/op | -42% | 1 allocs/op +| go-kit | 2249 ns/op | +243% | 57 allocs/op +| slog (LogAttrs) | 2479 ns/op | +278% | 40 allocs/op +| slog | 2481 ns/op | +278% | 42 allocs/op +| apex/log | 9591 ns/op | +1362% | 63 allocs/op +| log15 | 11393 ns/op | +1637% | 75 allocs/op +| logrus | 11654 ns/op | +1677% | 79 allocs/op Log a message with a logger that already has 10 fields of context: | Package | Time | Time % to zap | Objects Allocated | | :------ | :--: | :-----------: | :---------------: | -| :zap: zap | 193 ns/op | +0% | 0 allocs/op -| :zap: zap (sugared) | 227 ns/op | +18% | 1 allocs/op -| zerolog | 81 ns/op | -58% | 0 allocs/op -| slog | 322 ns/op | +67% | 0 allocs/op -| go-kit | 5377 ns/op | +2686% | 56 allocs/op -| apex/log | 19518 ns/op | +10013% | 53 allocs/op -| log15 | 19812 ns/op | +10165% | 70 allocs/op -| logrus | 21997 ns/op | +11297% | 68 allocs/op +| :zap: zap | 67 ns/op | +0% | 0 allocs/op +| :zap: zap (sugared) | 84 ns/op | +25% | 1 allocs/op +| zerolog | 35 ns/op | -48% | 0 allocs/op +| slog | 193 ns/op | +188% | 0 allocs/op +| slog (LogAttrs) | 200 ns/op | +199% | 0 allocs/op +| go-kit | 2460 ns/op | +3572% | 56 allocs/op +| log15 | 9038 ns/op | +13390% | 70 allocs/op +| apex/log | 9068 ns/op | +13434% | 53 allocs/op +| logrus | 10521 ns/op | +15603% | 68 allocs/op Log a static string, without any context or `printf`-style templating: | Package | Time | Time % to zap | Objects Allocated | | :------ | :--: | :-----------: | :---------------: | -| :zap: zap | 165 ns/op | +0% | 0 allocs/op -| :zap: zap (sugared) | 212 ns/op | +28% | 1 allocs/op -| zerolog | 95 ns/op | -42% | 0 allocs/op -| slog | 296 ns/op | +79% | 0 allocs/op -| go-kit | 415 ns/op | +152% | 9 allocs/op -| standard library | 422 ns/op | +156% | 2 allocs/op -| apex/log | 1601 ns/op | +870% | 5 allocs/op -| logrus | 3017 ns/op | +1728% | 23 allocs/op -| log15 | 3469 ns/op | +2002% | 20 allocs/op +| :zap: zap | 63 ns/op | +0% | 0 allocs/op +| :zap: zap (sugared) | 81 ns/op | +29% | 1 allocs/op +| zerolog | 32 ns/op | -49% | 0 allocs/op +| standard library | 124 ns/op | +97% | 1 allocs/op +| slog | 196 ns/op | +211% | 0 allocs/op +| slog (LogAttrs) | 200 ns/op | +217% | 0 allocs/op +| go-kit | 213 ns/op | +238% | 9 allocs/op +| apex/log | 771 ns/op | +1124% | 5 allocs/op +| logrus | 1439 ns/op | +2184% | 23 allocs/op +| log15 | 2069 ns/op | +3184% | 20 allocs/op ## Development Status: Stable @@ -120,7 +132,7 @@ standard.
-Released under the [MIT License](LICENSE.txt). +Released under the [MIT License](LICENSE). 1 In particular, keep in mind that we may be benchmarking against slightly older versions of other packages. Versions are diff --git a/vendor/go.uber.org/zap/buffer/buffer.go b/vendor/go.uber.org/zap/buffer/buffer.go index 27fb5cd5d..0b8540c21 100644 --- a/vendor/go.uber.org/zap/buffer/buffer.go +++ b/vendor/go.uber.org/zap/buffer/buffer.go @@ -42,7 +42,7 @@ func (b *Buffer) AppendByte(v byte) { b.bs = append(b.bs, v) } -// AppendBytes writes a single byte to the Buffer. +// AppendBytes writes the given slice of bytes to the Buffer. func (b *Buffer) AppendBytes(v []byte) { b.bs = append(b.bs, v...) } diff --git a/vendor/go.uber.org/zap/field.go b/vendor/go.uber.org/zap/field.go index c8dd3358a..6743930b8 100644 --- a/vendor/go.uber.org/zap/field.go +++ b/vendor/go.uber.org/zap/field.go @@ -460,6 +460,8 @@ func (d dictObject) MarshalLogObject(enc zapcore.ObjectEncoder) error { // - https://github.com/uber-go/zap/pull/1304 // - https://github.com/uber-go/zap/pull/1305 // - https://github.com/uber-go/zap/pull/1308 +// +// See https://github.com/golang/go/issues/62077 for upstream issue. type anyFieldC[T any] func(string, T) Field func (f anyFieldC[T]) Any(key string, val any) Field { diff --git a/vendor/go.uber.org/zap/logger.go b/vendor/go.uber.org/zap/logger.go index 6205fe48a..c4d300323 100644 --- a/vendor/go.uber.org/zap/logger.go +++ b/vendor/go.uber.org/zap/logger.go @@ -43,6 +43,7 @@ type Logger struct { development bool addCaller bool + onPanic zapcore.CheckWriteHook // default is WriteThenPanic onFatal zapcore.CheckWriteHook // default is WriteThenFatal name string @@ -345,27 +346,12 @@ func (log *Logger) check(lvl zapcore.Level, msg string) *zapcore.CheckedEntry { // Set up any required terminal behavior. switch ent.Level { case zapcore.PanicLevel: - ce = ce.After(ent, zapcore.WriteThenPanic) + ce = ce.After(ent, terminalHookOverride(zapcore.WriteThenPanic, log.onPanic)) case zapcore.FatalLevel: - onFatal := log.onFatal - // nil or WriteThenNoop will lead to continued execution after - // a Fatal log entry, which is unexpected. For example, - // - // f, err := os.Open(..) - // if err != nil { - // log.Fatal("cannot open", zap.Error(err)) - // } - // fmt.Println(f.Name()) - // - // The f.Name() will panic if we continue execution after the - // log.Fatal. - if onFatal == nil || onFatal == zapcore.WriteThenNoop { - onFatal = zapcore.WriteThenFatal - } - ce = ce.After(ent, onFatal) + ce = ce.After(ent, terminalHookOverride(zapcore.WriteThenFatal, log.onFatal)) case zapcore.DPanicLevel: if log.development { - ce = ce.After(ent, zapcore.WriteThenPanic) + ce = ce.After(ent, terminalHookOverride(zapcore.WriteThenPanic, log.onPanic)) } } @@ -430,3 +416,20 @@ func (log *Logger) check(lvl zapcore.Level, msg string) *zapcore.CheckedEntry { return ce } + +func terminalHookOverride(defaultHook, override zapcore.CheckWriteHook) zapcore.CheckWriteHook { + // A nil or WriteThenNoop hook will lead to continued execution after + // a Panic or Fatal log entry, which is unexpected. For example, + // + // f, err := os.Open(..) + // if err != nil { + // log.Fatal("cannot open", zap.Error(err)) + // } + // fmt.Println(f.Name()) + // + // The f.Name() will panic if we continue execution after the log.Fatal. + if override == nil || override == zapcore.WriteThenNoop { + return defaultHook + } + return override +} diff --git a/vendor/go.uber.org/zap/options.go b/vendor/go.uber.org/zap/options.go index c4f3bca3d..43d357ac9 100644 --- a/vendor/go.uber.org/zap/options.go +++ b/vendor/go.uber.org/zap/options.go @@ -132,6 +132,21 @@ func IncreaseLevel(lvl zapcore.LevelEnabler) Option { }) } +// WithPanicHook sets a CheckWriteHook to run on Panic/DPanic logs. +// Zap will call this hook after writing a log statement with a Panic/DPanic level. +// +// For example, the following builds a logger that will exit the current +// goroutine after writing a Panic/DPanic log message, but it will not start a panic. +// +// zap.New(core, zap.WithPanicHook(zapcore.WriteThenGoexit)) +// +// This is useful for testing Panic/DPanic log output. +func WithPanicHook(hook zapcore.CheckWriteHook) Option { + return optionFunc(func(log *Logger) { + log.onPanic = hook + }) +} + // OnFatal sets the action to take on fatal logs. // // Deprecated: Use [WithFatalHook] instead. diff --git a/vendor/go.uber.org/zap/sugar.go b/vendor/go.uber.org/zap/sugar.go index 00ac5fe3a..8904cd087 100644 --- a/vendor/go.uber.org/zap/sugar.go +++ b/vendor/go.uber.org/zap/sugar.go @@ -115,6 +115,21 @@ func (s *SugaredLogger) With(args ...interface{}) *SugaredLogger { return &SugaredLogger{base: s.base.With(s.sweetenFields(args)...)} } +// WithLazy adds a variadic number of fields to the logging context lazily. +// The fields are evaluated only if the logger is further chained with [With] +// or is written to with any of the log level methods. +// Until that occurs, the logger may retain references to objects inside the fields, +// and logging will reflect the state of an object at the time of logging, +// not the time of WithLazy(). +// +// Similar to [With], fields added to the child don't affect the parent, +// and vice versa. Also, the keys in key-value pairs should be strings. In development, +// passing a non-string key panics, while in production it logs an error and skips the pair. +// Passing an orphaned key has the same behavior. +func (s *SugaredLogger) WithLazy(args ...interface{}) *SugaredLogger { + return &SugaredLogger{base: s.base.WithLazy(s.sweetenFields(args)...)} +} + // Level reports the minimum enabled level for this logger. // // For NopLoggers, this is [zapcore.InvalidLevel]. @@ -122,6 +137,12 @@ func (s *SugaredLogger) Level() zapcore.Level { return zapcore.LevelOf(s.base.core) } +// Log logs the provided arguments at provided level. +// Spaces are added between arguments when neither is a string. +func (s *SugaredLogger) Log(lvl zapcore.Level, args ...interface{}) { + s.log(lvl, "", args, nil) +} + // Debug logs the provided arguments at [DebugLevel]. // Spaces are added between arguments when neither is a string. func (s *SugaredLogger) Debug(args ...interface{}) { @@ -165,6 +186,12 @@ func (s *SugaredLogger) Fatal(args ...interface{}) { s.log(FatalLevel, "", args, nil) } +// Logf formats the message according to the format specifier +// and logs it at provided level. +func (s *SugaredLogger) Logf(lvl zapcore.Level, template string, args ...interface{}) { + s.log(lvl, template, args, nil) +} + // Debugf formats the message according to the format specifier // and logs it at [DebugLevel]. func (s *SugaredLogger) Debugf(template string, args ...interface{}) { @@ -208,6 +235,12 @@ func (s *SugaredLogger) Fatalf(template string, args ...interface{}) { s.log(FatalLevel, template, args, nil) } +// Logw logs a message with some additional context. The variadic key-value +// pairs are treated as they are in With. +func (s *SugaredLogger) Logw(lvl zapcore.Level, msg string, keysAndValues ...interface{}) { + s.log(lvl, msg, nil, keysAndValues) +} + // Debugw logs a message with some additional context. The variadic key-value // pairs are treated as they are in With. // @@ -255,6 +288,12 @@ func (s *SugaredLogger) Fatalw(msg string, keysAndValues ...interface{}) { s.log(FatalLevel, msg, nil, keysAndValues) } +// Logln logs a message at provided level. +// Spaces are always added between arguments. +func (s *SugaredLogger) Logln(lvl zapcore.Level, args ...interface{}) { + s.logln(lvl, args, nil) +} + // Debugln logs a message at [DebugLevel]. // Spaces are always added between arguments. func (s *SugaredLogger) Debugln(args ...interface{}) { diff --git a/vendor/go.uber.org/zap/zapcore/console_encoder.go b/vendor/go.uber.org/zap/zapcore/console_encoder.go index 8ca0bfaf5..cc2b4e07b 100644 --- a/vendor/go.uber.org/zap/zapcore/console_encoder.go +++ b/vendor/go.uber.org/zap/zapcore/console_encoder.go @@ -77,7 +77,7 @@ func (c consoleEncoder) EncodeEntry(ent Entry, fields []Field) (*buffer.Buffer, // If this ever becomes a performance bottleneck, we can implement // ArrayEncoder for our plain-text format. arr := getSliceEncoder() - if c.TimeKey != "" && c.EncodeTime != nil { + if c.TimeKey != "" && c.EncodeTime != nil && !ent.Time.IsZero() { c.EncodeTime(ent.Time, arr) } if c.LevelKey != "" && c.EncodeLevel != nil { diff --git a/vendor/go.uber.org/zap/zapcore/encoder.go b/vendor/go.uber.org/zap/zapcore/encoder.go index 5769ff3e4..044625415 100644 --- a/vendor/go.uber.org/zap/zapcore/encoder.go +++ b/vendor/go.uber.org/zap/zapcore/encoder.go @@ -37,6 +37,9 @@ const DefaultLineEnding = "\n" const OmitKey = "" // A LevelEncoder serializes a Level to a primitive type. +// +// This function must make exactly one call +// to a PrimitiveArrayEncoder's Append* method. type LevelEncoder func(Level, PrimitiveArrayEncoder) // LowercaseLevelEncoder serializes a Level to a lowercase string. For example, @@ -90,6 +93,9 @@ func (e *LevelEncoder) UnmarshalText(text []byte) error { } // A TimeEncoder serializes a time.Time to a primitive type. +// +// This function must make exactly one call +// to a PrimitiveArrayEncoder's Append* method. type TimeEncoder func(time.Time, PrimitiveArrayEncoder) // EpochTimeEncoder serializes a time.Time to a floating-point number of seconds @@ -219,6 +225,9 @@ func (e *TimeEncoder) UnmarshalJSON(data []byte) error { } // A DurationEncoder serializes a time.Duration to a primitive type. +// +// This function must make exactly one call +// to a PrimitiveArrayEncoder's Append* method. type DurationEncoder func(time.Duration, PrimitiveArrayEncoder) // SecondsDurationEncoder serializes a time.Duration to a floating-point number of seconds elapsed. @@ -262,6 +271,9 @@ func (e *DurationEncoder) UnmarshalText(text []byte) error { } // A CallerEncoder serializes an EntryCaller to a primitive type. +// +// This function must make exactly one call +// to a PrimitiveArrayEncoder's Append* method. type CallerEncoder func(EntryCaller, PrimitiveArrayEncoder) // FullCallerEncoder serializes a caller in /full/path/to/package/file:line @@ -292,6 +304,9 @@ func (e *CallerEncoder) UnmarshalText(text []byte) error { // A NameEncoder serializes a period-separated logger name to a primitive // type. +// +// This function must make exactly one call +// to a PrimitiveArrayEncoder's Append* method. type NameEncoder func(string, PrimitiveArrayEncoder) // FullNameEncoder serializes the logger name as-is. diff --git a/vendor/go.uber.org/zap/zapcore/field.go b/vendor/go.uber.org/zap/zapcore/field.go index 95bdb0a12..308c9781e 100644 --- a/vendor/go.uber.org/zap/zapcore/field.go +++ b/vendor/go.uber.org/zap/zapcore/field.go @@ -47,7 +47,7 @@ const ( ByteStringType // Complex128Type indicates that the field carries a complex128. Complex128Type - // Complex64Type indicates that the field carries a complex128. + // Complex64Type indicates that the field carries a complex64. Complex64Type // DurationType indicates that the field carries a time.Duration. DurationType diff --git a/vendor/go.uber.org/zap/zapcore/json_encoder.go b/vendor/go.uber.org/zap/zapcore/json_encoder.go index c8ab86979..9685169b2 100644 --- a/vendor/go.uber.org/zap/zapcore/json_encoder.go +++ b/vendor/go.uber.org/zap/zapcore/json_encoder.go @@ -372,7 +372,7 @@ func (enc *jsonEncoder) EncodeEntry(ent Entry, fields []Field) (*buffer.Buffer, final.AppendString(ent.Level.String()) } } - if final.TimeKey != "" { + if final.TimeKey != "" && !ent.Time.IsZero() { final.AddTime(final.TimeKey, ent.Time) } if ent.LoggerName != "" && final.NameKey != "" { diff --git a/vendor/golang.org/x/crypto/md4/md4.go b/vendor/golang.org/x/crypto/md4/md4.go index 59d348069..d1911c2e8 100644 --- a/vendor/golang.org/x/crypto/md4/md4.go +++ b/vendor/golang.org/x/crypto/md4/md4.go @@ -4,7 +4,7 @@ // Package md4 implements the MD4 hash algorithm as defined in RFC 1320. // -// Deprecated: MD4 is cryptographically broken and should should only be used +// Deprecated: MD4 is cryptographically broken and should only be used // where compatibility with legacy systems, not security, is the goal. Instead, // use a secure hash like SHA-256 (from crypto/sha256). package md4 // import "golang.org/x/crypto/md4" diff --git a/vendor/golang.org/x/oauth2/internal/client_appengine.go b/vendor/golang.org/x/oauth2/internal/client_appengine.go deleted file mode 100644 index d28140f78..000000000 --- a/vendor/golang.org/x/oauth2/internal/client_appengine.go +++ /dev/null @@ -1,13 +0,0 @@ -// Copyright 2018 The Go 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:build appengine - -package internal - -import "google.golang.org/appengine/urlfetch" - -func init() { - appengineClientHook = urlfetch.Client -} diff --git a/vendor/golang.org/x/oauth2/internal/transport.go b/vendor/golang.org/x/oauth2/internal/transport.go index 572074a63..b9db01ddf 100644 --- a/vendor/golang.org/x/oauth2/internal/transport.go +++ b/vendor/golang.org/x/oauth2/internal/transport.go @@ -18,16 +18,11 @@ var HTTPClient ContextKey // because nobody else can create a ContextKey, being unexported. type ContextKey struct{} -var appengineClientHook func(context.Context) *http.Client - func ContextClient(ctx context.Context) *http.Client { if ctx != nil { if hc, ok := ctx.Value(HTTPClient).(*http.Client); ok { return hc } } - if appengineClientHook != nil { - return appengineClientHook(ctx) - } return http.DefaultClient } diff --git a/vendor/golang.org/x/sync/semaphore/semaphore.go b/vendor/golang.org/x/sync/semaphore/semaphore.go index 30f632c57..b618162aa 100644 --- a/vendor/golang.org/x/sync/semaphore/semaphore.go +++ b/vendor/golang.org/x/sync/semaphore/semaphore.go @@ -35,11 +35,25 @@ type Weighted struct { // Acquire acquires the semaphore with a weight of n, blocking until resources // are available or 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 { + done := ctx.Done() + s.mu.Lock() + select { + case <-done: + // ctx becoming done has "happened before" acquiring the semaphore, + // whether it became done before the call began or while we were + // waiting for the mutex. We prefer to fail even if we could acquire + // the mutex without blocking. + s.mu.Unlock() + return ctx.Err() + default: + } if s.size-s.cur >= n && s.waiters.Len() == 0 { + // Since we hold s.mu and haven't synchronized since checking done, if + // ctx becomes done before we return here, it becoming done must have + // "happened concurrently" with this call - it cannot "happen before" + // we return in this branch. So, we're ok to always acquire here. s.cur += n s.mu.Unlock() return nil @@ -48,7 +62,7 @@ func (s *Weighted) Acquire(ctx context.Context, n int64) error { if n > s.size { // Don't make other Acquire calls block on one that's doomed to fail. s.mu.Unlock() - <-ctx.Done() + <-done return ctx.Err() } @@ -58,14 +72,14 @@ func (s *Weighted) Acquire(ctx context.Context, n int64) error { s.mu.Unlock() select { - case <-ctx.Done(): - err := ctx.Err() + case <-done: 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 + // Acquired the semaphore after we were canceled. + // Pretend we didn't and put the tokens back. + s.cur -= n + s.notifyWaiters() default: isFront := s.waiters.Front() == elem s.waiters.Remove(elem) @@ -75,9 +89,19 @@ func (s *Weighted) Acquire(ctx context.Context, n int64) error { } } s.mu.Unlock() - return err + return ctx.Err() case <-ready: + // Acquired the semaphore. Check that ctx isn't already done. + // We check the done channel instead of calling ctx.Err because we + // already have the channel, and ctx.Err is O(n) with the nesting + // depth of ctx. + select { + case <-done: + s.Release(n) + return ctx.Err() + default: + } return nil } } diff --git a/vendor/golang.org/x/sys/unix/mmap_nomremap.go b/vendor/golang.org/x/sys/unix/mmap_nomremap.go index 4b68e5978..7f602ffd2 100644 --- a/vendor/golang.org/x/sys/unix/mmap_nomremap.go +++ b/vendor/golang.org/x/sys/unix/mmap_nomremap.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build aix || darwin || dragonfly || freebsd || openbsd || solaris +//go:build aix || darwin || dragonfly || freebsd || openbsd || solaris || zos package unix diff --git a/vendor/golang.org/x/sys/unix/syscall_zos_s390x.go b/vendor/golang.org/x/sys/unix/syscall_zos_s390x.go index b473038c6..27c41b6f0 100644 --- a/vendor/golang.org/x/sys/unix/syscall_zos_s390x.go +++ b/vendor/golang.org/x/sys/unix/syscall_zos_s390x.go @@ -1520,6 +1520,14 @@ func (m *mmapper) Munmap(data []byte) (err error) { return nil } +func Mmap(fd int, offset int64, length int, prot int, flags int) (data []byte, err error) { + return mapper.Mmap(fd, offset, length, prot, flags) +} + +func Munmap(b []byte) (err error) { + return mapper.Munmap(b) +} + func Read(fd int, p []byte) (n int, err error) { n, err = read(fd, p) if raceenabled { diff --git a/vendor/golang.org/x/sys/windows/syscall_windows.go b/vendor/golang.org/x/sys/windows/syscall_windows.go index 6395a031d..6525c62f3 100644 --- a/vendor/golang.org/x/sys/windows/syscall_windows.go +++ b/vendor/golang.org/x/sys/windows/syscall_windows.go @@ -165,6 +165,7 @@ func NewCallbackCDecl(fn interface{}) uintptr { //sys CreateFile(name *uint16, access uint32, mode uint32, sa *SecurityAttributes, createmode uint32, attrs uint32, templatefile Handle) (handle Handle, err error) [failretval==InvalidHandle] = CreateFileW //sys CreateNamedPipe(name *uint16, flags uint32, pipeMode uint32, maxInstances uint32, outSize uint32, inSize uint32, defaultTimeout uint32, sa *SecurityAttributes) (handle Handle, err error) [failretval==InvalidHandle] = CreateNamedPipeW //sys ConnectNamedPipe(pipe Handle, overlapped *Overlapped) (err error) +//sys DisconnectNamedPipe(pipe Handle) (err error) //sys GetNamedPipeInfo(pipe Handle, flags *uint32, outSize *uint32, inSize *uint32, maxInstances *uint32) (err error) //sys GetNamedPipeHandleState(pipe Handle, state *uint32, curInstances *uint32, maxCollectionCount *uint32, collectDataTimeout *uint32, userName *uint16, maxUserNameSize uint32) (err error) = GetNamedPipeHandleStateW //sys SetNamedPipeHandleState(pipe Handle, state *uint32, maxCollectionCount *uint32, collectDataTimeout *uint32) (err error) = SetNamedPipeHandleState @@ -348,8 +349,19 @@ func NewCallbackCDecl(fn interface{}) uintptr { //sys SetProcessPriorityBoost(process Handle, disable bool) (err error) = kernel32.SetProcessPriorityBoost //sys GetProcessWorkingSetSizeEx(hProcess Handle, lpMinimumWorkingSetSize *uintptr, lpMaximumWorkingSetSize *uintptr, flags *uint32) //sys SetProcessWorkingSetSizeEx(hProcess Handle, dwMinimumWorkingSetSize uintptr, dwMaximumWorkingSetSize uintptr, flags uint32) (err error) +//sys ClearCommBreak(handle Handle) (err error) +//sys ClearCommError(handle Handle, lpErrors *uint32, lpStat *ComStat) (err error) +//sys EscapeCommFunction(handle Handle, dwFunc uint32) (err error) +//sys GetCommState(handle Handle, lpDCB *DCB) (err error) +//sys GetCommModemStatus(handle Handle, lpModemStat *uint32) (err error) //sys GetCommTimeouts(handle Handle, timeouts *CommTimeouts) (err error) +//sys PurgeComm(handle Handle, dwFlags uint32) (err error) +//sys SetCommBreak(handle Handle) (err error) +//sys SetCommMask(handle Handle, dwEvtMask uint32) (err error) +//sys SetCommState(handle Handle, lpDCB *DCB) (err error) //sys SetCommTimeouts(handle Handle, timeouts *CommTimeouts) (err error) +//sys SetupComm(handle Handle, dwInQueue uint32, dwOutQueue uint32) (err error) +//sys WaitCommEvent(handle Handle, lpEvtMask *uint32, lpOverlapped *Overlapped) (err error) //sys GetActiveProcessorCount(groupNumber uint16) (ret uint32) //sys GetMaximumProcessorCount(groupNumber uint16) (ret uint32) //sys EnumWindows(enumFunc uintptr, param unsafe.Pointer) (err error) = user32.EnumWindows @@ -1834,3 +1846,73 @@ func ResizePseudoConsole(pconsole Handle, size Coord) error { // accept arguments that can be casted to uintptr, and Coord can't. return resizePseudoConsole(pconsole, *((*uint32)(unsafe.Pointer(&size)))) } + +// DCB constants. See https://learn.microsoft.com/en-us/windows/win32/api/winbase/ns-winbase-dcb. +const ( + CBR_110 = 110 + CBR_300 = 300 + CBR_600 = 600 + CBR_1200 = 1200 + CBR_2400 = 2400 + CBR_4800 = 4800 + CBR_9600 = 9600 + CBR_14400 = 14400 + CBR_19200 = 19200 + CBR_38400 = 38400 + CBR_57600 = 57600 + CBR_115200 = 115200 + CBR_128000 = 128000 + CBR_256000 = 256000 + + DTR_CONTROL_DISABLE = 0x00000000 + DTR_CONTROL_ENABLE = 0x00000010 + DTR_CONTROL_HANDSHAKE = 0x00000020 + + RTS_CONTROL_DISABLE = 0x00000000 + RTS_CONTROL_ENABLE = 0x00001000 + RTS_CONTROL_HANDSHAKE = 0x00002000 + RTS_CONTROL_TOGGLE = 0x00003000 + + NOPARITY = 0 + ODDPARITY = 1 + EVENPARITY = 2 + MARKPARITY = 3 + SPACEPARITY = 4 + + ONESTOPBIT = 0 + ONE5STOPBITS = 1 + TWOSTOPBITS = 2 +) + +// EscapeCommFunction constants. See https://learn.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-escapecommfunction. +const ( + SETXOFF = 1 + SETXON = 2 + SETRTS = 3 + CLRRTS = 4 + SETDTR = 5 + CLRDTR = 6 + SETBREAK = 8 + CLRBREAK = 9 +) + +// PurgeComm constants. See https://learn.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-purgecomm. +const ( + PURGE_TXABORT = 0x0001 + PURGE_RXABORT = 0x0002 + PURGE_TXCLEAR = 0x0004 + PURGE_RXCLEAR = 0x0008 +) + +// SetCommMask constants. See https://learn.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-setcommmask. +const ( + EV_RXCHAR = 0x0001 + EV_RXFLAG = 0x0002 + EV_TXEMPTY = 0x0004 + EV_CTS = 0x0008 + EV_DSR = 0x0010 + EV_RLSD = 0x0020 + EV_BREAK = 0x0040 + EV_ERR = 0x0080 + EV_RING = 0x0100 +) diff --git a/vendor/golang.org/x/sys/windows/types_windows.go b/vendor/golang.org/x/sys/windows/types_windows.go index 359780f6a..d8cb71db0 100644 --- a/vendor/golang.org/x/sys/windows/types_windows.go +++ b/vendor/golang.org/x/sys/windows/types_windows.go @@ -3380,3 +3380,27 @@ type BLOB struct { Size uint32 BlobData *byte } + +type ComStat struct { + Flags uint32 + CBInQue uint32 + CBOutQue uint32 +} + +type DCB struct { + DCBlength uint32 + BaudRate uint32 + Flags uint32 + wReserved uint16 + XonLim uint16 + XoffLim uint16 + ByteSize uint8 + Parity uint8 + StopBits uint8 + XonChar byte + XoffChar byte + ErrorChar byte + EofChar byte + EvtChar byte + wReserved1 uint16 +} diff --git a/vendor/golang.org/x/sys/windows/zsyscall_windows.go b/vendor/golang.org/x/sys/windows/zsyscall_windows.go index e8791c82c..5c6035ddf 100644 --- a/vendor/golang.org/x/sys/windows/zsyscall_windows.go +++ b/vendor/golang.org/x/sys/windows/zsyscall_windows.go @@ -188,6 +188,8 @@ var ( procAssignProcessToJobObject = modkernel32.NewProc("AssignProcessToJobObject") procCancelIo = modkernel32.NewProc("CancelIo") procCancelIoEx = modkernel32.NewProc("CancelIoEx") + procClearCommBreak = modkernel32.NewProc("ClearCommBreak") + procClearCommError = modkernel32.NewProc("ClearCommError") procCloseHandle = modkernel32.NewProc("CloseHandle") procClosePseudoConsole = modkernel32.NewProc("ClosePseudoConsole") procConnectNamedPipe = modkernel32.NewProc("ConnectNamedPipe") @@ -212,7 +214,9 @@ var ( procDeleteProcThreadAttributeList = modkernel32.NewProc("DeleteProcThreadAttributeList") procDeleteVolumeMountPointW = modkernel32.NewProc("DeleteVolumeMountPointW") procDeviceIoControl = modkernel32.NewProc("DeviceIoControl") + procDisconnectNamedPipe = modkernel32.NewProc("DisconnectNamedPipe") procDuplicateHandle = modkernel32.NewProc("DuplicateHandle") + procEscapeCommFunction = modkernel32.NewProc("EscapeCommFunction") procExitProcess = modkernel32.NewProc("ExitProcess") procExpandEnvironmentStringsW = modkernel32.NewProc("ExpandEnvironmentStringsW") procFindClose = modkernel32.NewProc("FindClose") @@ -236,6 +240,8 @@ var ( procGenerateConsoleCtrlEvent = modkernel32.NewProc("GenerateConsoleCtrlEvent") procGetACP = modkernel32.NewProc("GetACP") procGetActiveProcessorCount = modkernel32.NewProc("GetActiveProcessorCount") + procGetCommModemStatus = modkernel32.NewProc("GetCommModemStatus") + procGetCommState = modkernel32.NewProc("GetCommState") procGetCommTimeouts = modkernel32.NewProc("GetCommTimeouts") procGetCommandLineW = modkernel32.NewProc("GetCommandLineW") procGetComputerNameExW = modkernel32.NewProc("GetComputerNameExW") @@ -322,6 +328,7 @@ var ( procProcess32NextW = modkernel32.NewProc("Process32NextW") procProcessIdToSessionId = modkernel32.NewProc("ProcessIdToSessionId") procPulseEvent = modkernel32.NewProc("PulseEvent") + procPurgeComm = modkernel32.NewProc("PurgeComm") procQueryDosDeviceW = modkernel32.NewProc("QueryDosDeviceW") procQueryFullProcessImageNameW = modkernel32.NewProc("QueryFullProcessImageNameW") procQueryInformationJobObject = modkernel32.NewProc("QueryInformationJobObject") @@ -335,6 +342,9 @@ var ( procResetEvent = modkernel32.NewProc("ResetEvent") procResizePseudoConsole = modkernel32.NewProc("ResizePseudoConsole") procResumeThread = modkernel32.NewProc("ResumeThread") + procSetCommBreak = modkernel32.NewProc("SetCommBreak") + procSetCommMask = modkernel32.NewProc("SetCommMask") + procSetCommState = modkernel32.NewProc("SetCommState") procSetCommTimeouts = modkernel32.NewProc("SetCommTimeouts") procSetConsoleCursorPosition = modkernel32.NewProc("SetConsoleCursorPosition") procSetConsoleMode = modkernel32.NewProc("SetConsoleMode") @@ -342,7 +352,6 @@ var ( procSetDefaultDllDirectories = modkernel32.NewProc("SetDefaultDllDirectories") procSetDllDirectoryW = modkernel32.NewProc("SetDllDirectoryW") procSetEndOfFile = modkernel32.NewProc("SetEndOfFile") - procSetFileValidData = modkernel32.NewProc("SetFileValidData") procSetEnvironmentVariableW = modkernel32.NewProc("SetEnvironmentVariableW") procSetErrorMode = modkernel32.NewProc("SetErrorMode") procSetEvent = modkernel32.NewProc("SetEvent") @@ -351,6 +360,7 @@ var ( procSetFileInformationByHandle = modkernel32.NewProc("SetFileInformationByHandle") procSetFilePointer = modkernel32.NewProc("SetFilePointer") procSetFileTime = modkernel32.NewProc("SetFileTime") + procSetFileValidData = modkernel32.NewProc("SetFileValidData") procSetHandleInformation = modkernel32.NewProc("SetHandleInformation") procSetInformationJobObject = modkernel32.NewProc("SetInformationJobObject") procSetNamedPipeHandleState = modkernel32.NewProc("SetNamedPipeHandleState") @@ -361,6 +371,7 @@ var ( procSetStdHandle = modkernel32.NewProc("SetStdHandle") procSetVolumeLabelW = modkernel32.NewProc("SetVolumeLabelW") procSetVolumeMountPointW = modkernel32.NewProc("SetVolumeMountPointW") + procSetupComm = modkernel32.NewProc("SetupComm") procSizeofResource = modkernel32.NewProc("SizeofResource") procSleepEx = modkernel32.NewProc("SleepEx") procTerminateJobObject = modkernel32.NewProc("TerminateJobObject") @@ -379,6 +390,7 @@ var ( procVirtualQueryEx = modkernel32.NewProc("VirtualQueryEx") procVirtualUnlock = modkernel32.NewProc("VirtualUnlock") procWTSGetActiveConsoleSessionId = modkernel32.NewProc("WTSGetActiveConsoleSessionId") + procWaitCommEvent = modkernel32.NewProc("WaitCommEvent") procWaitForMultipleObjects = modkernel32.NewProc("WaitForMultipleObjects") procWaitForSingleObject = modkernel32.NewProc("WaitForSingleObject") procWriteConsoleW = modkernel32.NewProc("WriteConsoleW") @@ -1641,6 +1653,22 @@ func CancelIoEx(s Handle, o *Overlapped) (err error) { return } +func ClearCommBreak(handle Handle) (err error) { + r1, _, e1 := syscall.Syscall(procClearCommBreak.Addr(), 1, uintptr(handle), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func ClearCommError(handle Handle, lpErrors *uint32, lpStat *ComStat) (err error) { + r1, _, e1 := syscall.Syscall(procClearCommError.Addr(), 3, uintptr(handle), uintptr(unsafe.Pointer(lpErrors)), uintptr(unsafe.Pointer(lpStat))) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + func CloseHandle(handle Handle) (err error) { r1, _, e1 := syscall.Syscall(procCloseHandle.Addr(), 1, uintptr(handle), 0, 0) if r1 == 0 { @@ -1845,6 +1873,14 @@ func DeviceIoControl(handle Handle, ioControlCode uint32, inBuffer *byte, inBuff return } +func DisconnectNamedPipe(pipe Handle) (err error) { + r1, _, e1 := syscall.Syscall(procDisconnectNamedPipe.Addr(), 1, uintptr(pipe), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + func DuplicateHandle(hSourceProcessHandle Handle, hSourceHandle Handle, hTargetProcessHandle Handle, lpTargetHandle *Handle, dwDesiredAccess uint32, bInheritHandle bool, dwOptions uint32) (err error) { var _p0 uint32 if bInheritHandle { @@ -1857,6 +1893,14 @@ func DuplicateHandle(hSourceProcessHandle Handle, hSourceHandle Handle, hTargetP return } +func EscapeCommFunction(handle Handle, dwFunc uint32) (err error) { + r1, _, e1 := syscall.Syscall(procEscapeCommFunction.Addr(), 2, uintptr(handle), uintptr(dwFunc), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + func ExitProcess(exitcode uint32) { syscall.Syscall(procExitProcess.Addr(), 1, uintptr(exitcode), 0, 0) return @@ -2058,6 +2102,22 @@ func GetActiveProcessorCount(groupNumber uint16) (ret uint32) { return } +func GetCommModemStatus(handle Handle, lpModemStat *uint32) (err error) { + r1, _, e1 := syscall.Syscall(procGetCommModemStatus.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(lpModemStat)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func GetCommState(handle Handle, lpDCB *DCB) (err error) { + r1, _, e1 := syscall.Syscall(procGetCommState.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(lpDCB)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + func GetCommTimeouts(handle Handle, timeouts *CommTimeouts) (err error) { r1, _, e1 := syscall.Syscall(procGetCommTimeouts.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(timeouts)), 0) if r1 == 0 { @@ -2810,6 +2870,14 @@ func PulseEvent(event Handle) (err error) { return } +func PurgeComm(handle Handle, dwFlags uint32) (err error) { + r1, _, e1 := syscall.Syscall(procPurgeComm.Addr(), 2, uintptr(handle), uintptr(dwFlags), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + func QueryDosDevice(deviceName *uint16, targetPath *uint16, max uint32) (n uint32, err error) { r0, _, e1 := syscall.Syscall(procQueryDosDeviceW.Addr(), 3, uintptr(unsafe.Pointer(deviceName)), uintptr(unsafe.Pointer(targetPath)), uintptr(max)) n = uint32(r0) @@ -2924,6 +2992,30 @@ func ResumeThread(thread Handle) (ret uint32, err error) { return } +func SetCommBreak(handle Handle) (err error) { + r1, _, e1 := syscall.Syscall(procSetCommBreak.Addr(), 1, uintptr(handle), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func SetCommMask(handle Handle, dwEvtMask uint32) (err error) { + r1, _, e1 := syscall.Syscall(procSetCommMask.Addr(), 2, uintptr(handle), uintptr(dwEvtMask), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func SetCommState(handle Handle, lpDCB *DCB) (err error) { + r1, _, e1 := syscall.Syscall(procSetCommState.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(lpDCB)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + func SetCommTimeouts(handle Handle, timeouts *CommTimeouts) (err error) { r1, _, e1 := syscall.Syscall(procSetCommTimeouts.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(timeouts)), 0) if r1 == 0 { @@ -2989,14 +3081,6 @@ func SetEndOfFile(handle Handle) (err error) { return } -func SetFileValidData(handle Handle, validDataLength int64) (err error) { - r1, _, e1 := syscall.Syscall(procSetFileValidData.Addr(), 2, uintptr(handle), uintptr(validDataLength), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - func SetEnvironmentVariable(name *uint16, value *uint16) (err error) { r1, _, e1 := syscall.Syscall(procSetEnvironmentVariableW.Addr(), 2, uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(value)), 0) if r1 == 0 { @@ -3060,6 +3144,14 @@ func SetFileTime(handle Handle, ctime *Filetime, atime *Filetime, wtime *Filetim return } +func SetFileValidData(handle Handle, validDataLength int64) (err error) { + r1, _, e1 := syscall.Syscall(procSetFileValidData.Addr(), 2, uintptr(handle), uintptr(validDataLength), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + func SetHandleInformation(handle Handle, mask uint32, flags uint32) (err error) { r1, _, e1 := syscall.Syscall(procSetHandleInformation.Addr(), 3, uintptr(handle), uintptr(mask), uintptr(flags)) if r1 == 0 { @@ -3145,6 +3237,14 @@ func SetVolumeMountPoint(volumeMountPoint *uint16, volumeName *uint16) (err erro return } +func SetupComm(handle Handle, dwInQueue uint32, dwOutQueue uint32) (err error) { + r1, _, e1 := syscall.Syscall(procSetupComm.Addr(), 3, uintptr(handle), uintptr(dwInQueue), uintptr(dwOutQueue)) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + func SizeofResource(module Handle, resInfo Handle) (size uint32, err error) { r0, _, e1 := syscall.Syscall(procSizeofResource.Addr(), 2, uintptr(module), uintptr(resInfo), 0) size = uint32(r0) @@ -3291,6 +3391,14 @@ func WTSGetActiveConsoleSessionId() (sessionID uint32) { return } +func WaitCommEvent(handle Handle, lpEvtMask *uint32, lpOverlapped *Overlapped) (err error) { + r1, _, e1 := syscall.Syscall(procWaitCommEvent.Addr(), 3, uintptr(handle), uintptr(unsafe.Pointer(lpEvtMask)), uintptr(unsafe.Pointer(lpOverlapped))) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + func waitForMultipleObjects(count uint32, handles uintptr, waitAll bool, waitMilliseconds uint32) (event uint32, err error) { var _p0 uint32 if waitAll { diff --git a/vendor/golang.org/x/tools/cover/profile.go b/vendor/golang.org/x/tools/cover/profile.go new file mode 100644 index 000000000..47a9a5411 --- /dev/null +++ b/vendor/golang.org/x/tools/cover/profile.go @@ -0,0 +1,266 @@ +// 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 cover provides support for parsing coverage profiles +// generated by "go test -coverprofile=cover.out". +package cover // import "golang.org/x/tools/cover" + +import ( + "bufio" + "errors" + "fmt" + "io" + "math" + "os" + "sort" + "strconv" + "strings" +) + +// Profile represents the profiling data for a specific file. +type Profile struct { + FileName string + Mode string + Blocks []ProfileBlock +} + +// ProfileBlock represents a single block of profiling data. +type ProfileBlock struct { + StartLine, StartCol int + EndLine, EndCol int + NumStmt, Count int +} + +type byFileName []*Profile + +func (p byFileName) Len() int { return len(p) } +func (p byFileName) Less(i, j int) bool { return p[i].FileName < p[j].FileName } +func (p byFileName) Swap(i, j int) { p[i], p[j] = p[j], p[i] } + +// ParseProfiles parses profile data in the specified file and returns a +// Profile for each source file described therein. +func ParseProfiles(fileName string) ([]*Profile, error) { + pf, err := os.Open(fileName) + if err != nil { + return nil, err + } + defer pf.Close() + return ParseProfilesFromReader(pf) +} + +// ParseProfilesFromReader parses profile data from the Reader and +// returns a Profile for each source file described therein. +func ParseProfilesFromReader(rd io.Reader) ([]*Profile, error) { + // First line is "mode: foo", where foo is "set", "count", or "atomic". + // Rest of file is in the format + // encoding/base64/base64.go:34.44,37.40 3 1 + // where the fields are: name.go:line.column,line.column numberOfStatements count + files := make(map[string]*Profile) + s := bufio.NewScanner(rd) + mode := "" + for s.Scan() { + line := s.Text() + if mode == "" { + const p = "mode: " + if !strings.HasPrefix(line, p) || line == p { + return nil, fmt.Errorf("bad mode line: %v", line) + } + mode = line[len(p):] + continue + } + fn, b, err := parseLine(line) + if err != nil { + return nil, fmt.Errorf("line %q doesn't match expected format: %v", line, err) + } + p := files[fn] + if p == nil { + p = &Profile{ + FileName: fn, + Mode: mode, + } + files[fn] = p + } + p.Blocks = append(p.Blocks, b) + } + if err := s.Err(); err != nil { + return nil, err + } + for _, p := range files { + sort.Sort(blocksByStart(p.Blocks)) + // Merge samples from the same location. + j := 1 + for i := 1; i < len(p.Blocks); i++ { + b := p.Blocks[i] + last := p.Blocks[j-1] + if b.StartLine == last.StartLine && + b.StartCol == last.StartCol && + b.EndLine == last.EndLine && + b.EndCol == last.EndCol { + if b.NumStmt != last.NumStmt { + return nil, fmt.Errorf("inconsistent NumStmt: changed from %d to %d", last.NumStmt, b.NumStmt) + } + if mode == "set" { + p.Blocks[j-1].Count |= b.Count + } else { + p.Blocks[j-1].Count += b.Count + } + continue + } + p.Blocks[j] = b + j++ + } + p.Blocks = p.Blocks[:j] + } + // Generate a sorted slice. + profiles := make([]*Profile, 0, len(files)) + for _, profile := range files { + profiles = append(profiles, profile) + } + sort.Sort(byFileName(profiles)) + return profiles, nil +} + +// parseLine parses a line from a coverage file. +// It is equivalent to the regex +// ^(.+):([0-9]+)\.([0-9]+),([0-9]+)\.([0-9]+) ([0-9]+) ([0-9]+)$ +// +// However, it is much faster: https://golang.org/cl/179377 +func parseLine(l string) (fileName string, block ProfileBlock, err error) { + end := len(l) + + b := ProfileBlock{} + b.Count, end, err = seekBack(l, ' ', end, "Count") + if err != nil { + return "", b, err + } + b.NumStmt, end, err = seekBack(l, ' ', end, "NumStmt") + if err != nil { + return "", b, err + } + b.EndCol, end, err = seekBack(l, '.', end, "EndCol") + if err != nil { + return "", b, err + } + b.EndLine, end, err = seekBack(l, ',', end, "EndLine") + if err != nil { + return "", b, err + } + b.StartCol, end, err = seekBack(l, '.', end, "StartCol") + if err != nil { + return "", b, err + } + b.StartLine, end, err = seekBack(l, ':', end, "StartLine") + if err != nil { + return "", b, err + } + fn := l[0:end] + if fn == "" { + return "", b, errors.New("a FileName cannot be blank") + } + return fn, b, nil +} + +// seekBack searches backwards from end to find sep in l, then returns the +// value between sep and end as an integer. +// If seekBack fails, the returned error will reference what. +func seekBack(l string, sep byte, end int, what string) (value int, nextSep int, err error) { + // Since we're seeking backwards and we know only ASCII is legal for these values, + // we can ignore the possibility of non-ASCII characters. + for start := end - 1; start >= 0; start-- { + if l[start] == sep { + i, err := strconv.Atoi(l[start+1 : end]) + if err != nil { + return 0, 0, fmt.Errorf("couldn't parse %q: %v", what, err) + } + if i < 0 { + return 0, 0, fmt.Errorf("negative values are not allowed for %s, found %d", what, i) + } + return i, start, nil + } + } + return 0, 0, fmt.Errorf("couldn't find a %s before %s", string(sep), what) +} + +type blocksByStart []ProfileBlock + +func (b blocksByStart) Len() int { return len(b) } +func (b blocksByStart) Swap(i, j int) { b[i], b[j] = b[j], b[i] } +func (b blocksByStart) Less(i, j int) bool { + bi, bj := b[i], b[j] + return bi.StartLine < bj.StartLine || bi.StartLine == bj.StartLine && bi.StartCol < bj.StartCol +} + +// Boundary represents the position in a source file of the beginning or end of a +// block as reported by the coverage profile. In HTML mode, it will correspond to +// the opening or closing of a tag and will be used to colorize the source +type Boundary struct { + Offset int // Location as a byte offset in the source file. + Start bool // Is this the start of a block? + Count int // Event count from the cover profile. + Norm float64 // Count normalized to [0..1]. + Index int // Order in input file. +} + +// Boundaries returns a Profile as a set of Boundary objects within the provided src. +func (p *Profile) Boundaries(src []byte) (boundaries []Boundary) { + // Find maximum count. + max := 0 + for _, b := range p.Blocks { + if b.Count > max { + max = b.Count + } + } + // Divisor for normalization. + divisor := math.Log(float64(max)) + + // boundary returns a Boundary, populating the Norm field with a normalized Count. + index := 0 + boundary := func(offset int, start bool, count int) Boundary { + b := Boundary{Offset: offset, Start: start, Count: count, Index: index} + index++ + if !start || count == 0 { + return b + } + if max <= 1 { + b.Norm = 0.8 // Profile is in"set" mode; we want a heat map. Use cov8 in the CSS. + } else if count > 0 { + b.Norm = math.Log(float64(count)) / divisor + } + return b + } + + line, col := 1, 2 // TODO: Why is this 2? + for si, bi := 0, 0; si < len(src) && bi < len(p.Blocks); { + b := p.Blocks[bi] + if b.StartLine == line && b.StartCol == col { + boundaries = append(boundaries, boundary(si, true, b.Count)) + } + if b.EndLine == line && b.EndCol == col || line > b.EndLine { + boundaries = append(boundaries, boundary(si, false, 0)) + bi++ + continue // Don't advance through src; maybe the next block starts here. + } + if src[si] == '\n' { + line++ + col = 0 + } + col++ + si++ + } + sort.Sort(boundariesByPos(boundaries)) + return +} + +type boundariesByPos []Boundary + +func (b boundariesByPos) Len() int { return len(b) } +func (b boundariesByPos) Swap(i, j int) { b[i], b[j] = b[j], b[i] } +func (b boundariesByPos) Less(i, j int) bool { + if b[i].Offset == b[j].Offset { + // Boundaries at the same offset should be ordered according to + // their original position. + return b[i].Index < b[j].Index + } + return b[i].Offset < b[j].Offset +} diff --git a/vendor/golang.org/x/tools/go/gcexportdata/gcexportdata.go b/vendor/golang.org/x/tools/go/gcexportdata/gcexportdata.go index 03543bd4b..137cc8df1 100644 --- a/vendor/golang.org/x/tools/go/gcexportdata/gcexportdata.go +++ b/vendor/golang.org/x/tools/go/gcexportdata/gcexportdata.go @@ -47,7 +47,7 @@ import ( func Find(importPath, srcDir string) (filename, path string) { cmd := exec.Command("go", "list", "-json", "-export", "--", importPath) cmd.Dir = srcDir - out, err := cmd.CombinedOutput() + out, err := cmd.Output() if err != nil { return "", "" } diff --git a/vendor/golang.org/x/tools/go/types/objectpath/objectpath.go b/vendor/golang.org/x/tools/go/types/objectpath/objectpath.go index 11d5c8c3a..a2386c347 100644 --- a/vendor/golang.org/x/tools/go/types/objectpath/objectpath.go +++ b/vendor/golang.org/x/tools/go/types/objectpath/objectpath.go @@ -29,9 +29,12 @@ import ( "strconv" "strings" - "golang.org/x/tools/internal/typeparams" + "golang.org/x/tools/internal/aliases" + "golang.org/x/tools/internal/typesinternal" ) +// TODO(adonovan): think about generic aliases. + // A Path is an opaque name that identifies a types.Object // relative to its package. Conceptually, the name consists of a // sequence of destructuring operations applied to the package scope @@ -223,7 +226,7 @@ func (enc *Encoder) For(obj types.Object) (Path, error) { // Reject obviously non-viable cases. switch obj := obj.(type) { case *types.TypeName: - if _, ok := obj.Type().(*types.TypeParam); !ok { + if _, ok := aliases.Unalias(obj.Type()).(*types.TypeParam); !ok { // With the exception of type parameters, only package-level type names // have a path. return "", fmt.Errorf("no path for %v", obj) @@ -310,7 +313,7 @@ func (enc *Encoder) For(obj types.Object) (Path, error) { } // Inspect declared methods of defined types. - if T, ok := o.Type().(*types.Named); ok { + if T, ok := aliases.Unalias(o.Type()).(*types.Named); ok { path = append(path, opType) // The method index here is always with respect // to the underlying go/types data structures, @@ -391,17 +394,12 @@ func (enc *Encoder) concreteMethod(meth *types.Func) (Path, bool) { // of objectpath will only be giving us origin methods, anyway, as referring // to instantiated methods is usually not useful. - if typeparams.OriginMethod(meth) != meth { + if meth.Origin() != meth { return "", false } - recvT := meth.Type().(*types.Signature).Recv().Type() - if ptr, ok := recvT.(*types.Pointer); ok { - recvT = ptr.Elem() - } - - named, ok := recvT.(*types.Named) - if !ok { + _, named := typesinternal.ReceiverNamed(meth.Type().(*types.Signature).Recv()) + if named == nil { return "", false } @@ -444,6 +442,8 @@ func (enc *Encoder) concreteMethod(meth *types.Func) (Path, bool) { // nil, it will be allocated as necessary. func find(obj types.Object, T types.Type, path []byte, seen map[*types.TypeName]bool) []byte { switch T := T.(type) { + case *aliases.Alias: + return find(obj, aliases.Unalias(T), path, seen) case *types.Basic, *types.Named: // Named types belonging to pkg were handled already, // so T must belong to another package. No path. @@ -616,6 +616,7 @@ func Object(pkg *types.Package, p Path) (types.Object, error) { // Inv: t != nil, obj == nil + t = aliases.Unalias(t) switch code { case opElem: hasElem, ok := t.(hasElem) // Pointer, Slice, Array, Chan, Map diff --git a/vendor/golang.org/x/tools/internal/aliases/aliases.go b/vendor/golang.org/x/tools/internal/aliases/aliases.go new file mode 100644 index 000000000..f89112c8e --- /dev/null +++ b/vendor/golang.org/x/tools/internal/aliases/aliases.go @@ -0,0 +1,28 @@ +// Copyright 2024 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package aliases + +import ( + "go/token" + "go/types" +) + +// Package aliases defines backward compatible shims +// for the types.Alias type representation added in 1.22. +// This defines placeholders for x/tools until 1.26. + +// NewAlias creates a new TypeName in Package pkg that +// is an alias for the type rhs. +// +// When GoVersion>=1.22 and GODEBUG=gotypesalias=1, +// the Type() of the return value is a *types.Alias. +func NewAlias(pos token.Pos, pkg *types.Package, name string, rhs types.Type) *types.TypeName { + if enabled() { + tname := types.NewTypeName(pos, pkg, name, nil) + newAlias(tname, rhs) + return tname + } + return types.NewTypeName(pos, pkg, name, rhs) +} diff --git a/vendor/golang.org/x/tools/internal/aliases/aliases_go121.go b/vendor/golang.org/x/tools/internal/aliases/aliases_go121.go new file mode 100644 index 000000000..1872b56ff --- /dev/null +++ b/vendor/golang.org/x/tools/internal/aliases/aliases_go121.go @@ -0,0 +1,30 @@ +// Copyright 2024 The Go 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:build !go1.22 +// +build !go1.22 + +package aliases + +import ( + "go/types" +) + +// Alias is a placeholder for a go/types.Alias for <=1.21. +// It will never be created by go/types. +type Alias struct{} + +func (*Alias) String() string { panic("unreachable") } + +func (*Alias) Underlying() types.Type { panic("unreachable") } + +func (*Alias) Obj() *types.TypeName { panic("unreachable") } + +// Unalias returns the type t for go <=1.21. +func Unalias(t types.Type) types.Type { return t } + +// Always false for go <=1.21. Ignores GODEBUG. +func enabled() bool { return false } + +func newAlias(name *types.TypeName, rhs types.Type) *Alias { panic("unreachable") } diff --git a/vendor/golang.org/x/tools/internal/aliases/aliases_go122.go b/vendor/golang.org/x/tools/internal/aliases/aliases_go122.go new file mode 100644 index 000000000..8b9211628 --- /dev/null +++ b/vendor/golang.org/x/tools/internal/aliases/aliases_go122.go @@ -0,0 +1,72 @@ +// Copyright 2024 The Go 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:build go1.22 +// +build go1.22 + +package aliases + +import ( + "go/ast" + "go/parser" + "go/token" + "go/types" + "os" + "strings" + "sync" +) + +// Alias is an alias of types.Alias. +type Alias = types.Alias + +// Unalias is a wrapper of types.Unalias. +func Unalias(t types.Type) types.Type { return types.Unalias(t) } + +// newAlias is an internal alias around types.NewAlias. +// Direct usage is discouraged as the moment. +// Try to use NewAlias instead. +func newAlias(tname *types.TypeName, rhs types.Type) *Alias { + a := types.NewAlias(tname, rhs) + // TODO(go.dev/issue/65455): Remove kludgy workaround to set a.actual as a side-effect. + Unalias(a) + return a +} + +// enabled returns true when types.Aliases are enabled. +func enabled() bool { + // Use the gotypesalias value in GODEBUG if set. + godebug := os.Getenv("GODEBUG") + value := -1 // last set value. + for _, f := range strings.Split(godebug, ",") { + switch f { + case "gotypesalias=1": + value = 1 + case "gotypesalias=0": + value = 0 + } + } + switch value { + case 0: + return false + case 1: + return true + default: + return aliasesDefault() + } +} + +// aliasesDefault reports if aliases are enabled by default. +func aliasesDefault() bool { + // Dynamically check if Aliases will be produced from go/types. + aliasesDefaultOnce.Do(func() { + fset := token.NewFileSet() + f, _ := parser.ParseFile(fset, "a.go", "package p; type A = int", 0) + pkg, _ := new(types.Config).Check("p", fset, []*ast.File{f}, nil) + _, gotypesaliasDefault = pkg.Scope().Lookup("A").Type().(*types.Alias) + }) + return gotypesaliasDefault +} + +var gotypesaliasDefault bool +var aliasesDefaultOnce sync.Once diff --git a/vendor/golang.org/x/tools/internal/gcimporter/gcimporter.go b/vendor/golang.org/x/tools/internal/gcimporter/gcimporter.go index 2d078ccb1..39df91124 100644 --- a/vendor/golang.org/x/tools/internal/gcimporter/gcimporter.go +++ b/vendor/golang.org/x/tools/internal/gcimporter/gcimporter.go @@ -259,13 +259,6 @@ func Import(packages map[string]*types.Package, path, srcDir string, lookup func return } -func deref(typ types.Type) types.Type { - if p, _ := typ.(*types.Pointer); p != nil { - return p.Elem() - } - return typ -} - type byPath []*types.Package func (a byPath) Len() int { return len(a) } diff --git a/vendor/golang.org/x/tools/internal/gcimporter/iexport.go b/vendor/golang.org/x/tools/internal/gcimporter/iexport.go index 2ee8c7016..683bd7395 100644 --- a/vendor/golang.org/x/tools/internal/gcimporter/iexport.go +++ b/vendor/golang.org/x/tools/internal/gcimporter/iexport.go @@ -21,8 +21,10 @@ import ( "sort" "strconv" "strings" + "unsafe" "golang.org/x/tools/go/types/objectpath" + "golang.org/x/tools/internal/aliases" "golang.org/x/tools/internal/tokeninternal" ) @@ -463,7 +465,7 @@ func (p *iexporter) doDecl(obj types.Object) { switch obj := obj.(type) { case *types.Var: - w.tag('V') + w.tag(varTag) w.pos(obj.Pos()) w.typ(obj.Type(), obj.Pkg()) @@ -481,9 +483,9 @@ func (p *iexporter) doDecl(obj types.Object) { // Function. if sig.TypeParams().Len() == 0 { - w.tag('F') + w.tag(funcTag) } else { - w.tag('G') + w.tag(genericFuncTag) } w.pos(obj.Pos()) // The tparam list of the function type is the declaration of the type @@ -499,20 +501,20 @@ func (p *iexporter) doDecl(obj types.Object) { w.signature(sig) case *types.Const: - w.tag('C') + w.tag(constTag) w.pos(obj.Pos()) w.value(obj.Type(), obj.Val()) case *types.TypeName: t := obj.Type() - if tparam, ok := t.(*types.TypeParam); ok { - w.tag('P') + if tparam, ok := aliases.Unalias(t).(*types.TypeParam); ok { + w.tag(typeParamTag) w.pos(obj.Pos()) constraint := tparam.Constraint() if p.version >= iexportVersionGo1_18 { implicit := false - if iface, _ := constraint.(*types.Interface); iface != nil { + if iface, _ := aliases.Unalias(constraint).(*types.Interface); iface != nil { implicit = iface.IsImplicit() } w.bool(implicit) @@ -522,8 +524,13 @@ func (p *iexporter) doDecl(obj types.Object) { } if obj.IsAlias() { - w.tag('A') + w.tag(aliasTag) w.pos(obj.Pos()) + if alias, ok := t.(*aliases.Alias); ok { + // Preserve materialized aliases, + // even of non-exported types. + t = aliasRHS(alias) + } w.typ(t, obj.Pkg()) break } @@ -535,9 +542,9 @@ func (p *iexporter) doDecl(obj types.Object) { } if named.TypeParams().Len() == 0 { - w.tag('T') + w.tag(typeTag) } else { - w.tag('U') + w.tag(genericTypeTag) } w.pos(obj.Pos()) @@ -547,7 +554,7 @@ func (p *iexporter) doDecl(obj types.Object) { w.tparamList(obj.Name(), named.TypeParams(), obj.Pkg()) } - underlying := obj.Type().Underlying() + underlying := named.Underlying() w.typ(underlying, obj.Pkg()) if types.IsInterface(t) { @@ -738,6 +745,11 @@ func (w *exportWriter) doTyp(t types.Type, pkg *types.Package) { }() } switch t := t.(type) { + case *aliases.Alias: + // TODO(adonovan): support parameterized aliases, following *types.Named. + w.startType(aliasType) + w.qualifiedType(t.Obj()) + case *types.Named: if targs := t.TypeArgs(); targs.Len() > 0 { w.startType(instanceType) @@ -843,7 +855,7 @@ func (w *exportWriter) doTyp(t types.Type, pkg *types.Package) { for i := 0; i < n; i++ { ft := t.EmbeddedType(i) tPkg := pkg - if named, _ := ft.(*types.Named); named != nil { + if named, _ := aliases.Unalias(ft).(*types.Named); named != nil { w.pos(named.Obj().Pos()) } else { w.pos(token.NoPos) @@ -1319,3 +1331,19 @@ func (e internalError) Error() string { return "gcimporter: " + string(e) } func internalErrorf(format string, args ...interface{}) error { return internalError(fmt.Sprintf(format, args...)) } + +// aliasRHS removes exactly one Alias constructor. +func aliasRHS(alias *aliases.Alias) types.Type { + // TODO(adonovan): if proposal #66559 is accepted, this will + // become Alias.RHS(alias). In the meantime, we must punch + // through the drywall. + type go123Alias struct { + _ *types.TypeName + _ *types.TypeParamList + RHS types.Type + _ types.Type + } + var raw *go123Alias + *(**aliases.Alias)(unsafe.Pointer(&raw)) = alias + return raw.RHS +} diff --git a/vendor/golang.org/x/tools/internal/gcimporter/iimport.go b/vendor/golang.org/x/tools/internal/gcimporter/iimport.go index 9bde15e3b..2732121b5 100644 --- a/vendor/golang.org/x/tools/internal/gcimporter/iimport.go +++ b/vendor/golang.org/x/tools/internal/gcimporter/iimport.go @@ -22,6 +22,8 @@ import ( "strings" "golang.org/x/tools/go/types/objectpath" + "golang.org/x/tools/internal/aliases" + "golang.org/x/tools/internal/typesinternal" ) type intReader struct { @@ -78,6 +80,20 @@ const ( typeParamType instanceType unionType + aliasType +) + +// Object tags +const ( + varTag = 'V' + funcTag = 'F' + genericFuncTag = 'G' + constTag = 'C' + aliasTag = 'A' + genericAliasTag = 'B' + typeParamTag = 'P' + typeTag = 'T' + genericTypeTag = 'U' ) // IImportData imports a package from the serialized package data @@ -224,6 +240,7 @@ func iimportCommon(fset *token.FileSet, getPackages GetPackagesFunc, data []byte // Gather the relevant packages from the manifest. items := make([]GetPackagesItem, r.uint64()) + uniquePkgPaths := make(map[string]bool) for i := range items { pkgPathOff := r.uint64() pkgPath := p.stringAt(pkgPathOff) @@ -248,6 +265,12 @@ func iimportCommon(fset *token.FileSet, getPackages GetPackagesFunc, data []byte } items[i].nameIndex = nameIndex + + uniquePkgPaths[pkgPath] = true + } + // Debugging #63822; hypothesis: there are duplicate PkgPaths. + if len(uniquePkgPaths) != len(items) { + reportf("found duplicate PkgPaths while reading export data manifest: %v", items) } // Request packages all at once from the client, @@ -315,7 +338,7 @@ func iimportCommon(fset *token.FileSet, getPackages GetPackagesFunc, data []byte } // SetConstraint can't be called if the constraint type is not yet complete. - // When type params are created in the 'P' case of (*importReader).obj(), + // When type params are created in the typeParamTag case of (*importReader).obj(), // the associated constraint type may not be complete due to recursion. // Therefore, we defer calling SetConstraint there, and call it here instead // after all types are complete. @@ -515,7 +538,7 @@ func canReuse(def *types.Named, rhs types.Type) bool { if def == nil { return true } - iface, _ := rhs.(*types.Interface) + iface, _ := aliases.Unalias(rhs).(*types.Interface) if iface == nil { return true } @@ -537,25 +560,29 @@ func (r *importReader) obj(name string) { pos := r.pos() switch tag { - case 'A': + case aliasTag: typ := r.typ() - - r.declare(types.NewTypeName(pos, r.currPkg, name, typ)) - - case 'C': + // TODO(adonovan): support generic aliases: + // if tag == genericAliasTag { + // tparams := r.tparamList() + // alias.SetTypeParams(tparams) + // } + r.declare(aliases.NewAlias(pos, r.currPkg, name, typ)) + + case constTag: typ, val := r.value() r.declare(types.NewConst(pos, r.currPkg, name, typ, val)) - case 'F', 'G': + case funcTag, genericFuncTag: var tparams []*types.TypeParam - if tag == 'G' { + if tag == genericFuncTag { tparams = r.tparamList() } sig := r.signature(nil, nil, tparams) r.declare(types.NewFunc(pos, r.currPkg, name, sig)) - case 'T', 'U': + case typeTag, genericTypeTag: // Types can be recursive. We need to setup a stub // declaration before recursing. obj := types.NewTypeName(pos, r.currPkg, name, nil) @@ -563,7 +590,7 @@ func (r *importReader) obj(name string) { // Declare obj before calling r.tparamList, so the new type name is recognized // if used in the constraint of one of its own typeparams (see #48280). r.declare(obj) - if tag == 'U' { + if tag == genericTypeTag { tparams := r.tparamList() named.SetTypeParams(tparams) } @@ -580,14 +607,13 @@ func (r *importReader) obj(name string) { // If the receiver has any targs, set those as the // rparams of the method (since those are the // typeparams being used in the method sig/body). - base := baseType(recv.Type()) - assert(base != nil) - targs := base.TypeArgs() + _, recvNamed := typesinternal.ReceiverNamed(recv) + targs := recvNamed.TypeArgs() var rparams []*types.TypeParam if targs.Len() > 0 { rparams = make([]*types.TypeParam, targs.Len()) for i := range rparams { - rparams[i] = targs.At(i).(*types.TypeParam) + rparams[i] = aliases.Unalias(targs.At(i)).(*types.TypeParam) } } msig := r.signature(recv, rparams, nil) @@ -596,7 +622,7 @@ func (r *importReader) obj(name string) { } } - case 'P': + case typeParamTag: // We need to "declare" a typeparam in order to have a name that // can be referenced recursively (if needed) in the type param's // bound. @@ -617,7 +643,7 @@ func (r *importReader) obj(name string) { } constraint := r.typ() if implicit { - iface, _ := constraint.(*types.Interface) + iface, _ := aliases.Unalias(constraint).(*types.Interface) if iface == nil { errorf("non-interface constraint marked implicit") } @@ -629,7 +655,7 @@ func (r *importReader) obj(name string) { // completely set up all types in ImportData. r.p.later = append(r.p.later, setConstraintArgs{t: t, constraint: constraint}) - case 'V': + case varTag: typ := r.typ() r.declare(types.NewVar(pos, r.currPkg, name, typ)) @@ -824,7 +850,7 @@ func (r *importReader) typ() types.Type { } func isInterface(t types.Type) bool { - _, ok := t.(*types.Interface) + _, ok := aliases.Unalias(t).(*types.Interface) return ok } @@ -846,7 +872,7 @@ func (r *importReader) doType(base *types.Named) (res types.Type) { errorf("unexpected kind tag in %q: %v", r.p.ipath, k) return nil - case definedType: + case aliasType, definedType: pkg, name := r.qualifiedIdent() r.p.doDecl(pkg, name) return pkg.Scope().Lookup(name).(*types.TypeName).Type() @@ -1023,7 +1049,7 @@ func (r *importReader) tparamList() []*types.TypeParam { for i := range xs { // Note: the standard library importer is tolerant of nil types here, // though would panic in SetTypeParams. - xs[i] = r.typ().(*types.TypeParam) + xs[i] = aliases.Unalias(r.typ()).(*types.TypeParam) } return xs } @@ -1070,13 +1096,3 @@ func (r *importReader) byte() byte { } return x } - -func baseType(typ types.Type) *types.Named { - // pointer receivers are never types.Named types - if p, _ := typ.(*types.Pointer); p != nil { - typ = p.Elem() - } - // receiver base types are always (possibly generic) types.Named types - n, _ := typ.(*types.Named) - return n -} diff --git a/vendor/golang.org/x/tools/internal/gcimporter/support_go117.go b/vendor/golang.org/x/tools/internal/gcimporter/support_go117.go deleted file mode 100644 index d892273ef..000000000 --- a/vendor/golang.org/x/tools/internal/gcimporter/support_go117.go +++ /dev/null @@ -1,16 +0,0 @@ -// Copyright 2021 The Go 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:build !go1.18 -// +build !go1.18 - -package gcimporter - -import "go/types" - -const iexportVersion = iexportVersionGo1_11 - -func additionalPredeclared() []types.Type { - return nil -} diff --git a/vendor/golang.org/x/tools/internal/gcimporter/support_go118.go b/vendor/golang.org/x/tools/internal/gcimporter/support_go118.go index edbe6ea70..0cd3b91b6 100644 --- a/vendor/golang.org/x/tools/internal/gcimporter/support_go118.go +++ b/vendor/golang.org/x/tools/internal/gcimporter/support_go118.go @@ -2,9 +2,6 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build go1.18 -// +build go1.18 - package gcimporter import "go/types" diff --git a/vendor/golang.org/x/tools/internal/gcimporter/unified_no.go b/vendor/golang.org/x/tools/internal/gcimporter/unified_no.go index 286bf4454..38b624cad 100644 --- a/vendor/golang.org/x/tools/internal/gcimporter/unified_no.go +++ b/vendor/golang.org/x/tools/internal/gcimporter/unified_no.go @@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build !(go1.18 && goexperiment.unified) -// +build !go1.18 !goexperiment.unified +//go:build !goexperiment.unified +// +build !goexperiment.unified package gcimporter diff --git a/vendor/golang.org/x/tools/internal/gcimporter/unified_yes.go b/vendor/golang.org/x/tools/internal/gcimporter/unified_yes.go index b5d69ffbe..b5118d0b3 100644 --- a/vendor/golang.org/x/tools/internal/gcimporter/unified_yes.go +++ b/vendor/golang.org/x/tools/internal/gcimporter/unified_yes.go @@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build go1.18 && goexperiment.unified -// +build go1.18,goexperiment.unified +//go:build goexperiment.unified +// +build goexperiment.unified package gcimporter diff --git a/vendor/golang.org/x/tools/internal/gcimporter/ureader_no.go b/vendor/golang.org/x/tools/internal/gcimporter/ureader_no.go deleted file mode 100644 index 8eb20729c..000000000 --- a/vendor/golang.org/x/tools/internal/gcimporter/ureader_no.go +++ /dev/null @@ -1,19 +0,0 @@ -// Copyright 2022 The Go 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:build !go1.18 -// +build !go1.18 - -package gcimporter - -import ( - "fmt" - "go/token" - "go/types" -) - -func UImportData(fset *token.FileSet, imports map[string]*types.Package, data []byte, path string) (_ int, pkg *types.Package, err error) { - err = fmt.Errorf("go/tools compiled with a Go version earlier than 1.18 cannot read unified IR export data") - return -} diff --git a/vendor/golang.org/x/tools/internal/gcimporter/ureader_yes.go b/vendor/golang.org/x/tools/internal/gcimporter/ureader_yes.go index b977435f6..b3be452ae 100644 --- a/vendor/golang.org/x/tools/internal/gcimporter/ureader_yes.go +++ b/vendor/golang.org/x/tools/internal/gcimporter/ureader_yes.go @@ -4,9 +4,6 @@ // Derived from go/internal/gcimporter/ureader.go -//go:build go1.18 -// +build go1.18 - package gcimporter import ( @@ -16,6 +13,7 @@ import ( "sort" "strings" + "golang.org/x/tools/internal/aliases" "golang.org/x/tools/internal/pkgbits" ) @@ -526,7 +524,7 @@ func (pr *pkgReader) objIdx(idx pkgbits.Index) (*types.Package, string) { case pkgbits.ObjAlias: pos := r.pos() typ := r.typ() - declare(types.NewTypeName(pos, objPkg, objName, typ)) + declare(aliases.NewAlias(pos, objPkg, objName, typ)) case pkgbits.ObjConst: pos := r.pos() @@ -553,7 +551,7 @@ func (pr *pkgReader) objIdx(idx pkgbits.Index) (*types.Package, string) { // If the underlying type is an interface, we need to // duplicate its methods so we can replace the receiver // parameter's type (#49906). - if iface, ok := underlying.(*types.Interface); ok && iface.NumExplicitMethods() != 0 { + if iface, ok := aliases.Unalias(underlying).(*types.Interface); ok && iface.NumExplicitMethods() != 0 { methods := make([]*types.Func, iface.NumExplicitMethods()) for i := range methods { fn := iface.ExplicitMethod(i) diff --git a/vendor/golang.org/x/tools/internal/gocommand/invoke.go b/vendor/golang.org/x/tools/internal/gocommand/invoke.go index 55312522d..f7de3c828 100644 --- a/vendor/golang.org/x/tools/internal/gocommand/invoke.go +++ b/vendor/golang.org/x/tools/internal/gocommand/invoke.go @@ -158,12 +158,15 @@ type Invocation struct { BuildFlags []string // If ModFlag is set, the go command is invoked with -mod=ModFlag. + // TODO(rfindley): remove, in favor of Args. ModFlag string // If ModFile is set, the go command is invoked with -modfile=ModFile. + // TODO(rfindley): remove, in favor of Args. ModFile string // If Overlay is set, the go command is invoked with -overlay=Overlay. + // TODO(rfindley): remove, in favor of Args. Overlay string // If CleanEnv is set, the invocation will run only with the environment diff --git a/vendor/golang.org/x/tools/internal/gopathwalk/walk.go b/vendor/golang.org/x/tools/internal/gopathwalk/walk.go index 52f74e643..836151551 100644 --- a/vendor/golang.org/x/tools/internal/gopathwalk/walk.go +++ b/vendor/golang.org/x/tools/internal/gopathwalk/walk.go @@ -9,11 +9,13 @@ package gopathwalk import ( "bufio" "bytes" + "io" "io/fs" - "log" "os" "path/filepath" + "runtime" "strings" + "sync" "time" ) @@ -21,8 +23,13 @@ import ( type Options struct { // If Logf is non-nil, debug logging is enabled through this function. Logf func(format string, args ...interface{}) + // Search module caches. Also disables legacy goimports ignore rules. ModulesEnabled bool + + // Maximum number of concurrent calls to user-provided callbacks, + // or 0 for GOMAXPROCS. + Concurrency int } // RootType indicates the type of a Root. @@ -43,19 +50,28 @@ type Root struct { Type RootType } -// Walk walks Go source directories ($GOROOT, $GOPATH, etc) to find packages. +// Walk concurrently walks Go source directories ($GOROOT, $GOPATH, etc) to find packages. +// // For each package found, add will be called with the absolute // paths of the containing source directory and the package directory. +// +// Unlike filepath.WalkDir, Walk follows symbolic links +// (while guarding against cycles). func Walk(roots []Root, add func(root Root, dir string), opts Options) { WalkSkip(roots, add, func(Root, string) bool { return false }, opts) } -// WalkSkip walks Go source directories ($GOROOT, $GOPATH, etc) to find packages. +// WalkSkip concurrently walks Go source directories ($GOROOT, $GOPATH, etc) to +// find packages. +// // For each package found, add will be called with the absolute // paths of the containing source directory and the package directory. // For each directory that will be scanned, skip will be called // with the absolute paths of the containing source directory and the directory. // If skip returns false on a directory it will be processed. +// +// Unlike filepath.WalkDir, WalkSkip follows symbolic links +// (while guarding against cycles). func WalkSkip(roots []Root, add func(root Root, dir string), skip func(root Root, dir string) bool, opts Options) { for _, root := range roots { walkDir(root, add, skip, opts) @@ -64,45 +80,51 @@ func WalkSkip(roots []Root, add func(root Root, dir string), skip func(root Root // walkDir creates a walker and starts fastwalk with this walker. func walkDir(root Root, add func(Root, string), skip func(root Root, dir string) bool, opts Options) { + if opts.Logf == nil { + opts.Logf = func(format string, args ...interface{}) {} + } if _, err := os.Stat(root.Path); os.IsNotExist(err) { - if opts.Logf != nil { - opts.Logf("skipping nonexistent directory: %v", root.Path) - } + opts.Logf("skipping nonexistent directory: %v", root.Path) return } start := time.Now() - if opts.Logf != nil { - opts.Logf("scanning %s", root.Path) + opts.Logf("scanning %s", root.Path) + + concurrency := opts.Concurrency + if concurrency == 0 { + // The walk be either CPU-bound or I/O-bound, depending on what the + // caller-supplied add function does and the details of the user's platform + // and machine. Rather than trying to fine-tune the concurrency level for a + // specific environment, we default to GOMAXPROCS: it is likely to be a good + // choice for a CPU-bound add function, and if it is instead I/O-bound, then + // dealing with I/O saturation is arguably the job of the kernel and/or + // runtime. (Oversaturating I/O seems unlikely to harm performance as badly + // as failing to saturate would.) + concurrency = runtime.GOMAXPROCS(0) } - w := &walker{ - root: root, - add: add, - skip: skip, - opts: opts, - added: make(map[string]bool), + root: root, + add: add, + skip: skip, + opts: opts, + sem: make(chan struct{}, concurrency), } w.init() - // Add a trailing path separator to cause filepath.WalkDir to traverse symlinks. + w.sem <- struct{}{} path := root.Path - if len(path) == 0 { - path = "." + string(filepath.Separator) - } else if !os.IsPathSeparator(path[len(path)-1]) { - path = path + string(filepath.Separator) + if path == "" { + path = "." } - - if err := filepath.WalkDir(path, w.walk); err != nil { - logf := opts.Logf - if logf == nil { - logf = log.Printf - } - logf("scanning directory %v: %v", root.Path, err) + if fi, err := os.Lstat(path); err == nil { + w.walk(path, nil, fs.FileInfoToDirEntry(fi)) + } else { + w.opts.Logf("scanning directory %v: %v", root.Path, err) } + <-w.sem + w.walking.Wait() - if opts.Logf != nil { - opts.Logf("scanned %s in %v", root.Path, time.Since(start)) - } + opts.Logf("scanned %s in %v", root.Path, time.Since(start)) } // walker is the callback for fastwalk.Walk. @@ -112,10 +134,18 @@ type walker struct { skip func(Root, string) bool // The callback that will be invoked for every dir. dir is skipped if it returns true. opts Options // Options passed to Walk by the user. - pathSymlinks []os.FileInfo - ignoredDirs []string + walking sync.WaitGroup + sem chan struct{} // Channel of semaphore tokens; send to acquire, receive to release. + ignoredDirs []string - added map[string]bool + added sync.Map // map[string]bool +} + +// A symlinkList is a linked list of os.FileInfos for parent directories +// reached via symlinks. +type symlinkList struct { + info os.FileInfo + prev *symlinkList } // init initializes the walker based on its Options @@ -132,9 +162,7 @@ func (w *walker) init() { for _, p := range ignoredPaths { full := filepath.Join(w.root.Path, p) w.ignoredDirs = append(w.ignoredDirs, full) - if w.opts.Logf != nil { - w.opts.Logf("Directory added to ignore list: %s", full) - } + w.opts.Logf("Directory added to ignore list: %s", full) } } @@ -144,12 +172,10 @@ func (w *walker) init() { func (w *walker) getIgnoredDirs(path string) []string { file := filepath.Join(path, ".goimportsignore") slurp, err := os.ReadFile(file) - if w.opts.Logf != nil { - if err != nil { - w.opts.Logf("%v", err) - } else { - w.opts.Logf("Read %s", file) - } + if err != nil { + w.opts.Logf("%v", err) + } else { + w.opts.Logf("Read %s", file) } if err != nil { return nil @@ -183,149 +209,129 @@ func (w *walker) shouldSkipDir(dir string) bool { // walk walks through the given path. // -// Errors are logged if w.opts.Logf is non-nil, but otherwise ignored: -// walk returns only nil or fs.SkipDir. -func (w *walker) walk(path string, d fs.DirEntry, err error) error { - if err != nil { - // We have no way to report errors back through Walk or WalkSkip, - // so just log and ignore them. - if w.opts.Logf != nil { +// Errors are logged if w.opts.Logf is non-nil, but otherwise ignored. +func (w *walker) walk(path string, pathSymlinks *symlinkList, d fs.DirEntry) { + if d.Type()&os.ModeSymlink != 0 { + // Walk the symlink's target rather than the symlink itself. + // + // (Note that os.Stat, unlike the lower-lever os.Readlink, + // follows arbitrarily many layers of symlinks, so it will eventually + // reach either a non-symlink or a nonexistent target.) + // + // TODO(bcmills): 'go list all' itself ignores symlinks within GOROOT/src + // and GOPATH/src. Do we really need to traverse them here? If so, why? + + fi, err := os.Stat(path) + if err != nil { w.opts.Logf("%v", err) + return + } + + // Avoid walking symlink cycles: if we have already followed a symlink to + // this directory as a parent of itself, don't follow it again. + // + // This doesn't catch the first time through a cycle, but it also minimizes + // the number of extra stat calls we make if we *don't* encounter a cycle. + // Since we don't actually expect to encounter symlink cycles in practice, + // this seems like the right tradeoff. + for parent := pathSymlinks; parent != nil; parent = parent.prev { + if os.SameFile(fi, parent.info) { + return + } } - if d == nil { - // Nothing more to do: the error prevents us from knowing - // what path even represents. - return nil + + pathSymlinks = &symlinkList{ + info: fi, + prev: pathSymlinks, } + d = fs.FileInfoToDirEntry(fi) } if d.Type().IsRegular() { if !strings.HasSuffix(path, ".go") { - return nil + return } dir := filepath.Dir(path) if dir == w.root.Path && (w.root.Type == RootGOROOT || w.root.Type == RootGOPATH) { // Doesn't make sense to have regular files // directly in your $GOPATH/src or $GOROOT/src. - return nil + // + // TODO(bcmills): there are many levels of directory within + // RootModuleCache where this also wouldn't make sense, + // Can we generalize this to any directory without a corresponding + // import path? + return } - if !w.added[dir] { + if _, dup := w.added.LoadOrStore(dir, true); !dup { w.add(w.root, dir) - w.added[dir] = true } - return nil } - if d.IsDir() { - base := filepath.Base(path) - if base == "" || base[0] == '.' || base[0] == '_' || - base == "testdata" || - (w.root.Type == RootGOROOT && w.opts.ModulesEnabled && base == "vendor") || - (!w.opts.ModulesEnabled && base == "node_modules") { - return fs.SkipDir - } - if w.shouldSkipDir(path) { - return fs.SkipDir - } - return nil + if !d.IsDir() { + return } - if d.Type()&os.ModeSymlink != 0 { - // TODO(bcmills): 'go list all' itself ignores symlinks within GOROOT/src - // and GOPATH/src. Do we really need to traverse them here? If so, why? - - fi, err := os.Stat(path) - if err != nil || !fi.IsDir() { - // Not a directory. Just walk the file (or broken link) and be done. - return w.walk(path, fs.FileInfoToDirEntry(fi), err) - } - - // Avoid walking symlink cycles: if we have already followed a symlink to - // this directory as a parent of itself, don't follow it again. - // - // This doesn't catch the first time through a cycle, but it also minimizes - // the number of extra stat calls we make if we *don't* encounter a cycle. - // Since we don't actually expect to encounter symlink cycles in practice, - // this seems like the right tradeoff. - for _, parent := range w.pathSymlinks { - if os.SameFile(fi, parent) { - return nil - } - } + base := filepath.Base(path) + if base == "" || base[0] == '.' || base[0] == '_' || + base == "testdata" || + (w.root.Type == RootGOROOT && w.opts.ModulesEnabled && base == "vendor") || + (!w.opts.ModulesEnabled && base == "node_modules") || + w.shouldSkipDir(path) { + return + } - w.pathSymlinks = append(w.pathSymlinks, fi) - defer func() { - w.pathSymlinks = w.pathSymlinks[:len(w.pathSymlinks)-1] - }() + // Read the directory and walk its entries. - // On some platforms the OS (or the Go os package) sometimes fails to - // resolve directory symlinks before a trailing slash - // (even though POSIX requires it to do so). - // - // On macOS that failure may be caused by a known libc/kernel bug; - // see https://go.dev/issue/59586. - // - // On Windows before Go 1.21, it may be caused by a bug in - // os.Lstat (fixed in https://go.dev/cl/463177). - // - // Since we need to handle this explicitly on broken platforms anyway, - // it is simplest to just always do that and not rely on POSIX pathname - // resolution to walk the directory (such as by calling WalkDir with - // a trailing slash appended to the path). + f, err := os.Open(path) + if err != nil { + w.opts.Logf("%v", err) + return + } + defer f.Close() + + for { + // We impose an arbitrary limit on the number of ReadDir results per + // directory to limit the amount of memory consumed for stale or upcoming + // directory entries. The limit trades off CPU (number of syscalls to read + // the whole directory) against RAM (reachable directory entries other than + // the one currently being processed). // - // Instead, we make a sequence of walk calls — directly and through - // recursive calls to filepath.WalkDir — simulating what WalkDir would do - // if the symlink were a regular directory. - - // First we call walk on the path as a directory - // (instead of a symlink). - err = w.walk(path, fs.FileInfoToDirEntry(fi), nil) - if err == fs.SkipDir { - return nil - } else if err != nil { - // This should be impossible, but handle it anyway in case - // walk is changed to return other errors. - return err - } - - // Now read the directory and walk its entries. - ents, err := os.ReadDir(path) + // Since we process the directories recursively, we will end up maintaining + // a slice of entries for each level of the directory tree. + // (Compare https://go.dev/issue/36197.) + ents, err := f.ReadDir(1024) if err != nil { - // Report the ReadDir error, as filepath.WalkDir would do. - err = w.walk(path, fs.FileInfoToDirEntry(fi), err) - if err == fs.SkipDir { - return nil - } else if err != nil { - return err // Again, should be impossible. + if err != io.EOF { + w.opts.Logf("%v", err) } - // Fall through and iterate over whatever entries we did manage to get. + break } for _, d := range ents { nextPath := filepath.Join(path, d.Name()) if d.IsDir() { - // We want to walk the whole directory tree rooted at nextPath, - // not just the single entry for the directory. - err := filepath.WalkDir(nextPath, w.walk) - if err != nil && w.opts.Logf != nil { - w.opts.Logf("%v", err) - } - } else { - err := w.walk(nextPath, d, nil) - if err == fs.SkipDir { - // Skip the rest of the entries in the parent directory of nextPath - // (that is, path itself). - break - } else if err != nil { - return err // Again, should be impossible. + select { + case w.sem <- struct{}{}: + // Got a new semaphore token, so we can traverse the directory concurrently. + d := d + w.walking.Add(1) + go func() { + defer func() { + <-w.sem + w.walking.Done() + }() + w.walk(nextPath, pathSymlinks, d) + }() + continue + + default: + // No tokens available, so traverse serially. } } + + w.walk(nextPath, pathSymlinks, d) } - return nil } - - // Not a file, regular directory, or symlink; skip. - return nil } diff --git a/vendor/golang.org/x/tools/internal/imports/fix.go b/vendor/golang.org/x/tools/internal/imports/fix.go index dd369c072..559803276 100644 --- a/vendor/golang.org/x/tools/internal/imports/fix.go +++ b/vendor/golang.org/x/tools/internal/imports/fix.go @@ -13,6 +13,7 @@ import ( "go/build" "go/parser" "go/token" + "go/types" "io/fs" "io/ioutil" "os" @@ -30,6 +31,7 @@ import ( "golang.org/x/tools/internal/event" "golang.org/x/tools/internal/gocommand" "golang.org/x/tools/internal/gopathwalk" + "golang.org/x/tools/internal/stdlib" ) // importToGroup is a list of functions which map from an import path to @@ -510,9 +512,9 @@ func (p *pass) assumeSiblingImportsValid() { } for left, rights := range refs { if imp, ok := importsByName[left]; ok { - if m, ok := stdlib[imp.ImportPath]; ok { + if m, ok := stdlib.PackageSymbols[imp.ImportPath]; ok { // We have the stdlib in memory; no need to guess. - rights = copyExports(m) + rights = symbolNameSet(m) } p.addCandidate(imp, &packageInfo{ // no name; we already know it. @@ -640,7 +642,7 @@ func getCandidatePkgs(ctx context.Context, wrappedCallback *scanCallback, filena dupCheck := map[string]struct{}{} // Start off with the standard library. - for importPath, exports := range stdlib { + for importPath, symbols := range stdlib.PackageSymbols { p := &pkg{ dir: filepath.Join(goenv["GOROOT"], "src", importPath), importPathShort: importPath, @@ -649,6 +651,13 @@ func getCandidatePkgs(ctx context.Context, wrappedCallback *scanCallback, filena } dupCheck[importPath] = struct{}{} if notSelf(p) && wrappedCallback.dirFound(p) && wrappedCallback.packageNameLoaded(p) { + var exports []stdlib.Symbol + for _, sym := range symbols { + switch sym.Kind { + case stdlib.Func, stdlib.Type, stdlib.Var, stdlib.Const: + exports = append(exports, sym) + } + } wrappedCallback.exportsLoaded(p, exports) } } @@ -669,7 +678,7 @@ func getCandidatePkgs(ctx context.Context, wrappedCallback *scanCallback, filena dupCheck[pkg.importPathShort] = struct{}{} return notSelf(pkg) && wrappedCallback.packageNameLoaded(pkg) }, - exportsLoaded: func(pkg *pkg, exports []string) { + exportsLoaded: func(pkg *pkg, exports []stdlib.Symbol) { // If we're an x_test, load the package under test's test variant. if strings.HasSuffix(filePkg, "_test") && pkg.dir == filepath.Dir(filename) { var err error @@ -700,20 +709,21 @@ func ScoreImportPaths(ctx context.Context, env *ProcessEnv, paths []string) (map return result, nil } -func PrimeCache(ctx context.Context, env *ProcessEnv) error { +func PrimeCache(ctx context.Context, resolver Resolver) error { // Fully scan the disk for directories, but don't actually read any Go files. callback := &scanCallback{ - rootFound: func(gopathwalk.Root) bool { - return true + rootFound: func(root gopathwalk.Root) bool { + // See getCandidatePkgs: walking GOROOT is apparently expensive and + // unnecessary. + return root.Type != gopathwalk.RootGOROOT }, dirFound: func(pkg *pkg) bool { return false }, - packageNameLoaded: func(pkg *pkg) bool { - return false - }, + // packageNameLoaded and exportsLoaded must never be called. } - return getCandidatePkgs(ctx, callback, "", "", env) + + return resolver.scan(ctx, callback) } func candidateImportName(pkg *pkg) string { @@ -793,7 +803,7 @@ func GetImportPaths(ctx context.Context, wrapped func(ImportFix), searchPrefix, // A PackageExport is a package and its exports. type PackageExport struct { Fix *ImportFix - Exports []string + Exports []stdlib.Symbol } // GetPackageExports returns all known packages with name pkg and their exports. @@ -808,8 +818,8 @@ func GetPackageExports(ctx context.Context, wrapped func(PackageExport), searchP packageNameLoaded: func(pkg *pkg) bool { return pkg.packageName == searchPkg }, - exportsLoaded: func(pkg *pkg, exports []string) { - sort.Strings(exports) + exportsLoaded: func(pkg *pkg, exports []stdlib.Symbol) { + sortSymbols(exports) wrapped(PackageExport{ Fix: &ImportFix{ StmtInfo: ImportInfo{ @@ -827,16 +837,45 @@ func GetPackageExports(ctx context.Context, wrapped func(PackageExport), searchP return getCandidatePkgs(ctx, callback, filename, filePkg, env) } -var requiredGoEnvVars = []string{"GO111MODULE", "GOFLAGS", "GOINSECURE", "GOMOD", "GOMODCACHE", "GONOPROXY", "GONOSUMDB", "GOPATH", "GOPROXY", "GOROOT", "GOSUMDB", "GOWORK"} +// TODO(rfindley): we should depend on GOOS and GOARCH, to provide accurate +// imports when doing cross-platform development. +var requiredGoEnvVars = []string{ + "GO111MODULE", + "GOFLAGS", + "GOINSECURE", + "GOMOD", + "GOMODCACHE", + "GONOPROXY", + "GONOSUMDB", + "GOPATH", + "GOPROXY", + "GOROOT", + "GOSUMDB", + "GOWORK", +} // ProcessEnv contains environment variables and settings that affect the use of // the go command, the go/build package, etc. +// +// ...a ProcessEnv *also* overwrites its Env along with derived state in the +// form of the resolver. And because it is lazily initialized, an env may just +// be broken and unusable, but there is no way for the caller to detect that: +// all queries will just fail. +// +// TODO(rfindley): refactor this package so that this type (perhaps renamed to +// just Env or Config) is an immutable configuration struct, to be exchanged +// for an initialized object via a constructor that returns an error. Perhaps +// the signature should be `func NewResolver(*Env) (*Resolver, error)`, where +// resolver is a concrete type used for resolving imports. Via this +// refactoring, we can avoid the need to call ProcessEnv.init and +// ProcessEnv.GoEnv everywhere, and implicitly fix all the places where this +// these are misused. Also, we'd delegate the caller the decision of how to +// handle a broken environment. type ProcessEnv struct { GocmdRunner *gocommand.Runner BuildFlags []string ModFlag string - ModFile string // SkipPathInScan returns true if the path should be skipped from scans of // the RootCurrentModule root type. The function argument is a clean, @@ -846,7 +885,7 @@ type ProcessEnv struct { // Env overrides the OS environment, and can be used to specify // GOPROXY, GO111MODULE, etc. PATH cannot be set here, because // exec.Command will not honor it. - // Specifying all of RequiredGoEnvVars avoids a call to `go env`. + // Specifying all of requiredGoEnvVars avoids a call to `go env`. Env map[string]string WorkingDir string @@ -854,9 +893,17 @@ type ProcessEnv struct { // If Logf is non-nil, debug logging is enabled through this function. Logf func(format string, args ...interface{}) - initialized bool + // If set, ModCache holds a shared cache of directory info to use across + // multiple ProcessEnvs. + ModCache *DirInfoCache + + initialized bool // see TODO above - resolver Resolver + // resolver and resolverErr are lazily evaluated (see GetResolver). + // This is unclean, but see the big TODO in the docstring for ProcessEnv + // above: for now, we can't be sure that the ProcessEnv is fully initialized. + resolver Resolver + resolverErr error } func (e *ProcessEnv) goEnv() (map[string]string, error) { @@ -936,20 +983,33 @@ func (e *ProcessEnv) env() []string { } func (e *ProcessEnv) GetResolver() (Resolver, error) { - if e.resolver != nil { - return e.resolver, nil - } if err := e.init(); err != nil { return nil, err } - if len(e.Env["GOMOD"]) == 0 && len(e.Env["GOWORK"]) == 0 { - e.resolver = newGopathResolver(e) - return e.resolver, nil + + if e.resolver == nil && e.resolverErr == nil { + // TODO(rfindley): we should only use a gopathResolver here if the working + // directory is actually *in* GOPATH. (I seem to recall an open gopls issue + // for this behavior, but I can't find it). + // + // For gopls, we can optionally explicitly choose a resolver type, since we + // already know the view type. + if len(e.Env["GOMOD"]) == 0 && len(e.Env["GOWORK"]) == 0 { + e.resolver = newGopathResolver(e) + } else if r, err := newModuleResolver(e, e.ModCache); err != nil { + e.resolverErr = err + } else { + e.resolver = Resolver(r) + } } - e.resolver = newModuleResolver(e) - return e.resolver, nil + + return e.resolver, e.resolverErr } +// buildContext returns the build.Context to use for matching files. +// +// TODO(rfindley): support dynamic GOOS, GOARCH here, when doing cross-platform +// development. func (e *ProcessEnv) buildContext() (*build.Context, error) { ctx := build.Default goenv, err := e.goEnv() @@ -1004,7 +1064,7 @@ func addStdlibCandidates(pass *pass, refs references) error { if path.Base(pkg) == pass.f.Name.Name && filepath.Join(goenv["GOROOT"], "src", pkg) == pass.srcDir { return } - exports := copyExports(stdlib[pkg]) + exports := symbolNameSet(stdlib.PackageSymbols[pkg]) pass.addCandidate( &ImportInfo{ImportPath: pkg}, &packageInfo{name: path.Base(pkg), exports: exports}) @@ -1016,7 +1076,7 @@ func addStdlibCandidates(pass *pass, refs references) error { add("math/rand") continue } - for importPath := range stdlib { + for importPath := range stdlib.PackageSymbols { if path.Base(importPath) == left { add(importPath) } @@ -1029,15 +1089,23 @@ func addStdlibCandidates(pass *pass, refs references) error { type Resolver interface { // loadPackageNames loads the package names in importPaths. loadPackageNames(importPaths []string, srcDir string) (map[string]string, error) + // scan works with callback to search for packages. See scanCallback for details. scan(ctx context.Context, callback *scanCallback) error + // loadExports returns the set of exported symbols in the package at dir. // loadExports may be called concurrently. - loadExports(ctx context.Context, pkg *pkg, includeTest bool) (string, []string, error) + loadExports(ctx context.Context, pkg *pkg, includeTest bool) (string, []stdlib.Symbol, error) + // scoreImportPath returns the relevance for an import path. scoreImportPath(ctx context.Context, path string) float64 - ClearForNewScan() + // ClearForNewScan returns a new Resolver based on the receiver that has + // cleared its internal caches of directory contents. + // + // The new resolver should be primed and then set via + // [ProcessEnv.UpdateResolver]. + ClearForNewScan() Resolver } // A scanCallback controls a call to scan and receives its results. @@ -1056,7 +1124,7 @@ type scanCallback struct { // If it returns true, the package's exports will be loaded. packageNameLoaded func(pkg *pkg) bool // exportsLoaded is called when a package's exports have been loaded. - exportsLoaded func(pkg *pkg, exports []string) + exportsLoaded func(pkg *pkg, exports []stdlib.Symbol) } func addExternalCandidates(ctx context.Context, pass *pass, refs references, filename string) error { @@ -1120,7 +1188,7 @@ func addExternalCandidates(ctx context.Context, pass *pass, refs references, fil go func(pkgName string, symbols map[string]bool) { defer wg.Done() - found, err := findImport(ctx, pass, found[pkgName], pkgName, symbols, filename) + found, err := findImport(ctx, pass, found[pkgName], pkgName, symbols) if err != nil { firstErrOnce.Do(func() { @@ -1151,6 +1219,17 @@ func addExternalCandidates(ctx context.Context, pass *pass, refs references, fil }() for result := range results { + // Don't offer completions that would shadow predeclared + // names, such as github.com/coreos/etcd/error. + if types.Universe.Lookup(result.pkg.name) != nil { // predeclared + // Ideally we would skip this candidate only + // if the predeclared name is actually + // referenced by the file, but that's a lot + // trickier to compute and would still create + // an import that is likely to surprise the + // user before long. + continue + } pass.addCandidate(result.imp, result.pkg) } return firstErr @@ -1193,31 +1272,22 @@ func ImportPathToAssumedName(importPath string) string { type gopathResolver struct { env *ProcessEnv walked bool - cache *dirInfoCache + cache *DirInfoCache scanSema chan struct{} // scanSema prevents concurrent scans. } func newGopathResolver(env *ProcessEnv) *gopathResolver { r := &gopathResolver{ - env: env, - cache: &dirInfoCache{ - dirs: map[string]*directoryPackageInfo{}, - listeners: map[*int]cacheListener{}, - }, + env: env, + cache: NewDirInfoCache(), scanSema: make(chan struct{}, 1), } r.scanSema <- struct{}{} return r } -func (r *gopathResolver) ClearForNewScan() { - <-r.scanSema - r.cache = &dirInfoCache{ - dirs: map[string]*directoryPackageInfo{}, - listeners: map[*int]cacheListener{}, - } - r.walked = false - r.scanSema <- struct{}{} +func (r *gopathResolver) ClearForNewScan() Resolver { + return newGopathResolver(r.env) } func (r *gopathResolver) loadPackageNames(importPaths []string, srcDir string) (map[string]string, error) { @@ -1235,7 +1305,7 @@ func (r *gopathResolver) loadPackageNames(importPaths []string, srcDir string) ( // importPathToName finds out the actual package name, as declared in its .go files. func importPathToName(bctx *build.Context, importPath, srcDir string) string { // Fast path for standard library without going to disk. - if _, ok := stdlib[importPath]; ok { + if stdlib.HasPackage(importPath) { return path.Base(importPath) // stdlib packages always match their paths. } @@ -1433,7 +1503,7 @@ func (r *gopathResolver) scan(ctx context.Context, callback *scanCallback) error } func (r *gopathResolver) scoreImportPath(ctx context.Context, path string) float64 { - if _, ok := stdlib[path]; ok { + if stdlib.HasPackage(path) { return MaxRelevance } return MaxRelevance - 1 @@ -1450,7 +1520,7 @@ func filterRoots(roots []gopathwalk.Root, include func(gopathwalk.Root) bool) [] return result } -func (r *gopathResolver) loadExports(ctx context.Context, pkg *pkg, includeTest bool) (string, []string, error) { +func (r *gopathResolver) loadExports(ctx context.Context, pkg *pkg, includeTest bool) (string, []stdlib.Symbol, error) { if info, ok := r.cache.Load(pkg.dir); ok && !includeTest { return r.cache.CacheExports(ctx, r.env, info) } @@ -1470,7 +1540,7 @@ func VendorlessPath(ipath string) string { return ipath } -func loadExportsFromFiles(ctx context.Context, env *ProcessEnv, dir string, includeTest bool) (string, []string, error) { +func loadExportsFromFiles(ctx context.Context, env *ProcessEnv, dir string, includeTest bool) (string, []stdlib.Symbol, error) { // Look for non-test, buildable .go files which could provide exports. all, err := os.ReadDir(dir) if err != nil { @@ -1494,7 +1564,7 @@ func loadExportsFromFiles(ctx context.Context, env *ProcessEnv, dir string, incl } var pkgName string - var exports []string + var exports []stdlib.Symbol fset := token.NewFileSet() for _, fi := range files { select { @@ -1521,24 +1591,44 @@ func loadExportsFromFiles(ctx context.Context, env *ProcessEnv, dir string, incl continue } pkgName = f.Name.Name - for name := range f.Scope.Objects { + for name, obj := range f.Scope.Objects { if ast.IsExported(name) { - exports = append(exports, name) + var kind stdlib.Kind + switch obj.Kind { + case ast.Con: + kind = stdlib.Const + case ast.Typ: + kind = stdlib.Type + case ast.Var: + kind = stdlib.Var + case ast.Fun: + kind = stdlib.Func + } + exports = append(exports, stdlib.Symbol{ + Name: name, + Kind: kind, + Version: 0, // unknown; be permissive + }) } } } + sortSymbols(exports) if env.Logf != nil { - sortedExports := append([]string(nil), exports...) - sort.Strings(sortedExports) - env.Logf("loaded exports in dir %v (package %v): %v", dir, pkgName, strings.Join(sortedExports, ", ")) + env.Logf("loaded exports in dir %v (package %v): %v", dir, pkgName, exports) } return pkgName, exports, nil } +func sortSymbols(syms []stdlib.Symbol) { + sort.Slice(syms, func(i, j int) bool { + return syms[i].Name < syms[j].Name + }) +} + // findImport searches for a package with the given symbols. // If no package is found, findImport returns ("", false, nil) -func findImport(ctx context.Context, pass *pass, candidates []pkgDistance, pkgName string, symbols map[string]bool, filename string) (*pkg, error) { +func findImport(ctx context.Context, pass *pass, candidates []pkgDistance, pkgName string, symbols map[string]bool) (*pkg, error) { // Sort the candidates by their import package length, // assuming that shorter package names are better than long // ones. Note that this sorts by the de-vendored name, so @@ -1602,7 +1692,7 @@ func findImport(ctx context.Context, pass *pass, candidates []pkgDistance, pkgNa exportsMap := make(map[string]bool, len(exports)) for _, sym := range exports { - exportsMap[sym] = true + exportsMap[sym.Name] = true } // If it doesn't have the right @@ -1760,10 +1850,13 @@ func (fn visitFn) Visit(node ast.Node) ast.Visitor { return fn(node) } -func copyExports(pkg []string) map[string]bool { - m := make(map[string]bool, len(pkg)) - for _, v := range pkg { - m[v] = true +func symbolNameSet(symbols []stdlib.Symbol) map[string]bool { + names := make(map[string]bool) + for _, sym := range symbols { + switch sym.Kind { + case stdlib.Const, stdlib.Var, stdlib.Type, stdlib.Func: + names[sym.Name] = true + } } - return m + return names } diff --git a/vendor/golang.org/x/tools/internal/imports/imports.go b/vendor/golang.org/x/tools/internal/imports/imports.go index 58e637b90..f83465520 100644 --- a/vendor/golang.org/x/tools/internal/imports/imports.go +++ b/vendor/golang.org/x/tools/internal/imports/imports.go @@ -2,8 +2,6 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:generate go run mkstdlib.go - // Package imports implements a Go pretty-printer (like package "go/format") // that also adds or removes import statements as necessary. package imports @@ -109,7 +107,7 @@ func ApplyFixes(fixes []*ImportFix, filename string, src []byte, opt *Options, e } // formatFile formats the file syntax tree. -// It may mutate the token.FileSet. +// It may mutate the token.FileSet and the ast.File. // // If an adjust function is provided, it is called after formatting // with the original source (formatFile's src parameter) and the @@ -236,7 +234,7 @@ func parse(fset *token.FileSet, filename string, src []byte, opt *Options) (*ast src = src[:len(src)-len("}\n")] // Gofmt has also indented the function body one level. // Remove that indent. - src = bytes.Replace(src, []byte("\n\t"), []byte("\n"), -1) + src = bytes.ReplaceAll(src, []byte("\n\t"), []byte("\n")) return matchSpace(orig, src) } return file, adjust, nil diff --git a/vendor/golang.org/x/tools/internal/imports/mod.go b/vendor/golang.org/x/tools/internal/imports/mod.go index 5f4d435d3..21ef93897 100644 --- a/vendor/golang.org/x/tools/internal/imports/mod.go +++ b/vendor/golang.org/x/tools/internal/imports/mod.go @@ -21,51 +21,91 @@ import ( "golang.org/x/tools/internal/event" "golang.org/x/tools/internal/gocommand" "golang.org/x/tools/internal/gopathwalk" + "golang.org/x/tools/internal/stdlib" ) -// ModuleResolver implements resolver for modules using the go command as little -// as feasible. +// Notes(rfindley): ModuleResolver appears to be heavily optimized for scanning +// as fast as possible, which is desirable for a call to goimports from the +// command line, but it doesn't work as well for gopls, where it suffers from +// slow startup (golang/go#44863) and intermittent hanging (golang/go#59216), +// both caused by populating the cache, albeit in slightly different ways. +// +// A high level list of TODOs: +// - Optimize the scan itself, as there is some redundancy statting and +// reading go.mod files. +// - Invert the relationship between ProcessEnv and Resolver (see the +// docstring of ProcessEnv). +// - Make it easier to use an external resolver implementation. +// +// Smaller TODOs are annotated in the code below. + +// ModuleResolver implements the Resolver interface for a workspace using +// modules. +// +// A goal of the ModuleResolver is to invoke the Go command as little as +// possible. To this end, it runs the Go command only for listing module +// information (i.e. `go list -m -e -json ...`). Package scanning, the process +// of loading package information for the modules, is implemented internally +// via the scan method. +// +// It has two types of state: the state derived from the go command, which +// is populated by init, and the state derived from scans, which is populated +// via scan. A root is considered scanned if it has been walked to discover +// directories. However, if the scan did not require additional information +// from the directory (such as package name or exports), the directory +// information itself may be partially populated. It will be lazily filled in +// as needed by scans, using the scanCallback. type ModuleResolver struct { - env *ProcessEnv - moduleCacheDir string - dummyVendorMod *gocommand.ModuleJSON // If vendoring is enabled, the pseudo-module that represents the /vendor directory. - roots []gopathwalk.Root - scanSema chan struct{} // scanSema prevents concurrent scans and guards scannedRoots. - scannedRoots map[gopathwalk.Root]bool - - initialized bool - mains []*gocommand.ModuleJSON - mainByDir map[string]*gocommand.ModuleJSON - modsByModPath []*gocommand.ModuleJSON // All modules, ordered by # of path components in module Path... - modsByDir []*gocommand.ModuleJSON // ...or number of path components in their Dir. - - // moduleCacheCache stores information about the module cache. - moduleCacheCache *dirInfoCache - otherCache *dirInfoCache + env *ProcessEnv + + // Module state, populated during construction + dummyVendorMod *gocommand.ModuleJSON // if vendoring is enabled, a pseudo-module to represent the /vendor directory + moduleCacheDir string // GOMODCACHE, inferred from GOPATH if unset + roots []gopathwalk.Root // roots to scan, in approximate order of importance + mains []*gocommand.ModuleJSON // main modules + mainByDir map[string]*gocommand.ModuleJSON // module information by dir, to join with roots + modsByModPath []*gocommand.ModuleJSON // all modules, ordered by # of path components in their module path + modsByDir []*gocommand.ModuleJSON // ...or by the number of path components in their Dir. + + // Scanning state, populated by scan + + // scanSema prevents concurrent scans, and guards scannedRoots and the cache + // fields below (though the caches themselves are concurrency safe). + // Receive to acquire, send to release. + scanSema chan struct{} + scannedRoots map[gopathwalk.Root]bool // if true, root has been walked + + // Caches of directory info, populated by scans and scan callbacks + // + // moduleCacheCache stores cached information about roots in the module + // cache, which are immutable and therefore do not need to be invalidated. + // + // otherCache stores information about all other roots (even GOROOT), which + // may change. + moduleCacheCache *DirInfoCache + otherCache *DirInfoCache } -func newModuleResolver(e *ProcessEnv) *ModuleResolver { +// newModuleResolver returns a new module-aware goimports resolver. +// +// Note: use caution when modifying this constructor: changes must also be +// reflected in ModuleResolver.ClearForNewScan. +func newModuleResolver(e *ProcessEnv, moduleCacheCache *DirInfoCache) (*ModuleResolver, error) { r := &ModuleResolver{ env: e, scanSema: make(chan struct{}, 1), } - r.scanSema <- struct{}{} - return r -} - -func (r *ModuleResolver) init() error { - if r.initialized { - return nil - } + r.scanSema <- struct{}{} // release goenv, err := r.env.goEnv() if err != nil { - return err + return nil, err } + + // TODO(rfindley): can we refactor to share logic with r.env.invokeGo? inv := gocommand.Invocation{ BuildFlags: r.env.BuildFlags, ModFlag: r.env.ModFlag, - ModFile: r.env.ModFile, Env: r.env.env(), Logf: r.env.Logf, WorkingDir: r.env.WorkingDir, @@ -77,9 +117,12 @@ func (r *ModuleResolver) init() error { // Module vendor directories are ignored in workspace mode: // https://go.googlesource.com/proposal/+/master/design/45713-workspace.md if len(r.env.Env["GOWORK"]) == 0 { + // TODO(rfindley): VendorEnabled runs the go command to get GOFLAGS, but + // they should be available from the ProcessEnv. Can we avoid the redundant + // invocation? vendorEnabled, mainModVendor, err = gocommand.VendorEnabled(context.TODO(), inv, r.env.GocmdRunner) if err != nil { - return err + return nil, err } } @@ -100,19 +143,14 @@ func (r *ModuleResolver) init() error { // GO111MODULE=on. Other errors are fatal. if err != nil { if errMsg := err.Error(); !strings.Contains(errMsg, "working directory is not part of a module") && !strings.Contains(errMsg, "go.mod file not found") { - return err + return nil, err } } } - if gmc := r.env.Env["GOMODCACHE"]; gmc != "" { - r.moduleCacheDir = gmc - } else { - gopaths := filepath.SplitList(goenv["GOPATH"]) - if len(gopaths) == 0 { - return fmt.Errorf("empty GOPATH") - } - r.moduleCacheDir = filepath.Join(gopaths[0], "/pkg/mod") + r.moduleCacheDir = gomodcacheForEnv(goenv) + if r.moduleCacheDir == "" { + return nil, fmt.Errorf("cannot resolve GOMODCACHE") } sort.Slice(r.modsByModPath, func(i, j int) bool { @@ -141,7 +179,11 @@ func (r *ModuleResolver) init() error { } else { addDep := func(mod *gocommand.ModuleJSON) { if mod.Replace == nil { - // This is redundant with the cache, but we'll skip it cheaply enough. + // This is redundant with the cache, but we'll skip it cheaply enough + // when we encounter it in the module cache scan. + // + // Including it at a lower index in r.roots than the module cache dir + // helps prioritize matches from within existing dependencies. r.roots = append(r.roots, gopathwalk.Root{Path: mod.Dir, Type: gopathwalk.RootModuleCache}) } else { r.roots = append(r.roots, gopathwalk.Root{Path: mod.Dir, Type: gopathwalk.RootOther}) @@ -158,24 +200,40 @@ func (r *ModuleResolver) init() error { addDep(mod) } } + // If provided, share the moduleCacheCache. + // + // TODO(rfindley): The module cache is immutable. However, the loaded + // exports do depend on GOOS and GOARCH. Fortunately, the + // ProcessEnv.buildContext does not adjust these from build.DefaultContext + // (even though it should). So for now, this is OK to share, but we need to + // add logic for handling GOOS/GOARCH. + r.moduleCacheCache = moduleCacheCache r.roots = append(r.roots, gopathwalk.Root{Path: r.moduleCacheDir, Type: gopathwalk.RootModuleCache}) } r.scannedRoots = map[gopathwalk.Root]bool{} if r.moduleCacheCache == nil { - r.moduleCacheCache = &dirInfoCache{ - dirs: map[string]*directoryPackageInfo{}, - listeners: map[*int]cacheListener{}, - } + r.moduleCacheCache = NewDirInfoCache() } - if r.otherCache == nil { - r.otherCache = &dirInfoCache{ - dirs: map[string]*directoryPackageInfo{}, - listeners: map[*int]cacheListener{}, - } - } - r.initialized = true - return nil + r.otherCache = NewDirInfoCache() + return r, nil +} + +// gomodcacheForEnv returns the GOMODCACHE value to use based on the given env +// map, which must have GOMODCACHE and GOPATH populated. +// +// TODO(rfindley): this is defensive refactoring. +// 1. Is this even relevant anymore? Can't we just read GOMODCACHE. +// 2. Use this to separate module cache scanning from other scanning. +func gomodcacheForEnv(goenv map[string]string) string { + if gmc := goenv["GOMODCACHE"]; gmc != "" { + return gmc + } + gopaths := filepath.SplitList(goenv["GOPATH"]) + if len(gopaths) == 0 { + return "" + } + return filepath.Join(gopaths[0], "/pkg/mod") } func (r *ModuleResolver) initAllMods() error { @@ -206,30 +264,86 @@ func (r *ModuleResolver) initAllMods() error { return nil } -func (r *ModuleResolver) ClearForNewScan() { - <-r.scanSema - r.scannedRoots = map[gopathwalk.Root]bool{} - r.otherCache = &dirInfoCache{ - dirs: map[string]*directoryPackageInfo{}, - listeners: map[*int]cacheListener{}, +// ClearForNewScan invalidates the last scan. +// +// It preserves the set of roots, but forgets about the set of directories. +// Though it forgets the set of module cache directories, it remembers their +// contents, since they are assumed to be immutable. +func (r *ModuleResolver) ClearForNewScan() Resolver { + <-r.scanSema // acquire r, to guard scannedRoots + r2 := &ModuleResolver{ + env: r.env, + dummyVendorMod: r.dummyVendorMod, + moduleCacheDir: r.moduleCacheDir, + roots: r.roots, + mains: r.mains, + mainByDir: r.mainByDir, + modsByModPath: r.modsByModPath, + + scanSema: make(chan struct{}, 1), + scannedRoots: make(map[gopathwalk.Root]bool), + otherCache: NewDirInfoCache(), + moduleCacheCache: r.moduleCacheCache, } - r.scanSema <- struct{}{} + r2.scanSema <- struct{}{} // r2 must start released + // Invalidate root scans. We don't need to invalidate module cache roots, + // because they are immutable. + // (We don't support a use case where GOMODCACHE is cleaned in the middle of + // e.g. a gopls session: the user must restart gopls to get accurate + // imports.) + // + // Scanning for new directories in GOMODCACHE should be handled elsewhere, + // via a call to ScanModuleCache. + for _, root := range r.roots { + if root.Type == gopathwalk.RootModuleCache && r.scannedRoots[root] { + r2.scannedRoots[root] = true + } + } + r.scanSema <- struct{}{} // release r + return r2 } -func (r *ModuleResolver) ClearForNewMod() { - <-r.scanSema - *r = ModuleResolver{ - env: r.env, - moduleCacheCache: r.moduleCacheCache, - otherCache: r.otherCache, - scanSema: r.scanSema, +// ClearModuleInfo invalidates resolver state that depends on go.mod file +// contents (essentially, the output of go list -m -json ...). +// +// Notably, it does not forget directory contents, which are reset +// asynchronously via ClearForNewScan. +// +// If the ProcessEnv is a GOPATH environment, ClearModuleInfo is a no op. +// +// TODO(rfindley): move this to a new env.go, consolidating ProcessEnv methods. +func (e *ProcessEnv) ClearModuleInfo() { + if r, ok := e.resolver.(*ModuleResolver); ok { + resolver, err := newModuleResolver(e, e.ModCache) + if err != nil { + e.resolver = nil + e.resolverErr = err + return + } + + <-r.scanSema // acquire (guards caches) + resolver.moduleCacheCache = r.moduleCacheCache + resolver.otherCache = r.otherCache + r.scanSema <- struct{}{} // release + + e.UpdateResolver(resolver) } - r.init() - r.scanSema <- struct{}{} } -// findPackage returns the module and directory that contains the package at -// the given import path, or returns nil, "" if no module is in scope. +// UpdateResolver sets the resolver for the ProcessEnv to use in imports +// operations. Only for use with the result of [Resolver.ClearForNewScan]. +// +// TODO(rfindley): this awkward API is a result of the (arguably) inverted +// relationship between configuration and state described in the doc comment +// for [ProcessEnv]. +func (e *ProcessEnv) UpdateResolver(r Resolver) { + e.resolver = r + e.resolverErr = nil +} + +// findPackage returns the module and directory from within the main modules +// and their dependencies that contains the package at the given import path, +// or returns nil, "" if no module is in scope. func (r *ModuleResolver) findPackage(importPath string) (*gocommand.ModuleJSON, string) { // This can't find packages in the stdlib, but that's harmless for all // the existing code paths. @@ -295,10 +409,6 @@ func (r *ModuleResolver) cacheStore(info directoryPackageInfo) { } } -func (r *ModuleResolver) cacheKeys() []string { - return append(r.moduleCacheCache.Keys(), r.otherCache.Keys()...) -} - // cachePackageName caches the package name for a dir already in the cache. func (r *ModuleResolver) cachePackageName(info directoryPackageInfo) (string, error) { if info.rootType == gopathwalk.RootModuleCache { @@ -307,7 +417,7 @@ func (r *ModuleResolver) cachePackageName(info directoryPackageInfo) (string, er return r.otherCache.CachePackageName(info) } -func (r *ModuleResolver) cacheExports(ctx context.Context, env *ProcessEnv, info directoryPackageInfo) (string, []string, error) { +func (r *ModuleResolver) cacheExports(ctx context.Context, env *ProcessEnv, info directoryPackageInfo) (string, []stdlib.Symbol, error) { if info.rootType == gopathwalk.RootModuleCache { return r.moduleCacheCache.CacheExports(ctx, env, info) } @@ -367,15 +477,15 @@ func (r *ModuleResolver) dirIsNestedModule(dir string, mod *gocommand.ModuleJSON return modDir != mod.Dir } -func (r *ModuleResolver) modInfo(dir string) (modDir string, modName string) { - readModName := func(modFile string) string { - modBytes, err := os.ReadFile(modFile) - if err != nil { - return "" - } - return modulePath(modBytes) +func readModName(modFile string) string { + modBytes, err := os.ReadFile(modFile) + if err != nil { + return "" } + return modulePath(modBytes) +} +func (r *ModuleResolver) modInfo(dir string) (modDir, modName string) { if r.dirInModuleCache(dir) { if matches := modCacheRegexp.FindStringSubmatch(dir); len(matches) == 3 { index := strings.Index(dir, matches[1]+"@"+matches[2]) @@ -409,11 +519,9 @@ func (r *ModuleResolver) dirInModuleCache(dir string) bool { } func (r *ModuleResolver) loadPackageNames(importPaths []string, srcDir string) (map[string]string, error) { - if err := r.init(); err != nil { - return nil, err - } names := map[string]string{} for _, path := range importPaths { + // TODO(rfindley): shouldn't this use the dirInfoCache? _, packageDir := r.findPackage(path) if packageDir == "" { continue @@ -431,10 +539,6 @@ func (r *ModuleResolver) scan(ctx context.Context, callback *scanCallback) error ctx, done := event.Start(ctx, "imports.ModuleResolver.scan") defer done() - if err := r.init(); err != nil { - return err - } - processDir := func(info directoryPackageInfo) { // Skip this directory if we were not able to get the package information successfully. if scanned, err := info.reachedStatus(directoryScanned); !scanned || err != nil { @@ -444,18 +548,18 @@ func (r *ModuleResolver) scan(ctx context.Context, callback *scanCallback) error if err != nil { return } - if !callback.dirFound(pkg) { return } + pkg.packageName, err = r.cachePackageName(info) if err != nil { return } - if !callback.packageNameLoaded(pkg) { return } + _, exports, err := r.loadExports(ctx, pkg, false) if err != nil { return @@ -494,7 +598,6 @@ func (r *ModuleResolver) scan(ctx context.Context, callback *scanCallback) error return packageScanned } - // Add anything new to the cache, and process it if we're still listening. add := func(root gopathwalk.Root, dir string) { r.cacheStore(r.scanDirForPackage(root, dir)) } @@ -509,9 +612,9 @@ func (r *ModuleResolver) scan(ctx context.Context, callback *scanCallback) error select { case <-ctx.Done(): return - case <-r.scanSema: + case <-r.scanSema: // acquire } - defer func() { r.scanSema <- struct{}{} }() + defer func() { r.scanSema <- struct{}{} }() // release // We have the lock on r.scannedRoots, and no other scans can run. for _, root := range roots { if ctx.Err() != nil { @@ -534,7 +637,7 @@ func (r *ModuleResolver) scan(ctx context.Context, callback *scanCallback) error } func (r *ModuleResolver) scoreImportPath(ctx context.Context, path string) float64 { - if _, ok := stdlib[path]; ok { + if stdlib.HasPackage(path) { return MaxRelevance } mod, _ := r.findPackage(path) @@ -612,10 +715,7 @@ func (r *ModuleResolver) canonicalize(info directoryPackageInfo) (*pkg, error) { return res, nil } -func (r *ModuleResolver) loadExports(ctx context.Context, pkg *pkg, includeTest bool) (string, []string, error) { - if err := r.init(); err != nil { - return "", nil, err - } +func (r *ModuleResolver) loadExports(ctx context.Context, pkg *pkg, includeTest bool) (string, []stdlib.Symbol, error) { if info, ok := r.cacheLoad(pkg.dir); ok && !includeTest { return r.cacheExports(ctx, r.env, info) } diff --git a/vendor/golang.org/x/tools/internal/imports/mod_cache.go b/vendor/golang.org/x/tools/internal/imports/mod_cache.go index 45690abbb..b1192696b 100644 --- a/vendor/golang.org/x/tools/internal/imports/mod_cache.go +++ b/vendor/golang.org/x/tools/internal/imports/mod_cache.go @@ -7,9 +7,14 @@ package imports import ( "context" "fmt" + "path" + "path/filepath" + "strings" "sync" + "golang.org/x/mod/module" "golang.org/x/tools/internal/gopathwalk" + "golang.org/x/tools/internal/stdlib" ) // To find packages to import, the resolver needs to know about all of @@ -39,6 +44,8 @@ const ( exportsLoaded ) +// directoryPackageInfo holds (possibly incomplete) information about packages +// contained in a given directory. type directoryPackageInfo struct { // status indicates the extent to which this struct has been filled in. status directoryPackageStatus @@ -63,8 +70,11 @@ type directoryPackageInfo struct { packageName string // the package name, as declared in the source. // Set when status >= exportsLoaded. - - exports []string + // TODO(rfindley): it's hard to see this, but exports depend implicitly on + // the default build context GOOS and GOARCH. + // + // We can make this explicit, and key exports by GOOS, GOARCH. + exports []stdlib.Symbol } // reachedStatus returns true when info has a status at least target and any error associated with @@ -79,7 +89,7 @@ func (info *directoryPackageInfo) reachedStatus(target directoryPackageStatus) ( return true, nil } -// dirInfoCache is a concurrency safe map for storing information about +// DirInfoCache is a concurrency-safe map for storing information about // directories that may contain packages. // // The information in this cache is built incrementally. Entries are initialized in scan. @@ -92,21 +102,26 @@ func (info *directoryPackageInfo) reachedStatus(target directoryPackageStatus) ( // The information in the cache is not expected to change for the cache's // lifetime, so there is no protection against competing writes. Users should // take care not to hold the cache across changes to the underlying files. -// -// TODO(suzmue): consider other concurrency strategies and data structures (RWLocks, sync.Map, etc) -type dirInfoCache struct { +type DirInfoCache struct { mu sync.Mutex // dirs stores information about packages in directories, keyed by absolute path. dirs map[string]*directoryPackageInfo listeners map[*int]cacheListener } +func NewDirInfoCache() *DirInfoCache { + return &DirInfoCache{ + dirs: make(map[string]*directoryPackageInfo), + listeners: make(map[*int]cacheListener), + } +} + type cacheListener func(directoryPackageInfo) // ScanAndListen calls listener on all the items in the cache, and on anything // newly added. The returned stop function waits for all in-flight callbacks to // finish and blocks new ones. -func (d *dirInfoCache) ScanAndListen(ctx context.Context, listener cacheListener) func() { +func (d *DirInfoCache) ScanAndListen(ctx context.Context, listener cacheListener) func() { ctx, cancel := context.WithCancel(ctx) // Flushing out all the callbacks is tricky without knowing how many there @@ -162,8 +177,10 @@ func (d *dirInfoCache) ScanAndListen(ctx context.Context, listener cacheListener } // Store stores the package info for dir. -func (d *dirInfoCache) Store(dir string, info directoryPackageInfo) { +func (d *DirInfoCache) Store(dir string, info directoryPackageInfo) { d.mu.Lock() + // TODO(rfindley, golang/go#59216): should we overwrite an existing entry? + // That seems incorrect as the cache should be idempotent. _, old := d.dirs[dir] d.dirs[dir] = &info var listeners []cacheListener @@ -180,7 +197,7 @@ func (d *dirInfoCache) Store(dir string, info directoryPackageInfo) { } // Load returns a copy of the directoryPackageInfo for absolute directory dir. -func (d *dirInfoCache) Load(dir string) (directoryPackageInfo, bool) { +func (d *DirInfoCache) Load(dir string) (directoryPackageInfo, bool) { d.mu.Lock() defer d.mu.Unlock() info, ok := d.dirs[dir] @@ -191,7 +208,7 @@ func (d *dirInfoCache) Load(dir string) (directoryPackageInfo, bool) { } // Keys returns the keys currently present in d. -func (d *dirInfoCache) Keys() (keys []string) { +func (d *DirInfoCache) Keys() (keys []string) { d.mu.Lock() defer d.mu.Unlock() for key := range d.dirs { @@ -200,7 +217,7 @@ func (d *dirInfoCache) Keys() (keys []string) { return keys } -func (d *dirInfoCache) CachePackageName(info directoryPackageInfo) (string, error) { +func (d *DirInfoCache) CachePackageName(info directoryPackageInfo) (string, error) { if loaded, err := info.reachedStatus(nameLoaded); loaded { return info.packageName, err } @@ -213,7 +230,7 @@ func (d *dirInfoCache) CachePackageName(info directoryPackageInfo) (string, erro return info.packageName, info.err } -func (d *dirInfoCache) CacheExports(ctx context.Context, env *ProcessEnv, info directoryPackageInfo) (string, []string, error) { +func (d *DirInfoCache) CacheExports(ctx context.Context, env *ProcessEnv, info directoryPackageInfo) (string, []stdlib.Symbol, error) { if reached, _ := info.reachedStatus(exportsLoaded); reached { return info.packageName, info.exports, info.err } @@ -234,3 +251,81 @@ func (d *dirInfoCache) CacheExports(ctx context.Context, env *ProcessEnv, info d d.Store(info.dir, info) return info.packageName, info.exports, info.err } + +// ScanModuleCache walks the given directory, which must be a GOMODCACHE value, +// for directory package information, storing the results in cache. +func ScanModuleCache(dir string, cache *DirInfoCache, logf func(string, ...any)) { + // Note(rfindley): it's hard to see, but this function attempts to implement + // just the side effects on cache of calling PrimeCache with a ProcessEnv + // that has the given dir as its GOMODCACHE. + // + // Teasing out the control flow, we see that we can avoid any handling of + // vendor/ and can infer module info entirely from the path, simplifying the + // logic here. + + root := gopathwalk.Root{ + Path: filepath.Clean(dir), + Type: gopathwalk.RootModuleCache, + } + + directoryInfo := func(root gopathwalk.Root, dir string) directoryPackageInfo { + // This is a copy of ModuleResolver.scanDirForPackage, trimmed down to + // logic that applies to a module cache directory. + + subdir := "" + if dir != root.Path { + subdir = dir[len(root.Path)+len("/"):] + } + + matches := modCacheRegexp.FindStringSubmatch(subdir) + if len(matches) == 0 { + return directoryPackageInfo{ + status: directoryScanned, + err: fmt.Errorf("invalid module cache path: %v", subdir), + } + } + modPath, err := module.UnescapePath(filepath.ToSlash(matches[1])) + if err != nil { + if logf != nil { + logf("decoding module cache path %q: %v", subdir, err) + } + return directoryPackageInfo{ + status: directoryScanned, + err: fmt.Errorf("decoding module cache path %q: %v", subdir, err), + } + } + importPath := path.Join(modPath, filepath.ToSlash(matches[3])) + index := strings.Index(dir, matches[1]+"@"+matches[2]) + modDir := filepath.Join(dir[:index], matches[1]+"@"+matches[2]) + modName := readModName(filepath.Join(modDir, "go.mod")) + return directoryPackageInfo{ + status: directoryScanned, + dir: dir, + rootType: root.Type, + nonCanonicalImportPath: importPath, + moduleDir: modDir, + moduleName: modName, + } + } + + add := func(root gopathwalk.Root, dir string) { + info := directoryInfo(root, dir) + cache.Store(info.dir, info) + } + + skip := func(_ gopathwalk.Root, dir string) bool { + // Skip directories that have already been scanned. + // + // Note that gopathwalk only adds "package" directories, which must contain + // a .go file, and all such package directories in the module cache are + // immutable. So if we can load a dir, it can be skipped. + info, ok := cache.Load(dir) + if !ok { + return false + } + packageScanned, _ := info.reachedStatus(directoryScanned) + return packageScanned + } + + gopathwalk.WalkSkip([]gopathwalk.Root{root}, add, skip, gopathwalk.Options{Logf: logf, ModulesEnabled: true}) +} diff --git a/vendor/golang.org/x/tools/internal/imports/sortimports.go b/vendor/golang.org/x/tools/internal/imports/sortimports.go index 1a0a7ebd9..da8194fd9 100644 --- a/vendor/golang.org/x/tools/internal/imports/sortimports.go +++ b/vendor/golang.org/x/tools/internal/imports/sortimports.go @@ -18,7 +18,7 @@ import ( // sortImports sorts runs of consecutive import lines in import blocks in f. // It also removes duplicate imports when it is possible to do so without data loss. // -// It may mutate the token.File. +// It may mutate the token.File and the ast.File. func sortImports(localPrefix string, tokFile *token.File, f *ast.File) { for i, d := range f.Decls { d, ok := d.(*ast.GenDecl) diff --git a/vendor/golang.org/x/tools/internal/imports/zstdlib.go b/vendor/golang.org/x/tools/internal/imports/zstdlib.go deleted file mode 100644 index 9f992c2be..000000000 --- a/vendor/golang.org/x/tools/internal/imports/zstdlib.go +++ /dev/null @@ -1,11345 +0,0 @@ -// Copyright 2022 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Code generated by mkstdlib.go. DO NOT EDIT. - -package imports - -var stdlib = map[string][]string{ - "archive/tar": { - "ErrFieldTooLong", - "ErrHeader", - "ErrInsecurePath", - "ErrWriteAfterClose", - "ErrWriteTooLong", - "FileInfoHeader", - "Format", - "FormatGNU", - "FormatPAX", - "FormatUSTAR", - "FormatUnknown", - "Header", - "NewReader", - "NewWriter", - "Reader", - "TypeBlock", - "TypeChar", - "TypeCont", - "TypeDir", - "TypeFifo", - "TypeGNULongLink", - "TypeGNULongName", - "TypeGNUSparse", - "TypeLink", - "TypeReg", - "TypeRegA", - "TypeSymlink", - "TypeXGlobalHeader", - "TypeXHeader", - "Writer", - }, - "archive/zip": { - "Compressor", - "Decompressor", - "Deflate", - "ErrAlgorithm", - "ErrChecksum", - "ErrFormat", - "ErrInsecurePath", - "File", - "FileHeader", - "FileInfoHeader", - "NewReader", - "NewWriter", - "OpenReader", - "ReadCloser", - "Reader", - "RegisterCompressor", - "RegisterDecompressor", - "Store", - "Writer", - }, - "bufio": { - "ErrAdvanceTooFar", - "ErrBadReadCount", - "ErrBufferFull", - "ErrFinalToken", - "ErrInvalidUnreadByte", - "ErrInvalidUnreadRune", - "ErrNegativeAdvance", - "ErrNegativeCount", - "ErrTooLong", - "MaxScanTokenSize", - "NewReadWriter", - "NewReader", - "NewReaderSize", - "NewScanner", - "NewWriter", - "NewWriterSize", - "ReadWriter", - "Reader", - "ScanBytes", - "ScanLines", - "ScanRunes", - "ScanWords", - "Scanner", - "SplitFunc", - "Writer", - }, - "bytes": { - "Buffer", - "Clone", - "Compare", - "Contains", - "ContainsAny", - "ContainsFunc", - "ContainsRune", - "Count", - "Cut", - "CutPrefix", - "CutSuffix", - "Equal", - "EqualFold", - "ErrTooLarge", - "Fields", - "FieldsFunc", - "HasPrefix", - "HasSuffix", - "Index", - "IndexAny", - "IndexByte", - "IndexFunc", - "IndexRune", - "Join", - "LastIndex", - "LastIndexAny", - "LastIndexByte", - "LastIndexFunc", - "Map", - "MinRead", - "NewBuffer", - "NewBufferString", - "NewReader", - "Reader", - "Repeat", - "Replace", - "ReplaceAll", - "Runes", - "Split", - "SplitAfter", - "SplitAfterN", - "SplitN", - "Title", - "ToLower", - "ToLowerSpecial", - "ToTitle", - "ToTitleSpecial", - "ToUpper", - "ToUpperSpecial", - "ToValidUTF8", - "Trim", - "TrimFunc", - "TrimLeft", - "TrimLeftFunc", - "TrimPrefix", - "TrimRight", - "TrimRightFunc", - "TrimSpace", - "TrimSuffix", - }, - "cmp": { - "Compare", - "Less", - "Ordered", - }, - "compress/bzip2": { - "NewReader", - "StructuralError", - }, - "compress/flate": { - "BestCompression", - "BestSpeed", - "CorruptInputError", - "DefaultCompression", - "HuffmanOnly", - "InternalError", - "NewReader", - "NewReaderDict", - "NewWriter", - "NewWriterDict", - "NoCompression", - "ReadError", - "Reader", - "Resetter", - "WriteError", - "Writer", - }, - "compress/gzip": { - "BestCompression", - "BestSpeed", - "DefaultCompression", - "ErrChecksum", - "ErrHeader", - "Header", - "HuffmanOnly", - "NewReader", - "NewWriter", - "NewWriterLevel", - "NoCompression", - "Reader", - "Writer", - }, - "compress/lzw": { - "LSB", - "MSB", - "NewReader", - "NewWriter", - "Order", - "Reader", - "Writer", - }, - "compress/zlib": { - "BestCompression", - "BestSpeed", - "DefaultCompression", - "ErrChecksum", - "ErrDictionary", - "ErrHeader", - "HuffmanOnly", - "NewReader", - "NewReaderDict", - "NewWriter", - "NewWriterLevel", - "NewWriterLevelDict", - "NoCompression", - "Resetter", - "Writer", - }, - "container/heap": { - "Fix", - "Init", - "Interface", - "Pop", - "Push", - "Remove", - }, - "container/list": { - "Element", - "List", - "New", - }, - "container/ring": { - "New", - "Ring", - }, - "context": { - "AfterFunc", - "Background", - "CancelCauseFunc", - "CancelFunc", - "Canceled", - "Cause", - "Context", - "DeadlineExceeded", - "TODO", - "WithCancel", - "WithCancelCause", - "WithDeadline", - "WithDeadlineCause", - "WithTimeout", - "WithTimeoutCause", - "WithValue", - "WithoutCancel", - }, - "crypto": { - "BLAKE2b_256", - "BLAKE2b_384", - "BLAKE2b_512", - "BLAKE2s_256", - "Decrypter", - "DecrypterOpts", - "Hash", - "MD4", - "MD5", - "MD5SHA1", - "PrivateKey", - "PublicKey", - "RIPEMD160", - "RegisterHash", - "SHA1", - "SHA224", - "SHA256", - "SHA384", - "SHA3_224", - "SHA3_256", - "SHA3_384", - "SHA3_512", - "SHA512", - "SHA512_224", - "SHA512_256", - "Signer", - "SignerOpts", - }, - "crypto/aes": { - "BlockSize", - "KeySizeError", - "NewCipher", - }, - "crypto/cipher": { - "AEAD", - "Block", - "BlockMode", - "NewCBCDecrypter", - "NewCBCEncrypter", - "NewCFBDecrypter", - "NewCFBEncrypter", - "NewCTR", - "NewGCM", - "NewGCMWithNonceSize", - "NewGCMWithTagSize", - "NewOFB", - "Stream", - "StreamReader", - "StreamWriter", - }, - "crypto/des": { - "BlockSize", - "KeySizeError", - "NewCipher", - "NewTripleDESCipher", - }, - "crypto/dsa": { - "ErrInvalidPublicKey", - "GenerateKey", - "GenerateParameters", - "L1024N160", - "L2048N224", - "L2048N256", - "L3072N256", - "ParameterSizes", - "Parameters", - "PrivateKey", - "PublicKey", - "Sign", - "Verify", - }, - "crypto/ecdh": { - "Curve", - "P256", - "P384", - "P521", - "PrivateKey", - "PublicKey", - "X25519", - }, - "crypto/ecdsa": { - "GenerateKey", - "PrivateKey", - "PublicKey", - "Sign", - "SignASN1", - "Verify", - "VerifyASN1", - }, - "crypto/ed25519": { - "GenerateKey", - "NewKeyFromSeed", - "Options", - "PrivateKey", - "PrivateKeySize", - "PublicKey", - "PublicKeySize", - "SeedSize", - "Sign", - "SignatureSize", - "Verify", - "VerifyWithOptions", - }, - "crypto/elliptic": { - "Curve", - "CurveParams", - "GenerateKey", - "Marshal", - "MarshalCompressed", - "P224", - "P256", - "P384", - "P521", - "Unmarshal", - "UnmarshalCompressed", - }, - "crypto/hmac": { - "Equal", - "New", - }, - "crypto/md5": { - "BlockSize", - "New", - "Size", - "Sum", - }, - "crypto/rand": { - "Int", - "Prime", - "Read", - "Reader", - }, - "crypto/rc4": { - "Cipher", - "KeySizeError", - "NewCipher", - }, - "crypto/rsa": { - "CRTValue", - "DecryptOAEP", - "DecryptPKCS1v15", - "DecryptPKCS1v15SessionKey", - "EncryptOAEP", - "EncryptPKCS1v15", - "ErrDecryption", - "ErrMessageTooLong", - "ErrVerification", - "GenerateKey", - "GenerateMultiPrimeKey", - "OAEPOptions", - "PKCS1v15DecryptOptions", - "PSSOptions", - "PSSSaltLengthAuto", - "PSSSaltLengthEqualsHash", - "PrecomputedValues", - "PrivateKey", - "PublicKey", - "SignPKCS1v15", - "SignPSS", - "VerifyPKCS1v15", - "VerifyPSS", - }, - "crypto/sha1": { - "BlockSize", - "New", - "Size", - "Sum", - }, - "crypto/sha256": { - "BlockSize", - "New", - "New224", - "Size", - "Size224", - "Sum224", - "Sum256", - }, - "crypto/sha512": { - "BlockSize", - "New", - "New384", - "New512_224", - "New512_256", - "Size", - "Size224", - "Size256", - "Size384", - "Sum384", - "Sum512", - "Sum512_224", - "Sum512_256", - }, - "crypto/subtle": { - "ConstantTimeByteEq", - "ConstantTimeCompare", - "ConstantTimeCopy", - "ConstantTimeEq", - "ConstantTimeLessOrEq", - "ConstantTimeSelect", - "XORBytes", - }, - "crypto/tls": { - "AlertError", - "Certificate", - "CertificateRequestInfo", - "CertificateVerificationError", - "CipherSuite", - "CipherSuiteName", - "CipherSuites", - "Client", - "ClientAuthType", - "ClientHelloInfo", - "ClientSessionCache", - "ClientSessionState", - "Config", - "Conn", - "ConnectionState", - "CurveID", - "CurveP256", - "CurveP384", - "CurveP521", - "Dial", - "DialWithDialer", - "Dialer", - "ECDSAWithP256AndSHA256", - "ECDSAWithP384AndSHA384", - "ECDSAWithP521AndSHA512", - "ECDSAWithSHA1", - "Ed25519", - "InsecureCipherSuites", - "Listen", - "LoadX509KeyPair", - "NewLRUClientSessionCache", - "NewListener", - "NewResumptionState", - "NoClientCert", - "PKCS1WithSHA1", - "PKCS1WithSHA256", - "PKCS1WithSHA384", - "PKCS1WithSHA512", - "PSSWithSHA256", - "PSSWithSHA384", - "PSSWithSHA512", - "ParseSessionState", - "QUICClient", - "QUICConfig", - "QUICConn", - "QUICEncryptionLevel", - "QUICEncryptionLevelApplication", - "QUICEncryptionLevelEarly", - "QUICEncryptionLevelHandshake", - "QUICEncryptionLevelInitial", - "QUICEvent", - "QUICEventKind", - "QUICHandshakeDone", - "QUICNoEvent", - "QUICRejectedEarlyData", - "QUICServer", - "QUICSessionTicketOptions", - "QUICSetReadSecret", - "QUICSetWriteSecret", - "QUICTransportParameters", - "QUICTransportParametersRequired", - "QUICWriteData", - "RecordHeaderError", - "RenegotiateFreelyAsClient", - "RenegotiateNever", - "RenegotiateOnceAsClient", - "RenegotiationSupport", - "RequestClientCert", - "RequireAndVerifyClientCert", - "RequireAnyClientCert", - "Server", - "SessionState", - "SignatureScheme", - "TLS_AES_128_GCM_SHA256", - "TLS_AES_256_GCM_SHA384", - "TLS_CHACHA20_POLY1305_SHA256", - "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA", - "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256", - "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256", - "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA", - "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384", - "TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305", - "TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256", - "TLS_ECDHE_ECDSA_WITH_RC4_128_SHA", - "TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA", - "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA", - "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256", - "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256", - "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA", - "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384", - "TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305", - "TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256", - "TLS_ECDHE_RSA_WITH_RC4_128_SHA", - "TLS_FALLBACK_SCSV", - "TLS_RSA_WITH_3DES_EDE_CBC_SHA", - "TLS_RSA_WITH_AES_128_CBC_SHA", - "TLS_RSA_WITH_AES_128_CBC_SHA256", - "TLS_RSA_WITH_AES_128_GCM_SHA256", - "TLS_RSA_WITH_AES_256_CBC_SHA", - "TLS_RSA_WITH_AES_256_GCM_SHA384", - "TLS_RSA_WITH_RC4_128_SHA", - "VerifyClientCertIfGiven", - "VersionName", - "VersionSSL30", - "VersionTLS10", - "VersionTLS11", - "VersionTLS12", - "VersionTLS13", - "X25519", - "X509KeyPair", - }, - "crypto/x509": { - "CANotAuthorizedForExtKeyUsage", - "CANotAuthorizedForThisName", - "CertPool", - "Certificate", - "CertificateInvalidError", - "CertificateRequest", - "ConstraintViolationError", - "CreateCertificate", - "CreateCertificateRequest", - "CreateRevocationList", - "DSA", - "DSAWithSHA1", - "DSAWithSHA256", - "DecryptPEMBlock", - "ECDSA", - "ECDSAWithSHA1", - "ECDSAWithSHA256", - "ECDSAWithSHA384", - "ECDSAWithSHA512", - "Ed25519", - "EncryptPEMBlock", - "ErrUnsupportedAlgorithm", - "Expired", - "ExtKeyUsage", - "ExtKeyUsageAny", - "ExtKeyUsageClientAuth", - "ExtKeyUsageCodeSigning", - "ExtKeyUsageEmailProtection", - "ExtKeyUsageIPSECEndSystem", - "ExtKeyUsageIPSECTunnel", - "ExtKeyUsageIPSECUser", - "ExtKeyUsageMicrosoftCommercialCodeSigning", - "ExtKeyUsageMicrosoftKernelCodeSigning", - "ExtKeyUsageMicrosoftServerGatedCrypto", - "ExtKeyUsageNetscapeServerGatedCrypto", - "ExtKeyUsageOCSPSigning", - "ExtKeyUsageServerAuth", - "ExtKeyUsageTimeStamping", - "HostnameError", - "IncompatibleUsage", - "IncorrectPasswordError", - "InsecureAlgorithmError", - "InvalidReason", - "IsEncryptedPEMBlock", - "KeyUsage", - "KeyUsageCRLSign", - "KeyUsageCertSign", - "KeyUsageContentCommitment", - "KeyUsageDataEncipherment", - "KeyUsageDecipherOnly", - "KeyUsageDigitalSignature", - "KeyUsageEncipherOnly", - "KeyUsageKeyAgreement", - "KeyUsageKeyEncipherment", - "MD2WithRSA", - "MD5WithRSA", - "MarshalECPrivateKey", - "MarshalPKCS1PrivateKey", - "MarshalPKCS1PublicKey", - "MarshalPKCS8PrivateKey", - "MarshalPKIXPublicKey", - "NameConstraintsWithoutSANs", - "NameMismatch", - "NewCertPool", - "NotAuthorizedToSign", - "PEMCipher", - "PEMCipher3DES", - "PEMCipherAES128", - "PEMCipherAES192", - "PEMCipherAES256", - "PEMCipherDES", - "ParseCRL", - "ParseCertificate", - "ParseCertificateRequest", - "ParseCertificates", - "ParseDERCRL", - "ParseECPrivateKey", - "ParsePKCS1PrivateKey", - "ParsePKCS1PublicKey", - "ParsePKCS8PrivateKey", - "ParsePKIXPublicKey", - "ParseRevocationList", - "PublicKeyAlgorithm", - "PureEd25519", - "RSA", - "RevocationList", - "RevocationListEntry", - "SHA1WithRSA", - "SHA256WithRSA", - "SHA256WithRSAPSS", - "SHA384WithRSA", - "SHA384WithRSAPSS", - "SHA512WithRSA", - "SHA512WithRSAPSS", - "SetFallbackRoots", - "SignatureAlgorithm", - "SystemCertPool", - "SystemRootsError", - "TooManyConstraints", - "TooManyIntermediates", - "UnconstrainedName", - "UnhandledCriticalExtension", - "UnknownAuthorityError", - "UnknownPublicKeyAlgorithm", - "UnknownSignatureAlgorithm", - "VerifyOptions", - }, - "crypto/x509/pkix": { - "AlgorithmIdentifier", - "AttributeTypeAndValue", - "AttributeTypeAndValueSET", - "CertificateList", - "Extension", - "Name", - "RDNSequence", - "RelativeDistinguishedNameSET", - "RevokedCertificate", - "TBSCertificateList", - }, - "database/sql": { - "ColumnType", - "Conn", - "DB", - "DBStats", - "Drivers", - "ErrConnDone", - "ErrNoRows", - "ErrTxDone", - "IsolationLevel", - "LevelDefault", - "LevelLinearizable", - "LevelReadCommitted", - "LevelReadUncommitted", - "LevelRepeatableRead", - "LevelSerializable", - "LevelSnapshot", - "LevelWriteCommitted", - "Named", - "NamedArg", - "NullBool", - "NullByte", - "NullFloat64", - "NullInt16", - "NullInt32", - "NullInt64", - "NullString", - "NullTime", - "Open", - "OpenDB", - "Out", - "RawBytes", - "Register", - "Result", - "Row", - "Rows", - "Scanner", - "Stmt", - "Tx", - "TxOptions", - }, - "database/sql/driver": { - "Bool", - "ColumnConverter", - "Conn", - "ConnBeginTx", - "ConnPrepareContext", - "Connector", - "DefaultParameterConverter", - "Driver", - "DriverContext", - "ErrBadConn", - "ErrRemoveArgument", - "ErrSkip", - "Execer", - "ExecerContext", - "Int32", - "IsScanValue", - "IsValue", - "IsolationLevel", - "NamedValue", - "NamedValueChecker", - "NotNull", - "Null", - "Pinger", - "Queryer", - "QueryerContext", - "Result", - "ResultNoRows", - "Rows", - "RowsAffected", - "RowsColumnTypeDatabaseTypeName", - "RowsColumnTypeLength", - "RowsColumnTypeNullable", - "RowsColumnTypePrecisionScale", - "RowsColumnTypeScanType", - "RowsNextResultSet", - "SessionResetter", - "Stmt", - "StmtExecContext", - "StmtQueryContext", - "String", - "Tx", - "TxOptions", - "Validator", - "Value", - "ValueConverter", - "Valuer", - }, - "debug/buildinfo": { - "BuildInfo", - "Read", - "ReadFile", - }, - "debug/dwarf": { - "AddrType", - "ArrayType", - "Attr", - "AttrAbstractOrigin", - "AttrAccessibility", - "AttrAddrBase", - "AttrAddrClass", - "AttrAlignment", - "AttrAllocated", - "AttrArtificial", - "AttrAssociated", - "AttrBaseTypes", - "AttrBinaryScale", - "AttrBitOffset", - "AttrBitSize", - "AttrByteSize", - "AttrCallAllCalls", - "AttrCallAllSourceCalls", - "AttrCallAllTailCalls", - "AttrCallColumn", - "AttrCallDataLocation", - "AttrCallDataValue", - "AttrCallFile", - "AttrCallLine", - "AttrCallOrigin", - "AttrCallPC", - "AttrCallParameter", - "AttrCallReturnPC", - "AttrCallTailCall", - "AttrCallTarget", - "AttrCallTargetClobbered", - "AttrCallValue", - "AttrCalling", - "AttrCommonRef", - "AttrCompDir", - "AttrConstExpr", - "AttrConstValue", - "AttrContainingType", - "AttrCount", - "AttrDataBitOffset", - "AttrDataLocation", - "AttrDataMemberLoc", - "AttrDecimalScale", - "AttrDecimalSign", - "AttrDeclColumn", - "AttrDeclFile", - "AttrDeclLine", - "AttrDeclaration", - "AttrDefaultValue", - "AttrDefaulted", - "AttrDeleted", - "AttrDescription", - "AttrDigitCount", - "AttrDiscr", - "AttrDiscrList", - "AttrDiscrValue", - "AttrDwoName", - "AttrElemental", - "AttrEncoding", - "AttrEndianity", - "AttrEntrypc", - "AttrEnumClass", - "AttrExplicit", - "AttrExportSymbols", - "AttrExtension", - "AttrExternal", - "AttrFrameBase", - "AttrFriend", - "AttrHighpc", - "AttrIdentifierCase", - "AttrImport", - "AttrInline", - "AttrIsOptional", - "AttrLanguage", - "AttrLinkageName", - "AttrLocation", - "AttrLoclistsBase", - "AttrLowerBound", - "AttrLowpc", - "AttrMacroInfo", - "AttrMacros", - "AttrMainSubprogram", - "AttrMutable", - "AttrName", - "AttrNamelistItem", - "AttrNoreturn", - "AttrObjectPointer", - "AttrOrdering", - "AttrPictureString", - "AttrPriority", - "AttrProducer", - "AttrPrototyped", - "AttrPure", - "AttrRanges", - "AttrRank", - "AttrRecursive", - "AttrReference", - "AttrReturnAddr", - "AttrRnglistsBase", - "AttrRvalueReference", - "AttrSegment", - "AttrSibling", - "AttrSignature", - "AttrSmall", - "AttrSpecification", - "AttrStartScope", - "AttrStaticLink", - "AttrStmtList", - "AttrStrOffsetsBase", - "AttrStride", - "AttrStrideSize", - "AttrStringLength", - "AttrStringLengthBitSize", - "AttrStringLengthByteSize", - "AttrThreadsScaled", - "AttrTrampoline", - "AttrType", - "AttrUpperBound", - "AttrUseLocation", - "AttrUseUTF8", - "AttrVarParam", - "AttrVirtuality", - "AttrVisibility", - "AttrVtableElemLoc", - "BasicType", - "BoolType", - "CharType", - "Class", - "ClassAddrPtr", - "ClassAddress", - "ClassBlock", - "ClassConstant", - "ClassExprLoc", - "ClassFlag", - "ClassLinePtr", - "ClassLocList", - "ClassLocListPtr", - "ClassMacPtr", - "ClassRangeListPtr", - "ClassReference", - "ClassReferenceAlt", - "ClassReferenceSig", - "ClassRngList", - "ClassRngListsPtr", - "ClassStrOffsetsPtr", - "ClassString", - "ClassStringAlt", - "ClassUnknown", - "CommonType", - "ComplexType", - "Data", - "DecodeError", - "DotDotDotType", - "Entry", - "EnumType", - "EnumValue", - "ErrUnknownPC", - "Field", - "FloatType", - "FuncType", - "IntType", - "LineEntry", - "LineFile", - "LineReader", - "LineReaderPos", - "New", - "Offset", - "PtrType", - "QualType", - "Reader", - "StructField", - "StructType", - "Tag", - "TagAccessDeclaration", - "TagArrayType", - "TagAtomicType", - "TagBaseType", - "TagCallSite", - "TagCallSiteParameter", - "TagCatchDwarfBlock", - "TagClassType", - "TagCoarrayType", - "TagCommonDwarfBlock", - "TagCommonInclusion", - "TagCompileUnit", - "TagCondition", - "TagConstType", - "TagConstant", - "TagDwarfProcedure", - "TagDynamicType", - "TagEntryPoint", - "TagEnumerationType", - "TagEnumerator", - "TagFileType", - "TagFormalParameter", - "TagFriend", - "TagGenericSubrange", - "TagImmutableType", - "TagImportedDeclaration", - "TagImportedModule", - "TagImportedUnit", - "TagInheritance", - "TagInlinedSubroutine", - "TagInterfaceType", - "TagLabel", - "TagLexDwarfBlock", - "TagMember", - "TagModule", - "TagMutableType", - "TagNamelist", - "TagNamelistItem", - "TagNamespace", - "TagPackedType", - "TagPartialUnit", - "TagPointerType", - "TagPtrToMemberType", - "TagReferenceType", - "TagRestrictType", - "TagRvalueReferenceType", - "TagSetType", - "TagSharedType", - "TagSkeletonUnit", - "TagStringType", - "TagStructType", - "TagSubprogram", - "TagSubrangeType", - "TagSubroutineType", - "TagTemplateAlias", - "TagTemplateTypeParameter", - "TagTemplateValueParameter", - "TagThrownType", - "TagTryDwarfBlock", - "TagTypeUnit", - "TagTypedef", - "TagUnionType", - "TagUnspecifiedParameters", - "TagUnspecifiedType", - "TagVariable", - "TagVariant", - "TagVariantPart", - "TagVolatileType", - "TagWithStmt", - "Type", - "TypedefType", - "UcharType", - "UintType", - "UnspecifiedType", - "UnsupportedType", - "VoidType", - }, - "debug/elf": { - "ARM_MAGIC_TRAMP_NUMBER", - "COMPRESS_HIOS", - "COMPRESS_HIPROC", - "COMPRESS_LOOS", - "COMPRESS_LOPROC", - "COMPRESS_ZLIB", - "COMPRESS_ZSTD", - "Chdr32", - "Chdr64", - "Class", - "CompressionType", - "DF_1_CONFALT", - "DF_1_DIRECT", - "DF_1_DISPRELDNE", - "DF_1_DISPRELPND", - "DF_1_EDITED", - "DF_1_ENDFILTEE", - "DF_1_GLOBAL", - "DF_1_GLOBAUDIT", - "DF_1_GROUP", - "DF_1_IGNMULDEF", - "DF_1_INITFIRST", - "DF_1_INTERPOSE", - "DF_1_KMOD", - "DF_1_LOADFLTR", - "DF_1_NOCOMMON", - "DF_1_NODEFLIB", - "DF_1_NODELETE", - "DF_1_NODIRECT", - "DF_1_NODUMP", - "DF_1_NOHDR", - "DF_1_NOKSYMS", - "DF_1_NOOPEN", - "DF_1_NORELOC", - "DF_1_NOW", - "DF_1_ORIGIN", - "DF_1_PIE", - "DF_1_SINGLETON", - "DF_1_STUB", - "DF_1_SYMINTPOSE", - "DF_1_TRANS", - "DF_1_WEAKFILTER", - "DF_BIND_NOW", - "DF_ORIGIN", - "DF_STATIC_TLS", - "DF_SYMBOLIC", - "DF_TEXTREL", - "DT_ADDRRNGHI", - "DT_ADDRRNGLO", - "DT_AUDIT", - "DT_AUXILIARY", - "DT_BIND_NOW", - "DT_CHECKSUM", - "DT_CONFIG", - "DT_DEBUG", - "DT_DEPAUDIT", - "DT_ENCODING", - "DT_FEATURE", - "DT_FILTER", - "DT_FINI", - "DT_FINI_ARRAY", - "DT_FINI_ARRAYSZ", - "DT_FLAGS", - "DT_FLAGS_1", - "DT_GNU_CONFLICT", - "DT_GNU_CONFLICTSZ", - "DT_GNU_HASH", - "DT_GNU_LIBLIST", - "DT_GNU_LIBLISTSZ", - "DT_GNU_PRELINKED", - "DT_HASH", - "DT_HIOS", - "DT_HIPROC", - "DT_INIT", - "DT_INIT_ARRAY", - "DT_INIT_ARRAYSZ", - "DT_JMPREL", - "DT_LOOS", - "DT_LOPROC", - "DT_MIPS_AUX_DYNAMIC", - "DT_MIPS_BASE_ADDRESS", - "DT_MIPS_COMPACT_SIZE", - "DT_MIPS_CONFLICT", - "DT_MIPS_CONFLICTNO", - "DT_MIPS_CXX_FLAGS", - "DT_MIPS_DELTA_CLASS", - "DT_MIPS_DELTA_CLASSSYM", - "DT_MIPS_DELTA_CLASSSYM_NO", - "DT_MIPS_DELTA_CLASS_NO", - "DT_MIPS_DELTA_INSTANCE", - "DT_MIPS_DELTA_INSTANCE_NO", - "DT_MIPS_DELTA_RELOC", - "DT_MIPS_DELTA_RELOC_NO", - "DT_MIPS_DELTA_SYM", - "DT_MIPS_DELTA_SYM_NO", - "DT_MIPS_DYNSTR_ALIGN", - "DT_MIPS_FLAGS", - "DT_MIPS_GOTSYM", - "DT_MIPS_GP_VALUE", - "DT_MIPS_HIDDEN_GOTIDX", - "DT_MIPS_HIPAGENO", - "DT_MIPS_ICHECKSUM", - "DT_MIPS_INTERFACE", - "DT_MIPS_INTERFACE_SIZE", - "DT_MIPS_IVERSION", - "DT_MIPS_LIBLIST", - "DT_MIPS_LIBLISTNO", - "DT_MIPS_LOCALPAGE_GOTIDX", - "DT_MIPS_LOCAL_GOTIDX", - "DT_MIPS_LOCAL_GOTNO", - "DT_MIPS_MSYM", - "DT_MIPS_OPTIONS", - "DT_MIPS_PERF_SUFFIX", - "DT_MIPS_PIXIE_INIT", - "DT_MIPS_PLTGOT", - "DT_MIPS_PROTECTED_GOTIDX", - "DT_MIPS_RLD_MAP", - "DT_MIPS_RLD_MAP_REL", - "DT_MIPS_RLD_TEXT_RESOLVE_ADDR", - "DT_MIPS_RLD_VERSION", - "DT_MIPS_RWPLT", - "DT_MIPS_SYMBOL_LIB", - "DT_MIPS_SYMTABNO", - "DT_MIPS_TIME_STAMP", - "DT_MIPS_UNREFEXTNO", - "DT_MOVEENT", - "DT_MOVESZ", - "DT_MOVETAB", - "DT_NEEDED", - "DT_NULL", - "DT_PLTGOT", - "DT_PLTPAD", - "DT_PLTPADSZ", - "DT_PLTREL", - "DT_PLTRELSZ", - "DT_POSFLAG_1", - "DT_PPC64_GLINK", - "DT_PPC64_OPD", - "DT_PPC64_OPDSZ", - "DT_PPC64_OPT", - "DT_PPC_GOT", - "DT_PPC_OPT", - "DT_PREINIT_ARRAY", - "DT_PREINIT_ARRAYSZ", - "DT_REL", - "DT_RELA", - "DT_RELACOUNT", - "DT_RELAENT", - "DT_RELASZ", - "DT_RELCOUNT", - "DT_RELENT", - "DT_RELSZ", - "DT_RPATH", - "DT_RUNPATH", - "DT_SONAME", - "DT_SPARC_REGISTER", - "DT_STRSZ", - "DT_STRTAB", - "DT_SYMBOLIC", - "DT_SYMENT", - "DT_SYMINENT", - "DT_SYMINFO", - "DT_SYMINSZ", - "DT_SYMTAB", - "DT_SYMTAB_SHNDX", - "DT_TEXTREL", - "DT_TLSDESC_GOT", - "DT_TLSDESC_PLT", - "DT_USED", - "DT_VALRNGHI", - "DT_VALRNGLO", - "DT_VERDEF", - "DT_VERDEFNUM", - "DT_VERNEED", - "DT_VERNEEDNUM", - "DT_VERSYM", - "Data", - "Dyn32", - "Dyn64", - "DynFlag", - "DynFlag1", - "DynTag", - "EI_ABIVERSION", - "EI_CLASS", - "EI_DATA", - "EI_NIDENT", - "EI_OSABI", - "EI_PAD", - "EI_VERSION", - "ELFCLASS32", - "ELFCLASS64", - "ELFCLASSNONE", - "ELFDATA2LSB", - "ELFDATA2MSB", - "ELFDATANONE", - "ELFMAG", - "ELFOSABI_86OPEN", - "ELFOSABI_AIX", - "ELFOSABI_ARM", - "ELFOSABI_AROS", - "ELFOSABI_CLOUDABI", - "ELFOSABI_FENIXOS", - "ELFOSABI_FREEBSD", - "ELFOSABI_HPUX", - "ELFOSABI_HURD", - "ELFOSABI_IRIX", - "ELFOSABI_LINUX", - "ELFOSABI_MODESTO", - "ELFOSABI_NETBSD", - "ELFOSABI_NONE", - "ELFOSABI_NSK", - "ELFOSABI_OPENBSD", - "ELFOSABI_OPENVMS", - "ELFOSABI_SOLARIS", - "ELFOSABI_STANDALONE", - "ELFOSABI_TRU64", - "EM_386", - "EM_486", - "EM_56800EX", - "EM_68HC05", - "EM_68HC08", - "EM_68HC11", - "EM_68HC12", - "EM_68HC16", - "EM_68K", - "EM_78KOR", - "EM_8051", - "EM_860", - "EM_88K", - "EM_960", - "EM_AARCH64", - "EM_ALPHA", - "EM_ALPHA_STD", - "EM_ALTERA_NIOS2", - "EM_AMDGPU", - "EM_ARC", - "EM_ARCA", - "EM_ARC_COMPACT", - "EM_ARC_COMPACT2", - "EM_ARM", - "EM_AVR", - "EM_AVR32", - "EM_BA1", - "EM_BA2", - "EM_BLACKFIN", - "EM_BPF", - "EM_C166", - "EM_CDP", - "EM_CE", - "EM_CLOUDSHIELD", - "EM_COGE", - "EM_COLDFIRE", - "EM_COOL", - "EM_COREA_1ST", - "EM_COREA_2ND", - "EM_CR", - "EM_CR16", - "EM_CRAYNV2", - "EM_CRIS", - "EM_CRX", - "EM_CSR_KALIMBA", - "EM_CUDA", - "EM_CYPRESS_M8C", - "EM_D10V", - "EM_D30V", - "EM_DSP24", - "EM_DSPIC30F", - "EM_DXP", - "EM_ECOG1", - "EM_ECOG16", - "EM_ECOG1X", - "EM_ECOG2", - "EM_ETPU", - "EM_EXCESS", - "EM_F2MC16", - "EM_FIREPATH", - "EM_FR20", - "EM_FR30", - "EM_FT32", - "EM_FX66", - "EM_H8S", - "EM_H8_300", - "EM_H8_300H", - "EM_H8_500", - "EM_HUANY", - "EM_IA_64", - "EM_INTEL205", - "EM_INTEL206", - "EM_INTEL207", - "EM_INTEL208", - "EM_INTEL209", - "EM_IP2K", - "EM_JAVELIN", - "EM_K10M", - "EM_KM32", - "EM_KMX16", - "EM_KMX32", - "EM_KMX8", - "EM_KVARC", - "EM_L10M", - "EM_LANAI", - "EM_LATTICEMICO32", - "EM_LOONGARCH", - "EM_M16C", - "EM_M32", - "EM_M32C", - "EM_M32R", - "EM_MANIK", - "EM_MAX", - "EM_MAXQ30", - "EM_MCHP_PIC", - "EM_MCST_ELBRUS", - "EM_ME16", - "EM_METAG", - "EM_MICROBLAZE", - "EM_MIPS", - "EM_MIPS_RS3_LE", - "EM_MIPS_RS4_BE", - "EM_MIPS_X", - "EM_MMA", - "EM_MMDSP_PLUS", - "EM_MMIX", - "EM_MN10200", - "EM_MN10300", - "EM_MOXIE", - "EM_MSP430", - "EM_NCPU", - "EM_NDR1", - "EM_NDS32", - "EM_NONE", - "EM_NORC", - "EM_NS32K", - "EM_OPEN8", - "EM_OPENRISC", - "EM_PARISC", - "EM_PCP", - "EM_PDP10", - "EM_PDP11", - "EM_PDSP", - "EM_PJ", - "EM_PPC", - "EM_PPC64", - "EM_PRISM", - "EM_QDSP6", - "EM_R32C", - "EM_RCE", - "EM_RH32", - "EM_RISCV", - "EM_RL78", - "EM_RS08", - "EM_RX", - "EM_S370", - "EM_S390", - "EM_SCORE7", - "EM_SEP", - "EM_SE_C17", - "EM_SE_C33", - "EM_SH", - "EM_SHARC", - "EM_SLE9X", - "EM_SNP1K", - "EM_SPARC", - "EM_SPARC32PLUS", - "EM_SPARCV9", - "EM_ST100", - "EM_ST19", - "EM_ST200", - "EM_ST7", - "EM_ST9PLUS", - "EM_STARCORE", - "EM_STM8", - "EM_STXP7X", - "EM_SVX", - "EM_TILE64", - "EM_TILEGX", - "EM_TILEPRO", - "EM_TINYJ", - "EM_TI_ARP32", - "EM_TI_C2000", - "EM_TI_C5500", - "EM_TI_C6000", - "EM_TI_PRU", - "EM_TMM_GPP", - "EM_TPC", - "EM_TRICORE", - "EM_TRIMEDIA", - "EM_TSK3000", - "EM_UNICORE", - "EM_V800", - "EM_V850", - "EM_VAX", - "EM_VIDEOCORE", - "EM_VIDEOCORE3", - "EM_VIDEOCORE5", - "EM_VISIUM", - "EM_VPP500", - "EM_X86_64", - "EM_XCORE", - "EM_XGATE", - "EM_XIMO16", - "EM_XTENSA", - "EM_Z80", - "EM_ZSP", - "ET_CORE", - "ET_DYN", - "ET_EXEC", - "ET_HIOS", - "ET_HIPROC", - "ET_LOOS", - "ET_LOPROC", - "ET_NONE", - "ET_REL", - "EV_CURRENT", - "EV_NONE", - "ErrNoSymbols", - "File", - "FileHeader", - "FormatError", - "Header32", - "Header64", - "ImportedSymbol", - "Machine", - "NT_FPREGSET", - "NT_PRPSINFO", - "NT_PRSTATUS", - "NType", - "NewFile", - "OSABI", - "Open", - "PF_MASKOS", - "PF_MASKPROC", - "PF_R", - "PF_W", - "PF_X", - "PT_AARCH64_ARCHEXT", - "PT_AARCH64_UNWIND", - "PT_ARM_ARCHEXT", - "PT_ARM_EXIDX", - "PT_DYNAMIC", - "PT_GNU_EH_FRAME", - "PT_GNU_MBIND_HI", - "PT_GNU_MBIND_LO", - "PT_GNU_PROPERTY", - "PT_GNU_RELRO", - "PT_GNU_STACK", - "PT_HIOS", - "PT_HIPROC", - "PT_INTERP", - "PT_LOAD", - "PT_LOOS", - "PT_LOPROC", - "PT_MIPS_ABIFLAGS", - "PT_MIPS_OPTIONS", - "PT_MIPS_REGINFO", - "PT_MIPS_RTPROC", - "PT_NOTE", - "PT_NULL", - "PT_OPENBSD_BOOTDATA", - "PT_OPENBSD_RANDOMIZE", - "PT_OPENBSD_WXNEEDED", - "PT_PAX_FLAGS", - "PT_PHDR", - "PT_S390_PGSTE", - "PT_SHLIB", - "PT_SUNWSTACK", - "PT_SUNW_EH_FRAME", - "PT_TLS", - "Prog", - "Prog32", - "Prog64", - "ProgFlag", - "ProgHeader", - "ProgType", - "R_386", - "R_386_16", - "R_386_32", - "R_386_32PLT", - "R_386_8", - "R_386_COPY", - "R_386_GLOB_DAT", - "R_386_GOT32", - "R_386_GOT32X", - "R_386_GOTOFF", - "R_386_GOTPC", - "R_386_IRELATIVE", - "R_386_JMP_SLOT", - "R_386_NONE", - "R_386_PC16", - "R_386_PC32", - "R_386_PC8", - "R_386_PLT32", - "R_386_RELATIVE", - "R_386_SIZE32", - "R_386_TLS_DESC", - "R_386_TLS_DESC_CALL", - "R_386_TLS_DTPMOD32", - "R_386_TLS_DTPOFF32", - "R_386_TLS_GD", - "R_386_TLS_GD_32", - "R_386_TLS_GD_CALL", - "R_386_TLS_GD_POP", - "R_386_TLS_GD_PUSH", - "R_386_TLS_GOTDESC", - "R_386_TLS_GOTIE", - "R_386_TLS_IE", - "R_386_TLS_IE_32", - "R_386_TLS_LDM", - "R_386_TLS_LDM_32", - "R_386_TLS_LDM_CALL", - "R_386_TLS_LDM_POP", - "R_386_TLS_LDM_PUSH", - "R_386_TLS_LDO_32", - "R_386_TLS_LE", - "R_386_TLS_LE_32", - "R_386_TLS_TPOFF", - "R_386_TLS_TPOFF32", - "R_390", - "R_390_12", - "R_390_16", - "R_390_20", - "R_390_32", - "R_390_64", - "R_390_8", - "R_390_COPY", - "R_390_GLOB_DAT", - "R_390_GOT12", - "R_390_GOT16", - "R_390_GOT20", - "R_390_GOT32", - "R_390_GOT64", - "R_390_GOTENT", - "R_390_GOTOFF", - "R_390_GOTOFF16", - "R_390_GOTOFF64", - "R_390_GOTPC", - "R_390_GOTPCDBL", - "R_390_GOTPLT12", - "R_390_GOTPLT16", - "R_390_GOTPLT20", - "R_390_GOTPLT32", - "R_390_GOTPLT64", - "R_390_GOTPLTENT", - "R_390_GOTPLTOFF16", - "R_390_GOTPLTOFF32", - "R_390_GOTPLTOFF64", - "R_390_JMP_SLOT", - "R_390_NONE", - "R_390_PC16", - "R_390_PC16DBL", - "R_390_PC32", - "R_390_PC32DBL", - "R_390_PC64", - "R_390_PLT16DBL", - "R_390_PLT32", - "R_390_PLT32DBL", - "R_390_PLT64", - "R_390_RELATIVE", - "R_390_TLS_DTPMOD", - "R_390_TLS_DTPOFF", - "R_390_TLS_GD32", - "R_390_TLS_GD64", - "R_390_TLS_GDCALL", - "R_390_TLS_GOTIE12", - "R_390_TLS_GOTIE20", - "R_390_TLS_GOTIE32", - "R_390_TLS_GOTIE64", - "R_390_TLS_IE32", - "R_390_TLS_IE64", - "R_390_TLS_IEENT", - "R_390_TLS_LDCALL", - "R_390_TLS_LDM32", - "R_390_TLS_LDM64", - "R_390_TLS_LDO32", - "R_390_TLS_LDO64", - "R_390_TLS_LE32", - "R_390_TLS_LE64", - "R_390_TLS_LOAD", - "R_390_TLS_TPOFF", - "R_AARCH64", - "R_AARCH64_ABS16", - "R_AARCH64_ABS32", - "R_AARCH64_ABS64", - "R_AARCH64_ADD_ABS_LO12_NC", - "R_AARCH64_ADR_GOT_PAGE", - "R_AARCH64_ADR_PREL_LO21", - "R_AARCH64_ADR_PREL_PG_HI21", - "R_AARCH64_ADR_PREL_PG_HI21_NC", - "R_AARCH64_CALL26", - "R_AARCH64_CONDBR19", - "R_AARCH64_COPY", - "R_AARCH64_GLOB_DAT", - "R_AARCH64_GOT_LD_PREL19", - "R_AARCH64_IRELATIVE", - "R_AARCH64_JUMP26", - "R_AARCH64_JUMP_SLOT", - "R_AARCH64_LD64_GOTOFF_LO15", - "R_AARCH64_LD64_GOTPAGE_LO15", - "R_AARCH64_LD64_GOT_LO12_NC", - "R_AARCH64_LDST128_ABS_LO12_NC", - "R_AARCH64_LDST16_ABS_LO12_NC", - "R_AARCH64_LDST32_ABS_LO12_NC", - "R_AARCH64_LDST64_ABS_LO12_NC", - "R_AARCH64_LDST8_ABS_LO12_NC", - "R_AARCH64_LD_PREL_LO19", - "R_AARCH64_MOVW_SABS_G0", - "R_AARCH64_MOVW_SABS_G1", - "R_AARCH64_MOVW_SABS_G2", - "R_AARCH64_MOVW_UABS_G0", - "R_AARCH64_MOVW_UABS_G0_NC", - "R_AARCH64_MOVW_UABS_G1", - "R_AARCH64_MOVW_UABS_G1_NC", - "R_AARCH64_MOVW_UABS_G2", - "R_AARCH64_MOVW_UABS_G2_NC", - "R_AARCH64_MOVW_UABS_G3", - "R_AARCH64_NONE", - "R_AARCH64_NULL", - "R_AARCH64_P32_ABS16", - "R_AARCH64_P32_ABS32", - "R_AARCH64_P32_ADD_ABS_LO12_NC", - "R_AARCH64_P32_ADR_GOT_PAGE", - "R_AARCH64_P32_ADR_PREL_LO21", - "R_AARCH64_P32_ADR_PREL_PG_HI21", - "R_AARCH64_P32_CALL26", - "R_AARCH64_P32_CONDBR19", - "R_AARCH64_P32_COPY", - "R_AARCH64_P32_GLOB_DAT", - "R_AARCH64_P32_GOT_LD_PREL19", - "R_AARCH64_P32_IRELATIVE", - "R_AARCH64_P32_JUMP26", - "R_AARCH64_P32_JUMP_SLOT", - "R_AARCH64_P32_LD32_GOT_LO12_NC", - "R_AARCH64_P32_LDST128_ABS_LO12_NC", - "R_AARCH64_P32_LDST16_ABS_LO12_NC", - "R_AARCH64_P32_LDST32_ABS_LO12_NC", - "R_AARCH64_P32_LDST64_ABS_LO12_NC", - "R_AARCH64_P32_LDST8_ABS_LO12_NC", - "R_AARCH64_P32_LD_PREL_LO19", - "R_AARCH64_P32_MOVW_SABS_G0", - "R_AARCH64_P32_MOVW_UABS_G0", - "R_AARCH64_P32_MOVW_UABS_G0_NC", - "R_AARCH64_P32_MOVW_UABS_G1", - "R_AARCH64_P32_PREL16", - "R_AARCH64_P32_PREL32", - "R_AARCH64_P32_RELATIVE", - "R_AARCH64_P32_TLSDESC", - "R_AARCH64_P32_TLSDESC_ADD_LO12_NC", - "R_AARCH64_P32_TLSDESC_ADR_PAGE21", - "R_AARCH64_P32_TLSDESC_ADR_PREL21", - "R_AARCH64_P32_TLSDESC_CALL", - "R_AARCH64_P32_TLSDESC_LD32_LO12_NC", - "R_AARCH64_P32_TLSDESC_LD_PREL19", - "R_AARCH64_P32_TLSGD_ADD_LO12_NC", - "R_AARCH64_P32_TLSGD_ADR_PAGE21", - "R_AARCH64_P32_TLSIE_ADR_GOTTPREL_PAGE21", - "R_AARCH64_P32_TLSIE_LD32_GOTTPREL_LO12_NC", - "R_AARCH64_P32_TLSIE_LD_GOTTPREL_PREL19", - "R_AARCH64_P32_TLSLE_ADD_TPREL_HI12", - "R_AARCH64_P32_TLSLE_ADD_TPREL_LO12", - "R_AARCH64_P32_TLSLE_ADD_TPREL_LO12_NC", - "R_AARCH64_P32_TLSLE_MOVW_TPREL_G0", - "R_AARCH64_P32_TLSLE_MOVW_TPREL_G0_NC", - "R_AARCH64_P32_TLSLE_MOVW_TPREL_G1", - "R_AARCH64_P32_TLS_DTPMOD", - "R_AARCH64_P32_TLS_DTPREL", - "R_AARCH64_P32_TLS_TPREL", - "R_AARCH64_P32_TSTBR14", - "R_AARCH64_PREL16", - "R_AARCH64_PREL32", - "R_AARCH64_PREL64", - "R_AARCH64_RELATIVE", - "R_AARCH64_TLSDESC", - "R_AARCH64_TLSDESC_ADD", - "R_AARCH64_TLSDESC_ADD_LO12_NC", - "R_AARCH64_TLSDESC_ADR_PAGE21", - "R_AARCH64_TLSDESC_ADR_PREL21", - "R_AARCH64_TLSDESC_CALL", - "R_AARCH64_TLSDESC_LD64_LO12_NC", - "R_AARCH64_TLSDESC_LDR", - "R_AARCH64_TLSDESC_LD_PREL19", - "R_AARCH64_TLSDESC_OFF_G0_NC", - "R_AARCH64_TLSDESC_OFF_G1", - "R_AARCH64_TLSGD_ADD_LO12_NC", - "R_AARCH64_TLSGD_ADR_PAGE21", - "R_AARCH64_TLSGD_ADR_PREL21", - "R_AARCH64_TLSGD_MOVW_G0_NC", - "R_AARCH64_TLSGD_MOVW_G1", - "R_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21", - "R_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC", - "R_AARCH64_TLSIE_LD_GOTTPREL_PREL19", - "R_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC", - "R_AARCH64_TLSIE_MOVW_GOTTPREL_G1", - "R_AARCH64_TLSLD_ADR_PAGE21", - "R_AARCH64_TLSLD_ADR_PREL21", - "R_AARCH64_TLSLD_LDST128_DTPREL_LO12", - "R_AARCH64_TLSLD_LDST128_DTPREL_LO12_NC", - "R_AARCH64_TLSLE_ADD_TPREL_HI12", - "R_AARCH64_TLSLE_ADD_TPREL_LO12", - "R_AARCH64_TLSLE_ADD_TPREL_LO12_NC", - "R_AARCH64_TLSLE_LDST128_TPREL_LO12", - "R_AARCH64_TLSLE_LDST128_TPREL_LO12_NC", - "R_AARCH64_TLSLE_MOVW_TPREL_G0", - "R_AARCH64_TLSLE_MOVW_TPREL_G0_NC", - "R_AARCH64_TLSLE_MOVW_TPREL_G1", - "R_AARCH64_TLSLE_MOVW_TPREL_G1_NC", - "R_AARCH64_TLSLE_MOVW_TPREL_G2", - "R_AARCH64_TLS_DTPMOD64", - "R_AARCH64_TLS_DTPREL64", - "R_AARCH64_TLS_TPREL64", - "R_AARCH64_TSTBR14", - "R_ALPHA", - "R_ALPHA_BRADDR", - "R_ALPHA_COPY", - "R_ALPHA_GLOB_DAT", - "R_ALPHA_GPDISP", - "R_ALPHA_GPREL32", - "R_ALPHA_GPRELHIGH", - "R_ALPHA_GPRELLOW", - "R_ALPHA_GPVALUE", - "R_ALPHA_HINT", - "R_ALPHA_IMMED_BR_HI32", - "R_ALPHA_IMMED_GP_16", - "R_ALPHA_IMMED_GP_HI32", - "R_ALPHA_IMMED_LO32", - "R_ALPHA_IMMED_SCN_HI32", - "R_ALPHA_JMP_SLOT", - "R_ALPHA_LITERAL", - "R_ALPHA_LITUSE", - "R_ALPHA_NONE", - "R_ALPHA_OP_PRSHIFT", - "R_ALPHA_OP_PSUB", - "R_ALPHA_OP_PUSH", - "R_ALPHA_OP_STORE", - "R_ALPHA_REFLONG", - "R_ALPHA_REFQUAD", - "R_ALPHA_RELATIVE", - "R_ALPHA_SREL16", - "R_ALPHA_SREL32", - "R_ALPHA_SREL64", - "R_ARM", - "R_ARM_ABS12", - "R_ARM_ABS16", - "R_ARM_ABS32", - "R_ARM_ABS32_NOI", - "R_ARM_ABS8", - "R_ARM_ALU_PCREL_15_8", - "R_ARM_ALU_PCREL_23_15", - "R_ARM_ALU_PCREL_7_0", - "R_ARM_ALU_PC_G0", - "R_ARM_ALU_PC_G0_NC", - "R_ARM_ALU_PC_G1", - "R_ARM_ALU_PC_G1_NC", - "R_ARM_ALU_PC_G2", - "R_ARM_ALU_SBREL_19_12_NC", - "R_ARM_ALU_SBREL_27_20_CK", - "R_ARM_ALU_SB_G0", - "R_ARM_ALU_SB_G0_NC", - "R_ARM_ALU_SB_G1", - "R_ARM_ALU_SB_G1_NC", - "R_ARM_ALU_SB_G2", - "R_ARM_AMP_VCALL9", - "R_ARM_BASE_ABS", - "R_ARM_CALL", - "R_ARM_COPY", - "R_ARM_GLOB_DAT", - "R_ARM_GNU_VTENTRY", - "R_ARM_GNU_VTINHERIT", - "R_ARM_GOT32", - "R_ARM_GOTOFF", - "R_ARM_GOTOFF12", - "R_ARM_GOTPC", - "R_ARM_GOTRELAX", - "R_ARM_GOT_ABS", - "R_ARM_GOT_BREL12", - "R_ARM_GOT_PREL", - "R_ARM_IRELATIVE", - "R_ARM_JUMP24", - "R_ARM_JUMP_SLOT", - "R_ARM_LDC_PC_G0", - "R_ARM_LDC_PC_G1", - "R_ARM_LDC_PC_G2", - "R_ARM_LDC_SB_G0", - "R_ARM_LDC_SB_G1", - "R_ARM_LDC_SB_G2", - "R_ARM_LDRS_PC_G0", - "R_ARM_LDRS_PC_G1", - "R_ARM_LDRS_PC_G2", - "R_ARM_LDRS_SB_G0", - "R_ARM_LDRS_SB_G1", - "R_ARM_LDRS_SB_G2", - "R_ARM_LDR_PC_G1", - "R_ARM_LDR_PC_G2", - "R_ARM_LDR_SBREL_11_10_NC", - "R_ARM_LDR_SB_G0", - "R_ARM_LDR_SB_G1", - "R_ARM_LDR_SB_G2", - "R_ARM_ME_TOO", - "R_ARM_MOVT_ABS", - "R_ARM_MOVT_BREL", - "R_ARM_MOVT_PREL", - "R_ARM_MOVW_ABS_NC", - "R_ARM_MOVW_BREL", - "R_ARM_MOVW_BREL_NC", - "R_ARM_MOVW_PREL_NC", - "R_ARM_NONE", - "R_ARM_PC13", - "R_ARM_PC24", - "R_ARM_PLT32", - "R_ARM_PLT32_ABS", - "R_ARM_PREL31", - "R_ARM_PRIVATE_0", - "R_ARM_PRIVATE_1", - "R_ARM_PRIVATE_10", - "R_ARM_PRIVATE_11", - "R_ARM_PRIVATE_12", - "R_ARM_PRIVATE_13", - "R_ARM_PRIVATE_14", - "R_ARM_PRIVATE_15", - "R_ARM_PRIVATE_2", - "R_ARM_PRIVATE_3", - "R_ARM_PRIVATE_4", - "R_ARM_PRIVATE_5", - "R_ARM_PRIVATE_6", - "R_ARM_PRIVATE_7", - "R_ARM_PRIVATE_8", - "R_ARM_PRIVATE_9", - "R_ARM_RABS32", - "R_ARM_RBASE", - "R_ARM_REL32", - "R_ARM_REL32_NOI", - "R_ARM_RELATIVE", - "R_ARM_RPC24", - "R_ARM_RREL32", - "R_ARM_RSBREL32", - "R_ARM_RXPC25", - "R_ARM_SBREL31", - "R_ARM_SBREL32", - "R_ARM_SWI24", - "R_ARM_TARGET1", - "R_ARM_TARGET2", - "R_ARM_THM_ABS5", - "R_ARM_THM_ALU_ABS_G0_NC", - "R_ARM_THM_ALU_ABS_G1_NC", - "R_ARM_THM_ALU_ABS_G2_NC", - "R_ARM_THM_ALU_ABS_G3", - "R_ARM_THM_ALU_PREL_11_0", - "R_ARM_THM_GOT_BREL12", - "R_ARM_THM_JUMP11", - "R_ARM_THM_JUMP19", - "R_ARM_THM_JUMP24", - "R_ARM_THM_JUMP6", - "R_ARM_THM_JUMP8", - "R_ARM_THM_MOVT_ABS", - "R_ARM_THM_MOVT_BREL", - "R_ARM_THM_MOVT_PREL", - "R_ARM_THM_MOVW_ABS_NC", - "R_ARM_THM_MOVW_BREL", - "R_ARM_THM_MOVW_BREL_NC", - "R_ARM_THM_MOVW_PREL_NC", - "R_ARM_THM_PC12", - "R_ARM_THM_PC22", - "R_ARM_THM_PC8", - "R_ARM_THM_RPC22", - "R_ARM_THM_SWI8", - "R_ARM_THM_TLS_CALL", - "R_ARM_THM_TLS_DESCSEQ16", - "R_ARM_THM_TLS_DESCSEQ32", - "R_ARM_THM_XPC22", - "R_ARM_TLS_CALL", - "R_ARM_TLS_DESCSEQ", - "R_ARM_TLS_DTPMOD32", - "R_ARM_TLS_DTPOFF32", - "R_ARM_TLS_GD32", - "R_ARM_TLS_GOTDESC", - "R_ARM_TLS_IE12GP", - "R_ARM_TLS_IE32", - "R_ARM_TLS_LDM32", - "R_ARM_TLS_LDO12", - "R_ARM_TLS_LDO32", - "R_ARM_TLS_LE12", - "R_ARM_TLS_LE32", - "R_ARM_TLS_TPOFF32", - "R_ARM_V4BX", - "R_ARM_XPC25", - "R_INFO", - "R_INFO32", - "R_LARCH", - "R_LARCH_32", - "R_LARCH_32_PCREL", - "R_LARCH_64", - "R_LARCH_ABS64_HI12", - "R_LARCH_ABS64_LO20", - "R_LARCH_ABS_HI20", - "R_LARCH_ABS_LO12", - "R_LARCH_ADD16", - "R_LARCH_ADD24", - "R_LARCH_ADD32", - "R_LARCH_ADD64", - "R_LARCH_ADD8", - "R_LARCH_B16", - "R_LARCH_B21", - "R_LARCH_B26", - "R_LARCH_COPY", - "R_LARCH_GNU_VTENTRY", - "R_LARCH_GNU_VTINHERIT", - "R_LARCH_GOT64_HI12", - "R_LARCH_GOT64_LO20", - "R_LARCH_GOT64_PC_HI12", - "R_LARCH_GOT64_PC_LO20", - "R_LARCH_GOT_HI20", - "R_LARCH_GOT_LO12", - "R_LARCH_GOT_PC_HI20", - "R_LARCH_GOT_PC_LO12", - "R_LARCH_IRELATIVE", - "R_LARCH_JUMP_SLOT", - "R_LARCH_MARK_LA", - "R_LARCH_MARK_PCREL", - "R_LARCH_NONE", - "R_LARCH_PCALA64_HI12", - "R_LARCH_PCALA64_LO20", - "R_LARCH_PCALA_HI20", - "R_LARCH_PCALA_LO12", - "R_LARCH_RELATIVE", - "R_LARCH_RELAX", - "R_LARCH_SOP_ADD", - "R_LARCH_SOP_AND", - "R_LARCH_SOP_ASSERT", - "R_LARCH_SOP_IF_ELSE", - "R_LARCH_SOP_NOT", - "R_LARCH_SOP_POP_32_S_0_10_10_16_S2", - "R_LARCH_SOP_POP_32_S_0_5_10_16_S2", - "R_LARCH_SOP_POP_32_S_10_12", - "R_LARCH_SOP_POP_32_S_10_16", - "R_LARCH_SOP_POP_32_S_10_16_S2", - "R_LARCH_SOP_POP_32_S_10_5", - "R_LARCH_SOP_POP_32_S_5_20", - "R_LARCH_SOP_POP_32_U", - "R_LARCH_SOP_POP_32_U_10_12", - "R_LARCH_SOP_PUSH_ABSOLUTE", - "R_LARCH_SOP_PUSH_DUP", - "R_LARCH_SOP_PUSH_GPREL", - "R_LARCH_SOP_PUSH_PCREL", - "R_LARCH_SOP_PUSH_PLT_PCREL", - "R_LARCH_SOP_PUSH_TLS_GD", - "R_LARCH_SOP_PUSH_TLS_GOT", - "R_LARCH_SOP_PUSH_TLS_TPREL", - "R_LARCH_SOP_SL", - "R_LARCH_SOP_SR", - "R_LARCH_SOP_SUB", - "R_LARCH_SUB16", - "R_LARCH_SUB24", - "R_LARCH_SUB32", - "R_LARCH_SUB64", - "R_LARCH_SUB8", - "R_LARCH_TLS_DTPMOD32", - "R_LARCH_TLS_DTPMOD64", - "R_LARCH_TLS_DTPREL32", - "R_LARCH_TLS_DTPREL64", - "R_LARCH_TLS_GD_HI20", - "R_LARCH_TLS_GD_PC_HI20", - "R_LARCH_TLS_IE64_HI12", - "R_LARCH_TLS_IE64_LO20", - "R_LARCH_TLS_IE64_PC_HI12", - "R_LARCH_TLS_IE64_PC_LO20", - "R_LARCH_TLS_IE_HI20", - "R_LARCH_TLS_IE_LO12", - "R_LARCH_TLS_IE_PC_HI20", - "R_LARCH_TLS_IE_PC_LO12", - "R_LARCH_TLS_LD_HI20", - "R_LARCH_TLS_LD_PC_HI20", - "R_LARCH_TLS_LE64_HI12", - "R_LARCH_TLS_LE64_LO20", - "R_LARCH_TLS_LE_HI20", - "R_LARCH_TLS_LE_LO12", - "R_LARCH_TLS_TPREL32", - "R_LARCH_TLS_TPREL64", - "R_MIPS", - "R_MIPS_16", - "R_MIPS_26", - "R_MIPS_32", - "R_MIPS_64", - "R_MIPS_ADD_IMMEDIATE", - "R_MIPS_CALL16", - "R_MIPS_CALL_HI16", - "R_MIPS_CALL_LO16", - "R_MIPS_DELETE", - "R_MIPS_GOT16", - "R_MIPS_GOT_DISP", - "R_MIPS_GOT_HI16", - "R_MIPS_GOT_LO16", - "R_MIPS_GOT_OFST", - "R_MIPS_GOT_PAGE", - "R_MIPS_GPREL16", - "R_MIPS_GPREL32", - "R_MIPS_HI16", - "R_MIPS_HIGHER", - "R_MIPS_HIGHEST", - "R_MIPS_INSERT_A", - "R_MIPS_INSERT_B", - "R_MIPS_JALR", - "R_MIPS_LITERAL", - "R_MIPS_LO16", - "R_MIPS_NONE", - "R_MIPS_PC16", - "R_MIPS_PJUMP", - "R_MIPS_REL16", - "R_MIPS_REL32", - "R_MIPS_RELGOT", - "R_MIPS_SCN_DISP", - "R_MIPS_SHIFT5", - "R_MIPS_SHIFT6", - "R_MIPS_SUB", - "R_MIPS_TLS_DTPMOD32", - "R_MIPS_TLS_DTPMOD64", - "R_MIPS_TLS_DTPREL32", - "R_MIPS_TLS_DTPREL64", - "R_MIPS_TLS_DTPREL_HI16", - "R_MIPS_TLS_DTPREL_LO16", - "R_MIPS_TLS_GD", - "R_MIPS_TLS_GOTTPREL", - "R_MIPS_TLS_LDM", - "R_MIPS_TLS_TPREL32", - "R_MIPS_TLS_TPREL64", - "R_MIPS_TLS_TPREL_HI16", - "R_MIPS_TLS_TPREL_LO16", - "R_PPC", - "R_PPC64", - "R_PPC64_ADDR14", - "R_PPC64_ADDR14_BRNTAKEN", - "R_PPC64_ADDR14_BRTAKEN", - "R_PPC64_ADDR16", - "R_PPC64_ADDR16_DS", - "R_PPC64_ADDR16_HA", - "R_PPC64_ADDR16_HI", - "R_PPC64_ADDR16_HIGH", - "R_PPC64_ADDR16_HIGHA", - "R_PPC64_ADDR16_HIGHER", - "R_PPC64_ADDR16_HIGHER34", - "R_PPC64_ADDR16_HIGHERA", - "R_PPC64_ADDR16_HIGHERA34", - "R_PPC64_ADDR16_HIGHEST", - "R_PPC64_ADDR16_HIGHEST34", - "R_PPC64_ADDR16_HIGHESTA", - "R_PPC64_ADDR16_HIGHESTA34", - "R_PPC64_ADDR16_LO", - "R_PPC64_ADDR16_LO_DS", - "R_PPC64_ADDR24", - "R_PPC64_ADDR32", - "R_PPC64_ADDR64", - "R_PPC64_ADDR64_LOCAL", - "R_PPC64_COPY", - "R_PPC64_D28", - "R_PPC64_D34", - "R_PPC64_D34_HA30", - "R_PPC64_D34_HI30", - "R_PPC64_D34_LO", - "R_PPC64_DTPMOD64", - "R_PPC64_DTPREL16", - "R_PPC64_DTPREL16_DS", - "R_PPC64_DTPREL16_HA", - "R_PPC64_DTPREL16_HI", - "R_PPC64_DTPREL16_HIGH", - "R_PPC64_DTPREL16_HIGHA", - "R_PPC64_DTPREL16_HIGHER", - "R_PPC64_DTPREL16_HIGHERA", - "R_PPC64_DTPREL16_HIGHEST", - "R_PPC64_DTPREL16_HIGHESTA", - "R_PPC64_DTPREL16_LO", - "R_PPC64_DTPREL16_LO_DS", - "R_PPC64_DTPREL34", - "R_PPC64_DTPREL64", - "R_PPC64_ENTRY", - "R_PPC64_GLOB_DAT", - "R_PPC64_GNU_VTENTRY", - "R_PPC64_GNU_VTINHERIT", - "R_PPC64_GOT16", - "R_PPC64_GOT16_DS", - "R_PPC64_GOT16_HA", - "R_PPC64_GOT16_HI", - "R_PPC64_GOT16_LO", - "R_PPC64_GOT16_LO_DS", - "R_PPC64_GOT_DTPREL16_DS", - "R_PPC64_GOT_DTPREL16_HA", - "R_PPC64_GOT_DTPREL16_HI", - "R_PPC64_GOT_DTPREL16_LO_DS", - "R_PPC64_GOT_DTPREL_PCREL34", - "R_PPC64_GOT_PCREL34", - "R_PPC64_GOT_TLSGD16", - "R_PPC64_GOT_TLSGD16_HA", - "R_PPC64_GOT_TLSGD16_HI", - "R_PPC64_GOT_TLSGD16_LO", - "R_PPC64_GOT_TLSGD_PCREL34", - "R_PPC64_GOT_TLSLD16", - "R_PPC64_GOT_TLSLD16_HA", - "R_PPC64_GOT_TLSLD16_HI", - "R_PPC64_GOT_TLSLD16_LO", - "R_PPC64_GOT_TLSLD_PCREL34", - "R_PPC64_GOT_TPREL16_DS", - "R_PPC64_GOT_TPREL16_HA", - "R_PPC64_GOT_TPREL16_HI", - "R_PPC64_GOT_TPREL16_LO_DS", - "R_PPC64_GOT_TPREL_PCREL34", - "R_PPC64_IRELATIVE", - "R_PPC64_JMP_IREL", - "R_PPC64_JMP_SLOT", - "R_PPC64_NONE", - "R_PPC64_PCREL28", - "R_PPC64_PCREL34", - "R_PPC64_PCREL_OPT", - "R_PPC64_PLT16_HA", - "R_PPC64_PLT16_HI", - "R_PPC64_PLT16_LO", - "R_PPC64_PLT16_LO_DS", - "R_PPC64_PLT32", - "R_PPC64_PLT64", - "R_PPC64_PLTCALL", - "R_PPC64_PLTCALL_NOTOC", - "R_PPC64_PLTGOT16", - "R_PPC64_PLTGOT16_DS", - "R_PPC64_PLTGOT16_HA", - "R_PPC64_PLTGOT16_HI", - "R_PPC64_PLTGOT16_LO", - "R_PPC64_PLTGOT_LO_DS", - "R_PPC64_PLTREL32", - "R_PPC64_PLTREL64", - "R_PPC64_PLTSEQ", - "R_PPC64_PLTSEQ_NOTOC", - "R_PPC64_PLT_PCREL34", - "R_PPC64_PLT_PCREL34_NOTOC", - "R_PPC64_REL14", - "R_PPC64_REL14_BRNTAKEN", - "R_PPC64_REL14_BRTAKEN", - "R_PPC64_REL16", - "R_PPC64_REL16DX_HA", - "R_PPC64_REL16_HA", - "R_PPC64_REL16_HI", - "R_PPC64_REL16_HIGH", - "R_PPC64_REL16_HIGHA", - "R_PPC64_REL16_HIGHER", - "R_PPC64_REL16_HIGHER34", - "R_PPC64_REL16_HIGHERA", - "R_PPC64_REL16_HIGHERA34", - "R_PPC64_REL16_HIGHEST", - "R_PPC64_REL16_HIGHEST34", - "R_PPC64_REL16_HIGHESTA", - "R_PPC64_REL16_HIGHESTA34", - "R_PPC64_REL16_LO", - "R_PPC64_REL24", - "R_PPC64_REL24_NOTOC", - "R_PPC64_REL24_P9NOTOC", - "R_PPC64_REL30", - "R_PPC64_REL32", - "R_PPC64_REL64", - "R_PPC64_RELATIVE", - "R_PPC64_SECTOFF", - "R_PPC64_SECTOFF_DS", - "R_PPC64_SECTOFF_HA", - "R_PPC64_SECTOFF_HI", - "R_PPC64_SECTOFF_LO", - "R_PPC64_SECTOFF_LO_DS", - "R_PPC64_TLS", - "R_PPC64_TLSGD", - "R_PPC64_TLSLD", - "R_PPC64_TOC", - "R_PPC64_TOC16", - "R_PPC64_TOC16_DS", - "R_PPC64_TOC16_HA", - "R_PPC64_TOC16_HI", - "R_PPC64_TOC16_LO", - "R_PPC64_TOC16_LO_DS", - "R_PPC64_TOCSAVE", - "R_PPC64_TPREL16", - "R_PPC64_TPREL16_DS", - "R_PPC64_TPREL16_HA", - "R_PPC64_TPREL16_HI", - "R_PPC64_TPREL16_HIGH", - "R_PPC64_TPREL16_HIGHA", - "R_PPC64_TPREL16_HIGHER", - "R_PPC64_TPREL16_HIGHERA", - "R_PPC64_TPREL16_HIGHEST", - "R_PPC64_TPREL16_HIGHESTA", - "R_PPC64_TPREL16_LO", - "R_PPC64_TPREL16_LO_DS", - "R_PPC64_TPREL34", - "R_PPC64_TPREL64", - "R_PPC64_UADDR16", - "R_PPC64_UADDR32", - "R_PPC64_UADDR64", - "R_PPC_ADDR14", - "R_PPC_ADDR14_BRNTAKEN", - "R_PPC_ADDR14_BRTAKEN", - "R_PPC_ADDR16", - "R_PPC_ADDR16_HA", - "R_PPC_ADDR16_HI", - "R_PPC_ADDR16_LO", - "R_PPC_ADDR24", - "R_PPC_ADDR32", - "R_PPC_COPY", - "R_PPC_DTPMOD32", - "R_PPC_DTPREL16", - "R_PPC_DTPREL16_HA", - "R_PPC_DTPREL16_HI", - "R_PPC_DTPREL16_LO", - "R_PPC_DTPREL32", - "R_PPC_EMB_BIT_FLD", - "R_PPC_EMB_MRKREF", - "R_PPC_EMB_NADDR16", - "R_PPC_EMB_NADDR16_HA", - "R_PPC_EMB_NADDR16_HI", - "R_PPC_EMB_NADDR16_LO", - "R_PPC_EMB_NADDR32", - "R_PPC_EMB_RELSDA", - "R_PPC_EMB_RELSEC16", - "R_PPC_EMB_RELST_HA", - "R_PPC_EMB_RELST_HI", - "R_PPC_EMB_RELST_LO", - "R_PPC_EMB_SDA21", - "R_PPC_EMB_SDA2I16", - "R_PPC_EMB_SDA2REL", - "R_PPC_EMB_SDAI16", - "R_PPC_GLOB_DAT", - "R_PPC_GOT16", - "R_PPC_GOT16_HA", - "R_PPC_GOT16_HI", - "R_PPC_GOT16_LO", - "R_PPC_GOT_TLSGD16", - "R_PPC_GOT_TLSGD16_HA", - "R_PPC_GOT_TLSGD16_HI", - "R_PPC_GOT_TLSGD16_LO", - "R_PPC_GOT_TLSLD16", - "R_PPC_GOT_TLSLD16_HA", - "R_PPC_GOT_TLSLD16_HI", - "R_PPC_GOT_TLSLD16_LO", - "R_PPC_GOT_TPREL16", - "R_PPC_GOT_TPREL16_HA", - "R_PPC_GOT_TPREL16_HI", - "R_PPC_GOT_TPREL16_LO", - "R_PPC_JMP_SLOT", - "R_PPC_LOCAL24PC", - "R_PPC_NONE", - "R_PPC_PLT16_HA", - "R_PPC_PLT16_HI", - "R_PPC_PLT16_LO", - "R_PPC_PLT32", - "R_PPC_PLTREL24", - "R_PPC_PLTREL32", - "R_PPC_REL14", - "R_PPC_REL14_BRNTAKEN", - "R_PPC_REL14_BRTAKEN", - "R_PPC_REL24", - "R_PPC_REL32", - "R_PPC_RELATIVE", - "R_PPC_SDAREL16", - "R_PPC_SECTOFF", - "R_PPC_SECTOFF_HA", - "R_PPC_SECTOFF_HI", - "R_PPC_SECTOFF_LO", - "R_PPC_TLS", - "R_PPC_TPREL16", - "R_PPC_TPREL16_HA", - "R_PPC_TPREL16_HI", - "R_PPC_TPREL16_LO", - "R_PPC_TPREL32", - "R_PPC_UADDR16", - "R_PPC_UADDR32", - "R_RISCV", - "R_RISCV_32", - "R_RISCV_32_PCREL", - "R_RISCV_64", - "R_RISCV_ADD16", - "R_RISCV_ADD32", - "R_RISCV_ADD64", - "R_RISCV_ADD8", - "R_RISCV_ALIGN", - "R_RISCV_BRANCH", - "R_RISCV_CALL", - "R_RISCV_CALL_PLT", - "R_RISCV_COPY", - "R_RISCV_GNU_VTENTRY", - "R_RISCV_GNU_VTINHERIT", - "R_RISCV_GOT_HI20", - "R_RISCV_GPREL_I", - "R_RISCV_GPREL_S", - "R_RISCV_HI20", - "R_RISCV_JAL", - "R_RISCV_JUMP_SLOT", - "R_RISCV_LO12_I", - "R_RISCV_LO12_S", - "R_RISCV_NONE", - "R_RISCV_PCREL_HI20", - "R_RISCV_PCREL_LO12_I", - "R_RISCV_PCREL_LO12_S", - "R_RISCV_RELATIVE", - "R_RISCV_RELAX", - "R_RISCV_RVC_BRANCH", - "R_RISCV_RVC_JUMP", - "R_RISCV_RVC_LUI", - "R_RISCV_SET16", - "R_RISCV_SET32", - "R_RISCV_SET6", - "R_RISCV_SET8", - "R_RISCV_SUB16", - "R_RISCV_SUB32", - "R_RISCV_SUB6", - "R_RISCV_SUB64", - "R_RISCV_SUB8", - "R_RISCV_TLS_DTPMOD32", - "R_RISCV_TLS_DTPMOD64", - "R_RISCV_TLS_DTPREL32", - "R_RISCV_TLS_DTPREL64", - "R_RISCV_TLS_GD_HI20", - "R_RISCV_TLS_GOT_HI20", - "R_RISCV_TLS_TPREL32", - "R_RISCV_TLS_TPREL64", - "R_RISCV_TPREL_ADD", - "R_RISCV_TPREL_HI20", - "R_RISCV_TPREL_I", - "R_RISCV_TPREL_LO12_I", - "R_RISCV_TPREL_LO12_S", - "R_RISCV_TPREL_S", - "R_SPARC", - "R_SPARC_10", - "R_SPARC_11", - "R_SPARC_13", - "R_SPARC_16", - "R_SPARC_22", - "R_SPARC_32", - "R_SPARC_5", - "R_SPARC_6", - "R_SPARC_64", - "R_SPARC_7", - "R_SPARC_8", - "R_SPARC_COPY", - "R_SPARC_DISP16", - "R_SPARC_DISP32", - "R_SPARC_DISP64", - "R_SPARC_DISP8", - "R_SPARC_GLOB_DAT", - "R_SPARC_GLOB_JMP", - "R_SPARC_GOT10", - "R_SPARC_GOT13", - "R_SPARC_GOT22", - "R_SPARC_H44", - "R_SPARC_HH22", - "R_SPARC_HI22", - "R_SPARC_HIPLT22", - "R_SPARC_HIX22", - "R_SPARC_HM10", - "R_SPARC_JMP_SLOT", - "R_SPARC_L44", - "R_SPARC_LM22", - "R_SPARC_LO10", - "R_SPARC_LOPLT10", - "R_SPARC_LOX10", - "R_SPARC_M44", - "R_SPARC_NONE", - "R_SPARC_OLO10", - "R_SPARC_PC10", - "R_SPARC_PC22", - "R_SPARC_PCPLT10", - "R_SPARC_PCPLT22", - "R_SPARC_PCPLT32", - "R_SPARC_PC_HH22", - "R_SPARC_PC_HM10", - "R_SPARC_PC_LM22", - "R_SPARC_PLT32", - "R_SPARC_PLT64", - "R_SPARC_REGISTER", - "R_SPARC_RELATIVE", - "R_SPARC_UA16", - "R_SPARC_UA32", - "R_SPARC_UA64", - "R_SPARC_WDISP16", - "R_SPARC_WDISP19", - "R_SPARC_WDISP22", - "R_SPARC_WDISP30", - "R_SPARC_WPLT30", - "R_SYM32", - "R_SYM64", - "R_TYPE32", - "R_TYPE64", - "R_X86_64", - "R_X86_64_16", - "R_X86_64_32", - "R_X86_64_32S", - "R_X86_64_64", - "R_X86_64_8", - "R_X86_64_COPY", - "R_X86_64_DTPMOD64", - "R_X86_64_DTPOFF32", - "R_X86_64_DTPOFF64", - "R_X86_64_GLOB_DAT", - "R_X86_64_GOT32", - "R_X86_64_GOT64", - "R_X86_64_GOTOFF64", - "R_X86_64_GOTPC32", - "R_X86_64_GOTPC32_TLSDESC", - "R_X86_64_GOTPC64", - "R_X86_64_GOTPCREL", - "R_X86_64_GOTPCREL64", - "R_X86_64_GOTPCRELX", - "R_X86_64_GOTPLT64", - "R_X86_64_GOTTPOFF", - "R_X86_64_IRELATIVE", - "R_X86_64_JMP_SLOT", - "R_X86_64_NONE", - "R_X86_64_PC16", - "R_X86_64_PC32", - "R_X86_64_PC32_BND", - "R_X86_64_PC64", - "R_X86_64_PC8", - "R_X86_64_PLT32", - "R_X86_64_PLT32_BND", - "R_X86_64_PLTOFF64", - "R_X86_64_RELATIVE", - "R_X86_64_RELATIVE64", - "R_X86_64_REX_GOTPCRELX", - "R_X86_64_SIZE32", - "R_X86_64_SIZE64", - "R_X86_64_TLSDESC", - "R_X86_64_TLSDESC_CALL", - "R_X86_64_TLSGD", - "R_X86_64_TLSLD", - "R_X86_64_TPOFF32", - "R_X86_64_TPOFF64", - "Rel32", - "Rel64", - "Rela32", - "Rela64", - "SHF_ALLOC", - "SHF_COMPRESSED", - "SHF_EXECINSTR", - "SHF_GROUP", - "SHF_INFO_LINK", - "SHF_LINK_ORDER", - "SHF_MASKOS", - "SHF_MASKPROC", - "SHF_MERGE", - "SHF_OS_NONCONFORMING", - "SHF_STRINGS", - "SHF_TLS", - "SHF_WRITE", - "SHN_ABS", - "SHN_COMMON", - "SHN_HIOS", - "SHN_HIPROC", - "SHN_HIRESERVE", - "SHN_LOOS", - "SHN_LOPROC", - "SHN_LORESERVE", - "SHN_UNDEF", - "SHN_XINDEX", - "SHT_DYNAMIC", - "SHT_DYNSYM", - "SHT_FINI_ARRAY", - "SHT_GNU_ATTRIBUTES", - "SHT_GNU_HASH", - "SHT_GNU_LIBLIST", - "SHT_GNU_VERDEF", - "SHT_GNU_VERNEED", - "SHT_GNU_VERSYM", - "SHT_GROUP", - "SHT_HASH", - "SHT_HIOS", - "SHT_HIPROC", - "SHT_HIUSER", - "SHT_INIT_ARRAY", - "SHT_LOOS", - "SHT_LOPROC", - "SHT_LOUSER", - "SHT_MIPS_ABIFLAGS", - "SHT_NOBITS", - "SHT_NOTE", - "SHT_NULL", - "SHT_PREINIT_ARRAY", - "SHT_PROGBITS", - "SHT_REL", - "SHT_RELA", - "SHT_SHLIB", - "SHT_STRTAB", - "SHT_SYMTAB", - "SHT_SYMTAB_SHNDX", - "STB_GLOBAL", - "STB_HIOS", - "STB_HIPROC", - "STB_LOCAL", - "STB_LOOS", - "STB_LOPROC", - "STB_WEAK", - "STT_COMMON", - "STT_FILE", - "STT_FUNC", - "STT_HIOS", - "STT_HIPROC", - "STT_LOOS", - "STT_LOPROC", - "STT_NOTYPE", - "STT_OBJECT", - "STT_SECTION", - "STT_TLS", - "STV_DEFAULT", - "STV_HIDDEN", - "STV_INTERNAL", - "STV_PROTECTED", - "ST_BIND", - "ST_INFO", - "ST_TYPE", - "ST_VISIBILITY", - "Section", - "Section32", - "Section64", - "SectionFlag", - "SectionHeader", - "SectionIndex", - "SectionType", - "Sym32", - "Sym32Size", - "Sym64", - "Sym64Size", - "SymBind", - "SymType", - "SymVis", - "Symbol", - "Type", - "Version", - }, - "debug/gosym": { - "DecodingError", - "Func", - "LineTable", - "NewLineTable", - "NewTable", - "Obj", - "Sym", - "Table", - "UnknownFileError", - "UnknownLineError", - }, - "debug/macho": { - "ARM64_RELOC_ADDEND", - "ARM64_RELOC_BRANCH26", - "ARM64_RELOC_GOT_LOAD_PAGE21", - "ARM64_RELOC_GOT_LOAD_PAGEOFF12", - "ARM64_RELOC_PAGE21", - "ARM64_RELOC_PAGEOFF12", - "ARM64_RELOC_POINTER_TO_GOT", - "ARM64_RELOC_SUBTRACTOR", - "ARM64_RELOC_TLVP_LOAD_PAGE21", - "ARM64_RELOC_TLVP_LOAD_PAGEOFF12", - "ARM64_RELOC_UNSIGNED", - "ARM_RELOC_BR24", - "ARM_RELOC_HALF", - "ARM_RELOC_HALF_SECTDIFF", - "ARM_RELOC_LOCAL_SECTDIFF", - "ARM_RELOC_PAIR", - "ARM_RELOC_PB_LA_PTR", - "ARM_RELOC_SECTDIFF", - "ARM_RELOC_VANILLA", - "ARM_THUMB_32BIT_BRANCH", - "ARM_THUMB_RELOC_BR22", - "Cpu", - "Cpu386", - "CpuAmd64", - "CpuArm", - "CpuArm64", - "CpuPpc", - "CpuPpc64", - "Dylib", - "DylibCmd", - "Dysymtab", - "DysymtabCmd", - "ErrNotFat", - "FatArch", - "FatArchHeader", - "FatFile", - "File", - "FileHeader", - "FlagAllModsBound", - "FlagAllowStackExecution", - "FlagAppExtensionSafe", - "FlagBindAtLoad", - "FlagBindsToWeak", - "FlagCanonical", - "FlagDeadStrippableDylib", - "FlagDyldLink", - "FlagForceFlat", - "FlagHasTLVDescriptors", - "FlagIncrLink", - "FlagLazyInit", - "FlagNoFixPrebinding", - "FlagNoHeapExecution", - "FlagNoMultiDefs", - "FlagNoReexportedDylibs", - "FlagNoUndefs", - "FlagPIE", - "FlagPrebindable", - "FlagPrebound", - "FlagRootSafe", - "FlagSetuidSafe", - "FlagSplitSegs", - "FlagSubsectionsViaSymbols", - "FlagTwoLevel", - "FlagWeakDefines", - "FormatError", - "GENERIC_RELOC_LOCAL_SECTDIFF", - "GENERIC_RELOC_PAIR", - "GENERIC_RELOC_PB_LA_PTR", - "GENERIC_RELOC_SECTDIFF", - "GENERIC_RELOC_TLV", - "GENERIC_RELOC_VANILLA", - "Load", - "LoadBytes", - "LoadCmd", - "LoadCmdDylib", - "LoadCmdDylinker", - "LoadCmdDysymtab", - "LoadCmdRpath", - "LoadCmdSegment", - "LoadCmdSegment64", - "LoadCmdSymtab", - "LoadCmdThread", - "LoadCmdUnixThread", - "Magic32", - "Magic64", - "MagicFat", - "NewFatFile", - "NewFile", - "Nlist32", - "Nlist64", - "Open", - "OpenFat", - "Regs386", - "RegsAMD64", - "Reloc", - "RelocTypeARM", - "RelocTypeARM64", - "RelocTypeGeneric", - "RelocTypeX86_64", - "Rpath", - "RpathCmd", - "Section", - "Section32", - "Section64", - "SectionHeader", - "Segment", - "Segment32", - "Segment64", - "SegmentHeader", - "Symbol", - "Symtab", - "SymtabCmd", - "Thread", - "Type", - "TypeBundle", - "TypeDylib", - "TypeExec", - "TypeObj", - "X86_64_RELOC_BRANCH", - "X86_64_RELOC_GOT", - "X86_64_RELOC_GOT_LOAD", - "X86_64_RELOC_SIGNED", - "X86_64_RELOC_SIGNED_1", - "X86_64_RELOC_SIGNED_2", - "X86_64_RELOC_SIGNED_4", - "X86_64_RELOC_SUBTRACTOR", - "X86_64_RELOC_TLV", - "X86_64_RELOC_UNSIGNED", - }, - "debug/pe": { - "COFFSymbol", - "COFFSymbolAuxFormat5", - "COFFSymbolSize", - "DataDirectory", - "File", - "FileHeader", - "FormatError", - "IMAGE_COMDAT_SELECT_ANY", - "IMAGE_COMDAT_SELECT_ASSOCIATIVE", - "IMAGE_COMDAT_SELECT_EXACT_MATCH", - "IMAGE_COMDAT_SELECT_LARGEST", - "IMAGE_COMDAT_SELECT_NODUPLICATES", - "IMAGE_COMDAT_SELECT_SAME_SIZE", - "IMAGE_DIRECTORY_ENTRY_ARCHITECTURE", - "IMAGE_DIRECTORY_ENTRY_BASERELOC", - "IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT", - "IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR", - "IMAGE_DIRECTORY_ENTRY_DEBUG", - "IMAGE_DIRECTORY_ENTRY_DELAY_IMPORT", - "IMAGE_DIRECTORY_ENTRY_EXCEPTION", - "IMAGE_DIRECTORY_ENTRY_EXPORT", - "IMAGE_DIRECTORY_ENTRY_GLOBALPTR", - "IMAGE_DIRECTORY_ENTRY_IAT", - "IMAGE_DIRECTORY_ENTRY_IMPORT", - "IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG", - "IMAGE_DIRECTORY_ENTRY_RESOURCE", - "IMAGE_DIRECTORY_ENTRY_SECURITY", - "IMAGE_DIRECTORY_ENTRY_TLS", - "IMAGE_DLLCHARACTERISTICS_APPCONTAINER", - "IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE", - "IMAGE_DLLCHARACTERISTICS_FORCE_INTEGRITY", - "IMAGE_DLLCHARACTERISTICS_GUARD_CF", - "IMAGE_DLLCHARACTERISTICS_HIGH_ENTROPY_VA", - "IMAGE_DLLCHARACTERISTICS_NO_BIND", - "IMAGE_DLLCHARACTERISTICS_NO_ISOLATION", - "IMAGE_DLLCHARACTERISTICS_NO_SEH", - "IMAGE_DLLCHARACTERISTICS_NX_COMPAT", - "IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE", - "IMAGE_DLLCHARACTERISTICS_WDM_DRIVER", - "IMAGE_FILE_32BIT_MACHINE", - "IMAGE_FILE_AGGRESIVE_WS_TRIM", - "IMAGE_FILE_BYTES_REVERSED_HI", - "IMAGE_FILE_BYTES_REVERSED_LO", - "IMAGE_FILE_DEBUG_STRIPPED", - "IMAGE_FILE_DLL", - "IMAGE_FILE_EXECUTABLE_IMAGE", - "IMAGE_FILE_LARGE_ADDRESS_AWARE", - "IMAGE_FILE_LINE_NUMS_STRIPPED", - "IMAGE_FILE_LOCAL_SYMS_STRIPPED", - "IMAGE_FILE_MACHINE_AM33", - "IMAGE_FILE_MACHINE_AMD64", - "IMAGE_FILE_MACHINE_ARM", - "IMAGE_FILE_MACHINE_ARM64", - "IMAGE_FILE_MACHINE_ARMNT", - "IMAGE_FILE_MACHINE_EBC", - "IMAGE_FILE_MACHINE_I386", - "IMAGE_FILE_MACHINE_IA64", - "IMAGE_FILE_MACHINE_LOONGARCH32", - "IMAGE_FILE_MACHINE_LOONGARCH64", - "IMAGE_FILE_MACHINE_M32R", - "IMAGE_FILE_MACHINE_MIPS16", - "IMAGE_FILE_MACHINE_MIPSFPU", - "IMAGE_FILE_MACHINE_MIPSFPU16", - "IMAGE_FILE_MACHINE_POWERPC", - "IMAGE_FILE_MACHINE_POWERPCFP", - "IMAGE_FILE_MACHINE_R4000", - "IMAGE_FILE_MACHINE_RISCV128", - "IMAGE_FILE_MACHINE_RISCV32", - "IMAGE_FILE_MACHINE_RISCV64", - "IMAGE_FILE_MACHINE_SH3", - "IMAGE_FILE_MACHINE_SH3DSP", - "IMAGE_FILE_MACHINE_SH4", - "IMAGE_FILE_MACHINE_SH5", - "IMAGE_FILE_MACHINE_THUMB", - "IMAGE_FILE_MACHINE_UNKNOWN", - "IMAGE_FILE_MACHINE_WCEMIPSV2", - "IMAGE_FILE_NET_RUN_FROM_SWAP", - "IMAGE_FILE_RELOCS_STRIPPED", - "IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP", - "IMAGE_FILE_SYSTEM", - "IMAGE_FILE_UP_SYSTEM_ONLY", - "IMAGE_SCN_CNT_CODE", - "IMAGE_SCN_CNT_INITIALIZED_DATA", - "IMAGE_SCN_CNT_UNINITIALIZED_DATA", - "IMAGE_SCN_LNK_COMDAT", - "IMAGE_SCN_MEM_DISCARDABLE", - "IMAGE_SCN_MEM_EXECUTE", - "IMAGE_SCN_MEM_READ", - "IMAGE_SCN_MEM_WRITE", - "IMAGE_SUBSYSTEM_EFI_APPLICATION", - "IMAGE_SUBSYSTEM_EFI_BOOT_SERVICE_DRIVER", - "IMAGE_SUBSYSTEM_EFI_ROM", - "IMAGE_SUBSYSTEM_EFI_RUNTIME_DRIVER", - "IMAGE_SUBSYSTEM_NATIVE", - "IMAGE_SUBSYSTEM_NATIVE_WINDOWS", - "IMAGE_SUBSYSTEM_OS2_CUI", - "IMAGE_SUBSYSTEM_POSIX_CUI", - "IMAGE_SUBSYSTEM_UNKNOWN", - "IMAGE_SUBSYSTEM_WINDOWS_BOOT_APPLICATION", - "IMAGE_SUBSYSTEM_WINDOWS_CE_GUI", - "IMAGE_SUBSYSTEM_WINDOWS_CUI", - "IMAGE_SUBSYSTEM_WINDOWS_GUI", - "IMAGE_SUBSYSTEM_XBOX", - "ImportDirectory", - "NewFile", - "Open", - "OptionalHeader32", - "OptionalHeader64", - "Reloc", - "Section", - "SectionHeader", - "SectionHeader32", - "StringTable", - "Symbol", - }, - "debug/plan9obj": { - "ErrNoSymbols", - "File", - "FileHeader", - "Magic386", - "Magic64", - "MagicAMD64", - "MagicARM", - "NewFile", - "Open", - "Section", - "SectionHeader", - "Sym", - }, - "embed": { - "FS", - }, - "encoding": { - "BinaryMarshaler", - "BinaryUnmarshaler", - "TextMarshaler", - "TextUnmarshaler", - }, - "encoding/ascii85": { - "CorruptInputError", - "Decode", - "Encode", - "MaxEncodedLen", - "NewDecoder", - "NewEncoder", - }, - "encoding/asn1": { - "BitString", - "ClassApplication", - "ClassContextSpecific", - "ClassPrivate", - "ClassUniversal", - "Enumerated", - "Flag", - "Marshal", - "MarshalWithParams", - "NullBytes", - "NullRawValue", - "ObjectIdentifier", - "RawContent", - "RawValue", - "StructuralError", - "SyntaxError", - "TagBMPString", - "TagBitString", - "TagBoolean", - "TagEnum", - "TagGeneralString", - "TagGeneralizedTime", - "TagIA5String", - "TagInteger", - "TagNull", - "TagNumericString", - "TagOID", - "TagOctetString", - "TagPrintableString", - "TagSequence", - "TagSet", - "TagT61String", - "TagUTCTime", - "TagUTF8String", - "Unmarshal", - "UnmarshalWithParams", - }, - "encoding/base32": { - "CorruptInputError", - "Encoding", - "HexEncoding", - "NewDecoder", - "NewEncoder", - "NewEncoding", - "NoPadding", - "StdEncoding", - "StdPadding", - }, - "encoding/base64": { - "CorruptInputError", - "Encoding", - "NewDecoder", - "NewEncoder", - "NewEncoding", - "NoPadding", - "RawStdEncoding", - "RawURLEncoding", - "StdEncoding", - "StdPadding", - "URLEncoding", - }, - "encoding/binary": { - "AppendByteOrder", - "AppendUvarint", - "AppendVarint", - "BigEndian", - "ByteOrder", - "LittleEndian", - "MaxVarintLen16", - "MaxVarintLen32", - "MaxVarintLen64", - "NativeEndian", - "PutUvarint", - "PutVarint", - "Read", - "ReadUvarint", - "ReadVarint", - "Size", - "Uvarint", - "Varint", - "Write", - }, - "encoding/csv": { - "ErrBareQuote", - "ErrFieldCount", - "ErrQuote", - "ErrTrailingComma", - "NewReader", - "NewWriter", - "ParseError", - "Reader", - "Writer", - }, - "encoding/gob": { - "CommonType", - "Decoder", - "Encoder", - "GobDecoder", - "GobEncoder", - "NewDecoder", - "NewEncoder", - "Register", - "RegisterName", - }, - "encoding/hex": { - "Decode", - "DecodeString", - "DecodedLen", - "Dump", - "Dumper", - "Encode", - "EncodeToString", - "EncodedLen", - "ErrLength", - "InvalidByteError", - "NewDecoder", - "NewEncoder", - }, - "encoding/json": { - "Compact", - "Decoder", - "Delim", - "Encoder", - "HTMLEscape", - "Indent", - "InvalidUTF8Error", - "InvalidUnmarshalError", - "Marshal", - "MarshalIndent", - "Marshaler", - "MarshalerError", - "NewDecoder", - "NewEncoder", - "Number", - "RawMessage", - "SyntaxError", - "Token", - "Unmarshal", - "UnmarshalFieldError", - "UnmarshalTypeError", - "Unmarshaler", - "UnsupportedTypeError", - "UnsupportedValueError", - "Valid", - }, - "encoding/pem": { - "Block", - "Decode", - "Encode", - "EncodeToMemory", - }, - "encoding/xml": { - "Attr", - "CharData", - "Comment", - "CopyToken", - "Decoder", - "Directive", - "Encoder", - "EndElement", - "Escape", - "EscapeText", - "HTMLAutoClose", - "HTMLEntity", - "Header", - "Marshal", - "MarshalIndent", - "Marshaler", - "MarshalerAttr", - "Name", - "NewDecoder", - "NewEncoder", - "NewTokenDecoder", - "ProcInst", - "StartElement", - "SyntaxError", - "TagPathError", - "Token", - "TokenReader", - "Unmarshal", - "UnmarshalError", - "Unmarshaler", - "UnmarshalerAttr", - "UnsupportedTypeError", - }, - "errors": { - "As", - "ErrUnsupported", - "Is", - "Join", - "New", - "Unwrap", - }, - "expvar": { - "Do", - "Float", - "Func", - "Get", - "Handler", - "Int", - "KeyValue", - "Map", - "NewFloat", - "NewInt", - "NewMap", - "NewString", - "Publish", - "String", - "Var", - }, - "flag": { - "Arg", - "Args", - "Bool", - "BoolFunc", - "BoolVar", - "CommandLine", - "ContinueOnError", - "Duration", - "DurationVar", - "ErrHelp", - "ErrorHandling", - "ExitOnError", - "Flag", - "FlagSet", - "Float64", - "Float64Var", - "Func", - "Getter", - "Int", - "Int64", - "Int64Var", - "IntVar", - "Lookup", - "NArg", - "NFlag", - "NewFlagSet", - "PanicOnError", - "Parse", - "Parsed", - "PrintDefaults", - "Set", - "String", - "StringVar", - "TextVar", - "Uint", - "Uint64", - "Uint64Var", - "UintVar", - "UnquoteUsage", - "Usage", - "Value", - "Var", - "Visit", - "VisitAll", - }, - "fmt": { - "Append", - "Appendf", - "Appendln", - "Errorf", - "FormatString", - "Formatter", - "Fprint", - "Fprintf", - "Fprintln", - "Fscan", - "Fscanf", - "Fscanln", - "GoStringer", - "Print", - "Printf", - "Println", - "Scan", - "ScanState", - "Scanf", - "Scanln", - "Scanner", - "Sprint", - "Sprintf", - "Sprintln", - "Sscan", - "Sscanf", - "Sscanln", - "State", - "Stringer", - }, - "go/ast": { - "ArrayType", - "AssignStmt", - "Bad", - "BadDecl", - "BadExpr", - "BadStmt", - "BasicLit", - "BinaryExpr", - "BlockStmt", - "BranchStmt", - "CallExpr", - "CaseClause", - "ChanDir", - "ChanType", - "CommClause", - "Comment", - "CommentGroup", - "CommentMap", - "CompositeLit", - "Con", - "Decl", - "DeclStmt", - "DeferStmt", - "Ellipsis", - "EmptyStmt", - "Expr", - "ExprStmt", - "Field", - "FieldFilter", - "FieldList", - "File", - "FileExports", - "Filter", - "FilterDecl", - "FilterFile", - "FilterFuncDuplicates", - "FilterImportDuplicates", - "FilterPackage", - "FilterUnassociatedComments", - "ForStmt", - "Fprint", - "Fun", - "FuncDecl", - "FuncLit", - "FuncType", - "GenDecl", - "GoStmt", - "Ident", - "IfStmt", - "ImportSpec", - "Importer", - "IncDecStmt", - "IndexExpr", - "IndexListExpr", - "Inspect", - "InterfaceType", - "IsExported", - "IsGenerated", - "KeyValueExpr", - "LabeledStmt", - "Lbl", - "MapType", - "MergeMode", - "MergePackageFiles", - "NewCommentMap", - "NewIdent", - "NewObj", - "NewPackage", - "NewScope", - "Node", - "NotNilFilter", - "ObjKind", - "Object", - "Package", - "PackageExports", - "ParenExpr", - "Pkg", - "Print", - "RECV", - "RangeStmt", - "ReturnStmt", - "SEND", - "Scope", - "SelectStmt", - "SelectorExpr", - "SendStmt", - "SliceExpr", - "SortImports", - "Spec", - "StarExpr", - "Stmt", - "StructType", - "SwitchStmt", - "Typ", - "TypeAssertExpr", - "TypeSpec", - "TypeSwitchStmt", - "UnaryExpr", - "ValueSpec", - "Var", - "Visitor", - "Walk", - }, - "go/build": { - "AllowBinary", - "ArchChar", - "Context", - "Default", - "Directive", - "FindOnly", - "IgnoreVendor", - "Import", - "ImportComment", - "ImportDir", - "ImportMode", - "IsLocalImport", - "MultiplePackageError", - "NoGoError", - "Package", - "ToolDir", - }, - "go/build/constraint": { - "AndExpr", - "Expr", - "GoVersion", - "IsGoBuild", - "IsPlusBuild", - "NotExpr", - "OrExpr", - "Parse", - "PlusBuildLines", - "SyntaxError", - "TagExpr", - }, - "go/constant": { - "BinaryOp", - "BitLen", - "Bool", - "BoolVal", - "Bytes", - "Compare", - "Complex", - "Denom", - "Float", - "Float32Val", - "Float64Val", - "Imag", - "Int", - "Int64Val", - "Kind", - "Make", - "MakeBool", - "MakeFloat64", - "MakeFromBytes", - "MakeFromLiteral", - "MakeImag", - "MakeInt64", - "MakeString", - "MakeUint64", - "MakeUnknown", - "Num", - "Real", - "Shift", - "Sign", - "String", - "StringVal", - "ToComplex", - "ToFloat", - "ToInt", - "Uint64Val", - "UnaryOp", - "Unknown", - "Val", - "Value", - }, - "go/doc": { - "AllDecls", - "AllMethods", - "Example", - "Examples", - "Filter", - "Func", - "IllegalPrefixes", - "IsPredeclared", - "Mode", - "New", - "NewFromFiles", - "Note", - "Package", - "PreserveAST", - "Synopsis", - "ToHTML", - "ToText", - "Type", - "Value", - }, - "go/doc/comment": { - "Block", - "Code", - "DefaultLookupPackage", - "Doc", - "DocLink", - "Heading", - "Italic", - "Link", - "LinkDef", - "List", - "ListItem", - "Paragraph", - "Parser", - "Plain", - "Printer", - "Text", - }, - "go/format": { - "Node", - "Source", - }, - "go/importer": { - "Default", - "For", - "ForCompiler", - "Lookup", - }, - "go/parser": { - "AllErrors", - "DeclarationErrors", - "ImportsOnly", - "Mode", - "PackageClauseOnly", - "ParseComments", - "ParseDir", - "ParseExpr", - "ParseExprFrom", - "ParseFile", - "SkipObjectResolution", - "SpuriousErrors", - "Trace", - }, - "go/printer": { - "CommentedNode", - "Config", - "Fprint", - "Mode", - "RawFormat", - "SourcePos", - "TabIndent", - "UseSpaces", - }, - "go/scanner": { - "Error", - "ErrorHandler", - "ErrorList", - "Mode", - "PrintError", - "ScanComments", - "Scanner", - }, - "go/token": { - "ADD", - "ADD_ASSIGN", - "AND", - "AND_ASSIGN", - "AND_NOT", - "AND_NOT_ASSIGN", - "ARROW", - "ASSIGN", - "BREAK", - "CASE", - "CHAN", - "CHAR", - "COLON", - "COMMA", - "COMMENT", - "CONST", - "CONTINUE", - "DEC", - "DEFAULT", - "DEFER", - "DEFINE", - "ELLIPSIS", - "ELSE", - "EOF", - "EQL", - "FALLTHROUGH", - "FLOAT", - "FOR", - "FUNC", - "File", - "FileSet", - "GEQ", - "GO", - "GOTO", - "GTR", - "HighestPrec", - "IDENT", - "IF", - "ILLEGAL", - "IMAG", - "IMPORT", - "INC", - "INT", - "INTERFACE", - "IsExported", - "IsIdentifier", - "IsKeyword", - "LAND", - "LBRACE", - "LBRACK", - "LEQ", - "LOR", - "LPAREN", - "LSS", - "Lookup", - "LowestPrec", - "MAP", - "MUL", - "MUL_ASSIGN", - "NEQ", - "NOT", - "NewFileSet", - "NoPos", - "OR", - "OR_ASSIGN", - "PACKAGE", - "PERIOD", - "Pos", - "Position", - "QUO", - "QUO_ASSIGN", - "RANGE", - "RBRACE", - "RBRACK", - "REM", - "REM_ASSIGN", - "RETURN", - "RPAREN", - "SELECT", - "SEMICOLON", - "SHL", - "SHL_ASSIGN", - "SHR", - "SHR_ASSIGN", - "STRING", - "STRUCT", - "SUB", - "SUB_ASSIGN", - "SWITCH", - "TILDE", - "TYPE", - "Token", - "UnaryPrec", - "VAR", - "XOR", - "XOR_ASSIGN", - }, - "go/types": { - "ArgumentError", - "Array", - "AssertableTo", - "AssignableTo", - "Basic", - "BasicInfo", - "BasicKind", - "Bool", - "Builtin", - "Byte", - "Chan", - "ChanDir", - "CheckExpr", - "Checker", - "Comparable", - "Complex128", - "Complex64", - "Config", - "Const", - "Context", - "ConvertibleTo", - "DefPredeclaredTestFuncs", - "Default", - "Error", - "Eval", - "ExprString", - "FieldVal", - "Float32", - "Float64", - "Func", - "Id", - "Identical", - "IdenticalIgnoreTags", - "Implements", - "ImportMode", - "Importer", - "ImporterFrom", - "Info", - "Initializer", - "Instance", - "Instantiate", - "Int", - "Int16", - "Int32", - "Int64", - "Int8", - "Interface", - "Invalid", - "IsBoolean", - "IsComplex", - "IsConstType", - "IsFloat", - "IsInteger", - "IsInterface", - "IsNumeric", - "IsOrdered", - "IsString", - "IsUnsigned", - "IsUntyped", - "Label", - "LookupFieldOrMethod", - "Map", - "MethodExpr", - "MethodSet", - "MethodVal", - "MissingMethod", - "Named", - "NewArray", - "NewChan", - "NewChecker", - "NewConst", - "NewContext", - "NewField", - "NewFunc", - "NewInterface", - "NewInterfaceType", - "NewLabel", - "NewMap", - "NewMethodSet", - "NewNamed", - "NewPackage", - "NewParam", - "NewPkgName", - "NewPointer", - "NewScope", - "NewSignature", - "NewSignatureType", - "NewSlice", - "NewStruct", - "NewTerm", - "NewTuple", - "NewTypeName", - "NewTypeParam", - "NewUnion", - "NewVar", - "Nil", - "Object", - "ObjectString", - "Package", - "PkgName", - "Pointer", - "Qualifier", - "RecvOnly", - "RelativeTo", - "Rune", - "Satisfies", - "Scope", - "Selection", - "SelectionKind", - "SelectionString", - "SendOnly", - "SendRecv", - "Signature", - "Sizes", - "SizesFor", - "Slice", - "StdSizes", - "String", - "Struct", - "Term", - "Tuple", - "Typ", - "Type", - "TypeAndValue", - "TypeList", - "TypeName", - "TypeParam", - "TypeParamList", - "TypeString", - "Uint", - "Uint16", - "Uint32", - "Uint64", - "Uint8", - "Uintptr", - "Union", - "Universe", - "Unsafe", - "UnsafePointer", - "UntypedBool", - "UntypedComplex", - "UntypedFloat", - "UntypedInt", - "UntypedNil", - "UntypedRune", - "UntypedString", - "Var", - "WriteExpr", - "WriteSignature", - "WriteType", - }, - "hash": { - "Hash", - "Hash32", - "Hash64", - }, - "hash/adler32": { - "Checksum", - "New", - "Size", - }, - "hash/crc32": { - "Castagnoli", - "Checksum", - "ChecksumIEEE", - "IEEE", - "IEEETable", - "Koopman", - "MakeTable", - "New", - "NewIEEE", - "Size", - "Table", - "Update", - }, - "hash/crc64": { - "Checksum", - "ECMA", - "ISO", - "MakeTable", - "New", - "Size", - "Table", - "Update", - }, - "hash/fnv": { - "New128", - "New128a", - "New32", - "New32a", - "New64", - "New64a", - }, - "hash/maphash": { - "Bytes", - "Hash", - "MakeSeed", - "Seed", - "String", - }, - "html": { - "EscapeString", - "UnescapeString", - }, - "html/template": { - "CSS", - "ErrAmbigContext", - "ErrBadHTML", - "ErrBranchEnd", - "ErrEndContext", - "ErrJSTemplate", - "ErrNoSuchTemplate", - "ErrOutputContext", - "ErrPartialCharset", - "ErrPartialEscape", - "ErrPredefinedEscaper", - "ErrRangeLoopReentry", - "ErrSlashAmbig", - "Error", - "ErrorCode", - "FuncMap", - "HTML", - "HTMLAttr", - "HTMLEscape", - "HTMLEscapeString", - "HTMLEscaper", - "IsTrue", - "JS", - "JSEscape", - "JSEscapeString", - "JSEscaper", - "JSStr", - "Must", - "New", - "OK", - "ParseFS", - "ParseFiles", - "ParseGlob", - "Srcset", - "Template", - "URL", - "URLQueryEscaper", - }, - "image": { - "Alpha", - "Alpha16", - "Black", - "CMYK", - "Config", - "Decode", - "DecodeConfig", - "ErrFormat", - "Gray", - "Gray16", - "Image", - "NRGBA", - "NRGBA64", - "NYCbCrA", - "NewAlpha", - "NewAlpha16", - "NewCMYK", - "NewGray", - "NewGray16", - "NewNRGBA", - "NewNRGBA64", - "NewNYCbCrA", - "NewPaletted", - "NewRGBA", - "NewRGBA64", - "NewUniform", - "NewYCbCr", - "Opaque", - "Paletted", - "PalettedImage", - "Point", - "Pt", - "RGBA", - "RGBA64", - "RGBA64Image", - "Rect", - "Rectangle", - "RegisterFormat", - "Transparent", - "Uniform", - "White", - "YCbCr", - "YCbCrSubsampleRatio", - "YCbCrSubsampleRatio410", - "YCbCrSubsampleRatio411", - "YCbCrSubsampleRatio420", - "YCbCrSubsampleRatio422", - "YCbCrSubsampleRatio440", - "YCbCrSubsampleRatio444", - "ZP", - "ZR", - }, - "image/color": { - "Alpha", - "Alpha16", - "Alpha16Model", - "AlphaModel", - "Black", - "CMYK", - "CMYKModel", - "CMYKToRGB", - "Color", - "Gray", - "Gray16", - "Gray16Model", - "GrayModel", - "Model", - "ModelFunc", - "NRGBA", - "NRGBA64", - "NRGBA64Model", - "NRGBAModel", - "NYCbCrA", - "NYCbCrAModel", - "Opaque", - "Palette", - "RGBA", - "RGBA64", - "RGBA64Model", - "RGBAModel", - "RGBToCMYK", - "RGBToYCbCr", - "Transparent", - "White", - "YCbCr", - "YCbCrModel", - "YCbCrToRGB", - }, - "image/color/palette": { - "Plan9", - "WebSafe", - }, - "image/draw": { - "Draw", - "DrawMask", - "Drawer", - "FloydSteinberg", - "Image", - "Op", - "Over", - "Quantizer", - "RGBA64Image", - "Src", - }, - "image/gif": { - "Decode", - "DecodeAll", - "DecodeConfig", - "DisposalBackground", - "DisposalNone", - "DisposalPrevious", - "Encode", - "EncodeAll", - "GIF", - "Options", - }, - "image/jpeg": { - "Decode", - "DecodeConfig", - "DefaultQuality", - "Encode", - "FormatError", - "Options", - "Reader", - "UnsupportedError", - }, - "image/png": { - "BestCompression", - "BestSpeed", - "CompressionLevel", - "Decode", - "DecodeConfig", - "DefaultCompression", - "Encode", - "Encoder", - "EncoderBuffer", - "EncoderBufferPool", - "FormatError", - "NoCompression", - "UnsupportedError", - }, - "index/suffixarray": { - "Index", - "New", - }, - "io": { - "ByteReader", - "ByteScanner", - "ByteWriter", - "Closer", - "Copy", - "CopyBuffer", - "CopyN", - "Discard", - "EOF", - "ErrClosedPipe", - "ErrNoProgress", - "ErrShortBuffer", - "ErrShortWrite", - "ErrUnexpectedEOF", - "LimitReader", - "LimitedReader", - "MultiReader", - "MultiWriter", - "NewOffsetWriter", - "NewSectionReader", - "NopCloser", - "OffsetWriter", - "Pipe", - "PipeReader", - "PipeWriter", - "ReadAll", - "ReadAtLeast", - "ReadCloser", - "ReadFull", - "ReadSeekCloser", - "ReadSeeker", - "ReadWriteCloser", - "ReadWriteSeeker", - "ReadWriter", - "Reader", - "ReaderAt", - "ReaderFrom", - "RuneReader", - "RuneScanner", - "SectionReader", - "SeekCurrent", - "SeekEnd", - "SeekStart", - "Seeker", - "StringWriter", - "TeeReader", - "WriteCloser", - "WriteSeeker", - "WriteString", - "Writer", - "WriterAt", - "WriterTo", - }, - "io/fs": { - "DirEntry", - "ErrClosed", - "ErrExist", - "ErrInvalid", - "ErrNotExist", - "ErrPermission", - "FS", - "File", - "FileInfo", - "FileInfoToDirEntry", - "FileMode", - "FormatDirEntry", - "FormatFileInfo", - "Glob", - "GlobFS", - "ModeAppend", - "ModeCharDevice", - "ModeDevice", - "ModeDir", - "ModeExclusive", - "ModeIrregular", - "ModeNamedPipe", - "ModePerm", - "ModeSetgid", - "ModeSetuid", - "ModeSocket", - "ModeSticky", - "ModeSymlink", - "ModeTemporary", - "ModeType", - "PathError", - "ReadDir", - "ReadDirFS", - "ReadDirFile", - "ReadFile", - "ReadFileFS", - "SkipAll", - "SkipDir", - "Stat", - "StatFS", - "Sub", - "SubFS", - "ValidPath", - "WalkDir", - "WalkDirFunc", - }, - "io/ioutil": { - "Discard", - "NopCloser", - "ReadAll", - "ReadDir", - "ReadFile", - "TempDir", - "TempFile", - "WriteFile", - }, - "log": { - "Default", - "Fatal", - "Fatalf", - "Fatalln", - "Flags", - "LUTC", - "Ldate", - "Llongfile", - "Lmicroseconds", - "Lmsgprefix", - "Logger", - "Lshortfile", - "LstdFlags", - "Ltime", - "New", - "Output", - "Panic", - "Panicf", - "Panicln", - "Prefix", - "Print", - "Printf", - "Println", - "SetFlags", - "SetOutput", - "SetPrefix", - "Writer", - }, - "log/slog": { - "Any", - "AnyValue", - "Attr", - "Bool", - "BoolValue", - "Debug", - "DebugContext", - "Default", - "Duration", - "DurationValue", - "Error", - "ErrorContext", - "Float64", - "Float64Value", - "Group", - "GroupValue", - "Handler", - "HandlerOptions", - "Info", - "InfoContext", - "Int", - "Int64", - "Int64Value", - "IntValue", - "JSONHandler", - "Kind", - "KindAny", - "KindBool", - "KindDuration", - "KindFloat64", - "KindGroup", - "KindInt64", - "KindLogValuer", - "KindString", - "KindTime", - "KindUint64", - "Level", - "LevelDebug", - "LevelError", - "LevelInfo", - "LevelKey", - "LevelVar", - "LevelWarn", - "Leveler", - "Log", - "LogAttrs", - "LogValuer", - "Logger", - "MessageKey", - "New", - "NewJSONHandler", - "NewLogLogger", - "NewRecord", - "NewTextHandler", - "Record", - "SetDefault", - "Source", - "SourceKey", - "String", - "StringValue", - "TextHandler", - "Time", - "TimeKey", - "TimeValue", - "Uint64", - "Uint64Value", - "Value", - "Warn", - "WarnContext", - "With", - }, - "log/syslog": { - "Dial", - "LOG_ALERT", - "LOG_AUTH", - "LOG_AUTHPRIV", - "LOG_CRIT", - "LOG_CRON", - "LOG_DAEMON", - "LOG_DEBUG", - "LOG_EMERG", - "LOG_ERR", - "LOG_FTP", - "LOG_INFO", - "LOG_KERN", - "LOG_LOCAL0", - "LOG_LOCAL1", - "LOG_LOCAL2", - "LOG_LOCAL3", - "LOG_LOCAL4", - "LOG_LOCAL5", - "LOG_LOCAL6", - "LOG_LOCAL7", - "LOG_LPR", - "LOG_MAIL", - "LOG_NEWS", - "LOG_NOTICE", - "LOG_SYSLOG", - "LOG_USER", - "LOG_UUCP", - "LOG_WARNING", - "New", - "NewLogger", - "Priority", - "Writer", - }, - "maps": { - "Clone", - "Copy", - "DeleteFunc", - "Equal", - "EqualFunc", - }, - "math": { - "Abs", - "Acos", - "Acosh", - "Asin", - "Asinh", - "Atan", - "Atan2", - "Atanh", - "Cbrt", - "Ceil", - "Copysign", - "Cos", - "Cosh", - "Dim", - "E", - "Erf", - "Erfc", - "Erfcinv", - "Erfinv", - "Exp", - "Exp2", - "Expm1", - "FMA", - "Float32bits", - "Float32frombits", - "Float64bits", - "Float64frombits", - "Floor", - "Frexp", - "Gamma", - "Hypot", - "Ilogb", - "Inf", - "IsInf", - "IsNaN", - "J0", - "J1", - "Jn", - "Ldexp", - "Lgamma", - "Ln10", - "Ln2", - "Log", - "Log10", - "Log10E", - "Log1p", - "Log2", - "Log2E", - "Logb", - "Max", - "MaxFloat32", - "MaxFloat64", - "MaxInt", - "MaxInt16", - "MaxInt32", - "MaxInt64", - "MaxInt8", - "MaxUint", - "MaxUint16", - "MaxUint32", - "MaxUint64", - "MaxUint8", - "Min", - "MinInt", - "MinInt16", - "MinInt32", - "MinInt64", - "MinInt8", - "Mod", - "Modf", - "NaN", - "Nextafter", - "Nextafter32", - "Phi", - "Pi", - "Pow", - "Pow10", - "Remainder", - "Round", - "RoundToEven", - "Signbit", - "Sin", - "Sincos", - "Sinh", - "SmallestNonzeroFloat32", - "SmallestNonzeroFloat64", - "Sqrt", - "Sqrt2", - "SqrtE", - "SqrtPhi", - "SqrtPi", - "Tan", - "Tanh", - "Trunc", - "Y0", - "Y1", - "Yn", - }, - "math/big": { - "Above", - "Accuracy", - "AwayFromZero", - "Below", - "ErrNaN", - "Exact", - "Float", - "Int", - "Jacobi", - "MaxBase", - "MaxExp", - "MaxPrec", - "MinExp", - "NewFloat", - "NewInt", - "NewRat", - "ParseFloat", - "Rat", - "RoundingMode", - "ToNearestAway", - "ToNearestEven", - "ToNegativeInf", - "ToPositiveInf", - "ToZero", - "Word", - }, - "math/bits": { - "Add", - "Add32", - "Add64", - "Div", - "Div32", - "Div64", - "LeadingZeros", - "LeadingZeros16", - "LeadingZeros32", - "LeadingZeros64", - "LeadingZeros8", - "Len", - "Len16", - "Len32", - "Len64", - "Len8", - "Mul", - "Mul32", - "Mul64", - "OnesCount", - "OnesCount16", - "OnesCount32", - "OnesCount64", - "OnesCount8", - "Rem", - "Rem32", - "Rem64", - "Reverse", - "Reverse16", - "Reverse32", - "Reverse64", - "Reverse8", - "ReverseBytes", - "ReverseBytes16", - "ReverseBytes32", - "ReverseBytes64", - "RotateLeft", - "RotateLeft16", - "RotateLeft32", - "RotateLeft64", - "RotateLeft8", - "Sub", - "Sub32", - "Sub64", - "TrailingZeros", - "TrailingZeros16", - "TrailingZeros32", - "TrailingZeros64", - "TrailingZeros8", - "UintSize", - }, - "math/cmplx": { - "Abs", - "Acos", - "Acosh", - "Asin", - "Asinh", - "Atan", - "Atanh", - "Conj", - "Cos", - "Cosh", - "Cot", - "Exp", - "Inf", - "IsInf", - "IsNaN", - "Log", - "Log10", - "NaN", - "Phase", - "Polar", - "Pow", - "Rect", - "Sin", - "Sinh", - "Sqrt", - "Tan", - "Tanh", - }, - "math/rand": { - "ExpFloat64", - "Float32", - "Float64", - "Int", - "Int31", - "Int31n", - "Int63", - "Int63n", - "Intn", - "New", - "NewSource", - "NewZipf", - "NormFloat64", - "Perm", - "Rand", - "Read", - "Seed", - "Shuffle", - "Source", - "Source64", - "Uint32", - "Uint64", - "Zipf", - }, - "mime": { - "AddExtensionType", - "BEncoding", - "ErrInvalidMediaParameter", - "ExtensionsByType", - "FormatMediaType", - "ParseMediaType", - "QEncoding", - "TypeByExtension", - "WordDecoder", - "WordEncoder", - }, - "mime/multipart": { - "ErrMessageTooLarge", - "File", - "FileHeader", - "Form", - "NewReader", - "NewWriter", - "Part", - "Reader", - "Writer", - }, - "mime/quotedprintable": { - "NewReader", - "NewWriter", - "Reader", - "Writer", - }, - "net": { - "Addr", - "AddrError", - "Buffers", - "CIDRMask", - "Conn", - "DNSConfigError", - "DNSError", - "DefaultResolver", - "Dial", - "DialIP", - "DialTCP", - "DialTimeout", - "DialUDP", - "DialUnix", - "Dialer", - "ErrClosed", - "ErrWriteToConnected", - "Error", - "FileConn", - "FileListener", - "FilePacketConn", - "FlagBroadcast", - "FlagLoopback", - "FlagMulticast", - "FlagPointToPoint", - "FlagRunning", - "FlagUp", - "Flags", - "HardwareAddr", - "IP", - "IPAddr", - "IPConn", - "IPMask", - "IPNet", - "IPv4", - "IPv4Mask", - "IPv4allrouter", - "IPv4allsys", - "IPv4bcast", - "IPv4len", - "IPv4zero", - "IPv6interfacelocalallnodes", - "IPv6len", - "IPv6linklocalallnodes", - "IPv6linklocalallrouters", - "IPv6loopback", - "IPv6unspecified", - "IPv6zero", - "Interface", - "InterfaceAddrs", - "InterfaceByIndex", - "InterfaceByName", - "Interfaces", - "InvalidAddrError", - "JoinHostPort", - "Listen", - "ListenConfig", - "ListenIP", - "ListenMulticastUDP", - "ListenPacket", - "ListenTCP", - "ListenUDP", - "ListenUnix", - "ListenUnixgram", - "Listener", - "LookupAddr", - "LookupCNAME", - "LookupHost", - "LookupIP", - "LookupMX", - "LookupNS", - "LookupPort", - "LookupSRV", - "LookupTXT", - "MX", - "NS", - "OpError", - "PacketConn", - "ParseCIDR", - "ParseError", - "ParseIP", - "ParseMAC", - "Pipe", - "ResolveIPAddr", - "ResolveTCPAddr", - "ResolveUDPAddr", - "ResolveUnixAddr", - "Resolver", - "SRV", - "SplitHostPort", - "TCPAddr", - "TCPAddrFromAddrPort", - "TCPConn", - "TCPListener", - "UDPAddr", - "UDPAddrFromAddrPort", - "UDPConn", - "UnixAddr", - "UnixConn", - "UnixListener", - "UnknownNetworkError", - }, - "net/http": { - "AllowQuerySemicolons", - "CanonicalHeaderKey", - "Client", - "CloseNotifier", - "ConnState", - "Cookie", - "CookieJar", - "DefaultClient", - "DefaultMaxHeaderBytes", - "DefaultMaxIdleConnsPerHost", - "DefaultServeMux", - "DefaultTransport", - "DetectContentType", - "Dir", - "ErrAbortHandler", - "ErrBodyNotAllowed", - "ErrBodyReadAfterClose", - "ErrContentLength", - "ErrHandlerTimeout", - "ErrHeaderTooLong", - "ErrHijacked", - "ErrLineTooLong", - "ErrMissingBoundary", - "ErrMissingContentLength", - "ErrMissingFile", - "ErrNoCookie", - "ErrNoLocation", - "ErrNotMultipart", - "ErrNotSupported", - "ErrSchemeMismatch", - "ErrServerClosed", - "ErrShortBody", - "ErrSkipAltProtocol", - "ErrUnexpectedTrailer", - "ErrUseLastResponse", - "ErrWriteAfterFlush", - "Error", - "FS", - "File", - "FileServer", - "FileSystem", - "Flusher", - "Get", - "Handle", - "HandleFunc", - "Handler", - "HandlerFunc", - "Head", - "Header", - "Hijacker", - "ListenAndServe", - "ListenAndServeTLS", - "LocalAddrContextKey", - "MaxBytesError", - "MaxBytesHandler", - "MaxBytesReader", - "MethodConnect", - "MethodDelete", - "MethodGet", - "MethodHead", - "MethodOptions", - "MethodPatch", - "MethodPost", - "MethodPut", - "MethodTrace", - "NewFileTransport", - "NewRequest", - "NewRequestWithContext", - "NewResponseController", - "NewServeMux", - "NoBody", - "NotFound", - "NotFoundHandler", - "ParseHTTPVersion", - "ParseTime", - "Post", - "PostForm", - "ProtocolError", - "ProxyFromEnvironment", - "ProxyURL", - "PushOptions", - "Pusher", - "ReadRequest", - "ReadResponse", - "Redirect", - "RedirectHandler", - "Request", - "Response", - "ResponseController", - "ResponseWriter", - "RoundTripper", - "SameSite", - "SameSiteDefaultMode", - "SameSiteLaxMode", - "SameSiteNoneMode", - "SameSiteStrictMode", - "Serve", - "ServeContent", - "ServeFile", - "ServeMux", - "ServeTLS", - "Server", - "ServerContextKey", - "SetCookie", - "StateActive", - "StateClosed", - "StateHijacked", - "StateIdle", - "StateNew", - "StatusAccepted", - "StatusAlreadyReported", - "StatusBadGateway", - "StatusBadRequest", - "StatusConflict", - "StatusContinue", - "StatusCreated", - "StatusEarlyHints", - "StatusExpectationFailed", - "StatusFailedDependency", - "StatusForbidden", - "StatusFound", - "StatusGatewayTimeout", - "StatusGone", - "StatusHTTPVersionNotSupported", - "StatusIMUsed", - "StatusInsufficientStorage", - "StatusInternalServerError", - "StatusLengthRequired", - "StatusLocked", - "StatusLoopDetected", - "StatusMethodNotAllowed", - "StatusMisdirectedRequest", - "StatusMovedPermanently", - "StatusMultiStatus", - "StatusMultipleChoices", - "StatusNetworkAuthenticationRequired", - "StatusNoContent", - "StatusNonAuthoritativeInfo", - "StatusNotAcceptable", - "StatusNotExtended", - "StatusNotFound", - "StatusNotImplemented", - "StatusNotModified", - "StatusOK", - "StatusPartialContent", - "StatusPaymentRequired", - "StatusPermanentRedirect", - "StatusPreconditionFailed", - "StatusPreconditionRequired", - "StatusProcessing", - "StatusProxyAuthRequired", - "StatusRequestEntityTooLarge", - "StatusRequestHeaderFieldsTooLarge", - "StatusRequestTimeout", - "StatusRequestURITooLong", - "StatusRequestedRangeNotSatisfiable", - "StatusResetContent", - "StatusSeeOther", - "StatusServiceUnavailable", - "StatusSwitchingProtocols", - "StatusTeapot", - "StatusTemporaryRedirect", - "StatusText", - "StatusTooEarly", - "StatusTooManyRequests", - "StatusUnauthorized", - "StatusUnavailableForLegalReasons", - "StatusUnprocessableEntity", - "StatusUnsupportedMediaType", - "StatusUpgradeRequired", - "StatusUseProxy", - "StatusVariantAlsoNegotiates", - "StripPrefix", - "TimeFormat", - "TimeoutHandler", - "TrailerPrefix", - "Transport", - }, - "net/http/cgi": { - "Handler", - "Request", - "RequestFromMap", - "Serve", - }, - "net/http/cookiejar": { - "Jar", - "New", - "Options", - "PublicSuffixList", - }, - "net/http/fcgi": { - "ErrConnClosed", - "ErrRequestAborted", - "ProcessEnv", - "Serve", - }, - "net/http/httptest": { - "DefaultRemoteAddr", - "NewRecorder", - "NewRequest", - "NewServer", - "NewTLSServer", - "NewUnstartedServer", - "ResponseRecorder", - "Server", - }, - "net/http/httptrace": { - "ClientTrace", - "ContextClientTrace", - "DNSDoneInfo", - "DNSStartInfo", - "GotConnInfo", - "WithClientTrace", - "WroteRequestInfo", - }, - "net/http/httputil": { - "BufferPool", - "ClientConn", - "DumpRequest", - "DumpRequestOut", - "DumpResponse", - "ErrClosed", - "ErrLineTooLong", - "ErrPersistEOF", - "ErrPipeline", - "NewChunkedReader", - "NewChunkedWriter", - "NewClientConn", - "NewProxyClientConn", - "NewServerConn", - "NewSingleHostReverseProxy", - "ProxyRequest", - "ReverseProxy", - "ServerConn", - }, - "net/http/pprof": { - "Cmdline", - "Handler", - "Index", - "Profile", - "Symbol", - "Trace", - }, - "net/mail": { - "Address", - "AddressParser", - "ErrHeaderNotPresent", - "Header", - "Message", - "ParseAddress", - "ParseAddressList", - "ParseDate", - "ReadMessage", - }, - "net/netip": { - "Addr", - "AddrFrom16", - "AddrFrom4", - "AddrFromSlice", - "AddrPort", - "AddrPortFrom", - "IPv4Unspecified", - "IPv6LinkLocalAllNodes", - "IPv6LinkLocalAllRouters", - "IPv6Loopback", - "IPv6Unspecified", - "MustParseAddr", - "MustParseAddrPort", - "MustParsePrefix", - "ParseAddr", - "ParseAddrPort", - "ParsePrefix", - "Prefix", - "PrefixFrom", - }, - "net/rpc": { - "Accept", - "Call", - "Client", - "ClientCodec", - "DefaultDebugPath", - "DefaultRPCPath", - "DefaultServer", - "Dial", - "DialHTTP", - "DialHTTPPath", - "ErrShutdown", - "HandleHTTP", - "NewClient", - "NewClientWithCodec", - "NewServer", - "Register", - "RegisterName", - "Request", - "Response", - "ServeCodec", - "ServeConn", - "ServeRequest", - "Server", - "ServerCodec", - "ServerError", - }, - "net/rpc/jsonrpc": { - "Dial", - "NewClient", - "NewClientCodec", - "NewServerCodec", - "ServeConn", - }, - "net/smtp": { - "Auth", - "CRAMMD5Auth", - "Client", - "Dial", - "NewClient", - "PlainAuth", - "SendMail", - "ServerInfo", - }, - "net/textproto": { - "CanonicalMIMEHeaderKey", - "Conn", - "Dial", - "Error", - "MIMEHeader", - "NewConn", - "NewReader", - "NewWriter", - "Pipeline", - "ProtocolError", - "Reader", - "TrimBytes", - "TrimString", - "Writer", - }, - "net/url": { - "Error", - "EscapeError", - "InvalidHostError", - "JoinPath", - "Parse", - "ParseQuery", - "ParseRequestURI", - "PathEscape", - "PathUnescape", - "QueryEscape", - "QueryUnescape", - "URL", - "User", - "UserPassword", - "Userinfo", - "Values", - }, - "os": { - "Args", - "Chdir", - "Chmod", - "Chown", - "Chtimes", - "Clearenv", - "Create", - "CreateTemp", - "DevNull", - "DirEntry", - "DirFS", - "Environ", - "ErrClosed", - "ErrDeadlineExceeded", - "ErrExist", - "ErrInvalid", - "ErrNoDeadline", - "ErrNotExist", - "ErrPermission", - "ErrProcessDone", - "Executable", - "Exit", - "Expand", - "ExpandEnv", - "File", - "FileInfo", - "FileMode", - "FindProcess", - "Getegid", - "Getenv", - "Geteuid", - "Getgid", - "Getgroups", - "Getpagesize", - "Getpid", - "Getppid", - "Getuid", - "Getwd", - "Hostname", - "Interrupt", - "IsExist", - "IsNotExist", - "IsPathSeparator", - "IsPermission", - "IsTimeout", - "Kill", - "Lchown", - "Link", - "LinkError", - "LookupEnv", - "Lstat", - "Mkdir", - "MkdirAll", - "MkdirTemp", - "ModeAppend", - "ModeCharDevice", - "ModeDevice", - "ModeDir", - "ModeExclusive", - "ModeIrregular", - "ModeNamedPipe", - "ModePerm", - "ModeSetgid", - "ModeSetuid", - "ModeSocket", - "ModeSticky", - "ModeSymlink", - "ModeTemporary", - "ModeType", - "NewFile", - "NewSyscallError", - "O_APPEND", - "O_CREATE", - "O_EXCL", - "O_RDONLY", - "O_RDWR", - "O_SYNC", - "O_TRUNC", - "O_WRONLY", - "Open", - "OpenFile", - "PathError", - "PathListSeparator", - "PathSeparator", - "Pipe", - "ProcAttr", - "Process", - "ProcessState", - "ReadDir", - "ReadFile", - "Readlink", - "Remove", - "RemoveAll", - "Rename", - "SEEK_CUR", - "SEEK_END", - "SEEK_SET", - "SameFile", - "Setenv", - "Signal", - "StartProcess", - "Stat", - "Stderr", - "Stdin", - "Stdout", - "Symlink", - "SyscallError", - "TempDir", - "Truncate", - "Unsetenv", - "UserCacheDir", - "UserConfigDir", - "UserHomeDir", - "WriteFile", - }, - "os/exec": { - "Cmd", - "Command", - "CommandContext", - "ErrDot", - "ErrNotFound", - "ErrWaitDelay", - "Error", - "ExitError", - "LookPath", - }, - "os/signal": { - "Ignore", - "Ignored", - "Notify", - "NotifyContext", - "Reset", - "Stop", - }, - "os/user": { - "Current", - "Group", - "Lookup", - "LookupGroup", - "LookupGroupId", - "LookupId", - "UnknownGroupError", - "UnknownGroupIdError", - "UnknownUserError", - "UnknownUserIdError", - "User", - }, - "path": { - "Base", - "Clean", - "Dir", - "ErrBadPattern", - "Ext", - "IsAbs", - "Join", - "Match", - "Split", - }, - "path/filepath": { - "Abs", - "Base", - "Clean", - "Dir", - "ErrBadPattern", - "EvalSymlinks", - "Ext", - "FromSlash", - "Glob", - "HasPrefix", - "IsAbs", - "IsLocal", - "Join", - "ListSeparator", - "Match", - "Rel", - "Separator", - "SkipAll", - "SkipDir", - "Split", - "SplitList", - "ToSlash", - "VolumeName", - "Walk", - "WalkDir", - "WalkFunc", - }, - "plugin": { - "Open", - "Plugin", - "Symbol", - }, - "reflect": { - "Append", - "AppendSlice", - "Array", - "ArrayOf", - "Bool", - "BothDir", - "Chan", - "ChanDir", - "ChanOf", - "Complex128", - "Complex64", - "Copy", - "DeepEqual", - "Float32", - "Float64", - "Func", - "FuncOf", - "Indirect", - "Int", - "Int16", - "Int32", - "Int64", - "Int8", - "Interface", - "Invalid", - "Kind", - "MakeChan", - "MakeFunc", - "MakeMap", - "MakeMapWithSize", - "MakeSlice", - "Map", - "MapIter", - "MapOf", - "Method", - "New", - "NewAt", - "Pointer", - "PointerTo", - "Ptr", - "PtrTo", - "RecvDir", - "Select", - "SelectCase", - "SelectDefault", - "SelectDir", - "SelectRecv", - "SelectSend", - "SendDir", - "Slice", - "SliceHeader", - "SliceOf", - "String", - "StringHeader", - "Struct", - "StructField", - "StructOf", - "StructTag", - "Swapper", - "Type", - "TypeOf", - "Uint", - "Uint16", - "Uint32", - "Uint64", - "Uint8", - "Uintptr", - "UnsafePointer", - "Value", - "ValueError", - "ValueOf", - "VisibleFields", - "Zero", - }, - "regexp": { - "Compile", - "CompilePOSIX", - "Match", - "MatchReader", - "MatchString", - "MustCompile", - "MustCompilePOSIX", - "QuoteMeta", - "Regexp", - }, - "regexp/syntax": { - "ClassNL", - "Compile", - "DotNL", - "EmptyBeginLine", - "EmptyBeginText", - "EmptyEndLine", - "EmptyEndText", - "EmptyNoWordBoundary", - "EmptyOp", - "EmptyOpContext", - "EmptyWordBoundary", - "ErrInternalError", - "ErrInvalidCharClass", - "ErrInvalidCharRange", - "ErrInvalidEscape", - "ErrInvalidNamedCapture", - "ErrInvalidPerlOp", - "ErrInvalidRepeatOp", - "ErrInvalidRepeatSize", - "ErrInvalidUTF8", - "ErrLarge", - "ErrMissingBracket", - "ErrMissingParen", - "ErrMissingRepeatArgument", - "ErrNestingDepth", - "ErrTrailingBackslash", - "ErrUnexpectedParen", - "Error", - "ErrorCode", - "Flags", - "FoldCase", - "Inst", - "InstAlt", - "InstAltMatch", - "InstCapture", - "InstEmptyWidth", - "InstFail", - "InstMatch", - "InstNop", - "InstOp", - "InstRune", - "InstRune1", - "InstRuneAny", - "InstRuneAnyNotNL", - "IsWordChar", - "Literal", - "MatchNL", - "NonGreedy", - "OneLine", - "Op", - "OpAlternate", - "OpAnyChar", - "OpAnyCharNotNL", - "OpBeginLine", - "OpBeginText", - "OpCapture", - "OpCharClass", - "OpConcat", - "OpEmptyMatch", - "OpEndLine", - "OpEndText", - "OpLiteral", - "OpNoMatch", - "OpNoWordBoundary", - "OpPlus", - "OpQuest", - "OpRepeat", - "OpStar", - "OpWordBoundary", - "POSIX", - "Parse", - "Perl", - "PerlX", - "Prog", - "Regexp", - "Simple", - "UnicodeGroups", - "WasDollar", - }, - "runtime": { - "BlockProfile", - "BlockProfileRecord", - "Breakpoint", - "CPUProfile", - "Caller", - "Callers", - "CallersFrames", - "Compiler", - "Error", - "Frame", - "Frames", - "Func", - "FuncForPC", - "GC", - "GOARCH", - "GOMAXPROCS", - "GOOS", - "GOROOT", - "Goexit", - "GoroutineProfile", - "Gosched", - "KeepAlive", - "LockOSThread", - "MemProfile", - "MemProfileRate", - "MemProfileRecord", - "MemStats", - "MutexProfile", - "NumCPU", - "NumCgoCall", - "NumGoroutine", - "PanicNilError", - "Pinner", - "ReadMemStats", - "ReadTrace", - "SetBlockProfileRate", - "SetCPUProfileRate", - "SetCgoTraceback", - "SetFinalizer", - "SetMutexProfileFraction", - "Stack", - "StackRecord", - "StartTrace", - "StopTrace", - "ThreadCreateProfile", - "TypeAssertionError", - "UnlockOSThread", - "Version", - }, - "runtime/cgo": { - "Handle", - "Incomplete", - "NewHandle", - }, - "runtime/coverage": { - "ClearCounters", - "WriteCounters", - "WriteCountersDir", - "WriteMeta", - "WriteMetaDir", - }, - "runtime/debug": { - "BuildInfo", - "BuildSetting", - "FreeOSMemory", - "GCStats", - "Module", - "ParseBuildInfo", - "PrintStack", - "ReadBuildInfo", - "ReadGCStats", - "SetGCPercent", - "SetMaxStack", - "SetMaxThreads", - "SetMemoryLimit", - "SetPanicOnFault", - "SetTraceback", - "Stack", - "WriteHeapDump", - }, - "runtime/metrics": { - "All", - "Description", - "Float64Histogram", - "KindBad", - "KindFloat64", - "KindFloat64Histogram", - "KindUint64", - "Read", - "Sample", - "Value", - "ValueKind", - }, - "runtime/pprof": { - "Do", - "ForLabels", - "Label", - "LabelSet", - "Labels", - "Lookup", - "NewProfile", - "Profile", - "Profiles", - "SetGoroutineLabels", - "StartCPUProfile", - "StopCPUProfile", - "WithLabels", - "WriteHeapProfile", - }, - "runtime/trace": { - "IsEnabled", - "Log", - "Logf", - "NewTask", - "Region", - "Start", - "StartRegion", - "Stop", - "Task", - "WithRegion", - }, - "slices": { - "BinarySearch", - "BinarySearchFunc", - "Clip", - "Clone", - "Compact", - "CompactFunc", - "Compare", - "CompareFunc", - "Contains", - "ContainsFunc", - "Delete", - "DeleteFunc", - "Equal", - "EqualFunc", - "Grow", - "Index", - "IndexFunc", - "Insert", - "IsSorted", - "IsSortedFunc", - "Max", - "MaxFunc", - "Min", - "MinFunc", - "Replace", - "Reverse", - "Sort", - "SortFunc", - "SortStableFunc", - }, - "sort": { - "Find", - "Float64Slice", - "Float64s", - "Float64sAreSorted", - "IntSlice", - "Interface", - "Ints", - "IntsAreSorted", - "IsSorted", - "Reverse", - "Search", - "SearchFloat64s", - "SearchInts", - "SearchStrings", - "Slice", - "SliceIsSorted", - "SliceStable", - "Sort", - "Stable", - "StringSlice", - "Strings", - "StringsAreSorted", - }, - "strconv": { - "AppendBool", - "AppendFloat", - "AppendInt", - "AppendQuote", - "AppendQuoteRune", - "AppendQuoteRuneToASCII", - "AppendQuoteRuneToGraphic", - "AppendQuoteToASCII", - "AppendQuoteToGraphic", - "AppendUint", - "Atoi", - "CanBackquote", - "ErrRange", - "ErrSyntax", - "FormatBool", - "FormatComplex", - "FormatFloat", - "FormatInt", - "FormatUint", - "IntSize", - "IsGraphic", - "IsPrint", - "Itoa", - "NumError", - "ParseBool", - "ParseComplex", - "ParseFloat", - "ParseInt", - "ParseUint", - "Quote", - "QuoteRune", - "QuoteRuneToASCII", - "QuoteRuneToGraphic", - "QuoteToASCII", - "QuoteToGraphic", - "QuotedPrefix", - "Unquote", - "UnquoteChar", - }, - "strings": { - "Builder", - "Clone", - "Compare", - "Contains", - "ContainsAny", - "ContainsFunc", - "ContainsRune", - "Count", - "Cut", - "CutPrefix", - "CutSuffix", - "EqualFold", - "Fields", - "FieldsFunc", - "HasPrefix", - "HasSuffix", - "Index", - "IndexAny", - "IndexByte", - "IndexFunc", - "IndexRune", - "Join", - "LastIndex", - "LastIndexAny", - "LastIndexByte", - "LastIndexFunc", - "Map", - "NewReader", - "NewReplacer", - "Reader", - "Repeat", - "Replace", - "ReplaceAll", - "Replacer", - "Split", - "SplitAfter", - "SplitAfterN", - "SplitN", - "Title", - "ToLower", - "ToLowerSpecial", - "ToTitle", - "ToTitleSpecial", - "ToUpper", - "ToUpperSpecial", - "ToValidUTF8", - "Trim", - "TrimFunc", - "TrimLeft", - "TrimLeftFunc", - "TrimPrefix", - "TrimRight", - "TrimRightFunc", - "TrimSpace", - "TrimSuffix", - }, - "sync": { - "Cond", - "Locker", - "Map", - "Mutex", - "NewCond", - "Once", - "OnceFunc", - "OnceValue", - "OnceValues", - "Pool", - "RWMutex", - "WaitGroup", - }, - "sync/atomic": { - "AddInt32", - "AddInt64", - "AddUint32", - "AddUint64", - "AddUintptr", - "Bool", - "CompareAndSwapInt32", - "CompareAndSwapInt64", - "CompareAndSwapPointer", - "CompareAndSwapUint32", - "CompareAndSwapUint64", - "CompareAndSwapUintptr", - "Int32", - "Int64", - "LoadInt32", - "LoadInt64", - "LoadPointer", - "LoadUint32", - "LoadUint64", - "LoadUintptr", - "Pointer", - "StoreInt32", - "StoreInt64", - "StorePointer", - "StoreUint32", - "StoreUint64", - "StoreUintptr", - "SwapInt32", - "SwapInt64", - "SwapPointer", - "SwapUint32", - "SwapUint64", - "SwapUintptr", - "Uint32", - "Uint64", - "Uintptr", - "Value", - }, - "syscall": { - "AF_ALG", - "AF_APPLETALK", - "AF_ARP", - "AF_ASH", - "AF_ATM", - "AF_ATMPVC", - "AF_ATMSVC", - "AF_AX25", - "AF_BLUETOOTH", - "AF_BRIDGE", - "AF_CAIF", - "AF_CAN", - "AF_CCITT", - "AF_CHAOS", - "AF_CNT", - "AF_COIP", - "AF_DATAKIT", - "AF_DECnet", - "AF_DLI", - "AF_E164", - "AF_ECMA", - "AF_ECONET", - "AF_ENCAP", - "AF_FILE", - "AF_HYLINK", - "AF_IEEE80211", - "AF_IEEE802154", - "AF_IMPLINK", - "AF_INET", - "AF_INET6", - "AF_INET6_SDP", - "AF_INET_SDP", - "AF_IPX", - "AF_IRDA", - "AF_ISDN", - "AF_ISO", - "AF_IUCV", - "AF_KEY", - "AF_LAT", - "AF_LINK", - "AF_LLC", - "AF_LOCAL", - "AF_MAX", - "AF_MPLS", - "AF_NATM", - "AF_NDRV", - "AF_NETBEUI", - "AF_NETBIOS", - "AF_NETGRAPH", - "AF_NETLINK", - "AF_NETROM", - "AF_NS", - "AF_OROUTE", - "AF_OSI", - "AF_PACKET", - "AF_PHONET", - "AF_PPP", - "AF_PPPOX", - "AF_PUP", - "AF_RDS", - "AF_RESERVED_36", - "AF_ROSE", - "AF_ROUTE", - "AF_RXRPC", - "AF_SCLUSTER", - "AF_SECURITY", - "AF_SIP", - "AF_SLOW", - "AF_SNA", - "AF_SYSTEM", - "AF_TIPC", - "AF_UNIX", - "AF_UNSPEC", - "AF_UTUN", - "AF_VENDOR00", - "AF_VENDOR01", - "AF_VENDOR02", - "AF_VENDOR03", - "AF_VENDOR04", - "AF_VENDOR05", - "AF_VENDOR06", - "AF_VENDOR07", - "AF_VENDOR08", - "AF_VENDOR09", - "AF_VENDOR10", - "AF_VENDOR11", - "AF_VENDOR12", - "AF_VENDOR13", - "AF_VENDOR14", - "AF_VENDOR15", - "AF_VENDOR16", - "AF_VENDOR17", - "AF_VENDOR18", - "AF_VENDOR19", - "AF_VENDOR20", - "AF_VENDOR21", - "AF_VENDOR22", - "AF_VENDOR23", - "AF_VENDOR24", - "AF_VENDOR25", - "AF_VENDOR26", - "AF_VENDOR27", - "AF_VENDOR28", - "AF_VENDOR29", - "AF_VENDOR30", - "AF_VENDOR31", - "AF_VENDOR32", - "AF_VENDOR33", - "AF_VENDOR34", - "AF_VENDOR35", - "AF_VENDOR36", - "AF_VENDOR37", - "AF_VENDOR38", - "AF_VENDOR39", - "AF_VENDOR40", - "AF_VENDOR41", - "AF_VENDOR42", - "AF_VENDOR43", - "AF_VENDOR44", - "AF_VENDOR45", - "AF_VENDOR46", - "AF_VENDOR47", - "AF_WANPIPE", - "AF_X25", - "AI_CANONNAME", - "AI_NUMERICHOST", - "AI_PASSIVE", - "APPLICATION_ERROR", - "ARPHRD_ADAPT", - "ARPHRD_APPLETLK", - "ARPHRD_ARCNET", - "ARPHRD_ASH", - "ARPHRD_ATM", - "ARPHRD_AX25", - "ARPHRD_BIF", - "ARPHRD_CHAOS", - "ARPHRD_CISCO", - "ARPHRD_CSLIP", - "ARPHRD_CSLIP6", - "ARPHRD_DDCMP", - "ARPHRD_DLCI", - "ARPHRD_ECONET", - "ARPHRD_EETHER", - "ARPHRD_ETHER", - "ARPHRD_EUI64", - "ARPHRD_FCAL", - "ARPHRD_FCFABRIC", - "ARPHRD_FCPL", - "ARPHRD_FCPP", - "ARPHRD_FDDI", - "ARPHRD_FRAD", - "ARPHRD_FRELAY", - "ARPHRD_HDLC", - "ARPHRD_HIPPI", - "ARPHRD_HWX25", - "ARPHRD_IEEE1394", - "ARPHRD_IEEE802", - "ARPHRD_IEEE80211", - "ARPHRD_IEEE80211_PRISM", - "ARPHRD_IEEE80211_RADIOTAP", - "ARPHRD_IEEE802154", - "ARPHRD_IEEE802154_PHY", - "ARPHRD_IEEE802_TR", - "ARPHRD_INFINIBAND", - "ARPHRD_IPDDP", - "ARPHRD_IPGRE", - "ARPHRD_IRDA", - "ARPHRD_LAPB", - "ARPHRD_LOCALTLK", - "ARPHRD_LOOPBACK", - "ARPHRD_METRICOM", - "ARPHRD_NETROM", - "ARPHRD_NONE", - "ARPHRD_PIMREG", - "ARPHRD_PPP", - "ARPHRD_PRONET", - "ARPHRD_RAWHDLC", - "ARPHRD_ROSE", - "ARPHRD_RSRVD", - "ARPHRD_SIT", - "ARPHRD_SKIP", - "ARPHRD_SLIP", - "ARPHRD_SLIP6", - "ARPHRD_STRIP", - "ARPHRD_TUNNEL", - "ARPHRD_TUNNEL6", - "ARPHRD_VOID", - "ARPHRD_X25", - "AUTHTYPE_CLIENT", - "AUTHTYPE_SERVER", - "Accept", - "Accept4", - "AcceptEx", - "Access", - "Acct", - "AddrinfoW", - "Adjtime", - "Adjtimex", - "AllThreadsSyscall", - "AllThreadsSyscall6", - "AttachLsf", - "B0", - "B1000000", - "B110", - "B115200", - "B1152000", - "B1200", - "B134", - "B14400", - "B150", - "B1500000", - "B1800", - "B19200", - "B200", - "B2000000", - "B230400", - "B2400", - "B2500000", - "B28800", - "B300", - "B3000000", - "B3500000", - "B38400", - "B4000000", - "B460800", - "B4800", - "B50", - "B500000", - "B57600", - "B576000", - "B600", - "B7200", - "B75", - "B76800", - "B921600", - "B9600", - "BASE_PROTOCOL", - "BIOCFEEDBACK", - "BIOCFLUSH", - "BIOCGBLEN", - "BIOCGDIRECTION", - "BIOCGDIRFILT", - "BIOCGDLT", - "BIOCGDLTLIST", - "BIOCGETBUFMODE", - "BIOCGETIF", - "BIOCGETZMAX", - "BIOCGFEEDBACK", - "BIOCGFILDROP", - "BIOCGHDRCMPLT", - "BIOCGRSIG", - "BIOCGRTIMEOUT", - "BIOCGSEESENT", - "BIOCGSTATS", - "BIOCGSTATSOLD", - "BIOCGTSTAMP", - "BIOCIMMEDIATE", - "BIOCLOCK", - "BIOCPROMISC", - "BIOCROTZBUF", - "BIOCSBLEN", - "BIOCSDIRECTION", - "BIOCSDIRFILT", - "BIOCSDLT", - "BIOCSETBUFMODE", - "BIOCSETF", - "BIOCSETFNR", - "BIOCSETIF", - "BIOCSETWF", - "BIOCSETZBUF", - "BIOCSFEEDBACK", - "BIOCSFILDROP", - "BIOCSHDRCMPLT", - "BIOCSRSIG", - "BIOCSRTIMEOUT", - "BIOCSSEESENT", - "BIOCSTCPF", - "BIOCSTSTAMP", - "BIOCSUDPF", - "BIOCVERSION", - "BPF_A", - "BPF_ABS", - "BPF_ADD", - "BPF_ALIGNMENT", - "BPF_ALIGNMENT32", - "BPF_ALU", - "BPF_AND", - "BPF_B", - "BPF_BUFMODE_BUFFER", - "BPF_BUFMODE_ZBUF", - "BPF_DFLTBUFSIZE", - "BPF_DIRECTION_IN", - "BPF_DIRECTION_OUT", - "BPF_DIV", - "BPF_H", - "BPF_IMM", - "BPF_IND", - "BPF_JA", - "BPF_JEQ", - "BPF_JGE", - "BPF_JGT", - "BPF_JMP", - "BPF_JSET", - "BPF_K", - "BPF_LD", - "BPF_LDX", - "BPF_LEN", - "BPF_LSH", - "BPF_MAJOR_VERSION", - "BPF_MAXBUFSIZE", - "BPF_MAXINSNS", - "BPF_MEM", - "BPF_MEMWORDS", - "BPF_MINBUFSIZE", - "BPF_MINOR_VERSION", - "BPF_MISC", - "BPF_MSH", - "BPF_MUL", - "BPF_NEG", - "BPF_OR", - "BPF_RELEASE", - "BPF_RET", - "BPF_RSH", - "BPF_ST", - "BPF_STX", - "BPF_SUB", - "BPF_TAX", - "BPF_TXA", - "BPF_T_BINTIME", - "BPF_T_BINTIME_FAST", - "BPF_T_BINTIME_MONOTONIC", - "BPF_T_BINTIME_MONOTONIC_FAST", - "BPF_T_FAST", - "BPF_T_FLAG_MASK", - "BPF_T_FORMAT_MASK", - "BPF_T_MICROTIME", - "BPF_T_MICROTIME_FAST", - "BPF_T_MICROTIME_MONOTONIC", - "BPF_T_MICROTIME_MONOTONIC_FAST", - "BPF_T_MONOTONIC", - "BPF_T_MONOTONIC_FAST", - "BPF_T_NANOTIME", - "BPF_T_NANOTIME_FAST", - "BPF_T_NANOTIME_MONOTONIC", - "BPF_T_NANOTIME_MONOTONIC_FAST", - "BPF_T_NONE", - "BPF_T_NORMAL", - "BPF_W", - "BPF_X", - "BRKINT", - "Bind", - "BindToDevice", - "BpfBuflen", - "BpfDatalink", - "BpfHdr", - "BpfHeadercmpl", - "BpfInsn", - "BpfInterface", - "BpfJump", - "BpfProgram", - "BpfStat", - "BpfStats", - "BpfStmt", - "BpfTimeout", - "BpfTimeval", - "BpfVersion", - "BpfZbuf", - "BpfZbufHeader", - "ByHandleFileInformation", - "BytePtrFromString", - "ByteSliceFromString", - "CCR0_FLUSH", - "CERT_CHAIN_POLICY_AUTHENTICODE", - "CERT_CHAIN_POLICY_AUTHENTICODE_TS", - "CERT_CHAIN_POLICY_BASE", - "CERT_CHAIN_POLICY_BASIC_CONSTRAINTS", - "CERT_CHAIN_POLICY_EV", - "CERT_CHAIN_POLICY_MICROSOFT_ROOT", - "CERT_CHAIN_POLICY_NT_AUTH", - "CERT_CHAIN_POLICY_SSL", - "CERT_E_CN_NO_MATCH", - "CERT_E_EXPIRED", - "CERT_E_PURPOSE", - "CERT_E_ROLE", - "CERT_E_UNTRUSTEDROOT", - "CERT_STORE_ADD_ALWAYS", - "CERT_STORE_DEFER_CLOSE_UNTIL_LAST_FREE_FLAG", - "CERT_STORE_PROV_MEMORY", - "CERT_TRUST_HAS_EXCLUDED_NAME_CONSTRAINT", - "CERT_TRUST_HAS_NOT_DEFINED_NAME_CONSTRAINT", - "CERT_TRUST_HAS_NOT_PERMITTED_NAME_CONSTRAINT", - "CERT_TRUST_HAS_NOT_SUPPORTED_CRITICAL_EXT", - "CERT_TRUST_HAS_NOT_SUPPORTED_NAME_CONSTRAINT", - "CERT_TRUST_INVALID_BASIC_CONSTRAINTS", - "CERT_TRUST_INVALID_EXTENSION", - "CERT_TRUST_INVALID_NAME_CONSTRAINTS", - "CERT_TRUST_INVALID_POLICY_CONSTRAINTS", - "CERT_TRUST_IS_CYCLIC", - "CERT_TRUST_IS_EXPLICIT_DISTRUST", - "CERT_TRUST_IS_NOT_SIGNATURE_VALID", - "CERT_TRUST_IS_NOT_TIME_VALID", - "CERT_TRUST_IS_NOT_VALID_FOR_USAGE", - "CERT_TRUST_IS_OFFLINE_REVOCATION", - "CERT_TRUST_IS_REVOKED", - "CERT_TRUST_IS_UNTRUSTED_ROOT", - "CERT_TRUST_NO_ERROR", - "CERT_TRUST_NO_ISSUANCE_CHAIN_POLICY", - "CERT_TRUST_REVOCATION_STATUS_UNKNOWN", - "CFLUSH", - "CLOCAL", - "CLONE_CHILD_CLEARTID", - "CLONE_CHILD_SETTID", - "CLONE_CLEAR_SIGHAND", - "CLONE_CSIGNAL", - "CLONE_DETACHED", - "CLONE_FILES", - "CLONE_FS", - "CLONE_INTO_CGROUP", - "CLONE_IO", - "CLONE_NEWCGROUP", - "CLONE_NEWIPC", - "CLONE_NEWNET", - "CLONE_NEWNS", - "CLONE_NEWPID", - "CLONE_NEWTIME", - "CLONE_NEWUSER", - "CLONE_NEWUTS", - "CLONE_PARENT", - "CLONE_PARENT_SETTID", - "CLONE_PID", - "CLONE_PIDFD", - "CLONE_PTRACE", - "CLONE_SETTLS", - "CLONE_SIGHAND", - "CLONE_SYSVSEM", - "CLONE_THREAD", - "CLONE_UNTRACED", - "CLONE_VFORK", - "CLONE_VM", - "CPUID_CFLUSH", - "CREAD", - "CREATE_ALWAYS", - "CREATE_NEW", - "CREATE_NEW_PROCESS_GROUP", - "CREATE_UNICODE_ENVIRONMENT", - "CRYPT_DEFAULT_CONTAINER_OPTIONAL", - "CRYPT_DELETEKEYSET", - "CRYPT_MACHINE_KEYSET", - "CRYPT_NEWKEYSET", - "CRYPT_SILENT", - "CRYPT_VERIFYCONTEXT", - "CS5", - "CS6", - "CS7", - "CS8", - "CSIZE", - "CSTART", - "CSTATUS", - "CSTOP", - "CSTOPB", - "CSUSP", - "CTL_MAXNAME", - "CTL_NET", - "CTL_QUERY", - "CTRL_BREAK_EVENT", - "CTRL_CLOSE_EVENT", - "CTRL_C_EVENT", - "CTRL_LOGOFF_EVENT", - "CTRL_SHUTDOWN_EVENT", - "CancelIo", - "CancelIoEx", - "CertAddCertificateContextToStore", - "CertChainContext", - "CertChainElement", - "CertChainPara", - "CertChainPolicyPara", - "CertChainPolicyStatus", - "CertCloseStore", - "CertContext", - "CertCreateCertificateContext", - "CertEnhKeyUsage", - "CertEnumCertificatesInStore", - "CertFreeCertificateChain", - "CertFreeCertificateContext", - "CertGetCertificateChain", - "CertInfo", - "CertOpenStore", - "CertOpenSystemStore", - "CertRevocationCrlInfo", - "CertRevocationInfo", - "CertSimpleChain", - "CertTrustListInfo", - "CertTrustStatus", - "CertUsageMatch", - "CertVerifyCertificateChainPolicy", - "Chdir", - "CheckBpfVersion", - "Chflags", - "Chmod", - "Chown", - "Chroot", - "Clearenv", - "Close", - "CloseHandle", - "CloseOnExec", - "Closesocket", - "CmsgLen", - "CmsgSpace", - "Cmsghdr", - "CommandLineToArgv", - "ComputerName", - "Conn", - "Connect", - "ConnectEx", - "ConvertSidToStringSid", - "ConvertStringSidToSid", - "CopySid", - "Creat", - "CreateDirectory", - "CreateFile", - "CreateFileMapping", - "CreateHardLink", - "CreateIoCompletionPort", - "CreatePipe", - "CreateProcess", - "CreateProcessAsUser", - "CreateSymbolicLink", - "CreateToolhelp32Snapshot", - "Credential", - "CryptAcquireContext", - "CryptGenRandom", - "CryptReleaseContext", - "DIOCBSFLUSH", - "DIOCOSFPFLUSH", - "DLL", - "DLLError", - "DLT_A429", - "DLT_A653_ICM", - "DLT_AIRONET_HEADER", - "DLT_AOS", - "DLT_APPLE_IP_OVER_IEEE1394", - "DLT_ARCNET", - "DLT_ARCNET_LINUX", - "DLT_ATM_CLIP", - "DLT_ATM_RFC1483", - "DLT_AURORA", - "DLT_AX25", - "DLT_AX25_KISS", - "DLT_BACNET_MS_TP", - "DLT_BLUETOOTH_HCI_H4", - "DLT_BLUETOOTH_HCI_H4_WITH_PHDR", - "DLT_CAN20B", - "DLT_CAN_SOCKETCAN", - "DLT_CHAOS", - "DLT_CHDLC", - "DLT_CISCO_IOS", - "DLT_C_HDLC", - "DLT_C_HDLC_WITH_DIR", - "DLT_DBUS", - "DLT_DECT", - "DLT_DOCSIS", - "DLT_DVB_CI", - "DLT_ECONET", - "DLT_EN10MB", - "DLT_EN3MB", - "DLT_ENC", - "DLT_ERF", - "DLT_ERF_ETH", - "DLT_ERF_POS", - "DLT_FC_2", - "DLT_FC_2_WITH_FRAME_DELIMS", - "DLT_FDDI", - "DLT_FLEXRAY", - "DLT_FRELAY", - "DLT_FRELAY_WITH_DIR", - "DLT_GCOM_SERIAL", - "DLT_GCOM_T1E1", - "DLT_GPF_F", - "DLT_GPF_T", - "DLT_GPRS_LLC", - "DLT_GSMTAP_ABIS", - "DLT_GSMTAP_UM", - "DLT_HDLC", - "DLT_HHDLC", - "DLT_HIPPI", - "DLT_IBM_SN", - "DLT_IBM_SP", - "DLT_IEEE802", - "DLT_IEEE802_11", - "DLT_IEEE802_11_RADIO", - "DLT_IEEE802_11_RADIO_AVS", - "DLT_IEEE802_15_4", - "DLT_IEEE802_15_4_LINUX", - "DLT_IEEE802_15_4_NOFCS", - "DLT_IEEE802_15_4_NONASK_PHY", - "DLT_IEEE802_16_MAC_CPS", - "DLT_IEEE802_16_MAC_CPS_RADIO", - "DLT_IPFILTER", - "DLT_IPMB", - "DLT_IPMB_LINUX", - "DLT_IPNET", - "DLT_IPOIB", - "DLT_IPV4", - "DLT_IPV6", - "DLT_IP_OVER_FC", - "DLT_JUNIPER_ATM1", - "DLT_JUNIPER_ATM2", - "DLT_JUNIPER_ATM_CEMIC", - "DLT_JUNIPER_CHDLC", - "DLT_JUNIPER_ES", - "DLT_JUNIPER_ETHER", - "DLT_JUNIPER_FIBRECHANNEL", - "DLT_JUNIPER_FRELAY", - "DLT_JUNIPER_GGSN", - "DLT_JUNIPER_ISM", - "DLT_JUNIPER_MFR", - "DLT_JUNIPER_MLFR", - "DLT_JUNIPER_MLPPP", - "DLT_JUNIPER_MONITOR", - "DLT_JUNIPER_PIC_PEER", - "DLT_JUNIPER_PPP", - "DLT_JUNIPER_PPPOE", - "DLT_JUNIPER_PPPOE_ATM", - "DLT_JUNIPER_SERVICES", - "DLT_JUNIPER_SRX_E2E", - "DLT_JUNIPER_ST", - "DLT_JUNIPER_VP", - "DLT_JUNIPER_VS", - "DLT_LAPB_WITH_DIR", - "DLT_LAPD", - "DLT_LIN", - "DLT_LINUX_EVDEV", - "DLT_LINUX_IRDA", - "DLT_LINUX_LAPD", - "DLT_LINUX_PPP_WITHDIRECTION", - "DLT_LINUX_SLL", - "DLT_LOOP", - "DLT_LTALK", - "DLT_MATCHING_MAX", - "DLT_MATCHING_MIN", - "DLT_MFR", - "DLT_MOST", - "DLT_MPEG_2_TS", - "DLT_MPLS", - "DLT_MTP2", - "DLT_MTP2_WITH_PHDR", - "DLT_MTP3", - "DLT_MUX27010", - "DLT_NETANALYZER", - "DLT_NETANALYZER_TRANSPARENT", - "DLT_NFC_LLCP", - "DLT_NFLOG", - "DLT_NG40", - "DLT_NULL", - "DLT_PCI_EXP", - "DLT_PFLOG", - "DLT_PFSYNC", - "DLT_PPI", - "DLT_PPP", - "DLT_PPP_BSDOS", - "DLT_PPP_ETHER", - "DLT_PPP_PPPD", - "DLT_PPP_SERIAL", - "DLT_PPP_WITH_DIR", - "DLT_PPP_WITH_DIRECTION", - "DLT_PRISM_HEADER", - "DLT_PRONET", - "DLT_RAIF1", - "DLT_RAW", - "DLT_RAWAF_MASK", - "DLT_RIO", - "DLT_SCCP", - "DLT_SITA", - "DLT_SLIP", - "DLT_SLIP_BSDOS", - "DLT_STANAG_5066_D_PDU", - "DLT_SUNATM", - "DLT_SYMANTEC_FIREWALL", - "DLT_TZSP", - "DLT_USB", - "DLT_USB_LINUX", - "DLT_USB_LINUX_MMAPPED", - "DLT_USER0", - "DLT_USER1", - "DLT_USER10", - "DLT_USER11", - "DLT_USER12", - "DLT_USER13", - "DLT_USER14", - "DLT_USER15", - "DLT_USER2", - "DLT_USER3", - "DLT_USER4", - "DLT_USER5", - "DLT_USER6", - "DLT_USER7", - "DLT_USER8", - "DLT_USER9", - "DLT_WIHART", - "DLT_X2E_SERIAL", - "DLT_X2E_XORAYA", - "DNSMXData", - "DNSPTRData", - "DNSRecord", - "DNSSRVData", - "DNSTXTData", - "DNS_INFO_NO_RECORDS", - "DNS_TYPE_A", - "DNS_TYPE_A6", - "DNS_TYPE_AAAA", - "DNS_TYPE_ADDRS", - "DNS_TYPE_AFSDB", - "DNS_TYPE_ALL", - "DNS_TYPE_ANY", - "DNS_TYPE_ATMA", - "DNS_TYPE_AXFR", - "DNS_TYPE_CERT", - "DNS_TYPE_CNAME", - "DNS_TYPE_DHCID", - "DNS_TYPE_DNAME", - "DNS_TYPE_DNSKEY", - "DNS_TYPE_DS", - "DNS_TYPE_EID", - "DNS_TYPE_GID", - "DNS_TYPE_GPOS", - "DNS_TYPE_HINFO", - "DNS_TYPE_ISDN", - "DNS_TYPE_IXFR", - "DNS_TYPE_KEY", - "DNS_TYPE_KX", - "DNS_TYPE_LOC", - "DNS_TYPE_MAILA", - "DNS_TYPE_MAILB", - "DNS_TYPE_MB", - "DNS_TYPE_MD", - "DNS_TYPE_MF", - "DNS_TYPE_MG", - "DNS_TYPE_MINFO", - "DNS_TYPE_MR", - "DNS_TYPE_MX", - "DNS_TYPE_NAPTR", - "DNS_TYPE_NBSTAT", - "DNS_TYPE_NIMLOC", - "DNS_TYPE_NS", - "DNS_TYPE_NSAP", - "DNS_TYPE_NSAPPTR", - "DNS_TYPE_NSEC", - "DNS_TYPE_NULL", - "DNS_TYPE_NXT", - "DNS_TYPE_OPT", - "DNS_TYPE_PTR", - "DNS_TYPE_PX", - "DNS_TYPE_RP", - "DNS_TYPE_RRSIG", - "DNS_TYPE_RT", - "DNS_TYPE_SIG", - "DNS_TYPE_SINK", - "DNS_TYPE_SOA", - "DNS_TYPE_SRV", - "DNS_TYPE_TEXT", - "DNS_TYPE_TKEY", - "DNS_TYPE_TSIG", - "DNS_TYPE_UID", - "DNS_TYPE_UINFO", - "DNS_TYPE_UNSPEC", - "DNS_TYPE_WINS", - "DNS_TYPE_WINSR", - "DNS_TYPE_WKS", - "DNS_TYPE_X25", - "DT_BLK", - "DT_CHR", - "DT_DIR", - "DT_FIFO", - "DT_LNK", - "DT_REG", - "DT_SOCK", - "DT_UNKNOWN", - "DT_WHT", - "DUPLICATE_CLOSE_SOURCE", - "DUPLICATE_SAME_ACCESS", - "DeleteFile", - "DetachLsf", - "DeviceIoControl", - "Dirent", - "DnsNameCompare", - "DnsQuery", - "DnsRecordListFree", - "DnsSectionAdditional", - "DnsSectionAnswer", - "DnsSectionAuthority", - "DnsSectionQuestion", - "Dup", - "Dup2", - "Dup3", - "DuplicateHandle", - "E2BIG", - "EACCES", - "EADDRINUSE", - "EADDRNOTAVAIL", - "EADV", - "EAFNOSUPPORT", - "EAGAIN", - "EALREADY", - "EAUTH", - "EBADARCH", - "EBADE", - "EBADEXEC", - "EBADF", - "EBADFD", - "EBADMACHO", - "EBADMSG", - "EBADR", - "EBADRPC", - "EBADRQC", - "EBADSLT", - "EBFONT", - "EBUSY", - "ECANCELED", - "ECAPMODE", - "ECHILD", - "ECHO", - "ECHOCTL", - "ECHOE", - "ECHOK", - "ECHOKE", - "ECHONL", - "ECHOPRT", - "ECHRNG", - "ECOMM", - "ECONNABORTED", - "ECONNREFUSED", - "ECONNRESET", - "EDEADLK", - "EDEADLOCK", - "EDESTADDRREQ", - "EDEVERR", - "EDOM", - "EDOOFUS", - "EDOTDOT", - "EDQUOT", - "EEXIST", - "EFAULT", - "EFBIG", - "EFER_LMA", - "EFER_LME", - "EFER_NXE", - "EFER_SCE", - "EFTYPE", - "EHOSTDOWN", - "EHOSTUNREACH", - "EHWPOISON", - "EIDRM", - "EILSEQ", - "EINPROGRESS", - "EINTR", - "EINVAL", - "EIO", - "EIPSEC", - "EISCONN", - "EISDIR", - "EISNAM", - "EKEYEXPIRED", - "EKEYREJECTED", - "EKEYREVOKED", - "EL2HLT", - "EL2NSYNC", - "EL3HLT", - "EL3RST", - "ELAST", - "ELF_NGREG", - "ELF_PRARGSZ", - "ELIBACC", - "ELIBBAD", - "ELIBEXEC", - "ELIBMAX", - "ELIBSCN", - "ELNRNG", - "ELOOP", - "EMEDIUMTYPE", - "EMFILE", - "EMLINK", - "EMSGSIZE", - "EMT_TAGOVF", - "EMULTIHOP", - "EMUL_ENABLED", - "EMUL_LINUX", - "EMUL_LINUX32", - "EMUL_MAXID", - "EMUL_NATIVE", - "ENAMETOOLONG", - "ENAVAIL", - "ENDRUNDISC", - "ENEEDAUTH", - "ENETDOWN", - "ENETRESET", - "ENETUNREACH", - "ENFILE", - "ENOANO", - "ENOATTR", - "ENOBUFS", - "ENOCSI", - "ENODATA", - "ENODEV", - "ENOENT", - "ENOEXEC", - "ENOKEY", - "ENOLCK", - "ENOLINK", - "ENOMEDIUM", - "ENOMEM", - "ENOMSG", - "ENONET", - "ENOPKG", - "ENOPOLICY", - "ENOPROTOOPT", - "ENOSPC", - "ENOSR", - "ENOSTR", - "ENOSYS", - "ENOTBLK", - "ENOTCAPABLE", - "ENOTCONN", - "ENOTDIR", - "ENOTEMPTY", - "ENOTNAM", - "ENOTRECOVERABLE", - "ENOTSOCK", - "ENOTSUP", - "ENOTTY", - "ENOTUNIQ", - "ENXIO", - "EN_SW_CTL_INF", - "EN_SW_CTL_PREC", - "EN_SW_CTL_ROUND", - "EN_SW_DATACHAIN", - "EN_SW_DENORM", - "EN_SW_INVOP", - "EN_SW_OVERFLOW", - "EN_SW_PRECLOSS", - "EN_SW_UNDERFLOW", - "EN_SW_ZERODIV", - "EOPNOTSUPP", - "EOVERFLOW", - "EOWNERDEAD", - "EPERM", - "EPFNOSUPPORT", - "EPIPE", - "EPOLLERR", - "EPOLLET", - "EPOLLHUP", - "EPOLLIN", - "EPOLLMSG", - "EPOLLONESHOT", - "EPOLLOUT", - "EPOLLPRI", - "EPOLLRDBAND", - "EPOLLRDHUP", - "EPOLLRDNORM", - "EPOLLWRBAND", - "EPOLLWRNORM", - "EPOLL_CLOEXEC", - "EPOLL_CTL_ADD", - "EPOLL_CTL_DEL", - "EPOLL_CTL_MOD", - "EPOLL_NONBLOCK", - "EPROCLIM", - "EPROCUNAVAIL", - "EPROGMISMATCH", - "EPROGUNAVAIL", - "EPROTO", - "EPROTONOSUPPORT", - "EPROTOTYPE", - "EPWROFF", - "EQFULL", - "ERANGE", - "EREMCHG", - "EREMOTE", - "EREMOTEIO", - "ERESTART", - "ERFKILL", - "EROFS", - "ERPCMISMATCH", - "ERROR_ACCESS_DENIED", - "ERROR_ALREADY_EXISTS", - "ERROR_BROKEN_PIPE", - "ERROR_BUFFER_OVERFLOW", - "ERROR_DIR_NOT_EMPTY", - "ERROR_ENVVAR_NOT_FOUND", - "ERROR_FILE_EXISTS", - "ERROR_FILE_NOT_FOUND", - "ERROR_HANDLE_EOF", - "ERROR_INSUFFICIENT_BUFFER", - "ERROR_IO_PENDING", - "ERROR_MOD_NOT_FOUND", - "ERROR_MORE_DATA", - "ERROR_NETNAME_DELETED", - "ERROR_NOT_FOUND", - "ERROR_NO_MORE_FILES", - "ERROR_OPERATION_ABORTED", - "ERROR_PATH_NOT_FOUND", - "ERROR_PRIVILEGE_NOT_HELD", - "ERROR_PROC_NOT_FOUND", - "ESHLIBVERS", - "ESHUTDOWN", - "ESOCKTNOSUPPORT", - "ESPIPE", - "ESRCH", - "ESRMNT", - "ESTALE", - "ESTRPIPE", - "ETHERCAP_JUMBO_MTU", - "ETHERCAP_VLAN_HWTAGGING", - "ETHERCAP_VLAN_MTU", - "ETHERMIN", - "ETHERMTU", - "ETHERMTU_JUMBO", - "ETHERTYPE_8023", - "ETHERTYPE_AARP", - "ETHERTYPE_ACCTON", - "ETHERTYPE_AEONIC", - "ETHERTYPE_ALPHA", - "ETHERTYPE_AMBER", - "ETHERTYPE_AMOEBA", - "ETHERTYPE_AOE", - "ETHERTYPE_APOLLO", - "ETHERTYPE_APOLLODOMAIN", - "ETHERTYPE_APPLETALK", - "ETHERTYPE_APPLITEK", - "ETHERTYPE_ARGONAUT", - "ETHERTYPE_ARP", - "ETHERTYPE_AT", - "ETHERTYPE_ATALK", - "ETHERTYPE_ATOMIC", - "ETHERTYPE_ATT", - "ETHERTYPE_ATTSTANFORD", - "ETHERTYPE_AUTOPHON", - "ETHERTYPE_AXIS", - "ETHERTYPE_BCLOOP", - "ETHERTYPE_BOFL", - "ETHERTYPE_CABLETRON", - "ETHERTYPE_CHAOS", - "ETHERTYPE_COMDESIGN", - "ETHERTYPE_COMPUGRAPHIC", - "ETHERTYPE_COUNTERPOINT", - "ETHERTYPE_CRONUS", - "ETHERTYPE_CRONUSVLN", - "ETHERTYPE_DCA", - "ETHERTYPE_DDE", - "ETHERTYPE_DEBNI", - "ETHERTYPE_DECAM", - "ETHERTYPE_DECCUST", - "ETHERTYPE_DECDIAG", - "ETHERTYPE_DECDNS", - "ETHERTYPE_DECDTS", - "ETHERTYPE_DECEXPER", - "ETHERTYPE_DECLAST", - "ETHERTYPE_DECLTM", - "ETHERTYPE_DECMUMPS", - "ETHERTYPE_DECNETBIOS", - "ETHERTYPE_DELTACON", - "ETHERTYPE_DIDDLE", - "ETHERTYPE_DLOG1", - "ETHERTYPE_DLOG2", - "ETHERTYPE_DN", - "ETHERTYPE_DOGFIGHT", - "ETHERTYPE_DSMD", - "ETHERTYPE_ECMA", - "ETHERTYPE_ENCRYPT", - "ETHERTYPE_ES", - "ETHERTYPE_EXCELAN", - "ETHERTYPE_EXPERDATA", - "ETHERTYPE_FLIP", - "ETHERTYPE_FLOWCONTROL", - "ETHERTYPE_FRARP", - "ETHERTYPE_GENDYN", - "ETHERTYPE_HAYES", - "ETHERTYPE_HIPPI_FP", - "ETHERTYPE_HITACHI", - "ETHERTYPE_HP", - "ETHERTYPE_IEEEPUP", - "ETHERTYPE_IEEEPUPAT", - "ETHERTYPE_IMLBL", - "ETHERTYPE_IMLBLDIAG", - "ETHERTYPE_IP", - "ETHERTYPE_IPAS", - "ETHERTYPE_IPV6", - "ETHERTYPE_IPX", - "ETHERTYPE_IPXNEW", - "ETHERTYPE_KALPANA", - "ETHERTYPE_LANBRIDGE", - "ETHERTYPE_LANPROBE", - "ETHERTYPE_LAT", - "ETHERTYPE_LBACK", - "ETHERTYPE_LITTLE", - "ETHERTYPE_LLDP", - "ETHERTYPE_LOGICRAFT", - "ETHERTYPE_LOOPBACK", - "ETHERTYPE_MATRA", - "ETHERTYPE_MAX", - "ETHERTYPE_MERIT", - "ETHERTYPE_MICP", - "ETHERTYPE_MOPDL", - "ETHERTYPE_MOPRC", - "ETHERTYPE_MOTOROLA", - "ETHERTYPE_MPLS", - "ETHERTYPE_MPLS_MCAST", - "ETHERTYPE_MUMPS", - "ETHERTYPE_NBPCC", - "ETHERTYPE_NBPCLAIM", - "ETHERTYPE_NBPCLREQ", - "ETHERTYPE_NBPCLRSP", - "ETHERTYPE_NBPCREQ", - "ETHERTYPE_NBPCRSP", - "ETHERTYPE_NBPDG", - "ETHERTYPE_NBPDGB", - "ETHERTYPE_NBPDLTE", - "ETHERTYPE_NBPRAR", - "ETHERTYPE_NBPRAS", - "ETHERTYPE_NBPRST", - "ETHERTYPE_NBPSCD", - "ETHERTYPE_NBPVCD", - "ETHERTYPE_NBS", - "ETHERTYPE_NCD", - "ETHERTYPE_NESTAR", - "ETHERTYPE_NETBEUI", - "ETHERTYPE_NOVELL", - "ETHERTYPE_NS", - "ETHERTYPE_NSAT", - "ETHERTYPE_NSCOMPAT", - "ETHERTYPE_NTRAILER", - "ETHERTYPE_OS9", - "ETHERTYPE_OS9NET", - "ETHERTYPE_PACER", - "ETHERTYPE_PAE", - "ETHERTYPE_PCS", - "ETHERTYPE_PLANNING", - "ETHERTYPE_PPP", - "ETHERTYPE_PPPOE", - "ETHERTYPE_PPPOEDISC", - "ETHERTYPE_PRIMENTS", - "ETHERTYPE_PUP", - "ETHERTYPE_PUPAT", - "ETHERTYPE_QINQ", - "ETHERTYPE_RACAL", - "ETHERTYPE_RATIONAL", - "ETHERTYPE_RAWFR", - "ETHERTYPE_RCL", - "ETHERTYPE_RDP", - "ETHERTYPE_RETIX", - "ETHERTYPE_REVARP", - "ETHERTYPE_SCA", - "ETHERTYPE_SECTRA", - "ETHERTYPE_SECUREDATA", - "ETHERTYPE_SGITW", - "ETHERTYPE_SG_BOUNCE", - "ETHERTYPE_SG_DIAG", - "ETHERTYPE_SG_NETGAMES", - "ETHERTYPE_SG_RESV", - "ETHERTYPE_SIMNET", - "ETHERTYPE_SLOW", - "ETHERTYPE_SLOWPROTOCOLS", - "ETHERTYPE_SNA", - "ETHERTYPE_SNMP", - "ETHERTYPE_SONIX", - "ETHERTYPE_SPIDER", - "ETHERTYPE_SPRITE", - "ETHERTYPE_STP", - "ETHERTYPE_TALARIS", - "ETHERTYPE_TALARISMC", - "ETHERTYPE_TCPCOMP", - "ETHERTYPE_TCPSM", - "ETHERTYPE_TEC", - "ETHERTYPE_TIGAN", - "ETHERTYPE_TRAIL", - "ETHERTYPE_TRANSETHER", - "ETHERTYPE_TYMSHARE", - "ETHERTYPE_UBBST", - "ETHERTYPE_UBDEBUG", - "ETHERTYPE_UBDIAGLOOP", - "ETHERTYPE_UBDL", - "ETHERTYPE_UBNIU", - "ETHERTYPE_UBNMC", - "ETHERTYPE_VALID", - "ETHERTYPE_VARIAN", - "ETHERTYPE_VAXELN", - "ETHERTYPE_VEECO", - "ETHERTYPE_VEXP", - "ETHERTYPE_VGLAB", - "ETHERTYPE_VINES", - "ETHERTYPE_VINESECHO", - "ETHERTYPE_VINESLOOP", - "ETHERTYPE_VITAL", - "ETHERTYPE_VLAN", - "ETHERTYPE_VLTLMAN", - "ETHERTYPE_VPROD", - "ETHERTYPE_VURESERVED", - "ETHERTYPE_WATERLOO", - "ETHERTYPE_WELLFLEET", - "ETHERTYPE_X25", - "ETHERTYPE_X75", - "ETHERTYPE_XNSSM", - "ETHERTYPE_XTP", - "ETHER_ADDR_LEN", - "ETHER_ALIGN", - "ETHER_CRC_LEN", - "ETHER_CRC_POLY_BE", - "ETHER_CRC_POLY_LE", - "ETHER_HDR_LEN", - "ETHER_MAX_DIX_LEN", - "ETHER_MAX_LEN", - "ETHER_MAX_LEN_JUMBO", - "ETHER_MIN_LEN", - "ETHER_PPPOE_ENCAP_LEN", - "ETHER_TYPE_LEN", - "ETHER_VLAN_ENCAP_LEN", - "ETH_P_1588", - "ETH_P_8021Q", - "ETH_P_802_2", - "ETH_P_802_3", - "ETH_P_AARP", - "ETH_P_ALL", - "ETH_P_AOE", - "ETH_P_ARCNET", - "ETH_P_ARP", - "ETH_P_ATALK", - "ETH_P_ATMFATE", - "ETH_P_ATMMPOA", - "ETH_P_AX25", - "ETH_P_BPQ", - "ETH_P_CAIF", - "ETH_P_CAN", - "ETH_P_CONTROL", - "ETH_P_CUST", - "ETH_P_DDCMP", - "ETH_P_DEC", - "ETH_P_DIAG", - "ETH_P_DNA_DL", - "ETH_P_DNA_RC", - "ETH_P_DNA_RT", - "ETH_P_DSA", - "ETH_P_ECONET", - "ETH_P_EDSA", - "ETH_P_FCOE", - "ETH_P_FIP", - "ETH_P_HDLC", - "ETH_P_IEEE802154", - "ETH_P_IEEEPUP", - "ETH_P_IEEEPUPAT", - "ETH_P_IP", - "ETH_P_IPV6", - "ETH_P_IPX", - "ETH_P_IRDA", - "ETH_P_LAT", - "ETH_P_LINK_CTL", - "ETH_P_LOCALTALK", - "ETH_P_LOOP", - "ETH_P_MOBITEX", - "ETH_P_MPLS_MC", - "ETH_P_MPLS_UC", - "ETH_P_PAE", - "ETH_P_PAUSE", - "ETH_P_PHONET", - "ETH_P_PPPTALK", - "ETH_P_PPP_DISC", - "ETH_P_PPP_MP", - "ETH_P_PPP_SES", - "ETH_P_PUP", - "ETH_P_PUPAT", - "ETH_P_RARP", - "ETH_P_SCA", - "ETH_P_SLOW", - "ETH_P_SNAP", - "ETH_P_TEB", - "ETH_P_TIPC", - "ETH_P_TRAILER", - "ETH_P_TR_802_2", - "ETH_P_WAN_PPP", - "ETH_P_WCCP", - "ETH_P_X25", - "ETIME", - "ETIMEDOUT", - "ETOOMANYREFS", - "ETXTBSY", - "EUCLEAN", - "EUNATCH", - "EUSERS", - "EVFILT_AIO", - "EVFILT_FS", - "EVFILT_LIO", - "EVFILT_MACHPORT", - "EVFILT_PROC", - "EVFILT_READ", - "EVFILT_SIGNAL", - "EVFILT_SYSCOUNT", - "EVFILT_THREADMARKER", - "EVFILT_TIMER", - "EVFILT_USER", - "EVFILT_VM", - "EVFILT_VNODE", - "EVFILT_WRITE", - "EV_ADD", - "EV_CLEAR", - "EV_DELETE", - "EV_DISABLE", - "EV_DISPATCH", - "EV_DROP", - "EV_ENABLE", - "EV_EOF", - "EV_ERROR", - "EV_FLAG0", - "EV_FLAG1", - "EV_ONESHOT", - "EV_OOBAND", - "EV_POLL", - "EV_RECEIPT", - "EV_SYSFLAGS", - "EWINDOWS", - "EWOULDBLOCK", - "EXDEV", - "EXFULL", - "EXTA", - "EXTB", - "EXTPROC", - "Environ", - "EpollCreate", - "EpollCreate1", - "EpollCtl", - "EpollEvent", - "EpollWait", - "Errno", - "EscapeArg", - "Exchangedata", - "Exec", - "Exit", - "ExitProcess", - "FD_CLOEXEC", - "FD_SETSIZE", - "FILE_ACTION_ADDED", - "FILE_ACTION_MODIFIED", - "FILE_ACTION_REMOVED", - "FILE_ACTION_RENAMED_NEW_NAME", - "FILE_ACTION_RENAMED_OLD_NAME", - "FILE_APPEND_DATA", - "FILE_ATTRIBUTE_ARCHIVE", - "FILE_ATTRIBUTE_DIRECTORY", - "FILE_ATTRIBUTE_HIDDEN", - "FILE_ATTRIBUTE_NORMAL", - "FILE_ATTRIBUTE_READONLY", - "FILE_ATTRIBUTE_REPARSE_POINT", - "FILE_ATTRIBUTE_SYSTEM", - "FILE_BEGIN", - "FILE_CURRENT", - "FILE_END", - "FILE_FLAG_BACKUP_SEMANTICS", - "FILE_FLAG_OPEN_REPARSE_POINT", - "FILE_FLAG_OVERLAPPED", - "FILE_LIST_DIRECTORY", - "FILE_MAP_COPY", - "FILE_MAP_EXECUTE", - "FILE_MAP_READ", - "FILE_MAP_WRITE", - "FILE_NOTIFY_CHANGE_ATTRIBUTES", - "FILE_NOTIFY_CHANGE_CREATION", - "FILE_NOTIFY_CHANGE_DIR_NAME", - "FILE_NOTIFY_CHANGE_FILE_NAME", - "FILE_NOTIFY_CHANGE_LAST_ACCESS", - "FILE_NOTIFY_CHANGE_LAST_WRITE", - "FILE_NOTIFY_CHANGE_SIZE", - "FILE_SHARE_DELETE", - "FILE_SHARE_READ", - "FILE_SHARE_WRITE", - "FILE_SKIP_COMPLETION_PORT_ON_SUCCESS", - "FILE_SKIP_SET_EVENT_ON_HANDLE", - "FILE_TYPE_CHAR", - "FILE_TYPE_DISK", - "FILE_TYPE_PIPE", - "FILE_TYPE_REMOTE", - "FILE_TYPE_UNKNOWN", - "FILE_WRITE_ATTRIBUTES", - "FLUSHO", - "FORMAT_MESSAGE_ALLOCATE_BUFFER", - "FORMAT_MESSAGE_ARGUMENT_ARRAY", - "FORMAT_MESSAGE_FROM_HMODULE", - "FORMAT_MESSAGE_FROM_STRING", - "FORMAT_MESSAGE_FROM_SYSTEM", - "FORMAT_MESSAGE_IGNORE_INSERTS", - "FORMAT_MESSAGE_MAX_WIDTH_MASK", - "FSCTL_GET_REPARSE_POINT", - "F_ADDFILESIGS", - "F_ADDSIGS", - "F_ALLOCATEALL", - "F_ALLOCATECONTIG", - "F_CANCEL", - "F_CHKCLEAN", - "F_CLOSEM", - "F_DUP2FD", - "F_DUP2FD_CLOEXEC", - "F_DUPFD", - "F_DUPFD_CLOEXEC", - "F_EXLCK", - "F_FINDSIGS", - "F_FLUSH_DATA", - "F_FREEZE_FS", - "F_FSCTL", - "F_FSDIRMASK", - "F_FSIN", - "F_FSINOUT", - "F_FSOUT", - "F_FSPRIV", - "F_FSVOID", - "F_FULLFSYNC", - "F_GETCODEDIR", - "F_GETFD", - "F_GETFL", - "F_GETLEASE", - "F_GETLK", - "F_GETLK64", - "F_GETLKPID", - "F_GETNOSIGPIPE", - "F_GETOWN", - "F_GETOWN_EX", - "F_GETPATH", - "F_GETPATH_MTMINFO", - "F_GETPIPE_SZ", - "F_GETPROTECTIONCLASS", - "F_GETPROTECTIONLEVEL", - "F_GETSIG", - "F_GLOBAL_NOCACHE", - "F_LOCK", - "F_LOG2PHYS", - "F_LOG2PHYS_EXT", - "F_MARKDEPENDENCY", - "F_MAXFD", - "F_NOCACHE", - "F_NODIRECT", - "F_NOTIFY", - "F_OGETLK", - "F_OK", - "F_OSETLK", - "F_OSETLKW", - "F_PARAM_MASK", - "F_PARAM_MAX", - "F_PATHPKG_CHECK", - "F_PEOFPOSMODE", - "F_PREALLOCATE", - "F_RDADVISE", - "F_RDAHEAD", - "F_RDLCK", - "F_READAHEAD", - "F_READBOOTSTRAP", - "F_SETBACKINGSTORE", - "F_SETFD", - "F_SETFL", - "F_SETLEASE", - "F_SETLK", - "F_SETLK64", - "F_SETLKW", - "F_SETLKW64", - "F_SETLKWTIMEOUT", - "F_SETLK_REMOTE", - "F_SETNOSIGPIPE", - "F_SETOWN", - "F_SETOWN_EX", - "F_SETPIPE_SZ", - "F_SETPROTECTIONCLASS", - "F_SETSIG", - "F_SETSIZE", - "F_SHLCK", - "F_SINGLE_WRITER", - "F_TEST", - "F_THAW_FS", - "F_TLOCK", - "F_TRANSCODEKEY", - "F_ULOCK", - "F_UNLCK", - "F_UNLCKSYS", - "F_VOLPOSMODE", - "F_WRITEBOOTSTRAP", - "F_WRLCK", - "Faccessat", - "Fallocate", - "Fbootstraptransfer_t", - "Fchdir", - "Fchflags", - "Fchmod", - "Fchmodat", - "Fchown", - "Fchownat", - "FcntlFlock", - "FdSet", - "Fdatasync", - "FileNotifyInformation", - "Filetime", - "FindClose", - "FindFirstFile", - "FindNextFile", - "Flock", - "Flock_t", - "FlushBpf", - "FlushFileBuffers", - "FlushViewOfFile", - "ForkExec", - "ForkLock", - "FormatMessage", - "Fpathconf", - "FreeAddrInfoW", - "FreeEnvironmentStrings", - "FreeLibrary", - "Fsid", - "Fstat", - "Fstatat", - "Fstatfs", - "Fstore_t", - "Fsync", - "Ftruncate", - "FullPath", - "Futimes", - "Futimesat", - "GENERIC_ALL", - "GENERIC_EXECUTE", - "GENERIC_READ", - "GENERIC_WRITE", - "GUID", - "GetAcceptExSockaddrs", - "GetAdaptersInfo", - "GetAddrInfoW", - "GetCommandLine", - "GetComputerName", - "GetConsoleMode", - "GetCurrentDirectory", - "GetCurrentProcess", - "GetEnvironmentStrings", - "GetEnvironmentVariable", - "GetExitCodeProcess", - "GetFileAttributes", - "GetFileAttributesEx", - "GetFileExInfoStandard", - "GetFileExMaxInfoLevel", - "GetFileInformationByHandle", - "GetFileType", - "GetFullPathName", - "GetHostByName", - "GetIfEntry", - "GetLastError", - "GetLengthSid", - "GetLongPathName", - "GetProcAddress", - "GetProcessTimes", - "GetProtoByName", - "GetQueuedCompletionStatus", - "GetServByName", - "GetShortPathName", - "GetStartupInfo", - "GetStdHandle", - "GetSystemTimeAsFileTime", - "GetTempPath", - "GetTimeZoneInformation", - "GetTokenInformation", - "GetUserNameEx", - "GetUserProfileDirectory", - "GetVersion", - "Getcwd", - "Getdents", - "Getdirentries", - "Getdtablesize", - "Getegid", - "Getenv", - "Geteuid", - "Getfsstat", - "Getgid", - "Getgroups", - "Getpagesize", - "Getpeername", - "Getpgid", - "Getpgrp", - "Getpid", - "Getppid", - "Getpriority", - "Getrlimit", - "Getrusage", - "Getsid", - "Getsockname", - "Getsockopt", - "GetsockoptByte", - "GetsockoptICMPv6Filter", - "GetsockoptIPMreq", - "GetsockoptIPMreqn", - "GetsockoptIPv6MTUInfo", - "GetsockoptIPv6Mreq", - "GetsockoptInet4Addr", - "GetsockoptInt", - "GetsockoptUcred", - "Gettid", - "Gettimeofday", - "Getuid", - "Getwd", - "Getxattr", - "HANDLE_FLAG_INHERIT", - "HKEY_CLASSES_ROOT", - "HKEY_CURRENT_CONFIG", - "HKEY_CURRENT_USER", - "HKEY_DYN_DATA", - "HKEY_LOCAL_MACHINE", - "HKEY_PERFORMANCE_DATA", - "HKEY_USERS", - "HUPCL", - "Handle", - "Hostent", - "ICANON", - "ICMP6_FILTER", - "ICMPV6_FILTER", - "ICMPv6Filter", - "ICRNL", - "IEXTEN", - "IFAN_ARRIVAL", - "IFAN_DEPARTURE", - "IFA_ADDRESS", - "IFA_ANYCAST", - "IFA_BROADCAST", - "IFA_CACHEINFO", - "IFA_F_DADFAILED", - "IFA_F_DEPRECATED", - "IFA_F_HOMEADDRESS", - "IFA_F_NODAD", - "IFA_F_OPTIMISTIC", - "IFA_F_PERMANENT", - "IFA_F_SECONDARY", - "IFA_F_TEMPORARY", - "IFA_F_TENTATIVE", - "IFA_LABEL", - "IFA_LOCAL", - "IFA_MAX", - "IFA_MULTICAST", - "IFA_ROUTE", - "IFA_UNSPEC", - "IFF_ALLMULTI", - "IFF_ALTPHYS", - "IFF_AUTOMEDIA", - "IFF_BROADCAST", - "IFF_CANTCHANGE", - "IFF_CANTCONFIG", - "IFF_DEBUG", - "IFF_DRV_OACTIVE", - "IFF_DRV_RUNNING", - "IFF_DYING", - "IFF_DYNAMIC", - "IFF_LINK0", - "IFF_LINK1", - "IFF_LINK2", - "IFF_LOOPBACK", - "IFF_MASTER", - "IFF_MONITOR", - "IFF_MULTICAST", - "IFF_NOARP", - "IFF_NOTRAILERS", - "IFF_NO_PI", - "IFF_OACTIVE", - "IFF_ONE_QUEUE", - "IFF_POINTOPOINT", - "IFF_POINTTOPOINT", - "IFF_PORTSEL", - "IFF_PPROMISC", - "IFF_PROMISC", - "IFF_RENAMING", - "IFF_RUNNING", - "IFF_SIMPLEX", - "IFF_SLAVE", - "IFF_SMART", - "IFF_STATICARP", - "IFF_TAP", - "IFF_TUN", - "IFF_TUN_EXCL", - "IFF_UP", - "IFF_VNET_HDR", - "IFLA_ADDRESS", - "IFLA_BROADCAST", - "IFLA_COST", - "IFLA_IFALIAS", - "IFLA_IFNAME", - "IFLA_LINK", - "IFLA_LINKINFO", - "IFLA_LINKMODE", - "IFLA_MAP", - "IFLA_MASTER", - "IFLA_MAX", - "IFLA_MTU", - "IFLA_NET_NS_PID", - "IFLA_OPERSTATE", - "IFLA_PRIORITY", - "IFLA_PROTINFO", - "IFLA_QDISC", - "IFLA_STATS", - "IFLA_TXQLEN", - "IFLA_UNSPEC", - "IFLA_WEIGHT", - "IFLA_WIRELESS", - "IFNAMSIZ", - "IFT_1822", - "IFT_A12MPPSWITCH", - "IFT_AAL2", - "IFT_AAL5", - "IFT_ADSL", - "IFT_AFLANE8023", - "IFT_AFLANE8025", - "IFT_ARAP", - "IFT_ARCNET", - "IFT_ARCNETPLUS", - "IFT_ASYNC", - "IFT_ATM", - "IFT_ATMDXI", - "IFT_ATMFUNI", - "IFT_ATMIMA", - "IFT_ATMLOGICAL", - "IFT_ATMRADIO", - "IFT_ATMSUBINTERFACE", - "IFT_ATMVCIENDPT", - "IFT_ATMVIRTUAL", - "IFT_BGPPOLICYACCOUNTING", - "IFT_BLUETOOTH", - "IFT_BRIDGE", - "IFT_BSC", - "IFT_CARP", - "IFT_CCTEMUL", - "IFT_CELLULAR", - "IFT_CEPT", - "IFT_CES", - "IFT_CHANNEL", - "IFT_CNR", - "IFT_COFFEE", - "IFT_COMPOSITELINK", - "IFT_DCN", - "IFT_DIGITALPOWERLINE", - "IFT_DIGITALWRAPPEROVERHEADCHANNEL", - "IFT_DLSW", - "IFT_DOCSCABLEDOWNSTREAM", - "IFT_DOCSCABLEMACLAYER", - "IFT_DOCSCABLEUPSTREAM", - "IFT_DOCSCABLEUPSTREAMCHANNEL", - "IFT_DS0", - "IFT_DS0BUNDLE", - "IFT_DS1FDL", - "IFT_DS3", - "IFT_DTM", - "IFT_DUMMY", - "IFT_DVBASILN", - "IFT_DVBASIOUT", - "IFT_DVBRCCDOWNSTREAM", - "IFT_DVBRCCMACLAYER", - "IFT_DVBRCCUPSTREAM", - "IFT_ECONET", - "IFT_ENC", - "IFT_EON", - "IFT_EPLRS", - "IFT_ESCON", - "IFT_ETHER", - "IFT_FAITH", - "IFT_FAST", - "IFT_FASTETHER", - "IFT_FASTETHERFX", - "IFT_FDDI", - "IFT_FIBRECHANNEL", - "IFT_FRAMERELAYINTERCONNECT", - "IFT_FRAMERELAYMPI", - "IFT_FRDLCIENDPT", - "IFT_FRELAY", - "IFT_FRELAYDCE", - "IFT_FRF16MFRBUNDLE", - "IFT_FRFORWARD", - "IFT_G703AT2MB", - "IFT_G703AT64K", - "IFT_GIF", - "IFT_GIGABITETHERNET", - "IFT_GR303IDT", - "IFT_GR303RDT", - "IFT_H323GATEKEEPER", - "IFT_H323PROXY", - "IFT_HDH1822", - "IFT_HDLC", - "IFT_HDSL2", - "IFT_HIPERLAN2", - "IFT_HIPPI", - "IFT_HIPPIINTERFACE", - "IFT_HOSTPAD", - "IFT_HSSI", - "IFT_HY", - "IFT_IBM370PARCHAN", - "IFT_IDSL", - "IFT_IEEE1394", - "IFT_IEEE80211", - "IFT_IEEE80212", - "IFT_IEEE8023ADLAG", - "IFT_IFGSN", - "IFT_IMT", - "IFT_INFINIBAND", - "IFT_INTERLEAVE", - "IFT_IP", - "IFT_IPFORWARD", - "IFT_IPOVERATM", - "IFT_IPOVERCDLC", - "IFT_IPOVERCLAW", - "IFT_IPSWITCH", - "IFT_IPXIP", - "IFT_ISDN", - "IFT_ISDNBASIC", - "IFT_ISDNPRIMARY", - "IFT_ISDNS", - "IFT_ISDNU", - "IFT_ISO88022LLC", - "IFT_ISO88023", - "IFT_ISO88024", - "IFT_ISO88025", - "IFT_ISO88025CRFPINT", - "IFT_ISO88025DTR", - "IFT_ISO88025FIBER", - "IFT_ISO88026", - "IFT_ISUP", - "IFT_L2VLAN", - "IFT_L3IPVLAN", - "IFT_L3IPXVLAN", - "IFT_LAPB", - "IFT_LAPD", - "IFT_LAPF", - "IFT_LINEGROUP", - "IFT_LOCALTALK", - "IFT_LOOP", - "IFT_MEDIAMAILOVERIP", - "IFT_MFSIGLINK", - "IFT_MIOX25", - "IFT_MODEM", - "IFT_MPC", - "IFT_MPLS", - "IFT_MPLSTUNNEL", - "IFT_MSDSL", - "IFT_MVL", - "IFT_MYRINET", - "IFT_NFAS", - "IFT_NSIP", - "IFT_OPTICALCHANNEL", - "IFT_OPTICALTRANSPORT", - "IFT_OTHER", - "IFT_P10", - "IFT_P80", - "IFT_PARA", - "IFT_PDP", - "IFT_PFLOG", - "IFT_PFLOW", - "IFT_PFSYNC", - "IFT_PLC", - "IFT_PON155", - "IFT_PON622", - "IFT_POS", - "IFT_PPP", - "IFT_PPPMULTILINKBUNDLE", - "IFT_PROPATM", - "IFT_PROPBWAP2MP", - "IFT_PROPCNLS", - "IFT_PROPDOCSWIRELESSDOWNSTREAM", - "IFT_PROPDOCSWIRELESSMACLAYER", - "IFT_PROPDOCSWIRELESSUPSTREAM", - "IFT_PROPMUX", - "IFT_PROPVIRTUAL", - "IFT_PROPWIRELESSP2P", - "IFT_PTPSERIAL", - "IFT_PVC", - "IFT_Q2931", - "IFT_QLLC", - "IFT_RADIOMAC", - "IFT_RADSL", - "IFT_REACHDSL", - "IFT_RFC1483", - "IFT_RS232", - "IFT_RSRB", - "IFT_SDLC", - "IFT_SDSL", - "IFT_SHDSL", - "IFT_SIP", - "IFT_SIPSIG", - "IFT_SIPTG", - "IFT_SLIP", - "IFT_SMDSDXI", - "IFT_SMDSICIP", - "IFT_SONET", - "IFT_SONETOVERHEADCHANNEL", - "IFT_SONETPATH", - "IFT_SONETVT", - "IFT_SRP", - "IFT_SS7SIGLINK", - "IFT_STACKTOSTACK", - "IFT_STARLAN", - "IFT_STF", - "IFT_T1", - "IFT_TDLC", - "IFT_TELINK", - "IFT_TERMPAD", - "IFT_TR008", - "IFT_TRANSPHDLC", - "IFT_TUNNEL", - "IFT_ULTRA", - "IFT_USB", - "IFT_V11", - "IFT_V35", - "IFT_V36", - "IFT_V37", - "IFT_VDSL", - "IFT_VIRTUALIPADDRESS", - "IFT_VIRTUALTG", - "IFT_VOICEDID", - "IFT_VOICEEM", - "IFT_VOICEEMFGD", - "IFT_VOICEENCAP", - "IFT_VOICEFGDEANA", - "IFT_VOICEFXO", - "IFT_VOICEFXS", - "IFT_VOICEOVERATM", - "IFT_VOICEOVERCABLE", - "IFT_VOICEOVERFRAMERELAY", - "IFT_VOICEOVERIP", - "IFT_X213", - "IFT_X25", - "IFT_X25DDN", - "IFT_X25HUNTGROUP", - "IFT_X25MLP", - "IFT_X25PLE", - "IFT_XETHER", - "IGNBRK", - "IGNCR", - "IGNORE", - "IGNPAR", - "IMAXBEL", - "INFINITE", - "INLCR", - "INPCK", - "INVALID_FILE_ATTRIBUTES", - "IN_ACCESS", - "IN_ALL_EVENTS", - "IN_ATTRIB", - "IN_CLASSA_HOST", - "IN_CLASSA_MAX", - "IN_CLASSA_NET", - "IN_CLASSA_NSHIFT", - "IN_CLASSB_HOST", - "IN_CLASSB_MAX", - "IN_CLASSB_NET", - "IN_CLASSB_NSHIFT", - "IN_CLASSC_HOST", - "IN_CLASSC_NET", - "IN_CLASSC_NSHIFT", - "IN_CLASSD_HOST", - "IN_CLASSD_NET", - "IN_CLASSD_NSHIFT", - "IN_CLOEXEC", - "IN_CLOSE", - "IN_CLOSE_NOWRITE", - "IN_CLOSE_WRITE", - "IN_CREATE", - "IN_DELETE", - "IN_DELETE_SELF", - "IN_DONT_FOLLOW", - "IN_EXCL_UNLINK", - "IN_IGNORED", - "IN_ISDIR", - "IN_LINKLOCALNETNUM", - "IN_LOOPBACKNET", - "IN_MASK_ADD", - "IN_MODIFY", - "IN_MOVE", - "IN_MOVED_FROM", - "IN_MOVED_TO", - "IN_MOVE_SELF", - "IN_NONBLOCK", - "IN_ONESHOT", - "IN_ONLYDIR", - "IN_OPEN", - "IN_Q_OVERFLOW", - "IN_RFC3021_HOST", - "IN_RFC3021_MASK", - "IN_RFC3021_NET", - "IN_RFC3021_NSHIFT", - "IN_UNMOUNT", - "IOC_IN", - "IOC_INOUT", - "IOC_OUT", - "IOC_VENDOR", - "IOC_WS2", - "IO_REPARSE_TAG_SYMLINK", - "IPMreq", - "IPMreqn", - "IPPROTO_3PC", - "IPPROTO_ADFS", - "IPPROTO_AH", - "IPPROTO_AHIP", - "IPPROTO_APES", - "IPPROTO_ARGUS", - "IPPROTO_AX25", - "IPPROTO_BHA", - "IPPROTO_BLT", - "IPPROTO_BRSATMON", - "IPPROTO_CARP", - "IPPROTO_CFTP", - "IPPROTO_CHAOS", - "IPPROTO_CMTP", - "IPPROTO_COMP", - "IPPROTO_CPHB", - "IPPROTO_CPNX", - "IPPROTO_DCCP", - "IPPROTO_DDP", - "IPPROTO_DGP", - "IPPROTO_DIVERT", - "IPPROTO_DIVERT_INIT", - "IPPROTO_DIVERT_RESP", - "IPPROTO_DONE", - "IPPROTO_DSTOPTS", - "IPPROTO_EGP", - "IPPROTO_EMCON", - "IPPROTO_ENCAP", - "IPPROTO_EON", - "IPPROTO_ESP", - "IPPROTO_ETHERIP", - "IPPROTO_FRAGMENT", - "IPPROTO_GGP", - "IPPROTO_GMTP", - "IPPROTO_GRE", - "IPPROTO_HELLO", - "IPPROTO_HMP", - "IPPROTO_HOPOPTS", - "IPPROTO_ICMP", - "IPPROTO_ICMPV6", - "IPPROTO_IDP", - "IPPROTO_IDPR", - "IPPROTO_IDRP", - "IPPROTO_IGMP", - "IPPROTO_IGP", - "IPPROTO_IGRP", - "IPPROTO_IL", - "IPPROTO_INLSP", - "IPPROTO_INP", - "IPPROTO_IP", - "IPPROTO_IPCOMP", - "IPPROTO_IPCV", - "IPPROTO_IPEIP", - "IPPROTO_IPIP", - "IPPROTO_IPPC", - "IPPROTO_IPV4", - "IPPROTO_IPV6", - "IPPROTO_IPV6_ICMP", - "IPPROTO_IRTP", - "IPPROTO_KRYPTOLAN", - "IPPROTO_LARP", - "IPPROTO_LEAF1", - "IPPROTO_LEAF2", - "IPPROTO_MAX", - "IPPROTO_MAXID", - "IPPROTO_MEAS", - "IPPROTO_MH", - "IPPROTO_MHRP", - "IPPROTO_MICP", - "IPPROTO_MOBILE", - "IPPROTO_MPLS", - "IPPROTO_MTP", - "IPPROTO_MUX", - "IPPROTO_ND", - "IPPROTO_NHRP", - "IPPROTO_NONE", - "IPPROTO_NSP", - "IPPROTO_NVPII", - "IPPROTO_OLD_DIVERT", - "IPPROTO_OSPFIGP", - "IPPROTO_PFSYNC", - "IPPROTO_PGM", - "IPPROTO_PIGP", - "IPPROTO_PIM", - "IPPROTO_PRM", - "IPPROTO_PUP", - "IPPROTO_PVP", - "IPPROTO_RAW", - "IPPROTO_RCCMON", - "IPPROTO_RDP", - "IPPROTO_ROUTING", - "IPPROTO_RSVP", - "IPPROTO_RVD", - "IPPROTO_SATEXPAK", - "IPPROTO_SATMON", - "IPPROTO_SCCSP", - "IPPROTO_SCTP", - "IPPROTO_SDRP", - "IPPROTO_SEND", - "IPPROTO_SEP", - "IPPROTO_SKIP", - "IPPROTO_SPACER", - "IPPROTO_SRPC", - "IPPROTO_ST", - "IPPROTO_SVMTP", - "IPPROTO_SWIPE", - "IPPROTO_TCF", - "IPPROTO_TCP", - "IPPROTO_TLSP", - "IPPROTO_TP", - "IPPROTO_TPXX", - "IPPROTO_TRUNK1", - "IPPROTO_TRUNK2", - "IPPROTO_TTP", - "IPPROTO_UDP", - "IPPROTO_UDPLITE", - "IPPROTO_VINES", - "IPPROTO_VISA", - "IPPROTO_VMTP", - "IPPROTO_VRRP", - "IPPROTO_WBEXPAK", - "IPPROTO_WBMON", - "IPPROTO_WSN", - "IPPROTO_XNET", - "IPPROTO_XTP", - "IPV6_2292DSTOPTS", - "IPV6_2292HOPLIMIT", - "IPV6_2292HOPOPTS", - "IPV6_2292NEXTHOP", - "IPV6_2292PKTINFO", - "IPV6_2292PKTOPTIONS", - "IPV6_2292RTHDR", - "IPV6_ADDRFORM", - "IPV6_ADD_MEMBERSHIP", - "IPV6_AUTHHDR", - "IPV6_AUTH_LEVEL", - "IPV6_AUTOFLOWLABEL", - "IPV6_BINDANY", - "IPV6_BINDV6ONLY", - "IPV6_BOUND_IF", - "IPV6_CHECKSUM", - "IPV6_DEFAULT_MULTICAST_HOPS", - "IPV6_DEFAULT_MULTICAST_LOOP", - "IPV6_DEFHLIM", - "IPV6_DONTFRAG", - "IPV6_DROP_MEMBERSHIP", - "IPV6_DSTOPTS", - "IPV6_ESP_NETWORK_LEVEL", - "IPV6_ESP_TRANS_LEVEL", - "IPV6_FAITH", - "IPV6_FLOWINFO_MASK", - "IPV6_FLOWLABEL_MASK", - "IPV6_FRAGTTL", - "IPV6_FW_ADD", - "IPV6_FW_DEL", - "IPV6_FW_FLUSH", - "IPV6_FW_GET", - "IPV6_FW_ZERO", - "IPV6_HLIMDEC", - "IPV6_HOPLIMIT", - "IPV6_HOPOPTS", - "IPV6_IPCOMP_LEVEL", - "IPV6_IPSEC_POLICY", - "IPV6_JOIN_ANYCAST", - "IPV6_JOIN_GROUP", - "IPV6_LEAVE_ANYCAST", - "IPV6_LEAVE_GROUP", - "IPV6_MAXHLIM", - "IPV6_MAXOPTHDR", - "IPV6_MAXPACKET", - "IPV6_MAX_GROUP_SRC_FILTER", - "IPV6_MAX_MEMBERSHIPS", - "IPV6_MAX_SOCK_SRC_FILTER", - "IPV6_MIN_MEMBERSHIPS", - "IPV6_MMTU", - "IPV6_MSFILTER", - "IPV6_MTU", - "IPV6_MTU_DISCOVER", - "IPV6_MULTICAST_HOPS", - "IPV6_MULTICAST_IF", - "IPV6_MULTICAST_LOOP", - "IPV6_NEXTHOP", - "IPV6_OPTIONS", - "IPV6_PATHMTU", - "IPV6_PIPEX", - "IPV6_PKTINFO", - "IPV6_PMTUDISC_DO", - "IPV6_PMTUDISC_DONT", - "IPV6_PMTUDISC_PROBE", - "IPV6_PMTUDISC_WANT", - "IPV6_PORTRANGE", - "IPV6_PORTRANGE_DEFAULT", - "IPV6_PORTRANGE_HIGH", - "IPV6_PORTRANGE_LOW", - "IPV6_PREFER_TEMPADDR", - "IPV6_RECVDSTOPTS", - "IPV6_RECVDSTPORT", - "IPV6_RECVERR", - "IPV6_RECVHOPLIMIT", - "IPV6_RECVHOPOPTS", - "IPV6_RECVPATHMTU", - "IPV6_RECVPKTINFO", - "IPV6_RECVRTHDR", - "IPV6_RECVTCLASS", - "IPV6_ROUTER_ALERT", - "IPV6_RTABLE", - "IPV6_RTHDR", - "IPV6_RTHDRDSTOPTS", - "IPV6_RTHDR_LOOSE", - "IPV6_RTHDR_STRICT", - "IPV6_RTHDR_TYPE_0", - "IPV6_RXDSTOPTS", - "IPV6_RXHOPOPTS", - "IPV6_SOCKOPT_RESERVED1", - "IPV6_TCLASS", - "IPV6_UNICAST_HOPS", - "IPV6_USE_MIN_MTU", - "IPV6_V6ONLY", - "IPV6_VERSION", - "IPV6_VERSION_MASK", - "IPV6_XFRM_POLICY", - "IP_ADD_MEMBERSHIP", - "IP_ADD_SOURCE_MEMBERSHIP", - "IP_AUTH_LEVEL", - "IP_BINDANY", - "IP_BLOCK_SOURCE", - "IP_BOUND_IF", - "IP_DEFAULT_MULTICAST_LOOP", - "IP_DEFAULT_MULTICAST_TTL", - "IP_DF", - "IP_DIVERTFL", - "IP_DONTFRAG", - "IP_DROP_MEMBERSHIP", - "IP_DROP_SOURCE_MEMBERSHIP", - "IP_DUMMYNET3", - "IP_DUMMYNET_CONFIGURE", - "IP_DUMMYNET_DEL", - "IP_DUMMYNET_FLUSH", - "IP_DUMMYNET_GET", - "IP_EF", - "IP_ERRORMTU", - "IP_ESP_NETWORK_LEVEL", - "IP_ESP_TRANS_LEVEL", - "IP_FAITH", - "IP_FREEBIND", - "IP_FW3", - "IP_FW_ADD", - "IP_FW_DEL", - "IP_FW_FLUSH", - "IP_FW_GET", - "IP_FW_NAT_CFG", - "IP_FW_NAT_DEL", - "IP_FW_NAT_GET_CONFIG", - "IP_FW_NAT_GET_LOG", - "IP_FW_RESETLOG", - "IP_FW_TABLE_ADD", - "IP_FW_TABLE_DEL", - "IP_FW_TABLE_FLUSH", - "IP_FW_TABLE_GETSIZE", - "IP_FW_TABLE_LIST", - "IP_FW_ZERO", - "IP_HDRINCL", - "IP_IPCOMP_LEVEL", - "IP_IPSECFLOWINFO", - "IP_IPSEC_LOCAL_AUTH", - "IP_IPSEC_LOCAL_CRED", - "IP_IPSEC_LOCAL_ID", - "IP_IPSEC_POLICY", - "IP_IPSEC_REMOTE_AUTH", - "IP_IPSEC_REMOTE_CRED", - "IP_IPSEC_REMOTE_ID", - "IP_MAXPACKET", - "IP_MAX_GROUP_SRC_FILTER", - "IP_MAX_MEMBERSHIPS", - "IP_MAX_SOCK_MUTE_FILTER", - "IP_MAX_SOCK_SRC_FILTER", - "IP_MAX_SOURCE_FILTER", - "IP_MF", - "IP_MINFRAGSIZE", - "IP_MINTTL", - "IP_MIN_MEMBERSHIPS", - "IP_MSFILTER", - "IP_MSS", - "IP_MTU", - "IP_MTU_DISCOVER", - "IP_MULTICAST_IF", - "IP_MULTICAST_IFINDEX", - "IP_MULTICAST_LOOP", - "IP_MULTICAST_TTL", - "IP_MULTICAST_VIF", - "IP_NAT__XXX", - "IP_OFFMASK", - "IP_OLD_FW_ADD", - "IP_OLD_FW_DEL", - "IP_OLD_FW_FLUSH", - "IP_OLD_FW_GET", - "IP_OLD_FW_RESETLOG", - "IP_OLD_FW_ZERO", - "IP_ONESBCAST", - "IP_OPTIONS", - "IP_ORIGDSTADDR", - "IP_PASSSEC", - "IP_PIPEX", - "IP_PKTINFO", - "IP_PKTOPTIONS", - "IP_PMTUDISC", - "IP_PMTUDISC_DO", - "IP_PMTUDISC_DONT", - "IP_PMTUDISC_PROBE", - "IP_PMTUDISC_WANT", - "IP_PORTRANGE", - "IP_PORTRANGE_DEFAULT", - "IP_PORTRANGE_HIGH", - "IP_PORTRANGE_LOW", - "IP_RECVDSTADDR", - "IP_RECVDSTPORT", - "IP_RECVERR", - "IP_RECVIF", - "IP_RECVOPTS", - "IP_RECVORIGDSTADDR", - "IP_RECVPKTINFO", - "IP_RECVRETOPTS", - "IP_RECVRTABLE", - "IP_RECVTOS", - "IP_RECVTTL", - "IP_RETOPTS", - "IP_RF", - "IP_ROUTER_ALERT", - "IP_RSVP_OFF", - "IP_RSVP_ON", - "IP_RSVP_VIF_OFF", - "IP_RSVP_VIF_ON", - "IP_RTABLE", - "IP_SENDSRCADDR", - "IP_STRIPHDR", - "IP_TOS", - "IP_TRAFFIC_MGT_BACKGROUND", - "IP_TRANSPARENT", - "IP_TTL", - "IP_UNBLOCK_SOURCE", - "IP_XFRM_POLICY", - "IPv6MTUInfo", - "IPv6Mreq", - "ISIG", - "ISTRIP", - "IUCLC", - "IUTF8", - "IXANY", - "IXOFF", - "IXON", - "IfAddrmsg", - "IfAnnounceMsghdr", - "IfData", - "IfInfomsg", - "IfMsghdr", - "IfaMsghdr", - "IfmaMsghdr", - "IfmaMsghdr2", - "ImplementsGetwd", - "Inet4Pktinfo", - "Inet6Pktinfo", - "InotifyAddWatch", - "InotifyEvent", - "InotifyInit", - "InotifyInit1", - "InotifyRmWatch", - "InterfaceAddrMessage", - "InterfaceAnnounceMessage", - "InterfaceInfo", - "InterfaceMessage", - "InterfaceMulticastAddrMessage", - "InvalidHandle", - "Ioperm", - "Iopl", - "Iovec", - "IpAdapterInfo", - "IpAddrString", - "IpAddressString", - "IpMaskString", - "Issetugid", - "KEY_ALL_ACCESS", - "KEY_CREATE_LINK", - "KEY_CREATE_SUB_KEY", - "KEY_ENUMERATE_SUB_KEYS", - "KEY_EXECUTE", - "KEY_NOTIFY", - "KEY_QUERY_VALUE", - "KEY_READ", - "KEY_SET_VALUE", - "KEY_WOW64_32KEY", - "KEY_WOW64_64KEY", - "KEY_WRITE", - "Kevent", - "Kevent_t", - "Kill", - "Klogctl", - "Kqueue", - "LANG_ENGLISH", - "LAYERED_PROTOCOL", - "LCNT_OVERLOAD_FLUSH", - "LINUX_REBOOT_CMD_CAD_OFF", - "LINUX_REBOOT_CMD_CAD_ON", - "LINUX_REBOOT_CMD_HALT", - "LINUX_REBOOT_CMD_KEXEC", - "LINUX_REBOOT_CMD_POWER_OFF", - "LINUX_REBOOT_CMD_RESTART", - "LINUX_REBOOT_CMD_RESTART2", - "LINUX_REBOOT_CMD_SW_SUSPEND", - "LINUX_REBOOT_MAGIC1", - "LINUX_REBOOT_MAGIC2", - "LOCK_EX", - "LOCK_NB", - "LOCK_SH", - "LOCK_UN", - "LazyDLL", - "LazyProc", - "Lchown", - "Linger", - "Link", - "Listen", - "Listxattr", - "LoadCancelIoEx", - "LoadConnectEx", - "LoadCreateSymbolicLink", - "LoadDLL", - "LoadGetAddrInfo", - "LoadLibrary", - "LoadSetFileCompletionNotificationModes", - "LocalFree", - "Log2phys_t", - "LookupAccountName", - "LookupAccountSid", - "LookupSID", - "LsfJump", - "LsfSocket", - "LsfStmt", - "Lstat", - "MADV_AUTOSYNC", - "MADV_CAN_REUSE", - "MADV_CORE", - "MADV_DOFORK", - "MADV_DONTFORK", - "MADV_DONTNEED", - "MADV_FREE", - "MADV_FREE_REUSABLE", - "MADV_FREE_REUSE", - "MADV_HUGEPAGE", - "MADV_HWPOISON", - "MADV_MERGEABLE", - "MADV_NOCORE", - "MADV_NOHUGEPAGE", - "MADV_NORMAL", - "MADV_NOSYNC", - "MADV_PROTECT", - "MADV_RANDOM", - "MADV_REMOVE", - "MADV_SEQUENTIAL", - "MADV_SPACEAVAIL", - "MADV_UNMERGEABLE", - "MADV_WILLNEED", - "MADV_ZERO_WIRED_PAGES", - "MAP_32BIT", - "MAP_ALIGNED_SUPER", - "MAP_ALIGNMENT_16MB", - "MAP_ALIGNMENT_1TB", - "MAP_ALIGNMENT_256TB", - "MAP_ALIGNMENT_4GB", - "MAP_ALIGNMENT_64KB", - "MAP_ALIGNMENT_64PB", - "MAP_ALIGNMENT_MASK", - "MAP_ALIGNMENT_SHIFT", - "MAP_ANON", - "MAP_ANONYMOUS", - "MAP_COPY", - "MAP_DENYWRITE", - "MAP_EXECUTABLE", - "MAP_FILE", - "MAP_FIXED", - "MAP_FLAGMASK", - "MAP_GROWSDOWN", - "MAP_HASSEMAPHORE", - "MAP_HUGETLB", - "MAP_INHERIT", - "MAP_INHERIT_COPY", - "MAP_INHERIT_DEFAULT", - "MAP_INHERIT_DONATE_COPY", - "MAP_INHERIT_NONE", - "MAP_INHERIT_SHARE", - "MAP_JIT", - "MAP_LOCKED", - "MAP_NOCACHE", - "MAP_NOCORE", - "MAP_NOEXTEND", - "MAP_NONBLOCK", - "MAP_NORESERVE", - "MAP_NOSYNC", - "MAP_POPULATE", - "MAP_PREFAULT_READ", - "MAP_PRIVATE", - "MAP_RENAME", - "MAP_RESERVED0080", - "MAP_RESERVED0100", - "MAP_SHARED", - "MAP_STACK", - "MAP_TRYFIXED", - "MAP_TYPE", - "MAP_WIRED", - "MAXIMUM_REPARSE_DATA_BUFFER_SIZE", - "MAXLEN_IFDESCR", - "MAXLEN_PHYSADDR", - "MAX_ADAPTER_ADDRESS_LENGTH", - "MAX_ADAPTER_DESCRIPTION_LENGTH", - "MAX_ADAPTER_NAME_LENGTH", - "MAX_COMPUTERNAME_LENGTH", - "MAX_INTERFACE_NAME_LEN", - "MAX_LONG_PATH", - "MAX_PATH", - "MAX_PROTOCOL_CHAIN", - "MCL_CURRENT", - "MCL_FUTURE", - "MNT_DETACH", - "MNT_EXPIRE", - "MNT_FORCE", - "MSG_BCAST", - "MSG_CMSG_CLOEXEC", - "MSG_COMPAT", - "MSG_CONFIRM", - "MSG_CONTROLMBUF", - "MSG_CTRUNC", - "MSG_DONTROUTE", - "MSG_DONTWAIT", - "MSG_EOF", - "MSG_EOR", - "MSG_ERRQUEUE", - "MSG_FASTOPEN", - "MSG_FIN", - "MSG_FLUSH", - "MSG_HAVEMORE", - "MSG_HOLD", - "MSG_IOVUSRSPACE", - "MSG_LENUSRSPACE", - "MSG_MCAST", - "MSG_MORE", - "MSG_NAMEMBUF", - "MSG_NBIO", - "MSG_NEEDSA", - "MSG_NOSIGNAL", - "MSG_NOTIFICATION", - "MSG_OOB", - "MSG_PEEK", - "MSG_PROXY", - "MSG_RCVMORE", - "MSG_RST", - "MSG_SEND", - "MSG_SYN", - "MSG_TRUNC", - "MSG_TRYHARD", - "MSG_USERFLAGS", - "MSG_WAITALL", - "MSG_WAITFORONE", - "MSG_WAITSTREAM", - "MS_ACTIVE", - "MS_ASYNC", - "MS_BIND", - "MS_DEACTIVATE", - "MS_DIRSYNC", - "MS_INVALIDATE", - "MS_I_VERSION", - "MS_KERNMOUNT", - "MS_KILLPAGES", - "MS_MANDLOCK", - "MS_MGC_MSK", - "MS_MGC_VAL", - "MS_MOVE", - "MS_NOATIME", - "MS_NODEV", - "MS_NODIRATIME", - "MS_NOEXEC", - "MS_NOSUID", - "MS_NOUSER", - "MS_POSIXACL", - "MS_PRIVATE", - "MS_RDONLY", - "MS_REC", - "MS_RELATIME", - "MS_REMOUNT", - "MS_RMT_MASK", - "MS_SHARED", - "MS_SILENT", - "MS_SLAVE", - "MS_STRICTATIME", - "MS_SYNC", - "MS_SYNCHRONOUS", - "MS_UNBINDABLE", - "Madvise", - "MapViewOfFile", - "MaxTokenInfoClass", - "Mclpool", - "MibIfRow", - "Mkdir", - "Mkdirat", - "Mkfifo", - "Mknod", - "Mknodat", - "Mlock", - "Mlockall", - "Mmap", - "Mount", - "MoveFile", - "Mprotect", - "Msghdr", - "Munlock", - "Munlockall", - "Munmap", - "MustLoadDLL", - "NAME_MAX", - "NETLINK_ADD_MEMBERSHIP", - "NETLINK_AUDIT", - "NETLINK_BROADCAST_ERROR", - "NETLINK_CONNECTOR", - "NETLINK_DNRTMSG", - "NETLINK_DROP_MEMBERSHIP", - "NETLINK_ECRYPTFS", - "NETLINK_FIB_LOOKUP", - "NETLINK_FIREWALL", - "NETLINK_GENERIC", - "NETLINK_INET_DIAG", - "NETLINK_IP6_FW", - "NETLINK_ISCSI", - "NETLINK_KOBJECT_UEVENT", - "NETLINK_NETFILTER", - "NETLINK_NFLOG", - "NETLINK_NO_ENOBUFS", - "NETLINK_PKTINFO", - "NETLINK_RDMA", - "NETLINK_ROUTE", - "NETLINK_SCSITRANSPORT", - "NETLINK_SELINUX", - "NETLINK_UNUSED", - "NETLINK_USERSOCK", - "NETLINK_XFRM", - "NET_RT_DUMP", - "NET_RT_DUMP2", - "NET_RT_FLAGS", - "NET_RT_IFLIST", - "NET_RT_IFLIST2", - "NET_RT_IFLISTL", - "NET_RT_IFMALIST", - "NET_RT_MAXID", - "NET_RT_OIFLIST", - "NET_RT_OOIFLIST", - "NET_RT_STAT", - "NET_RT_STATS", - "NET_RT_TABLE", - "NET_RT_TRASH", - "NLA_ALIGNTO", - "NLA_F_NESTED", - "NLA_F_NET_BYTEORDER", - "NLA_HDRLEN", - "NLMSG_ALIGNTO", - "NLMSG_DONE", - "NLMSG_ERROR", - "NLMSG_HDRLEN", - "NLMSG_MIN_TYPE", - "NLMSG_NOOP", - "NLMSG_OVERRUN", - "NLM_F_ACK", - "NLM_F_APPEND", - "NLM_F_ATOMIC", - "NLM_F_CREATE", - "NLM_F_DUMP", - "NLM_F_ECHO", - "NLM_F_EXCL", - "NLM_F_MATCH", - "NLM_F_MULTI", - "NLM_F_REPLACE", - "NLM_F_REQUEST", - "NLM_F_ROOT", - "NOFLSH", - "NOTE_ABSOLUTE", - "NOTE_ATTRIB", - "NOTE_BACKGROUND", - "NOTE_CHILD", - "NOTE_CRITICAL", - "NOTE_DELETE", - "NOTE_EOF", - "NOTE_EXEC", - "NOTE_EXIT", - "NOTE_EXITSTATUS", - "NOTE_EXIT_CSERROR", - "NOTE_EXIT_DECRYPTFAIL", - "NOTE_EXIT_DETAIL", - "NOTE_EXIT_DETAIL_MASK", - "NOTE_EXIT_MEMORY", - "NOTE_EXIT_REPARENTED", - "NOTE_EXTEND", - "NOTE_FFAND", - "NOTE_FFCOPY", - "NOTE_FFCTRLMASK", - "NOTE_FFLAGSMASK", - "NOTE_FFNOP", - "NOTE_FFOR", - "NOTE_FORK", - "NOTE_LEEWAY", - "NOTE_LINK", - "NOTE_LOWAT", - "NOTE_NONE", - "NOTE_NSECONDS", - "NOTE_PCTRLMASK", - "NOTE_PDATAMASK", - "NOTE_REAP", - "NOTE_RENAME", - "NOTE_RESOURCEEND", - "NOTE_REVOKE", - "NOTE_SECONDS", - "NOTE_SIGNAL", - "NOTE_TRACK", - "NOTE_TRACKERR", - "NOTE_TRIGGER", - "NOTE_TRUNCATE", - "NOTE_USECONDS", - "NOTE_VM_ERROR", - "NOTE_VM_PRESSURE", - "NOTE_VM_PRESSURE_SUDDEN_TERMINATE", - "NOTE_VM_PRESSURE_TERMINATE", - "NOTE_WRITE", - "NameCanonical", - "NameCanonicalEx", - "NameDisplay", - "NameDnsDomain", - "NameFullyQualifiedDN", - "NameSamCompatible", - "NameServicePrincipal", - "NameUniqueId", - "NameUnknown", - "NameUserPrincipal", - "Nanosleep", - "NetApiBufferFree", - "NetGetJoinInformation", - "NetSetupDomainName", - "NetSetupUnjoined", - "NetSetupUnknownStatus", - "NetSetupWorkgroupName", - "NetUserGetInfo", - "NetlinkMessage", - "NetlinkRIB", - "NetlinkRouteAttr", - "NetlinkRouteRequest", - "NewCallback", - "NewCallbackCDecl", - "NewLazyDLL", - "NlAttr", - "NlMsgerr", - "NlMsghdr", - "NsecToFiletime", - "NsecToTimespec", - "NsecToTimeval", - "Ntohs", - "OCRNL", - "OFDEL", - "OFILL", - "OFIOGETBMAP", - "OID_PKIX_KP_SERVER_AUTH", - "OID_SERVER_GATED_CRYPTO", - "OID_SGC_NETSCAPE", - "OLCUC", - "ONLCR", - "ONLRET", - "ONOCR", - "ONOEOT", - "OPEN_ALWAYS", - "OPEN_EXISTING", - "OPOST", - "O_ACCMODE", - "O_ALERT", - "O_ALT_IO", - "O_APPEND", - "O_ASYNC", - "O_CLOEXEC", - "O_CREAT", - "O_DIRECT", - "O_DIRECTORY", - "O_DP_GETRAWENCRYPTED", - "O_DSYNC", - "O_EVTONLY", - "O_EXCL", - "O_EXEC", - "O_EXLOCK", - "O_FSYNC", - "O_LARGEFILE", - "O_NDELAY", - "O_NOATIME", - "O_NOCTTY", - "O_NOFOLLOW", - "O_NONBLOCK", - "O_NOSIGPIPE", - "O_POPUP", - "O_RDONLY", - "O_RDWR", - "O_RSYNC", - "O_SHLOCK", - "O_SYMLINK", - "O_SYNC", - "O_TRUNC", - "O_TTY_INIT", - "O_WRONLY", - "Open", - "OpenCurrentProcessToken", - "OpenProcess", - "OpenProcessToken", - "Openat", - "Overlapped", - "PACKET_ADD_MEMBERSHIP", - "PACKET_BROADCAST", - "PACKET_DROP_MEMBERSHIP", - "PACKET_FASTROUTE", - "PACKET_HOST", - "PACKET_LOOPBACK", - "PACKET_MR_ALLMULTI", - "PACKET_MR_MULTICAST", - "PACKET_MR_PROMISC", - "PACKET_MULTICAST", - "PACKET_OTHERHOST", - "PACKET_OUTGOING", - "PACKET_RECV_OUTPUT", - "PACKET_RX_RING", - "PACKET_STATISTICS", - "PAGE_EXECUTE_READ", - "PAGE_EXECUTE_READWRITE", - "PAGE_EXECUTE_WRITECOPY", - "PAGE_READONLY", - "PAGE_READWRITE", - "PAGE_WRITECOPY", - "PARENB", - "PARMRK", - "PARODD", - "PENDIN", - "PFL_HIDDEN", - "PFL_MATCHES_PROTOCOL_ZERO", - "PFL_MULTIPLE_PROTO_ENTRIES", - "PFL_NETWORKDIRECT_PROVIDER", - "PFL_RECOMMENDED_PROTO_ENTRY", - "PF_FLUSH", - "PKCS_7_ASN_ENCODING", - "PMC5_PIPELINE_FLUSH", - "PRIO_PGRP", - "PRIO_PROCESS", - "PRIO_USER", - "PRI_IOFLUSH", - "PROCESS_QUERY_INFORMATION", - "PROCESS_TERMINATE", - "PROT_EXEC", - "PROT_GROWSDOWN", - "PROT_GROWSUP", - "PROT_NONE", - "PROT_READ", - "PROT_WRITE", - "PROV_DH_SCHANNEL", - "PROV_DSS", - "PROV_DSS_DH", - "PROV_EC_ECDSA_FULL", - "PROV_EC_ECDSA_SIG", - "PROV_EC_ECNRA_FULL", - "PROV_EC_ECNRA_SIG", - "PROV_FORTEZZA", - "PROV_INTEL_SEC", - "PROV_MS_EXCHANGE", - "PROV_REPLACE_OWF", - "PROV_RNG", - "PROV_RSA_AES", - "PROV_RSA_FULL", - "PROV_RSA_SCHANNEL", - "PROV_RSA_SIG", - "PROV_SPYRUS_LYNKS", - "PROV_SSL", - "PR_CAPBSET_DROP", - "PR_CAPBSET_READ", - "PR_CLEAR_SECCOMP_FILTER", - "PR_ENDIAN_BIG", - "PR_ENDIAN_LITTLE", - "PR_ENDIAN_PPC_LITTLE", - "PR_FPEMU_NOPRINT", - "PR_FPEMU_SIGFPE", - "PR_FP_EXC_ASYNC", - "PR_FP_EXC_DISABLED", - "PR_FP_EXC_DIV", - "PR_FP_EXC_INV", - "PR_FP_EXC_NONRECOV", - "PR_FP_EXC_OVF", - "PR_FP_EXC_PRECISE", - "PR_FP_EXC_RES", - "PR_FP_EXC_SW_ENABLE", - "PR_FP_EXC_UND", - "PR_GET_DUMPABLE", - "PR_GET_ENDIAN", - "PR_GET_FPEMU", - "PR_GET_FPEXC", - "PR_GET_KEEPCAPS", - "PR_GET_NAME", - "PR_GET_PDEATHSIG", - "PR_GET_SECCOMP", - "PR_GET_SECCOMP_FILTER", - "PR_GET_SECUREBITS", - "PR_GET_TIMERSLACK", - "PR_GET_TIMING", - "PR_GET_TSC", - "PR_GET_UNALIGN", - "PR_MCE_KILL", - "PR_MCE_KILL_CLEAR", - "PR_MCE_KILL_DEFAULT", - "PR_MCE_KILL_EARLY", - "PR_MCE_KILL_GET", - "PR_MCE_KILL_LATE", - "PR_MCE_KILL_SET", - "PR_SECCOMP_FILTER_EVENT", - "PR_SECCOMP_FILTER_SYSCALL", - "PR_SET_DUMPABLE", - "PR_SET_ENDIAN", - "PR_SET_FPEMU", - "PR_SET_FPEXC", - "PR_SET_KEEPCAPS", - "PR_SET_NAME", - "PR_SET_PDEATHSIG", - "PR_SET_PTRACER", - "PR_SET_SECCOMP", - "PR_SET_SECCOMP_FILTER", - "PR_SET_SECUREBITS", - "PR_SET_TIMERSLACK", - "PR_SET_TIMING", - "PR_SET_TSC", - "PR_SET_UNALIGN", - "PR_TASK_PERF_EVENTS_DISABLE", - "PR_TASK_PERF_EVENTS_ENABLE", - "PR_TIMING_STATISTICAL", - "PR_TIMING_TIMESTAMP", - "PR_TSC_ENABLE", - "PR_TSC_SIGSEGV", - "PR_UNALIGN_NOPRINT", - "PR_UNALIGN_SIGBUS", - "PTRACE_ARCH_PRCTL", - "PTRACE_ATTACH", - "PTRACE_CONT", - "PTRACE_DETACH", - "PTRACE_EVENT_CLONE", - "PTRACE_EVENT_EXEC", - "PTRACE_EVENT_EXIT", - "PTRACE_EVENT_FORK", - "PTRACE_EVENT_VFORK", - "PTRACE_EVENT_VFORK_DONE", - "PTRACE_GETCRUNCHREGS", - "PTRACE_GETEVENTMSG", - "PTRACE_GETFPREGS", - "PTRACE_GETFPXREGS", - "PTRACE_GETHBPREGS", - "PTRACE_GETREGS", - "PTRACE_GETREGSET", - "PTRACE_GETSIGINFO", - "PTRACE_GETVFPREGS", - "PTRACE_GETWMMXREGS", - "PTRACE_GET_THREAD_AREA", - "PTRACE_KILL", - "PTRACE_OLDSETOPTIONS", - "PTRACE_O_MASK", - "PTRACE_O_TRACECLONE", - "PTRACE_O_TRACEEXEC", - "PTRACE_O_TRACEEXIT", - "PTRACE_O_TRACEFORK", - "PTRACE_O_TRACESYSGOOD", - "PTRACE_O_TRACEVFORK", - "PTRACE_O_TRACEVFORKDONE", - "PTRACE_PEEKDATA", - "PTRACE_PEEKTEXT", - "PTRACE_PEEKUSR", - "PTRACE_POKEDATA", - "PTRACE_POKETEXT", - "PTRACE_POKEUSR", - "PTRACE_SETCRUNCHREGS", - "PTRACE_SETFPREGS", - "PTRACE_SETFPXREGS", - "PTRACE_SETHBPREGS", - "PTRACE_SETOPTIONS", - "PTRACE_SETREGS", - "PTRACE_SETREGSET", - "PTRACE_SETSIGINFO", - "PTRACE_SETVFPREGS", - "PTRACE_SETWMMXREGS", - "PTRACE_SET_SYSCALL", - "PTRACE_SET_THREAD_AREA", - "PTRACE_SINGLEBLOCK", - "PTRACE_SINGLESTEP", - "PTRACE_SYSCALL", - "PTRACE_SYSEMU", - "PTRACE_SYSEMU_SINGLESTEP", - "PTRACE_TRACEME", - "PT_ATTACH", - "PT_ATTACHEXC", - "PT_CONTINUE", - "PT_DATA_ADDR", - "PT_DENY_ATTACH", - "PT_DETACH", - "PT_FIRSTMACH", - "PT_FORCEQUOTA", - "PT_KILL", - "PT_MASK", - "PT_READ_D", - "PT_READ_I", - "PT_READ_U", - "PT_SIGEXC", - "PT_STEP", - "PT_TEXT_ADDR", - "PT_TEXT_END_ADDR", - "PT_THUPDATE", - "PT_TRACE_ME", - "PT_WRITE_D", - "PT_WRITE_I", - "PT_WRITE_U", - "ParseDirent", - "ParseNetlinkMessage", - "ParseNetlinkRouteAttr", - "ParseRoutingMessage", - "ParseRoutingSockaddr", - "ParseSocketControlMessage", - "ParseUnixCredentials", - "ParseUnixRights", - "PathMax", - "Pathconf", - "Pause", - "Pipe", - "Pipe2", - "PivotRoot", - "Pointer", - "PostQueuedCompletionStatus", - "Pread", - "Proc", - "ProcAttr", - "Process32First", - "Process32Next", - "ProcessEntry32", - "ProcessInformation", - "Protoent", - "PtraceAttach", - "PtraceCont", - "PtraceDetach", - "PtraceGetEventMsg", - "PtraceGetRegs", - "PtracePeekData", - "PtracePeekText", - "PtracePokeData", - "PtracePokeText", - "PtraceRegs", - "PtraceSetOptions", - "PtraceSetRegs", - "PtraceSingleStep", - "PtraceSyscall", - "Pwrite", - "REG_BINARY", - "REG_DWORD", - "REG_DWORD_BIG_ENDIAN", - "REG_DWORD_LITTLE_ENDIAN", - "REG_EXPAND_SZ", - "REG_FULL_RESOURCE_DESCRIPTOR", - "REG_LINK", - "REG_MULTI_SZ", - "REG_NONE", - "REG_QWORD", - "REG_QWORD_LITTLE_ENDIAN", - "REG_RESOURCE_LIST", - "REG_RESOURCE_REQUIREMENTS_LIST", - "REG_SZ", - "RLIMIT_AS", - "RLIMIT_CORE", - "RLIMIT_CPU", - "RLIMIT_CPU_USAGE_MONITOR", - "RLIMIT_DATA", - "RLIMIT_FSIZE", - "RLIMIT_NOFILE", - "RLIMIT_STACK", - "RLIM_INFINITY", - "RTAX_ADVMSS", - "RTAX_AUTHOR", - "RTAX_BRD", - "RTAX_CWND", - "RTAX_DST", - "RTAX_FEATURES", - "RTAX_FEATURE_ALLFRAG", - "RTAX_FEATURE_ECN", - "RTAX_FEATURE_SACK", - "RTAX_FEATURE_TIMESTAMP", - "RTAX_GATEWAY", - "RTAX_GENMASK", - "RTAX_HOPLIMIT", - "RTAX_IFA", - "RTAX_IFP", - "RTAX_INITCWND", - "RTAX_INITRWND", - "RTAX_LABEL", - "RTAX_LOCK", - "RTAX_MAX", - "RTAX_MTU", - "RTAX_NETMASK", - "RTAX_REORDERING", - "RTAX_RTO_MIN", - "RTAX_RTT", - "RTAX_RTTVAR", - "RTAX_SRC", - "RTAX_SRCMASK", - "RTAX_SSTHRESH", - "RTAX_TAG", - "RTAX_UNSPEC", - "RTAX_WINDOW", - "RTA_ALIGNTO", - "RTA_AUTHOR", - "RTA_BRD", - "RTA_CACHEINFO", - "RTA_DST", - "RTA_FLOW", - "RTA_GATEWAY", - "RTA_GENMASK", - "RTA_IFA", - "RTA_IFP", - "RTA_IIF", - "RTA_LABEL", - "RTA_MAX", - "RTA_METRICS", - "RTA_MULTIPATH", - "RTA_NETMASK", - "RTA_OIF", - "RTA_PREFSRC", - "RTA_PRIORITY", - "RTA_SRC", - "RTA_SRCMASK", - "RTA_TABLE", - "RTA_TAG", - "RTA_UNSPEC", - "RTCF_DIRECTSRC", - "RTCF_DOREDIRECT", - "RTCF_LOG", - "RTCF_MASQ", - "RTCF_NAT", - "RTCF_VALVE", - "RTF_ADDRCLASSMASK", - "RTF_ADDRCONF", - "RTF_ALLONLINK", - "RTF_ANNOUNCE", - "RTF_BLACKHOLE", - "RTF_BROADCAST", - "RTF_CACHE", - "RTF_CLONED", - "RTF_CLONING", - "RTF_CONDEMNED", - "RTF_DEFAULT", - "RTF_DELCLONE", - "RTF_DONE", - "RTF_DYNAMIC", - "RTF_FLOW", - "RTF_FMASK", - "RTF_GATEWAY", - "RTF_GWFLAG_COMPAT", - "RTF_HOST", - "RTF_IFREF", - "RTF_IFSCOPE", - "RTF_INTERFACE", - "RTF_IRTT", - "RTF_LINKRT", - "RTF_LLDATA", - "RTF_LLINFO", - "RTF_LOCAL", - "RTF_MASK", - "RTF_MODIFIED", - "RTF_MPATH", - "RTF_MPLS", - "RTF_MSS", - "RTF_MTU", - "RTF_MULTICAST", - "RTF_NAT", - "RTF_NOFORWARD", - "RTF_NONEXTHOP", - "RTF_NOPMTUDISC", - "RTF_PERMANENT_ARP", - "RTF_PINNED", - "RTF_POLICY", - "RTF_PRCLONING", - "RTF_PROTO1", - "RTF_PROTO2", - "RTF_PROTO3", - "RTF_PROXY", - "RTF_REINSTATE", - "RTF_REJECT", - "RTF_RNH_LOCKED", - "RTF_ROUTER", - "RTF_SOURCE", - "RTF_SRC", - "RTF_STATIC", - "RTF_STICKY", - "RTF_THROW", - "RTF_TUNNEL", - "RTF_UP", - "RTF_USETRAILERS", - "RTF_WASCLONED", - "RTF_WINDOW", - "RTF_XRESOLVE", - "RTM_ADD", - "RTM_BASE", - "RTM_CHANGE", - "RTM_CHGADDR", - "RTM_DELACTION", - "RTM_DELADDR", - "RTM_DELADDRLABEL", - "RTM_DELETE", - "RTM_DELLINK", - "RTM_DELMADDR", - "RTM_DELNEIGH", - "RTM_DELQDISC", - "RTM_DELROUTE", - "RTM_DELRULE", - "RTM_DELTCLASS", - "RTM_DELTFILTER", - "RTM_DESYNC", - "RTM_F_CLONED", - "RTM_F_EQUALIZE", - "RTM_F_NOTIFY", - "RTM_F_PREFIX", - "RTM_GET", - "RTM_GET2", - "RTM_GETACTION", - "RTM_GETADDR", - "RTM_GETADDRLABEL", - "RTM_GETANYCAST", - "RTM_GETDCB", - "RTM_GETLINK", - "RTM_GETMULTICAST", - "RTM_GETNEIGH", - "RTM_GETNEIGHTBL", - "RTM_GETQDISC", - "RTM_GETROUTE", - "RTM_GETRULE", - "RTM_GETTCLASS", - "RTM_GETTFILTER", - "RTM_IEEE80211", - "RTM_IFANNOUNCE", - "RTM_IFINFO", - "RTM_IFINFO2", - "RTM_LLINFO_UPD", - "RTM_LOCK", - "RTM_LOSING", - "RTM_MAX", - "RTM_MAXSIZE", - "RTM_MISS", - "RTM_NEWACTION", - "RTM_NEWADDR", - "RTM_NEWADDRLABEL", - "RTM_NEWLINK", - "RTM_NEWMADDR", - "RTM_NEWMADDR2", - "RTM_NEWNDUSEROPT", - "RTM_NEWNEIGH", - "RTM_NEWNEIGHTBL", - "RTM_NEWPREFIX", - "RTM_NEWQDISC", - "RTM_NEWROUTE", - "RTM_NEWRULE", - "RTM_NEWTCLASS", - "RTM_NEWTFILTER", - "RTM_NR_FAMILIES", - "RTM_NR_MSGTYPES", - "RTM_OIFINFO", - "RTM_OLDADD", - "RTM_OLDDEL", - "RTM_OOIFINFO", - "RTM_REDIRECT", - "RTM_RESOLVE", - "RTM_RTTUNIT", - "RTM_SETDCB", - "RTM_SETGATE", - "RTM_SETLINK", - "RTM_SETNEIGHTBL", - "RTM_VERSION", - "RTNH_ALIGNTO", - "RTNH_F_DEAD", - "RTNH_F_ONLINK", - "RTNH_F_PERVASIVE", - "RTNLGRP_IPV4_IFADDR", - "RTNLGRP_IPV4_MROUTE", - "RTNLGRP_IPV4_ROUTE", - "RTNLGRP_IPV4_RULE", - "RTNLGRP_IPV6_IFADDR", - "RTNLGRP_IPV6_IFINFO", - "RTNLGRP_IPV6_MROUTE", - "RTNLGRP_IPV6_PREFIX", - "RTNLGRP_IPV6_ROUTE", - "RTNLGRP_IPV6_RULE", - "RTNLGRP_LINK", - "RTNLGRP_ND_USEROPT", - "RTNLGRP_NEIGH", - "RTNLGRP_NONE", - "RTNLGRP_NOTIFY", - "RTNLGRP_TC", - "RTN_ANYCAST", - "RTN_BLACKHOLE", - "RTN_BROADCAST", - "RTN_LOCAL", - "RTN_MAX", - "RTN_MULTICAST", - "RTN_NAT", - "RTN_PROHIBIT", - "RTN_THROW", - "RTN_UNICAST", - "RTN_UNREACHABLE", - "RTN_UNSPEC", - "RTN_XRESOLVE", - "RTPROT_BIRD", - "RTPROT_BOOT", - "RTPROT_DHCP", - "RTPROT_DNROUTED", - "RTPROT_GATED", - "RTPROT_KERNEL", - "RTPROT_MRT", - "RTPROT_NTK", - "RTPROT_RA", - "RTPROT_REDIRECT", - "RTPROT_STATIC", - "RTPROT_UNSPEC", - "RTPROT_XORP", - "RTPROT_ZEBRA", - "RTV_EXPIRE", - "RTV_HOPCOUNT", - "RTV_MTU", - "RTV_RPIPE", - "RTV_RTT", - "RTV_RTTVAR", - "RTV_SPIPE", - "RTV_SSTHRESH", - "RTV_WEIGHT", - "RT_CACHING_CONTEXT", - "RT_CLASS_DEFAULT", - "RT_CLASS_LOCAL", - "RT_CLASS_MAIN", - "RT_CLASS_MAX", - "RT_CLASS_UNSPEC", - "RT_DEFAULT_FIB", - "RT_NORTREF", - "RT_SCOPE_HOST", - "RT_SCOPE_LINK", - "RT_SCOPE_NOWHERE", - "RT_SCOPE_SITE", - "RT_SCOPE_UNIVERSE", - "RT_TABLEID_MAX", - "RT_TABLE_COMPAT", - "RT_TABLE_DEFAULT", - "RT_TABLE_LOCAL", - "RT_TABLE_MAIN", - "RT_TABLE_MAX", - "RT_TABLE_UNSPEC", - "RUSAGE_CHILDREN", - "RUSAGE_SELF", - "RUSAGE_THREAD", - "Radvisory_t", - "RawConn", - "RawSockaddr", - "RawSockaddrAny", - "RawSockaddrDatalink", - "RawSockaddrInet4", - "RawSockaddrInet6", - "RawSockaddrLinklayer", - "RawSockaddrNetlink", - "RawSockaddrUnix", - "RawSyscall", - "RawSyscall6", - "Read", - "ReadConsole", - "ReadDirectoryChanges", - "ReadDirent", - "ReadFile", - "Readlink", - "Reboot", - "Recvfrom", - "Recvmsg", - "RegCloseKey", - "RegEnumKeyEx", - "RegOpenKeyEx", - "RegQueryInfoKey", - "RegQueryValueEx", - "RemoveDirectory", - "Removexattr", - "Rename", - "Renameat", - "Revoke", - "Rlimit", - "Rmdir", - "RouteMessage", - "RouteRIB", - "RoutingMessage", - "RtAttr", - "RtGenmsg", - "RtMetrics", - "RtMsg", - "RtMsghdr", - "RtNexthop", - "Rusage", - "SCM_BINTIME", - "SCM_CREDENTIALS", - "SCM_CREDS", - "SCM_RIGHTS", - "SCM_TIMESTAMP", - "SCM_TIMESTAMPING", - "SCM_TIMESTAMPNS", - "SCM_TIMESTAMP_MONOTONIC", - "SHUT_RD", - "SHUT_RDWR", - "SHUT_WR", - "SID", - "SIDAndAttributes", - "SIGABRT", - "SIGALRM", - "SIGBUS", - "SIGCHLD", - "SIGCLD", - "SIGCONT", - "SIGEMT", - "SIGFPE", - "SIGHUP", - "SIGILL", - "SIGINFO", - "SIGINT", - "SIGIO", - "SIGIOT", - "SIGKILL", - "SIGLIBRT", - "SIGLWP", - "SIGPIPE", - "SIGPOLL", - "SIGPROF", - "SIGPWR", - "SIGQUIT", - "SIGSEGV", - "SIGSTKFLT", - "SIGSTOP", - "SIGSYS", - "SIGTERM", - "SIGTHR", - "SIGTRAP", - "SIGTSTP", - "SIGTTIN", - "SIGTTOU", - "SIGUNUSED", - "SIGURG", - "SIGUSR1", - "SIGUSR2", - "SIGVTALRM", - "SIGWINCH", - "SIGXCPU", - "SIGXFSZ", - "SIOCADDDLCI", - "SIOCADDMULTI", - "SIOCADDRT", - "SIOCAIFADDR", - "SIOCAIFGROUP", - "SIOCALIFADDR", - "SIOCARPIPLL", - "SIOCATMARK", - "SIOCAUTOADDR", - "SIOCAUTONETMASK", - "SIOCBRDGADD", - "SIOCBRDGADDS", - "SIOCBRDGARL", - "SIOCBRDGDADDR", - "SIOCBRDGDEL", - "SIOCBRDGDELS", - "SIOCBRDGFLUSH", - "SIOCBRDGFRL", - "SIOCBRDGGCACHE", - "SIOCBRDGGFD", - "SIOCBRDGGHT", - "SIOCBRDGGIFFLGS", - "SIOCBRDGGMA", - "SIOCBRDGGPARAM", - "SIOCBRDGGPRI", - "SIOCBRDGGRL", - "SIOCBRDGGSIFS", - "SIOCBRDGGTO", - "SIOCBRDGIFS", - "SIOCBRDGRTS", - "SIOCBRDGSADDR", - "SIOCBRDGSCACHE", - "SIOCBRDGSFD", - "SIOCBRDGSHT", - "SIOCBRDGSIFCOST", - "SIOCBRDGSIFFLGS", - "SIOCBRDGSIFPRIO", - "SIOCBRDGSMA", - "SIOCBRDGSPRI", - "SIOCBRDGSPROTO", - "SIOCBRDGSTO", - "SIOCBRDGSTXHC", - "SIOCDARP", - "SIOCDELDLCI", - "SIOCDELMULTI", - "SIOCDELRT", - "SIOCDEVPRIVATE", - "SIOCDIFADDR", - "SIOCDIFGROUP", - "SIOCDIFPHYADDR", - "SIOCDLIFADDR", - "SIOCDRARP", - "SIOCGARP", - "SIOCGDRVSPEC", - "SIOCGETKALIVE", - "SIOCGETLABEL", - "SIOCGETPFLOW", - "SIOCGETPFSYNC", - "SIOCGETSGCNT", - "SIOCGETVIFCNT", - "SIOCGETVLAN", - "SIOCGHIWAT", - "SIOCGIFADDR", - "SIOCGIFADDRPREF", - "SIOCGIFALIAS", - "SIOCGIFALTMTU", - "SIOCGIFASYNCMAP", - "SIOCGIFBOND", - "SIOCGIFBR", - "SIOCGIFBRDADDR", - "SIOCGIFCAP", - "SIOCGIFCONF", - "SIOCGIFCOUNT", - "SIOCGIFDATA", - "SIOCGIFDESCR", - "SIOCGIFDEVMTU", - "SIOCGIFDLT", - "SIOCGIFDSTADDR", - "SIOCGIFENCAP", - "SIOCGIFFIB", - "SIOCGIFFLAGS", - "SIOCGIFGATTR", - "SIOCGIFGENERIC", - "SIOCGIFGMEMB", - "SIOCGIFGROUP", - "SIOCGIFHARDMTU", - "SIOCGIFHWADDR", - "SIOCGIFINDEX", - "SIOCGIFKPI", - "SIOCGIFMAC", - "SIOCGIFMAP", - "SIOCGIFMEDIA", - "SIOCGIFMEM", - "SIOCGIFMETRIC", - "SIOCGIFMTU", - "SIOCGIFNAME", - "SIOCGIFNETMASK", - "SIOCGIFPDSTADDR", - "SIOCGIFPFLAGS", - "SIOCGIFPHYS", - "SIOCGIFPRIORITY", - "SIOCGIFPSRCADDR", - "SIOCGIFRDOMAIN", - "SIOCGIFRTLABEL", - "SIOCGIFSLAVE", - "SIOCGIFSTATUS", - "SIOCGIFTIMESLOT", - "SIOCGIFTXQLEN", - "SIOCGIFVLAN", - "SIOCGIFWAKEFLAGS", - "SIOCGIFXFLAGS", - "SIOCGLIFADDR", - "SIOCGLIFPHYADDR", - "SIOCGLIFPHYRTABLE", - "SIOCGLIFPHYTTL", - "SIOCGLINKSTR", - "SIOCGLOWAT", - "SIOCGPGRP", - "SIOCGPRIVATE_0", - "SIOCGPRIVATE_1", - "SIOCGRARP", - "SIOCGSPPPPARAMS", - "SIOCGSTAMP", - "SIOCGSTAMPNS", - "SIOCGVH", - "SIOCGVNETID", - "SIOCIFCREATE", - "SIOCIFCREATE2", - "SIOCIFDESTROY", - "SIOCIFGCLONERS", - "SIOCINITIFADDR", - "SIOCPROTOPRIVATE", - "SIOCRSLVMULTI", - "SIOCRTMSG", - "SIOCSARP", - "SIOCSDRVSPEC", - "SIOCSETKALIVE", - "SIOCSETLABEL", - "SIOCSETPFLOW", - "SIOCSETPFSYNC", - "SIOCSETVLAN", - "SIOCSHIWAT", - "SIOCSIFADDR", - "SIOCSIFADDRPREF", - "SIOCSIFALTMTU", - "SIOCSIFASYNCMAP", - "SIOCSIFBOND", - "SIOCSIFBR", - "SIOCSIFBRDADDR", - "SIOCSIFCAP", - "SIOCSIFDESCR", - "SIOCSIFDSTADDR", - "SIOCSIFENCAP", - "SIOCSIFFIB", - "SIOCSIFFLAGS", - "SIOCSIFGATTR", - "SIOCSIFGENERIC", - "SIOCSIFHWADDR", - "SIOCSIFHWBROADCAST", - "SIOCSIFKPI", - "SIOCSIFLINK", - "SIOCSIFLLADDR", - "SIOCSIFMAC", - "SIOCSIFMAP", - "SIOCSIFMEDIA", - "SIOCSIFMEM", - "SIOCSIFMETRIC", - "SIOCSIFMTU", - "SIOCSIFNAME", - "SIOCSIFNETMASK", - "SIOCSIFPFLAGS", - "SIOCSIFPHYADDR", - "SIOCSIFPHYS", - "SIOCSIFPRIORITY", - "SIOCSIFRDOMAIN", - "SIOCSIFRTLABEL", - "SIOCSIFRVNET", - "SIOCSIFSLAVE", - "SIOCSIFTIMESLOT", - "SIOCSIFTXQLEN", - "SIOCSIFVLAN", - "SIOCSIFVNET", - "SIOCSIFXFLAGS", - "SIOCSLIFPHYADDR", - "SIOCSLIFPHYRTABLE", - "SIOCSLIFPHYTTL", - "SIOCSLINKSTR", - "SIOCSLOWAT", - "SIOCSPGRP", - "SIOCSRARP", - "SIOCSSPPPPARAMS", - "SIOCSVH", - "SIOCSVNETID", - "SIOCZIFDATA", - "SIO_GET_EXTENSION_FUNCTION_POINTER", - "SIO_GET_INTERFACE_LIST", - "SIO_KEEPALIVE_VALS", - "SIO_UDP_CONNRESET", - "SOCK_CLOEXEC", - "SOCK_DCCP", - "SOCK_DGRAM", - "SOCK_FLAGS_MASK", - "SOCK_MAXADDRLEN", - "SOCK_NONBLOCK", - "SOCK_NOSIGPIPE", - "SOCK_PACKET", - "SOCK_RAW", - "SOCK_RDM", - "SOCK_SEQPACKET", - "SOCK_STREAM", - "SOL_AAL", - "SOL_ATM", - "SOL_DECNET", - "SOL_ICMPV6", - "SOL_IP", - "SOL_IPV6", - "SOL_IRDA", - "SOL_PACKET", - "SOL_RAW", - "SOL_SOCKET", - "SOL_TCP", - "SOL_X25", - "SOMAXCONN", - "SO_ACCEPTCONN", - "SO_ACCEPTFILTER", - "SO_ATTACH_FILTER", - "SO_BINDANY", - "SO_BINDTODEVICE", - "SO_BINTIME", - "SO_BROADCAST", - "SO_BSDCOMPAT", - "SO_DEBUG", - "SO_DETACH_FILTER", - "SO_DOMAIN", - "SO_DONTROUTE", - "SO_DONTTRUNC", - "SO_ERROR", - "SO_KEEPALIVE", - "SO_LABEL", - "SO_LINGER", - "SO_LINGER_SEC", - "SO_LISTENINCQLEN", - "SO_LISTENQLEN", - "SO_LISTENQLIMIT", - "SO_MARK", - "SO_NETPROC", - "SO_NKE", - "SO_NOADDRERR", - "SO_NOHEADER", - "SO_NOSIGPIPE", - "SO_NOTIFYCONFLICT", - "SO_NO_CHECK", - "SO_NO_DDP", - "SO_NO_OFFLOAD", - "SO_NP_EXTENSIONS", - "SO_NREAD", - "SO_NUMRCVPKT", - "SO_NWRITE", - "SO_OOBINLINE", - "SO_OVERFLOWED", - "SO_PASSCRED", - "SO_PASSSEC", - "SO_PEERCRED", - "SO_PEERLABEL", - "SO_PEERNAME", - "SO_PEERSEC", - "SO_PRIORITY", - "SO_PROTOCOL", - "SO_PROTOTYPE", - "SO_RANDOMPORT", - "SO_RCVBUF", - "SO_RCVBUFFORCE", - "SO_RCVLOWAT", - "SO_RCVTIMEO", - "SO_RESTRICTIONS", - "SO_RESTRICT_DENYIN", - "SO_RESTRICT_DENYOUT", - "SO_RESTRICT_DENYSET", - "SO_REUSEADDR", - "SO_REUSEPORT", - "SO_REUSESHAREUID", - "SO_RTABLE", - "SO_RXQ_OVFL", - "SO_SECURITY_AUTHENTICATION", - "SO_SECURITY_ENCRYPTION_NETWORK", - "SO_SECURITY_ENCRYPTION_TRANSPORT", - "SO_SETFIB", - "SO_SNDBUF", - "SO_SNDBUFFORCE", - "SO_SNDLOWAT", - "SO_SNDTIMEO", - "SO_SPLICE", - "SO_TIMESTAMP", - "SO_TIMESTAMPING", - "SO_TIMESTAMPNS", - "SO_TIMESTAMP_MONOTONIC", - "SO_TYPE", - "SO_UPCALLCLOSEWAIT", - "SO_UPDATE_ACCEPT_CONTEXT", - "SO_UPDATE_CONNECT_CONTEXT", - "SO_USELOOPBACK", - "SO_USER_COOKIE", - "SO_VENDOR", - "SO_WANTMORE", - "SO_WANTOOBFLAG", - "SSLExtraCertChainPolicyPara", - "STANDARD_RIGHTS_ALL", - "STANDARD_RIGHTS_EXECUTE", - "STANDARD_RIGHTS_READ", - "STANDARD_RIGHTS_REQUIRED", - "STANDARD_RIGHTS_WRITE", - "STARTF_USESHOWWINDOW", - "STARTF_USESTDHANDLES", - "STD_ERROR_HANDLE", - "STD_INPUT_HANDLE", - "STD_OUTPUT_HANDLE", - "SUBLANG_ENGLISH_US", - "SW_FORCEMINIMIZE", - "SW_HIDE", - "SW_MAXIMIZE", - "SW_MINIMIZE", - "SW_NORMAL", - "SW_RESTORE", - "SW_SHOW", - "SW_SHOWDEFAULT", - "SW_SHOWMAXIMIZED", - "SW_SHOWMINIMIZED", - "SW_SHOWMINNOACTIVE", - "SW_SHOWNA", - "SW_SHOWNOACTIVATE", - "SW_SHOWNORMAL", - "SYMBOLIC_LINK_FLAG_DIRECTORY", - "SYNCHRONIZE", - "SYSCTL_VERSION", - "SYSCTL_VERS_0", - "SYSCTL_VERS_1", - "SYSCTL_VERS_MASK", - "SYS_ABORT2", - "SYS_ACCEPT", - "SYS_ACCEPT4", - "SYS_ACCEPT_NOCANCEL", - "SYS_ACCESS", - "SYS_ACCESS_EXTENDED", - "SYS_ACCT", - "SYS_ADD_KEY", - "SYS_ADD_PROFIL", - "SYS_ADJFREQ", - "SYS_ADJTIME", - "SYS_ADJTIMEX", - "SYS_AFS_SYSCALL", - "SYS_AIO_CANCEL", - "SYS_AIO_ERROR", - "SYS_AIO_FSYNC", - "SYS_AIO_MLOCK", - "SYS_AIO_READ", - "SYS_AIO_RETURN", - "SYS_AIO_SUSPEND", - "SYS_AIO_SUSPEND_NOCANCEL", - "SYS_AIO_WAITCOMPLETE", - "SYS_AIO_WRITE", - "SYS_ALARM", - "SYS_ARCH_PRCTL", - "SYS_ARM_FADVISE64_64", - "SYS_ARM_SYNC_FILE_RANGE", - "SYS_ATGETMSG", - "SYS_ATPGETREQ", - "SYS_ATPGETRSP", - "SYS_ATPSNDREQ", - "SYS_ATPSNDRSP", - "SYS_ATPUTMSG", - "SYS_ATSOCKET", - "SYS_AUDIT", - "SYS_AUDITCTL", - "SYS_AUDITON", - "SYS_AUDIT_SESSION_JOIN", - "SYS_AUDIT_SESSION_PORT", - "SYS_AUDIT_SESSION_SELF", - "SYS_BDFLUSH", - "SYS_BIND", - "SYS_BINDAT", - "SYS_BREAK", - "SYS_BRK", - "SYS_BSDTHREAD_CREATE", - "SYS_BSDTHREAD_REGISTER", - "SYS_BSDTHREAD_TERMINATE", - "SYS_CAPGET", - "SYS_CAPSET", - "SYS_CAP_ENTER", - "SYS_CAP_FCNTLS_GET", - "SYS_CAP_FCNTLS_LIMIT", - "SYS_CAP_GETMODE", - "SYS_CAP_GETRIGHTS", - "SYS_CAP_IOCTLS_GET", - "SYS_CAP_IOCTLS_LIMIT", - "SYS_CAP_NEW", - "SYS_CAP_RIGHTS_GET", - "SYS_CAP_RIGHTS_LIMIT", - "SYS_CHDIR", - "SYS_CHFLAGS", - "SYS_CHFLAGSAT", - "SYS_CHMOD", - "SYS_CHMOD_EXTENDED", - "SYS_CHOWN", - "SYS_CHOWN32", - "SYS_CHROOT", - "SYS_CHUD", - "SYS_CLOCK_ADJTIME", - "SYS_CLOCK_GETCPUCLOCKID2", - "SYS_CLOCK_GETRES", - "SYS_CLOCK_GETTIME", - "SYS_CLOCK_NANOSLEEP", - "SYS_CLOCK_SETTIME", - "SYS_CLONE", - "SYS_CLOSE", - "SYS_CLOSEFROM", - "SYS_CLOSE_NOCANCEL", - "SYS_CONNECT", - "SYS_CONNECTAT", - "SYS_CONNECT_NOCANCEL", - "SYS_COPYFILE", - "SYS_CPUSET", - "SYS_CPUSET_GETAFFINITY", - "SYS_CPUSET_GETID", - "SYS_CPUSET_SETAFFINITY", - "SYS_CPUSET_SETID", - "SYS_CREAT", - "SYS_CREATE_MODULE", - "SYS_CSOPS", - "SYS_CSOPS_AUDITTOKEN", - "SYS_DELETE", - "SYS_DELETE_MODULE", - "SYS_DUP", - "SYS_DUP2", - "SYS_DUP3", - "SYS_EACCESS", - "SYS_EPOLL_CREATE", - "SYS_EPOLL_CREATE1", - "SYS_EPOLL_CTL", - "SYS_EPOLL_CTL_OLD", - "SYS_EPOLL_PWAIT", - "SYS_EPOLL_WAIT", - "SYS_EPOLL_WAIT_OLD", - "SYS_EVENTFD", - "SYS_EVENTFD2", - "SYS_EXCHANGEDATA", - "SYS_EXECVE", - "SYS_EXIT", - "SYS_EXIT_GROUP", - "SYS_EXTATTRCTL", - "SYS_EXTATTR_DELETE_FD", - "SYS_EXTATTR_DELETE_FILE", - "SYS_EXTATTR_DELETE_LINK", - "SYS_EXTATTR_GET_FD", - "SYS_EXTATTR_GET_FILE", - "SYS_EXTATTR_GET_LINK", - "SYS_EXTATTR_LIST_FD", - "SYS_EXTATTR_LIST_FILE", - "SYS_EXTATTR_LIST_LINK", - "SYS_EXTATTR_SET_FD", - "SYS_EXTATTR_SET_FILE", - "SYS_EXTATTR_SET_LINK", - "SYS_FACCESSAT", - "SYS_FADVISE64", - "SYS_FADVISE64_64", - "SYS_FALLOCATE", - "SYS_FANOTIFY_INIT", - "SYS_FANOTIFY_MARK", - "SYS_FCHDIR", - "SYS_FCHFLAGS", - "SYS_FCHMOD", - "SYS_FCHMODAT", - "SYS_FCHMOD_EXTENDED", - "SYS_FCHOWN", - "SYS_FCHOWN32", - "SYS_FCHOWNAT", - "SYS_FCHROOT", - "SYS_FCNTL", - "SYS_FCNTL64", - "SYS_FCNTL_NOCANCEL", - "SYS_FDATASYNC", - "SYS_FEXECVE", - "SYS_FFCLOCK_GETCOUNTER", - "SYS_FFCLOCK_GETESTIMATE", - "SYS_FFCLOCK_SETESTIMATE", - "SYS_FFSCTL", - "SYS_FGETATTRLIST", - "SYS_FGETXATTR", - "SYS_FHOPEN", - "SYS_FHSTAT", - "SYS_FHSTATFS", - "SYS_FILEPORT_MAKEFD", - "SYS_FILEPORT_MAKEPORT", - "SYS_FKTRACE", - "SYS_FLISTXATTR", - "SYS_FLOCK", - "SYS_FORK", - "SYS_FPATHCONF", - "SYS_FREEBSD6_FTRUNCATE", - "SYS_FREEBSD6_LSEEK", - "SYS_FREEBSD6_MMAP", - "SYS_FREEBSD6_PREAD", - "SYS_FREEBSD6_PWRITE", - "SYS_FREEBSD6_TRUNCATE", - "SYS_FREMOVEXATTR", - "SYS_FSCTL", - "SYS_FSETATTRLIST", - "SYS_FSETXATTR", - "SYS_FSGETPATH", - "SYS_FSTAT", - "SYS_FSTAT64", - "SYS_FSTAT64_EXTENDED", - "SYS_FSTATAT", - "SYS_FSTATAT64", - "SYS_FSTATFS", - "SYS_FSTATFS64", - "SYS_FSTATV", - "SYS_FSTATVFS1", - "SYS_FSTAT_EXTENDED", - "SYS_FSYNC", - "SYS_FSYNC_NOCANCEL", - "SYS_FSYNC_RANGE", - "SYS_FTIME", - "SYS_FTRUNCATE", - "SYS_FTRUNCATE64", - "SYS_FUTEX", - "SYS_FUTIMENS", - "SYS_FUTIMES", - "SYS_FUTIMESAT", - "SYS_GETATTRLIST", - "SYS_GETAUDIT", - "SYS_GETAUDIT_ADDR", - "SYS_GETAUID", - "SYS_GETCONTEXT", - "SYS_GETCPU", - "SYS_GETCWD", - "SYS_GETDENTS", - "SYS_GETDENTS64", - "SYS_GETDIRENTRIES", - "SYS_GETDIRENTRIES64", - "SYS_GETDIRENTRIESATTR", - "SYS_GETDTABLECOUNT", - "SYS_GETDTABLESIZE", - "SYS_GETEGID", - "SYS_GETEGID32", - "SYS_GETEUID", - "SYS_GETEUID32", - "SYS_GETFH", - "SYS_GETFSSTAT", - "SYS_GETFSSTAT64", - "SYS_GETGID", - "SYS_GETGID32", - "SYS_GETGROUPS", - "SYS_GETGROUPS32", - "SYS_GETHOSTUUID", - "SYS_GETITIMER", - "SYS_GETLCID", - "SYS_GETLOGIN", - "SYS_GETLOGINCLASS", - "SYS_GETPEERNAME", - "SYS_GETPGID", - "SYS_GETPGRP", - "SYS_GETPID", - "SYS_GETPMSG", - "SYS_GETPPID", - "SYS_GETPRIORITY", - "SYS_GETRESGID", - "SYS_GETRESGID32", - "SYS_GETRESUID", - "SYS_GETRESUID32", - "SYS_GETRLIMIT", - "SYS_GETRTABLE", - "SYS_GETRUSAGE", - "SYS_GETSGROUPS", - "SYS_GETSID", - "SYS_GETSOCKNAME", - "SYS_GETSOCKOPT", - "SYS_GETTHRID", - "SYS_GETTID", - "SYS_GETTIMEOFDAY", - "SYS_GETUID", - "SYS_GETUID32", - "SYS_GETVFSSTAT", - "SYS_GETWGROUPS", - "SYS_GETXATTR", - "SYS_GET_KERNEL_SYMS", - "SYS_GET_MEMPOLICY", - "SYS_GET_ROBUST_LIST", - "SYS_GET_THREAD_AREA", - "SYS_GSSD_SYSCALL", - "SYS_GTTY", - "SYS_IDENTITYSVC", - "SYS_IDLE", - "SYS_INITGROUPS", - "SYS_INIT_MODULE", - "SYS_INOTIFY_ADD_WATCH", - "SYS_INOTIFY_INIT", - "SYS_INOTIFY_INIT1", - "SYS_INOTIFY_RM_WATCH", - "SYS_IOCTL", - "SYS_IOPERM", - "SYS_IOPL", - "SYS_IOPOLICYSYS", - "SYS_IOPRIO_GET", - "SYS_IOPRIO_SET", - "SYS_IO_CANCEL", - "SYS_IO_DESTROY", - "SYS_IO_GETEVENTS", - "SYS_IO_SETUP", - "SYS_IO_SUBMIT", - "SYS_IPC", - "SYS_ISSETUGID", - "SYS_JAIL", - "SYS_JAIL_ATTACH", - "SYS_JAIL_GET", - "SYS_JAIL_REMOVE", - "SYS_JAIL_SET", - "SYS_KAS_INFO", - "SYS_KDEBUG_TRACE", - "SYS_KENV", - "SYS_KEVENT", - "SYS_KEVENT64", - "SYS_KEXEC_LOAD", - "SYS_KEYCTL", - "SYS_KILL", - "SYS_KLDFIND", - "SYS_KLDFIRSTMOD", - "SYS_KLDLOAD", - "SYS_KLDNEXT", - "SYS_KLDSTAT", - "SYS_KLDSYM", - "SYS_KLDUNLOAD", - "SYS_KLDUNLOADF", - "SYS_KMQ_NOTIFY", - "SYS_KMQ_OPEN", - "SYS_KMQ_SETATTR", - "SYS_KMQ_TIMEDRECEIVE", - "SYS_KMQ_TIMEDSEND", - "SYS_KMQ_UNLINK", - "SYS_KQUEUE", - "SYS_KQUEUE1", - "SYS_KSEM_CLOSE", - "SYS_KSEM_DESTROY", - "SYS_KSEM_GETVALUE", - "SYS_KSEM_INIT", - "SYS_KSEM_OPEN", - "SYS_KSEM_POST", - "SYS_KSEM_TIMEDWAIT", - "SYS_KSEM_TRYWAIT", - "SYS_KSEM_UNLINK", - "SYS_KSEM_WAIT", - "SYS_KTIMER_CREATE", - "SYS_KTIMER_DELETE", - "SYS_KTIMER_GETOVERRUN", - "SYS_KTIMER_GETTIME", - "SYS_KTIMER_SETTIME", - "SYS_KTRACE", - "SYS_LCHFLAGS", - "SYS_LCHMOD", - "SYS_LCHOWN", - "SYS_LCHOWN32", - "SYS_LEDGER", - "SYS_LGETFH", - "SYS_LGETXATTR", - "SYS_LINK", - "SYS_LINKAT", - "SYS_LIO_LISTIO", - "SYS_LISTEN", - "SYS_LISTXATTR", - "SYS_LLISTXATTR", - "SYS_LOCK", - "SYS_LOOKUP_DCOOKIE", - "SYS_LPATHCONF", - "SYS_LREMOVEXATTR", - "SYS_LSEEK", - "SYS_LSETXATTR", - "SYS_LSTAT", - "SYS_LSTAT64", - "SYS_LSTAT64_EXTENDED", - "SYS_LSTATV", - "SYS_LSTAT_EXTENDED", - "SYS_LUTIMES", - "SYS_MAC_SYSCALL", - "SYS_MADVISE", - "SYS_MADVISE1", - "SYS_MAXSYSCALL", - "SYS_MBIND", - "SYS_MIGRATE_PAGES", - "SYS_MINCORE", - "SYS_MINHERIT", - "SYS_MKCOMPLEX", - "SYS_MKDIR", - "SYS_MKDIRAT", - "SYS_MKDIR_EXTENDED", - "SYS_MKFIFO", - "SYS_MKFIFOAT", - "SYS_MKFIFO_EXTENDED", - "SYS_MKNOD", - "SYS_MKNODAT", - "SYS_MLOCK", - "SYS_MLOCKALL", - "SYS_MMAP", - "SYS_MMAP2", - "SYS_MODCTL", - "SYS_MODFIND", - "SYS_MODFNEXT", - "SYS_MODIFY_LDT", - "SYS_MODNEXT", - "SYS_MODSTAT", - "SYS_MODWATCH", - "SYS_MOUNT", - "SYS_MOVE_PAGES", - "SYS_MPROTECT", - "SYS_MPX", - "SYS_MQUERY", - "SYS_MQ_GETSETATTR", - "SYS_MQ_NOTIFY", - "SYS_MQ_OPEN", - "SYS_MQ_TIMEDRECEIVE", - "SYS_MQ_TIMEDSEND", - "SYS_MQ_UNLINK", - "SYS_MREMAP", - "SYS_MSGCTL", - "SYS_MSGGET", - "SYS_MSGRCV", - "SYS_MSGRCV_NOCANCEL", - "SYS_MSGSND", - "SYS_MSGSND_NOCANCEL", - "SYS_MSGSYS", - "SYS_MSYNC", - "SYS_MSYNC_NOCANCEL", - "SYS_MUNLOCK", - "SYS_MUNLOCKALL", - "SYS_MUNMAP", - "SYS_NAME_TO_HANDLE_AT", - "SYS_NANOSLEEP", - "SYS_NEWFSTATAT", - "SYS_NFSCLNT", - "SYS_NFSSERVCTL", - "SYS_NFSSVC", - "SYS_NFSTAT", - "SYS_NICE", - "SYS_NLM_SYSCALL", - "SYS_NLSTAT", - "SYS_NMOUNT", - "SYS_NSTAT", - "SYS_NTP_ADJTIME", - "SYS_NTP_GETTIME", - "SYS_NUMA_GETAFFINITY", - "SYS_NUMA_SETAFFINITY", - "SYS_OABI_SYSCALL_BASE", - "SYS_OBREAK", - "SYS_OLDFSTAT", - "SYS_OLDLSTAT", - "SYS_OLDOLDUNAME", - "SYS_OLDSTAT", - "SYS_OLDUNAME", - "SYS_OPEN", - "SYS_OPENAT", - "SYS_OPENBSD_POLL", - "SYS_OPEN_BY_HANDLE_AT", - "SYS_OPEN_DPROTECTED_NP", - "SYS_OPEN_EXTENDED", - "SYS_OPEN_NOCANCEL", - "SYS_OVADVISE", - "SYS_PACCEPT", - "SYS_PATHCONF", - "SYS_PAUSE", - "SYS_PCICONFIG_IOBASE", - "SYS_PCICONFIG_READ", - "SYS_PCICONFIG_WRITE", - "SYS_PDFORK", - "SYS_PDGETPID", - "SYS_PDKILL", - "SYS_PERF_EVENT_OPEN", - "SYS_PERSONALITY", - "SYS_PID_HIBERNATE", - "SYS_PID_RESUME", - "SYS_PID_SHUTDOWN_SOCKETS", - "SYS_PID_SUSPEND", - "SYS_PIPE", - "SYS_PIPE2", - "SYS_PIVOT_ROOT", - "SYS_PMC_CONTROL", - "SYS_PMC_GET_INFO", - "SYS_POLL", - "SYS_POLLTS", - "SYS_POLL_NOCANCEL", - "SYS_POSIX_FADVISE", - "SYS_POSIX_FALLOCATE", - "SYS_POSIX_OPENPT", - "SYS_POSIX_SPAWN", - "SYS_PPOLL", - "SYS_PRCTL", - "SYS_PREAD", - "SYS_PREAD64", - "SYS_PREADV", - "SYS_PREAD_NOCANCEL", - "SYS_PRLIMIT64", - "SYS_PROCCTL", - "SYS_PROCESS_POLICY", - "SYS_PROCESS_VM_READV", - "SYS_PROCESS_VM_WRITEV", - "SYS_PROC_INFO", - "SYS_PROF", - "SYS_PROFIL", - "SYS_PSELECT", - "SYS_PSELECT6", - "SYS_PSET_ASSIGN", - "SYS_PSET_CREATE", - "SYS_PSET_DESTROY", - "SYS_PSYNCH_CVBROAD", - "SYS_PSYNCH_CVCLRPREPOST", - "SYS_PSYNCH_CVSIGNAL", - "SYS_PSYNCH_CVWAIT", - "SYS_PSYNCH_MUTEXDROP", - "SYS_PSYNCH_MUTEXWAIT", - "SYS_PSYNCH_RW_DOWNGRADE", - "SYS_PSYNCH_RW_LONGRDLOCK", - "SYS_PSYNCH_RW_RDLOCK", - "SYS_PSYNCH_RW_UNLOCK", - "SYS_PSYNCH_RW_UNLOCK2", - "SYS_PSYNCH_RW_UPGRADE", - "SYS_PSYNCH_RW_WRLOCK", - "SYS_PSYNCH_RW_YIELDWRLOCK", - "SYS_PTRACE", - "SYS_PUTPMSG", - "SYS_PWRITE", - "SYS_PWRITE64", - "SYS_PWRITEV", - "SYS_PWRITE_NOCANCEL", - "SYS_QUERY_MODULE", - "SYS_QUOTACTL", - "SYS_RASCTL", - "SYS_RCTL_ADD_RULE", - "SYS_RCTL_GET_LIMITS", - "SYS_RCTL_GET_RACCT", - "SYS_RCTL_GET_RULES", - "SYS_RCTL_REMOVE_RULE", - "SYS_READ", - "SYS_READAHEAD", - "SYS_READDIR", - "SYS_READLINK", - "SYS_READLINKAT", - "SYS_READV", - "SYS_READV_NOCANCEL", - "SYS_READ_NOCANCEL", - "SYS_REBOOT", - "SYS_RECV", - "SYS_RECVFROM", - "SYS_RECVFROM_NOCANCEL", - "SYS_RECVMMSG", - "SYS_RECVMSG", - "SYS_RECVMSG_NOCANCEL", - "SYS_REMAP_FILE_PAGES", - "SYS_REMOVEXATTR", - "SYS_RENAME", - "SYS_RENAMEAT", - "SYS_REQUEST_KEY", - "SYS_RESTART_SYSCALL", - "SYS_REVOKE", - "SYS_RFORK", - "SYS_RMDIR", - "SYS_RTPRIO", - "SYS_RTPRIO_THREAD", - "SYS_RT_SIGACTION", - "SYS_RT_SIGPENDING", - "SYS_RT_SIGPROCMASK", - "SYS_RT_SIGQUEUEINFO", - "SYS_RT_SIGRETURN", - "SYS_RT_SIGSUSPEND", - "SYS_RT_SIGTIMEDWAIT", - "SYS_RT_TGSIGQUEUEINFO", - "SYS_SBRK", - "SYS_SCHED_GETAFFINITY", - "SYS_SCHED_GETPARAM", - "SYS_SCHED_GETSCHEDULER", - "SYS_SCHED_GET_PRIORITY_MAX", - "SYS_SCHED_GET_PRIORITY_MIN", - "SYS_SCHED_RR_GET_INTERVAL", - "SYS_SCHED_SETAFFINITY", - "SYS_SCHED_SETPARAM", - "SYS_SCHED_SETSCHEDULER", - "SYS_SCHED_YIELD", - "SYS_SCTP_GENERIC_RECVMSG", - "SYS_SCTP_GENERIC_SENDMSG", - "SYS_SCTP_GENERIC_SENDMSG_IOV", - "SYS_SCTP_PEELOFF", - "SYS_SEARCHFS", - "SYS_SECURITY", - "SYS_SELECT", - "SYS_SELECT_NOCANCEL", - "SYS_SEMCONFIG", - "SYS_SEMCTL", - "SYS_SEMGET", - "SYS_SEMOP", - "SYS_SEMSYS", - "SYS_SEMTIMEDOP", - "SYS_SEM_CLOSE", - "SYS_SEM_DESTROY", - "SYS_SEM_GETVALUE", - "SYS_SEM_INIT", - "SYS_SEM_OPEN", - "SYS_SEM_POST", - "SYS_SEM_TRYWAIT", - "SYS_SEM_UNLINK", - "SYS_SEM_WAIT", - "SYS_SEM_WAIT_NOCANCEL", - "SYS_SEND", - "SYS_SENDFILE", - "SYS_SENDFILE64", - "SYS_SENDMMSG", - "SYS_SENDMSG", - "SYS_SENDMSG_NOCANCEL", - "SYS_SENDTO", - "SYS_SENDTO_NOCANCEL", - "SYS_SETATTRLIST", - "SYS_SETAUDIT", - "SYS_SETAUDIT_ADDR", - "SYS_SETAUID", - "SYS_SETCONTEXT", - "SYS_SETDOMAINNAME", - "SYS_SETEGID", - "SYS_SETEUID", - "SYS_SETFIB", - "SYS_SETFSGID", - "SYS_SETFSGID32", - "SYS_SETFSUID", - "SYS_SETFSUID32", - "SYS_SETGID", - "SYS_SETGID32", - "SYS_SETGROUPS", - "SYS_SETGROUPS32", - "SYS_SETHOSTNAME", - "SYS_SETITIMER", - "SYS_SETLCID", - "SYS_SETLOGIN", - "SYS_SETLOGINCLASS", - "SYS_SETNS", - "SYS_SETPGID", - "SYS_SETPRIORITY", - "SYS_SETPRIVEXEC", - "SYS_SETREGID", - "SYS_SETREGID32", - "SYS_SETRESGID", - "SYS_SETRESGID32", - "SYS_SETRESUID", - "SYS_SETRESUID32", - "SYS_SETREUID", - "SYS_SETREUID32", - "SYS_SETRLIMIT", - "SYS_SETRTABLE", - "SYS_SETSGROUPS", - "SYS_SETSID", - "SYS_SETSOCKOPT", - "SYS_SETTID", - "SYS_SETTID_WITH_PID", - "SYS_SETTIMEOFDAY", - "SYS_SETUID", - "SYS_SETUID32", - "SYS_SETWGROUPS", - "SYS_SETXATTR", - "SYS_SET_MEMPOLICY", - "SYS_SET_ROBUST_LIST", - "SYS_SET_THREAD_AREA", - "SYS_SET_TID_ADDRESS", - "SYS_SGETMASK", - "SYS_SHARED_REGION_CHECK_NP", - "SYS_SHARED_REGION_MAP_AND_SLIDE_NP", - "SYS_SHMAT", - "SYS_SHMCTL", - "SYS_SHMDT", - "SYS_SHMGET", - "SYS_SHMSYS", - "SYS_SHM_OPEN", - "SYS_SHM_UNLINK", - "SYS_SHUTDOWN", - "SYS_SIGACTION", - "SYS_SIGALTSTACK", - "SYS_SIGNAL", - "SYS_SIGNALFD", - "SYS_SIGNALFD4", - "SYS_SIGPENDING", - "SYS_SIGPROCMASK", - "SYS_SIGQUEUE", - "SYS_SIGQUEUEINFO", - "SYS_SIGRETURN", - "SYS_SIGSUSPEND", - "SYS_SIGSUSPEND_NOCANCEL", - "SYS_SIGTIMEDWAIT", - "SYS_SIGWAIT", - "SYS_SIGWAITINFO", - "SYS_SOCKET", - "SYS_SOCKETCALL", - "SYS_SOCKETPAIR", - "SYS_SPLICE", - "SYS_SSETMASK", - "SYS_SSTK", - "SYS_STACK_SNAPSHOT", - "SYS_STAT", - "SYS_STAT64", - "SYS_STAT64_EXTENDED", - "SYS_STATFS", - "SYS_STATFS64", - "SYS_STATV", - "SYS_STATVFS1", - "SYS_STAT_EXTENDED", - "SYS_STIME", - "SYS_STTY", - "SYS_SWAPCONTEXT", - "SYS_SWAPCTL", - "SYS_SWAPOFF", - "SYS_SWAPON", - "SYS_SYMLINK", - "SYS_SYMLINKAT", - "SYS_SYNC", - "SYS_SYNCFS", - "SYS_SYNC_FILE_RANGE", - "SYS_SYSARCH", - "SYS_SYSCALL", - "SYS_SYSCALL_BASE", - "SYS_SYSFS", - "SYS_SYSINFO", - "SYS_SYSLOG", - "SYS_TEE", - "SYS_TGKILL", - "SYS_THREAD_SELFID", - "SYS_THR_CREATE", - "SYS_THR_EXIT", - "SYS_THR_KILL", - "SYS_THR_KILL2", - "SYS_THR_NEW", - "SYS_THR_SELF", - "SYS_THR_SET_NAME", - "SYS_THR_SUSPEND", - "SYS_THR_WAKE", - "SYS_TIME", - "SYS_TIMERFD_CREATE", - "SYS_TIMERFD_GETTIME", - "SYS_TIMERFD_SETTIME", - "SYS_TIMER_CREATE", - "SYS_TIMER_DELETE", - "SYS_TIMER_GETOVERRUN", - "SYS_TIMER_GETTIME", - "SYS_TIMER_SETTIME", - "SYS_TIMES", - "SYS_TKILL", - "SYS_TRUNCATE", - "SYS_TRUNCATE64", - "SYS_TUXCALL", - "SYS_UGETRLIMIT", - "SYS_ULIMIT", - "SYS_UMASK", - "SYS_UMASK_EXTENDED", - "SYS_UMOUNT", - "SYS_UMOUNT2", - "SYS_UNAME", - "SYS_UNDELETE", - "SYS_UNLINK", - "SYS_UNLINKAT", - "SYS_UNMOUNT", - "SYS_UNSHARE", - "SYS_USELIB", - "SYS_USTAT", - "SYS_UTIME", - "SYS_UTIMENSAT", - "SYS_UTIMES", - "SYS_UTRACE", - "SYS_UUIDGEN", - "SYS_VADVISE", - "SYS_VFORK", - "SYS_VHANGUP", - "SYS_VM86", - "SYS_VM86OLD", - "SYS_VMSPLICE", - "SYS_VM_PRESSURE_MONITOR", - "SYS_VSERVER", - "SYS_WAIT4", - "SYS_WAIT4_NOCANCEL", - "SYS_WAIT6", - "SYS_WAITEVENT", - "SYS_WAITID", - "SYS_WAITID_NOCANCEL", - "SYS_WAITPID", - "SYS_WATCHEVENT", - "SYS_WORKQ_KERNRETURN", - "SYS_WORKQ_OPEN", - "SYS_WRITE", - "SYS_WRITEV", - "SYS_WRITEV_NOCANCEL", - "SYS_WRITE_NOCANCEL", - "SYS_YIELD", - "SYS__LLSEEK", - "SYS__LWP_CONTINUE", - "SYS__LWP_CREATE", - "SYS__LWP_CTL", - "SYS__LWP_DETACH", - "SYS__LWP_EXIT", - "SYS__LWP_GETNAME", - "SYS__LWP_GETPRIVATE", - "SYS__LWP_KILL", - "SYS__LWP_PARK", - "SYS__LWP_SELF", - "SYS__LWP_SETNAME", - "SYS__LWP_SETPRIVATE", - "SYS__LWP_SUSPEND", - "SYS__LWP_UNPARK", - "SYS__LWP_UNPARK_ALL", - "SYS__LWP_WAIT", - "SYS__LWP_WAKEUP", - "SYS__NEWSELECT", - "SYS__PSET_BIND", - "SYS__SCHED_GETAFFINITY", - "SYS__SCHED_GETPARAM", - "SYS__SCHED_SETAFFINITY", - "SYS__SCHED_SETPARAM", - "SYS__SYSCTL", - "SYS__UMTX_LOCK", - "SYS__UMTX_OP", - "SYS__UMTX_UNLOCK", - "SYS___ACL_ACLCHECK_FD", - "SYS___ACL_ACLCHECK_FILE", - "SYS___ACL_ACLCHECK_LINK", - "SYS___ACL_DELETE_FD", - "SYS___ACL_DELETE_FILE", - "SYS___ACL_DELETE_LINK", - "SYS___ACL_GET_FD", - "SYS___ACL_GET_FILE", - "SYS___ACL_GET_LINK", - "SYS___ACL_SET_FD", - "SYS___ACL_SET_FILE", - "SYS___ACL_SET_LINK", - "SYS___CAP_RIGHTS_GET", - "SYS___CLONE", - "SYS___DISABLE_THREADSIGNAL", - "SYS___GETCWD", - "SYS___GETLOGIN", - "SYS___GET_TCB", - "SYS___MAC_EXECVE", - "SYS___MAC_GETFSSTAT", - "SYS___MAC_GET_FD", - "SYS___MAC_GET_FILE", - "SYS___MAC_GET_LCID", - "SYS___MAC_GET_LCTX", - "SYS___MAC_GET_LINK", - "SYS___MAC_GET_MOUNT", - "SYS___MAC_GET_PID", - "SYS___MAC_GET_PROC", - "SYS___MAC_MOUNT", - "SYS___MAC_SET_FD", - "SYS___MAC_SET_FILE", - "SYS___MAC_SET_LCTX", - "SYS___MAC_SET_LINK", - "SYS___MAC_SET_PROC", - "SYS___MAC_SYSCALL", - "SYS___OLD_SEMWAIT_SIGNAL", - "SYS___OLD_SEMWAIT_SIGNAL_NOCANCEL", - "SYS___POSIX_CHOWN", - "SYS___POSIX_FCHOWN", - "SYS___POSIX_LCHOWN", - "SYS___POSIX_RENAME", - "SYS___PTHREAD_CANCELED", - "SYS___PTHREAD_CHDIR", - "SYS___PTHREAD_FCHDIR", - "SYS___PTHREAD_KILL", - "SYS___PTHREAD_MARKCANCEL", - "SYS___PTHREAD_SIGMASK", - "SYS___QUOTACTL", - "SYS___SEMCTL", - "SYS___SEMWAIT_SIGNAL", - "SYS___SEMWAIT_SIGNAL_NOCANCEL", - "SYS___SETLOGIN", - "SYS___SETUGID", - "SYS___SET_TCB", - "SYS___SIGACTION_SIGTRAMP", - "SYS___SIGTIMEDWAIT", - "SYS___SIGWAIT", - "SYS___SIGWAIT_NOCANCEL", - "SYS___SYSCTL", - "SYS___TFORK", - "SYS___THREXIT", - "SYS___THRSIGDIVERT", - "SYS___THRSLEEP", - "SYS___THRWAKEUP", - "S_ARCH1", - "S_ARCH2", - "S_BLKSIZE", - "S_IEXEC", - "S_IFBLK", - "S_IFCHR", - "S_IFDIR", - "S_IFIFO", - "S_IFLNK", - "S_IFMT", - "S_IFREG", - "S_IFSOCK", - "S_IFWHT", - "S_IREAD", - "S_IRGRP", - "S_IROTH", - "S_IRUSR", - "S_IRWXG", - "S_IRWXO", - "S_IRWXU", - "S_ISGID", - "S_ISTXT", - "S_ISUID", - "S_ISVTX", - "S_IWGRP", - "S_IWOTH", - "S_IWRITE", - "S_IWUSR", - "S_IXGRP", - "S_IXOTH", - "S_IXUSR", - "S_LOGIN_SET", - "SecurityAttributes", - "Seek", - "Select", - "Sendfile", - "Sendmsg", - "SendmsgN", - "Sendto", - "Servent", - "SetBpf", - "SetBpfBuflen", - "SetBpfDatalink", - "SetBpfHeadercmpl", - "SetBpfImmediate", - "SetBpfInterface", - "SetBpfPromisc", - "SetBpfTimeout", - "SetCurrentDirectory", - "SetEndOfFile", - "SetEnvironmentVariable", - "SetFileAttributes", - "SetFileCompletionNotificationModes", - "SetFilePointer", - "SetFileTime", - "SetHandleInformation", - "SetKevent", - "SetLsfPromisc", - "SetNonblock", - "Setdomainname", - "Setegid", - "Setenv", - "Seteuid", - "Setfsgid", - "Setfsuid", - "Setgid", - "Setgroups", - "Sethostname", - "Setlogin", - "Setpgid", - "Setpriority", - "Setprivexec", - "Setregid", - "Setresgid", - "Setresuid", - "Setreuid", - "Setrlimit", - "Setsid", - "Setsockopt", - "SetsockoptByte", - "SetsockoptICMPv6Filter", - "SetsockoptIPMreq", - "SetsockoptIPMreqn", - "SetsockoptIPv6Mreq", - "SetsockoptInet4Addr", - "SetsockoptInt", - "SetsockoptLinger", - "SetsockoptString", - "SetsockoptTimeval", - "Settimeofday", - "Setuid", - "Setxattr", - "Shutdown", - "SidTypeAlias", - "SidTypeComputer", - "SidTypeDeletedAccount", - "SidTypeDomain", - "SidTypeGroup", - "SidTypeInvalid", - "SidTypeLabel", - "SidTypeUnknown", - "SidTypeUser", - "SidTypeWellKnownGroup", - "Signal", - "SizeofBpfHdr", - "SizeofBpfInsn", - "SizeofBpfProgram", - "SizeofBpfStat", - "SizeofBpfVersion", - "SizeofBpfZbuf", - "SizeofBpfZbufHeader", - "SizeofCmsghdr", - "SizeofICMPv6Filter", - "SizeofIPMreq", - "SizeofIPMreqn", - "SizeofIPv6MTUInfo", - "SizeofIPv6Mreq", - "SizeofIfAddrmsg", - "SizeofIfAnnounceMsghdr", - "SizeofIfData", - "SizeofIfInfomsg", - "SizeofIfMsghdr", - "SizeofIfaMsghdr", - "SizeofIfmaMsghdr", - "SizeofIfmaMsghdr2", - "SizeofInet4Pktinfo", - "SizeofInet6Pktinfo", - "SizeofInotifyEvent", - "SizeofLinger", - "SizeofMsghdr", - "SizeofNlAttr", - "SizeofNlMsgerr", - "SizeofNlMsghdr", - "SizeofRtAttr", - "SizeofRtGenmsg", - "SizeofRtMetrics", - "SizeofRtMsg", - "SizeofRtMsghdr", - "SizeofRtNexthop", - "SizeofSockFilter", - "SizeofSockFprog", - "SizeofSockaddrAny", - "SizeofSockaddrDatalink", - "SizeofSockaddrInet4", - "SizeofSockaddrInet6", - "SizeofSockaddrLinklayer", - "SizeofSockaddrNetlink", - "SizeofSockaddrUnix", - "SizeofTCPInfo", - "SizeofUcred", - "SlicePtrFromStrings", - "SockFilter", - "SockFprog", - "Sockaddr", - "SockaddrDatalink", - "SockaddrGen", - "SockaddrInet4", - "SockaddrInet6", - "SockaddrLinklayer", - "SockaddrNetlink", - "SockaddrUnix", - "Socket", - "SocketControlMessage", - "SocketDisableIPv6", - "Socketpair", - "Splice", - "StartProcess", - "StartupInfo", - "Stat", - "Stat_t", - "Statfs", - "Statfs_t", - "Stderr", - "Stdin", - "Stdout", - "StringBytePtr", - "StringByteSlice", - "StringSlicePtr", - "StringToSid", - "StringToUTF16", - "StringToUTF16Ptr", - "Symlink", - "Sync", - "SyncFileRange", - "SysProcAttr", - "SysProcIDMap", - "Syscall", - "Syscall12", - "Syscall15", - "Syscall18", - "Syscall6", - "Syscall9", - "SyscallN", - "Sysctl", - "SysctlUint32", - "Sysctlnode", - "Sysinfo", - "Sysinfo_t", - "Systemtime", - "TCGETS", - "TCIFLUSH", - "TCIOFLUSH", - "TCOFLUSH", - "TCPInfo", - "TCPKeepalive", - "TCP_CA_NAME_MAX", - "TCP_CONGCTL", - "TCP_CONGESTION", - "TCP_CONNECTIONTIMEOUT", - "TCP_CORK", - "TCP_DEFER_ACCEPT", - "TCP_ENABLE_ECN", - "TCP_INFO", - "TCP_KEEPALIVE", - "TCP_KEEPCNT", - "TCP_KEEPIDLE", - "TCP_KEEPINIT", - "TCP_KEEPINTVL", - "TCP_LINGER2", - "TCP_MAXBURST", - "TCP_MAXHLEN", - "TCP_MAXOLEN", - "TCP_MAXSEG", - "TCP_MAXWIN", - "TCP_MAX_SACK", - "TCP_MAX_WINSHIFT", - "TCP_MD5SIG", - "TCP_MD5SIG_MAXKEYLEN", - "TCP_MINMSS", - "TCP_MINMSSOVERLOAD", - "TCP_MSS", - "TCP_NODELAY", - "TCP_NOOPT", - "TCP_NOPUSH", - "TCP_NOTSENT_LOWAT", - "TCP_NSTATES", - "TCP_QUICKACK", - "TCP_RXT_CONNDROPTIME", - "TCP_RXT_FINDROP", - "TCP_SACK_ENABLE", - "TCP_SENDMOREACKS", - "TCP_SYNCNT", - "TCP_VENDOR", - "TCP_WINDOW_CLAMP", - "TCSAFLUSH", - "TCSETS", - "TF_DISCONNECT", - "TF_REUSE_SOCKET", - "TF_USE_DEFAULT_WORKER", - "TF_USE_KERNEL_APC", - "TF_USE_SYSTEM_THREAD", - "TF_WRITE_BEHIND", - "TH32CS_INHERIT", - "TH32CS_SNAPALL", - "TH32CS_SNAPHEAPLIST", - "TH32CS_SNAPMODULE", - "TH32CS_SNAPMODULE32", - "TH32CS_SNAPPROCESS", - "TH32CS_SNAPTHREAD", - "TIME_ZONE_ID_DAYLIGHT", - "TIME_ZONE_ID_STANDARD", - "TIME_ZONE_ID_UNKNOWN", - "TIOCCBRK", - "TIOCCDTR", - "TIOCCONS", - "TIOCDCDTIMESTAMP", - "TIOCDRAIN", - "TIOCDSIMICROCODE", - "TIOCEXCL", - "TIOCEXT", - "TIOCFLAG_CDTRCTS", - "TIOCFLAG_CLOCAL", - "TIOCFLAG_CRTSCTS", - "TIOCFLAG_MDMBUF", - "TIOCFLAG_PPS", - "TIOCFLAG_SOFTCAR", - "TIOCFLUSH", - "TIOCGDEV", - "TIOCGDRAINWAIT", - "TIOCGETA", - "TIOCGETD", - "TIOCGFLAGS", - "TIOCGICOUNT", - "TIOCGLCKTRMIOS", - "TIOCGLINED", - "TIOCGPGRP", - "TIOCGPTN", - "TIOCGQSIZE", - "TIOCGRANTPT", - "TIOCGRS485", - "TIOCGSERIAL", - "TIOCGSID", - "TIOCGSIZE", - "TIOCGSOFTCAR", - "TIOCGTSTAMP", - "TIOCGWINSZ", - "TIOCINQ", - "TIOCIXOFF", - "TIOCIXON", - "TIOCLINUX", - "TIOCMBIC", - "TIOCMBIS", - "TIOCMGDTRWAIT", - "TIOCMGET", - "TIOCMIWAIT", - "TIOCMODG", - "TIOCMODS", - "TIOCMSDTRWAIT", - "TIOCMSET", - "TIOCM_CAR", - "TIOCM_CD", - "TIOCM_CTS", - "TIOCM_DCD", - "TIOCM_DSR", - "TIOCM_DTR", - "TIOCM_LE", - "TIOCM_RI", - "TIOCM_RNG", - "TIOCM_RTS", - "TIOCM_SR", - "TIOCM_ST", - "TIOCNOTTY", - "TIOCNXCL", - "TIOCOUTQ", - "TIOCPKT", - "TIOCPKT_DATA", - "TIOCPKT_DOSTOP", - "TIOCPKT_FLUSHREAD", - "TIOCPKT_FLUSHWRITE", - "TIOCPKT_IOCTL", - "TIOCPKT_NOSTOP", - "TIOCPKT_START", - "TIOCPKT_STOP", - "TIOCPTMASTER", - "TIOCPTMGET", - "TIOCPTSNAME", - "TIOCPTYGNAME", - "TIOCPTYGRANT", - "TIOCPTYUNLK", - "TIOCRCVFRAME", - "TIOCREMOTE", - "TIOCSBRK", - "TIOCSCONS", - "TIOCSCTTY", - "TIOCSDRAINWAIT", - "TIOCSDTR", - "TIOCSERCONFIG", - "TIOCSERGETLSR", - "TIOCSERGETMULTI", - "TIOCSERGSTRUCT", - "TIOCSERGWILD", - "TIOCSERSETMULTI", - "TIOCSERSWILD", - "TIOCSER_TEMT", - "TIOCSETA", - "TIOCSETAF", - "TIOCSETAW", - "TIOCSETD", - "TIOCSFLAGS", - "TIOCSIG", - "TIOCSLCKTRMIOS", - "TIOCSLINED", - "TIOCSPGRP", - "TIOCSPTLCK", - "TIOCSQSIZE", - "TIOCSRS485", - "TIOCSSERIAL", - "TIOCSSIZE", - "TIOCSSOFTCAR", - "TIOCSTART", - "TIOCSTAT", - "TIOCSTI", - "TIOCSTOP", - "TIOCSTSTAMP", - "TIOCSWINSZ", - "TIOCTIMESTAMP", - "TIOCUCNTL", - "TIOCVHANGUP", - "TIOCXMTFRAME", - "TOKEN_ADJUST_DEFAULT", - "TOKEN_ADJUST_GROUPS", - "TOKEN_ADJUST_PRIVILEGES", - "TOKEN_ADJUST_SESSIONID", - "TOKEN_ALL_ACCESS", - "TOKEN_ASSIGN_PRIMARY", - "TOKEN_DUPLICATE", - "TOKEN_EXECUTE", - "TOKEN_IMPERSONATE", - "TOKEN_QUERY", - "TOKEN_QUERY_SOURCE", - "TOKEN_READ", - "TOKEN_WRITE", - "TOSTOP", - "TRUNCATE_EXISTING", - "TUNATTACHFILTER", - "TUNDETACHFILTER", - "TUNGETFEATURES", - "TUNGETIFF", - "TUNGETSNDBUF", - "TUNGETVNETHDRSZ", - "TUNSETDEBUG", - "TUNSETGROUP", - "TUNSETIFF", - "TUNSETLINK", - "TUNSETNOCSUM", - "TUNSETOFFLOAD", - "TUNSETOWNER", - "TUNSETPERSIST", - "TUNSETSNDBUF", - "TUNSETTXFILTER", - "TUNSETVNETHDRSZ", - "Tee", - "TerminateProcess", - "Termios", - "Tgkill", - "Time", - "Time_t", - "Times", - "Timespec", - "TimespecToNsec", - "Timeval", - "Timeval32", - "TimevalToNsec", - "Timex", - "Timezoneinformation", - "Tms", - "Token", - "TokenAccessInformation", - "TokenAuditPolicy", - "TokenDefaultDacl", - "TokenElevation", - "TokenElevationType", - "TokenGroups", - "TokenGroupsAndPrivileges", - "TokenHasRestrictions", - "TokenImpersonationLevel", - "TokenIntegrityLevel", - "TokenLinkedToken", - "TokenLogonSid", - "TokenMandatoryPolicy", - "TokenOrigin", - "TokenOwner", - "TokenPrimaryGroup", - "TokenPrivileges", - "TokenRestrictedSids", - "TokenSandBoxInert", - "TokenSessionId", - "TokenSessionReference", - "TokenSource", - "TokenStatistics", - "TokenType", - "TokenUIAccess", - "TokenUser", - "TokenVirtualizationAllowed", - "TokenVirtualizationEnabled", - "Tokenprimarygroup", - "Tokenuser", - "TranslateAccountName", - "TranslateName", - "TransmitFile", - "TransmitFileBuffers", - "Truncate", - "UNIX_PATH_MAX", - "USAGE_MATCH_TYPE_AND", - "USAGE_MATCH_TYPE_OR", - "UTF16FromString", - "UTF16PtrFromString", - "UTF16ToString", - "Ucred", - "Umask", - "Uname", - "Undelete", - "UnixCredentials", - "UnixRights", - "Unlink", - "Unlinkat", - "UnmapViewOfFile", - "Unmount", - "Unsetenv", - "Unshare", - "UserInfo10", - "Ustat", - "Ustat_t", - "Utimbuf", - "Utime", - "Utimes", - "UtimesNano", - "Utsname", - "VDISCARD", - "VDSUSP", - "VEOF", - "VEOL", - "VEOL2", - "VERASE", - "VERASE2", - "VINTR", - "VKILL", - "VLNEXT", - "VMIN", - "VQUIT", - "VREPRINT", - "VSTART", - "VSTATUS", - "VSTOP", - "VSUSP", - "VSWTC", - "VT0", - "VT1", - "VTDLY", - "VTIME", - "VWERASE", - "VirtualLock", - "VirtualUnlock", - "WAIT_ABANDONED", - "WAIT_FAILED", - "WAIT_OBJECT_0", - "WAIT_TIMEOUT", - "WALL", - "WALLSIG", - "WALTSIG", - "WCLONE", - "WCONTINUED", - "WCOREFLAG", - "WEXITED", - "WLINUXCLONE", - "WNOHANG", - "WNOTHREAD", - "WNOWAIT", - "WNOZOMBIE", - "WOPTSCHECKED", - "WORDSIZE", - "WSABuf", - "WSACleanup", - "WSADESCRIPTION_LEN", - "WSAData", - "WSAEACCES", - "WSAECONNABORTED", - "WSAECONNRESET", - "WSAEnumProtocols", - "WSAID_CONNECTEX", - "WSAIoctl", - "WSAPROTOCOL_LEN", - "WSAProtocolChain", - "WSAProtocolInfo", - "WSARecv", - "WSARecvFrom", - "WSASYS_STATUS_LEN", - "WSASend", - "WSASendTo", - "WSASendto", - "WSAStartup", - "WSTOPPED", - "WTRAPPED", - "WUNTRACED", - "Wait4", - "WaitForSingleObject", - "WaitStatus", - "Win32FileAttributeData", - "Win32finddata", - "Write", - "WriteConsole", - "WriteFile", - "X509_ASN_ENCODING", - "XCASE", - "XP1_CONNECTIONLESS", - "XP1_CONNECT_DATA", - "XP1_DISCONNECT_DATA", - "XP1_EXPEDITED_DATA", - "XP1_GRACEFUL_CLOSE", - "XP1_GUARANTEED_DELIVERY", - "XP1_GUARANTEED_ORDER", - "XP1_IFS_HANDLES", - "XP1_MESSAGE_ORIENTED", - "XP1_MULTIPOINT_CONTROL_PLANE", - "XP1_MULTIPOINT_DATA_PLANE", - "XP1_PARTIAL_MESSAGE", - "XP1_PSEUDO_STREAM", - "XP1_QOS_SUPPORTED", - "XP1_SAN_SUPPORT_SDP", - "XP1_SUPPORT_BROADCAST", - "XP1_SUPPORT_MULTIPOINT", - "XP1_UNI_RECV", - "XP1_UNI_SEND", - }, - "syscall/js": { - "CopyBytesToGo", - "CopyBytesToJS", - "Error", - "Func", - "FuncOf", - "Global", - "Null", - "Type", - "TypeBoolean", - "TypeFunction", - "TypeNull", - "TypeNumber", - "TypeObject", - "TypeString", - "TypeSymbol", - "TypeUndefined", - "Undefined", - "Value", - "ValueError", - "ValueOf", - }, - "testing": { - "AllocsPerRun", - "B", - "Benchmark", - "BenchmarkResult", - "Cover", - "CoverBlock", - "CoverMode", - "Coverage", - "F", - "Init", - "InternalBenchmark", - "InternalExample", - "InternalFuzzTarget", - "InternalTest", - "M", - "Main", - "MainStart", - "PB", - "RegisterCover", - "RunBenchmarks", - "RunExamples", - "RunTests", - "Short", - "T", - "TB", - "Testing", - "Verbose", - }, - "testing/fstest": { - "MapFS", - "MapFile", - "TestFS", - }, - "testing/iotest": { - "DataErrReader", - "ErrReader", - "ErrTimeout", - "HalfReader", - "NewReadLogger", - "NewWriteLogger", - "OneByteReader", - "TestReader", - "TimeoutReader", - "TruncateWriter", - }, - "testing/quick": { - "Check", - "CheckEqual", - "CheckEqualError", - "CheckError", - "Config", - "Generator", - "SetupError", - "Value", - }, - "testing/slogtest": { - "TestHandler", - }, - "text/scanner": { - "Char", - "Comment", - "EOF", - "Float", - "GoTokens", - "GoWhitespace", - "Ident", - "Int", - "Position", - "RawString", - "ScanChars", - "ScanComments", - "ScanFloats", - "ScanIdents", - "ScanInts", - "ScanRawStrings", - "ScanStrings", - "Scanner", - "SkipComments", - "String", - "TokenString", - }, - "text/tabwriter": { - "AlignRight", - "Debug", - "DiscardEmptyColumns", - "Escape", - "FilterHTML", - "NewWriter", - "StripEscape", - "TabIndent", - "Writer", - }, - "text/template": { - "ExecError", - "FuncMap", - "HTMLEscape", - "HTMLEscapeString", - "HTMLEscaper", - "IsTrue", - "JSEscape", - "JSEscapeString", - "JSEscaper", - "Must", - "New", - "ParseFS", - "ParseFiles", - "ParseGlob", - "Template", - "URLQueryEscaper", - }, - "text/template/parse": { - "ActionNode", - "BoolNode", - "BranchNode", - "BreakNode", - "ChainNode", - "CommandNode", - "CommentNode", - "ContinueNode", - "DotNode", - "FieldNode", - "IdentifierNode", - "IfNode", - "IsEmptyTree", - "ListNode", - "Mode", - "New", - "NewIdentifier", - "NilNode", - "Node", - "NodeAction", - "NodeBool", - "NodeBreak", - "NodeChain", - "NodeCommand", - "NodeComment", - "NodeContinue", - "NodeDot", - "NodeField", - "NodeIdentifier", - "NodeIf", - "NodeList", - "NodeNil", - "NodeNumber", - "NodePipe", - "NodeRange", - "NodeString", - "NodeTemplate", - "NodeText", - "NodeType", - "NodeVariable", - "NodeWith", - "NumberNode", - "Parse", - "ParseComments", - "PipeNode", - "Pos", - "RangeNode", - "SkipFuncCheck", - "StringNode", - "TemplateNode", - "TextNode", - "Tree", - "VariableNode", - "WithNode", - }, - "time": { - "ANSIC", - "After", - "AfterFunc", - "April", - "August", - "Date", - "DateOnly", - "DateTime", - "December", - "Duration", - "February", - "FixedZone", - "Friday", - "Hour", - "January", - "July", - "June", - "Kitchen", - "Layout", - "LoadLocation", - "LoadLocationFromTZData", - "Local", - "Location", - "March", - "May", - "Microsecond", - "Millisecond", - "Minute", - "Monday", - "Month", - "Nanosecond", - "NewTicker", - "NewTimer", - "November", - "Now", - "October", - "Parse", - "ParseDuration", - "ParseError", - "ParseInLocation", - "RFC1123", - "RFC1123Z", - "RFC3339", - "RFC3339Nano", - "RFC822", - "RFC822Z", - "RFC850", - "RubyDate", - "Saturday", - "Second", - "September", - "Since", - "Sleep", - "Stamp", - "StampMicro", - "StampMilli", - "StampNano", - "Sunday", - "Thursday", - "Tick", - "Ticker", - "Time", - "TimeOnly", - "Timer", - "Tuesday", - "UTC", - "Unix", - "UnixDate", - "UnixMicro", - "UnixMilli", - "Until", - "Wednesday", - "Weekday", - }, - "unicode": { - "ASCII_Hex_Digit", - "Adlam", - "Ahom", - "Anatolian_Hieroglyphs", - "Arabic", - "Armenian", - "Avestan", - "AzeriCase", - "Balinese", - "Bamum", - "Bassa_Vah", - "Batak", - "Bengali", - "Bhaiksuki", - "Bidi_Control", - "Bopomofo", - "Brahmi", - "Braille", - "Buginese", - "Buhid", - "C", - "Canadian_Aboriginal", - "Carian", - "CaseRange", - "CaseRanges", - "Categories", - "Caucasian_Albanian", - "Cc", - "Cf", - "Chakma", - "Cham", - "Cherokee", - "Chorasmian", - "Co", - "Common", - "Coptic", - "Cs", - "Cuneiform", - "Cypriot", - "Cypro_Minoan", - "Cyrillic", - "Dash", - "Deprecated", - "Deseret", - "Devanagari", - "Diacritic", - "Digit", - "Dives_Akuru", - "Dogra", - "Duployan", - "Egyptian_Hieroglyphs", - "Elbasan", - "Elymaic", - "Ethiopic", - "Extender", - "FoldCategory", - "FoldScript", - "Georgian", - "Glagolitic", - "Gothic", - "Grantha", - "GraphicRanges", - "Greek", - "Gujarati", - "Gunjala_Gondi", - "Gurmukhi", - "Han", - "Hangul", - "Hanifi_Rohingya", - "Hanunoo", - "Hatran", - "Hebrew", - "Hex_Digit", - "Hiragana", - "Hyphen", - "IDS_Binary_Operator", - "IDS_Trinary_Operator", - "Ideographic", - "Imperial_Aramaic", - "In", - "Inherited", - "Inscriptional_Pahlavi", - "Inscriptional_Parthian", - "Is", - "IsControl", - "IsDigit", - "IsGraphic", - "IsLetter", - "IsLower", - "IsMark", - "IsNumber", - "IsOneOf", - "IsPrint", - "IsPunct", - "IsSpace", - "IsSymbol", - "IsTitle", - "IsUpper", - "Javanese", - "Join_Control", - "Kaithi", - "Kannada", - "Katakana", - "Kawi", - "Kayah_Li", - "Kharoshthi", - "Khitan_Small_Script", - "Khmer", - "Khojki", - "Khudawadi", - "L", - "Lao", - "Latin", - "Lepcha", - "Letter", - "Limbu", - "Linear_A", - "Linear_B", - "Lisu", - "Ll", - "Lm", - "Lo", - "Logical_Order_Exception", - "Lower", - "LowerCase", - "Lt", - "Lu", - "Lycian", - "Lydian", - "M", - "Mahajani", - "Makasar", - "Malayalam", - "Mandaic", - "Manichaean", - "Marchen", - "Mark", - "Masaram_Gondi", - "MaxASCII", - "MaxCase", - "MaxLatin1", - "MaxRune", - "Mc", - "Me", - "Medefaidrin", - "Meetei_Mayek", - "Mende_Kikakui", - "Meroitic_Cursive", - "Meroitic_Hieroglyphs", - "Miao", - "Mn", - "Modi", - "Mongolian", - "Mro", - "Multani", - "Myanmar", - "N", - "Nabataean", - "Nag_Mundari", - "Nandinagari", - "Nd", - "New_Tai_Lue", - "Newa", - "Nko", - "Nl", - "No", - "Noncharacter_Code_Point", - "Number", - "Nushu", - "Nyiakeng_Puachue_Hmong", - "Ogham", - "Ol_Chiki", - "Old_Hungarian", - "Old_Italic", - "Old_North_Arabian", - "Old_Permic", - "Old_Persian", - "Old_Sogdian", - "Old_South_Arabian", - "Old_Turkic", - "Old_Uyghur", - "Oriya", - "Osage", - "Osmanya", - "Other", - "Other_Alphabetic", - "Other_Default_Ignorable_Code_Point", - "Other_Grapheme_Extend", - "Other_ID_Continue", - "Other_ID_Start", - "Other_Lowercase", - "Other_Math", - "Other_Uppercase", - "P", - "Pahawh_Hmong", - "Palmyrene", - "Pattern_Syntax", - "Pattern_White_Space", - "Pau_Cin_Hau", - "Pc", - "Pd", - "Pe", - "Pf", - "Phags_Pa", - "Phoenician", - "Pi", - "Po", - "Prepended_Concatenation_Mark", - "PrintRanges", - "Properties", - "Ps", - "Psalter_Pahlavi", - "Punct", - "Quotation_Mark", - "Radical", - "Range16", - "Range32", - "RangeTable", - "Regional_Indicator", - "Rejang", - "ReplacementChar", - "Runic", - "S", - "STerm", - "Samaritan", - "Saurashtra", - "Sc", - "Scripts", - "Sentence_Terminal", - "Sharada", - "Shavian", - "Siddham", - "SignWriting", - "SimpleFold", - "Sinhala", - "Sk", - "Sm", - "So", - "Soft_Dotted", - "Sogdian", - "Sora_Sompeng", - "Soyombo", - "Space", - "SpecialCase", - "Sundanese", - "Syloti_Nagri", - "Symbol", - "Syriac", - "Tagalog", - "Tagbanwa", - "Tai_Le", - "Tai_Tham", - "Tai_Viet", - "Takri", - "Tamil", - "Tangsa", - "Tangut", - "Telugu", - "Terminal_Punctuation", - "Thaana", - "Thai", - "Tibetan", - "Tifinagh", - "Tirhuta", - "Title", - "TitleCase", - "To", - "ToLower", - "ToTitle", - "ToUpper", - "Toto", - "TurkishCase", - "Ugaritic", - "Unified_Ideograph", - "Upper", - "UpperCase", - "UpperLower", - "Vai", - "Variation_Selector", - "Version", - "Vithkuqi", - "Wancho", - "Warang_Citi", - "White_Space", - "Yezidi", - "Yi", - "Z", - "Zanabazar_Square", - "Zl", - "Zp", - "Zs", - }, - "unicode/utf16": { - "AppendRune", - "Decode", - "DecodeRune", - "Encode", - "EncodeRune", - "IsSurrogate", - }, - "unicode/utf8": { - "AppendRune", - "DecodeLastRune", - "DecodeLastRuneInString", - "DecodeRune", - "DecodeRuneInString", - "EncodeRune", - "FullRune", - "FullRuneInString", - "MaxRune", - "RuneCount", - "RuneCountInString", - "RuneError", - "RuneLen", - "RuneSelf", - "RuneStart", - "UTFMax", - "Valid", - "ValidRune", - "ValidString", - }, - "unsafe": { - "Add", - "Alignof", - "Offsetof", - "Pointer", - "Sizeof", - "Slice", - "SliceData", - "String", - "StringData", - }, -} diff --git a/vendor/golang.org/x/tools/internal/stdlib/manifest.go b/vendor/golang.org/x/tools/internal/stdlib/manifest.go new file mode 100644 index 000000000..fd6892075 --- /dev/null +++ b/vendor/golang.org/x/tools/internal/stdlib/manifest.go @@ -0,0 +1,17320 @@ +// Copyright 2024 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Code generated by generate.go. DO NOT EDIT. + +package stdlib + +var PackageSymbols = map[string][]Symbol{ + "archive/tar": { + {"(*Header).FileInfo", Method, 1}, + {"(*Reader).Next", Method, 0}, + {"(*Reader).Read", Method, 0}, + {"(*Writer).AddFS", Method, 22}, + {"(*Writer).Close", Method, 0}, + {"(*Writer).Flush", Method, 0}, + {"(*Writer).Write", Method, 0}, + {"(*Writer).WriteHeader", Method, 0}, + {"(Format).String", Method, 10}, + {"ErrFieldTooLong", Var, 0}, + {"ErrHeader", Var, 0}, + {"ErrInsecurePath", Var, 20}, + {"ErrWriteAfterClose", Var, 0}, + {"ErrWriteTooLong", Var, 0}, + {"FileInfoHeader", Func, 1}, + {"Format", Type, 10}, + {"FormatGNU", Const, 10}, + {"FormatPAX", Const, 10}, + {"FormatUSTAR", Const, 10}, + {"FormatUnknown", Const, 10}, + {"Header", Type, 0}, + {"Header.AccessTime", Field, 0}, + {"Header.ChangeTime", Field, 0}, + {"Header.Devmajor", Field, 0}, + {"Header.Devminor", Field, 0}, + {"Header.Format", Field, 10}, + {"Header.Gid", Field, 0}, + {"Header.Gname", Field, 0}, + {"Header.Linkname", Field, 0}, + {"Header.ModTime", Field, 0}, + {"Header.Mode", Field, 0}, + {"Header.Name", Field, 0}, + {"Header.PAXRecords", Field, 10}, + {"Header.Size", Field, 0}, + {"Header.Typeflag", Field, 0}, + {"Header.Uid", Field, 0}, + {"Header.Uname", Field, 0}, + {"Header.Xattrs", Field, 3}, + {"NewReader", Func, 0}, + {"NewWriter", Func, 0}, + {"Reader", Type, 0}, + {"TypeBlock", Const, 0}, + {"TypeChar", Const, 0}, + {"TypeCont", Const, 0}, + {"TypeDir", Const, 0}, + {"TypeFifo", Const, 0}, + {"TypeGNULongLink", Const, 1}, + {"TypeGNULongName", Const, 1}, + {"TypeGNUSparse", Const, 3}, + {"TypeLink", Const, 0}, + {"TypeReg", Const, 0}, + {"TypeRegA", Const, 0}, + {"TypeSymlink", Const, 0}, + {"TypeXGlobalHeader", Const, 0}, + {"TypeXHeader", Const, 0}, + {"Writer", Type, 0}, + }, + "archive/zip": { + {"(*File).DataOffset", Method, 2}, + {"(*File).FileInfo", Method, 0}, + {"(*File).ModTime", Method, 0}, + {"(*File).Mode", Method, 0}, + {"(*File).Open", Method, 0}, + {"(*File).OpenRaw", Method, 17}, + {"(*File).SetModTime", Method, 0}, + {"(*File).SetMode", Method, 0}, + {"(*FileHeader).FileInfo", Method, 0}, + {"(*FileHeader).ModTime", Method, 0}, + {"(*FileHeader).Mode", Method, 0}, + {"(*FileHeader).SetModTime", Method, 0}, + {"(*FileHeader).SetMode", Method, 0}, + {"(*ReadCloser).Close", Method, 0}, + {"(*ReadCloser).Open", Method, 16}, + {"(*ReadCloser).RegisterDecompressor", Method, 6}, + {"(*Reader).Open", Method, 16}, + {"(*Reader).RegisterDecompressor", Method, 6}, + {"(*Writer).AddFS", Method, 22}, + {"(*Writer).Close", Method, 0}, + {"(*Writer).Copy", Method, 17}, + {"(*Writer).Create", Method, 0}, + {"(*Writer).CreateHeader", Method, 0}, + {"(*Writer).CreateRaw", Method, 17}, + {"(*Writer).Flush", Method, 4}, + {"(*Writer).RegisterCompressor", Method, 6}, + {"(*Writer).SetComment", Method, 10}, + {"(*Writer).SetOffset", Method, 5}, + {"Compressor", Type, 2}, + {"Decompressor", Type, 2}, + {"Deflate", Const, 0}, + {"ErrAlgorithm", Var, 0}, + {"ErrChecksum", Var, 0}, + {"ErrFormat", Var, 0}, + {"ErrInsecurePath", Var, 20}, + {"File", Type, 0}, + {"File.FileHeader", Field, 0}, + {"FileHeader", Type, 0}, + {"FileHeader.CRC32", Field, 0}, + {"FileHeader.Comment", Field, 0}, + {"FileHeader.CompressedSize", Field, 0}, + {"FileHeader.CompressedSize64", Field, 1}, + {"FileHeader.CreatorVersion", Field, 0}, + {"FileHeader.ExternalAttrs", Field, 0}, + {"FileHeader.Extra", Field, 0}, + {"FileHeader.Flags", Field, 0}, + {"FileHeader.Method", Field, 0}, + {"FileHeader.Modified", Field, 10}, + {"FileHeader.ModifiedDate", Field, 0}, + {"FileHeader.ModifiedTime", Field, 0}, + {"FileHeader.Name", Field, 0}, + {"FileHeader.NonUTF8", Field, 10}, + {"FileHeader.ReaderVersion", Field, 0}, + {"FileHeader.UncompressedSize", Field, 0}, + {"FileHeader.UncompressedSize64", Field, 1}, + {"FileInfoHeader", Func, 0}, + {"NewReader", Func, 0}, + {"NewWriter", Func, 0}, + {"OpenReader", Func, 0}, + {"ReadCloser", Type, 0}, + {"ReadCloser.Reader", Field, 0}, + {"Reader", Type, 0}, + {"Reader.Comment", Field, 0}, + {"Reader.File", Field, 0}, + {"RegisterCompressor", Func, 2}, + {"RegisterDecompressor", Func, 2}, + {"Store", Const, 0}, + {"Writer", Type, 0}, + }, + "bufio": { + {"(*Reader).Buffered", Method, 0}, + {"(*Reader).Discard", Method, 5}, + {"(*Reader).Peek", Method, 0}, + {"(*Reader).Read", Method, 0}, + {"(*Reader).ReadByte", Method, 0}, + {"(*Reader).ReadBytes", Method, 0}, + {"(*Reader).ReadLine", Method, 0}, + {"(*Reader).ReadRune", Method, 0}, + {"(*Reader).ReadSlice", Method, 0}, + {"(*Reader).ReadString", Method, 0}, + {"(*Reader).Reset", Method, 2}, + {"(*Reader).Size", Method, 10}, + {"(*Reader).UnreadByte", Method, 0}, + {"(*Reader).UnreadRune", Method, 0}, + {"(*Reader).WriteTo", Method, 1}, + {"(*Scanner).Buffer", Method, 6}, + {"(*Scanner).Bytes", Method, 1}, + {"(*Scanner).Err", Method, 1}, + {"(*Scanner).Scan", Method, 1}, + {"(*Scanner).Split", Method, 1}, + {"(*Scanner).Text", Method, 1}, + {"(*Writer).Available", Method, 0}, + {"(*Writer).AvailableBuffer", Method, 18}, + {"(*Writer).Buffered", Method, 0}, + {"(*Writer).Flush", Method, 0}, + {"(*Writer).ReadFrom", Method, 1}, + {"(*Writer).Reset", Method, 2}, + {"(*Writer).Size", Method, 10}, + {"(*Writer).Write", Method, 0}, + {"(*Writer).WriteByte", Method, 0}, + {"(*Writer).WriteRune", Method, 0}, + {"(*Writer).WriteString", Method, 0}, + {"(ReadWriter).Available", Method, 0}, + {"(ReadWriter).AvailableBuffer", Method, 18}, + {"(ReadWriter).Discard", Method, 5}, + {"(ReadWriter).Flush", Method, 0}, + {"(ReadWriter).Peek", Method, 0}, + {"(ReadWriter).Read", Method, 0}, + {"(ReadWriter).ReadByte", Method, 0}, + {"(ReadWriter).ReadBytes", Method, 0}, + {"(ReadWriter).ReadFrom", Method, 1}, + {"(ReadWriter).ReadLine", Method, 0}, + {"(ReadWriter).ReadRune", Method, 0}, + {"(ReadWriter).ReadSlice", Method, 0}, + {"(ReadWriter).ReadString", Method, 0}, + {"(ReadWriter).UnreadByte", Method, 0}, + {"(ReadWriter).UnreadRune", Method, 0}, + {"(ReadWriter).Write", Method, 0}, + {"(ReadWriter).WriteByte", Method, 0}, + {"(ReadWriter).WriteRune", Method, 0}, + {"(ReadWriter).WriteString", Method, 0}, + {"(ReadWriter).WriteTo", Method, 1}, + {"ErrAdvanceTooFar", Var, 1}, + {"ErrBadReadCount", Var, 15}, + {"ErrBufferFull", Var, 0}, + {"ErrFinalToken", Var, 6}, + {"ErrInvalidUnreadByte", Var, 0}, + {"ErrInvalidUnreadRune", Var, 0}, + {"ErrNegativeAdvance", Var, 1}, + {"ErrNegativeCount", Var, 0}, + {"ErrTooLong", Var, 1}, + {"MaxScanTokenSize", Const, 1}, + {"NewReadWriter", Func, 0}, + {"NewReader", Func, 0}, + {"NewReaderSize", Func, 0}, + {"NewScanner", Func, 1}, + {"NewWriter", Func, 0}, + {"NewWriterSize", Func, 0}, + {"ReadWriter", Type, 0}, + {"ReadWriter.Reader", Field, 0}, + {"ReadWriter.Writer", Field, 0}, + {"Reader", Type, 0}, + {"ScanBytes", Func, 1}, + {"ScanLines", Func, 1}, + {"ScanRunes", Func, 1}, + {"ScanWords", Func, 1}, + {"Scanner", Type, 1}, + {"SplitFunc", Type, 1}, + {"Writer", Type, 0}, + }, + "bytes": { + {"(*Buffer).Available", Method, 21}, + {"(*Buffer).AvailableBuffer", Method, 21}, + {"(*Buffer).Bytes", Method, 0}, + {"(*Buffer).Cap", Method, 5}, + {"(*Buffer).Grow", Method, 1}, + {"(*Buffer).Len", Method, 0}, + {"(*Buffer).Next", Method, 0}, + {"(*Buffer).Read", Method, 0}, + {"(*Buffer).ReadByte", Method, 0}, + {"(*Buffer).ReadBytes", Method, 0}, + {"(*Buffer).ReadFrom", Method, 0}, + {"(*Buffer).ReadRune", Method, 0}, + {"(*Buffer).ReadString", Method, 0}, + {"(*Buffer).Reset", Method, 0}, + {"(*Buffer).String", Method, 0}, + {"(*Buffer).Truncate", Method, 0}, + {"(*Buffer).UnreadByte", Method, 0}, + {"(*Buffer).UnreadRune", Method, 0}, + {"(*Buffer).Write", Method, 0}, + {"(*Buffer).WriteByte", Method, 0}, + {"(*Buffer).WriteRune", Method, 0}, + {"(*Buffer).WriteString", Method, 0}, + {"(*Buffer).WriteTo", Method, 0}, + {"(*Reader).Len", Method, 0}, + {"(*Reader).Read", Method, 0}, + {"(*Reader).ReadAt", Method, 0}, + {"(*Reader).ReadByte", Method, 0}, + {"(*Reader).ReadRune", Method, 0}, + {"(*Reader).Reset", Method, 7}, + {"(*Reader).Seek", Method, 0}, + {"(*Reader).Size", Method, 5}, + {"(*Reader).UnreadByte", Method, 0}, + {"(*Reader).UnreadRune", Method, 0}, + {"(*Reader).WriteTo", Method, 1}, + {"Buffer", Type, 0}, + {"Clone", Func, 20}, + {"Compare", Func, 0}, + {"Contains", Func, 0}, + {"ContainsAny", Func, 7}, + {"ContainsFunc", Func, 21}, + {"ContainsRune", Func, 7}, + {"Count", Func, 0}, + {"Cut", Func, 18}, + {"CutPrefix", Func, 20}, + {"CutSuffix", Func, 20}, + {"Equal", Func, 0}, + {"EqualFold", Func, 0}, + {"ErrTooLarge", Var, 0}, + {"Fields", Func, 0}, + {"FieldsFunc", Func, 0}, + {"HasPrefix", Func, 0}, + {"HasSuffix", Func, 0}, + {"Index", Func, 0}, + {"IndexAny", Func, 0}, + {"IndexByte", Func, 0}, + {"IndexFunc", Func, 0}, + {"IndexRune", Func, 0}, + {"Join", Func, 0}, + {"LastIndex", Func, 0}, + {"LastIndexAny", Func, 0}, + {"LastIndexByte", Func, 5}, + {"LastIndexFunc", Func, 0}, + {"Map", Func, 0}, + {"MinRead", Const, 0}, + {"NewBuffer", Func, 0}, + {"NewBufferString", Func, 0}, + {"NewReader", Func, 0}, + {"Reader", Type, 0}, + {"Repeat", Func, 0}, + {"Replace", Func, 0}, + {"ReplaceAll", Func, 12}, + {"Runes", Func, 0}, + {"Split", Func, 0}, + {"SplitAfter", Func, 0}, + {"SplitAfterN", Func, 0}, + {"SplitN", Func, 0}, + {"Title", Func, 0}, + {"ToLower", Func, 0}, + {"ToLowerSpecial", Func, 0}, + {"ToTitle", Func, 0}, + {"ToTitleSpecial", Func, 0}, + {"ToUpper", Func, 0}, + {"ToUpperSpecial", Func, 0}, + {"ToValidUTF8", Func, 13}, + {"Trim", Func, 0}, + {"TrimFunc", Func, 0}, + {"TrimLeft", Func, 0}, + {"TrimLeftFunc", Func, 0}, + {"TrimPrefix", Func, 1}, + {"TrimRight", Func, 0}, + {"TrimRightFunc", Func, 0}, + {"TrimSpace", Func, 0}, + {"TrimSuffix", Func, 1}, + }, + "cmp": { + {"Compare", Func, 21}, + {"Less", Func, 21}, + {"Or", Func, 22}, + {"Ordered", Type, 21}, + }, + "compress/bzip2": { + {"(StructuralError).Error", Method, 0}, + {"NewReader", Func, 0}, + {"StructuralError", Type, 0}, + }, + "compress/flate": { + {"(*ReadError).Error", Method, 0}, + {"(*WriteError).Error", Method, 0}, + {"(*Writer).Close", Method, 0}, + {"(*Writer).Flush", Method, 0}, + {"(*Writer).Reset", Method, 2}, + {"(*Writer).Write", Method, 0}, + {"(CorruptInputError).Error", Method, 0}, + {"(InternalError).Error", Method, 0}, + {"BestCompression", Const, 0}, + {"BestSpeed", Const, 0}, + {"CorruptInputError", Type, 0}, + {"DefaultCompression", Const, 0}, + {"HuffmanOnly", Const, 7}, + {"InternalError", Type, 0}, + {"NewReader", Func, 0}, + {"NewReaderDict", Func, 0}, + {"NewWriter", Func, 0}, + {"NewWriterDict", Func, 0}, + {"NoCompression", Const, 0}, + {"ReadError", Type, 0}, + {"ReadError.Err", Field, 0}, + {"ReadError.Offset", Field, 0}, + {"Reader", Type, 0}, + {"Resetter", Type, 4}, + {"WriteError", Type, 0}, + {"WriteError.Err", Field, 0}, + {"WriteError.Offset", Field, 0}, + {"Writer", Type, 0}, + }, + "compress/gzip": { + {"(*Reader).Close", Method, 0}, + {"(*Reader).Multistream", Method, 4}, + {"(*Reader).Read", Method, 0}, + {"(*Reader).Reset", Method, 3}, + {"(*Writer).Close", Method, 0}, + {"(*Writer).Flush", Method, 1}, + {"(*Writer).Reset", Method, 2}, + {"(*Writer).Write", Method, 0}, + {"BestCompression", Const, 0}, + {"BestSpeed", Const, 0}, + {"DefaultCompression", Const, 0}, + {"ErrChecksum", Var, 0}, + {"ErrHeader", Var, 0}, + {"Header", Type, 0}, + {"Header.Comment", Field, 0}, + {"Header.Extra", Field, 0}, + {"Header.ModTime", Field, 0}, + {"Header.Name", Field, 0}, + {"Header.OS", Field, 0}, + {"HuffmanOnly", Const, 8}, + {"NewReader", Func, 0}, + {"NewWriter", Func, 0}, + {"NewWriterLevel", Func, 0}, + {"NoCompression", Const, 0}, + {"Reader", Type, 0}, + {"Reader.Header", Field, 0}, + {"Writer", Type, 0}, + {"Writer.Header", Field, 0}, + }, + "compress/lzw": { + {"(*Reader).Close", Method, 17}, + {"(*Reader).Read", Method, 17}, + {"(*Reader).Reset", Method, 17}, + {"(*Writer).Close", Method, 17}, + {"(*Writer).Reset", Method, 17}, + {"(*Writer).Write", Method, 17}, + {"LSB", Const, 0}, + {"MSB", Const, 0}, + {"NewReader", Func, 0}, + {"NewWriter", Func, 0}, + {"Order", Type, 0}, + {"Reader", Type, 17}, + {"Writer", Type, 17}, + }, + "compress/zlib": { + {"(*Writer).Close", Method, 0}, + {"(*Writer).Flush", Method, 0}, + {"(*Writer).Reset", Method, 2}, + {"(*Writer).Write", Method, 0}, + {"BestCompression", Const, 0}, + {"BestSpeed", Const, 0}, + {"DefaultCompression", Const, 0}, + {"ErrChecksum", Var, 0}, + {"ErrDictionary", Var, 0}, + {"ErrHeader", Var, 0}, + {"HuffmanOnly", Const, 8}, + {"NewReader", Func, 0}, + {"NewReaderDict", Func, 0}, + {"NewWriter", Func, 0}, + {"NewWriterLevel", Func, 0}, + {"NewWriterLevelDict", Func, 0}, + {"NoCompression", Const, 0}, + {"Resetter", Type, 4}, + {"Writer", Type, 0}, + }, + "container/heap": { + {"Fix", Func, 2}, + {"Init", Func, 0}, + {"Interface", Type, 0}, + {"Pop", Func, 0}, + {"Push", Func, 0}, + {"Remove", Func, 0}, + }, + "container/list": { + {"(*Element).Next", Method, 0}, + {"(*Element).Prev", Method, 0}, + {"(*List).Back", Method, 0}, + {"(*List).Front", Method, 0}, + {"(*List).Init", Method, 0}, + {"(*List).InsertAfter", Method, 0}, + {"(*List).InsertBefore", Method, 0}, + {"(*List).Len", Method, 0}, + {"(*List).MoveAfter", Method, 2}, + {"(*List).MoveBefore", Method, 2}, + {"(*List).MoveToBack", Method, 0}, + {"(*List).MoveToFront", Method, 0}, + {"(*List).PushBack", Method, 0}, + {"(*List).PushBackList", Method, 0}, + {"(*List).PushFront", Method, 0}, + {"(*List).PushFrontList", Method, 0}, + {"(*List).Remove", Method, 0}, + {"Element", Type, 0}, + {"Element.Value", Field, 0}, + {"List", Type, 0}, + {"New", Func, 0}, + }, + "container/ring": { + {"(*Ring).Do", Method, 0}, + {"(*Ring).Len", Method, 0}, + {"(*Ring).Link", Method, 0}, + {"(*Ring).Move", Method, 0}, + {"(*Ring).Next", Method, 0}, + {"(*Ring).Prev", Method, 0}, + {"(*Ring).Unlink", Method, 0}, + {"New", Func, 0}, + {"Ring", Type, 0}, + {"Ring.Value", Field, 0}, + }, + "context": { + {"AfterFunc", Func, 21}, + {"Background", Func, 7}, + {"CancelCauseFunc", Type, 20}, + {"CancelFunc", Type, 7}, + {"Canceled", Var, 7}, + {"Cause", Func, 20}, + {"Context", Type, 7}, + {"DeadlineExceeded", Var, 7}, + {"TODO", Func, 7}, + {"WithCancel", Func, 7}, + {"WithCancelCause", Func, 20}, + {"WithDeadline", Func, 7}, + {"WithDeadlineCause", Func, 21}, + {"WithTimeout", Func, 7}, + {"WithTimeoutCause", Func, 21}, + {"WithValue", Func, 7}, + {"WithoutCancel", Func, 21}, + }, + "crypto": { + {"(Hash).Available", Method, 0}, + {"(Hash).HashFunc", Method, 4}, + {"(Hash).New", Method, 0}, + {"(Hash).Size", Method, 0}, + {"(Hash).String", Method, 15}, + {"BLAKE2b_256", Const, 9}, + {"BLAKE2b_384", Const, 9}, + {"BLAKE2b_512", Const, 9}, + {"BLAKE2s_256", Const, 9}, + {"Decrypter", Type, 5}, + {"DecrypterOpts", Type, 5}, + {"Hash", Type, 0}, + {"MD4", Const, 0}, + {"MD5", Const, 0}, + {"MD5SHA1", Const, 0}, + {"PrivateKey", Type, 0}, + {"PublicKey", Type, 2}, + {"RIPEMD160", Const, 0}, + {"RegisterHash", Func, 0}, + {"SHA1", Const, 0}, + {"SHA224", Const, 0}, + {"SHA256", Const, 0}, + {"SHA384", Const, 0}, + {"SHA3_224", Const, 4}, + {"SHA3_256", Const, 4}, + {"SHA3_384", Const, 4}, + {"SHA3_512", Const, 4}, + {"SHA512", Const, 0}, + {"SHA512_224", Const, 5}, + {"SHA512_256", Const, 5}, + {"Signer", Type, 4}, + {"SignerOpts", Type, 4}, + }, + "crypto/aes": { + {"(KeySizeError).Error", Method, 0}, + {"BlockSize", Const, 0}, + {"KeySizeError", Type, 0}, + {"NewCipher", Func, 0}, + }, + "crypto/cipher": { + {"(StreamReader).Read", Method, 0}, + {"(StreamWriter).Close", Method, 0}, + {"(StreamWriter).Write", Method, 0}, + {"AEAD", Type, 2}, + {"Block", Type, 0}, + {"BlockMode", Type, 0}, + {"NewCBCDecrypter", Func, 0}, + {"NewCBCEncrypter", Func, 0}, + {"NewCFBDecrypter", Func, 0}, + {"NewCFBEncrypter", Func, 0}, + {"NewCTR", Func, 0}, + {"NewGCM", Func, 2}, + {"NewGCMWithNonceSize", Func, 5}, + {"NewGCMWithTagSize", Func, 11}, + {"NewOFB", Func, 0}, + {"Stream", Type, 0}, + {"StreamReader", Type, 0}, + {"StreamReader.R", Field, 0}, + {"StreamReader.S", Field, 0}, + {"StreamWriter", Type, 0}, + {"StreamWriter.Err", Field, 0}, + {"StreamWriter.S", Field, 0}, + {"StreamWriter.W", Field, 0}, + }, + "crypto/des": { + {"(KeySizeError).Error", Method, 0}, + {"BlockSize", Const, 0}, + {"KeySizeError", Type, 0}, + {"NewCipher", Func, 0}, + {"NewTripleDESCipher", Func, 0}, + }, + "crypto/dsa": { + {"ErrInvalidPublicKey", Var, 0}, + {"GenerateKey", Func, 0}, + {"GenerateParameters", Func, 0}, + {"L1024N160", Const, 0}, + {"L2048N224", Const, 0}, + {"L2048N256", Const, 0}, + {"L3072N256", Const, 0}, + {"ParameterSizes", Type, 0}, + {"Parameters", Type, 0}, + {"Parameters.G", Field, 0}, + {"Parameters.P", Field, 0}, + {"Parameters.Q", Field, 0}, + {"PrivateKey", Type, 0}, + {"PrivateKey.PublicKey", Field, 0}, + {"PrivateKey.X", Field, 0}, + {"PublicKey", Type, 0}, + {"PublicKey.Parameters", Field, 0}, + {"PublicKey.Y", Field, 0}, + {"Sign", Func, 0}, + {"Verify", Func, 0}, + }, + "crypto/ecdh": { + {"(*PrivateKey).Bytes", Method, 20}, + {"(*PrivateKey).Curve", Method, 20}, + {"(*PrivateKey).ECDH", Method, 20}, + {"(*PrivateKey).Equal", Method, 20}, + {"(*PrivateKey).Public", Method, 20}, + {"(*PrivateKey).PublicKey", Method, 20}, + {"(*PublicKey).Bytes", Method, 20}, + {"(*PublicKey).Curve", Method, 20}, + {"(*PublicKey).Equal", Method, 20}, + {"Curve", Type, 20}, + {"P256", Func, 20}, + {"P384", Func, 20}, + {"P521", Func, 20}, + {"PrivateKey", Type, 20}, + {"PublicKey", Type, 20}, + {"X25519", Func, 20}, + }, + "crypto/ecdsa": { + {"(*PrivateKey).ECDH", Method, 20}, + {"(*PrivateKey).Equal", Method, 15}, + {"(*PrivateKey).Public", Method, 4}, + {"(*PrivateKey).Sign", Method, 4}, + {"(*PublicKey).ECDH", Method, 20}, + {"(*PublicKey).Equal", Method, 15}, + {"(PrivateKey).Add", Method, 0}, + {"(PrivateKey).Double", Method, 0}, + {"(PrivateKey).IsOnCurve", Method, 0}, + {"(PrivateKey).Params", Method, 0}, + {"(PrivateKey).ScalarBaseMult", Method, 0}, + {"(PrivateKey).ScalarMult", Method, 0}, + {"(PublicKey).Add", Method, 0}, + {"(PublicKey).Double", Method, 0}, + {"(PublicKey).IsOnCurve", Method, 0}, + {"(PublicKey).Params", Method, 0}, + {"(PublicKey).ScalarBaseMult", Method, 0}, + {"(PublicKey).ScalarMult", Method, 0}, + {"GenerateKey", Func, 0}, + {"PrivateKey", Type, 0}, + {"PrivateKey.D", Field, 0}, + {"PrivateKey.PublicKey", Field, 0}, + {"PublicKey", Type, 0}, + {"PublicKey.Curve", Field, 0}, + {"PublicKey.X", Field, 0}, + {"PublicKey.Y", Field, 0}, + {"Sign", Func, 0}, + {"SignASN1", Func, 15}, + {"Verify", Func, 0}, + {"VerifyASN1", Func, 15}, + }, + "crypto/ed25519": { + {"(*Options).HashFunc", Method, 20}, + {"(PrivateKey).Equal", Method, 15}, + {"(PrivateKey).Public", Method, 13}, + {"(PrivateKey).Seed", Method, 13}, + {"(PrivateKey).Sign", Method, 13}, + {"(PublicKey).Equal", Method, 15}, + {"GenerateKey", Func, 13}, + {"NewKeyFromSeed", Func, 13}, + {"Options", Type, 20}, + {"Options.Context", Field, 20}, + {"Options.Hash", Field, 20}, + {"PrivateKey", Type, 13}, + {"PrivateKeySize", Const, 13}, + {"PublicKey", Type, 13}, + {"PublicKeySize", Const, 13}, + {"SeedSize", Const, 13}, + {"Sign", Func, 13}, + {"SignatureSize", Const, 13}, + {"Verify", Func, 13}, + {"VerifyWithOptions", Func, 20}, + }, + "crypto/elliptic": { + {"(*CurveParams).Add", Method, 0}, + {"(*CurveParams).Double", Method, 0}, + {"(*CurveParams).IsOnCurve", Method, 0}, + {"(*CurveParams).Params", Method, 0}, + {"(*CurveParams).ScalarBaseMult", Method, 0}, + {"(*CurveParams).ScalarMult", Method, 0}, + {"Curve", Type, 0}, + {"CurveParams", Type, 0}, + {"CurveParams.B", Field, 0}, + {"CurveParams.BitSize", Field, 0}, + {"CurveParams.Gx", Field, 0}, + {"CurveParams.Gy", Field, 0}, + {"CurveParams.N", Field, 0}, + {"CurveParams.Name", Field, 5}, + {"CurveParams.P", Field, 0}, + {"GenerateKey", Func, 0}, + {"Marshal", Func, 0}, + {"MarshalCompressed", Func, 15}, + {"P224", Func, 0}, + {"P256", Func, 0}, + {"P384", Func, 0}, + {"P521", Func, 0}, + {"Unmarshal", Func, 0}, + {"UnmarshalCompressed", Func, 15}, + }, + "crypto/hmac": { + {"Equal", Func, 1}, + {"New", Func, 0}, + }, + "crypto/md5": { + {"BlockSize", Const, 0}, + {"New", Func, 0}, + {"Size", Const, 0}, + {"Sum", Func, 2}, + }, + "crypto/rand": { + {"Int", Func, 0}, + {"Prime", Func, 0}, + {"Read", Func, 0}, + {"Reader", Var, 0}, + }, + "crypto/rc4": { + {"(*Cipher).Reset", Method, 0}, + {"(*Cipher).XORKeyStream", Method, 0}, + {"(KeySizeError).Error", Method, 0}, + {"Cipher", Type, 0}, + {"KeySizeError", Type, 0}, + {"NewCipher", Func, 0}, + }, + "crypto/rsa": { + {"(*PSSOptions).HashFunc", Method, 4}, + {"(*PrivateKey).Decrypt", Method, 5}, + {"(*PrivateKey).Equal", Method, 15}, + {"(*PrivateKey).Precompute", Method, 0}, + {"(*PrivateKey).Public", Method, 4}, + {"(*PrivateKey).Sign", Method, 4}, + {"(*PrivateKey).Size", Method, 11}, + {"(*PrivateKey).Validate", Method, 0}, + {"(*PublicKey).Equal", Method, 15}, + {"(*PublicKey).Size", Method, 11}, + {"CRTValue", Type, 0}, + {"CRTValue.Coeff", Field, 0}, + {"CRTValue.Exp", Field, 0}, + {"CRTValue.R", Field, 0}, + {"DecryptOAEP", Func, 0}, + {"DecryptPKCS1v15", Func, 0}, + {"DecryptPKCS1v15SessionKey", Func, 0}, + {"EncryptOAEP", Func, 0}, + {"EncryptPKCS1v15", Func, 0}, + {"ErrDecryption", Var, 0}, + {"ErrMessageTooLong", Var, 0}, + {"ErrVerification", Var, 0}, + {"GenerateKey", Func, 0}, + {"GenerateMultiPrimeKey", Func, 0}, + {"OAEPOptions", Type, 5}, + {"OAEPOptions.Hash", Field, 5}, + {"OAEPOptions.Label", Field, 5}, + {"OAEPOptions.MGFHash", Field, 20}, + {"PKCS1v15DecryptOptions", Type, 5}, + {"PKCS1v15DecryptOptions.SessionKeyLen", Field, 5}, + {"PSSOptions", Type, 2}, + {"PSSOptions.Hash", Field, 4}, + {"PSSOptions.SaltLength", Field, 2}, + {"PSSSaltLengthAuto", Const, 2}, + {"PSSSaltLengthEqualsHash", Const, 2}, + {"PrecomputedValues", Type, 0}, + {"PrecomputedValues.CRTValues", Field, 0}, + {"PrecomputedValues.Dp", Field, 0}, + {"PrecomputedValues.Dq", Field, 0}, + {"PrecomputedValues.Qinv", Field, 0}, + {"PrivateKey", Type, 0}, + {"PrivateKey.D", Field, 0}, + {"PrivateKey.Precomputed", Field, 0}, + {"PrivateKey.Primes", Field, 0}, + {"PrivateKey.PublicKey", Field, 0}, + {"PublicKey", Type, 0}, + {"PublicKey.E", Field, 0}, + {"PublicKey.N", Field, 0}, + {"SignPKCS1v15", Func, 0}, + {"SignPSS", Func, 2}, + {"VerifyPKCS1v15", Func, 0}, + {"VerifyPSS", Func, 2}, + }, + "crypto/sha1": { + {"BlockSize", Const, 0}, + {"New", Func, 0}, + {"Size", Const, 0}, + {"Sum", Func, 2}, + }, + "crypto/sha256": { + {"BlockSize", Const, 0}, + {"New", Func, 0}, + {"New224", Func, 0}, + {"Size", Const, 0}, + {"Size224", Const, 0}, + {"Sum224", Func, 2}, + {"Sum256", Func, 2}, + }, + "crypto/sha512": { + {"BlockSize", Const, 0}, + {"New", Func, 0}, + {"New384", Func, 0}, + {"New512_224", Func, 5}, + {"New512_256", Func, 5}, + {"Size", Const, 0}, + {"Size224", Const, 5}, + {"Size256", Const, 5}, + {"Size384", Const, 0}, + {"Sum384", Func, 2}, + {"Sum512", Func, 2}, + {"Sum512_224", Func, 5}, + {"Sum512_256", Func, 5}, + }, + "crypto/subtle": { + {"ConstantTimeByteEq", Func, 0}, + {"ConstantTimeCompare", Func, 0}, + {"ConstantTimeCopy", Func, 0}, + {"ConstantTimeEq", Func, 0}, + {"ConstantTimeLessOrEq", Func, 2}, + {"ConstantTimeSelect", Func, 0}, + {"XORBytes", Func, 20}, + }, + "crypto/tls": { + {"(*CertificateRequestInfo).Context", Method, 17}, + {"(*CertificateRequestInfo).SupportsCertificate", Method, 14}, + {"(*CertificateVerificationError).Error", Method, 20}, + {"(*CertificateVerificationError).Unwrap", Method, 20}, + {"(*ClientHelloInfo).Context", Method, 17}, + {"(*ClientHelloInfo).SupportsCertificate", Method, 14}, + {"(*ClientSessionState).ResumptionState", Method, 21}, + {"(*Config).BuildNameToCertificate", Method, 0}, + {"(*Config).Clone", Method, 8}, + {"(*Config).DecryptTicket", Method, 21}, + {"(*Config).EncryptTicket", Method, 21}, + {"(*Config).SetSessionTicketKeys", Method, 5}, + {"(*Conn).Close", Method, 0}, + {"(*Conn).CloseWrite", Method, 8}, + {"(*Conn).ConnectionState", Method, 0}, + {"(*Conn).Handshake", Method, 0}, + {"(*Conn).HandshakeContext", Method, 17}, + {"(*Conn).LocalAddr", Method, 0}, + {"(*Conn).NetConn", Method, 18}, + {"(*Conn).OCSPResponse", Method, 0}, + {"(*Conn).Read", Method, 0}, + {"(*Conn).RemoteAddr", Method, 0}, + {"(*Conn).SetDeadline", Method, 0}, + {"(*Conn).SetReadDeadline", Method, 0}, + {"(*Conn).SetWriteDeadline", Method, 0}, + {"(*Conn).VerifyHostname", Method, 0}, + {"(*Conn).Write", Method, 0}, + {"(*ConnectionState).ExportKeyingMaterial", Method, 11}, + {"(*Dialer).Dial", Method, 15}, + {"(*Dialer).DialContext", Method, 15}, + {"(*QUICConn).Close", Method, 21}, + {"(*QUICConn).ConnectionState", Method, 21}, + {"(*QUICConn).HandleData", Method, 21}, + {"(*QUICConn).NextEvent", Method, 21}, + {"(*QUICConn).SendSessionTicket", Method, 21}, + {"(*QUICConn).SetTransportParameters", Method, 21}, + {"(*QUICConn).Start", Method, 21}, + {"(*SessionState).Bytes", Method, 21}, + {"(AlertError).Error", Method, 21}, + {"(ClientAuthType).String", Method, 15}, + {"(CurveID).String", Method, 15}, + {"(QUICEncryptionLevel).String", Method, 21}, + {"(RecordHeaderError).Error", Method, 6}, + {"(SignatureScheme).String", Method, 15}, + {"AlertError", Type, 21}, + {"Certificate", Type, 0}, + {"Certificate.Certificate", Field, 0}, + {"Certificate.Leaf", Field, 0}, + {"Certificate.OCSPStaple", Field, 0}, + {"Certificate.PrivateKey", Field, 0}, + {"Certificate.SignedCertificateTimestamps", Field, 5}, + {"Certificate.SupportedSignatureAlgorithms", Field, 14}, + {"CertificateRequestInfo", Type, 8}, + {"CertificateRequestInfo.AcceptableCAs", Field, 8}, + {"CertificateRequestInfo.SignatureSchemes", Field, 8}, + {"CertificateRequestInfo.Version", Field, 14}, + {"CertificateVerificationError", Type, 20}, + {"CertificateVerificationError.Err", Field, 20}, + {"CertificateVerificationError.UnverifiedCertificates", Field, 20}, + {"CipherSuite", Type, 14}, + {"CipherSuite.ID", Field, 14}, + {"CipherSuite.Insecure", Field, 14}, + {"CipherSuite.Name", Field, 14}, + {"CipherSuite.SupportedVersions", Field, 14}, + {"CipherSuiteName", Func, 14}, + {"CipherSuites", Func, 14}, + {"Client", Func, 0}, + {"ClientAuthType", Type, 0}, + {"ClientHelloInfo", Type, 4}, + {"ClientHelloInfo.CipherSuites", Field, 4}, + {"ClientHelloInfo.Conn", Field, 8}, + {"ClientHelloInfo.ServerName", Field, 4}, + {"ClientHelloInfo.SignatureSchemes", Field, 8}, + {"ClientHelloInfo.SupportedCurves", Field, 4}, + {"ClientHelloInfo.SupportedPoints", Field, 4}, + {"ClientHelloInfo.SupportedProtos", Field, 8}, + {"ClientHelloInfo.SupportedVersions", Field, 8}, + {"ClientSessionCache", Type, 3}, + {"ClientSessionState", Type, 3}, + {"Config", Type, 0}, + {"Config.Certificates", Field, 0}, + {"Config.CipherSuites", Field, 0}, + {"Config.ClientAuth", Field, 0}, + {"Config.ClientCAs", Field, 0}, + {"Config.ClientSessionCache", Field, 3}, + {"Config.CurvePreferences", Field, 3}, + {"Config.DynamicRecordSizingDisabled", Field, 7}, + {"Config.GetCertificate", Field, 4}, + {"Config.GetClientCertificate", Field, 8}, + {"Config.GetConfigForClient", Field, 8}, + {"Config.InsecureSkipVerify", Field, 0}, + {"Config.KeyLogWriter", Field, 8}, + {"Config.MaxVersion", Field, 2}, + {"Config.MinVersion", Field, 2}, + {"Config.NameToCertificate", Field, 0}, + {"Config.NextProtos", Field, 0}, + {"Config.PreferServerCipherSuites", Field, 1}, + {"Config.Rand", Field, 0}, + {"Config.Renegotiation", Field, 7}, + {"Config.RootCAs", Field, 0}, + {"Config.ServerName", Field, 0}, + {"Config.SessionTicketKey", Field, 1}, + {"Config.SessionTicketsDisabled", Field, 1}, + {"Config.Time", Field, 0}, + {"Config.UnwrapSession", Field, 21}, + {"Config.VerifyConnection", Field, 15}, + {"Config.VerifyPeerCertificate", Field, 8}, + {"Config.WrapSession", Field, 21}, + {"Conn", Type, 0}, + {"ConnectionState", Type, 0}, + {"ConnectionState.CipherSuite", Field, 0}, + {"ConnectionState.DidResume", Field, 1}, + {"ConnectionState.HandshakeComplete", Field, 0}, + {"ConnectionState.NegotiatedProtocol", Field, 0}, + {"ConnectionState.NegotiatedProtocolIsMutual", Field, 0}, + {"ConnectionState.OCSPResponse", Field, 5}, + {"ConnectionState.PeerCertificates", Field, 0}, + {"ConnectionState.ServerName", Field, 0}, + {"ConnectionState.SignedCertificateTimestamps", Field, 5}, + {"ConnectionState.TLSUnique", Field, 4}, + {"ConnectionState.VerifiedChains", Field, 0}, + {"ConnectionState.Version", Field, 3}, + {"CurveID", Type, 3}, + {"CurveP256", Const, 3}, + {"CurveP384", Const, 3}, + {"CurveP521", Const, 3}, + {"Dial", Func, 0}, + {"DialWithDialer", Func, 3}, + {"Dialer", Type, 15}, + {"Dialer.Config", Field, 15}, + {"Dialer.NetDialer", Field, 15}, + {"ECDSAWithP256AndSHA256", Const, 8}, + {"ECDSAWithP384AndSHA384", Const, 8}, + {"ECDSAWithP521AndSHA512", Const, 8}, + {"ECDSAWithSHA1", Const, 10}, + {"Ed25519", Const, 13}, + {"InsecureCipherSuites", Func, 14}, + {"Listen", Func, 0}, + {"LoadX509KeyPair", Func, 0}, + {"NewLRUClientSessionCache", Func, 3}, + {"NewListener", Func, 0}, + {"NewResumptionState", Func, 21}, + {"NoClientCert", Const, 0}, + {"PKCS1WithSHA1", Const, 8}, + {"PKCS1WithSHA256", Const, 8}, + {"PKCS1WithSHA384", Const, 8}, + {"PKCS1WithSHA512", Const, 8}, + {"PSSWithSHA256", Const, 8}, + {"PSSWithSHA384", Const, 8}, + {"PSSWithSHA512", Const, 8}, + {"ParseSessionState", Func, 21}, + {"QUICClient", Func, 21}, + {"QUICConfig", Type, 21}, + {"QUICConfig.TLSConfig", Field, 21}, + {"QUICConn", Type, 21}, + {"QUICEncryptionLevel", Type, 21}, + {"QUICEncryptionLevelApplication", Const, 21}, + {"QUICEncryptionLevelEarly", Const, 21}, + {"QUICEncryptionLevelHandshake", Const, 21}, + {"QUICEncryptionLevelInitial", Const, 21}, + {"QUICEvent", Type, 21}, + {"QUICEvent.Data", Field, 21}, + {"QUICEvent.Kind", Field, 21}, + {"QUICEvent.Level", Field, 21}, + {"QUICEvent.Suite", Field, 21}, + {"QUICEventKind", Type, 21}, + {"QUICHandshakeDone", Const, 21}, + {"QUICNoEvent", Const, 21}, + {"QUICRejectedEarlyData", Const, 21}, + {"QUICServer", Func, 21}, + {"QUICSessionTicketOptions", Type, 21}, + {"QUICSessionTicketOptions.EarlyData", Field, 21}, + {"QUICSetReadSecret", Const, 21}, + {"QUICSetWriteSecret", Const, 21}, + {"QUICTransportParameters", Const, 21}, + {"QUICTransportParametersRequired", Const, 21}, + {"QUICWriteData", Const, 21}, + {"RecordHeaderError", Type, 6}, + {"RecordHeaderError.Conn", Field, 12}, + {"RecordHeaderError.Msg", Field, 6}, + {"RecordHeaderError.RecordHeader", Field, 6}, + {"RenegotiateFreelyAsClient", Const, 7}, + {"RenegotiateNever", Const, 7}, + {"RenegotiateOnceAsClient", Const, 7}, + {"RenegotiationSupport", Type, 7}, + {"RequestClientCert", Const, 0}, + {"RequireAndVerifyClientCert", Const, 0}, + {"RequireAnyClientCert", Const, 0}, + {"Server", Func, 0}, + {"SessionState", Type, 21}, + {"SessionState.EarlyData", Field, 21}, + {"SessionState.Extra", Field, 21}, + {"SignatureScheme", Type, 8}, + {"TLS_AES_128_GCM_SHA256", Const, 12}, + {"TLS_AES_256_GCM_SHA384", Const, 12}, + {"TLS_CHACHA20_POLY1305_SHA256", Const, 12}, + {"TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA", Const, 2}, + {"TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256", Const, 8}, + {"TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256", Const, 2}, + {"TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA", Const, 2}, + {"TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384", Const, 5}, + {"TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305", Const, 8}, + {"TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256", Const, 14}, + {"TLS_ECDHE_ECDSA_WITH_RC4_128_SHA", Const, 2}, + {"TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA", Const, 0}, + {"TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA", Const, 0}, + {"TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256", Const, 8}, + {"TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256", Const, 2}, + {"TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA", Const, 1}, + {"TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384", Const, 5}, + {"TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305", Const, 8}, + {"TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256", Const, 14}, + {"TLS_ECDHE_RSA_WITH_RC4_128_SHA", Const, 0}, + {"TLS_FALLBACK_SCSV", Const, 4}, + {"TLS_RSA_WITH_3DES_EDE_CBC_SHA", Const, 0}, + {"TLS_RSA_WITH_AES_128_CBC_SHA", Const, 0}, + {"TLS_RSA_WITH_AES_128_CBC_SHA256", Const, 8}, + {"TLS_RSA_WITH_AES_128_GCM_SHA256", Const, 6}, + {"TLS_RSA_WITH_AES_256_CBC_SHA", Const, 1}, + {"TLS_RSA_WITH_AES_256_GCM_SHA384", Const, 6}, + {"TLS_RSA_WITH_RC4_128_SHA", Const, 0}, + {"VerifyClientCertIfGiven", Const, 0}, + {"VersionName", Func, 21}, + {"VersionSSL30", Const, 2}, + {"VersionTLS10", Const, 2}, + {"VersionTLS11", Const, 2}, + {"VersionTLS12", Const, 2}, + {"VersionTLS13", Const, 12}, + {"X25519", Const, 8}, + {"X509KeyPair", Func, 0}, + }, + "crypto/x509": { + {"(*CertPool).AddCert", Method, 0}, + {"(*CertPool).AddCertWithConstraint", Method, 22}, + {"(*CertPool).AppendCertsFromPEM", Method, 0}, + {"(*CertPool).Clone", Method, 19}, + {"(*CertPool).Equal", Method, 19}, + {"(*CertPool).Subjects", Method, 0}, + {"(*Certificate).CheckCRLSignature", Method, 0}, + {"(*Certificate).CheckSignature", Method, 0}, + {"(*Certificate).CheckSignatureFrom", Method, 0}, + {"(*Certificate).CreateCRL", Method, 0}, + {"(*Certificate).Equal", Method, 0}, + {"(*Certificate).Verify", Method, 0}, + {"(*Certificate).VerifyHostname", Method, 0}, + {"(*CertificateRequest).CheckSignature", Method, 5}, + {"(*RevocationList).CheckSignatureFrom", Method, 19}, + {"(CertificateInvalidError).Error", Method, 0}, + {"(ConstraintViolationError).Error", Method, 0}, + {"(HostnameError).Error", Method, 0}, + {"(InsecureAlgorithmError).Error", Method, 6}, + {"(OID).Equal", Method, 22}, + {"(OID).EqualASN1OID", Method, 22}, + {"(OID).String", Method, 22}, + {"(PublicKeyAlgorithm).String", Method, 10}, + {"(SignatureAlgorithm).String", Method, 6}, + {"(SystemRootsError).Error", Method, 1}, + {"(SystemRootsError).Unwrap", Method, 16}, + {"(UnhandledCriticalExtension).Error", Method, 0}, + {"(UnknownAuthorityError).Error", Method, 0}, + {"CANotAuthorizedForExtKeyUsage", Const, 10}, + {"CANotAuthorizedForThisName", Const, 0}, + {"CertPool", Type, 0}, + {"Certificate", Type, 0}, + {"Certificate.AuthorityKeyId", Field, 0}, + {"Certificate.BasicConstraintsValid", Field, 0}, + {"Certificate.CRLDistributionPoints", Field, 2}, + {"Certificate.DNSNames", Field, 0}, + {"Certificate.EmailAddresses", Field, 0}, + {"Certificate.ExcludedDNSDomains", Field, 9}, + {"Certificate.ExcludedEmailAddresses", Field, 10}, + {"Certificate.ExcludedIPRanges", Field, 10}, + {"Certificate.ExcludedURIDomains", Field, 10}, + {"Certificate.ExtKeyUsage", Field, 0}, + {"Certificate.Extensions", Field, 2}, + {"Certificate.ExtraExtensions", Field, 2}, + {"Certificate.IPAddresses", Field, 1}, + {"Certificate.IsCA", Field, 0}, + {"Certificate.Issuer", Field, 0}, + {"Certificate.IssuingCertificateURL", Field, 2}, + {"Certificate.KeyUsage", Field, 0}, + {"Certificate.MaxPathLen", Field, 0}, + {"Certificate.MaxPathLenZero", Field, 4}, + {"Certificate.NotAfter", Field, 0}, + {"Certificate.NotBefore", Field, 0}, + {"Certificate.OCSPServer", Field, 2}, + {"Certificate.PermittedDNSDomains", Field, 0}, + {"Certificate.PermittedDNSDomainsCritical", Field, 0}, + {"Certificate.PermittedEmailAddresses", Field, 10}, + {"Certificate.PermittedIPRanges", Field, 10}, + {"Certificate.PermittedURIDomains", Field, 10}, + {"Certificate.Policies", Field, 22}, + {"Certificate.PolicyIdentifiers", Field, 0}, + {"Certificate.PublicKey", Field, 0}, + {"Certificate.PublicKeyAlgorithm", Field, 0}, + {"Certificate.Raw", Field, 0}, + {"Certificate.RawIssuer", Field, 0}, + {"Certificate.RawSubject", Field, 0}, + {"Certificate.RawSubjectPublicKeyInfo", Field, 0}, + {"Certificate.RawTBSCertificate", Field, 0}, + {"Certificate.SerialNumber", Field, 0}, + {"Certificate.Signature", Field, 0}, + {"Certificate.SignatureAlgorithm", Field, 0}, + {"Certificate.Subject", Field, 0}, + {"Certificate.SubjectKeyId", Field, 0}, + {"Certificate.URIs", Field, 10}, + {"Certificate.UnhandledCriticalExtensions", Field, 5}, + {"Certificate.UnknownExtKeyUsage", Field, 0}, + {"Certificate.Version", Field, 0}, + {"CertificateInvalidError", Type, 0}, + {"CertificateInvalidError.Cert", Field, 0}, + {"CertificateInvalidError.Detail", Field, 10}, + {"CertificateInvalidError.Reason", Field, 0}, + {"CertificateRequest", Type, 3}, + {"CertificateRequest.Attributes", Field, 3}, + {"CertificateRequest.DNSNames", Field, 3}, + {"CertificateRequest.EmailAddresses", Field, 3}, + {"CertificateRequest.Extensions", Field, 3}, + {"CertificateRequest.ExtraExtensions", Field, 3}, + {"CertificateRequest.IPAddresses", Field, 3}, + {"CertificateRequest.PublicKey", Field, 3}, + {"CertificateRequest.PublicKeyAlgorithm", Field, 3}, + {"CertificateRequest.Raw", Field, 3}, + {"CertificateRequest.RawSubject", Field, 3}, + {"CertificateRequest.RawSubjectPublicKeyInfo", Field, 3}, + {"CertificateRequest.RawTBSCertificateRequest", Field, 3}, + {"CertificateRequest.Signature", Field, 3}, + {"CertificateRequest.SignatureAlgorithm", Field, 3}, + {"CertificateRequest.Subject", Field, 3}, + {"CertificateRequest.URIs", Field, 10}, + {"CertificateRequest.Version", Field, 3}, + {"ConstraintViolationError", Type, 0}, + {"CreateCertificate", Func, 0}, + {"CreateCertificateRequest", Func, 3}, + {"CreateRevocationList", Func, 15}, + {"DSA", Const, 0}, + {"DSAWithSHA1", Const, 0}, + {"DSAWithSHA256", Const, 0}, + {"DecryptPEMBlock", Func, 1}, + {"ECDSA", Const, 1}, + {"ECDSAWithSHA1", Const, 1}, + {"ECDSAWithSHA256", Const, 1}, + {"ECDSAWithSHA384", Const, 1}, + {"ECDSAWithSHA512", Const, 1}, + {"Ed25519", Const, 13}, + {"EncryptPEMBlock", Func, 1}, + {"ErrUnsupportedAlgorithm", Var, 0}, + {"Expired", Const, 0}, + {"ExtKeyUsage", Type, 0}, + {"ExtKeyUsageAny", Const, 0}, + {"ExtKeyUsageClientAuth", Const, 0}, + {"ExtKeyUsageCodeSigning", Const, 0}, + {"ExtKeyUsageEmailProtection", Const, 0}, + {"ExtKeyUsageIPSECEndSystem", Const, 1}, + {"ExtKeyUsageIPSECTunnel", Const, 1}, + {"ExtKeyUsageIPSECUser", Const, 1}, + {"ExtKeyUsageMicrosoftCommercialCodeSigning", Const, 10}, + {"ExtKeyUsageMicrosoftKernelCodeSigning", Const, 10}, + {"ExtKeyUsageMicrosoftServerGatedCrypto", Const, 1}, + {"ExtKeyUsageNetscapeServerGatedCrypto", Const, 1}, + {"ExtKeyUsageOCSPSigning", Const, 0}, + {"ExtKeyUsageServerAuth", Const, 0}, + {"ExtKeyUsageTimeStamping", Const, 0}, + {"HostnameError", Type, 0}, + {"HostnameError.Certificate", Field, 0}, + {"HostnameError.Host", Field, 0}, + {"IncompatibleUsage", Const, 1}, + {"IncorrectPasswordError", Var, 1}, + {"InsecureAlgorithmError", Type, 6}, + {"InvalidReason", Type, 0}, + {"IsEncryptedPEMBlock", Func, 1}, + {"KeyUsage", Type, 0}, + {"KeyUsageCRLSign", Const, 0}, + {"KeyUsageCertSign", Const, 0}, + {"KeyUsageContentCommitment", Const, 0}, + {"KeyUsageDataEncipherment", Const, 0}, + {"KeyUsageDecipherOnly", Const, 0}, + {"KeyUsageDigitalSignature", Const, 0}, + {"KeyUsageEncipherOnly", Const, 0}, + {"KeyUsageKeyAgreement", Const, 0}, + {"KeyUsageKeyEncipherment", Const, 0}, + {"MD2WithRSA", Const, 0}, + {"MD5WithRSA", Const, 0}, + {"MarshalECPrivateKey", Func, 2}, + {"MarshalPKCS1PrivateKey", Func, 0}, + {"MarshalPKCS1PublicKey", Func, 10}, + {"MarshalPKCS8PrivateKey", Func, 10}, + {"MarshalPKIXPublicKey", Func, 0}, + {"NameConstraintsWithoutSANs", Const, 10}, + {"NameMismatch", Const, 8}, + {"NewCertPool", Func, 0}, + {"NotAuthorizedToSign", Const, 0}, + {"OID", Type, 22}, + {"OIDFromInts", Func, 22}, + {"PEMCipher", Type, 1}, + {"PEMCipher3DES", Const, 1}, + {"PEMCipherAES128", Const, 1}, + {"PEMCipherAES192", Const, 1}, + {"PEMCipherAES256", Const, 1}, + {"PEMCipherDES", Const, 1}, + {"ParseCRL", Func, 0}, + {"ParseCertificate", Func, 0}, + {"ParseCertificateRequest", Func, 3}, + {"ParseCertificates", Func, 0}, + {"ParseDERCRL", Func, 0}, + {"ParseECPrivateKey", Func, 1}, + {"ParsePKCS1PrivateKey", Func, 0}, + {"ParsePKCS1PublicKey", Func, 10}, + {"ParsePKCS8PrivateKey", Func, 0}, + {"ParsePKIXPublicKey", Func, 0}, + {"ParseRevocationList", Func, 19}, + {"PublicKeyAlgorithm", Type, 0}, + {"PureEd25519", Const, 13}, + {"RSA", Const, 0}, + {"RevocationList", Type, 15}, + {"RevocationList.AuthorityKeyId", Field, 19}, + {"RevocationList.Extensions", Field, 19}, + {"RevocationList.ExtraExtensions", Field, 15}, + {"RevocationList.Issuer", Field, 19}, + {"RevocationList.NextUpdate", Field, 15}, + {"RevocationList.Number", Field, 15}, + {"RevocationList.Raw", Field, 19}, + {"RevocationList.RawIssuer", Field, 19}, + {"RevocationList.RawTBSRevocationList", Field, 19}, + {"RevocationList.RevokedCertificateEntries", Field, 21}, + {"RevocationList.RevokedCertificates", Field, 15}, + {"RevocationList.Signature", Field, 19}, + {"RevocationList.SignatureAlgorithm", Field, 15}, + {"RevocationList.ThisUpdate", Field, 15}, + {"RevocationListEntry", Type, 21}, + {"RevocationListEntry.Extensions", Field, 21}, + {"RevocationListEntry.ExtraExtensions", Field, 21}, + {"RevocationListEntry.Raw", Field, 21}, + {"RevocationListEntry.ReasonCode", Field, 21}, + {"RevocationListEntry.RevocationTime", Field, 21}, + {"RevocationListEntry.SerialNumber", Field, 21}, + {"SHA1WithRSA", Const, 0}, + {"SHA256WithRSA", Const, 0}, + {"SHA256WithRSAPSS", Const, 8}, + {"SHA384WithRSA", Const, 0}, + {"SHA384WithRSAPSS", Const, 8}, + {"SHA512WithRSA", Const, 0}, + {"SHA512WithRSAPSS", Const, 8}, + {"SetFallbackRoots", Func, 20}, + {"SignatureAlgorithm", Type, 0}, + {"SystemCertPool", Func, 7}, + {"SystemRootsError", Type, 1}, + {"SystemRootsError.Err", Field, 7}, + {"TooManyConstraints", Const, 10}, + {"TooManyIntermediates", Const, 0}, + {"UnconstrainedName", Const, 10}, + {"UnhandledCriticalExtension", Type, 0}, + {"UnknownAuthorityError", Type, 0}, + {"UnknownAuthorityError.Cert", Field, 8}, + {"UnknownPublicKeyAlgorithm", Const, 0}, + {"UnknownSignatureAlgorithm", Const, 0}, + {"VerifyOptions", Type, 0}, + {"VerifyOptions.CurrentTime", Field, 0}, + {"VerifyOptions.DNSName", Field, 0}, + {"VerifyOptions.Intermediates", Field, 0}, + {"VerifyOptions.KeyUsages", Field, 1}, + {"VerifyOptions.MaxConstraintComparisions", Field, 10}, + {"VerifyOptions.Roots", Field, 0}, + }, + "crypto/x509/pkix": { + {"(*CertificateList).HasExpired", Method, 0}, + {"(*Name).FillFromRDNSequence", Method, 0}, + {"(Name).String", Method, 10}, + {"(Name).ToRDNSequence", Method, 0}, + {"(RDNSequence).String", Method, 10}, + {"AlgorithmIdentifier", Type, 0}, + {"AlgorithmIdentifier.Algorithm", Field, 0}, + {"AlgorithmIdentifier.Parameters", Field, 0}, + {"AttributeTypeAndValue", Type, 0}, + {"AttributeTypeAndValue.Type", Field, 0}, + {"AttributeTypeAndValue.Value", Field, 0}, + {"AttributeTypeAndValueSET", Type, 3}, + {"AttributeTypeAndValueSET.Type", Field, 3}, + {"AttributeTypeAndValueSET.Value", Field, 3}, + {"CertificateList", Type, 0}, + {"CertificateList.SignatureAlgorithm", Field, 0}, + {"CertificateList.SignatureValue", Field, 0}, + {"CertificateList.TBSCertList", Field, 0}, + {"Extension", Type, 0}, + {"Extension.Critical", Field, 0}, + {"Extension.Id", Field, 0}, + {"Extension.Value", Field, 0}, + {"Name", Type, 0}, + {"Name.CommonName", Field, 0}, + {"Name.Country", Field, 0}, + {"Name.ExtraNames", Field, 5}, + {"Name.Locality", Field, 0}, + {"Name.Names", Field, 0}, + {"Name.Organization", Field, 0}, + {"Name.OrganizationalUnit", Field, 0}, + {"Name.PostalCode", Field, 0}, + {"Name.Province", Field, 0}, + {"Name.SerialNumber", Field, 0}, + {"Name.StreetAddress", Field, 0}, + {"RDNSequence", Type, 0}, + {"RelativeDistinguishedNameSET", Type, 0}, + {"RevokedCertificate", Type, 0}, + {"RevokedCertificate.Extensions", Field, 0}, + {"RevokedCertificate.RevocationTime", Field, 0}, + {"RevokedCertificate.SerialNumber", Field, 0}, + {"TBSCertificateList", Type, 0}, + {"TBSCertificateList.Extensions", Field, 0}, + {"TBSCertificateList.Issuer", Field, 0}, + {"TBSCertificateList.NextUpdate", Field, 0}, + {"TBSCertificateList.Raw", Field, 0}, + {"TBSCertificateList.RevokedCertificates", Field, 0}, + {"TBSCertificateList.Signature", Field, 0}, + {"TBSCertificateList.ThisUpdate", Field, 0}, + {"TBSCertificateList.Version", Field, 0}, + }, + "database/sql": { + {"(*ColumnType).DatabaseTypeName", Method, 8}, + {"(*ColumnType).DecimalSize", Method, 8}, + {"(*ColumnType).Length", Method, 8}, + {"(*ColumnType).Name", Method, 8}, + {"(*ColumnType).Nullable", Method, 8}, + {"(*ColumnType).ScanType", Method, 8}, + {"(*Conn).BeginTx", Method, 9}, + {"(*Conn).Close", Method, 9}, + {"(*Conn).ExecContext", Method, 9}, + {"(*Conn).PingContext", Method, 9}, + {"(*Conn).PrepareContext", Method, 9}, + {"(*Conn).QueryContext", Method, 9}, + {"(*Conn).QueryRowContext", Method, 9}, + {"(*Conn).Raw", Method, 13}, + {"(*DB).Begin", Method, 0}, + {"(*DB).BeginTx", Method, 8}, + {"(*DB).Close", Method, 0}, + {"(*DB).Conn", Method, 9}, + {"(*DB).Driver", Method, 0}, + {"(*DB).Exec", Method, 0}, + {"(*DB).ExecContext", Method, 8}, + {"(*DB).Ping", Method, 1}, + {"(*DB).PingContext", Method, 8}, + {"(*DB).Prepare", Method, 0}, + {"(*DB).PrepareContext", Method, 8}, + {"(*DB).Query", Method, 0}, + {"(*DB).QueryContext", Method, 8}, + {"(*DB).QueryRow", Method, 0}, + {"(*DB).QueryRowContext", Method, 8}, + {"(*DB).SetConnMaxIdleTime", Method, 15}, + {"(*DB).SetConnMaxLifetime", Method, 6}, + {"(*DB).SetMaxIdleConns", Method, 1}, + {"(*DB).SetMaxOpenConns", Method, 2}, + {"(*DB).Stats", Method, 5}, + {"(*Null).Scan", Method, 22}, + {"(*NullBool).Scan", Method, 0}, + {"(*NullByte).Scan", Method, 17}, + {"(*NullFloat64).Scan", Method, 0}, + {"(*NullInt16).Scan", Method, 17}, + {"(*NullInt32).Scan", Method, 13}, + {"(*NullInt64).Scan", Method, 0}, + {"(*NullString).Scan", Method, 0}, + {"(*NullTime).Scan", Method, 13}, + {"(*Row).Err", Method, 15}, + {"(*Row).Scan", Method, 0}, + {"(*Rows).Close", Method, 0}, + {"(*Rows).ColumnTypes", Method, 8}, + {"(*Rows).Columns", Method, 0}, + {"(*Rows).Err", Method, 0}, + {"(*Rows).Next", Method, 0}, + {"(*Rows).NextResultSet", Method, 8}, + {"(*Rows).Scan", Method, 0}, + {"(*Stmt).Close", Method, 0}, + {"(*Stmt).Exec", Method, 0}, + {"(*Stmt).ExecContext", Method, 8}, + {"(*Stmt).Query", Method, 0}, + {"(*Stmt).QueryContext", Method, 8}, + {"(*Stmt).QueryRow", Method, 0}, + {"(*Stmt).QueryRowContext", Method, 8}, + {"(*Tx).Commit", Method, 0}, + {"(*Tx).Exec", Method, 0}, + {"(*Tx).ExecContext", Method, 8}, + {"(*Tx).Prepare", Method, 0}, + {"(*Tx).PrepareContext", Method, 8}, + {"(*Tx).Query", Method, 0}, + {"(*Tx).QueryContext", Method, 8}, + {"(*Tx).QueryRow", Method, 0}, + {"(*Tx).QueryRowContext", Method, 8}, + {"(*Tx).Rollback", Method, 0}, + {"(*Tx).Stmt", Method, 0}, + {"(*Tx).StmtContext", Method, 8}, + {"(IsolationLevel).String", Method, 11}, + {"(Null).Value", Method, 22}, + {"(NullBool).Value", Method, 0}, + {"(NullByte).Value", Method, 17}, + {"(NullFloat64).Value", Method, 0}, + {"(NullInt16).Value", Method, 17}, + {"(NullInt32).Value", Method, 13}, + {"(NullInt64).Value", Method, 0}, + {"(NullString).Value", Method, 0}, + {"(NullTime).Value", Method, 13}, + {"ColumnType", Type, 8}, + {"Conn", Type, 9}, + {"DB", Type, 0}, + {"DBStats", Type, 5}, + {"DBStats.Idle", Field, 11}, + {"DBStats.InUse", Field, 11}, + {"DBStats.MaxIdleClosed", Field, 11}, + {"DBStats.MaxIdleTimeClosed", Field, 15}, + {"DBStats.MaxLifetimeClosed", Field, 11}, + {"DBStats.MaxOpenConnections", Field, 11}, + {"DBStats.OpenConnections", Field, 5}, + {"DBStats.WaitCount", Field, 11}, + {"DBStats.WaitDuration", Field, 11}, + {"Drivers", Func, 4}, + {"ErrConnDone", Var, 9}, + {"ErrNoRows", Var, 0}, + {"ErrTxDone", Var, 0}, + {"IsolationLevel", Type, 8}, + {"LevelDefault", Const, 8}, + {"LevelLinearizable", Const, 8}, + {"LevelReadCommitted", Const, 8}, + {"LevelReadUncommitted", Const, 8}, + {"LevelRepeatableRead", Const, 8}, + {"LevelSerializable", Const, 8}, + {"LevelSnapshot", Const, 8}, + {"LevelWriteCommitted", Const, 8}, + {"Named", Func, 8}, + {"NamedArg", Type, 8}, + {"NamedArg.Name", Field, 8}, + {"NamedArg.Value", Field, 8}, + {"Null", Type, 22}, + {"Null.V", Field, 22}, + {"Null.Valid", Field, 22}, + {"NullBool", Type, 0}, + {"NullBool.Bool", Field, 0}, + {"NullBool.Valid", Field, 0}, + {"NullByte", Type, 17}, + {"NullByte.Byte", Field, 17}, + {"NullByte.Valid", Field, 17}, + {"NullFloat64", Type, 0}, + {"NullFloat64.Float64", Field, 0}, + {"NullFloat64.Valid", Field, 0}, + {"NullInt16", Type, 17}, + {"NullInt16.Int16", Field, 17}, + {"NullInt16.Valid", Field, 17}, + {"NullInt32", Type, 13}, + {"NullInt32.Int32", Field, 13}, + {"NullInt32.Valid", Field, 13}, + {"NullInt64", Type, 0}, + {"NullInt64.Int64", Field, 0}, + {"NullInt64.Valid", Field, 0}, + {"NullString", Type, 0}, + {"NullString.String", Field, 0}, + {"NullString.Valid", Field, 0}, + {"NullTime", Type, 13}, + {"NullTime.Time", Field, 13}, + {"NullTime.Valid", Field, 13}, + {"Open", Func, 0}, + {"OpenDB", Func, 10}, + {"Out", Type, 9}, + {"Out.Dest", Field, 9}, + {"Out.In", Field, 9}, + {"RawBytes", Type, 0}, + {"Register", Func, 0}, + {"Result", Type, 0}, + {"Row", Type, 0}, + {"Rows", Type, 0}, + {"Scanner", Type, 0}, + {"Stmt", Type, 0}, + {"Tx", Type, 0}, + {"TxOptions", Type, 8}, + {"TxOptions.Isolation", Field, 8}, + {"TxOptions.ReadOnly", Field, 8}, + }, + "database/sql/driver": { + {"(NotNull).ConvertValue", Method, 0}, + {"(Null).ConvertValue", Method, 0}, + {"(RowsAffected).LastInsertId", Method, 0}, + {"(RowsAffected).RowsAffected", Method, 0}, + {"Bool", Var, 0}, + {"ColumnConverter", Type, 0}, + {"Conn", Type, 0}, + {"ConnBeginTx", Type, 8}, + {"ConnPrepareContext", Type, 8}, + {"Connector", Type, 10}, + {"DefaultParameterConverter", Var, 0}, + {"Driver", Type, 0}, + {"DriverContext", Type, 10}, + {"ErrBadConn", Var, 0}, + {"ErrRemoveArgument", Var, 9}, + {"ErrSkip", Var, 0}, + {"Execer", Type, 0}, + {"ExecerContext", Type, 8}, + {"Int32", Var, 0}, + {"IsScanValue", Func, 0}, + {"IsValue", Func, 0}, + {"IsolationLevel", Type, 8}, + {"NamedValue", Type, 8}, + {"NamedValue.Name", Field, 8}, + {"NamedValue.Ordinal", Field, 8}, + {"NamedValue.Value", Field, 8}, + {"NamedValueChecker", Type, 9}, + {"NotNull", Type, 0}, + {"NotNull.Converter", Field, 0}, + {"Null", Type, 0}, + {"Null.Converter", Field, 0}, + {"Pinger", Type, 8}, + {"Queryer", Type, 1}, + {"QueryerContext", Type, 8}, + {"Result", Type, 0}, + {"ResultNoRows", Var, 0}, + {"Rows", Type, 0}, + {"RowsAffected", Type, 0}, + {"RowsColumnTypeDatabaseTypeName", Type, 8}, + {"RowsColumnTypeLength", Type, 8}, + {"RowsColumnTypeNullable", Type, 8}, + {"RowsColumnTypePrecisionScale", Type, 8}, + {"RowsColumnTypeScanType", Type, 8}, + {"RowsNextResultSet", Type, 8}, + {"SessionResetter", Type, 10}, + {"Stmt", Type, 0}, + {"StmtExecContext", Type, 8}, + {"StmtQueryContext", Type, 8}, + {"String", Var, 0}, + {"Tx", Type, 0}, + {"TxOptions", Type, 8}, + {"TxOptions.Isolation", Field, 8}, + {"TxOptions.ReadOnly", Field, 8}, + {"Validator", Type, 15}, + {"Value", Type, 0}, + {"ValueConverter", Type, 0}, + {"Valuer", Type, 0}, + }, + "debug/buildinfo": { + {"BuildInfo", Type, 18}, + {"Read", Func, 18}, + {"ReadFile", Func, 18}, + }, + "debug/dwarf": { + {"(*AddrType).Basic", Method, 0}, + {"(*AddrType).Common", Method, 0}, + {"(*AddrType).Size", Method, 0}, + {"(*AddrType).String", Method, 0}, + {"(*ArrayType).Common", Method, 0}, + {"(*ArrayType).Size", Method, 0}, + {"(*ArrayType).String", Method, 0}, + {"(*BasicType).Basic", Method, 0}, + {"(*BasicType).Common", Method, 0}, + {"(*BasicType).Size", Method, 0}, + {"(*BasicType).String", Method, 0}, + {"(*BoolType).Basic", Method, 0}, + {"(*BoolType).Common", Method, 0}, + {"(*BoolType).Size", Method, 0}, + {"(*BoolType).String", Method, 0}, + {"(*CharType).Basic", Method, 0}, + {"(*CharType).Common", Method, 0}, + {"(*CharType).Size", Method, 0}, + {"(*CharType).String", Method, 0}, + {"(*CommonType).Common", Method, 0}, + {"(*CommonType).Size", Method, 0}, + {"(*ComplexType).Basic", Method, 0}, + {"(*ComplexType).Common", Method, 0}, + {"(*ComplexType).Size", Method, 0}, + {"(*ComplexType).String", Method, 0}, + {"(*Data).AddSection", Method, 14}, + {"(*Data).AddTypes", Method, 3}, + {"(*Data).LineReader", Method, 5}, + {"(*Data).Ranges", Method, 7}, + {"(*Data).Reader", Method, 0}, + {"(*Data).Type", Method, 0}, + {"(*DotDotDotType).Common", Method, 0}, + {"(*DotDotDotType).Size", Method, 0}, + {"(*DotDotDotType).String", Method, 0}, + {"(*Entry).AttrField", Method, 5}, + {"(*Entry).Val", Method, 0}, + {"(*EnumType).Common", Method, 0}, + {"(*EnumType).Size", Method, 0}, + {"(*EnumType).String", Method, 0}, + {"(*FloatType).Basic", Method, 0}, + {"(*FloatType).Common", Method, 0}, + {"(*FloatType).Size", Method, 0}, + {"(*FloatType).String", Method, 0}, + {"(*FuncType).Common", Method, 0}, + {"(*FuncType).Size", Method, 0}, + {"(*FuncType).String", Method, 0}, + {"(*IntType).Basic", Method, 0}, + {"(*IntType).Common", Method, 0}, + {"(*IntType).Size", Method, 0}, + {"(*IntType).String", Method, 0}, + {"(*LineReader).Files", Method, 14}, + {"(*LineReader).Next", Method, 5}, + {"(*LineReader).Reset", Method, 5}, + {"(*LineReader).Seek", Method, 5}, + {"(*LineReader).SeekPC", Method, 5}, + {"(*LineReader).Tell", Method, 5}, + {"(*PtrType).Common", Method, 0}, + {"(*PtrType).Size", Method, 0}, + {"(*PtrType).String", Method, 0}, + {"(*QualType).Common", Method, 0}, + {"(*QualType).Size", Method, 0}, + {"(*QualType).String", Method, 0}, + {"(*Reader).AddressSize", Method, 5}, + {"(*Reader).ByteOrder", Method, 14}, + {"(*Reader).Next", Method, 0}, + {"(*Reader).Seek", Method, 0}, + {"(*Reader).SeekPC", Method, 7}, + {"(*Reader).SkipChildren", Method, 0}, + {"(*StructType).Common", Method, 0}, + {"(*StructType).Defn", Method, 0}, + {"(*StructType).Size", Method, 0}, + {"(*StructType).String", Method, 0}, + {"(*TypedefType).Common", Method, 0}, + {"(*TypedefType).Size", Method, 0}, + {"(*TypedefType).String", Method, 0}, + {"(*UcharType).Basic", Method, 0}, + {"(*UcharType).Common", Method, 0}, + {"(*UcharType).Size", Method, 0}, + {"(*UcharType).String", Method, 0}, + {"(*UintType).Basic", Method, 0}, + {"(*UintType).Common", Method, 0}, + {"(*UintType).Size", Method, 0}, + {"(*UintType).String", Method, 0}, + {"(*UnspecifiedType).Basic", Method, 4}, + {"(*UnspecifiedType).Common", Method, 4}, + {"(*UnspecifiedType).Size", Method, 4}, + {"(*UnspecifiedType).String", Method, 4}, + {"(*UnsupportedType).Common", Method, 13}, + {"(*UnsupportedType).Size", Method, 13}, + {"(*UnsupportedType).String", Method, 13}, + {"(*VoidType).Common", Method, 0}, + {"(*VoidType).Size", Method, 0}, + {"(*VoidType).String", Method, 0}, + {"(Attr).GoString", Method, 0}, + {"(Attr).String", Method, 0}, + {"(Class).GoString", Method, 5}, + {"(Class).String", Method, 5}, + {"(DecodeError).Error", Method, 0}, + {"(Tag).GoString", Method, 0}, + {"(Tag).String", Method, 0}, + {"AddrType", Type, 0}, + {"AddrType.BasicType", Field, 0}, + {"ArrayType", Type, 0}, + {"ArrayType.CommonType", Field, 0}, + {"ArrayType.Count", Field, 0}, + {"ArrayType.StrideBitSize", Field, 0}, + {"ArrayType.Type", Field, 0}, + {"Attr", Type, 0}, + {"AttrAbstractOrigin", Const, 0}, + {"AttrAccessibility", Const, 0}, + {"AttrAddrBase", Const, 14}, + {"AttrAddrClass", Const, 0}, + {"AttrAlignment", Const, 14}, + {"AttrAllocated", Const, 0}, + {"AttrArtificial", Const, 0}, + {"AttrAssociated", Const, 0}, + {"AttrBaseTypes", Const, 0}, + {"AttrBinaryScale", Const, 14}, + {"AttrBitOffset", Const, 0}, + {"AttrBitSize", Const, 0}, + {"AttrByteSize", Const, 0}, + {"AttrCallAllCalls", Const, 14}, + {"AttrCallAllSourceCalls", Const, 14}, + {"AttrCallAllTailCalls", Const, 14}, + {"AttrCallColumn", Const, 0}, + {"AttrCallDataLocation", Const, 14}, + {"AttrCallDataValue", Const, 14}, + {"AttrCallFile", Const, 0}, + {"AttrCallLine", Const, 0}, + {"AttrCallOrigin", Const, 14}, + {"AttrCallPC", Const, 14}, + {"AttrCallParameter", Const, 14}, + {"AttrCallReturnPC", Const, 14}, + {"AttrCallTailCall", Const, 14}, + {"AttrCallTarget", Const, 14}, + {"AttrCallTargetClobbered", Const, 14}, + {"AttrCallValue", Const, 14}, + {"AttrCalling", Const, 0}, + {"AttrCommonRef", Const, 0}, + {"AttrCompDir", Const, 0}, + {"AttrConstExpr", Const, 14}, + {"AttrConstValue", Const, 0}, + {"AttrContainingType", Const, 0}, + {"AttrCount", Const, 0}, + {"AttrDataBitOffset", Const, 14}, + {"AttrDataLocation", Const, 0}, + {"AttrDataMemberLoc", Const, 0}, + {"AttrDecimalScale", Const, 14}, + {"AttrDecimalSign", Const, 14}, + {"AttrDeclColumn", Const, 0}, + {"AttrDeclFile", Const, 0}, + {"AttrDeclLine", Const, 0}, + {"AttrDeclaration", Const, 0}, + {"AttrDefaultValue", Const, 0}, + {"AttrDefaulted", Const, 14}, + {"AttrDeleted", Const, 14}, + {"AttrDescription", Const, 0}, + {"AttrDigitCount", Const, 14}, + {"AttrDiscr", Const, 0}, + {"AttrDiscrList", Const, 0}, + {"AttrDiscrValue", Const, 0}, + {"AttrDwoName", Const, 14}, + {"AttrElemental", Const, 14}, + {"AttrEncoding", Const, 0}, + {"AttrEndianity", Const, 14}, + {"AttrEntrypc", Const, 0}, + {"AttrEnumClass", Const, 14}, + {"AttrExplicit", Const, 14}, + {"AttrExportSymbols", Const, 14}, + {"AttrExtension", Const, 0}, + {"AttrExternal", Const, 0}, + {"AttrFrameBase", Const, 0}, + {"AttrFriend", Const, 0}, + {"AttrHighpc", Const, 0}, + {"AttrIdentifierCase", Const, 0}, + {"AttrImport", Const, 0}, + {"AttrInline", Const, 0}, + {"AttrIsOptional", Const, 0}, + {"AttrLanguage", Const, 0}, + {"AttrLinkageName", Const, 14}, + {"AttrLocation", Const, 0}, + {"AttrLoclistsBase", Const, 14}, + {"AttrLowerBound", Const, 0}, + {"AttrLowpc", Const, 0}, + {"AttrMacroInfo", Const, 0}, + {"AttrMacros", Const, 14}, + {"AttrMainSubprogram", Const, 14}, + {"AttrMutable", Const, 14}, + {"AttrName", Const, 0}, + {"AttrNamelistItem", Const, 0}, + {"AttrNoreturn", Const, 14}, + {"AttrObjectPointer", Const, 14}, + {"AttrOrdering", Const, 0}, + {"AttrPictureString", Const, 14}, + {"AttrPriority", Const, 0}, + {"AttrProducer", Const, 0}, + {"AttrPrototyped", Const, 0}, + {"AttrPure", Const, 14}, + {"AttrRanges", Const, 0}, + {"AttrRank", Const, 14}, + {"AttrRecursive", Const, 14}, + {"AttrReference", Const, 14}, + {"AttrReturnAddr", Const, 0}, + {"AttrRnglistsBase", Const, 14}, + {"AttrRvalueReference", Const, 14}, + {"AttrSegment", Const, 0}, + {"AttrSibling", Const, 0}, + {"AttrSignature", Const, 14}, + {"AttrSmall", Const, 14}, + {"AttrSpecification", Const, 0}, + {"AttrStartScope", Const, 0}, + {"AttrStaticLink", Const, 0}, + {"AttrStmtList", Const, 0}, + {"AttrStrOffsetsBase", Const, 14}, + {"AttrStride", Const, 0}, + {"AttrStrideSize", Const, 0}, + {"AttrStringLength", Const, 0}, + {"AttrStringLengthBitSize", Const, 14}, + {"AttrStringLengthByteSize", Const, 14}, + {"AttrThreadsScaled", Const, 14}, + {"AttrTrampoline", Const, 0}, + {"AttrType", Const, 0}, + {"AttrUpperBound", Const, 0}, + {"AttrUseLocation", Const, 0}, + {"AttrUseUTF8", Const, 0}, + {"AttrVarParam", Const, 0}, + {"AttrVirtuality", Const, 0}, + {"AttrVisibility", Const, 0}, + {"AttrVtableElemLoc", Const, 0}, + {"BasicType", Type, 0}, + {"BasicType.BitOffset", Field, 0}, + {"BasicType.BitSize", Field, 0}, + {"BasicType.CommonType", Field, 0}, + {"BasicType.DataBitOffset", Field, 18}, + {"BoolType", Type, 0}, + {"BoolType.BasicType", Field, 0}, + {"CharType", Type, 0}, + {"CharType.BasicType", Field, 0}, + {"Class", Type, 5}, + {"ClassAddrPtr", Const, 14}, + {"ClassAddress", Const, 5}, + {"ClassBlock", Const, 5}, + {"ClassConstant", Const, 5}, + {"ClassExprLoc", Const, 5}, + {"ClassFlag", Const, 5}, + {"ClassLinePtr", Const, 5}, + {"ClassLocList", Const, 14}, + {"ClassLocListPtr", Const, 5}, + {"ClassMacPtr", Const, 5}, + {"ClassRangeListPtr", Const, 5}, + {"ClassReference", Const, 5}, + {"ClassReferenceAlt", Const, 5}, + {"ClassReferenceSig", Const, 5}, + {"ClassRngList", Const, 14}, + {"ClassRngListsPtr", Const, 14}, + {"ClassStrOffsetsPtr", Const, 14}, + {"ClassString", Const, 5}, + {"ClassStringAlt", Const, 5}, + {"ClassUnknown", Const, 6}, + {"CommonType", Type, 0}, + {"CommonType.ByteSize", Field, 0}, + {"CommonType.Name", Field, 0}, + {"ComplexType", Type, 0}, + {"ComplexType.BasicType", Field, 0}, + {"Data", Type, 0}, + {"DecodeError", Type, 0}, + {"DecodeError.Err", Field, 0}, + {"DecodeError.Name", Field, 0}, + {"DecodeError.Offset", Field, 0}, + {"DotDotDotType", Type, 0}, + {"DotDotDotType.CommonType", Field, 0}, + {"Entry", Type, 0}, + {"Entry.Children", Field, 0}, + {"Entry.Field", Field, 0}, + {"Entry.Offset", Field, 0}, + {"Entry.Tag", Field, 0}, + {"EnumType", Type, 0}, + {"EnumType.CommonType", Field, 0}, + {"EnumType.EnumName", Field, 0}, + {"EnumType.Val", Field, 0}, + {"EnumValue", Type, 0}, + {"EnumValue.Name", Field, 0}, + {"EnumValue.Val", Field, 0}, + {"ErrUnknownPC", Var, 5}, + {"Field", Type, 0}, + {"Field.Attr", Field, 0}, + {"Field.Class", Field, 5}, + {"Field.Val", Field, 0}, + {"FloatType", Type, 0}, + {"FloatType.BasicType", Field, 0}, + {"FuncType", Type, 0}, + {"FuncType.CommonType", Field, 0}, + {"FuncType.ParamType", Field, 0}, + {"FuncType.ReturnType", Field, 0}, + {"IntType", Type, 0}, + {"IntType.BasicType", Field, 0}, + {"LineEntry", Type, 5}, + {"LineEntry.Address", Field, 5}, + {"LineEntry.BasicBlock", Field, 5}, + {"LineEntry.Column", Field, 5}, + {"LineEntry.Discriminator", Field, 5}, + {"LineEntry.EndSequence", Field, 5}, + {"LineEntry.EpilogueBegin", Field, 5}, + {"LineEntry.File", Field, 5}, + {"LineEntry.ISA", Field, 5}, + {"LineEntry.IsStmt", Field, 5}, + {"LineEntry.Line", Field, 5}, + {"LineEntry.OpIndex", Field, 5}, + {"LineEntry.PrologueEnd", Field, 5}, + {"LineFile", Type, 5}, + {"LineFile.Length", Field, 5}, + {"LineFile.Mtime", Field, 5}, + {"LineFile.Name", Field, 5}, + {"LineReader", Type, 5}, + {"LineReaderPos", Type, 5}, + {"New", Func, 0}, + {"Offset", Type, 0}, + {"PtrType", Type, 0}, + {"PtrType.CommonType", Field, 0}, + {"PtrType.Type", Field, 0}, + {"QualType", Type, 0}, + {"QualType.CommonType", Field, 0}, + {"QualType.Qual", Field, 0}, + {"QualType.Type", Field, 0}, + {"Reader", Type, 0}, + {"StructField", Type, 0}, + {"StructField.BitOffset", Field, 0}, + {"StructField.BitSize", Field, 0}, + {"StructField.ByteOffset", Field, 0}, + {"StructField.ByteSize", Field, 0}, + {"StructField.DataBitOffset", Field, 18}, + {"StructField.Name", Field, 0}, + {"StructField.Type", Field, 0}, + {"StructType", Type, 0}, + {"StructType.CommonType", Field, 0}, + {"StructType.Field", Field, 0}, + {"StructType.Incomplete", Field, 0}, + {"StructType.Kind", Field, 0}, + {"StructType.StructName", Field, 0}, + {"Tag", Type, 0}, + {"TagAccessDeclaration", Const, 0}, + {"TagArrayType", Const, 0}, + {"TagAtomicType", Const, 14}, + {"TagBaseType", Const, 0}, + {"TagCallSite", Const, 14}, + {"TagCallSiteParameter", Const, 14}, + {"TagCatchDwarfBlock", Const, 0}, + {"TagClassType", Const, 0}, + {"TagCoarrayType", Const, 14}, + {"TagCommonDwarfBlock", Const, 0}, + {"TagCommonInclusion", Const, 0}, + {"TagCompileUnit", Const, 0}, + {"TagCondition", Const, 3}, + {"TagConstType", Const, 0}, + {"TagConstant", Const, 0}, + {"TagDwarfProcedure", Const, 0}, + {"TagDynamicType", Const, 14}, + {"TagEntryPoint", Const, 0}, + {"TagEnumerationType", Const, 0}, + {"TagEnumerator", Const, 0}, + {"TagFileType", Const, 0}, + {"TagFormalParameter", Const, 0}, + {"TagFriend", Const, 0}, + {"TagGenericSubrange", Const, 14}, + {"TagImmutableType", Const, 14}, + {"TagImportedDeclaration", Const, 0}, + {"TagImportedModule", Const, 0}, + {"TagImportedUnit", Const, 0}, + {"TagInheritance", Const, 0}, + {"TagInlinedSubroutine", Const, 0}, + {"TagInterfaceType", Const, 0}, + {"TagLabel", Const, 0}, + {"TagLexDwarfBlock", Const, 0}, + {"TagMember", Const, 0}, + {"TagModule", Const, 0}, + {"TagMutableType", Const, 0}, + {"TagNamelist", Const, 0}, + {"TagNamelistItem", Const, 0}, + {"TagNamespace", Const, 0}, + {"TagPackedType", Const, 0}, + {"TagPartialUnit", Const, 0}, + {"TagPointerType", Const, 0}, + {"TagPtrToMemberType", Const, 0}, + {"TagReferenceType", Const, 0}, + {"TagRestrictType", Const, 0}, + {"TagRvalueReferenceType", Const, 3}, + {"TagSetType", Const, 0}, + {"TagSharedType", Const, 3}, + {"TagSkeletonUnit", Const, 14}, + {"TagStringType", Const, 0}, + {"TagStructType", Const, 0}, + {"TagSubprogram", Const, 0}, + {"TagSubrangeType", Const, 0}, + {"TagSubroutineType", Const, 0}, + {"TagTemplateAlias", Const, 3}, + {"TagTemplateTypeParameter", Const, 0}, + {"TagTemplateValueParameter", Const, 0}, + {"TagThrownType", Const, 0}, + {"TagTryDwarfBlock", Const, 0}, + {"TagTypeUnit", Const, 3}, + {"TagTypedef", Const, 0}, + {"TagUnionType", Const, 0}, + {"TagUnspecifiedParameters", Const, 0}, + {"TagUnspecifiedType", Const, 0}, + {"TagVariable", Const, 0}, + {"TagVariant", Const, 0}, + {"TagVariantPart", Const, 0}, + {"TagVolatileType", Const, 0}, + {"TagWithStmt", Const, 0}, + {"Type", Type, 0}, + {"TypedefType", Type, 0}, + {"TypedefType.CommonType", Field, 0}, + {"TypedefType.Type", Field, 0}, + {"UcharType", Type, 0}, + {"UcharType.BasicType", Field, 0}, + {"UintType", Type, 0}, + {"UintType.BasicType", Field, 0}, + {"UnspecifiedType", Type, 4}, + {"UnspecifiedType.BasicType", Field, 4}, + {"UnsupportedType", Type, 13}, + {"UnsupportedType.CommonType", Field, 13}, + {"UnsupportedType.Tag", Field, 13}, + {"VoidType", Type, 0}, + {"VoidType.CommonType", Field, 0}, + }, + "debug/elf": { + {"(*File).Close", Method, 0}, + {"(*File).DWARF", Method, 0}, + {"(*File).DynString", Method, 1}, + {"(*File).DynValue", Method, 21}, + {"(*File).DynamicSymbols", Method, 4}, + {"(*File).ImportedLibraries", Method, 0}, + {"(*File).ImportedSymbols", Method, 0}, + {"(*File).Section", Method, 0}, + {"(*File).SectionByType", Method, 0}, + {"(*File).Symbols", Method, 0}, + {"(*FormatError).Error", Method, 0}, + {"(*Prog).Open", Method, 0}, + {"(*Section).Data", Method, 0}, + {"(*Section).Open", Method, 0}, + {"(Class).GoString", Method, 0}, + {"(Class).String", Method, 0}, + {"(CompressionType).GoString", Method, 6}, + {"(CompressionType).String", Method, 6}, + {"(Data).GoString", Method, 0}, + {"(Data).String", Method, 0}, + {"(DynFlag).GoString", Method, 0}, + {"(DynFlag).String", Method, 0}, + {"(DynFlag1).GoString", Method, 21}, + {"(DynFlag1).String", Method, 21}, + {"(DynTag).GoString", Method, 0}, + {"(DynTag).String", Method, 0}, + {"(Machine).GoString", Method, 0}, + {"(Machine).String", Method, 0}, + {"(NType).GoString", Method, 0}, + {"(NType).String", Method, 0}, + {"(OSABI).GoString", Method, 0}, + {"(OSABI).String", Method, 0}, + {"(Prog).ReadAt", Method, 0}, + {"(ProgFlag).GoString", Method, 0}, + {"(ProgFlag).String", Method, 0}, + {"(ProgType).GoString", Method, 0}, + {"(ProgType).String", Method, 0}, + {"(R_386).GoString", Method, 0}, + {"(R_386).String", Method, 0}, + {"(R_390).GoString", Method, 7}, + {"(R_390).String", Method, 7}, + {"(R_AARCH64).GoString", Method, 4}, + {"(R_AARCH64).String", Method, 4}, + {"(R_ALPHA).GoString", Method, 0}, + {"(R_ALPHA).String", Method, 0}, + {"(R_ARM).GoString", Method, 0}, + {"(R_ARM).String", Method, 0}, + {"(R_LARCH).GoString", Method, 19}, + {"(R_LARCH).String", Method, 19}, + {"(R_MIPS).GoString", Method, 6}, + {"(R_MIPS).String", Method, 6}, + {"(R_PPC).GoString", Method, 0}, + {"(R_PPC).String", Method, 0}, + {"(R_PPC64).GoString", Method, 5}, + {"(R_PPC64).String", Method, 5}, + {"(R_RISCV).GoString", Method, 11}, + {"(R_RISCV).String", Method, 11}, + {"(R_SPARC).GoString", Method, 0}, + {"(R_SPARC).String", Method, 0}, + {"(R_X86_64).GoString", Method, 0}, + {"(R_X86_64).String", Method, 0}, + {"(Section).ReadAt", Method, 0}, + {"(SectionFlag).GoString", Method, 0}, + {"(SectionFlag).String", Method, 0}, + {"(SectionIndex).GoString", Method, 0}, + {"(SectionIndex).String", Method, 0}, + {"(SectionType).GoString", Method, 0}, + {"(SectionType).String", Method, 0}, + {"(SymBind).GoString", Method, 0}, + {"(SymBind).String", Method, 0}, + {"(SymType).GoString", Method, 0}, + {"(SymType).String", Method, 0}, + {"(SymVis).GoString", Method, 0}, + {"(SymVis).String", Method, 0}, + {"(Type).GoString", Method, 0}, + {"(Type).String", Method, 0}, + {"(Version).GoString", Method, 0}, + {"(Version).String", Method, 0}, + {"ARM_MAGIC_TRAMP_NUMBER", Const, 0}, + {"COMPRESS_HIOS", Const, 6}, + {"COMPRESS_HIPROC", Const, 6}, + {"COMPRESS_LOOS", Const, 6}, + {"COMPRESS_LOPROC", Const, 6}, + {"COMPRESS_ZLIB", Const, 6}, + {"COMPRESS_ZSTD", Const, 21}, + {"Chdr32", Type, 6}, + {"Chdr32.Addralign", Field, 6}, + {"Chdr32.Size", Field, 6}, + {"Chdr32.Type", Field, 6}, + {"Chdr64", Type, 6}, + {"Chdr64.Addralign", Field, 6}, + {"Chdr64.Size", Field, 6}, + {"Chdr64.Type", Field, 6}, + {"Class", Type, 0}, + {"CompressionType", Type, 6}, + {"DF_1_CONFALT", Const, 21}, + {"DF_1_DIRECT", Const, 21}, + {"DF_1_DISPRELDNE", Const, 21}, + {"DF_1_DISPRELPND", Const, 21}, + {"DF_1_EDITED", Const, 21}, + {"DF_1_ENDFILTEE", Const, 21}, + {"DF_1_GLOBAL", Const, 21}, + {"DF_1_GLOBAUDIT", Const, 21}, + {"DF_1_GROUP", Const, 21}, + {"DF_1_IGNMULDEF", Const, 21}, + {"DF_1_INITFIRST", Const, 21}, + {"DF_1_INTERPOSE", Const, 21}, + {"DF_1_KMOD", Const, 21}, + {"DF_1_LOADFLTR", Const, 21}, + {"DF_1_NOCOMMON", Const, 21}, + {"DF_1_NODEFLIB", Const, 21}, + {"DF_1_NODELETE", Const, 21}, + {"DF_1_NODIRECT", Const, 21}, + {"DF_1_NODUMP", Const, 21}, + {"DF_1_NOHDR", Const, 21}, + {"DF_1_NOKSYMS", Const, 21}, + {"DF_1_NOOPEN", Const, 21}, + {"DF_1_NORELOC", Const, 21}, + {"DF_1_NOW", Const, 21}, + {"DF_1_ORIGIN", Const, 21}, + {"DF_1_PIE", Const, 21}, + {"DF_1_SINGLETON", Const, 21}, + {"DF_1_STUB", Const, 21}, + {"DF_1_SYMINTPOSE", Const, 21}, + {"DF_1_TRANS", Const, 21}, + {"DF_1_WEAKFILTER", Const, 21}, + {"DF_BIND_NOW", Const, 0}, + {"DF_ORIGIN", Const, 0}, + {"DF_STATIC_TLS", Const, 0}, + {"DF_SYMBOLIC", Const, 0}, + {"DF_TEXTREL", Const, 0}, + {"DT_ADDRRNGHI", Const, 16}, + {"DT_ADDRRNGLO", Const, 16}, + {"DT_AUDIT", Const, 16}, + {"DT_AUXILIARY", Const, 16}, + {"DT_BIND_NOW", Const, 0}, + {"DT_CHECKSUM", Const, 16}, + {"DT_CONFIG", Const, 16}, + {"DT_DEBUG", Const, 0}, + {"DT_DEPAUDIT", Const, 16}, + {"DT_ENCODING", Const, 0}, + {"DT_FEATURE", Const, 16}, + {"DT_FILTER", Const, 16}, + {"DT_FINI", Const, 0}, + {"DT_FINI_ARRAY", Const, 0}, + {"DT_FINI_ARRAYSZ", Const, 0}, + {"DT_FLAGS", Const, 0}, + {"DT_FLAGS_1", Const, 16}, + {"DT_GNU_CONFLICT", Const, 16}, + {"DT_GNU_CONFLICTSZ", Const, 16}, + {"DT_GNU_HASH", Const, 16}, + {"DT_GNU_LIBLIST", Const, 16}, + {"DT_GNU_LIBLISTSZ", Const, 16}, + {"DT_GNU_PRELINKED", Const, 16}, + {"DT_HASH", Const, 0}, + {"DT_HIOS", Const, 0}, + {"DT_HIPROC", Const, 0}, + {"DT_INIT", Const, 0}, + {"DT_INIT_ARRAY", Const, 0}, + {"DT_INIT_ARRAYSZ", Const, 0}, + {"DT_JMPREL", Const, 0}, + {"DT_LOOS", Const, 0}, + {"DT_LOPROC", Const, 0}, + {"DT_MIPS_AUX_DYNAMIC", Const, 16}, + {"DT_MIPS_BASE_ADDRESS", Const, 16}, + {"DT_MIPS_COMPACT_SIZE", Const, 16}, + {"DT_MIPS_CONFLICT", Const, 16}, + {"DT_MIPS_CONFLICTNO", Const, 16}, + {"DT_MIPS_CXX_FLAGS", Const, 16}, + {"DT_MIPS_DELTA_CLASS", Const, 16}, + {"DT_MIPS_DELTA_CLASSSYM", Const, 16}, + {"DT_MIPS_DELTA_CLASSSYM_NO", Const, 16}, + {"DT_MIPS_DELTA_CLASS_NO", Const, 16}, + {"DT_MIPS_DELTA_INSTANCE", Const, 16}, + {"DT_MIPS_DELTA_INSTANCE_NO", Const, 16}, + {"DT_MIPS_DELTA_RELOC", Const, 16}, + {"DT_MIPS_DELTA_RELOC_NO", Const, 16}, + {"DT_MIPS_DELTA_SYM", Const, 16}, + {"DT_MIPS_DELTA_SYM_NO", Const, 16}, + {"DT_MIPS_DYNSTR_ALIGN", Const, 16}, + {"DT_MIPS_FLAGS", Const, 16}, + {"DT_MIPS_GOTSYM", Const, 16}, + {"DT_MIPS_GP_VALUE", Const, 16}, + {"DT_MIPS_HIDDEN_GOTIDX", Const, 16}, + {"DT_MIPS_HIPAGENO", Const, 16}, + {"DT_MIPS_ICHECKSUM", Const, 16}, + {"DT_MIPS_INTERFACE", Const, 16}, + {"DT_MIPS_INTERFACE_SIZE", Const, 16}, + {"DT_MIPS_IVERSION", Const, 16}, + {"DT_MIPS_LIBLIST", Const, 16}, + {"DT_MIPS_LIBLISTNO", Const, 16}, + {"DT_MIPS_LOCALPAGE_GOTIDX", Const, 16}, + {"DT_MIPS_LOCAL_GOTIDX", Const, 16}, + {"DT_MIPS_LOCAL_GOTNO", Const, 16}, + {"DT_MIPS_MSYM", Const, 16}, + {"DT_MIPS_OPTIONS", Const, 16}, + {"DT_MIPS_PERF_SUFFIX", Const, 16}, + {"DT_MIPS_PIXIE_INIT", Const, 16}, + {"DT_MIPS_PLTGOT", Const, 16}, + {"DT_MIPS_PROTECTED_GOTIDX", Const, 16}, + {"DT_MIPS_RLD_MAP", Const, 16}, + {"DT_MIPS_RLD_MAP_REL", Const, 16}, + {"DT_MIPS_RLD_TEXT_RESOLVE_ADDR", Const, 16}, + {"DT_MIPS_RLD_VERSION", Const, 16}, + {"DT_MIPS_RWPLT", Const, 16}, + {"DT_MIPS_SYMBOL_LIB", Const, 16}, + {"DT_MIPS_SYMTABNO", Const, 16}, + {"DT_MIPS_TIME_STAMP", Const, 16}, + {"DT_MIPS_UNREFEXTNO", Const, 16}, + {"DT_MOVEENT", Const, 16}, + {"DT_MOVESZ", Const, 16}, + {"DT_MOVETAB", Const, 16}, + {"DT_NEEDED", Const, 0}, + {"DT_NULL", Const, 0}, + {"DT_PLTGOT", Const, 0}, + {"DT_PLTPAD", Const, 16}, + {"DT_PLTPADSZ", Const, 16}, + {"DT_PLTREL", Const, 0}, + {"DT_PLTRELSZ", Const, 0}, + {"DT_POSFLAG_1", Const, 16}, + {"DT_PPC64_GLINK", Const, 16}, + {"DT_PPC64_OPD", Const, 16}, + {"DT_PPC64_OPDSZ", Const, 16}, + {"DT_PPC64_OPT", Const, 16}, + {"DT_PPC_GOT", Const, 16}, + {"DT_PPC_OPT", Const, 16}, + {"DT_PREINIT_ARRAY", Const, 0}, + {"DT_PREINIT_ARRAYSZ", Const, 0}, + {"DT_REL", Const, 0}, + {"DT_RELA", Const, 0}, + {"DT_RELACOUNT", Const, 16}, + {"DT_RELAENT", Const, 0}, + {"DT_RELASZ", Const, 0}, + {"DT_RELCOUNT", Const, 16}, + {"DT_RELENT", Const, 0}, + {"DT_RELSZ", Const, 0}, + {"DT_RPATH", Const, 0}, + {"DT_RUNPATH", Const, 0}, + {"DT_SONAME", Const, 0}, + {"DT_SPARC_REGISTER", Const, 16}, + {"DT_STRSZ", Const, 0}, + {"DT_STRTAB", Const, 0}, + {"DT_SYMBOLIC", Const, 0}, + {"DT_SYMENT", Const, 0}, + {"DT_SYMINENT", Const, 16}, + {"DT_SYMINFO", Const, 16}, + {"DT_SYMINSZ", Const, 16}, + {"DT_SYMTAB", Const, 0}, + {"DT_SYMTAB_SHNDX", Const, 16}, + {"DT_TEXTREL", Const, 0}, + {"DT_TLSDESC_GOT", Const, 16}, + {"DT_TLSDESC_PLT", Const, 16}, + {"DT_USED", Const, 16}, + {"DT_VALRNGHI", Const, 16}, + {"DT_VALRNGLO", Const, 16}, + {"DT_VERDEF", Const, 16}, + {"DT_VERDEFNUM", Const, 16}, + {"DT_VERNEED", Const, 0}, + {"DT_VERNEEDNUM", Const, 0}, + {"DT_VERSYM", Const, 0}, + {"Data", Type, 0}, + {"Dyn32", Type, 0}, + {"Dyn32.Tag", Field, 0}, + {"Dyn32.Val", Field, 0}, + {"Dyn64", Type, 0}, + {"Dyn64.Tag", Field, 0}, + {"Dyn64.Val", Field, 0}, + {"DynFlag", Type, 0}, + {"DynFlag1", Type, 21}, + {"DynTag", Type, 0}, + {"EI_ABIVERSION", Const, 0}, + {"EI_CLASS", Const, 0}, + {"EI_DATA", Const, 0}, + {"EI_NIDENT", Const, 0}, + {"EI_OSABI", Const, 0}, + {"EI_PAD", Const, 0}, + {"EI_VERSION", Const, 0}, + {"ELFCLASS32", Const, 0}, + {"ELFCLASS64", Const, 0}, + {"ELFCLASSNONE", Const, 0}, + {"ELFDATA2LSB", Const, 0}, + {"ELFDATA2MSB", Const, 0}, + {"ELFDATANONE", Const, 0}, + {"ELFMAG", Const, 0}, + {"ELFOSABI_86OPEN", Const, 0}, + {"ELFOSABI_AIX", Const, 0}, + {"ELFOSABI_ARM", Const, 0}, + {"ELFOSABI_AROS", Const, 11}, + {"ELFOSABI_CLOUDABI", Const, 11}, + {"ELFOSABI_FENIXOS", Const, 11}, + {"ELFOSABI_FREEBSD", Const, 0}, + {"ELFOSABI_HPUX", Const, 0}, + {"ELFOSABI_HURD", Const, 0}, + {"ELFOSABI_IRIX", Const, 0}, + {"ELFOSABI_LINUX", Const, 0}, + {"ELFOSABI_MODESTO", Const, 0}, + {"ELFOSABI_NETBSD", Const, 0}, + {"ELFOSABI_NONE", Const, 0}, + {"ELFOSABI_NSK", Const, 0}, + {"ELFOSABI_OPENBSD", Const, 0}, + {"ELFOSABI_OPENVMS", Const, 0}, + {"ELFOSABI_SOLARIS", Const, 0}, + {"ELFOSABI_STANDALONE", Const, 0}, + {"ELFOSABI_TRU64", Const, 0}, + {"EM_386", Const, 0}, + {"EM_486", Const, 0}, + {"EM_56800EX", Const, 11}, + {"EM_68HC05", Const, 11}, + {"EM_68HC08", Const, 11}, + {"EM_68HC11", Const, 11}, + {"EM_68HC12", Const, 0}, + {"EM_68HC16", Const, 11}, + {"EM_68K", Const, 0}, + {"EM_78KOR", Const, 11}, + {"EM_8051", Const, 11}, + {"EM_860", Const, 0}, + {"EM_88K", Const, 0}, + {"EM_960", Const, 0}, + {"EM_AARCH64", Const, 4}, + {"EM_ALPHA", Const, 0}, + {"EM_ALPHA_STD", Const, 0}, + {"EM_ALTERA_NIOS2", Const, 11}, + {"EM_AMDGPU", Const, 11}, + {"EM_ARC", Const, 0}, + {"EM_ARCA", Const, 11}, + {"EM_ARC_COMPACT", Const, 11}, + {"EM_ARC_COMPACT2", Const, 11}, + {"EM_ARM", Const, 0}, + {"EM_AVR", Const, 11}, + {"EM_AVR32", Const, 11}, + {"EM_BA1", Const, 11}, + {"EM_BA2", Const, 11}, + {"EM_BLACKFIN", Const, 11}, + {"EM_BPF", Const, 11}, + {"EM_C166", Const, 11}, + {"EM_CDP", Const, 11}, + {"EM_CE", Const, 11}, + {"EM_CLOUDSHIELD", Const, 11}, + {"EM_COGE", Const, 11}, + {"EM_COLDFIRE", Const, 0}, + {"EM_COOL", Const, 11}, + {"EM_COREA_1ST", Const, 11}, + {"EM_COREA_2ND", Const, 11}, + {"EM_CR", Const, 11}, + {"EM_CR16", Const, 11}, + {"EM_CRAYNV2", Const, 11}, + {"EM_CRIS", Const, 11}, + {"EM_CRX", Const, 11}, + {"EM_CSR_KALIMBA", Const, 11}, + {"EM_CUDA", Const, 11}, + {"EM_CYPRESS_M8C", Const, 11}, + {"EM_D10V", Const, 11}, + {"EM_D30V", Const, 11}, + {"EM_DSP24", Const, 11}, + {"EM_DSPIC30F", Const, 11}, + {"EM_DXP", Const, 11}, + {"EM_ECOG1", Const, 11}, + {"EM_ECOG16", Const, 11}, + {"EM_ECOG1X", Const, 11}, + {"EM_ECOG2", Const, 11}, + {"EM_ETPU", Const, 11}, + {"EM_EXCESS", Const, 11}, + {"EM_F2MC16", Const, 11}, + {"EM_FIREPATH", Const, 11}, + {"EM_FR20", Const, 0}, + {"EM_FR30", Const, 11}, + {"EM_FT32", Const, 11}, + {"EM_FX66", Const, 11}, + {"EM_H8S", Const, 0}, + {"EM_H8_300", Const, 0}, + {"EM_H8_300H", Const, 0}, + {"EM_H8_500", Const, 0}, + {"EM_HUANY", Const, 11}, + {"EM_IA_64", Const, 0}, + {"EM_INTEL205", Const, 11}, + {"EM_INTEL206", Const, 11}, + {"EM_INTEL207", Const, 11}, + {"EM_INTEL208", Const, 11}, + {"EM_INTEL209", Const, 11}, + {"EM_IP2K", Const, 11}, + {"EM_JAVELIN", Const, 11}, + {"EM_K10M", Const, 11}, + {"EM_KM32", Const, 11}, + {"EM_KMX16", Const, 11}, + {"EM_KMX32", Const, 11}, + {"EM_KMX8", Const, 11}, + {"EM_KVARC", Const, 11}, + {"EM_L10M", Const, 11}, + {"EM_LANAI", Const, 11}, + {"EM_LATTICEMICO32", Const, 11}, + {"EM_LOONGARCH", Const, 19}, + {"EM_M16C", Const, 11}, + {"EM_M32", Const, 0}, + {"EM_M32C", Const, 11}, + {"EM_M32R", Const, 11}, + {"EM_MANIK", Const, 11}, + {"EM_MAX", Const, 11}, + {"EM_MAXQ30", Const, 11}, + {"EM_MCHP_PIC", Const, 11}, + {"EM_MCST_ELBRUS", Const, 11}, + {"EM_ME16", Const, 0}, + {"EM_METAG", Const, 11}, + {"EM_MICROBLAZE", Const, 11}, + {"EM_MIPS", Const, 0}, + {"EM_MIPS_RS3_LE", Const, 0}, + {"EM_MIPS_RS4_BE", Const, 0}, + {"EM_MIPS_X", Const, 0}, + {"EM_MMA", Const, 0}, + {"EM_MMDSP_PLUS", Const, 11}, + {"EM_MMIX", Const, 11}, + {"EM_MN10200", Const, 11}, + {"EM_MN10300", Const, 11}, + {"EM_MOXIE", Const, 11}, + {"EM_MSP430", Const, 11}, + {"EM_NCPU", Const, 0}, + {"EM_NDR1", Const, 0}, + {"EM_NDS32", Const, 11}, + {"EM_NONE", Const, 0}, + {"EM_NORC", Const, 11}, + {"EM_NS32K", Const, 11}, + {"EM_OPEN8", Const, 11}, + {"EM_OPENRISC", Const, 11}, + {"EM_PARISC", Const, 0}, + {"EM_PCP", Const, 0}, + {"EM_PDP10", Const, 11}, + {"EM_PDP11", Const, 11}, + {"EM_PDSP", Const, 11}, + {"EM_PJ", Const, 11}, + {"EM_PPC", Const, 0}, + {"EM_PPC64", Const, 0}, + {"EM_PRISM", Const, 11}, + {"EM_QDSP6", Const, 11}, + {"EM_R32C", Const, 11}, + {"EM_RCE", Const, 0}, + {"EM_RH32", Const, 0}, + {"EM_RISCV", Const, 11}, + {"EM_RL78", Const, 11}, + {"EM_RS08", Const, 11}, + {"EM_RX", Const, 11}, + {"EM_S370", Const, 0}, + {"EM_S390", Const, 0}, + {"EM_SCORE7", Const, 11}, + {"EM_SEP", Const, 11}, + {"EM_SE_C17", Const, 11}, + {"EM_SE_C33", Const, 11}, + {"EM_SH", Const, 0}, + {"EM_SHARC", Const, 11}, + {"EM_SLE9X", Const, 11}, + {"EM_SNP1K", Const, 11}, + {"EM_SPARC", Const, 0}, + {"EM_SPARC32PLUS", Const, 0}, + {"EM_SPARCV9", Const, 0}, + {"EM_ST100", Const, 0}, + {"EM_ST19", Const, 11}, + {"EM_ST200", Const, 11}, + {"EM_ST7", Const, 11}, + {"EM_ST9PLUS", Const, 11}, + {"EM_STARCORE", Const, 0}, + {"EM_STM8", Const, 11}, + {"EM_STXP7X", Const, 11}, + {"EM_SVX", Const, 11}, + {"EM_TILE64", Const, 11}, + {"EM_TILEGX", Const, 11}, + {"EM_TILEPRO", Const, 11}, + {"EM_TINYJ", Const, 0}, + {"EM_TI_ARP32", Const, 11}, + {"EM_TI_C2000", Const, 11}, + {"EM_TI_C5500", Const, 11}, + {"EM_TI_C6000", Const, 11}, + {"EM_TI_PRU", Const, 11}, + {"EM_TMM_GPP", Const, 11}, + {"EM_TPC", Const, 11}, + {"EM_TRICORE", Const, 0}, + {"EM_TRIMEDIA", Const, 11}, + {"EM_TSK3000", Const, 11}, + {"EM_UNICORE", Const, 11}, + {"EM_V800", Const, 0}, + {"EM_V850", Const, 11}, + {"EM_VAX", Const, 11}, + {"EM_VIDEOCORE", Const, 11}, + {"EM_VIDEOCORE3", Const, 11}, + {"EM_VIDEOCORE5", Const, 11}, + {"EM_VISIUM", Const, 11}, + {"EM_VPP500", Const, 0}, + {"EM_X86_64", Const, 0}, + {"EM_XCORE", Const, 11}, + {"EM_XGATE", Const, 11}, + {"EM_XIMO16", Const, 11}, + {"EM_XTENSA", Const, 11}, + {"EM_Z80", Const, 11}, + {"EM_ZSP", Const, 11}, + {"ET_CORE", Const, 0}, + {"ET_DYN", Const, 0}, + {"ET_EXEC", Const, 0}, + {"ET_HIOS", Const, 0}, + {"ET_HIPROC", Const, 0}, + {"ET_LOOS", Const, 0}, + {"ET_LOPROC", Const, 0}, + {"ET_NONE", Const, 0}, + {"ET_REL", Const, 0}, + {"EV_CURRENT", Const, 0}, + {"EV_NONE", Const, 0}, + {"ErrNoSymbols", Var, 4}, + {"File", Type, 0}, + {"File.FileHeader", Field, 0}, + {"File.Progs", Field, 0}, + {"File.Sections", Field, 0}, + {"FileHeader", Type, 0}, + {"FileHeader.ABIVersion", Field, 0}, + {"FileHeader.ByteOrder", Field, 0}, + {"FileHeader.Class", Field, 0}, + {"FileHeader.Data", Field, 0}, + {"FileHeader.Entry", Field, 1}, + {"FileHeader.Machine", Field, 0}, + {"FileHeader.OSABI", Field, 0}, + {"FileHeader.Type", Field, 0}, + {"FileHeader.Version", Field, 0}, + {"FormatError", Type, 0}, + {"Header32", Type, 0}, + {"Header32.Ehsize", Field, 0}, + {"Header32.Entry", Field, 0}, + {"Header32.Flags", Field, 0}, + {"Header32.Ident", Field, 0}, + {"Header32.Machine", Field, 0}, + {"Header32.Phentsize", Field, 0}, + {"Header32.Phnum", Field, 0}, + {"Header32.Phoff", Field, 0}, + {"Header32.Shentsize", Field, 0}, + {"Header32.Shnum", Field, 0}, + {"Header32.Shoff", Field, 0}, + {"Header32.Shstrndx", Field, 0}, + {"Header32.Type", Field, 0}, + {"Header32.Version", Field, 0}, + {"Header64", Type, 0}, + {"Header64.Ehsize", Field, 0}, + {"Header64.Entry", Field, 0}, + {"Header64.Flags", Field, 0}, + {"Header64.Ident", Field, 0}, + {"Header64.Machine", Field, 0}, + {"Header64.Phentsize", Field, 0}, + {"Header64.Phnum", Field, 0}, + {"Header64.Phoff", Field, 0}, + {"Header64.Shentsize", Field, 0}, + {"Header64.Shnum", Field, 0}, + {"Header64.Shoff", Field, 0}, + {"Header64.Shstrndx", Field, 0}, + {"Header64.Type", Field, 0}, + {"Header64.Version", Field, 0}, + {"ImportedSymbol", Type, 0}, + {"ImportedSymbol.Library", Field, 0}, + {"ImportedSymbol.Name", Field, 0}, + {"ImportedSymbol.Version", Field, 0}, + {"Machine", Type, 0}, + {"NT_FPREGSET", Const, 0}, + {"NT_PRPSINFO", Const, 0}, + {"NT_PRSTATUS", Const, 0}, + {"NType", Type, 0}, + {"NewFile", Func, 0}, + {"OSABI", Type, 0}, + {"Open", Func, 0}, + {"PF_MASKOS", Const, 0}, + {"PF_MASKPROC", Const, 0}, + {"PF_R", Const, 0}, + {"PF_W", Const, 0}, + {"PF_X", Const, 0}, + {"PT_AARCH64_ARCHEXT", Const, 16}, + {"PT_AARCH64_UNWIND", Const, 16}, + {"PT_ARM_ARCHEXT", Const, 16}, + {"PT_ARM_EXIDX", Const, 16}, + {"PT_DYNAMIC", Const, 0}, + {"PT_GNU_EH_FRAME", Const, 16}, + {"PT_GNU_MBIND_HI", Const, 16}, + {"PT_GNU_MBIND_LO", Const, 16}, + {"PT_GNU_PROPERTY", Const, 16}, + {"PT_GNU_RELRO", Const, 16}, + {"PT_GNU_STACK", Const, 16}, + {"PT_HIOS", Const, 0}, + {"PT_HIPROC", Const, 0}, + {"PT_INTERP", Const, 0}, + {"PT_LOAD", Const, 0}, + {"PT_LOOS", Const, 0}, + {"PT_LOPROC", Const, 0}, + {"PT_MIPS_ABIFLAGS", Const, 16}, + {"PT_MIPS_OPTIONS", Const, 16}, + {"PT_MIPS_REGINFO", Const, 16}, + {"PT_MIPS_RTPROC", Const, 16}, + {"PT_NOTE", Const, 0}, + {"PT_NULL", Const, 0}, + {"PT_OPENBSD_BOOTDATA", Const, 16}, + {"PT_OPENBSD_RANDOMIZE", Const, 16}, + {"PT_OPENBSD_WXNEEDED", Const, 16}, + {"PT_PAX_FLAGS", Const, 16}, + {"PT_PHDR", Const, 0}, + {"PT_S390_PGSTE", Const, 16}, + {"PT_SHLIB", Const, 0}, + {"PT_SUNWSTACK", Const, 16}, + {"PT_SUNW_EH_FRAME", Const, 16}, + {"PT_TLS", Const, 0}, + {"Prog", Type, 0}, + {"Prog.ProgHeader", Field, 0}, + {"Prog.ReaderAt", Field, 0}, + {"Prog32", Type, 0}, + {"Prog32.Align", Field, 0}, + {"Prog32.Filesz", Field, 0}, + {"Prog32.Flags", Field, 0}, + {"Prog32.Memsz", Field, 0}, + {"Prog32.Off", Field, 0}, + {"Prog32.Paddr", Field, 0}, + {"Prog32.Type", Field, 0}, + {"Prog32.Vaddr", Field, 0}, + {"Prog64", Type, 0}, + {"Prog64.Align", Field, 0}, + {"Prog64.Filesz", Field, 0}, + {"Prog64.Flags", Field, 0}, + {"Prog64.Memsz", Field, 0}, + {"Prog64.Off", Field, 0}, + {"Prog64.Paddr", Field, 0}, + {"Prog64.Type", Field, 0}, + {"Prog64.Vaddr", Field, 0}, + {"ProgFlag", Type, 0}, + {"ProgHeader", Type, 0}, + {"ProgHeader.Align", Field, 0}, + {"ProgHeader.Filesz", Field, 0}, + {"ProgHeader.Flags", Field, 0}, + {"ProgHeader.Memsz", Field, 0}, + {"ProgHeader.Off", Field, 0}, + {"ProgHeader.Paddr", Field, 0}, + {"ProgHeader.Type", Field, 0}, + {"ProgHeader.Vaddr", Field, 0}, + {"ProgType", Type, 0}, + {"R_386", Type, 0}, + {"R_386_16", Const, 10}, + {"R_386_32", Const, 0}, + {"R_386_32PLT", Const, 10}, + {"R_386_8", Const, 10}, + {"R_386_COPY", Const, 0}, + {"R_386_GLOB_DAT", Const, 0}, + {"R_386_GOT32", Const, 0}, + {"R_386_GOT32X", Const, 10}, + {"R_386_GOTOFF", Const, 0}, + {"R_386_GOTPC", Const, 0}, + {"R_386_IRELATIVE", Const, 10}, + {"R_386_JMP_SLOT", Const, 0}, + {"R_386_NONE", Const, 0}, + {"R_386_PC16", Const, 10}, + {"R_386_PC32", Const, 0}, + {"R_386_PC8", Const, 10}, + {"R_386_PLT32", Const, 0}, + {"R_386_RELATIVE", Const, 0}, + {"R_386_SIZE32", Const, 10}, + {"R_386_TLS_DESC", Const, 10}, + {"R_386_TLS_DESC_CALL", Const, 10}, + {"R_386_TLS_DTPMOD32", Const, 0}, + {"R_386_TLS_DTPOFF32", Const, 0}, + {"R_386_TLS_GD", Const, 0}, + {"R_386_TLS_GD_32", Const, 0}, + {"R_386_TLS_GD_CALL", Const, 0}, + {"R_386_TLS_GD_POP", Const, 0}, + {"R_386_TLS_GD_PUSH", Const, 0}, + {"R_386_TLS_GOTDESC", Const, 10}, + {"R_386_TLS_GOTIE", Const, 0}, + {"R_386_TLS_IE", Const, 0}, + {"R_386_TLS_IE_32", Const, 0}, + {"R_386_TLS_LDM", Const, 0}, + {"R_386_TLS_LDM_32", Const, 0}, + {"R_386_TLS_LDM_CALL", Const, 0}, + {"R_386_TLS_LDM_POP", Const, 0}, + {"R_386_TLS_LDM_PUSH", Const, 0}, + {"R_386_TLS_LDO_32", Const, 0}, + {"R_386_TLS_LE", Const, 0}, + {"R_386_TLS_LE_32", Const, 0}, + {"R_386_TLS_TPOFF", Const, 0}, + {"R_386_TLS_TPOFF32", Const, 0}, + {"R_390", Type, 7}, + {"R_390_12", Const, 7}, + {"R_390_16", Const, 7}, + {"R_390_20", Const, 7}, + {"R_390_32", Const, 7}, + {"R_390_64", Const, 7}, + {"R_390_8", Const, 7}, + {"R_390_COPY", Const, 7}, + {"R_390_GLOB_DAT", Const, 7}, + {"R_390_GOT12", Const, 7}, + {"R_390_GOT16", Const, 7}, + {"R_390_GOT20", Const, 7}, + {"R_390_GOT32", Const, 7}, + {"R_390_GOT64", Const, 7}, + {"R_390_GOTENT", Const, 7}, + {"R_390_GOTOFF", Const, 7}, + {"R_390_GOTOFF16", Const, 7}, + {"R_390_GOTOFF64", Const, 7}, + {"R_390_GOTPC", Const, 7}, + {"R_390_GOTPCDBL", Const, 7}, + {"R_390_GOTPLT12", Const, 7}, + {"R_390_GOTPLT16", Const, 7}, + {"R_390_GOTPLT20", Const, 7}, + {"R_390_GOTPLT32", Const, 7}, + {"R_390_GOTPLT64", Const, 7}, + {"R_390_GOTPLTENT", Const, 7}, + {"R_390_GOTPLTOFF16", Const, 7}, + {"R_390_GOTPLTOFF32", Const, 7}, + {"R_390_GOTPLTOFF64", Const, 7}, + {"R_390_JMP_SLOT", Const, 7}, + {"R_390_NONE", Const, 7}, + {"R_390_PC16", Const, 7}, + {"R_390_PC16DBL", Const, 7}, + {"R_390_PC32", Const, 7}, + {"R_390_PC32DBL", Const, 7}, + {"R_390_PC64", Const, 7}, + {"R_390_PLT16DBL", Const, 7}, + {"R_390_PLT32", Const, 7}, + {"R_390_PLT32DBL", Const, 7}, + {"R_390_PLT64", Const, 7}, + {"R_390_RELATIVE", Const, 7}, + {"R_390_TLS_DTPMOD", Const, 7}, + {"R_390_TLS_DTPOFF", Const, 7}, + {"R_390_TLS_GD32", Const, 7}, + {"R_390_TLS_GD64", Const, 7}, + {"R_390_TLS_GDCALL", Const, 7}, + {"R_390_TLS_GOTIE12", Const, 7}, + {"R_390_TLS_GOTIE20", Const, 7}, + {"R_390_TLS_GOTIE32", Const, 7}, + {"R_390_TLS_GOTIE64", Const, 7}, + {"R_390_TLS_IE32", Const, 7}, + {"R_390_TLS_IE64", Const, 7}, + {"R_390_TLS_IEENT", Const, 7}, + {"R_390_TLS_LDCALL", Const, 7}, + {"R_390_TLS_LDM32", Const, 7}, + {"R_390_TLS_LDM64", Const, 7}, + {"R_390_TLS_LDO32", Const, 7}, + {"R_390_TLS_LDO64", Const, 7}, + {"R_390_TLS_LE32", Const, 7}, + {"R_390_TLS_LE64", Const, 7}, + {"R_390_TLS_LOAD", Const, 7}, + {"R_390_TLS_TPOFF", Const, 7}, + {"R_AARCH64", Type, 4}, + {"R_AARCH64_ABS16", Const, 4}, + {"R_AARCH64_ABS32", Const, 4}, + {"R_AARCH64_ABS64", Const, 4}, + {"R_AARCH64_ADD_ABS_LO12_NC", Const, 4}, + {"R_AARCH64_ADR_GOT_PAGE", Const, 4}, + {"R_AARCH64_ADR_PREL_LO21", Const, 4}, + {"R_AARCH64_ADR_PREL_PG_HI21", Const, 4}, + {"R_AARCH64_ADR_PREL_PG_HI21_NC", Const, 4}, + {"R_AARCH64_CALL26", Const, 4}, + {"R_AARCH64_CONDBR19", Const, 4}, + {"R_AARCH64_COPY", Const, 4}, + {"R_AARCH64_GLOB_DAT", Const, 4}, + {"R_AARCH64_GOT_LD_PREL19", Const, 4}, + {"R_AARCH64_IRELATIVE", Const, 4}, + {"R_AARCH64_JUMP26", Const, 4}, + {"R_AARCH64_JUMP_SLOT", Const, 4}, + {"R_AARCH64_LD64_GOTOFF_LO15", Const, 10}, + {"R_AARCH64_LD64_GOTPAGE_LO15", Const, 10}, + {"R_AARCH64_LD64_GOT_LO12_NC", Const, 4}, + {"R_AARCH64_LDST128_ABS_LO12_NC", Const, 4}, + {"R_AARCH64_LDST16_ABS_LO12_NC", Const, 4}, + {"R_AARCH64_LDST32_ABS_LO12_NC", Const, 4}, + {"R_AARCH64_LDST64_ABS_LO12_NC", Const, 4}, + {"R_AARCH64_LDST8_ABS_LO12_NC", Const, 4}, + {"R_AARCH64_LD_PREL_LO19", Const, 4}, + {"R_AARCH64_MOVW_SABS_G0", Const, 4}, + {"R_AARCH64_MOVW_SABS_G1", Const, 4}, + {"R_AARCH64_MOVW_SABS_G2", Const, 4}, + {"R_AARCH64_MOVW_UABS_G0", Const, 4}, + {"R_AARCH64_MOVW_UABS_G0_NC", Const, 4}, + {"R_AARCH64_MOVW_UABS_G1", Const, 4}, + {"R_AARCH64_MOVW_UABS_G1_NC", Const, 4}, + {"R_AARCH64_MOVW_UABS_G2", Const, 4}, + {"R_AARCH64_MOVW_UABS_G2_NC", Const, 4}, + {"R_AARCH64_MOVW_UABS_G3", Const, 4}, + {"R_AARCH64_NONE", Const, 4}, + {"R_AARCH64_NULL", Const, 4}, + {"R_AARCH64_P32_ABS16", Const, 4}, + {"R_AARCH64_P32_ABS32", Const, 4}, + {"R_AARCH64_P32_ADD_ABS_LO12_NC", Const, 4}, + {"R_AARCH64_P32_ADR_GOT_PAGE", Const, 4}, + {"R_AARCH64_P32_ADR_PREL_LO21", Const, 4}, + {"R_AARCH64_P32_ADR_PREL_PG_HI21", Const, 4}, + {"R_AARCH64_P32_CALL26", Const, 4}, + {"R_AARCH64_P32_CONDBR19", Const, 4}, + {"R_AARCH64_P32_COPY", Const, 4}, + {"R_AARCH64_P32_GLOB_DAT", Const, 4}, + {"R_AARCH64_P32_GOT_LD_PREL19", Const, 4}, + {"R_AARCH64_P32_IRELATIVE", Const, 4}, + {"R_AARCH64_P32_JUMP26", Const, 4}, + {"R_AARCH64_P32_JUMP_SLOT", Const, 4}, + {"R_AARCH64_P32_LD32_GOT_LO12_NC", Const, 4}, + {"R_AARCH64_P32_LDST128_ABS_LO12_NC", Const, 4}, + {"R_AARCH64_P32_LDST16_ABS_LO12_NC", Const, 4}, + {"R_AARCH64_P32_LDST32_ABS_LO12_NC", Const, 4}, + {"R_AARCH64_P32_LDST64_ABS_LO12_NC", Const, 4}, + {"R_AARCH64_P32_LDST8_ABS_LO12_NC", Const, 4}, + {"R_AARCH64_P32_LD_PREL_LO19", Const, 4}, + {"R_AARCH64_P32_MOVW_SABS_G0", Const, 4}, + {"R_AARCH64_P32_MOVW_UABS_G0", Const, 4}, + {"R_AARCH64_P32_MOVW_UABS_G0_NC", Const, 4}, + {"R_AARCH64_P32_MOVW_UABS_G1", Const, 4}, + {"R_AARCH64_P32_PREL16", Const, 4}, + {"R_AARCH64_P32_PREL32", Const, 4}, + {"R_AARCH64_P32_RELATIVE", Const, 4}, + {"R_AARCH64_P32_TLSDESC", Const, 4}, + {"R_AARCH64_P32_TLSDESC_ADD_LO12_NC", Const, 4}, + {"R_AARCH64_P32_TLSDESC_ADR_PAGE21", Const, 4}, + {"R_AARCH64_P32_TLSDESC_ADR_PREL21", Const, 4}, + {"R_AARCH64_P32_TLSDESC_CALL", Const, 4}, + {"R_AARCH64_P32_TLSDESC_LD32_LO12_NC", Const, 4}, + {"R_AARCH64_P32_TLSDESC_LD_PREL19", Const, 4}, + {"R_AARCH64_P32_TLSGD_ADD_LO12_NC", Const, 4}, + {"R_AARCH64_P32_TLSGD_ADR_PAGE21", Const, 4}, + {"R_AARCH64_P32_TLSIE_ADR_GOTTPREL_PAGE21", Const, 4}, + {"R_AARCH64_P32_TLSIE_LD32_GOTTPREL_LO12_NC", Const, 4}, + {"R_AARCH64_P32_TLSIE_LD_GOTTPREL_PREL19", Const, 4}, + {"R_AARCH64_P32_TLSLE_ADD_TPREL_HI12", Const, 4}, + {"R_AARCH64_P32_TLSLE_ADD_TPREL_LO12", Const, 4}, + {"R_AARCH64_P32_TLSLE_ADD_TPREL_LO12_NC", Const, 4}, + {"R_AARCH64_P32_TLSLE_MOVW_TPREL_G0", Const, 4}, + {"R_AARCH64_P32_TLSLE_MOVW_TPREL_G0_NC", Const, 4}, + {"R_AARCH64_P32_TLSLE_MOVW_TPREL_G1", Const, 4}, + {"R_AARCH64_P32_TLS_DTPMOD", Const, 4}, + {"R_AARCH64_P32_TLS_DTPREL", Const, 4}, + {"R_AARCH64_P32_TLS_TPREL", Const, 4}, + {"R_AARCH64_P32_TSTBR14", Const, 4}, + {"R_AARCH64_PREL16", Const, 4}, + {"R_AARCH64_PREL32", Const, 4}, + {"R_AARCH64_PREL64", Const, 4}, + {"R_AARCH64_RELATIVE", Const, 4}, + {"R_AARCH64_TLSDESC", Const, 4}, + {"R_AARCH64_TLSDESC_ADD", Const, 4}, + {"R_AARCH64_TLSDESC_ADD_LO12_NC", Const, 4}, + {"R_AARCH64_TLSDESC_ADR_PAGE21", Const, 4}, + {"R_AARCH64_TLSDESC_ADR_PREL21", Const, 4}, + {"R_AARCH64_TLSDESC_CALL", Const, 4}, + {"R_AARCH64_TLSDESC_LD64_LO12_NC", Const, 4}, + {"R_AARCH64_TLSDESC_LDR", Const, 4}, + {"R_AARCH64_TLSDESC_LD_PREL19", Const, 4}, + {"R_AARCH64_TLSDESC_OFF_G0_NC", Const, 4}, + {"R_AARCH64_TLSDESC_OFF_G1", Const, 4}, + {"R_AARCH64_TLSGD_ADD_LO12_NC", Const, 4}, + {"R_AARCH64_TLSGD_ADR_PAGE21", Const, 4}, + {"R_AARCH64_TLSGD_ADR_PREL21", Const, 10}, + {"R_AARCH64_TLSGD_MOVW_G0_NC", Const, 10}, + {"R_AARCH64_TLSGD_MOVW_G1", Const, 10}, + {"R_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21", Const, 4}, + {"R_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC", Const, 4}, + {"R_AARCH64_TLSIE_LD_GOTTPREL_PREL19", Const, 4}, + {"R_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC", Const, 4}, + {"R_AARCH64_TLSIE_MOVW_GOTTPREL_G1", Const, 4}, + {"R_AARCH64_TLSLD_ADR_PAGE21", Const, 10}, + {"R_AARCH64_TLSLD_ADR_PREL21", Const, 10}, + {"R_AARCH64_TLSLD_LDST128_DTPREL_LO12", Const, 10}, + {"R_AARCH64_TLSLD_LDST128_DTPREL_LO12_NC", Const, 10}, + {"R_AARCH64_TLSLE_ADD_TPREL_HI12", Const, 4}, + {"R_AARCH64_TLSLE_ADD_TPREL_LO12", Const, 4}, + {"R_AARCH64_TLSLE_ADD_TPREL_LO12_NC", Const, 4}, + {"R_AARCH64_TLSLE_LDST128_TPREL_LO12", Const, 10}, + {"R_AARCH64_TLSLE_LDST128_TPREL_LO12_NC", Const, 10}, + {"R_AARCH64_TLSLE_MOVW_TPREL_G0", Const, 4}, + {"R_AARCH64_TLSLE_MOVW_TPREL_G0_NC", Const, 4}, + {"R_AARCH64_TLSLE_MOVW_TPREL_G1", Const, 4}, + {"R_AARCH64_TLSLE_MOVW_TPREL_G1_NC", Const, 4}, + {"R_AARCH64_TLSLE_MOVW_TPREL_G2", Const, 4}, + {"R_AARCH64_TLS_DTPMOD64", Const, 4}, + {"R_AARCH64_TLS_DTPREL64", Const, 4}, + {"R_AARCH64_TLS_TPREL64", Const, 4}, + {"R_AARCH64_TSTBR14", Const, 4}, + {"R_ALPHA", Type, 0}, + {"R_ALPHA_BRADDR", Const, 0}, + {"R_ALPHA_COPY", Const, 0}, + {"R_ALPHA_GLOB_DAT", Const, 0}, + {"R_ALPHA_GPDISP", Const, 0}, + {"R_ALPHA_GPREL32", Const, 0}, + {"R_ALPHA_GPRELHIGH", Const, 0}, + {"R_ALPHA_GPRELLOW", Const, 0}, + {"R_ALPHA_GPVALUE", Const, 0}, + {"R_ALPHA_HINT", Const, 0}, + {"R_ALPHA_IMMED_BR_HI32", Const, 0}, + {"R_ALPHA_IMMED_GP_16", Const, 0}, + {"R_ALPHA_IMMED_GP_HI32", Const, 0}, + {"R_ALPHA_IMMED_LO32", Const, 0}, + {"R_ALPHA_IMMED_SCN_HI32", Const, 0}, + {"R_ALPHA_JMP_SLOT", Const, 0}, + {"R_ALPHA_LITERAL", Const, 0}, + {"R_ALPHA_LITUSE", Const, 0}, + {"R_ALPHA_NONE", Const, 0}, + {"R_ALPHA_OP_PRSHIFT", Const, 0}, + {"R_ALPHA_OP_PSUB", Const, 0}, + {"R_ALPHA_OP_PUSH", Const, 0}, + {"R_ALPHA_OP_STORE", Const, 0}, + {"R_ALPHA_REFLONG", Const, 0}, + {"R_ALPHA_REFQUAD", Const, 0}, + {"R_ALPHA_RELATIVE", Const, 0}, + {"R_ALPHA_SREL16", Const, 0}, + {"R_ALPHA_SREL32", Const, 0}, + {"R_ALPHA_SREL64", Const, 0}, + {"R_ARM", Type, 0}, + {"R_ARM_ABS12", Const, 0}, + {"R_ARM_ABS16", Const, 0}, + {"R_ARM_ABS32", Const, 0}, + {"R_ARM_ABS32_NOI", Const, 10}, + {"R_ARM_ABS8", Const, 0}, + {"R_ARM_ALU_PCREL_15_8", Const, 10}, + {"R_ARM_ALU_PCREL_23_15", Const, 10}, + {"R_ARM_ALU_PCREL_7_0", Const, 10}, + {"R_ARM_ALU_PC_G0", Const, 10}, + {"R_ARM_ALU_PC_G0_NC", Const, 10}, + {"R_ARM_ALU_PC_G1", Const, 10}, + {"R_ARM_ALU_PC_G1_NC", Const, 10}, + {"R_ARM_ALU_PC_G2", Const, 10}, + {"R_ARM_ALU_SBREL_19_12_NC", Const, 10}, + {"R_ARM_ALU_SBREL_27_20_CK", Const, 10}, + {"R_ARM_ALU_SB_G0", Const, 10}, + {"R_ARM_ALU_SB_G0_NC", Const, 10}, + {"R_ARM_ALU_SB_G1", Const, 10}, + {"R_ARM_ALU_SB_G1_NC", Const, 10}, + {"R_ARM_ALU_SB_G2", Const, 10}, + {"R_ARM_AMP_VCALL9", Const, 0}, + {"R_ARM_BASE_ABS", Const, 10}, + {"R_ARM_CALL", Const, 10}, + {"R_ARM_COPY", Const, 0}, + {"R_ARM_GLOB_DAT", Const, 0}, + {"R_ARM_GNU_VTENTRY", Const, 0}, + {"R_ARM_GNU_VTINHERIT", Const, 0}, + {"R_ARM_GOT32", Const, 0}, + {"R_ARM_GOTOFF", Const, 0}, + {"R_ARM_GOTOFF12", Const, 10}, + {"R_ARM_GOTPC", Const, 0}, + {"R_ARM_GOTRELAX", Const, 10}, + {"R_ARM_GOT_ABS", Const, 10}, + {"R_ARM_GOT_BREL12", Const, 10}, + {"R_ARM_GOT_PREL", Const, 10}, + {"R_ARM_IRELATIVE", Const, 10}, + {"R_ARM_JUMP24", Const, 10}, + {"R_ARM_JUMP_SLOT", Const, 0}, + {"R_ARM_LDC_PC_G0", Const, 10}, + {"R_ARM_LDC_PC_G1", Const, 10}, + {"R_ARM_LDC_PC_G2", Const, 10}, + {"R_ARM_LDC_SB_G0", Const, 10}, + {"R_ARM_LDC_SB_G1", Const, 10}, + {"R_ARM_LDC_SB_G2", Const, 10}, + {"R_ARM_LDRS_PC_G0", Const, 10}, + {"R_ARM_LDRS_PC_G1", Const, 10}, + {"R_ARM_LDRS_PC_G2", Const, 10}, + {"R_ARM_LDRS_SB_G0", Const, 10}, + {"R_ARM_LDRS_SB_G1", Const, 10}, + {"R_ARM_LDRS_SB_G2", Const, 10}, + {"R_ARM_LDR_PC_G1", Const, 10}, + {"R_ARM_LDR_PC_G2", Const, 10}, + {"R_ARM_LDR_SBREL_11_10_NC", Const, 10}, + {"R_ARM_LDR_SB_G0", Const, 10}, + {"R_ARM_LDR_SB_G1", Const, 10}, + {"R_ARM_LDR_SB_G2", Const, 10}, + {"R_ARM_ME_TOO", Const, 10}, + {"R_ARM_MOVT_ABS", Const, 10}, + {"R_ARM_MOVT_BREL", Const, 10}, + {"R_ARM_MOVT_PREL", Const, 10}, + {"R_ARM_MOVW_ABS_NC", Const, 10}, + {"R_ARM_MOVW_BREL", Const, 10}, + {"R_ARM_MOVW_BREL_NC", Const, 10}, + {"R_ARM_MOVW_PREL_NC", Const, 10}, + {"R_ARM_NONE", Const, 0}, + {"R_ARM_PC13", Const, 0}, + {"R_ARM_PC24", Const, 0}, + {"R_ARM_PLT32", Const, 0}, + {"R_ARM_PLT32_ABS", Const, 10}, + {"R_ARM_PREL31", Const, 10}, + {"R_ARM_PRIVATE_0", Const, 10}, + {"R_ARM_PRIVATE_1", Const, 10}, + {"R_ARM_PRIVATE_10", Const, 10}, + {"R_ARM_PRIVATE_11", Const, 10}, + {"R_ARM_PRIVATE_12", Const, 10}, + {"R_ARM_PRIVATE_13", Const, 10}, + {"R_ARM_PRIVATE_14", Const, 10}, + {"R_ARM_PRIVATE_15", Const, 10}, + {"R_ARM_PRIVATE_2", Const, 10}, + {"R_ARM_PRIVATE_3", Const, 10}, + {"R_ARM_PRIVATE_4", Const, 10}, + {"R_ARM_PRIVATE_5", Const, 10}, + {"R_ARM_PRIVATE_6", Const, 10}, + {"R_ARM_PRIVATE_7", Const, 10}, + {"R_ARM_PRIVATE_8", Const, 10}, + {"R_ARM_PRIVATE_9", Const, 10}, + {"R_ARM_RABS32", Const, 0}, + {"R_ARM_RBASE", Const, 0}, + {"R_ARM_REL32", Const, 0}, + {"R_ARM_REL32_NOI", Const, 10}, + {"R_ARM_RELATIVE", Const, 0}, + {"R_ARM_RPC24", Const, 0}, + {"R_ARM_RREL32", Const, 0}, + {"R_ARM_RSBREL32", Const, 0}, + {"R_ARM_RXPC25", Const, 10}, + {"R_ARM_SBREL31", Const, 10}, + {"R_ARM_SBREL32", Const, 0}, + {"R_ARM_SWI24", Const, 0}, + {"R_ARM_TARGET1", Const, 10}, + {"R_ARM_TARGET2", Const, 10}, + {"R_ARM_THM_ABS5", Const, 0}, + {"R_ARM_THM_ALU_ABS_G0_NC", Const, 10}, + {"R_ARM_THM_ALU_ABS_G1_NC", Const, 10}, + {"R_ARM_THM_ALU_ABS_G2_NC", Const, 10}, + {"R_ARM_THM_ALU_ABS_G3", Const, 10}, + {"R_ARM_THM_ALU_PREL_11_0", Const, 10}, + {"R_ARM_THM_GOT_BREL12", Const, 10}, + {"R_ARM_THM_JUMP11", Const, 10}, + {"R_ARM_THM_JUMP19", Const, 10}, + {"R_ARM_THM_JUMP24", Const, 10}, + {"R_ARM_THM_JUMP6", Const, 10}, + {"R_ARM_THM_JUMP8", Const, 10}, + {"R_ARM_THM_MOVT_ABS", Const, 10}, + {"R_ARM_THM_MOVT_BREL", Const, 10}, + {"R_ARM_THM_MOVT_PREL", Const, 10}, + {"R_ARM_THM_MOVW_ABS_NC", Const, 10}, + {"R_ARM_THM_MOVW_BREL", Const, 10}, + {"R_ARM_THM_MOVW_BREL_NC", Const, 10}, + {"R_ARM_THM_MOVW_PREL_NC", Const, 10}, + {"R_ARM_THM_PC12", Const, 10}, + {"R_ARM_THM_PC22", Const, 0}, + {"R_ARM_THM_PC8", Const, 0}, + {"R_ARM_THM_RPC22", Const, 0}, + {"R_ARM_THM_SWI8", Const, 0}, + {"R_ARM_THM_TLS_CALL", Const, 10}, + {"R_ARM_THM_TLS_DESCSEQ16", Const, 10}, + {"R_ARM_THM_TLS_DESCSEQ32", Const, 10}, + {"R_ARM_THM_XPC22", Const, 0}, + {"R_ARM_TLS_CALL", Const, 10}, + {"R_ARM_TLS_DESCSEQ", Const, 10}, + {"R_ARM_TLS_DTPMOD32", Const, 10}, + {"R_ARM_TLS_DTPOFF32", Const, 10}, + {"R_ARM_TLS_GD32", Const, 10}, + {"R_ARM_TLS_GOTDESC", Const, 10}, + {"R_ARM_TLS_IE12GP", Const, 10}, + {"R_ARM_TLS_IE32", Const, 10}, + {"R_ARM_TLS_LDM32", Const, 10}, + {"R_ARM_TLS_LDO12", Const, 10}, + {"R_ARM_TLS_LDO32", Const, 10}, + {"R_ARM_TLS_LE12", Const, 10}, + {"R_ARM_TLS_LE32", Const, 10}, + {"R_ARM_TLS_TPOFF32", Const, 10}, + {"R_ARM_V4BX", Const, 10}, + {"R_ARM_XPC25", Const, 0}, + {"R_INFO", Func, 0}, + {"R_INFO32", Func, 0}, + {"R_LARCH", Type, 19}, + {"R_LARCH_32", Const, 19}, + {"R_LARCH_32_PCREL", Const, 20}, + {"R_LARCH_64", Const, 19}, + {"R_LARCH_64_PCREL", Const, 22}, + {"R_LARCH_ABS64_HI12", Const, 20}, + {"R_LARCH_ABS64_LO20", Const, 20}, + {"R_LARCH_ABS_HI20", Const, 20}, + {"R_LARCH_ABS_LO12", Const, 20}, + {"R_LARCH_ADD16", Const, 19}, + {"R_LARCH_ADD24", Const, 19}, + {"R_LARCH_ADD32", Const, 19}, + {"R_LARCH_ADD6", Const, 22}, + {"R_LARCH_ADD64", Const, 19}, + {"R_LARCH_ADD8", Const, 19}, + {"R_LARCH_ADD_ULEB128", Const, 22}, + {"R_LARCH_ALIGN", Const, 22}, + {"R_LARCH_B16", Const, 20}, + {"R_LARCH_B21", Const, 20}, + {"R_LARCH_B26", Const, 20}, + {"R_LARCH_CFA", Const, 22}, + {"R_LARCH_COPY", Const, 19}, + {"R_LARCH_DELETE", Const, 22}, + {"R_LARCH_GNU_VTENTRY", Const, 20}, + {"R_LARCH_GNU_VTINHERIT", Const, 20}, + {"R_LARCH_GOT64_HI12", Const, 20}, + {"R_LARCH_GOT64_LO20", Const, 20}, + {"R_LARCH_GOT64_PC_HI12", Const, 20}, + {"R_LARCH_GOT64_PC_LO20", Const, 20}, + {"R_LARCH_GOT_HI20", Const, 20}, + {"R_LARCH_GOT_LO12", Const, 20}, + {"R_LARCH_GOT_PC_HI20", Const, 20}, + {"R_LARCH_GOT_PC_LO12", Const, 20}, + {"R_LARCH_IRELATIVE", Const, 19}, + {"R_LARCH_JUMP_SLOT", Const, 19}, + {"R_LARCH_MARK_LA", Const, 19}, + {"R_LARCH_MARK_PCREL", Const, 19}, + {"R_LARCH_NONE", Const, 19}, + {"R_LARCH_PCALA64_HI12", Const, 20}, + {"R_LARCH_PCALA64_LO20", Const, 20}, + {"R_LARCH_PCALA_HI20", Const, 20}, + {"R_LARCH_PCALA_LO12", Const, 20}, + {"R_LARCH_PCREL20_S2", Const, 22}, + {"R_LARCH_RELATIVE", Const, 19}, + {"R_LARCH_RELAX", Const, 20}, + {"R_LARCH_SOP_ADD", Const, 19}, + {"R_LARCH_SOP_AND", Const, 19}, + {"R_LARCH_SOP_ASSERT", Const, 19}, + {"R_LARCH_SOP_IF_ELSE", Const, 19}, + {"R_LARCH_SOP_NOT", Const, 19}, + {"R_LARCH_SOP_POP_32_S_0_10_10_16_S2", Const, 19}, + {"R_LARCH_SOP_POP_32_S_0_5_10_16_S2", Const, 19}, + {"R_LARCH_SOP_POP_32_S_10_12", Const, 19}, + {"R_LARCH_SOP_POP_32_S_10_16", Const, 19}, + {"R_LARCH_SOP_POP_32_S_10_16_S2", Const, 19}, + {"R_LARCH_SOP_POP_32_S_10_5", Const, 19}, + {"R_LARCH_SOP_POP_32_S_5_20", Const, 19}, + {"R_LARCH_SOP_POP_32_U", Const, 19}, + {"R_LARCH_SOP_POP_32_U_10_12", Const, 19}, + {"R_LARCH_SOP_PUSH_ABSOLUTE", Const, 19}, + {"R_LARCH_SOP_PUSH_DUP", Const, 19}, + {"R_LARCH_SOP_PUSH_GPREL", Const, 19}, + {"R_LARCH_SOP_PUSH_PCREL", Const, 19}, + {"R_LARCH_SOP_PUSH_PLT_PCREL", Const, 19}, + {"R_LARCH_SOP_PUSH_TLS_GD", Const, 19}, + {"R_LARCH_SOP_PUSH_TLS_GOT", Const, 19}, + {"R_LARCH_SOP_PUSH_TLS_TPREL", Const, 19}, + {"R_LARCH_SOP_SL", Const, 19}, + {"R_LARCH_SOP_SR", Const, 19}, + {"R_LARCH_SOP_SUB", Const, 19}, + {"R_LARCH_SUB16", Const, 19}, + {"R_LARCH_SUB24", Const, 19}, + {"R_LARCH_SUB32", Const, 19}, + {"R_LARCH_SUB6", Const, 22}, + {"R_LARCH_SUB64", Const, 19}, + {"R_LARCH_SUB8", Const, 19}, + {"R_LARCH_SUB_ULEB128", Const, 22}, + {"R_LARCH_TLS_DTPMOD32", Const, 19}, + {"R_LARCH_TLS_DTPMOD64", Const, 19}, + {"R_LARCH_TLS_DTPREL32", Const, 19}, + {"R_LARCH_TLS_DTPREL64", Const, 19}, + {"R_LARCH_TLS_GD_HI20", Const, 20}, + {"R_LARCH_TLS_GD_PC_HI20", Const, 20}, + {"R_LARCH_TLS_IE64_HI12", Const, 20}, + {"R_LARCH_TLS_IE64_LO20", Const, 20}, + {"R_LARCH_TLS_IE64_PC_HI12", Const, 20}, + {"R_LARCH_TLS_IE64_PC_LO20", Const, 20}, + {"R_LARCH_TLS_IE_HI20", Const, 20}, + {"R_LARCH_TLS_IE_LO12", Const, 20}, + {"R_LARCH_TLS_IE_PC_HI20", Const, 20}, + {"R_LARCH_TLS_IE_PC_LO12", Const, 20}, + {"R_LARCH_TLS_LD_HI20", Const, 20}, + {"R_LARCH_TLS_LD_PC_HI20", Const, 20}, + {"R_LARCH_TLS_LE64_HI12", Const, 20}, + {"R_LARCH_TLS_LE64_LO20", Const, 20}, + {"R_LARCH_TLS_LE_HI20", Const, 20}, + {"R_LARCH_TLS_LE_LO12", Const, 20}, + {"R_LARCH_TLS_TPREL32", Const, 19}, + {"R_LARCH_TLS_TPREL64", Const, 19}, + {"R_MIPS", Type, 6}, + {"R_MIPS_16", Const, 6}, + {"R_MIPS_26", Const, 6}, + {"R_MIPS_32", Const, 6}, + {"R_MIPS_64", Const, 6}, + {"R_MIPS_ADD_IMMEDIATE", Const, 6}, + {"R_MIPS_CALL16", Const, 6}, + {"R_MIPS_CALL_HI16", Const, 6}, + {"R_MIPS_CALL_LO16", Const, 6}, + {"R_MIPS_DELETE", Const, 6}, + {"R_MIPS_GOT16", Const, 6}, + {"R_MIPS_GOT_DISP", Const, 6}, + {"R_MIPS_GOT_HI16", Const, 6}, + {"R_MIPS_GOT_LO16", Const, 6}, + {"R_MIPS_GOT_OFST", Const, 6}, + {"R_MIPS_GOT_PAGE", Const, 6}, + {"R_MIPS_GPREL16", Const, 6}, + {"R_MIPS_GPREL32", Const, 6}, + {"R_MIPS_HI16", Const, 6}, + {"R_MIPS_HIGHER", Const, 6}, + {"R_MIPS_HIGHEST", Const, 6}, + {"R_MIPS_INSERT_A", Const, 6}, + {"R_MIPS_INSERT_B", Const, 6}, + {"R_MIPS_JALR", Const, 6}, + {"R_MIPS_LITERAL", Const, 6}, + {"R_MIPS_LO16", Const, 6}, + {"R_MIPS_NONE", Const, 6}, + {"R_MIPS_PC16", Const, 6}, + {"R_MIPS_PC32", Const, 22}, + {"R_MIPS_PJUMP", Const, 6}, + {"R_MIPS_REL16", Const, 6}, + {"R_MIPS_REL32", Const, 6}, + {"R_MIPS_RELGOT", Const, 6}, + {"R_MIPS_SCN_DISP", Const, 6}, + {"R_MIPS_SHIFT5", Const, 6}, + {"R_MIPS_SHIFT6", Const, 6}, + {"R_MIPS_SUB", Const, 6}, + {"R_MIPS_TLS_DTPMOD32", Const, 6}, + {"R_MIPS_TLS_DTPMOD64", Const, 6}, + {"R_MIPS_TLS_DTPREL32", Const, 6}, + {"R_MIPS_TLS_DTPREL64", Const, 6}, + {"R_MIPS_TLS_DTPREL_HI16", Const, 6}, + {"R_MIPS_TLS_DTPREL_LO16", Const, 6}, + {"R_MIPS_TLS_GD", Const, 6}, + {"R_MIPS_TLS_GOTTPREL", Const, 6}, + {"R_MIPS_TLS_LDM", Const, 6}, + {"R_MIPS_TLS_TPREL32", Const, 6}, + {"R_MIPS_TLS_TPREL64", Const, 6}, + {"R_MIPS_TLS_TPREL_HI16", Const, 6}, + {"R_MIPS_TLS_TPREL_LO16", Const, 6}, + {"R_PPC", Type, 0}, + {"R_PPC64", Type, 5}, + {"R_PPC64_ADDR14", Const, 5}, + {"R_PPC64_ADDR14_BRNTAKEN", Const, 5}, + {"R_PPC64_ADDR14_BRTAKEN", Const, 5}, + {"R_PPC64_ADDR16", Const, 5}, + {"R_PPC64_ADDR16_DS", Const, 5}, + {"R_PPC64_ADDR16_HA", Const, 5}, + {"R_PPC64_ADDR16_HI", Const, 5}, + {"R_PPC64_ADDR16_HIGH", Const, 10}, + {"R_PPC64_ADDR16_HIGHA", Const, 10}, + {"R_PPC64_ADDR16_HIGHER", Const, 5}, + {"R_PPC64_ADDR16_HIGHER34", Const, 20}, + {"R_PPC64_ADDR16_HIGHERA", Const, 5}, + {"R_PPC64_ADDR16_HIGHERA34", Const, 20}, + {"R_PPC64_ADDR16_HIGHEST", Const, 5}, + {"R_PPC64_ADDR16_HIGHEST34", Const, 20}, + {"R_PPC64_ADDR16_HIGHESTA", Const, 5}, + {"R_PPC64_ADDR16_HIGHESTA34", Const, 20}, + {"R_PPC64_ADDR16_LO", Const, 5}, + {"R_PPC64_ADDR16_LO_DS", Const, 5}, + {"R_PPC64_ADDR24", Const, 5}, + {"R_PPC64_ADDR32", Const, 5}, + {"R_PPC64_ADDR64", Const, 5}, + {"R_PPC64_ADDR64_LOCAL", Const, 10}, + {"R_PPC64_COPY", Const, 20}, + {"R_PPC64_D28", Const, 20}, + {"R_PPC64_D34", Const, 20}, + {"R_PPC64_D34_HA30", Const, 20}, + {"R_PPC64_D34_HI30", Const, 20}, + {"R_PPC64_D34_LO", Const, 20}, + {"R_PPC64_DTPMOD64", Const, 5}, + {"R_PPC64_DTPREL16", Const, 5}, + {"R_PPC64_DTPREL16_DS", Const, 5}, + {"R_PPC64_DTPREL16_HA", Const, 5}, + {"R_PPC64_DTPREL16_HI", Const, 5}, + {"R_PPC64_DTPREL16_HIGH", Const, 10}, + {"R_PPC64_DTPREL16_HIGHA", Const, 10}, + {"R_PPC64_DTPREL16_HIGHER", Const, 5}, + {"R_PPC64_DTPREL16_HIGHERA", Const, 5}, + {"R_PPC64_DTPREL16_HIGHEST", Const, 5}, + {"R_PPC64_DTPREL16_HIGHESTA", Const, 5}, + {"R_PPC64_DTPREL16_LO", Const, 5}, + {"R_PPC64_DTPREL16_LO_DS", Const, 5}, + {"R_PPC64_DTPREL34", Const, 20}, + {"R_PPC64_DTPREL64", Const, 5}, + {"R_PPC64_ENTRY", Const, 10}, + {"R_PPC64_GLOB_DAT", Const, 20}, + {"R_PPC64_GNU_VTENTRY", Const, 20}, + {"R_PPC64_GNU_VTINHERIT", Const, 20}, + {"R_PPC64_GOT16", Const, 5}, + {"R_PPC64_GOT16_DS", Const, 5}, + {"R_PPC64_GOT16_HA", Const, 5}, + {"R_PPC64_GOT16_HI", Const, 5}, + {"R_PPC64_GOT16_LO", Const, 5}, + {"R_PPC64_GOT16_LO_DS", Const, 5}, + {"R_PPC64_GOT_DTPREL16_DS", Const, 5}, + {"R_PPC64_GOT_DTPREL16_HA", Const, 5}, + {"R_PPC64_GOT_DTPREL16_HI", Const, 5}, + {"R_PPC64_GOT_DTPREL16_LO_DS", Const, 5}, + {"R_PPC64_GOT_DTPREL_PCREL34", Const, 20}, + {"R_PPC64_GOT_PCREL34", Const, 20}, + {"R_PPC64_GOT_TLSGD16", Const, 5}, + {"R_PPC64_GOT_TLSGD16_HA", Const, 5}, + {"R_PPC64_GOT_TLSGD16_HI", Const, 5}, + {"R_PPC64_GOT_TLSGD16_LO", Const, 5}, + {"R_PPC64_GOT_TLSGD_PCREL34", Const, 20}, + {"R_PPC64_GOT_TLSLD16", Const, 5}, + {"R_PPC64_GOT_TLSLD16_HA", Const, 5}, + {"R_PPC64_GOT_TLSLD16_HI", Const, 5}, + {"R_PPC64_GOT_TLSLD16_LO", Const, 5}, + {"R_PPC64_GOT_TLSLD_PCREL34", Const, 20}, + {"R_PPC64_GOT_TPREL16_DS", Const, 5}, + {"R_PPC64_GOT_TPREL16_HA", Const, 5}, + {"R_PPC64_GOT_TPREL16_HI", Const, 5}, + {"R_PPC64_GOT_TPREL16_LO_DS", Const, 5}, + {"R_PPC64_GOT_TPREL_PCREL34", Const, 20}, + {"R_PPC64_IRELATIVE", Const, 10}, + {"R_PPC64_JMP_IREL", Const, 10}, + {"R_PPC64_JMP_SLOT", Const, 5}, + {"R_PPC64_NONE", Const, 5}, + {"R_PPC64_PCREL28", Const, 20}, + {"R_PPC64_PCREL34", Const, 20}, + {"R_PPC64_PCREL_OPT", Const, 20}, + {"R_PPC64_PLT16_HA", Const, 20}, + {"R_PPC64_PLT16_HI", Const, 20}, + {"R_PPC64_PLT16_LO", Const, 20}, + {"R_PPC64_PLT16_LO_DS", Const, 10}, + {"R_PPC64_PLT32", Const, 20}, + {"R_PPC64_PLT64", Const, 20}, + {"R_PPC64_PLTCALL", Const, 20}, + {"R_PPC64_PLTCALL_NOTOC", Const, 20}, + {"R_PPC64_PLTGOT16", Const, 10}, + {"R_PPC64_PLTGOT16_DS", Const, 10}, + {"R_PPC64_PLTGOT16_HA", Const, 10}, + {"R_PPC64_PLTGOT16_HI", Const, 10}, + {"R_PPC64_PLTGOT16_LO", Const, 10}, + {"R_PPC64_PLTGOT_LO_DS", Const, 10}, + {"R_PPC64_PLTREL32", Const, 20}, + {"R_PPC64_PLTREL64", Const, 20}, + {"R_PPC64_PLTSEQ", Const, 20}, + {"R_PPC64_PLTSEQ_NOTOC", Const, 20}, + {"R_PPC64_PLT_PCREL34", Const, 20}, + {"R_PPC64_PLT_PCREL34_NOTOC", Const, 20}, + {"R_PPC64_REL14", Const, 5}, + {"R_PPC64_REL14_BRNTAKEN", Const, 5}, + {"R_PPC64_REL14_BRTAKEN", Const, 5}, + {"R_PPC64_REL16", Const, 5}, + {"R_PPC64_REL16DX_HA", Const, 10}, + {"R_PPC64_REL16_HA", Const, 5}, + {"R_PPC64_REL16_HI", Const, 5}, + {"R_PPC64_REL16_HIGH", Const, 20}, + {"R_PPC64_REL16_HIGHA", Const, 20}, + {"R_PPC64_REL16_HIGHER", Const, 20}, + {"R_PPC64_REL16_HIGHER34", Const, 20}, + {"R_PPC64_REL16_HIGHERA", Const, 20}, + {"R_PPC64_REL16_HIGHERA34", Const, 20}, + {"R_PPC64_REL16_HIGHEST", Const, 20}, + {"R_PPC64_REL16_HIGHEST34", Const, 20}, + {"R_PPC64_REL16_HIGHESTA", Const, 20}, + {"R_PPC64_REL16_HIGHESTA34", Const, 20}, + {"R_PPC64_REL16_LO", Const, 5}, + {"R_PPC64_REL24", Const, 5}, + {"R_PPC64_REL24_NOTOC", Const, 10}, + {"R_PPC64_REL24_P9NOTOC", Const, 21}, + {"R_PPC64_REL30", Const, 20}, + {"R_PPC64_REL32", Const, 5}, + {"R_PPC64_REL64", Const, 5}, + {"R_PPC64_RELATIVE", Const, 18}, + {"R_PPC64_SECTOFF", Const, 20}, + {"R_PPC64_SECTOFF_DS", Const, 10}, + {"R_PPC64_SECTOFF_HA", Const, 20}, + {"R_PPC64_SECTOFF_HI", Const, 20}, + {"R_PPC64_SECTOFF_LO", Const, 20}, + {"R_PPC64_SECTOFF_LO_DS", Const, 10}, + {"R_PPC64_TLS", Const, 5}, + {"R_PPC64_TLSGD", Const, 5}, + {"R_PPC64_TLSLD", Const, 5}, + {"R_PPC64_TOC", Const, 5}, + {"R_PPC64_TOC16", Const, 5}, + {"R_PPC64_TOC16_DS", Const, 5}, + {"R_PPC64_TOC16_HA", Const, 5}, + {"R_PPC64_TOC16_HI", Const, 5}, + {"R_PPC64_TOC16_LO", Const, 5}, + {"R_PPC64_TOC16_LO_DS", Const, 5}, + {"R_PPC64_TOCSAVE", Const, 10}, + {"R_PPC64_TPREL16", Const, 5}, + {"R_PPC64_TPREL16_DS", Const, 5}, + {"R_PPC64_TPREL16_HA", Const, 5}, + {"R_PPC64_TPREL16_HI", Const, 5}, + {"R_PPC64_TPREL16_HIGH", Const, 10}, + {"R_PPC64_TPREL16_HIGHA", Const, 10}, + {"R_PPC64_TPREL16_HIGHER", Const, 5}, + {"R_PPC64_TPREL16_HIGHERA", Const, 5}, + {"R_PPC64_TPREL16_HIGHEST", Const, 5}, + {"R_PPC64_TPREL16_HIGHESTA", Const, 5}, + {"R_PPC64_TPREL16_LO", Const, 5}, + {"R_PPC64_TPREL16_LO_DS", Const, 5}, + {"R_PPC64_TPREL34", Const, 20}, + {"R_PPC64_TPREL64", Const, 5}, + {"R_PPC64_UADDR16", Const, 20}, + {"R_PPC64_UADDR32", Const, 20}, + {"R_PPC64_UADDR64", Const, 20}, + {"R_PPC_ADDR14", Const, 0}, + {"R_PPC_ADDR14_BRNTAKEN", Const, 0}, + {"R_PPC_ADDR14_BRTAKEN", Const, 0}, + {"R_PPC_ADDR16", Const, 0}, + {"R_PPC_ADDR16_HA", Const, 0}, + {"R_PPC_ADDR16_HI", Const, 0}, + {"R_PPC_ADDR16_LO", Const, 0}, + {"R_PPC_ADDR24", Const, 0}, + {"R_PPC_ADDR32", Const, 0}, + {"R_PPC_COPY", Const, 0}, + {"R_PPC_DTPMOD32", Const, 0}, + {"R_PPC_DTPREL16", Const, 0}, + {"R_PPC_DTPREL16_HA", Const, 0}, + {"R_PPC_DTPREL16_HI", Const, 0}, + {"R_PPC_DTPREL16_LO", Const, 0}, + {"R_PPC_DTPREL32", Const, 0}, + {"R_PPC_EMB_BIT_FLD", Const, 0}, + {"R_PPC_EMB_MRKREF", Const, 0}, + {"R_PPC_EMB_NADDR16", Const, 0}, + {"R_PPC_EMB_NADDR16_HA", Const, 0}, + {"R_PPC_EMB_NADDR16_HI", Const, 0}, + {"R_PPC_EMB_NADDR16_LO", Const, 0}, + {"R_PPC_EMB_NADDR32", Const, 0}, + {"R_PPC_EMB_RELSDA", Const, 0}, + {"R_PPC_EMB_RELSEC16", Const, 0}, + {"R_PPC_EMB_RELST_HA", Const, 0}, + {"R_PPC_EMB_RELST_HI", Const, 0}, + {"R_PPC_EMB_RELST_LO", Const, 0}, + {"R_PPC_EMB_SDA21", Const, 0}, + {"R_PPC_EMB_SDA2I16", Const, 0}, + {"R_PPC_EMB_SDA2REL", Const, 0}, + {"R_PPC_EMB_SDAI16", Const, 0}, + {"R_PPC_GLOB_DAT", Const, 0}, + {"R_PPC_GOT16", Const, 0}, + {"R_PPC_GOT16_HA", Const, 0}, + {"R_PPC_GOT16_HI", Const, 0}, + {"R_PPC_GOT16_LO", Const, 0}, + {"R_PPC_GOT_TLSGD16", Const, 0}, + {"R_PPC_GOT_TLSGD16_HA", Const, 0}, + {"R_PPC_GOT_TLSGD16_HI", Const, 0}, + {"R_PPC_GOT_TLSGD16_LO", Const, 0}, + {"R_PPC_GOT_TLSLD16", Const, 0}, + {"R_PPC_GOT_TLSLD16_HA", Const, 0}, + {"R_PPC_GOT_TLSLD16_HI", Const, 0}, + {"R_PPC_GOT_TLSLD16_LO", Const, 0}, + {"R_PPC_GOT_TPREL16", Const, 0}, + {"R_PPC_GOT_TPREL16_HA", Const, 0}, + {"R_PPC_GOT_TPREL16_HI", Const, 0}, + {"R_PPC_GOT_TPREL16_LO", Const, 0}, + {"R_PPC_JMP_SLOT", Const, 0}, + {"R_PPC_LOCAL24PC", Const, 0}, + {"R_PPC_NONE", Const, 0}, + {"R_PPC_PLT16_HA", Const, 0}, + {"R_PPC_PLT16_HI", Const, 0}, + {"R_PPC_PLT16_LO", Const, 0}, + {"R_PPC_PLT32", Const, 0}, + {"R_PPC_PLTREL24", Const, 0}, + {"R_PPC_PLTREL32", Const, 0}, + {"R_PPC_REL14", Const, 0}, + {"R_PPC_REL14_BRNTAKEN", Const, 0}, + {"R_PPC_REL14_BRTAKEN", Const, 0}, + {"R_PPC_REL24", Const, 0}, + {"R_PPC_REL32", Const, 0}, + {"R_PPC_RELATIVE", Const, 0}, + {"R_PPC_SDAREL16", Const, 0}, + {"R_PPC_SECTOFF", Const, 0}, + {"R_PPC_SECTOFF_HA", Const, 0}, + {"R_PPC_SECTOFF_HI", Const, 0}, + {"R_PPC_SECTOFF_LO", Const, 0}, + {"R_PPC_TLS", Const, 0}, + {"R_PPC_TPREL16", Const, 0}, + {"R_PPC_TPREL16_HA", Const, 0}, + {"R_PPC_TPREL16_HI", Const, 0}, + {"R_PPC_TPREL16_LO", Const, 0}, + {"R_PPC_TPREL32", Const, 0}, + {"R_PPC_UADDR16", Const, 0}, + {"R_PPC_UADDR32", Const, 0}, + {"R_RISCV", Type, 11}, + {"R_RISCV_32", Const, 11}, + {"R_RISCV_32_PCREL", Const, 12}, + {"R_RISCV_64", Const, 11}, + {"R_RISCV_ADD16", Const, 11}, + {"R_RISCV_ADD32", Const, 11}, + {"R_RISCV_ADD64", Const, 11}, + {"R_RISCV_ADD8", Const, 11}, + {"R_RISCV_ALIGN", Const, 11}, + {"R_RISCV_BRANCH", Const, 11}, + {"R_RISCV_CALL", Const, 11}, + {"R_RISCV_CALL_PLT", Const, 11}, + {"R_RISCV_COPY", Const, 11}, + {"R_RISCV_GNU_VTENTRY", Const, 11}, + {"R_RISCV_GNU_VTINHERIT", Const, 11}, + {"R_RISCV_GOT_HI20", Const, 11}, + {"R_RISCV_GPREL_I", Const, 11}, + {"R_RISCV_GPREL_S", Const, 11}, + {"R_RISCV_HI20", Const, 11}, + {"R_RISCV_JAL", Const, 11}, + {"R_RISCV_JUMP_SLOT", Const, 11}, + {"R_RISCV_LO12_I", Const, 11}, + {"R_RISCV_LO12_S", Const, 11}, + {"R_RISCV_NONE", Const, 11}, + {"R_RISCV_PCREL_HI20", Const, 11}, + {"R_RISCV_PCREL_LO12_I", Const, 11}, + {"R_RISCV_PCREL_LO12_S", Const, 11}, + {"R_RISCV_RELATIVE", Const, 11}, + {"R_RISCV_RELAX", Const, 11}, + {"R_RISCV_RVC_BRANCH", Const, 11}, + {"R_RISCV_RVC_JUMP", Const, 11}, + {"R_RISCV_RVC_LUI", Const, 11}, + {"R_RISCV_SET16", Const, 11}, + {"R_RISCV_SET32", Const, 11}, + {"R_RISCV_SET6", Const, 11}, + {"R_RISCV_SET8", Const, 11}, + {"R_RISCV_SUB16", Const, 11}, + {"R_RISCV_SUB32", Const, 11}, + {"R_RISCV_SUB6", Const, 11}, + {"R_RISCV_SUB64", Const, 11}, + {"R_RISCV_SUB8", Const, 11}, + {"R_RISCV_TLS_DTPMOD32", Const, 11}, + {"R_RISCV_TLS_DTPMOD64", Const, 11}, + {"R_RISCV_TLS_DTPREL32", Const, 11}, + {"R_RISCV_TLS_DTPREL64", Const, 11}, + {"R_RISCV_TLS_GD_HI20", Const, 11}, + {"R_RISCV_TLS_GOT_HI20", Const, 11}, + {"R_RISCV_TLS_TPREL32", Const, 11}, + {"R_RISCV_TLS_TPREL64", Const, 11}, + {"R_RISCV_TPREL_ADD", Const, 11}, + {"R_RISCV_TPREL_HI20", Const, 11}, + {"R_RISCV_TPREL_I", Const, 11}, + {"R_RISCV_TPREL_LO12_I", Const, 11}, + {"R_RISCV_TPREL_LO12_S", Const, 11}, + {"R_RISCV_TPREL_S", Const, 11}, + {"R_SPARC", Type, 0}, + {"R_SPARC_10", Const, 0}, + {"R_SPARC_11", Const, 0}, + {"R_SPARC_13", Const, 0}, + {"R_SPARC_16", Const, 0}, + {"R_SPARC_22", Const, 0}, + {"R_SPARC_32", Const, 0}, + {"R_SPARC_5", Const, 0}, + {"R_SPARC_6", Const, 0}, + {"R_SPARC_64", Const, 0}, + {"R_SPARC_7", Const, 0}, + {"R_SPARC_8", Const, 0}, + {"R_SPARC_COPY", Const, 0}, + {"R_SPARC_DISP16", Const, 0}, + {"R_SPARC_DISP32", Const, 0}, + {"R_SPARC_DISP64", Const, 0}, + {"R_SPARC_DISP8", Const, 0}, + {"R_SPARC_GLOB_DAT", Const, 0}, + {"R_SPARC_GLOB_JMP", Const, 0}, + {"R_SPARC_GOT10", Const, 0}, + {"R_SPARC_GOT13", Const, 0}, + {"R_SPARC_GOT22", Const, 0}, + {"R_SPARC_H44", Const, 0}, + {"R_SPARC_HH22", Const, 0}, + {"R_SPARC_HI22", Const, 0}, + {"R_SPARC_HIPLT22", Const, 0}, + {"R_SPARC_HIX22", Const, 0}, + {"R_SPARC_HM10", Const, 0}, + {"R_SPARC_JMP_SLOT", Const, 0}, + {"R_SPARC_L44", Const, 0}, + {"R_SPARC_LM22", Const, 0}, + {"R_SPARC_LO10", Const, 0}, + {"R_SPARC_LOPLT10", Const, 0}, + {"R_SPARC_LOX10", Const, 0}, + {"R_SPARC_M44", Const, 0}, + {"R_SPARC_NONE", Const, 0}, + {"R_SPARC_OLO10", Const, 0}, + {"R_SPARC_PC10", Const, 0}, + {"R_SPARC_PC22", Const, 0}, + {"R_SPARC_PCPLT10", Const, 0}, + {"R_SPARC_PCPLT22", Const, 0}, + {"R_SPARC_PCPLT32", Const, 0}, + {"R_SPARC_PC_HH22", Const, 0}, + {"R_SPARC_PC_HM10", Const, 0}, + {"R_SPARC_PC_LM22", Const, 0}, + {"R_SPARC_PLT32", Const, 0}, + {"R_SPARC_PLT64", Const, 0}, + {"R_SPARC_REGISTER", Const, 0}, + {"R_SPARC_RELATIVE", Const, 0}, + {"R_SPARC_UA16", Const, 0}, + {"R_SPARC_UA32", Const, 0}, + {"R_SPARC_UA64", Const, 0}, + {"R_SPARC_WDISP16", Const, 0}, + {"R_SPARC_WDISP19", Const, 0}, + {"R_SPARC_WDISP22", Const, 0}, + {"R_SPARC_WDISP30", Const, 0}, + {"R_SPARC_WPLT30", Const, 0}, + {"R_SYM32", Func, 0}, + {"R_SYM64", Func, 0}, + {"R_TYPE32", Func, 0}, + {"R_TYPE64", Func, 0}, + {"R_X86_64", Type, 0}, + {"R_X86_64_16", Const, 0}, + {"R_X86_64_32", Const, 0}, + {"R_X86_64_32S", Const, 0}, + {"R_X86_64_64", Const, 0}, + {"R_X86_64_8", Const, 0}, + {"R_X86_64_COPY", Const, 0}, + {"R_X86_64_DTPMOD64", Const, 0}, + {"R_X86_64_DTPOFF32", Const, 0}, + {"R_X86_64_DTPOFF64", Const, 0}, + {"R_X86_64_GLOB_DAT", Const, 0}, + {"R_X86_64_GOT32", Const, 0}, + {"R_X86_64_GOT64", Const, 10}, + {"R_X86_64_GOTOFF64", Const, 10}, + {"R_X86_64_GOTPC32", Const, 10}, + {"R_X86_64_GOTPC32_TLSDESC", Const, 10}, + {"R_X86_64_GOTPC64", Const, 10}, + {"R_X86_64_GOTPCREL", Const, 0}, + {"R_X86_64_GOTPCREL64", Const, 10}, + {"R_X86_64_GOTPCRELX", Const, 10}, + {"R_X86_64_GOTPLT64", Const, 10}, + {"R_X86_64_GOTTPOFF", Const, 0}, + {"R_X86_64_IRELATIVE", Const, 10}, + {"R_X86_64_JMP_SLOT", Const, 0}, + {"R_X86_64_NONE", Const, 0}, + {"R_X86_64_PC16", Const, 0}, + {"R_X86_64_PC32", Const, 0}, + {"R_X86_64_PC32_BND", Const, 10}, + {"R_X86_64_PC64", Const, 10}, + {"R_X86_64_PC8", Const, 0}, + {"R_X86_64_PLT32", Const, 0}, + {"R_X86_64_PLT32_BND", Const, 10}, + {"R_X86_64_PLTOFF64", Const, 10}, + {"R_X86_64_RELATIVE", Const, 0}, + {"R_X86_64_RELATIVE64", Const, 10}, + {"R_X86_64_REX_GOTPCRELX", Const, 10}, + {"R_X86_64_SIZE32", Const, 10}, + {"R_X86_64_SIZE64", Const, 10}, + {"R_X86_64_TLSDESC", Const, 10}, + {"R_X86_64_TLSDESC_CALL", Const, 10}, + {"R_X86_64_TLSGD", Const, 0}, + {"R_X86_64_TLSLD", Const, 0}, + {"R_X86_64_TPOFF32", Const, 0}, + {"R_X86_64_TPOFF64", Const, 0}, + {"Rel32", Type, 0}, + {"Rel32.Info", Field, 0}, + {"Rel32.Off", Field, 0}, + {"Rel64", Type, 0}, + {"Rel64.Info", Field, 0}, + {"Rel64.Off", Field, 0}, + {"Rela32", Type, 0}, + {"Rela32.Addend", Field, 0}, + {"Rela32.Info", Field, 0}, + {"Rela32.Off", Field, 0}, + {"Rela64", Type, 0}, + {"Rela64.Addend", Field, 0}, + {"Rela64.Info", Field, 0}, + {"Rela64.Off", Field, 0}, + {"SHF_ALLOC", Const, 0}, + {"SHF_COMPRESSED", Const, 6}, + {"SHF_EXECINSTR", Const, 0}, + {"SHF_GROUP", Const, 0}, + {"SHF_INFO_LINK", Const, 0}, + {"SHF_LINK_ORDER", Const, 0}, + {"SHF_MASKOS", Const, 0}, + {"SHF_MASKPROC", Const, 0}, + {"SHF_MERGE", Const, 0}, + {"SHF_OS_NONCONFORMING", Const, 0}, + {"SHF_STRINGS", Const, 0}, + {"SHF_TLS", Const, 0}, + {"SHF_WRITE", Const, 0}, + {"SHN_ABS", Const, 0}, + {"SHN_COMMON", Const, 0}, + {"SHN_HIOS", Const, 0}, + {"SHN_HIPROC", Const, 0}, + {"SHN_HIRESERVE", Const, 0}, + {"SHN_LOOS", Const, 0}, + {"SHN_LOPROC", Const, 0}, + {"SHN_LORESERVE", Const, 0}, + {"SHN_UNDEF", Const, 0}, + {"SHN_XINDEX", Const, 0}, + {"SHT_DYNAMIC", Const, 0}, + {"SHT_DYNSYM", Const, 0}, + {"SHT_FINI_ARRAY", Const, 0}, + {"SHT_GNU_ATTRIBUTES", Const, 0}, + {"SHT_GNU_HASH", Const, 0}, + {"SHT_GNU_LIBLIST", Const, 0}, + {"SHT_GNU_VERDEF", Const, 0}, + {"SHT_GNU_VERNEED", Const, 0}, + {"SHT_GNU_VERSYM", Const, 0}, + {"SHT_GROUP", Const, 0}, + {"SHT_HASH", Const, 0}, + {"SHT_HIOS", Const, 0}, + {"SHT_HIPROC", Const, 0}, + {"SHT_HIUSER", Const, 0}, + {"SHT_INIT_ARRAY", Const, 0}, + {"SHT_LOOS", Const, 0}, + {"SHT_LOPROC", Const, 0}, + {"SHT_LOUSER", Const, 0}, + {"SHT_MIPS_ABIFLAGS", Const, 17}, + {"SHT_NOBITS", Const, 0}, + {"SHT_NOTE", Const, 0}, + {"SHT_NULL", Const, 0}, + {"SHT_PREINIT_ARRAY", Const, 0}, + {"SHT_PROGBITS", Const, 0}, + {"SHT_REL", Const, 0}, + {"SHT_RELA", Const, 0}, + {"SHT_SHLIB", Const, 0}, + {"SHT_STRTAB", Const, 0}, + {"SHT_SYMTAB", Const, 0}, + {"SHT_SYMTAB_SHNDX", Const, 0}, + {"STB_GLOBAL", Const, 0}, + {"STB_HIOS", Const, 0}, + {"STB_HIPROC", Const, 0}, + {"STB_LOCAL", Const, 0}, + {"STB_LOOS", Const, 0}, + {"STB_LOPROC", Const, 0}, + {"STB_WEAK", Const, 0}, + {"STT_COMMON", Const, 0}, + {"STT_FILE", Const, 0}, + {"STT_FUNC", Const, 0}, + {"STT_HIOS", Const, 0}, + {"STT_HIPROC", Const, 0}, + {"STT_LOOS", Const, 0}, + {"STT_LOPROC", Const, 0}, + {"STT_NOTYPE", Const, 0}, + {"STT_OBJECT", Const, 0}, + {"STT_SECTION", Const, 0}, + {"STT_TLS", Const, 0}, + {"STV_DEFAULT", Const, 0}, + {"STV_HIDDEN", Const, 0}, + {"STV_INTERNAL", Const, 0}, + {"STV_PROTECTED", Const, 0}, + {"ST_BIND", Func, 0}, + {"ST_INFO", Func, 0}, + {"ST_TYPE", Func, 0}, + {"ST_VISIBILITY", Func, 0}, + {"Section", Type, 0}, + {"Section.ReaderAt", Field, 0}, + {"Section.SectionHeader", Field, 0}, + {"Section32", Type, 0}, + {"Section32.Addr", Field, 0}, + {"Section32.Addralign", Field, 0}, + {"Section32.Entsize", Field, 0}, + {"Section32.Flags", Field, 0}, + {"Section32.Info", Field, 0}, + {"Section32.Link", Field, 0}, + {"Section32.Name", Field, 0}, + {"Section32.Off", Field, 0}, + {"Section32.Size", Field, 0}, + {"Section32.Type", Field, 0}, + {"Section64", Type, 0}, + {"Section64.Addr", Field, 0}, + {"Section64.Addralign", Field, 0}, + {"Section64.Entsize", Field, 0}, + {"Section64.Flags", Field, 0}, + {"Section64.Info", Field, 0}, + {"Section64.Link", Field, 0}, + {"Section64.Name", Field, 0}, + {"Section64.Off", Field, 0}, + {"Section64.Size", Field, 0}, + {"Section64.Type", Field, 0}, + {"SectionFlag", Type, 0}, + {"SectionHeader", Type, 0}, + {"SectionHeader.Addr", Field, 0}, + {"SectionHeader.Addralign", Field, 0}, + {"SectionHeader.Entsize", Field, 0}, + {"SectionHeader.FileSize", Field, 6}, + {"SectionHeader.Flags", Field, 0}, + {"SectionHeader.Info", Field, 0}, + {"SectionHeader.Link", Field, 0}, + {"SectionHeader.Name", Field, 0}, + {"SectionHeader.Offset", Field, 0}, + {"SectionHeader.Size", Field, 0}, + {"SectionHeader.Type", Field, 0}, + {"SectionIndex", Type, 0}, + {"SectionType", Type, 0}, + {"Sym32", Type, 0}, + {"Sym32.Info", Field, 0}, + {"Sym32.Name", Field, 0}, + {"Sym32.Other", Field, 0}, + {"Sym32.Shndx", Field, 0}, + {"Sym32.Size", Field, 0}, + {"Sym32.Value", Field, 0}, + {"Sym32Size", Const, 0}, + {"Sym64", Type, 0}, + {"Sym64.Info", Field, 0}, + {"Sym64.Name", Field, 0}, + {"Sym64.Other", Field, 0}, + {"Sym64.Shndx", Field, 0}, + {"Sym64.Size", Field, 0}, + {"Sym64.Value", Field, 0}, + {"Sym64Size", Const, 0}, + {"SymBind", Type, 0}, + {"SymType", Type, 0}, + {"SymVis", Type, 0}, + {"Symbol", Type, 0}, + {"Symbol.Info", Field, 0}, + {"Symbol.Library", Field, 13}, + {"Symbol.Name", Field, 0}, + {"Symbol.Other", Field, 0}, + {"Symbol.Section", Field, 0}, + {"Symbol.Size", Field, 0}, + {"Symbol.Value", Field, 0}, + {"Symbol.Version", Field, 13}, + {"Type", Type, 0}, + {"Version", Type, 0}, + }, + "debug/gosym": { + {"(*DecodingError).Error", Method, 0}, + {"(*LineTable).LineToPC", Method, 0}, + {"(*LineTable).PCToLine", Method, 0}, + {"(*Sym).BaseName", Method, 0}, + {"(*Sym).PackageName", Method, 0}, + {"(*Sym).ReceiverName", Method, 0}, + {"(*Sym).Static", Method, 0}, + {"(*Table).LineToPC", Method, 0}, + {"(*Table).LookupFunc", Method, 0}, + {"(*Table).LookupSym", Method, 0}, + {"(*Table).PCToFunc", Method, 0}, + {"(*Table).PCToLine", Method, 0}, + {"(*Table).SymByAddr", Method, 0}, + {"(*UnknownLineError).Error", Method, 0}, + {"(Func).BaseName", Method, 0}, + {"(Func).PackageName", Method, 0}, + {"(Func).ReceiverName", Method, 0}, + {"(Func).Static", Method, 0}, + {"(UnknownFileError).Error", Method, 0}, + {"DecodingError", Type, 0}, + {"Func", Type, 0}, + {"Func.End", Field, 0}, + {"Func.Entry", Field, 0}, + {"Func.FrameSize", Field, 0}, + {"Func.LineTable", Field, 0}, + {"Func.Locals", Field, 0}, + {"Func.Obj", Field, 0}, + {"Func.Params", Field, 0}, + {"Func.Sym", Field, 0}, + {"LineTable", Type, 0}, + {"LineTable.Data", Field, 0}, + {"LineTable.Line", Field, 0}, + {"LineTable.PC", Field, 0}, + {"NewLineTable", Func, 0}, + {"NewTable", Func, 0}, + {"Obj", Type, 0}, + {"Obj.Funcs", Field, 0}, + {"Obj.Paths", Field, 0}, + {"Sym", Type, 0}, + {"Sym.Func", Field, 0}, + {"Sym.GoType", Field, 0}, + {"Sym.Name", Field, 0}, + {"Sym.Type", Field, 0}, + {"Sym.Value", Field, 0}, + {"Table", Type, 0}, + {"Table.Files", Field, 0}, + {"Table.Funcs", Field, 0}, + {"Table.Objs", Field, 0}, + {"Table.Syms", Field, 0}, + {"UnknownFileError", Type, 0}, + {"UnknownLineError", Type, 0}, + {"UnknownLineError.File", Field, 0}, + {"UnknownLineError.Line", Field, 0}, + }, + "debug/macho": { + {"(*FatFile).Close", Method, 3}, + {"(*File).Close", Method, 0}, + {"(*File).DWARF", Method, 0}, + {"(*File).ImportedLibraries", Method, 0}, + {"(*File).ImportedSymbols", Method, 0}, + {"(*File).Section", Method, 0}, + {"(*File).Segment", Method, 0}, + {"(*FormatError).Error", Method, 0}, + {"(*Section).Data", Method, 0}, + {"(*Section).Open", Method, 0}, + {"(*Segment).Data", Method, 0}, + {"(*Segment).Open", Method, 0}, + {"(Cpu).GoString", Method, 0}, + {"(Cpu).String", Method, 0}, + {"(Dylib).Raw", Method, 0}, + {"(Dysymtab).Raw", Method, 0}, + {"(FatArch).Close", Method, 3}, + {"(FatArch).DWARF", Method, 3}, + {"(FatArch).ImportedLibraries", Method, 3}, + {"(FatArch).ImportedSymbols", Method, 3}, + {"(FatArch).Section", Method, 3}, + {"(FatArch).Segment", Method, 3}, + {"(LoadBytes).Raw", Method, 0}, + {"(LoadCmd).GoString", Method, 0}, + {"(LoadCmd).String", Method, 0}, + {"(RelocTypeARM).GoString", Method, 10}, + {"(RelocTypeARM).String", Method, 10}, + {"(RelocTypeARM64).GoString", Method, 10}, + {"(RelocTypeARM64).String", Method, 10}, + {"(RelocTypeGeneric).GoString", Method, 10}, + {"(RelocTypeGeneric).String", Method, 10}, + {"(RelocTypeX86_64).GoString", Method, 10}, + {"(RelocTypeX86_64).String", Method, 10}, + {"(Rpath).Raw", Method, 10}, + {"(Section).ReadAt", Method, 0}, + {"(Segment).Raw", Method, 0}, + {"(Segment).ReadAt", Method, 0}, + {"(Symtab).Raw", Method, 0}, + {"(Type).GoString", Method, 10}, + {"(Type).String", Method, 10}, + {"ARM64_RELOC_ADDEND", Const, 10}, + {"ARM64_RELOC_BRANCH26", Const, 10}, + {"ARM64_RELOC_GOT_LOAD_PAGE21", Const, 10}, + {"ARM64_RELOC_GOT_LOAD_PAGEOFF12", Const, 10}, + {"ARM64_RELOC_PAGE21", Const, 10}, + {"ARM64_RELOC_PAGEOFF12", Const, 10}, + {"ARM64_RELOC_POINTER_TO_GOT", Const, 10}, + {"ARM64_RELOC_SUBTRACTOR", Const, 10}, + {"ARM64_RELOC_TLVP_LOAD_PAGE21", Const, 10}, + {"ARM64_RELOC_TLVP_LOAD_PAGEOFF12", Const, 10}, + {"ARM64_RELOC_UNSIGNED", Const, 10}, + {"ARM_RELOC_BR24", Const, 10}, + {"ARM_RELOC_HALF", Const, 10}, + {"ARM_RELOC_HALF_SECTDIFF", Const, 10}, + {"ARM_RELOC_LOCAL_SECTDIFF", Const, 10}, + {"ARM_RELOC_PAIR", Const, 10}, + {"ARM_RELOC_PB_LA_PTR", Const, 10}, + {"ARM_RELOC_SECTDIFF", Const, 10}, + {"ARM_RELOC_VANILLA", Const, 10}, + {"ARM_THUMB_32BIT_BRANCH", Const, 10}, + {"ARM_THUMB_RELOC_BR22", Const, 10}, + {"Cpu", Type, 0}, + {"Cpu386", Const, 0}, + {"CpuAmd64", Const, 0}, + {"CpuArm", Const, 3}, + {"CpuArm64", Const, 11}, + {"CpuPpc", Const, 3}, + {"CpuPpc64", Const, 3}, + {"Dylib", Type, 0}, + {"Dylib.CompatVersion", Field, 0}, + {"Dylib.CurrentVersion", Field, 0}, + {"Dylib.LoadBytes", Field, 0}, + {"Dylib.Name", Field, 0}, + {"Dylib.Time", Field, 0}, + {"DylibCmd", Type, 0}, + {"DylibCmd.Cmd", Field, 0}, + {"DylibCmd.CompatVersion", Field, 0}, + {"DylibCmd.CurrentVersion", Field, 0}, + {"DylibCmd.Len", Field, 0}, + {"DylibCmd.Name", Field, 0}, + {"DylibCmd.Time", Field, 0}, + {"Dysymtab", Type, 0}, + {"Dysymtab.DysymtabCmd", Field, 0}, + {"Dysymtab.IndirectSyms", Field, 0}, + {"Dysymtab.LoadBytes", Field, 0}, + {"DysymtabCmd", Type, 0}, + {"DysymtabCmd.Cmd", Field, 0}, + {"DysymtabCmd.Extrefsymoff", Field, 0}, + {"DysymtabCmd.Extreloff", Field, 0}, + {"DysymtabCmd.Iextdefsym", Field, 0}, + {"DysymtabCmd.Ilocalsym", Field, 0}, + {"DysymtabCmd.Indirectsymoff", Field, 0}, + {"DysymtabCmd.Iundefsym", Field, 0}, + {"DysymtabCmd.Len", Field, 0}, + {"DysymtabCmd.Locreloff", Field, 0}, + {"DysymtabCmd.Modtaboff", Field, 0}, + {"DysymtabCmd.Nextdefsym", Field, 0}, + {"DysymtabCmd.Nextrefsyms", Field, 0}, + {"DysymtabCmd.Nextrel", Field, 0}, + {"DysymtabCmd.Nindirectsyms", Field, 0}, + {"DysymtabCmd.Nlocalsym", Field, 0}, + {"DysymtabCmd.Nlocrel", Field, 0}, + {"DysymtabCmd.Nmodtab", Field, 0}, + {"DysymtabCmd.Ntoc", Field, 0}, + {"DysymtabCmd.Nundefsym", Field, 0}, + {"DysymtabCmd.Tocoffset", Field, 0}, + {"ErrNotFat", Var, 3}, + {"FatArch", Type, 3}, + {"FatArch.FatArchHeader", Field, 3}, + {"FatArch.File", Field, 3}, + {"FatArchHeader", Type, 3}, + {"FatArchHeader.Align", Field, 3}, + {"FatArchHeader.Cpu", Field, 3}, + {"FatArchHeader.Offset", Field, 3}, + {"FatArchHeader.Size", Field, 3}, + {"FatArchHeader.SubCpu", Field, 3}, + {"FatFile", Type, 3}, + {"FatFile.Arches", Field, 3}, + {"FatFile.Magic", Field, 3}, + {"File", Type, 0}, + {"File.ByteOrder", Field, 0}, + {"File.Dysymtab", Field, 0}, + {"File.FileHeader", Field, 0}, + {"File.Loads", Field, 0}, + {"File.Sections", Field, 0}, + {"File.Symtab", Field, 0}, + {"FileHeader", Type, 0}, + {"FileHeader.Cmdsz", Field, 0}, + {"FileHeader.Cpu", Field, 0}, + {"FileHeader.Flags", Field, 0}, + {"FileHeader.Magic", Field, 0}, + {"FileHeader.Ncmd", Field, 0}, + {"FileHeader.SubCpu", Field, 0}, + {"FileHeader.Type", Field, 0}, + {"FlagAllModsBound", Const, 10}, + {"FlagAllowStackExecution", Const, 10}, + {"FlagAppExtensionSafe", Const, 10}, + {"FlagBindAtLoad", Const, 10}, + {"FlagBindsToWeak", Const, 10}, + {"FlagCanonical", Const, 10}, + {"FlagDeadStrippableDylib", Const, 10}, + {"FlagDyldLink", Const, 10}, + {"FlagForceFlat", Const, 10}, + {"FlagHasTLVDescriptors", Const, 10}, + {"FlagIncrLink", Const, 10}, + {"FlagLazyInit", Const, 10}, + {"FlagNoFixPrebinding", Const, 10}, + {"FlagNoHeapExecution", Const, 10}, + {"FlagNoMultiDefs", Const, 10}, + {"FlagNoReexportedDylibs", Const, 10}, + {"FlagNoUndefs", Const, 10}, + {"FlagPIE", Const, 10}, + {"FlagPrebindable", Const, 10}, + {"FlagPrebound", Const, 10}, + {"FlagRootSafe", Const, 10}, + {"FlagSetuidSafe", Const, 10}, + {"FlagSplitSegs", Const, 10}, + {"FlagSubsectionsViaSymbols", Const, 10}, + {"FlagTwoLevel", Const, 10}, + {"FlagWeakDefines", Const, 10}, + {"FormatError", Type, 0}, + {"GENERIC_RELOC_LOCAL_SECTDIFF", Const, 10}, + {"GENERIC_RELOC_PAIR", Const, 10}, + {"GENERIC_RELOC_PB_LA_PTR", Const, 10}, + {"GENERIC_RELOC_SECTDIFF", Const, 10}, + {"GENERIC_RELOC_TLV", Const, 10}, + {"GENERIC_RELOC_VANILLA", Const, 10}, + {"Load", Type, 0}, + {"LoadBytes", Type, 0}, + {"LoadCmd", Type, 0}, + {"LoadCmdDylib", Const, 0}, + {"LoadCmdDylinker", Const, 0}, + {"LoadCmdDysymtab", Const, 0}, + {"LoadCmdRpath", Const, 10}, + {"LoadCmdSegment", Const, 0}, + {"LoadCmdSegment64", Const, 0}, + {"LoadCmdSymtab", Const, 0}, + {"LoadCmdThread", Const, 0}, + {"LoadCmdUnixThread", Const, 0}, + {"Magic32", Const, 0}, + {"Magic64", Const, 0}, + {"MagicFat", Const, 3}, + {"NewFatFile", Func, 3}, + {"NewFile", Func, 0}, + {"Nlist32", Type, 0}, + {"Nlist32.Desc", Field, 0}, + {"Nlist32.Name", Field, 0}, + {"Nlist32.Sect", Field, 0}, + {"Nlist32.Type", Field, 0}, + {"Nlist32.Value", Field, 0}, + {"Nlist64", Type, 0}, + {"Nlist64.Desc", Field, 0}, + {"Nlist64.Name", Field, 0}, + {"Nlist64.Sect", Field, 0}, + {"Nlist64.Type", Field, 0}, + {"Nlist64.Value", Field, 0}, + {"Open", Func, 0}, + {"OpenFat", Func, 3}, + {"Regs386", Type, 0}, + {"Regs386.AX", Field, 0}, + {"Regs386.BP", Field, 0}, + {"Regs386.BX", Field, 0}, + {"Regs386.CS", Field, 0}, + {"Regs386.CX", Field, 0}, + {"Regs386.DI", Field, 0}, + {"Regs386.DS", Field, 0}, + {"Regs386.DX", Field, 0}, + {"Regs386.ES", Field, 0}, + {"Regs386.FLAGS", Field, 0}, + {"Regs386.FS", Field, 0}, + {"Regs386.GS", Field, 0}, + {"Regs386.IP", Field, 0}, + {"Regs386.SI", Field, 0}, + {"Regs386.SP", Field, 0}, + {"Regs386.SS", Field, 0}, + {"RegsAMD64", Type, 0}, + {"RegsAMD64.AX", Field, 0}, + {"RegsAMD64.BP", Field, 0}, + {"RegsAMD64.BX", Field, 0}, + {"RegsAMD64.CS", Field, 0}, + {"RegsAMD64.CX", Field, 0}, + {"RegsAMD64.DI", Field, 0}, + {"RegsAMD64.DX", Field, 0}, + {"RegsAMD64.FLAGS", Field, 0}, + {"RegsAMD64.FS", Field, 0}, + {"RegsAMD64.GS", Field, 0}, + {"RegsAMD64.IP", Field, 0}, + {"RegsAMD64.R10", Field, 0}, + {"RegsAMD64.R11", Field, 0}, + {"RegsAMD64.R12", Field, 0}, + {"RegsAMD64.R13", Field, 0}, + {"RegsAMD64.R14", Field, 0}, + {"RegsAMD64.R15", Field, 0}, + {"RegsAMD64.R8", Field, 0}, + {"RegsAMD64.R9", Field, 0}, + {"RegsAMD64.SI", Field, 0}, + {"RegsAMD64.SP", Field, 0}, + {"Reloc", Type, 10}, + {"Reloc.Addr", Field, 10}, + {"Reloc.Extern", Field, 10}, + {"Reloc.Len", Field, 10}, + {"Reloc.Pcrel", Field, 10}, + {"Reloc.Scattered", Field, 10}, + {"Reloc.Type", Field, 10}, + {"Reloc.Value", Field, 10}, + {"RelocTypeARM", Type, 10}, + {"RelocTypeARM64", Type, 10}, + {"RelocTypeGeneric", Type, 10}, + {"RelocTypeX86_64", Type, 10}, + {"Rpath", Type, 10}, + {"Rpath.LoadBytes", Field, 10}, + {"Rpath.Path", Field, 10}, + {"RpathCmd", Type, 10}, + {"RpathCmd.Cmd", Field, 10}, + {"RpathCmd.Len", Field, 10}, + {"RpathCmd.Path", Field, 10}, + {"Section", Type, 0}, + {"Section.ReaderAt", Field, 0}, + {"Section.Relocs", Field, 10}, + {"Section.SectionHeader", Field, 0}, + {"Section32", Type, 0}, + {"Section32.Addr", Field, 0}, + {"Section32.Align", Field, 0}, + {"Section32.Flags", Field, 0}, + {"Section32.Name", Field, 0}, + {"Section32.Nreloc", Field, 0}, + {"Section32.Offset", Field, 0}, + {"Section32.Reloff", Field, 0}, + {"Section32.Reserve1", Field, 0}, + {"Section32.Reserve2", Field, 0}, + {"Section32.Seg", Field, 0}, + {"Section32.Size", Field, 0}, + {"Section64", Type, 0}, + {"Section64.Addr", Field, 0}, + {"Section64.Align", Field, 0}, + {"Section64.Flags", Field, 0}, + {"Section64.Name", Field, 0}, + {"Section64.Nreloc", Field, 0}, + {"Section64.Offset", Field, 0}, + {"Section64.Reloff", Field, 0}, + {"Section64.Reserve1", Field, 0}, + {"Section64.Reserve2", Field, 0}, + {"Section64.Reserve3", Field, 0}, + {"Section64.Seg", Field, 0}, + {"Section64.Size", Field, 0}, + {"SectionHeader", Type, 0}, + {"SectionHeader.Addr", Field, 0}, + {"SectionHeader.Align", Field, 0}, + {"SectionHeader.Flags", Field, 0}, + {"SectionHeader.Name", Field, 0}, + {"SectionHeader.Nreloc", Field, 0}, + {"SectionHeader.Offset", Field, 0}, + {"SectionHeader.Reloff", Field, 0}, + {"SectionHeader.Seg", Field, 0}, + {"SectionHeader.Size", Field, 0}, + {"Segment", Type, 0}, + {"Segment.LoadBytes", Field, 0}, + {"Segment.ReaderAt", Field, 0}, + {"Segment.SegmentHeader", Field, 0}, + {"Segment32", Type, 0}, + {"Segment32.Addr", Field, 0}, + {"Segment32.Cmd", Field, 0}, + {"Segment32.Filesz", Field, 0}, + {"Segment32.Flag", Field, 0}, + {"Segment32.Len", Field, 0}, + {"Segment32.Maxprot", Field, 0}, + {"Segment32.Memsz", Field, 0}, + {"Segment32.Name", Field, 0}, + {"Segment32.Nsect", Field, 0}, + {"Segment32.Offset", Field, 0}, + {"Segment32.Prot", Field, 0}, + {"Segment64", Type, 0}, + {"Segment64.Addr", Field, 0}, + {"Segment64.Cmd", Field, 0}, + {"Segment64.Filesz", Field, 0}, + {"Segment64.Flag", Field, 0}, + {"Segment64.Len", Field, 0}, + {"Segment64.Maxprot", Field, 0}, + {"Segment64.Memsz", Field, 0}, + {"Segment64.Name", Field, 0}, + {"Segment64.Nsect", Field, 0}, + {"Segment64.Offset", Field, 0}, + {"Segment64.Prot", Field, 0}, + {"SegmentHeader", Type, 0}, + {"SegmentHeader.Addr", Field, 0}, + {"SegmentHeader.Cmd", Field, 0}, + {"SegmentHeader.Filesz", Field, 0}, + {"SegmentHeader.Flag", Field, 0}, + {"SegmentHeader.Len", Field, 0}, + {"SegmentHeader.Maxprot", Field, 0}, + {"SegmentHeader.Memsz", Field, 0}, + {"SegmentHeader.Name", Field, 0}, + {"SegmentHeader.Nsect", Field, 0}, + {"SegmentHeader.Offset", Field, 0}, + {"SegmentHeader.Prot", Field, 0}, + {"Symbol", Type, 0}, + {"Symbol.Desc", Field, 0}, + {"Symbol.Name", Field, 0}, + {"Symbol.Sect", Field, 0}, + {"Symbol.Type", Field, 0}, + {"Symbol.Value", Field, 0}, + {"Symtab", Type, 0}, + {"Symtab.LoadBytes", Field, 0}, + {"Symtab.Syms", Field, 0}, + {"Symtab.SymtabCmd", Field, 0}, + {"SymtabCmd", Type, 0}, + {"SymtabCmd.Cmd", Field, 0}, + {"SymtabCmd.Len", Field, 0}, + {"SymtabCmd.Nsyms", Field, 0}, + {"SymtabCmd.Stroff", Field, 0}, + {"SymtabCmd.Strsize", Field, 0}, + {"SymtabCmd.Symoff", Field, 0}, + {"Thread", Type, 0}, + {"Thread.Cmd", Field, 0}, + {"Thread.Data", Field, 0}, + {"Thread.Len", Field, 0}, + {"Thread.Type", Field, 0}, + {"Type", Type, 0}, + {"TypeBundle", Const, 3}, + {"TypeDylib", Const, 3}, + {"TypeExec", Const, 0}, + {"TypeObj", Const, 0}, + {"X86_64_RELOC_BRANCH", Const, 10}, + {"X86_64_RELOC_GOT", Const, 10}, + {"X86_64_RELOC_GOT_LOAD", Const, 10}, + {"X86_64_RELOC_SIGNED", Const, 10}, + {"X86_64_RELOC_SIGNED_1", Const, 10}, + {"X86_64_RELOC_SIGNED_2", Const, 10}, + {"X86_64_RELOC_SIGNED_4", Const, 10}, + {"X86_64_RELOC_SUBTRACTOR", Const, 10}, + {"X86_64_RELOC_TLV", Const, 10}, + {"X86_64_RELOC_UNSIGNED", Const, 10}, + }, + "debug/pe": { + {"(*COFFSymbol).FullName", Method, 8}, + {"(*File).COFFSymbolReadSectionDefAux", Method, 19}, + {"(*File).Close", Method, 0}, + {"(*File).DWARF", Method, 0}, + {"(*File).ImportedLibraries", Method, 0}, + {"(*File).ImportedSymbols", Method, 0}, + {"(*File).Section", Method, 0}, + {"(*FormatError).Error", Method, 0}, + {"(*Section).Data", Method, 0}, + {"(*Section).Open", Method, 0}, + {"(Section).ReadAt", Method, 0}, + {"(StringTable).String", Method, 8}, + {"COFFSymbol", Type, 1}, + {"COFFSymbol.Name", Field, 1}, + {"COFFSymbol.NumberOfAuxSymbols", Field, 1}, + {"COFFSymbol.SectionNumber", Field, 1}, + {"COFFSymbol.StorageClass", Field, 1}, + {"COFFSymbol.Type", Field, 1}, + {"COFFSymbol.Value", Field, 1}, + {"COFFSymbolAuxFormat5", Type, 19}, + {"COFFSymbolAuxFormat5.Checksum", Field, 19}, + {"COFFSymbolAuxFormat5.NumLineNumbers", Field, 19}, + {"COFFSymbolAuxFormat5.NumRelocs", Field, 19}, + {"COFFSymbolAuxFormat5.SecNum", Field, 19}, + {"COFFSymbolAuxFormat5.Selection", Field, 19}, + {"COFFSymbolAuxFormat5.Size", Field, 19}, + {"COFFSymbolSize", Const, 1}, + {"DataDirectory", Type, 3}, + {"DataDirectory.Size", Field, 3}, + {"DataDirectory.VirtualAddress", Field, 3}, + {"File", Type, 0}, + {"File.COFFSymbols", Field, 8}, + {"File.FileHeader", Field, 0}, + {"File.OptionalHeader", Field, 3}, + {"File.Sections", Field, 0}, + {"File.StringTable", Field, 8}, + {"File.Symbols", Field, 1}, + {"FileHeader", Type, 0}, + {"FileHeader.Characteristics", Field, 0}, + {"FileHeader.Machine", Field, 0}, + {"FileHeader.NumberOfSections", Field, 0}, + {"FileHeader.NumberOfSymbols", Field, 0}, + {"FileHeader.PointerToSymbolTable", Field, 0}, + {"FileHeader.SizeOfOptionalHeader", Field, 0}, + {"FileHeader.TimeDateStamp", Field, 0}, + {"FormatError", Type, 0}, + {"IMAGE_COMDAT_SELECT_ANY", Const, 19}, + {"IMAGE_COMDAT_SELECT_ASSOCIATIVE", Const, 19}, + {"IMAGE_COMDAT_SELECT_EXACT_MATCH", Const, 19}, + {"IMAGE_COMDAT_SELECT_LARGEST", Const, 19}, + {"IMAGE_COMDAT_SELECT_NODUPLICATES", Const, 19}, + {"IMAGE_COMDAT_SELECT_SAME_SIZE", Const, 19}, + {"IMAGE_DIRECTORY_ENTRY_ARCHITECTURE", Const, 11}, + {"IMAGE_DIRECTORY_ENTRY_BASERELOC", Const, 11}, + {"IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT", Const, 11}, + {"IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR", Const, 11}, + {"IMAGE_DIRECTORY_ENTRY_DEBUG", Const, 11}, + {"IMAGE_DIRECTORY_ENTRY_DELAY_IMPORT", Const, 11}, + {"IMAGE_DIRECTORY_ENTRY_EXCEPTION", Const, 11}, + {"IMAGE_DIRECTORY_ENTRY_EXPORT", Const, 11}, + {"IMAGE_DIRECTORY_ENTRY_GLOBALPTR", Const, 11}, + {"IMAGE_DIRECTORY_ENTRY_IAT", Const, 11}, + {"IMAGE_DIRECTORY_ENTRY_IMPORT", Const, 11}, + {"IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG", Const, 11}, + {"IMAGE_DIRECTORY_ENTRY_RESOURCE", Const, 11}, + {"IMAGE_DIRECTORY_ENTRY_SECURITY", Const, 11}, + {"IMAGE_DIRECTORY_ENTRY_TLS", Const, 11}, + {"IMAGE_DLLCHARACTERISTICS_APPCONTAINER", Const, 15}, + {"IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE", Const, 15}, + {"IMAGE_DLLCHARACTERISTICS_FORCE_INTEGRITY", Const, 15}, + {"IMAGE_DLLCHARACTERISTICS_GUARD_CF", Const, 15}, + {"IMAGE_DLLCHARACTERISTICS_HIGH_ENTROPY_VA", Const, 15}, + {"IMAGE_DLLCHARACTERISTICS_NO_BIND", Const, 15}, + {"IMAGE_DLLCHARACTERISTICS_NO_ISOLATION", Const, 15}, + {"IMAGE_DLLCHARACTERISTICS_NO_SEH", Const, 15}, + {"IMAGE_DLLCHARACTERISTICS_NX_COMPAT", Const, 15}, + {"IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE", Const, 15}, + {"IMAGE_DLLCHARACTERISTICS_WDM_DRIVER", Const, 15}, + {"IMAGE_FILE_32BIT_MACHINE", Const, 15}, + {"IMAGE_FILE_AGGRESIVE_WS_TRIM", Const, 15}, + {"IMAGE_FILE_BYTES_REVERSED_HI", Const, 15}, + {"IMAGE_FILE_BYTES_REVERSED_LO", Const, 15}, + {"IMAGE_FILE_DEBUG_STRIPPED", Const, 15}, + {"IMAGE_FILE_DLL", Const, 15}, + {"IMAGE_FILE_EXECUTABLE_IMAGE", Const, 15}, + {"IMAGE_FILE_LARGE_ADDRESS_AWARE", Const, 15}, + {"IMAGE_FILE_LINE_NUMS_STRIPPED", Const, 15}, + {"IMAGE_FILE_LOCAL_SYMS_STRIPPED", Const, 15}, + {"IMAGE_FILE_MACHINE_AM33", Const, 0}, + {"IMAGE_FILE_MACHINE_AMD64", Const, 0}, + {"IMAGE_FILE_MACHINE_ARM", Const, 0}, + {"IMAGE_FILE_MACHINE_ARM64", Const, 11}, + {"IMAGE_FILE_MACHINE_ARMNT", Const, 12}, + {"IMAGE_FILE_MACHINE_EBC", Const, 0}, + {"IMAGE_FILE_MACHINE_I386", Const, 0}, + {"IMAGE_FILE_MACHINE_IA64", Const, 0}, + {"IMAGE_FILE_MACHINE_LOONGARCH32", Const, 19}, + {"IMAGE_FILE_MACHINE_LOONGARCH64", Const, 19}, + {"IMAGE_FILE_MACHINE_M32R", Const, 0}, + {"IMAGE_FILE_MACHINE_MIPS16", Const, 0}, + {"IMAGE_FILE_MACHINE_MIPSFPU", Const, 0}, + {"IMAGE_FILE_MACHINE_MIPSFPU16", Const, 0}, + {"IMAGE_FILE_MACHINE_POWERPC", Const, 0}, + {"IMAGE_FILE_MACHINE_POWERPCFP", Const, 0}, + {"IMAGE_FILE_MACHINE_R4000", Const, 0}, + {"IMAGE_FILE_MACHINE_RISCV128", Const, 20}, + {"IMAGE_FILE_MACHINE_RISCV32", Const, 20}, + {"IMAGE_FILE_MACHINE_RISCV64", Const, 20}, + {"IMAGE_FILE_MACHINE_SH3", Const, 0}, + {"IMAGE_FILE_MACHINE_SH3DSP", Const, 0}, + {"IMAGE_FILE_MACHINE_SH4", Const, 0}, + {"IMAGE_FILE_MACHINE_SH5", Const, 0}, + {"IMAGE_FILE_MACHINE_THUMB", Const, 0}, + {"IMAGE_FILE_MACHINE_UNKNOWN", Const, 0}, + {"IMAGE_FILE_MACHINE_WCEMIPSV2", Const, 0}, + {"IMAGE_FILE_NET_RUN_FROM_SWAP", Const, 15}, + {"IMAGE_FILE_RELOCS_STRIPPED", Const, 15}, + {"IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP", Const, 15}, + {"IMAGE_FILE_SYSTEM", Const, 15}, + {"IMAGE_FILE_UP_SYSTEM_ONLY", Const, 15}, + {"IMAGE_SCN_CNT_CODE", Const, 19}, + {"IMAGE_SCN_CNT_INITIALIZED_DATA", Const, 19}, + {"IMAGE_SCN_CNT_UNINITIALIZED_DATA", Const, 19}, + {"IMAGE_SCN_LNK_COMDAT", Const, 19}, + {"IMAGE_SCN_MEM_DISCARDABLE", Const, 19}, + {"IMAGE_SCN_MEM_EXECUTE", Const, 19}, + {"IMAGE_SCN_MEM_READ", Const, 19}, + {"IMAGE_SCN_MEM_WRITE", Const, 19}, + {"IMAGE_SUBSYSTEM_EFI_APPLICATION", Const, 15}, + {"IMAGE_SUBSYSTEM_EFI_BOOT_SERVICE_DRIVER", Const, 15}, + {"IMAGE_SUBSYSTEM_EFI_ROM", Const, 15}, + {"IMAGE_SUBSYSTEM_EFI_RUNTIME_DRIVER", Const, 15}, + {"IMAGE_SUBSYSTEM_NATIVE", Const, 15}, + {"IMAGE_SUBSYSTEM_NATIVE_WINDOWS", Const, 15}, + {"IMAGE_SUBSYSTEM_OS2_CUI", Const, 15}, + {"IMAGE_SUBSYSTEM_POSIX_CUI", Const, 15}, + {"IMAGE_SUBSYSTEM_UNKNOWN", Const, 15}, + {"IMAGE_SUBSYSTEM_WINDOWS_BOOT_APPLICATION", Const, 15}, + {"IMAGE_SUBSYSTEM_WINDOWS_CE_GUI", Const, 15}, + {"IMAGE_SUBSYSTEM_WINDOWS_CUI", Const, 15}, + {"IMAGE_SUBSYSTEM_WINDOWS_GUI", Const, 15}, + {"IMAGE_SUBSYSTEM_XBOX", Const, 15}, + {"ImportDirectory", Type, 0}, + {"ImportDirectory.FirstThunk", Field, 0}, + {"ImportDirectory.ForwarderChain", Field, 0}, + {"ImportDirectory.Name", Field, 0}, + {"ImportDirectory.OriginalFirstThunk", Field, 0}, + {"ImportDirectory.TimeDateStamp", Field, 0}, + {"NewFile", Func, 0}, + {"Open", Func, 0}, + {"OptionalHeader32", Type, 3}, + {"OptionalHeader32.AddressOfEntryPoint", Field, 3}, + {"OptionalHeader32.BaseOfCode", Field, 3}, + {"OptionalHeader32.BaseOfData", Field, 3}, + {"OptionalHeader32.CheckSum", Field, 3}, + {"OptionalHeader32.DataDirectory", Field, 3}, + {"OptionalHeader32.DllCharacteristics", Field, 3}, + {"OptionalHeader32.FileAlignment", Field, 3}, + {"OptionalHeader32.ImageBase", Field, 3}, + {"OptionalHeader32.LoaderFlags", Field, 3}, + {"OptionalHeader32.Magic", Field, 3}, + {"OptionalHeader32.MajorImageVersion", Field, 3}, + {"OptionalHeader32.MajorLinkerVersion", Field, 3}, + {"OptionalHeader32.MajorOperatingSystemVersion", Field, 3}, + {"OptionalHeader32.MajorSubsystemVersion", Field, 3}, + {"OptionalHeader32.MinorImageVersion", Field, 3}, + {"OptionalHeader32.MinorLinkerVersion", Field, 3}, + {"OptionalHeader32.MinorOperatingSystemVersion", Field, 3}, + {"OptionalHeader32.MinorSubsystemVersion", Field, 3}, + {"OptionalHeader32.NumberOfRvaAndSizes", Field, 3}, + {"OptionalHeader32.SectionAlignment", Field, 3}, + {"OptionalHeader32.SizeOfCode", Field, 3}, + {"OptionalHeader32.SizeOfHeaders", Field, 3}, + {"OptionalHeader32.SizeOfHeapCommit", Field, 3}, + {"OptionalHeader32.SizeOfHeapReserve", Field, 3}, + {"OptionalHeader32.SizeOfImage", Field, 3}, + {"OptionalHeader32.SizeOfInitializedData", Field, 3}, + {"OptionalHeader32.SizeOfStackCommit", Field, 3}, + {"OptionalHeader32.SizeOfStackReserve", Field, 3}, + {"OptionalHeader32.SizeOfUninitializedData", Field, 3}, + {"OptionalHeader32.Subsystem", Field, 3}, + {"OptionalHeader32.Win32VersionValue", Field, 3}, + {"OptionalHeader64", Type, 3}, + {"OptionalHeader64.AddressOfEntryPoint", Field, 3}, + {"OptionalHeader64.BaseOfCode", Field, 3}, + {"OptionalHeader64.CheckSum", Field, 3}, + {"OptionalHeader64.DataDirectory", Field, 3}, + {"OptionalHeader64.DllCharacteristics", Field, 3}, + {"OptionalHeader64.FileAlignment", Field, 3}, + {"OptionalHeader64.ImageBase", Field, 3}, + {"OptionalHeader64.LoaderFlags", Field, 3}, + {"OptionalHeader64.Magic", Field, 3}, + {"OptionalHeader64.MajorImageVersion", Field, 3}, + {"OptionalHeader64.MajorLinkerVersion", Field, 3}, + {"OptionalHeader64.MajorOperatingSystemVersion", Field, 3}, + {"OptionalHeader64.MajorSubsystemVersion", Field, 3}, + {"OptionalHeader64.MinorImageVersion", Field, 3}, + {"OptionalHeader64.MinorLinkerVersion", Field, 3}, + {"OptionalHeader64.MinorOperatingSystemVersion", Field, 3}, + {"OptionalHeader64.MinorSubsystemVersion", Field, 3}, + {"OptionalHeader64.NumberOfRvaAndSizes", Field, 3}, + {"OptionalHeader64.SectionAlignment", Field, 3}, + {"OptionalHeader64.SizeOfCode", Field, 3}, + {"OptionalHeader64.SizeOfHeaders", Field, 3}, + {"OptionalHeader64.SizeOfHeapCommit", Field, 3}, + {"OptionalHeader64.SizeOfHeapReserve", Field, 3}, + {"OptionalHeader64.SizeOfImage", Field, 3}, + {"OptionalHeader64.SizeOfInitializedData", Field, 3}, + {"OptionalHeader64.SizeOfStackCommit", Field, 3}, + {"OptionalHeader64.SizeOfStackReserve", Field, 3}, + {"OptionalHeader64.SizeOfUninitializedData", Field, 3}, + {"OptionalHeader64.Subsystem", Field, 3}, + {"OptionalHeader64.Win32VersionValue", Field, 3}, + {"Reloc", Type, 8}, + {"Reloc.SymbolTableIndex", Field, 8}, + {"Reloc.Type", Field, 8}, + {"Reloc.VirtualAddress", Field, 8}, + {"Section", Type, 0}, + {"Section.ReaderAt", Field, 0}, + {"Section.Relocs", Field, 8}, + {"Section.SectionHeader", Field, 0}, + {"SectionHeader", Type, 0}, + {"SectionHeader.Characteristics", Field, 0}, + {"SectionHeader.Name", Field, 0}, + {"SectionHeader.NumberOfLineNumbers", Field, 0}, + {"SectionHeader.NumberOfRelocations", Field, 0}, + {"SectionHeader.Offset", Field, 0}, + {"SectionHeader.PointerToLineNumbers", Field, 0}, + {"SectionHeader.PointerToRelocations", Field, 0}, + {"SectionHeader.Size", Field, 0}, + {"SectionHeader.VirtualAddress", Field, 0}, + {"SectionHeader.VirtualSize", Field, 0}, + {"SectionHeader32", Type, 0}, + {"SectionHeader32.Characteristics", Field, 0}, + {"SectionHeader32.Name", Field, 0}, + {"SectionHeader32.NumberOfLineNumbers", Field, 0}, + {"SectionHeader32.NumberOfRelocations", Field, 0}, + {"SectionHeader32.PointerToLineNumbers", Field, 0}, + {"SectionHeader32.PointerToRawData", Field, 0}, + {"SectionHeader32.PointerToRelocations", Field, 0}, + {"SectionHeader32.SizeOfRawData", Field, 0}, + {"SectionHeader32.VirtualAddress", Field, 0}, + {"SectionHeader32.VirtualSize", Field, 0}, + {"StringTable", Type, 8}, + {"Symbol", Type, 1}, + {"Symbol.Name", Field, 1}, + {"Symbol.SectionNumber", Field, 1}, + {"Symbol.StorageClass", Field, 1}, + {"Symbol.Type", Field, 1}, + {"Symbol.Value", Field, 1}, + }, + "debug/plan9obj": { + {"(*File).Close", Method, 3}, + {"(*File).Section", Method, 3}, + {"(*File).Symbols", Method, 3}, + {"(*Section).Data", Method, 3}, + {"(*Section).Open", Method, 3}, + {"(Section).ReadAt", Method, 3}, + {"ErrNoSymbols", Var, 18}, + {"File", Type, 3}, + {"File.FileHeader", Field, 3}, + {"File.Sections", Field, 3}, + {"FileHeader", Type, 3}, + {"FileHeader.Bss", Field, 3}, + {"FileHeader.Entry", Field, 3}, + {"FileHeader.HdrSize", Field, 4}, + {"FileHeader.LoadAddress", Field, 4}, + {"FileHeader.Magic", Field, 3}, + {"FileHeader.PtrSize", Field, 3}, + {"Magic386", Const, 3}, + {"Magic64", Const, 3}, + {"MagicAMD64", Const, 3}, + {"MagicARM", Const, 3}, + {"NewFile", Func, 3}, + {"Open", Func, 3}, + {"Section", Type, 3}, + {"Section.ReaderAt", Field, 3}, + {"Section.SectionHeader", Field, 3}, + {"SectionHeader", Type, 3}, + {"SectionHeader.Name", Field, 3}, + {"SectionHeader.Offset", Field, 3}, + {"SectionHeader.Size", Field, 3}, + {"Sym", Type, 3}, + {"Sym.Name", Field, 3}, + {"Sym.Type", Field, 3}, + {"Sym.Value", Field, 3}, + }, + "embed": { + {"(FS).Open", Method, 16}, + {"(FS).ReadDir", Method, 16}, + {"(FS).ReadFile", Method, 16}, + {"FS", Type, 16}, + }, + "encoding": { + {"BinaryMarshaler", Type, 2}, + {"BinaryUnmarshaler", Type, 2}, + {"TextMarshaler", Type, 2}, + {"TextUnmarshaler", Type, 2}, + }, + "encoding/ascii85": { + {"(CorruptInputError).Error", Method, 0}, + {"CorruptInputError", Type, 0}, + {"Decode", Func, 0}, + {"Encode", Func, 0}, + {"MaxEncodedLen", Func, 0}, + {"NewDecoder", Func, 0}, + {"NewEncoder", Func, 0}, + }, + "encoding/asn1": { + {"(BitString).At", Method, 0}, + {"(BitString).RightAlign", Method, 0}, + {"(ObjectIdentifier).Equal", Method, 0}, + {"(ObjectIdentifier).String", Method, 3}, + {"(StructuralError).Error", Method, 0}, + {"(SyntaxError).Error", Method, 0}, + {"BitString", Type, 0}, + {"BitString.BitLength", Field, 0}, + {"BitString.Bytes", Field, 0}, + {"ClassApplication", Const, 6}, + {"ClassContextSpecific", Const, 6}, + {"ClassPrivate", Const, 6}, + {"ClassUniversal", Const, 6}, + {"Enumerated", Type, 0}, + {"Flag", Type, 0}, + {"Marshal", Func, 0}, + {"MarshalWithParams", Func, 10}, + {"NullBytes", Var, 9}, + {"NullRawValue", Var, 9}, + {"ObjectIdentifier", Type, 0}, + {"RawContent", Type, 0}, + {"RawValue", Type, 0}, + {"RawValue.Bytes", Field, 0}, + {"RawValue.Class", Field, 0}, + {"RawValue.FullBytes", Field, 0}, + {"RawValue.IsCompound", Field, 0}, + {"RawValue.Tag", Field, 0}, + {"StructuralError", Type, 0}, + {"StructuralError.Msg", Field, 0}, + {"SyntaxError", Type, 0}, + {"SyntaxError.Msg", Field, 0}, + {"TagBMPString", Const, 14}, + {"TagBitString", Const, 6}, + {"TagBoolean", Const, 6}, + {"TagEnum", Const, 6}, + {"TagGeneralString", Const, 6}, + {"TagGeneralizedTime", Const, 6}, + {"TagIA5String", Const, 6}, + {"TagInteger", Const, 6}, + {"TagNull", Const, 9}, + {"TagNumericString", Const, 10}, + {"TagOID", Const, 6}, + {"TagOctetString", Const, 6}, + {"TagPrintableString", Const, 6}, + {"TagSequence", Const, 6}, + {"TagSet", Const, 6}, + {"TagT61String", Const, 6}, + {"TagUTCTime", Const, 6}, + {"TagUTF8String", Const, 6}, + {"Unmarshal", Func, 0}, + {"UnmarshalWithParams", Func, 0}, + }, + "encoding/base32": { + {"(*Encoding).AppendDecode", Method, 22}, + {"(*Encoding).AppendEncode", Method, 22}, + {"(*Encoding).Decode", Method, 0}, + {"(*Encoding).DecodeString", Method, 0}, + {"(*Encoding).DecodedLen", Method, 0}, + {"(*Encoding).Encode", Method, 0}, + {"(*Encoding).EncodeToString", Method, 0}, + {"(*Encoding).EncodedLen", Method, 0}, + {"(CorruptInputError).Error", Method, 0}, + {"(Encoding).WithPadding", Method, 9}, + {"CorruptInputError", Type, 0}, + {"Encoding", Type, 0}, + {"HexEncoding", Var, 0}, + {"NewDecoder", Func, 0}, + {"NewEncoder", Func, 0}, + {"NewEncoding", Func, 0}, + {"NoPadding", Const, 9}, + {"StdEncoding", Var, 0}, + {"StdPadding", Const, 9}, + }, + "encoding/base64": { + {"(*Encoding).AppendDecode", Method, 22}, + {"(*Encoding).AppendEncode", Method, 22}, + {"(*Encoding).Decode", Method, 0}, + {"(*Encoding).DecodeString", Method, 0}, + {"(*Encoding).DecodedLen", Method, 0}, + {"(*Encoding).Encode", Method, 0}, + {"(*Encoding).EncodeToString", Method, 0}, + {"(*Encoding).EncodedLen", Method, 0}, + {"(CorruptInputError).Error", Method, 0}, + {"(Encoding).Strict", Method, 8}, + {"(Encoding).WithPadding", Method, 5}, + {"CorruptInputError", Type, 0}, + {"Encoding", Type, 0}, + {"NewDecoder", Func, 0}, + {"NewEncoder", Func, 0}, + {"NewEncoding", Func, 0}, + {"NoPadding", Const, 5}, + {"RawStdEncoding", Var, 5}, + {"RawURLEncoding", Var, 5}, + {"StdEncoding", Var, 0}, + {"StdPadding", Const, 5}, + {"URLEncoding", Var, 0}, + }, + "encoding/binary": { + {"AppendByteOrder", Type, 19}, + {"AppendUvarint", Func, 19}, + {"AppendVarint", Func, 19}, + {"BigEndian", Var, 0}, + {"ByteOrder", Type, 0}, + {"LittleEndian", Var, 0}, + {"MaxVarintLen16", Const, 0}, + {"MaxVarintLen32", Const, 0}, + {"MaxVarintLen64", Const, 0}, + {"NativeEndian", Var, 21}, + {"PutUvarint", Func, 0}, + {"PutVarint", Func, 0}, + {"Read", Func, 0}, + {"ReadUvarint", Func, 0}, + {"ReadVarint", Func, 0}, + {"Size", Func, 0}, + {"Uvarint", Func, 0}, + {"Varint", Func, 0}, + {"Write", Func, 0}, + }, + "encoding/csv": { + {"(*ParseError).Error", Method, 0}, + {"(*ParseError).Unwrap", Method, 13}, + {"(*Reader).FieldPos", Method, 17}, + {"(*Reader).InputOffset", Method, 19}, + {"(*Reader).Read", Method, 0}, + {"(*Reader).ReadAll", Method, 0}, + {"(*Writer).Error", Method, 1}, + {"(*Writer).Flush", Method, 0}, + {"(*Writer).Write", Method, 0}, + {"(*Writer).WriteAll", Method, 0}, + {"ErrBareQuote", Var, 0}, + {"ErrFieldCount", Var, 0}, + {"ErrQuote", Var, 0}, + {"ErrTrailingComma", Var, 0}, + {"NewReader", Func, 0}, + {"NewWriter", Func, 0}, + {"ParseError", Type, 0}, + {"ParseError.Column", Field, 0}, + {"ParseError.Err", Field, 0}, + {"ParseError.Line", Field, 0}, + {"ParseError.StartLine", Field, 10}, + {"Reader", Type, 0}, + {"Reader.Comma", Field, 0}, + {"Reader.Comment", Field, 0}, + {"Reader.FieldsPerRecord", Field, 0}, + {"Reader.LazyQuotes", Field, 0}, + {"Reader.ReuseRecord", Field, 9}, + {"Reader.TrailingComma", Field, 0}, + {"Reader.TrimLeadingSpace", Field, 0}, + {"Writer", Type, 0}, + {"Writer.Comma", Field, 0}, + {"Writer.UseCRLF", Field, 0}, + }, + "encoding/gob": { + {"(*Decoder).Decode", Method, 0}, + {"(*Decoder).DecodeValue", Method, 0}, + {"(*Encoder).Encode", Method, 0}, + {"(*Encoder).EncodeValue", Method, 0}, + {"CommonType", Type, 0}, + {"CommonType.Id", Field, 0}, + {"CommonType.Name", Field, 0}, + {"Decoder", Type, 0}, + {"Encoder", Type, 0}, + {"GobDecoder", Type, 0}, + {"GobEncoder", Type, 0}, + {"NewDecoder", Func, 0}, + {"NewEncoder", Func, 0}, + {"Register", Func, 0}, + {"RegisterName", Func, 0}, + }, + "encoding/hex": { + {"(InvalidByteError).Error", Method, 0}, + {"AppendDecode", Func, 22}, + {"AppendEncode", Func, 22}, + {"Decode", Func, 0}, + {"DecodeString", Func, 0}, + {"DecodedLen", Func, 0}, + {"Dump", Func, 0}, + {"Dumper", Func, 0}, + {"Encode", Func, 0}, + {"EncodeToString", Func, 0}, + {"EncodedLen", Func, 0}, + {"ErrLength", Var, 0}, + {"InvalidByteError", Type, 0}, + {"NewDecoder", Func, 10}, + {"NewEncoder", Func, 10}, + }, + "encoding/json": { + {"(*Decoder).Buffered", Method, 1}, + {"(*Decoder).Decode", Method, 0}, + {"(*Decoder).DisallowUnknownFields", Method, 10}, + {"(*Decoder).InputOffset", Method, 14}, + {"(*Decoder).More", Method, 5}, + {"(*Decoder).Token", Method, 5}, + {"(*Decoder).UseNumber", Method, 1}, + {"(*Encoder).Encode", Method, 0}, + {"(*Encoder).SetEscapeHTML", Method, 7}, + {"(*Encoder).SetIndent", Method, 7}, + {"(*InvalidUTF8Error).Error", Method, 0}, + {"(*InvalidUnmarshalError).Error", Method, 0}, + {"(*MarshalerError).Error", Method, 0}, + {"(*MarshalerError).Unwrap", Method, 13}, + {"(*RawMessage).MarshalJSON", Method, 0}, + {"(*RawMessage).UnmarshalJSON", Method, 0}, + {"(*SyntaxError).Error", Method, 0}, + {"(*UnmarshalFieldError).Error", Method, 0}, + {"(*UnmarshalTypeError).Error", Method, 0}, + {"(*UnsupportedTypeError).Error", Method, 0}, + {"(*UnsupportedValueError).Error", Method, 0}, + {"(Delim).String", Method, 5}, + {"(Number).Float64", Method, 1}, + {"(Number).Int64", Method, 1}, + {"(Number).String", Method, 1}, + {"(RawMessage).MarshalJSON", Method, 8}, + {"Compact", Func, 0}, + {"Decoder", Type, 0}, + {"Delim", Type, 5}, + {"Encoder", Type, 0}, + {"HTMLEscape", Func, 0}, + {"Indent", Func, 0}, + {"InvalidUTF8Error", Type, 0}, + {"InvalidUTF8Error.S", Field, 0}, + {"InvalidUnmarshalError", Type, 0}, + {"InvalidUnmarshalError.Type", Field, 0}, + {"Marshal", Func, 0}, + {"MarshalIndent", Func, 0}, + {"Marshaler", Type, 0}, + {"MarshalerError", Type, 0}, + {"MarshalerError.Err", Field, 0}, + {"MarshalerError.Type", Field, 0}, + {"NewDecoder", Func, 0}, + {"NewEncoder", Func, 0}, + {"Number", Type, 1}, + {"RawMessage", Type, 0}, + {"SyntaxError", Type, 0}, + {"SyntaxError.Offset", Field, 0}, + {"Token", Type, 5}, + {"Unmarshal", Func, 0}, + {"UnmarshalFieldError", Type, 0}, + {"UnmarshalFieldError.Field", Field, 0}, + {"UnmarshalFieldError.Key", Field, 0}, + {"UnmarshalFieldError.Type", Field, 0}, + {"UnmarshalTypeError", Type, 0}, + {"UnmarshalTypeError.Field", Field, 8}, + {"UnmarshalTypeError.Offset", Field, 5}, + {"UnmarshalTypeError.Struct", Field, 8}, + {"UnmarshalTypeError.Type", Field, 0}, + {"UnmarshalTypeError.Value", Field, 0}, + {"Unmarshaler", Type, 0}, + {"UnsupportedTypeError", Type, 0}, + {"UnsupportedTypeError.Type", Field, 0}, + {"UnsupportedValueError", Type, 0}, + {"UnsupportedValueError.Str", Field, 0}, + {"UnsupportedValueError.Value", Field, 0}, + {"Valid", Func, 9}, + }, + "encoding/pem": { + {"Block", Type, 0}, + {"Block.Bytes", Field, 0}, + {"Block.Headers", Field, 0}, + {"Block.Type", Field, 0}, + {"Decode", Func, 0}, + {"Encode", Func, 0}, + {"EncodeToMemory", Func, 0}, + }, + "encoding/xml": { + {"(*Decoder).Decode", Method, 0}, + {"(*Decoder).DecodeElement", Method, 0}, + {"(*Decoder).InputOffset", Method, 4}, + {"(*Decoder).InputPos", Method, 19}, + {"(*Decoder).RawToken", Method, 0}, + {"(*Decoder).Skip", Method, 0}, + {"(*Decoder).Token", Method, 0}, + {"(*Encoder).Close", Method, 20}, + {"(*Encoder).Encode", Method, 0}, + {"(*Encoder).EncodeElement", Method, 2}, + {"(*Encoder).EncodeToken", Method, 2}, + {"(*Encoder).Flush", Method, 2}, + {"(*Encoder).Indent", Method, 1}, + {"(*SyntaxError).Error", Method, 0}, + {"(*TagPathError).Error", Method, 0}, + {"(*UnsupportedTypeError).Error", Method, 0}, + {"(CharData).Copy", Method, 0}, + {"(Comment).Copy", Method, 0}, + {"(Directive).Copy", Method, 0}, + {"(ProcInst).Copy", Method, 0}, + {"(StartElement).Copy", Method, 0}, + {"(StartElement).End", Method, 2}, + {"(UnmarshalError).Error", Method, 0}, + {"Attr", Type, 0}, + {"Attr.Name", Field, 0}, + {"Attr.Value", Field, 0}, + {"CharData", Type, 0}, + {"Comment", Type, 0}, + {"CopyToken", Func, 0}, + {"Decoder", Type, 0}, + {"Decoder.AutoClose", Field, 0}, + {"Decoder.CharsetReader", Field, 0}, + {"Decoder.DefaultSpace", Field, 1}, + {"Decoder.Entity", Field, 0}, + {"Decoder.Strict", Field, 0}, + {"Directive", Type, 0}, + {"Encoder", Type, 0}, + {"EndElement", Type, 0}, + {"EndElement.Name", Field, 0}, + {"Escape", Func, 0}, + {"EscapeText", Func, 1}, + {"HTMLAutoClose", Var, 0}, + {"HTMLEntity", Var, 0}, + {"Header", Const, 0}, + {"Marshal", Func, 0}, + {"MarshalIndent", Func, 0}, + {"Marshaler", Type, 2}, + {"MarshalerAttr", Type, 2}, + {"Name", Type, 0}, + {"Name.Local", Field, 0}, + {"Name.Space", Field, 0}, + {"NewDecoder", Func, 0}, + {"NewEncoder", Func, 0}, + {"NewTokenDecoder", Func, 10}, + {"ProcInst", Type, 0}, + {"ProcInst.Inst", Field, 0}, + {"ProcInst.Target", Field, 0}, + {"StartElement", Type, 0}, + {"StartElement.Attr", Field, 0}, + {"StartElement.Name", Field, 0}, + {"SyntaxError", Type, 0}, + {"SyntaxError.Line", Field, 0}, + {"SyntaxError.Msg", Field, 0}, + {"TagPathError", Type, 0}, + {"TagPathError.Field1", Field, 0}, + {"TagPathError.Field2", Field, 0}, + {"TagPathError.Struct", Field, 0}, + {"TagPathError.Tag1", Field, 0}, + {"TagPathError.Tag2", Field, 0}, + {"Token", Type, 0}, + {"TokenReader", Type, 10}, + {"Unmarshal", Func, 0}, + {"UnmarshalError", Type, 0}, + {"Unmarshaler", Type, 2}, + {"UnmarshalerAttr", Type, 2}, + {"UnsupportedTypeError", Type, 0}, + {"UnsupportedTypeError.Type", Field, 0}, + }, + "errors": { + {"As", Func, 13}, + {"ErrUnsupported", Var, 21}, + {"Is", Func, 13}, + {"Join", Func, 20}, + {"New", Func, 0}, + {"Unwrap", Func, 13}, + }, + "expvar": { + {"(*Float).Add", Method, 0}, + {"(*Float).Set", Method, 0}, + {"(*Float).String", Method, 0}, + {"(*Float).Value", Method, 8}, + {"(*Int).Add", Method, 0}, + {"(*Int).Set", Method, 0}, + {"(*Int).String", Method, 0}, + {"(*Int).Value", Method, 8}, + {"(*Map).Add", Method, 0}, + {"(*Map).AddFloat", Method, 0}, + {"(*Map).Delete", Method, 12}, + {"(*Map).Do", Method, 0}, + {"(*Map).Get", Method, 0}, + {"(*Map).Init", Method, 0}, + {"(*Map).Set", Method, 0}, + {"(*Map).String", Method, 0}, + {"(*String).Set", Method, 0}, + {"(*String).String", Method, 0}, + {"(*String).Value", Method, 8}, + {"(Func).String", Method, 0}, + {"(Func).Value", Method, 8}, + {"Do", Func, 0}, + {"Float", Type, 0}, + {"Func", Type, 0}, + {"Get", Func, 0}, + {"Handler", Func, 8}, + {"Int", Type, 0}, + {"KeyValue", Type, 0}, + {"KeyValue.Key", Field, 0}, + {"KeyValue.Value", Field, 0}, + {"Map", Type, 0}, + {"NewFloat", Func, 0}, + {"NewInt", Func, 0}, + {"NewMap", Func, 0}, + {"NewString", Func, 0}, + {"Publish", Func, 0}, + {"String", Type, 0}, + {"Var", Type, 0}, + }, + "flag": { + {"(*FlagSet).Arg", Method, 0}, + {"(*FlagSet).Args", Method, 0}, + {"(*FlagSet).Bool", Method, 0}, + {"(*FlagSet).BoolFunc", Method, 21}, + {"(*FlagSet).BoolVar", Method, 0}, + {"(*FlagSet).Duration", Method, 0}, + {"(*FlagSet).DurationVar", Method, 0}, + {"(*FlagSet).ErrorHandling", Method, 10}, + {"(*FlagSet).Float64", Method, 0}, + {"(*FlagSet).Float64Var", Method, 0}, + {"(*FlagSet).Func", Method, 16}, + {"(*FlagSet).Init", Method, 0}, + {"(*FlagSet).Int", Method, 0}, + {"(*FlagSet).Int64", Method, 0}, + {"(*FlagSet).Int64Var", Method, 0}, + {"(*FlagSet).IntVar", Method, 0}, + {"(*FlagSet).Lookup", Method, 0}, + {"(*FlagSet).NArg", Method, 0}, + {"(*FlagSet).NFlag", Method, 0}, + {"(*FlagSet).Name", Method, 10}, + {"(*FlagSet).Output", Method, 10}, + {"(*FlagSet).Parse", Method, 0}, + {"(*FlagSet).Parsed", Method, 0}, + {"(*FlagSet).PrintDefaults", Method, 0}, + {"(*FlagSet).Set", Method, 0}, + {"(*FlagSet).SetOutput", Method, 0}, + {"(*FlagSet).String", Method, 0}, + {"(*FlagSet).StringVar", Method, 0}, + {"(*FlagSet).TextVar", Method, 19}, + {"(*FlagSet).Uint", Method, 0}, + {"(*FlagSet).Uint64", Method, 0}, + {"(*FlagSet).Uint64Var", Method, 0}, + {"(*FlagSet).UintVar", Method, 0}, + {"(*FlagSet).Var", Method, 0}, + {"(*FlagSet).Visit", Method, 0}, + {"(*FlagSet).VisitAll", Method, 0}, + {"Arg", Func, 0}, + {"Args", Func, 0}, + {"Bool", Func, 0}, + {"BoolFunc", Func, 21}, + {"BoolVar", Func, 0}, + {"CommandLine", Var, 2}, + {"ContinueOnError", Const, 0}, + {"Duration", Func, 0}, + {"DurationVar", Func, 0}, + {"ErrHelp", Var, 0}, + {"ErrorHandling", Type, 0}, + {"ExitOnError", Const, 0}, + {"Flag", Type, 0}, + {"Flag.DefValue", Field, 0}, + {"Flag.Name", Field, 0}, + {"Flag.Usage", Field, 0}, + {"Flag.Value", Field, 0}, + {"FlagSet", Type, 0}, + {"FlagSet.Usage", Field, 0}, + {"Float64", Func, 0}, + {"Float64Var", Func, 0}, + {"Func", Func, 16}, + {"Getter", Type, 2}, + {"Int", Func, 0}, + {"Int64", Func, 0}, + {"Int64Var", Func, 0}, + {"IntVar", Func, 0}, + {"Lookup", Func, 0}, + {"NArg", Func, 0}, + {"NFlag", Func, 0}, + {"NewFlagSet", Func, 0}, + {"PanicOnError", Const, 0}, + {"Parse", Func, 0}, + {"Parsed", Func, 0}, + {"PrintDefaults", Func, 0}, + {"Set", Func, 0}, + {"String", Func, 0}, + {"StringVar", Func, 0}, + {"TextVar", Func, 19}, + {"Uint", Func, 0}, + {"Uint64", Func, 0}, + {"Uint64Var", Func, 0}, + {"UintVar", Func, 0}, + {"UnquoteUsage", Func, 5}, + {"Usage", Var, 0}, + {"Value", Type, 0}, + {"Var", Func, 0}, + {"Visit", Func, 0}, + {"VisitAll", Func, 0}, + }, + "fmt": { + {"Append", Func, 19}, + {"Appendf", Func, 19}, + {"Appendln", Func, 19}, + {"Errorf", Func, 0}, + {"FormatString", Func, 20}, + {"Formatter", Type, 0}, + {"Fprint", Func, 0}, + {"Fprintf", Func, 0}, + {"Fprintln", Func, 0}, + {"Fscan", Func, 0}, + {"Fscanf", Func, 0}, + {"Fscanln", Func, 0}, + {"GoStringer", Type, 0}, + {"Print", Func, 0}, + {"Printf", Func, 0}, + {"Println", Func, 0}, + {"Scan", Func, 0}, + {"ScanState", Type, 0}, + {"Scanf", Func, 0}, + {"Scanln", Func, 0}, + {"Scanner", Type, 0}, + {"Sprint", Func, 0}, + {"Sprintf", Func, 0}, + {"Sprintln", Func, 0}, + {"Sscan", Func, 0}, + {"Sscanf", Func, 0}, + {"Sscanln", Func, 0}, + {"State", Type, 0}, + {"Stringer", Type, 0}, + }, + "go/ast": { + {"(*ArrayType).End", Method, 0}, + {"(*ArrayType).Pos", Method, 0}, + {"(*AssignStmt).End", Method, 0}, + {"(*AssignStmt).Pos", Method, 0}, + {"(*BadDecl).End", Method, 0}, + {"(*BadDecl).Pos", Method, 0}, + {"(*BadExpr).End", Method, 0}, + {"(*BadExpr).Pos", Method, 0}, + {"(*BadStmt).End", Method, 0}, + {"(*BadStmt).Pos", Method, 0}, + {"(*BasicLit).End", Method, 0}, + {"(*BasicLit).Pos", Method, 0}, + {"(*BinaryExpr).End", Method, 0}, + {"(*BinaryExpr).Pos", Method, 0}, + {"(*BlockStmt).End", Method, 0}, + {"(*BlockStmt).Pos", Method, 0}, + {"(*BranchStmt).End", Method, 0}, + {"(*BranchStmt).Pos", Method, 0}, + {"(*CallExpr).End", Method, 0}, + {"(*CallExpr).Pos", Method, 0}, + {"(*CaseClause).End", Method, 0}, + {"(*CaseClause).Pos", Method, 0}, + {"(*ChanType).End", Method, 0}, + {"(*ChanType).Pos", Method, 0}, + {"(*CommClause).End", Method, 0}, + {"(*CommClause).Pos", Method, 0}, + {"(*Comment).End", Method, 0}, + {"(*Comment).Pos", Method, 0}, + {"(*CommentGroup).End", Method, 0}, + {"(*CommentGroup).Pos", Method, 0}, + {"(*CommentGroup).Text", Method, 0}, + {"(*CompositeLit).End", Method, 0}, + {"(*CompositeLit).Pos", Method, 0}, + {"(*DeclStmt).End", Method, 0}, + {"(*DeclStmt).Pos", Method, 0}, + {"(*DeferStmt).End", Method, 0}, + {"(*DeferStmt).Pos", Method, 0}, + {"(*Ellipsis).End", Method, 0}, + {"(*Ellipsis).Pos", Method, 0}, + {"(*EmptyStmt).End", Method, 0}, + {"(*EmptyStmt).Pos", Method, 0}, + {"(*ExprStmt).End", Method, 0}, + {"(*ExprStmt).Pos", Method, 0}, + {"(*Field).End", Method, 0}, + {"(*Field).Pos", Method, 0}, + {"(*FieldList).End", Method, 0}, + {"(*FieldList).NumFields", Method, 0}, + {"(*FieldList).Pos", Method, 0}, + {"(*File).End", Method, 0}, + {"(*File).Pos", Method, 0}, + {"(*ForStmt).End", Method, 0}, + {"(*ForStmt).Pos", Method, 0}, + {"(*FuncDecl).End", Method, 0}, + {"(*FuncDecl).Pos", Method, 0}, + {"(*FuncLit).End", Method, 0}, + {"(*FuncLit).Pos", Method, 0}, + {"(*FuncType).End", Method, 0}, + {"(*FuncType).Pos", Method, 0}, + {"(*GenDecl).End", Method, 0}, + {"(*GenDecl).Pos", Method, 0}, + {"(*GoStmt).End", Method, 0}, + {"(*GoStmt).Pos", Method, 0}, + {"(*Ident).End", Method, 0}, + {"(*Ident).IsExported", Method, 0}, + {"(*Ident).Pos", Method, 0}, + {"(*Ident).String", Method, 0}, + {"(*IfStmt).End", Method, 0}, + {"(*IfStmt).Pos", Method, 0}, + {"(*ImportSpec).End", Method, 0}, + {"(*ImportSpec).Pos", Method, 0}, + {"(*IncDecStmt).End", Method, 0}, + {"(*IncDecStmt).Pos", Method, 0}, + {"(*IndexExpr).End", Method, 0}, + {"(*IndexExpr).Pos", Method, 0}, + {"(*IndexListExpr).End", Method, 18}, + {"(*IndexListExpr).Pos", Method, 18}, + {"(*InterfaceType).End", Method, 0}, + {"(*InterfaceType).Pos", Method, 0}, + {"(*KeyValueExpr).End", Method, 0}, + {"(*KeyValueExpr).Pos", Method, 0}, + {"(*LabeledStmt).End", Method, 0}, + {"(*LabeledStmt).Pos", Method, 0}, + {"(*MapType).End", Method, 0}, + {"(*MapType).Pos", Method, 0}, + {"(*Object).Pos", Method, 0}, + {"(*Package).End", Method, 0}, + {"(*Package).Pos", Method, 0}, + {"(*ParenExpr).End", Method, 0}, + {"(*ParenExpr).Pos", Method, 0}, + {"(*RangeStmt).End", Method, 0}, + {"(*RangeStmt).Pos", Method, 0}, + {"(*ReturnStmt).End", Method, 0}, + {"(*ReturnStmt).Pos", Method, 0}, + {"(*Scope).Insert", Method, 0}, + {"(*Scope).Lookup", Method, 0}, + {"(*Scope).String", Method, 0}, + {"(*SelectStmt).End", Method, 0}, + {"(*SelectStmt).Pos", Method, 0}, + {"(*SelectorExpr).End", Method, 0}, + {"(*SelectorExpr).Pos", Method, 0}, + {"(*SendStmt).End", Method, 0}, + {"(*SendStmt).Pos", Method, 0}, + {"(*SliceExpr).End", Method, 0}, + {"(*SliceExpr).Pos", Method, 0}, + {"(*StarExpr).End", Method, 0}, + {"(*StarExpr).Pos", Method, 0}, + {"(*StructType).End", Method, 0}, + {"(*StructType).Pos", Method, 0}, + {"(*SwitchStmt).End", Method, 0}, + {"(*SwitchStmt).Pos", Method, 0}, + {"(*TypeAssertExpr).End", Method, 0}, + {"(*TypeAssertExpr).Pos", Method, 0}, + {"(*TypeSpec).End", Method, 0}, + {"(*TypeSpec).Pos", Method, 0}, + {"(*TypeSwitchStmt).End", Method, 0}, + {"(*TypeSwitchStmt).Pos", Method, 0}, + {"(*UnaryExpr).End", Method, 0}, + {"(*UnaryExpr).Pos", Method, 0}, + {"(*ValueSpec).End", Method, 0}, + {"(*ValueSpec).Pos", Method, 0}, + {"(CommentMap).Comments", Method, 1}, + {"(CommentMap).Filter", Method, 1}, + {"(CommentMap).String", Method, 1}, + {"(CommentMap).Update", Method, 1}, + {"(ObjKind).String", Method, 0}, + {"ArrayType", Type, 0}, + {"ArrayType.Elt", Field, 0}, + {"ArrayType.Lbrack", Field, 0}, + {"ArrayType.Len", Field, 0}, + {"AssignStmt", Type, 0}, + {"AssignStmt.Lhs", Field, 0}, + {"AssignStmt.Rhs", Field, 0}, + {"AssignStmt.Tok", Field, 0}, + {"AssignStmt.TokPos", Field, 0}, + {"Bad", Const, 0}, + {"BadDecl", Type, 0}, + {"BadDecl.From", Field, 0}, + {"BadDecl.To", Field, 0}, + {"BadExpr", Type, 0}, + {"BadExpr.From", Field, 0}, + {"BadExpr.To", Field, 0}, + {"BadStmt", Type, 0}, + {"BadStmt.From", Field, 0}, + {"BadStmt.To", Field, 0}, + {"BasicLit", Type, 0}, + {"BasicLit.Kind", Field, 0}, + {"BasicLit.Value", Field, 0}, + {"BasicLit.ValuePos", Field, 0}, + {"BinaryExpr", Type, 0}, + {"BinaryExpr.Op", Field, 0}, + {"BinaryExpr.OpPos", Field, 0}, + {"BinaryExpr.X", Field, 0}, + {"BinaryExpr.Y", Field, 0}, + {"BlockStmt", Type, 0}, + {"BlockStmt.Lbrace", Field, 0}, + {"BlockStmt.List", Field, 0}, + {"BlockStmt.Rbrace", Field, 0}, + {"BranchStmt", Type, 0}, + {"BranchStmt.Label", Field, 0}, + {"BranchStmt.Tok", Field, 0}, + {"BranchStmt.TokPos", Field, 0}, + {"CallExpr", Type, 0}, + {"CallExpr.Args", Field, 0}, + {"CallExpr.Ellipsis", Field, 0}, + {"CallExpr.Fun", Field, 0}, + {"CallExpr.Lparen", Field, 0}, + {"CallExpr.Rparen", Field, 0}, + {"CaseClause", Type, 0}, + {"CaseClause.Body", Field, 0}, + {"CaseClause.Case", Field, 0}, + {"CaseClause.Colon", Field, 0}, + {"CaseClause.List", Field, 0}, + {"ChanDir", Type, 0}, + {"ChanType", Type, 0}, + {"ChanType.Arrow", Field, 1}, + {"ChanType.Begin", Field, 0}, + {"ChanType.Dir", Field, 0}, + {"ChanType.Value", Field, 0}, + {"CommClause", Type, 0}, + {"CommClause.Body", Field, 0}, + {"CommClause.Case", Field, 0}, + {"CommClause.Colon", Field, 0}, + {"CommClause.Comm", Field, 0}, + {"Comment", Type, 0}, + {"Comment.Slash", Field, 0}, + {"Comment.Text", Field, 0}, + {"CommentGroup", Type, 0}, + {"CommentGroup.List", Field, 0}, + {"CommentMap", Type, 1}, + {"CompositeLit", Type, 0}, + {"CompositeLit.Elts", Field, 0}, + {"CompositeLit.Incomplete", Field, 11}, + {"CompositeLit.Lbrace", Field, 0}, + {"CompositeLit.Rbrace", Field, 0}, + {"CompositeLit.Type", Field, 0}, + {"Con", Const, 0}, + {"Decl", Type, 0}, + {"DeclStmt", Type, 0}, + {"DeclStmt.Decl", Field, 0}, + {"DeferStmt", Type, 0}, + {"DeferStmt.Call", Field, 0}, + {"DeferStmt.Defer", Field, 0}, + {"Ellipsis", Type, 0}, + {"Ellipsis.Ellipsis", Field, 0}, + {"Ellipsis.Elt", Field, 0}, + {"EmptyStmt", Type, 0}, + {"EmptyStmt.Implicit", Field, 5}, + {"EmptyStmt.Semicolon", Field, 0}, + {"Expr", Type, 0}, + {"ExprStmt", Type, 0}, + {"ExprStmt.X", Field, 0}, + {"Field", Type, 0}, + {"Field.Comment", Field, 0}, + {"Field.Doc", Field, 0}, + {"Field.Names", Field, 0}, + {"Field.Tag", Field, 0}, + {"Field.Type", Field, 0}, + {"FieldFilter", Type, 0}, + {"FieldList", Type, 0}, + {"FieldList.Closing", Field, 0}, + {"FieldList.List", Field, 0}, + {"FieldList.Opening", Field, 0}, + {"File", Type, 0}, + {"File.Comments", Field, 0}, + {"File.Decls", Field, 0}, + {"File.Doc", Field, 0}, + {"File.FileEnd", Field, 20}, + {"File.FileStart", Field, 20}, + {"File.GoVersion", Field, 21}, + {"File.Imports", Field, 0}, + {"File.Name", Field, 0}, + {"File.Package", Field, 0}, + {"File.Scope", Field, 0}, + {"File.Unresolved", Field, 0}, + {"FileExports", Func, 0}, + {"Filter", Type, 0}, + {"FilterDecl", Func, 0}, + {"FilterFile", Func, 0}, + {"FilterFuncDuplicates", Const, 0}, + {"FilterImportDuplicates", Const, 0}, + {"FilterPackage", Func, 0}, + {"FilterUnassociatedComments", Const, 0}, + {"ForStmt", Type, 0}, + {"ForStmt.Body", Field, 0}, + {"ForStmt.Cond", Field, 0}, + {"ForStmt.For", Field, 0}, + {"ForStmt.Init", Field, 0}, + {"ForStmt.Post", Field, 0}, + {"Fprint", Func, 0}, + {"Fun", Const, 0}, + {"FuncDecl", Type, 0}, + {"FuncDecl.Body", Field, 0}, + {"FuncDecl.Doc", Field, 0}, + {"FuncDecl.Name", Field, 0}, + {"FuncDecl.Recv", Field, 0}, + {"FuncDecl.Type", Field, 0}, + {"FuncLit", Type, 0}, + {"FuncLit.Body", Field, 0}, + {"FuncLit.Type", Field, 0}, + {"FuncType", Type, 0}, + {"FuncType.Func", Field, 0}, + {"FuncType.Params", Field, 0}, + {"FuncType.Results", Field, 0}, + {"FuncType.TypeParams", Field, 18}, + {"GenDecl", Type, 0}, + {"GenDecl.Doc", Field, 0}, + {"GenDecl.Lparen", Field, 0}, + {"GenDecl.Rparen", Field, 0}, + {"GenDecl.Specs", Field, 0}, + {"GenDecl.Tok", Field, 0}, + {"GenDecl.TokPos", Field, 0}, + {"GoStmt", Type, 0}, + {"GoStmt.Call", Field, 0}, + {"GoStmt.Go", Field, 0}, + {"Ident", Type, 0}, + {"Ident.Name", Field, 0}, + {"Ident.NamePos", Field, 0}, + {"Ident.Obj", Field, 0}, + {"IfStmt", Type, 0}, + {"IfStmt.Body", Field, 0}, + {"IfStmt.Cond", Field, 0}, + {"IfStmt.Else", Field, 0}, + {"IfStmt.If", Field, 0}, + {"IfStmt.Init", Field, 0}, + {"ImportSpec", Type, 0}, + {"ImportSpec.Comment", Field, 0}, + {"ImportSpec.Doc", Field, 0}, + {"ImportSpec.EndPos", Field, 0}, + {"ImportSpec.Name", Field, 0}, + {"ImportSpec.Path", Field, 0}, + {"Importer", Type, 0}, + {"IncDecStmt", Type, 0}, + {"IncDecStmt.Tok", Field, 0}, + {"IncDecStmt.TokPos", Field, 0}, + {"IncDecStmt.X", Field, 0}, + {"IndexExpr", Type, 0}, + {"IndexExpr.Index", Field, 0}, + {"IndexExpr.Lbrack", Field, 0}, + {"IndexExpr.Rbrack", Field, 0}, + {"IndexExpr.X", Field, 0}, + {"IndexListExpr", Type, 18}, + {"IndexListExpr.Indices", Field, 18}, + {"IndexListExpr.Lbrack", Field, 18}, + {"IndexListExpr.Rbrack", Field, 18}, + {"IndexListExpr.X", Field, 18}, + {"Inspect", Func, 0}, + {"InterfaceType", Type, 0}, + {"InterfaceType.Incomplete", Field, 0}, + {"InterfaceType.Interface", Field, 0}, + {"InterfaceType.Methods", Field, 0}, + {"IsExported", Func, 0}, + {"IsGenerated", Func, 21}, + {"KeyValueExpr", Type, 0}, + {"KeyValueExpr.Colon", Field, 0}, + {"KeyValueExpr.Key", Field, 0}, + {"KeyValueExpr.Value", Field, 0}, + {"LabeledStmt", Type, 0}, + {"LabeledStmt.Colon", Field, 0}, + {"LabeledStmt.Label", Field, 0}, + {"LabeledStmt.Stmt", Field, 0}, + {"Lbl", Const, 0}, + {"MapType", Type, 0}, + {"MapType.Key", Field, 0}, + {"MapType.Map", Field, 0}, + {"MapType.Value", Field, 0}, + {"MergeMode", Type, 0}, + {"MergePackageFiles", Func, 0}, + {"NewCommentMap", Func, 1}, + {"NewIdent", Func, 0}, + {"NewObj", Func, 0}, + {"NewPackage", Func, 0}, + {"NewScope", Func, 0}, + {"Node", Type, 0}, + {"NotNilFilter", Func, 0}, + {"ObjKind", Type, 0}, + {"Object", Type, 0}, + {"Object.Data", Field, 0}, + {"Object.Decl", Field, 0}, + {"Object.Kind", Field, 0}, + {"Object.Name", Field, 0}, + {"Object.Type", Field, 0}, + {"Package", Type, 0}, + {"Package.Files", Field, 0}, + {"Package.Imports", Field, 0}, + {"Package.Name", Field, 0}, + {"Package.Scope", Field, 0}, + {"PackageExports", Func, 0}, + {"ParenExpr", Type, 0}, + {"ParenExpr.Lparen", Field, 0}, + {"ParenExpr.Rparen", Field, 0}, + {"ParenExpr.X", Field, 0}, + {"Pkg", Const, 0}, + {"Print", Func, 0}, + {"RECV", Const, 0}, + {"RangeStmt", Type, 0}, + {"RangeStmt.Body", Field, 0}, + {"RangeStmt.For", Field, 0}, + {"RangeStmt.Key", Field, 0}, + {"RangeStmt.Range", Field, 20}, + {"RangeStmt.Tok", Field, 0}, + {"RangeStmt.TokPos", Field, 0}, + {"RangeStmt.Value", Field, 0}, + {"RangeStmt.X", Field, 0}, + {"ReturnStmt", Type, 0}, + {"ReturnStmt.Results", Field, 0}, + {"ReturnStmt.Return", Field, 0}, + {"SEND", Const, 0}, + {"Scope", Type, 0}, + {"Scope.Objects", Field, 0}, + {"Scope.Outer", Field, 0}, + {"SelectStmt", Type, 0}, + {"SelectStmt.Body", Field, 0}, + {"SelectStmt.Select", Field, 0}, + {"SelectorExpr", Type, 0}, + {"SelectorExpr.Sel", Field, 0}, + {"SelectorExpr.X", Field, 0}, + {"SendStmt", Type, 0}, + {"SendStmt.Arrow", Field, 0}, + {"SendStmt.Chan", Field, 0}, + {"SendStmt.Value", Field, 0}, + {"SliceExpr", Type, 0}, + {"SliceExpr.High", Field, 0}, + {"SliceExpr.Lbrack", Field, 0}, + {"SliceExpr.Low", Field, 0}, + {"SliceExpr.Max", Field, 2}, + {"SliceExpr.Rbrack", Field, 0}, + {"SliceExpr.Slice3", Field, 2}, + {"SliceExpr.X", Field, 0}, + {"SortImports", Func, 0}, + {"Spec", Type, 0}, + {"StarExpr", Type, 0}, + {"StarExpr.Star", Field, 0}, + {"StarExpr.X", Field, 0}, + {"Stmt", Type, 0}, + {"StructType", Type, 0}, + {"StructType.Fields", Field, 0}, + {"StructType.Incomplete", Field, 0}, + {"StructType.Struct", Field, 0}, + {"SwitchStmt", Type, 0}, + {"SwitchStmt.Body", Field, 0}, + {"SwitchStmt.Init", Field, 0}, + {"SwitchStmt.Switch", Field, 0}, + {"SwitchStmt.Tag", Field, 0}, + {"Typ", Const, 0}, + {"TypeAssertExpr", Type, 0}, + {"TypeAssertExpr.Lparen", Field, 2}, + {"TypeAssertExpr.Rparen", Field, 2}, + {"TypeAssertExpr.Type", Field, 0}, + {"TypeAssertExpr.X", Field, 0}, + {"TypeSpec", Type, 0}, + {"TypeSpec.Assign", Field, 9}, + {"TypeSpec.Comment", Field, 0}, + {"TypeSpec.Doc", Field, 0}, + {"TypeSpec.Name", Field, 0}, + {"TypeSpec.Type", Field, 0}, + {"TypeSpec.TypeParams", Field, 18}, + {"TypeSwitchStmt", Type, 0}, + {"TypeSwitchStmt.Assign", Field, 0}, + {"TypeSwitchStmt.Body", Field, 0}, + {"TypeSwitchStmt.Init", Field, 0}, + {"TypeSwitchStmt.Switch", Field, 0}, + {"UnaryExpr", Type, 0}, + {"UnaryExpr.Op", Field, 0}, + {"UnaryExpr.OpPos", Field, 0}, + {"UnaryExpr.X", Field, 0}, + {"Unparen", Func, 22}, + {"ValueSpec", Type, 0}, + {"ValueSpec.Comment", Field, 0}, + {"ValueSpec.Doc", Field, 0}, + {"ValueSpec.Names", Field, 0}, + {"ValueSpec.Type", Field, 0}, + {"ValueSpec.Values", Field, 0}, + {"Var", Const, 0}, + {"Visitor", Type, 0}, + {"Walk", Func, 0}, + }, + "go/build": { + {"(*Context).Import", Method, 0}, + {"(*Context).ImportDir", Method, 0}, + {"(*Context).MatchFile", Method, 2}, + {"(*Context).SrcDirs", Method, 0}, + {"(*MultiplePackageError).Error", Method, 4}, + {"(*NoGoError).Error", Method, 0}, + {"(*Package).IsCommand", Method, 0}, + {"AllowBinary", Const, 0}, + {"ArchChar", Func, 0}, + {"Context", Type, 0}, + {"Context.BuildTags", Field, 0}, + {"Context.CgoEnabled", Field, 0}, + {"Context.Compiler", Field, 0}, + {"Context.Dir", Field, 14}, + {"Context.GOARCH", Field, 0}, + {"Context.GOOS", Field, 0}, + {"Context.GOPATH", Field, 0}, + {"Context.GOROOT", Field, 0}, + {"Context.HasSubdir", Field, 0}, + {"Context.InstallSuffix", Field, 1}, + {"Context.IsAbsPath", Field, 0}, + {"Context.IsDir", Field, 0}, + {"Context.JoinPath", Field, 0}, + {"Context.OpenFile", Field, 0}, + {"Context.ReadDir", Field, 0}, + {"Context.ReleaseTags", Field, 1}, + {"Context.SplitPathList", Field, 0}, + {"Context.ToolTags", Field, 17}, + {"Context.UseAllFiles", Field, 0}, + {"Default", Var, 0}, + {"Directive", Type, 21}, + {"Directive.Pos", Field, 21}, + {"Directive.Text", Field, 21}, + {"FindOnly", Const, 0}, + {"IgnoreVendor", Const, 6}, + {"Import", Func, 0}, + {"ImportComment", Const, 4}, + {"ImportDir", Func, 0}, + {"ImportMode", Type, 0}, + {"IsLocalImport", Func, 0}, + {"MultiplePackageError", Type, 4}, + {"MultiplePackageError.Dir", Field, 4}, + {"MultiplePackageError.Files", Field, 4}, + {"MultiplePackageError.Packages", Field, 4}, + {"NoGoError", Type, 0}, + {"NoGoError.Dir", Field, 0}, + {"Package", Type, 0}, + {"Package.AllTags", Field, 2}, + {"Package.BinDir", Field, 0}, + {"Package.BinaryOnly", Field, 7}, + {"Package.CFiles", Field, 0}, + {"Package.CXXFiles", Field, 2}, + {"Package.CgoCFLAGS", Field, 0}, + {"Package.CgoCPPFLAGS", Field, 2}, + {"Package.CgoCXXFLAGS", Field, 2}, + {"Package.CgoFFLAGS", Field, 7}, + {"Package.CgoFiles", Field, 0}, + {"Package.CgoLDFLAGS", Field, 0}, + {"Package.CgoPkgConfig", Field, 0}, + {"Package.ConflictDir", Field, 2}, + {"Package.Dir", Field, 0}, + {"Package.Directives", Field, 21}, + {"Package.Doc", Field, 0}, + {"Package.EmbedPatternPos", Field, 16}, + {"Package.EmbedPatterns", Field, 16}, + {"Package.FFiles", Field, 7}, + {"Package.GoFiles", Field, 0}, + {"Package.Goroot", Field, 0}, + {"Package.HFiles", Field, 0}, + {"Package.IgnoredGoFiles", Field, 1}, + {"Package.IgnoredOtherFiles", Field, 16}, + {"Package.ImportComment", Field, 4}, + {"Package.ImportPath", Field, 0}, + {"Package.ImportPos", Field, 0}, + {"Package.Imports", Field, 0}, + {"Package.InvalidGoFiles", Field, 6}, + {"Package.MFiles", Field, 3}, + {"Package.Name", Field, 0}, + {"Package.PkgObj", Field, 0}, + {"Package.PkgRoot", Field, 0}, + {"Package.PkgTargetRoot", Field, 5}, + {"Package.Root", Field, 0}, + {"Package.SFiles", Field, 0}, + {"Package.SrcRoot", Field, 0}, + {"Package.SwigCXXFiles", Field, 1}, + {"Package.SwigFiles", Field, 1}, + {"Package.SysoFiles", Field, 0}, + {"Package.TestDirectives", Field, 21}, + {"Package.TestEmbedPatternPos", Field, 16}, + {"Package.TestEmbedPatterns", Field, 16}, + {"Package.TestGoFiles", Field, 0}, + {"Package.TestImportPos", Field, 0}, + {"Package.TestImports", Field, 0}, + {"Package.XTestDirectives", Field, 21}, + {"Package.XTestEmbedPatternPos", Field, 16}, + {"Package.XTestEmbedPatterns", Field, 16}, + {"Package.XTestGoFiles", Field, 0}, + {"Package.XTestImportPos", Field, 0}, + {"Package.XTestImports", Field, 0}, + {"ToolDir", Var, 0}, + }, + "go/build/constraint": { + {"(*AndExpr).Eval", Method, 16}, + {"(*AndExpr).String", Method, 16}, + {"(*NotExpr).Eval", Method, 16}, + {"(*NotExpr).String", Method, 16}, + {"(*OrExpr).Eval", Method, 16}, + {"(*OrExpr).String", Method, 16}, + {"(*SyntaxError).Error", Method, 16}, + {"(*TagExpr).Eval", Method, 16}, + {"(*TagExpr).String", Method, 16}, + {"AndExpr", Type, 16}, + {"AndExpr.X", Field, 16}, + {"AndExpr.Y", Field, 16}, + {"Expr", Type, 16}, + {"GoVersion", Func, 21}, + {"IsGoBuild", Func, 16}, + {"IsPlusBuild", Func, 16}, + {"NotExpr", Type, 16}, + {"NotExpr.X", Field, 16}, + {"OrExpr", Type, 16}, + {"OrExpr.X", Field, 16}, + {"OrExpr.Y", Field, 16}, + {"Parse", Func, 16}, + {"PlusBuildLines", Func, 16}, + {"SyntaxError", Type, 16}, + {"SyntaxError.Err", Field, 16}, + {"SyntaxError.Offset", Field, 16}, + {"TagExpr", Type, 16}, + {"TagExpr.Tag", Field, 16}, + }, + "go/constant": { + {"(Kind).String", Method, 18}, + {"BinaryOp", Func, 5}, + {"BitLen", Func, 5}, + {"Bool", Const, 5}, + {"BoolVal", Func, 5}, + {"Bytes", Func, 5}, + {"Compare", Func, 5}, + {"Complex", Const, 5}, + {"Denom", Func, 5}, + {"Float", Const, 5}, + {"Float32Val", Func, 5}, + {"Float64Val", Func, 5}, + {"Imag", Func, 5}, + {"Int", Const, 5}, + {"Int64Val", Func, 5}, + {"Kind", Type, 5}, + {"Make", Func, 13}, + {"MakeBool", Func, 5}, + {"MakeFloat64", Func, 5}, + {"MakeFromBytes", Func, 5}, + {"MakeFromLiteral", Func, 5}, + {"MakeImag", Func, 5}, + {"MakeInt64", Func, 5}, + {"MakeString", Func, 5}, + {"MakeUint64", Func, 5}, + {"MakeUnknown", Func, 5}, + {"Num", Func, 5}, + {"Real", Func, 5}, + {"Shift", Func, 5}, + {"Sign", Func, 5}, + {"String", Const, 5}, + {"StringVal", Func, 5}, + {"ToComplex", Func, 6}, + {"ToFloat", Func, 6}, + {"ToInt", Func, 6}, + {"Uint64Val", Func, 5}, + {"UnaryOp", Func, 5}, + {"Unknown", Const, 5}, + {"Val", Func, 13}, + {"Value", Type, 5}, + }, + "go/doc": { + {"(*Package).Filter", Method, 0}, + {"(*Package).HTML", Method, 19}, + {"(*Package).Markdown", Method, 19}, + {"(*Package).Parser", Method, 19}, + {"(*Package).Printer", Method, 19}, + {"(*Package).Synopsis", Method, 19}, + {"(*Package).Text", Method, 19}, + {"AllDecls", Const, 0}, + {"AllMethods", Const, 0}, + {"Example", Type, 0}, + {"Example.Code", Field, 0}, + {"Example.Comments", Field, 0}, + {"Example.Doc", Field, 0}, + {"Example.EmptyOutput", Field, 1}, + {"Example.Name", Field, 0}, + {"Example.Order", Field, 1}, + {"Example.Output", Field, 0}, + {"Example.Play", Field, 1}, + {"Example.Suffix", Field, 14}, + {"Example.Unordered", Field, 7}, + {"Examples", Func, 0}, + {"Filter", Type, 0}, + {"Func", Type, 0}, + {"Func.Decl", Field, 0}, + {"Func.Doc", Field, 0}, + {"Func.Examples", Field, 14}, + {"Func.Level", Field, 0}, + {"Func.Name", Field, 0}, + {"Func.Orig", Field, 0}, + {"Func.Recv", Field, 0}, + {"IllegalPrefixes", Var, 1}, + {"IsPredeclared", Func, 8}, + {"Mode", Type, 0}, + {"New", Func, 0}, + {"NewFromFiles", Func, 14}, + {"Note", Type, 1}, + {"Note.Body", Field, 1}, + {"Note.End", Field, 1}, + {"Note.Pos", Field, 1}, + {"Note.UID", Field, 1}, + {"Package", Type, 0}, + {"Package.Bugs", Field, 0}, + {"Package.Consts", Field, 0}, + {"Package.Doc", Field, 0}, + {"Package.Examples", Field, 14}, + {"Package.Filenames", Field, 0}, + {"Package.Funcs", Field, 0}, + {"Package.ImportPath", Field, 0}, + {"Package.Imports", Field, 0}, + {"Package.Name", Field, 0}, + {"Package.Notes", Field, 1}, + {"Package.Types", Field, 0}, + {"Package.Vars", Field, 0}, + {"PreserveAST", Const, 12}, + {"Synopsis", Func, 0}, + {"ToHTML", Func, 0}, + {"ToText", Func, 0}, + {"Type", Type, 0}, + {"Type.Consts", Field, 0}, + {"Type.Decl", Field, 0}, + {"Type.Doc", Field, 0}, + {"Type.Examples", Field, 14}, + {"Type.Funcs", Field, 0}, + {"Type.Methods", Field, 0}, + {"Type.Name", Field, 0}, + {"Type.Vars", Field, 0}, + {"Value", Type, 0}, + {"Value.Decl", Field, 0}, + {"Value.Doc", Field, 0}, + {"Value.Names", Field, 0}, + }, + "go/doc/comment": { + {"(*DocLink).DefaultURL", Method, 19}, + {"(*Heading).DefaultID", Method, 19}, + {"(*List).BlankBefore", Method, 19}, + {"(*List).BlankBetween", Method, 19}, + {"(*Parser).Parse", Method, 19}, + {"(*Printer).Comment", Method, 19}, + {"(*Printer).HTML", Method, 19}, + {"(*Printer).Markdown", Method, 19}, + {"(*Printer).Text", Method, 19}, + {"Block", Type, 19}, + {"Code", Type, 19}, + {"Code.Text", Field, 19}, + {"DefaultLookupPackage", Func, 19}, + {"Doc", Type, 19}, + {"Doc.Content", Field, 19}, + {"Doc.Links", Field, 19}, + {"DocLink", Type, 19}, + {"DocLink.ImportPath", Field, 19}, + {"DocLink.Name", Field, 19}, + {"DocLink.Recv", Field, 19}, + {"DocLink.Text", Field, 19}, + {"Heading", Type, 19}, + {"Heading.Text", Field, 19}, + {"Italic", Type, 19}, + {"Link", Type, 19}, + {"Link.Auto", Field, 19}, + {"Link.Text", Field, 19}, + {"Link.URL", Field, 19}, + {"LinkDef", Type, 19}, + {"LinkDef.Text", Field, 19}, + {"LinkDef.URL", Field, 19}, + {"LinkDef.Used", Field, 19}, + {"List", Type, 19}, + {"List.ForceBlankBefore", Field, 19}, + {"List.ForceBlankBetween", Field, 19}, + {"List.Items", Field, 19}, + {"ListItem", Type, 19}, + {"ListItem.Content", Field, 19}, + {"ListItem.Number", Field, 19}, + {"Paragraph", Type, 19}, + {"Paragraph.Text", Field, 19}, + {"Parser", Type, 19}, + {"Parser.LookupPackage", Field, 19}, + {"Parser.LookupSym", Field, 19}, + {"Parser.Words", Field, 19}, + {"Plain", Type, 19}, + {"Printer", Type, 19}, + {"Printer.DocLinkBaseURL", Field, 19}, + {"Printer.DocLinkURL", Field, 19}, + {"Printer.HeadingID", Field, 19}, + {"Printer.HeadingLevel", Field, 19}, + {"Printer.TextCodePrefix", Field, 19}, + {"Printer.TextPrefix", Field, 19}, + {"Printer.TextWidth", Field, 19}, + {"Text", Type, 19}, + }, + "go/format": { + {"Node", Func, 1}, + {"Source", Func, 1}, + }, + "go/importer": { + {"Default", Func, 5}, + {"For", Func, 5}, + {"ForCompiler", Func, 12}, + {"Lookup", Type, 5}, + }, + "go/parser": { + {"AllErrors", Const, 1}, + {"DeclarationErrors", Const, 0}, + {"ImportsOnly", Const, 0}, + {"Mode", Type, 0}, + {"PackageClauseOnly", Const, 0}, + {"ParseComments", Const, 0}, + {"ParseDir", Func, 0}, + {"ParseExpr", Func, 0}, + {"ParseExprFrom", Func, 5}, + {"ParseFile", Func, 0}, + {"SkipObjectResolution", Const, 17}, + {"SpuriousErrors", Const, 0}, + {"Trace", Const, 0}, + }, + "go/printer": { + {"(*Config).Fprint", Method, 0}, + {"CommentedNode", Type, 0}, + {"CommentedNode.Comments", Field, 0}, + {"CommentedNode.Node", Field, 0}, + {"Config", Type, 0}, + {"Config.Indent", Field, 1}, + {"Config.Mode", Field, 0}, + {"Config.Tabwidth", Field, 0}, + {"Fprint", Func, 0}, + {"Mode", Type, 0}, + {"RawFormat", Const, 0}, + {"SourcePos", Const, 0}, + {"TabIndent", Const, 0}, + {"UseSpaces", Const, 0}, + }, + "go/scanner": { + {"(*ErrorList).Add", Method, 0}, + {"(*ErrorList).RemoveMultiples", Method, 0}, + {"(*ErrorList).Reset", Method, 0}, + {"(*Scanner).Init", Method, 0}, + {"(*Scanner).Scan", Method, 0}, + {"(Error).Error", Method, 0}, + {"(ErrorList).Err", Method, 0}, + {"(ErrorList).Error", Method, 0}, + {"(ErrorList).Len", Method, 0}, + {"(ErrorList).Less", Method, 0}, + {"(ErrorList).Sort", Method, 0}, + {"(ErrorList).Swap", Method, 0}, + {"Error", Type, 0}, + {"Error.Msg", Field, 0}, + {"Error.Pos", Field, 0}, + {"ErrorHandler", Type, 0}, + {"ErrorList", Type, 0}, + {"Mode", Type, 0}, + {"PrintError", Func, 0}, + {"ScanComments", Const, 0}, + {"Scanner", Type, 0}, + {"Scanner.ErrorCount", Field, 0}, + }, + "go/token": { + {"(*File).AddLine", Method, 0}, + {"(*File).AddLineColumnInfo", Method, 11}, + {"(*File).AddLineInfo", Method, 0}, + {"(*File).Base", Method, 0}, + {"(*File).Line", Method, 0}, + {"(*File).LineCount", Method, 0}, + {"(*File).LineStart", Method, 12}, + {"(*File).Lines", Method, 21}, + {"(*File).MergeLine", Method, 2}, + {"(*File).Name", Method, 0}, + {"(*File).Offset", Method, 0}, + {"(*File).Pos", Method, 0}, + {"(*File).Position", Method, 0}, + {"(*File).PositionFor", Method, 4}, + {"(*File).SetLines", Method, 0}, + {"(*File).SetLinesForContent", Method, 0}, + {"(*File).Size", Method, 0}, + {"(*FileSet).AddFile", Method, 0}, + {"(*FileSet).Base", Method, 0}, + {"(*FileSet).File", Method, 0}, + {"(*FileSet).Iterate", Method, 0}, + {"(*FileSet).Position", Method, 0}, + {"(*FileSet).PositionFor", Method, 4}, + {"(*FileSet).Read", Method, 0}, + {"(*FileSet).RemoveFile", Method, 20}, + {"(*FileSet).Write", Method, 0}, + {"(*Position).IsValid", Method, 0}, + {"(Pos).IsValid", Method, 0}, + {"(Position).String", Method, 0}, + {"(Token).IsKeyword", Method, 0}, + {"(Token).IsLiteral", Method, 0}, + {"(Token).IsOperator", Method, 0}, + {"(Token).Precedence", Method, 0}, + {"(Token).String", Method, 0}, + {"ADD", Const, 0}, + {"ADD_ASSIGN", Const, 0}, + {"AND", Const, 0}, + {"AND_ASSIGN", Const, 0}, + {"AND_NOT", Const, 0}, + {"AND_NOT_ASSIGN", Const, 0}, + {"ARROW", Const, 0}, + {"ASSIGN", Const, 0}, + {"BREAK", Const, 0}, + {"CASE", Const, 0}, + {"CHAN", Const, 0}, + {"CHAR", Const, 0}, + {"COLON", Const, 0}, + {"COMMA", Const, 0}, + {"COMMENT", Const, 0}, + {"CONST", Const, 0}, + {"CONTINUE", Const, 0}, + {"DEC", Const, 0}, + {"DEFAULT", Const, 0}, + {"DEFER", Const, 0}, + {"DEFINE", Const, 0}, + {"ELLIPSIS", Const, 0}, + {"ELSE", Const, 0}, + {"EOF", Const, 0}, + {"EQL", Const, 0}, + {"FALLTHROUGH", Const, 0}, + {"FLOAT", Const, 0}, + {"FOR", Const, 0}, + {"FUNC", Const, 0}, + {"File", Type, 0}, + {"FileSet", Type, 0}, + {"GEQ", Const, 0}, + {"GO", Const, 0}, + {"GOTO", Const, 0}, + {"GTR", Const, 0}, + {"HighestPrec", Const, 0}, + {"IDENT", Const, 0}, + {"IF", Const, 0}, + {"ILLEGAL", Const, 0}, + {"IMAG", Const, 0}, + {"IMPORT", Const, 0}, + {"INC", Const, 0}, + {"INT", Const, 0}, + {"INTERFACE", Const, 0}, + {"IsExported", Func, 13}, + {"IsIdentifier", Func, 13}, + {"IsKeyword", Func, 13}, + {"LAND", Const, 0}, + {"LBRACE", Const, 0}, + {"LBRACK", Const, 0}, + {"LEQ", Const, 0}, + {"LOR", Const, 0}, + {"LPAREN", Const, 0}, + {"LSS", Const, 0}, + {"Lookup", Func, 0}, + {"LowestPrec", Const, 0}, + {"MAP", Const, 0}, + {"MUL", Const, 0}, + {"MUL_ASSIGN", Const, 0}, + {"NEQ", Const, 0}, + {"NOT", Const, 0}, + {"NewFileSet", Func, 0}, + {"NoPos", Const, 0}, + {"OR", Const, 0}, + {"OR_ASSIGN", Const, 0}, + {"PACKAGE", Const, 0}, + {"PERIOD", Const, 0}, + {"Pos", Type, 0}, + {"Position", Type, 0}, + {"Position.Column", Field, 0}, + {"Position.Filename", Field, 0}, + {"Position.Line", Field, 0}, + {"Position.Offset", Field, 0}, + {"QUO", Const, 0}, + {"QUO_ASSIGN", Const, 0}, + {"RANGE", Const, 0}, + {"RBRACE", Const, 0}, + {"RBRACK", Const, 0}, + {"REM", Const, 0}, + {"REM_ASSIGN", Const, 0}, + {"RETURN", Const, 0}, + {"RPAREN", Const, 0}, + {"SELECT", Const, 0}, + {"SEMICOLON", Const, 0}, + {"SHL", Const, 0}, + {"SHL_ASSIGN", Const, 0}, + {"SHR", Const, 0}, + {"SHR_ASSIGN", Const, 0}, + {"STRING", Const, 0}, + {"STRUCT", Const, 0}, + {"SUB", Const, 0}, + {"SUB_ASSIGN", Const, 0}, + {"SWITCH", Const, 0}, + {"TILDE", Const, 18}, + {"TYPE", Const, 0}, + {"Token", Type, 0}, + {"UnaryPrec", Const, 0}, + {"VAR", Const, 0}, + {"XOR", Const, 0}, + {"XOR_ASSIGN", Const, 0}, + }, + "go/types": { + {"(*Alias).Obj", Method, 22}, + {"(*Alias).String", Method, 22}, + {"(*Alias).Underlying", Method, 22}, + {"(*ArgumentError).Error", Method, 18}, + {"(*ArgumentError).Unwrap", Method, 18}, + {"(*Array).Elem", Method, 5}, + {"(*Array).Len", Method, 5}, + {"(*Array).String", Method, 5}, + {"(*Array).Underlying", Method, 5}, + {"(*Basic).Info", Method, 5}, + {"(*Basic).Kind", Method, 5}, + {"(*Basic).Name", Method, 5}, + {"(*Basic).String", Method, 5}, + {"(*Basic).Underlying", Method, 5}, + {"(*Builtin).Exported", Method, 5}, + {"(*Builtin).Id", Method, 5}, + {"(*Builtin).Name", Method, 5}, + {"(*Builtin).Parent", Method, 5}, + {"(*Builtin).Pkg", Method, 5}, + {"(*Builtin).Pos", Method, 5}, + {"(*Builtin).String", Method, 5}, + {"(*Builtin).Type", Method, 5}, + {"(*Chan).Dir", Method, 5}, + {"(*Chan).Elem", Method, 5}, + {"(*Chan).String", Method, 5}, + {"(*Chan).Underlying", Method, 5}, + {"(*Checker).Files", Method, 5}, + {"(*Config).Check", Method, 5}, + {"(*Const).Exported", Method, 5}, + {"(*Const).Id", Method, 5}, + {"(*Const).Name", Method, 5}, + {"(*Const).Parent", Method, 5}, + {"(*Const).Pkg", Method, 5}, + {"(*Const).Pos", Method, 5}, + {"(*Const).String", Method, 5}, + {"(*Const).Type", Method, 5}, + {"(*Const).Val", Method, 5}, + {"(*Func).Exported", Method, 5}, + {"(*Func).FullName", Method, 5}, + {"(*Func).Id", Method, 5}, + {"(*Func).Name", Method, 5}, + {"(*Func).Origin", Method, 19}, + {"(*Func).Parent", Method, 5}, + {"(*Func).Pkg", Method, 5}, + {"(*Func).Pos", Method, 5}, + {"(*Func).Scope", Method, 5}, + {"(*Func).String", Method, 5}, + {"(*Func).Type", Method, 5}, + {"(*Info).ObjectOf", Method, 5}, + {"(*Info).PkgNameOf", Method, 22}, + {"(*Info).TypeOf", Method, 5}, + {"(*Initializer).String", Method, 5}, + {"(*Interface).Complete", Method, 5}, + {"(*Interface).Embedded", Method, 5}, + {"(*Interface).EmbeddedType", Method, 11}, + {"(*Interface).Empty", Method, 5}, + {"(*Interface).ExplicitMethod", Method, 5}, + {"(*Interface).IsComparable", Method, 18}, + {"(*Interface).IsImplicit", Method, 18}, + {"(*Interface).IsMethodSet", Method, 18}, + {"(*Interface).MarkImplicit", Method, 18}, + {"(*Interface).Method", Method, 5}, + {"(*Interface).NumEmbeddeds", Method, 5}, + {"(*Interface).NumExplicitMethods", Method, 5}, + {"(*Interface).NumMethods", Method, 5}, + {"(*Interface).String", Method, 5}, + {"(*Interface).Underlying", Method, 5}, + {"(*Label).Exported", Method, 5}, + {"(*Label).Id", Method, 5}, + {"(*Label).Name", Method, 5}, + {"(*Label).Parent", Method, 5}, + {"(*Label).Pkg", Method, 5}, + {"(*Label).Pos", Method, 5}, + {"(*Label).String", Method, 5}, + {"(*Label).Type", Method, 5}, + {"(*Map).Elem", Method, 5}, + {"(*Map).Key", Method, 5}, + {"(*Map).String", Method, 5}, + {"(*Map).Underlying", Method, 5}, + {"(*MethodSet).At", Method, 5}, + {"(*MethodSet).Len", Method, 5}, + {"(*MethodSet).Lookup", Method, 5}, + {"(*MethodSet).String", Method, 5}, + {"(*Named).AddMethod", Method, 5}, + {"(*Named).Method", Method, 5}, + {"(*Named).NumMethods", Method, 5}, + {"(*Named).Obj", Method, 5}, + {"(*Named).Origin", Method, 18}, + {"(*Named).SetTypeParams", Method, 18}, + {"(*Named).SetUnderlying", Method, 5}, + {"(*Named).String", Method, 5}, + {"(*Named).TypeArgs", Method, 18}, + {"(*Named).TypeParams", Method, 18}, + {"(*Named).Underlying", Method, 5}, + {"(*Nil).Exported", Method, 5}, + {"(*Nil).Id", Method, 5}, + {"(*Nil).Name", Method, 5}, + {"(*Nil).Parent", Method, 5}, + {"(*Nil).Pkg", Method, 5}, + {"(*Nil).Pos", Method, 5}, + {"(*Nil).String", Method, 5}, + {"(*Nil).Type", Method, 5}, + {"(*Package).Complete", Method, 5}, + {"(*Package).GoVersion", Method, 21}, + {"(*Package).Imports", Method, 5}, + {"(*Package).MarkComplete", Method, 5}, + {"(*Package).Name", Method, 5}, + {"(*Package).Path", Method, 5}, + {"(*Package).Scope", Method, 5}, + {"(*Package).SetImports", Method, 5}, + {"(*Package).SetName", Method, 6}, + {"(*Package).String", Method, 5}, + {"(*PkgName).Exported", Method, 5}, + {"(*PkgName).Id", Method, 5}, + {"(*PkgName).Imported", Method, 5}, + {"(*PkgName).Name", Method, 5}, + {"(*PkgName).Parent", Method, 5}, + {"(*PkgName).Pkg", Method, 5}, + {"(*PkgName).Pos", Method, 5}, + {"(*PkgName).String", Method, 5}, + {"(*PkgName).Type", Method, 5}, + {"(*Pointer).Elem", Method, 5}, + {"(*Pointer).String", Method, 5}, + {"(*Pointer).Underlying", Method, 5}, + {"(*Scope).Child", Method, 5}, + {"(*Scope).Contains", Method, 5}, + {"(*Scope).End", Method, 5}, + {"(*Scope).Innermost", Method, 5}, + {"(*Scope).Insert", Method, 5}, + {"(*Scope).Len", Method, 5}, + {"(*Scope).Lookup", Method, 5}, + {"(*Scope).LookupParent", Method, 5}, + {"(*Scope).Names", Method, 5}, + {"(*Scope).NumChildren", Method, 5}, + {"(*Scope).Parent", Method, 5}, + {"(*Scope).Pos", Method, 5}, + {"(*Scope).String", Method, 5}, + {"(*Scope).WriteTo", Method, 5}, + {"(*Selection).Index", Method, 5}, + {"(*Selection).Indirect", Method, 5}, + {"(*Selection).Kind", Method, 5}, + {"(*Selection).Obj", Method, 5}, + {"(*Selection).Recv", Method, 5}, + {"(*Selection).String", Method, 5}, + {"(*Selection).Type", Method, 5}, + {"(*Signature).Params", Method, 5}, + {"(*Signature).Recv", Method, 5}, + {"(*Signature).RecvTypeParams", Method, 18}, + {"(*Signature).Results", Method, 5}, + {"(*Signature).String", Method, 5}, + {"(*Signature).TypeParams", Method, 18}, + {"(*Signature).Underlying", Method, 5}, + {"(*Signature).Variadic", Method, 5}, + {"(*Slice).Elem", Method, 5}, + {"(*Slice).String", Method, 5}, + {"(*Slice).Underlying", Method, 5}, + {"(*StdSizes).Alignof", Method, 5}, + {"(*StdSizes).Offsetsof", Method, 5}, + {"(*StdSizes).Sizeof", Method, 5}, + {"(*Struct).Field", Method, 5}, + {"(*Struct).NumFields", Method, 5}, + {"(*Struct).String", Method, 5}, + {"(*Struct).Tag", Method, 5}, + {"(*Struct).Underlying", Method, 5}, + {"(*Term).String", Method, 18}, + {"(*Term).Tilde", Method, 18}, + {"(*Term).Type", Method, 18}, + {"(*Tuple).At", Method, 5}, + {"(*Tuple).Len", Method, 5}, + {"(*Tuple).String", Method, 5}, + {"(*Tuple).Underlying", Method, 5}, + {"(*TypeList).At", Method, 18}, + {"(*TypeList).Len", Method, 18}, + {"(*TypeName).Exported", Method, 5}, + {"(*TypeName).Id", Method, 5}, + {"(*TypeName).IsAlias", Method, 9}, + {"(*TypeName).Name", Method, 5}, + {"(*TypeName).Parent", Method, 5}, + {"(*TypeName).Pkg", Method, 5}, + {"(*TypeName).Pos", Method, 5}, + {"(*TypeName).String", Method, 5}, + {"(*TypeName).Type", Method, 5}, + {"(*TypeParam).Constraint", Method, 18}, + {"(*TypeParam).Index", Method, 18}, + {"(*TypeParam).Obj", Method, 18}, + {"(*TypeParam).SetConstraint", Method, 18}, + {"(*TypeParam).String", Method, 18}, + {"(*TypeParam).Underlying", Method, 18}, + {"(*TypeParamList).At", Method, 18}, + {"(*TypeParamList).Len", Method, 18}, + {"(*Union).Len", Method, 18}, + {"(*Union).String", Method, 18}, + {"(*Union).Term", Method, 18}, + {"(*Union).Underlying", Method, 18}, + {"(*Var).Anonymous", Method, 5}, + {"(*Var).Embedded", Method, 11}, + {"(*Var).Exported", Method, 5}, + {"(*Var).Id", Method, 5}, + {"(*Var).IsField", Method, 5}, + {"(*Var).Name", Method, 5}, + {"(*Var).Origin", Method, 19}, + {"(*Var).Parent", Method, 5}, + {"(*Var).Pkg", Method, 5}, + {"(*Var).Pos", Method, 5}, + {"(*Var).String", Method, 5}, + {"(*Var).Type", Method, 5}, + {"(Checker).ObjectOf", Method, 5}, + {"(Checker).PkgNameOf", Method, 22}, + {"(Checker).TypeOf", Method, 5}, + {"(Error).Error", Method, 5}, + {"(TypeAndValue).Addressable", Method, 5}, + {"(TypeAndValue).Assignable", Method, 5}, + {"(TypeAndValue).HasOk", Method, 5}, + {"(TypeAndValue).IsBuiltin", Method, 5}, + {"(TypeAndValue).IsNil", Method, 5}, + {"(TypeAndValue).IsType", Method, 5}, + {"(TypeAndValue).IsValue", Method, 5}, + {"(TypeAndValue).IsVoid", Method, 5}, + {"Alias", Type, 22}, + {"ArgumentError", Type, 18}, + {"ArgumentError.Err", Field, 18}, + {"ArgumentError.Index", Field, 18}, + {"Array", Type, 5}, + {"AssertableTo", Func, 5}, + {"AssignableTo", Func, 5}, + {"Basic", Type, 5}, + {"BasicInfo", Type, 5}, + {"BasicKind", Type, 5}, + {"Bool", Const, 5}, + {"Builtin", Type, 5}, + {"Byte", Const, 5}, + {"Chan", Type, 5}, + {"ChanDir", Type, 5}, + {"CheckExpr", Func, 13}, + {"Checker", Type, 5}, + {"Checker.Info", Field, 5}, + {"Comparable", Func, 5}, + {"Complex128", Const, 5}, + {"Complex64", Const, 5}, + {"Config", Type, 5}, + {"Config.Context", Field, 18}, + {"Config.DisableUnusedImportCheck", Field, 5}, + {"Config.Error", Field, 5}, + {"Config.FakeImportC", Field, 5}, + {"Config.GoVersion", Field, 18}, + {"Config.IgnoreFuncBodies", Field, 5}, + {"Config.Importer", Field, 5}, + {"Config.Sizes", Field, 5}, + {"Const", Type, 5}, + {"Context", Type, 18}, + {"ConvertibleTo", Func, 5}, + {"DefPredeclaredTestFuncs", Func, 5}, + {"Default", Func, 8}, + {"Error", Type, 5}, + {"Error.Fset", Field, 5}, + {"Error.Msg", Field, 5}, + {"Error.Pos", Field, 5}, + {"Error.Soft", Field, 5}, + {"Eval", Func, 5}, + {"ExprString", Func, 5}, + {"FieldVal", Const, 5}, + {"Float32", Const, 5}, + {"Float64", Const, 5}, + {"Func", Type, 5}, + {"Id", Func, 5}, + {"Identical", Func, 5}, + {"IdenticalIgnoreTags", Func, 8}, + {"Implements", Func, 5}, + {"ImportMode", Type, 6}, + {"Importer", Type, 5}, + {"ImporterFrom", Type, 6}, + {"Info", Type, 5}, + {"Info.Defs", Field, 5}, + {"Info.FileVersions", Field, 22}, + {"Info.Implicits", Field, 5}, + {"Info.InitOrder", Field, 5}, + {"Info.Instances", Field, 18}, + {"Info.Scopes", Field, 5}, + {"Info.Selections", Field, 5}, + {"Info.Types", Field, 5}, + {"Info.Uses", Field, 5}, + {"Initializer", Type, 5}, + {"Initializer.Lhs", Field, 5}, + {"Initializer.Rhs", Field, 5}, + {"Instance", Type, 18}, + {"Instance.Type", Field, 18}, + {"Instance.TypeArgs", Field, 18}, + {"Instantiate", Func, 18}, + {"Int", Const, 5}, + {"Int16", Const, 5}, + {"Int32", Const, 5}, + {"Int64", Const, 5}, + {"Int8", Const, 5}, + {"Interface", Type, 5}, + {"Invalid", Const, 5}, + {"IsBoolean", Const, 5}, + {"IsComplex", Const, 5}, + {"IsConstType", Const, 5}, + {"IsFloat", Const, 5}, + {"IsInteger", Const, 5}, + {"IsInterface", Func, 5}, + {"IsNumeric", Const, 5}, + {"IsOrdered", Const, 5}, + {"IsString", Const, 5}, + {"IsUnsigned", Const, 5}, + {"IsUntyped", Const, 5}, + {"Label", Type, 5}, + {"LookupFieldOrMethod", Func, 5}, + {"Map", Type, 5}, + {"MethodExpr", Const, 5}, + {"MethodSet", Type, 5}, + {"MethodVal", Const, 5}, + {"MissingMethod", Func, 5}, + {"Named", Type, 5}, + {"NewAlias", Func, 22}, + {"NewArray", Func, 5}, + {"NewChan", Func, 5}, + {"NewChecker", Func, 5}, + {"NewConst", Func, 5}, + {"NewContext", Func, 18}, + {"NewField", Func, 5}, + {"NewFunc", Func, 5}, + {"NewInterface", Func, 5}, + {"NewInterfaceType", Func, 11}, + {"NewLabel", Func, 5}, + {"NewMap", Func, 5}, + {"NewMethodSet", Func, 5}, + {"NewNamed", Func, 5}, + {"NewPackage", Func, 5}, + {"NewParam", Func, 5}, + {"NewPkgName", Func, 5}, + {"NewPointer", Func, 5}, + {"NewScope", Func, 5}, + {"NewSignature", Func, 5}, + {"NewSignatureType", Func, 18}, + {"NewSlice", Func, 5}, + {"NewStruct", Func, 5}, + {"NewTerm", Func, 18}, + {"NewTuple", Func, 5}, + {"NewTypeName", Func, 5}, + {"NewTypeParam", Func, 18}, + {"NewUnion", Func, 18}, + {"NewVar", Func, 5}, + {"Nil", Type, 5}, + {"Object", Type, 5}, + {"ObjectString", Func, 5}, + {"Package", Type, 5}, + {"PkgName", Type, 5}, + {"Pointer", Type, 5}, + {"Qualifier", Type, 5}, + {"RecvOnly", Const, 5}, + {"RelativeTo", Func, 5}, + {"Rune", Const, 5}, + {"Satisfies", Func, 20}, + {"Scope", Type, 5}, + {"Selection", Type, 5}, + {"SelectionKind", Type, 5}, + {"SelectionString", Func, 5}, + {"SendOnly", Const, 5}, + {"SendRecv", Const, 5}, + {"Signature", Type, 5}, + {"Sizes", Type, 5}, + {"SizesFor", Func, 9}, + {"Slice", Type, 5}, + {"StdSizes", Type, 5}, + {"StdSizes.MaxAlign", Field, 5}, + {"StdSizes.WordSize", Field, 5}, + {"String", Const, 5}, + {"Struct", Type, 5}, + {"Term", Type, 18}, + {"Tuple", Type, 5}, + {"Typ", Var, 5}, + {"Type", Type, 5}, + {"TypeAndValue", Type, 5}, + {"TypeAndValue.Type", Field, 5}, + {"TypeAndValue.Value", Field, 5}, + {"TypeList", Type, 18}, + {"TypeName", Type, 5}, + {"TypeParam", Type, 18}, + {"TypeParamList", Type, 18}, + {"TypeString", Func, 5}, + {"Uint", Const, 5}, + {"Uint16", Const, 5}, + {"Uint32", Const, 5}, + {"Uint64", Const, 5}, + {"Uint8", Const, 5}, + {"Uintptr", Const, 5}, + {"Unalias", Func, 22}, + {"Union", Type, 18}, + {"Universe", Var, 5}, + {"Unsafe", Var, 5}, + {"UnsafePointer", Const, 5}, + {"UntypedBool", Const, 5}, + {"UntypedComplex", Const, 5}, + {"UntypedFloat", Const, 5}, + {"UntypedInt", Const, 5}, + {"UntypedNil", Const, 5}, + {"UntypedRune", Const, 5}, + {"UntypedString", Const, 5}, + {"Var", Type, 5}, + {"WriteExpr", Func, 5}, + {"WriteSignature", Func, 5}, + {"WriteType", Func, 5}, + }, + "go/version": { + {"Compare", Func, 22}, + {"IsValid", Func, 22}, + {"Lang", Func, 22}, + }, + "hash": { + {"Hash", Type, 0}, + {"Hash32", Type, 0}, + {"Hash64", Type, 0}, + }, + "hash/adler32": { + {"Checksum", Func, 0}, + {"New", Func, 0}, + {"Size", Const, 0}, + }, + "hash/crc32": { + {"Castagnoli", Const, 0}, + {"Checksum", Func, 0}, + {"ChecksumIEEE", Func, 0}, + {"IEEE", Const, 0}, + {"IEEETable", Var, 0}, + {"Koopman", Const, 0}, + {"MakeTable", Func, 0}, + {"New", Func, 0}, + {"NewIEEE", Func, 0}, + {"Size", Const, 0}, + {"Table", Type, 0}, + {"Update", Func, 0}, + }, + "hash/crc64": { + {"Checksum", Func, 0}, + {"ECMA", Const, 0}, + {"ISO", Const, 0}, + {"MakeTable", Func, 0}, + {"New", Func, 0}, + {"Size", Const, 0}, + {"Table", Type, 0}, + {"Update", Func, 0}, + }, + "hash/fnv": { + {"New128", Func, 9}, + {"New128a", Func, 9}, + {"New32", Func, 0}, + {"New32a", Func, 0}, + {"New64", Func, 0}, + {"New64a", Func, 0}, + }, + "hash/maphash": { + {"(*Hash).BlockSize", Method, 14}, + {"(*Hash).Reset", Method, 14}, + {"(*Hash).Seed", Method, 14}, + {"(*Hash).SetSeed", Method, 14}, + {"(*Hash).Size", Method, 14}, + {"(*Hash).Sum", Method, 14}, + {"(*Hash).Sum64", Method, 14}, + {"(*Hash).Write", Method, 14}, + {"(*Hash).WriteByte", Method, 14}, + {"(*Hash).WriteString", Method, 14}, + {"Bytes", Func, 19}, + {"Hash", Type, 14}, + {"MakeSeed", Func, 14}, + {"Seed", Type, 14}, + {"String", Func, 19}, + }, + "html": { + {"EscapeString", Func, 0}, + {"UnescapeString", Func, 0}, + }, + "html/template": { + {"(*Error).Error", Method, 0}, + {"(*Template).AddParseTree", Method, 0}, + {"(*Template).Clone", Method, 0}, + {"(*Template).DefinedTemplates", Method, 6}, + {"(*Template).Delims", Method, 0}, + {"(*Template).Execute", Method, 0}, + {"(*Template).ExecuteTemplate", Method, 0}, + {"(*Template).Funcs", Method, 0}, + {"(*Template).Lookup", Method, 0}, + {"(*Template).Name", Method, 0}, + {"(*Template).New", Method, 0}, + {"(*Template).Option", Method, 5}, + {"(*Template).Parse", Method, 0}, + {"(*Template).ParseFS", Method, 16}, + {"(*Template).ParseFiles", Method, 0}, + {"(*Template).ParseGlob", Method, 0}, + {"(*Template).Templates", Method, 0}, + {"CSS", Type, 0}, + {"ErrAmbigContext", Const, 0}, + {"ErrBadHTML", Const, 0}, + {"ErrBranchEnd", Const, 0}, + {"ErrEndContext", Const, 0}, + {"ErrJSTemplate", Const, 21}, + {"ErrNoSuchTemplate", Const, 0}, + {"ErrOutputContext", Const, 0}, + {"ErrPartialCharset", Const, 0}, + {"ErrPartialEscape", Const, 0}, + {"ErrPredefinedEscaper", Const, 9}, + {"ErrRangeLoopReentry", Const, 0}, + {"ErrSlashAmbig", Const, 0}, + {"Error", Type, 0}, + {"Error.Description", Field, 0}, + {"Error.ErrorCode", Field, 0}, + {"Error.Line", Field, 0}, + {"Error.Name", Field, 0}, + {"Error.Node", Field, 4}, + {"ErrorCode", Type, 0}, + {"FuncMap", Type, 0}, + {"HTML", Type, 0}, + {"HTMLAttr", Type, 0}, + {"HTMLEscape", Func, 0}, + {"HTMLEscapeString", Func, 0}, + {"HTMLEscaper", Func, 0}, + {"IsTrue", Func, 6}, + {"JS", Type, 0}, + {"JSEscape", Func, 0}, + {"JSEscapeString", Func, 0}, + {"JSEscaper", Func, 0}, + {"JSStr", Type, 0}, + {"Must", Func, 0}, + {"New", Func, 0}, + {"OK", Const, 0}, + {"ParseFS", Func, 16}, + {"ParseFiles", Func, 0}, + {"ParseGlob", Func, 0}, + {"Srcset", Type, 10}, + {"Template", Type, 0}, + {"Template.Tree", Field, 2}, + {"URL", Type, 0}, + {"URLQueryEscaper", Func, 0}, + }, + "image": { + {"(*Alpha).AlphaAt", Method, 4}, + {"(*Alpha).At", Method, 0}, + {"(*Alpha).Bounds", Method, 0}, + {"(*Alpha).ColorModel", Method, 0}, + {"(*Alpha).Opaque", Method, 0}, + {"(*Alpha).PixOffset", Method, 0}, + {"(*Alpha).RGBA64At", Method, 17}, + {"(*Alpha).Set", Method, 0}, + {"(*Alpha).SetAlpha", Method, 0}, + {"(*Alpha).SetRGBA64", Method, 17}, + {"(*Alpha).SubImage", Method, 0}, + {"(*Alpha16).Alpha16At", Method, 4}, + {"(*Alpha16).At", Method, 0}, + {"(*Alpha16).Bounds", Method, 0}, + {"(*Alpha16).ColorModel", Method, 0}, + {"(*Alpha16).Opaque", Method, 0}, + {"(*Alpha16).PixOffset", Method, 0}, + {"(*Alpha16).RGBA64At", Method, 17}, + {"(*Alpha16).Set", Method, 0}, + {"(*Alpha16).SetAlpha16", Method, 0}, + {"(*Alpha16).SetRGBA64", Method, 17}, + {"(*Alpha16).SubImage", Method, 0}, + {"(*CMYK).At", Method, 5}, + {"(*CMYK).Bounds", Method, 5}, + {"(*CMYK).CMYKAt", Method, 5}, + {"(*CMYK).ColorModel", Method, 5}, + {"(*CMYK).Opaque", Method, 5}, + {"(*CMYK).PixOffset", Method, 5}, + {"(*CMYK).RGBA64At", Method, 17}, + {"(*CMYK).Set", Method, 5}, + {"(*CMYK).SetCMYK", Method, 5}, + {"(*CMYK).SetRGBA64", Method, 17}, + {"(*CMYK).SubImage", Method, 5}, + {"(*Gray).At", Method, 0}, + {"(*Gray).Bounds", Method, 0}, + {"(*Gray).ColorModel", Method, 0}, + {"(*Gray).GrayAt", Method, 4}, + {"(*Gray).Opaque", Method, 0}, + {"(*Gray).PixOffset", Method, 0}, + {"(*Gray).RGBA64At", Method, 17}, + {"(*Gray).Set", Method, 0}, + {"(*Gray).SetGray", Method, 0}, + {"(*Gray).SetRGBA64", Method, 17}, + {"(*Gray).SubImage", Method, 0}, + {"(*Gray16).At", Method, 0}, + {"(*Gray16).Bounds", Method, 0}, + {"(*Gray16).ColorModel", Method, 0}, + {"(*Gray16).Gray16At", Method, 4}, + {"(*Gray16).Opaque", Method, 0}, + {"(*Gray16).PixOffset", Method, 0}, + {"(*Gray16).RGBA64At", Method, 17}, + {"(*Gray16).Set", Method, 0}, + {"(*Gray16).SetGray16", Method, 0}, + {"(*Gray16).SetRGBA64", Method, 17}, + {"(*Gray16).SubImage", Method, 0}, + {"(*NRGBA).At", Method, 0}, + {"(*NRGBA).Bounds", Method, 0}, + {"(*NRGBA).ColorModel", Method, 0}, + {"(*NRGBA).NRGBAAt", Method, 4}, + {"(*NRGBA).Opaque", Method, 0}, + {"(*NRGBA).PixOffset", Method, 0}, + {"(*NRGBA).RGBA64At", Method, 17}, + {"(*NRGBA).Set", Method, 0}, + {"(*NRGBA).SetNRGBA", Method, 0}, + {"(*NRGBA).SetRGBA64", Method, 17}, + {"(*NRGBA).SubImage", Method, 0}, + {"(*NRGBA64).At", Method, 0}, + {"(*NRGBA64).Bounds", Method, 0}, + {"(*NRGBA64).ColorModel", Method, 0}, + {"(*NRGBA64).NRGBA64At", Method, 4}, + {"(*NRGBA64).Opaque", Method, 0}, + {"(*NRGBA64).PixOffset", Method, 0}, + {"(*NRGBA64).RGBA64At", Method, 17}, + {"(*NRGBA64).Set", Method, 0}, + {"(*NRGBA64).SetNRGBA64", Method, 0}, + {"(*NRGBA64).SetRGBA64", Method, 17}, + {"(*NRGBA64).SubImage", Method, 0}, + {"(*NYCbCrA).AOffset", Method, 6}, + {"(*NYCbCrA).At", Method, 6}, + {"(*NYCbCrA).Bounds", Method, 6}, + {"(*NYCbCrA).COffset", Method, 6}, + {"(*NYCbCrA).ColorModel", Method, 6}, + {"(*NYCbCrA).NYCbCrAAt", Method, 6}, + {"(*NYCbCrA).Opaque", Method, 6}, + {"(*NYCbCrA).RGBA64At", Method, 17}, + {"(*NYCbCrA).SubImage", Method, 6}, + {"(*NYCbCrA).YCbCrAt", Method, 6}, + {"(*NYCbCrA).YOffset", Method, 6}, + {"(*Paletted).At", Method, 0}, + {"(*Paletted).Bounds", Method, 0}, + {"(*Paletted).ColorIndexAt", Method, 0}, + {"(*Paletted).ColorModel", Method, 0}, + {"(*Paletted).Opaque", Method, 0}, + {"(*Paletted).PixOffset", Method, 0}, + {"(*Paletted).RGBA64At", Method, 17}, + {"(*Paletted).Set", Method, 0}, + {"(*Paletted).SetColorIndex", Method, 0}, + {"(*Paletted).SetRGBA64", Method, 17}, + {"(*Paletted).SubImage", Method, 0}, + {"(*RGBA).At", Method, 0}, + {"(*RGBA).Bounds", Method, 0}, + {"(*RGBA).ColorModel", Method, 0}, + {"(*RGBA).Opaque", Method, 0}, + {"(*RGBA).PixOffset", Method, 0}, + {"(*RGBA).RGBA64At", Method, 17}, + {"(*RGBA).RGBAAt", Method, 4}, + {"(*RGBA).Set", Method, 0}, + {"(*RGBA).SetRGBA", Method, 0}, + {"(*RGBA).SetRGBA64", Method, 17}, + {"(*RGBA).SubImage", Method, 0}, + {"(*RGBA64).At", Method, 0}, + {"(*RGBA64).Bounds", Method, 0}, + {"(*RGBA64).ColorModel", Method, 0}, + {"(*RGBA64).Opaque", Method, 0}, + {"(*RGBA64).PixOffset", Method, 0}, + {"(*RGBA64).RGBA64At", Method, 4}, + {"(*RGBA64).Set", Method, 0}, + {"(*RGBA64).SetRGBA64", Method, 0}, + {"(*RGBA64).SubImage", Method, 0}, + {"(*Uniform).At", Method, 0}, + {"(*Uniform).Bounds", Method, 0}, + {"(*Uniform).ColorModel", Method, 0}, + {"(*Uniform).Convert", Method, 0}, + {"(*Uniform).Opaque", Method, 0}, + {"(*Uniform).RGBA", Method, 0}, + {"(*Uniform).RGBA64At", Method, 17}, + {"(*YCbCr).At", Method, 0}, + {"(*YCbCr).Bounds", Method, 0}, + {"(*YCbCr).COffset", Method, 0}, + {"(*YCbCr).ColorModel", Method, 0}, + {"(*YCbCr).Opaque", Method, 0}, + {"(*YCbCr).RGBA64At", Method, 17}, + {"(*YCbCr).SubImage", Method, 0}, + {"(*YCbCr).YCbCrAt", Method, 4}, + {"(*YCbCr).YOffset", Method, 0}, + {"(Point).Add", Method, 0}, + {"(Point).Div", Method, 0}, + {"(Point).Eq", Method, 0}, + {"(Point).In", Method, 0}, + {"(Point).Mod", Method, 0}, + {"(Point).Mul", Method, 0}, + {"(Point).String", Method, 0}, + {"(Point).Sub", Method, 0}, + {"(Rectangle).Add", Method, 0}, + {"(Rectangle).At", Method, 5}, + {"(Rectangle).Bounds", Method, 5}, + {"(Rectangle).Canon", Method, 0}, + {"(Rectangle).ColorModel", Method, 5}, + {"(Rectangle).Dx", Method, 0}, + {"(Rectangle).Dy", Method, 0}, + {"(Rectangle).Empty", Method, 0}, + {"(Rectangle).Eq", Method, 0}, + {"(Rectangle).In", Method, 0}, + {"(Rectangle).Inset", Method, 0}, + {"(Rectangle).Intersect", Method, 0}, + {"(Rectangle).Overlaps", Method, 0}, + {"(Rectangle).RGBA64At", Method, 17}, + {"(Rectangle).Size", Method, 0}, + {"(Rectangle).String", Method, 0}, + {"(Rectangle).Sub", Method, 0}, + {"(Rectangle).Union", Method, 0}, + {"(YCbCrSubsampleRatio).String", Method, 0}, + {"Alpha", Type, 0}, + {"Alpha.Pix", Field, 0}, + {"Alpha.Rect", Field, 0}, + {"Alpha.Stride", Field, 0}, + {"Alpha16", Type, 0}, + {"Alpha16.Pix", Field, 0}, + {"Alpha16.Rect", Field, 0}, + {"Alpha16.Stride", Field, 0}, + {"Black", Var, 0}, + {"CMYK", Type, 5}, + {"CMYK.Pix", Field, 5}, + {"CMYK.Rect", Field, 5}, + {"CMYK.Stride", Field, 5}, + {"Config", Type, 0}, + {"Config.ColorModel", Field, 0}, + {"Config.Height", Field, 0}, + {"Config.Width", Field, 0}, + {"Decode", Func, 0}, + {"DecodeConfig", Func, 0}, + {"ErrFormat", Var, 0}, + {"Gray", Type, 0}, + {"Gray.Pix", Field, 0}, + {"Gray.Rect", Field, 0}, + {"Gray.Stride", Field, 0}, + {"Gray16", Type, 0}, + {"Gray16.Pix", Field, 0}, + {"Gray16.Rect", Field, 0}, + {"Gray16.Stride", Field, 0}, + {"Image", Type, 0}, + {"NRGBA", Type, 0}, + {"NRGBA.Pix", Field, 0}, + {"NRGBA.Rect", Field, 0}, + {"NRGBA.Stride", Field, 0}, + {"NRGBA64", Type, 0}, + {"NRGBA64.Pix", Field, 0}, + {"NRGBA64.Rect", Field, 0}, + {"NRGBA64.Stride", Field, 0}, + {"NYCbCrA", Type, 6}, + {"NYCbCrA.A", Field, 6}, + {"NYCbCrA.AStride", Field, 6}, + {"NYCbCrA.YCbCr", Field, 6}, + {"NewAlpha", Func, 0}, + {"NewAlpha16", Func, 0}, + {"NewCMYK", Func, 5}, + {"NewGray", Func, 0}, + {"NewGray16", Func, 0}, + {"NewNRGBA", Func, 0}, + {"NewNRGBA64", Func, 0}, + {"NewNYCbCrA", Func, 6}, + {"NewPaletted", Func, 0}, + {"NewRGBA", Func, 0}, + {"NewRGBA64", Func, 0}, + {"NewUniform", Func, 0}, + {"NewYCbCr", Func, 0}, + {"Opaque", Var, 0}, + {"Paletted", Type, 0}, + {"Paletted.Palette", Field, 0}, + {"Paletted.Pix", Field, 0}, + {"Paletted.Rect", Field, 0}, + {"Paletted.Stride", Field, 0}, + {"PalettedImage", Type, 0}, + {"Point", Type, 0}, + {"Point.X", Field, 0}, + {"Point.Y", Field, 0}, + {"Pt", Func, 0}, + {"RGBA", Type, 0}, + {"RGBA.Pix", Field, 0}, + {"RGBA.Rect", Field, 0}, + {"RGBA.Stride", Field, 0}, + {"RGBA64", Type, 0}, + {"RGBA64.Pix", Field, 0}, + {"RGBA64.Rect", Field, 0}, + {"RGBA64.Stride", Field, 0}, + {"RGBA64Image", Type, 17}, + {"Rect", Func, 0}, + {"Rectangle", Type, 0}, + {"Rectangle.Max", Field, 0}, + {"Rectangle.Min", Field, 0}, + {"RegisterFormat", Func, 0}, + {"Transparent", Var, 0}, + {"Uniform", Type, 0}, + {"Uniform.C", Field, 0}, + {"White", Var, 0}, + {"YCbCr", Type, 0}, + {"YCbCr.CStride", Field, 0}, + {"YCbCr.Cb", Field, 0}, + {"YCbCr.Cr", Field, 0}, + {"YCbCr.Rect", Field, 0}, + {"YCbCr.SubsampleRatio", Field, 0}, + {"YCbCr.Y", Field, 0}, + {"YCbCr.YStride", Field, 0}, + {"YCbCrSubsampleRatio", Type, 0}, + {"YCbCrSubsampleRatio410", Const, 5}, + {"YCbCrSubsampleRatio411", Const, 5}, + {"YCbCrSubsampleRatio420", Const, 0}, + {"YCbCrSubsampleRatio422", Const, 0}, + {"YCbCrSubsampleRatio440", Const, 1}, + {"YCbCrSubsampleRatio444", Const, 0}, + {"ZP", Var, 0}, + {"ZR", Var, 0}, + }, + "image/color": { + {"(Alpha).RGBA", Method, 0}, + {"(Alpha16).RGBA", Method, 0}, + {"(CMYK).RGBA", Method, 5}, + {"(Gray).RGBA", Method, 0}, + {"(Gray16).RGBA", Method, 0}, + {"(NRGBA).RGBA", Method, 0}, + {"(NRGBA64).RGBA", Method, 0}, + {"(NYCbCrA).RGBA", Method, 6}, + {"(Palette).Convert", Method, 0}, + {"(Palette).Index", Method, 0}, + {"(RGBA).RGBA", Method, 0}, + {"(RGBA64).RGBA", Method, 0}, + {"(YCbCr).RGBA", Method, 0}, + {"Alpha", Type, 0}, + {"Alpha.A", Field, 0}, + {"Alpha16", Type, 0}, + {"Alpha16.A", Field, 0}, + {"Alpha16Model", Var, 0}, + {"AlphaModel", Var, 0}, + {"Black", Var, 0}, + {"CMYK", Type, 5}, + {"CMYK.C", Field, 5}, + {"CMYK.K", Field, 5}, + {"CMYK.M", Field, 5}, + {"CMYK.Y", Field, 5}, + {"CMYKModel", Var, 5}, + {"CMYKToRGB", Func, 5}, + {"Color", Type, 0}, + {"Gray", Type, 0}, + {"Gray.Y", Field, 0}, + {"Gray16", Type, 0}, + {"Gray16.Y", Field, 0}, + {"Gray16Model", Var, 0}, + {"GrayModel", Var, 0}, + {"Model", Type, 0}, + {"ModelFunc", Func, 0}, + {"NRGBA", Type, 0}, + {"NRGBA.A", Field, 0}, + {"NRGBA.B", Field, 0}, + {"NRGBA.G", Field, 0}, + {"NRGBA.R", Field, 0}, + {"NRGBA64", Type, 0}, + {"NRGBA64.A", Field, 0}, + {"NRGBA64.B", Field, 0}, + {"NRGBA64.G", Field, 0}, + {"NRGBA64.R", Field, 0}, + {"NRGBA64Model", Var, 0}, + {"NRGBAModel", Var, 0}, + {"NYCbCrA", Type, 6}, + {"NYCbCrA.A", Field, 6}, + {"NYCbCrA.YCbCr", Field, 6}, + {"NYCbCrAModel", Var, 6}, + {"Opaque", Var, 0}, + {"Palette", Type, 0}, + {"RGBA", Type, 0}, + {"RGBA.A", Field, 0}, + {"RGBA.B", Field, 0}, + {"RGBA.G", Field, 0}, + {"RGBA.R", Field, 0}, + {"RGBA64", Type, 0}, + {"RGBA64.A", Field, 0}, + {"RGBA64.B", Field, 0}, + {"RGBA64.G", Field, 0}, + {"RGBA64.R", Field, 0}, + {"RGBA64Model", Var, 0}, + {"RGBAModel", Var, 0}, + {"RGBToCMYK", Func, 5}, + {"RGBToYCbCr", Func, 0}, + {"Transparent", Var, 0}, + {"White", Var, 0}, + {"YCbCr", Type, 0}, + {"YCbCr.Cb", Field, 0}, + {"YCbCr.Cr", Field, 0}, + {"YCbCr.Y", Field, 0}, + {"YCbCrModel", Var, 0}, + {"YCbCrToRGB", Func, 0}, + }, + "image/color/palette": { + {"Plan9", Var, 2}, + {"WebSafe", Var, 2}, + }, + "image/draw": { + {"(Op).Draw", Method, 2}, + {"Draw", Func, 0}, + {"DrawMask", Func, 0}, + {"Drawer", Type, 2}, + {"FloydSteinberg", Var, 2}, + {"Image", Type, 0}, + {"Op", Type, 0}, + {"Over", Const, 0}, + {"Quantizer", Type, 2}, + {"RGBA64Image", Type, 17}, + {"Src", Const, 0}, + }, + "image/gif": { + {"Decode", Func, 0}, + {"DecodeAll", Func, 0}, + {"DecodeConfig", Func, 0}, + {"DisposalBackground", Const, 5}, + {"DisposalNone", Const, 5}, + {"DisposalPrevious", Const, 5}, + {"Encode", Func, 2}, + {"EncodeAll", Func, 2}, + {"GIF", Type, 0}, + {"GIF.BackgroundIndex", Field, 5}, + {"GIF.Config", Field, 5}, + {"GIF.Delay", Field, 0}, + {"GIF.Disposal", Field, 5}, + {"GIF.Image", Field, 0}, + {"GIF.LoopCount", Field, 0}, + {"Options", Type, 2}, + {"Options.Drawer", Field, 2}, + {"Options.NumColors", Field, 2}, + {"Options.Quantizer", Field, 2}, + }, + "image/jpeg": { + {"(FormatError).Error", Method, 0}, + {"(UnsupportedError).Error", Method, 0}, + {"Decode", Func, 0}, + {"DecodeConfig", Func, 0}, + {"DefaultQuality", Const, 0}, + {"Encode", Func, 0}, + {"FormatError", Type, 0}, + {"Options", Type, 0}, + {"Options.Quality", Field, 0}, + {"Reader", Type, 0}, + {"UnsupportedError", Type, 0}, + }, + "image/png": { + {"(*Encoder).Encode", Method, 4}, + {"(FormatError).Error", Method, 0}, + {"(UnsupportedError).Error", Method, 0}, + {"BestCompression", Const, 4}, + {"BestSpeed", Const, 4}, + {"CompressionLevel", Type, 4}, + {"Decode", Func, 0}, + {"DecodeConfig", Func, 0}, + {"DefaultCompression", Const, 4}, + {"Encode", Func, 0}, + {"Encoder", Type, 4}, + {"Encoder.BufferPool", Field, 9}, + {"Encoder.CompressionLevel", Field, 4}, + {"EncoderBuffer", Type, 9}, + {"EncoderBufferPool", Type, 9}, + {"FormatError", Type, 0}, + {"NoCompression", Const, 4}, + {"UnsupportedError", Type, 0}, + }, + "index/suffixarray": { + {"(*Index).Bytes", Method, 0}, + {"(*Index).FindAllIndex", Method, 0}, + {"(*Index).Lookup", Method, 0}, + {"(*Index).Read", Method, 0}, + {"(*Index).Write", Method, 0}, + {"Index", Type, 0}, + {"New", Func, 0}, + }, + "io": { + {"(*LimitedReader).Read", Method, 0}, + {"(*OffsetWriter).Seek", Method, 20}, + {"(*OffsetWriter).Write", Method, 20}, + {"(*OffsetWriter).WriteAt", Method, 20}, + {"(*PipeReader).Close", Method, 0}, + {"(*PipeReader).CloseWithError", Method, 0}, + {"(*PipeReader).Read", Method, 0}, + {"(*PipeWriter).Close", Method, 0}, + {"(*PipeWriter).CloseWithError", Method, 0}, + {"(*PipeWriter).Write", Method, 0}, + {"(*SectionReader).Outer", Method, 22}, + {"(*SectionReader).Read", Method, 0}, + {"(*SectionReader).ReadAt", Method, 0}, + {"(*SectionReader).Seek", Method, 0}, + {"(*SectionReader).Size", Method, 0}, + {"ByteReader", Type, 0}, + {"ByteScanner", Type, 0}, + {"ByteWriter", Type, 1}, + {"Closer", Type, 0}, + {"Copy", Func, 0}, + {"CopyBuffer", Func, 5}, + {"CopyN", Func, 0}, + {"Discard", Var, 16}, + {"EOF", Var, 0}, + {"ErrClosedPipe", Var, 0}, + {"ErrNoProgress", Var, 1}, + {"ErrShortBuffer", Var, 0}, + {"ErrShortWrite", Var, 0}, + {"ErrUnexpectedEOF", Var, 0}, + {"LimitReader", Func, 0}, + {"LimitedReader", Type, 0}, + {"LimitedReader.N", Field, 0}, + {"LimitedReader.R", Field, 0}, + {"MultiReader", Func, 0}, + {"MultiWriter", Func, 0}, + {"NewOffsetWriter", Func, 20}, + {"NewSectionReader", Func, 0}, + {"NopCloser", Func, 16}, + {"OffsetWriter", Type, 20}, + {"Pipe", Func, 0}, + {"PipeReader", Type, 0}, + {"PipeWriter", Type, 0}, + {"ReadAll", Func, 16}, + {"ReadAtLeast", Func, 0}, + {"ReadCloser", Type, 0}, + {"ReadFull", Func, 0}, + {"ReadSeekCloser", Type, 16}, + {"ReadSeeker", Type, 0}, + {"ReadWriteCloser", Type, 0}, + {"ReadWriteSeeker", Type, 0}, + {"ReadWriter", Type, 0}, + {"Reader", Type, 0}, + {"ReaderAt", Type, 0}, + {"ReaderFrom", Type, 0}, + {"RuneReader", Type, 0}, + {"RuneScanner", Type, 0}, + {"SectionReader", Type, 0}, + {"SeekCurrent", Const, 7}, + {"SeekEnd", Const, 7}, + {"SeekStart", Const, 7}, + {"Seeker", Type, 0}, + {"StringWriter", Type, 12}, + {"TeeReader", Func, 0}, + {"WriteCloser", Type, 0}, + {"WriteSeeker", Type, 0}, + {"WriteString", Func, 0}, + {"Writer", Type, 0}, + {"WriterAt", Type, 0}, + {"WriterTo", Type, 0}, + }, + "io/fs": { + {"(*PathError).Error", Method, 16}, + {"(*PathError).Timeout", Method, 16}, + {"(*PathError).Unwrap", Method, 16}, + {"(FileMode).IsDir", Method, 16}, + {"(FileMode).IsRegular", Method, 16}, + {"(FileMode).Perm", Method, 16}, + {"(FileMode).String", Method, 16}, + {"(FileMode).Type", Method, 16}, + {"DirEntry", Type, 16}, + {"ErrClosed", Var, 16}, + {"ErrExist", Var, 16}, + {"ErrInvalid", Var, 16}, + {"ErrNotExist", Var, 16}, + {"ErrPermission", Var, 16}, + {"FS", Type, 16}, + {"File", Type, 16}, + {"FileInfo", Type, 16}, + {"FileInfoToDirEntry", Func, 17}, + {"FileMode", Type, 16}, + {"FormatDirEntry", Func, 21}, + {"FormatFileInfo", Func, 21}, + {"Glob", Func, 16}, + {"GlobFS", Type, 16}, + {"ModeAppend", Const, 16}, + {"ModeCharDevice", Const, 16}, + {"ModeDevice", Const, 16}, + {"ModeDir", Const, 16}, + {"ModeExclusive", Const, 16}, + {"ModeIrregular", Const, 16}, + {"ModeNamedPipe", Const, 16}, + {"ModePerm", Const, 16}, + {"ModeSetgid", Const, 16}, + {"ModeSetuid", Const, 16}, + {"ModeSocket", Const, 16}, + {"ModeSticky", Const, 16}, + {"ModeSymlink", Const, 16}, + {"ModeTemporary", Const, 16}, + {"ModeType", Const, 16}, + {"PathError", Type, 16}, + {"PathError.Err", Field, 16}, + {"PathError.Op", Field, 16}, + {"PathError.Path", Field, 16}, + {"ReadDir", Func, 16}, + {"ReadDirFS", Type, 16}, + {"ReadDirFile", Type, 16}, + {"ReadFile", Func, 16}, + {"ReadFileFS", Type, 16}, + {"SkipAll", Var, 20}, + {"SkipDir", Var, 16}, + {"Stat", Func, 16}, + {"StatFS", Type, 16}, + {"Sub", Func, 16}, + {"SubFS", Type, 16}, + {"ValidPath", Func, 16}, + {"WalkDir", Func, 16}, + {"WalkDirFunc", Type, 16}, + }, + "io/ioutil": { + {"Discard", Var, 0}, + {"NopCloser", Func, 0}, + {"ReadAll", Func, 0}, + {"ReadDir", Func, 0}, + {"ReadFile", Func, 0}, + {"TempDir", Func, 0}, + {"TempFile", Func, 0}, + {"WriteFile", Func, 0}, + }, + "log": { + {"(*Logger).Fatal", Method, 0}, + {"(*Logger).Fatalf", Method, 0}, + {"(*Logger).Fatalln", Method, 0}, + {"(*Logger).Flags", Method, 0}, + {"(*Logger).Output", Method, 0}, + {"(*Logger).Panic", Method, 0}, + {"(*Logger).Panicf", Method, 0}, + {"(*Logger).Panicln", Method, 0}, + {"(*Logger).Prefix", Method, 0}, + {"(*Logger).Print", Method, 0}, + {"(*Logger).Printf", Method, 0}, + {"(*Logger).Println", Method, 0}, + {"(*Logger).SetFlags", Method, 0}, + {"(*Logger).SetOutput", Method, 5}, + {"(*Logger).SetPrefix", Method, 0}, + {"(*Logger).Writer", Method, 12}, + {"Default", Func, 16}, + {"Fatal", Func, 0}, + {"Fatalf", Func, 0}, + {"Fatalln", Func, 0}, + {"Flags", Func, 0}, + {"LUTC", Const, 5}, + {"Ldate", Const, 0}, + {"Llongfile", Const, 0}, + {"Lmicroseconds", Const, 0}, + {"Lmsgprefix", Const, 14}, + {"Logger", Type, 0}, + {"Lshortfile", Const, 0}, + {"LstdFlags", Const, 0}, + {"Ltime", Const, 0}, + {"New", Func, 0}, + {"Output", Func, 5}, + {"Panic", Func, 0}, + {"Panicf", Func, 0}, + {"Panicln", Func, 0}, + {"Prefix", Func, 0}, + {"Print", Func, 0}, + {"Printf", Func, 0}, + {"Println", Func, 0}, + {"SetFlags", Func, 0}, + {"SetOutput", Func, 0}, + {"SetPrefix", Func, 0}, + {"Writer", Func, 13}, + }, + "log/slog": { + {"(*JSONHandler).Enabled", Method, 21}, + {"(*JSONHandler).Handle", Method, 21}, + {"(*JSONHandler).WithAttrs", Method, 21}, + {"(*JSONHandler).WithGroup", Method, 21}, + {"(*Level).UnmarshalJSON", Method, 21}, + {"(*Level).UnmarshalText", Method, 21}, + {"(*LevelVar).Level", Method, 21}, + {"(*LevelVar).MarshalText", Method, 21}, + {"(*LevelVar).Set", Method, 21}, + {"(*LevelVar).String", Method, 21}, + {"(*LevelVar).UnmarshalText", Method, 21}, + {"(*Logger).Debug", Method, 21}, + {"(*Logger).DebugContext", Method, 21}, + {"(*Logger).Enabled", Method, 21}, + {"(*Logger).Error", Method, 21}, + {"(*Logger).ErrorContext", Method, 21}, + {"(*Logger).Handler", Method, 21}, + {"(*Logger).Info", Method, 21}, + {"(*Logger).InfoContext", Method, 21}, + {"(*Logger).Log", Method, 21}, + {"(*Logger).LogAttrs", Method, 21}, + {"(*Logger).Warn", Method, 21}, + {"(*Logger).WarnContext", Method, 21}, + {"(*Logger).With", Method, 21}, + {"(*Logger).WithGroup", Method, 21}, + {"(*Record).Add", Method, 21}, + {"(*Record).AddAttrs", Method, 21}, + {"(*TextHandler).Enabled", Method, 21}, + {"(*TextHandler).Handle", Method, 21}, + {"(*TextHandler).WithAttrs", Method, 21}, + {"(*TextHandler).WithGroup", Method, 21}, + {"(Attr).Equal", Method, 21}, + {"(Attr).String", Method, 21}, + {"(Kind).String", Method, 21}, + {"(Level).Level", Method, 21}, + {"(Level).MarshalJSON", Method, 21}, + {"(Level).MarshalText", Method, 21}, + {"(Level).String", Method, 21}, + {"(Record).Attrs", Method, 21}, + {"(Record).Clone", Method, 21}, + {"(Record).NumAttrs", Method, 21}, + {"(Value).Any", Method, 21}, + {"(Value).Bool", Method, 21}, + {"(Value).Duration", Method, 21}, + {"(Value).Equal", Method, 21}, + {"(Value).Float64", Method, 21}, + {"(Value).Group", Method, 21}, + {"(Value).Int64", Method, 21}, + {"(Value).Kind", Method, 21}, + {"(Value).LogValuer", Method, 21}, + {"(Value).Resolve", Method, 21}, + {"(Value).String", Method, 21}, + {"(Value).Time", Method, 21}, + {"(Value).Uint64", Method, 21}, + {"Any", Func, 21}, + {"AnyValue", Func, 21}, + {"Attr", Type, 21}, + {"Attr.Key", Field, 21}, + {"Attr.Value", Field, 21}, + {"Bool", Func, 21}, + {"BoolValue", Func, 21}, + {"Debug", Func, 21}, + {"DebugContext", Func, 21}, + {"Default", Func, 21}, + {"Duration", Func, 21}, + {"DurationValue", Func, 21}, + {"Error", Func, 21}, + {"ErrorContext", Func, 21}, + {"Float64", Func, 21}, + {"Float64Value", Func, 21}, + {"Group", Func, 21}, + {"GroupValue", Func, 21}, + {"Handler", Type, 21}, + {"HandlerOptions", Type, 21}, + {"HandlerOptions.AddSource", Field, 21}, + {"HandlerOptions.Level", Field, 21}, + {"HandlerOptions.ReplaceAttr", Field, 21}, + {"Info", Func, 21}, + {"InfoContext", Func, 21}, + {"Int", Func, 21}, + {"Int64", Func, 21}, + {"Int64Value", Func, 21}, + {"IntValue", Func, 21}, + {"JSONHandler", Type, 21}, + {"Kind", Type, 21}, + {"KindAny", Const, 21}, + {"KindBool", Const, 21}, + {"KindDuration", Const, 21}, + {"KindFloat64", Const, 21}, + {"KindGroup", Const, 21}, + {"KindInt64", Const, 21}, + {"KindLogValuer", Const, 21}, + {"KindString", Const, 21}, + {"KindTime", Const, 21}, + {"KindUint64", Const, 21}, + {"Level", Type, 21}, + {"LevelDebug", Const, 21}, + {"LevelError", Const, 21}, + {"LevelInfo", Const, 21}, + {"LevelKey", Const, 21}, + {"LevelVar", Type, 21}, + {"LevelWarn", Const, 21}, + {"Leveler", Type, 21}, + {"Log", Func, 21}, + {"LogAttrs", Func, 21}, + {"LogValuer", Type, 21}, + {"Logger", Type, 21}, + {"MessageKey", Const, 21}, + {"New", Func, 21}, + {"NewJSONHandler", Func, 21}, + {"NewLogLogger", Func, 21}, + {"NewRecord", Func, 21}, + {"NewTextHandler", Func, 21}, + {"Record", Type, 21}, + {"Record.Level", Field, 21}, + {"Record.Message", Field, 21}, + {"Record.PC", Field, 21}, + {"Record.Time", Field, 21}, + {"SetDefault", Func, 21}, + {"SetLogLoggerLevel", Func, 22}, + {"Source", Type, 21}, + {"Source.File", Field, 21}, + {"Source.Function", Field, 21}, + {"Source.Line", Field, 21}, + {"SourceKey", Const, 21}, + {"String", Func, 21}, + {"StringValue", Func, 21}, + {"TextHandler", Type, 21}, + {"Time", Func, 21}, + {"TimeKey", Const, 21}, + {"TimeValue", Func, 21}, + {"Uint64", Func, 21}, + {"Uint64Value", Func, 21}, + {"Value", Type, 21}, + {"Warn", Func, 21}, + {"WarnContext", Func, 21}, + {"With", Func, 21}, + }, + "log/syslog": { + {"(*Writer).Alert", Method, 0}, + {"(*Writer).Close", Method, 0}, + {"(*Writer).Crit", Method, 0}, + {"(*Writer).Debug", Method, 0}, + {"(*Writer).Emerg", Method, 0}, + {"(*Writer).Err", Method, 0}, + {"(*Writer).Info", Method, 0}, + {"(*Writer).Notice", Method, 0}, + {"(*Writer).Warning", Method, 0}, + {"(*Writer).Write", Method, 0}, + {"Dial", Func, 0}, + {"LOG_ALERT", Const, 0}, + {"LOG_AUTH", Const, 1}, + {"LOG_AUTHPRIV", Const, 1}, + {"LOG_CRIT", Const, 0}, + {"LOG_CRON", Const, 1}, + {"LOG_DAEMON", Const, 1}, + {"LOG_DEBUG", Const, 0}, + {"LOG_EMERG", Const, 0}, + {"LOG_ERR", Const, 0}, + {"LOG_FTP", Const, 1}, + {"LOG_INFO", Const, 0}, + {"LOG_KERN", Const, 1}, + {"LOG_LOCAL0", Const, 1}, + {"LOG_LOCAL1", Const, 1}, + {"LOG_LOCAL2", Const, 1}, + {"LOG_LOCAL3", Const, 1}, + {"LOG_LOCAL4", Const, 1}, + {"LOG_LOCAL5", Const, 1}, + {"LOG_LOCAL6", Const, 1}, + {"LOG_LOCAL7", Const, 1}, + {"LOG_LPR", Const, 1}, + {"LOG_MAIL", Const, 1}, + {"LOG_NEWS", Const, 1}, + {"LOG_NOTICE", Const, 0}, + {"LOG_SYSLOG", Const, 1}, + {"LOG_USER", Const, 1}, + {"LOG_UUCP", Const, 1}, + {"LOG_WARNING", Const, 0}, + {"New", Func, 0}, + {"NewLogger", Func, 0}, + {"Priority", Type, 0}, + {"Writer", Type, 0}, + }, + "maps": { + {"Clone", Func, 21}, + {"Copy", Func, 21}, + {"DeleteFunc", Func, 21}, + {"Equal", Func, 21}, + {"EqualFunc", Func, 21}, + }, + "math": { + {"Abs", Func, 0}, + {"Acos", Func, 0}, + {"Acosh", Func, 0}, + {"Asin", Func, 0}, + {"Asinh", Func, 0}, + {"Atan", Func, 0}, + {"Atan2", Func, 0}, + {"Atanh", Func, 0}, + {"Cbrt", Func, 0}, + {"Ceil", Func, 0}, + {"Copysign", Func, 0}, + {"Cos", Func, 0}, + {"Cosh", Func, 0}, + {"Dim", Func, 0}, + {"E", Const, 0}, + {"Erf", Func, 0}, + {"Erfc", Func, 0}, + {"Erfcinv", Func, 10}, + {"Erfinv", Func, 10}, + {"Exp", Func, 0}, + {"Exp2", Func, 0}, + {"Expm1", Func, 0}, + {"FMA", Func, 14}, + {"Float32bits", Func, 0}, + {"Float32frombits", Func, 0}, + {"Float64bits", Func, 0}, + {"Float64frombits", Func, 0}, + {"Floor", Func, 0}, + {"Frexp", Func, 0}, + {"Gamma", Func, 0}, + {"Hypot", Func, 0}, + {"Ilogb", Func, 0}, + {"Inf", Func, 0}, + {"IsInf", Func, 0}, + {"IsNaN", Func, 0}, + {"J0", Func, 0}, + {"J1", Func, 0}, + {"Jn", Func, 0}, + {"Ldexp", Func, 0}, + {"Lgamma", Func, 0}, + {"Ln10", Const, 0}, + {"Ln2", Const, 0}, + {"Log", Func, 0}, + {"Log10", Func, 0}, + {"Log10E", Const, 0}, + {"Log1p", Func, 0}, + {"Log2", Func, 0}, + {"Log2E", Const, 0}, + {"Logb", Func, 0}, + {"Max", Func, 0}, + {"MaxFloat32", Const, 0}, + {"MaxFloat64", Const, 0}, + {"MaxInt", Const, 17}, + {"MaxInt16", Const, 0}, + {"MaxInt32", Const, 0}, + {"MaxInt64", Const, 0}, + {"MaxInt8", Const, 0}, + {"MaxUint", Const, 17}, + {"MaxUint16", Const, 0}, + {"MaxUint32", Const, 0}, + {"MaxUint64", Const, 0}, + {"MaxUint8", Const, 0}, + {"Min", Func, 0}, + {"MinInt", Const, 17}, + {"MinInt16", Const, 0}, + {"MinInt32", Const, 0}, + {"MinInt64", Const, 0}, + {"MinInt8", Const, 0}, + {"Mod", Func, 0}, + {"Modf", Func, 0}, + {"NaN", Func, 0}, + {"Nextafter", Func, 0}, + {"Nextafter32", Func, 4}, + {"Phi", Const, 0}, + {"Pi", Const, 0}, + {"Pow", Func, 0}, + {"Pow10", Func, 0}, + {"Remainder", Func, 0}, + {"Round", Func, 10}, + {"RoundToEven", Func, 10}, + {"Signbit", Func, 0}, + {"Sin", Func, 0}, + {"Sincos", Func, 0}, + {"Sinh", Func, 0}, + {"SmallestNonzeroFloat32", Const, 0}, + {"SmallestNonzeroFloat64", Const, 0}, + {"Sqrt", Func, 0}, + {"Sqrt2", Const, 0}, + {"SqrtE", Const, 0}, + {"SqrtPhi", Const, 0}, + {"SqrtPi", Const, 0}, + {"Tan", Func, 0}, + {"Tanh", Func, 0}, + {"Trunc", Func, 0}, + {"Y0", Func, 0}, + {"Y1", Func, 0}, + {"Yn", Func, 0}, + }, + "math/big": { + {"(*Float).Abs", Method, 5}, + {"(*Float).Acc", Method, 5}, + {"(*Float).Add", Method, 5}, + {"(*Float).Append", Method, 5}, + {"(*Float).Cmp", Method, 5}, + {"(*Float).Copy", Method, 5}, + {"(*Float).Float32", Method, 5}, + {"(*Float).Float64", Method, 5}, + {"(*Float).Format", Method, 5}, + {"(*Float).GobDecode", Method, 7}, + {"(*Float).GobEncode", Method, 7}, + {"(*Float).Int", Method, 5}, + {"(*Float).Int64", Method, 5}, + {"(*Float).IsInf", Method, 5}, + {"(*Float).IsInt", Method, 5}, + {"(*Float).MantExp", Method, 5}, + {"(*Float).MarshalText", Method, 6}, + {"(*Float).MinPrec", Method, 5}, + {"(*Float).Mode", Method, 5}, + {"(*Float).Mul", Method, 5}, + {"(*Float).Neg", Method, 5}, + {"(*Float).Parse", Method, 5}, + {"(*Float).Prec", Method, 5}, + {"(*Float).Quo", Method, 5}, + {"(*Float).Rat", Method, 5}, + {"(*Float).Scan", Method, 8}, + {"(*Float).Set", Method, 5}, + {"(*Float).SetFloat64", Method, 5}, + {"(*Float).SetInf", Method, 5}, + {"(*Float).SetInt", Method, 5}, + {"(*Float).SetInt64", Method, 5}, + {"(*Float).SetMantExp", Method, 5}, + {"(*Float).SetMode", Method, 5}, + {"(*Float).SetPrec", Method, 5}, + {"(*Float).SetRat", Method, 5}, + {"(*Float).SetString", Method, 5}, + {"(*Float).SetUint64", Method, 5}, + {"(*Float).Sign", Method, 5}, + {"(*Float).Signbit", Method, 5}, + {"(*Float).Sqrt", Method, 10}, + {"(*Float).String", Method, 5}, + {"(*Float).Sub", Method, 5}, + {"(*Float).Text", Method, 5}, + {"(*Float).Uint64", Method, 5}, + {"(*Float).UnmarshalText", Method, 6}, + {"(*Int).Abs", Method, 0}, + {"(*Int).Add", Method, 0}, + {"(*Int).And", Method, 0}, + {"(*Int).AndNot", Method, 0}, + {"(*Int).Append", Method, 6}, + {"(*Int).Binomial", Method, 0}, + {"(*Int).Bit", Method, 0}, + {"(*Int).BitLen", Method, 0}, + {"(*Int).Bits", Method, 0}, + {"(*Int).Bytes", Method, 0}, + {"(*Int).Cmp", Method, 0}, + {"(*Int).CmpAbs", Method, 10}, + {"(*Int).Div", Method, 0}, + {"(*Int).DivMod", Method, 0}, + {"(*Int).Exp", Method, 0}, + {"(*Int).FillBytes", Method, 15}, + {"(*Int).Float64", Method, 21}, + {"(*Int).Format", Method, 0}, + {"(*Int).GCD", Method, 0}, + {"(*Int).GobDecode", Method, 0}, + {"(*Int).GobEncode", Method, 0}, + {"(*Int).Int64", Method, 0}, + {"(*Int).IsInt64", Method, 9}, + {"(*Int).IsUint64", Method, 9}, + {"(*Int).Lsh", Method, 0}, + {"(*Int).MarshalJSON", Method, 1}, + {"(*Int).MarshalText", Method, 3}, + {"(*Int).Mod", Method, 0}, + {"(*Int).ModInverse", Method, 0}, + {"(*Int).ModSqrt", Method, 5}, + {"(*Int).Mul", Method, 0}, + {"(*Int).MulRange", Method, 0}, + {"(*Int).Neg", Method, 0}, + {"(*Int).Not", Method, 0}, + {"(*Int).Or", Method, 0}, + {"(*Int).ProbablyPrime", Method, 0}, + {"(*Int).Quo", Method, 0}, + {"(*Int).QuoRem", Method, 0}, + {"(*Int).Rand", Method, 0}, + {"(*Int).Rem", Method, 0}, + {"(*Int).Rsh", Method, 0}, + {"(*Int).Scan", Method, 0}, + {"(*Int).Set", Method, 0}, + {"(*Int).SetBit", Method, 0}, + {"(*Int).SetBits", Method, 0}, + {"(*Int).SetBytes", Method, 0}, + {"(*Int).SetInt64", Method, 0}, + {"(*Int).SetString", Method, 0}, + {"(*Int).SetUint64", Method, 1}, + {"(*Int).Sign", Method, 0}, + {"(*Int).Sqrt", Method, 8}, + {"(*Int).String", Method, 0}, + {"(*Int).Sub", Method, 0}, + {"(*Int).Text", Method, 6}, + {"(*Int).TrailingZeroBits", Method, 13}, + {"(*Int).Uint64", Method, 1}, + {"(*Int).UnmarshalJSON", Method, 1}, + {"(*Int).UnmarshalText", Method, 3}, + {"(*Int).Xor", Method, 0}, + {"(*Rat).Abs", Method, 0}, + {"(*Rat).Add", Method, 0}, + {"(*Rat).Cmp", Method, 0}, + {"(*Rat).Denom", Method, 0}, + {"(*Rat).Float32", Method, 4}, + {"(*Rat).Float64", Method, 1}, + {"(*Rat).FloatPrec", Method, 22}, + {"(*Rat).FloatString", Method, 0}, + {"(*Rat).GobDecode", Method, 0}, + {"(*Rat).GobEncode", Method, 0}, + {"(*Rat).Inv", Method, 0}, + {"(*Rat).IsInt", Method, 0}, + {"(*Rat).MarshalText", Method, 3}, + {"(*Rat).Mul", Method, 0}, + {"(*Rat).Neg", Method, 0}, + {"(*Rat).Num", Method, 0}, + {"(*Rat).Quo", Method, 0}, + {"(*Rat).RatString", Method, 0}, + {"(*Rat).Scan", Method, 0}, + {"(*Rat).Set", Method, 0}, + {"(*Rat).SetFloat64", Method, 1}, + {"(*Rat).SetFrac", Method, 0}, + {"(*Rat).SetFrac64", Method, 0}, + {"(*Rat).SetInt", Method, 0}, + {"(*Rat).SetInt64", Method, 0}, + {"(*Rat).SetString", Method, 0}, + {"(*Rat).SetUint64", Method, 13}, + {"(*Rat).Sign", Method, 0}, + {"(*Rat).String", Method, 0}, + {"(*Rat).Sub", Method, 0}, + {"(*Rat).UnmarshalText", Method, 3}, + {"(Accuracy).String", Method, 5}, + {"(ErrNaN).Error", Method, 5}, + {"(RoundingMode).String", Method, 5}, + {"Above", Const, 5}, + {"Accuracy", Type, 5}, + {"AwayFromZero", Const, 5}, + {"Below", Const, 5}, + {"ErrNaN", Type, 5}, + {"Exact", Const, 5}, + {"Float", Type, 5}, + {"Int", Type, 0}, + {"Jacobi", Func, 5}, + {"MaxBase", Const, 0}, + {"MaxExp", Const, 5}, + {"MaxPrec", Const, 5}, + {"MinExp", Const, 5}, + {"NewFloat", Func, 5}, + {"NewInt", Func, 0}, + {"NewRat", Func, 0}, + {"ParseFloat", Func, 5}, + {"Rat", Type, 0}, + {"RoundingMode", Type, 5}, + {"ToNearestAway", Const, 5}, + {"ToNearestEven", Const, 5}, + {"ToNegativeInf", Const, 5}, + {"ToPositiveInf", Const, 5}, + {"ToZero", Const, 5}, + {"Word", Type, 0}, + }, + "math/bits": { + {"Add", Func, 12}, + {"Add32", Func, 12}, + {"Add64", Func, 12}, + {"Div", Func, 12}, + {"Div32", Func, 12}, + {"Div64", Func, 12}, + {"LeadingZeros", Func, 9}, + {"LeadingZeros16", Func, 9}, + {"LeadingZeros32", Func, 9}, + {"LeadingZeros64", Func, 9}, + {"LeadingZeros8", Func, 9}, + {"Len", Func, 9}, + {"Len16", Func, 9}, + {"Len32", Func, 9}, + {"Len64", Func, 9}, + {"Len8", Func, 9}, + {"Mul", Func, 12}, + {"Mul32", Func, 12}, + {"Mul64", Func, 12}, + {"OnesCount", Func, 9}, + {"OnesCount16", Func, 9}, + {"OnesCount32", Func, 9}, + {"OnesCount64", Func, 9}, + {"OnesCount8", Func, 9}, + {"Rem", Func, 14}, + {"Rem32", Func, 14}, + {"Rem64", Func, 14}, + {"Reverse", Func, 9}, + {"Reverse16", Func, 9}, + {"Reverse32", Func, 9}, + {"Reverse64", Func, 9}, + {"Reverse8", Func, 9}, + {"ReverseBytes", Func, 9}, + {"ReverseBytes16", Func, 9}, + {"ReverseBytes32", Func, 9}, + {"ReverseBytes64", Func, 9}, + {"RotateLeft", Func, 9}, + {"RotateLeft16", Func, 9}, + {"RotateLeft32", Func, 9}, + {"RotateLeft64", Func, 9}, + {"RotateLeft8", Func, 9}, + {"Sub", Func, 12}, + {"Sub32", Func, 12}, + {"Sub64", Func, 12}, + {"TrailingZeros", Func, 9}, + {"TrailingZeros16", Func, 9}, + {"TrailingZeros32", Func, 9}, + {"TrailingZeros64", Func, 9}, + {"TrailingZeros8", Func, 9}, + {"UintSize", Const, 9}, + }, + "math/cmplx": { + {"Abs", Func, 0}, + {"Acos", Func, 0}, + {"Acosh", Func, 0}, + {"Asin", Func, 0}, + {"Asinh", Func, 0}, + {"Atan", Func, 0}, + {"Atanh", Func, 0}, + {"Conj", Func, 0}, + {"Cos", Func, 0}, + {"Cosh", Func, 0}, + {"Cot", Func, 0}, + {"Exp", Func, 0}, + {"Inf", Func, 0}, + {"IsInf", Func, 0}, + {"IsNaN", Func, 0}, + {"Log", Func, 0}, + {"Log10", Func, 0}, + {"NaN", Func, 0}, + {"Phase", Func, 0}, + {"Polar", Func, 0}, + {"Pow", Func, 0}, + {"Rect", Func, 0}, + {"Sin", Func, 0}, + {"Sinh", Func, 0}, + {"Sqrt", Func, 0}, + {"Tan", Func, 0}, + {"Tanh", Func, 0}, + }, + "math/rand": { + {"(*Rand).ExpFloat64", Method, 0}, + {"(*Rand).Float32", Method, 0}, + {"(*Rand).Float64", Method, 0}, + {"(*Rand).Int", Method, 0}, + {"(*Rand).Int31", Method, 0}, + {"(*Rand).Int31n", Method, 0}, + {"(*Rand).Int63", Method, 0}, + {"(*Rand).Int63n", Method, 0}, + {"(*Rand).Intn", Method, 0}, + {"(*Rand).NormFloat64", Method, 0}, + {"(*Rand).Perm", Method, 0}, + {"(*Rand).Read", Method, 6}, + {"(*Rand).Seed", Method, 0}, + {"(*Rand).Shuffle", Method, 10}, + {"(*Rand).Uint32", Method, 0}, + {"(*Rand).Uint64", Method, 8}, + {"(*Zipf).Uint64", Method, 0}, + {"ExpFloat64", Func, 0}, + {"Float32", Func, 0}, + {"Float64", Func, 0}, + {"Int", Func, 0}, + {"Int31", Func, 0}, + {"Int31n", Func, 0}, + {"Int63", Func, 0}, + {"Int63n", Func, 0}, + {"Intn", Func, 0}, + {"New", Func, 0}, + {"NewSource", Func, 0}, + {"NewZipf", Func, 0}, + {"NormFloat64", Func, 0}, + {"Perm", Func, 0}, + {"Rand", Type, 0}, + {"Read", Func, 6}, + {"Seed", Func, 0}, + {"Shuffle", Func, 10}, + {"Source", Type, 0}, + {"Source64", Type, 8}, + {"Uint32", Func, 0}, + {"Uint64", Func, 8}, + {"Zipf", Type, 0}, + }, + "math/rand/v2": { + {"(*ChaCha8).MarshalBinary", Method, 22}, + {"(*ChaCha8).Seed", Method, 22}, + {"(*ChaCha8).Uint64", Method, 22}, + {"(*ChaCha8).UnmarshalBinary", Method, 22}, + {"(*PCG).MarshalBinary", Method, 22}, + {"(*PCG).Seed", Method, 22}, + {"(*PCG).Uint64", Method, 22}, + {"(*PCG).UnmarshalBinary", Method, 22}, + {"(*Rand).ExpFloat64", Method, 22}, + {"(*Rand).Float32", Method, 22}, + {"(*Rand).Float64", Method, 22}, + {"(*Rand).Int", Method, 22}, + {"(*Rand).Int32", Method, 22}, + {"(*Rand).Int32N", Method, 22}, + {"(*Rand).Int64", Method, 22}, + {"(*Rand).Int64N", Method, 22}, + {"(*Rand).IntN", Method, 22}, + {"(*Rand).NormFloat64", Method, 22}, + {"(*Rand).Perm", Method, 22}, + {"(*Rand).Shuffle", Method, 22}, + {"(*Rand).Uint32", Method, 22}, + {"(*Rand).Uint32N", Method, 22}, + {"(*Rand).Uint64", Method, 22}, + {"(*Rand).Uint64N", Method, 22}, + {"(*Rand).UintN", Method, 22}, + {"(*Zipf).Uint64", Method, 22}, + {"ChaCha8", Type, 22}, + {"ExpFloat64", Func, 22}, + {"Float32", Func, 22}, + {"Float64", Func, 22}, + {"Int", Func, 22}, + {"Int32", Func, 22}, + {"Int32N", Func, 22}, + {"Int64", Func, 22}, + {"Int64N", Func, 22}, + {"IntN", Func, 22}, + {"N", Func, 22}, + {"New", Func, 22}, + {"NewChaCha8", Func, 22}, + {"NewPCG", Func, 22}, + {"NewZipf", Func, 22}, + {"NormFloat64", Func, 22}, + {"PCG", Type, 22}, + {"Perm", Func, 22}, + {"Rand", Type, 22}, + {"Shuffle", Func, 22}, + {"Source", Type, 22}, + {"Uint32", Func, 22}, + {"Uint32N", Func, 22}, + {"Uint64", Func, 22}, + {"Uint64N", Func, 22}, + {"UintN", Func, 22}, + {"Zipf", Type, 22}, + }, + "mime": { + {"(*WordDecoder).Decode", Method, 5}, + {"(*WordDecoder).DecodeHeader", Method, 5}, + {"(WordEncoder).Encode", Method, 5}, + {"AddExtensionType", Func, 0}, + {"BEncoding", Const, 5}, + {"ErrInvalidMediaParameter", Var, 9}, + {"ExtensionsByType", Func, 5}, + {"FormatMediaType", Func, 0}, + {"ParseMediaType", Func, 0}, + {"QEncoding", Const, 5}, + {"TypeByExtension", Func, 0}, + {"WordDecoder", Type, 5}, + {"WordDecoder.CharsetReader", Field, 5}, + {"WordEncoder", Type, 5}, + }, + "mime/multipart": { + {"(*FileHeader).Open", Method, 0}, + {"(*Form).RemoveAll", Method, 0}, + {"(*Part).Close", Method, 0}, + {"(*Part).FileName", Method, 0}, + {"(*Part).FormName", Method, 0}, + {"(*Part).Read", Method, 0}, + {"(*Reader).NextPart", Method, 0}, + {"(*Reader).NextRawPart", Method, 14}, + {"(*Reader).ReadForm", Method, 0}, + {"(*Writer).Boundary", Method, 0}, + {"(*Writer).Close", Method, 0}, + {"(*Writer).CreateFormField", Method, 0}, + {"(*Writer).CreateFormFile", Method, 0}, + {"(*Writer).CreatePart", Method, 0}, + {"(*Writer).FormDataContentType", Method, 0}, + {"(*Writer).SetBoundary", Method, 1}, + {"(*Writer).WriteField", Method, 0}, + {"ErrMessageTooLarge", Var, 9}, + {"File", Type, 0}, + {"FileHeader", Type, 0}, + {"FileHeader.Filename", Field, 0}, + {"FileHeader.Header", Field, 0}, + {"FileHeader.Size", Field, 9}, + {"Form", Type, 0}, + {"Form.File", Field, 0}, + {"Form.Value", Field, 0}, + {"NewReader", Func, 0}, + {"NewWriter", Func, 0}, + {"Part", Type, 0}, + {"Part.Header", Field, 0}, + {"Reader", Type, 0}, + {"Writer", Type, 0}, + }, + "mime/quotedprintable": { + {"(*Reader).Read", Method, 5}, + {"(*Writer).Close", Method, 5}, + {"(*Writer).Write", Method, 5}, + {"NewReader", Func, 5}, + {"NewWriter", Func, 5}, + {"Reader", Type, 5}, + {"Writer", Type, 5}, + {"Writer.Binary", Field, 5}, + }, + "net": { + {"(*AddrError).Error", Method, 0}, + {"(*AddrError).Temporary", Method, 0}, + {"(*AddrError).Timeout", Method, 0}, + {"(*Buffers).Read", Method, 8}, + {"(*Buffers).WriteTo", Method, 8}, + {"(*DNSConfigError).Error", Method, 0}, + {"(*DNSConfigError).Temporary", Method, 0}, + {"(*DNSConfigError).Timeout", Method, 0}, + {"(*DNSConfigError).Unwrap", Method, 13}, + {"(*DNSError).Error", Method, 0}, + {"(*DNSError).Temporary", Method, 0}, + {"(*DNSError).Timeout", Method, 0}, + {"(*Dialer).Dial", Method, 1}, + {"(*Dialer).DialContext", Method, 7}, + {"(*Dialer).MultipathTCP", Method, 21}, + {"(*Dialer).SetMultipathTCP", Method, 21}, + {"(*IP).UnmarshalText", Method, 2}, + {"(*IPAddr).Network", Method, 0}, + {"(*IPAddr).String", Method, 0}, + {"(*IPConn).Close", Method, 0}, + {"(*IPConn).File", Method, 0}, + {"(*IPConn).LocalAddr", Method, 0}, + {"(*IPConn).Read", Method, 0}, + {"(*IPConn).ReadFrom", Method, 0}, + {"(*IPConn).ReadFromIP", Method, 0}, + {"(*IPConn).ReadMsgIP", Method, 1}, + {"(*IPConn).RemoteAddr", Method, 0}, + {"(*IPConn).SetDeadline", Method, 0}, + {"(*IPConn).SetReadBuffer", Method, 0}, + {"(*IPConn).SetReadDeadline", Method, 0}, + {"(*IPConn).SetWriteBuffer", Method, 0}, + {"(*IPConn).SetWriteDeadline", Method, 0}, + {"(*IPConn).SyscallConn", Method, 9}, + {"(*IPConn).Write", Method, 0}, + {"(*IPConn).WriteMsgIP", Method, 1}, + {"(*IPConn).WriteTo", Method, 0}, + {"(*IPConn).WriteToIP", Method, 0}, + {"(*IPNet).Contains", Method, 0}, + {"(*IPNet).Network", Method, 0}, + {"(*IPNet).String", Method, 0}, + {"(*Interface).Addrs", Method, 0}, + {"(*Interface).MulticastAddrs", Method, 0}, + {"(*ListenConfig).Listen", Method, 11}, + {"(*ListenConfig).ListenPacket", Method, 11}, + {"(*ListenConfig).MultipathTCP", Method, 21}, + {"(*ListenConfig).SetMultipathTCP", Method, 21}, + {"(*OpError).Error", Method, 0}, + {"(*OpError).Temporary", Method, 0}, + {"(*OpError).Timeout", Method, 0}, + {"(*OpError).Unwrap", Method, 13}, + {"(*ParseError).Error", Method, 0}, + {"(*ParseError).Temporary", Method, 17}, + {"(*ParseError).Timeout", Method, 17}, + {"(*Resolver).LookupAddr", Method, 8}, + {"(*Resolver).LookupCNAME", Method, 8}, + {"(*Resolver).LookupHost", Method, 8}, + {"(*Resolver).LookupIP", Method, 15}, + {"(*Resolver).LookupIPAddr", Method, 8}, + {"(*Resolver).LookupMX", Method, 8}, + {"(*Resolver).LookupNS", Method, 8}, + {"(*Resolver).LookupNetIP", Method, 18}, + {"(*Resolver).LookupPort", Method, 8}, + {"(*Resolver).LookupSRV", Method, 8}, + {"(*Resolver).LookupTXT", Method, 8}, + {"(*TCPAddr).AddrPort", Method, 18}, + {"(*TCPAddr).Network", Method, 0}, + {"(*TCPAddr).String", Method, 0}, + {"(*TCPConn).Close", Method, 0}, + {"(*TCPConn).CloseRead", Method, 0}, + {"(*TCPConn).CloseWrite", Method, 0}, + {"(*TCPConn).File", Method, 0}, + {"(*TCPConn).LocalAddr", Method, 0}, + {"(*TCPConn).MultipathTCP", Method, 21}, + {"(*TCPConn).Read", Method, 0}, + {"(*TCPConn).ReadFrom", Method, 0}, + {"(*TCPConn).RemoteAddr", Method, 0}, + {"(*TCPConn).SetDeadline", Method, 0}, + {"(*TCPConn).SetKeepAlive", Method, 0}, + {"(*TCPConn).SetKeepAlivePeriod", Method, 2}, + {"(*TCPConn).SetLinger", Method, 0}, + {"(*TCPConn).SetNoDelay", Method, 0}, + {"(*TCPConn).SetReadBuffer", Method, 0}, + {"(*TCPConn).SetReadDeadline", Method, 0}, + {"(*TCPConn).SetWriteBuffer", Method, 0}, + {"(*TCPConn).SetWriteDeadline", Method, 0}, + {"(*TCPConn).SyscallConn", Method, 9}, + {"(*TCPConn).Write", Method, 0}, + {"(*TCPConn).WriteTo", Method, 22}, + {"(*TCPListener).Accept", Method, 0}, + {"(*TCPListener).AcceptTCP", Method, 0}, + {"(*TCPListener).Addr", Method, 0}, + {"(*TCPListener).Close", Method, 0}, + {"(*TCPListener).File", Method, 0}, + {"(*TCPListener).SetDeadline", Method, 0}, + {"(*TCPListener).SyscallConn", Method, 10}, + {"(*UDPAddr).AddrPort", Method, 18}, + {"(*UDPAddr).Network", Method, 0}, + {"(*UDPAddr).String", Method, 0}, + {"(*UDPConn).Close", Method, 0}, + {"(*UDPConn).File", Method, 0}, + {"(*UDPConn).LocalAddr", Method, 0}, + {"(*UDPConn).Read", Method, 0}, + {"(*UDPConn).ReadFrom", Method, 0}, + {"(*UDPConn).ReadFromUDP", Method, 0}, + {"(*UDPConn).ReadFromUDPAddrPort", Method, 18}, + {"(*UDPConn).ReadMsgUDP", Method, 1}, + {"(*UDPConn).ReadMsgUDPAddrPort", Method, 18}, + {"(*UDPConn).RemoteAddr", Method, 0}, + {"(*UDPConn).SetDeadline", Method, 0}, + {"(*UDPConn).SetReadBuffer", Method, 0}, + {"(*UDPConn).SetReadDeadline", Method, 0}, + {"(*UDPConn).SetWriteBuffer", Method, 0}, + {"(*UDPConn).SetWriteDeadline", Method, 0}, + {"(*UDPConn).SyscallConn", Method, 9}, + {"(*UDPConn).Write", Method, 0}, + {"(*UDPConn).WriteMsgUDP", Method, 1}, + {"(*UDPConn).WriteMsgUDPAddrPort", Method, 18}, + {"(*UDPConn).WriteTo", Method, 0}, + {"(*UDPConn).WriteToUDP", Method, 0}, + {"(*UDPConn).WriteToUDPAddrPort", Method, 18}, + {"(*UnixAddr).Network", Method, 0}, + {"(*UnixAddr).String", Method, 0}, + {"(*UnixConn).Close", Method, 0}, + {"(*UnixConn).CloseRead", Method, 1}, + {"(*UnixConn).CloseWrite", Method, 1}, + {"(*UnixConn).File", Method, 0}, + {"(*UnixConn).LocalAddr", Method, 0}, + {"(*UnixConn).Read", Method, 0}, + {"(*UnixConn).ReadFrom", Method, 0}, + {"(*UnixConn).ReadFromUnix", Method, 0}, + {"(*UnixConn).ReadMsgUnix", Method, 0}, + {"(*UnixConn).RemoteAddr", Method, 0}, + {"(*UnixConn).SetDeadline", Method, 0}, + {"(*UnixConn).SetReadBuffer", Method, 0}, + {"(*UnixConn).SetReadDeadline", Method, 0}, + {"(*UnixConn).SetWriteBuffer", Method, 0}, + {"(*UnixConn).SetWriteDeadline", Method, 0}, + {"(*UnixConn).SyscallConn", Method, 9}, + {"(*UnixConn).Write", Method, 0}, + {"(*UnixConn).WriteMsgUnix", Method, 0}, + {"(*UnixConn).WriteTo", Method, 0}, + {"(*UnixConn).WriteToUnix", Method, 0}, + {"(*UnixListener).Accept", Method, 0}, + {"(*UnixListener).AcceptUnix", Method, 0}, + {"(*UnixListener).Addr", Method, 0}, + {"(*UnixListener).Close", Method, 0}, + {"(*UnixListener).File", Method, 0}, + {"(*UnixListener).SetDeadline", Method, 0}, + {"(*UnixListener).SetUnlinkOnClose", Method, 8}, + {"(*UnixListener).SyscallConn", Method, 10}, + {"(Flags).String", Method, 0}, + {"(HardwareAddr).String", Method, 0}, + {"(IP).DefaultMask", Method, 0}, + {"(IP).Equal", Method, 0}, + {"(IP).IsGlobalUnicast", Method, 0}, + {"(IP).IsInterfaceLocalMulticast", Method, 0}, + {"(IP).IsLinkLocalMulticast", Method, 0}, + {"(IP).IsLinkLocalUnicast", Method, 0}, + {"(IP).IsLoopback", Method, 0}, + {"(IP).IsMulticast", Method, 0}, + {"(IP).IsPrivate", Method, 17}, + {"(IP).IsUnspecified", Method, 0}, + {"(IP).MarshalText", Method, 2}, + {"(IP).Mask", Method, 0}, + {"(IP).String", Method, 0}, + {"(IP).To16", Method, 0}, + {"(IP).To4", Method, 0}, + {"(IPMask).Size", Method, 0}, + {"(IPMask).String", Method, 0}, + {"(InvalidAddrError).Error", Method, 0}, + {"(InvalidAddrError).Temporary", Method, 0}, + {"(InvalidAddrError).Timeout", Method, 0}, + {"(UnknownNetworkError).Error", Method, 0}, + {"(UnknownNetworkError).Temporary", Method, 0}, + {"(UnknownNetworkError).Timeout", Method, 0}, + {"Addr", Type, 0}, + {"AddrError", Type, 0}, + {"AddrError.Addr", Field, 0}, + {"AddrError.Err", Field, 0}, + {"Buffers", Type, 8}, + {"CIDRMask", Func, 0}, + {"Conn", Type, 0}, + {"DNSConfigError", Type, 0}, + {"DNSConfigError.Err", Field, 0}, + {"DNSError", Type, 0}, + {"DNSError.Err", Field, 0}, + {"DNSError.IsNotFound", Field, 13}, + {"DNSError.IsTemporary", Field, 6}, + {"DNSError.IsTimeout", Field, 0}, + {"DNSError.Name", Field, 0}, + {"DNSError.Server", Field, 0}, + {"DefaultResolver", Var, 8}, + {"Dial", Func, 0}, + {"DialIP", Func, 0}, + {"DialTCP", Func, 0}, + {"DialTimeout", Func, 0}, + {"DialUDP", Func, 0}, + {"DialUnix", Func, 0}, + {"Dialer", Type, 1}, + {"Dialer.Cancel", Field, 6}, + {"Dialer.Control", Field, 11}, + {"Dialer.ControlContext", Field, 20}, + {"Dialer.Deadline", Field, 1}, + {"Dialer.DualStack", Field, 2}, + {"Dialer.FallbackDelay", Field, 5}, + {"Dialer.KeepAlive", Field, 3}, + {"Dialer.LocalAddr", Field, 1}, + {"Dialer.Resolver", Field, 8}, + {"Dialer.Timeout", Field, 1}, + {"ErrClosed", Var, 16}, + {"ErrWriteToConnected", Var, 0}, + {"Error", Type, 0}, + {"FileConn", Func, 0}, + {"FileListener", Func, 0}, + {"FilePacketConn", Func, 0}, + {"FlagBroadcast", Const, 0}, + {"FlagLoopback", Const, 0}, + {"FlagMulticast", Const, 0}, + {"FlagPointToPoint", Const, 0}, + {"FlagRunning", Const, 20}, + {"FlagUp", Const, 0}, + {"Flags", Type, 0}, + {"HardwareAddr", Type, 0}, + {"IP", Type, 0}, + {"IPAddr", Type, 0}, + {"IPAddr.IP", Field, 0}, + {"IPAddr.Zone", Field, 1}, + {"IPConn", Type, 0}, + {"IPMask", Type, 0}, + {"IPNet", Type, 0}, + {"IPNet.IP", Field, 0}, + {"IPNet.Mask", Field, 0}, + {"IPv4", Func, 0}, + {"IPv4Mask", Func, 0}, + {"IPv4allrouter", Var, 0}, + {"IPv4allsys", Var, 0}, + {"IPv4bcast", Var, 0}, + {"IPv4len", Const, 0}, + {"IPv4zero", Var, 0}, + {"IPv6interfacelocalallnodes", Var, 0}, + {"IPv6len", Const, 0}, + {"IPv6linklocalallnodes", Var, 0}, + {"IPv6linklocalallrouters", Var, 0}, + {"IPv6loopback", Var, 0}, + {"IPv6unspecified", Var, 0}, + {"IPv6zero", Var, 0}, + {"Interface", Type, 0}, + {"Interface.Flags", Field, 0}, + {"Interface.HardwareAddr", Field, 0}, + {"Interface.Index", Field, 0}, + {"Interface.MTU", Field, 0}, + {"Interface.Name", Field, 0}, + {"InterfaceAddrs", Func, 0}, + {"InterfaceByIndex", Func, 0}, + {"InterfaceByName", Func, 0}, + {"Interfaces", Func, 0}, + {"InvalidAddrError", Type, 0}, + {"JoinHostPort", Func, 0}, + {"Listen", Func, 0}, + {"ListenConfig", Type, 11}, + {"ListenConfig.Control", Field, 11}, + {"ListenConfig.KeepAlive", Field, 13}, + {"ListenIP", Func, 0}, + {"ListenMulticastUDP", Func, 0}, + {"ListenPacket", Func, 0}, + {"ListenTCP", Func, 0}, + {"ListenUDP", Func, 0}, + {"ListenUnix", Func, 0}, + {"ListenUnixgram", Func, 0}, + {"Listener", Type, 0}, + {"LookupAddr", Func, 0}, + {"LookupCNAME", Func, 0}, + {"LookupHost", Func, 0}, + {"LookupIP", Func, 0}, + {"LookupMX", Func, 0}, + {"LookupNS", Func, 1}, + {"LookupPort", Func, 0}, + {"LookupSRV", Func, 0}, + {"LookupTXT", Func, 0}, + {"MX", Type, 0}, + {"MX.Host", Field, 0}, + {"MX.Pref", Field, 0}, + {"NS", Type, 1}, + {"NS.Host", Field, 1}, + {"OpError", Type, 0}, + {"OpError.Addr", Field, 0}, + {"OpError.Err", Field, 0}, + {"OpError.Net", Field, 0}, + {"OpError.Op", Field, 0}, + {"OpError.Source", Field, 5}, + {"PacketConn", Type, 0}, + {"ParseCIDR", Func, 0}, + {"ParseError", Type, 0}, + {"ParseError.Text", Field, 0}, + {"ParseError.Type", Field, 0}, + {"ParseIP", Func, 0}, + {"ParseMAC", Func, 0}, + {"Pipe", Func, 0}, + {"ResolveIPAddr", Func, 0}, + {"ResolveTCPAddr", Func, 0}, + {"ResolveUDPAddr", Func, 0}, + {"ResolveUnixAddr", Func, 0}, + {"Resolver", Type, 8}, + {"Resolver.Dial", Field, 9}, + {"Resolver.PreferGo", Field, 8}, + {"Resolver.StrictErrors", Field, 9}, + {"SRV", Type, 0}, + {"SRV.Port", Field, 0}, + {"SRV.Priority", Field, 0}, + {"SRV.Target", Field, 0}, + {"SRV.Weight", Field, 0}, + {"SplitHostPort", Func, 0}, + {"TCPAddr", Type, 0}, + {"TCPAddr.IP", Field, 0}, + {"TCPAddr.Port", Field, 0}, + {"TCPAddr.Zone", Field, 1}, + {"TCPAddrFromAddrPort", Func, 18}, + {"TCPConn", Type, 0}, + {"TCPListener", Type, 0}, + {"UDPAddr", Type, 0}, + {"UDPAddr.IP", Field, 0}, + {"UDPAddr.Port", Field, 0}, + {"UDPAddr.Zone", Field, 1}, + {"UDPAddrFromAddrPort", Func, 18}, + {"UDPConn", Type, 0}, + {"UnixAddr", Type, 0}, + {"UnixAddr.Name", Field, 0}, + {"UnixAddr.Net", Field, 0}, + {"UnixConn", Type, 0}, + {"UnixListener", Type, 0}, + {"UnknownNetworkError", Type, 0}, + }, + "net/http": { + {"(*Client).CloseIdleConnections", Method, 12}, + {"(*Client).Do", Method, 0}, + {"(*Client).Get", Method, 0}, + {"(*Client).Head", Method, 0}, + {"(*Client).Post", Method, 0}, + {"(*Client).PostForm", Method, 0}, + {"(*Cookie).String", Method, 0}, + {"(*Cookie).Valid", Method, 18}, + {"(*MaxBytesError).Error", Method, 19}, + {"(*ProtocolError).Error", Method, 0}, + {"(*ProtocolError).Is", Method, 21}, + {"(*Request).AddCookie", Method, 0}, + {"(*Request).BasicAuth", Method, 4}, + {"(*Request).Clone", Method, 13}, + {"(*Request).Context", Method, 7}, + {"(*Request).Cookie", Method, 0}, + {"(*Request).Cookies", Method, 0}, + {"(*Request).FormFile", Method, 0}, + {"(*Request).FormValue", Method, 0}, + {"(*Request).MultipartReader", Method, 0}, + {"(*Request).ParseForm", Method, 0}, + {"(*Request).ParseMultipartForm", Method, 0}, + {"(*Request).PathValue", Method, 22}, + {"(*Request).PostFormValue", Method, 1}, + {"(*Request).ProtoAtLeast", Method, 0}, + {"(*Request).Referer", Method, 0}, + {"(*Request).SetBasicAuth", Method, 0}, + {"(*Request).SetPathValue", Method, 22}, + {"(*Request).UserAgent", Method, 0}, + {"(*Request).WithContext", Method, 7}, + {"(*Request).Write", Method, 0}, + {"(*Request).WriteProxy", Method, 0}, + {"(*Response).Cookies", Method, 0}, + {"(*Response).Location", Method, 0}, + {"(*Response).ProtoAtLeast", Method, 0}, + {"(*Response).Write", Method, 0}, + {"(*ResponseController).EnableFullDuplex", Method, 21}, + {"(*ResponseController).Flush", Method, 20}, + {"(*ResponseController).Hijack", Method, 20}, + {"(*ResponseController).SetReadDeadline", Method, 20}, + {"(*ResponseController).SetWriteDeadline", Method, 20}, + {"(*ServeMux).Handle", Method, 0}, + {"(*ServeMux).HandleFunc", Method, 0}, + {"(*ServeMux).Handler", Method, 1}, + {"(*ServeMux).ServeHTTP", Method, 0}, + {"(*Server).Close", Method, 8}, + {"(*Server).ListenAndServe", Method, 0}, + {"(*Server).ListenAndServeTLS", Method, 0}, + {"(*Server).RegisterOnShutdown", Method, 9}, + {"(*Server).Serve", Method, 0}, + {"(*Server).ServeTLS", Method, 9}, + {"(*Server).SetKeepAlivesEnabled", Method, 3}, + {"(*Server).Shutdown", Method, 8}, + {"(*Transport).CancelRequest", Method, 1}, + {"(*Transport).Clone", Method, 13}, + {"(*Transport).CloseIdleConnections", Method, 0}, + {"(*Transport).RegisterProtocol", Method, 0}, + {"(*Transport).RoundTrip", Method, 0}, + {"(ConnState).String", Method, 3}, + {"(Dir).Open", Method, 0}, + {"(HandlerFunc).ServeHTTP", Method, 0}, + {"(Header).Add", Method, 0}, + {"(Header).Clone", Method, 13}, + {"(Header).Del", Method, 0}, + {"(Header).Get", Method, 0}, + {"(Header).Set", Method, 0}, + {"(Header).Values", Method, 14}, + {"(Header).Write", Method, 0}, + {"(Header).WriteSubset", Method, 0}, + {"AllowQuerySemicolons", Func, 17}, + {"CanonicalHeaderKey", Func, 0}, + {"Client", Type, 0}, + {"Client.CheckRedirect", Field, 0}, + {"Client.Jar", Field, 0}, + {"Client.Timeout", Field, 3}, + {"Client.Transport", Field, 0}, + {"CloseNotifier", Type, 1}, + {"ConnState", Type, 3}, + {"Cookie", Type, 0}, + {"Cookie.Domain", Field, 0}, + {"Cookie.Expires", Field, 0}, + {"Cookie.HttpOnly", Field, 0}, + {"Cookie.MaxAge", Field, 0}, + {"Cookie.Name", Field, 0}, + {"Cookie.Path", Field, 0}, + {"Cookie.Raw", Field, 0}, + {"Cookie.RawExpires", Field, 0}, + {"Cookie.SameSite", Field, 11}, + {"Cookie.Secure", Field, 0}, + {"Cookie.Unparsed", Field, 0}, + {"Cookie.Value", Field, 0}, + {"CookieJar", Type, 0}, + {"DefaultClient", Var, 0}, + {"DefaultMaxHeaderBytes", Const, 0}, + {"DefaultMaxIdleConnsPerHost", Const, 0}, + {"DefaultServeMux", Var, 0}, + {"DefaultTransport", Var, 0}, + {"DetectContentType", Func, 0}, + {"Dir", Type, 0}, + {"ErrAbortHandler", Var, 8}, + {"ErrBodyNotAllowed", Var, 0}, + {"ErrBodyReadAfterClose", Var, 0}, + {"ErrContentLength", Var, 0}, + {"ErrHandlerTimeout", Var, 0}, + {"ErrHeaderTooLong", Var, 0}, + {"ErrHijacked", Var, 0}, + {"ErrLineTooLong", Var, 0}, + {"ErrMissingBoundary", Var, 0}, + {"ErrMissingContentLength", Var, 0}, + {"ErrMissingFile", Var, 0}, + {"ErrNoCookie", Var, 0}, + {"ErrNoLocation", Var, 0}, + {"ErrNotMultipart", Var, 0}, + {"ErrNotSupported", Var, 0}, + {"ErrSchemeMismatch", Var, 21}, + {"ErrServerClosed", Var, 8}, + {"ErrShortBody", Var, 0}, + {"ErrSkipAltProtocol", Var, 6}, + {"ErrUnexpectedTrailer", Var, 0}, + {"ErrUseLastResponse", Var, 7}, + {"ErrWriteAfterFlush", Var, 0}, + {"Error", Func, 0}, + {"FS", Func, 16}, + {"File", Type, 0}, + {"FileServer", Func, 0}, + {"FileServerFS", Func, 22}, + {"FileSystem", Type, 0}, + {"Flusher", Type, 0}, + {"Get", Func, 0}, + {"Handle", Func, 0}, + {"HandleFunc", Func, 0}, + {"Handler", Type, 0}, + {"HandlerFunc", Type, 0}, + {"Head", Func, 0}, + {"Header", Type, 0}, + {"Hijacker", Type, 0}, + {"ListenAndServe", Func, 0}, + {"ListenAndServeTLS", Func, 0}, + {"LocalAddrContextKey", Var, 7}, + {"MaxBytesError", Type, 19}, + {"MaxBytesError.Limit", Field, 19}, + {"MaxBytesHandler", Func, 18}, + {"MaxBytesReader", Func, 0}, + {"MethodConnect", Const, 6}, + {"MethodDelete", Const, 6}, + {"MethodGet", Const, 6}, + {"MethodHead", Const, 6}, + {"MethodOptions", Const, 6}, + {"MethodPatch", Const, 6}, + {"MethodPost", Const, 6}, + {"MethodPut", Const, 6}, + {"MethodTrace", Const, 6}, + {"NewFileTransport", Func, 0}, + {"NewFileTransportFS", Func, 22}, + {"NewRequest", Func, 0}, + {"NewRequestWithContext", Func, 13}, + {"NewResponseController", Func, 20}, + {"NewServeMux", Func, 0}, + {"NoBody", Var, 8}, + {"NotFound", Func, 0}, + {"NotFoundHandler", Func, 0}, + {"ParseHTTPVersion", Func, 0}, + {"ParseTime", Func, 1}, + {"Post", Func, 0}, + {"PostForm", Func, 0}, + {"ProtocolError", Type, 0}, + {"ProtocolError.ErrorString", Field, 0}, + {"ProxyFromEnvironment", Func, 0}, + {"ProxyURL", Func, 0}, + {"PushOptions", Type, 8}, + {"PushOptions.Header", Field, 8}, + {"PushOptions.Method", Field, 8}, + {"Pusher", Type, 8}, + {"ReadRequest", Func, 0}, + {"ReadResponse", Func, 0}, + {"Redirect", Func, 0}, + {"RedirectHandler", Func, 0}, + {"Request", Type, 0}, + {"Request.Body", Field, 0}, + {"Request.Cancel", Field, 5}, + {"Request.Close", Field, 0}, + {"Request.ContentLength", Field, 0}, + {"Request.Form", Field, 0}, + {"Request.GetBody", Field, 8}, + {"Request.Header", Field, 0}, + {"Request.Host", Field, 0}, + {"Request.Method", Field, 0}, + {"Request.MultipartForm", Field, 0}, + {"Request.PostForm", Field, 1}, + {"Request.Proto", Field, 0}, + {"Request.ProtoMajor", Field, 0}, + {"Request.ProtoMinor", Field, 0}, + {"Request.RemoteAddr", Field, 0}, + {"Request.RequestURI", Field, 0}, + {"Request.Response", Field, 7}, + {"Request.TLS", Field, 0}, + {"Request.Trailer", Field, 0}, + {"Request.TransferEncoding", Field, 0}, + {"Request.URL", Field, 0}, + {"Response", Type, 0}, + {"Response.Body", Field, 0}, + {"Response.Close", Field, 0}, + {"Response.ContentLength", Field, 0}, + {"Response.Header", Field, 0}, + {"Response.Proto", Field, 0}, + {"Response.ProtoMajor", Field, 0}, + {"Response.ProtoMinor", Field, 0}, + {"Response.Request", Field, 0}, + {"Response.Status", Field, 0}, + {"Response.StatusCode", Field, 0}, + {"Response.TLS", Field, 3}, + {"Response.Trailer", Field, 0}, + {"Response.TransferEncoding", Field, 0}, + {"Response.Uncompressed", Field, 7}, + {"ResponseController", Type, 20}, + {"ResponseWriter", Type, 0}, + {"RoundTripper", Type, 0}, + {"SameSite", Type, 11}, + {"SameSiteDefaultMode", Const, 11}, + {"SameSiteLaxMode", Const, 11}, + {"SameSiteNoneMode", Const, 13}, + {"SameSiteStrictMode", Const, 11}, + {"Serve", Func, 0}, + {"ServeContent", Func, 0}, + {"ServeFile", Func, 0}, + {"ServeFileFS", Func, 22}, + {"ServeMux", Type, 0}, + {"ServeTLS", Func, 9}, + {"Server", Type, 0}, + {"Server.Addr", Field, 0}, + {"Server.BaseContext", Field, 13}, + {"Server.ConnContext", Field, 13}, + {"Server.ConnState", Field, 3}, + {"Server.DisableGeneralOptionsHandler", Field, 20}, + {"Server.ErrorLog", Field, 3}, + {"Server.Handler", Field, 0}, + {"Server.IdleTimeout", Field, 8}, + {"Server.MaxHeaderBytes", Field, 0}, + {"Server.ReadHeaderTimeout", Field, 8}, + {"Server.ReadTimeout", Field, 0}, + {"Server.TLSConfig", Field, 0}, + {"Server.TLSNextProto", Field, 1}, + {"Server.WriteTimeout", Field, 0}, + {"ServerContextKey", Var, 7}, + {"SetCookie", Func, 0}, + {"StateActive", Const, 3}, + {"StateClosed", Const, 3}, + {"StateHijacked", Const, 3}, + {"StateIdle", Const, 3}, + {"StateNew", Const, 3}, + {"StatusAccepted", Const, 0}, + {"StatusAlreadyReported", Const, 7}, + {"StatusBadGateway", Const, 0}, + {"StatusBadRequest", Const, 0}, + {"StatusConflict", Const, 0}, + {"StatusContinue", Const, 0}, + {"StatusCreated", Const, 0}, + {"StatusEarlyHints", Const, 13}, + {"StatusExpectationFailed", Const, 0}, + {"StatusFailedDependency", Const, 7}, + {"StatusForbidden", Const, 0}, + {"StatusFound", Const, 0}, + {"StatusGatewayTimeout", Const, 0}, + {"StatusGone", Const, 0}, + {"StatusHTTPVersionNotSupported", Const, 0}, + {"StatusIMUsed", Const, 7}, + {"StatusInsufficientStorage", Const, 7}, + {"StatusInternalServerError", Const, 0}, + {"StatusLengthRequired", Const, 0}, + {"StatusLocked", Const, 7}, + {"StatusLoopDetected", Const, 7}, + {"StatusMethodNotAllowed", Const, 0}, + {"StatusMisdirectedRequest", Const, 11}, + {"StatusMovedPermanently", Const, 0}, + {"StatusMultiStatus", Const, 7}, + {"StatusMultipleChoices", Const, 0}, + {"StatusNetworkAuthenticationRequired", Const, 6}, + {"StatusNoContent", Const, 0}, + {"StatusNonAuthoritativeInfo", Const, 0}, + {"StatusNotAcceptable", Const, 0}, + {"StatusNotExtended", Const, 7}, + {"StatusNotFound", Const, 0}, + {"StatusNotImplemented", Const, 0}, + {"StatusNotModified", Const, 0}, + {"StatusOK", Const, 0}, + {"StatusPartialContent", Const, 0}, + {"StatusPaymentRequired", Const, 0}, + {"StatusPermanentRedirect", Const, 7}, + {"StatusPreconditionFailed", Const, 0}, + {"StatusPreconditionRequired", Const, 6}, + {"StatusProcessing", Const, 7}, + {"StatusProxyAuthRequired", Const, 0}, + {"StatusRequestEntityTooLarge", Const, 0}, + {"StatusRequestHeaderFieldsTooLarge", Const, 6}, + {"StatusRequestTimeout", Const, 0}, + {"StatusRequestURITooLong", Const, 0}, + {"StatusRequestedRangeNotSatisfiable", Const, 0}, + {"StatusResetContent", Const, 0}, + {"StatusSeeOther", Const, 0}, + {"StatusServiceUnavailable", Const, 0}, + {"StatusSwitchingProtocols", Const, 0}, + {"StatusTeapot", Const, 0}, + {"StatusTemporaryRedirect", Const, 0}, + {"StatusText", Func, 0}, + {"StatusTooEarly", Const, 12}, + {"StatusTooManyRequests", Const, 6}, + {"StatusUnauthorized", Const, 0}, + {"StatusUnavailableForLegalReasons", Const, 6}, + {"StatusUnprocessableEntity", Const, 7}, + {"StatusUnsupportedMediaType", Const, 0}, + {"StatusUpgradeRequired", Const, 7}, + {"StatusUseProxy", Const, 0}, + {"StatusVariantAlsoNegotiates", Const, 7}, + {"StripPrefix", Func, 0}, + {"TimeFormat", Const, 0}, + {"TimeoutHandler", Func, 0}, + {"TrailerPrefix", Const, 8}, + {"Transport", Type, 0}, + {"Transport.Dial", Field, 0}, + {"Transport.DialContext", Field, 7}, + {"Transport.DialTLS", Field, 4}, + {"Transport.DialTLSContext", Field, 14}, + {"Transport.DisableCompression", Field, 0}, + {"Transport.DisableKeepAlives", Field, 0}, + {"Transport.ExpectContinueTimeout", Field, 6}, + {"Transport.ForceAttemptHTTP2", Field, 13}, + {"Transport.GetProxyConnectHeader", Field, 16}, + {"Transport.IdleConnTimeout", Field, 7}, + {"Transport.MaxConnsPerHost", Field, 11}, + {"Transport.MaxIdleConns", Field, 7}, + {"Transport.MaxIdleConnsPerHost", Field, 0}, + {"Transport.MaxResponseHeaderBytes", Field, 7}, + {"Transport.OnProxyConnectResponse", Field, 20}, + {"Transport.Proxy", Field, 0}, + {"Transport.ProxyConnectHeader", Field, 8}, + {"Transport.ReadBufferSize", Field, 13}, + {"Transport.ResponseHeaderTimeout", Field, 1}, + {"Transport.TLSClientConfig", Field, 0}, + {"Transport.TLSHandshakeTimeout", Field, 3}, + {"Transport.TLSNextProto", Field, 6}, + {"Transport.WriteBufferSize", Field, 13}, + }, + "net/http/cgi": { + {"(*Handler).ServeHTTP", Method, 0}, + {"Handler", Type, 0}, + {"Handler.Args", Field, 0}, + {"Handler.Dir", Field, 0}, + {"Handler.Env", Field, 0}, + {"Handler.InheritEnv", Field, 0}, + {"Handler.Logger", Field, 0}, + {"Handler.Path", Field, 0}, + {"Handler.PathLocationHandler", Field, 0}, + {"Handler.Root", Field, 0}, + {"Handler.Stderr", Field, 7}, + {"Request", Func, 0}, + {"RequestFromMap", Func, 0}, + {"Serve", Func, 0}, + }, + "net/http/cookiejar": { + {"(*Jar).Cookies", Method, 1}, + {"(*Jar).SetCookies", Method, 1}, + {"Jar", Type, 1}, + {"New", Func, 1}, + {"Options", Type, 1}, + {"Options.PublicSuffixList", Field, 1}, + {"PublicSuffixList", Type, 1}, + }, + "net/http/fcgi": { + {"ErrConnClosed", Var, 5}, + {"ErrRequestAborted", Var, 5}, + {"ProcessEnv", Func, 9}, + {"Serve", Func, 0}, + }, + "net/http/httptest": { + {"(*ResponseRecorder).Flush", Method, 0}, + {"(*ResponseRecorder).Header", Method, 0}, + {"(*ResponseRecorder).Result", Method, 7}, + {"(*ResponseRecorder).Write", Method, 0}, + {"(*ResponseRecorder).WriteHeader", Method, 0}, + {"(*ResponseRecorder).WriteString", Method, 6}, + {"(*Server).Certificate", Method, 9}, + {"(*Server).Client", Method, 9}, + {"(*Server).Close", Method, 0}, + {"(*Server).CloseClientConnections", Method, 0}, + {"(*Server).Start", Method, 0}, + {"(*Server).StartTLS", Method, 0}, + {"DefaultRemoteAddr", Const, 0}, + {"NewRecorder", Func, 0}, + {"NewRequest", Func, 7}, + {"NewServer", Func, 0}, + {"NewTLSServer", Func, 0}, + {"NewUnstartedServer", Func, 0}, + {"ResponseRecorder", Type, 0}, + {"ResponseRecorder.Body", Field, 0}, + {"ResponseRecorder.Code", Field, 0}, + {"ResponseRecorder.Flushed", Field, 0}, + {"ResponseRecorder.HeaderMap", Field, 0}, + {"Server", Type, 0}, + {"Server.Config", Field, 0}, + {"Server.EnableHTTP2", Field, 14}, + {"Server.Listener", Field, 0}, + {"Server.TLS", Field, 0}, + {"Server.URL", Field, 0}, + }, + "net/http/httptrace": { + {"ClientTrace", Type, 7}, + {"ClientTrace.ConnectDone", Field, 7}, + {"ClientTrace.ConnectStart", Field, 7}, + {"ClientTrace.DNSDone", Field, 7}, + {"ClientTrace.DNSStart", Field, 7}, + {"ClientTrace.GetConn", Field, 7}, + {"ClientTrace.Got100Continue", Field, 7}, + {"ClientTrace.Got1xxResponse", Field, 11}, + {"ClientTrace.GotConn", Field, 7}, + {"ClientTrace.GotFirstResponseByte", Field, 7}, + {"ClientTrace.PutIdleConn", Field, 7}, + {"ClientTrace.TLSHandshakeDone", Field, 8}, + {"ClientTrace.TLSHandshakeStart", Field, 8}, + {"ClientTrace.Wait100Continue", Field, 7}, + {"ClientTrace.WroteHeaderField", Field, 11}, + {"ClientTrace.WroteHeaders", Field, 7}, + {"ClientTrace.WroteRequest", Field, 7}, + {"ContextClientTrace", Func, 7}, + {"DNSDoneInfo", Type, 7}, + {"DNSDoneInfo.Addrs", Field, 7}, + {"DNSDoneInfo.Coalesced", Field, 7}, + {"DNSDoneInfo.Err", Field, 7}, + {"DNSStartInfo", Type, 7}, + {"DNSStartInfo.Host", Field, 7}, + {"GotConnInfo", Type, 7}, + {"GotConnInfo.Conn", Field, 7}, + {"GotConnInfo.IdleTime", Field, 7}, + {"GotConnInfo.Reused", Field, 7}, + {"GotConnInfo.WasIdle", Field, 7}, + {"WithClientTrace", Func, 7}, + {"WroteRequestInfo", Type, 7}, + {"WroteRequestInfo.Err", Field, 7}, + }, + "net/http/httputil": { + {"(*ClientConn).Close", Method, 0}, + {"(*ClientConn).Do", Method, 0}, + {"(*ClientConn).Hijack", Method, 0}, + {"(*ClientConn).Pending", Method, 0}, + {"(*ClientConn).Read", Method, 0}, + {"(*ClientConn).Write", Method, 0}, + {"(*ProxyRequest).SetURL", Method, 20}, + {"(*ProxyRequest).SetXForwarded", Method, 20}, + {"(*ReverseProxy).ServeHTTP", Method, 0}, + {"(*ServerConn).Close", Method, 0}, + {"(*ServerConn).Hijack", Method, 0}, + {"(*ServerConn).Pending", Method, 0}, + {"(*ServerConn).Read", Method, 0}, + {"(*ServerConn).Write", Method, 0}, + {"BufferPool", Type, 6}, + {"ClientConn", Type, 0}, + {"DumpRequest", Func, 0}, + {"DumpRequestOut", Func, 0}, + {"DumpResponse", Func, 0}, + {"ErrClosed", Var, 0}, + {"ErrLineTooLong", Var, 0}, + {"ErrPersistEOF", Var, 0}, + {"ErrPipeline", Var, 0}, + {"NewChunkedReader", Func, 0}, + {"NewChunkedWriter", Func, 0}, + {"NewClientConn", Func, 0}, + {"NewProxyClientConn", Func, 0}, + {"NewServerConn", Func, 0}, + {"NewSingleHostReverseProxy", Func, 0}, + {"ProxyRequest", Type, 20}, + {"ProxyRequest.In", Field, 20}, + {"ProxyRequest.Out", Field, 20}, + {"ReverseProxy", Type, 0}, + {"ReverseProxy.BufferPool", Field, 6}, + {"ReverseProxy.Director", Field, 0}, + {"ReverseProxy.ErrorHandler", Field, 11}, + {"ReverseProxy.ErrorLog", Field, 4}, + {"ReverseProxy.FlushInterval", Field, 0}, + {"ReverseProxy.ModifyResponse", Field, 8}, + {"ReverseProxy.Rewrite", Field, 20}, + {"ReverseProxy.Transport", Field, 0}, + {"ServerConn", Type, 0}, + }, + "net/http/pprof": { + {"Cmdline", Func, 0}, + {"Handler", Func, 0}, + {"Index", Func, 0}, + {"Profile", Func, 0}, + {"Symbol", Func, 0}, + {"Trace", Func, 5}, + }, + "net/mail": { + {"(*Address).String", Method, 0}, + {"(*AddressParser).Parse", Method, 5}, + {"(*AddressParser).ParseList", Method, 5}, + {"(Header).AddressList", Method, 0}, + {"(Header).Date", Method, 0}, + {"(Header).Get", Method, 0}, + {"Address", Type, 0}, + {"Address.Address", Field, 0}, + {"Address.Name", Field, 0}, + {"AddressParser", Type, 5}, + {"AddressParser.WordDecoder", Field, 5}, + {"ErrHeaderNotPresent", Var, 0}, + {"Header", Type, 0}, + {"Message", Type, 0}, + {"Message.Body", Field, 0}, + {"Message.Header", Field, 0}, + {"ParseAddress", Func, 1}, + {"ParseAddressList", Func, 1}, + {"ParseDate", Func, 8}, + {"ReadMessage", Func, 0}, + }, + "net/netip": { + {"(*Addr).UnmarshalBinary", Method, 18}, + {"(*Addr).UnmarshalText", Method, 18}, + {"(*AddrPort).UnmarshalBinary", Method, 18}, + {"(*AddrPort).UnmarshalText", Method, 18}, + {"(*Prefix).UnmarshalBinary", Method, 18}, + {"(*Prefix).UnmarshalText", Method, 18}, + {"(Addr).AppendTo", Method, 18}, + {"(Addr).As16", Method, 18}, + {"(Addr).As4", Method, 18}, + {"(Addr).AsSlice", Method, 18}, + {"(Addr).BitLen", Method, 18}, + {"(Addr).Compare", Method, 18}, + {"(Addr).Is4", Method, 18}, + {"(Addr).Is4In6", Method, 18}, + {"(Addr).Is6", Method, 18}, + {"(Addr).IsGlobalUnicast", Method, 18}, + {"(Addr).IsInterfaceLocalMulticast", Method, 18}, + {"(Addr).IsLinkLocalMulticast", Method, 18}, + {"(Addr).IsLinkLocalUnicast", Method, 18}, + {"(Addr).IsLoopback", Method, 18}, + {"(Addr).IsMulticast", Method, 18}, + {"(Addr).IsPrivate", Method, 18}, + {"(Addr).IsUnspecified", Method, 18}, + {"(Addr).IsValid", Method, 18}, + {"(Addr).Less", Method, 18}, + {"(Addr).MarshalBinary", Method, 18}, + {"(Addr).MarshalText", Method, 18}, + {"(Addr).Next", Method, 18}, + {"(Addr).Prefix", Method, 18}, + {"(Addr).Prev", Method, 18}, + {"(Addr).String", Method, 18}, + {"(Addr).StringExpanded", Method, 18}, + {"(Addr).Unmap", Method, 18}, + {"(Addr).WithZone", Method, 18}, + {"(Addr).Zone", Method, 18}, + {"(AddrPort).Addr", Method, 18}, + {"(AddrPort).AppendTo", Method, 18}, + {"(AddrPort).Compare", Method, 22}, + {"(AddrPort).IsValid", Method, 18}, + {"(AddrPort).MarshalBinary", Method, 18}, + {"(AddrPort).MarshalText", Method, 18}, + {"(AddrPort).Port", Method, 18}, + {"(AddrPort).String", Method, 18}, + {"(Prefix).Addr", Method, 18}, + {"(Prefix).AppendTo", Method, 18}, + {"(Prefix).Bits", Method, 18}, + {"(Prefix).Contains", Method, 18}, + {"(Prefix).IsSingleIP", Method, 18}, + {"(Prefix).IsValid", Method, 18}, + {"(Prefix).MarshalBinary", Method, 18}, + {"(Prefix).MarshalText", Method, 18}, + {"(Prefix).Masked", Method, 18}, + {"(Prefix).Overlaps", Method, 18}, + {"(Prefix).String", Method, 18}, + {"Addr", Type, 18}, + {"AddrFrom16", Func, 18}, + {"AddrFrom4", Func, 18}, + {"AddrFromSlice", Func, 18}, + {"AddrPort", Type, 18}, + {"AddrPortFrom", Func, 18}, + {"IPv4Unspecified", Func, 18}, + {"IPv6LinkLocalAllNodes", Func, 18}, + {"IPv6LinkLocalAllRouters", Func, 20}, + {"IPv6Loopback", Func, 20}, + {"IPv6Unspecified", Func, 18}, + {"MustParseAddr", Func, 18}, + {"MustParseAddrPort", Func, 18}, + {"MustParsePrefix", Func, 18}, + {"ParseAddr", Func, 18}, + {"ParseAddrPort", Func, 18}, + {"ParsePrefix", Func, 18}, + {"Prefix", Type, 18}, + {"PrefixFrom", Func, 18}, + }, + "net/rpc": { + {"(*Client).Call", Method, 0}, + {"(*Client).Close", Method, 0}, + {"(*Client).Go", Method, 0}, + {"(*Server).Accept", Method, 0}, + {"(*Server).HandleHTTP", Method, 0}, + {"(*Server).Register", Method, 0}, + {"(*Server).RegisterName", Method, 0}, + {"(*Server).ServeCodec", Method, 0}, + {"(*Server).ServeConn", Method, 0}, + {"(*Server).ServeHTTP", Method, 0}, + {"(*Server).ServeRequest", Method, 0}, + {"(ServerError).Error", Method, 0}, + {"Accept", Func, 0}, + {"Call", Type, 0}, + {"Call.Args", Field, 0}, + {"Call.Done", Field, 0}, + {"Call.Error", Field, 0}, + {"Call.Reply", Field, 0}, + {"Call.ServiceMethod", Field, 0}, + {"Client", Type, 0}, + {"ClientCodec", Type, 0}, + {"DefaultDebugPath", Const, 0}, + {"DefaultRPCPath", Const, 0}, + {"DefaultServer", Var, 0}, + {"Dial", Func, 0}, + {"DialHTTP", Func, 0}, + {"DialHTTPPath", Func, 0}, + {"ErrShutdown", Var, 0}, + {"HandleHTTP", Func, 0}, + {"NewClient", Func, 0}, + {"NewClientWithCodec", Func, 0}, + {"NewServer", Func, 0}, + {"Register", Func, 0}, + {"RegisterName", Func, 0}, + {"Request", Type, 0}, + {"Request.Seq", Field, 0}, + {"Request.ServiceMethod", Field, 0}, + {"Response", Type, 0}, + {"Response.Error", Field, 0}, + {"Response.Seq", Field, 0}, + {"Response.ServiceMethod", Field, 0}, + {"ServeCodec", Func, 0}, + {"ServeConn", Func, 0}, + {"ServeRequest", Func, 0}, + {"Server", Type, 0}, + {"ServerCodec", Type, 0}, + {"ServerError", Type, 0}, + }, + "net/rpc/jsonrpc": { + {"Dial", Func, 0}, + {"NewClient", Func, 0}, + {"NewClientCodec", Func, 0}, + {"NewServerCodec", Func, 0}, + {"ServeConn", Func, 0}, + }, + "net/smtp": { + {"(*Client).Auth", Method, 0}, + {"(*Client).Close", Method, 2}, + {"(*Client).Data", Method, 0}, + {"(*Client).Extension", Method, 0}, + {"(*Client).Hello", Method, 1}, + {"(*Client).Mail", Method, 0}, + {"(*Client).Noop", Method, 10}, + {"(*Client).Quit", Method, 0}, + {"(*Client).Rcpt", Method, 0}, + {"(*Client).Reset", Method, 0}, + {"(*Client).StartTLS", Method, 0}, + {"(*Client).TLSConnectionState", Method, 5}, + {"(*Client).Verify", Method, 0}, + {"Auth", Type, 0}, + {"CRAMMD5Auth", Func, 0}, + {"Client", Type, 0}, + {"Client.Text", Field, 0}, + {"Dial", Func, 0}, + {"NewClient", Func, 0}, + {"PlainAuth", Func, 0}, + {"SendMail", Func, 0}, + {"ServerInfo", Type, 0}, + {"ServerInfo.Auth", Field, 0}, + {"ServerInfo.Name", Field, 0}, + {"ServerInfo.TLS", Field, 0}, + }, + "net/textproto": { + {"(*Conn).Close", Method, 0}, + {"(*Conn).Cmd", Method, 0}, + {"(*Conn).DotReader", Method, 0}, + {"(*Conn).DotWriter", Method, 0}, + {"(*Conn).EndRequest", Method, 0}, + {"(*Conn).EndResponse", Method, 0}, + {"(*Conn).Next", Method, 0}, + {"(*Conn).PrintfLine", Method, 0}, + {"(*Conn).ReadCodeLine", Method, 0}, + {"(*Conn).ReadContinuedLine", Method, 0}, + {"(*Conn).ReadContinuedLineBytes", Method, 0}, + {"(*Conn).ReadDotBytes", Method, 0}, + {"(*Conn).ReadDotLines", Method, 0}, + {"(*Conn).ReadLine", Method, 0}, + {"(*Conn).ReadLineBytes", Method, 0}, + {"(*Conn).ReadMIMEHeader", Method, 0}, + {"(*Conn).ReadResponse", Method, 0}, + {"(*Conn).StartRequest", Method, 0}, + {"(*Conn).StartResponse", Method, 0}, + {"(*Error).Error", Method, 0}, + {"(*Pipeline).EndRequest", Method, 0}, + {"(*Pipeline).EndResponse", Method, 0}, + {"(*Pipeline).Next", Method, 0}, + {"(*Pipeline).StartRequest", Method, 0}, + {"(*Pipeline).StartResponse", Method, 0}, + {"(*Reader).DotReader", Method, 0}, + {"(*Reader).ReadCodeLine", Method, 0}, + {"(*Reader).ReadContinuedLine", Method, 0}, + {"(*Reader).ReadContinuedLineBytes", Method, 0}, + {"(*Reader).ReadDotBytes", Method, 0}, + {"(*Reader).ReadDotLines", Method, 0}, + {"(*Reader).ReadLine", Method, 0}, + {"(*Reader).ReadLineBytes", Method, 0}, + {"(*Reader).ReadMIMEHeader", Method, 0}, + {"(*Reader).ReadResponse", Method, 0}, + {"(*Writer).DotWriter", Method, 0}, + {"(*Writer).PrintfLine", Method, 0}, + {"(MIMEHeader).Add", Method, 0}, + {"(MIMEHeader).Del", Method, 0}, + {"(MIMEHeader).Get", Method, 0}, + {"(MIMEHeader).Set", Method, 0}, + {"(MIMEHeader).Values", Method, 14}, + {"(ProtocolError).Error", Method, 0}, + {"CanonicalMIMEHeaderKey", Func, 0}, + {"Conn", Type, 0}, + {"Conn.Pipeline", Field, 0}, + {"Conn.Reader", Field, 0}, + {"Conn.Writer", Field, 0}, + {"Dial", Func, 0}, + {"Error", Type, 0}, + {"Error.Code", Field, 0}, + {"Error.Msg", Field, 0}, + {"MIMEHeader", Type, 0}, + {"NewConn", Func, 0}, + {"NewReader", Func, 0}, + {"NewWriter", Func, 0}, + {"Pipeline", Type, 0}, + {"ProtocolError", Type, 0}, + {"Reader", Type, 0}, + {"Reader.R", Field, 0}, + {"TrimBytes", Func, 1}, + {"TrimString", Func, 1}, + {"Writer", Type, 0}, + {"Writer.W", Field, 0}, + }, + "net/url": { + {"(*Error).Error", Method, 0}, + {"(*Error).Temporary", Method, 6}, + {"(*Error).Timeout", Method, 6}, + {"(*Error).Unwrap", Method, 13}, + {"(*URL).EscapedFragment", Method, 15}, + {"(*URL).EscapedPath", Method, 5}, + {"(*URL).Hostname", Method, 8}, + {"(*URL).IsAbs", Method, 0}, + {"(*URL).JoinPath", Method, 19}, + {"(*URL).MarshalBinary", Method, 8}, + {"(*URL).Parse", Method, 0}, + {"(*URL).Port", Method, 8}, + {"(*URL).Query", Method, 0}, + {"(*URL).Redacted", Method, 15}, + {"(*URL).RequestURI", Method, 0}, + {"(*URL).ResolveReference", Method, 0}, + {"(*URL).String", Method, 0}, + {"(*URL).UnmarshalBinary", Method, 8}, + {"(*Userinfo).Password", Method, 0}, + {"(*Userinfo).String", Method, 0}, + {"(*Userinfo).Username", Method, 0}, + {"(EscapeError).Error", Method, 0}, + {"(InvalidHostError).Error", Method, 6}, + {"(Values).Add", Method, 0}, + {"(Values).Del", Method, 0}, + {"(Values).Encode", Method, 0}, + {"(Values).Get", Method, 0}, + {"(Values).Has", Method, 17}, + {"(Values).Set", Method, 0}, + {"Error", Type, 0}, + {"Error.Err", Field, 0}, + {"Error.Op", Field, 0}, + {"Error.URL", Field, 0}, + {"EscapeError", Type, 0}, + {"InvalidHostError", Type, 6}, + {"JoinPath", Func, 19}, + {"Parse", Func, 0}, + {"ParseQuery", Func, 0}, + {"ParseRequestURI", Func, 0}, + {"PathEscape", Func, 8}, + {"PathUnescape", Func, 8}, + {"QueryEscape", Func, 0}, + {"QueryUnescape", Func, 0}, + {"URL", Type, 0}, + {"URL.ForceQuery", Field, 7}, + {"URL.Fragment", Field, 0}, + {"URL.Host", Field, 0}, + {"URL.OmitHost", Field, 19}, + {"URL.Opaque", Field, 0}, + {"URL.Path", Field, 0}, + {"URL.RawFragment", Field, 15}, + {"URL.RawPath", Field, 5}, + {"URL.RawQuery", Field, 0}, + {"URL.Scheme", Field, 0}, + {"URL.User", Field, 0}, + {"User", Func, 0}, + {"UserPassword", Func, 0}, + {"Userinfo", Type, 0}, + {"Values", Type, 0}, + }, + "os": { + {"(*File).Chdir", Method, 0}, + {"(*File).Chmod", Method, 0}, + {"(*File).Chown", Method, 0}, + {"(*File).Close", Method, 0}, + {"(*File).Fd", Method, 0}, + {"(*File).Name", Method, 0}, + {"(*File).Read", Method, 0}, + {"(*File).ReadAt", Method, 0}, + {"(*File).ReadDir", Method, 16}, + {"(*File).ReadFrom", Method, 15}, + {"(*File).Readdir", Method, 0}, + {"(*File).Readdirnames", Method, 0}, + {"(*File).Seek", Method, 0}, + {"(*File).SetDeadline", Method, 10}, + {"(*File).SetReadDeadline", Method, 10}, + {"(*File).SetWriteDeadline", Method, 10}, + {"(*File).Stat", Method, 0}, + {"(*File).Sync", Method, 0}, + {"(*File).SyscallConn", Method, 12}, + {"(*File).Truncate", Method, 0}, + {"(*File).Write", Method, 0}, + {"(*File).WriteAt", Method, 0}, + {"(*File).WriteString", Method, 0}, + {"(*File).WriteTo", Method, 22}, + {"(*LinkError).Error", Method, 0}, + {"(*LinkError).Unwrap", Method, 13}, + {"(*PathError).Error", Method, 0}, + {"(*PathError).Timeout", Method, 10}, + {"(*PathError).Unwrap", Method, 13}, + {"(*Process).Kill", Method, 0}, + {"(*Process).Release", Method, 0}, + {"(*Process).Signal", Method, 0}, + {"(*Process).Wait", Method, 0}, + {"(*ProcessState).ExitCode", Method, 12}, + {"(*ProcessState).Exited", Method, 0}, + {"(*ProcessState).Pid", Method, 0}, + {"(*ProcessState).String", Method, 0}, + {"(*ProcessState).Success", Method, 0}, + {"(*ProcessState).Sys", Method, 0}, + {"(*ProcessState).SysUsage", Method, 0}, + {"(*ProcessState).SystemTime", Method, 0}, + {"(*ProcessState).UserTime", Method, 0}, + {"(*SyscallError).Error", Method, 0}, + {"(*SyscallError).Timeout", Method, 10}, + {"(*SyscallError).Unwrap", Method, 13}, + {"(FileMode).IsDir", Method, 0}, + {"(FileMode).IsRegular", Method, 1}, + {"(FileMode).Perm", Method, 0}, + {"(FileMode).String", Method, 0}, + {"Args", Var, 0}, + {"Chdir", Func, 0}, + {"Chmod", Func, 0}, + {"Chown", Func, 0}, + {"Chtimes", Func, 0}, + {"Clearenv", Func, 0}, + {"Create", Func, 0}, + {"CreateTemp", Func, 16}, + {"DevNull", Const, 0}, + {"DirEntry", Type, 16}, + {"DirFS", Func, 16}, + {"Environ", Func, 0}, + {"ErrClosed", Var, 8}, + {"ErrDeadlineExceeded", Var, 15}, + {"ErrExist", Var, 0}, + {"ErrInvalid", Var, 0}, + {"ErrNoDeadline", Var, 10}, + {"ErrNotExist", Var, 0}, + {"ErrPermission", Var, 0}, + {"ErrProcessDone", Var, 16}, + {"Executable", Func, 8}, + {"Exit", Func, 0}, + {"Expand", Func, 0}, + {"ExpandEnv", Func, 0}, + {"File", Type, 0}, + {"FileInfo", Type, 0}, + {"FileMode", Type, 0}, + {"FindProcess", Func, 0}, + {"Getegid", Func, 0}, + {"Getenv", Func, 0}, + {"Geteuid", Func, 0}, + {"Getgid", Func, 0}, + {"Getgroups", Func, 0}, + {"Getpagesize", Func, 0}, + {"Getpid", Func, 0}, + {"Getppid", Func, 0}, + {"Getuid", Func, 0}, + {"Getwd", Func, 0}, + {"Hostname", Func, 0}, + {"Interrupt", Var, 0}, + {"IsExist", Func, 0}, + {"IsNotExist", Func, 0}, + {"IsPathSeparator", Func, 0}, + {"IsPermission", Func, 0}, + {"IsTimeout", Func, 10}, + {"Kill", Var, 0}, + {"Lchown", Func, 0}, + {"Link", Func, 0}, + {"LinkError", Type, 0}, + {"LinkError.Err", Field, 0}, + {"LinkError.New", Field, 0}, + {"LinkError.Old", Field, 0}, + {"LinkError.Op", Field, 0}, + {"LookupEnv", Func, 5}, + {"Lstat", Func, 0}, + {"Mkdir", Func, 0}, + {"MkdirAll", Func, 0}, + {"MkdirTemp", Func, 16}, + {"ModeAppend", Const, 0}, + {"ModeCharDevice", Const, 0}, + {"ModeDevice", Const, 0}, + {"ModeDir", Const, 0}, + {"ModeExclusive", Const, 0}, + {"ModeIrregular", Const, 11}, + {"ModeNamedPipe", Const, 0}, + {"ModePerm", Const, 0}, + {"ModeSetgid", Const, 0}, + {"ModeSetuid", Const, 0}, + {"ModeSocket", Const, 0}, + {"ModeSticky", Const, 0}, + {"ModeSymlink", Const, 0}, + {"ModeTemporary", Const, 0}, + {"ModeType", Const, 0}, + {"NewFile", Func, 0}, + {"NewSyscallError", Func, 0}, + {"O_APPEND", Const, 0}, + {"O_CREATE", Const, 0}, + {"O_EXCL", Const, 0}, + {"O_RDONLY", Const, 0}, + {"O_RDWR", Const, 0}, + {"O_SYNC", Const, 0}, + {"O_TRUNC", Const, 0}, + {"O_WRONLY", Const, 0}, + {"Open", Func, 0}, + {"OpenFile", Func, 0}, + {"PathError", Type, 0}, + {"PathError.Err", Field, 0}, + {"PathError.Op", Field, 0}, + {"PathError.Path", Field, 0}, + {"PathListSeparator", Const, 0}, + {"PathSeparator", Const, 0}, + {"Pipe", Func, 0}, + {"ProcAttr", Type, 0}, + {"ProcAttr.Dir", Field, 0}, + {"ProcAttr.Env", Field, 0}, + {"ProcAttr.Files", Field, 0}, + {"ProcAttr.Sys", Field, 0}, + {"Process", Type, 0}, + {"Process.Pid", Field, 0}, + {"ProcessState", Type, 0}, + {"ReadDir", Func, 16}, + {"ReadFile", Func, 16}, + {"Readlink", Func, 0}, + {"Remove", Func, 0}, + {"RemoveAll", Func, 0}, + {"Rename", Func, 0}, + {"SEEK_CUR", Const, 0}, + {"SEEK_END", Const, 0}, + {"SEEK_SET", Const, 0}, + {"SameFile", Func, 0}, + {"Setenv", Func, 0}, + {"Signal", Type, 0}, + {"StartProcess", Func, 0}, + {"Stat", Func, 0}, + {"Stderr", Var, 0}, + {"Stdin", Var, 0}, + {"Stdout", Var, 0}, + {"Symlink", Func, 0}, + {"SyscallError", Type, 0}, + {"SyscallError.Err", Field, 0}, + {"SyscallError.Syscall", Field, 0}, + {"TempDir", Func, 0}, + {"Truncate", Func, 0}, + {"Unsetenv", Func, 4}, + {"UserCacheDir", Func, 11}, + {"UserConfigDir", Func, 13}, + {"UserHomeDir", Func, 12}, + {"WriteFile", Func, 16}, + }, + "os/exec": { + {"(*Cmd).CombinedOutput", Method, 0}, + {"(*Cmd).Environ", Method, 19}, + {"(*Cmd).Output", Method, 0}, + {"(*Cmd).Run", Method, 0}, + {"(*Cmd).Start", Method, 0}, + {"(*Cmd).StderrPipe", Method, 0}, + {"(*Cmd).StdinPipe", Method, 0}, + {"(*Cmd).StdoutPipe", Method, 0}, + {"(*Cmd).String", Method, 13}, + {"(*Cmd).Wait", Method, 0}, + {"(*Error).Error", Method, 0}, + {"(*Error).Unwrap", Method, 13}, + {"(*ExitError).Error", Method, 0}, + {"(ExitError).ExitCode", Method, 12}, + {"(ExitError).Exited", Method, 0}, + {"(ExitError).Pid", Method, 0}, + {"(ExitError).String", Method, 0}, + {"(ExitError).Success", Method, 0}, + {"(ExitError).Sys", Method, 0}, + {"(ExitError).SysUsage", Method, 0}, + {"(ExitError).SystemTime", Method, 0}, + {"(ExitError).UserTime", Method, 0}, + {"Cmd", Type, 0}, + {"Cmd.Args", Field, 0}, + {"Cmd.Cancel", Field, 20}, + {"Cmd.Dir", Field, 0}, + {"Cmd.Env", Field, 0}, + {"Cmd.Err", Field, 19}, + {"Cmd.ExtraFiles", Field, 0}, + {"Cmd.Path", Field, 0}, + {"Cmd.Process", Field, 0}, + {"Cmd.ProcessState", Field, 0}, + {"Cmd.Stderr", Field, 0}, + {"Cmd.Stdin", Field, 0}, + {"Cmd.Stdout", Field, 0}, + {"Cmd.SysProcAttr", Field, 0}, + {"Cmd.WaitDelay", Field, 20}, + {"Command", Func, 0}, + {"CommandContext", Func, 7}, + {"ErrDot", Var, 19}, + {"ErrNotFound", Var, 0}, + {"ErrWaitDelay", Var, 20}, + {"Error", Type, 0}, + {"Error.Err", Field, 0}, + {"Error.Name", Field, 0}, + {"ExitError", Type, 0}, + {"ExitError.ProcessState", Field, 0}, + {"ExitError.Stderr", Field, 6}, + {"LookPath", Func, 0}, + }, + "os/signal": { + {"Ignore", Func, 5}, + {"Ignored", Func, 11}, + {"Notify", Func, 0}, + {"NotifyContext", Func, 16}, + {"Reset", Func, 5}, + {"Stop", Func, 1}, + }, + "os/user": { + {"(*User).GroupIds", Method, 7}, + {"(UnknownGroupError).Error", Method, 7}, + {"(UnknownGroupIdError).Error", Method, 7}, + {"(UnknownUserError).Error", Method, 0}, + {"(UnknownUserIdError).Error", Method, 0}, + {"Current", Func, 0}, + {"Group", Type, 7}, + {"Group.Gid", Field, 7}, + {"Group.Name", Field, 7}, + {"Lookup", Func, 0}, + {"LookupGroup", Func, 7}, + {"LookupGroupId", Func, 7}, + {"LookupId", Func, 0}, + {"UnknownGroupError", Type, 7}, + {"UnknownGroupIdError", Type, 7}, + {"UnknownUserError", Type, 0}, + {"UnknownUserIdError", Type, 0}, + {"User", Type, 0}, + {"User.Gid", Field, 0}, + {"User.HomeDir", Field, 0}, + {"User.Name", Field, 0}, + {"User.Uid", Field, 0}, + {"User.Username", Field, 0}, + }, + "path": { + {"Base", Func, 0}, + {"Clean", Func, 0}, + {"Dir", Func, 0}, + {"ErrBadPattern", Var, 0}, + {"Ext", Func, 0}, + {"IsAbs", Func, 0}, + {"Join", Func, 0}, + {"Match", Func, 0}, + {"Split", Func, 0}, + }, + "path/filepath": { + {"Abs", Func, 0}, + {"Base", Func, 0}, + {"Clean", Func, 0}, + {"Dir", Func, 0}, + {"ErrBadPattern", Var, 0}, + {"EvalSymlinks", Func, 0}, + {"Ext", Func, 0}, + {"FromSlash", Func, 0}, + {"Glob", Func, 0}, + {"HasPrefix", Func, 0}, + {"IsAbs", Func, 0}, + {"IsLocal", Func, 20}, + {"Join", Func, 0}, + {"ListSeparator", Const, 0}, + {"Match", Func, 0}, + {"Rel", Func, 0}, + {"Separator", Const, 0}, + {"SkipAll", Var, 20}, + {"SkipDir", Var, 0}, + {"Split", Func, 0}, + {"SplitList", Func, 0}, + {"ToSlash", Func, 0}, + {"VolumeName", Func, 0}, + {"Walk", Func, 0}, + {"WalkDir", Func, 16}, + {"WalkFunc", Type, 0}, + }, + "plugin": { + {"(*Plugin).Lookup", Method, 8}, + {"Open", Func, 8}, + {"Plugin", Type, 8}, + {"Symbol", Type, 8}, + }, + "reflect": { + {"(*MapIter).Key", Method, 12}, + {"(*MapIter).Next", Method, 12}, + {"(*MapIter).Reset", Method, 18}, + {"(*MapIter).Value", Method, 12}, + {"(*ValueError).Error", Method, 0}, + {"(ChanDir).String", Method, 0}, + {"(Kind).String", Method, 0}, + {"(Method).IsExported", Method, 17}, + {"(StructField).IsExported", Method, 17}, + {"(StructTag).Get", Method, 0}, + {"(StructTag).Lookup", Method, 7}, + {"(Value).Addr", Method, 0}, + {"(Value).Bool", Method, 0}, + {"(Value).Bytes", Method, 0}, + {"(Value).Call", Method, 0}, + {"(Value).CallSlice", Method, 0}, + {"(Value).CanAddr", Method, 0}, + {"(Value).CanComplex", Method, 18}, + {"(Value).CanConvert", Method, 17}, + {"(Value).CanFloat", Method, 18}, + {"(Value).CanInt", Method, 18}, + {"(Value).CanInterface", Method, 0}, + {"(Value).CanSet", Method, 0}, + {"(Value).CanUint", Method, 18}, + {"(Value).Cap", Method, 0}, + {"(Value).Clear", Method, 21}, + {"(Value).Close", Method, 0}, + {"(Value).Comparable", Method, 20}, + {"(Value).Complex", Method, 0}, + {"(Value).Convert", Method, 1}, + {"(Value).Elem", Method, 0}, + {"(Value).Equal", Method, 20}, + {"(Value).Field", Method, 0}, + {"(Value).FieldByIndex", Method, 0}, + {"(Value).FieldByIndexErr", Method, 18}, + {"(Value).FieldByName", Method, 0}, + {"(Value).FieldByNameFunc", Method, 0}, + {"(Value).Float", Method, 0}, + {"(Value).Grow", Method, 20}, + {"(Value).Index", Method, 0}, + {"(Value).Int", Method, 0}, + {"(Value).Interface", Method, 0}, + {"(Value).InterfaceData", Method, 0}, + {"(Value).IsNil", Method, 0}, + {"(Value).IsValid", Method, 0}, + {"(Value).IsZero", Method, 13}, + {"(Value).Kind", Method, 0}, + {"(Value).Len", Method, 0}, + {"(Value).MapIndex", Method, 0}, + {"(Value).MapKeys", Method, 0}, + {"(Value).MapRange", Method, 12}, + {"(Value).Method", Method, 0}, + {"(Value).MethodByName", Method, 0}, + {"(Value).NumField", Method, 0}, + {"(Value).NumMethod", Method, 0}, + {"(Value).OverflowComplex", Method, 0}, + {"(Value).OverflowFloat", Method, 0}, + {"(Value).OverflowInt", Method, 0}, + {"(Value).OverflowUint", Method, 0}, + {"(Value).Pointer", Method, 0}, + {"(Value).Recv", Method, 0}, + {"(Value).Send", Method, 0}, + {"(Value).Set", Method, 0}, + {"(Value).SetBool", Method, 0}, + {"(Value).SetBytes", Method, 0}, + {"(Value).SetCap", Method, 2}, + {"(Value).SetComplex", Method, 0}, + {"(Value).SetFloat", Method, 0}, + {"(Value).SetInt", Method, 0}, + {"(Value).SetIterKey", Method, 18}, + {"(Value).SetIterValue", Method, 18}, + {"(Value).SetLen", Method, 0}, + {"(Value).SetMapIndex", Method, 0}, + {"(Value).SetPointer", Method, 0}, + {"(Value).SetString", Method, 0}, + {"(Value).SetUint", Method, 0}, + {"(Value).SetZero", Method, 20}, + {"(Value).Slice", Method, 0}, + {"(Value).Slice3", Method, 2}, + {"(Value).String", Method, 0}, + {"(Value).TryRecv", Method, 0}, + {"(Value).TrySend", Method, 0}, + {"(Value).Type", Method, 0}, + {"(Value).Uint", Method, 0}, + {"(Value).UnsafeAddr", Method, 0}, + {"(Value).UnsafePointer", Method, 18}, + {"Append", Func, 0}, + {"AppendSlice", Func, 0}, + {"Array", Const, 0}, + {"ArrayOf", Func, 5}, + {"Bool", Const, 0}, + {"BothDir", Const, 0}, + {"Chan", Const, 0}, + {"ChanDir", Type, 0}, + {"ChanOf", Func, 1}, + {"Complex128", Const, 0}, + {"Complex64", Const, 0}, + {"Copy", Func, 0}, + {"DeepEqual", Func, 0}, + {"Float32", Const, 0}, + {"Float64", Const, 0}, + {"Func", Const, 0}, + {"FuncOf", Func, 5}, + {"Indirect", Func, 0}, + {"Int", Const, 0}, + {"Int16", Const, 0}, + {"Int32", Const, 0}, + {"Int64", Const, 0}, + {"Int8", Const, 0}, + {"Interface", Const, 0}, + {"Invalid", Const, 0}, + {"Kind", Type, 0}, + {"MakeChan", Func, 0}, + {"MakeFunc", Func, 1}, + {"MakeMap", Func, 0}, + {"MakeMapWithSize", Func, 9}, + {"MakeSlice", Func, 0}, + {"Map", Const, 0}, + {"MapIter", Type, 12}, + {"MapOf", Func, 1}, + {"Method", Type, 0}, + {"Method.Func", Field, 0}, + {"Method.Index", Field, 0}, + {"Method.Name", Field, 0}, + {"Method.PkgPath", Field, 0}, + {"Method.Type", Field, 0}, + {"New", Func, 0}, + {"NewAt", Func, 0}, + {"Pointer", Const, 18}, + {"PointerTo", Func, 18}, + {"Ptr", Const, 0}, + {"PtrTo", Func, 0}, + {"RecvDir", Const, 0}, + {"Select", Func, 1}, + {"SelectCase", Type, 1}, + {"SelectCase.Chan", Field, 1}, + {"SelectCase.Dir", Field, 1}, + {"SelectCase.Send", Field, 1}, + {"SelectDefault", Const, 1}, + {"SelectDir", Type, 1}, + {"SelectRecv", Const, 1}, + {"SelectSend", Const, 1}, + {"SendDir", Const, 0}, + {"Slice", Const, 0}, + {"SliceHeader", Type, 0}, + {"SliceHeader.Cap", Field, 0}, + {"SliceHeader.Data", Field, 0}, + {"SliceHeader.Len", Field, 0}, + {"SliceOf", Func, 1}, + {"String", Const, 0}, + {"StringHeader", Type, 0}, + {"StringHeader.Data", Field, 0}, + {"StringHeader.Len", Field, 0}, + {"Struct", Const, 0}, + {"StructField", Type, 0}, + {"StructField.Anonymous", Field, 0}, + {"StructField.Index", Field, 0}, + {"StructField.Name", Field, 0}, + {"StructField.Offset", Field, 0}, + {"StructField.PkgPath", Field, 0}, + {"StructField.Tag", Field, 0}, + {"StructField.Type", Field, 0}, + {"StructOf", Func, 7}, + {"StructTag", Type, 0}, + {"Swapper", Func, 8}, + {"Type", Type, 0}, + {"TypeFor", Func, 22}, + {"TypeOf", Func, 0}, + {"Uint", Const, 0}, + {"Uint16", Const, 0}, + {"Uint32", Const, 0}, + {"Uint64", Const, 0}, + {"Uint8", Const, 0}, + {"Uintptr", Const, 0}, + {"UnsafePointer", Const, 0}, + {"Value", Type, 0}, + {"ValueError", Type, 0}, + {"ValueError.Kind", Field, 0}, + {"ValueError.Method", Field, 0}, + {"ValueOf", Func, 0}, + {"VisibleFields", Func, 17}, + {"Zero", Func, 0}, + }, + "regexp": { + {"(*Regexp).Copy", Method, 6}, + {"(*Regexp).Expand", Method, 0}, + {"(*Regexp).ExpandString", Method, 0}, + {"(*Regexp).Find", Method, 0}, + {"(*Regexp).FindAll", Method, 0}, + {"(*Regexp).FindAllIndex", Method, 0}, + {"(*Regexp).FindAllString", Method, 0}, + {"(*Regexp).FindAllStringIndex", Method, 0}, + {"(*Regexp).FindAllStringSubmatch", Method, 0}, + {"(*Regexp).FindAllStringSubmatchIndex", Method, 0}, + {"(*Regexp).FindAllSubmatch", Method, 0}, + {"(*Regexp).FindAllSubmatchIndex", Method, 0}, + {"(*Regexp).FindIndex", Method, 0}, + {"(*Regexp).FindReaderIndex", Method, 0}, + {"(*Regexp).FindReaderSubmatchIndex", Method, 0}, + {"(*Regexp).FindString", Method, 0}, + {"(*Regexp).FindStringIndex", Method, 0}, + {"(*Regexp).FindStringSubmatch", Method, 0}, + {"(*Regexp).FindStringSubmatchIndex", Method, 0}, + {"(*Regexp).FindSubmatch", Method, 0}, + {"(*Regexp).FindSubmatchIndex", Method, 0}, + {"(*Regexp).LiteralPrefix", Method, 0}, + {"(*Regexp).Longest", Method, 1}, + {"(*Regexp).MarshalText", Method, 21}, + {"(*Regexp).Match", Method, 0}, + {"(*Regexp).MatchReader", Method, 0}, + {"(*Regexp).MatchString", Method, 0}, + {"(*Regexp).NumSubexp", Method, 0}, + {"(*Regexp).ReplaceAll", Method, 0}, + {"(*Regexp).ReplaceAllFunc", Method, 0}, + {"(*Regexp).ReplaceAllLiteral", Method, 0}, + {"(*Regexp).ReplaceAllLiteralString", Method, 0}, + {"(*Regexp).ReplaceAllString", Method, 0}, + {"(*Regexp).ReplaceAllStringFunc", Method, 0}, + {"(*Regexp).Split", Method, 1}, + {"(*Regexp).String", Method, 0}, + {"(*Regexp).SubexpIndex", Method, 15}, + {"(*Regexp).SubexpNames", Method, 0}, + {"(*Regexp).UnmarshalText", Method, 21}, + {"Compile", Func, 0}, + {"CompilePOSIX", Func, 0}, + {"Match", Func, 0}, + {"MatchReader", Func, 0}, + {"MatchString", Func, 0}, + {"MustCompile", Func, 0}, + {"MustCompilePOSIX", Func, 0}, + {"QuoteMeta", Func, 0}, + {"Regexp", Type, 0}, + }, + "regexp/syntax": { + {"(*Error).Error", Method, 0}, + {"(*Inst).MatchEmptyWidth", Method, 0}, + {"(*Inst).MatchRune", Method, 0}, + {"(*Inst).MatchRunePos", Method, 3}, + {"(*Inst).String", Method, 0}, + {"(*Prog).Prefix", Method, 0}, + {"(*Prog).StartCond", Method, 0}, + {"(*Prog).String", Method, 0}, + {"(*Regexp).CapNames", Method, 0}, + {"(*Regexp).Equal", Method, 0}, + {"(*Regexp).MaxCap", Method, 0}, + {"(*Regexp).Simplify", Method, 0}, + {"(*Regexp).String", Method, 0}, + {"(ErrorCode).String", Method, 0}, + {"(InstOp).String", Method, 3}, + {"(Op).String", Method, 11}, + {"ClassNL", Const, 0}, + {"Compile", Func, 0}, + {"DotNL", Const, 0}, + {"EmptyBeginLine", Const, 0}, + {"EmptyBeginText", Const, 0}, + {"EmptyEndLine", Const, 0}, + {"EmptyEndText", Const, 0}, + {"EmptyNoWordBoundary", Const, 0}, + {"EmptyOp", Type, 0}, + {"EmptyOpContext", Func, 0}, + {"EmptyWordBoundary", Const, 0}, + {"ErrInternalError", Const, 0}, + {"ErrInvalidCharClass", Const, 0}, + {"ErrInvalidCharRange", Const, 0}, + {"ErrInvalidEscape", Const, 0}, + {"ErrInvalidNamedCapture", Const, 0}, + {"ErrInvalidPerlOp", Const, 0}, + {"ErrInvalidRepeatOp", Const, 0}, + {"ErrInvalidRepeatSize", Const, 0}, + {"ErrInvalidUTF8", Const, 0}, + {"ErrLarge", Const, 20}, + {"ErrMissingBracket", Const, 0}, + {"ErrMissingParen", Const, 0}, + {"ErrMissingRepeatArgument", Const, 0}, + {"ErrNestingDepth", Const, 19}, + {"ErrTrailingBackslash", Const, 0}, + {"ErrUnexpectedParen", Const, 1}, + {"Error", Type, 0}, + {"Error.Code", Field, 0}, + {"Error.Expr", Field, 0}, + {"ErrorCode", Type, 0}, + {"Flags", Type, 0}, + {"FoldCase", Const, 0}, + {"Inst", Type, 0}, + {"Inst.Arg", Field, 0}, + {"Inst.Op", Field, 0}, + {"Inst.Out", Field, 0}, + {"Inst.Rune", Field, 0}, + {"InstAlt", Const, 0}, + {"InstAltMatch", Const, 0}, + {"InstCapture", Const, 0}, + {"InstEmptyWidth", Const, 0}, + {"InstFail", Const, 0}, + {"InstMatch", Const, 0}, + {"InstNop", Const, 0}, + {"InstOp", Type, 0}, + {"InstRune", Const, 0}, + {"InstRune1", Const, 0}, + {"InstRuneAny", Const, 0}, + {"InstRuneAnyNotNL", Const, 0}, + {"IsWordChar", Func, 0}, + {"Literal", Const, 0}, + {"MatchNL", Const, 0}, + {"NonGreedy", Const, 0}, + {"OneLine", Const, 0}, + {"Op", Type, 0}, + {"OpAlternate", Const, 0}, + {"OpAnyChar", Const, 0}, + {"OpAnyCharNotNL", Const, 0}, + {"OpBeginLine", Const, 0}, + {"OpBeginText", Const, 0}, + {"OpCapture", Const, 0}, + {"OpCharClass", Const, 0}, + {"OpConcat", Const, 0}, + {"OpEmptyMatch", Const, 0}, + {"OpEndLine", Const, 0}, + {"OpEndText", Const, 0}, + {"OpLiteral", Const, 0}, + {"OpNoMatch", Const, 0}, + {"OpNoWordBoundary", Const, 0}, + {"OpPlus", Const, 0}, + {"OpQuest", Const, 0}, + {"OpRepeat", Const, 0}, + {"OpStar", Const, 0}, + {"OpWordBoundary", Const, 0}, + {"POSIX", Const, 0}, + {"Parse", Func, 0}, + {"Perl", Const, 0}, + {"PerlX", Const, 0}, + {"Prog", Type, 0}, + {"Prog.Inst", Field, 0}, + {"Prog.NumCap", Field, 0}, + {"Prog.Start", Field, 0}, + {"Regexp", Type, 0}, + {"Regexp.Cap", Field, 0}, + {"Regexp.Flags", Field, 0}, + {"Regexp.Max", Field, 0}, + {"Regexp.Min", Field, 0}, + {"Regexp.Name", Field, 0}, + {"Regexp.Op", Field, 0}, + {"Regexp.Rune", Field, 0}, + {"Regexp.Rune0", Field, 0}, + {"Regexp.Sub", Field, 0}, + {"Regexp.Sub0", Field, 0}, + {"Simple", Const, 0}, + {"UnicodeGroups", Const, 0}, + {"WasDollar", Const, 0}, + }, + "runtime": { + {"(*BlockProfileRecord).Stack", Method, 1}, + {"(*Frames).Next", Method, 7}, + {"(*Func).Entry", Method, 0}, + {"(*Func).FileLine", Method, 0}, + {"(*Func).Name", Method, 0}, + {"(*MemProfileRecord).InUseBytes", Method, 0}, + {"(*MemProfileRecord).InUseObjects", Method, 0}, + {"(*MemProfileRecord).Stack", Method, 0}, + {"(*PanicNilError).Error", Method, 21}, + {"(*PanicNilError).RuntimeError", Method, 21}, + {"(*Pinner).Pin", Method, 21}, + {"(*Pinner).Unpin", Method, 21}, + {"(*StackRecord).Stack", Method, 0}, + {"(*TypeAssertionError).Error", Method, 0}, + {"(*TypeAssertionError).RuntimeError", Method, 0}, + {"BlockProfile", Func, 1}, + {"BlockProfileRecord", Type, 1}, + {"BlockProfileRecord.Count", Field, 1}, + {"BlockProfileRecord.Cycles", Field, 1}, + {"BlockProfileRecord.StackRecord", Field, 1}, + {"Breakpoint", Func, 0}, + {"CPUProfile", Func, 0}, + {"Caller", Func, 0}, + {"Callers", Func, 0}, + {"CallersFrames", Func, 7}, + {"Compiler", Const, 0}, + {"Error", Type, 0}, + {"Frame", Type, 7}, + {"Frame.Entry", Field, 7}, + {"Frame.File", Field, 7}, + {"Frame.Func", Field, 7}, + {"Frame.Function", Field, 7}, + {"Frame.Line", Field, 7}, + {"Frame.PC", Field, 7}, + {"Frames", Type, 7}, + {"Func", Type, 0}, + {"FuncForPC", Func, 0}, + {"GC", Func, 0}, + {"GOARCH", Const, 0}, + {"GOMAXPROCS", Func, 0}, + {"GOOS", Const, 0}, + {"GOROOT", Func, 0}, + {"Goexit", Func, 0}, + {"GoroutineProfile", Func, 0}, + {"Gosched", Func, 0}, + {"KeepAlive", Func, 7}, + {"LockOSThread", Func, 0}, + {"MemProfile", Func, 0}, + {"MemProfileRate", Var, 0}, + {"MemProfileRecord", Type, 0}, + {"MemProfileRecord.AllocBytes", Field, 0}, + {"MemProfileRecord.AllocObjects", Field, 0}, + {"MemProfileRecord.FreeBytes", Field, 0}, + {"MemProfileRecord.FreeObjects", Field, 0}, + {"MemProfileRecord.Stack0", Field, 0}, + {"MemStats", Type, 0}, + {"MemStats.Alloc", Field, 0}, + {"MemStats.BuckHashSys", Field, 0}, + {"MemStats.BySize", Field, 0}, + {"MemStats.DebugGC", Field, 0}, + {"MemStats.EnableGC", Field, 0}, + {"MemStats.Frees", Field, 0}, + {"MemStats.GCCPUFraction", Field, 5}, + {"MemStats.GCSys", Field, 2}, + {"MemStats.HeapAlloc", Field, 0}, + {"MemStats.HeapIdle", Field, 0}, + {"MemStats.HeapInuse", Field, 0}, + {"MemStats.HeapObjects", Field, 0}, + {"MemStats.HeapReleased", Field, 0}, + {"MemStats.HeapSys", Field, 0}, + {"MemStats.LastGC", Field, 0}, + {"MemStats.Lookups", Field, 0}, + {"MemStats.MCacheInuse", Field, 0}, + {"MemStats.MCacheSys", Field, 0}, + {"MemStats.MSpanInuse", Field, 0}, + {"MemStats.MSpanSys", Field, 0}, + {"MemStats.Mallocs", Field, 0}, + {"MemStats.NextGC", Field, 0}, + {"MemStats.NumForcedGC", Field, 8}, + {"MemStats.NumGC", Field, 0}, + {"MemStats.OtherSys", Field, 2}, + {"MemStats.PauseEnd", Field, 4}, + {"MemStats.PauseNs", Field, 0}, + {"MemStats.PauseTotalNs", Field, 0}, + {"MemStats.StackInuse", Field, 0}, + {"MemStats.StackSys", Field, 0}, + {"MemStats.Sys", Field, 0}, + {"MemStats.TotalAlloc", Field, 0}, + {"MutexProfile", Func, 8}, + {"NumCPU", Func, 0}, + {"NumCgoCall", Func, 0}, + {"NumGoroutine", Func, 0}, + {"PanicNilError", Type, 21}, + {"Pinner", Type, 21}, + {"ReadMemStats", Func, 0}, + {"ReadTrace", Func, 5}, + {"SetBlockProfileRate", Func, 1}, + {"SetCPUProfileRate", Func, 0}, + {"SetCgoTraceback", Func, 7}, + {"SetFinalizer", Func, 0}, + {"SetMutexProfileFraction", Func, 8}, + {"Stack", Func, 0}, + {"StackRecord", Type, 0}, + {"StackRecord.Stack0", Field, 0}, + {"StartTrace", Func, 5}, + {"StopTrace", Func, 5}, + {"ThreadCreateProfile", Func, 0}, + {"TypeAssertionError", Type, 0}, + {"UnlockOSThread", Func, 0}, + {"Version", Func, 0}, + }, + "runtime/cgo": { + {"(Handle).Delete", Method, 17}, + {"(Handle).Value", Method, 17}, + {"Handle", Type, 17}, + {"Incomplete", Type, 20}, + {"NewHandle", Func, 17}, + }, + "runtime/coverage": { + {"ClearCounters", Func, 20}, + {"WriteCounters", Func, 20}, + {"WriteCountersDir", Func, 20}, + {"WriteMeta", Func, 20}, + {"WriteMetaDir", Func, 20}, + }, + "runtime/debug": { + {"(*BuildInfo).String", Method, 18}, + {"BuildInfo", Type, 12}, + {"BuildInfo.Deps", Field, 12}, + {"BuildInfo.GoVersion", Field, 18}, + {"BuildInfo.Main", Field, 12}, + {"BuildInfo.Path", Field, 12}, + {"BuildInfo.Settings", Field, 18}, + {"BuildSetting", Type, 18}, + {"BuildSetting.Key", Field, 18}, + {"BuildSetting.Value", Field, 18}, + {"FreeOSMemory", Func, 1}, + {"GCStats", Type, 1}, + {"GCStats.LastGC", Field, 1}, + {"GCStats.NumGC", Field, 1}, + {"GCStats.Pause", Field, 1}, + {"GCStats.PauseEnd", Field, 4}, + {"GCStats.PauseQuantiles", Field, 1}, + {"GCStats.PauseTotal", Field, 1}, + {"Module", Type, 12}, + {"Module.Path", Field, 12}, + {"Module.Replace", Field, 12}, + {"Module.Sum", Field, 12}, + {"Module.Version", Field, 12}, + {"ParseBuildInfo", Func, 18}, + {"PrintStack", Func, 0}, + {"ReadBuildInfo", Func, 12}, + {"ReadGCStats", Func, 1}, + {"SetGCPercent", Func, 1}, + {"SetMaxStack", Func, 2}, + {"SetMaxThreads", Func, 2}, + {"SetMemoryLimit", Func, 19}, + {"SetPanicOnFault", Func, 3}, + {"SetTraceback", Func, 6}, + {"Stack", Func, 0}, + {"WriteHeapDump", Func, 3}, + }, + "runtime/metrics": { + {"(Value).Float64", Method, 16}, + {"(Value).Float64Histogram", Method, 16}, + {"(Value).Kind", Method, 16}, + {"(Value).Uint64", Method, 16}, + {"All", Func, 16}, + {"Description", Type, 16}, + {"Description.Cumulative", Field, 16}, + {"Description.Description", Field, 16}, + {"Description.Kind", Field, 16}, + {"Description.Name", Field, 16}, + {"Float64Histogram", Type, 16}, + {"Float64Histogram.Buckets", Field, 16}, + {"Float64Histogram.Counts", Field, 16}, + {"KindBad", Const, 16}, + {"KindFloat64", Const, 16}, + {"KindFloat64Histogram", Const, 16}, + {"KindUint64", Const, 16}, + {"Read", Func, 16}, + {"Sample", Type, 16}, + {"Sample.Name", Field, 16}, + {"Sample.Value", Field, 16}, + {"Value", Type, 16}, + {"ValueKind", Type, 16}, + }, + "runtime/pprof": { + {"(*Profile).Add", Method, 0}, + {"(*Profile).Count", Method, 0}, + {"(*Profile).Name", Method, 0}, + {"(*Profile).Remove", Method, 0}, + {"(*Profile).WriteTo", Method, 0}, + {"Do", Func, 9}, + {"ForLabels", Func, 9}, + {"Label", Func, 9}, + {"LabelSet", Type, 9}, + {"Labels", Func, 9}, + {"Lookup", Func, 0}, + {"NewProfile", Func, 0}, + {"Profile", Type, 0}, + {"Profiles", Func, 0}, + {"SetGoroutineLabels", Func, 9}, + {"StartCPUProfile", Func, 0}, + {"StopCPUProfile", Func, 0}, + {"WithLabels", Func, 9}, + {"WriteHeapProfile", Func, 0}, + }, + "runtime/trace": { + {"(*Region).End", Method, 11}, + {"(*Task).End", Method, 11}, + {"IsEnabled", Func, 11}, + {"Log", Func, 11}, + {"Logf", Func, 11}, + {"NewTask", Func, 11}, + {"Region", Type, 11}, + {"Start", Func, 5}, + {"StartRegion", Func, 11}, + {"Stop", Func, 5}, + {"Task", Type, 11}, + {"WithRegion", Func, 11}, + }, + "slices": { + {"BinarySearch", Func, 21}, + {"BinarySearchFunc", Func, 21}, + {"Clip", Func, 21}, + {"Clone", Func, 21}, + {"Compact", Func, 21}, + {"CompactFunc", Func, 21}, + {"Compare", Func, 21}, + {"CompareFunc", Func, 21}, + {"Concat", Func, 22}, + {"Contains", Func, 21}, + {"ContainsFunc", Func, 21}, + {"Delete", Func, 21}, + {"DeleteFunc", Func, 21}, + {"Equal", Func, 21}, + {"EqualFunc", Func, 21}, + {"Grow", Func, 21}, + {"Index", Func, 21}, + {"IndexFunc", Func, 21}, + {"Insert", Func, 21}, + {"IsSorted", Func, 21}, + {"IsSortedFunc", Func, 21}, + {"Max", Func, 21}, + {"MaxFunc", Func, 21}, + {"Min", Func, 21}, + {"MinFunc", Func, 21}, + {"Replace", Func, 21}, + {"Reverse", Func, 21}, + {"Sort", Func, 21}, + {"SortFunc", Func, 21}, + {"SortStableFunc", Func, 21}, + }, + "sort": { + {"(Float64Slice).Len", Method, 0}, + {"(Float64Slice).Less", Method, 0}, + {"(Float64Slice).Search", Method, 0}, + {"(Float64Slice).Sort", Method, 0}, + {"(Float64Slice).Swap", Method, 0}, + {"(IntSlice).Len", Method, 0}, + {"(IntSlice).Less", Method, 0}, + {"(IntSlice).Search", Method, 0}, + {"(IntSlice).Sort", Method, 0}, + {"(IntSlice).Swap", Method, 0}, + {"(StringSlice).Len", Method, 0}, + {"(StringSlice).Less", Method, 0}, + {"(StringSlice).Search", Method, 0}, + {"(StringSlice).Sort", Method, 0}, + {"(StringSlice).Swap", Method, 0}, + {"Find", Func, 19}, + {"Float64Slice", Type, 0}, + {"Float64s", Func, 0}, + {"Float64sAreSorted", Func, 0}, + {"IntSlice", Type, 0}, + {"Interface", Type, 0}, + {"Ints", Func, 0}, + {"IntsAreSorted", Func, 0}, + {"IsSorted", Func, 0}, + {"Reverse", Func, 1}, + {"Search", Func, 0}, + {"SearchFloat64s", Func, 0}, + {"SearchInts", Func, 0}, + {"SearchStrings", Func, 0}, + {"Slice", Func, 8}, + {"SliceIsSorted", Func, 8}, + {"SliceStable", Func, 8}, + {"Sort", Func, 0}, + {"Stable", Func, 2}, + {"StringSlice", Type, 0}, + {"Strings", Func, 0}, + {"StringsAreSorted", Func, 0}, + }, + "strconv": { + {"(*NumError).Error", Method, 0}, + {"(*NumError).Unwrap", Method, 14}, + {"AppendBool", Func, 0}, + {"AppendFloat", Func, 0}, + {"AppendInt", Func, 0}, + {"AppendQuote", Func, 0}, + {"AppendQuoteRune", Func, 0}, + {"AppendQuoteRuneToASCII", Func, 0}, + {"AppendQuoteRuneToGraphic", Func, 6}, + {"AppendQuoteToASCII", Func, 0}, + {"AppendQuoteToGraphic", Func, 6}, + {"AppendUint", Func, 0}, + {"Atoi", Func, 0}, + {"CanBackquote", Func, 0}, + {"ErrRange", Var, 0}, + {"ErrSyntax", Var, 0}, + {"FormatBool", Func, 0}, + {"FormatComplex", Func, 15}, + {"FormatFloat", Func, 0}, + {"FormatInt", Func, 0}, + {"FormatUint", Func, 0}, + {"IntSize", Const, 0}, + {"IsGraphic", Func, 6}, + {"IsPrint", Func, 0}, + {"Itoa", Func, 0}, + {"NumError", Type, 0}, + {"NumError.Err", Field, 0}, + {"NumError.Func", Field, 0}, + {"NumError.Num", Field, 0}, + {"ParseBool", Func, 0}, + {"ParseComplex", Func, 15}, + {"ParseFloat", Func, 0}, + {"ParseInt", Func, 0}, + {"ParseUint", Func, 0}, + {"Quote", Func, 0}, + {"QuoteRune", Func, 0}, + {"QuoteRuneToASCII", Func, 0}, + {"QuoteRuneToGraphic", Func, 6}, + {"QuoteToASCII", Func, 0}, + {"QuoteToGraphic", Func, 6}, + {"QuotedPrefix", Func, 17}, + {"Unquote", Func, 0}, + {"UnquoteChar", Func, 0}, + }, + "strings": { + {"(*Builder).Cap", Method, 12}, + {"(*Builder).Grow", Method, 10}, + {"(*Builder).Len", Method, 10}, + {"(*Builder).Reset", Method, 10}, + {"(*Builder).String", Method, 10}, + {"(*Builder).Write", Method, 10}, + {"(*Builder).WriteByte", Method, 10}, + {"(*Builder).WriteRune", Method, 10}, + {"(*Builder).WriteString", Method, 10}, + {"(*Reader).Len", Method, 0}, + {"(*Reader).Read", Method, 0}, + {"(*Reader).ReadAt", Method, 0}, + {"(*Reader).ReadByte", Method, 0}, + {"(*Reader).ReadRune", Method, 0}, + {"(*Reader).Reset", Method, 7}, + {"(*Reader).Seek", Method, 0}, + {"(*Reader).Size", Method, 5}, + {"(*Reader).UnreadByte", Method, 0}, + {"(*Reader).UnreadRune", Method, 0}, + {"(*Reader).WriteTo", Method, 1}, + {"(*Replacer).Replace", Method, 0}, + {"(*Replacer).WriteString", Method, 0}, + {"Builder", Type, 10}, + {"Clone", Func, 18}, + {"Compare", Func, 5}, + {"Contains", Func, 0}, + {"ContainsAny", Func, 0}, + {"ContainsFunc", Func, 21}, + {"ContainsRune", Func, 0}, + {"Count", Func, 0}, + {"Cut", Func, 18}, + {"CutPrefix", Func, 20}, + {"CutSuffix", Func, 20}, + {"EqualFold", Func, 0}, + {"Fields", Func, 0}, + {"FieldsFunc", Func, 0}, + {"HasPrefix", Func, 0}, + {"HasSuffix", Func, 0}, + {"Index", Func, 0}, + {"IndexAny", Func, 0}, + {"IndexByte", Func, 2}, + {"IndexFunc", Func, 0}, + {"IndexRune", Func, 0}, + {"Join", Func, 0}, + {"LastIndex", Func, 0}, + {"LastIndexAny", Func, 0}, + {"LastIndexByte", Func, 5}, + {"LastIndexFunc", Func, 0}, + {"Map", Func, 0}, + {"NewReader", Func, 0}, + {"NewReplacer", Func, 0}, + {"Reader", Type, 0}, + {"Repeat", Func, 0}, + {"Replace", Func, 0}, + {"ReplaceAll", Func, 12}, + {"Replacer", Type, 0}, + {"Split", Func, 0}, + {"SplitAfter", Func, 0}, + {"SplitAfterN", Func, 0}, + {"SplitN", Func, 0}, + {"Title", Func, 0}, + {"ToLower", Func, 0}, + {"ToLowerSpecial", Func, 0}, + {"ToTitle", Func, 0}, + {"ToTitleSpecial", Func, 0}, + {"ToUpper", Func, 0}, + {"ToUpperSpecial", Func, 0}, + {"ToValidUTF8", Func, 13}, + {"Trim", Func, 0}, + {"TrimFunc", Func, 0}, + {"TrimLeft", Func, 0}, + {"TrimLeftFunc", Func, 0}, + {"TrimPrefix", Func, 1}, + {"TrimRight", Func, 0}, + {"TrimRightFunc", Func, 0}, + {"TrimSpace", Func, 0}, + {"TrimSuffix", Func, 1}, + }, + "sync": { + {"(*Cond).Broadcast", Method, 0}, + {"(*Cond).Signal", Method, 0}, + {"(*Cond).Wait", Method, 0}, + {"(*Map).CompareAndDelete", Method, 20}, + {"(*Map).CompareAndSwap", Method, 20}, + {"(*Map).Delete", Method, 9}, + {"(*Map).Load", Method, 9}, + {"(*Map).LoadAndDelete", Method, 15}, + {"(*Map).LoadOrStore", Method, 9}, + {"(*Map).Range", Method, 9}, + {"(*Map).Store", Method, 9}, + {"(*Map).Swap", Method, 20}, + {"(*Mutex).Lock", Method, 0}, + {"(*Mutex).TryLock", Method, 18}, + {"(*Mutex).Unlock", Method, 0}, + {"(*Once).Do", Method, 0}, + {"(*Pool).Get", Method, 3}, + {"(*Pool).Put", Method, 3}, + {"(*RWMutex).Lock", Method, 0}, + {"(*RWMutex).RLock", Method, 0}, + {"(*RWMutex).RLocker", Method, 0}, + {"(*RWMutex).RUnlock", Method, 0}, + {"(*RWMutex).TryLock", Method, 18}, + {"(*RWMutex).TryRLock", Method, 18}, + {"(*RWMutex).Unlock", Method, 0}, + {"(*WaitGroup).Add", Method, 0}, + {"(*WaitGroup).Done", Method, 0}, + {"(*WaitGroup).Wait", Method, 0}, + {"Cond", Type, 0}, + {"Cond.L", Field, 0}, + {"Locker", Type, 0}, + {"Map", Type, 9}, + {"Mutex", Type, 0}, + {"NewCond", Func, 0}, + {"Once", Type, 0}, + {"OnceFunc", Func, 21}, + {"OnceValue", Func, 21}, + {"OnceValues", Func, 21}, + {"Pool", Type, 3}, + {"Pool.New", Field, 3}, + {"RWMutex", Type, 0}, + {"WaitGroup", Type, 0}, + }, + "sync/atomic": { + {"(*Bool).CompareAndSwap", Method, 19}, + {"(*Bool).Load", Method, 19}, + {"(*Bool).Store", Method, 19}, + {"(*Bool).Swap", Method, 19}, + {"(*Int32).Add", Method, 19}, + {"(*Int32).CompareAndSwap", Method, 19}, + {"(*Int32).Load", Method, 19}, + {"(*Int32).Store", Method, 19}, + {"(*Int32).Swap", Method, 19}, + {"(*Int64).Add", Method, 19}, + {"(*Int64).CompareAndSwap", Method, 19}, + {"(*Int64).Load", Method, 19}, + {"(*Int64).Store", Method, 19}, + {"(*Int64).Swap", Method, 19}, + {"(*Pointer).CompareAndSwap", Method, 19}, + {"(*Pointer).Load", Method, 19}, + {"(*Pointer).Store", Method, 19}, + {"(*Pointer).Swap", Method, 19}, + {"(*Uint32).Add", Method, 19}, + {"(*Uint32).CompareAndSwap", Method, 19}, + {"(*Uint32).Load", Method, 19}, + {"(*Uint32).Store", Method, 19}, + {"(*Uint32).Swap", Method, 19}, + {"(*Uint64).Add", Method, 19}, + {"(*Uint64).CompareAndSwap", Method, 19}, + {"(*Uint64).Load", Method, 19}, + {"(*Uint64).Store", Method, 19}, + {"(*Uint64).Swap", Method, 19}, + {"(*Uintptr).Add", Method, 19}, + {"(*Uintptr).CompareAndSwap", Method, 19}, + {"(*Uintptr).Load", Method, 19}, + {"(*Uintptr).Store", Method, 19}, + {"(*Uintptr).Swap", Method, 19}, + {"(*Value).CompareAndSwap", Method, 17}, + {"(*Value).Load", Method, 4}, + {"(*Value).Store", Method, 4}, + {"(*Value).Swap", Method, 17}, + {"AddInt32", Func, 0}, + {"AddInt64", Func, 0}, + {"AddUint32", Func, 0}, + {"AddUint64", Func, 0}, + {"AddUintptr", Func, 0}, + {"Bool", Type, 19}, + {"CompareAndSwapInt32", Func, 0}, + {"CompareAndSwapInt64", Func, 0}, + {"CompareAndSwapPointer", Func, 0}, + {"CompareAndSwapUint32", Func, 0}, + {"CompareAndSwapUint64", Func, 0}, + {"CompareAndSwapUintptr", Func, 0}, + {"Int32", Type, 19}, + {"Int64", Type, 19}, + {"LoadInt32", Func, 0}, + {"LoadInt64", Func, 0}, + {"LoadPointer", Func, 0}, + {"LoadUint32", Func, 0}, + {"LoadUint64", Func, 0}, + {"LoadUintptr", Func, 0}, + {"Pointer", Type, 19}, + {"StoreInt32", Func, 0}, + {"StoreInt64", Func, 0}, + {"StorePointer", Func, 0}, + {"StoreUint32", Func, 0}, + {"StoreUint64", Func, 0}, + {"StoreUintptr", Func, 0}, + {"SwapInt32", Func, 2}, + {"SwapInt64", Func, 2}, + {"SwapPointer", Func, 2}, + {"SwapUint32", Func, 2}, + {"SwapUint64", Func, 2}, + {"SwapUintptr", Func, 2}, + {"Uint32", Type, 19}, + {"Uint64", Type, 19}, + {"Uintptr", Type, 19}, + {"Value", Type, 4}, + }, + "syscall": { + {"(*Cmsghdr).SetLen", Method, 0}, + {"(*DLL).FindProc", Method, 0}, + {"(*DLL).MustFindProc", Method, 0}, + {"(*DLL).Release", Method, 0}, + {"(*DLLError).Error", Method, 0}, + {"(*DLLError).Unwrap", Method, 16}, + {"(*Filetime).Nanoseconds", Method, 0}, + {"(*Iovec).SetLen", Method, 0}, + {"(*LazyDLL).Handle", Method, 0}, + {"(*LazyDLL).Load", Method, 0}, + {"(*LazyDLL).NewProc", Method, 0}, + {"(*LazyProc).Addr", Method, 0}, + {"(*LazyProc).Call", Method, 0}, + {"(*LazyProc).Find", Method, 0}, + {"(*Msghdr).SetControllen", Method, 0}, + {"(*Proc).Addr", Method, 0}, + {"(*Proc).Call", Method, 0}, + {"(*PtraceRegs).PC", Method, 0}, + {"(*PtraceRegs).SetPC", Method, 0}, + {"(*RawSockaddrAny).Sockaddr", Method, 0}, + {"(*SID).Copy", Method, 0}, + {"(*SID).Len", Method, 0}, + {"(*SID).LookupAccount", Method, 0}, + {"(*SID).String", Method, 0}, + {"(*Timespec).Nano", Method, 0}, + {"(*Timespec).Unix", Method, 0}, + {"(*Timeval).Nano", Method, 0}, + {"(*Timeval).Nanoseconds", Method, 0}, + {"(*Timeval).Unix", Method, 0}, + {"(Errno).Error", Method, 0}, + {"(Errno).Is", Method, 13}, + {"(Errno).Temporary", Method, 0}, + {"(Errno).Timeout", Method, 0}, + {"(Signal).Signal", Method, 0}, + {"(Signal).String", Method, 0}, + {"(Token).Close", Method, 0}, + {"(Token).GetTokenPrimaryGroup", Method, 0}, + {"(Token).GetTokenUser", Method, 0}, + {"(Token).GetUserProfileDirectory", Method, 0}, + {"(WaitStatus).Continued", Method, 0}, + {"(WaitStatus).CoreDump", Method, 0}, + {"(WaitStatus).ExitStatus", Method, 0}, + {"(WaitStatus).Exited", Method, 0}, + {"(WaitStatus).Signal", Method, 0}, + {"(WaitStatus).Signaled", Method, 0}, + {"(WaitStatus).StopSignal", Method, 0}, + {"(WaitStatus).Stopped", Method, 0}, + {"(WaitStatus).TrapCause", Method, 0}, + {"AF_ALG", Const, 0}, + {"AF_APPLETALK", Const, 0}, + {"AF_ARP", Const, 0}, + {"AF_ASH", Const, 0}, + {"AF_ATM", Const, 0}, + {"AF_ATMPVC", Const, 0}, + {"AF_ATMSVC", Const, 0}, + {"AF_AX25", Const, 0}, + {"AF_BLUETOOTH", Const, 0}, + {"AF_BRIDGE", Const, 0}, + {"AF_CAIF", Const, 0}, + {"AF_CAN", Const, 0}, + {"AF_CCITT", Const, 0}, + {"AF_CHAOS", Const, 0}, + {"AF_CNT", Const, 0}, + {"AF_COIP", Const, 0}, + {"AF_DATAKIT", Const, 0}, + {"AF_DECnet", Const, 0}, + {"AF_DLI", Const, 0}, + {"AF_E164", Const, 0}, + {"AF_ECMA", Const, 0}, + {"AF_ECONET", Const, 0}, + {"AF_ENCAP", Const, 1}, + {"AF_FILE", Const, 0}, + {"AF_HYLINK", Const, 0}, + {"AF_IEEE80211", Const, 0}, + {"AF_IEEE802154", Const, 0}, + {"AF_IMPLINK", Const, 0}, + {"AF_INET", Const, 0}, + {"AF_INET6", Const, 0}, + {"AF_INET6_SDP", Const, 3}, + {"AF_INET_SDP", Const, 3}, + {"AF_IPX", Const, 0}, + {"AF_IRDA", Const, 0}, + {"AF_ISDN", Const, 0}, + {"AF_ISO", Const, 0}, + {"AF_IUCV", Const, 0}, + {"AF_KEY", Const, 0}, + {"AF_LAT", Const, 0}, + {"AF_LINK", Const, 0}, + {"AF_LLC", Const, 0}, + {"AF_LOCAL", Const, 0}, + {"AF_MAX", Const, 0}, + {"AF_MPLS", Const, 1}, + {"AF_NATM", Const, 0}, + {"AF_NDRV", Const, 0}, + {"AF_NETBEUI", Const, 0}, + {"AF_NETBIOS", Const, 0}, + {"AF_NETGRAPH", Const, 0}, + {"AF_NETLINK", Const, 0}, + {"AF_NETROM", Const, 0}, + {"AF_NS", Const, 0}, + {"AF_OROUTE", Const, 1}, + {"AF_OSI", Const, 0}, + {"AF_PACKET", Const, 0}, + {"AF_PHONET", Const, 0}, + {"AF_PPP", Const, 0}, + {"AF_PPPOX", Const, 0}, + {"AF_PUP", Const, 0}, + {"AF_RDS", Const, 0}, + {"AF_RESERVED_36", Const, 0}, + {"AF_ROSE", Const, 0}, + {"AF_ROUTE", Const, 0}, + {"AF_RXRPC", Const, 0}, + {"AF_SCLUSTER", Const, 0}, + {"AF_SECURITY", Const, 0}, + {"AF_SIP", Const, 0}, + {"AF_SLOW", Const, 0}, + {"AF_SNA", Const, 0}, + {"AF_SYSTEM", Const, 0}, + {"AF_TIPC", Const, 0}, + {"AF_UNIX", Const, 0}, + {"AF_UNSPEC", Const, 0}, + {"AF_UTUN", Const, 16}, + {"AF_VENDOR00", Const, 0}, + {"AF_VENDOR01", Const, 0}, + {"AF_VENDOR02", Const, 0}, + {"AF_VENDOR03", Const, 0}, + {"AF_VENDOR04", Const, 0}, + {"AF_VENDOR05", Const, 0}, + {"AF_VENDOR06", Const, 0}, + {"AF_VENDOR07", Const, 0}, + {"AF_VENDOR08", Const, 0}, + {"AF_VENDOR09", Const, 0}, + {"AF_VENDOR10", Const, 0}, + {"AF_VENDOR11", Const, 0}, + {"AF_VENDOR12", Const, 0}, + {"AF_VENDOR13", Const, 0}, + {"AF_VENDOR14", Const, 0}, + {"AF_VENDOR15", Const, 0}, + {"AF_VENDOR16", Const, 0}, + {"AF_VENDOR17", Const, 0}, + {"AF_VENDOR18", Const, 0}, + {"AF_VENDOR19", Const, 0}, + {"AF_VENDOR20", Const, 0}, + {"AF_VENDOR21", Const, 0}, + {"AF_VENDOR22", Const, 0}, + {"AF_VENDOR23", Const, 0}, + {"AF_VENDOR24", Const, 0}, + {"AF_VENDOR25", Const, 0}, + {"AF_VENDOR26", Const, 0}, + {"AF_VENDOR27", Const, 0}, + {"AF_VENDOR28", Const, 0}, + {"AF_VENDOR29", Const, 0}, + {"AF_VENDOR30", Const, 0}, + {"AF_VENDOR31", Const, 0}, + {"AF_VENDOR32", Const, 0}, + {"AF_VENDOR33", Const, 0}, + {"AF_VENDOR34", Const, 0}, + {"AF_VENDOR35", Const, 0}, + {"AF_VENDOR36", Const, 0}, + {"AF_VENDOR37", Const, 0}, + {"AF_VENDOR38", Const, 0}, + {"AF_VENDOR39", Const, 0}, + {"AF_VENDOR40", Const, 0}, + {"AF_VENDOR41", Const, 0}, + {"AF_VENDOR42", Const, 0}, + {"AF_VENDOR43", Const, 0}, + {"AF_VENDOR44", Const, 0}, + {"AF_VENDOR45", Const, 0}, + {"AF_VENDOR46", Const, 0}, + {"AF_VENDOR47", Const, 0}, + {"AF_WANPIPE", Const, 0}, + {"AF_X25", Const, 0}, + {"AI_CANONNAME", Const, 1}, + {"AI_NUMERICHOST", Const, 1}, + {"AI_PASSIVE", Const, 1}, + {"APPLICATION_ERROR", Const, 0}, + {"ARPHRD_ADAPT", Const, 0}, + {"ARPHRD_APPLETLK", Const, 0}, + {"ARPHRD_ARCNET", Const, 0}, + {"ARPHRD_ASH", Const, 0}, + {"ARPHRD_ATM", Const, 0}, + {"ARPHRD_AX25", Const, 0}, + {"ARPHRD_BIF", Const, 0}, + {"ARPHRD_CHAOS", Const, 0}, + {"ARPHRD_CISCO", Const, 0}, + {"ARPHRD_CSLIP", Const, 0}, + {"ARPHRD_CSLIP6", Const, 0}, + {"ARPHRD_DDCMP", Const, 0}, + {"ARPHRD_DLCI", Const, 0}, + {"ARPHRD_ECONET", Const, 0}, + {"ARPHRD_EETHER", Const, 0}, + {"ARPHRD_ETHER", Const, 0}, + {"ARPHRD_EUI64", Const, 0}, + {"ARPHRD_FCAL", Const, 0}, + {"ARPHRD_FCFABRIC", Const, 0}, + {"ARPHRD_FCPL", Const, 0}, + {"ARPHRD_FCPP", Const, 0}, + {"ARPHRD_FDDI", Const, 0}, + {"ARPHRD_FRAD", Const, 0}, + {"ARPHRD_FRELAY", Const, 1}, + {"ARPHRD_HDLC", Const, 0}, + {"ARPHRD_HIPPI", Const, 0}, + {"ARPHRD_HWX25", Const, 0}, + {"ARPHRD_IEEE1394", Const, 0}, + {"ARPHRD_IEEE802", Const, 0}, + {"ARPHRD_IEEE80211", Const, 0}, + {"ARPHRD_IEEE80211_PRISM", Const, 0}, + {"ARPHRD_IEEE80211_RADIOTAP", Const, 0}, + {"ARPHRD_IEEE802154", Const, 0}, + {"ARPHRD_IEEE802154_PHY", Const, 0}, + {"ARPHRD_IEEE802_TR", Const, 0}, + {"ARPHRD_INFINIBAND", Const, 0}, + {"ARPHRD_IPDDP", Const, 0}, + {"ARPHRD_IPGRE", Const, 0}, + {"ARPHRD_IRDA", Const, 0}, + {"ARPHRD_LAPB", Const, 0}, + {"ARPHRD_LOCALTLK", Const, 0}, + {"ARPHRD_LOOPBACK", Const, 0}, + {"ARPHRD_METRICOM", Const, 0}, + {"ARPHRD_NETROM", Const, 0}, + {"ARPHRD_NONE", Const, 0}, + {"ARPHRD_PIMREG", Const, 0}, + {"ARPHRD_PPP", Const, 0}, + {"ARPHRD_PRONET", Const, 0}, + {"ARPHRD_RAWHDLC", Const, 0}, + {"ARPHRD_ROSE", Const, 0}, + {"ARPHRD_RSRVD", Const, 0}, + {"ARPHRD_SIT", Const, 0}, + {"ARPHRD_SKIP", Const, 0}, + {"ARPHRD_SLIP", Const, 0}, + {"ARPHRD_SLIP6", Const, 0}, + {"ARPHRD_STRIP", Const, 1}, + {"ARPHRD_TUNNEL", Const, 0}, + {"ARPHRD_TUNNEL6", Const, 0}, + {"ARPHRD_VOID", Const, 0}, + {"ARPHRD_X25", Const, 0}, + {"AUTHTYPE_CLIENT", Const, 0}, + {"AUTHTYPE_SERVER", Const, 0}, + {"Accept", Func, 0}, + {"Accept4", Func, 1}, + {"AcceptEx", Func, 0}, + {"Access", Func, 0}, + {"Acct", Func, 0}, + {"AddrinfoW", Type, 1}, + {"AddrinfoW.Addr", Field, 1}, + {"AddrinfoW.Addrlen", Field, 1}, + {"AddrinfoW.Canonname", Field, 1}, + {"AddrinfoW.Family", Field, 1}, + {"AddrinfoW.Flags", Field, 1}, + {"AddrinfoW.Next", Field, 1}, + {"AddrinfoW.Protocol", Field, 1}, + {"AddrinfoW.Socktype", Field, 1}, + {"Adjtime", Func, 0}, + {"Adjtimex", Func, 0}, + {"AllThreadsSyscall", Func, 16}, + {"AllThreadsSyscall6", Func, 16}, + {"AttachLsf", Func, 0}, + {"B0", Const, 0}, + {"B1000000", Const, 0}, + {"B110", Const, 0}, + {"B115200", Const, 0}, + {"B1152000", Const, 0}, + {"B1200", Const, 0}, + {"B134", Const, 0}, + {"B14400", Const, 1}, + {"B150", Const, 0}, + {"B1500000", Const, 0}, + {"B1800", Const, 0}, + {"B19200", Const, 0}, + {"B200", Const, 0}, + {"B2000000", Const, 0}, + {"B230400", Const, 0}, + {"B2400", Const, 0}, + {"B2500000", Const, 0}, + {"B28800", Const, 1}, + {"B300", Const, 0}, + {"B3000000", Const, 0}, + {"B3500000", Const, 0}, + {"B38400", Const, 0}, + {"B4000000", Const, 0}, + {"B460800", Const, 0}, + {"B4800", Const, 0}, + {"B50", Const, 0}, + {"B500000", Const, 0}, + {"B57600", Const, 0}, + {"B576000", Const, 0}, + {"B600", Const, 0}, + {"B7200", Const, 1}, + {"B75", Const, 0}, + {"B76800", Const, 1}, + {"B921600", Const, 0}, + {"B9600", Const, 0}, + {"BASE_PROTOCOL", Const, 2}, + {"BIOCFEEDBACK", Const, 0}, + {"BIOCFLUSH", Const, 0}, + {"BIOCGBLEN", Const, 0}, + {"BIOCGDIRECTION", Const, 0}, + {"BIOCGDIRFILT", Const, 1}, + {"BIOCGDLT", Const, 0}, + {"BIOCGDLTLIST", Const, 0}, + {"BIOCGETBUFMODE", Const, 0}, + {"BIOCGETIF", Const, 0}, + {"BIOCGETZMAX", Const, 0}, + {"BIOCGFEEDBACK", Const, 1}, + {"BIOCGFILDROP", Const, 1}, + {"BIOCGHDRCMPLT", Const, 0}, + {"BIOCGRSIG", Const, 0}, + {"BIOCGRTIMEOUT", Const, 0}, + {"BIOCGSEESENT", Const, 0}, + {"BIOCGSTATS", Const, 0}, + {"BIOCGSTATSOLD", Const, 1}, + {"BIOCGTSTAMP", Const, 1}, + {"BIOCIMMEDIATE", Const, 0}, + {"BIOCLOCK", Const, 0}, + {"BIOCPROMISC", Const, 0}, + {"BIOCROTZBUF", Const, 0}, + {"BIOCSBLEN", Const, 0}, + {"BIOCSDIRECTION", Const, 0}, + {"BIOCSDIRFILT", Const, 1}, + {"BIOCSDLT", Const, 0}, + {"BIOCSETBUFMODE", Const, 0}, + {"BIOCSETF", Const, 0}, + {"BIOCSETFNR", Const, 0}, + {"BIOCSETIF", Const, 0}, + {"BIOCSETWF", Const, 0}, + {"BIOCSETZBUF", Const, 0}, + {"BIOCSFEEDBACK", Const, 1}, + {"BIOCSFILDROP", Const, 1}, + {"BIOCSHDRCMPLT", Const, 0}, + {"BIOCSRSIG", Const, 0}, + {"BIOCSRTIMEOUT", Const, 0}, + {"BIOCSSEESENT", Const, 0}, + {"BIOCSTCPF", Const, 1}, + {"BIOCSTSTAMP", Const, 1}, + {"BIOCSUDPF", Const, 1}, + {"BIOCVERSION", Const, 0}, + {"BPF_A", Const, 0}, + {"BPF_ABS", Const, 0}, + {"BPF_ADD", Const, 0}, + {"BPF_ALIGNMENT", Const, 0}, + {"BPF_ALIGNMENT32", Const, 1}, + {"BPF_ALU", Const, 0}, + {"BPF_AND", Const, 0}, + {"BPF_B", Const, 0}, + {"BPF_BUFMODE_BUFFER", Const, 0}, + {"BPF_BUFMODE_ZBUF", Const, 0}, + {"BPF_DFLTBUFSIZE", Const, 1}, + {"BPF_DIRECTION_IN", Const, 1}, + {"BPF_DIRECTION_OUT", Const, 1}, + {"BPF_DIV", Const, 0}, + {"BPF_H", Const, 0}, + {"BPF_IMM", Const, 0}, + {"BPF_IND", Const, 0}, + {"BPF_JA", Const, 0}, + {"BPF_JEQ", Const, 0}, + {"BPF_JGE", Const, 0}, + {"BPF_JGT", Const, 0}, + {"BPF_JMP", Const, 0}, + {"BPF_JSET", Const, 0}, + {"BPF_K", Const, 0}, + {"BPF_LD", Const, 0}, + {"BPF_LDX", Const, 0}, + {"BPF_LEN", Const, 0}, + {"BPF_LSH", Const, 0}, + {"BPF_MAJOR_VERSION", Const, 0}, + {"BPF_MAXBUFSIZE", Const, 0}, + {"BPF_MAXINSNS", Const, 0}, + {"BPF_MEM", Const, 0}, + {"BPF_MEMWORDS", Const, 0}, + {"BPF_MINBUFSIZE", Const, 0}, + {"BPF_MINOR_VERSION", Const, 0}, + {"BPF_MISC", Const, 0}, + {"BPF_MSH", Const, 0}, + {"BPF_MUL", Const, 0}, + {"BPF_NEG", Const, 0}, + {"BPF_OR", Const, 0}, + {"BPF_RELEASE", Const, 0}, + {"BPF_RET", Const, 0}, + {"BPF_RSH", Const, 0}, + {"BPF_ST", Const, 0}, + {"BPF_STX", Const, 0}, + {"BPF_SUB", Const, 0}, + {"BPF_TAX", Const, 0}, + {"BPF_TXA", Const, 0}, + {"BPF_T_BINTIME", Const, 1}, + {"BPF_T_BINTIME_FAST", Const, 1}, + {"BPF_T_BINTIME_MONOTONIC", Const, 1}, + {"BPF_T_BINTIME_MONOTONIC_FAST", Const, 1}, + {"BPF_T_FAST", Const, 1}, + {"BPF_T_FLAG_MASK", Const, 1}, + {"BPF_T_FORMAT_MASK", Const, 1}, + {"BPF_T_MICROTIME", Const, 1}, + {"BPF_T_MICROTIME_FAST", Const, 1}, + {"BPF_T_MICROTIME_MONOTONIC", Const, 1}, + {"BPF_T_MICROTIME_MONOTONIC_FAST", Const, 1}, + {"BPF_T_MONOTONIC", Const, 1}, + {"BPF_T_MONOTONIC_FAST", Const, 1}, + {"BPF_T_NANOTIME", Const, 1}, + {"BPF_T_NANOTIME_FAST", Const, 1}, + {"BPF_T_NANOTIME_MONOTONIC", Const, 1}, + {"BPF_T_NANOTIME_MONOTONIC_FAST", Const, 1}, + {"BPF_T_NONE", Const, 1}, + {"BPF_T_NORMAL", Const, 1}, + {"BPF_W", Const, 0}, + {"BPF_X", Const, 0}, + {"BRKINT", Const, 0}, + {"Bind", Func, 0}, + {"BindToDevice", Func, 0}, + {"BpfBuflen", Func, 0}, + {"BpfDatalink", Func, 0}, + {"BpfHdr", Type, 0}, + {"BpfHdr.Caplen", Field, 0}, + {"BpfHdr.Datalen", Field, 0}, + {"BpfHdr.Hdrlen", Field, 0}, + {"BpfHdr.Pad_cgo_0", Field, 0}, + {"BpfHdr.Tstamp", Field, 0}, + {"BpfHeadercmpl", Func, 0}, + {"BpfInsn", Type, 0}, + {"BpfInsn.Code", Field, 0}, + {"BpfInsn.Jf", Field, 0}, + {"BpfInsn.Jt", Field, 0}, + {"BpfInsn.K", Field, 0}, + {"BpfInterface", Func, 0}, + {"BpfJump", Func, 0}, + {"BpfProgram", Type, 0}, + {"BpfProgram.Insns", Field, 0}, + {"BpfProgram.Len", Field, 0}, + {"BpfProgram.Pad_cgo_0", Field, 0}, + {"BpfStat", Type, 0}, + {"BpfStat.Capt", Field, 2}, + {"BpfStat.Drop", Field, 0}, + {"BpfStat.Padding", Field, 2}, + {"BpfStat.Recv", Field, 0}, + {"BpfStats", Func, 0}, + {"BpfStmt", Func, 0}, + {"BpfTimeout", Func, 0}, + {"BpfTimeval", Type, 2}, + {"BpfTimeval.Sec", Field, 2}, + {"BpfTimeval.Usec", Field, 2}, + {"BpfVersion", Type, 0}, + {"BpfVersion.Major", Field, 0}, + {"BpfVersion.Minor", Field, 0}, + {"BpfZbuf", Type, 0}, + {"BpfZbuf.Bufa", Field, 0}, + {"BpfZbuf.Bufb", Field, 0}, + {"BpfZbuf.Buflen", Field, 0}, + {"BpfZbufHeader", Type, 0}, + {"BpfZbufHeader.Kernel_gen", Field, 0}, + {"BpfZbufHeader.Kernel_len", Field, 0}, + {"BpfZbufHeader.User_gen", Field, 0}, + {"BpfZbufHeader.X_bzh_pad", Field, 0}, + {"ByHandleFileInformation", Type, 0}, + {"ByHandleFileInformation.CreationTime", Field, 0}, + {"ByHandleFileInformation.FileAttributes", Field, 0}, + {"ByHandleFileInformation.FileIndexHigh", Field, 0}, + {"ByHandleFileInformation.FileIndexLow", Field, 0}, + {"ByHandleFileInformation.FileSizeHigh", Field, 0}, + {"ByHandleFileInformation.FileSizeLow", Field, 0}, + {"ByHandleFileInformation.LastAccessTime", Field, 0}, + {"ByHandleFileInformation.LastWriteTime", Field, 0}, + {"ByHandleFileInformation.NumberOfLinks", Field, 0}, + {"ByHandleFileInformation.VolumeSerialNumber", Field, 0}, + {"BytePtrFromString", Func, 1}, + {"ByteSliceFromString", Func, 1}, + {"CCR0_FLUSH", Const, 1}, + {"CERT_CHAIN_POLICY_AUTHENTICODE", Const, 0}, + {"CERT_CHAIN_POLICY_AUTHENTICODE_TS", Const, 0}, + {"CERT_CHAIN_POLICY_BASE", Const, 0}, + {"CERT_CHAIN_POLICY_BASIC_CONSTRAINTS", Const, 0}, + {"CERT_CHAIN_POLICY_EV", Const, 0}, + {"CERT_CHAIN_POLICY_MICROSOFT_ROOT", Const, 0}, + {"CERT_CHAIN_POLICY_NT_AUTH", Const, 0}, + {"CERT_CHAIN_POLICY_SSL", Const, 0}, + {"CERT_E_CN_NO_MATCH", Const, 0}, + {"CERT_E_EXPIRED", Const, 0}, + {"CERT_E_PURPOSE", Const, 0}, + {"CERT_E_ROLE", Const, 0}, + {"CERT_E_UNTRUSTEDROOT", Const, 0}, + {"CERT_STORE_ADD_ALWAYS", Const, 0}, + {"CERT_STORE_DEFER_CLOSE_UNTIL_LAST_FREE_FLAG", Const, 0}, + {"CERT_STORE_PROV_MEMORY", Const, 0}, + {"CERT_TRUST_HAS_EXCLUDED_NAME_CONSTRAINT", Const, 0}, + {"CERT_TRUST_HAS_NOT_DEFINED_NAME_CONSTRAINT", Const, 0}, + {"CERT_TRUST_HAS_NOT_PERMITTED_NAME_CONSTRAINT", Const, 0}, + {"CERT_TRUST_HAS_NOT_SUPPORTED_CRITICAL_EXT", Const, 0}, + {"CERT_TRUST_HAS_NOT_SUPPORTED_NAME_CONSTRAINT", Const, 0}, + {"CERT_TRUST_INVALID_BASIC_CONSTRAINTS", Const, 0}, + {"CERT_TRUST_INVALID_EXTENSION", Const, 0}, + {"CERT_TRUST_INVALID_NAME_CONSTRAINTS", Const, 0}, + {"CERT_TRUST_INVALID_POLICY_CONSTRAINTS", Const, 0}, + {"CERT_TRUST_IS_CYCLIC", Const, 0}, + {"CERT_TRUST_IS_EXPLICIT_DISTRUST", Const, 0}, + {"CERT_TRUST_IS_NOT_SIGNATURE_VALID", Const, 0}, + {"CERT_TRUST_IS_NOT_TIME_VALID", Const, 0}, + {"CERT_TRUST_IS_NOT_VALID_FOR_USAGE", Const, 0}, + {"CERT_TRUST_IS_OFFLINE_REVOCATION", Const, 0}, + {"CERT_TRUST_IS_REVOKED", Const, 0}, + {"CERT_TRUST_IS_UNTRUSTED_ROOT", Const, 0}, + {"CERT_TRUST_NO_ERROR", Const, 0}, + {"CERT_TRUST_NO_ISSUANCE_CHAIN_POLICY", Const, 0}, + {"CERT_TRUST_REVOCATION_STATUS_UNKNOWN", Const, 0}, + {"CFLUSH", Const, 1}, + {"CLOCAL", Const, 0}, + {"CLONE_CHILD_CLEARTID", Const, 2}, + {"CLONE_CHILD_SETTID", Const, 2}, + {"CLONE_CLEAR_SIGHAND", Const, 20}, + {"CLONE_CSIGNAL", Const, 3}, + {"CLONE_DETACHED", Const, 2}, + {"CLONE_FILES", Const, 2}, + {"CLONE_FS", Const, 2}, + {"CLONE_INTO_CGROUP", Const, 20}, + {"CLONE_IO", Const, 2}, + {"CLONE_NEWCGROUP", Const, 20}, + {"CLONE_NEWIPC", Const, 2}, + {"CLONE_NEWNET", Const, 2}, + {"CLONE_NEWNS", Const, 2}, + {"CLONE_NEWPID", Const, 2}, + {"CLONE_NEWTIME", Const, 20}, + {"CLONE_NEWUSER", Const, 2}, + {"CLONE_NEWUTS", Const, 2}, + {"CLONE_PARENT", Const, 2}, + {"CLONE_PARENT_SETTID", Const, 2}, + {"CLONE_PID", Const, 3}, + {"CLONE_PIDFD", Const, 20}, + {"CLONE_PTRACE", Const, 2}, + {"CLONE_SETTLS", Const, 2}, + {"CLONE_SIGHAND", Const, 2}, + {"CLONE_SYSVSEM", Const, 2}, + {"CLONE_THREAD", Const, 2}, + {"CLONE_UNTRACED", Const, 2}, + {"CLONE_VFORK", Const, 2}, + {"CLONE_VM", Const, 2}, + {"CPUID_CFLUSH", Const, 1}, + {"CREAD", Const, 0}, + {"CREATE_ALWAYS", Const, 0}, + {"CREATE_NEW", Const, 0}, + {"CREATE_NEW_PROCESS_GROUP", Const, 1}, + {"CREATE_UNICODE_ENVIRONMENT", Const, 0}, + {"CRYPT_DEFAULT_CONTAINER_OPTIONAL", Const, 0}, + {"CRYPT_DELETEKEYSET", Const, 0}, + {"CRYPT_MACHINE_KEYSET", Const, 0}, + {"CRYPT_NEWKEYSET", Const, 0}, + {"CRYPT_SILENT", Const, 0}, + {"CRYPT_VERIFYCONTEXT", Const, 0}, + {"CS5", Const, 0}, + {"CS6", Const, 0}, + {"CS7", Const, 0}, + {"CS8", Const, 0}, + {"CSIZE", Const, 0}, + {"CSTART", Const, 1}, + {"CSTATUS", Const, 1}, + {"CSTOP", Const, 1}, + {"CSTOPB", Const, 0}, + {"CSUSP", Const, 1}, + {"CTL_MAXNAME", Const, 0}, + {"CTL_NET", Const, 0}, + {"CTL_QUERY", Const, 1}, + {"CTRL_BREAK_EVENT", Const, 1}, + {"CTRL_CLOSE_EVENT", Const, 14}, + {"CTRL_C_EVENT", Const, 1}, + {"CTRL_LOGOFF_EVENT", Const, 14}, + {"CTRL_SHUTDOWN_EVENT", Const, 14}, + {"CancelIo", Func, 0}, + {"CancelIoEx", Func, 1}, + {"CertAddCertificateContextToStore", Func, 0}, + {"CertChainContext", Type, 0}, + {"CertChainContext.ChainCount", Field, 0}, + {"CertChainContext.Chains", Field, 0}, + {"CertChainContext.HasRevocationFreshnessTime", Field, 0}, + {"CertChainContext.LowerQualityChainCount", Field, 0}, + {"CertChainContext.LowerQualityChains", Field, 0}, + {"CertChainContext.RevocationFreshnessTime", Field, 0}, + {"CertChainContext.Size", Field, 0}, + {"CertChainContext.TrustStatus", Field, 0}, + {"CertChainElement", Type, 0}, + {"CertChainElement.ApplicationUsage", Field, 0}, + {"CertChainElement.CertContext", Field, 0}, + {"CertChainElement.ExtendedErrorInfo", Field, 0}, + {"CertChainElement.IssuanceUsage", Field, 0}, + {"CertChainElement.RevocationInfo", Field, 0}, + {"CertChainElement.Size", Field, 0}, + {"CertChainElement.TrustStatus", Field, 0}, + {"CertChainPara", Type, 0}, + {"CertChainPara.CacheResync", Field, 0}, + {"CertChainPara.CheckRevocationFreshnessTime", Field, 0}, + {"CertChainPara.RequestedUsage", Field, 0}, + {"CertChainPara.RequstedIssuancePolicy", Field, 0}, + {"CertChainPara.RevocationFreshnessTime", Field, 0}, + {"CertChainPara.Size", Field, 0}, + {"CertChainPara.URLRetrievalTimeout", Field, 0}, + {"CertChainPolicyPara", Type, 0}, + {"CertChainPolicyPara.ExtraPolicyPara", Field, 0}, + {"CertChainPolicyPara.Flags", Field, 0}, + {"CertChainPolicyPara.Size", Field, 0}, + {"CertChainPolicyStatus", Type, 0}, + {"CertChainPolicyStatus.ChainIndex", Field, 0}, + {"CertChainPolicyStatus.ElementIndex", Field, 0}, + {"CertChainPolicyStatus.Error", Field, 0}, + {"CertChainPolicyStatus.ExtraPolicyStatus", Field, 0}, + {"CertChainPolicyStatus.Size", Field, 0}, + {"CertCloseStore", Func, 0}, + {"CertContext", Type, 0}, + {"CertContext.CertInfo", Field, 0}, + {"CertContext.EncodedCert", Field, 0}, + {"CertContext.EncodingType", Field, 0}, + {"CertContext.Length", Field, 0}, + {"CertContext.Store", Field, 0}, + {"CertCreateCertificateContext", Func, 0}, + {"CertEnhKeyUsage", Type, 0}, + {"CertEnhKeyUsage.Length", Field, 0}, + {"CertEnhKeyUsage.UsageIdentifiers", Field, 0}, + {"CertEnumCertificatesInStore", Func, 0}, + {"CertFreeCertificateChain", Func, 0}, + {"CertFreeCertificateContext", Func, 0}, + {"CertGetCertificateChain", Func, 0}, + {"CertInfo", Type, 11}, + {"CertOpenStore", Func, 0}, + {"CertOpenSystemStore", Func, 0}, + {"CertRevocationCrlInfo", Type, 11}, + {"CertRevocationInfo", Type, 0}, + {"CertRevocationInfo.CrlInfo", Field, 0}, + {"CertRevocationInfo.FreshnessTime", Field, 0}, + {"CertRevocationInfo.HasFreshnessTime", Field, 0}, + {"CertRevocationInfo.OidSpecificInfo", Field, 0}, + {"CertRevocationInfo.RevocationOid", Field, 0}, + {"CertRevocationInfo.RevocationResult", Field, 0}, + {"CertRevocationInfo.Size", Field, 0}, + {"CertSimpleChain", Type, 0}, + {"CertSimpleChain.Elements", Field, 0}, + {"CertSimpleChain.HasRevocationFreshnessTime", Field, 0}, + {"CertSimpleChain.NumElements", Field, 0}, + {"CertSimpleChain.RevocationFreshnessTime", Field, 0}, + {"CertSimpleChain.Size", Field, 0}, + {"CertSimpleChain.TrustListInfo", Field, 0}, + {"CertSimpleChain.TrustStatus", Field, 0}, + {"CertTrustListInfo", Type, 11}, + {"CertTrustStatus", Type, 0}, + {"CertTrustStatus.ErrorStatus", Field, 0}, + {"CertTrustStatus.InfoStatus", Field, 0}, + {"CertUsageMatch", Type, 0}, + {"CertUsageMatch.Type", Field, 0}, + {"CertUsageMatch.Usage", Field, 0}, + {"CertVerifyCertificateChainPolicy", Func, 0}, + {"Chdir", Func, 0}, + {"CheckBpfVersion", Func, 0}, + {"Chflags", Func, 0}, + {"Chmod", Func, 0}, + {"Chown", Func, 0}, + {"Chroot", Func, 0}, + {"Clearenv", Func, 0}, + {"Close", Func, 0}, + {"CloseHandle", Func, 0}, + {"CloseOnExec", Func, 0}, + {"Closesocket", Func, 0}, + {"CmsgLen", Func, 0}, + {"CmsgSpace", Func, 0}, + {"Cmsghdr", Type, 0}, + {"Cmsghdr.Len", Field, 0}, + {"Cmsghdr.Level", Field, 0}, + {"Cmsghdr.Type", Field, 0}, + {"Cmsghdr.X__cmsg_data", Field, 0}, + {"CommandLineToArgv", Func, 0}, + {"ComputerName", Func, 0}, + {"Conn", Type, 9}, + {"Connect", Func, 0}, + {"ConnectEx", Func, 1}, + {"ConvertSidToStringSid", Func, 0}, + {"ConvertStringSidToSid", Func, 0}, + {"CopySid", Func, 0}, + {"Creat", Func, 0}, + {"CreateDirectory", Func, 0}, + {"CreateFile", Func, 0}, + {"CreateFileMapping", Func, 0}, + {"CreateHardLink", Func, 4}, + {"CreateIoCompletionPort", Func, 0}, + {"CreatePipe", Func, 0}, + {"CreateProcess", Func, 0}, + {"CreateProcessAsUser", Func, 10}, + {"CreateSymbolicLink", Func, 4}, + {"CreateToolhelp32Snapshot", Func, 4}, + {"Credential", Type, 0}, + {"Credential.Gid", Field, 0}, + {"Credential.Groups", Field, 0}, + {"Credential.NoSetGroups", Field, 9}, + {"Credential.Uid", Field, 0}, + {"CryptAcquireContext", Func, 0}, + {"CryptGenRandom", Func, 0}, + {"CryptReleaseContext", Func, 0}, + {"DIOCBSFLUSH", Const, 1}, + {"DIOCOSFPFLUSH", Const, 1}, + {"DLL", Type, 0}, + {"DLL.Handle", Field, 0}, + {"DLL.Name", Field, 0}, + {"DLLError", Type, 0}, + {"DLLError.Err", Field, 0}, + {"DLLError.Msg", Field, 0}, + {"DLLError.ObjName", Field, 0}, + {"DLT_A429", Const, 0}, + {"DLT_A653_ICM", Const, 0}, + {"DLT_AIRONET_HEADER", Const, 0}, + {"DLT_AOS", Const, 1}, + {"DLT_APPLE_IP_OVER_IEEE1394", Const, 0}, + {"DLT_ARCNET", Const, 0}, + {"DLT_ARCNET_LINUX", Const, 0}, + {"DLT_ATM_CLIP", Const, 0}, + {"DLT_ATM_RFC1483", Const, 0}, + {"DLT_AURORA", Const, 0}, + {"DLT_AX25", Const, 0}, + {"DLT_AX25_KISS", Const, 0}, + {"DLT_BACNET_MS_TP", Const, 0}, + {"DLT_BLUETOOTH_HCI_H4", Const, 0}, + {"DLT_BLUETOOTH_HCI_H4_WITH_PHDR", Const, 0}, + {"DLT_CAN20B", Const, 0}, + {"DLT_CAN_SOCKETCAN", Const, 1}, + {"DLT_CHAOS", Const, 0}, + {"DLT_CHDLC", Const, 0}, + {"DLT_CISCO_IOS", Const, 0}, + {"DLT_C_HDLC", Const, 0}, + {"DLT_C_HDLC_WITH_DIR", Const, 0}, + {"DLT_DBUS", Const, 1}, + {"DLT_DECT", Const, 1}, + {"DLT_DOCSIS", Const, 0}, + {"DLT_DVB_CI", Const, 1}, + {"DLT_ECONET", Const, 0}, + {"DLT_EN10MB", Const, 0}, + {"DLT_EN3MB", Const, 0}, + {"DLT_ENC", Const, 0}, + {"DLT_ERF", Const, 0}, + {"DLT_ERF_ETH", Const, 0}, + {"DLT_ERF_POS", Const, 0}, + {"DLT_FC_2", Const, 1}, + {"DLT_FC_2_WITH_FRAME_DELIMS", Const, 1}, + {"DLT_FDDI", Const, 0}, + {"DLT_FLEXRAY", Const, 0}, + {"DLT_FRELAY", Const, 0}, + {"DLT_FRELAY_WITH_DIR", Const, 0}, + {"DLT_GCOM_SERIAL", Const, 0}, + {"DLT_GCOM_T1E1", Const, 0}, + {"DLT_GPF_F", Const, 0}, + {"DLT_GPF_T", Const, 0}, + {"DLT_GPRS_LLC", Const, 0}, + {"DLT_GSMTAP_ABIS", Const, 1}, + {"DLT_GSMTAP_UM", Const, 1}, + {"DLT_HDLC", Const, 1}, + {"DLT_HHDLC", Const, 0}, + {"DLT_HIPPI", Const, 1}, + {"DLT_IBM_SN", Const, 0}, + {"DLT_IBM_SP", Const, 0}, + {"DLT_IEEE802", Const, 0}, + {"DLT_IEEE802_11", Const, 0}, + {"DLT_IEEE802_11_RADIO", Const, 0}, + {"DLT_IEEE802_11_RADIO_AVS", Const, 0}, + {"DLT_IEEE802_15_4", Const, 0}, + {"DLT_IEEE802_15_4_LINUX", Const, 0}, + {"DLT_IEEE802_15_4_NOFCS", Const, 1}, + {"DLT_IEEE802_15_4_NONASK_PHY", Const, 0}, + {"DLT_IEEE802_16_MAC_CPS", Const, 0}, + {"DLT_IEEE802_16_MAC_CPS_RADIO", Const, 0}, + {"DLT_IPFILTER", Const, 0}, + {"DLT_IPMB", Const, 0}, + {"DLT_IPMB_LINUX", Const, 0}, + {"DLT_IPNET", Const, 1}, + {"DLT_IPOIB", Const, 1}, + {"DLT_IPV4", Const, 1}, + {"DLT_IPV6", Const, 1}, + {"DLT_IP_OVER_FC", Const, 0}, + {"DLT_JUNIPER_ATM1", Const, 0}, + {"DLT_JUNIPER_ATM2", Const, 0}, + {"DLT_JUNIPER_ATM_CEMIC", Const, 1}, + {"DLT_JUNIPER_CHDLC", Const, 0}, + {"DLT_JUNIPER_ES", Const, 0}, + {"DLT_JUNIPER_ETHER", Const, 0}, + {"DLT_JUNIPER_FIBRECHANNEL", Const, 1}, + {"DLT_JUNIPER_FRELAY", Const, 0}, + {"DLT_JUNIPER_GGSN", Const, 0}, + {"DLT_JUNIPER_ISM", Const, 0}, + {"DLT_JUNIPER_MFR", Const, 0}, + {"DLT_JUNIPER_MLFR", Const, 0}, + {"DLT_JUNIPER_MLPPP", Const, 0}, + {"DLT_JUNIPER_MONITOR", Const, 0}, + {"DLT_JUNIPER_PIC_PEER", Const, 0}, + {"DLT_JUNIPER_PPP", Const, 0}, + {"DLT_JUNIPER_PPPOE", Const, 0}, + {"DLT_JUNIPER_PPPOE_ATM", Const, 0}, + {"DLT_JUNIPER_SERVICES", Const, 0}, + {"DLT_JUNIPER_SRX_E2E", Const, 1}, + {"DLT_JUNIPER_ST", Const, 0}, + {"DLT_JUNIPER_VP", Const, 0}, + {"DLT_JUNIPER_VS", Const, 1}, + {"DLT_LAPB_WITH_DIR", Const, 0}, + {"DLT_LAPD", Const, 0}, + {"DLT_LIN", Const, 0}, + {"DLT_LINUX_EVDEV", Const, 1}, + {"DLT_LINUX_IRDA", Const, 0}, + {"DLT_LINUX_LAPD", Const, 0}, + {"DLT_LINUX_PPP_WITHDIRECTION", Const, 0}, + {"DLT_LINUX_SLL", Const, 0}, + {"DLT_LOOP", Const, 0}, + {"DLT_LTALK", Const, 0}, + {"DLT_MATCHING_MAX", Const, 1}, + {"DLT_MATCHING_MIN", Const, 1}, + {"DLT_MFR", Const, 0}, + {"DLT_MOST", Const, 0}, + {"DLT_MPEG_2_TS", Const, 1}, + {"DLT_MPLS", Const, 1}, + {"DLT_MTP2", Const, 0}, + {"DLT_MTP2_WITH_PHDR", Const, 0}, + {"DLT_MTP3", Const, 0}, + {"DLT_MUX27010", Const, 1}, + {"DLT_NETANALYZER", Const, 1}, + {"DLT_NETANALYZER_TRANSPARENT", Const, 1}, + {"DLT_NFC_LLCP", Const, 1}, + {"DLT_NFLOG", Const, 1}, + {"DLT_NG40", Const, 1}, + {"DLT_NULL", Const, 0}, + {"DLT_PCI_EXP", Const, 0}, + {"DLT_PFLOG", Const, 0}, + {"DLT_PFSYNC", Const, 0}, + {"DLT_PPI", Const, 0}, + {"DLT_PPP", Const, 0}, + {"DLT_PPP_BSDOS", Const, 0}, + {"DLT_PPP_ETHER", Const, 0}, + {"DLT_PPP_PPPD", Const, 0}, + {"DLT_PPP_SERIAL", Const, 0}, + {"DLT_PPP_WITH_DIR", Const, 0}, + {"DLT_PPP_WITH_DIRECTION", Const, 0}, + {"DLT_PRISM_HEADER", Const, 0}, + {"DLT_PRONET", Const, 0}, + {"DLT_RAIF1", Const, 0}, + {"DLT_RAW", Const, 0}, + {"DLT_RAWAF_MASK", Const, 1}, + {"DLT_RIO", Const, 0}, + {"DLT_SCCP", Const, 0}, + {"DLT_SITA", Const, 0}, + {"DLT_SLIP", Const, 0}, + {"DLT_SLIP_BSDOS", Const, 0}, + {"DLT_STANAG_5066_D_PDU", Const, 1}, + {"DLT_SUNATM", Const, 0}, + {"DLT_SYMANTEC_FIREWALL", Const, 0}, + {"DLT_TZSP", Const, 0}, + {"DLT_USB", Const, 0}, + {"DLT_USB_LINUX", Const, 0}, + {"DLT_USB_LINUX_MMAPPED", Const, 1}, + {"DLT_USER0", Const, 0}, + {"DLT_USER1", Const, 0}, + {"DLT_USER10", Const, 0}, + {"DLT_USER11", Const, 0}, + {"DLT_USER12", Const, 0}, + {"DLT_USER13", Const, 0}, + {"DLT_USER14", Const, 0}, + {"DLT_USER15", Const, 0}, + {"DLT_USER2", Const, 0}, + {"DLT_USER3", Const, 0}, + {"DLT_USER4", Const, 0}, + {"DLT_USER5", Const, 0}, + {"DLT_USER6", Const, 0}, + {"DLT_USER7", Const, 0}, + {"DLT_USER8", Const, 0}, + {"DLT_USER9", Const, 0}, + {"DLT_WIHART", Const, 1}, + {"DLT_X2E_SERIAL", Const, 0}, + {"DLT_X2E_XORAYA", Const, 0}, + {"DNSMXData", Type, 0}, + {"DNSMXData.NameExchange", Field, 0}, + {"DNSMXData.Pad", Field, 0}, + {"DNSMXData.Preference", Field, 0}, + {"DNSPTRData", Type, 0}, + {"DNSPTRData.Host", Field, 0}, + {"DNSRecord", Type, 0}, + {"DNSRecord.Data", Field, 0}, + {"DNSRecord.Dw", Field, 0}, + {"DNSRecord.Length", Field, 0}, + {"DNSRecord.Name", Field, 0}, + {"DNSRecord.Next", Field, 0}, + {"DNSRecord.Reserved", Field, 0}, + {"DNSRecord.Ttl", Field, 0}, + {"DNSRecord.Type", Field, 0}, + {"DNSSRVData", Type, 0}, + {"DNSSRVData.Pad", Field, 0}, + {"DNSSRVData.Port", Field, 0}, + {"DNSSRVData.Priority", Field, 0}, + {"DNSSRVData.Target", Field, 0}, + {"DNSSRVData.Weight", Field, 0}, + {"DNSTXTData", Type, 0}, + {"DNSTXTData.StringArray", Field, 0}, + {"DNSTXTData.StringCount", Field, 0}, + {"DNS_INFO_NO_RECORDS", Const, 4}, + {"DNS_TYPE_A", Const, 0}, + {"DNS_TYPE_A6", Const, 0}, + {"DNS_TYPE_AAAA", Const, 0}, + {"DNS_TYPE_ADDRS", Const, 0}, + {"DNS_TYPE_AFSDB", Const, 0}, + {"DNS_TYPE_ALL", Const, 0}, + {"DNS_TYPE_ANY", Const, 0}, + {"DNS_TYPE_ATMA", Const, 0}, + {"DNS_TYPE_AXFR", Const, 0}, + {"DNS_TYPE_CERT", Const, 0}, + {"DNS_TYPE_CNAME", Const, 0}, + {"DNS_TYPE_DHCID", Const, 0}, + {"DNS_TYPE_DNAME", Const, 0}, + {"DNS_TYPE_DNSKEY", Const, 0}, + {"DNS_TYPE_DS", Const, 0}, + {"DNS_TYPE_EID", Const, 0}, + {"DNS_TYPE_GID", Const, 0}, + {"DNS_TYPE_GPOS", Const, 0}, + {"DNS_TYPE_HINFO", Const, 0}, + {"DNS_TYPE_ISDN", Const, 0}, + {"DNS_TYPE_IXFR", Const, 0}, + {"DNS_TYPE_KEY", Const, 0}, + {"DNS_TYPE_KX", Const, 0}, + {"DNS_TYPE_LOC", Const, 0}, + {"DNS_TYPE_MAILA", Const, 0}, + {"DNS_TYPE_MAILB", Const, 0}, + {"DNS_TYPE_MB", Const, 0}, + {"DNS_TYPE_MD", Const, 0}, + {"DNS_TYPE_MF", Const, 0}, + {"DNS_TYPE_MG", Const, 0}, + {"DNS_TYPE_MINFO", Const, 0}, + {"DNS_TYPE_MR", Const, 0}, + {"DNS_TYPE_MX", Const, 0}, + {"DNS_TYPE_NAPTR", Const, 0}, + {"DNS_TYPE_NBSTAT", Const, 0}, + {"DNS_TYPE_NIMLOC", Const, 0}, + {"DNS_TYPE_NS", Const, 0}, + {"DNS_TYPE_NSAP", Const, 0}, + {"DNS_TYPE_NSAPPTR", Const, 0}, + {"DNS_TYPE_NSEC", Const, 0}, + {"DNS_TYPE_NULL", Const, 0}, + {"DNS_TYPE_NXT", Const, 0}, + {"DNS_TYPE_OPT", Const, 0}, + {"DNS_TYPE_PTR", Const, 0}, + {"DNS_TYPE_PX", Const, 0}, + {"DNS_TYPE_RP", Const, 0}, + {"DNS_TYPE_RRSIG", Const, 0}, + {"DNS_TYPE_RT", Const, 0}, + {"DNS_TYPE_SIG", Const, 0}, + {"DNS_TYPE_SINK", Const, 0}, + {"DNS_TYPE_SOA", Const, 0}, + {"DNS_TYPE_SRV", Const, 0}, + {"DNS_TYPE_TEXT", Const, 0}, + {"DNS_TYPE_TKEY", Const, 0}, + {"DNS_TYPE_TSIG", Const, 0}, + {"DNS_TYPE_UID", Const, 0}, + {"DNS_TYPE_UINFO", Const, 0}, + {"DNS_TYPE_UNSPEC", Const, 0}, + {"DNS_TYPE_WINS", Const, 0}, + {"DNS_TYPE_WINSR", Const, 0}, + {"DNS_TYPE_WKS", Const, 0}, + {"DNS_TYPE_X25", Const, 0}, + {"DT_BLK", Const, 0}, + {"DT_CHR", Const, 0}, + {"DT_DIR", Const, 0}, + {"DT_FIFO", Const, 0}, + {"DT_LNK", Const, 0}, + {"DT_REG", Const, 0}, + {"DT_SOCK", Const, 0}, + {"DT_UNKNOWN", Const, 0}, + {"DT_WHT", Const, 0}, + {"DUPLICATE_CLOSE_SOURCE", Const, 0}, + {"DUPLICATE_SAME_ACCESS", Const, 0}, + {"DeleteFile", Func, 0}, + {"DetachLsf", Func, 0}, + {"DeviceIoControl", Func, 4}, + {"Dirent", Type, 0}, + {"Dirent.Fileno", Field, 0}, + {"Dirent.Ino", Field, 0}, + {"Dirent.Name", Field, 0}, + {"Dirent.Namlen", Field, 0}, + {"Dirent.Off", Field, 0}, + {"Dirent.Pad0", Field, 12}, + {"Dirent.Pad1", Field, 12}, + {"Dirent.Pad_cgo_0", Field, 0}, + {"Dirent.Reclen", Field, 0}, + {"Dirent.Seekoff", Field, 0}, + {"Dirent.Type", Field, 0}, + {"Dirent.X__d_padding", Field, 3}, + {"DnsNameCompare", Func, 4}, + {"DnsQuery", Func, 0}, + {"DnsRecordListFree", Func, 0}, + {"DnsSectionAdditional", Const, 4}, + {"DnsSectionAnswer", Const, 4}, + {"DnsSectionAuthority", Const, 4}, + {"DnsSectionQuestion", Const, 4}, + {"Dup", Func, 0}, + {"Dup2", Func, 0}, + {"Dup3", Func, 2}, + {"DuplicateHandle", Func, 0}, + {"E2BIG", Const, 0}, + {"EACCES", Const, 0}, + {"EADDRINUSE", Const, 0}, + {"EADDRNOTAVAIL", Const, 0}, + {"EADV", Const, 0}, + {"EAFNOSUPPORT", Const, 0}, + {"EAGAIN", Const, 0}, + {"EALREADY", Const, 0}, + {"EAUTH", Const, 0}, + {"EBADARCH", Const, 0}, + {"EBADE", Const, 0}, + {"EBADEXEC", Const, 0}, + {"EBADF", Const, 0}, + {"EBADFD", Const, 0}, + {"EBADMACHO", Const, 0}, + {"EBADMSG", Const, 0}, + {"EBADR", Const, 0}, + {"EBADRPC", Const, 0}, + {"EBADRQC", Const, 0}, + {"EBADSLT", Const, 0}, + {"EBFONT", Const, 0}, + {"EBUSY", Const, 0}, + {"ECANCELED", Const, 0}, + {"ECAPMODE", Const, 1}, + {"ECHILD", Const, 0}, + {"ECHO", Const, 0}, + {"ECHOCTL", Const, 0}, + {"ECHOE", Const, 0}, + {"ECHOK", Const, 0}, + {"ECHOKE", Const, 0}, + {"ECHONL", Const, 0}, + {"ECHOPRT", Const, 0}, + {"ECHRNG", Const, 0}, + {"ECOMM", Const, 0}, + {"ECONNABORTED", Const, 0}, + {"ECONNREFUSED", Const, 0}, + {"ECONNRESET", Const, 0}, + {"EDEADLK", Const, 0}, + {"EDEADLOCK", Const, 0}, + {"EDESTADDRREQ", Const, 0}, + {"EDEVERR", Const, 0}, + {"EDOM", Const, 0}, + {"EDOOFUS", Const, 0}, + {"EDOTDOT", Const, 0}, + {"EDQUOT", Const, 0}, + {"EEXIST", Const, 0}, + {"EFAULT", Const, 0}, + {"EFBIG", Const, 0}, + {"EFER_LMA", Const, 1}, + {"EFER_LME", Const, 1}, + {"EFER_NXE", Const, 1}, + {"EFER_SCE", Const, 1}, + {"EFTYPE", Const, 0}, + {"EHOSTDOWN", Const, 0}, + {"EHOSTUNREACH", Const, 0}, + {"EHWPOISON", Const, 0}, + {"EIDRM", Const, 0}, + {"EILSEQ", Const, 0}, + {"EINPROGRESS", Const, 0}, + {"EINTR", Const, 0}, + {"EINVAL", Const, 0}, + {"EIO", Const, 0}, + {"EIPSEC", Const, 1}, + {"EISCONN", Const, 0}, + {"EISDIR", Const, 0}, + {"EISNAM", Const, 0}, + {"EKEYEXPIRED", Const, 0}, + {"EKEYREJECTED", Const, 0}, + {"EKEYREVOKED", Const, 0}, + {"EL2HLT", Const, 0}, + {"EL2NSYNC", Const, 0}, + {"EL3HLT", Const, 0}, + {"EL3RST", Const, 0}, + {"ELAST", Const, 0}, + {"ELF_NGREG", Const, 0}, + {"ELF_PRARGSZ", Const, 0}, + {"ELIBACC", Const, 0}, + {"ELIBBAD", Const, 0}, + {"ELIBEXEC", Const, 0}, + {"ELIBMAX", Const, 0}, + {"ELIBSCN", Const, 0}, + {"ELNRNG", Const, 0}, + {"ELOOP", Const, 0}, + {"EMEDIUMTYPE", Const, 0}, + {"EMFILE", Const, 0}, + {"EMLINK", Const, 0}, + {"EMSGSIZE", Const, 0}, + {"EMT_TAGOVF", Const, 1}, + {"EMULTIHOP", Const, 0}, + {"EMUL_ENABLED", Const, 1}, + {"EMUL_LINUX", Const, 1}, + {"EMUL_LINUX32", Const, 1}, + {"EMUL_MAXID", Const, 1}, + {"EMUL_NATIVE", Const, 1}, + {"ENAMETOOLONG", Const, 0}, + {"ENAVAIL", Const, 0}, + {"ENDRUNDISC", Const, 1}, + {"ENEEDAUTH", Const, 0}, + {"ENETDOWN", Const, 0}, + {"ENETRESET", Const, 0}, + {"ENETUNREACH", Const, 0}, + {"ENFILE", Const, 0}, + {"ENOANO", Const, 0}, + {"ENOATTR", Const, 0}, + {"ENOBUFS", Const, 0}, + {"ENOCSI", Const, 0}, + {"ENODATA", Const, 0}, + {"ENODEV", Const, 0}, + {"ENOENT", Const, 0}, + {"ENOEXEC", Const, 0}, + {"ENOKEY", Const, 0}, + {"ENOLCK", Const, 0}, + {"ENOLINK", Const, 0}, + {"ENOMEDIUM", Const, 0}, + {"ENOMEM", Const, 0}, + {"ENOMSG", Const, 0}, + {"ENONET", Const, 0}, + {"ENOPKG", Const, 0}, + {"ENOPOLICY", Const, 0}, + {"ENOPROTOOPT", Const, 0}, + {"ENOSPC", Const, 0}, + {"ENOSR", Const, 0}, + {"ENOSTR", Const, 0}, + {"ENOSYS", Const, 0}, + {"ENOTBLK", Const, 0}, + {"ENOTCAPABLE", Const, 0}, + {"ENOTCONN", Const, 0}, + {"ENOTDIR", Const, 0}, + {"ENOTEMPTY", Const, 0}, + {"ENOTNAM", Const, 0}, + {"ENOTRECOVERABLE", Const, 0}, + {"ENOTSOCK", Const, 0}, + {"ENOTSUP", Const, 0}, + {"ENOTTY", Const, 0}, + {"ENOTUNIQ", Const, 0}, + {"ENXIO", Const, 0}, + {"EN_SW_CTL_INF", Const, 1}, + {"EN_SW_CTL_PREC", Const, 1}, + {"EN_SW_CTL_ROUND", Const, 1}, + {"EN_SW_DATACHAIN", Const, 1}, + {"EN_SW_DENORM", Const, 1}, + {"EN_SW_INVOP", Const, 1}, + {"EN_SW_OVERFLOW", Const, 1}, + {"EN_SW_PRECLOSS", Const, 1}, + {"EN_SW_UNDERFLOW", Const, 1}, + {"EN_SW_ZERODIV", Const, 1}, + {"EOPNOTSUPP", Const, 0}, + {"EOVERFLOW", Const, 0}, + {"EOWNERDEAD", Const, 0}, + {"EPERM", Const, 0}, + {"EPFNOSUPPORT", Const, 0}, + {"EPIPE", Const, 0}, + {"EPOLLERR", Const, 0}, + {"EPOLLET", Const, 0}, + {"EPOLLHUP", Const, 0}, + {"EPOLLIN", Const, 0}, + {"EPOLLMSG", Const, 0}, + {"EPOLLONESHOT", Const, 0}, + {"EPOLLOUT", Const, 0}, + {"EPOLLPRI", Const, 0}, + {"EPOLLRDBAND", Const, 0}, + {"EPOLLRDHUP", Const, 0}, + {"EPOLLRDNORM", Const, 0}, + {"EPOLLWRBAND", Const, 0}, + {"EPOLLWRNORM", Const, 0}, + {"EPOLL_CLOEXEC", Const, 0}, + {"EPOLL_CTL_ADD", Const, 0}, + {"EPOLL_CTL_DEL", Const, 0}, + {"EPOLL_CTL_MOD", Const, 0}, + {"EPOLL_NONBLOCK", Const, 0}, + {"EPROCLIM", Const, 0}, + {"EPROCUNAVAIL", Const, 0}, + {"EPROGMISMATCH", Const, 0}, + {"EPROGUNAVAIL", Const, 0}, + {"EPROTO", Const, 0}, + {"EPROTONOSUPPORT", Const, 0}, + {"EPROTOTYPE", Const, 0}, + {"EPWROFF", Const, 0}, + {"EQFULL", Const, 16}, + {"ERANGE", Const, 0}, + {"EREMCHG", Const, 0}, + {"EREMOTE", Const, 0}, + {"EREMOTEIO", Const, 0}, + {"ERESTART", Const, 0}, + {"ERFKILL", Const, 0}, + {"EROFS", Const, 0}, + {"ERPCMISMATCH", Const, 0}, + {"ERROR_ACCESS_DENIED", Const, 0}, + {"ERROR_ALREADY_EXISTS", Const, 0}, + {"ERROR_BROKEN_PIPE", Const, 0}, + {"ERROR_BUFFER_OVERFLOW", Const, 0}, + {"ERROR_DIR_NOT_EMPTY", Const, 8}, + {"ERROR_ENVVAR_NOT_FOUND", Const, 0}, + {"ERROR_FILE_EXISTS", Const, 0}, + {"ERROR_FILE_NOT_FOUND", Const, 0}, + {"ERROR_HANDLE_EOF", Const, 2}, + {"ERROR_INSUFFICIENT_BUFFER", Const, 0}, + {"ERROR_IO_PENDING", Const, 0}, + {"ERROR_MOD_NOT_FOUND", Const, 0}, + {"ERROR_MORE_DATA", Const, 3}, + {"ERROR_NETNAME_DELETED", Const, 3}, + {"ERROR_NOT_FOUND", Const, 1}, + {"ERROR_NO_MORE_FILES", Const, 0}, + {"ERROR_OPERATION_ABORTED", Const, 0}, + {"ERROR_PATH_NOT_FOUND", Const, 0}, + {"ERROR_PRIVILEGE_NOT_HELD", Const, 4}, + {"ERROR_PROC_NOT_FOUND", Const, 0}, + {"ESHLIBVERS", Const, 0}, + {"ESHUTDOWN", Const, 0}, + {"ESOCKTNOSUPPORT", Const, 0}, + {"ESPIPE", Const, 0}, + {"ESRCH", Const, 0}, + {"ESRMNT", Const, 0}, + {"ESTALE", Const, 0}, + {"ESTRPIPE", Const, 0}, + {"ETHERCAP_JUMBO_MTU", Const, 1}, + {"ETHERCAP_VLAN_HWTAGGING", Const, 1}, + {"ETHERCAP_VLAN_MTU", Const, 1}, + {"ETHERMIN", Const, 1}, + {"ETHERMTU", Const, 1}, + {"ETHERMTU_JUMBO", Const, 1}, + {"ETHERTYPE_8023", Const, 1}, + {"ETHERTYPE_AARP", Const, 1}, + {"ETHERTYPE_ACCTON", Const, 1}, + {"ETHERTYPE_AEONIC", Const, 1}, + {"ETHERTYPE_ALPHA", Const, 1}, + {"ETHERTYPE_AMBER", Const, 1}, + {"ETHERTYPE_AMOEBA", Const, 1}, + {"ETHERTYPE_AOE", Const, 1}, + {"ETHERTYPE_APOLLO", Const, 1}, + {"ETHERTYPE_APOLLODOMAIN", Const, 1}, + {"ETHERTYPE_APPLETALK", Const, 1}, + {"ETHERTYPE_APPLITEK", Const, 1}, + {"ETHERTYPE_ARGONAUT", Const, 1}, + {"ETHERTYPE_ARP", Const, 1}, + {"ETHERTYPE_AT", Const, 1}, + {"ETHERTYPE_ATALK", Const, 1}, + {"ETHERTYPE_ATOMIC", Const, 1}, + {"ETHERTYPE_ATT", Const, 1}, + {"ETHERTYPE_ATTSTANFORD", Const, 1}, + {"ETHERTYPE_AUTOPHON", Const, 1}, + {"ETHERTYPE_AXIS", Const, 1}, + {"ETHERTYPE_BCLOOP", Const, 1}, + {"ETHERTYPE_BOFL", Const, 1}, + {"ETHERTYPE_CABLETRON", Const, 1}, + {"ETHERTYPE_CHAOS", Const, 1}, + {"ETHERTYPE_COMDESIGN", Const, 1}, + {"ETHERTYPE_COMPUGRAPHIC", Const, 1}, + {"ETHERTYPE_COUNTERPOINT", Const, 1}, + {"ETHERTYPE_CRONUS", Const, 1}, + {"ETHERTYPE_CRONUSVLN", Const, 1}, + {"ETHERTYPE_DCA", Const, 1}, + {"ETHERTYPE_DDE", Const, 1}, + {"ETHERTYPE_DEBNI", Const, 1}, + {"ETHERTYPE_DECAM", Const, 1}, + {"ETHERTYPE_DECCUST", Const, 1}, + {"ETHERTYPE_DECDIAG", Const, 1}, + {"ETHERTYPE_DECDNS", Const, 1}, + {"ETHERTYPE_DECDTS", Const, 1}, + {"ETHERTYPE_DECEXPER", Const, 1}, + {"ETHERTYPE_DECLAST", Const, 1}, + {"ETHERTYPE_DECLTM", Const, 1}, + {"ETHERTYPE_DECMUMPS", Const, 1}, + {"ETHERTYPE_DECNETBIOS", Const, 1}, + {"ETHERTYPE_DELTACON", Const, 1}, + {"ETHERTYPE_DIDDLE", Const, 1}, + {"ETHERTYPE_DLOG1", Const, 1}, + {"ETHERTYPE_DLOG2", Const, 1}, + {"ETHERTYPE_DN", Const, 1}, + {"ETHERTYPE_DOGFIGHT", Const, 1}, + {"ETHERTYPE_DSMD", Const, 1}, + {"ETHERTYPE_ECMA", Const, 1}, + {"ETHERTYPE_ENCRYPT", Const, 1}, + {"ETHERTYPE_ES", Const, 1}, + {"ETHERTYPE_EXCELAN", Const, 1}, + {"ETHERTYPE_EXPERDATA", Const, 1}, + {"ETHERTYPE_FLIP", Const, 1}, + {"ETHERTYPE_FLOWCONTROL", Const, 1}, + {"ETHERTYPE_FRARP", Const, 1}, + {"ETHERTYPE_GENDYN", Const, 1}, + {"ETHERTYPE_HAYES", Const, 1}, + {"ETHERTYPE_HIPPI_FP", Const, 1}, + {"ETHERTYPE_HITACHI", Const, 1}, + {"ETHERTYPE_HP", Const, 1}, + {"ETHERTYPE_IEEEPUP", Const, 1}, + {"ETHERTYPE_IEEEPUPAT", Const, 1}, + {"ETHERTYPE_IMLBL", Const, 1}, + {"ETHERTYPE_IMLBLDIAG", Const, 1}, + {"ETHERTYPE_IP", Const, 1}, + {"ETHERTYPE_IPAS", Const, 1}, + {"ETHERTYPE_IPV6", Const, 1}, + {"ETHERTYPE_IPX", Const, 1}, + {"ETHERTYPE_IPXNEW", Const, 1}, + {"ETHERTYPE_KALPANA", Const, 1}, + {"ETHERTYPE_LANBRIDGE", Const, 1}, + {"ETHERTYPE_LANPROBE", Const, 1}, + {"ETHERTYPE_LAT", Const, 1}, + {"ETHERTYPE_LBACK", Const, 1}, + {"ETHERTYPE_LITTLE", Const, 1}, + {"ETHERTYPE_LLDP", Const, 1}, + {"ETHERTYPE_LOGICRAFT", Const, 1}, + {"ETHERTYPE_LOOPBACK", Const, 1}, + {"ETHERTYPE_MATRA", Const, 1}, + {"ETHERTYPE_MAX", Const, 1}, + {"ETHERTYPE_MERIT", Const, 1}, + {"ETHERTYPE_MICP", Const, 1}, + {"ETHERTYPE_MOPDL", Const, 1}, + {"ETHERTYPE_MOPRC", Const, 1}, + {"ETHERTYPE_MOTOROLA", Const, 1}, + {"ETHERTYPE_MPLS", Const, 1}, + {"ETHERTYPE_MPLS_MCAST", Const, 1}, + {"ETHERTYPE_MUMPS", Const, 1}, + {"ETHERTYPE_NBPCC", Const, 1}, + {"ETHERTYPE_NBPCLAIM", Const, 1}, + {"ETHERTYPE_NBPCLREQ", Const, 1}, + {"ETHERTYPE_NBPCLRSP", Const, 1}, + {"ETHERTYPE_NBPCREQ", Const, 1}, + {"ETHERTYPE_NBPCRSP", Const, 1}, + {"ETHERTYPE_NBPDG", Const, 1}, + {"ETHERTYPE_NBPDGB", Const, 1}, + {"ETHERTYPE_NBPDLTE", Const, 1}, + {"ETHERTYPE_NBPRAR", Const, 1}, + {"ETHERTYPE_NBPRAS", Const, 1}, + {"ETHERTYPE_NBPRST", Const, 1}, + {"ETHERTYPE_NBPSCD", Const, 1}, + {"ETHERTYPE_NBPVCD", Const, 1}, + {"ETHERTYPE_NBS", Const, 1}, + {"ETHERTYPE_NCD", Const, 1}, + {"ETHERTYPE_NESTAR", Const, 1}, + {"ETHERTYPE_NETBEUI", Const, 1}, + {"ETHERTYPE_NOVELL", Const, 1}, + {"ETHERTYPE_NS", Const, 1}, + {"ETHERTYPE_NSAT", Const, 1}, + {"ETHERTYPE_NSCOMPAT", Const, 1}, + {"ETHERTYPE_NTRAILER", Const, 1}, + {"ETHERTYPE_OS9", Const, 1}, + {"ETHERTYPE_OS9NET", Const, 1}, + {"ETHERTYPE_PACER", Const, 1}, + {"ETHERTYPE_PAE", Const, 1}, + {"ETHERTYPE_PCS", Const, 1}, + {"ETHERTYPE_PLANNING", Const, 1}, + {"ETHERTYPE_PPP", Const, 1}, + {"ETHERTYPE_PPPOE", Const, 1}, + {"ETHERTYPE_PPPOEDISC", Const, 1}, + {"ETHERTYPE_PRIMENTS", Const, 1}, + {"ETHERTYPE_PUP", Const, 1}, + {"ETHERTYPE_PUPAT", Const, 1}, + {"ETHERTYPE_QINQ", Const, 1}, + {"ETHERTYPE_RACAL", Const, 1}, + {"ETHERTYPE_RATIONAL", Const, 1}, + {"ETHERTYPE_RAWFR", Const, 1}, + {"ETHERTYPE_RCL", Const, 1}, + {"ETHERTYPE_RDP", Const, 1}, + {"ETHERTYPE_RETIX", Const, 1}, + {"ETHERTYPE_REVARP", Const, 1}, + {"ETHERTYPE_SCA", Const, 1}, + {"ETHERTYPE_SECTRA", Const, 1}, + {"ETHERTYPE_SECUREDATA", Const, 1}, + {"ETHERTYPE_SGITW", Const, 1}, + {"ETHERTYPE_SG_BOUNCE", Const, 1}, + {"ETHERTYPE_SG_DIAG", Const, 1}, + {"ETHERTYPE_SG_NETGAMES", Const, 1}, + {"ETHERTYPE_SG_RESV", Const, 1}, + {"ETHERTYPE_SIMNET", Const, 1}, + {"ETHERTYPE_SLOW", Const, 1}, + {"ETHERTYPE_SLOWPROTOCOLS", Const, 1}, + {"ETHERTYPE_SNA", Const, 1}, + {"ETHERTYPE_SNMP", Const, 1}, + {"ETHERTYPE_SONIX", Const, 1}, + {"ETHERTYPE_SPIDER", Const, 1}, + {"ETHERTYPE_SPRITE", Const, 1}, + {"ETHERTYPE_STP", Const, 1}, + {"ETHERTYPE_TALARIS", Const, 1}, + {"ETHERTYPE_TALARISMC", Const, 1}, + {"ETHERTYPE_TCPCOMP", Const, 1}, + {"ETHERTYPE_TCPSM", Const, 1}, + {"ETHERTYPE_TEC", Const, 1}, + {"ETHERTYPE_TIGAN", Const, 1}, + {"ETHERTYPE_TRAIL", Const, 1}, + {"ETHERTYPE_TRANSETHER", Const, 1}, + {"ETHERTYPE_TYMSHARE", Const, 1}, + {"ETHERTYPE_UBBST", Const, 1}, + {"ETHERTYPE_UBDEBUG", Const, 1}, + {"ETHERTYPE_UBDIAGLOOP", Const, 1}, + {"ETHERTYPE_UBDL", Const, 1}, + {"ETHERTYPE_UBNIU", Const, 1}, + {"ETHERTYPE_UBNMC", Const, 1}, + {"ETHERTYPE_VALID", Const, 1}, + {"ETHERTYPE_VARIAN", Const, 1}, + {"ETHERTYPE_VAXELN", Const, 1}, + {"ETHERTYPE_VEECO", Const, 1}, + {"ETHERTYPE_VEXP", Const, 1}, + {"ETHERTYPE_VGLAB", Const, 1}, + {"ETHERTYPE_VINES", Const, 1}, + {"ETHERTYPE_VINESECHO", Const, 1}, + {"ETHERTYPE_VINESLOOP", Const, 1}, + {"ETHERTYPE_VITAL", Const, 1}, + {"ETHERTYPE_VLAN", Const, 1}, + {"ETHERTYPE_VLTLMAN", Const, 1}, + {"ETHERTYPE_VPROD", Const, 1}, + {"ETHERTYPE_VURESERVED", Const, 1}, + {"ETHERTYPE_WATERLOO", Const, 1}, + {"ETHERTYPE_WELLFLEET", Const, 1}, + {"ETHERTYPE_X25", Const, 1}, + {"ETHERTYPE_X75", Const, 1}, + {"ETHERTYPE_XNSSM", Const, 1}, + {"ETHERTYPE_XTP", Const, 1}, + {"ETHER_ADDR_LEN", Const, 1}, + {"ETHER_ALIGN", Const, 1}, + {"ETHER_CRC_LEN", Const, 1}, + {"ETHER_CRC_POLY_BE", Const, 1}, + {"ETHER_CRC_POLY_LE", Const, 1}, + {"ETHER_HDR_LEN", Const, 1}, + {"ETHER_MAX_DIX_LEN", Const, 1}, + {"ETHER_MAX_LEN", Const, 1}, + {"ETHER_MAX_LEN_JUMBO", Const, 1}, + {"ETHER_MIN_LEN", Const, 1}, + {"ETHER_PPPOE_ENCAP_LEN", Const, 1}, + {"ETHER_TYPE_LEN", Const, 1}, + {"ETHER_VLAN_ENCAP_LEN", Const, 1}, + {"ETH_P_1588", Const, 0}, + {"ETH_P_8021Q", Const, 0}, + {"ETH_P_802_2", Const, 0}, + {"ETH_P_802_3", Const, 0}, + {"ETH_P_AARP", Const, 0}, + {"ETH_P_ALL", Const, 0}, + {"ETH_P_AOE", Const, 0}, + {"ETH_P_ARCNET", Const, 0}, + {"ETH_P_ARP", Const, 0}, + {"ETH_P_ATALK", Const, 0}, + {"ETH_P_ATMFATE", Const, 0}, + {"ETH_P_ATMMPOA", Const, 0}, + {"ETH_P_AX25", Const, 0}, + {"ETH_P_BPQ", Const, 0}, + {"ETH_P_CAIF", Const, 0}, + {"ETH_P_CAN", Const, 0}, + {"ETH_P_CONTROL", Const, 0}, + {"ETH_P_CUST", Const, 0}, + {"ETH_P_DDCMP", Const, 0}, + {"ETH_P_DEC", Const, 0}, + {"ETH_P_DIAG", Const, 0}, + {"ETH_P_DNA_DL", Const, 0}, + {"ETH_P_DNA_RC", Const, 0}, + {"ETH_P_DNA_RT", Const, 0}, + {"ETH_P_DSA", Const, 0}, + {"ETH_P_ECONET", Const, 0}, + {"ETH_P_EDSA", Const, 0}, + {"ETH_P_FCOE", Const, 0}, + {"ETH_P_FIP", Const, 0}, + {"ETH_P_HDLC", Const, 0}, + {"ETH_P_IEEE802154", Const, 0}, + {"ETH_P_IEEEPUP", Const, 0}, + {"ETH_P_IEEEPUPAT", Const, 0}, + {"ETH_P_IP", Const, 0}, + {"ETH_P_IPV6", Const, 0}, + {"ETH_P_IPX", Const, 0}, + {"ETH_P_IRDA", Const, 0}, + {"ETH_P_LAT", Const, 0}, + {"ETH_P_LINK_CTL", Const, 0}, + {"ETH_P_LOCALTALK", Const, 0}, + {"ETH_P_LOOP", Const, 0}, + {"ETH_P_MOBITEX", Const, 0}, + {"ETH_P_MPLS_MC", Const, 0}, + {"ETH_P_MPLS_UC", Const, 0}, + {"ETH_P_PAE", Const, 0}, + {"ETH_P_PAUSE", Const, 0}, + {"ETH_P_PHONET", Const, 0}, + {"ETH_P_PPPTALK", Const, 0}, + {"ETH_P_PPP_DISC", Const, 0}, + {"ETH_P_PPP_MP", Const, 0}, + {"ETH_P_PPP_SES", Const, 0}, + {"ETH_P_PUP", Const, 0}, + {"ETH_P_PUPAT", Const, 0}, + {"ETH_P_RARP", Const, 0}, + {"ETH_P_SCA", Const, 0}, + {"ETH_P_SLOW", Const, 0}, + {"ETH_P_SNAP", Const, 0}, + {"ETH_P_TEB", Const, 0}, + {"ETH_P_TIPC", Const, 0}, + {"ETH_P_TRAILER", Const, 0}, + {"ETH_P_TR_802_2", Const, 0}, + {"ETH_P_WAN_PPP", Const, 0}, + {"ETH_P_WCCP", Const, 0}, + {"ETH_P_X25", Const, 0}, + {"ETIME", Const, 0}, + {"ETIMEDOUT", Const, 0}, + {"ETOOMANYREFS", Const, 0}, + {"ETXTBSY", Const, 0}, + {"EUCLEAN", Const, 0}, + {"EUNATCH", Const, 0}, + {"EUSERS", Const, 0}, + {"EVFILT_AIO", Const, 0}, + {"EVFILT_FS", Const, 0}, + {"EVFILT_LIO", Const, 0}, + {"EVFILT_MACHPORT", Const, 0}, + {"EVFILT_PROC", Const, 0}, + {"EVFILT_READ", Const, 0}, + {"EVFILT_SIGNAL", Const, 0}, + {"EVFILT_SYSCOUNT", Const, 0}, + {"EVFILT_THREADMARKER", Const, 0}, + {"EVFILT_TIMER", Const, 0}, + {"EVFILT_USER", Const, 0}, + {"EVFILT_VM", Const, 0}, + {"EVFILT_VNODE", Const, 0}, + {"EVFILT_WRITE", Const, 0}, + {"EV_ADD", Const, 0}, + {"EV_CLEAR", Const, 0}, + {"EV_DELETE", Const, 0}, + {"EV_DISABLE", Const, 0}, + {"EV_DISPATCH", Const, 0}, + {"EV_DROP", Const, 3}, + {"EV_ENABLE", Const, 0}, + {"EV_EOF", Const, 0}, + {"EV_ERROR", Const, 0}, + {"EV_FLAG0", Const, 0}, + {"EV_FLAG1", Const, 0}, + {"EV_ONESHOT", Const, 0}, + {"EV_OOBAND", Const, 0}, + {"EV_POLL", Const, 0}, + {"EV_RECEIPT", Const, 0}, + {"EV_SYSFLAGS", Const, 0}, + {"EWINDOWS", Const, 0}, + {"EWOULDBLOCK", Const, 0}, + {"EXDEV", Const, 0}, + {"EXFULL", Const, 0}, + {"EXTA", Const, 0}, + {"EXTB", Const, 0}, + {"EXTPROC", Const, 0}, + {"Environ", Func, 0}, + {"EpollCreate", Func, 0}, + {"EpollCreate1", Func, 0}, + {"EpollCtl", Func, 0}, + {"EpollEvent", Type, 0}, + {"EpollEvent.Events", Field, 0}, + {"EpollEvent.Fd", Field, 0}, + {"EpollEvent.Pad", Field, 0}, + {"EpollEvent.PadFd", Field, 0}, + {"EpollWait", Func, 0}, + {"Errno", Type, 0}, + {"EscapeArg", Func, 0}, + {"Exchangedata", Func, 0}, + {"Exec", Func, 0}, + {"Exit", Func, 0}, + {"ExitProcess", Func, 0}, + {"FD_CLOEXEC", Const, 0}, + {"FD_SETSIZE", Const, 0}, + {"FILE_ACTION_ADDED", Const, 0}, + {"FILE_ACTION_MODIFIED", Const, 0}, + {"FILE_ACTION_REMOVED", Const, 0}, + {"FILE_ACTION_RENAMED_NEW_NAME", Const, 0}, + {"FILE_ACTION_RENAMED_OLD_NAME", Const, 0}, + {"FILE_APPEND_DATA", Const, 0}, + {"FILE_ATTRIBUTE_ARCHIVE", Const, 0}, + {"FILE_ATTRIBUTE_DIRECTORY", Const, 0}, + {"FILE_ATTRIBUTE_HIDDEN", Const, 0}, + {"FILE_ATTRIBUTE_NORMAL", Const, 0}, + {"FILE_ATTRIBUTE_READONLY", Const, 0}, + {"FILE_ATTRIBUTE_REPARSE_POINT", Const, 4}, + {"FILE_ATTRIBUTE_SYSTEM", Const, 0}, + {"FILE_BEGIN", Const, 0}, + {"FILE_CURRENT", Const, 0}, + {"FILE_END", Const, 0}, + {"FILE_FLAG_BACKUP_SEMANTICS", Const, 0}, + {"FILE_FLAG_OPEN_REPARSE_POINT", Const, 4}, + {"FILE_FLAG_OVERLAPPED", Const, 0}, + {"FILE_LIST_DIRECTORY", Const, 0}, + {"FILE_MAP_COPY", Const, 0}, + {"FILE_MAP_EXECUTE", Const, 0}, + {"FILE_MAP_READ", Const, 0}, + {"FILE_MAP_WRITE", Const, 0}, + {"FILE_NOTIFY_CHANGE_ATTRIBUTES", Const, 0}, + {"FILE_NOTIFY_CHANGE_CREATION", Const, 0}, + {"FILE_NOTIFY_CHANGE_DIR_NAME", Const, 0}, + {"FILE_NOTIFY_CHANGE_FILE_NAME", Const, 0}, + {"FILE_NOTIFY_CHANGE_LAST_ACCESS", Const, 0}, + {"FILE_NOTIFY_CHANGE_LAST_WRITE", Const, 0}, + {"FILE_NOTIFY_CHANGE_SIZE", Const, 0}, + {"FILE_SHARE_DELETE", Const, 0}, + {"FILE_SHARE_READ", Const, 0}, + {"FILE_SHARE_WRITE", Const, 0}, + {"FILE_SKIP_COMPLETION_PORT_ON_SUCCESS", Const, 2}, + {"FILE_SKIP_SET_EVENT_ON_HANDLE", Const, 2}, + {"FILE_TYPE_CHAR", Const, 0}, + {"FILE_TYPE_DISK", Const, 0}, + {"FILE_TYPE_PIPE", Const, 0}, + {"FILE_TYPE_REMOTE", Const, 0}, + {"FILE_TYPE_UNKNOWN", Const, 0}, + {"FILE_WRITE_ATTRIBUTES", Const, 0}, + {"FLUSHO", Const, 0}, + {"FORMAT_MESSAGE_ALLOCATE_BUFFER", Const, 0}, + {"FORMAT_MESSAGE_ARGUMENT_ARRAY", Const, 0}, + {"FORMAT_MESSAGE_FROM_HMODULE", Const, 0}, + {"FORMAT_MESSAGE_FROM_STRING", Const, 0}, + {"FORMAT_MESSAGE_FROM_SYSTEM", Const, 0}, + {"FORMAT_MESSAGE_IGNORE_INSERTS", Const, 0}, + {"FORMAT_MESSAGE_MAX_WIDTH_MASK", Const, 0}, + {"FSCTL_GET_REPARSE_POINT", Const, 4}, + {"F_ADDFILESIGS", Const, 0}, + {"F_ADDSIGS", Const, 0}, + {"F_ALLOCATEALL", Const, 0}, + {"F_ALLOCATECONTIG", Const, 0}, + {"F_CANCEL", Const, 0}, + {"F_CHKCLEAN", Const, 0}, + {"F_CLOSEM", Const, 1}, + {"F_DUP2FD", Const, 0}, + {"F_DUP2FD_CLOEXEC", Const, 1}, + {"F_DUPFD", Const, 0}, + {"F_DUPFD_CLOEXEC", Const, 0}, + {"F_EXLCK", Const, 0}, + {"F_FINDSIGS", Const, 16}, + {"F_FLUSH_DATA", Const, 0}, + {"F_FREEZE_FS", Const, 0}, + {"F_FSCTL", Const, 1}, + {"F_FSDIRMASK", Const, 1}, + {"F_FSIN", Const, 1}, + {"F_FSINOUT", Const, 1}, + {"F_FSOUT", Const, 1}, + {"F_FSPRIV", Const, 1}, + {"F_FSVOID", Const, 1}, + {"F_FULLFSYNC", Const, 0}, + {"F_GETCODEDIR", Const, 16}, + {"F_GETFD", Const, 0}, + {"F_GETFL", Const, 0}, + {"F_GETLEASE", Const, 0}, + {"F_GETLK", Const, 0}, + {"F_GETLK64", Const, 0}, + {"F_GETLKPID", Const, 0}, + {"F_GETNOSIGPIPE", Const, 0}, + {"F_GETOWN", Const, 0}, + {"F_GETOWN_EX", Const, 0}, + {"F_GETPATH", Const, 0}, + {"F_GETPATH_MTMINFO", Const, 0}, + {"F_GETPIPE_SZ", Const, 0}, + {"F_GETPROTECTIONCLASS", Const, 0}, + {"F_GETPROTECTIONLEVEL", Const, 16}, + {"F_GETSIG", Const, 0}, + {"F_GLOBAL_NOCACHE", Const, 0}, + {"F_LOCK", Const, 0}, + {"F_LOG2PHYS", Const, 0}, + {"F_LOG2PHYS_EXT", Const, 0}, + {"F_MARKDEPENDENCY", Const, 0}, + {"F_MAXFD", Const, 1}, + {"F_NOCACHE", Const, 0}, + {"F_NODIRECT", Const, 0}, + {"F_NOTIFY", Const, 0}, + {"F_OGETLK", Const, 0}, + {"F_OK", Const, 0}, + {"F_OSETLK", Const, 0}, + {"F_OSETLKW", Const, 0}, + {"F_PARAM_MASK", Const, 1}, + {"F_PARAM_MAX", Const, 1}, + {"F_PATHPKG_CHECK", Const, 0}, + {"F_PEOFPOSMODE", Const, 0}, + {"F_PREALLOCATE", Const, 0}, + {"F_RDADVISE", Const, 0}, + {"F_RDAHEAD", Const, 0}, + {"F_RDLCK", Const, 0}, + {"F_READAHEAD", Const, 0}, + {"F_READBOOTSTRAP", Const, 0}, + {"F_SETBACKINGSTORE", Const, 0}, + {"F_SETFD", Const, 0}, + {"F_SETFL", Const, 0}, + {"F_SETLEASE", Const, 0}, + {"F_SETLK", Const, 0}, + {"F_SETLK64", Const, 0}, + {"F_SETLKW", Const, 0}, + {"F_SETLKW64", Const, 0}, + {"F_SETLKWTIMEOUT", Const, 16}, + {"F_SETLK_REMOTE", Const, 0}, + {"F_SETNOSIGPIPE", Const, 0}, + {"F_SETOWN", Const, 0}, + {"F_SETOWN_EX", Const, 0}, + {"F_SETPIPE_SZ", Const, 0}, + {"F_SETPROTECTIONCLASS", Const, 0}, + {"F_SETSIG", Const, 0}, + {"F_SETSIZE", Const, 0}, + {"F_SHLCK", Const, 0}, + {"F_SINGLE_WRITER", Const, 16}, + {"F_TEST", Const, 0}, + {"F_THAW_FS", Const, 0}, + {"F_TLOCK", Const, 0}, + {"F_TRANSCODEKEY", Const, 16}, + {"F_ULOCK", Const, 0}, + {"F_UNLCK", Const, 0}, + {"F_UNLCKSYS", Const, 0}, + {"F_VOLPOSMODE", Const, 0}, + {"F_WRITEBOOTSTRAP", Const, 0}, + {"F_WRLCK", Const, 0}, + {"Faccessat", Func, 0}, + {"Fallocate", Func, 0}, + {"Fbootstraptransfer_t", Type, 0}, + {"Fbootstraptransfer_t.Buffer", Field, 0}, + {"Fbootstraptransfer_t.Length", Field, 0}, + {"Fbootstraptransfer_t.Offset", Field, 0}, + {"Fchdir", Func, 0}, + {"Fchflags", Func, 0}, + {"Fchmod", Func, 0}, + {"Fchmodat", Func, 0}, + {"Fchown", Func, 0}, + {"Fchownat", Func, 0}, + {"FcntlFlock", Func, 3}, + {"FdSet", Type, 0}, + {"FdSet.Bits", Field, 0}, + {"FdSet.X__fds_bits", Field, 0}, + {"Fdatasync", Func, 0}, + {"FileNotifyInformation", Type, 0}, + {"FileNotifyInformation.Action", Field, 0}, + {"FileNotifyInformation.FileName", Field, 0}, + {"FileNotifyInformation.FileNameLength", Field, 0}, + {"FileNotifyInformation.NextEntryOffset", Field, 0}, + {"Filetime", Type, 0}, + {"Filetime.HighDateTime", Field, 0}, + {"Filetime.LowDateTime", Field, 0}, + {"FindClose", Func, 0}, + {"FindFirstFile", Func, 0}, + {"FindNextFile", Func, 0}, + {"Flock", Func, 0}, + {"Flock_t", Type, 0}, + {"Flock_t.Len", Field, 0}, + {"Flock_t.Pad_cgo_0", Field, 0}, + {"Flock_t.Pad_cgo_1", Field, 3}, + {"Flock_t.Pid", Field, 0}, + {"Flock_t.Start", Field, 0}, + {"Flock_t.Sysid", Field, 0}, + {"Flock_t.Type", Field, 0}, + {"Flock_t.Whence", Field, 0}, + {"FlushBpf", Func, 0}, + {"FlushFileBuffers", Func, 0}, + {"FlushViewOfFile", Func, 0}, + {"ForkExec", Func, 0}, + {"ForkLock", Var, 0}, + {"FormatMessage", Func, 0}, + {"Fpathconf", Func, 0}, + {"FreeAddrInfoW", Func, 1}, + {"FreeEnvironmentStrings", Func, 0}, + {"FreeLibrary", Func, 0}, + {"Fsid", Type, 0}, + {"Fsid.Val", Field, 0}, + {"Fsid.X__fsid_val", Field, 2}, + {"Fsid.X__val", Field, 0}, + {"Fstat", Func, 0}, + {"Fstatat", Func, 12}, + {"Fstatfs", Func, 0}, + {"Fstore_t", Type, 0}, + {"Fstore_t.Bytesalloc", Field, 0}, + {"Fstore_t.Flags", Field, 0}, + {"Fstore_t.Length", Field, 0}, + {"Fstore_t.Offset", Field, 0}, + {"Fstore_t.Posmode", Field, 0}, + {"Fsync", Func, 0}, + {"Ftruncate", Func, 0}, + {"FullPath", Func, 4}, + {"Futimes", Func, 0}, + {"Futimesat", Func, 0}, + {"GENERIC_ALL", Const, 0}, + {"GENERIC_EXECUTE", Const, 0}, + {"GENERIC_READ", Const, 0}, + {"GENERIC_WRITE", Const, 0}, + {"GUID", Type, 1}, + {"GUID.Data1", Field, 1}, + {"GUID.Data2", Field, 1}, + {"GUID.Data3", Field, 1}, + {"GUID.Data4", Field, 1}, + {"GetAcceptExSockaddrs", Func, 0}, + {"GetAdaptersInfo", Func, 0}, + {"GetAddrInfoW", Func, 1}, + {"GetCommandLine", Func, 0}, + {"GetComputerName", Func, 0}, + {"GetConsoleMode", Func, 1}, + {"GetCurrentDirectory", Func, 0}, + {"GetCurrentProcess", Func, 0}, + {"GetEnvironmentStrings", Func, 0}, + {"GetEnvironmentVariable", Func, 0}, + {"GetExitCodeProcess", Func, 0}, + {"GetFileAttributes", Func, 0}, + {"GetFileAttributesEx", Func, 0}, + {"GetFileExInfoStandard", Const, 0}, + {"GetFileExMaxInfoLevel", Const, 0}, + {"GetFileInformationByHandle", Func, 0}, + {"GetFileType", Func, 0}, + {"GetFullPathName", Func, 0}, + {"GetHostByName", Func, 0}, + {"GetIfEntry", Func, 0}, + {"GetLastError", Func, 0}, + {"GetLengthSid", Func, 0}, + {"GetLongPathName", Func, 0}, + {"GetProcAddress", Func, 0}, + {"GetProcessTimes", Func, 0}, + {"GetProtoByName", Func, 0}, + {"GetQueuedCompletionStatus", Func, 0}, + {"GetServByName", Func, 0}, + {"GetShortPathName", Func, 0}, + {"GetStartupInfo", Func, 0}, + {"GetStdHandle", Func, 0}, + {"GetSystemTimeAsFileTime", Func, 0}, + {"GetTempPath", Func, 0}, + {"GetTimeZoneInformation", Func, 0}, + {"GetTokenInformation", Func, 0}, + {"GetUserNameEx", Func, 0}, + {"GetUserProfileDirectory", Func, 0}, + {"GetVersion", Func, 0}, + {"Getcwd", Func, 0}, + {"Getdents", Func, 0}, + {"Getdirentries", Func, 0}, + {"Getdtablesize", Func, 0}, + {"Getegid", Func, 0}, + {"Getenv", Func, 0}, + {"Geteuid", Func, 0}, + {"Getfsstat", Func, 0}, + {"Getgid", Func, 0}, + {"Getgroups", Func, 0}, + {"Getpagesize", Func, 0}, + {"Getpeername", Func, 0}, + {"Getpgid", Func, 0}, + {"Getpgrp", Func, 0}, + {"Getpid", Func, 0}, + {"Getppid", Func, 0}, + {"Getpriority", Func, 0}, + {"Getrlimit", Func, 0}, + {"Getrusage", Func, 0}, + {"Getsid", Func, 0}, + {"Getsockname", Func, 0}, + {"Getsockopt", Func, 1}, + {"GetsockoptByte", Func, 0}, + {"GetsockoptICMPv6Filter", Func, 2}, + {"GetsockoptIPMreq", Func, 0}, + {"GetsockoptIPMreqn", Func, 0}, + {"GetsockoptIPv6MTUInfo", Func, 2}, + {"GetsockoptIPv6Mreq", Func, 0}, + {"GetsockoptInet4Addr", Func, 0}, + {"GetsockoptInt", Func, 0}, + {"GetsockoptUcred", Func, 1}, + {"Gettid", Func, 0}, + {"Gettimeofday", Func, 0}, + {"Getuid", Func, 0}, + {"Getwd", Func, 0}, + {"Getxattr", Func, 1}, + {"HANDLE_FLAG_INHERIT", Const, 0}, + {"HKEY_CLASSES_ROOT", Const, 0}, + {"HKEY_CURRENT_CONFIG", Const, 0}, + {"HKEY_CURRENT_USER", Const, 0}, + {"HKEY_DYN_DATA", Const, 0}, + {"HKEY_LOCAL_MACHINE", Const, 0}, + {"HKEY_PERFORMANCE_DATA", Const, 0}, + {"HKEY_USERS", Const, 0}, + {"HUPCL", Const, 0}, + {"Handle", Type, 0}, + {"Hostent", Type, 0}, + {"Hostent.AddrList", Field, 0}, + {"Hostent.AddrType", Field, 0}, + {"Hostent.Aliases", Field, 0}, + {"Hostent.Length", Field, 0}, + {"Hostent.Name", Field, 0}, + {"ICANON", Const, 0}, + {"ICMP6_FILTER", Const, 2}, + {"ICMPV6_FILTER", Const, 2}, + {"ICMPv6Filter", Type, 2}, + {"ICMPv6Filter.Data", Field, 2}, + {"ICMPv6Filter.Filt", Field, 2}, + {"ICRNL", Const, 0}, + {"IEXTEN", Const, 0}, + {"IFAN_ARRIVAL", Const, 1}, + {"IFAN_DEPARTURE", Const, 1}, + {"IFA_ADDRESS", Const, 0}, + {"IFA_ANYCAST", Const, 0}, + {"IFA_BROADCAST", Const, 0}, + {"IFA_CACHEINFO", Const, 0}, + {"IFA_F_DADFAILED", Const, 0}, + {"IFA_F_DEPRECATED", Const, 0}, + {"IFA_F_HOMEADDRESS", Const, 0}, + {"IFA_F_NODAD", Const, 0}, + {"IFA_F_OPTIMISTIC", Const, 0}, + {"IFA_F_PERMANENT", Const, 0}, + {"IFA_F_SECONDARY", Const, 0}, + {"IFA_F_TEMPORARY", Const, 0}, + {"IFA_F_TENTATIVE", Const, 0}, + {"IFA_LABEL", Const, 0}, + {"IFA_LOCAL", Const, 0}, + {"IFA_MAX", Const, 0}, + {"IFA_MULTICAST", Const, 0}, + {"IFA_ROUTE", Const, 1}, + {"IFA_UNSPEC", Const, 0}, + {"IFF_ALLMULTI", Const, 0}, + {"IFF_ALTPHYS", Const, 0}, + {"IFF_AUTOMEDIA", Const, 0}, + {"IFF_BROADCAST", Const, 0}, + {"IFF_CANTCHANGE", Const, 0}, + {"IFF_CANTCONFIG", Const, 1}, + {"IFF_DEBUG", Const, 0}, + {"IFF_DRV_OACTIVE", Const, 0}, + {"IFF_DRV_RUNNING", Const, 0}, + {"IFF_DYING", Const, 0}, + {"IFF_DYNAMIC", Const, 0}, + {"IFF_LINK0", Const, 0}, + {"IFF_LINK1", Const, 0}, + {"IFF_LINK2", Const, 0}, + {"IFF_LOOPBACK", Const, 0}, + {"IFF_MASTER", Const, 0}, + {"IFF_MONITOR", Const, 0}, + {"IFF_MULTICAST", Const, 0}, + {"IFF_NOARP", Const, 0}, + {"IFF_NOTRAILERS", Const, 0}, + {"IFF_NO_PI", Const, 0}, + {"IFF_OACTIVE", Const, 0}, + {"IFF_ONE_QUEUE", Const, 0}, + {"IFF_POINTOPOINT", Const, 0}, + {"IFF_POINTTOPOINT", Const, 0}, + {"IFF_PORTSEL", Const, 0}, + {"IFF_PPROMISC", Const, 0}, + {"IFF_PROMISC", Const, 0}, + {"IFF_RENAMING", Const, 0}, + {"IFF_RUNNING", Const, 0}, + {"IFF_SIMPLEX", Const, 0}, + {"IFF_SLAVE", Const, 0}, + {"IFF_SMART", Const, 0}, + {"IFF_STATICARP", Const, 0}, + {"IFF_TAP", Const, 0}, + {"IFF_TUN", Const, 0}, + {"IFF_TUN_EXCL", Const, 0}, + {"IFF_UP", Const, 0}, + {"IFF_VNET_HDR", Const, 0}, + {"IFLA_ADDRESS", Const, 0}, + {"IFLA_BROADCAST", Const, 0}, + {"IFLA_COST", Const, 0}, + {"IFLA_IFALIAS", Const, 0}, + {"IFLA_IFNAME", Const, 0}, + {"IFLA_LINK", Const, 0}, + {"IFLA_LINKINFO", Const, 0}, + {"IFLA_LINKMODE", Const, 0}, + {"IFLA_MAP", Const, 0}, + {"IFLA_MASTER", Const, 0}, + {"IFLA_MAX", Const, 0}, + {"IFLA_MTU", Const, 0}, + {"IFLA_NET_NS_PID", Const, 0}, + {"IFLA_OPERSTATE", Const, 0}, + {"IFLA_PRIORITY", Const, 0}, + {"IFLA_PROTINFO", Const, 0}, + {"IFLA_QDISC", Const, 0}, + {"IFLA_STATS", Const, 0}, + {"IFLA_TXQLEN", Const, 0}, + {"IFLA_UNSPEC", Const, 0}, + {"IFLA_WEIGHT", Const, 0}, + {"IFLA_WIRELESS", Const, 0}, + {"IFNAMSIZ", Const, 0}, + {"IFT_1822", Const, 0}, + {"IFT_A12MPPSWITCH", Const, 0}, + {"IFT_AAL2", Const, 0}, + {"IFT_AAL5", Const, 0}, + {"IFT_ADSL", Const, 0}, + {"IFT_AFLANE8023", Const, 0}, + {"IFT_AFLANE8025", Const, 0}, + {"IFT_ARAP", Const, 0}, + {"IFT_ARCNET", Const, 0}, + {"IFT_ARCNETPLUS", Const, 0}, + {"IFT_ASYNC", Const, 0}, + {"IFT_ATM", Const, 0}, + {"IFT_ATMDXI", Const, 0}, + {"IFT_ATMFUNI", Const, 0}, + {"IFT_ATMIMA", Const, 0}, + {"IFT_ATMLOGICAL", Const, 0}, + {"IFT_ATMRADIO", Const, 0}, + {"IFT_ATMSUBINTERFACE", Const, 0}, + {"IFT_ATMVCIENDPT", Const, 0}, + {"IFT_ATMVIRTUAL", Const, 0}, + {"IFT_BGPPOLICYACCOUNTING", Const, 0}, + {"IFT_BLUETOOTH", Const, 1}, + {"IFT_BRIDGE", Const, 0}, + {"IFT_BSC", Const, 0}, + {"IFT_CARP", Const, 0}, + {"IFT_CCTEMUL", Const, 0}, + {"IFT_CELLULAR", Const, 0}, + {"IFT_CEPT", Const, 0}, + {"IFT_CES", Const, 0}, + {"IFT_CHANNEL", Const, 0}, + {"IFT_CNR", Const, 0}, + {"IFT_COFFEE", Const, 0}, + {"IFT_COMPOSITELINK", Const, 0}, + {"IFT_DCN", Const, 0}, + {"IFT_DIGITALPOWERLINE", Const, 0}, + {"IFT_DIGITALWRAPPEROVERHEADCHANNEL", Const, 0}, + {"IFT_DLSW", Const, 0}, + {"IFT_DOCSCABLEDOWNSTREAM", Const, 0}, + {"IFT_DOCSCABLEMACLAYER", Const, 0}, + {"IFT_DOCSCABLEUPSTREAM", Const, 0}, + {"IFT_DOCSCABLEUPSTREAMCHANNEL", Const, 1}, + {"IFT_DS0", Const, 0}, + {"IFT_DS0BUNDLE", Const, 0}, + {"IFT_DS1FDL", Const, 0}, + {"IFT_DS3", Const, 0}, + {"IFT_DTM", Const, 0}, + {"IFT_DUMMY", Const, 1}, + {"IFT_DVBASILN", Const, 0}, + {"IFT_DVBASIOUT", Const, 0}, + {"IFT_DVBRCCDOWNSTREAM", Const, 0}, + {"IFT_DVBRCCMACLAYER", Const, 0}, + {"IFT_DVBRCCUPSTREAM", Const, 0}, + {"IFT_ECONET", Const, 1}, + {"IFT_ENC", Const, 0}, + {"IFT_EON", Const, 0}, + {"IFT_EPLRS", Const, 0}, + {"IFT_ESCON", Const, 0}, + {"IFT_ETHER", Const, 0}, + {"IFT_FAITH", Const, 0}, + {"IFT_FAST", Const, 0}, + {"IFT_FASTETHER", Const, 0}, + {"IFT_FASTETHERFX", Const, 0}, + {"IFT_FDDI", Const, 0}, + {"IFT_FIBRECHANNEL", Const, 0}, + {"IFT_FRAMERELAYINTERCONNECT", Const, 0}, + {"IFT_FRAMERELAYMPI", Const, 0}, + {"IFT_FRDLCIENDPT", Const, 0}, + {"IFT_FRELAY", Const, 0}, + {"IFT_FRELAYDCE", Const, 0}, + {"IFT_FRF16MFRBUNDLE", Const, 0}, + {"IFT_FRFORWARD", Const, 0}, + {"IFT_G703AT2MB", Const, 0}, + {"IFT_G703AT64K", Const, 0}, + {"IFT_GIF", Const, 0}, + {"IFT_GIGABITETHERNET", Const, 0}, + {"IFT_GR303IDT", Const, 0}, + {"IFT_GR303RDT", Const, 0}, + {"IFT_H323GATEKEEPER", Const, 0}, + {"IFT_H323PROXY", Const, 0}, + {"IFT_HDH1822", Const, 0}, + {"IFT_HDLC", Const, 0}, + {"IFT_HDSL2", Const, 0}, + {"IFT_HIPERLAN2", Const, 0}, + {"IFT_HIPPI", Const, 0}, + {"IFT_HIPPIINTERFACE", Const, 0}, + {"IFT_HOSTPAD", Const, 0}, + {"IFT_HSSI", Const, 0}, + {"IFT_HY", Const, 0}, + {"IFT_IBM370PARCHAN", Const, 0}, + {"IFT_IDSL", Const, 0}, + {"IFT_IEEE1394", Const, 0}, + {"IFT_IEEE80211", Const, 0}, + {"IFT_IEEE80212", Const, 0}, + {"IFT_IEEE8023ADLAG", Const, 0}, + {"IFT_IFGSN", Const, 0}, + {"IFT_IMT", Const, 0}, + {"IFT_INFINIBAND", Const, 1}, + {"IFT_INTERLEAVE", Const, 0}, + {"IFT_IP", Const, 0}, + {"IFT_IPFORWARD", Const, 0}, + {"IFT_IPOVERATM", Const, 0}, + {"IFT_IPOVERCDLC", Const, 0}, + {"IFT_IPOVERCLAW", Const, 0}, + {"IFT_IPSWITCH", Const, 0}, + {"IFT_IPXIP", Const, 0}, + {"IFT_ISDN", Const, 0}, + {"IFT_ISDNBASIC", Const, 0}, + {"IFT_ISDNPRIMARY", Const, 0}, + {"IFT_ISDNS", Const, 0}, + {"IFT_ISDNU", Const, 0}, + {"IFT_ISO88022LLC", Const, 0}, + {"IFT_ISO88023", Const, 0}, + {"IFT_ISO88024", Const, 0}, + {"IFT_ISO88025", Const, 0}, + {"IFT_ISO88025CRFPINT", Const, 0}, + {"IFT_ISO88025DTR", Const, 0}, + {"IFT_ISO88025FIBER", Const, 0}, + {"IFT_ISO88026", Const, 0}, + {"IFT_ISUP", Const, 0}, + {"IFT_L2VLAN", Const, 0}, + {"IFT_L3IPVLAN", Const, 0}, + {"IFT_L3IPXVLAN", Const, 0}, + {"IFT_LAPB", Const, 0}, + {"IFT_LAPD", Const, 0}, + {"IFT_LAPF", Const, 0}, + {"IFT_LINEGROUP", Const, 1}, + {"IFT_LOCALTALK", Const, 0}, + {"IFT_LOOP", Const, 0}, + {"IFT_MEDIAMAILOVERIP", Const, 0}, + {"IFT_MFSIGLINK", Const, 0}, + {"IFT_MIOX25", Const, 0}, + {"IFT_MODEM", Const, 0}, + {"IFT_MPC", Const, 0}, + {"IFT_MPLS", Const, 0}, + {"IFT_MPLSTUNNEL", Const, 0}, + {"IFT_MSDSL", Const, 0}, + {"IFT_MVL", Const, 0}, + {"IFT_MYRINET", Const, 0}, + {"IFT_NFAS", Const, 0}, + {"IFT_NSIP", Const, 0}, + {"IFT_OPTICALCHANNEL", Const, 0}, + {"IFT_OPTICALTRANSPORT", Const, 0}, + {"IFT_OTHER", Const, 0}, + {"IFT_P10", Const, 0}, + {"IFT_P80", Const, 0}, + {"IFT_PARA", Const, 0}, + {"IFT_PDP", Const, 0}, + {"IFT_PFLOG", Const, 0}, + {"IFT_PFLOW", Const, 1}, + {"IFT_PFSYNC", Const, 0}, + {"IFT_PLC", Const, 0}, + {"IFT_PON155", Const, 1}, + {"IFT_PON622", Const, 1}, + {"IFT_POS", Const, 0}, + {"IFT_PPP", Const, 0}, + {"IFT_PPPMULTILINKBUNDLE", Const, 0}, + {"IFT_PROPATM", Const, 1}, + {"IFT_PROPBWAP2MP", Const, 0}, + {"IFT_PROPCNLS", Const, 0}, + {"IFT_PROPDOCSWIRELESSDOWNSTREAM", Const, 0}, + {"IFT_PROPDOCSWIRELESSMACLAYER", Const, 0}, + {"IFT_PROPDOCSWIRELESSUPSTREAM", Const, 0}, + {"IFT_PROPMUX", Const, 0}, + {"IFT_PROPVIRTUAL", Const, 0}, + {"IFT_PROPWIRELESSP2P", Const, 0}, + {"IFT_PTPSERIAL", Const, 0}, + {"IFT_PVC", Const, 0}, + {"IFT_Q2931", Const, 1}, + {"IFT_QLLC", Const, 0}, + {"IFT_RADIOMAC", Const, 0}, + {"IFT_RADSL", Const, 0}, + {"IFT_REACHDSL", Const, 0}, + {"IFT_RFC1483", Const, 0}, + {"IFT_RS232", Const, 0}, + {"IFT_RSRB", Const, 0}, + {"IFT_SDLC", Const, 0}, + {"IFT_SDSL", Const, 0}, + {"IFT_SHDSL", Const, 0}, + {"IFT_SIP", Const, 0}, + {"IFT_SIPSIG", Const, 1}, + {"IFT_SIPTG", Const, 1}, + {"IFT_SLIP", Const, 0}, + {"IFT_SMDSDXI", Const, 0}, + {"IFT_SMDSICIP", Const, 0}, + {"IFT_SONET", Const, 0}, + {"IFT_SONETOVERHEADCHANNEL", Const, 0}, + {"IFT_SONETPATH", Const, 0}, + {"IFT_SONETVT", Const, 0}, + {"IFT_SRP", Const, 0}, + {"IFT_SS7SIGLINK", Const, 0}, + {"IFT_STACKTOSTACK", Const, 0}, + {"IFT_STARLAN", Const, 0}, + {"IFT_STF", Const, 0}, + {"IFT_T1", Const, 0}, + {"IFT_TDLC", Const, 0}, + {"IFT_TELINK", Const, 1}, + {"IFT_TERMPAD", Const, 0}, + {"IFT_TR008", Const, 0}, + {"IFT_TRANSPHDLC", Const, 0}, + {"IFT_TUNNEL", Const, 0}, + {"IFT_ULTRA", Const, 0}, + {"IFT_USB", Const, 0}, + {"IFT_V11", Const, 0}, + {"IFT_V35", Const, 0}, + {"IFT_V36", Const, 0}, + {"IFT_V37", Const, 0}, + {"IFT_VDSL", Const, 0}, + {"IFT_VIRTUALIPADDRESS", Const, 0}, + {"IFT_VIRTUALTG", Const, 1}, + {"IFT_VOICEDID", Const, 1}, + {"IFT_VOICEEM", Const, 0}, + {"IFT_VOICEEMFGD", Const, 1}, + {"IFT_VOICEENCAP", Const, 0}, + {"IFT_VOICEFGDEANA", Const, 1}, + {"IFT_VOICEFXO", Const, 0}, + {"IFT_VOICEFXS", Const, 0}, + {"IFT_VOICEOVERATM", Const, 0}, + {"IFT_VOICEOVERCABLE", Const, 1}, + {"IFT_VOICEOVERFRAMERELAY", Const, 0}, + {"IFT_VOICEOVERIP", Const, 0}, + {"IFT_X213", Const, 0}, + {"IFT_X25", Const, 0}, + {"IFT_X25DDN", Const, 0}, + {"IFT_X25HUNTGROUP", Const, 0}, + {"IFT_X25MLP", Const, 0}, + {"IFT_X25PLE", Const, 0}, + {"IFT_XETHER", Const, 0}, + {"IGNBRK", Const, 0}, + {"IGNCR", Const, 0}, + {"IGNORE", Const, 0}, + {"IGNPAR", Const, 0}, + {"IMAXBEL", Const, 0}, + {"INFINITE", Const, 0}, + {"INLCR", Const, 0}, + {"INPCK", Const, 0}, + {"INVALID_FILE_ATTRIBUTES", Const, 0}, + {"IN_ACCESS", Const, 0}, + {"IN_ALL_EVENTS", Const, 0}, + {"IN_ATTRIB", Const, 0}, + {"IN_CLASSA_HOST", Const, 0}, + {"IN_CLASSA_MAX", Const, 0}, + {"IN_CLASSA_NET", Const, 0}, + {"IN_CLASSA_NSHIFT", Const, 0}, + {"IN_CLASSB_HOST", Const, 0}, + {"IN_CLASSB_MAX", Const, 0}, + {"IN_CLASSB_NET", Const, 0}, + {"IN_CLASSB_NSHIFT", Const, 0}, + {"IN_CLASSC_HOST", Const, 0}, + {"IN_CLASSC_NET", Const, 0}, + {"IN_CLASSC_NSHIFT", Const, 0}, + {"IN_CLASSD_HOST", Const, 0}, + {"IN_CLASSD_NET", Const, 0}, + {"IN_CLASSD_NSHIFT", Const, 0}, + {"IN_CLOEXEC", Const, 0}, + {"IN_CLOSE", Const, 0}, + {"IN_CLOSE_NOWRITE", Const, 0}, + {"IN_CLOSE_WRITE", Const, 0}, + {"IN_CREATE", Const, 0}, + {"IN_DELETE", Const, 0}, + {"IN_DELETE_SELF", Const, 0}, + {"IN_DONT_FOLLOW", Const, 0}, + {"IN_EXCL_UNLINK", Const, 0}, + {"IN_IGNORED", Const, 0}, + {"IN_ISDIR", Const, 0}, + {"IN_LINKLOCALNETNUM", Const, 0}, + {"IN_LOOPBACKNET", Const, 0}, + {"IN_MASK_ADD", Const, 0}, + {"IN_MODIFY", Const, 0}, + {"IN_MOVE", Const, 0}, + {"IN_MOVED_FROM", Const, 0}, + {"IN_MOVED_TO", Const, 0}, + {"IN_MOVE_SELF", Const, 0}, + {"IN_NONBLOCK", Const, 0}, + {"IN_ONESHOT", Const, 0}, + {"IN_ONLYDIR", Const, 0}, + {"IN_OPEN", Const, 0}, + {"IN_Q_OVERFLOW", Const, 0}, + {"IN_RFC3021_HOST", Const, 1}, + {"IN_RFC3021_MASK", Const, 1}, + {"IN_RFC3021_NET", Const, 1}, + {"IN_RFC3021_NSHIFT", Const, 1}, + {"IN_UNMOUNT", Const, 0}, + {"IOC_IN", Const, 1}, + {"IOC_INOUT", Const, 1}, + {"IOC_OUT", Const, 1}, + {"IOC_VENDOR", Const, 3}, + {"IOC_WS2", Const, 1}, + {"IO_REPARSE_TAG_SYMLINK", Const, 4}, + {"IPMreq", Type, 0}, + {"IPMreq.Interface", Field, 0}, + {"IPMreq.Multiaddr", Field, 0}, + {"IPMreqn", Type, 0}, + {"IPMreqn.Address", Field, 0}, + {"IPMreqn.Ifindex", Field, 0}, + {"IPMreqn.Multiaddr", Field, 0}, + {"IPPROTO_3PC", Const, 0}, + {"IPPROTO_ADFS", Const, 0}, + {"IPPROTO_AH", Const, 0}, + {"IPPROTO_AHIP", Const, 0}, + {"IPPROTO_APES", Const, 0}, + {"IPPROTO_ARGUS", Const, 0}, + {"IPPROTO_AX25", Const, 0}, + {"IPPROTO_BHA", Const, 0}, + {"IPPROTO_BLT", Const, 0}, + {"IPPROTO_BRSATMON", Const, 0}, + {"IPPROTO_CARP", Const, 0}, + {"IPPROTO_CFTP", Const, 0}, + {"IPPROTO_CHAOS", Const, 0}, + {"IPPROTO_CMTP", Const, 0}, + {"IPPROTO_COMP", Const, 0}, + {"IPPROTO_CPHB", Const, 0}, + {"IPPROTO_CPNX", Const, 0}, + {"IPPROTO_DCCP", Const, 0}, + {"IPPROTO_DDP", Const, 0}, + {"IPPROTO_DGP", Const, 0}, + {"IPPROTO_DIVERT", Const, 0}, + {"IPPROTO_DIVERT_INIT", Const, 3}, + {"IPPROTO_DIVERT_RESP", Const, 3}, + {"IPPROTO_DONE", Const, 0}, + {"IPPROTO_DSTOPTS", Const, 0}, + {"IPPROTO_EGP", Const, 0}, + {"IPPROTO_EMCON", Const, 0}, + {"IPPROTO_ENCAP", Const, 0}, + {"IPPROTO_EON", Const, 0}, + {"IPPROTO_ESP", Const, 0}, + {"IPPROTO_ETHERIP", Const, 0}, + {"IPPROTO_FRAGMENT", Const, 0}, + {"IPPROTO_GGP", Const, 0}, + {"IPPROTO_GMTP", Const, 0}, + {"IPPROTO_GRE", Const, 0}, + {"IPPROTO_HELLO", Const, 0}, + {"IPPROTO_HMP", Const, 0}, + {"IPPROTO_HOPOPTS", Const, 0}, + {"IPPROTO_ICMP", Const, 0}, + {"IPPROTO_ICMPV6", Const, 0}, + {"IPPROTO_IDP", Const, 0}, + {"IPPROTO_IDPR", Const, 0}, + {"IPPROTO_IDRP", Const, 0}, + {"IPPROTO_IGMP", Const, 0}, + {"IPPROTO_IGP", Const, 0}, + {"IPPROTO_IGRP", Const, 0}, + {"IPPROTO_IL", Const, 0}, + {"IPPROTO_INLSP", Const, 0}, + {"IPPROTO_INP", Const, 0}, + {"IPPROTO_IP", Const, 0}, + {"IPPROTO_IPCOMP", Const, 0}, + {"IPPROTO_IPCV", Const, 0}, + {"IPPROTO_IPEIP", Const, 0}, + {"IPPROTO_IPIP", Const, 0}, + {"IPPROTO_IPPC", Const, 0}, + {"IPPROTO_IPV4", Const, 0}, + {"IPPROTO_IPV6", Const, 0}, + {"IPPROTO_IPV6_ICMP", Const, 1}, + {"IPPROTO_IRTP", Const, 0}, + {"IPPROTO_KRYPTOLAN", Const, 0}, + {"IPPROTO_LARP", Const, 0}, + {"IPPROTO_LEAF1", Const, 0}, + {"IPPROTO_LEAF2", Const, 0}, + {"IPPROTO_MAX", Const, 0}, + {"IPPROTO_MAXID", Const, 0}, + {"IPPROTO_MEAS", Const, 0}, + {"IPPROTO_MH", Const, 1}, + {"IPPROTO_MHRP", Const, 0}, + {"IPPROTO_MICP", Const, 0}, + {"IPPROTO_MOBILE", Const, 0}, + {"IPPROTO_MPLS", Const, 1}, + {"IPPROTO_MTP", Const, 0}, + {"IPPROTO_MUX", Const, 0}, + {"IPPROTO_ND", Const, 0}, + {"IPPROTO_NHRP", Const, 0}, + {"IPPROTO_NONE", Const, 0}, + {"IPPROTO_NSP", Const, 0}, + {"IPPROTO_NVPII", Const, 0}, + {"IPPROTO_OLD_DIVERT", Const, 0}, + {"IPPROTO_OSPFIGP", Const, 0}, + {"IPPROTO_PFSYNC", Const, 0}, + {"IPPROTO_PGM", Const, 0}, + {"IPPROTO_PIGP", Const, 0}, + {"IPPROTO_PIM", Const, 0}, + {"IPPROTO_PRM", Const, 0}, + {"IPPROTO_PUP", Const, 0}, + {"IPPROTO_PVP", Const, 0}, + {"IPPROTO_RAW", Const, 0}, + {"IPPROTO_RCCMON", Const, 0}, + {"IPPROTO_RDP", Const, 0}, + {"IPPROTO_ROUTING", Const, 0}, + {"IPPROTO_RSVP", Const, 0}, + {"IPPROTO_RVD", Const, 0}, + {"IPPROTO_SATEXPAK", Const, 0}, + {"IPPROTO_SATMON", Const, 0}, + {"IPPROTO_SCCSP", Const, 0}, + {"IPPROTO_SCTP", Const, 0}, + {"IPPROTO_SDRP", Const, 0}, + {"IPPROTO_SEND", Const, 1}, + {"IPPROTO_SEP", Const, 0}, + {"IPPROTO_SKIP", Const, 0}, + {"IPPROTO_SPACER", Const, 0}, + {"IPPROTO_SRPC", Const, 0}, + {"IPPROTO_ST", Const, 0}, + {"IPPROTO_SVMTP", Const, 0}, + {"IPPROTO_SWIPE", Const, 0}, + {"IPPROTO_TCF", Const, 0}, + {"IPPROTO_TCP", Const, 0}, + {"IPPROTO_TLSP", Const, 0}, + {"IPPROTO_TP", Const, 0}, + {"IPPROTO_TPXX", Const, 0}, + {"IPPROTO_TRUNK1", Const, 0}, + {"IPPROTO_TRUNK2", Const, 0}, + {"IPPROTO_TTP", Const, 0}, + {"IPPROTO_UDP", Const, 0}, + {"IPPROTO_UDPLITE", Const, 0}, + {"IPPROTO_VINES", Const, 0}, + {"IPPROTO_VISA", Const, 0}, + {"IPPROTO_VMTP", Const, 0}, + {"IPPROTO_VRRP", Const, 1}, + {"IPPROTO_WBEXPAK", Const, 0}, + {"IPPROTO_WBMON", Const, 0}, + {"IPPROTO_WSN", Const, 0}, + {"IPPROTO_XNET", Const, 0}, + {"IPPROTO_XTP", Const, 0}, + {"IPV6_2292DSTOPTS", Const, 0}, + {"IPV6_2292HOPLIMIT", Const, 0}, + {"IPV6_2292HOPOPTS", Const, 0}, + {"IPV6_2292NEXTHOP", Const, 0}, + {"IPV6_2292PKTINFO", Const, 0}, + {"IPV6_2292PKTOPTIONS", Const, 0}, + {"IPV6_2292RTHDR", Const, 0}, + {"IPV6_ADDRFORM", Const, 0}, + {"IPV6_ADD_MEMBERSHIP", Const, 0}, + {"IPV6_AUTHHDR", Const, 0}, + {"IPV6_AUTH_LEVEL", Const, 1}, + {"IPV6_AUTOFLOWLABEL", Const, 0}, + {"IPV6_BINDANY", Const, 0}, + {"IPV6_BINDV6ONLY", Const, 0}, + {"IPV6_BOUND_IF", Const, 0}, + {"IPV6_CHECKSUM", Const, 0}, + {"IPV6_DEFAULT_MULTICAST_HOPS", Const, 0}, + {"IPV6_DEFAULT_MULTICAST_LOOP", Const, 0}, + {"IPV6_DEFHLIM", Const, 0}, + {"IPV6_DONTFRAG", Const, 0}, + {"IPV6_DROP_MEMBERSHIP", Const, 0}, + {"IPV6_DSTOPTS", Const, 0}, + {"IPV6_ESP_NETWORK_LEVEL", Const, 1}, + {"IPV6_ESP_TRANS_LEVEL", Const, 1}, + {"IPV6_FAITH", Const, 0}, + {"IPV6_FLOWINFO_MASK", Const, 0}, + {"IPV6_FLOWLABEL_MASK", Const, 0}, + {"IPV6_FRAGTTL", Const, 0}, + {"IPV6_FW_ADD", Const, 0}, + {"IPV6_FW_DEL", Const, 0}, + {"IPV6_FW_FLUSH", Const, 0}, + {"IPV6_FW_GET", Const, 0}, + {"IPV6_FW_ZERO", Const, 0}, + {"IPV6_HLIMDEC", Const, 0}, + {"IPV6_HOPLIMIT", Const, 0}, + {"IPV6_HOPOPTS", Const, 0}, + {"IPV6_IPCOMP_LEVEL", Const, 1}, + {"IPV6_IPSEC_POLICY", Const, 0}, + {"IPV6_JOIN_ANYCAST", Const, 0}, + {"IPV6_JOIN_GROUP", Const, 0}, + {"IPV6_LEAVE_ANYCAST", Const, 0}, + {"IPV6_LEAVE_GROUP", Const, 0}, + {"IPV6_MAXHLIM", Const, 0}, + {"IPV6_MAXOPTHDR", Const, 0}, + {"IPV6_MAXPACKET", Const, 0}, + {"IPV6_MAX_GROUP_SRC_FILTER", Const, 0}, + {"IPV6_MAX_MEMBERSHIPS", Const, 0}, + {"IPV6_MAX_SOCK_SRC_FILTER", Const, 0}, + {"IPV6_MIN_MEMBERSHIPS", Const, 0}, + {"IPV6_MMTU", Const, 0}, + {"IPV6_MSFILTER", Const, 0}, + {"IPV6_MTU", Const, 0}, + {"IPV6_MTU_DISCOVER", Const, 0}, + {"IPV6_MULTICAST_HOPS", Const, 0}, + {"IPV6_MULTICAST_IF", Const, 0}, + {"IPV6_MULTICAST_LOOP", Const, 0}, + {"IPV6_NEXTHOP", Const, 0}, + {"IPV6_OPTIONS", Const, 1}, + {"IPV6_PATHMTU", Const, 0}, + {"IPV6_PIPEX", Const, 1}, + {"IPV6_PKTINFO", Const, 0}, + {"IPV6_PMTUDISC_DO", Const, 0}, + {"IPV6_PMTUDISC_DONT", Const, 0}, + {"IPV6_PMTUDISC_PROBE", Const, 0}, + {"IPV6_PMTUDISC_WANT", Const, 0}, + {"IPV6_PORTRANGE", Const, 0}, + {"IPV6_PORTRANGE_DEFAULT", Const, 0}, + {"IPV6_PORTRANGE_HIGH", Const, 0}, + {"IPV6_PORTRANGE_LOW", Const, 0}, + {"IPV6_PREFER_TEMPADDR", Const, 0}, + {"IPV6_RECVDSTOPTS", Const, 0}, + {"IPV6_RECVDSTPORT", Const, 3}, + {"IPV6_RECVERR", Const, 0}, + {"IPV6_RECVHOPLIMIT", Const, 0}, + {"IPV6_RECVHOPOPTS", Const, 0}, + {"IPV6_RECVPATHMTU", Const, 0}, + {"IPV6_RECVPKTINFO", Const, 0}, + {"IPV6_RECVRTHDR", Const, 0}, + {"IPV6_RECVTCLASS", Const, 0}, + {"IPV6_ROUTER_ALERT", Const, 0}, + {"IPV6_RTABLE", Const, 1}, + {"IPV6_RTHDR", Const, 0}, + {"IPV6_RTHDRDSTOPTS", Const, 0}, + {"IPV6_RTHDR_LOOSE", Const, 0}, + {"IPV6_RTHDR_STRICT", Const, 0}, + {"IPV6_RTHDR_TYPE_0", Const, 0}, + {"IPV6_RXDSTOPTS", Const, 0}, + {"IPV6_RXHOPOPTS", Const, 0}, + {"IPV6_SOCKOPT_RESERVED1", Const, 0}, + {"IPV6_TCLASS", Const, 0}, + {"IPV6_UNICAST_HOPS", Const, 0}, + {"IPV6_USE_MIN_MTU", Const, 0}, + {"IPV6_V6ONLY", Const, 0}, + {"IPV6_VERSION", Const, 0}, + {"IPV6_VERSION_MASK", Const, 0}, + {"IPV6_XFRM_POLICY", Const, 0}, + {"IP_ADD_MEMBERSHIP", Const, 0}, + {"IP_ADD_SOURCE_MEMBERSHIP", Const, 0}, + {"IP_AUTH_LEVEL", Const, 1}, + {"IP_BINDANY", Const, 0}, + {"IP_BLOCK_SOURCE", Const, 0}, + {"IP_BOUND_IF", Const, 0}, + {"IP_DEFAULT_MULTICAST_LOOP", Const, 0}, + {"IP_DEFAULT_MULTICAST_TTL", Const, 0}, + {"IP_DF", Const, 0}, + {"IP_DIVERTFL", Const, 3}, + {"IP_DONTFRAG", Const, 0}, + {"IP_DROP_MEMBERSHIP", Const, 0}, + {"IP_DROP_SOURCE_MEMBERSHIP", Const, 0}, + {"IP_DUMMYNET3", Const, 0}, + {"IP_DUMMYNET_CONFIGURE", Const, 0}, + {"IP_DUMMYNET_DEL", Const, 0}, + {"IP_DUMMYNET_FLUSH", Const, 0}, + {"IP_DUMMYNET_GET", Const, 0}, + {"IP_EF", Const, 1}, + {"IP_ERRORMTU", Const, 1}, + {"IP_ESP_NETWORK_LEVEL", Const, 1}, + {"IP_ESP_TRANS_LEVEL", Const, 1}, + {"IP_FAITH", Const, 0}, + {"IP_FREEBIND", Const, 0}, + {"IP_FW3", Const, 0}, + {"IP_FW_ADD", Const, 0}, + {"IP_FW_DEL", Const, 0}, + {"IP_FW_FLUSH", Const, 0}, + {"IP_FW_GET", Const, 0}, + {"IP_FW_NAT_CFG", Const, 0}, + {"IP_FW_NAT_DEL", Const, 0}, + {"IP_FW_NAT_GET_CONFIG", Const, 0}, + {"IP_FW_NAT_GET_LOG", Const, 0}, + {"IP_FW_RESETLOG", Const, 0}, + {"IP_FW_TABLE_ADD", Const, 0}, + {"IP_FW_TABLE_DEL", Const, 0}, + {"IP_FW_TABLE_FLUSH", Const, 0}, + {"IP_FW_TABLE_GETSIZE", Const, 0}, + {"IP_FW_TABLE_LIST", Const, 0}, + {"IP_FW_ZERO", Const, 0}, + {"IP_HDRINCL", Const, 0}, + {"IP_IPCOMP_LEVEL", Const, 1}, + {"IP_IPSECFLOWINFO", Const, 1}, + {"IP_IPSEC_LOCAL_AUTH", Const, 1}, + {"IP_IPSEC_LOCAL_CRED", Const, 1}, + {"IP_IPSEC_LOCAL_ID", Const, 1}, + {"IP_IPSEC_POLICY", Const, 0}, + {"IP_IPSEC_REMOTE_AUTH", Const, 1}, + {"IP_IPSEC_REMOTE_CRED", Const, 1}, + {"IP_IPSEC_REMOTE_ID", Const, 1}, + {"IP_MAXPACKET", Const, 0}, + {"IP_MAX_GROUP_SRC_FILTER", Const, 0}, + {"IP_MAX_MEMBERSHIPS", Const, 0}, + {"IP_MAX_SOCK_MUTE_FILTER", Const, 0}, + {"IP_MAX_SOCK_SRC_FILTER", Const, 0}, + {"IP_MAX_SOURCE_FILTER", Const, 0}, + {"IP_MF", Const, 0}, + {"IP_MINFRAGSIZE", Const, 1}, + {"IP_MINTTL", Const, 0}, + {"IP_MIN_MEMBERSHIPS", Const, 0}, + {"IP_MSFILTER", Const, 0}, + {"IP_MSS", Const, 0}, + {"IP_MTU", Const, 0}, + {"IP_MTU_DISCOVER", Const, 0}, + {"IP_MULTICAST_IF", Const, 0}, + {"IP_MULTICAST_IFINDEX", Const, 0}, + {"IP_MULTICAST_LOOP", Const, 0}, + {"IP_MULTICAST_TTL", Const, 0}, + {"IP_MULTICAST_VIF", Const, 0}, + {"IP_NAT__XXX", Const, 0}, + {"IP_OFFMASK", Const, 0}, + {"IP_OLD_FW_ADD", Const, 0}, + {"IP_OLD_FW_DEL", Const, 0}, + {"IP_OLD_FW_FLUSH", Const, 0}, + {"IP_OLD_FW_GET", Const, 0}, + {"IP_OLD_FW_RESETLOG", Const, 0}, + {"IP_OLD_FW_ZERO", Const, 0}, + {"IP_ONESBCAST", Const, 0}, + {"IP_OPTIONS", Const, 0}, + {"IP_ORIGDSTADDR", Const, 0}, + {"IP_PASSSEC", Const, 0}, + {"IP_PIPEX", Const, 1}, + {"IP_PKTINFO", Const, 0}, + {"IP_PKTOPTIONS", Const, 0}, + {"IP_PMTUDISC", Const, 0}, + {"IP_PMTUDISC_DO", Const, 0}, + {"IP_PMTUDISC_DONT", Const, 0}, + {"IP_PMTUDISC_PROBE", Const, 0}, + {"IP_PMTUDISC_WANT", Const, 0}, + {"IP_PORTRANGE", Const, 0}, + {"IP_PORTRANGE_DEFAULT", Const, 0}, + {"IP_PORTRANGE_HIGH", Const, 0}, + {"IP_PORTRANGE_LOW", Const, 0}, + {"IP_RECVDSTADDR", Const, 0}, + {"IP_RECVDSTPORT", Const, 1}, + {"IP_RECVERR", Const, 0}, + {"IP_RECVIF", Const, 0}, + {"IP_RECVOPTS", Const, 0}, + {"IP_RECVORIGDSTADDR", Const, 0}, + {"IP_RECVPKTINFO", Const, 0}, + {"IP_RECVRETOPTS", Const, 0}, + {"IP_RECVRTABLE", Const, 1}, + {"IP_RECVTOS", Const, 0}, + {"IP_RECVTTL", Const, 0}, + {"IP_RETOPTS", Const, 0}, + {"IP_RF", Const, 0}, + {"IP_ROUTER_ALERT", Const, 0}, + {"IP_RSVP_OFF", Const, 0}, + {"IP_RSVP_ON", Const, 0}, + {"IP_RSVP_VIF_OFF", Const, 0}, + {"IP_RSVP_VIF_ON", Const, 0}, + {"IP_RTABLE", Const, 1}, + {"IP_SENDSRCADDR", Const, 0}, + {"IP_STRIPHDR", Const, 0}, + {"IP_TOS", Const, 0}, + {"IP_TRAFFIC_MGT_BACKGROUND", Const, 0}, + {"IP_TRANSPARENT", Const, 0}, + {"IP_TTL", Const, 0}, + {"IP_UNBLOCK_SOURCE", Const, 0}, + {"IP_XFRM_POLICY", Const, 0}, + {"IPv6MTUInfo", Type, 2}, + {"IPv6MTUInfo.Addr", Field, 2}, + {"IPv6MTUInfo.Mtu", Field, 2}, + {"IPv6Mreq", Type, 0}, + {"IPv6Mreq.Interface", Field, 0}, + {"IPv6Mreq.Multiaddr", Field, 0}, + {"ISIG", Const, 0}, + {"ISTRIP", Const, 0}, + {"IUCLC", Const, 0}, + {"IUTF8", Const, 0}, + {"IXANY", Const, 0}, + {"IXOFF", Const, 0}, + {"IXON", Const, 0}, + {"IfAddrmsg", Type, 0}, + {"IfAddrmsg.Family", Field, 0}, + {"IfAddrmsg.Flags", Field, 0}, + {"IfAddrmsg.Index", Field, 0}, + {"IfAddrmsg.Prefixlen", Field, 0}, + {"IfAddrmsg.Scope", Field, 0}, + {"IfAnnounceMsghdr", Type, 1}, + {"IfAnnounceMsghdr.Hdrlen", Field, 2}, + {"IfAnnounceMsghdr.Index", Field, 1}, + {"IfAnnounceMsghdr.Msglen", Field, 1}, + {"IfAnnounceMsghdr.Name", Field, 1}, + {"IfAnnounceMsghdr.Type", Field, 1}, + {"IfAnnounceMsghdr.Version", Field, 1}, + {"IfAnnounceMsghdr.What", Field, 1}, + {"IfData", Type, 0}, + {"IfData.Addrlen", Field, 0}, + {"IfData.Baudrate", Field, 0}, + {"IfData.Capabilities", Field, 2}, + {"IfData.Collisions", Field, 0}, + {"IfData.Datalen", Field, 0}, + {"IfData.Epoch", Field, 0}, + {"IfData.Hdrlen", Field, 0}, + {"IfData.Hwassist", Field, 0}, + {"IfData.Ibytes", Field, 0}, + {"IfData.Ierrors", Field, 0}, + {"IfData.Imcasts", Field, 0}, + {"IfData.Ipackets", Field, 0}, + {"IfData.Iqdrops", Field, 0}, + {"IfData.Lastchange", Field, 0}, + {"IfData.Link_state", Field, 0}, + {"IfData.Mclpool", Field, 2}, + {"IfData.Metric", Field, 0}, + {"IfData.Mtu", Field, 0}, + {"IfData.Noproto", Field, 0}, + {"IfData.Obytes", Field, 0}, + {"IfData.Oerrors", Field, 0}, + {"IfData.Omcasts", Field, 0}, + {"IfData.Opackets", Field, 0}, + {"IfData.Pad", Field, 2}, + {"IfData.Pad_cgo_0", Field, 2}, + {"IfData.Pad_cgo_1", Field, 2}, + {"IfData.Physical", Field, 0}, + {"IfData.Recvquota", Field, 0}, + {"IfData.Recvtiming", Field, 0}, + {"IfData.Reserved1", Field, 0}, + {"IfData.Reserved2", Field, 0}, + {"IfData.Spare_char1", Field, 0}, + {"IfData.Spare_char2", Field, 0}, + {"IfData.Type", Field, 0}, + {"IfData.Typelen", Field, 0}, + {"IfData.Unused1", Field, 0}, + {"IfData.Unused2", Field, 0}, + {"IfData.Xmitquota", Field, 0}, + {"IfData.Xmittiming", Field, 0}, + {"IfInfomsg", Type, 0}, + {"IfInfomsg.Change", Field, 0}, + {"IfInfomsg.Family", Field, 0}, + {"IfInfomsg.Flags", Field, 0}, + {"IfInfomsg.Index", Field, 0}, + {"IfInfomsg.Type", Field, 0}, + {"IfInfomsg.X__ifi_pad", Field, 0}, + {"IfMsghdr", Type, 0}, + {"IfMsghdr.Addrs", Field, 0}, + {"IfMsghdr.Data", Field, 0}, + {"IfMsghdr.Flags", Field, 0}, + {"IfMsghdr.Hdrlen", Field, 2}, + {"IfMsghdr.Index", Field, 0}, + {"IfMsghdr.Msglen", Field, 0}, + {"IfMsghdr.Pad1", Field, 2}, + {"IfMsghdr.Pad2", Field, 2}, + {"IfMsghdr.Pad_cgo_0", Field, 0}, + {"IfMsghdr.Pad_cgo_1", Field, 2}, + {"IfMsghdr.Tableid", Field, 2}, + {"IfMsghdr.Type", Field, 0}, + {"IfMsghdr.Version", Field, 0}, + {"IfMsghdr.Xflags", Field, 2}, + {"IfaMsghdr", Type, 0}, + {"IfaMsghdr.Addrs", Field, 0}, + {"IfaMsghdr.Flags", Field, 0}, + {"IfaMsghdr.Hdrlen", Field, 2}, + {"IfaMsghdr.Index", Field, 0}, + {"IfaMsghdr.Metric", Field, 0}, + {"IfaMsghdr.Msglen", Field, 0}, + {"IfaMsghdr.Pad1", Field, 2}, + {"IfaMsghdr.Pad2", Field, 2}, + {"IfaMsghdr.Pad_cgo_0", Field, 0}, + {"IfaMsghdr.Tableid", Field, 2}, + {"IfaMsghdr.Type", Field, 0}, + {"IfaMsghdr.Version", Field, 0}, + {"IfmaMsghdr", Type, 0}, + {"IfmaMsghdr.Addrs", Field, 0}, + {"IfmaMsghdr.Flags", Field, 0}, + {"IfmaMsghdr.Index", Field, 0}, + {"IfmaMsghdr.Msglen", Field, 0}, + {"IfmaMsghdr.Pad_cgo_0", Field, 0}, + {"IfmaMsghdr.Type", Field, 0}, + {"IfmaMsghdr.Version", Field, 0}, + {"IfmaMsghdr2", Type, 0}, + {"IfmaMsghdr2.Addrs", Field, 0}, + {"IfmaMsghdr2.Flags", Field, 0}, + {"IfmaMsghdr2.Index", Field, 0}, + {"IfmaMsghdr2.Msglen", Field, 0}, + {"IfmaMsghdr2.Pad_cgo_0", Field, 0}, + {"IfmaMsghdr2.Refcount", Field, 0}, + {"IfmaMsghdr2.Type", Field, 0}, + {"IfmaMsghdr2.Version", Field, 0}, + {"ImplementsGetwd", Const, 0}, + {"Inet4Pktinfo", Type, 0}, + {"Inet4Pktinfo.Addr", Field, 0}, + {"Inet4Pktinfo.Ifindex", Field, 0}, + {"Inet4Pktinfo.Spec_dst", Field, 0}, + {"Inet6Pktinfo", Type, 0}, + {"Inet6Pktinfo.Addr", Field, 0}, + {"Inet6Pktinfo.Ifindex", Field, 0}, + {"InotifyAddWatch", Func, 0}, + {"InotifyEvent", Type, 0}, + {"InotifyEvent.Cookie", Field, 0}, + {"InotifyEvent.Len", Field, 0}, + {"InotifyEvent.Mask", Field, 0}, + {"InotifyEvent.Name", Field, 0}, + {"InotifyEvent.Wd", Field, 0}, + {"InotifyInit", Func, 0}, + {"InotifyInit1", Func, 0}, + {"InotifyRmWatch", Func, 0}, + {"InterfaceAddrMessage", Type, 0}, + {"InterfaceAddrMessage.Data", Field, 0}, + {"InterfaceAddrMessage.Header", Field, 0}, + {"InterfaceAnnounceMessage", Type, 1}, + {"InterfaceAnnounceMessage.Header", Field, 1}, + {"InterfaceInfo", Type, 0}, + {"InterfaceInfo.Address", Field, 0}, + {"InterfaceInfo.BroadcastAddress", Field, 0}, + {"InterfaceInfo.Flags", Field, 0}, + {"InterfaceInfo.Netmask", Field, 0}, + {"InterfaceMessage", Type, 0}, + {"InterfaceMessage.Data", Field, 0}, + {"InterfaceMessage.Header", Field, 0}, + {"InterfaceMulticastAddrMessage", Type, 0}, + {"InterfaceMulticastAddrMessage.Data", Field, 0}, + {"InterfaceMulticastAddrMessage.Header", Field, 0}, + {"InvalidHandle", Const, 0}, + {"Ioperm", Func, 0}, + {"Iopl", Func, 0}, + {"Iovec", Type, 0}, + {"Iovec.Base", Field, 0}, + {"Iovec.Len", Field, 0}, + {"IpAdapterInfo", Type, 0}, + {"IpAdapterInfo.AdapterName", Field, 0}, + {"IpAdapterInfo.Address", Field, 0}, + {"IpAdapterInfo.AddressLength", Field, 0}, + {"IpAdapterInfo.ComboIndex", Field, 0}, + {"IpAdapterInfo.CurrentIpAddress", Field, 0}, + {"IpAdapterInfo.Description", Field, 0}, + {"IpAdapterInfo.DhcpEnabled", Field, 0}, + {"IpAdapterInfo.DhcpServer", Field, 0}, + {"IpAdapterInfo.GatewayList", Field, 0}, + {"IpAdapterInfo.HaveWins", Field, 0}, + {"IpAdapterInfo.Index", Field, 0}, + {"IpAdapterInfo.IpAddressList", Field, 0}, + {"IpAdapterInfo.LeaseExpires", Field, 0}, + {"IpAdapterInfo.LeaseObtained", Field, 0}, + {"IpAdapterInfo.Next", Field, 0}, + {"IpAdapterInfo.PrimaryWinsServer", Field, 0}, + {"IpAdapterInfo.SecondaryWinsServer", Field, 0}, + {"IpAdapterInfo.Type", Field, 0}, + {"IpAddrString", Type, 0}, + {"IpAddrString.Context", Field, 0}, + {"IpAddrString.IpAddress", Field, 0}, + {"IpAddrString.IpMask", Field, 0}, + {"IpAddrString.Next", Field, 0}, + {"IpAddressString", Type, 0}, + {"IpAddressString.String", Field, 0}, + {"IpMaskString", Type, 0}, + {"IpMaskString.String", Field, 2}, + {"Issetugid", Func, 0}, + {"KEY_ALL_ACCESS", Const, 0}, + {"KEY_CREATE_LINK", Const, 0}, + {"KEY_CREATE_SUB_KEY", Const, 0}, + {"KEY_ENUMERATE_SUB_KEYS", Const, 0}, + {"KEY_EXECUTE", Const, 0}, + {"KEY_NOTIFY", Const, 0}, + {"KEY_QUERY_VALUE", Const, 0}, + {"KEY_READ", Const, 0}, + {"KEY_SET_VALUE", Const, 0}, + {"KEY_WOW64_32KEY", Const, 0}, + {"KEY_WOW64_64KEY", Const, 0}, + {"KEY_WRITE", Const, 0}, + {"Kevent", Func, 0}, + {"Kevent_t", Type, 0}, + {"Kevent_t.Data", Field, 0}, + {"Kevent_t.Fflags", Field, 0}, + {"Kevent_t.Filter", Field, 0}, + {"Kevent_t.Flags", Field, 0}, + {"Kevent_t.Ident", Field, 0}, + {"Kevent_t.Pad_cgo_0", Field, 2}, + {"Kevent_t.Udata", Field, 0}, + {"Kill", Func, 0}, + {"Klogctl", Func, 0}, + {"Kqueue", Func, 0}, + {"LANG_ENGLISH", Const, 0}, + {"LAYERED_PROTOCOL", Const, 2}, + {"LCNT_OVERLOAD_FLUSH", Const, 1}, + {"LINUX_REBOOT_CMD_CAD_OFF", Const, 0}, + {"LINUX_REBOOT_CMD_CAD_ON", Const, 0}, + {"LINUX_REBOOT_CMD_HALT", Const, 0}, + {"LINUX_REBOOT_CMD_KEXEC", Const, 0}, + {"LINUX_REBOOT_CMD_POWER_OFF", Const, 0}, + {"LINUX_REBOOT_CMD_RESTART", Const, 0}, + {"LINUX_REBOOT_CMD_RESTART2", Const, 0}, + {"LINUX_REBOOT_CMD_SW_SUSPEND", Const, 0}, + {"LINUX_REBOOT_MAGIC1", Const, 0}, + {"LINUX_REBOOT_MAGIC2", Const, 0}, + {"LOCK_EX", Const, 0}, + {"LOCK_NB", Const, 0}, + {"LOCK_SH", Const, 0}, + {"LOCK_UN", Const, 0}, + {"LazyDLL", Type, 0}, + {"LazyDLL.Name", Field, 0}, + {"LazyProc", Type, 0}, + {"LazyProc.Name", Field, 0}, + {"Lchown", Func, 0}, + {"Linger", Type, 0}, + {"Linger.Linger", Field, 0}, + {"Linger.Onoff", Field, 0}, + {"Link", Func, 0}, + {"Listen", Func, 0}, + {"Listxattr", Func, 1}, + {"LoadCancelIoEx", Func, 1}, + {"LoadConnectEx", Func, 1}, + {"LoadCreateSymbolicLink", Func, 4}, + {"LoadDLL", Func, 0}, + {"LoadGetAddrInfo", Func, 1}, + {"LoadLibrary", Func, 0}, + {"LoadSetFileCompletionNotificationModes", Func, 2}, + {"LocalFree", Func, 0}, + {"Log2phys_t", Type, 0}, + {"Log2phys_t.Contigbytes", Field, 0}, + {"Log2phys_t.Devoffset", Field, 0}, + {"Log2phys_t.Flags", Field, 0}, + {"LookupAccountName", Func, 0}, + {"LookupAccountSid", Func, 0}, + {"LookupSID", Func, 0}, + {"LsfJump", Func, 0}, + {"LsfSocket", Func, 0}, + {"LsfStmt", Func, 0}, + {"Lstat", Func, 0}, + {"MADV_AUTOSYNC", Const, 1}, + {"MADV_CAN_REUSE", Const, 0}, + {"MADV_CORE", Const, 1}, + {"MADV_DOFORK", Const, 0}, + {"MADV_DONTFORK", Const, 0}, + {"MADV_DONTNEED", Const, 0}, + {"MADV_FREE", Const, 0}, + {"MADV_FREE_REUSABLE", Const, 0}, + {"MADV_FREE_REUSE", Const, 0}, + {"MADV_HUGEPAGE", Const, 0}, + {"MADV_HWPOISON", Const, 0}, + {"MADV_MERGEABLE", Const, 0}, + {"MADV_NOCORE", Const, 1}, + {"MADV_NOHUGEPAGE", Const, 0}, + {"MADV_NORMAL", Const, 0}, + {"MADV_NOSYNC", Const, 1}, + {"MADV_PROTECT", Const, 1}, + {"MADV_RANDOM", Const, 0}, + {"MADV_REMOVE", Const, 0}, + {"MADV_SEQUENTIAL", Const, 0}, + {"MADV_SPACEAVAIL", Const, 3}, + {"MADV_UNMERGEABLE", Const, 0}, + {"MADV_WILLNEED", Const, 0}, + {"MADV_ZERO_WIRED_PAGES", Const, 0}, + {"MAP_32BIT", Const, 0}, + {"MAP_ALIGNED_SUPER", Const, 3}, + {"MAP_ALIGNMENT_16MB", Const, 3}, + {"MAP_ALIGNMENT_1TB", Const, 3}, + {"MAP_ALIGNMENT_256TB", Const, 3}, + {"MAP_ALIGNMENT_4GB", Const, 3}, + {"MAP_ALIGNMENT_64KB", Const, 3}, + {"MAP_ALIGNMENT_64PB", Const, 3}, + {"MAP_ALIGNMENT_MASK", Const, 3}, + {"MAP_ALIGNMENT_SHIFT", Const, 3}, + {"MAP_ANON", Const, 0}, + {"MAP_ANONYMOUS", Const, 0}, + {"MAP_COPY", Const, 0}, + {"MAP_DENYWRITE", Const, 0}, + {"MAP_EXECUTABLE", Const, 0}, + {"MAP_FILE", Const, 0}, + {"MAP_FIXED", Const, 0}, + {"MAP_FLAGMASK", Const, 3}, + {"MAP_GROWSDOWN", Const, 0}, + {"MAP_HASSEMAPHORE", Const, 0}, + {"MAP_HUGETLB", Const, 0}, + {"MAP_INHERIT", Const, 3}, + {"MAP_INHERIT_COPY", Const, 3}, + {"MAP_INHERIT_DEFAULT", Const, 3}, + {"MAP_INHERIT_DONATE_COPY", Const, 3}, + {"MAP_INHERIT_NONE", Const, 3}, + {"MAP_INHERIT_SHARE", Const, 3}, + {"MAP_JIT", Const, 0}, + {"MAP_LOCKED", Const, 0}, + {"MAP_NOCACHE", Const, 0}, + {"MAP_NOCORE", Const, 1}, + {"MAP_NOEXTEND", Const, 0}, + {"MAP_NONBLOCK", Const, 0}, + {"MAP_NORESERVE", Const, 0}, + {"MAP_NOSYNC", Const, 1}, + {"MAP_POPULATE", Const, 0}, + {"MAP_PREFAULT_READ", Const, 1}, + {"MAP_PRIVATE", Const, 0}, + {"MAP_RENAME", Const, 0}, + {"MAP_RESERVED0080", Const, 0}, + {"MAP_RESERVED0100", Const, 1}, + {"MAP_SHARED", Const, 0}, + {"MAP_STACK", Const, 0}, + {"MAP_TRYFIXED", Const, 3}, + {"MAP_TYPE", Const, 0}, + {"MAP_WIRED", Const, 3}, + {"MAXIMUM_REPARSE_DATA_BUFFER_SIZE", Const, 4}, + {"MAXLEN_IFDESCR", Const, 0}, + {"MAXLEN_PHYSADDR", Const, 0}, + {"MAX_ADAPTER_ADDRESS_LENGTH", Const, 0}, + {"MAX_ADAPTER_DESCRIPTION_LENGTH", Const, 0}, + {"MAX_ADAPTER_NAME_LENGTH", Const, 0}, + {"MAX_COMPUTERNAME_LENGTH", Const, 0}, + {"MAX_INTERFACE_NAME_LEN", Const, 0}, + {"MAX_LONG_PATH", Const, 0}, + {"MAX_PATH", Const, 0}, + {"MAX_PROTOCOL_CHAIN", Const, 2}, + {"MCL_CURRENT", Const, 0}, + {"MCL_FUTURE", Const, 0}, + {"MNT_DETACH", Const, 0}, + {"MNT_EXPIRE", Const, 0}, + {"MNT_FORCE", Const, 0}, + {"MSG_BCAST", Const, 1}, + {"MSG_CMSG_CLOEXEC", Const, 0}, + {"MSG_COMPAT", Const, 0}, + {"MSG_CONFIRM", Const, 0}, + {"MSG_CONTROLMBUF", Const, 1}, + {"MSG_CTRUNC", Const, 0}, + {"MSG_DONTROUTE", Const, 0}, + {"MSG_DONTWAIT", Const, 0}, + {"MSG_EOF", Const, 0}, + {"MSG_EOR", Const, 0}, + {"MSG_ERRQUEUE", Const, 0}, + {"MSG_FASTOPEN", Const, 1}, + {"MSG_FIN", Const, 0}, + {"MSG_FLUSH", Const, 0}, + {"MSG_HAVEMORE", Const, 0}, + {"MSG_HOLD", Const, 0}, + {"MSG_IOVUSRSPACE", Const, 1}, + {"MSG_LENUSRSPACE", Const, 1}, + {"MSG_MCAST", Const, 1}, + {"MSG_MORE", Const, 0}, + {"MSG_NAMEMBUF", Const, 1}, + {"MSG_NBIO", Const, 0}, + {"MSG_NEEDSA", Const, 0}, + {"MSG_NOSIGNAL", Const, 0}, + {"MSG_NOTIFICATION", Const, 0}, + {"MSG_OOB", Const, 0}, + {"MSG_PEEK", Const, 0}, + {"MSG_PROXY", Const, 0}, + {"MSG_RCVMORE", Const, 0}, + {"MSG_RST", Const, 0}, + {"MSG_SEND", Const, 0}, + {"MSG_SYN", Const, 0}, + {"MSG_TRUNC", Const, 0}, + {"MSG_TRYHARD", Const, 0}, + {"MSG_USERFLAGS", Const, 1}, + {"MSG_WAITALL", Const, 0}, + {"MSG_WAITFORONE", Const, 0}, + {"MSG_WAITSTREAM", Const, 0}, + {"MS_ACTIVE", Const, 0}, + {"MS_ASYNC", Const, 0}, + {"MS_BIND", Const, 0}, + {"MS_DEACTIVATE", Const, 0}, + {"MS_DIRSYNC", Const, 0}, + {"MS_INVALIDATE", Const, 0}, + {"MS_I_VERSION", Const, 0}, + {"MS_KERNMOUNT", Const, 0}, + {"MS_KILLPAGES", Const, 0}, + {"MS_MANDLOCK", Const, 0}, + {"MS_MGC_MSK", Const, 0}, + {"MS_MGC_VAL", Const, 0}, + {"MS_MOVE", Const, 0}, + {"MS_NOATIME", Const, 0}, + {"MS_NODEV", Const, 0}, + {"MS_NODIRATIME", Const, 0}, + {"MS_NOEXEC", Const, 0}, + {"MS_NOSUID", Const, 0}, + {"MS_NOUSER", Const, 0}, + {"MS_POSIXACL", Const, 0}, + {"MS_PRIVATE", Const, 0}, + {"MS_RDONLY", Const, 0}, + {"MS_REC", Const, 0}, + {"MS_RELATIME", Const, 0}, + {"MS_REMOUNT", Const, 0}, + {"MS_RMT_MASK", Const, 0}, + {"MS_SHARED", Const, 0}, + {"MS_SILENT", Const, 0}, + {"MS_SLAVE", Const, 0}, + {"MS_STRICTATIME", Const, 0}, + {"MS_SYNC", Const, 0}, + {"MS_SYNCHRONOUS", Const, 0}, + {"MS_UNBINDABLE", Const, 0}, + {"Madvise", Func, 0}, + {"MapViewOfFile", Func, 0}, + {"MaxTokenInfoClass", Const, 0}, + {"Mclpool", Type, 2}, + {"Mclpool.Alive", Field, 2}, + {"Mclpool.Cwm", Field, 2}, + {"Mclpool.Grown", Field, 2}, + {"Mclpool.Hwm", Field, 2}, + {"Mclpool.Lwm", Field, 2}, + {"MibIfRow", Type, 0}, + {"MibIfRow.AdminStatus", Field, 0}, + {"MibIfRow.Descr", Field, 0}, + {"MibIfRow.DescrLen", Field, 0}, + {"MibIfRow.InDiscards", Field, 0}, + {"MibIfRow.InErrors", Field, 0}, + {"MibIfRow.InNUcastPkts", Field, 0}, + {"MibIfRow.InOctets", Field, 0}, + {"MibIfRow.InUcastPkts", Field, 0}, + {"MibIfRow.InUnknownProtos", Field, 0}, + {"MibIfRow.Index", Field, 0}, + {"MibIfRow.LastChange", Field, 0}, + {"MibIfRow.Mtu", Field, 0}, + {"MibIfRow.Name", Field, 0}, + {"MibIfRow.OperStatus", Field, 0}, + {"MibIfRow.OutDiscards", Field, 0}, + {"MibIfRow.OutErrors", Field, 0}, + {"MibIfRow.OutNUcastPkts", Field, 0}, + {"MibIfRow.OutOctets", Field, 0}, + {"MibIfRow.OutQLen", Field, 0}, + {"MibIfRow.OutUcastPkts", Field, 0}, + {"MibIfRow.PhysAddr", Field, 0}, + {"MibIfRow.PhysAddrLen", Field, 0}, + {"MibIfRow.Speed", Field, 0}, + {"MibIfRow.Type", Field, 0}, + {"Mkdir", Func, 0}, + {"Mkdirat", Func, 0}, + {"Mkfifo", Func, 0}, + {"Mknod", Func, 0}, + {"Mknodat", Func, 0}, + {"Mlock", Func, 0}, + {"Mlockall", Func, 0}, + {"Mmap", Func, 0}, + {"Mount", Func, 0}, + {"MoveFile", Func, 0}, + {"Mprotect", Func, 0}, + {"Msghdr", Type, 0}, + {"Msghdr.Control", Field, 0}, + {"Msghdr.Controllen", Field, 0}, + {"Msghdr.Flags", Field, 0}, + {"Msghdr.Iov", Field, 0}, + {"Msghdr.Iovlen", Field, 0}, + {"Msghdr.Name", Field, 0}, + {"Msghdr.Namelen", Field, 0}, + {"Msghdr.Pad_cgo_0", Field, 0}, + {"Msghdr.Pad_cgo_1", Field, 0}, + {"Munlock", Func, 0}, + {"Munlockall", Func, 0}, + {"Munmap", Func, 0}, + {"MustLoadDLL", Func, 0}, + {"NAME_MAX", Const, 0}, + {"NETLINK_ADD_MEMBERSHIP", Const, 0}, + {"NETLINK_AUDIT", Const, 0}, + {"NETLINK_BROADCAST_ERROR", Const, 0}, + {"NETLINK_CONNECTOR", Const, 0}, + {"NETLINK_DNRTMSG", Const, 0}, + {"NETLINK_DROP_MEMBERSHIP", Const, 0}, + {"NETLINK_ECRYPTFS", Const, 0}, + {"NETLINK_FIB_LOOKUP", Const, 0}, + {"NETLINK_FIREWALL", Const, 0}, + {"NETLINK_GENERIC", Const, 0}, + {"NETLINK_INET_DIAG", Const, 0}, + {"NETLINK_IP6_FW", Const, 0}, + {"NETLINK_ISCSI", Const, 0}, + {"NETLINK_KOBJECT_UEVENT", Const, 0}, + {"NETLINK_NETFILTER", Const, 0}, + {"NETLINK_NFLOG", Const, 0}, + {"NETLINK_NO_ENOBUFS", Const, 0}, + {"NETLINK_PKTINFO", Const, 0}, + {"NETLINK_RDMA", Const, 0}, + {"NETLINK_ROUTE", Const, 0}, + {"NETLINK_SCSITRANSPORT", Const, 0}, + {"NETLINK_SELINUX", Const, 0}, + {"NETLINK_UNUSED", Const, 0}, + {"NETLINK_USERSOCK", Const, 0}, + {"NETLINK_XFRM", Const, 0}, + {"NET_RT_DUMP", Const, 0}, + {"NET_RT_DUMP2", Const, 0}, + {"NET_RT_FLAGS", Const, 0}, + {"NET_RT_IFLIST", Const, 0}, + {"NET_RT_IFLIST2", Const, 0}, + {"NET_RT_IFLISTL", Const, 1}, + {"NET_RT_IFMALIST", Const, 0}, + {"NET_RT_MAXID", Const, 0}, + {"NET_RT_OIFLIST", Const, 1}, + {"NET_RT_OOIFLIST", Const, 1}, + {"NET_RT_STAT", Const, 0}, + {"NET_RT_STATS", Const, 1}, + {"NET_RT_TABLE", Const, 1}, + {"NET_RT_TRASH", Const, 0}, + {"NLA_ALIGNTO", Const, 0}, + {"NLA_F_NESTED", Const, 0}, + {"NLA_F_NET_BYTEORDER", Const, 0}, + {"NLA_HDRLEN", Const, 0}, + {"NLMSG_ALIGNTO", Const, 0}, + {"NLMSG_DONE", Const, 0}, + {"NLMSG_ERROR", Const, 0}, + {"NLMSG_HDRLEN", Const, 0}, + {"NLMSG_MIN_TYPE", Const, 0}, + {"NLMSG_NOOP", Const, 0}, + {"NLMSG_OVERRUN", Const, 0}, + {"NLM_F_ACK", Const, 0}, + {"NLM_F_APPEND", Const, 0}, + {"NLM_F_ATOMIC", Const, 0}, + {"NLM_F_CREATE", Const, 0}, + {"NLM_F_DUMP", Const, 0}, + {"NLM_F_ECHO", Const, 0}, + {"NLM_F_EXCL", Const, 0}, + {"NLM_F_MATCH", Const, 0}, + {"NLM_F_MULTI", Const, 0}, + {"NLM_F_REPLACE", Const, 0}, + {"NLM_F_REQUEST", Const, 0}, + {"NLM_F_ROOT", Const, 0}, + {"NOFLSH", Const, 0}, + {"NOTE_ABSOLUTE", Const, 0}, + {"NOTE_ATTRIB", Const, 0}, + {"NOTE_BACKGROUND", Const, 16}, + {"NOTE_CHILD", Const, 0}, + {"NOTE_CRITICAL", Const, 16}, + {"NOTE_DELETE", Const, 0}, + {"NOTE_EOF", Const, 1}, + {"NOTE_EXEC", Const, 0}, + {"NOTE_EXIT", Const, 0}, + {"NOTE_EXITSTATUS", Const, 0}, + {"NOTE_EXIT_CSERROR", Const, 16}, + {"NOTE_EXIT_DECRYPTFAIL", Const, 16}, + {"NOTE_EXIT_DETAIL", Const, 16}, + {"NOTE_EXIT_DETAIL_MASK", Const, 16}, + {"NOTE_EXIT_MEMORY", Const, 16}, + {"NOTE_EXIT_REPARENTED", Const, 16}, + {"NOTE_EXTEND", Const, 0}, + {"NOTE_FFAND", Const, 0}, + {"NOTE_FFCOPY", Const, 0}, + {"NOTE_FFCTRLMASK", Const, 0}, + {"NOTE_FFLAGSMASK", Const, 0}, + {"NOTE_FFNOP", Const, 0}, + {"NOTE_FFOR", Const, 0}, + {"NOTE_FORK", Const, 0}, + {"NOTE_LEEWAY", Const, 16}, + {"NOTE_LINK", Const, 0}, + {"NOTE_LOWAT", Const, 0}, + {"NOTE_NONE", Const, 0}, + {"NOTE_NSECONDS", Const, 0}, + {"NOTE_PCTRLMASK", Const, 0}, + {"NOTE_PDATAMASK", Const, 0}, + {"NOTE_REAP", Const, 0}, + {"NOTE_RENAME", Const, 0}, + {"NOTE_RESOURCEEND", Const, 0}, + {"NOTE_REVOKE", Const, 0}, + {"NOTE_SECONDS", Const, 0}, + {"NOTE_SIGNAL", Const, 0}, + {"NOTE_TRACK", Const, 0}, + {"NOTE_TRACKERR", Const, 0}, + {"NOTE_TRIGGER", Const, 0}, + {"NOTE_TRUNCATE", Const, 1}, + {"NOTE_USECONDS", Const, 0}, + {"NOTE_VM_ERROR", Const, 0}, + {"NOTE_VM_PRESSURE", Const, 0}, + {"NOTE_VM_PRESSURE_SUDDEN_TERMINATE", Const, 0}, + {"NOTE_VM_PRESSURE_TERMINATE", Const, 0}, + {"NOTE_WRITE", Const, 0}, + {"NameCanonical", Const, 0}, + {"NameCanonicalEx", Const, 0}, + {"NameDisplay", Const, 0}, + {"NameDnsDomain", Const, 0}, + {"NameFullyQualifiedDN", Const, 0}, + {"NameSamCompatible", Const, 0}, + {"NameServicePrincipal", Const, 0}, + {"NameUniqueId", Const, 0}, + {"NameUnknown", Const, 0}, + {"NameUserPrincipal", Const, 0}, + {"Nanosleep", Func, 0}, + {"NetApiBufferFree", Func, 0}, + {"NetGetJoinInformation", Func, 2}, + {"NetSetupDomainName", Const, 2}, + {"NetSetupUnjoined", Const, 2}, + {"NetSetupUnknownStatus", Const, 2}, + {"NetSetupWorkgroupName", Const, 2}, + {"NetUserGetInfo", Func, 0}, + {"NetlinkMessage", Type, 0}, + {"NetlinkMessage.Data", Field, 0}, + {"NetlinkMessage.Header", Field, 0}, + {"NetlinkRIB", Func, 0}, + {"NetlinkRouteAttr", Type, 0}, + {"NetlinkRouteAttr.Attr", Field, 0}, + {"NetlinkRouteAttr.Value", Field, 0}, + {"NetlinkRouteRequest", Type, 0}, + {"NetlinkRouteRequest.Data", Field, 0}, + {"NetlinkRouteRequest.Header", Field, 0}, + {"NewCallback", Func, 0}, + {"NewCallbackCDecl", Func, 3}, + {"NewLazyDLL", Func, 0}, + {"NlAttr", Type, 0}, + {"NlAttr.Len", Field, 0}, + {"NlAttr.Type", Field, 0}, + {"NlMsgerr", Type, 0}, + {"NlMsgerr.Error", Field, 0}, + {"NlMsgerr.Msg", Field, 0}, + {"NlMsghdr", Type, 0}, + {"NlMsghdr.Flags", Field, 0}, + {"NlMsghdr.Len", Field, 0}, + {"NlMsghdr.Pid", Field, 0}, + {"NlMsghdr.Seq", Field, 0}, + {"NlMsghdr.Type", Field, 0}, + {"NsecToFiletime", Func, 0}, + {"NsecToTimespec", Func, 0}, + {"NsecToTimeval", Func, 0}, + {"Ntohs", Func, 0}, + {"OCRNL", Const, 0}, + {"OFDEL", Const, 0}, + {"OFILL", Const, 0}, + {"OFIOGETBMAP", Const, 1}, + {"OID_PKIX_KP_SERVER_AUTH", Var, 0}, + {"OID_SERVER_GATED_CRYPTO", Var, 0}, + {"OID_SGC_NETSCAPE", Var, 0}, + {"OLCUC", Const, 0}, + {"ONLCR", Const, 0}, + {"ONLRET", Const, 0}, + {"ONOCR", Const, 0}, + {"ONOEOT", Const, 1}, + {"OPEN_ALWAYS", Const, 0}, + {"OPEN_EXISTING", Const, 0}, + {"OPOST", Const, 0}, + {"O_ACCMODE", Const, 0}, + {"O_ALERT", Const, 0}, + {"O_ALT_IO", Const, 1}, + {"O_APPEND", Const, 0}, + {"O_ASYNC", Const, 0}, + {"O_CLOEXEC", Const, 0}, + {"O_CREAT", Const, 0}, + {"O_DIRECT", Const, 0}, + {"O_DIRECTORY", Const, 0}, + {"O_DP_GETRAWENCRYPTED", Const, 16}, + {"O_DSYNC", Const, 0}, + {"O_EVTONLY", Const, 0}, + {"O_EXCL", Const, 0}, + {"O_EXEC", Const, 0}, + {"O_EXLOCK", Const, 0}, + {"O_FSYNC", Const, 0}, + {"O_LARGEFILE", Const, 0}, + {"O_NDELAY", Const, 0}, + {"O_NOATIME", Const, 0}, + {"O_NOCTTY", Const, 0}, + {"O_NOFOLLOW", Const, 0}, + {"O_NONBLOCK", Const, 0}, + {"O_NOSIGPIPE", Const, 1}, + {"O_POPUP", Const, 0}, + {"O_RDONLY", Const, 0}, + {"O_RDWR", Const, 0}, + {"O_RSYNC", Const, 0}, + {"O_SHLOCK", Const, 0}, + {"O_SYMLINK", Const, 0}, + {"O_SYNC", Const, 0}, + {"O_TRUNC", Const, 0}, + {"O_TTY_INIT", Const, 0}, + {"O_WRONLY", Const, 0}, + {"Open", Func, 0}, + {"OpenCurrentProcessToken", Func, 0}, + {"OpenProcess", Func, 0}, + {"OpenProcessToken", Func, 0}, + {"Openat", Func, 0}, + {"Overlapped", Type, 0}, + {"Overlapped.HEvent", Field, 0}, + {"Overlapped.Internal", Field, 0}, + {"Overlapped.InternalHigh", Field, 0}, + {"Overlapped.Offset", Field, 0}, + {"Overlapped.OffsetHigh", Field, 0}, + {"PACKET_ADD_MEMBERSHIP", Const, 0}, + {"PACKET_BROADCAST", Const, 0}, + {"PACKET_DROP_MEMBERSHIP", Const, 0}, + {"PACKET_FASTROUTE", Const, 0}, + {"PACKET_HOST", Const, 0}, + {"PACKET_LOOPBACK", Const, 0}, + {"PACKET_MR_ALLMULTI", Const, 0}, + {"PACKET_MR_MULTICAST", Const, 0}, + {"PACKET_MR_PROMISC", Const, 0}, + {"PACKET_MULTICAST", Const, 0}, + {"PACKET_OTHERHOST", Const, 0}, + {"PACKET_OUTGOING", Const, 0}, + {"PACKET_RECV_OUTPUT", Const, 0}, + {"PACKET_RX_RING", Const, 0}, + {"PACKET_STATISTICS", Const, 0}, + {"PAGE_EXECUTE_READ", Const, 0}, + {"PAGE_EXECUTE_READWRITE", Const, 0}, + {"PAGE_EXECUTE_WRITECOPY", Const, 0}, + {"PAGE_READONLY", Const, 0}, + {"PAGE_READWRITE", Const, 0}, + {"PAGE_WRITECOPY", Const, 0}, + {"PARENB", Const, 0}, + {"PARMRK", Const, 0}, + {"PARODD", Const, 0}, + {"PENDIN", Const, 0}, + {"PFL_HIDDEN", Const, 2}, + {"PFL_MATCHES_PROTOCOL_ZERO", Const, 2}, + {"PFL_MULTIPLE_PROTO_ENTRIES", Const, 2}, + {"PFL_NETWORKDIRECT_PROVIDER", Const, 2}, + {"PFL_RECOMMENDED_PROTO_ENTRY", Const, 2}, + {"PF_FLUSH", Const, 1}, + {"PKCS_7_ASN_ENCODING", Const, 0}, + {"PMC5_PIPELINE_FLUSH", Const, 1}, + {"PRIO_PGRP", Const, 2}, + {"PRIO_PROCESS", Const, 2}, + {"PRIO_USER", Const, 2}, + {"PRI_IOFLUSH", Const, 1}, + {"PROCESS_QUERY_INFORMATION", Const, 0}, + {"PROCESS_TERMINATE", Const, 2}, + {"PROT_EXEC", Const, 0}, + {"PROT_GROWSDOWN", Const, 0}, + {"PROT_GROWSUP", Const, 0}, + {"PROT_NONE", Const, 0}, + {"PROT_READ", Const, 0}, + {"PROT_WRITE", Const, 0}, + {"PROV_DH_SCHANNEL", Const, 0}, + {"PROV_DSS", Const, 0}, + {"PROV_DSS_DH", Const, 0}, + {"PROV_EC_ECDSA_FULL", Const, 0}, + {"PROV_EC_ECDSA_SIG", Const, 0}, + {"PROV_EC_ECNRA_FULL", Const, 0}, + {"PROV_EC_ECNRA_SIG", Const, 0}, + {"PROV_FORTEZZA", Const, 0}, + {"PROV_INTEL_SEC", Const, 0}, + {"PROV_MS_EXCHANGE", Const, 0}, + {"PROV_REPLACE_OWF", Const, 0}, + {"PROV_RNG", Const, 0}, + {"PROV_RSA_AES", Const, 0}, + {"PROV_RSA_FULL", Const, 0}, + {"PROV_RSA_SCHANNEL", Const, 0}, + {"PROV_RSA_SIG", Const, 0}, + {"PROV_SPYRUS_LYNKS", Const, 0}, + {"PROV_SSL", Const, 0}, + {"PR_CAPBSET_DROP", Const, 0}, + {"PR_CAPBSET_READ", Const, 0}, + {"PR_CLEAR_SECCOMP_FILTER", Const, 0}, + {"PR_ENDIAN_BIG", Const, 0}, + {"PR_ENDIAN_LITTLE", Const, 0}, + {"PR_ENDIAN_PPC_LITTLE", Const, 0}, + {"PR_FPEMU_NOPRINT", Const, 0}, + {"PR_FPEMU_SIGFPE", Const, 0}, + {"PR_FP_EXC_ASYNC", Const, 0}, + {"PR_FP_EXC_DISABLED", Const, 0}, + {"PR_FP_EXC_DIV", Const, 0}, + {"PR_FP_EXC_INV", Const, 0}, + {"PR_FP_EXC_NONRECOV", Const, 0}, + {"PR_FP_EXC_OVF", Const, 0}, + {"PR_FP_EXC_PRECISE", Const, 0}, + {"PR_FP_EXC_RES", Const, 0}, + {"PR_FP_EXC_SW_ENABLE", Const, 0}, + {"PR_FP_EXC_UND", Const, 0}, + {"PR_GET_DUMPABLE", Const, 0}, + {"PR_GET_ENDIAN", Const, 0}, + {"PR_GET_FPEMU", Const, 0}, + {"PR_GET_FPEXC", Const, 0}, + {"PR_GET_KEEPCAPS", Const, 0}, + {"PR_GET_NAME", Const, 0}, + {"PR_GET_PDEATHSIG", Const, 0}, + {"PR_GET_SECCOMP", Const, 0}, + {"PR_GET_SECCOMP_FILTER", Const, 0}, + {"PR_GET_SECUREBITS", Const, 0}, + {"PR_GET_TIMERSLACK", Const, 0}, + {"PR_GET_TIMING", Const, 0}, + {"PR_GET_TSC", Const, 0}, + {"PR_GET_UNALIGN", Const, 0}, + {"PR_MCE_KILL", Const, 0}, + {"PR_MCE_KILL_CLEAR", Const, 0}, + {"PR_MCE_KILL_DEFAULT", Const, 0}, + {"PR_MCE_KILL_EARLY", Const, 0}, + {"PR_MCE_KILL_GET", Const, 0}, + {"PR_MCE_KILL_LATE", Const, 0}, + {"PR_MCE_KILL_SET", Const, 0}, + {"PR_SECCOMP_FILTER_EVENT", Const, 0}, + {"PR_SECCOMP_FILTER_SYSCALL", Const, 0}, + {"PR_SET_DUMPABLE", Const, 0}, + {"PR_SET_ENDIAN", Const, 0}, + {"PR_SET_FPEMU", Const, 0}, + {"PR_SET_FPEXC", Const, 0}, + {"PR_SET_KEEPCAPS", Const, 0}, + {"PR_SET_NAME", Const, 0}, + {"PR_SET_PDEATHSIG", Const, 0}, + {"PR_SET_PTRACER", Const, 0}, + {"PR_SET_SECCOMP", Const, 0}, + {"PR_SET_SECCOMP_FILTER", Const, 0}, + {"PR_SET_SECUREBITS", Const, 0}, + {"PR_SET_TIMERSLACK", Const, 0}, + {"PR_SET_TIMING", Const, 0}, + {"PR_SET_TSC", Const, 0}, + {"PR_SET_UNALIGN", Const, 0}, + {"PR_TASK_PERF_EVENTS_DISABLE", Const, 0}, + {"PR_TASK_PERF_EVENTS_ENABLE", Const, 0}, + {"PR_TIMING_STATISTICAL", Const, 0}, + {"PR_TIMING_TIMESTAMP", Const, 0}, + {"PR_TSC_ENABLE", Const, 0}, + {"PR_TSC_SIGSEGV", Const, 0}, + {"PR_UNALIGN_NOPRINT", Const, 0}, + {"PR_UNALIGN_SIGBUS", Const, 0}, + {"PTRACE_ARCH_PRCTL", Const, 0}, + {"PTRACE_ATTACH", Const, 0}, + {"PTRACE_CONT", Const, 0}, + {"PTRACE_DETACH", Const, 0}, + {"PTRACE_EVENT_CLONE", Const, 0}, + {"PTRACE_EVENT_EXEC", Const, 0}, + {"PTRACE_EVENT_EXIT", Const, 0}, + {"PTRACE_EVENT_FORK", Const, 0}, + {"PTRACE_EVENT_VFORK", Const, 0}, + {"PTRACE_EVENT_VFORK_DONE", Const, 0}, + {"PTRACE_GETCRUNCHREGS", Const, 0}, + {"PTRACE_GETEVENTMSG", Const, 0}, + {"PTRACE_GETFPREGS", Const, 0}, + {"PTRACE_GETFPXREGS", Const, 0}, + {"PTRACE_GETHBPREGS", Const, 0}, + {"PTRACE_GETREGS", Const, 0}, + {"PTRACE_GETREGSET", Const, 0}, + {"PTRACE_GETSIGINFO", Const, 0}, + {"PTRACE_GETVFPREGS", Const, 0}, + {"PTRACE_GETWMMXREGS", Const, 0}, + {"PTRACE_GET_THREAD_AREA", Const, 0}, + {"PTRACE_KILL", Const, 0}, + {"PTRACE_OLDSETOPTIONS", Const, 0}, + {"PTRACE_O_MASK", Const, 0}, + {"PTRACE_O_TRACECLONE", Const, 0}, + {"PTRACE_O_TRACEEXEC", Const, 0}, + {"PTRACE_O_TRACEEXIT", Const, 0}, + {"PTRACE_O_TRACEFORK", Const, 0}, + {"PTRACE_O_TRACESYSGOOD", Const, 0}, + {"PTRACE_O_TRACEVFORK", Const, 0}, + {"PTRACE_O_TRACEVFORKDONE", Const, 0}, + {"PTRACE_PEEKDATA", Const, 0}, + {"PTRACE_PEEKTEXT", Const, 0}, + {"PTRACE_PEEKUSR", Const, 0}, + {"PTRACE_POKEDATA", Const, 0}, + {"PTRACE_POKETEXT", Const, 0}, + {"PTRACE_POKEUSR", Const, 0}, + {"PTRACE_SETCRUNCHREGS", Const, 0}, + {"PTRACE_SETFPREGS", Const, 0}, + {"PTRACE_SETFPXREGS", Const, 0}, + {"PTRACE_SETHBPREGS", Const, 0}, + {"PTRACE_SETOPTIONS", Const, 0}, + {"PTRACE_SETREGS", Const, 0}, + {"PTRACE_SETREGSET", Const, 0}, + {"PTRACE_SETSIGINFO", Const, 0}, + {"PTRACE_SETVFPREGS", Const, 0}, + {"PTRACE_SETWMMXREGS", Const, 0}, + {"PTRACE_SET_SYSCALL", Const, 0}, + {"PTRACE_SET_THREAD_AREA", Const, 0}, + {"PTRACE_SINGLEBLOCK", Const, 0}, + {"PTRACE_SINGLESTEP", Const, 0}, + {"PTRACE_SYSCALL", Const, 0}, + {"PTRACE_SYSEMU", Const, 0}, + {"PTRACE_SYSEMU_SINGLESTEP", Const, 0}, + {"PTRACE_TRACEME", Const, 0}, + {"PT_ATTACH", Const, 0}, + {"PT_ATTACHEXC", Const, 0}, + {"PT_CONTINUE", Const, 0}, + {"PT_DATA_ADDR", Const, 0}, + {"PT_DENY_ATTACH", Const, 0}, + {"PT_DETACH", Const, 0}, + {"PT_FIRSTMACH", Const, 0}, + {"PT_FORCEQUOTA", Const, 0}, + {"PT_KILL", Const, 0}, + {"PT_MASK", Const, 1}, + {"PT_READ_D", Const, 0}, + {"PT_READ_I", Const, 0}, + {"PT_READ_U", Const, 0}, + {"PT_SIGEXC", Const, 0}, + {"PT_STEP", Const, 0}, + {"PT_TEXT_ADDR", Const, 0}, + {"PT_TEXT_END_ADDR", Const, 0}, + {"PT_THUPDATE", Const, 0}, + {"PT_TRACE_ME", Const, 0}, + {"PT_WRITE_D", Const, 0}, + {"PT_WRITE_I", Const, 0}, + {"PT_WRITE_U", Const, 0}, + {"ParseDirent", Func, 0}, + {"ParseNetlinkMessage", Func, 0}, + {"ParseNetlinkRouteAttr", Func, 0}, + {"ParseRoutingMessage", Func, 0}, + {"ParseRoutingSockaddr", Func, 0}, + {"ParseSocketControlMessage", Func, 0}, + {"ParseUnixCredentials", Func, 0}, + {"ParseUnixRights", Func, 0}, + {"PathMax", Const, 0}, + {"Pathconf", Func, 0}, + {"Pause", Func, 0}, + {"Pipe", Func, 0}, + {"Pipe2", Func, 1}, + {"PivotRoot", Func, 0}, + {"Pointer", Type, 11}, + {"PostQueuedCompletionStatus", Func, 0}, + {"Pread", Func, 0}, + {"Proc", Type, 0}, + {"Proc.Dll", Field, 0}, + {"Proc.Name", Field, 0}, + {"ProcAttr", Type, 0}, + {"ProcAttr.Dir", Field, 0}, + {"ProcAttr.Env", Field, 0}, + {"ProcAttr.Files", Field, 0}, + {"ProcAttr.Sys", Field, 0}, + {"Process32First", Func, 4}, + {"Process32Next", Func, 4}, + {"ProcessEntry32", Type, 4}, + {"ProcessEntry32.DefaultHeapID", Field, 4}, + {"ProcessEntry32.ExeFile", Field, 4}, + {"ProcessEntry32.Flags", Field, 4}, + {"ProcessEntry32.ModuleID", Field, 4}, + {"ProcessEntry32.ParentProcessID", Field, 4}, + {"ProcessEntry32.PriClassBase", Field, 4}, + {"ProcessEntry32.ProcessID", Field, 4}, + {"ProcessEntry32.Size", Field, 4}, + {"ProcessEntry32.Threads", Field, 4}, + {"ProcessEntry32.Usage", Field, 4}, + {"ProcessInformation", Type, 0}, + {"ProcessInformation.Process", Field, 0}, + {"ProcessInformation.ProcessId", Field, 0}, + {"ProcessInformation.Thread", Field, 0}, + {"ProcessInformation.ThreadId", Field, 0}, + {"Protoent", Type, 0}, + {"Protoent.Aliases", Field, 0}, + {"Protoent.Name", Field, 0}, + {"Protoent.Proto", Field, 0}, + {"PtraceAttach", Func, 0}, + {"PtraceCont", Func, 0}, + {"PtraceDetach", Func, 0}, + {"PtraceGetEventMsg", Func, 0}, + {"PtraceGetRegs", Func, 0}, + {"PtracePeekData", Func, 0}, + {"PtracePeekText", Func, 0}, + {"PtracePokeData", Func, 0}, + {"PtracePokeText", Func, 0}, + {"PtraceRegs", Type, 0}, + {"PtraceRegs.Cs", Field, 0}, + {"PtraceRegs.Ds", Field, 0}, + {"PtraceRegs.Eax", Field, 0}, + {"PtraceRegs.Ebp", Field, 0}, + {"PtraceRegs.Ebx", Field, 0}, + {"PtraceRegs.Ecx", Field, 0}, + {"PtraceRegs.Edi", Field, 0}, + {"PtraceRegs.Edx", Field, 0}, + {"PtraceRegs.Eflags", Field, 0}, + {"PtraceRegs.Eip", Field, 0}, + {"PtraceRegs.Es", Field, 0}, + {"PtraceRegs.Esi", Field, 0}, + {"PtraceRegs.Esp", Field, 0}, + {"PtraceRegs.Fs", Field, 0}, + {"PtraceRegs.Fs_base", Field, 0}, + {"PtraceRegs.Gs", Field, 0}, + {"PtraceRegs.Gs_base", Field, 0}, + {"PtraceRegs.Orig_eax", Field, 0}, + {"PtraceRegs.Orig_rax", Field, 0}, + {"PtraceRegs.R10", Field, 0}, + {"PtraceRegs.R11", Field, 0}, + {"PtraceRegs.R12", Field, 0}, + {"PtraceRegs.R13", Field, 0}, + {"PtraceRegs.R14", Field, 0}, + {"PtraceRegs.R15", Field, 0}, + {"PtraceRegs.R8", Field, 0}, + {"PtraceRegs.R9", Field, 0}, + {"PtraceRegs.Rax", Field, 0}, + {"PtraceRegs.Rbp", Field, 0}, + {"PtraceRegs.Rbx", Field, 0}, + {"PtraceRegs.Rcx", Field, 0}, + {"PtraceRegs.Rdi", Field, 0}, + {"PtraceRegs.Rdx", Field, 0}, + {"PtraceRegs.Rip", Field, 0}, + {"PtraceRegs.Rsi", Field, 0}, + {"PtraceRegs.Rsp", Field, 0}, + {"PtraceRegs.Ss", Field, 0}, + {"PtraceRegs.Uregs", Field, 0}, + {"PtraceRegs.Xcs", Field, 0}, + {"PtraceRegs.Xds", Field, 0}, + {"PtraceRegs.Xes", Field, 0}, + {"PtraceRegs.Xfs", Field, 0}, + {"PtraceRegs.Xgs", Field, 0}, + {"PtraceRegs.Xss", Field, 0}, + {"PtraceSetOptions", Func, 0}, + {"PtraceSetRegs", Func, 0}, + {"PtraceSingleStep", Func, 0}, + {"PtraceSyscall", Func, 1}, + {"Pwrite", Func, 0}, + {"REG_BINARY", Const, 0}, + {"REG_DWORD", Const, 0}, + {"REG_DWORD_BIG_ENDIAN", Const, 0}, + {"REG_DWORD_LITTLE_ENDIAN", Const, 0}, + {"REG_EXPAND_SZ", Const, 0}, + {"REG_FULL_RESOURCE_DESCRIPTOR", Const, 0}, + {"REG_LINK", Const, 0}, + {"REG_MULTI_SZ", Const, 0}, + {"REG_NONE", Const, 0}, + {"REG_QWORD", Const, 0}, + {"REG_QWORD_LITTLE_ENDIAN", Const, 0}, + {"REG_RESOURCE_LIST", Const, 0}, + {"REG_RESOURCE_REQUIREMENTS_LIST", Const, 0}, + {"REG_SZ", Const, 0}, + {"RLIMIT_AS", Const, 0}, + {"RLIMIT_CORE", Const, 0}, + {"RLIMIT_CPU", Const, 0}, + {"RLIMIT_CPU_USAGE_MONITOR", Const, 16}, + {"RLIMIT_DATA", Const, 0}, + {"RLIMIT_FSIZE", Const, 0}, + {"RLIMIT_NOFILE", Const, 0}, + {"RLIMIT_STACK", Const, 0}, + {"RLIM_INFINITY", Const, 0}, + {"RTAX_ADVMSS", Const, 0}, + {"RTAX_AUTHOR", Const, 0}, + {"RTAX_BRD", Const, 0}, + {"RTAX_CWND", Const, 0}, + {"RTAX_DST", Const, 0}, + {"RTAX_FEATURES", Const, 0}, + {"RTAX_FEATURE_ALLFRAG", Const, 0}, + {"RTAX_FEATURE_ECN", Const, 0}, + {"RTAX_FEATURE_SACK", Const, 0}, + {"RTAX_FEATURE_TIMESTAMP", Const, 0}, + {"RTAX_GATEWAY", Const, 0}, + {"RTAX_GENMASK", Const, 0}, + {"RTAX_HOPLIMIT", Const, 0}, + {"RTAX_IFA", Const, 0}, + {"RTAX_IFP", Const, 0}, + {"RTAX_INITCWND", Const, 0}, + {"RTAX_INITRWND", Const, 0}, + {"RTAX_LABEL", Const, 1}, + {"RTAX_LOCK", Const, 0}, + {"RTAX_MAX", Const, 0}, + {"RTAX_MTU", Const, 0}, + {"RTAX_NETMASK", Const, 0}, + {"RTAX_REORDERING", Const, 0}, + {"RTAX_RTO_MIN", Const, 0}, + {"RTAX_RTT", Const, 0}, + {"RTAX_RTTVAR", Const, 0}, + {"RTAX_SRC", Const, 1}, + {"RTAX_SRCMASK", Const, 1}, + {"RTAX_SSTHRESH", Const, 0}, + {"RTAX_TAG", Const, 1}, + {"RTAX_UNSPEC", Const, 0}, + {"RTAX_WINDOW", Const, 0}, + {"RTA_ALIGNTO", Const, 0}, + {"RTA_AUTHOR", Const, 0}, + {"RTA_BRD", Const, 0}, + {"RTA_CACHEINFO", Const, 0}, + {"RTA_DST", Const, 0}, + {"RTA_FLOW", Const, 0}, + {"RTA_GATEWAY", Const, 0}, + {"RTA_GENMASK", Const, 0}, + {"RTA_IFA", Const, 0}, + {"RTA_IFP", Const, 0}, + {"RTA_IIF", Const, 0}, + {"RTA_LABEL", Const, 1}, + {"RTA_MAX", Const, 0}, + {"RTA_METRICS", Const, 0}, + {"RTA_MULTIPATH", Const, 0}, + {"RTA_NETMASK", Const, 0}, + {"RTA_OIF", Const, 0}, + {"RTA_PREFSRC", Const, 0}, + {"RTA_PRIORITY", Const, 0}, + {"RTA_SRC", Const, 0}, + {"RTA_SRCMASK", Const, 1}, + {"RTA_TABLE", Const, 0}, + {"RTA_TAG", Const, 1}, + {"RTA_UNSPEC", Const, 0}, + {"RTCF_DIRECTSRC", Const, 0}, + {"RTCF_DOREDIRECT", Const, 0}, + {"RTCF_LOG", Const, 0}, + {"RTCF_MASQ", Const, 0}, + {"RTCF_NAT", Const, 0}, + {"RTCF_VALVE", Const, 0}, + {"RTF_ADDRCLASSMASK", Const, 0}, + {"RTF_ADDRCONF", Const, 0}, + {"RTF_ALLONLINK", Const, 0}, + {"RTF_ANNOUNCE", Const, 1}, + {"RTF_BLACKHOLE", Const, 0}, + {"RTF_BROADCAST", Const, 0}, + {"RTF_CACHE", Const, 0}, + {"RTF_CLONED", Const, 1}, + {"RTF_CLONING", Const, 0}, + {"RTF_CONDEMNED", Const, 0}, + {"RTF_DEFAULT", Const, 0}, + {"RTF_DELCLONE", Const, 0}, + {"RTF_DONE", Const, 0}, + {"RTF_DYNAMIC", Const, 0}, + {"RTF_FLOW", Const, 0}, + {"RTF_FMASK", Const, 0}, + {"RTF_GATEWAY", Const, 0}, + {"RTF_GWFLAG_COMPAT", Const, 3}, + {"RTF_HOST", Const, 0}, + {"RTF_IFREF", Const, 0}, + {"RTF_IFSCOPE", Const, 0}, + {"RTF_INTERFACE", Const, 0}, + {"RTF_IRTT", Const, 0}, + {"RTF_LINKRT", Const, 0}, + {"RTF_LLDATA", Const, 0}, + {"RTF_LLINFO", Const, 0}, + {"RTF_LOCAL", Const, 0}, + {"RTF_MASK", Const, 1}, + {"RTF_MODIFIED", Const, 0}, + {"RTF_MPATH", Const, 1}, + {"RTF_MPLS", Const, 1}, + {"RTF_MSS", Const, 0}, + {"RTF_MTU", Const, 0}, + {"RTF_MULTICAST", Const, 0}, + {"RTF_NAT", Const, 0}, + {"RTF_NOFORWARD", Const, 0}, + {"RTF_NONEXTHOP", Const, 0}, + {"RTF_NOPMTUDISC", Const, 0}, + {"RTF_PERMANENT_ARP", Const, 1}, + {"RTF_PINNED", Const, 0}, + {"RTF_POLICY", Const, 0}, + {"RTF_PRCLONING", Const, 0}, + {"RTF_PROTO1", Const, 0}, + {"RTF_PROTO2", Const, 0}, + {"RTF_PROTO3", Const, 0}, + {"RTF_PROXY", Const, 16}, + {"RTF_REINSTATE", Const, 0}, + {"RTF_REJECT", Const, 0}, + {"RTF_RNH_LOCKED", Const, 0}, + {"RTF_ROUTER", Const, 16}, + {"RTF_SOURCE", Const, 1}, + {"RTF_SRC", Const, 1}, + {"RTF_STATIC", Const, 0}, + {"RTF_STICKY", Const, 0}, + {"RTF_THROW", Const, 0}, + {"RTF_TUNNEL", Const, 1}, + {"RTF_UP", Const, 0}, + {"RTF_USETRAILERS", Const, 1}, + {"RTF_WASCLONED", Const, 0}, + {"RTF_WINDOW", Const, 0}, + {"RTF_XRESOLVE", Const, 0}, + {"RTM_ADD", Const, 0}, + {"RTM_BASE", Const, 0}, + {"RTM_CHANGE", Const, 0}, + {"RTM_CHGADDR", Const, 1}, + {"RTM_DELACTION", Const, 0}, + {"RTM_DELADDR", Const, 0}, + {"RTM_DELADDRLABEL", Const, 0}, + {"RTM_DELETE", Const, 0}, + {"RTM_DELLINK", Const, 0}, + {"RTM_DELMADDR", Const, 0}, + {"RTM_DELNEIGH", Const, 0}, + {"RTM_DELQDISC", Const, 0}, + {"RTM_DELROUTE", Const, 0}, + {"RTM_DELRULE", Const, 0}, + {"RTM_DELTCLASS", Const, 0}, + {"RTM_DELTFILTER", Const, 0}, + {"RTM_DESYNC", Const, 1}, + {"RTM_F_CLONED", Const, 0}, + {"RTM_F_EQUALIZE", Const, 0}, + {"RTM_F_NOTIFY", Const, 0}, + {"RTM_F_PREFIX", Const, 0}, + {"RTM_GET", Const, 0}, + {"RTM_GET2", Const, 0}, + {"RTM_GETACTION", Const, 0}, + {"RTM_GETADDR", Const, 0}, + {"RTM_GETADDRLABEL", Const, 0}, + {"RTM_GETANYCAST", Const, 0}, + {"RTM_GETDCB", Const, 0}, + {"RTM_GETLINK", Const, 0}, + {"RTM_GETMULTICAST", Const, 0}, + {"RTM_GETNEIGH", Const, 0}, + {"RTM_GETNEIGHTBL", Const, 0}, + {"RTM_GETQDISC", Const, 0}, + {"RTM_GETROUTE", Const, 0}, + {"RTM_GETRULE", Const, 0}, + {"RTM_GETTCLASS", Const, 0}, + {"RTM_GETTFILTER", Const, 0}, + {"RTM_IEEE80211", Const, 0}, + {"RTM_IFANNOUNCE", Const, 0}, + {"RTM_IFINFO", Const, 0}, + {"RTM_IFINFO2", Const, 0}, + {"RTM_LLINFO_UPD", Const, 1}, + {"RTM_LOCK", Const, 0}, + {"RTM_LOSING", Const, 0}, + {"RTM_MAX", Const, 0}, + {"RTM_MAXSIZE", Const, 1}, + {"RTM_MISS", Const, 0}, + {"RTM_NEWACTION", Const, 0}, + {"RTM_NEWADDR", Const, 0}, + {"RTM_NEWADDRLABEL", Const, 0}, + {"RTM_NEWLINK", Const, 0}, + {"RTM_NEWMADDR", Const, 0}, + {"RTM_NEWMADDR2", Const, 0}, + {"RTM_NEWNDUSEROPT", Const, 0}, + {"RTM_NEWNEIGH", Const, 0}, + {"RTM_NEWNEIGHTBL", Const, 0}, + {"RTM_NEWPREFIX", Const, 0}, + {"RTM_NEWQDISC", Const, 0}, + {"RTM_NEWROUTE", Const, 0}, + {"RTM_NEWRULE", Const, 0}, + {"RTM_NEWTCLASS", Const, 0}, + {"RTM_NEWTFILTER", Const, 0}, + {"RTM_NR_FAMILIES", Const, 0}, + {"RTM_NR_MSGTYPES", Const, 0}, + {"RTM_OIFINFO", Const, 1}, + {"RTM_OLDADD", Const, 0}, + {"RTM_OLDDEL", Const, 0}, + {"RTM_OOIFINFO", Const, 1}, + {"RTM_REDIRECT", Const, 0}, + {"RTM_RESOLVE", Const, 0}, + {"RTM_RTTUNIT", Const, 0}, + {"RTM_SETDCB", Const, 0}, + {"RTM_SETGATE", Const, 1}, + {"RTM_SETLINK", Const, 0}, + {"RTM_SETNEIGHTBL", Const, 0}, + {"RTM_VERSION", Const, 0}, + {"RTNH_ALIGNTO", Const, 0}, + {"RTNH_F_DEAD", Const, 0}, + {"RTNH_F_ONLINK", Const, 0}, + {"RTNH_F_PERVASIVE", Const, 0}, + {"RTNLGRP_IPV4_IFADDR", Const, 1}, + {"RTNLGRP_IPV4_MROUTE", Const, 1}, + {"RTNLGRP_IPV4_ROUTE", Const, 1}, + {"RTNLGRP_IPV4_RULE", Const, 1}, + {"RTNLGRP_IPV6_IFADDR", Const, 1}, + {"RTNLGRP_IPV6_IFINFO", Const, 1}, + {"RTNLGRP_IPV6_MROUTE", Const, 1}, + {"RTNLGRP_IPV6_PREFIX", Const, 1}, + {"RTNLGRP_IPV6_ROUTE", Const, 1}, + {"RTNLGRP_IPV6_RULE", Const, 1}, + {"RTNLGRP_LINK", Const, 1}, + {"RTNLGRP_ND_USEROPT", Const, 1}, + {"RTNLGRP_NEIGH", Const, 1}, + {"RTNLGRP_NONE", Const, 1}, + {"RTNLGRP_NOTIFY", Const, 1}, + {"RTNLGRP_TC", Const, 1}, + {"RTN_ANYCAST", Const, 0}, + {"RTN_BLACKHOLE", Const, 0}, + {"RTN_BROADCAST", Const, 0}, + {"RTN_LOCAL", Const, 0}, + {"RTN_MAX", Const, 0}, + {"RTN_MULTICAST", Const, 0}, + {"RTN_NAT", Const, 0}, + {"RTN_PROHIBIT", Const, 0}, + {"RTN_THROW", Const, 0}, + {"RTN_UNICAST", Const, 0}, + {"RTN_UNREACHABLE", Const, 0}, + {"RTN_UNSPEC", Const, 0}, + {"RTN_XRESOLVE", Const, 0}, + {"RTPROT_BIRD", Const, 0}, + {"RTPROT_BOOT", Const, 0}, + {"RTPROT_DHCP", Const, 0}, + {"RTPROT_DNROUTED", Const, 0}, + {"RTPROT_GATED", Const, 0}, + {"RTPROT_KERNEL", Const, 0}, + {"RTPROT_MRT", Const, 0}, + {"RTPROT_NTK", Const, 0}, + {"RTPROT_RA", Const, 0}, + {"RTPROT_REDIRECT", Const, 0}, + {"RTPROT_STATIC", Const, 0}, + {"RTPROT_UNSPEC", Const, 0}, + {"RTPROT_XORP", Const, 0}, + {"RTPROT_ZEBRA", Const, 0}, + {"RTV_EXPIRE", Const, 0}, + {"RTV_HOPCOUNT", Const, 0}, + {"RTV_MTU", Const, 0}, + {"RTV_RPIPE", Const, 0}, + {"RTV_RTT", Const, 0}, + {"RTV_RTTVAR", Const, 0}, + {"RTV_SPIPE", Const, 0}, + {"RTV_SSTHRESH", Const, 0}, + {"RTV_WEIGHT", Const, 0}, + {"RT_CACHING_CONTEXT", Const, 1}, + {"RT_CLASS_DEFAULT", Const, 0}, + {"RT_CLASS_LOCAL", Const, 0}, + {"RT_CLASS_MAIN", Const, 0}, + {"RT_CLASS_MAX", Const, 0}, + {"RT_CLASS_UNSPEC", Const, 0}, + {"RT_DEFAULT_FIB", Const, 1}, + {"RT_NORTREF", Const, 1}, + {"RT_SCOPE_HOST", Const, 0}, + {"RT_SCOPE_LINK", Const, 0}, + {"RT_SCOPE_NOWHERE", Const, 0}, + {"RT_SCOPE_SITE", Const, 0}, + {"RT_SCOPE_UNIVERSE", Const, 0}, + {"RT_TABLEID_MAX", Const, 1}, + {"RT_TABLE_COMPAT", Const, 0}, + {"RT_TABLE_DEFAULT", Const, 0}, + {"RT_TABLE_LOCAL", Const, 0}, + {"RT_TABLE_MAIN", Const, 0}, + {"RT_TABLE_MAX", Const, 0}, + {"RT_TABLE_UNSPEC", Const, 0}, + {"RUSAGE_CHILDREN", Const, 0}, + {"RUSAGE_SELF", Const, 0}, + {"RUSAGE_THREAD", Const, 0}, + {"Radvisory_t", Type, 0}, + {"Radvisory_t.Count", Field, 0}, + {"Radvisory_t.Offset", Field, 0}, + {"Radvisory_t.Pad_cgo_0", Field, 0}, + {"RawConn", Type, 9}, + {"RawSockaddr", Type, 0}, + {"RawSockaddr.Data", Field, 0}, + {"RawSockaddr.Family", Field, 0}, + {"RawSockaddr.Len", Field, 0}, + {"RawSockaddrAny", Type, 0}, + {"RawSockaddrAny.Addr", Field, 0}, + {"RawSockaddrAny.Pad", Field, 0}, + {"RawSockaddrDatalink", Type, 0}, + {"RawSockaddrDatalink.Alen", Field, 0}, + {"RawSockaddrDatalink.Data", Field, 0}, + {"RawSockaddrDatalink.Family", Field, 0}, + {"RawSockaddrDatalink.Index", Field, 0}, + {"RawSockaddrDatalink.Len", Field, 0}, + {"RawSockaddrDatalink.Nlen", Field, 0}, + {"RawSockaddrDatalink.Pad_cgo_0", Field, 2}, + {"RawSockaddrDatalink.Slen", Field, 0}, + {"RawSockaddrDatalink.Type", Field, 0}, + {"RawSockaddrInet4", Type, 0}, + {"RawSockaddrInet4.Addr", Field, 0}, + {"RawSockaddrInet4.Family", Field, 0}, + {"RawSockaddrInet4.Len", Field, 0}, + {"RawSockaddrInet4.Port", Field, 0}, + {"RawSockaddrInet4.Zero", Field, 0}, + {"RawSockaddrInet6", Type, 0}, + {"RawSockaddrInet6.Addr", Field, 0}, + {"RawSockaddrInet6.Family", Field, 0}, + {"RawSockaddrInet6.Flowinfo", Field, 0}, + {"RawSockaddrInet6.Len", Field, 0}, + {"RawSockaddrInet6.Port", Field, 0}, + {"RawSockaddrInet6.Scope_id", Field, 0}, + {"RawSockaddrLinklayer", Type, 0}, + {"RawSockaddrLinklayer.Addr", Field, 0}, + {"RawSockaddrLinklayer.Family", Field, 0}, + {"RawSockaddrLinklayer.Halen", Field, 0}, + {"RawSockaddrLinklayer.Hatype", Field, 0}, + {"RawSockaddrLinklayer.Ifindex", Field, 0}, + {"RawSockaddrLinklayer.Pkttype", Field, 0}, + {"RawSockaddrLinklayer.Protocol", Field, 0}, + {"RawSockaddrNetlink", Type, 0}, + {"RawSockaddrNetlink.Family", Field, 0}, + {"RawSockaddrNetlink.Groups", Field, 0}, + {"RawSockaddrNetlink.Pad", Field, 0}, + {"RawSockaddrNetlink.Pid", Field, 0}, + {"RawSockaddrUnix", Type, 0}, + {"RawSockaddrUnix.Family", Field, 0}, + {"RawSockaddrUnix.Len", Field, 0}, + {"RawSockaddrUnix.Pad_cgo_0", Field, 2}, + {"RawSockaddrUnix.Path", Field, 0}, + {"RawSyscall", Func, 0}, + {"RawSyscall6", Func, 0}, + {"Read", Func, 0}, + {"ReadConsole", Func, 1}, + {"ReadDirectoryChanges", Func, 0}, + {"ReadDirent", Func, 0}, + {"ReadFile", Func, 0}, + {"Readlink", Func, 0}, + {"Reboot", Func, 0}, + {"Recvfrom", Func, 0}, + {"Recvmsg", Func, 0}, + {"RegCloseKey", Func, 0}, + {"RegEnumKeyEx", Func, 0}, + {"RegOpenKeyEx", Func, 0}, + {"RegQueryInfoKey", Func, 0}, + {"RegQueryValueEx", Func, 0}, + {"RemoveDirectory", Func, 0}, + {"Removexattr", Func, 1}, + {"Rename", Func, 0}, + {"Renameat", Func, 0}, + {"Revoke", Func, 0}, + {"Rlimit", Type, 0}, + {"Rlimit.Cur", Field, 0}, + {"Rlimit.Max", Field, 0}, + {"Rmdir", Func, 0}, + {"RouteMessage", Type, 0}, + {"RouteMessage.Data", Field, 0}, + {"RouteMessage.Header", Field, 0}, + {"RouteRIB", Func, 0}, + {"RoutingMessage", Type, 0}, + {"RtAttr", Type, 0}, + {"RtAttr.Len", Field, 0}, + {"RtAttr.Type", Field, 0}, + {"RtGenmsg", Type, 0}, + {"RtGenmsg.Family", Field, 0}, + {"RtMetrics", Type, 0}, + {"RtMetrics.Expire", Field, 0}, + {"RtMetrics.Filler", Field, 0}, + {"RtMetrics.Hopcount", Field, 0}, + {"RtMetrics.Locks", Field, 0}, + {"RtMetrics.Mtu", Field, 0}, + {"RtMetrics.Pad", Field, 3}, + {"RtMetrics.Pksent", Field, 0}, + {"RtMetrics.Recvpipe", Field, 0}, + {"RtMetrics.Refcnt", Field, 2}, + {"RtMetrics.Rtt", Field, 0}, + {"RtMetrics.Rttvar", Field, 0}, + {"RtMetrics.Sendpipe", Field, 0}, + {"RtMetrics.Ssthresh", Field, 0}, + {"RtMetrics.Weight", Field, 0}, + {"RtMsg", Type, 0}, + {"RtMsg.Dst_len", Field, 0}, + {"RtMsg.Family", Field, 0}, + {"RtMsg.Flags", Field, 0}, + {"RtMsg.Protocol", Field, 0}, + {"RtMsg.Scope", Field, 0}, + {"RtMsg.Src_len", Field, 0}, + {"RtMsg.Table", Field, 0}, + {"RtMsg.Tos", Field, 0}, + {"RtMsg.Type", Field, 0}, + {"RtMsghdr", Type, 0}, + {"RtMsghdr.Addrs", Field, 0}, + {"RtMsghdr.Errno", Field, 0}, + {"RtMsghdr.Flags", Field, 0}, + {"RtMsghdr.Fmask", Field, 0}, + {"RtMsghdr.Hdrlen", Field, 2}, + {"RtMsghdr.Index", Field, 0}, + {"RtMsghdr.Inits", Field, 0}, + {"RtMsghdr.Mpls", Field, 2}, + {"RtMsghdr.Msglen", Field, 0}, + {"RtMsghdr.Pad_cgo_0", Field, 0}, + {"RtMsghdr.Pad_cgo_1", Field, 2}, + {"RtMsghdr.Pid", Field, 0}, + {"RtMsghdr.Priority", Field, 2}, + {"RtMsghdr.Rmx", Field, 0}, + {"RtMsghdr.Seq", Field, 0}, + {"RtMsghdr.Tableid", Field, 2}, + {"RtMsghdr.Type", Field, 0}, + {"RtMsghdr.Use", Field, 0}, + {"RtMsghdr.Version", Field, 0}, + {"RtNexthop", Type, 0}, + {"RtNexthop.Flags", Field, 0}, + {"RtNexthop.Hops", Field, 0}, + {"RtNexthop.Ifindex", Field, 0}, + {"RtNexthop.Len", Field, 0}, + {"Rusage", Type, 0}, + {"Rusage.CreationTime", Field, 0}, + {"Rusage.ExitTime", Field, 0}, + {"Rusage.Idrss", Field, 0}, + {"Rusage.Inblock", Field, 0}, + {"Rusage.Isrss", Field, 0}, + {"Rusage.Ixrss", Field, 0}, + {"Rusage.KernelTime", Field, 0}, + {"Rusage.Majflt", Field, 0}, + {"Rusage.Maxrss", Field, 0}, + {"Rusage.Minflt", Field, 0}, + {"Rusage.Msgrcv", Field, 0}, + {"Rusage.Msgsnd", Field, 0}, + {"Rusage.Nivcsw", Field, 0}, + {"Rusage.Nsignals", Field, 0}, + {"Rusage.Nswap", Field, 0}, + {"Rusage.Nvcsw", Field, 0}, + {"Rusage.Oublock", Field, 0}, + {"Rusage.Stime", Field, 0}, + {"Rusage.UserTime", Field, 0}, + {"Rusage.Utime", Field, 0}, + {"SCM_BINTIME", Const, 0}, + {"SCM_CREDENTIALS", Const, 0}, + {"SCM_CREDS", Const, 0}, + {"SCM_RIGHTS", Const, 0}, + {"SCM_TIMESTAMP", Const, 0}, + {"SCM_TIMESTAMPING", Const, 0}, + {"SCM_TIMESTAMPNS", Const, 0}, + {"SCM_TIMESTAMP_MONOTONIC", Const, 0}, + {"SHUT_RD", Const, 0}, + {"SHUT_RDWR", Const, 0}, + {"SHUT_WR", Const, 0}, + {"SID", Type, 0}, + {"SIDAndAttributes", Type, 0}, + {"SIDAndAttributes.Attributes", Field, 0}, + {"SIDAndAttributes.Sid", Field, 0}, + {"SIGABRT", Const, 0}, + {"SIGALRM", Const, 0}, + {"SIGBUS", Const, 0}, + {"SIGCHLD", Const, 0}, + {"SIGCLD", Const, 0}, + {"SIGCONT", Const, 0}, + {"SIGEMT", Const, 0}, + {"SIGFPE", Const, 0}, + {"SIGHUP", Const, 0}, + {"SIGILL", Const, 0}, + {"SIGINFO", Const, 0}, + {"SIGINT", Const, 0}, + {"SIGIO", Const, 0}, + {"SIGIOT", Const, 0}, + {"SIGKILL", Const, 0}, + {"SIGLIBRT", Const, 1}, + {"SIGLWP", Const, 0}, + {"SIGPIPE", Const, 0}, + {"SIGPOLL", Const, 0}, + {"SIGPROF", Const, 0}, + {"SIGPWR", Const, 0}, + {"SIGQUIT", Const, 0}, + {"SIGSEGV", Const, 0}, + {"SIGSTKFLT", Const, 0}, + {"SIGSTOP", Const, 0}, + {"SIGSYS", Const, 0}, + {"SIGTERM", Const, 0}, + {"SIGTHR", Const, 0}, + {"SIGTRAP", Const, 0}, + {"SIGTSTP", Const, 0}, + {"SIGTTIN", Const, 0}, + {"SIGTTOU", Const, 0}, + {"SIGUNUSED", Const, 0}, + {"SIGURG", Const, 0}, + {"SIGUSR1", Const, 0}, + {"SIGUSR2", Const, 0}, + {"SIGVTALRM", Const, 0}, + {"SIGWINCH", Const, 0}, + {"SIGXCPU", Const, 0}, + {"SIGXFSZ", Const, 0}, + {"SIOCADDDLCI", Const, 0}, + {"SIOCADDMULTI", Const, 0}, + {"SIOCADDRT", Const, 0}, + {"SIOCAIFADDR", Const, 0}, + {"SIOCAIFGROUP", Const, 0}, + {"SIOCALIFADDR", Const, 0}, + {"SIOCARPIPLL", Const, 0}, + {"SIOCATMARK", Const, 0}, + {"SIOCAUTOADDR", Const, 0}, + {"SIOCAUTONETMASK", Const, 0}, + {"SIOCBRDGADD", Const, 1}, + {"SIOCBRDGADDS", Const, 1}, + {"SIOCBRDGARL", Const, 1}, + {"SIOCBRDGDADDR", Const, 1}, + {"SIOCBRDGDEL", Const, 1}, + {"SIOCBRDGDELS", Const, 1}, + {"SIOCBRDGFLUSH", Const, 1}, + {"SIOCBRDGFRL", Const, 1}, + {"SIOCBRDGGCACHE", Const, 1}, + {"SIOCBRDGGFD", Const, 1}, + {"SIOCBRDGGHT", Const, 1}, + {"SIOCBRDGGIFFLGS", Const, 1}, + {"SIOCBRDGGMA", Const, 1}, + {"SIOCBRDGGPARAM", Const, 1}, + {"SIOCBRDGGPRI", Const, 1}, + {"SIOCBRDGGRL", Const, 1}, + {"SIOCBRDGGSIFS", Const, 1}, + {"SIOCBRDGGTO", Const, 1}, + {"SIOCBRDGIFS", Const, 1}, + {"SIOCBRDGRTS", Const, 1}, + {"SIOCBRDGSADDR", Const, 1}, + {"SIOCBRDGSCACHE", Const, 1}, + {"SIOCBRDGSFD", Const, 1}, + {"SIOCBRDGSHT", Const, 1}, + {"SIOCBRDGSIFCOST", Const, 1}, + {"SIOCBRDGSIFFLGS", Const, 1}, + {"SIOCBRDGSIFPRIO", Const, 1}, + {"SIOCBRDGSMA", Const, 1}, + {"SIOCBRDGSPRI", Const, 1}, + {"SIOCBRDGSPROTO", Const, 1}, + {"SIOCBRDGSTO", Const, 1}, + {"SIOCBRDGSTXHC", Const, 1}, + {"SIOCDARP", Const, 0}, + {"SIOCDELDLCI", Const, 0}, + {"SIOCDELMULTI", Const, 0}, + {"SIOCDELRT", Const, 0}, + {"SIOCDEVPRIVATE", Const, 0}, + {"SIOCDIFADDR", Const, 0}, + {"SIOCDIFGROUP", Const, 0}, + {"SIOCDIFPHYADDR", Const, 0}, + {"SIOCDLIFADDR", Const, 0}, + {"SIOCDRARP", Const, 0}, + {"SIOCGARP", Const, 0}, + {"SIOCGDRVSPEC", Const, 0}, + {"SIOCGETKALIVE", Const, 1}, + {"SIOCGETLABEL", Const, 1}, + {"SIOCGETPFLOW", Const, 1}, + {"SIOCGETPFSYNC", Const, 1}, + {"SIOCGETSGCNT", Const, 0}, + {"SIOCGETVIFCNT", Const, 0}, + {"SIOCGETVLAN", Const, 0}, + {"SIOCGHIWAT", Const, 0}, + {"SIOCGIFADDR", Const, 0}, + {"SIOCGIFADDRPREF", Const, 1}, + {"SIOCGIFALIAS", Const, 1}, + {"SIOCGIFALTMTU", Const, 0}, + {"SIOCGIFASYNCMAP", Const, 0}, + {"SIOCGIFBOND", Const, 0}, + {"SIOCGIFBR", Const, 0}, + {"SIOCGIFBRDADDR", Const, 0}, + {"SIOCGIFCAP", Const, 0}, + {"SIOCGIFCONF", Const, 0}, + {"SIOCGIFCOUNT", Const, 0}, + {"SIOCGIFDATA", Const, 1}, + {"SIOCGIFDESCR", Const, 0}, + {"SIOCGIFDEVMTU", Const, 0}, + {"SIOCGIFDLT", Const, 1}, + {"SIOCGIFDSTADDR", Const, 0}, + {"SIOCGIFENCAP", Const, 0}, + {"SIOCGIFFIB", Const, 1}, + {"SIOCGIFFLAGS", Const, 0}, + {"SIOCGIFGATTR", Const, 1}, + {"SIOCGIFGENERIC", Const, 0}, + {"SIOCGIFGMEMB", Const, 0}, + {"SIOCGIFGROUP", Const, 0}, + {"SIOCGIFHARDMTU", Const, 3}, + {"SIOCGIFHWADDR", Const, 0}, + {"SIOCGIFINDEX", Const, 0}, + {"SIOCGIFKPI", Const, 0}, + {"SIOCGIFMAC", Const, 0}, + {"SIOCGIFMAP", Const, 0}, + {"SIOCGIFMEDIA", Const, 0}, + {"SIOCGIFMEM", Const, 0}, + {"SIOCGIFMETRIC", Const, 0}, + {"SIOCGIFMTU", Const, 0}, + {"SIOCGIFNAME", Const, 0}, + {"SIOCGIFNETMASK", Const, 0}, + {"SIOCGIFPDSTADDR", Const, 0}, + {"SIOCGIFPFLAGS", Const, 0}, + {"SIOCGIFPHYS", Const, 0}, + {"SIOCGIFPRIORITY", Const, 1}, + {"SIOCGIFPSRCADDR", Const, 0}, + {"SIOCGIFRDOMAIN", Const, 1}, + {"SIOCGIFRTLABEL", Const, 1}, + {"SIOCGIFSLAVE", Const, 0}, + {"SIOCGIFSTATUS", Const, 0}, + {"SIOCGIFTIMESLOT", Const, 1}, + {"SIOCGIFTXQLEN", Const, 0}, + {"SIOCGIFVLAN", Const, 0}, + {"SIOCGIFWAKEFLAGS", Const, 0}, + {"SIOCGIFXFLAGS", Const, 1}, + {"SIOCGLIFADDR", Const, 0}, + {"SIOCGLIFPHYADDR", Const, 0}, + {"SIOCGLIFPHYRTABLE", Const, 1}, + {"SIOCGLIFPHYTTL", Const, 3}, + {"SIOCGLINKSTR", Const, 1}, + {"SIOCGLOWAT", Const, 0}, + {"SIOCGPGRP", Const, 0}, + {"SIOCGPRIVATE_0", Const, 0}, + {"SIOCGPRIVATE_1", Const, 0}, + {"SIOCGRARP", Const, 0}, + {"SIOCGSPPPPARAMS", Const, 3}, + {"SIOCGSTAMP", Const, 0}, + {"SIOCGSTAMPNS", Const, 0}, + {"SIOCGVH", Const, 1}, + {"SIOCGVNETID", Const, 3}, + {"SIOCIFCREATE", Const, 0}, + {"SIOCIFCREATE2", Const, 0}, + {"SIOCIFDESTROY", Const, 0}, + {"SIOCIFGCLONERS", Const, 0}, + {"SIOCINITIFADDR", Const, 1}, + {"SIOCPROTOPRIVATE", Const, 0}, + {"SIOCRSLVMULTI", Const, 0}, + {"SIOCRTMSG", Const, 0}, + {"SIOCSARP", Const, 0}, + {"SIOCSDRVSPEC", Const, 0}, + {"SIOCSETKALIVE", Const, 1}, + {"SIOCSETLABEL", Const, 1}, + {"SIOCSETPFLOW", Const, 1}, + {"SIOCSETPFSYNC", Const, 1}, + {"SIOCSETVLAN", Const, 0}, + {"SIOCSHIWAT", Const, 0}, + {"SIOCSIFADDR", Const, 0}, + {"SIOCSIFADDRPREF", Const, 1}, + {"SIOCSIFALTMTU", Const, 0}, + {"SIOCSIFASYNCMAP", Const, 0}, + {"SIOCSIFBOND", Const, 0}, + {"SIOCSIFBR", Const, 0}, + {"SIOCSIFBRDADDR", Const, 0}, + {"SIOCSIFCAP", Const, 0}, + {"SIOCSIFDESCR", Const, 0}, + {"SIOCSIFDSTADDR", Const, 0}, + {"SIOCSIFENCAP", Const, 0}, + {"SIOCSIFFIB", Const, 1}, + {"SIOCSIFFLAGS", Const, 0}, + {"SIOCSIFGATTR", Const, 1}, + {"SIOCSIFGENERIC", Const, 0}, + {"SIOCSIFHWADDR", Const, 0}, + {"SIOCSIFHWBROADCAST", Const, 0}, + {"SIOCSIFKPI", Const, 0}, + {"SIOCSIFLINK", Const, 0}, + {"SIOCSIFLLADDR", Const, 0}, + {"SIOCSIFMAC", Const, 0}, + {"SIOCSIFMAP", Const, 0}, + {"SIOCSIFMEDIA", Const, 0}, + {"SIOCSIFMEM", Const, 0}, + {"SIOCSIFMETRIC", Const, 0}, + {"SIOCSIFMTU", Const, 0}, + {"SIOCSIFNAME", Const, 0}, + {"SIOCSIFNETMASK", Const, 0}, + {"SIOCSIFPFLAGS", Const, 0}, + {"SIOCSIFPHYADDR", Const, 0}, + {"SIOCSIFPHYS", Const, 0}, + {"SIOCSIFPRIORITY", Const, 1}, + {"SIOCSIFRDOMAIN", Const, 1}, + {"SIOCSIFRTLABEL", Const, 1}, + {"SIOCSIFRVNET", Const, 0}, + {"SIOCSIFSLAVE", Const, 0}, + {"SIOCSIFTIMESLOT", Const, 1}, + {"SIOCSIFTXQLEN", Const, 0}, + {"SIOCSIFVLAN", Const, 0}, + {"SIOCSIFVNET", Const, 0}, + {"SIOCSIFXFLAGS", Const, 1}, + {"SIOCSLIFPHYADDR", Const, 0}, + {"SIOCSLIFPHYRTABLE", Const, 1}, + {"SIOCSLIFPHYTTL", Const, 3}, + {"SIOCSLINKSTR", Const, 1}, + {"SIOCSLOWAT", Const, 0}, + {"SIOCSPGRP", Const, 0}, + {"SIOCSRARP", Const, 0}, + {"SIOCSSPPPPARAMS", Const, 3}, + {"SIOCSVH", Const, 1}, + {"SIOCSVNETID", Const, 3}, + {"SIOCZIFDATA", Const, 1}, + {"SIO_GET_EXTENSION_FUNCTION_POINTER", Const, 1}, + {"SIO_GET_INTERFACE_LIST", Const, 0}, + {"SIO_KEEPALIVE_VALS", Const, 3}, + {"SIO_UDP_CONNRESET", Const, 4}, + {"SOCK_CLOEXEC", Const, 0}, + {"SOCK_DCCP", Const, 0}, + {"SOCK_DGRAM", Const, 0}, + {"SOCK_FLAGS_MASK", Const, 1}, + {"SOCK_MAXADDRLEN", Const, 0}, + {"SOCK_NONBLOCK", Const, 0}, + {"SOCK_NOSIGPIPE", Const, 1}, + {"SOCK_PACKET", Const, 0}, + {"SOCK_RAW", Const, 0}, + {"SOCK_RDM", Const, 0}, + {"SOCK_SEQPACKET", Const, 0}, + {"SOCK_STREAM", Const, 0}, + {"SOL_AAL", Const, 0}, + {"SOL_ATM", Const, 0}, + {"SOL_DECNET", Const, 0}, + {"SOL_ICMPV6", Const, 0}, + {"SOL_IP", Const, 0}, + {"SOL_IPV6", Const, 0}, + {"SOL_IRDA", Const, 0}, + {"SOL_PACKET", Const, 0}, + {"SOL_RAW", Const, 0}, + {"SOL_SOCKET", Const, 0}, + {"SOL_TCP", Const, 0}, + {"SOL_X25", Const, 0}, + {"SOMAXCONN", Const, 0}, + {"SO_ACCEPTCONN", Const, 0}, + {"SO_ACCEPTFILTER", Const, 0}, + {"SO_ATTACH_FILTER", Const, 0}, + {"SO_BINDANY", Const, 1}, + {"SO_BINDTODEVICE", Const, 0}, + {"SO_BINTIME", Const, 0}, + {"SO_BROADCAST", Const, 0}, + {"SO_BSDCOMPAT", Const, 0}, + {"SO_DEBUG", Const, 0}, + {"SO_DETACH_FILTER", Const, 0}, + {"SO_DOMAIN", Const, 0}, + {"SO_DONTROUTE", Const, 0}, + {"SO_DONTTRUNC", Const, 0}, + {"SO_ERROR", Const, 0}, + {"SO_KEEPALIVE", Const, 0}, + {"SO_LABEL", Const, 0}, + {"SO_LINGER", Const, 0}, + {"SO_LINGER_SEC", Const, 0}, + {"SO_LISTENINCQLEN", Const, 0}, + {"SO_LISTENQLEN", Const, 0}, + {"SO_LISTENQLIMIT", Const, 0}, + {"SO_MARK", Const, 0}, + {"SO_NETPROC", Const, 1}, + {"SO_NKE", Const, 0}, + {"SO_NOADDRERR", Const, 0}, + {"SO_NOHEADER", Const, 1}, + {"SO_NOSIGPIPE", Const, 0}, + {"SO_NOTIFYCONFLICT", Const, 0}, + {"SO_NO_CHECK", Const, 0}, + {"SO_NO_DDP", Const, 0}, + {"SO_NO_OFFLOAD", Const, 0}, + {"SO_NP_EXTENSIONS", Const, 0}, + {"SO_NREAD", Const, 0}, + {"SO_NUMRCVPKT", Const, 16}, + {"SO_NWRITE", Const, 0}, + {"SO_OOBINLINE", Const, 0}, + {"SO_OVERFLOWED", Const, 1}, + {"SO_PASSCRED", Const, 0}, + {"SO_PASSSEC", Const, 0}, + {"SO_PEERCRED", Const, 0}, + {"SO_PEERLABEL", Const, 0}, + {"SO_PEERNAME", Const, 0}, + {"SO_PEERSEC", Const, 0}, + {"SO_PRIORITY", Const, 0}, + {"SO_PROTOCOL", Const, 0}, + {"SO_PROTOTYPE", Const, 1}, + {"SO_RANDOMPORT", Const, 0}, + {"SO_RCVBUF", Const, 0}, + {"SO_RCVBUFFORCE", Const, 0}, + {"SO_RCVLOWAT", Const, 0}, + {"SO_RCVTIMEO", Const, 0}, + {"SO_RESTRICTIONS", Const, 0}, + {"SO_RESTRICT_DENYIN", Const, 0}, + {"SO_RESTRICT_DENYOUT", Const, 0}, + {"SO_RESTRICT_DENYSET", Const, 0}, + {"SO_REUSEADDR", Const, 0}, + {"SO_REUSEPORT", Const, 0}, + {"SO_REUSESHAREUID", Const, 0}, + {"SO_RTABLE", Const, 1}, + {"SO_RXQ_OVFL", Const, 0}, + {"SO_SECURITY_AUTHENTICATION", Const, 0}, + {"SO_SECURITY_ENCRYPTION_NETWORK", Const, 0}, + {"SO_SECURITY_ENCRYPTION_TRANSPORT", Const, 0}, + {"SO_SETFIB", Const, 0}, + {"SO_SNDBUF", Const, 0}, + {"SO_SNDBUFFORCE", Const, 0}, + {"SO_SNDLOWAT", Const, 0}, + {"SO_SNDTIMEO", Const, 0}, + {"SO_SPLICE", Const, 1}, + {"SO_TIMESTAMP", Const, 0}, + {"SO_TIMESTAMPING", Const, 0}, + {"SO_TIMESTAMPNS", Const, 0}, + {"SO_TIMESTAMP_MONOTONIC", Const, 0}, + {"SO_TYPE", Const, 0}, + {"SO_UPCALLCLOSEWAIT", Const, 0}, + {"SO_UPDATE_ACCEPT_CONTEXT", Const, 0}, + {"SO_UPDATE_CONNECT_CONTEXT", Const, 1}, + {"SO_USELOOPBACK", Const, 0}, + {"SO_USER_COOKIE", Const, 1}, + {"SO_VENDOR", Const, 3}, + {"SO_WANTMORE", Const, 0}, + {"SO_WANTOOBFLAG", Const, 0}, + {"SSLExtraCertChainPolicyPara", Type, 0}, + {"SSLExtraCertChainPolicyPara.AuthType", Field, 0}, + {"SSLExtraCertChainPolicyPara.Checks", Field, 0}, + {"SSLExtraCertChainPolicyPara.ServerName", Field, 0}, + {"SSLExtraCertChainPolicyPara.Size", Field, 0}, + {"STANDARD_RIGHTS_ALL", Const, 0}, + {"STANDARD_RIGHTS_EXECUTE", Const, 0}, + {"STANDARD_RIGHTS_READ", Const, 0}, + {"STANDARD_RIGHTS_REQUIRED", Const, 0}, + {"STANDARD_RIGHTS_WRITE", Const, 0}, + {"STARTF_USESHOWWINDOW", Const, 0}, + {"STARTF_USESTDHANDLES", Const, 0}, + {"STD_ERROR_HANDLE", Const, 0}, + {"STD_INPUT_HANDLE", Const, 0}, + {"STD_OUTPUT_HANDLE", Const, 0}, + {"SUBLANG_ENGLISH_US", Const, 0}, + {"SW_FORCEMINIMIZE", Const, 0}, + {"SW_HIDE", Const, 0}, + {"SW_MAXIMIZE", Const, 0}, + {"SW_MINIMIZE", Const, 0}, + {"SW_NORMAL", Const, 0}, + {"SW_RESTORE", Const, 0}, + {"SW_SHOW", Const, 0}, + {"SW_SHOWDEFAULT", Const, 0}, + {"SW_SHOWMAXIMIZED", Const, 0}, + {"SW_SHOWMINIMIZED", Const, 0}, + {"SW_SHOWMINNOACTIVE", Const, 0}, + {"SW_SHOWNA", Const, 0}, + {"SW_SHOWNOACTIVATE", Const, 0}, + {"SW_SHOWNORMAL", Const, 0}, + {"SYMBOLIC_LINK_FLAG_DIRECTORY", Const, 4}, + {"SYNCHRONIZE", Const, 0}, + {"SYSCTL_VERSION", Const, 1}, + {"SYSCTL_VERS_0", Const, 1}, + {"SYSCTL_VERS_1", Const, 1}, + {"SYSCTL_VERS_MASK", Const, 1}, + {"SYS_ABORT2", Const, 0}, + {"SYS_ACCEPT", Const, 0}, + {"SYS_ACCEPT4", Const, 0}, + {"SYS_ACCEPT_NOCANCEL", Const, 0}, + {"SYS_ACCESS", Const, 0}, + {"SYS_ACCESS_EXTENDED", Const, 0}, + {"SYS_ACCT", Const, 0}, + {"SYS_ADD_KEY", Const, 0}, + {"SYS_ADD_PROFIL", Const, 0}, + {"SYS_ADJFREQ", Const, 1}, + {"SYS_ADJTIME", Const, 0}, + {"SYS_ADJTIMEX", Const, 0}, + {"SYS_AFS_SYSCALL", Const, 0}, + {"SYS_AIO_CANCEL", Const, 0}, + {"SYS_AIO_ERROR", Const, 0}, + {"SYS_AIO_FSYNC", Const, 0}, + {"SYS_AIO_MLOCK", Const, 14}, + {"SYS_AIO_READ", Const, 0}, + {"SYS_AIO_RETURN", Const, 0}, + {"SYS_AIO_SUSPEND", Const, 0}, + {"SYS_AIO_SUSPEND_NOCANCEL", Const, 0}, + {"SYS_AIO_WAITCOMPLETE", Const, 14}, + {"SYS_AIO_WRITE", Const, 0}, + {"SYS_ALARM", Const, 0}, + {"SYS_ARCH_PRCTL", Const, 0}, + {"SYS_ARM_FADVISE64_64", Const, 0}, + {"SYS_ARM_SYNC_FILE_RANGE", Const, 0}, + {"SYS_ATGETMSG", Const, 0}, + {"SYS_ATPGETREQ", Const, 0}, + {"SYS_ATPGETRSP", Const, 0}, + {"SYS_ATPSNDREQ", Const, 0}, + {"SYS_ATPSNDRSP", Const, 0}, + {"SYS_ATPUTMSG", Const, 0}, + {"SYS_ATSOCKET", Const, 0}, + {"SYS_AUDIT", Const, 0}, + {"SYS_AUDITCTL", Const, 0}, + {"SYS_AUDITON", Const, 0}, + {"SYS_AUDIT_SESSION_JOIN", Const, 0}, + {"SYS_AUDIT_SESSION_PORT", Const, 0}, + {"SYS_AUDIT_SESSION_SELF", Const, 0}, + {"SYS_BDFLUSH", Const, 0}, + {"SYS_BIND", Const, 0}, + {"SYS_BINDAT", Const, 3}, + {"SYS_BREAK", Const, 0}, + {"SYS_BRK", Const, 0}, + {"SYS_BSDTHREAD_CREATE", Const, 0}, + {"SYS_BSDTHREAD_REGISTER", Const, 0}, + {"SYS_BSDTHREAD_TERMINATE", Const, 0}, + {"SYS_CAPGET", Const, 0}, + {"SYS_CAPSET", Const, 0}, + {"SYS_CAP_ENTER", Const, 0}, + {"SYS_CAP_FCNTLS_GET", Const, 1}, + {"SYS_CAP_FCNTLS_LIMIT", Const, 1}, + {"SYS_CAP_GETMODE", Const, 0}, + {"SYS_CAP_GETRIGHTS", Const, 0}, + {"SYS_CAP_IOCTLS_GET", Const, 1}, + {"SYS_CAP_IOCTLS_LIMIT", Const, 1}, + {"SYS_CAP_NEW", Const, 0}, + {"SYS_CAP_RIGHTS_GET", Const, 1}, + {"SYS_CAP_RIGHTS_LIMIT", Const, 1}, + {"SYS_CHDIR", Const, 0}, + {"SYS_CHFLAGS", Const, 0}, + {"SYS_CHFLAGSAT", Const, 3}, + {"SYS_CHMOD", Const, 0}, + {"SYS_CHMOD_EXTENDED", Const, 0}, + {"SYS_CHOWN", Const, 0}, + {"SYS_CHOWN32", Const, 0}, + {"SYS_CHROOT", Const, 0}, + {"SYS_CHUD", Const, 0}, + {"SYS_CLOCK_ADJTIME", Const, 0}, + {"SYS_CLOCK_GETCPUCLOCKID2", Const, 1}, + {"SYS_CLOCK_GETRES", Const, 0}, + {"SYS_CLOCK_GETTIME", Const, 0}, + {"SYS_CLOCK_NANOSLEEP", Const, 0}, + {"SYS_CLOCK_SETTIME", Const, 0}, + {"SYS_CLONE", Const, 0}, + {"SYS_CLOSE", Const, 0}, + {"SYS_CLOSEFROM", Const, 0}, + {"SYS_CLOSE_NOCANCEL", Const, 0}, + {"SYS_CONNECT", Const, 0}, + {"SYS_CONNECTAT", Const, 3}, + {"SYS_CONNECT_NOCANCEL", Const, 0}, + {"SYS_COPYFILE", Const, 0}, + {"SYS_CPUSET", Const, 0}, + {"SYS_CPUSET_GETAFFINITY", Const, 0}, + {"SYS_CPUSET_GETID", Const, 0}, + {"SYS_CPUSET_SETAFFINITY", Const, 0}, + {"SYS_CPUSET_SETID", Const, 0}, + {"SYS_CREAT", Const, 0}, + {"SYS_CREATE_MODULE", Const, 0}, + {"SYS_CSOPS", Const, 0}, + {"SYS_CSOPS_AUDITTOKEN", Const, 16}, + {"SYS_DELETE", Const, 0}, + {"SYS_DELETE_MODULE", Const, 0}, + {"SYS_DUP", Const, 0}, + {"SYS_DUP2", Const, 0}, + {"SYS_DUP3", Const, 0}, + {"SYS_EACCESS", Const, 0}, + {"SYS_EPOLL_CREATE", Const, 0}, + {"SYS_EPOLL_CREATE1", Const, 0}, + {"SYS_EPOLL_CTL", Const, 0}, + {"SYS_EPOLL_CTL_OLD", Const, 0}, + {"SYS_EPOLL_PWAIT", Const, 0}, + {"SYS_EPOLL_WAIT", Const, 0}, + {"SYS_EPOLL_WAIT_OLD", Const, 0}, + {"SYS_EVENTFD", Const, 0}, + {"SYS_EVENTFD2", Const, 0}, + {"SYS_EXCHANGEDATA", Const, 0}, + {"SYS_EXECVE", Const, 0}, + {"SYS_EXIT", Const, 0}, + {"SYS_EXIT_GROUP", Const, 0}, + {"SYS_EXTATTRCTL", Const, 0}, + {"SYS_EXTATTR_DELETE_FD", Const, 0}, + {"SYS_EXTATTR_DELETE_FILE", Const, 0}, + {"SYS_EXTATTR_DELETE_LINK", Const, 0}, + {"SYS_EXTATTR_GET_FD", Const, 0}, + {"SYS_EXTATTR_GET_FILE", Const, 0}, + {"SYS_EXTATTR_GET_LINK", Const, 0}, + {"SYS_EXTATTR_LIST_FD", Const, 0}, + {"SYS_EXTATTR_LIST_FILE", Const, 0}, + {"SYS_EXTATTR_LIST_LINK", Const, 0}, + {"SYS_EXTATTR_SET_FD", Const, 0}, + {"SYS_EXTATTR_SET_FILE", Const, 0}, + {"SYS_EXTATTR_SET_LINK", Const, 0}, + {"SYS_FACCESSAT", Const, 0}, + {"SYS_FADVISE64", Const, 0}, + {"SYS_FADVISE64_64", Const, 0}, + {"SYS_FALLOCATE", Const, 0}, + {"SYS_FANOTIFY_INIT", Const, 0}, + {"SYS_FANOTIFY_MARK", Const, 0}, + {"SYS_FCHDIR", Const, 0}, + {"SYS_FCHFLAGS", Const, 0}, + {"SYS_FCHMOD", Const, 0}, + {"SYS_FCHMODAT", Const, 0}, + {"SYS_FCHMOD_EXTENDED", Const, 0}, + {"SYS_FCHOWN", Const, 0}, + {"SYS_FCHOWN32", Const, 0}, + {"SYS_FCHOWNAT", Const, 0}, + {"SYS_FCHROOT", Const, 1}, + {"SYS_FCNTL", Const, 0}, + {"SYS_FCNTL64", Const, 0}, + {"SYS_FCNTL_NOCANCEL", Const, 0}, + {"SYS_FDATASYNC", Const, 0}, + {"SYS_FEXECVE", Const, 0}, + {"SYS_FFCLOCK_GETCOUNTER", Const, 0}, + {"SYS_FFCLOCK_GETESTIMATE", Const, 0}, + {"SYS_FFCLOCK_SETESTIMATE", Const, 0}, + {"SYS_FFSCTL", Const, 0}, + {"SYS_FGETATTRLIST", Const, 0}, + {"SYS_FGETXATTR", Const, 0}, + {"SYS_FHOPEN", Const, 0}, + {"SYS_FHSTAT", Const, 0}, + {"SYS_FHSTATFS", Const, 0}, + {"SYS_FILEPORT_MAKEFD", Const, 0}, + {"SYS_FILEPORT_MAKEPORT", Const, 0}, + {"SYS_FKTRACE", Const, 1}, + {"SYS_FLISTXATTR", Const, 0}, + {"SYS_FLOCK", Const, 0}, + {"SYS_FORK", Const, 0}, + {"SYS_FPATHCONF", Const, 0}, + {"SYS_FREEBSD6_FTRUNCATE", Const, 0}, + {"SYS_FREEBSD6_LSEEK", Const, 0}, + {"SYS_FREEBSD6_MMAP", Const, 0}, + {"SYS_FREEBSD6_PREAD", Const, 0}, + {"SYS_FREEBSD6_PWRITE", Const, 0}, + {"SYS_FREEBSD6_TRUNCATE", Const, 0}, + {"SYS_FREMOVEXATTR", Const, 0}, + {"SYS_FSCTL", Const, 0}, + {"SYS_FSETATTRLIST", Const, 0}, + {"SYS_FSETXATTR", Const, 0}, + {"SYS_FSGETPATH", Const, 0}, + {"SYS_FSTAT", Const, 0}, + {"SYS_FSTAT64", Const, 0}, + {"SYS_FSTAT64_EXTENDED", Const, 0}, + {"SYS_FSTATAT", Const, 0}, + {"SYS_FSTATAT64", Const, 0}, + {"SYS_FSTATFS", Const, 0}, + {"SYS_FSTATFS64", Const, 0}, + {"SYS_FSTATV", Const, 0}, + {"SYS_FSTATVFS1", Const, 1}, + {"SYS_FSTAT_EXTENDED", Const, 0}, + {"SYS_FSYNC", Const, 0}, + {"SYS_FSYNC_NOCANCEL", Const, 0}, + {"SYS_FSYNC_RANGE", Const, 1}, + {"SYS_FTIME", Const, 0}, + {"SYS_FTRUNCATE", Const, 0}, + {"SYS_FTRUNCATE64", Const, 0}, + {"SYS_FUTEX", Const, 0}, + {"SYS_FUTIMENS", Const, 1}, + {"SYS_FUTIMES", Const, 0}, + {"SYS_FUTIMESAT", Const, 0}, + {"SYS_GETATTRLIST", Const, 0}, + {"SYS_GETAUDIT", Const, 0}, + {"SYS_GETAUDIT_ADDR", Const, 0}, + {"SYS_GETAUID", Const, 0}, + {"SYS_GETCONTEXT", Const, 0}, + {"SYS_GETCPU", Const, 0}, + {"SYS_GETCWD", Const, 0}, + {"SYS_GETDENTS", Const, 0}, + {"SYS_GETDENTS64", Const, 0}, + {"SYS_GETDIRENTRIES", Const, 0}, + {"SYS_GETDIRENTRIES64", Const, 0}, + {"SYS_GETDIRENTRIESATTR", Const, 0}, + {"SYS_GETDTABLECOUNT", Const, 1}, + {"SYS_GETDTABLESIZE", Const, 0}, + {"SYS_GETEGID", Const, 0}, + {"SYS_GETEGID32", Const, 0}, + {"SYS_GETEUID", Const, 0}, + {"SYS_GETEUID32", Const, 0}, + {"SYS_GETFH", Const, 0}, + {"SYS_GETFSSTAT", Const, 0}, + {"SYS_GETFSSTAT64", Const, 0}, + {"SYS_GETGID", Const, 0}, + {"SYS_GETGID32", Const, 0}, + {"SYS_GETGROUPS", Const, 0}, + {"SYS_GETGROUPS32", Const, 0}, + {"SYS_GETHOSTUUID", Const, 0}, + {"SYS_GETITIMER", Const, 0}, + {"SYS_GETLCID", Const, 0}, + {"SYS_GETLOGIN", Const, 0}, + {"SYS_GETLOGINCLASS", Const, 0}, + {"SYS_GETPEERNAME", Const, 0}, + {"SYS_GETPGID", Const, 0}, + {"SYS_GETPGRP", Const, 0}, + {"SYS_GETPID", Const, 0}, + {"SYS_GETPMSG", Const, 0}, + {"SYS_GETPPID", Const, 0}, + {"SYS_GETPRIORITY", Const, 0}, + {"SYS_GETRESGID", Const, 0}, + {"SYS_GETRESGID32", Const, 0}, + {"SYS_GETRESUID", Const, 0}, + {"SYS_GETRESUID32", Const, 0}, + {"SYS_GETRLIMIT", Const, 0}, + {"SYS_GETRTABLE", Const, 1}, + {"SYS_GETRUSAGE", Const, 0}, + {"SYS_GETSGROUPS", Const, 0}, + {"SYS_GETSID", Const, 0}, + {"SYS_GETSOCKNAME", Const, 0}, + {"SYS_GETSOCKOPT", Const, 0}, + {"SYS_GETTHRID", Const, 1}, + {"SYS_GETTID", Const, 0}, + {"SYS_GETTIMEOFDAY", Const, 0}, + {"SYS_GETUID", Const, 0}, + {"SYS_GETUID32", Const, 0}, + {"SYS_GETVFSSTAT", Const, 1}, + {"SYS_GETWGROUPS", Const, 0}, + {"SYS_GETXATTR", Const, 0}, + {"SYS_GET_KERNEL_SYMS", Const, 0}, + {"SYS_GET_MEMPOLICY", Const, 0}, + {"SYS_GET_ROBUST_LIST", Const, 0}, + {"SYS_GET_THREAD_AREA", Const, 0}, + {"SYS_GSSD_SYSCALL", Const, 14}, + {"SYS_GTTY", Const, 0}, + {"SYS_IDENTITYSVC", Const, 0}, + {"SYS_IDLE", Const, 0}, + {"SYS_INITGROUPS", Const, 0}, + {"SYS_INIT_MODULE", Const, 0}, + {"SYS_INOTIFY_ADD_WATCH", Const, 0}, + {"SYS_INOTIFY_INIT", Const, 0}, + {"SYS_INOTIFY_INIT1", Const, 0}, + {"SYS_INOTIFY_RM_WATCH", Const, 0}, + {"SYS_IOCTL", Const, 0}, + {"SYS_IOPERM", Const, 0}, + {"SYS_IOPL", Const, 0}, + {"SYS_IOPOLICYSYS", Const, 0}, + {"SYS_IOPRIO_GET", Const, 0}, + {"SYS_IOPRIO_SET", Const, 0}, + {"SYS_IO_CANCEL", Const, 0}, + {"SYS_IO_DESTROY", Const, 0}, + {"SYS_IO_GETEVENTS", Const, 0}, + {"SYS_IO_SETUP", Const, 0}, + {"SYS_IO_SUBMIT", Const, 0}, + {"SYS_IPC", Const, 0}, + {"SYS_ISSETUGID", Const, 0}, + {"SYS_JAIL", Const, 0}, + {"SYS_JAIL_ATTACH", Const, 0}, + {"SYS_JAIL_GET", Const, 0}, + {"SYS_JAIL_REMOVE", Const, 0}, + {"SYS_JAIL_SET", Const, 0}, + {"SYS_KAS_INFO", Const, 16}, + {"SYS_KDEBUG_TRACE", Const, 0}, + {"SYS_KENV", Const, 0}, + {"SYS_KEVENT", Const, 0}, + {"SYS_KEVENT64", Const, 0}, + {"SYS_KEXEC_LOAD", Const, 0}, + {"SYS_KEYCTL", Const, 0}, + {"SYS_KILL", Const, 0}, + {"SYS_KLDFIND", Const, 0}, + {"SYS_KLDFIRSTMOD", Const, 0}, + {"SYS_KLDLOAD", Const, 0}, + {"SYS_KLDNEXT", Const, 0}, + {"SYS_KLDSTAT", Const, 0}, + {"SYS_KLDSYM", Const, 0}, + {"SYS_KLDUNLOAD", Const, 0}, + {"SYS_KLDUNLOADF", Const, 0}, + {"SYS_KMQ_NOTIFY", Const, 14}, + {"SYS_KMQ_OPEN", Const, 14}, + {"SYS_KMQ_SETATTR", Const, 14}, + {"SYS_KMQ_TIMEDRECEIVE", Const, 14}, + {"SYS_KMQ_TIMEDSEND", Const, 14}, + {"SYS_KMQ_UNLINK", Const, 14}, + {"SYS_KQUEUE", Const, 0}, + {"SYS_KQUEUE1", Const, 1}, + {"SYS_KSEM_CLOSE", Const, 14}, + {"SYS_KSEM_DESTROY", Const, 14}, + {"SYS_KSEM_GETVALUE", Const, 14}, + {"SYS_KSEM_INIT", Const, 14}, + {"SYS_KSEM_OPEN", Const, 14}, + {"SYS_KSEM_POST", Const, 14}, + {"SYS_KSEM_TIMEDWAIT", Const, 14}, + {"SYS_KSEM_TRYWAIT", Const, 14}, + {"SYS_KSEM_UNLINK", Const, 14}, + {"SYS_KSEM_WAIT", Const, 14}, + {"SYS_KTIMER_CREATE", Const, 0}, + {"SYS_KTIMER_DELETE", Const, 0}, + {"SYS_KTIMER_GETOVERRUN", Const, 0}, + {"SYS_KTIMER_GETTIME", Const, 0}, + {"SYS_KTIMER_SETTIME", Const, 0}, + {"SYS_KTRACE", Const, 0}, + {"SYS_LCHFLAGS", Const, 0}, + {"SYS_LCHMOD", Const, 0}, + {"SYS_LCHOWN", Const, 0}, + {"SYS_LCHOWN32", Const, 0}, + {"SYS_LEDGER", Const, 16}, + {"SYS_LGETFH", Const, 0}, + {"SYS_LGETXATTR", Const, 0}, + {"SYS_LINK", Const, 0}, + {"SYS_LINKAT", Const, 0}, + {"SYS_LIO_LISTIO", Const, 0}, + {"SYS_LISTEN", Const, 0}, + {"SYS_LISTXATTR", Const, 0}, + {"SYS_LLISTXATTR", Const, 0}, + {"SYS_LOCK", Const, 0}, + {"SYS_LOOKUP_DCOOKIE", Const, 0}, + {"SYS_LPATHCONF", Const, 0}, + {"SYS_LREMOVEXATTR", Const, 0}, + {"SYS_LSEEK", Const, 0}, + {"SYS_LSETXATTR", Const, 0}, + {"SYS_LSTAT", Const, 0}, + {"SYS_LSTAT64", Const, 0}, + {"SYS_LSTAT64_EXTENDED", Const, 0}, + {"SYS_LSTATV", Const, 0}, + {"SYS_LSTAT_EXTENDED", Const, 0}, + {"SYS_LUTIMES", Const, 0}, + {"SYS_MAC_SYSCALL", Const, 0}, + {"SYS_MADVISE", Const, 0}, + {"SYS_MADVISE1", Const, 0}, + {"SYS_MAXSYSCALL", Const, 0}, + {"SYS_MBIND", Const, 0}, + {"SYS_MIGRATE_PAGES", Const, 0}, + {"SYS_MINCORE", Const, 0}, + {"SYS_MINHERIT", Const, 0}, + {"SYS_MKCOMPLEX", Const, 0}, + {"SYS_MKDIR", Const, 0}, + {"SYS_MKDIRAT", Const, 0}, + {"SYS_MKDIR_EXTENDED", Const, 0}, + {"SYS_MKFIFO", Const, 0}, + {"SYS_MKFIFOAT", Const, 0}, + {"SYS_MKFIFO_EXTENDED", Const, 0}, + {"SYS_MKNOD", Const, 0}, + {"SYS_MKNODAT", Const, 0}, + {"SYS_MLOCK", Const, 0}, + {"SYS_MLOCKALL", Const, 0}, + {"SYS_MMAP", Const, 0}, + {"SYS_MMAP2", Const, 0}, + {"SYS_MODCTL", Const, 1}, + {"SYS_MODFIND", Const, 0}, + {"SYS_MODFNEXT", Const, 0}, + {"SYS_MODIFY_LDT", Const, 0}, + {"SYS_MODNEXT", Const, 0}, + {"SYS_MODSTAT", Const, 0}, + {"SYS_MODWATCH", Const, 0}, + {"SYS_MOUNT", Const, 0}, + {"SYS_MOVE_PAGES", Const, 0}, + {"SYS_MPROTECT", Const, 0}, + {"SYS_MPX", Const, 0}, + {"SYS_MQUERY", Const, 1}, + {"SYS_MQ_GETSETATTR", Const, 0}, + {"SYS_MQ_NOTIFY", Const, 0}, + {"SYS_MQ_OPEN", Const, 0}, + {"SYS_MQ_TIMEDRECEIVE", Const, 0}, + {"SYS_MQ_TIMEDSEND", Const, 0}, + {"SYS_MQ_UNLINK", Const, 0}, + {"SYS_MREMAP", Const, 0}, + {"SYS_MSGCTL", Const, 0}, + {"SYS_MSGGET", Const, 0}, + {"SYS_MSGRCV", Const, 0}, + {"SYS_MSGRCV_NOCANCEL", Const, 0}, + {"SYS_MSGSND", Const, 0}, + {"SYS_MSGSND_NOCANCEL", Const, 0}, + {"SYS_MSGSYS", Const, 0}, + {"SYS_MSYNC", Const, 0}, + {"SYS_MSYNC_NOCANCEL", Const, 0}, + {"SYS_MUNLOCK", Const, 0}, + {"SYS_MUNLOCKALL", Const, 0}, + {"SYS_MUNMAP", Const, 0}, + {"SYS_NAME_TO_HANDLE_AT", Const, 0}, + {"SYS_NANOSLEEP", Const, 0}, + {"SYS_NEWFSTATAT", Const, 0}, + {"SYS_NFSCLNT", Const, 0}, + {"SYS_NFSSERVCTL", Const, 0}, + {"SYS_NFSSVC", Const, 0}, + {"SYS_NFSTAT", Const, 0}, + {"SYS_NICE", Const, 0}, + {"SYS_NLM_SYSCALL", Const, 14}, + {"SYS_NLSTAT", Const, 0}, + {"SYS_NMOUNT", Const, 0}, + {"SYS_NSTAT", Const, 0}, + {"SYS_NTP_ADJTIME", Const, 0}, + {"SYS_NTP_GETTIME", Const, 0}, + {"SYS_NUMA_GETAFFINITY", Const, 14}, + {"SYS_NUMA_SETAFFINITY", Const, 14}, + {"SYS_OABI_SYSCALL_BASE", Const, 0}, + {"SYS_OBREAK", Const, 0}, + {"SYS_OLDFSTAT", Const, 0}, + {"SYS_OLDLSTAT", Const, 0}, + {"SYS_OLDOLDUNAME", Const, 0}, + {"SYS_OLDSTAT", Const, 0}, + {"SYS_OLDUNAME", Const, 0}, + {"SYS_OPEN", Const, 0}, + {"SYS_OPENAT", Const, 0}, + {"SYS_OPENBSD_POLL", Const, 0}, + {"SYS_OPEN_BY_HANDLE_AT", Const, 0}, + {"SYS_OPEN_DPROTECTED_NP", Const, 16}, + {"SYS_OPEN_EXTENDED", Const, 0}, + {"SYS_OPEN_NOCANCEL", Const, 0}, + {"SYS_OVADVISE", Const, 0}, + {"SYS_PACCEPT", Const, 1}, + {"SYS_PATHCONF", Const, 0}, + {"SYS_PAUSE", Const, 0}, + {"SYS_PCICONFIG_IOBASE", Const, 0}, + {"SYS_PCICONFIG_READ", Const, 0}, + {"SYS_PCICONFIG_WRITE", Const, 0}, + {"SYS_PDFORK", Const, 0}, + {"SYS_PDGETPID", Const, 0}, + {"SYS_PDKILL", Const, 0}, + {"SYS_PERF_EVENT_OPEN", Const, 0}, + {"SYS_PERSONALITY", Const, 0}, + {"SYS_PID_HIBERNATE", Const, 0}, + {"SYS_PID_RESUME", Const, 0}, + {"SYS_PID_SHUTDOWN_SOCKETS", Const, 0}, + {"SYS_PID_SUSPEND", Const, 0}, + {"SYS_PIPE", Const, 0}, + {"SYS_PIPE2", Const, 0}, + {"SYS_PIVOT_ROOT", Const, 0}, + {"SYS_PMC_CONTROL", Const, 1}, + {"SYS_PMC_GET_INFO", Const, 1}, + {"SYS_POLL", Const, 0}, + {"SYS_POLLTS", Const, 1}, + {"SYS_POLL_NOCANCEL", Const, 0}, + {"SYS_POSIX_FADVISE", Const, 0}, + {"SYS_POSIX_FALLOCATE", Const, 0}, + {"SYS_POSIX_OPENPT", Const, 0}, + {"SYS_POSIX_SPAWN", Const, 0}, + {"SYS_PPOLL", Const, 0}, + {"SYS_PRCTL", Const, 0}, + {"SYS_PREAD", Const, 0}, + {"SYS_PREAD64", Const, 0}, + {"SYS_PREADV", Const, 0}, + {"SYS_PREAD_NOCANCEL", Const, 0}, + {"SYS_PRLIMIT64", Const, 0}, + {"SYS_PROCCTL", Const, 3}, + {"SYS_PROCESS_POLICY", Const, 0}, + {"SYS_PROCESS_VM_READV", Const, 0}, + {"SYS_PROCESS_VM_WRITEV", Const, 0}, + {"SYS_PROC_INFO", Const, 0}, + {"SYS_PROF", Const, 0}, + {"SYS_PROFIL", Const, 0}, + {"SYS_PSELECT", Const, 0}, + {"SYS_PSELECT6", Const, 0}, + {"SYS_PSET_ASSIGN", Const, 1}, + {"SYS_PSET_CREATE", Const, 1}, + {"SYS_PSET_DESTROY", Const, 1}, + {"SYS_PSYNCH_CVBROAD", Const, 0}, + {"SYS_PSYNCH_CVCLRPREPOST", Const, 0}, + {"SYS_PSYNCH_CVSIGNAL", Const, 0}, + {"SYS_PSYNCH_CVWAIT", Const, 0}, + {"SYS_PSYNCH_MUTEXDROP", Const, 0}, + {"SYS_PSYNCH_MUTEXWAIT", Const, 0}, + {"SYS_PSYNCH_RW_DOWNGRADE", Const, 0}, + {"SYS_PSYNCH_RW_LONGRDLOCK", Const, 0}, + {"SYS_PSYNCH_RW_RDLOCK", Const, 0}, + {"SYS_PSYNCH_RW_UNLOCK", Const, 0}, + {"SYS_PSYNCH_RW_UNLOCK2", Const, 0}, + {"SYS_PSYNCH_RW_UPGRADE", Const, 0}, + {"SYS_PSYNCH_RW_WRLOCK", Const, 0}, + {"SYS_PSYNCH_RW_YIELDWRLOCK", Const, 0}, + {"SYS_PTRACE", Const, 0}, + {"SYS_PUTPMSG", Const, 0}, + {"SYS_PWRITE", Const, 0}, + {"SYS_PWRITE64", Const, 0}, + {"SYS_PWRITEV", Const, 0}, + {"SYS_PWRITE_NOCANCEL", Const, 0}, + {"SYS_QUERY_MODULE", Const, 0}, + {"SYS_QUOTACTL", Const, 0}, + {"SYS_RASCTL", Const, 1}, + {"SYS_RCTL_ADD_RULE", Const, 0}, + {"SYS_RCTL_GET_LIMITS", Const, 0}, + {"SYS_RCTL_GET_RACCT", Const, 0}, + {"SYS_RCTL_GET_RULES", Const, 0}, + {"SYS_RCTL_REMOVE_RULE", Const, 0}, + {"SYS_READ", Const, 0}, + {"SYS_READAHEAD", Const, 0}, + {"SYS_READDIR", Const, 0}, + {"SYS_READLINK", Const, 0}, + {"SYS_READLINKAT", Const, 0}, + {"SYS_READV", Const, 0}, + {"SYS_READV_NOCANCEL", Const, 0}, + {"SYS_READ_NOCANCEL", Const, 0}, + {"SYS_REBOOT", Const, 0}, + {"SYS_RECV", Const, 0}, + {"SYS_RECVFROM", Const, 0}, + {"SYS_RECVFROM_NOCANCEL", Const, 0}, + {"SYS_RECVMMSG", Const, 0}, + {"SYS_RECVMSG", Const, 0}, + {"SYS_RECVMSG_NOCANCEL", Const, 0}, + {"SYS_REMAP_FILE_PAGES", Const, 0}, + {"SYS_REMOVEXATTR", Const, 0}, + {"SYS_RENAME", Const, 0}, + {"SYS_RENAMEAT", Const, 0}, + {"SYS_REQUEST_KEY", Const, 0}, + {"SYS_RESTART_SYSCALL", Const, 0}, + {"SYS_REVOKE", Const, 0}, + {"SYS_RFORK", Const, 0}, + {"SYS_RMDIR", Const, 0}, + {"SYS_RTPRIO", Const, 0}, + {"SYS_RTPRIO_THREAD", Const, 0}, + {"SYS_RT_SIGACTION", Const, 0}, + {"SYS_RT_SIGPENDING", Const, 0}, + {"SYS_RT_SIGPROCMASK", Const, 0}, + {"SYS_RT_SIGQUEUEINFO", Const, 0}, + {"SYS_RT_SIGRETURN", Const, 0}, + {"SYS_RT_SIGSUSPEND", Const, 0}, + {"SYS_RT_SIGTIMEDWAIT", Const, 0}, + {"SYS_RT_TGSIGQUEUEINFO", Const, 0}, + {"SYS_SBRK", Const, 0}, + {"SYS_SCHED_GETAFFINITY", Const, 0}, + {"SYS_SCHED_GETPARAM", Const, 0}, + {"SYS_SCHED_GETSCHEDULER", Const, 0}, + {"SYS_SCHED_GET_PRIORITY_MAX", Const, 0}, + {"SYS_SCHED_GET_PRIORITY_MIN", Const, 0}, + {"SYS_SCHED_RR_GET_INTERVAL", Const, 0}, + {"SYS_SCHED_SETAFFINITY", Const, 0}, + {"SYS_SCHED_SETPARAM", Const, 0}, + {"SYS_SCHED_SETSCHEDULER", Const, 0}, + {"SYS_SCHED_YIELD", Const, 0}, + {"SYS_SCTP_GENERIC_RECVMSG", Const, 0}, + {"SYS_SCTP_GENERIC_SENDMSG", Const, 0}, + {"SYS_SCTP_GENERIC_SENDMSG_IOV", Const, 0}, + {"SYS_SCTP_PEELOFF", Const, 0}, + {"SYS_SEARCHFS", Const, 0}, + {"SYS_SECURITY", Const, 0}, + {"SYS_SELECT", Const, 0}, + {"SYS_SELECT_NOCANCEL", Const, 0}, + {"SYS_SEMCONFIG", Const, 1}, + {"SYS_SEMCTL", Const, 0}, + {"SYS_SEMGET", Const, 0}, + {"SYS_SEMOP", Const, 0}, + {"SYS_SEMSYS", Const, 0}, + {"SYS_SEMTIMEDOP", Const, 0}, + {"SYS_SEM_CLOSE", Const, 0}, + {"SYS_SEM_DESTROY", Const, 0}, + {"SYS_SEM_GETVALUE", Const, 0}, + {"SYS_SEM_INIT", Const, 0}, + {"SYS_SEM_OPEN", Const, 0}, + {"SYS_SEM_POST", Const, 0}, + {"SYS_SEM_TRYWAIT", Const, 0}, + {"SYS_SEM_UNLINK", Const, 0}, + {"SYS_SEM_WAIT", Const, 0}, + {"SYS_SEM_WAIT_NOCANCEL", Const, 0}, + {"SYS_SEND", Const, 0}, + {"SYS_SENDFILE", Const, 0}, + {"SYS_SENDFILE64", Const, 0}, + {"SYS_SENDMMSG", Const, 0}, + {"SYS_SENDMSG", Const, 0}, + {"SYS_SENDMSG_NOCANCEL", Const, 0}, + {"SYS_SENDTO", Const, 0}, + {"SYS_SENDTO_NOCANCEL", Const, 0}, + {"SYS_SETATTRLIST", Const, 0}, + {"SYS_SETAUDIT", Const, 0}, + {"SYS_SETAUDIT_ADDR", Const, 0}, + {"SYS_SETAUID", Const, 0}, + {"SYS_SETCONTEXT", Const, 0}, + {"SYS_SETDOMAINNAME", Const, 0}, + {"SYS_SETEGID", Const, 0}, + {"SYS_SETEUID", Const, 0}, + {"SYS_SETFIB", Const, 0}, + {"SYS_SETFSGID", Const, 0}, + {"SYS_SETFSGID32", Const, 0}, + {"SYS_SETFSUID", Const, 0}, + {"SYS_SETFSUID32", Const, 0}, + {"SYS_SETGID", Const, 0}, + {"SYS_SETGID32", Const, 0}, + {"SYS_SETGROUPS", Const, 0}, + {"SYS_SETGROUPS32", Const, 0}, + {"SYS_SETHOSTNAME", Const, 0}, + {"SYS_SETITIMER", Const, 0}, + {"SYS_SETLCID", Const, 0}, + {"SYS_SETLOGIN", Const, 0}, + {"SYS_SETLOGINCLASS", Const, 0}, + {"SYS_SETNS", Const, 0}, + {"SYS_SETPGID", Const, 0}, + {"SYS_SETPRIORITY", Const, 0}, + {"SYS_SETPRIVEXEC", Const, 0}, + {"SYS_SETREGID", Const, 0}, + {"SYS_SETREGID32", Const, 0}, + {"SYS_SETRESGID", Const, 0}, + {"SYS_SETRESGID32", Const, 0}, + {"SYS_SETRESUID", Const, 0}, + {"SYS_SETRESUID32", Const, 0}, + {"SYS_SETREUID", Const, 0}, + {"SYS_SETREUID32", Const, 0}, + {"SYS_SETRLIMIT", Const, 0}, + {"SYS_SETRTABLE", Const, 1}, + {"SYS_SETSGROUPS", Const, 0}, + {"SYS_SETSID", Const, 0}, + {"SYS_SETSOCKOPT", Const, 0}, + {"SYS_SETTID", Const, 0}, + {"SYS_SETTID_WITH_PID", Const, 0}, + {"SYS_SETTIMEOFDAY", Const, 0}, + {"SYS_SETUID", Const, 0}, + {"SYS_SETUID32", Const, 0}, + {"SYS_SETWGROUPS", Const, 0}, + {"SYS_SETXATTR", Const, 0}, + {"SYS_SET_MEMPOLICY", Const, 0}, + {"SYS_SET_ROBUST_LIST", Const, 0}, + {"SYS_SET_THREAD_AREA", Const, 0}, + {"SYS_SET_TID_ADDRESS", Const, 0}, + {"SYS_SGETMASK", Const, 0}, + {"SYS_SHARED_REGION_CHECK_NP", Const, 0}, + {"SYS_SHARED_REGION_MAP_AND_SLIDE_NP", Const, 0}, + {"SYS_SHMAT", Const, 0}, + {"SYS_SHMCTL", Const, 0}, + {"SYS_SHMDT", Const, 0}, + {"SYS_SHMGET", Const, 0}, + {"SYS_SHMSYS", Const, 0}, + {"SYS_SHM_OPEN", Const, 0}, + {"SYS_SHM_UNLINK", Const, 0}, + {"SYS_SHUTDOWN", Const, 0}, + {"SYS_SIGACTION", Const, 0}, + {"SYS_SIGALTSTACK", Const, 0}, + {"SYS_SIGNAL", Const, 0}, + {"SYS_SIGNALFD", Const, 0}, + {"SYS_SIGNALFD4", Const, 0}, + {"SYS_SIGPENDING", Const, 0}, + {"SYS_SIGPROCMASK", Const, 0}, + {"SYS_SIGQUEUE", Const, 0}, + {"SYS_SIGQUEUEINFO", Const, 1}, + {"SYS_SIGRETURN", Const, 0}, + {"SYS_SIGSUSPEND", Const, 0}, + {"SYS_SIGSUSPEND_NOCANCEL", Const, 0}, + {"SYS_SIGTIMEDWAIT", Const, 0}, + {"SYS_SIGWAIT", Const, 0}, + {"SYS_SIGWAITINFO", Const, 0}, + {"SYS_SOCKET", Const, 0}, + {"SYS_SOCKETCALL", Const, 0}, + {"SYS_SOCKETPAIR", Const, 0}, + {"SYS_SPLICE", Const, 0}, + {"SYS_SSETMASK", Const, 0}, + {"SYS_SSTK", Const, 0}, + {"SYS_STACK_SNAPSHOT", Const, 0}, + {"SYS_STAT", Const, 0}, + {"SYS_STAT64", Const, 0}, + {"SYS_STAT64_EXTENDED", Const, 0}, + {"SYS_STATFS", Const, 0}, + {"SYS_STATFS64", Const, 0}, + {"SYS_STATV", Const, 0}, + {"SYS_STATVFS1", Const, 1}, + {"SYS_STAT_EXTENDED", Const, 0}, + {"SYS_STIME", Const, 0}, + {"SYS_STTY", Const, 0}, + {"SYS_SWAPCONTEXT", Const, 0}, + {"SYS_SWAPCTL", Const, 1}, + {"SYS_SWAPOFF", Const, 0}, + {"SYS_SWAPON", Const, 0}, + {"SYS_SYMLINK", Const, 0}, + {"SYS_SYMLINKAT", Const, 0}, + {"SYS_SYNC", Const, 0}, + {"SYS_SYNCFS", Const, 0}, + {"SYS_SYNC_FILE_RANGE", Const, 0}, + {"SYS_SYSARCH", Const, 0}, + {"SYS_SYSCALL", Const, 0}, + {"SYS_SYSCALL_BASE", Const, 0}, + {"SYS_SYSFS", Const, 0}, + {"SYS_SYSINFO", Const, 0}, + {"SYS_SYSLOG", Const, 0}, + {"SYS_TEE", Const, 0}, + {"SYS_TGKILL", Const, 0}, + {"SYS_THREAD_SELFID", Const, 0}, + {"SYS_THR_CREATE", Const, 0}, + {"SYS_THR_EXIT", Const, 0}, + {"SYS_THR_KILL", Const, 0}, + {"SYS_THR_KILL2", Const, 0}, + {"SYS_THR_NEW", Const, 0}, + {"SYS_THR_SELF", Const, 0}, + {"SYS_THR_SET_NAME", Const, 0}, + {"SYS_THR_SUSPEND", Const, 0}, + {"SYS_THR_WAKE", Const, 0}, + {"SYS_TIME", Const, 0}, + {"SYS_TIMERFD_CREATE", Const, 0}, + {"SYS_TIMERFD_GETTIME", Const, 0}, + {"SYS_TIMERFD_SETTIME", Const, 0}, + {"SYS_TIMER_CREATE", Const, 0}, + {"SYS_TIMER_DELETE", Const, 0}, + {"SYS_TIMER_GETOVERRUN", Const, 0}, + {"SYS_TIMER_GETTIME", Const, 0}, + {"SYS_TIMER_SETTIME", Const, 0}, + {"SYS_TIMES", Const, 0}, + {"SYS_TKILL", Const, 0}, + {"SYS_TRUNCATE", Const, 0}, + {"SYS_TRUNCATE64", Const, 0}, + {"SYS_TUXCALL", Const, 0}, + {"SYS_UGETRLIMIT", Const, 0}, + {"SYS_ULIMIT", Const, 0}, + {"SYS_UMASK", Const, 0}, + {"SYS_UMASK_EXTENDED", Const, 0}, + {"SYS_UMOUNT", Const, 0}, + {"SYS_UMOUNT2", Const, 0}, + {"SYS_UNAME", Const, 0}, + {"SYS_UNDELETE", Const, 0}, + {"SYS_UNLINK", Const, 0}, + {"SYS_UNLINKAT", Const, 0}, + {"SYS_UNMOUNT", Const, 0}, + {"SYS_UNSHARE", Const, 0}, + {"SYS_USELIB", Const, 0}, + {"SYS_USTAT", Const, 0}, + {"SYS_UTIME", Const, 0}, + {"SYS_UTIMENSAT", Const, 0}, + {"SYS_UTIMES", Const, 0}, + {"SYS_UTRACE", Const, 0}, + {"SYS_UUIDGEN", Const, 0}, + {"SYS_VADVISE", Const, 1}, + {"SYS_VFORK", Const, 0}, + {"SYS_VHANGUP", Const, 0}, + {"SYS_VM86", Const, 0}, + {"SYS_VM86OLD", Const, 0}, + {"SYS_VMSPLICE", Const, 0}, + {"SYS_VM_PRESSURE_MONITOR", Const, 0}, + {"SYS_VSERVER", Const, 0}, + {"SYS_WAIT4", Const, 0}, + {"SYS_WAIT4_NOCANCEL", Const, 0}, + {"SYS_WAIT6", Const, 1}, + {"SYS_WAITEVENT", Const, 0}, + {"SYS_WAITID", Const, 0}, + {"SYS_WAITID_NOCANCEL", Const, 0}, + {"SYS_WAITPID", Const, 0}, + {"SYS_WATCHEVENT", Const, 0}, + {"SYS_WORKQ_KERNRETURN", Const, 0}, + {"SYS_WORKQ_OPEN", Const, 0}, + {"SYS_WRITE", Const, 0}, + {"SYS_WRITEV", Const, 0}, + {"SYS_WRITEV_NOCANCEL", Const, 0}, + {"SYS_WRITE_NOCANCEL", Const, 0}, + {"SYS_YIELD", Const, 0}, + {"SYS__LLSEEK", Const, 0}, + {"SYS__LWP_CONTINUE", Const, 1}, + {"SYS__LWP_CREATE", Const, 1}, + {"SYS__LWP_CTL", Const, 1}, + {"SYS__LWP_DETACH", Const, 1}, + {"SYS__LWP_EXIT", Const, 1}, + {"SYS__LWP_GETNAME", Const, 1}, + {"SYS__LWP_GETPRIVATE", Const, 1}, + {"SYS__LWP_KILL", Const, 1}, + {"SYS__LWP_PARK", Const, 1}, + {"SYS__LWP_SELF", Const, 1}, + {"SYS__LWP_SETNAME", Const, 1}, + {"SYS__LWP_SETPRIVATE", Const, 1}, + {"SYS__LWP_SUSPEND", Const, 1}, + {"SYS__LWP_UNPARK", Const, 1}, + {"SYS__LWP_UNPARK_ALL", Const, 1}, + {"SYS__LWP_WAIT", Const, 1}, + {"SYS__LWP_WAKEUP", Const, 1}, + {"SYS__NEWSELECT", Const, 0}, + {"SYS__PSET_BIND", Const, 1}, + {"SYS__SCHED_GETAFFINITY", Const, 1}, + {"SYS__SCHED_GETPARAM", Const, 1}, + {"SYS__SCHED_SETAFFINITY", Const, 1}, + {"SYS__SCHED_SETPARAM", Const, 1}, + {"SYS__SYSCTL", Const, 0}, + {"SYS__UMTX_LOCK", Const, 0}, + {"SYS__UMTX_OP", Const, 0}, + {"SYS__UMTX_UNLOCK", Const, 0}, + {"SYS___ACL_ACLCHECK_FD", Const, 0}, + {"SYS___ACL_ACLCHECK_FILE", Const, 0}, + {"SYS___ACL_ACLCHECK_LINK", Const, 0}, + {"SYS___ACL_DELETE_FD", Const, 0}, + {"SYS___ACL_DELETE_FILE", Const, 0}, + {"SYS___ACL_DELETE_LINK", Const, 0}, + {"SYS___ACL_GET_FD", Const, 0}, + {"SYS___ACL_GET_FILE", Const, 0}, + {"SYS___ACL_GET_LINK", Const, 0}, + {"SYS___ACL_SET_FD", Const, 0}, + {"SYS___ACL_SET_FILE", Const, 0}, + {"SYS___ACL_SET_LINK", Const, 0}, + {"SYS___CAP_RIGHTS_GET", Const, 14}, + {"SYS___CLONE", Const, 1}, + {"SYS___DISABLE_THREADSIGNAL", Const, 0}, + {"SYS___GETCWD", Const, 0}, + {"SYS___GETLOGIN", Const, 1}, + {"SYS___GET_TCB", Const, 1}, + {"SYS___MAC_EXECVE", Const, 0}, + {"SYS___MAC_GETFSSTAT", Const, 0}, + {"SYS___MAC_GET_FD", Const, 0}, + {"SYS___MAC_GET_FILE", Const, 0}, + {"SYS___MAC_GET_LCID", Const, 0}, + {"SYS___MAC_GET_LCTX", Const, 0}, + {"SYS___MAC_GET_LINK", Const, 0}, + {"SYS___MAC_GET_MOUNT", Const, 0}, + {"SYS___MAC_GET_PID", Const, 0}, + {"SYS___MAC_GET_PROC", Const, 0}, + {"SYS___MAC_MOUNT", Const, 0}, + {"SYS___MAC_SET_FD", Const, 0}, + {"SYS___MAC_SET_FILE", Const, 0}, + {"SYS___MAC_SET_LCTX", Const, 0}, + {"SYS___MAC_SET_LINK", Const, 0}, + {"SYS___MAC_SET_PROC", Const, 0}, + {"SYS___MAC_SYSCALL", Const, 0}, + {"SYS___OLD_SEMWAIT_SIGNAL", Const, 0}, + {"SYS___OLD_SEMWAIT_SIGNAL_NOCANCEL", Const, 0}, + {"SYS___POSIX_CHOWN", Const, 1}, + {"SYS___POSIX_FCHOWN", Const, 1}, + {"SYS___POSIX_LCHOWN", Const, 1}, + {"SYS___POSIX_RENAME", Const, 1}, + {"SYS___PTHREAD_CANCELED", Const, 0}, + {"SYS___PTHREAD_CHDIR", Const, 0}, + {"SYS___PTHREAD_FCHDIR", Const, 0}, + {"SYS___PTHREAD_KILL", Const, 0}, + {"SYS___PTHREAD_MARKCANCEL", Const, 0}, + {"SYS___PTHREAD_SIGMASK", Const, 0}, + {"SYS___QUOTACTL", Const, 1}, + {"SYS___SEMCTL", Const, 1}, + {"SYS___SEMWAIT_SIGNAL", Const, 0}, + {"SYS___SEMWAIT_SIGNAL_NOCANCEL", Const, 0}, + {"SYS___SETLOGIN", Const, 1}, + {"SYS___SETUGID", Const, 0}, + {"SYS___SET_TCB", Const, 1}, + {"SYS___SIGACTION_SIGTRAMP", Const, 1}, + {"SYS___SIGTIMEDWAIT", Const, 1}, + {"SYS___SIGWAIT", Const, 0}, + {"SYS___SIGWAIT_NOCANCEL", Const, 0}, + {"SYS___SYSCTL", Const, 0}, + {"SYS___TFORK", Const, 1}, + {"SYS___THREXIT", Const, 1}, + {"SYS___THRSIGDIVERT", Const, 1}, + {"SYS___THRSLEEP", Const, 1}, + {"SYS___THRWAKEUP", Const, 1}, + {"S_ARCH1", Const, 1}, + {"S_ARCH2", Const, 1}, + {"S_BLKSIZE", Const, 0}, + {"S_IEXEC", Const, 0}, + {"S_IFBLK", Const, 0}, + {"S_IFCHR", Const, 0}, + {"S_IFDIR", Const, 0}, + {"S_IFIFO", Const, 0}, + {"S_IFLNK", Const, 0}, + {"S_IFMT", Const, 0}, + {"S_IFREG", Const, 0}, + {"S_IFSOCK", Const, 0}, + {"S_IFWHT", Const, 0}, + {"S_IREAD", Const, 0}, + {"S_IRGRP", Const, 0}, + {"S_IROTH", Const, 0}, + {"S_IRUSR", Const, 0}, + {"S_IRWXG", Const, 0}, + {"S_IRWXO", Const, 0}, + {"S_IRWXU", Const, 0}, + {"S_ISGID", Const, 0}, + {"S_ISTXT", Const, 0}, + {"S_ISUID", Const, 0}, + {"S_ISVTX", Const, 0}, + {"S_IWGRP", Const, 0}, + {"S_IWOTH", Const, 0}, + {"S_IWRITE", Const, 0}, + {"S_IWUSR", Const, 0}, + {"S_IXGRP", Const, 0}, + {"S_IXOTH", Const, 0}, + {"S_IXUSR", Const, 0}, + {"S_LOGIN_SET", Const, 1}, + {"SecurityAttributes", Type, 0}, + {"SecurityAttributes.InheritHandle", Field, 0}, + {"SecurityAttributes.Length", Field, 0}, + {"SecurityAttributes.SecurityDescriptor", Field, 0}, + {"Seek", Func, 0}, + {"Select", Func, 0}, + {"Sendfile", Func, 0}, + {"Sendmsg", Func, 0}, + {"SendmsgN", Func, 3}, + {"Sendto", Func, 0}, + {"Servent", Type, 0}, + {"Servent.Aliases", Field, 0}, + {"Servent.Name", Field, 0}, + {"Servent.Port", Field, 0}, + {"Servent.Proto", Field, 0}, + {"SetBpf", Func, 0}, + {"SetBpfBuflen", Func, 0}, + {"SetBpfDatalink", Func, 0}, + {"SetBpfHeadercmpl", Func, 0}, + {"SetBpfImmediate", Func, 0}, + {"SetBpfInterface", Func, 0}, + {"SetBpfPromisc", Func, 0}, + {"SetBpfTimeout", Func, 0}, + {"SetCurrentDirectory", Func, 0}, + {"SetEndOfFile", Func, 0}, + {"SetEnvironmentVariable", Func, 0}, + {"SetFileAttributes", Func, 0}, + {"SetFileCompletionNotificationModes", Func, 2}, + {"SetFilePointer", Func, 0}, + {"SetFileTime", Func, 0}, + {"SetHandleInformation", Func, 0}, + {"SetKevent", Func, 0}, + {"SetLsfPromisc", Func, 0}, + {"SetNonblock", Func, 0}, + {"Setdomainname", Func, 0}, + {"Setegid", Func, 0}, + {"Setenv", Func, 0}, + {"Seteuid", Func, 0}, + {"Setfsgid", Func, 0}, + {"Setfsuid", Func, 0}, + {"Setgid", Func, 0}, + {"Setgroups", Func, 0}, + {"Sethostname", Func, 0}, + {"Setlogin", Func, 0}, + {"Setpgid", Func, 0}, + {"Setpriority", Func, 0}, + {"Setprivexec", Func, 0}, + {"Setregid", Func, 0}, + {"Setresgid", Func, 0}, + {"Setresuid", Func, 0}, + {"Setreuid", Func, 0}, + {"Setrlimit", Func, 0}, + {"Setsid", Func, 0}, + {"Setsockopt", Func, 0}, + {"SetsockoptByte", Func, 0}, + {"SetsockoptICMPv6Filter", Func, 2}, + {"SetsockoptIPMreq", Func, 0}, + {"SetsockoptIPMreqn", Func, 0}, + {"SetsockoptIPv6Mreq", Func, 0}, + {"SetsockoptInet4Addr", Func, 0}, + {"SetsockoptInt", Func, 0}, + {"SetsockoptLinger", Func, 0}, + {"SetsockoptString", Func, 0}, + {"SetsockoptTimeval", Func, 0}, + {"Settimeofday", Func, 0}, + {"Setuid", Func, 0}, + {"Setxattr", Func, 1}, + {"Shutdown", Func, 0}, + {"SidTypeAlias", Const, 0}, + {"SidTypeComputer", Const, 0}, + {"SidTypeDeletedAccount", Const, 0}, + {"SidTypeDomain", Const, 0}, + {"SidTypeGroup", Const, 0}, + {"SidTypeInvalid", Const, 0}, + {"SidTypeLabel", Const, 0}, + {"SidTypeUnknown", Const, 0}, + {"SidTypeUser", Const, 0}, + {"SidTypeWellKnownGroup", Const, 0}, + {"Signal", Type, 0}, + {"SizeofBpfHdr", Const, 0}, + {"SizeofBpfInsn", Const, 0}, + {"SizeofBpfProgram", Const, 0}, + {"SizeofBpfStat", Const, 0}, + {"SizeofBpfVersion", Const, 0}, + {"SizeofBpfZbuf", Const, 0}, + {"SizeofBpfZbufHeader", Const, 0}, + {"SizeofCmsghdr", Const, 0}, + {"SizeofICMPv6Filter", Const, 2}, + {"SizeofIPMreq", Const, 0}, + {"SizeofIPMreqn", Const, 0}, + {"SizeofIPv6MTUInfo", Const, 2}, + {"SizeofIPv6Mreq", Const, 0}, + {"SizeofIfAddrmsg", Const, 0}, + {"SizeofIfAnnounceMsghdr", Const, 1}, + {"SizeofIfData", Const, 0}, + {"SizeofIfInfomsg", Const, 0}, + {"SizeofIfMsghdr", Const, 0}, + {"SizeofIfaMsghdr", Const, 0}, + {"SizeofIfmaMsghdr", Const, 0}, + {"SizeofIfmaMsghdr2", Const, 0}, + {"SizeofInet4Pktinfo", Const, 0}, + {"SizeofInet6Pktinfo", Const, 0}, + {"SizeofInotifyEvent", Const, 0}, + {"SizeofLinger", Const, 0}, + {"SizeofMsghdr", Const, 0}, + {"SizeofNlAttr", Const, 0}, + {"SizeofNlMsgerr", Const, 0}, + {"SizeofNlMsghdr", Const, 0}, + {"SizeofRtAttr", Const, 0}, + {"SizeofRtGenmsg", Const, 0}, + {"SizeofRtMetrics", Const, 0}, + {"SizeofRtMsg", Const, 0}, + {"SizeofRtMsghdr", Const, 0}, + {"SizeofRtNexthop", Const, 0}, + {"SizeofSockFilter", Const, 0}, + {"SizeofSockFprog", Const, 0}, + {"SizeofSockaddrAny", Const, 0}, + {"SizeofSockaddrDatalink", Const, 0}, + {"SizeofSockaddrInet4", Const, 0}, + {"SizeofSockaddrInet6", Const, 0}, + {"SizeofSockaddrLinklayer", Const, 0}, + {"SizeofSockaddrNetlink", Const, 0}, + {"SizeofSockaddrUnix", Const, 0}, + {"SizeofTCPInfo", Const, 1}, + {"SizeofUcred", Const, 0}, + {"SlicePtrFromStrings", Func, 1}, + {"SockFilter", Type, 0}, + {"SockFilter.Code", Field, 0}, + {"SockFilter.Jf", Field, 0}, + {"SockFilter.Jt", Field, 0}, + {"SockFilter.K", Field, 0}, + {"SockFprog", Type, 0}, + {"SockFprog.Filter", Field, 0}, + {"SockFprog.Len", Field, 0}, + {"SockFprog.Pad_cgo_0", Field, 0}, + {"Sockaddr", Type, 0}, + {"SockaddrDatalink", Type, 0}, + {"SockaddrDatalink.Alen", Field, 0}, + {"SockaddrDatalink.Data", Field, 0}, + {"SockaddrDatalink.Family", Field, 0}, + {"SockaddrDatalink.Index", Field, 0}, + {"SockaddrDatalink.Len", Field, 0}, + {"SockaddrDatalink.Nlen", Field, 0}, + {"SockaddrDatalink.Slen", Field, 0}, + {"SockaddrDatalink.Type", Field, 0}, + {"SockaddrGen", Type, 0}, + {"SockaddrInet4", Type, 0}, + {"SockaddrInet4.Addr", Field, 0}, + {"SockaddrInet4.Port", Field, 0}, + {"SockaddrInet6", Type, 0}, + {"SockaddrInet6.Addr", Field, 0}, + {"SockaddrInet6.Port", Field, 0}, + {"SockaddrInet6.ZoneId", Field, 0}, + {"SockaddrLinklayer", Type, 0}, + {"SockaddrLinklayer.Addr", Field, 0}, + {"SockaddrLinklayer.Halen", Field, 0}, + {"SockaddrLinklayer.Hatype", Field, 0}, + {"SockaddrLinklayer.Ifindex", Field, 0}, + {"SockaddrLinklayer.Pkttype", Field, 0}, + {"SockaddrLinklayer.Protocol", Field, 0}, + {"SockaddrNetlink", Type, 0}, + {"SockaddrNetlink.Family", Field, 0}, + {"SockaddrNetlink.Groups", Field, 0}, + {"SockaddrNetlink.Pad", Field, 0}, + {"SockaddrNetlink.Pid", Field, 0}, + {"SockaddrUnix", Type, 0}, + {"SockaddrUnix.Name", Field, 0}, + {"Socket", Func, 0}, + {"SocketControlMessage", Type, 0}, + {"SocketControlMessage.Data", Field, 0}, + {"SocketControlMessage.Header", Field, 0}, + {"SocketDisableIPv6", Var, 0}, + {"Socketpair", Func, 0}, + {"Splice", Func, 0}, + {"StartProcess", Func, 0}, + {"StartupInfo", Type, 0}, + {"StartupInfo.Cb", Field, 0}, + {"StartupInfo.Desktop", Field, 0}, + {"StartupInfo.FillAttribute", Field, 0}, + {"StartupInfo.Flags", Field, 0}, + {"StartupInfo.ShowWindow", Field, 0}, + {"StartupInfo.StdErr", Field, 0}, + {"StartupInfo.StdInput", Field, 0}, + {"StartupInfo.StdOutput", Field, 0}, + {"StartupInfo.Title", Field, 0}, + {"StartupInfo.X", Field, 0}, + {"StartupInfo.XCountChars", Field, 0}, + {"StartupInfo.XSize", Field, 0}, + {"StartupInfo.Y", Field, 0}, + {"StartupInfo.YCountChars", Field, 0}, + {"StartupInfo.YSize", Field, 0}, + {"Stat", Func, 0}, + {"Stat_t", Type, 0}, + {"Stat_t.Atim", Field, 0}, + {"Stat_t.Atim_ext", Field, 12}, + {"Stat_t.Atimespec", Field, 0}, + {"Stat_t.Birthtimespec", Field, 0}, + {"Stat_t.Blksize", Field, 0}, + {"Stat_t.Blocks", Field, 0}, + {"Stat_t.Btim_ext", Field, 12}, + {"Stat_t.Ctim", Field, 0}, + {"Stat_t.Ctim_ext", Field, 12}, + {"Stat_t.Ctimespec", Field, 0}, + {"Stat_t.Dev", Field, 0}, + {"Stat_t.Flags", Field, 0}, + {"Stat_t.Gen", Field, 0}, + {"Stat_t.Gid", Field, 0}, + {"Stat_t.Ino", Field, 0}, + {"Stat_t.Lspare", Field, 0}, + {"Stat_t.Lspare0", Field, 2}, + {"Stat_t.Lspare1", Field, 2}, + {"Stat_t.Mode", Field, 0}, + {"Stat_t.Mtim", Field, 0}, + {"Stat_t.Mtim_ext", Field, 12}, + {"Stat_t.Mtimespec", Field, 0}, + {"Stat_t.Nlink", Field, 0}, + {"Stat_t.Pad_cgo_0", Field, 0}, + {"Stat_t.Pad_cgo_1", Field, 0}, + {"Stat_t.Pad_cgo_2", Field, 0}, + {"Stat_t.Padding0", Field, 12}, + {"Stat_t.Padding1", Field, 12}, + {"Stat_t.Qspare", Field, 0}, + {"Stat_t.Rdev", Field, 0}, + {"Stat_t.Size", Field, 0}, + {"Stat_t.Spare", Field, 2}, + {"Stat_t.Uid", Field, 0}, + {"Stat_t.X__pad0", Field, 0}, + {"Stat_t.X__pad1", Field, 0}, + {"Stat_t.X__pad2", Field, 0}, + {"Stat_t.X__st_birthtim", Field, 2}, + {"Stat_t.X__st_ino", Field, 0}, + {"Stat_t.X__unused", Field, 0}, + {"Statfs", Func, 0}, + {"Statfs_t", Type, 0}, + {"Statfs_t.Asyncreads", Field, 0}, + {"Statfs_t.Asyncwrites", Field, 0}, + {"Statfs_t.Bavail", Field, 0}, + {"Statfs_t.Bfree", Field, 0}, + {"Statfs_t.Blocks", Field, 0}, + {"Statfs_t.Bsize", Field, 0}, + {"Statfs_t.Charspare", Field, 0}, + {"Statfs_t.F_asyncreads", Field, 2}, + {"Statfs_t.F_asyncwrites", Field, 2}, + {"Statfs_t.F_bavail", Field, 2}, + {"Statfs_t.F_bfree", Field, 2}, + {"Statfs_t.F_blocks", Field, 2}, + {"Statfs_t.F_bsize", Field, 2}, + {"Statfs_t.F_ctime", Field, 2}, + {"Statfs_t.F_favail", Field, 2}, + {"Statfs_t.F_ffree", Field, 2}, + {"Statfs_t.F_files", Field, 2}, + {"Statfs_t.F_flags", Field, 2}, + {"Statfs_t.F_fsid", Field, 2}, + {"Statfs_t.F_fstypename", Field, 2}, + {"Statfs_t.F_iosize", Field, 2}, + {"Statfs_t.F_mntfromname", Field, 2}, + {"Statfs_t.F_mntfromspec", Field, 3}, + {"Statfs_t.F_mntonname", Field, 2}, + {"Statfs_t.F_namemax", Field, 2}, + {"Statfs_t.F_owner", Field, 2}, + {"Statfs_t.F_spare", Field, 2}, + {"Statfs_t.F_syncreads", Field, 2}, + {"Statfs_t.F_syncwrites", Field, 2}, + {"Statfs_t.Ffree", Field, 0}, + {"Statfs_t.Files", Field, 0}, + {"Statfs_t.Flags", Field, 0}, + {"Statfs_t.Frsize", Field, 0}, + {"Statfs_t.Fsid", Field, 0}, + {"Statfs_t.Fssubtype", Field, 0}, + {"Statfs_t.Fstypename", Field, 0}, + {"Statfs_t.Iosize", Field, 0}, + {"Statfs_t.Mntfromname", Field, 0}, + {"Statfs_t.Mntonname", Field, 0}, + {"Statfs_t.Mount_info", Field, 2}, + {"Statfs_t.Namelen", Field, 0}, + {"Statfs_t.Namemax", Field, 0}, + {"Statfs_t.Owner", Field, 0}, + {"Statfs_t.Pad_cgo_0", Field, 0}, + {"Statfs_t.Pad_cgo_1", Field, 2}, + {"Statfs_t.Reserved", Field, 0}, + {"Statfs_t.Spare", Field, 0}, + {"Statfs_t.Syncreads", Field, 0}, + {"Statfs_t.Syncwrites", Field, 0}, + {"Statfs_t.Type", Field, 0}, + {"Statfs_t.Version", Field, 0}, + {"Stderr", Var, 0}, + {"Stdin", Var, 0}, + {"Stdout", Var, 0}, + {"StringBytePtr", Func, 0}, + {"StringByteSlice", Func, 0}, + {"StringSlicePtr", Func, 0}, + {"StringToSid", Func, 0}, + {"StringToUTF16", Func, 0}, + {"StringToUTF16Ptr", Func, 0}, + {"Symlink", Func, 0}, + {"Sync", Func, 0}, + {"SyncFileRange", Func, 0}, + {"SysProcAttr", Type, 0}, + {"SysProcAttr.AdditionalInheritedHandles", Field, 17}, + {"SysProcAttr.AmbientCaps", Field, 9}, + {"SysProcAttr.CgroupFD", Field, 20}, + {"SysProcAttr.Chroot", Field, 0}, + {"SysProcAttr.Cloneflags", Field, 2}, + {"SysProcAttr.CmdLine", Field, 0}, + {"SysProcAttr.CreationFlags", Field, 1}, + {"SysProcAttr.Credential", Field, 0}, + {"SysProcAttr.Ctty", Field, 1}, + {"SysProcAttr.Foreground", Field, 5}, + {"SysProcAttr.GidMappings", Field, 4}, + {"SysProcAttr.GidMappingsEnableSetgroups", Field, 5}, + {"SysProcAttr.HideWindow", Field, 0}, + {"SysProcAttr.Jail", Field, 21}, + {"SysProcAttr.NoInheritHandles", Field, 16}, + {"SysProcAttr.Noctty", Field, 0}, + {"SysProcAttr.ParentProcess", Field, 17}, + {"SysProcAttr.Pdeathsig", Field, 0}, + {"SysProcAttr.Pgid", Field, 5}, + {"SysProcAttr.PidFD", Field, 22}, + {"SysProcAttr.ProcessAttributes", Field, 13}, + {"SysProcAttr.Ptrace", Field, 0}, + {"SysProcAttr.Setctty", Field, 0}, + {"SysProcAttr.Setpgid", Field, 0}, + {"SysProcAttr.Setsid", Field, 0}, + {"SysProcAttr.ThreadAttributes", Field, 13}, + {"SysProcAttr.Token", Field, 10}, + {"SysProcAttr.UidMappings", Field, 4}, + {"SysProcAttr.Unshareflags", Field, 7}, + {"SysProcAttr.UseCgroupFD", Field, 20}, + {"SysProcIDMap", Type, 4}, + {"SysProcIDMap.ContainerID", Field, 4}, + {"SysProcIDMap.HostID", Field, 4}, + {"SysProcIDMap.Size", Field, 4}, + {"Syscall", Func, 0}, + {"Syscall12", Func, 0}, + {"Syscall15", Func, 0}, + {"Syscall18", Func, 12}, + {"Syscall6", Func, 0}, + {"Syscall9", Func, 0}, + {"SyscallN", Func, 18}, + {"Sysctl", Func, 0}, + {"SysctlUint32", Func, 0}, + {"Sysctlnode", Type, 2}, + {"Sysctlnode.Flags", Field, 2}, + {"Sysctlnode.Name", Field, 2}, + {"Sysctlnode.Num", Field, 2}, + {"Sysctlnode.Un", Field, 2}, + {"Sysctlnode.Ver", Field, 2}, + {"Sysctlnode.X__rsvd", Field, 2}, + {"Sysctlnode.X_sysctl_desc", Field, 2}, + {"Sysctlnode.X_sysctl_func", Field, 2}, + {"Sysctlnode.X_sysctl_parent", Field, 2}, + {"Sysctlnode.X_sysctl_size", Field, 2}, + {"Sysinfo", Func, 0}, + {"Sysinfo_t", Type, 0}, + {"Sysinfo_t.Bufferram", Field, 0}, + {"Sysinfo_t.Freehigh", Field, 0}, + {"Sysinfo_t.Freeram", Field, 0}, + {"Sysinfo_t.Freeswap", Field, 0}, + {"Sysinfo_t.Loads", Field, 0}, + {"Sysinfo_t.Pad", Field, 0}, + {"Sysinfo_t.Pad_cgo_0", Field, 0}, + {"Sysinfo_t.Pad_cgo_1", Field, 0}, + {"Sysinfo_t.Procs", Field, 0}, + {"Sysinfo_t.Sharedram", Field, 0}, + {"Sysinfo_t.Totalhigh", Field, 0}, + {"Sysinfo_t.Totalram", Field, 0}, + {"Sysinfo_t.Totalswap", Field, 0}, + {"Sysinfo_t.Unit", Field, 0}, + {"Sysinfo_t.Uptime", Field, 0}, + {"Sysinfo_t.X_f", Field, 0}, + {"Systemtime", Type, 0}, + {"Systemtime.Day", Field, 0}, + {"Systemtime.DayOfWeek", Field, 0}, + {"Systemtime.Hour", Field, 0}, + {"Systemtime.Milliseconds", Field, 0}, + {"Systemtime.Minute", Field, 0}, + {"Systemtime.Month", Field, 0}, + {"Systemtime.Second", Field, 0}, + {"Systemtime.Year", Field, 0}, + {"TCGETS", Const, 0}, + {"TCIFLUSH", Const, 1}, + {"TCIOFLUSH", Const, 1}, + {"TCOFLUSH", Const, 1}, + {"TCPInfo", Type, 1}, + {"TCPInfo.Advmss", Field, 1}, + {"TCPInfo.Ato", Field, 1}, + {"TCPInfo.Backoff", Field, 1}, + {"TCPInfo.Ca_state", Field, 1}, + {"TCPInfo.Fackets", Field, 1}, + {"TCPInfo.Last_ack_recv", Field, 1}, + {"TCPInfo.Last_ack_sent", Field, 1}, + {"TCPInfo.Last_data_recv", Field, 1}, + {"TCPInfo.Last_data_sent", Field, 1}, + {"TCPInfo.Lost", Field, 1}, + {"TCPInfo.Options", Field, 1}, + {"TCPInfo.Pad_cgo_0", Field, 1}, + {"TCPInfo.Pmtu", Field, 1}, + {"TCPInfo.Probes", Field, 1}, + {"TCPInfo.Rcv_mss", Field, 1}, + {"TCPInfo.Rcv_rtt", Field, 1}, + {"TCPInfo.Rcv_space", Field, 1}, + {"TCPInfo.Rcv_ssthresh", Field, 1}, + {"TCPInfo.Reordering", Field, 1}, + {"TCPInfo.Retrans", Field, 1}, + {"TCPInfo.Retransmits", Field, 1}, + {"TCPInfo.Rto", Field, 1}, + {"TCPInfo.Rtt", Field, 1}, + {"TCPInfo.Rttvar", Field, 1}, + {"TCPInfo.Sacked", Field, 1}, + {"TCPInfo.Snd_cwnd", Field, 1}, + {"TCPInfo.Snd_mss", Field, 1}, + {"TCPInfo.Snd_ssthresh", Field, 1}, + {"TCPInfo.State", Field, 1}, + {"TCPInfo.Total_retrans", Field, 1}, + {"TCPInfo.Unacked", Field, 1}, + {"TCPKeepalive", Type, 3}, + {"TCPKeepalive.Interval", Field, 3}, + {"TCPKeepalive.OnOff", Field, 3}, + {"TCPKeepalive.Time", Field, 3}, + {"TCP_CA_NAME_MAX", Const, 0}, + {"TCP_CONGCTL", Const, 1}, + {"TCP_CONGESTION", Const, 0}, + {"TCP_CONNECTIONTIMEOUT", Const, 0}, + {"TCP_CORK", Const, 0}, + {"TCP_DEFER_ACCEPT", Const, 0}, + {"TCP_ENABLE_ECN", Const, 16}, + {"TCP_INFO", Const, 0}, + {"TCP_KEEPALIVE", Const, 0}, + {"TCP_KEEPCNT", Const, 0}, + {"TCP_KEEPIDLE", Const, 0}, + {"TCP_KEEPINIT", Const, 1}, + {"TCP_KEEPINTVL", Const, 0}, + {"TCP_LINGER2", Const, 0}, + {"TCP_MAXBURST", Const, 0}, + {"TCP_MAXHLEN", Const, 0}, + {"TCP_MAXOLEN", Const, 0}, + {"TCP_MAXSEG", Const, 0}, + {"TCP_MAXWIN", Const, 0}, + {"TCP_MAX_SACK", Const, 0}, + {"TCP_MAX_WINSHIFT", Const, 0}, + {"TCP_MD5SIG", Const, 0}, + {"TCP_MD5SIG_MAXKEYLEN", Const, 0}, + {"TCP_MINMSS", Const, 0}, + {"TCP_MINMSSOVERLOAD", Const, 0}, + {"TCP_MSS", Const, 0}, + {"TCP_NODELAY", Const, 0}, + {"TCP_NOOPT", Const, 0}, + {"TCP_NOPUSH", Const, 0}, + {"TCP_NOTSENT_LOWAT", Const, 16}, + {"TCP_NSTATES", Const, 1}, + {"TCP_QUICKACK", Const, 0}, + {"TCP_RXT_CONNDROPTIME", Const, 0}, + {"TCP_RXT_FINDROP", Const, 0}, + {"TCP_SACK_ENABLE", Const, 1}, + {"TCP_SENDMOREACKS", Const, 16}, + {"TCP_SYNCNT", Const, 0}, + {"TCP_VENDOR", Const, 3}, + {"TCP_WINDOW_CLAMP", Const, 0}, + {"TCSAFLUSH", Const, 1}, + {"TCSETS", Const, 0}, + {"TF_DISCONNECT", Const, 0}, + {"TF_REUSE_SOCKET", Const, 0}, + {"TF_USE_DEFAULT_WORKER", Const, 0}, + {"TF_USE_KERNEL_APC", Const, 0}, + {"TF_USE_SYSTEM_THREAD", Const, 0}, + {"TF_WRITE_BEHIND", Const, 0}, + {"TH32CS_INHERIT", Const, 4}, + {"TH32CS_SNAPALL", Const, 4}, + {"TH32CS_SNAPHEAPLIST", Const, 4}, + {"TH32CS_SNAPMODULE", Const, 4}, + {"TH32CS_SNAPMODULE32", Const, 4}, + {"TH32CS_SNAPPROCESS", Const, 4}, + {"TH32CS_SNAPTHREAD", Const, 4}, + {"TIME_ZONE_ID_DAYLIGHT", Const, 0}, + {"TIME_ZONE_ID_STANDARD", Const, 0}, + {"TIME_ZONE_ID_UNKNOWN", Const, 0}, + {"TIOCCBRK", Const, 0}, + {"TIOCCDTR", Const, 0}, + {"TIOCCONS", Const, 0}, + {"TIOCDCDTIMESTAMP", Const, 0}, + {"TIOCDRAIN", Const, 0}, + {"TIOCDSIMICROCODE", Const, 0}, + {"TIOCEXCL", Const, 0}, + {"TIOCEXT", Const, 0}, + {"TIOCFLAG_CDTRCTS", Const, 1}, + {"TIOCFLAG_CLOCAL", Const, 1}, + {"TIOCFLAG_CRTSCTS", Const, 1}, + {"TIOCFLAG_MDMBUF", Const, 1}, + {"TIOCFLAG_PPS", Const, 1}, + {"TIOCFLAG_SOFTCAR", Const, 1}, + {"TIOCFLUSH", Const, 0}, + {"TIOCGDEV", Const, 0}, + {"TIOCGDRAINWAIT", Const, 0}, + {"TIOCGETA", Const, 0}, + {"TIOCGETD", Const, 0}, + {"TIOCGFLAGS", Const, 1}, + {"TIOCGICOUNT", Const, 0}, + {"TIOCGLCKTRMIOS", Const, 0}, + {"TIOCGLINED", Const, 1}, + {"TIOCGPGRP", Const, 0}, + {"TIOCGPTN", Const, 0}, + {"TIOCGQSIZE", Const, 1}, + {"TIOCGRANTPT", Const, 1}, + {"TIOCGRS485", Const, 0}, + {"TIOCGSERIAL", Const, 0}, + {"TIOCGSID", Const, 0}, + {"TIOCGSIZE", Const, 1}, + {"TIOCGSOFTCAR", Const, 0}, + {"TIOCGTSTAMP", Const, 1}, + {"TIOCGWINSZ", Const, 0}, + {"TIOCINQ", Const, 0}, + {"TIOCIXOFF", Const, 0}, + {"TIOCIXON", Const, 0}, + {"TIOCLINUX", Const, 0}, + {"TIOCMBIC", Const, 0}, + {"TIOCMBIS", Const, 0}, + {"TIOCMGDTRWAIT", Const, 0}, + {"TIOCMGET", Const, 0}, + {"TIOCMIWAIT", Const, 0}, + {"TIOCMODG", Const, 0}, + {"TIOCMODS", Const, 0}, + {"TIOCMSDTRWAIT", Const, 0}, + {"TIOCMSET", Const, 0}, + {"TIOCM_CAR", Const, 0}, + {"TIOCM_CD", Const, 0}, + {"TIOCM_CTS", Const, 0}, + {"TIOCM_DCD", Const, 0}, + {"TIOCM_DSR", Const, 0}, + {"TIOCM_DTR", Const, 0}, + {"TIOCM_LE", Const, 0}, + {"TIOCM_RI", Const, 0}, + {"TIOCM_RNG", Const, 0}, + {"TIOCM_RTS", Const, 0}, + {"TIOCM_SR", Const, 0}, + {"TIOCM_ST", Const, 0}, + {"TIOCNOTTY", Const, 0}, + {"TIOCNXCL", Const, 0}, + {"TIOCOUTQ", Const, 0}, + {"TIOCPKT", Const, 0}, + {"TIOCPKT_DATA", Const, 0}, + {"TIOCPKT_DOSTOP", Const, 0}, + {"TIOCPKT_FLUSHREAD", Const, 0}, + {"TIOCPKT_FLUSHWRITE", Const, 0}, + {"TIOCPKT_IOCTL", Const, 0}, + {"TIOCPKT_NOSTOP", Const, 0}, + {"TIOCPKT_START", Const, 0}, + {"TIOCPKT_STOP", Const, 0}, + {"TIOCPTMASTER", Const, 0}, + {"TIOCPTMGET", Const, 1}, + {"TIOCPTSNAME", Const, 1}, + {"TIOCPTYGNAME", Const, 0}, + {"TIOCPTYGRANT", Const, 0}, + {"TIOCPTYUNLK", Const, 0}, + {"TIOCRCVFRAME", Const, 1}, + {"TIOCREMOTE", Const, 0}, + {"TIOCSBRK", Const, 0}, + {"TIOCSCONS", Const, 0}, + {"TIOCSCTTY", Const, 0}, + {"TIOCSDRAINWAIT", Const, 0}, + {"TIOCSDTR", Const, 0}, + {"TIOCSERCONFIG", Const, 0}, + {"TIOCSERGETLSR", Const, 0}, + {"TIOCSERGETMULTI", Const, 0}, + {"TIOCSERGSTRUCT", Const, 0}, + {"TIOCSERGWILD", Const, 0}, + {"TIOCSERSETMULTI", Const, 0}, + {"TIOCSERSWILD", Const, 0}, + {"TIOCSER_TEMT", Const, 0}, + {"TIOCSETA", Const, 0}, + {"TIOCSETAF", Const, 0}, + {"TIOCSETAW", Const, 0}, + {"TIOCSETD", Const, 0}, + {"TIOCSFLAGS", Const, 1}, + {"TIOCSIG", Const, 0}, + {"TIOCSLCKTRMIOS", Const, 0}, + {"TIOCSLINED", Const, 1}, + {"TIOCSPGRP", Const, 0}, + {"TIOCSPTLCK", Const, 0}, + {"TIOCSQSIZE", Const, 1}, + {"TIOCSRS485", Const, 0}, + {"TIOCSSERIAL", Const, 0}, + {"TIOCSSIZE", Const, 1}, + {"TIOCSSOFTCAR", Const, 0}, + {"TIOCSTART", Const, 0}, + {"TIOCSTAT", Const, 0}, + {"TIOCSTI", Const, 0}, + {"TIOCSTOP", Const, 0}, + {"TIOCSTSTAMP", Const, 1}, + {"TIOCSWINSZ", Const, 0}, + {"TIOCTIMESTAMP", Const, 0}, + {"TIOCUCNTL", Const, 0}, + {"TIOCVHANGUP", Const, 0}, + {"TIOCXMTFRAME", Const, 1}, + {"TOKEN_ADJUST_DEFAULT", Const, 0}, + {"TOKEN_ADJUST_GROUPS", Const, 0}, + {"TOKEN_ADJUST_PRIVILEGES", Const, 0}, + {"TOKEN_ADJUST_SESSIONID", Const, 11}, + {"TOKEN_ALL_ACCESS", Const, 0}, + {"TOKEN_ASSIGN_PRIMARY", Const, 0}, + {"TOKEN_DUPLICATE", Const, 0}, + {"TOKEN_EXECUTE", Const, 0}, + {"TOKEN_IMPERSONATE", Const, 0}, + {"TOKEN_QUERY", Const, 0}, + {"TOKEN_QUERY_SOURCE", Const, 0}, + {"TOKEN_READ", Const, 0}, + {"TOKEN_WRITE", Const, 0}, + {"TOSTOP", Const, 0}, + {"TRUNCATE_EXISTING", Const, 0}, + {"TUNATTACHFILTER", Const, 0}, + {"TUNDETACHFILTER", Const, 0}, + {"TUNGETFEATURES", Const, 0}, + {"TUNGETIFF", Const, 0}, + {"TUNGETSNDBUF", Const, 0}, + {"TUNGETVNETHDRSZ", Const, 0}, + {"TUNSETDEBUG", Const, 0}, + {"TUNSETGROUP", Const, 0}, + {"TUNSETIFF", Const, 0}, + {"TUNSETLINK", Const, 0}, + {"TUNSETNOCSUM", Const, 0}, + {"TUNSETOFFLOAD", Const, 0}, + {"TUNSETOWNER", Const, 0}, + {"TUNSETPERSIST", Const, 0}, + {"TUNSETSNDBUF", Const, 0}, + {"TUNSETTXFILTER", Const, 0}, + {"TUNSETVNETHDRSZ", Const, 0}, + {"Tee", Func, 0}, + {"TerminateProcess", Func, 0}, + {"Termios", Type, 0}, + {"Termios.Cc", Field, 0}, + {"Termios.Cflag", Field, 0}, + {"Termios.Iflag", Field, 0}, + {"Termios.Ispeed", Field, 0}, + {"Termios.Lflag", Field, 0}, + {"Termios.Line", Field, 0}, + {"Termios.Oflag", Field, 0}, + {"Termios.Ospeed", Field, 0}, + {"Termios.Pad_cgo_0", Field, 0}, + {"Tgkill", Func, 0}, + {"Time", Func, 0}, + {"Time_t", Type, 0}, + {"Times", Func, 0}, + {"Timespec", Type, 0}, + {"Timespec.Nsec", Field, 0}, + {"Timespec.Pad_cgo_0", Field, 2}, + {"Timespec.Sec", Field, 0}, + {"TimespecToNsec", Func, 0}, + {"Timeval", Type, 0}, + {"Timeval.Pad_cgo_0", Field, 0}, + {"Timeval.Sec", Field, 0}, + {"Timeval.Usec", Field, 0}, + {"Timeval32", Type, 0}, + {"Timeval32.Sec", Field, 0}, + {"Timeval32.Usec", Field, 0}, + {"TimevalToNsec", Func, 0}, + {"Timex", Type, 0}, + {"Timex.Calcnt", Field, 0}, + {"Timex.Constant", Field, 0}, + {"Timex.Errcnt", Field, 0}, + {"Timex.Esterror", Field, 0}, + {"Timex.Freq", Field, 0}, + {"Timex.Jitcnt", Field, 0}, + {"Timex.Jitter", Field, 0}, + {"Timex.Maxerror", Field, 0}, + {"Timex.Modes", Field, 0}, + {"Timex.Offset", Field, 0}, + {"Timex.Pad_cgo_0", Field, 0}, + {"Timex.Pad_cgo_1", Field, 0}, + {"Timex.Pad_cgo_2", Field, 0}, + {"Timex.Pad_cgo_3", Field, 0}, + {"Timex.Ppsfreq", Field, 0}, + {"Timex.Precision", Field, 0}, + {"Timex.Shift", Field, 0}, + {"Timex.Stabil", Field, 0}, + {"Timex.Status", Field, 0}, + {"Timex.Stbcnt", Field, 0}, + {"Timex.Tai", Field, 0}, + {"Timex.Tick", Field, 0}, + {"Timex.Time", Field, 0}, + {"Timex.Tolerance", Field, 0}, + {"Timezoneinformation", Type, 0}, + {"Timezoneinformation.Bias", Field, 0}, + {"Timezoneinformation.DaylightBias", Field, 0}, + {"Timezoneinformation.DaylightDate", Field, 0}, + {"Timezoneinformation.DaylightName", Field, 0}, + {"Timezoneinformation.StandardBias", Field, 0}, + {"Timezoneinformation.StandardDate", Field, 0}, + {"Timezoneinformation.StandardName", Field, 0}, + {"Tms", Type, 0}, + {"Tms.Cstime", Field, 0}, + {"Tms.Cutime", Field, 0}, + {"Tms.Stime", Field, 0}, + {"Tms.Utime", Field, 0}, + {"Token", Type, 0}, + {"TokenAccessInformation", Const, 0}, + {"TokenAuditPolicy", Const, 0}, + {"TokenDefaultDacl", Const, 0}, + {"TokenElevation", Const, 0}, + {"TokenElevationType", Const, 0}, + {"TokenGroups", Const, 0}, + {"TokenGroupsAndPrivileges", Const, 0}, + {"TokenHasRestrictions", Const, 0}, + {"TokenImpersonationLevel", Const, 0}, + {"TokenIntegrityLevel", Const, 0}, + {"TokenLinkedToken", Const, 0}, + {"TokenLogonSid", Const, 0}, + {"TokenMandatoryPolicy", Const, 0}, + {"TokenOrigin", Const, 0}, + {"TokenOwner", Const, 0}, + {"TokenPrimaryGroup", Const, 0}, + {"TokenPrivileges", Const, 0}, + {"TokenRestrictedSids", Const, 0}, + {"TokenSandBoxInert", Const, 0}, + {"TokenSessionId", Const, 0}, + {"TokenSessionReference", Const, 0}, + {"TokenSource", Const, 0}, + {"TokenStatistics", Const, 0}, + {"TokenType", Const, 0}, + {"TokenUIAccess", Const, 0}, + {"TokenUser", Const, 0}, + {"TokenVirtualizationAllowed", Const, 0}, + {"TokenVirtualizationEnabled", Const, 0}, + {"Tokenprimarygroup", Type, 0}, + {"Tokenprimarygroup.PrimaryGroup", Field, 0}, + {"Tokenuser", Type, 0}, + {"Tokenuser.User", Field, 0}, + {"TranslateAccountName", Func, 0}, + {"TranslateName", Func, 0}, + {"TransmitFile", Func, 0}, + {"TransmitFileBuffers", Type, 0}, + {"TransmitFileBuffers.Head", Field, 0}, + {"TransmitFileBuffers.HeadLength", Field, 0}, + {"TransmitFileBuffers.Tail", Field, 0}, + {"TransmitFileBuffers.TailLength", Field, 0}, + {"Truncate", Func, 0}, + {"UNIX_PATH_MAX", Const, 12}, + {"USAGE_MATCH_TYPE_AND", Const, 0}, + {"USAGE_MATCH_TYPE_OR", Const, 0}, + {"UTF16FromString", Func, 1}, + {"UTF16PtrFromString", Func, 1}, + {"UTF16ToString", Func, 0}, + {"Ucred", Type, 0}, + {"Ucred.Gid", Field, 0}, + {"Ucred.Pid", Field, 0}, + {"Ucred.Uid", Field, 0}, + {"Umask", Func, 0}, + {"Uname", Func, 0}, + {"Undelete", Func, 0}, + {"UnixCredentials", Func, 0}, + {"UnixRights", Func, 0}, + {"Unlink", Func, 0}, + {"Unlinkat", Func, 0}, + {"UnmapViewOfFile", Func, 0}, + {"Unmount", Func, 0}, + {"Unsetenv", Func, 4}, + {"Unshare", Func, 0}, + {"UserInfo10", Type, 0}, + {"UserInfo10.Comment", Field, 0}, + {"UserInfo10.FullName", Field, 0}, + {"UserInfo10.Name", Field, 0}, + {"UserInfo10.UsrComment", Field, 0}, + {"Ustat", Func, 0}, + {"Ustat_t", Type, 0}, + {"Ustat_t.Fname", Field, 0}, + {"Ustat_t.Fpack", Field, 0}, + {"Ustat_t.Pad_cgo_0", Field, 0}, + {"Ustat_t.Pad_cgo_1", Field, 0}, + {"Ustat_t.Tfree", Field, 0}, + {"Ustat_t.Tinode", Field, 0}, + {"Utimbuf", Type, 0}, + {"Utimbuf.Actime", Field, 0}, + {"Utimbuf.Modtime", Field, 0}, + {"Utime", Func, 0}, + {"Utimes", Func, 0}, + {"UtimesNano", Func, 1}, + {"Utsname", Type, 0}, + {"Utsname.Domainname", Field, 0}, + {"Utsname.Machine", Field, 0}, + {"Utsname.Nodename", Field, 0}, + {"Utsname.Release", Field, 0}, + {"Utsname.Sysname", Field, 0}, + {"Utsname.Version", Field, 0}, + {"VDISCARD", Const, 0}, + {"VDSUSP", Const, 1}, + {"VEOF", Const, 0}, + {"VEOL", Const, 0}, + {"VEOL2", Const, 0}, + {"VERASE", Const, 0}, + {"VERASE2", Const, 1}, + {"VINTR", Const, 0}, + {"VKILL", Const, 0}, + {"VLNEXT", Const, 0}, + {"VMIN", Const, 0}, + {"VQUIT", Const, 0}, + {"VREPRINT", Const, 0}, + {"VSTART", Const, 0}, + {"VSTATUS", Const, 1}, + {"VSTOP", Const, 0}, + {"VSUSP", Const, 0}, + {"VSWTC", Const, 0}, + {"VT0", Const, 1}, + {"VT1", Const, 1}, + {"VTDLY", Const, 1}, + {"VTIME", Const, 0}, + {"VWERASE", Const, 0}, + {"VirtualLock", Func, 0}, + {"VirtualUnlock", Func, 0}, + {"WAIT_ABANDONED", Const, 0}, + {"WAIT_FAILED", Const, 0}, + {"WAIT_OBJECT_0", Const, 0}, + {"WAIT_TIMEOUT", Const, 0}, + {"WALL", Const, 0}, + {"WALLSIG", Const, 1}, + {"WALTSIG", Const, 1}, + {"WCLONE", Const, 0}, + {"WCONTINUED", Const, 0}, + {"WCOREFLAG", Const, 0}, + {"WEXITED", Const, 0}, + {"WLINUXCLONE", Const, 0}, + {"WNOHANG", Const, 0}, + {"WNOTHREAD", Const, 0}, + {"WNOWAIT", Const, 0}, + {"WNOZOMBIE", Const, 1}, + {"WOPTSCHECKED", Const, 1}, + {"WORDSIZE", Const, 0}, + {"WSABuf", Type, 0}, + {"WSABuf.Buf", Field, 0}, + {"WSABuf.Len", Field, 0}, + {"WSACleanup", Func, 0}, + {"WSADESCRIPTION_LEN", Const, 0}, + {"WSAData", Type, 0}, + {"WSAData.Description", Field, 0}, + {"WSAData.HighVersion", Field, 0}, + {"WSAData.MaxSockets", Field, 0}, + {"WSAData.MaxUdpDg", Field, 0}, + {"WSAData.SystemStatus", Field, 0}, + {"WSAData.VendorInfo", Field, 0}, + {"WSAData.Version", Field, 0}, + {"WSAEACCES", Const, 2}, + {"WSAECONNABORTED", Const, 9}, + {"WSAECONNRESET", Const, 3}, + {"WSAEnumProtocols", Func, 2}, + {"WSAID_CONNECTEX", Var, 1}, + {"WSAIoctl", Func, 0}, + {"WSAPROTOCOL_LEN", Const, 2}, + {"WSAProtocolChain", Type, 2}, + {"WSAProtocolChain.ChainEntries", Field, 2}, + {"WSAProtocolChain.ChainLen", Field, 2}, + {"WSAProtocolInfo", Type, 2}, + {"WSAProtocolInfo.AddressFamily", Field, 2}, + {"WSAProtocolInfo.CatalogEntryId", Field, 2}, + {"WSAProtocolInfo.MaxSockAddr", Field, 2}, + {"WSAProtocolInfo.MessageSize", Field, 2}, + {"WSAProtocolInfo.MinSockAddr", Field, 2}, + {"WSAProtocolInfo.NetworkByteOrder", Field, 2}, + {"WSAProtocolInfo.Protocol", Field, 2}, + {"WSAProtocolInfo.ProtocolChain", Field, 2}, + {"WSAProtocolInfo.ProtocolMaxOffset", Field, 2}, + {"WSAProtocolInfo.ProtocolName", Field, 2}, + {"WSAProtocolInfo.ProviderFlags", Field, 2}, + {"WSAProtocolInfo.ProviderId", Field, 2}, + {"WSAProtocolInfo.ProviderReserved", Field, 2}, + {"WSAProtocolInfo.SecurityScheme", Field, 2}, + {"WSAProtocolInfo.ServiceFlags1", Field, 2}, + {"WSAProtocolInfo.ServiceFlags2", Field, 2}, + {"WSAProtocolInfo.ServiceFlags3", Field, 2}, + {"WSAProtocolInfo.ServiceFlags4", Field, 2}, + {"WSAProtocolInfo.SocketType", Field, 2}, + {"WSAProtocolInfo.Version", Field, 2}, + {"WSARecv", Func, 0}, + {"WSARecvFrom", Func, 0}, + {"WSASYS_STATUS_LEN", Const, 0}, + {"WSASend", Func, 0}, + {"WSASendTo", Func, 0}, + {"WSASendto", Func, 0}, + {"WSAStartup", Func, 0}, + {"WSTOPPED", Const, 0}, + {"WTRAPPED", Const, 1}, + {"WUNTRACED", Const, 0}, + {"Wait4", Func, 0}, + {"WaitForSingleObject", Func, 0}, + {"WaitStatus", Type, 0}, + {"WaitStatus.ExitCode", Field, 0}, + {"Win32FileAttributeData", Type, 0}, + {"Win32FileAttributeData.CreationTime", Field, 0}, + {"Win32FileAttributeData.FileAttributes", Field, 0}, + {"Win32FileAttributeData.FileSizeHigh", Field, 0}, + {"Win32FileAttributeData.FileSizeLow", Field, 0}, + {"Win32FileAttributeData.LastAccessTime", Field, 0}, + {"Win32FileAttributeData.LastWriteTime", Field, 0}, + {"Win32finddata", Type, 0}, + {"Win32finddata.AlternateFileName", Field, 0}, + {"Win32finddata.CreationTime", Field, 0}, + {"Win32finddata.FileAttributes", Field, 0}, + {"Win32finddata.FileName", Field, 0}, + {"Win32finddata.FileSizeHigh", Field, 0}, + {"Win32finddata.FileSizeLow", Field, 0}, + {"Win32finddata.LastAccessTime", Field, 0}, + {"Win32finddata.LastWriteTime", Field, 0}, + {"Win32finddata.Reserved0", Field, 0}, + {"Win32finddata.Reserved1", Field, 0}, + {"Write", Func, 0}, + {"WriteConsole", Func, 1}, + {"WriteFile", Func, 0}, + {"X509_ASN_ENCODING", Const, 0}, + {"XCASE", Const, 0}, + {"XP1_CONNECTIONLESS", Const, 2}, + {"XP1_CONNECT_DATA", Const, 2}, + {"XP1_DISCONNECT_DATA", Const, 2}, + {"XP1_EXPEDITED_DATA", Const, 2}, + {"XP1_GRACEFUL_CLOSE", Const, 2}, + {"XP1_GUARANTEED_DELIVERY", Const, 2}, + {"XP1_GUARANTEED_ORDER", Const, 2}, + {"XP1_IFS_HANDLES", Const, 2}, + {"XP1_MESSAGE_ORIENTED", Const, 2}, + {"XP1_MULTIPOINT_CONTROL_PLANE", Const, 2}, + {"XP1_MULTIPOINT_DATA_PLANE", Const, 2}, + {"XP1_PARTIAL_MESSAGE", Const, 2}, + {"XP1_PSEUDO_STREAM", Const, 2}, + {"XP1_QOS_SUPPORTED", Const, 2}, + {"XP1_SAN_SUPPORT_SDP", Const, 2}, + {"XP1_SUPPORT_BROADCAST", Const, 2}, + {"XP1_SUPPORT_MULTIPOINT", Const, 2}, + {"XP1_UNI_RECV", Const, 2}, + {"XP1_UNI_SEND", Const, 2}, + }, + "syscall/js": { + {"CopyBytesToGo", Func, 0}, + {"CopyBytesToJS", Func, 0}, + {"Error", Type, 0}, + {"Func", Type, 0}, + {"FuncOf", Func, 0}, + {"Global", Func, 0}, + {"Null", Func, 0}, + {"Type", Type, 0}, + {"TypeBoolean", Const, 0}, + {"TypeFunction", Const, 0}, + {"TypeNull", Const, 0}, + {"TypeNumber", Const, 0}, + {"TypeObject", Const, 0}, + {"TypeString", Const, 0}, + {"TypeSymbol", Const, 0}, + {"TypeUndefined", Const, 0}, + {"Undefined", Func, 0}, + {"Value", Type, 0}, + {"ValueError", Type, 0}, + {"ValueOf", Func, 0}, + }, + "testing": { + {"(*B).Cleanup", Method, 14}, + {"(*B).Elapsed", Method, 20}, + {"(*B).Error", Method, 0}, + {"(*B).Errorf", Method, 0}, + {"(*B).Fail", Method, 0}, + {"(*B).FailNow", Method, 0}, + {"(*B).Failed", Method, 0}, + {"(*B).Fatal", Method, 0}, + {"(*B).Fatalf", Method, 0}, + {"(*B).Helper", Method, 9}, + {"(*B).Log", Method, 0}, + {"(*B).Logf", Method, 0}, + {"(*B).Name", Method, 8}, + {"(*B).ReportAllocs", Method, 1}, + {"(*B).ReportMetric", Method, 13}, + {"(*B).ResetTimer", Method, 0}, + {"(*B).Run", Method, 7}, + {"(*B).RunParallel", Method, 3}, + {"(*B).SetBytes", Method, 0}, + {"(*B).SetParallelism", Method, 3}, + {"(*B).Setenv", Method, 17}, + {"(*B).Skip", Method, 1}, + {"(*B).SkipNow", Method, 1}, + {"(*B).Skipf", Method, 1}, + {"(*B).Skipped", Method, 1}, + {"(*B).StartTimer", Method, 0}, + {"(*B).StopTimer", Method, 0}, + {"(*B).TempDir", Method, 15}, + {"(*F).Add", Method, 18}, + {"(*F).Cleanup", Method, 18}, + {"(*F).Error", Method, 18}, + {"(*F).Errorf", Method, 18}, + {"(*F).Fail", Method, 18}, + {"(*F).FailNow", Method, 18}, + {"(*F).Failed", Method, 18}, + {"(*F).Fatal", Method, 18}, + {"(*F).Fatalf", Method, 18}, + {"(*F).Fuzz", Method, 18}, + {"(*F).Helper", Method, 18}, + {"(*F).Log", Method, 18}, + {"(*F).Logf", Method, 18}, + {"(*F).Name", Method, 18}, + {"(*F).Setenv", Method, 18}, + {"(*F).Skip", Method, 18}, + {"(*F).SkipNow", Method, 18}, + {"(*F).Skipf", Method, 18}, + {"(*F).Skipped", Method, 18}, + {"(*F).TempDir", Method, 18}, + {"(*M).Run", Method, 4}, + {"(*PB).Next", Method, 3}, + {"(*T).Cleanup", Method, 14}, + {"(*T).Deadline", Method, 15}, + {"(*T).Error", Method, 0}, + {"(*T).Errorf", Method, 0}, + {"(*T).Fail", Method, 0}, + {"(*T).FailNow", Method, 0}, + {"(*T).Failed", Method, 0}, + {"(*T).Fatal", Method, 0}, + {"(*T).Fatalf", Method, 0}, + {"(*T).Helper", Method, 9}, + {"(*T).Log", Method, 0}, + {"(*T).Logf", Method, 0}, + {"(*T).Name", Method, 8}, + {"(*T).Parallel", Method, 0}, + {"(*T).Run", Method, 7}, + {"(*T).Setenv", Method, 17}, + {"(*T).Skip", Method, 1}, + {"(*T).SkipNow", Method, 1}, + {"(*T).Skipf", Method, 1}, + {"(*T).Skipped", Method, 1}, + {"(*T).TempDir", Method, 15}, + {"(BenchmarkResult).AllocedBytesPerOp", Method, 1}, + {"(BenchmarkResult).AllocsPerOp", Method, 1}, + {"(BenchmarkResult).MemString", Method, 1}, + {"(BenchmarkResult).NsPerOp", Method, 0}, + {"(BenchmarkResult).String", Method, 0}, + {"AllocsPerRun", Func, 1}, + {"B", Type, 0}, + {"B.N", Field, 0}, + {"Benchmark", Func, 0}, + {"BenchmarkResult", Type, 0}, + {"BenchmarkResult.Bytes", Field, 0}, + {"BenchmarkResult.Extra", Field, 13}, + {"BenchmarkResult.MemAllocs", Field, 1}, + {"BenchmarkResult.MemBytes", Field, 1}, + {"BenchmarkResult.N", Field, 0}, + {"BenchmarkResult.T", Field, 0}, + {"Cover", Type, 2}, + {"Cover.Blocks", Field, 2}, + {"Cover.Counters", Field, 2}, + {"Cover.CoveredPackages", Field, 2}, + {"Cover.Mode", Field, 2}, + {"CoverBlock", Type, 2}, + {"CoverBlock.Col0", Field, 2}, + {"CoverBlock.Col1", Field, 2}, + {"CoverBlock.Line0", Field, 2}, + {"CoverBlock.Line1", Field, 2}, + {"CoverBlock.Stmts", Field, 2}, + {"CoverMode", Func, 8}, + {"Coverage", Func, 4}, + {"F", Type, 18}, + {"Init", Func, 13}, + {"InternalBenchmark", Type, 0}, + {"InternalBenchmark.F", Field, 0}, + {"InternalBenchmark.Name", Field, 0}, + {"InternalExample", Type, 0}, + {"InternalExample.F", Field, 0}, + {"InternalExample.Name", Field, 0}, + {"InternalExample.Output", Field, 0}, + {"InternalExample.Unordered", Field, 7}, + {"InternalFuzzTarget", Type, 18}, + {"InternalFuzzTarget.Fn", Field, 18}, + {"InternalFuzzTarget.Name", Field, 18}, + {"InternalTest", Type, 0}, + {"InternalTest.F", Field, 0}, + {"InternalTest.Name", Field, 0}, + {"M", Type, 4}, + {"Main", Func, 0}, + {"MainStart", Func, 4}, + {"PB", Type, 3}, + {"RegisterCover", Func, 2}, + {"RunBenchmarks", Func, 0}, + {"RunExamples", Func, 0}, + {"RunTests", Func, 0}, + {"Short", Func, 0}, + {"T", Type, 0}, + {"TB", Type, 2}, + {"Testing", Func, 21}, + {"Verbose", Func, 1}, + }, + "testing/fstest": { + {"(MapFS).Glob", Method, 16}, + {"(MapFS).Open", Method, 16}, + {"(MapFS).ReadDir", Method, 16}, + {"(MapFS).ReadFile", Method, 16}, + {"(MapFS).Stat", Method, 16}, + {"(MapFS).Sub", Method, 16}, + {"MapFS", Type, 16}, + {"MapFile", Type, 16}, + {"MapFile.Data", Field, 16}, + {"MapFile.ModTime", Field, 16}, + {"MapFile.Mode", Field, 16}, + {"MapFile.Sys", Field, 16}, + {"TestFS", Func, 16}, + }, + "testing/iotest": { + {"DataErrReader", Func, 0}, + {"ErrReader", Func, 16}, + {"ErrTimeout", Var, 0}, + {"HalfReader", Func, 0}, + {"NewReadLogger", Func, 0}, + {"NewWriteLogger", Func, 0}, + {"OneByteReader", Func, 0}, + {"TestReader", Func, 16}, + {"TimeoutReader", Func, 0}, + {"TruncateWriter", Func, 0}, + }, + "testing/quick": { + {"(*CheckEqualError).Error", Method, 0}, + {"(*CheckError).Error", Method, 0}, + {"(SetupError).Error", Method, 0}, + {"Check", Func, 0}, + {"CheckEqual", Func, 0}, + {"CheckEqualError", Type, 0}, + {"CheckEqualError.CheckError", Field, 0}, + {"CheckEqualError.Out1", Field, 0}, + {"CheckEqualError.Out2", Field, 0}, + {"CheckError", Type, 0}, + {"CheckError.Count", Field, 0}, + {"CheckError.In", Field, 0}, + {"Config", Type, 0}, + {"Config.MaxCount", Field, 0}, + {"Config.MaxCountScale", Field, 0}, + {"Config.Rand", Field, 0}, + {"Config.Values", Field, 0}, + {"Generator", Type, 0}, + {"SetupError", Type, 0}, + {"Value", Func, 0}, + }, + "testing/slogtest": { + {"Run", Func, 22}, + {"TestHandler", Func, 21}, + }, + "text/scanner": { + {"(*Position).IsValid", Method, 0}, + {"(*Scanner).Init", Method, 0}, + {"(*Scanner).IsValid", Method, 0}, + {"(*Scanner).Next", Method, 0}, + {"(*Scanner).Peek", Method, 0}, + {"(*Scanner).Pos", Method, 0}, + {"(*Scanner).Scan", Method, 0}, + {"(*Scanner).TokenText", Method, 0}, + {"(Position).String", Method, 0}, + {"(Scanner).String", Method, 0}, + {"Char", Const, 0}, + {"Comment", Const, 0}, + {"EOF", Const, 0}, + {"Float", Const, 0}, + {"GoTokens", Const, 0}, + {"GoWhitespace", Const, 0}, + {"Ident", Const, 0}, + {"Int", Const, 0}, + {"Position", Type, 0}, + {"Position.Column", Field, 0}, + {"Position.Filename", Field, 0}, + {"Position.Line", Field, 0}, + {"Position.Offset", Field, 0}, + {"RawString", Const, 0}, + {"ScanChars", Const, 0}, + {"ScanComments", Const, 0}, + {"ScanFloats", Const, 0}, + {"ScanIdents", Const, 0}, + {"ScanInts", Const, 0}, + {"ScanRawStrings", Const, 0}, + {"ScanStrings", Const, 0}, + {"Scanner", Type, 0}, + {"Scanner.Error", Field, 0}, + {"Scanner.ErrorCount", Field, 0}, + {"Scanner.IsIdentRune", Field, 4}, + {"Scanner.Mode", Field, 0}, + {"Scanner.Position", Field, 0}, + {"Scanner.Whitespace", Field, 0}, + {"SkipComments", Const, 0}, + {"String", Const, 0}, + {"TokenString", Func, 0}, + }, + "text/tabwriter": { + {"(*Writer).Flush", Method, 0}, + {"(*Writer).Init", Method, 0}, + {"(*Writer).Write", Method, 0}, + {"AlignRight", Const, 0}, + {"Debug", Const, 0}, + {"DiscardEmptyColumns", Const, 0}, + {"Escape", Const, 0}, + {"FilterHTML", Const, 0}, + {"NewWriter", Func, 0}, + {"StripEscape", Const, 0}, + {"TabIndent", Const, 0}, + {"Writer", Type, 0}, + }, + "text/template": { + {"(*Template).AddParseTree", Method, 0}, + {"(*Template).Clone", Method, 0}, + {"(*Template).DefinedTemplates", Method, 5}, + {"(*Template).Delims", Method, 0}, + {"(*Template).Execute", Method, 0}, + {"(*Template).ExecuteTemplate", Method, 0}, + {"(*Template).Funcs", Method, 0}, + {"(*Template).Lookup", Method, 0}, + {"(*Template).Name", Method, 0}, + {"(*Template).New", Method, 0}, + {"(*Template).Option", Method, 5}, + {"(*Template).Parse", Method, 0}, + {"(*Template).ParseFS", Method, 16}, + {"(*Template).ParseFiles", Method, 0}, + {"(*Template).ParseGlob", Method, 0}, + {"(*Template).Templates", Method, 0}, + {"(ExecError).Error", Method, 6}, + {"(ExecError).Unwrap", Method, 13}, + {"(Template).Copy", Method, 2}, + {"(Template).ErrorContext", Method, 1}, + {"ExecError", Type, 6}, + {"ExecError.Err", Field, 6}, + {"ExecError.Name", Field, 6}, + {"FuncMap", Type, 0}, + {"HTMLEscape", Func, 0}, + {"HTMLEscapeString", Func, 0}, + {"HTMLEscaper", Func, 0}, + {"IsTrue", Func, 6}, + {"JSEscape", Func, 0}, + {"JSEscapeString", Func, 0}, + {"JSEscaper", Func, 0}, + {"Must", Func, 0}, + {"New", Func, 0}, + {"ParseFS", Func, 16}, + {"ParseFiles", Func, 0}, + {"ParseGlob", Func, 0}, + {"Template", Type, 0}, + {"Template.Tree", Field, 0}, + {"URLQueryEscaper", Func, 0}, + }, + "text/template/parse": { + {"(*ActionNode).Copy", Method, 0}, + {"(*ActionNode).String", Method, 0}, + {"(*BoolNode).Copy", Method, 0}, + {"(*BoolNode).String", Method, 0}, + {"(*BranchNode).Copy", Method, 4}, + {"(*BranchNode).String", Method, 0}, + {"(*BreakNode).Copy", Method, 18}, + {"(*BreakNode).String", Method, 18}, + {"(*ChainNode).Add", Method, 1}, + {"(*ChainNode).Copy", Method, 1}, + {"(*ChainNode).String", Method, 1}, + {"(*CommandNode).Copy", Method, 0}, + {"(*CommandNode).String", Method, 0}, + {"(*CommentNode).Copy", Method, 16}, + {"(*CommentNode).String", Method, 16}, + {"(*ContinueNode).Copy", Method, 18}, + {"(*ContinueNode).String", Method, 18}, + {"(*DotNode).Copy", Method, 0}, + {"(*DotNode).String", Method, 0}, + {"(*DotNode).Type", Method, 0}, + {"(*FieldNode).Copy", Method, 0}, + {"(*FieldNode).String", Method, 0}, + {"(*IdentifierNode).Copy", Method, 0}, + {"(*IdentifierNode).SetPos", Method, 1}, + {"(*IdentifierNode).SetTree", Method, 4}, + {"(*IdentifierNode).String", Method, 0}, + {"(*IfNode).Copy", Method, 0}, + {"(*IfNode).String", Method, 0}, + {"(*ListNode).Copy", Method, 0}, + {"(*ListNode).CopyList", Method, 0}, + {"(*ListNode).String", Method, 0}, + {"(*NilNode).Copy", Method, 1}, + {"(*NilNode).String", Method, 1}, + {"(*NilNode).Type", Method, 1}, + {"(*NumberNode).Copy", Method, 0}, + {"(*NumberNode).String", Method, 0}, + {"(*PipeNode).Copy", Method, 0}, + {"(*PipeNode).CopyPipe", Method, 0}, + {"(*PipeNode).String", Method, 0}, + {"(*RangeNode).Copy", Method, 0}, + {"(*RangeNode).String", Method, 0}, + {"(*StringNode).Copy", Method, 0}, + {"(*StringNode).String", Method, 0}, + {"(*TemplateNode).Copy", Method, 0}, + {"(*TemplateNode).String", Method, 0}, + {"(*TextNode).Copy", Method, 0}, + {"(*TextNode).String", Method, 0}, + {"(*Tree).Copy", Method, 2}, + {"(*Tree).ErrorContext", Method, 1}, + {"(*Tree).Parse", Method, 0}, + {"(*VariableNode).Copy", Method, 0}, + {"(*VariableNode).String", Method, 0}, + {"(*WithNode).Copy", Method, 0}, + {"(*WithNode).String", Method, 0}, + {"(ActionNode).Position", Method, 1}, + {"(ActionNode).Type", Method, 0}, + {"(BoolNode).Position", Method, 1}, + {"(BoolNode).Type", Method, 0}, + {"(BranchNode).Position", Method, 1}, + {"(BranchNode).Type", Method, 0}, + {"(BreakNode).Position", Method, 18}, + {"(BreakNode).Type", Method, 18}, + {"(ChainNode).Position", Method, 1}, + {"(ChainNode).Type", Method, 1}, + {"(CommandNode).Position", Method, 1}, + {"(CommandNode).Type", Method, 0}, + {"(CommentNode).Position", Method, 16}, + {"(CommentNode).Type", Method, 16}, + {"(ContinueNode).Position", Method, 18}, + {"(ContinueNode).Type", Method, 18}, + {"(DotNode).Position", Method, 1}, + {"(FieldNode).Position", Method, 1}, + {"(FieldNode).Type", Method, 0}, + {"(IdentifierNode).Position", Method, 1}, + {"(IdentifierNode).Type", Method, 0}, + {"(IfNode).Position", Method, 1}, + {"(IfNode).Type", Method, 0}, + {"(ListNode).Position", Method, 1}, + {"(ListNode).Type", Method, 0}, + {"(NilNode).Position", Method, 1}, + {"(NodeType).Type", Method, 0}, + {"(NumberNode).Position", Method, 1}, + {"(NumberNode).Type", Method, 0}, + {"(PipeNode).Position", Method, 1}, + {"(PipeNode).Type", Method, 0}, + {"(Pos).Position", Method, 1}, + {"(RangeNode).Position", Method, 1}, + {"(RangeNode).Type", Method, 0}, + {"(StringNode).Position", Method, 1}, + {"(StringNode).Type", Method, 0}, + {"(TemplateNode).Position", Method, 1}, + {"(TemplateNode).Type", Method, 0}, + {"(TextNode).Position", Method, 1}, + {"(TextNode).Type", Method, 0}, + {"(VariableNode).Position", Method, 1}, + {"(VariableNode).Type", Method, 0}, + {"(WithNode).Position", Method, 1}, + {"(WithNode).Type", Method, 0}, + {"ActionNode", Type, 0}, + {"ActionNode.Line", Field, 0}, + {"ActionNode.NodeType", Field, 0}, + {"ActionNode.Pipe", Field, 0}, + {"ActionNode.Pos", Field, 1}, + {"BoolNode", Type, 0}, + {"BoolNode.NodeType", Field, 0}, + {"BoolNode.Pos", Field, 1}, + {"BoolNode.True", Field, 0}, + {"BranchNode", Type, 0}, + {"BranchNode.ElseList", Field, 0}, + {"BranchNode.Line", Field, 0}, + {"BranchNode.List", Field, 0}, + {"BranchNode.NodeType", Field, 0}, + {"BranchNode.Pipe", Field, 0}, + {"BranchNode.Pos", Field, 1}, + {"BreakNode", Type, 18}, + {"BreakNode.Line", Field, 18}, + {"BreakNode.NodeType", Field, 18}, + {"BreakNode.Pos", Field, 18}, + {"ChainNode", Type, 1}, + {"ChainNode.Field", Field, 1}, + {"ChainNode.Node", Field, 1}, + {"ChainNode.NodeType", Field, 1}, + {"ChainNode.Pos", Field, 1}, + {"CommandNode", Type, 0}, + {"CommandNode.Args", Field, 0}, + {"CommandNode.NodeType", Field, 0}, + {"CommandNode.Pos", Field, 1}, + {"CommentNode", Type, 16}, + {"CommentNode.NodeType", Field, 16}, + {"CommentNode.Pos", Field, 16}, + {"CommentNode.Text", Field, 16}, + {"ContinueNode", Type, 18}, + {"ContinueNode.Line", Field, 18}, + {"ContinueNode.NodeType", Field, 18}, + {"ContinueNode.Pos", Field, 18}, + {"DotNode", Type, 0}, + {"DotNode.NodeType", Field, 4}, + {"DotNode.Pos", Field, 1}, + {"FieldNode", Type, 0}, + {"FieldNode.Ident", Field, 0}, + {"FieldNode.NodeType", Field, 0}, + {"FieldNode.Pos", Field, 1}, + {"IdentifierNode", Type, 0}, + {"IdentifierNode.Ident", Field, 0}, + {"IdentifierNode.NodeType", Field, 0}, + {"IdentifierNode.Pos", Field, 1}, + {"IfNode", Type, 0}, + {"IfNode.BranchNode", Field, 0}, + {"IsEmptyTree", Func, 0}, + {"ListNode", Type, 0}, + {"ListNode.NodeType", Field, 0}, + {"ListNode.Nodes", Field, 0}, + {"ListNode.Pos", Field, 1}, + {"Mode", Type, 16}, + {"New", Func, 0}, + {"NewIdentifier", Func, 0}, + {"NilNode", Type, 1}, + {"NilNode.NodeType", Field, 4}, + {"NilNode.Pos", Field, 1}, + {"Node", Type, 0}, + {"NodeAction", Const, 0}, + {"NodeBool", Const, 0}, + {"NodeBreak", Const, 18}, + {"NodeChain", Const, 1}, + {"NodeCommand", Const, 0}, + {"NodeComment", Const, 16}, + {"NodeContinue", Const, 18}, + {"NodeDot", Const, 0}, + {"NodeField", Const, 0}, + {"NodeIdentifier", Const, 0}, + {"NodeIf", Const, 0}, + {"NodeList", Const, 0}, + {"NodeNil", Const, 1}, + {"NodeNumber", Const, 0}, + {"NodePipe", Const, 0}, + {"NodeRange", Const, 0}, + {"NodeString", Const, 0}, + {"NodeTemplate", Const, 0}, + {"NodeText", Const, 0}, + {"NodeType", Type, 0}, + {"NodeVariable", Const, 0}, + {"NodeWith", Const, 0}, + {"NumberNode", Type, 0}, + {"NumberNode.Complex128", Field, 0}, + {"NumberNode.Float64", Field, 0}, + {"NumberNode.Int64", Field, 0}, + {"NumberNode.IsComplex", Field, 0}, + {"NumberNode.IsFloat", Field, 0}, + {"NumberNode.IsInt", Field, 0}, + {"NumberNode.IsUint", Field, 0}, + {"NumberNode.NodeType", Field, 0}, + {"NumberNode.Pos", Field, 1}, + {"NumberNode.Text", Field, 0}, + {"NumberNode.Uint64", Field, 0}, + {"Parse", Func, 0}, + {"ParseComments", Const, 16}, + {"PipeNode", Type, 0}, + {"PipeNode.Cmds", Field, 0}, + {"PipeNode.Decl", Field, 0}, + {"PipeNode.IsAssign", Field, 11}, + {"PipeNode.Line", Field, 0}, + {"PipeNode.NodeType", Field, 0}, + {"PipeNode.Pos", Field, 1}, + {"Pos", Type, 1}, + {"RangeNode", Type, 0}, + {"RangeNode.BranchNode", Field, 0}, + {"SkipFuncCheck", Const, 17}, + {"StringNode", Type, 0}, + {"StringNode.NodeType", Field, 0}, + {"StringNode.Pos", Field, 1}, + {"StringNode.Quoted", Field, 0}, + {"StringNode.Text", Field, 0}, + {"TemplateNode", Type, 0}, + {"TemplateNode.Line", Field, 0}, + {"TemplateNode.Name", Field, 0}, + {"TemplateNode.NodeType", Field, 0}, + {"TemplateNode.Pipe", Field, 0}, + {"TemplateNode.Pos", Field, 1}, + {"TextNode", Type, 0}, + {"TextNode.NodeType", Field, 0}, + {"TextNode.Pos", Field, 1}, + {"TextNode.Text", Field, 0}, + {"Tree", Type, 0}, + {"Tree.Mode", Field, 16}, + {"Tree.Name", Field, 0}, + {"Tree.ParseName", Field, 1}, + {"Tree.Root", Field, 0}, + {"VariableNode", Type, 0}, + {"VariableNode.Ident", Field, 0}, + {"VariableNode.NodeType", Field, 0}, + {"VariableNode.Pos", Field, 1}, + {"WithNode", Type, 0}, + {"WithNode.BranchNode", Field, 0}, + }, + "time": { + {"(*Location).String", Method, 0}, + {"(*ParseError).Error", Method, 0}, + {"(*Ticker).Reset", Method, 15}, + {"(*Ticker).Stop", Method, 0}, + {"(*Time).GobDecode", Method, 0}, + {"(*Time).UnmarshalBinary", Method, 2}, + {"(*Time).UnmarshalJSON", Method, 0}, + {"(*Time).UnmarshalText", Method, 2}, + {"(*Timer).Reset", Method, 1}, + {"(*Timer).Stop", Method, 0}, + {"(Duration).Abs", Method, 19}, + {"(Duration).Hours", Method, 0}, + {"(Duration).Microseconds", Method, 13}, + {"(Duration).Milliseconds", Method, 13}, + {"(Duration).Minutes", Method, 0}, + {"(Duration).Nanoseconds", Method, 0}, + {"(Duration).Round", Method, 9}, + {"(Duration).Seconds", Method, 0}, + {"(Duration).String", Method, 0}, + {"(Duration).Truncate", Method, 9}, + {"(Month).String", Method, 0}, + {"(Time).Add", Method, 0}, + {"(Time).AddDate", Method, 0}, + {"(Time).After", Method, 0}, + {"(Time).AppendFormat", Method, 5}, + {"(Time).Before", Method, 0}, + {"(Time).Clock", Method, 0}, + {"(Time).Compare", Method, 20}, + {"(Time).Date", Method, 0}, + {"(Time).Day", Method, 0}, + {"(Time).Equal", Method, 0}, + {"(Time).Format", Method, 0}, + {"(Time).GoString", Method, 17}, + {"(Time).GobEncode", Method, 0}, + {"(Time).Hour", Method, 0}, + {"(Time).ISOWeek", Method, 0}, + {"(Time).In", Method, 0}, + {"(Time).IsDST", Method, 17}, + {"(Time).IsZero", Method, 0}, + {"(Time).Local", Method, 0}, + {"(Time).Location", Method, 0}, + {"(Time).MarshalBinary", Method, 2}, + {"(Time).MarshalJSON", Method, 0}, + {"(Time).MarshalText", Method, 2}, + {"(Time).Minute", Method, 0}, + {"(Time).Month", Method, 0}, + {"(Time).Nanosecond", Method, 0}, + {"(Time).Round", Method, 1}, + {"(Time).Second", Method, 0}, + {"(Time).String", Method, 0}, + {"(Time).Sub", Method, 0}, + {"(Time).Truncate", Method, 1}, + {"(Time).UTC", Method, 0}, + {"(Time).Unix", Method, 0}, + {"(Time).UnixMicro", Method, 17}, + {"(Time).UnixMilli", Method, 17}, + {"(Time).UnixNano", Method, 0}, + {"(Time).Weekday", Method, 0}, + {"(Time).Year", Method, 0}, + {"(Time).YearDay", Method, 1}, + {"(Time).Zone", Method, 0}, + {"(Time).ZoneBounds", Method, 19}, + {"(Weekday).String", Method, 0}, + {"ANSIC", Const, 0}, + {"After", Func, 0}, + {"AfterFunc", Func, 0}, + {"April", Const, 0}, + {"August", Const, 0}, + {"Date", Func, 0}, + {"DateOnly", Const, 20}, + {"DateTime", Const, 20}, + {"December", Const, 0}, + {"Duration", Type, 0}, + {"February", Const, 0}, + {"FixedZone", Func, 0}, + {"Friday", Const, 0}, + {"Hour", Const, 0}, + {"January", Const, 0}, + {"July", Const, 0}, + {"June", Const, 0}, + {"Kitchen", Const, 0}, + {"Layout", Const, 17}, + {"LoadLocation", Func, 0}, + {"LoadLocationFromTZData", Func, 10}, + {"Local", Var, 0}, + {"Location", Type, 0}, + {"March", Const, 0}, + {"May", Const, 0}, + {"Microsecond", Const, 0}, + {"Millisecond", Const, 0}, + {"Minute", Const, 0}, + {"Monday", Const, 0}, + {"Month", Type, 0}, + {"Nanosecond", Const, 0}, + {"NewTicker", Func, 0}, + {"NewTimer", Func, 0}, + {"November", Const, 0}, + {"Now", Func, 0}, + {"October", Const, 0}, + {"Parse", Func, 0}, + {"ParseDuration", Func, 0}, + {"ParseError", Type, 0}, + {"ParseError.Layout", Field, 0}, + {"ParseError.LayoutElem", Field, 0}, + {"ParseError.Message", Field, 0}, + {"ParseError.Value", Field, 0}, + {"ParseError.ValueElem", Field, 0}, + {"ParseInLocation", Func, 1}, + {"RFC1123", Const, 0}, + {"RFC1123Z", Const, 0}, + {"RFC3339", Const, 0}, + {"RFC3339Nano", Const, 0}, + {"RFC822", Const, 0}, + {"RFC822Z", Const, 0}, + {"RFC850", Const, 0}, + {"RubyDate", Const, 0}, + {"Saturday", Const, 0}, + {"Second", Const, 0}, + {"September", Const, 0}, + {"Since", Func, 0}, + {"Sleep", Func, 0}, + {"Stamp", Const, 0}, + {"StampMicro", Const, 0}, + {"StampMilli", Const, 0}, + {"StampNano", Const, 0}, + {"Sunday", Const, 0}, + {"Thursday", Const, 0}, + {"Tick", Func, 0}, + {"Ticker", Type, 0}, + {"Ticker.C", Field, 0}, + {"Time", Type, 0}, + {"TimeOnly", Const, 20}, + {"Timer", Type, 0}, + {"Timer.C", Field, 0}, + {"Tuesday", Const, 0}, + {"UTC", Var, 0}, + {"Unix", Func, 0}, + {"UnixDate", Const, 0}, + {"UnixMicro", Func, 17}, + {"UnixMilli", Func, 17}, + {"Until", Func, 8}, + {"Wednesday", Const, 0}, + {"Weekday", Type, 0}, + }, + "unicode": { + {"(SpecialCase).ToLower", Method, 0}, + {"(SpecialCase).ToTitle", Method, 0}, + {"(SpecialCase).ToUpper", Method, 0}, + {"ASCII_Hex_Digit", Var, 0}, + {"Adlam", Var, 7}, + {"Ahom", Var, 5}, + {"Anatolian_Hieroglyphs", Var, 5}, + {"Arabic", Var, 0}, + {"Armenian", Var, 0}, + {"Avestan", Var, 0}, + {"AzeriCase", Var, 0}, + {"Balinese", Var, 0}, + {"Bamum", Var, 0}, + {"Bassa_Vah", Var, 4}, + {"Batak", Var, 0}, + {"Bengali", Var, 0}, + {"Bhaiksuki", Var, 7}, + {"Bidi_Control", Var, 0}, + {"Bopomofo", Var, 0}, + {"Brahmi", Var, 0}, + {"Braille", Var, 0}, + {"Buginese", Var, 0}, + {"Buhid", Var, 0}, + {"C", Var, 0}, + {"Canadian_Aboriginal", Var, 0}, + {"Carian", Var, 0}, + {"CaseRange", Type, 0}, + {"CaseRange.Delta", Field, 0}, + {"CaseRange.Hi", Field, 0}, + {"CaseRange.Lo", Field, 0}, + {"CaseRanges", Var, 0}, + {"Categories", Var, 0}, + {"Caucasian_Albanian", Var, 4}, + {"Cc", Var, 0}, + {"Cf", Var, 0}, + {"Chakma", Var, 1}, + {"Cham", Var, 0}, + {"Cherokee", Var, 0}, + {"Chorasmian", Var, 16}, + {"Co", Var, 0}, + {"Common", Var, 0}, + {"Coptic", Var, 0}, + {"Cs", Var, 0}, + {"Cuneiform", Var, 0}, + {"Cypriot", Var, 0}, + {"Cypro_Minoan", Var, 21}, + {"Cyrillic", Var, 0}, + {"Dash", Var, 0}, + {"Deprecated", Var, 0}, + {"Deseret", Var, 0}, + {"Devanagari", Var, 0}, + {"Diacritic", Var, 0}, + {"Digit", Var, 0}, + {"Dives_Akuru", Var, 16}, + {"Dogra", Var, 13}, + {"Duployan", Var, 4}, + {"Egyptian_Hieroglyphs", Var, 0}, + {"Elbasan", Var, 4}, + {"Elymaic", Var, 14}, + {"Ethiopic", Var, 0}, + {"Extender", Var, 0}, + {"FoldCategory", Var, 0}, + {"FoldScript", Var, 0}, + {"Georgian", Var, 0}, + {"Glagolitic", Var, 0}, + {"Gothic", Var, 0}, + {"Grantha", Var, 4}, + {"GraphicRanges", Var, 0}, + {"Greek", Var, 0}, + {"Gujarati", Var, 0}, + {"Gunjala_Gondi", Var, 13}, + {"Gurmukhi", Var, 0}, + {"Han", Var, 0}, + {"Hangul", Var, 0}, + {"Hanifi_Rohingya", Var, 13}, + {"Hanunoo", Var, 0}, + {"Hatran", Var, 5}, + {"Hebrew", Var, 0}, + {"Hex_Digit", Var, 0}, + {"Hiragana", Var, 0}, + {"Hyphen", Var, 0}, + {"IDS_Binary_Operator", Var, 0}, + {"IDS_Trinary_Operator", Var, 0}, + {"Ideographic", Var, 0}, + {"Imperial_Aramaic", Var, 0}, + {"In", Func, 2}, + {"Inherited", Var, 0}, + {"Inscriptional_Pahlavi", Var, 0}, + {"Inscriptional_Parthian", Var, 0}, + {"Is", Func, 0}, + {"IsControl", Func, 0}, + {"IsDigit", Func, 0}, + {"IsGraphic", Func, 0}, + {"IsLetter", Func, 0}, + {"IsLower", Func, 0}, + {"IsMark", Func, 0}, + {"IsNumber", Func, 0}, + {"IsOneOf", Func, 0}, + {"IsPrint", Func, 0}, + {"IsPunct", Func, 0}, + {"IsSpace", Func, 0}, + {"IsSymbol", Func, 0}, + {"IsTitle", Func, 0}, + {"IsUpper", Func, 0}, + {"Javanese", Var, 0}, + {"Join_Control", Var, 0}, + {"Kaithi", Var, 0}, + {"Kannada", Var, 0}, + {"Katakana", Var, 0}, + {"Kawi", Var, 21}, + {"Kayah_Li", Var, 0}, + {"Kharoshthi", Var, 0}, + {"Khitan_Small_Script", Var, 16}, + {"Khmer", Var, 0}, + {"Khojki", Var, 4}, + {"Khudawadi", Var, 4}, + {"L", Var, 0}, + {"Lao", Var, 0}, + {"Latin", Var, 0}, + {"Lepcha", Var, 0}, + {"Letter", Var, 0}, + {"Limbu", Var, 0}, + {"Linear_A", Var, 4}, + {"Linear_B", Var, 0}, + {"Lisu", Var, 0}, + {"Ll", Var, 0}, + {"Lm", Var, 0}, + {"Lo", Var, 0}, + {"Logical_Order_Exception", Var, 0}, + {"Lower", Var, 0}, + {"LowerCase", Const, 0}, + {"Lt", Var, 0}, + {"Lu", Var, 0}, + {"Lycian", Var, 0}, + {"Lydian", Var, 0}, + {"M", Var, 0}, + {"Mahajani", Var, 4}, + {"Makasar", Var, 13}, + {"Malayalam", Var, 0}, + {"Mandaic", Var, 0}, + {"Manichaean", Var, 4}, + {"Marchen", Var, 7}, + {"Mark", Var, 0}, + {"Masaram_Gondi", Var, 10}, + {"MaxASCII", Const, 0}, + {"MaxCase", Const, 0}, + {"MaxLatin1", Const, 0}, + {"MaxRune", Const, 0}, + {"Mc", Var, 0}, + {"Me", Var, 0}, + {"Medefaidrin", Var, 13}, + {"Meetei_Mayek", Var, 0}, + {"Mende_Kikakui", Var, 4}, + {"Meroitic_Cursive", Var, 1}, + {"Meroitic_Hieroglyphs", Var, 1}, + {"Miao", Var, 1}, + {"Mn", Var, 0}, + {"Modi", Var, 4}, + {"Mongolian", Var, 0}, + {"Mro", Var, 4}, + {"Multani", Var, 5}, + {"Myanmar", Var, 0}, + {"N", Var, 0}, + {"Nabataean", Var, 4}, + {"Nag_Mundari", Var, 21}, + {"Nandinagari", Var, 14}, + {"Nd", Var, 0}, + {"New_Tai_Lue", Var, 0}, + {"Newa", Var, 7}, + {"Nko", Var, 0}, + {"Nl", Var, 0}, + {"No", Var, 0}, + {"Noncharacter_Code_Point", Var, 0}, + {"Number", Var, 0}, + {"Nushu", Var, 10}, + {"Nyiakeng_Puachue_Hmong", Var, 14}, + {"Ogham", Var, 0}, + {"Ol_Chiki", Var, 0}, + {"Old_Hungarian", Var, 5}, + {"Old_Italic", Var, 0}, + {"Old_North_Arabian", Var, 4}, + {"Old_Permic", Var, 4}, + {"Old_Persian", Var, 0}, + {"Old_Sogdian", Var, 13}, + {"Old_South_Arabian", Var, 0}, + {"Old_Turkic", Var, 0}, + {"Old_Uyghur", Var, 21}, + {"Oriya", Var, 0}, + {"Osage", Var, 7}, + {"Osmanya", Var, 0}, + {"Other", Var, 0}, + {"Other_Alphabetic", Var, 0}, + {"Other_Default_Ignorable_Code_Point", Var, 0}, + {"Other_Grapheme_Extend", Var, 0}, + {"Other_ID_Continue", Var, 0}, + {"Other_ID_Start", Var, 0}, + {"Other_Lowercase", Var, 0}, + {"Other_Math", Var, 0}, + {"Other_Uppercase", Var, 0}, + {"P", Var, 0}, + {"Pahawh_Hmong", Var, 4}, + {"Palmyrene", Var, 4}, + {"Pattern_Syntax", Var, 0}, + {"Pattern_White_Space", Var, 0}, + {"Pau_Cin_Hau", Var, 4}, + {"Pc", Var, 0}, + {"Pd", Var, 0}, + {"Pe", Var, 0}, + {"Pf", Var, 0}, + {"Phags_Pa", Var, 0}, + {"Phoenician", Var, 0}, + {"Pi", Var, 0}, + {"Po", Var, 0}, + {"Prepended_Concatenation_Mark", Var, 7}, + {"PrintRanges", Var, 0}, + {"Properties", Var, 0}, + {"Ps", Var, 0}, + {"Psalter_Pahlavi", Var, 4}, + {"Punct", Var, 0}, + {"Quotation_Mark", Var, 0}, + {"Radical", Var, 0}, + {"Range16", Type, 0}, + {"Range16.Hi", Field, 0}, + {"Range16.Lo", Field, 0}, + {"Range16.Stride", Field, 0}, + {"Range32", Type, 0}, + {"Range32.Hi", Field, 0}, + {"Range32.Lo", Field, 0}, + {"Range32.Stride", Field, 0}, + {"RangeTable", Type, 0}, + {"RangeTable.LatinOffset", Field, 1}, + {"RangeTable.R16", Field, 0}, + {"RangeTable.R32", Field, 0}, + {"Regional_Indicator", Var, 10}, + {"Rejang", Var, 0}, + {"ReplacementChar", Const, 0}, + {"Runic", Var, 0}, + {"S", Var, 0}, + {"STerm", Var, 0}, + {"Samaritan", Var, 0}, + {"Saurashtra", Var, 0}, + {"Sc", Var, 0}, + {"Scripts", Var, 0}, + {"Sentence_Terminal", Var, 7}, + {"Sharada", Var, 1}, + {"Shavian", Var, 0}, + {"Siddham", Var, 4}, + {"SignWriting", Var, 5}, + {"SimpleFold", Func, 0}, + {"Sinhala", Var, 0}, + {"Sk", Var, 0}, + {"Sm", Var, 0}, + {"So", Var, 0}, + {"Soft_Dotted", Var, 0}, + {"Sogdian", Var, 13}, + {"Sora_Sompeng", Var, 1}, + {"Soyombo", Var, 10}, + {"Space", Var, 0}, + {"SpecialCase", Type, 0}, + {"Sundanese", Var, 0}, + {"Syloti_Nagri", Var, 0}, + {"Symbol", Var, 0}, + {"Syriac", Var, 0}, + {"Tagalog", Var, 0}, + {"Tagbanwa", Var, 0}, + {"Tai_Le", Var, 0}, + {"Tai_Tham", Var, 0}, + {"Tai_Viet", Var, 0}, + {"Takri", Var, 1}, + {"Tamil", Var, 0}, + {"Tangsa", Var, 21}, + {"Tangut", Var, 7}, + {"Telugu", Var, 0}, + {"Terminal_Punctuation", Var, 0}, + {"Thaana", Var, 0}, + {"Thai", Var, 0}, + {"Tibetan", Var, 0}, + {"Tifinagh", Var, 0}, + {"Tirhuta", Var, 4}, + {"Title", Var, 0}, + {"TitleCase", Const, 0}, + {"To", Func, 0}, + {"ToLower", Func, 0}, + {"ToTitle", Func, 0}, + {"ToUpper", Func, 0}, + {"Toto", Var, 21}, + {"TurkishCase", Var, 0}, + {"Ugaritic", Var, 0}, + {"Unified_Ideograph", Var, 0}, + {"Upper", Var, 0}, + {"UpperCase", Const, 0}, + {"UpperLower", Const, 0}, + {"Vai", Var, 0}, + {"Variation_Selector", Var, 0}, + {"Version", Const, 0}, + {"Vithkuqi", Var, 21}, + {"Wancho", Var, 14}, + {"Warang_Citi", Var, 4}, + {"White_Space", Var, 0}, + {"Yezidi", Var, 16}, + {"Yi", Var, 0}, + {"Z", Var, 0}, + {"Zanabazar_Square", Var, 10}, + {"Zl", Var, 0}, + {"Zp", Var, 0}, + {"Zs", Var, 0}, + }, + "unicode/utf16": { + {"AppendRune", Func, 20}, + {"Decode", Func, 0}, + {"DecodeRune", Func, 0}, + {"Encode", Func, 0}, + {"EncodeRune", Func, 0}, + {"IsSurrogate", Func, 0}, + }, + "unicode/utf8": { + {"AppendRune", Func, 18}, + {"DecodeLastRune", Func, 0}, + {"DecodeLastRuneInString", Func, 0}, + {"DecodeRune", Func, 0}, + {"DecodeRuneInString", Func, 0}, + {"EncodeRune", Func, 0}, + {"FullRune", Func, 0}, + {"FullRuneInString", Func, 0}, + {"MaxRune", Const, 0}, + {"RuneCount", Func, 0}, + {"RuneCountInString", Func, 0}, + {"RuneError", Const, 0}, + {"RuneLen", Func, 0}, + {"RuneSelf", Const, 0}, + {"RuneStart", Func, 0}, + {"UTFMax", Const, 0}, + {"Valid", Func, 0}, + {"ValidRune", Func, 1}, + {"ValidString", Func, 0}, + }, + "unsafe": { + {"Add", Func, 0}, + {"Alignof", Func, 0}, + {"Offsetof", Func, 0}, + {"Pointer", Type, 0}, + {"Sizeof", Func, 0}, + {"Slice", Func, 0}, + {"SliceData", Func, 0}, + {"String", Func, 0}, + {"StringData", Func, 0}, + }, +} diff --git a/vendor/golang.org/x/tools/internal/stdlib/stdlib.go b/vendor/golang.org/x/tools/internal/stdlib/stdlib.go new file mode 100644 index 000000000..98904017f --- /dev/null +++ b/vendor/golang.org/x/tools/internal/stdlib/stdlib.go @@ -0,0 +1,97 @@ +// Copyright 2022 The Go 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 generate.go + +// Package stdlib provides a table of all exported symbols in the +// standard library, along with the version at which they first +// appeared. +package stdlib + +import ( + "fmt" + "strings" +) + +type Symbol struct { + Name string + Kind Kind + Version Version // Go version that first included the symbol +} + +// A Kind indicates the kind of a symbol: +// function, variable, constant, type, and so on. +type Kind int8 + +const ( + Invalid Kind = iota // Example name: + Type // "Buffer" + Func // "Println" + Var // "EOF" + Const // "Pi" + Field // "Point.X" + Method // "(*Buffer).Grow" +) + +func (kind Kind) String() string { + return [...]string{ + Invalid: "invalid", + Type: "type", + Func: "func", + Var: "var", + Const: "const", + Field: "field", + Method: "method", + }[kind] +} + +// A Version represents a version of Go of the form "go1.%d". +type Version int8 + +// String returns a version string of the form "go1.23", without allocating. +func (v Version) String() string { return versions[v] } + +var versions [30]string // (increase constant as needed) + +func init() { + for i := range versions { + versions[i] = fmt.Sprintf("go1.%d", i) + } +} + +// HasPackage reports whether the specified package path is part of +// the standard library's public API. +func HasPackage(path string) bool { + _, ok := PackageSymbols[path] + return ok +} + +// SplitField splits the field symbol name into type and field +// components. It must be called only on Field symbols. +// +// Example: "File.Package" -> ("File", "Package") +func (sym *Symbol) SplitField() (typename, name string) { + if sym.Kind != Field { + panic("not a field") + } + typename, name, _ = strings.Cut(sym.Name, ".") + return +} + +// SplitMethod splits the method symbol name into pointer, receiver, +// and method components. It must be called only on Method symbols. +// +// Example: "(*Buffer).Grow" -> (true, "Buffer", "Grow") +func (sym *Symbol) SplitMethod() (ptr bool, recv, name string) { + if sym.Kind != Method { + panic("not a method") + } + recv, name, _ = strings.Cut(sym.Name, ".") + recv = recv[len("(") : len(recv)-len(")")] + ptr = recv[0] == '*' + if ptr { + recv = recv[len("*"):] + } + return +} diff --git a/vendor/golang.org/x/tools/internal/tokeninternal/tokeninternal.go b/vendor/golang.org/x/tools/internal/tokeninternal/tokeninternal.go index 7e638ec24..ff9437a36 100644 --- a/vendor/golang.org/x/tools/internal/tokeninternal/tokeninternal.go +++ b/vendor/golang.org/x/tools/internal/tokeninternal/tokeninternal.go @@ -34,30 +34,16 @@ func GetLines(file *token.File) []int { lines []int _ []struct{} } - type tokenFile118 struct { - _ *token.FileSet // deleted in go1.19 - tokenFile119 - } - - type uP = unsafe.Pointer - switch unsafe.Sizeof(*file) { - case unsafe.Sizeof(tokenFile118{}): - var ptr *tokenFile118 - *(*uP)(uP(&ptr)) = uP(file) - ptr.mu.Lock() - defer ptr.mu.Unlock() - return ptr.lines - case unsafe.Sizeof(tokenFile119{}): - var ptr *tokenFile119 - *(*uP)(uP(&ptr)) = uP(file) - ptr.mu.Lock() - defer ptr.mu.Unlock() - return ptr.lines - - default: + if unsafe.Sizeof(*file) != unsafe.Sizeof(tokenFile119{}) { panic("unexpected token.File size") } + var ptr *tokenFile119 + type uP = unsafe.Pointer + *(*uP)(uP(&ptr)) = uP(file) + ptr.mu.Lock() + defer ptr.mu.Unlock() + return ptr.lines } // AddExistingFiles adds the specified files to the FileSet if they diff --git a/vendor/golang.org/x/tools/internal/typeparams/common.go b/vendor/golang.org/x/tools/internal/typeparams/common.go deleted file mode 100644 index cdab98853..000000000 --- a/vendor/golang.org/x/tools/internal/typeparams/common.go +++ /dev/null @@ -1,204 +0,0 @@ -// Copyright 2021 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package typeparams contains common utilities for writing tools that interact -// with generic Go code, as introduced with Go 1.18. -// -// Many of the types and functions in this package are proxies for the new APIs -// introduced in the standard library with Go 1.18. For example, the -// typeparams.Union type is an alias for go/types.Union, and the ForTypeSpec -// function returns the value of the go/ast.TypeSpec.TypeParams field. At Go -// versions older than 1.18 these helpers are implemented as stubs, allowing -// users of this package to write code that handles generic constructs inline, -// even if the Go version being used to compile does not support generics. -// -// Additionally, this package contains common utilities for working with the -// new generic constructs, to supplement the standard library APIs. Notably, -// the StructuralTerms API computes a minimal representation of the structural -// restrictions on a type parameter. -// -// An external version of these APIs is available in the -// golang.org/x/exp/typeparams module. -package typeparams - -import ( - "fmt" - "go/ast" - "go/token" - "go/types" -) - -// UnpackIndexExpr extracts data from AST nodes that represent index -// expressions. -// -// For an ast.IndexExpr, the resulting indices slice will contain exactly one -// index expression. For an ast.IndexListExpr (go1.18+), it may have a variable -// number of index expressions. -// -// For nodes that don't represent index expressions, the first return value of -// UnpackIndexExpr will be nil. -func UnpackIndexExpr(n ast.Node) (x ast.Expr, lbrack token.Pos, indices []ast.Expr, rbrack token.Pos) { - switch e := n.(type) { - case *ast.IndexExpr: - return e.X, e.Lbrack, []ast.Expr{e.Index}, e.Rbrack - case *ast.IndexListExpr: - return e.X, e.Lbrack, e.Indices, e.Rbrack - } - return nil, token.NoPos, nil, token.NoPos -} - -// PackIndexExpr returns an *ast.IndexExpr or *ast.IndexListExpr, depending on -// the cardinality of indices. Calling PackIndexExpr with len(indices) == 0 -// will panic. -func PackIndexExpr(x ast.Expr, lbrack token.Pos, indices []ast.Expr, rbrack token.Pos) ast.Expr { - switch len(indices) { - case 0: - panic("empty indices") - case 1: - return &ast.IndexExpr{ - X: x, - Lbrack: lbrack, - Index: indices[0], - Rbrack: rbrack, - } - default: - return &ast.IndexListExpr{ - X: x, - Lbrack: lbrack, - Indices: indices, - Rbrack: rbrack, - } - } -} - -// IsTypeParam reports whether t is a type parameter. -func IsTypeParam(t types.Type) bool { - _, ok := t.(*types.TypeParam) - return ok -} - -// OriginMethod returns the origin method associated with the method fn. -// For methods on a non-generic receiver base type, this is just -// fn. However, for methods with a generic receiver, OriginMethod returns the -// corresponding method in the method set of the origin type. -// -// As a special case, if fn is not a method (has no receiver), OriginMethod -// returns fn. -func OriginMethod(fn *types.Func) *types.Func { - recv := fn.Type().(*types.Signature).Recv() - if recv == nil { - return fn - } - base := recv.Type() - p, isPtr := base.(*types.Pointer) - if isPtr { - base = p.Elem() - } - named, isNamed := base.(*types.Named) - if !isNamed { - // Receiver is a *types.Interface. - return fn - } - if named.TypeParams().Len() == 0 { - // Receiver base has no type parameters, so we can avoid the lookup below. - return fn - } - orig := named.Origin() - gfn, _, _ := types.LookupFieldOrMethod(orig, true, fn.Pkg(), fn.Name()) - - // This is a fix for a gopls crash (#60628) due to a go/types bug (#60634). In: - // package p - // type T *int - // func (*T) f() {} - // LookupFieldOrMethod(T, true, p, f)=nil, but NewMethodSet(*T)={(*T).f}. - // Here we make them consistent by force. - // (The go/types bug is general, but this workaround is reached only - // for generic T thanks to the early return above.) - if gfn == nil { - mset := types.NewMethodSet(types.NewPointer(orig)) - for i := 0; i < mset.Len(); i++ { - m := mset.At(i) - if m.Obj().Id() == fn.Id() { - gfn = m.Obj() - break - } - } - } - - // In golang/go#61196, we observe another crash, this time inexplicable. - if gfn == nil { - panic(fmt.Sprintf("missing origin method for %s.%s; named == origin: %t, named.NumMethods(): %d, origin.NumMethods(): %d", named, fn, named == orig, named.NumMethods(), orig.NumMethods())) - } - - return gfn.(*types.Func) -} - -// GenericAssignableTo is a generalization of types.AssignableTo that -// implements the following rule for uninstantiated generic types: -// -// If V and T are generic named types, then V is considered assignable to T if, -// for every possible instantation of V[A_1, ..., A_N], the instantiation -// T[A_1, ..., A_N] is valid and V[A_1, ..., A_N] implements T[A_1, ..., A_N]. -// -// If T has structural constraints, they must be satisfied by V. -// -// For example, consider the following type declarations: -// -// type Interface[T any] interface { -// Accept(T) -// } -// -// type Container[T any] struct { -// Element T -// } -// -// func (c Container[T]) Accept(t T) { c.Element = t } -// -// In this case, GenericAssignableTo reports that instantiations of Container -// are assignable to the corresponding instantiation of Interface. -func GenericAssignableTo(ctxt *types.Context, V, T types.Type) bool { - // If V and T are not both named, or do not have matching non-empty type - // parameter lists, fall back on types.AssignableTo. - - VN, Vnamed := V.(*types.Named) - TN, Tnamed := T.(*types.Named) - if !Vnamed || !Tnamed { - return types.AssignableTo(V, T) - } - - vtparams := VN.TypeParams() - ttparams := TN.TypeParams() - if vtparams.Len() == 0 || vtparams.Len() != ttparams.Len() || VN.TypeArgs().Len() != 0 || TN.TypeArgs().Len() != 0 { - return types.AssignableTo(V, T) - } - - // V and T have the same (non-zero) number of type params. Instantiate both - // with the type parameters of V. This must always succeed for V, and will - // succeed for T if and only if the type set of each type parameter of V is a - // subset of the type set of the corresponding type parameter of T, meaning - // that every instantiation of V corresponds to a valid instantiation of T. - - // Minor optimization: ensure we share a context across the two - // instantiations below. - if ctxt == nil { - ctxt = types.NewContext() - } - - var targs []types.Type - for i := 0; i < vtparams.Len(); i++ { - targs = append(targs, vtparams.At(i)) - } - - vinst, err := types.Instantiate(ctxt, V, targs, true) - if err != nil { - panic("type parameters should satisfy their own constraints") - } - - tinst, err := types.Instantiate(ctxt, T, targs, true) - if err != nil { - return false - } - - return types.AssignableTo(vinst, tinst) -} diff --git a/vendor/golang.org/x/tools/internal/typeparams/coretype.go b/vendor/golang.org/x/tools/internal/typeparams/coretype.go deleted file mode 100644 index 7ea8840ea..000000000 --- a/vendor/golang.org/x/tools/internal/typeparams/coretype.go +++ /dev/null @@ -1,122 +0,0 @@ -// Copyright 2022 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package typeparams - -import ( - "go/types" -) - -// CoreType returns the core type of T or nil if T does not have a core type. -// -// See https://go.dev/ref/spec#Core_types for the definition of a core type. -func CoreType(T types.Type) types.Type { - U := T.Underlying() - if _, ok := U.(*types.Interface); !ok { - return U // for non-interface types, - } - - terms, err := _NormalTerms(U) - if len(terms) == 0 || err != nil { - // len(terms) -> empty type set of interface. - // err != nil => U is invalid, exceeds complexity bounds, or has an empty type set. - return nil // no core type. - } - - U = terms[0].Type().Underlying() - var identical int // i in [0,identical) => Identical(U, terms[i].Type().Underlying()) - for identical = 1; identical < len(terms); identical++ { - if !types.Identical(U, terms[identical].Type().Underlying()) { - break - } - } - - if identical == len(terms) { - // https://go.dev/ref/spec#Core_types - // "There is a single type U which is the underlying type of all types in the type set of T" - return U - } - ch, ok := U.(*types.Chan) - if !ok { - return nil // no core type as identical < len(terms) and U is not a channel. - } - // https://go.dev/ref/spec#Core_types - // "the type chan E if T contains only bidirectional channels, or the type chan<- E or - // <-chan E depending on the direction of the directional channels present." - for chans := identical; chans < len(terms); chans++ { - curr, ok := terms[chans].Type().Underlying().(*types.Chan) - if !ok { - return nil - } - if !types.Identical(ch.Elem(), curr.Elem()) { - return nil // channel elements are not identical. - } - if ch.Dir() == types.SendRecv { - // ch is bidirectional. We can safely always use curr's direction. - ch = curr - } else if curr.Dir() != types.SendRecv && ch.Dir() != curr.Dir() { - // ch and curr are not bidirectional and not the same direction. - return nil - } - } - return ch -} - -// _NormalTerms returns a slice of terms representing the normalized structural -// type restrictions of a type, if any. -// -// For all types other than *types.TypeParam, *types.Interface, and -// *types.Union, this is just a single term with Tilde() == false and -// Type() == typ. For *types.TypeParam, *types.Interface, and *types.Union, see -// below. -// -// Structural type restrictions of a type parameter are created via -// non-interface types embedded in its constraint interface (directly, or via a -// chain of interface embeddings). For example, in the declaration type -// T[P interface{~int; m()}] int the structural restriction of the type -// parameter P is ~int. -// -// With interface embedding and unions, the specification of structural type -// restrictions may be arbitrarily complex. For example, consider the -// following: -// -// type A interface{ ~string|~[]byte } -// -// type B interface{ int|string } -// -// type C interface { ~string|~int } -// -// type T[P interface{ A|B; C }] int -// -// In this example, the structural type restriction of P is ~string|int: A|B -// expands to ~string|~[]byte|int|string, which reduces to ~string|~[]byte|int, -// which when intersected with C (~string|~int) yields ~string|int. -// -// _NormalTerms computes these expansions and reductions, producing a -// "normalized" form of the embeddings. A structural restriction is normalized -// if it is a single union containing no interface terms, and is minimal in the -// sense that removing any term changes the set of types satisfying the -// constraint. It is left as a proof for the reader that, modulo sorting, there -// is exactly one such normalized form. -// -// Because the minimal representation always takes this form, _NormalTerms -// returns a slice of tilde terms corresponding to the terms of the union in -// the normalized structural restriction. An error is returned if the type is -// invalid, exceeds complexity bounds, or has an empty type set. In the latter -// case, _NormalTerms returns ErrEmptyTypeSet. -// -// _NormalTerms makes no guarantees about the order of terms, except that it -// is deterministic. -func _NormalTerms(typ types.Type) ([]*types.Term, error) { - switch typ := typ.(type) { - case *types.TypeParam: - return StructuralTerms(typ) - case *types.Union: - return UnionTermSet(typ) - case *types.Interface: - return InterfaceTermSet(typ) - default: - return []*types.Term{types.NewTerm(false, typ)}, nil - } -} diff --git a/vendor/golang.org/x/tools/internal/typeparams/normalize.go b/vendor/golang.org/x/tools/internal/typeparams/normalize.go deleted file mode 100644 index 93c80fdc9..000000000 --- a/vendor/golang.org/x/tools/internal/typeparams/normalize.go +++ /dev/null @@ -1,218 +0,0 @@ -// Copyright 2021 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package typeparams - -import ( - "errors" - "fmt" - "go/types" - "os" - "strings" -) - -//go:generate go run copytermlist.go - -const debug = false - -var ErrEmptyTypeSet = errors.New("empty type set") - -// StructuralTerms returns a slice of terms representing the normalized -// structural type restrictions of a type parameter, if any. -// -// Structural type restrictions of a type parameter are created via -// non-interface types embedded in its constraint interface (directly, or via a -// chain of interface embeddings). For example, in the declaration -// -// type T[P interface{~int; m()}] int -// -// the structural restriction of the type parameter P is ~int. -// -// With interface embedding and unions, the specification of structural type -// restrictions may be arbitrarily complex. For example, consider the -// following: -// -// type A interface{ ~string|~[]byte } -// -// type B interface{ int|string } -// -// type C interface { ~string|~int } -// -// type T[P interface{ A|B; C }] int -// -// In this example, the structural type restriction of P is ~string|int: A|B -// expands to ~string|~[]byte|int|string, which reduces to ~string|~[]byte|int, -// which when intersected with C (~string|~int) yields ~string|int. -// -// StructuralTerms computes these expansions and reductions, producing a -// "normalized" form of the embeddings. A structural restriction is normalized -// if it is a single union containing no interface terms, and is minimal in the -// sense that removing any term changes the set of types satisfying the -// constraint. It is left as a proof for the reader that, modulo sorting, there -// is exactly one such normalized form. -// -// Because the minimal representation always takes this form, StructuralTerms -// returns a slice of tilde terms corresponding to the terms of the union in -// the normalized structural restriction. An error is returned if the -// constraint interface is invalid, exceeds complexity bounds, or has an empty -// type set. In the latter case, StructuralTerms returns ErrEmptyTypeSet. -// -// StructuralTerms makes no guarantees about the order of terms, except that it -// is deterministic. -func StructuralTerms(tparam *types.TypeParam) ([]*types.Term, error) { - constraint := tparam.Constraint() - if constraint == nil { - return nil, fmt.Errorf("%s has nil constraint", tparam) - } - iface, _ := constraint.Underlying().(*types.Interface) - if iface == nil { - return nil, fmt.Errorf("constraint is %T, not *types.Interface", constraint.Underlying()) - } - return InterfaceTermSet(iface) -} - -// InterfaceTermSet computes the normalized terms for a constraint interface, -// returning an error if the term set cannot be computed or is empty. In the -// latter case, the error will be ErrEmptyTypeSet. -// -// See the documentation of StructuralTerms for more information on -// normalization. -func InterfaceTermSet(iface *types.Interface) ([]*types.Term, error) { - return computeTermSet(iface) -} - -// UnionTermSet computes the normalized terms for a union, returning an error -// if the term set cannot be computed or is empty. In the latter case, the -// error will be ErrEmptyTypeSet. -// -// See the documentation of StructuralTerms for more information on -// normalization. -func UnionTermSet(union *types.Union) ([]*types.Term, error) { - return computeTermSet(union) -} - -func computeTermSet(typ types.Type) ([]*types.Term, error) { - tset, err := computeTermSetInternal(typ, make(map[types.Type]*termSet), 0) - if err != nil { - return nil, err - } - if tset.terms.isEmpty() { - return nil, ErrEmptyTypeSet - } - if tset.terms.isAll() { - return nil, nil - } - var terms []*types.Term - for _, term := range tset.terms { - terms = append(terms, types.NewTerm(term.tilde, term.typ)) - } - return terms, nil -} - -// A termSet holds the normalized set of terms for a given type. -// -// The name termSet is intentionally distinct from 'type set': a type set is -// all types that implement a type (and includes method restrictions), whereas -// a term set just represents the structural restrictions on a type. -type termSet struct { - complete bool - terms termlist -} - -func indentf(depth int, format string, args ...interface{}) { - fmt.Fprintf(os.Stderr, strings.Repeat(".", depth)+format+"\n", args...) -} - -func computeTermSetInternal(t types.Type, seen map[types.Type]*termSet, depth int) (res *termSet, err error) { - if t == nil { - panic("nil type") - } - - if debug { - indentf(depth, "%s", t.String()) - defer func() { - if err != nil { - indentf(depth, "=> %s", err) - } else { - indentf(depth, "=> %s", res.terms.String()) - } - }() - } - - const maxTermCount = 100 - if tset, ok := seen[t]; ok { - if !tset.complete { - return nil, fmt.Errorf("cycle detected in the declaration of %s", t) - } - return tset, nil - } - - // Mark the current type as seen to avoid infinite recursion. - tset := new(termSet) - defer func() { - tset.complete = true - }() - seen[t] = tset - - switch u := t.Underlying().(type) { - case *types.Interface: - // The term set of an interface is the intersection of the term sets of its - // embedded types. - tset.terms = allTermlist - for i := 0; i < u.NumEmbeddeds(); i++ { - embedded := u.EmbeddedType(i) - if _, ok := embedded.Underlying().(*types.TypeParam); ok { - return nil, fmt.Errorf("invalid embedded type %T", embedded) - } - tset2, err := computeTermSetInternal(embedded, seen, depth+1) - if err != nil { - return nil, err - } - tset.terms = tset.terms.intersect(tset2.terms) - } - case *types.Union: - // The term set of a union is the union of term sets of its terms. - tset.terms = nil - for i := 0; i < u.Len(); i++ { - t := u.Term(i) - var terms termlist - switch t.Type().Underlying().(type) { - case *types.Interface: - tset2, err := computeTermSetInternal(t.Type(), seen, depth+1) - if err != nil { - return nil, err - } - terms = tset2.terms - case *types.TypeParam, *types.Union: - // A stand-alone type parameter or union is not permitted as union - // term. - return nil, fmt.Errorf("invalid union term %T", t) - default: - if t.Type() == types.Typ[types.Invalid] { - continue - } - terms = termlist{{t.Tilde(), t.Type()}} - } - tset.terms = tset.terms.union(terms) - if len(tset.terms) > maxTermCount { - return nil, fmt.Errorf("exceeded max term count %d", maxTermCount) - } - } - case *types.TypeParam: - panic("unreachable") - default: - // For all other types, the term set is just a single non-tilde term - // holding the type itself. - if u != types.Typ[types.Invalid] { - tset.terms = termlist{{false, t}} - } - } - return tset, nil -} - -// under is a facade for the go/types internal function of the same name. It is -// used by typeterm.go. -func under(t types.Type) types.Type { - return t.Underlying() -} diff --git a/vendor/golang.org/x/tools/internal/typeparams/termlist.go b/vendor/golang.org/x/tools/internal/typeparams/termlist.go deleted file mode 100644 index cbd12f801..000000000 --- a/vendor/golang.org/x/tools/internal/typeparams/termlist.go +++ /dev/null @@ -1,163 +0,0 @@ -// Copyright 2021 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Code generated by copytermlist.go DO NOT EDIT. - -package typeparams - -import ( - "bytes" - "go/types" -) - -// A termlist represents the type set represented by the union -// t1 ∪ y2 ∪ ... tn of the type sets of the terms t1 to tn. -// A termlist is in normal form if all terms are disjoint. -// termlist operations don't require the operands to be in -// normal form. -type termlist []*term - -// allTermlist represents the set of all types. -// It is in normal form. -var allTermlist = termlist{new(term)} - -// String prints the termlist exactly (without normalization). -func (xl termlist) String() string { - if len(xl) == 0 { - return "∅" - } - var buf bytes.Buffer - for i, x := range xl { - if i > 0 { - buf.WriteString(" | ") - } - buf.WriteString(x.String()) - } - return buf.String() -} - -// isEmpty reports whether the termlist xl represents the empty set of types. -func (xl termlist) isEmpty() bool { - // If there's a non-nil term, the entire list is not empty. - // If the termlist is in normal form, this requires at most - // one iteration. - for _, x := range xl { - if x != nil { - return false - } - } - return true -} - -// isAll reports whether the termlist xl represents the set of all types. -func (xl termlist) isAll() bool { - // If there's a 𝓤 term, the entire list is 𝓤. - // If the termlist is in normal form, this requires at most - // one iteration. - for _, x := range xl { - if x != nil && x.typ == nil { - return true - } - } - return false -} - -// norm returns the normal form of xl. -func (xl termlist) norm() termlist { - // Quadratic algorithm, but good enough for now. - // TODO(gri) fix asymptotic performance - used := make([]bool, len(xl)) - var rl termlist - for i, xi := range xl { - if xi == nil || used[i] { - continue - } - for j := i + 1; j < len(xl); j++ { - xj := xl[j] - if xj == nil || used[j] { - continue - } - if u1, u2 := xi.union(xj); u2 == nil { - // If we encounter a 𝓤 term, the entire list is 𝓤. - // Exit early. - // (Note that this is not just an optimization; - // if we continue, we may end up with a 𝓤 term - // and other terms and the result would not be - // in normal form.) - if u1.typ == nil { - return allTermlist - } - xi = u1 - used[j] = true // xj is now unioned into xi - ignore it in future iterations - } - } - rl = append(rl, xi) - } - return rl -} - -// union returns the union xl ∪ yl. -func (xl termlist) union(yl termlist) termlist { - return append(xl, yl...).norm() -} - -// intersect returns the intersection xl ∩ yl. -func (xl termlist) intersect(yl termlist) termlist { - if xl.isEmpty() || yl.isEmpty() { - return nil - } - - // Quadratic algorithm, but good enough for now. - // TODO(gri) fix asymptotic performance - var rl termlist - for _, x := range xl { - for _, y := range yl { - if r := x.intersect(y); r != nil { - rl = append(rl, r) - } - } - } - return rl.norm() -} - -// equal reports whether xl and yl represent the same type set. -func (xl termlist) equal(yl termlist) bool { - // TODO(gri) this should be more efficient - return xl.subsetOf(yl) && yl.subsetOf(xl) -} - -// includes reports whether t ∈ xl. -func (xl termlist) includes(t types.Type) bool { - for _, x := range xl { - if x.includes(t) { - return true - } - } - return false -} - -// supersetOf reports whether y ⊆ xl. -func (xl termlist) supersetOf(y *term) bool { - for _, x := range xl { - if y.subsetOf(x) { - return true - } - } - return false -} - -// subsetOf reports whether xl ⊆ yl. -func (xl termlist) subsetOf(yl termlist) bool { - if yl.isEmpty() { - return xl.isEmpty() - } - - // each term x of xl must be a subset of yl - for _, x := range xl { - if !yl.supersetOf(x) { - return false // x is not a subset yl - } - } - return true -} diff --git a/vendor/golang.org/x/tools/internal/typeparams/typeterm.go b/vendor/golang.org/x/tools/internal/typeparams/typeterm.go deleted file mode 100644 index 7350bb702..000000000 --- a/vendor/golang.org/x/tools/internal/typeparams/typeterm.go +++ /dev/null @@ -1,169 +0,0 @@ -// Copyright 2021 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Code generated by copytermlist.go DO NOT EDIT. - -package typeparams - -import "go/types" - -// A term describes elementary type sets: -// -// ∅: (*term)(nil) == ∅ // set of no types (empty set) -// 𝓤: &term{} == 𝓤 // set of all types (𝓤niverse) -// T: &term{false, T} == {T} // set of type T -// ~t: &term{true, t} == {t' | under(t') == t} // set of types with underlying type t -type term struct { - tilde bool // valid if typ != nil - typ types.Type -} - -func (x *term) String() string { - switch { - case x == nil: - return "∅" - case x.typ == nil: - return "𝓤" - case x.tilde: - return "~" + x.typ.String() - default: - return x.typ.String() - } -} - -// equal reports whether x and y represent the same type set. -func (x *term) equal(y *term) bool { - // easy cases - switch { - case x == nil || y == nil: - return x == y - case x.typ == nil || y.typ == nil: - return x.typ == y.typ - } - // ∅ ⊂ x, y ⊂ 𝓤 - - return x.tilde == y.tilde && types.Identical(x.typ, y.typ) -} - -// union returns the union x ∪ y: zero, one, or two non-nil terms. -func (x *term) union(y *term) (_, _ *term) { - // easy cases - switch { - case x == nil && y == nil: - return nil, nil // ∅ ∪ ∅ == ∅ - case x == nil: - return y, nil // ∅ ∪ y == y - case y == nil: - return x, nil // x ∪ ∅ == x - case x.typ == nil: - return x, nil // 𝓤 ∪ y == 𝓤 - case y.typ == nil: - return y, nil // x ∪ 𝓤 == 𝓤 - } - // ∅ ⊂ x, y ⊂ 𝓤 - - if x.disjoint(y) { - return x, y // x ∪ y == (x, y) if x ∩ y == ∅ - } - // x.typ == y.typ - - // ~t ∪ ~t == ~t - // ~t ∪ T == ~t - // T ∪ ~t == ~t - // T ∪ T == T - if x.tilde || !y.tilde { - return x, nil - } - return y, nil -} - -// intersect returns the intersection x ∩ y. -func (x *term) intersect(y *term) *term { - // easy cases - switch { - case x == nil || y == nil: - return nil // ∅ ∩ y == ∅ and ∩ ∅ == ∅ - case x.typ == nil: - return y // 𝓤 ∩ y == y - case y.typ == nil: - return x // x ∩ 𝓤 == x - } - // ∅ ⊂ x, y ⊂ 𝓤 - - if x.disjoint(y) { - return nil // x ∩ y == ∅ if x ∩ y == ∅ - } - // x.typ == y.typ - - // ~t ∩ ~t == ~t - // ~t ∩ T == T - // T ∩ ~t == T - // T ∩ T == T - if !x.tilde || y.tilde { - return x - } - return y -} - -// includes reports whether t ∈ x. -func (x *term) includes(t types.Type) bool { - // easy cases - switch { - case x == nil: - return false // t ∈ ∅ == false - case x.typ == nil: - return true // t ∈ 𝓤 == true - } - // ∅ ⊂ x ⊂ 𝓤 - - u := t - if x.tilde { - u = under(u) - } - return types.Identical(x.typ, u) -} - -// subsetOf reports whether x ⊆ y. -func (x *term) subsetOf(y *term) bool { - // easy cases - switch { - case x == nil: - return true // ∅ ⊆ y == true - case y == nil: - return false // x ⊆ ∅ == false since x != ∅ - case y.typ == nil: - return true // x ⊆ 𝓤 == true - case x.typ == nil: - return false // 𝓤 ⊆ y == false since y != 𝓤 - } - // ∅ ⊂ x, y ⊂ 𝓤 - - if x.disjoint(y) { - return false // x ⊆ y == false if x ∩ y == ∅ - } - // x.typ == y.typ - - // ~t ⊆ ~t == true - // ~t ⊆ T == false - // T ⊆ ~t == true - // T ⊆ T == true - return !x.tilde || y.tilde -} - -// disjoint reports whether x ∩ y == ∅. -// x.typ and y.typ must not be nil. -func (x *term) disjoint(y *term) bool { - if debug && (x.typ == nil || y.typ == nil) { - panic("invalid argument(s)") - } - ux := x.typ - if y.tilde { - ux = under(ux) - } - uy := y.typ - if x.tilde { - uy = under(uy) - } - return !types.Identical(ux, uy) -} diff --git a/vendor/golang.org/x/tools/internal/typesinternal/errorcode.go b/vendor/golang.org/x/tools/internal/typesinternal/errorcode.go new file mode 100644 index 000000000..e0c27ed25 --- /dev/null +++ b/vendor/golang.org/x/tools/internal/typesinternal/errorcode.go @@ -0,0 +1,1560 @@ +// Copyright 2020 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package typesinternal + +//go:generate stringer -type=ErrorCode + +type ErrorCode int + +// This file defines the error codes that can be produced during type-checking. +// Collectively, these codes provide an identifier that may be used to +// implement special handling for certain types of errors. +// +// Error codes should be fine-grained enough that the exact nature of the error +// can be easily determined, but coarse enough that they are not an +// implementation detail of the type checking algorithm. As a rule-of-thumb, +// errors should be considered equivalent if there is a theoretical refactoring +// of the type checker in which they are emitted in exactly one place. For +// example, the type checker emits different error messages for "too many +// arguments" and "too few arguments", but one can imagine an alternative type +// checker where this check instead just emits a single "wrong number of +// arguments", so these errors should have the same code. +// +// Error code names should be as brief as possible while retaining accuracy and +// distinctiveness. In most cases names should start with an adjective +// describing the nature of the error (e.g. "invalid", "unused", "misplaced"), +// and end with a noun identifying the relevant language object. For example, +// "DuplicateDecl" or "InvalidSliceExpr". For brevity, naming follows the +// convention that "bad" implies a problem with syntax, and "invalid" implies a +// problem with types. + +const ( + // InvalidSyntaxTree occurs if an invalid syntax tree is provided + // to the type checker. It should never happen. + InvalidSyntaxTree ErrorCode = -1 +) + +const ( + _ ErrorCode = iota + + // Test is reserved for errors that only apply while in self-test mode. + Test + + /* package names */ + + // BlankPkgName occurs when a package name is the blank identifier "_". + // + // Per the spec: + // "The PackageName must not be the blank identifier." + BlankPkgName + + // MismatchedPkgName occurs when a file's package name doesn't match the + // package name already established by other files. + MismatchedPkgName + + // InvalidPkgUse occurs when a package identifier is used outside of a + // selector expression. + // + // Example: + // import "fmt" + // + // var _ = fmt + InvalidPkgUse + + /* imports */ + + // BadImportPath occurs when an import path is not valid. + BadImportPath + + // BrokenImport occurs when importing a package fails. + // + // Example: + // import "amissingpackage" + BrokenImport + + // ImportCRenamed occurs when the special import "C" is renamed. "C" is a + // pseudo-package, and must not be renamed. + // + // Example: + // import _ "C" + ImportCRenamed + + // UnusedImport occurs when an import is unused. + // + // Example: + // import "fmt" + // + // func main() {} + UnusedImport + + /* initialization */ + + // InvalidInitCycle occurs when an invalid cycle is detected within the + // initialization graph. + // + // Example: + // var x int = f() + // + // func f() int { return x } + InvalidInitCycle + + /* decls */ + + // DuplicateDecl occurs when an identifier is declared multiple times. + // + // Example: + // var x = 1 + // var x = 2 + DuplicateDecl + + // InvalidDeclCycle occurs when a declaration cycle is not valid. + // + // Example: + // import "unsafe" + // + // type T struct { + // a [n]int + // } + // + // var n = unsafe.Sizeof(T{}) + InvalidDeclCycle + + // InvalidTypeCycle occurs when a cycle in type definitions results in a + // type that is not well-defined. + // + // Example: + // import "unsafe" + // + // type T [unsafe.Sizeof(T{})]int + InvalidTypeCycle + + /* decls > const */ + + // InvalidConstInit occurs when a const declaration has a non-constant + // initializer. + // + // Example: + // var x int + // const _ = x + InvalidConstInit + + // InvalidConstVal occurs when a const value cannot be converted to its + // target type. + // + // TODO(findleyr): this error code and example are not very clear. Consider + // removing it. + // + // Example: + // const _ = 1 << "hello" + InvalidConstVal + + // InvalidConstType occurs when the underlying type in a const declaration + // is not a valid constant type. + // + // Example: + // const c *int = 4 + InvalidConstType + + /* decls > var (+ other variable assignment codes) */ + + // UntypedNilUse occurs when the predeclared (untyped) value nil is used to + // initialize a variable declared without an explicit type. + // + // Example: + // var x = nil + UntypedNilUse + + // WrongAssignCount occurs when the number of values on the right-hand side + // of an assignment or initialization expression does not match the number + // of variables on the left-hand side. + // + // Example: + // var x = 1, 2 + WrongAssignCount + + // UnassignableOperand occurs when the left-hand side of an assignment is + // not assignable. + // + // Example: + // func f() { + // const c = 1 + // c = 2 + // } + UnassignableOperand + + // NoNewVar occurs when a short variable declaration (':=') does not declare + // new variables. + // + // Example: + // func f() { + // x := 1 + // x := 2 + // } + NoNewVar + + // MultiValAssignOp occurs when an assignment operation (+=, *=, etc) does + // not have single-valued left-hand or right-hand side. + // + // Per the spec: + // "In assignment operations, both the left- and right-hand expression lists + // must contain exactly one single-valued expression" + // + // Example: + // func f() int { + // x, y := 1, 2 + // x, y += 1 + // return x + y + // } + MultiValAssignOp + + // InvalidIfaceAssign occurs when a value of type T is used as an + // interface, but T does not implement a method of the expected interface. + // + // Example: + // type I interface { + // f() + // } + // + // type T int + // + // var x I = T(1) + InvalidIfaceAssign + + // InvalidChanAssign occurs when a chan assignment is invalid. + // + // Per the spec, a value x is assignable to a channel type T if: + // "x is a bidirectional channel value, T is a channel type, x's type V and + // T have identical element types, and at least one of V or T is not a + // defined type." + // + // Example: + // type T1 chan int + // type T2 chan int + // + // var x T1 + // // Invalid assignment because both types are named + // var _ T2 = x + InvalidChanAssign + + // IncompatibleAssign occurs when the type of the right-hand side expression + // in an assignment cannot be assigned to the type of the variable being + // assigned. + // + // Example: + // var x []int + // var _ int = x + IncompatibleAssign + + // UnaddressableFieldAssign occurs when trying to assign to a struct field + // in a map value. + // + // Example: + // func f() { + // m := make(map[string]struct{i int}) + // m["foo"].i = 42 + // } + UnaddressableFieldAssign + + /* decls > type (+ other type expression codes) */ + + // NotAType occurs when the identifier used as the underlying type in a type + // declaration or the right-hand side of a type alias does not denote a type. + // + // Example: + // var S = 2 + // + // type T S + NotAType + + // InvalidArrayLen occurs when an array length is not a constant value. + // + // Example: + // var n = 3 + // var _ = [n]int{} + InvalidArrayLen + + // BlankIfaceMethod occurs when a method name is '_'. + // + // Per the spec: + // "The name of each explicitly specified method must be unique and not + // blank." + // + // Example: + // type T interface { + // _(int) + // } + BlankIfaceMethod + + // IncomparableMapKey occurs when a map key type does not support the == and + // != operators. + // + // Per the spec: + // "The comparison operators == and != must be fully defined for operands of + // the key type; thus the key type must not be a function, map, or slice." + // + // Example: + // var x map[T]int + // + // type T []int + IncomparableMapKey + + // InvalidIfaceEmbed occurs when a non-interface type is embedded in an + // interface. + // + // Example: + // type T struct {} + // + // func (T) m() + // + // type I interface { + // T + // } + InvalidIfaceEmbed + + // InvalidPtrEmbed occurs when an embedded field is of the pointer form *T, + // and T itself is itself a pointer, an unsafe.Pointer, or an interface. + // + // Per the spec: + // "An embedded field must be specified as a type name T or as a pointer to + // a non-interface type name *T, and T itself may not be a pointer type." + // + // Example: + // type T *int + // + // type S struct { + // *T + // } + InvalidPtrEmbed + + /* decls > func and method */ + + // BadRecv occurs when a method declaration does not have exactly one + // receiver parameter. + // + // Example: + // func () _() {} + BadRecv + + // InvalidRecv occurs when a receiver type expression is not of the form T + // or *T, or T is a pointer type. + // + // Example: + // type T struct {} + // + // func (**T) m() {} + InvalidRecv + + // DuplicateFieldAndMethod occurs when an identifier appears as both a field + // and method name. + // + // Example: + // type T struct { + // m int + // } + // + // func (T) m() {} + DuplicateFieldAndMethod + + // DuplicateMethod occurs when two methods on the same receiver type have + // the same name. + // + // Example: + // type T struct {} + // func (T) m() {} + // func (T) m(i int) int { return i } + DuplicateMethod + + /* decls > special */ + + // InvalidBlank occurs when a blank identifier is used as a value or type. + // + // Per the spec: + // "The blank identifier may appear as an operand only on the left-hand side + // of an assignment." + // + // Example: + // var x = _ + InvalidBlank + + // InvalidIota occurs when the predeclared identifier iota is used outside + // of a constant declaration. + // + // Example: + // var x = iota + InvalidIota + + // MissingInitBody occurs when an init function is missing its body. + // + // Example: + // func init() + MissingInitBody + + // InvalidInitSig occurs when an init function declares parameters or + // results. + // + // Example: + // func init() int { return 1 } + InvalidInitSig + + // InvalidInitDecl occurs when init is declared as anything other than a + // function. + // + // Example: + // var init = 1 + InvalidInitDecl + + // InvalidMainDecl occurs when main is declared as anything other than a + // function, in a main package. + InvalidMainDecl + + /* exprs */ + + // TooManyValues occurs when a function returns too many values for the + // expression context in which it is used. + // + // Example: + // func ReturnTwo() (int, int) { + // return 1, 2 + // } + // + // var x = ReturnTwo() + TooManyValues + + // NotAnExpr occurs when a type expression is used where a value expression + // is expected. + // + // Example: + // type T struct {} + // + // func f() { + // T + // } + NotAnExpr + + /* exprs > const */ + + // TruncatedFloat occurs when a float constant is truncated to an integer + // value. + // + // Example: + // var _ int = 98.6 + TruncatedFloat + + // NumericOverflow occurs when a numeric constant overflows its target type. + // + // Example: + // var x int8 = 1000 + NumericOverflow + + /* exprs > operation */ + + // UndefinedOp occurs when an operator is not defined for the type(s) used + // in an operation. + // + // Example: + // var c = "a" - "b" + UndefinedOp + + // MismatchedTypes occurs when operand types are incompatible in a binary + // operation. + // + // Example: + // var a = "hello" + // var b = 1 + // var c = a - b + MismatchedTypes + + // DivByZero occurs when a division operation is provable at compile + // time to be a division by zero. + // + // Example: + // const divisor = 0 + // var x int = 1/divisor + DivByZero + + // NonNumericIncDec occurs when an increment or decrement operator is + // applied to a non-numeric value. + // + // Example: + // func f() { + // var c = "c" + // c++ + // } + NonNumericIncDec + + /* exprs > ptr */ + + // UnaddressableOperand occurs when the & operator is applied to an + // unaddressable expression. + // + // Example: + // var x = &1 + UnaddressableOperand + + // InvalidIndirection occurs when a non-pointer value is indirected via the + // '*' operator. + // + // Example: + // var x int + // var y = *x + InvalidIndirection + + /* exprs > [] */ + + // NonIndexableOperand occurs when an index operation is applied to a value + // that cannot be indexed. + // + // Example: + // var x = 1 + // var y = x[1] + NonIndexableOperand + + // InvalidIndex occurs when an index argument is not of integer type, + // negative, or out-of-bounds. + // + // Example: + // var s = [...]int{1,2,3} + // var x = s[5] + // + // Example: + // var s = []int{1,2,3} + // var _ = s[-1] + // + // Example: + // var s = []int{1,2,3} + // var i string + // var _ = s[i] + InvalidIndex + + // SwappedSliceIndices occurs when constant indices in a slice expression + // are decreasing in value. + // + // Example: + // var _ = []int{1,2,3}[2:1] + SwappedSliceIndices + + /* operators > slice */ + + // NonSliceableOperand occurs when a slice operation is applied to a value + // whose type is not sliceable, or is unaddressable. + // + // Example: + // var x = [...]int{1, 2, 3}[:1] + // + // Example: + // var x = 1 + // var y = 1[:1] + NonSliceableOperand + + // InvalidSliceExpr occurs when a three-index slice expression (a[x:y:z]) is + // applied to a string. + // + // Example: + // var s = "hello" + // var x = s[1:2:3] + InvalidSliceExpr + + /* exprs > shift */ + + // InvalidShiftCount occurs when the right-hand side of a shift operation is + // either non-integer, negative, or too large. + // + // Example: + // var ( + // x string + // y int = 1 << x + // ) + InvalidShiftCount + + // InvalidShiftOperand occurs when the shifted operand is not an integer. + // + // Example: + // var s = "hello" + // var x = s << 2 + InvalidShiftOperand + + /* exprs > chan */ + + // InvalidReceive occurs when there is a channel receive from a value that + // is either not a channel, or is a send-only channel. + // + // Example: + // func f() { + // var x = 1 + // <-x + // } + InvalidReceive + + // InvalidSend occurs when there is a channel send to a value that is not a + // channel, or is a receive-only channel. + // + // Example: + // func f() { + // var x = 1 + // x <- "hello!" + // } + InvalidSend + + /* exprs > literal */ + + // DuplicateLitKey occurs when an index is duplicated in a slice, array, or + // map literal. + // + // Example: + // var _ = []int{0:1, 0:2} + // + // Example: + // var _ = map[string]int{"a": 1, "a": 2} + DuplicateLitKey + + // MissingLitKey occurs when a map literal is missing a key expression. + // + // Example: + // var _ = map[string]int{1} + MissingLitKey + + // InvalidLitIndex occurs when the key in a key-value element of a slice or + // array literal is not an integer constant. + // + // Example: + // var i = 0 + // var x = []string{i: "world"} + InvalidLitIndex + + // OversizeArrayLit occurs when an array literal exceeds its length. + // + // Example: + // var _ = [2]int{1,2,3} + OversizeArrayLit + + // MixedStructLit occurs when a struct literal contains a mix of positional + // and named elements. + // + // Example: + // var _ = struct{i, j int}{i: 1, 2} + MixedStructLit + + // InvalidStructLit occurs when a positional struct literal has an incorrect + // number of values. + // + // Example: + // var _ = struct{i, j int}{1,2,3} + InvalidStructLit + + // MissingLitField occurs when a struct literal refers to a field that does + // not exist on the struct type. + // + // Example: + // var _ = struct{i int}{j: 2} + MissingLitField + + // DuplicateLitField occurs when a struct literal contains duplicated + // fields. + // + // Example: + // var _ = struct{i int}{i: 1, i: 2} + DuplicateLitField + + // UnexportedLitField occurs when a positional struct literal implicitly + // assigns an unexported field of an imported type. + UnexportedLitField + + // InvalidLitField occurs when a field name is not a valid identifier. + // + // Example: + // var _ = struct{i int}{1: 1} + InvalidLitField + + // UntypedLit occurs when a composite literal omits a required type + // identifier. + // + // Example: + // type outer struct{ + // inner struct { i int } + // } + // + // var _ = outer{inner: {1}} + UntypedLit + + // InvalidLit occurs when a composite literal expression does not match its + // type. + // + // Example: + // type P *struct{ + // x int + // } + // var _ = P {} + InvalidLit + + /* exprs > selector */ + + // AmbiguousSelector occurs when a selector is ambiguous. + // + // Example: + // type E1 struct { i int } + // type E2 struct { i int } + // type T struct { E1; E2 } + // + // var x T + // var _ = x.i + AmbiguousSelector + + // UndeclaredImportedName occurs when a package-qualified identifier is + // undeclared by the imported package. + // + // Example: + // import "go/types" + // + // var _ = types.NotAnActualIdentifier + UndeclaredImportedName + + // UnexportedName occurs when a selector refers to an unexported identifier + // of an imported package. + // + // Example: + // import "reflect" + // + // type _ reflect.flag + UnexportedName + + // UndeclaredName occurs when an identifier is not declared in the current + // scope. + // + // Example: + // var x T + UndeclaredName + + // MissingFieldOrMethod occurs when a selector references a field or method + // that does not exist. + // + // Example: + // type T struct {} + // + // var x = T{}.f + MissingFieldOrMethod + + /* exprs > ... */ + + // BadDotDotDotSyntax occurs when a "..." occurs in a context where it is + // not valid. + // + // Example: + // var _ = map[int][...]int{0: {}} + BadDotDotDotSyntax + + // NonVariadicDotDotDot occurs when a "..." is used on the final argument to + // a non-variadic function. + // + // Example: + // func printArgs(s []string) { + // for _, a := range s { + // println(a) + // } + // } + // + // func f() { + // s := []string{"a", "b", "c"} + // printArgs(s...) + // } + NonVariadicDotDotDot + + // MisplacedDotDotDot occurs when a "..." is used somewhere other than the + // final argument to a function call. + // + // Example: + // func printArgs(args ...int) { + // for _, a := range args { + // println(a) + // } + // } + // + // func f() { + // a := []int{1,2,3} + // printArgs(0, a...) + // } + MisplacedDotDotDot + + // InvalidDotDotDotOperand occurs when a "..." operator is applied to a + // single-valued operand. + // + // Example: + // func printArgs(args ...int) { + // for _, a := range args { + // println(a) + // } + // } + // + // func f() { + // a := 1 + // printArgs(a...) + // } + // + // Example: + // func args() (int, int) { + // return 1, 2 + // } + // + // func printArgs(args ...int) { + // for _, a := range args { + // println(a) + // } + // } + // + // func g() { + // printArgs(args()...) + // } + InvalidDotDotDotOperand + + // InvalidDotDotDot occurs when a "..." is used in a non-variadic built-in + // function. + // + // Example: + // var s = []int{1, 2, 3} + // var l = len(s...) + InvalidDotDotDot + + /* exprs > built-in */ + + // UncalledBuiltin occurs when a built-in function is used as a + // function-valued expression, instead of being called. + // + // Per the spec: + // "The built-in functions do not have standard Go types, so they can only + // appear in call expressions; they cannot be used as function values." + // + // Example: + // var _ = copy + UncalledBuiltin + + // InvalidAppend occurs when append is called with a first argument that is + // not a slice. + // + // Example: + // var _ = append(1, 2) + InvalidAppend + + // InvalidCap occurs when an argument to the cap built-in function is not of + // supported type. + // + // See https://golang.org/ref/spec#Lengthand_capacity for information on + // which underlying types are supported as arguments to cap and len. + // + // Example: + // var s = 2 + // var x = cap(s) + InvalidCap + + // InvalidClose occurs when close(...) is called with an argument that is + // not of channel type, or that is a receive-only channel. + // + // Example: + // func f() { + // var x int + // close(x) + // } + InvalidClose + + // InvalidCopy occurs when the arguments are not of slice type or do not + // have compatible type. + // + // See https://golang.org/ref/spec#Appendingand_copying_slices for more + // information on the type requirements for the copy built-in. + // + // Example: + // func f() { + // var x []int + // y := []int64{1,2,3} + // copy(x, y) + // } + InvalidCopy + + // InvalidComplex occurs when the complex built-in function is called with + // arguments with incompatible types. + // + // Example: + // var _ = complex(float32(1), float64(2)) + InvalidComplex + + // InvalidDelete occurs when the delete built-in function is called with a + // first argument that is not a map. + // + // Example: + // func f() { + // m := "hello" + // delete(m, "e") + // } + InvalidDelete + + // InvalidImag occurs when the imag built-in function is called with an + // argument that does not have complex type. + // + // Example: + // var _ = imag(int(1)) + InvalidImag + + // InvalidLen occurs when an argument to the len built-in function is not of + // supported type. + // + // See https://golang.org/ref/spec#Lengthand_capacity for information on + // which underlying types are supported as arguments to cap and len. + // + // Example: + // var s = 2 + // var x = len(s) + InvalidLen + + // SwappedMakeArgs occurs when make is called with three arguments, and its + // length argument is larger than its capacity argument. + // + // Example: + // var x = make([]int, 3, 2) + SwappedMakeArgs + + // InvalidMake occurs when make is called with an unsupported type argument. + // + // See https://golang.org/ref/spec#Makingslices_maps_and_channels for + // information on the types that may be created using make. + // + // Example: + // var x = make(int) + InvalidMake + + // InvalidReal occurs when the real built-in function is called with an + // argument that does not have complex type. + // + // Example: + // var _ = real(int(1)) + InvalidReal + + /* exprs > assertion */ + + // InvalidAssert occurs when a type assertion is applied to a + // value that is not of interface type. + // + // Example: + // var x = 1 + // var _ = x.(float64) + InvalidAssert + + // ImpossibleAssert occurs for a type assertion x.(T) when the value x of + // interface cannot have dynamic type T, due to a missing or mismatching + // method on T. + // + // Example: + // type T int + // + // func (t *T) m() int { return int(*t) } + // + // type I interface { m() int } + // + // var x I + // var _ = x.(T) + ImpossibleAssert + + /* exprs > conversion */ + + // InvalidConversion occurs when the argument type cannot be converted to the + // target. + // + // See https://golang.org/ref/spec#Conversions for the rules of + // convertibility. + // + // Example: + // var x float64 + // var _ = string(x) + InvalidConversion + + // InvalidUntypedConversion occurs when an there is no valid implicit + // conversion from an untyped value satisfying the type constraints of the + // context in which it is used. + // + // Example: + // var _ = 1 + "" + InvalidUntypedConversion + + /* offsetof */ + + // BadOffsetofSyntax occurs when unsafe.Offsetof is called with an argument + // that is not a selector expression. + // + // Example: + // import "unsafe" + // + // var x int + // var _ = unsafe.Offsetof(x) + BadOffsetofSyntax + + // InvalidOffsetof occurs when unsafe.Offsetof is called with a method + // selector, rather than a field selector, or when the field is embedded via + // a pointer. + // + // Per the spec: + // + // "If f is an embedded field, it must be reachable without pointer + // indirections through fields of the struct. " + // + // Example: + // import "unsafe" + // + // type T struct { f int } + // type S struct { *T } + // var s S + // var _ = unsafe.Offsetof(s.f) + // + // Example: + // import "unsafe" + // + // type S struct{} + // + // func (S) m() {} + // + // var s S + // var _ = unsafe.Offsetof(s.m) + InvalidOffsetof + + /* control flow > scope */ + + // UnusedExpr occurs when a side-effect free expression is used as a + // statement. Such a statement has no effect. + // + // Example: + // func f(i int) { + // i*i + // } + UnusedExpr + + // UnusedVar occurs when a variable is declared but unused. + // + // Example: + // func f() { + // x := 1 + // } + UnusedVar + + // MissingReturn occurs when a function with results is missing a return + // statement. + // + // Example: + // func f() int {} + MissingReturn + + // WrongResultCount occurs when a return statement returns an incorrect + // number of values. + // + // Example: + // func ReturnOne() int { + // return 1, 2 + // } + WrongResultCount + + // OutOfScopeResult occurs when the name of a value implicitly returned by + // an empty return statement is shadowed in a nested scope. + // + // Example: + // func factor(n int) (i int) { + // for i := 2; i < n; i++ { + // if n%i == 0 { + // return + // } + // } + // return 0 + // } + OutOfScopeResult + + /* control flow > if */ + + // InvalidCond occurs when an if condition is not a boolean expression. + // + // Example: + // func checkReturn(i int) { + // if i { + // panic("non-zero return") + // } + // } + InvalidCond + + /* control flow > for */ + + // InvalidPostDecl occurs when there is a declaration in a for-loop post + // statement. + // + // Example: + // func f() { + // for i := 0; i < 10; j := 0 {} + // } + InvalidPostDecl + + // InvalidChanRange occurs when a send-only channel used in a range + // expression. + // + // Example: + // func sum(c chan<- int) { + // s := 0 + // for i := range c { + // s += i + // } + // } + InvalidChanRange + + // InvalidIterVar occurs when two iteration variables are used while ranging + // over a channel. + // + // Example: + // func f(c chan int) { + // for k, v := range c { + // println(k, v) + // } + // } + InvalidIterVar + + // InvalidRangeExpr occurs when the type of a range expression is not array, + // slice, string, map, or channel. + // + // Example: + // func f(i int) { + // for j := range i { + // println(j) + // } + // } + InvalidRangeExpr + + /* control flow > switch */ + + // MisplacedBreak occurs when a break statement is not within a for, switch, + // or select statement of the innermost function definition. + // + // Example: + // func f() { + // break + // } + MisplacedBreak + + // MisplacedContinue occurs when a continue statement is not within a for + // loop of the innermost function definition. + // + // Example: + // func sumeven(n int) int { + // proceed := func() { + // continue + // } + // sum := 0 + // for i := 1; i <= n; i++ { + // if i % 2 != 0 { + // proceed() + // } + // sum += i + // } + // return sum + // } + MisplacedContinue + + // MisplacedFallthrough occurs when a fallthrough statement is not within an + // expression switch. + // + // Example: + // func typename(i interface{}) string { + // switch i.(type) { + // case int64: + // fallthrough + // case int: + // return "int" + // } + // return "unsupported" + // } + MisplacedFallthrough + + // DuplicateCase occurs when a type or expression switch has duplicate + // cases. + // + // Example: + // func printInt(i int) { + // switch i { + // case 1: + // println("one") + // case 1: + // println("One") + // } + // } + DuplicateCase + + // DuplicateDefault occurs when a type or expression switch has multiple + // default clauses. + // + // Example: + // func printInt(i int) { + // switch i { + // case 1: + // println("one") + // default: + // println("One") + // default: + // println("1") + // } + // } + DuplicateDefault + + // BadTypeKeyword occurs when a .(type) expression is used anywhere other + // than a type switch. + // + // Example: + // type I interface { + // m() + // } + // var t I + // var _ = t.(type) + BadTypeKeyword + + // InvalidTypeSwitch occurs when .(type) is used on an expression that is + // not of interface type. + // + // Example: + // func f(i int) { + // switch x := i.(type) {} + // } + InvalidTypeSwitch + + // InvalidExprSwitch occurs when a switch expression is not comparable. + // + // Example: + // func _() { + // var a struct{ _ func() } + // switch a /* ERROR cannot switch on a */ { + // } + // } + InvalidExprSwitch + + /* control flow > select */ + + // InvalidSelectCase occurs when a select case is not a channel send or + // receive. + // + // Example: + // func checkChan(c <-chan int) bool { + // select { + // case c: + // return true + // default: + // return false + // } + // } + InvalidSelectCase + + /* control flow > labels and jumps */ + + // UndeclaredLabel occurs when an undeclared label is jumped to. + // + // Example: + // func f() { + // goto L + // } + UndeclaredLabel + + // DuplicateLabel occurs when a label is declared more than once. + // + // Example: + // func f() int { + // L: + // L: + // return 1 + // } + DuplicateLabel + + // MisplacedLabel occurs when a break or continue label is not on a for, + // switch, or select statement. + // + // Example: + // func f() { + // L: + // a := []int{1,2,3} + // for _, e := range a { + // if e > 10 { + // break L + // } + // println(a) + // } + // } + MisplacedLabel + + // UnusedLabel occurs when a label is declared but not used. + // + // Example: + // func f() { + // L: + // } + UnusedLabel + + // JumpOverDecl occurs when a label jumps over a variable declaration. + // + // Example: + // func f() int { + // goto L + // x := 2 + // L: + // x++ + // return x + // } + JumpOverDecl + + // JumpIntoBlock occurs when a forward jump goes to a label inside a nested + // block. + // + // Example: + // func f(x int) { + // goto L + // if x > 0 { + // L: + // print("inside block") + // } + // } + JumpIntoBlock + + /* control flow > calls */ + + // InvalidMethodExpr occurs when a pointer method is called but the argument + // is not addressable. + // + // Example: + // type T struct {} + // + // func (*T) m() int { return 1 } + // + // var _ = T.m(T{}) + InvalidMethodExpr + + // WrongArgCount occurs when too few or too many arguments are passed by a + // function call. + // + // Example: + // func f(i int) {} + // var x = f() + WrongArgCount + + // InvalidCall occurs when an expression is called that is not of function + // type. + // + // Example: + // var x = "x" + // var y = x() + InvalidCall + + /* control flow > suspended */ + + // UnusedResults occurs when a restricted expression-only built-in function + // is suspended via go or defer. Such a suspension discards the results of + // these side-effect free built-in functions, and therefore is ineffectual. + // + // Example: + // func f(a []int) int { + // defer len(a) + // return i + // } + UnusedResults + + // InvalidDefer occurs when a deferred expression is not a function call, + // for example if the expression is a type conversion. + // + // Example: + // func f(i int) int { + // defer int32(i) + // return i + // } + InvalidDefer + + // InvalidGo occurs when a go expression is not a function call, for example + // if the expression is a type conversion. + // + // Example: + // func f(i int) int { + // go int32(i) + // return i + // } + InvalidGo + + // All codes below were added in Go 1.17. + + /* decl */ + + // BadDecl occurs when a declaration has invalid syntax. + BadDecl + + // RepeatedDecl occurs when an identifier occurs more than once on the left + // hand side of a short variable declaration. + // + // Example: + // func _() { + // x, y, y := 1, 2, 3 + // } + RepeatedDecl + + /* unsafe */ + + // InvalidUnsafeAdd occurs when unsafe.Add is called with a + // length argument that is not of integer type. + // + // Example: + // import "unsafe" + // + // var p unsafe.Pointer + // var _ = unsafe.Add(p, float64(1)) + InvalidUnsafeAdd + + // InvalidUnsafeSlice occurs when unsafe.Slice is called with a + // pointer argument that is not of pointer type or a length argument + // that is not of integer type, negative, or out of bounds. + // + // Example: + // import "unsafe" + // + // var x int + // var _ = unsafe.Slice(x, 1) + // + // Example: + // import "unsafe" + // + // var x int + // var _ = unsafe.Slice(&x, float64(1)) + // + // Example: + // import "unsafe" + // + // var x int + // var _ = unsafe.Slice(&x, -1) + // + // Example: + // import "unsafe" + // + // var x int + // var _ = unsafe.Slice(&x, uint64(1) << 63) + InvalidUnsafeSlice + + // All codes below were added in Go 1.18. + + /* features */ + + // UnsupportedFeature occurs when a language feature is used that is not + // supported at this Go version. + UnsupportedFeature + + /* type params */ + + // NotAGenericType occurs when a non-generic type is used where a generic + // type is expected: in type or function instantiation. + // + // Example: + // type T int + // + // var _ T[int] + NotAGenericType + + // WrongTypeArgCount occurs when a type or function is instantiated with an + // incorrent number of type arguments, including when a generic type or + // function is used without instantiation. + // + // Errors inolving failed type inference are assigned other error codes. + // + // Example: + // type T[p any] int + // + // var _ T[int, string] + // + // Example: + // func f[T any]() {} + // + // var x = f + WrongTypeArgCount + + // CannotInferTypeArgs occurs when type or function type argument inference + // fails to infer all type arguments. + // + // Example: + // func f[T any]() {} + // + // func _() { + // f() + // } + // + // Example: + // type N[P, Q any] struct{} + // + // var _ N[int] + CannotInferTypeArgs + + // InvalidTypeArg occurs when a type argument does not satisfy its + // corresponding type parameter constraints. + // + // Example: + // type T[P ~int] struct{} + // + // var _ T[string] + InvalidTypeArg // arguments? InferenceFailed + + // InvalidInstanceCycle occurs when an invalid cycle is detected + // within the instantiation graph. + // + // Example: + // func f[T any]() { f[*T]() } + InvalidInstanceCycle + + // InvalidUnion occurs when an embedded union or approximation element is + // not valid. + // + // Example: + // type _ interface { + // ~int | interface{ m() } + // } + InvalidUnion + + // MisplacedConstraintIface occurs when a constraint-type interface is used + // outside of constraint position. + // + // Example: + // type I interface { ~int } + // + // var _ I + MisplacedConstraintIface + + // InvalidMethodTypeParams occurs when methods have type parameters. + // + // It cannot be encountered with an AST parsed using go/parser. + InvalidMethodTypeParams + + // MisplacedTypeParam occurs when a type parameter is used in a place where + // it is not permitted. + // + // Example: + // type T[P any] P + // + // Example: + // type T[P any] struct{ *P } + MisplacedTypeParam + + // InvalidUnsafeSliceData occurs when unsafe.SliceData is called with + // an argument that is not of slice type. It also occurs if it is used + // in a package compiled for a language version before go1.20. + // + // Example: + // import "unsafe" + // + // var x int + // var _ = unsafe.SliceData(x) + InvalidUnsafeSliceData + + // InvalidUnsafeString occurs when unsafe.String is called with + // a length argument that is not of integer type, negative, or + // out of bounds. It also occurs if it is used in a package + // compiled for a language version before go1.20. + // + // Example: + // import "unsafe" + // + // var b [10]byte + // var _ = unsafe.String(&b[0], -1) + InvalidUnsafeString + + // InvalidUnsafeStringData occurs if it is used in a package + // compiled for a language version before go1.20. + _ // not used anymore + +) diff --git a/vendor/golang.org/x/tools/internal/typesinternal/errorcode_string.go b/vendor/golang.org/x/tools/internal/typesinternal/errorcode_string.go new file mode 100644 index 000000000..15ecf7c5d --- /dev/null +++ b/vendor/golang.org/x/tools/internal/typesinternal/errorcode_string.go @@ -0,0 +1,179 @@ +// Code generated by "stringer -type=ErrorCode"; DO NOT EDIT. + +package typesinternal + +import "strconv" + +func _() { + // An "invalid array index" compiler error signifies that the constant values have changed. + // Re-run the stringer command to generate them again. + var x [1]struct{} + _ = x[InvalidSyntaxTree - -1] + _ = x[Test-1] + _ = x[BlankPkgName-2] + _ = x[MismatchedPkgName-3] + _ = x[InvalidPkgUse-4] + _ = x[BadImportPath-5] + _ = x[BrokenImport-6] + _ = x[ImportCRenamed-7] + _ = x[UnusedImport-8] + _ = x[InvalidInitCycle-9] + _ = x[DuplicateDecl-10] + _ = x[InvalidDeclCycle-11] + _ = x[InvalidTypeCycle-12] + _ = x[InvalidConstInit-13] + _ = x[InvalidConstVal-14] + _ = x[InvalidConstType-15] + _ = x[UntypedNilUse-16] + _ = x[WrongAssignCount-17] + _ = x[UnassignableOperand-18] + _ = x[NoNewVar-19] + _ = x[MultiValAssignOp-20] + _ = x[InvalidIfaceAssign-21] + _ = x[InvalidChanAssign-22] + _ = x[IncompatibleAssign-23] + _ = x[UnaddressableFieldAssign-24] + _ = x[NotAType-25] + _ = x[InvalidArrayLen-26] + _ = x[BlankIfaceMethod-27] + _ = x[IncomparableMapKey-28] + _ = x[InvalidIfaceEmbed-29] + _ = x[InvalidPtrEmbed-30] + _ = x[BadRecv-31] + _ = x[InvalidRecv-32] + _ = x[DuplicateFieldAndMethod-33] + _ = x[DuplicateMethod-34] + _ = x[InvalidBlank-35] + _ = x[InvalidIota-36] + _ = x[MissingInitBody-37] + _ = x[InvalidInitSig-38] + _ = x[InvalidInitDecl-39] + _ = x[InvalidMainDecl-40] + _ = x[TooManyValues-41] + _ = x[NotAnExpr-42] + _ = x[TruncatedFloat-43] + _ = x[NumericOverflow-44] + _ = x[UndefinedOp-45] + _ = x[MismatchedTypes-46] + _ = x[DivByZero-47] + _ = x[NonNumericIncDec-48] + _ = x[UnaddressableOperand-49] + _ = x[InvalidIndirection-50] + _ = x[NonIndexableOperand-51] + _ = x[InvalidIndex-52] + _ = x[SwappedSliceIndices-53] + _ = x[NonSliceableOperand-54] + _ = x[InvalidSliceExpr-55] + _ = x[InvalidShiftCount-56] + _ = x[InvalidShiftOperand-57] + _ = x[InvalidReceive-58] + _ = x[InvalidSend-59] + _ = x[DuplicateLitKey-60] + _ = x[MissingLitKey-61] + _ = x[InvalidLitIndex-62] + _ = x[OversizeArrayLit-63] + _ = x[MixedStructLit-64] + _ = x[InvalidStructLit-65] + _ = x[MissingLitField-66] + _ = x[DuplicateLitField-67] + _ = x[UnexportedLitField-68] + _ = x[InvalidLitField-69] + _ = x[UntypedLit-70] + _ = x[InvalidLit-71] + _ = x[AmbiguousSelector-72] + _ = x[UndeclaredImportedName-73] + _ = x[UnexportedName-74] + _ = x[UndeclaredName-75] + _ = x[MissingFieldOrMethod-76] + _ = x[BadDotDotDotSyntax-77] + _ = x[NonVariadicDotDotDot-78] + _ = x[MisplacedDotDotDot-79] + _ = x[InvalidDotDotDotOperand-80] + _ = x[InvalidDotDotDot-81] + _ = x[UncalledBuiltin-82] + _ = x[InvalidAppend-83] + _ = x[InvalidCap-84] + _ = x[InvalidClose-85] + _ = x[InvalidCopy-86] + _ = x[InvalidComplex-87] + _ = x[InvalidDelete-88] + _ = x[InvalidImag-89] + _ = x[InvalidLen-90] + _ = x[SwappedMakeArgs-91] + _ = x[InvalidMake-92] + _ = x[InvalidReal-93] + _ = x[InvalidAssert-94] + _ = x[ImpossibleAssert-95] + _ = x[InvalidConversion-96] + _ = x[InvalidUntypedConversion-97] + _ = x[BadOffsetofSyntax-98] + _ = x[InvalidOffsetof-99] + _ = x[UnusedExpr-100] + _ = x[UnusedVar-101] + _ = x[MissingReturn-102] + _ = x[WrongResultCount-103] + _ = x[OutOfScopeResult-104] + _ = x[InvalidCond-105] + _ = x[InvalidPostDecl-106] + _ = x[InvalidChanRange-107] + _ = x[InvalidIterVar-108] + _ = x[InvalidRangeExpr-109] + _ = x[MisplacedBreak-110] + _ = x[MisplacedContinue-111] + _ = x[MisplacedFallthrough-112] + _ = x[DuplicateCase-113] + _ = x[DuplicateDefault-114] + _ = x[BadTypeKeyword-115] + _ = x[InvalidTypeSwitch-116] + _ = x[InvalidExprSwitch-117] + _ = x[InvalidSelectCase-118] + _ = x[UndeclaredLabel-119] + _ = x[DuplicateLabel-120] + _ = x[MisplacedLabel-121] + _ = x[UnusedLabel-122] + _ = x[JumpOverDecl-123] + _ = x[JumpIntoBlock-124] + _ = x[InvalidMethodExpr-125] + _ = x[WrongArgCount-126] + _ = x[InvalidCall-127] + _ = x[UnusedResults-128] + _ = x[InvalidDefer-129] + _ = x[InvalidGo-130] + _ = x[BadDecl-131] + _ = x[RepeatedDecl-132] + _ = x[InvalidUnsafeAdd-133] + _ = x[InvalidUnsafeSlice-134] + _ = x[UnsupportedFeature-135] + _ = x[NotAGenericType-136] + _ = x[WrongTypeArgCount-137] + _ = x[CannotInferTypeArgs-138] + _ = x[InvalidTypeArg-139] + _ = x[InvalidInstanceCycle-140] + _ = x[InvalidUnion-141] + _ = x[MisplacedConstraintIface-142] + _ = x[InvalidMethodTypeParams-143] + _ = x[MisplacedTypeParam-144] + _ = x[InvalidUnsafeSliceData-145] + _ = x[InvalidUnsafeString-146] +} + +const ( + _ErrorCode_name_0 = "InvalidSyntaxTree" + _ErrorCode_name_1 = "TestBlankPkgNameMismatchedPkgNameInvalidPkgUseBadImportPathBrokenImportImportCRenamedUnusedImportInvalidInitCycleDuplicateDeclInvalidDeclCycleInvalidTypeCycleInvalidConstInitInvalidConstValInvalidConstTypeUntypedNilUseWrongAssignCountUnassignableOperandNoNewVarMultiValAssignOpInvalidIfaceAssignInvalidChanAssignIncompatibleAssignUnaddressableFieldAssignNotATypeInvalidArrayLenBlankIfaceMethodIncomparableMapKeyInvalidIfaceEmbedInvalidPtrEmbedBadRecvInvalidRecvDuplicateFieldAndMethodDuplicateMethodInvalidBlankInvalidIotaMissingInitBodyInvalidInitSigInvalidInitDeclInvalidMainDeclTooManyValuesNotAnExprTruncatedFloatNumericOverflowUndefinedOpMismatchedTypesDivByZeroNonNumericIncDecUnaddressableOperandInvalidIndirectionNonIndexableOperandInvalidIndexSwappedSliceIndicesNonSliceableOperandInvalidSliceExprInvalidShiftCountInvalidShiftOperandInvalidReceiveInvalidSendDuplicateLitKeyMissingLitKeyInvalidLitIndexOversizeArrayLitMixedStructLitInvalidStructLitMissingLitFieldDuplicateLitFieldUnexportedLitFieldInvalidLitFieldUntypedLitInvalidLitAmbiguousSelectorUndeclaredImportedNameUnexportedNameUndeclaredNameMissingFieldOrMethodBadDotDotDotSyntaxNonVariadicDotDotDotMisplacedDotDotDotInvalidDotDotDotOperandInvalidDotDotDotUncalledBuiltinInvalidAppendInvalidCapInvalidCloseInvalidCopyInvalidComplexInvalidDeleteInvalidImagInvalidLenSwappedMakeArgsInvalidMakeInvalidRealInvalidAssertImpossibleAssertInvalidConversionInvalidUntypedConversionBadOffsetofSyntaxInvalidOffsetofUnusedExprUnusedVarMissingReturnWrongResultCountOutOfScopeResultInvalidCondInvalidPostDeclInvalidChanRangeInvalidIterVarInvalidRangeExprMisplacedBreakMisplacedContinueMisplacedFallthroughDuplicateCaseDuplicateDefaultBadTypeKeywordInvalidTypeSwitchInvalidExprSwitchInvalidSelectCaseUndeclaredLabelDuplicateLabelMisplacedLabelUnusedLabelJumpOverDeclJumpIntoBlockInvalidMethodExprWrongArgCountInvalidCallUnusedResultsInvalidDeferInvalidGoBadDeclRepeatedDeclInvalidUnsafeAddInvalidUnsafeSliceUnsupportedFeatureNotAGenericTypeWrongTypeArgCountCannotInferTypeArgsInvalidTypeArgInvalidInstanceCycleInvalidUnionMisplacedConstraintIfaceInvalidMethodTypeParamsMisplacedTypeParamInvalidUnsafeSliceDataInvalidUnsafeString" +) + +var ( + _ErrorCode_index_1 = [...]uint16{0, 4, 16, 33, 46, 59, 71, 85, 97, 113, 126, 142, 158, 174, 189, 205, 218, 234, 253, 261, 277, 295, 312, 330, 354, 362, 377, 393, 411, 428, 443, 450, 461, 484, 499, 511, 522, 537, 551, 566, 581, 594, 603, 617, 632, 643, 658, 667, 683, 703, 721, 740, 752, 771, 790, 806, 823, 842, 856, 867, 882, 895, 910, 926, 940, 956, 971, 988, 1006, 1021, 1031, 1041, 1058, 1080, 1094, 1108, 1128, 1146, 1166, 1184, 1207, 1223, 1238, 1251, 1261, 1273, 1284, 1298, 1311, 1322, 1332, 1347, 1358, 1369, 1382, 1398, 1415, 1439, 1456, 1471, 1481, 1490, 1503, 1519, 1535, 1546, 1561, 1577, 1591, 1607, 1621, 1638, 1658, 1671, 1687, 1701, 1718, 1735, 1752, 1767, 1781, 1795, 1806, 1818, 1831, 1848, 1861, 1872, 1885, 1897, 1906, 1913, 1925, 1941, 1959, 1977, 1992, 2009, 2028, 2042, 2062, 2074, 2098, 2121, 2139, 2161, 2180} +) + +func (i ErrorCode) String() string { + switch { + case i == -1: + return _ErrorCode_name_0 + case 1 <= i && i <= 146: + i -= 1 + return _ErrorCode_name_1[_ErrorCode_index_1[i]:_ErrorCode_index_1[i+1]] + default: + return "ErrorCode(" + strconv.FormatInt(int64(i), 10) + ")" + } +} diff --git a/vendor/golang.org/x/tools/internal/typesinternal/recv.go b/vendor/golang.org/x/tools/internal/typesinternal/recv.go new file mode 100644 index 000000000..fea7c8b75 --- /dev/null +++ b/vendor/golang.org/x/tools/internal/typesinternal/recv.go @@ -0,0 +1,43 @@ +// Copyright 2024 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package typesinternal + +import ( + "go/types" + + "golang.org/x/tools/internal/aliases" +) + +// ReceiverNamed returns the named type (if any) associated with the +// type of recv, which may be of the form N or *N, or aliases thereof. +// It also reports whether a Pointer was present. +func ReceiverNamed(recv *types.Var) (isPtr bool, named *types.Named) { + t := recv.Type() + if ptr, ok := aliases.Unalias(t).(*types.Pointer); ok { + isPtr = true + t = ptr.Elem() + } + named, _ = aliases.Unalias(t).(*types.Named) + return +} + +// Unpointer returns T given *T or an alias thereof. +// For all other types it is the identity function. +// It does not look at underlying types. +// The result may be an alias. +// +// Use this function to strip off the optional pointer on a receiver +// in a field or method selection, without losing the named type +// (which is needed to compute the method set). +// +// See also [typeparams.MustDeref], which removes one level of +// indirection from the type, regardless of named types (analogous to +// a LOAD instruction). +func Unpointer(t types.Type) types.Type { + if ptr, ok := aliases.Unalias(t).(*types.Pointer); ok { + return ptr.Elem() + } + return t +} diff --git a/vendor/golang.org/x/tools/internal/typesinternal/toonew.go b/vendor/golang.org/x/tools/internal/typesinternal/toonew.go new file mode 100644 index 000000000..cc86487ea --- /dev/null +++ b/vendor/golang.org/x/tools/internal/typesinternal/toonew.go @@ -0,0 +1,89 @@ +// Copyright 2024 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package typesinternal + +import ( + "go/types" + + "golang.org/x/tools/internal/stdlib" + "golang.org/x/tools/internal/versions" +) + +// TooNewStdSymbols computes the set of package-level symbols +// exported by pkg that are not available at the specified version. +// The result maps each symbol to its minimum version. +// +// The pkg is allowed to contain type errors. +func TooNewStdSymbols(pkg *types.Package, version string) map[types.Object]string { + disallowed := make(map[types.Object]string) + + // Pass 1: package-level symbols. + symbols := stdlib.PackageSymbols[pkg.Path()] + for _, sym := range symbols { + symver := sym.Version.String() + if versions.Before(version, symver) { + switch sym.Kind { + case stdlib.Func, stdlib.Var, stdlib.Const, stdlib.Type: + disallowed[pkg.Scope().Lookup(sym.Name)] = symver + } + } + } + + // Pass 2: fields and methods. + // + // We allow fields and methods if their associated type is + // disallowed, as otherwise we would report false positives + // for compatibility shims. Consider: + // + // //go:build go1.22 + // type T struct { F std.Real } // correct new API + // + // //go:build !go1.22 + // type T struct { F fake } // shim + // type fake struct { ... } + // func (fake) M () {} + // + // These alternative declarations of T use either the std.Real + // type, introduced in go1.22, or a fake type, for the field + // F. (The fakery could be arbitrarily deep, involving more + // nested fields and methods than are shown here.) Clients + // that use the compatibility shim T will compile with any + // version of go, whether older or newer than go1.22, but only + // the newer version will use the std.Real implementation. + // + // Now consider a reference to method M in new(T).F.M() in a + // module that requires a minimum of go1.21. The analysis may + // occur using a version of Go higher than 1.21, selecting the + // first version of T, so the method M is Real.M. This would + // spuriously cause the analyzer to report a reference to a + // too-new symbol even though this expression compiles just + // fine (with the fake implementation) using go1.21. + for _, sym := range symbols { + symVersion := sym.Version.String() + if !versions.Before(version, symVersion) { + continue // allowed + } + + var obj types.Object + switch sym.Kind { + case stdlib.Field: + typename, name := sym.SplitField() + if t := pkg.Scope().Lookup(typename); t != nil && disallowed[t] == "" { + obj, _, _ = types.LookupFieldOrMethod(t.Type(), false, pkg, name) + } + + case stdlib.Method: + ptr, recvname, name := sym.SplitMethod() + if t := pkg.Scope().Lookup(recvname); t != nil && disallowed[t] == "" { + obj, _, _ = types.LookupFieldOrMethod(t.Type(), ptr, pkg, name) + } + } + if obj != nil { + disallowed[obj] = symVersion + } + } + + return disallowed +} diff --git a/vendor/golang.org/x/tools/internal/typesinternal/types.go b/vendor/golang.org/x/tools/internal/typesinternal/types.go new file mode 100644 index 000000000..7c77c2fbc --- /dev/null +++ b/vendor/golang.org/x/tools/internal/typesinternal/types.go @@ -0,0 +1,50 @@ +// Copyright 2020 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package typesinternal provides access to internal go/types APIs that are not +// yet exported. +package typesinternal + +import ( + "go/token" + "go/types" + "reflect" + "unsafe" +) + +func SetUsesCgo(conf *types.Config) bool { + v := reflect.ValueOf(conf).Elem() + + f := v.FieldByName("go115UsesCgo") + if !f.IsValid() { + f = v.FieldByName("UsesCgo") + if !f.IsValid() { + return false + } + } + + addr := unsafe.Pointer(f.UnsafeAddr()) + *(*bool)(addr) = true + + return true +} + +// ReadGo116ErrorData extracts additional information from types.Error values +// generated by Go version 1.16 and later: the error code, start position, and +// end position. If all positions are valid, start <= err.Pos <= end. +// +// If the data could not be read, the final result parameter will be false. +func ReadGo116ErrorData(err types.Error) (code ErrorCode, start, end token.Pos, ok bool) { + var data [3]int + // By coincidence all of these fields are ints, which simplifies things. + v := reflect.ValueOf(err) + for i, name := range []string{"go116code", "go116start", "go116end"} { + f := v.FieldByName(name) + if !f.IsValid() { + return 0, 0, 0, false + } + data[i] = int(f.Int()) + } + return ErrorCode(data[0]), token.Pos(data[1]), token.Pos(data[2]), true +} diff --git a/vendor/golang.org/x/tools/internal/versions/features.go b/vendor/golang.org/x/tools/internal/versions/features.go new file mode 100644 index 000000000..b53f17861 --- /dev/null +++ b/vendor/golang.org/x/tools/internal/versions/features.go @@ -0,0 +1,43 @@ +// Copyright 2023 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package versions + +// This file contains predicates for working with file versions to +// decide when a tool should consider a language feature enabled. + +// GoVersions that features in x/tools can be gated to. +const ( + Go1_18 = "go1.18" + Go1_19 = "go1.19" + Go1_20 = "go1.20" + Go1_21 = "go1.21" + Go1_22 = "go1.22" +) + +// Future is an invalid unknown Go version sometime in the future. +// Do not use directly with Compare. +const Future = "" + +// AtLeast reports whether the file version v comes after a Go release. +// +// Use this predicate to enable a behavior once a certain Go release +// has happened (and stays enabled in the future). +func AtLeast(v, release string) bool { + if v == Future { + return true // an unknown future version is always after y. + } + return Compare(Lang(v), Lang(release)) >= 0 +} + +// Before reports whether the file version v is strictly before a Go release. +// +// Use this predicate to disable a behavior once a certain Go release +// has happened (and stays enabled in the future). +func Before(v, release string) bool { + if v == Future { + return false // an unknown future version happens after y. + } + return Compare(Lang(v), Lang(release)) < 0 +} diff --git a/vendor/golang.org/x/tools/internal/versions/gover.go b/vendor/golang.org/x/tools/internal/versions/gover.go new file mode 100644 index 000000000..bbabcd22e --- /dev/null +++ b/vendor/golang.org/x/tools/internal/versions/gover.go @@ -0,0 +1,172 @@ +// Copyright 2023 The Go 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 is a fork of internal/gover for use by x/tools until +// go1.21 and earlier are no longer supported by x/tools. + +package versions + +import "strings" + +// A gover is a parsed Go gover: major[.Minor[.Patch]][kind[pre]] +// The numbers are the original decimal strings to avoid integer overflows +// and since there is very little actual math. (Probably overflow doesn't matter in practice, +// but at the time this code was written, there was an existing test that used +// go1.99999999999, which does not fit in an int on 32-bit platforms. +// The "big decimal" representation avoids the problem entirely.) +type gover struct { + major string // decimal + minor string // decimal or "" + patch string // decimal or "" + kind string // "", "alpha", "beta", "rc" + pre string // decimal or "" +} + +// compare returns -1, 0, or +1 depending on whether +// x < y, x == y, or x > y, interpreted as toolchain versions. +// The versions x and y must not begin with a "go" prefix: just "1.21" not "go1.21". +// Malformed versions compare less than well-formed versions and equal to each other. +// The language version "1.21" compares less than the release candidate and eventual releases "1.21rc1" and "1.21.0". +func compare(x, y string) int { + vx := parse(x) + vy := parse(y) + + if c := cmpInt(vx.major, vy.major); c != 0 { + return c + } + if c := cmpInt(vx.minor, vy.minor); c != 0 { + return c + } + if c := cmpInt(vx.patch, vy.patch); c != 0 { + return c + } + if c := strings.Compare(vx.kind, vy.kind); c != 0 { // "" < alpha < beta < rc + return c + } + if c := cmpInt(vx.pre, vy.pre); c != 0 { + return c + } + return 0 +} + +// lang returns the Go language version. For example, lang("1.2.3") == "1.2". +func lang(x string) string { + v := parse(x) + if v.minor == "" || v.major == "1" && v.minor == "0" { + return v.major + } + return v.major + "." + v.minor +} + +// isValid reports whether the version x is valid. +func isValid(x string) bool { + return parse(x) != gover{} +} + +// parse parses the Go version string x into a version. +// It returns the zero version if x is malformed. +func parse(x string) gover { + var v gover + + // Parse major version. + var ok bool + v.major, x, ok = cutInt(x) + if !ok { + return gover{} + } + if x == "" { + // Interpret "1" as "1.0.0". + v.minor = "0" + v.patch = "0" + return v + } + + // Parse . before minor version. + if x[0] != '.' { + return gover{} + } + + // Parse minor version. + v.minor, x, ok = cutInt(x[1:]) + if !ok { + return gover{} + } + if x == "" { + // Patch missing is same as "0" for older versions. + // Starting in Go 1.21, patch missing is different from explicit .0. + if cmpInt(v.minor, "21") < 0 { + v.patch = "0" + } + return v + } + + // Parse patch if present. + if x[0] == '.' { + v.patch, x, ok = cutInt(x[1:]) + if !ok || x != "" { + // Note that we are disallowing prereleases (alpha, beta, rc) for patch releases here (x != ""). + // Allowing them would be a bit confusing because we already have: + // 1.21 < 1.21rc1 + // But a prerelease of a patch would have the opposite effect: + // 1.21.3rc1 < 1.21.3 + // We've never needed them before, so let's not start now. + return gover{} + } + return v + } + + // Parse prerelease. + i := 0 + for i < len(x) && (x[i] < '0' || '9' < x[i]) { + if x[i] < 'a' || 'z' < x[i] { + return gover{} + } + i++ + } + if i == 0 { + return gover{} + } + v.kind, x = x[:i], x[i:] + if x == "" { + return v + } + v.pre, x, ok = cutInt(x) + if !ok || x != "" { + return gover{} + } + + return v +} + +// cutInt scans the leading decimal number at the start of x to an integer +// and returns that value and the rest of the string. +func cutInt(x string) (n, rest string, ok bool) { + i := 0 + for i < len(x) && '0' <= x[i] && x[i] <= '9' { + i++ + } + if i == 0 || x[0] == '0' && i != 1 { // no digits or unnecessary leading zero + return "", "", false + } + return x[:i], x[i:], true +} + +// cmpInt returns cmp.Compare(x, y) interpreting x and y as decimal numbers. +// (Copied from golang.org/x/mod/semver's compareInt.) +func cmpInt(x, y string) int { + if x == y { + return 0 + } + if len(x) < len(y) { + return -1 + } + if len(x) > len(y) { + return +1 + } + if x < y { + return -1 + } else { + return +1 + } +} diff --git a/vendor/golang.org/x/tools/internal/versions/toolchain.go b/vendor/golang.org/x/tools/internal/versions/toolchain.go new file mode 100644 index 000000000..377bf7a53 --- /dev/null +++ b/vendor/golang.org/x/tools/internal/versions/toolchain.go @@ -0,0 +1,14 @@ +// Copyright 2024 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package versions + +// toolchain is maximum version (<1.22) that the go toolchain used +// to build the current tool is known to support. +// +// When a tool is built with >=1.22, the value of toolchain is unused. +// +// x/tools does not support building with go <1.18. So we take this +// as the minimum possible maximum. +var toolchain string = Go1_18 diff --git a/vendor/golang.org/x/tools/internal/versions/toolchain_go119.go b/vendor/golang.org/x/tools/internal/versions/toolchain_go119.go new file mode 100644 index 000000000..f65beed9d --- /dev/null +++ b/vendor/golang.org/x/tools/internal/versions/toolchain_go119.go @@ -0,0 +1,14 @@ +// Copyright 2024 The Go 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:build go1.19 +// +build go1.19 + +package versions + +func init() { + if Compare(toolchain, Go1_19) < 0 { + toolchain = Go1_19 + } +} diff --git a/vendor/golang.org/x/tools/internal/versions/toolchain_go120.go b/vendor/golang.org/x/tools/internal/versions/toolchain_go120.go new file mode 100644 index 000000000..1a9efa126 --- /dev/null +++ b/vendor/golang.org/x/tools/internal/versions/toolchain_go120.go @@ -0,0 +1,14 @@ +// Copyright 2024 The Go 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:build go1.20 +// +build go1.20 + +package versions + +func init() { + if Compare(toolchain, Go1_20) < 0 { + toolchain = Go1_20 + } +} diff --git a/vendor/golang.org/x/tools/internal/versions/toolchain_go121.go b/vendor/golang.org/x/tools/internal/versions/toolchain_go121.go new file mode 100644 index 000000000..b7ef216df --- /dev/null +++ b/vendor/golang.org/x/tools/internal/versions/toolchain_go121.go @@ -0,0 +1,14 @@ +// Copyright 2024 The Go 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:build go1.21 +// +build go1.21 + +package versions + +func init() { + if Compare(toolchain, Go1_21) < 0 { + toolchain = Go1_21 + } +} diff --git a/vendor/golang.org/x/tools/internal/versions/types.go b/vendor/golang.org/x/tools/internal/versions/types.go new file mode 100644 index 000000000..562eef21f --- /dev/null +++ b/vendor/golang.org/x/tools/internal/versions/types.go @@ -0,0 +1,19 @@ +// Copyright 2023 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package versions + +import ( + "go/types" +) + +// GoVersion returns the Go version of the type package. +// It returns zero if no version can be determined. +func GoVersion(pkg *types.Package) string { + // TODO(taking): x/tools can call GoVersion() [from 1.21] after 1.25. + if pkg, ok := any(pkg).(interface{ GoVersion() string }); ok { + return pkg.GoVersion() + } + return "" +} diff --git a/vendor/golang.org/x/tools/internal/versions/types_go121.go b/vendor/golang.org/x/tools/internal/versions/types_go121.go new file mode 100644 index 000000000..b4345d334 --- /dev/null +++ b/vendor/golang.org/x/tools/internal/versions/types_go121.go @@ -0,0 +1,30 @@ +// Copyright 2023 The Go 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:build !go1.22 +// +build !go1.22 + +package versions + +import ( + "go/ast" + "go/types" +) + +// FileVersion returns a language version (<=1.21) derived from runtime.Version() +// or an unknown future version. +func FileVersion(info *types.Info, file *ast.File) string { + // In x/tools built with Go <= 1.21, we do not have Info.FileVersions + // available. We use a go version derived from the toolchain used to + // compile the tool by default. + // This will be <= go1.21. We take this as the maximum version that + // this tool can support. + // + // There are no features currently in x/tools that need to tell fine grained + // differences for versions <1.22. + return toolchain +} + +// InitFileVersions is a noop when compiled with this Go version. +func InitFileVersions(*types.Info) {} diff --git a/vendor/golang.org/x/tools/internal/versions/types_go122.go b/vendor/golang.org/x/tools/internal/versions/types_go122.go new file mode 100644 index 000000000..e8180632a --- /dev/null +++ b/vendor/golang.org/x/tools/internal/versions/types_go122.go @@ -0,0 +1,41 @@ +// Copyright 2023 The Go 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:build go1.22 +// +build go1.22 + +package versions + +import ( + "go/ast" + "go/types" +) + +// FileVersions returns a file's Go version. +// The reported version is an unknown Future version if a +// version cannot be determined. +func FileVersion(info *types.Info, file *ast.File) string { + // In tools built with Go >= 1.22, the Go version of a file + // follow a cascades of sources: + // 1) types.Info.FileVersion, which follows the cascade: + // 1.a) file version (ast.File.GoVersion), + // 1.b) the package version (types.Config.GoVersion), or + // 2) is some unknown Future version. + // + // File versions require a valid package version to be provided to types + // in Config.GoVersion. Config.GoVersion is either from the package's module + // or the toolchain (go run). This value should be provided by go/packages + // or unitchecker.Config.GoVersion. + if v := info.FileVersions[file]; IsValid(v) { + return v + } + // Note: we could instead return runtime.Version() [if valid]. + // This would act as a max version on what a tool can support. + return Future +} + +// InitFileVersions initializes info to record Go versions for Go files. +func InitFileVersions(info *types.Info) { + info.FileVersions = make(map[*ast.File]string) +} diff --git a/vendor/golang.org/x/tools/internal/versions/versions.go b/vendor/golang.org/x/tools/internal/versions/versions.go new file mode 100644 index 000000000..8d1f7453d --- /dev/null +++ b/vendor/golang.org/x/tools/internal/versions/versions.go @@ -0,0 +1,57 @@ +// Copyright 2023 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package versions + +import ( + "strings" +) + +// Note: If we use build tags to use go/versions when go >=1.22, +// we run into go.dev/issue/53737. Under some operations users would see an +// import of "go/versions" even if they would not compile the file. +// For example, during `go get -u ./...` (go.dev/issue/64490) we do not try to include +// For this reason, this library just a clone of go/versions for the moment. + +// Lang returns the Go language version for version x. +// If x is not a valid version, Lang returns the empty string. +// For example: +// +// Lang("go1.21rc2") = "go1.21" +// Lang("go1.21.2") = "go1.21" +// Lang("go1.21") = "go1.21" +// Lang("go1") = "go1" +// Lang("bad") = "" +// Lang("1.21") = "" +func Lang(x string) string { + v := lang(stripGo(x)) + if v == "" { + return "" + } + return x[:2+len(v)] // "go"+v without allocation +} + +// Compare returns -1, 0, or +1 depending on whether +// x < y, x == y, or x > y, interpreted as Go versions. +// The versions x and y must begin with a "go" prefix: "go1.21" not "1.21". +// Invalid versions, including the empty string, compare less than +// valid versions and equal to each other. +// The language version "go1.21" compares less than the +// release candidate and eventual releases "go1.21rc1" and "go1.21.0". +// Custom toolchain suffixes are ignored during comparison: +// "go1.21.0" and "go1.21.0-bigcorp" are equal. +func Compare(x, y string) int { return compare(stripGo(x), stripGo(y)) } + +// IsValid reports whether the version x is valid. +func IsValid(x string) bool { return isValid(stripGo(x)) } + +// stripGo converts from a "go1.21" version to a "1.21" version. +// If v does not start with "go", stripGo returns the empty string (a known invalid version). +func stripGo(v string) string { + v, _, _ = strings.Cut(v, "-") // strip -bigcorp suffix. + if len(v) < 2 || v[:2] != "go" { + return "" + } + return v[2:] +} diff --git a/vendor/google.golang.org/appengine/LICENSE b/vendor/google.golang.org/appengine/LICENSE deleted file mode 100644 index d64569567..000000000 --- a/vendor/google.golang.org/appengine/LICENSE +++ /dev/null @@ -1,202 +0,0 @@ - - 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/google.golang.org/appengine/internal/api.go b/vendor/google.golang.org/appengine/internal/api.go deleted file mode 100644 index 0569f5dd4..000000000 --- a/vendor/google.golang.org/appengine/internal/api.go +++ /dev/null @@ -1,653 +0,0 @@ -// Copyright 2011 Google Inc. All rights reserved. -// Use of this source code is governed by the Apache 2.0 -// license that can be found in the LICENSE file. - -//go:build !appengine -// +build !appengine - -package internal - -import ( - "bytes" - "context" - "errors" - "fmt" - "io/ioutil" - "log" - "net" - "net/http" - "net/url" - "os" - "runtime" - "strconv" - "strings" - "sync" - "sync/atomic" - "time" - - "github.com/golang/protobuf/proto" - - basepb "google.golang.org/appengine/internal/base" - logpb "google.golang.org/appengine/internal/log" - remotepb "google.golang.org/appengine/internal/remote_api" -) - -const ( - apiPath = "/rpc_http" -) - -var ( - // Incoming headers. - ticketHeader = http.CanonicalHeaderKey("X-AppEngine-API-Ticket") - dapperHeader = http.CanonicalHeaderKey("X-Google-DapperTraceInfo") - traceHeader = http.CanonicalHeaderKey("X-Cloud-Trace-Context") - curNamespaceHeader = http.CanonicalHeaderKey("X-AppEngine-Current-Namespace") - userIPHeader = http.CanonicalHeaderKey("X-AppEngine-User-IP") - remoteAddrHeader = http.CanonicalHeaderKey("X-AppEngine-Remote-Addr") - devRequestIdHeader = http.CanonicalHeaderKey("X-Appengine-Dev-Request-Id") - - // Outgoing headers. - apiEndpointHeader = http.CanonicalHeaderKey("X-Google-RPC-Service-Endpoint") - apiEndpointHeaderValue = []string{"app-engine-apis"} - apiMethodHeader = http.CanonicalHeaderKey("X-Google-RPC-Service-Method") - apiMethodHeaderValue = []string{"/VMRemoteAPI.CallRemoteAPI"} - apiDeadlineHeader = http.CanonicalHeaderKey("X-Google-RPC-Service-Deadline") - apiContentType = http.CanonicalHeaderKey("Content-Type") - apiContentTypeValue = []string{"application/octet-stream"} - logFlushHeader = http.CanonicalHeaderKey("X-AppEngine-Log-Flush-Count") - - apiHTTPClient = &http.Client{ - Transport: &http.Transport{ - Proxy: http.ProxyFromEnvironment, - Dial: limitDial, - MaxIdleConns: 1000, - MaxIdleConnsPerHost: 10000, - IdleConnTimeout: 90 * time.Second, - }, - } -) - -func apiURL(ctx context.Context) *url.URL { - host, port := "appengine.googleapis.internal", "10001" - if h := os.Getenv("API_HOST"); h != "" { - host = h - } - if hostOverride := ctx.Value(apiHostOverrideKey); hostOverride != nil { - host = hostOverride.(string) - } - if p := os.Getenv("API_PORT"); p != "" { - port = p - } - if portOverride := ctx.Value(apiPortOverrideKey); portOverride != nil { - port = portOverride.(string) - } - return &url.URL{ - Scheme: "http", - Host: host + ":" + port, - Path: apiPath, - } -} - -// Middleware wraps an http handler so that it can make GAE API calls -func Middleware(next http.Handler) http.Handler { - return handleHTTPMiddleware(executeRequestSafelyMiddleware(next)) -} - -func handleHTTPMiddleware(next http.Handler) http.Handler { - return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - c := &aeContext{ - req: r, - outHeader: w.Header(), - } - r = r.WithContext(withContext(r.Context(), c)) - c.req = r - - stopFlushing := make(chan int) - - // Patch up RemoteAddr so it looks reasonable. - if addr := r.Header.Get(userIPHeader); addr != "" { - r.RemoteAddr = addr - } else if addr = r.Header.Get(remoteAddrHeader); addr != "" { - r.RemoteAddr = addr - } else { - // Should not normally reach here, but pick a sensible default anyway. - r.RemoteAddr = "127.0.0.1" - } - // The address in the headers will most likely be of these forms: - // 123.123.123.123 - // 2001:db8::1 - // net/http.Request.RemoteAddr is specified to be in "IP:port" form. - if _, _, err := net.SplitHostPort(r.RemoteAddr); err != nil { - // Assume the remote address is only a host; add a default port. - r.RemoteAddr = net.JoinHostPort(r.RemoteAddr, "80") - } - - if logToLogservice() { - // Start goroutine responsible for flushing app logs. - // This is done after adding c to ctx.m (and stopped before removing it) - // because flushing logs requires making an API call. - go c.logFlusher(stopFlushing) - } - - next.ServeHTTP(c, r) - c.outHeader = nil // make sure header changes aren't respected any more - - flushed := make(chan struct{}) - if logToLogservice() { - stopFlushing <- 1 // any logging beyond this point will be dropped - - // Flush any pending logs asynchronously. - c.pendingLogs.Lock() - flushes := c.pendingLogs.flushes - if len(c.pendingLogs.lines) > 0 { - flushes++ - } - c.pendingLogs.Unlock() - go func() { - defer close(flushed) - // Force a log flush, because with very short requests we - // may not ever flush logs. - c.flushLog(true) - }() - w.Header().Set(logFlushHeader, strconv.Itoa(flushes)) - } - - // Avoid nil Write call if c.Write is never called. - if c.outCode != 0 { - w.WriteHeader(c.outCode) - } - if c.outBody != nil { - w.Write(c.outBody) - } - if logToLogservice() { - // Wait for the last flush to complete before returning, - // otherwise the security ticket will not be valid. - <-flushed - } - }) -} - -func executeRequestSafelyMiddleware(next http.Handler) http.Handler { - return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - defer func() { - if x := recover(); x != nil { - c := w.(*aeContext) - logf(c, 4, "%s", renderPanic(x)) // 4 == critical - c.outCode = 500 - } - }() - - next.ServeHTTP(w, r) - }) -} - -func renderPanic(x interface{}) string { - buf := make([]byte, 16<<10) // 16 KB should be plenty - buf = buf[:runtime.Stack(buf, false)] - - // Remove the first few stack frames: - // this func - // the recover closure in the caller - // That will root the stack trace at the site of the panic. - const ( - skipStart = "internal.renderPanic" - skipFrames = 2 - ) - start := bytes.Index(buf, []byte(skipStart)) - p := start - for i := 0; i < skipFrames*2 && p+1 < len(buf); i++ { - p = bytes.IndexByte(buf[p+1:], '\n') + p + 1 - if p < 0 { - break - } - } - if p >= 0 { - // buf[start:p+1] is the block to remove. - // Copy buf[p+1:] over buf[start:] and shrink buf. - copy(buf[start:], buf[p+1:]) - buf = buf[:len(buf)-(p+1-start)] - } - - // Add panic heading. - head := fmt.Sprintf("panic: %v\n\n", x) - if len(head) > len(buf) { - // Extremely unlikely to happen. - return head - } - copy(buf[len(head):], buf) - copy(buf, head) - - return string(buf) -} - -// aeContext represents the aeContext of an in-flight HTTP request. -// It implements the appengine.Context and http.ResponseWriter interfaces. -type aeContext struct { - req *http.Request - - outCode int - outHeader http.Header - outBody []byte - - pendingLogs struct { - sync.Mutex - lines []*logpb.UserAppLogLine - flushes int - } -} - -var contextKey = "holds a *context" - -// jointContext joins two contexts in a superficial way. -// It takes values and timeouts from a base context, and only values from another context. -type jointContext struct { - base context.Context - valuesOnly context.Context -} - -func (c jointContext) Deadline() (time.Time, bool) { - return c.base.Deadline() -} - -func (c jointContext) Done() <-chan struct{} { - return c.base.Done() -} - -func (c jointContext) Err() error { - return c.base.Err() -} - -func (c jointContext) Value(key interface{}) interface{} { - if val := c.base.Value(key); val != nil { - return val - } - return c.valuesOnly.Value(key) -} - -// fromContext returns the App Engine context or nil if ctx is not -// derived from an App Engine context. -func fromContext(ctx context.Context) *aeContext { - c, _ := ctx.Value(&contextKey).(*aeContext) - return c -} - -func withContext(parent context.Context, c *aeContext) context.Context { - ctx := context.WithValue(parent, &contextKey, c) - if ns := c.req.Header.Get(curNamespaceHeader); ns != "" { - ctx = withNamespace(ctx, ns) - } - return ctx -} - -func toContext(c *aeContext) context.Context { - return withContext(context.Background(), c) -} - -func IncomingHeaders(ctx context.Context) http.Header { - if c := fromContext(ctx); c != nil { - return c.req.Header - } - return nil -} - -func ReqContext(req *http.Request) context.Context { - return req.Context() -} - -func WithContext(parent context.Context, req *http.Request) context.Context { - return jointContext{ - base: parent, - valuesOnly: req.Context(), - } -} - -// RegisterTestRequest registers the HTTP request req for testing, such that -// any API calls are sent to the provided URL. -// It should only be used by aetest package. -func RegisterTestRequest(req *http.Request, apiURL *url.URL, appID string) *http.Request { - ctx := req.Context() - ctx = withAPIHostOverride(ctx, apiURL.Hostname()) - ctx = withAPIPortOverride(ctx, apiURL.Port()) - ctx = WithAppIDOverride(ctx, appID) - - // use the unregistered request as a placeholder so that withContext can read the headers - c := &aeContext{req: req} - c.req = req.WithContext(withContext(ctx, c)) - return c.req -} - -var errTimeout = &CallError{ - Detail: "Deadline exceeded", - Code: int32(remotepb.RpcError_CANCELLED), - Timeout: true, -} - -func (c *aeContext) Header() http.Header { return c.outHeader } - -// Copied from $GOROOT/src/pkg/net/http/transfer.go. Some response status -// codes do not permit a response body (nor response entity headers such as -// Content-Length, Content-Type, etc). -func bodyAllowedForStatus(status int) bool { - switch { - case status >= 100 && status <= 199: - return false - case status == 204: - return false - case status == 304: - return false - } - return true -} - -func (c *aeContext) Write(b []byte) (int, error) { - if c.outCode == 0 { - c.WriteHeader(http.StatusOK) - } - if len(b) > 0 && !bodyAllowedForStatus(c.outCode) { - return 0, http.ErrBodyNotAllowed - } - c.outBody = append(c.outBody, b...) - return len(b), nil -} - -func (c *aeContext) WriteHeader(code int) { - if c.outCode != 0 { - logf(c, 3, "WriteHeader called multiple times on request.") // error level - return - } - c.outCode = code -} - -func post(ctx context.Context, body []byte, timeout time.Duration) (b []byte, err error) { - apiURL := apiURL(ctx) - hreq := &http.Request{ - Method: "POST", - URL: apiURL, - Header: http.Header{ - apiEndpointHeader: apiEndpointHeaderValue, - apiMethodHeader: apiMethodHeaderValue, - apiContentType: apiContentTypeValue, - apiDeadlineHeader: []string{strconv.FormatFloat(timeout.Seconds(), 'f', -1, 64)}, - }, - Body: ioutil.NopCloser(bytes.NewReader(body)), - ContentLength: int64(len(body)), - Host: apiURL.Host, - } - c := fromContext(ctx) - if c != nil { - if info := c.req.Header.Get(dapperHeader); info != "" { - hreq.Header.Set(dapperHeader, info) - } - if info := c.req.Header.Get(traceHeader); info != "" { - hreq.Header.Set(traceHeader, info) - } - } - - tr := apiHTTPClient.Transport.(*http.Transport) - - var timedOut int32 // atomic; set to 1 if timed out - t := time.AfterFunc(timeout, func() { - atomic.StoreInt32(&timedOut, 1) - tr.CancelRequest(hreq) - }) - defer t.Stop() - defer func() { - // Check if timeout was exceeded. - if atomic.LoadInt32(&timedOut) != 0 { - err = errTimeout - } - }() - - hresp, err := apiHTTPClient.Do(hreq) - if err != nil { - return nil, &CallError{ - Detail: fmt.Sprintf("service bridge HTTP failed: %v", err), - Code: int32(remotepb.RpcError_UNKNOWN), - } - } - defer hresp.Body.Close() - hrespBody, err := ioutil.ReadAll(hresp.Body) - if hresp.StatusCode != 200 { - return nil, &CallError{ - Detail: fmt.Sprintf("service bridge returned HTTP %d (%q)", hresp.StatusCode, hrespBody), - Code: int32(remotepb.RpcError_UNKNOWN), - } - } - if err != nil { - return nil, &CallError{ - Detail: fmt.Sprintf("service bridge response bad: %v", err), - Code: int32(remotepb.RpcError_UNKNOWN), - } - } - return hrespBody, nil -} - -func Call(ctx context.Context, service, method string, in, out proto.Message) error { - if ns := NamespaceFromContext(ctx); ns != "" { - if fn, ok := NamespaceMods[service]; ok { - fn(in, ns) - } - } - - if f, ctx, ok := callOverrideFromContext(ctx); ok { - return f(ctx, service, method, in, out) - } - - // Handle already-done contexts quickly. - select { - case <-ctx.Done(): - return ctx.Err() - default: - } - - c := fromContext(ctx) - - // Apply transaction modifications if we're in a transaction. - if t := transactionFromContext(ctx); t != nil { - if t.finished { - return errors.New("transaction aeContext has expired") - } - applyTransaction(in, &t.transaction) - } - - // Default RPC timeout is 60s. - timeout := 60 * time.Second - if deadline, ok := ctx.Deadline(); ok { - timeout = deadline.Sub(time.Now()) - } - - data, err := proto.Marshal(in) - if err != nil { - return err - } - - ticket := "" - if c != nil { - ticket = c.req.Header.Get(ticketHeader) - if dri := c.req.Header.Get(devRequestIdHeader); IsDevAppServer() && dri != "" { - ticket = dri - } - } - req := &remotepb.Request{ - ServiceName: &service, - Method: &method, - Request: data, - RequestId: &ticket, - } - hreqBody, err := proto.Marshal(req) - if err != nil { - return err - } - - hrespBody, err := post(ctx, hreqBody, timeout) - if err != nil { - return err - } - - res := &remotepb.Response{} - if err := proto.Unmarshal(hrespBody, res); err != nil { - return err - } - if res.RpcError != nil { - ce := &CallError{ - Detail: res.RpcError.GetDetail(), - Code: *res.RpcError.Code, - } - switch remotepb.RpcError_ErrorCode(ce.Code) { - case remotepb.RpcError_CANCELLED, remotepb.RpcError_DEADLINE_EXCEEDED: - ce.Timeout = true - } - return ce - } - if res.ApplicationError != nil { - return &APIError{ - Service: *req.ServiceName, - Detail: res.ApplicationError.GetDetail(), - Code: *res.ApplicationError.Code, - } - } - if res.Exception != nil || res.JavaException != nil { - // This shouldn't happen, but let's be defensive. - return &CallError{ - Detail: "service bridge returned exception", - Code: int32(remotepb.RpcError_UNKNOWN), - } - } - return proto.Unmarshal(res.Response, out) -} - -func (c *aeContext) Request() *http.Request { - return c.req -} - -func (c *aeContext) addLogLine(ll *logpb.UserAppLogLine) { - // Truncate long log lines. - // TODO(dsymonds): Check if this is still necessary. - const lim = 8 << 10 - if len(*ll.Message) > lim { - suffix := fmt.Sprintf("...(length %d)", len(*ll.Message)) - ll.Message = proto.String((*ll.Message)[:lim-len(suffix)] + suffix) - } - - c.pendingLogs.Lock() - c.pendingLogs.lines = append(c.pendingLogs.lines, ll) - c.pendingLogs.Unlock() -} - -var logLevelName = map[int64]string{ - 0: "DEBUG", - 1: "INFO", - 2: "WARNING", - 3: "ERROR", - 4: "CRITICAL", -} - -func logf(c *aeContext, level int64, format string, args ...interface{}) { - if c == nil { - panic("not an App Engine aeContext") - } - s := fmt.Sprintf(format, args...) - s = strings.TrimRight(s, "\n") // Remove any trailing newline characters. - if logToLogservice() { - c.addLogLine(&logpb.UserAppLogLine{ - TimestampUsec: proto.Int64(time.Now().UnixNano() / 1e3), - Level: &level, - Message: &s, - }) - } - // Log to stdout if not deployed - if !IsSecondGen() { - log.Print(logLevelName[level] + ": " + s) - } -} - -// flushLog attempts to flush any pending logs to the appserver. -// It should not be called concurrently. -func (c *aeContext) flushLog(force bool) (flushed bool) { - c.pendingLogs.Lock() - // Grab up to 30 MB. We can get away with up to 32 MB, but let's be cautious. - n, rem := 0, 30<<20 - for ; n < len(c.pendingLogs.lines); n++ { - ll := c.pendingLogs.lines[n] - // Each log line will require about 3 bytes of overhead. - nb := proto.Size(ll) + 3 - if nb > rem { - break - } - rem -= nb - } - lines := c.pendingLogs.lines[:n] - c.pendingLogs.lines = c.pendingLogs.lines[n:] - c.pendingLogs.Unlock() - - if len(lines) == 0 && !force { - // Nothing to flush. - return false - } - - rescueLogs := false - defer func() { - if rescueLogs { - c.pendingLogs.Lock() - c.pendingLogs.lines = append(lines, c.pendingLogs.lines...) - c.pendingLogs.Unlock() - } - }() - - buf, err := proto.Marshal(&logpb.UserAppLogGroup{ - LogLine: lines, - }) - if err != nil { - log.Printf("internal.flushLog: marshaling UserAppLogGroup: %v", err) - rescueLogs = true - return false - } - - req := &logpb.FlushRequest{ - Logs: buf, - } - res := &basepb.VoidProto{} - c.pendingLogs.Lock() - c.pendingLogs.flushes++ - c.pendingLogs.Unlock() - if err := Call(toContext(c), "logservice", "Flush", req, res); err != nil { - log.Printf("internal.flushLog: Flush RPC: %v", err) - rescueLogs = true - return false - } - return true -} - -const ( - // Log flushing parameters. - flushInterval = 1 * time.Second - forceFlushInterval = 60 * time.Second -) - -func (c *aeContext) logFlusher(stop <-chan int) { - lastFlush := time.Now() - tick := time.NewTicker(flushInterval) - for { - select { - case <-stop: - // Request finished. - tick.Stop() - return - case <-tick.C: - force := time.Now().Sub(lastFlush) > forceFlushInterval - if c.flushLog(force) { - lastFlush = time.Now() - } - } - } -} - -func ContextForTesting(req *http.Request) context.Context { - return toContext(&aeContext{req: req}) -} - -func logToLogservice() bool { - // TODO: replace logservice with json structured logs to $LOG_DIR/app.log.json - // where $LOG_DIR is /var/log in prod and some tmpdir in dev - return os.Getenv("LOG_TO_LOGSERVICE") != "0" -} diff --git a/vendor/google.golang.org/appengine/internal/api_classic.go b/vendor/google.golang.org/appengine/internal/api_classic.go deleted file mode 100644 index 87c33c798..000000000 --- a/vendor/google.golang.org/appengine/internal/api_classic.go +++ /dev/null @@ -1,170 +0,0 @@ -// Copyright 2015 Google Inc. All rights reserved. -// Use of this source code is governed by the Apache 2.0 -// license that can be found in the LICENSE file. - -//go:build appengine -// +build appengine - -package internal - -import ( - "context" - "errors" - "fmt" - "net/http" - "time" - - "appengine" - "appengine_internal" - basepb "appengine_internal/base" - - "github.com/golang/protobuf/proto" -) - -var contextKey = "holds an appengine.Context" - -// fromContext returns the App Engine context or nil if ctx is not -// derived from an App Engine context. -func fromContext(ctx context.Context) appengine.Context { - c, _ := ctx.Value(&contextKey).(appengine.Context) - return c -} - -// This is only for classic App Engine adapters. -func ClassicContextFromContext(ctx context.Context) (appengine.Context, error) { - c := fromContext(ctx) - if c == nil { - return nil, errNotAppEngineContext - } - return c, nil -} - -func withContext(parent context.Context, c appengine.Context) context.Context { - ctx := context.WithValue(parent, &contextKey, c) - - s := &basepb.StringProto{} - c.Call("__go__", "GetNamespace", &basepb.VoidProto{}, s, nil) - if ns := s.GetValue(); ns != "" { - ctx = NamespacedContext(ctx, ns) - } - - return ctx -} - -func IncomingHeaders(ctx context.Context) http.Header { - if c := fromContext(ctx); c != nil { - if req, ok := c.Request().(*http.Request); ok { - return req.Header - } - } - return nil -} - -func ReqContext(req *http.Request) context.Context { - return WithContext(context.Background(), req) -} - -func WithContext(parent context.Context, req *http.Request) context.Context { - c := appengine.NewContext(req) - return withContext(parent, c) -} - -type testingContext struct { - appengine.Context - - req *http.Request -} - -func (t *testingContext) FullyQualifiedAppID() string { return "dev~testcontext" } -func (t *testingContext) Call(service, method string, _, _ appengine_internal.ProtoMessage, _ *appengine_internal.CallOptions) error { - if service == "__go__" && method == "GetNamespace" { - return nil - } - return fmt.Errorf("testingContext: unsupported Call") -} -func (t *testingContext) Request() interface{} { return t.req } - -func ContextForTesting(req *http.Request) context.Context { - return withContext(context.Background(), &testingContext{req: req}) -} - -func Call(ctx context.Context, service, method string, in, out proto.Message) error { - if ns := NamespaceFromContext(ctx); ns != "" { - if fn, ok := NamespaceMods[service]; ok { - fn(in, ns) - } - } - - if f, ctx, ok := callOverrideFromContext(ctx); ok { - return f(ctx, service, method, in, out) - } - - // Handle already-done contexts quickly. - select { - case <-ctx.Done(): - return ctx.Err() - default: - } - - c := fromContext(ctx) - if c == nil { - // Give a good error message rather than a panic lower down. - return errNotAppEngineContext - } - - // Apply transaction modifications if we're in a transaction. - if t := transactionFromContext(ctx); t != nil { - if t.finished { - return errors.New("transaction context has expired") - } - applyTransaction(in, &t.transaction) - } - - var opts *appengine_internal.CallOptions - if d, ok := ctx.Deadline(); ok { - opts = &appengine_internal.CallOptions{ - Timeout: d.Sub(time.Now()), - } - } - - err := c.Call(service, method, in, out, opts) - switch v := err.(type) { - case *appengine_internal.APIError: - return &APIError{ - Service: v.Service, - Detail: v.Detail, - Code: v.Code, - } - case *appengine_internal.CallError: - return &CallError{ - Detail: v.Detail, - Code: v.Code, - Timeout: v.Timeout, - } - } - return err -} - -func Middleware(next http.Handler) http.Handler { - panic("Middleware called; this should be impossible") -} - -func logf(c appengine.Context, level int64, format string, args ...interface{}) { - var fn func(format string, args ...interface{}) - switch level { - case 0: - fn = c.Debugf - case 1: - fn = c.Infof - case 2: - fn = c.Warningf - case 3: - fn = c.Errorf - case 4: - fn = c.Criticalf - default: - // This shouldn't happen. - fn = c.Criticalf - } - fn(format, args...) -} diff --git a/vendor/google.golang.org/appengine/internal/api_common.go b/vendor/google.golang.org/appengine/internal/api_common.go deleted file mode 100644 index 5b95c13d9..000000000 --- a/vendor/google.golang.org/appengine/internal/api_common.go +++ /dev/null @@ -1,141 +0,0 @@ -// Copyright 2015 Google Inc. All rights reserved. -// Use of this source code is governed by the Apache 2.0 -// license that can be found in the LICENSE file. - -package internal - -import ( - "context" - "errors" - "os" - - "github.com/golang/protobuf/proto" -) - -type ctxKey string - -func (c ctxKey) String() string { - return "appengine context key: " + string(c) -} - -var errNotAppEngineContext = errors.New("not an App Engine context") - -type CallOverrideFunc func(ctx context.Context, service, method string, in, out proto.Message) error - -var callOverrideKey = "holds []CallOverrideFunc" - -func WithCallOverride(ctx context.Context, f CallOverrideFunc) context.Context { - // We avoid appending to any existing call override - // so we don't risk overwriting a popped stack below. - var cofs []CallOverrideFunc - if uf, ok := ctx.Value(&callOverrideKey).([]CallOverrideFunc); ok { - cofs = append(cofs, uf...) - } - cofs = append(cofs, f) - return context.WithValue(ctx, &callOverrideKey, cofs) -} - -func callOverrideFromContext(ctx context.Context) (CallOverrideFunc, context.Context, bool) { - cofs, _ := ctx.Value(&callOverrideKey).([]CallOverrideFunc) - if len(cofs) == 0 { - return nil, nil, false - } - // We found a list of overrides; grab the last, and reconstitute a - // context that will hide it. - f := cofs[len(cofs)-1] - ctx = context.WithValue(ctx, &callOverrideKey, cofs[:len(cofs)-1]) - return f, ctx, true -} - -type logOverrideFunc func(level int64, format string, args ...interface{}) - -var logOverrideKey = "holds a logOverrideFunc" - -func WithLogOverride(ctx context.Context, f logOverrideFunc) context.Context { - return context.WithValue(ctx, &logOverrideKey, f) -} - -var appIDOverrideKey = "holds a string, being the full app ID" - -func WithAppIDOverride(ctx context.Context, appID string) context.Context { - return context.WithValue(ctx, &appIDOverrideKey, appID) -} - -var apiHostOverrideKey = ctxKey("holds a string, being the alternate API_HOST") - -func withAPIHostOverride(ctx context.Context, apiHost string) context.Context { - return context.WithValue(ctx, apiHostOverrideKey, apiHost) -} - -var apiPortOverrideKey = ctxKey("holds a string, being the alternate API_PORT") - -func withAPIPortOverride(ctx context.Context, apiPort string) context.Context { - return context.WithValue(ctx, apiPortOverrideKey, apiPort) -} - -var namespaceKey = "holds the namespace string" - -func withNamespace(ctx context.Context, ns string) context.Context { - return context.WithValue(ctx, &namespaceKey, ns) -} - -func NamespaceFromContext(ctx context.Context) string { - // If there's no namespace, return the empty string. - ns, _ := ctx.Value(&namespaceKey).(string) - return ns -} - -// FullyQualifiedAppID returns the fully-qualified application ID. -// This may contain a partition prefix (e.g. "s~" for High Replication apps), -// or a domain prefix (e.g. "example.com:"). -func FullyQualifiedAppID(ctx context.Context) string { - if id, ok := ctx.Value(&appIDOverrideKey).(string); ok { - return id - } - return fullyQualifiedAppID(ctx) -} - -func Logf(ctx context.Context, level int64, format string, args ...interface{}) { - if f, ok := ctx.Value(&logOverrideKey).(logOverrideFunc); ok { - f(level, format, args...) - return - } - c := fromContext(ctx) - if c == nil { - panic(errNotAppEngineContext) - } - logf(c, level, format, args...) -} - -// NamespacedContext wraps a Context to support namespaces. -func NamespacedContext(ctx context.Context, namespace string) context.Context { - return withNamespace(ctx, namespace) -} - -// SetTestEnv sets the env variables for testing background ticket in Flex. -func SetTestEnv() func() { - var environ = []struct { - key, value string - }{ - {"GAE_LONG_APP_ID", "my-app-id"}, - {"GAE_MINOR_VERSION", "067924799508853122"}, - {"GAE_MODULE_INSTANCE", "0"}, - {"GAE_MODULE_NAME", "default"}, - {"GAE_MODULE_VERSION", "20150612t184001"}, - } - - for _, v := range environ { - old := os.Getenv(v.key) - os.Setenv(v.key, v.value) - v.value = old - } - return func() { // Restore old environment after the test completes. - for _, v := range environ { - if v.value == "" { - os.Unsetenv(v.key) - continue - } - os.Setenv(v.key, v.value) - } - } -} diff --git a/vendor/google.golang.org/appengine/internal/app_id.go b/vendor/google.golang.org/appengine/internal/app_id.go deleted file mode 100644 index 11df8c07b..000000000 --- a/vendor/google.golang.org/appengine/internal/app_id.go +++ /dev/null @@ -1,28 +0,0 @@ -// Copyright 2011 Google Inc. All rights reserved. -// Use of this source code is governed by the Apache 2.0 -// license that can be found in the LICENSE file. - -package internal - -import ( - "strings" -) - -func parseFullAppID(appid string) (partition, domain, displayID string) { - if i := strings.Index(appid, "~"); i != -1 { - partition, appid = appid[:i], appid[i+1:] - } - if i := strings.Index(appid, ":"); i != -1 { - domain, appid = appid[:i], appid[i+1:] - } - return partition, domain, appid -} - -// appID returns "appid" or "domain.com:appid". -func appID(fullAppID string) string { - _, dom, dis := parseFullAppID(fullAppID) - if dom != "" { - return dom + ":" + dis - } - return dis -} diff --git a/vendor/google.golang.org/appengine/internal/base/api_base.pb.go b/vendor/google.golang.org/appengine/internal/base/api_base.pb.go deleted file mode 100644 index db4777e68..000000000 --- a/vendor/google.golang.org/appengine/internal/base/api_base.pb.go +++ /dev/null @@ -1,308 +0,0 @@ -// Code generated by protoc-gen-go. DO NOT EDIT. -// source: google.golang.org/appengine/internal/base/api_base.proto - -package base - -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 StringProto struct { - Value *string `protobuf:"bytes,1,req,name=value" json:"value,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *StringProto) Reset() { *m = StringProto{} } -func (m *StringProto) String() string { return proto.CompactTextString(m) } -func (*StringProto) ProtoMessage() {} -func (*StringProto) Descriptor() ([]byte, []int) { - return fileDescriptor_api_base_9d49f8792e0c1140, []int{0} -} -func (m *StringProto) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_StringProto.Unmarshal(m, b) -} -func (m *StringProto) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_StringProto.Marshal(b, m, deterministic) -} -func (dst *StringProto) XXX_Merge(src proto.Message) { - xxx_messageInfo_StringProto.Merge(dst, src) -} -func (m *StringProto) XXX_Size() int { - return xxx_messageInfo_StringProto.Size(m) -} -func (m *StringProto) XXX_DiscardUnknown() { - xxx_messageInfo_StringProto.DiscardUnknown(m) -} - -var xxx_messageInfo_StringProto proto.InternalMessageInfo - -func (m *StringProto) GetValue() string { - if m != nil && m.Value != nil { - return *m.Value - } - return "" -} - -type Integer32Proto struct { - Value *int32 `protobuf:"varint,1,req,name=value" json:"value,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *Integer32Proto) Reset() { *m = Integer32Proto{} } -func (m *Integer32Proto) String() string { return proto.CompactTextString(m) } -func (*Integer32Proto) ProtoMessage() {} -func (*Integer32Proto) Descriptor() ([]byte, []int) { - return fileDescriptor_api_base_9d49f8792e0c1140, []int{1} -} -func (m *Integer32Proto) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_Integer32Proto.Unmarshal(m, b) -} -func (m *Integer32Proto) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_Integer32Proto.Marshal(b, m, deterministic) -} -func (dst *Integer32Proto) XXX_Merge(src proto.Message) { - xxx_messageInfo_Integer32Proto.Merge(dst, src) -} -func (m *Integer32Proto) XXX_Size() int { - return xxx_messageInfo_Integer32Proto.Size(m) -} -func (m *Integer32Proto) XXX_DiscardUnknown() { - xxx_messageInfo_Integer32Proto.DiscardUnknown(m) -} - -var xxx_messageInfo_Integer32Proto proto.InternalMessageInfo - -func (m *Integer32Proto) GetValue() int32 { - if m != nil && m.Value != nil { - return *m.Value - } - return 0 -} - -type Integer64Proto struct { - Value *int64 `protobuf:"varint,1,req,name=value" json:"value,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *Integer64Proto) Reset() { *m = Integer64Proto{} } -func (m *Integer64Proto) String() string { return proto.CompactTextString(m) } -func (*Integer64Proto) ProtoMessage() {} -func (*Integer64Proto) Descriptor() ([]byte, []int) { - return fileDescriptor_api_base_9d49f8792e0c1140, []int{2} -} -func (m *Integer64Proto) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_Integer64Proto.Unmarshal(m, b) -} -func (m *Integer64Proto) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_Integer64Proto.Marshal(b, m, deterministic) -} -func (dst *Integer64Proto) XXX_Merge(src proto.Message) { - xxx_messageInfo_Integer64Proto.Merge(dst, src) -} -func (m *Integer64Proto) XXX_Size() int { - return xxx_messageInfo_Integer64Proto.Size(m) -} -func (m *Integer64Proto) XXX_DiscardUnknown() { - xxx_messageInfo_Integer64Proto.DiscardUnknown(m) -} - -var xxx_messageInfo_Integer64Proto proto.InternalMessageInfo - -func (m *Integer64Proto) GetValue() int64 { - if m != nil && m.Value != nil { - return *m.Value - } - return 0 -} - -type BoolProto struct { - Value *bool `protobuf:"varint,1,req,name=value" json:"value,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *BoolProto) Reset() { *m = BoolProto{} } -func (m *BoolProto) String() string { return proto.CompactTextString(m) } -func (*BoolProto) ProtoMessage() {} -func (*BoolProto) Descriptor() ([]byte, []int) { - return fileDescriptor_api_base_9d49f8792e0c1140, []int{3} -} -func (m *BoolProto) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_BoolProto.Unmarshal(m, b) -} -func (m *BoolProto) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_BoolProto.Marshal(b, m, deterministic) -} -func (dst *BoolProto) XXX_Merge(src proto.Message) { - xxx_messageInfo_BoolProto.Merge(dst, src) -} -func (m *BoolProto) XXX_Size() int { - return xxx_messageInfo_BoolProto.Size(m) -} -func (m *BoolProto) XXX_DiscardUnknown() { - xxx_messageInfo_BoolProto.DiscardUnknown(m) -} - -var xxx_messageInfo_BoolProto proto.InternalMessageInfo - -func (m *BoolProto) GetValue() bool { - if m != nil && m.Value != nil { - return *m.Value - } - return false -} - -type DoubleProto struct { - Value *float64 `protobuf:"fixed64,1,req,name=value" json:"value,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *DoubleProto) Reset() { *m = DoubleProto{} } -func (m *DoubleProto) String() string { return proto.CompactTextString(m) } -func (*DoubleProto) ProtoMessage() {} -func (*DoubleProto) Descriptor() ([]byte, []int) { - return fileDescriptor_api_base_9d49f8792e0c1140, []int{4} -} -func (m *DoubleProto) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_DoubleProto.Unmarshal(m, b) -} -func (m *DoubleProto) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_DoubleProto.Marshal(b, m, deterministic) -} -func (dst *DoubleProto) XXX_Merge(src proto.Message) { - xxx_messageInfo_DoubleProto.Merge(dst, src) -} -func (m *DoubleProto) XXX_Size() int { - return xxx_messageInfo_DoubleProto.Size(m) -} -func (m *DoubleProto) XXX_DiscardUnknown() { - xxx_messageInfo_DoubleProto.DiscardUnknown(m) -} - -var xxx_messageInfo_DoubleProto proto.InternalMessageInfo - -func (m *DoubleProto) GetValue() float64 { - if m != nil && m.Value != nil { - return *m.Value - } - return 0 -} - -type BytesProto struct { - Value []byte `protobuf:"bytes,1,req,name=value" json:"value,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *BytesProto) Reset() { *m = BytesProto{} } -func (m *BytesProto) String() string { return proto.CompactTextString(m) } -func (*BytesProto) ProtoMessage() {} -func (*BytesProto) Descriptor() ([]byte, []int) { - return fileDescriptor_api_base_9d49f8792e0c1140, []int{5} -} -func (m *BytesProto) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_BytesProto.Unmarshal(m, b) -} -func (m *BytesProto) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_BytesProto.Marshal(b, m, deterministic) -} -func (dst *BytesProto) XXX_Merge(src proto.Message) { - xxx_messageInfo_BytesProto.Merge(dst, src) -} -func (m *BytesProto) XXX_Size() int { - return xxx_messageInfo_BytesProto.Size(m) -} -func (m *BytesProto) XXX_DiscardUnknown() { - xxx_messageInfo_BytesProto.DiscardUnknown(m) -} - -var xxx_messageInfo_BytesProto proto.InternalMessageInfo - -func (m *BytesProto) GetValue() []byte { - if m != nil { - return m.Value - } - return nil -} - -type VoidProto struct { - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *VoidProto) Reset() { *m = VoidProto{} } -func (m *VoidProto) String() string { return proto.CompactTextString(m) } -func (*VoidProto) ProtoMessage() {} -func (*VoidProto) Descriptor() ([]byte, []int) { - return fileDescriptor_api_base_9d49f8792e0c1140, []int{6} -} -func (m *VoidProto) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_VoidProto.Unmarshal(m, b) -} -func (m *VoidProto) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_VoidProto.Marshal(b, m, deterministic) -} -func (dst *VoidProto) XXX_Merge(src proto.Message) { - xxx_messageInfo_VoidProto.Merge(dst, src) -} -func (m *VoidProto) XXX_Size() int { - return xxx_messageInfo_VoidProto.Size(m) -} -func (m *VoidProto) XXX_DiscardUnknown() { - xxx_messageInfo_VoidProto.DiscardUnknown(m) -} - -var xxx_messageInfo_VoidProto proto.InternalMessageInfo - -func init() { - proto.RegisterType((*StringProto)(nil), "appengine.base.StringProto") - proto.RegisterType((*Integer32Proto)(nil), "appengine.base.Integer32Proto") - proto.RegisterType((*Integer64Proto)(nil), "appengine.base.Integer64Proto") - proto.RegisterType((*BoolProto)(nil), "appengine.base.BoolProto") - proto.RegisterType((*DoubleProto)(nil), "appengine.base.DoubleProto") - proto.RegisterType((*BytesProto)(nil), "appengine.base.BytesProto") - proto.RegisterType((*VoidProto)(nil), "appengine.base.VoidProto") -} - -func init() { - proto.RegisterFile("google.golang.org/appengine/internal/base/api_base.proto", fileDescriptor_api_base_9d49f8792e0c1140) -} - -var fileDescriptor_api_base_9d49f8792e0c1140 = []byte{ - // 199 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x6c, 0xcf, 0x3f, 0x4b, 0xc6, 0x30, - 0x10, 0x06, 0x70, 0x5a, 0xad, 0xb4, 0x57, 0xe9, 0x20, 0x0e, 0x1d, 0xb5, 0x05, 0x71, 0x4a, 0x40, - 0x45, 0x9c, 0x83, 0x8b, 0x9b, 0x28, 0x38, 0xb8, 0x48, 0x8a, 0xc7, 0x11, 0x08, 0xb9, 0x90, 0xa6, - 0x82, 0xdf, 0x5e, 0xda, 0xd2, 0xfa, 0xc2, 0x9b, 0xed, 0xfe, 0xfc, 0xe0, 0xe1, 0x81, 0x27, 0x62, - 0x26, 0x8b, 0x82, 0xd8, 0x6a, 0x47, 0x82, 0x03, 0x49, 0xed, 0x3d, 0x3a, 0x32, 0x0e, 0xa5, 0x71, - 0x11, 0x83, 0xd3, 0x56, 0x0e, 0x7a, 0x44, 0xa9, 0xbd, 0xf9, 0x9a, 0x07, 0xe1, 0x03, 0x47, 0xbe, - 0x68, 0x76, 0x27, 0xe6, 0x6b, 0xd7, 0x43, 0xfd, 0x1e, 0x83, 0x71, 0xf4, 0xba, 0xbc, 0x2f, 0xa1, - 0xf8, 0xd1, 0x76, 0xc2, 0x36, 0xbb, 0xca, 0x6f, 0xab, 0xb7, 0x75, 0xe9, 0x6e, 0xa0, 0x79, 0x71, - 0x11, 0x09, 0xc3, 0xfd, 0x5d, 0xc2, 0x15, 0xc7, 0xee, 0xf1, 0x21, 0xe1, 0x4e, 0x36, 0x77, 0x0d, - 0x95, 0x62, 0xb6, 0x09, 0x52, 0x6e, 0xa4, 0x87, 0xfa, 0x99, 0xa7, 0xc1, 0x62, 0x02, 0x65, 0xff, - 0x79, 0xa0, 0x7e, 0x23, 0x8e, 0xab, 0x69, 0x0f, 0xcd, 0xb9, 0xca, 0xcb, 0xdd, 0xd5, 0x50, 0x7d, - 0xb0, 0xf9, 0x5e, 0x98, 0x3a, 0xfb, 0x3c, 0x9d, 0x9b, 0xff, 0x05, 0x00, 0x00, 0xff, 0xff, 0xba, - 0x37, 0x25, 0xea, 0x44, 0x01, 0x00, 0x00, -} diff --git a/vendor/google.golang.org/appengine/internal/base/api_base.proto b/vendor/google.golang.org/appengine/internal/base/api_base.proto deleted file mode 100644 index 56cd7a3ca..000000000 --- a/vendor/google.golang.org/appengine/internal/base/api_base.proto +++ /dev/null @@ -1,33 +0,0 @@ -// Built-in base types for API calls. Primarily useful as return types. - -syntax = "proto2"; -option go_package = "base"; - -package appengine.base; - -message StringProto { - required string value = 1; -} - -message Integer32Proto { - required int32 value = 1; -} - -message Integer64Proto { - required int64 value = 1; -} - -message BoolProto { - required bool value = 1; -} - -message DoubleProto { - required double value = 1; -} - -message BytesProto { - required bytes value = 1 [ctype=CORD]; -} - -message VoidProto { -} diff --git a/vendor/google.golang.org/appengine/internal/datastore/datastore_v3.pb.go b/vendor/google.golang.org/appengine/internal/datastore/datastore_v3.pb.go deleted file mode 100644 index 2fb748289..000000000 --- a/vendor/google.golang.org/appengine/internal/datastore/datastore_v3.pb.go +++ /dev/null @@ -1,4367 +0,0 @@ -// Code generated by protoc-gen-go. DO NOT EDIT. -// source: google.golang.org/appengine/internal/datastore/datastore_v3.proto - -package datastore - -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 Property_Meaning int32 - -const ( - Property_NO_MEANING Property_Meaning = 0 - Property_BLOB Property_Meaning = 14 - Property_TEXT Property_Meaning = 15 - Property_BYTESTRING Property_Meaning = 16 - Property_ATOM_CATEGORY Property_Meaning = 1 - Property_ATOM_LINK Property_Meaning = 2 - Property_ATOM_TITLE Property_Meaning = 3 - Property_ATOM_CONTENT Property_Meaning = 4 - Property_ATOM_SUMMARY Property_Meaning = 5 - Property_ATOM_AUTHOR Property_Meaning = 6 - Property_GD_WHEN Property_Meaning = 7 - Property_GD_EMAIL Property_Meaning = 8 - Property_GEORSS_POINT Property_Meaning = 9 - Property_GD_IM Property_Meaning = 10 - Property_GD_PHONENUMBER Property_Meaning = 11 - Property_GD_POSTALADDRESS Property_Meaning = 12 - Property_GD_RATING Property_Meaning = 13 - Property_BLOBKEY Property_Meaning = 17 - Property_ENTITY_PROTO Property_Meaning = 19 - Property_INDEX_VALUE Property_Meaning = 18 -) - -var Property_Meaning_name = map[int32]string{ - 0: "NO_MEANING", - 14: "BLOB", - 15: "TEXT", - 16: "BYTESTRING", - 1: "ATOM_CATEGORY", - 2: "ATOM_LINK", - 3: "ATOM_TITLE", - 4: "ATOM_CONTENT", - 5: "ATOM_SUMMARY", - 6: "ATOM_AUTHOR", - 7: "GD_WHEN", - 8: "GD_EMAIL", - 9: "GEORSS_POINT", - 10: "GD_IM", - 11: "GD_PHONENUMBER", - 12: "GD_POSTALADDRESS", - 13: "GD_RATING", - 17: "BLOBKEY", - 19: "ENTITY_PROTO", - 18: "INDEX_VALUE", -} -var Property_Meaning_value = map[string]int32{ - "NO_MEANING": 0, - "BLOB": 14, - "TEXT": 15, - "BYTESTRING": 16, - "ATOM_CATEGORY": 1, - "ATOM_LINK": 2, - "ATOM_TITLE": 3, - "ATOM_CONTENT": 4, - "ATOM_SUMMARY": 5, - "ATOM_AUTHOR": 6, - "GD_WHEN": 7, - "GD_EMAIL": 8, - "GEORSS_POINT": 9, - "GD_IM": 10, - "GD_PHONENUMBER": 11, - "GD_POSTALADDRESS": 12, - "GD_RATING": 13, - "BLOBKEY": 17, - "ENTITY_PROTO": 19, - "INDEX_VALUE": 18, -} - -func (x Property_Meaning) Enum() *Property_Meaning { - p := new(Property_Meaning) - *p = x - return p -} -func (x Property_Meaning) String() string { - return proto.EnumName(Property_Meaning_name, int32(x)) -} -func (x *Property_Meaning) UnmarshalJSON(data []byte) error { - value, err := proto.UnmarshalJSONEnum(Property_Meaning_value, data, "Property_Meaning") - if err != nil { - return err - } - *x = Property_Meaning(value) - return nil -} -func (Property_Meaning) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{2, 0} -} - -type Property_FtsTokenizationOption int32 - -const ( - Property_HTML Property_FtsTokenizationOption = 1 - Property_ATOM Property_FtsTokenizationOption = 2 -) - -var Property_FtsTokenizationOption_name = map[int32]string{ - 1: "HTML", - 2: "ATOM", -} -var Property_FtsTokenizationOption_value = map[string]int32{ - "HTML": 1, - "ATOM": 2, -} - -func (x Property_FtsTokenizationOption) Enum() *Property_FtsTokenizationOption { - p := new(Property_FtsTokenizationOption) - *p = x - return p -} -func (x Property_FtsTokenizationOption) String() string { - return proto.EnumName(Property_FtsTokenizationOption_name, int32(x)) -} -func (x *Property_FtsTokenizationOption) UnmarshalJSON(data []byte) error { - value, err := proto.UnmarshalJSONEnum(Property_FtsTokenizationOption_value, data, "Property_FtsTokenizationOption") - if err != nil { - return err - } - *x = Property_FtsTokenizationOption(value) - return nil -} -func (Property_FtsTokenizationOption) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{2, 1} -} - -type EntityProto_Kind int32 - -const ( - EntityProto_GD_CONTACT EntityProto_Kind = 1 - EntityProto_GD_EVENT EntityProto_Kind = 2 - EntityProto_GD_MESSAGE EntityProto_Kind = 3 -) - -var EntityProto_Kind_name = map[int32]string{ - 1: "GD_CONTACT", - 2: "GD_EVENT", - 3: "GD_MESSAGE", -} -var EntityProto_Kind_value = map[string]int32{ - "GD_CONTACT": 1, - "GD_EVENT": 2, - "GD_MESSAGE": 3, -} - -func (x EntityProto_Kind) Enum() *EntityProto_Kind { - p := new(EntityProto_Kind) - *p = x - return p -} -func (x EntityProto_Kind) String() string { - return proto.EnumName(EntityProto_Kind_name, int32(x)) -} -func (x *EntityProto_Kind) UnmarshalJSON(data []byte) error { - value, err := proto.UnmarshalJSONEnum(EntityProto_Kind_value, data, "EntityProto_Kind") - if err != nil { - return err - } - *x = EntityProto_Kind(value) - return nil -} -func (EntityProto_Kind) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{6, 0} -} - -type Index_Property_Direction int32 - -const ( - Index_Property_ASCENDING Index_Property_Direction = 1 - Index_Property_DESCENDING Index_Property_Direction = 2 -) - -var Index_Property_Direction_name = map[int32]string{ - 1: "ASCENDING", - 2: "DESCENDING", -} -var Index_Property_Direction_value = map[string]int32{ - "ASCENDING": 1, - "DESCENDING": 2, -} - -func (x Index_Property_Direction) Enum() *Index_Property_Direction { - p := new(Index_Property_Direction) - *p = x - return p -} -func (x Index_Property_Direction) String() string { - return proto.EnumName(Index_Property_Direction_name, int32(x)) -} -func (x *Index_Property_Direction) UnmarshalJSON(data []byte) error { - value, err := proto.UnmarshalJSONEnum(Index_Property_Direction_value, data, "Index_Property_Direction") - if err != nil { - return err - } - *x = Index_Property_Direction(value) - return nil -} -func (Index_Property_Direction) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{8, 0, 0} -} - -type CompositeIndex_State int32 - -const ( - CompositeIndex_WRITE_ONLY CompositeIndex_State = 1 - CompositeIndex_READ_WRITE CompositeIndex_State = 2 - CompositeIndex_DELETED CompositeIndex_State = 3 - CompositeIndex_ERROR CompositeIndex_State = 4 -) - -var CompositeIndex_State_name = map[int32]string{ - 1: "WRITE_ONLY", - 2: "READ_WRITE", - 3: "DELETED", - 4: "ERROR", -} -var CompositeIndex_State_value = map[string]int32{ - "WRITE_ONLY": 1, - "READ_WRITE": 2, - "DELETED": 3, - "ERROR": 4, -} - -func (x CompositeIndex_State) Enum() *CompositeIndex_State { - p := new(CompositeIndex_State) - *p = x - return p -} -func (x CompositeIndex_State) String() string { - return proto.EnumName(CompositeIndex_State_name, int32(x)) -} -func (x *CompositeIndex_State) UnmarshalJSON(data []byte) error { - value, err := proto.UnmarshalJSONEnum(CompositeIndex_State_value, data, "CompositeIndex_State") - if err != nil { - return err - } - *x = CompositeIndex_State(value) - return nil -} -func (CompositeIndex_State) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{9, 0} -} - -type Snapshot_Status int32 - -const ( - Snapshot_INACTIVE Snapshot_Status = 0 - Snapshot_ACTIVE Snapshot_Status = 1 -) - -var Snapshot_Status_name = map[int32]string{ - 0: "INACTIVE", - 1: "ACTIVE", -} -var Snapshot_Status_value = map[string]int32{ - "INACTIVE": 0, - "ACTIVE": 1, -} - -func (x Snapshot_Status) Enum() *Snapshot_Status { - p := new(Snapshot_Status) - *p = x - return p -} -func (x Snapshot_Status) String() string { - return proto.EnumName(Snapshot_Status_name, int32(x)) -} -func (x *Snapshot_Status) UnmarshalJSON(data []byte) error { - value, err := proto.UnmarshalJSONEnum(Snapshot_Status_value, data, "Snapshot_Status") - if err != nil { - return err - } - *x = Snapshot_Status(value) - return nil -} -func (Snapshot_Status) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{12, 0} -} - -type Query_Hint int32 - -const ( - Query_ORDER_FIRST Query_Hint = 1 - Query_ANCESTOR_FIRST Query_Hint = 2 - Query_FILTER_FIRST Query_Hint = 3 -) - -var Query_Hint_name = map[int32]string{ - 1: "ORDER_FIRST", - 2: "ANCESTOR_FIRST", - 3: "FILTER_FIRST", -} -var Query_Hint_value = map[string]int32{ - "ORDER_FIRST": 1, - "ANCESTOR_FIRST": 2, - "FILTER_FIRST": 3, -} - -func (x Query_Hint) Enum() *Query_Hint { - p := new(Query_Hint) - *p = x - return p -} -func (x Query_Hint) String() string { - return proto.EnumName(Query_Hint_name, int32(x)) -} -func (x *Query_Hint) UnmarshalJSON(data []byte) error { - value, err := proto.UnmarshalJSONEnum(Query_Hint_value, data, "Query_Hint") - if err != nil { - return err - } - *x = Query_Hint(value) - return nil -} -func (Query_Hint) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{15, 0} -} - -type Query_Filter_Operator int32 - -const ( - Query_Filter_LESS_THAN Query_Filter_Operator = 1 - Query_Filter_LESS_THAN_OR_EQUAL Query_Filter_Operator = 2 - Query_Filter_GREATER_THAN Query_Filter_Operator = 3 - Query_Filter_GREATER_THAN_OR_EQUAL Query_Filter_Operator = 4 - Query_Filter_EQUAL Query_Filter_Operator = 5 - Query_Filter_IN Query_Filter_Operator = 6 - Query_Filter_EXISTS Query_Filter_Operator = 7 -) - -var Query_Filter_Operator_name = map[int32]string{ - 1: "LESS_THAN", - 2: "LESS_THAN_OR_EQUAL", - 3: "GREATER_THAN", - 4: "GREATER_THAN_OR_EQUAL", - 5: "EQUAL", - 6: "IN", - 7: "EXISTS", -} -var Query_Filter_Operator_value = map[string]int32{ - "LESS_THAN": 1, - "LESS_THAN_OR_EQUAL": 2, - "GREATER_THAN": 3, - "GREATER_THAN_OR_EQUAL": 4, - "EQUAL": 5, - "IN": 6, - "EXISTS": 7, -} - -func (x Query_Filter_Operator) Enum() *Query_Filter_Operator { - p := new(Query_Filter_Operator) - *p = x - return p -} -func (x Query_Filter_Operator) String() string { - return proto.EnumName(Query_Filter_Operator_name, int32(x)) -} -func (x *Query_Filter_Operator) UnmarshalJSON(data []byte) error { - value, err := proto.UnmarshalJSONEnum(Query_Filter_Operator_value, data, "Query_Filter_Operator") - if err != nil { - return err - } - *x = Query_Filter_Operator(value) - return nil -} -func (Query_Filter_Operator) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{15, 0, 0} -} - -type Query_Order_Direction int32 - -const ( - Query_Order_ASCENDING Query_Order_Direction = 1 - Query_Order_DESCENDING Query_Order_Direction = 2 -) - -var Query_Order_Direction_name = map[int32]string{ - 1: "ASCENDING", - 2: "DESCENDING", -} -var Query_Order_Direction_value = map[string]int32{ - "ASCENDING": 1, - "DESCENDING": 2, -} - -func (x Query_Order_Direction) Enum() *Query_Order_Direction { - p := new(Query_Order_Direction) - *p = x - return p -} -func (x Query_Order_Direction) String() string { - return proto.EnumName(Query_Order_Direction_name, int32(x)) -} -func (x *Query_Order_Direction) UnmarshalJSON(data []byte) error { - value, err := proto.UnmarshalJSONEnum(Query_Order_Direction_value, data, "Query_Order_Direction") - if err != nil { - return err - } - *x = Query_Order_Direction(value) - return nil -} -func (Query_Order_Direction) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{15, 1, 0} -} - -type Error_ErrorCode int32 - -const ( - Error_BAD_REQUEST Error_ErrorCode = 1 - Error_CONCURRENT_TRANSACTION Error_ErrorCode = 2 - Error_INTERNAL_ERROR Error_ErrorCode = 3 - Error_NEED_INDEX Error_ErrorCode = 4 - Error_TIMEOUT Error_ErrorCode = 5 - Error_PERMISSION_DENIED Error_ErrorCode = 6 - Error_BIGTABLE_ERROR Error_ErrorCode = 7 - Error_COMMITTED_BUT_STILL_APPLYING Error_ErrorCode = 8 - Error_CAPABILITY_DISABLED Error_ErrorCode = 9 - Error_TRY_ALTERNATE_BACKEND Error_ErrorCode = 10 - Error_SAFE_TIME_TOO_OLD Error_ErrorCode = 11 -) - -var Error_ErrorCode_name = map[int32]string{ - 1: "BAD_REQUEST", - 2: "CONCURRENT_TRANSACTION", - 3: "INTERNAL_ERROR", - 4: "NEED_INDEX", - 5: "TIMEOUT", - 6: "PERMISSION_DENIED", - 7: "BIGTABLE_ERROR", - 8: "COMMITTED_BUT_STILL_APPLYING", - 9: "CAPABILITY_DISABLED", - 10: "TRY_ALTERNATE_BACKEND", - 11: "SAFE_TIME_TOO_OLD", -} -var Error_ErrorCode_value = map[string]int32{ - "BAD_REQUEST": 1, - "CONCURRENT_TRANSACTION": 2, - "INTERNAL_ERROR": 3, - "NEED_INDEX": 4, - "TIMEOUT": 5, - "PERMISSION_DENIED": 6, - "BIGTABLE_ERROR": 7, - "COMMITTED_BUT_STILL_APPLYING": 8, - "CAPABILITY_DISABLED": 9, - "TRY_ALTERNATE_BACKEND": 10, - "SAFE_TIME_TOO_OLD": 11, -} - -func (x Error_ErrorCode) Enum() *Error_ErrorCode { - p := new(Error_ErrorCode) - *p = x - return p -} -func (x Error_ErrorCode) String() string { - return proto.EnumName(Error_ErrorCode_name, int32(x)) -} -func (x *Error_ErrorCode) UnmarshalJSON(data []byte) error { - value, err := proto.UnmarshalJSONEnum(Error_ErrorCode_value, data, "Error_ErrorCode") - if err != nil { - return err - } - *x = Error_ErrorCode(value) - return nil -} -func (Error_ErrorCode) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{19, 0} -} - -type PutRequest_AutoIdPolicy int32 - -const ( - PutRequest_CURRENT PutRequest_AutoIdPolicy = 0 - PutRequest_SEQUENTIAL PutRequest_AutoIdPolicy = 1 -) - -var PutRequest_AutoIdPolicy_name = map[int32]string{ - 0: "CURRENT", - 1: "SEQUENTIAL", -} -var PutRequest_AutoIdPolicy_value = map[string]int32{ - "CURRENT": 0, - "SEQUENTIAL": 1, -} - -func (x PutRequest_AutoIdPolicy) Enum() *PutRequest_AutoIdPolicy { - p := new(PutRequest_AutoIdPolicy) - *p = x - return p -} -func (x PutRequest_AutoIdPolicy) String() string { - return proto.EnumName(PutRequest_AutoIdPolicy_name, int32(x)) -} -func (x *PutRequest_AutoIdPolicy) UnmarshalJSON(data []byte) error { - value, err := proto.UnmarshalJSONEnum(PutRequest_AutoIdPolicy_value, data, "PutRequest_AutoIdPolicy") - if err != nil { - return err - } - *x = PutRequest_AutoIdPolicy(value) - return nil -} -func (PutRequest_AutoIdPolicy) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{23, 0} -} - -type BeginTransactionRequest_TransactionMode int32 - -const ( - BeginTransactionRequest_UNKNOWN BeginTransactionRequest_TransactionMode = 0 - BeginTransactionRequest_READ_ONLY BeginTransactionRequest_TransactionMode = 1 - BeginTransactionRequest_READ_WRITE BeginTransactionRequest_TransactionMode = 2 -) - -var BeginTransactionRequest_TransactionMode_name = map[int32]string{ - 0: "UNKNOWN", - 1: "READ_ONLY", - 2: "READ_WRITE", -} -var BeginTransactionRequest_TransactionMode_value = map[string]int32{ - "UNKNOWN": 0, - "READ_ONLY": 1, - "READ_WRITE": 2, -} - -func (x BeginTransactionRequest_TransactionMode) Enum() *BeginTransactionRequest_TransactionMode { - p := new(BeginTransactionRequest_TransactionMode) - *p = x - return p -} -func (x BeginTransactionRequest_TransactionMode) String() string { - return proto.EnumName(BeginTransactionRequest_TransactionMode_name, int32(x)) -} -func (x *BeginTransactionRequest_TransactionMode) UnmarshalJSON(data []byte) error { - value, err := proto.UnmarshalJSONEnum(BeginTransactionRequest_TransactionMode_value, data, "BeginTransactionRequest_TransactionMode") - if err != nil { - return err - } - *x = BeginTransactionRequest_TransactionMode(value) - return nil -} -func (BeginTransactionRequest_TransactionMode) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{36, 0} -} - -type Action struct { - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *Action) Reset() { *m = Action{} } -func (m *Action) String() string { return proto.CompactTextString(m) } -func (*Action) ProtoMessage() {} -func (*Action) Descriptor() ([]byte, []int) { - return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{0} -} -func (m *Action) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_Action.Unmarshal(m, b) -} -func (m *Action) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_Action.Marshal(b, m, deterministic) -} -func (dst *Action) XXX_Merge(src proto.Message) { - xxx_messageInfo_Action.Merge(dst, src) -} -func (m *Action) XXX_Size() int { - return xxx_messageInfo_Action.Size(m) -} -func (m *Action) XXX_DiscardUnknown() { - xxx_messageInfo_Action.DiscardUnknown(m) -} - -var xxx_messageInfo_Action proto.InternalMessageInfo - -type PropertyValue struct { - Int64Value *int64 `protobuf:"varint,1,opt,name=int64Value" json:"int64Value,omitempty"` - BooleanValue *bool `protobuf:"varint,2,opt,name=booleanValue" json:"booleanValue,omitempty"` - StringValue *string `protobuf:"bytes,3,opt,name=stringValue" json:"stringValue,omitempty"` - DoubleValue *float64 `protobuf:"fixed64,4,opt,name=doubleValue" json:"doubleValue,omitempty"` - Pointvalue *PropertyValue_PointValue `protobuf:"group,5,opt,name=PointValue,json=pointvalue" json:"pointvalue,omitempty"` - Uservalue *PropertyValue_UserValue `protobuf:"group,8,opt,name=UserValue,json=uservalue" json:"uservalue,omitempty"` - Referencevalue *PropertyValue_ReferenceValue `protobuf:"group,12,opt,name=ReferenceValue,json=referencevalue" json:"referencevalue,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *PropertyValue) Reset() { *m = PropertyValue{} } -func (m *PropertyValue) String() string { return proto.CompactTextString(m) } -func (*PropertyValue) ProtoMessage() {} -func (*PropertyValue) Descriptor() ([]byte, []int) { - return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{1} -} -func (m *PropertyValue) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_PropertyValue.Unmarshal(m, b) -} -func (m *PropertyValue) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_PropertyValue.Marshal(b, m, deterministic) -} -func (dst *PropertyValue) XXX_Merge(src proto.Message) { - xxx_messageInfo_PropertyValue.Merge(dst, src) -} -func (m *PropertyValue) XXX_Size() int { - return xxx_messageInfo_PropertyValue.Size(m) -} -func (m *PropertyValue) XXX_DiscardUnknown() { - xxx_messageInfo_PropertyValue.DiscardUnknown(m) -} - -var xxx_messageInfo_PropertyValue proto.InternalMessageInfo - -func (m *PropertyValue) GetInt64Value() int64 { - if m != nil && m.Int64Value != nil { - return *m.Int64Value - } - return 0 -} - -func (m *PropertyValue) GetBooleanValue() bool { - if m != nil && m.BooleanValue != nil { - return *m.BooleanValue - } - return false -} - -func (m *PropertyValue) GetStringValue() string { - if m != nil && m.StringValue != nil { - return *m.StringValue - } - return "" -} - -func (m *PropertyValue) GetDoubleValue() float64 { - if m != nil && m.DoubleValue != nil { - return *m.DoubleValue - } - return 0 -} - -func (m *PropertyValue) GetPointvalue() *PropertyValue_PointValue { - if m != nil { - return m.Pointvalue - } - return nil -} - -func (m *PropertyValue) GetUservalue() *PropertyValue_UserValue { - if m != nil { - return m.Uservalue - } - return nil -} - -func (m *PropertyValue) GetReferencevalue() *PropertyValue_ReferenceValue { - if m != nil { - return m.Referencevalue - } - return nil -} - -type PropertyValue_PointValue struct { - X *float64 `protobuf:"fixed64,6,req,name=x" json:"x,omitempty"` - Y *float64 `protobuf:"fixed64,7,req,name=y" json:"y,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *PropertyValue_PointValue) Reset() { *m = PropertyValue_PointValue{} } -func (m *PropertyValue_PointValue) String() string { return proto.CompactTextString(m) } -func (*PropertyValue_PointValue) ProtoMessage() {} -func (*PropertyValue_PointValue) Descriptor() ([]byte, []int) { - return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{1, 0} -} -func (m *PropertyValue_PointValue) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_PropertyValue_PointValue.Unmarshal(m, b) -} -func (m *PropertyValue_PointValue) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_PropertyValue_PointValue.Marshal(b, m, deterministic) -} -func (dst *PropertyValue_PointValue) XXX_Merge(src proto.Message) { - xxx_messageInfo_PropertyValue_PointValue.Merge(dst, src) -} -func (m *PropertyValue_PointValue) XXX_Size() int { - return xxx_messageInfo_PropertyValue_PointValue.Size(m) -} -func (m *PropertyValue_PointValue) XXX_DiscardUnknown() { - xxx_messageInfo_PropertyValue_PointValue.DiscardUnknown(m) -} - -var xxx_messageInfo_PropertyValue_PointValue proto.InternalMessageInfo - -func (m *PropertyValue_PointValue) GetX() float64 { - if m != nil && m.X != nil { - return *m.X - } - return 0 -} - -func (m *PropertyValue_PointValue) GetY() float64 { - if m != nil && m.Y != nil { - return *m.Y - } - return 0 -} - -type PropertyValue_UserValue struct { - Email *string `protobuf:"bytes,9,req,name=email" json:"email,omitempty"` - AuthDomain *string `protobuf:"bytes,10,req,name=auth_domain,json=authDomain" json:"auth_domain,omitempty"` - Nickname *string `protobuf:"bytes,11,opt,name=nickname" json:"nickname,omitempty"` - FederatedIdentity *string `protobuf:"bytes,21,opt,name=federated_identity,json=federatedIdentity" json:"federated_identity,omitempty"` - FederatedProvider *string `protobuf:"bytes,22,opt,name=federated_provider,json=federatedProvider" json:"federated_provider,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *PropertyValue_UserValue) Reset() { *m = PropertyValue_UserValue{} } -func (m *PropertyValue_UserValue) String() string { return proto.CompactTextString(m) } -func (*PropertyValue_UserValue) ProtoMessage() {} -func (*PropertyValue_UserValue) Descriptor() ([]byte, []int) { - return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{1, 1} -} -func (m *PropertyValue_UserValue) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_PropertyValue_UserValue.Unmarshal(m, b) -} -func (m *PropertyValue_UserValue) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_PropertyValue_UserValue.Marshal(b, m, deterministic) -} -func (dst *PropertyValue_UserValue) XXX_Merge(src proto.Message) { - xxx_messageInfo_PropertyValue_UserValue.Merge(dst, src) -} -func (m *PropertyValue_UserValue) XXX_Size() int { - return xxx_messageInfo_PropertyValue_UserValue.Size(m) -} -func (m *PropertyValue_UserValue) XXX_DiscardUnknown() { - xxx_messageInfo_PropertyValue_UserValue.DiscardUnknown(m) -} - -var xxx_messageInfo_PropertyValue_UserValue proto.InternalMessageInfo - -func (m *PropertyValue_UserValue) GetEmail() string { - if m != nil && m.Email != nil { - return *m.Email - } - return "" -} - -func (m *PropertyValue_UserValue) GetAuthDomain() string { - if m != nil && m.AuthDomain != nil { - return *m.AuthDomain - } - return "" -} - -func (m *PropertyValue_UserValue) GetNickname() string { - if m != nil && m.Nickname != nil { - return *m.Nickname - } - return "" -} - -func (m *PropertyValue_UserValue) GetFederatedIdentity() string { - if m != nil && m.FederatedIdentity != nil { - return *m.FederatedIdentity - } - return "" -} - -func (m *PropertyValue_UserValue) GetFederatedProvider() string { - if m != nil && m.FederatedProvider != nil { - return *m.FederatedProvider - } - return "" -} - -type PropertyValue_ReferenceValue struct { - App *string `protobuf:"bytes,13,req,name=app" json:"app,omitempty"` - NameSpace *string `protobuf:"bytes,20,opt,name=name_space,json=nameSpace" json:"name_space,omitempty"` - Pathelement []*PropertyValue_ReferenceValue_PathElement `protobuf:"group,14,rep,name=PathElement,json=pathelement" json:"pathelement,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *PropertyValue_ReferenceValue) Reset() { *m = PropertyValue_ReferenceValue{} } -func (m *PropertyValue_ReferenceValue) String() string { return proto.CompactTextString(m) } -func (*PropertyValue_ReferenceValue) ProtoMessage() {} -func (*PropertyValue_ReferenceValue) Descriptor() ([]byte, []int) { - return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{1, 2} -} -func (m *PropertyValue_ReferenceValue) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_PropertyValue_ReferenceValue.Unmarshal(m, b) -} -func (m *PropertyValue_ReferenceValue) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_PropertyValue_ReferenceValue.Marshal(b, m, deterministic) -} -func (dst *PropertyValue_ReferenceValue) XXX_Merge(src proto.Message) { - xxx_messageInfo_PropertyValue_ReferenceValue.Merge(dst, src) -} -func (m *PropertyValue_ReferenceValue) XXX_Size() int { - return xxx_messageInfo_PropertyValue_ReferenceValue.Size(m) -} -func (m *PropertyValue_ReferenceValue) XXX_DiscardUnknown() { - xxx_messageInfo_PropertyValue_ReferenceValue.DiscardUnknown(m) -} - -var xxx_messageInfo_PropertyValue_ReferenceValue proto.InternalMessageInfo - -func (m *PropertyValue_ReferenceValue) GetApp() string { - if m != nil && m.App != nil { - return *m.App - } - return "" -} - -func (m *PropertyValue_ReferenceValue) GetNameSpace() string { - if m != nil && m.NameSpace != nil { - return *m.NameSpace - } - return "" -} - -func (m *PropertyValue_ReferenceValue) GetPathelement() []*PropertyValue_ReferenceValue_PathElement { - if m != nil { - return m.Pathelement - } - return nil -} - -type PropertyValue_ReferenceValue_PathElement struct { - Type *string `protobuf:"bytes,15,req,name=type" json:"type,omitempty"` - Id *int64 `protobuf:"varint,16,opt,name=id" json:"id,omitempty"` - Name *string `protobuf:"bytes,17,opt,name=name" json:"name,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *PropertyValue_ReferenceValue_PathElement) Reset() { - *m = PropertyValue_ReferenceValue_PathElement{} -} -func (m *PropertyValue_ReferenceValue_PathElement) String() string { return proto.CompactTextString(m) } -func (*PropertyValue_ReferenceValue_PathElement) ProtoMessage() {} -func (*PropertyValue_ReferenceValue_PathElement) Descriptor() ([]byte, []int) { - return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{1, 2, 0} -} -func (m *PropertyValue_ReferenceValue_PathElement) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_PropertyValue_ReferenceValue_PathElement.Unmarshal(m, b) -} -func (m *PropertyValue_ReferenceValue_PathElement) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_PropertyValue_ReferenceValue_PathElement.Marshal(b, m, deterministic) -} -func (dst *PropertyValue_ReferenceValue_PathElement) XXX_Merge(src proto.Message) { - xxx_messageInfo_PropertyValue_ReferenceValue_PathElement.Merge(dst, src) -} -func (m *PropertyValue_ReferenceValue_PathElement) XXX_Size() int { - return xxx_messageInfo_PropertyValue_ReferenceValue_PathElement.Size(m) -} -func (m *PropertyValue_ReferenceValue_PathElement) XXX_DiscardUnknown() { - xxx_messageInfo_PropertyValue_ReferenceValue_PathElement.DiscardUnknown(m) -} - -var xxx_messageInfo_PropertyValue_ReferenceValue_PathElement proto.InternalMessageInfo - -func (m *PropertyValue_ReferenceValue_PathElement) GetType() string { - if m != nil && m.Type != nil { - return *m.Type - } - return "" -} - -func (m *PropertyValue_ReferenceValue_PathElement) GetId() int64 { - if m != nil && m.Id != nil { - return *m.Id - } - return 0 -} - -func (m *PropertyValue_ReferenceValue_PathElement) GetName() string { - if m != nil && m.Name != nil { - return *m.Name - } - return "" -} - -type Property struct { - Meaning *Property_Meaning `protobuf:"varint,1,opt,name=meaning,enum=appengine.Property_Meaning,def=0" json:"meaning,omitempty"` - MeaningUri *string `protobuf:"bytes,2,opt,name=meaning_uri,json=meaningUri" json:"meaning_uri,omitempty"` - Name *string `protobuf:"bytes,3,req,name=name" json:"name,omitempty"` - Value *PropertyValue `protobuf:"bytes,5,req,name=value" json:"value,omitempty"` - Multiple *bool `protobuf:"varint,4,req,name=multiple" json:"multiple,omitempty"` - Searchable *bool `protobuf:"varint,6,opt,name=searchable,def=0" json:"searchable,omitempty"` - FtsTokenizationOption *Property_FtsTokenizationOption `protobuf:"varint,8,opt,name=fts_tokenization_option,json=ftsTokenizationOption,enum=appengine.Property_FtsTokenizationOption" json:"fts_tokenization_option,omitempty"` - Locale *string `protobuf:"bytes,9,opt,name=locale,def=en" json:"locale,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *Property) Reset() { *m = Property{} } -func (m *Property) String() string { return proto.CompactTextString(m) } -func (*Property) ProtoMessage() {} -func (*Property) Descriptor() ([]byte, []int) { - return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{2} -} -func (m *Property) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_Property.Unmarshal(m, b) -} -func (m *Property) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_Property.Marshal(b, m, deterministic) -} -func (dst *Property) XXX_Merge(src proto.Message) { - xxx_messageInfo_Property.Merge(dst, src) -} -func (m *Property) XXX_Size() int { - return xxx_messageInfo_Property.Size(m) -} -func (m *Property) XXX_DiscardUnknown() { - xxx_messageInfo_Property.DiscardUnknown(m) -} - -var xxx_messageInfo_Property proto.InternalMessageInfo - -const Default_Property_Meaning Property_Meaning = Property_NO_MEANING -const Default_Property_Searchable bool = false -const Default_Property_Locale string = "en" - -func (m *Property) GetMeaning() Property_Meaning { - if m != nil && m.Meaning != nil { - return *m.Meaning - } - return Default_Property_Meaning -} - -func (m *Property) GetMeaningUri() string { - if m != nil && m.MeaningUri != nil { - return *m.MeaningUri - } - return "" -} - -func (m *Property) GetName() string { - if m != nil && m.Name != nil { - return *m.Name - } - return "" -} - -func (m *Property) GetValue() *PropertyValue { - if m != nil { - return m.Value - } - return nil -} - -func (m *Property) GetMultiple() bool { - if m != nil && m.Multiple != nil { - return *m.Multiple - } - return false -} - -func (m *Property) GetSearchable() bool { - if m != nil && m.Searchable != nil { - return *m.Searchable - } - return Default_Property_Searchable -} - -func (m *Property) GetFtsTokenizationOption() Property_FtsTokenizationOption { - if m != nil && m.FtsTokenizationOption != nil { - return *m.FtsTokenizationOption - } - return Property_HTML -} - -func (m *Property) GetLocale() string { - if m != nil && m.Locale != nil { - return *m.Locale - } - return Default_Property_Locale -} - -type Path struct { - Element []*Path_Element `protobuf:"group,1,rep,name=Element,json=element" json:"element,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *Path) Reset() { *m = Path{} } -func (m *Path) String() string { return proto.CompactTextString(m) } -func (*Path) ProtoMessage() {} -func (*Path) Descriptor() ([]byte, []int) { - return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{3} -} -func (m *Path) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_Path.Unmarshal(m, b) -} -func (m *Path) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_Path.Marshal(b, m, deterministic) -} -func (dst *Path) XXX_Merge(src proto.Message) { - xxx_messageInfo_Path.Merge(dst, src) -} -func (m *Path) XXX_Size() int { - return xxx_messageInfo_Path.Size(m) -} -func (m *Path) XXX_DiscardUnknown() { - xxx_messageInfo_Path.DiscardUnknown(m) -} - -var xxx_messageInfo_Path proto.InternalMessageInfo - -func (m *Path) GetElement() []*Path_Element { - if m != nil { - return m.Element - } - return nil -} - -type Path_Element struct { - Type *string `protobuf:"bytes,2,req,name=type" json:"type,omitempty"` - Id *int64 `protobuf:"varint,3,opt,name=id" json:"id,omitempty"` - Name *string `protobuf:"bytes,4,opt,name=name" json:"name,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *Path_Element) Reset() { *m = Path_Element{} } -func (m *Path_Element) String() string { return proto.CompactTextString(m) } -func (*Path_Element) ProtoMessage() {} -func (*Path_Element) Descriptor() ([]byte, []int) { - return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{3, 0} -} -func (m *Path_Element) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_Path_Element.Unmarshal(m, b) -} -func (m *Path_Element) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_Path_Element.Marshal(b, m, deterministic) -} -func (dst *Path_Element) XXX_Merge(src proto.Message) { - xxx_messageInfo_Path_Element.Merge(dst, src) -} -func (m *Path_Element) XXX_Size() int { - return xxx_messageInfo_Path_Element.Size(m) -} -func (m *Path_Element) XXX_DiscardUnknown() { - xxx_messageInfo_Path_Element.DiscardUnknown(m) -} - -var xxx_messageInfo_Path_Element proto.InternalMessageInfo - -func (m *Path_Element) GetType() string { - if m != nil && m.Type != nil { - return *m.Type - } - return "" -} - -func (m *Path_Element) GetId() int64 { - if m != nil && m.Id != nil { - return *m.Id - } - return 0 -} - -func (m *Path_Element) GetName() string { - if m != nil && m.Name != nil { - return *m.Name - } - return "" -} - -type Reference struct { - App *string `protobuf:"bytes,13,req,name=app" json:"app,omitempty"` - NameSpace *string `protobuf:"bytes,20,opt,name=name_space,json=nameSpace" json:"name_space,omitempty"` - Path *Path `protobuf:"bytes,14,req,name=path" json:"path,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *Reference) Reset() { *m = Reference{} } -func (m *Reference) String() string { return proto.CompactTextString(m) } -func (*Reference) ProtoMessage() {} -func (*Reference) Descriptor() ([]byte, []int) { - return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{4} -} -func (m *Reference) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_Reference.Unmarshal(m, b) -} -func (m *Reference) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_Reference.Marshal(b, m, deterministic) -} -func (dst *Reference) XXX_Merge(src proto.Message) { - xxx_messageInfo_Reference.Merge(dst, src) -} -func (m *Reference) XXX_Size() int { - return xxx_messageInfo_Reference.Size(m) -} -func (m *Reference) XXX_DiscardUnknown() { - xxx_messageInfo_Reference.DiscardUnknown(m) -} - -var xxx_messageInfo_Reference proto.InternalMessageInfo - -func (m *Reference) GetApp() string { - if m != nil && m.App != nil { - return *m.App - } - return "" -} - -func (m *Reference) GetNameSpace() string { - if m != nil && m.NameSpace != nil { - return *m.NameSpace - } - return "" -} - -func (m *Reference) GetPath() *Path { - if m != nil { - return m.Path - } - return nil -} - -type User struct { - Email *string `protobuf:"bytes,1,req,name=email" json:"email,omitempty"` - AuthDomain *string `protobuf:"bytes,2,req,name=auth_domain,json=authDomain" json:"auth_domain,omitempty"` - Nickname *string `protobuf:"bytes,3,opt,name=nickname" json:"nickname,omitempty"` - FederatedIdentity *string `protobuf:"bytes,6,opt,name=federated_identity,json=federatedIdentity" json:"federated_identity,omitempty"` - FederatedProvider *string `protobuf:"bytes,7,opt,name=federated_provider,json=federatedProvider" json:"federated_provider,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *User) Reset() { *m = User{} } -func (m *User) String() string { return proto.CompactTextString(m) } -func (*User) ProtoMessage() {} -func (*User) Descriptor() ([]byte, []int) { - return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{5} -} -func (m *User) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_User.Unmarshal(m, b) -} -func (m *User) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_User.Marshal(b, m, deterministic) -} -func (dst *User) XXX_Merge(src proto.Message) { - xxx_messageInfo_User.Merge(dst, src) -} -func (m *User) XXX_Size() int { - return xxx_messageInfo_User.Size(m) -} -func (m *User) XXX_DiscardUnknown() { - xxx_messageInfo_User.DiscardUnknown(m) -} - -var xxx_messageInfo_User proto.InternalMessageInfo - -func (m *User) GetEmail() string { - if m != nil && m.Email != nil { - return *m.Email - } - return "" -} - -func (m *User) GetAuthDomain() string { - if m != nil && m.AuthDomain != nil { - return *m.AuthDomain - } - return "" -} - -func (m *User) GetNickname() string { - if m != nil && m.Nickname != nil { - return *m.Nickname - } - return "" -} - -func (m *User) GetFederatedIdentity() string { - if m != nil && m.FederatedIdentity != nil { - return *m.FederatedIdentity - } - return "" -} - -func (m *User) GetFederatedProvider() string { - if m != nil && m.FederatedProvider != nil { - return *m.FederatedProvider - } - return "" -} - -type EntityProto struct { - Key *Reference `protobuf:"bytes,13,req,name=key" json:"key,omitempty"` - EntityGroup *Path `protobuf:"bytes,16,req,name=entity_group,json=entityGroup" json:"entity_group,omitempty"` - Owner *User `protobuf:"bytes,17,opt,name=owner" json:"owner,omitempty"` - Kind *EntityProto_Kind `protobuf:"varint,4,opt,name=kind,enum=appengine.EntityProto_Kind" json:"kind,omitempty"` - KindUri *string `protobuf:"bytes,5,opt,name=kind_uri,json=kindUri" json:"kind_uri,omitempty"` - Property []*Property `protobuf:"bytes,14,rep,name=property" json:"property,omitempty"` - RawProperty []*Property `protobuf:"bytes,15,rep,name=raw_property,json=rawProperty" json:"raw_property,omitempty"` - Rank *int32 `protobuf:"varint,18,opt,name=rank" json:"rank,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *EntityProto) Reset() { *m = EntityProto{} } -func (m *EntityProto) String() string { return proto.CompactTextString(m) } -func (*EntityProto) ProtoMessage() {} -func (*EntityProto) Descriptor() ([]byte, []int) { - return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{6} -} -func (m *EntityProto) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_EntityProto.Unmarshal(m, b) -} -func (m *EntityProto) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_EntityProto.Marshal(b, m, deterministic) -} -func (dst *EntityProto) XXX_Merge(src proto.Message) { - xxx_messageInfo_EntityProto.Merge(dst, src) -} -func (m *EntityProto) XXX_Size() int { - return xxx_messageInfo_EntityProto.Size(m) -} -func (m *EntityProto) XXX_DiscardUnknown() { - xxx_messageInfo_EntityProto.DiscardUnknown(m) -} - -var xxx_messageInfo_EntityProto proto.InternalMessageInfo - -func (m *EntityProto) GetKey() *Reference { - if m != nil { - return m.Key - } - return nil -} - -func (m *EntityProto) GetEntityGroup() *Path { - if m != nil { - return m.EntityGroup - } - return nil -} - -func (m *EntityProto) GetOwner() *User { - if m != nil { - return m.Owner - } - return nil -} - -func (m *EntityProto) GetKind() EntityProto_Kind { - if m != nil && m.Kind != nil { - return *m.Kind - } - return EntityProto_GD_CONTACT -} - -func (m *EntityProto) GetKindUri() string { - if m != nil && m.KindUri != nil { - return *m.KindUri - } - return "" -} - -func (m *EntityProto) GetProperty() []*Property { - if m != nil { - return m.Property - } - return nil -} - -func (m *EntityProto) GetRawProperty() []*Property { - if m != nil { - return m.RawProperty - } - return nil -} - -func (m *EntityProto) GetRank() int32 { - if m != nil && m.Rank != nil { - return *m.Rank - } - return 0 -} - -type CompositeProperty struct { - IndexId *int64 `protobuf:"varint,1,req,name=index_id,json=indexId" json:"index_id,omitempty"` - Value []string `protobuf:"bytes,2,rep,name=value" json:"value,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *CompositeProperty) Reset() { *m = CompositeProperty{} } -func (m *CompositeProperty) String() string { return proto.CompactTextString(m) } -func (*CompositeProperty) ProtoMessage() {} -func (*CompositeProperty) Descriptor() ([]byte, []int) { - return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{7} -} -func (m *CompositeProperty) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_CompositeProperty.Unmarshal(m, b) -} -func (m *CompositeProperty) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_CompositeProperty.Marshal(b, m, deterministic) -} -func (dst *CompositeProperty) XXX_Merge(src proto.Message) { - xxx_messageInfo_CompositeProperty.Merge(dst, src) -} -func (m *CompositeProperty) XXX_Size() int { - return xxx_messageInfo_CompositeProperty.Size(m) -} -func (m *CompositeProperty) XXX_DiscardUnknown() { - xxx_messageInfo_CompositeProperty.DiscardUnknown(m) -} - -var xxx_messageInfo_CompositeProperty proto.InternalMessageInfo - -func (m *CompositeProperty) GetIndexId() int64 { - if m != nil && m.IndexId != nil { - return *m.IndexId - } - return 0 -} - -func (m *CompositeProperty) GetValue() []string { - if m != nil { - return m.Value - } - return nil -} - -type Index struct { - EntityType *string `protobuf:"bytes,1,req,name=entity_type,json=entityType" json:"entity_type,omitempty"` - Ancestor *bool `protobuf:"varint,5,req,name=ancestor" json:"ancestor,omitempty"` - Property []*Index_Property `protobuf:"group,2,rep,name=Property,json=property" json:"property,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *Index) Reset() { *m = Index{} } -func (m *Index) String() string { return proto.CompactTextString(m) } -func (*Index) ProtoMessage() {} -func (*Index) Descriptor() ([]byte, []int) { - return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{8} -} -func (m *Index) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_Index.Unmarshal(m, b) -} -func (m *Index) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_Index.Marshal(b, m, deterministic) -} -func (dst *Index) XXX_Merge(src proto.Message) { - xxx_messageInfo_Index.Merge(dst, src) -} -func (m *Index) XXX_Size() int { - return xxx_messageInfo_Index.Size(m) -} -func (m *Index) XXX_DiscardUnknown() { - xxx_messageInfo_Index.DiscardUnknown(m) -} - -var xxx_messageInfo_Index proto.InternalMessageInfo - -func (m *Index) GetEntityType() string { - if m != nil && m.EntityType != nil { - return *m.EntityType - } - return "" -} - -func (m *Index) GetAncestor() bool { - if m != nil && m.Ancestor != nil { - return *m.Ancestor - } - return false -} - -func (m *Index) GetProperty() []*Index_Property { - if m != nil { - return m.Property - } - return nil -} - -type Index_Property struct { - Name *string `protobuf:"bytes,3,req,name=name" json:"name,omitempty"` - Direction *Index_Property_Direction `protobuf:"varint,4,opt,name=direction,enum=appengine.Index_Property_Direction,def=1" json:"direction,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *Index_Property) Reset() { *m = Index_Property{} } -func (m *Index_Property) String() string { return proto.CompactTextString(m) } -func (*Index_Property) ProtoMessage() {} -func (*Index_Property) Descriptor() ([]byte, []int) { - return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{8, 0} -} -func (m *Index_Property) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_Index_Property.Unmarshal(m, b) -} -func (m *Index_Property) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_Index_Property.Marshal(b, m, deterministic) -} -func (dst *Index_Property) XXX_Merge(src proto.Message) { - xxx_messageInfo_Index_Property.Merge(dst, src) -} -func (m *Index_Property) XXX_Size() int { - return xxx_messageInfo_Index_Property.Size(m) -} -func (m *Index_Property) XXX_DiscardUnknown() { - xxx_messageInfo_Index_Property.DiscardUnknown(m) -} - -var xxx_messageInfo_Index_Property proto.InternalMessageInfo - -const Default_Index_Property_Direction Index_Property_Direction = Index_Property_ASCENDING - -func (m *Index_Property) GetName() string { - if m != nil && m.Name != nil { - return *m.Name - } - return "" -} - -func (m *Index_Property) GetDirection() Index_Property_Direction { - if m != nil && m.Direction != nil { - return *m.Direction - } - return Default_Index_Property_Direction -} - -type CompositeIndex struct { - AppId *string `protobuf:"bytes,1,req,name=app_id,json=appId" json:"app_id,omitempty"` - Id *int64 `protobuf:"varint,2,req,name=id" json:"id,omitempty"` - Definition *Index `protobuf:"bytes,3,req,name=definition" json:"definition,omitempty"` - State *CompositeIndex_State `protobuf:"varint,4,req,name=state,enum=appengine.CompositeIndex_State" json:"state,omitempty"` - OnlyUseIfRequired *bool `protobuf:"varint,6,opt,name=only_use_if_required,json=onlyUseIfRequired,def=0" json:"only_use_if_required,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *CompositeIndex) Reset() { *m = CompositeIndex{} } -func (m *CompositeIndex) String() string { return proto.CompactTextString(m) } -func (*CompositeIndex) ProtoMessage() {} -func (*CompositeIndex) Descriptor() ([]byte, []int) { - return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{9} -} -func (m *CompositeIndex) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_CompositeIndex.Unmarshal(m, b) -} -func (m *CompositeIndex) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_CompositeIndex.Marshal(b, m, deterministic) -} -func (dst *CompositeIndex) XXX_Merge(src proto.Message) { - xxx_messageInfo_CompositeIndex.Merge(dst, src) -} -func (m *CompositeIndex) XXX_Size() int { - return xxx_messageInfo_CompositeIndex.Size(m) -} -func (m *CompositeIndex) XXX_DiscardUnknown() { - xxx_messageInfo_CompositeIndex.DiscardUnknown(m) -} - -var xxx_messageInfo_CompositeIndex proto.InternalMessageInfo - -const Default_CompositeIndex_OnlyUseIfRequired bool = false - -func (m *CompositeIndex) GetAppId() string { - if m != nil && m.AppId != nil { - return *m.AppId - } - return "" -} - -func (m *CompositeIndex) GetId() int64 { - if m != nil && m.Id != nil { - return *m.Id - } - return 0 -} - -func (m *CompositeIndex) GetDefinition() *Index { - if m != nil { - return m.Definition - } - return nil -} - -func (m *CompositeIndex) GetState() CompositeIndex_State { - if m != nil && m.State != nil { - return *m.State - } - return CompositeIndex_WRITE_ONLY -} - -func (m *CompositeIndex) GetOnlyUseIfRequired() bool { - if m != nil && m.OnlyUseIfRequired != nil { - return *m.OnlyUseIfRequired - } - return Default_CompositeIndex_OnlyUseIfRequired -} - -type IndexPostfix struct { - IndexValue []*IndexPostfix_IndexValue `protobuf:"bytes,1,rep,name=index_value,json=indexValue" json:"index_value,omitempty"` - Key *Reference `protobuf:"bytes,2,opt,name=key" json:"key,omitempty"` - Before *bool `protobuf:"varint,3,opt,name=before,def=1" json:"before,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *IndexPostfix) Reset() { *m = IndexPostfix{} } -func (m *IndexPostfix) String() string { return proto.CompactTextString(m) } -func (*IndexPostfix) ProtoMessage() {} -func (*IndexPostfix) Descriptor() ([]byte, []int) { - return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{10} -} -func (m *IndexPostfix) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_IndexPostfix.Unmarshal(m, b) -} -func (m *IndexPostfix) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_IndexPostfix.Marshal(b, m, deterministic) -} -func (dst *IndexPostfix) XXX_Merge(src proto.Message) { - xxx_messageInfo_IndexPostfix.Merge(dst, src) -} -func (m *IndexPostfix) XXX_Size() int { - return xxx_messageInfo_IndexPostfix.Size(m) -} -func (m *IndexPostfix) XXX_DiscardUnknown() { - xxx_messageInfo_IndexPostfix.DiscardUnknown(m) -} - -var xxx_messageInfo_IndexPostfix proto.InternalMessageInfo - -const Default_IndexPostfix_Before bool = true - -func (m *IndexPostfix) GetIndexValue() []*IndexPostfix_IndexValue { - if m != nil { - return m.IndexValue - } - return nil -} - -func (m *IndexPostfix) GetKey() *Reference { - if m != nil { - return m.Key - } - return nil -} - -func (m *IndexPostfix) GetBefore() bool { - if m != nil && m.Before != nil { - return *m.Before - } - return Default_IndexPostfix_Before -} - -type IndexPostfix_IndexValue struct { - PropertyName *string `protobuf:"bytes,1,req,name=property_name,json=propertyName" json:"property_name,omitempty"` - Value *PropertyValue `protobuf:"bytes,2,req,name=value" json:"value,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *IndexPostfix_IndexValue) Reset() { *m = IndexPostfix_IndexValue{} } -func (m *IndexPostfix_IndexValue) String() string { return proto.CompactTextString(m) } -func (*IndexPostfix_IndexValue) ProtoMessage() {} -func (*IndexPostfix_IndexValue) Descriptor() ([]byte, []int) { - return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{10, 0} -} -func (m *IndexPostfix_IndexValue) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_IndexPostfix_IndexValue.Unmarshal(m, b) -} -func (m *IndexPostfix_IndexValue) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_IndexPostfix_IndexValue.Marshal(b, m, deterministic) -} -func (dst *IndexPostfix_IndexValue) XXX_Merge(src proto.Message) { - xxx_messageInfo_IndexPostfix_IndexValue.Merge(dst, src) -} -func (m *IndexPostfix_IndexValue) XXX_Size() int { - return xxx_messageInfo_IndexPostfix_IndexValue.Size(m) -} -func (m *IndexPostfix_IndexValue) XXX_DiscardUnknown() { - xxx_messageInfo_IndexPostfix_IndexValue.DiscardUnknown(m) -} - -var xxx_messageInfo_IndexPostfix_IndexValue proto.InternalMessageInfo - -func (m *IndexPostfix_IndexValue) GetPropertyName() string { - if m != nil && m.PropertyName != nil { - return *m.PropertyName - } - return "" -} - -func (m *IndexPostfix_IndexValue) GetValue() *PropertyValue { - if m != nil { - return m.Value - } - return nil -} - -type IndexPosition struct { - Key *string `protobuf:"bytes,1,opt,name=key" json:"key,omitempty"` - Before *bool `protobuf:"varint,2,opt,name=before,def=1" json:"before,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *IndexPosition) Reset() { *m = IndexPosition{} } -func (m *IndexPosition) String() string { return proto.CompactTextString(m) } -func (*IndexPosition) ProtoMessage() {} -func (*IndexPosition) Descriptor() ([]byte, []int) { - return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{11} -} -func (m *IndexPosition) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_IndexPosition.Unmarshal(m, b) -} -func (m *IndexPosition) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_IndexPosition.Marshal(b, m, deterministic) -} -func (dst *IndexPosition) XXX_Merge(src proto.Message) { - xxx_messageInfo_IndexPosition.Merge(dst, src) -} -func (m *IndexPosition) XXX_Size() int { - return xxx_messageInfo_IndexPosition.Size(m) -} -func (m *IndexPosition) XXX_DiscardUnknown() { - xxx_messageInfo_IndexPosition.DiscardUnknown(m) -} - -var xxx_messageInfo_IndexPosition proto.InternalMessageInfo - -const Default_IndexPosition_Before bool = true - -func (m *IndexPosition) GetKey() string { - if m != nil && m.Key != nil { - return *m.Key - } - return "" -} - -func (m *IndexPosition) GetBefore() bool { - if m != nil && m.Before != nil { - return *m.Before - } - return Default_IndexPosition_Before -} - -type Snapshot struct { - Ts *int64 `protobuf:"varint,1,req,name=ts" json:"ts,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *Snapshot) Reset() { *m = Snapshot{} } -func (m *Snapshot) String() string { return proto.CompactTextString(m) } -func (*Snapshot) ProtoMessage() {} -func (*Snapshot) Descriptor() ([]byte, []int) { - return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{12} -} -func (m *Snapshot) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_Snapshot.Unmarshal(m, b) -} -func (m *Snapshot) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_Snapshot.Marshal(b, m, deterministic) -} -func (dst *Snapshot) XXX_Merge(src proto.Message) { - xxx_messageInfo_Snapshot.Merge(dst, src) -} -func (m *Snapshot) XXX_Size() int { - return xxx_messageInfo_Snapshot.Size(m) -} -func (m *Snapshot) XXX_DiscardUnknown() { - xxx_messageInfo_Snapshot.DiscardUnknown(m) -} - -var xxx_messageInfo_Snapshot proto.InternalMessageInfo - -func (m *Snapshot) GetTs() int64 { - if m != nil && m.Ts != nil { - return *m.Ts - } - return 0 -} - -type InternalHeader struct { - Qos *string `protobuf:"bytes,1,opt,name=qos" json:"qos,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *InternalHeader) Reset() { *m = InternalHeader{} } -func (m *InternalHeader) String() string { return proto.CompactTextString(m) } -func (*InternalHeader) ProtoMessage() {} -func (*InternalHeader) Descriptor() ([]byte, []int) { - return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{13} -} -func (m *InternalHeader) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_InternalHeader.Unmarshal(m, b) -} -func (m *InternalHeader) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_InternalHeader.Marshal(b, m, deterministic) -} -func (dst *InternalHeader) XXX_Merge(src proto.Message) { - xxx_messageInfo_InternalHeader.Merge(dst, src) -} -func (m *InternalHeader) XXX_Size() int { - return xxx_messageInfo_InternalHeader.Size(m) -} -func (m *InternalHeader) XXX_DiscardUnknown() { - xxx_messageInfo_InternalHeader.DiscardUnknown(m) -} - -var xxx_messageInfo_InternalHeader proto.InternalMessageInfo - -func (m *InternalHeader) GetQos() string { - if m != nil && m.Qos != nil { - return *m.Qos - } - return "" -} - -type Transaction struct { - Header *InternalHeader `protobuf:"bytes,4,opt,name=header" json:"header,omitempty"` - Handle *uint64 `protobuf:"fixed64,1,req,name=handle" json:"handle,omitempty"` - App *string `protobuf:"bytes,2,req,name=app" json:"app,omitempty"` - MarkChanges *bool `protobuf:"varint,3,opt,name=mark_changes,json=markChanges,def=0" json:"mark_changes,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *Transaction) Reset() { *m = Transaction{} } -func (m *Transaction) String() string { return proto.CompactTextString(m) } -func (*Transaction) ProtoMessage() {} -func (*Transaction) Descriptor() ([]byte, []int) { - return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{14} -} -func (m *Transaction) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_Transaction.Unmarshal(m, b) -} -func (m *Transaction) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_Transaction.Marshal(b, m, deterministic) -} -func (dst *Transaction) XXX_Merge(src proto.Message) { - xxx_messageInfo_Transaction.Merge(dst, src) -} -func (m *Transaction) XXX_Size() int { - return xxx_messageInfo_Transaction.Size(m) -} -func (m *Transaction) XXX_DiscardUnknown() { - xxx_messageInfo_Transaction.DiscardUnknown(m) -} - -var xxx_messageInfo_Transaction proto.InternalMessageInfo - -const Default_Transaction_MarkChanges bool = false - -func (m *Transaction) GetHeader() *InternalHeader { - if m != nil { - return m.Header - } - return nil -} - -func (m *Transaction) GetHandle() uint64 { - if m != nil && m.Handle != nil { - return *m.Handle - } - return 0 -} - -func (m *Transaction) GetApp() string { - if m != nil && m.App != nil { - return *m.App - } - return "" -} - -func (m *Transaction) GetMarkChanges() bool { - if m != nil && m.MarkChanges != nil { - return *m.MarkChanges - } - return Default_Transaction_MarkChanges -} - -type Query struct { - Header *InternalHeader `protobuf:"bytes,39,opt,name=header" json:"header,omitempty"` - App *string `protobuf:"bytes,1,req,name=app" json:"app,omitempty"` - NameSpace *string `protobuf:"bytes,29,opt,name=name_space,json=nameSpace" json:"name_space,omitempty"` - Kind *string `protobuf:"bytes,3,opt,name=kind" json:"kind,omitempty"` - Ancestor *Reference `protobuf:"bytes,17,opt,name=ancestor" json:"ancestor,omitempty"` - Filter []*Query_Filter `protobuf:"group,4,rep,name=Filter,json=filter" json:"filter,omitempty"` - SearchQuery *string `protobuf:"bytes,8,opt,name=search_query,json=searchQuery" json:"search_query,omitempty"` - Order []*Query_Order `protobuf:"group,9,rep,name=Order,json=order" json:"order,omitempty"` - Hint *Query_Hint `protobuf:"varint,18,opt,name=hint,enum=appengine.Query_Hint" json:"hint,omitempty"` - Count *int32 `protobuf:"varint,23,opt,name=count" json:"count,omitempty"` - Offset *int32 `protobuf:"varint,12,opt,name=offset,def=0" json:"offset,omitempty"` - Limit *int32 `protobuf:"varint,16,opt,name=limit" json:"limit,omitempty"` - CompiledCursor *CompiledCursor `protobuf:"bytes,30,opt,name=compiled_cursor,json=compiledCursor" json:"compiled_cursor,omitempty"` - EndCompiledCursor *CompiledCursor `protobuf:"bytes,31,opt,name=end_compiled_cursor,json=endCompiledCursor" json:"end_compiled_cursor,omitempty"` - CompositeIndex []*CompositeIndex `protobuf:"bytes,19,rep,name=composite_index,json=compositeIndex" json:"composite_index,omitempty"` - RequirePerfectPlan *bool `protobuf:"varint,20,opt,name=require_perfect_plan,json=requirePerfectPlan,def=0" json:"require_perfect_plan,omitempty"` - KeysOnly *bool `protobuf:"varint,21,opt,name=keys_only,json=keysOnly,def=0" json:"keys_only,omitempty"` - Transaction *Transaction `protobuf:"bytes,22,opt,name=transaction" json:"transaction,omitempty"` - Compile *bool `protobuf:"varint,25,opt,name=compile,def=0" json:"compile,omitempty"` - FailoverMs *int64 `protobuf:"varint,26,opt,name=failover_ms,json=failoverMs" json:"failover_ms,omitempty"` - Strong *bool `protobuf:"varint,32,opt,name=strong" json:"strong,omitempty"` - PropertyName []string `protobuf:"bytes,33,rep,name=property_name,json=propertyName" json:"property_name,omitempty"` - GroupByPropertyName []string `protobuf:"bytes,34,rep,name=group_by_property_name,json=groupByPropertyName" json:"group_by_property_name,omitempty"` - Distinct *bool `protobuf:"varint,24,opt,name=distinct" json:"distinct,omitempty"` - MinSafeTimeSeconds *int64 `protobuf:"varint,35,opt,name=min_safe_time_seconds,json=minSafeTimeSeconds" json:"min_safe_time_seconds,omitempty"` - SafeReplicaName []string `protobuf:"bytes,36,rep,name=safe_replica_name,json=safeReplicaName" json:"safe_replica_name,omitempty"` - PersistOffset *bool `protobuf:"varint,37,opt,name=persist_offset,json=persistOffset,def=0" json:"persist_offset,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *Query) Reset() { *m = Query{} } -func (m *Query) String() string { return proto.CompactTextString(m) } -func (*Query) ProtoMessage() {} -func (*Query) Descriptor() ([]byte, []int) { - return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{15} -} -func (m *Query) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_Query.Unmarshal(m, b) -} -func (m *Query) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_Query.Marshal(b, m, deterministic) -} -func (dst *Query) XXX_Merge(src proto.Message) { - xxx_messageInfo_Query.Merge(dst, src) -} -func (m *Query) XXX_Size() int { - return xxx_messageInfo_Query.Size(m) -} -func (m *Query) XXX_DiscardUnknown() { - xxx_messageInfo_Query.DiscardUnknown(m) -} - -var xxx_messageInfo_Query proto.InternalMessageInfo - -const Default_Query_Offset int32 = 0 -const Default_Query_RequirePerfectPlan bool = false -const Default_Query_KeysOnly bool = false -const Default_Query_Compile bool = false -const Default_Query_PersistOffset bool = false - -func (m *Query) GetHeader() *InternalHeader { - if m != nil { - return m.Header - } - return nil -} - -func (m *Query) GetApp() string { - if m != nil && m.App != nil { - return *m.App - } - return "" -} - -func (m *Query) GetNameSpace() string { - if m != nil && m.NameSpace != nil { - return *m.NameSpace - } - return "" -} - -func (m *Query) GetKind() string { - if m != nil && m.Kind != nil { - return *m.Kind - } - return "" -} - -func (m *Query) GetAncestor() *Reference { - if m != nil { - return m.Ancestor - } - return nil -} - -func (m *Query) GetFilter() []*Query_Filter { - if m != nil { - return m.Filter - } - return nil -} - -func (m *Query) GetSearchQuery() string { - if m != nil && m.SearchQuery != nil { - return *m.SearchQuery - } - return "" -} - -func (m *Query) GetOrder() []*Query_Order { - if m != nil { - return m.Order - } - return nil -} - -func (m *Query) GetHint() Query_Hint { - if m != nil && m.Hint != nil { - return *m.Hint - } - return Query_ORDER_FIRST -} - -func (m *Query) GetCount() int32 { - if m != nil && m.Count != nil { - return *m.Count - } - return 0 -} - -func (m *Query) GetOffset() int32 { - if m != nil && m.Offset != nil { - return *m.Offset - } - return Default_Query_Offset -} - -func (m *Query) GetLimit() int32 { - if m != nil && m.Limit != nil { - return *m.Limit - } - return 0 -} - -func (m *Query) GetCompiledCursor() *CompiledCursor { - if m != nil { - return m.CompiledCursor - } - return nil -} - -func (m *Query) GetEndCompiledCursor() *CompiledCursor { - if m != nil { - return m.EndCompiledCursor - } - return nil -} - -func (m *Query) GetCompositeIndex() []*CompositeIndex { - if m != nil { - return m.CompositeIndex - } - return nil -} - -func (m *Query) GetRequirePerfectPlan() bool { - if m != nil && m.RequirePerfectPlan != nil { - return *m.RequirePerfectPlan - } - return Default_Query_RequirePerfectPlan -} - -func (m *Query) GetKeysOnly() bool { - if m != nil && m.KeysOnly != nil { - return *m.KeysOnly - } - return Default_Query_KeysOnly -} - -func (m *Query) GetTransaction() *Transaction { - if m != nil { - return m.Transaction - } - return nil -} - -func (m *Query) GetCompile() bool { - if m != nil && m.Compile != nil { - return *m.Compile - } - return Default_Query_Compile -} - -func (m *Query) GetFailoverMs() int64 { - if m != nil && m.FailoverMs != nil { - return *m.FailoverMs - } - return 0 -} - -func (m *Query) GetStrong() bool { - if m != nil && m.Strong != nil { - return *m.Strong - } - return false -} - -func (m *Query) GetPropertyName() []string { - if m != nil { - return m.PropertyName - } - return nil -} - -func (m *Query) GetGroupByPropertyName() []string { - if m != nil { - return m.GroupByPropertyName - } - return nil -} - -func (m *Query) GetDistinct() bool { - if m != nil && m.Distinct != nil { - return *m.Distinct - } - return false -} - -func (m *Query) GetMinSafeTimeSeconds() int64 { - if m != nil && m.MinSafeTimeSeconds != nil { - return *m.MinSafeTimeSeconds - } - return 0 -} - -func (m *Query) GetSafeReplicaName() []string { - if m != nil { - return m.SafeReplicaName - } - return nil -} - -func (m *Query) GetPersistOffset() bool { - if m != nil && m.PersistOffset != nil { - return *m.PersistOffset - } - return Default_Query_PersistOffset -} - -type Query_Filter struct { - Op *Query_Filter_Operator `protobuf:"varint,6,req,name=op,enum=appengine.Query_Filter_Operator" json:"op,omitempty"` - Property []*Property `protobuf:"bytes,14,rep,name=property" json:"property,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *Query_Filter) Reset() { *m = Query_Filter{} } -func (m *Query_Filter) String() string { return proto.CompactTextString(m) } -func (*Query_Filter) ProtoMessage() {} -func (*Query_Filter) Descriptor() ([]byte, []int) { - return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{15, 0} -} -func (m *Query_Filter) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_Query_Filter.Unmarshal(m, b) -} -func (m *Query_Filter) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_Query_Filter.Marshal(b, m, deterministic) -} -func (dst *Query_Filter) XXX_Merge(src proto.Message) { - xxx_messageInfo_Query_Filter.Merge(dst, src) -} -func (m *Query_Filter) XXX_Size() int { - return xxx_messageInfo_Query_Filter.Size(m) -} -func (m *Query_Filter) XXX_DiscardUnknown() { - xxx_messageInfo_Query_Filter.DiscardUnknown(m) -} - -var xxx_messageInfo_Query_Filter proto.InternalMessageInfo - -func (m *Query_Filter) GetOp() Query_Filter_Operator { - if m != nil && m.Op != nil { - return *m.Op - } - return Query_Filter_LESS_THAN -} - -func (m *Query_Filter) GetProperty() []*Property { - if m != nil { - return m.Property - } - return nil -} - -type Query_Order struct { - Property *string `protobuf:"bytes,10,req,name=property" json:"property,omitempty"` - Direction *Query_Order_Direction `protobuf:"varint,11,opt,name=direction,enum=appengine.Query_Order_Direction,def=1" json:"direction,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *Query_Order) Reset() { *m = Query_Order{} } -func (m *Query_Order) String() string { return proto.CompactTextString(m) } -func (*Query_Order) ProtoMessage() {} -func (*Query_Order) Descriptor() ([]byte, []int) { - return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{15, 1} -} -func (m *Query_Order) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_Query_Order.Unmarshal(m, b) -} -func (m *Query_Order) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_Query_Order.Marshal(b, m, deterministic) -} -func (dst *Query_Order) XXX_Merge(src proto.Message) { - xxx_messageInfo_Query_Order.Merge(dst, src) -} -func (m *Query_Order) XXX_Size() int { - return xxx_messageInfo_Query_Order.Size(m) -} -func (m *Query_Order) XXX_DiscardUnknown() { - xxx_messageInfo_Query_Order.DiscardUnknown(m) -} - -var xxx_messageInfo_Query_Order proto.InternalMessageInfo - -const Default_Query_Order_Direction Query_Order_Direction = Query_Order_ASCENDING - -func (m *Query_Order) GetProperty() string { - if m != nil && m.Property != nil { - return *m.Property - } - return "" -} - -func (m *Query_Order) GetDirection() Query_Order_Direction { - if m != nil && m.Direction != nil { - return *m.Direction - } - return Default_Query_Order_Direction -} - -type CompiledQuery struct { - Primaryscan *CompiledQuery_PrimaryScan `protobuf:"group,1,req,name=PrimaryScan,json=primaryscan" json:"primaryscan,omitempty"` - Mergejoinscan []*CompiledQuery_MergeJoinScan `protobuf:"group,7,rep,name=MergeJoinScan,json=mergejoinscan" json:"mergejoinscan,omitempty"` - IndexDef *Index `protobuf:"bytes,21,opt,name=index_def,json=indexDef" json:"index_def,omitempty"` - Offset *int32 `protobuf:"varint,10,opt,name=offset,def=0" json:"offset,omitempty"` - Limit *int32 `protobuf:"varint,11,opt,name=limit" json:"limit,omitempty"` - KeysOnly *bool `protobuf:"varint,12,req,name=keys_only,json=keysOnly" json:"keys_only,omitempty"` - PropertyName []string `protobuf:"bytes,24,rep,name=property_name,json=propertyName" json:"property_name,omitempty"` - DistinctInfixSize *int32 `protobuf:"varint,25,opt,name=distinct_infix_size,json=distinctInfixSize" json:"distinct_infix_size,omitempty"` - Entityfilter *CompiledQuery_EntityFilter `protobuf:"group,13,opt,name=EntityFilter,json=entityfilter" json:"entityfilter,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *CompiledQuery) Reset() { *m = CompiledQuery{} } -func (m *CompiledQuery) String() string { return proto.CompactTextString(m) } -func (*CompiledQuery) ProtoMessage() {} -func (*CompiledQuery) Descriptor() ([]byte, []int) { - return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{16} -} -func (m *CompiledQuery) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_CompiledQuery.Unmarshal(m, b) -} -func (m *CompiledQuery) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_CompiledQuery.Marshal(b, m, deterministic) -} -func (dst *CompiledQuery) XXX_Merge(src proto.Message) { - xxx_messageInfo_CompiledQuery.Merge(dst, src) -} -func (m *CompiledQuery) XXX_Size() int { - return xxx_messageInfo_CompiledQuery.Size(m) -} -func (m *CompiledQuery) XXX_DiscardUnknown() { - xxx_messageInfo_CompiledQuery.DiscardUnknown(m) -} - -var xxx_messageInfo_CompiledQuery proto.InternalMessageInfo - -const Default_CompiledQuery_Offset int32 = 0 - -func (m *CompiledQuery) GetPrimaryscan() *CompiledQuery_PrimaryScan { - if m != nil { - return m.Primaryscan - } - return nil -} - -func (m *CompiledQuery) GetMergejoinscan() []*CompiledQuery_MergeJoinScan { - if m != nil { - return m.Mergejoinscan - } - return nil -} - -func (m *CompiledQuery) GetIndexDef() *Index { - if m != nil { - return m.IndexDef - } - return nil -} - -func (m *CompiledQuery) GetOffset() int32 { - if m != nil && m.Offset != nil { - return *m.Offset - } - return Default_CompiledQuery_Offset -} - -func (m *CompiledQuery) GetLimit() int32 { - if m != nil && m.Limit != nil { - return *m.Limit - } - return 0 -} - -func (m *CompiledQuery) GetKeysOnly() bool { - if m != nil && m.KeysOnly != nil { - return *m.KeysOnly - } - return false -} - -func (m *CompiledQuery) GetPropertyName() []string { - if m != nil { - return m.PropertyName - } - return nil -} - -func (m *CompiledQuery) GetDistinctInfixSize() int32 { - if m != nil && m.DistinctInfixSize != nil { - return *m.DistinctInfixSize - } - return 0 -} - -func (m *CompiledQuery) GetEntityfilter() *CompiledQuery_EntityFilter { - if m != nil { - return m.Entityfilter - } - return nil -} - -type CompiledQuery_PrimaryScan struct { - IndexName *string `protobuf:"bytes,2,opt,name=index_name,json=indexName" json:"index_name,omitempty"` - StartKey *string `protobuf:"bytes,3,opt,name=start_key,json=startKey" json:"start_key,omitempty"` - StartInclusive *bool `protobuf:"varint,4,opt,name=start_inclusive,json=startInclusive" json:"start_inclusive,omitempty"` - EndKey *string `protobuf:"bytes,5,opt,name=end_key,json=endKey" json:"end_key,omitempty"` - EndInclusive *bool `protobuf:"varint,6,opt,name=end_inclusive,json=endInclusive" json:"end_inclusive,omitempty"` - StartPostfixValue []string `protobuf:"bytes,22,rep,name=start_postfix_value,json=startPostfixValue" json:"start_postfix_value,omitempty"` - EndPostfixValue []string `protobuf:"bytes,23,rep,name=end_postfix_value,json=endPostfixValue" json:"end_postfix_value,omitempty"` - EndUnappliedLogTimestampUs *int64 `protobuf:"varint,19,opt,name=end_unapplied_log_timestamp_us,json=endUnappliedLogTimestampUs" json:"end_unapplied_log_timestamp_us,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *CompiledQuery_PrimaryScan) Reset() { *m = CompiledQuery_PrimaryScan{} } -func (m *CompiledQuery_PrimaryScan) String() string { return proto.CompactTextString(m) } -func (*CompiledQuery_PrimaryScan) ProtoMessage() {} -func (*CompiledQuery_PrimaryScan) Descriptor() ([]byte, []int) { - return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{16, 0} -} -func (m *CompiledQuery_PrimaryScan) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_CompiledQuery_PrimaryScan.Unmarshal(m, b) -} -func (m *CompiledQuery_PrimaryScan) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_CompiledQuery_PrimaryScan.Marshal(b, m, deterministic) -} -func (dst *CompiledQuery_PrimaryScan) XXX_Merge(src proto.Message) { - xxx_messageInfo_CompiledQuery_PrimaryScan.Merge(dst, src) -} -func (m *CompiledQuery_PrimaryScan) XXX_Size() int { - return xxx_messageInfo_CompiledQuery_PrimaryScan.Size(m) -} -func (m *CompiledQuery_PrimaryScan) XXX_DiscardUnknown() { - xxx_messageInfo_CompiledQuery_PrimaryScan.DiscardUnknown(m) -} - -var xxx_messageInfo_CompiledQuery_PrimaryScan proto.InternalMessageInfo - -func (m *CompiledQuery_PrimaryScan) GetIndexName() string { - if m != nil && m.IndexName != nil { - return *m.IndexName - } - return "" -} - -func (m *CompiledQuery_PrimaryScan) GetStartKey() string { - if m != nil && m.StartKey != nil { - return *m.StartKey - } - return "" -} - -func (m *CompiledQuery_PrimaryScan) GetStartInclusive() bool { - if m != nil && m.StartInclusive != nil { - return *m.StartInclusive - } - return false -} - -func (m *CompiledQuery_PrimaryScan) GetEndKey() string { - if m != nil && m.EndKey != nil { - return *m.EndKey - } - return "" -} - -func (m *CompiledQuery_PrimaryScan) GetEndInclusive() bool { - if m != nil && m.EndInclusive != nil { - return *m.EndInclusive - } - return false -} - -func (m *CompiledQuery_PrimaryScan) GetStartPostfixValue() []string { - if m != nil { - return m.StartPostfixValue - } - return nil -} - -func (m *CompiledQuery_PrimaryScan) GetEndPostfixValue() []string { - if m != nil { - return m.EndPostfixValue - } - return nil -} - -func (m *CompiledQuery_PrimaryScan) GetEndUnappliedLogTimestampUs() int64 { - if m != nil && m.EndUnappliedLogTimestampUs != nil { - return *m.EndUnappliedLogTimestampUs - } - return 0 -} - -type CompiledQuery_MergeJoinScan struct { - IndexName *string `protobuf:"bytes,8,req,name=index_name,json=indexName" json:"index_name,omitempty"` - PrefixValue []string `protobuf:"bytes,9,rep,name=prefix_value,json=prefixValue" json:"prefix_value,omitempty"` - ValuePrefix *bool `protobuf:"varint,20,opt,name=value_prefix,json=valuePrefix,def=0" json:"value_prefix,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *CompiledQuery_MergeJoinScan) Reset() { *m = CompiledQuery_MergeJoinScan{} } -func (m *CompiledQuery_MergeJoinScan) String() string { return proto.CompactTextString(m) } -func (*CompiledQuery_MergeJoinScan) ProtoMessage() {} -func (*CompiledQuery_MergeJoinScan) Descriptor() ([]byte, []int) { - return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{16, 1} -} -func (m *CompiledQuery_MergeJoinScan) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_CompiledQuery_MergeJoinScan.Unmarshal(m, b) -} -func (m *CompiledQuery_MergeJoinScan) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_CompiledQuery_MergeJoinScan.Marshal(b, m, deterministic) -} -func (dst *CompiledQuery_MergeJoinScan) XXX_Merge(src proto.Message) { - xxx_messageInfo_CompiledQuery_MergeJoinScan.Merge(dst, src) -} -func (m *CompiledQuery_MergeJoinScan) XXX_Size() int { - return xxx_messageInfo_CompiledQuery_MergeJoinScan.Size(m) -} -func (m *CompiledQuery_MergeJoinScan) XXX_DiscardUnknown() { - xxx_messageInfo_CompiledQuery_MergeJoinScan.DiscardUnknown(m) -} - -var xxx_messageInfo_CompiledQuery_MergeJoinScan proto.InternalMessageInfo - -const Default_CompiledQuery_MergeJoinScan_ValuePrefix bool = false - -func (m *CompiledQuery_MergeJoinScan) GetIndexName() string { - if m != nil && m.IndexName != nil { - return *m.IndexName - } - return "" -} - -func (m *CompiledQuery_MergeJoinScan) GetPrefixValue() []string { - if m != nil { - return m.PrefixValue - } - return nil -} - -func (m *CompiledQuery_MergeJoinScan) GetValuePrefix() bool { - if m != nil && m.ValuePrefix != nil { - return *m.ValuePrefix - } - return Default_CompiledQuery_MergeJoinScan_ValuePrefix -} - -type CompiledQuery_EntityFilter struct { - Distinct *bool `protobuf:"varint,14,opt,name=distinct,def=0" json:"distinct,omitempty"` - Kind *string `protobuf:"bytes,17,opt,name=kind" json:"kind,omitempty"` - Ancestor *Reference `protobuf:"bytes,18,opt,name=ancestor" json:"ancestor,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *CompiledQuery_EntityFilter) Reset() { *m = CompiledQuery_EntityFilter{} } -func (m *CompiledQuery_EntityFilter) String() string { return proto.CompactTextString(m) } -func (*CompiledQuery_EntityFilter) ProtoMessage() {} -func (*CompiledQuery_EntityFilter) Descriptor() ([]byte, []int) { - return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{16, 2} -} -func (m *CompiledQuery_EntityFilter) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_CompiledQuery_EntityFilter.Unmarshal(m, b) -} -func (m *CompiledQuery_EntityFilter) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_CompiledQuery_EntityFilter.Marshal(b, m, deterministic) -} -func (dst *CompiledQuery_EntityFilter) XXX_Merge(src proto.Message) { - xxx_messageInfo_CompiledQuery_EntityFilter.Merge(dst, src) -} -func (m *CompiledQuery_EntityFilter) XXX_Size() int { - return xxx_messageInfo_CompiledQuery_EntityFilter.Size(m) -} -func (m *CompiledQuery_EntityFilter) XXX_DiscardUnknown() { - xxx_messageInfo_CompiledQuery_EntityFilter.DiscardUnknown(m) -} - -var xxx_messageInfo_CompiledQuery_EntityFilter proto.InternalMessageInfo - -const Default_CompiledQuery_EntityFilter_Distinct bool = false - -func (m *CompiledQuery_EntityFilter) GetDistinct() bool { - if m != nil && m.Distinct != nil { - return *m.Distinct - } - return Default_CompiledQuery_EntityFilter_Distinct -} - -func (m *CompiledQuery_EntityFilter) GetKind() string { - if m != nil && m.Kind != nil { - return *m.Kind - } - return "" -} - -func (m *CompiledQuery_EntityFilter) GetAncestor() *Reference { - if m != nil { - return m.Ancestor - } - return nil -} - -type CompiledCursor struct { - Position *CompiledCursor_Position `protobuf:"group,2,opt,name=Position,json=position" json:"position,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *CompiledCursor) Reset() { *m = CompiledCursor{} } -func (m *CompiledCursor) String() string { return proto.CompactTextString(m) } -func (*CompiledCursor) ProtoMessage() {} -func (*CompiledCursor) Descriptor() ([]byte, []int) { - return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{17} -} -func (m *CompiledCursor) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_CompiledCursor.Unmarshal(m, b) -} -func (m *CompiledCursor) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_CompiledCursor.Marshal(b, m, deterministic) -} -func (dst *CompiledCursor) XXX_Merge(src proto.Message) { - xxx_messageInfo_CompiledCursor.Merge(dst, src) -} -func (m *CompiledCursor) XXX_Size() int { - return xxx_messageInfo_CompiledCursor.Size(m) -} -func (m *CompiledCursor) XXX_DiscardUnknown() { - xxx_messageInfo_CompiledCursor.DiscardUnknown(m) -} - -var xxx_messageInfo_CompiledCursor proto.InternalMessageInfo - -func (m *CompiledCursor) GetPosition() *CompiledCursor_Position { - if m != nil { - return m.Position - } - return nil -} - -type CompiledCursor_Position struct { - StartKey *string `protobuf:"bytes,27,opt,name=start_key,json=startKey" json:"start_key,omitempty"` - Indexvalue []*CompiledCursor_Position_IndexValue `protobuf:"group,29,rep,name=IndexValue,json=indexvalue" json:"indexvalue,omitempty"` - Key *Reference `protobuf:"bytes,32,opt,name=key" json:"key,omitempty"` - StartInclusive *bool `protobuf:"varint,28,opt,name=start_inclusive,json=startInclusive,def=1" json:"start_inclusive,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *CompiledCursor_Position) Reset() { *m = CompiledCursor_Position{} } -func (m *CompiledCursor_Position) String() string { return proto.CompactTextString(m) } -func (*CompiledCursor_Position) ProtoMessage() {} -func (*CompiledCursor_Position) Descriptor() ([]byte, []int) { - return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{17, 0} -} -func (m *CompiledCursor_Position) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_CompiledCursor_Position.Unmarshal(m, b) -} -func (m *CompiledCursor_Position) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_CompiledCursor_Position.Marshal(b, m, deterministic) -} -func (dst *CompiledCursor_Position) XXX_Merge(src proto.Message) { - xxx_messageInfo_CompiledCursor_Position.Merge(dst, src) -} -func (m *CompiledCursor_Position) XXX_Size() int { - return xxx_messageInfo_CompiledCursor_Position.Size(m) -} -func (m *CompiledCursor_Position) XXX_DiscardUnknown() { - xxx_messageInfo_CompiledCursor_Position.DiscardUnknown(m) -} - -var xxx_messageInfo_CompiledCursor_Position proto.InternalMessageInfo - -const Default_CompiledCursor_Position_StartInclusive bool = true - -func (m *CompiledCursor_Position) GetStartKey() string { - if m != nil && m.StartKey != nil { - return *m.StartKey - } - return "" -} - -func (m *CompiledCursor_Position) GetIndexvalue() []*CompiledCursor_Position_IndexValue { - if m != nil { - return m.Indexvalue - } - return nil -} - -func (m *CompiledCursor_Position) GetKey() *Reference { - if m != nil { - return m.Key - } - return nil -} - -func (m *CompiledCursor_Position) GetStartInclusive() bool { - if m != nil && m.StartInclusive != nil { - return *m.StartInclusive - } - return Default_CompiledCursor_Position_StartInclusive -} - -type CompiledCursor_Position_IndexValue struct { - Property *string `protobuf:"bytes,30,opt,name=property" json:"property,omitempty"` - Value *PropertyValue `protobuf:"bytes,31,req,name=value" json:"value,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *CompiledCursor_Position_IndexValue) Reset() { *m = CompiledCursor_Position_IndexValue{} } -func (m *CompiledCursor_Position_IndexValue) String() string { return proto.CompactTextString(m) } -func (*CompiledCursor_Position_IndexValue) ProtoMessage() {} -func (*CompiledCursor_Position_IndexValue) Descriptor() ([]byte, []int) { - return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{17, 0, 0} -} -func (m *CompiledCursor_Position_IndexValue) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_CompiledCursor_Position_IndexValue.Unmarshal(m, b) -} -func (m *CompiledCursor_Position_IndexValue) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_CompiledCursor_Position_IndexValue.Marshal(b, m, deterministic) -} -func (dst *CompiledCursor_Position_IndexValue) XXX_Merge(src proto.Message) { - xxx_messageInfo_CompiledCursor_Position_IndexValue.Merge(dst, src) -} -func (m *CompiledCursor_Position_IndexValue) XXX_Size() int { - return xxx_messageInfo_CompiledCursor_Position_IndexValue.Size(m) -} -func (m *CompiledCursor_Position_IndexValue) XXX_DiscardUnknown() { - xxx_messageInfo_CompiledCursor_Position_IndexValue.DiscardUnknown(m) -} - -var xxx_messageInfo_CompiledCursor_Position_IndexValue proto.InternalMessageInfo - -func (m *CompiledCursor_Position_IndexValue) GetProperty() string { - if m != nil && m.Property != nil { - return *m.Property - } - return "" -} - -func (m *CompiledCursor_Position_IndexValue) GetValue() *PropertyValue { - if m != nil { - return m.Value - } - return nil -} - -type Cursor struct { - Cursor *uint64 `protobuf:"fixed64,1,req,name=cursor" json:"cursor,omitempty"` - App *string `protobuf:"bytes,2,opt,name=app" json:"app,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *Cursor) Reset() { *m = Cursor{} } -func (m *Cursor) String() string { return proto.CompactTextString(m) } -func (*Cursor) ProtoMessage() {} -func (*Cursor) Descriptor() ([]byte, []int) { - return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{18} -} -func (m *Cursor) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_Cursor.Unmarshal(m, b) -} -func (m *Cursor) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_Cursor.Marshal(b, m, deterministic) -} -func (dst *Cursor) XXX_Merge(src proto.Message) { - xxx_messageInfo_Cursor.Merge(dst, src) -} -func (m *Cursor) XXX_Size() int { - return xxx_messageInfo_Cursor.Size(m) -} -func (m *Cursor) XXX_DiscardUnknown() { - xxx_messageInfo_Cursor.DiscardUnknown(m) -} - -var xxx_messageInfo_Cursor proto.InternalMessageInfo - -func (m *Cursor) GetCursor() uint64 { - if m != nil && m.Cursor != nil { - return *m.Cursor - } - return 0 -} - -func (m *Cursor) GetApp() string { - if m != nil && m.App != nil { - return *m.App - } - return "" -} - -type Error struct { - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *Error) Reset() { *m = Error{} } -func (m *Error) String() string { return proto.CompactTextString(m) } -func (*Error) ProtoMessage() {} -func (*Error) Descriptor() ([]byte, []int) { - return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{19} -} -func (m *Error) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_Error.Unmarshal(m, b) -} -func (m *Error) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_Error.Marshal(b, m, deterministic) -} -func (dst *Error) XXX_Merge(src proto.Message) { - xxx_messageInfo_Error.Merge(dst, src) -} -func (m *Error) XXX_Size() int { - return xxx_messageInfo_Error.Size(m) -} -func (m *Error) XXX_DiscardUnknown() { - xxx_messageInfo_Error.DiscardUnknown(m) -} - -var xxx_messageInfo_Error proto.InternalMessageInfo - -type Cost struct { - IndexWrites *int32 `protobuf:"varint,1,opt,name=index_writes,json=indexWrites" json:"index_writes,omitempty"` - IndexWriteBytes *int32 `protobuf:"varint,2,opt,name=index_write_bytes,json=indexWriteBytes" json:"index_write_bytes,omitempty"` - EntityWrites *int32 `protobuf:"varint,3,opt,name=entity_writes,json=entityWrites" json:"entity_writes,omitempty"` - EntityWriteBytes *int32 `protobuf:"varint,4,opt,name=entity_write_bytes,json=entityWriteBytes" json:"entity_write_bytes,omitempty"` - Commitcost *Cost_CommitCost `protobuf:"group,5,opt,name=CommitCost,json=commitcost" json:"commitcost,omitempty"` - ApproximateStorageDelta *int32 `protobuf:"varint,8,opt,name=approximate_storage_delta,json=approximateStorageDelta" json:"approximate_storage_delta,omitempty"` - IdSequenceUpdates *int32 `protobuf:"varint,9,opt,name=id_sequence_updates,json=idSequenceUpdates" json:"id_sequence_updates,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *Cost) Reset() { *m = Cost{} } -func (m *Cost) String() string { return proto.CompactTextString(m) } -func (*Cost) ProtoMessage() {} -func (*Cost) Descriptor() ([]byte, []int) { - return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{20} -} -func (m *Cost) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_Cost.Unmarshal(m, b) -} -func (m *Cost) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_Cost.Marshal(b, m, deterministic) -} -func (dst *Cost) XXX_Merge(src proto.Message) { - xxx_messageInfo_Cost.Merge(dst, src) -} -func (m *Cost) XXX_Size() int { - return xxx_messageInfo_Cost.Size(m) -} -func (m *Cost) XXX_DiscardUnknown() { - xxx_messageInfo_Cost.DiscardUnknown(m) -} - -var xxx_messageInfo_Cost proto.InternalMessageInfo - -func (m *Cost) GetIndexWrites() int32 { - if m != nil && m.IndexWrites != nil { - return *m.IndexWrites - } - return 0 -} - -func (m *Cost) GetIndexWriteBytes() int32 { - if m != nil && m.IndexWriteBytes != nil { - return *m.IndexWriteBytes - } - return 0 -} - -func (m *Cost) GetEntityWrites() int32 { - if m != nil && m.EntityWrites != nil { - return *m.EntityWrites - } - return 0 -} - -func (m *Cost) GetEntityWriteBytes() int32 { - if m != nil && m.EntityWriteBytes != nil { - return *m.EntityWriteBytes - } - return 0 -} - -func (m *Cost) GetCommitcost() *Cost_CommitCost { - if m != nil { - return m.Commitcost - } - return nil -} - -func (m *Cost) GetApproximateStorageDelta() int32 { - if m != nil && m.ApproximateStorageDelta != nil { - return *m.ApproximateStorageDelta - } - return 0 -} - -func (m *Cost) GetIdSequenceUpdates() int32 { - if m != nil && m.IdSequenceUpdates != nil { - return *m.IdSequenceUpdates - } - return 0 -} - -type Cost_CommitCost struct { - RequestedEntityPuts *int32 `protobuf:"varint,6,opt,name=requested_entity_puts,json=requestedEntityPuts" json:"requested_entity_puts,omitempty"` - RequestedEntityDeletes *int32 `protobuf:"varint,7,opt,name=requested_entity_deletes,json=requestedEntityDeletes" json:"requested_entity_deletes,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *Cost_CommitCost) Reset() { *m = Cost_CommitCost{} } -func (m *Cost_CommitCost) String() string { return proto.CompactTextString(m) } -func (*Cost_CommitCost) ProtoMessage() {} -func (*Cost_CommitCost) Descriptor() ([]byte, []int) { - return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{20, 0} -} -func (m *Cost_CommitCost) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_Cost_CommitCost.Unmarshal(m, b) -} -func (m *Cost_CommitCost) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_Cost_CommitCost.Marshal(b, m, deterministic) -} -func (dst *Cost_CommitCost) XXX_Merge(src proto.Message) { - xxx_messageInfo_Cost_CommitCost.Merge(dst, src) -} -func (m *Cost_CommitCost) XXX_Size() int { - return xxx_messageInfo_Cost_CommitCost.Size(m) -} -func (m *Cost_CommitCost) XXX_DiscardUnknown() { - xxx_messageInfo_Cost_CommitCost.DiscardUnknown(m) -} - -var xxx_messageInfo_Cost_CommitCost proto.InternalMessageInfo - -func (m *Cost_CommitCost) GetRequestedEntityPuts() int32 { - if m != nil && m.RequestedEntityPuts != nil { - return *m.RequestedEntityPuts - } - return 0 -} - -func (m *Cost_CommitCost) GetRequestedEntityDeletes() int32 { - if m != nil && m.RequestedEntityDeletes != nil { - return *m.RequestedEntityDeletes - } - return 0 -} - -type GetRequest struct { - Header *InternalHeader `protobuf:"bytes,6,opt,name=header" json:"header,omitempty"` - Key []*Reference `protobuf:"bytes,1,rep,name=key" json:"key,omitempty"` - Transaction *Transaction `protobuf:"bytes,2,opt,name=transaction" json:"transaction,omitempty"` - FailoverMs *int64 `protobuf:"varint,3,opt,name=failover_ms,json=failoverMs" json:"failover_ms,omitempty"` - Strong *bool `protobuf:"varint,4,opt,name=strong" json:"strong,omitempty"` - AllowDeferred *bool `protobuf:"varint,5,opt,name=allow_deferred,json=allowDeferred,def=0" json:"allow_deferred,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *GetRequest) Reset() { *m = GetRequest{} } -func (m *GetRequest) String() string { return proto.CompactTextString(m) } -func (*GetRequest) ProtoMessage() {} -func (*GetRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{21} -} -func (m *GetRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetRequest.Unmarshal(m, b) -} -func (m *GetRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetRequest.Marshal(b, m, deterministic) -} -func (dst *GetRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetRequest.Merge(dst, src) -} -func (m *GetRequest) XXX_Size() int { - return xxx_messageInfo_GetRequest.Size(m) -} -func (m *GetRequest) XXX_DiscardUnknown() { - xxx_messageInfo_GetRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_GetRequest proto.InternalMessageInfo - -const Default_GetRequest_AllowDeferred bool = false - -func (m *GetRequest) GetHeader() *InternalHeader { - if m != nil { - return m.Header - } - return nil -} - -func (m *GetRequest) GetKey() []*Reference { - if m != nil { - return m.Key - } - return nil -} - -func (m *GetRequest) GetTransaction() *Transaction { - if m != nil { - return m.Transaction - } - return nil -} - -func (m *GetRequest) GetFailoverMs() int64 { - if m != nil && m.FailoverMs != nil { - return *m.FailoverMs - } - return 0 -} - -func (m *GetRequest) GetStrong() bool { - if m != nil && m.Strong != nil { - return *m.Strong - } - return false -} - -func (m *GetRequest) GetAllowDeferred() bool { - if m != nil && m.AllowDeferred != nil { - return *m.AllowDeferred - } - return Default_GetRequest_AllowDeferred -} - -type GetResponse struct { - Entity []*GetResponse_Entity `protobuf:"group,1,rep,name=Entity,json=entity" json:"entity,omitempty"` - Deferred []*Reference `protobuf:"bytes,5,rep,name=deferred" json:"deferred,omitempty"` - InOrder *bool `protobuf:"varint,6,opt,name=in_order,json=inOrder,def=1" json:"in_order,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *GetResponse) Reset() { *m = GetResponse{} } -func (m *GetResponse) String() string { return proto.CompactTextString(m) } -func (*GetResponse) ProtoMessage() {} -func (*GetResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{22} -} -func (m *GetResponse) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetResponse.Unmarshal(m, b) -} -func (m *GetResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetResponse.Marshal(b, m, deterministic) -} -func (dst *GetResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetResponse.Merge(dst, src) -} -func (m *GetResponse) XXX_Size() int { - return xxx_messageInfo_GetResponse.Size(m) -} -func (m *GetResponse) XXX_DiscardUnknown() { - xxx_messageInfo_GetResponse.DiscardUnknown(m) -} - -var xxx_messageInfo_GetResponse proto.InternalMessageInfo - -const Default_GetResponse_InOrder bool = true - -func (m *GetResponse) GetEntity() []*GetResponse_Entity { - if m != nil { - return m.Entity - } - return nil -} - -func (m *GetResponse) GetDeferred() []*Reference { - if m != nil { - return m.Deferred - } - return nil -} - -func (m *GetResponse) GetInOrder() bool { - if m != nil && m.InOrder != nil { - return *m.InOrder - } - return Default_GetResponse_InOrder -} - -type GetResponse_Entity struct { - Entity *EntityProto `protobuf:"bytes,2,opt,name=entity" json:"entity,omitempty"` - Key *Reference `protobuf:"bytes,4,opt,name=key" json:"key,omitempty"` - Version *int64 `protobuf:"varint,3,opt,name=version" json:"version,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *GetResponse_Entity) Reset() { *m = GetResponse_Entity{} } -func (m *GetResponse_Entity) String() string { return proto.CompactTextString(m) } -func (*GetResponse_Entity) ProtoMessage() {} -func (*GetResponse_Entity) Descriptor() ([]byte, []int) { - return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{22, 0} -} -func (m *GetResponse_Entity) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetResponse_Entity.Unmarshal(m, b) -} -func (m *GetResponse_Entity) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetResponse_Entity.Marshal(b, m, deterministic) -} -func (dst *GetResponse_Entity) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetResponse_Entity.Merge(dst, src) -} -func (m *GetResponse_Entity) XXX_Size() int { - return xxx_messageInfo_GetResponse_Entity.Size(m) -} -func (m *GetResponse_Entity) XXX_DiscardUnknown() { - xxx_messageInfo_GetResponse_Entity.DiscardUnknown(m) -} - -var xxx_messageInfo_GetResponse_Entity proto.InternalMessageInfo - -func (m *GetResponse_Entity) GetEntity() *EntityProto { - if m != nil { - return m.Entity - } - return nil -} - -func (m *GetResponse_Entity) GetKey() *Reference { - if m != nil { - return m.Key - } - return nil -} - -func (m *GetResponse_Entity) GetVersion() int64 { - if m != nil && m.Version != nil { - return *m.Version - } - return 0 -} - -type PutRequest struct { - Header *InternalHeader `protobuf:"bytes,11,opt,name=header" json:"header,omitempty"` - Entity []*EntityProto `protobuf:"bytes,1,rep,name=entity" json:"entity,omitempty"` - Transaction *Transaction `protobuf:"bytes,2,opt,name=transaction" json:"transaction,omitempty"` - CompositeIndex []*CompositeIndex `protobuf:"bytes,3,rep,name=composite_index,json=compositeIndex" json:"composite_index,omitempty"` - Trusted *bool `protobuf:"varint,4,opt,name=trusted,def=0" json:"trusted,omitempty"` - Force *bool `protobuf:"varint,7,opt,name=force,def=0" json:"force,omitempty"` - MarkChanges *bool `protobuf:"varint,8,opt,name=mark_changes,json=markChanges,def=0" json:"mark_changes,omitempty"` - Snapshot []*Snapshot `protobuf:"bytes,9,rep,name=snapshot" json:"snapshot,omitempty"` - AutoIdPolicy *PutRequest_AutoIdPolicy `protobuf:"varint,10,opt,name=auto_id_policy,json=autoIdPolicy,enum=appengine.PutRequest_AutoIdPolicy,def=0" json:"auto_id_policy,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *PutRequest) Reset() { *m = PutRequest{} } -func (m *PutRequest) String() string { return proto.CompactTextString(m) } -func (*PutRequest) ProtoMessage() {} -func (*PutRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{23} -} -func (m *PutRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_PutRequest.Unmarshal(m, b) -} -func (m *PutRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_PutRequest.Marshal(b, m, deterministic) -} -func (dst *PutRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_PutRequest.Merge(dst, src) -} -func (m *PutRequest) XXX_Size() int { - return xxx_messageInfo_PutRequest.Size(m) -} -func (m *PutRequest) XXX_DiscardUnknown() { - xxx_messageInfo_PutRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_PutRequest proto.InternalMessageInfo - -const Default_PutRequest_Trusted bool = false -const Default_PutRequest_Force bool = false -const Default_PutRequest_MarkChanges bool = false -const Default_PutRequest_AutoIdPolicy PutRequest_AutoIdPolicy = PutRequest_CURRENT - -func (m *PutRequest) GetHeader() *InternalHeader { - if m != nil { - return m.Header - } - return nil -} - -func (m *PutRequest) GetEntity() []*EntityProto { - if m != nil { - return m.Entity - } - return nil -} - -func (m *PutRequest) GetTransaction() *Transaction { - if m != nil { - return m.Transaction - } - return nil -} - -func (m *PutRequest) GetCompositeIndex() []*CompositeIndex { - if m != nil { - return m.CompositeIndex - } - return nil -} - -func (m *PutRequest) GetTrusted() bool { - if m != nil && m.Trusted != nil { - return *m.Trusted - } - return Default_PutRequest_Trusted -} - -func (m *PutRequest) GetForce() bool { - if m != nil && m.Force != nil { - return *m.Force - } - return Default_PutRequest_Force -} - -func (m *PutRequest) GetMarkChanges() bool { - if m != nil && m.MarkChanges != nil { - return *m.MarkChanges - } - return Default_PutRequest_MarkChanges -} - -func (m *PutRequest) GetSnapshot() []*Snapshot { - if m != nil { - return m.Snapshot - } - return nil -} - -func (m *PutRequest) GetAutoIdPolicy() PutRequest_AutoIdPolicy { - if m != nil && m.AutoIdPolicy != nil { - return *m.AutoIdPolicy - } - return Default_PutRequest_AutoIdPolicy -} - -type PutResponse struct { - Key []*Reference `protobuf:"bytes,1,rep,name=key" json:"key,omitempty"` - Cost *Cost `protobuf:"bytes,2,opt,name=cost" json:"cost,omitempty"` - Version []int64 `protobuf:"varint,3,rep,name=version" json:"version,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *PutResponse) Reset() { *m = PutResponse{} } -func (m *PutResponse) String() string { return proto.CompactTextString(m) } -func (*PutResponse) ProtoMessage() {} -func (*PutResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{24} -} -func (m *PutResponse) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_PutResponse.Unmarshal(m, b) -} -func (m *PutResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_PutResponse.Marshal(b, m, deterministic) -} -func (dst *PutResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_PutResponse.Merge(dst, src) -} -func (m *PutResponse) XXX_Size() int { - return xxx_messageInfo_PutResponse.Size(m) -} -func (m *PutResponse) XXX_DiscardUnknown() { - xxx_messageInfo_PutResponse.DiscardUnknown(m) -} - -var xxx_messageInfo_PutResponse proto.InternalMessageInfo - -func (m *PutResponse) GetKey() []*Reference { - if m != nil { - return m.Key - } - return nil -} - -func (m *PutResponse) GetCost() *Cost { - if m != nil { - return m.Cost - } - return nil -} - -func (m *PutResponse) GetVersion() []int64 { - if m != nil { - return m.Version - } - return nil -} - -type TouchRequest struct { - Header *InternalHeader `protobuf:"bytes,10,opt,name=header" json:"header,omitempty"` - Key []*Reference `protobuf:"bytes,1,rep,name=key" json:"key,omitempty"` - CompositeIndex []*CompositeIndex `protobuf:"bytes,2,rep,name=composite_index,json=compositeIndex" json:"composite_index,omitempty"` - Force *bool `protobuf:"varint,3,opt,name=force,def=0" json:"force,omitempty"` - Snapshot []*Snapshot `protobuf:"bytes,9,rep,name=snapshot" json:"snapshot,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *TouchRequest) Reset() { *m = TouchRequest{} } -func (m *TouchRequest) String() string { return proto.CompactTextString(m) } -func (*TouchRequest) ProtoMessage() {} -func (*TouchRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{25} -} -func (m *TouchRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_TouchRequest.Unmarshal(m, b) -} -func (m *TouchRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_TouchRequest.Marshal(b, m, deterministic) -} -func (dst *TouchRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_TouchRequest.Merge(dst, src) -} -func (m *TouchRequest) XXX_Size() int { - return xxx_messageInfo_TouchRequest.Size(m) -} -func (m *TouchRequest) XXX_DiscardUnknown() { - xxx_messageInfo_TouchRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_TouchRequest proto.InternalMessageInfo - -const Default_TouchRequest_Force bool = false - -func (m *TouchRequest) GetHeader() *InternalHeader { - if m != nil { - return m.Header - } - return nil -} - -func (m *TouchRequest) GetKey() []*Reference { - if m != nil { - return m.Key - } - return nil -} - -func (m *TouchRequest) GetCompositeIndex() []*CompositeIndex { - if m != nil { - return m.CompositeIndex - } - return nil -} - -func (m *TouchRequest) GetForce() bool { - if m != nil && m.Force != nil { - return *m.Force - } - return Default_TouchRequest_Force -} - -func (m *TouchRequest) GetSnapshot() []*Snapshot { - if m != nil { - return m.Snapshot - } - return nil -} - -type TouchResponse struct { - Cost *Cost `protobuf:"bytes,1,opt,name=cost" json:"cost,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *TouchResponse) Reset() { *m = TouchResponse{} } -func (m *TouchResponse) String() string { return proto.CompactTextString(m) } -func (*TouchResponse) ProtoMessage() {} -func (*TouchResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{26} -} -func (m *TouchResponse) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_TouchResponse.Unmarshal(m, b) -} -func (m *TouchResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_TouchResponse.Marshal(b, m, deterministic) -} -func (dst *TouchResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_TouchResponse.Merge(dst, src) -} -func (m *TouchResponse) XXX_Size() int { - return xxx_messageInfo_TouchResponse.Size(m) -} -func (m *TouchResponse) XXX_DiscardUnknown() { - xxx_messageInfo_TouchResponse.DiscardUnknown(m) -} - -var xxx_messageInfo_TouchResponse proto.InternalMessageInfo - -func (m *TouchResponse) GetCost() *Cost { - if m != nil { - return m.Cost - } - return nil -} - -type DeleteRequest struct { - Header *InternalHeader `protobuf:"bytes,10,opt,name=header" json:"header,omitempty"` - Key []*Reference `protobuf:"bytes,6,rep,name=key" json:"key,omitempty"` - Transaction *Transaction `protobuf:"bytes,5,opt,name=transaction" json:"transaction,omitempty"` - Trusted *bool `protobuf:"varint,4,opt,name=trusted,def=0" json:"trusted,omitempty"` - Force *bool `protobuf:"varint,7,opt,name=force,def=0" json:"force,omitempty"` - MarkChanges *bool `protobuf:"varint,8,opt,name=mark_changes,json=markChanges,def=0" json:"mark_changes,omitempty"` - Snapshot []*Snapshot `protobuf:"bytes,9,rep,name=snapshot" json:"snapshot,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *DeleteRequest) Reset() { *m = DeleteRequest{} } -func (m *DeleteRequest) String() string { return proto.CompactTextString(m) } -func (*DeleteRequest) ProtoMessage() {} -func (*DeleteRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{27} -} -func (m *DeleteRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_DeleteRequest.Unmarshal(m, b) -} -func (m *DeleteRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_DeleteRequest.Marshal(b, m, deterministic) -} -func (dst *DeleteRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_DeleteRequest.Merge(dst, src) -} -func (m *DeleteRequest) XXX_Size() int { - return xxx_messageInfo_DeleteRequest.Size(m) -} -func (m *DeleteRequest) XXX_DiscardUnknown() { - xxx_messageInfo_DeleteRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_DeleteRequest proto.InternalMessageInfo - -const Default_DeleteRequest_Trusted bool = false -const Default_DeleteRequest_Force bool = false -const Default_DeleteRequest_MarkChanges bool = false - -func (m *DeleteRequest) GetHeader() *InternalHeader { - if m != nil { - return m.Header - } - return nil -} - -func (m *DeleteRequest) GetKey() []*Reference { - if m != nil { - return m.Key - } - return nil -} - -func (m *DeleteRequest) GetTransaction() *Transaction { - if m != nil { - return m.Transaction - } - return nil -} - -func (m *DeleteRequest) GetTrusted() bool { - if m != nil && m.Trusted != nil { - return *m.Trusted - } - return Default_DeleteRequest_Trusted -} - -func (m *DeleteRequest) GetForce() bool { - if m != nil && m.Force != nil { - return *m.Force - } - return Default_DeleteRequest_Force -} - -func (m *DeleteRequest) GetMarkChanges() bool { - if m != nil && m.MarkChanges != nil { - return *m.MarkChanges - } - return Default_DeleteRequest_MarkChanges -} - -func (m *DeleteRequest) GetSnapshot() []*Snapshot { - if m != nil { - return m.Snapshot - } - return nil -} - -type DeleteResponse struct { - Cost *Cost `protobuf:"bytes,1,opt,name=cost" json:"cost,omitempty"` - Version []int64 `protobuf:"varint,3,rep,name=version" json:"version,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *DeleteResponse) Reset() { *m = DeleteResponse{} } -func (m *DeleteResponse) String() string { return proto.CompactTextString(m) } -func (*DeleteResponse) ProtoMessage() {} -func (*DeleteResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{28} -} -func (m *DeleteResponse) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_DeleteResponse.Unmarshal(m, b) -} -func (m *DeleteResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_DeleteResponse.Marshal(b, m, deterministic) -} -func (dst *DeleteResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_DeleteResponse.Merge(dst, src) -} -func (m *DeleteResponse) XXX_Size() int { - return xxx_messageInfo_DeleteResponse.Size(m) -} -func (m *DeleteResponse) XXX_DiscardUnknown() { - xxx_messageInfo_DeleteResponse.DiscardUnknown(m) -} - -var xxx_messageInfo_DeleteResponse proto.InternalMessageInfo - -func (m *DeleteResponse) GetCost() *Cost { - if m != nil { - return m.Cost - } - return nil -} - -func (m *DeleteResponse) GetVersion() []int64 { - if m != nil { - return m.Version - } - return nil -} - -type NextRequest struct { - Header *InternalHeader `protobuf:"bytes,5,opt,name=header" json:"header,omitempty"` - Cursor *Cursor `protobuf:"bytes,1,req,name=cursor" json:"cursor,omitempty"` - Count *int32 `protobuf:"varint,2,opt,name=count" json:"count,omitempty"` - Offset *int32 `protobuf:"varint,4,opt,name=offset,def=0" json:"offset,omitempty"` - Compile *bool `protobuf:"varint,3,opt,name=compile,def=0" json:"compile,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *NextRequest) Reset() { *m = NextRequest{} } -func (m *NextRequest) String() string { return proto.CompactTextString(m) } -func (*NextRequest) ProtoMessage() {} -func (*NextRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{29} -} -func (m *NextRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_NextRequest.Unmarshal(m, b) -} -func (m *NextRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_NextRequest.Marshal(b, m, deterministic) -} -func (dst *NextRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_NextRequest.Merge(dst, src) -} -func (m *NextRequest) XXX_Size() int { - return xxx_messageInfo_NextRequest.Size(m) -} -func (m *NextRequest) XXX_DiscardUnknown() { - xxx_messageInfo_NextRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_NextRequest proto.InternalMessageInfo - -const Default_NextRequest_Offset int32 = 0 -const Default_NextRequest_Compile bool = false - -func (m *NextRequest) GetHeader() *InternalHeader { - if m != nil { - return m.Header - } - return nil -} - -func (m *NextRequest) GetCursor() *Cursor { - if m != nil { - return m.Cursor - } - return nil -} - -func (m *NextRequest) GetCount() int32 { - if m != nil && m.Count != nil { - return *m.Count - } - return 0 -} - -func (m *NextRequest) GetOffset() int32 { - if m != nil && m.Offset != nil { - return *m.Offset - } - return Default_NextRequest_Offset -} - -func (m *NextRequest) GetCompile() bool { - if m != nil && m.Compile != nil { - return *m.Compile - } - return Default_NextRequest_Compile -} - -type QueryResult struct { - Cursor *Cursor `protobuf:"bytes,1,opt,name=cursor" json:"cursor,omitempty"` - Result []*EntityProto `protobuf:"bytes,2,rep,name=result" json:"result,omitempty"` - SkippedResults *int32 `protobuf:"varint,7,opt,name=skipped_results,json=skippedResults" json:"skipped_results,omitempty"` - MoreResults *bool `protobuf:"varint,3,req,name=more_results,json=moreResults" json:"more_results,omitempty"` - KeysOnly *bool `protobuf:"varint,4,opt,name=keys_only,json=keysOnly" json:"keys_only,omitempty"` - IndexOnly *bool `protobuf:"varint,9,opt,name=index_only,json=indexOnly" json:"index_only,omitempty"` - SmallOps *bool `protobuf:"varint,10,opt,name=small_ops,json=smallOps" json:"small_ops,omitempty"` - CompiledQuery *CompiledQuery `protobuf:"bytes,5,opt,name=compiled_query,json=compiledQuery" json:"compiled_query,omitempty"` - CompiledCursor *CompiledCursor `protobuf:"bytes,6,opt,name=compiled_cursor,json=compiledCursor" json:"compiled_cursor,omitempty"` - Index []*CompositeIndex `protobuf:"bytes,8,rep,name=index" json:"index,omitempty"` - Version []int64 `protobuf:"varint,11,rep,name=version" json:"version,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *QueryResult) Reset() { *m = QueryResult{} } -func (m *QueryResult) String() string { return proto.CompactTextString(m) } -func (*QueryResult) ProtoMessage() {} -func (*QueryResult) Descriptor() ([]byte, []int) { - return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{30} -} -func (m *QueryResult) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_QueryResult.Unmarshal(m, b) -} -func (m *QueryResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_QueryResult.Marshal(b, m, deterministic) -} -func (dst *QueryResult) XXX_Merge(src proto.Message) { - xxx_messageInfo_QueryResult.Merge(dst, src) -} -func (m *QueryResult) XXX_Size() int { - return xxx_messageInfo_QueryResult.Size(m) -} -func (m *QueryResult) XXX_DiscardUnknown() { - xxx_messageInfo_QueryResult.DiscardUnknown(m) -} - -var xxx_messageInfo_QueryResult proto.InternalMessageInfo - -func (m *QueryResult) GetCursor() *Cursor { - if m != nil { - return m.Cursor - } - return nil -} - -func (m *QueryResult) GetResult() []*EntityProto { - if m != nil { - return m.Result - } - return nil -} - -func (m *QueryResult) GetSkippedResults() int32 { - if m != nil && m.SkippedResults != nil { - return *m.SkippedResults - } - return 0 -} - -func (m *QueryResult) GetMoreResults() bool { - if m != nil && m.MoreResults != nil { - return *m.MoreResults - } - return false -} - -func (m *QueryResult) GetKeysOnly() bool { - if m != nil && m.KeysOnly != nil { - return *m.KeysOnly - } - return false -} - -func (m *QueryResult) GetIndexOnly() bool { - if m != nil && m.IndexOnly != nil { - return *m.IndexOnly - } - return false -} - -func (m *QueryResult) GetSmallOps() bool { - if m != nil && m.SmallOps != nil { - return *m.SmallOps - } - return false -} - -func (m *QueryResult) GetCompiledQuery() *CompiledQuery { - if m != nil { - return m.CompiledQuery - } - return nil -} - -func (m *QueryResult) GetCompiledCursor() *CompiledCursor { - if m != nil { - return m.CompiledCursor - } - return nil -} - -func (m *QueryResult) GetIndex() []*CompositeIndex { - if m != nil { - return m.Index - } - return nil -} - -func (m *QueryResult) GetVersion() []int64 { - if m != nil { - return m.Version - } - return nil -} - -type AllocateIdsRequest struct { - Header *InternalHeader `protobuf:"bytes,4,opt,name=header" json:"header,omitempty"` - ModelKey *Reference `protobuf:"bytes,1,opt,name=model_key,json=modelKey" json:"model_key,omitempty"` - Size *int64 `protobuf:"varint,2,opt,name=size" json:"size,omitempty"` - Max *int64 `protobuf:"varint,3,opt,name=max" json:"max,omitempty"` - Reserve []*Reference `protobuf:"bytes,5,rep,name=reserve" json:"reserve,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *AllocateIdsRequest) Reset() { *m = AllocateIdsRequest{} } -func (m *AllocateIdsRequest) String() string { return proto.CompactTextString(m) } -func (*AllocateIdsRequest) ProtoMessage() {} -func (*AllocateIdsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{31} -} -func (m *AllocateIdsRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_AllocateIdsRequest.Unmarshal(m, b) -} -func (m *AllocateIdsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_AllocateIdsRequest.Marshal(b, m, deterministic) -} -func (dst *AllocateIdsRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_AllocateIdsRequest.Merge(dst, src) -} -func (m *AllocateIdsRequest) XXX_Size() int { - return xxx_messageInfo_AllocateIdsRequest.Size(m) -} -func (m *AllocateIdsRequest) XXX_DiscardUnknown() { - xxx_messageInfo_AllocateIdsRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_AllocateIdsRequest proto.InternalMessageInfo - -func (m *AllocateIdsRequest) GetHeader() *InternalHeader { - if m != nil { - return m.Header - } - return nil -} - -func (m *AllocateIdsRequest) GetModelKey() *Reference { - if m != nil { - return m.ModelKey - } - return nil -} - -func (m *AllocateIdsRequest) GetSize() int64 { - if m != nil && m.Size != nil { - return *m.Size - } - return 0 -} - -func (m *AllocateIdsRequest) GetMax() int64 { - if m != nil && m.Max != nil { - return *m.Max - } - return 0 -} - -func (m *AllocateIdsRequest) GetReserve() []*Reference { - if m != nil { - return m.Reserve - } - return nil -} - -type AllocateIdsResponse struct { - Start *int64 `protobuf:"varint,1,req,name=start" json:"start,omitempty"` - End *int64 `protobuf:"varint,2,req,name=end" json:"end,omitempty"` - Cost *Cost `protobuf:"bytes,3,opt,name=cost" json:"cost,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *AllocateIdsResponse) Reset() { *m = AllocateIdsResponse{} } -func (m *AllocateIdsResponse) String() string { return proto.CompactTextString(m) } -func (*AllocateIdsResponse) ProtoMessage() {} -func (*AllocateIdsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{32} -} -func (m *AllocateIdsResponse) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_AllocateIdsResponse.Unmarshal(m, b) -} -func (m *AllocateIdsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_AllocateIdsResponse.Marshal(b, m, deterministic) -} -func (dst *AllocateIdsResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_AllocateIdsResponse.Merge(dst, src) -} -func (m *AllocateIdsResponse) XXX_Size() int { - return xxx_messageInfo_AllocateIdsResponse.Size(m) -} -func (m *AllocateIdsResponse) XXX_DiscardUnknown() { - xxx_messageInfo_AllocateIdsResponse.DiscardUnknown(m) -} - -var xxx_messageInfo_AllocateIdsResponse proto.InternalMessageInfo - -func (m *AllocateIdsResponse) GetStart() int64 { - if m != nil && m.Start != nil { - return *m.Start - } - return 0 -} - -func (m *AllocateIdsResponse) GetEnd() int64 { - if m != nil && m.End != nil { - return *m.End - } - return 0 -} - -func (m *AllocateIdsResponse) GetCost() *Cost { - if m != nil { - return m.Cost - } - return nil -} - -type CompositeIndices struct { - Index []*CompositeIndex `protobuf:"bytes,1,rep,name=index" json:"index,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *CompositeIndices) Reset() { *m = CompositeIndices{} } -func (m *CompositeIndices) String() string { return proto.CompactTextString(m) } -func (*CompositeIndices) ProtoMessage() {} -func (*CompositeIndices) Descriptor() ([]byte, []int) { - return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{33} -} -func (m *CompositeIndices) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_CompositeIndices.Unmarshal(m, b) -} -func (m *CompositeIndices) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_CompositeIndices.Marshal(b, m, deterministic) -} -func (dst *CompositeIndices) XXX_Merge(src proto.Message) { - xxx_messageInfo_CompositeIndices.Merge(dst, src) -} -func (m *CompositeIndices) XXX_Size() int { - return xxx_messageInfo_CompositeIndices.Size(m) -} -func (m *CompositeIndices) XXX_DiscardUnknown() { - xxx_messageInfo_CompositeIndices.DiscardUnknown(m) -} - -var xxx_messageInfo_CompositeIndices proto.InternalMessageInfo - -func (m *CompositeIndices) GetIndex() []*CompositeIndex { - if m != nil { - return m.Index - } - return nil -} - -type AddActionsRequest struct { - Header *InternalHeader `protobuf:"bytes,3,opt,name=header" json:"header,omitempty"` - Transaction *Transaction `protobuf:"bytes,1,req,name=transaction" json:"transaction,omitempty"` - Action []*Action `protobuf:"bytes,2,rep,name=action" json:"action,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *AddActionsRequest) Reset() { *m = AddActionsRequest{} } -func (m *AddActionsRequest) String() string { return proto.CompactTextString(m) } -func (*AddActionsRequest) ProtoMessage() {} -func (*AddActionsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{34} -} -func (m *AddActionsRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_AddActionsRequest.Unmarshal(m, b) -} -func (m *AddActionsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_AddActionsRequest.Marshal(b, m, deterministic) -} -func (dst *AddActionsRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_AddActionsRequest.Merge(dst, src) -} -func (m *AddActionsRequest) XXX_Size() int { - return xxx_messageInfo_AddActionsRequest.Size(m) -} -func (m *AddActionsRequest) XXX_DiscardUnknown() { - xxx_messageInfo_AddActionsRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_AddActionsRequest proto.InternalMessageInfo - -func (m *AddActionsRequest) GetHeader() *InternalHeader { - if m != nil { - return m.Header - } - return nil -} - -func (m *AddActionsRequest) GetTransaction() *Transaction { - if m != nil { - return m.Transaction - } - return nil -} - -func (m *AddActionsRequest) GetAction() []*Action { - if m != nil { - return m.Action - } - return nil -} - -type AddActionsResponse struct { - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *AddActionsResponse) Reset() { *m = AddActionsResponse{} } -func (m *AddActionsResponse) String() string { return proto.CompactTextString(m) } -func (*AddActionsResponse) ProtoMessage() {} -func (*AddActionsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{35} -} -func (m *AddActionsResponse) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_AddActionsResponse.Unmarshal(m, b) -} -func (m *AddActionsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_AddActionsResponse.Marshal(b, m, deterministic) -} -func (dst *AddActionsResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_AddActionsResponse.Merge(dst, src) -} -func (m *AddActionsResponse) XXX_Size() int { - return xxx_messageInfo_AddActionsResponse.Size(m) -} -func (m *AddActionsResponse) XXX_DiscardUnknown() { - xxx_messageInfo_AddActionsResponse.DiscardUnknown(m) -} - -var xxx_messageInfo_AddActionsResponse proto.InternalMessageInfo - -type BeginTransactionRequest struct { - Header *InternalHeader `protobuf:"bytes,3,opt,name=header" json:"header,omitempty"` - App *string `protobuf:"bytes,1,req,name=app" json:"app,omitempty"` - AllowMultipleEg *bool `protobuf:"varint,2,opt,name=allow_multiple_eg,json=allowMultipleEg,def=0" json:"allow_multiple_eg,omitempty"` - DatabaseId *string `protobuf:"bytes,4,opt,name=database_id,json=databaseId" json:"database_id,omitempty"` - Mode *BeginTransactionRequest_TransactionMode `protobuf:"varint,5,opt,name=mode,enum=appengine.BeginTransactionRequest_TransactionMode,def=0" json:"mode,omitempty"` - PreviousTransaction *Transaction `protobuf:"bytes,7,opt,name=previous_transaction,json=previousTransaction" json:"previous_transaction,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *BeginTransactionRequest) Reset() { *m = BeginTransactionRequest{} } -func (m *BeginTransactionRequest) String() string { return proto.CompactTextString(m) } -func (*BeginTransactionRequest) ProtoMessage() {} -func (*BeginTransactionRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{36} -} -func (m *BeginTransactionRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_BeginTransactionRequest.Unmarshal(m, b) -} -func (m *BeginTransactionRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_BeginTransactionRequest.Marshal(b, m, deterministic) -} -func (dst *BeginTransactionRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_BeginTransactionRequest.Merge(dst, src) -} -func (m *BeginTransactionRequest) XXX_Size() int { - return xxx_messageInfo_BeginTransactionRequest.Size(m) -} -func (m *BeginTransactionRequest) XXX_DiscardUnknown() { - xxx_messageInfo_BeginTransactionRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_BeginTransactionRequest proto.InternalMessageInfo - -const Default_BeginTransactionRequest_AllowMultipleEg bool = false -const Default_BeginTransactionRequest_Mode BeginTransactionRequest_TransactionMode = BeginTransactionRequest_UNKNOWN - -func (m *BeginTransactionRequest) GetHeader() *InternalHeader { - if m != nil { - return m.Header - } - return nil -} - -func (m *BeginTransactionRequest) GetApp() string { - if m != nil && m.App != nil { - return *m.App - } - return "" -} - -func (m *BeginTransactionRequest) GetAllowMultipleEg() bool { - if m != nil && m.AllowMultipleEg != nil { - return *m.AllowMultipleEg - } - return Default_BeginTransactionRequest_AllowMultipleEg -} - -func (m *BeginTransactionRequest) GetDatabaseId() string { - if m != nil && m.DatabaseId != nil { - return *m.DatabaseId - } - return "" -} - -func (m *BeginTransactionRequest) GetMode() BeginTransactionRequest_TransactionMode { - if m != nil && m.Mode != nil { - return *m.Mode - } - return Default_BeginTransactionRequest_Mode -} - -func (m *BeginTransactionRequest) GetPreviousTransaction() *Transaction { - if m != nil { - return m.PreviousTransaction - } - return nil -} - -type CommitResponse struct { - Cost *Cost `protobuf:"bytes,1,opt,name=cost" json:"cost,omitempty"` - Version []*CommitResponse_Version `protobuf:"group,3,rep,name=Version,json=version" json:"version,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *CommitResponse) Reset() { *m = CommitResponse{} } -func (m *CommitResponse) String() string { return proto.CompactTextString(m) } -func (*CommitResponse) ProtoMessage() {} -func (*CommitResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{37} -} -func (m *CommitResponse) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_CommitResponse.Unmarshal(m, b) -} -func (m *CommitResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_CommitResponse.Marshal(b, m, deterministic) -} -func (dst *CommitResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_CommitResponse.Merge(dst, src) -} -func (m *CommitResponse) XXX_Size() int { - return xxx_messageInfo_CommitResponse.Size(m) -} -func (m *CommitResponse) XXX_DiscardUnknown() { - xxx_messageInfo_CommitResponse.DiscardUnknown(m) -} - -var xxx_messageInfo_CommitResponse proto.InternalMessageInfo - -func (m *CommitResponse) GetCost() *Cost { - if m != nil { - return m.Cost - } - return nil -} - -func (m *CommitResponse) GetVersion() []*CommitResponse_Version { - if m != nil { - return m.Version - } - return nil -} - -type CommitResponse_Version struct { - RootEntityKey *Reference `protobuf:"bytes,4,req,name=root_entity_key,json=rootEntityKey" json:"root_entity_key,omitempty"` - Version *int64 `protobuf:"varint,5,req,name=version" json:"version,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *CommitResponse_Version) Reset() { *m = CommitResponse_Version{} } -func (m *CommitResponse_Version) String() string { return proto.CompactTextString(m) } -func (*CommitResponse_Version) ProtoMessage() {} -func (*CommitResponse_Version) Descriptor() ([]byte, []int) { - return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{37, 0} -} -func (m *CommitResponse_Version) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_CommitResponse_Version.Unmarshal(m, b) -} -func (m *CommitResponse_Version) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_CommitResponse_Version.Marshal(b, m, deterministic) -} -func (dst *CommitResponse_Version) XXX_Merge(src proto.Message) { - xxx_messageInfo_CommitResponse_Version.Merge(dst, src) -} -func (m *CommitResponse_Version) XXX_Size() int { - return xxx_messageInfo_CommitResponse_Version.Size(m) -} -func (m *CommitResponse_Version) XXX_DiscardUnknown() { - xxx_messageInfo_CommitResponse_Version.DiscardUnknown(m) -} - -var xxx_messageInfo_CommitResponse_Version proto.InternalMessageInfo - -func (m *CommitResponse_Version) GetRootEntityKey() *Reference { - if m != nil { - return m.RootEntityKey - } - return nil -} - -func (m *CommitResponse_Version) GetVersion() int64 { - if m != nil && m.Version != nil { - return *m.Version - } - return 0 -} - -func init() { - proto.RegisterType((*Action)(nil), "appengine.Action") - proto.RegisterType((*PropertyValue)(nil), "appengine.PropertyValue") - proto.RegisterType((*PropertyValue_PointValue)(nil), "appengine.PropertyValue.PointValue") - proto.RegisterType((*PropertyValue_UserValue)(nil), "appengine.PropertyValue.UserValue") - proto.RegisterType((*PropertyValue_ReferenceValue)(nil), "appengine.PropertyValue.ReferenceValue") - proto.RegisterType((*PropertyValue_ReferenceValue_PathElement)(nil), "appengine.PropertyValue.ReferenceValue.PathElement") - proto.RegisterType((*Property)(nil), "appengine.Property") - proto.RegisterType((*Path)(nil), "appengine.Path") - proto.RegisterType((*Path_Element)(nil), "appengine.Path.Element") - proto.RegisterType((*Reference)(nil), "appengine.Reference") - proto.RegisterType((*User)(nil), "appengine.User") - proto.RegisterType((*EntityProto)(nil), "appengine.EntityProto") - proto.RegisterType((*CompositeProperty)(nil), "appengine.CompositeProperty") - proto.RegisterType((*Index)(nil), "appengine.Index") - proto.RegisterType((*Index_Property)(nil), "appengine.Index.Property") - proto.RegisterType((*CompositeIndex)(nil), "appengine.CompositeIndex") - proto.RegisterType((*IndexPostfix)(nil), "appengine.IndexPostfix") - proto.RegisterType((*IndexPostfix_IndexValue)(nil), "appengine.IndexPostfix.IndexValue") - proto.RegisterType((*IndexPosition)(nil), "appengine.IndexPosition") - proto.RegisterType((*Snapshot)(nil), "appengine.Snapshot") - proto.RegisterType((*InternalHeader)(nil), "appengine.InternalHeader") - proto.RegisterType((*Transaction)(nil), "appengine.Transaction") - proto.RegisterType((*Query)(nil), "appengine.Query") - proto.RegisterType((*Query_Filter)(nil), "appengine.Query.Filter") - proto.RegisterType((*Query_Order)(nil), "appengine.Query.Order") - proto.RegisterType((*CompiledQuery)(nil), "appengine.CompiledQuery") - proto.RegisterType((*CompiledQuery_PrimaryScan)(nil), "appengine.CompiledQuery.PrimaryScan") - proto.RegisterType((*CompiledQuery_MergeJoinScan)(nil), "appengine.CompiledQuery.MergeJoinScan") - proto.RegisterType((*CompiledQuery_EntityFilter)(nil), "appengine.CompiledQuery.EntityFilter") - proto.RegisterType((*CompiledCursor)(nil), "appengine.CompiledCursor") - proto.RegisterType((*CompiledCursor_Position)(nil), "appengine.CompiledCursor.Position") - proto.RegisterType((*CompiledCursor_Position_IndexValue)(nil), "appengine.CompiledCursor.Position.IndexValue") - proto.RegisterType((*Cursor)(nil), "appengine.Cursor") - proto.RegisterType((*Error)(nil), "appengine.Error") - proto.RegisterType((*Cost)(nil), "appengine.Cost") - proto.RegisterType((*Cost_CommitCost)(nil), "appengine.Cost.CommitCost") - proto.RegisterType((*GetRequest)(nil), "appengine.GetRequest") - proto.RegisterType((*GetResponse)(nil), "appengine.GetResponse") - proto.RegisterType((*GetResponse_Entity)(nil), "appengine.GetResponse.Entity") - proto.RegisterType((*PutRequest)(nil), "appengine.PutRequest") - proto.RegisterType((*PutResponse)(nil), "appengine.PutResponse") - proto.RegisterType((*TouchRequest)(nil), "appengine.TouchRequest") - proto.RegisterType((*TouchResponse)(nil), "appengine.TouchResponse") - proto.RegisterType((*DeleteRequest)(nil), "appengine.DeleteRequest") - proto.RegisterType((*DeleteResponse)(nil), "appengine.DeleteResponse") - proto.RegisterType((*NextRequest)(nil), "appengine.NextRequest") - proto.RegisterType((*QueryResult)(nil), "appengine.QueryResult") - proto.RegisterType((*AllocateIdsRequest)(nil), "appengine.AllocateIdsRequest") - proto.RegisterType((*AllocateIdsResponse)(nil), "appengine.AllocateIdsResponse") - proto.RegisterType((*CompositeIndices)(nil), "appengine.CompositeIndices") - proto.RegisterType((*AddActionsRequest)(nil), "appengine.AddActionsRequest") - proto.RegisterType((*AddActionsResponse)(nil), "appengine.AddActionsResponse") - proto.RegisterType((*BeginTransactionRequest)(nil), "appengine.BeginTransactionRequest") - proto.RegisterType((*CommitResponse)(nil), "appengine.CommitResponse") - proto.RegisterType((*CommitResponse_Version)(nil), "appengine.CommitResponse.Version") -} - -func init() { - proto.RegisterFile("google.golang.org/appengine/internal/datastore/datastore_v3.proto", fileDescriptor_datastore_v3_83b17b80c34f6179) -} - -var fileDescriptor_datastore_v3_83b17b80c34f6179 = []byte{ - // 4156 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x5a, 0xcd, 0x73, 0xe3, 0x46, - 0x76, 0x37, 0xc1, 0xef, 0x47, 0x89, 0x82, 0x5a, 0xf3, 0xc1, 0xa1, 0x3f, 0x46, 0xc6, 0xac, 0x6d, - 0xd9, 0x6b, 0x73, 0x6c, 0xf9, 0x23, 0x5b, 0x4a, 0x76, 0x1d, 0x4a, 0xc4, 0x68, 0x90, 0xa1, 0x48, - 0xb9, 0x09, 0xd9, 0x9e, 0x5c, 0x50, 0x18, 0xa2, 0x29, 0x21, 0x43, 0x02, 0x30, 0x00, 0x6a, 0x46, - 0x93, 0xe4, 0x90, 0x4b, 0x2a, 0x55, 0x5b, 0xa9, 0x1c, 0x92, 0x4a, 0x25, 0xf9, 0x07, 0x72, 0xc8, - 0x39, 0x95, 0xaa, 0x54, 0xf6, 0x98, 0x5b, 0x0e, 0x7b, 0xc9, 0x31, 0x95, 0x73, 0xf2, 0x27, 0x24, - 0x39, 0xa4, 0xfa, 0x75, 0x03, 0x02, 0x28, 0x4a, 0x23, 0x6d, 0xf6, 0x90, 0x13, 0xd1, 0xef, 0xfd, - 0xba, 0xf1, 0xfa, 0xf5, 0xfb, 0x6c, 0x10, 0xba, 0xc7, 0xbe, 0x7f, 0x3c, 0x65, 0x9d, 0x63, 0x7f, - 0x6a, 0x7b, 0xc7, 0x1d, 0x3f, 0x3c, 0x7e, 0x68, 0x07, 0x01, 0xf3, 0x8e, 0x5d, 0x8f, 0x3d, 0x74, - 0xbd, 0x98, 0x85, 0x9e, 0x3d, 0x7d, 0xe8, 0xd8, 0xb1, 0x1d, 0xc5, 0x7e, 0xc8, 0xce, 0x9f, 0xac, - 0xd3, 0xcf, 0x3b, 0x41, 0xe8, 0xc7, 0x3e, 0xa9, 0xa7, 0x13, 0xb4, 0x1a, 0x54, 0xba, 0xe3, 0xd8, - 0xf5, 0x3d, 0xed, 0x1f, 0x2b, 0xb0, 0x7a, 0x18, 0xfa, 0x01, 0x0b, 0xe3, 0xb3, 0x6f, 0xed, 0xe9, - 0x9c, 0x91, 0x77, 0x00, 0x5c, 0x2f, 0xfe, 0xea, 0x0b, 0x1c, 0xb5, 0x0a, 0x9b, 0x85, 0xad, 0x22, - 0xcd, 0x50, 0x88, 0x06, 0x2b, 0xcf, 0x7c, 0x7f, 0xca, 0x6c, 0x4f, 0x20, 0x94, 0xcd, 0xc2, 0x56, - 0x8d, 0xe6, 0x68, 0x64, 0x13, 0x1a, 0x51, 0x1c, 0xba, 0xde, 0xb1, 0x80, 0x14, 0x37, 0x0b, 0x5b, - 0x75, 0x9a, 0x25, 0x71, 0x84, 0xe3, 0xcf, 0x9f, 0x4d, 0x99, 0x40, 0x94, 0x36, 0x0b, 0x5b, 0x05, - 0x9a, 0x25, 0x91, 0x3d, 0x80, 0xc0, 0x77, 0xbd, 0xf8, 0x14, 0x01, 0xe5, 0xcd, 0xc2, 0x16, 0x6c, - 0x3f, 0xe8, 0xa4, 0x7b, 0xe8, 0xe4, 0xa4, 0xee, 0x1c, 0x72, 0x28, 0x3e, 0xd2, 0xcc, 0x34, 0xf2, - 0xdb, 0x50, 0x9f, 0x47, 0x2c, 0x14, 0x6b, 0xd4, 0x70, 0x0d, 0xed, 0xd2, 0x35, 0x8e, 0x22, 0x16, - 0x8a, 0x25, 0xce, 0x27, 0x91, 0x21, 0x34, 0x43, 0x36, 0x61, 0x21, 0xf3, 0xc6, 0x4c, 0x2c, 0xb3, - 0x82, 0xcb, 0x7c, 0x70, 0xe9, 0x32, 0x34, 0x81, 0x8b, 0xb5, 0x16, 0xa6, 0xb7, 0xb7, 0x00, 0xce, - 0x85, 0x25, 0x2b, 0x50, 0x78, 0xd9, 0xaa, 0x6c, 0x2a, 0x5b, 0x05, 0x5a, 0x78, 0xc9, 0x47, 0x67, - 0xad, 0xaa, 0x18, 0x9d, 0xb5, 0xff, 0xa9, 0x00, 0xf5, 0x54, 0x26, 0x72, 0x0b, 0xca, 0x6c, 0x66, - 0xbb, 0xd3, 0x56, 0x7d, 0x53, 0xd9, 0xaa, 0x53, 0x31, 0x20, 0xf7, 0xa1, 0x61, 0xcf, 0xe3, 0x13, - 0xcb, 0xf1, 0x67, 0xb6, 0xeb, 0xb5, 0x00, 0x79, 0xc0, 0x49, 0x3d, 0xa4, 0x90, 0x36, 0xd4, 0x3c, - 0x77, 0xfc, 0xdc, 0xb3, 0x67, 0xac, 0xd5, 0xc0, 0x73, 0x48, 0xc7, 0xe4, 0x13, 0x20, 0x13, 0xe6, - 0xb0, 0xd0, 0x8e, 0x99, 0x63, 0xb9, 0x0e, 0xf3, 0x62, 0x37, 0x3e, 0x6b, 0xdd, 0x46, 0xd4, 0x7a, - 0xca, 0x31, 0x24, 0x23, 0x0f, 0x0f, 0x42, 0xff, 0xd4, 0x75, 0x58, 0xd8, 0xba, 0xb3, 0x00, 0x3f, - 0x94, 0x8c, 0xf6, 0xbf, 0x17, 0xa0, 0x99, 0xd7, 0x05, 0x51, 0xa1, 0x68, 0x07, 0x41, 0x6b, 0x15, - 0xa5, 0xe4, 0x8f, 0xe4, 0x6d, 0x00, 0x2e, 0x8a, 0x15, 0x05, 0xf6, 0x98, 0xb5, 0x6e, 0xe1, 0x5a, - 0x75, 0x4e, 0x19, 0x71, 0x02, 0x39, 0x82, 0x46, 0x60, 0xc7, 0x27, 0x6c, 0xca, 0x66, 0xcc, 0x8b, - 0x5b, 0xcd, 0xcd, 0xe2, 0x16, 0x6c, 0x7f, 0x7e, 0x4d, 0xd5, 0x77, 0x0e, 0xed, 0xf8, 0x44, 0x17, - 0x53, 0x69, 0x76, 0x9d, 0xb6, 0x0e, 0x8d, 0x0c, 0x8f, 0x10, 0x28, 0xc5, 0x67, 0x01, 0x6b, 0xad, - 0xa1, 0x5c, 0xf8, 0x4c, 0x9a, 0xa0, 0xb8, 0x4e, 0x4b, 0x45, 0xf3, 0x57, 0x5c, 0x87, 0x63, 0x50, - 0x87, 0xeb, 0x28, 0x22, 0x3e, 0x6b, 0xff, 0x51, 0x86, 0x5a, 0x22, 0x00, 0xe9, 0x42, 0x75, 0xc6, - 0x6c, 0xcf, 0xf5, 0x8e, 0xd1, 0x69, 0x9a, 0xdb, 0x6f, 0x2e, 0x11, 0xb3, 0x73, 0x20, 0x20, 0x3b, - 0x30, 0x18, 0x5a, 0x07, 0x7a, 0x77, 0x60, 0x0c, 0xf6, 0x69, 0x32, 0x8f, 0x1f, 0xa6, 0x7c, 0xb4, - 0xe6, 0xa1, 0x8b, 0x9e, 0x55, 0xa7, 0x20, 0x49, 0x47, 0xa1, 0x9b, 0x0a, 0x51, 0x14, 0x82, 0xe2, - 0x21, 0x76, 0xa0, 0x9c, 0xb8, 0x88, 0xb2, 0xd5, 0xd8, 0x6e, 0x5d, 0xa6, 0x1c, 0x2a, 0x60, 0xdc, - 0x20, 0x66, 0xf3, 0x69, 0xec, 0x06, 0x53, 0xee, 0x76, 0xca, 0x56, 0x8d, 0xa6, 0x63, 0xf2, 0x1e, - 0x40, 0xc4, 0xec, 0x70, 0x7c, 0x62, 0x3f, 0x9b, 0xb2, 0x56, 0x85, 0x7b, 0xf6, 0x4e, 0x79, 0x62, - 0x4f, 0x23, 0x46, 0x33, 0x0c, 0x62, 0xc3, 0xdd, 0x49, 0x1c, 0x59, 0xb1, 0xff, 0x9c, 0x79, 0xee, - 0x2b, 0x9b, 0x07, 0x12, 0xcb, 0x0f, 0xf8, 0x0f, 0xfa, 0x58, 0x73, 0xfb, 0xc3, 0x65, 0x5b, 0x7f, - 0x14, 0x47, 0x66, 0x66, 0xc6, 0x10, 0x27, 0xd0, 0xdb, 0x93, 0x65, 0x64, 0xd2, 0x86, 0xca, 0xd4, - 0x1f, 0xdb, 0x53, 0xd6, 0xaa, 0x73, 0x2d, 0xec, 0x28, 0xcc, 0xa3, 0x92, 0xa2, 0xfd, 0xb3, 0x02, - 0x55, 0xa9, 0x47, 0xd2, 0x84, 0x8c, 0x26, 0xd5, 0x37, 0x48, 0x0d, 0x4a, 0xbb, 0xfd, 0xe1, 0xae, - 0xda, 0xe4, 0x4f, 0xa6, 0xfe, 0xbd, 0xa9, 0xae, 0x71, 0xcc, 0xee, 0x53, 0x53, 0x1f, 0x99, 0x94, - 0x63, 0x54, 0xb2, 0x0e, 0xab, 0x5d, 0x73, 0x78, 0x60, 0xed, 0x75, 0x4d, 0x7d, 0x7f, 0x48, 0x9f, - 0xaa, 0x05, 0xb2, 0x0a, 0x75, 0x24, 0xf5, 0x8d, 0xc1, 0x13, 0x55, 0xe1, 0x33, 0x70, 0x68, 0x1a, - 0x66, 0x5f, 0x57, 0x8b, 0x44, 0x85, 0x15, 0x31, 0x63, 0x38, 0x30, 0xf5, 0x81, 0xa9, 0x96, 0x52, - 0xca, 0xe8, 0xe8, 0xe0, 0xa0, 0x4b, 0x9f, 0xaa, 0x65, 0xb2, 0x06, 0x0d, 0xa4, 0x74, 0x8f, 0xcc, - 0xc7, 0x43, 0xaa, 0x56, 0x48, 0x03, 0xaa, 0xfb, 0x3d, 0xeb, 0xbb, 0xc7, 0xfa, 0x40, 0xad, 0x92, - 0x15, 0xa8, 0xed, 0xf7, 0x2c, 0xfd, 0xa0, 0x6b, 0xf4, 0xd5, 0x1a, 0x9f, 0xbd, 0xaf, 0x0f, 0xe9, - 0x68, 0x64, 0x1d, 0x0e, 0x8d, 0x81, 0xa9, 0xd6, 0x49, 0x1d, 0xca, 0xfb, 0x3d, 0xcb, 0x38, 0x50, - 0x81, 0x10, 0x68, 0xee, 0xf7, 0xac, 0xc3, 0xc7, 0xc3, 0x81, 0x3e, 0x38, 0x3a, 0xd8, 0xd5, 0xa9, - 0xda, 0x20, 0xb7, 0x40, 0xe5, 0xb4, 0xe1, 0xc8, 0xec, 0xf6, 0xbb, 0xbd, 0x1e, 0xd5, 0x47, 0x23, - 0x75, 0x85, 0x4b, 0xbd, 0xdf, 0xb3, 0x68, 0xd7, 0xe4, 0xfb, 0x5a, 0xe5, 0x2f, 0xe4, 0x7b, 0x7f, - 0xa2, 0x3f, 0x55, 0xd7, 0xf9, 0x2b, 0xf4, 0x81, 0x69, 0x98, 0x4f, 0xad, 0x43, 0x3a, 0x34, 0x87, - 0xea, 0x06, 0x17, 0xd0, 0x18, 0xf4, 0xf4, 0xef, 0xad, 0x6f, 0xbb, 0xfd, 0x23, 0x5d, 0x25, 0xda, - 0x8f, 0xe1, 0xf6, 0xd2, 0x33, 0xe1, 0xaa, 0x7b, 0x6c, 0x1e, 0xf4, 0xd5, 0x02, 0x7f, 0xe2, 0x9b, - 0x52, 0x15, 0xed, 0x0f, 0xa0, 0xc4, 0x5d, 0x86, 0x7c, 0x06, 0xd5, 0xc4, 0x1b, 0x0b, 0xe8, 0x8d, - 0x77, 0xb3, 0x67, 0x6d, 0xc7, 0x27, 0x9d, 0xc4, 0xe3, 0x12, 0x5c, 0xbb, 0x0b, 0xd5, 0x45, 0x4f, - 0x53, 0x2e, 0x78, 0x5a, 0xf1, 0x82, 0xa7, 0x95, 0x32, 0x9e, 0x66, 0x43, 0x3d, 0xf5, 0xed, 0x9b, - 0x47, 0x91, 0x07, 0x50, 0xe2, 0xde, 0xdf, 0x6a, 0xa2, 0x87, 0xac, 0x2d, 0x08, 0x4c, 0x91, 0xa9, - 0xfd, 0x43, 0x01, 0x4a, 0x3c, 0xda, 0x9e, 0x07, 0xda, 0xc2, 0x15, 0x81, 0x56, 0xb9, 0x32, 0xd0, - 0x16, 0xaf, 0x15, 0x68, 0x2b, 0x37, 0x0b, 0xb4, 0xd5, 0x4b, 0x02, 0xad, 0xf6, 0x67, 0x45, 0x68, - 0xe8, 0x38, 0xf3, 0x10, 0x13, 0xfd, 0xfb, 0x50, 0x7c, 0xce, 0xce, 0x50, 0x3f, 0x8d, 0xed, 0x5b, - 0x99, 0xdd, 0xa6, 0x2a, 0xa4, 0x1c, 0x40, 0xb6, 0x61, 0x45, 0xbc, 0xd0, 0x3a, 0x0e, 0xfd, 0x79, - 0xd0, 0x52, 0x97, 0xab, 0xa7, 0x21, 0x40, 0xfb, 0x1c, 0x43, 0xde, 0x83, 0xb2, 0xff, 0xc2, 0x63, - 0x21, 0xc6, 0xc1, 0x3c, 0x98, 0x2b, 0x8f, 0x0a, 0x2e, 0x79, 0x08, 0xa5, 0xe7, 0xae, 0xe7, 0xe0, - 0x19, 0xe6, 0x23, 0x61, 0x46, 0xd0, 0xce, 0x13, 0xd7, 0x73, 0x28, 0x02, 0xc9, 0x3d, 0xa8, 0xf1, - 0x5f, 0x8c, 0x7b, 0x65, 0xdc, 0x68, 0x95, 0x8f, 0x79, 0xd0, 0x7b, 0x08, 0xb5, 0x40, 0xc6, 0x10, - 0x4c, 0x00, 0x8d, 0xed, 0x8d, 0x25, 0xe1, 0x85, 0xa6, 0x20, 0xf2, 0x15, 0xac, 0x84, 0xf6, 0x0b, - 0x2b, 0x9d, 0xb4, 0x76, 0xf9, 0xa4, 0x46, 0x68, 0xbf, 0x48, 0x23, 0x38, 0x81, 0x52, 0x68, 0x7b, - 0xcf, 0x5b, 0x64, 0xb3, 0xb0, 0x55, 0xa6, 0xf8, 0xac, 0x7d, 0x01, 0x25, 0x2e, 0x25, 0x8f, 0x08, - 0xfb, 0x3d, 0xf4, 0xff, 0xee, 0x9e, 0xa9, 0x16, 0x12, 0x7f, 0xfe, 0x96, 0x47, 0x03, 0x45, 0x72, - 0x0f, 0xf4, 0xd1, 0xa8, 0xbb, 0xaf, 0xab, 0x45, 0xad, 0x07, 0xeb, 0x7b, 0xfe, 0x2c, 0xf0, 0x23, - 0x37, 0x66, 0xe9, 0xf2, 0xf7, 0xa0, 0xe6, 0x7a, 0x0e, 0x7b, 0x69, 0xb9, 0x0e, 0x9a, 0x56, 0x91, - 0x56, 0x71, 0x6c, 0x38, 0xdc, 0xe4, 0x4e, 0x65, 0x31, 0x55, 0xe4, 0x26, 0x87, 0x03, 0xed, 0x2f, - 0x15, 0x28, 0x1b, 0x1c, 0xc1, 0x8d, 0x4f, 0x9e, 0x14, 0x7a, 0x8f, 0x30, 0x4c, 0x10, 0x24, 0x93, - 0xfb, 0x50, 0x1b, 0x6a, 0xb6, 0x37, 0x66, 0xbc, 0xe2, 0xc3, 0x3c, 0x50, 0xa3, 0xe9, 0x98, 0x7c, - 0x99, 0xd1, 0x9f, 0x82, 0x2e, 0x7b, 0x2f, 0xa3, 0x0a, 0x7c, 0xc1, 0x12, 0x2d, 0xb6, 0xff, 0xaa, - 0x90, 0x49, 0x6e, 0xcb, 0x12, 0x4f, 0x1f, 0xea, 0x8e, 0x1b, 0x32, 0xac, 0x23, 0xe5, 0x41, 0x3f, - 0xb8, 0x74, 0xe1, 0x4e, 0x2f, 0x81, 0xee, 0xd4, 0xbb, 0xa3, 0x3d, 0x7d, 0xd0, 0xe3, 0x99, 0xef, - 0x7c, 0x01, 0xed, 0x23, 0xa8, 0xa7, 0x10, 0x0c, 0xc7, 0x09, 0x48, 0x2d, 0x70, 0xf5, 0xf6, 0xf4, - 0x74, 0xac, 0x68, 0x7f, 0xad, 0x40, 0x33, 0xd5, 0xaf, 0xd0, 0xd0, 0x6d, 0xa8, 0xd8, 0x41, 0x90, - 0xa8, 0xb6, 0x4e, 0xcb, 0x76, 0x10, 0x18, 0x8e, 0x8c, 0x2d, 0x0a, 0x6a, 0x9b, 0xc7, 0x96, 0x4f, - 0x01, 0x1c, 0x36, 0x71, 0x3d, 0x17, 0x85, 0x2e, 0xa2, 0xc1, 0xab, 0x8b, 0x42, 0xd3, 0x0c, 0x86, - 0x7c, 0x09, 0xe5, 0x28, 0xb6, 0x63, 0x91, 0x2b, 0x9b, 0xdb, 0xf7, 0x33, 0xe0, 0xbc, 0x08, 0x9d, - 0x11, 0x87, 0x51, 0x81, 0x26, 0x5f, 0xc1, 0x2d, 0xdf, 0x9b, 0x9e, 0x59, 0xf3, 0x88, 0x59, 0xee, - 0xc4, 0x0a, 0xd9, 0x0f, 0x73, 0x37, 0x64, 0x4e, 0x3e, 0xa7, 0xae, 0x73, 0xc8, 0x51, 0xc4, 0x8c, - 0x09, 0x95, 0x7c, 0xed, 0x6b, 0x28, 0xe3, 0x3a, 0x7c, 0xcf, 0xdf, 0x51, 0xc3, 0xd4, 0xad, 0xe1, - 0xa0, 0xff, 0x54, 0xe8, 0x80, 0xea, 0xdd, 0x9e, 0x85, 0x44, 0x55, 0xe1, 0xc1, 0xbe, 0xa7, 0xf7, - 0x75, 0x53, 0xef, 0xa9, 0x45, 0x9e, 0x3d, 0x74, 0x4a, 0x87, 0x54, 0x2d, 0x69, 0xff, 0x53, 0x80, - 0x15, 0x94, 0xe7, 0xd0, 0x8f, 0xe2, 0x89, 0xfb, 0x92, 0xec, 0x41, 0x43, 0x98, 0xdd, 0xa9, 0x2c, - 0xe8, 0xb9, 0x33, 0x68, 0x8b, 0x7b, 0x96, 0x68, 0x31, 0x90, 0x75, 0xb4, 0x9b, 0x3e, 0x27, 0x21, - 0x45, 0x41, 0xa7, 0xbf, 0x22, 0xa4, 0xbc, 0x05, 0x95, 0x67, 0x6c, 0xe2, 0x87, 0x22, 0x04, 0xd6, - 0x76, 0x4a, 0x71, 0x38, 0x67, 0x54, 0xd2, 0xda, 0x36, 0xc0, 0xf9, 0xfa, 0xe4, 0x01, 0xac, 0x26, - 0xc6, 0x66, 0xa1, 0x71, 0x89, 0x93, 0x5b, 0x49, 0x88, 0x83, 0x5c, 0x75, 0xa3, 0x5c, 0xab, 0xba, - 0xd1, 0xbe, 0x86, 0xd5, 0x64, 0x3f, 0xe2, 0xfc, 0x54, 0x21, 0x79, 0x01, 0x63, 0xca, 0x82, 0x8c, - 0xca, 0x45, 0x19, 0xb5, 0x9f, 0x41, 0x6d, 0xe4, 0xd9, 0x41, 0x74, 0xe2, 0xc7, 0xdc, 0x7a, 0xe2, - 0x48, 0xfa, 0xaa, 0x12, 0x47, 0x9a, 0x06, 0x15, 0x7e, 0x38, 0xf3, 0x88, 0xbb, 0xbf, 0x31, 0xe8, - 0xee, 0x99, 0xc6, 0xb7, 0xba, 0xfa, 0x06, 0x01, 0xa8, 0xc8, 0xe7, 0x82, 0xa6, 0x41, 0xd3, 0x90, - 0xed, 0xd8, 0x63, 0x66, 0x3b, 0x2c, 0xe4, 0x12, 0xfc, 0xe0, 0x47, 0x89, 0x04, 0x3f, 0xf8, 0x91, - 0xf6, 0x17, 0x05, 0x68, 0x98, 0xa1, 0xed, 0x45, 0xb6, 0x30, 0xf7, 0xcf, 0xa0, 0x72, 0x82, 0x58, - 0x74, 0xa3, 0xc6, 0x82, 0x7f, 0x66, 0x17, 0xa3, 0x12, 0x48, 0xee, 0x40, 0xe5, 0xc4, 0xf6, 0x9c, - 0xa9, 0xd0, 0x5a, 0x85, 0xca, 0x51, 0x92, 0x1b, 0x95, 0xf3, 0xdc, 0xb8, 0x05, 0x2b, 0x33, 0x3b, - 0x7c, 0x6e, 0x8d, 0x4f, 0x6c, 0xef, 0x98, 0x45, 0xf2, 0x60, 0xa4, 0x05, 0x36, 0x38, 0x6b, 0x4f, - 0x70, 0xb4, 0xbf, 0x5f, 0x81, 0xf2, 0x37, 0x73, 0x16, 0x9e, 0x65, 0x04, 0xfa, 0xe0, 0xba, 0x02, - 0xc9, 0x17, 0x17, 0x2e, 0x4b, 0xca, 0x6f, 0x2f, 0x26, 0x65, 0x22, 0x53, 0x84, 0xc8, 0x95, 0x22, - 0x0b, 0x7c, 0x9a, 0x09, 0x63, 0xeb, 0x57, 0xd8, 0xda, 0x79, 0x70, 0x7b, 0x08, 0x95, 0x89, 0x3b, - 0x8d, 0x51, 0x75, 0x8b, 0xd5, 0x08, 0xee, 0xa5, 0xf3, 0x08, 0xd9, 0x54, 0xc2, 0xc8, 0xbb, 0xb0, - 0x22, 0x2a, 0x59, 0xeb, 0x07, 0xce, 0xc6, 0x82, 0x95, 0xf7, 0xa6, 0x48, 0x13, 0xbb, 0xff, 0x18, - 0xca, 0x7e, 0xc8, 0x37, 0x5f, 0xc7, 0x25, 0xef, 0x5c, 0x58, 0x72, 0xc8, 0xb9, 0x54, 0x80, 0xc8, - 0x87, 0x50, 0x3a, 0x71, 0xbd, 0x18, 0xb3, 0x46, 0x73, 0xfb, 0xf6, 0x05, 0xf0, 0x63, 0xd7, 0x8b, - 0x29, 0x42, 0x78, 0x98, 0x1f, 0xfb, 0x73, 0x2f, 0x6e, 0xdd, 0xc5, 0x0c, 0x23, 0x06, 0xe4, 0x1e, - 0x54, 0xfc, 0xc9, 0x24, 0x62, 0x31, 0x76, 0x96, 0xe5, 0x9d, 0xc2, 0xa7, 0x54, 0x12, 0xf8, 0x84, - 0xa9, 0x3b, 0x73, 0x63, 0xec, 0x43, 0xca, 0x54, 0x0c, 0xc8, 0x2e, 0xac, 0x8d, 0xfd, 0x59, 0xe0, - 0x4e, 0x99, 0x63, 0x8d, 0xe7, 0x61, 0xe4, 0x87, 0xad, 0x77, 0x2e, 0x1c, 0xd3, 0x9e, 0x44, 0xec, - 0x21, 0x80, 0x36, 0xc7, 0xb9, 0x31, 0x31, 0x60, 0x83, 0x79, 0x8e, 0xb5, 0xb8, 0xce, 0xfd, 0xd7, - 0xad, 0xb3, 0xce, 0x3c, 0x27, 0x4f, 0x4a, 0xc4, 0xc1, 0x48, 0x68, 0x61, 0xcc, 0x68, 0x6d, 0x60, - 0x90, 0xb9, 0x77, 0x69, 0xac, 0x14, 0xe2, 0x64, 0xc2, 0xf7, 0x6f, 0xc0, 0x2d, 0x19, 0x22, 0xad, - 0x80, 0x85, 0x13, 0x36, 0x8e, 0xad, 0x60, 0x6a, 0x7b, 0x58, 0xca, 0xa5, 0xc6, 0x4a, 0x24, 0xe4, - 0x50, 0x20, 0x0e, 0xa7, 0xb6, 0x47, 0x34, 0xa8, 0x3f, 0x67, 0x67, 0x91, 0xc5, 0x23, 0x29, 0x76, - 0xae, 0x29, 0xba, 0xc6, 0xe9, 0x43, 0x6f, 0x7a, 0x46, 0x7e, 0x02, 0x8d, 0xf8, 0xdc, 0xdb, 0xb0, - 0x61, 0x6d, 0xe4, 0x4e, 0x35, 0xe3, 0x8b, 0x34, 0x0b, 0x25, 0xf7, 0xa1, 0x2a, 0x35, 0xd4, 0xba, - 0x97, 0x5d, 0x3b, 0xa1, 0xf2, 0xc4, 0x3c, 0xb1, 0xdd, 0xa9, 0x7f, 0xca, 0x42, 0x6b, 0x16, 0xb5, - 0xda, 0xe2, 0xb6, 0x24, 0x21, 0x1d, 0x44, 0xdc, 0x4f, 0xa3, 0x38, 0xf4, 0xbd, 0xe3, 0xd6, 0x26, - 0xde, 0x93, 0xc8, 0xd1, 0xc5, 0xe0, 0xf7, 0x2e, 0x66, 0xfe, 0x7c, 0xf0, 0xfb, 0x1c, 0xee, 0x60, - 0x65, 0x66, 0x3d, 0x3b, 0xb3, 0xf2, 0x68, 0x0d, 0xd1, 0x1b, 0xc8, 0xdd, 0x3d, 0x3b, 0xcc, 0x4e, - 0x6a, 0x43, 0xcd, 0x71, 0xa3, 0xd8, 0xf5, 0xc6, 0x71, 0xab, 0x85, 0xef, 0x4c, 0xc7, 0xe4, 0x33, - 0xb8, 0x3d, 0x73, 0x3d, 0x2b, 0xb2, 0x27, 0xcc, 0x8a, 0x5d, 0xee, 0x9b, 0x6c, 0xec, 0x7b, 0x4e, - 0xd4, 0x7a, 0x80, 0x82, 0x93, 0x99, 0xeb, 0x8d, 0xec, 0x09, 0x33, 0xdd, 0x19, 0x1b, 0x09, 0x0e, - 0xf9, 0x08, 0xd6, 0x11, 0x1e, 0xb2, 0x60, 0xea, 0x8e, 0x6d, 0xf1, 0xfa, 0x1f, 0xe1, 0xeb, 0xd7, - 0x38, 0x83, 0x0a, 0x3a, 0xbe, 0xfa, 0x63, 0x68, 0x06, 0x2c, 0x8c, 0xdc, 0x28, 0xb6, 0xa4, 0x45, - 0xbf, 0x97, 0xd5, 0xda, 0xaa, 0x64, 0x0e, 0x91, 0xd7, 0xfe, 0xcf, 0x02, 0x54, 0x84, 0x73, 0x92, - 0x4f, 0x41, 0xf1, 0x03, 0xbc, 0x06, 0x69, 0x6e, 0x6f, 0x5e, 0xe2, 0xc1, 0x9d, 0x61, 0xc0, 0xeb, - 0x5e, 0x3f, 0xa4, 0x8a, 0x1f, 0xdc, 0xb8, 0x28, 0xd4, 0xfe, 0x10, 0x6a, 0xc9, 0x02, 0xbc, 0xbc, - 0xe8, 0xeb, 0xa3, 0x91, 0x65, 0x3e, 0xee, 0x0e, 0xd4, 0x02, 0xb9, 0x03, 0x24, 0x1d, 0x5a, 0x43, - 0x6a, 0xe9, 0xdf, 0x1c, 0x75, 0xfb, 0xaa, 0x82, 0x5d, 0x1a, 0xd5, 0xbb, 0xa6, 0x4e, 0x05, 0xb2, - 0x48, 0xee, 0xc1, 0xed, 0x2c, 0xe5, 0x1c, 0x5c, 0xc2, 0x14, 0x8c, 0x8f, 0x65, 0x52, 0x01, 0xc5, - 0x18, 0xa8, 0x15, 0x9e, 0x16, 0xf4, 0xef, 0x8d, 0x91, 0x39, 0x52, 0xab, 0xed, 0xbf, 0x29, 0x40, - 0x19, 0xc3, 0x06, 0x3f, 0x9f, 0x54, 0x72, 0x71, 0x5d, 0x73, 0x5e, 0xb9, 0x1a, 0xd9, 0x92, 0xaa, - 0x81, 0x01, 0x65, 0x73, 0x79, 0xf4, 0xf9, 0xb5, 0xd6, 0x53, 0x3f, 0x85, 0x12, 0x8f, 0x52, 0xbc, - 0x43, 0x1c, 0xd2, 0x9e, 0x4e, 0xad, 0x47, 0x06, 0x1d, 0xf1, 0x2a, 0x97, 0x40, 0xb3, 0x3b, 0xd8, - 0xd3, 0x47, 0xe6, 0x30, 0xa1, 0xa1, 0x56, 0x1e, 0x19, 0x7d, 0x33, 0x45, 0x15, 0xb5, 0x9f, 0xd7, - 0x60, 0x35, 0x89, 0x09, 0x22, 0x82, 0x3e, 0x82, 0x46, 0x10, 0xba, 0x33, 0x3b, 0x3c, 0x8b, 0xc6, - 0xb6, 0x87, 0x49, 0x01, 0xb6, 0x7f, 0xb4, 0x24, 0xaa, 0x88, 0x1d, 0x1d, 0x0a, 0xec, 0x68, 0x6c, - 0x7b, 0x34, 0x3b, 0x91, 0xf4, 0x61, 0x75, 0xc6, 0xc2, 0x63, 0xf6, 0x7b, 0xbe, 0xeb, 0xe1, 0x4a, - 0x55, 0x8c, 0xc8, 0xef, 0x5f, 0xba, 0xd2, 0x01, 0x47, 0xff, 0x8e, 0xef, 0x7a, 0xb8, 0x56, 0x7e, - 0x32, 0xf9, 0x04, 0xea, 0xa2, 0x12, 0x72, 0xd8, 0x04, 0x63, 0xc5, 0xb2, 0xda, 0x4f, 0xd4, 0xe8, - 0x3d, 0x36, 0xc9, 0xc4, 0x65, 0xb8, 0x34, 0x2e, 0x37, 0xb2, 0x71, 0xf9, 0xcd, 0x6c, 0x2c, 0x5a, - 0x11, 0x55, 0x78, 0x1a, 0x84, 0x2e, 0x38, 0x7c, 0x6b, 0x89, 0xc3, 0x77, 0x60, 0x23, 0xf1, 0x55, - 0xcb, 0xf5, 0x26, 0xee, 0x4b, 0x2b, 0x72, 0x5f, 0x89, 0xd8, 0x53, 0xa6, 0xeb, 0x09, 0xcb, 0xe0, - 0x9c, 0x91, 0xfb, 0x8a, 0x11, 0x23, 0xe9, 0xe0, 0x64, 0x0e, 0x5c, 0xc5, 0xab, 0xc9, 0xf7, 0x2e, - 0x55, 0x8f, 0x68, 0xbe, 0x64, 0x46, 0xcc, 0x4d, 0x6d, 0xff, 0x52, 0x81, 0x46, 0xe6, 0x1c, 0x78, - 0xf6, 0x16, 0xca, 0x42, 0x61, 0xc5, 0x55, 0x94, 0x50, 0x1f, 0x4a, 0xfa, 0x26, 0xd4, 0xa3, 0xd8, - 0x0e, 0x63, 0x8b, 0x17, 0x57, 0xb2, 0xdd, 0x45, 0xc2, 0x13, 0x76, 0x46, 0x3e, 0x80, 0x35, 0xc1, - 0x74, 0xbd, 0xf1, 0x74, 0x1e, 0xb9, 0xa7, 0xa2, 0x99, 0xaf, 0xd1, 0x26, 0x92, 0x8d, 0x84, 0x4a, - 0xee, 0x42, 0x95, 0x67, 0x21, 0xbe, 0x86, 0x68, 0xfa, 0x2a, 0xcc, 0x73, 0xf8, 0x0a, 0x0f, 0x60, - 0x95, 0x33, 0xce, 0xe7, 0x57, 0xc4, 0x2d, 0x33, 0xf3, 0x9c, 0xf3, 0xd9, 0x1d, 0xd8, 0x10, 0xaf, - 0x09, 0x44, 0xf1, 0x2a, 0x2b, 0xdc, 0x3b, 0xa8, 0xd8, 0x75, 0x64, 0xc9, 0xb2, 0x56, 0x14, 0x9c, - 0x1f, 0x01, 0xcf, 0x5e, 0x0b, 0xe8, 0xbb, 0x22, 0x94, 0x31, 0xcf, 0xc9, 0x61, 0x77, 0xe1, 0x1d, - 0x8e, 0x9d, 0x7b, 0x76, 0x10, 0x4c, 0x5d, 0xe6, 0x58, 0x53, 0xff, 0x18, 0x43, 0x66, 0x14, 0xdb, - 0xb3, 0xc0, 0x9a, 0x47, 0xad, 0x0d, 0x0c, 0x99, 0x6d, 0xe6, 0x39, 0x47, 0x09, 0xa8, 0xef, 0x1f, - 0x9b, 0x09, 0xe4, 0x28, 0x6a, 0xff, 0x3e, 0xac, 0xe6, 0xec, 0x71, 0x41, 0xa7, 0x35, 0x74, 0xfe, - 0x8c, 0x4e, 0xdf, 0x85, 0x95, 0x20, 0x64, 0xe7, 0xa2, 0xd5, 0x51, 0xb4, 0x86, 0xa0, 0x09, 0xb1, - 0xb6, 0x60, 0x05, 0x79, 0x96, 0x20, 0xe6, 0xf3, 0x63, 0x03, 0x59, 0x87, 0xc8, 0x69, 0xbf, 0x80, - 0x95, 0xec, 0x69, 0x93, 0x77, 0x33, 0x69, 0xa1, 0x99, 0xcb, 0x93, 0x69, 0x76, 0x48, 0x2a, 0xb2, - 0xf5, 0x4b, 0x2a, 0x32, 0x72, 0x9d, 0x8a, 0x4c, 0xfb, 0x2f, 0xd9, 0x9c, 0x65, 0x2a, 0x84, 0x9f, - 0x41, 0x2d, 0x90, 0xf5, 0x38, 0x5a, 0x52, 0xfe, 0x12, 0x3e, 0x0f, 0xee, 0x24, 0x95, 0x3b, 0x4d, - 0xe7, 0xb4, 0xff, 0x56, 0x81, 0x5a, 0x5a, 0xd0, 0xe7, 0x2c, 0xef, 0xcd, 0x05, 0xcb, 0x3b, 0x90, - 0x1a, 0x16, 0x0a, 0x7c, 0x1b, 0xa3, 0xc5, 0x27, 0xaf, 0x7f, 0xd7, 0xc5, 0xb6, 0xe7, 0x34, 0xdb, - 0xf6, 0x6c, 0xbe, 0xae, 0xed, 0xf9, 0xe4, 0xa2, 0xc1, 0xbf, 0x95, 0xe9, 0x2d, 0x16, 0xcc, 0xbe, - 0xfd, 0x7d, 0xae, 0x0f, 0xca, 0x26, 0x84, 0x77, 0xc4, 0x7e, 0xd2, 0x84, 0x90, 0xb6, 0x3f, 0xf7, - 0xaf, 0xd7, 0xfe, 0x6c, 0x43, 0x45, 0xea, 0xfc, 0x0e, 0x54, 0x64, 0x4d, 0x27, 0x1b, 0x04, 0x31, - 0x3a, 0x6f, 0x10, 0x0a, 0xb2, 0x4e, 0xd7, 0x7e, 0xae, 0x40, 0x59, 0x0f, 0x43, 0x3f, 0xd4, 0xfe, - 0x48, 0x81, 0x3a, 0x3e, 0xed, 0xf9, 0x0e, 0xe3, 0xd9, 0x60, 0xb7, 0xdb, 0xb3, 0xa8, 0xfe, 0xcd, - 0x91, 0x8e, 0xd9, 0xa0, 0x0d, 0x77, 0xf6, 0x86, 0x83, 0xbd, 0x23, 0x4a, 0xf5, 0x81, 0x69, 0x99, - 0xb4, 0x3b, 0x18, 0xf1, 0xb6, 0x67, 0x38, 0x50, 0x15, 0x9e, 0x29, 0x8c, 0x81, 0xa9, 0xd3, 0x41, - 0xb7, 0x6f, 0x89, 0x56, 0xb4, 0x88, 0x77, 0xb3, 0xba, 0xde, 0xb3, 0xf0, 0xd6, 0x51, 0x2d, 0xf1, - 0x96, 0xd5, 0x34, 0x0e, 0xf4, 0xe1, 0x91, 0xa9, 0x96, 0xc9, 0x6d, 0x58, 0x3f, 0xd4, 0xe9, 0x81, - 0x31, 0x1a, 0x19, 0xc3, 0x81, 0xd5, 0xd3, 0x07, 0x86, 0xde, 0x53, 0x2b, 0x7c, 0x9d, 0x5d, 0x63, - 0xdf, 0xec, 0xee, 0xf6, 0x75, 0xb9, 0x4e, 0x95, 0x6c, 0xc2, 0x5b, 0x7b, 0xc3, 0x83, 0x03, 0xc3, - 0x34, 0xf5, 0x9e, 0xb5, 0x7b, 0x64, 0x5a, 0x23, 0xd3, 0xe8, 0xf7, 0xad, 0xee, 0xe1, 0x61, 0xff, - 0x29, 0x4f, 0x60, 0x35, 0x72, 0x17, 0x36, 0xf6, 0xba, 0x87, 0xdd, 0x5d, 0xa3, 0x6f, 0x98, 0x4f, - 0xad, 0x9e, 0x31, 0xe2, 0xf3, 0x7b, 0x6a, 0x9d, 0x27, 0x6c, 0x93, 0x3e, 0xb5, 0xba, 0x7d, 0x14, - 0xcd, 0xd4, 0xad, 0xdd, 0xee, 0xde, 0x13, 0x7d, 0xd0, 0x53, 0x81, 0x0b, 0x30, 0xea, 0x3e, 0xd2, - 0x2d, 0x2e, 0x92, 0x65, 0x0e, 0x87, 0xd6, 0xb0, 0xdf, 0x53, 0x1b, 0xda, 0xbf, 0x14, 0xa1, 0xb4, - 0xe7, 0x47, 0x31, 0xf7, 0x46, 0xe1, 0xac, 0x2f, 0x42, 0x37, 0x66, 0xa2, 0x7f, 0x2b, 0x53, 0xd1, - 0x4b, 0x7f, 0x87, 0x24, 0x1e, 0x50, 0x32, 0x10, 0xeb, 0xd9, 0x19, 0xc7, 0x29, 0x88, 0x5b, 0x3b, - 0xc7, 0xed, 0x72, 0xb2, 0x88, 0x68, 0x78, 0x85, 0x23, 0xd7, 0x2b, 0x22, 0x4e, 0x06, 0x61, 0xb9, - 0xe0, 0xc7, 0x40, 0xb2, 0x20, 0xb9, 0x62, 0x09, 0x91, 0x6a, 0x06, 0x29, 0x96, 0xdc, 0x01, 0x18, - 0xfb, 0xb3, 0x99, 0x1b, 0x8f, 0xfd, 0x28, 0x96, 0x5f, 0xc8, 0xda, 0x39, 0x63, 0x8f, 0x62, 0x6e, - 0xf1, 0x33, 0x37, 0xe6, 0x8f, 0x34, 0x83, 0x26, 0x3b, 0x70, 0xcf, 0x0e, 0x82, 0xd0, 0x7f, 0xe9, - 0xce, 0xec, 0x98, 0x59, 0xdc, 0x73, 0xed, 0x63, 0x66, 0x39, 0x6c, 0x1a, 0xdb, 0xd8, 0x13, 0x95, - 0xe9, 0xdd, 0x0c, 0x60, 0x24, 0xf8, 0x3d, 0xce, 0xe6, 0x71, 0xd7, 0x75, 0xac, 0x88, 0xfd, 0x30, - 0xe7, 0x1e, 0x60, 0xcd, 0x03, 0xc7, 0xe6, 0x62, 0xd6, 0x45, 0x96, 0x72, 0x9d, 0x91, 0xe4, 0x1c, - 0x09, 0x46, 0xfb, 0x15, 0xc0, 0xb9, 0x14, 0x64, 0x1b, 0x6e, 0xf3, 0x3a, 0x9e, 0x45, 0x31, 0x73, - 0x2c, 0xb9, 0xdb, 0x60, 0x1e, 0x47, 0x18, 0xe2, 0xcb, 0x74, 0x23, 0x65, 0xca, 0x9b, 0xc2, 0x79, - 0x1c, 0x91, 0x9f, 0x40, 0xeb, 0xc2, 0x1c, 0x87, 0x4d, 0x19, 0x7f, 0x6d, 0x15, 0xa7, 0xdd, 0x59, - 0x98, 0xd6, 0x13, 0x5c, 0xed, 0x4f, 0x14, 0x80, 0x7d, 0x16, 0x53, 0xc1, 0xcd, 0x34, 0xb6, 0x95, - 0xeb, 0x36, 0xb6, 0xef, 0x27, 0x17, 0x08, 0xc5, 0xab, 0x63, 0xc0, 0x42, 0x97, 0xa1, 0xdc, 0xa4, - 0xcb, 0xc8, 0x35, 0x11, 0xc5, 0x2b, 0x9a, 0x88, 0x52, 0xae, 0x89, 0xf8, 0x18, 0x9a, 0xf6, 0x74, - 0xea, 0xbf, 0xe0, 0x05, 0x0d, 0x0b, 0x43, 0xe6, 0xa0, 0x11, 0x9c, 0xd7, 0xdb, 0xc8, 0xec, 0x49, - 0x9e, 0xf6, 0xe7, 0x0a, 0x34, 0x50, 0x15, 0x51, 0xe0, 0x7b, 0x11, 0x23, 0x5f, 0x42, 0x45, 0x5e, - 0x44, 0x8b, 0x8b, 0xfc, 0xb7, 0x33, 0xb2, 0x66, 0x70, 0xb2, 0x68, 0xa0, 0x12, 0xcc, 0x33, 0x42, - 0xe6, 0x75, 0x97, 0x2b, 0x25, 0x45, 0x91, 0xfb, 0x50, 0x73, 0x3d, 0x4b, 0xb4, 0xd4, 0x95, 0x4c, - 0x58, 0xac, 0xba, 0x1e, 0xd6, 0xb2, 0xed, 0x57, 0x50, 0x11, 0x2f, 0x21, 0x9d, 0x54, 0xa6, 0x8b, - 0xfa, 0xcb, 0xdc, 0x1c, 0xa7, 0xc2, 0xc8, 0xc3, 0x29, 0xbd, 0x2e, 0x40, 0xb7, 0xa0, 0x7a, 0xca, - 0x9b, 0x0f, 0xbc, 0xf4, 0xe3, 0xea, 0x4d, 0x86, 0xda, 0x1f, 0x97, 0x00, 0x0e, 0xe7, 0x4b, 0x0c, - 0xa4, 0x71, 0x5d, 0x03, 0xe9, 0xe4, 0xf4, 0xf8, 0x7a, 0x99, 0x7f, 0x75, 0x43, 0x59, 0xd2, 0x69, - 0x17, 0x6f, 0xda, 0x69, 0xdf, 0x87, 0x6a, 0x1c, 0xce, 0xb9, 0xa3, 0x08, 0x63, 0x4a, 0x5b, 0x5a, - 0x49, 0x25, 0x6f, 0x42, 0x79, 0xe2, 0x87, 0x63, 0x86, 0x8e, 0x95, 0xb2, 0x05, 0xed, 0xc2, 0x65, - 0x52, 0xed, 0xb2, 0xcb, 0x24, 0xde, 0xa0, 0x45, 0xf2, 0x1e, 0x0d, 0x0b, 0x99, 0x7c, 0x83, 0x96, - 0x5c, 0xb1, 0xd1, 0x14, 0x44, 0xbe, 0x81, 0xa6, 0x3d, 0x8f, 0x7d, 0xcb, 0xe5, 0x15, 0xda, 0xd4, - 0x1d, 0x9f, 0x61, 0xd9, 0xdd, 0xcc, 0x7f, 0xaf, 0x4f, 0x0f, 0xaa, 0xd3, 0x9d, 0xc7, 0xbe, 0xe1, - 0x1c, 0x22, 0x72, 0xa7, 0x2a, 0x93, 0x12, 0x5d, 0xb1, 0x33, 0x64, 0xed, 0xc7, 0xb0, 0x92, 0x85, - 0xf1, 0x04, 0x24, 0x81, 0xea, 0x1b, 0x3c, 0x3b, 0x8d, 0x78, 0x6a, 0x1b, 0x98, 0x46, 0xb7, 0xaf, - 0x16, 0xb4, 0x18, 0x1a, 0xb8, 0xbc, 0xf4, 0x8e, 0xeb, 0xba, 0xfd, 0x03, 0x28, 0x61, 0xf8, 0x55, - 0x2e, 0x7c, 0x0f, 0xc1, 0x98, 0x8b, 0xcc, 0xbc, 0xf9, 0x15, 0xb3, 0xe6, 0xf7, 0xdf, 0x05, 0x58, - 0x31, 0xfd, 0xf9, 0xf8, 0xe4, 0xa2, 0x01, 0xc2, 0xaf, 0x3b, 0x42, 0x2d, 0x31, 0x1f, 0xe5, 0xa6, - 0xe6, 0x93, 0x5a, 0x47, 0x71, 0x89, 0x75, 0xdc, 0xf4, 0xcc, 0xb5, 0x2f, 0x60, 0x55, 0x6e, 0x5e, - 0x6a, 0x3d, 0xd1, 0x66, 0xe1, 0x0a, 0x6d, 0x6a, 0xbf, 0x50, 0x60, 0x55, 0xc4, 0xf7, 0xff, 0xbb, - 0xd2, 0x2a, 0x37, 0x0c, 0xeb, 0xe5, 0x1b, 0x5d, 0x1e, 0xfd, 0xbf, 0xf4, 0x34, 0x6d, 0x08, 0xcd, - 0x44, 0x7d, 0x37, 0x50, 0xfb, 0x15, 0x46, 0xfc, 0x8b, 0x02, 0x34, 0x06, 0xec, 0xe5, 0x92, 0x20, - 0x5a, 0xbe, 0xee, 0x71, 0x7c, 0x98, 0x2b, 0x57, 0x1b, 0xdb, 0xeb, 0x59, 0x19, 0xc4, 0xd5, 0x63, - 0x52, 0xc1, 0xa6, 0xb7, 0xa8, 0xca, 0xf2, 0x5b, 0xd4, 0xd2, 0x62, 0xb7, 0x9e, 0xb9, 0xc5, 0x2b, - 0x2e, 0xbb, 0xc5, 0xd3, 0xfe, 0xad, 0x08, 0x0d, 0x6c, 0x90, 0x29, 0x8b, 0xe6, 0xd3, 0x38, 0x27, - 0x4c, 0xe1, 0x6a, 0x61, 0x3a, 0x50, 0x09, 0x71, 0x92, 0x74, 0xa5, 0x4b, 0x83, 0xbf, 0x40, 0x61, - 0x6b, 0xfc, 0xdc, 0x0d, 0x02, 0xe6, 0x58, 0x82, 0x92, 0x14, 0x30, 0x4d, 0x49, 0x16, 0x22, 0x44, - 0xbc, 0xfc, 0x9c, 0xf9, 0x21, 0x4b, 0x51, 0x45, 0xbc, 0x4f, 0x68, 0x70, 0x5a, 0x02, 0xc9, 0xdd, - 0x37, 0x88, 0xca, 0xe0, 0xfc, 0xbe, 0x21, 0xed, 0x35, 0x91, 0x5b, 0x47, 0xae, 0xe8, 0x35, 0x91, - 0xcd, 0xbb, 0xa8, 0x99, 0x3d, 0x9d, 0x5a, 0x7e, 0x10, 0xa1, 0xd3, 0xd4, 0x68, 0x0d, 0x09, 0xc3, - 0x20, 0x22, 0x5f, 0x43, 0x7a, 0x5d, 0x2c, 0x6f, 0xc9, 0xc5, 0x39, 0xb6, 0x2e, 0xbb, 0x58, 0xa0, - 0xab, 0xe3, 0xdc, 0xfd, 0xcf, 0x92, 0x1b, 0xea, 0xca, 0x4d, 0x6f, 0xa8, 0x1f, 0x42, 0x59, 0xc4, - 0xa8, 0xda, 0xeb, 0x62, 0x94, 0xc0, 0x65, 0xed, 0xb3, 0x91, 0xb7, 0xcf, 0x5f, 0x16, 0x80, 0x74, - 0xa7, 0x53, 0x7f, 0x6c, 0xc7, 0xcc, 0x70, 0xa2, 0x8b, 0x66, 0x7a, 0xed, 0xcf, 0x2e, 0x9f, 0x41, - 0x7d, 0xe6, 0x3b, 0x6c, 0x6a, 0x25, 0xdf, 0x94, 0x2e, 0xad, 0x7e, 0x10, 0xc6, 0x5b, 0x52, 0x02, - 0x25, 0xbc, 0xc4, 0x51, 0xb0, 0xee, 0xc0, 0x67, 0xde, 0x84, 0xcd, 0xec, 0x97, 0xb2, 0x14, 0xe1, - 0x8f, 0xa4, 0x03, 0xd5, 0x90, 0x45, 0x2c, 0x3c, 0x65, 0x57, 0x16, 0x55, 0x09, 0x48, 0x7b, 0x06, - 0x1b, 0xb9, 0x1d, 0x49, 0x47, 0xbe, 0x85, 0x5f, 0x2b, 0xc3, 0x58, 0x7e, 0xb4, 0x12, 0x03, 0xfe, - 0x3a, 0xe6, 0x25, 0x9f, 0x41, 0xf9, 0x63, 0xea, 0xf0, 0xc5, 0xab, 0xe2, 0xec, 0x1e, 0xa8, 0x59, - 0x4d, 0xbb, 0x63, 0x0c, 0x36, 0xf2, 0x54, 0x0a, 0xd7, 0x3b, 0x15, 0xed, 0xef, 0x0a, 0xb0, 0xde, - 0x75, 0x1c, 0xf1, 0x77, 0xc3, 0x25, 0xaa, 0x2f, 0x5e, 0x57, 0xf5, 0x0b, 0x81, 0x58, 0x84, 0x89, - 0x6b, 0x05, 0xe2, 0x0f, 0xa1, 0x92, 0xd6, 0x5a, 0xc5, 0x05, 0x77, 0x16, 0x72, 0x51, 0x09, 0xd0, - 0x6e, 0x01, 0xc9, 0x0a, 0x2b, 0xb4, 0xaa, 0xfd, 0x69, 0x11, 0xee, 0xee, 0xb2, 0x63, 0xd7, 0xcb, - 0xbe, 0xe2, 0x57, 0xdf, 0xc9, 0xc5, 0x4f, 0x65, 0x9f, 0xc1, 0xba, 0x28, 0xe4, 0x93, 0x7f, 0x62, - 0x59, 0xec, 0x58, 0x7e, 0x9d, 0x94, 0xb1, 0x6a, 0x0d, 0xf9, 0x07, 0x92, 0xad, 0xe3, 0x7f, 0xc5, - 0x1c, 0x3b, 0xb6, 0x9f, 0xd9, 0x11, 0xb3, 0x5c, 0x47, 0xfe, 0x59, 0x06, 0x12, 0x92, 0xe1, 0x90, - 0x21, 0x94, 0xb8, 0x0d, 0xa2, 0xeb, 0x36, 0xb7, 0xb7, 0x33, 0x62, 0x5d, 0xb2, 0x95, 0xac, 0x02, - 0x0f, 0x7c, 0x87, 0xed, 0x54, 0x8f, 0x06, 0x4f, 0x06, 0xc3, 0xef, 0x06, 0x14, 0x17, 0x22, 0x06, - 0xdc, 0x0a, 0x42, 0x76, 0xea, 0xfa, 0xf3, 0xc8, 0xca, 0x9e, 0x44, 0xf5, 0xca, 0x94, 0xb8, 0x91, - 0xcc, 0xc9, 0x10, 0xb5, 0x9f, 0xc2, 0xda, 0xc2, 0xcb, 0x78, 0x6d, 0x26, 0x5f, 0xa7, 0xbe, 0x41, - 0x56, 0xa1, 0x8e, 0x1f, 0xbb, 0x97, 0x7f, 0xfb, 0xd6, 0xfe, 0xb5, 0x80, 0x57, 0x4c, 0x33, 0x37, - 0xbe, 0x59, 0x06, 0xfb, 0xcd, 0x7c, 0x06, 0x83, 0xed, 0x77, 0xf3, 0xe6, 0x9b, 0x59, 0xb0, 0xf3, - 0xad, 0x00, 0xa6, 0x41, 0xa4, 0x6d, 0x43, 0x55, 0xd2, 0xc8, 0x6f, 0xc1, 0x5a, 0xe8, 0xfb, 0x71, - 0xd2, 0x89, 0x8a, 0x0e, 0xe4, 0xf2, 0x3f, 0xdb, 0xac, 0x72, 0xb0, 0x48, 0x06, 0x4f, 0xf2, 0xbd, - 0x48, 0x59, 0xfc, 0x0d, 0x44, 0x0e, 0x77, 0x1b, 0xbf, 0x5b, 0x4f, 0xff, 0xb7, 0xfb, 0xbf, 0x01, - 0x00, 0x00, 0xff, 0xff, 0x35, 0x9f, 0x30, 0x98, 0xf2, 0x2b, 0x00, 0x00, -} diff --git a/vendor/google.golang.org/appengine/internal/datastore/datastore_v3.proto b/vendor/google.golang.org/appengine/internal/datastore/datastore_v3.proto deleted file mode 100644 index 497b4d9a9..000000000 --- a/vendor/google.golang.org/appengine/internal/datastore/datastore_v3.proto +++ /dev/null @@ -1,551 +0,0 @@ -syntax = "proto2"; -option go_package = "datastore"; - -package appengine; - -message Action{} - -message PropertyValue { - optional int64 int64Value = 1; - optional bool booleanValue = 2; - optional string stringValue = 3; - optional double doubleValue = 4; - - optional group PointValue = 5 { - required double x = 6; - required double y = 7; - } - - optional group UserValue = 8 { - required string email = 9; - required string auth_domain = 10; - optional string nickname = 11; - optional string federated_identity = 21; - optional string federated_provider = 22; - } - - optional group ReferenceValue = 12 { - required string app = 13; - optional string name_space = 20; - repeated group PathElement = 14 { - required string type = 15; - optional int64 id = 16; - optional string name = 17; - } - } -} - -message Property { - enum Meaning { - NO_MEANING = 0; - BLOB = 14; - TEXT = 15; - BYTESTRING = 16; - - ATOM_CATEGORY = 1; - ATOM_LINK = 2; - ATOM_TITLE = 3; - ATOM_CONTENT = 4; - ATOM_SUMMARY = 5; - ATOM_AUTHOR = 6; - - GD_WHEN = 7; - GD_EMAIL = 8; - GEORSS_POINT = 9; - GD_IM = 10; - - GD_PHONENUMBER = 11; - GD_POSTALADDRESS = 12; - - GD_RATING = 13; - - BLOBKEY = 17; - ENTITY_PROTO = 19; - - INDEX_VALUE = 18; - }; - - optional Meaning meaning = 1 [default = NO_MEANING]; - optional string meaning_uri = 2; - - required string name = 3; - - required PropertyValue value = 5; - - required bool multiple = 4; - - optional bool searchable = 6 [default=false]; - - enum FtsTokenizationOption { - HTML = 1; - ATOM = 2; - } - - optional FtsTokenizationOption fts_tokenization_option = 8; - - optional string locale = 9 [default = "en"]; -} - -message Path { - repeated group Element = 1 { - required string type = 2; - optional int64 id = 3; - optional string name = 4; - } -} - -message Reference { - required string app = 13; - optional string name_space = 20; - required Path path = 14; -} - -message User { - required string email = 1; - required string auth_domain = 2; - optional string nickname = 3; - optional string federated_identity = 6; - optional string federated_provider = 7; -} - -message EntityProto { - required Reference key = 13; - required Path entity_group = 16; - optional User owner = 17; - - enum Kind { - GD_CONTACT = 1; - GD_EVENT = 2; - GD_MESSAGE = 3; - } - optional Kind kind = 4; - optional string kind_uri = 5; - - repeated Property property = 14; - repeated Property raw_property = 15; - - optional int32 rank = 18; -} - -message CompositeProperty { - required int64 index_id = 1; - repeated string value = 2; -} - -message Index { - required string entity_type = 1; - required bool ancestor = 5; - repeated group Property = 2 { - required string name = 3; - enum Direction { - ASCENDING = 1; - DESCENDING = 2; - } - optional Direction direction = 4 [default = ASCENDING]; - } -} - -message CompositeIndex { - required string app_id = 1; - required int64 id = 2; - required Index definition = 3; - - enum State { - WRITE_ONLY = 1; - READ_WRITE = 2; - DELETED = 3; - ERROR = 4; - } - required State state = 4; - - optional bool only_use_if_required = 6 [default = false]; -} - -message IndexPostfix { - message IndexValue { - required string property_name = 1; - required PropertyValue value = 2; - } - - repeated IndexValue index_value = 1; - - optional Reference key = 2; - - optional bool before = 3 [default=true]; -} - -message IndexPosition { - optional string key = 1; - - optional bool before = 2 [default=true]; -} - -message Snapshot { - enum Status { - INACTIVE = 0; - ACTIVE = 1; - } - - required int64 ts = 1; -} - -message InternalHeader { - optional string qos = 1; -} - -message Transaction { - optional InternalHeader header = 4; - required fixed64 handle = 1; - required string app = 2; - optional bool mark_changes = 3 [default = false]; -} - -message Query { - optional InternalHeader header = 39; - - required string app = 1; - optional string name_space = 29; - - optional string kind = 3; - optional Reference ancestor = 17; - - repeated group Filter = 4 { - enum Operator { - LESS_THAN = 1; - LESS_THAN_OR_EQUAL = 2; - GREATER_THAN = 3; - GREATER_THAN_OR_EQUAL = 4; - EQUAL = 5; - IN = 6; - EXISTS = 7; - } - - required Operator op = 6; - repeated Property property = 14; - } - - optional string search_query = 8; - - repeated group Order = 9 { - enum Direction { - ASCENDING = 1; - DESCENDING = 2; - } - - required string property = 10; - optional Direction direction = 11 [default = ASCENDING]; - } - - enum Hint { - ORDER_FIRST = 1; - ANCESTOR_FIRST = 2; - FILTER_FIRST = 3; - } - optional Hint hint = 18; - - optional int32 count = 23; - - optional int32 offset = 12 [default = 0]; - - optional int32 limit = 16; - - optional CompiledCursor compiled_cursor = 30; - optional CompiledCursor end_compiled_cursor = 31; - - repeated CompositeIndex composite_index = 19; - - optional bool require_perfect_plan = 20 [default = false]; - - optional bool keys_only = 21 [default = false]; - - optional Transaction transaction = 22; - - optional bool compile = 25 [default = false]; - - optional int64 failover_ms = 26; - - optional bool strong = 32; - - repeated string property_name = 33; - - repeated string group_by_property_name = 34; - - optional bool distinct = 24; - - optional int64 min_safe_time_seconds = 35; - - repeated string safe_replica_name = 36; - - optional bool persist_offset = 37 [default=false]; -} - -message CompiledQuery { - required group PrimaryScan = 1 { - optional string index_name = 2; - - optional string start_key = 3; - optional bool start_inclusive = 4; - optional string end_key = 5; - optional bool end_inclusive = 6; - - repeated string start_postfix_value = 22; - repeated string end_postfix_value = 23; - - optional int64 end_unapplied_log_timestamp_us = 19; - } - - repeated group MergeJoinScan = 7 { - required string index_name = 8; - - repeated string prefix_value = 9; - - optional bool value_prefix = 20 [default=false]; - } - - optional Index index_def = 21; - - optional int32 offset = 10 [default = 0]; - - optional int32 limit = 11; - - required bool keys_only = 12; - - repeated string property_name = 24; - - optional int32 distinct_infix_size = 25; - - optional group EntityFilter = 13 { - optional bool distinct = 14 [default=false]; - - optional string kind = 17; - optional Reference ancestor = 18; - } -} - -message CompiledCursor { - optional group Position = 2 { - optional string start_key = 27; - - repeated group IndexValue = 29 { - optional string property = 30; - required PropertyValue value = 31; - } - - optional Reference key = 32; - - optional bool start_inclusive = 28 [default=true]; - } -} - -message Cursor { - required fixed64 cursor = 1; - - optional string app = 2; -} - -message Error { - enum ErrorCode { - BAD_REQUEST = 1; - CONCURRENT_TRANSACTION = 2; - INTERNAL_ERROR = 3; - NEED_INDEX = 4; - TIMEOUT = 5; - PERMISSION_DENIED = 6; - BIGTABLE_ERROR = 7; - COMMITTED_BUT_STILL_APPLYING = 8; - CAPABILITY_DISABLED = 9; - TRY_ALTERNATE_BACKEND = 10; - SAFE_TIME_TOO_OLD = 11; - } -} - -message Cost { - optional int32 index_writes = 1; - optional int32 index_write_bytes = 2; - optional int32 entity_writes = 3; - optional int32 entity_write_bytes = 4; - optional group CommitCost = 5 { - optional int32 requested_entity_puts = 6; - optional int32 requested_entity_deletes = 7; - }; - optional int32 approximate_storage_delta = 8; - optional int32 id_sequence_updates = 9; -} - -message GetRequest { - optional InternalHeader header = 6; - - repeated Reference key = 1; - optional Transaction transaction = 2; - - optional int64 failover_ms = 3; - - optional bool strong = 4; - - optional bool allow_deferred = 5 [default=false]; -} - -message GetResponse { - repeated group Entity = 1 { - optional EntityProto entity = 2; - optional Reference key = 4; - - optional int64 version = 3; - } - - repeated Reference deferred = 5; - - optional bool in_order = 6 [default=true]; -} - -message PutRequest { - optional InternalHeader header = 11; - - repeated EntityProto entity = 1; - optional Transaction transaction = 2; - repeated CompositeIndex composite_index = 3; - - optional bool trusted = 4 [default = false]; - - optional bool force = 7 [default = false]; - - optional bool mark_changes = 8 [default = false]; - repeated Snapshot snapshot = 9; - - enum AutoIdPolicy { - CURRENT = 0; - SEQUENTIAL = 1; - } - optional AutoIdPolicy auto_id_policy = 10 [default = CURRENT]; -} - -message PutResponse { - repeated Reference key = 1; - optional Cost cost = 2; - repeated int64 version = 3; -} - -message TouchRequest { - optional InternalHeader header = 10; - - repeated Reference key = 1; - repeated CompositeIndex composite_index = 2; - optional bool force = 3 [default = false]; - repeated Snapshot snapshot = 9; -} - -message TouchResponse { - optional Cost cost = 1; -} - -message DeleteRequest { - optional InternalHeader header = 10; - - repeated Reference key = 6; - optional Transaction transaction = 5; - - optional bool trusted = 4 [default = false]; - - optional bool force = 7 [default = false]; - - optional bool mark_changes = 8 [default = false]; - repeated Snapshot snapshot = 9; -} - -message DeleteResponse { - optional Cost cost = 1; - repeated int64 version = 3; -} - -message NextRequest { - optional InternalHeader header = 5; - - required Cursor cursor = 1; - optional int32 count = 2; - - optional int32 offset = 4 [default = 0]; - - optional bool compile = 3 [default = false]; -} - -message QueryResult { - optional Cursor cursor = 1; - - repeated EntityProto result = 2; - - optional int32 skipped_results = 7; - - required bool more_results = 3; - - optional bool keys_only = 4; - - optional bool index_only = 9; - - optional bool small_ops = 10; - - optional CompiledQuery compiled_query = 5; - - optional CompiledCursor compiled_cursor = 6; - - repeated CompositeIndex index = 8; - - repeated int64 version = 11; -} - -message AllocateIdsRequest { - optional InternalHeader header = 4; - - optional Reference model_key = 1; - - optional int64 size = 2; - - optional int64 max = 3; - - repeated Reference reserve = 5; -} - -message AllocateIdsResponse { - required int64 start = 1; - required int64 end = 2; - optional Cost cost = 3; -} - -message CompositeIndices { - repeated CompositeIndex index = 1; -} - -message AddActionsRequest { - optional InternalHeader header = 3; - - required Transaction transaction = 1; - repeated Action action = 2; -} - -message AddActionsResponse { -} - -message BeginTransactionRequest { - optional InternalHeader header = 3; - - required string app = 1; - optional bool allow_multiple_eg = 2 [default = false]; - optional string database_id = 4; - - enum TransactionMode { - UNKNOWN = 0; - READ_ONLY = 1; - READ_WRITE = 2; - } - optional TransactionMode mode = 5 [default = UNKNOWN]; - - optional Transaction previous_transaction = 7; -} - -message CommitResponse { - optional Cost cost = 1; - - repeated group Version = 3 { - required Reference root_entity_key = 4; - required int64 version = 5; - } -} diff --git a/vendor/google.golang.org/appengine/internal/identity.go b/vendor/google.golang.org/appengine/internal/identity.go deleted file mode 100644 index 0f95aa91d..000000000 --- a/vendor/google.golang.org/appengine/internal/identity.go +++ /dev/null @@ -1,54 +0,0 @@ -// Copyright 2011 Google Inc. All rights reserved. -// Use of this source code is governed by the Apache 2.0 -// license that can be found in the LICENSE file. - -package internal - -import ( - "context" - "os" -) - -var ( - // This is set to true in identity_classic.go, which is behind the appengine build tag. - // The appengine build tag is set for the first generation runtimes (<= Go 1.9) but not - // the second generation runtimes (>= Go 1.11), so this indicates whether we're on a - // first-gen runtime. See IsStandard below for the second-gen check. - appengineStandard bool - - // This is set to true in identity_flex.go, which is behind the appenginevm build tag. - appengineFlex bool -) - -// AppID is the implementation of the wrapper function of the same name in -// ../identity.go. See that file for commentary. -func AppID(c context.Context) string { - return appID(FullyQualifiedAppID(c)) -} - -// IsStandard is the implementation of the wrapper function of the same name in -// ../appengine.go. See that file for commentary. -func IsStandard() bool { - // appengineStandard will be true for first-gen runtimes (<= Go 1.9) but not - // second-gen (>= Go 1.11). - return appengineStandard || IsSecondGen() -} - -// IsSecondGen is the implementation of the wrapper function of the same name in -// ../appengine.go. See that file for commentary. -func IsSecondGen() bool { - // Second-gen runtimes set $GAE_ENV so we use that to check if we're on a second-gen runtime. - return os.Getenv("GAE_ENV") == "standard" -} - -// IsFlex is the implementation of the wrapper function of the same name in -// ../appengine.go. See that file for commentary. -func IsFlex() bool { - return appengineFlex -} - -// IsAppEngine is the implementation of the wrapper function of the same name in -// ../appengine.go. See that file for commentary. -func IsAppEngine() bool { - return IsStandard() || IsFlex() -} diff --git a/vendor/google.golang.org/appengine/internal/identity_classic.go b/vendor/google.golang.org/appengine/internal/identity_classic.go deleted file mode 100644 index 5ad3548bf..000000000 --- a/vendor/google.golang.org/appengine/internal/identity_classic.go +++ /dev/null @@ -1,62 +0,0 @@ -// Copyright 2015 Google Inc. All rights reserved. -// Use of this source code is governed by the Apache 2.0 -// license that can be found in the LICENSE file. - -//go:build appengine -// +build appengine - -package internal - -import ( - "context" - - "appengine" -) - -func init() { - appengineStandard = true -} - -func DefaultVersionHostname(ctx context.Context) string { - c := fromContext(ctx) - if c == nil { - panic(errNotAppEngineContext) - } - return appengine.DefaultVersionHostname(c) -} - -func Datacenter(_ context.Context) string { return appengine.Datacenter() } -func ServerSoftware() string { return appengine.ServerSoftware() } -func InstanceID() string { return appengine.InstanceID() } -func IsDevAppServer() bool { return appengine.IsDevAppServer() } - -func RequestID(ctx context.Context) string { - c := fromContext(ctx) - if c == nil { - panic(errNotAppEngineContext) - } - return appengine.RequestID(c) -} - -func ModuleName(ctx context.Context) string { - c := fromContext(ctx) - if c == nil { - panic(errNotAppEngineContext) - } - return appengine.ModuleName(c) -} -func VersionID(ctx context.Context) string { - c := fromContext(ctx) - if c == nil { - panic(errNotAppEngineContext) - } - return appengine.VersionID(c) -} - -func fullyQualifiedAppID(ctx context.Context) string { - c := fromContext(ctx) - if c == nil { - panic(errNotAppEngineContext) - } - return c.FullyQualifiedAppID() -} diff --git a/vendor/google.golang.org/appengine/internal/identity_flex.go b/vendor/google.golang.org/appengine/internal/identity_flex.go deleted file mode 100644 index 4201b6b58..000000000 --- a/vendor/google.golang.org/appengine/internal/identity_flex.go +++ /dev/null @@ -1,12 +0,0 @@ -// Copyright 2018 Google LLC. All rights reserved. -// Use of this source code is governed by the Apache 2.0 -// license that can be found in the LICENSE file. - -//go:build appenginevm -// +build appenginevm - -package internal - -func init() { - appengineFlex = true -} diff --git a/vendor/google.golang.org/appengine/internal/identity_vm.go b/vendor/google.golang.org/appengine/internal/identity_vm.go deleted file mode 100644 index 18ddda3a4..000000000 --- a/vendor/google.golang.org/appengine/internal/identity_vm.go +++ /dev/null @@ -1,134 +0,0 @@ -// Copyright 2011 Google Inc. All rights reserved. -// Use of this source code is governed by the Apache 2.0 -// license that can be found in the LICENSE file. - -//go:build !appengine -// +build !appengine - -package internal - -import ( - "context" - "log" - "net/http" - "os" - "strings" -) - -// These functions are implementations of the wrapper functions -// in ../appengine/identity.go. See that file for commentary. - -const ( - hDefaultVersionHostname = "X-AppEngine-Default-Version-Hostname" - hRequestLogId = "X-AppEngine-Request-Log-Id" - hDatacenter = "X-AppEngine-Datacenter" -) - -func ctxHeaders(ctx context.Context) http.Header { - c := fromContext(ctx) - if c == nil { - return nil - } - return c.Request().Header -} - -func DefaultVersionHostname(ctx context.Context) string { - return ctxHeaders(ctx).Get(hDefaultVersionHostname) -} - -func RequestID(ctx context.Context) string { - return ctxHeaders(ctx).Get(hRequestLogId) -} - -func Datacenter(ctx context.Context) string { - if dc := ctxHeaders(ctx).Get(hDatacenter); dc != "" { - return dc - } - // If the header isn't set, read zone from the metadata service. - // It has the format projects/[NUMERIC_PROJECT_ID]/zones/[ZONE] - zone, err := getMetadata("instance/zone") - if err != nil { - log.Printf("Datacenter: %v", err) - return "" - } - parts := strings.Split(string(zone), "/") - if len(parts) == 0 { - return "" - } - return parts[len(parts)-1] -} - -func ServerSoftware() string { - // TODO(dsymonds): Remove fallback when we've verified this. - if s := os.Getenv("SERVER_SOFTWARE"); s != "" { - return s - } - if s := os.Getenv("GAE_ENV"); s != "" { - return s - } - return "Google App Engine/1.x.x" -} - -// TODO(dsymonds): Remove the metadata fetches. - -func ModuleName(_ context.Context) string { - if s := os.Getenv("GAE_MODULE_NAME"); s != "" { - return s - } - if s := os.Getenv("GAE_SERVICE"); s != "" { - return s - } - return string(mustGetMetadata("instance/attributes/gae_backend_name")) -} - -func VersionID(_ context.Context) string { - if s1, s2 := os.Getenv("GAE_MODULE_VERSION"), os.Getenv("GAE_MINOR_VERSION"); s1 != "" && s2 != "" { - return s1 + "." + s2 - } - if s1, s2 := os.Getenv("GAE_VERSION"), os.Getenv("GAE_DEPLOYMENT_ID"); s1 != "" && s2 != "" { - return s1 + "." + s2 - } - return string(mustGetMetadata("instance/attributes/gae_backend_version")) + "." + string(mustGetMetadata("instance/attributes/gae_backend_minor_version")) -} - -func InstanceID() string { - if s := os.Getenv("GAE_MODULE_INSTANCE"); s != "" { - return s - } - if s := os.Getenv("GAE_INSTANCE"); s != "" { - return s - } - return string(mustGetMetadata("instance/attributes/gae_backend_instance")) -} - -func partitionlessAppID() string { - // gae_project has everything except the partition prefix. - if appID := os.Getenv("GAE_LONG_APP_ID"); appID != "" { - return appID - } - if project := os.Getenv("GOOGLE_CLOUD_PROJECT"); project != "" { - return project - } - return string(mustGetMetadata("instance/attributes/gae_project")) -} - -func fullyQualifiedAppID(_ context.Context) string { - if s := os.Getenv("GAE_APPLICATION"); s != "" { - return s - } - appID := partitionlessAppID() - - part := os.Getenv("GAE_PARTITION") - if part == "" { - part = string(mustGetMetadata("instance/attributes/gae_partition")) - } - - if part != "" { - appID = part + "~" + appID - } - return appID -} - -func IsDevAppServer() bool { - return os.Getenv("RUN_WITH_DEVAPPSERVER") != "" || os.Getenv("GAE_ENV") == "localdev" -} diff --git a/vendor/google.golang.org/appengine/internal/internal.go b/vendor/google.golang.org/appengine/internal/internal.go deleted file mode 100644 index 051ea3980..000000000 --- a/vendor/google.golang.org/appengine/internal/internal.go +++ /dev/null @@ -1,110 +0,0 @@ -// Copyright 2011 Google Inc. All rights reserved. -// Use of this source code is governed by the Apache 2.0 -// license that can be found in the LICENSE file. - -// Package internal provides support for package appengine. -// -// Programs should not use this package directly. Its API is not stable. -// Use packages appengine and appengine/* instead. -package internal - -import ( - "fmt" - - "github.com/golang/protobuf/proto" - - remotepb "google.golang.org/appengine/internal/remote_api" -) - -// errorCodeMaps is a map of service name to the error code map for the service. -var errorCodeMaps = make(map[string]map[int32]string) - -// RegisterErrorCodeMap is called from API implementations to register their -// error code map. This should only be called from init functions. -func RegisterErrorCodeMap(service string, m map[int32]string) { - errorCodeMaps[service] = m -} - -type timeoutCodeKey struct { - service string - code int32 -} - -// timeoutCodes is the set of service+code pairs that represent timeouts. -var timeoutCodes = make(map[timeoutCodeKey]bool) - -func RegisterTimeoutErrorCode(service string, code int32) { - timeoutCodes[timeoutCodeKey{service, code}] = true -} - -// APIError is the type returned by appengine.Context's Call method -// when an API call fails in an API-specific way. This may be, for instance, -// a taskqueue API call failing with TaskQueueServiceError::UNKNOWN_QUEUE. -type APIError struct { - Service string - Detail string - Code int32 // API-specific error code -} - -func (e *APIError) Error() string { - if e.Code == 0 { - if e.Detail == "" { - return "APIError " - } - return e.Detail - } - s := fmt.Sprintf("API error %d", e.Code) - if m, ok := errorCodeMaps[e.Service]; ok { - s += " (" + e.Service + ": " + m[e.Code] + ")" - } else { - // Shouldn't happen, but provide a bit more detail if it does. - s = e.Service + " " + s - } - if e.Detail != "" { - s += ": " + e.Detail - } - return s -} - -func (e *APIError) IsTimeout() bool { - return timeoutCodes[timeoutCodeKey{e.Service, e.Code}] -} - -// CallError is the type returned by appengine.Context's Call method when an -// API call fails in a generic way, such as RpcError::CAPABILITY_DISABLED. -type CallError struct { - Detail string - Code int32 - // TODO: Remove this if we get a distinguishable error code. - Timeout bool -} - -func (e *CallError) Error() string { - var msg string - switch remotepb.RpcError_ErrorCode(e.Code) { - case remotepb.RpcError_UNKNOWN: - return e.Detail - case remotepb.RpcError_OVER_QUOTA: - msg = "Over quota" - case remotepb.RpcError_CAPABILITY_DISABLED: - msg = "Capability disabled" - case remotepb.RpcError_CANCELLED: - msg = "Canceled" - default: - msg = fmt.Sprintf("Call error %d", e.Code) - } - s := msg + ": " + e.Detail - if e.Timeout { - s += " (timeout)" - } - return s -} - -func (e *CallError) IsTimeout() bool { - return e.Timeout -} - -// NamespaceMods is a map from API service to a function that will mutate an RPC request to attach a namespace. -// The function should be prepared to be called on the same message more than once; it should only modify the -// RPC request the first time. -var NamespaceMods = make(map[string]func(m proto.Message, namespace string)) diff --git a/vendor/google.golang.org/appengine/internal/log/log_service.pb.go b/vendor/google.golang.org/appengine/internal/log/log_service.pb.go deleted file mode 100644 index 8545ac4ad..000000000 --- a/vendor/google.golang.org/appengine/internal/log/log_service.pb.go +++ /dev/null @@ -1,1313 +0,0 @@ -// Code generated by protoc-gen-go. DO NOT EDIT. -// source: google.golang.org/appengine/internal/log/log_service.proto - -package log - -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 LogServiceError_ErrorCode int32 - -const ( - LogServiceError_OK LogServiceError_ErrorCode = 0 - LogServiceError_INVALID_REQUEST LogServiceError_ErrorCode = 1 - LogServiceError_STORAGE_ERROR LogServiceError_ErrorCode = 2 -) - -var LogServiceError_ErrorCode_name = map[int32]string{ - 0: "OK", - 1: "INVALID_REQUEST", - 2: "STORAGE_ERROR", -} -var LogServiceError_ErrorCode_value = map[string]int32{ - "OK": 0, - "INVALID_REQUEST": 1, - "STORAGE_ERROR": 2, -} - -func (x LogServiceError_ErrorCode) Enum() *LogServiceError_ErrorCode { - p := new(LogServiceError_ErrorCode) - *p = x - return p -} -func (x LogServiceError_ErrorCode) String() string { - return proto.EnumName(LogServiceError_ErrorCode_name, int32(x)) -} -func (x *LogServiceError_ErrorCode) UnmarshalJSON(data []byte) error { - value, err := proto.UnmarshalJSONEnum(LogServiceError_ErrorCode_value, data, "LogServiceError_ErrorCode") - if err != nil { - return err - } - *x = LogServiceError_ErrorCode(value) - return nil -} -func (LogServiceError_ErrorCode) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_log_service_f054fd4b5012319d, []int{0, 0} -} - -type LogServiceError struct { - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *LogServiceError) Reset() { *m = LogServiceError{} } -func (m *LogServiceError) String() string { return proto.CompactTextString(m) } -func (*LogServiceError) ProtoMessage() {} -func (*LogServiceError) Descriptor() ([]byte, []int) { - return fileDescriptor_log_service_f054fd4b5012319d, []int{0} -} -func (m *LogServiceError) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_LogServiceError.Unmarshal(m, b) -} -func (m *LogServiceError) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_LogServiceError.Marshal(b, m, deterministic) -} -func (dst *LogServiceError) XXX_Merge(src proto.Message) { - xxx_messageInfo_LogServiceError.Merge(dst, src) -} -func (m *LogServiceError) XXX_Size() int { - return xxx_messageInfo_LogServiceError.Size(m) -} -func (m *LogServiceError) XXX_DiscardUnknown() { - xxx_messageInfo_LogServiceError.DiscardUnknown(m) -} - -var xxx_messageInfo_LogServiceError proto.InternalMessageInfo - -type UserAppLogLine struct { - TimestampUsec *int64 `protobuf:"varint,1,req,name=timestamp_usec,json=timestampUsec" json:"timestamp_usec,omitempty"` - Level *int64 `protobuf:"varint,2,req,name=level" json:"level,omitempty"` - Message *string `protobuf:"bytes,3,req,name=message" json:"message,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *UserAppLogLine) Reset() { *m = UserAppLogLine{} } -func (m *UserAppLogLine) String() string { return proto.CompactTextString(m) } -func (*UserAppLogLine) ProtoMessage() {} -func (*UserAppLogLine) Descriptor() ([]byte, []int) { - return fileDescriptor_log_service_f054fd4b5012319d, []int{1} -} -func (m *UserAppLogLine) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_UserAppLogLine.Unmarshal(m, b) -} -func (m *UserAppLogLine) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_UserAppLogLine.Marshal(b, m, deterministic) -} -func (dst *UserAppLogLine) XXX_Merge(src proto.Message) { - xxx_messageInfo_UserAppLogLine.Merge(dst, src) -} -func (m *UserAppLogLine) XXX_Size() int { - return xxx_messageInfo_UserAppLogLine.Size(m) -} -func (m *UserAppLogLine) XXX_DiscardUnknown() { - xxx_messageInfo_UserAppLogLine.DiscardUnknown(m) -} - -var xxx_messageInfo_UserAppLogLine proto.InternalMessageInfo - -func (m *UserAppLogLine) GetTimestampUsec() int64 { - if m != nil && m.TimestampUsec != nil { - return *m.TimestampUsec - } - return 0 -} - -func (m *UserAppLogLine) GetLevel() int64 { - if m != nil && m.Level != nil { - return *m.Level - } - return 0 -} - -func (m *UserAppLogLine) GetMessage() string { - if m != nil && m.Message != nil { - return *m.Message - } - return "" -} - -type UserAppLogGroup struct { - LogLine []*UserAppLogLine `protobuf:"bytes,2,rep,name=log_line,json=logLine" json:"log_line,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *UserAppLogGroup) Reset() { *m = UserAppLogGroup{} } -func (m *UserAppLogGroup) String() string { return proto.CompactTextString(m) } -func (*UserAppLogGroup) ProtoMessage() {} -func (*UserAppLogGroup) Descriptor() ([]byte, []int) { - return fileDescriptor_log_service_f054fd4b5012319d, []int{2} -} -func (m *UserAppLogGroup) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_UserAppLogGroup.Unmarshal(m, b) -} -func (m *UserAppLogGroup) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_UserAppLogGroup.Marshal(b, m, deterministic) -} -func (dst *UserAppLogGroup) XXX_Merge(src proto.Message) { - xxx_messageInfo_UserAppLogGroup.Merge(dst, src) -} -func (m *UserAppLogGroup) XXX_Size() int { - return xxx_messageInfo_UserAppLogGroup.Size(m) -} -func (m *UserAppLogGroup) XXX_DiscardUnknown() { - xxx_messageInfo_UserAppLogGroup.DiscardUnknown(m) -} - -var xxx_messageInfo_UserAppLogGroup proto.InternalMessageInfo - -func (m *UserAppLogGroup) GetLogLine() []*UserAppLogLine { - if m != nil { - return m.LogLine - } - return nil -} - -type FlushRequest struct { - Logs []byte `protobuf:"bytes,1,opt,name=logs" json:"logs,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *FlushRequest) Reset() { *m = FlushRequest{} } -func (m *FlushRequest) String() string { return proto.CompactTextString(m) } -func (*FlushRequest) ProtoMessage() {} -func (*FlushRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_log_service_f054fd4b5012319d, []int{3} -} -func (m *FlushRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_FlushRequest.Unmarshal(m, b) -} -func (m *FlushRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_FlushRequest.Marshal(b, m, deterministic) -} -func (dst *FlushRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_FlushRequest.Merge(dst, src) -} -func (m *FlushRequest) XXX_Size() int { - return xxx_messageInfo_FlushRequest.Size(m) -} -func (m *FlushRequest) XXX_DiscardUnknown() { - xxx_messageInfo_FlushRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_FlushRequest proto.InternalMessageInfo - -func (m *FlushRequest) GetLogs() []byte { - if m != nil { - return m.Logs - } - return nil -} - -type SetStatusRequest struct { - Status *string `protobuf:"bytes,1,req,name=status" json:"status,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *SetStatusRequest) Reset() { *m = SetStatusRequest{} } -func (m *SetStatusRequest) String() string { return proto.CompactTextString(m) } -func (*SetStatusRequest) ProtoMessage() {} -func (*SetStatusRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_log_service_f054fd4b5012319d, []int{4} -} -func (m *SetStatusRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_SetStatusRequest.Unmarshal(m, b) -} -func (m *SetStatusRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_SetStatusRequest.Marshal(b, m, deterministic) -} -func (dst *SetStatusRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_SetStatusRequest.Merge(dst, src) -} -func (m *SetStatusRequest) XXX_Size() int { - return xxx_messageInfo_SetStatusRequest.Size(m) -} -func (m *SetStatusRequest) XXX_DiscardUnknown() { - xxx_messageInfo_SetStatusRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_SetStatusRequest proto.InternalMessageInfo - -func (m *SetStatusRequest) GetStatus() string { - if m != nil && m.Status != nil { - return *m.Status - } - return "" -} - -type LogOffset struct { - RequestId []byte `protobuf:"bytes,1,opt,name=request_id,json=requestId" json:"request_id,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *LogOffset) Reset() { *m = LogOffset{} } -func (m *LogOffset) String() string { return proto.CompactTextString(m) } -func (*LogOffset) ProtoMessage() {} -func (*LogOffset) Descriptor() ([]byte, []int) { - return fileDescriptor_log_service_f054fd4b5012319d, []int{5} -} -func (m *LogOffset) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_LogOffset.Unmarshal(m, b) -} -func (m *LogOffset) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_LogOffset.Marshal(b, m, deterministic) -} -func (dst *LogOffset) XXX_Merge(src proto.Message) { - xxx_messageInfo_LogOffset.Merge(dst, src) -} -func (m *LogOffset) XXX_Size() int { - return xxx_messageInfo_LogOffset.Size(m) -} -func (m *LogOffset) XXX_DiscardUnknown() { - xxx_messageInfo_LogOffset.DiscardUnknown(m) -} - -var xxx_messageInfo_LogOffset proto.InternalMessageInfo - -func (m *LogOffset) GetRequestId() []byte { - if m != nil { - return m.RequestId - } - return nil -} - -type LogLine struct { - Time *int64 `protobuf:"varint,1,req,name=time" json:"time,omitempty"` - Level *int32 `protobuf:"varint,2,req,name=level" json:"level,omitempty"` - LogMessage *string `protobuf:"bytes,3,req,name=log_message,json=logMessage" json:"log_message,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *LogLine) Reset() { *m = LogLine{} } -func (m *LogLine) String() string { return proto.CompactTextString(m) } -func (*LogLine) ProtoMessage() {} -func (*LogLine) Descriptor() ([]byte, []int) { - return fileDescriptor_log_service_f054fd4b5012319d, []int{6} -} -func (m *LogLine) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_LogLine.Unmarshal(m, b) -} -func (m *LogLine) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_LogLine.Marshal(b, m, deterministic) -} -func (dst *LogLine) XXX_Merge(src proto.Message) { - xxx_messageInfo_LogLine.Merge(dst, src) -} -func (m *LogLine) XXX_Size() int { - return xxx_messageInfo_LogLine.Size(m) -} -func (m *LogLine) XXX_DiscardUnknown() { - xxx_messageInfo_LogLine.DiscardUnknown(m) -} - -var xxx_messageInfo_LogLine proto.InternalMessageInfo - -func (m *LogLine) GetTime() int64 { - if m != nil && m.Time != nil { - return *m.Time - } - return 0 -} - -func (m *LogLine) GetLevel() int32 { - if m != nil && m.Level != nil { - return *m.Level - } - return 0 -} - -func (m *LogLine) GetLogMessage() string { - if m != nil && m.LogMessage != nil { - return *m.LogMessage - } - return "" -} - -type RequestLog struct { - AppId *string `protobuf:"bytes,1,req,name=app_id,json=appId" json:"app_id,omitempty"` - ModuleId *string `protobuf:"bytes,37,opt,name=module_id,json=moduleId,def=default" json:"module_id,omitempty"` - VersionId *string `protobuf:"bytes,2,req,name=version_id,json=versionId" json:"version_id,omitempty"` - RequestId []byte `protobuf:"bytes,3,req,name=request_id,json=requestId" json:"request_id,omitempty"` - Offset *LogOffset `protobuf:"bytes,35,opt,name=offset" json:"offset,omitempty"` - Ip *string `protobuf:"bytes,4,req,name=ip" json:"ip,omitempty"` - Nickname *string `protobuf:"bytes,5,opt,name=nickname" json:"nickname,omitempty"` - StartTime *int64 `protobuf:"varint,6,req,name=start_time,json=startTime" json:"start_time,omitempty"` - EndTime *int64 `protobuf:"varint,7,req,name=end_time,json=endTime" json:"end_time,omitempty"` - Latency *int64 `protobuf:"varint,8,req,name=latency" json:"latency,omitempty"` - Mcycles *int64 `protobuf:"varint,9,req,name=mcycles" json:"mcycles,omitempty"` - Method *string `protobuf:"bytes,10,req,name=method" json:"method,omitempty"` - Resource *string `protobuf:"bytes,11,req,name=resource" json:"resource,omitempty"` - HttpVersion *string `protobuf:"bytes,12,req,name=http_version,json=httpVersion" json:"http_version,omitempty"` - Status *int32 `protobuf:"varint,13,req,name=status" json:"status,omitempty"` - ResponseSize *int64 `protobuf:"varint,14,req,name=response_size,json=responseSize" json:"response_size,omitempty"` - Referrer *string `protobuf:"bytes,15,opt,name=referrer" json:"referrer,omitempty"` - UserAgent *string `protobuf:"bytes,16,opt,name=user_agent,json=userAgent" json:"user_agent,omitempty"` - UrlMapEntry *string `protobuf:"bytes,17,req,name=url_map_entry,json=urlMapEntry" json:"url_map_entry,omitempty"` - Combined *string `protobuf:"bytes,18,req,name=combined" json:"combined,omitempty"` - ApiMcycles *int64 `protobuf:"varint,19,opt,name=api_mcycles,json=apiMcycles" json:"api_mcycles,omitempty"` - Host *string `protobuf:"bytes,20,opt,name=host" json:"host,omitempty"` - Cost *float64 `protobuf:"fixed64,21,opt,name=cost" json:"cost,omitempty"` - TaskQueueName *string `protobuf:"bytes,22,opt,name=task_queue_name,json=taskQueueName" json:"task_queue_name,omitempty"` - TaskName *string `protobuf:"bytes,23,opt,name=task_name,json=taskName" json:"task_name,omitempty"` - WasLoadingRequest *bool `protobuf:"varint,24,opt,name=was_loading_request,json=wasLoadingRequest" json:"was_loading_request,omitempty"` - PendingTime *int64 `protobuf:"varint,25,opt,name=pending_time,json=pendingTime" json:"pending_time,omitempty"` - ReplicaIndex *int32 `protobuf:"varint,26,opt,name=replica_index,json=replicaIndex,def=-1" json:"replica_index,omitempty"` - Finished *bool `protobuf:"varint,27,opt,name=finished,def=1" json:"finished,omitempty"` - CloneKey []byte `protobuf:"bytes,28,opt,name=clone_key,json=cloneKey" json:"clone_key,omitempty"` - Line []*LogLine `protobuf:"bytes,29,rep,name=line" json:"line,omitempty"` - LinesIncomplete *bool `protobuf:"varint,36,opt,name=lines_incomplete,json=linesIncomplete" json:"lines_incomplete,omitempty"` - AppEngineRelease []byte `protobuf:"bytes,38,opt,name=app_engine_release,json=appEngineRelease" json:"app_engine_release,omitempty"` - ExitReason *int32 `protobuf:"varint,30,opt,name=exit_reason,json=exitReason" json:"exit_reason,omitempty"` - WasThrottledForTime *bool `protobuf:"varint,31,opt,name=was_throttled_for_time,json=wasThrottledForTime" json:"was_throttled_for_time,omitempty"` - WasThrottledForRequests *bool `protobuf:"varint,32,opt,name=was_throttled_for_requests,json=wasThrottledForRequests" json:"was_throttled_for_requests,omitempty"` - ThrottledTime *int64 `protobuf:"varint,33,opt,name=throttled_time,json=throttledTime" json:"throttled_time,omitempty"` - ServerName []byte `protobuf:"bytes,34,opt,name=server_name,json=serverName" json:"server_name,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *RequestLog) Reset() { *m = RequestLog{} } -func (m *RequestLog) String() string { return proto.CompactTextString(m) } -func (*RequestLog) ProtoMessage() {} -func (*RequestLog) Descriptor() ([]byte, []int) { - return fileDescriptor_log_service_f054fd4b5012319d, []int{7} -} -func (m *RequestLog) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_RequestLog.Unmarshal(m, b) -} -func (m *RequestLog) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_RequestLog.Marshal(b, m, deterministic) -} -func (dst *RequestLog) XXX_Merge(src proto.Message) { - xxx_messageInfo_RequestLog.Merge(dst, src) -} -func (m *RequestLog) XXX_Size() int { - return xxx_messageInfo_RequestLog.Size(m) -} -func (m *RequestLog) XXX_DiscardUnknown() { - xxx_messageInfo_RequestLog.DiscardUnknown(m) -} - -var xxx_messageInfo_RequestLog proto.InternalMessageInfo - -const Default_RequestLog_ModuleId string = "default" -const Default_RequestLog_ReplicaIndex int32 = -1 -const Default_RequestLog_Finished bool = true - -func (m *RequestLog) GetAppId() string { - if m != nil && m.AppId != nil { - return *m.AppId - } - return "" -} - -func (m *RequestLog) GetModuleId() string { - if m != nil && m.ModuleId != nil { - return *m.ModuleId - } - return Default_RequestLog_ModuleId -} - -func (m *RequestLog) GetVersionId() string { - if m != nil && m.VersionId != nil { - return *m.VersionId - } - return "" -} - -func (m *RequestLog) GetRequestId() []byte { - if m != nil { - return m.RequestId - } - return nil -} - -func (m *RequestLog) GetOffset() *LogOffset { - if m != nil { - return m.Offset - } - return nil -} - -func (m *RequestLog) GetIp() string { - if m != nil && m.Ip != nil { - return *m.Ip - } - return "" -} - -func (m *RequestLog) GetNickname() string { - if m != nil && m.Nickname != nil { - return *m.Nickname - } - return "" -} - -func (m *RequestLog) GetStartTime() int64 { - if m != nil && m.StartTime != nil { - return *m.StartTime - } - return 0 -} - -func (m *RequestLog) GetEndTime() int64 { - if m != nil && m.EndTime != nil { - return *m.EndTime - } - return 0 -} - -func (m *RequestLog) GetLatency() int64 { - if m != nil && m.Latency != nil { - return *m.Latency - } - return 0 -} - -func (m *RequestLog) GetMcycles() int64 { - if m != nil && m.Mcycles != nil { - return *m.Mcycles - } - return 0 -} - -func (m *RequestLog) GetMethod() string { - if m != nil && m.Method != nil { - return *m.Method - } - return "" -} - -func (m *RequestLog) GetResource() string { - if m != nil && m.Resource != nil { - return *m.Resource - } - return "" -} - -func (m *RequestLog) GetHttpVersion() string { - if m != nil && m.HttpVersion != nil { - return *m.HttpVersion - } - return "" -} - -func (m *RequestLog) GetStatus() int32 { - if m != nil && m.Status != nil { - return *m.Status - } - return 0 -} - -func (m *RequestLog) GetResponseSize() int64 { - if m != nil && m.ResponseSize != nil { - return *m.ResponseSize - } - return 0 -} - -func (m *RequestLog) GetReferrer() string { - if m != nil && m.Referrer != nil { - return *m.Referrer - } - return "" -} - -func (m *RequestLog) GetUserAgent() string { - if m != nil && m.UserAgent != nil { - return *m.UserAgent - } - return "" -} - -func (m *RequestLog) GetUrlMapEntry() string { - if m != nil && m.UrlMapEntry != nil { - return *m.UrlMapEntry - } - return "" -} - -func (m *RequestLog) GetCombined() string { - if m != nil && m.Combined != nil { - return *m.Combined - } - return "" -} - -func (m *RequestLog) GetApiMcycles() int64 { - if m != nil && m.ApiMcycles != nil { - return *m.ApiMcycles - } - return 0 -} - -func (m *RequestLog) GetHost() string { - if m != nil && m.Host != nil { - return *m.Host - } - return "" -} - -func (m *RequestLog) GetCost() float64 { - if m != nil && m.Cost != nil { - return *m.Cost - } - return 0 -} - -func (m *RequestLog) GetTaskQueueName() string { - if m != nil && m.TaskQueueName != nil { - return *m.TaskQueueName - } - return "" -} - -func (m *RequestLog) GetTaskName() string { - if m != nil && m.TaskName != nil { - return *m.TaskName - } - return "" -} - -func (m *RequestLog) GetWasLoadingRequest() bool { - if m != nil && m.WasLoadingRequest != nil { - return *m.WasLoadingRequest - } - return false -} - -func (m *RequestLog) GetPendingTime() int64 { - if m != nil && m.PendingTime != nil { - return *m.PendingTime - } - return 0 -} - -func (m *RequestLog) GetReplicaIndex() int32 { - if m != nil && m.ReplicaIndex != nil { - return *m.ReplicaIndex - } - return Default_RequestLog_ReplicaIndex -} - -func (m *RequestLog) GetFinished() bool { - if m != nil && m.Finished != nil { - return *m.Finished - } - return Default_RequestLog_Finished -} - -func (m *RequestLog) GetCloneKey() []byte { - if m != nil { - return m.CloneKey - } - return nil -} - -func (m *RequestLog) GetLine() []*LogLine { - if m != nil { - return m.Line - } - return nil -} - -func (m *RequestLog) GetLinesIncomplete() bool { - if m != nil && m.LinesIncomplete != nil { - return *m.LinesIncomplete - } - return false -} - -func (m *RequestLog) GetAppEngineRelease() []byte { - if m != nil { - return m.AppEngineRelease - } - return nil -} - -func (m *RequestLog) GetExitReason() int32 { - if m != nil && m.ExitReason != nil { - return *m.ExitReason - } - return 0 -} - -func (m *RequestLog) GetWasThrottledForTime() bool { - if m != nil && m.WasThrottledForTime != nil { - return *m.WasThrottledForTime - } - return false -} - -func (m *RequestLog) GetWasThrottledForRequests() bool { - if m != nil && m.WasThrottledForRequests != nil { - return *m.WasThrottledForRequests - } - return false -} - -func (m *RequestLog) GetThrottledTime() int64 { - if m != nil && m.ThrottledTime != nil { - return *m.ThrottledTime - } - return 0 -} - -func (m *RequestLog) GetServerName() []byte { - if m != nil { - return m.ServerName - } - return nil -} - -type LogModuleVersion struct { - ModuleId *string `protobuf:"bytes,1,opt,name=module_id,json=moduleId,def=default" json:"module_id,omitempty"` - VersionId *string `protobuf:"bytes,2,opt,name=version_id,json=versionId" json:"version_id,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *LogModuleVersion) Reset() { *m = LogModuleVersion{} } -func (m *LogModuleVersion) String() string { return proto.CompactTextString(m) } -func (*LogModuleVersion) ProtoMessage() {} -func (*LogModuleVersion) Descriptor() ([]byte, []int) { - return fileDescriptor_log_service_f054fd4b5012319d, []int{8} -} -func (m *LogModuleVersion) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_LogModuleVersion.Unmarshal(m, b) -} -func (m *LogModuleVersion) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_LogModuleVersion.Marshal(b, m, deterministic) -} -func (dst *LogModuleVersion) XXX_Merge(src proto.Message) { - xxx_messageInfo_LogModuleVersion.Merge(dst, src) -} -func (m *LogModuleVersion) XXX_Size() int { - return xxx_messageInfo_LogModuleVersion.Size(m) -} -func (m *LogModuleVersion) XXX_DiscardUnknown() { - xxx_messageInfo_LogModuleVersion.DiscardUnknown(m) -} - -var xxx_messageInfo_LogModuleVersion proto.InternalMessageInfo - -const Default_LogModuleVersion_ModuleId string = "default" - -func (m *LogModuleVersion) GetModuleId() string { - if m != nil && m.ModuleId != nil { - return *m.ModuleId - } - return Default_LogModuleVersion_ModuleId -} - -func (m *LogModuleVersion) GetVersionId() string { - if m != nil && m.VersionId != nil { - return *m.VersionId - } - return "" -} - -type LogReadRequest struct { - AppId *string `protobuf:"bytes,1,req,name=app_id,json=appId" json:"app_id,omitempty"` - VersionId []string `protobuf:"bytes,2,rep,name=version_id,json=versionId" json:"version_id,omitempty"` - ModuleVersion []*LogModuleVersion `protobuf:"bytes,19,rep,name=module_version,json=moduleVersion" json:"module_version,omitempty"` - StartTime *int64 `protobuf:"varint,3,opt,name=start_time,json=startTime" json:"start_time,omitempty"` - EndTime *int64 `protobuf:"varint,4,opt,name=end_time,json=endTime" json:"end_time,omitempty"` - Offset *LogOffset `protobuf:"bytes,5,opt,name=offset" json:"offset,omitempty"` - RequestId [][]byte `protobuf:"bytes,6,rep,name=request_id,json=requestId" json:"request_id,omitempty"` - MinimumLogLevel *int32 `protobuf:"varint,7,opt,name=minimum_log_level,json=minimumLogLevel" json:"minimum_log_level,omitempty"` - IncludeIncomplete *bool `protobuf:"varint,8,opt,name=include_incomplete,json=includeIncomplete" json:"include_incomplete,omitempty"` - Count *int64 `protobuf:"varint,9,opt,name=count" json:"count,omitempty"` - CombinedLogRegex *string `protobuf:"bytes,14,opt,name=combined_log_regex,json=combinedLogRegex" json:"combined_log_regex,omitempty"` - HostRegex *string `protobuf:"bytes,15,opt,name=host_regex,json=hostRegex" json:"host_regex,omitempty"` - ReplicaIndex *int32 `protobuf:"varint,16,opt,name=replica_index,json=replicaIndex" json:"replica_index,omitempty"` - IncludeAppLogs *bool `protobuf:"varint,10,opt,name=include_app_logs,json=includeAppLogs" json:"include_app_logs,omitempty"` - AppLogsPerRequest *int32 `protobuf:"varint,17,opt,name=app_logs_per_request,json=appLogsPerRequest" json:"app_logs_per_request,omitempty"` - IncludeHost *bool `protobuf:"varint,11,opt,name=include_host,json=includeHost" json:"include_host,omitempty"` - IncludeAll *bool `protobuf:"varint,12,opt,name=include_all,json=includeAll" json:"include_all,omitempty"` - CacheIterator *bool `protobuf:"varint,13,opt,name=cache_iterator,json=cacheIterator" json:"cache_iterator,omitempty"` - NumShards *int32 `protobuf:"varint,18,opt,name=num_shards,json=numShards" json:"num_shards,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *LogReadRequest) Reset() { *m = LogReadRequest{} } -func (m *LogReadRequest) String() string { return proto.CompactTextString(m) } -func (*LogReadRequest) ProtoMessage() {} -func (*LogReadRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_log_service_f054fd4b5012319d, []int{9} -} -func (m *LogReadRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_LogReadRequest.Unmarshal(m, b) -} -func (m *LogReadRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_LogReadRequest.Marshal(b, m, deterministic) -} -func (dst *LogReadRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_LogReadRequest.Merge(dst, src) -} -func (m *LogReadRequest) XXX_Size() int { - return xxx_messageInfo_LogReadRequest.Size(m) -} -func (m *LogReadRequest) XXX_DiscardUnknown() { - xxx_messageInfo_LogReadRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_LogReadRequest proto.InternalMessageInfo - -func (m *LogReadRequest) GetAppId() string { - if m != nil && m.AppId != nil { - return *m.AppId - } - return "" -} - -func (m *LogReadRequest) GetVersionId() []string { - if m != nil { - return m.VersionId - } - return nil -} - -func (m *LogReadRequest) GetModuleVersion() []*LogModuleVersion { - if m != nil { - return m.ModuleVersion - } - return nil -} - -func (m *LogReadRequest) GetStartTime() int64 { - if m != nil && m.StartTime != nil { - return *m.StartTime - } - return 0 -} - -func (m *LogReadRequest) GetEndTime() int64 { - if m != nil && m.EndTime != nil { - return *m.EndTime - } - return 0 -} - -func (m *LogReadRequest) GetOffset() *LogOffset { - if m != nil { - return m.Offset - } - return nil -} - -func (m *LogReadRequest) GetRequestId() [][]byte { - if m != nil { - return m.RequestId - } - return nil -} - -func (m *LogReadRequest) GetMinimumLogLevel() int32 { - if m != nil && m.MinimumLogLevel != nil { - return *m.MinimumLogLevel - } - return 0 -} - -func (m *LogReadRequest) GetIncludeIncomplete() bool { - if m != nil && m.IncludeIncomplete != nil { - return *m.IncludeIncomplete - } - return false -} - -func (m *LogReadRequest) GetCount() int64 { - if m != nil && m.Count != nil { - return *m.Count - } - return 0 -} - -func (m *LogReadRequest) GetCombinedLogRegex() string { - if m != nil && m.CombinedLogRegex != nil { - return *m.CombinedLogRegex - } - return "" -} - -func (m *LogReadRequest) GetHostRegex() string { - if m != nil && m.HostRegex != nil { - return *m.HostRegex - } - return "" -} - -func (m *LogReadRequest) GetReplicaIndex() int32 { - if m != nil && m.ReplicaIndex != nil { - return *m.ReplicaIndex - } - return 0 -} - -func (m *LogReadRequest) GetIncludeAppLogs() bool { - if m != nil && m.IncludeAppLogs != nil { - return *m.IncludeAppLogs - } - return false -} - -func (m *LogReadRequest) GetAppLogsPerRequest() int32 { - if m != nil && m.AppLogsPerRequest != nil { - return *m.AppLogsPerRequest - } - return 0 -} - -func (m *LogReadRequest) GetIncludeHost() bool { - if m != nil && m.IncludeHost != nil { - return *m.IncludeHost - } - return false -} - -func (m *LogReadRequest) GetIncludeAll() bool { - if m != nil && m.IncludeAll != nil { - return *m.IncludeAll - } - return false -} - -func (m *LogReadRequest) GetCacheIterator() bool { - if m != nil && m.CacheIterator != nil { - return *m.CacheIterator - } - return false -} - -func (m *LogReadRequest) GetNumShards() int32 { - if m != nil && m.NumShards != nil { - return *m.NumShards - } - return 0 -} - -type LogReadResponse struct { - Log []*RequestLog `protobuf:"bytes,1,rep,name=log" json:"log,omitempty"` - Offset *LogOffset `protobuf:"bytes,2,opt,name=offset" json:"offset,omitempty"` - LastEndTime *int64 `protobuf:"varint,3,opt,name=last_end_time,json=lastEndTime" json:"last_end_time,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *LogReadResponse) Reset() { *m = LogReadResponse{} } -func (m *LogReadResponse) String() string { return proto.CompactTextString(m) } -func (*LogReadResponse) ProtoMessage() {} -func (*LogReadResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_log_service_f054fd4b5012319d, []int{10} -} -func (m *LogReadResponse) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_LogReadResponse.Unmarshal(m, b) -} -func (m *LogReadResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_LogReadResponse.Marshal(b, m, deterministic) -} -func (dst *LogReadResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_LogReadResponse.Merge(dst, src) -} -func (m *LogReadResponse) XXX_Size() int { - return xxx_messageInfo_LogReadResponse.Size(m) -} -func (m *LogReadResponse) XXX_DiscardUnknown() { - xxx_messageInfo_LogReadResponse.DiscardUnknown(m) -} - -var xxx_messageInfo_LogReadResponse proto.InternalMessageInfo - -func (m *LogReadResponse) GetLog() []*RequestLog { - if m != nil { - return m.Log - } - return nil -} - -func (m *LogReadResponse) GetOffset() *LogOffset { - if m != nil { - return m.Offset - } - return nil -} - -func (m *LogReadResponse) GetLastEndTime() int64 { - if m != nil && m.LastEndTime != nil { - return *m.LastEndTime - } - return 0 -} - -type LogUsageRecord struct { - VersionId *string `protobuf:"bytes,1,opt,name=version_id,json=versionId" json:"version_id,omitempty"` - StartTime *int32 `protobuf:"varint,2,opt,name=start_time,json=startTime" json:"start_time,omitempty"` - EndTime *int32 `protobuf:"varint,3,opt,name=end_time,json=endTime" json:"end_time,omitempty"` - Count *int64 `protobuf:"varint,4,opt,name=count" json:"count,omitempty"` - TotalSize *int64 `protobuf:"varint,5,opt,name=total_size,json=totalSize" json:"total_size,omitempty"` - Records *int32 `protobuf:"varint,6,opt,name=records" json:"records,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *LogUsageRecord) Reset() { *m = LogUsageRecord{} } -func (m *LogUsageRecord) String() string { return proto.CompactTextString(m) } -func (*LogUsageRecord) ProtoMessage() {} -func (*LogUsageRecord) Descriptor() ([]byte, []int) { - return fileDescriptor_log_service_f054fd4b5012319d, []int{11} -} -func (m *LogUsageRecord) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_LogUsageRecord.Unmarshal(m, b) -} -func (m *LogUsageRecord) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_LogUsageRecord.Marshal(b, m, deterministic) -} -func (dst *LogUsageRecord) XXX_Merge(src proto.Message) { - xxx_messageInfo_LogUsageRecord.Merge(dst, src) -} -func (m *LogUsageRecord) XXX_Size() int { - return xxx_messageInfo_LogUsageRecord.Size(m) -} -func (m *LogUsageRecord) XXX_DiscardUnknown() { - xxx_messageInfo_LogUsageRecord.DiscardUnknown(m) -} - -var xxx_messageInfo_LogUsageRecord proto.InternalMessageInfo - -func (m *LogUsageRecord) GetVersionId() string { - if m != nil && m.VersionId != nil { - return *m.VersionId - } - return "" -} - -func (m *LogUsageRecord) GetStartTime() int32 { - if m != nil && m.StartTime != nil { - return *m.StartTime - } - return 0 -} - -func (m *LogUsageRecord) GetEndTime() int32 { - if m != nil && m.EndTime != nil { - return *m.EndTime - } - return 0 -} - -func (m *LogUsageRecord) GetCount() int64 { - if m != nil && m.Count != nil { - return *m.Count - } - return 0 -} - -func (m *LogUsageRecord) GetTotalSize() int64 { - if m != nil && m.TotalSize != nil { - return *m.TotalSize - } - return 0 -} - -func (m *LogUsageRecord) GetRecords() int32 { - if m != nil && m.Records != nil { - return *m.Records - } - return 0 -} - -type LogUsageRequest struct { - AppId *string `protobuf:"bytes,1,req,name=app_id,json=appId" json:"app_id,omitempty"` - VersionId []string `protobuf:"bytes,2,rep,name=version_id,json=versionId" json:"version_id,omitempty"` - StartTime *int32 `protobuf:"varint,3,opt,name=start_time,json=startTime" json:"start_time,omitempty"` - EndTime *int32 `protobuf:"varint,4,opt,name=end_time,json=endTime" json:"end_time,omitempty"` - ResolutionHours *uint32 `protobuf:"varint,5,opt,name=resolution_hours,json=resolutionHours,def=1" json:"resolution_hours,omitempty"` - CombineVersions *bool `protobuf:"varint,6,opt,name=combine_versions,json=combineVersions" json:"combine_versions,omitempty"` - UsageVersion *int32 `protobuf:"varint,7,opt,name=usage_version,json=usageVersion" json:"usage_version,omitempty"` - VersionsOnly *bool `protobuf:"varint,8,opt,name=versions_only,json=versionsOnly" json:"versions_only,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *LogUsageRequest) Reset() { *m = LogUsageRequest{} } -func (m *LogUsageRequest) String() string { return proto.CompactTextString(m) } -func (*LogUsageRequest) ProtoMessage() {} -func (*LogUsageRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_log_service_f054fd4b5012319d, []int{12} -} -func (m *LogUsageRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_LogUsageRequest.Unmarshal(m, b) -} -func (m *LogUsageRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_LogUsageRequest.Marshal(b, m, deterministic) -} -func (dst *LogUsageRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_LogUsageRequest.Merge(dst, src) -} -func (m *LogUsageRequest) XXX_Size() int { - return xxx_messageInfo_LogUsageRequest.Size(m) -} -func (m *LogUsageRequest) XXX_DiscardUnknown() { - xxx_messageInfo_LogUsageRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_LogUsageRequest proto.InternalMessageInfo - -const Default_LogUsageRequest_ResolutionHours uint32 = 1 - -func (m *LogUsageRequest) GetAppId() string { - if m != nil && m.AppId != nil { - return *m.AppId - } - return "" -} - -func (m *LogUsageRequest) GetVersionId() []string { - if m != nil { - return m.VersionId - } - return nil -} - -func (m *LogUsageRequest) GetStartTime() int32 { - if m != nil && m.StartTime != nil { - return *m.StartTime - } - return 0 -} - -func (m *LogUsageRequest) GetEndTime() int32 { - if m != nil && m.EndTime != nil { - return *m.EndTime - } - return 0 -} - -func (m *LogUsageRequest) GetResolutionHours() uint32 { - if m != nil && m.ResolutionHours != nil { - return *m.ResolutionHours - } - return Default_LogUsageRequest_ResolutionHours -} - -func (m *LogUsageRequest) GetCombineVersions() bool { - if m != nil && m.CombineVersions != nil { - return *m.CombineVersions - } - return false -} - -func (m *LogUsageRequest) GetUsageVersion() int32 { - if m != nil && m.UsageVersion != nil { - return *m.UsageVersion - } - return 0 -} - -func (m *LogUsageRequest) GetVersionsOnly() bool { - if m != nil && m.VersionsOnly != nil { - return *m.VersionsOnly - } - return false -} - -type LogUsageResponse struct { - Usage []*LogUsageRecord `protobuf:"bytes,1,rep,name=usage" json:"usage,omitempty"` - Summary *LogUsageRecord `protobuf:"bytes,2,opt,name=summary" json:"summary,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *LogUsageResponse) Reset() { *m = LogUsageResponse{} } -func (m *LogUsageResponse) String() string { return proto.CompactTextString(m) } -func (*LogUsageResponse) ProtoMessage() {} -func (*LogUsageResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_log_service_f054fd4b5012319d, []int{13} -} -func (m *LogUsageResponse) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_LogUsageResponse.Unmarshal(m, b) -} -func (m *LogUsageResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_LogUsageResponse.Marshal(b, m, deterministic) -} -func (dst *LogUsageResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_LogUsageResponse.Merge(dst, src) -} -func (m *LogUsageResponse) XXX_Size() int { - return xxx_messageInfo_LogUsageResponse.Size(m) -} -func (m *LogUsageResponse) XXX_DiscardUnknown() { - xxx_messageInfo_LogUsageResponse.DiscardUnknown(m) -} - -var xxx_messageInfo_LogUsageResponse proto.InternalMessageInfo - -func (m *LogUsageResponse) GetUsage() []*LogUsageRecord { - if m != nil { - return m.Usage - } - return nil -} - -func (m *LogUsageResponse) GetSummary() *LogUsageRecord { - if m != nil { - return m.Summary - } - return nil -} - -func init() { - proto.RegisterType((*LogServiceError)(nil), "appengine.LogServiceError") - proto.RegisterType((*UserAppLogLine)(nil), "appengine.UserAppLogLine") - proto.RegisterType((*UserAppLogGroup)(nil), "appengine.UserAppLogGroup") - proto.RegisterType((*FlushRequest)(nil), "appengine.FlushRequest") - proto.RegisterType((*SetStatusRequest)(nil), "appengine.SetStatusRequest") - proto.RegisterType((*LogOffset)(nil), "appengine.LogOffset") - proto.RegisterType((*LogLine)(nil), "appengine.LogLine") - proto.RegisterType((*RequestLog)(nil), "appengine.RequestLog") - proto.RegisterType((*LogModuleVersion)(nil), "appengine.LogModuleVersion") - proto.RegisterType((*LogReadRequest)(nil), "appengine.LogReadRequest") - proto.RegisterType((*LogReadResponse)(nil), "appengine.LogReadResponse") - proto.RegisterType((*LogUsageRecord)(nil), "appengine.LogUsageRecord") - proto.RegisterType((*LogUsageRequest)(nil), "appengine.LogUsageRequest") - proto.RegisterType((*LogUsageResponse)(nil), "appengine.LogUsageResponse") -} - -func init() { - proto.RegisterFile("google.golang.org/appengine/internal/log/log_service.proto", fileDescriptor_log_service_f054fd4b5012319d) -} - -var fileDescriptor_log_service_f054fd4b5012319d = []byte{ - // 1553 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x56, 0xdd, 0x72, 0xdb, 0xc6, - 0x15, 0x2e, 0x48, 0x51, 0x24, 0x0f, 0x49, 0x91, 0x5a, 0xcb, 0xce, 0xda, 0xae, 0x6b, 0x1a, 0x4e, - 0x1c, 0xd6, 0x93, 0x48, 0x93, 0xa4, 0x57, 0xca, 0x95, 0xd3, 0x2a, 0x8e, 0x26, 0xb4, 0xd5, 0x40, - 0x72, 0x3a, 0xd3, 0x1b, 0x0c, 0x0a, 0x1c, 0x81, 0x18, 0x2f, 0xb1, 0xc8, 0xee, 0xc2, 0x91, 0x72, - 0xdb, 0xdb, 0x3e, 0x46, 0x1f, 0xa2, 0xaf, 0xd2, 0xb7, 0xe9, 0xec, 0xd9, 0x05, 0x44, 0x2a, 0x4d, - 0xc6, 0x33, 0xb9, 0xe0, 0x10, 0xfb, 0x9d, 0x83, 0xdd, 0xf3, 0xf3, 0x9d, 0x6f, 0x01, 0xc7, 0xb9, - 0x94, 0xb9, 0xc0, 0xc3, 0x5c, 0x8a, 0xa4, 0xcc, 0x0f, 0xa5, 0xca, 0x8f, 0x92, 0xaa, 0xc2, 0x32, - 0x2f, 0x4a, 0x3c, 0x2a, 0x4a, 0x83, 0xaa, 0x4c, 0xc4, 0x91, 0x90, 0xb9, 0xfd, 0xc5, 0x1a, 0xd5, - 0xbb, 0x22, 0xc5, 0xc3, 0x4a, 0x49, 0x23, 0xd9, 0xb0, 0xf5, 0x0c, 0x5f, 0xc3, 0x74, 0x29, 0xf3, - 0x73, 0x67, 0x3e, 0x51, 0x4a, 0xaa, 0xf0, 0x4b, 0x18, 0xd2, 0xc3, 0x9f, 0x65, 0x86, 0x6c, 0x17, - 0x3a, 0x67, 0xdf, 0xce, 0x7e, 0xc7, 0xee, 0xc0, 0xf4, 0xf4, 0xf5, 0xf7, 0x2f, 0x96, 0xa7, 0x7f, - 0x89, 0xa3, 0x93, 0xef, 0xde, 0x9c, 0x9c, 0x5f, 0xcc, 0x02, 0xb6, 0x0f, 0x93, 0xf3, 0x8b, 0xb3, - 0xe8, 0xc5, 0xcb, 0x93, 0xf8, 0x24, 0x8a, 0xce, 0xa2, 0x59, 0x27, 0xcc, 0x61, 0xef, 0x8d, 0x46, - 0xf5, 0xa2, 0xaa, 0x96, 0x32, 0x5f, 0x16, 0x25, 0xb2, 0x8f, 0x60, 0xcf, 0x14, 0x6b, 0xd4, 0x26, - 0x59, 0x57, 0x71, 0xad, 0x31, 0xe5, 0xc1, 0xbc, 0xb3, 0xe8, 0x46, 0x93, 0x16, 0x7d, 0xa3, 0x31, - 0x65, 0x07, 0xd0, 0x13, 0xf8, 0x0e, 0x05, 0xef, 0x90, 0xd5, 0x2d, 0x18, 0x87, 0xfe, 0x1a, 0xb5, - 0x4e, 0x72, 0xe4, 0xdd, 0x79, 0x67, 0x31, 0x8c, 0x9a, 0x65, 0xf8, 0x12, 0xa6, 0x37, 0x07, 0xbd, - 0x54, 0xb2, 0xae, 0xd8, 0x9f, 0x60, 0x60, 0x73, 0x15, 0x45, 0x89, 0xbc, 0x33, 0xef, 0x2e, 0x46, - 0x9f, 0xdf, 0x3f, 0x6c, 0x33, 0x3d, 0xdc, 0x0e, 0x2b, 0xea, 0x0b, 0xf7, 0x10, 0x86, 0x30, 0xfe, - 0x5a, 0xd4, 0x7a, 0x15, 0xe1, 0x0f, 0x35, 0x6a, 0xc3, 0x18, 0xec, 0x08, 0x99, 0x6b, 0x1e, 0xcc, - 0x83, 0xc5, 0x38, 0xa2, 0xe7, 0xf0, 0x39, 0xcc, 0xce, 0xd1, 0x9c, 0x9b, 0xc4, 0xd4, 0xba, 0xf1, - 0xbb, 0x07, 0xbb, 0x9a, 0x00, 0xca, 0x67, 0x18, 0xf9, 0x55, 0xf8, 0x1c, 0x86, 0x4b, 0x99, 0x9f, - 0x5d, 0x5e, 0x6a, 0x34, 0xec, 0x11, 0x80, 0x72, 0xfe, 0x71, 0x91, 0xf9, 0x2d, 0x87, 0x1e, 0x39, - 0xcd, 0xc2, 0x0b, 0xe8, 0x37, 0x65, 0x62, 0xb0, 0x63, 0x0b, 0xe2, 0x8b, 0x43, 0xcf, 0xdb, 0x35, - 0xe9, 0x35, 0x35, 0x79, 0x0c, 0x23, 0x9b, 0xe6, 0x76, 0x5d, 0x40, 0xc8, 0xfc, 0x95, 0x2f, 0xcd, - 0x3f, 0x01, 0xc0, 0x47, 0xb9, 0x94, 0x39, 0xbb, 0x0b, 0xbb, 0x49, 0x55, 0xb9, 0xf3, 0xad, 0x6b, - 0x2f, 0xa9, 0xaa, 0xd3, 0x8c, 0x7d, 0x08, 0xc3, 0xb5, 0xcc, 0x6a, 0x81, 0xd6, 0xf2, 0xd1, 0x3c, - 0x58, 0x0c, 0x8f, 0xfb, 0x19, 0x5e, 0x26, 0xb5, 0x30, 0xd1, 0xc0, 0x59, 0x4e, 0x33, 0x9b, 0xc0, - 0x3b, 0x54, 0xba, 0x90, 0xa5, 0x75, 0xeb, 0xd0, 0x06, 0x43, 0x8f, 0x38, 0xf3, 0x46, 0x7e, 0x36, - 0x94, 0xcd, 0xfc, 0xd8, 0x27, 0xb0, 0x2b, 0xa9, 0x10, 0xfc, 0xe9, 0x3c, 0x58, 0x8c, 0x3e, 0x3f, - 0xd8, 0xe8, 0x47, 0x5b, 0xa4, 0xc8, 0xfb, 0xb0, 0x3d, 0xe8, 0x14, 0x15, 0xdf, 0xa1, 0x33, 0x3a, - 0x45, 0xc5, 0x1e, 0xc0, 0xa0, 0x2c, 0xd2, 0xb7, 0x65, 0xb2, 0x46, 0xde, 0xb3, 0x01, 0x46, 0xed, - 0xda, 0x1e, 0xac, 0x4d, 0xa2, 0x4c, 0x4c, 0x45, 0xdb, 0xa5, 0xa2, 0x0d, 0x09, 0xb9, 0xb0, 0x95, - 0xbb, 0x0f, 0x03, 0x2c, 0x33, 0x67, 0xec, 0x93, 0xb1, 0x8f, 0x65, 0x46, 0x26, 0x0e, 0x7d, 0x91, - 0x18, 0x2c, 0xd3, 0x6b, 0x3e, 0x70, 0x16, 0xbf, 0x24, 0xb2, 0xa5, 0xd7, 0xa9, 0x40, 0xcd, 0x87, - 0xce, 0xe2, 0x97, 0xb6, 0xd7, 0x6b, 0x34, 0x2b, 0x99, 0x71, 0x70, 0xbd, 0x76, 0x2b, 0x1b, 0xa1, - 0x42, 0x2d, 0x6b, 0x95, 0x22, 0x1f, 0x91, 0xa5, 0x5d, 0xb3, 0x27, 0x30, 0x5e, 0x19, 0x53, 0xc5, - 0xbe, 0x58, 0x7c, 0x4c, 0xf6, 0x91, 0xc5, 0xbe, 0x77, 0xd0, 0x06, 0x85, 0x26, 0xd4, 0x60, 0xbf, - 0x62, 0x4f, 0x61, 0xa2, 0x50, 0x57, 0xb2, 0xd4, 0x18, 0xeb, 0xe2, 0x27, 0xe4, 0x7b, 0x14, 0xce, - 0xb8, 0x01, 0xcf, 0x8b, 0x9f, 0xd0, 0x9d, 0x7d, 0x89, 0x4a, 0xa1, 0xe2, 0x53, 0x57, 0x9d, 0x66, - 0x6d, 0xab, 0x53, 0x6b, 0x54, 0x71, 0x92, 0x63, 0x69, 0xf8, 0x8c, 0xac, 0x43, 0x8b, 0xbc, 0xb0, - 0x00, 0x0b, 0x61, 0x52, 0x2b, 0x11, 0xaf, 0x93, 0x2a, 0xc6, 0xd2, 0xa8, 0x6b, 0xbe, 0xef, 0x62, - 0xab, 0x95, 0x78, 0x95, 0x54, 0x27, 0x16, 0xb2, 0xdb, 0xa7, 0x72, 0xfd, 0x8f, 0xa2, 0xc4, 0x8c, - 0x33, 0x97, 0x5a, 0xb3, 0xb6, 0x0c, 0x4c, 0xaa, 0x22, 0x6e, 0x8a, 0x75, 0x67, 0x1e, 0x2c, 0xba, - 0x11, 0x24, 0x55, 0xf1, 0xca, 0xd7, 0x8b, 0xc1, 0xce, 0x4a, 0x6a, 0xc3, 0x0f, 0xe8, 0x64, 0x7a, - 0xb6, 0x58, 0x6a, 0xb1, 0xbb, 0xf3, 0x60, 0x11, 0x44, 0xf4, 0xcc, 0x9e, 0xc1, 0xd4, 0x24, 0xfa, - 0x6d, 0xfc, 0x43, 0x8d, 0x35, 0xc6, 0xd4, 0xe8, 0x7b, 0xf4, 0xca, 0xc4, 0xc2, 0xdf, 0x59, 0xf4, - 0xb5, 0xed, 0xf6, 0x43, 0x18, 0x92, 0x1f, 0x79, 0x7c, 0xe0, 0x92, 0xb5, 0x00, 0x19, 0x0f, 0xe1, - 0xce, 0x8f, 0x89, 0x8e, 0x85, 0x4c, 0xb2, 0xa2, 0xcc, 0x63, 0xcf, 0x3e, 0xce, 0xe7, 0xc1, 0x62, - 0x10, 0xed, 0xff, 0x98, 0xe8, 0xa5, 0xb3, 0x34, 0x83, 0xfb, 0x04, 0xc6, 0x15, 0x96, 0xe4, 0x4b, - 0xfc, 0xb8, 0x4f, 0xe1, 0x8f, 0x3c, 0x46, 0x1c, 0xf9, 0xd8, 0x36, 0xa0, 0x12, 0x45, 0x9a, 0xc4, - 0x45, 0x99, 0xe1, 0x15, 0x7f, 0x30, 0x0f, 0x16, 0xbd, 0xe3, 0xce, 0xa7, 0x9f, 0xd9, 0x26, 0x90, - 0xe1, 0xd4, 0xe2, 0x6c, 0x0e, 0x83, 0xcb, 0xa2, 0x2c, 0xf4, 0x0a, 0x33, 0xfe, 0xd0, 0x1e, 0x78, - 0xbc, 0x63, 0x54, 0x8d, 0x51, 0x8b, 0xda, 0xd0, 0x53, 0x21, 0x4b, 0x8c, 0xdf, 0xe2, 0x35, 0xff, - 0x3d, 0x09, 0xc0, 0x80, 0x80, 0x6f, 0xf1, 0x9a, 0x3d, 0x83, 0x1d, 0x52, 0xab, 0x47, 0xa4, 0x56, - 0x6c, 0x7b, 0x3a, 0x48, 0xa6, 0xc8, 0xce, 0xfe, 0x08, 0x33, 0xfb, 0xaf, 0xe3, 0xa2, 0x4c, 0xe5, - 0xba, 0x12, 0x68, 0x90, 0x7f, 0x48, 0xf9, 0x4d, 0x09, 0x3f, 0x6d, 0x61, 0xf6, 0x09, 0x30, 0x3b, - 0xed, 0x6e, 0x9b, 0x58, 0xa1, 0xc0, 0x44, 0x23, 0x7f, 0x46, 0x07, 0xcf, 0x92, 0xaa, 0x3a, 0x21, - 0x43, 0xe4, 0x70, 0xdb, 0x49, 0xbc, 0x2a, 0x4c, 0xac, 0x30, 0xd1, 0xb2, 0xe4, 0x7f, 0xb0, 0x69, - 0x46, 0x60, 0xa1, 0x88, 0x10, 0xf6, 0x05, 0xdc, 0xb3, 0xc5, 0x35, 0x2b, 0x25, 0x8d, 0x11, 0x98, - 0xc5, 0x97, 0x52, 0xb9, 0xb2, 0x3d, 0xa6, 0xf3, 0x6d, 0xe9, 0x2f, 0x1a, 0xe3, 0xd7, 0x52, 0x51, - 0xf9, 0xbe, 0x84, 0x07, 0x3f, 0x7f, 0xc9, 0xf7, 0x45, 0xf3, 0x39, 0xbd, 0xf8, 0xc1, 0xad, 0x17, - 0x7d, 0x77, 0x34, 0xdd, 0x17, 0xed, 0x8b, 0x74, 0xd2, 0x13, 0x6a, 0xd0, 0xa4, 0x45, 0xe9, 0x8c, - 0xc7, 0x30, 0xb2, 0x97, 0x1a, 0x2a, 0x47, 0x8a, 0x90, 0x12, 0x04, 0x07, 0x59, 0x5a, 0x84, 0x7f, - 0x83, 0xd9, 0x52, 0xe6, 0xaf, 0x48, 0xc8, 0x9a, 0x81, 0xdb, 0xd2, 0xbc, 0xe0, 0x7d, 0x35, 0x2f, - 0xd8, 0xd2, 0xbc, 0xf0, 0xbf, 0x3d, 0xd8, 0x5b, 0xca, 0x3c, 0xc2, 0x24, 0x6b, 0x28, 0xf5, 0x0b, - 0x12, 0x7b, 0x7b, 0xa3, 0xee, 0xb6, 0x78, 0x7e, 0x05, 0x7b, 0x3e, 0x9a, 0x46, 0x23, 0xee, 0x10, - 0x0f, 0x1e, 0x6e, 0xf3, 0x60, 0x2b, 0x85, 0x68, 0xb2, 0xde, 0xca, 0x68, 0x5b, 0x07, 0xbb, 0x54, - 0xa9, 0x5f, 0xd0, 0xc1, 0x1d, 0x32, 0xb6, 0x3a, 0x78, 0xa3, 0xcd, 0xbd, 0xf7, 0xd0, 0xe6, 0x6d, - 0xa1, 0xdf, 0x9d, 0x77, 0xb7, 0x85, 0xfe, 0x39, 0xec, 0xaf, 0x8b, 0xb2, 0x58, 0xd7, 0xeb, 0x98, - 0xae, 0x60, 0xba, 0xb5, 0xfa, 0xc4, 0xa6, 0xa9, 0x37, 0x58, 0x46, 0xd3, 0xfd, 0xf5, 0x29, 0xb0, - 0xa2, 0x4c, 0x45, 0x9d, 0xe1, 0x26, 0x9d, 0x07, 0x6e, 0x5c, 0xbd, 0x65, 0x83, 0xd0, 0x07, 0xd0, - 0x4b, 0x65, 0x5d, 0x1a, 0x3e, 0xa4, 0xf8, 0xdd, 0xc2, 0xd2, 0xbc, 0x91, 0x23, 0x3a, 0x51, 0x61, - 0x8e, 0x57, 0x7c, 0x8f, 0x7a, 0x35, 0x6b, 0x2c, 0xd4, 0xa5, 0x1c, 0xaf, 0x6c, 0xf4, 0x56, 0x83, - 0xbc, 0x97, 0x53, 0xcb, 0xa1, 0x45, 0x9c, 0xf9, 0xe9, 0xed, 0x71, 0x9f, 0x51, 0xe4, 0xdb, 0xa3, - 0xbe, 0x80, 0x59, 0x13, 0xb6, 0xed, 0x35, 0x7d, 0x23, 0x00, 0x05, 0xbd, 0xe7, 0x71, 0xf7, 0x75, - 0xa1, 0xd9, 0x11, 0x1c, 0x34, 0x1e, 0x71, 0x85, 0x2d, 0xf3, 0xf9, 0x3e, 0xed, 0xba, 0x9f, 0x38, - 0xb7, 0xbf, 0xa2, 0xda, 0x50, 0xa4, 0x66, 0x6b, 0x92, 0xcd, 0x11, 0x6d, 0x3b, 0xf2, 0xd8, 0x37, - 0x56, 0x29, 0x1f, 0xc3, 0xa8, 0x3d, 0x5d, 0x08, 0x3e, 0x26, 0x0f, 0x68, 0x0e, 0x16, 0xc2, 0x8e, - 0x4d, 0x9a, 0xa4, 0x2b, 0x8c, 0x0b, 0x83, 0x2a, 0x31, 0x52, 0xf1, 0x09, 0xf9, 0x4c, 0x08, 0x3d, - 0xf5, 0xa0, 0xad, 0x44, 0x59, 0xaf, 0x63, 0xbd, 0x4a, 0x54, 0xa6, 0x39, 0xa3, 0x88, 0x86, 0x65, - 0xbd, 0x3e, 0x27, 0x20, 0xfc, 0x57, 0x40, 0xdf, 0x83, 0x8e, 0xdb, 0xee, 0xb2, 0x61, 0x1f, 0x43, - 0x57, 0xc8, 0x9c, 0x07, 0xc4, 0xcd, 0xbb, 0x1b, 0x2c, 0xb9, 0xf9, 0xc6, 0x88, 0xac, 0xc7, 0x06, - 0xa3, 0x3a, 0xef, 0xc1, 0xa8, 0x10, 0x26, 0x22, 0xd1, 0x26, 0x6e, 0xf9, 0xe9, 0xc8, 0x3b, 0xb2, - 0xe0, 0x89, 0xe3, 0x68, 0xf8, 0x9f, 0x80, 0x46, 0xed, 0x8d, 0xfd, 0xac, 0x89, 0x30, 0x95, 0xea, - 0xf6, 0x4c, 0x05, 0xb7, 0x86, 0xf3, 0xd6, 0x3c, 0x74, 0x5c, 0x7e, 0xff, 0x7f, 0x1e, 0xba, 0x64, - 0x6c, 0xe7, 0xa1, 0xe5, 0xd9, 0xce, 0x26, 0xcf, 0x1e, 0x01, 0x18, 0x69, 0x12, 0xe1, 0xee, 0xe1, - 0x9e, 0x9b, 0x2f, 0x42, 0xe8, 0x12, 0xe6, 0xd0, 0x57, 0x14, 0x97, 0xe6, 0xbb, 0x6e, 0x3b, 0xbf, - 0x0c, 0xff, 0xdd, 0xa1, 0x4a, 0xfa, 0xd0, 0x7f, 0x8b, 0x4c, 0xfc, 0x7c, 0xc4, 0x7b, 0xbf, 0x36, - 0xe2, 0xbd, 0xcd, 0x11, 0x9f, 0xd9, 0xcf, 0x11, 0x51, 0x1b, 0xbb, 0xf7, 0x4a, 0xd6, 0x4a, 0x53, - 0x0a, 0x93, 0xe3, 0xe0, 0xb3, 0x68, 0x7a, 0x63, 0xfa, 0xc6, 0x5a, 0xec, 0x25, 0xe3, 0x07, 0xa7, - 0xd1, 0x23, 0x97, 0xd4, 0x20, 0x9a, 0x7a, 0xdc, 0x8b, 0x0e, 0x7d, 0xa0, 0xd4, 0x36, 0xb1, 0x56, - 0xb8, 0xdc, 0xa8, 0x8f, 0x09, 0x6c, 0xa4, 0xe9, 0x29, 0x4c, 0x9a, 0x7d, 0x62, 0x59, 0x8a, 0x6b, - 0x3f, 0xe2, 0xe3, 0x06, 0x3c, 0x2b, 0xc5, 0x75, 0x78, 0x45, 0x2a, 0xed, 0xab, 0xe4, 0x09, 0x77, - 0x04, 0x3d, 0xda, 0xc8, 0x53, 0xee, 0xfe, 0x36, 0x8d, 0x36, 0xc8, 0x10, 0x39, 0x3f, 0xf6, 0x05, - 0xf4, 0x75, 0xbd, 0x5e, 0x27, 0xea, 0xda, 0x33, 0xef, 0x57, 0x5e, 0x69, 0x3c, 0xbf, 0xea, 0xfd, - 0xdd, 0x92, 0xf6, 0x7f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x70, 0xd9, 0xa0, 0xf8, 0x48, 0x0d, 0x00, - 0x00, -} diff --git a/vendor/google.golang.org/appengine/internal/log/log_service.proto b/vendor/google.golang.org/appengine/internal/log/log_service.proto deleted file mode 100644 index 8981dc475..000000000 --- a/vendor/google.golang.org/appengine/internal/log/log_service.proto +++ /dev/null @@ -1,150 +0,0 @@ -syntax = "proto2"; -option go_package = "log"; - -package appengine; - -message LogServiceError { - enum ErrorCode { - OK = 0; - INVALID_REQUEST = 1; - STORAGE_ERROR = 2; - } -} - -message UserAppLogLine { - required int64 timestamp_usec = 1; - required int64 level = 2; - required string message = 3; -} - -message UserAppLogGroup { - repeated UserAppLogLine log_line = 2; -} - -message FlushRequest { - optional bytes logs = 1; -} - -message SetStatusRequest { - required string status = 1; -} - - -message LogOffset { - optional bytes request_id = 1; -} - -message LogLine { - required int64 time = 1; - required int32 level = 2; - required string log_message = 3; -} - -message RequestLog { - required string app_id = 1; - optional string module_id = 37 [default="default"]; - required string version_id = 2; - required bytes request_id = 3; - optional LogOffset offset = 35; - required string ip = 4; - optional string nickname = 5; - required int64 start_time = 6; - required int64 end_time = 7; - required int64 latency = 8; - required int64 mcycles = 9; - required string method = 10; - required string resource = 11; - required string http_version = 12; - required int32 status = 13; - required int64 response_size = 14; - optional string referrer = 15; - optional string user_agent = 16; - required string url_map_entry = 17; - required string combined = 18; - optional int64 api_mcycles = 19; - optional string host = 20; - optional double cost = 21; - - optional string task_queue_name = 22; - optional string task_name = 23; - - optional bool was_loading_request = 24; - optional int64 pending_time = 25; - optional int32 replica_index = 26 [default = -1]; - optional bool finished = 27 [default = true]; - optional bytes clone_key = 28; - - repeated LogLine line = 29; - - optional bool lines_incomplete = 36; - optional bytes app_engine_release = 38; - - optional int32 exit_reason = 30; - optional bool was_throttled_for_time = 31; - optional bool was_throttled_for_requests = 32; - optional int64 throttled_time = 33; - - optional bytes server_name = 34; -} - -message LogModuleVersion { - optional string module_id = 1 [default="default"]; - optional string version_id = 2; -} - -message LogReadRequest { - required string app_id = 1; - repeated string version_id = 2; - repeated LogModuleVersion module_version = 19; - - optional int64 start_time = 3; - optional int64 end_time = 4; - optional LogOffset offset = 5; - repeated bytes request_id = 6; - - optional int32 minimum_log_level = 7; - optional bool include_incomplete = 8; - optional int64 count = 9; - - optional string combined_log_regex = 14; - optional string host_regex = 15; - optional int32 replica_index = 16; - - optional bool include_app_logs = 10; - optional int32 app_logs_per_request = 17; - optional bool include_host = 11; - optional bool include_all = 12; - optional bool cache_iterator = 13; - optional int32 num_shards = 18; -} - -message LogReadResponse { - repeated RequestLog log = 1; - optional LogOffset offset = 2; - optional int64 last_end_time = 3; -} - -message LogUsageRecord { - optional string version_id = 1; - optional int32 start_time = 2; - optional int32 end_time = 3; - optional int64 count = 4; - optional int64 total_size = 5; - optional int32 records = 6; -} - -message LogUsageRequest { - required string app_id = 1; - repeated string version_id = 2; - optional int32 start_time = 3; - optional int32 end_time = 4; - optional uint32 resolution_hours = 5 [default = 1]; - optional bool combine_versions = 6; - optional int32 usage_version = 7; - optional bool versions_only = 8; -} - -message LogUsageResponse { - repeated LogUsageRecord usage = 1; - optional LogUsageRecord summary = 2; -} diff --git a/vendor/google.golang.org/appengine/internal/main.go b/vendor/google.golang.org/appengine/internal/main.go deleted file mode 100644 index afd0ae84f..000000000 --- a/vendor/google.golang.org/appengine/internal/main.go +++ /dev/null @@ -1,17 +0,0 @@ -// Copyright 2011 Google Inc. All rights reserved. -// Use of this source code is governed by the Apache 2.0 -// license that can be found in the LICENSE file. - -//go:build appengine -// +build appengine - -package internal - -import ( - "appengine_internal" -) - -func Main() { - MainPath = "" - appengine_internal.Main() -} diff --git a/vendor/google.golang.org/appengine/internal/main_common.go b/vendor/google.golang.org/appengine/internal/main_common.go deleted file mode 100644 index 357dce4dd..000000000 --- a/vendor/google.golang.org/appengine/internal/main_common.go +++ /dev/null @@ -1,7 +0,0 @@ -package internal - -// MainPath stores the file path of the main package. On App Engine Standard -// using Go version 1.9 and below, this will be unset. On App Engine Flex and -// App Engine Standard second-gen (Go 1.11 and above), this will be the -// filepath to package main. -var MainPath string diff --git a/vendor/google.golang.org/appengine/internal/main_vm.go b/vendor/google.golang.org/appengine/internal/main_vm.go deleted file mode 100644 index 86a8caf06..000000000 --- a/vendor/google.golang.org/appengine/internal/main_vm.go +++ /dev/null @@ -1,70 +0,0 @@ -// Copyright 2011 Google Inc. All rights reserved. -// Use of this source code is governed by the Apache 2.0 -// license that can be found in the LICENSE file. - -//go:build !appengine -// +build !appengine - -package internal - -import ( - "io" - "log" - "net/http" - "net/url" - "os" - "path/filepath" - "runtime" -) - -func Main() { - MainPath = filepath.Dir(findMainPath()) - installHealthChecker(http.DefaultServeMux) - - port := "8080" - if s := os.Getenv("PORT"); s != "" { - port = s - } - - host := "" - if IsDevAppServer() { - host = "127.0.0.1" - } - if err := http.ListenAndServe(host+":"+port, Middleware(http.DefaultServeMux)); err != nil { - log.Fatalf("http.ListenAndServe: %v", err) - } -} - -// Find the path to package main by looking at the root Caller. -func findMainPath() string { - pc := make([]uintptr, 100) - n := runtime.Callers(2, pc) - frames := runtime.CallersFrames(pc[:n]) - for { - frame, more := frames.Next() - // Tests won't have package main, instead they have testing.tRunner - if frame.Function == "main.main" || frame.Function == "testing.tRunner" { - return frame.File - } - if !more { - break - } - } - return "" -} - -func installHealthChecker(mux *http.ServeMux) { - // If no health check handler has been installed by this point, add a trivial one. - const healthPath = "/_ah/health" - hreq := &http.Request{ - Method: "GET", - URL: &url.URL{ - Path: healthPath, - }, - } - if _, pat := mux.Handler(hreq); pat != healthPath { - mux.HandleFunc(healthPath, func(w http.ResponseWriter, r *http.Request) { - io.WriteString(w, "ok") - }) - } -} diff --git a/vendor/google.golang.org/appengine/internal/metadata.go b/vendor/google.golang.org/appengine/internal/metadata.go deleted file mode 100644 index c4ba63bb4..000000000 --- a/vendor/google.golang.org/appengine/internal/metadata.go +++ /dev/null @@ -1,60 +0,0 @@ -// Copyright 2014 Google Inc. All rights reserved. -// Use of this source code is governed by the Apache 2.0 -// license that can be found in the LICENSE file. - -package internal - -// This file has code for accessing metadata. -// -// References: -// https://cloud.google.com/compute/docs/metadata - -import ( - "fmt" - "io/ioutil" - "net/http" - "net/url" -) - -const ( - metadataHost = "metadata" - metadataPath = "/computeMetadata/v1/" -) - -var ( - metadataRequestHeaders = http.Header{ - "Metadata-Flavor": []string{"Google"}, - } -) - -// TODO(dsymonds): Do we need to support default values, like Python? -func mustGetMetadata(key string) []byte { - b, err := getMetadata(key) - if err != nil { - panic(fmt.Sprintf("Metadata fetch failed for '%s': %v", key, err)) - } - return b -} - -func getMetadata(key string) ([]byte, error) { - // TODO(dsymonds): May need to use url.Parse to support keys with query args. - req := &http.Request{ - Method: "GET", - URL: &url.URL{ - Scheme: "http", - Host: metadataHost, - Path: metadataPath + key, - }, - Header: metadataRequestHeaders, - Host: metadataHost, - } - resp, err := http.DefaultClient.Do(req) - if err != nil { - return nil, err - } - defer resp.Body.Close() - if resp.StatusCode != 200 { - return nil, fmt.Errorf("metadata server returned HTTP %d", resp.StatusCode) - } - return ioutil.ReadAll(resp.Body) -} diff --git a/vendor/google.golang.org/appengine/internal/net.go b/vendor/google.golang.org/appengine/internal/net.go deleted file mode 100644 index fe429720e..000000000 --- a/vendor/google.golang.org/appengine/internal/net.go +++ /dev/null @@ -1,56 +0,0 @@ -// Copyright 2014 Google Inc. All rights reserved. -// Use of this source code is governed by the Apache 2.0 -// license that can be found in the LICENSE file. - -package internal - -// This file implements a network dialer that limits the number of concurrent connections. -// It is only used for API calls. - -import ( - "log" - "net" - "runtime" - "sync" - "time" -) - -var limitSem = make(chan int, 100) // TODO(dsymonds): Use environment variable. - -func limitRelease() { - // non-blocking - select { - case <-limitSem: - default: - // This should not normally happen. - log.Print("appengine: unbalanced limitSem release!") - } -} - -func limitDial(network, addr string) (net.Conn, error) { - limitSem <- 1 - - // Dial with a timeout in case the API host is MIA. - // The connection should normally be very fast. - conn, err := net.DialTimeout(network, addr, 10*time.Second) - if err != nil { - limitRelease() - return nil, err - } - lc := &limitConn{Conn: conn} - runtime.SetFinalizer(lc, (*limitConn).Close) // shouldn't usually be required - return lc, nil -} - -type limitConn struct { - close sync.Once - net.Conn -} - -func (lc *limitConn) Close() error { - defer lc.close.Do(func() { - limitRelease() - runtime.SetFinalizer(lc, nil) - }) - return lc.Conn.Close() -} diff --git a/vendor/google.golang.org/appengine/internal/regen.sh b/vendor/google.golang.org/appengine/internal/regen.sh deleted file mode 100644 index 2fdb546a6..000000000 --- a/vendor/google.golang.org/appengine/internal/regen.sh +++ /dev/null @@ -1,40 +0,0 @@ -#!/bin/bash -e -# -# This script rebuilds the generated code for the protocol buffers. -# To run this you will need protoc and goprotobuf installed; -# see https://github.com/golang/protobuf for instructions. - -PKG=google.golang.org/appengine - -function die() { - echo 1>&2 $* - exit 1 -} - -# Sanity check that the right tools are accessible. -for tool in go protoc protoc-gen-go; do - q=$(which $tool) || die "didn't find $tool" - echo 1>&2 "$tool: $q" -done - -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 - -# Run protoc once per package. -for dir in $(find $PKG/internal -name '*.proto' | xargs dirname | sort | uniq); do - echo 1>&2 "* $dir" - protoc --go_out=. $dir/*.proto -done - -for f in $(find $PKG/internal -name '*.pb.go'); do - # Remove proto.RegisterEnum calls. - # These cause duplicate registration panics when these packages - # are used on classic App Engine. proto.RegisterEnum only affects - # parsing the text format; we don't care about that. - # https://code.google.com/p/googleappengine/issues/detail?id=11670#c17 - sed -i '/proto.RegisterEnum/d' $f -done diff --git a/vendor/google.golang.org/appengine/internal/remote_api/remote_api.pb.go b/vendor/google.golang.org/appengine/internal/remote_api/remote_api.pb.go deleted file mode 100644 index 8d782a38e..000000000 --- a/vendor/google.golang.org/appengine/internal/remote_api/remote_api.pb.go +++ /dev/null @@ -1,361 +0,0 @@ -// Code generated by protoc-gen-go. DO NOT EDIT. -// source: google.golang.org/appengine/internal/remote_api/remote_api.proto - -package remote_api - -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 RpcError_ErrorCode int32 - -const ( - RpcError_UNKNOWN RpcError_ErrorCode = 0 - RpcError_CALL_NOT_FOUND RpcError_ErrorCode = 1 - RpcError_PARSE_ERROR RpcError_ErrorCode = 2 - RpcError_SECURITY_VIOLATION RpcError_ErrorCode = 3 - RpcError_OVER_QUOTA RpcError_ErrorCode = 4 - RpcError_REQUEST_TOO_LARGE RpcError_ErrorCode = 5 - RpcError_CAPABILITY_DISABLED RpcError_ErrorCode = 6 - RpcError_FEATURE_DISABLED RpcError_ErrorCode = 7 - RpcError_BAD_REQUEST RpcError_ErrorCode = 8 - RpcError_RESPONSE_TOO_LARGE RpcError_ErrorCode = 9 - RpcError_CANCELLED RpcError_ErrorCode = 10 - RpcError_REPLAY_ERROR RpcError_ErrorCode = 11 - RpcError_DEADLINE_EXCEEDED RpcError_ErrorCode = 12 -) - -var RpcError_ErrorCode_name = map[int32]string{ - 0: "UNKNOWN", - 1: "CALL_NOT_FOUND", - 2: "PARSE_ERROR", - 3: "SECURITY_VIOLATION", - 4: "OVER_QUOTA", - 5: "REQUEST_TOO_LARGE", - 6: "CAPABILITY_DISABLED", - 7: "FEATURE_DISABLED", - 8: "BAD_REQUEST", - 9: "RESPONSE_TOO_LARGE", - 10: "CANCELLED", - 11: "REPLAY_ERROR", - 12: "DEADLINE_EXCEEDED", -} -var RpcError_ErrorCode_value = map[string]int32{ - "UNKNOWN": 0, - "CALL_NOT_FOUND": 1, - "PARSE_ERROR": 2, - "SECURITY_VIOLATION": 3, - "OVER_QUOTA": 4, - "REQUEST_TOO_LARGE": 5, - "CAPABILITY_DISABLED": 6, - "FEATURE_DISABLED": 7, - "BAD_REQUEST": 8, - "RESPONSE_TOO_LARGE": 9, - "CANCELLED": 10, - "REPLAY_ERROR": 11, - "DEADLINE_EXCEEDED": 12, -} - -func (x RpcError_ErrorCode) Enum() *RpcError_ErrorCode { - p := new(RpcError_ErrorCode) - *p = x - return p -} -func (x RpcError_ErrorCode) String() string { - return proto.EnumName(RpcError_ErrorCode_name, int32(x)) -} -func (x *RpcError_ErrorCode) UnmarshalJSON(data []byte) error { - value, err := proto.UnmarshalJSONEnum(RpcError_ErrorCode_value, data, "RpcError_ErrorCode") - if err != nil { - return err - } - *x = RpcError_ErrorCode(value) - return nil -} -func (RpcError_ErrorCode) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_remote_api_1978114ec33a273d, []int{2, 0} -} - -type Request struct { - ServiceName *string `protobuf:"bytes,2,req,name=service_name,json=serviceName" json:"service_name,omitempty"` - Method *string `protobuf:"bytes,3,req,name=method" json:"method,omitempty"` - Request []byte `protobuf:"bytes,4,req,name=request" json:"request,omitempty"` - RequestId *string `protobuf:"bytes,5,opt,name=request_id,json=requestId" json:"request_id,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *Request) Reset() { *m = Request{} } -func (m *Request) String() string { return proto.CompactTextString(m) } -func (*Request) ProtoMessage() {} -func (*Request) Descriptor() ([]byte, []int) { - return fileDescriptor_remote_api_1978114ec33a273d, []int{0} -} -func (m *Request) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_Request.Unmarshal(m, b) -} -func (m *Request) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_Request.Marshal(b, m, deterministic) -} -func (dst *Request) XXX_Merge(src proto.Message) { - xxx_messageInfo_Request.Merge(dst, src) -} -func (m *Request) XXX_Size() int { - return xxx_messageInfo_Request.Size(m) -} -func (m *Request) XXX_DiscardUnknown() { - xxx_messageInfo_Request.DiscardUnknown(m) -} - -var xxx_messageInfo_Request proto.InternalMessageInfo - -func (m *Request) GetServiceName() string { - if m != nil && m.ServiceName != nil { - return *m.ServiceName - } - return "" -} - -func (m *Request) GetMethod() string { - if m != nil && m.Method != nil { - return *m.Method - } - return "" -} - -func (m *Request) GetRequest() []byte { - if m != nil { - return m.Request - } - return nil -} - -func (m *Request) GetRequestId() string { - if m != nil && m.RequestId != nil { - return *m.RequestId - } - return "" -} - -type ApplicationError struct { - Code *int32 `protobuf:"varint,1,req,name=code" json:"code,omitempty"` - Detail *string `protobuf:"bytes,2,req,name=detail" json:"detail,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *ApplicationError) Reset() { *m = ApplicationError{} } -func (m *ApplicationError) String() string { return proto.CompactTextString(m) } -func (*ApplicationError) ProtoMessage() {} -func (*ApplicationError) Descriptor() ([]byte, []int) { - return fileDescriptor_remote_api_1978114ec33a273d, []int{1} -} -func (m *ApplicationError) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ApplicationError.Unmarshal(m, b) -} -func (m *ApplicationError) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ApplicationError.Marshal(b, m, deterministic) -} -func (dst *ApplicationError) XXX_Merge(src proto.Message) { - xxx_messageInfo_ApplicationError.Merge(dst, src) -} -func (m *ApplicationError) XXX_Size() int { - return xxx_messageInfo_ApplicationError.Size(m) -} -func (m *ApplicationError) XXX_DiscardUnknown() { - xxx_messageInfo_ApplicationError.DiscardUnknown(m) -} - -var xxx_messageInfo_ApplicationError proto.InternalMessageInfo - -func (m *ApplicationError) GetCode() int32 { - if m != nil && m.Code != nil { - return *m.Code - } - return 0 -} - -func (m *ApplicationError) GetDetail() string { - if m != nil && m.Detail != nil { - return *m.Detail - } - return "" -} - -type RpcError struct { - Code *int32 `protobuf:"varint,1,req,name=code" json:"code,omitempty"` - Detail *string `protobuf:"bytes,2,opt,name=detail" json:"detail,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *RpcError) Reset() { *m = RpcError{} } -func (m *RpcError) String() string { return proto.CompactTextString(m) } -func (*RpcError) ProtoMessage() {} -func (*RpcError) Descriptor() ([]byte, []int) { - return fileDescriptor_remote_api_1978114ec33a273d, []int{2} -} -func (m *RpcError) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_RpcError.Unmarshal(m, b) -} -func (m *RpcError) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_RpcError.Marshal(b, m, deterministic) -} -func (dst *RpcError) XXX_Merge(src proto.Message) { - xxx_messageInfo_RpcError.Merge(dst, src) -} -func (m *RpcError) XXX_Size() int { - return xxx_messageInfo_RpcError.Size(m) -} -func (m *RpcError) XXX_DiscardUnknown() { - xxx_messageInfo_RpcError.DiscardUnknown(m) -} - -var xxx_messageInfo_RpcError proto.InternalMessageInfo - -func (m *RpcError) GetCode() int32 { - if m != nil && m.Code != nil { - return *m.Code - } - return 0 -} - -func (m *RpcError) GetDetail() string { - if m != nil && m.Detail != nil { - return *m.Detail - } - return "" -} - -type Response struct { - Response []byte `protobuf:"bytes,1,opt,name=response" json:"response,omitempty"` - Exception []byte `protobuf:"bytes,2,opt,name=exception" json:"exception,omitempty"` - ApplicationError *ApplicationError `protobuf:"bytes,3,opt,name=application_error,json=applicationError" json:"application_error,omitempty"` - JavaException []byte `protobuf:"bytes,4,opt,name=java_exception,json=javaException" json:"java_exception,omitempty"` - RpcError *RpcError `protobuf:"bytes,5,opt,name=rpc_error,json=rpcError" json:"rpc_error,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *Response) Reset() { *m = Response{} } -func (m *Response) String() string { return proto.CompactTextString(m) } -func (*Response) ProtoMessage() {} -func (*Response) Descriptor() ([]byte, []int) { - return fileDescriptor_remote_api_1978114ec33a273d, []int{3} -} -func (m *Response) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_Response.Unmarshal(m, b) -} -func (m *Response) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_Response.Marshal(b, m, deterministic) -} -func (dst *Response) XXX_Merge(src proto.Message) { - xxx_messageInfo_Response.Merge(dst, src) -} -func (m *Response) XXX_Size() int { - return xxx_messageInfo_Response.Size(m) -} -func (m *Response) XXX_DiscardUnknown() { - xxx_messageInfo_Response.DiscardUnknown(m) -} - -var xxx_messageInfo_Response proto.InternalMessageInfo - -func (m *Response) GetResponse() []byte { - if m != nil { - return m.Response - } - return nil -} - -func (m *Response) GetException() []byte { - if m != nil { - return m.Exception - } - return nil -} - -func (m *Response) GetApplicationError() *ApplicationError { - if m != nil { - return m.ApplicationError - } - return nil -} - -func (m *Response) GetJavaException() []byte { - if m != nil { - return m.JavaException - } - return nil -} - -func (m *Response) GetRpcError() *RpcError { - if m != nil { - return m.RpcError - } - return nil -} - -func init() { - proto.RegisterType((*Request)(nil), "remote_api.Request") - proto.RegisterType((*ApplicationError)(nil), "remote_api.ApplicationError") - proto.RegisterType((*RpcError)(nil), "remote_api.RpcError") - proto.RegisterType((*Response)(nil), "remote_api.Response") -} - -func init() { - proto.RegisterFile("google.golang.org/appengine/internal/remote_api/remote_api.proto", fileDescriptor_remote_api_1978114ec33a273d) -} - -var fileDescriptor_remote_api_1978114ec33a273d = []byte{ - // 531 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x93, 0x51, 0x6e, 0xd3, 0x40, - 0x10, 0x86, 0xb1, 0x9b, 0x34, 0xf1, 0xc4, 0x2d, 0xdb, 0xa5, 0x14, 0x0b, 0x15, 0x29, 0x44, 0x42, - 0xca, 0x53, 0x2a, 0x38, 0x00, 0x62, 0x63, 0x6f, 0x91, 0x85, 0x65, 0xa7, 0x6b, 0xbb, 0x50, 0x5e, - 0x56, 0x2b, 0x67, 0x65, 0x8c, 0x12, 0xaf, 0xd9, 0x98, 0x8a, 0x17, 0x6e, 0xc0, 0xb5, 0x38, 0x0c, - 0xb7, 0x40, 0x36, 0x6e, 0x63, 0xf5, 0x89, 0xb7, 0x7f, 0x7e, 0x7b, 0xe6, 0x1b, 0xcd, 0xcc, 0xc2, - 0xbb, 0x5c, 0xa9, 0x7c, 0x23, 0x17, 0xb9, 0xda, 0x88, 0x32, 0x5f, 0x28, 0x9d, 0x5f, 0x88, 0xaa, - 0x92, 0x65, 0x5e, 0x94, 0xf2, 0xa2, 0x28, 0x6b, 0xa9, 0x4b, 0xb1, 0xb9, 0xd0, 0x72, 0xab, 0x6a, - 0xc9, 0x45, 0x55, 0xf4, 0xe4, 0xa2, 0xd2, 0xaa, 0x56, 0x18, 0xf6, 0xce, 0xec, 0x27, 0x8c, 0x98, - 0xfc, 0xf6, 0x5d, 0xee, 0x6a, 0xfc, 0x12, 0xec, 0x9d, 0xd4, 0xb7, 0x45, 0x26, 0x79, 0x29, 0xb6, - 0xd2, 0x31, 0xa7, 0xe6, 0xdc, 0x62, 0x93, 0xce, 0x0b, 0xc5, 0x56, 0xe2, 0x33, 0x38, 0xdc, 0xca, - 0xfa, 0x8b, 0x5a, 0x3b, 0x07, 0xed, 0xc7, 0x2e, 0xc2, 0x0e, 0x8c, 0xf4, 0xbf, 0x2a, 0xce, 0x60, - 0x6a, 0xce, 0x6d, 0x76, 0x17, 0xe2, 0x17, 0x00, 0x9d, 0xe4, 0xc5, 0xda, 0x19, 0x4e, 0x8d, 0xb9, - 0xc5, 0xac, 0xce, 0xf1, 0xd7, 0xb3, 0xb7, 0x80, 0x48, 0x55, 0x6d, 0x8a, 0x4c, 0xd4, 0x85, 0x2a, - 0xa9, 0xd6, 0x4a, 0x63, 0x0c, 0x83, 0x4c, 0xad, 0xa5, 0x63, 0x4c, 0xcd, 0xf9, 0x90, 0xb5, 0xba, - 0x01, 0xaf, 0x65, 0x2d, 0x8a, 0x4d, 0xd7, 0x55, 0x17, 0xcd, 0x7e, 0x9b, 0x30, 0x66, 0x55, 0xf6, - 0x7f, 0x89, 0x46, 0x2f, 0xf1, 0x97, 0x09, 0x56, 0x9b, 0xe5, 0x36, 0x7f, 0x4d, 0x60, 0x94, 0x86, - 0x1f, 0xc2, 0xe8, 0x63, 0x88, 0x1e, 0x61, 0x0c, 0xc7, 0x2e, 0x09, 0x02, 0x1e, 0x46, 0x09, 0xbf, - 0x8c, 0xd2, 0xd0, 0x43, 0x06, 0x7e, 0x0c, 0x93, 0x15, 0x61, 0x31, 0xe5, 0x94, 0xb1, 0x88, 0x21, - 0x13, 0x9f, 0x01, 0x8e, 0xa9, 0x9b, 0x32, 0x3f, 0xb9, 0xe1, 0xd7, 0x7e, 0x14, 0x90, 0xc4, 0x8f, - 0x42, 0x74, 0x80, 0x8f, 0x01, 0xa2, 0x6b, 0xca, 0xf8, 0x55, 0x1a, 0x25, 0x04, 0x0d, 0xf0, 0x53, - 0x38, 0x61, 0xf4, 0x2a, 0xa5, 0x71, 0xc2, 0x93, 0x28, 0xe2, 0x01, 0x61, 0xef, 0x29, 0x1a, 0xe2, - 0x67, 0xf0, 0xc4, 0x25, 0x2b, 0xb2, 0xf4, 0x83, 0xa6, 0x80, 0xe7, 0xc7, 0x64, 0x19, 0x50, 0x0f, - 0x1d, 0xe2, 0x53, 0x40, 0x97, 0x94, 0x24, 0x29, 0xa3, 0x7b, 0x77, 0xd4, 0xe0, 0x97, 0xc4, 0xe3, - 0x5d, 0x25, 0x34, 0x6e, 0xf0, 0x8c, 0xc6, 0xab, 0x28, 0x8c, 0x69, 0xaf, 0xae, 0x85, 0x8f, 0xc0, - 0x72, 0x49, 0xe8, 0xd2, 0xa0, 0xc9, 0x03, 0x8c, 0xc0, 0x66, 0x74, 0x15, 0x90, 0x9b, 0xae, 0xef, - 0x49, 0xd3, 0x8f, 0x47, 0x89, 0x17, 0xf8, 0x21, 0xe5, 0xf4, 0x93, 0x4b, 0xa9, 0x47, 0x3d, 0x64, - 0xcf, 0xfe, 0x18, 0x30, 0x66, 0x72, 0x57, 0xa9, 0x72, 0x27, 0xf1, 0x73, 0x18, 0xeb, 0x4e, 0x3b, - 0xc6, 0xd4, 0x98, 0xdb, 0xec, 0x3e, 0xc6, 0xe7, 0x60, 0xc9, 0x1f, 0x99, 0xac, 0x9a, 0x75, 0xb5, - 0x23, 0xb5, 0xd9, 0xde, 0xc0, 0x3e, 0x9c, 0x88, 0xfd, 0x3a, 0xb9, 0x6c, 0x06, 0xec, 0x1c, 0x4c, - 0x8d, 0xf9, 0xe4, 0xcd, 0xf9, 0xa2, 0x77, 0x87, 0x0f, 0x77, 0xce, 0x90, 0x78, 0x78, 0x05, 0xaf, - 0xe0, 0xf8, 0xab, 0xb8, 0x15, 0x7c, 0x4f, 0x1b, 0xb4, 0xb4, 0xa3, 0xc6, 0xa5, 0xf7, 0xc4, 0xd7, - 0x60, 0xe9, 0x2a, 0xeb, 0x48, 0xc3, 0x96, 0x74, 0xda, 0x27, 0xdd, 0x1d, 0x07, 0x1b, 0xeb, 0x4e, - 0x2d, 0xed, 0xcf, 0xbd, 0x07, 0xf0, 0x37, 0x00, 0x00, 0xff, 0xff, 0x38, 0xd1, 0x0f, 0x22, 0x4f, - 0x03, 0x00, 0x00, -} diff --git a/vendor/google.golang.org/appengine/internal/remote_api/remote_api.proto b/vendor/google.golang.org/appengine/internal/remote_api/remote_api.proto deleted file mode 100644 index f21763a4e..000000000 --- a/vendor/google.golang.org/appengine/internal/remote_api/remote_api.proto +++ /dev/null @@ -1,44 +0,0 @@ -syntax = "proto2"; -option go_package = "remote_api"; - -package remote_api; - -message Request { - required string service_name = 2; - required string method = 3; - required bytes request = 4; - optional string request_id = 5; -} - -message ApplicationError { - required int32 code = 1; - required string detail = 2; -} - -message RpcError { - enum ErrorCode { - UNKNOWN = 0; - CALL_NOT_FOUND = 1; - PARSE_ERROR = 2; - SECURITY_VIOLATION = 3; - OVER_QUOTA = 4; - REQUEST_TOO_LARGE = 5; - CAPABILITY_DISABLED = 6; - FEATURE_DISABLED = 7; - BAD_REQUEST = 8; - RESPONSE_TOO_LARGE = 9; - CANCELLED = 10; - REPLAY_ERROR = 11; - DEADLINE_EXCEEDED = 12; - } - required int32 code = 1; - optional string detail = 2; -} - -message Response { - optional bytes response = 1; - optional bytes exception = 2; - optional ApplicationError application_error = 3; - optional bytes java_exception = 4; - optional RpcError rpc_error = 5; -} diff --git a/vendor/google.golang.org/appengine/internal/transaction.go b/vendor/google.golang.org/appengine/internal/transaction.go deleted file mode 100644 index 2ae8ab9fa..000000000 --- a/vendor/google.golang.org/appengine/internal/transaction.go +++ /dev/null @@ -1,115 +0,0 @@ -// Copyright 2014 Google Inc. All rights reserved. -// Use of this source code is governed by the Apache 2.0 -// license that can be found in the LICENSE file. - -package internal - -// This file implements hooks for applying datastore transactions. - -import ( - "context" - "errors" - "reflect" - - "github.com/golang/protobuf/proto" - - basepb "google.golang.org/appengine/internal/base" - pb "google.golang.org/appengine/internal/datastore" -) - -var transactionSetters = make(map[reflect.Type]reflect.Value) - -// RegisterTransactionSetter registers a function that sets transaction information -// in a protocol buffer message. f should be a function with two arguments, -// the first being a protocol buffer type, and the second being *datastore.Transaction. -func RegisterTransactionSetter(f interface{}) { - v := reflect.ValueOf(f) - transactionSetters[v.Type().In(0)] = v -} - -// applyTransaction applies the transaction t to message pb -// by using the relevant setter passed to RegisterTransactionSetter. -func applyTransaction(pb proto.Message, t *pb.Transaction) { - v := reflect.ValueOf(pb) - if f, ok := transactionSetters[v.Type()]; ok { - f.Call([]reflect.Value{v, reflect.ValueOf(t)}) - } -} - -var transactionKey = "used for *Transaction" - -func transactionFromContext(ctx context.Context) *transaction { - t, _ := ctx.Value(&transactionKey).(*transaction) - return t -} - -func withTransaction(ctx context.Context, t *transaction) context.Context { - return context.WithValue(ctx, &transactionKey, t) -} - -type transaction struct { - transaction pb.Transaction - finished bool -} - -var ErrConcurrentTransaction = errors.New("internal: concurrent transaction") - -func RunTransactionOnce(c context.Context, f func(context.Context) error, xg bool, readOnly bool, previousTransaction *pb.Transaction) (*pb.Transaction, error) { - if transactionFromContext(c) != nil { - return nil, errors.New("nested transactions are not supported") - } - - // Begin the transaction. - t := &transaction{} - req := &pb.BeginTransactionRequest{ - App: proto.String(FullyQualifiedAppID(c)), - } - if xg { - req.AllowMultipleEg = proto.Bool(true) - } - if previousTransaction != nil { - req.PreviousTransaction = previousTransaction - } - if readOnly { - req.Mode = pb.BeginTransactionRequest_READ_ONLY.Enum() - } else { - req.Mode = pb.BeginTransactionRequest_READ_WRITE.Enum() - } - if err := Call(c, "datastore_v3", "BeginTransaction", req, &t.transaction); err != nil { - return nil, err - } - - // Call f, rolling back the transaction if f returns a non-nil error, or panics. - // The panic is not recovered. - defer func() { - if t.finished { - return - } - t.finished = true - // Ignore the error return value, since we are already returning a non-nil - // error (or we're panicking). - Call(c, "datastore_v3", "Rollback", &t.transaction, &basepb.VoidProto{}) - }() - if err := f(withTransaction(c, t)); err != nil { - return &t.transaction, err - } - t.finished = true - - // Commit the transaction. - res := &pb.CommitResponse{} - err := Call(c, "datastore_v3", "Commit", &t.transaction, res) - if ae, ok := err.(*APIError); ok { - /* TODO: restore this conditional - if appengine.IsDevAppServer() { - */ - // The Python Dev AppServer raises an ApplicationError with error code 2 (which is - // Error.CONCURRENT_TRANSACTION) and message "Concurrency exception.". - if ae.Code == int32(pb.Error_BAD_REQUEST) && ae.Detail == "ApplicationError: 2 Concurrency exception." { - return &t.transaction, ErrConcurrentTransaction - } - if ae.Code == int32(pb.Error_CONCURRENT_TRANSACTION) { - return &t.transaction, ErrConcurrentTransaction - } - } - return &t.transaction, err -} diff --git a/vendor/google.golang.org/appengine/internal/urlfetch/urlfetch_service.pb.go b/vendor/google.golang.org/appengine/internal/urlfetch/urlfetch_service.pb.go deleted file mode 100644 index 5f727750a..000000000 --- a/vendor/google.golang.org/appengine/internal/urlfetch/urlfetch_service.pb.go +++ /dev/null @@ -1,527 +0,0 @@ -// Code generated by protoc-gen-go. DO NOT EDIT. -// source: google.golang.org/appengine/internal/urlfetch/urlfetch_service.proto - -package urlfetch - -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 URLFetchServiceError_ErrorCode int32 - -const ( - URLFetchServiceError_OK URLFetchServiceError_ErrorCode = 0 - URLFetchServiceError_INVALID_URL URLFetchServiceError_ErrorCode = 1 - URLFetchServiceError_FETCH_ERROR URLFetchServiceError_ErrorCode = 2 - URLFetchServiceError_UNSPECIFIED_ERROR URLFetchServiceError_ErrorCode = 3 - URLFetchServiceError_RESPONSE_TOO_LARGE URLFetchServiceError_ErrorCode = 4 - URLFetchServiceError_DEADLINE_EXCEEDED URLFetchServiceError_ErrorCode = 5 - URLFetchServiceError_SSL_CERTIFICATE_ERROR URLFetchServiceError_ErrorCode = 6 - URLFetchServiceError_DNS_ERROR URLFetchServiceError_ErrorCode = 7 - URLFetchServiceError_CLOSED URLFetchServiceError_ErrorCode = 8 - URLFetchServiceError_INTERNAL_TRANSIENT_ERROR URLFetchServiceError_ErrorCode = 9 - URLFetchServiceError_TOO_MANY_REDIRECTS URLFetchServiceError_ErrorCode = 10 - URLFetchServiceError_MALFORMED_REPLY URLFetchServiceError_ErrorCode = 11 - URLFetchServiceError_CONNECTION_ERROR URLFetchServiceError_ErrorCode = 12 -) - -var URLFetchServiceError_ErrorCode_name = map[int32]string{ - 0: "OK", - 1: "INVALID_URL", - 2: "FETCH_ERROR", - 3: "UNSPECIFIED_ERROR", - 4: "RESPONSE_TOO_LARGE", - 5: "DEADLINE_EXCEEDED", - 6: "SSL_CERTIFICATE_ERROR", - 7: "DNS_ERROR", - 8: "CLOSED", - 9: "INTERNAL_TRANSIENT_ERROR", - 10: "TOO_MANY_REDIRECTS", - 11: "MALFORMED_REPLY", - 12: "CONNECTION_ERROR", -} -var URLFetchServiceError_ErrorCode_value = map[string]int32{ - "OK": 0, - "INVALID_URL": 1, - "FETCH_ERROR": 2, - "UNSPECIFIED_ERROR": 3, - "RESPONSE_TOO_LARGE": 4, - "DEADLINE_EXCEEDED": 5, - "SSL_CERTIFICATE_ERROR": 6, - "DNS_ERROR": 7, - "CLOSED": 8, - "INTERNAL_TRANSIENT_ERROR": 9, - "TOO_MANY_REDIRECTS": 10, - "MALFORMED_REPLY": 11, - "CONNECTION_ERROR": 12, -} - -func (x URLFetchServiceError_ErrorCode) Enum() *URLFetchServiceError_ErrorCode { - p := new(URLFetchServiceError_ErrorCode) - *p = x - return p -} -func (x URLFetchServiceError_ErrorCode) String() string { - return proto.EnumName(URLFetchServiceError_ErrorCode_name, int32(x)) -} -func (x *URLFetchServiceError_ErrorCode) UnmarshalJSON(data []byte) error { - value, err := proto.UnmarshalJSONEnum(URLFetchServiceError_ErrorCode_value, data, "URLFetchServiceError_ErrorCode") - if err != nil { - return err - } - *x = URLFetchServiceError_ErrorCode(value) - return nil -} -func (URLFetchServiceError_ErrorCode) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_urlfetch_service_b245a7065f33bced, []int{0, 0} -} - -type URLFetchRequest_RequestMethod int32 - -const ( - URLFetchRequest_GET URLFetchRequest_RequestMethod = 1 - URLFetchRequest_POST URLFetchRequest_RequestMethod = 2 - URLFetchRequest_HEAD URLFetchRequest_RequestMethod = 3 - URLFetchRequest_PUT URLFetchRequest_RequestMethod = 4 - URLFetchRequest_DELETE URLFetchRequest_RequestMethod = 5 - URLFetchRequest_PATCH URLFetchRequest_RequestMethod = 6 -) - -var URLFetchRequest_RequestMethod_name = map[int32]string{ - 1: "GET", - 2: "POST", - 3: "HEAD", - 4: "PUT", - 5: "DELETE", - 6: "PATCH", -} -var URLFetchRequest_RequestMethod_value = map[string]int32{ - "GET": 1, - "POST": 2, - "HEAD": 3, - "PUT": 4, - "DELETE": 5, - "PATCH": 6, -} - -func (x URLFetchRequest_RequestMethod) Enum() *URLFetchRequest_RequestMethod { - p := new(URLFetchRequest_RequestMethod) - *p = x - return p -} -func (x URLFetchRequest_RequestMethod) String() string { - return proto.EnumName(URLFetchRequest_RequestMethod_name, int32(x)) -} -func (x *URLFetchRequest_RequestMethod) UnmarshalJSON(data []byte) error { - value, err := proto.UnmarshalJSONEnum(URLFetchRequest_RequestMethod_value, data, "URLFetchRequest_RequestMethod") - if err != nil { - return err - } - *x = URLFetchRequest_RequestMethod(value) - return nil -} -func (URLFetchRequest_RequestMethod) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_urlfetch_service_b245a7065f33bced, []int{1, 0} -} - -type URLFetchServiceError struct { - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *URLFetchServiceError) Reset() { *m = URLFetchServiceError{} } -func (m *URLFetchServiceError) String() string { return proto.CompactTextString(m) } -func (*URLFetchServiceError) ProtoMessage() {} -func (*URLFetchServiceError) Descriptor() ([]byte, []int) { - return fileDescriptor_urlfetch_service_b245a7065f33bced, []int{0} -} -func (m *URLFetchServiceError) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_URLFetchServiceError.Unmarshal(m, b) -} -func (m *URLFetchServiceError) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_URLFetchServiceError.Marshal(b, m, deterministic) -} -func (dst *URLFetchServiceError) XXX_Merge(src proto.Message) { - xxx_messageInfo_URLFetchServiceError.Merge(dst, src) -} -func (m *URLFetchServiceError) XXX_Size() int { - return xxx_messageInfo_URLFetchServiceError.Size(m) -} -func (m *URLFetchServiceError) XXX_DiscardUnknown() { - xxx_messageInfo_URLFetchServiceError.DiscardUnknown(m) -} - -var xxx_messageInfo_URLFetchServiceError proto.InternalMessageInfo - -type URLFetchRequest struct { - Method *URLFetchRequest_RequestMethod `protobuf:"varint,1,req,name=Method,enum=appengine.URLFetchRequest_RequestMethod" json:"Method,omitempty"` - Url *string `protobuf:"bytes,2,req,name=Url" json:"Url,omitempty"` - Header []*URLFetchRequest_Header `protobuf:"group,3,rep,name=Header,json=header" json:"header,omitempty"` - Payload []byte `protobuf:"bytes,6,opt,name=Payload" json:"Payload,omitempty"` - FollowRedirects *bool `protobuf:"varint,7,opt,name=FollowRedirects,def=1" json:"FollowRedirects,omitempty"` - Deadline *float64 `protobuf:"fixed64,8,opt,name=Deadline" json:"Deadline,omitempty"` - MustValidateServerCertificate *bool `protobuf:"varint,9,opt,name=MustValidateServerCertificate,def=1" json:"MustValidateServerCertificate,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *URLFetchRequest) Reset() { *m = URLFetchRequest{} } -func (m *URLFetchRequest) String() string { return proto.CompactTextString(m) } -func (*URLFetchRequest) ProtoMessage() {} -func (*URLFetchRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_urlfetch_service_b245a7065f33bced, []int{1} -} -func (m *URLFetchRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_URLFetchRequest.Unmarshal(m, b) -} -func (m *URLFetchRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_URLFetchRequest.Marshal(b, m, deterministic) -} -func (dst *URLFetchRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_URLFetchRequest.Merge(dst, src) -} -func (m *URLFetchRequest) XXX_Size() int { - return xxx_messageInfo_URLFetchRequest.Size(m) -} -func (m *URLFetchRequest) XXX_DiscardUnknown() { - xxx_messageInfo_URLFetchRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_URLFetchRequest proto.InternalMessageInfo - -const Default_URLFetchRequest_FollowRedirects bool = true -const Default_URLFetchRequest_MustValidateServerCertificate bool = true - -func (m *URLFetchRequest) GetMethod() URLFetchRequest_RequestMethod { - if m != nil && m.Method != nil { - return *m.Method - } - return URLFetchRequest_GET -} - -func (m *URLFetchRequest) GetUrl() string { - if m != nil && m.Url != nil { - return *m.Url - } - return "" -} - -func (m *URLFetchRequest) GetHeader() []*URLFetchRequest_Header { - if m != nil { - return m.Header - } - return nil -} - -func (m *URLFetchRequest) GetPayload() []byte { - if m != nil { - return m.Payload - } - return nil -} - -func (m *URLFetchRequest) GetFollowRedirects() bool { - if m != nil && m.FollowRedirects != nil { - return *m.FollowRedirects - } - return Default_URLFetchRequest_FollowRedirects -} - -func (m *URLFetchRequest) GetDeadline() float64 { - if m != nil && m.Deadline != nil { - return *m.Deadline - } - return 0 -} - -func (m *URLFetchRequest) GetMustValidateServerCertificate() bool { - if m != nil && m.MustValidateServerCertificate != nil { - return *m.MustValidateServerCertificate - } - return Default_URLFetchRequest_MustValidateServerCertificate -} - -type URLFetchRequest_Header struct { - Key *string `protobuf:"bytes,4,req,name=Key" json:"Key,omitempty"` - Value *string `protobuf:"bytes,5,req,name=Value" json:"Value,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *URLFetchRequest_Header) Reset() { *m = URLFetchRequest_Header{} } -func (m *URLFetchRequest_Header) String() string { return proto.CompactTextString(m) } -func (*URLFetchRequest_Header) ProtoMessage() {} -func (*URLFetchRequest_Header) Descriptor() ([]byte, []int) { - return fileDescriptor_urlfetch_service_b245a7065f33bced, []int{1, 0} -} -func (m *URLFetchRequest_Header) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_URLFetchRequest_Header.Unmarshal(m, b) -} -func (m *URLFetchRequest_Header) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_URLFetchRequest_Header.Marshal(b, m, deterministic) -} -func (dst *URLFetchRequest_Header) XXX_Merge(src proto.Message) { - xxx_messageInfo_URLFetchRequest_Header.Merge(dst, src) -} -func (m *URLFetchRequest_Header) XXX_Size() int { - return xxx_messageInfo_URLFetchRequest_Header.Size(m) -} -func (m *URLFetchRequest_Header) XXX_DiscardUnknown() { - xxx_messageInfo_URLFetchRequest_Header.DiscardUnknown(m) -} - -var xxx_messageInfo_URLFetchRequest_Header proto.InternalMessageInfo - -func (m *URLFetchRequest_Header) GetKey() string { - if m != nil && m.Key != nil { - return *m.Key - } - return "" -} - -func (m *URLFetchRequest_Header) GetValue() string { - if m != nil && m.Value != nil { - return *m.Value - } - return "" -} - -type URLFetchResponse struct { - Content []byte `protobuf:"bytes,1,opt,name=Content" json:"Content,omitempty"` - StatusCode *int32 `protobuf:"varint,2,req,name=StatusCode" json:"StatusCode,omitempty"` - Header []*URLFetchResponse_Header `protobuf:"group,3,rep,name=Header,json=header" json:"header,omitempty"` - ContentWasTruncated *bool `protobuf:"varint,6,opt,name=ContentWasTruncated,def=0" json:"ContentWasTruncated,omitempty"` - ExternalBytesSent *int64 `protobuf:"varint,7,opt,name=ExternalBytesSent" json:"ExternalBytesSent,omitempty"` - ExternalBytesReceived *int64 `protobuf:"varint,8,opt,name=ExternalBytesReceived" json:"ExternalBytesReceived,omitempty"` - FinalUrl *string `protobuf:"bytes,9,opt,name=FinalUrl" json:"FinalUrl,omitempty"` - ApiCpuMilliseconds *int64 `protobuf:"varint,10,opt,name=ApiCpuMilliseconds,def=0" json:"ApiCpuMilliseconds,omitempty"` - ApiBytesSent *int64 `protobuf:"varint,11,opt,name=ApiBytesSent,def=0" json:"ApiBytesSent,omitempty"` - ApiBytesReceived *int64 `protobuf:"varint,12,opt,name=ApiBytesReceived,def=0" json:"ApiBytesReceived,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *URLFetchResponse) Reset() { *m = URLFetchResponse{} } -func (m *URLFetchResponse) String() string { return proto.CompactTextString(m) } -func (*URLFetchResponse) ProtoMessage() {} -func (*URLFetchResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_urlfetch_service_b245a7065f33bced, []int{2} -} -func (m *URLFetchResponse) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_URLFetchResponse.Unmarshal(m, b) -} -func (m *URLFetchResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_URLFetchResponse.Marshal(b, m, deterministic) -} -func (dst *URLFetchResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_URLFetchResponse.Merge(dst, src) -} -func (m *URLFetchResponse) XXX_Size() int { - return xxx_messageInfo_URLFetchResponse.Size(m) -} -func (m *URLFetchResponse) XXX_DiscardUnknown() { - xxx_messageInfo_URLFetchResponse.DiscardUnknown(m) -} - -var xxx_messageInfo_URLFetchResponse proto.InternalMessageInfo - -const Default_URLFetchResponse_ContentWasTruncated bool = false -const Default_URLFetchResponse_ApiCpuMilliseconds int64 = 0 -const Default_URLFetchResponse_ApiBytesSent int64 = 0 -const Default_URLFetchResponse_ApiBytesReceived int64 = 0 - -func (m *URLFetchResponse) GetContent() []byte { - if m != nil { - return m.Content - } - return nil -} - -func (m *URLFetchResponse) GetStatusCode() int32 { - if m != nil && m.StatusCode != nil { - return *m.StatusCode - } - return 0 -} - -func (m *URLFetchResponse) GetHeader() []*URLFetchResponse_Header { - if m != nil { - return m.Header - } - return nil -} - -func (m *URLFetchResponse) GetContentWasTruncated() bool { - if m != nil && m.ContentWasTruncated != nil { - return *m.ContentWasTruncated - } - return Default_URLFetchResponse_ContentWasTruncated -} - -func (m *URLFetchResponse) GetExternalBytesSent() int64 { - if m != nil && m.ExternalBytesSent != nil { - return *m.ExternalBytesSent - } - return 0 -} - -func (m *URLFetchResponse) GetExternalBytesReceived() int64 { - if m != nil && m.ExternalBytesReceived != nil { - return *m.ExternalBytesReceived - } - return 0 -} - -func (m *URLFetchResponse) GetFinalUrl() string { - if m != nil && m.FinalUrl != nil { - return *m.FinalUrl - } - return "" -} - -func (m *URLFetchResponse) GetApiCpuMilliseconds() int64 { - if m != nil && m.ApiCpuMilliseconds != nil { - return *m.ApiCpuMilliseconds - } - return Default_URLFetchResponse_ApiCpuMilliseconds -} - -func (m *URLFetchResponse) GetApiBytesSent() int64 { - if m != nil && m.ApiBytesSent != nil { - return *m.ApiBytesSent - } - return Default_URLFetchResponse_ApiBytesSent -} - -func (m *URLFetchResponse) GetApiBytesReceived() int64 { - if m != nil && m.ApiBytesReceived != nil { - return *m.ApiBytesReceived - } - return Default_URLFetchResponse_ApiBytesReceived -} - -type URLFetchResponse_Header struct { - Key *string `protobuf:"bytes,4,req,name=Key" json:"Key,omitempty"` - Value *string `protobuf:"bytes,5,req,name=Value" json:"Value,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *URLFetchResponse_Header) Reset() { *m = URLFetchResponse_Header{} } -func (m *URLFetchResponse_Header) String() string { return proto.CompactTextString(m) } -func (*URLFetchResponse_Header) ProtoMessage() {} -func (*URLFetchResponse_Header) Descriptor() ([]byte, []int) { - return fileDescriptor_urlfetch_service_b245a7065f33bced, []int{2, 0} -} -func (m *URLFetchResponse_Header) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_URLFetchResponse_Header.Unmarshal(m, b) -} -func (m *URLFetchResponse_Header) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_URLFetchResponse_Header.Marshal(b, m, deterministic) -} -func (dst *URLFetchResponse_Header) XXX_Merge(src proto.Message) { - xxx_messageInfo_URLFetchResponse_Header.Merge(dst, src) -} -func (m *URLFetchResponse_Header) XXX_Size() int { - return xxx_messageInfo_URLFetchResponse_Header.Size(m) -} -func (m *URLFetchResponse_Header) XXX_DiscardUnknown() { - xxx_messageInfo_URLFetchResponse_Header.DiscardUnknown(m) -} - -var xxx_messageInfo_URLFetchResponse_Header proto.InternalMessageInfo - -func (m *URLFetchResponse_Header) GetKey() string { - if m != nil && m.Key != nil { - return *m.Key - } - return "" -} - -func (m *URLFetchResponse_Header) GetValue() string { - if m != nil && m.Value != nil { - return *m.Value - } - return "" -} - -func init() { - proto.RegisterType((*URLFetchServiceError)(nil), "appengine.URLFetchServiceError") - proto.RegisterType((*URLFetchRequest)(nil), "appengine.URLFetchRequest") - proto.RegisterType((*URLFetchRequest_Header)(nil), "appengine.URLFetchRequest.Header") - proto.RegisterType((*URLFetchResponse)(nil), "appengine.URLFetchResponse") - proto.RegisterType((*URLFetchResponse_Header)(nil), "appengine.URLFetchResponse.Header") -} - -func init() { - proto.RegisterFile("google.golang.org/appengine/internal/urlfetch/urlfetch_service.proto", fileDescriptor_urlfetch_service_b245a7065f33bced) -} - -var fileDescriptor_urlfetch_service_b245a7065f33bced = []byte{ - // 770 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x54, 0xdd, 0x6e, 0xe3, 0x54, - 0x10, 0xc6, 0x76, 0x7e, 0xa7, 0x5d, 0x7a, 0x76, 0xb6, 0x45, 0x66, 0xb5, 0xa0, 0x10, 0x09, 0x29, - 0x17, 0x90, 0x2e, 0x2b, 0x24, 0x44, 0xaf, 0x70, 0xed, 0x93, 0xad, 0xa9, 0x63, 0x47, 0xc7, 0x4e, - 0x61, 0xb9, 0xb1, 0xac, 0x78, 0x9a, 0x5a, 0xb2, 0xec, 0x60, 0x9f, 0x2c, 0xf4, 0x35, 0x78, 0x0d, - 0xde, 0x87, 0xa7, 0xe1, 0x02, 0x9d, 0xc4, 0xc9, 0x6e, 0xbb, 0xd1, 0x4a, 0x5c, 0x65, 0xe6, 0x9b, - 0xef, 0xcc, 0x99, 0x7c, 0xdf, 0xf8, 0x80, 0xb3, 0x2c, 0xcb, 0x65, 0x4e, 0xe3, 0x65, 0x99, 0x27, - 0xc5, 0x72, 0x5c, 0x56, 0xcb, 0xf3, 0x64, 0xb5, 0xa2, 0x62, 0x99, 0x15, 0x74, 0x9e, 0x15, 0x92, - 0xaa, 0x22, 0xc9, 0xcf, 0xd7, 0x55, 0x7e, 0x4b, 0x72, 0x71, 0xb7, 0x0f, 0xe2, 0x9a, 0xaa, 0xb7, - 0xd9, 0x82, 0xc6, 0xab, 0xaa, 0x94, 0x25, 0xf6, 0xf7, 0x67, 0x86, 0x7f, 0xeb, 0x70, 0x3a, 0x17, - 0xde, 0x44, 0xb1, 0xc2, 0x2d, 0x89, 0x57, 0x55, 0x59, 0x0d, 0xff, 0xd2, 0xa1, 0xbf, 0x89, 0xec, - 0x32, 0x25, 0xec, 0x80, 0x1e, 0x5c, 0xb3, 0x4f, 0xf0, 0x04, 0x8e, 0x5c, 0xff, 0xc6, 0xf2, 0x5c, - 0x27, 0x9e, 0x0b, 0x8f, 0x69, 0x0a, 0x98, 0xf0, 0xc8, 0xbe, 0x8a, 0xb9, 0x10, 0x81, 0x60, 0x3a, - 0x9e, 0xc1, 0xd3, 0xb9, 0x1f, 0xce, 0xb8, 0xed, 0x4e, 0x5c, 0xee, 0x34, 0xb0, 0x81, 0x9f, 0x01, - 0x0a, 0x1e, 0xce, 0x02, 0x3f, 0xe4, 0x71, 0x14, 0x04, 0xb1, 0x67, 0x89, 0xd7, 0x9c, 0xb5, 0x14, - 0xdd, 0xe1, 0x96, 0xe3, 0xb9, 0x3e, 0x8f, 0xf9, 0xaf, 0x36, 0xe7, 0x0e, 0x77, 0x58, 0x1b, 0x3f, - 0x87, 0xb3, 0x30, 0xf4, 0x62, 0x9b, 0x8b, 0xc8, 0x9d, 0xb8, 0xb6, 0x15, 0xf1, 0xa6, 0x53, 0x07, - 0x9f, 0x40, 0xdf, 0xf1, 0xc3, 0x26, 0xed, 0x22, 0x40, 0xc7, 0xf6, 0x82, 0x90, 0x3b, 0xac, 0x87, - 0x2f, 0xc0, 0x74, 0xfd, 0x88, 0x0b, 0xdf, 0xf2, 0xe2, 0x48, 0x58, 0x7e, 0xe8, 0x72, 0x3f, 0x6a, - 0x98, 0x7d, 0x35, 0x82, 0xba, 0x79, 0x6a, 0xf9, 0x6f, 0x62, 0xc1, 0x1d, 0x57, 0x70, 0x3b, 0x0a, - 0x19, 0xe0, 0x33, 0x38, 0x99, 0x5a, 0xde, 0x24, 0x10, 0x53, 0xee, 0xc4, 0x82, 0xcf, 0xbc, 0x37, - 0xec, 0x08, 0x4f, 0x81, 0xd9, 0x81, 0xef, 0x73, 0x3b, 0x72, 0x03, 0xbf, 0x69, 0x71, 0x3c, 0xfc, - 0xc7, 0x80, 0x93, 0x9d, 0x5a, 0x82, 0x7e, 0x5f, 0x53, 0x2d, 0xf1, 0x27, 0xe8, 0x4c, 0x49, 0xde, - 0x95, 0xa9, 0xa9, 0x0d, 0xf4, 0xd1, 0xa7, 0xaf, 0x46, 0xe3, 0xbd, 0xba, 0xe3, 0x47, 0xdc, 0x71, - 0xf3, 0xbb, 0xe5, 0x8b, 0xe6, 0x1c, 0x32, 0x30, 0xe6, 0x55, 0x6e, 0xea, 0x03, 0x7d, 0xd4, 0x17, - 0x2a, 0xc4, 0x1f, 0xa1, 0x73, 0x47, 0x49, 0x4a, 0x95, 0x69, 0x0c, 0x8c, 0x11, 0xbc, 0xfa, 0xea, - 0x23, 0x3d, 0xaf, 0x36, 0x44, 0xd1, 0x1c, 0xc0, 0x17, 0xd0, 0x9d, 0x25, 0xf7, 0x79, 0x99, 0xa4, - 0x66, 0x67, 0xa0, 0x8d, 0x8e, 0x2f, 0xf5, 0x9e, 0x26, 0x76, 0x10, 0x8e, 0xe1, 0x64, 0x52, 0xe6, - 0x79, 0xf9, 0x87, 0xa0, 0x34, 0xab, 0x68, 0x21, 0x6b, 0xb3, 0x3b, 0xd0, 0x46, 0xbd, 0x8b, 0x96, - 0xac, 0xd6, 0x24, 0x1e, 0x17, 0xf1, 0x39, 0xf4, 0x1c, 0x4a, 0xd2, 0x3c, 0x2b, 0xc8, 0xec, 0x0d, - 0xb4, 0x91, 0x26, 0xf6, 0x39, 0xfe, 0x0c, 0x5f, 0x4c, 0xd7, 0xb5, 0xbc, 0x49, 0xf2, 0x2c, 0x4d, - 0x24, 0xa9, 0xed, 0xa1, 0xca, 0xa6, 0x4a, 0x66, 0xb7, 0xd9, 0x22, 0x91, 0x64, 0xf6, 0xdf, 0xeb, - 0xfc, 0x71, 0xea, 0xf3, 0x97, 0xd0, 0xd9, 0xfe, 0x0f, 0x25, 0xc6, 0x35, 0xdd, 0x9b, 0xad, 0xad, - 0x18, 0xd7, 0x74, 0x8f, 0xa7, 0xd0, 0xbe, 0x49, 0xf2, 0x35, 0x99, 0xed, 0x0d, 0xb6, 0x4d, 0x86, - 0x1e, 0x3c, 0x79, 0xa0, 0x26, 0x76, 0xc1, 0x78, 0xcd, 0x23, 0xa6, 0x61, 0x0f, 0x5a, 0xb3, 0x20, - 0x8c, 0x98, 0xae, 0xa2, 0x2b, 0x6e, 0x39, 0xcc, 0x50, 0xc5, 0xd9, 0x3c, 0x62, 0x2d, 0xb5, 0x2e, - 0x0e, 0xf7, 0x78, 0xc4, 0x59, 0x1b, 0xfb, 0xd0, 0x9e, 0x59, 0x91, 0x7d, 0xc5, 0x3a, 0xc3, 0x7f, - 0x0d, 0x60, 0xef, 0x84, 0xad, 0x57, 0x65, 0x51, 0x13, 0x9a, 0xd0, 0xb5, 0xcb, 0x42, 0x52, 0x21, - 0x4d, 0x4d, 0x49, 0x29, 0x76, 0x29, 0x7e, 0x09, 0x10, 0xca, 0x44, 0xae, 0x6b, 0xf5, 0x71, 0x6c, - 0x8c, 0x6b, 0x8b, 0xf7, 0x10, 0xbc, 0x78, 0xe4, 0xdf, 0xf0, 0xa0, 0x7f, 0xdb, 0x6b, 0x1e, 0x1b, - 0xf8, 0x03, 0x3c, 0x6b, 0xae, 0xf9, 0x25, 0xa9, 0xa3, 0x6a, 0x5d, 0x28, 0x81, 0xb6, 0x66, 0xf6, - 0x2e, 0xda, 0xb7, 0x49, 0x5e, 0x93, 0x38, 0xc4, 0xc0, 0x6f, 0xe0, 0x29, 0xff, 0x73, 0xfb, 0x02, - 0x5c, 0xde, 0x4b, 0xaa, 0x43, 0x35, 0xb8, 0x72, 0xd7, 0x10, 0x1f, 0x16, 0xf0, 0x7b, 0x38, 0x7b, - 0x00, 0x0a, 0x5a, 0x50, 0xf6, 0x96, 0xd2, 0x8d, 0xcd, 0x86, 0x38, 0x5c, 0x54, 0xfb, 0x30, 0xc9, - 0x8a, 0x24, 0x57, 0xfb, 0xaa, 0xec, 0xed, 0x8b, 0x7d, 0x8e, 0xdf, 0x01, 0x5a, 0xab, 0xcc, 0x5e, - 0xad, 0xa7, 0x59, 0x9e, 0x67, 0x35, 0x2d, 0xca, 0x22, 0xad, 0x4d, 0x50, 0xed, 0x2e, 0xb4, 0x97, - 0xe2, 0x40, 0x11, 0xbf, 0x86, 0x63, 0x6b, 0x95, 0xbd, 0x9b, 0xf6, 0x68, 0x47, 0x7e, 0x00, 0xe3, - 0xb7, 0xc0, 0x76, 0xf9, 0x7e, 0xcc, 0xe3, 0x1d, 0xf5, 0x83, 0xd2, 0xff, 0x5f, 0xa6, 0x4b, 0xf8, - 0xad, 0xb7, 0x7b, 0x2a, 0xff, 0x0b, 0x00, 0x00, 0xff, 0xff, 0x1d, 0x9f, 0x6d, 0x24, 0x63, 0x05, - 0x00, 0x00, -} diff --git a/vendor/google.golang.org/appengine/internal/urlfetch/urlfetch_service.proto b/vendor/google.golang.org/appengine/internal/urlfetch/urlfetch_service.proto deleted file mode 100644 index f695edf6a..000000000 --- a/vendor/google.golang.org/appengine/internal/urlfetch/urlfetch_service.proto +++ /dev/null @@ -1,64 +0,0 @@ -syntax = "proto2"; -option go_package = "urlfetch"; - -package appengine; - -message URLFetchServiceError { - enum ErrorCode { - OK = 0; - INVALID_URL = 1; - FETCH_ERROR = 2; - UNSPECIFIED_ERROR = 3; - RESPONSE_TOO_LARGE = 4; - DEADLINE_EXCEEDED = 5; - SSL_CERTIFICATE_ERROR = 6; - DNS_ERROR = 7; - CLOSED = 8; - INTERNAL_TRANSIENT_ERROR = 9; - TOO_MANY_REDIRECTS = 10; - MALFORMED_REPLY = 11; - CONNECTION_ERROR = 12; - } -} - -message URLFetchRequest { - enum RequestMethod { - GET = 1; - POST = 2; - HEAD = 3; - PUT = 4; - DELETE = 5; - PATCH = 6; - } - required RequestMethod Method = 1; - required string Url = 2; - repeated group Header = 3 { - required string Key = 4; - required string Value = 5; - } - optional bytes Payload = 6 [ctype=CORD]; - - optional bool FollowRedirects = 7 [default=true]; - - optional double Deadline = 8; - - optional bool MustValidateServerCertificate = 9 [default=true]; -} - -message URLFetchResponse { - optional bytes Content = 1; - required int32 StatusCode = 2; - repeated group Header = 3 { - required string Key = 4; - required string Value = 5; - } - optional bool ContentWasTruncated = 6 [default=false]; - optional int64 ExternalBytesSent = 7; - optional int64 ExternalBytesReceived = 8; - - optional string FinalUrl = 9; - - optional int64 ApiCpuMilliseconds = 10 [default=0]; - optional int64 ApiBytesSent = 11 [default=0]; - optional int64 ApiBytesReceived = 12 [default=0]; -} diff --git a/vendor/google.golang.org/appengine/urlfetch/urlfetch.go b/vendor/google.golang.org/appengine/urlfetch/urlfetch.go deleted file mode 100644 index 6c0d72418..000000000 --- a/vendor/google.golang.org/appengine/urlfetch/urlfetch.go +++ /dev/null @@ -1,209 +0,0 @@ -// Copyright 2011 Google Inc. All rights reserved. -// Use of this source code is governed by the Apache 2.0 -// license that can be found in the LICENSE file. - -// Package urlfetch provides an http.RoundTripper implementation -// for fetching URLs via App Engine's urlfetch service. -package urlfetch // import "google.golang.org/appengine/urlfetch" - -import ( - "context" - "errors" - "fmt" - "io" - "io/ioutil" - "net/http" - "net/url" - "strconv" - "strings" - "time" - - "github.com/golang/protobuf/proto" - - "google.golang.org/appengine/internal" - pb "google.golang.org/appengine/internal/urlfetch" -) - -// Transport is an implementation of http.RoundTripper for -// App Engine. Users should generally create an http.Client using -// this transport and use the Client rather than using this transport -// directly. -type Transport struct { - Context context.Context - - // Controls whether the application checks the validity of SSL certificates - // over HTTPS connections. A value of false (the default) instructs the - // application to send a request to the server only if the certificate is - // valid and signed by a trusted certificate authority (CA), and also - // includes a hostname that matches the certificate. A value of true - // instructs the application to perform no certificate validation. - AllowInvalidServerCertificate bool -} - -// Verify statically that *Transport implements http.RoundTripper. -var _ http.RoundTripper = (*Transport)(nil) - -// Client returns an *http.Client using a default urlfetch Transport. This -// client will check the validity of SSL certificates. -// -// Any deadline of the provided context will be used for requests through this client. -// If the client does not have a deadline, then an App Engine default of 60 second is used. -func Client(ctx context.Context) *http.Client { - return &http.Client{ - Transport: &Transport{ - Context: ctx, - }, - } -} - -type bodyReader struct { - content []byte - truncated bool - closed bool -} - -// ErrTruncatedBody is the error returned after the final Read() from a -// response's Body if the body has been truncated by App Engine's proxy. -var ErrTruncatedBody = errors.New("urlfetch: truncated body") - -func statusCodeToText(code int) string { - if t := http.StatusText(code); t != "" { - return t - } - return strconv.Itoa(code) -} - -func (br *bodyReader) Read(p []byte) (n int, err error) { - if br.closed { - if br.truncated { - return 0, ErrTruncatedBody - } - return 0, io.EOF - } - n = copy(p, br.content) - if n > 0 { - br.content = br.content[n:] - return - } - if br.truncated { - br.closed = true - return 0, ErrTruncatedBody - } - return 0, io.EOF -} - -func (br *bodyReader) Close() error { - br.closed = true - br.content = nil - return nil -} - -// A map of the URL Fetch-accepted methods that take a request body. -var methodAcceptsRequestBody = map[string]bool{ - "POST": true, - "PUT": true, - "PATCH": true, -} - -// urlString returns a valid string given a URL. This function is necessary because -// the String method of URL doesn't correctly handle URLs with non-empty Opaque values. -// See http://code.google.com/p/go/issues/detail?id=4860. -func urlString(u *url.URL) string { - if u.Opaque == "" || strings.HasPrefix(u.Opaque, "//") { - return u.String() - } - aux := *u - aux.Opaque = "//" + aux.Host + aux.Opaque - return aux.String() -} - -// RoundTrip issues a single HTTP request and returns its response. Per the -// http.RoundTripper interface, RoundTrip only returns an error if there -// was an unsupported request or the URL Fetch proxy fails. -// Note that HTTP response codes such as 5xx, 403, 404, etc are not -// errors as far as the transport is concerned and will be returned -// with err set to nil. -func (t *Transport) RoundTrip(req *http.Request) (res *http.Response, err error) { - methNum, ok := pb.URLFetchRequest_RequestMethod_value[req.Method] - if !ok { - return nil, fmt.Errorf("urlfetch: unsupported HTTP method %q", req.Method) - } - - method := pb.URLFetchRequest_RequestMethod(methNum) - - freq := &pb.URLFetchRequest{ - Method: &method, - Url: proto.String(urlString(req.URL)), - FollowRedirects: proto.Bool(false), // http.Client's responsibility - MustValidateServerCertificate: proto.Bool(!t.AllowInvalidServerCertificate), - } - if deadline, ok := t.Context.Deadline(); ok { - freq.Deadline = proto.Float64(deadline.Sub(time.Now()).Seconds()) - } - - for k, vals := range req.Header { - for _, val := range vals { - freq.Header = append(freq.Header, &pb.URLFetchRequest_Header{ - Key: proto.String(k), - Value: proto.String(val), - }) - } - } - if methodAcceptsRequestBody[req.Method] && req.Body != nil { - // Avoid a []byte copy if req.Body has a Bytes method. - switch b := req.Body.(type) { - case interface { - Bytes() []byte - }: - freq.Payload = b.Bytes() - default: - freq.Payload, err = ioutil.ReadAll(req.Body) - if err != nil { - return nil, err - } - } - } - - fres := &pb.URLFetchResponse{} - if err := internal.Call(t.Context, "urlfetch", "Fetch", freq, fres); err != nil { - return nil, err - } - - res = &http.Response{} - res.StatusCode = int(*fres.StatusCode) - res.Status = fmt.Sprintf("%d %s", res.StatusCode, statusCodeToText(res.StatusCode)) - res.Header = make(http.Header) - res.Request = req - - // Faked: - res.ProtoMajor = 1 - res.ProtoMinor = 1 - res.Proto = "HTTP/1.1" - res.Close = true - - for _, h := range fres.Header { - hkey := http.CanonicalHeaderKey(*h.Key) - hval := *h.Value - if hkey == "Content-Length" { - // Will get filled in below for all but HEAD requests. - if req.Method == "HEAD" { - res.ContentLength, _ = strconv.ParseInt(hval, 10, 64) - } - continue - } - res.Header.Add(hkey, hval) - } - - if req.Method != "HEAD" { - res.ContentLength = int64(len(fres.Content)) - } - - truncated := fres.GetContentWasTruncated() - res.Body = &bodyReader{content: fres.Content, truncated: truncated} - return -} - -func init() { - internal.RegisterErrorCodeMap("urlfetch", pb.URLFetchServiceError_ErrorCode_name) - internal.RegisterTimeoutErrorCode("urlfetch", int32(pb.URLFetchServiceError_DEADLINE_EXCEEDED)) -} diff --git a/vendor/google.golang.org/genproto/LICENSE b/vendor/google.golang.org/genproto/LICENSE deleted file mode 100644 index d64569567..000000000 --- a/vendor/google.golang.org/genproto/LICENSE +++ /dev/null @@ -1,202 +0,0 @@ - - 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/google.golang.org/genproto/googleapis/api/annotations/client.pb.go b/vendor/google.golang.org/genproto/googleapis/api/annotations/client.pb.go index d5dccb933..10f35d10e 100644 --- a/vendor/google.golang.org/genproto/googleapis/api/annotations/client.pb.go +++ b/vendor/google.golang.org/genproto/googleapis/api/annotations/client.pb.go @@ -409,6 +409,9 @@ type Publishing struct { // Optional link to proto reference documentation. Example: // https://cloud.google.com/pubsub/lite/docs/reference/rpc ProtoReferenceDocumentationUri string `protobuf:"bytes,110,opt,name=proto_reference_documentation_uri,json=protoReferenceDocumentationUri,proto3" json:"proto_reference_documentation_uri,omitempty"` + // Optional link to REST reference documentation. Example: + // https://cloud.google.com/pubsub/lite/docs/reference/rest + RestReferenceDocumentationUri string `protobuf:"bytes,111,opt,name=rest_reference_documentation_uri,json=restReferenceDocumentationUri,proto3" json:"rest_reference_documentation_uri,omitempty"` } func (x *Publishing) Reset() { @@ -513,6 +516,13 @@ func (x *Publishing) GetProtoReferenceDocumentationUri() string { return "" } +func (x *Publishing) GetRestReferenceDocumentationUri() string { + if x != nil { + return x.RestReferenceDocumentationUri + } + return "" +} + // Settings for Java client libraries. type JavaSettings struct { state protoimpl.MessageState @@ -1210,6 +1220,14 @@ var file_google_api_client_proto_extTypes = []protoimpl.ExtensionInfo{ Tag: "bytes,1050,opt,name=oauth_scopes", Filename: "google/api/client.proto", }, + { + ExtendedType: (*descriptorpb.ServiceOptions)(nil), + ExtensionType: (*string)(nil), + Field: 525000001, + Name: "google.api.api_version", + Tag: "bytes,525000001,opt,name=api_version", + Filename: "google/api/client.proto", + }, } // Extension fields to descriptorpb.MethodOptions. @@ -1291,6 +1309,23 @@ var ( // // optional string oauth_scopes = 1050; E_OauthScopes = &file_google_api_client_proto_extTypes[2] + // The API version of this service, which should be sent by version-aware + // clients to the service. This allows services to abide by the schema and + // behavior of the service at the time this API version was deployed. + // The format of the API version must be treated as opaque by clients. + // Services may use a format with an apparent structure, but clients must + // not rely on this to determine components within an API version, or attempt + // to construct other valid API versions. Note that this is for upcoming + // functionality and may not be implemented for all services. + // + // Example: + // + // service Foo { + // option (google.api.api_version) = "v1_20230821_preview"; + // } + // + // optional string api_version = 525000001; + E_ApiVersion = &file_google_api_client_proto_extTypes[3] ) var File_google_api_client_proto protoreflect.FileDescriptor @@ -1355,7 +1390,7 @@ var file_google_api_client_proto_rawDesc = []byte{ 0x5f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x6f, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x0a, 0x67, 0x6f, 0x53, 0x65, 0x74, 0x74, 0x69, - 0x6e, 0x67, 0x73, 0x22, 0xab, 0x04, 0x0a, 0x0a, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x69, + 0x6e, 0x67, 0x73, 0x22, 0xf4, 0x04, 0x0a, 0x0a, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x12, 0x43, 0x0a, 0x0f, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x5f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x53, @@ -1390,154 +1425,163 @@ var file_google_api_client_proto_rawDesc = []byte{ 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x6e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x1e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x72, - 0x69, 0x22, 0x9a, 0x02, 0x0a, 0x0c, 0x4a, 0x61, 0x76, 0x61, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, - 0x67, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x5f, 0x70, 0x61, - 0x63, 0x6b, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6c, 0x69, 0x62, - 0x72, 0x61, 0x72, 0x79, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x5f, 0x0a, 0x13, 0x73, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4a, 0x61, 0x76, 0x61, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, - 0x67, 0x73, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x4e, - 0x61, 0x6d, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x11, 0x73, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x3a, 0x0a, 0x06, - 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, - 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x1a, 0x44, 0x0a, 0x16, 0x53, 0x65, 0x72, 0x76, + 0x69, 0x12, 0x47, 0x0a, 0x20, 0x72, 0x65, 0x73, 0x74, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, + 0x6e, 0x63, 0x65, 0x5f, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x6f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x1d, 0x72, 0x65, 0x73, + 0x74, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, + 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x72, 0x69, 0x22, 0x9a, 0x02, 0x0a, 0x0c, 0x4a, + 0x61, 0x76, 0x61, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x6c, + 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x50, 0x61, 0x63, + 0x6b, 0x61, 0x67, 0x65, 0x12, 0x5f, 0x0a, 0x13, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, + 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4a, + 0x61, 0x76, 0x61, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x49, - 0x0a, 0x0b, 0x43, 0x70, 0x70, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x3a, 0x0a, - 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, - 0x6e, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, - 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0x49, 0x0a, 0x0b, 0x50, 0x68, 0x70, - 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x3a, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, - 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4c, 0x61, 0x6e, 0x67, - 0x75, 0x61, 0x67, 0x65, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x06, 0x63, 0x6f, - 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0x4c, 0x0a, 0x0e, 0x50, 0x79, 0x74, 0x68, 0x6f, 0x6e, 0x53, 0x65, + 0x72, 0x79, 0x52, 0x11, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, + 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x3a, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, + 0x65, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, + 0x6e, 0x1a, 0x44, 0x0a, 0x16, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6c, 0x61, 0x73, + 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, + 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x49, 0x0a, 0x0b, 0x43, 0x70, 0x70, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x3a, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, - 0x6f, 0x6e, 0x22, 0x4a, 0x0a, 0x0c, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, - 0x67, 0x73, 0x12, 0x3a, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x53, 0x65, - 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0xae, - 0x04, 0x0a, 0x0e, 0x44, 0x6f, 0x74, 0x6e, 0x65, 0x74, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, + 0x6f, 0x6e, 0x22, 0x49, 0x0a, 0x0b, 0x50, 0x68, 0x70, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x3a, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x53, 0x65, 0x74, - 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x12, 0x5a, 0x0a, - 0x10, 0x72, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x44, 0x6f, 0x74, 0x6e, 0x65, 0x74, 0x53, 0x65, 0x74, 0x74, 0x69, - 0x6e, 0x67, 0x73, 0x2e, 0x52, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x72, 0x65, 0x6e, 0x61, 0x6d, 0x65, - 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x5d, 0x0a, 0x11, 0x72, 0x65, 0x6e, - 0x61, 0x6d, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x03, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, - 0x69, 0x2e, 0x44, 0x6f, 0x74, 0x6e, 0x65, 0x74, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, - 0x2e, 0x52, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x10, 0x72, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x64, 0x52, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x69, 0x67, 0x6e, 0x6f, - 0x72, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x04, 0x20, - 0x03, 0x28, 0x09, 0x52, 0x10, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x73, 0x12, 0x38, 0x0a, 0x18, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x64, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x65, - 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x16, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x64, 0x4e, - 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x65, 0x73, 0x12, - 0x35, 0x0a, 0x16, 0x68, 0x61, 0x6e, 0x64, 0x77, 0x72, 0x69, 0x74, 0x74, 0x65, 0x6e, 0x5f, 0x73, - 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x15, 0x68, 0x61, 0x6e, 0x64, 0x77, 0x72, 0x69, 0x74, 0x74, 0x65, 0x6e, 0x53, 0x69, 0x67, 0x6e, - 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x1a, 0x42, 0x0a, 0x14, 0x52, 0x65, 0x6e, 0x61, 0x6d, 0x65, - 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, - 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, - 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x43, 0x0a, 0x15, 0x52, 0x65, - 0x6e, 0x61, 0x6d, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, - 0x4a, 0x0a, 0x0c, 0x52, 0x75, 0x62, 0x79, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, + 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0x4c, 0x0a, + 0x0e, 0x50, 0x79, 0x74, 0x68, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x3a, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x53, 0x65, 0x74, 0x74, 0x69, - 0x6e, 0x67, 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0x48, 0x0a, 0x0a, 0x47, - 0x6f, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x3a, 0x0a, 0x06, 0x63, 0x6f, 0x6d, - 0x6d, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4c, 0x61, 0x6e, - 0x67, 0x75, 0x61, 0x67, 0x65, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x06, 0x63, - 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0xc2, 0x03, 0x0a, 0x0e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, - 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6c, 0x65, - 0x63, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x6c, 0x65, - 0x63, 0x74, 0x6f, 0x72, 0x12, 0x49, 0x0a, 0x0c, 0x6c, 0x6f, 0x6e, 0x67, 0x5f, 0x72, 0x75, 0x6e, - 0x6e, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x53, 0x65, - 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x2e, 0x4c, 0x6f, 0x6e, 0x67, 0x52, 0x75, 0x6e, 0x6e, 0x69, - 0x6e, 0x67, 0x52, 0x0b, 0x6c, 0x6f, 0x6e, 0x67, 0x52, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x12, - 0x32, 0x0a, 0x15, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x70, 0x6f, 0x70, 0x75, 0x6c, 0x61, 0x74, 0x65, - 0x64, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x13, - 0x61, 0x75, 0x74, 0x6f, 0x50, 0x6f, 0x70, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x46, 0x69, 0x65, - 0x6c, 0x64, 0x73, 0x1a, 0x94, 0x02, 0x0a, 0x0b, 0x4c, 0x6f, 0x6e, 0x67, 0x52, 0x75, 0x6e, 0x6e, - 0x69, 0x6e, 0x67, 0x12, 0x47, 0x0a, 0x12, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x70, - 0x6f, 0x6c, 0x6c, 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x10, 0x69, 0x6e, 0x69, 0x74, - 0x69, 0x61, 0x6c, 0x50, 0x6f, 0x6c, 0x6c, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x12, 0x32, 0x0a, 0x15, - 0x70, 0x6f, 0x6c, 0x6c, 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, - 0x70, 0x6c, 0x69, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x13, 0x70, 0x6f, 0x6c, - 0x6c, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x69, 0x65, 0x72, - 0x12, 0x3f, 0x0a, 0x0e, 0x6d, 0x61, 0x78, 0x5f, 0x70, 0x6f, 0x6c, 0x6c, 0x5f, 0x64, 0x65, 0x6c, - 0x61, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x6e, 0x67, 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0x4a, 0x0a, 0x0c, 0x4e, + 0x6f, 0x64, 0x65, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x3a, 0x0a, 0x06, 0x63, + 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4c, + 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, + 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0xae, 0x04, 0x0a, 0x0e, 0x44, 0x6f, 0x74, 0x6e, + 0x65, 0x74, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x3a, 0x0a, 0x06, 0x63, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4c, 0x61, + 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x06, + 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x12, 0x5a, 0x0a, 0x10, 0x72, 0x65, 0x6e, 0x61, 0x6d, 0x65, + 0x64, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x44, 0x6f, + 0x74, 0x6e, 0x65, 0x74, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x2e, 0x52, 0x65, 0x6e, + 0x61, 0x6d, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x52, 0x0f, 0x72, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x73, 0x12, 0x5d, 0x0a, 0x11, 0x72, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x64, 0x5f, 0x72, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x44, 0x6f, 0x74, 0x6e, 0x65, + 0x74, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x2e, 0x52, 0x65, 0x6e, 0x61, 0x6d, 0x65, + 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, + 0x10, 0x72, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x69, 0x67, + 0x6e, 0x6f, 0x72, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x12, 0x38, + 0x0a, 0x18, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, + 0x63, 0x65, 0x5f, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x16, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, + 0x65, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x65, 0x73, 0x12, 0x35, 0x0a, 0x16, 0x68, 0x61, 0x6e, 0x64, + 0x77, 0x72, 0x69, 0x74, 0x74, 0x65, 0x6e, 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, + 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x15, 0x68, 0x61, 0x6e, 0x64, 0x77, 0x72, + 0x69, 0x74, 0x74, 0x65, 0x6e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x1a, + 0x42, 0x0a, 0x14, 0x52, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, + 0x02, 0x38, 0x01, 0x1a, 0x43, 0x0a, 0x15, 0x52, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x64, 0x52, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, + 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x4a, 0x0a, 0x0c, 0x52, 0x75, 0x62, 0x79, + 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x3a, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, + 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4c, 0x61, 0x6e, 0x67, + 0x75, 0x61, 0x67, 0x65, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x06, 0x63, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0x48, 0x0a, 0x0a, 0x47, 0x6f, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, + 0x67, 0x73, 0x12, 0x3a, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x53, 0x65, + 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0xc2, + 0x03, 0x0a, 0x0e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, + 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x49, 0x0a, + 0x0c, 0x6c, 0x6f, 0x6e, 0x67, 0x5f, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x2e, + 0x4c, 0x6f, 0x6e, 0x67, 0x52, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x52, 0x0b, 0x6c, 0x6f, 0x6e, + 0x67, 0x52, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x12, 0x32, 0x0a, 0x15, 0x61, 0x75, 0x74, 0x6f, + 0x5f, 0x70, 0x6f, 0x70, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x13, 0x61, 0x75, 0x74, 0x6f, 0x50, 0x6f, 0x70, + 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x1a, 0x94, 0x02, 0x0a, + 0x0b, 0x4c, 0x6f, 0x6e, 0x67, 0x52, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x12, 0x47, 0x0a, 0x12, + 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x70, 0x6f, 0x6c, 0x6c, 0x5f, 0x64, 0x65, 0x6c, + 0x61, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x6d, 0x61, 0x78, 0x50, 0x6f, 0x6c, 0x6c, 0x44, 0x65, 0x6c, 0x61, - 0x79, 0x12, 0x47, 0x0a, 0x12, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x70, 0x6f, 0x6c, 0x6c, 0x5f, - 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x10, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, - 0x6f, 0x6c, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x2a, 0xa3, 0x01, 0x0a, 0x19, 0x43, - 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x4f, 0x72, 0x67, 0x61, - 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2b, 0x0a, 0x27, 0x43, 0x4c, 0x49, 0x45, - 0x4e, 0x54, 0x5f, 0x4c, 0x49, 0x42, 0x52, 0x41, 0x52, 0x59, 0x5f, 0x4f, 0x52, 0x47, 0x41, 0x4e, - 0x49, 0x5a, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, - 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x43, 0x4c, 0x4f, 0x55, 0x44, 0x10, 0x01, - 0x12, 0x07, 0x0a, 0x03, 0x41, 0x44, 0x53, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x50, 0x48, 0x4f, - 0x54, 0x4f, 0x53, 0x10, 0x03, 0x12, 0x0f, 0x0a, 0x0b, 0x53, 0x54, 0x52, 0x45, 0x45, 0x54, 0x5f, - 0x56, 0x49, 0x45, 0x57, 0x10, 0x04, 0x12, 0x0c, 0x0a, 0x08, 0x53, 0x48, 0x4f, 0x50, 0x50, 0x49, - 0x4e, 0x47, 0x10, 0x05, 0x12, 0x07, 0x0a, 0x03, 0x47, 0x45, 0x4f, 0x10, 0x06, 0x12, 0x11, 0x0a, - 0x0d, 0x47, 0x45, 0x4e, 0x45, 0x52, 0x41, 0x54, 0x49, 0x56, 0x45, 0x5f, 0x41, 0x49, 0x10, 0x07, - 0x2a, 0x67, 0x0a, 0x18, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, - 0x79, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2a, 0x0a, 0x26, - 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x4c, 0x49, 0x42, 0x52, 0x41, 0x52, 0x59, 0x5f, 0x44, - 0x45, 0x53, 0x54, 0x49, 0x4e, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, - 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x47, 0x49, 0x54, 0x48, - 0x55, 0x42, 0x10, 0x0a, 0x12, 0x13, 0x0a, 0x0f, 0x50, 0x41, 0x43, 0x4b, 0x41, 0x47, 0x45, 0x5f, - 0x4d, 0x41, 0x4e, 0x41, 0x47, 0x45, 0x52, 0x10, 0x14, 0x3a, 0x4a, 0x0a, 0x10, 0x6d, 0x65, 0x74, - 0x68, 0x6f, 0x64, 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x1e, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x9b, 0x08, - 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x53, 0x69, 0x67, 0x6e, - 0x61, 0x74, 0x75, 0x72, 0x65, 0x3a, 0x43, 0x0a, 0x0c, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, - 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4f, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x99, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, - 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x48, 0x6f, 0x73, 0x74, 0x3a, 0x43, 0x0a, 0x0c, 0x6f, 0x61, - 0x75, 0x74, 0x68, 0x5f, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x73, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x9a, 0x08, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x61, 0x75, 0x74, 0x68, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x73, 0x42, - 0x69, 0x0a, 0x0e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, - 0x69, 0x42, 0x0b, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, - 0x5a, 0x41, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, - 0x6f, 0x72, 0x67, 0x2f, 0x67, 0x65, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, - 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x3b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0xa2, 0x02, 0x04, 0x47, 0x41, 0x50, 0x49, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x33, + 0x69, 0x6f, 0x6e, 0x52, 0x10, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x50, 0x6f, 0x6c, 0x6c, + 0x44, 0x65, 0x6c, 0x61, 0x79, 0x12, 0x32, 0x0a, 0x15, 0x70, 0x6f, 0x6c, 0x6c, 0x5f, 0x64, 0x65, + 0x6c, 0x61, 0x79, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x69, 0x65, 0x72, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x02, 0x52, 0x13, 0x70, 0x6f, 0x6c, 0x6c, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x4d, + 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x69, 0x65, 0x72, 0x12, 0x3f, 0x0a, 0x0e, 0x6d, 0x61, 0x78, + 0x5f, 0x70, 0x6f, 0x6c, 0x6c, 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x6d, 0x61, + 0x78, 0x50, 0x6f, 0x6c, 0x6c, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x12, 0x47, 0x0a, 0x12, 0x74, 0x6f, + 0x74, 0x61, 0x6c, 0x5f, 0x70, 0x6f, 0x6c, 0x6c, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x10, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x6f, 0x6c, 0x6c, 0x54, 0x69, 0x6d, 0x65, + 0x6f, 0x75, 0x74, 0x2a, 0xa3, 0x01, 0x0a, 0x19, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4c, 0x69, + 0x62, 0x72, 0x61, 0x72, 0x79, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x2b, 0x0a, 0x27, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x4c, 0x49, 0x42, 0x52, + 0x41, 0x52, 0x59, 0x5f, 0x4f, 0x52, 0x47, 0x41, 0x4e, 0x49, 0x5a, 0x41, 0x54, 0x49, 0x4f, 0x4e, + 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x09, + 0x0a, 0x05, 0x43, 0x4c, 0x4f, 0x55, 0x44, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x44, 0x53, + 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x50, 0x48, 0x4f, 0x54, 0x4f, 0x53, 0x10, 0x03, 0x12, 0x0f, + 0x0a, 0x0b, 0x53, 0x54, 0x52, 0x45, 0x45, 0x54, 0x5f, 0x56, 0x49, 0x45, 0x57, 0x10, 0x04, 0x12, + 0x0c, 0x0a, 0x08, 0x53, 0x48, 0x4f, 0x50, 0x50, 0x49, 0x4e, 0x47, 0x10, 0x05, 0x12, 0x07, 0x0a, + 0x03, 0x47, 0x45, 0x4f, 0x10, 0x06, 0x12, 0x11, 0x0a, 0x0d, 0x47, 0x45, 0x4e, 0x45, 0x52, 0x41, + 0x54, 0x49, 0x56, 0x45, 0x5f, 0x41, 0x49, 0x10, 0x07, 0x2a, 0x67, 0x0a, 0x18, 0x43, 0x6c, 0x69, + 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2a, 0x0a, 0x26, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, + 0x4c, 0x49, 0x42, 0x52, 0x41, 0x52, 0x59, 0x5f, 0x44, 0x45, 0x53, 0x54, 0x49, 0x4e, 0x41, 0x54, + 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, + 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x47, 0x49, 0x54, 0x48, 0x55, 0x42, 0x10, 0x0a, 0x12, 0x13, 0x0a, + 0x0f, 0x50, 0x41, 0x43, 0x4b, 0x41, 0x47, 0x45, 0x5f, 0x4d, 0x41, 0x4e, 0x41, 0x47, 0x45, 0x52, + 0x10, 0x14, 0x3a, 0x4a, 0x0a, 0x10, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x5f, 0x73, 0x69, 0x67, + 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x1e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x4f, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x9b, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x6d, + 0x65, 0x74, 0x68, 0x6f, 0x64, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x3a, 0x43, + 0x0a, 0x0c, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x12, 0x1f, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, + 0x99, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x48, + 0x6f, 0x73, 0x74, 0x3a, 0x43, 0x0a, 0x0c, 0x6f, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x73, 0x63, 0x6f, + 0x70, 0x65, 0x73, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x9a, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x61, 0x75, + 0x74, 0x68, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x73, 0x3a, 0x44, 0x0a, 0x0b, 0x61, 0x70, 0x69, 0x5f, + 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xc1, 0xba, 0xab, 0xfa, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0a, 0x61, 0x70, 0x69, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x69, + 0x0a, 0x0e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, + 0x42, 0x0b, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, + 0x41, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, + 0x72, 0x67, 0x2f, 0x67, 0x65, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x3b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0xa2, 0x02, 0x04, 0x47, 0x41, 0x50, 0x49, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x33, } var ( @@ -1610,10 +1654,11 @@ var file_google_api_client_proto_depIdxs = []int32{ 20, // 28: google.api.method_signature:extendee -> google.protobuf.MethodOptions 21, // 29: google.api.default_host:extendee -> google.protobuf.ServiceOptions 21, // 30: google.api.oauth_scopes:extendee -> google.protobuf.ServiceOptions - 31, // [31:31] is the sub-list for method output_type - 31, // [31:31] is the sub-list for method input_type - 31, // [31:31] is the sub-list for extension type_name - 28, // [28:31] is the sub-list for extension extendee + 21, // 31: google.api.api_version:extendee -> google.protobuf.ServiceOptions + 32, // [32:32] is the sub-list for method output_type + 32, // [32:32] is the sub-list for method input_type + 32, // [32:32] is the sub-list for extension type_name + 28, // [28:32] is the sub-list for extension extendee 0, // [0:28] is the sub-list for field type_name } @@ -1787,7 +1832,7 @@ func file_google_api_client_proto_init() { RawDescriptor: file_google_api_client_proto_rawDesc, NumEnums: 2, NumMessages: 16, - NumExtensions: 3, + NumExtensions: 4, NumServices: 0, }, GoTypes: file_google_api_client_proto_goTypes, diff --git a/vendor/google.golang.org/genproto/googleapis/api/annotations/field_behavior.pb.go b/vendor/google.golang.org/genproto/googleapis/api/annotations/field_behavior.pb.go index 6ce01ac9a..312d7eb49 100644 --- a/vendor/google.golang.org/genproto/googleapis/api/annotations/field_behavior.pb.go +++ b/vendor/google.golang.org/genproto/googleapis/api/annotations/field_behavior.pb.go @@ -15,7 +15,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.26.0 -// protoc v3.21.12 +// protoc v4.24.4 // source: google/api/field_behavior.proto package annotations @@ -195,21 +195,21 @@ var file_google_api_field_behavior_proto_rawDesc = []byte{ 0x0e, 0x55, 0x4e, 0x4f, 0x52, 0x44, 0x45, 0x52, 0x45, 0x44, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x06, 0x12, 0x15, 0x0a, 0x11, 0x4e, 0x4f, 0x4e, 0x5f, 0x45, 0x4d, 0x50, 0x54, 0x59, 0x5f, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x10, 0x07, 0x12, 0x0e, 0x0a, 0x0a, 0x49, 0x44, 0x45, 0x4e, - 0x54, 0x49, 0x46, 0x49, 0x45, 0x52, 0x10, 0x08, 0x3a, 0x60, 0x0a, 0x0e, 0x66, 0x69, 0x65, 0x6c, + 0x54, 0x49, 0x46, 0x49, 0x45, 0x52, 0x10, 0x08, 0x3a, 0x64, 0x0a, 0x0e, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x12, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x9c, 0x08, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x46, 0x69, - 0x65, 0x6c, 0x64, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x52, 0x0d, 0x66, 0x69, 0x65, - 0x6c, 0x64, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x42, 0x70, 0x0a, 0x0e, 0x63, 0x6f, - 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x42, 0x12, 0x46, 0x69, - 0x65, 0x6c, 0x64, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, - 0x50, 0x01, 0x5a, 0x41, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, - 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x67, 0x65, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, - 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x3b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0xa2, 0x02, 0x04, 0x47, 0x41, 0x50, 0x49, 0x62, 0x06, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x33, + 0x65, 0x6c, 0x64, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x42, 0x02, 0x10, 0x00, 0x52, + 0x0d, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x42, 0x70, + 0x0a, 0x0e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, + 0x42, 0x12, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x50, + 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x41, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, + 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x67, 0x65, 0x6e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x61, 0x70, + 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x3b, 0x61, 0x6e, + 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0xa2, 0x02, 0x04, 0x47, 0x41, 0x50, 0x49, + 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/vendor/google.golang.org/genproto/googleapis/api/annotations/field_info.pb.go b/vendor/google.golang.org/genproto/googleapis/api/annotations/field_info.pb.go index d02e6bbc8..6ff36206d 100644 --- a/vendor/google.golang.org/genproto/googleapis/api/annotations/field_info.pb.go +++ b/vendor/google.golang.org/genproto/googleapis/api/annotations/field_info.pb.go @@ -15,7 +15,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.26.0 -// protoc v3.21.12 +// protoc v4.24.4 // source: google/api/field_info.proto package annotations @@ -56,9 +56,9 @@ const ( FieldInfo_IPV4 FieldInfo_Format = 2 // Internet Protocol v6 value as defined by [RFC // 2460](https://datatracker.ietf.org/doc/html/rfc2460). The value may be - // normalized to entirely lowercase letters, and zero-padded partial and - // empty octets. For example, the value `2001:DB8::` would be normalized to - // `2001:0db8:0:0`. + // normalized to entirely lowercase letters with zeros compressed, following + // [RFC 5952](https://datatracker.ietf.org/doc/html/rfc5952). For example, + // the value `2001:0DB8:0::0` would be normalized to `2001:db8::`. FieldInfo_IPV6 FieldInfo_Format = 3 // An IP address in either v4 or v6 format as described by the individual // values defined herein. See the comments on the IPV4 and IPV6 types for diff --git a/vendor/google.golang.org/genproto/googleapis/api/tidyfix.go b/vendor/google.golang.org/genproto/googleapis/api/tidyfix.go deleted file mode 100644 index 1d3f1b5b7..000000000 --- a/vendor/google.golang.org/genproto/googleapis/api/tidyfix.go +++ /dev/null @@ -1,23 +0,0 @@ -// Copyright 2023 Google LLC -// -// 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. - -// This file, and the {{.RootMod}} import, won't actually become part of -// the resultant binary. -//go:build modhack -// +build modhack - -package api - -// Necessary for safely adding multi-module repo. See: https://github.com/golang/go/wiki/Modules#is-it-possible-to-add-a-module-to-a-multi-module-repository -import _ "google.golang.org/genproto/internal" diff --git a/vendor/google.golang.org/genproto/internal/doc.go b/vendor/google.golang.org/genproto/internal/doc.go deleted file mode 100644 index 90e89b4aa..000000000 --- a/vendor/google.golang.org/genproto/internal/doc.go +++ /dev/null @@ -1,17 +0,0 @@ -// Copyright 2023 Google LLC -// -// 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. - -// This file makes internal an importable go package -// for use with backreferences from submodules. -package internal diff --git a/vendor/google.golang.org/grpc/balancer/balancer.go b/vendor/google.golang.org/grpc/balancer/balancer.go index d79560a2e..f391744f7 100644 --- a/vendor/google.golang.org/grpc/balancer/balancer.go +++ b/vendor/google.golang.org/grpc/balancer/balancer.go @@ -54,13 +54,14 @@ var ( // an init() function), and is not thread-safe. If multiple Balancers are // registered with the same name, the one registered last will take effect. func Register(b Builder) { - if strings.ToLower(b.Name()) != b.Name() { + name := strings.ToLower(b.Name()) + if name != b.Name() { // TODO: Skip the use of strings.ToLower() to index the map after v1.59 // is released to switch to case sensitive balancer registry. Also, // remove this warning and update the docstrings for Register and Get. logger.Warningf("Balancer registered with name %q. grpc-go will be switching to case sensitive balancer registries soon", b.Name()) } - m[strings.ToLower(b.Name())] = b + m[name] = b } // unregisterForTesting deletes the balancer with the given name from the @@ -232,8 +233,8 @@ type BuildOptions struct { // implementations which do not communicate with a remote load balancer // server can ignore this field. Authority string - // ChannelzParentID is the parent ClientConn's channelz ID. - ChannelzParentID *channelz.Identifier + // ChannelzParent is the parent ClientConn's channelz channel. + ChannelzParent channelz.Identifier // CustomUserAgent is the custom user agent set on the parent ClientConn. // The balancer should set the same custom user agent if it creates a // ClientConn. diff --git a/vendor/google.golang.org/grpc/balancer_wrapper.go b/vendor/google.golang.org/grpc/balancer_wrapper.go index b5e30cff0..af39b8a4c 100644 --- a/vendor/google.golang.org/grpc/balancer_wrapper.go +++ b/vendor/google.golang.org/grpc/balancer_wrapper.go @@ -21,7 +21,6 @@ package grpc import ( "context" "fmt" - "strings" "sync" "google.golang.org/grpc/balancer" @@ -66,19 +65,20 @@ type ccBalancerWrapper struct { } // newCCBalancerWrapper creates a new balancer wrapper in idle state. The -// underlying balancer is not created until the switchTo() method is invoked. +// underlying balancer is not created until the updateClientConnState() method +// is invoked. func newCCBalancerWrapper(cc *ClientConn) *ccBalancerWrapper { ctx, cancel := context.WithCancel(cc.ctx) ccb := &ccBalancerWrapper{ cc: cc, opts: balancer.BuildOptions{ - DialCreds: cc.dopts.copts.TransportCredentials, - CredsBundle: cc.dopts.copts.CredsBundle, - Dialer: cc.dopts.copts.Dialer, - Authority: cc.authority, - CustomUserAgent: cc.dopts.copts.UserAgent, - ChannelzParentID: cc.channelzID, - Target: cc.parsedTarget, + DialCreds: cc.dopts.copts.TransportCredentials, + CredsBundle: cc.dopts.copts.CredsBundle, + Dialer: cc.dopts.copts.Dialer, + Authority: cc.authority, + CustomUserAgent: cc.dopts.copts.UserAgent, + ChannelzParent: cc.channelz, + Target: cc.parsedTarget, }, serializer: grpcsync.NewCallbackSerializer(ctx), serializerCancel: cancel, @@ -97,6 +97,11 @@ func (ccb *ccBalancerWrapper) updateClientConnState(ccs *balancer.ClientConnStat if ctx.Err() != nil || ccb.balancer == nil { return } + name := gracefulswitch.ChildName(ccs.BalancerConfig) + if ccb.curBalancerName != name { + ccb.curBalancerName = name + channelz.Infof(logger, ccb.cc.channelz, "Channel switches to new LB policy %q", name) + } err := ccb.balancer.UpdateClientConnState(*ccs) if logger.V(2) && err != nil { logger.Infof("error from balancer.UpdateClientConnState: %v", err) @@ -120,54 +125,6 @@ func (ccb *ccBalancerWrapper) resolverError(err error) { }) } -// switchTo is invoked by grpc to instruct the balancer wrapper to switch to the -// LB policy identified by name. -// -// ClientConn calls newCCBalancerWrapper() at creation time. Upon receipt of the -// first good update from the name resolver, it determines the LB policy to use -// and invokes the switchTo() method. Upon receipt of every subsequent update -// from the name resolver, it invokes this method. -// -// the ccBalancerWrapper keeps track of the current LB policy name, and skips -// the graceful balancer switching process if the name does not change. -func (ccb *ccBalancerWrapper) switchTo(name string) { - ccb.serializer.Schedule(func(ctx context.Context) { - if ctx.Err() != nil || ccb.balancer == nil { - return - } - // TODO: Other languages use case-sensitive balancer registries. We should - // switch as well. See: https://github.com/grpc/grpc-go/issues/5288. - if strings.EqualFold(ccb.curBalancerName, name) { - return - } - ccb.buildLoadBalancingPolicy(name) - }) -} - -// buildLoadBalancingPolicy performs the following: -// - retrieve a balancer builder for the given name. Use the default LB -// policy, pick_first, if no LB policy with name is found in the registry. -// - instruct the gracefulswitch balancer to switch to the above builder. This -// will actually build the new balancer. -// - update the `curBalancerName` field -// -// Must be called from a serializer callback. -func (ccb *ccBalancerWrapper) buildLoadBalancingPolicy(name string) { - builder := balancer.Get(name) - if builder == nil { - channelz.Warningf(logger, ccb.cc.channelzID, "Channel switches to new LB policy %q, since the specified LB policy %q was not registered", PickFirstBalancerName, name) - builder = newPickfirstBuilder() - } else { - channelz.Infof(logger, ccb.cc.channelzID, "Channel switches to new LB policy %q", name) - } - - if err := ccb.balancer.SwitchTo(builder); err != nil { - channelz.Errorf(logger, ccb.cc.channelzID, "Channel failed to build new LB policy %q: %v", name, err) - return - } - ccb.curBalancerName = builder.Name() -} - // close initiates async shutdown of the wrapper. cc.mu must be held when // calling this function. To determine the wrapper has finished shutting down, // the channel should block on ccb.serializer.Done() without cc.mu held. @@ -175,7 +132,7 @@ func (ccb *ccBalancerWrapper) close() { ccb.mu.Lock() ccb.closed = true ccb.mu.Unlock() - channelz.Info(logger, ccb.cc.channelzID, "ccBalancerWrapper: closing") + channelz.Info(logger, ccb.cc.channelz, "ccBalancerWrapper: closing") ccb.serializer.Schedule(func(context.Context) { if ccb.balancer == nil { return @@ -212,7 +169,7 @@ func (ccb *ccBalancerWrapper) NewSubConn(addrs []resolver.Address, opts balancer } ac, err := ccb.cc.newAddrConnLocked(addrs, opts) if err != nil { - channelz.Warningf(logger, ccb.cc.channelzID, "acBalancerWrapper: NewSubConn: failed to newAddrConn: %v", err) + channelz.Warningf(logger, ccb.cc.channelz, "acBalancerWrapper: NewSubConn: failed to newAddrConn: %v", err) return nil, err } acbw := &acBalancerWrapper{ @@ -304,7 +261,7 @@ func (acbw *acBalancerWrapper) updateState(s connectivity.State, err error) { } func (acbw *acBalancerWrapper) String() string { - return fmt.Sprintf("SubConn(id:%d)", acbw.ac.channelzID.Int()) + return fmt.Sprintf("SubConn(id:%d)", acbw.ac.channelz.ID) } func (acbw *acBalancerWrapper) UpdateAddresses(addrs []resolver.Address) { diff --git a/vendor/google.golang.org/grpc/binarylog/grpc_binarylog_v1/binarylog.pb.go b/vendor/google.golang.org/grpc/binarylog/grpc_binarylog_v1/binarylog.pb.go index e9e97d451..856c75dd4 100644 --- a/vendor/google.golang.org/grpc/binarylog/grpc_binarylog_v1/binarylog.pb.go +++ b/vendor/google.golang.org/grpc/binarylog/grpc_binarylog_v1/binarylog.pb.go @@ -18,8 +18,8 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.31.0 -// protoc v4.22.0 +// protoc-gen-go v1.32.0 +// protoc v4.25.2 // source: grpc/binlog/v1/binarylog.proto package grpc_binarylog_v1 diff --git a/vendor/google.golang.org/grpc/clientconn.go b/vendor/google.golang.org/grpc/clientconn.go index f6e815e6b..c7f260711 100644 --- a/vendor/google.golang.org/grpc/clientconn.go +++ b/vendor/google.golang.org/grpc/clientconn.go @@ -67,7 +67,7 @@ var ( errConnDrain = errors.New("grpc: the connection is drained") // errConnClosing indicates that the connection is closing. errConnClosing = errors.New("grpc: the connection is closing") - // errConnIdling indicates the the connection is being closed as the channel + // errConnIdling indicates the connection is being closed as the channel // is moving to an idle mode due to inactivity. errConnIdling = errors.New("grpc: the connection is closing due to channel idleness") // invalidDefaultServiceConfigErrPrefix is used to prefix the json parsing error for the default @@ -101,11 +101,6 @@ const ( defaultReadBufSize = 32 * 1024 ) -// Dial creates a client connection to the given target. -func Dial(target string, opts ...DialOption) (*ClientConn, error) { - return DialContext(context.Background(), target, opts...) -} - type defaultConfigSelector struct { sc *ServiceConfig } @@ -117,13 +112,22 @@ func (dcs *defaultConfigSelector) SelectConfig(rpcInfo iresolver.RPCInfo) (*ires }, nil } -// newClient returns a new client in idle mode. -func newClient(target string, opts ...DialOption) (conn *ClientConn, err error) { +// NewClient creates a new gRPC "channel" for the target URI provided. No I/O +// is performed. Use of the ClientConn for RPCs will automatically cause it to +// connect. Connect may be used to manually create a connection, but for most +// users this is unnecessary. +// +// The target name syntax is defined in +// https://github.com/grpc/grpc/blob/master/doc/naming.md. e.g. to use dns +// resolver, a "dns:///" prefix should be applied to the target. +// +// The DialOptions returned by WithBlock, WithTimeout, and +// WithReturnConnectionError are ignored by this function. +func NewClient(target string, opts ...DialOption) (conn *ClientConn, err error) { cc := &ClientConn{ target: target, conns: make(map[*addrConn]struct{}), dopts: defaultDialOptions(), - czData: new(channelzData), } cc.retryThrottler.Store((*retryThrottler)(nil)) @@ -175,15 +179,15 @@ func newClient(target string, opts ...DialOption) (conn *ClientConn, err error) // Determine the resolver to use. if err := cc.parseTargetAndFindResolver(); err != nil { - channelz.RemoveEntry(cc.channelzID) + channelz.RemoveEntry(cc.channelz.ID) return nil, err } if err = cc.determineAuthority(); err != nil { - channelz.RemoveEntry(cc.channelzID) + channelz.RemoveEntry(cc.channelz.ID) return nil, err } - cc.csMgr = newConnectivityStateManager(cc.ctx, cc.channelzID) + cc.csMgr = newConnectivityStateManager(cc.ctx, cc.channelz) cc.pickerWrapper = newPickerWrapper(cc.dopts.copts.StatsHandlers) cc.initIdleStateLocked() // Safe to call without the lock, since nothing else has a reference to cc. @@ -191,39 +195,32 @@ func newClient(target string, opts ...DialOption) (conn *ClientConn, err error) return cc, nil } -// DialContext creates a client connection to the given target. By default, it's -// a non-blocking dial (the function won't wait for connections to be -// established, and connecting happens in the background). To make it a blocking -// dial, use WithBlock() dial option. -// -// In the non-blocking case, the ctx does not act against the connection. It -// only controls the setup steps. -// -// In the blocking case, ctx can be used to cancel or expire the pending -// connection. Once this function returns, the cancellation and expiration of -// ctx will be noop. Users should call ClientConn.Close to terminate all the -// pending operations after this function returns. +// Dial calls DialContext(context.Background(), target, opts...). +func Dial(target string, opts ...DialOption) (*ClientConn, error) { + return DialContext(context.Background(), target, opts...) +} + +// DialContext calls NewClient and then exits idle mode. If WithBlock(true) is +// used, it calls Connect and WaitForStateChange until either the context +// expires or the state of the ClientConn is Ready. // -// The target name syntax is defined in -// https://github.com/grpc/grpc/blob/master/doc/naming.md. -// e.g. to use dns resolver, a "dns:///" prefix should be applied to the target. +// One subtle difference between NewClient and Dial and DialContext is that the +// former uses "dns" as the default name resolver, while the latter use +// "passthrough" for backward compatibility. This distinction should not matter +// to most users, but could matter to legacy users that specify a custom dialer +// and expect it to receive the target string directly. func DialContext(ctx context.Context, target string, opts ...DialOption) (conn *ClientConn, err error) { - cc, err := newClient(target, opts...) + // At the end of this method, we kick the channel out of idle, rather than + // waiting for the first rpc. + opts = append([]DialOption{withDefaultScheme("passthrough")}, opts...) + cc, err := NewClient(target, opts...) if err != nil { return nil, err } // We start the channel off in idle mode, but kick it out of idle now, - // instead of waiting for the first RPC. Other gRPC implementations do wait - // for the first RPC to kick the channel out of idle. But doing so would be - // a major behavior change for our users who are used to seeing the channel - // active after Dial. - // - // Taking this approach of kicking it out of idle at the end of this method - // allows us to share the code between channel creation and exiting idle - // mode. This will also make it easy for us to switch to starting the - // channel off in idle, i.e. by making newClient exported. - + // instead of waiting for the first RPC. This is the legacy behavior of + // Dial. defer func() { if err != nil { cc.Close() @@ -291,17 +288,17 @@ func DialContext(ctx context.Context, target string, opts ...DialOption) (conn * // addTraceEvent is a helper method to add a trace event on the channel. If the // channel is a nested one, the same event is also added on the parent channel. func (cc *ClientConn) addTraceEvent(msg string) { - ted := &channelz.TraceEventDesc{ + ted := &channelz.TraceEvent{ Desc: fmt.Sprintf("Channel %s", msg), Severity: channelz.CtInfo, } - if cc.dopts.channelzParentID != nil { - ted.Parent = &channelz.TraceEventDesc{ - Desc: fmt.Sprintf("Nested channel(id:%d) %s", cc.channelzID.Int(), msg), + if cc.dopts.channelzParent != nil { + ted.Parent = &channelz.TraceEvent{ + Desc: fmt.Sprintf("Nested channel(id:%d) %s", cc.channelz.ID, msg), Severity: channelz.CtInfo, } } - channelz.AddTraceEvent(logger, cc.channelzID, 0, ted) + channelz.AddTraceEvent(logger, cc.channelz, 0, ted) } type idler ClientConn @@ -418,14 +415,15 @@ func (cc *ClientConn) validateTransportCredentials() error { } // channelzRegistration registers the newly created ClientConn with channelz and -// stores the returned identifier in `cc.channelzID` and `cc.csMgr.channelzID`. -// A channelz trace event is emitted for ClientConn creation. If the newly -// created ClientConn is a nested one, i.e a valid parent ClientConn ID is -// specified via a dial option, the trace event is also added to the parent. +// stores the returned identifier in `cc.channelz`. A channelz trace event is +// emitted for ClientConn creation. If the newly created ClientConn is a nested +// one, i.e a valid parent ClientConn ID is specified via a dial option, the +// trace event is also added to the parent. // // Doesn't grab cc.mu as this method is expected to be called only at Dial time. func (cc *ClientConn) channelzRegistration(target string) { - cc.channelzID = channelz.RegisterChannel(&channelzChannel{cc}, cc.dopts.channelzParentID, target) + parentChannel, _ := cc.dopts.channelzParent.(*channelz.Channel) + cc.channelz = channelz.RegisterChannel(parentChannel, target) cc.addTraceEvent("created") } @@ -492,11 +490,11 @@ func getChainStreamer(interceptors []StreamClientInterceptor, curr int, finalStr } // newConnectivityStateManager creates an connectivityStateManager with -// the specified id. -func newConnectivityStateManager(ctx context.Context, id *channelz.Identifier) *connectivityStateManager { +// the specified channel. +func newConnectivityStateManager(ctx context.Context, channel *channelz.Channel) *connectivityStateManager { return &connectivityStateManager{ - channelzID: id, - pubSub: grpcsync.NewPubSub(ctx), + channelz: channel, + pubSub: grpcsync.NewPubSub(ctx), } } @@ -510,7 +508,7 @@ type connectivityStateManager struct { mu sync.Mutex state connectivity.State notifyChan chan struct{} - channelzID *channelz.Identifier + channelz *channelz.Channel pubSub *grpcsync.PubSub } @@ -527,9 +525,10 @@ func (csm *connectivityStateManager) updateState(state connectivity.State) { return } csm.state = state + csm.channelz.ChannelMetrics.State.Store(&state) csm.pubSub.Publish(state) - channelz.Infof(logger, csm.channelzID, "Channel Connectivity change to %v", state) + channelz.Infof(logger, csm.channelz, "Channel Connectivity change to %v", state) if csm.notifyChan != nil { // There are other goroutines waiting on this channel. close(csm.notifyChan) @@ -583,12 +582,12 @@ type ClientConn struct { cancel context.CancelFunc // Cancelled on close. // The following are initialized at dial time, and are read-only after that. - target string // User's dial target. - parsedTarget resolver.Target // See parseTargetAndFindResolver(). - authority string // See determineAuthority(). - dopts dialOptions // Default and user specified dial options. - channelzID *channelz.Identifier // Channelz identifier for the channel. - resolverBuilder resolver.Builder // See parseTargetAndFindResolver(). + target string // User's dial target. + parsedTarget resolver.Target // See parseTargetAndFindResolver(). + authority string // See determineAuthority(). + dopts dialOptions // Default and user specified dial options. + channelz *channelz.Channel // Channelz object. + resolverBuilder resolver.Builder // See parseTargetAndFindResolver(). idlenessMgr *idle.Manager // The following provide their own synchronization, and therefore don't @@ -596,7 +595,6 @@ type ClientConn struct { csMgr *connectivityStateManager pickerWrapper *pickerWrapper safeConfigSelector iresolver.SafeConfigSelector - czData *channelzData retryThrottler atomic.Value // Updated from service config. // mu protects the following fields. @@ -690,6 +688,7 @@ func (cc *ClientConn) waitForResolvedAddrs(ctx context.Context) error { var emptyServiceConfig *ServiceConfig func init() { + balancer.Register(pickfirstBuilder{}) cfg := parseServiceConfig("{}") if cfg.Err != nil { panic(fmt.Sprintf("impossible error parsing empty service config: %v", cfg.Err)) @@ -707,15 +706,15 @@ func init() { } } -func (cc *ClientConn) maybeApplyDefaultServiceConfig(addrs []resolver.Address) { +func (cc *ClientConn) maybeApplyDefaultServiceConfig() { if cc.sc != nil { - cc.applyServiceConfigAndBalancer(cc.sc, nil, addrs) + cc.applyServiceConfigAndBalancer(cc.sc, nil) return } if cc.dopts.defaultServiceConfig != nil { - cc.applyServiceConfigAndBalancer(cc.dopts.defaultServiceConfig, &defaultConfigSelector{cc.dopts.defaultServiceConfig}, addrs) + cc.applyServiceConfigAndBalancer(cc.dopts.defaultServiceConfig, &defaultConfigSelector{cc.dopts.defaultServiceConfig}) } else { - cc.applyServiceConfigAndBalancer(emptyServiceConfig, &defaultConfigSelector{emptyServiceConfig}, addrs) + cc.applyServiceConfigAndBalancer(emptyServiceConfig, &defaultConfigSelector{emptyServiceConfig}) } } @@ -733,7 +732,7 @@ func (cc *ClientConn) updateResolverStateAndUnlock(s resolver.State, err error) // May need to apply the initial service config in case the resolver // doesn't support service configs, or doesn't provide a service config // with the new addresses. - cc.maybeApplyDefaultServiceConfig(nil) + cc.maybeApplyDefaultServiceConfig() cc.balancerWrapper.resolverError(err) @@ -744,10 +743,10 @@ func (cc *ClientConn) updateResolverStateAndUnlock(s resolver.State, err error) var ret error if cc.dopts.disableServiceConfig { - channelz.Infof(logger, cc.channelzID, "ignoring service config from resolver (%v) and applying the default because service config is disabled", s.ServiceConfig) - cc.maybeApplyDefaultServiceConfig(s.Addresses) + channelz.Infof(logger, cc.channelz, "ignoring service config from resolver (%v) and applying the default because service config is disabled", s.ServiceConfig) + cc.maybeApplyDefaultServiceConfig() } else if s.ServiceConfig == nil { - cc.maybeApplyDefaultServiceConfig(s.Addresses) + cc.maybeApplyDefaultServiceConfig() // TODO: do we need to apply a failing LB policy if there is no // default, per the error handling design? } else { @@ -755,12 +754,12 @@ func (cc *ClientConn) updateResolverStateAndUnlock(s resolver.State, err error) configSelector := iresolver.GetConfigSelector(s) if configSelector != nil { if len(s.ServiceConfig.Config.(*ServiceConfig).Methods) != 0 { - channelz.Infof(logger, cc.channelzID, "method configs in service config will be ignored due to presence of config selector") + channelz.Infof(logger, cc.channelz, "method configs in service config will be ignored due to presence of config selector") } } else { configSelector = &defaultConfigSelector{sc} } - cc.applyServiceConfigAndBalancer(sc, configSelector, s.Addresses) + cc.applyServiceConfigAndBalancer(sc, configSelector) } else { ret = balancer.ErrBadResolverState if cc.sc == nil { @@ -775,7 +774,7 @@ func (cc *ClientConn) updateResolverStateAndUnlock(s resolver.State, err error) var balCfg serviceconfig.LoadBalancingConfig if cc.sc != nil && cc.sc.lbConfig != nil { - balCfg = cc.sc.lbConfig.cfg + balCfg = cc.sc.lbConfig } bw := cc.balancerWrapper cc.mu.Unlock() @@ -834,22 +833,17 @@ func (cc *ClientConn) newAddrConnLocked(addrs []resolver.Address, opts balancer. addrs: copyAddressesWithoutBalancerAttributes(addrs), scopts: opts, dopts: cc.dopts, - czData: new(channelzData), + channelz: channelz.RegisterSubChannel(cc.channelz, ""), resetBackoff: make(chan struct{}), stateChan: make(chan struct{}), } ac.ctx, ac.cancel = context.WithCancel(cc.ctx) - var err error - ac.channelzID, err = channelz.RegisterSubChannel(ac, cc.channelzID, "") - if err != nil { - return nil, err - } - channelz.AddTraceEvent(logger, ac.channelzID, 0, &channelz.TraceEventDesc{ + channelz.AddTraceEvent(logger, ac.channelz, 0, &channelz.TraceEvent{ Desc: "Subchannel created", Severity: channelz.CtInfo, - Parent: &channelz.TraceEventDesc{ - Desc: fmt.Sprintf("Subchannel(id:%d) created", ac.channelzID.Int()), + Parent: &channelz.TraceEvent{ + Desc: fmt.Sprintf("Subchannel(id:%d) created", ac.channelz.ID), Severity: channelz.CtInfo, }, }) @@ -872,38 +866,27 @@ func (cc *ClientConn) removeAddrConn(ac *addrConn, err error) { ac.tearDown(err) } -func (cc *ClientConn) channelzMetric() *channelz.ChannelInternalMetric { - return &channelz.ChannelInternalMetric{ - State: cc.GetState(), - Target: cc.target, - CallsStarted: atomic.LoadInt64(&cc.czData.callsStarted), - CallsSucceeded: atomic.LoadInt64(&cc.czData.callsSucceeded), - CallsFailed: atomic.LoadInt64(&cc.czData.callsFailed), - LastCallStartedTimestamp: time.Unix(0, atomic.LoadInt64(&cc.czData.lastCallStartedTime)), - } -} - // Target returns the target string of the ClientConn. -// -// # Experimental -// -// Notice: This API is EXPERIMENTAL and may be changed or removed in a -// later release. func (cc *ClientConn) Target() string { return cc.target } +// CanonicalTarget returns the canonical target string of the ClientConn. +func (cc *ClientConn) CanonicalTarget() string { + return cc.parsedTarget.String() +} + func (cc *ClientConn) incrCallsStarted() { - atomic.AddInt64(&cc.czData.callsStarted, 1) - atomic.StoreInt64(&cc.czData.lastCallStartedTime, time.Now().UnixNano()) + cc.channelz.ChannelMetrics.CallsStarted.Add(1) + cc.channelz.ChannelMetrics.LastCallStartedTimestamp.Store(time.Now().UnixNano()) } func (cc *ClientConn) incrCallsSucceeded() { - atomic.AddInt64(&cc.czData.callsSucceeded, 1) + cc.channelz.ChannelMetrics.CallsSucceeded.Add(1) } func (cc *ClientConn) incrCallsFailed() { - atomic.AddInt64(&cc.czData.callsFailed, 1) + cc.channelz.ChannelMetrics.CallsFailed.Add(1) } // connect starts creating a transport. @@ -947,7 +930,7 @@ func equalAddresses(a, b []resolver.Address) bool { // connections or connection attempts. func (ac *addrConn) updateAddrs(addrs []resolver.Address) { ac.mu.Lock() - channelz.Infof(logger, ac.channelzID, "addrConn: updateAddrs curAddr: %v, addrs: %v", pretty.ToJSON(ac.curAddr), pretty.ToJSON(addrs)) + channelz.Infof(logger, ac.channelz, "addrConn: updateAddrs curAddr: %v, addrs: %v", pretty.ToJSON(ac.curAddr), pretty.ToJSON(addrs)) addrs = copyAddressesWithoutBalancerAttributes(addrs) if equalAddresses(ac.addrs, addrs) { @@ -1067,7 +1050,7 @@ func (cc *ClientConn) getTransport(ctx context.Context, failfast bool, method st }) } -func (cc *ClientConn) applyServiceConfigAndBalancer(sc *ServiceConfig, configSelector iresolver.ConfigSelector, addrs []resolver.Address) { +func (cc *ClientConn) applyServiceConfigAndBalancer(sc *ServiceConfig, configSelector iresolver.ConfigSelector) { if sc == nil { // should never reach here. return @@ -1088,17 +1071,6 @@ func (cc *ClientConn) applyServiceConfigAndBalancer(sc *ServiceConfig, configSel } else { cc.retryThrottler.Store((*retryThrottler)(nil)) } - - var newBalancerName string - if cc.sc == nil || (cc.sc.lbConfig == nil && cc.sc.LB == nil) { - // No service config or no LB policy specified in config. - newBalancerName = PickFirstBalancerName - } else if cc.sc.lbConfig != nil { - newBalancerName = cc.sc.lbConfig.name - } else { // cc.sc.LB != nil - newBalancerName = *cc.sc.LB - } - cc.balancerWrapper.switchTo(newBalancerName) } func (cc *ClientConn) resolveNow(o resolver.ResolveNowOptions) { @@ -1174,7 +1146,7 @@ func (cc *ClientConn) Close() error { // TraceEvent needs to be called before RemoveEntry, as TraceEvent may add // trace reference to the entity being deleted, and thus prevent it from being // deleted right away. - channelz.RemoveEntry(cc.channelzID) + channelz.RemoveEntry(cc.channelz.ID) return nil } @@ -1206,8 +1178,7 @@ type addrConn struct { backoffIdx int // Needs to be stateful for resetConnectBackoff. resetBackoff chan struct{} - channelzID *channelz.Identifier - czData *channelzData + channelz *channelz.SubChannel } // Note: this requires a lock on ac.mu. @@ -1219,10 +1190,11 @@ func (ac *addrConn) updateConnectivityState(s connectivity.State, lastErr error) close(ac.stateChan) ac.stateChan = make(chan struct{}) ac.state = s + ac.channelz.ChannelMetrics.State.Store(&s) if lastErr == nil { - channelz.Infof(logger, ac.channelzID, "Subchannel Connectivity change to %v", s) + channelz.Infof(logger, ac.channelz, "Subchannel Connectivity change to %v", s) } else { - channelz.Infof(logger, ac.channelzID, "Subchannel Connectivity change to %v, last error: %s", s, lastErr) + channelz.Infof(logger, ac.channelz, "Subchannel Connectivity change to %v, last error: %s", s, lastErr) } ac.acbw.updateState(s, lastErr) } @@ -1335,7 +1307,7 @@ func (ac *addrConn) tryAllAddrs(ctx context.Context, addrs []resolver.Address, c } ac.mu.Unlock() - channelz.Infof(logger, ac.channelzID, "Subchannel picks a new address %q to connect", addr.Addr) + channelz.Infof(logger, ac.channelz, "Subchannel picks a new address %q to connect", addr.Addr) err := ac.createTransport(ctx, addr, copts, connectDeadline) if err == nil { @@ -1388,7 +1360,7 @@ func (ac *addrConn) createTransport(ctx context.Context, addr resolver.Address, connectCtx, cancel := context.WithDeadline(ctx, connectDeadline) defer cancel() - copts.ChannelzParentID = ac.channelzID + copts.ChannelzParent = ac.channelz newTr, err := transport.NewClientTransport(connectCtx, ac.cc.ctx, addr, copts, onClose) if err != nil { @@ -1397,7 +1369,7 @@ func (ac *addrConn) createTransport(ctx context.Context, addr resolver.Address, } // newTr is either nil, or closed. hcancel() - channelz.Warningf(logger, ac.channelzID, "grpc: addrConn.createTransport failed to connect to %s. Err: %v", addr, err) + channelz.Warningf(logger, ac.channelz, "grpc: addrConn.createTransport failed to connect to %s. Err: %v", addr, err) return err } @@ -1469,7 +1441,7 @@ func (ac *addrConn) startHealthCheck(ctx context.Context) { // The health package is not imported to set health check function. // // TODO: add a link to the health check doc in the error message. - channelz.Error(logger, ac.channelzID, "Health check is requested but health check function is not set.") + channelz.Error(logger, ac.channelz, "Health check is requested but health check function is not set.") return } @@ -1499,9 +1471,9 @@ func (ac *addrConn) startHealthCheck(ctx context.Context) { err := ac.cc.dopts.healthCheckFunc(ctx, newStream, setConnectivityState, healthCheckConfig.ServiceName) if err != nil { if status.Code(err) == codes.Unimplemented { - channelz.Error(logger, ac.channelzID, "Subchannel health check is unimplemented at server side, thus health check is disabled") + channelz.Error(logger, ac.channelz, "Subchannel health check is unimplemented at server side, thus health check is disabled") } else { - channelz.Errorf(logger, ac.channelzID, "Health checking failed: %v", err) + channelz.Errorf(logger, ac.channelz, "Health checking failed: %v", err) } } }() @@ -1566,18 +1538,18 @@ func (ac *addrConn) tearDown(err error) { ac.cancel() ac.curAddr = resolver.Address{} - channelz.AddTraceEvent(logger, ac.channelzID, 0, &channelz.TraceEventDesc{ + channelz.AddTraceEvent(logger, ac.channelz, 0, &channelz.TraceEvent{ Desc: "Subchannel deleted", Severity: channelz.CtInfo, - Parent: &channelz.TraceEventDesc{ - Desc: fmt.Sprintf("Subchannel(id:%d) deleted", ac.channelzID.Int()), + Parent: &channelz.TraceEvent{ + Desc: fmt.Sprintf("Subchannel(id:%d) deleted", ac.channelz.ID), Severity: channelz.CtInfo, }, }) // TraceEvent needs to be called before RemoveEntry, as TraceEvent may add // trace reference to the entity being deleted, and thus prevent it from // being deleted right away. - channelz.RemoveEntry(ac.channelzID) + channelz.RemoveEntry(ac.channelz.ID) ac.mu.Unlock() // We have to release the lock before the call to GracefulClose/Close here @@ -1604,39 +1576,6 @@ func (ac *addrConn) tearDown(err error) { } } -func (ac *addrConn) getState() connectivity.State { - ac.mu.Lock() - defer ac.mu.Unlock() - return ac.state -} - -func (ac *addrConn) ChannelzMetric() *channelz.ChannelInternalMetric { - ac.mu.Lock() - addr := ac.curAddr.Addr - ac.mu.Unlock() - return &channelz.ChannelInternalMetric{ - State: ac.getState(), - Target: addr, - CallsStarted: atomic.LoadInt64(&ac.czData.callsStarted), - CallsSucceeded: atomic.LoadInt64(&ac.czData.callsSucceeded), - CallsFailed: atomic.LoadInt64(&ac.czData.callsFailed), - LastCallStartedTimestamp: time.Unix(0, atomic.LoadInt64(&ac.czData.lastCallStartedTime)), - } -} - -func (ac *addrConn) incrCallsStarted() { - atomic.AddInt64(&ac.czData.callsStarted, 1) - atomic.StoreInt64(&ac.czData.lastCallStartedTime, time.Now().UnixNano()) -} - -func (ac *addrConn) incrCallsSucceeded() { - atomic.AddInt64(&ac.czData.callsSucceeded, 1) -} - -func (ac *addrConn) incrCallsFailed() { - atomic.AddInt64(&ac.czData.callsFailed, 1) -} - type retryThrottler struct { max float64 thresh float64 @@ -1674,12 +1613,17 @@ func (rt *retryThrottler) successfulRPC() { } } -type channelzChannel struct { - cc *ClientConn +func (ac *addrConn) incrCallsStarted() { + ac.channelz.ChannelMetrics.CallsStarted.Add(1) + ac.channelz.ChannelMetrics.LastCallStartedTimestamp.Store(time.Now().UnixNano()) } -func (c *channelzChannel) ChannelzMetric() *channelz.ChannelInternalMetric { - return c.cc.channelzMetric() +func (ac *addrConn) incrCallsSucceeded() { + ac.channelz.ChannelMetrics.CallsSucceeded.Add(1) +} + +func (ac *addrConn) incrCallsFailed() { + ac.channelz.ChannelMetrics.CallsFailed.Add(1) } // ErrClientConnTimeout indicates that the ClientConn cannot establish the @@ -1721,14 +1665,14 @@ func (cc *ClientConn) connectionError() error { // // Doesn't grab cc.mu as this method is expected to be called only at Dial time. func (cc *ClientConn) parseTargetAndFindResolver() error { - channelz.Infof(logger, cc.channelzID, "original dial target is: %q", cc.target) + channelz.Infof(logger, cc.channelz, "original dial target is: %q", cc.target) var rb resolver.Builder parsedTarget, err := parseTarget(cc.target) if err != nil { - channelz.Infof(logger, cc.channelzID, "dial target %q parse failed: %v", cc.target, err) + channelz.Infof(logger, cc.channelz, "dial target %q parse failed: %v", cc.target, err) } else { - channelz.Infof(logger, cc.channelzID, "parsed dial target is: %#v", parsedTarget) + channelz.Infof(logger, cc.channelz, "parsed dial target is: %#v", parsedTarget) rb = cc.getResolver(parsedTarget.URL.Scheme) if rb != nil { cc.parsedTarget = parsedTarget @@ -1740,17 +1684,22 @@ func (cc *ClientConn) parseTargetAndFindResolver() error { // We are here because the user's dial target did not contain a scheme or // specified an unregistered scheme. We should fallback to the default // scheme, except when a custom dialer is specified in which case, we should - // always use passthrough scheme. - defScheme := resolver.GetDefaultScheme() - channelz.Infof(logger, cc.channelzID, "fallback to scheme %q", defScheme) + // always use passthrough scheme. For either case, we need to respect any overridden + // global defaults set by the user. + defScheme := cc.dopts.defaultScheme + if internal.UserSetDefaultScheme { + defScheme = resolver.GetDefaultScheme() + } + + channelz.Infof(logger, cc.channelz, "fallback to scheme %q", defScheme) canonicalTarget := defScheme + ":///" + cc.target parsedTarget, err = parseTarget(canonicalTarget) if err != nil { - channelz.Infof(logger, cc.channelzID, "dial target %q parse failed: %v", canonicalTarget, err) + channelz.Infof(logger, cc.channelz, "dial target %q parse failed: %v", canonicalTarget, err) return err } - channelz.Infof(logger, cc.channelzID, "parsed dial target is: %+v", parsedTarget) + channelz.Infof(logger, cc.channelz, "parsed dial target is: %+v", parsedTarget) rb = cc.getResolver(parsedTarget.URL.Scheme) if rb == nil { return fmt.Errorf("could not get resolver for default scheme: %q", parsedTarget.URL.Scheme) @@ -1772,6 +1721,8 @@ func parseTarget(target string) (resolver.Target, error) { return resolver.Target{URL: *u}, nil } +// encodeAuthority escapes the authority string based on valid chars defined in +// https://datatracker.ietf.org/doc/html/rfc3986#section-3.2. func encodeAuthority(authority string) string { const upperhex = "0123456789ABCDEF" @@ -1871,6 +1822,6 @@ func (cc *ClientConn) determineAuthority() error { } else { cc.authority = encodeAuthority(endpoint) } - channelz.Infof(logger, cc.channelzID, "Channel authority set to %q", cc.authority) + channelz.Infof(logger, cc.channelz, "Channel authority set to %q", cc.authority) return nil } diff --git a/vendor/google.golang.org/grpc/credentials/credentials.go b/vendor/google.golang.org/grpc/credentials/credentials.go index 5feac3aa0..f6b55c68b 100644 --- a/vendor/google.golang.org/grpc/credentials/credentials.go +++ b/vendor/google.golang.org/grpc/credentials/credentials.go @@ -28,9 +28,9 @@ import ( "fmt" "net" - "github.com/golang/protobuf/proto" "google.golang.org/grpc/attributes" icredentials "google.golang.org/grpc/internal/credentials" + "google.golang.org/protobuf/protoadapt" ) // PerRPCCredentials defines the common interface for the credentials which need to @@ -287,5 +287,5 @@ type ChannelzSecurityValue interface { type OtherChannelzSecurityValue struct { ChannelzSecurityValue Name string - Value proto.Message + Value protoadapt.MessageV1 } diff --git a/vendor/google.golang.org/grpc/dialoptions.go b/vendor/google.golang.org/grpc/dialoptions.go index ba2426180..402493224 100644 --- a/vendor/google.golang.org/grpc/dialoptions.go +++ b/vendor/google.golang.org/grpc/dialoptions.go @@ -68,7 +68,7 @@ type dialOptions struct { binaryLogger binarylog.Logger copts transport.ConnectOptions callOptions []CallOption - channelzParentID *channelz.Identifier + channelzParent channelz.Identifier disableServiceConfig bool disableRetry bool disableHealthCheck bool @@ -79,6 +79,7 @@ type dialOptions struct { resolvers []resolver.Builder idleTimeout time.Duration recvBufferPool SharedBufferPool + defaultScheme string } // DialOption configures how we set up the connection. @@ -154,9 +155,7 @@ func WithSharedWriteBuffer(val bool) DialOption { } // WithWriteBufferSize determines how much data can be batched before doing a -// write on the wire. The corresponding memory allocation for this buffer will -// be twice the size to keep syscalls low. The default value for this buffer is -// 32KB. +// write on the wire. The default value for this buffer is 32KB. // // Zero or negative values will disable the write buffer such that each write // will be on underlying connection. Note: A Send call may not directly @@ -555,9 +554,9 @@ func WithAuthority(a string) DialOption { // // Notice: This API is EXPERIMENTAL and may be changed or removed in a // later release. -func WithChannelzParentID(id *channelz.Identifier) DialOption { +func WithChannelzParentID(c channelz.Identifier) DialOption { return newFuncDialOption(func(o *dialOptions) { - o.channelzParentID = id + o.channelzParent = c }) } @@ -645,6 +644,7 @@ func defaultDialOptions() dialOptions { healthCheckFunc: internal.HealthCheckFunc, idleTimeout: 30 * time.Minute, recvBufferPool: nopBufferPool{}, + defaultScheme: "dns", } } @@ -659,6 +659,14 @@ func withMinConnectDeadline(f func() time.Duration) DialOption { }) } +// withDefaultScheme is used to allow Dial to use "passthrough" as the default +// name resolver, while NewClient uses "dns" otherwise. +func withDefaultScheme(s string) DialOption { + return newFuncDialOption(func(o *dialOptions) { + o.defaultScheme = s + }) +} + // WithResolvers allows a list of resolver implementations to be registered // locally with the ClientConn without needing to be globally registered via // resolver.Register. They will be matched against the scheme used for the diff --git a/vendor/google.golang.org/grpc/encoding/proto/proto.go b/vendor/google.golang.org/grpc/encoding/proto/proto.go index 0ee3d3bae..66d5cdf03 100644 --- a/vendor/google.golang.org/grpc/encoding/proto/proto.go +++ b/vendor/google.golang.org/grpc/encoding/proto/proto.go @@ -23,8 +23,9 @@ package proto import ( "fmt" - "github.com/golang/protobuf/proto" "google.golang.org/grpc/encoding" + "google.golang.org/protobuf/proto" + "google.golang.org/protobuf/protoadapt" ) // Name is the name registered for the proto compressor. @@ -38,21 +39,34 @@ func init() { type codec struct{} func (codec) Marshal(v any) ([]byte, error) { - vv, ok := v.(proto.Message) - if !ok { + vv := messageV2Of(v) + if vv == nil { return nil, fmt.Errorf("failed to marshal, message is %T, want proto.Message", v) } + return proto.Marshal(vv) } func (codec) Unmarshal(data []byte, v any) error { - vv, ok := v.(proto.Message) - if !ok { + vv := messageV2Of(v) + if vv == nil { return fmt.Errorf("failed to unmarshal, message is %T, want proto.Message", v) } + return proto.Unmarshal(data, vv) } +func messageV2Of(v any) proto.Message { + switch v := v.(type) { + case protoadapt.MessageV1: + return protoadapt.MessageV2Of(v) + case protoadapt.MessageV2: + return v + } + + return nil +} + func (codec) Name() string { return Name } diff --git a/vendor/google.golang.org/grpc/health/grpc_health_v1/health.pb.go b/vendor/google.golang.org/grpc/health/grpc_health_v1/health.pb.go index 24299efd6..5bf880d41 100644 --- a/vendor/google.golang.org/grpc/health/grpc_health_v1/health.pb.go +++ b/vendor/google.golang.org/grpc/health/grpc_health_v1/health.pb.go @@ -17,8 +17,8 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.31.0 -// protoc v4.22.0 +// protoc-gen-go v1.32.0 +// protoc v4.25.2 // source: grpc/health/v1/health.proto package grpc_health_v1 diff --git a/vendor/google.golang.org/grpc/health/grpc_health_v1/health_grpc.pb.go b/vendor/google.golang.org/grpc/health/grpc_health_v1/health_grpc.pb.go index 4439cda0f..4c46c098d 100644 --- a/vendor/google.golang.org/grpc/health/grpc_health_v1/health_grpc.pb.go +++ b/vendor/google.golang.org/grpc/health/grpc_health_v1/health_grpc.pb.go @@ -18,7 +18,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.3.0 -// - protoc v4.22.0 +// - protoc v4.25.2 // source: grpc/health/v1/health.proto package grpc_health_v1 diff --git a/vendor/google.golang.org/grpc/internal/balancer/gracefulswitch/config.go b/vendor/google.golang.org/grpc/internal/balancer/gracefulswitch/config.go new file mode 100644 index 000000000..6bf7f8739 --- /dev/null +++ b/vendor/google.golang.org/grpc/internal/balancer/gracefulswitch/config.go @@ -0,0 +1,83 @@ +/* + * + * Copyright 2024 gRPC authors. + * + * 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 gracefulswitch + +import ( + "encoding/json" + "fmt" + + "google.golang.org/grpc/balancer" + "google.golang.org/grpc/serviceconfig" +) + +type lbConfig struct { + serviceconfig.LoadBalancingConfig + + childBuilder balancer.Builder + childConfig serviceconfig.LoadBalancingConfig +} + +func ChildName(l serviceconfig.LoadBalancingConfig) string { + return l.(*lbConfig).childBuilder.Name() +} + +// ParseConfig parses a child config list and returns a LB config for the +// gracefulswitch Balancer. +// +// cfg is expected to be a json.RawMessage containing a JSON array of LB policy +// names + configs as the format of the "loadBalancingConfig" field in +// ServiceConfig. It returns a type that should be passed to +// UpdateClientConnState in the BalancerConfig field. +func ParseConfig(cfg json.RawMessage) (serviceconfig.LoadBalancingConfig, error) { + var lbCfg []map[string]json.RawMessage + if err := json.Unmarshal(cfg, &lbCfg); err != nil { + return nil, err + } + for i, e := range lbCfg { + if len(e) != 1 { + return nil, fmt.Errorf("expected a JSON struct with one entry; received entry %v at index %d", e, i) + } + + var name string + var jsonCfg json.RawMessage + for name, jsonCfg = range e { + } + + builder := balancer.Get(name) + if builder == nil { + // Skip unregistered balancer names. + continue + } + + parser, ok := builder.(balancer.ConfigParser) + if !ok { + // This is a valid child with no config. + return &lbConfig{childBuilder: builder}, nil + } + + cfg, err := parser.ParseConfig(jsonCfg) + if err != nil { + return nil, fmt.Errorf("error parsing config for policy %q: %v", name, err) + } + + return &lbConfig{childBuilder: builder, childConfig: cfg}, nil + } + + return nil, fmt.Errorf("no supported policies found in config: %v", string(cfg)) +} diff --git a/vendor/google.golang.org/grpc/internal/balancer/gracefulswitch/gracefulswitch.go b/vendor/google.golang.org/grpc/internal/balancer/gracefulswitch/gracefulswitch.go index 3c594e6e4..45d5e50ea 100644 --- a/vendor/google.golang.org/grpc/internal/balancer/gracefulswitch/gracefulswitch.go +++ b/vendor/google.golang.org/grpc/internal/balancer/gracefulswitch/gracefulswitch.go @@ -94,14 +94,23 @@ func (gsb *Balancer) balancerCurrentOrPending(bw *balancerWrapper) bool { // process is not complete when this method returns. This method must be called // synchronously alongside the rest of the balancer.Balancer methods this // Graceful Switch Balancer implements. +// +// Deprecated: use ParseConfig and pass a parsed config to UpdateClientConnState +// to cause the Balancer to automatically change to the new child when necessary. func (gsb *Balancer) SwitchTo(builder balancer.Builder) error { + _, err := gsb.switchTo(builder) + return err +} + +func (gsb *Balancer) switchTo(builder balancer.Builder) (*balancerWrapper, error) { gsb.mu.Lock() if gsb.closed { gsb.mu.Unlock() - return errBalancerClosed + return nil, errBalancerClosed } bw := &balancerWrapper{ - gsb: gsb, + builder: builder, + gsb: gsb, lastState: balancer.State{ ConnectivityState: connectivity.Connecting, Picker: base.NewErrPicker(balancer.ErrNoSubConnAvailable), @@ -129,7 +138,7 @@ func (gsb *Balancer) SwitchTo(builder balancer.Builder) error { gsb.balancerCurrent = nil } gsb.mu.Unlock() - return balancer.ErrBadResolverState + return nil, balancer.ErrBadResolverState } // This write doesn't need to take gsb.mu because this field never gets read @@ -138,7 +147,7 @@ func (gsb *Balancer) SwitchTo(builder balancer.Builder) error { // bw.Balancer field will never be forwarded to until this SwitchTo() // function returns. bw.Balancer = newBalancer - return nil + return bw, nil } // Returns nil if the graceful switch balancer is closed. @@ -152,12 +161,33 @@ func (gsb *Balancer) latestBalancer() *balancerWrapper { } // UpdateClientConnState forwards the update to the latest balancer created. +// +// If the state's BalancerConfig is the config returned by a call to +// gracefulswitch.ParseConfig, then this function will automatically SwitchTo +// the balancer indicated by the config before forwarding its config to it, if +// necessary. func (gsb *Balancer) UpdateClientConnState(state balancer.ClientConnState) error { // The resolver data is only relevant to the most recent LB Policy. balToUpdate := gsb.latestBalancer() + + gsbCfg, ok := state.BalancerConfig.(*lbConfig) + if ok { + // Switch to the child in the config unless it is already active. + if balToUpdate == nil || gsbCfg.childBuilder.Name() != balToUpdate.builder.Name() { + var err error + balToUpdate, err = gsb.switchTo(gsbCfg.childBuilder) + if err != nil { + return fmt.Errorf("could not switch to new child balancer: %w", err) + } + } + // Unwrap the child balancer's config. + state.BalancerConfig = gsbCfg.childConfig + } + if balToUpdate == nil { return errBalancerClosed } + // Perform this call without gsb.mu to prevent deadlocks if the child calls // back into the channel. The latest balancer can never be closed during a // call from the channel, even without gsb.mu held. @@ -169,6 +199,10 @@ func (gsb *Balancer) ResolverError(err error) { // The resolver data is only relevant to the most recent LB Policy. balToUpdate := gsb.latestBalancer() if balToUpdate == nil { + gsb.cc.UpdateState(balancer.State{ + ConnectivityState: connectivity.TransientFailure, + Picker: base.NewErrPicker(err), + }) return } // Perform this call without gsb.mu to prevent deadlocks if the child calls @@ -261,7 +295,8 @@ func (gsb *Balancer) Close() { // graceful switch logic. type balancerWrapper struct { balancer.Balancer - gsb *Balancer + gsb *Balancer + builder balancer.Builder lastState balancer.State subconns map[balancer.SubConn]bool // subconns created by this balancer diff --git a/vendor/google.golang.org/grpc/internal/binarylog/method_logger.go b/vendor/google.golang.org/grpc/internal/binarylog/method_logger.go index 0f31274a3..e8456a77c 100644 --- a/vendor/google.golang.org/grpc/internal/binarylog/method_logger.go +++ b/vendor/google.golang.org/grpc/internal/binarylog/method_logger.go @@ -25,11 +25,12 @@ import ( "sync/atomic" "time" - "github.com/golang/protobuf/proto" - "github.com/golang/protobuf/ptypes" binlogpb "google.golang.org/grpc/binarylog/grpc_binarylog_v1" "google.golang.org/grpc/metadata" "google.golang.org/grpc/status" + "google.golang.org/protobuf/proto" + "google.golang.org/protobuf/types/known/durationpb" + "google.golang.org/protobuf/types/known/timestamppb" ) type callIDGenerator struct { @@ -88,7 +89,7 @@ func NewTruncatingMethodLogger(h, m uint64) *TruncatingMethodLogger { // in TruncatingMethodLogger as possible. func (ml *TruncatingMethodLogger) Build(c LogEntryConfig) *binlogpb.GrpcLogEntry { m := c.toProto() - timestamp, _ := ptypes.TimestampProto(time.Now()) + timestamp := timestamppb.Now() m.Timestamp = timestamp m.CallId = ml.callID m.SequenceIdWithinCall = ml.idWithinCallGen.next() @@ -178,7 +179,7 @@ func (c *ClientHeader) toProto() *binlogpb.GrpcLogEntry { Authority: c.Authority, } if c.Timeout > 0 { - clientHeader.Timeout = ptypes.DurationProto(c.Timeout) + clientHeader.Timeout = durationpb.New(c.Timeout) } ret := &binlogpb.GrpcLogEntry{ Type: binlogpb.GrpcLogEntry_EVENT_TYPE_CLIENT_HEADER, diff --git a/vendor/google.golang.org/grpc/internal/binarylog/sink.go b/vendor/google.golang.org/grpc/internal/binarylog/sink.go index 264de387c..9ea598b14 100644 --- a/vendor/google.golang.org/grpc/internal/binarylog/sink.go +++ b/vendor/google.golang.org/grpc/internal/binarylog/sink.go @@ -25,8 +25,8 @@ import ( "sync" "time" - "github.com/golang/protobuf/proto" binlogpb "google.golang.org/grpc/binarylog/grpc_binarylog_v1" + "google.golang.org/protobuf/proto" ) var ( diff --git a/vendor/google.golang.org/grpc/internal/channelz/channel.go b/vendor/google.golang.org/grpc/internal/channelz/channel.go new file mode 100644 index 000000000..d7e9e1d54 --- /dev/null +++ b/vendor/google.golang.org/grpc/internal/channelz/channel.go @@ -0,0 +1,255 @@ +/* + * + * Copyright 2024 gRPC authors. + * + * 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 channelz + +import ( + "fmt" + "sync/atomic" + + "google.golang.org/grpc/connectivity" +) + +// Channel represents a channel within channelz, which includes metrics and +// internal channelz data, such as channelz id, child list, etc. +type Channel struct { + Entity + // ID is the channelz id of this channel. + ID int64 + // RefName is the human readable reference string of this channel. + RefName string + + closeCalled bool + nestedChans map[int64]string + subChans map[int64]string + Parent *Channel + trace *ChannelTrace + // traceRefCount is the number of trace events that reference this channel. + // Non-zero traceRefCount means the trace of this channel cannot be deleted. + traceRefCount int32 + + ChannelMetrics ChannelMetrics +} + +// Implemented to make Channel implement the Identifier interface used for +// nesting. +func (c *Channel) channelzIdentifier() {} + +func (c *Channel) String() string { + if c.Parent == nil { + return fmt.Sprintf("Channel #%d", c.ID) + } + return fmt.Sprintf("%s Channel #%d", c.Parent, c.ID) +} + +func (c *Channel) id() int64 { + return c.ID +} + +func (c *Channel) SubChans() map[int64]string { + db.mu.RLock() + defer db.mu.RUnlock() + return copyMap(c.subChans) +} + +func (c *Channel) NestedChans() map[int64]string { + db.mu.RLock() + defer db.mu.RUnlock() + return copyMap(c.nestedChans) +} + +func (c *Channel) Trace() *ChannelTrace { + db.mu.RLock() + defer db.mu.RUnlock() + return c.trace.copy() +} + +type ChannelMetrics struct { + // The current connectivity state of the channel. + State atomic.Pointer[connectivity.State] + // The target this channel originally tried to connect to. May be absent + Target atomic.Pointer[string] + // The number of calls started on the channel. + CallsStarted atomic.Int64 + // The number of calls that have completed with an OK status. + CallsSucceeded atomic.Int64 + // The number of calls that have a completed with a non-OK status. + CallsFailed atomic.Int64 + // The last time a call was started on the channel. + LastCallStartedTimestamp atomic.Int64 +} + +// CopyFrom copies the metrics in o to c. For testing only. +func (c *ChannelMetrics) CopyFrom(o *ChannelMetrics) { + c.State.Store(o.State.Load()) + c.Target.Store(o.Target.Load()) + c.CallsStarted.Store(o.CallsStarted.Load()) + c.CallsSucceeded.Store(o.CallsSucceeded.Load()) + c.CallsFailed.Store(o.CallsFailed.Load()) + c.LastCallStartedTimestamp.Store(o.LastCallStartedTimestamp.Load()) +} + +// Equal returns true iff the metrics of c are the same as the metrics of o. +// For testing only. +func (c *ChannelMetrics) Equal(o any) bool { + oc, ok := o.(*ChannelMetrics) + if !ok { + return false + } + if (c.State.Load() == nil) != (oc.State.Load() == nil) { + return false + } + if c.State.Load() != nil && *c.State.Load() != *oc.State.Load() { + return false + } + if (c.Target.Load() == nil) != (oc.Target.Load() == nil) { + return false + } + if c.Target.Load() != nil && *c.Target.Load() != *oc.Target.Load() { + return false + } + return c.CallsStarted.Load() == oc.CallsStarted.Load() && + c.CallsFailed.Load() == oc.CallsFailed.Load() && + c.CallsSucceeded.Load() == oc.CallsSucceeded.Load() && + c.LastCallStartedTimestamp.Load() == oc.LastCallStartedTimestamp.Load() +} + +func strFromPointer(s *string) string { + if s == nil { + return "" + } + return *s +} + +func (c *ChannelMetrics) String() string { + return fmt.Sprintf("State: %v, Target: %s, CallsStarted: %v, CallsSucceeded: %v, CallsFailed: %v, LastCallStartedTimestamp: %v", + c.State.Load(), strFromPointer(c.Target.Load()), c.CallsStarted.Load(), c.CallsSucceeded.Load(), c.CallsFailed.Load(), c.LastCallStartedTimestamp.Load(), + ) +} + +func NewChannelMetricForTesting(state connectivity.State, target string, started, succeeded, failed, timestamp int64) *ChannelMetrics { + c := &ChannelMetrics{} + c.State.Store(&state) + c.Target.Store(&target) + c.CallsStarted.Store(started) + c.CallsSucceeded.Store(succeeded) + c.CallsFailed.Store(failed) + c.LastCallStartedTimestamp.Store(timestamp) + return c +} + +func (c *Channel) addChild(id int64, e entry) { + switch v := e.(type) { + case *SubChannel: + c.subChans[id] = v.RefName + case *Channel: + c.nestedChans[id] = v.RefName + default: + logger.Errorf("cannot add a child (id = %d) of type %T to a channel", id, e) + } +} + +func (c *Channel) deleteChild(id int64) { + delete(c.subChans, id) + delete(c.nestedChans, id) + c.deleteSelfIfReady() +} + +func (c *Channel) triggerDelete() { + c.closeCalled = true + c.deleteSelfIfReady() +} + +func (c *Channel) getParentID() int64 { + if c.Parent == nil { + return -1 + } + return c.Parent.ID +} + +// deleteSelfFromTree tries to delete the channel from the channelz entry relation tree, which means +// deleting the channel reference from its parent's child list. +// +// In order for a channel to be deleted from the tree, it must meet the criteria that, removal of the +// corresponding grpc object has been invoked, and the channel does not have any children left. +// +// The returned boolean value indicates whether the channel has been successfully deleted from tree. +func (c *Channel) deleteSelfFromTree() (deleted bool) { + if !c.closeCalled || len(c.subChans)+len(c.nestedChans) != 0 { + return false + } + // not top channel + if c.Parent != nil { + c.Parent.deleteChild(c.ID) + } + return true +} + +// deleteSelfFromMap checks whether it is valid to delete the channel from the map, which means +// deleting the channel from channelz's tracking entirely. Users can no longer use id to query the +// channel, and its memory will be garbage collected. +// +// The trace reference count of the channel must be 0 in order to be deleted from the map. This is +// specified in the channel tracing gRFC that as long as some other trace has reference to an entity, +// the trace of the referenced entity must not be deleted. In order to release the resource allocated +// by grpc, the reference to the grpc object is reset to a dummy object. +// +// deleteSelfFromMap must be called after deleteSelfFromTree returns true. +// +// It returns a bool to indicate whether the channel can be safely deleted from map. +func (c *Channel) deleteSelfFromMap() (delete bool) { + return c.getTraceRefCount() == 0 +} + +// deleteSelfIfReady tries to delete the channel itself from the channelz database. +// The delete process includes two steps: +// 1. delete the channel from the entry relation tree, i.e. delete the channel reference from its +// parent's child list. +// 2. delete the channel from the map, i.e. delete the channel entirely from channelz. Lookup by id +// will return entry not found error. +func (c *Channel) deleteSelfIfReady() { + if !c.deleteSelfFromTree() { + return + } + if !c.deleteSelfFromMap() { + return + } + db.deleteEntry(c.ID) + c.trace.clear() +} + +func (c *Channel) getChannelTrace() *ChannelTrace { + return c.trace +} + +func (c *Channel) incrTraceRefCount() { + atomic.AddInt32(&c.traceRefCount, 1) +} + +func (c *Channel) decrTraceRefCount() { + atomic.AddInt32(&c.traceRefCount, -1) +} + +func (c *Channel) getTraceRefCount() int { + i := atomic.LoadInt32(&c.traceRefCount) + return int(i) +} + +func (c *Channel) getRefName() string { + return c.RefName +} diff --git a/vendor/google.golang.org/grpc/internal/channelz/channelmap.go b/vendor/google.golang.org/grpc/internal/channelz/channelmap.go new file mode 100644 index 000000000..dfe18b089 --- /dev/null +++ b/vendor/google.golang.org/grpc/internal/channelz/channelmap.go @@ -0,0 +1,402 @@ +/* + * + * Copyright 2018 gRPC authors. + * + * 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 channelz + +import ( + "fmt" + "sort" + "sync" + "time" +) + +// entry represents a node in the channelz database. +type entry interface { + // addChild adds a child e, whose channelz id is id to child list + addChild(id int64, e entry) + // deleteChild deletes a child with channelz id to be id from child list + deleteChild(id int64) + // triggerDelete tries to delete self from channelz database. However, if + // child list is not empty, then deletion from the database is on hold until + // the last child is deleted from database. + triggerDelete() + // deleteSelfIfReady check whether triggerDelete() has been called before, + // and whether child list is now empty. If both conditions are met, then + // delete self from database. + deleteSelfIfReady() + // getParentID returns parent ID of the entry. 0 value parent ID means no parent. + getParentID() int64 + Entity +} + +// channelMap is the storage data structure for channelz. +// +// Methods of channelMap can be divided in two two categories with respect to +// locking. +// +// 1. Methods acquire the global lock. +// 2. Methods that can only be called when global lock is held. +// +// A second type of method need always to be called inside a first type of method. +type channelMap struct { + mu sync.RWMutex + topLevelChannels map[int64]struct{} + channels map[int64]*Channel + subChannels map[int64]*SubChannel + sockets map[int64]*Socket + servers map[int64]*Server +} + +func newChannelMap() *channelMap { + return &channelMap{ + topLevelChannels: make(map[int64]struct{}), + channels: make(map[int64]*Channel), + subChannels: make(map[int64]*SubChannel), + sockets: make(map[int64]*Socket), + servers: make(map[int64]*Server), + } +} + +func (c *channelMap) addServer(id int64, s *Server) { + c.mu.Lock() + defer c.mu.Unlock() + s.cm = c + c.servers[id] = s +} + +func (c *channelMap) addChannel(id int64, cn *Channel, isTopChannel bool, pid int64) { + c.mu.Lock() + defer c.mu.Unlock() + cn.trace.cm = c + c.channels[id] = cn + if isTopChannel { + c.topLevelChannels[id] = struct{}{} + } else if p := c.channels[pid]; p != nil { + p.addChild(id, cn) + } else { + logger.Infof("channel %d references invalid parent ID %d", id, pid) + } +} + +func (c *channelMap) addSubChannel(id int64, sc *SubChannel, pid int64) { + c.mu.Lock() + defer c.mu.Unlock() + sc.trace.cm = c + c.subChannels[id] = sc + if p := c.channels[pid]; p != nil { + p.addChild(id, sc) + } else { + logger.Infof("subchannel %d references invalid parent ID %d", id, pid) + } +} + +func (c *channelMap) addSocket(s *Socket) { + c.mu.Lock() + defer c.mu.Unlock() + s.cm = c + c.sockets[s.ID] = s + if s.Parent == nil { + logger.Infof("normal socket %d has no parent", s.ID) + } + s.Parent.(entry).addChild(s.ID, s) +} + +// removeEntry triggers the removal of an entry, which may not indeed delete the +// entry, if it has to wait on the deletion of its children and until no other +// entity's channel trace references it. It may lead to a chain of entry +// deletion. For example, deleting the last socket of a gracefully shutting down +// server will lead to the server being also deleted. +func (c *channelMap) removeEntry(id int64) { + c.mu.Lock() + defer c.mu.Unlock() + c.findEntry(id).triggerDelete() +} + +// tracedChannel represents tracing operations which are present on both +// channels and subChannels. +type tracedChannel interface { + getChannelTrace() *ChannelTrace + incrTraceRefCount() + decrTraceRefCount() + getRefName() string +} + +// c.mu must be held by the caller +func (c *channelMap) decrTraceRefCount(id int64) { + e := c.findEntry(id) + if v, ok := e.(tracedChannel); ok { + v.decrTraceRefCount() + e.deleteSelfIfReady() + } +} + +// c.mu must be held by the caller. +func (c *channelMap) findEntry(id int64) entry { + if v, ok := c.channels[id]; ok { + return v + } + if v, ok := c.subChannels[id]; ok { + return v + } + if v, ok := c.servers[id]; ok { + return v + } + if v, ok := c.sockets[id]; ok { + return v + } + return &dummyEntry{idNotFound: id} +} + +// c.mu must be held by the caller +// +// deleteEntry deletes an entry from the channelMap. Before calling this method, +// caller must check this entry is ready to be deleted, i.e removeEntry() has +// been called on it, and no children still exist. +func (c *channelMap) deleteEntry(id int64) entry { + if v, ok := c.sockets[id]; ok { + delete(c.sockets, id) + return v + } + if v, ok := c.subChannels[id]; ok { + delete(c.subChannels, id) + return v + } + if v, ok := c.channels[id]; ok { + delete(c.channels, id) + delete(c.topLevelChannels, id) + return v + } + if v, ok := c.servers[id]; ok { + delete(c.servers, id) + return v + } + return &dummyEntry{idNotFound: id} +} + +func (c *channelMap) traceEvent(id int64, desc *TraceEvent) { + c.mu.Lock() + defer c.mu.Unlock() + child := c.findEntry(id) + childTC, ok := child.(tracedChannel) + if !ok { + return + } + childTC.getChannelTrace().append(&traceEvent{Desc: desc.Desc, Severity: desc.Severity, Timestamp: time.Now()}) + if desc.Parent != nil { + parent := c.findEntry(child.getParentID()) + var chanType RefChannelType + switch child.(type) { + case *Channel: + chanType = RefChannel + case *SubChannel: + chanType = RefSubChannel + } + if parentTC, ok := parent.(tracedChannel); ok { + parentTC.getChannelTrace().append(&traceEvent{ + Desc: desc.Parent.Desc, + Severity: desc.Parent.Severity, + Timestamp: time.Now(), + RefID: id, + RefName: childTC.getRefName(), + RefType: chanType, + }) + childTC.incrTraceRefCount() + } + } +} + +type int64Slice []int64 + +func (s int64Slice) Len() int { return len(s) } +func (s int64Slice) Swap(i, j int) { s[i], s[j] = s[j], s[i] } +func (s int64Slice) Less(i, j int) bool { return s[i] < s[j] } + +func copyMap(m map[int64]string) map[int64]string { + n := make(map[int64]string) + for k, v := range m { + n[k] = v + } + return n +} + +func min(a, b int) int { + if a < b { + return a + } + return b +} + +func (c *channelMap) getTopChannels(id int64, maxResults int) ([]*Channel, bool) { + if maxResults <= 0 { + maxResults = EntriesPerPage + } + c.mu.RLock() + defer c.mu.RUnlock() + l := int64(len(c.topLevelChannels)) + ids := make([]int64, 0, l) + + for k := range c.topLevelChannels { + ids = append(ids, k) + } + sort.Sort(int64Slice(ids)) + idx := sort.Search(len(ids), func(i int) bool { return ids[i] >= id }) + end := true + var t []*Channel + for _, v := range ids[idx:] { + if len(t) == maxResults { + end = false + break + } + if cn, ok := c.channels[v]; ok { + t = append(t, cn) + } + } + return t, end +} + +func (c *channelMap) getServers(id int64, maxResults int) ([]*Server, bool) { + if maxResults <= 0 { + maxResults = EntriesPerPage + } + c.mu.RLock() + defer c.mu.RUnlock() + ids := make([]int64, 0, len(c.servers)) + for k := range c.servers { + ids = append(ids, k) + } + sort.Sort(int64Slice(ids)) + idx := sort.Search(len(ids), func(i int) bool { return ids[i] >= id }) + end := true + var s []*Server + for _, v := range ids[idx:] { + if len(s) == maxResults { + end = false + break + } + if svr, ok := c.servers[v]; ok { + s = append(s, svr) + } + } + return s, end +} + +func (c *channelMap) getServerSockets(id int64, startID int64, maxResults int) ([]*Socket, bool) { + if maxResults <= 0 { + maxResults = EntriesPerPage + } + c.mu.RLock() + defer c.mu.RUnlock() + svr, ok := c.servers[id] + if !ok { + // server with id doesn't exist. + return nil, true + } + svrskts := svr.sockets + ids := make([]int64, 0, len(svrskts)) + sks := make([]*Socket, 0, min(len(svrskts), maxResults)) + for k := range svrskts { + ids = append(ids, k) + } + sort.Sort(int64Slice(ids)) + idx := sort.Search(len(ids), func(i int) bool { return ids[i] >= startID }) + end := true + for _, v := range ids[idx:] { + if len(sks) == maxResults { + end = false + break + } + if ns, ok := c.sockets[v]; ok { + sks = append(sks, ns) + } + } + return sks, end +} + +func (c *channelMap) getChannel(id int64) *Channel { + c.mu.RLock() + defer c.mu.RUnlock() + return c.channels[id] +} + +func (c *channelMap) getSubChannel(id int64) *SubChannel { + c.mu.RLock() + defer c.mu.RUnlock() + return c.subChannels[id] +} + +func (c *channelMap) getSocket(id int64) *Socket { + c.mu.RLock() + defer c.mu.RUnlock() + return c.sockets[id] +} + +func (c *channelMap) getServer(id int64) *Server { + c.mu.RLock() + defer c.mu.RUnlock() + return c.servers[id] +} + +type dummyEntry struct { + // dummyEntry is a fake entry to handle entry not found case. + idNotFound int64 + Entity +} + +func (d *dummyEntry) String() string { + return fmt.Sprintf("non-existent entity #%d", d.idNotFound) +} + +func (d *dummyEntry) ID() int64 { return d.idNotFound } + +func (d *dummyEntry) addChild(id int64, e entry) { + // Note: It is possible for a normal program to reach here under race + // condition. For example, there could be a race between ClientConn.Close() + // info being propagated to addrConn and http2Client. ClientConn.Close() + // cancel the context and result in http2Client to error. The error info is + // then caught by transport monitor and before addrConn.tearDown() is called + // in side ClientConn.Close(). Therefore, the addrConn will create a new + // transport. And when registering the new transport in channelz, its parent + // addrConn could have already been torn down and deleted from channelz + // tracking, and thus reach the code here. + logger.Infof("attempt to add child of type %T with id %d to a parent (id=%d) that doesn't currently exist", e, id, d.idNotFound) +} + +func (d *dummyEntry) deleteChild(id int64) { + // It is possible for a normal program to reach here under race condition. + // Refer to the example described in addChild(). + logger.Infof("attempt to delete child with id %d from a parent (id=%d) that doesn't currently exist", id, d.idNotFound) +} + +func (d *dummyEntry) triggerDelete() { + logger.Warningf("attempt to delete an entry (id=%d) that doesn't currently exist", d.idNotFound) +} + +func (*dummyEntry) deleteSelfIfReady() { + // code should not reach here. deleteSelfIfReady is always called on an existing entry. +} + +func (*dummyEntry) getParentID() int64 { + return 0 +} + +// Entity is implemented by all channelz types. +type Entity interface { + isEntity() + fmt.Stringer + id() int64 +} diff --git a/vendor/google.golang.org/grpc/internal/channelz/funcs.go b/vendor/google.golang.org/grpc/internal/channelz/funcs.go index fc094f344..03e24e150 100644 --- a/vendor/google.golang.org/grpc/internal/channelz/funcs.go +++ b/vendor/google.golang.org/grpc/internal/channelz/funcs.go @@ -16,47 +16,32 @@ * */ -// Package channelz defines APIs for enabling channelz service, entry +// Package channelz defines internal APIs for enabling channelz service, entry // registration/deletion, and accessing channelz data. It also defines channelz // metric struct formats. -// -// All APIs in this package are experimental. package channelz import ( - "errors" - "sort" - "sync" "sync/atomic" "time" - "google.golang.org/grpc/grpclog" "google.golang.org/grpc/internal" ) -const ( - defaultMaxTraceEntry int32 = 30 -) - var ( // IDGen is the global channelz entity ID generator. It should not be used // outside this package except by tests. IDGen IDGenerator - db dbWrapper - // EntryPerPage defines the number of channelz entries to be shown on a web page. - EntryPerPage = int64(50) - curState int32 - maxTraceEntry = defaultMaxTraceEntry + db *channelMap = newChannelMap() + // EntriesPerPage defines the number of channelz entries to be shown on a web page. + EntriesPerPage = 50 + curState int32 ) // TurnOn turns on channelz data collection. func TurnOn() { - if !IsOn() { - db.set(newChannelMap()) - IDGen.Reset() - atomic.StoreInt32(&curState, 1) - } + atomic.StoreInt32(&curState, 1) } func init() { @@ -70,49 +55,15 @@ func IsOn() bool { return atomic.LoadInt32(&curState) == 1 } -// SetMaxTraceEntry sets maximum number of trace entry per entity (i.e. channel/subchannel). -// Setting it to 0 will disable channel tracing. -func SetMaxTraceEntry(i int32) { - atomic.StoreInt32(&maxTraceEntry, i) -} - -// ResetMaxTraceEntryToDefault resets the maximum number of trace entry per entity to default. -func ResetMaxTraceEntryToDefault() { - atomic.StoreInt32(&maxTraceEntry, defaultMaxTraceEntry) -} - -func getMaxTraceEntry() int { - i := atomic.LoadInt32(&maxTraceEntry) - return int(i) -} - -// dbWarpper wraps around a reference to internal channelz data storage, and -// provide synchronized functionality to set and get the reference. -type dbWrapper struct { - mu sync.RWMutex - DB *channelMap -} - -func (d *dbWrapper) set(db *channelMap) { - d.mu.Lock() - d.DB = db - d.mu.Unlock() -} - -func (d *dbWrapper) get() *channelMap { - d.mu.RLock() - defer d.mu.RUnlock() - return d.DB -} - // GetTopChannels returns a slice of top channel's ChannelMetric, along with a // boolean indicating whether there's more top channels to be queried for. // -// The arg id specifies that only top channel with id at or above it will be included -// in the result. The returned slice is up to a length of the arg maxResults or -// EntryPerPage if maxResults is zero, and is sorted in ascending id order. -func GetTopChannels(id int64, maxResults int64) ([]*ChannelMetric, bool) { - return db.get().GetTopChannels(id, maxResults) +// The arg id specifies that only top channel with id at or above it will be +// included in the result. The returned slice is up to a length of the arg +// maxResults or EntriesPerPage if maxResults is zero, and is sorted in ascending +// id order. +func GetTopChannels(id int64, maxResults int) ([]*Channel, bool) { + return db.getTopChannels(id, maxResults) } // GetServers returns a slice of server's ServerMetric, along with a @@ -120,73 +71,69 @@ func GetTopChannels(id int64, maxResults int64) ([]*ChannelMetric, bool) { // // The arg id specifies that only server with id at or above it will be included // in the result. The returned slice is up to a length of the arg maxResults or -// EntryPerPage if maxResults is zero, and is sorted in ascending id order. -func GetServers(id int64, maxResults int64) ([]*ServerMetric, bool) { - return db.get().GetServers(id, maxResults) +// EntriesPerPage if maxResults is zero, and is sorted in ascending id order. +func GetServers(id int64, maxResults int) ([]*Server, bool) { + return db.getServers(id, maxResults) } // GetServerSockets returns a slice of server's (identified by id) normal socket's -// SocketMetric, along with a boolean indicating whether there's more sockets to +// SocketMetrics, along with a boolean indicating whether there's more sockets to // be queried for. // // The arg startID specifies that only sockets with id at or above it will be // included in the result. The returned slice is up to a length of the arg maxResults -// or EntryPerPage if maxResults is zero, and is sorted in ascending id order. -func GetServerSockets(id int64, startID int64, maxResults int64) ([]*SocketMetric, bool) { - return db.get().GetServerSockets(id, startID, maxResults) +// or EntriesPerPage if maxResults is zero, and is sorted in ascending id order. +func GetServerSockets(id int64, startID int64, maxResults int) ([]*Socket, bool) { + return db.getServerSockets(id, startID, maxResults) } -// GetChannel returns the ChannelMetric for the channel (identified by id). -func GetChannel(id int64) *ChannelMetric { - return db.get().GetChannel(id) +// GetChannel returns the Channel for the channel (identified by id). +func GetChannel(id int64) *Channel { + return db.getChannel(id) } -// GetSubChannel returns the SubChannelMetric for the subchannel (identified by id). -func GetSubChannel(id int64) *SubChannelMetric { - return db.get().GetSubChannel(id) +// GetSubChannel returns the SubChannel for the subchannel (identified by id). +func GetSubChannel(id int64) *SubChannel { + return db.getSubChannel(id) } -// GetSocket returns the SocketInternalMetric for the socket (identified by id). -func GetSocket(id int64) *SocketMetric { - return db.get().GetSocket(id) +// GetSocket returns the Socket for the socket (identified by id). +func GetSocket(id int64) *Socket { + return db.getSocket(id) } // GetServer returns the ServerMetric for the server (identified by id). -func GetServer(id int64) *ServerMetric { - return db.get().GetServer(id) +func GetServer(id int64) *Server { + return db.getServer(id) } // RegisterChannel registers the given channel c in the channelz database with -// ref as its reference name, and adds it to the child list of its parent -// (identified by pid). pid == nil means no parent. +// target as its target and reference name, and adds it to the child list of its +// parent. parent == nil means no parent. // // Returns a unique channelz identifier assigned to this channel. // // If channelz is not turned ON, the channelz database is not mutated. -func RegisterChannel(c Channel, pid *Identifier, ref string) *Identifier { +func RegisterChannel(parent *Channel, target string) *Channel { id := IDGen.genID() - var parent int64 - isTopChannel := true - if pid != nil { - isTopChannel = false - parent = pid.Int() - } if !IsOn() { - return newIdentifer(RefChannel, id, pid) + return &Channel{ID: id} } - cn := &channel{ - refName: ref, - c: c, - subChans: make(map[int64]string), + isTopChannel := parent == nil + + cn := &Channel{ + ID: id, + RefName: target, nestedChans: make(map[int64]string), - id: id, - pid: parent, - trace: &channelTrace{createdTime: time.Now(), events: make([]*TraceEvent, 0, getMaxTraceEntry())}, + subChans: make(map[int64]string), + Parent: parent, + trace: &ChannelTrace{CreationTime: time.Now(), Events: make([]*traceEvent, 0, getMaxTraceEntry())}, } - db.get().addChannel(id, cn, isTopChannel, parent) - return newIdentifer(RefChannel, id, pid) + cn.ChannelMetrics.Target.Store(&target) + db.addChannel(id, cn, isTopChannel, cn.getParentID()) + return cn } // RegisterSubChannel registers the given subChannel c in the channelz database @@ -196,555 +143,67 @@ func RegisterChannel(c Channel, pid *Identifier, ref string) *Identifier { // Returns a unique channelz identifier assigned to this subChannel. // // If channelz is not turned ON, the channelz database is not mutated. -func RegisterSubChannel(c Channel, pid *Identifier, ref string) (*Identifier, error) { - if pid == nil { - return nil, errors.New("a SubChannel's parent id cannot be nil") - } +func RegisterSubChannel(parent *Channel, ref string) *SubChannel { id := IDGen.genID() - if !IsOn() { - return newIdentifer(RefSubChannel, id, pid), nil + sc := &SubChannel{ + ID: id, + RefName: ref, + parent: parent, } - sc := &subChannel{ - refName: ref, - c: c, - sockets: make(map[int64]string), - id: id, - pid: pid.Int(), - trace: &channelTrace{createdTime: time.Now(), events: make([]*TraceEvent, 0, getMaxTraceEntry())}, + if !IsOn() { + return sc } - db.get().addSubChannel(id, sc, pid.Int()) - return newIdentifer(RefSubChannel, id, pid), nil + + sc.sockets = make(map[int64]string) + sc.trace = &ChannelTrace{CreationTime: time.Now(), Events: make([]*traceEvent, 0, getMaxTraceEntry())} + db.addSubChannel(id, sc, parent.ID) + return sc } // RegisterServer registers the given server s in channelz database. It returns // the unique channelz tracking id assigned to this server. // // If channelz is not turned ON, the channelz database is not mutated. -func RegisterServer(s Server, ref string) *Identifier { +func RegisterServer(ref string) *Server { id := IDGen.genID() if !IsOn() { - return newIdentifer(RefServer, id, nil) + return &Server{ID: id} } - svr := &server{ - refName: ref, - s: s, + svr := &Server{ + RefName: ref, sockets: make(map[int64]string), listenSockets: make(map[int64]string), - id: id, - } - db.get().addServer(id, svr) - return newIdentifer(RefServer, id, nil) -} - -// RegisterListenSocket registers the given listen socket s in channelz database -// with ref as its reference name, and add it to the child list of its parent -// (identified by pid). It returns the unique channelz tracking id assigned to -// this listen socket. -// -// If channelz is not turned ON, the channelz database is not mutated. -func RegisterListenSocket(s Socket, pid *Identifier, ref string) (*Identifier, error) { - if pid == nil { - return nil, errors.New("a ListenSocket's parent id cannot be 0") + ID: id, } - id := IDGen.genID() - if !IsOn() { - return newIdentifer(RefListenSocket, id, pid), nil - } - - ls := &listenSocket{refName: ref, s: s, id: id, pid: pid.Int()} - db.get().addListenSocket(id, ls, pid.Int()) - return newIdentifer(RefListenSocket, id, pid), nil + db.addServer(id, svr) + return svr } -// RegisterNormalSocket registers the given normal socket s in channelz database +// RegisterSocket registers the given normal socket s in channelz database // with ref as its reference name, and adds it to the child list of its parent -// (identified by pid). It returns the unique channelz tracking id assigned to -// this normal socket. +// (identified by skt.Parent, which must be set). It returns the unique channelz +// tracking id assigned to this normal socket. // // If channelz is not turned ON, the channelz database is not mutated. -func RegisterNormalSocket(s Socket, pid *Identifier, ref string) (*Identifier, error) { - if pid == nil { - return nil, errors.New("a NormalSocket's parent id cannot be 0") - } - id := IDGen.genID() - if !IsOn() { - return newIdentifer(RefNormalSocket, id, pid), nil +func RegisterSocket(skt *Socket) *Socket { + skt.ID = IDGen.genID() + if IsOn() { + db.addSocket(skt) } - - ns := &normalSocket{refName: ref, s: s, id: id, pid: pid.Int()} - db.get().addNormalSocket(id, ns, pid.Int()) - return newIdentifer(RefNormalSocket, id, pid), nil + return skt } // RemoveEntry removes an entry with unique channelz tracking id to be id from // channelz database. // // If channelz is not turned ON, this function is a no-op. -func RemoveEntry(id *Identifier) { +func RemoveEntry(id int64) { if !IsOn() { return } - db.get().removeEntry(id.Int()) -} - -// TraceEventDesc is what the caller of AddTraceEvent should provide to describe -// the event to be added to the channel trace. -// -// The Parent field is optional. It is used for an event that will be recorded -// in the entity's parent trace. -type TraceEventDesc struct { - Desc string - Severity Severity - Parent *TraceEventDesc -} - -// AddTraceEvent adds trace related to the entity with specified id, using the -// provided TraceEventDesc. -// -// If channelz is not turned ON, this will simply log the event descriptions. -func AddTraceEvent(l grpclog.DepthLoggerV2, id *Identifier, depth int, desc *TraceEventDesc) { - // Log only the trace description associated with the bottom most entity. - switch desc.Severity { - case CtUnknown, CtInfo: - l.InfoDepth(depth+1, withParens(id)+desc.Desc) - case CtWarning: - l.WarningDepth(depth+1, withParens(id)+desc.Desc) - case CtError: - l.ErrorDepth(depth+1, withParens(id)+desc.Desc) - } - - if getMaxTraceEntry() == 0 { - return - } - if IsOn() { - db.get().traceEvent(id.Int(), desc) - } -} - -// channelMap is the storage data structure for channelz. -// Methods of channelMap can be divided in two two categories with respect to locking. -// 1. Methods acquire the global lock. -// 2. Methods that can only be called when global lock is held. -// A second type of method need always to be called inside a first type of method. -type channelMap struct { - mu sync.RWMutex - topLevelChannels map[int64]struct{} - servers map[int64]*server - channels map[int64]*channel - subChannels map[int64]*subChannel - listenSockets map[int64]*listenSocket - normalSockets map[int64]*normalSocket -} - -func newChannelMap() *channelMap { - return &channelMap{ - topLevelChannels: make(map[int64]struct{}), - channels: make(map[int64]*channel), - listenSockets: make(map[int64]*listenSocket), - normalSockets: make(map[int64]*normalSocket), - servers: make(map[int64]*server), - subChannels: make(map[int64]*subChannel), - } -} - -func (c *channelMap) addServer(id int64, s *server) { - c.mu.Lock() - s.cm = c - c.servers[id] = s - c.mu.Unlock() -} - -func (c *channelMap) addChannel(id int64, cn *channel, isTopChannel bool, pid int64) { - c.mu.Lock() - cn.cm = c - cn.trace.cm = c - c.channels[id] = cn - if isTopChannel { - c.topLevelChannels[id] = struct{}{} - } else { - c.findEntry(pid).addChild(id, cn) - } - c.mu.Unlock() -} - -func (c *channelMap) addSubChannel(id int64, sc *subChannel, pid int64) { - c.mu.Lock() - sc.cm = c - sc.trace.cm = c - c.subChannels[id] = sc - c.findEntry(pid).addChild(id, sc) - c.mu.Unlock() -} - -func (c *channelMap) addListenSocket(id int64, ls *listenSocket, pid int64) { - c.mu.Lock() - ls.cm = c - c.listenSockets[id] = ls - c.findEntry(pid).addChild(id, ls) - c.mu.Unlock() -} - -func (c *channelMap) addNormalSocket(id int64, ns *normalSocket, pid int64) { - c.mu.Lock() - ns.cm = c - c.normalSockets[id] = ns - c.findEntry(pid).addChild(id, ns) - c.mu.Unlock() -} - -// removeEntry triggers the removal of an entry, which may not indeed delete the entry, if it has to -// wait on the deletion of its children and until no other entity's channel trace references it. -// It may lead to a chain of entry deletion. For example, deleting the last socket of a gracefully -// shutting down server will lead to the server being also deleted. -func (c *channelMap) removeEntry(id int64) { - c.mu.Lock() - c.findEntry(id).triggerDelete() - c.mu.Unlock() -} - -// c.mu must be held by the caller -func (c *channelMap) decrTraceRefCount(id int64) { - e := c.findEntry(id) - if v, ok := e.(tracedChannel); ok { - v.decrTraceRefCount() - e.deleteSelfIfReady() - } -} - -// c.mu must be held by the caller. -func (c *channelMap) findEntry(id int64) entry { - var v entry - var ok bool - if v, ok = c.channels[id]; ok { - return v - } - if v, ok = c.subChannels[id]; ok { - return v - } - if v, ok = c.servers[id]; ok { - return v - } - if v, ok = c.listenSockets[id]; ok { - return v - } - if v, ok = c.normalSockets[id]; ok { - return v - } - return &dummyEntry{idNotFound: id} -} - -// c.mu must be held by the caller -// deleteEntry simply deletes an entry from the channelMap. Before calling this -// method, caller must check this entry is ready to be deleted, i.e removeEntry() -// has been called on it, and no children still exist. -// Conditionals are ordered by the expected frequency of deletion of each entity -// type, in order to optimize performance. -func (c *channelMap) deleteEntry(id int64) { - var ok bool - if _, ok = c.normalSockets[id]; ok { - delete(c.normalSockets, id) - return - } - if _, ok = c.subChannels[id]; ok { - delete(c.subChannels, id) - return - } - if _, ok = c.channels[id]; ok { - delete(c.channels, id) - delete(c.topLevelChannels, id) - return - } - if _, ok = c.listenSockets[id]; ok { - delete(c.listenSockets, id) - return - } - if _, ok = c.servers[id]; ok { - delete(c.servers, id) - return - } -} - -func (c *channelMap) traceEvent(id int64, desc *TraceEventDesc) { - c.mu.Lock() - child := c.findEntry(id) - childTC, ok := child.(tracedChannel) - if !ok { - c.mu.Unlock() - return - } - childTC.getChannelTrace().append(&TraceEvent{Desc: desc.Desc, Severity: desc.Severity, Timestamp: time.Now()}) - if desc.Parent != nil { - parent := c.findEntry(child.getParentID()) - var chanType RefChannelType - switch child.(type) { - case *channel: - chanType = RefChannel - case *subChannel: - chanType = RefSubChannel - } - if parentTC, ok := parent.(tracedChannel); ok { - parentTC.getChannelTrace().append(&TraceEvent{ - Desc: desc.Parent.Desc, - Severity: desc.Parent.Severity, - Timestamp: time.Now(), - RefID: id, - RefName: childTC.getRefName(), - RefType: chanType, - }) - childTC.incrTraceRefCount() - } - } - c.mu.Unlock() -} - -type int64Slice []int64 - -func (s int64Slice) Len() int { return len(s) } -func (s int64Slice) Swap(i, j int) { s[i], s[j] = s[j], s[i] } -func (s int64Slice) Less(i, j int) bool { return s[i] < s[j] } - -func copyMap(m map[int64]string) map[int64]string { - n := make(map[int64]string) - for k, v := range m { - n[k] = v - } - return n -} - -func min(a, b int64) int64 { - if a < b { - return a - } - return b -} - -func (c *channelMap) GetTopChannels(id int64, maxResults int64) ([]*ChannelMetric, bool) { - if maxResults <= 0 { - maxResults = EntryPerPage - } - c.mu.RLock() - l := int64(len(c.topLevelChannels)) - ids := make([]int64, 0, l) - cns := make([]*channel, 0, min(l, maxResults)) - - for k := range c.topLevelChannels { - ids = append(ids, k) - } - sort.Sort(int64Slice(ids)) - idx := sort.Search(len(ids), func(i int) bool { return ids[i] >= id }) - count := int64(0) - var end bool - var t []*ChannelMetric - for i, v := range ids[idx:] { - if count == maxResults { - break - } - if cn, ok := c.channels[v]; ok { - cns = append(cns, cn) - t = append(t, &ChannelMetric{ - NestedChans: copyMap(cn.nestedChans), - SubChans: copyMap(cn.subChans), - }) - count++ - } - if i == len(ids[idx:])-1 { - end = true - break - } - } - c.mu.RUnlock() - if count == 0 { - end = true - } - - for i, cn := range cns { - t[i].ChannelData = cn.c.ChannelzMetric() - t[i].ID = cn.id - t[i].RefName = cn.refName - t[i].Trace = cn.trace.dumpData() - } - return t, end -} - -func (c *channelMap) GetServers(id, maxResults int64) ([]*ServerMetric, bool) { - if maxResults <= 0 { - maxResults = EntryPerPage - } - c.mu.RLock() - l := int64(len(c.servers)) - ids := make([]int64, 0, l) - ss := make([]*server, 0, min(l, maxResults)) - for k := range c.servers { - ids = append(ids, k) - } - sort.Sort(int64Slice(ids)) - idx := sort.Search(len(ids), func(i int) bool { return ids[i] >= id }) - count := int64(0) - var end bool - var s []*ServerMetric - for i, v := range ids[idx:] { - if count == maxResults { - break - } - if svr, ok := c.servers[v]; ok { - ss = append(ss, svr) - s = append(s, &ServerMetric{ - ListenSockets: copyMap(svr.listenSockets), - }) - count++ - } - if i == len(ids[idx:])-1 { - end = true - break - } - } - c.mu.RUnlock() - if count == 0 { - end = true - } - - for i, svr := range ss { - s[i].ServerData = svr.s.ChannelzMetric() - s[i].ID = svr.id - s[i].RefName = svr.refName - } - return s, end -} - -func (c *channelMap) GetServerSockets(id int64, startID int64, maxResults int64) ([]*SocketMetric, bool) { - if maxResults <= 0 { - maxResults = EntryPerPage - } - var svr *server - var ok bool - c.mu.RLock() - if svr, ok = c.servers[id]; !ok { - // server with id doesn't exist. - c.mu.RUnlock() - return nil, true - } - svrskts := svr.sockets - l := int64(len(svrskts)) - ids := make([]int64, 0, l) - sks := make([]*normalSocket, 0, min(l, maxResults)) - for k := range svrskts { - ids = append(ids, k) - } - sort.Sort(int64Slice(ids)) - idx := sort.Search(len(ids), func(i int) bool { return ids[i] >= startID }) - count := int64(0) - var end bool - for i, v := range ids[idx:] { - if count == maxResults { - break - } - if ns, ok := c.normalSockets[v]; ok { - sks = append(sks, ns) - count++ - } - if i == len(ids[idx:])-1 { - end = true - break - } - } - c.mu.RUnlock() - if count == 0 { - end = true - } - s := make([]*SocketMetric, 0, len(sks)) - for _, ns := range sks { - sm := &SocketMetric{} - sm.SocketData = ns.s.ChannelzMetric() - sm.ID = ns.id - sm.RefName = ns.refName - s = append(s, sm) - } - return s, end -} - -func (c *channelMap) GetChannel(id int64) *ChannelMetric { - cm := &ChannelMetric{} - var cn *channel - var ok bool - c.mu.RLock() - if cn, ok = c.channels[id]; !ok { - // channel with id doesn't exist. - c.mu.RUnlock() - return nil - } - cm.NestedChans = copyMap(cn.nestedChans) - cm.SubChans = copyMap(cn.subChans) - // cn.c can be set to &dummyChannel{} when deleteSelfFromMap is called. Save a copy of cn.c when - // holding the lock to prevent potential data race. - chanCopy := cn.c - c.mu.RUnlock() - cm.ChannelData = chanCopy.ChannelzMetric() - cm.ID = cn.id - cm.RefName = cn.refName - cm.Trace = cn.trace.dumpData() - return cm -} - -func (c *channelMap) GetSubChannel(id int64) *SubChannelMetric { - cm := &SubChannelMetric{} - var sc *subChannel - var ok bool - c.mu.RLock() - if sc, ok = c.subChannels[id]; !ok { - // subchannel with id doesn't exist. - c.mu.RUnlock() - return nil - } - cm.Sockets = copyMap(sc.sockets) - // sc.c can be set to &dummyChannel{} when deleteSelfFromMap is called. Save a copy of sc.c when - // holding the lock to prevent potential data race. - chanCopy := sc.c - c.mu.RUnlock() - cm.ChannelData = chanCopy.ChannelzMetric() - cm.ID = sc.id - cm.RefName = sc.refName - cm.Trace = sc.trace.dumpData() - return cm -} - -func (c *channelMap) GetSocket(id int64) *SocketMetric { - sm := &SocketMetric{} - c.mu.RLock() - if ls, ok := c.listenSockets[id]; ok { - c.mu.RUnlock() - sm.SocketData = ls.s.ChannelzMetric() - sm.ID = ls.id - sm.RefName = ls.refName - return sm - } - if ns, ok := c.normalSockets[id]; ok { - c.mu.RUnlock() - sm.SocketData = ns.s.ChannelzMetric() - sm.ID = ns.id - sm.RefName = ns.refName - return sm - } - c.mu.RUnlock() - return nil -} - -func (c *channelMap) GetServer(id int64) *ServerMetric { - sm := &ServerMetric{} - var svr *server - var ok bool - c.mu.RLock() - if svr, ok = c.servers[id]; !ok { - c.mu.RUnlock() - return nil - } - sm.ListenSockets = copyMap(svr.listenSockets) - c.mu.RUnlock() - sm.ID = svr.id - sm.RefName = svr.refName - sm.ServerData = svr.s.ChannelzMetric() - return sm + db.removeEntry(id) } // IDGenerator is an incrementing atomic that tracks IDs for channelz entities. @@ -761,3 +220,11 @@ func (i *IDGenerator) Reset() { func (i *IDGenerator) genID() int64 { return atomic.AddInt64(&i.id, 1) } + +// Identifier is an opaque channelz identifier used to expose channelz symbols +// outside of grpc. Currently only implemented by Channel since no other +// types require exposure outside grpc. +type Identifier interface { + Entity + channelzIdentifier() +} diff --git a/vendor/google.golang.org/grpc/internal/channelz/id.go b/vendor/google.golang.org/grpc/internal/channelz/id.go deleted file mode 100644 index c9a27acd3..000000000 --- a/vendor/google.golang.org/grpc/internal/channelz/id.go +++ /dev/null @@ -1,75 +0,0 @@ -/* - * - * Copyright 2022 gRPC authors. - * - * 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 channelz - -import "fmt" - -// Identifier is an opaque identifier which uniquely identifies an entity in the -// channelz database. -type Identifier struct { - typ RefChannelType - id int64 - str string - pid *Identifier -} - -// Type returns the entity type corresponding to id. -func (id *Identifier) Type() RefChannelType { - return id.typ -} - -// Int returns the integer identifier corresponding to id. -func (id *Identifier) Int() int64 { - return id.id -} - -// String returns a string representation of the entity corresponding to id. -// -// This includes some information about the parent as well. Examples: -// Top-level channel: [Channel #channel-number] -// Nested channel: [Channel #parent-channel-number Channel #channel-number] -// Sub channel: [Channel #parent-channel SubChannel #subchannel-number] -func (id *Identifier) String() string { - return id.str -} - -// Equal returns true if other is the same as id. -func (id *Identifier) Equal(other *Identifier) bool { - if (id != nil) != (other != nil) { - return false - } - if id == nil && other == nil { - return true - } - return id.typ == other.typ && id.id == other.id && id.pid == other.pid -} - -// NewIdentifierForTesting returns a new opaque identifier to be used only for -// testing purposes. -func NewIdentifierForTesting(typ RefChannelType, id int64, pid *Identifier) *Identifier { - return newIdentifer(typ, id, pid) -} - -func newIdentifer(typ RefChannelType, id int64, pid *Identifier) *Identifier { - str := fmt.Sprintf("%s #%d", typ, id) - if pid != nil { - str = fmt.Sprintf("%s %s", pid, str) - } - return &Identifier{typ: typ, id: id, str: str, pid: pid} -} diff --git a/vendor/google.golang.org/grpc/internal/channelz/logging.go b/vendor/google.golang.org/grpc/internal/channelz/logging.go index f89e6f77b..ee4d72125 100644 --- a/vendor/google.golang.org/grpc/internal/channelz/logging.go +++ b/vendor/google.golang.org/grpc/internal/channelz/logging.go @@ -26,53 +26,49 @@ import ( var logger = grpclog.Component("channelz") -func withParens(id *Identifier) string { - return "[" + id.String() + "] " -} - // Info logs and adds a trace event if channelz is on. -func Info(l grpclog.DepthLoggerV2, id *Identifier, args ...any) { - AddTraceEvent(l, id, 1, &TraceEventDesc{ +func Info(l grpclog.DepthLoggerV2, e Entity, args ...any) { + AddTraceEvent(l, e, 1, &TraceEvent{ Desc: fmt.Sprint(args...), Severity: CtInfo, }) } // Infof logs and adds a trace event if channelz is on. -func Infof(l grpclog.DepthLoggerV2, id *Identifier, format string, args ...any) { - AddTraceEvent(l, id, 1, &TraceEventDesc{ +func Infof(l grpclog.DepthLoggerV2, e Entity, format string, args ...any) { + AddTraceEvent(l, e, 1, &TraceEvent{ Desc: fmt.Sprintf(format, args...), Severity: CtInfo, }) } // Warning logs and adds a trace event if channelz is on. -func Warning(l grpclog.DepthLoggerV2, id *Identifier, args ...any) { - AddTraceEvent(l, id, 1, &TraceEventDesc{ +func Warning(l grpclog.DepthLoggerV2, e Entity, args ...any) { + AddTraceEvent(l, e, 1, &TraceEvent{ Desc: fmt.Sprint(args...), Severity: CtWarning, }) } // Warningf logs and adds a trace event if channelz is on. -func Warningf(l grpclog.DepthLoggerV2, id *Identifier, format string, args ...any) { - AddTraceEvent(l, id, 1, &TraceEventDesc{ +func Warningf(l grpclog.DepthLoggerV2, e Entity, format string, args ...any) { + AddTraceEvent(l, e, 1, &TraceEvent{ Desc: fmt.Sprintf(format, args...), Severity: CtWarning, }) } // Error logs and adds a trace event if channelz is on. -func Error(l grpclog.DepthLoggerV2, id *Identifier, args ...any) { - AddTraceEvent(l, id, 1, &TraceEventDesc{ +func Error(l grpclog.DepthLoggerV2, e Entity, args ...any) { + AddTraceEvent(l, e, 1, &TraceEvent{ Desc: fmt.Sprint(args...), Severity: CtError, }) } // Errorf logs and adds a trace event if channelz is on. -func Errorf(l grpclog.DepthLoggerV2, id *Identifier, format string, args ...any) { - AddTraceEvent(l, id, 1, &TraceEventDesc{ +func Errorf(l grpclog.DepthLoggerV2, e Entity, format string, args ...any) { + AddTraceEvent(l, e, 1, &TraceEvent{ Desc: fmt.Sprintf(format, args...), Severity: CtError, }) diff --git a/vendor/google.golang.org/grpc/internal/channelz/server.go b/vendor/google.golang.org/grpc/internal/channelz/server.go new file mode 100644 index 000000000..cdfc49d6e --- /dev/null +++ b/vendor/google.golang.org/grpc/internal/channelz/server.go @@ -0,0 +1,119 @@ +/* + * + * Copyright 2024 gRPC authors. + * + * 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 channelz + +import ( + "fmt" + "sync/atomic" +) + +// Server is the channelz representation of a server. +type Server struct { + Entity + ID int64 + RefName string + + ServerMetrics ServerMetrics + + closeCalled bool + sockets map[int64]string + listenSockets map[int64]string + cm *channelMap +} + +// ServerMetrics defines a struct containing metrics for servers. +type ServerMetrics struct { + // The number of incoming calls started on the server. + CallsStarted atomic.Int64 + // The number of incoming calls that have completed with an OK status. + CallsSucceeded atomic.Int64 + // The number of incoming calls that have a completed with a non-OK status. + CallsFailed atomic.Int64 + // The last time a call was started on the server. + LastCallStartedTimestamp atomic.Int64 +} + +// NewServerMetricsForTesting returns an initialized ServerMetrics. +func NewServerMetricsForTesting(started, succeeded, failed, timestamp int64) *ServerMetrics { + sm := &ServerMetrics{} + sm.CallsStarted.Store(started) + sm.CallsSucceeded.Store(succeeded) + sm.CallsFailed.Store(failed) + sm.LastCallStartedTimestamp.Store(timestamp) + return sm +} + +func (sm *ServerMetrics) CopyFrom(o *ServerMetrics) { + sm.CallsStarted.Store(o.CallsStarted.Load()) + sm.CallsSucceeded.Store(o.CallsSucceeded.Load()) + sm.CallsFailed.Store(o.CallsFailed.Load()) + sm.LastCallStartedTimestamp.Store(o.LastCallStartedTimestamp.Load()) +} + +// ListenSockets returns the listening sockets for s. +func (s *Server) ListenSockets() map[int64]string { + db.mu.RLock() + defer db.mu.RUnlock() + return copyMap(s.listenSockets) +} + +// String returns a printable description of s. +func (s *Server) String() string { + return fmt.Sprintf("Server #%d", s.ID) +} + +func (s *Server) id() int64 { + return s.ID +} + +func (s *Server) addChild(id int64, e entry) { + switch v := e.(type) { + case *Socket: + switch v.SocketType { + case SocketTypeNormal: + s.sockets[id] = v.RefName + case SocketTypeListen: + s.listenSockets[id] = v.RefName + } + default: + logger.Errorf("cannot add a child (id = %d) of type %T to a server", id, e) + } +} + +func (s *Server) deleteChild(id int64) { + delete(s.sockets, id) + delete(s.listenSockets, id) + s.deleteSelfIfReady() +} + +func (s *Server) triggerDelete() { + s.closeCalled = true + s.deleteSelfIfReady() +} + +func (s *Server) deleteSelfIfReady() { + if !s.closeCalled || len(s.sockets)+len(s.listenSockets) != 0 { + return + } + s.cm.deleteEntry(s.ID) +} + +func (s *Server) getParentID() int64 { + return 0 +} diff --git a/vendor/google.golang.org/grpc/internal/channelz/socket.go b/vendor/google.golang.org/grpc/internal/channelz/socket.go new file mode 100644 index 000000000..fa64834b2 --- /dev/null +++ b/vendor/google.golang.org/grpc/internal/channelz/socket.go @@ -0,0 +1,130 @@ +/* + * + * Copyright 2024 gRPC authors. + * + * 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 channelz + +import ( + "fmt" + "net" + "sync/atomic" + + "google.golang.org/grpc/credentials" +) + +// SocketMetrics defines the struct that the implementor of Socket interface +// should return from ChannelzMetric(). +type SocketMetrics struct { + // The number of streams that have been started. + StreamsStarted atomic.Int64 + // The number of streams that have ended successfully: + // On client side, receiving frame with eos bit set. + // On server side, sending frame with eos bit set. + StreamsSucceeded atomic.Int64 + // The number of streams that have ended unsuccessfully: + // On client side, termination without receiving frame with eos bit set. + // On server side, termination without sending frame with eos bit set. + StreamsFailed atomic.Int64 + // The number of messages successfully sent on this socket. + MessagesSent atomic.Int64 + MessagesReceived atomic.Int64 + // The number of keep alives sent. This is typically implemented with HTTP/2 + // ping messages. + KeepAlivesSent atomic.Int64 + // The last time a stream was created by this endpoint. Usually unset for + // servers. + LastLocalStreamCreatedTimestamp atomic.Int64 + // The last time a stream was created by the remote endpoint. Usually unset + // for clients. + LastRemoteStreamCreatedTimestamp atomic.Int64 + // The last time a message was sent by this endpoint. + LastMessageSentTimestamp atomic.Int64 + // The last time a message was received by this endpoint. + LastMessageReceivedTimestamp atomic.Int64 +} + +// EphemeralSocketMetrics are metrics that change rapidly and are tracked +// outside of channelz. +type EphemeralSocketMetrics struct { + // The amount of window, granted to the local endpoint by the remote endpoint. + // This may be slightly out of date due to network latency. This does NOT + // include stream level or TCP level flow control info. + LocalFlowControlWindow int64 + // The amount of window, granted to the remote endpoint by the local endpoint. + // This may be slightly out of date due to network latency. This does NOT + // include stream level or TCP level flow control info. + RemoteFlowControlWindow int64 +} + +type SocketType string + +const ( + SocketTypeNormal = "NormalSocket" + SocketTypeListen = "ListenSocket" +) + +type Socket struct { + Entity + SocketType SocketType + ID int64 + Parent Entity + cm *channelMap + SocketMetrics SocketMetrics + EphemeralMetrics func() *EphemeralSocketMetrics + + RefName string + // The locally bound address. Immutable. + LocalAddr net.Addr + // The remote bound address. May be absent. Immutable. + RemoteAddr net.Addr + // Optional, represents the name of the remote endpoint, if different than + // the original target name. Immutable. + RemoteName string + // Immutable. + SocketOptions *SocketOptionData + // Immutable. + Security credentials.ChannelzSecurityValue +} + +func (ls *Socket) String() string { + return fmt.Sprintf("%s %s #%d", ls.Parent, ls.SocketType, ls.ID) +} + +func (ls *Socket) id() int64 { + return ls.ID +} + +func (ls *Socket) addChild(id int64, e entry) { + logger.Errorf("cannot add a child (id = %d) of type %T to a listen socket", id, e) +} + +func (ls *Socket) deleteChild(id int64) { + logger.Errorf("cannot delete a child (id = %d) from a listen socket", id) +} + +func (ls *Socket) triggerDelete() { + ls.cm.deleteEntry(ls.ID) + ls.Parent.(entry).deleteChild(ls.ID) +} + +func (ls *Socket) deleteSelfIfReady() { + logger.Errorf("cannot call deleteSelfIfReady on a listen socket") +} + +func (ls *Socket) getParentID() int64 { + return ls.Parent.id() +} diff --git a/vendor/google.golang.org/grpc/internal/channelz/subchannel.go b/vendor/google.golang.org/grpc/internal/channelz/subchannel.go new file mode 100644 index 000000000..3b88e4cba --- /dev/null +++ b/vendor/google.golang.org/grpc/internal/channelz/subchannel.go @@ -0,0 +1,151 @@ +/* + * + * Copyright 2024 gRPC authors. + * + * 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 channelz + +import ( + "fmt" + "sync/atomic" +) + +// SubChannel is the channelz representation of a subchannel. +type SubChannel struct { + Entity + // ID is the channelz id of this subchannel. + ID int64 + // RefName is the human readable reference string of this subchannel. + RefName string + closeCalled bool + sockets map[int64]string + parent *Channel + trace *ChannelTrace + traceRefCount int32 + + ChannelMetrics ChannelMetrics +} + +func (sc *SubChannel) String() string { + return fmt.Sprintf("%s SubChannel #%d", sc.parent, sc.ID) +} + +func (sc *SubChannel) id() int64 { + return sc.ID +} + +func (sc *SubChannel) Sockets() map[int64]string { + db.mu.RLock() + defer db.mu.RUnlock() + return copyMap(sc.sockets) +} + +func (sc *SubChannel) Trace() *ChannelTrace { + db.mu.RLock() + defer db.mu.RUnlock() + return sc.trace.copy() +} + +func (sc *SubChannel) addChild(id int64, e entry) { + if v, ok := e.(*Socket); ok && v.SocketType == SocketTypeNormal { + sc.sockets[id] = v.RefName + } else { + logger.Errorf("cannot add a child (id = %d) of type %T to a subChannel", id, e) + } +} + +func (sc *SubChannel) deleteChild(id int64) { + delete(sc.sockets, id) + sc.deleteSelfIfReady() +} + +func (sc *SubChannel) triggerDelete() { + sc.closeCalled = true + sc.deleteSelfIfReady() +} + +func (sc *SubChannel) getParentID() int64 { + return sc.parent.ID +} + +// deleteSelfFromTree tries to delete the subchannel from the channelz entry relation tree, which +// means deleting the subchannel reference from its parent's child list. +// +// In order for a subchannel to be deleted from the tree, it must meet the criteria that, removal of +// the corresponding grpc object has been invoked, and the subchannel does not have any children left. +// +// The returned boolean value indicates whether the channel has been successfully deleted from tree. +func (sc *SubChannel) deleteSelfFromTree() (deleted bool) { + if !sc.closeCalled || len(sc.sockets) != 0 { + return false + } + sc.parent.deleteChild(sc.ID) + return true +} + +// deleteSelfFromMap checks whether it is valid to delete the subchannel from the map, which means +// deleting the subchannel from channelz's tracking entirely. Users can no longer use id to query +// the subchannel, and its memory will be garbage collected. +// +// The trace reference count of the subchannel must be 0 in order to be deleted from the map. This is +// specified in the channel tracing gRFC that as long as some other trace has reference to an entity, +// the trace of the referenced entity must not be deleted. In order to release the resource allocated +// by grpc, the reference to the grpc object is reset to a dummy object. +// +// deleteSelfFromMap must be called after deleteSelfFromTree returns true. +// +// It returns a bool to indicate whether the channel can be safely deleted from map. +func (sc *SubChannel) deleteSelfFromMap() (delete bool) { + return sc.getTraceRefCount() == 0 +} + +// deleteSelfIfReady tries to delete the subchannel itself from the channelz database. +// The delete process includes two steps: +// 1. delete the subchannel from the entry relation tree, i.e. delete the subchannel reference from +// its parent's child list. +// 2. delete the subchannel from the map, i.e. delete the subchannel entirely from channelz. Lookup +// by id will return entry not found error. +func (sc *SubChannel) deleteSelfIfReady() { + if !sc.deleteSelfFromTree() { + return + } + if !sc.deleteSelfFromMap() { + return + } + db.deleteEntry(sc.ID) + sc.trace.clear() +} + +func (sc *SubChannel) getChannelTrace() *ChannelTrace { + return sc.trace +} + +func (sc *SubChannel) incrTraceRefCount() { + atomic.AddInt32(&sc.traceRefCount, 1) +} + +func (sc *SubChannel) decrTraceRefCount() { + atomic.AddInt32(&sc.traceRefCount, -1) +} + +func (sc *SubChannel) getTraceRefCount() int { + i := atomic.LoadInt32(&sc.traceRefCount) + return int(i) +} + +func (sc *SubChannel) getRefName() string { + return sc.RefName +} diff --git a/vendor/google.golang.org/grpc/internal/channelz/types_linux.go b/vendor/google.golang.org/grpc/internal/channelz/syscall_linux.go similarity index 83% rename from vendor/google.golang.org/grpc/internal/channelz/types_linux.go rename to vendor/google.golang.org/grpc/internal/channelz/syscall_linux.go index 1b1c4cce3..5ac73ff83 100644 --- a/vendor/google.golang.org/grpc/internal/channelz/types_linux.go +++ b/vendor/google.golang.org/grpc/internal/channelz/syscall_linux.go @@ -49,3 +49,17 @@ func (s *SocketOptionData) Getsockopt(fd uintptr) { s.TCPInfo = v } } + +// GetSocketOption gets the socket option info of the conn. +func GetSocketOption(socket any) *SocketOptionData { + c, ok := socket.(syscall.Conn) + if !ok { + return nil + } + data := &SocketOptionData{} + if rawConn, err := c.SyscallConn(); err == nil { + rawConn.Control(data.Getsockopt) + return data + } + return nil +} diff --git a/vendor/google.golang.org/grpc/internal/channelz/types_nonlinux.go b/vendor/google.golang.org/grpc/internal/channelz/syscall_nonlinux.go similarity index 90% rename from vendor/google.golang.org/grpc/internal/channelz/types_nonlinux.go rename to vendor/google.golang.org/grpc/internal/channelz/syscall_nonlinux.go index 8b06eed1a..d1ed8df6a 100644 --- a/vendor/google.golang.org/grpc/internal/channelz/types_nonlinux.go +++ b/vendor/google.golang.org/grpc/internal/channelz/syscall_nonlinux.go @@ -1,5 +1,4 @@ //go:build !linux -// +build !linux /* * @@ -41,3 +40,8 @@ func (s *SocketOptionData) Getsockopt(fd uintptr) { logger.Warning("Channelz: socket options are not supported on non-linux environments") }) } + +// GetSocketOption gets the socket option info of the conn. +func GetSocketOption(c any) *SocketOptionData { + return nil +} diff --git a/vendor/google.golang.org/grpc/internal/channelz/trace.go b/vendor/google.golang.org/grpc/internal/channelz/trace.go new file mode 100644 index 000000000..36b867403 --- /dev/null +++ b/vendor/google.golang.org/grpc/internal/channelz/trace.go @@ -0,0 +1,204 @@ +/* + * + * Copyright 2018 gRPC authors. + * + * 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 channelz + +import ( + "fmt" + "sync" + "sync/atomic" + "time" + + "google.golang.org/grpc/grpclog" +) + +const ( + defaultMaxTraceEntry int32 = 30 +) + +var maxTraceEntry = defaultMaxTraceEntry + +// SetMaxTraceEntry sets maximum number of trace entries per entity (i.e. +// channel/subchannel). Setting it to 0 will disable channel tracing. +func SetMaxTraceEntry(i int32) { + atomic.StoreInt32(&maxTraceEntry, i) +} + +// ResetMaxTraceEntryToDefault resets the maximum number of trace entries per +// entity to default. +func ResetMaxTraceEntryToDefault() { + atomic.StoreInt32(&maxTraceEntry, defaultMaxTraceEntry) +} + +func getMaxTraceEntry() int { + i := atomic.LoadInt32(&maxTraceEntry) + return int(i) +} + +// traceEvent is an internal representation of a single trace event +type traceEvent struct { + // Desc is a simple description of the trace event. + Desc string + // Severity states the severity of this trace event. + Severity Severity + // Timestamp is the event time. + Timestamp time.Time + // RefID is the id of the entity that gets referenced in the event. RefID is 0 if no other entity is + // involved in this event. + // e.g. SubChannel (id: 4[]) Created. --> RefID = 4, RefName = "" (inside []) + RefID int64 + // RefName is the reference name for the entity that gets referenced in the event. + RefName string + // RefType indicates the referenced entity type, i.e Channel or SubChannel. + RefType RefChannelType +} + +// TraceEvent is what the caller of AddTraceEvent should provide to describe the +// event to be added to the channel trace. +// +// The Parent field is optional. It is used for an event that will be recorded +// in the entity's parent trace. +type TraceEvent struct { + Desc string + Severity Severity + Parent *TraceEvent +} + +type ChannelTrace struct { + cm *channelMap + clearCalled bool + CreationTime time.Time + EventNum int64 + mu sync.Mutex + Events []*traceEvent +} + +func (c *ChannelTrace) copy() *ChannelTrace { + return &ChannelTrace{ + CreationTime: c.CreationTime, + EventNum: c.EventNum, + Events: append(([]*traceEvent)(nil), c.Events...), + } +} + +func (c *ChannelTrace) append(e *traceEvent) { + c.mu.Lock() + if len(c.Events) == getMaxTraceEntry() { + del := c.Events[0] + c.Events = c.Events[1:] + if del.RefID != 0 { + // start recursive cleanup in a goroutine to not block the call originated from grpc. + go func() { + // need to acquire c.cm.mu lock to call the unlocked attemptCleanup func. + c.cm.mu.Lock() + c.cm.decrTraceRefCount(del.RefID) + c.cm.mu.Unlock() + }() + } + } + e.Timestamp = time.Now() + c.Events = append(c.Events, e) + c.EventNum++ + c.mu.Unlock() +} + +func (c *ChannelTrace) clear() { + if c.clearCalled { + return + } + c.clearCalled = true + c.mu.Lock() + for _, e := range c.Events { + if e.RefID != 0 { + // caller should have already held the c.cm.mu lock. + c.cm.decrTraceRefCount(e.RefID) + } + } + c.mu.Unlock() +} + +// Severity is the severity level of a trace event. +// The canonical enumeration of all valid values is here: +// https://github.com/grpc/grpc-proto/blob/9b13d199cc0d4703c7ea26c9c330ba695866eb23/grpc/channelz/v1/channelz.proto#L126. +type Severity int + +const ( + // CtUnknown indicates unknown severity of a trace event. + CtUnknown Severity = iota + // CtInfo indicates info level severity of a trace event. + CtInfo + // CtWarning indicates warning level severity of a trace event. + CtWarning + // CtError indicates error level severity of a trace event. + CtError +) + +// RefChannelType is the type of the entity being referenced in a trace event. +type RefChannelType int + +const ( + // RefUnknown indicates an unknown entity type, the zero value for this type. + RefUnknown RefChannelType = iota + // RefChannel indicates the referenced entity is a Channel. + RefChannel + // RefSubChannel indicates the referenced entity is a SubChannel. + RefSubChannel + // RefServer indicates the referenced entity is a Server. + RefServer + // RefListenSocket indicates the referenced entity is a ListenSocket. + RefListenSocket + // RefNormalSocket indicates the referenced entity is a NormalSocket. + RefNormalSocket +) + +var refChannelTypeToString = map[RefChannelType]string{ + RefUnknown: "Unknown", + RefChannel: "Channel", + RefSubChannel: "SubChannel", + RefServer: "Server", + RefListenSocket: "ListenSocket", + RefNormalSocket: "NormalSocket", +} + +func (r RefChannelType) String() string { + return refChannelTypeToString[r] +} + +// AddTraceEvent adds trace related to the entity with specified id, using the +// provided TraceEventDesc. +// +// If channelz is not turned ON, this will simply log the event descriptions. +func AddTraceEvent(l grpclog.DepthLoggerV2, e Entity, depth int, desc *TraceEvent) { + // Log only the trace description associated with the bottom most entity. + d := fmt.Sprintf("[%s]%s", e, desc.Desc) + switch desc.Severity { + case CtUnknown, CtInfo: + l.InfoDepth(depth+1, d) + case CtWarning: + l.WarningDepth(depth+1, d) + case CtError: + l.ErrorDepth(depth+1, d) + } + + if getMaxTraceEntry() == 0 { + return + } + if IsOn() { + db.traceEvent(e.id(), desc) + } +} diff --git a/vendor/google.golang.org/grpc/internal/channelz/types.go b/vendor/google.golang.org/grpc/internal/channelz/types.go deleted file mode 100644 index 1d4020f53..000000000 --- a/vendor/google.golang.org/grpc/internal/channelz/types.go +++ /dev/null @@ -1,727 +0,0 @@ -/* - * - * Copyright 2018 gRPC authors. - * - * 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 channelz - -import ( - "net" - "sync" - "sync/atomic" - "time" - - "google.golang.org/grpc/connectivity" - "google.golang.org/grpc/credentials" -) - -// entry represents a node in the channelz database. -type entry interface { - // addChild adds a child e, whose channelz id is id to child list - addChild(id int64, e entry) - // deleteChild deletes a child with channelz id to be id from child list - deleteChild(id int64) - // triggerDelete tries to delete self from channelz database. However, if child - // list is not empty, then deletion from the database is on hold until the last - // child is deleted from database. - triggerDelete() - // deleteSelfIfReady check whether triggerDelete() has been called before, and whether child - // list is now empty. If both conditions are met, then delete self from database. - deleteSelfIfReady() - // getParentID returns parent ID of the entry. 0 value parent ID means no parent. - getParentID() int64 -} - -// dummyEntry is a fake entry to handle entry not found case. -type dummyEntry struct { - idNotFound int64 -} - -func (d *dummyEntry) addChild(id int64, e entry) { - // Note: It is possible for a normal program to reach here under race condition. - // For example, there could be a race between ClientConn.Close() info being propagated - // to addrConn and http2Client. ClientConn.Close() cancel the context and result - // in http2Client to error. The error info is then caught by transport monitor - // and before addrConn.tearDown() is called in side ClientConn.Close(). Therefore, - // the addrConn will create a new transport. And when registering the new transport in - // channelz, its parent addrConn could have already been torn down and deleted - // from channelz tracking, and thus reach the code here. - logger.Infof("attempt to add child of type %T with id %d to a parent (id=%d) that doesn't currently exist", e, id, d.idNotFound) -} - -func (d *dummyEntry) deleteChild(id int64) { - // It is possible for a normal program to reach here under race condition. - // Refer to the example described in addChild(). - logger.Infof("attempt to delete child with id %d from a parent (id=%d) that doesn't currently exist", id, d.idNotFound) -} - -func (d *dummyEntry) triggerDelete() { - logger.Warningf("attempt to delete an entry (id=%d) that doesn't currently exist", d.idNotFound) -} - -func (*dummyEntry) deleteSelfIfReady() { - // code should not reach here. deleteSelfIfReady is always called on an existing entry. -} - -func (*dummyEntry) getParentID() int64 { - return 0 -} - -// ChannelMetric defines the info channelz provides for a specific Channel, which -// includes ChannelInternalMetric and channelz-specific data, such as channelz id, -// child list, etc. -type ChannelMetric struct { - // ID is the channelz id of this channel. - ID int64 - // RefName is the human readable reference string of this channel. - RefName string - // ChannelData contains channel internal metric reported by the channel through - // ChannelzMetric(). - ChannelData *ChannelInternalMetric - // NestedChans tracks the nested channel type children of this channel in the format of - // a map from nested channel channelz id to corresponding reference string. - NestedChans map[int64]string - // SubChans tracks the subchannel type children of this channel in the format of a - // map from subchannel channelz id to corresponding reference string. - SubChans map[int64]string - // Sockets tracks the socket type children of this channel in the format of a map - // from socket channelz id to corresponding reference string. - // Note current grpc implementation doesn't allow channel having sockets directly, - // therefore, this is field is unused. - Sockets map[int64]string - // Trace contains the most recent traced events. - Trace *ChannelTrace -} - -// SubChannelMetric defines the info channelz provides for a specific SubChannel, -// which includes ChannelInternalMetric and channelz-specific data, such as -// channelz id, child list, etc. -type SubChannelMetric struct { - // ID is the channelz id of this subchannel. - ID int64 - // RefName is the human readable reference string of this subchannel. - RefName string - // ChannelData contains subchannel internal metric reported by the subchannel - // through ChannelzMetric(). - ChannelData *ChannelInternalMetric - // NestedChans tracks the nested channel type children of this subchannel in the format of - // a map from nested channel channelz id to corresponding reference string. - // Note current grpc implementation doesn't allow subchannel to have nested channels - // as children, therefore, this field is unused. - NestedChans map[int64]string - // SubChans tracks the subchannel type children of this subchannel in the format of a - // map from subchannel channelz id to corresponding reference string. - // Note current grpc implementation doesn't allow subchannel to have subchannels - // as children, therefore, this field is unused. - SubChans map[int64]string - // Sockets tracks the socket type children of this subchannel in the format of a map - // from socket channelz id to corresponding reference string. - Sockets map[int64]string - // Trace contains the most recent traced events. - Trace *ChannelTrace -} - -// ChannelInternalMetric defines the struct that the implementor of Channel interface -// should return from ChannelzMetric(). -type ChannelInternalMetric struct { - // current connectivity state of the channel. - State connectivity.State - // The target this channel originally tried to connect to. May be absent - Target string - // The number of calls started on the channel. - CallsStarted int64 - // The number of calls that have completed with an OK status. - CallsSucceeded int64 - // The number of calls that have a completed with a non-OK status. - CallsFailed int64 - // The last time a call was started on the channel. - LastCallStartedTimestamp time.Time -} - -// ChannelTrace stores traced events on a channel/subchannel and related info. -type ChannelTrace struct { - // EventNum is the number of events that ever got traced (i.e. including those that have been deleted) - EventNum int64 - // CreationTime is the creation time of the trace. - CreationTime time.Time - // Events stores the most recent trace events (up to $maxTraceEntry, newer event will overwrite the - // oldest one) - Events []*TraceEvent -} - -// TraceEvent represent a single trace event -type TraceEvent struct { - // Desc is a simple description of the trace event. - Desc string - // Severity states the severity of this trace event. - Severity Severity - // Timestamp is the event time. - Timestamp time.Time - // RefID is the id of the entity that gets referenced in the event. RefID is 0 if no other entity is - // involved in this event. - // e.g. SubChannel (id: 4[]) Created. --> RefID = 4, RefName = "" (inside []) - RefID int64 - // RefName is the reference name for the entity that gets referenced in the event. - RefName string - // RefType indicates the referenced entity type, i.e Channel or SubChannel. - RefType RefChannelType -} - -// Channel is the interface that should be satisfied in order to be tracked by -// channelz as Channel or SubChannel. -type Channel interface { - ChannelzMetric() *ChannelInternalMetric -} - -type dummyChannel struct{} - -func (d *dummyChannel) ChannelzMetric() *ChannelInternalMetric { - return &ChannelInternalMetric{} -} - -type channel struct { - refName string - c Channel - closeCalled bool - nestedChans map[int64]string - subChans map[int64]string - id int64 - pid int64 - cm *channelMap - trace *channelTrace - // traceRefCount is the number of trace events that reference this channel. - // Non-zero traceRefCount means the trace of this channel cannot be deleted. - traceRefCount int32 -} - -func (c *channel) addChild(id int64, e entry) { - switch v := e.(type) { - case *subChannel: - c.subChans[id] = v.refName - case *channel: - c.nestedChans[id] = v.refName - default: - logger.Errorf("cannot add a child (id = %d) of type %T to a channel", id, e) - } -} - -func (c *channel) deleteChild(id int64) { - delete(c.subChans, id) - delete(c.nestedChans, id) - c.deleteSelfIfReady() -} - -func (c *channel) triggerDelete() { - c.closeCalled = true - c.deleteSelfIfReady() -} - -func (c *channel) getParentID() int64 { - return c.pid -} - -// deleteSelfFromTree tries to delete the channel from the channelz entry relation tree, which means -// deleting the channel reference from its parent's child list. -// -// In order for a channel to be deleted from the tree, it must meet the criteria that, removal of the -// corresponding grpc object has been invoked, and the channel does not have any children left. -// -// The returned boolean value indicates whether the channel has been successfully deleted from tree. -func (c *channel) deleteSelfFromTree() (deleted bool) { - if !c.closeCalled || len(c.subChans)+len(c.nestedChans) != 0 { - return false - } - // not top channel - if c.pid != 0 { - c.cm.findEntry(c.pid).deleteChild(c.id) - } - return true -} - -// deleteSelfFromMap checks whether it is valid to delete the channel from the map, which means -// deleting the channel from channelz's tracking entirely. Users can no longer use id to query the -// channel, and its memory will be garbage collected. -// -// The trace reference count of the channel must be 0 in order to be deleted from the map. This is -// specified in the channel tracing gRFC that as long as some other trace has reference to an entity, -// the trace of the referenced entity must not be deleted. In order to release the resource allocated -// by grpc, the reference to the grpc object is reset to a dummy object. -// -// deleteSelfFromMap must be called after deleteSelfFromTree returns true. -// -// It returns a bool to indicate whether the channel can be safely deleted from map. -func (c *channel) deleteSelfFromMap() (delete bool) { - if c.getTraceRefCount() != 0 { - c.c = &dummyChannel{} - return false - } - return true -} - -// deleteSelfIfReady tries to delete the channel itself from the channelz database. -// The delete process includes two steps: -// 1. delete the channel from the entry relation tree, i.e. delete the channel reference from its -// parent's child list. -// 2. delete the channel from the map, i.e. delete the channel entirely from channelz. Lookup by id -// will return entry not found error. -func (c *channel) deleteSelfIfReady() { - if !c.deleteSelfFromTree() { - return - } - if !c.deleteSelfFromMap() { - return - } - c.cm.deleteEntry(c.id) - c.trace.clear() -} - -func (c *channel) getChannelTrace() *channelTrace { - return c.trace -} - -func (c *channel) incrTraceRefCount() { - atomic.AddInt32(&c.traceRefCount, 1) -} - -func (c *channel) decrTraceRefCount() { - atomic.AddInt32(&c.traceRefCount, -1) -} - -func (c *channel) getTraceRefCount() int { - i := atomic.LoadInt32(&c.traceRefCount) - return int(i) -} - -func (c *channel) getRefName() string { - return c.refName -} - -type subChannel struct { - refName string - c Channel - closeCalled bool - sockets map[int64]string - id int64 - pid int64 - cm *channelMap - trace *channelTrace - traceRefCount int32 -} - -func (sc *subChannel) addChild(id int64, e entry) { - if v, ok := e.(*normalSocket); ok { - sc.sockets[id] = v.refName - } else { - logger.Errorf("cannot add a child (id = %d) of type %T to a subChannel", id, e) - } -} - -func (sc *subChannel) deleteChild(id int64) { - delete(sc.sockets, id) - sc.deleteSelfIfReady() -} - -func (sc *subChannel) triggerDelete() { - sc.closeCalled = true - sc.deleteSelfIfReady() -} - -func (sc *subChannel) getParentID() int64 { - return sc.pid -} - -// deleteSelfFromTree tries to delete the subchannel from the channelz entry relation tree, which -// means deleting the subchannel reference from its parent's child list. -// -// In order for a subchannel to be deleted from the tree, it must meet the criteria that, removal of -// the corresponding grpc object has been invoked, and the subchannel does not have any children left. -// -// The returned boolean value indicates whether the channel has been successfully deleted from tree. -func (sc *subChannel) deleteSelfFromTree() (deleted bool) { - if !sc.closeCalled || len(sc.sockets) != 0 { - return false - } - sc.cm.findEntry(sc.pid).deleteChild(sc.id) - return true -} - -// deleteSelfFromMap checks whether it is valid to delete the subchannel from the map, which means -// deleting the subchannel from channelz's tracking entirely. Users can no longer use id to query -// the subchannel, and its memory will be garbage collected. -// -// The trace reference count of the subchannel must be 0 in order to be deleted from the map. This is -// specified in the channel tracing gRFC that as long as some other trace has reference to an entity, -// the trace of the referenced entity must not be deleted. In order to release the resource allocated -// by grpc, the reference to the grpc object is reset to a dummy object. -// -// deleteSelfFromMap must be called after deleteSelfFromTree returns true. -// -// It returns a bool to indicate whether the channel can be safely deleted from map. -func (sc *subChannel) deleteSelfFromMap() (delete bool) { - if sc.getTraceRefCount() != 0 { - // free the grpc struct (i.e. addrConn) - sc.c = &dummyChannel{} - return false - } - return true -} - -// deleteSelfIfReady tries to delete the subchannel itself from the channelz database. -// The delete process includes two steps: -// 1. delete the subchannel from the entry relation tree, i.e. delete the subchannel reference from -// its parent's child list. -// 2. delete the subchannel from the map, i.e. delete the subchannel entirely from channelz. Lookup -// by id will return entry not found error. -func (sc *subChannel) deleteSelfIfReady() { - if !sc.deleteSelfFromTree() { - return - } - if !sc.deleteSelfFromMap() { - return - } - sc.cm.deleteEntry(sc.id) - sc.trace.clear() -} - -func (sc *subChannel) getChannelTrace() *channelTrace { - return sc.trace -} - -func (sc *subChannel) incrTraceRefCount() { - atomic.AddInt32(&sc.traceRefCount, 1) -} - -func (sc *subChannel) decrTraceRefCount() { - atomic.AddInt32(&sc.traceRefCount, -1) -} - -func (sc *subChannel) getTraceRefCount() int { - i := atomic.LoadInt32(&sc.traceRefCount) - return int(i) -} - -func (sc *subChannel) getRefName() string { - return sc.refName -} - -// SocketMetric defines the info channelz provides for a specific Socket, which -// includes SocketInternalMetric and channelz-specific data, such as channelz id, etc. -type SocketMetric struct { - // ID is the channelz id of this socket. - ID int64 - // RefName is the human readable reference string of this socket. - RefName string - // SocketData contains socket internal metric reported by the socket through - // ChannelzMetric(). - SocketData *SocketInternalMetric -} - -// SocketInternalMetric defines the struct that the implementor of Socket interface -// should return from ChannelzMetric(). -type SocketInternalMetric struct { - // The number of streams that have been started. - StreamsStarted int64 - // The number of streams that have ended successfully: - // On client side, receiving frame with eos bit set. - // On server side, sending frame with eos bit set. - StreamsSucceeded int64 - // The number of streams that have ended unsuccessfully: - // On client side, termination without receiving frame with eos bit set. - // On server side, termination without sending frame with eos bit set. - StreamsFailed int64 - // The number of messages successfully sent on this socket. - MessagesSent int64 - MessagesReceived int64 - // The number of keep alives sent. This is typically implemented with HTTP/2 - // ping messages. - KeepAlivesSent int64 - // The last time a stream was created by this endpoint. Usually unset for - // servers. - LastLocalStreamCreatedTimestamp time.Time - // The last time a stream was created by the remote endpoint. Usually unset - // for clients. - LastRemoteStreamCreatedTimestamp time.Time - // The last time a message was sent by this endpoint. - LastMessageSentTimestamp time.Time - // The last time a message was received by this endpoint. - LastMessageReceivedTimestamp time.Time - // The amount of window, granted to the local endpoint by the remote endpoint. - // This may be slightly out of date due to network latency. This does NOT - // include stream level or TCP level flow control info. - LocalFlowControlWindow int64 - // The amount of window, granted to the remote endpoint by the local endpoint. - // This may be slightly out of date due to network latency. This does NOT - // include stream level or TCP level flow control info. - RemoteFlowControlWindow int64 - // The locally bound address. - LocalAddr net.Addr - // The remote bound address. May be absent. - RemoteAddr net.Addr - // Optional, represents the name of the remote endpoint, if different than - // the original target name. - RemoteName string - SocketOptions *SocketOptionData - Security credentials.ChannelzSecurityValue -} - -// Socket is the interface that should be satisfied in order to be tracked by -// channelz as Socket. -type Socket interface { - ChannelzMetric() *SocketInternalMetric -} - -type listenSocket struct { - refName string - s Socket - id int64 - pid int64 - cm *channelMap -} - -func (ls *listenSocket) addChild(id int64, e entry) { - logger.Errorf("cannot add a child (id = %d) of type %T to a listen socket", id, e) -} - -func (ls *listenSocket) deleteChild(id int64) { - logger.Errorf("cannot delete a child (id = %d) from a listen socket", id) -} - -func (ls *listenSocket) triggerDelete() { - ls.cm.deleteEntry(ls.id) - ls.cm.findEntry(ls.pid).deleteChild(ls.id) -} - -func (ls *listenSocket) deleteSelfIfReady() { - logger.Errorf("cannot call deleteSelfIfReady on a listen socket") -} - -func (ls *listenSocket) getParentID() int64 { - return ls.pid -} - -type normalSocket struct { - refName string - s Socket - id int64 - pid int64 - cm *channelMap -} - -func (ns *normalSocket) addChild(id int64, e entry) { - logger.Errorf("cannot add a child (id = %d) of type %T to a normal socket", id, e) -} - -func (ns *normalSocket) deleteChild(id int64) { - logger.Errorf("cannot delete a child (id = %d) from a normal socket", id) -} - -func (ns *normalSocket) triggerDelete() { - ns.cm.deleteEntry(ns.id) - ns.cm.findEntry(ns.pid).deleteChild(ns.id) -} - -func (ns *normalSocket) deleteSelfIfReady() { - logger.Errorf("cannot call deleteSelfIfReady on a normal socket") -} - -func (ns *normalSocket) getParentID() int64 { - return ns.pid -} - -// ServerMetric defines the info channelz provides for a specific Server, which -// includes ServerInternalMetric and channelz-specific data, such as channelz id, -// child list, etc. -type ServerMetric struct { - // ID is the channelz id of this server. - ID int64 - // RefName is the human readable reference string of this server. - RefName string - // ServerData contains server internal metric reported by the server through - // ChannelzMetric(). - ServerData *ServerInternalMetric - // ListenSockets tracks the listener socket type children of this server in the - // format of a map from socket channelz id to corresponding reference string. - ListenSockets map[int64]string -} - -// ServerInternalMetric defines the struct that the implementor of Server interface -// should return from ChannelzMetric(). -type ServerInternalMetric struct { - // The number of incoming calls started on the server. - CallsStarted int64 - // The number of incoming calls that have completed with an OK status. - CallsSucceeded int64 - // The number of incoming calls that have a completed with a non-OK status. - CallsFailed int64 - // The last time a call was started on the server. - LastCallStartedTimestamp time.Time -} - -// Server is the interface to be satisfied in order to be tracked by channelz as -// Server. -type Server interface { - ChannelzMetric() *ServerInternalMetric -} - -type server struct { - refName string - s Server - closeCalled bool - sockets map[int64]string - listenSockets map[int64]string - id int64 - cm *channelMap -} - -func (s *server) addChild(id int64, e entry) { - switch v := e.(type) { - case *normalSocket: - s.sockets[id] = v.refName - case *listenSocket: - s.listenSockets[id] = v.refName - default: - logger.Errorf("cannot add a child (id = %d) of type %T to a server", id, e) - } -} - -func (s *server) deleteChild(id int64) { - delete(s.sockets, id) - delete(s.listenSockets, id) - s.deleteSelfIfReady() -} - -func (s *server) triggerDelete() { - s.closeCalled = true - s.deleteSelfIfReady() -} - -func (s *server) deleteSelfIfReady() { - if !s.closeCalled || len(s.sockets)+len(s.listenSockets) != 0 { - return - } - s.cm.deleteEntry(s.id) -} - -func (s *server) getParentID() int64 { - return 0 -} - -type tracedChannel interface { - getChannelTrace() *channelTrace - incrTraceRefCount() - decrTraceRefCount() - getRefName() string -} - -type channelTrace struct { - cm *channelMap - clearCalled bool - createdTime time.Time - eventCount int64 - mu sync.Mutex - events []*TraceEvent -} - -func (c *channelTrace) append(e *TraceEvent) { - c.mu.Lock() - if len(c.events) == getMaxTraceEntry() { - del := c.events[0] - c.events = c.events[1:] - if del.RefID != 0 { - // start recursive cleanup in a goroutine to not block the call originated from grpc. - go func() { - // need to acquire c.cm.mu lock to call the unlocked attemptCleanup func. - c.cm.mu.Lock() - c.cm.decrTraceRefCount(del.RefID) - c.cm.mu.Unlock() - }() - } - } - e.Timestamp = time.Now() - c.events = append(c.events, e) - c.eventCount++ - c.mu.Unlock() -} - -func (c *channelTrace) clear() { - if c.clearCalled { - return - } - c.clearCalled = true - c.mu.Lock() - for _, e := range c.events { - if e.RefID != 0 { - // caller should have already held the c.cm.mu lock. - c.cm.decrTraceRefCount(e.RefID) - } - } - c.mu.Unlock() -} - -// Severity is the severity level of a trace event. -// The canonical enumeration of all valid values is here: -// https://github.com/grpc/grpc-proto/blob/9b13d199cc0d4703c7ea26c9c330ba695866eb23/grpc/channelz/v1/channelz.proto#L126. -type Severity int - -const ( - // CtUnknown indicates unknown severity of a trace event. - CtUnknown Severity = iota - // CtInfo indicates info level severity of a trace event. - CtInfo - // CtWarning indicates warning level severity of a trace event. - CtWarning - // CtError indicates error level severity of a trace event. - CtError -) - -// RefChannelType is the type of the entity being referenced in a trace event. -type RefChannelType int - -const ( - // RefUnknown indicates an unknown entity type, the zero value for this type. - RefUnknown RefChannelType = iota - // RefChannel indicates the referenced entity is a Channel. - RefChannel - // RefSubChannel indicates the referenced entity is a SubChannel. - RefSubChannel - // RefServer indicates the referenced entity is a Server. - RefServer - // RefListenSocket indicates the referenced entity is a ListenSocket. - RefListenSocket - // RefNormalSocket indicates the referenced entity is a NormalSocket. - RefNormalSocket -) - -var refChannelTypeToString = map[RefChannelType]string{ - RefUnknown: "Unknown", - RefChannel: "Channel", - RefSubChannel: "SubChannel", - RefServer: "Server", - RefListenSocket: "ListenSocket", - RefNormalSocket: "NormalSocket", -} - -func (r RefChannelType) String() string { - return refChannelTypeToString[r] -} - -func (c *channelTrace) dumpData() *ChannelTrace { - c.mu.Lock() - ct := &ChannelTrace{EventNum: c.eventCount, CreationTime: c.createdTime} - ct.Events = c.events[:len(c.events)] - c.mu.Unlock() - return ct -} diff --git a/vendor/google.golang.org/grpc/internal/grpcrand/grpcrand.go b/vendor/google.golang.org/grpc/internal/grpcrand/grpcrand.go index aa97273e7..0126d6b51 100644 --- a/vendor/google.golang.org/grpc/internal/grpcrand/grpcrand.go +++ b/vendor/google.golang.org/grpc/internal/grpcrand/grpcrand.go @@ -1,3 +1,8 @@ +//go:build !go1.21 + +// TODO: when this file is deleted (after Go 1.20 support is dropped), delete +// all of grpcrand and call the rand package directly. + /* * * Copyright 2018 gRPC authors. diff --git a/vendor/google.golang.org/grpc/internal/grpcrand/grpcrand_go1.21.go b/vendor/google.golang.org/grpc/internal/grpcrand/grpcrand_go1.21.go new file mode 100644 index 000000000..c37299af1 --- /dev/null +++ b/vendor/google.golang.org/grpc/internal/grpcrand/grpcrand_go1.21.go @@ -0,0 +1,73 @@ +//go:build go1.21 + +/* + * + * Copyright 2024 gRPC authors. + * + * 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 grpcrand implements math/rand functions in a concurrent-safe way +// with a global random source, independent of math/rand's global source. +package grpcrand + +import "math/rand" + +// This implementation will be used for Go version 1.21 or newer. +// For older versions, the original implementation with mutex will be used. + +// Int implements rand.Int on the grpcrand global source. +func Int() int { + return rand.Int() +} + +// Int63n implements rand.Int63n on the grpcrand global source. +func Int63n(n int64) int64 { + return rand.Int63n(n) +} + +// Intn implements rand.Intn on the grpcrand global source. +func Intn(n int) int { + return rand.Intn(n) +} + +// Int31n implements rand.Int31n on the grpcrand global source. +func Int31n(n int32) int32 { + return rand.Int31n(n) +} + +// Float64 implements rand.Float64 on the grpcrand global source. +func Float64() float64 { + return rand.Float64() +} + +// Uint64 implements rand.Uint64 on the grpcrand global source. +func Uint64() uint64 { + return rand.Uint64() +} + +// Uint32 implements rand.Uint32 on the grpcrand global source. +func Uint32() uint32 { + return rand.Uint32() +} + +// ExpFloat64 implements rand.ExpFloat64 on the grpcrand global source. +func ExpFloat64() float64 { + return rand.ExpFloat64() +} + +// Shuffle implements rand.Shuffle on the grpcrand global source. +var Shuffle = func(n int, f func(int, int)) { + rand.Shuffle(n, f) +} diff --git a/vendor/google.golang.org/grpc/internal/internal.go b/vendor/google.golang.org/grpc/internal/internal.go index 6c7ea6a53..48d24bdb4 100644 --- a/vendor/google.golang.org/grpc/internal/internal.go +++ b/vendor/google.golang.org/grpc/internal/internal.go @@ -190,12 +190,16 @@ var ( // function makes events more predictable than relying on timer events. TriggerXDSResourceNameNotFoundForTesting any // func(func(xdsresource.Type, string), string, string) error - // TriggerXDSResourceNotFoundClient invokes the testing xDS Client singleton - // to invoke resource not found for a resource type name and resource name. + // TriggerXDSResourceNameNotFoundClient invokes the testing xDS Client + // singleton to invoke resource not found for a resource type name and + // resource name. TriggerXDSResourceNameNotFoundClient any // func(string, string) error // FromOutgoingContextRaw returns the un-merged, intermediary contents of metadata.rawMD. FromOutgoingContextRaw any // func(context.Context) (metadata.MD, [][]string, bool) + + // UserSetDefaultScheme is set to true if the user has overridden the default resolver scheme. + UserSetDefaultScheme bool = false ) // HealthChecker defines the signature of the client-side LB channel health checking function. diff --git a/vendor/google.golang.org/grpc/internal/pretty/pretty.go b/vendor/google.golang.org/grpc/internal/pretty/pretty.go index 703319137..dbee7a60d 100644 --- a/vendor/google.golang.org/grpc/internal/pretty/pretty.go +++ b/vendor/google.golang.org/grpc/internal/pretty/pretty.go @@ -24,10 +24,8 @@ import ( "encoding/json" "fmt" - "github.com/golang/protobuf/jsonpb" - protov1 "github.com/golang/protobuf/proto" "google.golang.org/protobuf/encoding/protojson" - protov2 "google.golang.org/protobuf/proto" + "google.golang.org/protobuf/protoadapt" ) const jsonIndent = " " @@ -36,21 +34,14 @@ const jsonIndent = " " // // If marshal fails, it falls back to fmt.Sprintf("%+v"). func ToJSON(e any) string { - switch ee := e.(type) { - case protov1.Message: - mm := jsonpb.Marshaler{Indent: jsonIndent} - ret, err := mm.MarshalToString(ee) - if err != nil { - // This may fail for proto.Anys, e.g. for xDS v2, LDS, the v2 - // messages are not imported, and this will fail because the message - // is not found. - return fmt.Sprintf("%+v", ee) - } - return ret - case protov2.Message: + if ee, ok := e.(protoadapt.MessageV1); ok { + e = protoadapt.MessageV2Of(ee) + } + + if ee, ok := e.(protoadapt.MessageV2); ok { mm := protojson.MarshalOptions{ - Multiline: true, Indent: jsonIndent, + Multiline: true, } ret, err := mm.Marshal(ee) if err != nil { @@ -60,13 +51,13 @@ func ToJSON(e any) string { return fmt.Sprintf("%+v", ee) } return string(ret) - default: - ret, err := json.MarshalIndent(ee, "", jsonIndent) - if err != nil { - return fmt.Sprintf("%+v", ee) - } - return string(ret) } + + ret, err := json.MarshalIndent(e, "", jsonIndent) + if err != nil { + return fmt.Sprintf("%+v", e) + } + return string(ret) } // FormatJSON formats the input json bytes with indentation. diff --git a/vendor/google.golang.org/grpc/internal/resolver/dns/dns_resolver.go b/vendor/google.golang.org/grpc/internal/resolver/dns/dns_resolver.go index b66dcb213..abab35e25 100644 --- a/vendor/google.golang.org/grpc/internal/resolver/dns/dns_resolver.go +++ b/vendor/google.golang.org/grpc/internal/resolver/dns/dns_resolver.go @@ -45,6 +45,13 @@ import ( // addresses from SRV records. Must not be changed after init time. var EnableSRVLookups = false +// ResolvingTimeout specifies the maximum duration for a DNS resolution request. +// If the timeout expires before a response is received, the request will be canceled. +// +// It is recommended to set this value at application startup. Avoid modifying this variable +// after initialization as it's not thread-safe for concurrent modification. +var ResolvingTimeout = 30 * time.Second + var logger = grpclog.Component("dns") func init() { @@ -221,18 +228,18 @@ func (d *dnsResolver) watcher() { } } -func (d *dnsResolver) lookupSRV() ([]resolver.Address, error) { +func (d *dnsResolver) lookupSRV(ctx context.Context) ([]resolver.Address, error) { if !EnableSRVLookups { return nil, nil } var newAddrs []resolver.Address - _, srvs, err := d.resolver.LookupSRV(d.ctx, "grpclb", "tcp", d.host) + _, srvs, err := d.resolver.LookupSRV(ctx, "grpclb", "tcp", d.host) if err != nil { err = handleDNSError(err, "SRV") // may become nil return nil, err } for _, s := range srvs { - lbAddrs, err := d.resolver.LookupHost(d.ctx, s.Target) + lbAddrs, err := d.resolver.LookupHost(ctx, s.Target) if err != nil { err = handleDNSError(err, "A") // may become nil if err == nil { @@ -269,8 +276,8 @@ func handleDNSError(err error, lookupType string) error { return err } -func (d *dnsResolver) lookupTXT() *serviceconfig.ParseResult { - ss, err := d.resolver.LookupTXT(d.ctx, txtPrefix+d.host) +func (d *dnsResolver) lookupTXT(ctx context.Context) *serviceconfig.ParseResult { + ss, err := d.resolver.LookupTXT(ctx, txtPrefix+d.host) if err != nil { if envconfig.TXTErrIgnore { return nil @@ -297,8 +304,8 @@ func (d *dnsResolver) lookupTXT() *serviceconfig.ParseResult { return d.cc.ParseServiceConfig(sc) } -func (d *dnsResolver) lookupHost() ([]resolver.Address, error) { - addrs, err := d.resolver.LookupHost(d.ctx, d.host) +func (d *dnsResolver) lookupHost(ctx context.Context) ([]resolver.Address, error) { + addrs, err := d.resolver.LookupHost(ctx, d.host) if err != nil { err = handleDNSError(err, "A") return nil, err @@ -316,8 +323,10 @@ func (d *dnsResolver) lookupHost() ([]resolver.Address, error) { } func (d *dnsResolver) lookup() (*resolver.State, error) { - srv, srvErr := d.lookupSRV() - addrs, hostErr := d.lookupHost() + ctx, cancel := context.WithTimeout(d.ctx, ResolvingTimeout) + defer cancel() + srv, srvErr := d.lookupSRV(ctx) + addrs, hostErr := d.lookupHost(ctx) if hostErr != nil && (srvErr != nil || len(srv) == 0) { return nil, hostErr } @@ -327,7 +336,7 @@ func (d *dnsResolver) lookup() (*resolver.State, error) { state = grpclbstate.Set(state, &grpclbstate.State{BalancerAddresses: srv}) } if !d.disableServiceConfig { - state.ServiceConfig = d.lookupTXT() + state.ServiceConfig = d.lookupTXT(ctx) } return &state, nil } diff --git a/vendor/google.golang.org/grpc/internal/status/status.go b/vendor/google.golang.org/grpc/internal/status/status.go index 03ef2fedd..c7dbc8205 100644 --- a/vendor/google.golang.org/grpc/internal/status/status.go +++ b/vendor/google.golang.org/grpc/internal/status/status.go @@ -31,10 +31,11 @@ import ( "errors" "fmt" - "github.com/golang/protobuf/proto" - "github.com/golang/protobuf/ptypes" spb "google.golang.org/genproto/googleapis/rpc/status" "google.golang.org/grpc/codes" + "google.golang.org/protobuf/proto" + "google.golang.org/protobuf/protoadapt" + "google.golang.org/protobuf/types/known/anypb" ) // Status represents an RPC status code, message, and details. It is immutable @@ -130,14 +131,14 @@ func (s *Status) Err() error { // WithDetails returns a new status with the provided details messages appended to the status. // If any errors are encountered, it returns nil and the first error encountered. -func (s *Status) WithDetails(details ...proto.Message) (*Status, error) { +func (s *Status) WithDetails(details ...protoadapt.MessageV1) (*Status, error) { if s.Code() == codes.OK { return nil, errors.New("no error details for status with code OK") } // s.Code() != OK implies that s.Proto() != nil. p := s.Proto() for _, detail := range details { - any, err := ptypes.MarshalAny(detail) + any, err := anypb.New(protoadapt.MessageV2Of(detail)) if err != nil { return nil, err } @@ -154,12 +155,12 @@ func (s *Status) Details() []any { } details := make([]any, 0, len(s.s.Details)) for _, any := range s.s.Details { - detail := &ptypes.DynamicAny{} - if err := ptypes.UnmarshalAny(any, detail); err != nil { + detail, err := any.UnmarshalNew() + if err != nil { details = append(details, err) continue } - details = append(details, detail.Message) + details = append(details, detail) } return details } diff --git a/vendor/google.golang.org/grpc/internal/transport/controlbuf.go b/vendor/google.golang.org/grpc/internal/transport/controlbuf.go index b330ccedc..83c382982 100644 --- a/vendor/google.golang.org/grpc/internal/transport/controlbuf.go +++ b/vendor/google.golang.org/grpc/internal/transport/controlbuf.go @@ -535,8 +535,8 @@ const minBatchSize = 1000 // size is too low to give stream goroutines a chance to fill it up. // // Upon exiting, if the error causing the exit is not an I/O error, run() -// flushes and closes the underlying connection. Otherwise, the connection is -// left open to allow the I/O error to be encountered by the reader instead. +// flushes the underlying connection. The connection is always left open to +// allow different closing behavior on the client and server. func (l *loopyWriter) run() (err error) { defer func() { if l.logger.V(logLevel) { @@ -544,7 +544,6 @@ func (l *loopyWriter) run() (err error) { } if !isIOError(err) { l.framer.writer.Flush() - l.conn.Close() } l.cbuf.finish() }() diff --git a/vendor/google.golang.org/grpc/internal/transport/handler_server.go b/vendor/google.golang.org/grpc/internal/transport/handler_server.go index a9d70e2a1..4a3ddce29 100644 --- a/vendor/google.golang.org/grpc/internal/transport/handler_server.go +++ b/vendor/google.golang.org/grpc/internal/transport/handler_server.go @@ -35,7 +35,6 @@ import ( "sync" "time" - "github.com/golang/protobuf/proto" "golang.org/x/net/http2" "google.golang.org/grpc/codes" "google.golang.org/grpc/credentials" @@ -45,20 +44,17 @@ import ( "google.golang.org/grpc/peer" "google.golang.org/grpc/stats" "google.golang.org/grpc/status" + "google.golang.org/protobuf/proto" ) // NewServerHandlerTransport returns a ServerTransport handling gRPC from // inside an http.Handler, or writes an HTTP error to w and returns an error. // It requires that the http Server supports HTTP/2. func NewServerHandlerTransport(w http.ResponseWriter, r *http.Request, stats []stats.Handler) (ServerTransport, error) { - if r.ProtoMajor != 2 { - msg := "gRPC requires HTTP/2" - http.Error(w, msg, http.StatusBadRequest) - return nil, errors.New(msg) - } - if r.Method != "POST" { + if r.Method != http.MethodPost { + w.Header().Set("Allow", http.MethodPost) msg := fmt.Sprintf("invalid gRPC request method %q", r.Method) - http.Error(w, msg, http.StatusBadRequest) + http.Error(w, msg, http.StatusMethodNotAllowed) return nil, errors.New(msg) } contentType := r.Header.Get("Content-Type") @@ -69,6 +65,11 @@ func NewServerHandlerTransport(w http.ResponseWriter, r *http.Request, stats []s http.Error(w, msg, http.StatusUnsupportedMediaType) return nil, errors.New(msg) } + if r.ProtoMajor != 2 { + msg := "gRPC requires HTTP/2" + http.Error(w, msg, http.StatusHTTPVersionNotSupported) + return nil, errors.New(msg) + } if _, ok := w.(http.Flusher); !ok { msg := "gRPC requires a ResponseWriter supporting http.Flusher" http.Error(w, msg, http.StatusInternalServerError) diff --git a/vendor/google.golang.org/grpc/internal/transport/http2_client.go b/vendor/google.golang.org/grpc/internal/transport/http2_client.go index c33ac5961..deba0c4d9 100644 --- a/vendor/google.golang.org/grpc/internal/transport/http2_client.go +++ b/vendor/google.golang.org/grpc/internal/transport/http2_client.go @@ -140,9 +140,7 @@ type http2Client struct { // variable. kpDormant bool - // Fields below are for channelz metric collection. - channelzID *channelz.Identifier - czData *channelzData + channelz *channelz.Socket onClose func(GoAwayReason) @@ -319,6 +317,7 @@ func newHTTP2Client(connectCtx, ctx context.Context, addr resolver.Address, opts if opts.MaxHeaderListSize != nil { maxHeaderListSize = *opts.MaxHeaderListSize } + t := &http2Client{ ctx: ctx, ctxDone: ctx.Done(), // Cache Done chan. @@ -346,11 +345,25 @@ func newHTTP2Client(connectCtx, ctx context.Context, addr resolver.Address, opts maxConcurrentStreams: defaultMaxStreamsClient, streamQuota: defaultMaxStreamsClient, streamsQuotaAvailable: make(chan struct{}, 1), - czData: new(channelzData), keepaliveEnabled: keepaliveEnabled, bufferPool: newBufferPool(), onClose: onClose, } + var czSecurity credentials.ChannelzSecurityValue + if au, ok := authInfo.(credentials.ChannelzSecurityInfo); ok { + czSecurity = au.GetSecurityValue() + } + t.channelz = channelz.RegisterSocket( + &channelz.Socket{ + SocketType: channelz.SocketTypeNormal, + Parent: opts.ChannelzParent, + SocketMetrics: channelz.SocketMetrics{}, + EphemeralMetrics: t.socketMetrics, + LocalAddr: t.localAddr, + RemoteAddr: t.remoteAddr, + SocketOptions: channelz.GetSocketOption(t.conn), + Security: czSecurity, + }) t.logger = prefixLoggerForClientTransport(t) // Add peer information to the http2client context. t.ctx = peer.NewContext(t.ctx, t.getPeer()) @@ -381,10 +394,6 @@ func newHTTP2Client(connectCtx, ctx context.Context, addr resolver.Address, opts } sh.HandleConn(t.ctx, connBegin) } - t.channelzID, err = channelz.RegisterNormalSocket(t, opts.ChannelzParentID, fmt.Sprintf("%s -> %s", t.localAddr, t.remoteAddr)) - if err != nil { - return nil, err - } if t.keepaliveEnabled { t.kpDormancyCond = sync.NewCond(&t.mu) go t.keepalive() @@ -451,7 +460,13 @@ func newHTTP2Client(connectCtx, ctx context.Context, addr resolver.Address, opts } go func() { t.loopy = newLoopyWriter(clientSide, t.framer, t.controlBuf, t.bdpEst, t.conn, t.logger) - t.loopy.run() + if err := t.loopy.run(); !isIOError(err) { + // Immediately close the connection, as the loopy writer returns + // when there are no more active streams and we were draining (the + // server sent a GOAWAY). For I/O errors, the reader will hit it + // after draining any remaining incoming data. + t.conn.Close() + } close(t.writerDone) }() return t, nil @@ -750,8 +765,8 @@ func (t *http2Client) NewStream(ctx context.Context, callHdr *CallHdr) (*Stream, return ErrConnClosing } if channelz.IsOn() { - atomic.AddInt64(&t.czData.streamsStarted, 1) - atomic.StoreInt64(&t.czData.lastStreamCreatedTime, time.Now().UnixNano()) + t.channelz.SocketMetrics.StreamsStarted.Add(1) + t.channelz.SocketMetrics.LastLocalStreamCreatedTimestamp.Store(time.Now().UnixNano()) } // If the keepalive goroutine has gone dormant, wake it up. if t.kpDormant { @@ -922,9 +937,9 @@ func (t *http2Client) closeStream(s *Stream, err error, rst bool, rstCode http2. t.mu.Unlock() if channelz.IsOn() { if eosReceived { - atomic.AddInt64(&t.czData.streamsSucceeded, 1) + t.channelz.SocketMetrics.StreamsSucceeded.Add(1) } else { - atomic.AddInt64(&t.czData.streamsFailed, 1) + t.channelz.SocketMetrics.StreamsFailed.Add(1) } } }, @@ -979,7 +994,7 @@ func (t *http2Client) Close(err error) { t.controlBuf.finish() t.cancel() t.conn.Close() - channelz.RemoveEntry(t.channelzID) + channelz.RemoveEntry(t.channelz.ID) // Append info about previous goaways if there were any, since this may be important // for understanding the root cause for this connection to be closed. _, goAwayDebugMessage := t.GetGoAwayReason() @@ -1702,7 +1717,7 @@ func (t *http2Client) keepalive() { // keepalive timer expired. In both cases, we need to send a ping. if !outstandingPing { if channelz.IsOn() { - atomic.AddInt64(&t.czData.kpCount, 1) + t.channelz.SocketMetrics.KeepAlivesSent.Add(1) } t.controlBuf.put(p) timeoutLeft = t.kp.Timeout @@ -1732,40 +1747,23 @@ func (t *http2Client) GoAway() <-chan struct{} { return t.goAway } -func (t *http2Client) ChannelzMetric() *channelz.SocketInternalMetric { - s := channelz.SocketInternalMetric{ - StreamsStarted: atomic.LoadInt64(&t.czData.streamsStarted), - StreamsSucceeded: atomic.LoadInt64(&t.czData.streamsSucceeded), - StreamsFailed: atomic.LoadInt64(&t.czData.streamsFailed), - MessagesSent: atomic.LoadInt64(&t.czData.msgSent), - MessagesReceived: atomic.LoadInt64(&t.czData.msgRecv), - KeepAlivesSent: atomic.LoadInt64(&t.czData.kpCount), - LastLocalStreamCreatedTimestamp: time.Unix(0, atomic.LoadInt64(&t.czData.lastStreamCreatedTime)), - LastMessageSentTimestamp: time.Unix(0, atomic.LoadInt64(&t.czData.lastMsgSentTime)), - LastMessageReceivedTimestamp: time.Unix(0, atomic.LoadInt64(&t.czData.lastMsgRecvTime)), - LocalFlowControlWindow: int64(t.fc.getSize()), - SocketOptions: channelz.GetSocketOption(t.conn), - LocalAddr: t.localAddr, - RemoteAddr: t.remoteAddr, - // RemoteName : - } - if au, ok := t.authInfo.(credentials.ChannelzSecurityInfo); ok { - s.Security = au.GetSecurityValue() - } - s.RemoteFlowControlWindow = t.getOutFlowWindow() - return &s +func (t *http2Client) socketMetrics() *channelz.EphemeralSocketMetrics { + return &channelz.EphemeralSocketMetrics{ + LocalFlowControlWindow: int64(t.fc.getSize()), + RemoteFlowControlWindow: t.getOutFlowWindow(), + } } func (t *http2Client) RemoteAddr() net.Addr { return t.remoteAddr } func (t *http2Client) IncrMsgSent() { - atomic.AddInt64(&t.czData.msgSent, 1) - atomic.StoreInt64(&t.czData.lastMsgSentTime, time.Now().UnixNano()) + t.channelz.SocketMetrics.MessagesSent.Add(1) + t.channelz.SocketMetrics.LastMessageSentTimestamp.Store(time.Now().UnixNano()) } func (t *http2Client) IncrMsgRecv() { - atomic.AddInt64(&t.czData.msgRecv, 1) - atomic.StoreInt64(&t.czData.lastMsgRecvTime, time.Now().UnixNano()) + t.channelz.SocketMetrics.MessagesReceived.Add(1) + t.channelz.SocketMetrics.LastMessageReceivedTimestamp.Store(time.Now().UnixNano()) } func (t *http2Client) getOutFlowWindow() int64 { diff --git a/vendor/google.golang.org/grpc/internal/transport/http2_server.go b/vendor/google.golang.org/grpc/internal/transport/http2_server.go index f6bac0e8a..d582e0471 100644 --- a/vendor/google.golang.org/grpc/internal/transport/http2_server.go +++ b/vendor/google.golang.org/grpc/internal/transport/http2_server.go @@ -32,13 +32,13 @@ import ( "sync/atomic" "time" - "github.com/golang/protobuf/proto" "golang.org/x/net/http2" "golang.org/x/net/http2/hpack" "google.golang.org/grpc/internal/grpclog" "google.golang.org/grpc/internal/grpcutil" "google.golang.org/grpc/internal/pretty" "google.golang.org/grpc/internal/syscall" + "google.golang.org/protobuf/proto" "google.golang.org/grpc/codes" "google.golang.org/grpc/credentials" @@ -118,8 +118,7 @@ type http2Server struct { idle time.Time // Fields below are for channelz metric collection. - channelzID *channelz.Identifier - czData *channelzData + channelz *channelz.Socket bufferPool *bufferPool connectionID uint64 @@ -262,9 +261,24 @@ func NewServerTransport(conn net.Conn, config *ServerConfig) (_ ServerTransport, idle: time.Now(), kep: kep, initialWindowSize: iwz, - czData: new(channelzData), bufferPool: newBufferPool(), } + var czSecurity credentials.ChannelzSecurityValue + if au, ok := authInfo.(credentials.ChannelzSecurityInfo); ok { + czSecurity = au.GetSecurityValue() + } + t.channelz = channelz.RegisterSocket( + &channelz.Socket{ + SocketType: channelz.SocketTypeNormal, + Parent: config.ChannelzParent, + SocketMetrics: channelz.SocketMetrics{}, + EphemeralMetrics: t.socketMetrics, + LocalAddr: t.peer.LocalAddr, + RemoteAddr: t.peer.Addr, + SocketOptions: channelz.GetSocketOption(t.conn), + Security: czSecurity, + }, + ) t.logger = prefixLoggerForServerTransport(t) t.controlBuf = newControlBuffer(t.done) @@ -274,10 +288,6 @@ func NewServerTransport(conn net.Conn, config *ServerConfig) (_ ServerTransport, updateFlowControl: t.updateFlowControl, } } - t.channelzID, err = channelz.RegisterNormalSocket(t, config.ChannelzParentID, fmt.Sprintf("%s -> %s", t.peer.Addr, t.peer.LocalAddr)) - if err != nil { - return nil, err - } t.connectionID = atomic.AddUint64(&serverConnectionCounter, 1) t.framer.writer.Flush() @@ -322,8 +332,26 @@ func NewServerTransport(conn net.Conn, config *ServerConfig) (_ ServerTransport, go func() { t.loopy = newLoopyWriter(serverSide, t.framer, t.controlBuf, t.bdpEst, t.conn, t.logger) t.loopy.ssGoAwayHandler = t.outgoingGoAwayHandler - t.loopy.run() + err := t.loopy.run() close(t.loopyWriterDone) + if !isIOError(err) { + // Close the connection if a non-I/O error occurs (for I/O errors + // the reader will also encounter the error and close). Wait 1 + // second before closing the connection, or when the reader is done + // (i.e. the client already closed the connection or a connection + // error occurred). This avoids the potential problem where there + // is unread data on the receive side of the connection, which, if + // closed, would lead to a TCP RST instead of FIN, and the client + // encountering errors. For more info: + // https://github.com/grpc/grpc-go/issues/5358 + timer := time.NewTimer(time.Second) + defer timer.Stop() + select { + case <-t.readerDone: + case <-timer.C: + } + t.conn.Close() + } }() go t.keepalive() return t, nil @@ -576,8 +604,8 @@ func (t *http2Server) operateHeaders(ctx context.Context, frame *http2.MetaHeade } t.mu.Unlock() if channelz.IsOn() { - atomic.AddInt64(&t.czData.streamsStarted, 1) - atomic.StoreInt64(&t.czData.lastStreamCreatedTime, time.Now().UnixNano()) + t.channelz.SocketMetrics.StreamsStarted.Add(1) + t.channelz.SocketMetrics.LastRemoteStreamCreatedTimestamp.Store(time.Now().UnixNano()) } s.requestRead = func(n int) { t.adjustWindow(s, uint32(n)) @@ -609,8 +637,8 @@ func (t *http2Server) operateHeaders(ctx context.Context, frame *http2.MetaHeade // traceCtx attaches trace to ctx and returns the new context. func (t *http2Server) HandleStreams(ctx context.Context, handle func(*Stream)) { defer func() { - <-t.loopyWriterDone close(t.readerDone) + <-t.loopyWriterDone }() for { t.controlBuf.throttle() @@ -636,18 +664,20 @@ func (t *http2Server) HandleStreams(ctx context.Context, handle func(*Stream)) { } continue } - if err == io.EOF || err == io.ErrUnexpectedEOF { - t.Close(err) - return - } t.Close(err) return } switch frame := frame.(type) { case *http2.MetaHeadersFrame: if err := t.operateHeaders(ctx, frame, handle); err != nil { - t.Close(err) - break + // Any error processing client headers, e.g. invalid stream ID, + // is considered a protocol violation. + t.controlBuf.put(&goAway{ + code: http2.ErrCodeProtocol, + debugData: []byte(err.Error()), + closeConn: err, + }) + continue } case *http2.DataFrame: t.handleData(frame) @@ -1183,7 +1213,7 @@ func (t *http2Server) keepalive() { } if !outstandingPing { if channelz.IsOn() { - atomic.AddInt64(&t.czData.kpCount, 1) + t.channelz.SocketMetrics.KeepAlivesSent.Add(1) } t.controlBuf.put(p) kpTimeoutLeft = t.kp.Timeout @@ -1223,7 +1253,7 @@ func (t *http2Server) Close(err error) { if err := t.conn.Close(); err != nil && t.logger.V(logLevel) { t.logger.Infof("Error closing underlying net.Conn during Close: %v", err) } - channelz.RemoveEntry(t.channelzID) + channelz.RemoveEntry(t.channelz.ID) // Cancel all active streams. for _, s := range streams { s.cancel() @@ -1244,9 +1274,9 @@ func (t *http2Server) deleteStream(s *Stream, eosReceived bool) { if channelz.IsOn() { if eosReceived { - atomic.AddInt64(&t.czData.streamsSucceeded, 1) + t.channelz.SocketMetrics.StreamsSucceeded.Add(1) } else { - atomic.AddInt64(&t.czData.streamsFailed, 1) + t.channelz.SocketMetrics.StreamsFailed.Add(1) } } } @@ -1329,6 +1359,7 @@ func (t *http2Server) outgoingGoAwayHandler(g *goAway) (bool, error) { if err := t.framer.fr.WriteGoAway(sid, g.code, g.debugData); err != nil { return false, err } + t.framer.writer.Flush() if retErr != nil { return false, retErr } @@ -1349,7 +1380,7 @@ func (t *http2Server) outgoingGoAwayHandler(g *goAway) (bool, error) { return false, err } go func() { - timer := time.NewTimer(time.Minute) + timer := time.NewTimer(5 * time.Second) defer timer.Stop() select { case <-t.drainEvent.Done(): @@ -1362,38 +1393,21 @@ func (t *http2Server) outgoingGoAwayHandler(g *goAway) (bool, error) { return false, nil } -func (t *http2Server) ChannelzMetric() *channelz.SocketInternalMetric { - s := channelz.SocketInternalMetric{ - StreamsStarted: atomic.LoadInt64(&t.czData.streamsStarted), - StreamsSucceeded: atomic.LoadInt64(&t.czData.streamsSucceeded), - StreamsFailed: atomic.LoadInt64(&t.czData.streamsFailed), - MessagesSent: atomic.LoadInt64(&t.czData.msgSent), - MessagesReceived: atomic.LoadInt64(&t.czData.msgRecv), - KeepAlivesSent: atomic.LoadInt64(&t.czData.kpCount), - LastRemoteStreamCreatedTimestamp: time.Unix(0, atomic.LoadInt64(&t.czData.lastStreamCreatedTime)), - LastMessageSentTimestamp: time.Unix(0, atomic.LoadInt64(&t.czData.lastMsgSentTime)), - LastMessageReceivedTimestamp: time.Unix(0, atomic.LoadInt64(&t.czData.lastMsgRecvTime)), - LocalFlowControlWindow: int64(t.fc.getSize()), - SocketOptions: channelz.GetSocketOption(t.conn), - LocalAddr: t.peer.LocalAddr, - RemoteAddr: t.peer.Addr, - // RemoteName : - } - if au, ok := t.peer.AuthInfo.(credentials.ChannelzSecurityInfo); ok { - s.Security = au.GetSecurityValue() - } - s.RemoteFlowControlWindow = t.getOutFlowWindow() - return &s +func (t *http2Server) socketMetrics() *channelz.EphemeralSocketMetrics { + return &channelz.EphemeralSocketMetrics{ + LocalFlowControlWindow: int64(t.fc.getSize()), + RemoteFlowControlWindow: t.getOutFlowWindow(), + } } func (t *http2Server) IncrMsgSent() { - atomic.AddInt64(&t.czData.msgSent, 1) - atomic.StoreInt64(&t.czData.lastMsgSentTime, time.Now().UnixNano()) + t.channelz.SocketMetrics.MessagesSent.Add(1) + t.channelz.SocketMetrics.LastMessageSentTimestamp.Add(1) } func (t *http2Server) IncrMsgRecv() { - atomic.AddInt64(&t.czData.msgRecv, 1) - atomic.StoreInt64(&t.czData.lastMsgRecvTime, time.Now().UnixNano()) + t.channelz.SocketMetrics.MessagesReceived.Add(1) + t.channelz.SocketMetrics.LastMessageReceivedTimestamp.Add(1) } func (t *http2Server) getOutFlowWindow() int64 { diff --git a/vendor/google.golang.org/grpc/internal/transport/http_util.go b/vendor/google.golang.org/grpc/internal/transport/http_util.go index dc29d590e..39cef3bd4 100644 --- a/vendor/google.golang.org/grpc/internal/transport/http_util.go +++ b/vendor/google.golang.org/grpc/internal/transport/http_util.go @@ -418,10 +418,9 @@ func newFramer(conn net.Conn, writeBufferSize, readBufferSize int, sharedWriteBu return f } -func getWriteBufferPool(writeBufferSize int) *sync.Pool { +func getWriteBufferPool(size int) *sync.Pool { writeBufferMutex.Lock() defer writeBufferMutex.Unlock() - size := writeBufferSize * 2 pool, ok := writeBufferPoolMap[size] if ok { return pool diff --git a/vendor/google.golang.org/grpc/internal/transport/transport.go b/vendor/google.golang.org/grpc/internal/transport/transport.go index b7b8fec18..0d2a6e47f 100644 --- a/vendor/google.golang.org/grpc/internal/transport/transport.go +++ b/vendor/google.golang.org/grpc/internal/transport/transport.go @@ -28,6 +28,7 @@ import ( "fmt" "io" "net" + "strings" "sync" "sync/atomic" "time" @@ -362,8 +363,12 @@ func (s *Stream) SendCompress() string { // ClientAdvertisedCompressors returns the compressor names advertised by the // client via grpc-accept-encoding header. -func (s *Stream) ClientAdvertisedCompressors() string { - return s.clientAdvertisedCompressors +func (s *Stream) ClientAdvertisedCompressors() []string { + values := strings.Split(s.clientAdvertisedCompressors, ",") + for i, v := range values { + values[i] = strings.TrimSpace(v) + } + return values } // Done returns a channel which is closed when it receives the final status @@ -566,7 +571,7 @@ type ServerConfig struct { WriteBufferSize int ReadBufferSize int SharedWriteBuffer bool - ChannelzParentID *channelz.Identifier + ChannelzParent *channelz.Server MaxHeaderListSize *uint32 HeaderTableSize *uint32 } @@ -601,8 +606,8 @@ type ConnectOptions struct { ReadBufferSize int // SharedWriteBuffer indicates whether connections should reuse write buffer SharedWriteBuffer bool - // ChannelzParentID sets the addrConn id which initiate the creation of this client transport. - ChannelzParentID *channelz.Identifier + // ChannelzParent sets the addrConn id which initiated the creation of this client transport. + ChannelzParent *channelz.SubChannel // MaxHeaderListSize sets the max (uncompressed) size of header list that is prepared to be received. MaxHeaderListSize *uint32 // UseProxy specifies if a proxy should be used. @@ -815,30 +820,6 @@ const ( GoAwayTooManyPings GoAwayReason = 2 ) -// channelzData is used to store channelz related data for http2Client and http2Server. -// These fields cannot be embedded in the original structs (e.g. http2Client), since to do atomic -// operation on int64 variable on 32-bit machine, user is responsible to enforce memory alignment. -// Here, by grouping those int64 fields inside a struct, we are enforcing the alignment. -type channelzData struct { - kpCount int64 - // The number of streams that have started, including already finished ones. - streamsStarted int64 - // Client side: The number of streams that have ended successfully by receiving - // EoS bit set frame from server. - // Server side: The number of streams that have ended successfully by sending - // frame with EoS bit set. - streamsSucceeded int64 - streamsFailed int64 - // lastStreamCreatedTime stores the timestamp that the last stream gets created. It is of int64 type - // instead of time.Time since it's more costly to atomically update time.Time variable than int64 - // variable. The same goes for lastMsgSentTime and lastMsgRecvTime. - lastStreamCreatedTime int64 - msgSent int64 - msgRecv int64 - lastMsgSentTime int64 - lastMsgRecvTime int64 -} - // ContextErr converts the error from context package into a status error. func ContextErr(err error) error { switch err { diff --git a/vendor/google.golang.org/grpc/internal/xds_handshake_cluster.go b/vendor/google.golang.org/grpc/internal/xds_handshake_cluster.go deleted file mode 100644 index e8b492774..000000000 --- a/vendor/google.golang.org/grpc/internal/xds_handshake_cluster.go +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Copyright 2021 gRPC authors. - * - * 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 internal - -import ( - "google.golang.org/grpc/attributes" - "google.golang.org/grpc/resolver" -) - -// handshakeClusterNameKey is the type used as the key to store cluster name in -// the Attributes field of resolver.Address. -type handshakeClusterNameKey struct{} - -// SetXDSHandshakeClusterName returns a copy of addr in which the Attributes field -// is updated with the cluster name. -func SetXDSHandshakeClusterName(addr resolver.Address, clusterName string) resolver.Address { - addr.Attributes = addr.Attributes.WithValue(handshakeClusterNameKey{}, clusterName) - return addr -} - -// GetXDSHandshakeClusterName returns cluster name stored in attr. -func GetXDSHandshakeClusterName(attr *attributes.Attributes) (string, bool) { - v := attr.Value(handshakeClusterNameKey{}) - name, ok := v.(string) - return name, ok -} diff --git a/vendor/google.golang.org/grpc/pickfirst.go b/vendor/google.golang.org/grpc/pickfirst.go index 5128f9364..e3ea42ba9 100644 --- a/vendor/google.golang.org/grpc/pickfirst.go +++ b/vendor/google.golang.org/grpc/pickfirst.go @@ -38,19 +38,15 @@ const ( logPrefix = "[pick-first-lb %p] " ) -func newPickfirstBuilder() balancer.Builder { - return &pickfirstBuilder{} -} - type pickfirstBuilder struct{} -func (*pickfirstBuilder) Build(cc balancer.ClientConn, opt balancer.BuildOptions) balancer.Balancer { +func (pickfirstBuilder) Build(cc balancer.ClientConn, opt balancer.BuildOptions) balancer.Balancer { b := &pickfirstBalancer{cc: cc} b.logger = internalgrpclog.NewPrefixLogger(logger, fmt.Sprintf(logPrefix, b)) return b } -func (*pickfirstBuilder) Name() string { +func (pickfirstBuilder) Name() string { return PickFirstBalancerName } @@ -63,7 +59,7 @@ type pfConfig struct { ShuffleAddressList bool `json:"shuffleAddressList"` } -func (*pickfirstBuilder) ParseConfig(js json.RawMessage) (serviceconfig.LoadBalancingConfig, error) { +func (pickfirstBuilder) ParseConfig(js json.RawMessage) (serviceconfig.LoadBalancingConfig, error) { var cfg pfConfig if err := json.Unmarshal(js, &cfg); err != nil { return nil, fmt.Errorf("pickfirst: unable to unmarshal LB policy config: %s, error: %v", string(js), err) @@ -243,7 +239,3 @@ func (i *idlePicker) Pick(balancer.PickInfo) (balancer.PickResult, error) { i.subConn.Connect() return balancer.PickResult{}, balancer.ErrNoSubConnAvailable } - -func init() { - balancer.Register(newPickfirstBuilder()) -} diff --git a/vendor/google.golang.org/grpc/resolver/dns/dns_resolver.go b/vendor/google.golang.org/grpc/resolver/dns/dns_resolver.go index 14aa6f20a..b54a3a322 100644 --- a/vendor/google.golang.org/grpc/resolver/dns/dns_resolver.go +++ b/vendor/google.golang.org/grpc/resolver/dns/dns_resolver.go @@ -24,10 +24,28 @@ package dns import ( + "time" + "google.golang.org/grpc/internal/resolver/dns" "google.golang.org/grpc/resolver" ) +// SetResolvingTimeout sets the maximum duration for DNS resolution requests. +// +// This function affects the global timeout used by all channels using the DNS +// name resolver scheme. +// +// It must be called only at application startup, before any gRPC calls are +// made. Modifying this value after initialization is not thread-safe. +// +// The default value is 30 seconds. Setting the timeout too low may result in +// premature timeouts during resolution, while setting it too high may lead to +// unnecessary delays in service discovery. Choose a value appropriate for your +// specific needs and network environment. +func SetResolvingTimeout(timeout time.Duration) { + dns.ResolvingTimeout = timeout +} + // NewBuilder creates a dnsBuilder which is used to factory DNS resolvers. // // Deprecated: import grpc and use resolver.Get("dns") instead. diff --git a/vendor/google.golang.org/grpc/resolver/resolver.go b/vendor/google.golang.org/grpc/resolver/resolver.go index adf89dd9c..202854511 100644 --- a/vendor/google.golang.org/grpc/resolver/resolver.go +++ b/vendor/google.golang.org/grpc/resolver/resolver.go @@ -29,6 +29,7 @@ import ( "google.golang.org/grpc/attributes" "google.golang.org/grpc/credentials" + "google.golang.org/grpc/internal" "google.golang.org/grpc/serviceconfig" ) @@ -63,16 +64,18 @@ func Get(scheme string) Builder { } // SetDefaultScheme sets the default scheme that will be used. The default -// default scheme is "passthrough". +// scheme is initially set to "passthrough". // // NOTE: this function must only be called during initialization time (i.e. in // an init() function), and is not thread-safe. The scheme set last overrides // previously set values. func SetDefaultScheme(scheme string) { defaultScheme = scheme + internal.UserSetDefaultScheme = true } -// GetDefaultScheme gets the default scheme that will be used. +// GetDefaultScheme gets the default scheme that will be used by grpc.Dial. If +// SetDefaultScheme is never called, the default scheme used by grpc.NewClient is "dns" instead. func GetDefaultScheme() string { return defaultScheme } @@ -168,6 +171,9 @@ type BuildOptions struct { // field. In most cases though, it is not appropriate, and this field may // be ignored. Dialer func(context.Context, string) (net.Conn, error) + // Authority is the effective authority of the clientconn for which the + // resolver is built. + Authority string } // An Endpoint is one network endpoint, or server, which may have multiple @@ -281,9 +287,9 @@ func (t Target) Endpoint() string { return strings.TrimPrefix(endpoint, "/") } -// String returns a string representation of Target. +// String returns the canonical string representation of Target. func (t Target) String() string { - return t.URL.String() + return t.URL.Scheme + "://" + t.URL.Host + "/" + t.Endpoint() } // Builder creates a resolver that will be used to watch name resolution updates. diff --git a/vendor/google.golang.org/grpc/resolver_wrapper.go b/vendor/google.golang.org/grpc/resolver_wrapper.go index c79bab121..9dcc9780f 100644 --- a/vendor/google.golang.org/grpc/resolver_wrapper.go +++ b/vendor/google.golang.org/grpc/resolver_wrapper.go @@ -75,6 +75,7 @@ func (ccr *ccResolverWrapper) start() error { DialCreds: ccr.cc.dopts.copts.TransportCredentials, CredsBundle: ccr.cc.dopts.copts.CredsBundle, Dialer: ccr.cc.dopts.copts.Dialer, + Authority: ccr.cc.authority, } var err error ccr.resolver, err = ccr.cc.resolverBuilder.Build(ccr.cc.parsedTarget, ccr, opts) @@ -96,7 +97,7 @@ func (ccr *ccResolverWrapper) resolveNow(o resolver.ResolveNowOptions) { // finished shutting down, the channel should block on ccr.serializer.Done() // without cc.mu held. func (ccr *ccResolverWrapper) close() { - channelz.Info(logger, ccr.cc.channelzID, "Closing the name resolver") + channelz.Info(logger, ccr.cc.channelz, "Closing the name resolver") ccr.mu.Lock() ccr.closed = true ccr.mu.Unlock() @@ -146,7 +147,7 @@ func (ccr *ccResolverWrapper) ReportError(err error) { return } ccr.mu.Unlock() - channelz.Warningf(logger, ccr.cc.channelzID, "ccResolverWrapper: reporting error to cc: %v", err) + channelz.Warningf(logger, ccr.cc.channelz, "ccResolverWrapper: reporting error to cc: %v", err) ccr.cc.updateResolverStateAndUnlock(resolver.State{}, err) } @@ -193,5 +194,5 @@ func (ccr *ccResolverWrapper) addChannelzTraceEvent(s resolver.State) { } else if len(ccr.curState.Addresses) == 0 && len(s.Addresses) > 0 { updates = append(updates, "resolver returned new addresses") } - channelz.Infof(logger, ccr.cc.channelzID, "Resolver state updated: %s (%v)", pretty.ToJSON(s), strings.Join(updates, "; ")) + channelz.Infof(logger, ccr.cc.channelz, "Resolver state updated: %s (%v)", pretty.ToJSON(s), strings.Join(updates, "; ")) } diff --git a/vendor/google.golang.org/grpc/rpc_util.go b/vendor/google.golang.org/grpc/rpc_util.go index a4b6bc687..998e251dd 100644 --- a/vendor/google.golang.org/grpc/rpc_util.go +++ b/vendor/google.golang.org/grpc/rpc_util.go @@ -189,6 +189,20 @@ type EmptyCallOption struct{} func (EmptyCallOption) before(*callInfo) error { return nil } func (EmptyCallOption) after(*callInfo, *csAttempt) {} +// StaticMethod returns a CallOption which specifies that a call is being made +// to a method that is static, which means the method is known at compile time +// and doesn't change at runtime. This can be used as a signal to stats plugins +// that this method is safe to include as a key to a measurement. +func StaticMethod() CallOption { + return StaticMethodCallOption{} +} + +// StaticMethodCallOption is a CallOption that specifies that a call comes +// from a static method. +type StaticMethodCallOption struct { + EmptyCallOption +} + // Header returns a CallOptions that retrieves the header metadata // for a unary RPC. func Header(md *metadata.MD) CallOption { @@ -730,17 +744,19 @@ type payloadInfo struct { uncompressedBytes []byte } -func recvAndDecompress(p *parser, s *transport.Stream, dc Decompressor, maxReceiveMessageSize int, payInfo *payloadInfo, compressor encoding.Compressor) ([]byte, error) { - pf, buf, err := p.recvMsg(maxReceiveMessageSize) +// recvAndDecompress reads a message from the stream, decompressing it if necessary. +// +// Cancelling the returned cancel function releases the buffer back to the pool. So the caller should cancel as soon as +// the buffer is no longer needed. +func recvAndDecompress(p *parser, s *transport.Stream, dc Decompressor, maxReceiveMessageSize int, payInfo *payloadInfo, compressor encoding.Compressor, +) (uncompressedBuf []byte, cancel func(), err error) { + pf, compressedBuf, err := p.recvMsg(maxReceiveMessageSize) if err != nil { - return nil, err - } - if payInfo != nil { - payInfo.compressedLength = len(buf) + return nil, nil, err } if st := checkRecvPayload(pf, s.RecvCompress(), compressor != nil || dc != nil); st != nil { - return nil, st.Err() + return nil, nil, st.Err() } var size int @@ -748,21 +764,35 @@ func recvAndDecompress(p *parser, s *transport.Stream, dc Decompressor, maxRecei // To match legacy behavior, if the decompressor is set by WithDecompressor or RPCDecompressor, // use this decompressor as the default. if dc != nil { - buf, err = dc.Do(bytes.NewReader(buf)) - size = len(buf) + uncompressedBuf, err = dc.Do(bytes.NewReader(compressedBuf)) + size = len(uncompressedBuf) } else { - buf, size, err = decompress(compressor, buf, maxReceiveMessageSize) + uncompressedBuf, size, err = decompress(compressor, compressedBuf, maxReceiveMessageSize) } if err != nil { - return nil, status.Errorf(codes.Internal, "grpc: failed to decompress the received message: %v", err) + return nil, nil, status.Errorf(codes.Internal, "grpc: failed to decompress the received message: %v", err) } if size > maxReceiveMessageSize { // TODO: Revisit the error code. Currently keep it consistent with java // implementation. - return nil, status.Errorf(codes.ResourceExhausted, "grpc: received message after decompression larger than max (%d vs. %d)", size, maxReceiveMessageSize) + return nil, nil, status.Errorf(codes.ResourceExhausted, "grpc: received message after decompression larger than max (%d vs. %d)", size, maxReceiveMessageSize) } + } else { + uncompressedBuf = compressedBuf } - return buf, nil + + if payInfo != nil { + payInfo.compressedLength = len(compressedBuf) + payInfo.uncompressedBytes = uncompressedBuf + + cancel = func() {} + } else { + cancel = func() { + p.recvBufferPool.Put(&compressedBuf) + } + } + + return uncompressedBuf, cancel, nil } // Using compressor, decompress d, returning data and size. @@ -782,6 +812,9 @@ func decompress(compressor encoding.Compressor, d []byte, maxReceiveMessageSize // size is used as an estimate to size the buffer, but we // will read more data if available. // +MinRead so ReadFrom will not reallocate if size is correct. + // + // TODO: If we ensure that the buffer size is the same as the DecompressedSize, + // we can also utilize the recv buffer pool here. buf := bytes.NewBuffer(make([]byte, 0, size+bytes.MinRead)) bytesRead, err := buf.ReadFrom(io.LimitReader(dcReader, int64(maxReceiveMessageSize)+1)) return buf.Bytes(), int(bytesRead), err @@ -797,18 +830,15 @@ func decompress(compressor encoding.Compressor, d []byte, maxReceiveMessageSize // dc takes precedence over compressor. // TODO(dfawley): wrap the old compressor/decompressor using the new API? func recv(p *parser, c baseCodec, s *transport.Stream, dc Decompressor, m any, maxReceiveMessageSize int, payInfo *payloadInfo, compressor encoding.Compressor) error { - buf, err := recvAndDecompress(p, s, dc, maxReceiveMessageSize, payInfo, compressor) + buf, cancel, err := recvAndDecompress(p, s, dc, maxReceiveMessageSize, payInfo, compressor) if err != nil { return err } + defer cancel() + if err := c.Unmarshal(buf, m); err != nil { return status.Errorf(codes.Internal, "grpc: failed to unmarshal the received message: %v", err) } - if payInfo != nil { - payInfo.uncompressedBytes = buf - } else { - p.recvBufferPool.Put(&buf) - } return nil } @@ -932,19 +962,6 @@ func setCallInfoCodec(c *callInfo) error { return nil } -// channelzData is used to store channelz related data for ClientConn, addrConn and Server. -// These fields cannot be embedded in the original structs (e.g. ClientConn), since to do atomic -// operation on int64 variable on 32-bit machine, user is responsible to enforce memory alignment. -// Here, by grouping those int64 fields inside a struct, we are enforcing the alignment. -type channelzData struct { - callsStarted int64 - callsFailed int64 - callsSucceeded int64 - // lastCallStartedTime stores the timestamp that last call starts. It is of int64 type instead of - // time.Time since it's more costly to atomically update time.Time variable than int64 variable. - lastCallStartedTime int64 -} - // The SupportPackageIsVersion variables are referenced from generated protocol // buffer files to ensure compatibility with the gRPC version used. The latest // support package version is 7. @@ -958,6 +975,7 @@ const ( SupportPackageIsVersion5 = true SupportPackageIsVersion6 = true SupportPackageIsVersion7 = true + SupportPackageIsVersion8 = true ) const grpcUA = "grpc-go/" + Version diff --git a/vendor/google.golang.org/grpc/server.go b/vendor/google.golang.org/grpc/server.go index e89c5ac61..fd4558daa 100644 --- a/vendor/google.golang.org/grpc/server.go +++ b/vendor/google.golang.org/grpc/server.go @@ -33,8 +33,6 @@ import ( "sync/atomic" "time" - "golang.org/x/net/trace" - "google.golang.org/grpc/codes" "google.golang.org/grpc/credentials" "google.golang.org/grpc/encoding" @@ -131,7 +129,7 @@ type Server struct { drain bool cv *sync.Cond // signaled when connections close for GracefulStop services map[string]*serviceInfo // service name -> service info - events trace.EventLog + events traceEventLog quit *grpcsync.Event done *grpcsync.Event @@ -139,8 +137,7 @@ type Server struct { serveWG sync.WaitGroup // counts active Serve goroutines for Stop/GracefulStop handlersWG sync.WaitGroup // counts active method handler goroutines - channelzID *channelz.Identifier - czData *channelzData + channelz *channelz.Server serverWorkerChannel chan func() serverWorkerChannelClose func() @@ -251,11 +248,9 @@ func SharedWriteBuffer(val bool) ServerOption { } // WriteBufferSize determines how much data can be batched before doing a write -// on the wire. The corresponding memory allocation for this buffer will be -// twice the size to keep syscalls low. The default value for this buffer is -// 32KB. Zero or negative values will disable the write buffer such that each -// write will be on underlying connection. -// Note: A Send call may not directly translate to a write. +// on the wire. The default value for this buffer is 32KB. Zero or negative +// values will disable the write buffer such that each write will be on underlying +// connection. Note: A Send call may not directly translate to a write. func WriteBufferSize(s int) ServerOption { return newFuncServerOption(func(o *serverOptions) { o.writeBufferSize = s @@ -663,22 +658,21 @@ func NewServer(opt ...ServerOption) *Server { services: make(map[string]*serviceInfo), quit: grpcsync.NewEvent(), done: grpcsync.NewEvent(), - czData: new(channelzData), + channelz: channelz.RegisterServer(""), } chainUnaryServerInterceptors(s) chainStreamServerInterceptors(s) s.cv = sync.NewCond(&s.mu) if EnableTracing { _, file, line, _ := runtime.Caller(1) - s.events = trace.NewEventLog("grpc.Server", fmt.Sprintf("%s:%d", file, line)) + s.events = newTraceEventLog("grpc.Server", fmt.Sprintf("%s:%d", file, line)) } if s.opts.numServerWorkers > 0 { s.initServerWorkers() } - s.channelzID = channelz.RegisterServer(&channelzServer{s}, "") - channelz.Info(logger, s.channelzID, "Server created") + channelz.Info(logger, s.channelz, "Server created") return s } @@ -804,20 +798,13 @@ var ErrServerStopped = errors.New("grpc: the server has been stopped") type listenSocket struct { net.Listener - channelzID *channelz.Identifier -} - -func (l *listenSocket) ChannelzMetric() *channelz.SocketInternalMetric { - return &channelz.SocketInternalMetric{ - SocketOptions: channelz.GetSocketOption(l.Listener), - LocalAddr: l.Listener.Addr(), - } + channelz *channelz.Socket } func (l *listenSocket) Close() error { err := l.Listener.Close() - channelz.RemoveEntry(l.channelzID) - channelz.Info(logger, l.channelzID, "ListenSocket deleted") + channelz.RemoveEntry(l.channelz.ID) + channelz.Info(logger, l.channelz, "ListenSocket deleted") return err } @@ -859,7 +846,16 @@ func (s *Server) Serve(lis net.Listener) error { } }() - ls := &listenSocket{Listener: lis} + ls := &listenSocket{ + Listener: lis, + channelz: channelz.RegisterSocket(&channelz.Socket{ + SocketType: channelz.SocketTypeListen, + Parent: s.channelz, + RefName: lis.Addr().String(), + LocalAddr: lis.Addr(), + SocketOptions: channelz.GetSocketOption(lis)}, + ), + } s.lis[ls] = true defer func() { @@ -871,14 +867,8 @@ func (s *Server) Serve(lis net.Listener) error { s.mu.Unlock() }() - var err error - ls.channelzID, err = channelz.RegisterListenSocket(ls, s.channelzID, lis.Addr().String()) - if err != nil { - s.mu.Unlock() - return err - } s.mu.Unlock() - channelz.Info(logger, ls.channelzID, "ListenSocket created") + channelz.Info(logger, ls.channelz, "ListenSocket created") var tempDelay time.Duration // how long to sleep on accept failure for { @@ -977,7 +967,7 @@ func (s *Server) newHTTP2Transport(c net.Conn) transport.ServerTransport { WriteBufferSize: s.opts.writeBufferSize, ReadBufferSize: s.opts.readBufferSize, SharedWriteBuffer: s.opts.sharedWriteBuffer, - ChannelzParentID: s.channelzID, + ChannelzParent: s.channelz, MaxHeaderListSize: s.opts.maxHeaderListSize, HeaderTableSize: s.opts.headerTableSize, } @@ -991,7 +981,7 @@ func (s *Server) newHTTP2Transport(c net.Conn) transport.ServerTransport { if err != credentials.ErrConnDispatched { // Don't log on ErrConnDispatched and io.EOF to prevent log spam. if err != io.EOF { - channelz.Info(logger, s.channelzID, "grpc: Server.Serve failed to create ServerTransport: ", err) + channelz.Info(logger, s.channelz, "grpc: Server.Serve failed to create ServerTransport: ", err) } c.Close() } @@ -1123,37 +1113,28 @@ func (s *Server) removeConn(addr string, st transport.ServerTransport) { } } -func (s *Server) channelzMetric() *channelz.ServerInternalMetric { - return &channelz.ServerInternalMetric{ - CallsStarted: atomic.LoadInt64(&s.czData.callsStarted), - CallsSucceeded: atomic.LoadInt64(&s.czData.callsSucceeded), - CallsFailed: atomic.LoadInt64(&s.czData.callsFailed), - LastCallStartedTimestamp: time.Unix(0, atomic.LoadInt64(&s.czData.lastCallStartedTime)), - } -} - func (s *Server) incrCallsStarted() { - atomic.AddInt64(&s.czData.callsStarted, 1) - atomic.StoreInt64(&s.czData.lastCallStartedTime, time.Now().UnixNano()) + s.channelz.ServerMetrics.CallsStarted.Add(1) + s.channelz.ServerMetrics.LastCallStartedTimestamp.Store(time.Now().UnixNano()) } func (s *Server) incrCallsSucceeded() { - atomic.AddInt64(&s.czData.callsSucceeded, 1) + s.channelz.ServerMetrics.CallsSucceeded.Add(1) } func (s *Server) incrCallsFailed() { - atomic.AddInt64(&s.czData.callsFailed, 1) + s.channelz.ServerMetrics.CallsFailed.Add(1) } func (s *Server) sendResponse(ctx context.Context, t transport.ServerTransport, stream *transport.Stream, msg any, cp Compressor, opts *transport.Options, comp encoding.Compressor) error { data, err := encode(s.getCodec(stream.ContentSubtype()), msg) if err != nil { - channelz.Error(logger, s.channelzID, "grpc: server failed to encode response: ", err) + channelz.Error(logger, s.channelz, "grpc: server failed to encode response: ", err) return err } compData, err := compress(data, cp, comp) if err != nil { - channelz.Error(logger, s.channelzID, "grpc: server failed to compress response: ", err) + channelz.Error(logger, s.channelz, "grpc: server failed to compress response: ", err) return err } hdr, payload := msgHeader(data, compData) @@ -1344,10 +1325,11 @@ func (s *Server) processUnaryRPC(ctx context.Context, t transport.ServerTranspor if len(shs) != 0 || len(binlogs) != 0 { payInfo = &payloadInfo{} } - d, err := recvAndDecompress(&parser{r: stream, recvBufferPool: s.opts.recvBufferPool}, stream, dc, s.opts.maxReceiveMessageSize, payInfo, decomp) + + d, cancel, err := recvAndDecompress(&parser{r: stream, recvBufferPool: s.opts.recvBufferPool}, stream, dc, s.opts.maxReceiveMessageSize, payInfo, decomp) if err != nil { if e := t.WriteStatus(stream, status.Convert(err)); e != nil { - channelz.Warningf(logger, s.channelzID, "grpc: Server.processUnaryRPC failed to write status: %v", e) + channelz.Warningf(logger, s.channelz, "grpc: Server.processUnaryRPC failed to write status: %v", e) } return err } @@ -1355,6 +1337,8 @@ func (s *Server) processUnaryRPC(ctx context.Context, t transport.ServerTranspor t.IncrMsgRecv() } df := func(v any) error { + defer cancel() + if err := s.getCodec(stream.ContentSubtype()).Unmarshal(d, v); err != nil { return status.Errorf(codes.Internal, "grpc: error unmarshalling request: %v", err) } @@ -1396,7 +1380,7 @@ func (s *Server) processUnaryRPC(ctx context.Context, t transport.ServerTranspor trInfo.tr.SetError() } if e := t.WriteStatus(stream, appStatus); e != nil { - channelz.Warningf(logger, s.channelzID, "grpc: Server.processUnaryRPC failed to write status: %v", e) + channelz.Warningf(logger, s.channelz, "grpc: Server.processUnaryRPC failed to write status: %v", e) } if len(binlogs) != 0 { if h, _ := stream.Header(); h.Len() > 0 { @@ -1436,7 +1420,7 @@ func (s *Server) processUnaryRPC(ctx context.Context, t transport.ServerTranspor } if sts, ok := status.FromError(err); ok { if e := t.WriteStatus(stream, sts); e != nil { - channelz.Warningf(logger, s.channelzID, "grpc: Server.processUnaryRPC failed to write status: %v", e) + channelz.Warningf(logger, s.channelz, "grpc: Server.processUnaryRPC failed to write status: %v", e) } } else { switch st := err.(type) { @@ -1734,8 +1718,8 @@ func (s *Server) handleStream(t transport.ServerTransport, stream *transport.Str ctx = contextWithServer(ctx, s) var ti *traceInfo if EnableTracing { - tr := trace.New("grpc.Recv."+methodFamily(stream.Method()), stream.Method()) - ctx = trace.NewContext(ctx, tr) + tr := newTrace("grpc.Recv."+methodFamily(stream.Method()), stream.Method()) + ctx = newTraceContext(ctx, tr) ti = &traceInfo{ tr: tr, firstLine: firstLine{ @@ -1764,7 +1748,7 @@ func (s *Server) handleStream(t transport.ServerTransport, stream *transport.Str ti.tr.LazyLog(&fmtStringer{"%v", []any{err}}, true) ti.tr.SetError() } - channelz.Warningf(logger, s.channelzID, "grpc: Server.handleStream failed to write status: %v", err) + channelz.Warningf(logger, s.channelz, "grpc: Server.handleStream failed to write status: %v", err) } if ti != nil { ti.tr.Finish() @@ -1821,7 +1805,7 @@ func (s *Server) handleStream(t transport.ServerTransport, stream *transport.Str ti.tr.LazyLog(&fmtStringer{"%v", []any{err}}, true) ti.tr.SetError() } - channelz.Warningf(logger, s.channelzID, "grpc: Server.handleStream failed to write status: %v", err) + channelz.Warningf(logger, s.channelz, "grpc: Server.handleStream failed to write status: %v", err) } if ti != nil { ti.tr.Finish() @@ -1893,8 +1877,7 @@ func (s *Server) stop(graceful bool) { s.quit.Fire() defer s.done.Fire() - s.channelzRemoveOnce.Do(func() { channelz.RemoveEntry(s.channelzID) }) - + s.channelzRemoveOnce.Do(func() { channelz.RemoveEntry(s.channelz.ID) }) s.mu.Lock() s.closeListenersLocked() // Wait for serving threads to be ready to exit. Only then can we be sure no @@ -2119,7 +2102,7 @@ func ClientSupportedCompressors(ctx context.Context) ([]string, error) { return nil, fmt.Errorf("failed to fetch the stream from the given context %v", ctx) } - return strings.Split(stream.ClientAdvertisedCompressors(), ","), nil + return stream.ClientAdvertisedCompressors(), nil } // SetTrailer sets the trailer metadata that will be sent when an RPC returns. @@ -2149,17 +2132,9 @@ func Method(ctx context.Context) (string, bool) { return s.Method(), true } -type channelzServer struct { - s *Server -} - -func (c *channelzServer) ChannelzMetric() *channelz.ServerInternalMetric { - return c.s.channelzMetric() -} - // validateSendCompressor returns an error when given compressor name cannot be // handled by the server or the client based on the advertised compressors. -func validateSendCompressor(name, clientCompressors string) error { +func validateSendCompressor(name string, clientCompressors []string) error { if name == encoding.Identity { return nil } @@ -2168,7 +2143,7 @@ func validateSendCompressor(name, clientCompressors string) error { return fmt.Errorf("compressor not registered %q", name) } - for _, c := range strings.Split(clientCompressors, ",") { + for _, c := range clientCompressors { if c == name { return nil // found match } diff --git a/vendor/google.golang.org/grpc/service_config.go b/vendor/google.golang.org/grpc/service_config.go index 0df11fc09..2b35c5d21 100644 --- a/vendor/google.golang.org/grpc/service_config.go +++ b/vendor/google.golang.org/grpc/service_config.go @@ -25,8 +25,10 @@ import ( "reflect" "time" + "google.golang.org/grpc/balancer" "google.golang.org/grpc/codes" "google.golang.org/grpc/internal" + "google.golang.org/grpc/internal/balancer/gracefulswitch" internalserviceconfig "google.golang.org/grpc/internal/serviceconfig" "google.golang.org/grpc/serviceconfig" ) @@ -41,11 +43,6 @@ const maxInt = int(^uint(0) >> 1) // https://github.com/grpc/grpc/blob/master/doc/service_config.md type MethodConfig = internalserviceconfig.MethodConfig -type lbConfig struct { - name string - cfg serviceconfig.LoadBalancingConfig -} - // ServiceConfig is provided by the service provider and contains parameters for how // clients that connect to the service should behave. // @@ -55,14 +52,9 @@ type lbConfig struct { type ServiceConfig struct { serviceconfig.Config - // LB is the load balancer the service providers recommends. This is - // deprecated; lbConfigs is preferred. If lbConfig and LB are both present, - // lbConfig will be used. - LB *string - // lbConfig is the service config's load balancing configuration. If // lbConfig and LB are both present, lbConfig will be used. - lbConfig *lbConfig + lbConfig serviceconfig.LoadBalancingConfig // Methods contains a map for the methods in this service. If there is an // exact match for a method (i.e. /service/method) in the map, use the @@ -164,7 +156,7 @@ type jsonMC struct { // TODO(lyuxuan): delete this struct after cleaning up old service config implementation. type jsonSC struct { LoadBalancingPolicy *string - LoadBalancingConfig *internalserviceconfig.BalancerConfig + LoadBalancingConfig *json.RawMessage MethodConfig *[]jsonMC RetryThrottling *retryThrottlingPolicy HealthCheckConfig *healthCheckConfig @@ -184,18 +176,33 @@ func parseServiceConfig(js string) *serviceconfig.ParseResult { return &serviceconfig.ParseResult{Err: err} } sc := ServiceConfig{ - LB: rsc.LoadBalancingPolicy, Methods: make(map[string]MethodConfig), retryThrottling: rsc.RetryThrottling, healthCheckConfig: rsc.HealthCheckConfig, rawJSONString: js, } - if c := rsc.LoadBalancingConfig; c != nil { - sc.lbConfig = &lbConfig{ - name: c.Name, - cfg: c.Config, + c := rsc.LoadBalancingConfig + if c == nil { + name := PickFirstBalancerName + if rsc.LoadBalancingPolicy != nil { + name = *rsc.LoadBalancingPolicy + } + if balancer.Get(name) == nil { + name = PickFirstBalancerName } + cfg := []map[string]any{{name: struct{}{}}} + strCfg, err := json.Marshal(cfg) + if err != nil { + return &serviceconfig.ParseResult{Err: fmt.Errorf("unexpected error marshaling simple LB config: %w", err)} + } + r := json.RawMessage(strCfg) + c = &r + } + cfg, err := gracefulswitch.ParseConfig(*c) + if err != nil { + return &serviceconfig.ParseResult{Err: err} } + sc.lbConfig = cfg if rsc.MethodConfig == nil { return &serviceconfig.ParseResult{Config: &sc} diff --git a/vendor/google.golang.org/grpc/stream.go b/vendor/google.golang.org/grpc/stream.go index d621f52b1..d939ffc63 100644 --- a/vendor/google.golang.org/grpc/stream.go +++ b/vendor/google.golang.org/grpc/stream.go @@ -27,7 +27,6 @@ import ( "sync" "time" - "golang.org/x/net/trace" "google.golang.org/grpc/balancer" "google.golang.org/grpc/codes" "google.golang.org/grpc/encoding" @@ -431,7 +430,7 @@ func (cs *clientStream) newAttemptLocked(isTransparent bool) (*csAttempt, error) var trInfo *traceInfo if EnableTracing { trInfo = &traceInfo{ - tr: trace.New("grpc.Sent."+methodFamily(method), method), + tr: newTrace("grpc.Sent."+methodFamily(method), method), firstLine: firstLine{ client: true, }, @@ -440,7 +439,7 @@ func (cs *clientStream) newAttemptLocked(isTransparent bool) (*csAttempt, error) trInfo.firstLine.deadline = time.Until(deadline) } trInfo.tr.LazyLog(&trInfo.firstLine, false) - ctx = trace.NewContext(ctx, trInfo.tr) + ctx = newTraceContext(ctx, trInfo.tr) } if cs.cc.parsedTarget.URL.Scheme == internal.GRPCResolverSchemeExtraMetadata { @@ -656,13 +655,13 @@ func (a *csAttempt) shouldRetry(err error) (bool, error) { if len(sps) == 1 { var e error if pushback, e = strconv.Atoi(sps[0]); e != nil || pushback < 0 { - channelz.Infof(logger, cs.cc.channelzID, "Server retry pushback specified to abort (%q).", sps[0]) + channelz.Infof(logger, cs.cc.channelz, "Server retry pushback specified to abort (%q).", sps[0]) cs.retryThrottler.throttle() // This counts as a failure for throttling. return false, err } hasPushback = true } else if len(sps) > 1 { - channelz.Warningf(logger, cs.cc.channelzID, "Server retry pushback specified multiple values (%q); not retrying.", sps) + channelz.Warningf(logger, cs.cc.channelz, "Server retry pushback specified multiple values (%q); not retrying.", sps) cs.retryThrottler.throttle() // This counts as a failure for throttling. return false, err } diff --git a/vendor/google.golang.org/grpc/trace.go b/vendor/google.golang.org/grpc/trace.go index 9ded79321..10f4f798f 100644 --- a/vendor/google.golang.org/grpc/trace.go +++ b/vendor/google.golang.org/grpc/trace.go @@ -26,8 +26,6 @@ import ( "strings" "sync" "time" - - "golang.org/x/net/trace" ) // EnableTracing controls whether to trace RPCs using the golang.org/x/net/trace package. @@ -44,9 +42,31 @@ func methodFamily(m string) string { return m } +// traceEventLog mirrors golang.org/x/net/trace.EventLog. +// +// It exists in order to avoid importing x/net/trace on grpcnotrace builds. +type traceEventLog interface { + Printf(format string, a ...any) + Errorf(format string, a ...any) + Finish() +} + +// traceLog mirrors golang.org/x/net/trace.Trace. +// +// It exists in order to avoid importing x/net/trace on grpcnotrace builds. +type traceLog interface { + LazyLog(x fmt.Stringer, sensitive bool) + LazyPrintf(format string, a ...any) + SetError() + SetRecycler(f func(any)) + SetTraceInfo(traceID, spanID uint64) + SetMaxEvents(m int) + Finish() +} + // traceInfo contains tracing information for an RPC. type traceInfo struct { - tr trace.Trace + tr traceLog firstLine firstLine } diff --git a/vendor/google.golang.org/grpc/trace_notrace.go b/vendor/google.golang.org/grpc/trace_notrace.go new file mode 100644 index 000000000..1da3a2308 --- /dev/null +++ b/vendor/google.golang.org/grpc/trace_notrace.go @@ -0,0 +1,52 @@ +//go:build grpcnotrace + +/* + * + * Copyright 2024 gRPC authors. + * + * 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 grpc + +// grpcnotrace can be used to avoid importing golang.org/x/net/trace, which in +// turn enables binaries using gRPC-Go for dead code elimination, which can +// yield 10-15% improvements in binary size when tracing is not needed. + +import ( + "context" + "fmt" +) + +type notrace struct{} + +func (notrace) LazyLog(x fmt.Stringer, sensitive bool) {} +func (notrace) LazyPrintf(format string, a ...any) {} +func (notrace) SetError() {} +func (notrace) SetRecycler(f func(any)) {} +func (notrace) SetTraceInfo(traceID, spanID uint64) {} +func (notrace) SetMaxEvents(m int) {} +func (notrace) Finish() {} + +func newTrace(family, title string) traceLog { + return notrace{} +} + +func newTraceContext(ctx context.Context, tr traceLog) context.Context { + return ctx +} + +func newTraceEventLog(family, title string) traceEventLog { + return nil +} diff --git a/vendor/google.golang.org/grpc/trace_withtrace.go b/vendor/google.golang.org/grpc/trace_withtrace.go new file mode 100644 index 000000000..88d6e8571 --- /dev/null +++ b/vendor/google.golang.org/grpc/trace_withtrace.go @@ -0,0 +1,39 @@ +//go:build !grpcnotrace + +/* + * + * Copyright 2024 gRPC authors. + * + * 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 grpc + +import ( + "context" + + t "golang.org/x/net/trace" +) + +func newTrace(family, title string) traceLog { + return t.New(family, title) +} + +func newTraceContext(ctx context.Context, tr traceLog) context.Context { + return t.NewContext(ctx, tr) +} + +func newTraceEventLog(family, title string) traceEventLog { + return t.NewEventLog(family, title) +} diff --git a/vendor/google.golang.org/grpc/version.go b/vendor/google.golang.org/grpc/version.go index 1ad1ba2ad..2556f7583 100644 --- a/vendor/google.golang.org/grpc/version.go +++ b/vendor/google.golang.org/grpc/version.go @@ -19,4 +19,4 @@ package grpc // Version is the current grpc version. -const Version = "1.61.0" +const Version = "1.63.2" diff --git a/vendor/google.golang.org/grpc/vet.sh b/vendor/google.golang.org/grpc/vet.sh index 5da38a409..7e6b92e49 100644 --- a/vendor/google.golang.org/grpc/vet.sh +++ b/vendor/google.golang.org/grpc/vet.sh @@ -41,7 +41,7 @@ if [[ "$1" = "-install" ]]; then popd if [[ -z "${VET_SKIP_PROTO}" ]]; then if [[ "${GITHUB_ACTIONS}" = "true" ]]; then - PROTOBUF_VERSION=22.0 # a.k.a v4.22.0 in pb.go files. + PROTOBUF_VERSION=25.2 # a.k.a. v4.22.0 in pb.go files. PROTOC_FILENAME=protoc-${PROTOBUF_VERSION}-linux-x86_64.zip pushd /home/runner/go wget https://github.com/google/protobuf/releases/download/v${PROTOBUF_VERSION}/${PROTOC_FILENAME} @@ -83,6 +83,10 @@ git grep 'func [A-Z]' -- "*_test.go" | not grep -v 'func Test\|Benchmark\|Exampl # - Do not import x/net/context. not git grep -l 'x/net/context' -- "*.go" +# - Do not use time.After except in tests. It has the potential to leak the +# timer since there is no way to stop it early. +git grep -l 'time.After(' -- "*.go" | not grep -v '_test.go\|test_utils\|testutils' + # - Do not import math/rand for real library code. Use internal/grpcrand for # thread safety. git grep -l '"math/rand"' -- "*.go" 2>&1 | not grep -v '^examples\|^interop/stress\|grpcrand\|^benchmark\|wrr_test' @@ -172,6 +176,7 @@ UpdateAddresses is deprecated: UpdateSubConnState is deprecated: balancer.ErrTransientFailure is deprecated: grpc/reflection/v1alpha/reflection.proto +SwitchTo is deprecated: XXXXX xDS deprecated fields we support .ExactMatch .PrefixMatch diff --git a/vendor/google.golang.org/protobuf/protoadapt/convert.go b/vendor/google.golang.org/protobuf/protoadapt/convert.go new file mode 100644 index 000000000..ea276d15a --- /dev/null +++ b/vendor/google.golang.org/protobuf/protoadapt/convert.go @@ -0,0 +1,31 @@ +// Copyright 2023 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package protoadapt bridges the original and new proto APIs. +package protoadapt + +import ( + "google.golang.org/protobuf/proto" + "google.golang.org/protobuf/runtime/protoiface" + "google.golang.org/protobuf/runtime/protoimpl" +) + +// MessageV1 is the original [github.com/golang/protobuf/proto.Message] type. +type MessageV1 = protoiface.MessageV1 + +// MessageV2 is the [google.golang.org/protobuf/proto.Message] type used by the +// current [google.golang.org/protobuf] module, adding support for reflection. +type MessageV2 = proto.Message + +// MessageV1Of converts a v2 message to a v1 message. +// It returns nil if m is nil. +func MessageV1Of(m MessageV2) MessageV1 { + return protoimpl.X.ProtoMessageV1Of(m) +} + +// MessageV2Of converts a v1 message to a v2 message. +// It returns nil if m is nil. +func MessageV2Of(m MessageV1) MessageV2 { + return protoimpl.X.ProtoMessageV2Of(m) +} diff --git a/vendor/google.golang.org/protobuf/reflect/protodesc/desc.go b/vendor/google.golang.org/protobuf/reflect/protodesc/desc.go deleted file mode 100644 index baa0cc621..000000000 --- a/vendor/google.golang.org/protobuf/reflect/protodesc/desc.go +++ /dev/null @@ -1,285 +0,0 @@ -// Copyright 2018 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package protodesc provides functionality for converting -// FileDescriptorProto messages to/from [protoreflect.FileDescriptor] values. -// -// The google.protobuf.FileDescriptorProto is a protobuf message that describes -// the type information for a .proto file in a form that is easily serializable. -// The [protoreflect.FileDescriptor] is a more structured representation of -// the FileDescriptorProto message where references and remote dependencies -// can be directly followed. -package protodesc - -import ( - "google.golang.org/protobuf/internal/errors" - "google.golang.org/protobuf/internal/filedesc" - "google.golang.org/protobuf/internal/pragma" - "google.golang.org/protobuf/internal/strs" - "google.golang.org/protobuf/proto" - "google.golang.org/protobuf/reflect/protoreflect" - "google.golang.org/protobuf/reflect/protoregistry" - - "google.golang.org/protobuf/types/descriptorpb" -) - -// Resolver is the resolver used by [NewFile] to resolve dependencies. -// The enums and messages provided must belong to some parent file, -// which is also registered. -// -// It is implemented by [protoregistry.Files]. -type Resolver interface { - FindFileByPath(string) (protoreflect.FileDescriptor, error) - FindDescriptorByName(protoreflect.FullName) (protoreflect.Descriptor, error) -} - -// FileOptions configures the construction of file descriptors. -type FileOptions struct { - pragma.NoUnkeyedLiterals - - // AllowUnresolvable configures New to permissively allow unresolvable - // file, enum, or message dependencies. Unresolved dependencies are replaced - // by placeholder equivalents. - // - // The following dependencies may be left unresolved: - // • Resolving an imported file. - // • Resolving the type for a message field or extension field. - // If the kind of the field is unknown, then a placeholder is used for both - // the Enum and Message accessors on the protoreflect.FieldDescriptor. - // • Resolving an enum value set as the default for an optional enum field. - // If unresolvable, the protoreflect.FieldDescriptor.Default is set to the - // first value in the associated enum (or zero if the also enum dependency - // is also unresolvable). The protoreflect.FieldDescriptor.DefaultEnumValue - // is populated with a placeholder. - // • Resolving the extended message type for an extension field. - // • Resolving the input or output message type for a service method. - // - // If the unresolved dependency uses a relative name, - // then the placeholder will contain an invalid FullName with a "*." prefix, - // indicating that the starting prefix of the full name is unknown. - AllowUnresolvable bool -} - -// NewFile creates a new [protoreflect.FileDescriptor] from the provided -// file descriptor message. See [FileOptions.New] for more information. -func NewFile(fd *descriptorpb.FileDescriptorProto, r Resolver) (protoreflect.FileDescriptor, error) { - return FileOptions{}.New(fd, r) -} - -// NewFiles creates a new [protoregistry.Files] from the provided -// FileDescriptorSet message. See [FileOptions.NewFiles] for more information. -func NewFiles(fd *descriptorpb.FileDescriptorSet) (*protoregistry.Files, error) { - return FileOptions{}.NewFiles(fd) -} - -// New creates a new [protoreflect.FileDescriptor] from the provided -// file descriptor message. The file must represent a valid proto file according -// to protobuf semantics. The returned descriptor is a deep copy of the input. -// -// Any imported files, enum types, or message types referenced in the file are -// resolved using the provided registry. When looking up an import file path, -// the path must be unique. The newly created file descriptor is not registered -// back into the provided file registry. -func (o FileOptions) New(fd *descriptorpb.FileDescriptorProto, r Resolver) (protoreflect.FileDescriptor, error) { - if r == nil { - r = (*protoregistry.Files)(nil) // empty resolver - } - - // Handle the file descriptor content. - f := &filedesc.File{L2: &filedesc.FileL2{}} - switch fd.GetSyntax() { - case "proto2", "": - f.L1.Syntax = protoreflect.Proto2 - case "proto3": - f.L1.Syntax = protoreflect.Proto3 - case "editions": - f.L1.Syntax = protoreflect.Editions - f.L1.Edition = fromEditionProto(fd.GetEdition()) - default: - return nil, errors.New("invalid syntax: %q", fd.GetSyntax()) - } - if f.L1.Syntax == protoreflect.Editions && (fd.GetEdition() < SupportedEditionsMinimum || fd.GetEdition() > SupportedEditionsMaximum) { - return nil, errors.New("use of edition %v not yet supported by the Go Protobuf runtime", fd.GetEdition()) - } - f.L1.Path = fd.GetName() - if f.L1.Path == "" { - return nil, errors.New("file path must be populated") - } - f.L1.Package = protoreflect.FullName(fd.GetPackage()) - if !f.L1.Package.IsValid() && f.L1.Package != "" { - return nil, errors.New("invalid package: %q", f.L1.Package) - } - if opts := fd.GetOptions(); opts != nil { - opts = proto.Clone(opts).(*descriptorpb.FileOptions) - f.L2.Options = func() protoreflect.ProtoMessage { return opts } - } - if f.L1.Syntax == protoreflect.Editions { - initFileDescFromFeatureSet(f, fd.GetOptions().GetFeatures()) - } - - f.L2.Imports = make(filedesc.FileImports, len(fd.GetDependency())) - for _, i := range fd.GetPublicDependency() { - if !(0 <= i && int(i) < len(f.L2.Imports)) || f.L2.Imports[i].IsPublic { - return nil, errors.New("invalid or duplicate public import index: %d", i) - } - f.L2.Imports[i].IsPublic = true - } - for _, i := range fd.GetWeakDependency() { - if !(0 <= i && int(i) < len(f.L2.Imports)) || f.L2.Imports[i].IsWeak { - return nil, errors.New("invalid or duplicate weak import index: %d", i) - } - f.L2.Imports[i].IsWeak = true - } - imps := importSet{f.Path(): true} - for i, path := range fd.GetDependency() { - imp := &f.L2.Imports[i] - f, err := r.FindFileByPath(path) - if err == protoregistry.NotFound && (o.AllowUnresolvable || imp.IsWeak) { - f = filedesc.PlaceholderFile(path) - } else if err != nil { - return nil, errors.New("could not resolve import %q: %v", path, err) - } - imp.FileDescriptor = f - - if imps[imp.Path()] { - return nil, errors.New("already imported %q", path) - } - imps[imp.Path()] = true - } - for i := range fd.GetDependency() { - imp := &f.L2.Imports[i] - imps.importPublic(imp.Imports()) - } - - // Handle source locations. - f.L2.Locations.File = f - for _, loc := range fd.GetSourceCodeInfo().GetLocation() { - var l protoreflect.SourceLocation - // TODO: Validate that the path points to an actual declaration? - l.Path = protoreflect.SourcePath(loc.GetPath()) - s := loc.GetSpan() - switch len(s) { - case 3: - l.StartLine, l.StartColumn, l.EndLine, l.EndColumn = int(s[0]), int(s[1]), int(s[0]), int(s[2]) - case 4: - l.StartLine, l.StartColumn, l.EndLine, l.EndColumn = int(s[0]), int(s[1]), int(s[2]), int(s[3]) - default: - return nil, errors.New("invalid span: %v", s) - } - // TODO: Validate that the span information is sensible? - // See https://github.com/protocolbuffers/protobuf/issues/6378. - if false && (l.EndLine < l.StartLine || l.StartLine < 0 || l.StartColumn < 0 || l.EndColumn < 0 || - (l.StartLine == l.EndLine && l.EndColumn <= l.StartColumn)) { - return nil, errors.New("invalid span: %v", s) - } - l.LeadingDetachedComments = loc.GetLeadingDetachedComments() - l.LeadingComments = loc.GetLeadingComments() - l.TrailingComments = loc.GetTrailingComments() - f.L2.Locations.List = append(f.L2.Locations.List, l) - } - - // Step 1: Allocate and derive the names for all declarations. - // This copies all fields from the descriptor proto except: - // google.protobuf.FieldDescriptorProto.type_name - // google.protobuf.FieldDescriptorProto.default_value - // google.protobuf.FieldDescriptorProto.oneof_index - // google.protobuf.FieldDescriptorProto.extendee - // google.protobuf.MethodDescriptorProto.input - // google.protobuf.MethodDescriptorProto.output - var err error - sb := new(strs.Builder) - r1 := make(descsByName) - if f.L1.Enums.List, err = r1.initEnumDeclarations(fd.GetEnumType(), f, sb); err != nil { - return nil, err - } - if f.L1.Messages.List, err = r1.initMessagesDeclarations(fd.GetMessageType(), f, sb); err != nil { - return nil, err - } - if f.L1.Extensions.List, err = r1.initExtensionDeclarations(fd.GetExtension(), f, sb); err != nil { - return nil, err - } - if f.L1.Services.List, err = r1.initServiceDeclarations(fd.GetService(), f, sb); err != nil { - return nil, err - } - - // Step 2: Resolve every dependency reference not handled by step 1. - r2 := &resolver{local: r1, remote: r, imports: imps, allowUnresolvable: o.AllowUnresolvable} - if err := r2.resolveMessageDependencies(f.L1.Messages.List, fd.GetMessageType()); err != nil { - return nil, err - } - if err := r2.resolveExtensionDependencies(f.L1.Extensions.List, fd.GetExtension()); err != nil { - return nil, err - } - if err := r2.resolveServiceDependencies(f.L1.Services.List, fd.GetService()); err != nil { - return nil, err - } - - // Step 3: Validate every enum, message, and extension declaration. - if err := validateEnumDeclarations(f.L1.Enums.List, fd.GetEnumType()); err != nil { - return nil, err - } - if err := validateMessageDeclarations(f.L1.Messages.List, fd.GetMessageType()); err != nil { - return nil, err - } - if err := validateExtensionDeclarations(f.L1.Extensions.List, fd.GetExtension()); err != nil { - return nil, err - } - - return f, nil -} - -type importSet map[string]bool - -func (is importSet) importPublic(imps protoreflect.FileImports) { - for i := 0; i < imps.Len(); i++ { - if imp := imps.Get(i); imp.IsPublic { - is[imp.Path()] = true - is.importPublic(imp.Imports()) - } - } -} - -// NewFiles creates a new [protoregistry.Files] from the provided -// FileDescriptorSet message. The descriptor set must include only -// valid files according to protobuf semantics. The returned descriptors -// are a deep copy of the input. -func (o FileOptions) NewFiles(fds *descriptorpb.FileDescriptorSet) (*protoregistry.Files, error) { - files := make(map[string]*descriptorpb.FileDescriptorProto) - for _, fd := range fds.File { - if _, ok := files[fd.GetName()]; ok { - return nil, errors.New("file appears multiple times: %q", fd.GetName()) - } - files[fd.GetName()] = fd - } - r := &protoregistry.Files{} - for _, fd := range files { - if err := o.addFileDeps(r, fd, files); err != nil { - return nil, err - } - } - return r, nil -} -func (o FileOptions) addFileDeps(r *protoregistry.Files, fd *descriptorpb.FileDescriptorProto, files map[string]*descriptorpb.FileDescriptorProto) error { - // Set the entry to nil while descending into a file's dependencies to detect cycles. - files[fd.GetName()] = nil - for _, dep := range fd.Dependency { - depfd, ok := files[dep] - if depfd == nil { - if ok { - return errors.New("import cycle in file: %q", dep) - } - continue - } - if err := o.addFileDeps(r, depfd, files); err != nil { - return err - } - } - // Delete the entry once dependencies are processed. - delete(files, fd.GetName()) - f, err := o.New(fd, r) - if err != nil { - return err - } - return r.RegisterFile(f) -} diff --git a/vendor/google.golang.org/protobuf/reflect/protodesc/desc_init.go b/vendor/google.golang.org/protobuf/reflect/protodesc/desc_init.go deleted file mode 100644 index b3278163c..000000000 --- a/vendor/google.golang.org/protobuf/reflect/protodesc/desc_init.go +++ /dev/null @@ -1,304 +0,0 @@ -// Copyright 2019 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package protodesc - -import ( - "google.golang.org/protobuf/internal/errors" - "google.golang.org/protobuf/internal/filedesc" - "google.golang.org/protobuf/internal/strs" - "google.golang.org/protobuf/proto" - "google.golang.org/protobuf/reflect/protoreflect" - - "google.golang.org/protobuf/types/descriptorpb" -) - -type descsByName map[protoreflect.FullName]protoreflect.Descriptor - -func (r descsByName) initEnumDeclarations(eds []*descriptorpb.EnumDescriptorProto, parent protoreflect.Descriptor, sb *strs.Builder) (es []filedesc.Enum, err error) { - es = make([]filedesc.Enum, len(eds)) // allocate up-front to ensure stable pointers - for i, ed := range eds { - e := &es[i] - e.L2 = new(filedesc.EnumL2) - if e.L0, err = r.makeBase(e, parent, ed.GetName(), i, sb); err != nil { - return nil, err - } - if opts := ed.GetOptions(); opts != nil { - opts = proto.Clone(opts).(*descriptorpb.EnumOptions) - e.L2.Options = func() protoreflect.ProtoMessage { return opts } - } - e.L1.EditionFeatures = mergeEditionFeatures(parent, ed.GetOptions().GetFeatures()) - for _, s := range ed.GetReservedName() { - e.L2.ReservedNames.List = append(e.L2.ReservedNames.List, protoreflect.Name(s)) - } - for _, rr := range ed.GetReservedRange() { - e.L2.ReservedRanges.List = append(e.L2.ReservedRanges.List, [2]protoreflect.EnumNumber{ - protoreflect.EnumNumber(rr.GetStart()), - protoreflect.EnumNumber(rr.GetEnd()), - }) - } - if e.L2.Values.List, err = r.initEnumValuesFromDescriptorProto(ed.GetValue(), e, sb); err != nil { - return nil, err - } - } - return es, nil -} - -func (r descsByName) initEnumValuesFromDescriptorProto(vds []*descriptorpb.EnumValueDescriptorProto, parent protoreflect.Descriptor, sb *strs.Builder) (vs []filedesc.EnumValue, err error) { - vs = make([]filedesc.EnumValue, len(vds)) // allocate up-front to ensure stable pointers - for i, vd := range vds { - v := &vs[i] - if v.L0, err = r.makeBase(v, parent, vd.GetName(), i, sb); err != nil { - return nil, err - } - if opts := vd.GetOptions(); opts != nil { - opts = proto.Clone(opts).(*descriptorpb.EnumValueOptions) - v.L1.Options = func() protoreflect.ProtoMessage { return opts } - } - v.L1.Number = protoreflect.EnumNumber(vd.GetNumber()) - } - return vs, nil -} - -func (r descsByName) initMessagesDeclarations(mds []*descriptorpb.DescriptorProto, parent protoreflect.Descriptor, sb *strs.Builder) (ms []filedesc.Message, err error) { - ms = make([]filedesc.Message, len(mds)) // allocate up-front to ensure stable pointers - for i, md := range mds { - m := &ms[i] - m.L2 = new(filedesc.MessageL2) - if m.L0, err = r.makeBase(m, parent, md.GetName(), i, sb); err != nil { - return nil, err - } - if m.Base.L0.ParentFile.Syntax() == protoreflect.Editions { - m.L1.EditionFeatures = mergeEditionFeatures(parent, md.GetOptions().GetFeatures()) - } - if opts := md.GetOptions(); opts != nil { - opts = proto.Clone(opts).(*descriptorpb.MessageOptions) - m.L2.Options = func() protoreflect.ProtoMessage { return opts } - m.L1.IsMapEntry = opts.GetMapEntry() - m.L1.IsMessageSet = opts.GetMessageSetWireFormat() - } - for _, s := range md.GetReservedName() { - m.L2.ReservedNames.List = append(m.L2.ReservedNames.List, protoreflect.Name(s)) - } - for _, rr := range md.GetReservedRange() { - m.L2.ReservedRanges.List = append(m.L2.ReservedRanges.List, [2]protoreflect.FieldNumber{ - protoreflect.FieldNumber(rr.GetStart()), - protoreflect.FieldNumber(rr.GetEnd()), - }) - } - for _, xr := range md.GetExtensionRange() { - m.L2.ExtensionRanges.List = append(m.L2.ExtensionRanges.List, [2]protoreflect.FieldNumber{ - protoreflect.FieldNumber(xr.GetStart()), - protoreflect.FieldNumber(xr.GetEnd()), - }) - var optsFunc func() protoreflect.ProtoMessage - if opts := xr.GetOptions(); opts != nil { - opts = proto.Clone(opts).(*descriptorpb.ExtensionRangeOptions) - optsFunc = func() protoreflect.ProtoMessage { return opts } - } - m.L2.ExtensionRangeOptions = append(m.L2.ExtensionRangeOptions, optsFunc) - } - if m.L2.Fields.List, err = r.initFieldsFromDescriptorProto(md.GetField(), m, sb); err != nil { - return nil, err - } - if m.L2.Oneofs.List, err = r.initOneofsFromDescriptorProto(md.GetOneofDecl(), m, sb); err != nil { - return nil, err - } - if m.L1.Enums.List, err = r.initEnumDeclarations(md.GetEnumType(), m, sb); err != nil { - return nil, err - } - if m.L1.Messages.List, err = r.initMessagesDeclarations(md.GetNestedType(), m, sb); err != nil { - return nil, err - } - if m.L1.Extensions.List, err = r.initExtensionDeclarations(md.GetExtension(), m, sb); err != nil { - return nil, err - } - } - return ms, nil -} - -// canBePacked returns whether the field can use packed encoding: -// https://protobuf.dev/programming-guides/encoding/#packed -func canBePacked(fd *descriptorpb.FieldDescriptorProto) bool { - if fd.GetLabel() != descriptorpb.FieldDescriptorProto_LABEL_REPEATED { - return false // not a repeated field - } - - switch protoreflect.Kind(fd.GetType()) { - case protoreflect.MessageKind, protoreflect.GroupKind: - return false // not a scalar type field - - case protoreflect.StringKind, protoreflect.BytesKind: - // string and bytes can explicitly not be declared as packed, - // see https://protobuf.dev/programming-guides/encoding/#packed - return false - - default: - return true - } -} - -func (r descsByName) initFieldsFromDescriptorProto(fds []*descriptorpb.FieldDescriptorProto, parent protoreflect.Descriptor, sb *strs.Builder) (fs []filedesc.Field, err error) { - fs = make([]filedesc.Field, len(fds)) // allocate up-front to ensure stable pointers - for i, fd := range fds { - f := &fs[i] - if f.L0, err = r.makeBase(f, parent, fd.GetName(), i, sb); err != nil { - return nil, err - } - f.L1.IsProto3Optional = fd.GetProto3Optional() - if opts := fd.GetOptions(); opts != nil { - opts = proto.Clone(opts).(*descriptorpb.FieldOptions) - f.L1.Options = func() protoreflect.ProtoMessage { return opts } - f.L1.IsWeak = opts.GetWeak() - f.L1.HasPacked = opts.Packed != nil - f.L1.IsPacked = opts.GetPacked() - } - f.L1.Number = protoreflect.FieldNumber(fd.GetNumber()) - f.L1.Cardinality = protoreflect.Cardinality(fd.GetLabel()) - if fd.Type != nil { - f.L1.Kind = protoreflect.Kind(fd.GetType()) - } - if fd.JsonName != nil { - f.L1.StringName.InitJSON(fd.GetJsonName()) - } - - if f.Base.L0.ParentFile.Syntax() == protoreflect.Editions { - f.L1.EditionFeatures = mergeEditionFeatures(parent, fd.GetOptions().GetFeatures()) - - if f.L1.EditionFeatures.IsLegacyRequired { - f.L1.Cardinality = protoreflect.Required - } - // We reuse the existing field because the old option `[packed = - // true]` is mutually exclusive with the editions feature. - if canBePacked(fd) { - f.L1.HasPacked = true - f.L1.IsPacked = f.L1.EditionFeatures.IsPacked - } - - // We pretend this option is always explicitly set because the only - // use of HasEnforceUTF8 is to determine whether to use EnforceUTF8 - // or to return the appropriate default. - // When using editions we either parse the option or resolve the - // appropriate default here (instead of later when this option is - // requested from the descriptor). - // In proto2/proto3 syntax HasEnforceUTF8 might be false. - f.L1.HasEnforceUTF8 = true - f.L1.EnforceUTF8 = f.L1.EditionFeatures.IsUTF8Validated - - if f.L1.Kind == protoreflect.MessageKind && f.L1.EditionFeatures.IsDelimitedEncoded { - f.L1.Kind = protoreflect.GroupKind - } - } - } - return fs, nil -} - -func (r descsByName) initOneofsFromDescriptorProto(ods []*descriptorpb.OneofDescriptorProto, parent protoreflect.Descriptor, sb *strs.Builder) (os []filedesc.Oneof, err error) { - os = make([]filedesc.Oneof, len(ods)) // allocate up-front to ensure stable pointers - for i, od := range ods { - o := &os[i] - if o.L0, err = r.makeBase(o, parent, od.GetName(), i, sb); err != nil { - return nil, err - } - if opts := od.GetOptions(); opts != nil { - opts = proto.Clone(opts).(*descriptorpb.OneofOptions) - o.L1.Options = func() protoreflect.ProtoMessage { return opts } - if parent.Syntax() == protoreflect.Editions { - o.L1.EditionFeatures = mergeEditionFeatures(parent, opts.GetFeatures()) - } - } - } - return os, nil -} - -func (r descsByName) initExtensionDeclarations(xds []*descriptorpb.FieldDescriptorProto, parent protoreflect.Descriptor, sb *strs.Builder) (xs []filedesc.Extension, err error) { - xs = make([]filedesc.Extension, len(xds)) // allocate up-front to ensure stable pointers - for i, xd := range xds { - x := &xs[i] - x.L2 = new(filedesc.ExtensionL2) - if x.L0, err = r.makeBase(x, parent, xd.GetName(), i, sb); err != nil { - return nil, err - } - if opts := xd.GetOptions(); opts != nil { - opts = proto.Clone(opts).(*descriptorpb.FieldOptions) - x.L2.Options = func() protoreflect.ProtoMessage { return opts } - x.L2.IsPacked = opts.GetPacked() - } - x.L1.Number = protoreflect.FieldNumber(xd.GetNumber()) - x.L1.Cardinality = protoreflect.Cardinality(xd.GetLabel()) - if xd.Type != nil { - x.L1.Kind = protoreflect.Kind(xd.GetType()) - } - if xd.JsonName != nil { - x.L2.StringName.InitJSON(xd.GetJsonName()) - } - } - return xs, nil -} - -func (r descsByName) initServiceDeclarations(sds []*descriptorpb.ServiceDescriptorProto, parent protoreflect.Descriptor, sb *strs.Builder) (ss []filedesc.Service, err error) { - ss = make([]filedesc.Service, len(sds)) // allocate up-front to ensure stable pointers - for i, sd := range sds { - s := &ss[i] - s.L2 = new(filedesc.ServiceL2) - if s.L0, err = r.makeBase(s, parent, sd.GetName(), i, sb); err != nil { - return nil, err - } - if opts := sd.GetOptions(); opts != nil { - opts = proto.Clone(opts).(*descriptorpb.ServiceOptions) - s.L2.Options = func() protoreflect.ProtoMessage { return opts } - } - if s.L2.Methods.List, err = r.initMethodsFromDescriptorProto(sd.GetMethod(), s, sb); err != nil { - return nil, err - } - } - return ss, nil -} - -func (r descsByName) initMethodsFromDescriptorProto(mds []*descriptorpb.MethodDescriptorProto, parent protoreflect.Descriptor, sb *strs.Builder) (ms []filedesc.Method, err error) { - ms = make([]filedesc.Method, len(mds)) // allocate up-front to ensure stable pointers - for i, md := range mds { - m := &ms[i] - if m.L0, err = r.makeBase(m, parent, md.GetName(), i, sb); err != nil { - return nil, err - } - if opts := md.GetOptions(); opts != nil { - opts = proto.Clone(opts).(*descriptorpb.MethodOptions) - m.L1.Options = func() protoreflect.ProtoMessage { return opts } - } - m.L1.IsStreamingClient = md.GetClientStreaming() - m.L1.IsStreamingServer = md.GetServerStreaming() - } - return ms, nil -} - -func (r descsByName) makeBase(child, parent protoreflect.Descriptor, name string, idx int, sb *strs.Builder) (filedesc.BaseL0, error) { - if !protoreflect.Name(name).IsValid() { - return filedesc.BaseL0{}, errors.New("descriptor %q has an invalid nested name: %q", parent.FullName(), name) - } - - // Derive the full name of the child. - // Note that enum values are a sibling to the enum parent in the namespace. - var fullName protoreflect.FullName - if _, ok := parent.(protoreflect.EnumDescriptor); ok { - fullName = sb.AppendFullName(parent.FullName().Parent(), protoreflect.Name(name)) - } else { - fullName = sb.AppendFullName(parent.FullName(), protoreflect.Name(name)) - } - if _, ok := r[fullName]; ok { - return filedesc.BaseL0{}, errors.New("descriptor %q already declared", fullName) - } - r[fullName] = child - - // TODO: Verify that the full name does not already exist in the resolver? - // This is not as critical since most usages of NewFile will register - // the created file back into the registry, which will perform this check. - - return filedesc.BaseL0{ - FullName: fullName, - ParentFile: parent.ParentFile().(*filedesc.File), - Parent: parent, - Index: idx, - }, nil -} diff --git a/vendor/google.golang.org/protobuf/reflect/protodesc/desc_resolve.go b/vendor/google.golang.org/protobuf/reflect/protodesc/desc_resolve.go deleted file mode 100644 index 254ca5854..000000000 --- a/vendor/google.golang.org/protobuf/reflect/protodesc/desc_resolve.go +++ /dev/null @@ -1,286 +0,0 @@ -// Copyright 2019 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package protodesc - -import ( - "google.golang.org/protobuf/internal/encoding/defval" - "google.golang.org/protobuf/internal/errors" - "google.golang.org/protobuf/internal/filedesc" - "google.golang.org/protobuf/reflect/protoreflect" - "google.golang.org/protobuf/reflect/protoregistry" - - "google.golang.org/protobuf/types/descriptorpb" -) - -// resolver is a wrapper around a local registry of declarations within the file -// and the remote resolver. The remote resolver is restricted to only return -// descriptors that have been imported. -type resolver struct { - local descsByName - remote Resolver - imports importSet - - allowUnresolvable bool -} - -func (r *resolver) resolveMessageDependencies(ms []filedesc.Message, mds []*descriptorpb.DescriptorProto) (err error) { - for i, md := range mds { - m := &ms[i] - for j, fd := range md.GetField() { - f := &m.L2.Fields.List[j] - if f.L1.Cardinality == protoreflect.Required { - m.L2.RequiredNumbers.List = append(m.L2.RequiredNumbers.List, f.L1.Number) - } - if fd.OneofIndex != nil { - k := int(fd.GetOneofIndex()) - if !(0 <= k && k < len(md.GetOneofDecl())) { - return errors.New("message field %q has an invalid oneof index: %d", f.FullName(), k) - } - o := &m.L2.Oneofs.List[k] - f.L1.ContainingOneof = o - o.L1.Fields.List = append(o.L1.Fields.List, f) - } - - if f.L1.Kind, f.L1.Enum, f.L1.Message, err = r.findTarget(f.Kind(), f.Parent().FullName(), partialName(fd.GetTypeName()), f.IsWeak()); err != nil { - return errors.New("message field %q cannot resolve type: %v", f.FullName(), err) - } - if fd.DefaultValue != nil { - v, ev, err := unmarshalDefault(fd.GetDefaultValue(), f, r.allowUnresolvable) - if err != nil { - return errors.New("message field %q has invalid default: %v", f.FullName(), err) - } - f.L1.Default = filedesc.DefaultValue(v, ev) - } - } - - if err := r.resolveMessageDependencies(m.L1.Messages.List, md.GetNestedType()); err != nil { - return err - } - if err := r.resolveExtensionDependencies(m.L1.Extensions.List, md.GetExtension()); err != nil { - return err - } - } - return nil -} - -func (r *resolver) resolveExtensionDependencies(xs []filedesc.Extension, xds []*descriptorpb.FieldDescriptorProto) (err error) { - for i, xd := range xds { - x := &xs[i] - if x.L1.Extendee, err = r.findMessageDescriptor(x.Parent().FullName(), partialName(xd.GetExtendee()), false); err != nil { - return errors.New("extension field %q cannot resolve extendee: %v", x.FullName(), err) - } - if x.L1.Kind, x.L2.Enum, x.L2.Message, err = r.findTarget(x.Kind(), x.Parent().FullName(), partialName(xd.GetTypeName()), false); err != nil { - return errors.New("extension field %q cannot resolve type: %v", x.FullName(), err) - } - if xd.DefaultValue != nil { - v, ev, err := unmarshalDefault(xd.GetDefaultValue(), x, r.allowUnresolvable) - if err != nil { - return errors.New("extension field %q has invalid default: %v", x.FullName(), err) - } - x.L2.Default = filedesc.DefaultValue(v, ev) - } - } - return nil -} - -func (r *resolver) resolveServiceDependencies(ss []filedesc.Service, sds []*descriptorpb.ServiceDescriptorProto) (err error) { - for i, sd := range sds { - s := &ss[i] - for j, md := range sd.GetMethod() { - m := &s.L2.Methods.List[j] - m.L1.Input, err = r.findMessageDescriptor(m.Parent().FullName(), partialName(md.GetInputType()), false) - if err != nil { - return errors.New("service method %q cannot resolve input: %v", m.FullName(), err) - } - m.L1.Output, err = r.findMessageDescriptor(s.FullName(), partialName(md.GetOutputType()), false) - if err != nil { - return errors.New("service method %q cannot resolve output: %v", m.FullName(), err) - } - } - } - return nil -} - -// findTarget finds an enum or message descriptor if k is an enum, message, -// group, or unknown. If unknown, and the name could be resolved, the kind -// returned kind is set based on the type of the resolved descriptor. -func (r *resolver) findTarget(k protoreflect.Kind, scope protoreflect.FullName, ref partialName, isWeak bool) (protoreflect.Kind, protoreflect.EnumDescriptor, protoreflect.MessageDescriptor, error) { - switch k { - case protoreflect.EnumKind: - ed, err := r.findEnumDescriptor(scope, ref, isWeak) - if err != nil { - return 0, nil, nil, err - } - return k, ed, nil, nil - case protoreflect.MessageKind, protoreflect.GroupKind: - md, err := r.findMessageDescriptor(scope, ref, isWeak) - if err != nil { - return 0, nil, nil, err - } - return k, nil, md, nil - case 0: - // Handle unspecified kinds (possible with parsers that operate - // on a per-file basis without knowledge of dependencies). - d, err := r.findDescriptor(scope, ref) - if err == protoregistry.NotFound && (r.allowUnresolvable || isWeak) { - return k, filedesc.PlaceholderEnum(ref.FullName()), filedesc.PlaceholderMessage(ref.FullName()), nil - } else if err == protoregistry.NotFound { - return 0, nil, nil, errors.New("%q not found", ref.FullName()) - } else if err != nil { - return 0, nil, nil, err - } - switch d := d.(type) { - case protoreflect.EnumDescriptor: - return protoreflect.EnumKind, d, nil, nil - case protoreflect.MessageDescriptor: - return protoreflect.MessageKind, nil, d, nil - default: - return 0, nil, nil, errors.New("unknown kind") - } - default: - if ref != "" { - return 0, nil, nil, errors.New("target name cannot be specified for %v", k) - } - if !k.IsValid() { - return 0, nil, nil, errors.New("invalid kind: %d", k) - } - return k, nil, nil, nil - } -} - -// findDescriptor finds the descriptor by name, -// which may be a relative name within some scope. -// -// Suppose the scope was "fizz.buzz" and the reference was "Foo.Bar", -// then the following full names are searched: -// - fizz.buzz.Foo.Bar -// - fizz.Foo.Bar -// - Foo.Bar -func (r *resolver) findDescriptor(scope protoreflect.FullName, ref partialName) (protoreflect.Descriptor, error) { - if !ref.IsValid() { - return nil, errors.New("invalid name reference: %q", ref) - } - if ref.IsFull() { - scope, ref = "", ref[1:] - } - var foundButNotImported protoreflect.Descriptor - for { - // Derive the full name to search. - s := protoreflect.FullName(ref) - if scope != "" { - s = scope + "." + s - } - - // Check the current file for the descriptor. - if d, ok := r.local[s]; ok { - return d, nil - } - - // Check the remote registry for the descriptor. - d, err := r.remote.FindDescriptorByName(s) - if err == nil { - // Only allow descriptors covered by one of the imports. - if r.imports[d.ParentFile().Path()] { - return d, nil - } - foundButNotImported = d - } else if err != protoregistry.NotFound { - return nil, errors.Wrap(err, "%q", s) - } - - // Continue on at a higher level of scoping. - if scope == "" { - if d := foundButNotImported; d != nil { - return nil, errors.New("resolved %q, but %q is not imported", d.FullName(), d.ParentFile().Path()) - } - return nil, protoregistry.NotFound - } - scope = scope.Parent() - } -} - -func (r *resolver) findEnumDescriptor(scope protoreflect.FullName, ref partialName, isWeak bool) (protoreflect.EnumDescriptor, error) { - d, err := r.findDescriptor(scope, ref) - if err == protoregistry.NotFound && (r.allowUnresolvable || isWeak) { - return filedesc.PlaceholderEnum(ref.FullName()), nil - } else if err == protoregistry.NotFound { - return nil, errors.New("%q not found", ref.FullName()) - } else if err != nil { - return nil, err - } - ed, ok := d.(protoreflect.EnumDescriptor) - if !ok { - return nil, errors.New("resolved %q, but it is not an enum", d.FullName()) - } - return ed, nil -} - -func (r *resolver) findMessageDescriptor(scope protoreflect.FullName, ref partialName, isWeak bool) (protoreflect.MessageDescriptor, error) { - d, err := r.findDescriptor(scope, ref) - if err == protoregistry.NotFound && (r.allowUnresolvable || isWeak) { - return filedesc.PlaceholderMessage(ref.FullName()), nil - } else if err == protoregistry.NotFound { - return nil, errors.New("%q not found", ref.FullName()) - } else if err != nil { - return nil, err - } - md, ok := d.(protoreflect.MessageDescriptor) - if !ok { - return nil, errors.New("resolved %q, but it is not an message", d.FullName()) - } - return md, nil -} - -// partialName is the partial name. A leading dot means that the name is full, -// otherwise the name is relative to some current scope. -// See google.protobuf.FieldDescriptorProto.type_name. -type partialName string - -func (s partialName) IsFull() bool { - return len(s) > 0 && s[0] == '.' -} - -func (s partialName) IsValid() bool { - if s.IsFull() { - return protoreflect.FullName(s[1:]).IsValid() - } - return protoreflect.FullName(s).IsValid() -} - -const unknownPrefix = "*." - -// FullName converts the partial name to a full name on a best-effort basis. -// If relative, it creates an invalid full name, using a "*." prefix -// to indicate that the start of the full name is unknown. -func (s partialName) FullName() protoreflect.FullName { - if s.IsFull() { - return protoreflect.FullName(s[1:]) - } - return protoreflect.FullName(unknownPrefix + s) -} - -func unmarshalDefault(s string, fd protoreflect.FieldDescriptor, allowUnresolvable bool) (protoreflect.Value, protoreflect.EnumValueDescriptor, error) { - var evs protoreflect.EnumValueDescriptors - if fd.Enum() != nil { - evs = fd.Enum().Values() - } - v, ev, err := defval.Unmarshal(s, fd.Kind(), evs, defval.Descriptor) - if err != nil && allowUnresolvable && evs != nil && protoreflect.Name(s).IsValid() { - v = protoreflect.ValueOfEnum(0) - if evs.Len() > 0 { - v = protoreflect.ValueOfEnum(evs.Get(0).Number()) - } - ev = filedesc.PlaceholderEnumValue(fd.Enum().FullName().Parent().Append(protoreflect.Name(s))) - } else if err != nil { - return v, ev, err - } - if !fd.HasPresence() { - return v, ev, errors.New("cannot be specified with implicit field presence") - } - if fd.Kind() == protoreflect.MessageKind || fd.Kind() == protoreflect.GroupKind || fd.Cardinality() == protoreflect.Repeated { - return v, ev, errors.New("cannot be specified on composite types") - } - return v, ev, nil -} diff --git a/vendor/google.golang.org/protobuf/reflect/protodesc/desc_validate.go b/vendor/google.golang.org/protobuf/reflect/protodesc/desc_validate.go deleted file mode 100644 index e4dcaf876..000000000 --- a/vendor/google.golang.org/protobuf/reflect/protodesc/desc_validate.go +++ /dev/null @@ -1,374 +0,0 @@ -// Copyright 2019 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package protodesc - -import ( - "strings" - "unicode" - - "google.golang.org/protobuf/encoding/protowire" - "google.golang.org/protobuf/internal/errors" - "google.golang.org/protobuf/internal/filedesc" - "google.golang.org/protobuf/internal/flags" - "google.golang.org/protobuf/internal/genid" - "google.golang.org/protobuf/internal/strs" - "google.golang.org/protobuf/reflect/protoreflect" - - "google.golang.org/protobuf/types/descriptorpb" -) - -func validateEnumDeclarations(es []filedesc.Enum, eds []*descriptorpb.EnumDescriptorProto) error { - for i, ed := range eds { - e := &es[i] - if err := e.L2.ReservedNames.CheckValid(); err != nil { - return errors.New("enum %q reserved names has %v", e.FullName(), err) - } - if err := e.L2.ReservedRanges.CheckValid(); err != nil { - return errors.New("enum %q reserved ranges has %v", e.FullName(), err) - } - if len(ed.GetValue()) == 0 { - return errors.New("enum %q must contain at least one value declaration", e.FullName()) - } - allowAlias := ed.GetOptions().GetAllowAlias() - foundAlias := false - for i := 0; i < e.Values().Len(); i++ { - v1 := e.Values().Get(i) - if v2 := e.Values().ByNumber(v1.Number()); v1 != v2 { - foundAlias = true - if !allowAlias { - return errors.New("enum %q has conflicting non-aliased values on number %d: %q with %q", e.FullName(), v1.Number(), v1.Name(), v2.Name()) - } - } - } - if allowAlias && !foundAlias { - return errors.New("enum %q allows aliases, but none were found", e.FullName()) - } - if e.Syntax() == protoreflect.Proto3 { - if v := e.Values().Get(0); v.Number() != 0 { - return errors.New("enum %q using proto3 semantics must have zero number for the first value", v.FullName()) - } - // Verify that value names in proto3 do not conflict if the - // case-insensitive prefix is removed. - // See protoc v3.8.0: src/google/protobuf/descriptor.cc:4991-5055 - names := map[string]protoreflect.EnumValueDescriptor{} - prefix := strings.Replace(strings.ToLower(string(e.Name())), "_", "", -1) - for i := 0; i < e.Values().Len(); i++ { - v1 := e.Values().Get(i) - s := strs.EnumValueName(strs.TrimEnumPrefix(string(v1.Name()), prefix)) - if v2, ok := names[s]; ok && v1.Number() != v2.Number() { - return errors.New("enum %q using proto3 semantics has conflict: %q with %q", e.FullName(), v1.Name(), v2.Name()) - } - names[s] = v1 - } - } - - for j, vd := range ed.GetValue() { - v := &e.L2.Values.List[j] - if vd.Number == nil { - return errors.New("enum value %q must have a specified number", v.FullName()) - } - if e.L2.ReservedNames.Has(v.Name()) { - return errors.New("enum value %q must not use reserved name", v.FullName()) - } - if e.L2.ReservedRanges.Has(v.Number()) { - return errors.New("enum value %q must not use reserved number %d", v.FullName(), v.Number()) - } - } - } - return nil -} - -func validateMessageDeclarations(ms []filedesc.Message, mds []*descriptorpb.DescriptorProto) error { - for i, md := range mds { - m := &ms[i] - - // Handle the message descriptor itself. - isMessageSet := md.GetOptions().GetMessageSetWireFormat() - if err := m.L2.ReservedNames.CheckValid(); err != nil { - return errors.New("message %q reserved names has %v", m.FullName(), err) - } - if err := m.L2.ReservedRanges.CheckValid(isMessageSet); err != nil { - return errors.New("message %q reserved ranges has %v", m.FullName(), err) - } - if err := m.L2.ExtensionRanges.CheckValid(isMessageSet); err != nil { - return errors.New("message %q extension ranges has %v", m.FullName(), err) - } - if err := (*filedesc.FieldRanges).CheckOverlap(&m.L2.ReservedRanges, &m.L2.ExtensionRanges); err != nil { - return errors.New("message %q reserved and extension ranges has %v", m.FullName(), err) - } - for i := 0; i < m.Fields().Len(); i++ { - f1 := m.Fields().Get(i) - if f2 := m.Fields().ByNumber(f1.Number()); f1 != f2 { - return errors.New("message %q has conflicting fields: %q with %q", m.FullName(), f1.Name(), f2.Name()) - } - } - if isMessageSet && !flags.ProtoLegacy { - return errors.New("message %q is a MessageSet, which is a legacy proto1 feature that is no longer supported", m.FullName()) - } - if isMessageSet && (m.Syntax() == protoreflect.Proto3 || m.Fields().Len() > 0 || m.ExtensionRanges().Len() == 0) { - return errors.New("message %q is an invalid proto1 MessageSet", m.FullName()) - } - if m.Syntax() == protoreflect.Proto3 { - if m.ExtensionRanges().Len() > 0 { - return errors.New("message %q using proto3 semantics cannot have extension ranges", m.FullName()) - } - // Verify that field names in proto3 do not conflict if lowercased - // with all underscores removed. - // See protoc v3.8.0: src/google/protobuf/descriptor.cc:5830-5847 - names := map[string]protoreflect.FieldDescriptor{} - for i := 0; i < m.Fields().Len(); i++ { - f1 := m.Fields().Get(i) - s := strings.Replace(strings.ToLower(string(f1.Name())), "_", "", -1) - if f2, ok := names[s]; ok { - return errors.New("message %q using proto3 semantics has conflict: %q with %q", m.FullName(), f1.Name(), f2.Name()) - } - names[s] = f1 - } - } - - for j, fd := range md.GetField() { - f := &m.L2.Fields.List[j] - if m.L2.ReservedNames.Has(f.Name()) { - return errors.New("message field %q must not use reserved name", f.FullName()) - } - if !f.Number().IsValid() { - return errors.New("message field %q has an invalid number: %d", f.FullName(), f.Number()) - } - if !f.Cardinality().IsValid() { - return errors.New("message field %q has an invalid cardinality: %d", f.FullName(), f.Cardinality()) - } - if m.L2.ReservedRanges.Has(f.Number()) { - return errors.New("message field %q must not use reserved number %d", f.FullName(), f.Number()) - } - if m.L2.ExtensionRanges.Has(f.Number()) { - return errors.New("message field %q with number %d in extension range", f.FullName(), f.Number()) - } - if fd.Extendee != nil { - return errors.New("message field %q may not have extendee: %q", f.FullName(), fd.GetExtendee()) - } - if f.L1.IsProto3Optional { - if f.Syntax() != protoreflect.Proto3 { - return errors.New("message field %q under proto3 optional semantics must be specified in the proto3 syntax", f.FullName()) - } - if f.Cardinality() != protoreflect.Optional { - return errors.New("message field %q under proto3 optional semantics must have optional cardinality", f.FullName()) - } - if f.ContainingOneof() != nil && f.ContainingOneof().Fields().Len() != 1 { - return errors.New("message field %q under proto3 optional semantics must be within a single element oneof", f.FullName()) - } - } - if f.IsWeak() && !flags.ProtoLegacy { - return errors.New("message field %q is a weak field, which is a legacy proto1 feature that is no longer supported", f.FullName()) - } - if f.IsWeak() && (f.Syntax() != protoreflect.Proto2 || !isOptionalMessage(f) || f.ContainingOneof() != nil) { - return errors.New("message field %q may only be weak for an optional message", f.FullName()) - } - if f.IsPacked() && !isPackable(f) { - return errors.New("message field %q is not packable", f.FullName()) - } - if err := checkValidGroup(f); err != nil { - return errors.New("message field %q is an invalid group: %v", f.FullName(), err) - } - if err := checkValidMap(f); err != nil { - return errors.New("message field %q is an invalid map: %v", f.FullName(), err) - } - if f.Syntax() == protoreflect.Proto3 { - if f.Cardinality() == protoreflect.Required { - return errors.New("message field %q using proto3 semantics cannot be required", f.FullName()) - } - if f.Enum() != nil && !f.Enum().IsPlaceholder() && f.Enum().Syntax() != protoreflect.Proto3 { - return errors.New("message field %q using proto3 semantics may only depend on a proto3 enum", f.FullName()) - } - } - } - seenSynthetic := false // synthetic oneofs for proto3 optional must come after real oneofs - for j := range md.GetOneofDecl() { - o := &m.L2.Oneofs.List[j] - if o.Fields().Len() == 0 { - return errors.New("message oneof %q must contain at least one field declaration", o.FullName()) - } - if n := o.Fields().Len(); n-1 != (o.Fields().Get(n-1).Index() - o.Fields().Get(0).Index()) { - return errors.New("message oneof %q must have consecutively declared fields", o.FullName()) - } - - if o.IsSynthetic() { - seenSynthetic = true - continue - } - if !o.IsSynthetic() && seenSynthetic { - return errors.New("message oneof %q must be declared before synthetic oneofs", o.FullName()) - } - - for i := 0; i < o.Fields().Len(); i++ { - f := o.Fields().Get(i) - if f.Cardinality() != protoreflect.Optional { - return errors.New("message field %q belongs in a oneof and must be optional", f.FullName()) - } - if f.IsWeak() { - return errors.New("message field %q belongs in a oneof and must not be a weak reference", f.FullName()) - } - } - } - - if err := validateEnumDeclarations(m.L1.Enums.List, md.GetEnumType()); err != nil { - return err - } - if err := validateMessageDeclarations(m.L1.Messages.List, md.GetNestedType()); err != nil { - return err - } - if err := validateExtensionDeclarations(m.L1.Extensions.List, md.GetExtension()); err != nil { - return err - } - } - return nil -} - -func validateExtensionDeclarations(xs []filedesc.Extension, xds []*descriptorpb.FieldDescriptorProto) error { - for i, xd := range xds { - x := &xs[i] - // NOTE: Avoid using the IsValid method since extensions to MessageSet - // may have a field number higher than normal. This check only verifies - // that the number is not negative or reserved. We check again later - // if we know that the extendee is definitely not a MessageSet. - if n := x.Number(); n < 0 || (protowire.FirstReservedNumber <= n && n <= protowire.LastReservedNumber) { - return errors.New("extension field %q has an invalid number: %d", x.FullName(), x.Number()) - } - if !x.Cardinality().IsValid() || x.Cardinality() == protoreflect.Required { - return errors.New("extension field %q has an invalid cardinality: %d", x.FullName(), x.Cardinality()) - } - if xd.JsonName != nil { - // A bug in older versions of protoc would always populate the - // "json_name" option for extensions when it is meaningless. - // When it did so, it would always use the camel-cased field name. - if xd.GetJsonName() != strs.JSONCamelCase(string(x.Name())) { - return errors.New("extension field %q may not have an explicitly set JSON name: %q", x.FullName(), xd.GetJsonName()) - } - } - if xd.OneofIndex != nil { - return errors.New("extension field %q may not be part of a oneof", x.FullName()) - } - if md := x.ContainingMessage(); !md.IsPlaceholder() { - if !md.ExtensionRanges().Has(x.Number()) { - return errors.New("extension field %q extends %q with non-extension field number: %d", x.FullName(), md.FullName(), x.Number()) - } - isMessageSet := md.Options().(*descriptorpb.MessageOptions).GetMessageSetWireFormat() - if isMessageSet && !isOptionalMessage(x) { - return errors.New("extension field %q extends MessageSet and must be an optional message", x.FullName()) - } - if !isMessageSet && !x.Number().IsValid() { - return errors.New("extension field %q has an invalid number: %d", x.FullName(), x.Number()) - } - } - if xd.GetOptions().GetWeak() { - return errors.New("extension field %q cannot be a weak reference", x.FullName()) - } - if x.IsPacked() && !isPackable(x) { - return errors.New("extension field %q is not packable", x.FullName()) - } - if err := checkValidGroup(x); err != nil { - return errors.New("extension field %q is an invalid group: %v", x.FullName(), err) - } - if md := x.Message(); md != nil && md.IsMapEntry() { - return errors.New("extension field %q cannot be a map entry", x.FullName()) - } - if x.Syntax() == protoreflect.Proto3 { - switch x.ContainingMessage().FullName() { - case (*descriptorpb.FileOptions)(nil).ProtoReflect().Descriptor().FullName(): - case (*descriptorpb.EnumOptions)(nil).ProtoReflect().Descriptor().FullName(): - case (*descriptorpb.EnumValueOptions)(nil).ProtoReflect().Descriptor().FullName(): - case (*descriptorpb.MessageOptions)(nil).ProtoReflect().Descriptor().FullName(): - case (*descriptorpb.FieldOptions)(nil).ProtoReflect().Descriptor().FullName(): - case (*descriptorpb.OneofOptions)(nil).ProtoReflect().Descriptor().FullName(): - case (*descriptorpb.ExtensionRangeOptions)(nil).ProtoReflect().Descriptor().FullName(): - case (*descriptorpb.ServiceOptions)(nil).ProtoReflect().Descriptor().FullName(): - case (*descriptorpb.MethodOptions)(nil).ProtoReflect().Descriptor().FullName(): - default: - return errors.New("extension field %q cannot be declared in proto3 unless extended descriptor options", x.FullName()) - } - } - } - return nil -} - -// isOptionalMessage reports whether this is an optional message. -// If the kind is unknown, it is assumed to be a message. -func isOptionalMessage(fd protoreflect.FieldDescriptor) bool { - return (fd.Kind() == 0 || fd.Kind() == protoreflect.MessageKind) && fd.Cardinality() == protoreflect.Optional -} - -// isPackable checks whether the pack option can be specified. -func isPackable(fd protoreflect.FieldDescriptor) bool { - switch fd.Kind() { - case protoreflect.StringKind, protoreflect.BytesKind, protoreflect.MessageKind, protoreflect.GroupKind: - return false - } - return fd.IsList() -} - -// checkValidGroup reports whether fd is a valid group according to the same -// rules that protoc imposes. -func checkValidGroup(fd protoreflect.FieldDescriptor) error { - md := fd.Message() - switch { - case fd.Kind() != protoreflect.GroupKind: - return nil - case fd.Syntax() == protoreflect.Proto3: - return errors.New("invalid under proto3 semantics") - case md == nil || md.IsPlaceholder(): - return errors.New("message must be resolvable") - case fd.FullName().Parent() != md.FullName().Parent(): - return errors.New("message and field must be declared in the same scope") - case !unicode.IsUpper(rune(md.Name()[0])): - return errors.New("message name must start with an uppercase") - case fd.Name() != protoreflect.Name(strings.ToLower(string(md.Name()))): - return errors.New("field name must be lowercased form of the message name") - } - return nil -} - -// checkValidMap checks whether the field is a valid map according to the same -// rules that protoc imposes. -// See protoc v3.8.0: src/google/protobuf/descriptor.cc:6045-6115 -func checkValidMap(fd protoreflect.FieldDescriptor) error { - md := fd.Message() - switch { - case md == nil || !md.IsMapEntry(): - return nil - case fd.FullName().Parent() != md.FullName().Parent(): - return errors.New("message and field must be declared in the same scope") - case md.Name() != protoreflect.Name(strs.MapEntryName(string(fd.Name()))): - return errors.New("incorrect implicit map entry name") - case fd.Cardinality() != protoreflect.Repeated: - return errors.New("field must be repeated") - case md.Fields().Len() != 2: - return errors.New("message must have exactly two fields") - case md.ExtensionRanges().Len() > 0: - return errors.New("message must not have any extension ranges") - case md.Enums().Len()+md.Messages().Len()+md.Extensions().Len() > 0: - return errors.New("message must not have any nested declarations") - } - kf := md.Fields().Get(0) - vf := md.Fields().Get(1) - switch { - case kf.Name() != genid.MapEntry_Key_field_name || kf.Number() != genid.MapEntry_Key_field_number || kf.Cardinality() != protoreflect.Optional || kf.ContainingOneof() != nil || kf.HasDefault(): - return errors.New("invalid key field") - case vf.Name() != genid.MapEntry_Value_field_name || vf.Number() != genid.MapEntry_Value_field_number || vf.Cardinality() != protoreflect.Optional || vf.ContainingOneof() != nil || vf.HasDefault(): - return errors.New("invalid value field") - } - switch kf.Kind() { - case protoreflect.BoolKind: // bool - case protoreflect.Int32Kind, protoreflect.Sint32Kind, protoreflect.Sfixed32Kind: // int32 - case protoreflect.Int64Kind, protoreflect.Sint64Kind, protoreflect.Sfixed64Kind: // int64 - case protoreflect.Uint32Kind, protoreflect.Fixed32Kind: // uint32 - case protoreflect.Uint64Kind, protoreflect.Fixed64Kind: // uint64 - case protoreflect.StringKind: // string - default: - return errors.New("invalid key kind: %v", kf.Kind()) - } - if e := vf.Enum(); e != nil && e.Values().Len() > 0 && e.Values().Get(0).Number() != 0 { - return errors.New("map enum value must have zero number for the first value") - } - return nil -} diff --git a/vendor/google.golang.org/protobuf/reflect/protodesc/editions.go b/vendor/google.golang.org/protobuf/reflect/protodesc/editions.go deleted file mode 100644 index 2a6b29d17..000000000 --- a/vendor/google.golang.org/protobuf/reflect/protodesc/editions.go +++ /dev/null @@ -1,148 +0,0 @@ -// Copyright 2019 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package protodesc - -import ( - "fmt" - "os" - "sync" - - "google.golang.org/protobuf/internal/editiondefaults" - "google.golang.org/protobuf/internal/filedesc" - "google.golang.org/protobuf/proto" - "google.golang.org/protobuf/reflect/protoreflect" - "google.golang.org/protobuf/types/descriptorpb" - gofeaturespb "google.golang.org/protobuf/types/gofeaturespb" -) - -const ( - SupportedEditionsMinimum = descriptorpb.Edition_EDITION_PROTO2 - SupportedEditionsMaximum = descriptorpb.Edition_EDITION_2023 -) - -var defaults = &descriptorpb.FeatureSetDefaults{} -var defaultsCacheMu sync.Mutex -var defaultsCache = make(map[filedesc.Edition]*descriptorpb.FeatureSet) - -func init() { - err := proto.Unmarshal(editiondefaults.Defaults, defaults) - if err != nil { - fmt.Fprintf(os.Stderr, "unmarshal editions defaults: %v\n", err) - os.Exit(1) - } -} - -func fromEditionProto(epb descriptorpb.Edition) filedesc.Edition { - return filedesc.Edition(epb) -} - -func toEditionProto(ed filedesc.Edition) descriptorpb.Edition { - switch ed { - case filedesc.EditionUnknown: - return descriptorpb.Edition_EDITION_UNKNOWN - case filedesc.EditionProto2: - return descriptorpb.Edition_EDITION_PROTO2 - case filedesc.EditionProto3: - return descriptorpb.Edition_EDITION_PROTO3 - case filedesc.Edition2023: - return descriptorpb.Edition_EDITION_2023 - default: - panic(fmt.Sprintf("unknown value for edition: %v", ed)) - } -} - -func getFeatureSetFor(ed filedesc.Edition) *descriptorpb.FeatureSet { - defaultsCacheMu.Lock() - defer defaultsCacheMu.Unlock() - if def, ok := defaultsCache[ed]; ok { - return def - } - edpb := toEditionProto(ed) - if defaults.GetMinimumEdition() > edpb || defaults.GetMaximumEdition() < edpb { - // This should never happen protodesc.(FileOptions).New would fail when - // initializing the file descriptor. - // This most likely means the embedded defaults were not updated. - fmt.Fprintf(os.Stderr, "internal error: unsupported edition %v (did you forget to update the embedded defaults (i.e. the bootstrap descriptor proto)?)\n", edpb) - os.Exit(1) - } - fs := defaults.GetDefaults()[0].GetFeatures() - // Using a linear search for now. - // Editions are guaranteed to be sorted and thus we could use a binary search. - // Given that there are only a handful of editions (with one more per year) - // there is not much reason to use a binary search. - for _, def := range defaults.GetDefaults() { - if def.GetEdition() <= edpb { - fs = def.GetFeatures() - } else { - break - } - } - defaultsCache[ed] = fs - return fs -} - -// mergeEditionFeatures merges the parent and child feature sets. This function -// should be used when initializing Go descriptors from descriptor protos which -// is why the parent is a filedesc.EditionsFeatures (Go representation) while -// the child is a descriptorproto.FeatureSet (protoc representation). -// Any feature set by the child overwrites what is set by the parent. -func mergeEditionFeatures(parentDesc protoreflect.Descriptor, child *descriptorpb.FeatureSet) filedesc.EditionFeatures { - var parentFS filedesc.EditionFeatures - switch p := parentDesc.(type) { - case *filedesc.File: - parentFS = p.L1.EditionFeatures - case *filedesc.Message: - parentFS = p.L1.EditionFeatures - default: - panic(fmt.Sprintf("unknown parent type %T", parentDesc)) - } - if child == nil { - return parentFS - } - if fp := child.FieldPresence; fp != nil { - parentFS.IsFieldPresence = *fp == descriptorpb.FeatureSet_LEGACY_REQUIRED || - *fp == descriptorpb.FeatureSet_EXPLICIT - parentFS.IsLegacyRequired = *fp == descriptorpb.FeatureSet_LEGACY_REQUIRED - } - if et := child.EnumType; et != nil { - parentFS.IsOpenEnum = *et == descriptorpb.FeatureSet_OPEN - } - - if rfe := child.RepeatedFieldEncoding; rfe != nil { - parentFS.IsPacked = *rfe == descriptorpb.FeatureSet_PACKED - } - - if utf8val := child.Utf8Validation; utf8val != nil { - parentFS.IsUTF8Validated = *utf8val == descriptorpb.FeatureSet_VERIFY - } - - if me := child.MessageEncoding; me != nil { - parentFS.IsDelimitedEncoded = *me == descriptorpb.FeatureSet_DELIMITED - } - - if jf := child.JsonFormat; jf != nil { - parentFS.IsJSONCompliant = *jf == descriptorpb.FeatureSet_ALLOW - } - - if goFeatures, ok := proto.GetExtension(child, gofeaturespb.E_Go).(*gofeaturespb.GoFeatures); ok && goFeatures != nil { - if luje := goFeatures.LegacyUnmarshalJsonEnum; luje != nil { - parentFS.GenerateLegacyUnmarshalJSON = *luje - } - } - - return parentFS -} - -// initFileDescFromFeatureSet initializes editions related fields in fd based -// on fs. If fs is nil it is assumed to be an empty featureset and all fields -// will be initialized with the appropriate default. fd.L1.Edition must be set -// before calling this function. -func initFileDescFromFeatureSet(fd *filedesc.File, fs *descriptorpb.FeatureSet) { - dfs := getFeatureSetFor(fd.L1.Edition) - // initialize the featureset with the defaults - fd.L1.EditionFeatures = mergeEditionFeatures(fd, dfs) - // overwrite any options explicitly specified - fd.L1.EditionFeatures = mergeEditionFeatures(fd, fs) -} diff --git a/vendor/google.golang.org/protobuf/reflect/protodesc/proto.go b/vendor/google.golang.org/protobuf/reflect/protodesc/proto.go deleted file mode 100644 index 9d6e05420..000000000 --- a/vendor/google.golang.org/protobuf/reflect/protodesc/proto.go +++ /dev/null @@ -1,252 +0,0 @@ -// Copyright 2019 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package protodesc - -import ( - "fmt" - "strings" - - "google.golang.org/protobuf/internal/encoding/defval" - "google.golang.org/protobuf/internal/strs" - "google.golang.org/protobuf/proto" - "google.golang.org/protobuf/reflect/protoreflect" - - "google.golang.org/protobuf/types/descriptorpb" -) - -// ToFileDescriptorProto copies a [protoreflect.FileDescriptor] into a -// google.protobuf.FileDescriptorProto message. -func ToFileDescriptorProto(file protoreflect.FileDescriptor) *descriptorpb.FileDescriptorProto { - p := &descriptorpb.FileDescriptorProto{ - Name: proto.String(file.Path()), - Options: proto.Clone(file.Options()).(*descriptorpb.FileOptions), - } - if file.Package() != "" { - p.Package = proto.String(string(file.Package())) - } - for i, imports := 0, file.Imports(); i < imports.Len(); i++ { - imp := imports.Get(i) - p.Dependency = append(p.Dependency, imp.Path()) - if imp.IsPublic { - p.PublicDependency = append(p.PublicDependency, int32(i)) - } - if imp.IsWeak { - p.WeakDependency = append(p.WeakDependency, int32(i)) - } - } - for i, locs := 0, file.SourceLocations(); i < locs.Len(); i++ { - loc := locs.Get(i) - l := &descriptorpb.SourceCodeInfo_Location{} - l.Path = append(l.Path, loc.Path...) - if loc.StartLine == loc.EndLine { - l.Span = []int32{int32(loc.StartLine), int32(loc.StartColumn), int32(loc.EndColumn)} - } else { - l.Span = []int32{int32(loc.StartLine), int32(loc.StartColumn), int32(loc.EndLine), int32(loc.EndColumn)} - } - l.LeadingDetachedComments = append([]string(nil), loc.LeadingDetachedComments...) - if loc.LeadingComments != "" { - l.LeadingComments = proto.String(loc.LeadingComments) - } - if loc.TrailingComments != "" { - l.TrailingComments = proto.String(loc.TrailingComments) - } - if p.SourceCodeInfo == nil { - p.SourceCodeInfo = &descriptorpb.SourceCodeInfo{} - } - p.SourceCodeInfo.Location = append(p.SourceCodeInfo.Location, l) - - } - for i, messages := 0, file.Messages(); i < messages.Len(); i++ { - p.MessageType = append(p.MessageType, ToDescriptorProto(messages.Get(i))) - } - for i, enums := 0, file.Enums(); i < enums.Len(); i++ { - p.EnumType = append(p.EnumType, ToEnumDescriptorProto(enums.Get(i))) - } - for i, services := 0, file.Services(); i < services.Len(); i++ { - p.Service = append(p.Service, ToServiceDescriptorProto(services.Get(i))) - } - for i, exts := 0, file.Extensions(); i < exts.Len(); i++ { - p.Extension = append(p.Extension, ToFieldDescriptorProto(exts.Get(i))) - } - if syntax := file.Syntax(); syntax != protoreflect.Proto2 && syntax.IsValid() { - p.Syntax = proto.String(file.Syntax().String()) - } - return p -} - -// ToDescriptorProto copies a [protoreflect.MessageDescriptor] into a -// google.protobuf.DescriptorProto message. -func ToDescriptorProto(message protoreflect.MessageDescriptor) *descriptorpb.DescriptorProto { - p := &descriptorpb.DescriptorProto{ - Name: proto.String(string(message.Name())), - Options: proto.Clone(message.Options()).(*descriptorpb.MessageOptions), - } - for i, fields := 0, message.Fields(); i < fields.Len(); i++ { - p.Field = append(p.Field, ToFieldDescriptorProto(fields.Get(i))) - } - for i, exts := 0, message.Extensions(); i < exts.Len(); i++ { - p.Extension = append(p.Extension, ToFieldDescriptorProto(exts.Get(i))) - } - for i, messages := 0, message.Messages(); i < messages.Len(); i++ { - p.NestedType = append(p.NestedType, ToDescriptorProto(messages.Get(i))) - } - for i, enums := 0, message.Enums(); i < enums.Len(); i++ { - p.EnumType = append(p.EnumType, ToEnumDescriptorProto(enums.Get(i))) - } - for i, xranges := 0, message.ExtensionRanges(); i < xranges.Len(); i++ { - xrange := xranges.Get(i) - p.ExtensionRange = append(p.ExtensionRange, &descriptorpb.DescriptorProto_ExtensionRange{ - Start: proto.Int32(int32(xrange[0])), - End: proto.Int32(int32(xrange[1])), - Options: proto.Clone(message.ExtensionRangeOptions(i)).(*descriptorpb.ExtensionRangeOptions), - }) - } - for i, oneofs := 0, message.Oneofs(); i < oneofs.Len(); i++ { - p.OneofDecl = append(p.OneofDecl, ToOneofDescriptorProto(oneofs.Get(i))) - } - for i, ranges := 0, message.ReservedRanges(); i < ranges.Len(); i++ { - rrange := ranges.Get(i) - p.ReservedRange = append(p.ReservedRange, &descriptorpb.DescriptorProto_ReservedRange{ - Start: proto.Int32(int32(rrange[0])), - End: proto.Int32(int32(rrange[1])), - }) - } - for i, names := 0, message.ReservedNames(); i < names.Len(); i++ { - p.ReservedName = append(p.ReservedName, string(names.Get(i))) - } - return p -} - -// ToFieldDescriptorProto copies a [protoreflect.FieldDescriptor] into a -// google.protobuf.FieldDescriptorProto message. -func ToFieldDescriptorProto(field protoreflect.FieldDescriptor) *descriptorpb.FieldDescriptorProto { - p := &descriptorpb.FieldDescriptorProto{ - Name: proto.String(string(field.Name())), - Number: proto.Int32(int32(field.Number())), - Label: descriptorpb.FieldDescriptorProto_Label(field.Cardinality()).Enum(), - Options: proto.Clone(field.Options()).(*descriptorpb.FieldOptions), - } - if field.IsExtension() { - p.Extendee = fullNameOf(field.ContainingMessage()) - } - if field.Kind().IsValid() { - p.Type = descriptorpb.FieldDescriptorProto_Type(field.Kind()).Enum() - } - if field.Enum() != nil { - p.TypeName = fullNameOf(field.Enum()) - } - if field.Message() != nil { - p.TypeName = fullNameOf(field.Message()) - } - if field.HasJSONName() { - // A bug in older versions of protoc would always populate the - // "json_name" option for extensions when it is meaningless. - // When it did so, it would always use the camel-cased field name. - if field.IsExtension() { - p.JsonName = proto.String(strs.JSONCamelCase(string(field.Name()))) - } else { - p.JsonName = proto.String(field.JSONName()) - } - } - if field.Syntax() == protoreflect.Proto3 && field.HasOptionalKeyword() { - p.Proto3Optional = proto.Bool(true) - } - if field.HasDefault() { - def, err := defval.Marshal(field.Default(), field.DefaultEnumValue(), field.Kind(), defval.Descriptor) - if err != nil && field.DefaultEnumValue() != nil { - def = string(field.DefaultEnumValue().Name()) // occurs for unresolved enum values - } else if err != nil { - panic(fmt.Sprintf("%v: %v", field.FullName(), err)) - } - p.DefaultValue = proto.String(def) - } - if oneof := field.ContainingOneof(); oneof != nil { - p.OneofIndex = proto.Int32(int32(oneof.Index())) - } - return p -} - -// ToOneofDescriptorProto copies a [protoreflect.OneofDescriptor] into a -// google.protobuf.OneofDescriptorProto message. -func ToOneofDescriptorProto(oneof protoreflect.OneofDescriptor) *descriptorpb.OneofDescriptorProto { - return &descriptorpb.OneofDescriptorProto{ - Name: proto.String(string(oneof.Name())), - Options: proto.Clone(oneof.Options()).(*descriptorpb.OneofOptions), - } -} - -// ToEnumDescriptorProto copies a [protoreflect.EnumDescriptor] into a -// google.protobuf.EnumDescriptorProto message. -func ToEnumDescriptorProto(enum protoreflect.EnumDescriptor) *descriptorpb.EnumDescriptorProto { - p := &descriptorpb.EnumDescriptorProto{ - Name: proto.String(string(enum.Name())), - Options: proto.Clone(enum.Options()).(*descriptorpb.EnumOptions), - } - for i, values := 0, enum.Values(); i < values.Len(); i++ { - p.Value = append(p.Value, ToEnumValueDescriptorProto(values.Get(i))) - } - for i, ranges := 0, enum.ReservedRanges(); i < ranges.Len(); i++ { - rrange := ranges.Get(i) - p.ReservedRange = append(p.ReservedRange, &descriptorpb.EnumDescriptorProto_EnumReservedRange{ - Start: proto.Int32(int32(rrange[0])), - End: proto.Int32(int32(rrange[1])), - }) - } - for i, names := 0, enum.ReservedNames(); i < names.Len(); i++ { - p.ReservedName = append(p.ReservedName, string(names.Get(i))) - } - return p -} - -// ToEnumValueDescriptorProto copies a [protoreflect.EnumValueDescriptor] into a -// google.protobuf.EnumValueDescriptorProto message. -func ToEnumValueDescriptorProto(value protoreflect.EnumValueDescriptor) *descriptorpb.EnumValueDescriptorProto { - return &descriptorpb.EnumValueDescriptorProto{ - Name: proto.String(string(value.Name())), - Number: proto.Int32(int32(value.Number())), - Options: proto.Clone(value.Options()).(*descriptorpb.EnumValueOptions), - } -} - -// ToServiceDescriptorProto copies a [protoreflect.ServiceDescriptor] into a -// google.protobuf.ServiceDescriptorProto message. -func ToServiceDescriptorProto(service protoreflect.ServiceDescriptor) *descriptorpb.ServiceDescriptorProto { - p := &descriptorpb.ServiceDescriptorProto{ - Name: proto.String(string(service.Name())), - Options: proto.Clone(service.Options()).(*descriptorpb.ServiceOptions), - } - for i, methods := 0, service.Methods(); i < methods.Len(); i++ { - p.Method = append(p.Method, ToMethodDescriptorProto(methods.Get(i))) - } - return p -} - -// ToMethodDescriptorProto copies a [protoreflect.MethodDescriptor] into a -// google.protobuf.MethodDescriptorProto message. -func ToMethodDescriptorProto(method protoreflect.MethodDescriptor) *descriptorpb.MethodDescriptorProto { - p := &descriptorpb.MethodDescriptorProto{ - Name: proto.String(string(method.Name())), - InputType: fullNameOf(method.Input()), - OutputType: fullNameOf(method.Output()), - Options: proto.Clone(method.Options()).(*descriptorpb.MethodOptions), - } - if method.IsStreamingClient() { - p.ClientStreaming = proto.Bool(true) - } - if method.IsStreamingServer() { - p.ServerStreaming = proto.Bool(true) - } - return p -} - -func fullNameOf(d protoreflect.Descriptor) *string { - if d == nil { - return nil - } - if strings.HasPrefix(string(d.FullName()), unknownPrefix) { - return proto.String(string(d.FullName()[len(unknownPrefix):])) - } - return proto.String("." + string(d.FullName())) -} diff --git a/vendor/google.golang.org/protobuf/types/gofeaturespb/go_features.pb.go b/vendor/google.golang.org/protobuf/types/gofeaturespb/go_features.pb.go deleted file mode 100644 index 25de5ae00..000000000 --- a/vendor/google.golang.org/protobuf/types/gofeaturespb/go_features.pb.go +++ /dev/null @@ -1,177 +0,0 @@ -// Protocol Buffers - Google's data interchange format -// Copyright 2023 Google Inc. All rights reserved. -// -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file or at -// https://developers.google.com/open-source/licenses/bsd - -// Code generated by protoc-gen-go. DO NOT EDIT. -// source: reflect/protodesc/proto/go_features.proto - -package proto - -import ( - protoreflect "google.golang.org/protobuf/reflect/protoreflect" - protoimpl "google.golang.org/protobuf/runtime/protoimpl" - descriptorpb "google.golang.org/protobuf/types/descriptorpb" - reflect "reflect" - sync "sync" -) - -type GoFeatures struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Whether or not to generate the deprecated UnmarshalJSON method for enums. - LegacyUnmarshalJsonEnum *bool `protobuf:"varint,1,opt,name=legacy_unmarshal_json_enum,json=legacyUnmarshalJsonEnum" json:"legacy_unmarshal_json_enum,omitempty"` -} - -func (x *GoFeatures) Reset() { - *x = GoFeatures{} - if protoimpl.UnsafeEnabled { - mi := &file_reflect_protodesc_proto_go_features_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GoFeatures) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GoFeatures) ProtoMessage() {} - -func (x *GoFeatures) ProtoReflect() protoreflect.Message { - mi := &file_reflect_protodesc_proto_go_features_proto_msgTypes[0] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use GoFeatures.ProtoReflect.Descriptor instead. -func (*GoFeatures) Descriptor() ([]byte, []int) { - return file_reflect_protodesc_proto_go_features_proto_rawDescGZIP(), []int{0} -} - -func (x *GoFeatures) GetLegacyUnmarshalJsonEnum() bool { - if x != nil && x.LegacyUnmarshalJsonEnum != nil { - return *x.LegacyUnmarshalJsonEnum - } - return false -} - -var file_reflect_protodesc_proto_go_features_proto_extTypes = []protoimpl.ExtensionInfo{ - { - ExtendedType: (*descriptorpb.FeatureSet)(nil), - ExtensionType: (*GoFeatures)(nil), - Field: 1002, - Name: "google.protobuf.go", - Tag: "bytes,1002,opt,name=go", - Filename: "reflect/protodesc/proto/go_features.proto", - }, -} - -// Extension fields to descriptorpb.FeatureSet. -var ( - // optional google.protobuf.GoFeatures go = 1002; - E_Go = &file_reflect_protodesc_proto_go_features_proto_extTypes[0] -) - -var File_reflect_protodesc_proto_go_features_proto protoreflect.FileDescriptor - -var file_reflect_protodesc_proto_go_features_proto_rawDesc = []byte{ - 0x0a, 0x29, 0x72, 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x64, - 0x65, 0x73, 0x63, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x5f, 0x66, 0x65, 0x61, - 0x74, 0x75, 0x72, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0f, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x1a, 0x20, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x65, - 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x6a, - 0x0a, 0x0a, 0x47, 0x6f, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x12, 0x5c, 0x0a, 0x1a, - 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x5f, 0x75, 0x6e, 0x6d, 0x61, 0x72, 0x73, 0x68, 0x61, 0x6c, - 0x5f, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, - 0x42, 0x1f, 0x88, 0x01, 0x01, 0x98, 0x01, 0x06, 0xa2, 0x01, 0x09, 0x12, 0x04, 0x74, 0x72, 0x75, - 0x65, 0x18, 0xe6, 0x07, 0xa2, 0x01, 0x0a, 0x12, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x18, 0xe7, - 0x07, 0x52, 0x17, 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x55, 0x6e, 0x6d, 0x61, 0x72, 0x73, 0x68, - 0x61, 0x6c, 0x4a, 0x73, 0x6f, 0x6e, 0x45, 0x6e, 0x75, 0x6d, 0x3a, 0x49, 0x0a, 0x02, 0x67, 0x6f, - 0x12, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, 0x74, 0x18, 0xea, 0x07, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x47, 0x6f, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, - 0x73, 0x52, 0x02, 0x67, 0x6f, 0x42, 0x34, 0x5a, 0x32, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2f, 0x72, 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x2f, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x64, 0x65, 0x73, 0x63, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, -} - -var ( - file_reflect_protodesc_proto_go_features_proto_rawDescOnce sync.Once - file_reflect_protodesc_proto_go_features_proto_rawDescData = file_reflect_protodesc_proto_go_features_proto_rawDesc -) - -func file_reflect_protodesc_proto_go_features_proto_rawDescGZIP() []byte { - file_reflect_protodesc_proto_go_features_proto_rawDescOnce.Do(func() { - file_reflect_protodesc_proto_go_features_proto_rawDescData = protoimpl.X.CompressGZIP(file_reflect_protodesc_proto_go_features_proto_rawDescData) - }) - return file_reflect_protodesc_proto_go_features_proto_rawDescData -} - -var file_reflect_protodesc_proto_go_features_proto_msgTypes = make([]protoimpl.MessageInfo, 1) -var file_reflect_protodesc_proto_go_features_proto_goTypes = []interface{}{ - (*GoFeatures)(nil), // 0: google.protobuf.GoFeatures - (*descriptorpb.FeatureSet)(nil), // 1: google.protobuf.FeatureSet -} -var file_reflect_protodesc_proto_go_features_proto_depIdxs = []int32{ - 1, // 0: google.protobuf.go:extendee -> google.protobuf.FeatureSet - 0, // 1: google.protobuf.go:type_name -> google.protobuf.GoFeatures - 2, // [2:2] is the sub-list for method output_type - 2, // [2:2] is the sub-list for method input_type - 1, // [1:2] is the sub-list for extension type_name - 0, // [0:1] is the sub-list for extension extendee - 0, // [0:0] is the sub-list for field type_name -} - -func init() { file_reflect_protodesc_proto_go_features_proto_init() } -func file_reflect_protodesc_proto_go_features_proto_init() { - if File_reflect_protodesc_proto_go_features_proto != nil { - return - } - if !protoimpl.UnsafeEnabled { - file_reflect_protodesc_proto_go_features_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GoFeatures); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - } - type x struct{} - out := protoimpl.TypeBuilder{ - File: protoimpl.DescBuilder{ - GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_reflect_protodesc_proto_go_features_proto_rawDesc, - NumEnums: 0, - NumMessages: 1, - NumExtensions: 1, - NumServices: 0, - }, - GoTypes: file_reflect_protodesc_proto_go_features_proto_goTypes, - DependencyIndexes: file_reflect_protodesc_proto_go_features_proto_depIdxs, - MessageInfos: file_reflect_protodesc_proto_go_features_proto_msgTypes, - ExtensionInfos: file_reflect_protodesc_proto_go_features_proto_extTypes, - }.Build() - File_reflect_protodesc_proto_go_features_proto = out.File - file_reflect_protodesc_proto_go_features_proto_rawDesc = nil - file_reflect_protodesc_proto_go_features_proto_goTypes = nil - file_reflect_protodesc_proto_go_features_proto_depIdxs = nil -} diff --git a/vendor/google.golang.org/protobuf/types/gofeaturespb/go_features.proto b/vendor/google.golang.org/protobuf/types/gofeaturespb/go_features.proto deleted file mode 100644 index d24657129..000000000 --- a/vendor/google.golang.org/protobuf/types/gofeaturespb/go_features.proto +++ /dev/null @@ -1,28 +0,0 @@ -// Protocol Buffers - Google's data interchange format -// Copyright 2023 Google Inc. All rights reserved. -// -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file or at -// https://developers.google.com/open-source/licenses/bsd - -syntax = "proto2"; - -package google.protobuf; - -import "google/protobuf/descriptor.proto"; - -option go_package = "google.golang.org/protobuf/types/gofeaturespb"; - -extend google.protobuf.FeatureSet { - optional GoFeatures go = 1002; -} - -message GoFeatures { - // Whether or not to generate the deprecated UnmarshalJSON method for enums. - optional bool legacy_unmarshal_json_enum = 1 [ - retention = RETENTION_RUNTIME, - targets = TARGET_TYPE_ENUM, - edition_defaults = { edition: EDITION_PROTO2, value: "true" }, - edition_defaults = { edition: EDITION_PROTO3, value: "false" } - ]; -} diff --git a/vendor/modules.txt b/vendor/modules.txt index dd0ff63dd..892af0fe3 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -8,15 +8,15 @@ github.com/CloudyKit/fastprinter # github.com/CloudyKit/jet/v6 v6.2.0 ## explicit; go 1.12 github.com/CloudyKit/jet/v6 +# github.com/IBM/sarama v1.43.1 +## explicit; go 1.19 +github.com/IBM/sarama # github.com/Joker/jade v1.1.3 ## explicit; go 1.14 github.com/Joker/jade # github.com/Shopify/goreferrer v0.0.0-20220729165902-8cddb4f5de06 ## explicit; go 1.17 github.com/Shopify/goreferrer -# github.com/Shopify/sarama v1.38.1 -## explicit; go 1.17 -github.com/Shopify/sarama # github.com/andybalholm/brotli v1.1.0 ## explicit; go 1.13 github.com/andybalholm/brotli @@ -31,7 +31,7 @@ github.com/apapsch/go-jsonmerge/v2 # github.com/avast/retry-go v3.0.0+incompatible ## explicit github.com/avast/retry-go -# github.com/aws/aws-sdk-go v1.50.6 +# github.com/aws/aws-sdk-go v1.51.20 ## explicit; go 1.19 github.com/aws/aws-sdk-go/aws github.com/aws/aws-sdk-go/aws/arn @@ -97,7 +97,7 @@ github.com/beorn7/perks/quantile # github.com/blang/semver v3.5.1+incompatible ## explicit github.com/blang/semver -# github.com/bytedance/sonic v1.10.2 +# github.com/bytedance/sonic v1.11.3 ## explicit; go 1.16 github.com/bytedance/sonic github.com/bytedance/sonic/ast @@ -112,6 +112,7 @@ github.com/bytedance/sonic/internal/jit github.com/bytedance/sonic/internal/native github.com/bytedance/sonic/internal/native/avx github.com/bytedance/sonic/internal/native/avx2 +github.com/bytedance/sonic/internal/native/neon github.com/bytedance/sonic/internal/native/sse github.com/bytedance/sonic/internal/native/types github.com/bytedance/sonic/internal/resolver @@ -120,7 +121,7 @@ github.com/bytedance/sonic/loader github.com/bytedance/sonic/option github.com/bytedance/sonic/unquote github.com/bytedance/sonic/utf8 -# github.com/cespare/xxhash/v2 v2.2.0 +# github.com/cespare/xxhash/v2 v2.3.0 ## explicit; go 1.11 github.com/cespare/xxhash/v2 # github.com/chenzhuoyu/base64x v0.0.0-20230717121745-296ad89f973d @@ -130,8 +131,8 @@ github.com/chenzhuoyu/base64x ## explicit; go 1.16 github.com/chenzhuoyu/iasm/expr github.com/chenzhuoyu/iasm/x86_64 -# github.com/cloudevents/sdk-go/protocol/kafka_sarama/v2 v2.14.0 -## explicit; go 1.17 +# github.com/cloudevents/sdk-go/protocol/kafka_sarama/v2 v2.15.2 +## explicit; go 1.18 github.com/cloudevents/sdk-go/protocol/kafka_sarama/v2 # github.com/cloudevents/sdk-go/v2 v2.15.2 ## explicit; go 1.18 @@ -149,7 +150,7 @@ github.com/cloudevents/sdk-go/v2/event/datacodec/xml github.com/cloudevents/sdk-go/v2/protocol github.com/cloudevents/sdk-go/v2/protocol/http github.com/cloudevents/sdk-go/v2/types -# github.com/cpuguy83/go-md2man/v2 v2.0.3 +# github.com/cpuguy83/go-md2man/v2 v2.0.4 ## explicit; go 1.11 github.com/cpuguy83/go-md2man/v2/md2man # github.com/davecgh/go-spew v1.1.1 @@ -172,7 +173,7 @@ github.com/dvsekhvalnov/jose2go/compact github.com/dvsekhvalnov/jose2go/kdf github.com/dvsekhvalnov/jose2go/keys/ecc github.com/dvsekhvalnov/jose2go/padding -# github.com/eapache/go-resiliency v1.5.0 +# github.com/eapache/go-resiliency v1.6.0 ## explicit; go 1.13 github.com/eapache/go-resiliency/breaker # github.com/eapache/go-xerial-snappy v0.0.0-20230731223053-c322873962e3 @@ -223,7 +224,7 @@ github.com/go-playground/locales/currency # github.com/go-playground/universal-translator v0.18.1 ## explicit; go 1.18 github.com/go-playground/universal-translator -# github.com/go-playground/validator/v10 v10.17.0 +# github.com/go-playground/validator/v10 v10.19.0 ## explicit; go 1.18 github.com/go-playground/validator/v10 # github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 @@ -247,18 +248,10 @@ github.com/golang-jwt/jwt/v4 ## explicit; go 1.11 github.com/golang/mock/gomock github.com/golang/mock/mockgen/model -# github.com/golang/protobuf v1.5.3 -## explicit; go 1.9 -github.com/golang/protobuf/jsonpb -github.com/golang/protobuf/proto -github.com/golang/protobuf/ptypes -github.com/golang/protobuf/ptypes/any -github.com/golang/protobuf/ptypes/duration -github.com/golang/protobuf/ptypes/timestamp # github.com/golang/snappy v0.0.4 ## explicit github.com/golang/snappy -# github.com/gomarkdown/markdown v0.0.0-20231222211730-1d6d20845b47 +# github.com/gomarkdown/markdown v0.0.0-20240328165702-4d01890c35c0 ## explicit; go 1.12 github.com/gomarkdown/markdown github.com/gomarkdown/markdown/ast @@ -271,7 +264,7 @@ github.com/google/go-cmp/cmp/internal/diff github.com/google/go-cmp/cmp/internal/flags github.com/google/go-cmp/cmp/internal/function github.com/google/go-cmp/cmp/internal/value -# github.com/google/pprof v0.0.0-20240125082051-42cd04596328 +# github.com/google/pprof v0.0.0-20240409012703-83162a5b38cd ## explicit; go 1.19 github.com/google/pprof/profile # github.com/google/uuid v1.6.0 @@ -409,8 +402,8 @@ github.com/kataras/tunnel # github.com/kelseyhightower/envconfig v1.4.0 ## explicit github.com/kelseyhightower/envconfig -# github.com/klauspost/compress v1.17.5 -## explicit; go 1.19 +# github.com/klauspost/compress v1.17.8 +## explicit; go 1.20 github.com/klauspost/compress github.com/klauspost/compress/flate github.com/klauspost/compress/fse @@ -422,7 +415,7 @@ github.com/klauspost/compress/internal/snapref github.com/klauspost/compress/s2 github.com/klauspost/compress/zstd github.com/klauspost/compress/zstd/internal/xxhash -# github.com/klauspost/cpuid/v2 v2.2.6 +# github.com/klauspost/cpuid/v2 v2.2.7 ## explicit; go 1.15 github.com/klauspost/cpuid/v2 # github.com/labstack/echo/v4 v4.11.4 @@ -432,7 +425,7 @@ github.com/labstack/echo/v4 ## explicit; go 1.18 github.com/labstack/gommon/color github.com/labstack/gommon/log -# github.com/leodido/go-urn v1.3.0 +# github.com/leodido/go-urn v1.4.0 ## explicit; go 1.18 github.com/leodido/go-urn github.com/leodido/go-urn/scim/schema @@ -461,8 +454,8 @@ github.com/microcosm-cc/bluemonday/css # github.com/mitchellh/go-homedir v1.1.0 ## explicit github.com/mitchellh/go-homedir -# github.com/mitchellh/mapstructure v1.1.2 -## explicit +# github.com/mitchellh/mapstructure v1.5.0 +## explicit; go 1.14 github.com/mitchellh/mapstructure # github.com/mjibson/esc v0.2.0 ## explicit @@ -481,7 +474,7 @@ github.com/montanaflynn/stats ## explicit; go 1.20 github.com/oapi-codegen/runtime github.com/oapi-codegen/runtime/types -# github.com/onsi/ginkgo/v2 v2.15.0 +# github.com/onsi/ginkgo/v2 v2.17.1 ## explicit; go 1.20 github.com/onsi/ginkgo/v2 github.com/onsi/ginkgo/v2/config @@ -503,7 +496,7 @@ github.com/onsi/ginkgo/v2/internal/parallel_support github.com/onsi/ginkgo/v2/internal/testingtproxy github.com/onsi/ginkgo/v2/reporters github.com/onsi/ginkgo/v2/types -# github.com/onsi/gomega v1.31.1 +# github.com/onsi/gomega v1.32.0 ## explicit; go 1.20 github.com/onsi/gomega github.com/onsi/gomega/format @@ -518,7 +511,7 @@ github.com/onsi/gomega/matchers/support/goraph/edge github.com/onsi/gomega/matchers/support/goraph/node github.com/onsi/gomega/matchers/support/goraph/util github.com/onsi/gomega/types -# github.com/pelletier/go-toml/v2 v2.1.1 +# github.com/pelletier/go-toml/v2 v2.2.1 ## explicit; go 1.16 github.com/pelletier/go-toml/v2 github.com/pelletier/go-toml/v2/internal/characters @@ -535,8 +528,8 @@ github.com/pierrec/lz4/v4/internal/xxh32 # github.com/pkg/errors v0.9.1 ## explicit github.com/pkg/errors -# github.com/prometheus/client_golang v1.18.0 -## explicit; go 1.19 +# github.com/prometheus/client_golang v1.19.0 +## explicit; go 1.20 github.com/prometheus/client_golang/prometheus github.com/prometheus/client_golang/prometheus/internal github.com/prometheus/client_golang/prometheus/promauto @@ -544,15 +537,15 @@ github.com/prometheus/client_golang/prometheus/promhttp github.com/prometheus/client_golang/prometheus/testutil github.com/prometheus/client_golang/prometheus/testutil/promlint github.com/prometheus/client_golang/prometheus/testutil/promlint/validations -# github.com/prometheus/client_model v0.5.0 +# github.com/prometheus/client_model v0.6.1 ## explicit; go 1.19 github.com/prometheus/client_model/go -# github.com/prometheus/common v0.46.0 +# github.com/prometheus/common v0.52.3 ## explicit; go 1.20 github.com/prometheus/common/expfmt github.com/prometheus/common/internal/bitbucket.org/ww/goautoneg github.com/prometheus/common/model -# github.com/prometheus/procfs v0.12.0 +# github.com/prometheus/procfs v0.13.0 ## explicit; go 1.19 github.com/prometheus/procfs github.com/prometheus/procfs/internal/fs @@ -575,7 +568,7 @@ github.com/schollz/closestmatch # github.com/sirupsen/logrus v1.9.3 ## explicit; go 1.13 github.com/sirupsen/logrus -# github.com/tdewolff/minify/v2 v2.20.16 +# github.com/tdewolff/minify/v2 v2.20.19 ## explicit; go 1.18 github.com/tdewolff/minify/v2 github.com/tdewolff/minify/v2/css @@ -584,7 +577,7 @@ github.com/tdewolff/minify/v2/js github.com/tdewolff/minify/v2/json github.com/tdewolff/minify/v2/svg github.com/tdewolff/minify/v2/xml -# github.com/tdewolff/parse/v2 v2.7.11 +# github.com/tdewolff/parse/v2 v2.7.12 ## explicit; go 1.13 github.com/tdewolff/parse/v2 github.com/tdewolff/parse/v2/buffer @@ -594,13 +587,13 @@ github.com/tdewolff/parse/v2/js github.com/tdewolff/parse/v2/json github.com/tdewolff/parse/v2/strconv github.com/tdewolff/parse/v2/xml -# github.com/tidepool-org/clinic/client v0.0.0-20240412011046-bbcf4250e5c4 +# github.com/tidepool-org/clinic/client v0.0.0-20240412024055-e6391b37e456 ## explicit; go 1.22 github.com/tidepool-org/clinic/client # github.com/tidepool-org/devices/api v0.0.0-20240412011010-75b16d8daec0 ## explicit; go 1.22 github.com/tidepool-org/devices/api -# github.com/tidepool-org/go-common v0.12.1 +# github.com/tidepool-org/go-common v0.12.2-0.20240412180151-b4ae8ab630c0 ## explicit; go 1.22 github.com/tidepool-org/go-common/clients github.com/tidepool-org/go-common/clients/disc @@ -611,7 +604,7 @@ github.com/tidepool-org/go-common/clients/status github.com/tidepool-org/go-common/errors github.com/tidepool-org/go-common/events github.com/tidepool-org/go-common/jepson -# github.com/tidepool-org/hydrophone/client v0.0.0-20240412013722-bff995d59e73 +# github.com/tidepool-org/hydrophone/client v0.0.0-20240412025448-85c89a8038b8 ## explicit; go 1.22 github.com/tidepool-org/hydrophone/client # github.com/twitchyliquid64/golang-asm v0.15.1 @@ -675,8 +668,8 @@ github.com/yosssi/ace # github.com/youmark/pkcs8 v0.0.0-20201027041543-1326539a0a0a ## explicit; go 1.12 github.com/youmark/pkcs8 -# go.mongodb.org/mongo-driver v1.13.1 -## explicit; go 1.13 +# go.mongodb.org/mongo-driver v1.14.0 +## explicit; go 1.18 go.mongodb.org/mongo-driver/bson go.mongodb.org/mongo-driver/bson/bsoncodec go.mongodb.org/mongo-driver/bson/bsonoptions @@ -724,8 +717,6 @@ go.mongodb.org/mongo-driver/x/mongo/driver/operation go.mongodb.org/mongo-driver/x/mongo/driver/session go.mongodb.org/mongo-driver/x/mongo/driver/topology go.mongodb.org/mongo-driver/x/mongo/driver/wiremessage -# go.uber.org/atomic v1.11.0 -## explicit; go 1.18 # go.uber.org/dig v1.17.1 ## explicit; go 1.20 go.uber.org/dig @@ -733,7 +724,7 @@ go.uber.org/dig/internal/digerror go.uber.org/dig/internal/digreflect go.uber.org/dig/internal/dot go.uber.org/dig/internal/graph -# go.uber.org/fx v1.20.1 +# go.uber.org/fx v1.21.0 ## explicit; go 1.20 go.uber.org/fx go.uber.org/fx/fxevent @@ -744,7 +735,7 @@ go.uber.org/fx/internal/lifecycle # go.uber.org/multierr v1.11.0 ## explicit; go 1.19 go.uber.org/multierr -# go.uber.org/zap v1.26.0 +# go.uber.org/zap v1.27.0 ## explicit; go 1.19 go.uber.org/zap go.uber.org/zap/buffer @@ -758,7 +749,7 @@ go.uber.org/zap/zapcore # golang.org/x/arch v0.7.0 ## explicit; go 1.18 golang.org/x/arch/x86/x86asm -# golang.org/x/crypto v0.21.0 +# golang.org/x/crypto v0.22.0 ## explicit; go 1.18 golang.org/x/crypto/acme golang.org/x/crypto/acme/autocert @@ -768,7 +759,7 @@ golang.org/x/crypto/pbkdf2 golang.org/x/crypto/scrypt golang.org/x/crypto/sha3 golang.org/x/crypto/ssh/terminal -# golang.org/x/exp v0.0.0-20240119083558-1b970713d09a +# golang.org/x/exp v0.0.0-20240409090435-93d18d7e34b8 ## explicit; go 1.20 golang.org/x/exp/constraints golang.org/x/exp/maps @@ -776,12 +767,12 @@ golang.org/x/exp/maps ## explicit; go 1.11 golang.org/x/lint golang.org/x/lint/golint -# golang.org/x/mod v0.14.0 +# golang.org/x/mod v0.17.0 ## explicit; go 1.18 golang.org/x/mod/internal/lazyregexp golang.org/x/mod/module golang.org/x/mod/semver -# golang.org/x/net v0.23.0 +# golang.org/x/net v0.24.0 ## explicit; go 1.18 golang.org/x/net/context golang.org/x/net/html @@ -797,23 +788,23 @@ golang.org/x/net/internal/timeseries golang.org/x/net/proxy golang.org/x/net/publicsuffix golang.org/x/net/trace -# golang.org/x/oauth2 v0.16.0 +# golang.org/x/oauth2 v0.19.0 ## explicit; go 1.18 golang.org/x/oauth2 golang.org/x/oauth2/clientcredentials golang.org/x/oauth2/internal -# golang.org/x/sync v0.6.0 +# golang.org/x/sync v0.7.0 ## explicit; go 1.18 golang.org/x/sync/errgroup golang.org/x/sync/semaphore golang.org/x/sync/singleflight -# golang.org/x/sys v0.18.0 +# golang.org/x/sys v0.19.0 ## explicit; go 1.18 golang.org/x/sys/cpu golang.org/x/sys/plan9 golang.org/x/sys/unix golang.org/x/sys/windows -# golang.org/x/term v0.18.0 +# golang.org/x/term v0.19.0 ## explicit; go 1.18 golang.org/x/term # golang.org/x/text v0.14.0 @@ -849,14 +840,16 @@ golang.org/x/text/unicode/norm # golang.org/x/time v0.5.0 ## explicit; go 1.18 golang.org/x/time/rate -# golang.org/x/tools v0.17.0 -## explicit; go 1.18 +# golang.org/x/tools v0.20.0 +## explicit; go 1.19 golang.org/x/tools/cmd/goimports +golang.org/x/tools/cover golang.org/x/tools/go/ast/astutil golang.org/x/tools/go/ast/inspector golang.org/x/tools/go/gcexportdata golang.org/x/tools/go/types/objectpath golang.org/x/tools/imports +golang.org/x/tools/internal/aliases golang.org/x/tools/internal/event golang.org/x/tools/internal/event/core golang.org/x/tools/internal/event/keys @@ -867,29 +860,19 @@ golang.org/x/tools/internal/gocommand golang.org/x/tools/internal/gopathwalk golang.org/x/tools/internal/imports golang.org/x/tools/internal/pkgbits +golang.org/x/tools/internal/stdlib golang.org/x/tools/internal/tokeninternal -golang.org/x/tools/internal/typeparams -# google.golang.org/appengine v1.6.8 -## explicit; go 1.11 -google.golang.org/appengine/internal -google.golang.org/appengine/internal/base -google.golang.org/appengine/internal/datastore -google.golang.org/appengine/internal/log -google.golang.org/appengine/internal/remote_api -google.golang.org/appengine/internal/urlfetch -google.golang.org/appengine/urlfetch -# google.golang.org/genproto v0.0.0-20240125205218-1f4bbc51befe -## explicit; go 1.19 -google.golang.org/genproto/internal -# google.golang.org/genproto/googleapis/api v0.0.0-20240125205218-1f4bbc51befe +golang.org/x/tools/internal/typesinternal +golang.org/x/tools/internal/versions +# google.golang.org/genproto/googleapis/api v0.0.0-20240412170617-26222e5d3d56 ## explicit; go 1.19 google.golang.org/genproto/googleapis/api google.golang.org/genproto/googleapis/api/annotations google.golang.org/genproto/googleapis/api/httpbody -# google.golang.org/genproto/googleapis/rpc v0.0.0-20240125205218-1f4bbc51befe +# google.golang.org/genproto/googleapis/rpc v0.0.0-20240412170617-26222e5d3d56 ## explicit; go 1.19 google.golang.org/genproto/googleapis/rpc/status -# google.golang.org/grpc v1.61.0 +# google.golang.org/grpc v1.63.2 ## explicit; go 1.19 google.golang.org/grpc google.golang.org/grpc/attributes @@ -943,7 +926,7 @@ google.golang.org/grpc/serviceconfig google.golang.org/grpc/stats google.golang.org/grpc/status google.golang.org/grpc/tap -# google.golang.org/protobuf v1.32.0 => google.golang.org/protobuf v1.33.0 +# google.golang.org/protobuf v1.33.0 ## explicit; go 1.17 google.golang.org/protobuf/encoding/protodelim google.golang.org/protobuf/encoding/protojson @@ -970,13 +953,12 @@ google.golang.org/protobuf/internal/set google.golang.org/protobuf/internal/strs google.golang.org/protobuf/internal/version google.golang.org/protobuf/proto -google.golang.org/protobuf/reflect/protodesc +google.golang.org/protobuf/protoadapt google.golang.org/protobuf/reflect/protoreflect google.golang.org/protobuf/reflect/protoregistry google.golang.org/protobuf/runtime/protoiface google.golang.org/protobuf/runtime/protoimpl google.golang.org/protobuf/types/descriptorpb -google.golang.org/protobuf/types/gofeaturespb google.golang.org/protobuf/types/known/anypb google.golang.org/protobuf/types/known/durationpb google.golang.org/protobuf/types/known/fieldmaskpb @@ -996,4 +978,3 @@ gopkg.in/yaml.v3 ## explicit; go 1.11 syreclabs.com/go/faker syreclabs.com/go/faker/locales -# github.com/gofiber/fiber/v2 v2.49.1 => github.com/gofiber/fiber/v2 v2.52.0